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: Denis Arnaud To: git-commits@fedoraproject.org Subject: [rpms/soci] epel10: - Introduced distinct dependencies for different distributions Date: Sat, 27 Jun 2026 21:54:49 GMT Message-ID: <178259728941.1.9828680345642697132.rpms-soci-9c4b33c45970@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: epel10 X-Git-Rev: 9c4b33c4597018d6920db76483a4ccb6c810afa3 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc29jaQpCcmFuY2gg OiBlcGVsMTAKQ29tbWl0IDogOWM0YjMzYzQ1OTcwMThkNjkyMGRiNzY0ODNhNGNjYjZjODEwYWZh MwpBdXRob3IgOiBEZW5pcyBBcm5hdWQgPGRlbmlzYXJuYXVkQGZlZG9yYXByb2plY3Qub3JnPgpE YXRlICAgOiAyMDA5LTA1LTIzVDEyOjEyOjI2KzAwOjAwClN0YXRzICA6ICs1OTg4NS8tNjAzNTYg aW4gNiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMv c29jaS9jLzljNGIzM2M0NTk3MDE4ZDY5MjBkYjc2NDgzYTRjY2I2YzgxMGFmYTM/YnJhbmNoPWVw ZWwxMAoKTG9nOgotIEludHJvZHVjZWQgZGlzdGluY3QgZGVwZW5kZW5jaWVzIGZvciBkaWZmZXJl bnQgZGlzdHJpYnV0aW9ucwoKLS0tCmRpZmYgLS1naXQgYS9pbXBvcnQubG9nIGIvaW1wb3J0Lmxv ZwppbmRleCAwNGY0OWM5Li5jZmE0NGM2IDEwMDY0NAotLS0gYS9pbXBvcnQubG9nCisrKyBiL2lt cG9ydC5sb2cKQEAgLTQsMyArNCw0IEBAIHNvY2ktM18wXzAtOF9mYzEwOkhFQUQ6c29jaS0zLjAu MC04LmZjMTAuc3JjLnJwbToxMjQxNTU4MjE5CiBzb2NpLTNfMF8wLTlfZmMxMDpIRUFEOnNvY2kt My4wLjAtOS5mYzEwLnNyYy5ycG06MTI0MTU1OTczMgogc29jaS0zXzBfMC0xMF9mYzEwOkhFQUQ6 c29jaS0zLjAuMC0xMC5mYzEwLnNyYy5ycG06MTI0MTU2MzMxMQogc29jaS0zXzBfMC0xMV9mYzEw OkhFQUQ6c29jaS0zLjAuMC0xMS5mYzEwLnNyYy5ycG06MTI0MTU2NzE1Mworc29jaS0zXzBfMC0x M19mYzExOkhFQUQ6c29jaS0zLjAuMC0xMy5mYzExLnNyYy5ycG06MTI0MzA4MDM3MgoKZGlmZiAt LWdpdCBhL3NvY2ktMy4wLjAtMTMtZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0Y2ggYi9zb2Np LTMuMC4wLTEzLWZpeC1nY2M0My1jb21wYXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjY5MWI1YjIKLS0tIC9kZXYvbnVsbAorKysgYi9zb2NpLTMuMC4w LTEzLWZpeC1nY2M0My1jb21wYXRpYmlsaXR5LnBhdGNoCkBAIC0wLDAgKzEsOTEgQEAKK2RpZmYg LU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBzb2NpLTMuMC4wXzQt cGFjay9zcmMvYmFja2VuZHMvbXlzcWwvY29tbW9uLmgKKy0tLSBzb2NpLTMuMC4wL3NyYy9iYWNr ZW5kcy9teXNxbC9jb21tb24uaAkyMDA4LTA3LTAzIDA5OjIyOjU3LjAwMDAwMDAwMCArMDIwMAor KysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAkyMDA5LTA1 LTIzIDEzOjExOjAzLjAwMDAwMDAwMCArMDIwMAorQEAgLTEwLDYgKzEwLDcgQEAKKyAKKyAjaW5j bHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorKyNpbmNsdWRlIDxjdGlt ZT4KKyAKKyBuYW1lc3BhY2Ugc29jaQorIHsKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNr ZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlz cWwvc2Vzc2lvbi5jcHAKKy0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9u LmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBf NC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAkyMDA5LTA1LTIzIDEzOjExOjAz LjAwMDAwMDAwMCArMDIwMAorQEAgLTExLDcgKzExLDggQEAKKyAjaW5jbHVkZSA8Y2N0eXBlPgor ICNpbmNsdWRlIDxjZXJybm8+CisgI2luY2x1ZGUgPGNpc282NDY+CistCisrI2luY2x1ZGUgPGNz dGRsaWI+CisrI2luY2x1ZGUgPGNsaW1pdHM+CisgCisgI2lmZGVmIF9NU0NfVkVSCisgI3ByYWdt YSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMC9zcmMvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA4LTA1LTMwIDEzOjMzOjQ1LjAw MDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6MTE6MDMuMDAwMDAwMDAwICswMjAw CitAQCAtMTIsNiArMTIsOCBAQAorICNpbmNsdWRlICJjb21tb24uaCIKKyAjaW5jbHVkZSA8Y2lz bzY0Nj4KKyAjaW5jbHVkZSA8Y2Fzc2VydD4KKysjaW5jbHVkZSA8Y3RpbWU+CisrI2luY2x1ZGUg PGNzdHJpbmc+CisgCisgI2lmZGVmIF9NU0NfVkVSCisgI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6 NDM1NSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11 c2UtdHlwZS5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAorKysrIHNv Y2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJ MjAwOS0wNS0yMyAxMzoyNDo0Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMCw4ICsxMCwxMCBAQAor ICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1ZGUgImNvbW1vbi5oIgorICNpbmNsdWRl IDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8 bGltaXRzPgorKyNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdHJpbmc+CisgCisgI2lm ZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvdmVj dG9yLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvdmVj dG9yLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3ZlY3Rv ci11c2UtdHlwZS5jcHAJMjAwOC0wNS0xNSAxNTo1ODozOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBz b2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAky MDA5LTA1LTIzIDEzOjI1OjExLjAwMDAwMDAwMCArMDIwMAorQEAgLTEwLDkgKzEwLDEyIEBACisg I2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCisgI2luY2x1ZGUg PHNvY2ktcGxhdGZvcm0uaD4KKysvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxs aW1pdHM+CisrI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KKysjaW5jbHVk ZSA8Y3RpbWU+CisgCisgI2lmZGVmIF9NU0NfVkVSCisgI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6 NDM1NSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1v bi5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNw cAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDA4 LTA2LTI3IDE2OjM4OjA1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3Ny Yy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0yMyAxMzoyMzozOC4wMDAw MDAwMDAgKzAyMDAKK0BAIC03LDcgKzcsOSBAQAorIAorICNpbmNsdWRlICJjb21tb24uaCIKKyAj aW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrLy8KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKysjaW5j bHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjdGltZT4KKyAKKyAKK2RpZmYgLU51ciBzb2NpLTMu MC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvY29yZS9z b2NpLXNpbXBsZS5jcHAKKy0tLSBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAky MDA4LTA3LTAxIDA5OjQyOjI1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNr L3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDA5LTA1LTIzIDEzOjIxOjE0LjAwMDAwMDAwMCAr MDIwMAorQEAgLTksNiArOSw4IEBACisgCisgI2luY2x1ZGUgInNvY2ktc2ltcGxlLmgiCisgI2lu Y2x1ZGUgInNvY2kuaCIKKysvLworKyNpbmNsdWRlIDxjc3RkaW8+CisgCisgdXNpbmcgbmFtZXNw YWNlIHNvY2k7CisgCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC0xMy1maXgtZ251LWF1dG90b29s cy1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29jaS0zLjAuMC0xMy1maXgtZ251LWF1dG90b29scy1j b21wYXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2 ZDM0NjkKLS0tIC9kZXYvbnVsbAorKysgYi9zb2NpLTMuMC4wLTEzLWZpeC1nbnUtYXV0b3Rvb2xz LWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSw1OTc2NyBAQAorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2FjbG9jYWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2FjbG9jYWwubTQKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2FjbG9jYWwubTQJMjAwOS0wNS0yMyAx MDowMTo1OC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsODg3IEBACisrIyBnZW5lcmF0ZWQg YXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEuMTAuMiAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBD b3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIw MDMsIDIwMDQsCisrIyAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0 aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK200X2lmbmRlZihbQUNf QVVUT0NPTkZfVkVSU0lPTl0sCisrICBbbTRfY29weShbbTRfUEFDS0FHRV9WRVJTSU9OXSwgW0FD X0FVVE9DT05GX1ZFUlNJT05dKV0pZG5sCisrbTRfaWYobTRfZGVmbihbQUNfQVVUT0NPTkZfVkVS U0lPTl0pLCBbMi42M10sLAorK1ttNF93YXJuaW5nKFt0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBm b3IgYXV0b2NvbmYgMi42My4KKytZb3UgaGF2ZSBhbm90aGVyIHZlcnNpb24gb2YgYXV0b2NvbmYu ICBJdCBtYXkgd29yaywgYnV0IGlzIG5vdCBndWFyYW50ZWVkIHRvLgorK0lmIHlvdSBoYXZlIHBy b2JsZW1zLCB5b3UgbWF5IG5lZWQgdG8gcmVnZW5lcmF0ZSB0aGUgYnVpbGQgc3lzdGVtIGVudGly ZWx5LgorK1RvIGRvIHNvLCB1c2UgdGhlIHByb2NlZHVyZSBkb2N1bWVudGVkIGJ5IHRoZSBwYWNr YWdlLCB0eXBpY2FsbHkgYGF1dG9yZWNvbmYnLl0pXSkKKysKKysjIENvcHlyaWdodCAoQykgMjAw MiwgMjAwMywgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBBTV9BVVRPTUFLRV9WRVJT SU9OKFZFUlNJT04pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBBdXRvbWFr ZSBYLlkgdHJhY2VzIHRoaXMgbWFjcm8gdG8gZW5zdXJlIGFjbG9jYWwubTQgaGFzIGJlZW4KKysj IGdlbmVyYXRlZCBmcm9tIHRoZSBtNCBmaWxlcyBhY2NvbXBhbnlpbmcgQXV0b21ha2UgWC5ZLgor KyMgKFRoaXMgcHJpdmF0ZSBtYWNybyBzaG91bGQgbm90IGJlIGNhbGxlZCBvdXRzaWRlIHRoaXMg ZmlsZS4pCisrQUNfREVGVU4oW0FNX0FVVE9NQUtFX1ZFUlNJT05dLAorK1thbV9fYXBpX3ZlcnNp b249JzEuMTAnCisrZG5sIFNvbWUgdXNlcnMgZmluZCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBt aXN0YWtlIGl0IGZvciBhIHdheSB0bworK2RubCByZXF1aXJlIHNvbWUgbWluaW11bSB2ZXJzaW9u LiAgUG9pbnQgdGhlbSB0byB0aGUgcmlnaHQgbWFjcm8uCisrbTRfaWYoWyQxXSwgWzEuMTAuMl0s IFtdLAorKyAgICAgIFtBQ19GQVRBTChbRG8gbm90IGNhbGwgJDAsIHVzZSBBTV9JTklUX0FVVE9N QUtFKFskMV0pLl0pXSlkbmwKKytdKQorKworKyMgX0FNX0FVVE9DT05GX1ZFUlNJT04oVkVSU0lP TikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBhY2xvY2FsIHRyYWNlcyB0 aGlzIG1hY3JvIHRvIGZpbmQgdGhlIEF1dG9jb25mIHZlcnNpb24uCisrIyBUaGlzIGlzIGEgcHJp dmF0ZSBtYWNybyB0b28uICBVc2luZyBtNF9kZWZpbmUgc2ltcGxpZmllcworKyMgdGhlIGxvZ2lj IGluIGFjbG9jYWwsIHdoaWNoIGNhbiBzaW1wbHkgaWdub3JlIHRoaXMgZGVmaW5pdGlvbi4KKytt NF9kZWZpbmUoW19BTV9BVVRPQ09ORl9WRVJTSU9OXSwgW10pCisrCisrIyBBTV9TRVRfQ1VSUkVO VF9BVVRPTUFLRV9WRVJTSU9OCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBDYWxsIEFNX0FVVE9NQUtFX1ZFUlNJT04gYW5kIEFNX0FVVE9NQUtFX1ZFUlNJT04gc28gdGhl eSBjYW4gYmUgdHJhY2VkLgorKyMgVGhpcyBmdW5jdGlvbiBpcyBBQ19SRVFVSVJFZCBieSBBTV9J TklUX0FVVE9NQUtFLgorK0FDX0RFRlVOKFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9O XSwKKytbQU1fQVVUT01BS0VfVkVSU0lPTihbMS4xMC4yXSlkbmwKKyttNF9pZm5kZWYoW0FDX0FV VE9DT05GX1ZFUlNJT05dLAorKyAgW200X2NvcHkoW200X1BBQ0tBR0VfVkVSU0lPTl0sIFtBQ19B VVRPQ09ORl9WRVJTSU9OXSldKWRubAorK19BTV9BVVRPQ09ORl9WRVJTSU9OKG00X2RlZm4oW0FD X0FVVE9DT05GX1ZFUlNJT05dKSldKQorKworKyMgQU1fQVVYX0RJUl9FWFBBTkQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENv cHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBGb3IgcHJvamVjdHMgdXNpbmcg QUNfQ09ORklHX0FVWF9ESVIoW2Zvb10pLCBBdXRvY29uZiBzZXRzCisrIyAkYWNfYXV4X2RpciB0 byBgJHNyY2Rpci9mb28nLiAgSW4gb3RoZXIgcHJvamVjdHMsIGl0IGlzIHNldCB0bworKyMgYCRz cmNkaXInLCBgJHNyY2Rpci8uLicsIG9yIGAkc3JjZGlyLy4uLy4uJy4KKysjCisrIyBPZiBjb3Vy c2UsIEF1dG9tYWtlIG11c3QgaG9ub3IgdGhpcyB2YXJpYWJsZSB3aGVuZXZlciBpdCBjYWxscyBh CisrIyB0b29sIGZyb20gdGhlIGF1eGlsaWFyeSBkaXJlY3RvcnkuICBUaGUgcHJvYmxlbSBpcyB0 aGF0ICRzcmNkaXIgKGFuZAorKyMgdGhlcmVmb3JlICRhY19hdXhfZGlyIGFzIHdlbGwpIGNhbiBi ZSBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUsCisrIyBkZXBlbmRpbmcgb24gaG93IGNvbmZp Z3VyZSBpcyBydW4uICBUaGlzIGlzIHByZXR0eSBhbm5veWluZywgc2luY2UKKysjIGl0IG1ha2Vz ICRhY19hdXhfZGlyIHF1aXRlIHVudXNhYmxlIGluIHN1YmRpcmVjdG9yaWVzOiBpbiB0aGUgdG9w CisrIyBzb3VyY2UgZGlyZWN0b3J5LCBhbnkgZm9ybSB3aWxsIHdvcmsgZmluZSwgYnV0IGluIHN1 YmRpcmVjdG9yaWVzIGEKKysjIHJlbGF0aXZlIHBhdGggbmVlZHMgdG8gYmUgYWRqdXN0ZWQgZmly c3QuCisrIworKyMgJGFjX2F1eF9kaXIvbWlzc2luZworKyMgICAgZmFpbHMgd2hlbiBjYWxsZWQg ZnJvbSBhIHN1YmRpcmVjdG9yeSBpZiAkYWNfYXV4X2RpciBpcyByZWxhdGl2ZQorKyMgJHRvcF9z cmNkaXIvJGFjX2F1eF9kaXIvbWlzc2luZworKyMgICAgZmFpbHMgaWYgJGFjX2F1eF9kaXIgaXMg YWJzb2x1dGUsCisrIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGlu IGEgVlBBVEggYnVpbGQgd2l0aAorKyMgICAgICAgICAgYSByZWxhdGl2ZSAkYWNfYXV4X2Rpcgor KyMKKysjIFRoZSByZWFzb24gb2YgdGhlIGxhdHRlciBmYWlsdXJlIGlzIHRoYXQgJHRvcF9zcmNk aXIgYW5kICRhY19hdXhfZGlyCisrIyBhcmUgYm90aCBwcmVmaXhlZCBieSAkc3JjZGlyLiAgSW4g YW4gaW4tc291cmNlIGJ1aWxkIHRoaXMgaXMgdXN1YWxseQorKyMgaGFybWxlc3MgYmVjYXVzZSAk c3JjZGlyIGlzIGAuJywgYnV0IHRoaW5ncyB3aWxsIGJyb2tlIHdoZW4geW91CisrIyBzdGFydCBh IFZQQVRIIGJ1aWxkIG9yIHVzZSBhbiBhYnNvbHV0ZSAkc3JjZGlyLgorKyMKKysjIFNvIHdlIGNv dWxkIHVzZSBzb21ldGhpbmcgc2ltaWxhciB0byAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNz aW5nLAorKyMgaWZmIHdlIHN0cmlwIHRoZSBsZWFkaW5nICRzcmNkaXIgZnJvbSAkYWNfYXV4X2Rp ci4gIFRoYXQgd291bGQgYmU6CisrIyAgIGFtX2F1eF9kaXI9J1wkKHRvcF9zcmNkaXIpLydgZXhw ciAiJGFjX2F1eF9kaXIiIDogIiRzcmNkaXIvLypcKC4qXCkiYAorKyMgYW5kIHRoZW4gd2Ugd291 bGQgZGVmaW5lICRNSVNTSU5HIGFzCisrIyAgIE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rp ci9taXNzaW5nIgorKyMgVGhpcyB3aWxsIHdvcmsgYXMgbG9uZyBhcyBNSVNTSU5HIGlzIG5vdCBj YWxsZWQgZnJvbSBjb25maWd1cmUsIGJlY2F1c2UKKysjIHVuZm9ydHVuYXRlbHkgJCh0b3Bfc3Jj ZGlyKSBoYXMgbm8gbWVhbmluZyBpbiBjb25maWd1cmUuCisrIyBIb3dldmVyIHRoZXJlIGFyZSBv dGhlciB2YXJpYWJsZXMsIGxpa2UgQ0MsIHdoaWNoIGFyZSBvZnRlbiB1c2VkIGluCisrIyBjb25m aWd1cmUsIGFuZCBjb3VsZCB0aGVyZWZvcmUgbm90IHVzZSB0aGlzICJmaXhlZCIgJGFjX2F1eF9k aXIuCisrIworKyMgQW5vdGhlciBzb2x1dGlvbiwgdXNlZCBoZXJlLCBpcyB0byBhbHdheXMgZXhw YW5kICRhY19hdXhfZGlyIHRvIGFuCisrIyBhYnNvbHV0ZSBQQVRILiAgVGhlIGRyYXdiYWNrIGlz IHRoYXQgdXNpbmcgYWJzb2x1dGUgcGF0aHMgcHJldmVudCBhCisrIyBjb25maWd1cmVkIHRyZWUg dG8gYmUgbW92ZWQgd2l0aG91dCByZWNvbmZpZ3VyYXRpb24uCisrCisrQUNfREVGVU4oW0FNX0FV WF9ESVJfRVhQQU5EXSwKKytbZG5sIFJlbHkgb24gYXV0b2NvbmYgdG8gc2V0IHVwIENEUEFUSCBw cm9wZXJseS4KKytBQ19QUkVSRVEoWzIuNTBdKWRubAorKyMgZXhwYW5kICRhY19hdXhfZGlyIHRv IGFuIGFic29sdXRlIHBhdGgKKythbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCisr XSkKKysKKysjIEFNX0NPTkRJVElPTkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDIw MDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYKKysjIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDgKKysK KysjIEFNX0NPTkRJVElPTkFMKE5BTUUsIFNIRUxMLUNPTkRJVElPTikKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIERlZmluZSBhIGNvbmRpdGlvbmFsLgorK0FD X0RFRlVOKFtBTV9DT05ESVRJT05BTF0sCisrW0FDX1BSRVJFUSgyLjUyKWRubAorKyBpZmVsc2Uo WyQxXSwgW1RSVUVdLCAgW0FDX0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRpb246ICQxXSldLAor KwlbJDFdLCBbRkFMU0VdLCBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0p ZG5sCisrQUNfU1VCU1QoWyQxX1RSVUVdKWRubAorK0FDX1NVQlNUKFskMV9GQUxTRV0pZG5sCisr X0FNX1NVQlNUX05PVE1BS0UoWyQxX1RSVUVdKWRubAorK19BTV9TVUJTVF9OT1RNQUtFKFskMV9G QUxTRV0pZG5sCisraWYgJDI7IHRoZW4KKysgICQxX1RSVUU9CisrICAkMV9GQUxTRT0nIycKKytl bHNlCisrICAkMV9UUlVFPScjJworKyAgJDFfRkFMU0U9CisrZmkKKytBQ19DT05GSUdfQ09NTUFO RFNfUFJFKAorK1tpZiB0ZXN0IC16ICIkeyQxX1RSVUV9IiAmJiB0ZXN0IC16ICIkeyQxX0ZBTFNF fSI7IHRoZW4KKysgIEFDX01TR19FUlJPUihbW2NvbmRpdGlvbmFsICIkMSIgd2FzIG5ldmVyIGRl ZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNv bmRpdGlvbmFsbHkuXV0pCisrZmldKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAs IDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYKKysjIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDkK KysKKysjIFRoZXJlIGFyZSBhIGZldyBkaXJ0eSBoYWNrcyBiZWxvdyB0byBhdm9pZCBsZXR0aW5n IGBBQ19QUk9HX0NDJyBiZQorKyMgd3JpdHRlbiBpbiBjbGVhciwgaW4gd2hpY2ggY2FzZSBhdXRv bWFrZSwgd2hlbiByZWFkaW5nIGFjbG9jYWwubTQsCisrIyB3aWxsIHRoaW5rIGl0IHNlZXMgYSAq dXNlKiwgYW5kIHRoZXJlZm9yZSB3aWxsIHRyaWdnZXIgYWxsIGl0J3MKKysjIEMgc3VwcG9ydCBt YWNoaW5lcnkuICBBbHNvIG5vdGUgdGhhdCBpdCBtZWFucyB0aGF0IGF1dG9zY2FuLCBzZWVpbmcK KysjIENDIGV0Yy4gaW4gdGhlIE1ha2VmaWxlLCB3aWxsIGFzayBmb3IgYW4gQUNfUFJPR19DQyB1 c2UuLi4KKysKKysKKysjIF9BTV9ERVBFTkRFTkNJRVMoTkFNRSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysjIFNlZSBob3cgdGhlIGNvbXBpbGVyIGltcGxlbWVudHMgZGVwZW5kZW5jeSBj aGVja2luZy4KKysjIE5BTUUgaXMgIkNDIiwgIkNYWCIsICJHQ0oiLCBvciAiT0JKQyIuCisrIyBX ZSB0cnkgYSBmZXcgdGVjaG5pcXVlcyBhbmQgdXNlIHRoYXQgdG8gc2V0IGEgc2luZ2xlIGNhY2hl IHZhcmlhYmxlLgorKyMKKysjIFdlIGRvbid0IEFDX1JFUVVJUkUgdGhlIGNvcnJlc3BvbmRpbmcg QUNfUFJPR19DQyBzaW5jZSB0aGUgbGF0dGVyIHdhcworKyMgbW9kaWZpZWQgdG8gaW52b2tlIF9B TV9ERVBFTkRFTkNJRVMoQ0MpOyB3ZSB3b3VsZCBoYXZlIGEgY2lyY3VsYXIKKysjIGRlcGVuZGVu Y3ksIGFuZCBnaXZlbiB0aGF0IHRoZSB1c2VyIGlzIG5vdCBleHBlY3RlZCB0byBydW4gdGhpcyBt YWNybywKKysjIGp1c3QgcmVseSBvbiBBQ19QUk9HX0NDLgorK0FDX0RFRlVOKFtfQU1fREVQRU5E RU5DSUVTXSwKKytbQUNfUkVRVUlSRShbQU1fU0VUX0RFUERJUl0pZG5sCisrQUNfUkVRVUlSRShb QU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdKWRubAorK0FDX1JFUVVJUkUoW0FNX01BS0Vf SU5DTFVERV0pZG5sCisrQUNfUkVRVUlSRShbQU1fREVQX1RSQUNLXSlkbmwKKysKKytpZmVsc2Uo WyQxXSwgQ0MsICAgW2RlcGNjPSIkQ0MiICAgYW1fY29tcGlsZXJfbGlzdD1dLAorKyAgICAgICBb JDFdLCBDWFgsICBbZGVwY2M9IiRDWFgiICBhbV9jb21waWxlcl9saXN0PV0sCisrICAgICAgIFsk MV0sIE9CSkMsIFtkZXBjYz0iJE9CSkMiIGFtX2NvbXBpbGVyX2xpc3Q9J2djYzMgZ2NjJ10sCisr ICAgICAgIFskMV0sIFVQQywgIFtkZXBjYz0iJFVQQyIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKKysg ICAgICAgWyQxXSwgR0NKLCAgW2RlcGNjPSIkR0NKIiAgYW1fY29tcGlsZXJfbGlzdD0nZ2NjMyBn Y2MnXSwKKysgICAgICAgICAgICAgICAgICAgW2RlcGNjPSIkJDEiICAgYW1fY29tcGlsZXJfbGlz dD1dKQorKworK0FDX0NBQ0hFX0NIRUNLKFtkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjY10sCisr ICAgICAgICAgICAgICAgW2FtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlXSwKKytb aWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgor KyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndpc2Ug d2UgY2FuIGVuZCB1cAorKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93 IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKKysgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9y dGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCisrICAjIG1ha2luZyBh IGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUgb3V0 cHV0CisrICAjIGluIEQnLgorKyAgbWtkaXIgY29uZnRlc3QuZGlyCisrICAjIENvcHkgZGVwY29t cCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQor KyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KKysgIGNwICIkYW1fZGVwY29tcCIgY29u ZnRlc3QuZGlyCisrICBjZCBjb25mdGVzdC5kaXIKKysgICMgV2Ugd2lsbCBidWlsZCBvYmplY3Rz IGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQorKyAgIyBpdCBoZWxw cyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UK KysgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVu ZGVuY2llcyBhcyBhCisrICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdp bGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KKysgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdo aWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAorKyAgIyBkaXJlY3RvcnkuCisr ICBta2RpciBzdWIKKysKKysgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5v bmUKKysgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCisrICAgICBhbV9j b21waWxlcl9saXN0PWBzZWQgLW4gWydzL14jKlwoW2EtekEtWjAtOV0qXCkpJC9cMS9wJ10gPCAu L2RlcGNvbXBgCisrICBmaQorKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRv CisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBz b21lIGNvbXBpbGVycworKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3Rz IG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2Ug YSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAj IFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNv bXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdp dGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3 aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZv ciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRp Jy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3Qk aS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4 J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRv bmUKKysgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBv JHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKworKyAgICBjYXNlICRkZXBtb2RlIGluCisrICAgIG5v c2lkZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3Qg Ynkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4 cGxpY2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90 cmFja2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVhawor KyAgICAgIGZpCisrICAgICAgOzsKKysgICAgbm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYworKyAg ICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNo bXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysg Y29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdl IG5lZWQgdG8gZGV0ZWN0IHRoaXMuCisrICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAorKyAgICAg ICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBc CisrICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0 LlRQbyBcCisrICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVz dC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuYyBcCisrICAgICAgICAgPi9kZXYvbnVsbCAyPmNv bmZ0ZXN0LmVyciAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5Q byA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2Nv bmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRlc3Qu JHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAg JHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAg IyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1 ZSB3YXJuaW5ncworKyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28g d2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCisrICAgICAgIyB0aGF0IHNheXMgYW4gb3B0 aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCisrICAgICAgIyBXaGVuIGdpdmVuIC1N UCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRodXNseToKKysgICAgICAjICAgaWNjOiBDb21t YW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVp cmVkCisrICAgICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKKysgICAgICAj ICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAor KyAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAorKyAgICAg ICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsg dGhlbiA6OyBlbHNlCisrICAgICAgICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlw ZT0kZGVwbW9kZQorKyAgICAgICAgYnJlYWsKKysgICAgICBmaQorKyAgICBmaQorKyAgZG9uZQor KworKyAgY2QgLi4KKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKytlbHNlCisrICBhbV9jdl8kMV9k ZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisrZmkKKytdKQorK0FDX1NVQlNUKFskMURF UE1PREVdLCBbZGVwbW9kZT0kYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdKQor K0FNX0NPTkRJVElPTkFMKFthbV9fZmFzdGRlcCQxXSwgWworKyAgdGVzdCAieCRlbmFibGVfZGVw ZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKKysgICYmIHRlc3QgIiRhbV9jdl8kMV9kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzXSkKKytdKQorKworKworKyMgQU1fU0VUX0RFUERJ UgorKyMgLS0tLS0tLS0tLS0tLQorKyMgQ2hvb3NlIGEgZGlyZWN0b3J5IG5hbWUgZm9yIGRlcGVu ZGVuY3kgZmlsZXMuCisrIyBUaGlzIG1hY3JvIGlzIEFDX1JFUVVJUkVkIGluIF9BTV9ERVBFTkRF TkNJRVMKKytBQ19ERUZVTihbQU1fU0VUX0RFUERJUl0sCisrW0FDX1JFUVVJUkUoW0FNX1NFVF9M RUFESU5HX0RPVF0pZG5sCisrQUNfU1VCU1QoW0RFUERJUl0sIFsiJHthbV9fbGVhZGluZ19kb3R9 ZGVwcyJdKWRubAorK10pCisrCisrCisrIyBBTV9ERVBfVFJBQ0sKKysjIC0tLS0tLS0tLS0tLQor K0FDX0RFRlVOKFtBTV9ERVBfVFJBQ0tdLAorK1tBQ19BUkdfRU5BQkxFKGRlcGVuZGVuY3ktdHJh Y2tpbmcsCisrWyAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgIHNwZWVkcyB1cCBvbmUt dGltZSBidWlsZAorKyAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWpl Y3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJhY3RvcnNdKQorK2lmIHRlc3QgIngkZW5hYmxlX2RlcGVu ZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgorKyAgYW1fZGVwY29tcD0iJGFjX2F1eF9kaXIv ZGVwY29tcCIKKysgIEFNREVQQkFDS1NMQVNIPSdcJworK2ZpCisrQU1fQ09ORElUSU9OQUwoW0FN REVQXSwgW3Rlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhub10pCisrQUNf U1VCU1QoW0FNREVQQkFDS1NMQVNIXSlkbmwKKytfQU1fU1VCU1RfTk9UTUFLRShbQU1ERVBCQUNL U0xBU0hdKWRubAorK10pCisrCisrIyBHZW5lcmF0ZSBjb2RlIHRvIHNldCB1cCBkZXBlbmRlbmN5 IHRyYWNraW5nLiAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJpZ2h0 IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA4CisrIyBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K KysKKysjc2VyaWFsIDQKKysKKysjIF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUworKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW19BTV9PVVRQVVRfREVQ RU5ERU5DWV9DT01NQU5EU10sCisrWyMgQXV0b2NvbmYgMi42MiBxdW90ZXMgLS1maWxlIGFyZ3Vt ZW50cyBmb3IgZXZhbCwgYnV0IG5vdCB3aGVuIGZpbGVzCisrIyBhcmUgbGlzdGVkIHdpdGhvdXQg LS1maWxlLiAgTGV0J3MgcGxheSBzYWZlIGFuZCBvbmx5IGVuYWJsZSB0aGUgZXZhbAorKyMgaWYg d2UgZGV0ZWN0IHRoZSBxdW90aW5nLgorK2Nhc2UgJENPTkZJR19GSUxFUyBpbgorKypcJyopIGV2 YWwgc2V0IHggIiRDT05GSUdfRklMRVMiIDs7CisrKikgICBzZXQgeCAkQ09ORklHX0ZJTEVTIDs7 CisrZXNhYworK3NoaWZ0CisrZm9yIG1mCisrZG8KKysgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVw IHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCisrICBtZj1gZWNobyAiJG1mIiB8IHNlZCAtZSAn cy86LiokLy8nYAorKyAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJh dGVkIE1ha2VmaWxlIG9yIG5vdC4KKysgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5IHRoZSBmaWxl cyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKKysgICMgc29tZSBwZW9wbGUgcmVuYW1lIHRoZW07 IHNvIGluc3RlYWQgd2UgbG9vayBhdCB0aGUgZmlsZSBjb250ZW50LgorKyAgIyBHcmVwJ2luZyB0 aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKKysg ICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24gdG9wIG9mIGVhY2ggZmls ZSB0byBzYXkgc28uCisrICAjIEdyZXAnaW5nIHRoZSB3aG9sZSBmaWxlIGlzIG5vdCBnb29kIGVp dGhlcjogQUlYIGdyZXAgaGFzIGEgbGluZQorKyAgIyBsaW1pdCBvZiAyMDQ4LCBidXQgYWxsIHNl ZCdzIHdlIGtub3cgaGF2ZSB1bmRlcnN0YW5kIGF0IGxlYXN0IDQwMDAuCisrICBpZiBzZWQgLW4g J3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcgIiRtZiIgfCBncmVwIFggPi9kZXYv bnVsbCAyPiYxOyB0aGVuCisrICAgIGRpcnBhcnQ9YEFTX0RJUk5BTUUoIiRtZiIpYAorKyAgZWxz ZQorKyAgICBjb250aW51ZQorKyAgZmkKKysgICMgRXh0cmFjdCB0aGUgZGVmaW5pdGlvbiBvZiBE RVBESVIsIGFtX19pbmNsdWRlLCBhbmQgYW1fX3F1b3RlCisrICAjIGZyb20gdGhlIE1ha2VmaWxl IHdpdGhvdXQgcnVubmluZyBgbWFrZScuCisrICBERVBESVI9YHNlZCAtbiAncy9eREVQRElSID0g Ly9wJyA8ICIkbWYiYAorKyAgdGVzdCAteiAiJERFUERJUiIgJiYgY29udGludWUKKysgIGFtX19p bmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAorKyAgdGVzdCAt eiAiYW1fX2luY2x1ZGUiICYmIGNvbnRpbnVlCisrICBhbV9fcXVvdGU9YHNlZCAtbiAncy9eYW1f X3F1b3RlID0gLy9wJyA8ICIkbWYiYAorKyAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBi ZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKKysgIFU9YHNlZCAtbiAncy9eVSA9 IC8vcCcgPCAiJG1mImAKKysgICMgRmluZCBhbGwgZGVwZW5kZW5jeSBvdXRwdXQgZmlsZXMsIHRo ZXkgYXJlIGluY2x1ZGVkIGZpbGVzIHdpdGgKKysgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVz LiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQorKyAgIyBzaW1wbGVzdCBh cHByb2FjaCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2YWx1ZSBpbiB0aGUK KysgICMgZXhwYW5zaW9uLgorKyAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCisrICAgIHMvXiRhbV9f aW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBESVIpLipcKSRhbV9fcXVvdGUiJyQvXDEvcCcgPCIk bWYiIHwgXAorKyAgICAgICBzZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9nJyAtZSAn cy9cJFUvJyIkVSInL2cnYDsgZG8KKysgICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlz dHMuCisrICAgIHRlc3QgLWYgIiRkaXJwYXJ0LyRmaWxlIiAmJiBjb250aW51ZQorKyAgICBmZGly PWBBU19ESVJOQU1FKFsiJGZpbGUiXSlgCisrICAgIEFTX01LRElSX1AoWyRkaXJwYXJ0LyRmZGly XSkKKysgICAgIyBlY2hvICJjcmVhdGluZyAkZGlycGFydC8kZmlsZSIKKysgICAgZWNobyAnIyBk dW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCisrICBkb25lCisrZG9uZQorK10pIyBfQU1fT1VUUFVU X0RFUEVOREVOQ1lfQ09NTUFORFMKKysKKysKKysjIEFNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1B TkRTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgVGhpcyBtYWNybyBzaG91 bGQgb25seSBiZSBpbnZva2VkIG9uY2UgLS0gdXNlIHZpYSBBQ19SRVFVSVJFLgorKyMKKysjIFRo aXMgY29kZSBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tp bmcKKysjIGlzIGVuYWJsZWQuICBGSVhNRS4gIFRoaXMgY3JlYXRlcyBlYWNoIGAuUCcgZmlsZSB0 aGF0IHdlIHdpbGwKKysjIG5lZWQgaW4gb3JkZXIgdG8gYm9vdHN0cmFwIHRoZSBkZXBlbmRlbmN5 IGhhbmRsaW5nIGNvZGUuCisrQUNfREVGVU4oW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRT XSwKKytbQUNfQ09ORklHX0NPTU1BTkRTKFtkZXBmaWxlc10sCisrICAgICBbdGVzdCB4IiRBTURF UF9UUlVFIiAhPSB4IiIgfHwgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKKysgICAg IFtBTURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFjX2F1eF9kaXIiXSkKKytd KQorKworKyMgRG8gYWxsIHRoZSB3b3JrIGZvciBBdXRvbWFrZS4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5 NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwKKysjIDIwMDUsIDIw MDYsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxl IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMTMKKysKKysjIFRoaXMgbWFjcm8gYWN0dWFsbHkgZG9l cyB0b28gbXVjaC4gIFNvbWUgY2hlY2tzIGFyZSBvbmx5IG5lZWRlZCBpZgorKyMgeW91ciBwYWNr YWdlIGRvZXMgY2VydGFpbiB0aGluZ3MuICBCdXQgdGhpcyBpc24ndCByZWFsbHkgYSBiaWcgZGVh bC4KKysKKysjIEFNX0lOSVRfQVVUT01BS0UoUEFDS0FHRSwgVkVSU0lPTiwgW05PLURFRklORV0p CisrIyBBTV9JTklUX0FVVE9NQUtFKFtPUFRJT05TXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUaGUgY2FsbCB3aXRoIFBBQ0tBR0UgYW5k IFZFUlNJT04gYXJndW1lbnRzIGlzIHRoZSBvbGQgc3R5bGUKKysjIGNhbGwgKHByZSBhdXRvY29u Zi0yLjUwKSwgd2hpY2ggaXMgYmVpbmcgcGhhc2VkIG91dC4gIFBBQ0tBR0UKKysjIGFuZCBWRVJT SU9OIHNob3VsZCBub3cgYmUgcGFzc2VkIHRvIEFDX0lOSVQgYW5kIHJlbW92ZWQgZnJvbQorKyMg dGhlIGNhbGwgdG8gQU1fSU5JVF9BVVRPTUFLRS4KKysjIFdlIHN1cHBvcnQgYm90aCBjYWxsIHN0 eWxlcyBmb3IgdGhlIHRyYW5zaXRpb24uICBBZnRlcgorKyMgdGhlIG5leHQgQXV0b21ha2UgcmVs ZWFzZSwgQXV0b2NvbmYgY2FuIG1ha2UgdGhlIEFDX0lOSVQKKysjIGFyZ3VtZW50cyBtYW5kYXRv cnksIGFuZCB0aGVuIHdlIGNhbiBkZXBlbmQgb24gYSBuZXcgQXV0b2NvbmYKKysjIHJlbGVhc2Ug YW5kIGRyb3AgdGhlIG9sZCBjYWxsIHN1cHBvcnQuCisrQUNfREVGVU4oW0FNX0lOSVRfQVVUT01B S0VdLAorK1tBQ19QUkVSRVEoWzIuNjBdKWRubAorK2RubCBBdXRvY29uZiB3YW50cyB0byBkaXNh bGxvdyBBTV8gbmFtZXMuICBXZSBleHBsaWNpdGx5IGFsbG93CisrZG5sIHRoZSBvbmVzIHdlIGNh cmUgYWJvdXQuCisrbTRfcGF0dGVybl9hbGxvdyhbXkFNX1tBLVpdK0ZMQUdTJF0pZG5sCisrQUNf UkVRVUlSRShbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0pZG5sCisrQUNfUkVRVUlS RShbQUNfUFJPR19JTlNUQUxMXSlkbmwKKytpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAh PSAiYHB3ZGAiOyB0aGVuCisrICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIp ICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91dHB1dAorKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCBy ZXBlYXRlZCAiLUkuIgorKyAgQUNfU1VCU1QoW2FtX19pc3JjXSwgWycgLUkkKHNyY2RpciknXSlf QU1fU1VCU1RfTk9UTUFLRShbYW1fX2lzcmNdKWRubAorKyAgIyB0ZXN0IHRvIHNlZSBpZiBzcmNk aXIgYWxyZWFkeSBjb25maWd1cmVkCisrICBpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1 czsgdGhlbgorKyAgICBBQ19NU0dfRVJST1IoW3NvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25m aWd1cmVkOyBydW4gIm1ha2UgZGlzdGNsZWFuIiB0aGVyZSBmaXJzdF0pCisrICBmaQorK2ZpCisr CisrIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCisraWYgdGVzdCAteiAiJENZR1BBVEhf VyI7IHRoZW4KKysgIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVs bDsgdGhlbgorKyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCisrICBlbHNlCisrICAgIENZR1BB VEhfVz1lY2hvCisrICBmaQorK2ZpCisrQUNfU1VCU1QoW0NZR1BBVEhfV10pCisrCisrIyBEZWZp bmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgorK2RubCBEaXN0aW5ndWlzaCBiZXR3ZWVu IG9sZC1zdHlsZSBhbmQgbmV3LXN0eWxlIGNhbGxzLgorK200X2lmdmFsKFskMl0sCisrW200X2lm dmFsKFskM10sIFtfQU1fU0VUX09QVElPTihbbm8tZGVmaW5lXSldKWRubAorKyBBQ19TVUJTVChb UEFDS0FHRV0sIFskMV0pZG5sCisrIEFDX1NVQlNUKFtWRVJTSU9OXSwgWyQyXSldLAorK1tfQU1f U0VUX09QVElPTlMoWyQxXSlkbmwKKytkbmwgRGlhZ25vc2Ugb2xkLXN0eWxlIEFDX0lOSVQgd2l0 aCBuZXctc3R5bGUgQU1fQVVUT01BS0VfSU5JVC4KKyttNF9pZihtNF9pZmRlZihbQUNfUEFDS0FH RV9OQU1FXSwgMSltNF9pZmRlZihbQUNfUEFDS0FHRV9WRVJTSU9OXSwgMSksIDExLCwKKysgIFtt NF9mYXRhbChbQUNfSU5JVCBzaG91bGQgYmUgY2FsbGVkIHdpdGggcGFja2FnZSBhbmQgdmVyc2lv biBhcmd1bWVudHNdKV0pZG5sCisrIEFDX1NVQlNUKFtQQUNLQUdFXSwgWydBQ19QQUNLQUdFX1RB Uk5BTUUnXSlkbmwKKysgQUNfU1VCU1QoW1ZFUlNJT05dLCBbJ0FDX1BBQ0tBR0VfVkVSU0lPTidd KV0pZG5sCisrCisrX0FNX0lGX09QVElPTihbbm8tZGVmaW5lXSwsCisrW0FDX0RFRklORV9VTlFV T1RFRChQQUNLQUdFLCAiJFBBQ0tBR0UiLCBbTmFtZSBvZiBwYWNrYWdlXSkKKysgQUNfREVGSU5F X1VOUVVPVEVEKFZFUlNJT04sICIkVkVSU0lPTiIsIFtWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdl XSldKWRubAorKworKyMgU29tZSB0b29scyBBdXRvbWFrZSBuZWVkcy4KKytBQ19SRVFVSVJFKFtB TV9TQU5JVFlfQ0hFQ0tdKWRubAorK0FDX1JFUVVJUkUoW0FDX0FSR19QUk9HUkFNXSlkbmwKKytB TV9NSVNTSU5HX1BST0coQUNMT0NBTCwgYWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0pCisrQU1f TUlTU0lOR19QUk9HKEFVVE9DT05GLCBhdXRvY29uZikKKytBTV9NSVNTSU5HX1BST0coQVVUT01B S0UsIGF1dG9tYWtlLSR7YW1fX2FwaV92ZXJzaW9ufSkKKytBTV9NSVNTSU5HX1BST0coQVVUT0hF QURFUiwgYXV0b2hlYWRlcikKKytBTV9NSVNTSU5HX1BST0coTUFLRUlORk8sIG1ha2VpbmZvKQor K0FNX1BST0dfSU5TVEFMTF9TSAorK0FNX1BST0dfSU5TVEFMTF9TVFJJUAorK0FDX1JFUVVJUkUo W0FNX1BST0dfTUtESVJfUF0pZG5sCisrIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFy Z2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KKysjIHNvbWUgcGxhdGZvcm1zLgorK0FD X1JFUVVJUkUoW0FDX1BST0dfQVdLXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX01BS0VfU0VU XSlkbmwKKytBQ19SRVFVSVJFKFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorK19BTV9JRl9PUFRJ T04oW3Rhci11c3Rhcl0sIFtfQU1fUFJPR19UQVIoW3VzdGFyXSldLAorKyAgICAgICAgICAgICAg W19BTV9JRl9PUFRJT04oW3Rhci1wYXhdLCBbX0FNX1BST0dfVEFSKFtwYXhdKV0sCisrCSAgICAg IAkJICAgICBbX0FNX1BST0dfVEFSKFt2N10pXSldKQorK19BTV9JRl9PUFRJT04oW25vLWRlcGVu ZGVuY2llc10sLAorK1tBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DQ10sCisrICAgICAgICAg ICAgICAgICAgW19BTV9ERVBFTkRFTkNJRVMoQ0MpXSwKKysgICAgICAgICAgICAgICAgICBbZGVm aW5lKFtBQ19QUk9HX0NDXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZm4oW0FDX1BS T0dfQ0NdKVtfQU1fREVQRU5ERU5DSUVTKENDKV0pXSlkbmwKKytBQ19QUk9WSURFX0lGRUxTRShb QUNfUFJPR19DWFhdLAorKyAgICAgICAgICAgICAgICAgIFtfQU1fREVQRU5ERU5DSUVTKENYWCld LAorKyAgICAgICAgICAgICAgICAgIFtkZWZpbmUoW0FDX1BST0dfQ1hYXSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIGRlZm4oW0FDX1BST0dfQ1hYXSlbX0FNX0RFUEVOREVOQ0lFUyhDWFgp XSldKWRubAorK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX09CSkNdLAorKyAgICAgICAgICAg ICAgICAgIFtfQU1fREVQRU5ERU5DSUVTKE9CSkMpXSwKKysgICAgICAgICAgICAgICAgICBbZGVm aW5lKFtBQ19QUk9HX09CSkNdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmbihbQUNf UFJPR19PQkpDXSlbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0pXSlkbmwKKytdKQorK10pCisrCisr CisrIyBXaGVuIGNvbmZpZy5zdGF0dXMgZ2VuZXJhdGVzIGEgaGVhZGVyLCB3ZSBtdXN0IHVwZGF0 ZSB0aGUgc3RhbXAtaCBmaWxlLgorKyMgVGhpcyBmaWxlIHJlc2lkZXMgaW4gdGhlIHNhbWUgZGly ZWN0b3J5IGFzIHRoZSBjb25maWcgaGVhZGVyCisrIyB0aGF0IGlzIGdlbmVyYXRlZC4gIFRoZSBz dGFtcCBmaWxlcyBhcmUgbnVtYmVyZWQgdG8gaGF2ZSBkaWZmZXJlbnQgbmFtZXMuCisrCisrIyBB dXRvY29uZiBjYWxscyBfQUNfQU1fQ09ORklHX0hFQURFUl9IT09LICh3aGVuIGRlZmluZWQpIGlu IHRoZQorKyMgbG9vcCB3aGVyZSBjb25maWcuc3RhdHVzIGNyZWF0ZXMgdGhlIGhlYWRlcnMsIHNv IHdlIGNhbiBnZW5lcmF0ZQorKyMgb3VyIHN0YW1wIGZpbGVzIHRoZXJlLgorK0FDX0RFRlVOKFtf QUNfQU1fQ09ORklHX0hFQURFUl9IT09LXSwKKytbIyBDb21wdXRlICQxJ3MgaW5kZXggaW4gJGNv bmZpZ19oZWFkZXJzLgorK19hbV9hcmc9JDEKKytfYW1fc3RhbXBfY291bnQ9MQorK2ZvciBfYW1f aGVhZGVyIGluICRjb25maWdfaGVhZGVycyA6OyBkbworKyAgY2FzZSAkX2FtX2hlYWRlciBpbgor KyAgICAkX2FtX2FyZyB8ICRfYW1fYXJnOiogKQorKyAgICAgIGJyZWFrIDs7CisrICAgICogKQor KyAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKKysg IGVzYWMKKytkb25lCisrZWNobyAidGltZXN0YW1wIGZvciAkX2FtX2FyZyIgPmBBU19ESVJOQU1F KFsiJF9hbV9hcmciXSlgL3N0YW1wLWhbXSRfYW1fc3RhbXBfY291bnRdKQorKworKyMgQ29weXJp Z2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIEFNX1BST0dfSU5TVEFMTF9TSAorKyMg LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBEZWZpbmUgJGluc3RhbGxfc2guCisrQUNfREVGVU4oW0FN X1BST0dfSU5TVEFMTF9TSF0sCisrW0FDX1JFUVVJUkUoW0FNX0FVWF9ESVJfRVhQQU5EXSlkbmwK KytpbnN0YWxsX3NoPSR7aW5zdGFsbF9zaC0iXCQoU0hFTEwpICRhbV9hdXhfZGlyL2luc3RhbGwt c2gifQorK0FDX1NVQlNUKGluc3RhbGxfc2gpXSkKKysKKysjIENvcHlyaWdodCAoQykgMjAwMywg MjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlz IGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRo IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVz ZXJ2ZWQuCisrCisrIyBzZXJpYWwgMgorKworKyMgQ2hlY2sgd2hldGhlciB0aGUgdW5kZXJseWlu ZyBmaWxlLXN5c3RlbSBzdXBwb3J0cyBmaWxlbmFtZXMKKysjIHdpdGggYSBsZWFkaW5nIGRvdC4g IEZvciBpbnN0YW5jZSBNUy1ET1MgZG9lc24ndC4KKytBQ19ERUZVTihbQU1fU0VUX0xFQURJTkdf RE9UXSwKKytbcm0gLXJmIC50c3QgMj4vZGV2L251bGwKKytta2RpciAudHN0IDI+L2Rldi9udWxs CisraWYgdGVzdCAtZCAudHN0OyB0aGVuCisrICBhbV9fbGVhZGluZ19kb3Q9LgorK2Vsc2UKKysg IGFtX19sZWFkaW5nX2RvdD1fCisrZmkKKytybWRpciAudHN0IDI+L2Rldi9udWxsCisrQUNfU1VC U1QoW2FtX19sZWFkaW5nX2RvdF0pXSkKKysKKysjIENoZWNrIHRvIHNlZSBob3cgJ21ha2UnIHRy ZWF0cyBpbmNsdWRlcy4JICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJp Z2h0IChDKSAyMDAxLCAyMDAyLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCAzCisrCisrIyBB TV9NQUtFX0lOQ0xVREUoKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHRvIHNlZSBo b3cgbWFrZSB0cmVhdHMgaW5jbHVkZXMuCisrQUNfREVGVU4oW0FNX01BS0VfSU5DTFVERV0sCisr W2FtX21ha2U9JHtNQUtFLW1ha2V9CisrY2F0ID4gY29uZmluYyA8PCAnRU5EJworK2FtX19kb2l0 OgorKwlAZWNobyBkb25lCisrLlBIT05ZOiBhbV9fZG9pdAorK0VORAorKyMgSWYgd2UgZG9uJ3Qg ZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50IG91dCB0aGUgY29kZS4KKytB Q19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2VdKQor K2FtX19pbmNsdWRlPSIjIgorK2FtX19xdW90ZT0KKytfYW1fcmVzdWx0PW5vbmUKKysjIEZpcnN0 IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorK2VjaG8gImluY2x1ZGUgY29uZmluYyIgPiBj b25mbWYKKysjIFdlIGdyZXAgb3V0IGBFbnRlcmluZyBkaXJlY3RvcnknIGFuZCBgTGVhdmluZyBk aXJlY3RvcnknCisrIyBtZXNzYWdlcyB3aGljaCBjYW4gb2NjdXIgaWYgYHcnIGVuZHMgdXAgaW4g TUFLRUZMQUdTLgorKyMgSW4gcGFydGljdWxhciB3ZSBkb24ndCBsb29rIGF0IGBebWFrZTonIGJl Y2F1c2UgR05VIG1ha2UgbWlnaHQKKysjIGJlIGludm9rZWQgdW5kZXIgc29tZSBvdGhlciBuYW1l ICh1c3VhbGx5ICJnbWFrZSIpLCBpbiB3aGljaAorKyMgY2FzZSBpdCBwcmludHMgaXRzIG5ldyBu YW1lIGluc3RlYWQgb2YgYG1ha2UnLgorK2lmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYg Mj4gL2Rldi9udWxsIHwgZ3JlcCAtdiAnaW5nIGRpcmVjdG9yeSdgIiA9ICJkb25lIjsgdGhlbgor KyAgIGFtX19pbmNsdWRlPWluY2x1ZGUKKysgICBhbV9fcXVvdGU9CisrICAgX2FtX3Jlc3VsdD1H TlUKKytmaQorKyMgTm93IHRyeSBCU0QgbWFrZSBzdHlsZSBpbmNsdWRlLgorK2lmIHRlc3QgIiRh bV9faW5jbHVkZSIgPSAiIyI7IHRoZW4KKysgICBlY2hvICcuaW5jbHVkZSAiY29uZmluYyInID4g Y29uZm1mCisrICAgaWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxg IiA9ICJkb25lIjsgdGhlbgorKyAgICAgIGFtX19pbmNsdWRlPS5pbmNsdWRlCisrICAgICAgYW1f X3F1b3RlPSJcIiIKKysgICAgICBfYW1fcmVzdWx0PUJTRAorKyAgIGZpCisrZmkKKytBQ19TVUJT VChbYW1fX2luY2x1ZGVdKQorK0FDX1NVQlNUKFthbV9fcXVvdGVdKQorK0FDX01TR19SRVNVTFQo WyRfYW1fcmVzdWx0XSkKKytybSAtZiBjb25maW5jIGNvbmZtZgorK10pCisrCisrIyBGYWtlIHRo ZSBleGlzdGVuY2Ugb2YgcHJvZ3JhbXMgdGhhdCBHTlUgbWFpbnRhaW5lcnMgdXNlLiAgLSotIEF1 dG9jb25mIC0qLQorKworKyMgQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk5LCAyMDAwLCAyMDAxLCAy MDAzLCAyMDA0LCAyMDA1CisrIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisr IyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA1CisrCisrIyBBTV9NSVNTSU5HX1BS T0coTkFNRSwgUFJPR1JBTSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FD X0RFRlVOKFtBTV9NSVNTSU5HX1BST0ddLAorK1tBQ19SRVFVSVJFKFtBTV9NSVNTSU5HX0hBU19S VU5dKQorKyQxPSR7JDEtIiR7YW1fbWlzc2luZ19ydW59JDIifQorK0FDX1NVQlNUKCQxKV0pCisr CisrCisrIyBBTV9NSVNTSU5HX0hBU19SVU4KKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRGVm aW5lIE1JU1NJTkcgaWYgbm90IGRlZmluZWQgc28gZmFyIGFuZCB0ZXN0IGlmIGl0IHN1cHBvcnRz IC0tcnVuLgorKyMgSWYgaXQgZG9lcywgc2V0IGFtX21pc3NpbmdfcnVuIHRvIHVzZSBpdCwgb3Ro ZXJ3aXNlLCB0byBub3RoaW5nLgorK0FDX0RFRlVOKFtBTV9NSVNTSU5HX0hBU19SVU5dLAorK1tB Q19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCisrQUNfUkVRVUlSRV9BVVhfRklMRShb bWlzc2luZ10pZG5sCisrdGVzdCB4IiR7TUlTU0lORytzZXR9IiA9IHhzZXQgfHwgTUlTU0lORz0i XCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCisrIyBVc2UgZXZhbCB0byBleHBhbmQgJFNI RUxMCisraWYgZXZhbCAiJE1JU1NJTkcgLS1ydW4gdHJ1ZSI7IHRoZW4KKysgIGFtX21pc3Npbmdf cnVuPSIkTUlTU0lORyAtLXJ1biAiCisrZWxzZQorKyAgYW1fbWlzc2luZ19ydW49CisrICBBQ19N U0dfV0FSTihbYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmddKQorK2ZpCisr XSkKKysKKysjIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBB TV9QUk9HX01LRElSX1AKKysjIC0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9yIGBta2RpciAt cCcuCisrQUNfREVGVU4oW0FNX1BST0dfTUtESVJfUF0sCisrW0FDX1BSRVJFUShbMi42MF0pZG5s CisrQUNfUkVRVUlSRShbQUNfUFJPR19NS0RJUl9QXSlkbmwKKytkbmwgQXV0b21ha2UgMS44IHRv IDEuOS42IHVzZWQgdG8gZGVmaW5lIG1rZGlyX3AuICBXZSBub3cgdXNlIE1LRElSX1AsCisrZG5s IHdoaWxlIGtlZXBpbmcgYSBkZWZpbml0aW9uIG9mIG1rZGlyX3AgZm9yIGJhY2t3YXJkIGNvbXBh dGliaWxpdHkuCisrZG5sIEBNS0RJUl9QQCBpcyBtYWdpYzogQUNfT1VUUFVUIGFkanVzdHMgaXRz IHZhbHVlIGZvciBlYWNoIE1ha2VmaWxlLgorK2RubCBIb3dldmVyIHdlIGNhbm5vdCBkZWZpbmUg bWtkaXJfcCBhcyAkKE1LRElSX1ApIGZvciB0aGUgc2FrZSBvZgorK2RubCBNYWtlZmlsZS5pbnMg dGhhdCBkbyBub3QgZGVmaW5lIE1LRElSX1AsIHNvIHdlIGRvIG91ciBvd24KKytkbmwgYWRqdXN0 bWVudCB1c2luZyB0b3BfYnVpbGRkaXIgKHdoaWNoIGlzIGRlZmluZWQgbW9yZSBvZnRlbiB0aGFu CisrZG5sIE1LRElSX1ApLgorK0FDX1NVQlNUKFtta2Rpcl9wXSwgWyIkTUtESVJfUCJdKWRubAor K2Nhc2UgJG1rZGlyX3AgaW4KKysgIFtbXFwvJF1dKiB8ID86W1tcXC9dXSopIDs7CisrICAqLyop IG1rZGlyX3A9IlwkKHRvcF9idWlsZGRpcikvJG1rZGlyX3AiIDs7CisrZXNhYworK10pCisrCisr IyBIZWxwZXIgZnVuY3Rpb25zIGZvciBvcHRpb24gaGFuZGxpbmcuICAgICAgICAgICAgICAgICAg ICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAyLCAyMDAz LCAyMDA1LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlz IGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMg Z2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwK KysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNl IGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA0CisrCisrIyBfQU1fTUFOR0xFX09QVElPTihO QU1FKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbX0FNX01BTkdMRV9P UFRJT05dLAorK1tbX0FNX09QVElPTl9dbTRfYnBhdHN1YnN0KCQxLCBbW15hLXpBLVowLTlfXV0s IFtfXSldKQorKworKyMgX0FNX1NFVF9PUFRJT04oTkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgU2V0IG9wdGlvbiBOQU1FLiAgUHJlc2VudGx5IHRoYXQgb25seSBt ZWFucyBkZWZpbmluZyBhIGZsYWcgZm9yIHRoaXMgb3B0aW9uLgorK0FDX0RFRlVOKFtfQU1fU0VU X09QVElPTl0sCisrW200X2RlZmluZShfQU1fTUFOR0xFX09QVElPTihbJDFdKSwgMSldKQorKwor KyMgX0FNX1NFVF9PUFRJT05TKE9QVElPTlMpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBPUFRJT05TIGlzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgQXV0b21h a2Ugb3B0aW9ucy4KKytBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05TXSwKKytbbTRfZm9yZWFjaF93 KFtfQU1fT3B0aW9uXSwgWyQxXSwgW19BTV9TRVRfT1BUSU9OKF9BTV9PcHRpb24pXSldKQorKwor KyMgX0FNX0lGX09QVElPTihPUFRJT04sIElGLVNFVCwgW0lGLU5PVC1TRVRdKQorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRXhlY3V0ZSBJRi1TRVQg aWYgT1BUSU9OIGlzIHNldCwgSUYtTk9ULVNFVCBvdGhlcndpc2UuCisrQUNfREVGVU4oW19BTV9J Rl9PUFRJT05dLAorK1ttNF9pZnNldChfQU1fTUFOR0xFX09QVElPTihbJDFdKSwgWyQyXSwgWyQz XSldKQorKworKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGJ1aWxkIGVudmlyb25tZW50 IGlzIHNhbmUuICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMTk5Niwg MTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNQorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNAorKworKyMg QU1fU0FOSVRZX0NIRUNLCisrIyAtLS0tLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbQU1fU0FOSVRZ X0NIRUNLXSwKKytbQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlz IHNhbmVdKQorKyMgSnVzdCBpbiBjYXNlCisrc2xlZXAgMQorK2VjaG8gdGltZXN0YW1wID4gY29u ZnRlc3QuZmlsZQorKyMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVy IHRoZSBjdXJyZW50IHNoZWxsJ3MKKysjIGFyZ3VtZW50cy4gIE11c3QgdHJ5IC1MIGZpcnN0IGlu IGNhc2UgY29uZmlndXJlIGlzIGFjdHVhbGx5IGEKKysjIHN5bWxpbms7IHNvbWUgc3lzdGVtcyBw bGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0aW1lIG9mIHN5bWxpbmtzCisrIyAoZWcgRnJl ZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNvbnRhaW5pbmcKKysj IGRpcmVjdG9yeSkuCisraWYgKAorKyAgIHNldCBYIGBscyAtTHQgJHNyY2Rpci9jb25maWd1cmUg Y29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCisrICAgaWYgdGVzdCAiJFsqXSIgPSAiWCI7IHRo ZW4KKysgICAgICAjIC1MIGRpZG4ndCB3b3JrLgorKyAgICAgIHNldCBYIGBscyAtdCAkc3JjZGly L2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlYAorKyAgIGZpCisrICAgcm0gLWYgY29uZnRlc3QuZmls ZQorKyAgIGlmIHRlc3QgIiRbKl0iICE9ICJYICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZp bGUiIFwKKysgICAgICAmJiB0ZXN0ICIkWypdIiAhPSAiWCBjb25mdGVzdC5maWxlICRzcmNkaXIv Y29uZmlndXJlIjsgdGhlbgorKworKyAgICAgICMgSWYgbmVpdGhlciBtYXRjaGVkLCB0aGVuIHdl IGhhdmUgYSBicm9rZW4gbHMuICBUaGlzIGNhbiBoYXBwZW4KKysgICAgICAjIGlmLCBmb3IgaW5z dGFuY2UsIENPTkZJR19TSEVMTCBpcyBiYXNoIGFuZCBpdCBpbmhlcml0cyBhCisrICAgICAgIyBi cm9rZW4gbHMgYWxpYXMgZnJvbSB0aGUgZW52aXJvbm1lbnQuICBUaGlzIGhhcyBhY3R1YWxseQor KyAgICAgICMgaGFwcGVuZWQuICBTdWNoIGEgc3lzdGVtIGNvdWxkIG5vdCBiZSBjb25zaWRlcmVk ICJzYW5lIi4KKysgICAgICBBQ19NU0dfRVJST1IoW2xzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1h a2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KKythbGlhcyBpbiB5b3VyIGVudmlyb25tZW50 XSkKKysgICBmaQorKworKyAgIHRlc3QgIiRbMl0iID0gY29uZnRlc3QuZmlsZQorKyAgICkKKyt0 aGVuCisrICAgIyBPay4KKysgICA6CisrZWxzZQorKyAgIEFDX01TR19FUlJPUihbbmV3bHkgY3Jl YXRlZCBmaWxlIGlzIG9sZGVyIHRoYW4gZGlzdHJpYnV0ZWQgZmlsZXMhCisrQ2hlY2sgeW91ciBz eXN0ZW0gY2xvY2tdKQorK2ZpCisrQUNfTVNHX1JFU1VMVCh5ZXMpXSkKKysKKysjIENvcHlyaWdo dCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr IworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBBTV9QUk9HX0lOU1RBTExfU1RSSVAKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgT25lIGlzc3VlIHdpdGggdmVuZG9yIGBpbnN0YWxs JyAoZXZlbiBHTlUpIGlzIHRoYXQgeW91IGNhbid0CisrIyBzcGVjaWZ5IHRoZSBwcm9ncmFtIHVz ZWQgdG8gc3RyaXAgYmluYXJpZXMuICBUaGlzIGlzIGVzcGVjaWFsbHkKKysjIGFubm95aW5nIGlu IGNyb3NzLWNvbXBpbGluZyBlbnZpcm9ubWVudHMsIHdoZXJlIHRoZSBidWlsZCdzIHN0cmlwCisr IyBpcyB1bmxpa2VseSB0byBoYW5kbGUgdGhlIGhvc3QncyBiaW5hcmllcy4KKysjIEZvcnR1bmF0 ZWx5IGluc3RhbGwtc2ggd2lsbCBob25vciBhIFNUUklQUFJPRyB2YXJpYWJsZSwgc28gd2UKKysj IGFsd2F5cyB1c2UgaW5zdGFsbC1zaCBpbiBgbWFrZSBpbnN0YWxsLXN0cmlwJywgYW5kIGluaXRp YWxpemUKKysjIFNUUklQUFJPRyB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgU1RSSVAgdmFyaWFibGUg KHNldCBieSB0aGUgdXNlcikuCisrQUNfREVGVU4oW0FNX1BST0dfSU5TVEFMTF9TVFJJUF0sCisr W0FDX1JFUVVJUkUoW0FNX1BST0dfSU5TVEFMTF9TSF0pZG5sCisrIyBJbnN0YWxsZWQgYmluYXJp ZXMgYXJlIHVzdWFsbHkgc3RyaXBwZWQgdXNpbmcgYHN0cmlwJyB3aGVuIHRoZSB1c2VyCisrIyBy dW4gYG1ha2UgaW5zdGFsbC1zdHJpcCcuICBIb3dldmVyIGBzdHJpcCcgbWlnaHQgbm90IGJlIHRo ZSByaWdodAorKyMgdG9vbCB0byB1c2UgaW4gY3Jvc3MtY29tcGlsYXRpb24gZW52aXJvbm1lbnRz LCB0aGVyZWZvcmUgQXV0b21ha2UKKysjIHdpbGwgaG9ub3IgdGhlIGBTVFJJUCcgZW52aXJvbm1l bnQgdmFyaWFibGUgdG8gb3ZlcnJ1bGUgdGhpcyBwcm9ncmFtLgorK2RubCBEb24ndCB0ZXN0IGZv ciAkY3Jvc3NfY29tcGlsaW5nID0geWVzLCBiZWNhdXNlIGl0IG1pZ2h0IGJlIGBtYXliZScuCisr aWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgIT0gbm87IHRoZW4KKysgIEFDX0NIRUNLX1RPT0wo W1NUUklQXSwgW3N0cmlwXSwgOikKKytmaQorK0lOU1RBTExfU1RSSVBfUFJPR1JBTT0iXCQoaW5z dGFsbF9zaCkgLWMgLXMiCisrQUNfU1VCU1QoW0lOU1RBTExfU1RSSVBfUFJPR1JBTV0pXSkKKysK KysjIENvcHlyaWdodCAoQykgMjAwNiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr IworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBfQU1fU1VCU1RfTk9UTUFLRShWQVJJQUJM RSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUHJldmVudCBBdXRvbWFrZSBm cm9tIG91dHB1dHRpbmcgVkFSSUFCTEUgPSBAVkFSSUFCTEVAIGluIE1ha2VmaWxlLmluLgorKyMg VGhpcyBtYWNybyBpcyB0cmFjZWQgYnkgQXV0b21ha2UuCisrQUNfREVGVU4oW19BTV9TVUJTVF9O T1RNQUtFXSkKKysKKysjIENoZWNrIGhvdyB0byBjcmVhdGUgYSB0YXJiYWxsLiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDIw MDQsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmls ZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgorKworKyMgc2VyaWFsIDIKKysKKysjIF9BTV9QUk9HX1RBUihGT1JNQVQpCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwg aW4gZm9ybWF0IEZPUk1BVC4KKysjIEZPUk1BVCBzaG91bGQgYmUgb25lIG9mIGB2NycsIGB1c3Rh cicsIG9yIGBwYXgnLgorKyMKKysjIFN1YnN0aXR1dGUgYSB2YXJpYWJsZSAkKGFtX190YXIpIHRo YXQgaXMgYSBjb21tYW5kCisrIyB3cml0aW5nIHRvIHN0ZG91dCBhIEZPUk1BVC10YXJiYWxsIGNv bnRhaW5pbmcgdGhlIGRpcmVjdG9yeQorKyMgJHRhcmRpci4KKysjICAgICB0YXJkaXI9ZGlyZWN0 b3J5ICYmICQoYW1fX3RhcikgPiByZXN1bHQudGFyCisrIworKyMgU3Vic3RpdHV0ZSBhIHZhcmlh YmxlICQoYW1fX3VudGFyKSB0aGF0IGV4dHJhY3Qgc3VjaAorKyMgYSB0YXJiYWxsIHJlYWQgZnJv bSBzdGRpbi4KKysjICAgICAkKGFtX191bnRhcikgPCByZXN1bHQudGFyCisrQUNfREVGVU4oW19B TV9QUk9HX1RBUl0sCisrWyMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0 aWJpbGl0eS4KKytBTV9NSVNTSU5HX1BST0coW0FNVEFSXSwgW3Rhcl0pCisrbTRfaWYoWyQxXSwg W3Y3XSwKKysgICAgIFthbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191 bnRhcj0nJHtBTVRBUn0geGYgLSddLAorKyAgICAgW200X2Nhc2UoWyQxXSwgW3VzdGFyXSwsIFtw YXhdLCwKKysgICAgICAgICAgICAgIFttNF9mYXRhbChbVW5rbm93biB0YXIgZm9ybWF0XSldKQor K0FDX01TR19DSEVDS0lORyhbaG93IHRvIGNyZWF0ZSBhICQxIHRhciBhcmNoaXZlXSkKKysjIExv b3Agb3ZlciBhbGwga25vd24gbWV0aG9kcyB0byBjcmVhdGUgYSB0YXIgYXJjaGl2ZSB1bnRpbCBv bmUgd29ya3MuCisrX2FtX3Rvb2xzPSdnbnV0YXIgbTRfaWYoWyQxXSwgW3VzdGFyXSwgW3BsYWlu dGFyXSkgcGF4IGNwaW8gbm9uZScKKytfYW1fdG9vbHM9JHthbV9jdl9wcm9nX3Rhcl8kMS0kX2Ft X3Rvb2xzfQorKyMgRG8gbm90IGZvbGQgdGhlIGFib3ZlIHR3byBsaW5lIGludG8gb25lLCBiZWNh dXNlIFRydTY0IHNoIGFuZAorKyMgU29sYXJpcyBzaCB3aWxsIG5vdCBncm9rIHNwYWNlcyBpbiB0 aGUgcmhzIG9mIGAtJy4KKytmb3IgX2FtX3Rvb2wgaW4gJF9hbV90b29scworK2RvCisrICBjYXNl ICRfYW1fdG9vbCBpbgorKyAgZ251dGFyKQorKyAgICBmb3IgX2FtX3RhciBpbiB0YXIgZ251dGFy IGd0YXI7CisrICAgIGRvCisrICAgICAgQU1fUlVOX0xPRyhbJF9hbV90YXIgLS12ZXJzaW9uXSkg JiYgYnJlYWsKKysgICAgZG9uZQorKyAgICBhbV9fdGFyPSIkX2FtX3RhciAtLWZvcm1hdD1tNF9p ZihbJDFdLCBbcGF4XSwgW3Bvc2l4XSwgWyQxXSkgLWNoZiAtICInIiQkdGFyZGlyIicKKysgICAg YW1fX3Rhcl89IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBb JDFdKSAtY2hmIC0gIiciJHRhcmRpciInCisrICAgIGFtX191bnRhcj0iJF9hbV90YXIgLXhmIC0i CisrICAgIDs7CisrICBwbGFpbnRhcikKKysgICAgIyBNdXN0IHNraXAgR05VIHRhcjogaWYgaXQg ZG9lcyBub3Qgc3VwcG9ydCAtLWZvcm1hdD0gaXQgZG9lc24ndCBjcmVhdGUKKysgICAgIyB1c3Rh ciB0YXJiYWxsIGVpdGhlci4KKysgICAgKHRhciAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMSAm JiBjb250aW51ZQorKyAgICBhbV9fdGFyPSd0YXIgY2hmIC0gIiQkdGFyZGlyIicKKysgICAgYW1f X3Rhcl89J3RhciBjaGYgLSAiJHRhcmRpciInCisrICAgIGFtX191bnRhcj0ndGFyIHhmIC0nCisr ICAgIDs7CisrICBwYXgpCisrICAgIGFtX190YXI9J3BheCAtTCAteCAkMSAtdyAiJCR0YXJkaXIi JworKyAgICBhbV9fdGFyXz0ncGF4IC1MIC14ICQxIC13ICIkdGFyZGlyIicKKysgICAgYW1fX3Vu dGFyPSdwYXggLXInCisrICAgIDs7CisrICBjcGlvKQorKyAgICBhbV9fdGFyPSdmaW5kICIkJHRh cmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKKysgICAgYW1fX3Rhcl89J2ZpbmQgIiR0 YXJkaXIiIC1wcmludCB8IGNwaW8gLW8gLUggJDEgLUwnCisrICAgIGFtX191bnRhcj0nY3BpbyAt aSAtSCAkMSAtZCcKKysgICAgOzsKKysgIG5vbmUpCisrICAgIGFtX190YXI9ZmFsc2UKKysgICAg YW1fX3Rhcl89ZmFsc2UKKysgICAgYW1fX3VudGFyPWZhbHNlCisrICAgIDs7CisrICBlc2FjCisr CisrICAjIElmIHRoZSB2YWx1ZSB3YXMgY2FjaGVkLCBzdG9wIG5vdy4gIFdlIGp1c3Qgd2FudGVk IHRvIGhhdmUgYW1fX3RhcgorKyAgIyBhbmQgYW1fX3VudGFyIHNldC4KKysgIHRlc3QgLW4gIiR7 YW1fY3ZfcHJvZ190YXJfJDF9IiAmJiBicmVhaworKworKyAgIyB0YXIvdW50YXIgYSBkdW1teSBk aXJlY3RvcnksIGFuZCBzdG9wIGlmIHRoZSBjb21tYW5kIHdvcmtzCisrICBybSAtcmYgY29uZnRl c3QuZGlyCisrICBta2RpciBjb25mdGVzdC5kaXIKKysgIGVjaG8gR3JlcE1lID4gY29uZnRlc3Qu ZGlyL2ZpbGUKKysgIEFNX1JVTl9MT0coW3RhcmRpcj1jb25mdGVzdC5kaXIgJiYgZXZhbCAkYW1f X3Rhcl8gPmNvbmZ0ZXN0LnRhcl0pCisrICBybSAtcmYgY29uZnRlc3QuZGlyCisrICBpZiB0ZXN0 IC1zIGNvbmZ0ZXN0LnRhcjsgdGhlbgorKyAgICBBTV9SVU5fTE9HKFskYW1fX3VudGFyIDxjb25m dGVzdC50YXJdKQorKyAgICBncmVwIEdyZXBNZSBjb25mdGVzdC5kaXIvZmlsZSA+L2Rldi9udWxs IDI+JjEgJiYgYnJlYWsKKysgIGZpCisrZG9uZQorK3JtIC1yZiBjb25mdGVzdC5kaXIKKysKKytB Q19DQUNIRV9WQUwoW2FtX2N2X3Byb2dfdGFyXyQxXSwgW2FtX2N2X3Byb2dfdGFyXyQxPSRfYW1f dG9vbF0pCisrQUNfTVNHX1JFU1VMVChbJGFtX2N2X3Byb2dfdGFyXyQxXSldKQorK0FDX1NVQlNU KFthbV9fdGFyXSkKKytBQ19TVUJTVChbYW1fX3VudGFyXSkKKytdKSAjIF9BTV9QUk9HX1RBUgor KworK200X2luY2x1ZGUoW2NvbmZpZy9heF9ib29zdC5tNF0pCisrbTRfaW5jbHVkZShbY29uZmln L2F4X215c3FsLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvYXhfb3JhY2xlX29jaS5tNF0pCisr bTRfaW5jbHVkZShbY29uZmlnL2F4X3Bvc3RncmVzcWwubTRdKQorK200X2luY2x1ZGUoW2NvbmZp Zy9jcHB1bml0Lm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvbGlidG9vbC5tNF0pCisrbTRfaW5j bHVkZShbY29uZmlnL2x0b3B0aW9ucy5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2x0c3VnYXIu bTRdKQorK200X2luY2x1ZGUoW2NvbmZpZy9sdHZlcnNpb24ubTRdKQorK200X2luY2x1ZGUoW2Nv bmZpZy9sdH5vYnNvbGV0ZS5tNF0pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svQVVUSE9S UyBzb2NpLTMuMC4wX3RyZXAzMDAvQVVUSE9SUworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0FVVEhP UlMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvQVVUSE9SUwkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSw5IEBACisrCisrRGF2aWQgQ291cnRuZXksIERldmVsb3BlciwgZGFjb3VydG5leSBhdCB1 c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytNYXRldXN6IExvc2tvdCwgRGV2ZWxvcGVyLCBtbG9za290 IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK01hY2llaiBTb2JjemFrLCBBZG1pbiBQcm9qZWN0 IE1hbmFnZXIsIG1zb2JjemFrIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK1Bhd2VsIEFsZWtz YW5kZXIgRmVkb3J5bnNraSwgRGV2ZWxvcGVyLCBwZmVkb3IgYXQgdXNlcnMuc291cmNlZm9yZ2Uu bmV0CisrUmFmYWwgQm9icm93c2tpLCBEZXZlbG9wZXIsIHJib2JybyBhdCB1c2Vycy5zb3VyY2Vm b3JnZS5uZXQKKytKZWFuLU1hcmMsIERldmVsb3Blciwgc2lkanRhbCBhdCB1c2Vycy5zb3VyY2Vm b3JnZS5uZXQKKytTdGVwaGVuIEh1dHRvbiwgRGV2ZWxvcGVyLCBzdGVwaGVuaHV0dG9uIGF0IHVz ZXJzLnNvdXJjZWZvcmdlLm5ldAorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxk L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5hbQorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmFtCTIw MDktMDUtMjIgMjI6NTQ6MjAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDcgQEAKKysjIyBi dWlsZCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0g dW5peCBtc3ZjODAKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmls ZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9idWlsZC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5pbgkyMDA5LTA1LTIz IDEwOjAyOjAxLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1NDYgQEAKKysjIE1ha2VmaWxl LmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBj b25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMg TWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK KysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGly QAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGli ZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAK KythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYm IGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxs X3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGlu c3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zv cm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJF X0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6Cisr UFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0g QGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gUkVBRE1FICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGJ1aWxkCisrQUNMT0NBTF9NNCA9ICQodG9w X3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9j cHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5h YworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdV UkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChp bnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25m aWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0K KytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1y ZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEt cmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNp dmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAor KwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBw ZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNp dmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQor K0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJT KQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9T KSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAor K0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hF QURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFH UyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJ TUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAor K0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJT ID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9H UkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisr Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9P U1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENG TEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVU SUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NA CisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQ QAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lO U1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RB TExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFM TF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JB TUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpT QAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAor K0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1B S0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNR TF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9O ID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpE VU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFD TEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFD TEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lP TiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBP VE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNL QUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0Vf U1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RB Uk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFS QVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBH X0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NU R1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQ T1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVS U0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAor K1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisr U09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAor K1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZF UlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19z cmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRk aXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNf Y3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0 X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90 ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIg PSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJA CisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRf Y3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3Ig PSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0 YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tA CisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGly ID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVj X3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9 IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9v c0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisr aW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxs X3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxp YmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRp ckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hP QAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVk aXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVm aXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAor K3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29r QAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJA Cisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxp YXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRp ciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZM QUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRBSU5FUkNMRUFO RklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSB1bml4IG1zdmM4MAorK2FsbDogYWxsLXJl Y3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmln dXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmln dXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAg ICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBc CisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNk ICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL01ha2VmaWxlJzsgXAor KwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvTWFr ZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJ ICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysK KyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysk KEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyttb3N0bHljbGVh bi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYg LmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1v c3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2Un IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2 YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywK KysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBg Y29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRv IGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwg cGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChS RUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHgg JCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10q KTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJ ZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVj dXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWls Y29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwK KysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAor KwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgor KwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisr CSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49 bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xl YW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJT KScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK KysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9 IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAu IjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBz dWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJk aXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2Fs X3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwK KysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGly IiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBc CisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6 ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtp ZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQo SEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1Mp IC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAg aW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJ ZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsg XAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVz dCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRl X29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisr CWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAor Kwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsg dGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8 IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAg ICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0n YDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7 IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwK KysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFH UzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0 ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAk KENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0 YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRp cikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkg JChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1Mg SUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxF UykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwK KysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25l IHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJz fF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRp c3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8 IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBc CisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9m aWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVu IGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7 IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCws J2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAk KHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3Rk aXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZp bGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAt ZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRp cikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlz dD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0 ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRp ciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0 ZGlyKSAmJiBwd2RgOyBcCisrCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3Rk aXIpICYmIHB3ZGA7IFwKKysJICAgIChjZCAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIg XAorKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92 ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRp c3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNr LWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZQor K2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKytp bnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJl Y3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFs bDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtF KSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2lu c3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBc CisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAg aW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytk aXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwg cm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj OgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1 c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0 b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8 fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUK KysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFt CisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQor K2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MK KysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1 cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFs bC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytp bnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZl CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1t YW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwt cHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50 YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmls ZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdl bmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5 Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3Bk ZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisr cHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJp cAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFS R0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNs ZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0 Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4t dGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGlu c3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFs bC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGlu c3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZv LWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1w cyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNo ZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwlt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBc CisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVj dXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9t c3ZjODAvZGxsL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2Yzgw L2RsbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCTIwMDktMDUt MjIgMjI6NTQ6MjAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDExIEBACisrIyMgYnVpbGQv bXN2YzgwL2RsbCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytFWFRS QV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bv c3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3Qu dmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nl c3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3By b2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21zc3FsLnZjcHJv aiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKKysJZW1wdHlfdGVzdC52Y3Byb2og b2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfZGxsLnZzcHJvcHMKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluIHNv Y2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluCistLS0gc29jaS0z LjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAv ZGxsL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDM5NCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAu MiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdo dCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVk IGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BT RVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBB Q0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIg PSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJ T04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3Rh bGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMK KytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9 ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkK KytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6 CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNU QUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RA CisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxl LmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWlsZC9t c3ZjODAvZGxsCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19h Y2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0 ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQo YW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNM T0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFE RVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9 CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9O KSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBA QUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRP Q09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VA CisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RB VEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJ QiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NU X0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdF WF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05B TFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAK KytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUg PSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFH UyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBV TklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9M SUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAK KytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFH UyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AK KytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBA RFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19U ID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQ ID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9W RVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9E QVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFN QAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJP R1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBM REZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9 IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0g QExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BA CisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxf Q09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1Z U1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5N QAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBP QkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1Mg PSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lf TERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09U T09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VA CisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1F ID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQ QUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQ QUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVS TCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1Mg PSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElS U0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVT UUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytS UE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNF VF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9I RUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09N TUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxk ZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3Rv cF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190 b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9D WFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFt X19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1 b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFt X191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2Fs aWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3Mg PSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9 IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJv b3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdl bl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZp cHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisr aG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBo b3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5k b3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytp bmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29r ID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVj ZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0 YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGly X3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGly ID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUg PSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0g QHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRz dGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAK Kyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9w X2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNk aXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0 b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytFWFRSQV9E SVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3Rn cmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNw cm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3Mu dmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2og Y29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBv cmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKKysJZW1wdHlfdGVzdC52Y3Byb2ogb2Ri Y190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfZGxsLnZzcHJvcHMKKysKKyth bGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNy Y2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29u ZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29u ZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkg ICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9 OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAn IGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL21zdmM4MC9kbGwv TWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0t Z251ICBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01h a2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBc CisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJk aXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RB VFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFt X19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytj bGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrdGFnczogVEFHUworK1RBR1M6 CisrCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6CisrCisrCisrZGlzdGRpcjogJChESVNURklMRVMp CisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisr CSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8 IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xe JCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0 X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBc CisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAor KwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmls ZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBk PS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0 aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdg OyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChz cmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGly KSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1wUiAkJGQvJCRmaWxl ICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYg JChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIp LyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2st YW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1hbQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxs ZGlyczoKKytpbnN0YWxsOiBpbnN0YWxsLWFtCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMt YW0KKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQorK3VuaW5zdGFsbDogdW5pbnN0YWxs LWFtCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxs Y2hlY2stYW0KKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNU QUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMg XAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9H UkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5l cmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0 IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVT KQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0 IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKysJ LXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJp YworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtYW0KKysKKytp bmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06CisrCisraW5z dGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3Rh bGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t YW0KKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysK KytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21h aW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisr bWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJp YworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQor KworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06 CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogYWxsIGFs bC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAor KwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBk dmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwt YW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwt ZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5z dGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1h biBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1h bSBpbnN0YWxsLXN0cmlwIFwKKysJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxs ZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBw ZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysj IFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwg dmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFz dCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWls ZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2 YzgwL2xpYi9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCTIwMDkt MDUtMjIgMjI6NTQ6MjAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDExIEBACisrIyMgYnVp bGQvbXN2YzgwL2xpYiBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytF WFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0 X3Bvc3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rl c3QudmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9h Y2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52 Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21zc3FsLnZj cHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9saWIuc2xuIFwKKysJZW1wdHlfdGVzdC52Y3By b2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfbGliLnZzcHJvcHMK K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmlu IHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCistLS0gc29j aS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3Zj ODAvbGliL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDM5NCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEu MTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHly aWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0 dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKwor K0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikv QFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVk aXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZF UlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGlu c3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkg LWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURF UiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwg PSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5J TlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhv c3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2Vm aWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWls ZC9tc3ZjODAvbGliCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2Ft X19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVz cWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9u cy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNv bGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9 ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQo QUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19I RUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxF UyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytESVNURklMRVMgPSAkKERJU1RfQ09N TU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwg PSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBB VVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01B S0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1P REUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBG TEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytD UFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5J VF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENY WEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhG TEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVG U0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4g PSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNI T19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZH UkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFS WV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFM TF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9H UkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBf UFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9 IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9P TCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpT ID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElS X1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlT UUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0g QE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0g QE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9 IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAor K09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tB R0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK KytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9 IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisr UEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxB R1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxf RElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RH UkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAK KytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0g QFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0g QGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1f X3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0g QGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxk X2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRf b3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRp ciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0 YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94 eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBA ZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tA CisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9 IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92 ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAK KytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4 X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJl eGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2Nh bHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21r ZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRm ZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25h bWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGly ID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFy ZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRp ckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBA dG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9z cmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1J JCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytFWFRS QV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bv c3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3Qu dmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nl c3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3By b2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21zc3FsLnZjcHJv aiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9saWIuc2xuIFwKKysJZW1wdHlfdGVzdC52Y3Byb2og b2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfbGliLnZzcHJvcHMKKysK KythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAk KHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9f Y29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9f Y29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAor KwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZp OyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNo byAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL21zdmM4MC9s aWIvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0Up IC0tZ251ICBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQor K01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7 OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwK KysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChz dWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdf U1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAk KGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxf bTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysK KytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrdGFnczogVEFHUworK1RB R1M6CisrCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6CisrCisrCisrZGlzdGRpcjogJChESVNURklM RVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBc CisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9u ZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAi c3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRk aXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIg fCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwg XAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3Rf ZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhl biBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxl OyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQs LCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0g JChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0 ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1wUiAkJGQvJCRm aWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3Qg LWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3Rk aXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hl Y2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1hbQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0 YWxsZGlyczoKKytpbnN0YWxsOiBpbnN0YWxsLWFtCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4 ZWMtYW0KKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQorK3VuaW5zdGFsbDogdW5pbnN0 YWxsLWFtCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0 YWxsY2hlY2stYW0KKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJ TlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxf c2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9 LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9Q Uk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1n ZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10 ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJ TEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFu ZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRl cyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10 ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBj bGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0K KysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2Vu ZXJpYworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtYW0KKysK KytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06CisrCisr aW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2lu c3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWlu Zm8tYW0KKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0K KysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFsbGNoZWNrLWFtOgorKwor K21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxl CisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFt OiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1h bQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwt YW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogYWxs IGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wg XAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRp ciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3Rh bGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3Rh bGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwg aW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxs LW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1w cy1hbSBpbnN0YWxsLXN0cmlwIFwKKysJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0 YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1v c3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sIHBk ZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAK KysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBh bGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBs ZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxk L21zdmM4MC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9N YWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2kt My4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoy MC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOCBAQAorKyMjIGJ1aWxkL21zdmM4MCBzdWIt ZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorKworK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUID0gUkVBRE1F LnR4dCBzb2NpLnZzcHJvcHMKKysKKytTVUJESVJTID0gZGxsIGxpYgorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAv YnVpbGQvbXN2YzgwL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2 YzgwL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEw OjAyOjAyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1NDcgQEAKKysjIE1ha2VmaWxlLmlu IGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25m aWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgTWFr ZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgor KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysj IFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGlyQAor K3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGly KS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKyth bV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNk CisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3No X1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3Rh bGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0g PSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lO U1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJF X1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1 aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01h a2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uCisrc3ViZGlyID0gYnVpbGQvbXN2YzgwCisrQUNMT0NBTF9NNCA9ICQodG9wX3Ny Y2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1 bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3Vn YXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwor K2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVf REVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0 YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcu aAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytS RUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1 cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVj dXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUg XAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlp bnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNp dmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYt cmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJ XAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VU QUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQor K0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAk KEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FS ID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURF UkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9 IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVf TElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JP T1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0g QEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFN X09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9P U1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1Rf U0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBC T09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lP TkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElC QAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFH U0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdT ID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAor K0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVO SVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9E RSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBD WUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwg PSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisr RUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAor K0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZF UlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RB TEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExf UFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9T Q1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAK KytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAor K0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xO X1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJ TkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdT QAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9E SVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0g QE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1Q ID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVf RElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVf T0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9 IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9P TDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdF X0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RS SU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5B TUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRP UiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NP TkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JF U1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NU R1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lP TkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NF RCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09D SV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NU UklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJ T04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNk aXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJA CisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3Rf Q0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RV TVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0g QGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBA YW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisr YnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1 ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBA YnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRp ckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisr ZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0g QGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3By ZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBo b3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AK Kytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5j bHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3No ID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRp ckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAK Kytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAor K21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIg PSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhA CisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3Bz ZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAor K3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisr c3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNA CisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9 IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdT ID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbgorK0VYVFJBX0RJU1QgPSBSRUFETUUudHh0IHNvY2kudnNwcm9wcwor K1NVQkRJUlMgPSBkbGwgbGliCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgor KyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4g JD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICok JGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0 aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9N QUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIp ICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL01ha2VmaWxlCisrLlBS RUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5z dGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJ ZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000 KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoK KysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJz CisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBl bmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdv aW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBt YWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYg dGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0 dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVy YXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRl c2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RB UkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdT OyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAg ICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJ ZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsg XAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBl Y2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlk b25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3Qg LXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWxjb209 J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRm IGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWls PXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNh c2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9 JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJ ZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAk JHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFy Z2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQk cmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7 IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYg dGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisr Y3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMp ICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVu aXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQo U09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQ KQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWlu Y2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0 aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkg IGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwK KysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1 YmRpci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRo ZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJaWYg dGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJ ICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgJChFVEFH UykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAg JCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJl Y3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJ CSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChD VEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdT KSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdGFncyAkJHVuaXF1 ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAg XAorKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJH UykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdS VEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNk aXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlte JCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9m aWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBz ZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNk aXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGlu IFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAg c2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNv cnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwK KysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2Ug ZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJ ICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAg ICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0 aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8 IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRp cikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgJChkaXN0ZGly KS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBc CisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCWxpc3Q9JyQoRElTVF9T VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJk aXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAg IHx8IGV4aXQgMTsgXAorKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdk YDsgXAorKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2Rg OyBcCisrCSAgICAoY2QgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKKysJICAgICAg ICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlzdGRpcj06 IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisr CSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFt CisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGly czogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5z dGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytp bnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFs bC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6 IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAor KwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxM X1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNo byAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKytt b3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdl bmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09O RklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8g IlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNo byAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChN QUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4t YW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3Rj bGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4t YW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBk dmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisr aW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToK KysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1leGVj LWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtbWFuOgorKworK2lu c3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxs LXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFu OiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFp bmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisr bW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1 cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKwor K3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChS RUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCisrCWluc3RhbGwtc3RyaXAKKysKKysuUEhP Tlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdT IEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgXAorKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3Rj bGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRp ciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3Rh bGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3Rh bGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwg aW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxs LW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisrCWluc3RhbGwtcHMgaW5zdGFsbC1w cy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisrCWluc3RhbGxjaGVjay1hbSBpbnN0 YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHlj bGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCisr CXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrIyBUZWxsIHZlcnNpb25z IFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysj IE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNl ZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5p eC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5p eC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjIwLjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSwxMSBAQAorKyMjIGJ1aWxkL3VuaXggc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQt Ym9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVj dXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJz LnRjbAorKworK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1 aWxkLnRjbCBpbnN0YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3Qu dGNsIGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNs IFwKKysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAv YnVpbGQvdW5peC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgv TWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAy LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzOTQgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVy YXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVf aW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgs IDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3 LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgTWFrZWZpbGUu aW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2 ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysj IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlz IHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0 byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJ Q1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2Rh dGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFD S0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKythbV9fY2Qg PSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5z dGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dS QU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gp IC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHBy b2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwg PSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5T VEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAor K2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxl LmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCisrc3ViZGlyID0gYnVpbGQvdW5peAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2Fj bG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf Ym9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29u ZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVO Q0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkg LWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05G SUdfQ0xFQU5fRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrRElTVEZJTEVT ID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElT VCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisr QVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9N QUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NG TEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9P U1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJF QU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElC U0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19M SUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJ QiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVB RF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NU X1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBA Q0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9 IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5J VF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9M SUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9O QAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERF UE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AK KytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJ TEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBA RUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0g QEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBH RU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNU QUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0g QElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJ TlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExE QAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBM SUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9T QAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtE SVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxf Q09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlT UUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVS U0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVN UEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09S QUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFH UyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9P Q0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFD S0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JU QAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFD S0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNL QUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhf U0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BP U1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9 IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERG TEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJ QiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAK KytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RS SVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJT SU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNf c3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9w X3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19j dF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKyth bV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRp bmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAor K2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBi dWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRf Y3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5k b3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFy b290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBA ZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAor K2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dz X29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNA CisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVu ZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0g QGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFs bF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4 ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3Rh dGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0g QG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNs dWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFt X3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNk aXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3Rh dGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGly ID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVp bGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWls ZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9w X2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQt Ym9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVj dXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJz LnRjbAorK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxk LnRjbCBpbnN0YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNs IGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwK KysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrCisrYWxsOiBhbGwtYW0K KysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2Vm aWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBz KQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBz KScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7 IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAg ICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9z cmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC91bml4L01ha2VmaWxlJzsgXAorKwlj ZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvdW5peC9N YWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2Vm aWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAor KwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8g JyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworK21vc3RseWNs ZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1y ZiAubGlicyBfbGlicworK3RhZ3M6IFRBR1MKKytUQUdTOgorKworK2N0YWdzOiBDVEFHUworK0NU QUdTOgorKworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisr CWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAk KHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAg IGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJ ICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhp dCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hl Y2stYW0KKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5zdGFs bC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0 YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFs bC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwt ZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJp cDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJ UF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJ UCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNU UklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmlj OgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklM RVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFu LWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWlu ZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBz cGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLWFt CisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1h bQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3Rj bGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKKysKKytkdmk6IGR2aS1hbQorKwor K2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraW5mbzogaW5mby1hbQorKworK2luZm8t YW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1h bQorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1h bQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisrCisraW5zdGFsbC1tYW46Cisr CisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1w cy1hbQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFp bmVyLWNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRp c3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9z dGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtYW0KKysKKytwZGYtYW06CisrCisrcHM6IHBz LWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiBpbnN0YWxsLWFt IGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xl YW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1n ZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRt bC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGlu c3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhl YyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3Rh bGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0 YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisrCWlu c3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBc CisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5l cmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFs bCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysu Tk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X2Jvb3N0Lm00 IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfYm9vc3QubTQKKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvYXhfYm9vc3QubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X2Jvb3N0Lm00CTIwMDktMDUtMjIg MjI6NTQ6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUzNCBAQAorK2RubCBAc3lub3Bz aXMgQVhfQk9PU1QoW01JTklNVU0tVkVSU0lPTl0sIFtBQ1RJT04tSUYtRk9VTkRdLCBbQUNUSU9O LUlGLU5PVC1GT1VORF0pCisrZG5sCisrZG5sIFRlc3QgZm9yIHRoZSBCb29zdCBDKysgbGlicmFy aWVzIG9mIGEgcGFydGljdWxhciB2ZXJzaW9uIChvciBuZXdlcikKKytkbmwKKytkbmwgSWYgbm8g cGF0aCB0byB0aGUgaW5zdGFsbGVkIGJvb3N0IGxpYnJhcnkgaXMgZ2l2ZW4gdGhlIG1hY3JvCisr ZG5sIHNlYXJjaHMgdW5kZXIgL3VzciwgL3Vzci9sb2NhbCwgYW5kIC9vcHQsIGFuZCBldmFsdWF0 ZXMgdGhlCisrZG5sICRCT09TVF9ST09UIGVudmlyb25tZW50IHZhcmlhYmxlLgorK2RubAorK2Ru bCBUaGlzIG1hY3JvIGNhbGxzOgorK2RubAorK2RubCAgIEFDX1NVQlNUKEJPT1NUX0NGTEFHUykg LyBBQ19TVUJTVChCT09TVF9MSUJTKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX0ZJTEVTWVNURU1f TElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpCisrZG5sICAg QUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9JT1NUUkVB TVNfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NFUklBTElaQVRJT05fTElCKQorK2RubCAg IEFDX1NVQlNUKEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09T VF9TSUdOQUxTX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9EQVRFX1RJTUVfTElCKQorK2Ru bCAgIEFDX1NVQlNUKEJPT1NUX1JFR0VYX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQikKKytkbmwKKytkbmwgQW5kIHNldHM6CisrZG5sCisrZG5sICAg SEFWRV9CT09TVAorK2RubCAgIEhBVkVfQk9PU1RfRklMRVNZU1RFTQorK2RubCAgIEhBVkVfQk9P U1RfUFJPR1JBTV9PUFRJT05TCisrZG5sICAgSEFWRV9CT09TVF9USFJFQUQKKytkbmwgICBIQVZF X0JPT1NUX0lPU1RSRUFNUworK2RubCAgIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTgorK2RubCAg IEhBVkVfQk9PU1RfU0lHTkFMUworK2RubCAgIEhBVkVfQk9PU1RfREFURV9USU1FCisrZG5sICAg SEFWRV9CT09TVF9SRUdFWAorK2RubCAgIEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SSwor K2RubAorK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMKKytkbmwgQGF1dGhvciBUaG9t YXMgUG9yc2NoYmVyZyA8dGhvbWFzQHJhbmRzcHJpbmdlci5kZT4KKytkbmwgQHZlcnNpb24gMjAw Ni0wMS0wMgorK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCisrCisrQUNfREVGVU4oW0FYX0JP T1NUXSwKKytbCisrICAgIEFDX0FSR19XSVRIKFtib29zdF0sCisrICAgICAgICAgICAgICAgIEFD X0hFTFBfU1RSSU5HKFstLXdpdGgtYm9vc3Q9RElSXSwKKysgICAgICAgICAgICAgICAgW3VzZSBi b29zdCAoZGVmYXVsdCBpcyBOTykgLCBzcGVjaWZ5IHRoZSByb290IGRpcmVjdG9yeSBmb3IgYm9v c3QgbGlicmFyeSAob3B0aW9uYWwpXSksCisrICAgICAgICAgICAgICAgIFsKKysgICAgICAgICAg ICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgorKwkJICAgICAgICAgICAgd2Fu dF9ib29zdD0ibm8iCisrICAgICAgICAgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInll cyI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgIHdhbnRfYm9vc3Q9InllcyIKKysgICAgICAg ICAgICAgICAgICAgIGFjX2Jvb3N0X3BhdGg9IiIKKysgICAgICAgICAgICAgICAgZWxzZQorKwkJ CSAgICAgICAgd2FudF9ib29zdD0ieWVzIgorKyAgICAgICAgICAgIAkJYWNfYm9vc3RfcGF0aD0i JHdpdGh2YWwiCisrCQkgICAgICAgIGZpCisrICAgICAgICAgICAgCV0sCisrICAgICAgICAgICAg ICAgIFt3YW50X2Jvb3N0PSJ5ZXMiXSkKKysKKysjICAgIEFDX0NBTk9OSUNBTF9CVUlMRAorK0JP T1NUX01EV19WRVJTSU9OPSIxLTMzLTEiCisrQk9PU1RMSUJfTURXX1ZFUlNJT049IjFfMzNfMSIK KysKKysJaWYgdGVzdCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsgdGhlbgorKwkJYm9vc3RfbGli X3ZlcnNpb25fcmVxPWlmZWxzZShbJDFdLCAsMS4yMC4wLCQxKQorKwkJYm9vc3RfbGliX3ZlcnNp b25fcmVxX3Nob3J0ZW49YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0q XC5bWzAtOV1dKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkYm9v c3RfbGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcKSdgCisrCQlib29zdF9saWJfdmVyc2lv bl9yZXFfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuXChb WzAtOV1dKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9YGV4cHIgJGJv b3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdg CisrCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3IiID0gIngiIDsg dGhlbgorKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9IjAiCisrICAgIAlmaQor KwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWFqb3Ig XCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMCBcKyAkYm9v c3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAKKysJCUFDX01TR19DSEVDS0lORyhmb3IgYm9v c3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSkKKysJCXN1Y2NlZWRlZD1ubworKworKwkJ ZG5sIGZpcnN0IHdlIGNoZWNrIHRoZSBzeXN0ZW0gbG9jYXRpb24gZm9yIGJvb3N0IGxpYnJhcmll cworKwkJZG5sIHRoaXMgbG9jYXRpb24gaXMgY2hvc2VuIGlmIGJvb3N0IGxpYnJhcmllcyBhcmUg aW5zdGFsbGVkIAorKwkJZG5sIHdpdGggdGhlIC0tbGF5b3V0PXN5c3RlbSBvcHRpb24KKysJCWRu bCBvciBpZiB5b3UgaW5zdGFsbCBib29zdCB3aXRoIFJQTQorKwkJaWYgdGVzdCAtZCAvbGliNjQ7 IHRoZW4KKysJCQlCT09TVF9MSUJESVJUWVBFPSJsaWI2NCIKKysJCWVsc2UKKysJCQlCT09TVF9M SUJESVJUWVBFPSJsaWIiCisrCQlmaQorKwkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIi OyB0aGVuCisrCQkJaWYgdGVzdCAiJEJPT1NUX0xJQkRJUlRZUEUiID09ICJsaWI2NCI7IHRoZW4K KysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiICYmIHRl c3QgLXIgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIjsgdGhlbgorKwkgICAgICAg ICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIK KysJCQkJZWxzZQorKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3Rf cGF0aC9saWIiCisrCQkJCWZpCisrCQkJZWxzZQorKwkJCQlCT09TVF9MSUJTPSItTCRhY19ib29z dF9wYXRoL2xpYiIKKysJCQlmaQorKwkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aC9p bmNsdWRlIgorKwkJZWxzZQorKwkJCWZvciBhY19ib29zdF9wYXRoX3RtcCBpbiAvdXNyIC91c3Iv bG9jYWwgL29wdCAvbmFzdG9vbHMvYm9vc3QgOyBkbworKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9v c3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1w L2luY2x1ZGUvYm9vc3QiOyB0aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRo X3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3Rf cGF0aF90bXAvaW5jbHVkZSIKKysJCQkJCWJyZWFrOworKwkJCQlmaQorKwkJCQlpZiB0ZXN0IC1k ICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04vYm9v c3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9N RFdfVkVSU0lPTi9ib29zdCI7IHRoZW4KKysJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3Bh dGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29z dF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTiIKKysJCQkKKysJCQkJ CWRubCBIYWNrIGZvciB3cm9uZ2x5IGluc3RhbGxlZCBCb29zdCBsaWJyYXJpZXMgKEFNRDY0IGxp YnJhcmllcyBpbnN0YWxsZWQgaW4gYm9vc3QvbGliIGRpcmVjdG9yeSkKKysJCQkJCWlmIHRlc3Qg LWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3Rt cC9saWIiICYmIHRlc3QgISAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYjY0IjsgdGhlbgorKwkJ CQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIKKysJCQkJCQllY2hvICJI YWNrOiAkQk9PU1RfTElCUyIKKysJCQkJCWZpCisrCQkJCQlicmVhazsKKysJCQkJZmkKKysJCQlk b25lCisrCQlmaQorKworKwkJQ1BQRkxBR1NfU0FWRUQ9IiRDUFBGTEFHUyIKKysJCUNQUEZMQUdT PSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKKysJCWV4cG9ydCBDUFBGTEFHUworKworKwkJTERG TEFHU19TQVZFRD0iJExERkxBR1MiCisrCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIK KysJCWV4cG9ydCBMREZMQUdTCisrCisrICAgICAJQUNfVFJZX0NPTVBJTEUoCisrICAgICAgIAlb CisrQCU6QGluY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgorK10sCisrICAgICAgIFsKKysjaWYg Qk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCisrLy8gRXZlcnl0aGluZyBpcyBv a2F5CisrI2Vsc2UKKysjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKKysjZW5kaWYK KysKKysJCV0sCisrICAgIAlbCisrICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpCisrCQkgc3Vj Y2VlZGVkPXllcworKwkJIGZvdW5kX3N5c3RlbT15ZXMKKysgICAgICAgICBpZmVsc2UoWyQyXSwg LCA6LCBbJDJdKQorKyAgICAgICBdLAorKyAgICAgICBbCisrICAgICAgIF0pCisrCisrCQlkbmwg aWYgd2UgZm91bmQgbm8gYm9vc3Qgd2l0aCBzeXN0ZW0gbGF5b3V0IHdlIHNlYXJjaCBmb3IgYm9v c3QgbGlicmFyaWVzCisrCQlkbmwgYnVpbHQgYW5kIGluc3RhbGxlZCB3aXRob3V0IHRoZSAtLWxh eW91dD1zeXN0ZW0gb3B0aW9uIG9yIGZvciBhIHN0YWdlZChub3QgaW5zdGFsbGVkKSB2ZXJzaW9u CisrCQlpZiB0ZXN0ICJ4JHN1Y2NlZWRlZCIgIT0gInh5ZXMiOyB0aGVuCisrCQkJX3ZlcnNpb249 MAorKwkJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIjsgdGhlbgorKyAgICAgICAgICAg ICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJ CQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgi OyB0aGVuCisrCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29z dC0qIDI+L2Rldi9udWxsYDsgZG8KKysJCQkJCQlfdmVyc2lvbl90bXA9YGVjaG8gJGkgfCBzZWQg InMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9pbmNsdWRlXC9ib29zdC0vLycgfCBzZWQg J3MvXy8uLydgCisrCQkJCQkJVl9DSEVDSz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lv bmAKKysJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCisrCQkJCQkJCV92ZXJz aW9uPSRfdmVyc2lvbl90bXAKKysJCQkJCQlmaQorKwkJCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1g ZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAorKwkJCQkJCUJPT1NUX0NGTEFHUz0iLUkk YWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUiCisrCQkJCQlk b25lCisrCQkJCWZpCisrCQkJZWxzZQorKwkJCQlmb3IgYWNfYm9vc3RfcGF0aCBpbiAvdXNyIC91 c3IvbG9jYWwgL29wdCA7IGRvCisrCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYg dGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVuCisrCQkJCQkJZm9yIGkgaW4gYGxzIC1kICRh Y19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAyPi9kZXYvbnVsbGA7IGRvCisrCQkJCQkJCV92 ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9c L2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKKysJCQkJCQkJVl9DSEVDSz1gZXhw ciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lvbmAKKysJCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0si ID0gIjEiIDsgdGhlbgorKwkJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAorKwkJCQkJCQkJ YmVzdF9wYXRoPSRhY19ib29zdF9wYXRoCisrCQkJCQkJCWZpCisrCQkJCQkJZG9uZQorKwkJCQkJ ZmkKKysJCQkJZG9uZQorKworKwkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVjaG8gJF92ZXJzaW9u IHwgc2VkICdzL1wuL18vJ2AKKysJCQkJQk9PU1RfQ0ZMQUdTPSItSSRiZXN0X3BhdGgvaW5jbHVk ZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgorKwkJCQlCT09TVF9MSUJTPSItTCRiZXN0X3Bh dGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCisrCSAgICAJCWlmIHRlc3QgIngkQk9PU1RfUk9PVCIg IT0gIngiOyB0aGVuCisrCQkJCQlpZiB0ZXN0IC1kICIkQk9PU1RfUk9PVCIgJiYgdGVzdCAtciAi JEJPT1NUX1JPT1QiOyB0aGVuCisrCQkJCQkJdmVyc2lvbl9kaXI9YGV4cHIgLy8kQk9PU1RfUk9P VCA6ICcuKi9cKC4qXCknYAorKwkJCQkJCXN0YWdlX3ZlcnNpb249YGVjaG8gJHZlcnNpb25fZGly IHwgc2VkICdzL2Jvb3N0Xy8vJyB8IHNlZCAncy9fLy4vZydgCisrCQkJCQkJc3RhZ2VfdmVyc2lv bl9zaG9ydGVuPWBleHByICRzdGFnZV92ZXJzaW9uIDogJ1woW1swLTldXSpcLltbMC05XV0qXCkn YAorKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJHN0YWdlX3ZlcnNpb25fc2hvcnRlbiBcPlw9ICRfdmVy c2lvbmAKKysJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCisrCQkJCQkJCUFD X01TR19OT1RJQ0UoV2Ugd2lsbCB1c2UgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSBmcm9tICRCT09T VF9ST09UKQorKwkJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJEJPT1NUX1JPT1QiCisrCQkJCQkJCUJP T1NUX0xJQlM9Ii1MJEJPT1NUX1JPT1Qvc3RhZ2UvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCQkJ ZmkKKysJCQkJCWZpCisrCSAgICAJCWZpCisrCQkJZmkKKysKKysJCQlDUFBGTEFHUz0iJENQUEZM QUdTICRCT09TVF9DRkxBR1MiCisrCQkJZXhwb3J0IENQUEZMQUdTCisrCQkJTERGTEFHUz0iJExE RkxBR1MgJEJPT1NUX0xJQlMiCisrCQkJZXhwb3J0IExERkxBR1MKKysKKysgICAgIAkJQUNfVFJZ X0NPTVBJTEUoCisrICAgICAgIAkJWworK0AlOkBpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4K KytdLAorKyAgICAgICBbCisrI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lP TgorKy8vIEV2ZXJ5dGhpbmcgaXMgb2theQorKyNlbHNlCisrIyAgZXJyb3IgQm9vc3QgdmVyc2lv biBpcyB0b28gb2xkCisrI2VuZGlmCisrCisrCQldLAorKyAgICAJWworKyAgICAgICAgIEFDX01T R19SRVNVTFQoeWVzICgkX3ZlcnNpb24pKQorKwkJIHN1Y2NlZWRlZD15ZXMKKysgICAgICAgICBp ZmVsc2UoWyQyXSwgLCA6LCBbJDJdKQorKyAgICAgICBdLAorKyAgICAgICBbCisrICAgICAgICAg QUNfTVNHX1JFU1VMVChubyAoJF92ZXJzaW9uKSkKKysgICAgICAgICBpZmVsc2UoWyQzXSwgLCA6 LCBbJDNdKQorKyAgICAgICBdKQorKwkJZmkKKysKKysJCWlmIHRlc3QgIiRzdWNjZWVkZWQiICE9 ICJ5ZXMiIDsgdGhlbgorKwkJCWlmIHRlc3QgIiRfdmVyc2lvbiIgPSAiMCIgOyB0aGVuCisrCQkJ CUFDX01TR19FUlJPUihbW1dlIGNvdWxkIG5vdCBkZXRlY3QgdGhlIGJvb3N0IGxpYnJhcmllcyAo dmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW4gb3IgaGlnaGVyKS4gSWYgeW91 IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSAoc3RpbGwgbm90IGluc3RhbGxlZCkgcGxlYXNl IHNwZWNpZnkgXCRCT09TVF9ST09UIGluIHlvdXIgZW52aXJvbm1lbnQgYW5kIGRvIG5vdCBnaXZl IGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qgb3B0aW9uLiAgSWYgeW91IGFyZSBzdXJlIHlvdSBoYXZl IGJvb3N0IGluc3RhbGxlZCwgdGhlbiBjaGVjayB5b3VyIHZlcnNpb24gbnVtYmVyIGxvb2tpbmcg aW4gPGJvb3N0L3ZlcnNpb24uaHBwPi5dXSkKKysJCQllbHNlCisrCQkJCUFDX01TR19FUlJPUign WW91ciBib29zdCBsaWJyYXJpZXMgc2VlbXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBX ZSBuZWVkIGF0IGxlYXN0ICRib29zdF9saWJfdmVyc2lvbl9zaG9ydGVuJykKKysJCQlmaQorKwkJ ZWxzZQorKwkJCUFDX1NVQlNUKEJPT1NUX0NGTEFHUykKKysJCQlBQ19TVUJTVChCT09TVF9MSUJT KQorKwkJCUFDX0RFRklORShIQVZFX0JPT1NULCxbZGVmaW5lIGlmIHRoZSBCb29zdCBsaWJyYXJ5 IGlzIGF2YWlsYWJsZV0pCisrCisrCQkJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEJvb3N0 OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSwKKysJCQkJCQkgICBheF9jdl9ib29z dF9maWxlc3lzdGVtLAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BM VVMKKysJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUg PGJvb3N0L2ZpbGVzeXN0ZW0vcGF0aC5ocHA+XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbW3VzaW5nIG5hbWVzcGFjZSBib29zdDo6ZmlsZXN5c3RlbTsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggbXlfcGF0aCggImZvby9iYXIvZGF0YS50 eHQiICk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtdXSks CisrICAgICAgICAgICAgCQkJCSAgICAgICBheF9jdl9ib29zdF9maWxlc3lzdGVtPXllcywgYXhf Y3ZfYm9vc3RfZmlsZXN5c3RlbT1ubykKKysJCSAJCSAgICAgICAgCQkJQUNfTEFOR19SRVNUT1JF CisrCQkJXSkKKysJCQlpZiB0ZXN0ICIkYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPSAieWVzIjsg dGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9GSUxFU1lTVEVNLCxbZGVmaW5lIGlmIHRo ZSBCb29zdDo6RklMRVNZU1RFTSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0 X2ZpbGVzeXN0ZW0KKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRC Ti0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRC Ti1tZ3ctbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRC Ti0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJ QigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09T VF9GSUxFU1lTVEVNX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9GSUxFU1lTVEVNX0xJ QikgbGlua19maWxlc3lzdGVtPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbbGlua19maWxlc3lzdGVtPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYg dGVzdCAieCRsaW5rX2ZpbGVzeXN0ZW0iID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJ Q0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysK KysJCQlBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBs aWJyYXJ5IGlzIGF2YWlsYWJsZV0sCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRp b25zLAorKwkJCQkJCSAgIFtBQ19MQU5HX1NBVkUKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICBBQ19MQU5HX0NQTFVTUExVUworKwkJCSAgICAgICAgICAgICAgIEFDX0NPTVBJTEVfSUZFTFNF KEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9wcm9ncmFtX29wdGlvbnMuaHBw Pl1dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6cHJvZ3Jh bV9vcHRpb25zOjpvcHRpb25zX2Rlc2NyaXB0aW9uIGdlbmVyaWMoIkdlbmVyaWMgb3B0aW9ucyIp OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucz15ZXMs IGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucz1ubykKKysJCQkgICAgICAgICAgICAgICBBQ19M QU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9wcm9ncmFtX29w dGlvbnMiID0geWVzOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1BST0dSQU1fT1BU SU9OUywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlBST0dSQU1fT1BUSU9OUyBsaWJyYXJ5IGlzIGF2 YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X3Byb2dyYW1fb3B0aW9ucworKwkJCQlmb3IgYXhfbGli IGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1t dCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRC Ti0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OOyBkbworKwkJCQkgICAgQUNfQ0hF Q0tfTElCKCRheF9saWIsIG1haW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQikgbGlua19wcm9ncmFtX29wdGlvbnM9InllcyIgYnJlYWtdLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8i XSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua19wcm9ncmFtX29wdGlvbnM9Im5v IiIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKwkJCUFDX0NBQ0hFX0NIRUNLKHdo ZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUsCisrCQkJCQkJICAg YXhfY3ZfYm9vc3RfdGhyZWFkLAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19D UExVU1BMVVMKKysJCQkgQ1hYRkxBR1NfU0FWRT0kQ1hYRkxBR1MKKysKKysJCQkgaWYgdGVzdCAi eCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgorKyAgCQkJCSBDWFhGTEFHUz0iLXB0aHJl YWRzICRDWFhGTEFHUyIKKysJCQkgZWxpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4bWluZzMyIiA7 IHRoZW4KKysJCQkJIENYWEZMQUdTPSItbXRocmVhZHMgJENYWEZMQUdTIgorKwkJCSBlbHNlCisr CQkJCUNYWEZMQUdTPSItcHRocmVhZCAkQ1hYRkxBR1MiCisrCQkJIGZpCisrCQkJIEFDX0NPTVBJ TEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC90aHJlYWQvdGhy ZWFkLmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6 OnRocmVhZF9ncm91cCB0aHJkczsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAwO11dKSwKKysgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfdGhyZWFkPXll cywgYXhfY3ZfYm9vc3RfdGhyZWFkPW5vKQorKwkJCSBDWFhGTEFHUz0kQ1hYRkxBR1NfU0FWRQor KwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rf dGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgorKyAgICAgICAgICAgICAgIGlmIHRlc3QgIngkYnVpbGRf b3MiID0gInhzb2xhcmlzIiA7IHRoZW4KKysgCQkJCSAgQk9PU1RfQ0ZMQUdTPSItcHRocmVhZHMg JEJPT1NUX0NGTEFHUyIKKysJCQkgICBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIi IDsgdGhlbgorKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1tdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgor KwkJCSAgIGVsc2UKKysJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkICRCT09TVF9DRkxBR1Mi CisrCQkJICAgZmkKKysKKysJCQkJQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKQorKwkJCQlBQ19ERUZJ TkUoSEFWRV9CT09TVF9USFJFQUQsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpUSFJFQUQgbGlicmFy eSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF90aHJlYWQKKysJCQkJZm9yIGF4X2xpYiBp biAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQg bGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4t JENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hF Q0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9USFJFQURfTElCPSItbCRheF9saWIiIEFDX1NV QlNUKEJPT1NUX1RIUkVBRF9MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCisrICAJCQkJZG9u ZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19N U0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJ CWZpCisrCisrCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OklPU3RyZWFtcyBs aWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9pb3N0cmVhbXMsCisr CQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01Q SUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvaW9zdHJlYW1z L2ZpbHRlcmluZ19zdHJlYW0uaHBwPgorKwkJCQkJCQkJCQkJCSBAJTpAaW5jbHVkZSA8Ym9vc3Qv cmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgorKwkJCQkJCQkJCQkJCV1dLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgW1tzdGQ6OnN0cmluZyAgaW5wdXQgPSAiSGVsbG8gV29y bGQhIjsKKysJCQkJCQkJCQkgbmFtZXNwYWNlIGlvID0gYm9vc3Q6Omlvc3RyZWFtczsKKysJCQkJ CQkJCQkgaW86OmZpbHRlcmluZ19pc3RyZWFtICBpbihib29zdDo6bWFrZV9pdGVyYXRvcl9yYW5n ZShpbnB1dCkpOworKwkJCQkJCQkJCSByZXR1cm4gMDsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF1dKSwKKysgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfaW9zdHJl YW1zPXllcywgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPW5vKQorKwkJCSBBQ19MQU5HX1JFU1RPUkUK KysJCQldKQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA9ICJ4eWVzIjsg dGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9JT1NUUkVBTVMsLFtkZWZpbmUgaWYgdGhl IEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9p b3N0cmVhbXMKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0k Q0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRC TiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZF UlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9J T1NUUkVBTVNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpIGxp bmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbbGlua190aHJlYWQ9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtf dGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5r IGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisrCisrCQkJQUNfQ0FDSEVfQ0hF Q0sod2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUs CisrCQkJCQkJICAgYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiwKKysJCQkJCQlbQUNfTEFOR19T QVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xB TkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxmc3RyZWFtPgorKwkJCQkJCQkJCQkJCSBAJTpAaW5j bHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X29hcmNoaXZlLmhwcD4KKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQCU6QGluY2x1ZGUgPGJvb3N0L2FyY2hp dmUvdGV4dF9pYXJjaGl2ZS5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbW3N0ZDo6b2ZzdHJlYW0gb2ZzKCJmaWxlbmFtZSIpOworKwkJ CQkJCQkJCWJvb3N0OjphcmNoaXZlOjp0ZXh0X29hcmNoaXZlIG9hKG9mcyk7CisrCQkJCQkJCQkJ IHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAg ICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPXllcywgYXhfY3ZfYm9v c3Rfc2VyaWFsaXphdGlvbj1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlp ZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID0gInh5ZXMiOyB0aGVuCisrCQkJ CUFDX0RFRklORShIQVZFX0JPT1NUX1NFUklBTElaQVRJT04sLFtkZWZpbmUgaWYgdGhlIEJvb3N0 OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49Ym9vc3Rfc2Vy aWFsaXphdGlvbgorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJO LSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli JEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdf VkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1s JGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIpIGxpbmtfdGhyZWFkPSJ5 ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJl YWQ9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgorKwkJ CQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0k Q0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0Mg bGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisr CQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbQk9PU1RfV1NFUklBTElaQVRJT05fTElCPSItbCRheF9saWIiIEFDX1NV QlNUKEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKKysg IAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJ CQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJ CWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6U2ln bmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9zaWduYWxz LAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgQUNf Q09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3NpZ25h bC5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbW2Jvb3N0OjpzaWduYWw8dm9pZCAoKT4gc2lnOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF1dKSwKKysgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3Rfc2lnbmFscz15ZXMs IGF4X2N2X2Jvb3N0X3NpZ25hbHM9bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisr CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlB Q19ERUZJTkUoSEFWRV9CT09TVF9TSUdOQUxTLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6U2lnbmFs cyBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X3NpZ25hbHMKKysJCQkJZm9y IGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRC Ti0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkg ICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9TSUdOQUxTX0xJQj0iLWwkYXhf bGliIiBBQ19TVUJTVChCT09TVF9TSUdOQUxTX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtd LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkK KysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4K KysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisr CQkJCWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6 RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2Rh dGVfdGltZSwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisr CQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29z dC9kYXRlX3RpbWUvZ3JlZ29yaWFuL2dyZWdvcmlhbl90eXBlcy5ocHA+CisrCQkJCQkJCQkJCQkJ XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIG5hbWVzcGFj ZSBib29zdDo6Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTApOworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF1dKSwKKysgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfZGF0ZV90 aW1lPXllcywgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lPW5vKQorKwkJCSBBQ19MQU5HX1JFU1RPUkUK KysJCQldKQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiA9ICJ4eWVzIjsg dGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9EQVRFX1RJTUUsLFtkZWZpbmUgaWYgdGhl IEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9k YXRlX3RpbWUKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0k Q0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRC TiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZF UlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9E QVRFX1RJTUVfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpIGxp bmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbbGlua190aHJlYWQ9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtf dGhyZWFkIj0ibm8iID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90 IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNI RV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUsCisr CQkJCQkJICAgYXhfY3ZfYm9vc3RfcmVnZXgsCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBB Q19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0o W1tAJTpAaW5jbHVkZSA8Ym9vc3QvcmVnZXguaHBwPgorKwkJCQkJCQkJCQkJCV1dLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6cmVnZXggcigpOyByZXR1cm4g MDtdXSksCisrICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3JlZ2V4PXllcywgYXhfY3Zf Ym9vc3RfcmVnZXg9bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF9yZWdleCIgPSAieHllcyI7IHRoZW4KKysJCQkJQUNfREVGSU5FKEhB VkVfQk9PU1RfUkVHRVgsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2 YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X3JlZ2V4CisrCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1n dy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0k Q0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigk YXhfbGliLCBtYWluLCBbQk9PU1RfUkVHRVhfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NU X1JFR0VYX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlm IHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0Uo Q291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysKKysJ CQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGli cmFyeSBpcyBhdmFpbGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1l d29yaywKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJ IEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC90 ZXN0L3VuaXRfdGVzdC5ocHA+XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW1t1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOworKwkJCQkJICAgICAgICAg ICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4 YW1wbGUgMSIgKTsgcmV0dXJuIDA7XV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29z dF91bml0X3Rlc3RfZnJhbWV3b3JrPXllcywgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29y az1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2 X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID0gInh5ZXMiOyB0aGVuCisrICAgIAkJQUNfREVG SU5FKEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SSywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6 OlVuaXRfdGVzdF9mcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCUJOPWJvb3N0 X3VuaXRfdGVzdF9mcmFtZXdvcmsKKysgICAgCQlzYXZlZF9sZGZsYWdzPSIke0xERkxBR1N9Igor KwkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJO LSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxp YiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVS U0lPTiA7IGRvCisrICAgICAgICAgICAgICAgIExERkxBR1M9IiR7TERGTEFHU30gLWwkYXhfbGli IgorKyAgICAJCQlBQ19DQUNIRV9DSEVDSyh0aGUgbmFtZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0 RnJhbWV3b3JrIGxpYnJhcnksCisrCSAgICAgIAkJCQkJICAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0 X2ZyYW1ld29yaywKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVT CisrICAgICAgICAgICAgICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBp bmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+XV0sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtbdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9T VUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAwO11dKV0sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ieWVzIl0sW2xpbmtfdGhyZWFkPSJu byJdKQorKworKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysgICAgICAgICAgICAgICBdKQorKyAgICAg ICAgICAgICAgICBMREZMQUdTPSIke3NhdmVkX2xkZmxhZ3N9IgorKwkJCSAgICBpZiB0ZXN0ICJ4 JGxpbmtfdGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUI9Ii1sJGF4X2xpYiIKKysgICAgICAgICAgICAgICAgICAg IEFDX1NVQlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCKQorKwkJCQkJYnJlYWsKKysJ CQkJZmkKKysgICAgICAgICAgICAgIGRvbmUKKysJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVh ZCIgPSAieG5vIjsgdGhlbgorKwkJCQkgICBBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFn YWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisrCQlmaQorKyAgICAgICAgQ1BQRkxB R1M9IiRDUFBGTEFHU19TQVZFRCIKKysgICAgICAgIExERkxBR1M9IiRMREZMQUdTX1NBVkVEIgor KwlmaQorK10pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X215c3FsLm00 IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfbXlzcWwubTQKKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvYXhfbXlzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X215c3FsLm00CTIwMDktMDUtMjIg MjI6NTQ6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE3MiBAQAorK2RubCAkSWQ6IGF4 X215c3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6NTE6MjIgbWxvc2tvdCBFeHAgJAorK2RubAor K2RubCBAc3lub3BzaXMgQVhfTElCX01ZU1FMKFtNSU5JTVVNLVZFUlNJT05dKQorK2RubAorK2Ru bCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBNeVNRTCBjbGll bnQgbGlicmFyeQorK2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24gb3IgbmV3ZXIuCisrZG5sIAor K2RubCBBWF9MSUJfTVlTUUwgbWFjcm8gdGFrZXMgb25seSBvbmUgYXJndW1lbnQgd2hpY2ggaXMg b3B0aW9uYWwuIElmIHRoZXJlIGlzIG5vIAorK2RubCByZXF1aXJlZCB2ZXJzaW9uIHBhc3NlZCwg dGhlbiBtYWNybyBkb2VzIG5vdCBydW4gdmVyc2lvbiB0ZXN0LgorK2RubAorK2RubCBUaGUgLS13 aXRoLW15c3FsIG9wdGlvbiB0YWtlcyBvbmUgb2YgdGhyZWUgcG9zc2libGUgdmFsdWVzOgorK2Ru bCBubyAgIC0gZG8gbm90IGNoZWNrIGZvciBNeVNRTCBjbGllbnQgbGlicmFyeQorK2RubCB5ZXMg IC0gZG8gY2hlY2sgZm9yIE15U1FMIGxpYnJhcnkgaW4gc3RhbmRhcmQgbG9jYXRpb25zCisrZG5s ICAgICAgICAobXlzcWxfY29uZmlnIHNob3VsZCBiZSBpbiB0aGUgUEFUSCkKKytkbmwgcGF0aCAt IGNvbXBsZXRlIHBhdGggdG8gbXlzcWxfY29uZmlnIHV0aWxpdHksIHVzZSB0aGlzIG9wdGlvbgor K2RubCAgICAgICAgaWYgbXlzcWxfY29uZmlnIGNhbid0IGJlIGZvdW5kIGluIHRoZSBQQVRICisr ZG5sCisrZG5sIFRoaXMgbWFjcm8gY2FsbHM6CisrZG5sCisrZG5sICAgQUNfU1VCU1QoTVlTUUxf Q0ZMQUdTKQorK2RubCAgIEFDX1NVQlNUKE1ZU1FMX0xERkxBR1MpCisrZG5sICAgQUNfU1VCU1Qo TVlTUUxfVkVSU0lPTikKKytkbmwKKytkbmwgQW5kIHNldHM6CisrZG5sCisrZG5sICAgSEFWRV9N WVNRTAorK2RubAorK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMKKytkbmwgQGNhdGVn b3J5IEN4eAorK2RubCBAYXV0aG9yIE1hdGV1c3ogTG9za290IDxtYXRldXN6QGxvc2tvdC5uZXQ+ CisrZG5sIEB2ZXJzaW9uICREYXRlOiAyMDA3LzA2LzIzIDAxOjUxOjIyICQKKytkbmwgQGxpY2Vu c2UgQWxsUGVybWlzc2l2ZQorK2RubAorK2RubCAkSWQ6IGF4X215c3FsLm00LHYgMS4zIDIwMDcv MDYvMjMgMDE6NTE6MjIgbWxvc2tvdCBFeHAgJAorK2RubAorK0FDX0RFRlVOKFtBWF9MSUJfTVlT UUxdLAorK1sKKysgICAgQUNfQVJHX1dJVEgoW215c3FsXSwKKysgICAgICAgIEFDX0hFTFBfU1RS SU5HKFstLXdpdGgtbXlzcWw9QDw6QEFSR0A6PkBdLAorKyAgICAgICAgICAgIFt1c2UgTXlTUUwg Y2xpZW50IGxpYnJhcnkgQDw6QGRlZmF1bHQ9eWVzQDo+QCwgb3B0aW9uYWxseSBzcGVjaWZ5IHBh dGggdG8gbXlzcWxfY29uZmlnXQorKyAgICAgICAgKSwKKysgICAgICAgIFsKKysJTVlTUUxfaW5j X2NoZWNrPSIkd2l0aF9teXNxbC9pbmNsdWRlIgorKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwi ID0gIm5vIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfbXlzcWw9Im5vIgorKyAgICAgICAgZWxp ZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfbXlzcWw9 InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICB3YW50X215c3FsPSJ5ZXMiCisrICAg ICAgICAgICAgTVlTUUxfQ09ORklHPSIkd2l0aHZhbCIKKysgICAgICAgIGZpCisrICAgICAgICBd LAorKyAgICAgICAgW3dhbnRfbXlzcWw9InllcyIKKysJTVlTUUxfaW5jX2NoZWNrPSIvdXNyL2lu Y2x1ZGUgL3Vzci9sb2NhbCAvb3B0Il0KKysgICAgKQorKworKyAgICBNWVNRTF9DRkxBR1M9IiIK KysgICAgTVlTUUxfTERGTEFHUz0iIgorKyAgICBNWVNRTF9WRVJTSU9OPSIiCisrCisrICAgIGRu bAorKyAgICBkbmwgQ2hlY2sgTXlTUUwgbGlicmFyaWVzIChsaWJteXNxbGNsaWVudCkKKysgICAg ZG5sCisrICAgIAorKyAgICBpZiB0ZXN0ICIkd2FudF9teXNxbCIgPSAieWVzIjsgdGhlbgorKwor KyAgICAgICAgaWYgdGVzdCAteiAiJE1ZU1FMX0NPTkZJRyIgLW8gdGVzdDsgdGhlbgorKyAgICAg ICAgICAgIEFDX1BBVEhfUFJPRyhbTVlTUUxfQ09ORklHXSwgW215c3FsX2NvbmZpZ10sIFtdKQor KyAgICAgICAgZmkKKysKKysgICAgICAgIGRubCBNWVNRTF9DT05GSUcgaXMgcHJvdmlkZWQgYnV0 IGl0IGRvZXMgbm90IHBvaW50IHRvIGV4ZWN1dGFibGUgZmlsZQorKyAgICAgICAgaWYgdGVzdCAh IC14ICIkTVlTUUxfQ09ORklHIjsgdGhlbgorKyAgICAgICAgICAgIEFDX01TR19FUlJPUihbJE1Z U1FMX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxl XSkKKysgICAgICAgICAgICBNWVNRTF9DT05GSUc9Im5vIgorKyAgICAgICAgICAgIGZvdW5kX215 c3FsPSJubyIKKysgICAgICAgIGZpCisrCisrICAgICAgICBpZiB0ZXN0ICIkTVlTUUxfQ09ORklH IiAhPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgIworKyAgICAgICAgICAgICMgTG9vayBmb3Ig TXlTUUwgQyBBUEkgaGVhZGVycworKyAgICAgICAgICAgICMKKysgICAgICAgICAgICBBQ19NU0df Q0hFQ0tJTkcoW2ZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeV0pCisrICAgICAgICAgICAgTVlT UUxfaW5jZGlyPQorKyAgICAgICAgICAgIGZvciBteXNxbF9pbmNfZGlyIGluICRNWVNRTF9pbmNf Y2hlY2sKKysgICAgICAgICAgICBkbworKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkbXlz cWxfaW5jX2RpciIgXAorKyAgICAgICAgICAgICAgICAmJiB0ZXN0IC1mICIkbXlzcWxfaW5jX2Rp ci9teXNxbC9teXNxbC5oIgorKyAgICAgICAgICAgICAgICB0aGVuCisrICAgICAgICAgICAgICAg ICAgICBNWVNRTF9pbmNkaXI9JG15c3FsX2luY19kaXIKKysgICAgICAgICAgICAgICAgICAgIGJy ZWFrCisrICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZG9uZQorKworKyAgICAgICAg ICAgIGlmIHRlc3QgLXogIiRNWVNRTF9pbmNkaXIiCisrICAgICAgICAgICAgdGhlbgorKyAgICAg ICAgICAgICAgICBBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5kIHRoZSBNeVNRTCBpbmNsdWRlIGRp ciBpbiAnJE1ZU1FMX2luY19jaGVjayddKQorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAg ICAgY2FzZSAiJE1ZU1FMX2luY2RpciIgaW4KKysgICAgICAgICAgICAgICAgLyogKSA7OworKyAg ICAgICAgICAgICAgICAqICkgIEFDX01TR19FUlJPUihbVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0 b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKKysgICAg ICAgICAgICBlc2FjCisrCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbJE1ZU1FMX2luY2Rp cl0pCisrCisrICAgICAgICAgICAgaWYgdGVzdCAiJE1ZU1FMX2luY2RpciIgPSAiL3Vzci9pbmNs dWRlIjsgdGhlbgorKyAgICAgICAgICAgICAgTVlTUUxfQ0ZMQUdTPSIiCisrICAgICAgICAgICAg ZWxzZQorKyAgICAgICAgICAgICAgTVlTUUxfQ0ZMQUdTPSItSSR7TVlTUUxfaW5jZGlyfSIKKysg ICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIE1ZU1FMX0xERkxBR1M9ImAkTVlTUUxfQ09O RklHIC0tbGlic2AiCisrCisrICAgICAgICAgICAgTVlTUUxfVkVSU0lPTj1gJE1ZU1FMX0NPTkZJ RyAtLXZlcnNpb25gCisrCisrICAgICAgICAgICAgQUNfREVGSU5FKFtIQVZFX01ZU1FMXSwgWzFd LCBbRGVmaW5lIHRvIDEgaWYgTXlTUUwgbGlicmFyaWVzIGFyZSBhdmFpbGFibGVdKQorKyAgICAg ICAgICAgIAorKyAgICAgICAgICAgIGZvdW5kX215c3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisr ICAgICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysg ICAgZG5sCisrICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJzaW9uIG9mIE15U1FMIGlzIGF2 YWlsYWJsZQorKyAgICBkbmwKKysgICAgCisrCisrICAgIG15c3FsX3ZlcnNpb25fcmVxPWlmZWxz ZShbJDFdLCBbXSwgW10sIFskMV0pCisrCisrICAgIGlmIHRlc3QgIiRmb3VuZF9teXNxbCIgPSAi eWVzIiAtYSAtbiAiJG15c3FsX3ZlcnNpb25fcmVxIjsgdGhlbgorKworKyAgICAgICAgQUNfTVNH X0NIRUNLSU5HKFtpZiBNeVNRTCB2ZXJzaW9uIGlzID49ICRteXNxbF92ZXJzaW9uX3JlcV0pCisr CisrICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVpcmVkIHZlcnNpb24gc3RyaW5nIG9mIE15U1FM CisrICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCisr ICAgICAgICBteXNxbF92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkbXlzcWxfdmVyc2lvbl9yZXEg OiAnXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21pbm9yPWBleHBy ICRteXNxbF92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysgICAgICAg IG15c3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdbWzAt OV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JG15c3Fs X3ZlcnNpb25fcmVxX21pY3JvIiA9ICJ4IjsgdGhlbgorKyAgICAgICAgICAgIG15c3FsX3ZlcnNp b25fcmVxX21pY3JvPSIwIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIG15c3FsX3ZlcnNpb25f cmVxX251bWJlcj1gZXhwciAkbXlzcWxfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkbXlzcWxfdmVyc2lvbl9yZXFf bWlub3IgXCogMTAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAk bXlzcWxfdmVyc2lvbl9yZXFfbWljcm9gCisrCisrICAgICAgICBkbmwgRGVjb21wb3NlIHZlcnNp b24gc3RyaW5nIG9mIGluc3RhbGxlZCBNeVNRTAorKyAgICAgICAgZG5sIGFuZCBjYWxjdWxhdGUg aXRzIG51bWJlciByZXByZXNlbnRhdGlvbgorKyAgICAgICAgbXlzcWxfdmVyc2lvbl9tYWpvcj1g ZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdcKFtbMC05XV0qXCknYAorKyAgICAgICAgbXlzcWxfdmVy c2lvbl9taW5vcj1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwp J2AKKysgICAgICAgIG15c3FsX3ZlcnNpb25fbWljcm89YGV4cHIgJE1ZU1FMX1ZFUlNJT04gOiAn W1swLTldXSpcLltbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKyAgICAgICAgaWYgdGVzdCAieCRt eXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgorKyAgICAgICAgICAgIG15c3FsX3ZlcnNp b25fbWljcm89IjAiCisrICAgICAgICBmaQorKworKyAgICAgICAgbXlzcWxfdmVyc2lvbl9udW1i ZXI9YGV4cHIgJG15c3FsX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcKyAkbXlzcWxfdmVyc2lvbl9taW5vciBcKiAxMDAwIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX21p Y3JvYAorKworKyAgICAgICAgbXlzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkbXlzcWxfdmVyc2lv bl9udW1iZXIgXD5cPSAkbXlzcWxfdmVyc2lvbl9yZXFfbnVtYmVyYAorKyAgICAgICAgaWYgdGVz dCAiJG15c3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisrICAgICAgICAgICAgQUNfTVNH X1JFU1VMVChbeWVzXSkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxU KFtub10pCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAgICBBQ19TVUJTVChbTVlTUUxfVkVS U0lPTl0pCisrICAgIEFDX1NVQlNUKFtNWVNRTF9DRkxBR1NdKQorKyAgICBBQ19TVUJTVChbTVlT UUxfTERGTEFHU10pCisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhf b3JhY2xlX29jaS5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X29yYWNsZV9vY2kubTQK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfb3JhY2xlX29jaS5tNAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv YXhfb3JhY2xlX29jaS5tNAkyMDA5LTA1LTIyIDIyOjU0OjM3LjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSwyODYgQEAKKytkbmwgJElkOiBheF9vcmFjbGVfb2NpLm00LHYgMS4xMSAyMDA4LzA0 LzI4IDE5OjU4OjU0IG1sb3Nrb3QgRXhwICQKKytkbmwKKytkbmwgQHN5bm9wc2lzIEFYX0xJQl9P UkFDTEVfT0NJKFtNSU5JTVVNLVZFUlNJT05dKQorK2RubAorK2RubCBUaGlzIG1hY3JvIHByb3Zp ZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBPcmFjbGUgT0NJIEFQSQorK2RubCBvZiBwYXJ0 aWN1bGFyIHZlcnNpb24gb3IgbmV3ZXIuCisrZG5sIFRoaXMgbWFjcm9zIGNoZWNrcyBmb3IgT3Jh Y2xlIE9DSSBoZWFkZXJzIGFuZCBsaWJyYXJpZXMgCisrZG5sIGFuZCBkZWZpbmVzIGNvbXBpbGF0 aW9uIGZsYWdzCisrZG5sIAorK2RubCBNYWNybyBzdXBwb3J0cyBmb2xsb3dpbmcgb3B0aW9ucyBh bmQgdGhlaXIgdmFsdWVzOgorK2RubCAxKSBTaW5nbGUtb3B0aW9uIHVzYWdlOgorK2RubCAtLXdp dGgtb3JhY2xlIC0gcGF0aCB0byBPUkFDTEVfSE9NRSBkaXJlY3RvcnkKKytkbmwgMikgVHdvLW9w dGlvbnMgdXNhZ2UgKGJvdGggb3B0aW9ucyBhcmUgcmVxdWlyZWQpOgorK2RubCAtLXdpdGgtb3Jh Y2xlLWluY2x1ZGUgLSBwYXRoIHRvIGRpcmVjdG9yeSB3aXRoIE9DSSBoZWFkZXJzCisrZG5sIC0t d2l0aC1vcmFjbGUtbGliIC0gcGF0aCB0byBkaXJlY3Rvcnkgd2l0aCBPQ0kgbGlicmFyaWVzIAor K2RubAorK2RubCBOT1RFOiBUaGVzZSBvcHRpb25zIGRlc2NyaWJlZCBhYm92ZSBkb2VzIG5vdCB0 YWtlIHllc3xubyB2YWx1ZXMuCisrZG5sIElmICd5ZXMnIHZhbHVlIGlzIHBhc3NlZCwgdGhlbiBX QVJOSU5HIG1lc3NhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQsCisrZG5sICdubycgdmFsdWUsIGFzIHdl bGwgYXMgdGhlIC0td2l0aG91dC1vcmFjbGUqIHZhcmlhdGlvbnMgd2lsbCBjYXVzZQorK2RubCB0 aGUgbWFjcm8gd29uJ3QgY2hlY2sgZW55dGhpbmcuCisrZG5sCisrZG5sIFRoaXMgbWFjcm8gY2Fs bHM6CisrZG5sCisrZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9DRkxBR1MpCisrZG5sICAgQUNf U1VCU1QoT1JBQ0xFX09DSV9MREZMQUdTKQorK2RubCAgIEFDX1NVQlNUKE9SQUNMRV9PQ0lfVkVS U0lPTikKKytkbmwKKytkbmwgQW5kIHNldHM6CisrZG5sCisrZG5sICAgSEFWRV9PUkFDTEUKKytk bmwKKytkbmwgQGNhdGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCisrZG5sIEBjYXRlZ29yeSBDeHgK KytkbmwgQGF1dGhvciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0PgorK2RubCBA dmVyc2lvbiAkRGF0ZTogMjAwOC8wNC8yOCAxOTo1ODo1NCAkCisrZG5sIEBsaWNlbnNlIEFsbFBl cm1pc3NpdmUKKytkbmwKKytkbmwgJElkOiBheF9vcmFjbGVfb2NpLm00LHYgMS4xMSAyMDA4LzA0 LzI4IDE5OjU4OjU0IG1sb3Nrb3QgRXhwICQKKytkbmwKKytBQ19ERUZVTihbQVhfTElCX09SQUNM RV9PQ0ldLAorK1sKKysgICAgQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKQorKyAgICBB Q19BUkdfV0lUSChbb3JhY2xlXSwKKysgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3Jh Y2xlPUA8OkBESVJAOj5AXSwKKysgICAgICAgICAgICBbdXNlIE9yYWNsZSBPQ0kgQVBJIGZyb20g Z2l2ZW4gcGF0aCB0byBPcmFjbGUgaG9tZSBkaXJlY3RvcnldCisrICAgICAgICApLAorKyAgICAg ICAgWworKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAg ICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCisrICAgICAgICAgICAgICAgIG9y YWNsZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAg ICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCisrICAgICAgICAgICAgZmkgCisrICAgICAgICBm aQorKyAgICAgICAgXSwKKysgICAgICAgIFsKKysgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVf SE9NRSI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIK KysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAg IGZpIAorKyAgICAgICAgXQorKyAgICApCisrCisrICAgIEFDX0FSR19XSVRIKFtvcmFjbGUtaW5j bHVkZV0sCisrICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLW9yYWNsZS1pbmNsdWRlPUA8 OkBESVJAOj5AXSwKKysgICAgICAgICAgICBbdXNlIE9yYWNsZSBPQ0kgQVBJIGhlYWRlcnMgZnJv bSBnaXZlbiBwYXRoXQorKyAgICAgICAgKSwKKysgICAgICAgIFtvcmFjbGVfaG9tZV9pbmNsdWRl X2Rpcj0iJHdpdGh2YWwiXSwKKysgICAgICAgIFtvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iIl0K KysgICAgKQorKyAgICBBQ19BUkdfV0lUSChbb3JhY2xlLWxpYl0sCisrICAgICAgICBBQ19IRUxQ X1NUUklORyhbLS13aXRoLW9yYWNsZS1saWI9QDw6QERJUkA6PkBdLAorKyAgICAgICAgICAgIFt1 c2UgT3JhY2xlIE9DSSBBUEkgbGlicmFyaWVzIGZyb20gZ2l2ZW4gcGF0aF0KKysgICAgICAgICks CisrICAgICAgICBbb3JhY2xlX2hvbWVfbGliX2Rpcj0iJHdpdGh2YWwiXSwKKysgICAgICAgIFtv cmFjbGVfaG9tZV9saWJfZGlyPSIiXQorKyAgICApCisrCisrICAgIE9SQUNMRV9PQ0lfQ0ZMQUdT PSIiCisrICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iIgorKyAgICBPUkFDTEVfT0NJX1ZFUlNJT049 IiIKKysKKysgICAgZG5sCisrICAgIGRubCBDb2xsZWN0IGluY2x1ZGUvbGliIHBhdGhzCisrICAg IGRubCAKKysgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9Im5vIgorKworKyAgICBpZiB0ZXN0 IC1uICIkb3JhY2xlX2hvbWVfZGlyIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAiJG9yYWNs ZV9ob21lX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2RpciIgIT0gInllcyI7IHRoZW4K KysgICAgICAgICAgICBkbmwgT1JBQ0xFX0hPTUUgcGF0aCBwcm92aWRlZAorKyAgICAgICAgICAg IAorKyAgICAgICAgICAgIGRubCBQcmltYXJ5IHBhdGggdG8gT0NJIGhlYWRlcnMsIGF2YWlsYWJs ZSBpbiBPcmFjbGU+PTEwCisrICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xl X2hvbWVfZGlyL3JkYm1zL3B1YmxpYyIKKysgICAgICAgICAgICAKKysgICAgICAgICAgICBkbmwg U2Vjb25kYXJ5IHBhdGggdG8gT0NJIGhlYWRlcnMgdXNlZCBieSBvbGRlciB2ZXJzaW9ucworKyAg ICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2RpcjI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvZGVt byIKKysKKysgICAgICAgICAgICBkbmwgTGlicmFyeSBwYXRoCisrICAgICAgICAgICAgb3JhY2xl X2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvbGliIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3Jh Y2xlX2hvbWVfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0 X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrCisrICAgIGVsaWYgdGVzdCAtbiAiJG9yYWNs ZV9ob21lX2luY2x1ZGVfZGlyIiAtbyAtbiAiJG9yYWNsZV9ob21lX2xpYl9kaXIiOyB0aGVuCisr CisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiICE9ICJubyIgLWEg IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gInllcyI7IHRoZW4KKysgICAgICAgICAgICBv cmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIKKysgICAgICAgIGVs aWYgdGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAg ICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrCisrICAg ICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9o b21lX2xpYl9kaXIiICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2xpYl9kaXI9 IiRvcmFjbGVfaG9tZV9saWJfZGlyIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVf bGliX2RpciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19w YXRoPSJ5ZXMiCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0ICIkd2FudF9v cmFjbGVfYnV0X25vX3BhdGgiID0gInllcyI7IHRoZW4KKysgICAgICAgIEFDX01TR19XQVJOKFtP cmFjbGUgc3VwcG9ydCBpcyByZXF1ZXN0ZWQgYnV0IG5vIE9yYWNsZSBwYXRocyBoYXZlIGJlZW4g cHJvdmlkZWQuIFwKKytQbGVhc2UsIGxvY2F0ZSBPcmFjbGUgZGlyZWN0b3JpZXMgdXNpbmcgLS13 aXRoLW9yYWNsZSBvciBcCisrLS13aXRoLW9yYWNsZS1pbmNsdWRlIGFuZCAtLXdpdGgtb3JhY2xl LWxpYiBvcHRpb25zLl0pCisrICAgIGZpCisrCisrICAgIGRubAorKyAgICBkbmwgQ2hlY2sgT0NJ IGZpbGVzCisrICAgIGRubAorKyAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyIiAt YSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAgICAgc2F2ZWRfQ1BQRkxBR1M9 IiRDUFBGTEFHUyIKKysgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1 ZGVfZGlyIgorKworKyAgICAgICAgZG5sIEFkZGl0aW9uYWwgcGF0aCBmb3Igb2xkZXIgT3JhY2xl IGluc3RhbGxhdGlvbnMgCisrICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGly MiI7IHRoZW4KKysgICAgICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNs dWRlX2RpcjIiCisrICAgICAgICBmaQorKworKyAgICAgICAgIyBGaWd1cmUgb3V0IGlmIHdlIGFy ZSBidWlsZGluZyBvbiB3aW4zMi4KKysgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICAg ICAgICAqbWluZ3czMiogKSBXSU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqY3lnd2luKiApICBX SU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqKSBXSU4zMj1ubyA7OworKyAgICAgICAgZXNhYwor KworKyAgICAgICAgaWYgdGVzdCAiJFdJTjMyIiA9ICJubyIKKysgICAgICAgIHRoZW4KKysgICAg ICAgICAgICBvY2lfbGlicz0iLWxjbG50c2ggLWxubnoxMSIKKysgICAgICAgIGVsc2UKKysgICAg ICAgICAgICBvY2lfbGlicz0iLWxvY2kiCisrICAgICAgICBmaQorKworKyAgICAgICAgc2F2ZWRf TERGTEFHUz0iJExERkxBR1MiCisrICAgICAgICBzYXZlZF9MSUJTPSIkTElCUyIKKysgICAgICAg IG9jaV9sZGZsYWdzPSItTCRvcmFjbGVfbGliX2RpciIKKysgICAgICAgIExERkxBR1M9IiRMREZM QUdTICRvY2lfbGRmbGFncyIKKysgICAgICAgIExJQlM9IiRMSUJTICRvY2lfbGlicyIKKysKKysg ICAgICAgIGRubAorKyAgICAgICAgZG5sIENoZWNrIE9DSSBoZWFkZXJzCisrICAgICAgICBkbmwK KysgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBpbiAkb3Jh Y2xlX2luY2x1ZGVfZGlyXSkKKysKKysgICAgICAgIEFDX0xBTkdfUFVTSChDKyspCisrICAgICAg ICBBQ19DT01QSUxFX0lGRUxTRShbCisrICAgICAgICAgICAgQUNfTEFOR19QUk9HUkFNKFtbQCU6 QGluY2x1ZGUgPG9jaS5oPl1dLAorKyAgICAgICAgICAgICAgICBbWworKyNpZiBkZWZpbmVkKE9D SV9NQUpPUl9WRVJTSU9OKQorKyNpZiBPQ0lfTUFKT1JfVkVSU0lPTiA9PSAxMCAmJiBPQ0lfTUlO T1JfVkVSU0lPTiA9PSAyCisrLy8gT3JhY2xlIDEwLjIgZGV0ZWN0ZWQKKysjZW5kaWYKKysjZWxp ZiBkZWZpbmVkKE9DSV9WN19TWU5UQVgpCisrLy8gT0ssIG9sZGVyIE9yYWNsZSBkZXRlY3RlZAor Ky8vIFRPRE8gLSBtbG9za290OiBmaW5kIGJldHRlciBtYWNybyB0byBjaGVjayBmb3Igb2xkZXIg dmVyc2lvbnM7IAorKyNlbHNlCisrIyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhlYWRlciBub3QgZm91 bmQKKysjZW5kaWYKKysgICAgICAgICAgICAgICAgXV0KKysgICAgICAgICAgICApXSwKKysgICAg ICAgICAgICBbCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9Ii1JJG9yYWNsZV9pbmNs dWRlX2RpciIKKysKKysgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGly MiI7IHRoZW4KKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiRPUkFDTEVfT0NJ X0NGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgorKyAgICAgICAgICAgIGZpCisrCisrICAg ICAgICAgICAgb2NpX2hlYWRlcl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgIEFDX01TR19SRVNV TFQoW3llc10pCisrICAgICAgICAgICAgXSwKKysgICAgICAgICAgICBbCisrICAgICAgICAgICAg b2NpX2hlYWRlcl9mb3VuZD0ibm8iCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbbm90IGZv dW5kXSkKKysgICAgICAgICAgICBdCisrICAgICAgICApCisrICAgICAgICBBQ19MQU5HX1BPUChb QysrXSkKKysgICAgICAgIAorKyAgICAgICAgZG5sCisrICAgICAgICBkbmwgQ2hlY2sgT0NJIGxp YnJhcmllcworKyAgICAgICAgZG5sCisrICAgICAgICBpZiB0ZXN0ICIkb2NpX2hlYWRlcl9mb3Vu ZCIgPSAieWVzIjsgdGhlbgorKworKyAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE9y YWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2Rpcl0pCisrCisrICAgICAgICAgICAg QUNfTEFOR19QVVNIKEMrKykKKysgICAgICAgICAgICBBQ19MSU5LX0lGRUxTRShbCisrICAgICAg ICAgICAgICAgIEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxvY2kuaD5dXSwKKysgICAg ICAgICAgICAgICAgICAgIFtbCisrT0NJRW52KiBlbnZoID0gMDsKKytPQ0lFbnZDcmVhdGUoJmVu dmgsIE9DSV9ERUZBVUxULCAwLCAwLCAwLCAwLCAwLCAwKTsKKytpZiAoZW52aCkgT0NJSGFuZGxl RnJlZShlbnZoLCBPQ0lfSFRZUEVfRU5WKTsKKysgICAgICAgICAgICAgICAgICAgIF1dCisrICAg ICAgICAgICAgICAgICldLAorKyAgICAgICAgICAgICAgICBbCisrICAgICAgICAgICAgICAgIE9S QUNMRV9PQ0lfTERGTEFHUz0iJG9jaV9sZGZsYWdzICRvY2lfbGlicyIKKysgICAgICAgICAgICAg ICAgb2NpX2xpYl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5 ZXNdKQorKyAgICAgICAgICAgICAgICBdLAorKyAgICAgICAgICAgICAgICBbCisrICAgICAgICAg ICAgICAgIG9jaV9saWJfZm91bmQ9Im5vIgorKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxU KFtub3QgZm91bmRdKQorKyAgICAgICAgICAgICAgICBdCisrICAgICAgICAgICAgKQorKyAgICAg ICAgICAgIEFDX0xBTkdfUE9QKFtDKytdKQorKyAgICAgICAgZmkKKysKKysgICAgICAgIENQUEZM QUdTPSIkc2F2ZWRfQ1BQRkxBR1MiCisrICAgICAgICBMREZMQUdTPSIkc2F2ZWRfTERGTEFHUyIK KysgICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgorKyAgICBmaQorKworKyAgICBkbmwKKysgICAg ZG5sIENoZWNrIHJlcXVpcmVkIHZlcnNpb24gb2YgT3JhY2xlIGlzIGF2YWlsYWJsZQorKyAgICBk bmwKKysgICAgb3JhY2xlX3ZlcnNpb25fcmVxPWlmZWxzZShbJDFdLCBbXSwgW10sIFskMV0pCisr CisrICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiIC1hICIkb2NpX2xpYl9m b3VuZCIgPSAieWVzIiAtYSBcCisrICAgICAgICAtbiAiJG9yYWNsZV92ZXJzaW9uX3JlcSI7IHRo ZW4KKysKKysgICAgICAgIG9yYWNsZV92ZXJzaW9uX21ham9yPWBjYXQgJG9yYWNsZV9pbmNsdWRl X2Rpci9vY2kuaCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZp bmUuKk9DSV9NQUpPUl9WRVJTSU9OLionIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01BSk9SX1ZFUlNJT04gICovLycgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKKysKKysg ICAgICAgIG9yYWNsZV92ZXJzaW9uX21pbm9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2ku aCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9N SU5PUl9WRVJTSU9OLionIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1l ICdzLyNkZWZpbmUgT0NJX01JTk9SX1ZFUlNJT04gICovLycgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKKysKKysgICAgICAgIEFD X01TR19DSEVDS0lORyhbaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlzID49ICRvcmFjbGVfdmVyc2lv bl9yZXFdKQorKworKyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9yIiAt YSAtbiAkIm9yYWNsZV92ZXJzaW9uX21pbm9yIjsgdGhlbgorKworKyAgICAgICAgICAgIE9SQUNM RV9PQ0lfVkVSU0lPTj0iJG9yYWNsZV92ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9taW5v ciIKKysKKysgICAgICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVpcmVkIHZlcnNpb24gc3RyaW5n IG9mIE9yYWNsZQorKyAgICAgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVw cmVzZW50YXRpb24KKysgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIg JG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAorKyAgICAgICAgICAgIG9yYWNs ZV92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0q XC5cKFtbMC05XV0qXCknYAorKworKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9udW1i ZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25fcmVxX21p bm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgZG5sIENhbGN1bGF0ZSBpdHMgbnVtYmVyIHJl cHJlc2VudGF0aW9uIAorKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX251bWJlcj1gZXhwciAk b3JhY2xlX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9taW5vciBcKiAxMDAwYAorKworKyAgICAg ICAgICAgIG9yYWNsZV92ZXJzaW9uX2NoZWNrPWBleHByICRvcmFjbGVfdmVyc2lvbl9udW1iZXIg XD5cPSAkb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAgICAgICAgICBpZiB0ZXN0ICIk b3JhY2xlX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisrICAgICAgICAgICAgICAgIEFDX01T R19SRVNVTFQoW3llc10pCisrICAgICAgICAgICAgICAgIEFDX0RFRklORShIQVZFX09SQUNMRSwg WzFdLCBbRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNsZSBPQ0kgbGlicmFyeSBpcyBhdmFpbGFibGVd KQorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbbm9d KQorKyAgICAgICAgICAgICAgICBBQ19NU0dfRVJST1IoW09yYWNsZSAkT1JBQ0xFX09DSV9WRVJT SU9OIGZvdW5kLCBidXQgcmVxdWlyZWQgdmVyc2lvbiBpcyAkb3JhY2xlX3ZlcnNpb25fcmVxXSkK KysgICAgICAgICAgICBmaQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIE9SQUNMRV9PQ0lf VkVSU0lPTj0iVU5LTk9XTiIKKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCisrICAg ICAgICAgICAgQUNfTVNHX1dBUk4oW09yYWNsZSB2ZXJzaW9uIHVua25vd24sIHByb2JhYmx5IE9D SSBvbGRlciB0aGFuIDEwLjIgaXMgYXZhaWxhYmxlXSkKKysgICAgICAgIGZpCisrICAgIGZpCisr CisrICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX1ZFUlNJT05dKQorKyAgICBBQ19TVUJTVChbT1JB Q0xFX09DSV9DRkxBR1NdKQorKyAgICBBQ19TVUJTVChbT1JBQ0xFX09DSV9MREZMQUdTXSkKKytd KQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfcG9zdGdyZXNxbC5tNAorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00 CTIwMDktMDUtMjIgMjI6NTQ6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE3MSBAQAor K2RubCAkSWQ6IGF4X3Bvc3RncmVzcWwubTQsdiAxLjMgMjAwNy8wNi8yMyAwMTo1MToyMiBtbG9z a290IEV4cCAkCisrZG5sCisrZG5sIEBzeW5vcHNpcyBBWF9MSUJfUE9TVEdSRVNRTChbTUlOSU1V TS1WRVJTSU9OXSkKKytkbmwKKytkbmwgVGhpcyBtYWNybyBwcm92aWRlcyB0ZXN0cyBvZiBhdmFp bGFiaWxpdHkgb2YgUG9zdGdyZVNRTCAnbGlicHEnIGxpYnJhcnkKKytkbmwgb2YgcGFydGljdWxh ciB2ZXJzaW9uIG9yIG5ld2VyLgorK2RubCAKKytkbmwgQVhfTElCX1BPU1RHUkVTUUwgbWFjcm8g dGFrZXMgb25seSBvbmUgYXJndW1lbnQgd2hpY2ggaXMgb3B0aW9uYWwuIElmIHRoZXJlIGlzIG5v IAorK2RubCByZXF1aXJlZCB2ZXJzaW9uIHBhc3NlZCwgdGhlbiBtYWNybyBkb2VzIG5vdCBydW4g dmVyc2lvbiB0ZXN0LgorK2RubAorK2RubCBUaGUgLS13aXRoLXBvc3RncmVzcWwgb3B0aW9uIHRh a2VzIG9uZSBvZiB0aHJlZSBwb3NzaWJsZSB2YWx1ZXM6CisrZG5sIG5vICAgLSBkbyBub3QgY2hl Y2sgZm9yIFBvc3RncmVTUUwgY2xpZW50IGxpYnJhcnkKKytkbmwgeWVzICAtIGRvIGNoZWNrIGZv ciBQb3N0Z3JlU1FMIGxpYnJhcnkgaW4gc3RhbmRhcmQgbG9jYXRpb25zCisrZG5sICAgICAgICAo cGdfY29uZmlnIHNob3VsZCBiZSBpbiB0aGUgUEFUSCkKKytkbmwgcGF0aCAtIGNvbXBsZXRlIHBh dGggdG8gcGdfY29uZmlnIHV0aWxpdHksIHVzZSB0aGlzIG9wdGlvbgorK2RubCAgICAgICAgaWYg cGdfY29uZmlnIGNhbid0IGJlIGZvdW5kIGluIHRoZSBQQVRICisrZG5sCisrZG5sIFRoaXMgbWFj cm8gY2FsbHM6CisrZG5sCisrZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9DRkxBR1MpCisrZG5s ICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9MREZMQUdTKQorK2RubCAgIEFDX1NVQlNUKFBPU1RHUkVT UUxfVkVSU0lPTikKKytkbmwKKytkbmwgQW5kIHNldHM6CisrZG5sCisrZG5sICAgSEFWRV9QT1NU R1JFU1FMCisrZG5sCisrZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcworK2RubCBAY2F0 ZWdvcnkgQ3h4CisrZG5sIEBhdXRob3IgTWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9za290Lm5l dD4KKytkbmwgQHZlcnNpb24gJERhdGU6IDIwMDcvMDYvMjMgMDE6NTE6MjIgJAorK2RubCBAbGlj ZW5zZSBBbGxQZXJtaXNzaXZlCisrZG5sCisrZG5sICRJZDogYXhfcG9zdGdyZXNxbC5tNCx2IDEu MyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3QgRXhwICQKKytkbmwKKytBQ19ERUZVTihbQVhf TElCX1BPU1RHUkVTUUxdLAorK1sKKysgICAgQUNfQVJHX1dJVEgoW3Bvc3RncmVzcWxdLAorKyAg ICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1wb3N0Z3Jlc3FsPUA8OkBBUkdAOj5AXSwKKysg ICAgICAgICAgICBbdXNlIFBvc3RncmVTUUwgbGlicmFyeSBAPDpAZGVmYXVsdD15ZXNAOj5ALCBv cHRpb25hbGx5IHNwZWNpZnkgcGF0aCB0byBwZ19jb25maWddCisrICAgICAgICApLAorKyAgICAg ICAgWworKwlQT1NUR1JFU1FMX2luY19jaGVjaz0iJHdpdGhfcG9zdGdyZXNxbC9pbmNsdWRlIgor KyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgorKyAgICAgICAgICAgIHdh bnRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMi OyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrICAgICAgICBlbHNl CisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrICAgICAgICAgICAgUEdfQ09O RklHPSIkd2l0aHZhbCIKKysgICAgICAgIGZpCisrICAgICAgICBdLAorKyAgICAgICAgW3dhbnRf cG9zdGdyZXNxbD0ieWVzIgorKwlQT1NUR1JFU1FMX2luY19jaGVjaz0iL3Vzci9pbmNsdWRlIC91 c3IvbG9jYWwgL29wdCJdCisrICAgICkKKysKKysgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysg ICAgUE9TVEdSRVNRTF9MREZMQUdTPSIiCisrICAgIFBPU1RHUkVTUUxfUE9TVEdSRVNRTD0iIgor KworKyAgICBkbmwKKysgICAgZG5sIENoZWNrIFBvc3RncmVTUUwgbGlicmFyaWVzIChsaWJwcSkK KysgICAgZG5sCisrICAgIAorKyAgICBpZiB0ZXN0ICIkd2FudF9wb3N0Z3Jlc3FsIiA9ICJ5ZXMi OyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0IC16ICIkUEdfQ09ORklHIiAtbyB0ZXN0OyB0aGVu CisrICAgICAgICAgICAgQUNfUEFUSF9QUk9HKFtQR19DT05GSUddLCBbcGdfY29uZmlnXSwgW10p CisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAhIC14ICIkUEdfQ09ORklHIjsgdGhl bgorKyAgICAgICAgICAgIEFDX01TR19FUlJPUihbJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBv ciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlXSkKKysgICAgICAgICAgICBQR19DT05GSUc9 Im5vIgorKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkKKysK KysgICAgICAgIGlmIHRlc3QgIiRQR19DT05GSUciICE9ICJubyI7IHRoZW4KKysgICAgICAgICAg ICAjCisrICAgICAgICAgICAgIyBMb29rIGZvciBQb3N0Z3Jlc3FsIEMgQVBJIGhlYWRlcnMKKysg ICAgICAgICAgICAjCisrICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgUG9zdGdyZXNx bCBpbmNsdWRlIGRpcmVjdG9yeV0pCisrICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9Cisr ICAgICAgICAgICAgZm9yIHBvc3RncmVzcWxfaW5jX2RpciBpbiAkUE9TVEdSRVNRTF9pbmNfY2hl Y2sKKysgICAgICAgICAgICBkbworKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkcG9zdGdy ZXNxbF9pbmNfZGlyIiBcCisrICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRwb3N0Z3Jlc3Fs X2luY19kaXIvcG9zdGdyZXNfZXh0LmgiCisrICAgICAgICAgICAgICAgIHRoZW4KKysgICAgICAg ICAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGlyPSRwb3N0Z3Jlc3FsX2luY19kaXIKKysgICAg ICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAg ZG9uZQorKworKyAgICAgICAgICAgIGlmIHRlc3QgLXogIiRQT1NUR1JFU1FMX2luY2RpciIKKysg ICAgICAgICAgICB0aGVuCisrICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihbRGlkbid0IGZp bmQgdGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXIgaW4gJyRQT1NUR1JFU1FMX2luY19jaGVjaydd KQorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAgICAgY2FzZSAiJFBPU1RHUkVTUUxfaW5j ZGlyIiBpbgorKyAgICAgICAgICAgICAgICAvKiApIDs7CisrICAgICAgICAgICAgICAgICogKSAg QUNfTVNHX0VSUk9SKFtUaGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSAoJFBPU1RHUkVT UUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKKysgICAgICAgICAgICBl c2FjCisrCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbJFBPU1RHUkVTUUxfaW5jZGlyXSkK KysKKysgICAgICAgICAgICBpZiB0ZXN0ICIkUE9TVEdSRVNRTF9pbmNkaXIiID0gIi91c3IvaW5j bHVkZSI7IHRoZW4KKysgICAgICAgICAgICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSIiCisrICAgICAg ICAgICAgZWxzZQorKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9Ii1JJHtQT1NUR1JF U1FMX2luY2Rpcn0iCisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBQT1NUR1JFU1FM X0xERkxBR1M9Ii1MYCRQR19DT05GSUcgLS1saWJkaXJgIC1scHEiCisrCisrICAgICAgICAgICAg UE9TVEdSRVNRTF9WRVJTSU9OPWAkUEdfQ09ORklHIC0tdmVyc2lvbiB8IHNlZCAtZSAncyNQb3N0 Z3JlU1FMICMjJ2AKKysKKysgICAgICAgICAgICBBQ19ERUZJTkUoW0hBVkVfUE9TVEdSRVNRTF0s IFsxXSwgW0RlZmluZSB0byAxIGlmIFBvc3RncmVTUUwgbGlicmFyaWVzIGFyZSBhdmFpbGFibGVd KQorKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9InllcyIKKysg ICAgICAgIGVsc2UKKysgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKKysgICAgICAg IGZpCisrICAgIGZpCisrCisrICAgIGRubAorKyAgICBkbmwgQ2hlY2sgaWYgcmVxdWlyZWQgdmVy c2lvbiBvZiBQb3N0Z3JlU1FMIGlzIGF2YWlsYWJsZQorKyAgICBkbmwKKysgICAgCisrCisrICAg IHBvc3RncmVzcWxfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKKysKKysg ICAgaWYgdGVzdCAiJGZvdW5kX3Bvc3RncmVzcWwiID0gInllcyIgLWEgLW4gIiRwb3N0Z3Jlc3Fs X3ZlcnNpb25fcmVxIjsgdGhlbgorKworKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBQb3N0 Z3JlU1FMIHZlcnNpb24gaXMgPj0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFdKQorKworKyAgICAg ICAgZG5sIERlY29tcG9zZSByZXF1aXJlZCB2ZXJzaW9uIHN0cmluZyBvZiBQb3N0Z3JlU1FMCisr ICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCisrICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxIDogJ1woW1swLTldXSpcKSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVx X21pbm9yPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05 XV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz1gZXhwciAkcG9z dGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdg CisrICAgICAgICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngi OyB0aGVuCisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKKysg ICAgICAgIGZpCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcj1gZXhw ciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9y IFwqIDEwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3Rn cmVzcWxfdmVyc2lvbl9yZXFfbWljcm9gCisrCisrICAgICAgICBkbmwgRGVjb21wb3NlIHZlcnNp b24gc3RyaW5nIG9mIGluc3RhbGxlZCBQb3N0Z3JlU1FMCisrICAgICAgICBkbmwgYW5kIGNhbGN1 bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNp b25fbWFqb3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdcKFtbMC05XV0qXCknYAorKyAg ICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04g OiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25f bWljcm89YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuW1swLTldXSpcLlwo W1swLTldXSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9taWNy byIgPSAieCI7IHRoZW4KKysgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm89IjAi CisrICAgICAgICBmaQorKworKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX251bWJlcj1gZXhw ciAkcG9zdGdyZXNxbF92ZXJzaW9uX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taW5vciBcKiAxMDAw IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3Zl cnNpb25fbWljcm9gCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2s9YGV4cHIg JHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXIgXD5cPSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9u dW1iZXJgCisrICAgICAgICBpZiB0ZXN0ICIkcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrIiA9ICIx IjsgdGhlbgorKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCisrICAgICAgICBlbHNl CisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICAgICAgZmkKKysgICAgZmkK KysKKysgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfVkVSU0lPTl0pCisrICAgIEFDX1NVQlNUKFtQ T1NUR1JFU1FMX0NGTEFHU10pCisrICAgIEFDX1NVQlNUKFtQT1NUR1JFU1FMX0xERkxBR1NdKQor K10pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5ndWVzcyBzb2Np LTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5ndWVzcworLS0tIHNvY2ktMy4wLjBfNC1wYWNr L2NvbmZpZy9jb25maWcuZ3Vlc3MJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5ndWVzcwkyMDA5LTA1LTIzIDEw OjAyOjAxLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNTQyIEBACisrIyEgL2Jpbi9zaAor KyMgQXR0ZW1wdCB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZS4KKysjICAgQ29weXJp Z2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAor KyMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 CisrIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworK3RpbWVzdGFtcD0nMjAw OC0xMS0xNScKKysKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisrIyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKysj IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAor KyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUKKysjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKysjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy YW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisrIyAwMjExMC0xMzAxLCBV U0EuCisrIworKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UsIGlmIHlvdQorKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBh IHByb2dyYW0gdGhhdCBjb250YWlucyBhCisrIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0 ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorKyMgdGhlIHNhbWUgZGlz dHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFt LgorKworKworKyMgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBlciBCb3RobmVyIDxwZXJAYm90aG5l ci5jb20+LgorKyMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9y Zz4uICBTdWJtaXQgYSBjb250ZXh0CisrIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBD aGFuZ2VMb2cgZW50cnkuCisrIworKyMgVGhpcyBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgYSBj YW5vbmljYWwgc3lzdGVtIG5hbWUgc2ltaWxhciB0bworKyMgY29uZmlnLnN1Yi4gIElmIGl0IHN1 Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwgYW5kCisrIyBleGl0 cyB3aXRoIDAuICBPdGhlcndpc2UsIGl0IGV4aXRzIHdpdGggMS4KKysjCisrIyBUaGUgcGxhbiBp cyB0aGF0IHRoaXMgY2FuIGJlIGNhbGxlZCBieSBjb25maWd1cmUgc2NyaXB0cyBpZiB5b3UKKysj IGRvbid0IHNwZWNpZnkgYW4gZXhwbGljaXQgYnVpbGQgc3lzdGVtIHR5cGUuCisrCisrbWU9YGVj aG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCisrCisrdXNhZ2U9IlwKKytVc2FnZTogJDAgW09Q VElPTl0KKysKKytPdXRwdXQgdGhlIGNvbmZpZ3VyYXRpb24gbmFtZSBvZiB0aGUgc3lzdGVtIFxg JG1lJyBpcyBydW4gb24uCisrCisrT3BlcmF0aW9uIG1vZGVzOgorKyAgLWgsIC0taGVscCAgICAg ICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisrICAtdCwgLS10aW1lLXN0YW1wICAgcHJp bnQgZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0CisrICAtdiwgLS12ZXJzaW9u ICAgICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorKworK1JlcG9ydCBidWdzIGFu ZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCisrCisrdmVyc2lvbj0iXAor K0dOVSBjb25maWcuZ3Vlc3MgKCR0aW1lc3RhbXApCisrCisrT3JpZ2luYWxseSB3cml0dGVuIGJ5 IFBlciBCb3RobmVyLgorK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5 NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysyMDAyLCAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworK1Ro aXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9u cy4gIFRoZXJlIGlzIE5PCisrd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorKworK2hlbHA9IgorK1RyeSBc YCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKysKKysjIFBhcnNlIGNvbW1hbmQg bGluZQorK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworKyAgY2FzZSAkMSBpbgorKyAgICAtLXRp bWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQorKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4 aXQgOzsKKysgICAgLS12ZXJzaW9uIHwgLXYgKQorKyAgICAgICBlY2hvICIkdmVyc2lvbiIgOyBl eGl0IDs7CisrICAgIC0taGVscCB8IC0taCogfCAtaCApCisrICAgICAgIGVjaG8gIiR1c2FnZSI7 IGV4aXQgOzsKKysgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCisrICAgICAg IHNoaWZ0OyBicmVhayA7OworKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCisrICAgICAg IGJyZWFrIDs7CisrICAgIC0qICkKKysgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAk MSRoZWxwIiA+JjIKKysgICAgICAgZXhpdCAxIDs7CisrICAgICogKQorKyAgICAgICBicmVhayA7 OworKyAgZXNhYworK2RvbmUKKysKKytpZiB0ZXN0ICQjICE9IDA7IHRoZW4KKysgIGVjaG8gIiRt ZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorKyAgZXhpdCAxCisrZmkKKysKKyt0cmFw ICdleGl0IDEnIDEgMiAxNQorKworKyMgQ0NfRk9SX0JVSUxEIC0tIGNvbXBpbGVyIHVzZWQgYnkg dGhpcyBzY3JpcHQuIE5vdGUgdGhhdCB0aGUgdXNlIG9mIGEKKysjIGNvbXBpbGVyIHRvIGFpZCBp biBzeXN0ZW0gZGV0ZWN0aW9uIGlzIGRpc2NvdXJhZ2VkIGFzIGl0IHJlcXVpcmVzCisrIyB0ZW1w b3JhcnkgZmlsZXMgdG8gYmUgY3JlYXRlZCBhbmQsIGFzIHlvdSBjYW4gc2VlIGJlbG93LCBpdCBp cyBhCisrIyBoZWFkYWNoZSB0byBkZWFsIHdpdGggaW4gYSBwb3J0YWJsZSBmYXNoaW9uLgorKwor KyMgSGlzdG9yaWNhbGx5LCBgQ0NfRk9SX0JVSUxEJyB1c2VkIHRvIGJlIG5hbWVkIGBIT1NUX0ND Jy4gV2Ugc3RpbGwKKysjIHVzZSBgSE9TVF9DQycgaWYgZGVmaW5lZCwgYnV0IGl0IGlzIGRlcHJl Y2F0ZWQuCisrCisrIyBQb3J0YWJsZSB0bXAgZGlyZWN0b3J5IGNyZWF0aW9uIGluc3BpcmVkIGJ5 IHRoZSBBdXRvY29uZiB0ZWFtLgorKworK3NldF9jY19mb3JfYnVpbGQ9JworK3RyYXAgImV4aXRj b2RlPVwkPzsgKHJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rl di9udWxsKSAmJiBleGl0IFwkZXhpdGNvZGUiIDAgOworK3RyYXAgInJtIC1mIFwkdG1wZmlsZXMg Mj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsOyBleGl0IDEiIDEgMiAxMyAxNSA7 CisrOiAke1RNUERJUj0vdG1wfSA7CisrIHsgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAi JFRNUERJUi9jZ1hYWFhYWCIpIDI+L2Rldi9udWxsYCAmJiB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0 IC1kICIkdG1wIiA7IH0gfHwKKysgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9j ZyQkLSRSQU5ET00gJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKKysgeyB0bXA9 JFRNUERJUi9jZy0kJCAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApICYmIGVjaG8gIldhcm5p bmc6IGNyZWF0aW5nIGluc2VjdXJlIHRlbXAgZGlyZWN0b3J5IiA+JjIgOyB9IHx8CisrIHsgZWNo byAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+ JjIgOyBleGl0IDEgOyB9IDsKKytkdW1teT0kdG1wL2R1bW15IDsKKyt0bXBmaWxlcz0iJGR1bW15 LmMgJGR1bW15Lm8gJGR1bW15LnJlbCAkZHVtbXkiIDsKKytjYXNlICRDQ19GT1JfQlVJTEQsJEhP U1RfQ0MsJENDIGluCisrICwsKSAgICBlY2hvICJpbnQgeDsiID4gJGR1bW15LmMgOworKwlmb3Ig YyBpbiBjYyBnY2MgYzg5IGM5OSA7IGRvCisrCSAgaWYgKCRjIC1jIC1vICRkdW1teS5vICRkdW1t eS5jKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCisrCSAgICAgQ0NfRk9SX0JVSUxEPSIkYyI7IGJy ZWFrIDsKKysJICBmaSA7CisrCWRvbmUgOworKwlpZiB0ZXN0IHgiJENDX0ZPUl9CVUlMRCIgPSB4 IDsgdGhlbgorKwkgIENDX0ZPUl9CVUlMRD1ub19jb21waWxlcl9mb3VuZCA7CisrCWZpCisrCTs7 CisrICwsKikgICBDQ19GT1JfQlVJTEQ9JENDIDs7CisrICwqLCopICBDQ19GT1JfQlVJTEQ9JEhP U1RfQ0MgOzsKKytlc2FjIDsgc2V0X2NjX2Zvcl9idWlsZD0gOycKKysKKysjIFRoaXMgaXMgbmVl ZGVkIHRvIGZpbmQgdW5hbWUgb24gYSBQeXJhbWlkIE9TeCB3aGVuIHJ1biBpbiB0aGUgQlNEIHVu aXZlcnNlLgorKyMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQorK2lmICh0ZXN0 IC1mIC8uYXR0YmluL3VuYW1lKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCisrCVBBVEg9JFBBVEg6 Ly5hdHRiaW4gOyBleHBvcnQgUEFUSAorK2ZpCisrCisrVU5BTUVfTUFDSElORT1gKHVuYW1lIC1t KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfTUFDSElORT11bmtub3duCisrVU5BTUVfUkVMRUFTRT1g KHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCisrVU5BTUVf U1lTVEVNPWAodW5hbWUgLXMpIDI+L2Rldi9udWxsYCAgfHwgVU5BTUVfU1lTVEVNPXVua25vd24K KytVTkFNRV9WRVJTSU9OPWAodW5hbWUgLXYpIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9WRVJTSU9O PXVua25vd24KKysKKysjIE5vdGU6IG9yZGVyIGlzIHNpZ25pZmljYW50IC0gdGhlIGNhc2UgYnJh bmNoZXMgYXJlIG5vdCBleGNsdXNpdmUuCisrCisrY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VO QU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgorKyAgICAq Ok5ldEJTRDoqOiopCisrCSMgTmV0QlNEIChuYnNkKSB0YXJnZXRzIHNob3VsZCAod2hlcmUgYXBw bGljYWJsZSkgbWF0Y2ggb25lIG9yCisrCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJz ZGVsZiosICotKi1uZXRic2Rhb3V0KiwKKysJIyAqLSotbmV0YnNkZWNvZmYqIGFuZCAqLSotbmV0 YnNkKi4gIEZvciB0YXJnZXRzIHRoYXQgcmVjZW50bHkKKysJIyBzd2l0Y2hlZCB0byBFTEYsICot Ki1uZXRic2QqIHdvdWxkIHNlbGVjdCB0aGUgb2xkCisrCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAg VGhpcyBwcm92aWRlcyBib3RoIGZvcndhcmQKKysJIyBjb21wYXRpYmlsaXR5IGFuZCBhIGNvbnNp c3RlbnQgbWVjaGFuaXNtIGZvciBzZWxlY3RpbmcgdGhlCisrCSMgb2JqZWN0IGZpbGUgZm9ybWF0 LgorKwkjCisrCSMgTm90ZTogTmV0QlNEIGRvZXNuJ3QgcGFydGljdWxhcmx5IGNhcmUgYWJvdXQg dGhlIHZlbmRvcgorKwkjIHBvcnRpb24gb2YgdGhlIG5hbWUuICBXZSBhbHdheXMgc2V0IGl0IHRv ICJ1bmtub3duIi4KKysJc3lzY3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgorKwlVTkFN RV9NQUNISU5FX0FSQ0g9YCgvc2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IFwKKysJICAgIC91 c3Ivc2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bilgCisrCWNhc2UgIiR7 VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KKysJICAgIGFybWViKSBtYWNoaW5lPWFybWViLXVua25v d24gOzsKKysJICAgIGFybSopIG1hY2hpbmU9YXJtLXVua25vd24gOzsKKysJICAgIHNoM2VsKSBt YWNoaW5lPXNobC11bmtub3duIDs7CisrCSAgICBzaDNlYikgbWFjaGluZT1zaC11bmtub3duIDs7 CisrCSAgICBzaDVlbCkgbWFjaGluZT1zaDVsZS11bmtub3duIDs7CisrCSAgICAqKSBtYWNoaW5l PSR7VU5BTUVfTUFDSElORV9BUkNIfS11bmtub3duIDs7CisrCWVzYWMKKysJIyBUaGUgT3BlcmF0 aW5nIFN5c3RlbSBpbmNsdWRpbmcgb2JqZWN0IGZvcm1hdCwgaWYgaXQgaGFzIHN3aXRjaGVkCisr CSMgdG8gRUxGIHJlY2VudGx5LCBvciB3aWxsIGluIHRoZSBmdXR1cmUuCisrCWNhc2UgIiR7VU5B TUVfTUFDSElORV9BUkNIfSIgaW4KKysJICAgIGFybSp8aTM4NnxtNjhrfG5zMzJrfHNoMyp8c3Bh cmN8dmF4KQorKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwkJaWYgZWNobyBfX0VMRl9fIHwg JENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKKysJCQl8IGdyZXAgX19FTEZfXyA+L2Rl di9udWxsCisrCQl0aGVuCisrCQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZG IChuZXRic2RlY29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgorKwkJICAgICMgUmV0dXJuIG5l dGJzZCBmb3IgZWl0aGVyLiAgRklYPworKwkJICAgIG9zPW5ldGJzZAorKwkJZWxzZQorKwkJICAg IG9zPW5ldGJzZGVsZgorKwkJZmkKKysJCTs7CisrCSAgICAqKQorKwkgICAgICAgIG9zPW5ldGJz ZAorKwkJOzsKKysJZXNhYworKwkjIFRoZSBPUyByZWxlYXNlCisrCSMgRGViaWFuIEdOVS9OZXRC U0QgbWFjaGluZXMgaGF2ZSBhIGRpZmZlcmVudCB1c2VybGFuZCwgYW5kCisrCSMgdGh1cywgbmVl ZCBhIGRpc3RpbmN0IHRyaXBsZXQuIEhvd2V2ZXIsIHRoZXkgZG8gbm90IG5lZWQKKysJIyBrZXJu ZWwgdmVyc2lvbiBpbmZvcm1hdGlvbiwgc28gaXQgY2FuIGJlIHJlcGxhY2VkIHdpdGggYQorKwkj IHN1aXRhYmxlIHRhZywgaW4gdGhlIHN0eWxlIG9mIGxpbnV4LWdudS4KKysJY2FzZSAiJHtVTkFN RV9WRVJTSU9OfSIgaW4KKysJICAgIERlYmlhbiopCisrCQlyZWxlYXNlPSctZ251JworKwkJOzsK KysJICAgICopCisrCQlyZWxlYXNlPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1st X10uKi9cLi8nYAorKwkJOzsKKysJZXNhYworKwkjIFNpbmNlIENQVV9UWVBFLU1BTlVGQUNUVVJF Ui1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTToKKysJIyBjb250YWlucyByZWR1bmRhbnQgaW5mb3Jt YXRpb24sIHRoZSBzaG9ydGVyIGZvcm06CisrCSMgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLU9QRVJB VElOR19TWVNURU0gaXMgdXNlZC4KKysJZWNobyAiJHttYWNoaW5lfS0ke29zfSR7cmVsZWFzZX0i CisrCWV4aXQgOzsKKysgICAgKjpPcGVuQlNEOio6KikKKysJVU5BTUVfTUFDSElORV9BUkNIPWBh cmNoIHwgc2VkICdzL09wZW5CU0QuLy8nYAorKwllY2hvICR7VU5BTUVfTUFDSElORV9BUkNIfS11 bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpla2tvQlNE Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tZWtrb2JzZCR7VU5BTUVfUkVM RUFTRX0KKysJZXhpdCA7OworKyAgICAqOlNvbGlkQlNEOio6KikKKysJZWNobyAke1VOQU1FX01B Q0hJTkV9LXVua25vd24tc29saWRic2Qke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAg bWFjcHBjOk1pckJTRDoqOiopCisrCWVjaG8gcG93ZXJwYy11bmtub3duLW1pcmJzZCR7VU5BTUVf UkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOk1pckJTRDoqOiopCisrCWVjaG8gJHtVTkFNRV9N QUNISU5FfS11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBh bHBoYTpPU0YxOio6KikKKysJY2FzZSAkVU5BTUVfUkVMRUFTRSBpbgorKwkqNC4wKQorKwkJVU5B TUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDN9J2AKKysJCTs7 CisrCSo1LiopCisrCSAgICAgICAgVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwg YXdrICd7cHJpbnQgJDR9J2AKKysJCTs7CisrCWVzYWMKKysJIyBBY2NvcmRpbmcgdG8gQ29tcGFx LCAvdXNyL3NiaW4vcHNyaW5mbyBoYXMgYmVlbiBhdmFpbGFibGUgb24KKysJIyBPU0YvMSBhbmQg VHJ1NjQgc3lzdGVtcyBwcm9kdWNlZCBzaW5jZSAxOTk1LiAgSSBob3BlIHRoYXQKKysJIyBjb3Zl cnMgbW9zdCBzeXN0ZW1zIHJ1bm5pbmcgdG9kYXkuICBUaGlzIGNvZGUgcGlwZXMgdGhlIENQVQor KwkjIHR5cGVzIHRocm91Z2ggaGVhZCAtbiAxLCBzbyB3ZSBvbmx5IGRldGVjdCB0aGUgdHlwZSBv ZiBDUFUgMC4KKysJQUxQSEFfQ1BVX1RZUEU9YC91c3Ivc2Jpbi9wc3JpbmZvIC12IHwgc2VkIC1u IC1lICdzL14gIFRoZSBhbHBoYSBcKC4qXCkgcHJvY2Vzc29yLiokL1wxL3AnIHwgaGVhZCAtbiAx YAorKwljYXNlICIkQUxQSEFfQ1BVX1RZUEUiIGluCisrCSAgICAiRVY0ICgyMTA2NCkiKQorKwkJ VU5BTUVfTUFDSElORT0iYWxwaGEiIDs7CisrCSAgICAiRVY0LjUgKDIxMDY0KSIpCisrCQlVTkFN RV9NQUNISU5FPSJhbHBoYSIgOzsKKysJICAgICJMQ0E0ICgyMTA2Ni8yMTA2OCkiKQorKwkJVU5B TUVfTUFDSElORT0iYWxwaGEiIDs7CisrCSAgICAiRVY1ICgyMTE2NCkiKQorKwkJVU5BTUVfTUFD SElORT0iYWxwaGFldjUiIDs7CisrCSAgICAiRVY1LjYgKDIxMTY0QSkiKQorKwkJVU5BTUVfTUFD SElORT0iYWxwaGFldjU2IiA7OworKwkgICAgIkVWNS42ICgyMTE2NFBDKSIpCisrCQlVTkFNRV9N QUNISU5FPSJhbHBoYXBjYTU2IiA7OworKwkgICAgIkVWNS43ICgyMTE2NFBDKSIpCisrCQlVTkFN RV9NQUNISU5FPSJhbHBoYXBjYTU3IiA7OworKwkgICAgIkVWNiAoMjEyNjQpIikKKysJCVVOQU1F X01BQ0hJTkU9ImFscGhhZXY2IiA7OworKwkgICAgIkVWNi43ICgyMTI2NEEpIikKKysJCVVOQU1F X01BQ0hJTkU9ImFscGhhZXY2NyIgOzsKKysJICAgICJFVjYuOENCICgyMTI2NEMpIikKKysJCVVO QU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKysJICAgICJFVjYuOEFMICgyMTI2NEIpIikKKysJ CVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKysJICAgICJFVjYuOENYICgyMTI2NEQpIikK KysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKysJICAgICJFVjYuOUEgKDIxMjY0L0VW NjlBKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjkiIDs7CisrCSAgICAiRVY3ICgyMTM2 NCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjciIDs7CisrCSAgICAiRVY3LjkgKDIxMzY0 QSkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjc5IiA7OworKwllc2FjCisrCSMgQSBQbi5u IHZlcnNpb24gaXMgYSBwYXRjaGVkIHZlcnNpb24uCisrCSMgQSBWbi5uIHZlcnNpb24gaXMgYSBy ZWxlYXNlZCB2ZXJzaW9uLgorKwkjIEEgVG4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgZmllbGQg dGVzdCB2ZXJzaW9uLgorKwkjIEEgWG4ubiB2ZXJzaW9uIGlzIGFuIHVucmVsZWFzZWQgZXhwZXJp bWVudGFsIGJhc2VsZXZlbC4KKysJIyAxLjIgdXNlcyAiMS4yIiBmb3IgdW5hbWUgLXIuCisrCWVj aG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtb3NmYGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAt ZSAncy9eW1BWVFhdLy8nIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVm Z2hpamtsbW5vcHFyc3R1dnd4eXonYAorKwlleGl0IDs7CisrICAgIEFscGhhXCAqOldpbmRvd3Nf TlQqOiopCisrCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBn ZW5lcmljIFBPU0lYIHN1YnN5c3RlbT8KKysJIyBTaG91bGQgd2UgY2hhbmdlIFVOQU1FX01BQ0hJ TkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkCisrCSMgb2YgdGhlIHNwZWNp ZmljIEFscGhhIG1vZGVsPworKwllY2hvIGFscGhhLXBjLWludGVyaXgKKysJZXhpdCA7OworKyAg ICAyMTA2NDpXaW5kb3dzX05UOjUwOjMpCisrCWVjaG8gYWxwaGEtZGVjLXdpbm50My41CisrCWV4 aXQgOzsKKysgICAgQW1pZ2EqOlVOSVhfU3lzdGVtX1Y6NC4wOiopCisrCWVjaG8gbTY4ay11bmtu b3duLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgKjpbQWFdbWlnYVtPb11bU3NdOio6KikKKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYW1pZ2FvcworKwlleGl0IDs7CisrICAgICo6W01t XW9ycGhbT29dW1NzXToqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW1vcnBo b3MKKysJZXhpdCA7OworKyAgICAqOk9TLzM5MDoqOiopCisrCWVjaG8gaTM3MC1pYm0tb3BlbmVk aXRpb24KKysJZXhpdCA7OworKyAgICAqOnovVk06KjoqKQorKwllY2hvIHMzOTAtaWJtLXp2bW9l CisrCWV4aXQgOzsKKysgICAgKjpPUzQwMDoqOiopCisrICAgICAgICBlY2hvIHBvd2VycGMtaWJt LW9zNDAwCisrCWV4aXQgOzsKKysgICAgYXJtOlJJU0MqOjEuWzAxMl0qOip8YXJtOnJpc2NpeDox LlswMTJdKjoqKQorKwllY2hvIGFybS1hY29ybi1yaXNjaXgke1VOQU1FX1JFTEVBU0V9CisrCWV4 aXQgOzsKKysgICAgYXJtOnJpc2NvczoqOip8YXJtOlJJU0NPUzoqOiopCisrCWVjaG8gYXJtLXVu a25vd24tcmlzY29zCisrCWV4aXQgOzsKKysgICAgU1IyPzAxOkhJLVVYL01QUDoqOiogfCBTUjgw MDA6SEktVVgvTVBQOio6KikKKysJZWNobyBocHBhMS4xLWhpdGFjaGktaGl1eG1wcAorKwlleGl0 IDs7CisrICAgIFB5cmFtaWQqOk9TeCo6KjoqIHwgTUlTKjpPU3gqOio6KiB8IE1JUyo6U01QX0RD LU9TeCo6KjoqKQorKwkjIGFrZWVAd3BkaXMwMy53cGFmYi5hZi5taWwgKEVhcmxlIEYuIEFrZSkg Y29udHJpYnV0ZWQgTUlTIGFuZCBOSUxFLgorKwlpZiB0ZXN0ICJgKC9iaW4vdW5pdmVyc2UpIDI+ L2Rldi9udWxsYCIgPSBhdHQgOyB0aGVuCisrCQllY2hvIHB5cmFtaWQtcHlyYW1pZC1zeXN2Mwor KwllbHNlCisrCQllY2hvIHB5cmFtaWQtcHlyYW1pZC1ic2QKKysJZmkKKysJZXhpdCA7OworKyAg ICBOSUxFKjoqOio6ZGNvc3gpCisrCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN2cjQKKysJZXhpdCA7 OworKyAgICBEUlM/NjAwMDp1bml4OjQuMDo2KikKKysJZWNobyBzcGFyYy1pY2wtbng2CisrCWV4 aXQgOzsKKysgICAgRFJTPzYwMDA6VU5JWF9TVjo0LjIqOjcqIHwgRFJTPzYwMDA6aXNpczo0LjIq OjcqKQorKwljYXNlIGAvdXNyL2Jpbi91bmFtZSAtcGAgaW4KKysJICAgIHNwYXJjKSBlY2hvIHNw YXJjLWljbC1ueDc7IGV4aXQgOzsKKysJZXNhYyA7OworKyAgICBzdW40SDpTdW5PUzo1Lio6KikK KysJZWNobyBzcGFyYy1oYWwtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAn cy9bXi5dKi8vJ2AKKysJZXhpdCA7OworKyAgICBzdW40KjpTdW5PUzo1Lio6KiB8IHRhZHBvbGUq OlN1bk9TOjUuKjoqKQorKwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVM RUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwlleGl0IDs7CisrICAgIGk4NnBjOlN1bk9TOjUu KjoqIHwgaTg2eGVuOlN1bk9TOjUuKjoqKQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCVNV Tl9BUkNIPSJpMzg2IgorKwkjIElmIHRoZXJlIGlzIGEgY29tcGlsZXIsIHNlZSBpZiBpdCBpcyBj b25maWd1cmVkIGZvciA2NC1iaXQgb2JqZWN0cy4KKysJIyBOb3RlIHRoYXQgdGhlIFN1biBjYyBk b2VzIG5vdCB0dXJuIF9fTFA2NF9fIGludG8gMSBsaWtlIGdjYyBkb2VzLgorKwkjIFRoaXMgdGVz dCB3b3JrcyBmb3IgYm90aCBjb21waWxlcnMuCisrCWlmIFsgIiRDQ19GT1JfQlVJTEQiICE9ICdu b19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgorKwkgICAgaWYgZWNobyAnXG4jaWZkZWYgX19hbWQ2 NFxuSVNfNjRCSVRfQVJDSFxuI2VuZGlmJyB8IFwKKysJCShDQ09QVFM9ICRDQ19GT1JfQlVJTEQg LUUgLSAyPi9kZXYvbnVsbCkgfCBcCisrCQlncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAor KwkgICAgdGhlbgorKwkJU1VOX0FSQ0g9Ing4Nl82NCIKKysJICAgIGZpCisrCWZpCisrCWVjaG8g JHtTVU5fQVJDSH0tcGMtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9b Xi5dKi8vJ2AKKysJZXhpdCA7OworKyAgICBzdW40KjpTdW5PUzo2KjoqKQorKwkjIEFjY29yZGlu ZyB0byBjb25maWcuc3ViLCB0aGlzIGlzIHRoZSBwcm9wZXIgd2F5IHRvIGNhbm9uaWNhbGl6ZQor KwkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxp a2UsIGJ1dAorKwkjIGl0J3MgbGlrZWx5IHRvIGJlIG1vcmUgbGlrZSBTb2xhcmlzIHRoYW4gU3Vu T1M0LgorKwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzM2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2Vk IC1lICdzL1teLl0qLy8nYAorKwlleGl0IDs7CisrICAgIHN1bjQqOlN1bk9TOio6KikKKysJY2Fz ZSAiYC91c3IvYmluL2FyY2ggLWtgIiBpbgorKwkgICAgU2VyaWVzKnxTNCopCisrCQlVTkFNRV9S RUxFQVNFPWB1bmFtZSAtdmAKKysJCTs7CisrCWVzYWMKKysJIyBKYXBhbmVzZSBMYW5ndWFnZSB2 ZXJzaW9ucyBoYXZlIGEgdmVyc2lvbiBudW1iZXIgbGlrZSBgNC4xLjMtSkwnLgorKwllY2hvIHNw YXJjLXN1bi1zdW5vc2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy8nYAorKwll eGl0IDs7CisrICAgIHN1bjMqOlN1bk9TOio6KikKKysJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5B TUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBzdW4qOio6NC4yQlNEOiopCisrCVVOQU1FX1JF TEVBU0U9YChzZWQgMXEgL2V0Yy9tb3RkIHwgYXdrICd7cHJpbnQgc3Vic3RyKCQ1LDEsMyl9Jykg Mj4vZGV2L251bGxgCisrCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9S RUxFQVNFPTMKKysJY2FzZSAiYC9iaW4vYXJjaGAiIGluCisrCSAgICBzdW4zKQorKwkJZWNobyBt NjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKysJCTs7CisrCSAgICBzdW40KQorKwkJZWNo byBzcGFyYy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisrCQk7OworKwllc2FjCisrCWV4aXQg OzsKKysgICAgYXVzaHA6U3VuT1M6KjoqKQorKwllY2hvIHNwYXJjLWF1c3BleC1zdW5vcyR7VU5B TUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAjIFRoZSBzaXR1YXRpb24gZm9yIE1pTlQgaXMg YSBsaXR0bGUgY29uZnVzaW5nLiAgVGhlIG1hY2hpbmUgbmFtZQorKyAgICAjIGNhbiBiZSB2aXJ0 dWFsbHkgZXZlcnl0aGluZyAoZXZlcnl0aGluZyB3aGljaCBpcyBub3QKKysgICAgIyAiYXRhcmlz dCIgb3IgImF0YXJpc3RlIiBhdCBsZWFzdCBzaG91bGQgaGF2ZSBhIHByb2Nlc3NvcgorKyAgICAj ID4gbTY4MDAwKS4gIFRoZSBzeXN0ZW0gbmFtZSByYW5nZXMgZnJvbSAiTWlOVCIgb3ZlciAiRnJl ZU1pTlQiCisrICAgICMgdG8gdGhlIGxvd2VyY2FzZSB2ZXJzaW9uICJtaW50IiAob3IgImZyZWVt aW50IikuICBGaW5hbGx5CisrICAgICMgdGhlIHN5c3RlbSBuYW1lICJUT1MiIGRlbm90ZXMgYSBz eXN0ZW0gd2hpY2ggaXMgYWN0dWFsbHkgbm90CisrICAgICMgTWlOVC4gIEJ1dCBNaU5UIGlzIGRv d253YXJkIGNvbXBhdGlibGUgdG8gVE9TLCBzbyB0aGlzIHNob3VsZAorKyAgICAjIGJlIG5vIHBy b2JsZW0uCisrICAgIGF0YXJpc3RbZV06Kk1pTlQ6KjoqIHwgYXRhcmlzdFtlXToqbWludDoqOiog fCBhdGFyaXN0W2VdOipUT1M6KjoqKQorKyAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VO QU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoq bWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorKwllY2hvIG02OGstYXRhcmktbWludCR7 VU5BTUVfUkVMRUFTRX0KKysgICAgICAgIGV4aXQgOzsKKysgICAgKmZhbGNvbio6Kk1pTlQ6Kjoq IHwgKmZhbGNvbio6Km1pbnQ6KjoqIHwgKmZhbGNvbio6KlRPUzoqOiopCisrICAgICAgICBlY2hv IG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBtaWxhbio6 Kk1pTlQ6KjoqIHwgbWlsYW4qOiptaW50Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCisrICAgICAg ICBlY2hvIG02OGstbWlsYW4tbWludCR7VU5BTUVfUkVMRUFTRX0KKysgICAgICAgIGV4aXQgOzsK KysgICAgaGFkZXMqOipNaU5UOio6KiB8IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6 KjoqKQorKyAgICAgICAgZWNobyBtNjhrLWhhZGVzLW1pbnQke1VOQU1FX1JFTEVBU0V9CisrICAg ICAgICBleGl0IDs7CisrICAgICo6Kk1pTlQ6KjoqIHwgKjoqbWludDoqOiogfCAqOipUT1M6Kjoq KQorKyAgICAgICAgZWNobyBtNjhrLXVua25vd24tbWludCR7VU5BTUVfUkVMRUFTRX0KKysgICAg ICAgIGV4aXQgOzsKKysgICAgbTY4azptYWNodGVuOio6KikKKysJZWNobyBtNjhrLWFwcGxlLW1h Y2h0ZW4ke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgcG93ZXJwYzptYWNodGVuOio6 KikKKysJZWNobyBwb3dlcnBjLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQg OzsKKysgICAgUklTQyo6TWFjaDoqOiopCisrCWVjaG8gbWlwcy1kZWMtbWFjaF9ic2Q0LjMKKysJ ZXhpdCA7OworKyAgICBSSVNDKjpVTFRSSVg6KjoqKQorKwllY2hvIG1pcHMtZGVjLXVsdHJpeCR7 VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBWQVgqOlVMVFJJWCo6KjoqKQorKwllY2hv IHZheC1kZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIDIwMjA6Q0xJ WDoqOiogfCAyNDMwOkNMSVg6KjoqKQorKwllY2hvIGNsaXBwZXItaW50ZXJncmFwaC1jbGl4JHtV TkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIG1pcHM6KjoqOlVNSVBTIHwgbWlwczoqOio6 UklTQ29zKQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCXNlZCAncy9eCS8vJyA8PCBFT0Yg PiRkdW1teS5jCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBm b3IgcHJpbnRmKCkgcHJvdG90eXBlICovCisrCWludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJn dltdKSB7CisrI2Vsc2UKKysJaW50IG1haW4gKGFyZ2MsIGFyZ3YpIGludCBhcmdjOyBjaGFyICph cmd2W107IHsKKysjZW5kaWYKKysJI2lmIGRlZmluZWQgKGhvc3RfbWlwcykgJiYgZGVmaW5lZCAo TUlQU0VCKQorKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9TWVNWKQorKwkgIHByaW50ZiAoIm1pcHMt bWlwcy1yaXNjb3Mlc3N5c3ZcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKKysJI2VuZGlmCisrCSNp ZiBkZWZpbmVkIChTWVNUWVBFX1NWUjQpCisrCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVz c3ZyNFxuIiwgYXJndlsxXSk7IGV4aXQgKDApOworKwkjZW5kaWYKKysJI2lmIGRlZmluZWQgKFNZ U1RZUEVfQlNENDMpIHx8IGRlZmluZWQoU1lTVFlQRV9CU0QpCisrCSAgcHJpbnRmICgibWlwcy1t aXBzLXJpc2NvcyVzYnNkXG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7CisrCSNlbmRpZgorKwkjZW5k aWYKKysJICBleGl0ICgtMSk7CisrCX0KKytFT0YKKysJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkg JGR1bW15LmMgJiYKKysJICBkdW1teWFyZz1gZWNobyAiJHtVTkFNRV9SRUxFQVNFfSIgfCBzZWQg LW4gJ3MvXChbMC05XSpcKS4qL1wxL3AnYCAmJgorKwkgIFNZU1RFTV9OQU1FPWAkZHVtbXkgJGR1 bW15YXJnYCAmJgorKwkgICAgeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisrCWVjaG8g bWlwcy1taXBzLXJpc2NvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBNb3Rvcm9s YTpQb3dlck1BWF9PUzoqOiopCisrCWVjaG8gcG93ZXJwYy1tb3Rvcm9sYS1wb3dlcm1heAorKwll eGl0IDs7CisrICAgIE1vdG9yb2xhOio6NC4zOlBMOC0qKQorKwllY2hvIHBvd2VycGMtaGFycmlz LXBvd2VybWF4CisrCWV4aXQgOzsKKysgICAgTmlnaHRfSGF3azoqOio6UG93ZXJNQVhfT1MgfCBT eW5lcmd5OlBvd2VyTUFYX09TOio6KikKKysJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAor KwlleGl0IDs7CisrICAgIE5pZ2h0X0hhd2s6UG93ZXJfVU5JWDoqOiopCisrCWVjaG8gcG93ZXJw Yy1oYXJyaXMtcG93ZXJ1bml4CisrCWV4aXQgOzsKKysgICAgbTg4azpDWC9VWDo3KjoqKQorKwll Y2hvIG04OGstaGFycmlzLWN4dXg3CisrCWV4aXQgOzsKKysgICAgbTg4azoqOjQqOlI0KikKKysJ ZWNobyBtODhrLW1vdG9yb2xhLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgbTg4azoqOjMqOlIzKikK KysJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisrCWV4aXQgOzsKKysgICAgQVZpaU9OOmRndXg6 KjoqKQorKyAgICAgICAgIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVy ZXMKKysgICAgICAgIFVOQU1FX1BST0NFU1NPUj1gL3Vzci9iaW4vdW5hbWUgLXBgCisrCWlmIFsg JFVOQU1FX1BST0NFU1NPUiA9IG1jODgxMDAgXSB8fCBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4 MTEwIF0KKysJdGhlbgorKwkgICAgaWYgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSBt ODhrZGd1eGVsZnggXSB8fCBcCisrCSAgICAgICBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9 eCA9IHggXQorKwkgICAgdGhlbgorKwkJZWNobyBtODhrLWRnLWRndXgke1VOQU1FX1JFTEVBU0V9 CisrCSAgICBlbHNlCisrCQllY2hvIG04OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KKysJ ICAgIGZpCisrCWVsc2UKKysJICAgIGVjaG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQor KwlmaQorKyAJZXhpdCA7OworKyAgICBNODgqOkRvbHBoaW5PUzoqOiopCSMgRG9scGhpbk9TIChT VlIzKQorKwllY2hvIG04OGstZG9scGhpbi1zeXN2MworKwlleGl0IDs7CisrICAgIE04OCo6KjpS Myo6KikKKysJIyBEZWx0YSA4OGsgc3lzdGVtIHJ1bm5pbmcgU1ZSMworKwllY2hvIG04OGstbW90 b3JvbGEtc3lzdjMKKysJZXhpdCA7OworKyAgICBYRDg4KjoqOio6KikgIyBUZWt0cm9uaXggWEQ4 OCBzeXN0ZW0gcnVubmluZyBVVGVrViAoU1ZSMykKKysJZWNobyBtODhrLXRla3Ryb25peC1zeXN2 MworKwlleGl0IDs7CisrICAgIFRlazQzWzAtOV1bMC05XTpVVGVrOio6KikgIyBUZWt0cm9uaXgg NDMwMCBzeXN0ZW0gcnVubmluZyBVVGVrIChCU0QpCisrCWVjaG8gbTY4ay10ZWt0cm9uaXgtYnNk CisrCWV4aXQgOzsKKysgICAgKjpJUklYKjoqOiopCisrCWVjaG8gbWlwcy1zZ2ktaXJpeGBlY2hv ICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy9nJ2AKKysJZXhpdCA7OworKyAgICA/Pz8/ Pz8/PzpBSVg/OlsxMl0uMToyKSAgICMgQUlYIDIuMi4xIG9yIEFJWCAyLjEuMSBpcyBSVC9QQyBB SVguCisrCWVjaG8gcm9tcC1pYm0tYWl4ICAgICAjIHVuYW1lIC1tIGdpdmVzIGFuIDggaGV4LWNv ZGUgQ1BVIGlkCisrCWV4aXQgOzsgICAgICAgICAgICAgICAjIE5vdGUgdGhhdDogZWNobyAiJ2B1 bmFtZSAtc2AnIiBnaXZlcyAnQUlYICcKKysgICAgaSo4NjpBSVg6KjoqKQorKwllY2hvIGkzODYt aWJtLWFpeAorKwlleGl0IDs7CisrICAgIGlhNjQ6QUlYOio6KikKKysJaWYgWyAteCAvdXNyL2Jp bi9vc2xldmVsIF0gOyB0aGVuCisrCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAorKwllbHNl CisrCQlJQk1fUkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9SRUxFQVNFfQorKwlmaQorKwll Y2hvICR7VU5BTUVfTUFDSElORX0taWJtLWFpeCR7SUJNX1JFVn0KKysJZXhpdCA7OworKyAgICAq OkFJWDoyOjMpCisrCWlmIGdyZXAgYm9zMzI1IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251 bGwgMj4mMTsgdGhlbgorKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwkJc2VkICdzL14JCS8v JyA8PCBFT0YgPiRkdW1teS5jCisrCQkjaW5jbHVkZSA8c3lzL3N5c3RlbWNmZy5oPgorKworKwkJ bWFpbigpCisrCQkJeworKwkJCWlmICghX19wb3dlcl9wYygpKQorKwkJCQlleGl0KDEpOworKwkJ CXB1dHMoInBvd2VycGMtaWJtLWFpeDMuMi41Iik7CisrCQkJZXhpdCgwKTsKKysJCQl9CisrRU9G CisrCQlpZiAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFNRT1g JGR1bW15YAorKwkJdGhlbgorKwkJCWVjaG8gIiRTWVNURU1fTkFNRSIKKysJCWVsc2UKKysJCQll Y2hvIHJzNjAwMC1pYm0tYWl4My4yLjUKKysJCWZpCisrCWVsaWYgZ3JlcCBib3MzMjQgL3Vzci9p bmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQllY2hvIHJzNjAwMC1pYm0t YWl4My4yLjQKKysJZWxzZQorKwkJZWNobyByczYwMDAtaWJtLWFpeDMuMgorKwlmaQorKwlleGl0 IDs7CisrICAgICo6QUlYOio6WzQ1Nl0pCisrCUlCTV9DUFVfSUQ9YC91c3Ivc2Jpbi9sc2RldiAt QyAtYyBwcm9jZXNzb3IgLVMgYXZhaWxhYmxlIHwgc2VkIDFxIHwgYXdrICd7IHByaW50ICQxIH0n YAorKwlpZiAvdXNyL3NiaW4vbHNhdHRyIC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VS JyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJCUlCTV9BUkNIPXJzNjAwMAorKwllbHNlCisrCQlJ Qk1fQVJDSD1wb3dlcnBjCisrCWZpCisrCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhl bgorKwkJSUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKKysJZWxzZQorKwkJSUJNX1JFVj0ke1VO QU1FX1ZFUlNJT059LiR7VU5BTUVfUkVMRUFTRX0KKysJZmkKKysJZWNobyAke0lCTV9BUkNIfS1p Ym0tYWl4JHtJQk1fUkVWfQorKwlleGl0IDs7CisrICAgICo6QUlYOio6KikKKysJZWNobyByczYw MDAtaWJtLWFpeAorKwlleGl0IDs7CisrICAgIGlibXJ0OjQuNEJTRDoqfHJvbXAtaWJtOkJTRDoq KQorKwllY2hvIHJvbXAtaWJtLWJzZDQuNAorKwlleGl0IDs7CisrICAgIGlibXJ0OipCU0Q6Knxy b21wLWlibTpCU0Q6KikgICAgICAgICAgICAjIGNvdmVycyBSVC9QQyBCU0QgYW5kCisrCWVjaG8g cm9tcC1pYm0tYnNkJHtVTkFNRV9SRUxFQVNFfSAgICMgNC4zIHdpdGggdW5hbWUgYWRkZWQgdG8K KysJZXhpdCA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZXBvcnQ6IHJvbXAtaWJt IEJTRCA0LjMKKysgICAgKjpCT1NYOio6KikKKysJZWNobyByczYwMDAtYnVsbC1ib3N4CisrCWV4 aXQgOzsKKysgICAgRFBYLzI/MDA6Qi5PLlMuOio6KikKKysJZWNobyBtNjhrLWJ1bGwtc3lzdjMK KysJZXhpdCA7OworKyAgICA5MDAwL1szNF0/Pzo0LjNic2Q6MS4qOiopCisrCWVjaG8gbTY4ay1o cC1ic2QKKysJZXhpdCA7OworKyAgICBocDMwMDo0LjRCU0Q6KjoqIHwgOTAwMC9bMzRdPz86NC4z YnNkOjIuKjoqKQorKwllY2hvIG02OGstaHAtYnNkNC40CisrCWV4aXQgOzsKKysgICAgOTAwMC9b MzQ2NzhdPz86SFAtVVg6KjoqKQorKwlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNl ZCAtZSAncy9bXi5dKi5bMEJdKi8vJ2AKKysJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KKysJ ICAgIDkwMDAvMzE/ICkgICAgICAgICAgICBIUF9BUkNIPW02ODAwMCA7OworKwkgICAgOTAwMC9b MzRdPz8gKSAgICAgICAgIEhQX0FSQ0g9bTY4ayA7OworKwkgICAgOTAwMC9bNjc4XVswLTldWzAt OV0pCisrCQlpZiBbIC14IC91c3IvYmluL2dldGNvbmYgXTsgdGhlbgorKwkJICAgIHNjX2NwdV92 ZXJzaW9uPWAvdXNyL2Jpbi9nZXRjb25mIFNDX0NQVV9WRVJTSU9OIDI+L2Rldi9udWxsYAorKyAg ICAgICAgICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VS TkVMX0JJVFMgMj4vZGV2L251bGxgCisrICAgICAgICAgICAgICAgICAgICBjYXNlICIke3NjX2Nw dV92ZXJzaW9ufSIgaW4KKysgICAgICAgICAgICAgICAgICAgICAgNTIzKSBIUF9BUkNIPSJocHBh MS4wIiA7OyAjIENQVV9QQV9SSVNDMV8wCisrICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBf QVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQorKyAgICAgICAgICAgICAgICAgICAg ICA1MzIpICAgICAgICAgICAgICAgICAgICAgICMgQ1BVX1BBX1JJU0MyXzAKKysgICAgICAgICAg ICAgICAgICAgICAgICBjYXNlICIke3NjX2tlcm5lbF9iaXRzfSIgaW4KKysgICAgICAgICAgICAg ICAgICAgICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgIDY0KSBIUF9BUkNIPSJocHBhMi4wdyIgOzsKKysJCQkgICcnKSBIUF9BUkNIPSJo cHBhMi4wIiA7OyAgICMgSFAtVVggMTAuMjAKKysgICAgICAgICAgICAgICAgICAgICAgICBlc2Fj IDs7CisrICAgICAgICAgICAgICAgICAgICBlc2FjCisrCQlmaQorKwkJaWYgWyAiJHtIUF9BUkNI fSIgPSAiIiBdOyB0aGVuCisrCQkgICAgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwkJICAgIHNl ZCAncy9eICAgICAgICAgICAgICAvLycgPDwgRU9GID4kZHVtbXkuYworKworKyAgICAgICAgICAg ICAgI2RlZmluZSBfSFBVWF9TT1VSQ0UKKysgICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRsaWIu aD4KKysgICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KKysKKysgICAgICAgICAgICAg IGludCBtYWluICgpCisrICAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAjaWYgZGVmaW5l ZChfU0NfS0VSTkVMX0JJVFMpCisrICAgICAgICAgICAgICAgICAgbG9uZyBiaXRzID0gc3lzY29u ZihfU0NfS0VSTkVMX0JJVFMpOworKyAgICAgICAgICAgICAgI2VuZGlmCisrICAgICAgICAgICAg ICAgICAgbG9uZyBjcHUgID0gc3lzY29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKKysKKysgICAgICAg ICAgICAgICAgICBzd2l0Y2ggKGNwdSkKKysgICAgICAgICAgICAgIAl7CisrICAgICAgICAgICAg ICAJY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7CisrICAgICAg ICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7Cisr ICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzJfMDoKKysgICAgICAgICAgICAgICNpZiBk ZWZpbmVkKF9TQ19LRVJORUxfQklUUykKKysgICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRz KQorKyAgICAgICAgICAgICAgCQl7CisrICAgICAgICAgICAgICAJCWNhc2UgNjQ6IHB1dHMgKCJo cHBhMi4wdyIpOyBicmVhazsKKysgICAgICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEy LjBuIik7IGJyZWFrOworKyAgICAgICAgICAgICAgCQlkZWZhdWx0OiBwdXRzICgiaHBwYTIuMCIp OyBicmVhazsKKysgICAgICAgICAgICAgIAkJfSBicmVhazsKKysgICAgICAgICAgICAgICNlbHNl ICAvKiAhZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpICovCisrICAgICAgICAgICAgICAJICAgIHB1 dHMgKCJocHBhMi4wIik7IGJyZWFrOworKyAgICAgICAgICAgICAgI2VuZGlmCisrICAgICAgICAg ICAgICAJZGVmYXVsdDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJ fQorKyAgICAgICAgICAgICAgICAgIGV4aXQgKDApOworKyAgICAgICAgICAgICAgfQorK0VPRgor KwkJICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9u dWxsKSAmJiBIUF9BUkNIPWAkZHVtbXlgCisrCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQ X0FSQ0g9aHBwYQorKwkJZmkgOzsKKysJZXNhYworKwlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIu MHciIF0KKysJdGhlbgorKwkgICAgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKworKwkgICAgIyBo cHBhMi4wdy1ocC1ocHV4KiBoYXMgYSA2NC1iaXQga2VybmVsIGFuZCBhIGNvbXBpbGVyIGdlbmVy YXRpbmcKKysJICAgICMgMzItYml0IGNvZGUuICBocHBhNjQtaHAtaHB1eCogaGFzIHRoZSBzYW1l IGtlcm5lbCBhbmQgYSBjb21waWxlcgorKwkgICAgIyBnZW5lcmF0aW5nIDY0LWJpdCBjb2RlLiAg R05VIGFuZCBIUCB1c2UgZGlmZmVyZW50IG5vbWVuY2xhdHVyZToKKysJICAgICMKKysJICAgICMg JCBDQ19GT1JfQlVJTEQ9Y2MgLi9jb25maWcuZ3Vlc3MKKysJICAgICMgPT4gaHBwYTIuMHctaHAt aHB1eDExLjIzCisrCSAgICAjICQgQ0NfRk9SX0JVSUxEPSJjYyArREEyLjB3IiAuL2NvbmZpZy5n dWVzcworKwkgICAgIyA9PiBocHBhNjQtaHAtaHB1eDExLjIzCisrCisrCSAgICBpZiBlY2hvIF9f TFA2NF9fIHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8CisrCQln cmVwIF9fTFA2NF9fID4vZGV2L251bGwKKysJICAgIHRoZW4KKysJCUhQX0FSQ0g9ImhwcGEyLjB3 IgorKwkgICAgZWxzZQorKwkJSFBfQVJDSD0iaHBwYTY0IgorKwkgICAgZmkKKysJZmkKKysJZWNo byAke0hQX0FSQ0h9LWhwLWhwdXgke0hQVVhfUkVWfQorKwlleGl0IDs7CisrICAgIGlhNjQ6SFAt VVg6KjoqKQorKwlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5d Ki5bMEJdKi8vJ2AKKysJZWNobyBpYTY0LWhwLWhwdXgke0hQVVhfUkVWfQorKwlleGl0IDs7Cisr ICAgIDMwNTAqOkhJLVVYOio6KikKKysJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwlzZWQgJ3Mv XgkvLycgPDwgRU9GID4kZHVtbXkuYworKwkjaW5jbHVkZSA8dW5pc3RkLmg+CisrCWludAorKwlt YWluICgpCisrCXsKKysJICBsb25nIGNwdSA9IHN5c2NvbmYgKF9TQ19DUFVfVkVSU0lPTik7Cisr CSAgLyogVGhlIG9yZGVyIG1hdHRlcnMsIGJlY2F1c2UgQ1BVX0lTX0hQX01DNjhLIGVycm9uZW91 c2x5IHJldHVybnMKKysJICAgICB0cnVlIGZvciBDUFVfUEFfUklTQzFfMC4gIENQVV9JU19QQV9S SVNDIHJldHVybnMgY29ycmVjdAorKwkgICAgIHJlc3VsdHMsIGhvd2V2ZXIuICAqLworKwkgIGlm IChDUFVfSVNfUEFfUklTQyAoY3B1KSkKKysJICAgIHsKKysJICAgICAgc3dpdGNoIChjcHUpCisr CQl7CisrCQkgIGNhc2UgQ1BVX1BBX1JJU0MxXzA6IHB1dHMgKCJocHBhMS4wLWhpdGFjaGktaGl1 eHdlMiIpOyBicmVhazsKKysJCSAgY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEt aGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworKwkJICBjYXNlIENQVV9QQV9SSVNDMl8wOiBwdXRz ICgiaHBwYTIuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisrCQkgIGRlZmF1bHQ6IHB1dHMg KCJocHBhLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKysJCX0KKysJICAgIH0KKysJICBlbHNl IGlmIChDUFVfSVNfSFBfTUM2OEsgKGNwdSkpCisrCSAgICBwdXRzICgibTY4ay1oaXRhY2hpLWhp dXh3ZTIiKTsKKysJICBlbHNlIHB1dHMgKCJ1bmtub3duLWhpdGFjaGktaGl1eHdlMiIpOworKwkg IGV4aXQgKDApOworKwl9CisrRU9GCisrCSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5j ICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlgICYmCisrCQl7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4 aXQ7IH0KKysJZWNobyB1bmtub3duLWhpdGFjaGktaGl1eHdlMgorKwlleGl0IDs7CisrICAgIDkw MDAvNz8/OjQuM2JzZDoqOiogfCA5MDAwLzg/Wzc5XTo0LjNic2Q6KjoqICkKKysJZWNobyBocHBh MS4xLWhwLWJzZAorKwlleGl0IDs7CisrICAgIDkwMDAvOD8/OjQuM2JzZDoqOiopCisrCWVjaG8g aHBwYTEuMC1ocC1ic2QKKysJZXhpdCA7OworKyAgICAqOT8/KjpNUEUvaVg6KjoqIHwgKjMwMDAq Ok1QRS9pWDoqOiopCisrCWVjaG8gaHBwYTEuMC1ocC1tcGVpeAorKwlleGl0IDs7CisrICAgIGhw Nz8/Ok9TRjE6KjoqIHwgaHA4P1s3OV06T1NGMToqOiogKQorKwllY2hvIGhwcGExLjEtaHAtb3Nm CisrCWV4aXQgOzsKKysgICAgaHA4Pz86T1NGMToqOiopCisrCWVjaG8gaHBwYTEuMC1ocC1vc2YK KysJZXhpdCA7OworKyAgICBpKjg2Ok9TRjE6KjoqKQorKwlpZiBbIC14IC91c3Ivc2Jpbi9zeXN2 ZXJzaW9uIF0gOyB0aGVuCisrCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2Yx bWsKKysJZWxzZQorKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3NmMQorKwlm aQorKwlleGl0IDs7CisrICAgIHBhcmlzYyo6TGl0ZXMqOio6KikKKysJZWNobyBocHBhMS4xLWhw LWxpdGVzCisrCWV4aXQgOzsKKysgICAgQzEqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhP UzpDMSo6KikKKysJZWNobyBjMS1jb252ZXgtYnNkCisrICAgICAgICBleGl0IDs7CisrICAgIEMy KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzIqOiopCisrCWlmIGdldHN5c2luZm8g LWYgc2NhbGFyX2FjYworKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKKysJZWxzZSBlY2hvIGMy LWNvbnZleC1ic2QKKysJZmkKKysgICAgICAgIGV4aXQgOzsKKysgICAgQzM0KjpDb252ZXhPUzoq OiogfCBjb252ZXg6Q29udmV4T1M6QzM0KjoqKQorKwllY2hvIGMzNC1jb252ZXgtYnNkCisrICAg ICAgICBleGl0IDs7CisrICAgIEMzOCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMz OCo6KikKKysJZWNobyBjMzgtY29udmV4LWJzZAorKyAgICAgICAgZXhpdCA7OworKyAgICBDNCo6 Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkM0KjoqKQorKwllY2hvIGM0LWNvbnZleC1i c2QKKysgICAgICAgIGV4aXQgOzsKKysgICAgQ1JBWSpZLU1QOio6KjoqKQorKwllY2hvIHltcC1j cmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwll eGl0IDs7CisrICAgIENSQVkqW0EtWl05MDoqOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSBcCisrCXwgc2VkIC1lICdzL0NSQVkuKlwoW0Et Wl05MFwpL1wxLycgXAorKwkgICAgICAtZSB5L0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaL2Fi Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6LyBcCisrCSAgICAgIC1lICdzL1wuW14uXSokLy5YLycK KysJZXhpdCA7OworKyAgICBDUkFZKlRTOio6KjoqKQorKwllY2hvIHQ5MC1jcmF5LXVuaWNvcyR7 VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAg IENSQVkqVDNFOio6KjoqKQorKwllY2hvIGFscGhhZXY1LWNyYXktdW5pY29zbWske1VOQU1FX1JF TEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKysJZXhpdCA7OworKyAgICBDUkFZKlNW MToqOio6KikKKysJZWNobyBzdjEtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1l ICdzL1wuW14uXSokLy5YLycKKysJZXhpdCA7OworKyAgICAqOlVOSUNPUy9tcDoqOiopCisrCWVj aG8gY3JheW52LWNyYXktdW5pY29zbXAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14u XSokLy5YLycKKysJZXhpdCA7OworKyAgICBGMzBbMDFdOlVOSVhfU3lzdGVtX1Y6KjoqIHwgRjcw MDpVTklYX1N5c3RlbV9WOio6KikKKysJRlVKSVRTVV9QUk9DPWB1bmFtZSAtbSB8IHRyICdBQkNE RUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6J2AKKysg ICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVW V1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKKysg ICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvIC9f LydgCisrICAgICAgICBlY2hvICIke0ZVSklUU1VfUFJPQ30tZnVqaXRzdS0ke0ZVSklUU1VfU1lT fSR7RlVKSVRTVV9SRUx9IgorKyAgICAgICAgZXhpdCA7OworKyAgICA1MDAwOlVOSVhfU3lzdGVt X1Y6NC4qOiopCisrICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJ SktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUg J3MvXC8vLydgCisrICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwg dHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4 eXonIHwgc2VkIC1lICdzLyAvXy8nYAorKyAgICAgICAgZWNobyAic3BhcmMtZnVqaXRzdS0ke0ZV SklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9IgorKwlleGl0IDs7CisrICAgIGkqODY6QlNELzM4Njoq OiogfCBpKjg2OkJTRC9PUzoqOiogfCAqOkFzY2VuZFwgRW1iZWRkZWQvT1M6KjoqKQorKwllY2hv ICR7VU5BTUVfTUFDSElORX0tcGMtYnNkaSR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAg ICBzcGFyYyo6QlNEL09TOio6KikKKysJZWNobyBzcGFyYy11bmtub3duLWJzZGkke1VOQU1FX1JF TEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpCU0QvT1M6KjoqKQorKwllY2hvICR7VU5BTUVfTUFD SElORX0tdW5rbm93bi1ic2RpJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6RnJl ZUJTRDoqOiopCisrCWNhc2UgJHtVTkFNRV9NQUNISU5FfSBpbgorKwkgICAgcGM5OCkKKysJCWVj aG8gaTM4Ni11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9b LShdLiovLydgIDs7CisrCSAgICBhbWQ2NCkKKysJCWVjaG8geDg2XzY0LXVua25vd24tZnJlZWJz ZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKKysJICAgICop CisrCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9S RUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7OworKwllc2FjCisrCWV4aXQgOzsKKysgICAg aSo6Q1lHV0lOKjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtY3lnd2luCisrCWV4aXQg OzsKKysgICAgKjpNSU5HVyo6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbmd3MzIK KysJZXhpdCA7OworKyAgICBpKjp3aW5kb3dzMzIqOiopCisrICAgIAkjIHVuYW1lIC1tIGluY2x1 ZGVzICItcGMiIG9uIHRoaXMgc3lzdGVtLgorKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LW1p bmd3MzIKKysJZXhpdCA7OworKyAgICBpKjpQVyo6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXBjLXB3MzIKKysJZXhpdCA7OworKyAgICAqOkludGVyaXgqOlszNDU2XSopCisrICAgIAljYXNl ICR7VU5BTUVfTUFDSElORX0gaW4KKysJICAgIHg4NikKKysJCWVjaG8gaTU4Ni1wYy1pbnRlcml4 JHtVTkFNRV9SRUxFQVNFfQorKwkJZXhpdCA7OworKwkgICAgRU02NFQgfCBhdXRoZW50aWNhbWQg fCBnZW51aW5laW50ZWwpCisrCQllY2hvIHg4Nl82NC11bmtub3duLWludGVyaXgke1VOQU1FX1JF TEVBU0V9CisrCQlleGl0IDs7CisrCSAgICBJQTY0KQorKwkJZWNobyBpYTY0LXVua25vd24taW50 ZXJpeCR7VU5BTUVfUkVMRUFTRX0KKysJCWV4aXQgOzsKKysJZXNhYyA7OworKyAgICBbMzQ1XTg2 OldpbmRvd3NfOTU6KiB8IFszNDVdODY6V2luZG93c185ODoqIHwgWzM0NV04NjpXaW5kb3dzX05U OiopCisrCWVjaG8gaSR7VU5BTUVfTUFDSElORX0tcGMtbWtzCisrCWV4aXQgOzsKKysgICAgaSo6 V2luZG93c19OVCo6KiB8IFBlbnRpdW0qOldpbmRvd3NfTlQqOiopCisrCSMgSG93IGRvIHdlIGtu b3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBnZW5lcmljIFBPU0lYIHN1YnN5c3RlbT8K KysJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVyc2lvbnMgb2YgQVQmVCBVV0lO LiBTaG91bGQgd2UKKysJIyBVTkFNRV9NQUNISU5FIGJhc2VkIG9uIHRoZSBvdXRwdXQgb2YgdW5h bWUgaW5zdGVhZCBvZiBpMzg2PworKwllY2hvIGk1ODYtcGMtaW50ZXJpeAorKwlleGl0IDs7Cisr ICAgIGkqOlVXSU4qOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy11d2luCisrCWV4aXQg OzsKKysgICAgYW1kNjQ6Q1lHV0lOKjoqOiogfCB4ODZfNjQ6Q1lHV0lOKjoqOiopCisrCWVjaG8g eDg2XzY0LXVua25vd24tY3lnd2luCisrCWV4aXQgOzsKKysgICAgcCo6Q1lHV0lOKjoqKQorKwll Y2hvIHBvd2VycGNsZS11bmtub3duLWN5Z3dpbgorKwlleGl0IDs7CisrICAgIHByZXAqOlN1bk9T OjUuKjoqKQorKwllY2hvIHBvd2VycGNsZS11bmtub3duLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9S RUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsKKysgICAgKjpHTlU6KjoqKQor KwkjIHRoZSBHTlUgc3lzdGVtCisrCWVjaG8gYGVjaG8gJHtVTkFNRV9NQUNISU5FfXxzZWQgLWUg J3MsWy0vXS4qJCwsJ2AtdW5rbm93bi1nbnVgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAn cywvLiokLCwnYAorKwlleGl0IDs7CisrICAgICo6R05VLyo6KjoqKQorKwkjIG90aGVyIHN5c3Rl bXMgd2l0aCBHTlUgbGliYyBhbmQgdXNlcmxhbmQKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVu a25vd24tYGVjaG8gJHtVTkFNRV9TWVNURU19IHwgc2VkICdzLF5bXi9dKi8sLCcgfCB0ciAnW0Et Wl0nICdbYS16XSdgYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYC1n bnUKKysJZXhpdCA7OworKyAgICBpKjg2Ok1pbml4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXBjLW1pbml4CisrCWV4aXQgOzsKKysgICAgYXJtKjpMaW51eDoqOiopCisrCWV2YWwgJHNl dF9jY19mb3JfYnVpbGQKKysJaWYgZWNobyBfX0FSTV9FQUJJX18gfCAkQ0NfRk9SX0JVSUxEIC1F IC0gMj4vZGV2L251bGwgXAorKwkgICAgfCBncmVwIC1xIF9fQVJNX0VBQklfXworKwl0aGVuCisr CSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZWxzZQorKwkg ICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251ZWFiaQorKwlmaQorKwll eGl0IDs7CisrICAgIGF2cjMyKjpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11 bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGNyaXM6TGludXg6KjoqKQorKwllY2hv IGNyaXMtYXhpcy1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBjcmlzdjMyOkxpbnV4Oio6KikK KysJZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgZnJ2OkxpbnV4 Oio6KikKKysgICAgCWVjaG8gZnJ2LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAg aWE2NDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdu dQorKwlleGl0IDs7CisrICAgIG0zMnIqOkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgbTY4KjpMaW51eDoqOiopCisr CWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAg IG1pcHM6TGludXg6KjoqKQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCXNlZCAncy9eCS8v JyA8PCBFT0YgPiRkdW1teS5jCisrCSN1bmRlZiBDUFUKKysJI3VuZGVmIG1pcHMKKysJI3VuZGVm IG1pcHNlbAorKwkjaWYgZGVmaW5lZChfX01JUFNFTF9fKSB8fCBkZWZpbmVkKF9fTUlQU0VMKSB8 fCBkZWZpbmVkKF9NSVBTRUwpIHx8IGRlZmluZWQoTUlQU0VMKQorKwlDUFU9bWlwc2VsCisrCSNl bHNlCisrCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRl ZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCisrCUNQVT1taXBzCisrCSNlbHNlCisr CUNQVT0KKysJI2VuZGlmCisrCSNlbmRpZgorK0VPRgorKwlldmFsICJgJENDX0ZPUl9CVUlMRCAt RSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IHNlZCAtbiAnCisrCSAgICAvXkNQVS97CisrCQlzOiA6 OmcKKysJCXAKKysJICAgIH0nYCIKKysJdGVzdCB4IiR7Q1BVfSIgIT0geCAmJiB7IGVjaG8gIiR7 Q1BVfS11bmtub3duLWxpbnV4LWdudSI7IGV4aXQ7IH0KKysJOzsKKysgICAgbWlwczY0OkxpbnV4 Oio6KikKKysJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4k ZHVtbXkuYworKwkjdW5kZWYgQ1BVCisrCSN1bmRlZiBtaXBzNjQKKysJI3VuZGVmIG1pcHM2NGVs CisrCSNpZiBkZWZpbmVkKF9fTUlQU0VMX18pIHx8IGRlZmluZWQoX19NSVBTRUwpIHx8IGRlZmlu ZWQoX01JUFNFTCkgfHwgZGVmaW5lZChNSVBTRUwpCisrCUNQVT1taXBzNjRlbAorKwkjZWxzZQor KwkjaWYgZGVmaW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVk KF9NSVBTRUIpIHx8IGRlZmluZWQoTUlQU0VCKQorKwlDUFU9bWlwczY0CisrCSNlbHNlCisrCUNQ VT0KKysJI2VuZGlmCisrCSNlbmRpZgorK0VPRgorKwlldmFsICJgJENDX0ZPUl9CVUlMRCAtRSAk ZHVtbXkuYyAyPi9kZXYvbnVsbCB8IHNlZCAtbiAnCisrCSAgICAvXkNQVS97CisrCQlzOiA6OmcK KysJCXAKKysJICAgIH0nYCIKKysJdGVzdCB4IiR7Q1BVfSIgIT0geCAmJiB7IGVjaG8gIiR7Q1BV fS11bmtub3duLWxpbnV4LWdudSI7IGV4aXQ7IH0KKysJOzsKKysgICAgb3IzMjpMaW51eDoqOiop CisrCWVjaG8gb3IzMi11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIHBwYzpMaW51 eDoqOiopCisrCWVjaG8gcG93ZXJwYy11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAg IHBwYzY0OkxpbnV4Oio6KikKKysJZWNobyBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUKKysJ ZXhpdCA7OworKyAgICBhbHBoYTpMaW51eDoqOiopCisrCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9k ZWwvcy9eLio6IFwoLipcKS9cMS9wJyA8IC9wcm9jL2NwdWluZm9gIGluCisrCSAgRVY1KSAgIFVO QU1FX01BQ0hJTkU9YWxwaGFldjUgOzsKKysJICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2 NTYgOzsKKysJICBQQ0E1NikgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisrCSAgUENBNTcp IFVOQU1FX01BQ0hJTkU9YWxwaGFwY2E1NiA7OworKwkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFs cGhhZXY2IDs7CisrCSAgRVY2NykgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7CisrCSAgRVY2 OCopIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY4IDs7CisrICAgICAgICBlc2FjCisrCW9iamR1bXAg LS1wcml2YXRlLWhlYWRlcnMgL2Jpbi9zaCB8IGdyZXAgbGQuc28uMSA+L2Rldi9udWxsCisrCWlm IHRlc3QgIiQ/IiA9IDAgOyB0aGVuIExJQkM9ImxpYmMxIiA7IGVsc2UgTElCQz0iIiA7IGZpCisr CWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudSR7TElCQ30KKysJZXhpdCA7 OworKyAgICBwYWRyZTpMaW51eDoqOiopCisrCWVjaG8gc3BhcmMtdW5rbm93bi1saW51eC1nbnUK KysJZXhpdCA7OworKyAgICBwYXJpc2M6TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCisrCSMg TG9vayBmb3IgQ1BVIGxldmVsCisrCWNhc2UgYGdyZXAgJ15jcHVbXmEtel0qOicgL3Byb2MvY3B1 aW5mbyAyPi9kZXYvbnVsbCB8IGN1dCAtZCcgJyAtZjJgIGluCisrCSAgUEE3KikgZWNobyBocHBh MS4xLXVua25vd24tbGludXgtZ251IDs7CisrCSAgUEE4KikgZWNobyBocHBhMi4wLXVua25vd24t bGludXgtZ251IDs7CisrCSAgKikgICAgZWNobyBocHBhLXVua25vd24tbGludXgtZ251IDs7Cisr CWVzYWMKKysJZXhpdCA7OworKyAgICBwYXJpc2M2NDpMaW51eDoqOiogfCBocHBhNjQ6TGludXg6 KjoqKQorKwllY2hvIGhwcGE2NC11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIHMz OTA6TGludXg6KjoqIHwgczM5MHg6TGludXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0t aWJtLWxpbnV4CisrCWV4aXQgOzsKKysgICAgc2g2NCo6TGludXg6KjoqKQorKyAgICAJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgc2gqOkxp bnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4 aXQgOzsKKysgICAgc3BhcmM6TGludXg6KjoqIHwgc3BhcmM2NDpMaW51eDoqOiopCisrCWVjaG8g JHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIHZheDpM aW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtbGludXgtZ251CisrCWV4aXQg OzsKKysgICAgeDg2XzY0OkxpbnV4Oio6KikKKysJZWNobyB4ODZfNjQtdW5rbm93bi1saW51eC1n bnUKKysJZXhpdCA7OworKyAgICB4dGVuc2EqOkxpbnV4Oio6KikKKysgICAgCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGkqODY6TGludXg6 KjoqKQorKwkjIFRoZSBCRkQgbGlua2VyIGtub3dzIHdoYXQgdGhlIGRlZmF1bHQgb2JqZWN0IGZp bGUgZm9ybWF0IGlzLCBzbworKwkjIGZpcnN0IHNlZSBpZiBpdCB3aWxsIHRlbGwgdXMuIGNkIHRv IHRoZSByb290IGRpcmVjdG9yeSB0byBwcmV2ZW50CisrCSMgcHJvYmxlbXMgd2l0aCBvdGhlciBw cm9ncmFtcyBvciBkaXJlY3RvcmllcyBjYWxsZWQgYGxkJyBpbiB0aGUgcGF0aC4KKysJIyBTZXQg TENfQUxMPUMgdG8gZW5zdXJlIGxkIG91dHB1dHMgbWVzc2FnZXMgaW4gRW5nbGlzaC4KKysJbGRf c3VwcG9ydGVkX3RhcmdldHM9YGNkIC87IExDX0FMTD1DIGxkIC0taGVscCAyPiYxIFwKKysJCQkg fCBzZWQgLW5lICcvc3VwcG9ydGVkIHRhcmdldHM6LyFkCisrCQkJCSAgICBzL1sgCV1bIAldKi8g L2cKKysJCQkJICAgIHMvLipzdXBwb3J0ZWQgdGFyZ2V0czogKi8vCisrCQkJCSAgICBzLyAuKi8v CisrCQkJCSAgICBwJ2AKKysgICAgICAgIGNhc2UgIiRsZF9zdXBwb3J0ZWRfdGFyZ2V0cyIgaW4K KysJICBlbGYzMi1pMzg2KQorKwkJVEVOVEFUSVZFPSIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4 LWdudSIKKysJCTs7CisrCSAgYS5vdXQtaTM4Ni1saW51eCkKKysJCWVjaG8gIiR7VU5BTUVfTUFD SElORX0tcGMtbGludXgtZ251YW91dCIKKysJCWV4aXQgOzsKKysJICAiIikKKysJCSMgRWl0aGVy IGEgcHJlLUJGRCBhLm91dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxkKSBvcgorKwkJIyBvbmUgdGhh dCBkb2VzIG5vdCBnaXZlIHVzIHVzZWZ1bCAtLWhlbHAuCisrCQllY2hvICIke1VOQU1FX01BQ0hJ TkV9LXBjLWxpbnV4LWdudW9sZGxkIgorKwkJZXhpdCA7OworKwllc2FjCisrCSMgRGV0ZXJtaW5l IHdoZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQgb3IgZWxmCisrCWV2YWwgJHNl dF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKysJI2luY2x1 ZGUgPGZlYXR1cmVzLmg+CisrCSNpZmRlZiBfX0VMRl9fCisrCSMgaWZkZWYgX19HTElCQ19fCisr CSMgIGlmIF9fR0xJQkNfXyA+PSAyCisrCUxJQkM9Z251CisrCSMgIGVsc2UKKysJTElCQz1nbnVs aWJjMQorKwkjICBlbmRpZgorKwkjIGVsc2UKKysJTElCQz1nbnVsaWJjMQorKwkjIGVuZGlmCisr CSNlbHNlCisrCSNpZiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpIHx8IGRlZmluZWQoX19QR0kp IHx8IGRlZmluZWQoX19TVU5QUk9fQykgfHwgZGVmaW5lZChfX1NVTlBST19DQykKKysJTElCQz1n bnUKKysJI2Vsc2UKKysJTElCQz1nbnVhb3V0CisrCSNlbmRpZgorKwkjZW5kaWYKKysJI2lmZGVm IF9fZGlldGxpYmNfXworKwlMSUJDPWRpZXRsaWJjCisrCSNlbmRpZgorK0VPRgorKwlldmFsICJg JENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IHNlZCAtbiAnCisrCSAgICAv XkxJQkMveworKwkJczogOjpnCisrCQlwCisrCSAgICB9J2AiCisrCXRlc3QgeCIke0xJQkN9IiAh PSB4ICYmIHsKKysJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtJHtMSUJDfSIKKysJ CWV4aXQKKysJfQorKwl0ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4ICYmIHsgZWNobyAiJHtURU5U QVRJVkV9IjsgZXhpdDsgfQorKwk7OworKyAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQorKwkjIHB0 eCA0LjAgZG9lcyB1bmFtZSAtcyBjb3JyZWN0bHksIHdpdGggRFlOSVgvcHR4IGluIHRoZXJlLgor KwkjIGVhcmxpZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQgcHV0IHRoZSBub2RlbmFtZSBp biBib3RoCisrCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCisrCWVjaG8gaTM4Ni1zZXF1ZW50LXN5 c3Y0CisrCWV4aXQgOzsKKysgICAgaSo4NjpVTklYX1NWOjQuMk1QOjIuKikKKysgICAgICAgICMg VW5peHdhcmUgaXMgYW4gb2Zmc2hvb3Qgb2YgU1ZSNCwgYnV0IGl0IGhhcyBpdHMgb3duIHZlcnNp b24KKysgICAgICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3aXRoIDIuLi4KKysgICAgICAg ICMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29uJ3QgbWF0Y2gg dGhpcywKKysJIyBJIGp1c3QgaGF2ZSB0byBob3BlLiAgLS0gcm1zLgorKyAgICAgICAgIyBVc2Ug c3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCisrCWVjaG8gJHtVTkFNRV9N QUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059CisrCWV4aXQgOzsKKysgICAgaSo4 NjpPUy8yOio6KikKKysJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmluZCBgdW5hbWUnLCB0aGVuIEVN WCBVbml4IGNvbXBhdGliaWxpdHkKKysJIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQuCisrCWVjaG8g JHtVTkFNRV9NQUNISU5FfS1wYy1vczItZW14CisrCWV4aXQgOzsKKysgICAgaSo4NjpYVFMtMzAw Oio6U1RPUCkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3RvcAorKwlleGl0IDs7 CisrICAgIGkqODY6YXRoZW9zOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t YXRoZW9zCisrCWV4aXQgOzsKKysgICAgaSo4NjpzeWxsYWJsZToqOiopCisrCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1wYy1zeWxsYWJsZQorKwlleGl0IDs7CisrICAgIGkqODY6THlueE9TOjIuKjoq IHwgaSo4NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6NC4wKjoqKQorKwllY2hvIGkz ODYtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgaSo4Njoq RE9TOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1zZG9zZGpncHAKKysJZXhpdCA7 OworKyAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQorKwlVTkFNRV9SRUw9 YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAncy9cL01QJC8vJ2AKKysJaWYgZ3JlcCBOb3Zl bGwgL3Vzci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCisrCQll Y2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0KKysJZWxzZQorKwkJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JFTH0KKysJZmkKKysJZXhpdCA7 OworKyAgICBpKjg2Oio6NTpbNjc4XSopCisrICAgIAkjIFVuaXhXYXJlIDcueCwgT3BlblVOSVgg YW5kIE9wZW5TZXJ2ZXIgNi4KKysJY2FzZSBgL2Jpbi91bmFtZSAtWCB8IGdyZXAgIl5NYWNoaW5l ImAgaW4KKysJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4NiA7OworKwkgICAgKlBl bnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7CisrCSAgICAqUGVudCp8KkNlbGVyb24p IFVOQU1FX01BQ0hJTkU9aTY4NiA7OworKwllc2FjCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11 bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNURU19JHtVTkFNRV9WRVJTSU9O fQorKwlleGl0IDs7CisrICAgIGkqODY6KjozLjI6KikKKysJaWYgdGVzdCAtZiAvdXNyL29wdGlv bnMvY2IubmFtZTsgdGhlbgorKwkJVU5BTUVfUkVMPWBzZWQgLW4gJ3MvLipWZXJzaW9uIC8vcCcg PC91c3Ivb3B0aW9ucy9jYi5uYW1lYAorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRV TkFNRV9SRUwKKysJZWxpZiAvYmluL3VuYW1lIC1YIDI+L2Rldi9udWxsID4vZGV2L251bGwgOyB0 aGVuCisrCQlVTkFNRV9SRUw9YCgvYmluL3VuYW1lIC1YfGdyZXAgUmVsZWFzZXxzZWQgLWUgJ3Mv Lio9IC8vJylgCisrCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBV TkFNRV9NQUNISU5FPWk0ODYKKysJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50 aXVtJyA+L2Rldi9udWxsKSBcCisrCQkJJiYgVU5BTUVfTUFDSElORT1pNTg2CisrCQkoL2Jpbi91 bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKKysJCQkmJiBV TkFNRV9NQUNISU5FPWk2ODYKKysJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50 aXVtIFBybycgPi9kZXYvbnVsbCkgXAorKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorKwkJZWNo byAke1VOQU1FX01BQ0hJTkV9LXBjLXNjbyRVTkFNRV9SRUwKKysJZWxzZQorKwkJZWNobyAke1VO QU1FX01BQ0hJTkV9LXBjLXN5c3YzMgorKwlmaQorKwlleGl0IDs7CisrICAgIHBjOio6KjoqKQor KwkjIExlZnQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eToKKysgICAgICAgICMgdW5hbWUgLW0gcHJp bnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0Cisr ICAgICAgICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBpMzg2 LgorKwllY2hvIGkzODYtcGMtbXNkb3NkamdwcAorKyAgICAgICAgZXhpdCA7OworKyAgICBJbnRl bDpNYWNoOjMqOiopCisrCWVjaG8gaTM4Ni1wYy1tYWNoMworKwlleGl0IDs7CisrICAgIHBhcmFn b246KjoqOiopCisrCWVjaG8gaTg2MC1pbnRlbC1vc2YxCisrCWV4aXQgOzsKKysgICAgaTg2MDoq OjQuKjoqKSAjIGk4NjAtU1ZSNAorKwlpZiBncmVwIFN0YXJkZW50IC91c3IvaW5jbHVkZS9zeXMv dWFkbWluLmggPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorKwkgIGVjaG8gaTg2MC1zdGFyZGVudC1z eXN2JHtVTkFNRV9SRUxFQVNFfSAjIFN0YXJkZW50IFZpc3RyYSBpODYwLVNWUjQKKysJZWxzZSAj IEFkZCBvdGhlciBpODYwLVNWUjQgdmVuZG9ycyBiZWxvdyBhcyB0aGV5IGFyZSBkaXNjb3ZlcmVk LgorKwkgIGVjaG8gaTg2MC11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9ICAjIFVua25vd24g aTg2MC1TVlI0CisrCWZpCisrCWV4aXQgOzsKKysgICAgbWluaSo6Q1RJWDpTWVMqNToqKQorKwkj ICJtaW5pZnJhbWUiCisrCWVjaG8gbTY4MDEwLWNvbnZlcmdlbnQtc3lzdgorKwlleGl0IDs7Cisr ICAgIG1jNjhrOlVOSVg6U1lTVEVNNTozLjUxbSkKKysJZWNobyBtNjhrLWNvbnZlcmdlbnQtc3lz dgorKwlleGl0IDs7CisrICAgIE02ODA/MDpELU5JWDo1LjM6KikKKysJZWNobyBtNjhrLWRpYWIt ZG5peAorKwlleGl0IDs7CisrICAgIE02OCo6KjpSM1ZbNTY3OF0qOiopCisrCXRlc3QgLXIgL3N5 c1Y2OCAmJiB7IGVjaG8gJ202OGstbW90b3JvbGEtc3lzdic7IGV4aXQ7IH0gOzsKKysgICAgM1sz NDVdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6My4wIHwgM1szNF0/PywqOio6NC4wOjMu MCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4w IHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDozLjAgfCBTSEcyOio6NC4wOjMuMCB8IFM3 NTAxKjoqOjQuMDozLjApCisrCU9TX1JFTD0nJworKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKKysJ JiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcg PCAvZXRjLy5yZWxpZGAKKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9k ZXYvbnVsbCBcCisrCSAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7 IH0KKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYv bnVsbCBcCisrCSAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0g OzsKKysgICAgM1szNF0/PzoqOjQuMDoqIHwgM1szNF0/PywqOio6NC4wOiopCisrICAgICAgICAv YmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKysgICAgICAg ICAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0OyBleGl0OyB9IDs7CisrICAgIG02OCo6THlueE9T OjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQorKwllY2hvIG02OGstdW5rbm93bi1seW54b3Mk e1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbWM2ODAzMDpVTklYX1N5c3RlbV9WOjQu KjoqKQorKwllY2hvIG02OGstYXRhcmktc3lzdjQKKysJZXhpdCA7OworKyAgICBUU1VOQU1JOkx5 bnhPUzoyLio6KikKKysJZWNobyBzcGFyYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICByczYwMDA6THlueE9TOjIuKjoqKQorKwllY2hvIHJzNjAwMC11bmtu b3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBQb3dlclBDOkx5bnhP UzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBvd2VyUEM6THlueE9TOjQuMCo6 KikKKysJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0 IDs7CisrICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCisrCWVjaG8gbWlwcy1kZGUtc3lzdiR7VU5B TUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCisrCWVj aG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICBSTSo6U0lOSVgtKjoqOiopCisrCWVj aG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICAqOlNJTklYLSo6KjoqKQorKwlpZiB1 bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgorKwkJVU5BTUVfTUFDSElORT1g KHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1zbmktc3lz djQKKysJZWxzZQorKwkJZWNobyBuczMyay1zbmktc3lzdgorKwlmaQorKwlleGl0IDs7CisrICAg IFBFTlRJVU06Kjo0LjAqOiopICMgVW5pc3lzIGBDbGVhclBhdGggSE1QIElYIDQwMDAnIFNWUjQv TVAgZWZmb3J0CisrICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRl bEBjY01haWwuQ2Vuc3VzLkdPVj4KKysgICAgICAgIGVjaG8gaTU4Ni11bmlzeXMtc3lzdjQKKysg ICAgICAgIGV4aXQgOzsKKysgICAgKjpVTklYX1N5c3RlbV9WOjQqOkZUWCopCisrCSMgRnJvbSBH ZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5tYXJrZXQuY29tPi4KKysJIyBIb3cgYWJvdXQgZGlmZmVy ZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVzPyAtZGptCisrCWVjaG8gaHBw YTEuMS1zdHJhdHVzLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgKjoqOio6RlRYKikKKysJIyBGcm9t IHNlYW5mQHN3ZGMuc3RyYXR1cy5jb20uCisrCWVjaG8gaTg2MC1zdHJhdHVzLXN5c3Y0CisrCWV4 aXQgOzsKKysgICAgaSo4NjpWT1M6KjoqKQorKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVzLmNv bS4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXN0cmF0dXMtdm9zCisrCWV4aXQgOzsKKysgICAg KjpWT1M6KjoqKQorKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVzLmNvbS4KKysJZWNobyBocHBh MS4xLXN0cmF0dXMtdm9zCisrCWV4aXQgOzsKKysgICAgbWM2OCo6QS9VWDoqOiopCisrCWVjaG8g bTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbmV3cyo6TkVX Uy1PUzo2KjoqKQorKwllY2hvIG1pcHMtc29ueS1uZXdzb3M2CisrCWV4aXQgOzsKKysgICAgUlsz NF0wMDA6KlN5c3RlbV9WKjoqOiogfCBSNDAwMDpVTklYX1NZU1Y6KjoqIHwgUiowMDA6VU5JWF9T VjoqOiopCisrCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgorKwkgICAgICAgIGVjaG8gbWlwcy1u ZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZWxzZQorKwkgICAgICAgIGVjaG8gbWlwcy11bmtu b3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9CisrCWZpCisrICAgICAgICBleGl0IDs7CisrICAgIEJl Qm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQUEMg b25seS4KKysJZWNobyBwb3dlcnBjLWJlLWJlb3MKKysJZXhpdCA7OworKyAgICBCZU1hYzpCZU9T Oio6KikJIyBCZU9TIHJ1bm5pbmcgb24gTWFjIG9yIE1hYyBjbG9uZSwgUFBDIG9ubHkuCisrCWVj aG8gcG93ZXJwYy1hcHBsZS1iZW9zCisrCWV4aXQgOzsKKysgICAgQmVQQzpCZU9TOio6KikJIyBC ZU9TIHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKysJZWNobyBpNTg2LXBjLWJlb3MK KysJZXhpdCA7OworKyAgICBCZVBDOkhhaWt1Oio6KikJIyBIYWlrdSBydW5uaW5nIG9uIEludGVs IFBDIGNvbXBhdGlibGUuCisrCWVjaG8gaTU4Ni1wYy1oYWlrdQorKwlleGl0IDs7CisrICAgIFNY LTQ6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4NC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICBTWC01OlNVUEVSLVVYOio6KikKKysJZWNobyBzeDUtbmVjLXN1cGVy dXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gtNjpTVVBFUi1VWDoqOiopCisr CWVjaG8gc3g2LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNY LTc6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4Ny1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICBTWC04OlNVUEVSLVVYOio6KikKKysJZWNobyBzeDgtbmVjLXN1cGVy dXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gtOFI6U1VQRVItVVg6KjoqKQor KwllY2hvIHN4OHItbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAg UG93ZXIqOlJoYXBzb2R5Oio6KikKKysJZWNobyBwb3dlcnBjLWFwcGxlLXJoYXBzb2R5JHtVTkFN RV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UmhhcHNvZHk6KjoqKQorKwllY2hvICR7VU5B TUVfTUFDSElORX0tYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysg ICAgKjpEYXJ3aW46KjoqKQorKwlVTkFNRV9QUk9DRVNTT1I9YHVuYW1lIC1wYCB8fCBVTkFNRV9Q Uk9DRVNTT1I9dW5rbm93bgorKwljYXNlICRVTkFNRV9QUk9DRVNTT1IgaW4KKysJICAgIHVua25v d24pIFVOQU1FX1BST0NFU1NPUj1wb3dlcnBjIDs7CisrCWVzYWMKKysJZWNobyAke1VOQU1FX1BS T0NFU1NPUn0tYXBwbGUtZGFyd2luJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6 cHJvY250byo6KjoqIHwgKjpRTlg6WzAxMjM0NTY3ODldKjoqKQorKwlVTkFNRV9QUk9DRVNTT1I9 YHVuYW1lIC1wYAorKwlpZiB0ZXN0ICIkVU5BTUVfUFJPQ0VTU09SIiA9ICJ4ODYiOyB0aGVuCisr CQlVTkFNRV9QUk9DRVNTT1I9aTM4NgorKwkJVU5BTUVfTUFDSElORT1wYworKwlmaQorKwllY2hv ICR7VU5BTUVfUFJPQ0VTU09SfS0ke1VOQU1FX01BQ0hJTkV9LW50by1xbngke1VOQU1FX1JFTEVB U0V9CisrCWV4aXQgOzsKKysgICAgKjpRTlg6Kjo0KikKKysJZWNobyBpMzg2LXBjLXFueAorKwll eGl0IDs7CisrICAgIE5TRS0/Ok5PTlNUT1BfS0VSTkVMOio6KikKKysJZWNobyBuc2UtdGFuZGVt LW5zayR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBOU1ItPzpOT05TVE9QX0tFUk5F TDoqOiopCisrCWVjaG8gbnNyLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsK KysgICAgKjpOb25TdG9wLVVYOio6KikKKysJZWNobyBtaXBzLWNvbXBhcS1ub25zdG9wdXgKKysJ ZXhpdCA7OworKyAgICBCUzIwMDA6UE9TSVgqOio6KikKKysJZWNobyBiczIwMDAtc2llbWVucy1z eXN2CisrCWV4aXQgOzsKKysgICAgRFMvKjpVTklYX1N5c3RlbV9WOio6KikKKysJZWNobyAke1VO QU1FX01BQ0hJTkV9LSR7VU5BTUVfU1lTVEVNfS0ke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsK KysgICAgKjpQbGFuOToqOiopCisrCSMgInVuYW1lIC1tIiBpcyBub3QgY29uc2lzdGVudCwgc28g dXNlICRjcHV0eXBlIGluc3RlYWQuIDM4NgorKwkjIGlzIGNvbnZlcnRlZCB0byBpMzg2IGZvciBj b25zaXN0ZW5jeSB3aXRoIG90aGVyIHg4NgorKwkjIG9wZXJhdGluZyBzeXN0ZW1zLgorKwlpZiB0 ZXN0ICIkY3B1dHlwZSIgPSAiMzg2IjsgdGhlbgorKwkgICAgVU5BTUVfTUFDSElORT1pMzg2Cisr CWVsc2UKKysJICAgIFVOQU1FX01BQ0hJTkU9IiRjcHV0eXBlIgorKwlmaQorKwllY2hvICR7VU5B TUVfTUFDSElORX0tdW5rbm93bi1wbGFuOQorKwlleGl0IDs7CisrICAgICo6VE9QUy0xMDoqOiop CisrCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMTAKKysJZXhpdCA7OworKyAgICAqOlRFTkVYOio6 KikKKysJZWNobyBwZHAxMC11bmtub3duLXRlbmV4CisrCWV4aXQgOzsKKysgICAgS1MxMDpUT1BT LTIwOio6KiB8IEtMMTA6VE9QUy0yMDoqOiogfCBUWVBFNDpUT1BTLTIwOio6KikKKysJZWNobyBw ZHAxMC1kZWMtdG9wczIwCisrCWV4aXQgOzsKKysgICAgWEtMLTE6VE9QUy0yMDoqOiogfCBUWVBF NTpUT1BTLTIwOio6KikKKysJZWNobyBwZHAxMC14a2wtdG9wczIwCisrCWV4aXQgOzsKKysgICAg KjpUT1BTLTIwOio6KikKKysJZWNobyBwZHAxMC11bmtub3duLXRvcHMyMAorKwlleGl0IDs7Cisr ICAgICo6SVRTOio6KikKKysJZWNobyBwZHAxMC11bmtub3duLWl0cworKwlleGl0IDs7CisrICAg IFNFSToqOio6U0VJVVgpCisrICAgICAgICBlY2hvIG1pcHMtc2VpLXNlaXV4JHtVTkFNRV9SRUxF QVNFfQorKwlleGl0IDs7CisrICAgICo6RHJhZ29uRmx5Oio6KikKKysJZWNobyAke1VOQU1FX01B Q0hJTkV9LXVua25vd24tZHJhZ29uZmx5YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3Mv Wy0oXS4qLy8nYAorKwlleGl0IDs7CisrICAgICo6KlZNUzoqOiopCisrICAgIAlVTkFNRV9NQUNI SU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAorKwljYXNlICIke1VOQU1FX01BQ0hJTkV9IiBp bgorKwkgICAgQSopIGVjaG8gYWxwaGEtZGVjLXZtcyA7IGV4aXQgOzsKKysJICAgIEkqKSBlY2hv IGlhNjQtZGVjLXZtcyA7IGV4aXQgOzsKKysJICAgIFYqKSBlY2hvIHZheC1kZWMtdm1zIDsgZXhp dCA7OworKwllc2FjIDs7CisrICAgICo6WEVOSVg6KjpTeXNWKQorKwllY2hvIGkzODYtcGMteGVu aXgKKysJZXhpdCA7OworKyAgICBpKjg2OnNreW9zOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXBjLXNreW9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfWAgfCBzZWQgLWUgJ3MvIC4qJC8vJwor KwlleGl0IDs7CisrICAgIGkqODY6cmRvczoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1w Yy1yZG9zCisrCWV4aXQgOzsKKytlc2FjCisrCisrI2VjaG8gJyhObyB1bmFtZSBjb21tYW5kIG9y IHVuYW1lIG91dHB1dCBub3QgcmVjb2duaXplZC4pJyAxPiYyCisrI2VjaG8gIiR7VU5BTUVfTUFD SElORX06JHtVTkFNRV9TWVNURU19OiR7VU5BTUVfUkVMRUFTRX06JHtVTkFNRV9WRVJTSU9OfSIg MT4mMgorKworK2V2YWwgJHNldF9jY19mb3JfYnVpbGQKKytjYXQgPiRkdW1teS5jIDw8RU9GCisr I2lmZGVmIF9TRVFVRU5UXworKyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrIyBpbmNsdWRlIDxz eXMvdXRzbmFtZS5oPgorKyNlbmRpZgorK21haW4gKCkKKyt7CisrI2lmIGRlZmluZWQgKHNvbnkp CisrI2lmIGRlZmluZWQgKE1JUFNFQikKKysgIC8qIEJGRCB3YW50cyAiYnNkIiBpbnN0ZWFkIG9m ICJuZXdzb3MiLiAgUGVyaGFwcyBCRkQgc2hvdWxkIGJlIGNoYW5nZWQsCisrICAgICBJIGRvbid0 IGtub3cuLi4uICAqLworKyAgcHJpbnRmICgibWlwcy1zb255LWJzZFxuIik7IGV4aXQgKDApOwor KyNlbHNlCisrI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorKyAgcHJpbnRmICgibTY4ay1zb255LW5l d3NvcyVzXG4iLAorKyNpZmRlZiBORVdTT1M0CisrICAgICAgICAgICI0IgorKyNlbHNlCisrCSAg IiIKKysjZW5kaWYKKysgICAgICAgICApOyBleGl0ICgwKTsKKysjZW5kaWYKKysjZW5kaWYKKysK KysjaWYgZGVmaW5lZCAoX19hcm0pICYmIGRlZmluZWQgKF9fYWNvcm4pICYmIGRlZmluZWQgKF9f dW5peCkKKysgIHByaW50ZiAoImFybS1hY29ybi1yaXNjaXhcbiIpOyBleGl0ICgwKTsKKysjZW5k aWYKKysKKysjaWYgZGVmaW5lZCAoaHAzMDApICYmICFkZWZpbmVkIChocHV4KQorKyAgcHJpbnRm ICgibTY4ay1ocC1ic2RcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAo TmVYVCkKKysjaWYgIWRlZmluZWQgKF9fQVJDSElURUNUVVJFX18pCisrI2RlZmluZSBfX0FSQ0hJ VEVDVFVSRV9fICJtNjhrIgorKyNlbmRpZgorKyAgaW50IHZlcnNpb247CisrICB2ZXJzaW9uPWAo aG9zdGluZm8gfCBzZWQgLW4gJ3MvLipOZVhUIE1hY2ggXChbMC05XSpcKS4qL1wxL3AnKSAyPi9k ZXYvbnVsbGA7CisrICBpZiAodmVyc2lvbiA8IDQpCisrICAgIHByaW50ZiAoIiVzLW5leHQtbmV4 dHN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7CisrICBlbHNlCisrICAgIHBy aW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7 CisrICBleGl0ICgwKTsKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoTVVMVElNQVgpIHx8IGRl ZmluZWQgKG4xNikKKysjaWYgZGVmaW5lZCAoVU1BWFYpCisrICBwcmludGYgKCJuczMyay1lbmNv cmUtc3lzdlxuIik7IGV4aXQgKDApOworKyNlbHNlCisrI2lmIGRlZmluZWQgKENNVSkKKysgIHBy aW50ZiAoIm5zMzJrLWVuY29yZS1tYWNoXG4iKTsgZXhpdCAoMCk7CisrI2Vsc2UKKysgIHByaW50 ZiAoIm5zMzJrLWVuY29yZS1ic2RcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysjZW5kaWYKKysj ZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX18zODZCU0RfXykKKysgIHByaW50ZiAoImkzODYtcGMt YnNkXG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKHNlcXVlbnQpCisr I2lmIGRlZmluZWQgKGkzODYpCisrICBwcmludGYgKCJpMzg2LXNlcXVlbnQtZHluaXhcbiIpOyBl eGl0ICgwKTsKKysjZW5kaWYKKysjaWYgZGVmaW5lZCAobnMzMjAwMCkKKysgIHByaW50ZiAoIm5z MzJrLXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysjZW5kaWYKKysKKysj aWYgZGVmaW5lZCAoX1NFUVVFTlRfKQorKyAgICBzdHJ1Y3QgdXRzbmFtZSB1bjsKKysKKysgICAg dW5hbWUoJnVuKTsKKysKKysgICAgaWYgKHN0cm5jbXAodW4udmVyc2lvbiwgIlYyIiwgMikgPT0g MCkgeworKwlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MlxuIik7IGV4aXQgKDApOworKyAgICB9 CisrICAgIGlmIChzdHJuY21wKHVuLnZlcnNpb24sICJWMSIsIDIpID09IDApIHsgLyogWFhYIGlz IFYxIGNvcnJlY3Q/ICovCisrCXByaW50ZiAoImkzODYtc2VxdWVudC1wdHgxXG4iKTsgZXhpdCAo MCk7CisrICAgIH0KKysgICAgcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eFxuIik7IGV4aXQgKDAp OworKworKyNlbmRpZgorKworKyNpZiBkZWZpbmVkICh2YXgpCisrIyBpZiAhZGVmaW5lZCAodWx0 cml4KQorKyMgIGluY2x1ZGUgPHN5cy9wYXJhbS5oPgorKyMgIGlmIGRlZmluZWQgKEJTRCkKKysj ICAgaWYgQlNEID09IDQzCisrICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNcbiIpOyBleGl0 ICgwKTsKKysjICAgZWxzZQorKyMgICAgaWYgQlNEID09IDE5OTAwNgorKyAgICAgIHByaW50ZiAo InZheC1kZWMtYnNkNC4zcmVub1xuIik7IGV4aXQgKDApOworKyMgICAgZWxzZQorKyAgICAgIHBy aW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7CisrIyAgICBlbmRpZgorKyMgICBlbmRp ZgorKyMgIGVsc2UKKysgICAgcHJpbnRmICgidmF4LWRlYy1ic2RcbiIpOyBleGl0ICgwKTsKKysj ICBlbmRpZgorKyMgZWxzZQorKyAgICBwcmludGYgKCJ2YXgtZGVjLXVsdHJpeFxuIik7IGV4aXQg KDApOworKyMgZW5kaWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoYWxsaWFudCkgJiYgZGVm aW5lZCAoaTg2MCkKKysgIHByaW50ZiAoImk4NjAtYWxsaWFudC1ic2RcbiIpOyBleGl0ICgwKTsK KysjZW5kaWYKKysKKysgIGV4aXQgKDEpOworK30KKytFT0YKKysKKyskQ0NfRk9SX0JVSUxEIC1v ICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCAmJiBTWVNURU1fTkFNRT1gJGR1bW15YCAmJgor Kwl7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KKysKKysjIEFwb2xsb3MgcHV0IHRoZSBz eXN0ZW0gdHlwZSBpbiB0aGUgZW52aXJvbm1lbnQuCisrCisrdGVzdCAtZCAvdXNyL2Fwb2xsbyAm JiB7IGVjaG8gJHtJU1B9LWFwb2xsby0ke1NZU1RZUEV9OyBleGl0OyB9CisrCisrIyBDb252ZXgg dmVyc2lvbnMgdGhhdCBwcmVkYXRlIHVuYW1lIGNhbiB1c2UgZ2V0c3lzaW5mbygxKQorKworK2lm IFsgLXggL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyBdCisrdGhlbgorKyAgICBjYXNlIGBnZXRzeXNp bmZvIC1mIGNwdV90eXBlYCBpbgorKyAgICBjMSopCisrCWVjaG8gYzEtY29udmV4LWJzZAorKwll eGl0IDs7CisrICAgIGMyKikKKysJaWYgZ2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCisrCXRoZW4g ZWNobyBjMzItY29udmV4LWJzZAorKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAorKwlmaQorKwll eGl0IDs7CisrICAgIGMzNCopCisrCWVjaG8gYzM0LWNvbnZleC1ic2QKKysJZXhpdCA7OworKyAg ICBjMzgqKQorKwllY2hvIGMzOC1jb252ZXgtYnNkCisrCWV4aXQgOzsKKysgICAgYzQqKQorKwll Y2hvIGM0LWNvbnZleC1ic2QKKysJZXhpdCA7OworKyAgICBlc2FjCisrZmkKKysKKytjYXQgPiYy IDw8RU9GCisrJDA6IHVuYWJsZSB0byBndWVzcyBzeXN0ZW0gdHlwZQorKworK1RoaXMgc2NyaXB0 LCBsYXN0IG1vZGlmaWVkICR0aW1lc3RhbXAsIGhhcyBmYWlsZWQgdG8gcmVjb2duaXplCisrdGhl IG9wZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQgaXMgYWR2aXNlZCB0aGF0IHlvdQor K2Rvd25sb2FkIHRoZSBtb3N0IHVwIHRvIGRhdGUgdmVyc2lvbiBvZiB0aGUgY29uZmlnIHNjcmlw dHMgZnJvbQorKworKyAgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25m aWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFECisrYW5kCisrICBodHRw Oi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWlu O2Y9Y29uZmlnLnN1YjtoYj1IRUFECisrCisrSWYgdGhlIHZlcnNpb24geW91IHJ1biAoJDApIGlz IGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCisrc2VuZCB0aGUgZm9sbG93aW5nIGRhdGEgYW5k IGFueSBpbmZvcm1hdGlvbiB5b3UgdGhpbmsgbWlnaHQgYmUKKytwZXJ0aW5lbnQgdG8gPGNvbmZp Zy1wYXRjaGVzQGdudS5vcmc+IGluIG9yZGVyIHRvIHByb3ZpZGUgdGhlIG5lZWRlZAorK2luZm9y bWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5c3RlbS4KKysKKytjb25maWcuZ3Vlc3MgdGltZXN0YW1w ID0gJHRpbWVzdGFtcAorKworK3VuYW1lIC1tID0gYCh1bmFtZSAtbSkgMj4vZGV2L251bGwgfHwg ZWNobyB1bmtub3duYAorK3VuYW1lIC1yID0gYCh1bmFtZSAtcikgMj4vZGV2L251bGwgfHwgZWNo byB1bmtub3duYAorK3VuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1 bmtub3duYAorK3VuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtu b3duYAorKworKy91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2 L251bGxgCisrL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxs YAorKworK2hvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbGAK KysvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbGAK KysvdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gYCgvdXNyL2Jpbi9hcmNoIC1rKSAyPi9kZXYvbnVs bGAKKysvYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsYAor Ky91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxs YAorKy91c3IvY29udmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+ L2Rldi9udWxsYAorKworK1VOQU1FX01BQ0hJTkUgPSAke1VOQU1FX01BQ0hJTkV9CisrVU5BTUVf UkVMRUFTRSA9ICR7VU5BTUVfUkVMRUFTRX0KKytVTkFNRV9TWVNURU0gID0gJHtVTkFNRV9TWVNU RU19CisrVU5BTUVfVkVSU0lPTiA9ICR7VU5BTUVfVkVSU0lPTn0KKytFT0YKKysKKytleGl0IDEK KysKKysjIExvY2FsIHZhcmlhYmxlczoKKysjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1o b29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJ0aW1lc3RhbXA9JyIKKysj IHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKKysjIHRpbWUtc3RhbXAtZW5kOiAi JyIKKysjIEVuZDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLnN1 YiBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5zdWIKKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvY29uZmlnLnN1YgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLnN1YgkyMDA5LTA1LTIzIDEw OjAyOjAxLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNjc3IEBACisrIyEgL2Jpbi9zaAor KyMgQ29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIHN1YnJvdXRpbmUgc2NyaXB0LgorKyMgICBDb3B5 cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks CisrIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDgKKysjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrdGltZXN0YW1wPScy MDA4LTA5LTA4JworKworKyMgVGhpcyBmaWxlIGlzIChpbiBwcmluY2lwbGUpIGNvbW1vbiB0byBB TEwgR05VIHNvZnR3YXJlLgorKyMgVGhlIHByZXNlbmNlIG9mIGEgbWFjaGluZSBpbiB0aGlzIGZp bGUgc3VnZ2VzdHMgdGhhdCBTT01FIEdOVSBzb2Z0d2FyZQorKyMgY2FuIGhhbmRsZSB0aGF0IG1h Y2hpbmUuICBJdCBkb2VzIG5vdCBpbXBseSBBTEwgR05VIHNvZnR3YXJlIGNhbi4KKysjCisrIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG cmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBG aWZ0aCBGbG9vciwgQm9zdG9uLCBNQQorKyMgMDIxMTAtMTMwMSwgVVNBLgorKyMKKysjIEFzIGEg c3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5 b3UKKysjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29u dGFpbnMgYQorKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5 b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKysjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0 aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysKKysKKysjIFBsZWFz ZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiAgU3VibWl0IGEgY29u dGV4dAorKyMgZGlmZiBhbmQgYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ2hhbmdlTG9nIGVudHJ5Lgor KyMKKysjIENvbmZpZ3VyYXRpb24gc3Vicm91dGluZSB0byB2YWxpZGF0ZSBhbmQgY2Fub25pY2Fs aXplIGEgY29uZmlndXJhdGlvbiB0eXBlLgorKyMgU3VwcGx5IHRoZSBzcGVjaWZpZWQgY29uZmln dXJhdGlvbiB0eXBlIGFzIGFuIGFyZ3VtZW50LgorKyMgSWYgaXQgaXMgaW52YWxpZCwgd2UgcHJp bnQgYW4gZXJyb3IgbWVzc2FnZSBvbiBzdGRlcnIgYW5kIGV4aXQgd2l0aCBjb2RlIDEuCisrIyBP dGhlcndpc2UsIHdlIHByaW50IHRoZSBjYW5vbmljYWwgY29uZmlnIHR5cGUgb24gc3Rkb3V0IGFu ZCBzdWNjZWVkLgorKworKyMgVGhpcyBmaWxlIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBzYW1lIGZv ciBhbGwgR05VIHBhY2thZ2VzCisrIyBhbmQgcmVjb2duaXplIGFsbCB0aGUgQ1BVIHR5cGVzLCBz eXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKKysjIHRoYXQgYXJlIG1lYW5pbmdmdWwgd2l0aCAqYW55 KiBHTlUgc29mdHdhcmUuCisrIyBFYWNoIHBhY2thZ2UgaXMgcmVzcG9uc2libGUgZm9yIHJlcG9y dGluZyB3aGljaCB2YWxpZCBjb25maWd1cmF0aW9ucworKyMgaXQgZG9lcyBub3Qgc3VwcG9ydC4g IFRoZSB1c2VyIHNob3VsZCBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoCisrIyBhIGZhaWx1cmUgdG8g c3VwcG9ydCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZnJvbSBhIG1lYW5pbmdsZXNzCisrIyBjb25m aWd1cmF0aW9uLgorKworKyMgVGhlIGdvYWwgb2YgdGhpcyBmaWxlIGlzIHRvIG1hcCBhbGwgdGhl IHZhcmlvdXMgdmFyaWF0aW9ucyBvZiBhIGdpdmVuCisrIyBtYWNoaW5lIHNwZWNpZmljYXRpb24g aW50byBhIHNpbmdsZSBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3JtOgorKyMJQ1BVX1RZUEUtTUFO VUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0KKysjIG9yIGluIHNvbWUgY2FzZXMsIHRoZSBuZXdl ciBmb3VyLXBhcnQgZm9ybToKKysjCUNQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFU SU5HX1NZU1RFTQorKyMgSXQgaXMgd3JvbmcgdG8gZWNobyBhbnkgb3RoZXIgdHlwZSBvZiBzcGVj aWZpY2F0aW9uLgorKworK21lPWBlY2hvICIkMCIgfCBzZWQgLWUgJ3MsLiovLCwnYAorKworK3Vz YWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05dIENQVS1NRlItT1BTWVMKKysgICAgICAgJDAgW09Q VElPTl0gQUxJQVMKKysKKytDYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIG5hbWUuCisrCisr T3BlcmF0aW9uIG1vZGVzOgorKyAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHRoaXMgaGVscCwg dGhlbiBleGl0CisrICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1vZGlm aWNhdGlvbiwgdGhlbiBleGl0CisrICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lvbiBu dW1iZXIsIHRoZW4gZXhpdAorKworK1JlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25maWct cGF0Y2hlc0BnbnUub3JnPi4iCisrCisrdmVyc2lvbj0iXAorK0dOVSBjb25maWcuc3ViICgkdGlt ZXN0YW1wKQorKworK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworK1RoaXMg aXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4g IFRoZXJlIGlzIE5PCisrd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorKworK2hlbHA9IgorK1RyeSBcYCRt ZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKysKKysjIFBhcnNlIGNvbW1hbmQgbGlu ZQorK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworKyAgY2FzZSAkMSBpbgorKyAgICAtLXRpbWUt c3RhbXAgfCAtLXRpbWUqIHwgLXQgKQorKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQg OzsKKysgICAgLS12ZXJzaW9uIHwgLXYgKQorKyAgICAgICBlY2hvICIkdmVyc2lvbiIgOyBleGl0 IDs7CisrICAgIC0taGVscCB8IC0taCogfCAtaCApCisrICAgICAgIGVjaG8gIiR1c2FnZSI7IGV4 aXQgOzsKKysgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCisrICAgICAgIHNo aWZ0OyBicmVhayA7OworKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCisrICAgICAgIGJy ZWFrIDs7CisrICAgIC0qICkKKysgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAkMSRo ZWxwIgorKyAgICAgICBleGl0IDEgOzsKKysKKysgICAgKmxvY2FsKikKKysgICAgICAgIyBGaXJz dCBwYXNzIHRocm91Z2ggYW55IGxvY2FsIG1hY2hpbmUgdHlwZXMuCisrICAgICAgIGVjaG8gJDEK KysgICAgICAgZXhpdCA7OworKworKyAgICAqICkKKysgICAgICAgYnJlYWsgOzsKKysgIGVzYWMK Kytkb25lCisrCisrY2FzZSAkIyBpbgorKyAwKSBlY2hvICIkbWU6IG1pc3NpbmcgYXJndW1lbnQk aGVscCIgPiYyCisrICAgIGV4aXQgMTs7CisrIDEpIDs7CisrICopIGVjaG8gIiRtZTogdG9vIG1h bnkgYXJndW1lbnRzJGhlbHAiID4mMgorKyAgICBleGl0IDE7OworK2VzYWMKKysKKysjIFNlcGFy YXRlIHdoYXQgdGhlIHVzZXIgZ2F2ZSBpbnRvIENQVS1DT01QQU5ZIGFuZCBPUyBvciBLRVJORUwt T1MgKGlmIGFueSkuCisrIyBIZXJlIHdlIG11c3QgcmVjb2duaXplIGFsbCB0aGUgdmFsaWQgS0VS TkVMLU9TIGNvbWJpbmF0aW9ucy4KKyttYXliZV9vcz1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwp LVwoW14tXSotW14tXSpcKSQvXDIvJ2AKKytjYXNlICRtYXliZV9vcyBpbgorKyAgbnRvLXFueCog fCBsaW51eC1nbnUqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1uZXdsaWIqIHwgbGludXgtdWNs aWJjKiB8IFwKKysgIHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgtZ251KiB8IGtmcmVlYnNkKi1n bnUqIHwga25ldGJzZCotZ251KiB8IG5ldGJzZCotZ251KiB8IFwKKysgIHN0b3JtLWNoYW9zKiB8 IG9zMi1lbXgqIHwgcnRtay1ub3ZhKikKKysgICAgb3M9LSRtYXliZV9vcworKyAgICBiYXNpY19t YWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAor KyAgICA7OworKyAgKikKKysgICAgYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy8tW14t XSokLy8nYAorKyAgICBpZiBbICRiYXNpY19tYWNoaW5lICE9ICQxIF0KKysgICAgdGhlbiBvcz1g ZWNobyAkMSB8IHNlZCAncy8uKi0vLS8nYAorKyAgICBlbHNlIG9zPTsgZmkKKysgICAgOzsKKytl c2FjCisrCisrIyMjIExldCdzIHJlY29nbml6ZSBjb21tb24gbWFjaGluZXMgYXMgbm90IGJlaW5n IG9wZXJhdGluZyBzeXN0ZW1zIHNvCisrIyMjIHRoYXQgdGhpbmdzIGxpa2UgY29uZmlnLnN1YiBk ZWNzdGF0aW9uLTMxMDAgd29yay4gIFdlIGFsc28KKysjIyMgcmVjb2duaXplIHNvbWUgbWFudWZh Y3R1cmVycyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMsIHNvIHdlCisrIyMjIGNhbiBw cm92aWRlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMgYmVsb3cuCisrY2FzZSAkb3MgaW4KKysJ LXN1bipvcyopCisrCQkjIFByZXZlbnQgZm9sbG93aW5nIGNsYXVzZSBmcm9tIGhhbmRsaW5nIHRo aXMgaW52YWxpZCBpbnB1dC4KKysJCTs7CisrCS1kZWMqIHwgLW1pcHMqIHwgLXNlcXVlbnQqIHwg LWVuY29yZSogfCAtcGM1MzIqIHwgLXNnaSogfCAtc29ueSogfCBcCisrCS1hdHQqIHwgLTczMDAq IHwgLTMzMDAqIHwgLWRlbHRhKiB8IC1tb3Rvcm9sYSogfCAtc3VuWzIzNF0qIHwgXAorKwktdW5p Y29tKiB8IC1pYm0qIHwgLW5leHQgfCAtaHAgfCAtaXNpKiB8IC1hcG9sbG8gfCAtYWx0b3MqIHwg XAorKwktY29udmVyZ2VudCogfCAtbmNyKiB8IC1uZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAw KiB8IC1oaXRhY2hpKiB8XAorKwktY1sxMjNdKiB8IC1jb252ZXgqIHwgLXN1biB8IC1jcmRzIHwg LW9tcm9uKiB8IC1kZyB8IC11bHRyYSB8IC10dGkqIHwgXAorKwktaGFycmlzIHwgLWRvbHBoaW4g fCAtaGlnaGxldmVsIHwgLWdvdWxkIHwgLWNibSB8IC1ucyB8IC1tYXNzY29tcCB8IFwKKysJLWFw cGxlIHwgLWF4aXMgfCAta251dGggfCAtY3JheSkKKysJCW9zPQorKwkJYmFzaWNfbWFjaGluZT0k MQorKwkJOzsKKysJLXNpbSB8IC1jaXNjbyB8IC1va2kgfCAtd2VjIHwgLXdpbmJvbmQpCisrCQlv cz0KKysJCWJhc2ljX21hY2hpbmU9JDEKKysJCTs7CisrCS1zY291dCkKKysJCTs7CisrCS13cnMp CisrCQlvcz0tdnh3b3JrcworKwkJYmFzaWNfbWFjaGluZT0kMQorKwkJOzsKKysJLWNob3J1c29z KikKKysJCW9zPS1jaG9ydXNvcworKwkJYmFzaWNfbWFjaGluZT0kMQorKwkJOzsKKysgCS1jaG9y dXNyZGIpCisrIAkJb3M9LWNob3J1c3JkYgorKwkJYmFzaWNfbWFjaGluZT0kMQorKyAJCTs7Cisr CS1oaXV4KikKKysJCW9zPS1oaXV4d2UyCisrCQk7OworKwktc2NvNikKKysJCW9zPS1zY281djYK KysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJ CTs7CisrCS1zY281KQorKwkJb3M9LXNjbzMuMnY1CisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQx IHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktc2NvNCkKKysJCW9zPS1zY28z LjJ2NAorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8n YAorKwkJOzsKKysJLXNjbzMuMi5bNC05XSopCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mv c2NvMy4yLi9zY28zLjJ2LydgCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdz Lzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktc2NvMy4ydls0LTldKikKKysJCSMgRG9uJ3QgZm9y Z2V0IHZlcnNpb24gaWYgaXQgaXMgMy4ydjQgb3IgbmV3ZXIuCisrCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktc2NvNXY2KikKKysJ CSMgRG9uJ3QgZm9yZ2V0IHZlcnNpb24gaWYgaXQgaXMgMy4ydjQgb3IgbmV3ZXIuCisrCQliYXNp Y19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwkt c2NvKikKKysJCW9zPS1zY28zLjJ2MgorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAt ZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLXVkayopCisrCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktaXNjKQorKwkJb3M9 LWlzYzIuMgorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1w Yy8nYAorKwkJOzsKKysJLWNsaXgqKQorKwkJYmFzaWNfbWFjaGluZT1jbGlwcGVyLWludGVyZ3Jh cGgKKysJCTs7CisrCS1pc2MqKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAn cy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLWx5bngqKQorKwkJb3M9LWx5bnhvcworKwkJOzsK KysJLXB0eCopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2 LXNlcXVlbnQvJ2AKKysJCTs7CisrCS13aW5kb3dzbnQqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2Vk IC1lICdzL3dpbmRvd3NudC93aW5udC8nYAorKwkJOzsKKysJLXBzb3MqKQorKwkJb3M9LXBzb3MK KysJCTs7CisrCS1taW50IHwgLW1pbnRbMC05XSopCisrCQliYXNpY19tYWNoaW5lPW02OGstYXRh cmkKKysJCW9zPS1taW50CisrCQk7OworK2VzYWMKKysKKysjIERlY29kZSBhbGlhc2VzIGZvciBj ZXJ0YWluIENQVS1DT01QQU5ZIGNvbWJpbmF0aW9ucy4KKytjYXNlICRiYXNpY19tYWNoaW5lIGlu CisrCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUu CisrCSMgU29tZSBhcmUgb21pdHRlZCBoZXJlIGJlY2F1c2UgdGhleSBoYXZlIHNwZWNpYWwgbWVh bmluZ3MgYmVsb3cuCisrCTE3NTBhIHwgNTgwIFwKKysJfCBhMjlrIFwKKysJfCBhbHBoYSB8IGFs cGhhZXZbNC04XSB8IGFscGhhZXY1NiB8IGFscGhhZXY2Wzc4XSB8IGFscGhhcGNhNVs2N10gXAor Kwl8IGFscGhhNjQgfCBhbHBoYTY0ZXZbNC04XSB8IGFscGhhNjRldjU2IHwgYWxwaGE2NGV2Nls3 OF0gfCBhbHBoYTY0cGNhNVs2N10gXAorKwl8IGFtMzNfMi4wIFwKKysJfCBhcmMgfCBhcm0gfCBh cm1bYmxdZSB8IGFybWVbbGJdIHwgYXJtdlsyMzQ1XSB8IGFybXZbMzQ1XVtsYl0gfCBhdnIgfCBh dnIzMiBcCisrCXwgYmZpbiBcCisrCXwgYzR4IHwgY2xpcHBlciBcCisrCXwgZDEwdiB8IGQzMHYg fCBkbHggfCBkc3AxNnh4IFwKKysJfCBmaWRvIHwgZnIzMCB8IGZydiBcCisrCXwgaDgzMDAgfCBo ODUwMCB8IGhwcGEgfCBocHBhMS5bMDFdIHwgaHBwYTIuMCB8IGhwcGEyLjBbbnddIHwgaHBwYTY0 IFwKKysJfCBpMzcwIHwgaTg2MCB8IGk5NjAgfCBpYTY0IFwKKysJfCBpcDJrIHwgaXEyMDAwIFwK KysJfCBtMzJjIHwgbTMyciB8IG0zMnJsZSB8IG02ODAwMCB8IG02OGsgfCBtODhrIFwKKysJfCBt YXhxIHwgbWIgfCBtaWNyb2JsYXplIHwgbWNvcmUgfCBtZXAgfCBtZXRhZyBcCisrCXwgbWlwcyB8 IG1pcHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1pcHNsZSBcCisrCXwgbWlwczE2IFwKKysJfCBt aXBzNjQgfCBtaXBzNjRlbCBcCisrCXwgbWlwczY0b2N0ZW9uIHwgbWlwczY0b2N0ZW9uZWwgXAor Kwl8IG1pcHM2NG9yaW9uIHwgbWlwczY0b3Jpb25lbCBcCisrCXwgbWlwczY0cjU5MDAgfCBtaXBz NjRyNTkwMGVsIFwKKysJfCBtaXBzNjR2ciB8IG1pcHM2NHZyZWwgXAorKwl8IG1pcHM2NHZyNDEw MCB8IG1pcHM2NHZyNDEwMGVsIFwKKysJfCBtaXBzNjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBc CisrCXwgbWlwczY0dnI1MDAwIHwgbWlwczY0dnI1MDAwZWwgXAorKwl8IG1pcHM2NHZyNTkwMCB8 IG1pcHM2NHZyNTkwMGVsIFwKKysJfCBtaXBzaXNhMzIgfCBtaXBzaXNhMzJlbCBcCisrCXwgbWlw c2lzYTMycjIgfCBtaXBzaXNhMzJyMmVsIFwKKysJfCBtaXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBc CisrCXwgbWlwc2lzYTY0cjIgfCBtaXBzaXNhNjRyMmVsIFwKKysJfCBtaXBzaXNhNjRzYjEgfCBt aXBzaXNhNjRzYjFlbCBcCisrCXwgbWlwc2lzYTY0c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwK KysJfCBtaXBzdHgzOSB8IG1pcHN0eDM5ZWwgXAorKwl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKKysJ fCBtdCBcCisrCXwgbXNwNDMwIFwKKysJfCBuaW9zIHwgbmlvczIgXAorKwl8IG5zMTZrIHwgbnMz MmsgXAorKwl8IG9yMzIgXAorKwl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCisrCXwgcG93 ZXJwYyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJwY2xlIHwgcHBjYmUgXAorKwl8 IHB5cmFtaWQgXAorKwl8IHNjb3JlIFwKKysJfCBzaCB8IHNoWzEyMzRdIHwgc2hbMjRdYSB8IHNo WzIzXWUgfCBzaFszNF1lYiB8IHNoZWIgfCBzaGJlIHwgc2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNl bGUgXAorKwl8IHNoNjQgfCBzaDY0bGUgXAorKwl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjNjRi IHwgc3BhcmM2NHYgfCBzcGFyYzg2eCB8IHNwYXJjbGV0IHwgc3BhcmNsaXRlIFwKKysJfCBzcGFy Y3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYgXAorKwl8IHNwdSB8IHN0cm9uZ2Fy bSBcCisrCXwgdGFob2UgfCB0aHVtYiB8IHRpYzR4IHwgdGljODAgfCB0cm9uIFwKKysJfCB2ODUw IHwgdjg1MGUgXAorKwl8IHdlMzJrIFwKKysJfCB4ODYgfCB4YzE2eCB8IHhzY2FsZSB8IHhzY2Fs ZWVbYmxdIHwgeHN0b3JteTE2IHwgeHRlbnNhIFwKKysJfCB6OGsgfCB6ODApCisrCQliYXNpY19t YWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKysJCTs7CisrCW02ODExIHwgbTY4aGMxMSB8 IG02ODEyIHwgbTY4aGMxMikKKysJCSMgTW90b3JvbGEgNjhIQzExLzEyLgorKwkJYmFzaWNfbWFj aGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCisrCQlvcz0tbm9uZQorKwkJOzsKKysJbTg4MTEw IHwgbTY4MFsxMjM0Nl0wIHwgbTY4Mz8yIHwgbTY4MzYwIHwgbTUyMDAgfCB2NzAgfCB3NjUgfCB6 OGspCisrCQk7OworKwltczEpCisrCQliYXNpY19tYWNoaW5lPW10LXVua25vd24KKysJCTs7Cisr CisrCSMgV2UgdXNlIGBwYycgcmF0aGVyIHRoYW4gYHVua25vd24nCisrCSMgYmVjYXVzZSAoMSkg dGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAorKwkjICgyKSB0aGUgd29yZCAidW5r bm93biIgdGVuZHMgdG8gY29uZnVzZSBiZWdpbm5pbmcgdXNlcnMuCisrCWkqODYgfCB4ODZfNjQp CisrCSAgYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS1wYworKwkgIDs7CisrCSMgT2JqZWN0 IGlmIG1vcmUgdGhhbiBvbmUgY29tcGFueSBuYW1lIHdvcmQuCisrCSotKi0qKQorKwkJZWNobyBJ bnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVcJyBu b3QgcmVjb2duaXplZCAxPiYyCisrCQlleGl0IDEKKysJCTs7CisrCSMgUmVjb2duaXplIHRoZSBi YXNpYyBDUFUgdHlwZXMgd2l0aCBjb21wYW55IG5hbWUuCisrCTU4MC0qIFwKKysJfCBhMjlrLSog XAorKwl8IGFscGhhLSogfCBhbHBoYWV2WzQtOF0tKiB8IGFscGhhZXY1Ni0qIHwgYWxwaGFldjZb NzhdLSogXAorKwl8IGFscGhhNjQtKiB8IGFscGhhNjRldls0LThdLSogfCBhbHBoYTY0ZXY1Ni0q IHwgYWxwaGE2NGV2Nls3OF0tKiBcCisrCXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVb NjddLSogfCBhcmMtKiBcCisrCXwgYXJtLSogIHwgYXJtYmUtKiB8IGFybWxlLSogfCBhcm1lYi0q IHwgYXJtdiotKiBcCisrCXwgYXZyLSogfCBhdnIzMi0qIFwKKysJfCBiZmluLSogfCBiczIwMDAt KiBcCisrCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwgYzR4LSogfCBjNTR4LSogfCBj NTV4LSogfCBjNngtKiBcCisrCXwgY2xpcHBlci0qIHwgY3JheW52LSogfCBjeWRyYS0qIFwKKysJ fCBkMTB2LSogfCBkMzB2LSogfCBkbHgtKiBcCisrCXwgZWx4c2ktKiBcCisrCXwgZjMwWzAxXS0q IHwgZjcwMC0qIHwgZmlkby0qIHwgZnIzMC0qIHwgZnJ2LSogfCBmeDgwLSogXAorKwl8IGg4MzAw LSogfCBoODUwMC0qIFwKKysJfCBocHBhLSogfCBocHBhMS5bMDFdLSogfCBocHBhMi4wLSogfCBo cHBhMi4wW253XS0qIHwgaHBwYTY0LSogXAorKwl8IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAtKiB8 IGlhNjQtKiBcCisrCXwgaXAyay0qIHwgaXEyMDAwLSogXAorKwl8IG0zMmMtKiB8IG0zMnItKiB8 IG0zMnJsZS0qIFwKKysJfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwg bTY4Mz8yLSogfCBtNjhrLSogXAorKwl8IG04ODExMC0qIHwgbTg4ay0qIHwgbWF4cS0qIHwgbWNv cmUtKiB8IG1ldGFnLSogXAorKwl8IG1pcHMtKiB8IG1pcHNiZS0qIHwgbWlwc2ViLSogfCBtaXBz ZWwtKiB8IG1pcHNsZS0qIFwKKysJfCBtaXBzMTYtKiBcCisrCXwgbWlwczY0LSogfCBtaXBzNjRl bC0qIFwKKysJfCBtaXBzNjRvY3Rlb24tKiB8IG1pcHM2NG9jdGVvbmVsLSogXAorKwl8IG1pcHM2 NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAorKwl8IG1pcHM2NHI1OTAwLSogfCBtaXBzNjRy NTkwMGVsLSogXAorKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2cmVsLSogXAorKwl8IG1pcHM2NHZy NDEwMC0qIHwgbWlwczY0dnI0MTAwZWwtKiBcCisrCXwgbWlwczY0dnI0MzAwLSogfCBtaXBzNjR2 cjQzMDBlbC0qIFwKKysJfCBtaXBzNjR2cjUwMDAtKiB8IG1pcHM2NHZyNTAwMGVsLSogXAorKwl8 IG1pcHM2NHZyNTkwMC0qIHwgbWlwczY0dnI1OTAwZWwtKiBcCisrCXwgbWlwc2lzYTMyLSogfCBt aXBzaXNhMzJlbC0qIFwKKysJfCBtaXBzaXNhMzJyMi0qIHwgbWlwc2lzYTMycjJlbC0qIFwKKysJ fCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAorKwl8IG1pcHNpc2E2NHIyLSogfCBtaXBz aXNhNjRyMmVsLSogXAorKwl8IG1pcHNpc2E2NHNiMS0qIHwgbWlwc2lzYTY0c2IxZWwtKiBcCisr CXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCisrCXwgbWlwc3R4Mzkt KiB8IG1pcHN0eDM5ZWwtKiBcCisrCXwgbW1peC0qIFwKKysJfCBtdC0qIFwKKysJfCBtc3A0MzAt KiBcCisrCXwgbmlvcy0qIHwgbmlvczItKiBcCisrCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2ay0q IHwgbnMzMmstKiBcCisrCXwgb3Jpb24tKiBcCisrCXwgcGRwMTAtKiB8IHBkcDExLSogfCBwai0q IHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCisrCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0LSog fCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNiZS0qIFwKKysJfCBweXJhbWlkLSog XAorKwl8IHJvbXAtKiB8IHJzNjAwMC0qIFwKKysJfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzI0 XWEtKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAorKwl8IHNo bGUtKiB8IHNoWzEyMzRdbGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAorKwl8 IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJjODZ4 LSogfCBzcGFyY2xldC0qIFwKKysJfCBzcGFyY2xpdGUtKiBcCisrCXwgc3BhcmN2OC0qIHwgc3Bh cmN2OS0qIHwgc3BhcmN2OWItKiB8IHNwYXJjdjl2LSogfCBzdHJvbmdhcm0tKiB8IHN2MS0qIHwg c3g/LSogXAorKwl8IHRhaG9lLSogfCB0aHVtYi0qIFwKKysJfCB0aWMzMC0qIHwgdGljNHgtKiB8 IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiB8IHRpbGUtKiBcCisrCXwg dHJvbi0qIFwKKysJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAorKwl8IHdlMzJrLSogXAor Kwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhz Y2FsZWVbYmxdLSogXAorKwl8IHhzdG9ybXkxNi0qIHwgeHRlbnNhKi0qIFwKKysJfCB5bXAtKiBc CisrCXwgejhrLSogfCB6ODAtKikKKysJCTs7CisrCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUg dHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUsIHdpdGggZ2xvYiBtYXRjaC4KKysJeHRlbnNhKikK KysJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgorKwkJOzsKKysJIyBSZWNv Z25pemUgdGhlIHZhcmlvdXMgbWFjaGluZSBuYW1lcyBhbmQgYWxpYXNlcyB3aGljaCBzdGFuZAor KwkjIGZvciBhIENQVSB0eXBlIGFuZCBhIGNvbXBhbnkgYW5kIHNvbWV0aW1lcyBldmVuIGFuIE9T LgorKwkzODZic2QpCisrCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgorKwkJb3M9LWJzZAor KwkJOzsKKysJM2IxIHwgNzMwMCB8IDczMDAtYXR0IHwgYXR0LTczMDAgfCBwYzczMDAgfCBzYWZh cmkgfCB1bml4cGMpCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1hdHQKKysJCTs7CisrCTNiKikK KysJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0CisrCQk7OworKwlhMjlraGlmKQorKwkJYmFzaWNf bWFjaGluZT1hMjlrLWFtZAorKwkJb3M9LXVkaQorKwkJOzsKKysgICAgCWFiYWN1cykKKysJCWJh c2ljX21hY2hpbmU9YWJhY3VzLXVua25vd24KKysJCTs7CisrCWFkb2JlNjhrKQorKwkJYmFzaWNf bWFjaGluZT1tNjgwMTAtYWRvYmUKKysJCW9zPS1zY291dAorKwkJOzsKKysJYWxsaWFudCB8IGZ4 ODApCisrCQliYXNpY19tYWNoaW5lPWZ4ODAtYWxsaWFudAorKwkJOzsKKysJYWx0b3MgfCBhbHRv czMwNjgpCisrCQliYXNpY19tYWNoaW5lPW02OGstYWx0b3MKKysJCTs7CisrCWFtMjlrKQorKwkJ YmFzaWNfbWFjaGluZT1hMjlrLW5vbmUKKysJCW9zPS1ic2QKKysJCTs7CisrCWFtZDY0KQorKwkJ YmFzaWNfbWFjaGluZT14ODZfNjQtcGMKKysJCTs7CisrCWFtZDY0LSopCisrCQliYXNpY19tYWNo aW5lPXg4Nl82NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJ OzsKKysJYW1kYWhsKQorKwkJYmFzaWNfbWFjaGluZT01ODAtYW1kYWhsCisrCQlvcz0tc3lzdgor KwkJOzsKKysJYW1pZ2EgfCBhbWlnYS0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24K KysJCTs7CisrCWFtaWdhb3MgfCBhbWlnYWRvcykKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtu b3duCisrCQlvcz0tYW1pZ2FvcworKwkJOzsKKysJYW1pZ2F1bml4IHwgYW1peCkKKysJCWJhc2lj X21hY2hpbmU9bTY4ay11bmtub3duCisrCQlvcz0tc3lzdjQKKysJCTs7CisrCWFwb2xsbzY4KQor KwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbworKwkJb3M9LXN5c3YKKysJCTs7CisrCWFwb2xs bzY4YnNkKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbworKwkJb3M9LWJzZAorKwkJOzsK KysJYXV4KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCisrCQlvcz0tYXV4CisrCQk7Owor KwliYWxhbmNlKQorKwkJYmFzaWNfbWFjaGluZT1uczMyay1zZXF1ZW50CisrCQlvcz0tZHluaXgK KysJCTs7CisrCWJsYWNrZmluKQorKwkJYmFzaWNfbWFjaGluZT1iZmluLXVua25vd24KKysJCW9z PS1saW51eAorKwkJOzsKKysJYmxhY2tmaW4tKikKKysJCWJhc2ljX21hY2hpbmU9YmZpbi1gZWNo byAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJb3M9LWxpbnV4CisrCQk7 OworKwljOTApCisrCQliYXNpY19tYWNoaW5lPWM5MC1jcmF5CisrCQlvcz0tdW5pY29zCisrCQk7 OworKyAgICAgICAgY2VnY2MpCisrCQliYXNpY19tYWNoaW5lPWFybS11bmtub3duCisrCQlvcz0t Y2VnY2MKKysJCTs7CisrCWNvbnZleC1jMSkKKysJCWJhc2ljX21hY2hpbmU9YzEtY29udmV4Cisr CQlvcz0tYnNkCisrCQk7OworKwljb252ZXgtYzIpCisrCQliYXNpY19tYWNoaW5lPWMyLWNvbnZl eAorKwkJb3M9LWJzZAorKwkJOzsKKysJY29udmV4LWMzMikKKysJCWJhc2ljX21hY2hpbmU9YzMy LWNvbnZleAorKwkJb3M9LWJzZAorKwkJOzsKKysJY29udmV4LWMzNCkKKysJCWJhc2ljX21hY2hp bmU9YzM0LWNvbnZleAorKwkJb3M9LWJzZAorKwkJOzsKKysJY29udmV4LWMzOCkKKysJCWJhc2lj X21hY2hpbmU9YzM4LWNvbnZleAorKwkJb3M9LWJzZAorKwkJOzsKKysJY3JheSB8IGo5MCkKKysJ CWJhc2ljX21hY2hpbmU9ajkwLWNyYXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCWNyYXludikK KysJCWJhc2ljX21hY2hpbmU9Y3JheW52LWNyYXkKKysJCW9zPS11bmljb3NtcAorKwkJOzsKKysJ Y3IxNikKKysJCWJhc2ljX21hY2hpbmU9Y3IxNi11bmtub3duCisrCQlvcz0tZWxmCisrCQk7Owor KwljcmRzIHwgdW5vcykKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1jcmRzCisrCQk7OworKwljcmlz djMyIHwgY3Jpc3YzMi0qIHwgZXRyYXhmcyopCisrCQliYXNpY19tYWNoaW5lPWNyaXN2MzItYXhp cworKwkJOzsKKysJY3JpcyB8IGNyaXMtKiB8IGV0cmF4KikKKysJCWJhc2ljX21hY2hpbmU9Y3Jp cy1heGlzCisrCQk7OworKwljcngpCisrCQliYXNpY19tYWNoaW5lPWNyeC11bmtub3duCisrCQlv cz0tZWxmCisrCQk7OworKwlkYTMwIHwgZGEzMC0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWRh MzAKKysJCTs7CisrCWRlY3N0YXRpb24gfCBkZWNzdGF0aW9uLTMxMDAgfCBwbWF4IHwgcG1heC0q IHwgcG1pbiB8IGRlYzMxMDAgfCBkZWNzdGF0bikKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1kZWMK KysJCTs7CisrCWRlY3N5c3RlbTEwKiB8IGRlYzEwKikKKysJCWJhc2ljX21hY2hpbmU9cGRwMTAt ZGVjCisrCQlvcz0tdG9wczEwCisrCQk7OworKwlkZWNzeXN0ZW0yMCogfCBkZWMyMCopCisrCQli YXNpY19tYWNoaW5lPXBkcDEwLWRlYworKwkJb3M9LXRvcHMyMAorKwkJOzsKKysJZGVsdGEgfCAz MzAwIHwgbW90b3JvbGEtMzMwMCB8IG1vdG9yb2xhLWRlbHRhIFwKKysJICAgICAgfCAzMzAwLW1v dG9yb2xhIHwgZGVsdGEtbW90b3JvbGEpCisrCQliYXNpY19tYWNoaW5lPW02OGstbW90b3JvbGEK KysJCTs7CisrCWRlbHRhODgpCisrCQliYXNpY19tYWNoaW5lPW04OGstbW90b3JvbGEKKysJCW9z PS1zeXN2MworKwkJOzsKKysJZGljb3MpCisrCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKysJCW9z PS1kaWNvcworKwkJOzsKKysJZGpncHApCisrCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKKysJCW9z PS1tc2Rvc2RqZ3BwCisrCQk7OworKwlkcHgyMCB8IGRweDIwLSopCisrCQliYXNpY19tYWNoaW5l PXJzNjAwMC1idWxsCisrCQlvcz0tYm9zeAorKwkJOzsKKysJZHB4MiogfCBkcHgyKi1idWxsKQor KwkJYmFzaWNfbWFjaGluZT1tNjhrLWJ1bGwKKysJCW9zPS1zeXN2MworKwkJOzsKKysJZWJtb24y OWspCisrCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCisrCQlvcz0tZWJtb24KKysJCTs7CisrCWVs eHNpKQorKwkJYmFzaWNfbWFjaGluZT1lbHhzaS1lbHhzaQorKwkJb3M9LWJzZAorKwkJOzsKKysJ ZW5jb3JlIHwgdW1heCB8IG1tYXgpCisrCQliYXNpY19tYWNoaW5lPW5zMzJrLWVuY29yZQorKwkJ OzsKKysJZXMxODAwIHwgT1NFNjhrIHwgb3NlNjhrIHwgb3NlIHwgT1NFKQorKwkJYmFzaWNfbWFj aGluZT1tNjhrLWVyaWNzc29uCisrCQlvcz0tb3NlCisrCQk7OworKwlmeDI4MDApCisrCQliYXNp Y19tYWNoaW5lPWk4NjAtYWxsaWFudAorKwkJOzsKKysJZ2VuaXgpCisrCQliYXNpY19tYWNoaW5l PW5zMzJrLW5zCisrCQk7OworKwlnbWljcm8pCisrCQliYXNpY19tYWNoaW5lPXRyb24tZ21pY3Jv CisrCQlvcz0tc3lzdgorKwkJOzsKKysJZ28zMikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwor KwkJb3M9LWdvMzIKKysJCTs7CisrCWgzMDUwciogfCBoaXV4KikKKysJCWJhc2ljX21hY2hpbmU9 aHBwYTEuMS1oaXRhY2hpCisrCQlvcz0taGl1eHdlMgorKwkJOzsKKysJaDgzMDBobXMpCisrCQli YXNpY19tYWNoaW5lPWg4MzAwLWhpdGFjaGkKKysJCW9zPS1obXMKKysJCTs7CisrCWg4MzAweHJh eSkKKysJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQorKwkJb3M9LXhyYXkKKysJCTs7Cisr CWg4NTAwaG1zKQorKwkJYmFzaWNfbWFjaGluZT1oODUwMC1oaXRhY2hpCisrCQlvcz0taG1zCisr CQk7OworKwloYXJyaXMpCisrCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCisrCQlvcz0tc3lz djMKKysJCTs7CisrCWhwMzAwLSopCisrCQliYXNpY19tYWNoaW5lPW02OGstaHAKKysJCTs7Cisr CWhwMzAwYnNkKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisrCQlvcz0tYnNkCisrCQk7Owor KwlocDMwMGhwdXgpCisrCQliYXNpY19tYWNoaW5lPW02OGstaHAKKysJCW9zPS1ocHV4CisrCQk7 OworKwlocDNrOVswLTldWzAtOV0gfCBocDlbMC05XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1o cHBhMS4wLWhwCisrCQk7OworKwlocDlrMlswLTldWzAtOV0gfCBocDlrMzFbMC05XSkKKysJCWJh c2ljX21hY2hpbmU9bTY4MDAwLWhwCisrCQk7OworKwlocDlrM1syLTldWzAtOV0pCisrCQliYXNp Y19tYWNoaW5lPW02OGstaHAKKysJCTs7CisrCWhwOWs2WzAtOV1bMC05XSB8IGhwNlswLTldWzAt OV0pCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKKysJCTs7CisrCWhwOWs3WzAtNzldWzAt OV0gfCBocDdbMC03OV1bMC05XSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorKwkJOzsK KysJaHA5azc4WzAtOV0gfCBocDc4WzAtOV0pCisrCQkjIEZJWE1FOiByZWFsbHkgaHBwYTIuMC1o cAorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQk7OworKwlocDlrOFs2N10xIHwgaHA4 WzY3XTEgfCBocDlrODBbMjRdIHwgaHA4MFsyNF0gfCBocDlrOFs3OF05IHwgaHA4Wzc4XTkgfCBo cDlrODkzIHwgaHA4OTMpCisrCQkjIEZJWE1FOiByZWFsbHkgaHBwYTIuMC1ocAorKwkJYmFzaWNf bWFjaGluZT1ocHBhMS4xLWhwCisrCQk7OworKwlocDlrOFswLTldWzEzNjc5XSB8IGhwOFswLTld WzEzNjc5XSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorKwkJOzsKKysJaHA5azhbMC05 XVswLTldIHwgaHA4WzAtOV1bMC05XSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAorKwkJ OzsKKysJaHBwYS1uZXh0KQorKwkJb3M9LW5leHRzdGVwMworKwkJOzsKKysJaHBwYW9zZikKKysJ CWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorKwkJb3M9LW9zZgorKwkJOzsKKysJaHBwcm8pCisr CQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKysJCW9zPS1wcm9lbGYKKysJCTs7CisrCWkzNzAt aWJtKiB8IGlibSopCisrCQliYXNpY19tYWNoaW5lPWkzNzAtaWJtCisrCQk7OworKyMgSSdtIG5v dCBzdXJlIHdoYXQgIlN5c3YzMiIgbWVhbnMuICBTaG91bGQgdGhpcyBiZSBzeXN2My4yPworKwlp Kjg2djMyKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBj LydgCisrCQlvcz0tc3lzdjMyCisrCQk7OworKwlpKjg2djQqKQorKwkJYmFzaWNfbWFjaGluZT1g ZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCisrCQlvcz0tc3lzdjQKKysJCTs7Cisr CWkqODZ2KQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBj LydgCisrCQlvcz0tc3lzdgorKwkJOzsKKysJaSo4NnNvbDIpCisrCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9zPS1zb2xhcmlzMgorKwkJOzsK KysJaTM4Nm1hY2gpCisrCQliYXNpY19tYWNoaW5lPWkzODYtbWFjaAorKwkJb3M9LW1hY2gKKysJ CTs7CisrCWkzODYtdnN0YSB8IHZzdGEpCisrCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgor KwkJb3M9LXZzdGEKKysJCTs7CisrCWlyaXMgfCBpcmlzNGQpCisrCQliYXNpY19tYWNoaW5lPW1p cHMtc2dpCisrCQljYXNlICRvcyBpbgorKwkJICAgIC1pcml4KikKKysJCQk7OworKwkJICAgICop CisrCQkJb3M9LWlyaXg0CisrCQkJOzsKKysJCWVzYWMKKysJCTs7CisrCWlzaTY4IHwgaXNpKQor KwkJYmFzaWNfbWFjaGluZT1tNjhrLWlzaQorKwkJb3M9LXN5c3YKKysJCTs7CisrCW02OGtub21t dSkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCisrCQlvcz0tbGludXgKKysJCTs7Cisr CW02OGtub21tdS0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWBlY2hvICRiYXNpY19tYWNoaW5l IHwgc2VkICdzL15bXi1dKi0vLydgCisrCQlvcz0tbGludXgKKysJCTs7CisrCW04OGstb21yb24q KQorKwkJYmFzaWNfbWFjaGluZT1tODhrLW9tcm9uCisrCQk7OworKwltYWdudW0gfCBtMzIzMCkK KysJCWJhc2ljX21hY2hpbmU9bWlwcy1taXBzCisrCQlvcz0tc3lzdgorKwkJOzsKKysJbWVybGlu KQorKwkJYmFzaWNfbWFjaGluZT1uczMyay11dGVrCisrCQlvcz0tc3lzdgorKwkJOzsKKysJbWlu Z3czMikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworKwkJb3M9LW1pbmd3MzIKKysJCTs7Cisr CW1pbmd3MzJjZSkKKysJCWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24KKysJCW9zPS1taW5ndzMy Y2UKKysJCTs7CisrCW1pbmlmcmFtZSkKKysJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWNvbnZlcmdl bnQKKysJCTs7CisrCSptaW50IHwgLW1pbnRbMC05XSogfCAqTWlOVCB8ICpNaU5UWzAtOV0qKQor KwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0YXJpCisrCQlvcz0tbWludAorKwkJOzsKKysJbWlwczMq LSopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21p cHMzL21pcHM2NC8nYAorKwkJOzsKKysJbWlwczMqKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAk YmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2AtdW5rbm93bgorKwkJOzsK KysJbW9uaXRvcikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKKysJCW9zPS1jb2ZmCisr CQk7OworKwltb3JwaG9zKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KKysJCW9z PS1tb3JwaG9zCisrCQk7OworKwltc2RvcykKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworKwkJ b3M9LW1zZG9zCisrCQk7OworKwltczEtKikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2lj X21hY2hpbmUgfCBzZWQgLWUgJ3MvbXMxLS9tdC0vJ2AKKysJCTs7CisrCW12cykKKysJCWJhc2lj X21hY2hpbmU9aTM3MC1pYm0KKysJCW9zPS1tdnMKKysJCTs7CisrCW5jcjMwMDApCisrCQliYXNp Y19tYWNoaW5lPWk0ODYtbmNyCisrCQlvcz0tc3lzdjQKKysJCTs7CisrCW5ldGJzZDM4NikKKysJ CWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCisrCQlvcz0tbmV0YnNkCisrCQk7OworKwluZXR3 aW5kZXIpCisrCQliYXNpY19tYWNoaW5lPWFybXY0bC1yZWJlbAorKwkJb3M9LWxpbnV4CisrCQk7 OworKwluZXdzIHwgbmV3czcwMCB8IG5ld3M4MDAgfCBuZXdzOTAwKQorKwkJYmFzaWNfbWFjaGlu ZT1tNjhrLXNvbnkKKysJCW9zPS1uZXdzb3MKKysJCTs7CisrCW5ld3MxMDAwKQorKwkJYmFzaWNf bWFjaGluZT1tNjgwMzAtc29ueQorKwkJb3M9LW5ld3NvcworKwkJOzsKKysJbmV3cy0zNjAwIHwg cmlzYy1uZXdzKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLXNvbnkKKysJCW9zPS1uZXdzb3MKKysJ CTs7CisrCW5lY3Y3MCkKKysJCWJhc2ljX21hY2hpbmU9djcwLW5lYworKwkJb3M9LXN5c3YKKysJ CTs7CisrCW5leHQgfCBtKi1uZXh0ICkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1uZXh0CisrCQlj YXNlICRvcyBpbgorKwkJICAgIC1uZXh0c3RlcCogKQorKwkJCTs7CisrCQkgICAgLW5zMiopCisr CQkgICAgICBvcz0tbmV4dHN0ZXAyCisrCQkJOzsKKysJCSAgICAqKQorKwkJICAgICAgb3M9LW5l eHRzdGVwMworKwkJCTs7CisrCQllc2FjCisrCQk7OworKwluaDMwMDApCisrCQliYXNpY19tYWNo aW5lPW02OGstaGFycmlzCisrCQlvcz0tY3h1eAorKwkJOzsKKysJbmhbNDVdMDAwKQorKwkJYmFz aWNfbWFjaGluZT1tODhrLWhhcnJpcworKwkJb3M9LWN4dXgKKysJCTs7CisrCW5pbmR5OTYwKQor KwkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCisrCQlvcz0tbmluZHkKKysJCTs7CisrCW1vbjk2 MCkKKysJCWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAorKwkJb3M9LW1vbjk2MAorKwkJOzsKKysJ bm9uc3RvcHV4KQorKwkJYmFzaWNfbWFjaGluZT1taXBzLWNvbXBhcQorKwkJb3M9LW5vbnN0b3B1 eAorKwkJOzsKKysJbnAxKQorKwkJYmFzaWNfbWFjaGluZT1ucDEtZ291bGQKKysJCTs7CisrCW5z ci10YW5kZW0pCisrCQliYXNpY19tYWNoaW5lPW5zci10YW5kZW0KKysJCTs7CisrCW9wNTBuLSog fCBvcDYwYy0qKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQorKwkJb3M9LXByb2VsZgor KwkJOzsKKysJb3BlbnJpc2MgfCBvcGVucmlzYy0qKQorKwkJYmFzaWNfbWFjaGluZT1vcjMyLXVu a25vd24KKysJCTs7CisrCW9zNDAwKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQorKwkJ b3M9LW9zNDAwCisrCQk7OworKwlPU0U2ODAwMCB8IG9zZTY4MDAwKQorKwkJYmFzaWNfbWFjaGlu ZT1tNjgwMDAtZXJpY3Nzb24KKysJCW9zPS1vc2UKKysJCTs7CisrCW9zNjhrKQorKwkJYmFzaWNf bWFjaGluZT1tNjhrLW5vbmUKKysJCW9zPS1vczY4aworKwkJOzsKKysJcGEtaGl0YWNoaSkKKysJ CWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCisrCQlvcz0taGl1eHdlMgorKwkJOzsKKysJ cGFyYWdvbikKKysJCWJhc2ljX21hY2hpbmU9aTg2MC1pbnRlbAorKwkJb3M9LW9zZgorKwkJOzsK KysJcGFyaXNjKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhLXVua25vd24KKysJCW9zPS1saW51eAor KwkJOzsKKysJcGFyaXNjLSopCisrCQliYXNpY19tYWNoaW5lPWhwcGEtYGVjaG8gJGJhc2ljX21h Y2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCW9zPS1saW51eAorKwkJOzsKKysJcGJkKQor KwkJYmFzaWNfbWFjaGluZT1zcGFyYy10dGkKKysJCTs7CisrCXBiYikKKysJCWJhc2ljX21hY2hp bmU9bTY4ay10dGkKKysJCTs7CisrCXBjNTMyIHwgcGM1MzItKikKKysJCWJhc2ljX21hY2hpbmU9 bnMzMmstcGM1MzIKKysJCTs7CisrCXBjOTgpCisrCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJ CTs7CisrCXBjOTgtKikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1gZWNobyAkYmFzaWNfbWFjaGlu ZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcGVudGl1bSB8IHA1IHwgazUgfCBrNiB8 IG5leGdlbiB8IHZpYWMzKQorKwkJYmFzaWNfbWFjaGluZT1pNTg2LXBjCisrCQk7OworKwlwZW50 aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRobG9uIHwgYXRobG9uXyopCisrCQliYXNpY19tYWNoaW5l PWk2ODYtcGMKKysJCTs7CisrCXBlbnRpdW1paSB8IHBlbnRpdW0yIHwgcGVudGl1bWlpaSB8IHBl bnRpdW0zKQorKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisrCQk7OworKwlwZW50aXVtNCkKKysJ CWJhc2ljX21hY2hpbmU9aTc4Ni1wYworKwkJOzsKKysJcGVudGl1bS0qIHwgcDUtKiB8IGs1LSog fCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFjMy0qKQorKwkJYmFzaWNfbWFjaGluZT1pNTg2LWBlY2hv ICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwZW50aXVtcHJv LSogfCBwNi0qIHwgNng4Ni0qIHwgYXRobG9uLSopCisrCQliYXNpY19tYWNoaW5lPWk2ODYtYGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBlbnRpdW1p aS0qIHwgcGVudGl1bTItKiB8IHBlbnRpdW1paWktKiB8IHBlbnRpdW0zLSopCisrCQliYXNpY19t YWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJ CTs7CisrCXBlbnRpdW00LSopCisrCQliYXNpY19tYWNoaW5lPWk3ODYtYGVjaG8gJGJhc2ljX21h Y2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBuKQorKwkJYmFzaWNfbWFjaGlu ZT1wbi1nb3VsZAorKwkJOzsKKysJcG93ZXIpCWJhc2ljX21hY2hpbmU9cG93ZXItaWJtCisrCQk7 OworKwlwcGMpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCisrCQk7OworKwlwcGMtKikJ YmFzaWNfbWFjaGluZT1wb3dlcnBjLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1d Ki0vLydgCisrCQk7OworKwlwcGNsZSB8IHBvd2VycGNsaXR0bGUgfCBwcGMtbGUgfCBwb3dlcnBj LWxpdHRsZSkKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLXVua25vd24KKysJCTs7CisrCXBw Y2xlLSogfCBwb3dlcnBjbGl0dGxlLSopCisrCQliYXNpY19tYWNoaW5lPXBvd2VycGNsZS1gZWNo byAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcHBjNjQpCWJh c2ljX21hY2hpbmU9cG93ZXJwYzY0LXVua25vd24KKysJCTs7CisrCXBwYzY0LSopIGJhc2ljX21h Y2hpbmU9cG93ZXJwYzY0LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydg CisrCQk7OworKwlwcGM2NGxlIHwgcG93ZXJwYzY0bGl0dGxlIHwgcHBjNjQtbGUgfCBwb3dlcnBj NjQtbGl0dGxlKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS11bmtub3duCisrCQk7Owor KwlwcGM2NGxlLSogfCBwb3dlcnBjNjRsaXR0bGUtKikKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJw YzY0bGUtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7Cisr CXBzMikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1pYm0KKysJCTs7CisrCXB3MzIpCisrCQliYXNp Y19tYWNoaW5lPWk1ODYtdW5rbm93bgorKwkJb3M9LXB3MzIKKysJCTs7CisrCXJkb3MpCisrCQli YXNpY19tYWNoaW5lPWkzODYtcGMKKysJCW9zPS1yZG9zCisrCQk7OworKwlyb202OGspCisrCQli YXNpY19tYWNoaW5lPW02OGstcm9tNjhrCisrCQlvcz0tY29mZgorKwkJOzsKKysJcm1bNDZdMDAp CisrCQliYXNpY19tYWNoaW5lPW1pcHMtc2llbWVucworKwkJOzsKKysJcnRwYyB8IHJ0cGMtKikK KysJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KKysJCTs7CisrCXMzOTAgfCBzMzkwLSopCisrCQli YXNpY19tYWNoaW5lPXMzOTAtaWJtCisrCQk7OworKwlzMzkweCB8IHMzOTB4LSopCisrCQliYXNp Y19tYWNoaW5lPXMzOTB4LWlibQorKwkJOzsKKysJc2EyOTIwMCkKKysJCWJhc2ljX21hY2hpbmU9 YTI5ay1hbWQKKysJCW9zPS11ZGkKKysJCTs7CisrCXNiMSkKKysJCWJhc2ljX21hY2hpbmU9bWlw c2lzYTY0c2IxLXVua25vd24KKysJCTs7CisrCXNiMWVsKQorKwkJYmFzaWNfbWFjaGluZT1taXBz aXNhNjRzYjFlbC11bmtub3duCisrCQk7OworKwlzZGUpCisrCQliYXNpY19tYWNoaW5lPW1pcHNp c2EzMi1zZGUKKysJCW9zPS1lbGYKKysJCTs7CisrCXNlaSkKKysJCWJhc2ljX21hY2hpbmU9bWlw cy1zZWkKKysJCW9zPS1zZWl1eAorKwkJOzsKKysJc2VxdWVudCkKKysJCWJhc2ljX21hY2hpbmU9 aTM4Ni1zZXF1ZW50CisrCQk7OworKwlzaCkKKysJCWJhc2ljX21hY2hpbmU9c2gtaGl0YWNoaQor KwkJb3M9LWhtcworKwkJOzsKKysJc2g1ZWwpCisrCQliYXNpY19tYWNoaW5lPXNoNWxlLXVua25v d24KKysJCTs7CisrCXNoNjQpCisrCQliYXNpY19tYWNoaW5lPXNoNjQtdW5rbm93bgorKwkJOzsK KysJc3BhcmNsaXRlLXdycyB8IHNpbXNvLXdycykKKysJCWJhc2ljX21hY2hpbmU9c3BhcmNsaXRl LXdycworKwkJb3M9LXZ4d29ya3MKKysJCTs7CisrCXNwczcpCisrCQliYXNpY19tYWNoaW5lPW02 OGstYnVsbAorKwkJb3M9LXN5c3YyCisrCQk7OworKwlzcHVyKQorKwkJYmFzaWNfbWFjaGluZT1z cHVyLXVua25vd24KKysJCTs7CisrCXN0MjAwMCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay10YW5k ZW0KKysJCTs7CisrCXN0cmF0dXMpCisrCQliYXNpY19tYWNoaW5lPWk4NjAtc3RyYXR1cworKwkJ b3M9LXN5c3Y0CisrCQk7OworKwlzdW4yKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisr CQk7OworKwlzdW4yb3MzKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisrCQlvcz0tc3Vu b3MzCisrCQk7OworKwlzdW4yb3M0KQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisrCQlv cz0tc3Vub3M0CisrCQk7OworKwlzdW4zb3MzKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgor KwkJb3M9LXN1bm9zMworKwkJOzsKKysJc3VuM29zNCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1z dW4KKysJCW9zPS1zdW5vczQKKysJCTs7CisrCXN1bjRvczMpCisrCQliYXNpY19tYWNoaW5lPXNw YXJjLXN1bgorKwkJb3M9LXN1bm9zMworKwkJOzsKKysJc3VuNG9zNCkKKysJCWJhc2ljX21hY2hp bmU9c3BhcmMtc3VuCisrCQlvcz0tc3Vub3M0CisrCQk7OworKwlzdW40c29sMikKKysJCWJhc2lj X21hY2hpbmU9c3BhcmMtc3VuCisrCQlvcz0tc29sYXJpczIKKysJCTs7CisrCXN1bjMgfCBzdW4z LSopCisrCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisrCQk7OworKwlzdW40KQorKwkJYmFzaWNf bWFjaGluZT1zcGFyYy1zdW4KKysJCTs7CisrCXN1bjM4NiB8IHN1bjM4NmkgfCByb2FkcnVubmVy KQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXN1bgorKwkJOzsKKysJc3YxKQorKwkJYmFzaWNfbWFj aGluZT1zdjEtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJc3ltbWV0cnkpCisrCQliYXNp Y19tYWNoaW5lPWkzODYtc2VxdWVudAorKwkJb3M9LWR5bml4CisrCQk7OworKwl0M2UpCisrCQli YXNpY19tYWNoaW5lPWFscGhhZXY1LWNyYXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCXQ5MCkK KysJCWJhc2ljX21hY2hpbmU9dDkwLWNyYXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCXRpYzU0 eCB8IGM1NHgqKQorKwkJYmFzaWNfbWFjaGluZT10aWM1NHgtdW5rbm93bgorKwkJb3M9LWNvZmYK KysJCTs7CisrCXRpYzU1eCB8IGM1NXgqKQorKwkJYmFzaWNfbWFjaGluZT10aWM1NXgtdW5rbm93 bgorKwkJb3M9LWNvZmYKKysJCTs7CisrCXRpYzZ4IHwgYzZ4KikKKysJCWJhc2ljX21hY2hpbmU9 dGljNngtdW5rbm93bgorKwkJb3M9LWNvZmYKKysJCTs7CisrCXRpbGUqKQorKwkJYmFzaWNfbWFj aGluZT10aWxlLXVua25vd24KKysJCW9zPS1saW51eC1nbnUKKysJCTs7CisrCXR4MzkpCisrCQli YXNpY19tYWNoaW5lPW1pcHN0eDM5LXVua25vd24KKysJCTs7CisrCXR4MzllbCkKKysJCWJhc2lj X21hY2hpbmU9bWlwc3R4MzllbC11bmtub3duCisrCQk7OworKwl0b2FkMSkKKysJCWJhc2ljX21h Y2hpbmU9cGRwMTAteGtsCisrCQlvcz0tdG9wczIwCisrCQk7OworKwl0b3dlciB8IHRvd2VyLTMy KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5jcgorKwkJOzsKKysJdHBmKQorKwkJYmFzaWNfbWFj aGluZT1zMzkweC1pYm0KKysJCW9zPS10cGYKKysJCTs7CisrCXVkaTI5aykKKysJCWJhc2ljX21h Y2hpbmU9YTI5ay1hbWQKKysJCW9zPS11ZGkKKysJCTs7CisrCXVsdHJhMykKKysJCWJhc2ljX21h Y2hpbmU9YTI5ay1ueXUKKysJCW9zPS1zeW0xCisrCQk7OworKwl2ODEwIHwgbmVjdjgxMCkKKysJ CWJhc2ljX21hY2hpbmU9djgxMC1uZWMKKysJCW9zPS1ub25lCisrCQk7OworKwl2YXh2KQorKwkJ YmFzaWNfbWFjaGluZT12YXgtZGVjCisrCQlvcz0tc3lzdgorKwkJOzsKKysJdm1zKQorKwkJYmFz aWNfbWFjaGluZT12YXgtZGVjCisrCQlvcz0tdm1zCisrCQk7OworKwl2cHAqfHZ4fHZ4LSopCisr CQliYXNpY19tYWNoaW5lPWYzMDEtZnVqaXRzdQorKwkJOzsKKysJdnh3b3Jrczk2MCkKKysJCWJh c2ljX21hY2hpbmU9aTk2MC13cnMKKysJCW9zPS12eHdvcmtzCisrCQk7OworKwl2eHdvcmtzNjgp CisrCQliYXNpY19tYWNoaW5lPW02OGstd3JzCisrCQlvcz0tdnh3b3JrcworKwkJOzsKKysJdnh3 b3JrczI5aykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay13cnMKKysJCW9zPS12eHdvcmtzCisrCQk7 OworKwl3NjUqKQorKwkJYmFzaWNfbWFjaGluZT13NjUtd2RjCisrCQlvcz0tbm9uZQorKwkJOzsK KysJdzg5ay0qKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKKysJCW9zPS1wcm9l bGYKKysJCTs7CisrCXhib3gpCisrCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKysJCW9zPS1taW5n dzMyCisrCQk7OworKwl4cHMgfCB4cHMxMDApCisrCQliYXNpY19tYWNoaW5lPXhwczEwMC1ob25l eXdlbGwKKysJCTs7CisrCXltcCkKKysJCWJhc2ljX21hY2hpbmU9eW1wLWNyYXkKKysJCW9zPS11 bmljb3MKKysJCTs7CisrCXo4ay0qLWNvZmYpCisrCQliYXNpY19tYWNoaW5lPXo4ay11bmtub3du CisrCQlvcz0tc2ltCisrCQk7OworKwl6ODAtKi1jb2ZmKQorKwkJYmFzaWNfbWFjaGluZT16ODAt dW5rbm93bgorKwkJb3M9LXNpbQorKwkJOzsKKysJbm9uZSkKKysJCWJhc2ljX21hY2hpbmU9bm9u ZS1ub25lCisrCQlvcz0tbm9uZQorKwkJOzsKKysKKysjIEhlcmUgd2UgaGFuZGxlIHRoZSBkZWZh dWx0IG1hbnVmYWN0dXJlciBvZiBjZXJ0YWluIENQVSB0eXBlcy4gIEl0IGlzIGluCisrIyBzb21l IGNhc2VzIHRoZSBvbmx5IG1hbnVmYWN0dXJlciwgaW4gb3RoZXJzLCBpdCBpcyB0aGUgbW9zdCBw b3B1bGFyLgorKwl3ODlrKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKKysJCTs7 CisrCW9wNTBuKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQorKwkJOzsKKysJb3A2MGMp CisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCisrCQk7OworKwlyb21wKQorKwkJYmFzaWNf bWFjaGluZT1yb21wLWlibQorKwkJOzsKKysJbW1peCkKKysJCWJhc2ljX21hY2hpbmU9bW1peC1r bnV0aAorKwkJOzsKKysJcnM2MDAwKQorKwkJYmFzaWNfbWFjaGluZT1yczYwMDAtaWJtCisrCQk7 OworKwl2YXgpCisrCQliYXNpY19tYWNoaW5lPXZheC1kZWMKKysJCTs7CisrCXBkcDEwKQorKwkJ IyB0aGVyZSBhcmUgbWFueSBjbG9uZXMsIHNvIERFQyBpcyBub3QgYSBzYWZlIGJldAorKwkJYmFz aWNfbWFjaGluZT1wZHAxMC11bmtub3duCisrCQk7OworKwlwZHAxMSkKKysJCWJhc2ljX21hY2hp bmU9cGRwMTEtZGVjCisrCQk7OworKwl3ZTMyaykKKysJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0 CisrCQk7OworKwlzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBz aFsyM11lbGUpCisrCQliYXNpY19tYWNoaW5lPXNoLXVua25vd24KKysJCTs7CisrCXNwYXJjIHwg c3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2KQorKwkJYmFzaWNfbWFjaGlu ZT1zcGFyYy1zdW4KKysJCTs7CisrCWN5ZHJhKQorKwkJYmFzaWNfbWFjaGluZT1jeWRyYS1jeWRy b21lCisrCQk7OworKwlvcmlvbikKKysJCWJhc2ljX21hY2hpbmU9b3Jpb24taGlnaGxldmVsCisr CQk7OworKwlvcmlvbjEwNSkKKysJCWJhc2ljX21hY2hpbmU9Y2xpcHBlci1oaWdobGV2ZWwKKysJ CTs7CisrCW1hYyB8IG1wdyB8IG1hYy1tcHcpCisrCQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUK KysJCTs7CisrCXBtYWMgfCBwbWFjLW1wdykKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1hcHBs ZQorKwkJOzsKKysJKi11bmtub3duKQorKwkJIyBNYWtlIHN1cmUgdG8gbWF0Y2ggYW4gYWxyZWFk eS1jYW5vbmljYWxpemVkIG1hY2hpbmUgbmFtZS4KKysJCTs7CisrCSopCisrCQllY2hvIEludmFs aWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCBy ZWNvZ25pemVkIDE+JjIKKysJCWV4aXQgMQorKwkJOzsKKytlc2FjCisrCisrIyBIZXJlIHdlIGNh bm9uaWNhbGl6ZSBjZXJ0YWluIGFsaWFzZXMgZm9yIG1hbnVmYWN0dXJlcnMuCisrY2FzZSAkYmFz aWNfbWFjaGluZSBpbgorKwkqLWRpZ2l0YWwqKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFz aWNfbWFjaGluZSB8IHNlZCAncy9kaWdpdGFsLiovZGVjLydgCisrCQk7OworKwkqLWNvbW1vZG9y ZSopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2NvbW1v ZG9yZS4qL2NibS8nYAorKwkJOzsKKysJKikKKysJCTs7CisrZXNhYworKworKyMgRGVjb2RlIG1h bnVmYWN0dXJlci1zcGVjaWZpYyBhbGlhc2VzIGZvciBjZXJ0YWluIG9wZXJhdGluZyBzeXN0ZW1z LgorKworK2lmIFsgeCIkb3MiICE9IHgiIiBdCisrdGhlbgorK2Nhc2UgJG9zIGluCisrICAgICAg ICAjIEZpcnN0IG1hdGNoIHNvbWUgc3lzdGVtIHR5cGUgYWxpYXNlcworKyAgICAgICAgIyB0aGF0 IG1pZ2h0IGdldCBjb25mdXNlZCB3aXRoIHZhbGlkIHN5c3RlbSB0eXBlcy4KKysJIyAtc29sYXJp cyogaXMgYSBiYXNpYyBzeXN0ZW0gdHlwZSwgd2l0aCB0aGlzIG9uZSBleGNlcHRpb24uCisrCS1z b2xhcmlzMSB8IC1zb2xhcmlzMS4qKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNvbGFy aXMxfHN1bm9zNHwnYAorKwkJOzsKKysJLXNvbGFyaXMpCisrCQlvcz0tc29sYXJpczIKKysJCTs7 CisrCS1zdnI0KikKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJLXVuaXh3YXJlKikKKysJCW9zPS1z eXN2NC4ydXcKKysJCTs7CisrCS1nbnUvbGludXgqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1l ICdzfGdudS9saW51eHxsaW51eC1nbnV8J2AKKysJCTs7CisrCSMgRmlyc3QgYWNjZXB0IHRoZSBi YXNpYyBzeXN0ZW0gdHlwZXMuCisrCSMgVGhlIHBvcnRhYmxlIHN5c3RlbXMgY29tZXMgZmlyc3Qu CisrCSMgRWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiBBICosIHRvIG1hdGNoIGEgdmVyc2lv biBudW1iZXIuCisrCSMgLXN5c3YqIGlzIG5vdCBoZXJlIGJlY2F1c2UgaXQgY29tZXMgbGF0ZXIs IGFmdGVyIHN5c3ZyNC4KKysJLWdudSogfCAtYnNkKiB8IC1tYWNoKiB8IC1taW5peCogfCAtZ2Vu aXgqIHwgLXVsdHJpeCogfCAtaXJpeCogXAorKwkgICAgICB8IC0qdm1zKiB8IC1zY28qIHwgLWVz aXgqIHwgLWlzYyogfCAtYWl4KiB8IC1zdW5vcyB8IC1zdW5vc1szNF0qXAorKwkgICAgICB8IC1o cHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgqIHwgLXNvbGFyaXMqIHwgLXN5 bSogXAorKwkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyogfCAtbXNkb3MqIHwgLW5ld3Nv cyogfCAtdW5pY29zKiB8IC1hb2YqIFwKKysJICAgICAgfCAtYW9zKiBcCisrCSAgICAgIHwgLW5p bmR5KiB8IC12eHNpbSogfCAtdnh3b3JrcyogfCAtZWJtb24qIHwgLWhtcyogfCAtbXZzKiBcCisr CSAgICAgIHwgLWNsaXgqIHwgLXJpc2NvcyogfCAtdW5pcGx1cyogfCAtaXJpcyogfCAtcnR1KiB8 IC14ZW5peCogXAorKwkgICAgICB8IC1oaXV4KiB8IC0zODZic2QqIHwgLWtuZXRic2QqIHwgLW1p cmJzZCogfCAtbmV0YnNkKiBcCisrCSAgICAgIHwgLW9wZW5ic2QqIHwgLXNvbGlkYnNkKiBcCisr CSAgICAgIHwgLWVra29ic2QqIHwgLWtmcmVlYnNkKiB8IC1mcmVlYnNkKiB8IC1yaXNjaXgqIHwg LWx5bnhvcyogXAorKwkgICAgICB8IC1ib3N4KiB8IC1uZXh0c3RlcCogfCAtY3h1eCogfCAtYW91 dCogfCAtZWxmKiB8IC1vYWJpKiBcCisrCSAgICAgIHwgLXB0eCogfCAtY29mZiogfCAtZWNvZmYq IHwgLXdpbm50KiB8IC1kb21haW4qIHwgLXZzdGEqIFwKKysJICAgICAgfCAtdWRpKiB8IC1lYWJp KiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAtYXV4KiBcCisrCSAgICAgIHwgLWNob3J1 c29zKiB8IC1jaG9ydXNyZGIqIHwgLWNlZ2NjKiBcCisrCSAgICAgIHwgLWN5Z3dpbiogfCAtcGUq IHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAtcnRlbXMqIFwKKysJICAgICAgfCAtbWlu Z3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC1uZXdsaWIqIHwgLWxpbnV4LXVjbGliYyogXAor KwkgICAgICB8IC11eHB2KiB8IC1iZW9zKiB8IC1tcGVpeCogfCAtdWRrKiBcCisrCSAgICAgIHwg LWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhhcHNvZHkqIHwgLWRhcndpbiogfCAtb3Bl bmVkKiBcCisrCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCogfCAtY29uaXgqIHwgLXB3MzIq IHwgLW5vbnN0b3B1eCogXAorKwkgICAgICB8IC1zdG9ybS1jaGFvcyogfCAtdG9wczEwKiB8IC10 ZW5leCogfCAtdG9wczIwKiB8IC1pdHMqIFwKKysJICAgICAgfCAtb3MyKiB8IC12b3MqIHwgLXBh bG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAorKwkgICAgICB8IC1tb3JwaG9zKiB8IC1z dXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3MqIFwKKysJICAgICAgfCAt cG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcgfCAtc2VpKiB8IC1kcmFnb25mbHkqIFwK KysJICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1KiB8IC1yZG9zKiB8IC10b3BwZXJzKiB8IC1kcm9w cyopCisrCSMgUmVtZW1iZXIsIGVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gKiwgdG8gbWF0 Y2ggYSB2ZXJzaW9uIG51bWJlci4KKysJCTs7CisrCS1xbngqKQorKwkJY2FzZSAkYmFzaWNfbWFj aGluZSBpbgorKwkJICAgIHg4Ni0qIHwgaSo4Ni0qKQorKwkJCTs7CisrCQkgICAgKikKKysJCQlv cz0tbnRvJG9zCisrCQkJOzsKKysJCWVzYWMKKysJCTs7CisrCS1udG8tcW54KikKKysJCTs7Cisr CS1udG8qKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8tcW54fCdgCisrCQk7 OworKwktc2ltIHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwgLW9zNjhrKiB8IC1ub25lKiB8 IC12ODhyKiBcCisrCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUq IHwgLW9zOSogfCAtYmVvcyogfCAtaGFpa3UqIFwKKysJICAgICAgfCAtbWFjb3MqIHwgLW1wdyog fCAtbWFnaWMqIHwgLW1taXh3YXJlKiB8IC1tb245NjAqIHwgLWxuZXdzKikKKysJCTs7CisrCS1t YWMqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG1hY3xtYWNvc3wnYAorKwkJOzsKKysJ LWxpbnV4LWRpZXRsaWJjKQorKwkJb3M9LWxpbnV4LWRpZXRsaWJjCisrCQk7OworKwktbGludXgq KQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGxpbnV4fGxpbnV4LWdudXwnYAorKwkJOzsK KysJLXN1bm9zNSopCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M1fHNvbGFyaXMy fCdgCisrCQk7OworKwktc3Vub3M2KikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5v czZ8c29sYXJpczN8J2AKKysJCTs7CisrCS1vcGVuZWQqKQorKwkJb3M9LW9wZW5lZGl0aW9uCisr CQk7OworKyAgICAgICAgLW9zNDAwKikKKysJCW9zPS1vczQwMAorKwkJOzsKKysJLXdpbmNlKikK KysJCW9zPS13aW5jZQorKwkJOzsKKysJLW9zZnJvc2UqKQorKwkJb3M9LW9zZnJvc2UKKysJCTs7 CisrCS1vc2YqKQorKwkJb3M9LW9zZgorKwkJOzsKKysJLXV0ZWsqKQorKwkJb3M9LWJzZAorKwkJ OzsKKysJLWR5bml4KikKKysJCW9zPS1ic2QKKysJCTs7CisrCS1hY2lzKikKKysJCW9zPS1hb3MK KysJCTs7CisrCS1hdGhlb3MqKQorKwkJb3M9LWF0aGVvcworKwkJOzsKKysJLXN5bGxhYmxlKikK KysJCW9zPS1zeWxsYWJsZQorKwkJOzsKKysJLTM4NmJzZCkKKysJCW9zPS1ic2QKKysJCTs7Cisr CS1jdGl4KiB8IC11dHMqKQorKwkJb3M9LXN5c3YKKysJCTs7CisrCS1ub3ZhKikKKysJCW9zPS1y dG1rLW5vdmEKKysJCTs7CisrCS1uczIgKQorKwkJb3M9LW5leHRzdGVwMgorKwkJOzsKKysJLW5z ayopCisrCQlvcz0tbnNrCisrCQk7OworKwkjIFByZXNlcnZlIHRoZSB2ZXJzaW9uIG51bWJlciBv ZiBzaW5peDUuCisrCS1zaW5peDUuKikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5p eHxzeXN2fCdgCisrCQk7OworKwktc2luaXgqKQorKwkJb3M9LXN5c3Y0CisrCQk7OworKyAgICAg ICAgLXRwZiopCisrCQlvcz0tdHBmCisrCQk7OworKwktdHJpdG9uKikKKysJCW9zPS1zeXN2Mwor KwkJOzsKKysJLW9zcyopCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCS1zdnI0KQorKwkJb3M9LXN5 c3Y0CisrCQk7OworKwktc3ZyMykKKysJCW9zPS1zeXN2MworKwkJOzsKKysJLXN5c3ZyNCkKKysJ CW9zPS1zeXN2NAorKwkJOzsKKysJIyBUaGlzIG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgorKwkt c3lzdiopCisrCQk7OworKwktb3NlKikKKysJCW9zPS1vc2UKKysJCTs7CisrCS1lczE4MDAqKQor KwkJb3M9LW9zZQorKwkJOzsKKysJLXhlbml4KQorKwkJb3M9LXhlbml4CisrCQk7OworKwktKm1p bnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQorKwkJb3M9LW1pbnQKKysJ CTs7CisrCS1hcm9zKikKKysJCW9zPS1hcm9zCisrCQk7OworKwkta2FvcyopCisrCQlvcz0ta2Fv cworKwkJOzsKKysJLXp2bW9lKQorKwkJb3M9LXp2bW9lCisrCQk7OworKwktZGljb3MqKQorKwkJ b3M9LWRpY29zCisrCQk7OworKwktbm9uZSkKKysJCTs7CisrCSopCisrCQkjIEdldCByaWQgb2Yg dGhlIGAtJyBhdCB0aGUgYmVnaW5uaW5nIG9mICRvcy4KKysJCW9zPWBlY2hvICRvcyB8IHNlZCAn cy9bXi1dKi0vLydgCisrCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IHN5c3Rl bSBcYCRvc1wnIG5vdCByZWNvZ25pemVkIDE+JjIKKysJCWV4aXQgMQorKwkJOzsKKytlc2FjCisr ZWxzZQorKworKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMg dGhhdCBjb21lIHdpdGggdmFyaW91cyBtYWNoaW5lcy4KKysjIFRoZSB2YWx1ZSBzaG91bGQgYmUg d2hhdCB0aGUgdmVuZG9yIGN1cnJlbnRseSBzaGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgor KyMgbWFjaGluZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlk ZWQgd2l0aCB0aGUgbWFjaGluZS4KKysKKysjIE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8g dHJ5IHRvIG1hdGNoICItTUFOVUZBQ1RVUkVSIiBoZXJlIChzYXksCisrIyAiLXN1biIpLCB0aGVu IHlvdSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAor KyMgdGhhdCBNQU5VRkFDVFVSRVIgaXNuJ3QgYW4gb3BlcmF0aW5nIHN5c3RlbS4gIE90aGVyd2lz ZSwgY29kZSBhYm92ZQorKyMgd2lsbCBzaWduYWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZB Q1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZworKyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0 IHRvIHRoaXMgcG9pbnQuCisrCisrY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKyAgICAgICAgc2Nv cmUtKikKKysJCW9zPS1lbGYKKysJCTs7CisrICAgICAgICBzcHUtKikKKysJCW9zPS1lbGYKKysJ CTs7CisrCSotYWNvcm4pCisrCQlvcz0tcmlzY2l4MS4yCisrCQk7OworKwlhcm0qLXJlYmVsKQor KwkJb3M9LWxpbnV4CisrCQk7OworKwlhcm0qLXNlbWkpCisrCQlvcz0tYW91dAorKwkJOzsKKysg ICAgICAgIGM0eC0qIHwgdGljNHgtKikKKysgICAgICAgIAlvcz0tY29mZgorKwkJOzsKKysJIyBU aGlzIG11c3QgY29tZSBiZWZvcmUgdGhlICotZGVjIGVudHJ5LgorKwlwZHAxMC0qKQorKwkJb3M9 LXRvcHMyMAorKwkJOzsKKysJcGRwMTEtKikKKysJCW9zPS1ub25lCisrCQk7OworKwkqLWRlYyB8 IHZheC0qKQorKwkJb3M9LXVsdHJpeDQuMgorKwkJOzsKKysJbTY4Ki1hcG9sbG8pCisrCQlvcz0t ZG9tYWluCisrCQk7OworKwlpMzg2LXN1bikKKysJCW9zPS1zdW5vczQuMC4yCisrCQk7OworKwlt NjgwMDAtc3VuKQorKwkJb3M9LXN1bm9zMworKwkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBj b25maWd1cmUgcHJvZ3JhbSwgYnV0IHdhcyBub3QgdGhlCisrCQkjIGRlZmF1bHQuCisrCQkjIG9z PS1zdW5vczQKKysJCTs7CisrCW02OCotY2lzY28pCisrCQlvcz0tYW91dAorKwkJOzsKKysgICAg ICAgIG1lcC0qKQorKwkJb3M9LWVsZgorKwkJOzsKKysJbWlwcyotY2lzY28pCisrCQlvcz0tZWxm CisrCQk7OworKwltaXBzKi0qKQorKwkJb3M9LWVsZgorKwkJOzsKKysJb3IzMi0qKQorKwkJb3M9 LWNvZmYKKysJCTs7CisrCSotdHRpKQkjIG11c3QgYmUgYmVmb3JlIHNwYXJjIGVudHJ5IG9yIHdl IGdldCB0aGUgd3Jvbmcgb3MuCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCXNwYXJjLSogfCAqLXN1 bikKKysJCW9zPS1zdW5vczQuMS4xCisrCQk7OworKwkqLWJlKQorKwkJb3M9LWJlb3MKKysJCTs7 CisrCSotaGFpa3UpCisrCQlvcz0taGFpa3UKKysJCTs7CisrCSotaWJtKQorKwkJb3M9LWFpeAor KwkJOzsKKysgICAgCSota251dGgpCisrCQlvcz0tbW1peHdhcmUKKysJCTs7CisrCSotd2VjKQor KwkJb3M9LXByb2VsZgorKwkJOzsKKysJKi13aW5ib25kKQorKwkJb3M9LXByb2VsZgorKwkJOzsK KysJKi1va2kpCisrCQlvcz0tcHJvZWxmCisrCQk7OworKwkqLWhwKQorKwkJb3M9LWhwdXgKKysJ CTs7CisrCSotaGl0YWNoaSkKKysJCW9zPS1oaXV4CisrCQk7OworKwlpODYwLSogfCAqLWF0dCB8 ICotbmNyIHwgKi1hbHRvcyB8ICotbW90b3JvbGEgfCAqLWNvbnZlcmdlbnQpCisrCQlvcz0tc3lz dgorKwkJOzsKKysJKi1jYm0pCisrCQlvcz0tYW1pZ2FvcworKwkJOzsKKysJKi1kZykKKysJCW9z PS1kZ3V4CisrCQk7OworKwkqLWRvbHBoaW4pCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCW02OGst Y2N1cikKKysJCW9zPS1ydHUKKysJCTs7CisrCW04OGstb21yb24qKQorKwkJb3M9LWx1bmEKKysJ CTs7CisrCSotbmV4dCApCisrCQlvcz0tbmV4dHN0ZXAKKysJCTs7CisrCSotc2VxdWVudCkKKysJ CW9zPS1wdHgKKysJCTs7CisrCSotY3JkcykKKysJCW9zPS11bm9zCisrCQk7OworKwkqLW5zKQor KwkJb3M9LWdlbml4CisrCQk7OworKwlpMzcwLSopCisrCQlvcz0tbXZzCisrCQk7OworKwkqLW5l eHQpCisrCQlvcz0tbmV4dHN0ZXAzCisrCQk7OworKwkqLWdvdWxkKQorKwkJb3M9LXN5c3YKKysJ CTs7CisrCSotaGlnaGxldmVsKQorKwkJb3M9LWJzZAorKwkJOzsKKysJKi1lbmNvcmUpCisrCQlv cz0tYnNkCisrCQk7OworKwkqLXNnaSkKKysJCW9zPS1pcml4CisrCQk7OworKwkqLXNpZW1lbnMp CisrCQlvcz0tc3lzdjQKKysJCTs7CisrCSotbWFzc2NvbXApCisrCQlvcz0tcnR1CisrCQk7Owor KwlmMzBbMDFdLWZ1aml0c3UgfCBmNzAwLWZ1aml0c3UpCisrCQlvcz0tdXhwdgorKwkJOzsKKysJ Ki1yb202OGspCisrCQlvcz0tY29mZgorKwkJOzsKKysJKi0qYnVnKQorKwkJb3M9LWNvZmYKKysJ CTs7CisrCSotYXBwbGUpCisrCQlvcz0tbWFjb3MKKysJCTs7CisrCSotYXRhcmkqKQorKwkJb3M9 LW1pbnQKKysJCTs7CisrCSopCisrCQlvcz0tbm9uZQorKwkJOzsKKytlc2FjCisrZmkKKysKKysj IEhlcmUgd2UgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQ VSB0eXBlLCBidXQgbm90IHRoZQorKyMgbWFudWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNh bCBtYW51ZmFjdHVyZXIuCisrdmVuZG9yPXVua25vd24KKytjYXNlICRiYXNpY19tYWNoaW5lIGlu CisrCSotdW5rbm93bikKKysJCWNhc2UgJG9zIGluCisrCQkJLXJpc2NpeCopCisrCQkJCXZlbmRv cj1hY29ybgorKwkJCQk7OworKwkJCS1zdW5vcyopCisrCQkJCXZlbmRvcj1zdW4KKysJCQkJOzsK KysJCQktYWl4KikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1iZW9zKikKKysJCQkJ dmVuZG9yPWJlCisrCQkJCTs7CisrCQkJLWhwdXgqKQorKwkJCQl2ZW5kb3I9aHAKKysJCQkJOzsK KysJCQktbXBlaXgqKQorKwkJCQl2ZW5kb3I9aHAKKysJCQkJOzsKKysJCQktaGl1eCopCisrCQkJ CXZlbmRvcj1oaXRhY2hpCisrCQkJCTs7CisrCQkJLXVub3MqKQorKwkJCQl2ZW5kb3I9Y3Jkcwor KwkJCQk7OworKwkJCS1kZ3V4KikKKysJCQkJdmVuZG9yPWRnCisrCQkJCTs7CisrCQkJLWx1bmEq KQorKwkJCQl2ZW5kb3I9b21yb24KKysJCQkJOzsKKysJCQktZ2VuaXgqKQorKwkJCQl2ZW5kb3I9 bnMKKysJCQkJOzsKKysJCQktbXZzKiB8IC1vcGVuZWQqKQorKwkJCQl2ZW5kb3I9aWJtCisrCQkJ CTs7CisrCQkJLW9zNDAwKikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1wdHgqKQor KwkJCQl2ZW5kb3I9c2VxdWVudAorKwkJCQk7OworKwkJCS10cGYqKQorKwkJCQl2ZW5kb3I9aWJt CisrCQkJCTs7CisrCQkJLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKKysJCQkJdmVu ZG9yPXdycworKwkJCQk7OworKwkJCS1hdXgqKQorKwkJCQl2ZW5kb3I9YXBwbGUKKysJCQkJOzsK KysJCQktaG1zKikKKysJCQkJdmVuZG9yPWhpdGFjaGkKKysJCQkJOzsKKysJCQktbXB3KiB8IC1t YWNvcyopCisrCQkJCXZlbmRvcj1hcHBsZQorKwkJCQk7OworKwkJCS0qbWludCB8IC1taW50WzAt OV0qIHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCisrCQkJCXZlbmRvcj1hdGFyaQorKwkJCQk7Owor KwkJCS12b3MqKQorKwkJCQl2ZW5kb3I9c3RyYXR1cworKwkJCQk7OworKwkJZXNhYworKwkJYmFz aWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3Iv ImAKKysJCTs7CisrZXNhYworKworK2VjaG8gJGJhc2ljX21hY2hpbmUkb3MKKytleGl0CisrCisr IyBMb2NhbCB2YXJpYWJsZXM6CisrIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3Mg J3RpbWUtc3RhbXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCisrIyB0aW1l LXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisrIyB0aW1lLXN0YW1wLWVuZDogIiciCisr IyBFbmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQgc29j aS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jcHB1bml0Lm00CistLS0gc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2NwcHVuaXQubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NwcHVuaXQubTQJMjAwOS0wNS0yMiAyMjo1NDoz Ny4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOTMgQEAKKytkbmwKKytkbmwgQU1fUEFUSF9D UFBVTklUKE1JTklNVU0tVkVSU0lPTiwgW0FDVElPTi1JRi1GT1VORCBbLCBBQ1RJT04tSUYtTk9U LUZPVU5EXV0pCisrZG5sCisrQUNfREVGVU4oW0FNX1BBVEhfQ1BQVU5JVF0sCisrWworKworK0FD X0FSR19XSVRIKGNwcHVuaXQtcHJlZml4LFsgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQ cmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCisrICAgICAgICAg ICAgY3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIsIGNwcHVuaXRfY29uZmlnX3ByZWZp eD0iIikKKytBQ19BUkdfV0lUSChjcHB1bml0LWV4ZWMtcHJlZml4LFsgIC0td2l0aC1jcHB1bml0 LWV4ZWMtcHJlZml4PVBGWCAgRXhlYyBwcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQg KG9wdGlvbmFsKV0sCisrICAgICAgICAgICAgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3 aXRodmFsIiwgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiIpCisrCisrICBpZiB0ZXN0IHgk Y3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29u ZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29u ZmlnX2V4ZWNfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9 IHhzZXQgOyB0aGVuCisrICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhl Y19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCisrICAgICBmaQorKyAgZmkKKysgIGlmIHRlc3Qg eCRjcHB1bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29uZmln X2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVm aXgiCisrICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4K KysgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVu aXQtY29uZmlnCisrICAgICBmaQorKyAgZmkKKysKKysgIEFDX1BBVEhfUFJPRyhDUFBVTklUX0NP TkZJRywgY3BwdW5pdC1jb25maWcsIG5vKQorKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0kMQorKwor KyAgQUNfTVNHX0NIRUNLSU5HKGZvciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92ZXJz aW9uX21pbikKKysgIG5vX2NwcHVuaXQ9IiIKKysgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIg PSAibm8iIDsgdGhlbgorKyAgICBBQ19NU0dfUkVTVUxUKG5vKQorKyAgICBub19jcHB1bml0PXll cworKyAgZWxzZQorKyAgICBDUFBVTklUX0NGTEFHUz1gJENQUFVOSVRfQ09ORklHIC0tY2ZsYWdz YAorKyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNgCisrICAgIENQUFVO SVRfVkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVyc2lvbmAKKysKKysgICAgY3BwdW5pdF9t YWpvcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAgICBzZWQg J3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKKysgICAgY3Bw dW5pdF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAg ICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKKysg ICAgY3BwdW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAg ICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDMv J2AKKysKKysgICAgY3BwdW5pdF9tYWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4g fCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05 XV0qXCkvXDEvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7 IHRoZW4KKysgICAgICAgY3BwdW5pdF9tYWpvcl9taW49MAorKyAgICBmaQorKyAgICAKKysgICAg Y3BwdW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAg ICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AK KysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KKysgICAg ICAgY3BwdW5pdF9taW5vcl9taW49MAorKyAgICBmaQorKyAgICAKKysgICAgY3BwdW5pdF9taWNy b19taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3Mv XChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKKysgICAgaWYgdGVz dCAieCR7Y3BwdW5pdF9taWNyb19taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9t aWNyb19taW49MAorKyAgICBmaQorKworKyAgICBjcHB1bml0X3ZlcnNpb25fcHJvcGVyPWBleHBy IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWFqb3JfbWlu IFx8IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3Jf bWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWlu b3JfbWluIFx8IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRf bWFqb3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD0gJGNwcHVu aXRfbWlub3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pY3JvX3ZlcnNpb24gXD49ICRj cHB1bml0X21pY3JvX21pbiBgCisrCisrICAgIGlmIHRlc3QgIiRjcHB1bml0X3ZlcnNpb25fcHJv cGVyIiA9ICIxIiA7IHRoZW4KKysgICAgICBBQ19NU0dfUkVTVUxUKFskY3BwdW5pdF9tYWpvcl92 ZXJzaW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVuaXRfbWljcm9fdmVyc2lvbl0pCisr ICAgIGVsc2UKKysgICAgICBBQ19NU0dfUkVTVUxUKG5vKQorKyAgICAgIG5vX2NwcHVuaXQ9eWVz CisrICAgIGZpCisrICBmaQorKworKyAgaWYgdGVzdCAieCRub19jcHB1bml0IiA9IHggOyB0aGVu CisrICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKSAgICAgCisrICBlbHNlCisrICAgICBDUFBV TklUX0NGTEFHUz0iIgorKyAgICAgQ1BQVU5JVF9MSUJTPSIiCisrICAgICBpZmVsc2UoWyQzXSwg LCA6LCBbJDNdKQorKyAgZmkKKysKKysgIEFDX1NVQlNUKENQUFVOSVRfQ0ZMQUdTKQorKyAgQUNf U1VCU1QoQ1BQVU5JVF9MSUJTKQorKyAgQUNfU1VCU1QoQ1BQVU5JVF9WRVJTSU9OKQorK10pCisr CisrCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9kZXBjb21wCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmln L2RlcGNvbXAJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlnL2RlcGNvbXAJMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsNTg5IEBACisrIyEgL2Jpbi9zaAorKyMgZGVwY29tcCAtIGNvbXBp bGUgYSBwcm9ncmFtIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cworKwor K3NjcmlwdHZlcnNpb249MjAwNy0wMy0yOS4wMQorKworKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAy MDAwLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEZyZWUgU29mdHdhcmUKKysjIEZvdW5k YXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0 aW9uKQorKyMgYW55IGxhdGVyIHZlcnNpb24uCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKwor KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRv IHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisrIyAwMjExMC0xMzAxLCBVU0EuCisrCisrIyBB cyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwg aWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0 IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29u ZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVy bXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrCisrIyBPcmln aW5hbGx5IHdyaXR0ZW4gYnkgQWxleGFuZHJlIE9saXZhIDxvbGl2YUBkY2MudW5pY2FtcC5icj4u CisrCisrY2FzZSAkMSBpbgorKyAgJycpCisrICAgICBlY2hvICIkMDogTm8gY29tbWFuZC4gIFRy eSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAxPiYyCisrICAgICBleGl0IDE7 CisrICAgICA7OworKyAgLWggfCAtLWgqKQorKyAgICBjYXQgPDxcRU9GCisrVXNhZ2U6IGRlcGNv bXAgWy0taGVscF0gWy0tdmVyc2lvbl0gUFJPR1JBTSBbQVJHU10KKysKKytSdW4gUFJPR1JBTVMg QVJHUyB0byBjb21waWxlIGEgZmlsZSwgZ2VuZXJhdGluZyBkZXBlbmRlbmNpZXMKKythcyBzaWRl LWVmZmVjdHMuCisrCisrRW52aXJvbm1lbnQgdmFyaWFibGVzOgorKyAgZGVwbW9kZSAgICAgRGVw ZW5kZW5jeSB0cmFja2luZyBtb2RlLgorKyAgc291cmNlICAgICAgU291cmNlIGZpbGUgcmVhZCBi eSBgUFJPR1JBTVMgQVJHUycuCisrICBvYmplY3QgICAgICBPYmplY3QgZmlsZSBvdXRwdXQgYnkg YFBST0dSQU1TIEFSR1MnLgorKyAgREVQRElSICAgICAgZGlyZWN0b3J5IHdoZXJlIHRvIHN0b3Jl IGRlcGVuZGVuY2llcy4KKysgIGRlcGZpbGUgICAgIERlcGVuZGVuY3kgZmlsZSB0byBvdXRwdXQu CisrICB0bXBkZXBmaWxlICBUZW1wb3JhcnkgZmlsZSB0byB1c2Ugd2hlbiBvdXRwdXRpbmcgZGVw ZW5kZW5jaWVzLgorKyAgbGlidG9vbCAgICAgV2hldGhlciBsaWJ0b29sIGlzIHVzZWQgKHllcy9u bykuCisrCisrUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4KKytFT0YKKysg ICAgZXhpdCAkPworKyAgICA7OworKyAgLXYgfCAtLXYqKQorKyAgICBlY2hvICJkZXBjb21wICRz Y3JpcHR2ZXJzaW9uIgorKyAgICBleGl0ICQ/CisrICAgIDs7CisrZXNhYworKworK2lmIHRlc3Qg LXogIiRkZXBtb2RlIiB8fCB0ZXN0IC16ICIkc291cmNlIiB8fCB0ZXN0IC16ICIkb2JqZWN0Ijsg dGhlbgorKyAgZWNobyAiZGVwY29tcDogVmFyaWFibGVzIHNvdXJjZSwgb2JqZWN0IGFuZCBkZXBt b2RlIG11c3QgYmUgc2V0IiAxPiYyCisrICBleGl0IDEKKytmaQorKworKyMgRGVwZW5kZW5jaWVz IGZvciBzdWIvYmFyLm8gb3Igc3ViL2Jhci5vYmogZ28gaW50byBzdWIvLmRlcHMvYmFyLlBvLgor K2RlcGZpbGU9JHtkZXBmaWxlLWBlY2hvICIkb2JqZWN0IiB8CisrICBzZWQgJ3N8W15cXC9dKiR8 JyR7REVQRElSLS5kZXBzfScvJnw7c3xcLlwoW14uXSpcKSR8LlBcMXw7c3xQb2JqJHxQb3wnYH0K Kyt0bXBkZXBmaWxlPSR7dG1wZGVwZmlsZS1gZWNobyAiJGRlcGZpbGUiIHwgc2VkICdzL1wuXChb Xi5dKlwpJC8uVFwxLydgfQorKworK3JtIC1mICIkdG1wZGVwZmlsZSIKKysKKysjIFNvbWUgbW9k ZXMgd29yayBqdXN0IGxpa2Ugb3RoZXIgbW9kZXMsIGJ1dCB1c2UgZGlmZmVyZW50IGZsYWdzLiAg V2UKKysjIHBhcmFtZXRlcml6ZSBoZXJlLCBidXQgc3RpbGwgbGlzdCB0aGUgbW9kZXMgaW4gdGhl IGJpZyBjYXNlIGJlbG93LAorKyMgdG8gbWFrZSBkZXBlbmQubTQgZWFzaWVyIHRvIHdyaXRlLiAg Tm90ZSB0aGF0IHdlICpjYW5ub3QqIHVzZSBhIGNhc2UKKysjIGhlcmUsIGJlY2F1c2UgdGhpcyBm aWxlIGNhbiBvbmx5IGNvbnRhaW4gb25lIGNhc2Ugc3RhdGVtZW50LgorK2lmIHRlc3QgIiRkZXBt b2RlIiA9IGhwOyB0aGVuCisrICAjIEhQIGNvbXBpbGVyIHVzZXMgLU0gYW5kIG5vIGV4dHJhIGFy Zy4KKysgIGdjY2ZsYWc9LU0KKysgIGRlcG1vZGU9Z2NjCisrZmkKKysKKytpZiB0ZXN0ICIkZGVw bW9kZSIgPSBkYXNoWG1zdGRvdXQ7IHRoZW4KKysgICAjIFRoaXMgaXMganVzdCBsaWtlIGRhc2ht c3Rkb3V0IHdpdGggYSBkaWZmZXJlbnQgYXJndW1lbnQuCisrICAgZGFzaG1mbGFnPS14TQorKyAg IGRlcG1vZGU9ZGFzaG1zdGRvdXQKKytmaQorKworK2Nhc2UgIiRkZXBtb2RlIiBpbgorK2djYzMp CisrIyMgZ2NjIDMgaW1wbGVtZW50cyBkZXBlbmRlbmN5IHRyYWNraW5nIHRoYXQgZG9lcyBleGFj dGx5IHdoYXQKKysjIyB3ZSB3YW50LiAgWWF5ISAgTm90ZTogZm9yIHNvbWUgcmVhc29uIGxpYnRv b2wgMS40IGRvZXNuJ3QgbGlrZQorKyMjIGl0IGlmIC1NRCAtTVAgY29tZXMgYWZ0ZXIgdGhlIC1N RiBzdHVmZi4gIEhtbS4KKysjIyBVbmZvcnR1bmF0ZWx5LCBGcmVlQlNEIGM4OSBhY2NlcHRhbmNl IG9mIGZsYWdzIGRlcGVuZHMgdXBvbgorKyMjIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQgb3Jk ZXI7IHNvIGFkZCB0aGUgZmxhZ3Mgd2hlcmUgdGhleQorKyMjIGFwcGVhciBpbiBkZXBlbmQyLmFt LiAgTm90ZSB0aGF0IHRoZSBzbG93ZG93biBpbmN1cnJlZCBoZXJlCisrIyMgYWZmZWN0cyBvbmx5 IGNvbmZpZ3VyZTogaW4gbWFrZWZpbGVzLCAlRkFTVERFUCUgc2hvcnRjdXRzIHRoaXMuCisrICBm b3IgYXJnCisrICBkbworKyAgICBjYXNlICRhcmcgaW4KKysgICAgLWMpIHNldCBmbm9yZCAiJEAi IC1NVCAiJG9iamVjdCIgLU1EIC1NUCAtTUYgIiR0bXBkZXBmaWxlIiAiJGFyZyIgOzsKKysgICAg KikgIHNldCBmbm9yZCAiJEAiICIkYXJnIiA7OworKyAgICBlc2FjCisrICAgIHNoaWZ0ICMgZm5v cmQKKysgICAgc2hpZnQgIyAkYXJnCisrICBkb25lCisrICAiJEAiCisrICBzdGF0PSQ/CisrICBp ZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAgcm0gLWYgIiR0bXBkZXBm aWxlIgorKyAgICBleGl0ICRzdGF0CisrICBmaQorKyAgbXYgIiR0bXBkZXBmaWxlIiAiJGRlcGZp bGUiCisrICA7OworKworK2djYykKKysjIyBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHRvIGdldCBk ZXBlbmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUncworKyMjIHdoeSB3ZSBwaWNrIHRoaXMg cmF0aGVyIG9ic2N1cmUgbWV0aG9kOgorKyMjIC0gRG9uJ3Qgd2FudCB0byB1c2UgLU1EIGJlY2F1 c2Ugd2UnZCBsaWtlIHRoZSBkZXBlbmRlbmNpZXMgdG8gZW5kCisrIyMgICB1cCBpbiBhIHN1YmRp ci4gIEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1Z2x5LgorKyMjICAgKFdlIG1pZ2h0IGVu ZCB1cCBkb2luZyB0aGlzIGFueXdheSB0byBzdXBwb3J0IG90aGVyIGNvbXBpbGVycy4pCisrIyMg LSBUaGUgREVQRU5ERU5DSUVTX09VVFBVVCBlbnZpcm9ubWVudCB2YXJpYWJsZSBtYWtlcyBnY2Mg YWN0IGxpa2UKKysjIyAgIC1NTSwgbm90IC1NIChkZXNwaXRlIHdoYXQgdGhlIGRvY3Mgc2F5KS4K KysjIyAtIFVzaW5nIC1NIGRpcmVjdGx5IG1lYW5zIHJ1bm5pbmcgdGhlIGNvbXBpbGVyIHR3aWNl IChldmVuIHdvcnNlCisrIyMgICB0aGFuIHJlbmFtaW5nKS4KKysgIGlmIHRlc3QgLXogIiRnY2Nm bGFnIjsgdGhlbgorKyAgICBnY2NmbGFnPS1NRCwKKysgIGZpCisrICAiJEAiIC1XcCwiJGdjY2Zs YWckdG1wZGVwZmlsZSIKKysgIHN0YXQ9JD8KKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4g OgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICAgIGV4aXQgJHN0YXQKKysg IGZpCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBm aWxlIgorKyAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9w cXJzdHV2d3h5egorKyMjIFRoZSBzZWNvbmQgLWUgZXhwcmVzc2lvbiBoYW5kbGVzIERPUy1zdHls ZSBmaWxlIG5hbWVzIHdpdGggZHJpdmUgbGV0dGVycy4KKysgIHNlZCAtZSAncy9eW146XSo6IC8g LycgXAorKyAgICAgIC1lICdzL15bJyRhbHBoYSddOlwvW146XSo6IC8gLycgPCAiJHRtcGRlcGZp bGUiID4+ICIkZGVwZmlsZSIKKysjIyBUaGlzIG5leHQgcGllY2Ugb2YgbWFnaWMgYXZvaWRzIHRo ZSBgZGVsZXRlZCBoZWFkZXIgZmlsZScgcHJvYmxlbS4KKysjIyBUaGUgcHJvYmxlbSBpcyB0aGF0 IHdoZW4gYSBoZWFkZXIgZmlsZSB3aGljaCBhcHBlYXJzIGluIGEgLlAgZmlsZQorKyMjIGlzIGRl bGV0ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtlIHRvIGRpZSAoYmVjYXVzZSB0aGVyZSBp cworKyMjIHR5cGljYWxseSBubyB3YXkgdG8gcmVidWlsZCB0aGUgaGVhZGVyKS4gIFdlIGF2b2lk IHRoaXMgYnkgYWRkaW5nCisrIyMgZHVtbXkgZGVwZW5kZW5jaWVzIGZvciBlYWNoIGhlYWRlciBm aWxlLiAgVG9vIGJhZCBnY2MgZG9lc24ndCBkbworKyMjIHRoaXMgZm9yIHVzIGRpcmVjdGx5Lgor KyAgdHIgJyAnICcKKysnIDwgIiR0bXBkZXBmaWxlIiB8CisrIyMgU29tZSB2ZXJzaW9ucyBvZiBn Y2MgcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBPbiB0aGUgdGhlb3J5CisrIyMgdGhhdCB0 aGUgc3BhY2UgbWVhbnMgc29tZXRoaW5nLCB3ZSBhZGQgYSBzcGFjZSB0byB0aGUgb3V0cHV0IGFz CisrIyMgd2VsbC4KKysjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4n dCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorKyMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGlu dG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCisrICAgIHNlZCAtZSAncy9e XFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBm aWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKytocCkKKysgICMgVGhpcyBj YXNlIGV4aXN0cyBvbmx5IHRvIGxldCBkZXBlbmQubTQgZG8gaXRzIHdvcmsuICBJdCB3b3JrcyBi eQorKyAgIyBsb29raW5nIGF0IHRoZSB0ZXh0IG9mIHRoaXMgc2NyaXB0LiAgVGhpcyBjYXNlIHdp bGwgbmV2ZXIgYmUgcnVuLAorKyAgIyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KKysg IGV4aXQgMQorKyAgOzsKKysKKytzZ2kpCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRo ZW4KKysgICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1wZGVwZmlsZSIKKysgIGVsc2UKKysgICAg IiRAIiAtTUR1cGRhdGUgIiR0bXBkZXBmaWxlIgorKyAgZmkKKysgIHN0YXQ9JD8KKysgIGlmIHRl c3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUi CisrICAgIGV4aXQgJHN0YXQKKysgIGZpCisrICBybSAtZiAiJGRlcGZpbGUiCisrCisrICBpZiB0 ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVzLCB0aGUgc291cmNlZmlsZSBkZXBlbmQg b24gb3RoZXIgZmlsZXMKKysgICAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKysK KysgICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVtZW50ICh0aGUgZGVwZW5kZW50KS4gIERv bid0IHRyeSB0byBiZQorKyAgICAjIGNsZXZlciBhbmQgcmVwbGFjZSB0aGlzIHdpdGggc2VkIGNv ZGUsIGFzIElSSVggc2VkIHdvbid0IGhhbmRsZQorKyAgICAjIGxpbmVzIHdpdGggbW9yZSB0aGFu IGEgZml4ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgKDQwOTYgaW4KKysgICAgIyBJUklYIDYuMiBz ZWQsIDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyByZW1vdmUgY29tbWVudCBsaW5lczsKKysg ICAgIyB0aGUgSVJJWCBjYyBhZGRzIGNvbW1lbnRzIGxpa2UgYCM6ZmVjJyB0byB0aGUgZW5kIG9m IHRoZQorKyAgICAjIGRlcGVuZGVuY3kgbGluZS4KKysgICAgdHIgJyAnICcKKysnIDwgIiR0bXBk ZXBmaWxlIiBcCisrICAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAn L14kLyBkJyB8IFwKKysgICAgdHIgJworKycgJyAnID4+ICRkZXBmaWxlCisrICAgIGVjaG8gPj4g JGRlcGZpbGUKKysKKysgICAgIyBUaGUgc2Vjb25kIHBhc3MgZ2VuZXJhdGVzIGEgZHVtbXkgZW50 cnkgZm9yIGVhY2ggaGVhZGVyIGZpbGUuCisrICAgIHRyICcgJyAnCisrJyA8ICIkdG1wZGVwZmls ZSIgXAorKyAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBk JyAtZSAncy8kLzovJyBcCisrICAgPj4gJGRlcGZpbGUKKysgIGVsc2UKKysgICAgIyBUaGUgc291 cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKKysgICAg IyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGluZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhlIE1h a2VmaWxlCisrICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCisrICAgIGVjaG8g IiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICBmaQorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAg OzsKKysKKythaXgpCisrICAjIFRoZSBDIGZvciBBSVggQ29tcGlsZXIgdXNlcyAtTSBhbmQgb3V0 cHV0cyB0aGUgZGVwZW5kZW5jaWVzCisrICAjIGluIGEgLnUgZmlsZS4gIEluIG9sZGVyIHZlcnNp b25zLCB0aGlzIGZpbGUgYWx3YXlzIGxpdmVzIGluIHRoZQorKyAgIyBjdXJyZW50IGRpcmVjdG9y eS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9iamVjdDonIGF0IHRoZQorKyAgIyBz dGFydCBvZiBlYWNoIGxpbmU7ICRvYmplY3QgZG9lc24ndCBoYXZlIGRpcmVjdG9yeSBpbmZvcm1h dGlvbi4KKysgICMgVmVyc2lvbiA2IHVzZXMgdGhlIGRpcmVjdG9yeSBpbiBib3RoIGNhc2VzLgor KyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKKysgIHRlc3Qg IngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQorKyAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBz ZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAorKyAgaWYgdGVz dCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS51Cisr ICAgIHRtcGRlcGZpbGUyPSRiYXNlLnUKKysgICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNl LnUKKysgICAgIiRAIiAtV2MsLU0KKysgIGVsc2UKKysgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNl LnUKKysgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLnUKKysgICAgdG1wZGVwZmlsZTM9JGRpciRi YXNlLnUKKysgICAgIiRAIiAtTQorKyAgZmkKKysgIHN0YXQ9JD8KKysKKysgIGlmIHRlc3QgJHN0 YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRt cGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgorKyAgICBleGl0ICRzdGF0CisrICBmaQorKworKyAg Zm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBm aWxlMyIKKysgIGRvCisrICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgZG9u ZQorKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCisrICAgICMgRWFjaCBsaW5lIGlz IG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgorKyAgICAjIERvIHR3byBwYXNzZXMs IG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bworKyAgICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQu aCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCisrICAgIHNlZCAtZSAicyxeLipc LlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisrICAgICMg VGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4KKysgICAgc2VkIC1lICdzLF4uKlwu W2Etel0qOlsJIF0qLCwnIC1lICdzLCQsOiwnIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUi CisrICBlbHNlCisrICAgICMgVGhlIHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVw ZW5kZW5jaWVzLCBzbyBqdXN0CisrICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRv IGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQorKyAgICAjICJpbmNsdWRlIGJhc2VuYW1l LlBsbyIgc2NoZW1lLgorKyAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgorKyAgZmkKKysg IHJtIC1mICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisraWNjKQorKyAgIyBJbnRlbCdzIEMgY29t cGlsZXIgdW5kZXJzdGFuZHMgYC1NRCAtTUYgZmlsZScuICBIb3dldmVyIG9uCisrICAjICAgIGlj YyAtTUQgLU1GIGZvby5kIC1jIC1vIHN1Yi9mb28ubyBzdWIvZm9vLmMKKysgICMgSUNDIDcuMCB3 aWxsIGZpbGwgZm9vLmQgd2l0aCBzb21ldGhpbmcgbGlrZQorKyAgIyAgICBmb28ubzogc3ViL2Zv by5jCisrICAjICAgIGZvby5vOiBzdWIvZm9vLmgKKysgICMgd2hpY2ggaXMgd3JvbmcuICBXZSB3 YW50OgorKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uYworKyAgIyAgICBzdWIvZm9vLm86IHN1 Yi9mb28uaAorKyAgIyAgICBzdWIvZm9vLmM6CisrICAjICAgIHN1Yi9mb28uaDoKKysgICMgSUND IDcuMSB3aWxsIG91dHB1dAorKyAgIyAgICBmb28ubzogc3ViL2Zvby5jIHN1Yi9mb28uaAorKyAg IyBhbmQgd2lsbCB3cmFwIGxvbmcgbGluZXMgdXNpbmcgXCA6CisrICAjICAgIGZvby5vOiBzdWIv Zm9vLmMgLi4uIFwKKysgICMgICAgIHN1Yi9mb28uaCAuLi4gXAorKyAgIyAgICAgLi4uCisrCisr ICAiJEAiIC1NRCAtTUYgIiR0bXBkZXBmaWxlIgorKyAgc3RhdD0kPworKyAgaWYgdGVzdCAkc3Rh dCAtZXEgMDsgdGhlbiA6CisrICBlbHNlCisrICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgICAg ZXhpdCAkc3RhdAorKyAgZmkKKysgIHJtIC1mICIkZGVwZmlsZSIKKysgICMgRWFjaCBsaW5lIGlz IG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLAorKyAgIyBvciBgZm9vLm86IGRlcDEu aCBkZXAyLmggXCcsIG9yIGAgZGVwMy5oIGRlcDQuaCBcJy4KKysgICMgRG8gdHdvIHBhc3Nlcywg b25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCisrICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcg YW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCisrICBzZWQgInMsXlteOl0qOiwkb2Jq ZWN0IDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisrICAjIFNvbWUgdmVyc2lvbnMg b2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisrICAj IGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdv cmthcm91bmQuCisrICBzZWQgJ3MsXlteOl0qOiBcKC4qXCkkLFwxLDtzL15cXCQvLzsvXiQvZDsv OiQvZCcgPCAiJHRtcGRlcGZpbGUiIHwKKysgICAgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZp bGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK2hwMikKKysgICMgVGhlICJo cCIgc3RhbnphIGFib3ZlIGRvZXMgbm90IHdvcmsgd2l0aCBhQ0MgKEMrKykgYW5kIEhQJ3MgaWE2 NAorKyAgIyBjb21waWxlcnMsIHdoaWNoIGhhdmUgaW50ZWdyYXRlZCBwcmVwcm9jZXNzb3JzLiAg VGhlIGNvcnJlY3Qgb3B0aW9uCisrICAjIHRvIHVzZSB3aXRoIHRoZXNlIGlzICtNYWtlZDsgaXQg d3JpdGVzIGRlcGVuZGVuY2llcyB0byBhIGZpbGUgbmFtZWQKKysgICMgJ2Zvby5kJywgd2hpY2gg bGFuZHMgbmV4dCB0byB0aGUgb2JqZWN0IGZpbGUsIHdoZXJldmVyIHRoYXQKKysgICMgaGFwcGVu cyB0byBiZS4KKysgICMgTXVjaCBvZiB0aGlzIGlzIHNpbWlsYXIgdG8gdGhlIHRydTY0IGNhc2U7 IHNlZSBjb21tZW50cyB0aGVyZS4KKysgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8 L1teL10qJHwvfCdgCisrICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKysgIGJh c2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAn cy9cLmxvJC8vJ2AKKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB0bXBk ZXBmaWxlMT0kZGlyJGJhc2UuZAorKyAgICB0bXBkZXBmaWxlMj0kZGlyLmxpYnMvJGJhc2UuZAor KyAgICAiJEAiIC1XYywrTWFrZWQKKysgIGVsc2UKKysgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNl LmQKKysgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLmQKKysgICAgIiRAIiArTWFrZWQKKysgIGZp CisrICBzdGF0PSQ/CisrICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysg ICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiCisrICAgICBleGl0ICRzdGF0 CisrICBmaQorKworKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBm aWxlMiIKKysgIGRvCisrICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgZG9u ZQorKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCisrICAgIHNlZCAtZSAicyxeLipc LlthLXpdKjosJG9iamVjdDosIiAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgICAjIEFk ZCBgZGVwZW5kZW50Lmg6JyBsaW5lcy4KKysgICAgc2VkIC1uZSAnMiwkezsgcy9eICovLzsgcy8g XFwqJC8vOyBzLyQvOi87IHA7fScgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisrICBlbHNl CisrICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICBmaQorKyAgcm0gLWYgIiR0bXBk ZXBmaWxlIiAiJHRtcGRlcGZpbGUyIgorKyAgOzsKKysKKyt0cnU2NCkKKysgICAjIFRoZSBUcnU2 NCBjb21waWxlciB1c2VzIC1NRCB0byBnZW5lcmF0ZSBkZXBlbmRlbmNpZXMgYXMgYSBzaWRlCisr ICAgIyBlZmZlY3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVwZW5kZW5jaWVz IGludG8gYGZvby5vLmQnLgorKyAgICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0IDYuMSwgQ29t cGFxIENDQyBWNi4yLTUwNCBzZWVtcyB0byBwdXQKKysgICAjIGRlcGVuZGVuY2llcyBpbiBgZm9v LmQnIGluc3RlYWQsIHNvIHdlIGNoZWNrIGZvciB0aGF0IHRvby4KKysgICAjIFN1YmRpcmVjdG9y aWVzIGFyZSByZXNwZWN0ZWQuCisrICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wv W14vXSokfC98J2AKKysgICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKysgICBi YXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUg J3MvXC5sbyQvLydgCisrCisrICAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAg ICAgIyBXaXRoIFRydTY0IGNjLCBzaGFyZWQgb2JqZWN0cyBjYW4gYWxzbyBiZSB1c2VkIHRvIG1h a2UgYQorKyAgICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBpcyB1c2VkIGlu IGxpYnRvb2wgMS40IHNlcmllcyB0bworKyAgICAgICMgaGFuZGxlIGJvdGggc2hhcmVkIGFuZCBz dGF0aWMgbGlicmFyaWVzIGluIGEgc2luZ2xlIGNvbXBpbGF0aW9uLgorKyAgICAgICMgV2l0aCBs aWJ0b29sIDEuNCwgZGVwZW5kZW5jaWVzIHdlcmUgb3V0cHV0IGluICRkaXIubGlicy8kYmFzZS5s by5kLgorKyAgICAgICMKKysgICAgICAjIFdpdGggbGlidG9vbCAxLjUgdGhpcyBleGNlcHRpb24g d2FzIHJlbW92ZWQsIGFuZCBsaWJ0b29sIG5vdworKyAgICAgICMgZ2VuZXJhdGVzIDIgc2VwYXJh dGUgb2JqZWN0cyBmb3IgdGhlIDIgbGlicmFyaWVzLiAgVGhlc2UgdHdvCisrICAgICAgIyBjb21w aWxhdGlvbnMgb3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uuby5kIGFuZAor KyAgICAgICMgaW4gJGRpciRiYXNlLm8uZC4gIFdlIGhhdmUgdG8gY2hlY2sgZm9yIGJvdGggZmls ZXMsIGJlY2F1c2UKKysgICAgICAjIG9uZSBvZiB0aGUgdHdvIGNvbXBpbGF0aW9ucyBjYW4gYmUg ZGlzYWJsZWQuICBXZSBzaG91bGQgcHJlZmVyCisrICAgICAgIyAkZGlyJGJhc2Uuby5kIG92ZXIg JGRpci5saWJzLyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMKKysgICAgICAjIGF1dG9t YXRpY2FsbHkgY2xlYW5lZCB3aGVuIC5saWJzLyBpcyBkZWxldGVkLCB3aGlsZSBpZ25vcmluZwor KyAgICAgICMgdGhlIGZvcm1lciB3b3VsZCBjYXVzZSBhIGRpc3RjbGVhbmNoZWNrIHBhbmljLgor KyAgICAgIHRtcGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0b29sIDEuNAor KyAgICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5vLmQgICAgICAgICAgIyBsaWJ0b29sIDEuNQor KyAgICAgIHRtcGRlcGZpbGUzPSRkaXIubGlicy8kYmFzZS5vLmQgICAgIyBsaWJ0b29sIDEuNQor KyAgICAgIHRtcGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5kICAgICAgIyBDb21wYXEgQ0NDIFY2 LjItNTA0CisrICAgICAgIiRAIiAtV2MsLU1ECisrICAgZWxzZQorKyAgICAgIHRtcGRlcGZpbGUx PSRkaXIkYmFzZS5vLmQKKysgICAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAorKyAgICAgIHRt cGRlcGZpbGUzPSRkaXIkYmFzZS5kCisrICAgICAgdG1wZGVwZmlsZTQ9JGRpciRiYXNlLmQKKysg ICAgICAiJEAiIC1NRAorKyAgIGZpCisrCisrICAgc3RhdD0kPworKyAgIGlmIHRlc3QgJHN0YXQg LWVxIDA7IHRoZW4gOgorKyAgIGVsc2UKKysgICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRt cGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0IgorKyAgICAgIGV4aXQgJHN0 YXQKKysgICBmaQorKworKyAgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1w ZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQiCisrICAgZG8KKysgICAgIHRl c3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgIGRvbmUKKysgICBpZiB0ZXN0IC1mICIk dG1wZGVwZmlsZSI7IHRoZW4KKysgICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6 LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgICAgICMgVGhhdCdzIGEgdGFiIGFu ZCBhIHNwYWNlIGluIHRoZSBbXS4KKysgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSos LCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysgICBlbHNlCisr ICAgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKysgICBmaQorKyAgIHJtIC1mICIkdG1w ZGVwZmlsZSIKKysgICA7OworKworKyNub3NpZGVlZmZlY3QpCisrICAjIFRoaXMgY29tbWVudCBh Ym92ZSBpcyB1c2VkIGJ5IGF1dG9tYWtlIHRvIHRlbGwgc2lkZS1lZmZlY3QKKysgICMgZGVwZW5k ZW5jeSB0cmFja2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCisrCisrZGFzaG1zdGRv dXQpCisrICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwg YSBjb21waWxlciAqbXVzdCoKKysgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmls ZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCisrICAiJEAiIHx8IGV4aXQgJD8KKysKKysg ICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5 ZXM7IHRoZW4KKysgICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbworKyAg ICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysgIGZpCisrCisrICAjIFJlbW92ZSBg LW8gJG9iamVjdCcuCisrICBJRlM9IiAiCisrICBmb3IgYXJnCisrICBkbworKyAgICBjYXNlICRh cmcgaW4KKysgICAgLW8pCisrICAgICAgc2hpZnQKKysgICAgICA7OworKyAgICAkb2JqZWN0KQor KyAgICAgIHNoaWZ0CisrICAgICAgOzsKKysgICAgKikKKysgICAgICBzZXQgZm5vcmQgIiRAIiAi JGFyZyIKKysgICAgICBzaGlmdCAjIGZub3JkCisrICAgICAgc2hpZnQgIyAkYXJnCisrICAgICAg OzsKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgdGVzdCAteiAiJGRhc2htZmxhZyIgJiYgZGFz aG1mbGFnPS1NCisrICAjIFJlcXVpcmUgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIHNl YXJjaGluZyBmb3IgYDonCisrICAjIGluIHRoZSB0YXJnZXQgbmFtZS4gIFRoaXMgaXMgdG8gY29w ZSB3aXRoIERPUy1zdHlsZSBmaWxlbmFtZXM6CisrICAjIGEgZGVwZW5kZW5jeSBzdWNoIGFzIGBj Oi9mb28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBgYycgb3RoZXJ3aXNlLgorKyAgIiRA IiAkZGFzaG1mbGFnIHwKKysgICAgc2VkICdzOl5bICBdKlteOiBdW146XVteOl0qXDpbICAgIF0q OiciJG9iamVjdCInXDogOicgPiAiJHRtcGRlcGZpbGUiCisrICBybSAtZiAiJGRlcGZpbGUiCisr ICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgdHIgJyAnICcKKysnIDwgIiR0 bXBkZXBmaWxlIiB8IFwKKysjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBj YW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorKyMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0 IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCisrICAgIHNlZCAtZSAn cy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRk ZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKytkYXNoWG1zdGRvdXQp CisrICAjIFRoaXMgY2FzZSBvbmx5IGV4aXN0cyB0byBzYXRpc2Z5IGRlcGVuZC5tNC4gIEl0IGlz IG5ldmVyIGFjdHVhbGx5CisrICAjIHJ1biwgYXMgdGhpcyBtb2RlIGlzIHNwZWNpYWxseSByZWNv Z25pemVkIGluIHRoZSBwcmVhbWJsZS4KKysgIGV4aXQgMQorKyAgOzsKKysKKyttYWtlZGVwZW5k KQorKyAgIiRAIiB8fCBleGl0ICQ/CisrICAjIFJlbW92ZSBhbnkgTGlidG9vbCBjYWxsCisrICBp ZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1t b2RlPWNvbXBpbGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysg IGZpCisrICAjIFggbWFrZWRlcGVuZAorKyAgc2hpZnQKKysgIGNsZWFyZWQ9bm8KKysgIGZvciBh cmcgaW4gIiRAIjsgZG8KKysgICAgY2FzZSAkY2xlYXJlZCBpbgorKyAgICBubykKKysgICAgICBz ZXQgIiI7IHNoaWZ0CisrICAgICAgY2xlYXJlZD15ZXMgOzsKKysgICAgZXNhYworKyAgICBjYXNl ICIkYXJnIiBpbgorKyAgICAtRCp8LUkqKQorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsg c2hpZnQgOzsKKysgICAgIyBTdHJpcCBhbnkgb3B0aW9uIHRoYXQgbWFrZWRlcGVuZCBtYXkgbm90 IHVuZGVyc3RhbmQuICBSZW1vdmUKKysgICAgIyB0aGUgb2JqZWN0IHRvbywgb3RoZXJ3aXNlIG1h a2VkZXBlbmQgd2lsbCBwYXJzZSBpdCBhcyBhIHNvdXJjZSBmaWxlLgorKyAgICAtKnwkb2JqZWN0 KQorKyAgICAgIDs7CisrICAgICopCisrICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlm dCA7OworKyAgICBlc2FjCisrICBkb25lCisrICBvYmpfc3VmZml4PSJgZWNobyAkb2JqZWN0IHwg c2VkICdzL14uKlwuLy4vJ2AiCisrICB0b3VjaCAiJHRtcGRlcGZpbGUiCisrICAke01BS0VERVBF TkQtbWFrZWRlcGVuZH0gLW8iJG9ial9zdWZmaXgiIC1mIiR0bXBkZXBmaWxlIiAiJEAiCisrICBy bSAtZiAiJGRlcGZpbGUiCisrICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAg c2VkICcxLDJkJyAiJHRtcGRlcGZpbGUiIHwgdHIgJyAnICcKKysnIHwgXAorKyMjIFNvbWUgdmVy c2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9u CisrIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlz IGEgd29ya2Fyb3VuZC4KKysgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzok L2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZp bGUiICIkdG1wZGVwZmlsZSIuYmFrCisrICA7OworKworK2NwcCkKKysgICMgSW1wb3J0YW50IG5v dGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgorKyAg IyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KKysgICIkQCIg fHwgZXhpdCAkPworKworKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKysgIGlmIHRl c3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9 Y29tcGlsZSc7IGRvCisrICAgICAgc2hpZnQKKysgICAgZG9uZQorKyAgICBzaGlmdAorKyAgZmkK KysKKysgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KKysgIElGUz0iICIKKysgIGZvciBhcmcKKysg IGRvCisrICAgIGNhc2UgJGFyZyBpbgorKyAgICAtbykKKysgICAgICBzaGlmdAorKyAgICAgIDs7 CisrICAgICRvYmplY3QpCisrICAgICAgc2hpZnQKKysgICAgICA7OworKyAgICAqKQorKyAgICAg IHNldCBmbm9yZCAiJEAiICIkYXJnIgorKyAgICAgIHNoaWZ0ICMgZm5vcmQKKysgICAgICBzaGlm dCAjICRhcmcKKysgICAgICA7OworKyAgICBlc2FjCisrICBkb25lCisrCisrICAiJEAiIC1FIHwK KysgICAgc2VkIC1uIC1lICcvXiMgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxc OnAnIFwKKysgICAgICAgLWUgJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6 IFwxIFxcOnAnIHwKKysgICAgc2VkICckIHM6IFxcJDo6JyA+ICIkdG1wZGVwZmlsZSIKKysgIHJt IC1mICIkZGVwZmlsZSIKKysgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCisrICBj YXQgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysgIHNlZCA8ICIkdG1wZGVwZmlsZSIg Jy9eJC9kO3MvXiAvLztzLyBcXCQvLztzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAi JHRtcGRlcGZpbGUiCisrICA7OworKworK21zdmlzdWFsY3BwKQorKyAgIyBJbXBvcnRhbnQgbm90 ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCisrICAj IGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LCByZWdhcmRsZXNz IG9mIC1vLAorKyAgIyBiZWNhdXNlIHdlIG11c3QgdXNlIC1vIHdoZW4gcnVubmluZyBsaWJ0b29s LgorKyAgIiRAIiB8fCBleGl0ICQ/CisrICBJRlM9IiAiCisrICBmb3IgYXJnCisrICBkbworKyAg ICBjYXNlICIkYXJnIiBpbgorKyAgICAiLUdtInwiL0dtInwiLUdpInwiL0dpInwiLVpJInwiL1pJ IikKKysJc2V0IGZub3JkICIkQCIKKysJc2hpZnQKKysJc2hpZnQKKysJOzsKKysgICAgKikKKysJ c2V0IGZub3JkICIkQCIgIiRhcmciCisrCXNoaWZ0CisrCXNoaWZ0CisrCTs7CisrICAgIGVzYWMK KysgIGRvbmUKKysgICIkQCIgLUUgfAorKyAgc2VkIC1uICcvXiNsaW5lIFswLTldWzAtOV0qICJc KFteIl0qXCkiLyBzOjplY2hvICJgY3lncGF0aCAtdSBcXCJcMVxcImAiOnAnIHwgc29ydCB8IHVu aXEgPiAiJHRtcGRlcGZpbGUiCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBlY2hvICIkb2JqZWN0 IDogXFwiID4gIiRkZXBmaWxlIgorKyAgLiAiJHRtcGRlcGZpbGUiIHwgc2VkICdzJSAlXFwgJWcn IHwgc2VkIC1uICcvXlwoLipcKSQvIHM6OglcMSBcXDpwJyA+PiAiJGRlcGZpbGUiCisrICBlY2hv ICIJIiA+PiAiJGRlcGZpbGUiCisrICAuICIkdG1wZGVwZmlsZSIgfCBzZWQgJ3MlICVcXCAlZycg fCBzZWQgLW4gJy9eXCguKlwpJC8gczo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAi JHRtcGRlcGZpbGUiCisrICA7OworKworK25vbmUpCisrICBleGVjICIkQCIKKysgIDs7CisrCisr KikKKysgIGVjaG8gIlVua25vd24gZGVwbW9kZSAkZGVwbW9kZSIgMT4mMgorKyAgZXhpdCAxCisr ICA7OworK2VzYWMKKysKKytleGl0IDAKKysKKysjIExvY2FsIFZhcmlhYmxlczoKKysjIG1vZGU6 IHNoZWxsLXNjcmlwdAorKyMgc2gtaW5kZW50YXRpb246IDIKKysjIGV2YWw6IChhZGQtaG9vayAn d3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3Jp cHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgor KyMgdGltZS1zdGFtcC1lbmQ6ICIkIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9pbnN0YWxsLXNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvaW5zdGFsbC1z aAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxsLXNoCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9pbnN0 YWxsLXNoCTIwMDktMDUtMjMgMTA6MDI6MDEuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUx OSBAQAorKyMhL2Jpbi9zaAorKyMgaW5zdGFsbCAtIGluc3RhbGwgYSBwcm9ncmFtLCBzY3JpcHQs IG9yIGRhdGFmaWxlCisrCisrc2NyaXB0dmVyc2lvbj0yMDA2LTEyLTI1LjAwCisrCisrIyBUaGlz IG9yaWdpbmF0ZXMgZnJvbSBYMTFSNSAobWl0L3V0aWwvc2NyaXB0cy9pbnN0YWxsLnNoKSwgd2hp Y2ggd2FzCisrIyBsYXRlciByZWxlYXNlZCBpbiBYMTFSNiAoeGMvY29uZmlnL3V0aWwvaW5zdGFs bC5zaCkgd2l0aCB0aGUKKysjIGZvbGxvd2luZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UuCisrIwor KyMgQ29weXJpZ2h0IChDKSAxOTk0IFggQ29uc29ydGl1bQorKyMKKysjIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh IGNvcHkKKysjIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworKyMgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKysjIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsIGFuZC9vcgorKyMgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKysjIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisrIworKyMgVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j bHVkZWQgaW4KKysjIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv ZnR3YXJlLgorKyMKKysjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisrIyBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKysj IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTCBUSEUKKysjIFggQ09OU09SVElVTSBCRSBMSUFCTEUgRk9SIEFOWSBD TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKysjIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S IElOIENPTk5FQy0KKysjIFRJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF UiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisrIworKyMgRXhjZXB0IGFzIGNvbnRhaW5lZCBp biB0aGlzIG5vdGljZSwgdGhlIG5hbWUgb2YgdGhlIFggQ29uc29ydGl1bSBzaGFsbCBub3QKKysj IGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUs IHVzZSBvciBvdGhlciBkZWFsLQorKyMgaW5ncyBpbiB0aGlzIFNvZnR3YXJlIHdpdGhvdXQgcHJp b3Igd3JpdHRlbiBhdXRob3JpemF0aW9uIGZyb20gdGhlIFggQ29uc29yLQorKyMgdGl1bS4KKysj CisrIworKyMgRlNGIGNoYW5nZXMgdG8gdGhpcyBmaWxlIGFyZSBpbiB0aGUgcHVibGljIGRvbWFp bi4KKysjCisrIyBDYWxsaW5nIHRoaXMgc2NyaXB0IGluc3RhbGwtc2ggaXMgcHJlZmVycmVkIG92 ZXIgaW5zdGFsbC5zaCwgdG8gcHJldmVudAorKyMgYG1ha2UnIGltcGxpY2l0IHJ1bGVzIGZyb20g Y3JlYXRpbmcgYSBmaWxlIGNhbGxlZCBpbnN0YWxsIGZyb20gaXQKKysjIHdoZW4gdGhlcmUgaXMg bm8gTWFrZWZpbGUuCisrIworKyMgVGhpcyBzY3JpcHQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBC U0QgaW5zdGFsbCBzY3JpcHQsIGJ1dCB3YXMgd3JpdHRlbgorKyMgZnJvbSBzY3JhdGNoLgorKwor K25sPScKKysnCisrSUZTPSIgIiIJJG5sIgorKworKyMgc2V0IERPSVRQUk9HIHRvIGVjaG8gdG8g dGVzdCB0aGlzIHNjcmlwdAorKworKyMgRG9uJ3QgdXNlIDotIHNpbmNlIDQuM0JTRCBhbmQgZWFy bGllciBzaGVsbHMgZG9uJ3QgbGlrZSBpdC4KKytkb2l0PSR7RE9JVFBST0ctfQorK2lmIHRlc3Qg LXogIiRkb2l0IjsgdGhlbgorKyAgZG9pdF9leGVjPWV4ZWMKKytlbHNlCisrICBkb2l0X2V4ZWM9 JGRvaXQKKytmaQorKworKyMgUHV0IGluIGFic29sdXRlIGZpbGUgbmFtZXMgaWYgeW91IGRvbid0 IGhhdmUgdGhlbSBpbiB5b3VyIHBhdGg7CisrIyBvciB1c2UgZW52aXJvbm1lbnQgdmFycy4KKysK KytjaGdycHByb2c9JHtDSEdSUFBST0ctY2hncnB9CisrY2htb2Rwcm9nPSR7Q0hNT0RQUk9HLWNo bW9kfQorK2Nob3ducHJvZz0ke0NIT1dOUFJPRy1jaG93bn0KKytjbXBwcm9nPSR7Q01QUFJPRy1j bXB9CisrY3Bwcm9nPSR7Q1BQUk9HLWNwfQorK21rZGlycHJvZz0ke01LRElSUFJPRy1ta2Rpcn0K KyttdnByb2c9JHtNVlBST0ctbXZ9Cisrcm1wcm9nPSR7Uk1QUk9HLXJtfQorK3N0cmlwcHJvZz0k e1NUUklQUFJPRy1zdHJpcH0KKysKKytwb3NpeF9nbG9iPSc/JworK2luaXRpYWxpemVfcG9zaXhf Z2xvYj0nCisrICB0ZXN0ICIkcG9zaXhfZ2xvYiIgIT0gIj8iIHx8IHsKKysgICAgaWYgKHNldCAt ZikgMj4vZGV2L251bGw7IHRoZW4KKysgICAgICBwb3NpeF9nbG9iPQorKyAgICBlbHNlCisrICAg ICAgcG9zaXhfZ2xvYj06CisrICAgIGZpCisrICB9CisrJworKworK3Bvc2l4X21rZGlyPQorKwor KyMgRGVzaXJlZCBtb2RlIG9mIGluc3RhbGxlZCBmaWxlLgorK21vZGU9MDc1NQorKworK2NoZ3Jw Y21kPQorK2NobW9kY21kPSRjaG1vZHByb2cKKytjaG93bmNtZD0KKyttdmNtZD0kbXZwcm9nCisr cm1jbWQ9IiRybXByb2cgLWYiCisrc3RyaXBjbWQ9CisrCisrc3JjPQorK2RzdD0KKytkaXJfYXJn PQorK2RzdF9hcmc9CisrCisrY29weV9vbl9jaGFuZ2U9ZmFsc2UKKytub190YXJnZXRfZGlyZWN0 b3J5PQorKworK3VzYWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFstVF0gU1JDRklMRSBE U1RGSUxFCisrICAgb3I6ICQwIFtPUFRJT05dLi4uIFNSQ0ZJTEVTLi4uIERJUkVDVE9SWQorKyAg IG9yOiAkMCBbT1BUSU9OXS4uLiAtdCBESVJFQ1RPUlkgU1JDRklMRVMuLi4KKysgICBvcjogJDAg W09QVElPTl0uLi4gLWQgRElSRUNUT1JJRVMuLi4KKysKKytJbiB0aGUgMXN0IGZvcm0sIGNvcHkg U1JDRklMRSB0byBEU1RGSUxFLgorK0luIHRoZSAybmQgYW5kIDNyZCwgY29weSBhbGwgU1JDRklM RVMgdG8gRElSRUNUT1JZLgorK0luIHRoZSA0dGgsIGNyZWF0ZSBESVJFQ1RPUklFUy4KKysKKytP cHRpb25zOgorKyAgICAgLS1oZWxwICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdC4KKysg ICAgIC0tdmVyc2lvbiAgZGlzcGxheSB2ZXJzaW9uIGluZm8gYW5kIGV4aXQuCisrCisrICAtYyAg ICAgICAgICAgIChpZ25vcmVkKQorKyAgLUMgICAgICAgICAgICBpbnN0YWxsIG9ubHkgaWYgZGlm ZmVyZW50IChwcmVzZXJ2ZSB0aGUgbGFzdCBkYXRhIG1vZGlmaWNhdGlvbiB0aW1lKQorKyAgLWQg ICAgICAgICAgICBjcmVhdGUgZGlyZWN0b3JpZXMgaW5zdGVhZCBvZiBpbnN0YWxsaW5nIGZpbGVz LgorKyAgLWcgR1JPVVAgICAgICAkY2hncnBwcm9nIGluc3RhbGxlZCBmaWxlcyB0byBHUk9VUC4K KysgIC1tIE1PREUgICAgICAgJGNobW9kcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gTU9ERS4KKysg IC1vIFVTRVIgICAgICAgJGNob3ducHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gVVNFUi4KKysgIC1z ICAgICAgICAgICAgJHN0cmlwcHJvZyBpbnN0YWxsZWQgZmlsZXMuCisrICAtdCBESVJFQ1RPUlkg IGluc3RhbGwgaW50byBESVJFQ1RPUlkuCisrICAtVCAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJv ciBpZiBEU1RGSUxFIGlzIGEgZGlyZWN0b3J5LgorKworK0Vudmlyb25tZW50IHZhcmlhYmxlcyBv dmVycmlkZSB0aGUgZGVmYXVsdCBjb21tYW5kczoKKysgIENIR1JQUFJPRyBDSE1PRFBST0cgQ0hP V05QUk9HIENNUFBST0cgQ1BQUk9HIE1LRElSUFJPRyBNVlBST0cKKysgIFJNUFJPRyBTVFJJUFBS T0cKKysiCisrCisrd2hpbGUgdGVzdCAkIyAtbmUgMDsgZG8KKysgIGNhc2UgJDEgaW4KKysgICAg LWMpIDs7CisrCisrICAgIC1DKSBjb3B5X29uX2NoYW5nZT10cnVlOzsKKysKKysgICAgLWQpIGRp cl9hcmc9dHJ1ZTs7CisrCisrICAgIC1nKSBjaGdycGNtZD0iJGNoZ3JwcHJvZyAkMiIKKysJc2hp ZnQ7OworKworKyAgICAtLWhlbHApIGVjaG8gIiR1c2FnZSI7IGV4aXQgJD87OworKworKyAgICAt bSkgbW9kZT0kMgorKwljYXNlICRtb2RlIGluCisrCSAgKicgJyogfCAqJwknKiB8IConCisrJyoJ ICB8IConKicqIHwgKic/JyogfCAqJ1snKikKKysJICAgIGVjaG8gIiQwOiBpbnZhbGlkIG1vZGU6 ICRtb2RlIiA+JjIKKysJICAgIGV4aXQgMTs7CisrCWVzYWMKKysJc2hpZnQ7OworKworKyAgICAt bykgY2hvd25jbWQ9IiRjaG93bnByb2cgJDIiCisrCXNoaWZ0OzsKKysKKysgICAgLXMpIHN0cmlw Y21kPSRzdHJpcHByb2c7OworKworKyAgICAtdCkgZHN0X2FyZz0kMgorKwlzaGlmdDs7CisrCisr ICAgIC1UKSBub190YXJnZXRfZGlyZWN0b3J5PXRydWU7OworKworKyAgICAtLXZlcnNpb24pIGVj aG8gIiQwICRzY3JpcHR2ZXJzaW9uIjsgZXhpdCAkPzs7CisrCisrICAgIC0tKQlzaGlmdAorKwli cmVhazs7CisrCisrICAgIC0qKQllY2hvICIkMDogaW52YWxpZCBvcHRpb246ICQxIiA+JjIKKysJ ZXhpdCAxOzsKKysKKysgICAgKikgIGJyZWFrOzsKKysgIGVzYWMKKysgIHNoaWZ0CisrZG9uZQor KworK2lmIHRlc3QgJCMgLW5lIDAgJiYgdGVzdCAteiAiJGRpcl9hcmckZHN0X2FyZyI7IHRoZW4K KysgICMgV2hlbiAtZCBpcyB1c2VkLCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgZGlyZWN0 b3JpZXMgdG8gY3JlYXRlLgorKyAgIyBXaGVuIC10IGlzIHVzZWQsIHRoZSBkZXN0aW5hdGlvbiBp cyBhbHJlYWR5IHNwZWNpZmllZC4KKysgICMgT3RoZXJ3aXNlLCB0aGUgbGFzdCBhcmd1bWVudCBp cyB0aGUgZGVzdGluYXRpb24uICBSZW1vdmUgaXQgZnJvbSAkQC4KKysgIGZvciBhcmcKKysgIGRv CisrICAgIGlmIHRlc3QgLW4gIiRkc3RfYXJnIjsgdGhlbgorKyAgICAgICMgJEAgaXMgbm90IGVt cHR5OiBpdCBjb250YWlucyBhdCBsZWFzdCAkYXJnLgorKyAgICAgIHNldCBmbm9yZCAiJEAiICIk ZHN0X2FyZyIKKysgICAgICBzaGlmdCAjIGZub3JkCisrICAgIGZpCisrICAgIHNoaWZ0ICMgYXJn CisrICAgIGRzdF9hcmc9JGFyZworKyAgZG9uZQorK2ZpCisrCisraWYgdGVzdCAkIyAtZXEgMDsg dGhlbgorKyAgaWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVuCisrICAgIGVjaG8gIiQwOiBubyBp bnB1dCBmaWxlIHNwZWNpZmllZC4iID4mMgorKyAgICBleGl0IDEKKysgIGZpCisrICAjIEl0J3Mg T0sgdG8gY2FsbCBgaW5zdGFsbC1zaCAtZCcgd2l0aG91dCBhcmd1bWVudC4KKysgICMgVGhpcyBj YW4gaGFwcGVuIHdoZW4gY3JlYXRpbmcgY29uZGl0aW9uYWwgZGlyZWN0b3JpZXMuCisrICBleGl0 IDAKKytmaQorKworK2lmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhlbgorKyAgdHJhcCAnKGV4aXQg JD8pOyBleGl0JyAxIDIgMTMgMTUKKysKKysgICMgU2V0IHVtYXNrIHNvIGFzIG5vdCB0byBjcmVh dGUgdGVtcHMgd2l0aCB0b28tZ2VuZXJvdXMgbW9kZXMuCisrICAjIEhvd2V2ZXIsICdzdHJpcCcg cmVxdWlyZXMgYm90aCByZWFkIGFuZCB3cml0ZSBhY2Nlc3MgdG8gdGVtcHMuCisrICBjYXNlICRt b2RlIGluCisrICAgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgorKyAgICAqNjQ0KSBjcF91bWFz az0xMzM7OworKyAgICAqNzU1KSBjcF91bWFzaz0yMjs7CisrCisrICAgICpbMC03XSkKKysgICAg ICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCisrCXVfcGx1c19ydz0KKysgICAgICBlbHNl CisrCXVfcGx1c19ydz0nJSAyMDAnCisrICAgICAgZmkKKysgICAgICBjcF91bWFzaz1gZXhwciAn KCcgNzc3IC0gJG1vZGUgJSAxMDAwICcpJyAkdV9wbHVzX3J3YDs7CisrICAgICopCisrICAgICAg aWYgdGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgorKwl1X3BsdXNfcnc9CisrICAgICAgZWxzZQor Kwl1X3BsdXNfcnc9LHUrcncKKysgICAgICBmaQorKyAgICAgIGNwX3VtYXNrPSRtb2RlJHVfcGx1 c19ydzs7CisrICBlc2FjCisrZmkKKysKKytmb3Igc3JjCisrZG8KKysgICMgUHJvdGVjdCBuYW1l cyBzdGFydGluZyB3aXRoIGAtJy4KKysgIGNhc2UgJHNyYyBpbgorKyAgICAtKikgc3JjPS4vJHNy Yzs7CisrICBlc2FjCisrCisrICBpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KKysgICAgZHN0 PSRzcmMKKysgICAgZHN0ZGlyPSRkc3QKKysgICAgdGVzdCAtZCAiJGRzdGRpciIKKysgICAgZHN0 ZGlyX3N0YXR1cz0kPworKyAgZWxzZQorKworKyAgICAjIFdhaXRpbmcgZm9yIHRoaXMgdG8gYmUg ZGV0ZWN0ZWQgYnkgdGhlICIkY3Bwcm9nICRzcmMgJGRzdHRtcCIgY29tbWFuZAorKyAgICAjIG1p Z2h0IGNhdXNlIGRpcmVjdG9yaWVzIHRvIGJlIGNyZWF0ZWQsIHdoaWNoIHdvdWxkIGJlIGVzcGVj aWFsbHkgYmFkCisrICAgICMgaWYgJHNyYyAoYW5kIHRodXMgJGRzdHRtcCkgY29udGFpbnMgJyon LgorKyAgICBpZiB0ZXN0ICEgLWYgIiRzcmMiICYmIHRlc3QgISAtZCAiJHNyYyI7IHRoZW4KKysg ICAgICBlY2hvICIkMDogJHNyYyBkb2VzIG5vdCBleGlzdC4iID4mMgorKyAgICAgIGV4aXQgMQor KyAgICBmaQorKworKyAgICBpZiB0ZXN0IC16ICIkZHN0X2FyZyI7IHRoZW4KKysgICAgICBlY2hv ICIkMDogbm8gZGVzdGluYXRpb24gc3BlY2lmaWVkLiIgPiYyCisrICAgICAgZXhpdCAxCisrICAg IGZpCisrCisrICAgIGRzdD0kZHN0X2FyZworKyAgICAjIFByb3RlY3QgbmFtZXMgc3RhcnRpbmcg d2l0aCBgLScuCisrICAgIGNhc2UgJGRzdCBpbgorKyAgICAgIC0qKSBkc3Q9Li8kZHN0OzsKKysg ICAgZXNhYworKworKyAgICAjIElmIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LCBhcHBlbmQg dGhlIGlucHV0IGZpbGVuYW1lOyB3b24ndCB3b3JrCisrICAgICMgaWYgZG91YmxlIHNsYXNoZXMg YXJlbid0IGlnbm9yZWQuCisrICAgIGlmIHRlc3QgLWQgIiRkc3QiOyB0aGVuCisrICAgICAgaWYg dGVzdCAtbiAiJG5vX3RhcmdldF9kaXJlY3RvcnkiOyB0aGVuCisrCWVjaG8gIiQwOiAkZHN0X2Fy ZzogSXMgYSBkaXJlY3RvcnkiID4mMgorKwlleGl0IDEKKysgICAgICBmaQorKyAgICAgIGRzdGRp cj0kZHN0CisrICAgICAgZHN0PSRkc3RkaXIvYGJhc2VuYW1lICIkc3JjImAKKysgICAgICBkc3Rk aXJfc3RhdHVzPTAKKysgICAgZWxzZQorKyAgICAgICMgUHJlZmVyIGRpcm5hbWUsIGJ1dCBmYWxs IGJhY2sgb24gYSBzdWJzdGl0dXRlIGlmIGRpcm5hbWUgZmFpbHMuCisrICAgICAgZHN0ZGlyPWAK KysJKGRpcm5hbWUgIiRkc3QiKSAyPi9kZXYvbnVsbCB8fAorKwlleHByIFgiJGRzdCIgOiAnWFwo LipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJICAgICBYIiRkc3QiIDogJ1hcKC8vXClb Xi9dJyBcfCBcCisrCSAgICAgWCIkZHN0IiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgICAgIFgiJGRz dCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrCWVjaG8gWCIkZHN0IiB8CisrCSAg ICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkJICAgcy8vXDEvCisr CQkgICBxCisrCQkgfQorKwkJIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJCSAgIHMvL1wxLworKwkJ ICAgcQorKwkJIH0KKysJCSAvXlhcKFwvXC9cKSQveworKwkJICAgcy8vXDEvCisrCQkgICBxCisr CQkgfQorKwkJIC9eWFwoXC9cKS4qL3sKKysJCSAgIHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJ CSBzLy4qLy4vOyBxJworKyAgICAgIGAKKysKKysgICAgICB0ZXN0IC1kICIkZHN0ZGlyIgorKyAg ICAgIGRzdGRpcl9zdGF0dXM9JD8KKysgICAgZmkKKysgIGZpCisrCisrICBvYnNvbGV0ZV9ta2Rp cl91c2VkPWZhbHNlCisrCisrICBpZiB0ZXN0ICRkc3RkaXJfc3RhdHVzICE9IDA7IHRoZW4KKysg ICAgY2FzZSAkcG9zaXhfbWtkaXIgaW4KKysgICAgICAnJykKKysJIyBDcmVhdGUgaW50ZXJtZWRp YXRlIGRpcnMgdXNpbmcgbW9kZSA3NTUgYXMgbW9kaWZpZWQgYnkgdGhlIHVtYXNrLgorKwkjIFRo aXMgaXMgbGlrZSBGcmVlQlNEICdpbnN0YWxsJyBhcyBvZiAxOTk3LTEwLTI4LgorKwl1bWFzaz1g dW1hc2tgCisrCWNhc2UgJHN0cmlwY21kLiR1bWFzayBpbgorKwkgICMgT3B0aW1pemUgY29tbW9u IGNhc2VzLgorKwkgICpbMjM2N11bMjM2N10pIG1rZGlyX3VtYXNrPSR1bWFzazs7CisrCSAgLiow WzAyXVswMl0gfCAuWzAyXVswMl0gfCAuWzAyXSkgbWtkaXJfdW1hc2s9MjI7OworKworKwkgICpb MC03XSkKKysJICAgIG1rZGlyX3VtYXNrPWBleHByICR1bWFzayArIDIyIFwKKysJICAgICAgLSAk dW1hc2sgJSAxMDAgJSA0MCArICR1bWFzayAlIDIwIFwKKysJICAgICAgLSAkdW1hc2sgJSAxMCAl IDQgKyAkdW1hc2sgJSAyCisrCSAgICBgOzsKKysJICAqKSBta2Rpcl91bWFzaz0kdW1hc2ssZ28t dzs7CisrCWVzYWMKKysKKysJIyBXaXRoIC1kLCBjcmVhdGUgdGhlIG5ldyBkaXJlY3Rvcnkgd2l0 aCB0aGUgdXNlci1zcGVjaWZpZWQgbW9kZS4KKysJIyBPdGhlcndpc2UsIHJlbHkgb24gJG1rZGly X3VtYXNrLgorKwlpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KKysJICBta2Rpcl9tb2RlPS1t JG1vZGUKKysJZWxzZQorKwkgIG1rZGlyX21vZGU9CisrCWZpCisrCisrCXBvc2l4X21rZGlyPWZh bHNlCisrCWNhc2UgJHVtYXNrIGluCisrCSAgKlsxMjM1NjddWzAtN11bMC03XSkKKysJICAgICMg UE9TSVggbWtkaXIgLXAgc2V0cyB1K3d4IGJpdHMgcmVnYXJkbGVzcyBvZiB1bWFzaywgd2hpY2gK KysJICAgICMgaXMgaW5jb21wYXRpYmxlIHdpdGggRnJlZUJTRCAnaW5zdGFsbCcgd2hlbiAodW1h c2sgJiAzMDApICE9IDAuCisrCSAgICA7OworKwkgICopCisrCSAgICB0bXBkaXI9JHtUTVBESVIt L3RtcH0vaW5zJFJBTkRPTS0kJAorKwkgICAgdHJhcCAncmV0PSQ/OyBybWRpciAiJHRtcGRpci9k IiAiJHRtcGRpciIgMj4vZGV2L251bGw7IGV4aXQgJHJldCcgMAorKworKwkgICAgaWYgKHVtYXNr ICRta2Rpcl91bWFzayAmJgorKwkJZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIk dG1wZGlyL2QiKSA+L2Rldi9udWxsIDI+JjEKKysJICAgIHRoZW4KKysJICAgICAgaWYgdGVzdCAt eiAiJGRpcl9hcmciIHx8IHsKKysJCSAgICMgQ2hlY2sgZm9yIFBPU0lYIGluY29tcGF0aWJpbGl0 aWVzIHdpdGggLW0uCisrCQkgICAjIEhQLVVYIDExLjIzIGFuZCBJUklYIDYuNSBta2RpciAtbSAt cCBzZXRzIGdyb3VwLSBvcgorKwkJICAgIyBvdGhlci13cml0ZWFibGUgYml0IG9mIHBhcmVudCBk aXJlY3Rvcnkgd2hlbiBpdCBzaG91bGRuJ3QuCisrCQkgICAjIEZyZWVCU0QgNi4xIG1rZGlyIC1t IC1wIHNldHMgbW9kZSBvZiBleGlzdGluZyBkaXJlY3RvcnkuCisrCQkgICBsc19sZF90bXBkaXI9 YGxzIC1sZCAiJHRtcGRpciJgCisrCQkgICBjYXNlICRsc19sZF90bXBkaXIgaW4KKysJCSAgICAg ZD8/Pz8tP3ItKikgZGlmZmVyZW50X21vZGU9NzAwOzsKKysJCSAgICAgZD8/Pz8tPy0tKikgZGlm ZmVyZW50X21vZGU9NzU1OzsKKysJCSAgICAgKikgZmFsc2U7OworKwkJICAgZXNhYyAmJgorKwkJ ICAgJG1rZGlycHJvZyAtbSRkaWZmZXJlbnRfbW9kZSAtcCAtLSAiJHRtcGRpciIgJiYgeworKwkJ ICAgICBsc19sZF90bXBkaXJfMT1gbHMgLWxkICIkdG1wZGlyImAKKysJCSAgICAgdGVzdCAiJGxz X2xkX3RtcGRpciIgPSAiJGxzX2xkX3RtcGRpcl8xIgorKwkJICAgfQorKwkJIH0KKysJICAgICAg dGhlbiBwb3NpeF9ta2Rpcj06CisrCSAgICAgIGZpCisrCSAgICAgIHJtZGlyICIkdG1wZGlyL2Qi ICIkdG1wZGlyIgorKwkgICAgZWxzZQorKwkgICAgICAjIFJlbW92ZSBhbnkgZGlycyBsZWZ0IGJl aGluZCBieSBhbmNpZW50IG1rZGlyIGltcGxlbWVudGF0aW9ucy4KKysJICAgICAgcm1kaXIgLi8k bWtkaXJfbW9kZSAuLy1wIC4vLS0gMj4vZGV2L251bGwKKysJICAgIGZpCisrCSAgICB0cmFwICcn IDA7OworKwllc2FjOzsKKysgICAgZXNhYworKworKyAgICBpZgorKyAgICAgICRwb3NpeF9ta2Rp ciAmJiAoCisrCXVtYXNrICRta2Rpcl91bWFzayAmJgorKwkkZG9pdF9leGVjICRta2RpcnByb2cg JG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiCisrICAgICAgKQorKyAgICB0aGVuIDoKKysgICAg ZWxzZQorKworKyAgICAgICMgVGhlIHVtYXNrIGlzIHJpZGljdWxvdXMsIG9yIG1rZGlyIGRvZXMg bm90IGNvbmZvcm0gdG8gUE9TSVgsCisrICAgICAgIyBvciBpdCBmYWlsZWQgcG9zc2libHkgZHVl IHRvIGEgcmFjZSBjb25kaXRpb24uICBDcmVhdGUgdGhlCisrICAgICAgIyBkaXJlY3RvcnkgdGhl IHNsb3cgd2F5LCBzdGVwIGJ5IHN0ZXAsIGNoZWNraW5nIGZvciByYWNlcyBhcyB3ZSBnby4KKysK KysgICAgICBjYXNlICRkc3RkaXIgaW4KKysJLyopIHByZWZpeD0nLyc7OworKwktKikgcHJlZml4 PScuLyc7OworKwkqKSAgcHJlZml4PScnOzsKKysgICAgICBlc2FjCisrCisrICAgICAgZXZhbCAi JGluaXRpYWxpemVfcG9zaXhfZ2xvYiIKKysKKysgICAgICBvSUZTPSRJRlMKKysgICAgICBJRlM9 LworKyAgICAgICRwb3NpeF9nbG9iIHNldCAtZgorKyAgICAgIHNldCBmbm9yZCAkZHN0ZGlyCisr ICAgICAgc2hpZnQKKysgICAgICAkcG9zaXhfZ2xvYiBzZXQgK2YKKysgICAgICBJRlM9JG9JRlMK KysKKysgICAgICBwcmVmaXhlcz0KKysKKysgICAgICBmb3IgZAorKyAgICAgIGRvCisrCXRlc3Qg LXogIiRkIiAmJiBjb250aW51ZQorKworKwlwcmVmaXg9JHByZWZpeCRkCisrCWlmIHRlc3QgLWQg IiRwcmVmaXgiOyB0aGVuCisrCSAgcHJlZml4ZXM9CisrCWVsc2UKKysJICBpZiAkcG9zaXhfbWtk aXI7IHRoZW4KKysJICAgICh1bWFzaz0kbWtkaXJfdW1hc2sgJiYKKysJICAgICAkZG9pdF9leGVj ICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiKSAmJiBicmVhaworKwkgICAg IyBEb24ndCBmYWlsIGlmIHR3byBpbnN0YW5jZXMgYXJlIHJ1bm5pbmcgY29uY3VycmVudGx5Lgor KwkgICAgdGVzdCAtZCAiJHByZWZpeCIgfHwgZXhpdCAxCisrCSAgZWxzZQorKwkgICAgY2FzZSAk cHJlZml4IGluCisrCSAgICAgICpcJyopIHFwcmVmaXg9YGVjaG8gIiRwcmVmaXgiIHwgc2VkICJz LycvJ1xcXFxcXFxcJycvZyJgOzsKKysJICAgICAgKikgcXByZWZpeD0kcHJlZml4OzsKKysJICAg IGVzYWMKKysJICAgIHByZWZpeGVzPSIkcHJlZml4ZXMgJyRxcHJlZml4JyIKKysJICBmaQorKwlm aQorKwlwcmVmaXg9JHByZWZpeC8KKysgICAgICBkb25lCisrCisrICAgICAgaWYgdGVzdCAtbiAi JHByZWZpeGVzIjsgdGhlbgorKwkjIERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBhcmUgcnVu bmluZyBjb25jdXJyZW50bHkuCisrCSh1bWFzayAkbWtkaXJfdW1hc2sgJiYKKysJIGV2YWwgIlwk ZG9pdF9leGVjIFwkbWtkaXJwcm9nICRwcmVmaXhlcyIpIHx8CisrCSAgdGVzdCAtZCAiJGRzdGRp ciIgfHwgZXhpdCAxCisrCW9ic29sZXRlX21rZGlyX3VzZWQ9dHJ1ZQorKyAgICAgIGZpCisrICAg IGZpCisrICBmaQorKworKyAgaWYgdGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCisrICAgIHsgdGVz dCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQgIiRkc3QiOyB9ICYmCisrICAgIHsg dGVzdCAteiAiJGNoZ3JwY21kIiB8fCAkZG9pdCAkY2hncnBjbWQgIiRkc3QiOyB9ICYmCisrICAg IHsgdGVzdCAiJG9ic29sZXRlX21rZGlyX3VzZWQkY2hvd25jbWQkY2hncnBjbWQiID0gZmFsc2Ug fHwKKysgICAgICB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAi JGRzdCI7IH0gfHwgZXhpdCAxCisrICBlbHNlCisrCisrICAgICMgTWFrZSBhIGNvdXBsZSBvZiB0 ZW1wIGZpbGUgbmFtZXMgaW4gdGhlIHByb3BlciBkaXJlY3RvcnkuCisrICAgIGRzdHRtcD0kZHN0 ZGlyL19pbnN0LiQkXworKyAgICBybXRtcD0kZHN0ZGlyL19ybS4kJF8KKysKKysgICAgIyBUcmFw IHRvIGNsZWFuIHVwIHRob3NlIHRlbXAgZmlsZXMgYXQgZXhpdC4KKysgICAgdHJhcCAncmV0PSQ/ OyBybSAtZiAiJGRzdHRtcCIgIiRybXRtcCIgJiYgZXhpdCAkcmV0JyAwCisrCisrICAgICMgQ29w eSB0aGUgZmlsZSBuYW1lIHRvIHRoZSB0ZW1wIG5hbWUuCisrICAgICh1bWFzayAkY3BfdW1hc2sg JiYgJGRvaXRfZXhlYyAkY3Bwcm9nICIkc3JjIiAiJGRzdHRtcCIpICYmCisrCisrICAgICMgYW5k IHNldCBhbnkgb3B0aW9uczsgZG8gY2htb2QgbGFzdCB0byBwcmVzZXJ2ZSBzZXR1aWQgYml0cy4K KysgICAgIworKyAgICAjIElmIGFueSBvZiB0aGVzZSBmYWlsLCB3ZSBhYm9ydCB0aGUgd2hvbGUg dGhpbmcuICBJZiB3ZSB3YW50IHRvCisrICAgICMgaWdub3JlIGVycm9ycyBmcm9tIGFueSBvZiB0 aGVzZSwganVzdCBtYWtlIHN1cmUgbm90IHRvIGlnbm9yZQorKyAgICAjIGVycm9ycyBmcm9tIHRo ZSBhYm92ZSAiJGRvaXQgJGNwcHJvZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQuCisrICAgICMKKysg ICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdHRtcCI7IH0g JiYKKysgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAiJGRzdHRt cCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkc3RyaXBjbWQiIHx8ICRkb2l0ICRzdHJpcGNtZCAi JGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1v ZGNtZCAkbW9kZSAiJGRzdHRtcCI7IH0gJiYKKysKKysgICAgIyBJZiAtQywgZG9uJ3QgYm90aGVy IHRvIGNvcHkgaWYgaXQgd291bGRuJ3QgY2hhbmdlIHRoZSBmaWxlLgorKyAgICBpZiAkY29weV9v bl9jaGFuZ2UgJiYKKysgICAgICAgb2xkPWBMQ19BTEw9QyBscyAtZGxMICIkZHN0IgkyPi9kZXYv bnVsbGAgJiYKKysgICAgICAgbmV3PWBMQ19BTEw9QyBscyAtZGxMICIkZHN0dG1wIgkyPi9kZXYv bnVsbGAgJiYKKysKKysgICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIgJiYKKysg ICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mICYmCisrICAgICAgIHNldCBYICRvbGQgJiYgb2xkPTok MjokNDokNTokNiAmJgorKyAgICAgICBzZXQgWCAkbmV3ICYmIG5ldz06JDI6JDQ6JDU6JDYgJiYK KysgICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmICYmCisrCisrICAgICAgIHRlc3QgIiRvbGQiID0g IiRuZXciICYmCisrICAgICAgICRjbXBwcm9nICIkZHN0IiAiJGRzdHRtcCIgPi9kZXYvbnVsbCAy PiYxCisrICAgIHRoZW4KKysgICAgICBybSAtZiAiJGRzdHRtcCIKKysgICAgZWxzZQorKyAgICAg ICMgUmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFsIGRlc3RpbmF0aW9uLgorKyAgICAgICRkb2l0 ICRtdmNtZCAtZiAiJGRzdHRtcCIgIiRkc3QiIDI+L2Rldi9udWxsIHx8CisrCisrICAgICAgIyBU aGUgcmVuYW1lIGZhaWxlZCwgcGVyaGFwcyBiZWNhdXNlIG12IGNhbid0IHJlbmFtZSBzb21ldGhp bmcgZWxzZQorKyAgICAgICMgdG8gaXRzZWxmLCBvciBwZXJoYXBzIGJlY2F1c2UgbXYgaXMgc28g YW5jaWVudCB0aGF0IGl0IGRvZXMgbm90CisrICAgICAgIyBzdXBwb3J0IC1mLgorKyAgICAgIHsK KysJIyBOb3cgcmVtb3ZlIG9yIG1vdmUgYXNpZGUgYW55IG9sZCBmaWxlIGF0IGRlc3RpbmF0aW9u IGxvY2F0aW9uLgorKwkjIFdlIHRyeSB0aGlzIHR3byB3YXlzIHNpbmNlIHJtIGNhbid0IHVubGlu ayBpdHNlbGYgb24gc29tZQorKwkjIHN5c3RlbXMgYW5kIHRoZSBkZXN0aW5hdGlvbiBmaWxlIG1p Z2h0IGJlIGJ1c3kgZm9yIG90aGVyCisrCSMgcmVhc29ucy4gIEluIHRoaXMgY2FzZSwgdGhlIGZp bmFsIGNsZWFudXAgbWlnaHQgZmFpbCBidXQgdGhlIG5ldworKwkjIGZpbGUgc2hvdWxkIHN0aWxs IGluc3RhbGwgc3VjY2Vzc2Z1bGx5LgorKwl7CisrCSAgdGVzdCAhIC1mICIkZHN0IiB8fAorKwkg ICRkb2l0ICRybWNtZCAtZiAiJGRzdCIgMj4vZGV2L251bGwgfHwKKysJICB7ICRkb2l0ICRtdmNt ZCAtZiAiJGRzdCIgIiRybXRtcCIgMj4vZGV2L251bGwgJiYKKysJICAgIHsgJGRvaXQgJHJtY21k IC1mICIkcm10bXAiIDI+L2Rldi9udWxsOyA6OyB9CisrCSAgfSB8fAorKwkgIHsgZWNobyAiJDA6 IGNhbm5vdCB1bmxpbmsgb3IgcmVuYW1lICRkc3QiID4mMgorKwkgICAgKGV4aXQgMSk7IGV4aXQg MQorKwkgIH0KKysJfSAmJgorKworKwkjIE5vdyByZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwg ZGVzdGluYXRpb24uCisrCSRkb2l0ICRtdmNtZCAiJGRzdHRtcCIgIiRkc3QiCisrICAgICAgfQor KyAgICBmaSB8fCBleGl0IDEKKysKKysgICAgdHJhcCAnJyAwCisrICBmaQorK2RvbmUKKysKKysj IExvY2FsIHZhcmlhYmxlczoKKysjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAn dGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRp bWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1zdGFtcC1lbmQ6 ICIkIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9saWJ0b29s Lm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbGlidG9vbC5tNAorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9saWJ0b29sLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9saWJ0b29sLm00CTIwMDktMDUtMjMg MTA6MDE6NTUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDczNjAgQEAKKysjIGxpYnRvb2wu bTQgLSBDb25maWd1cmUgbGlidG9vbCBmb3IgdGhlIGhvc3Qgc3lzdGVtLiAtKi1BdXRvY29uZi0q LQorKyMKKysjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAzLCAyMDA0LCAyMDA1LAorKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIw MDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyAgIFdyaXR0ZW4gYnkgR29yZG9u IE1hdHppZ2tlaXQsIDE5OTYKKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmlj YXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKyttNF9kZWZp bmUoW19MVF9DT1BZSU5HXSwgW2RubAorKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCisrIyAgICAgICAgICAgICAg ICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjICAg V3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgorKyMKKysjICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR05VIExpYnRvb2wuCisrIworKyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrIyBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworKyMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKysj IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMK KysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlLAorKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFt IG9yIGxpYnJhcnkgdGhhdAorKyMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2wsIHlvdSBtYXkg aW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCisrIyBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0 aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysjCisrIyBHTlUgTGli dG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggR05VIExpYnRvb2w7IHNl ZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKKysjIGNhbiBiZSBkb3dubG9hZGVk IGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLCBvcgorKyMgb2J0YWlu ZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorKyMg NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV U0EuCisrXSkKKysKKysjIHNlcmlhbCA1NiBMVF9JTklUCisrCisrCisrIyBMVF9QUkVSRVEoVkVS U0lPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ29tcGxhaW4gYW5kIGV4aXQgaWYgdGhp cyBsaWJ0b29sIHZlcnNpb24gaXMgbGVzcyB0aGF0IFZFUlNJT04uCisrbTRfZGVmdW4oW0xUX1BS RVJFUV0sCisrW200X2lmKG00X3ZlcnNpb25fY29tcGFyZShtNF9kZWZuKFtMVF9QQUNLQUdFX1ZF UlNJT05dKSwgWyQxXSksIC0xLAorKyAgICAgICBbbTRfZGVmYXVsdChbJDNdLAorKwkJICAgW200 X2ZhdGFsKFtMaWJ0b29sIHZlcnNpb24gJDEgb3IgaGlnaGVyIGlzIHJlcXVpcmVkXSwKKysJCSAg ICAgICAgICAgICA2MyldKV0sCisrICAgICAgIFskMl0pXSkKKysKKysKKysjIF9MVF9DSEVDS19C VUlMRERJUgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDb21wbGFpbiBpZiB0aGUgYWJzb2x1 dGUgYnVpbGQgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJzCisrbTRf ZGVmdW4oW19MVF9DSEVDS19CVUlMRERJUl0sCisrW2Nhc2UgYHB3ZGAgaW4KKysgICpcICogfCAq XAkqKQorKyAgICBBQ19NU0dfV0FSTihbTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3 aGl0ZXNwYWNlIGluIGBwd2RgXSkgOzsKKytlc2FjCisrXSkKKysKKysKKysjIExUX0lOSVQoW09Q VElPTlNdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX0lOSVRdLAorK1tB Q19QUkVSRVEoWzIuNThdKWRubCBXZSB1c2UgQUNfSU5DTFVERVNfREVGQVVMVAorK0FDX0JFRk9S RShbJDBdLCBbTFRfTEFOR10pZG5sCisrQUNfQkVGT1JFKFskMF0sIFtMVF9PVVRQVVRdKWRubAor K0FDX0JFRk9SRShbJDBdLCBbTFRETF9JTklUXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tf QlVJTERESVJdKWRubAorKworK2RubCBBdXRvY29uZiBkb2Vzbid0IGNhdGNoIHVuZXhwYW5kZWQg TFRfIG1hY3JvcyBieSBkZWZhdWx0OgorK200X3BhdHRlcm5fZm9yYmlkKFteXz9MVF9bQS1aX10r JF0pZG5sCisrbTRfcGF0dGVybl9hbGxvdyhbXihfTFRfRU9GfExUX0RMR0xPQkFMfExUX0RMTEFa WV9PUl9OT1d8TFRfTVVMVElfTU9EVUxFKSRdKWRubAorK2RubCBhY2xvY2FsIGRvZXNuJ3QgcHVs bCBsdG9wdGlvbnMubTQsIGx0c3VnYXIubTQsIG9yIGx0dmVyc2lvbi5tNAorK2RubCB1bmxlc3Mg d2UgcmVxdWlyZSBhbiBBQ19ERUZVTmVkIG1hY3JvOgorK0FDX1JFUVVJUkUoW0xUT1BUSU9OU19W RVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtMVFNVR0FSX1ZFUlNJT05dKWRubAorK0FDX1JFUVVJ UkUoW0xUVkVSU0lPTl9WRVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtMVE9CU09MRVRFX1ZFUlNJ T05dKWRubAorK200X3JlcXVpcmUoW19MVF9QUk9HX0xUTUFJTl0pZG5sCisrCisrZG5sIFBhcnNl IE9QVElPTlMKKytfTFRfU0VUX09QVElPTlMoWyQwXSwgWyQxXSkKKysKKysjIFRoaXMgY2FuIGJl IHVzZWQgdG8gcmVidWlsZCBsaWJ0b29sIHdoZW4gbmVlZGVkCisrTElCVE9PTF9ERVBTPSIkbHRt YWluIgorKworKyMgQWx3YXlzIHVzZSBvdXIgb3duIGxpYnRvb2wuCisrTElCVE9PTD0nJChTSEVM TCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCisrQUNfU1VCU1QoTElCVE9PTClkbmwKKysKKytf TFRfU0VUVVAKKysKKysjIE9ubHkgZXhwYW5kIG9uY2U6CisrbTRfZGVmaW5lKFtMVF9JTklUXSkK KytdKSMgTFRfSU5JVAorKworKyMgT2xkIG5hbWVzOgorK0FVX0FMSUFTKFtBQ19QUk9HX0xJQlRP T0xdLCBbTFRfSU5JVF0pCisrQVVfQUxJQVMoW0FNX1BST0dfTElCVE9PTF0sIFtMVF9JTklUXSkK KytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVO KFtBQ19QUk9HX0xJQlRPT0xdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX1BST0dfTElCVE9PTF0s IFtdKQorKworKworKyMgX0xUX0NDX0JBU0VOQU1FKENDKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LQorKyMgQ2FsY3VsYXRlIGNjX2Jhc2VuYW1lLiAgU2tpcCBrbm93biBjb21waWxlciB3cmFwcGVy cyBhbmQgY3Jvc3MtcHJlZml4LgorK200X2RlZnVuKFtfTFRfQ0NfQkFTRU5BTUVdLAorK1tmb3Ig Y2NfdGVtcCBpbiAkMSIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwg KltbXFwvXV1jb21waWxlIHwgY2NhY2hlIHwgKltbXFwvXV1jY2FjaGUgKSA7OworKyAgICBkaXN0 Y2MgfCAqW1tcXC9dXWRpc3RjYyB8IHB1cmlmeSB8ICpbW1xcL11dcHVyaWZ5ICkgOzsKKysgICAg XC0qKSA7OworKyAgICAqKSBicmVhazs7CisrICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAk RUNITyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMt JSUiYAorK10pCisrCisrCisrIyBfTFRfRklMRVVUSUxTX0RFRkFVTFRTCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBJdCBpcyBva2F5IHRvIHVzZSB0aGVzZSBmaWxlIGNvbW1hbmRzIGFu ZCBhc3N1bWUgdGhleSBoYXZlIGJlZW4gc2V0CisrIyBzZW5zaWJseSBhZnRlciBgbTRfcmVxdWly ZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pJy4KKyttNF9kZWZ1bihbX0xUX0ZJTEVVVElMU19E RUZBVUxUU10sCisrWzogJHtDUD0iY3AgLWYifQorKzogJHtNVj0ibXYgLWYifQorKzogJHtSTT0i cm0gLWYifQorK10pIyBfTFRfRklMRVVUSUxTX0RFRkFVTFRTCisrCisrCisrIyBfTFRfU0VUVVAK KysjIC0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfU0VUVVBdLAorK1tBQ19SRVFVSVJFKFtBQ19D QU5PTklDQUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwK KytfTFRfREVDTChbXSwgW2hvc3RfYWxpYXNdLCBbMF0sIFtUaGUgaG9zdCBzeXN0ZW1dKWRubAor K19MVF9ERUNMKFtdLCBbaG9zdF0sIFswXSlkbmwKKytfTFRfREVDTChbXSwgW2hvc3Rfb3NdLCBb MF0pZG5sCisrZG5sCisrX0xUX0RFQ0woW10sIFtidWlsZF9hbGlhc10sIFswXSwgW1RoZSBidWls ZCBzeXN0ZW1dKWRubAorK19MVF9ERUNMKFtdLCBbYnVpbGRdLCBbMF0pZG5sCisrX0xUX0RFQ0wo W10sIFtidWlsZF9vc10sIFswXSlkbmwKKytkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlk bmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX05N XSlkbmwKKytkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0xOX1NdKWRubAorK3Rlc3QgLXogIiRM Tl9TIiAmJiBMTl9TPSJsbiAtcyIKKytfTFRfREVDTChbXSwgW0xOX1NdLCBbMV0sIFtXaGV0aGVy IHdlIG5lZWQgc29mdCBvciBoYXJkIGxpbmtzXSlkbmwKKytkbmwKKytBQ19SRVFVSVJFKFtMVF9D TURfTUFYX0xFTl0pZG5sCisrX0xUX0RFQ0woW29iamV4dF0sIFthY19vYmpleHRdLCBbMF0sIFtP YmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIildKWRubAorK19MVF9ERUNMKFtdLCBbZXhl ZXh0XSwgWzBdLCBbRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIiIpXSlkbmwKKytk bmwKKyttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKyttNF9yZXF1aXJl KFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdKWRubAorK200X3JlcXVpcmUoW19MVF9DTURfUkVM T0FEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9EXSlkbmwKKyttNF9y ZXF1aXJlKFtfTFRfQ01EX09MRF9BUkNISVZFXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ01EX0dM T0JBTF9TWU1CT0xTXSlkbmwKKysKKytfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbCisrIyBTZWUg aWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93 IG91cgorKyMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzIElO SVQuCisraWYgdGVzdCAtbiAiXCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgc2V0b3B0 IE5PX0dMT0JfU1VCU1QKKytmaQorK10pCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9 IiA7IHRoZW4KKysgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2ZpCisrCisrX0xUX0NIRUNLX09C SkRJUgorKworK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorK19MVF9QUk9HX0VD SE9fQkFDS1NMQVNICisrCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgIyBBSVggc29t ZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBz b21lCisrICAjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50 IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKKysgICMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4K KysgIGlmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgorKyAgICBD T0xMRUNUX05BTUVTPQorKyAgICBleHBvcnQgQ09MTEVDVF9OQU1FUworKyAgZmkKKysgIDs7Cisr ZXNhYworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90 aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKKysjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxs IGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorK3NlZF9xdW90ZV9zdWJzdD0n cy9cKFtbImAkXFxdXVwpL1xcXDEvZycKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3Qg cXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KKytkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbWyJg XFxdXVwpL1xcXDEvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9u IG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQorKyMgZG91YmxlX3F1b3RlX3N1YnN0 J2VkIHN0cmluZy4KKytkZWxheV92YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxc JC9nJworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNj YXBlZCBzaW5nbGUgcXVvdGUuCisrZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0PSdzLydcJycvJ1wn XFxcXFxcXCdcJycvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRh bCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKKytub19nbG9iX3N1YnN0PSdzL1wqL1xc XCovZycKKysKKysjIEdsb2JhbCB2YXJpYWJsZXM6Cisrb2ZpbGU9bGlidG9vbAorK2Nhbl9idWls ZF9zaGFyZWQ9eWVzCisrCisrIyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNo aXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCisrIyB3aGljaCBuZWVkcyAnLmxp YicpLgorK2xpYmV4dD1hCisrCisrd2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKKysK KytvbGRfQ0M9IiRDQyIKKytvbGRfQ0ZMQUdTPSIkQ0ZMQUdTIgorKworKyMgU2V0IHNhbmUgZGVm YXVsdHMgZm9yIHZhcmlvdXMgdmFyaWFibGVzCisrdGVzdCAteiAiJENDIiAmJiBDQz1jYworK3Rl c3QgLXogIiRMVENDIiAmJiBMVENDPSRDQworK3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxB R1M9JENGTEFHUworK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKKyt0ZXN0IC16ICIkYWNfb2JqZXh0 IiAmJiBhY19vYmpleHQ9bworKworK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysKKysj IE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVjayBtZXRob2QgcmVx dWlyZXMgaXQKKyt0ZXN0IC16ICIkTUFHSUNfQ01EIiAmJiBNQUdJQ19DTUQ9ZmlsZQorK2Nhc2Ug JGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrZmlsZV9tYWdpYyopCisrICBpZiB0ZXN0ICIkZmls ZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCisrICAgIF9MVF9QQVRIX01BR0lDCisr ICBmaQorKyAgOzsKKytlc2FjCisrCisrIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJh dGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKKytMVF9TVVBQT1JURURfVEFHKFtDQ10pCisrX0xU X0xBTkdfQ19DT05GSUcKKytfTFRfTEFOR19ERUZBVUxUX0NPTkZJRworK19MVF9DT05GSUdfQ09N TUFORFMKKytdKSMgX0xUX1NFVFVQCisrCisrCisrIyBfTFRfUFJPR19MVE1BSU4KKysjIC0tLS0t LS0tLS0tLS0tLQorKyMgTm90ZSB0aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgYm90aCBmcm9tIGBj b25maWd1cmUnLCBhbmQgYGNvbmZpZy5zdGF0dXMnCisrIyBub3cgdGhhdCB3ZSB1c2UgQUNfQ09O RklHX0NPTU1BTkRTIHRvIGdlbmVyYXRlIGxpYnRvb2wuICBOb3RhYmx5LAorKyMgYGNvbmZpZy5z dGF0dXMnIGhhcyBubyB2YWx1ZSBmb3IgYWNfYXV4X2RpciB1bmxlc3Mgd2UgYXJlIHVzaW5nIEF1 dG9tYWtlLAorKyMgc28gd2UgcGFzcyBhIGNvcHkgYWxvbmcgdG8gbWFrZSBzdXJlIGl0IGhhcyBh IHNlbnNpYmxlIHZhbHVlIGFueXdheS4KKyttNF9kZWZ1bihbX0xUX1BST0dfTFRNQUlOXSwKKytb bTRfaWZkZWYoW0FDX1JFUVVJUkVfQVVYX0ZJTEVdLCBbQUNfUkVRVUlSRV9BVVhfRklMRShbbHRt YWluLnNoXSldKWRubAorK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFthY19hdXhfZGlyPSckYWNf YXV4X2RpciddKQorK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgorK10pIyBfTFRfUFJP R19MVE1BSU4KKysKKysKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMjCisrIyMgQWNjdW11bGF0ZSBjb2RlIGZvciBjcmVhdGluZyBsaWJ0b29sLiAjIworKyMjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKysjIFNvIHRoYXQgd2Ug Y2FuIHJlY3JlYXRlIGEgZnVsbCBsaWJ0b29sIHNjcmlwdCBpbmNsdWRpbmcgYWRkaXRpb25hbAor KyMgdGFncywgd2UgYWNjdW11bGF0ZSB0aGUgY2h1bmtzIG9mIGNvZGUgdG8gc2VuZCB0byBBQ19D T05GSUdfQ09NTUFORFMKKysjIGluIG1hY3JvcyBhbmQgdGhlbiBtYWtlIGEgc2luZ2xlIGNhbGwg YXQgdGhlIGVuZCB1c2luZyB0aGUgYGxpYnRvb2wnCisrIyBsYWJlbC4KKysKKysKKysjIF9MVF9D T05GSUdfTElCVE9PTF9JTklUKFtJTklULUNPTU1BTkRTXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFJlZ2lzdGVyIElOSVQtQ09NTUFORFMgdG8gYmUg cGFzc2VkIHRvIEFDX0NPTkZJR19DT01NQU5EUyBsYXRlci4KKyttNF9kZWZpbmUoW19MVF9DT05G SUdfTElCVE9PTF9JTklUXSwKKytbbTRfaWZ2YWwoWyQxXSwKKysgICAgICAgICAgW200X2FwcGVu ZChbX0xUX09VVFBVVF9MSUJUT09MX0lOSVRdLAorKyAgICAgICAgICAgICAgICAgICAgIFskMQor K10pXSldKQorKworKyMgSW5pdGlhbGl6ZS4KKyttNF9kZWZpbmUoW19MVF9PVVRQVVRfTElCVE9P TF9JTklUXSkKKysKKysKKysjIF9MVF9DT05GSUdfTElCVE9PTChbQ09NTUFORFNdKQorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBSZWdpc3RlciBDT01NQU5EUyB0byBiZSBw YXNzZWQgdG8gQUNfQ09ORklHX0NPTU1BTkRTIGxhdGVyLgorK200X2RlZmluZShbX0xUX0NPTkZJ R19MSUJUT09MXSwKKytbbTRfaWZ2YWwoWyQxXSwKKysgICAgICAgICAgW200X2FwcGVuZChbX0xU X09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSwKKysgICAgICAgICAgICAgICAgICAgICBbJDEKKytd KV0pXSkKKysKKysjIEluaXRpYWxpemUuCisrbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xf Q09NTUFORFNdKQorKworKworKyMgX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTKFtDT01NQU5EU10s IFtJTklUX0NPTU1BTkRTXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DT05GSUdfU0FWRV9DT01NQU5EU10s CisrW19MVF9DT05GSUdfTElCVE9PTChbJDFdKQorK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFsk Ml0pCisrXSkKKysKKysKKysjIF9MVF9GT1JNQVRfQ09NTUVOVChbQ09NTUVOVF0pCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQWRkIGxlYWRpbmcgY29tbWVudCBtYXJrcyB0 byB0aGUgc3RhcnQgb2YgZWFjaCBsaW5lLCBhbmQgYSB0cmFpbGluZworKyMgZnVsbC1zdG9wIHRv IHRoZSB3aG9sZSBjb21tZW50IGlmIG9uZSBpcyBub3QgcHJlc2VudCBhbHJlYWR5LgorK200X2Rl ZmluZShbX0xUX0ZPUk1BVF9DT01NRU5UXSwKKytbbTRfaWZ2YWwoWyQxXSwgWworK200X2JwYXRz dWJzdChbbTRfYnBhdHN1YnN0KFskMV0sIFteICpdLCBbIyBdKV0sCisrICAgICAgICAgICAgICBb WydgJFxdXSwgW1xcXCZdKV1tNF9ibWF0Y2goWyQxXSwgW1shPy5dJF0sIFtdLCBbLl0pCisrKV0p CisrCisrCisrCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgRklYTUU6IEVs aW1pbmF0ZSBWQVJOQU1FICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrCisr CisrIyBfTFRfREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05d LCBbSVMtVEFHR0VEP10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDT05GSUdOQU1FIGlzIHRoZSBuYW1l IGdpdmVuIHRvIHRoZSB2YWx1ZSBpbiB0aGUgbGlidG9vbCBzY3JpcHQuCisrIyBWQVJOQU1FIGlz IHRoZSAoYmFzZSkgbmFtZSB1c2VkIGluIHRoZSBjb25maWd1cmUgc2NyaXB0LgorKyMgVkFMVUUg bWF5IGJlIDAsIDEgb3IgMiBmb3IgYSBjb21wdXRlZCBxdW90ZSBlc2NhcGVkIHZhbHVlIGJhc2Vk IG9uCisrIyBWQVJOQU1FLiAgQW55IG90aGVyIHZhbHVlIHdpbGwgYmUgdXNlZCBkaXJlY3RseS4K KyttNF9kZWZpbmUoW19MVF9ERUNMXSwKKytbbHRfaWZfYXBwZW5kX3VuaXEoW2x0X2RlY2xfdmFy bmFtZXNdLCBbJDJdLCBbLCBdLAorKyAgICBbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2Rp Y3RdLCBbJDJdLCBbbGlidG9vbF9uYW1lXSwKKysJW200X2lmdmFsKFskMV0sIFskMV0sIFskMl0p XSkKKysgICAgbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbdmFsdWVd LCBbJDNdKQorKyAgICBtNF9pZnZhbChbJDRdLAorKwlbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9k ZWNsX2RpY3RdLCBbJDJdLCBbZGVzY3JpcHRpb25dLCBbJDRdKV0pCisrICAgIGx0X2RpY3RfYWRk X3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwKKysJW3RhZ2dlZD9dLCBbbTRfaWZ2YWwoWyQ1 XSwgW3llc10sIFtub10pXSldKQorK10pCisrCisrCisrIyBfTFRfVEFHREVDTChbQ09ORklHTkFN RV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9U QUdERUNMXSwgW19MVF9ERUNMKFskMV0sIFskMl0sIFskM10sIFskNF0sIFt5ZXNdKV0pCisrCisr CisrIyBsdF9kZWNsX3RhZ192YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2Rl ZmluZShbbHRfZGVjbF90YWdfdmFybmFtZXNdLAorK1tfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9d LCBbeWVzXSwgJEApXSkKKysKKysKKysjIF9sdF9kZWNsX2ZpbHRlcihTVUJLRVksIFZBTFVFLCBb U0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtfbHRfZGVjbF9maWx0 ZXJdLAorK1ttNF9jYXNlKFskI10sCisrICBbMF0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJn dW1lbnRzOiAkI10pXSwKKysgIFsxXSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6 ICQjOiAkMV0pXSwKKysgIFsyXSwgW2x0X2RpY3RfZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCBbJDFd LCBbJDJdLCBbXSwgbHRfZGVjbF92YXJuYW1lcyldLAorKyAgWzNdLCBbbHRfZGljdF9maWx0ZXIo W2x0X2RlY2xfZGljdF0sIFskMV0sIFskMl0sIFskM10sIGx0X2RlY2xfdmFybmFtZXMpXSwKKysg IFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0XSwgJEApXSlbXWRubAorK10pCisrCisrCisr IyBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9k ZWZpbmUoW2x0X2RlY2xfcXVvdGVfdmFybmFtZXNdLAorK1tfbHRfZGVjbF9maWx0ZXIoW3ZhbHVl XSwgWzFdLCAkQCldKQorKworKworKyMgbHRfZGVjbF9kcXVvdGVfdmFybmFtZXMoW1NFUEFSQVRP Ul0sIFtWQVJOQU1FMS4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzXSwK KytbX2x0X2RlY2xfZmlsdGVyKFt2YWx1ZV0sIFsyXSwgJEApXSkKKysKKysKKysjIGx0X2RlY2xf dmFybmFtZXNfdGFnZ2VkKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFts dF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZF0sCisrW200X2Fzc2VydChbJCMgPD0gMl0pZG5sCisrXyQw KG00X3F1b3RlKG00X2RlZmF1bHQoWyQxXSwgW1ssIF1dKSksCisrICAgIG00X2lmdmFsKFskMl0s IFtbJDJdXSwgW200X2RxdW90ZShsdF9kZWNsX3RhZ192YXJuYW1lcyldKSwKKysgICAgbTRfc3Bs aXQobTRfbm9ybWFsaXplKG00X3F1b3RlKF9MVF9UQUdTKSksIFsgXSkpXSkKKyttNF9kZWZpbmUo W19sdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZF0sCisrW200X2lmdmFsKFskM10sIFtsdF9jb21iaW5l KFskMV0sIFskMl0sIFtfXSwgJDMpXSldKQorKworKworKyMgbHRfZGVjbF9hbGxfdmFybmFtZXMo W1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RlY2xfYWxsX3Zhcm5hbWVz XSwKKytbXyQwKG00X3F1b3RlKG00X2RlZmF1bHQoWyQxXSwgW1ssIF1dKSksCisrICAgICBtNF9p ZihbJDJdLCBbXSwKKysJICAgbTRfcXVvdGUobHRfZGVjbF92YXJuYW1lcyksCisrCW00X3F1b3Rl KG00X3NoaWZ0KCRAKSkpKVtdZG5sCisrXSkKKyttNF9kZWZpbmUoW19sdF9kZWNsX2FsbF92YXJu YW1lc10sCisrW2x0X2pvaW4oJEAsIGx0X2RlY2xfdmFybmFtZXNfdGFnZ2VkKFskMV0sCisrCQkJ bHRfZGVjbF90YWdfdmFybmFtZXMoW1ssIF1dLCBtNF9zaGlmdCgkQCkpKSlkbmwKKytdKQorKwor KworKyMgX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRShbVkFSTkFNRV0pCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFF1b3RlIGEgdmFyaWFibGUgdmFsdWUsIGFu ZCBmb3J3YXJkIGl0IHRvIGBjb25maWcuc3RhdHVzJyBzbyB0aGF0IGl0cworKyMgZGVjbGFyYXRp b24gdGhlcmUgd2lsbCBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIGluIGBjb25maWd1cmUnLiAgVkFS TkFNRQorKyMgbXVzdCBoYXZlIGEgc2luZ2xlIHF1b3RlIGRlbGltaXRlZCB2YWx1ZSBmb3IgdGhp cyB0byB3b3JrLgorK200X2RlZmluZShbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRV0sCisrWyQx PSdgJEVDSE8gIlgkXVskMSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg J10pCisrCisrCisrIyBfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlMKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgV2UgZGVsaW1pdCBsaWJ0b29sIGNvbmZpZyB2YXJp YWJsZXMgd2l0aCBzaW5nbGUgcXVvdGVzLCBzbyB3aGVuCisrIyB3ZSB3cml0ZSB0aGVtIHRvIGNv bmZpZy5zdGF0dXMsIHdlIGhhdmUgdG8gYmUgc3VyZSB0byBxdW90ZSBhbGwKKysjIGVtYmVkZGVk IHNpbmdsZSBxdW90ZXMgcHJvcGVybHkuICBJbiBjb25maWd1cmUsIHRoaXMgbWFjcm8gZXhwYW5k cworKyMgZWFjaCB2YXJpYWJsZSBkZWNsYXJlZCB3aXRoIF9MVF9ERUNMIChhbmQgX0xUX1RBR0RF Q0wpIGludG86CisrIworKyMgICAgPHZhcj49J2AkRUNITyAiWCQ8dmFyPiIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK200X2RlZnVuKFtfTFRfQ09ORklHX1NUQVRV U19ERUNMQVJBVElPTlNdLAorK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVj bF9hbGxfdmFybmFtZXMpLAorKyAgICBbbTRfbihbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRShf bHRfdmFyKV0pXSldKQorKworKworKyMgX0xUX0xJQlRPT0xfVEFHUworKyMgLS0tLS0tLS0tLS0t LS0tLQorKyMgT3V0cHV0IGNvbW1lbnQgYW5kIGxpc3Qgb2YgdGFncyBzdXBwb3J0ZWQgYnkgdGhl IHNjcmlwdAorK200X2RlZnVuKFtfTFRfTElCVE9PTF9UQUdTXSwKKytbX0xUX0ZPUk1BVF9DT01N RU5UKFtUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzdXBwb3J0ZWQgYnkg dGhpcyBzY3JpcHRdKWRubAorK2F2YWlsYWJsZV90YWdzPSJfTFRfVEFHUyJkbmwKKytdKQorKwor KworKyMgX0xUX0xJQlRPT0xfREVDTEFSRShWQVJOQU1FLCBbVEFHXSkKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFeHRyYWN0IHRoZSBkaWN0aW9uYXJ5IHZhbHVl cyBmb3IgVkFSTkFNRSAob3B0aW9uYWxseSB3aXRoIFRBRykgYW5kCisrIyBleHBhbmQgdG8gYSBj b21tZW50ZWQgc2hlbGwgdmFyaWFibGUgc2V0dGluZzoKKysjCisrIyAgICAjIFNvbWUgY29tbWVu dCBhYm91dCB3aGF0IFZBUiBpcyBmb3IuCisrIyAgICB2aXNpYmxlX25hbWU9JGx0X2ludGVybmFs X25hbWUKKyttNF9kZWZpbmUoW19MVF9MSUJUT09MX0RFQ0xBUkVdLAorK1tfTFRfRk9STUFUX0NP TU1FTlQobTRfcXVvdGUobHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwKKysJCQkJ CSAgIFtkZXNjcmlwdGlvbl0pKSlbXWRubAorK200X3B1c2hkZWYoW19saWJ0b29sX25hbWVdLAor KyAgICBtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbbGlidG9v bF9uYW1lXSkpKVtdZG5sCisrbTRfY2FzZShtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNs X2RpY3RdLCBbJDFdLCBbdmFsdWVdKSksCisrICAgIFswXSwgW19saWJ0b29sX25hbWU9WyRdJDFd LAorKyAgICBbMV0sIFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKKysgICAgWzJdLCBbX2xpYnRv b2xfbmFtZT0kbHRfW10kMV0sCisrICAgIFtfbGlidG9vbF9uYW1lPWx0X2RpY3RfZmV0Y2goW2x0 X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0pXSlbXWRubAorK200X2lmdmFsKFskMl0sIFtfJDJd KVtdbTRfcG9wZGVmKFtfbGlidG9vbF9uYW1lXSlbXWRubAorK10pCisrCisrCisrIyBfTFRfTElC VE9PTF9DT05GSUdfVkFSUworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFByb2R1Y2Ug Y29tbWVudGVkIGRlY2xhcmF0aW9ucyBvZiBub24tdGFnZ2VkIGxpYnRvb2wgY29uZmlnIHZhcmlh YmxlcworKyMgc3VpdGFibGUgZm9yIGluc2VydGlvbiBpbiB0aGUgTElCVE9PTCBDT05GSUcgc2Vj dGlvbiBvZiB0aGUgYGxpYnRvb2wnCisrIyBzY3JpcHQuICBUYWdnZWQgbGlidG9vbCBjb25maWcg dmFyaWFibGVzIChldmVuIGZvciB0aGUgTElCVE9PTCBDT05GSUcKKysjIHNlY3Rpb24pIGFyZSBw cm9kdWNlZCBieSBfTFRfTElCVE9PTF9UQUdfVkFSUy4KKyttNF9kZWZ1bihbX0xUX0xJQlRPT0xf Q09ORklHX1ZBUlNdLAorK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwKKysgICAgbTRfcXVvdGUoX2x0 X2RlY2xfZmlsdGVyKFt0YWdnZWQ/XSwgW25vXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpKSwKKysg ICAgW200X24oW19MVF9MSUJUT09MX0RFQ0xBUkUoX2x0X3ZhcildKV0pXSkKKysKKysKKysjIF9M VF9MSUJUT09MX1RBR19WQVJTKFRBRykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytt NF9kZWZpbmUoW19MVF9MSUJUT09MX1RBR19WQVJTXSwKKytbbTRfZm9yZWFjaChbX2x0X3Zhcl0s IG00X3F1b3RlKGx0X2RlY2xfdGFnX3Zhcm5hbWVzKSwKKysgICAgW200X24oW19MVF9MSUJUT09M X0RFQ0xBUkUoX2x0X3ZhciwgWyQxXSldKV0pXSkKKysKKysKKysjIF9MVF9UQUdWQVIoVkFSTkFN RSwgW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVm aW5lKFtfTFRfVEFHVkFSXSwgW200X2lmdmFsKFskMl0sIFskMV8kMl0sIFskMV0pXSkKKysKKysK KysjIF9MVF9DT05GSUdfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNlbmQg YWNjdW11bGF0ZWQgb3V0cHV0IHRvICRDT05GSUdfU1RBVFVTLiAgVGhhbmtzIHRvIHRoZSBsaXN0 cyBvZgorKyMgdmFyaWFibGVzIGZvciBzaW5nbGUgYW5kIGRvdWJsZSBxdW90ZSBlc2NhcGluZyB3 ZSBzYXZlZCBmcm9tIGNhbGxzCisrIyB0byBfTFRfREVDTCwgd2UgY2FuIHB1dCBxdW90ZSBlc2Nh cGVkIHZhcmlhYmxlcyBkZWNsYXJhdGlvbnMKKysjIGludG8gYGNvbmZpZy5zdGF0dXMnLCBhbmQg dGhlbiB0aGUgc2hlbGwgY29kZSB0byBxdW90ZSBlc2NhcGUgdGhlbSBpbgorKyMgZm9yIGxvb3Bz IGluIGBjb25maWcuc3RhdHVzJy4gIEZpbmFsbHksIGFueSBhZGRpdGlvbmFsIGNvZGUgYWNjdW11 bGF0ZWQKKysjIGZyb20gY2FsbHMgdG8gX0xUX0NPTkZJR19MSUJUT09MX0lOSVQgaXMgZXhwYW5k ZWQuCisrbTRfZGVmdW4oW19MVF9DT05GSUdfQ09NTUFORFNdLAorK1tBQ19QUk9WSURFX0lGRUxT RShbTFRfT1VUUFVUXSwKKysJZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24gY29kZSBoYXMg YmVlbiBwbGFjZWQgaW4gJENPTkZJR19MVCwKKysJZG5sIGluc3RlYWQgb2YgZHVwbGljYXRpbmcg aXQgYWxsIG92ZXIgYWdhaW4gaW50byBjb25maWcuc3RhdHVzLAorKwlkbmwgdGhlbiB3ZSB3aWxs IGhhdmUgY29uZmlnLnN0YXR1cyBydW4gJENPTkZJR19MVCBsYXRlciwgc28gaXQKKysJZG5sIG5l ZWRzIHRvIGtub3cgd2hhdCBuYW1lIGlzIHN0b3JlZCB0aGVyZToKKysgICAgICAgIFtBQ19DT05G SUdfQ09NTUFORFMoW2xpYnRvb2xdLAorKyAgICAgICAgICAgIFskU0hFTEwgJENPTkZJR19MVCB8 fCBBU19FWElUKDEpXSwgW0NPTkZJR19MVD0nJENPTkZJR19MVCddKV0sCisrICAgIGRubCBJZiB0 aGUgbGlidG9vbCBnZW5lcmF0aW9uIGNvZGUgaXMgZGVzdGluZWQgZm9yIGNvbmZpZy5zdGF0dXMs CisrICAgIGRubCBleHBhbmQgdGhlIGFjY3VtdWxhdGVkIGNvbW1hbmRzIGFuZCBpbml0IGNvZGUg bm93OgorKyAgICBbQUNfQ09ORklHX0NPTU1BTkRTKFtsaWJ0b29sXSwKKysgICAgICAgIFtfTFRf T1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdLCBbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lO SVRdKV0pCisrXSkjX0xUX0NPTkZJR19DT01NQU5EUworKworKworKyMgSW5pdGlhbGl6ZS4KKytt NF9kZWZpbmUoW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUXSwKKytbCisrCisrIyBU aGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0 byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVs bCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3NlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9z dWJzdCcKKytkb3VibGVfcXVvdGVfc3Vic3Q9JyRkb3VibGVfcXVvdGVfc3Vic3QnCisrZGVsYXlf dmFyaWFibGVfc3Vic3Q9JyRkZWxheV92YXJpYWJsZV9zdWJzdCcKKytfTFRfQ09ORklHX1NUQVRV U19ERUNMQVJBVElPTlMKKytMVENDPSckTFRDQycKKytMVENGTEFHUz0nJExUQ0ZMQUdTJworK2Nv bXBpbGVyPSckY29tcGlsZXJfREVGQVVMVCcKKysKKysjIFF1b3RlIGV2YWxlZCBzdHJpbmdzLgor K2ZvciB2YXIgaW4gbHRfZGVjbF9hbGxfdmFybmFtZXMoW1sgXAorK11dLCBsdF9kZWNsX3F1b3Rl X3Zhcm5hbWVzKTsgZG8KKysgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyAiWFxcXFxcJFwkdmFy IlxgIGluCisrICAgICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKKysgICAgICBldmFsICJsdF9cJHZh cj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJc XFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysg ICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKysgICAgICA7Owor KyAgICBlc2FjCisrZG9uZQorKworKyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5n cy4KKytmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtbIFwKKytdXSwgbHRfZGVjbF9k cXVvdGVfdmFybmFtZXMpOyBkbworKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwk XCR2YXIiXGAgaW4KKysgICAgKltbXFxcXFxcXGBcXCJcXFwkXV0qKQorKyAgICAgIGV2YWwgImx0 X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1l IFxcIlxcXCRkb3VibGVfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxc IiAtZSBcXCJcXFwkZGVsYXlfdmFyaWFibGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKKysgICAgICA7 OworKyAgICAqKQorKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxcXFwi IgorKyAgICAgIDs7CisrICAgIGVzYWMKKytkb25lCisrCisrIyBGaXgtdXAgZmFsbGJhY2sgZWNo byBpZiBpdCB3YXMgbWFuZ2xlZCBieSB0aGUgYWJvdmUgcXVvdGluZyBydWxlcy4KKytjYXNlIFwk bHRfRUNITyBpbgorKyonXFxcWyRdMCAtLWZhbGxiYWNrLWVjaG8iJylkbmwgIgorKyAgbHRfRUNI Tz1cYFwkRUNITyAiWFwkbHRfRUNITyIgfCBcJFhzZWQgLWUgJ3MvXFxcXFxcXFxcXFxcXFxcWyRd MCAtLWZhbGxiYWNrLWVjaG8iXFskXS9cWyRdMCAtLWZhbGxiYWNrLWVjaG8iLydcYAorKyAgOzsK Kytlc2FjCisrCisrX0xUX09VVFBVVF9MSUJUT09MX0lOSVQKKytdKQorKworKworKyMgTFRfT1VU UFVUCisrIyAtLS0tLS0tLS0KKysjIFRoaXMgbWFjcm8gYWxsb3dzIGVhcmx5IGdlbmVyYXRpb24g b2YgdGhlIGxpYnRvb2wgc2NyaXB0IChiZWZvcmUKKysjIEFDX09VVFBVVCBpcyBjYWxsZWQpLCBp bmNhc2UgaXQgaXMgdXNlZCBpbiBjb25maWd1cmUgZm9yIGNvbXBpbGF0aW9uCisrIyB0ZXN0cy4K KytBQ19ERUZVTihbTFRfT1VUUFVUXSwKKytbOiAke0NPTkZJR19MVD0uL2NvbmZpZy5sdH0KKytB Q19NU0dfTk9USUNFKFtjcmVhdGluZyAkQ09ORklHX0xUXSkKKytjYXQgPiIkQ09ORklHX0xUIiA8 PF9MVEVPRgorKyMhICRTSEVMTAorKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KKysjIFJ1biB0aGlz IGZpbGUgdG8gcmVjcmVhdGUgYSBsaWJ0b29sIHN0dWIgd2l0aCB0aGUgY3VycmVudCBjb25maWd1 cmF0aW9uLgorKworK2x0X2NsX3NpbGVudD1mYWxzZQorK1NIRUxMPVwke0NPTkZJR19TSEVMTC0k U0hFTEx9CisrX0xURU9GCisrCisrY2F0ID4+IiRDT05GSUdfTFQiIDw8XF9MVEVPRgorK0FTX1NI RUxMX1NBTklUSVpFCisrX0FTX1BSRVBBUkUKKysKKytleGVjIEFTX01FU1NBR0VfRkQ+JjEKKytl eGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCisreworKyAgZWNobworKyAgQVNfQk9Y KFtSdW5uaW5nICRhc19tZS5dKQorK30gPiZBU19NRVNTQUdFX0xPR19GRAorKworK2x0X2NsX2hl bHA9IlwKKytcYCRhc19tZScgY3JlYXRlcyBhIGxvY2FsIGxpYnRvb2wgc3R1YiBmcm9tIHRoZSBj dXJyZW50IGNvbmZpZ3VyYXRpb24sCisrZm9yIHVzZSBpbiBmdXJ0aGVyIGNvbmZpZ3VyZSB0aW1l IHRlc3RzIGJlZm9yZSB0aGUgcmVhbCBsaWJ0b29sIGlzCisrZ2VuZXJhdGVkLgorKworK1VzYWdl OiAkWzBdIFtbT1BUSU9OU11dCisrCisrICAtaCwgLS1oZWxwICAgICAgcHJpbnQgdGhpcyBoZWxw LCB0aGVuIGV4aXQKKysgIC1WLCAtLXZlcnNpb24gICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhl biBleGl0CisrICAtcSwgLS1xdWlldCAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1lc3NhZ2Vz CisrICAtZCwgLS1kZWJ1ZyAgICAgZG9uJ3QgcmVtb3ZlIHRlbXBvcmFyeSBmaWxlcworKworK1Jl cG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4iCisrCisrbHRfY2xfdmVyc2lvbj0i XAorK200X2lmc2V0KFtBQ19QQUNLQUdFX05BTUVdLCBbQUNfUEFDS0FHRV9OQU1FIF0pY29uZmln Lmx0W11kbmwKKyttNF9pZnNldChbQUNfUEFDS0FHRV9WRVJTSU9OXSwgWyBBQ19QQUNLQUdFX1ZF UlNJT05dKQorK2NvbmZpZ3VyZWQgYnkgJFswXSwgZ2VuZXJhdGVkIGJ5IG00X1BBQ0tBR0VfU1RS SU5HLgorKworK0NvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKytUaGlzIGNvbmZpZy5sdCBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgorK2dpdmVzIHVubGltaXRlZCBwZXJtaXNpb24gdG8gY29weSwgZGlz dHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKKysKKyt3aGlsZSB0ZXN0ICRbI10gIT0gMAorK2RvCisr ICBjYXNlICRbMV0gaW4KKysgICAgLS12ZXJzaW9uIHwgLS12KiB8IC1WICkKKysgICAgICBlY2hv ICIkbHRfY2xfdmVyc2lvbiI7IGV4aXQgMCA7OworKyAgICAtLWhlbHAgfCAtLWgqIHwgLWggKQor KyAgICAgIGVjaG8gIiRsdF9jbF9oZWxwIjsgZXhpdCAwIDs7CisrICAgIC0tZGVidWcgfCAtLWQq IHwgLWQgKQorKyAgICAgIGRlYnVnPTogOzsKKysgICAgLS1xdWlldCB8IC0tcSogfCAtLXNpbGVu dCB8IC0tcyogfCAtcSApCisrICAgICAgbHRfY2xfc2lsZW50PTogOzsKKysKKysgICAgLSopIEFD X01TR19FUlJPUihbdW5yZWNvZ25pemVkIG9wdGlvbjogJFsxXQorK1RyeSBcYCRbMF0gLS1oZWxw JyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5dKSA7OworKworKyAgICAqKSBBQ19NU0dfRVJST1IoW3Vu cmVjb2duaXplZCBhcmd1bWVudDogJFsxXQorK1RyeSBcYCRbMF0gLS1oZWxwJyBmb3IgbW9yZSBp bmZvcm1hdGlvbi5dKSA7OworKyAgZXNhYworKyAgc2hpZnQKKytkb25lCisrCisraWYgJGx0X2Ns X3NpbGVudDsgdGhlbgorKyAgZXhlYyBBU19NRVNTQUdFX0ZEPi9kZXYvbnVsbAorK2ZpCisrX0xU RU9GCisrCisrY2F0ID4+IiRDT05GSUdfTFQiIDw8X0xURU9GCisrX0xUX09VVFBVVF9MSUJUT09M X0NPTU1BTkRTX0lOSVQKKytfTFRFT0YKKysKKytjYXQgPj4iJENPTkZJR19MVCIgPDxcX0xURU9G CisrQUNfTVNHX05PVElDRShbY3JlYXRpbmcgJG9maWxlXSkKKytfTFRfT1VUUFVUX0xJQlRPT0xf Q09NTUFORFMKKytBU19FWElUKDApCisrX0xURU9GCisrY2htb2QgK3ggIiRDT05GSUdfTFQiCisr CisrIyBjb25maWd1cmUgaXMgd3JpdGluZyB0byBjb25maWcubG9nLCBidXQgY29uZmlnLmx0IGRv ZXMgaXRzIG93biByZWRpcmVjdGlvbiwKKysjIGFwcGVuZGluZyB0byBjb25maWcubG9nLCB3aGlj aCBmYWlscyBvbiBET1MsIGFzIGNvbmZpZy5sb2cgaXMgc3RpbGwga2VwdAorKyMgb3BlbiBieSBj b25maWd1cmUuICBIZXJlIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYvbnVsbCwgZWZmZWN0aXZlbHkg Y2xvc2luZworKyMgY29uZmlnLmxvZywgc28gaXQgY2FuIGJlIHByb3Blcmx5IChyZSlvcGVuZWQg YW5kIGFwcGVuZGVkIHRvIGJ5IGNvbmZpZy5sdC4KKytpZiB0ZXN0ICIkbm9fY3JlYXRlIiAhPSB5 ZXM7IHRoZW4KKysgIGx0X2NsX3N1Y2Nlc3M9OgorKyAgdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYK KysgICAgbHRfY29uZmlnX2x0X2FyZ3M9IiRsdF9jb25maWdfbHRfYXJncyAtLXF1aWV0IgorKyAg ZXhlYyBBU19NRVNTQUdFX0xPR19GRD4vZGV2L251bGwKKysgICRTSEVMTCAiJENPTkZJR19MVCIg JGx0X2NvbmZpZ19sdF9hcmdzIHx8IGx0X2NsX3N1Y2Nlc3M9ZmFsc2UKKysgIGV4ZWMgQVNfTUVT U0FHRV9MT0dfRkQ+PmNvbmZpZy5sb2cKKysgICRsdF9jbF9zdWNjZXNzIHx8IEFTX0VYSVQoMSkK KytmaQorK10pIyBMVF9PVVRQVVQKKysKKysKKysjIF9MVF9DT05GSUcoVEFHKQorKyMgLS0tLS0t LS0tLS0tLS0tCisrIyBJZiBUQUcgaXMgdGhlIGJ1aWx0LWluIHRhZywgY3JlYXRlIGFuIGluaXRp YWwgbGlidG9vbCBzY3JpcHQgd2l0aCBhCisrIyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZnJvbSB0 aGUgdW50YWdnZWQgY29uZmlnIHZhcnMuICBPdGhlcndpc2UgYWRkIGNvZGUKKysjIHRvIGNvbmZp Zy5zdGF0dXMgZm9yIGFwcGVuZGluZyB0aGUgY29uZmlndXJhdGlvbiBuYW1lZCBieSBUQUcgZnJv bSB0aGUKKysjIG1hdGNoaW5nIHRhZ2dlZCBjb25maWcgdmFycy4KKyttNF9kZWZ1bihbX0xUX0NP TkZJR10sCisrW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorK19MVF9D T05GSUdfU0FWRV9DT01NQU5EUyhbCisrICBtNF9kZWZpbmUoW19MVF9UQUddLCBtNF9pZihbJDFd LCBbXSwgW0NdLCBbJDFdKSlkbmwKKysgIG00X2lmKF9MVF9UQUcsIFtDXSwgWworKyAgICAjIFNl ZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxs b3cgb3VyCisrICAgICMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2Nh cGVzLgorKyAgICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgorKyAgICAg IHNldG9wdCBOT19HTE9CX1NVQlNUCisrICAgIGZpCisrCisrICAgIGNmZ2ZpbGU9IiR7b2ZpbGV9 VCIKKysgICAgdHJhcCAiJFJNIFwiJGNmZ2ZpbGVcIjsgZXhpdCAxIiAxIDIgMTUKKysgICAgJFJN ICIkY2ZnZmlsZSIKKysKKysgICAgY2F0IDw8X0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrIyEgJFNI RUxMCisrCisrIyBgJEVDSE8gIiRvZmlsZSIgfCBzZWQgJ3MlXi4qLyUlJ2AgLSBQcm92aWRlIGdl bmVyYWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KKysjIEdlbmVyYXRl ZCBhdXRvbWF0aWNhbGx5IGJ5ICRhc19tZSAoJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgor KyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4p IDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKKysjIE5PVEU6IENoYW5nZXMgbWFkZSB0byB0aGlzIGZp bGUgd2lsbCBiZSBsb3N0OiBsb29rIGF0IGx0bWFpbi5zaC4KKysjCisrX0xUX0NPUFlJTkcKKytf TFRfTElCVE9PTF9UQUdTCisrCisrIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKKytfTFRfTElC VE9PTF9DT05GSUdfVkFSUworK19MVF9MSUJUT09MX1RBR19WQVJTCisrIyAjIyMgRU5EIExJQlRP T0wgQ09ORklHCisrCisrX0xUX0VPRgorKworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4Myop CisrICAgIGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysjIEFJWCBzb21ldGltZXMgaGFz IHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKysjIHJl YXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0 aGUgcHJvYmxlbXMKKysjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCisraWYgdGVzdCAiWCR7 Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICBDT0xMRUNUX05BTUVTPQorKyAg ZXhwb3J0IENPTExFQ1RfTkFNRVMKKytmaQorK19MVF9FT0YKKysgICAgOzsKKysgIGVzYWMKKysK KysgIF9MVF9QUk9HX0xUTUFJTgorKworKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJl Y2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCisrICAjIGlmIGZpbmRzIG1peGVk IENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCisrICAjIHRl eHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2gg cHJvYmxlbQorKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xk IHZlcnNpb25zIHRvbz8KKysgIHNlZCAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5z ZXJ0ZWQgaGVyZS9xJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisrICAgIHx8IChybSAtZiAi JGNmZ2ZpbGUiOyBleGl0IDEpCisrCisrICBfTFRfUFJPR19YU0lfU0hFTExGTlMKKysKKysgIHNl ZCAtbiAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS8sJHAnICIk bHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKKysgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQg MSkKKysKKysgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwKKysgICAgKHJtIC1mICIkb2Zp bGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKKysgIGNo bW9kICt4ICIkb2ZpbGUiCisrXSwKKytbY2F0IDw8X0xUX0VPRiA+PiAiJG9maWxlIgorKworK2Ru bCBVbmZvcnR1bmF0ZWx5IHdlIGhhdmUgdG8gdXNlICQxIGhlcmUsIHNpbmNlIF9MVF9UQUcgaXMg bm90IGV4cGFuZGVkCisrZG5sIGluIGEgY29tbWVudCAoaWUgYWZ0ZXIgYSAjKS4KKysjICMjIyBC RUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICQxCisrX0xUX0xJQlRPT0xfVEFHX1ZBUlMoX0xUX1RB RykKKysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkMQorK19MVF9FT0YKKytdKWRubCAv bTRfaWYKKytdLAorK1ttNF9pZihbJDFdLCBbXSwgWworKyAgICBQQUNLQUdFPSckUEFDS0FHRScK KysgICAgVkVSU0lPTj0nJFZFUlNJT04nCisrICAgIFRJTUVTVEFNUD0nJFRJTUVTVEFNUCcKKysg ICAgUk09JyRSTScKKysgICAgb2ZpbGU9JyRvZmlsZSddLCBbXSkKKytdKWRubCAvX0xUX0NPTkZJ R19TQVZFX0NPTU1BTkRTCisrXSkjIF9MVF9DT05GSUcKKysKKysKKysjIExUX1NVUFBPUlRFRF9U QUcoVEFHKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUcmFjZSB0aGlzIG1hY3JvIHRv IGRpc2NvdmVyIHdoYXQgdGFncyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBsaWJ0b29sCisrIyAtLXRh ZyBvcHRpb24sIHVzaW5nOgorKyMgICAgYXV0b2NvbmYgLS10cmFjZSAnTFRfU1VQUE9SVEVEX1RB RzokMScKKytBQ19ERUZVTihbTFRfU1VQUE9SVEVEX1RBR10sIFtdKQorKworKworKyMgQyBzdXBw b3J0IGlzIGJ1aWx0LWluIGZvciBub3cKKyttNF9kZWZpbmUoW19MVF9MQU5HX0NfZW5hYmxlZF0s IFtdKQorK200X2RlZmluZShbX0xUX1RBR1NdLCBbXSkKKysKKysKKysjIExUX0xBTkcoTEFORykK KysjIC0tLS0tLS0tLS0tLS0KKysjIEVuYWJsZSBsaWJ0b29sIHN1cHBvcnQgZm9yIHRoZSBnaXZl biBsYW5ndWFnZSBpZiBub3QgYWxyZWFkeSBlbmFibGVkLgorK0FDX0RFRlVOKFtMVF9MQU5HXSwK KytbQUNfQkVGT1JFKFskMF0sIFtMVF9PVVRQVVRdKWRubAorK200X2Nhc2UoWyQxXSwKKysgIFtD XSwJCQlbX0xUX0xBTkcoQyldLAorKyAgW0MrK10sCQlbX0xUX0xBTkcoQ1hYKV0sCisrICBbSmF2 YV0sCQlbX0xUX0xBTkcoR0NKKV0sCisrICBbRm9ydHJhbiA3N10sCQlbX0xUX0xBTkcoRjc3KV0s CisrICBbRm9ydHJhbl0sCQlbX0xUX0xBTkcoRkMpXSwKKysgIFtXaW5kb3dzIFJlc291cmNlXSwJ W19MVF9MQU5HKFJDKV0sCisrICBbbTRfaWZkZWYoW19MVF9MQU5HX10kMVtfQ09ORklHXSwKKysg ICAgW19MVF9MQU5HKCQxKV0sCisrICAgIFttNF9mYXRhbChbJDA6IHVuc3VwcG9ydGVkIGxhbmd1 YWdlOiAiJDEiXSldKV0pZG5sCisrXSkjIExUX0xBTkcKKysKKysKKysjIF9MVF9MQU5HKExBTkdO QU1FKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9MQU5HXSwKKytbbTRf aWZkZWYoW19MVF9MQU5HX10kMVtfZW5hYmxlZF0sIFtdLAorKyAgW0xUX1NVUFBPUlRFRF9UQUco WyQxXSlkbmwKKysgIG00X2FwcGVuZChbX0xUX1RBR1NdLCBbJDEgXSlkbmwKKysgIG00X2RlZmlu ZShbX0xUX0xBTkdfXSQxW19lbmFibGVkXSwgW10pZG5sCisrICBfTFRfTEFOR18kMV9DT05GSUco JDEpXSlkbmwKKytdKSMgX0xUX0xBTkcKKysKKysKKysjIF9MVF9MQU5HX0RFRkFVTFRfQ09ORklH CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfTEFOR19ERUZBVUxU X0NPTkZJR10sCisrW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCisrICBbTFRfTEFO RyhDWFgpXSwKKysgIFttNF9kZWZpbmUoW0FDX1BST0dfQ1hYXSwgZGVmbihbQUNfUFJPR19DWFhd KVtMVF9MQU5HKENYWCldKV0pCisrCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfRjc3XSwK KysgIFtMVF9MQU5HKEY3NyldLAorKyAgW200X2RlZmluZShbQUNfUFJPR19GNzddLCBkZWZuKFtB Q19QUk9HX0Y3N10pW0xUX0xBTkcoRjc3KV0pXSkKKysKKytBQ19QUk9WSURFX0lGRUxTRShbQUNf UFJPR19GQ10sCisrICBbTFRfTEFORyhGQyldLAorKyAgW200X2RlZmluZShbQUNfUFJPR19GQ10s IGRlZm4oW0FDX1BST0dfRkNdKVtMVF9MQU5HKEZDKV0pXSkKKysKKytkbmwgVGhlIGNhbGwgdG8g W0FdW01fUFJPR19HQ0pdIGlzIHF1b3RlZCBsaWtlIHRoYXQgdG8gc3RvcCBhY2xvY2FsCisrZG5s IHB1bGxpbmcgdGhpbmdzIGluIG5lZWRsZXNzbHkuCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BS T0dfR0NKXSwKKysgIFtMVF9MQU5HKEdDSildLAorKyAgW0FDX1BST1ZJREVfSUZFTFNFKFtBXVtN X1BST0dfR0NKXSwKKysgICAgW0xUX0xBTkcoR0NKKV0sCisrICAgIFtBQ19QUk9WSURFX0lGRUxT RShbTFRfUFJPR19HQ0pdLAorKyAgICAgIFtMVF9MQU5HKEdDSildLAorKyAgICAgIFttNF9pZmRl ZihbQUNfUFJPR19HQ0pdLAorKwlbbTRfZGVmaW5lKFtBQ19QUk9HX0dDSl0sIGRlZm4oW0FDX1BS T0dfR0NKXSlbTFRfTEFORyhHQ0opXSldKQorKyAgICAgICBtNF9pZmRlZihbQV1bTV9QUk9HX0dD Sl0sCisrCVttNF9kZWZpbmUoW0FdW01fUFJPR19HQ0pdLCBkZWZuKFtBXVtNX1BST0dfR0NKXSlb TFRfTEFORyhHQ0opXSldKQorKyAgICAgICBtNF9pZmRlZihbTFRfUFJPR19HQ0pdLAorKwlbbTRf ZGVmaW5lKFtMVF9QUk9HX0dDSl0sIGRlZm4oW0xUX1BST0dfR0NKXSlbTFRfTEFORyhHQ0opXSld KV0pXSldKQorKworK0FDX1BST1ZJREVfSUZFTFNFKFtMVF9QUk9HX1JDXSwKKysgIFtMVF9MQU5H KFJDKV0sCisrICBbbTRfZGVmaW5lKFtMVF9QUk9HX1JDXSwgZGVmbihbTFRfUFJPR19SQ10pW0xU X0xBTkcoUkMpXSldKQorK10pIyBfTFRfTEFOR19ERUZBVUxUX0NPTkZJRworKworKyMgT2Jzb2xl dGUgbWFjcm9zOgorK0FVX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sIFtMVF9MQU5HKEMrKyldKQor K0FVX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtMVF9MQU5HKEZvcnRyYW4gNzcpXSkKKytBVV9E RUZVTihbQUNfTElCVE9PTF9GQ10sIFtMVF9MQU5HKEZvcnRyYW4pXSkKKytBVV9ERUZVTihbQUNf TElCVE9PTF9HQ0pdLCBbTFRfTEFORyhKYXZhKV0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJk cyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9DWFhdLCBbXSkKKytk bmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19MSUJU T09MX0ZDXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0dDSl0sIFtdKQorKworKwor KyMgX0xUX1RBR19DT01QSUxFUgorKyMgLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRf VEFHX0NPTVBJTEVSXSwKKytbQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrCisrX0xUX0RF Q0woW0xUQ0NdLCBbQ0NdLCBbMV0sIFtBIEMgY29tcGlsZXJdKWRubAorK19MVF9ERUNMKFtMVENG TEFHU10sIFtDRkxBR1NdLCBbMV0sIFtMVENDIGNvbXBpbGVyIGZsYWdzXSlkbmwKKytfTFRfVEFH REVDTChbQ0NdLCBbY29tcGlsZXJdLCBbMV0sIFtBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVy XSlkbmwKKytfTFRfVEFHREVDTChbd2l0aF9nY2NdLCBbR0NDXSwgWzBdLCBbSXMgdGhlIGNvbXBp bGVyIHRoZSBHTlUgY29tcGlsZXI/XSlkbmwKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNw ZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBjb21w aWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZM QUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworK10pIyBfTFRfVEFHX0NPTVBJTEVSCisrCisrCisr IyBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgQ2hlY2sgZm9yIGNvbXBpbGVyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRo CisrIyB0aGUgc2ltcGxlIGNvbXBpbGVyIHRlc3QgY29kZS4KKyttNF9kZWZ1bihbX0xUX0NPTVBJ TEVSX0JPSUxFUlBMQVRFXSwKKytbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKythY19v dXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2 L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9jb21waWxl cl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gY29uZnRlc3QqCisrXSkjIF9M VF9DT01QSUxFUl9CT0lMRVJQTEFURQorKworKworKyMgX0xUX0xJTktFUl9CT0lMRVJQTEFURQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9yIGxpbmtlciBib2lsZXJwbGF0 ZSBvdXRwdXQgb3Igd2FybmluZ3Mgd2l0aAorKyMgdGhlIHNpbXBsZSBsaW5rIHRlc3QgY29kZS4K KyttNF9kZWZ1bihbX0xUX0xJTktFUl9CT0lMRVJQTEFURV0sCisrW200X3JlcXVpcmUoW19MVF9E RUNMX1NFRF0pZG5sCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfbGlu ayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIK KytfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRSTSAtciBjb25m dGVzdCoKKytdKSMgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKworKyMgX0xUX1JFUVVJUkVEX0RB UldJTl9DSEVDS1MKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bl9vbmNl KFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10sWworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICByaGFwc29keSogfCBkYXJ3aW4qKQorKyAgICBBQ19DSEVDS19UT09MKFtEU1lNVVRJTF0sIFtk c3ltdXRpbF0sIFs6XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbTk1FRElUXSwgW25tZWRpdF0sIFs6 XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbTElQT10sIFtsaXBvXSwgWzpdKQorKyAgICBBQ19DSEVD S19UT09MKFtPVE9PTF0sIFtvdG9vbF0sIFs6XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbT1RPT0w2 NF0sIFtvdG9vbDY0XSwgWzpdKQorKyAgICBfTFRfREVDTChbXSwgW0RTWU1VVElMXSwgWzFdLAor KyAgICAgIFtUb29sIHRvIG1hbmlwdWxhdGUgYXJjaGl2ZWQgRFdBUkYgZGVidWcgc3ltYm9sIGZp bGVzIG9uIE1hYyBPUyBYXSkKKysgICAgX0xUX0RFQ0woW10sIFtOTUVESVRdLCBbMV0sCisrICAg ICAgW1Rvb2wgdG8gY2hhbmdlIGdsb2JhbCB0byBsb2NhbCBzeW1ib2xzIG9uIE1hYyBPUyBYXSkK KysgICAgX0xUX0RFQ0woW10sIFtMSVBPXSwgWzFdLAorKyAgICAgIFtUb29sIHRvIG1hbmlwdWxh dGUgZmF0IG9iamVjdHMgYW5kIGFyY2hpdmVzIG9uIE1hYyBPUyBYXSkKKysgICAgX0xUX0RFQ0wo W10sIFtPVE9PTF0sIFsxXSwKKysgICAgICBbbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciBNYWNo LU8gYmluYXJpZXMgb24gTWFjIE9TIFhdKQorKyAgICBfTFRfREVDTChbXSwgW09UT09MNjRdLCBb MV0sCisrICAgICAgW2xkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgNjQgYml0IE1hY2gtTyBiaW5h cmllcyBvbiBNYWMgT1MgWCAxMC40XSkKKysKKysgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAtc2lu Z2xlX21vZHVsZSBsaW5rZXIgZmxhZ10sW2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2RdLAorKyAg ICAgIFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPW5vCisrICAgICAgaWYgdGVzdCAteiAiJHtM VF9NVUxUSV9NT0RVTEV9IjsgdGhlbgorKwkjIEJ5IGRlZmF1bHQgd2Ugd2lsbCBhZGQgdGhlIC1z aW5nbGVfbW9kdWxlIGZsYWcuIFlvdSBjYW4gb3ZlcnJpZGUKKysJIyBieSBlaXRoZXIgc2V0dGlu ZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTFRfTVVMVElfTU9EVUxFCisrCSMgbm9uLWVtcHR5 IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKKysJ IyBsaW5rIGZsYWdzLgorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCWVjaG8gImludCBm b28odm9pZCl7cmV0dXJuIDE7fSIgPiBjb25mdGVzdC5jCisrCWVjaG8gIiRMVENDICRMVENGTEFH UyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxpYiBcCisrLWR5bmFtaWNsaWIgLVdsLC1zaW5n bGVfbW9kdWxlIGNvbmZ0ZXN0LmMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysJJExUQ0MgJExUQ0ZM QUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKKysJICAtZHluYW1pY2xpYiAtV2ws LXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyAyPmNvbmZ0ZXN0LmVycgorKyAgICAgICAgX2x0X3Jl c3VsdD0kPworKwlpZiB0ZXN0IC1mIGxpYmNvbmZ0ZXN0LmR5bGliICYmIHRlc3QgISAtcyBjb25m dGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDA7IHRoZW4KKysJICBsdF9jdl9hcHBsZV9j Y19zaW5nbGVfbW9kPXllcworKwllbHNlCisrCSAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NB R0VfTE9HX0ZECisrCWZpCisrCXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKKysJcm0gLWYgY29u ZnRlc3QuKgorKyAgICAgIGZpXSkKKysgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAtZXhwb3J0ZWRf c3ltYm9sc19saXN0IGxpbmtlciBmbGFnXSwKKysgICAgICBbbHRfY3ZfbGRfZXhwb3J0ZWRfc3lt Ym9sc19saXN0XSwKKysgICAgICBbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vCisr ICAgICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisrICAgICAgZWNobyAiX21haW4iID4gY29uZnRl c3Quc3ltCisrICAgICAgTERGTEFHUz0iJExERkxBR1MgLVdsLC1leHBvcnRlZF9zeW1ib2xzX2xp c3QsY29uZnRlc3Quc3ltIgorKyAgICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0o W10sW10pXSwKKysJW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD15ZXNdLAorKwlbbHRf Y3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vXSkKKysJTERGTEFHUz0iJHNhdmVfTERGTEFH UyIKKysgICAgXSkKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3 aW4xLltbMDEyXV0pCisrICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVm aW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAgICBkYXJ3aW4xLiopCisrICAgICAgX2x0X2Rhcl9h bGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3ds fXN1cHByZXNzJyA7OworKyAgICBkYXJ3aW4qKSAjIGRhcndpbiA1Lnggb24KKysgICAgICAjIGlm IHJ1bm5pbmcgb24gMTAuNSBvciBsYXRlciwgdGhlIGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRz CisrICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRl cGxveW1lbnQKKysgICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92 ZSBpdD8KKysgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0 IGluCisrCTEwLjAsKjg2Ki1kYXJ3aW44KnwxMC4wLCotZGFyd2luW1s5MV1dKikKKysJICBfbHRf ZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAn IDs7CisrCTEwLltbMDEyXV0qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1m bGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysJMTAuKikK KysJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1p Y19sb29rdXAnIDs7CisrICAgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgICBpZiB0ZXN0 ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgorKyAgICAgIF9sdF9k YXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRs dF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KKysgICAgICBfbHRf ZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2Jq ZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisrICAgIGVsc2UKKysgICAgICBfbHRfZGFy X2V4cG9ydF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltICR7bGlifScKKysgICAgZmkKKysgICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAi OiI7IHRoZW4KKysgICAgICBfbHRfZHN5bXV0aWw9J34kRFNZTVVUSUwgJGxpYiB8fCA6JworKyAg ICBlbHNlCisrICAgICAgX2x0X2RzeW11dGlsPQorKyAgICBmaQorKyAgICA7OworKyAgZXNhYwor K10pCisrCisrCisrIyBfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJFUworKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysjIENoZWNrcyBmb3IgbGlua2VyIGFuZCBjb21waWxlciBmZWF0dXJl cyBvbiBkYXJ3aW4KKyttNF9kZWZ1bihbX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVNdLAorK1sK KysgIG00X3JlcXVpcmUoW19MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTXSkKKysgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9k aXJlY3QsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT15ZXMK KysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisr ICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JycKKysgIF9MVF9UQUdW QVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmlu ZWRfZmxhZywgJDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCisrICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9eWVzIDs7CisrICAgICAq KSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OworKyAgZXNhYworKyAgaWYgdGVzdCAiJF9sdF9k YXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgorKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD1lY2hvCisrICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLWR5bmFtaWNs aWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwk Y29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5n ICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisrICAgIF9MVF9UQUdWQVIobW9k dWxlX2NtZHMsICQxKT0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5k bGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9Igor KyAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwg XCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4 cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRs aWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9c JHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0 X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICBfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21k cywgJDEpPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2Jq ZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxh ZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7 X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgIG00X2lmKFskMV0sIFtD WFhdLAorK1sgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7 IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSJcJENDIC1yIC1rZWVw X3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+ XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0t bWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRo L1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xz ID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLXIgLWtl ZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jq c35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGli fS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBh dGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0 aWx9IgorKyAgICBmaQorK10sW10pCisrICBlbHNlCisrICBfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCisrICBmaQorK10pCisrCisrIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIExpbmtzIGEgbWluaW1hbCBwcm9ncmFtIGFuZCBjaGVj a3MgdGhlIGV4ZWN1dGFibGUKKysjIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgaGFyZGNvZGVkIGxp YnJhcnkgcGF0aC4gSW4gbW9zdCBjYXNlcywKKysjIHRoaXMgaXMgL3Vzci9saWI6L2xpYiwgYnV0 IHdoZW4gdGhlIE1QSSBjb21waWxlcnMgYXJlIHVzZWQKKysjIHRoZSBsb2NhdGlvbiBvZiB0aGUg Y29tbXVuaWNhdGlvbiBhbmQgTVBJIGxpYnMgYXJlIGluY2x1ZGVkIHRvby4KKysjIElmIHdlIGRv bid0IGZpbmQgYW55dGhpbmcsIHVzZSB0aGUgZGVmYXVsdCBsaWJyYXJ5IHBhdGggYWNjb3JkaW5n CisrIyB0byB0aGUgYWl4IGxkIG1hbnVhbC4KKyttNF9kZWZ1bihbX0xUX1NZU19NT0RVTEVfUEFU SF9BSVhdLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorK0FDX0xJTktfSUZFTFNF KEFDX0xBTkdfUFJPR1JBTSxbCisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBG aWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLwor KwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNf ZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisr IyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgor K2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1I WDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhf bGlicGF0aF9zZWQiYAorK2ZpXSxbXSkKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVu IGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKytdKSMgX0xUX1NZU19NT0RVTEVfUEFU SF9BSVgKKysKKysKKysjIF9MVF9TSEVMTF9JTklUKEFSRykKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0KKyttNF9kZWZpbmUoW19MVF9TSEVMTF9JTklUXSwKKytbaWZkZWYoW0FDX0RJVkVSU0lPTl9O T1RJQ0VdLAorKwkgICAgIFtBQ19ESVZFUlRfUFVTSChBQ19ESVZFUlNJT05fTk9USUNFKV0sCisr CSBbQUNfRElWRVJUX1BVU0goTk9USUNFKV0pCisrJDEKKytBQ19ESVZFUlRfUE9QCisrXSkjIF9M VF9TSEVMTF9JTklUCisrCisrCisrIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysjIEFkZCBzb21lIGNvZGUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBn ZW5lcmF0ZWQgY29uZmlndXJlIHNjcmlwdCB3aGljaAorKyMgd2lsbCBmaW5kIGFuIGVjaG8gY29t bWFuZCB3aGljaCBkb2Vzbid0IGludGVycHJldCBiYWNrc2xhc2hlcy4KKyttNF9kZWZ1bihbX0xU X1BST0dfRUNIT19CQUNLU0xBU0hdLAorK1tfTFRfU0hFTExfSU5JVChbCisrIyBDaGVjayB0aGF0 IHdlIGFyZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgorK1NIRUxMPSR7Q09ORklH X1NIRUxMLS9iaW4vc2h9CisrCisrY2FzZSBYJGx0X0VDSE8gaW4KKytYKi0tZmFsbGJhY2stZWNo bykKKysgICMgUmVtb3ZlIG9uZSBsZXZlbCBvZiBxdW90YXRpb24gKHdoaWNoIHdhcyByZXF1aXJl ZCBmb3IgTWFrZSkuCisrICBFQ0hPPWBlY2hvICIkbHRfRUNITyIgfCBzZWQgJ3MsXFxcXFxbJF1c XFskXTAsJ1skXTAnLCdgCisrICA7OworK2VzYWMKKysKKytFQ0hPPSR7bHRfRUNITy1lY2hvfQor K2lmIHRlc3QgIlhbJF0xIiA9IFgtLW5vLXJlZXhlYzsgdGhlbgorKyAgIyBEaXNjYXJkIHRoZSAt LW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisrICBzaGlmdAorK2VsaWYgdGVzdCAiWFsk XTEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQg aGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVzdCAiWGB7ICRFQ0hPICdc dCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnIDsgdGhlbgorKyAgIyBZaXBwZWUsICRFQ0hPIHdv cmtzIQorKyAgOgorK2Vsc2UKKysgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4K KysgIGV4ZWMgJFNIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezErIlskXUAifQorK2ZpCisrCisr aWYgdGVzdCAiWFskXTEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyB1c2VkIGFzIGZh bGxiYWNrIGVjaG8KKysgIHNoaWZ0CisrICBjYXQgPDxfTFRfRU9GCisrWyRdKgorK19MVF9FT0YK KysgIGV4aXQgMAorK2ZpCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmlu dCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisr KHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK2lmIHRl c3QgLXogIiRsdF9FQ0hPIjsgdGhlbgorKyAgaWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytz ZXR9IiAhPSBYc2V0OyB0aGVuCisrICAgICMgZmluZCBhIHN0cmluZyBhcyBsYXJnZSBhcyBwb3Nz aWJsZSwgYXMgbG9uZyBhcyB0aGUgc2hlbGwgY2FuIGNvcGUgd2l0aCBpdAorKyAgICBmb3IgY21k IGluICdzZWQgNTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAnc2VkIDEwcSAiWyRdMCInICdz ZWQgMnEgIlskXTAiJyAnZWNobyB0ZXN0JzsgZG8KKysgICAgICAjIGV4cGVjdGVkIHNpemVzOiBs ZXNzIHRoYW4gMktiLCAxS2IsIDUxMiBieXRlcywgMTYgYnl0ZXMsIC4uLgorKyAgICAgIGlmIHsg ZWNob190ZXN0X3N0cmluZz1gZXZhbCAkY21kYDsgfSAyPi9kZXYvbnVsbCAmJgorKwkgeyB0ZXN0 ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251 bGwKKysgICAgICB0aGVuCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGRvbmUKKysg IGZpCisrCisrICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hc dCcgJiYKKysgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rfc3Ry aW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKysgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmlu ZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICA6CisrICBlbHNlCisrICAgICMg VGhlIFNvbGFyaXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZhdWx0IGVjaG8gcHJvZ3JhbXMg dW5xdW90ZQorKyAgICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRv IHF1b3RlIGJhY2tzbGFzaGVzIHVzaW5nCisrICAgICMgICBlY2hvICIkc29tZXRoaW5nIiB8IHNl ZCAncy9cXC9cXFxcL2cnCisrICAgICMKKysgICAgIyBTbywgZmlyc3Qgd2UgbG9vayBmb3IgYSB3 b3JraW5nIGVjaG8gaW4gdGhlIHVzZXIncyBQQVRILgorKworKyAgICBsdF9zYXZlX2lmcz0iJElG UyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgICAgZm9yIGRpciBpbiAkUEFUSCAvdXNyL3VjYjsg ZG8KKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICBpZiAodGVzdCAtZiAkZGlyL2Vj aG8gfHwgdGVzdCAtZiAkZGlyL2VjaG8kYWNfZXhlZXh0KSAmJgorKyAgICAgICAgIHRlc3QgIlhg KCRkaXIvZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgICAgICBlY2hv X3Rlc3Rpbmdfc3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9u dWxsYCAmJgorKyAgICAgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hv X3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICAgICAgRUNITz0iJGRpci9lY2hvIgorKyAgICAgICAg YnJlYWsKKysgICAgICBmaQorKyAgICBkb25lCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKwor KyAgICBpZiB0ZXN0ICJYJEVDSE8iID0gWGVjaG87IHRoZW4KKysgICAgICAjIFdlIGRpZG4ndCBm aW5kIGEgYmV0dGVyIGVjaG8sIHNvIGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KKysgICAgICBpZiB0 ZXN0ICJYYHsgcHJpbnQgLXIgJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAg ICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7IHByaW50IC1yICIkZWNob190ZXN0X3N0cmluZyI7 IH0gMj4vZGV2L251bGxgICYmCisrICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5n IiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrICAgICAgICAjIFRoaXMgc2hlbGwgaGFz IGEgYnVpbHRpbiBwcmludCAtciB0aGF0IGRvZXMgdGhlIHRyaWNrLgorKyAgICAgICAgRUNITz0n cHJpbnQgLXInCisrICAgICAgZWxpZiB7IHRlc3QgLWYgL2Jpbi9rc2ggfHwgdGVzdCAtZiAvYmlu L2tzaCRhY19leGVleHQ7IH0gJiYKKysJICAgdGVzdCAiWCRDT05GSUdfU0hFTEwiICE9IFgvYmlu L2tzaDsgdGhlbgorKyAgICAgICAgIyBJZiB3ZSBoYXZlIGtzaCwgdHJ5IHJ1bm5pbmcgY29uZmln dXJlIGFnYWluIHdpdGggaXQuCisrICAgICAgICBPUklHSU5BTF9DT05GSUdfU0hFTEw9JHtDT05G SUdfU0hFTEwtL2Jpbi9zaH0KKysgICAgICAgIGV4cG9ydCBPUklHSU5BTF9DT05GSUdfU0hFTEwK KysgICAgICAgIENPTkZJR19TSEVMTD0vYmluL2tzaAorKyAgICAgICAgZXhwb3J0IENPTkZJR19T SEVMTAorKyAgICAgICAgZXhlYyAkQ09ORklHX1NIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezEr IlskXUAifQorKyAgICAgIGVsc2UKKysgICAgICAgICMgVHJ5IHVzaW5nIHByaW50Zi4KKysgICAg ICAgIEVDSE89J3ByaW50ZiAlc1xuJworKyAgICAgICAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7 IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrCSAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsg JEVDSE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKysJICAgdGVzdCAi WCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSAg IyBDb29sLCBwcmludGYgd29ya3MKKysJICA6CisrICAgICAgICBlbGlmIGVjaG9fdGVzdGluZ19z dHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gJ1x0 JykgMj4vZGV2L251bGxgICYmCisrCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9 ICdYXHQnICYmCisrCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdf U0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYv bnVsbGAgJiYKKysJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190 ZXN0X3N0cmluZyI7IHRoZW4KKysJICBDT05GSUdfU0hFTEw9JE9SSUdJTkFMX0NPTkZJR19TSEVM TAorKwkgIGV4cG9ydCBDT05GSUdfU0hFTEwKKysJICBTSEVMTD0iJENPTkZJR19TSEVMTCIKKysJ ICBleHBvcnQgU0hFTEwKKysJICBFQ0hPPSIkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1l Y2hvIgorKyAgICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAi WyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgorKwkgICAgIHRlc3Qg IlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgorKwkgICAgIGVjaG9fdGVzdGluZ19z dHJpbmc9YCgkQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rf c3RyaW5nIikgMj4vZGV2L251bGxgICYmCisrCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3Ry aW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSAgRUNITz0iJENPTkZJR19TSEVM TCBbJF0wIC0tZmFsbGJhY2stZWNobyIKKysgICAgICAgIGVsc2UKKysJICAjIG1heWJlIHdpdGgg YSBzbWFsbGVyIHN0cmluZy4uLgorKwkgIHByZXY9OgorKworKwkgIGZvciBjbWQgaW4gJ2VjaG8g dGVzdCcgJ3NlZCAycSAiWyRdMCInICdzZWQgMTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAn c2VkIDUwcSAiWyRdMCInOyBkbworKwkgICAgaWYgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmci ID0gIlhgZXZhbCAkY21kYCI7IH0gMj4vZGV2L251bGwKKysJICAgIHRoZW4KKysJICAgICAgYnJl YWsKKysJICAgIGZpCisrCSAgICBwcmV2PSIkY21kIgorKwkgIGRvbmUKKysKKysJICBpZiB0ZXN0 ICIkcHJldiIgIT0gJ3NlZCA1MHEgIlskXTAiJzsgdGhlbgorKwkgICAgZWNob190ZXN0X3N0cmlu Zz1gZXZhbCAkcHJldmAKKysJICAgIGV4cG9ydCBlY2hvX3Rlc3Rfc3RyaW5nCisrCSAgICBleGVj ICR7T1JJR0lOQUxfQ09ORklHX1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiWyRdMCIg JHsxKyJbJF1AIn0KKysJICBlbHNlCisrCSAgICAjIE9vcHMuICBXZSBsb3N0IGNvbXBsZXRlbHks IHNvIGp1c3Qgc3RpY2sgd2l0aCBlY2hvLgorKwkgICAgRUNITz1lY2hvCisrCSAgZmkKKysgICAg ICAgIGZpCisrICAgICAgZmkKKysgICAgZmkKKysgIGZpCisrZmkKKysKKysjIENvcHkgZWNobyBh bmQgcXVvdGUgdGhlIGNvcHkgc3VpdGFibHkgZm9yIHBhc3NpbmcgdG8gbGlidG9vbCBmcm9tCisr IyB0aGUgTWFrZWZpbGUsIGluc3RlYWQgb2YgcXVvdGluZyB0aGUgb3JpZ2luYWwsIHdoaWNoIGlz IHVzZWQgbGF0ZXIuCisrbHRfRUNITz0kRUNITworK2lmIHRlc3QgIlgkbHRfRUNITyIgPSAiWCRD T05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCisrICAgbHRfRUNITz0iJENP TkZJR19TSEVMTCBcXFwkXFskXTAgLS1mYWxsYmFjay1lY2hvIgorK2ZpCisrCisrQUNfU1VCU1Qo bHRfRUNITykKKytdKQorK19MVF9ERUNMKFtdLCBbU0hFTExdLCBbMV0sIFtTaGVsbCB0byB1c2Ug d2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzXSkKKytfTFRfREVDTChbXSwgW0VDSE9dLCBbMV0s CisrICAgIFtBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNo ZXNdKQorK10pIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorKworKworKyMgX0xUX0VOQUJMRV9M T0NLCisrIyAtLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX0VOQUJMRV9MT0NLXSwKKytb QUNfQVJHX0VOQUJMRShbbGlidG9vbC1sb2NrXSwKKysgIFtBU19IRUxQX1NUUklORyhbLS1kaXNh YmxlLWxpYnRvb2wtbG9ja10sCisrICAgIFthdm9pZCBsb2NraW5nIChtaWdodCBicmVhayBwYXJh bGxlbCBidWlsZHMpXSldKQorK3Rlc3QgIngkZW5hYmxlX2xpYnRvb2xfbG9jayIgIT0geG5vICYm IGVuYWJsZV9saWJ0b29sX2xvY2s9eWVzCisrCisrIyBTb21lIGZsYWdzIG5lZWQgdG8gYmUgcHJv cGFnYXRlZCB0byB0aGUgY29tcGlsZXIgb3IgbGlua2VyIGZvciBnb29kCisrIyBsaWJ0b29sIHN1 cHBvcnQuCisrY2FzZSAkaG9zdCBpbgorK2lhNjQtKi1ocHV4KikKKysgICMgRmluZCBvdXQgd2hp Y2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0 CisrICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jp bi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisrICAgICAgKkVMRi0zMiopCisrCUhQVVhf SUE2NF9NT0RFPSIzMiIKKysJOzsKKysgICAgICAqRUxGLTY0KikKKysJSFBVWF9JQTY0X01PREU9 IjY0IgorKwk7OworKyAgICBlc2FjCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAgOzsK KysqLSotaXJpeDYqKQorKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAg ZWNobyAnWyNdbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAor KyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgaWYgdGVzdCAiJGx0X2N2 X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29u ZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxm MzJic21pcCIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBu MzIiCisrCSAgOzsKKysJKjY0LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRibWlwIgor Kwk7OworKyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUg Y29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC0z MiIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW4zMiIKKysJICA7OworKwkq NjQtYml0KikKKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwkgIDs7CisrICAgICAgZXNhYworKyAg ICBmaQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisreDg2XzY0LSprZnJl ZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBc CisrczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4KikKKysgICMgRmluZCBv dXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4k YWNfZXh0CisrICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAv dXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisrICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhv c3QgaW4KKysJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0g ZWxmX2kzODZfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0i JHtMRC1sZH0gLW0gZWxmX2kzODYiCisrCSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJw YzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAg IDs7CisrCSAgczM5MHgtKmxpbnV4KikKKysJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIK KysJICAgIDs7CisrCSAgc3BhcmM2NC0qbGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVs ZjMyX3NwYXJjIgorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgICo2NC1iaXQqKQorKwlj YXNlICRob3N0IGluCisrCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQt bGR9IC1tIGVsZl94ODZfNjRfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisr CSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGlu dXgqfHBvd2VycGMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisr CSAgICA7OworKwkgIHMzOTAqLSpsaW51eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmNjRfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBM RD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAg IGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKworKyotKi1zY28zLjJ2 NSopCisrICAjIE9uIFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwt ZmVhdHVyZWQgYmluYXJpZXMuCisrICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0i JENGTEFHUyAtYmVsZiIKKysgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBDIGNvbXBpbGVy IG5lZWRzIC1iZWxmXSwgbHRfY3ZfY2NfbmVlZHNfYmVsZiwKKysgICAgW0FDX0xBTkdfUFVTSChD KQorKyAgICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLFtbXV0pXSxbbHRf Y3ZfY2NfbmVlZHNfYmVsZj15ZXNdLFtsdF9jdl9jY19uZWVkc19iZWxmPW5vXSkKKysgICAgIEFD X0xBTkdfUE9QXSkKKysgIGlmIHRlc3QgeCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0geCJ5ZXMi OyB0aGVuCisrICAgICMgdGhpcyBpcyBwcm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5l d2VyOyBubyBuZWVkIGZvciAtYmVsZgorKyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKKysgIGZp CisrICA7OworK3NwYXJjKi0qc29sYXJpcyopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBh cmUgdXNpbmcuCisrICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNf VFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25m dGVzdC5vYCBpbgorKyAgICAqNjQtYml0KikKKysgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9s ZCBpbgorKyAgICAgIHllcyopIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKKysgICAg ICAqKQorKwlpZiAke0xELWxkfSAtNjQgLXIgLW8gY29uZnRlc3QyLm8gY29uZnRlc3QubyA+L2Rl di9udWxsIDI+JjE7IHRoZW4KKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwlmaQorKwk7OworKyAg ICAgIGVzYWMKKysgICAgICA7OworKyAgICBlc2FjCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0 KgorKyAgOzsKKytlc2FjCisrCisrbmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCisr XSkjIF9MVF9FTkFCTEVfTE9DSworKworKworKyMgX0xUX0NNRF9PTERfQVJDSElWRQorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ01EX09MRF9BUkNISVZFXSwKKytbQUNf Q0hFQ0tfVE9PTChBUiwgYXIsIGZhbHNlKQorK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKKyt0ZXN0 IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQorK19MVF9ERUNMKFtdLCBbQVJdLCBbMV0s IFtUaGUgYXJjaGl2ZXJdKQorK19MVF9ERUNMKFtdLCBbQVJfRkxBR1NdLCBbMV0pCisrCisrQUNf Q0hFQ0tfVE9PTChTVFJJUCwgc3RyaXAsIDopCisrdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06 CisrX0xUX0RFQ0woW10sIFtTVFJJUF0sIFsxXSwgW0Egc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFt XSkKKysKKytBQ19DSEVDS19UT09MKFJBTkxJQiwgcmFubGliLCA6KQorK3Rlc3QgLXogIiRSQU5M SUIiICYmIFJBTkxJQj06CisrX0xUX0RFQ0woW10sIFtSQU5MSUJdLCBbMV0sCisrICAgIFtDb21t YW5kcyB1c2VkIHRvIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorKworKyMgRGV0ZXJt aW5lIGNvbW1hbmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgorK29sZF9h cmNoaXZlX2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJworK29sZF9wb3N0aW5z dGFsbF9jbWRzPSdjaG1vZCA2NDQgJG9sZGxpYicKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQor KworK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICBjYXNlICRob3N0X29zIGluCisrICBv cGVuYnNkKikKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21k c35cJFJBTkxJQiAtdCBcJG9sZGxpYiIKKysgICAgOzsKKysgICopCisrICAgIG9sZF9wb3N0aW5z dGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisrICAg IDs7CisrICBlc2FjCisrICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJB TkxJQiBcJG9sZGxpYiIKKytmaQorK19MVF9ERUNMKFtdLCBbb2xkX3Bvc3RpbnN0YWxsX2NtZHNd LCBbMl0pCisrX0xUX0RFQ0woW10sIFtvbGRfcG9zdHVuaW5zdGFsbF9jbWRzXSwgWzJdKQorK19M VF9UQUdERUNMKFtdLCBbb2xkX2FyY2hpdmVfY21kc10sIFsyXSwKKysgICAgW0NvbW1hbmRzIHVz ZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorK10pIyBfTFRfQ01EX09MRF9BUkNI SVZFCisrCisrCisrIyBfTFRfQ09NUElMRVJfT1BUSU9OKE1FU1NBR0UsIFZBUklBQkxFLU5BTUUs IEZMQUdTLAorKyMJCVtPVVRQVVQtRklMRV0sIFtBQ1RJT04tU1VDQ0VTU10sIFtBQ1RJT04tRkFJ TFVSRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBjb21waWxlciBv cHRpb24gd29ya3MKKytBQ19ERUZVTihbX0xUX0NPTVBJTEVSX09QVElPTl0sCisrW200X3JlcXVp cmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX1NF RF0pZG5sCisrQUNfQ0FDSEVfQ0hFQ0soWyQxXSwgWyQyXSwKKysgIFskMj1ubworKyAgIG00X2lm KFskNF0sICwgW2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dF0sIFthY19vdXRmaWxlPSQ0 XSkKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRh Y19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSIkMyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9u IGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIp IGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQu CisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFj a3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBo ZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9u IGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysg ICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZM QUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFtbXiBd XSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0 X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAk bHRfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQorKyAgIChldmFsICIkbHRfY29tcGls ZSIgMj5jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0LmVy ciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgZWNobyAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0g JGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgIGlmIChleGl0ICRhY19zdGF0dXMp ICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2Fu IG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAg ICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBv dXRwdXQuCisrICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQg LWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29u ZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIg fHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAg ICAgJDI9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIGNvbmZ0ZXN0KgorK10pCisrCisr aWYgdGVzdCB4IlskXSQyIiA9IHh5ZXM7IHRoZW4KKysgICAgbTRfaWYoWyQ1XSwgLCA6LCBbJDVd KQorK2Vsc2UKKysgICAgbTRfaWYoWyQ2XSwgLCA6LCBbJDZdKQorK2ZpCisrXSkjIF9MVF9DT01Q SUxFUl9PUFRJT04KKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtBQ19MSUJUT09MX0NPTVBJ TEVSX09QVElPTl0sIFtfTFRfQ09NUElMRVJfT1BUSU9OXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFj a3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0NPTVBJTEVS X09QVElPTl0sIFtdKQorKworKworKyMgX0xUX0xJTktFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFC TEUtTkFNRSwgRkxBR1MsCisrIyAgICAgICAgICAgICAgICAgIFtBQ1RJT04tU1VDQ0VTU10sIFtB Q1RJT04tRkFJTFVSRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBsaW5rZXIgb3B0aW9u IHdvcmtzCisrQUNfREVGVU4oW19MVF9MSU5LRVJfT1BUSU9OXSwKKytbbTRfcmVxdWlyZShbX0xU X0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwK KytBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAorKyAgWyQyPW5vCisrICAgc2F2ZV9MREZMQUdT PSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFHUyAkMyIKKysgICBlY2hvICIkbHRfc2lt cGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNf bGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4K KysgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBp ZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdz CisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBh bnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+ JkFTX01FU1NBR0VfTE9HX0ZECisrICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxh dGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcvXiQv ZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlmZiBj b25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICAkMj15 ZXMKKysgICAgICAgZmkKKysgICAgIGVsc2UKKysgICAgICAgJDI9eWVzCisrICAgICBmaQorKyAg IGZpCisrICAgJFJNIC1yIGNvbmZ0ZXN0KgorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisr XSkKKysKKytpZiB0ZXN0IHgiWyRdJDIiID0geHllczsgdGhlbgorKyAgICBtNF9pZihbJDRdLCAs IDosIFskNF0pCisrZWxzZQorKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCisrZmkKKytdKSMg X0xUX0xJTktFUl9PUFRJT04KKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtBQ19MSUJUT09M X0xJTktFUl9PUFRJT05dLCBbX0xUX0xJTktFUl9PUFRJT05dKQorK2RubCBhY2xvY2FsLTEuNCBi YWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VS X09QVElPTl0sIFtdKQorKworKworKyMgTFRfQ01EX01BWF9MRU4KKysjLS0tLS0tLS0tLS0tLS0t CisrQUNfREVGVU4oW0xUX0NNRF9NQVhfTEVOXSwKKytbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FM X0hPU1RdKWRubAorKyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFy Z3VtZW50cworK0FDX01TR19DSEVDS0lORyhbdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQg bGluZSBhcmd1bWVudHNdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwg W2RubAorKyAgaT0wCisrICB0ZXN0c3RyaW5nPSJBQkNEIgorKworKyAgY2FzZSAkYnVpbGRfb3Mg aW4KKysgIG1zZG9zZGpncHAqKQorKyAgICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cg dXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJjCisrICAgICMgKGFueSBzaW5n bGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4K KysgICAgIyBkdXJpbmcgZ2xvYiBleHBhbnNpb24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0 aGUgcmVzdWx0IG9mIHRoaXMKKysgICAgIyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBz aG91bGQgYmUuCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMg YWJvdXQgcmlnaHQKKysgICAgOzsKKysKKysgIGdudSopCisrICAgICMgVW5kZXIgR05VIEh1cmQs IHRoaXMgdGVzdCBpcyBub3QgcmVxdWlyZWQgYmVjYXVzZSB0aGVyZSBpcworKyAgICAjIG5vIGxp bWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKysgICAgIyBMaWJ0 b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2ZXIKKysgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPS0xOworKyAgICA7OworKworKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNl Z2NjKikKKysgICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2Nl ZWRzLCBidXQgdGFrZXMKKysgICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcg Z3Jvd3MgZXhwb25lbnRpYWxseS4KKysgICAgIyBXb3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBw cmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywKKysgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJv emVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0aCBwYXRpZW5jZQorKyAgICAjIHRoZSB0ZXN0 IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCisr ICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBwdW50OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0 aCByZXBvcnRlZCBieQorKyAgICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5 MiAob24gTlQvMksvWFApLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysgICAg OzsKKysKKysgIGFtaWdhb3MqKQorKyAgICAjIE9uIEFtaWdhT1Mgd2l0aCBwZGtzaCwgdGhpcyB0 ZXN0IHRha2VzIGhvdXJzLCBsaXRlcmFsbHkuCisrICAgICMgU28gd2UganVzdCBwdW50IGFuZCB1 c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIuCisrICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj04MTkyOworKyAgICA7OworKworKyAgbmV0YnNkKiB8IGZyZWVic2QqIHwgb3BlbmJzZCog fCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikKKysgICAgIyBUaGlzIGhhcyBiZWVuIGFyb3VuZCBzaW5j ZSAzODZCU0QsIGF0IGxlYXN0LiAgTGlrZWx5IGZ1cnRoZXIuCisrICAgIGlmIHRlc3QgLXggL3Ni aW4vc3lzY3RsOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvc2Jpbi9zeXNj dGwgLW4ga2Vybi5hcmdtYXhgCisrICAgIGVsaWYgdGVzdCAteCAvdXNyL3NiaW4vc3lzY3RsOyB0 aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvdXNyL3NiaW4vc3lzY3RsIC1uIGtl cm4uYXJnbWF4YAorKyAgICBlbHNlCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTY1NTM2 CSMgdXNhYmxlIGRlZmF1bHQgZm9yIGFsbCBCU0RzCisrICAgIGZpCisrICAgICMgQW5kIGFkZCBh IHNhZmV0eSB6b25lCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lz X21heF9jbWRfbGVuIFwvIDRgCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRf Y3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCisrICAgIDs7CisrCisrICBpbnRlcml4KikKKysgICAg IyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIxNDQgYW5kIGhhcmRjb2RlIGl0IHdpdGggYSBzYWZldHkg em9uZSAobGlrZSBCU0QpCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xOTY2MDgKKysgICAg OzsKKysKKysgIG9zZiopCisrICAgICMgRHIuIEhhbnMgRWtrZWhhcmQgUGxlc3NlciByZXBvcnRz IHNlZWluZyBhIGtlcm5lbCBwYW5pYyBydW5uaW5nIGNvbmZpZ3VyZQorKyAgICAjIGR1ZSB0byB0 aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2FibGVfYXJnX2xpbWl0IGlzIDEgb24gVHJ1NjQuIEl0IGlz IG5vdAorKyAgICAjIG5pY2UgdG8gY2F1c2Uga2VybmVsIHBhbmljcyBzbyBsZXRzIGF2b2lkIHRo ZSBsb29wIGJlbG93LgorKyAgICAjIEZpcnN0IHNldCBhIHJlYXNvbmFibGUgZGVmYXVsdC4KKysg ICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE2Mzg0CisrICAgICMKKysgICAgaWYgdGVzdCAteCAv c2Jpbi9zeXNjb25maWc7IHRoZW4KKysgICAgICBjYXNlIGAvc2Jpbi9zeXNjb25maWcgLXEgcHJv YyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0YCBpbgorKyAgICAgICAgKjEqKSBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49LTEgOzsKKysgICAgICBlc2FjCisrICAgIGZpCisrICAgIDs7CisrICBzY28zLjJ2 NSopCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMDI0MDAKKysgICAgOzsKKysgIHN5c3Y1 KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcyKikKKysgICAga2FyZ21heD1gZ3JlcCBBUkdfTUFYIC9l dGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIka2FyZ21h eCI7IHRoZW4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGVjaG8gJGthcmdtYXggfCBz ZWQgJ3MvLipbWwkgXV0vLydgCisrICAgIGVsc2UKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49MzI3NjgKKysgICAgZmkKKysgICAgOzsKKysgICopCisrICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIk bHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCisrICAgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKKysgICAgZWxzZQor KyAgICAgICMgTWFrZSB0ZXN0c3RyaW5nIGEgbGl0dGxlIGJpZ2dlciBiZWZvcmUgd2UgZG8gYW55 dGhpbmcgd2l0aCBpdC4KKysgICAgICAjIGEgMUsgc3RyaW5nIHNob3VsZCBiZSBhIHJlYXNvbmFi bGUgc3RhcnQuCisrICAgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDYgNyA4IDsgZG8KKysgICAgICAg IHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZworKyAgICAgIGRvbmUKKysgICAgICBT SEVMTD0ke1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fQorKyAgICAgICMgSWYgdGVzdCBp cyBub3QgYSBzaGVsbCBidWlsdC1pbiwgd2UnbGwgcHJvYmFibHkgZW5kIHVwIGNvbXB1dGluZyBh CisrICAgICAgIyBtYXhpbXVtIGxlbmd0aCB0aGF0IGlzIG9ubHkgaGFsZiBvZiB0aGUgYWN0dWFs IG1heGltdW0gbGVuZ3RoLCBidXQKKysgICAgICAjIHdlIGNhbid0IHRlbGwuCisrICAgICAgd2hp bGUgeyB0ZXN0ICJYImAkU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8gIlgkdGVzdHN0cmluZyR0 ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAorKwkgICAgICAgICA9ICJYWCR0ZXN0c3RyaW5nJHRl c3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAgICB0ZXN0ICRpICE9IDE3ICMg MS8yIE1CIHNob3VsZCBiZSBlbm91Z2gKKysgICAgICBkbworKyAgICAgICAgaT1gZXhwciAkaSAr IDFgCisrICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKKysgICAgICBk b25lCisrICAgICAgIyBPbmx5IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxv b3AuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICJYJHRlc3RzdHJpbmciIDog Ii4qIiAyPiYxYAorKyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2Fu dCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbgorKyAgICAg ICMgbWFzc2l2ZSBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5n IHRoZW0gdG8gdGhlCisrICAgICAgIyBsaW5rZXIuICBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIg aXMgYSB1c2FibGUgdmFsdWUuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRs dF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gMmAKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKytd KQorK2lmIHRlc3QgLW4gJGx0X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KKysgIEFDX01TR19S RVNVTFQoJGx0X2N2X3N5c19tYXhfY21kX2xlbikKKytlbHNlCisrICBBQ19NU0dfUkVTVUxUKG5v bmUpCisrZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCisrX0xUX0RFQ0wo W10sIFttYXhfY21kX2xlbl0sIFswXSwKKysgICAgW1doYXQgaXMgdGhlIG1heGltdW0gbGVuZ3Ro IG9mIGEgY29tbWFuZD9dKQorK10pIyBMVF9DTURfTUFYX0xFTgorKworKyMgT2xkIG5hbWU6Cisr QVVfQUxJQVMoW0FDX0xJQlRPT0xfU1lTX01BWF9DTURfTEVOXSwgW0xUX0NNRF9NQVhfTEVOXSkK KytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVO KFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0sIFtdKQorKworKworKyMgX0xUX0hFQURFUl9E TEZDTgorKyMgLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfSEVBREVSX0RMRkNOXSwK KytbQUNfQ0hFQ0tfSEVBREVSUyhbZGxmY24uaF0sIFtdLCBbXSwgW0FDX0lOQ0xVREVTX0RFRkFV TFRdKWRubAorK10pIyBfTFRfSEVBREVSX0RMRkNOCisrCisrCisrIyBfTFRfVFJZX0RMT1BFTl9T RUxGIChBQ1RJT04tSUYtVFJVRSwgQUNUSU9OLUlGLVRSVUUtVy1VU0NPUkUsCisrIyAgICAgICAg ICAgICAgICAgICAgICBBQ1RJT04tSUYtRkFMU0UsIEFDVElPTi1JRi1DUk9TUy1DT01QSUxJTkcp CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9UUllfRExPUEVOX1NFTEZdLAorK1ttNF9yZXF1 aXJlKFtfTFRfSEVBREVSX0RMRkNOXSlkbmwKKytpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9 IHllczsgdGhlbiA6CisrICBbJDRdCisrZWxzZQorKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9f dXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgorKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24K KysgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrWyNsaW5lIF9fb2xpbmVfXyAi Y29uZmlndXJlIgorKyNpbmNsdWRlICJjb25mZGVmcy5oIgorKworKyNpZiBIQVZFX0RMRkNOX0gK KysjaW5jbHVkZSA8ZGxmY24uaD4KKysjZW5kaWYKKysKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysK KysjaWZkZWYgUlRMRF9HTE9CQUwKKysjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERfR0xPQkFM CisrI2Vsc2UKKysjICBpZmRlZiBETF9HTE9CQUwKKysjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJ RExfR0xPQkFMCisrIyAgZWxzZQorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCisrIyAgZW5k aWYKKysjZW5kaWYKKysKKysvKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZX09SX05P VyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCisrICAgZmluZCBvdXQgaXQgZG9lcyBub3Qgd29y ayBpbiBzb21lIHBsYXRmb3JtLiAqLworKyNpZm5kZWYgTFRfRExMQVpZX09SX05PVworKyMgIGlm ZGVmIFJUTERfTEFaWQorKyMgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERfTEFaWQor KyMgIGVsc2UKKysjICAgIGlmZGVmIERMX0xBWlkKKysjICAgICAgZGVmaW5lIExUX0RMTEFaWV9P Ul9OT1cJCURMX0xBWlkKKysjICAgIGVsc2UKKysjICAgICAgaWZkZWYgUlRMRF9OT1cKKysjICAg ICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlSVExEX05PVworKyMgICAgICBlbHNlCisrIyAg ICAgICAgaWZkZWYgRExfTk9XCisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlE TF9OT1cKKysjICAgICAgICBlbHNlCisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05P VwkwCisrIyAgICAgICAgZW5kaWYKKysjICAgICAgZW5kaWYKKysjICAgIGVuZGlmCisrIyAgZW5k aWYKKysjZW5kaWYKKysKKyt2b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9CisraW50IG1haW4gKCkK Kyt7CisrICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1Jf Tk9XKTsKKysgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtub3duOworKworKyAgaWYgKHNlbGYpCisr ICAgIHsKKysgICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRs dF9kbG5vX3VzY29yZTsKKysgICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpIHN0 YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOworKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLwor KyAgICB9CisrICBlbHNlCisrICAgIHB1dHMgKGRsZXJyb3IgKCkpOworKworKyAgcmV0dXJuIHN0 YXR1czsKKyt9XQorK19MVF9FT0YKKysgIGlmIEFDX1RSWV9FVkFMKGFjX2xpbmspICYmIHRlc3Qg LXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KKysgICAgKC4vY29uZnRl c3Q7IGV4aXQ7ICkgPiZBU19NRVNTQUdFX0xPR19GRCAyPi9kZXYvbnVsbAorKyAgICBsdF9zdGF0 dXM9JD8KKysgICAgY2FzZSB4JGx0X3N0YXR1cyBpbgorKyAgICAgIHgkbHRfZGxub191c2NvcmUp ICQxIDs7CisrICAgICAgeCRsdF9kbG5lZWRfdXNjb3JlKSAkMiA7OworKyAgICAgIHgkbHRfZGx1 bmtub3dufHgqKSAkMyA7OworKyAgICBlc2FjCisrICBlbHNlIDoKKysgICAgIyBjb21waWxhdGlv biBmYWlsZWQKKysgICAgJDMKKysgIGZpCisrZmkKKytybSAtZnIgY29uZnRlc3QqCisrXSkjIF9M VF9UUllfRExPUEVOX1NFTEYKKysKKysKKysjIExUX1NZU19ETE9QRU5fU0VMRgorKyMgLS0tLS0t LS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX1NZU19ETE9QRU5fU0VMRl0sCisrW200X3JlcXVp cmUoW19MVF9IRUFERVJfRExGQ05dKWRubAorK2lmIHRlc3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0g eHllczsgdGhlbgorKyAgZW5hYmxlX2Rsb3Blbj11bmtub3duCisrICBlbmFibGVfZGxvcGVuX3Nl bGY9dW5rbm93bgorKyAgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duCisrZWxzZQor KyAgbHRfY3ZfZGxvcGVuPW5vCisrICBsdF9jdl9kbG9wZW5fbGlicz0KKysKKysgIGNhc2UgJGhv c3Rfb3MgaW4KKysgIGJlb3MqKQorKyAgICBsdF9jdl9kbG9wZW49ImxvYWRfYWRkX29uIgorKyAg ICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIDs7 CisrCisrICBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgbHRfY3ZfZGxvcGVuPSJMb2Fk TGlicmFyeSIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBjeWd3aW4q KQorKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Cisr ICAgIDs7CisrCisrICBkYXJ3aW4qKQorKyAgIyBpZiBsaWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVl ZCB0byBsaW5rIGFnYWluc3QgaXQKKysgICAgQUNfQ0hFQ0tfTElCKFtkbF0sIFtkbG9wZW5dLAor KwkJW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCJdLFsKKysg ICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRf Y3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIF0pCisrICAgIDs7CisrCisrICAqKQorKyAgICBBQ19D SEVDS19GVU5DKFtzaGxfbG9hZF0sCisrCSAgW2x0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiXSwKKysg ICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRdLCBbc2hsX2xvYWRdLAorKwkgICAgW2x0X2N2X2Rsb3Bl bj0ic2hsX2xvYWQiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCJdLAorKwlbQUNfQ0hFQ0tfRlVO QyhbZGxvcGVuXSwKKysJICAgICAgW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIl0sCisrCSAgW0FDX0NI RUNLX0xJQihbZGxdLCBbZGxvcGVuXSwKKysJCVtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3Zf ZGxvcGVuX2xpYnM9Ii1sZGwiXSwKKysJICAgIFtBQ19DSEVDS19MSUIoW3N2bGRdLCBbZGxvcGVu XSwKKysJCSAgW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxzdmxk Il0sCisrCSAgICAgIFtBQ19DSEVDS19MSUIoW2RsZF0sIFtkbGRfbGlua10sCisrCQkgICAgW2x0 X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCJdKQorKwkgICAg ICBdKQorKwkgICAgXSkKKysJICBdKQorKwldKQorKyAgICAgIF0pCisrICAgIDs7CisrICBlc2Fj CisrCisrICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3BlbiIgIT0geG5vOyB0aGVuCisrICAgIGVuYWJs ZV9kbG9wZW49eWVzCisrICBlbHNlCisrICAgIGVuYWJsZV9kbG9wZW49bm8KKysgIGZpCisrCisr ICBjYXNlICRsdF9jdl9kbG9wZW4gaW4KKysgIGRsb3BlbikKKysgICAgc2F2ZV9DUFBGTEFHUz0i JENQUEZMQUdTIgorKyAgICB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA9IHh5ZXMgJiYg Q1BQRkxBR1M9IiRDUFBGTEFHUyAtREhBVkVfRExGQ05fSCIKKysKKysgICAgc2F2ZV9MREZMQUdT PSIkTERGTEFHUyIKKysgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwi XCRMREZMQUdTICRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNcIgorKworKyAgICBzYXZlX0xJQlM9 IiRMSUJTIgorKyAgICBMSUJTPSIkbHRfY3ZfZGxvcGVuX2xpYnMgJExJQlMiCisrCisrICAgIEFD X0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0sCisrCSAg bHRfY3ZfZGxvcGVuX3NlbGYsIFtkbmwKKysJICBfTFRfVFJZX0RMT1BFTl9TRUxGKAorKwkgICAg bHRfY3ZfZGxvcGVuX3NlbGY9eWVzLCBsdF9jdl9kbG9wZW5fc2VsZj15ZXMsCisrCSAgICBsdF9j dl9kbG9wZW5fc2VsZj1ubywgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jvc3MpCisrICAgIF0pCisrCisr ICAgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuX3NlbGYiID0geHllczsgdGhlbgorKyAgICAgIHds PSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkbHRfcHJvZ19j b21waWxlcl9zdGF0aWNcIgorKyAgICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgc3RhdGlj YWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0sCisrCSAgbHRfY3ZfZGxvcGVu X3NlbGZfc3RhdGljLCBbZG5sCisrCSAgX0xUX1RSWV9ETE9QRU5fU0VMRigKKysJICAgIGx0X2N2 X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsCisr CSAgICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8sICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0 aWM9Y3Jvc3MpCisrICAgICAgXSkKKysgICAgZmkKKysKKysgICAgQ1BQRkxBR1M9IiRzYXZlX0NQ UEZMQUdTIgorKyAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKyAgICBMSUJTPSIkc2F2ZV9M SUJTIgorKyAgICA7OworKyAgZXNhYworKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGYgaW4K KysgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmPSRsdF9jdl9kbG9wZW5fc2VsZiA7OworKyAg KikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsKKysgIGVzYWMKKysKKysgIGNhc2UgJGx0 X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgorKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGZf c3RhdGljPSRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgOzsKKysgICopIGVuYWJsZV9kbG9wZW5f c2VsZl9zdGF0aWM9dW5rbm93biA7OworKyAgZXNhYworK2ZpCisrX0xUX0RFQ0woW2Rsb3Blbl9z dXBwb3J0XSwgW2VuYWJsZV9kbG9wZW5dLCBbMF0sCisrCSBbV2hldGhlciBkbG9wZW4gaXMgc3Vw cG9ydGVkXSkKKytfTFRfREVDTChbZGxvcGVuX3NlbGZdLCBbZW5hYmxlX2Rsb3Blbl9zZWxmXSwg WzBdLAorKwkgW1doZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRlZF0pCisrX0xU X0RFQ0woW2Rsb3Blbl9zZWxmX3N0YXRpY10sIFtlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljXSwg WzBdLAorKwkgW1doZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlz IHN1cHBvcnRlZF0pCisrXSkjIExUX1NZU19ETE9QRU5fU0VMRgorKworKyMgT2xkIG5hbWU6Cisr QVVfQUxJQVMoW0FDX0xJQlRPT0xfRExPUEVOX1NFTEZdLCBbTFRfU1lTX0RMT1BFTl9TRUxGXSkK KytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVO KFtBQ19MSUJUT09MX0RMT1BFTl9TRUxGXSwgW10pCisrCisrCisrIyBfTFRfQ09NUElMRVJfQ19P KFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgdG8g c2VlIGlmIG9wdGlvbnMgLWMgYW5kIC1vIGFyZSBzaW11bHRhbmVvdXNseSBzdXBwb3J0ZWQgYnkg Y29tcGlsZXIuCisrIyBUaGlzIG1hY3JvIGRvZXMgbm90IGhhcmQgY29kZSB0aGUgY29tcGlsZXIg bGlrZSBBQ19QUk9HX0NDX0NfTy4KKyttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX0NfT10sCisrW200 X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19E RUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisrQUNfQ0FD SEVfQ0hFQ0soW2lmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHRdLAor KyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKV0sCisrICBbX0xUX1RB R1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPW5vCisrICAgJFJNIC1yIGNvbmZ0ZXN0 IDI+L2Rldi9udWxsCisrICAgbWtkaXIgY29uZnRlc3QKKysgICBjZCBjb25mdGVzdAorKyAgIG1r ZGlyIG91dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRl c3QuJGFjX2V4dAorKworKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFj X29iamV4dCIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxh c3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmlu ZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2Nv bXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAg ICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQg d29yayBjb3JyZWN0bHkuCisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNF RCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcg XAorKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcg XAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJc JGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysg ICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9 JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgZWNo byAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19G RAorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNf b2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQg aWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlm IHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBs YXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcv XiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAg aWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91 dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBfTFRfVEFHVkFSKGx0X2N2 X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgY2htb2Qg dSt3IC4gMj4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAkUk0gY29uZnRlc3QqCisrICAgIyBTR0kg QysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAg ICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRS TSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0LyogJiYg cm1kaXIgb3V0CisrICAgY2QgLi4KKysgICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0gY29uZnRl c3QqCisrXSkKKytfTFRfVEFHREVDTChbY29tcGlsZXJfY19vXSwgW2x0X2N2X3Byb2dfY29tcGls ZXJfY19vXSwgWzFdLAorKwlbRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1j IGFuZCAtbyBvcHRpb25zP10pCisrXSkjIF9MVF9DT01QSUxFUl9DX08KKysKKysKKysjIF9MVF9D T01QSUxFUl9GSUxFX0xPQ0tTKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIENoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gZG8gaGFyZCBsaW5rcyB0byBs b2NrIHNvbWUgZmlsZXMgaWYgbmVlZGVkCisrbTRfZGVmdW4oW19MVF9DT01QSUxFUl9GSUxFX0xP Q0tTXSwKKytbbTRfcmVxdWlyZShbX0xUX0VOQUJMRV9MT0NLXSlkbmwKKyttNF9yZXF1aXJlKFtf TFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKytfTFRfQ09NUElMRVJfQ19PKFskMV0pCisrCisr aGFyZF9saW5rcz0ibm90dGVzdGVkIgorK2lmIHRlc3QgIiRfTFRfVEFHVkFSKGx0X2N2X3Byb2df Y29tcGlsZXJfY19vLCAkMSkiID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVu CisrICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQg YnkgdGhlIHVzZXIKKysgIEFDX01TR19DSEVDS0lORyhbaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJk IGxpbmtzXSkKKysgIGhhcmRfbGlua3M9eWVzCisrICAkUk0gY29uZnRlc3QqCisrICBsbiBjb25m dGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgdG91Y2gg Y29uZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+JjUgfHwgaGFyZF9saW5r cz1ubworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlu a3M9bm8KKysgIEFDX01TR19SRVNVTFQoWyRoYXJkX2xpbmtzXSkKKysgIGlmIHRlc3QgIiRoYXJk X2xpbmtzIiA9IG5vOyB0aGVuCisrICAgIEFDX01TR19XQVJOKFtgJENDJyBkb2VzIG5vdCBzdXBw b3J0IGAtYyAtbycsIHNvIGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlXSkKKysgICAgbmVlZF9sb2Nr cz13YXJuCisrICBmaQorK2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytmaQorK19MVF9ERUNMKFtd LCBbbmVlZF9sb2Nrc10sIFsxXSwgW011c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBp bGF0aW9uP10pCisrXSkjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTCisrCisrCisrIyBfTFRfQ0hF Q0tfT0JKRElSCisrIyAtLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DSEVDS19PQkpE SVJdLAorK1tBQ19DQUNIRV9DSEVDSyhbZm9yIG9iamRpcl0sIFtsdF9jdl9vYmpkaXJdLAorK1ty bSAtZiAubGlicyAyPi9kZXYvbnVsbAorK21rZGlyIC5saWJzIDI+L2Rldi9udWxsCisraWYgdGVz dCAtZCAubGliczsgdGhlbgorKyAgbHRfY3Zfb2JqZGlyPS5saWJzCisrZWxzZQorKyAgIyBNUy1E T1MgZG9lcyBub3QgYWxsb3cgZmlsZW5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIGRvdC4KKysgIGx0 X2N2X29iamRpcj1fbGlicworK2ZpCisrcm1kaXIgLmxpYnMgMj4vZGV2L251bGxdKQorK29iamRp cj0kbHRfY3Zfb2JqZGlyCisrX0xUX0RFQ0woW10sIFtvYmpkaXJdLCBbMF0sCisrICAgICAgICAg W1RoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9v bCBmaWxlc10pZG5sCisrbTRfcGF0dGVybl9hbGxvdyhbTFRfT0JKRElSXSlkbmwKKytBQ19ERUZJ TkVfVU5RVU9URUQoTFRfT0JKRElSLCAiJGx0X2N2X29iamRpci8iLAorKyAgW0RlZmluZSB0byB0 aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJy YXJpZXMuXSkKKytdKSMgX0xUX0NIRUNLX09CSkRJUgorKworKworKyMgX0xUX0xJTktFUl9IQVJE Q09ERV9MSUJQQVRIKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBDaGVjayBoYXJkY29kaW5nIGF0dHJpYnV0ZXMuCisrbTRfZGVmdW4oW19M VF9MSU5LRVJfSEFSRENPREVfTElCUEFUSF0sCisrW0FDX01TR19DSEVDS0lORyhbaG93IHRvIGhh cmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtc10pCisrX0xUX1RBR1ZBUihoYXJkY29k ZV9hY3Rpb24sICQxKT0KKytpZiB0ZXN0IC1uICIkX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSkiIHx8CisrICAgdGVzdCAtbiAiJF9MVF9UQUdWQVIocnVucGF0aF92YXIs ICQxKSIgfHwKKysgICB0ZXN0ICJYJF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSki ID0gIlh5ZXMiIDsgdGhlbgorKworKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50IGRp cmVjdG9yaWVzLgorKyAgaWYgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSki ICE9IG5vICYmCisrICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29k aW5nIGlzIHNobGlicGF0aF92YXIsIHdlCisrICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndp c2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5CisrICAgICAjIHdoZW4g d2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCisrICAg ICAjIyB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSkiICE9IG5v ICYmCisrICAgICB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSkiICE9IG5v OyB0aGVuCisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGli cmFyeSBkaXJlY3RvcnkuCisrICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9cmVs aW5rCisrICBlbHNlCisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQg d2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfYWN0aW9uLCAkMSk9aW1tZWRpYXRlCisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhh cmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisr ICAjIGRpcmVjdG9yaWVzLgorKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT11bnN1 cHBvcnRlZAorK2ZpCisrQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9u LCAkMSldKQorKworK2lmIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpIiA9 IHJlbGluayB8fAorKyAgIHRlc3QgIiRfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKSIgPSB5 ZXM7IHRoZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAgZW5h YmxlX2Zhc3RfaW5zdGFsbD1ubworK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aCIgPSB5ZXMgfHwKKysgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisr ICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0X2lu c3RhbGw9bmVlZGxlc3MKKytmaQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfYWN0aW9uXSwg WzBdLAorKyAgICBbSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFu IGV4ZWN1dGFibGVdKQorK10pIyBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgKKysKKysKKysj IF9MVF9DTURfU1RSSVBMSUIKKysjIC0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX0NN RF9TVFJJUExJQl0sCisrW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKKytzdHJpcGxpYj0K KytvbGRfc3RyaXBsaWI9CisrQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHN0cmlwcGluZyBsaWJy YXJpZXMgaXMgcG9zc2libGVdKQorK2lmIHRlc3QgLW4gIiRTVFJJUCIgJiYgJFNUUklQIC1WIDI+ JjEgfCAkR1JFUCAiR05VIHN0cmlwIiA+L2Rldi9udWxsOyB0aGVuCisrICB0ZXN0IC16ICIkb2xk X3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgorKyAgdGVz dCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCisr ICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorK2Vsc2UKKysjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVh bCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91Z2gKKysgIGNhc2UgJGhvc3Rf b3MgaW4KKysgIGRhcndpbiopCisrICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCisrICAg ICAgc3RyaXBsaWI9IiRTVFJJUCAteCIKKysgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIK KysgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorKyAgICBlbHNlCisrICAgICAgQUNfTVNHX1JF U1VMVChbbm9dKQorKyAgICBmaQorKyAgICA7OworKyAgKikKKysgICAgQUNfTVNHX1JFU1VMVChb bm9dKQorKyAgICA7OworKyAgZXNhYworK2ZpCisrX0xUX0RFQ0woW10sIFtvbGRfc3RyaXBsaWJd LCBbMV0sIFtDb21tYW5kcyB0byBzdHJpcCBsaWJyYXJpZXNdKQorK19MVF9ERUNMKFtdLCBbc3Ry aXBsaWJdLCBbMV0pCisrXSkjIF9MVF9DTURfU1RSSVBMSUIKKysKKysKKysjIF9MVF9TWVNfRFlO QU1JQ19MSU5LRVIoW1RBR10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg UE9SVE1FIEZpbGwgaW4geW91ciBsZC5zbyBjaGFyYWN0ZXJpc3RpY3MKKyttNF9kZWZ1bihbX0xU X1NZU19EWU5BTUlDX0xJTktFUl0sCisrW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlk bmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJ TEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfT0JKRFVNUF0pZG5s CisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKytBQ19NU0dfQ0hFQ0tJTkcoW2R5bmFt aWMgbGlua2VyIGNoYXJhY3RlcmlzdGljc10pCisrbTRfaWYoWyQxXSwKKysJW10sIFsKKytpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBkYXJ3aW4q KSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7CisrICAgICopIGx0X2F3a19hcmc9 Ii9ebGlicmFyaWVzOi8iIDs7CisrICBlc2FjCisrICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0Mg LXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFy aWVzOi8vIiAtZSAicyw9LywvLGciYAorKyAgaWYgJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVj IiB8ICRHUkVQICc7JyA+L2Rldi9udWxsIDsgdGhlbgorKyAgICAjIGlmIHRoZSBwYXRoIGNvbnRh aW5zICI7IiB0aGVuIHdlIGFzc3VtZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCisrICAgICMgb3Ro ZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUuICI6Iikg LSBpdCBpcworKyAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1l IGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKKysgICAgIyBva2F5IGluIHRoZSByZWFsIHdv cmxkIHdoZXJlICI7IiBpbiBkaXJwYXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCisrICAgIGx0 X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1l ICdzLzsvIC9nJ2AKKysgIGVsc2UKKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRs dF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAor KyAgZmkKKysgICMgT2ssIG5vdyB3ZSBoYXZlIHRoZSBwYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2Vz LCB3ZSBjYW4gc3RlcCB0aHJvdWdoIGl0CisrICAjIGFuZCBhZGQgbXVsdGlsaWIgZGlyIGlmIG5l Y2Vzc2FyeS4KKysgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPQorKyAgbHRfbXVsdGlfb3Nf ZGlyPWAkQ0MgJENQUEZMQUdTICRDRkxBR1MgJExERkxBR1MgLXByaW50LW11bHRpLW9zLWRpcmVj dG9yeSAyPi9kZXYvbnVsbGAKKysgIGZvciBsdF9zeXNfcGF0aCBpbiAkbHRfc2VhcmNoX3BhdGhf c3BlYzsgZG8KKysgICAgaWYgdGVzdCAtZCAiJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIi OyB0aGVuCisrICAgICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2Vh cmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciIKKysgICAgZWxzZQor KyAgICAgIHRlc3QgLWQgIiRsdF9zeXNfcGF0aCIgJiYgXAorKwlsdF90bXBfbHRfc2VhcmNoX3Bh dGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKKysgICAg ZmkKKysgIGRvbmUKKysgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF90bXBfbHRfc2Vh cmNoX3BhdGhfc3BlYyB8IGF3ayAnCisrQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30geworKyAg bHRfZm9vPSIiOworKyAgbHRfY291bnQ9MDsKKysgIGZvciAobHRfaSA9IE5GOyBsdF9pID4gMDsg bHRfaS0tKSB7CisrICAgIGlmICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKKysgICAg ICBpZiAoJGx0X2kgPT0gIi4uIikgeworKyAgICAgICAgbHRfY291bnQrKzsKKysgICAgICB9IGVs c2UgeworKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsKKysgICAgICAgICAgbHRfZm9vPSIv IiAkbHRfaSBsdF9mb287CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBsdF9jb3VudC0t OworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgfQorKyAgfQorKyAgaWYgKGx0X2ZvbyAhPSAi IikgeyBsdF9mcmVxW1tsdF9mb29dXSsrOyB9CisrICBpZiAobHRfZnJlcVtbbHRfZm9vXV0gPT0g MSkgeyBwcmludCBsdF9mb287IH0KKyt9J2AKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1g JEVDSE8gJGx0X3NlYXJjaF9wYXRoX3NwZWNgCisrZWxzZQorKyAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSIvbGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorK2ZpXSkKKytsaWJyYXJ5X25h bWVzX3NwZWM9CisrbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKKytzb25hbWVfc3BlYz0KKytzaHJl eHRfY21kcz0iLnNvIgorK3Bvc3RpbnN0YWxsX2NtZHM9CisrcG9zdHVuaW5zdGFsbF9jbWRzPQor K2ZpbmlzaF9jbWRzPQorK2ZpbmlzaF9ldmFsPQorK3NobGlicGF0aF92YXI9Cisrc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KKyt2ZXJzaW9uX3R5cGU9bm9uZQorK2R5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xp YiAvdXNyL2xpYiIKKytuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgorK2hhcmRjb2RlX2ludG9fbGli cz1ubworKworKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0 IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgorKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0 IGFyZ3VtZW50cworK25lZWRfdmVyc2lvbj11bmtub3duCisrCisrY2FzZSAkaG9zdF9vcyBpbgor K2FpeDMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKKysg IHNobGlicGF0aF92YXI9TElCUEFUSAorKworKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBz dXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgorKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIDs7 CisrCisrYWl4W1s0LTldXSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisr ICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICAjIEFJWCA1IHN1cHBvcnRz IElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3Vs ZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMu ICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAorKyAgICAjIHRoZSBsaW5lIGAjISAu Jy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCisrICAgICMgZGVw ZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGlu CisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCisrICAg IGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0IHwgYWl4NC5bWzAxXV0gfCBhaXg0LltbMDFd XS4qKQorKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0g MiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCisrCSAgIGVjaG8gJyB5ZXMgJworKwkgICBlY2hv ICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYvbnVsbDsgdGhlbgor Kwk6CisrICAgICAgZWxzZQorKwljYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZmkKKysgICAg ICA7OworKyAgICBlc2FjCisrICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5n IHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKKysgICAg IyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcg c3VwcG9ydCB0bworKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1 c2VmdWwgaW4gZnV0dXJlLgorKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIg PSB5ZXM7IHRoZW4KKysgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0 LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KKysgICAgICAjIGluc3RlYWQgb2YgbGliPG5h bWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAorKyAgICAgICMgdHlw aWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgZWxz ZQorKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFy aWVzIHRocm91Z2ggQUlYNC4yCisrICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRv aW5nIHJ1biB0aW1lIGxpbmtpbmcuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCisrICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZmkKKysgICAgc2hsaWJwYXRo X3Zhcj1MSUJQQVRICisrICBmaQorKyAgOzsKKysKKythbWlnYW9zKikKKysgIGNhc2UgJGhvc3Rf Y3B1IGluCisrICBwb3dlcnBjKQorKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZp Y2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCisrICAgICMgV2hlbiBjb21waWxpbmcgdGhl IGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21waWxlbGluZS4K KysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIDs7CisrICBtNjhrKQorKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJworKyAgICAjIENyZWF0ZSAke2xp Ym5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgorKyAgICBmaW5pc2hfZXZh bD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxp Ym5hbWU9YCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbW14vXV0qXClcLml4 bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFy eS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJh cnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEg fHwgZXhpdCAxOyBkb25lJworKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytiZW9zKikKKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAor KyAgOzsKKysKKytic2RpW1s0NV1dKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRI Oi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDEx L2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0 aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQK KysgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwg YnV0IGxldCB1cyBhbGxvdworKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHBy b2dyYW1zCisrICA7OworKworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysg IHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVy c2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3Mg aW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKiB8IHllcyxjZWdjYyop CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCisrICAgICMgRExMIGlz IGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAg cG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAg ZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7 IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRs cGF0aGB+CisrICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+CisrICAg ICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGNo bW9kIGEreCBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAgaWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUn XCcnICYmIHRlc3QgLW4gJ1wnJyRzdHJpcGxpYidcJyc7IHRoZW4KKysgICAgICAgIGV2YWwgJ1wn JyRzdHJpcGxpYiBcJGRsZGlyLyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/OworKyAgICAgIGZpJwor KyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmls ZTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAg ICAgICRSTSBcJGRscGF0aCcKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwor KworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4g RExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgc29uYW1lX3Nw ZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVh c2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisr ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGli IC91c3IvbG9jYWwvbGliIgorKyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGNlZ2NjKikKKysgICAg ICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAorKyAgICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9n J2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8ICRHUkVQICJebGlicmFyaWVzOiIgfCAkU0VE IC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCisrICAgICAgaWYgJEVDSE8gIiRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgWyRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVs bF07IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0 IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmlu ZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRoIHdpdGgg OyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQor KyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRo ZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBh c3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAgIyB3aGlj aCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAgICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl YyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysgICAgICBlbHNlCisrICAgICAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQg IC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorKyAgICAgIGZpCisrICAgICAgOzsKKysgICAg cHczMiopCisrICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICds aWInCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1l ICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7 dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7Owor KworKyAgKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxl YXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9ICRs aWJuYW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBs ZC5leGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJl Y3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNobGlicGF0aF92YXI9UEFUSAorKyAgOzsK KysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGR5 bGQiCisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5l ZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKysgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BB VEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwg ZWNobyAuZHlsaWJgJworK200X2lmKFskMV0sIFtdLFsKKysgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xvY2FsL2xpYiJdKQorKyAgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisr ICA7OworKworK2RndXgqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlu a2VyPW5vCisrICA7OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5 IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMg dmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jp bi9vYmpmb3JtYXQ7IHRoZW4KKysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisr ICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFtbMTIzXV0qKSBvYmpm b3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CisrICAgIGVzYWMKKysgIGZp CisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBjYXNlICR2ZXJzaW9uX3R5 cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgIG5lZWRfdmVy c2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIGZyZWVi c2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysg ICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGluCisrICBmcmVlYnNkMiopCisr ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgOzsKKysgIGZyZWVic2Qz LltbMDFdXSogfCBmcmVlYnNkZWxmMy5bWzAxXV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZy ZWVic2QzLltbMi05XV0qIHwgZnJlZWJzZGVsZjMuW1syLTldXSogfCBcCisrICBmcmVlYnNkNC5b WzAtNV1dIHwgZnJlZWJzZGVsZjQuW1swLTVdXSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0 LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25G bHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2ZXJz aW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHts aWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8 IGhwdXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3Ig dmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhl ciB2ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5v CisrICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysg ICAgc2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBk eW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNz ICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0 ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xv Y2FsL2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7Owor KyAgaHBwYSo2NCopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9Q QVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52 dmFyIGlzIHNwZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKKysg ICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYwor KyAgICA7OworKyAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1pY19saW5r ZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICisrICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJs ZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNhYworKyAg IyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUg bW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysgIDs7Cisr CisraW50ZXJpeFtbMy05XV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9w cmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBkeW5h bWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKKysgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraXJpeDUqIHwgaXJpeDYq IHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgbm9uc3RvcHV4KikgdmVy c2lvbl90eXBlPW5vbnN0b3B1eCA7OworKyAgICAqKQorKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19n bnVfbGQiID0geWVzOyB0aGVuCisrCQl2ZXJzaW9uX3R5cGU9bGludXgKKysJZWxzZQorKwkJdmVy c2lvbl90eXBlPWlyaXgKKysJZmkgOzsKKysgIGVzYWMKKysgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgaXJpeDUqIHwgbm9uc3RvcHV4 KikKKysgICAgbGlic3VmZj0gc2hsaWJzdWZmPQorKyAgICA7OworKyAgKikKKysgICAgY2FzZSAk TEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAor KyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQorKyAgICAg IGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKKysgICAgKi1uMzJ8KiItbjMy ICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKKysgICAgICBsaWJzdWZmPTMy IHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKKysgICAgKi02NHwqIi02NCAifCotbWVsZjY0 Ym1pcHwqIi1tZWxmNjRibWlwICIpCisrICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGli bWFnaWM9NjQtYml0OzsKKysgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZl ci1tYXRjaDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9s aWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKKysgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZv ciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KKytsaW51eCpvbGRsZCogfCBsaW51eCphb3V0 KiB8IGxpbnV4KmNvZmYqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrIyBUaGlz IG11c3QgYmUgTGludXggRUxGLgorK2xpbnV4KiB8IGsqYnNkKi1nbnUpCisrICB2ZXJzaW9uX3R5 cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZp ZyAtbiAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRj aGVkIHRvIHNldCBEVF9SVU5QQVRICisrICBzYXZlX0xERkxBR1M9JExERkxBR1MKKysgIHNhdmVf bGliZGlyPSRsaWJkaXIKKysgIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKVwiOyBcCisrICAgICAgIExERkxBR1M9XCJcJExERkxBR1Mg JF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpXCIiCisrICBBQ19MSU5L X0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCisrICAgIFtBU19JRihbICgkT0JKRFVN UCAtcCBjb25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxp YmRpciIgPi9kZXYvbnVsbF0sCisrICAgICAgIFtzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzXSldKQorKyAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCisrICBsaWJkaXI9JHNhdmVfbGliZGly CisrCisrICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0 YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3Rf aW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysKKysgICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUg c3lzdGVtIGxpYnJhcnkgcGF0aC4KKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGli NjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgorKworKyAgIyBBcHBlbmQgbGQuc28uY29uZiBj b250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKKysgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25m OyB0aGVuCisrICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmlu dGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFxbJF0yKSk7IHNraXAgPSAxOyB9IHsg aWYgKCFza2lwKSBwcmludCBcWyRdMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwg JFNFRCAtZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8gL2c7cy89W149XSok Ly87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJh IgorKyAgZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRp c2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXgg b25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHluYW1p YyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisr ICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVz ZSBkYXlzIGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUg dGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFt aWMgbGlua2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28n CisrICA7OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0Mg LUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQ QVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0 QlNEIChhLm91dCkgbGQuc28nCisrICBlbHNlCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICAgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAg IGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJworKyAgZmkKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisr ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK25ld3NvczYpCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIDs7CisrCisrKm50 byogfCAqcW54KikKKysgIHZlcnNpb25fdHlwZT1xbngKKysgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICBkeW5hbWljX2xpbmtlcj0nbGRxbnguc28nCisrICA7Owor KworK29wZW5ic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29tZSBv bGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9u ZWQgbGlicy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2Qz LjMuKikJbmVlZF92ZXJzaW9uPXllcyA7OworKyAgICAqKQkJCQluZWVkX3ZlcnNpb249bm8gIDs7 CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4Jwor KyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicK KysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0IC16ICJgZWNobyBf X0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhv c3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgICBvcGVuYnNkMi5bWzg5XV0gfCBvcGVuYnNkMi5bWzg5XV0uKikKKysJc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrCTs7CisrICAgICAgKikKKysJc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcworKwk7OworKyAgICAgIGVzYWMKKysgIGVsc2UKKysgICAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgZmkKKysgIDs7CisrCisrb3MyKikKKysg IGxpYm5hbWVfc3BlYz0nJG5hbWUnCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0g JGxpYm5hbWUuYScKKysgIGR5bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKKysgIHNobGlicGF0 aF92YXI9TElCUEFUSAorKyAgOzsKKysKKytvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICB2ZXJz aW9uX3R5cGU9b3NmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIv Y21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCisrICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKysgIDs7Cisr CisrcmRvcyopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKytzb2xhcmlzKikKKysg IHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNp b249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCisrICAjIGxkZCBjb21wbGFpbnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhlY3V0YWJs ZQorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3ggJGxpYicKKysgIDs7CisrCisrc3Vub3M0 KikKKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCcKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxk Y29uZmlnICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IHllczsgdGhlbgorKyAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGZpCisrICBuZWVkX3ZlcnNp b249eWVzCisrICA7OworKworK3N5c3Y0IHwgc3lzdjQuMyopCisrICB2ZXJzaW9uX3R5cGU9bGlu dXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisr ICBjYXNlICRob3N0X3ZlbmRvciBpbgorKyAgICBzbmkpCisrICAgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAgcnVucGF0 aF92YXI9TERfUlVOX1BBVEgKKysgICAgICA7OworKyAgICBzaWVtZW5zKQorKyAgICAgIG5lZWRf bGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIG1vdG9yb2xhKQorKyAgICAgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAv dXNyL2xpYiAvdXNyL2Njcy9saWInCisrICAgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrc3lz djQqTVAqKQorKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgorKyAgICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJHZl cnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCisrICAg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBmaQorKyAgOzsKKysKKytzeXN2NSog fCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcy KikKKysgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGliIC91 c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJworKyAgZWxzZQorKyAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKKysgICAgY2FzZSAkaG9zdF9vcyBpbgor KyAgICAgIHNjbzMuMnY1KikKKysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgorKwk7OworKyAgICBlc2FjCisrICBmaQorKyAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJworKyAgOzsKKysKKyt0cGYqKQor KyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1ob3N0ID0g R05VL0xpbnV4LgorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK3V0czQqKQorKyAgdmVyc2lvbl90eXBlPWxp bnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgOzsKKysKKysqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNhYworK0FDX01T R19SRVNVTFQoWyRkeW5hbWljX2xpbmtlcl0pCisrdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5v ICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0i UEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KKysgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgorK2Zp CisrCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2Vh cmNoX3BhdGhfc3BlYyIKKytmaQorK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisrZmkKKysKKytfTFRfREVDTChb XSwgW3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rXSwgWzFdLAorKyAgICBbVmFyaWFibGVzIHdo b3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5k CisrICAgIHJlc3RvcmVkIGF0IGxpbmsgdGltZV0pCisrX0xUX0RFQ0woW10sIFtuZWVkX2xpYl9w cmVmaXhdLCBbMF0sCisrICAgIFtEbyB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVs ZXM/XSkKKytfTFRfREVDTChbXSwgW25lZWRfdmVyc2lvbl0sIFswXSwgW0RvIHdlIG5lZWQgYSB2 ZXJzaW9uIGZvciBsaWJyYXJpZXM/XSkKKytfTFRfREVDTChbXSwgW3ZlcnNpb25fdHlwZV0sIFsw XSwgW0xpYnJhcnkgdmVyc2lvbmluZyB0eXBlXSkKKytfTFRfREVDTChbXSwgW3J1bnBhdGhfdmFy XSwgWzBdLCAgW1NoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZV0pCisrX0xUX0RF Q0woW10sIFtzaGxpYnBhdGhfdmFyXSwgWzBdLFtTaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxl XSkKKytfTFRfREVDTChbXSwgW3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aF0sIFswXSwKKysg ICAgW0lzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBz ZWFyY2ggcGF0aD9dKQorK19MVF9ERUNMKFtdLCBbbGlibmFtZV9zcGVjXSwgWzFdLCBbRm9ybWF0 IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXhdKQorK19MVF9ERUNMKFtdLCBbbGlicmFyeV9uYW1lc19z cGVjXSwgWzFdLAorKyAgICBbW0xpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMg dGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCisrICAgIFRoZSBsYXN0IG5hbWUgaXMg dGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUVdXSkKKytfTFRfREVDTChb XSwgW3NvbmFtZV9zcGVjXSwgWzFdLAorKyAgICBbW1RoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJy YXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lXV0pCisrX0xUX0RFQ0woW10sIFtw b3N0aW5zdGFsbF9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFs bGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQorK19MVF9ERUNMKFtdLCBbcG9zdHVuaW5zdGFs bF9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgdW5pbnN0YWxsYXRpb24g b2YgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX0RFQ0woW10sIFtmaW5pc2hfY21kc10sIFsyXSwK KysgICAgW0NvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxh dGlvbiBpbiBhIGRpcmVjdG9yeV0pCisrX0xUX0RFQ0woW10sIFtmaW5pc2hfZXZhbF0sIFsxXSwK KysgICAgW1tBcyAiZmluaXNoX2NtZHMiLCBleGNlcHQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50 IHRvIGJlIGV2YWxlZCBidXQKKysgICAgbm90IHNob3duXV0pCisrX0xUX0RFQ0woW10sIFtoYXJk Y29kZV9pbnRvX2xpYnNdLCBbMF0sCisrICAgIFtXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBs aWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzXSkKKytfTFRfREVDTChbXSwgW3N5c19saWJfc2Vh cmNoX3BhdGhfc3BlY10sIFsyXSwKKysgICAgW0NvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBh dGggZm9yIGxpYnJhcmllc10pCisrX0xUX0RFQ0woW10sIFtzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlY10sIFsyXSwKKysgICAgW1J1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFy aWVzXSkKKytdKSMgX0xUX1NZU19EWU5BTUlDX0xJTktFUgorKworKworKyMgX0xUX1BBVEhfVE9P TF9QUkVGSVgoVE9PTCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBmaW5kIGEg ZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgc2hhcmVkIGxpYnJhcnkKKytBQ19ERUZV TihbX0xUX1BBVEhfVE9PTF9QUkVGSVhdLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0p ZG5sCisrQUNfTVNHX0NIRUNLSU5HKFtmb3IgJDFdKQorK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRo X01BR0lDX0NNRCwKKytbY2FzZSAkTUFHSUNfQ01EIGluCisrW1tcXC8qXSB8ICA/OltcXC9dKl0p CisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyopCisrICBsdF9zYXZlX01BR0lD X0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFS QVRPUgorK2RubCAkYWNfZHVtbXkgZm9yY2VzIHNwbGl0dGluZyBvbiBjb25zdGFudCB1c2VyLXN1 cHBsaWVkIHBhdGhzLgorK2RubCBQT1NJWC4yIHdvcmQgc3BsaXR0aW5nIGlzIGRvbmUgb25seSBv biB0aGUgb3V0cHV0IG9mIHdvcmQgZXhwYW5zaW9ucywKKytkbmwgbm90IGV2ZXJ5IHdvcmQuICBU aGlzIGNsb3NlcyBhIGxvbmdzdGFuZGluZyBzaCBzZWN1cml0eSBob2xlLgorKyAgYWNfZHVtbXk9 Im00X2lmKFskMl0sICwgJFBBVEgsIFskMl0pIgorKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7 IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBh Y19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJDE7IHRoZW4KKysgICAgICBsdF9jdl9w YXRoX01BR0lDX0NNRD0iJGFjX2Rpci8kMSIKKysgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdp Y190ZXN0X2ZpbGUiOyB0aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCSJm aWxlX21hZ2ljICIqKQorKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNr X21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3Bh dGhfTUFHSUNfQ01EIgorKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190 ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgi ID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0IDw8X0xUX0VP RiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRl Y3Qgc2hhcmVkIGxpYnJhcmllcywKKysqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRw dXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCisrKioqIFRoZSByZXN1bHQgaXMgdGhh dCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCisrKioqIGFz IHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmll cyB0aGF0CisrKioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlu a2VkIHdpdGggc3VjaCBsaWJ0b29sCisrKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVz cyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQorKyoqKiBtYXkgd2FudCB0byBy ZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KKysqKiog YnVnLWxpYnRvb2xAZ251Lm9yZworKworK19MVF9FT0YKKysJICBmaSA7OworKwllc2FjCisrICAg ICAgZmkKKysgICAgICBicmVhaworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9p ZnMiCisrICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKKysgIDs7CisrZXNhY10pCisr TUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisraWYgdGVzdCAtbiAiJE1BR0lDX0NN RCI7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJE1BR0lDX0NNRCkKKytlbHNlCisrICBBQ19NU0df UkVTVUxUKG5vKQorK2ZpCisrX0xUX0RFQ0woW10sIFtNQUdJQ19DTURdLCBbMF0sCisrCSBbVXNl ZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyB3aXRoICJm aWxlIl0pZG5sCisrXSkjIF9MVF9QQVRIX1RPT0xfUFJFRklYCisrCisrIyBPbGQgbmFtZToKKytB VV9BTElBUyhbQUNfUEFUSF9UT09MX1BSRUZJWF0sIFtfTFRfUEFUSF9UT09MX1BSRUZJWF0pCisr ZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihb QUNfUEFUSF9UT09MX1BSRUZJWF0sIFtdKQorKworKworKyMgX0xUX1BBVEhfTUFHSUMKKysjIC0t LS0tLS0tLS0tLS0tCisrIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUg YSBzaGFyZWQgbGlicmFyeQorK200X2RlZnVuKFtfTFRfUEFUSF9NQUdJQ10sCisrW19MVF9QQVRI X1RPT0xfUFJFRklYKCR7YWNfdG9vbF9wcmVmaXh9ZmlsZSwgL3Vzci9iaW4kUEFUSF9TRVBBUkFU T1IkUEFUSCkKKytpZiB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiOyB0aGVuCisrICBp ZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAgIF9MVF9QQVRIX1RPT0xfUFJF RklYKGZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCisrICBlbHNlCisrICAgIE1B R0lDX0NNRD06CisrICBmaQorK2ZpCisrXSkjIF9MVF9QQVRIX01BR0lDCisrCisrCisrIyBMVF9Q QVRIX0xECisrIyAtLS0tLS0tLS0tCisrIyBmaW5kIHRoZSBwYXRobmFtZSB0byB0aGUgR05VIG9y IG5vbi1HTlUgbGlua2VyCisrQUNfREVGVU4oW0xUX1BBVEhfTERdLAorK1tBQ19SRVFVSVJFKFtB Q19QUk9HX0NDXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisrQUNf UkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9T RURdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKysKKytBQ19BUkdfV0lU SChbZ251LWxkXSwKKysgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZ251LWxkXSwKKysJW2Fz c3VtZSB0aGUgQyBjb21waWxlciB1c2VzIEdOVSBsZCBAPDpAZGVmYXVsdD1ub0A6PkBdKV0sCisr ICAgIFt0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXNdLAorKyAgICBbd2l0 aF9nbnVfbGQ9bm9dKWRubAorKworK2FjX3Byb2c9bGQKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgorKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGgu CisrICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBsZCB1c2VkIGJ5ICRDQ10pCisrICBjYXNlICRob3N0 IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFn ZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXBy b2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAgIGFjX3Byb2c9 YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysgIGNhc2UgJGFj X3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtbXFwvXV0qIHwg PzpbW1xcL11dKikKKysgICAgICByZV9kaXJlbHQ9Jy9bW14vXV1bW14vXV0qL1wuXC4vJworKyAg ICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAorKyAgICAgIGFjX3Byb2c9YCRF Q0hPICIkYWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcnYAorKyAgICAgIHdoaWxlICRFQ0hPICIk YWNfcHJvZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KKysJYWNf cHJvZz1gJEVDSE8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCisrICAgICAgZG9u ZQorKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgorKyAgICAgIDs7CisrICAi IikKKysgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0Mu CisrICAgIGFjX3Byb2c9bGQKKysgICAgOzsKKysgICopCisrICAgICMgSWYgaXQgaXMgcmVsYXRp dmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KKysgICAgd2l0aF9nbnVf bGQ9dW5rbm93bgorKyAgICA7OworKyAgZXNhYworK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IHllczsgdGhlbgorKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgR05VIGxkXSkKKytlbHNlCisrICBB Q19NU0dfQ0hFQ0tJTkcoW2ZvciBub24tR05VIGxkXSkKKytmaQorK0FDX0NBQ0hFX1ZBTChsdF9j dl9wYXRoX0xELAorK1tpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisrICBsdF9zYXZlX2lmcz0iJElG UyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCisrICAg IElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9Lgor KyAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRh Y19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRh Y19wcm9nIgorKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4g IEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKKysgICAgICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUg dmFyaWFudHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgorKyAgICAgICMgQnJlYWsgb25seSBp ZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgorKyAgICAgIGNhc2Ug YCIkbHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKyAgICAgICpHTlUqIHwg Kid3aXRoIEJGRCcqKQorKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCisrCTs7 CisrICAgICAgKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKKysJOzsK KysgICAgICBlc2FjCisrICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKytl bHNlCisrICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0IHdpdGggYSBwYXRoLgorK2ZpXSkKKytMRD0iJGx0X2N2X3BhdGhfTEQiCisraWYgdGVzdCAt biAiJExEIjsgdGhlbgorKyAgQUNfTVNHX1JFU1VMVCgkTEQpCisrZWxzZQorKyAgQUNfTVNHX1JF U1VMVChubykKKytmaQorK3Rlc3QgLXogIiRMRCIgJiYgQUNfTVNHX0VSUk9SKFtubyBhY2NlcHRh YmxlIGxkIGZvdW5kIGluIFwkUEFUSF0pCisrX0xUX1BBVEhfTERfR05VCisrQUNfU1VCU1QoW0xE XSkKKysKKytfTFRfVEFHREVDTChbXSwgW0xEXSwgWzFdLCBbVGhlIGxpbmtlciB1c2VkIHRvIGJ1 aWxkIGxpYnJhcmllc10pCisrXSkjIExUX1BBVEhfTEQKKysKKysjIE9sZCBuYW1lczoKKytBVV9B TElBUyhbQU1fUFJPR19MRF0sIFtMVF9QQVRIX0xEXSkKKytBVV9BTElBUyhbQUNfUFJPR19MRF0s IFtMVF9QQVRIX0xEXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6 CisrZG5sIEFDX0RFRlVOKFtBTV9QUk9HX0xEXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19QUk9H X0xEXSwgW10pCisrCisrCisrIyBfTFRfUEFUSF9MRF9HTlUKKysjLSAtLS0tLS0tLS0tLS0tLQor K200X2RlZnVuKFtfTFRfUEFUSF9MRF9HTlVdLAorK1tBQ19DQUNIRV9DSEVDSyhbaWYgdGhlIGxp bmtlciAoJExEKSBpcyBHTlUgbGRdLCBsdF9jdl9wcm9nX2dudV9sZCwKKytbIyBJJ2QgcmF0aGVy IHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNj ZXB0IC12LgorK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2L251bGxgIGluCisrKkdOVSogfCAqJ3dp dGggQkZEJyopCisrICBsdF9jdl9wcm9nX2dudV9sZD15ZXMKKysgIDs7CisrKikKKysgIGx0X2N2 X3Byb2dfZ251X2xkPW5vCisrICA7OworK2VzYWNdKQorK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9n X2dudV9sZAorK10pIyBfTFRfUEFUSF9MRF9HTlUKKysKKysKKysjIF9MVF9DTURfUkVMT0FECisr IyAtLS0tLS0tLS0tLS0tLQorKyMgZmluZCByZWxvYWQgZmxhZyBmb3IgbGlua2VyCisrIyAgIC0t IFBPUlRNRSBTb21lIGxpbmtlcnMgbWF5IG5lZWQgYSBkaWZmZXJlbnQgcmVsb2FkIGZsYWcuCisr bTRfZGVmdW4oW19MVF9DTURfUkVMT0FEXSwKKytbQUNfQ0FDSEVfQ0hFQ0soW2ZvciAkTEQgb3B0 aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXNdLAorKyAgbHRfY3ZfbGRfcmVsb2FkX2ZsYWcsCisr ICBbbHRfY3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJ10pCisrcmVsb2FkX2ZsYWc9JGx0X2N2X2xkX3Jl bG9hZF9mbGFnCisrY2FzZSAkcmVsb2FkX2ZsYWcgaW4KKysiIiB8ICIgIiopIDs7CisrKikgcmVs b2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7CisrZXNhYworK3JlbG9hZF9jbWRzPSckTEQkcmVs b2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKytjYXNlICRob3N0X29zIGluCisrICBk YXJ3aW4qKQorKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICAgIHJlbG9hZF9j bWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRf b2JqcycKKysgICAgZWxzZQorKyAgICAgIHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8g JG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZmkKKysgICAgOzsKKytlc2FjCisrX0xUX0RFQ0wo W10sIFtyZWxvYWRfZmxhZ10sIFsxXSwgW0hvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3Qg ZmlsZXNdKWRubAorK19MVF9ERUNMKFtdLCBbcmVsb2FkX2NtZHNdLCBbMl0pZG5sCisrXSkjIF9M VF9DTURfUkVMT0FECisrCisrCisrIyBfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9ECisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBob3cgdG8gY2hlY2sgZm9yIGxpYnJhcnkgZGVwZW5kZW5jaWVz CisrIyAgLS0gUE9SVE1FIGZpbGwgaW4gd2l0aCB0aGUgZHluYW1pYyBsaWJyYXJ5IGNoYXJhY3Rl cmlzdGljcworK200X2RlZnVuKFtfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9EXSwKKytbbTRfcmVxdWly ZShbX0xUX0RFQ0xfRUdSRVBdKQorK200X3JlcXVpcmUoW19MVF9ERUNMX09CSkRVTVBdKQorK0FD X0NBQ0hFX0NIRUNLKFtob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXNdLAorK2x0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kLAorK1tsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1BR0lD X0NNRCcKKytsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0KKytsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD0ndW5rbm93bicKKysjIE5lZWQgdG8gc2V0IHRoZSBwcmVjZWRpbmcgdmFyaWFibGUg b24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKKysjIGludGVybGlicmFyeSBkZXBlbmRlbmNp ZXMuCisrIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBzdXBwb3J0ZWQuCisrIyBgdW5rbm93 bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRoYXQgd2UgcmVhbGx5IGRvbid0IGtu b3cuCisrIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNpZXMgcGFzc2VkIHdpdGggbm8gY2hl Y2tzLgorKyMgJ3Rlc3RfY29tcGlsZScgLS0gY2hlY2sgYnkgbWFraW5nIHRlc3QgcHJvZ3JhbS4K KysjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sgYnkgbG9va2luZyBmb3IgZmlsZXMg aW4gbGlicmFyeSBwYXRoCisrIyB3aGljaCByZXNwb25kcyB0byB0aGUgJGZpbGVfbWFnaWNfY21k IHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KKysjIElmIHlvdSBoYXZlIGBmaWxlJyBvciBl cXVpdmFsZW50IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3UncmUgbm90IHN1cmUKKysjIHdoZXRoZXIg YHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBwcm9iYWJseSB3YW50IHRoaXMgb25l LgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXhbWzQtOV1dKikKKysgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2Jlb3MqKQorKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrYnNkaVtbNDVdXSopCisrICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJp dCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiknCisrICBsdF9jdl9maWxlX21h Z2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxl PS9zaGxpYi9saWJjLnNvCisrICA7OworKworK2N5Z3dpbiopCisrICAjIGZ1bmNfd2luMzJfbGli aWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0bWFpbi5zaAorKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERM TCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlkJworKyAgOzsKKysK KyttaW5ndyogfCBwdzMyKikKKysgICMgQmFzZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRlIHRo ZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKKysgICMgZnVuY193aW4zMl9saWJpZCBzaGVsbCBm dW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLAorKyAgIyB1 bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLWNv bXBpbGluZy4KKysgIGlmICggZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8 Xng4NiBETEwnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlkJwor KyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxl IGZvcm1hdCBwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycKKysgICAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJworKyAgZmkKKysgIDs7CisrCisrY2VnY2MpCisrICAj IHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLiBTZWUgbWluZ3cqLgorKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGUtYXJt LS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PSckT0JKRFVNUCAtZicKKysgIDs7CisrCisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2ZyZWVic2QqIHwgZHJh Z29uZmx5KikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+ IC9kZXYvbnVsbDsgdGhlbgorKyAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICBpKjg2ICkKKysg ICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3YXMg YSBtaXN0YWtlLgorKyAgICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0aGlz IGlzIGNsZWFyZWQgdXAuCisrICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lbWzMtOV1dODYgKGNvbXBhY3QgKT9k ZW1hbmQgcGFnZWQgc2hhcmVkIGxpYnJhcnknCisrICAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9 L3Vzci9iaW4vZmlsZQorKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91 c3IvbGliL2xpYmMuc28uKmAKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICBmaQorKyAgOzsKKysKKytnbnUq KQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisraHB1 eDEwLjIwKiB8IGhwdXgxMSopCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxl CisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1dfEVMRi1bWzAtOV1d W1swLTldXSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKKysgICAgbHRfY3ZfZmlsZV9tYWdp Y190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KKysgICAgOzsKKysgIGhwcGEqNjQq KQorKyAgICBbbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVsw LTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIFBBLVJJU0MgWzAt OV0uWzAtOV0nXQorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9wYTIw XzY0L2xpYmMuc2wKKysgICAgOzsKKysgICopCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdmaWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1dfFBBLVJJU0NbWzAtOV1dLltb MC05XV0pIHNoYXJlZCBsaWJyYXJ5JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0v dXNyL2xpYi9saWJjLnNsCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2ludGVyaXhbWzMt OV1dKikKKysgICMgUElDIGNvZGUgaXMgYnJva2VuIG9uIEludGVyaXggMy54LCB0aGF0J3Mgd2h5 IHxcLmEgbm90IHxfcGljXC5hIGhlcmUKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdt YXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc298XC5hKSQnCisrICA7OworKworK2lyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRMRCBpbgorKyAgKi0zMnwqIi0zMiAiKSBs aWJtYWdpYz0zMi1iaXQ7OworKyAgKi1uMzJ8KiItbjMyICIpIGxpYm1hZ2ljPU4zMjs7CisrICAq LTY0fCoiLTY0ICIpIGxpYm1hZ2ljPTY0LWJpdDs7CisrICAqKSBsaWJtYWdpYz1uZXZlci1tYXRj aDs7CisrICBlc2FjCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAg OzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdudSkK KysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK25ldGJz ZCopCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2 L251bGw7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRl cm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKKysgIGVs c2UKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltb Xi9dXSsoXC5zb3xfcGljXC5hKSQnCisrICBmaQorKyAgOzsKKysKKytuZXdvczYqKQorKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1i aXQgW1tNTF1dU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdp Y19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9s aWIvbGlibmxzLnNvCisrICA7OworKworKypudG8qIHwgKnFueCopCisrICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytvcGVuYnNkKikKKysgIGlmIHRlc3Qg LXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIk aG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wu W1swLTldXStcLltbMC05XV0rfFwuc298X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAt OV1dK1wuW1swLTldXSt8X3BpY1wuYSkkJworKyAgZmkKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0 KiB8IG9zZjUqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7 CisrCisrcmRvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAg OzsKKysKKytzb2xhcmlzKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs CisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBP cGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFz c19hbGwKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIGNhc2UgJGhvc3RfdmVuZG9y IGluCisrICBtb3Rvcm9sYSkKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHlu YW1pYyBsaWIpIE1bWzAtOV1dW1swLTldXSogVmVyc2lvbiBbWzAtOV1dJworKyAgICBsdF9jdl9m aWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKKysgICAgOzsKKysg IG5jcikKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsK KysgIHNlcXVlbnQpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTld XSotYml0IFtbTE1dXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCisrICAgIDs7Cisr ICBzbmkpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0 IFtbTE1dXVNCIGR5bmFtaWMgbGliIgorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0v bGliL2xpYmMuc28KKysgICAgOzsKKysgIHNpZW1lbnMpCisrICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCisrICAgIDs7CisrICBwYykKKysgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrdHBmKikK KysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworK2VzYWMKKytd KQorK2ZpbGVfbWFnaWNfY21kPSRsdF9jdl9maWxlX21hZ2ljX2NtZAorK2RlcGxpYnNfY2hlY2tf bWV0aG9kPSRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZAorK3Rlc3QgLXogIiRkZXBsaWJzX2No ZWNrX21ldGhvZCIgJiYgZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgorKworK19MVF9ERUNM KFtdLCBbZGVwbGlic19jaGVja19tZXRob2RdLCBbMV0sCisrICAgIFtNZXRob2QgdG8gY2hlY2sg d2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0c10pCisrX0xUX0RF Q0woW10sIFtmaWxlX21hZ2ljX2NtZF0sIFsxXSwKKysgICAgW0NvbW1hbmQgdG8gdXNlIHdoZW4g ZGVwbGlic19jaGVja19tZXRob2QgPT0gImZpbGVfbWFnaWMiXSkKKytdKSMgX0xUX0NIRUNLX01B R0lDX01FVEhPRAorKworKworKyMgTFRfUEFUSF9OTQorKyMgLS0tLS0tLS0tLQorKyMgZmluZCB0 aGUgcGF0aG5hbWUgdG8gYSBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIKKytBQ19E RUZVTihbTFRfUEFUSF9OTV0sCisrW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorK0FDX0NB Q0hFX0NIRUNLKFtmb3IgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChubSldLCBs dF9jdl9wYXRoX05NLAorK1tpZiB0ZXN0IC1uICIkTk0iOyB0aGVuCisrICAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KKysgIGx0X2N2X3BhdGhfTk09IiROTSIKKytlbHNlCisrICBs dF9ubV90b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIKKysgIGlmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCIgJiYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KKysgICAgbHRfbm1f dG9fY2hlY2s9IiRsdF9ubV90b19jaGVjayBubSIKKysgIGZpCisrICBmb3IgbHRfdG1wX25tIGlu ICRsdF9ubV90b19jaGVjazsgZG8KKysgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrICAgIGZvciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluL2VsZiAvdXNy L2Njcy9iaW4gL3Vzci91Y2IgL2JpbjsgZG8KKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysg ICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICAgIHRtcF9ubT0iJGFjX2Rp ci8kbHRfdG1wX25tIgorKyAgICAgIGlmIHRlc3QgLWYgIiR0bXBfbm0iIHx8IHRlc3QgLWYgIiR0 bXBfbm0kYWNfZXhlZXh0IiA7IHRoZW4KKysJIyBDaGVjayB0byBzZWUgaWYgdGhlIG5tIGFjY2Vw dHMgYSBCU0QtY29tcGF0IGZsYWcuCisrCSMgQWRkaW5nIHRoZSBgc2VkIDFxJyBwcmV2ZW50cyBm YWxzZSBwb3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6CisrCSMgICBubTogdW5rbm93biBv cHRpb24gIkIiIGlnbm9yZWQKKysJIyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0aGF0IC9kZXYvbnVs bCBpcyBhbiBpbnZhbGlkIG9iamVjdCBmaWxlCisrCWNhc2UgYCIkdG1wX25tIiAtQiAvZGV2L251 bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgorKwkqL2Rldi9udWxsKiB8IConSW52YWxpZCBmaWxlIG9y IG9iamVjdCB0eXBlJyopCisrCSAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKKysJICBicmVh aworKwkgIDs7CisrCSopCisrCSAgY2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYvbnVsbCAyPiYxIHwg c2VkICcxcSdgIGluCisrCSAgKi9kZXYvbnVsbCopCisrCSAgICBsdF9jdl9wYXRoX05NPSIkdG1w X25tIC1wIgorKwkgICAgYnJlYWsKKysJICAgIDs7CisrCSAgKikKKysJICAgIGx0X2N2X3BhdGhf Tk09JHtsdF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVwIHRoZSBmaXJzdCBtYXRjaCwgYnV0 CisrCSAgICBjb250aW51ZSAjIHNvIHRoYXQgd2UgY2FuIHRyeSB0byBmaW5kIG9uZSB0aGF0IHN1 cHBvcnRzIEJTRCBmbGFncworKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKyAg ICAgIGZpCisrICAgIGRvbmUKKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBkb25lCisrICA6 ICR7bHRfY3ZfcGF0aF9OTT1ub30KKytmaV0pCisraWYgdGVzdCAiJGx0X2N2X3BhdGhfTk0iICE9 ICJubyI7IHRoZW4KKysgIE5NPSIkbHRfY3ZfcGF0aF9OTSIKKytlbHNlCisrICAjIERpZG4ndCBm aW5kIGFueSBCU0QgY29tcGF0aWJsZSBuYW1lIGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KKysg IEFDX0NIRUNLX1RPT0xTKERVTVBCSU4sIFsiZHVtcGJpbiAtc3ltYm9scyIgImxpbmsgLWR1bXAg LXN5bWJvbHMiXSwgOikKKysgIEFDX1NVQlNUKFtEVU1QQklOXSkKKysgIGlmIHRlc3QgIiREVU1Q QklOIiAhPSAiOiI7IHRoZW4KKysgICAgTk09IiREVU1QQklOIgorKyAgZmkKKytmaQorK3Rlc3Qg LXogIiROTSIgJiYgTk09bm0KKytBQ19TVUJTVChbTk1dKQorK19MVF9ERUNMKFtdLCBbTk1dLCBb MV0sIFtBIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3Rlcl0pZG5sCisrCisrQUNfQ0FD SEVfQ0hFQ0soW3RoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2VdLCBbbHRfY3Zfbm1faW50 ZXJmYWNlXSwKKysgIFtsdF9jdl9ubV9pbnRlcmZhY2U9IkJTRCBubSIKKysgIGVjaG8gImludCBz b21lX3ZhcmlhYmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgKGV2YWwgZWNobyAiXCJc JGFzX21lOl9fb2xpbmVfXzogJGFjX2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysg IChldmFsICIkYWNfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCisrICBjYXQgY29uZnRlc3QuZXJy ID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186 ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkK KysgIChldmFsICIkTk0gXCJjb25mdGVzdC4kYWNfb2JqZXh0XCIiIDI+Y29uZnRlc3QuZXJyID4g Y29uZnRlc3Qub3V0KQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisr ICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiBvdXRwdXRcIiIgPiZBU19NRVNTQUdF X0xPR19GRCkKKysgIGNhdCBjb25mdGVzdC5vdXQgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgaWYg JEdSRVAgJ0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQgPiAvZGV2L251bGw7 IHRoZW4KKysgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgorKyAgZmkKKysgIHJt IC1mIGNvbmZ0ZXN0Kl0pCisrXSkjIExUX1BBVEhfTk0KKysKKysjIE9sZCBuYW1lczoKKytBVV9B TElBUyhbQU1fUFJPR19OTV0sIFtMVF9QQVRIX05NXSkKKytBVV9BTElBUyhbQUNfUFJPR19OTV0s IFtMVF9QQVRIX05NXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6 CisrZG5sIEFDX0RFRlVOKFtBTV9QUk9HX05NXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19QUk9H X05NXSwgW10pCisrCisrCisrIyBMVF9MSUJfTQorKyMgLS0tLS0tLS0KKysjIGNoZWNrIGZvciBt YXRoIGxpYnJhcnkKKytBQ19ERUZVTihbTFRfTElCX01dLAorK1tBQ19SRVFVSVJFKFtBQ19DQU5P TklDQUxfSE9TVF0pZG5sCisrTElCTT0KKytjYXNlICRob3N0IGluCisrKi0qLWJlb3MqIHwgKi0q LWN5Z3dpbiogfCAqLSotcHczMiogfCAqLSotZGFyd2luKikKKysgICMgVGhlc2Ugc3lzdGVtIGRv bid0IGhhdmUgbGlibSwgb3IgZG9uJ3QgbmVlZCBpdAorKyAgOzsKKysqLW5jci1zeXN2NC4zKikK KysgIEFDX0NIRUNLX0xJQihtdywgX213dmFsaWRjaGVja2wsIExJQk09Ii1sbXciKQorKyAgQUNf Q0hFQ0tfTElCKG0sIGNvcywgTElCTT0iJExJQk0gLWxtIikKKysgIDs7CisrKikKKysgIEFDX0NI RUNLX0xJQihtLCBjb3MsIExJQk09Ii1sbSIpCisrICA7OworK2VzYWMKKytBQ19TVUJTVChbTElC TV0pCisrXSkjIExUX0xJQl9NCisrCisrIyBPbGQgbmFtZToKKytBVV9BTElBUyhbQUNfQ0hFQ0tf TElCTV0sIFtMVF9MSUJfTV0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmls aXR5OgorK2RubCBBQ19ERUZVTihbQUNfQ0hFQ0tfTElCTV0sIFtdKQorKworKworKyMgX0xUX0NP TVBJTEVSX05PX1JUVEkoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorK200X2RlZnVuKFtfTFRfQ09NUElMRVJfTk9fUlRUSV0sCisrW200X3JlcXVpcmUoW19M VF9UQUdfQ09NUElMRVJdKWRubAorKworK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19i dWlsdGluX2ZsYWcsICQxKT0KKysKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWls dGluJworKworKyAgX0xUX0NPTVBJTEVSX09QVElPTihbaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1m bm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnNdLAorKyAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlf ZXhjZXB0aW9ucywKKysgICAgWy1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnNdLCBbXSwKKysgICAg W19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0iJF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSAtZm5vLXJ0dGkgLWZu by1leGNlcHRpb25zIl0pCisrZmkKKytfTFRfVEFHREVDTChbbm9fYnVpbHRpbl9mbGFnXSwgW2x0 X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnXSwgWzFdLAorKwlbQ29tcGlsZXIgZmxhZyB0 byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9uc10pCisrXSkjIF9MVF9DT01QSUxFUl9OT19SVFRJ CisrCisrCisrIyBfTFRfQ01EX0dMT0JBTF9TWU1CT0xTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrbTRfZGVmdW4oW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdLAorK1tBQ19SRVFVSVJFKFtB Q19DQU5PTklDQUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrQUNf UkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCisr bTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JF UF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisrCisrIyBDaGVjayBm b3IgY29tbWFuZCB0byBncmFiIHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1i b2wgZnJvbSBubS4KKytBQ19NU0dfQ0hFQ0tJTkcoW2NvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1 dCBmcm9tICRjb21waWxlciBvYmplY3RdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfcGlwZV0sCisrWworKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3Jr IG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1zLgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJp eC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0 ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tb QkNERUdSU1RdXScKKysKKysjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFj Y2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4KKytzeW1wYXQ9J1woW1tfQS1aYS16XV1bW19BLVphLXow LTldXSpcKScKKysKKysjIERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgorK2Nhc2Ug JGhvc3Rfb3MgaW4KKythaXgqKQorKyAgc3ltY29kZT0nW1tCQ0RUXV0nCisrICA7OworK2N5Z3dp biogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHN5bWNvZGU9J1tbQUJDREdJU1RXXV0n CisrICA7OworK2hwdXgqKQorKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysg ICAgc3ltY29kZT0nW1tBQkNERUdSU1RdXScKKysgIGZpCisrICA7OworK2lyaXgqIHwgbm9uc3Rv cHV4KikKKysgIHN5bWNvZGU9J1tbQkNERUdSU1RdXScKKysgIDs7Cisrb3NmKikKKysgIHN5bWNv ZGU9J1tbQkNERUdRUlNUXV0nCisrICA7OworK3NvbGFyaXMqKQorKyAgc3ltY29kZT0nW1tCRFJU XV0nCisrICA7OworK3NjbzMuMnY1KikKKysgIHN5bWNvZGU9J1tbRFRdXScKKysgIDs7Cisrc3lz djQuMnV3MiopCisrICBzeW1jb2RlPSdbW0RUXV0nCisrICA7OworK3N5c3Y1KiB8IHNjbzV2Niog fCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisrICBzeW1jb2RlPSdbW0FCRFRdXScKKysgIDs7Cisr c3lzdjQpCisrICBzeW1jb2RlPSdbW0RGTlNUVV1dJworKyAgOzsKKytlc2FjCisrCisrIyBJZiB3 ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCisr Y2FzZSBgJE5NIC1WIDI+JjFgIGluCisrKkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBzeW1jb2Rl PSdbW0FCQ0RHSVJTVFddXScgOzsKKytlc2FjCisrCisrIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVk IHN5bWJvbCBsaW5lIGludG8gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KKysjIFNvbWUgc3lzdGVt cyAoZXNwLiBvbiBpYTY0KSBsaW5rIGRhdGEgYW5kIGNvZGUgc3ltYm9scyBkaWZmZXJlbnRseSwK KysjIHNvIHVzZSB0aGlzIGdlbmVyYWwgYXBwcm9hY2guCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsv cCcgLWUgJ3MvXiRzeW1jb2RlKiAuKiBcKC4qXCkkL2V4dGVybiBjaGFyIFwxOy9wJyIKKysKKysj IFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBzeW1ib2wgbmFtZSBhbmQg c3ltYm9sIGFkZHJlc3MKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVz cz0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikg MH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wiXDJc IiwgKHZvaWQgKikgXCZcMn0sL3AnIgorK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFt ZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKSAkLyAge1xc XCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwo bGliW1teIF1dKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyAtZSAncy9eJHN5bWNv ZGUqIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcImxpYlwyXCIsICh2b2lkICopIFwmXDJ9 LC9wJyIKKysKKysjIEhhbmRsZSBDUkxGIGluIG1pbmd3IHRvb2wgY2hhaW4KKytvcHRfY3I9Cisr Y2FzZSAkYnVpbGRfb3MgaW4KKyttaW5ndyopCisrICBvcHRfY3I9YCRFQ0hPICd4XHswLDFcfScg fCB0ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4gcmVnZXhwCisrICA7OworK2VzYWMKKysKKysj IFRyeSB3aXRob3V0IGEgcHJlZml4IHVuZGVyc2NvcmUsIHRoZW4gd2l0aCBpdC4KKytmb3IgYWNf c3ltcHJmeCBpbiAiIiAiXyI7IGRvCisrCisrICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQs IGFuZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgorKyAgc3lteGZy bT0iXFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKKysKKysgICMgV3JpdGUgdGhlIHJhdyBhbmQgQyBp ZGVudGlmaWVycy4KKysgIGlmIHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZhY2UiID0gIk1TIGR1bXBi aW4iOyB0aGVuCisrICAgICMgRmFrZSBpdCBmb3IgZHVtcGJpbiBhbmQgc2F5IFQgZm9yIGFueSBu b24tc3RhdGljIGZ1bmN0aW9uCisrICAgICMgYW5kIEQgZm9yIGFueSBnbG9iYWwgdmFyaWFibGUu CisrICAgICMgQWxzbyBmaW5kIEMrKyBhbmQgX19mYXN0Y2FsbCBzeW1ib2xzIGZyb20gTVNWQysr LAorKyAgICAjIHdoaWNoIHN0YXJ0IHdpdGggQCBvciA/LgorKyAgICBsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF9waXBlPSIkQVdLIFsnIlwKKysiICAgICB7bGFzdF9zZWN0aW9uPXNlY3Rpb247IHNl Y3Rpb249XCQgM307IlwKKysiICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBh bnkpL3toaWRlW2xhc3Rfc2VjdGlvbl09MX07IlwKKysiICAgICBcJCAwIX4vRXh0ZXJuYWwgKlx8 L3tuZXh0fTsiXAorKyIgICAgIC8gMCsgVU5ERUYgL3tuZXh0fTsgLyBVTkRFRiBcKFtefF1cKSoo KS97bmV4dH07IlwKKysiICAgICB7aWYoaGlkZVtzZWN0aW9uXSkgbmV4dH07IlwKKysiICAgICB7 Zj0wfTsgXCQgMH4vXChcKS4qXHwve2Y9MX07IHtwcmludGYgZiA/IFwiVCBcIiA6IFwiRCBcIn07 IlwKKysiICAgICB7c3BsaXQoXCQgMCwgYSwgL1x8fFxyLyk7IHNwbGl0KGFbMl0sIHMpfTsiXAor KyIgICAgIHNbMV1+L15bQD9dL3twcmludCBzWzFdLCBzWzFdOyBuZXh0fTsiXAorKyIgICAgIHNb MV1+cHJmeCB7c3BsaXQoc1sxXSx0LFwiQFwiKTsgcHJpbnQgdFsxXSwgc3Vic3RyKHRbMV0sbGVu Z3RoKHByZngpKX0iXAorKyIgICAgICcgcHJmeD1eJGFjX3N5bXByZnhdIgorKyAgZWxzZQorKyAg ICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSJzZWQgLW4gLWUgJ3MvXi4qW1sJIF1dXCgk c3ltY29kZSRzeW1jb2RlKlwpW1sJIF1dW1sJIF1dKiRhY19zeW1wcmZ4JHN5bXBhdCRvcHRfY3Ik LyRzeW14ZnJtL3AnIgorKyAgZmkKKysKKysgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHBpcGUg d29ya3MgY29ycmVjdGx5LgorKyAgcGlwZV93b3Jrcz1ubworKworKyAgcm0gLWYgY29uZnRlc3Qq CisrICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorKyNpZmRlZiBfX2NwbHVzcGx1 cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorK2NoYXIgbm1fdGVzdF92YXI7Cisrdm9pZCBubV90 ZXN0X2Z1bmModm9pZCk7Cisrdm9pZCBubV90ZXN0X2Z1bmModm9pZCl7fQorKyNpZmRlZiBfX2Nw bHVzcGx1cworK30KKysjZW5kaWYKKytpbnQgbWFpbigpe25tX3Rlc3RfdmFyPSdhJztubV90ZXN0 X2Z1bmMoKTtyZXR1cm4oMCk7fQorK19MVF9FT0YKKysKKysgIGlmIEFDX1RSWV9FVkFMKGFjX2Nv bXBpbGUpOyB0aGVuCisrICAgICMgTm93IHRyeSB0byBncmFiIHRoZSBzeW1ib2xzLgorKyAgICBu bGlzdD1jb25mdGVzdC5ubQorKyAgICBpZiBBQ19UUllfRVZBTChOTSBjb25mdGVzdC4kYWNfb2Jq ZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdCkgJiYgdGVzdCAt cyAiJG5saXN0IjsgdGhlbgorKyAgICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRo ZSBvdXRwdXQuCisrICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRo ZW4KKysJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCisrICAgICAgZWxzZQorKwlybSAtZiAiJG5s aXN0IlQKKysgICAgICBmaQorKworKyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBh bGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4KKysgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcg IiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorKwlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVuYyQnICIk bmxpc3QiID4vZGV2L251bGw7IHRoZW4KKysJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFj X2V4dAorKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorKworK19M VF9FT0YKKysJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCisrCSAgZXZhbCAiJGx0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1h aW4gPj4gY29uZnRlc3QuJGFjX2V4dCcKKysKKysJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0 LiRhY19leHQKKysKKysvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3lt Ym9scy4gICovCisrY29uc3Qgc3RydWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lk ICAgICAgICphZGRyZXNzOworK30KKytsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xz W1tdXSA9CisreworKyAgeyAiQFBST0dSQU1AIiwgKHZvaWQgKikgMCB9LAorK19MVF9FT0YKKysJ ICAkU0VEICJzL14kc3ltY29kZSRzeW1jb2RlKiBcKC4qXCkgXCguKlwpJC8gIHtcIlwyXCIsICh2 b2lkICopIFwmXDJ9LC8iIDwgIiRubGlzdCIgfCAkR1JFUCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRh Y19leHQKKysJICBjYXQgPDxcX0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0CisrICB7MCwgKHZv aWQgKikgMH0KKyt9OworKworKy8qIFRoaXMgd29ya3MgYXJvdW5kIGEgcHJvYmxlbSBpbiBGcmVl QlNEIGxpbmtlciAqLworKyNpZmRlZiBGUkVFQlNEX1dPUktBUk9VTkQKKytzdGF0aWMgY29uc3Qg dm9pZCAqbHRfcHJlbG9hZGVkX3NldHVwKCkgeworKyAgcmV0dXJuIGx0X19QUk9HUkFNX19MVFhf cHJlbG9hZGVkX3N5bWJvbHM7CisrfQorKyNlbmRpZgorKworKyNpZmRlZiBfX2NwbHVzcGx1cwor K30KKysjZW5kaWYKKytfTFRfRU9GCisrCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxl cy4KKysJICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKKysJICBs dF9zYXZlX0xJQlM9IiRMSUJTIgorKwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorKwkgIExJ QlM9ImNvbmZ0c3RtLiRhY19vYmpleHQiCisrCSAgQ0ZMQUdTPSIkQ0ZMQUdTJF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSIKKysJICBpZiBBQ19UUllfRVZB TChhY19saW5rKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCisrCSAgICBw aXBlX3dvcmtzPXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKKysJICBDRkxB R1M9IiRsdF9zYXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rl c3RfZnVuYyBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysJZmkKKysgICAgICBlbHNl CisrCWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiZBU19NRVNTQUdF X0xPR19GRAorKyAgICAgIGZpCisrICAgIGVsc2UKKysgICAgICBlY2hvICJjYW5ub3QgcnVuICRs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgIGZp CisrICBlbHNlCisrICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiZB U19NRVNTQUdFX0xPR19GRAorKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysgIGZpCisr ICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCisrCisrICAjIERvIG5vdCB1c2UgdGhlIGdsb2Jh bF9zeW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCisrICBpZiB0ZXN0ICIkcGlwZV93b3JrcyIg PSB5ZXM7IHRoZW4KKysgICAgYnJlYWsKKysgIGVsc2UKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfcGlwZT0KKysgIGZpCisrZG9uZQorK10pCisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j ZGVjbD0KKytmaQorK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlJGx0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgorKyAgQUNfTVNHX1JFU1VMVChm YWlsZWQpCisrZWxzZQorKyAgQUNfTVNHX1JFU1VMVChvaykKKytmaQorKworK19MVF9ERUNMKFtn bG9iYWxfc3ltYm9sX3BpcGVdLCBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sIFsxXSwK KysgICAgW1Rha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3 IHN5bWJvbHMgYW5kIEMgbmFtZXNdKQorK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NkZWNs XSwgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsXSwgWzFdLAorKyAgICBbVHJhbnNm b3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbl0pCisrX0xUX0RF Q0woW2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NdLAorKyAgICBbbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NdLCBbMV0sCisrICAgIFtUcmFuc2Zvcm0gdGhl IG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXJdKQorK19MVF9ERUNMKFtnbG9i YWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXhdLAorKyAgICBbbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeF0sIFsxXSwKKysgICAg W1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVu IGxpYiBwcmVmaXggaXMgbmVlZGVkXSkKKytdKSAjIF9MVF9DTURfR0xPQkFMX1NZTUJPTFMKKysK KysKKysjIF9MVF9DT01QSUxFUl9QSUMoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DT01QSUxFUl9QSUNdLAorK1ttNF9yZXF1aXJlKFtf TFRfVEFHX0NPTVBJTEVSXSlkbmwKKytfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0KKytfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisrX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPQorKworK0FDX01TR19DSEVDS0lORyhbZm9yICRj b21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUNdKQorK200X2lmKFskMV0sIFtDWFhdLCBbCisr ICAjIEMrKyBzcGVjaWZpYyBjYXNlcyBmb3IgcGljLCBzdGF0aWMsIHdsLCBldGMuCisrICBpZiB0 ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf d2wsICQxKT0nLVdsLCcKKysgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctc3RhdGljJworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeCopCisrICAg ICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBp YTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgZmkK KysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgor KyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9T NCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLWZQSUMnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAg IyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJy YXJpZXMsIGJ1dAorKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBH Q0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICAgICAgICMgbGlr ZSBgLW02ODA0MCcuCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAg ICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGly aXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMg aXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAgOzsKKysgICAgbWluZ3cqIHwg Y3lnd2luKiB8IG9zMiogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBz byB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAg ICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1i b2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9y ZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNh YmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10s CisrCVtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCdd KQorKyAgICAgIDs7CisrICAgIGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgIyBQSUMgaXMg dGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90 IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1mbm8tY29tbW9uJworKyAgICAgIDs7CisrICAgICpkamdwcCopCisr ICAgICAgIyBESkdQUCBkb2VzIG5vdCBzdXBwb3J0IHNoYXJlZCBsaWJyYXJpZXMgYXQgYWxsCisr ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKyAgICAgIDs7Cisr ICAgIGludGVyaXhbWzMtOV1dKikKKysgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJ QyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2UgcmVs b2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorKyAgICAgIDs7CisrICAgIHN5c3Y0 Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCV9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZvcm1fcGljCisrICAgICAgZmkKKysgICAgICA7 OworKyAgICBocHV4KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBB IEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKKysgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBI UC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKKysgICAgICAjIHNldHMg dGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgorKyAgICAgIGNhc2Ug JGhvc3RfY3B1IGluCisrICAgICAgaHBwYSo2NCopCisrCTs7CisrICAgICAgKikKKysJX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysJOzsKKysgICAgICBlc2Fj CisrICAgICAgOzsKKysgICAgKnFueCogfCAqbnRvKikKKysgICAgICAjIFFOWCB1c2VzIEdOVSBD KyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAg ICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeFtbNC05 XV0qKQorKwkjIEFsbCBBSVggY29kZSBpcyBQSUMuCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBp YTY0OyB0aGVuCisrCSAgIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwllbHNl CisrCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6 L2xpYi9zeXNjYWxscy5leHAnCisrCWZpCisrCTs7CisrICAgICAgY2hvcnVzKikKKysJY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysJY3hjaDY4KikKKysJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxl cgorKwkgICMgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSItLW5vX2F1 dG9faW5zdGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09P TF9ESVIvbGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIv Y2xhc3NpeC9saWJjeC5zLmEiCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGRndXgqKQor KwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIGVjKysqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysJICAgIDs7CisrCSAgZ2hjeCopCisrCSAg ICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNh YworKwk7OworKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysJIyBGcmVlQlNEIHVzZXMg R05VIEMrKworKwk7OworKyAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKwljYXNl ICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGlmIHRlc3QgIiRob3N0X2Nw dSIgIT0gaWE2NDsgdGhlbgorKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9JytaJworKwkgICAgZmkKKysJICAgIDs7CisrCSAgYUNDKikKKysJICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGNh c2UgJGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0KnxpYTY0KikKKysJICAgICAgIyArWiB0aGUg ZGVmYXVsdAorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPScrWicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIDs7 CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBpbnRlcml4KikKKysJIyBU aGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hhcmVkIGxpYnMpCisrCSMg QW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KKysJOzsKKysgICAgICBpcml4NSogfCBpcml4Niog fCBub25zdG9wdXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysJICAgICMgQ0Mg cGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1bHQuCisrCSAgICA7OworKwkgICopCisrCSAgICA7 OworKwllc2FjCisrCTs7CisrICAgICAgbGludXgqIHwgaypic2QqLWdudSkKKysJY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysJICBLQ0MqKQorKwkgICAgIyBLQUkgQysrIENvbXBpbGVyCisrCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCisrCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKwkgICAgOzsK KysJICBlY3BjKiApCisrCSAgICAjIG9sZCBJbnRlbCBDKysgZm9yIHg4Nl82NCB3aGljaCBzdGls bCBzdXBwb3J0ZWQgLUtQSUMuCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLVdsLCcKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LUtQSUMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1z dGF0aWMnCisrCSAgICA7OworKwkgIGljcGMqICkKKysJICAgICMgSW50ZWwgQysrLCB1c2VkIHRv IGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KKysJICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0 IC1LUElDIGFueSBtb3JlLgorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1m UElDJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3Rh dGljJworKwkgICAgOzsKKysJICBwZ0NDKiB8IHBnY3BwKikKKysJICAgICMgUG9ydGxhbmQgR3Jv dXAgQysrIGNvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0nLVdsLCcKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZw aWMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJworKwkgICAgOzsKKysJICBjeHgqKQorKwkgICAgIyBDb21wYXEgQysrCisrCSAgICAjIE1h a2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhh CisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisr CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisrCSAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKwkgICAgOzsK KysJICB4bGMqIHwgeGxDKikKKysJICAgICMgSUJNIFhMIDguMCBvbiBQUEMKKysJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcXBpYycKKysJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKT0nLXFzdGF0aWNsaW5rJworKwkgICAgOzsKKysJICAqKQor KwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSAgICAqU3VuXCBDKikKKysJ ICAgICAgIyBTdW4gQysrIDUuOQorKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1LUElDJworKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf d2wsICQxKT0nLVFvcHRpb24gbGQgJworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsK KysJZXNhYworKwk7OworKyAgICAgIGx5bnhvcyopCisrCTs7CisrICAgICAgbTg4ayopCisrCTs7 CisrICAgICAgbXZzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBjeHgqKQorKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctVyBjLGV4cG9ydGFsbCcKKysJ ICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBuZXRic2QqKQor Kwk7OworKyAgICAgICpxbngqIHwgKm50byopCisrICAgICAgICAjIFFOWCB1c2VzIEdOVSBDKyss IGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAgICAg ICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICBvc2YzKiB8 IG9zZjQqIHwgb3NmNSopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgS0NDKikKKysJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctLWJhY2tlbmQgLVdsLCcKKysJ ICAgIDs7CisrCSAgUkNDKikKKysJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisrCSAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisrCSAgICA7OworKwkgIGN4 eCopCisrCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMrKworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcg aXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBD b21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisrCSAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJ ZXNhYworKwk7OworKyAgICAgIHBzb3MqKQorKwk7OworKyAgICAgIHNvbGFyaXMqKQorKwljYXNl ICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQg Q2VudGVybGluZSBDKysKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLUtQSUMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1Cc3RhdGljJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1R b3B0aW9uIGxkICcKKysJICAgIDs7CisrCSAgZ2N4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysr IENvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1Q SUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgc3Vu b3M0KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICAjIFN1biBDKysg NC54CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisr CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwor KwkgICAgOzsKKysJICBsY2MqKQorKwkgICAgIyBMdWNpZAorKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsK KysJZXNhYworKwk7OworKyAgICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNj bzV2NiogfCBPcGVuVU5JWCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICAgIDs7CisrCWVz YWMKKysJOzsKKysgICAgICB0YW5kZW0qKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIE5D QyopCisrCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKysJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7Owor Kwllc2FjCisrCTs7CisrICAgICAgdnh3b3JrcyopCisrCTs7CisrICAgICAgKikKKysJX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKwk7OworKyAg ICBlc2FjCisrICBmaQorK10sCisrWworKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysKKysgICAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElD LgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93 IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWln YW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisrICAgICAg ICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAgICAgICAg ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrICAgICAg ICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFz dCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICAgICAg ICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55 dGhpbmcgYmV0dGVyLAorKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVu dDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAg ICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2Yz KiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNl IE9TZXMuCisrICAgICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3My KiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmls ZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVz aW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysg ICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQg dGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJy YXJpZXMKKysgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10sCisrCVtfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQorKyAgICAgIDs7CisrCisrICAg IGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhp cyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlM SUIgZmlsZXMKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1m bm8tY29tbW9uJworKyAgICAgIDs7CisrCisrICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRo ZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAorKyAgICAg ICMgUEEgSFAtVVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRlZmF1bHQgYnV0IHRoZSBw aWMgZmxhZworKyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMg aW5saW5pbmcuCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KikKKysJ IyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7Cisr CisrICAgIGludGVyaXhbWzMtOV1dKikKKysgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8t ZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2Ug cmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorKyAgICAgIDs7CisrCisrICAg IG1zZG9zZGpncHAqKQorKyAgICAgICMgSnVzdCBiZWNhdXNlIHdlIHVzZSBHQ0MgZG9lc24ndCBt ZWFuIHdlIHN1ZGRlbmx5IGdldCBzaGFyZWQgbGlicmFyaWVzCisrICAgICAgIyBvbiBzeXN0ZW1z IHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisr ICAgICAgOzsKKysKKysgICAgKm50byogfCAqcW54KikKKysgICAgICAjIFFOWCB1c2VzIEdOVSBD KyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAg ICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAq KQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPS1LY29uZm9ybV9waWMKKysgICAgICBmaQorKyAgICAgIDs7Cisr CisrICAgICopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct ZlBJQycKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAgICMgUE9SVE1FIENoZWNr IGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxl ci4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICAgIGlmIHRlc3QgIiRob3N0X2Nw dSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisr CV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAg ICAgZWxzZQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNv IC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIG1p bmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCisrICAgICAgIyBUaGlzIGhh Y2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWlu ZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBv cnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAor KwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkK KysgICAgICA7OworKworKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyBp cyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAg ICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBo cHBhKjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCisrCTs7CisrICAgICAgZXNh YworKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhh dCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrICAgICAgOzsKKysK KysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJQykg aXMgdGhlIGRlZmF1bHQuCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICBsaW51eCogfCBrKmJzZCot Z251KQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgIyBvbGQgSW50ZWwgZm9y IHg4Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCisrICAgICAgZWNjKikKKysJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgIyBpY2MgdXNl ZCB0byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCisrICAgICAgIyBJQ0MgMTAgZG9lc24ndCBh Y2NlcHQgLUtQSUMgYW55IG1vcmUuCisrICAgICAgaWNjKiB8IGlmb3J0KikKKysJX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLXN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgIyBMYWhleSBGb3J0cmFu IDguMS4KKysgICAgICBsZjk1KikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLS1zaGFy ZWQnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLS1zdGF0aWMn CisrCTs7CisrICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCisrICAgICAg ICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhlIFBlbnRpdW0gZ2NjIGNvbXBp bGVyLAorKwkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBwcm9qZWN0KQorKwlfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctZnBpYycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgY2NjKikKKysgICAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICAgICAgIyBB bGwgQWxwaGEgY29kZSBpcyBQSUMuCisrICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICB4bCopCisr CSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAuMSBvbiBQUEMKKysJX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLXFwaWMnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0nLXFzdGF0aWNsaW5rJworKwk7OworKyAgICAgICopCisrCWNhc2UgYCRDQyAtViAyPiYxIHwg c2VkIDVxYCBpbgorKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUuOQorKwkgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICA7OworKwkqU3VuXCBGKikKKysJICAjIFN1biBG b3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCisr CSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysJICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCisrCSAgOzsKKysJZXNhYworKwk7Owor KyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAg ICAqbnRvKiB8ICpxbngqKQorKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8g ZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisrICAgICAgIyBpdCB3aWxsIGNv cmVkdW1wLgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQ SUMgLXNoYXJlZCcKKysgICAgICA7OworKworKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisr ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAg IyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICByZG9zKikK KysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hh cmVkJworKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgorKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICc7OworKyAgICAgICopCisrCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJzs7CisrICAgICAgZXNhYworKyAgICAgIDs7 CisrCisrICAgIHN1bm9zNCopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3ds LCAkMSk9Jy1Rb3B0aW9uIGxkICcKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1QSUMnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIq IHwgc3lzdjQuMyopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9 Jy1XbCwnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJ QycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91 c3IvbmVjIDt0aGVuCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtj b25mb3JtX3BpYycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct QnN0YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHVuaXh3YXJl KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHVuaWNvcyop CisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubwor KyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLXBpYycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKyAgICAg IDs7CisrICAgIGVzYWMKKysgIGZpCisrXSkKKytjYXNlICRob3N0X29zIGluCisrICAjIEZvciBw bGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoK KysgICpkamdwcCopCisrICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0K KysgICAgOzsKKysgICopCisrICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0iJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKUAmdEBtNF9pZihbJDFdLFtd LFsgLURQSUNdLFttNF9pZihbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pIgorKyAgICA7OworK2Vz YWMKKytBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp XSkKKytfTFRfVEFHREVDTChbd2xdLCBbbHRfcHJvZ19jb21waWxlcl93bF0sIFsxXSwKKysJW0hv dyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXJdKQorKworKyMKKysj IENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lm IHRlc3QgLW4gIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkiOyB0aGVuCisr ICBfTFRfQ09NUElMRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgUElDIGZsYWcgJF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKSB3b3Jrc10sCisrICAgIFtfTFRfVEFHVkFSKGx0X2N2 X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzLCAkMSldLAorKyAgICBbJF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKUAmdEBtNF9pZihbJDFdLFtdLFsgLURQSUNdLFttNF9pZihbJDFd LFtDWFhdLFsgLURQSUNdLFtdKV0pXSwgW10sCisrICAgIFtjYXNlICRfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSkgaW4KKysgICAgICIiIHwgIiAiKikgOzsKKysgICAgICopIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0iICRfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSkiIDs7CisrICAgICBlc2FjXSwKKysgICAgW19MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0KKysgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm9dKQorK2ZpCisrX0xUX1RBR0RFQ0woW3BpY19mbGFn XSwgW2x0X3Byb2dfY29tcGlsZXJfcGljXSwgWzFdLAorKwlbQWRkaXRpb25hbCBjb21waWxlciBm bGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzXSkKKysKKysjCisrIyBDaGVjayB0byBt YWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3bD0kX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkgZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIk X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpXCIKKytfTFRfTElOS0VSX09Q VElPTihbaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3Nd LAorKyAgX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcywgJDEpLAor KyAgJGx0X3RtcF9zdGF0aWNfZmxhZywKKysgIFtdLAorKyAgW19MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9zdGF0aWMsICQxKT1dKQorK19MVF9UQUdERUNMKFtsaW5rX3N0YXRpY19mbGFnXSwg W2x0X3Byb2dfY29tcGlsZXJfc3RhdGljXSwgWzFdLAorKwlbQ29tcGlsZXIgZmxhZyB0byBwcmV2 ZW50IGR5bmFtaWMgbGlua2luZ10pCisrXSkjIF9MVF9DT01QSUxFUl9QSUMKKysKKysKKysjIF9M VF9MSU5LRVJfU0hMSUJTKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIFNlZSBpZiB0aGUgbGlua2VyIHN1cHBvcnRzIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJp ZXMuCisrbTRfZGVmdW4oW19MVF9MSU5LRVJfU0hMSUJTXSwKKytbQUNfUkVRVUlSRShbTFRfUEFU SF9MRF0pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCisrbTRfcmVxdWlyZShbX0xU X0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRu bAorK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0NNRF9H TE9CQUxfU1lNQk9MU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisr QUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorK200X2lmKFskMV0sIFtDWFhdLCBbCisrICBfTFRfVEFH VkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlx ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4W1s0LTldXSop CisrICAgICMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICIt QyIgb3B0aW9uLgorKyAgICAjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5z IGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrICAgIGlmICROTSAtViAyPiYxIHwgJEdSRVAg J0dOVScgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xz X2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlm ICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChb c3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11 ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgICBlbHNlCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRf c3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sg J1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIi KSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8 IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAgIGZpCisrICAgIDs7CisrICBwdzMyKikK KysgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9IiRsdGRsbF9jbWRzIgor KyAgOzsKKysgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCisrICAgIF9MVF9UQUdWQVIoZXhw b3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2Jh bF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBdXVwo W1teIF1dKlwpL1wxIERBVEEvOy9eLipbWyBdXV9fbm1fXy9zL14uKltbIF1dX19ubV9fXChbW14g XV0qXClbWyBdXVtbXiBdXSovXDEgREFUQS87L15JW1sgXV0vZDsvXltbQUlUV11dW1sgXV0vcy8u KiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIDs7CisrICAqKQor KyAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRj b252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8 IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgOzsKKysgIGVzYWMKKysgIF9MVF9U QUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JB TF9fRltJRF1fLionXQorK10sIFsKKysgIHJ1bnBhdGhfdmFyPQorKyAgX0xUX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPQorKyAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJv bHMsICQxKT1ubworKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0KKysgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVk c19vYmplY3QsICQxKT1ubworKyAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGlj X3J1bnRpbWVzLCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj LCAkMSk9CisrICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJv YmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8v J1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgX0xUX1RBR1ZBUihoYXJk Y29kZV9hdXRvbWF0aWMsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubworKyAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KKysgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19M LCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3Vw cG9ydGVkCisrICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubworKyAgX0xUX1RBR1ZB UihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorKyAgX0xUX1RBR1ZBUihtb2R1bGVfY21k cywgJDEpPQorKyAgX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKysgIF9MVF9U QUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUihvbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUih0aHJlYWRfc2Fm ZV9mbGFnX3NwZWMsICQxKT0KKysgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0KKysgICMgaW5jbHVkZV9leHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2Vw YXJhdGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5cyoKKysgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJv bCBsaXN0CisrICBfTFRfVEFHVkFSKGluY2x1ZGVfZXhwc3ltcywgJDEpPQorKyAgIyBleGNsdWRl X2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVkIHJlZ2V4cCBvZiBzeW1ib2xzIHRvIGV4Y2x1ZGUK KysgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5v dCBtYXRjaCBiZWdpbm5pbmcgb3IKKysgICMgZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxiY3wu KmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJjJywKKysgICMgYXMgd2Vs bCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgYGQnLgorKyAgX0xUX1RBR1ZBUihleGNsdWRl X2V4cHN5bXMsICQxKT1bJ19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKidd CisrICAjIEFsdGhvdWdoIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZhbGlkIHN5bWJvbCBD IG5hbWUsIG1vc3QgYS5vdXQKKysgICMgcGxhdGZvcm1zIChhYil1c2UgaXQgaW4gUElDIGNvZGUs IGJ1dCB0aGVpciBsaW5rZXJzIGdldCBjb25mdXNlZCBpZgorKyAgIyB0aGUgc3ltYm9sIGlzIGV4 cGxpY2l0bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fubm90CisrICAjIHJl bHkgb24gdGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGluY2x1 ZGUgaXQgaW4KKysgICMgcHJlbG9hZGVkIHN5bWJvbCB0YWJsZXMuCisrICAjIEV4Y2x1ZGUgc2hh cmVkIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJvbHMuCisrZG5sIE5v dGUgYWxzbyBhZGp1c3QgZXhjbHVkZV9leHBzeW1zIGZvciBDKysgYWJvdmUuCisrICBleHRyYWN0 X2V4cHN5bXNfY21kcz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGN5Z3dpbiogfCBtaW5n dyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24n dCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGltZQorKyAgICAjIFdoZW4gbm90IHVzaW5nIGdj Yywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAjIE1pY3Jvc29m dCBWaXN1YWwgQysrLgorKyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKysgICAgICB3 aXRoX2dudV9sZD1ubworKyAgICBmaQorKyAgICA7OworKyAgaW50ZXJpeCopCisrICAgICMgd2Ug anVzdCBob3BlL2Fzc3VtZSB0aGlzIGlzIGdjYyBhbmQgbm90IGM4OSAoPSBNU1ZDKyspCisrICAg IHdpdGhfZ251X2xkPXllcworKyAgICA7OworKyAgb3BlbmJzZCopCisrICAgIHdpdGhfZ251X2xk PW5vCisrICAgIDs7CisrICBlc2FjCisrCisrICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXll cworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAjIElmIGFyY2hp dmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorKyAgICB3bGFy Yz0nJHt3bH0nCisrCisrICAgICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNo YXJlZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCisrICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNo YXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQorKyAgICAjIGhl cmUgYWxsb3dzIHRoZW0gdG8gYmUgb3ZlcnJpZGRlbiBpZiBuZWNlc3NhcnkuCisrICAgIHJ1bnBh dGhfdmFyPUxEX1JVTl9QQVRICisrICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgIF9MVF9UQUdWQVIoZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysgICAg IyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgor KyAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2 L251bGw7IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAk MSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdo b2xlLWFyY2hpdmUnCisrICAgIGVsc2UKKysgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjLCAkMSk9CisrICAgIGZpCisrICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1u bworKyAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKysgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIu W1swLTldXS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQorKyAgICAg ICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3 LjMgLi4uCisrICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25p bmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgorKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhl ciAyLjExIHZlcnNpb25zCisrICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7 OworKyAgICBlc2FjCisrCisrICAgICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeFtbMy05XV0qKQorKyAgICAg ICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KKysgICAgICBpZiB0 ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogdGhlIEdOVSBsaW5r ZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi45LjEsIGlzIHJlcG9ydGVkCisrKioqIHRvIGJl IHVuYWJsZSB0byByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBSVguCisrKioq IFRoZXJlZm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0 LiAgSWYgeW91CisrKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5 IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAorKyoqKiBzbyB0aGF0IGEgbm9uLUdOVSBsaW5rZXIg aXMgZm91bmQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VPRgorKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAg ICBwb3dlcnBjKQorKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNv IHN1cHBvcnQKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJworKyAgICAgICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci9hMml4bGlicmFy eS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJp eGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2Jq ZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRv dXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJl dmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1Mg JGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJy YXJ5IC0zMiknCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21p bnVzX0wsICQxKT15ZXMKKysgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisr ICAgIGJlb3MqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRl ZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrCSMgSm9zZXBoIEJlY2tlbmJhY2ggPGpy YjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MKKysJIyBzdXBwb3J0IC0tdW5k ZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21lIGludmVzdGlnYXRpb24uICBGSVhNRQorKwlfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAg ZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAgICA7 OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAgICAgIyBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFu aW5nbGVzcywKKysgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJk aXInCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9y dGVkCisrICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworKyAg ICAgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXll cworKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9i anMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tC Q0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQgLWUg J1wnJy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBv cnRfc3ltYm9scycKKysKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1p bXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxp bmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUgZXhwb3J0LXN5bWJv bHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkjIGlzIEVYUE9SVFMp LCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2Ai ID0geEVYUE9SVFM7IHRoZW4KKysJICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5kZWY7CisrCWVsc2UKKysJICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8k c29uYW1lLmRlZjsKKysJICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZGVmOworKwlmaX4KKysJJENDIC1zaGFyZWQgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWYgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGli IC1YbGlua2VyICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBpbnRlcml4W1szLTldXSopCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrICAgICAgX0xU X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICAj IEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBh IGJyb2tlbiBnY2MuCisrICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2Fk ZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQorKyAgICAgICMgZGVmYXVsdCkgYW5k IHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkK KysgICAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRo aXMsIHdlIHBpY2sgYSByYW5kb20sCisrICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFz ZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluaworKyAgICAgICMgdGlt ZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNw YWNlLgorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRw aWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1l ICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0 NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGly LyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxl LCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7 UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisr ICAgICAgOzsKKysKKysgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251KQorKyAg ICAgIHRtcF9kaWV0PW5vCisrICAgICAgaWYgdGVzdCAiJGhvc3Rfb3MiID0gbGludXgtZGlldGxp YmM7IHRoZW4KKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBkaWV0XCAqKSB0bXBfZGlldD15 ZXM7OwkjIGxpbnV4LWRpZXRsaWJjIHdpdGggc3RhdGljIGxpbmtpbmcgKCFkaWV0LWR5bikKKysJ ZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1 cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwgXAorKwkgJiYgdGVzdCAiJHRtcF9k aWV0IiA9IG5vCisrICAgICAgdGhlbgorKwl0bXBfYWRkZmxhZz0KKysJdG1wX3NoYXJlZGZsYWc9 Jy1zaGFyZWQnCisrCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorKyAgICAgICAgcGdj YyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgorKwkgIF9MVF9UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4g JGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5j ZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmll bmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgIHRtcF9hZGRmbGFnPScgJHBpY19m bGFnJworKwkgIDs7CisrCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91 cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKKysJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5j ZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2Nv bnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3ds fS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFp bicgOzsKKysJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBvbiBp YTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZv cnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRm bGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIElu dGVsIEZvcnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7Owor KwlsZjk1KikJCQkJIyBMYWhleSBGb3J0cmFuIDguMQorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0KKysJICB0bXBfc2hhcmVkZmxhZz0nLS1zaGFyZWQnIDs7Cisr CXhsW1tjQ11dKikJCQkjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cp CisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1xbWtzaHJvYmonCisrCSAgdG1wX2FkZGZsYWc9IDs7Cisr CWVzYWMKKysJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSpTdW5cIEMqKQkJCSMg U3VuIEMgNS45CisrCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSck e3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVu aWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3 X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAk e3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29i amVjdCwgJDEpPXllcworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKKysJKlN1blwgRiopCQkJ IyBTdW4gRm9ydHJhbiA4LjMKKysJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7CisrCWVzYWMKKysJ X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1w X2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysgICAgICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5v bl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGli bmFtZS52ZXJ+CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9c MTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBlY2hvICJsb2NhbDog KjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICRDQyAnIiR0bXBf c2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrICAgICAgICBmaQorKworKwljYXNl ICRjY19iYXNlbmFtZSBpbgorKwl4bGYqKQorKwkgICMgSUJNIFhMIEZvcnRyYW4gMTAuMSBvbiBQ UEMgY2Fubm90IGNyZWF0ZSBzaGFyZWQgbGlicyBpdHNlbGYKKysJICBfTFRfVEFHVkFSKHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5v LXdob2xlLWFyY2hpdmUnCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9CisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9 Jy1ycGF0aCAkbGliZGlyJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAt c2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUg LW8gJGxpYicKKysJICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVz OyB0aGVuCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAi eyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgY2F0ICRl eHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUudmVyfgorKwkgICAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrCSAgZmkKKysJICA7OworKwllc2FjCisrICAg ICAgZWxzZQorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZp CisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncyAtbyAkbGliJworKwl3bGFyYz0KKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZp bGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICA7OworKwor KyAgICBzb2xhcmlzKikKKysgICAgICBpZiAkTEQgLXYgMj4mMSB8ICRHUkVQICdCRkQgMlwuOCcg PiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwljYXQg PDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRo ZSBHTlUgbGlua2VyIGNhbm5vdCByZWxpYWJseQorKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmll cyBvbiBTb2xhcmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJs aW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05V CisrKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlv biBpcyB0byBtb2RpZnkKKysqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24g c28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0 LgorKworK19MVF9FT0YKKysgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1 cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCV9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMt ZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBlbHNlCisrCV9MVF9UQUdW QVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1 KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisrICAgICAg Y2FzZSBgJExEIC12IDI+JjFgIGluCisrICAgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIuW1swLTld XS4qIHwgKlwgMi4xW1swLTVdXS4qKQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr CWNhdCA8PF9MVF9FT0YgMT4mMgorKworKyoqKiBXYXJuaW5nOiBSZWxlYXNlcyBvZiB0aGUgR05V IGxpbmtlciBwcmlvciB0byAyLjE2LjkxLjAuMyBjYW4gbm90CisrKioqIHJlbGlhYmx5IGNyZWF0 ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNDTyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisr KioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0 byB1cGdyYWRlIEdOVQorKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuMTYuOTEuMC4zIG9yIG5l d2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21w aWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNl ZCwgYW5kIHRoZW4gcmVzdGFydC4KKysKKytfTFRfRU9GCisrCTs7CisrCSopCisrCSAgIyBGb3Ig c2VjdXJpdHkgcmVhc29ucywgaXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgeW91IGFsd2F5 cworKwkgICMgdXNlIGFic29sdXRlIHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywg YW5kIGV4Y2x1ZGUgdGhlCisrCSAgIyBEVF9SVU5QQVRIIHRhZyBmcm9tIGV4ZWN1dGFibGVzIGFu ZCBsaWJyYXJpZXMuICBCdXQgZG9pbmcgc28KKysJICAjIHJlcXVpcmVzIHRoYXQgeW91IGNvbXBp bGUgZXZlcnl0aGluZyB0d2ljZSwgd2hpY2ggaXMgYSBwYWluLgorKwkgIGlmICRMRCAtLWhlbHAg Mj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRo ZW4KKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhw b3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICBlbHNlCisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGli cywgJDEpPW5vCisrCSAgZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAg c3Vub3M0KikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2Vy dCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRH UkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCV9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWlu LXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBlbHNlCisr CV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrICAg IGVzYWMKKysKKysgICAgaWYgdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm87 IHRoZW4KKysgICAgICBydW5wYXRoX3Zhcj0KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0KKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPQorKyAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0KKysgICAgZmkKKysgIGVsc2UKKysgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0 aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQorKyAgICBjYXNlICRob3N0 X29zIGluCisrICAgIGFpeDMqKQorKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2Zs YWcsICQxKT11bnN1cHBvcnRlZAorKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1i b2xzLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 JyRMRCAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxB R1MgJGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lJworKyAgICAgICMgTm90ZTogdGhpcyBsaW5r ZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCisrICAgICAg IyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgorKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYm IHRlc3QgLXogIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KKysJIyBOZWl0aGVyIGRp cmVjdCBoYXJkY29kaW5nIG5vciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCisr CSMgYnJva2VuIGNvbGxlY3QyLgorKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVu c3VwcG9ydGVkCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhaXhbWzQtOV1dKikKKysg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIE9uIElBNjQsIHRoZSBs aW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0CisrCSMg aGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5v CisrCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9IiIKKysgICAgICBl bHNlCisrCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICIt QyIgb3B0aW9uLgorKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRv bid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrCWlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScg PiAvZGV2L251bGw7IHRoZW4KKysJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQx KT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIg PT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChbc3Vic3RyXShc JCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9y dF9zeW1ib2xzJworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAk MSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQg MiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJd KFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhw b3J0X3N5bWJvbHMnCisrCWZpCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysKKysJIyBU ZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisr CSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3 ZQorKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgorKwljYXNlICRob3N0X29zIGluIGFp eDQuW1syM11dfGFpeDQuW1syM11dLip8YWl4W1s1LTldXSopCisrCSAgZm9yIGxkX2ZsYWcgaW4g JExERkxBR1M7IGRvCisrCSAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxk X2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KKysJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9 eWVzCisrCSAgICBicmVhaworKwkgIGZpCisrCSAgZG9uZQorKwkgIDs7CisrCWVzYWMKKysKKysJ ZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKKysJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JworKyAg ICAgIGZpCisrCisrICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmpl Y3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGlu ZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorKyAgICAgICMg b3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwt dG9jIHRvCisrICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2Fz ZXMgd2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0s IGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysKKysgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPScnCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15 ZXMKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcwor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JworKyAg ICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgICAgIF9MVF9UQUdW QVIoZmlsZV9saXN0X3NwZWMsICQxKT0nJHt3bH0tZiwnCisrCisrICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAx Ml1dLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIs IHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVu ZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVj dDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKKysJICAgc3RyaW5ncyAiJGNv bGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVu CisrCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisrCSAgOgorKwkgIGVsc2UKKysJICAj IFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT11bnN1cHBvcnRlZAorKwkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJp ZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKKysJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUg bGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKwkgICMgdG8gdW5zdXBwb3J0ZWQg Zm9yY2VzIHJlbGlua2luZworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXll cworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJk aXInCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CisrCSAg ZmkKKysJICA7OworKwllc2FjCisrCXNoYXJlZF9mbGFnPSctc2hhcmVkJworKwlpZiB0ZXN0ICIk YWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICBzaGFyZWRfZmxhZz0iJHNo YXJlZF9mbGFnICInJHt3bH0tRycKKysJZmkKKysgICAgICBlbHNlCisrCSMgbm90IHVzaW5nIGdj YworKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIFZpc3VhbEFnZSBDKyss IFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQorKwkjIGNo b2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJl ZF9mbGFnPSctRycKKysJZWxzZQorKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5n IiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCisrCSAgZWxzZQorKwkg ICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKysJICBmaQorKwlmaQorKyAgICAgIGZpCisr CisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0t YmV4cGFsbCcKKysgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0 IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKysgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBp cyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgorKyAgICAg IF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisrICAgICAgaWYgdGVz dCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSMgV2FybmluZyAtIHdp dGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorKwkj IC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2Vu IGxpYnJhcnkuCisrCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nLWJlcm9r JworKyAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1 ZSBlbmNvZGVkIGluIGFuCisrICAgICAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCisrICAgICAgICBf TFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgi CisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlf ZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRY c2VkOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAk c2hhcmVkX2ZsYWciCisrICAgICAgZWxzZQorKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsg dGhlbgorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKKysJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5l ZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBv cnRfc3ltYm9scyIKKysJZWxzZQorKwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBm cm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrCSAjIGVtcHR5IGV4ZWN1dGFibGUuCisrCSBf TFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKwkgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAg IyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFn cywKKysJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNl IGEgYnJva2VuIGxpYnJhcnkuCisrCSAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEp PScgJHt3bH0tYmVybm90b2snCisrCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPScgJHt3bH0tYmVyb2snCisrCSAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQg aW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCisrCSAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisrCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBB SVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCisrCSAgX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxh Z31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZScKKysJZmkKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFt aWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAg ICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAg ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWIn CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKKysg ICAgICAgIDs7CisrICAgICAgbTY4aykKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2Rl ZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVD SE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4 bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1 dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJB TkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAg ICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJk aXInCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisr ICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBic2RpW1s0NV1dKikK KysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPS1yZHluYW1p YworKyAgICAgIDs7CisrCisrICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikK KysgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdl IGFyZSB1c2luZworKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCisrICAgICAgIyBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBp cworKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisrICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyAnCisrICAgICAgX0xUX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgIyBUZWxsIGx0bWFpbiB0 byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KKysgICAgICBsaWJleHQ9bGliCisrICAg ICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCisrICAg ICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICAgICAgIyBGSVhNRTogU2V0dGluZyBsaW5rbmFtZXMg aGVyZSBpcyBhIGJhZCBoYWNrLgorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgJEVDSE8gIlgkZGVwbGlicyIg fCAkWHNlZCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JworKyAg ICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYg d2UgYnVpbGQgYSBETEwuCisrICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19j bWRzLCAkMSk9J3RydWUnCisrICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVj aWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKysgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMs ICQxKT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJworKyAgICAgIF9MVF9U QUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKKysg ICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15 ZXMKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgIF9MVF9E QVJXSU5fTElOS0VSX0ZFQVRVUkVTKCQxKQorKyAgICAgIDs7CisrCisrICAgIGRndXgqKQorKyAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgZnJl ZWJzZDEqKQorKyAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICA7Owor KworKyAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5v IHRvIGdldCBDKysgY29uc3RydWN0b3IKKysgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25z IGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCisrICAgICMg ZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUg Y29zdCBvZiBhIGxpdHRsZQorKyAgICAjIGV4dHJhIHNwYWNlKS4KKysgICAgZnJlZWJzZDIuMiop CisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycK KysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGli ZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKwor KyAgICAjIFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3Qg aGF2ZSB0aGlzIGZlYXR1cmUuCisrICAgIGZyZWVic2QyKikKKysgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKwor KyAgICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJl ZCBsaWJyYXJpZXMuCisrICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICA7OworKworKyAgICBocHV4OSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRf b2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9s aWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGZpCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKworKyAgICAgICMgaGFyZGNvZGVfbWludXNf TDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisrICAgICAgIyBidXQgYXMgdGhlIGRl ZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFn X3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICA7OworKworKyAgICBocHV4MTAqKQorKyAgICAg IGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3ds fSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBpZiB0 ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwlfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nK2IgJGxpYmRpcicKKysJX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKwlfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPXllcworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwg JDEpPXllcworKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3ds fS1FJworKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRI LAorKwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJX0xU X1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgZmkKKysgICAgICA7Owor KworKyAgICBocHV4MTEqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9n bnVfbGQiID0gbm87IHRoZW4KKysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2NCopCisrCSAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsK KysJaWE2NCopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg LWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJKikKKysJICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9 JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWVzYWMKKysgICAgICBlbHNlCisrCWNh c2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0KikKKysJICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZh dWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAg OzsKKysJKikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0r aCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisrICAgICAgZmkK KysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwlf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCWNhc2UgJGhv c3RfY3B1IGluCisrCWhwcGEqNjQqfGlhNjQqKQorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9bm8KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bworKwkgIDs7CisrCSopCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMK KysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKwkgIF9M VF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrCisrCSAg IyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJICAj IGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJICBfTFRfVEFH VkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysJICA7OworKwllc2FjCisrICAgICAgZmkK KysgICAgICA7OworKworKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgICAg IGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9 LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lz dHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJIyBUcnkg dG8gdXNlIHRoZSAtZXhwb3J0ZWRfc3ltYm9sIGxkIG9wdGlvbiwgaWYgaXQgZG9lcyBub3QKKysJ IyB3b3JrLCBhc3N1bWUgdGhhdCAtZXhwb3J0c19maWxlIGRvZXMgbm90IHdvcmsgZWl0aGVyIGFu ZAorKwkjIGltcGxpY2l0bHkgZXhwb3J0IGFsbCBzeW1ib2xzLgorKyAgICAgICAgc2F2ZV9MREZM QUdTPSIkTERGTEFHUyIKKysgICAgICAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0t ZXhwb3J0ZWRfc3ltYm9sICR7d2x9Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYv bnVsbCIKKysgICAgICAgIEFDX0xJTktfSUZFTFNFKGludCBmb28odm9pZCkge30sCisrICAgICAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2 ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zICR7d2x9LWV4cG9ydHNfZmlsZSAke3dsfSRleHBvcnRfc3ltYm9s cyAtbyAkbGliJworKyAgICAgICAgKQorKyAgICAgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIK KysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3Qg LW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhz ZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp YicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRg IC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLWV4cG9ydHNf ZmlsZSAkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8nCisrICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrICAgICAg X0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihsaW5r X2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAg ICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsg dGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgIyBhLm91dAorKyAgICAgIGVs c2UKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisrICAgICAgZmkKKysg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGly JworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAg ICBuZXdzb3M2KQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAt aCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXIn CisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsK KysKKysgICAgKm50byogfCAqcW54KikKKysgICAgICA7OworKworKyAgICBvcGVuYnNkKikKKysg ICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwlfTFRfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdCwgJDEpPXllcworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsICQxKT1ubworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXll cworKwlpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9f YCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0 aGVuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19m bGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJv bHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMnCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgX0xUX1RBR1ZBUihleHBv cnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysJZWxzZQorKwkgIGNhc2UgJGhv c3Rfb3MgaW4KKysJICAgb3BlbmJzZFtbMDFdXS4qIHwgb3BlbmJzZDIuW1swLTddXSB8IG9wZW5i c2QyLltbMC03XV0uKikKKysJICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQg LUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXIn CisrCSAgICAgOzsKKysJICAgKikKKysJICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgICAgOzsKKysJICBlc2FjCisrCWZpCisrICAg ICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBvczIqKQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51 c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PXVuc3VwcG9ydGVkCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEVDSE8g IkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS5kZWZ+JEVDSE8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVD SE8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVD SE8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpz ID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmJworKyAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEp PSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGli bmFtZS5kZWYnCisrICAgICAgOzsKKysKKysgICAgb3NmMyopCisrICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScg JHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmci IHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVm aW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVw ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKyAg ICAgIGZpCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycK KysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciwgJDEpPToKKysgICAgICA7OworKworKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9z ZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKKysgICAgICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAk e3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0k dmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9v YmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGVsc2UK KysJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29s dmVkIFwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbXN5 bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92 ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAl c1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgcHJpbnRmICIl c1xcbiIgIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRDQyAtc2hhcmVkJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAkY29tcGlsZXJfZmxhZ3MgJGxpYm9i anMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNI TyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JFJNICRsaWIuZXhwJworKworKwkj IEJvdGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisrCV9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKKysg ICAgICBmaQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8n CisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAg ICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVk X2ZsYWcsICQxKT0nIC16IGRlZnMnCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K KysJd2xhcmM9JyR7d2x9JworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1i b2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7 IH07IiA+PiAkbGliLmV4cH4KKysJICAkQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3ds fS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKyAgICAgIGVsc2UKKysJY2Fz ZSBgJENDIC1WIDI+JjFgIGluCisrCSoiQ29tcGlsZXJzIDUuMCIqKQorKwkgIHdsYXJjPScnCisr CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HJHthbGxvd191bmRlZmluZWRf ZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn CisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFs OiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7 LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAkTEQg LUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCSAgOzsKKysJ KikKKysJICB3bGFyYz0nJHt3bH0nCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJv bHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsg fTsiID4+ICRsaWIuZXhwfgorKwkgICRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRs aWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3N+JFJNICRsaWIuZXhwJworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBjYXNlICRo b3N0X29zIGluCisrICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikg OzsKKysgICAgICAqKQorKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCBy ZW9yZGVyIGxpbmtlciBvcHRpb25zLAorKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2Zs YWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCisrCSMgYnV0IGlzIGNhcmVmdWwg ZW5vdWdoIG5vdCB0byByZW9yZGVyLgorKwkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAo bWF5YmUgMi41LjE/KQorKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwkgIF9MVF9UQUdW QVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3Qk Y29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JworKwllbHNlCisrCSAgX0xU X1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZl bmllbmNlIC16IGRlZmF1bHRleHRyYWN0JworKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAg ICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysgICAgICA7OworKworKyAg ICBzdW5vczQqKQorKyAgICAgIGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNlcXVlbnQ7IHRo ZW4KKysJIyBVc2UgJENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0aHJvd3Mg aW4gc29tZSBleHRyYSAubworKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZpbmkgc2Vj dGlvbnMgd29yay4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9 LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysg ICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYXNzZXJ0IHB1 cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn CisrICAgICAgZmkKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKwor KyAgICBzeXN2NCkKKysgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgorKwlzbmkpCisrCSAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PworKwk7OworKwlzaWVtZW5zKQor KwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExBTUxJQgorKwkgICMjIENDIGp1c3QgbWFrZXMg YSBHcm9zc01vZHVsZS4KKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIo cmVsb2FkX2NtZHMsICQxKT0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrCSAgX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICAgICAgOzsKKysJbW90b3JvbGEp CisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfZGlyZWN0LCAkMSk9bm8gI01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRl c3RzIHNheSB0aGV5IGxpZQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBydW5wYXRoX3Zhcj0n TERfUlVOX1BBVEgnCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICA7OworKworKyAgICBzeXN2NC4zKikKKysgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhf dmFyLCAkMSk9bm8KKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywg JDEpPSctQmV4cG9ydCcKKysgICAgICA7OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYg dGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn CisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrCXJ1bnBhdGhf dmFyPUxEX1JVTl9QQVRICisrCWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcworKwlfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPXllcworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjQq dXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuW1swMV1dLltbMTBdXSogfCB1 bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bWzAyNF1dKikKKysgICAgICBfTFRfVEFHVkFSKG5vX3Vu ZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGli cGF0aF92YXIsICQxKT1ubworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAg ZWxzZQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9y dF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHNjbzMu MnY1KiB8IHNjbzV2NiopCisrICAgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFz IHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKKysgICAgICAjIGxpbmsgd2l0aCAt bGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisr ICAgICAgIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBs aWJyYXJ5IHdvdWxkCisrICAgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90 IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKyAgICAgICMgdGhvdWdoLCB3aGljaCBkb2Vz IGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKyAgICAg ICMgYXMgLXogZGVmcy4KKysgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyR7d2x9LXosdGV4dCcKKysgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAk MSk9JyR7d2x9LXosbm9kZWZzJworKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRf bGMsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEp PW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LVIsJGxpYmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IsICQxKT0nOicKKysgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMK KysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1C ZXhwb3J0JworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xz ICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf c2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBfTFRf VEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBp ZiB0ZXN0IHgkaG9zdF92ZW5kb3IgPSB4c25pOyB0aGVuCisrICAgICAgY2FzZSAkaG9zdCBpbgor KyAgICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKKysJX0xUX1RB R1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmxhcmdlZHluc3ltJwor Kwk7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgIGZpCisrXSkKKytBQ19NU0dfUkVTVUxUKFsk X0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCisrdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworK19MVF9UQUdWQVIod2l0aF9n bnVfbGQsICQxKT0kd2l0aF9nbnVfbGQKKysKKytfTFRfREVDTChbXSwgW2xpYmV4dF0sIFswXSwg W09sZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkgImEiKV0pZG5sCisrX0xUX0RFQ0woW10sIFtz aHJleHRfY21kc10sIFsxXSwgW1NoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIp XSlkbmwKKytfTFRfREVDTChbXSwgW2V4dHJhY3RfZXhwc3ltc19jbWRzXSwgWzJdLAorKyAgICBb VGhlIGNvbW1hbmRzIHRvIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gYSBz aGFyZWQgYXJjaGl2ZV0pCisrCisrIworKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsg bGliYz8KKysjCisrY2FzZSAieCRfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSki IGluCisreHx4eWVzKQorKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorKyAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKworKyAgaWYgdGVzdCAiJGVuYWJs ZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2UgJF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgaW4KKysgICAgKid+JyopCisrICAgICAgIyBGSVhN RTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorKyAg ICAgIDs7CisrICAgICckQ0MgJyopCisrICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVy IGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQorKyAgICAgICMgc3lzdGVt cywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1s YworKyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgorKyAgICAgIEFD X01TR19DSEVDS0lORyhbd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGlu XSkKKysgICAgICAkUk0gY29uZnRlc3QqCisrICAgICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxl X3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgICAgaWYgQUNfVFJZX0VWQUwo YWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcnI7IHRoZW4KKysgICAgICAgIHNvbmFtZT1jb25mdGVz dAorKyAgICAgICAgbGliPWNvbmZ0ZXN0CisrICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19v YmpleHQKKysgICAgICAgIGRlcGxpYnM9CisrICAgICAgICB3bD0kX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3dsLCAkMSkKKysJcGljX2ZsYWc9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKQorKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKKysgICAgICAgIGxpbmtlcl9m bGFncz0tdgorKyAgICAgICAgdmVyc3RyaW5nPQorKyAgICAgICAgb3V0cHV0X29iamRpcj0uCisr ICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5l ZF9mbGFnPSRfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSkKKysgICAgICAgIF9M VF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKysgICAgICAgIGlmIEFDX1RSWV9F VkFMKF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBc IiBcPi9kZXYvbnVsbCAyXD5cJjEpCisrICAgICAgICB0aGVuCisrCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAgICAgICBlbHNlCisrCSAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKyAgICAgICAgZmkKKysgICAgICAgIF9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRf ZmxhZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAg IGZpCisrICAgICAgJFJNIGNvbmZ0ZXN0KgorKyAgICAgIEFDX01TR19SRVNVTFQoWyRfTFRfVEFH VkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSldKQorKyAgICAgIDs7CisrICAgIGVzYWMKKysg IGZpCisrICA7OworK2VzYWMKKysKKytfTFRfVEFHREVDTChbYnVpbGRfbGlidG9vbF9uZWVkX2xj XSwgW2FyY2hpdmVfY21kc19uZWVkX2xjXSwgWzBdLAorKyAgICBbV2hldGhlciBvciBub3QgdG8g YWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllc10pCisrX0xUX1RBR0RFQ0woW2Fs bG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lc10sCisrICAgIFtlbmFibGVfc2hh cmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzXSwgWzBdLAorKyAgICBbV2hldGhlciBvciBub3QgdG8g ZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpY10pCisrX0xU X1RBR0RFQ0woW10sIFtleHBvcnRfZHluYW1pY19mbGFnX3NwZWNdLCBbMV0sCisrICAgIFtDb21w aWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zXSkKKytfTFRfVEFHREVDTChbXSwg W3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjXSwgWzFdLAorKyAgICBbQ29tcGlsZXIgZmxhZyB0byBn ZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzXSkKKytfTFRfVEFH REVDTChbXSwgW2NvbXBpbGVyX25lZWRzX29iamVjdF0sIFsxXSwKKysgICAgW1doZXRoZXIgdGhl IGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5XSkKKytfTFRf VEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNdLCBbMl0sCisrICAgIFtDcmVh dGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlXSkKKytfTFRfVEFH REVDTChbXSwgW29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzXSwgWzJdLAorKyAgICBbQ3Jl YXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNo YXJlZCBhcmNoaXZlXSkKKytfTFRfVEFHREVDTChbXSwgW2FyY2hpdmVfY21kc10sIFsyXSwgW0Nv bW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX1RBR0RFQ0woW10s IFthcmNoaXZlX2V4cHN5bV9jbWRzXSwgWzJdKQorK19MVF9UQUdERUNMKFtdLCBbbW9kdWxlX2Nt ZHNdLCBbMl0sCisrICAgIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxl IGlmIGRpZmZlcmVudCBmcm9tIGJ1aWxkaW5nCisrICAgIGEgc2hhcmVkIGFyY2hpdmUuXSkKKytf TFRfVEFHREVDTChbXSwgW21vZHVsZV9leHBzeW1fY21kc10sIFsyXSkKKytfTFRfVEFHREVDTChb XSwgW3dpdGhfZ251X2xkXSwgWzFdLAorKyAgICBbV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0 aCBHTlUgbGQgb3Igbm90XSkKKytfTFRfVEFHREVDTChbXSwgW2FsbG93X3VuZGVmaW5lZF9mbGFn XSwgWzFdLAorKyAgICBbRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5k ZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHRdKQorK19MVF9UQUdERUNMKFtdLCBbbm9fdW5kZWZp bmVkX2ZsYWddLCBbMV0sCisrICAgIFtGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5 bWJvbHNdKQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY10sIFsx XSwKKysgICAgW0ZsYWcgdG8gaGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBs aW5raW5nLgorKyAgICBUaGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhp c3RdKQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF0sIFsx XSwKKysgICAgW1tJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSAk bGliZGlyIGludG8gYSBiaW5hcnkKKysgICAgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29y ayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhpc3RdXSkKKytfTFRfVEFHREVDTChbXSwgW2hh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JdLCBbMV0sCisrICAgIFtXaGV0aGVyIHdlIG5lZWQgYSBz aW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50XSkKKytfTFRfVEFH REVDTChbXSwgW2hhcmRjb2RlX2RpcmVjdF0sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiB1 c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisr ICAgIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5XSkKKytfTFRfVEFHREVDTChbXSwgW2hh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV0sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiB1c2lu ZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrICAg IERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkg ZGVwZW5kZW5jeSBpcworKyAgICAiYWJzb2x1dGUiLCBpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2Ug Ynkgc2V0dGluZyAke3NobGlicGF0aF92YXJ9IGlmIHRoZQorKyAgICBsaWJyYXJ5IGlzIHJlbG9j YXRlZF0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9taW51c19MXSwgWzBdLAorKyAgICBb U2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRj b2RlcyBESVIKKysgICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCisrX0xUX1RBR0RFQ0wo W10sIFtoYXJkY29kZV9zaGxpYnBhdGhfdmFyXSwgWzBdLAorKyAgICBbU2V0IHRvICJ5ZXMiIGlm IHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysg ICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29k ZV9hdXRvbWF0aWNdLCBbMF0sCisrICAgIFtTZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBzaGFy ZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIKKysgICAgaW50byB0aGUgbGli cmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQK KysgICAgYWdhaW5zdCBpdF0pCisrX0xUX1RBR0RFQ0woW10sIFtpbmhlcml0X3JwYXRoXSwgWzBd LAorKyAgICBbU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVu ZGVudCBsaWJyYXJpZXMKKysgICAgdG8gcnVudGltZSBwYXRoIGxpc3RdKQorK19MVF9UQUdERUNM KFtdLCBbbGlua19hbGxfZGVwbGlic10sIFswXSwKKysgICAgW1doZXRoZXIgbGlidG9vbCBtdXN0 IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllc10pCisr X0xUX1RBR0RFQ0woW10sIFtmaXhfc3JjZmlsZV9wYXRoXSwgWzFdLAorKyAgICBbRml4IHRoZSBz aGVsbCB2YXJpYWJsZSAkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyXSkKKytfTFRfVEFHREVDTChb XSwgW2Fsd2F5c19leHBvcnRfc3ltYm9sc10sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiBl eHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZF0pCisrX0xUX1RBR0RFQ0woW10sIFtleHBvcnRf c3ltYm9sc19jbWRzXSwgWzJdLAorKyAgICBbVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQg c3ltYm9sc10pCisrX0xUX1RBR0RFQ0woW10sIFtleGNsdWRlX2V4cHN5bXNdLCBbMV0sCisrICAg IFtTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1i b2xzXSkKKytfTFRfVEFHREVDTChbXSwgW2luY2x1ZGVfZXhwc3ltc10sIFsxXSwKKysgICAgW1N5 bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZF0pCisrX0xUX1RBR0RFQ0woW10sIFtw cmVsaW5rX2NtZHNdLCBbMl0sCisrICAgIFtDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcg cHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlc10pCisrX0xUX1RBR0RF Q0woW10sIFtmaWxlX2xpc3Rfc3BlY10sIFsxXSwKKysgICAgW1NwZWNpZnkgZmlsZW5hbWUgY29u dGFpbmluZyBpbnB1dCBmaWxlc10pCisrZG5sIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCisr ZG5sIF9MVF9UQUdERUNMKFtdLCBbdGhyZWFkX3NhZmVfZmxhZ19zcGVjXSwgWzFdLAorK2RubCAg ICBbQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQgc2FmZSBvYmplY3RzXSkKKytdKSMg X0xUX0xJTktFUl9TSExJQlMKKysKKysKKysjIF9MVF9MQU5HX0NfQ09ORklHKFtUQUddKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlv biB2YXJpYWJsZXMgZm9yIGEgQyBjb21waWxlciBhcmUgc3VpdGFibHkKKysjIGRlZmluZWQuICBU aGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcgdG8gd3Jp dGUKKysjIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KKyttNF9kZWZ1 bihbX0xUX0xBTkdfQ19DT05GSUddLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5s CisrbHRfc2F2ZV9DQz0iJENDIgorK0FDX0xBTkdfUFVTSChDKQorKworKyMgU291cmNlIGZpbGUg ZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291cmNlcy4KKythY19leHQ9YworKworKyMgT2JqZWN0IGZp bGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19M VF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNp bXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29t ZV92YXJpYWJsZSA9IDA7IgorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRl c3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbigpe3JldHVybigwKTt9Jwor KworK19MVF9UQUdfQ09NUElMRVIKKysjIFNhdmUgdGhlIGRlZmF1bHQgY29tcGlsZXIsIHNpbmNl IGl0IGdldHMgb3ZlcndyaXR0ZW4gd2hlbiB0aGUgb3RoZXIKKysjIHRhZ3MgYXJlIGJlaW5nIHRl c3RlZCwgYW5kIF9MVF9UQUdWQVIoY29tcGlsZXIsIFtdKSBpcyBhIE5PUC4KKytjb21waWxlcl9E RUZBVUxUPSRDQworKworKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVz dCBjb2RlCisrX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrX0xUX0xJTktFUl9CT0lMRVJQTEFU RQorKworKyMjIENBVkVBVCBFTVBUT1I6CisrIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3 aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysjIyB0aGUgcnVubmlu ZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhh Y3RseQorKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorK2lmIHRlc3QgLW4gIiRjb21waWxlciI7 IHRoZW4KKysgIF9MVF9DT01QSUxFUl9OT19SVFRJKCQxKQorKyAgX0xUX0NPTVBJTEVSX1BJQygk MSkKKysgIF9MVF9DT01QSUxFUl9DX08oJDEpCisrICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygk MSkKKysgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorKyAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigk MSkKKysgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKysgIExUX1NZU19ETE9QRU5f U0VMRgorKyAgX0xUX0NNRF9TVFJJUExJQgorKworKyAgIyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0 eXBlcyB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0CisrICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGxpYnRv b2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisrICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1 aWxkX3NoYXJlZF0pCisrCisrICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hh cmVkIGxpYnJhcmllc10pCisrICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVu YWJsZV9zaGFyZWQ9bm8KKysKKysgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0 aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorKyAgIyBhcmUgYWxsIGJ1 aWx0IGZyb20gUElDLgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4MyopCisrICAgIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrICAgIGlmIHRlc3Qg LW4gIiRSQU5MSUIiOyB0aGVuCisrICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwk UkFOTElCIFwkbGliIgorKyAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKKysg ICAgZmkKKysgICAgOzsKKysKKysgIGFpeFtbNC05XV0qKQorKyAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVu CisrICAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8K KysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hh cmVkXSkKKysKKysgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGli cmFyaWVzXSkKKysgICMgTWFrZSBzdXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9z dGF0aWMgaXMgeWVzLgorKyAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9z dGF0aWM9eWVzCisrICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N0YXRpY10pCisrCisrICBfTFRf Q09ORklHKCQxKQorK2ZpCisrQUNfTEFOR19QT1AKKytDQz0iJGx0X3NhdmVfQ0MiCisrXSkjIF9M VF9MQU5HX0NfQ09ORklHCisrCisrCisrIyBfTFRfUFJPR19DWFgKKysjIC0tLS0tLS0tLS0tLQor KyMgU2luY2UgQUNfUFJPR19DWFggaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVybnMgZysrIGlm IHRoZXJlIGlzIG5vIGMrKworKyMgY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhl cmUuCisrbTRfZGVmdW4oW19MVF9QUk9HX0NYWF0sCisrWworK3B1c2hkZWYoW0FDX01TR19FUlJP Ul0sIFtfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXNdKQorK0FDX1BST0dfQ1hYCisraWYgdGVzdCAt biAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKKysgICAgKCAodGVzdCAiWCRD WFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8CisrICAgICh0ZXN0 ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgorKyAgQUNfUFJPR19DWFhDUFAKKytlbHNlCisr ICBfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXMKKytmaQorK3BvcGRlZihbQUNfTVNHX0VSUk9SXSkK KytdKSMgX0xUX1BST0dfQ1hYCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5OgorK2RubCBBQ19ERUZVTihbX0xUX1BST0dfQ1hYXSwgW10pCisrCisrCisrIyBfTFRf TEFOR19DWFhfQ09ORklHKFtUQUddKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysj IEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBDKysgY29tcGls ZXIgYXJlIHN1aXRhYmx5CisrIyBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1 ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHIHRvIHdyaXRlCisrIyB0aGUgY29tcGlsZXIgY29uZmln dXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX0NYWF9DT05GSUddLAor K1tBQ19SRVFVSVJFKFtfTFRfUFJPR19DWFhdKWRubAorK200X3JlcXVpcmUoW19MVF9GSUxFVVRJ TFNfREVGQVVMVFNdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKysKKytB Q19MQU5HX1BVU0goQysrKQorK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1u bworK19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKytfTFRfVEFHVkFSKGFs d2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisrX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9CisrX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT1ubworK19M VF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRl LCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKytf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KKytfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX21p bnVzX0wsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVu c3VwcG9ydGVkCisrX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworK19MVF9U QUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCisrX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEp PQorK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihsaW5r X2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywg JDEpPSRvbGRfYXJjaGl2ZV9jbWRzCisrX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEp PQorK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKytfTFRfVEFHVkFS KGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubworKworKyMgU291cmNl IGZpbGUgZXh0ZW5zaW9uIGZvciBDKysgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jcHAKKysKKysj IE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQysrIHRlc3Qgc291cmNlcy4KKytv YmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgTm8gc2Vuc2Ug aW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQK KysjIHRoZSBDWFggY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVzIChsaWtl IGVuYWJsZV9zaGFyZWQpCisrIyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxs IGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5 IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgorK2lmIHRlc3Qg IiRfbHRfY2F1Z2h0X0NYWF9lcnJvciIgIT0geWVzOyB0aGVuCisrICAjIENvZGUgdG8gYmUgdXNl ZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworKyAgbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2Rl PSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorKworKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2lt cGxlIGxpbmsgdGVzdHMKKysgIGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oaW50 LCBjaGFyICpbW11dKSB7IHJldHVybigwKTsgfScKKysKKysgICMgbHRtYWluIG9ubHkgdXNlcyAk Q0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKysg IF9MVF9UQUdfQ09NUElMRVIKKysKKysgICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBz aW1wbGUgdGVzdCBjb2RlCisrICBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKysgIF9MVF9MSU5L RVJfQk9JTEVSUExBVEUKKysKKysgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmd1bWVudHMuCisrICBsdF9zYXZlX0NDPSRDQworKyAgbHRfc2F2ZV9MRD0kTEQKKysgIGx0 X3NhdmVfR0NDPSRHQ0MKKysgIEdDQz0kR1hYCisrICBsdF9zYXZlX3dpdGhfZ251X2xkPSR3aXRo X2dudV9sZAorKyAgbHRfc2F2ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xECisrICBpZiB0ZXN0IC1u ICIke2x0X2N2X3Byb2dfZ251X2xkY3h4K3NldH0iOyB0aGVuCisrICAgIGx0X2N2X3Byb2dfZ251 X2xkPSRsdF9jdl9wcm9nX2dudV9sZGN4eAorKyAgZWxzZQorKyAgICAkYXNfdW5zZXQgbHRfY3Zf cHJvZ19nbnVfbGQKKysgIGZpCisrICBpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhfTERDWFgrc2V0 fSI7IHRoZW4KKysgICAgbHRfY3ZfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRENYWAorKyAgZWxzZQor KyAgICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAorKyAgZmkKKysgIHRlc3QgLXogIiR7TERDWFgr c2V0fSIgfHwgTEQ9JExEQ1hYCisrICBDQz0ke0NYWC0iYysrIn0KKysgIGNvbXBpbGVyPSRDQwor KyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQworKyAgX0xUX0NDX0JBU0VOQU1FKFskY29t cGlsZXJdKQorKworKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgorKyAgICAjIFdlIGRv bid0IHdhbnQgLWZuby1leGNlcHRpb24gd2hlbiBjb21waWxpbmcgQysrIGNvZGUsIHNvIHNldCB0 aGUKKysgICAgIyBub19idWlsdGluX2ZsYWcgc2VwYXJhdGVseQorKyAgICBpZiB0ZXN0ICIkR1hY IiA9IHllczsgdGhlbgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWls dGluX2ZsYWcsICQxKT0nIC1mbm8tYnVpbHRpbicKKysgICAgZWxzZQorKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0KKysgICAgZmkKKysKKysg ICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAjIFNldCB1cCBkZWZhdWx0IEdO VSBDKysgY29uZmlndXJhdGlvbgorKworKyAgICAgIExUX1BBVEhfTEQKKysKKysgICAgICAjIENo ZWNrIGlmIEdOVSBDKysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5j ZSB0aGUKKysgICAgICAjIGFyY2hpdmluZyBjb21tYW5kcyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUg bGQgaXMgYmVpbmcgdXNlZC4KKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0 aGVuCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAt bm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5v c3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3lt Ym9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKworKyAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxp YmRpcicKKysgICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysKKysgICAgICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1 bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5CisrICAgICAgICAjIFhYWCBJIHRo aW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0Y2YtY3h4LCBidXQgSSBuZWVkIHRvCisr ICAgICAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1NKQorKyAg ICAgICAgd2xhcmM9JyR7d2x9JworKworKyAgICAgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qg c3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorKyAgICAgICAgaWYgZXZhbCAiYCRDQyAt cHJpbnQtcHJvZy1uYW1lPWxkYCAtLWhlbHAgMj4mMSIgfAorKwkgICRHUkVQICduby13aG9sZS1h cmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgICBfTFRfVEFHVkFSKHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNl ICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisrICAgICAgICBlbHNlCisrICAgICAgICAg IF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysgICAgICAgIGZpCisr ICAgICAgZWxzZQorKyAgICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgICAgIHdsYXJjPQorKwor KyAgICAgICAgIyBBIGdlbmVyaWMgYW5kIHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJh cnkgY3JlYXRpb24KKysgICAgICAgICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ug d2hlcmUgaXQgdXNlcyB0aGUgbmF0aXZlCisrICAgICAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBH TlUgbGQuICBJZiBwb3NzaWJsZSwgdGhpcyBzZXR0aW5nIHNob3VsZAorKyAgICAgICAgIyBvdmVy cmlkZGVuIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9u CisrICAgICAgICAjIHRoZSBwbGF0Zm9ybSBpdCBpcyBiZWluZyB1c2VkIG9uLgorKyAgICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAtbyAkbGliJworKyAgICAgIGZpCisrCisrICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNv bXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKyAgICAgICMgd2hhdCAi aGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgor KyAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKyAgICAgIG91dHB1dF92ZXJib3Nl X2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8 ICRHUkVQICJcLUwiJworKworKyAgICBlbHNlCisrICAgICAgR1hYPW5vCisrICAgICAgd2l0aF9n bnVfbGQ9bm8KKysgICAgICB3bGFyYz0KKysgICAgZmkKKysKKysgICAgIyBQT1JUTUU6IGZpbGwg aW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGlj cworKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRM RCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisrICAgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgzKikKKysgICAgICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1d KikKKysgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICAgICAg ICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwg c28gd2UgZG9uJ3QKKysgICAgICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisr ICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysgICAgICAgICAgZXhwX3N5bV9m bGFnPSctQmV4cG9ydCcKKysgICAgICAgICAgbm9fZW50cnlfZmxhZz0iIgorKyAgICAgICAgZWxz ZQorKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCisrICAgICAgICAgICMg VGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAor KyAgICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4g TERGTEFHUywgd2UKKysgICAgICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKysg ICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFpeFtb NS05XV0qKQorKwkgICAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAgICAgIGNhc2Ug JGxkX2ZsYWcgaW4KKysJICAgICAgKi1icnRsKikKKysJICAgICAgICBhaXhfdXNlX3J1bnRpbWVs aW5raW5nPXllcworKwkgICAgICAgIGJyZWFrCisrCSAgICAgICAgOzsKKysJICAgICAgZXNhYwor KwkgICAgZG9uZQorKwkgICAgOzsKKysgICAgICAgICAgZXNhYworKworKyAgICAgICAgICBleHBf c3ltX2ZsYWc9Jy1iZXhwb3J0JworKyAgICAgICAgICBub19lbnRyeV9mbGFnPSctYm5vZW50cnkn CisrICAgICAgICBmaQorKworKyAgICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNo YXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAgICAgICAgIyBoYXZlIHByb2Js ZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5 CisrICAgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBh ZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9n Y2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAgICMgZW5vdWdoIHRv IGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgorKworKyAgICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJworKyAgICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT0nOicKKysgICAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGli cywgJDEpPXllcworKyAgICAgICAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPScke3ds fS1mLCcKKysKKysgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgICAg IGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzAxMl1dfGFpeDQuW1swMTJdXS4qKQorKyAgICAgICAg ICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hl Y2sKKysgICAgICAgICAgIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1 bmRlciA0LjMrCisrCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxl Y3QyYAorKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmCisrCSAgICAgc3RyaW5ncyAi JGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0 aGVuCisrCSAgICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKKysJICAgIDoKKysJICBlbHNl CisrCSAgICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisrCSAgICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0 YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisrCSAgICAjIHBhdGggaXMgbm90 IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKwkgICAg IyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX21pbnVzX0wsICQxKT15ZXMKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT0KKysJICBmaQorKyAgICAgICAgICBlc2FjCisrICAgICAgICAgIHNo YXJlZF9mbGFnPSctc2hhcmVkJworKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5n IiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcn CisrCSAgZmkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgIyBub3QgdXNpbmcgZ2NjCisrICAg ICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBWaXN1YWxBZ2Ug QysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKysJ ICAjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkg IHNoYXJlZF9mbGFnPSctRycKKysgICAgICAgICAgZWxzZQorKwkgICAgaWYgdGVzdCAiJGFpeF91 c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICAgIHNoYXJlZF9mbGFnPScke3ds fS1HJworKwkgICAgZWxzZQorKwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkg ICAgZmkKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrCisrICAgICAgICBfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1iZXhwYWxsJworKyAgICAgICAg IyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmlu ZyB3aXRoCisrICAgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2Vu ZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8KKysJIyBleHBvcnQuCisrICAgICAgICBfTFRfVEFH VkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworKyAgICAgICAgaWYgdGVzdCAiJGFp eF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAgICAgICAgICMgV2FybmluZyAt IHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAor KyAgICAgICAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9k dWNlIGEgYnJva2VuIGxpYnJhcnkuCisrICAgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZp bmVkX2ZsYWcsICQxKT0nLWJlcm9rJworKyAgICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVs dCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkKKysgICAgICAgICAg IyBleGVjdXRhYmxlLgorKyAgICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyAgICAg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxp YnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysKKysgICAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3Mg YGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJY JHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3 bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgICAg ZWxzZQorKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRp cjovdXNyL2xpYjovbGliJworKwkgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPSIteiBub2RlZnMiCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0k e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3lt Ym9scyIKKysgICAgICAgICAgZWxzZQorKwkgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGli cGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrCSAgICAjIGVtcHR5IGV4ZWN1dGFi bGUuCisrCSAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKwkgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4 X2xpYnBhdGgiCisrCSAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4g dGltZSBsb2FkaW5nIGZsYWdzLAorKwkgICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJy b3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwkgICAgX0xUX1RBR1ZBUihu b191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVybm90b2snCisrCSAgICBfTFRfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJvaycKKysJICAgICMgRXhwb3J0 ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZl cworKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVu aWVuY2UnCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCisr CSAgICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0 cyBzaGFyZWQKKysJICAgICMgbGlicmFyaWVzLgorKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFH UyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFt ZScKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrICAgICAgICA7OworKworKyAgICAgIGJl b3MqKQorKwlpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czou KiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0 LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYworKwkgICMgc3VwcG9ydCAtLXVuZGVmaW5l ZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWVsc2UKKysJ ICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCWZpCisrCTs7CisrCisrICAgICAgY2hv cnVzKikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgICopCisrCSAg IyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubworKwkgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7Owor KworKyAgICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAgICMg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVh bmluZ2xlc3MsCisrICAgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExz LgorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1M JGxpYmRpcicKKysgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11 bnN1cHBvcnRlZAorKyAgICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQx KT1ubworKyAgICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRp bWVzLCAkMSk9eWVzCisrCisrICAgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0 by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91 dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysgICAgICAgICAgIyBJZiB0aGUgZXhwb3J0LXN5bWJv bHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKyAgICAgICAgICAjIGlz IEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKyAgICAgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFx ICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKysJICAgIGNwICRleHBvcnRfc3lt Ym9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysgICAgICAgICAgZWxzZQorKwkgICAg ZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCSAgICBjYXQgJGV4 cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKyAgICAgICAgICBm aX4KKysgICAgICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUt YXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAg ICAgICAgZWxzZQorKyAgICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAg ICAgICBmaQorKyAgICAgICAgOzsKKysgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAg ICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMoJDEpCisrCTs7CisrCisrICAgICAgZGd1eCop CisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBlYysrKikKKysJICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgOzsKKysgICAgICAgICAgZ2hjeCopCisrCSAg ICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5v CisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr CSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBmcmVlYnNkW1sx Ml1dKikKKysgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgcmVwb3J0ZWQgdG8gYmUgZmFp cmx5IGJyb2tlbiBiZWZvcmUKKysJIyBzd2l0Y2ggdG8gRUxGCisrICAgICAgICBfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCisrICAgICAgICA7OworKworKyAgICAgIGZyZWVic2QtZWxmKikK KysgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgICAg ICAgOzsKKysKKysgICAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCisrICAgICAgICAjIEZyZWVC U0QgMyBhbmQgbGF0ZXIgdXNlIEdOVSBDKysgYW5kIEdOVSBsZCB3aXRoIHN0YW5kYXJkIEVMRgor KyAgICAgICAgIyBjb252ZW50aW9ucworKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT15ZXMKKysgICAgICAgIDs7CisrCisrICAgICAgZ251KikKKysgICAgICAgIDs7CisrCisrICAg ICAgaHB1eDkqKQorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHlu YW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0ws ICQxKT15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkJCQkgICAgICAgICAgICAgIyBi dXQgYXMgdGhlIGRlZmF1bHQKKysJCQkJICAgICAgICAgICAgICMgbG9jYXRpb24gb2YgdGhlIGxp YnJhcnkuCisrCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyop CisrICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgICAg IDs7CisrICAgICAgICAgIGFDQyopCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1iICR7d2x9K2IgJHt3bH0k aW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAk b3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1l ICRsaWInCisrICAgICAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2Ug dmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKyAgICAgICAgICAgICMgd2hhdCAiaGlkZGVuIiBs aWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKyAgICAgICAg ICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKyAgICAgICAgICAgICMKKysgICAgICAg ICAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBj b21waWxlciBmcm9tCisrICAgICAgICAgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9i amVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysgICAgICAgICAgICAjIGZyb20g dGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5 CisrICAgICAgICAgICAgIyBkZXBlbmRlbmNpZXMuCisrICAgICAgICAgICAgb3V0cHV0X3ZlcmJv c2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4 dCAyPiYxKSB8ICRFR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8g Y2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQp OzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2Vk JworKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICopCisrICAgICAgICAgICAgaWYgdGVzdCAi JEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAt ZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAg ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAg ICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgICAgIGZpCisrICAg ICAgICAgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgaHB1eDEw KnxocHV4MTEqKQorKyAgICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgorKwkg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9 JGxpYmRpcicKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06 CisrCisrICAgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgICAgICAgaHBwYSo2NCp8 aWE2NCopCisrICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgICopCisrCSAgICAgIF9MVF9U QUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrICAgICAgICAg ICAgICA7OworKyAgICAgICAgICBlc2FjCisrICAgICAgICBmaQorKyAgICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KKysgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCisrICAgICAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgICAgICAgOzsKKysgICAgICAgICAg KikKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAg ICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisr ICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzICMgTm90IGlu IHRoZSBzZWFyY2ggUEFUSCwKKysJCQkJCSAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0Cisr CQkJCQkgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKyAgICAgICAgICAgIDs7 CisrICAgICAgICBlc2FjCisrCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAg ICAgICBDQyopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAg ICAgIGFDQyopCisrCSAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgICBocHBhKjY0KikKKysJ ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3ds fSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgOzsKKysJICAgICAgaWE2NCop CisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2gg JHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkg ICAgICAgIDs7CisrCSAgICAgICopCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9s aWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgOzsKKysJICAgIGVzYWMKKysJICAg ICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKKysJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisr CSAgICAjCisrCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZl bnQgdGhpcyBjb21waWxlciBmcm9tCisrCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0g b2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBv dXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkg ICAgIyBkZXBlbmRlbmNpZXMuCisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxp c3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwt TCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3Qu JG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6 Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysJICAgIDs7CisrICAgICAg ICAgICopCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKwkgICAgICBpZiB0ZXN0 ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCisrCSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJ ICAgICAgICAgIGhwcGEqNjQqKQorKwkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUg LW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7CisrCSAgICAgICAgICBpYTY0KikK KysJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg LW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRo IC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgICAgICA7OworKwkgICAgICAgICAgKikKKysJ ICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5v c3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9s aWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7CisrCSAgICAgICAgZXNh YworKwkgICAgICBmaQorKwkgICAgZWxzZQorKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKwkgICAgZmkKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAg ICAgIGludGVyaXhbWzMtOV1dKikKKysJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1u bworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwlfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicK KysJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysJ IyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2Yg YSBicm9rZW4gZ2NjLgorKwkjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBh dCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrCSMgZGVmYXVsdCkgYW5kIHJlbG9jYXRl ZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysJIyBjb25z dW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEg cmFuZG9tLAorKwkjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAw MCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrCSMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAw MDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKwlfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JB TkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwlf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRf c3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19m bGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3 bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3 bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsg MTM0MjE3NzI4MGAgLW8gJGxpYicKKysJOzsKKysgICAgICBpcml4NSogfCBpcml4NiopCisrICAg ICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIFNHSSBD KysKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1hbGwg LW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVn aXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJICAgICMg QXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2lu ZworKwkgICAgIyAiQ0MgLWFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgSVJJWCBDKysgY29tcGlsZXIu ICBUaGlzIGlzCisrCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRl bXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICMgaW4gdGhlIGFyY2hpdmUuCisrCSAgICBfTFRf VEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1hciAtV1IsLXUgLW8gJG9sZGxpYiAk b2xkb2JqcycKKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9 IHllczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJ ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2Vk YCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9u cyAtbyAkbGliJworKwkgICAgICBlbHNlCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3 bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJz aW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgLW8gJGxpYicKKysJICAgICAgZmkKKysJICAg IGZpCisrCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysJICAgIDs7 CisrICAgICAgICBlc2FjCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgICAgX0xUX1RBR1ZBUihp bmhlcml0X3JwYXRoLCAkMSk9eWVzCisrICAgICAgICA7OworKworKyAgICAgIGxpbnV4KiB8IGsq YnNkKi1nbnUpCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBLQ0Mq KQorKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21waWxlcgor KworKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBv dXRwdXQgZmlsZQorKwkgICAgIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCks IHNvIHJlbmFtZSB0aGUgbGlicmFyeQorKwkgICAgIyB0byBpdHMgcHJvcGVyIG5hbWUgKHdpdGgg dmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlB LVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAi cy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUg LW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAn XCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8g JGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAt LXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRl eHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCisrCSAgICAjIENvbW1hbmRzIHRvIG1h a2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBU aGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIg ZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3 ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhl eSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVz LgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFHUyAt diBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8ICRHUkVQ ICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBmb3IgeiBpbiAk dGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoi OzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgk bGlzdCIgfCAkWHNlZCcKKysKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihleHBvcnRf ZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKworKwkgICAg IyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVz aW5nCisrCSAgICAjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29t cGlsZXIuCisrCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1Cc3Rh dGljIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKwkgIGljcGMqIHwgZWNwYyogKQor KwkgICAgIyBJbnRlbCBDKysKKysJICAgIHdpdGhfZ251X2xkPXllcworKwkgICAgIyB2ZXJzaW9u IDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMK KysJICAgICMgaWYgd2UgYWRkICRwcmVkZXBfb2JqZWN0cyBhbmQgJHBvc3RkZXBfb2JqZWN0cywg aG93ZXZlciA3LjEgYW5kCisrCSAgICAjIGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0 aGVtc2VsdmVzLgorKwkgICAgY2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSAgICAgICoiVmVyc2lv biA3LiIqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkJX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRf c3ltYm9scyAtbyAkbGliJworKwkJOzsKKysJICAgICAgKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3 ZXIKKysJICAgICAgICB0bXBfaWR5bj0KKysJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKwkJ ICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7CisrCQllc2FjCisrCSAgICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAk bGliJworKwkJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk JyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKKysJCTs7CisrCSAgICBlc2FjCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kc19uZWVkX2xjLCAkMSk9bm8KKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihleHBv cnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwkgICAg X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJj aGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICAgIDs7CisrICAg ICAgICAgIHBnQ0MqIHwgcGdjcHAqKQorKyAgICAgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysr IGNvbXBpbGVyCisrCSAgICBjYXNlIGAkQ0MgLVZgIGluCisrCSAgICAqcGdDQ1wgW1sxLTVdXSog fCAqcGdjcHBcIFtbMS01XV0qKQorKwkgICAgICBfTFRfVEFHVkFSKHByZWxpbmtfY21kcywgJDEp PSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVs aW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRvYmpzICRsaWJvYmpzICRj b21waWxlX2RlcGxpYnN+CisrCQljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgYGZp bmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCInCisrCSAgICAgIF9MVF9UQUdWQVIob2xk X2FyY2hpdmVfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0cGxk aXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGly ICRvbGRvYmpzJG9sZF9kZXBsaWJzfgorKwkJJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMk b2xkX2RlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYH4KKysJCSRSQU5M SUIgJG9sZGxpYicKKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndHBsZGly PVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmpl Y3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIg LW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBs ZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRp ciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVw X29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgICAg IDs7CisrCSAgICAqKSAjIFZlcnNpb24gNiB3aWxsIHVzZSB3ZWFrIHN5bWJvbHMKKysJICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWInCisrCSAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAk e3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgICAgICA7OworKwkgICAgZXNhYworKwor KwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1y cGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICBfTFRfVEFHVkFSKHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGlu ICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVu Y2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5p ZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICAgICAgICA7OworKwkgIGN4 eCopCisrCSAgICAjIENvbXBhcSBDKysKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4t c3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKKysKKysJICAgIHJ1bnBhdGhfdmFyPUxE X1JVTl9QQVRICisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nLXJwYXRoICRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT06CisrCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVj ZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFy aWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2lu ZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVh ciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBs aWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRo ZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVk ZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0 LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3Qi IHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBm b3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0i JGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsg JEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysJICAgIDs7CisrCSAgeGwqKQorKwkgICAgIyBJQk0g WEwgOC4wIG9uIFBQQywgd2l0aCBHTlUgbGQKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFt aWMnCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXFta3Nocm9iaiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKKysJICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5 ZXM7IHRoZW4KKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2Vj aG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQljYXQgJGV4 cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS52ZXJ+CisrCQllY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLnZlcn4KKysJCSRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAke3ds fSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJworKwkgICAgZmkKKysJICAgIDs7 CisrCSAgKikKKysJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkgICAgKlN1 blwgQyopCisrCSAgICAgICMgU3VuIEMrKyA1LjkKKysJICAgICAgX0xUX1RBR1ZBUihub191bmRl ZmluZWRfZmxhZywgJDEpPScgLXpkZWZzJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSck Q0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scycKKysJICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJ ICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hv bGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwi OyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmll bmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8t d2hvbGUtYXJjaGl2ZScKKysJICAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3Qs ICQxKT15ZXMKKysKKysJICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBv bgorKwkgICAgICAjICRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRl c3Qkc2hhcmVkX2V4dCAyPiYxCisrCSAgICAgICMgd291bGQgYmUgYmV0dGVyLgorKwkgICAgICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysKKysJICAgICAgIyBBcmNoaXZlcyBjb250 YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAgICMg IkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwor KwkgICAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBh cmUgaW5jbHVkZWQKKysJICAgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgICAgX0xUX1RBR1ZB UihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisr CSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAg bHlueG9zKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCTs7CisrCisrICAgICAgbTg4 ayopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK KysgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJOzsKKysKKysgICAgICBt dnMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgY3h4KikKKysJ ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgOzsKKysJICAqKQorKwkgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCisrCSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbmV0YnNk KikKKysgICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+ L2Rldi9udWxsOyB0aGVuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1C c2hhcmVhYmxlICAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRsaW5rZXJfZmxhZ3MnCisrCSAgd2xhcmM9CisrCSAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICBfTFRfVEFHVkFS KGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPW5vCisrCWZpCisrCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUtMS41 IHRvb2xjaGFpbnMKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxB R1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8ICRT RUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJworKwk7OworKworKyAgICAgICpudG8qIHwgKnFu eCopCisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcworKwk7OworKworKyAg ICAgIG9wZW5ic2QyKikKKysgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJs eSBicm9rZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKworKyAgICAg IG9wZW5ic2QqKQorKwlpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwkgIF9M VF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrCSAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9h YnNvbHV0ZSwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKKysJICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICBpZiB0 ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0 ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysJICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2Zs YWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1v ICRsaWInCisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1FJworKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIk d2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1h cmNoaXZlJworKwkgIGZpCisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworKwllbHNl CisrCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwlmaQorKwk7OworKworKyAgICAg IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICAgICAgIEtDQyopCisrCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkg QysrIENvbXBpbGVyCisrCisrCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxp YnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5z bCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0cyBwcm9w ZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorKwkgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wn J3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICIk bGliIiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAt LXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisrCisrCSAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgs JGxpYmRpcicKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp PToKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3Qg YmUgY3JlYXRlZCB1c2luZworKwkgICAgIyB0aGUgS0FJIEMrKyBjb21waWxlci4KKysJICAgIGNh c2UgJGhvc3QgaW4KKysJICAgICAgb3NmMyopIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywg JDEpPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKKysJICAgICAgKikgX0xU X1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpzJyA7 OworKwkgICAgZXNhYworKwkgICAgOzsKKysgICAgICAgICAgUkNDKikKKysJICAgICMgUmF0aW9u YWwgQysrIDIuNC4xCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAg ICAgICAgIGN4eCopCisrCSAgICBjYXNlICRob3N0IGluCisrCSAgICAgIG9zZjMqKQorKwkgICAg ICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91 bnJlc29sdmVkICR7d2x9XConCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3Zl cnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCQk7Owor KwkgICAgICAqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQx KT0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAt bXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNl dF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRf b2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBw cmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25l fgorKwkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KKysJICAgICAgICAgICRD QyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRz b25hbWUgJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYm ICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0 cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KKysJICAgICAgICAgICRS TSAkbGliLmV4cCcKKysJICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisrCQk7OworKwkgICAgZXNhYworKworKwkgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKworKwkgICAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwor KwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMK KysJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlz IGNvbXBpbGVyIGZyb20KKysJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3Qg ZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBz byB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRl cGVuZGVuY2llcy4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJEND IC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiIHwg JEdSRVAgLXYgImxkOiJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUg InMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1w bGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAq LiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0 IiB8ICRYc2VkJworKwkgICAgOzsKKysJICAqKQorKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMg JiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAgICAgIF9MVF9UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XCon CisrCSAgICAgIGNhc2UgJGhvc3QgaW4KKysJICAgICAgICBvc2YzKikKKysJICAgICAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJz dHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRp cn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCQkgIDs7CisrCSAgICAgICAgKikKKysJICAgICAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUg JHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiJHt3bH0tc2V0X3Zl cnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3 bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkJICA7OworKwkgICAg ICBlc2FjCisrCisrCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJICAgICAgIyBDb21tYW5kcyB0byBtYWtl IGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KKysJICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAgIG91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQg Mj4mMSB8ICRHUkVQICJcLUwiJworKworKwkgICAgZWxzZQorKwkgICAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgICAgX0xUX1RBR1ZBUihsZF9zaGxp YnMsICQxKT1ubworKwkgICAgZmkKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7 OworKworKyAgICAgIHBzb3MqKQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr ICAgICAgICA7OworKworKyAgICAgIHN1bm9zNCopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIFN1biBDKysgNC54CisrCSAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAgIGxjYyopCisrCSAgICAjIEx1Y2lk CisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAg IF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAgICopCisr CSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAg ICAgICA7OworKworKyAgICAgIHNvbGFyaXMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUg aW4KKysgICAgICAgICAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJs aW5lIEMrKworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsJDEp PXllcworKwkgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXpkZWZzJwor KwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0 ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVj aG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgICAgICRDQyAtRyR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRzb25hbWUgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3N+JFJNICRsaWIuZXhwJworKworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciwgJDEpPW5vCisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAgICAgIHNvbGFy aXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7CisrCSAgICAgICopCisrCQkjIFRo ZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25z LAorKwkJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4KKysJICAgICAgICAjIFN1 cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQorKwkJX0xUX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16 IGRlZmF1bHRleHRyYWN0JworKwkgICAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICBfTFRfVEFH VkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysKKysJICAgIG91dHB1dF92ZXJib3NlX2xp bmtfY21kPSdlY2hvJworKworKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3Qg ZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjICJDQyAteGFyIiwgd2hlcmUgIkND IiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKysJICAgICMgbmVjZXNzYXJ5IHRv IG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICAgIyBp biB0aGUgYXJjaGl2ZS4KKysJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSck Q0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsKKysgICAgICAgICAgZ2N4KikK KysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1v ICRsaWInCisrCisrCSAgICAjIFRoZSBDKysgY29tcGlsZXIgbXVzdCBiZSB1c2VkIHRvIGNyZWF0 ZSB0aGUgYXJjaGl2ZS4KKysJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSck Q0MgJExERkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJICAgIDs7CisrICAg ICAgICAgICopCisrCSAgICAjIEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgor KwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0 aGVuCisrCSAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LXog JHt3bH1kZWZzJworKwkgICAgICBpZiAkQ0MgLS12ZXJzaW9uIHwgJEdSRVAgLXYgJ14yXC43JyA+ IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29u YW1lIC1vICRsaWInCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNF RCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAk bGliLmV4cH4KKysJCSAgJENDIC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAg LW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKworKwkgICAgICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAg ICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFy ZSB1c2VkIHdoZW4KKysJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAg ICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25m dGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKysJICAgICAgZWxzZQorKwkgICAgICAg ICMgZysrIDIuNyBhcHBlYXJzIHRvIHJlcXVpcmUgYC1HJyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMK KysJICAgICAgICAjIHBsYXRmb3JtLgorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtRyAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNv bmFtZSAtbyAkbGliJworKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRT RUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4g JGxpYi5leHB+CisrCQkgICRDQyAtRyAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAgICAgICAgIyBDb21tYW5kcyB0byBt YWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAg ICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVz ZWQgd2hlbgorKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgICAg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2Jq ZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKysJICAgICAgZmkKKysKKysJICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJHdsJGxpYmRpcicKKysJ ICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKwkJc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltb MC01XV0uKikgOzsKKysJCSopCisrCQkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3ds fWRlZmF1bHRleHRyYWN0JworKwkJICA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgICAg OzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2 NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8 IHNjbzMuMnY1LjAuW1swMjRdXSopCisrICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxh ZywgJDEpPScke3dsfS16LHRleHQnCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVl ZF9sYywgJDEpPW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysgICAgICAgIENDKikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisr CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0 OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysg ICAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKwkjIE5vdGU6IFdlIGNhbiBOT1Qg dXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAorKwkjIGxp bmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBs aWJjIHRvCisrCSMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQg bm8gbGlicmFyeSB3b3VsZAorKwkjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3Qg dXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0CisrCSMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNo IHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKwkjIGFzIC16IGRl ZnMuCisrCV9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0Jwor KwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosbm9kZWZzJwor KwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysJX0xUX1RBR1ZBUiho YXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIsJGxpYmRpcicKKysJX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisrCV9MVF9UQUdWQVIobGlua19hbGxfZGVwbGli cywgJDEpPXllcworKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1CZXhwb3J0JworKwlydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrCWNhc2UgJGNj X2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIDs7Cisr CSAgKikKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK KysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk e3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICA7OworKwllc2FjCisrICAgICAg OzsKKysKKysgICAgICB0YW5kZW0qKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysg ICAgICAgICAgTkNDKikKKysJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAorKwkgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysg ICAgICB2eHdvcmtzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAg ICAgOzsKKysKKysgICAgICAqKQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr ICAgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIEFDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpXSkKKysgICAgdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSki ID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworKyAgICBfTFRfVEFHVkFSKEdDQywgJDEp PSIkR1hYIgorKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKKysKKysgICAgIyMgQ0FWRUFU IEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZv bGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIg b3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKysg ICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisrICAgIF9MVF9TWVNfSElEREVOX0xJQkRFUFMo JDEpCisrICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisrICAgIF9MVF9DT01QSUxFUl9DX08oJDEp CisrICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorKyAgICBfTFRfTElOS0VSX1NITElC UygkMSkKKysgICAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkKKysgICAgX0xUX0xJTktFUl9I QVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgICBfTFRfQ09ORklHKCQxKQorKyAgZmkgIyB0ZXN0 IC1uICIkY29tcGlsZXIiCisrCisrICBDQz0kbHRfc2F2ZV9DQworKyAgTERDWFg9JExECisrICBM RD0kbHRfc2F2ZV9MRAorKyAgR0NDPSRsdF9zYXZlX0dDQworKyAgd2l0aF9nbnVfbGQ9JGx0X3Nh dmVfd2l0aF9nbnVfbGQKKysgIGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKKysgIGx0 X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAorKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0 X2N2X3Byb2dfZ251X2xkCisrICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9s ZAorK2ZpICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKKysKKytBQ19MQU5H X1BPUAorK10pIyBfTFRfTEFOR19DWFhfQ09ORklHCisrCisrCisrIyBfTFRfU1lTX0hJRERFTl9M SUJERVBTKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgRmlndXJlIG91dCAiaGlkZGVuIiBsaWJyYXJ5IGRlcGVuZGVuY2llcyBmcm9tIHZlcmJvc2UK KysjIGNvbXBpbGVyIG91dHB1dCB3aGVuIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysjIFBh cnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQorKyMgb2Jq ZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorK200X2RlZnVuKFtfTFRfU1lTX0hJ RERFTl9MSUJERVBTXSwKKytbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5s CisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0IGJl aW5nIGxpbmtlZDoKKytfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9CisrX0xUX1RBR1ZB Uihwb3N0ZGVwX29iamVjdHMsICQxKT0KKytfTFRfVEFHVkFSKHByZWRlcHMsICQxKT0KKytfTFRf VEFHVkFSKHBvc3RkZXBzLCAkMSk9CisrX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3Bh dGgsICQxKT0KKysKKytkbmwgd2UgY2FuJ3QgdXNlIHRoZSBsdF9zaW1wbGVfY29tcGlsZV90ZXN0 X2NvZGUgaGVyZSwKKytkbmwgYmVjYXVzZSBpdCBjb250YWlucyBjb2RlIGludGVuZGVkIGZvciBh biBleGVjdXRhYmxlLAorK2RubCBub3QgYSBsaWJyYXJ5LiAgSXQncyBwb3NzaWJsZSB3ZSBzaG91 bGQgbGV0IGVhY2gKKytkbmwgdGFnIGRlZmluZSBhIG5ldyBsdF8/Pz8/X2xpbmtfdGVzdF9jb2Rl IHZhcmlhYmxlLAorK2RubCBidXQgaXQncyBvbmx5IHVzZWQgaGVyZS4uLgorK200X2lmKFskMV0s IFtdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytpbnQgYTsKKyt2b2lkIGZv byAodm9pZCkgeyBhID0gMDsgfQorK19MVF9FT0YKKytdLCBbJDFdLCBbQ1hYXSwgW2NhdCA+IGNv bmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrY2xhc3MgRm9vCisreworK3B1YmxpYzoKKysgIEZv byAodm9pZCkgeyBhID0gMDsgfQorK3ByaXZhdGU6CisrICBpbnQgYTsKKyt9OworK19MVF9FT0YK KytdLCBbJDFdLCBbRjc3XSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrICAg ICAgc3Vicm91dGluZSBmb28KKysgICAgICBpbXBsaWNpdCBub25lCisrICAgICAgaW50ZWdlcio0 IGEKKysgICAgICBhPTAKKysgICAgICByZXR1cm4KKysgICAgICBlbmQKKytfTFRfRU9GCisrXSwg WyQxXSwgW0ZDXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrICAgICAgc3Vi cm91dGluZSBmb28KKysgICAgICBpbXBsaWNpdCBub25lCisrICAgICAgaW50ZWdlciBhCisrICAg ICAgYT0wCisrICAgICAgcmV0dXJuCisrICAgICAgZW5kCisrX0xUX0VPRgorK10sIFskMV0sIFtH Q0pdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytwdWJsaWMgY2xhc3MgZm9v IHsKKysgIHByaXZhdGUgaW50IGE7CisrICBwdWJsaWMgdm9pZCBiYXIgKHZvaWQpIHsKKysgICAg YSA9IDA7CisrICB9CisrfTsKKytfTFRfRU9GCisrXSkKKytkbmwgUGFyc2UgdGhlIGNvbXBpbGVy IG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5CisrZG5sIG9iamVjdHMsIGxpYnJhcmll cyBhbmQgbGlicmFyeSBmbGFncy4KKytpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgor KyAgIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkK KysgICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorKworKyAgIyBTZW50 aW5lbCB1c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3Qgd2UgYXJlIGJlZm9yZQor KyAgIyB0aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUuCisrICBwcmVfdGVzdF9vYmplY3RfZGVwc19k b25lPW5vCisrCisrICBmb3IgcCBpbiBgZXZhbCAiJG91dHB1dF92ZXJib3NlX2xpbmtfY21kImA7 IGRvCisrICAgIGNhc2UgJHAgaW4KKysKKysgICAgLUwqIHwgLVIqIHwgLWwqKQorKyAgICAgICAj IFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRo LgorKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCisrICAgICAgIGlmIHRlc3QgJHAgPSAiLUwi IHx8CisrICAgICAgICAgIHRlc3QgJHAgPSAiLVIiOyB0aGVuCisrCSBwcmV2PSRwCisrCSBjb250 aW51ZQorKyAgICAgICBlbHNlCisrCSBwcmV2PQorKyAgICAgICBmaQorKworKyAgICAgICBpZiB0 ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgorKwkgY2FzZSAkcCBp bgorKwkgLUwqIHwgLVIqKQorKwkgICAjIEludGVybmFsIGNvbXBpbGVyIGxpYnJhcnkgcGF0aHMg c2hvdWxkIGNvbWUgYWZ0ZXIgdGhvc2UKKysJICAgIyBwcm92aWRlZCB0aGUgdXNlci4gIFRoZSBw b3N0ZGVwcyBhbHJlYWR5IGNvbWUgYWZ0ZXIgdGhlCisrCSAgICMgdXNlciBzdXBwbGllZCBsaWJz IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyB0aGVtLgorKwkgICBpZiB0ZXN0IC16ICIk X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKSI7IHRoZW4KKysJICAgICBf TFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPSIke3ByZXZ9JHtwfSIKKysJ ICAgZWxzZQorKwkgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9 IiR7X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0gJHtwcmV2fSR7cH0i CisrCSAgIGZpCisrCSAgIDs7CisrCSAjIFRoZSAiLWwiIGNhc2Ugd291bGQgbmV2ZXIgY29tZSBi ZWZvcmUgdGhlIG9iamVjdCBiZWluZworKwkgIyBsaW5rZWQsIHNvIGRvbid0IGJvdGhlciBoYW5k bGluZyB0aGlzIGNhc2UuCisrCSBlc2FjCisrICAgICAgIGVsc2UKKysJIGlmIHRlc3QgLXogIiRf TFRfVEFHVkFSKHBvc3RkZXBzLCAkMSkiOyB0aGVuCisrCSAgIF9MVF9UQUdWQVIocG9zdGRlcHMs ICQxKT0iJHtwcmV2fSR7cH0iCisrCSBlbHNlCisrCSAgIF9MVF9UQUdWQVIocG9zdGRlcHMsICQx KT0iJHtfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSl9ICR7cHJldn0ke3B9IgorKwkgZmkKKysgICAg ICAgZmkKKysgICAgICAgOzsKKysKKysgICAgKi4kb2JqZXh0KQorKyAgICAgICAjIFRoaXMgYXNz dW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVjdCBmaWxlIG9ubHkgc2hvd3MgdXAKKysgICAgICAgIyBv bmNlIGluIHRoZSBjb21waWxlciBvdXRwdXQuCisrICAgICAgIGlmIHRlc3QgIiRwIiA9ICJjb25m dGVzdC4kb2JqZXh0IjsgdGhlbgorKwkgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT15ZXMKKysJ IGNvbnRpbnVlCisrICAgICAgIGZpCisrCisrICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmpl Y3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCisrCSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwcmVk ZXBfb2JqZWN0cywgJDEpIjsgdGhlbgorKwkgICBfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAk MSk9IiRwIgorKwkgZWxzZQorKwkgICBfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9IiRf TFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSkgJHAiCisrCSBmaQorKyAgICAgICBlbHNlCisr CSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKSI7IHRoZW4KKysJ ICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0iJHAiCisrCSBlbHNlCisrCSAgIF9M VF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9IiRfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0 cywgJDEpICRwIgorKwkgZmkKKysgICAgICAgZmkKKysgICAgICAgOzsKKysKKysgICAgKikgOzsg IyBJZ25vcmUgdGhlIHJlc3QuCisrCisrICAgIGVzYWMKKysgIGRvbmUKKysKKysgICMgQ2xlYW4g dXAuCisrICBybSAtZiBhLm91dCBhLmV4ZQorK2Vsc2UKKysgIGVjaG8gImxpYnRvb2wubTQ6IGVy cm9yOiBwcm9ibGVtIGNvbXBpbGluZyAkMSB0ZXN0IHByb2dyYW0iCisrZmkKKysKKyskUk0gLWYg Y29uZmVzdC4kb2JqZXh0CisrCisrIyBQT1JUTUU6IG92ZXJyaWRlIGFib3ZlIHRlc3Qgb24gc3lz dGVtcyB3aGVyZSBpdCBpcyBicm9rZW4KKyttNF9pZihbJDFdLCBbQ1hYXSwKKytbY2FzZSAkaG9z dF9vcyBpbgorK2ludGVyaXhbWzMtOV1dKikKKysgICMgSW50ZXJpeCAzLjUgaW5zdGFsbHMgY29t cGxldGVseSBob3NlZCAubGEgZmlsZXMgZm9yIEMrKywgc28gcmF0aGVyIHRoYW4KKysgICMgaGFj ayBhbGwgYXJvdW5kIGl0LCBsZXQncyBqdXN0IHRydXN0ICJnKysiIHRvIERUUlQuCisrICBfTFRf VEFHVkFSKHByZWRlcF9vYmplY3RzLCQxKT0KKysgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3Rz LCQxKT0KKysgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPQorKyAgOzsKKysKKytsaW51eCopCisr ICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysgICpTdW5cIEMqKQorKyAgICAjIFN1 biBDKysgNS45CisrCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9y dDQgbGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnku IEF2b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUg bGliQ3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAg IGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIq KQorKyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMK KysKKysgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysg ICAgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVu JworKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCisrICBDQyopCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNv bmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRo ZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENY WEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVu ZHMgb24gaXQuCisrICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJy YXJ5PXN0bHBvcnQ0ICIqKQorKyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAg IDs7CisrICAgIGVzYWMKKysKKysgICAgIyBBZGRpbmcgdGhpcyByZXF1aXJlcyBhIGtub3duLWdv b2Qgc2V0dXAgb2Ygc2hhcmVkIGxpYnJhcmllcyBmb3IKKysgICAgIyBTdW4gY29tcGlsZXIgdmVy c2lvbnMgYmVmb3JlIDUuNiwgZWxzZSBQSUMgb2JqZWN0cyBmcm9tIGFuIG9sZAorKyAgICAjIGFy Y2hpdmUgd2lsbCBiZSBsaW5rZWQgaW50byB0aGUgb3V0cHV0LCBsZWFkaW5nIHRvIHN1YnRsZSBi dWdzLgorKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgor KyAgICAgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNy dW4nCisrICAgIGZpCisrICAgIDs7CisrICBlc2FjCisrICA7OworK2VzYWMKKytdKQorKworK2Nh c2UgIiAkX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpICIgaW4KKysqIiAtbGMgIiopIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubyA7OworK2VzYWMKKysgX0xUX1RBR1ZBUihj b21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT0KKytpZiB0ZXN0IC1uICIke19MVF9UQUdWQVIo Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9IjsgdGhlbgorKyBfTFRfVEFHVkFSKGNvbXBp bGVyX2xpYl9zZWFyY2hfZGlycywgJDEpPWBlY2hvICIgJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aCwgJDEpfSIgfCAke1NFRH0gLWUgJ3MhIC1MISAhZycgLWUgJ3MhXiAhISdg CisrZmkKKytfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc10sIFsxXSwK KysgICAgW1RoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3Jl YXRpbmcgYSBzaGFyZWQgbGlicmFyeV0pCisrX0xUX1RBR0RFQ0woW10sIFtwcmVkZXBfb2JqZWN0 c10sIFsxXSwKKysgICAgW0RlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRo ZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0bworKyAgICBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeV0p CisrX0xUX1RBR0RFQ0woW10sIFtwb3N0ZGVwX29iamVjdHNdLCBbMV0pCisrX0xUX1RBR0RFQ0wo W10sIFtwcmVkZXBzXSwgWzFdKQorK19MVF9UQUdERUNMKFtdLCBbcG9zdGRlcHNdLCBbMV0pCisr X0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhdLCBbMV0sCisrICAgIFtU aGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdo ZW4gbGlua2luZworKyAgICBhIHNoYXJlZCBsaWJyYXJ5XSkKKytdKSMgX0xUX1NZU19ISURERU5f TElCREVQUworKworKworKyMgX0xUX1BST0dfRjc3CisrIyAtLS0tLS0tLS0tLS0KKysjIFNpbmNl IEFDX1BST0dfRjc3IGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1cm5zIHRoZSBlbXB0eSBzdHJp bmcKKysjIGlmIHRoZXJlIGlzIG5vIGZvcnRyYW4gY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2 ZXJzaW9uIGhlcmUuCisrbTRfZGVmdW4oW19MVF9QUk9HX0Y3N10sCisrWworK3B1c2hkZWYoW0FD X01TR19FUlJPUl0sIFtfbHRfZGlzYWJsZV9GNzc9eWVzXSkKKytBQ19QUk9HX0Y3NworK2lmIHRl c3QgLXogIiRGNzciIHx8IHRlc3QgIlgkRjc3IiA9ICJYbm8iOyB0aGVuCisrICBfbHRfZGlzYWJs ZV9GNzc9eWVzCisrZmkKKytwb3BkZWYoW0FDX01TR19FUlJPUl0pCisrXSkjIF9MVF9QUk9HX0Y3 NworKworK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNf REVGVU4oW19MVF9QUk9HX0Y3N10sIFtdKQorKworKworKyMgX0xUX0xBTkdfRjc3X0NPTkZJRyhb VEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUg Y29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgRm9ydHJhbiA3NyBjb21waWxlciBhcmUKKysj IHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2Vk IGJ5IF9MVF9DT05GSUcKKysjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRv IGBsaWJ0b29sJy4KKyttNF9kZWZ1bihbX0xUX0xBTkdfRjc3X0NPTkZJR10sCisrW0FDX1JFUVVJ UkUoW19MVF9QUk9HX0Y3N10pZG5sCisrQUNfTEFOR19QVVNIKEZvcnRyYW4gNzcpCisrCisrX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAk MSk9bm8KKytfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5v CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAk MSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCisrX0xUX1RBR1ZB Uihpbmhlcml0X3JwYXRoLCAkMSk9bm8KKytfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9Cisr X0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGxpbmtfYWxs X2RlcGxpYnMsICQxKT11bmtub3duCisrX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9 JG9sZF9hcmNoaXZlX2NtZHMKKytfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9Cisr X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoZW5h YmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisrCisrIyBTb3VyY2UgZmls ZSBleHRlbnNpb24gZm9yIGY3NyB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWYKKysKKysjIE9iamVj dCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgZjc3IHRlc3Qgc291cmNlcy4KKytvYmpleHQ9 bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgTm8gc2Vuc2UgaW4gcnVu bmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKysjIHRo ZSBGNzcgY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVzIChsaWtlIGVuYWJs ZV9zaGFyZWQpCisrIyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBp bGVycyBvbiB0aGlzIHBsYXRmb3JtLAorKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRp bmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgorK2lmIHRlc3QgIiRfbHRf ZGlzYWJsZV9GNzciICE9IHllczsgdGhlbgorKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxl IGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAorKyAgICAg IHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAgICAgIGVuZAorKyIKKysKKysgICMgQ29k ZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrICBsdF9zaW1wbGVfbGlua190ZXN0 X2NvZGU9IlwKKysgICAgICBwcm9ncmFtIHQKKysgICAgICBlbmQKKysiCisrCisrICAjIGx0bWFp biBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRD QyBpcyBzZXQuCisrICBfTFRfVEFHX0NPTVBJTEVSCisrCisrICAjIHNhdmUgd2FybmluZ3MvYm9p bGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorKyAgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRF CisrICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrICAjIEFsbG93IENDIHRvIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorKyAgbHRfc2F2ZV9DQz0iJENDIgorKyAgbHRfc2F2 ZV9HQ0M9JEdDQworKyAgQ0M9JHtGNzctImY3NyJ9CisrICBjb21waWxlcj0kQ0MKKysgIF9MVF9U QUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKysgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkK KysgIEdDQz0kRzc3CisrICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICAgIEFDX01T R19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKKysgICAg QUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQorKworKyAgICBBQ19NU0dfQ0hFQ0tJ TkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisrICAgIHRlc3QgIiRjYW5f YnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworKworKyAgICAjIE9uIEFJ WCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFt ZXNwYWNlLCBhbmQKKysgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorKyAgICBjYXNlICRo b3N0X29zIGluCisrICAgICAgYWl4MyopCisrICAgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIg PSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7 IHRoZW4KKysgICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwk bGliIgorKyAgICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCisrICAgICAg ICBmaQorKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1dKikKKysJaWYgdGVzdCAiJGhvc3Rf Y3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhl bgorKwkgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisr CWZpCisrICAgICAgICA7OworKyAgICBlc2FjCisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVf c2hhcmVkXSkKKysKKysgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRp YyBsaWJyYXJpZXNdKQorKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBl bmFibGVfc3RhdGljIGlzIHllcy4KKysgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8 IGVuYWJsZV9zdGF0aWM9eWVzCisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkK KysKKysgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJEc3NyIKKysgICAgX0xUX1RBR1ZBUihMRCwg JDEpPSIkTEQiCisrCisrICAgICMjIENBVkVBVCBFTVBUT1I6CisrICAgICMjIFRoZXJlIGlzIG5v IGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdl CisrICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5k IHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisrICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgor KyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQorKyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQorKyAg ICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgICAgX0xUX0xJTktFUl9TSExJQlMoJDEp CisrICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrICAgIF9MVF9MSU5LRVJfSEFSRENP REVfTElCUEFUSCgkMSkKKysKKysgICAgX0xUX0NPTkZJRygkMSkKKysgIGZpICMgdGVzdCAtbiAi JGNvbXBpbGVyIgorKworKyAgR0NDPSRsdF9zYXZlX0dDQworKyAgQ0M9IiRsdF9zYXZlX0NDIgor K2ZpICMgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3NyIgIT0geWVzCisrCisrQUNfTEFOR19QT1AKKytd KSMgX0xUX0xBTkdfRjc3X0NPTkZJRworKworKworKyMgX0xUX1BST0dfRkMKKysjIC0tLS0tLS0t LS0tCisrIyBTaW5jZSBBQ19QUk9HX0ZDIGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1cm5zIHRo ZSBlbXB0eSBzdHJpbmcKKysjIGlmIHRoZXJlIGlzIG5vIGZvcnRyYW4gY29tcGlsZXIsIHdlIGhh dmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCisrbTRfZGVmdW4oW19MVF9QUk9HX0ZDXSwKKytbCisr cHVzaGRlZihbQUNfTVNHX0VSUk9SXSwgW19sdF9kaXNhYmxlX0ZDPXllc10pCisrQUNfUFJPR19G QworK2lmIHRlc3QgLXogIiRGQyIgfHwgdGVzdCAiWCRGQyIgPSAiWG5vIjsgdGhlbgorKyAgX2x0 X2Rpc2FibGVfRkM9eWVzCisrZmkKKytwb3BkZWYoW0FDX01TR19FUlJPUl0pCisrXSkjIF9MVF9Q Uk9HX0ZDCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2Ru bCBBQ19ERUZVTihbX0xUX1BST0dfRkNdLCBbXSkKKysKKysKKysjIF9MVF9MQU5HX0ZDX0NPTkZJ RyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEVuc3VyZSB0aGF0IHRo ZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBGb3J0cmFuIGNvbXBpbGVyIGFyZQorKyMg c3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQg YnkgX0xUX0NPTkZJRworKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8g YGxpYnRvb2wnLgorK200X2RlZnVuKFtfTFRfTEFOR19GQ19DT05GSUddLAorK1tBQ19SRVFVSVJF KFtfTFRfUFJPR19GQ10pZG5sCisrQUNfTEFOR19QVVNIKEZvcnRyYW4pCisrCisrX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrX0xUX1RBR1ZBUihhbGxvd191bmRlZmlu ZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8K KytfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAk MSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCisrX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8K KytfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCisrX0xUX1RBR1ZBUihpbmhl cml0X3JwYXRoLCAkMSk9bm8KKytfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9CisrX0xUX1RB R1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxp YnMsICQxKT11bmtub3duCisrX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9h cmNoaXZlX2NtZHMKKytfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xUX1RB R1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoZW5hYmxlX3No YXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisrCisrIyBTb3VyY2UgZmlsZSBleHRl bnNpb24gZm9yIGZjIHRlc3Qgc291cmNlcy4KKythY19leHQ9JHthY19mY19zcmNleHQtZn0KKysK KysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgZmMgdGVzdCBzb3VyY2VzLgor K29iamV4dD1vCisrX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisrCisrIyBObyBzZW5z ZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhh dAorKyMgdGhlIEZDIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlr ZSBlbmFibGVfc2hhcmVkKQorKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFs bCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKKysjIGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBi eSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KKytpZiB0ZXN0 ICIkX2x0X2Rpc2FibGVfRkMiICE9IHllczsgdGhlbgorKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4g c2ltcGxlIGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAor KyAgICAgIHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAgICAgIGVuZAorKyIKKysKKysg ICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrICBsdF9zaW1wbGVfbGlu a190ZXN0X2NvZGU9IlwKKysgICAgICBwcm9ncmFtIHQKKysgICAgICBlbmQKKysiCisrCisrICAj IGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBz dXJlICRDQyBpcyBzZXQuCisrICBfTFRfVEFHX0NPTVBJTEVSCisrCisrICAjIHNhdmUgd2Fybmlu Z3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorKyAgX0xUX0NPTVBJTEVSX0JPSUxF UlBMQVRFCisrICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrICAjIEFsbG93IENDIHRvIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorKyAgbHRfc2F2ZV9DQz0iJENDIgorKyAg bHRfc2F2ZV9HQ0M9JEdDQworKyAgQ0M9JHtGQy0iZjk1In0KKysgIGNvbXBpbGVyPSRDQworKyAg R0NDPSRhY19jdl9mY19jb21waWxlcl9nbnUKKysKKysgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQx KT0kQ0MKKysgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysKKysgIGlmIHRlc3QgLW4g IiRjb21waWxlciI7IHRoZW4KKysgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorKyAgICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1aWxkX3No YXJlZF0pCisrCisrICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzaGFyZWQg bGlicmFyaWVzXSkKKysgICAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFi bGVfc2hhcmVkPW5vCisrCisrICAgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0 aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorKyAgICAjIGFyZSBhbGwg YnVpbHQgZnJvbSBQSUMuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgzKikKKysg ICAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisr ICAgICAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgICAgICAgICBhcmNoaXZlX2Nt ZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCisrICAgICAgICAgIHBvc3RpbnN0YWxs X2NtZHM9JyRSQU5MSUIgJGxpYicKKysgICAgICAgIGZpCisrICAgICAgICA7OworKyAgICAgIGFp eFtbNC05XV0qKQorKwlpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91 c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCisrCSAgdGVzdCAiJGVuYWJsZV9zaGFyZWQi ID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysJZmkKKysgICAgICAgIDs7CisrICAgIGVzYWMK KysgICAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zaGFyZWRdKQorKworKyAgICBBQ19NU0dfQ0hF Q0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCisrICAgICMgTWFrZSBz dXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgorKyAgICB0 ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKKysgICAgQUNf TVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQorKworKyAgICBfTFRfVEFHVkFSKEdDQywgJDEp PSIkYWNfY3ZfZmNfY29tcGlsZXJfZ251IgorKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIK KysKKysgICAgIyMgQ0FWRUFUIEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxh dGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysgICAgIyMg dGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlv dSBrbm93IGV4YWN0bHkKKysgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisrICAgIF9MVF9T WVNfSElEREVOX0xJQkRFUFMoJDEpCisrICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisrICAgIF9M VF9DT01QSUxFUl9DX08oJDEpCisrICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorKyAg ICBfTFRfTElOS0VSX1NITElCUygkMSkKKysgICAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkK KysgICAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgICBfTFRfQ09ORklH KCQxKQorKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCisrCisrICBHQ0M9JGx0X3NhdmVfR0ND CisrICBDQz0iJGx0X3NhdmVfQ0MiCisrZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHll cworKworK0FDX0xBTkdfUE9QCisrXSkjIF9MVF9MQU5HX0ZDX0NPTkZJRworKworKworKyMgX0xU X0xBTkdfR0NKX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBHTlUgSmF2 YSBDb21waWxlciBjb21waWxlcgorKyMgYXJlIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJp YWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKKysjIHRvIHdyaXRlIHRo ZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KKyttNF9kZWZ1bihbX0xUX0xB TkdfR0NKX0NPTkZJR10sCisrW0FDX1JFUVVJUkUoW0xUX1BST0dfR0NKXSlkbmwKKytBQ19MQU5H X1NBVkUKKysKKysjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgSmF2YSB0ZXN0IHNvdXJjZXMu CisrYWNfZXh0PWphdmEKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQg SmF2YSB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRv YmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9IgorKworKyMgQ29kZSB0byBi ZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdw dWJsaWMgY2xhc3MgY29uZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbW11d IGFyZ3YpIHt9OyB9JworKworKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25m aWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKytfTFRfVEFHX0NPTVBJTEVSCisr CisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKytfTFRf Q09NUElMRVJfQk9JTEVSUExBVEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrIyBBbGxv dyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZlX0NDPSIk Q0MiCisrbHRfc2F2ZV9HQ0M9JEdDQworK0dDQz15ZXMKKytDQz0ke0dDSi0iZ2NqIn0KKytjb21w aWxlcj0kQ0MKKytfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisrX0xUX1RBR1ZBUihMRCwg JDEpPSIkTEQiCisrX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorKworKyMgR0NKIGRpZCBu b3QgZXhpc3QgYXQgdGhlIHRpbWUgR0NDIGRpZG4ndCBpbXBsaWNpdGx5IGxpbmsgbGliYyBpbi4K KytfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysKKytfTFRfVEFHVkFS KG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcworKworKyMjIENBVkVBVCBF TVBUT1I6CisrIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2lu ZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndp c2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorKyMjIHdoYXQgeW91 IGFyZSBkb2luZy4uLgorK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKysgIF9MVF9DT01Q SUxFUl9OT19SVFRJKCQxKQorKyAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKysgIF9MVF9DT01QSUxF Ul9DX08oJDEpCisrICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgIF9MVF9MSU5LRVJf U0hMSUJTKCQxKQorKyAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgX0xU X0NPTkZJRygkMSkKKytmaQorKworK0FDX0xBTkdfUkVTVE9SRQorKworK0dDQz0kbHRfc2F2ZV9H Q0MKKytDQz0iJGx0X3NhdmVfQ0MiCisrXSkjIF9MVF9MQU5HX0dDSl9DT05GSUcKKysKKysKKysj IF9MVF9MQU5HX1JDX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgdGhlIFdpbmRv d3MgcmVzb3VyY2UgY29tcGlsZXIKKysjIGFyZSBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFy aWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCisrIyB0byB3cml0ZSB0 aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9M QU5HX1JDX0NPTkZJR10sCisrW0FDX1JFUVVJUkUoW0xUX1BST0dfUkNdKWRubAorK0FDX0xBTkdf U0FWRQorKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBSQyB0ZXN0IHNvdXJjZXMuCisr YWNfZXh0PXJjCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIFJDIHRl c3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAor KworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2ltcGxl X2NvbXBpbGVfdGVzdF9jb2RlPSdzYW1wbGUgTUVOVSB7IE1FTlVJVEVNICImU291cCIsIDEwMCwg Q0hFQ0tFRCB9JworKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisr bHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIgor KworKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBt YWtlIHN1cmUgJENDIGlzIHNldC4KKytfTFRfVEFHX0NPTVBJTEVSCisrCisrIyBzYXZlIHdhcm5p bmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKytfTFRfQ09NUElMRVJfQk9JTEVS UExBVEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZlX0NDPSIkQ0MiCisrbHRfc2F2ZV9H Q0M9JEdDQworK0dDQz0KKytDQz0ke1JDLSJ3aW5kcmVzIn0KKytjb21waWxlcj0kQ0MKKytfTFRf VEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisrX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQor K19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMKKysKKytpZiB0ZXN0 IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICA6CisrICBfTFRfQ09ORklHKCQxKQorK2ZpCisrCisr R0NDPSRsdF9zYXZlX0dDQworK0FDX0xBTkdfUkVTVE9SRQorK0NDPSIkbHRfc2F2ZV9DQyIKKytd KSMgX0xUX0xBTkdfUkNfQ09ORklHCisrCisrCisrIyBMVF9QUk9HX0dDSgorKyMgLS0tLS0tLS0t LS0KKytBQ19ERUZVTihbTFRfUFJPR19HQ0pdLAorK1ttNF9pZmRlZihbQUNfUFJPR19HQ0pdLCBb QUNfUFJPR19HQ0pdLAorKyAgW200X2lmZGVmKFtBXVtNX1BST0dfR0NKXSwgW0FdW01fUFJPR19H Q0pdLAorKyAgICBbQUNfQ0hFQ0tfVE9PTChHQ0osIGdjaiwpCisrICAgICAgdGVzdCAieCR7R0NK RkxBR1Mrc2V0fSIgPSB4c2V0IHx8IEdDSkZMQUdTPSItZyAtTzIiCisrICAgICAgQUNfU1VCU1Qo R0NKRkxBR1MpXSldKVtdZG5sCisrXSkKKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtMVF9B Q19QUk9HX0dDSl0sIFtMVF9QUk9HX0dDSl0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBj b21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19HQ0pdLCBbXSkKKysKKysK KysjIExUX1BST0dfUkMKKysjIC0tLS0tLS0tLS0KKytBQ19ERUZVTihbTFRfUFJPR19SQ10sCisr W0FDX0NIRUNLX1RPT0woUkMsIHdpbmRyZXMsKQorK10pCisrCisrIyBPbGQgbmFtZToKKytBVV9B TElBUyhbTFRfQUNfUFJPR19SQ10sIFtMVF9QUk9HX1JDXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFj a3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9HX1JDXSwgW10p CisrCisrCisrIyBfTFRfREVDTF9FR1JFUAorKyMgLS0tLS0tLS0tLS0tLS0KKysjIElmIHdlIGRv bid0IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9jb25mIHRvIGNob29zZSB0aGUgYmVzdCBncmVwCisr IyBhdmFpbGFibGUsIGNob29zZSB0aGUgb25lIGZpcnN0IGluIHRoZSB1c2VyJ3MgUEFUSC4KKytt NF9kZWZ1bihbX0xUX0RFQ0xfRUdSRVBdLAorK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0VHUkVQXSlk bmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0ZHUkVQXSlkbmwKKyt0ZXN0IC16ICIkR1JFUCIgJiYg R1JFUD1ncmVwCisrX0xUX0RFQ0woW10sIFtHUkVQXSwgWzFdLCBbQSBncmVwIHByb2dyYW0gdGhh dCBoYW5kbGVzIGxvbmcgbGluZXNdKQorK19MVF9ERUNMKFtdLCBbRUdSRVBdLCBbMV0sIFtBbiBF UkUgbWF0Y2hlcl0pCisrX0xUX0RFQ0woW10sIFtGR1JFUF0sIFsxXSwgW0EgbGl0ZXJhbCBzdHJp bmcgbWF0Y2hlcl0pCisrZG5sIE5vbi1ibGVlZGluZy1lZGdlIGF1dG9jb25mIGRvZXNuJ3Qgc3Vi c3QgR1JFUCwgc28gZG8gaXQgaGVyZSB0b28KKytBQ19TVUJTVChbR1JFUF0pCisrXSkKKysKKysK KysjIF9MVF9ERUNMX09CSkRVTVAKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBJZiB3ZSBkb24ndCBo YXZlIGEgbmV3IGVub3VnaCBBdXRvY29uZiB0byBjaG9vc2UgdGhlIGJlc3Qgb2JqZHVtcAorKyMg YXZhaWxhYmxlLCBjaG9vc2UgdGhlIG9uZSBmaXJzdCBpbiB0aGUgdXNlcidzIFBBVEguCisrbTRf ZGVmdW4oW19MVF9ERUNMX09CSkRVTVBdLAorK1tBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1 bXAsIGZhbHNlKQorK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKKytfTFRf REVDTChbXSwgW09CSkRVTVBdLCBbMV0sIFtBbiBvYmplY3Qgc3ltYm9sIGR1bXBlcl0pCisrQUNf U1VCU1QoW09CSkRVTVBdKQorK10pCisrCisrCisrIyBfTFRfREVDTF9TRUQKKysjIC0tLS0tLS0t LS0tLQorKyMgQ2hlY2sgZm9yIGEgZnVsbHktZnVuY3Rpb25hbCBzZWQgcHJvZ3JhbSwgdGhhdCB0 cnVuY2F0ZXMKKysjIGFzIGZldyBjaGFyYWN0ZXJzIGFzIHBvc3NpYmxlLiAgUHJlZmVyIEdOVSBz ZWQgaWYgZm91bmQuCisrbTRfZGVmdW4oW19MVF9ERUNMX1NFRF0sCisrW0FDX1BST0dfU0VECisr dGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyIKKytfTFRf REVDTChbXSwgW1NFRF0sIFsxXSwgW0Egc2VkIHByb2dyYW0gdGhhdCBkb2VzIG5vdCB0cnVuY2F0 ZSBvdXRwdXRdKQorK19MVF9ERUNMKFtdLCBbWHNlZF0sIFsiXCRTRUQgLWUgMXMvXlgvLyJdLAor KyAgICBbU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNo bygxKSBvcHRpb25zIGxpa2UgLW5dKQorK10pIyBfTFRfREVDTF9TRUQKKysKKyttNF9pZm5kZWYo W0FDX1BST0dfU0VEXSwgWworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgTk9URTogVGhpcyBtYWNybyBoYXMgYmVlbiBzdWJt aXR0ZWQgZm9yIGluY2x1c2lvbiBpbnRvICAgIworKyMgIEdOVSBBdXRvY29uZiBhcyBBQ19QUk9H X1NFRC4gIFdoZW4gaXQgaXMgYXZhaWxhYmxlIGluICAgIworKyMgIGEgcmVsZWFzZWQgdmVyc2lv biBvZiBBdXRvY29uZiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgICAgIworKyMgIG1hY3JvIGFuZCB1 c2UgaXQgaW5zdGVhZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKwor K200X2RlZnVuKFtBQ19QUk9HX1NFRF0sCisrW0FDX01TR19DSEVDS0lORyhbZm9yIGEgc2VkIHRo YXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0XSkKKytBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9T RUQsCisrWyMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3Igc2VkIGFu ZCBnc2VkLgorKyMgVGhlbiB1c2UgdGhhdCBsaXN0IG9mIHNlZCdzIGFzIG9uZXMgdG8gdGVzdCBm b3IgdHJ1bmNhdGlvbi4KKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisr Zm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGx0X2FjX3Byb2cgaW4gc2VkIGdzZWQ7IGRv CisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bworKyAgICAgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhl Y19leHQiOyB0aGVuCisrICAgICAgICBsdF9hY19zZWRfbGlzdD0iJGx0X2FjX3NlZF9saXN0ICRh c19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiCisrICAgICAgZmkKKysgICAgZG9uZQorKyAg ZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrbHRfYWNfbWF4PTAKKytsdF9hY19jb3Vu dD0wCisrIyBBZGQgL3Vzci94cGc0L2Jpbi9zZWQgYXMgaXQgaXMgdHlwaWNhbGx5IGZvdW5kIG9u IFNvbGFyaXMKKysjIGFsb25nIHdpdGggL2Jpbi9zZWQgdGhhdCB0cnVuY2F0ZXMgb3V0cHV0Lgor K2ZvciBsdF9hY19zZWQgaW4gJGx0X2FjX3NlZF9saXN0IC91c3IveHBnNC9iaW4vc2VkOyBkbwor KyAgdGVzdCAhIC1mICRsdF9hY19zZWQgJiYgY29udGludWUKKysgIGNhdCAvZGV2L251bGwgPiBj b25mdGVzdC5pbgorKyAgbHRfYWNfY291bnQ9MAorKyAgZWNobyAkRUNIT19OICIwMTIzNDU2Nzg5 JEVDSE9fQyIgPmNvbmZ0ZXN0LmluCisrICAjIENoZWNrIGZvciBHTlUgc2VkIGFuZCBzZWxlY3Qg aXQgaWYgaXQgaXMgZm91bmQuCisrICBpZiAiJGx0X2FjX3NlZCIgLS12ZXJzaW9uIDI+JjEgPCAv ZGV2L251bGwgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgIGx0X2N2X3BhdGhf U0VEPSRsdF9hY19zZWQKKysgICAgYnJlYWsKKysgIGZpCisrICB3aGlsZSB0cnVlOyBkbworKyAg ICBjYXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0ZXN0LnRtcAorKyAgICBtdiBjb25m dGVzdC50bXAgY29uZnRlc3QuaW4KKysgICAgY3AgY29uZnRlc3QuaW4gY29uZnRlc3QubmwKKysg ICAgZWNobyA+PmNvbmZ0ZXN0Lm5sCisrICAgICRsdF9hY19zZWQgLWUgJ3MvYSQvLycgPCBjb25m dGVzdC5ubCA+Y29uZnRlc3Qub3V0IHx8IGJyZWFrCisrICAgIGNtcCAtcyBjb25mdGVzdC5vdXQg Y29uZnRlc3QubmwgfHwgYnJlYWsKKysgICAgIyAxMDAwMCBjaGFycyBhcyBpbnB1dCBzZWVtcyBt b3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAxMCAmJiBicmVhawor KyAgICBsdF9hY19jb3VudD1gZXhwciAkbHRfYWNfY291bnQgKyAxYAorKyAgICBpZiB0ZXN0ICRs dF9hY19jb3VudCAtZ3QgJGx0X2FjX21heDsgdGhlbgorKyAgICAgIGx0X2FjX21heD0kbHRfYWNf Y291bnQKKysgICAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNfc2VkCisrICAgIGZpCisrICBkb25l CisrZG9uZQorK10pCisrU0VEPSRsdF9jdl9wYXRoX1NFRAorK0FDX1NVQlNUKFtTRURdKQorK0FD X01TR19SRVNVTFQoWyRTRURdKQorK10pI0FDX1BST0dfU0VECisrXSkjbTRfaWZuZGVmCisrCisr IyBPbGQgbmFtZToKKytBVV9BTElBUyhbTFRfQUNfUFJPR19TRURdLCBbQUNfUFJPR19TRURdKQor K2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4o W0xUX0FDX1BST0dfU0VEXSwgW10pCisrCisrCisrIyBfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVMK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRmluZCBvdXQgd2hldGhlciB0aGUgc2hl bGwgaXMgQm91cm5lIG9yIFhTSSBjb21wYXRpYmxlLAorKyMgb3IgaGFzIHNvbWUgb3RoZXIgdXNl ZnVsIGZlYXR1cmVzLgorK200X2RlZnVuKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdLAorK1tB Q19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNv bnN0cnVjdHNdKQorKyMgVHJ5IHNvbWUgWFNJIGZlYXR1cmVzCisreHNpX3NoZWxsPW5vCisrKCBf bHRfZHVtbXk9ImEvYi9jIgorKyAgdGVzdCAiJHtfbHRfZHVtbXkjIyovfSwke19sdF9kdW1teSUv Kn0sIiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0sIFwKKysgICAgICA9IGMsYS9iLCwgXAorKyAg ICAmJiBldmFsICd0ZXN0ICQoKCAxICsgMSApKSAtZXEgMiBcCisrICAgICYmIHRlc3QgIiR7I19s dF9kdW1teX0iIC1lcSA1JyApID4vZGV2L251bGwgMj4mMSBcCisrICAmJiB4c2lfc2hlbGw9eWVz CisrQUNfTVNHX1JFU1VMVChbJHhzaV9zaGVsbF0pCisrX0xUX0NPTkZJR19MSUJUT09MX0lOSVQo W3hzaV9zaGVsbD0nJHhzaV9zaGVsbCddKQorKworK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0 aGUgc2hlbGwgdW5kZXJzdGFuZHMgIis9Il0pCisrbHRfc2hlbGxfYXBwZW5kPW5vCisrKCBmb289 YmFyOyBzZXQgZm9vIGJhejsgZXZhbCAiJFsxXSs9XCRbMl0iICYmIHRlc3QgIiRmb28iID0gYmFy YmF6ICkgXAorKyAgICA+L2Rldi9udWxsIDI+JjEgXAorKyAgJiYgbHRfc2hlbGxfYXBwZW5kPXll cworK0FDX01TR19SRVNVTFQoWyRsdF9zaGVsbF9hcHBlbmRdKQorK19MVF9DT05GSUdfTElCVE9P TF9JTklUKFtsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBlbmQnXSkKKysKKytpZiAoIChN QUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGx0 X3Vuc2V0PXVuc2V0CisrZWxzZQorKyAgbHRfdW5zZXQ9ZmFsc2UKKytmaQorK19MVF9ERUNMKFtd LCBbbHRfdW5zZXRdLCBbMF0sIFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAidW5zZXQi XSlkbmwKKysKKysjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2FzZSBgZWNobyBYfHRyIFggJ1wx MDEnYCBpbgorKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAgICAjIFxuIGlzIG5vdCBpbnRl cnByZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCisrICBsdF9TUDJOTD0n dHIgXDA0MCBcMDEyJworKyAgbHRfTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJworKyAgOzsK KysgKikgIyBFQkNESUMgYmFzZWQgc3lzdGVtCisrICBsdF9TUDJOTD0ndHIgXDEwMCBcbicKKysg IGx0X05MMlNQPSd0ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytlc2FjCisrX0xUX0RFQ0woW1NQ Mk5MXSwgW2x0X1NQMk5MXSwgWzFdLCBbdHVybiBzcGFjZXMgaW50byBuZXdsaW5lc10pZG5sCisr X0xUX0RFQ0woW05MMlNQXSwgW2x0X05MMlNQXSwgWzFdLCBbdHVybiBuZXdsaW5lcyBpbnRvIHNw YWNlc10pZG5sCisrXSkjIF9MVF9DSEVDS19TSEVMTF9GRUFUVVJFUworKworKworKyMgX0xUX1BS T0dfWFNJX1NIRUxMRk5TCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEJvdXJuZSBhbmQg WFNJIGNvbXBhdGlibGUgdmFyaWFudHMgb2Ygc29tZSB1c2VmdWwgc2hlbGwgZnVuY3Rpb25zLgor K200X2RlZnVuKFtfTFRfUFJPR19YU0lfU0hFTExGTlNdLAorK1tjYXNlICR4c2lfc2hlbGwgaW4K KysgIHllcykKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNf ZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIENvbXB1dGUgdGhlIGRp cm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisr IyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrZnVuY19kaXJu YW1lICgpCisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3Vs dD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIg OzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jhc2VuYW1l ICgpCisreworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgorK30KKysKKysjIGZ1 bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Cisr IyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5j dGlvbgorKyMgY2FsbDoKKysjICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklM RS4gIElmIG5vbmVtcHR5LAorKyMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0 LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAorKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VN RU5ULgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVz dWx0IgorKyMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgorKyMgICAgICAg ICAgICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyMgSW1wbGVt ZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQorKyMg YW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8K KysjIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxp dHkgaGVyZS4KKytmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCisreworKyAgY2FzZSAkezF9 IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAg ICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKysgIGZ1bmNfYmFz ZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKKyt9CisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXgg c3VmZml4IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMg UFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVj aWFsCisrIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5 IGNvbnRhaW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9u bHkgYSBkb3QpLgorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAgIyBwZGtzaCA1LjIuMTQgZG9l cyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQorKyAgIyBwb3Np dGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZp cnN0LgorKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M30KKysgIGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9CisrICBmdW5jX3N0cmlwbmFtZV9y ZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifQorK30KKysKKysjIGZ1bmNfb3B0 X3NwbGl0CisrZnVuY19vcHRfc3BsaXQgKCkKKyt7CisrICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsx JSU9Kn0KKysgIGZ1bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19CisrfQorKworKyMgZnVuY19sbzJv IG9iamVjdAorK2Z1bmNfbG8ybyAoKQorK3sKKysgIGNhc2UgJHsxfSBpbgorKyAgICAqLmxvKSBm dW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7OworKyAgICAqKSAgICBmdW5jX2xv Mm9fcmVzdWx0PSR7MX0gOzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5jX3hmb3JtIGxpYm9iai1v ci1zb3VyY2UKKytmdW5jX3hmb3JtICgpCisreworKyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4q fS5sbworK30KKysKKysjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCisrZnVuY19hcml0 aCAoKQorK3sKKysgIGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkWypdICkpCisrfQorKworKyMgZnVu Y19sZW4gc3RyaW5nCisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorK2Z1 bmNfbGVuICgpCisreworKyAgZnVuY19sZW5fcmVzdWx0PSR7IzF9CisrfQorKworK19MVF9FT0YK KysgICAgOzsKKysgICopICMgQm91cm5lIGNvbXBhdGlibGUgZnVuY3Rpb25zLgorKyAgICBjYXQg PDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVuY19kaXJuYW1lIGZpbGUgYXBwZW5k IG5vbmRpcl9yZXBsYWNlbWVudAorKyMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYg bm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKKysjIG90aGVyd2lzZSBzZXQgcmVz dWx0IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KKytmdW5jX2Rpcm5hbWUgKCkKKyt7CisrICAjIEV4 dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKyAgZnVuY19kaXJuYW1lX3Jl c3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCisrICBpZiB0ZXN0ICJY JGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgorKyAgICBmdW5jX2Rpcm5hbWVf cmVzdWx0PSIkezN9IgorKyAgZWxzZQorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19k aXJuYW1lX3Jlc3VsdCR7Mn0iCisrICBmaQorK30KKysKKysjIGZ1bmNfYmFzZW5hbWUgZmlsZQor K2Z1bmNfYmFzZW5hbWUgKCkKKyt7CisrICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD1gJEVDSE8gIlgk ezF9IiB8ICRYc2VkIC1lICIkYmFzZW5hbWUiYAorK30KKysKKytkbmwgZnVuY19kaXJuYW1lX2Fu ZF9iYXNlbmFtZQorK2RubCBBIHBvcnRhYmxlIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBh bHJlYWR5IGRlZmluZWQgaW4gZ2VuZXJhbC5tNHNoCisrZG5sIHNvIHRoZXJlIGlzIG5vIG5lZWQg Zm9yIGl0IGhlcmUuCisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysj IHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZG SVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0 ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFk aW5nCisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorKyMg ZnVuY19zdHJpcF9zdWZmaXggcHJlZml4IG5hbWUKKytmdW5jX3N0cmlwbmFtZSAoKQorK3sKKysg IGNhc2UgJHsyfSBpbgorKyAgICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7 M30iIFwKKysgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlXFxcXCR7Mn1c JCUlImA7OworKyAgICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30iIFwK KysgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlJHsyfVwkJSUiYDs7Cisr ICBlc2FjCisrfQorKworKyMgc2VkIHNjcmlwdHM6CisrbXlfc2VkX2xvbmdfb3B0PScxcy9eXCgt W1tePV1dKlwpPS4qL1wxLztxJworK215X3NlZF9sb25nX2FyZz0nMXMvXi1bW149XV0qPS8vJwor KworKyMgZnVuY19vcHRfc3BsaXQKKytmdW5jX29wdF9zcGxpdCAoKQorK3sKKysgIGZ1bmNfb3B0 X3NwbGl0X29wdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfb3B0ImAK KysgIGZ1bmNfb3B0X3NwbGl0X2FyZz1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2Vk X2xvbmdfYXJnImAKKyt9CisrCisrIyBmdW5jX2xvMm8gb2JqZWN0CisrZnVuY19sbzJvICgpCisr eworKyAgZnVuY19sbzJvX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbG8ybyJg CisrfQorKworKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCisrZnVuY194Zm9ybSAoKQor K3sKKysgIGZ1bmNfeGZvcm1fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgJ3MvXC5b W14uXV0qJC8ubG8vJ2AKKyt9CisrCisrIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgor K2Z1bmNfYXJpdGggKCkKKyt7CisrICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJFtAXSJgCisr fQorKworKyMgZnVuY19sZW4gc3RyaW5nCisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEg aHlwaGVuLgorK2Z1bmNfbGVuICgpCisreworKyAgZnVuY19sZW5fcmVzdWx0PWBleHByICIkWzFd IiA6ICIuKiIgMj4vZGV2L251bGwgfHwgZWNobyAkbWF4X2NtZF9sZW5gCisrfQorKworK19MVF9F T0YKKytlc2FjCisrCisrY2FzZSAkbHRfc2hlbGxfYXBwZW5kIGluCisrICB5ZXMpCisrICAgIGNh dCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrCisrIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUK KysjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KKytmdW5j X2FwcGVuZCAoKQorK3sKKysgIGV2YWwgIiRbMV0rPVwkWzJdIgorK30KKytfTFRfRU9GCisrICAg IDs7CisrICAqKQorKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVu Y19hcHBlbmQgdmFyIHZhbHVlCisrIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2 YXJpYWJsZSBWQVIuCisrZnVuY19hcHBlbmQgKCkKKyt7CisrICBldmFsICIkWzFdPVwkJFsxXVwk WzJdIgorK30KKysKKytfTFRfRU9GCisrICAgIDs7CisrICBlc2FjCisrXSkKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRtYWluLnNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25m aWcvbHRtYWluLnNoCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0bWFpbi5zaAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvbHRtYWluLnNoCTIwMDktMDUtMjMgMTA6MDE6NTUuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDg0MDYgQEAKKysjIEdlbmVyYXRlZCBmcm9tIGx0bWFpbi5tNHNoLgorKworKyMgbHRt YWluLnNoIChHTlUgbGlidG9vbCkgMi4yLjYKKysjIFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tl aXQgPGdvcmRAZ251LmFpLm1pdC5lZHU+LCAxOTk2CisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgaXMgZnJlZSBz b2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlz IE5PCisrIyB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKysjIEdOVSBMaWJ0b29sIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KysjCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSwKKysjIGlmIHlvdSBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJv Z3JhbSBvciBsaWJyYXJ5IHRoYXQKKysjIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5b3Ug bWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQorKyMgc2FtZSBkaXN0cmlidXRpb24gdGVy bXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrIworKyMgR05V IExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwgYnV0CisrIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29s OyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5CisrIyBjYW4gYmUgZG93bmxv YWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbCwKKysjIG9yIG9i dGFpbmVkIGJ5IHdyaXRpbmcgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwK KysjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMw MSwgVVNBLgorKworKyMgVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiBbTU9ERS1BUkddLi4u CisrIworKyMgUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2Vy dmljZXMuCisrIworKyMgICAgIC0tY29uZmlnICAgICAgICAgICAgIHNob3cgYWxsIGNvbmZpZ3Vy YXRpb24gdmFyaWFibGVzCisrIyAgICAgLS1kZWJ1ZyAgICAgICAgICAgICAgZW5hYmxlIHZlcmJv c2Ugc2hlbGwgdHJhY2luZworKyMgLW4sIC0tZHJ5LXJ1biAgICAgICAgICAgIGRpc3BsYXkgY29t bWFuZHMgd2l0aG91dCBtb2RpZnlpbmcgYW55IGZpbGVzCisrIyAgICAgLS1mZWF0dXJlcyAgICAg ICAgICAgZGlzcGxheSBiYXNpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Cisr IyAgICAgLS1tb2RlPU1PREUgICAgICAgICAgdXNlIG9wZXJhdGlvbiBtb2RlIE1PREUKKysjICAg ICAtLXByZXNlcnZlLWR1cC1kZXBzICBkb24ndCByZW1vdmUgZHVwbGljYXRlIGRlcGVuZGVuY3kg bGlicmFyaWVzCisrIyAgICAgLS1xdWlldCwgLS1zaWxlbnQgICAgZG9uJ3QgcHJpbnQgaW5mb3Jt YXRpb25hbCBtZXNzYWdlcworKyMgICAgIC0tdGFnPVRBRyAgICAgICAgICAgIHVzZSBjb25maWd1 cmF0aW9uIHZhcmlhYmxlcyBmcm9tIHRhZyBUQUcKKysjIC12LCAtLXZlcmJvc2UgICAgICAgICAg ICBwcmludCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIChkZWZhdWx0KQorKyMgICAgIC0tdmVyc2lv biAgICAgICAgICAgIHByaW50IHZlcnNpb24gaW5mb3JtYXRpb24KKysjIC1oLCAtLWhlbHAgICAg ICAgICAgICAgICBwcmludCBzaG9ydCBvciBsb25nIGhlbHAgbWVzc2FnZQorKyMKKysjIE1PREUg bXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKysjCisrIyAgICAgICBjbGVhbiAgICAgICAg ICAgICAgcmVtb3ZlIGZpbGVzIGZyb20gdGhlIGJ1aWxkIGRpcmVjdG9yeQorKyMgICAgICAgY29t cGlsZSAgICAgICAgICAgIGNvbXBpbGUgYSBzb3VyY2UgZmlsZSBpbnRvIGEgbGlidG9vbCBvYmpl Y3QKKysjICAgICAgIGV4ZWN1dGUgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5 IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbQorKyMgICAgICAgZmluaXNoICAgICAgICAgICAgIGNv bXBsZXRlIHRoZSBpbnN0YWxsYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMKKysjICAgICAgIGlu c3RhbGwgICAgICAgICAgICBpbnN0YWxsIGxpYnJhcmllcyBvciBleGVjdXRhYmxlcworKyMgICAg ICAgbGluayAgICAgICAgICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkgb3IgYW4gZXhlY3V0YWJsZQor KyMgICAgICAgdW5pbnN0YWxsICAgICAgICAgIHJlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0 YWxsZWQgZGlyZWN0b3J5CisrIworKyMgTU9ERS1BUkdTIHZhcnkgZGVwZW5kaW5nIG9uIHRoZSBN T0RFLgorKyMgVHJ5IGAkcHJvZ25hbWUgLS1oZWxwIC0tbW9kZT1NT0RFJyBmb3IgYSBtb3JlIGRl dGFpbGVkIGRlc2NyaXB0aW9uIG9mIE1PREUuCisrIworKyMgV2hlbiByZXBvcnRpbmcgYSBidWcs IHBsZWFzZSBkZXNjcmliZSBhIHRlc3QgY2FzZSB0byByZXByb2R1Y2UgaXQgYW5kCisrIyBpbmNs dWRlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246CisrIworKyMgICAgICAgaG9zdC10cmlwbGV0 OgkkaG9zdAorKyMgICAgICAgc2hlbGw6CQkkU0hFTEwKKysjICAgICAgIGNvbXBpbGVyOgkJJExU Q0MKKysjICAgICAgIGNvbXBpbGVyIGZsYWdzOgkJJExUQ0ZMQUdTCisrIyAgICAgICBsaW5rZXI6 CQkkTEQgKGdudT8gJHdpdGhfZ251X2xkKQorKyMgICAgICAgJHByb2duYW1lOgkJKEdOVSBsaWJ0 b29sKSAyLjIuNgorKyMgICAgICAgYXV0b21ha2U6CQkkYXV0b21ha2VfdmVyc2lvbgorKyMgICAg ICAgYXV0b2NvbmY6CQkkYXV0b2NvbmZfdmVyc2lvbgorKyMKKysjIFJlcG9ydCBidWdzIHRvIDxi dWctbGlidG9vbEBnbnUub3JnPi4KKysKKytQUk9HUkFNPWx0bWFpbi5zaAorK1BBQ0tBR0U9bGli dG9vbAorK1ZFUlNJT049Mi4yLjYKKytUSU1FU1RBTVA9IiIKKytwYWNrYWdlX3JldmlzaW9uPTEu MzAxMgorKworKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKKytpZiB0ZXN0IC1uICIke1pTSF9WRVJT SU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGVtdWxh dGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBz cGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNh Z2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAi JworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytlbHNlCisrICBjYXNlIGAoc2V0IC1vKSAyPi9k ZXYvbnVsbGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisrQklOX1NIPXhw ZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENB U0UgIyBmb3IgTUtTIHNoCisrCisrIyBOTFMgbnVpc2FuY2VzOiBXZSBzYXZlIHRoZSBvbGQgdmFs dWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KKysjIE9ubHkgc2V0IExBTkcgYW5k IExDX0FMTCB0byBDIGlmIGFscmVhZHkgc2V0LgorKyMgVGhlc2UgbXVzdCBub3QgYmUgc2V0IHVu Y29uZGl0aW9uYWxseSBiZWNhdXNlIG5vdCBhbGwgc3lzdGVtcyB1bmRlcnN0YW5kCisrIyBlLmcu IExBTkc9QyAobm90YWJseSBTQ08pLgorK2x0X3VzZXJfbG9jYWxlPQorK2x0X3NhZmVfbG9jYWxl PQorK2ZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFU RSBMQ19NRVNTQUdFUworK2RvCisrICBldmFsICJpZiB0ZXN0IFwiXCR7JGx0X3ZhcitzZXR9XCIg PSBzZXQ7IHRoZW4KKysgICAgICAgICAgc2F2ZV8kbHRfdmFyPVwkJGx0X3ZhcgorKyAgICAgICAg ICAkbHRfdmFyPUMKKysJICBleHBvcnQgJGx0X3ZhcgorKwkgIGx0X3VzZXJfbG9jYWxlPVwiJGx0 X3Zhcj1cXFwkc2F2ZV9cJGx0X3ZhcjsgXCRsdF91c2VyX2xvY2FsZVwiCisrCSAgbHRfc2FmZV9s b2NhbGU9XCIkbHRfdmFyPUM7IFwkbHRfc2FmZV9sb2NhbGVcIgorKwlmaSIKKytkb25lCisrCisr JGx0X3Vuc2V0IENEUEFUSAorKworKworKworKworKworKzogJHtDUD0iY3AgLWYifQorKzogJHtF Q0hPPSJlY2hvIn0KKys6ICR7RUdSRVA9Ii9iaW4vZ3JlcCAtRSJ9CisrOiAke0ZHUkVQPSIvYmlu L2dyZXAgLUYifQorKzogJHtHUkVQPSIvYmluL2dyZXAifQorKzogJHtMTl9TPSJsbiAtcyJ9Cisr OiAke01BS0U9Im1ha2UifQorKzogJHtNS0RJUj0ibWtkaXIifQorKzogJHtNVj0ibXYgLWYifQor KzogJHtSTT0icm0gLWYifQorKzogJHtTRUQ9Ii9iaW4vc2VkIn0KKys6ICR7U0hFTEw9IiR7Q09O RklHX1NIRUxMLS9iaW4vc2h9In0KKys6ICR7WHNlZD0iJFNFRCAtZSAxcy9eWC8vIn0KKysKKysj IEdsb2JhbCB2YXJpYWJsZXM6CisrRVhJVF9TVUNDRVNTPTAKKytFWElUX0ZBSUxVUkU9MQorK0VY SVRfTUlTTUFUQ0g9NjMgICMgJD8gPSA2MyBpcyB1c2VkIHRvIGluZGljYXRlIHZlcnNpb24gbWlz bWF0Y2ggdG8gbWlzc2luZy4KKytFWElUX1NLSVA9NzcJICAjICQ/ID0gNzcgaXMgdXNlZCB0byBp bmRpY2F0ZSBhIHNraXBwZWQgdGVzdCB0byBhdXRvbWFrZS4KKysKKytleGl0X3N0YXR1cz0kRVhJ VF9TVUNDRVNTCisrCisrIyBNYWtlIHN1cmUgSUZTIGhhcyBhIHNlbnNpYmxlIGRlZmF1bHQKKyts dF9ubD0nCisrJworK0lGUz0iIAkkbHRfbmwiCisrCisrZGlybmFtZT0icywvW14vXSokLCwiCisr YmFzZW5hbWU9InMsXi4qLywsIgorKworKyMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSBmaWxl IGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIHBlcmZvcm0gZnVuY19iYXNlbmFtZSBhbmQg ZnVuY19kaXJuYW1lIGluIGEgc2luZ2xlIGZ1bmN0aW9uCisrIyBjYWxsOgorKyMgICBkaXJuYW1l OiAgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksCisrIyAgICAgICAg ICAgICBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsIG90aGVyd2lzZSBzZXQgcmVzdWx0CisrIyAg ICAgICAgICAgICB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrIyAgICAgICAgICAgICB2YWx1ZSBy ZXR1cm5lZCBpbiAiJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrIyAgIGJhc2VuYW1lOiBDb21wdXRl IGZpbGVuYW1lIG9mIEZJTEUuCisrIyAgICAgICAgICAgICB2YWx1ZSByZXR1bmVkIGluICIkZnVu Y19iYXNlbmFtZV9yZXN1bHQiCisrIyBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIGtlcHQgc3luY2hy b25pemVkIHdpdGggZnVuY19kaXJuYW1lCisrIyBhbmQgZnVuY19iYXNlbmFtZS4gRm9yIGVmZmlj aWVuY3ksIHdlIGRvIG5vdCBkZWxlZ2F0ZSB0bworKyMgdGhvc2UgZnVuY3Rpb25zIGJ1dCBpbnN0 ZWFkIGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgorK2Z1bmNfZGlybmFtZV9hbmRf YmFzZW5hbWUgKCkKKyt7CisrICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3Vt ZW50LgorKyAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIk ZGlybmFtZSJgCisrICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9Ijsg dGhlbgorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IgorKyAgZWxzZQorKyAgICBmdW5j X2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCisrICBmaQorKyAgZnVu Y19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAK Kyt9CisrCisrIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUuCisrCisr IyBXb3JrIGFyb3VuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGlzc3VlIG9uIElSSVggNi41LiBP biBJUklYIDYuNCssIHNoCisrIyBpcyBrc2ggYnV0IHdoZW4gdGhlIHNoZWxsIGlzIGludm9rZWQg YXMgInNoIiBhbmQgdGhlIGN1cnJlbnQgdmFsdWUgb2YKKysjIHRoZSBfWFBHIGVudmlyb25tZW50 IHZhcmlhYmxlIGlzIG5vdCBlcXVhbCB0byAxIChvbmUpLCB0aGUgc3BlY2lhbAorKyMgcG9zaXRp b25hbCBwYXJhbWV0ZXIgJDAsIHdpdGhpbiBhIGZ1bmN0aW9uIGNhbGwsIGlzIHRoZSBuYW1lIG9m IHRoZQorKyMgZnVuY3Rpb24uCisrcHJvZ3BhdGg9IiQwIgorKworKyMgVGhlIG5hbWUgb2YgdGhp cyBwcm9ncmFtOgorKyMgSW4gdGhlIHVubGlrZWx5IGV2ZW50ICRwcm9nbmFtZSBiZWdhbiB3aXRo IGEgJy0nLCBpdCB3b3VsZCBwbGF5IGhhdm9jIHdpdGgKKysjIGZ1bmNfZWNobyAoaW1hZ2luZSBw cm9nbmFtZT0tbiksIHNvIHdlIHByZXBlbmQgLi8gaW4gdGhhdCBjYXNlOgorK2Z1bmNfZGlybmFt ZV9hbmRfYmFzZW5hbWUgIiRwcm9ncGF0aCIKKytwcm9nbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1 bHQKKytjYXNlICRwcm9nbmFtZSBpbgorKyAgLSopIHByb2duYW1lPS4vJHByb2duYW1lIDs7Cisr ZXNhYworKworKyMgTWFrZSBzdXJlIHdlIGhhdmUgYW4gYWJzb2x1dGUgcGF0aCBmb3IgcmVleGVj dXRpb246CisrY2FzZSAkcHJvZ3BhdGggaW4KKysgIFtcXC9dKnxbQS1aYS16XTpcXCopIDs7Cisr ICAqW1xcL10qKQorKyAgICAgcHJvZ2Rpcj0kZnVuY19kaXJuYW1lX3Jlc3VsdAorKyAgICAgcHJv Z2Rpcj1gY2QgIiRwcm9nZGlyIiAmJiBwd2RgCisrICAgICBwcm9ncGF0aD0iJHByb2dkaXIvJHBy b2duYW1lIgorKyAgICAgOzsKKysgICopCisrICAgICBzYXZlX0lGUz0iJElGUyIKKysgICAgIElG Uz06CisrICAgICBmb3IgcHJvZ2RpciBpbiAkUEFUSDsgZG8KKysgICAgICAgSUZTPSIkc2F2ZV9J RlMiCisrICAgICAgIHRlc3QgLXggIiRwcm9nZGlyLyRwcm9nbmFtZSIgJiYgYnJlYWsKKysgICAg IGRvbmUKKysgICAgIElGUz0iJHNhdmVfSUZTIgorKyAgICAgdGVzdCAtbiAiJHByb2dkaXIiIHx8 IHByb2dkaXI9YHB3ZGAKKysgICAgIHByb2dwYXRoPSIkcHJvZ2Rpci8kcHJvZ25hbWUiCisrICAg ICA7OworK2VzYWMKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1 c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFy ZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KKytYc2VkPSIke1NF RH0iJyAtZSAxcy9eWC8vJworK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtgIiRcXF1cKS9cXFwxL2cn CisrCisrIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5j ZXMuCisrZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxdXCkvXFxcMS9nJworKworKyMgUmUt YFwnIHBhcmFtZXRlciBleHBhbnNpb25zIGluIG91dHB1dCBvZiBkb3VibGVfcXVvdGVfc3Vic3Qg dGhhdCB3ZXJlCisrIyBgXCctZWQgaW4gaW5wdXQgdG8gdGhlIHNhbWUuICBJZiBhbiBvZGQgbnVt YmVyIG9mIGBcJyBwcmVjZWRlZCBhICckJworKyMgaW4gaW5wdXQgdG8gZG91YmxlX3F1b3RlX3N1 YnN0LCB0aGF0ICckJyB3YXMgcHJvdGVjdGVkIGZyb20gZXhwYW5zaW9uLgorKyMgU2luY2UgZWFj aCBpbnB1dCBgXCcgaXMgbm93IHR3byBgXCdzLCBsb29rIGZvciBhbnkgbnVtYmVyIG9mIHJ1bnMg b2YKKysjIGZvdXIgYFwncyBmb2xsb3dlZCBieSB0d28gYFwncyBhbmQgdGhlbiBhICckJy4gIGBc JyB0aGF0ICckJy4KKyticz0nXFwnCisrYnMyPSdcXFxcJworK2JzND0nXFxcXFxcXFwnCisrZG9s bGFyPSdcJCcKKytzZWRfZG91YmxlX2JhY2tzbGFzaD0iXAorKyAgcy8kYnM0LyZcXAorKy9nCisr ICBzL14kYnMyJGRvbGxhci8kYnMmLworKyAgcy9cXChbXiRic11cXCkkYnMyJGRvbGxhci9cXDEk YnMyJGJzJGRvbGxhci9nCisrICBzL1xuLy9nIgorKworKyMgU3RhbmRhcmQgb3B0aW9uczoKKytv cHRfZHJ5X3J1bj1mYWxzZQorK29wdF9oZWxwPWZhbHNlCisrb3B0X3F1aWV0PWZhbHNlCisrb3B0 X3ZlcmJvc2U9ZmFsc2UKKytvcHRfd2FybmluZz06CisrCisrIyBmdW5jX2VjaG8gYXJnLi4uCisr IyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlLCBhbG9uZyB3aXRoIHRoZSBjdXJy ZW50IG1vZGUKKysjIG5hbWUgaWYgaXQgaGFzIGJlZW4gc2V0IHlldC4KKytmdW5jX2VjaG8gKCkK Kyt7CisrICAgICRFQ0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6ICQqIgorK30KKysKKysj IGZ1bmNfdmVyYm9zZSBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3Nh Z2UgaW4gdmVyYm9zZSBtb2RlIG9ubHkuCisrZnVuY192ZXJib3NlICgpCisreworKyAgICAkb3B0 X3ZlcmJvc2UgJiYgZnVuY19lY2hvICR7MSsiJEAifQorKworKyAgICAjIEEgYnVnIGluIGJhc2gg aGFsdHMgdGhlIHNjcmlwdCBpZiB0aGUgbGFzdCBsaW5lIG9mIGEgZnVuY3Rpb24KKysgICAgIyBm YWlscyB3aGVuIHNldCAtZSBpcyBpbiBmb3JjZSwgc28gd2UgbmVlZCBhbm90aGVyIGNvbW1hbmQg dG8KKysgICAgIyB3b3JrIGFyb3VuZCB0aGF0OgorKyAgICA6CisrfQorKworKyMgZnVuY19lcnJv ciBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRh cmQgZXJyb3IuCisrZnVuY19lcnJvciAoKQorK3sKKysgICAgJEVDSE8gIiRwcm9nbmFtZSR7bW9k ZSs6IH0kbW9kZTogIiR7MSsiJEAifSAxPiYyCisrfQorKworKyMgZnVuY193YXJuaW5nIGFyZy4u LgorKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgd2FybmluZyBtZXNzYWdlIHRvIHN0YW5k YXJkIGVycm9yLgorK2Z1bmNfd2FybmluZyAoKQorK3sKKysgICAgJG9wdF93YXJuaW5nICYmICRF Q0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6IHdhcm5pbmc6ICIkezErIiRAIn0gMT4mMgor KworKyAgICAjIGJhc2ggYnVnIGFnYWluOgorKyAgICA6CisrfQorKworKyMgZnVuY19mYXRhbF9l cnJvciBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3Rh bmRhcmQgZXJyb3IsIGFuZCBleGl0LgorK2Z1bmNfZmF0YWxfZXJyb3IgKCkKKyt7CisrICAgIGZ1 bmNfZXJyb3IgJHsxKyIkQCJ9CisrICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorK30KKysKKysjIGZ1 bmNfZmF0YWxfaGVscCBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3Nh Z2UgdG8gc3RhbmRhcmQgZXJyb3IsIGZvbGxvd2VkIGJ5CisrIyBhIGhlbHAgaGludCwgYW5kIGV4 aXQuCisrZnVuY19mYXRhbF9oZWxwICgpCisreworKyAgICBmdW5jX2Vycm9yICR7MSsiJEAifQor KyAgICBmdW5jX2ZhdGFsX2Vycm9yICIkaGVscCIKKyt9CisraGVscD0iVHJ5IFxgJHByb2duYW1l IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAgIyMgZGVmYXVsdAorKworKworKyMgZnVu Y19ncmVwIGV4cHJlc3Npb24gZmlsZW5hbWUKKysjIENoZWNrIHdoZXRoZXIgRVhQUkVTU0lPTiBt YXRjaGVzIGFueSBsaW5lIG9mIEZJTEVOQU1FLCB3aXRob3V0IG91dHB1dC4KKytmdW5jX2dyZXAg KCkKKyt7CisrICAgICRHUkVQICIkMSIgIiQyIiA+L2Rldi9udWxsIDI+JjEKKyt9CisrCisrCisr IyBmdW5jX21rZGlyX3AgZGlyZWN0b3J5LXBhdGgKKysjIE1ha2Ugc3VyZSB0aGUgZW50aXJlIHBh dGggdG8gRElSRUNUT1JZLVBBVEggaXMgYXZhaWxhYmxlLgorK2Z1bmNfbWtkaXJfcCAoKQorK3sK KysgICAgbXlfZGlyZWN0b3J5X3BhdGg9IiQxIgorKyAgICBteV9kaXJfbGlzdD0KKysKKysgICAg aWYgdGVzdCAtbiAiJG15X2RpcmVjdG9yeV9wYXRoIiAmJiB0ZXN0ICIkb3B0X2RyeV9ydW4iICE9 ICI6IjsgdGhlbgorKworKyAgICAgICMgUHJvdGVjdCBkaXJlY3RvcnkgbmFtZXMgc3RhcnRpbmcg d2l0aCBgLScKKysgICAgICBjYXNlICRteV9kaXJlY3RvcnlfcGF0aCBpbgorKyAgICAgICAgLSop IG15X2RpcmVjdG9yeV9wYXRoPSIuLyRteV9kaXJlY3RvcnlfcGF0aCIgOzsKKysgICAgICBlc2Fj CisrCisrICAgICAgIyBXaGlsZSBzb21lIHBvcnRpb24gb2YgRElSIGRvZXMgbm90IHlldCBleGlz dC4uLgorKyAgICAgIHdoaWxlIHRlc3QgISAtZCAiJG15X2RpcmVjdG9yeV9wYXRoIjsgZG8KKysg ICAgICAgICMgLi4ubWFrZSBhIGxpc3QgaW4gdG9wbW9zdCBmaXJzdCBvcmRlci4gIFVzZSBhIGNv bG9uIGRlbGltaXRlZAorKwkjIGxpc3QgaW5jYXNlIHNvbWUgcG9ydGlvbiBvZiBwYXRoIGNvbnRh aW5zIHdoaXRlc3BhY2UuCisrICAgICAgICBteV9kaXJfbGlzdD0iJG15X2RpcmVjdG9yeV9wYXRo OiRteV9kaXJfbGlzdCIKKysKKysgICAgICAgICMgSWYgdGhlIGxhc3QgcG9ydGlvbiBhZGRlZCBo YXMgbm8gc2xhc2ggaW4gaXQsIHRoZSBsaXN0IGlzIGRvbmUKKysgICAgICAgIGNhc2UgJG15X2Rp cmVjdG9yeV9wYXRoIGluICovKikgOzsgKikgYnJlYWsgOzsgZXNhYworKworKyAgICAgICAgIyAu Li5vdGhlcndpc2UgdGhyb3cgYXdheSB0aGUgY2hpbGQgZGlyZWN0b3J5IGFuZCBsb29wCisrICAg ICAgICBteV9kaXJlY3RvcnlfcGF0aD1gJEVDSE8gIlgkbXlfZGlyZWN0b3J5X3BhdGgiIHwgJFhz ZWQgLWUgIiRkaXJuYW1lImAKKysgICAgICBkb25lCisrICAgICAgbXlfZGlyX2xpc3Q9YCRFQ0hP ICJYJG15X2Rpcl9saXN0IiB8ICRYc2VkIC1lICdzLDoqJCwsJ2AKKysKKysgICAgICBzYXZlX21r ZGlyX3BfSUZTPSIkSUZTIjsgSUZTPSc6JworKyAgICAgIGZvciBteV9kaXIgaW4gJG15X2Rpcl9s aXN0OyBkbworKwlJRlM9IiRzYXZlX21rZGlyX3BfSUZTIgorKyAgICAgICAgIyBta2RpciBjYW4g ZmFpbCB3aXRoIGEgYEZpbGUgZXhpc3QnIGVycm9yIGlmIHR3byBwcm9jZXNzZXMKKysgICAgICAg ICMgdHJ5IHRvIGNyZWF0ZSBvbmUgb2YgdGhlIGRpcmVjdG9yaWVzIGNvbmN1cnJlbnRseS4gIERv bid0CisrICAgICAgICAjIHN0b3AgaW4gdGhhdCBjYXNlIQorKyAgICAgICAgJE1LRElSICIkbXlf ZGlyIiAyPi9kZXYvbnVsbCB8fCA6CisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJHNhdmVfbWtk aXJfcF9JRlMiCisrCisrICAgICAgIyBCYWlsIG91dCBpZiB3ZSAob3Igc29tZSBvdGhlciBwcm9j ZXNzKSBmYWlsZWQgdG8gY3JlYXRlIGEgZGlyZWN0b3J5LgorKyAgICAgIHRlc3QgLWQgIiRteV9k aXJlY3RvcnlfcGF0aCIgfHwgXAorKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiRmFpbGVkIHRv IGNyZWF0ZSBcYCQxJyIKKysgICAgZmkKKyt9CisrCisrCisrIyBmdW5jX21rdGVtcGRpciBbc3Ry aW5nXQorKyMgTWFrZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdGhhdCB3b24ndCBjbGFzaCB3aXRo IG90aGVyIHJ1bm5pbmcKKysjIGxpYnRvb2wgcHJvY2Vzc2VzLCBhbmQgYXZvaWRzIHJhY2UgY29u ZGl0aW9ucyBpZiBwb3NzaWJsZS4gIElmCisrIyBnaXZlbiwgU1RSSU5HIGlzIHRoZSBiYXNlbmFt ZSBmb3IgdGhhdCBkaXJlY3RvcnkuCisrZnVuY19ta3RlbXBkaXIgKCkKKyt7CisrICAgIG15X3Rl bXBsYXRlPSIke1RNUERJUi0vdG1wfS8kezEtJHByb2duYW1lfSIKKysKKysgICAgaWYgdGVzdCAi JG9wdF9kcnlfcnVuIiA9ICI6IjsgdGhlbgorKyAgICAgICMgUmV0dXJuIGEgZGlyZWN0b3J5IG5h bWUsIGJ1dCBkb24ndCBjcmVhdGUgaXQgaW4gZHJ5LXJ1biBtb2RlCisrICAgICAgbXlfdG1wZGly PSIke215X3RlbXBsYXRlfS0kJCIKKysgICAgZWxzZQorKworKyAgICAgICMgSWYgbWt0ZW1wIHdv cmtzLCB1c2UgdGhhdCBmaXJzdCBhbmQgZm9yZW1vc3QKKysgICAgICBteV90bXBkaXI9YG1rdGVt cCAtZCAiJHtteV90ZW1wbGF0ZX0tWFhYWFhYWFgiIDI+L2Rldi9udWxsYAorKworKyAgICAgIGlm IHRlc3QgISAtZCAiJG15X3RtcGRpciI7IHRoZW4KKysgICAgICAgICMgRmFpbGluZyB0aGF0LCBh dCBsZWFzdCB0cnkgYW5kIHVzZSAkUkFORE9NIHRvIGF2b2lkIGEgcmFjZQorKyAgICAgICAgbXlf dG1wZGlyPSIke215X3RlbXBsYXRlfS0ke1JBTkRPTS0wfSQkIgorKworKyAgICAgICAgc2F2ZV9t a3RlbXBkaXJfdW1hc2s9YHVtYXNrYAorKyAgICAgICAgdW1hc2sgMDA3NworKyAgICAgICAgJE1L RElSICIkbXlfdG1wZGlyIgorKyAgICAgICAgdW1hc2sgJHNhdmVfbWt0ZW1wZGlyX3VtYXNrCisr ICAgICAgZmkKKysKKysgICAgICAjIElmIHdlJ3JlIG5vdCBpbiBkcnktcnVuIG1vZGUsIGJvbWIg b3V0IG9uIGZhaWx1cmUKKysgICAgICB0ZXN0IC1kICIkbXlfdG1wZGlyIiB8fCBcCisrICAgICAg ICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3RvcnkgXGAk bXlfdG1wZGlyJyIKKysgICAgZmkKKysKKysgICAgJEVDSE8gIlgkbXlfdG1wZGlyIiB8ICRYc2Vk CisrfQorKworKworKyMgZnVuY19xdW90ZV9mb3JfZXZhbCBhcmcKKysjIEFlc3RoZXRpY2FsbHkg cXVvdGUgQVJHIHRvIGJlIGV2YWxlZCBsYXRlci4KKysjIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0 d28gdmFsdWVzOiBGVU5DX1FVT1RFX0ZPUl9FVkFMX1JFU1VMVAorKyMgaXMgZG91YmxlLXF1b3Rl ZCwgc3VpdGFibGUgZm9yIGEgc3Vic2VxdWVudCBldmFsLCB3aGVyZWFzCisrIyBGVU5DX1FVT1RF X0ZPUl9FVkFMX1VOUVVPVEVEX1JFU1VMVCBoYXMgbWVyZWx5IGFsbCBjaGFyYWN0ZXJzCisrIyB3 aGljaCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUgcXVvdGVzIGJhY2tzbGFzaGlmaWVk LgorK2Z1bmNfcXVvdGVfZm9yX2V2YWwgKCkKKyt7CisrICAgIGNhc2UgJDEgaW4KKysgICAgICAq W1xcXGBcIlwkXSopCisrCWZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0PWAkRUNI TyAiWCQxIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAgOzsKKysgICAgICAqKQorKyAg ICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQ9IiQxIiA7OworKyAgICBl c2FjCisrCisrICAgIGNhc2UgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0IGlu CisrICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGFjaGFyYWN0 ZXJzIHRvIGRlbGF5CisrICAgICAgIyB3b3JkIHNwbGl0dGluZywgY29tbWFuZCBzdWJzdGl0dXRp b24gYW5kIGFuZCB2YXJpYWJsZQorKyAgICAgICMgZXhwYW5zaW9uIGZvciBhIHN1YnNlcXVlbnQg ZXZhbC4KKysgICAgICAjIE1hbnkgQm91cm5lIHNoZWxscyBjYW5ub3QgaGFuZGxlIGNsb3NlIGJy YWNrZXRzIGNvcnJlY3RseQorKyAgICAgICMgaW4gc2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5IGl0 IHNlcGFyYXRlbHkuCisrICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wg XAldKnwqXSp8IiIpCisrICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdD0iXCIkZnVu Y19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHRcIiIKKysgICAgICAgIDs7CisrICAgICAg KikKKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0PSIkZnVuY19xdW90ZV9mb3Jf ZXZhbF91bnF1b3RlZF9yZXN1bHQiCisrICAgIGVzYWMKKyt9CisrCisrCisrIyBmdW5jX3F1b3Rl X2Zvcl9leHBhbmQgYXJnCisrIyBBZXN0aGV0aWNhbGx5IHF1b3RlIEFSRyB0byBiZSBldmFsZWQg bGF0ZXI7IHNhbWUgYXMgYWJvdmUsCisrIyBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVy ZW5jZXMuCisrZnVuY19xdW90ZV9mb3JfZXhwYW5kICgpCisreworKyAgICBjYXNlICQxIGluCisr ICAgICAgKltcXFxgXCJdKikKKysJbXlfYXJnPWAkRUNITyAiWCQxIiB8ICRYc2VkIFwKKysJICAg IC1lICIkZG91YmxlX3F1b3RlX3N1YnN0IiAtZSAiJHNlZF9kb3VibGVfYmFja3NsYXNoImAgOzsK KysgICAgICAqKQorKyAgICAgICAgbXlfYXJnPSIkMSIgOzsKKysgICAgZXNhYworKworKyAgICBj YXNlICRteV9hcmcgaW4KKysgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgc2hl bGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkKKysgICAgICAjIHdvcmQgc3BsaXR0aW5nIGFuZCBj b21tYW5kIHN1YnN0aXR1dGlvbiBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCisrICAgICAgIyBNYW55 IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKKysg ICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgorKyAgICAg ICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQorKyAgICAg ICAgbXlfYXJnPSJcIiRteV9hcmdcIiIKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAg ZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdD0iJG15X2FyZyIKKyt9CisrCisrCisrIyBmdW5j X3Nob3dfZXZhbCBjbWQgW2ZhaWxfZXhwXQorKyMgVW5sZXNzIG9wdF9zaWxlbnQgaXMgdHJ1ZSwg dGhlbiBvdXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBpcworKyMgbm90IHRydWUsIGV2 YWx1YXRlIENNRC4gIElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWlscywgYW5kIEZBSUxfRVhQ CisrIyBpcyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBpdC4KKytmdW5jX3Nob3dfZXZhbCAoKQorK3sK KysgICAgbXlfY21kPSIkMSIKKysgICAgbXlfZmFpbF9leHA9IiR7Mi06fSIKKysKKysgICAgJHtv cHRfc2lsZW50LWZhbHNlfSB8fCB7CisrICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkbXlf Y21kIgorKyAgICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3Vs dCIKKysgICAgfQorKworKyAgICBpZiAke29wdF9kcnlfcnVuLWZhbHNlfTsgdGhlbiA6OyBlbHNl CisrICAgICAgZXZhbCAiJG15X2NtZCIKKysgICAgICBteV9zdGF0dXM9JD8KKysgICAgICBpZiB0 ZXN0ICIkbXlfc3RhdHVzIiAtZXEgMDsgdGhlbiA6OyBlbHNlCisrCWV2YWwgIihleGl0ICRteV9z dGF0dXMpOyAkbXlfZmFpbF9leHAiCisrICAgICAgZmkKKysgICAgZmkKKyt9CisrCisrCisrIyBm dW5jX3Nob3dfZXZhbF9sb2NhbGUgY21kIFtmYWlsX2V4cF0KKysjIFVubGVzcyBvcHRfc2lsZW50 IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9wdF9kcnlydW4gaXMKKysjIG5v dCB0cnVlLCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlvbiBvZiBDTUQgZmFpbHMsIGFu ZCBGQUlMX0VYUAorKyMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUgaXQuICBVc2UgdGhlIHNhdmVk IGxvY2FsZSBmb3IgZXZhbHVhdGlvbi4KKytmdW5jX3Nob3dfZXZhbF9sb2NhbGUgKCkKKyt7Cisr ICAgIG15X2NtZD0iJDEiCisrICAgIG15X2ZhaWxfZXhwPSIkezItOn0iCisrCisrICAgICR7b3B0 X3NpbGVudC1mYWxzZX0gfHwgeworKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJG15X2Nt ZCIKKysgICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQi CisrICAgIH0KKysKKysgICAgaWYgJHtvcHRfZHJ5X3J1bi1mYWxzZX07IHRoZW4gOjsgZWxzZQor KyAgICAgIGV2YWwgIiRsdF91c2VyX2xvY2FsZQorKwkgICAgJG15X2NtZCIKKysgICAgICBteV9z dGF0dXM9JD8KKysgICAgICBldmFsICIkbHRfc2FmZV9sb2NhbGUiCisrICAgICAgaWYgdGVzdCAi JG15X3N0YXR1cyIgLWVxIDA7IHRoZW4gOjsgZWxzZQorKwlldmFsICIoZXhpdCAkbXlfc3RhdHVz KTsgJG15X2ZhaWxfZXhwIgorKyAgICAgIGZpCisrICAgIGZpCisrfQorKworKworKworKworKwor KyMgZnVuY192ZXJzaW9uCisrIyBFY2hvIHZlcnNpb24gbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRw dXQgYW5kIGV4aXQuCisrZnVuY192ZXJzaW9uICgpCisreworKyAgICAkU0VEIC1uICcvXiMgJyRQ Uk9HUkFNJyAoR05VIC8sLyMgd2FycmFudHk7IC8geworKyAgICAgICAgcy9eIyAvLworKwlzL14j ICokLy8KKysgICAgICAgIHMvXCgoQylcKVsgMC05LC1dKlwoIFsxLTldWzAtOV0qXCkvXDFcMi8K KysgICAgICAgIHAKKysgICAgIH0nIDwgIiRwcm9ncGF0aCIKKysgICAgIGV4aXQgJD8KKyt9Cisr CisrIyBmdW5jX3VzYWdlCisrIyBFY2hvIHNob3J0IGhlbHAgbWVzc2FnZSB0byBzdGFuZGFyZCBv dXRwdXQgYW5kIGV4aXQuCisrZnVuY191c2FnZSAoKQorK3sKKysgICAgJFNFRCAtbiAnL14jIFVz YWdlOi8sLyMgLWgvIHsKKysgICAgICAgIHMvXiMgLy8KKysJcy9eIyAqJC8vCisrCXMvXCRwcm9n bmFtZS8nJHByb2duYW1lJy8KKysJcAorKyAgICB9JyA8ICIkcHJvZ3BhdGgiCisrICAgICRFQ0hP CisrICAgICRFQ0hPICJydW4gXGAkcHJvZ25hbWUgLS1oZWxwIHwgbW9yZScgZm9yIGZ1bGwgdXNh Z2UiCisrICAgIGV4aXQgJD8KKyt9CisrCisrIyBmdW5jX2hlbHAKKysjIEVjaG8gbG9uZyBoZWxw IG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LgorK2Z1bmNfaGVscCAoKQorK3sK KysgICAgJFNFRCAtbiAnL14jIFVzYWdlOi8sLyMgUmVwb3J0IGJ1Z3MgdG8vIHsKKysgICAgICAg IHMvXiMgLy8KKysJcy9eIyAqJC8vCisrCXMqXCRwcm9nbmFtZSonJHByb2duYW1lJyoKKysJcypc JGhvc3QqJyIkaG9zdCInKgorKwlzKlwkU0hFTEwqJyIkU0hFTEwiJyoKKysJcypcJExUQ0MqJyIk TFRDQyInKgorKwlzKlwkTFRDRkxBR1MqJyIkTFRDRkxBR1MiJyoKKysJcypcJExEKiciJExEIicq CisrCXMvXCR3aXRoX2dudV9sZC8nIiR3aXRoX2dudV9sZCInLworKwlzL1wkYXV0b21ha2VfdmVy c2lvbi8nImAoYXV0b21ha2UgLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KKysJ cy9cJGF1dG9jb25mX3ZlcnNpb24vJyJgKGF1dG9jb25mIC0tdmVyc2lvbikgMj4vZGV2L251bGwg fCRTRUQgMXFgIicvCisrCXAKKysgICAgIH0nIDwgIiRwcm9ncGF0aCIKKysgICAgZXhpdCAkPwor K30KKysKKysjIGZ1bmNfbWlzc2luZ19hcmcgYXJnbmFtZQorKyMgRWNobyBwcm9ncmFtIG5hbWUg cHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciBhbmQgc2V0IGdsb2JhbAorKyMgZXhp dF9jbWQuCisrZnVuY19taXNzaW5nX2FyZyAoKQorK3sKKysgICAgZnVuY19lcnJvciAibWlzc2lu ZyBhcmd1bWVudCBmb3IgJDEiCisrICAgIGV4aXRfY21kPWV4aXQKKyt9CisrCisrZXhpdF9jbWQ9 OgorKworKworKworKworKworKyMgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgd29ya2luZyAkRUNITy4K KytpZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAjIERpc2NhcmQgdGhlIC0t bm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KKysgIHNoaWZ0CisrZWxpZiB0ZXN0ICJYJDEi ID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVy ZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7 IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCisrICAjIFlpcHBlZSwgJEVDSE8gd29ya3Mh CisrICA6CisrZWxzZQorKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQg dGhlbiBtYXliZSAkRUNITyB3aWxsIHdvcmsuCisrICBleGVjICRTSEVMTCAiJHByb2dwYXRoIiAt LW5vLXJlZXhlYyAkezErIiRAIn0KKytmaQorKworK2lmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFj ay1lY2hvOyB0aGVuCisrICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobworKyAgc2hpZnQKKysgIGNh dCA8PEVPRgorKyQqCisrRU9GCisrICBleGl0ICRFWElUX1NVQ0NFU1MKKytmaQorKworK21hZ2lj PSIlJSVNQUdJQyB2YXJpYWJsZSUlJSIKKyttYWdpY19leGU9IiUlJU1BR0lDIEVYRSB2YXJpYWJs ZSUlJSIKKysKKysjIEdsb2JhbCB2YXJpYWJsZXMuCisrIyAkbW9kZSBpcyB1bnNldAorK25vbm9w dD0KKytleGVjdXRlX2RsZmlsZXM9CisrcHJlc2VydmVfYXJncz0KKytsbzJvPSJzL1xcLmxvXCQv LiR7b2JqZXh0fS8iCisrbzJsbz0icy9cXC4ke29iamV4dH1cJC8ubG8vIgorK2V4dHJhY3RlZF9h cmNoaXZlcz0KKytleHRyYWN0ZWRfc2VyaWFsPTAKKysKKytvcHRfZHJ5X3J1bj1mYWxzZQorK29w dF9kdXBsaWNhdGVfZGVwcz1mYWxzZQorK29wdF9zaWxlbnQ9ZmFsc2UKKytvcHRfZGVidWc9Ogor KworKyMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgaW4gYW55IG9mIHRoZSBhY3Rpb25zLCB0aGUg Y29tbWFuZCBpbiBpdAorKyMgd2lsbCBiZSBleGVjZWQgYXQgdGhlIGVuZC4gIFRoaXMgcHJldmVu dHMgaGVyZS1kb2N1bWVudHMgZnJvbSBiZWluZworKyMgbGVmdCBvdmVyIGJ5IHNoZWxscy4KKytl eGVjX2NtZD0KKysKKysjIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiBhcmcuLi4KKysjIEVjaG8g cHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGZvbGxvd2Vk IGJ5CisrIyBhIGNvbmZpZ3VyYXRpb24gZmFpbHVyZSBoaW50LCBhbmQgZXhpdC4KKytmdW5jX2Zh dGFsX2NvbmZpZ3VyYXRpb24gKCkKKyt7CisrICAgIGZ1bmNfZXJyb3IgJHsxKyIkQCJ9CisrICAg IGZ1bmNfZXJyb3IgIlNlZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZv cm1hdGlvbi4iCisrICAgIGZ1bmNfZmF0YWxfZXJyb3IgIkZhdGFsIGNvbmZpZ3VyYXRpb24gZXJy b3IuIgorK30KKysKKysKKysjIGZ1bmNfY29uZmlnCisrIyBEaXNwbGF5IHRoZSBjb25maWd1cmF0 aW9uIGZvciBhbGwgdGhlIHRhZ3MgaW4gdGhpcyBzY3JpcHQuCisrZnVuY19jb25maWcgKCkKKyt7 CisrICAgIHJlX2JlZ2luY2Y9J14jICMjIyBCRUdJTiBMSUJUT09MJworKyAgICByZV9lbmRjZj0n XiMgIyMjIEVORCBMSUJUT09MJworKworKyAgICAjIERlZmF1bHQgY29uZmlndXJhdGlvbi4KKysg ICAgJFNFRCAiMSwvJHJlX2JlZ2luY2YgQ09ORklHL2Q7LyRyZV9lbmRjZiBDT05GSUcvLFwkZCIg PCAiJHByb2dwYXRoIgorKworKyAgICAjIE5vdyBwcmludCB0aGUgY29uZmlndXJhdGlvbnMgZm9y IHRoZSB0YWdzLgorKyAgICBmb3IgdGFnbmFtZSBpbiAkdGFnbGlzdDsgZG8KKysgICAgICAkU0VE IC1uICIvJHJlX2JlZ2luY2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC8sLyRyZV9lbmRjZiBUQUcg Q09ORklHOiAkdGFnbmFtZVwkL3AiIDwgIiRwcm9ncGF0aCIKKysgICAgZG9uZQorKworKyAgICBl eGl0ICQ/CisrfQorKworKyMgZnVuY19mZWF0dXJlcworKyMgRGlzcGxheSB0aGUgZmVhdHVyZXMg c3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgorK2Z1bmNfZmVhdHVyZXMgKCkKKyt7CisrICAgICRF Q0hPICJob3N0OiAkaG9zdCIKKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5 ZXM7IHRoZW4KKysgICAgICAkRUNITyAiZW5hYmxlIHNoYXJlZCBsaWJyYXJpZXMiCisrICAgIGVs c2UKKysgICAgICAkRUNITyAiZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIgorKyAgICBmaQorKyAg ICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgJEVDSE8gImVu YWJsZSBzdGF0aWMgbGlicmFyaWVzIgorKyAgICBlbHNlCisrICAgICAgJEVDSE8gImRpc2FibGUg c3RhdGljIGxpYnJhcmllcyIKKysgICAgZmkKKysKKysgICAgZXhpdCAkPworK30KKysKKysjIGZ1 bmNfZW5hYmxlX3RhZyB0YWduYW1lCisrIyBWZXJpZnkgdGhhdCBUQUdOQU1FIGlzIHZhbGlkLCBh bmQgZWl0aGVyIGZsYWcgYW4gZXJyb3IgYW5kIGV4aXQsIG9yCisrIyBlbmFibGUgdGhlIFRBR05B TUUgdGFnLiAgV2UgYWxzbyBhZGQgVEFHTkFNRSB0byB0aGUgZ2xvYmFsICR0YWdsaXN0CisrIyB2 YXJpYWJsZSBoZXJlLgorK2Z1bmNfZW5hYmxlX3RhZyAoKQorK3sKKysgICMgR2xvYmFsIHZhcmlh YmxlOgorKyAgdGFnbmFtZT0iJDEiCisrCisrICByZV9iZWdpbmNmPSJeIyAjIyMgQkVHSU4gTElC VE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwkIgorKyAgcmVfZW5kY2Y9Il4jICMjIyBFTkQgTElC VE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwkIgorKyAgc2VkX2V4dHJhY3RjZj0iLyRyZV9iZWdp bmNmLywvJHJlX2VuZGNmL3AiCisrCisrICAjIFZhbGlkYXRlIHRhZ25hbWUuCisrICBjYXNlICR0 YWduYW1lIGluCisrICAgICpbIS1fQS1aYS16MC05LC9dKikKKysgICAgICBmdW5jX2ZhdGFsX2Vy cm9yICJpbnZhbGlkIHRhZyBuYW1lOiAkdGFnbmFtZSIKKysgICAgICA7OworKyAgZXNhYworKwor KyAgIyBEb24ndCB0ZXN0IGZvciB0aGUgImRlZmF1bHQiIEMgdGFnLCBhcyB3ZSBrbm93IGl0J3MK KysgICMgdGhlcmUgYnV0IG5vdCBzcGVjaWFsbHkgbWFya2VkLgorKyAgY2FzZSAkdGFnbmFtZSBp bgorKyAgICBDQykgOzsKKysgICAgKikKKysgICAgICBpZiAkR1JFUCAiJHJlX2JlZ2luY2YiICIk cHJvZ3BhdGgiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwl0YWdsaXN0PSIkdGFnbGlzdCAkdGFn bmFtZSIKKysKKysJIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4gIEJlIGNhcmVmdWwgdG8g cXVvdGUgdGhlIHBhdGgKKysJIyBhbmQgdGhlIHNlZCBzY3JpcHQsIHRvIGF2b2lkIHNwbGl0dGlu ZyBvbiB3aGl0ZXNwYWNlLCBidXQKKysJIyBhbHNvIGRvbid0IHVzZSBub24tcG9ydGFibGUgcXVv dGVzIHdpdGhpbiBiYWNrcXVvdGVzIHdpdGhpbgorKwkjIHF1b3RlcyB3ZSBoYXZlIHRvIGRvIGl0 IGluIDIgc3RlcHM6CisrCWV4dHJhY3RlZGNmPWAkU0VEIC1uIC1lICIkc2VkX2V4dHJhY3RjZiIg PCAiJHByb2dwYXRoImAKKysJZXZhbCAiJGV4dHJhY3RlZGNmIgorKyAgICAgIGVsc2UKKysJZnVu Y19lcnJvciAiaWdub3JpbmcgdW5rbm93biB0YWcgJHRhZ25hbWUiCisrICAgICAgZmkKKysgICAg ICA7OworKyAgZXNhYworK30KKysKKysjIFBhcnNlIG9wdGlvbnMgb25jZSwgdGhvcm91Z2hseS4g IFRoaXMgY29tZXMgYXMgc29vbiBhcyBwb3NzaWJsZSBpbgorKyMgdGhlIHNjcmlwdCB0byBtYWtl IHRoaW5ncyBsaWtlIGBsaWJ0b29sIC0tdmVyc2lvbicgaGFwcGVuIHF1aWNrbHkuCisreworKwor KyAgIyBTaG9ydGhhbmQgZm9yIC0tbW9kZT1mb28sIG9ubHkgdmFsaWQgYXMgdGhlIGZpcnN0IGFy Z3VtZW50CisrICBjYXNlICQxIGluCisrICBjbGVhbnxjbGVhfGNsZXxjbCkKKysgICAgc2hpZnQ7 IHNldCBkdW1teSAtLW1vZGUgY2xlYW4gJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAgY29t cGlsZXxjb21waWx8Y29tcGl8Y29tcHxjb218Y298YykKKysgICAgc2hpZnQ7IHNldCBkdW1teSAt LW1vZGUgY29tcGlsZSAkezErIiRAIn07IHNoaWZ0CisrICAgIDs7CisrICBleGVjdXRlfGV4ZWN1 dHxleGVjdXxleGVjfGV4ZXxleHxlKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBleGVj dXRlICR7MSsiJEAifTsgc2hpZnQKKysgICAgOzsKKysgIGZpbmlzaHxmaW5pc3xmaW5pfGZpbnxm aXxmKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBzaGlm dAorKyAgICA7OworKyAgaW5zdGFsbHxpbnN0YWx8aW5zdGF8aW5zdHxpbnN8aW58aSkKKysgICAg c2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0CisrICAgIDs7 CisrICBsaW5rfGxpbnxsaXxsKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7 MSsiJEAifTsgc2hpZnQKKysgICAgOzsKKysgIHVuaW5zdGFsbHx1bmluc3RhbHx1bmluc3RhfHVu aW5zdHx1bmluc3x1bmlufHVuaXx1bnx1KQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1 bmluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAgZXNhYworKworKyAgIyBQYXJz ZSBub24tbW9kZSBzcGVjaWZpYyBhcmd1bWVudHM6CisrICB3aGlsZSB0ZXN0ICIkIyIgLWd0IDA7 IGRvCisrICAgIG9wdD0iJDEiCisrICAgIHNoaWZ0CisrCisrICAgIGNhc2UgJG9wdCBpbgorKyAg ICAgIC0tY29uZmlnKQkJZnVuY19jb25maWcJCQkJCTs7CisrCisrICAgICAgLS1kZWJ1ZykJCXBy ZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJZnVuY19lY2hvICJlbmFibGlu ZyBzaGVsbCB0cmFjZSBtb2RlIgorKwkJCW9wdF9kZWJ1Zz0nc2V0IC14JworKwkJCSRvcHRfZGVi dWcKKysJCQk7OworKworKyAgICAgIC1kbG9wZW4pCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19t aXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKKysJCQlleGVjdXRlX2RsZmlsZXM9IiRleGVjdXRl X2RsZmlsZXMgJDEiCisrCQkJc2hpZnQKKysJCQk7OworKworKyAgICAgIC0tZHJ5LXJ1biB8IC1u KQlvcHRfZHJ5X3J1bj06CQkJCQk7OworKyAgICAgIC0tZmVhdHVyZXMpICAgICAgIGZ1bmNfZmVh dHVyZXMJCQkJCTs7CisrICAgICAgLS1maW5pc2gpCQltb2RlPSJmaW5pc2giCQkJCQk7OworKwor KyAgICAgIC0tbW9kZSkJCXRlc3QgIiQjIiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0 IiAmJiBicmVhaworKwkJCWNhc2UgJDEgaW4KKysJCQkgICMgVmFsaWQgbW9kZSBhcmd1bWVudHM6 CisrCQkJICBjbGVhbikJOzsKKysJCQkgIGNvbXBpbGUpCTs7CisrCQkJICBleGVjdXRlKQk7Owor KwkJCSAgZmluaXNoKQk7OworKwkJCSAgaW5zdGFsbCkJOzsKKysJCQkgIGxpbmspCQk7OworKwkJ CSAgcmVsaW5rKQk7OworKwkJCSAgdW5pbnN0YWxsKQk7OworKworKwkJCSAgIyBDYXRjaCBhbnl0 aGluZyBlbHNlIGFzIGFuIGVycm9yCisrCQkJICAqKSBmdW5jX2Vycm9yICJpbnZhbGlkIGFyZ3Vt ZW50IGZvciAkb3B0IgorKwkJCSAgICAgZXhpdF9jbWQ9ZXhpdAorKwkJCSAgICAgYnJlYWsKKysJ CQkgICAgIDs7CisrCQkgICAgICAgIGVzYWMKKysKKysJCQltb2RlPSIkMSIKKysJCQlzaGlmdAor KwkJCTs7CisrCisrICAgICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcykKKysJCQlvcHRfZHVwbGljYXRl X2RlcHM9OgkJCQk7OworKworKyAgICAgIC0tcXVpZXR8LS1zaWxlbnQpCXByZXNlcnZlX2FyZ3M9 IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJb3B0X3NpbGVudD06CisrCQkJOzsKKysKKysgICAg ICAtLXZlcmJvc2V8IC12KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgorKwkJ CW9wdF9zaWxlbnQ9ZmFsc2UKKysJCQk7OworKworKyAgICAgIC0tdGFnKQkJdGVzdCAiJCMiIC1l cSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCisrCQkJcHJlc2VydmVfYXJn cz0iJHByZXNlcnZlX2FyZ3MgJG9wdCAkMSIKKysJCQlmdW5jX2VuYWJsZV90YWcgIiQxIgkjIHRh Z25hbWUgaXMgc2V0IGhlcmUKKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAgICAgIyBTZXBhcmF0 ZSBvcHRhcmdzIHRvIGxvbmcgb3B0aW9uczoKKysgICAgICAtZGxvcGVuPSp8LS1tb2RlPSp8LS10 YWc9KikKKysJCQlmdW5jX29wdF9zcGxpdCAiJG9wdCIKKysJCQlzZXQgZHVtbXkgIiRmdW5jX29w dF9zcGxpdF9vcHQiICIkZnVuY19vcHRfc3BsaXRfYXJnIiAkezErIiRAIn0KKysJCQlzaGlmdAor KwkJCTs7CisrCisrICAgICAgLVw/fC1oKQkJZnVuY191c2FnZQkJCQkJOzsKKysgICAgICAtLWhl bHApCQlvcHRfaGVscD06CQkJCQk7OworKyAgICAgIC0tdmVyc2lvbikJZnVuY192ZXJzaW9uCQkJ CQk7OworKworKyAgICAgIC0qKQkJZnVuY19mYXRhbF9oZWxwICJ1bnJlY29nbml6ZWQgb3B0aW9u IFxgJG9wdCciCTs7CisrCisrICAgICAgKikJCW5vbm9wdD0iJG9wdCIKKysJCQlicmVhaworKwkJ CTs7CisrICAgIGVzYWMKKysgIGRvbmUKKysKKysKKysgIGNhc2UgJGhvc3QgaW4KKysgICAgKmN5 Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqIHwgKmNlZ2NjKikKKysgICAgICAjIGRvbid0IGVsaW1p bmF0ZSBkdXBsaWNhdGlvbnMgaW4gJHBvc3RkZXBzIGFuZCAkcHJlZGVwcworKyAgICAgIG9wdF9k dXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9OgorKyAgICAgIDs7CisrICAgICopCisr ICAgICAgb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwcz0kb3B0X2R1cGxpY2F0 ZV9kZXBzCisrICAgICAgOzsKKysgIGVzYWMKKysKKysgICMgSGF2aW5nIHdhcm5lZCBhYm91dCBh bGwgbWlzLXNwZWNpZmllZCBvcHRpb25zLCBiYWlsIG91dCBpZgorKyAgIyBhbnl0aGluZyB3YXMg d3JvbmcuCisrICAkZXhpdF9jbWQgJEVYSVRfRkFJTFVSRQorK30KKysKKysjIGZ1bmNfY2hlY2tf dmVyc2lvbl9tYXRjaAorKyMgRW5zdXJlIHRoYXQgd2UgYXJlIHVzaW5nIG00IG1hY3JvcywgYW5k IGxpYnRvb2wgc2NyaXB0IGZyb20gdGhlIHNhbWUKKysjIHJlbGVhc2Ugb2YgbGlidG9vbC4KKytm dW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2ggKCkKKyt7CisrICBpZiB0ZXN0ICIkcGFja2FnZV9yZXZp c2lvbiIgIT0gIiRtYWNyb19yZXZpc2lvbiI7IHRoZW4KKysgICAgaWYgdGVzdCAiJFZFUlNJT04i ICE9ICIkbWFjcm9fdmVyc2lvbiI7IHRoZW4KKysgICAgICBpZiB0ZXN0IC16ICIkbWFjcm9fdmVy c2lvbiI7IHRoZW4KKysgICAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCisrJHByb2duYW1lOiBWZXJz aW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQor KyRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSBhbiBvbGRl ciByZWxlYXNlLgorKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdp dGggbWFjcm9zIGZyb20gJFBBQ0tBR0UgJFZFUlNJT04KKyskcHJvZ25hbWU6IGFuZCBydW4gYXV0 b2NvbmYgYWdhaW4uCisrX0xUX0VPRgorKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCA+JjIgPDxf TFRfRU9GCisrJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFD S0FHRSAkVkVSU0lPTiwgYnV0IHRoZQorKyRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExU X0lOSVQgY29tZXMgZnJvbSAkUEFDS0FHRSAkbWFjcm9fdmVyc2lvbi4KKyskcHJvZ25hbWU6IFlv dSBzaG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tICRQQUNLQUdFICRW RVJTSU9OCisrJHByb2duYW1lOiBhbmQgcnVuIGF1dG9jb25mIGFnYWluLgorK19MVF9FT0YKKysg ICAgICBmaQorKyAgICBlbHNlCisrICAgICAgY2F0ID4mMiA8PF9MVF9FT0YKKyskcHJvZ25hbWU6 IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCByZXZp c2lvbiAkcGFja2FnZV9yZXZpc2lvbiwKKyskcHJvZ25hbWU6IGJ1dCB0aGUgZGVmaW5pdGlvbiBv ZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSByZXZpc2lvbiAkbWFjcm9fcmV2aXNpb24uCisrJHBy b2duYW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSBy ZXZpc2lvbiAkcGFja2FnZV9yZXZpc2lvbgorKyRwcm9nbmFtZTogb2YgJFBBQ0tBR0UgJFZFUlNJ T04gYW5kIHJ1biBhdXRvY29uZiBhZ2Fpbi4KKytfTFRfRU9GCisrICAgIGZpCisrCisrICAgIGV4 aXQgJEVYSVRfTUlTTUFUQ0gKKysgIGZpCisrfQorKworKworKyMjIC0tLS0tLS0tLS0tICMjCisr IyMgICAgTWFpbi4gICAgIyMKKysjIyAtLS0tLS0tLS0tLSAjIworKworKyRvcHRfaGVscCB8fCB7 CisrICAjIFNhbml0eSBjaGVja3MgZmlyc3Q6CisrICBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gK KysKKysgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiB0ZXN0ICIkYnVp bGRfb2xkX2xpYnMiICE9IHllczsgdGhlbgorKyAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24g Im5vdCBjb25maWd1cmVkIHRvIGJ1aWxkIGFueSBraW5kIG9mIGxpYnJhcnkiCisrICBmaQorKwor KyAgdGVzdCAteiAiJG1vZGUiICYmIGZ1bmNfZmF0YWxfZXJyb3IgImVycm9yOiB5b3UgbXVzdCBz cGVjaWZ5IGEgTU9ERS4iCisrCisrCisrICAjIERhcndpbiBzdWNrcworKyAgZXZhbCBzdGRfc2hy ZXh0PVwiJHNocmV4dF9jbWRzXCIKKysKKysKKysgICMgT25seSBleGVjdXRlIG1vZGUgaXMgYWxs b3dlZCB0byBoYXZlIC1kbG9wZW4gZmxhZ3MuCisrICBpZiB0ZXN0IC1uICIkZXhlY3V0ZV9kbGZp bGVzIiAmJiB0ZXN0ICIkbW9kZSIgIT0gZXhlY3V0ZTsgdGhlbgorKyAgICBmdW5jX2Vycm9yICJ1 bnJlY29nbml6ZWQgb3B0aW9uIFxgLWRsb3BlbiciCisrICAgICRFQ0hPICIkaGVscCIgMT4mMgor KyAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgIGZpCisrCisrICAjIENoYW5nZSB0aGUgaGVscCBt ZXNzYWdlIHRvIGEgbW9kZS1zcGVjaWZpYyBvbmUuCisrICBnZW5lcmljX2hlbHA9IiRoZWxwIgor KyAgaGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCAtLW1vZGU9JG1vZGUnIGZvciBtb3JlIGlu Zm9ybWF0aW9uLiIKKyt9CisrCisrCisrIyBmdW5jX2xhbGliX3AgZmlsZQorKyMgVHJ1ZSBpZmYg RklMRSBpcyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KKysj IFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJk bHkgZmx1c2ggb3V0CisrIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KKytmdW5jX2xhbGliX3AgKCkK Kyt7CisrICAgIHRlc3QgLWYgIiQxIiAmJgorKyAgICAgICRTRUQgLWUgNHEgIiQxIiAyPi9kZXYv bnVsbCBcCisrICAgICAgICB8ICRHUkVQICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIgPiAv ZGV2L251bGwgMj4mMQorK30KKysKKysjIGZ1bmNfbGFsaWJfdW5zYWZlX3AgZmlsZQorKyMgVHJ1 ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmls ZS4KKysjIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgc2FtZSBjaGVjayBhcyBmdW5jX2xh bGliX3Agd2l0aG91dAorKyMgcmVzb3J0aW5nIHRvIGV4dGVybmFsIHByb2dyYW1zLiAgVG8gdGhp cyBlbmQsIGl0IHJlZGlyZWN0cyBzdGRpbiBhbmQKKysjIGNsb3NlcyBpdCBhZnRlcndhcmRzLCB3 aXRob3V0IHNhdmluZyB0aGUgb3JpZ2luYWwgZmlsZSBkZXNjcmlwdG9yLgorKyMgQXMgYSBzYWZl dHkgbWVhc3VyZSwgdXNlIGl0IG9ubHkgd2hlcmUgYSBuZWdhdGl2ZSByZXN1bHQgd291bGQgYmUK KysjIGZhdGFsIGFueXdheS4gIFdvcmtzIGlmIGBmaWxlJyBkb2VzIG5vdCBleGlzdC4KKytmdW5j X2xhbGliX3Vuc2FmZV9wICgpCisreworKyAgICBsYWxpYl9wPW5vCisrICAgIGlmIHRlc3QgLWYg IiQxIiAmJiB0ZXN0IC1yICIkMSIgJiYgZXhlYyA1PCYwIDwiJDEiOyB0aGVuCisrCWZvciBsYWxp Yl9wX2wgaW4gMSAyIDMgNAorKwlkbworKwkgICAgcmVhZCBsYWxpYl9wX2xpbmUKKysJICAgIGNh c2UgIiRsYWxpYl9wX2xpbmUiIGluCisrCQlcI1wgR2VuZXJhdGVkXCBieVwgKiRQQUNLQUdFKiAp IGxhbGliX3A9eWVzOyBicmVhazs7CisrCSAgICBlc2FjCisrCWRvbmUKKysJZXhlYyAwPCY1IDU8 Ji0KKysgICAgZmkKKysgICAgdGVzdCAiJGxhbGliX3AiID0geWVzCisrfQorKworKyMgZnVuY19s dHdyYXBwZXJfc2NyaXB0X3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3Jh cHBlciBzY3JpcHQKKysjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVj azsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CisrIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KKytm dW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAoKQorK3sKKysgICAgZnVuY19sYWxpYl9wICIkMSIKKyt9 CisrCisrIyBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklM RSBpcyBhIGxpYnRvb2wgd3JhcHBlciBleGVjdXRhYmxlCisrIyBUaGlzIGZ1bmN0aW9uIGlzIG9u bHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAorKyMgZGV0 ZXJtaW5lZCBpbXBvc3RlcnMuCisrZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICgpCisrewor KyAgICBmdW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeD0KKysgICAgY2FzZSAkMSBpbgorKyAgICAq LmV4ZSkgOzsKKysgICAgKikgZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXg9LmV4ZSA7OworKyAg ICBlc2FjCisrICAgICRHUkVQICIkbWFnaWNfZXhlIiAiJDEkZnVuY19sdHdyYXBwZXJfZXhlY19z dWZmaXgiID4vZGV2L251bGwgMj4mMQorK30KKysKKysjIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5h bWUgZmlsZQorKyMgQXNzdW1lcyBmaWxlIGlzIGFuIGx0d3JhcHBlcl9leGVjdXRhYmxlCisrIyB1 c2VzICRmaWxlIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgZmlsZW5hbWUgZm9yIGEKKysj IHRlbXBvcmFyeSBsdHdyYXBwZXJfc2NyaXB0LgorK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUg KCkKKyt7CisrICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIiCisrICAgIGlm IGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJDEiOyB0aGVuCisrCWZ1bmNfZGlybmFtZV9h bmRfYmFzZW5hbWUgIiQxIiAiIiAiLiIKKysJZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZnVu Y19iYXNlbmFtZV9yZXN1bHQiCisrCWZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIk ZnVuY19kaXJuYW1lX3Jlc3VsdC8kb2JqZGlyLyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fV9sdHNo d3JhcHBlciIKKysgICAgZmkKKyt9CisrCisrIyBmdW5jX2x0d3JhcHBlcl9wIGZpbGUKKysjIFRy dWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9yIHdyYXBwZXIgZXhlY3V0 YWJsZQorKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3 aWxsIGhhcmRseSBmbHVzaCBvdXQKKysjIGRldGVybWluZWQgaW1wb3N0ZXJzLgorK2Z1bmNfbHR3 cmFwcGVyX3AgKCkKKyt7CisrICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkMSIgfHwgZnVu Y19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkMSIKKyt9CisrCisrCisrIyBmdW5jX2V4ZWN1dGVf Y21kcyBjb21tYW5kcyBmYWlsX2NtZAorKyMgRXhlY3V0ZSB0aWxkZS1kZWxpbWl0ZWQgQ09NTUFO RFMuCisrIyBJZiBGQUlMX0NNRCBpcyBnaXZlbiwgZXZhbCB0aGF0IHVwb24gZmFpbHVyZS4KKysj IEZBSUxfQ01EIG1heSByZWFkLWFjY2VzcyB0aGUgY3VycmVudCBjb21tYW5kIGluIHZhcmlhYmxl IENNRCEKKytmdW5jX2V4ZWN1dGVfY21kcyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBz YXZlX2lmcz0kSUZTOyBJRlM9J34nCisrICAgIGZvciBjbWQgaW4gJDE7IGRvCisrICAgICAgSUZT PSRzYXZlX2lmcworKyAgICAgIGV2YWwgY21kPVwiJGNtZFwiCisrICAgICAgZnVuY19zaG93X2V2 YWwgIiRjbWQiICIkezItOn0iCisrICAgIGRvbmUKKysgICAgSUZTPSRzYXZlX2lmcworK30KKysK KysKKysjIGZ1bmNfc291cmNlIGZpbGUKKysjIFNvdXJjZSBGSUxFLCBhZGRpbmcgZGlyZWN0b3J5 IGNvbXBvbmVudCBpZiBuZWNlc3NhcnkuCisrIyBOb3RlIHRoYXQgaXQgaXMgbm90IG5lY2Vzc2Fy eSBvbiBjeWd3aW4vbWluZ3cgdG8gYXBwZW5kIGEgZG90IHRvCisrIyBGSUxFIGV2ZW4gaWYgYm90 aCBGSUxFIGFuZCBGSUxFLmV4ZSBleGlzdDogYXV0b21hdGljLWFwcGVuZC0uZXhlCisrIyBiZWhh dmlvciBoYXBwZW5zIG9ubHkgZm9yIGV4ZWMoMyksIG5vdCBmb3Igb3BlbigyKSEgIEFsc28sIHNv dXJjaW5nCisrIyBgRklMRS4nIGRvZXMgbm90IHdvcmsgb24gY3lnd2luIG1hbmFnZWQgbW91bnRz LgorK2Z1bmNfc291cmNlICgpCisreworKyAgICAkb3B0X2RlYnVnCisrICAgIGNhc2UgJDEgaW4K KysgICAgKi8qIHwgKlxcKikJLiAiJDEiIDs7CisrICAgICopCQkuICIuLyQxIiA7OworKyAgICBl c2FjCisrfQorKworKworKyMgZnVuY19pbmZlcl90YWcgYXJnCisrIyBJbmZlciB0YWdnZWQgY29u ZmlndXJhdGlvbiB0byB1c2UgaWYgYW55IGFyZSBhdmFpbGFibGUgYW5kCisrIyBpZiBvbmUgd2Fz bid0IGNob3NlbiB2aWEgdGhlICItLXRhZyIgY29tbWFuZCBsaW5lIG9wdGlvbi4KKysjIE9ubHkg YXR0ZW1wdCB0aGlzIGlmIHRoZSBjb21waWxlciBpbiB0aGUgYmFzZSBjb21waWxlCisrIyBjb21t YW5kIGRvZXNuJ3QgbWF0Y2ggdGhlIGRlZmF1bHQgY29tcGlsZXIuCisrIyBhcmcgaXMgdXN1YWxs eSBvZiB0aGUgZm9ybSAnZ2NjIC4uLicKKytmdW5jX2luZmVyX3RhZyAoKQorK3sKKysgICAgJG9w dF9kZWJ1ZworKyAgICBpZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3RhZ3MiICYmIHRlc3QgLXogIiR0 YWduYW1lIjsgdGhlbgorKyAgICAgIENDX3F1b3RlZD0KKysgICAgICBmb3IgYXJnIGluICRDQzsg ZG8KKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrCUNDX3F1b3RlZD0iJEND X3F1b3RlZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrICAgICAgZG9uZQorKyAgICAg IGNhc2UgJEAgaW4KKysgICAgICAjIEJsYW5rcyBpbiB0aGUgY29tbWFuZCBtYXkgaGF2ZSBiZWVu IHN0cmlwcGVkIGJ5IHRoZSBjYWxsaW5nIHNoZWxsLAorKyAgICAgICMgYnV0IG5vdCBmcm9tIHRo ZSBDQyBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aGVuIGNvbmZpZ3VyZSB3YXMgcnVuLgorKyAgICAg ICIgJENDICIqIHwgIiRDQyAiKiB8ICIgYCRFQ0hPICRDQ2AgIiogfCAiYCRFQ0hPICRDQ2AgIiog fCAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiBgJEVDSE8gJENDX3F1b3RlZGAg IiogfCAiYCRFQ0hPICRDQ19xdW90ZWRgICIqKSA7OworKyAgICAgICMgQmxhbmtzIGF0IHRoZSBz dGFydCBvZiAkYmFzZV9jb21waWxlIHdpbGwgY2F1c2UgdGhpcyB0byBmYWlsCisrICAgICAgIyBp ZiB3ZSBkb24ndCBjaGVjayBmb3IgdGhlbSBhcyB3ZWxsLgorKyAgICAgICopCisrCWZvciB6IGlu ICRhdmFpbGFibGVfdGFnczsgZG8KKysJICBpZiAkR1JFUCAiXiMgIyMjIEJFR0lOIExJQlRPT0wg VEFHIENPTkZJRzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICAj IEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgorKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAtZSAn L14jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBMSUJU T09MIFRBRyBDT05GSUc6ICckeickL3AnIDwgJHByb2dwYXRoYCIKKysJICAgIENDX3F1b3RlZD0K KysJICAgIGZvciBhcmcgaW4gJENDOyBkbworKwkgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNv bnRhaW5pbmcgb3RoZXIgc2hlbGwgbWV0YWNoYXJhY3RlcnMuCisrCSAgICAgIGZ1bmNfcXVvdGVf Zm9yX2V2YWwgIiRhcmciCisrCSAgICAgIENDX3F1b3RlZD0iJENDX3F1b3RlZCAkZnVuY19xdW90 ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgICBkb25lCisrCSAgICBjYXNlICIkQCAiIGluCisrCSAg ICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgYCRFQ0hPICRDQ2AgIiogfCAiYCRFQ0hPICRDQ2Ag IiogfCAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiBgJEVDSE8gJENDX3F1b3Rl ZGAgIiogfCAiYCRFQ0hPICRDQ19xdW90ZWRgICIqKQorKwkgICAgICAjIFRoZSBjb21waWxlciBp biB0aGUgYmFzZSBjb21waWxlIGNvbW1hbmQgbWF0Y2hlcworKwkgICAgICAjIHRoZSBvbmUgaW4g dGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uLgorKwkgICAgICAjIEFzc3VtZSB0aGlzIGlzIHRoZSB0 YWdnZWQgY29uZmlndXJhdGlvbiB3ZSB3YW50LgorKwkgICAgICB0YWduYW1lPSR6CisrCSAgICAg IGJyZWFrCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgZmkKKysJZG9uZQorKwkjIElmICR0 YWduYW1lIHN0aWxsIGlzbid0IHNldCwgdGhlbiBubyB0YWdnZWQgY29uZmlndXJhdGlvbgorKwkj IHdhcyBmb3VuZCBhbmQgbGV0IHRoZSB1c2VyIGtub3cgdGhhdCB0aGUgIi0tdGFnIiBjb21tYW5k CisrCSMgbGluZSBvcHRpb24gbXVzdCBiZSB1c2VkLgorKwlpZiB0ZXN0IC16ICIkdGFnbmFtZSI7 IHRoZW4KKysJICBmdW5jX2VjaG8gInVuYWJsZSB0byBpbmZlciB0YWdnZWQgY29uZmlndXJhdGlv biIKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJzcGVjaWZ5IGEgdGFnIHdpdGggXGAtLXRhZyciCisr IwllbHNlCisrIwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgJHRhZ25hbWUgdGFnZ2VkIGNvbmZpZ3Vy YXRpb24iCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKyAgICBmaQorK30KKysKKysKKysKKysj IGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3Qgb3V0cHV0X25hbWUgcGljX25hbWUgbm9ucGljX25h bWUKKysjIENyZWF0ZSBhIGxpYnRvb2wgb2JqZWN0IGZpbGUgKGFuYWxvZ291cyB0byBhICIubGEi IGZpbGUpLAorKyMgYnV0IGRvbid0IGNyZWF0ZSBpdCBpZiB3ZSdyZSBkb2luZyBhIGRyeSBydW4u CisrZnVuY193cml0ZV9saWJ0b29sX29iamVjdCAoKQorK3sKKysgICAgd3JpdGVfbGlib2JqPSR7 MX0KKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAg ICB3cml0ZV9sb2JqPVwnJHsyfVwnCisrICAgIGVsc2UKKysgICAgICB3cml0ZV9sb2JqPW5vbmUK KysgICAgZmkKKysKKysgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgor KyAgICAgIHdyaXRlX29sZG9iaj1cJyR7M31cJworKyAgICBlbHNlCisrICAgICAgd3JpdGVfb2xk b2JqPW5vbmUKKysgICAgZmkKKysKKysgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysgICAgICBjYXQg PiR7d3JpdGVfbGlib2JqfVQgPDxFT0YKKysjICR3cml0ZV9saWJvYmogLSBhIGxpYnRvb2wgb2Jq ZWN0IGZpbGUKKysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFN UCkgJFZFUlNJT04KKysjCisrIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCisrIyBJ dCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCisrCisrIyBOYW1lIG9mIHRo ZSBQSUMgb2JqZWN0LgorK3BpY19vYmplY3Q9JHdyaXRlX2xvYmoKKysKKysjIE5hbWUgb2YgdGhl IG5vbi1QSUMgb2JqZWN0Cisrbm9uX3BpY19vYmplY3Q9JHdyaXRlX29sZG9iagorKworK0VPRgor KyAgICAgICRNViAiJHt3cml0ZV9saWJvYmp9VCIgIiR7d3JpdGVfbGlib2JqfSIKKysgICAgfQor K30KKysKKysjIGZ1bmNfbW9kZV9jb21waWxlIGFyZy4uLgorK2Z1bmNfbW9kZV9jb21waWxlICgp CisreworKyAgICAkb3B0X2RlYnVnCisrICAgICMgR2V0IHRoZSBjb21waWxhdGlvbiBjb21tYW5k IGFuZCB0aGUgc291cmNlIGZpbGUuCisrICAgIGJhc2VfY29tcGlsZT0KKysgICAgc3JjZmlsZT0i JG5vbm9wdCIgICMgIGFsd2F5cyBrZWVwIGEgbm9uLWVtcHR5IHZhbHVlIGluICJzcmNmaWxlIgor KyAgICBzdXBwcmVzc19vcHQ9eWVzCisrICAgIHN1cHByZXNzX291dHB1dD0KKysgICAgYXJnX21v ZGU9bm9ybWFsCisrICAgIGxpYm9iaj0KKysgICAgbGF0ZXI9CisrICAgIHBpZV9mbGFnPQorKwor KyAgICBmb3IgYXJnCisrICAgIGRvCisrICAgICAgY2FzZSAkYXJnX21vZGUgaW4KKysgICAgICBh cmcgICkKKysJIyBkbyBub3QgImNvbnRpbnVlIi4gIEluc3RlYWQsIGFkZCB0aGlzIHRvIGJhc2Vf Y29tcGlsZQorKwlsYXN0YXJnPSIkYXJnIgorKwlhcmdfbW9kZT1ub3JtYWwKKysJOzsKKysKKysg ICAgICB0YXJnZXQgKQorKwlsaWJvYmo9IiRhcmciCisrCWFyZ19tb2RlPW5vcm1hbAorKwljb250 aW51ZQorKwk7OworKworKyAgICAgIG5vcm1hbCApCisrCSMgQWNjZXB0IGFueSBjb21tYW5kLWxp bmUgb3B0aW9ucy4KKysJY2FzZSAkYXJnIGluCisrCS1vKQorKwkgIHRlc3QgLW4gIiRsaWJvYmoi ICYmIFwKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBjYW5ub3Qgc3BlY2lmeSBcYC1vJyBt b3JlIHRoYW4gb25jZSIKKysJICBhcmdfbW9kZT10YXJnZXQKKysJICBjb250aW51ZQorKwkgIDs7 CisrCisrCS1waWUgfCAtZnBpZSB8IC1mUElFKQorKyAgICAgICAgICBwaWVfZmxhZz0iJHBpZV9m bGFnICRhcmciCisrCSAgY29udGludWUKKysJICA7OworKworKwktc2hhcmVkIHwgLXN0YXRpYyB8 IC1wcmVmZXItcGljIHwgLXByZWZlci1ub24tcGljKQorKwkgIGxhdGVyPSIkbGF0ZXIgJGFyZyIK KysJICBjb250aW51ZQorKwkgIDs7CisrCisrCS1uby1zdXBwcmVzcykKKysJICBzdXBwcmVzc19v cHQ9bm8KKysJICBjb250aW51ZQorKwkgIDs7CisrCisrCS1YY29tcGlsZXIpCisrCSAgYXJnX21v ZGU9YXJnICAjICB0aGUgbmV4dCBvbmUgZ29lcyBpbnRvIHRoZSAiYmFzZV9jb21waWxlIiBhcmcg bGlzdAorKwkgIGNvbnRpbnVlICAgICAgIyAgVGhlIGN1cnJlbnQgInNyY2ZpbGUiIHdpbGwgZWl0 aGVyIGJlIHJldGFpbmVkIG9yCisrCSAgOzsgICAgICAgICAgICAjICByZXBsYWNlZCBsYXRlci4g IEkgd291bGQgZ3Vlc3MgdGhhdCB3b3VsZCBiZSBhIGJ1Zy4KKysKKysJLVdjLCopCisrCSAgZnVu Y19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgorKwkgIGFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdAorKwkgIGxhc3Rhcmc9CisrCSAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCisrCSAgZm9y IGFyZyBpbiAkYXJnczsgZG8KKysJICAgIElGUz0iJHNhdmVfaWZzIgorKwkgICAgZnVuY19xdW90 ZV9mb3JfZXZhbCAiJGFyZyIKKysJICAgIGxhc3Rhcmc9IiRsYXN0YXJnICRmdW5jX3F1b3RlX2Zv cl9ldmFsX3Jlc3VsdCIKKysJICBkb25lCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgZnVuY19z dHJpcG5hbWUgJyAnICcnICIkbGFzdGFyZyIKKysJICBsYXN0YXJnPSRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQKKysKKysJICAjIEFkZCB0aGUgYXJndW1lbnRzIHRvIGJhc2VfY29tcGlsZS4KKysJICBi YXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGxhc3RhcmciCisrCSAgY29udGludWUKKysJICA7 OworKworKwkqKQorKwkgICMgQWNjZXB0IHRoZSBjdXJyZW50IGFyZ3VtZW50IGFzIHRoZSBzb3Vy Y2UgZmlsZS4KKysJICAjIFRoZSBwcmV2aW91cyAic3JjZmlsZSIgYmVjb21lcyB0aGUgY3VycmVu dCBhcmd1bWVudC4KKysJICAjCisrCSAgbGFzdGFyZz0iJHNyY2ZpbGUiCisrCSAgc3JjZmlsZT0i JGFyZyIKKysJICA7OworKwllc2FjICAjICBjYXNlICRhcmcKKysJOzsKKysgICAgICBlc2FjICAg ICMgIGNhc2UgJGFyZ19tb2RlCisrCisrICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBw cmV2aW91cyBhcmd1bWVudC4KKysgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkbGFzdGFyZyIK KysgICAgICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGZ1bmNfcXVvdGVfZm9yX2V2YWxf cmVzdWx0IgorKyAgICBkb25lICMgZm9yIGFyZworKworKyAgICBjYXNlICRhcmdfbW9kZSBpbgor KyAgICBhcmcpCisrICAgICAgZnVuY19mYXRhbF9lcnJvciAieW91IG11c3Qgc3BlY2lmeSBhbiBh cmd1bWVudCBmb3IgLVhjb21waWxlIgorKyAgICAgIDs7CisrICAgIHRhcmdldCkKKysgICAgICBm dW5jX2ZhdGFsX2Vycm9yICJ5b3UgbXVzdCBzcGVjaWZ5IGEgdGFyZ2V0IHdpdGggXGAtbyciCisr ICAgICAgOzsKKysgICAgKikKKysgICAgICAjIEdldCB0aGUgbmFtZSBvZiB0aGUgbGlicmFyeSBv YmplY3QuCisrICAgICAgdGVzdCAteiAiJGxpYm9iaiIgJiYgeworKwlmdW5jX2Jhc2VuYW1lICIk c3JjZmlsZSIKKysJbGlib2JqPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgICAgfQorKyAg ICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBSZWNvZ25pemUgc2V2ZXJhbCBkaWZmZXJlbnQg ZmlsZSBzdWZmaXhlcy4KKysgICAgIyBJZiB0aGUgdXNlciBzcGVjaWZpZXMgLW8gZmlsZS5vLCBp dCBpcyByZXBsYWNlZCB3aXRoIGZpbGUubG8KKysgICAgY2FzZSAkbGlib2JqIGluCisrICAgICou W2NDRlNpZm1zb10gfCBcCisrICAgICouYWRhIHwgKi5hZGIgfCAqLmFkcyB8ICouYXNtIHwgXAor KyAgICAqLmMrKyB8ICouY2MgfCAqLmlpIHwgKi5jbGFzcyB8ICouY3BwIHwgKi5jeHggfCBcCisr ICAgICouW2ZGXVswOV0/IHwgKi5mb3IgfCAqLmphdmEgfCAqLm9iaiB8ICouc3gpCisrICAgICAg ZnVuY194Zm9ybSAiJGxpYm9iaiIKKysgICAgICBsaWJvYmo9JGZ1bmNfeGZvcm1fcmVzdWx0Cisr ICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRsaWJvYmogaW4KKysgICAgKi5sbykg ZnVuY19sbzJvICIkbGlib2JqIjsgb2JqPSRmdW5jX2xvMm9fcmVzdWx0IDs7CisrICAgICopCisr ICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGRldGVybWluZSBuYW1lIG9mIGxpYnJhcnkg b2JqZWN0IGZyb20gXGAkbGlib2JqJyIKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIGZ1 bmNfaW5mZXJfdGFnICRiYXNlX2NvbXBpbGUKKysKKysgICAgZm9yIGFyZyBpbiAkbGF0ZXI7IGRv CisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLXNoYXJlZCkKKysJdGVzdCAiJGJ1aWxkX2xp YnRvb2xfbGlicyIgIT0geWVzICYmIFwKKysJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gImNh biBub3QgYnVpbGQgYSBzaGFyZWQgbGlicmFyeSIKKysJYnVpbGRfb2xkX2xpYnM9bm8KKysJY29u dGludWUKKysJOzsKKysKKysgICAgICAtc3RhdGljKQorKwlidWlsZF9saWJ0b29sX2xpYnM9bm8K KysJYnVpbGRfb2xkX2xpYnM9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXByZWZl ci1waWMpCisrCXBpY19tb2RlPXllcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1wcmVm ZXItbm9uLXBpYykKKysJcGljX21vZGU9bm8KKysJY29udGludWUKKysJOzsKKysgICAgICBlc2Fj CisrICAgIGRvbmUKKysKKysgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGxpYm9iaiIKKysgICAg dGVzdCAiWCRsaWJvYmoiICE9ICJYJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IiBcCisrICAg ICAgJiYgJEVDSE8gIlgkbGlib2JqIiB8ICRHUkVQICdbXX4jXip7fTs8Pj8iJyInIicJICYoKXxg JFtdJyBcCisrICAgICAgJiYgZnVuY193YXJuaW5nICJsaWJvYmogbmFtZSBcYCRsaWJvYmonIG1h eSBub3QgY29udGFpbiBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMuIgorKyAgICBmdW5jX2Rpcm5h bWVfYW5kX2Jhc2VuYW1lICIkb2JqIiAiLyIgIiIKKysgICAgb2JqbmFtZT0iJGZ1bmNfYmFzZW5h bWVfcmVzdWx0IgorKyAgICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysgICAgbG9iaj0k e3hkaXJ9JG9iamRpci8kb2JqbmFtZQorKworKyAgICB0ZXN0IC16ICIkYmFzZV9jb21waWxlIiAm JiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgY29tcGlsYXRp b24gY29tbWFuZCIKKysKKysgICAgIyBEZWxldGUgYW55IGxlZnRvdmVyIGxpYnJhcnkgb2JqZWN0 cy4KKysgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKyAgICAgIHJl bW92ZWxpc3Q9IiRvYmogJGxvYmogJGxpYm9iaiAke2xpYm9ian1UIgorKyAgICBlbHNlCisrICAg ICAgcmVtb3ZlbGlzdD0iJGxvYmogJGxpYm9iaiAke2xpYm9ian1UIgorKyAgICBmaQorKworKyAg ICAjIE9uIEN5Z3dpbiB0aGVyZSdzIG5vICJyZWFsIiBQSUMgZmxhZyBzbyB3ZSBtdXN0IGJ1aWxk IGJvdGggb2JqZWN0IHR5cGVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgY3lnd2luKiB8 IG1pbmd3KiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKysgICAgICBwaWNfbW9kZT1kZWZhdWx0 CisrICAgICAgOzsKKysgICAgZXNhYworKyAgICBpZiB0ZXN0ICIkcGljX21vZGUiID0gbm8gJiYg dGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgorKyAgICAgICMg bm9uLVBJQyBjb2RlIGluIHNoYXJlZCBsaWJyYXJpZXMgaXMgbm90IHN1cHBvcnRlZAorKyAgICAg IHBpY19tb2RlPWRlZmF1bHQKKysgICAgZmkKKysKKysgICAgIyBDYWxjdWxhdGUgdGhlIGZpbGVu YW1lIG9mIHRoZSBvdXRwdXQgb2JqZWN0IGlmIGNvbXBpbGVyIGRvZXMKKysgICAgIyBub3Qgc3Vw cG9ydCAtbyB3aXRoIC1jCisrICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0gbm87IHRoZW4K KysgICAgICBvdXRwdXRfb2JqPWAkRUNITyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICdzJV4uKi8l JScgLWUgJ3MlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQorKyAgICAgIGxvY2tmaWxlPSIkb3V0cHV0 X29iai5sb2NrIgorKyAgICBlbHNlCisrICAgICAgb3V0cHV0X29iaj0KKysgICAgICBuZWVkX2xv Y2tzPW5vCisrICAgICAgbG9ja2ZpbGU9CisrICAgIGZpCisrCisrICAgICMgTG9jayB0aGlzIGNy aXRpY2FsIHNlY3Rpb24gaWYgaXQgaXMgbmVlZGVkCisrICAgICMgV2UgdXNlIHRoaXMgc2NyaXB0 IGZpbGUgdG8gbWFrZSB0aGUgbGluaywgaXQgYXZvaWRzIGNyZWF0aW5nIGEgbmV3IGZpbGUKKysg ICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0geWVzOyB0aGVuCisrICAgICAgdW50aWwgJG9wdF9k cnlfcnVuIHx8IGxuICIkcHJvZ3BhdGgiICIkbG9ja2ZpbGUiIDI+L2Rldi9udWxsOyBkbworKwlm dW5jX2VjaG8gIldhaXRpbmcgZm9yICRsb2NrZmlsZSB0byBiZSByZW1vdmVkIgorKwlzbGVlcCAy CisrICAgICAgZG9uZQorKyAgICBlbGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm47IHRoZW4K KysgICAgICBpZiB0ZXN0IC1mICIkbG9ja2ZpbGUiOyB0aGVuCisrCSRFQ0hPICJcCisrKioqIEVS Uk9SLCAkbG9ja2ZpbGUgZXhpc3RzIGFuZCBjb250YWluczoKKytgY2F0ICRsb2NrZmlsZSAyPi9k ZXYvbnVsbGAKKysKKytUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlp bmcgdG8gdXNlIHRoZSBzYW1lCisrdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBj b3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQorK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qg c3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKKytyZXBlYXQgdGhpcyBj b21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVy CisrYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBn ZXQgYSBiZXR0ZXIKKytjb21waWxlci4iCisrCisrCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92 ZWxpc3QKKysJZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgICAgZmkKKysgICAgICByZW1vdmVsaXN0 PSIkcmVtb3ZlbGlzdCAkb3V0cHV0X29iaiIKKysgICAgICAkRUNITyAiJHNyY2ZpbGUiID4gIiRs b2NrZmlsZSIKKysgICAgZmkKKysKKysgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlz dAorKyAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkbG9ja2ZpbGUiCisrICAgIHRyYXAgJyRv cHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScgMSAyIDE1 CisrCisrICAgIGlmIHRlc3QgLW4gIiRmaXhfc3JjZmlsZV9wYXRoIjsgdGhlbgorKyAgICAgIGV2 YWwgc3JjZmlsZT1cIiRmaXhfc3JjZmlsZV9wYXRoXCIKKysgICAgZmkKKysgICAgZnVuY19xdW90 ZV9mb3JfZXZhbCAiJHNyY2ZpbGUiCisrICAgIHFzcmNmaWxlPSRmdW5jX3F1b3RlX2Zvcl9ldmFs X3Jlc3VsdAorKworKyAgICAjIE9ubHkgYnVpbGQgYSBQSUMgb2JqZWN0IGlmIHdlIGFyZSBidWls ZGluZyBsaWJ0b29sIGxpYnJhcmllcy4KKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGli cyIgPSB5ZXM7IHRoZW4KKysgICAgICAjIFdpdGhvdXQgdGhpcyBhc3NpZ25tZW50LCBiYXNlX2Nv bXBpbGUgZ2V0cyBlbXB0aWVkLgorKyAgICAgIGZic2RfaGlkZW91c19zaF9idWc9JGJhc2VfY29t cGlsZQorKworKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0gbm87IHRoZW4KKysJY29tbWFu ZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgorKyAgICAgIGVsc2UKKysJIyBE b24ndCBidWlsZCBQSUMgY29kZQorKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSIK KysgICAgICBmaQorKworKyAgICAgIGZ1bmNfbWtkaXJfcCAiJHhkaXIkb2JqZGlyIgorKworKyAg ICAgIGlmIHRlc3QgLXogIiRvdXRwdXRfb2JqIjsgdGhlbgorKwkjIFBsYWNlIFBJQyBvYmplY3Rz IGluICRvYmpkaXIKKysJY29tbWFuZD0iJGNvbW1hbmQgLW8gJGxvYmoiCisrICAgICAgZmkKKysK KysgICAgICBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgIiRjb21tYW5kIglcCisrICAgICAgICAgICd0 ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxV UkUnCisrCisrICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgorKwkgdGVzdCAi WGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KKysJJEVD SE8gIlwKKysqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoKKytgY2F0ICRsb2NrZmlsZSAy Pi9kZXYvbnVsbGAKKysKKytidXQgaXQgc2hvdWxkIGNvbnRhaW46CisrJHNyY2ZpbGUKKysKKytU aGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBz YW1lCisrdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBh cm91bmQgaXQgYmVjYXVzZQorK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBh bmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKKytyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQg bWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCisrYXZvaWQgcGFyYWxs ZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKKytj b21waWxlci4iCisrCisrCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKysJZXhpdCAk RVhJVF9GQUlMVVJFCisrICAgICAgZmkKKysKKysgICAgICAjIEp1c3QgbW92ZSB0aGUgb2JqZWN0 IGlmIG5lZWRlZCwgdGhlbiBnbyBvbiB0byBjb21waWxlIHRoZSBuZXh0IG9uZQorKyAgICAgIGlm IHRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiB0ZXN0ICJYJG91dHB1dF9vYmoiICE9ICJYJGxvYmoi OyB0aGVuCisrCWZ1bmNfc2hvd19ldmFsICckTVYgIiRvdXRwdXRfb2JqIiAiJGxvYmoiJyBcCisr CSAgJ2Vycm9yPSQ/OyAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRlcnJv cicKKysgICAgICBmaQorKworKyAgICAgICMgQWxsb3cgZXJyb3IgbWVzc2FnZXMgb25seSBmcm9t IHRoZSBmaXJzdCBjb21waWxhdGlvbi4KKysgICAgICBpZiB0ZXN0ICIkc3VwcHJlc3Nfb3B0IiA9 IHllczsgdGhlbgorKwlzdXBwcmVzc19vdXRwdXQ9JyA+L2Rldi9udWxsIDI+JjEnCisrICAgICAg ZmkKKysgICAgZmkKKysKKysgICAgIyBPbmx5IGJ1aWxkIGEgcG9zaXRpb24tZGVwZW5kZW50IG9i amVjdCBpZiB3ZSBidWlsZCBvbGQgbGlicmFyaWVzLgorKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xk X2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgaWYgdGVzdCAiJHBpY19tb2RlIiAhPSB5ZXM7IHRo ZW4KKysJIyBEb24ndCBidWlsZCBQSUMgY29kZQorKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRx c3JjZmlsZSRwaWVfZmxhZyIKKysgICAgICBlbHNlCisrCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUg JHFzcmNmaWxlICRwaWNfZmxhZyIKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRjb21waWxl cl9jX28iID0geWVzOyB0aGVuCisrCWNvbW1hbmQ9IiRjb21tYW5kIC1vICRvYmoiCisrICAgICAg ZmkKKysKKysgICAgICAjIFN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBpZiB3ZSBhbHJlYWR5IGRp ZCBhIFBJQyBjb21waWxhdGlvbi4KKysgICAgICBjb21tYW5kPSIkY29tbWFuZCRzdXBwcmVzc19v dXRwdXQiCisrICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxlICIkY29tbWFuZCIgXAorKyAgICAg ICAgJyRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScK KysKKysgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuICYmCisrCSB0ZXN0ICJYYGNh dCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgIiAhPSAiWCRzcmNmaWxlIjsgdGhlbgorKwkkRUNITyAi XAorKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGNvbnRhaW5zOgorK2BjYXQgJGxvY2tmaWxlIDI+L2Rl di9udWxsYAorKworK2J1dCBpdCBzaG91bGQgY29udGFpbjoKKyskc3JjZmlsZQorKworK1RoaXMg aW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUK Kyt0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3JrIGFyb3Vu ZCBpdCBiZWNhdXNlCisreW91ciBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IFxgLWMnIGFuZCBc YC1vJyB0b2dldGhlci4gIElmIHlvdQorK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBtYXkg c3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0ZXIKKythdm9pZCBwYXJhbGxlbCBi dWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgorK2NvbXBp bGVyLiIKKysKKysJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAorKwlleGl0ICRFWElU X0ZBSUxVUkUKKysgICAgICBmaQorKworKyAgICAgICMgSnVzdCBtb3ZlIHRoZSBvYmplY3QgaWYg bmVlZGVkCisrICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0 X29iaiIgIT0gIlgkb2JqIjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAnJE1WICIkb3V0cHV0X29i aiIgIiRvYmoiJyBcCisrCSAgJ2Vycm9yPSQ/OyAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVs aXN0OyBleGl0ICRlcnJvcicKKysgICAgICBmaQorKyAgICBmaQorKworKyAgICAkb3B0X2RyeV9y dW4gfHwgeworKyAgICAgIGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3QgIiRsaWJvYmoiICIkb2Jq ZGlyLyRvYmpuYW1lIiAiJG9iam5hbWUiCisrCisrICAgICAgIyBVbmxvY2sgdGhlIGNyaXRpY2Fs IHNlY3Rpb24gaWYgaXQgd2FzIGxvY2tlZAorKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiAh PSBubzsgdGhlbgorKwlyZW1vdmVsaXN0PSRsb2NrZmlsZQorKyAgICAgICAgJFJNICIkbG9ja2Zp bGUiCisrICAgICAgZmkKKysgICAgfQorKworKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyt9Cisr CisrJG9wdF9oZWxwIHx8IHsKKyt0ZXN0ICIkbW9kZSIgPSBjb21waWxlICYmIGZ1bmNfbW9kZV9j b21waWxlICR7MSsiJEAifQorK30KKysKKytmdW5jX21vZGVfaGVscCAoKQorK3sKKysgICAgIyBX ZSBuZWVkIHRvIGRpc3BsYXkgaGVscCBmb3IgZWFjaCBvZiB0aGUgbW9kZXMuCisrICAgIGNhc2Ug JG1vZGUgaW4KKysgICAgICAiIikKKysgICAgICAgICMgR2VuZXJpYyBoZWxwIGlzIGV4dHJhY3Rl ZCBmcm9tIHRoZSB1c2FnZSBjb21tZW50cworKyAgICAgICAgIyBhdCB0aGUgc3RhcnQgb2YgdGhp cyBmaWxlLgorKyAgICAgICAgZnVuY19oZWxwCisrICAgICAgICA7OworKworKyAgICAgIGNsZWFu KQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9k ZT1jbGVhbiBSTSBbUk0tT1BUSU9OXS4uLiBGSUxFLi4uCisrCisrUmVtb3ZlIGZpbGVzIGZyb20g dGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysKKytSTSBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvZ3JhbSB0 byB1c2UgdG8gZGVsZXRlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEZJTEUKKysodHlwaWNh bGx5IFxgL2Jpbi9ybScpLiAgUk0tT1BUSU9OUyBhcmUgb3B0aW9ucyAoc3VjaCBhcyBcYC1mJykg dG8gYmUgcGFzc2VkCisrdG8gUk0uCisrCisrSWYgRklMRSBpcyBhIGxpYnRvb2wgbGlicmFyeSwg b2JqZWN0IG9yIHByb2dyYW0sIGFsbCB0aGUgZmlsZXMgYXNzb2NpYXRlZAorK3dpdGggaXQgYXJl IGRlbGV0ZWQuIE90aGVyd2lzZSwgb25seSBGSUxFIGl0c2VsZiBpcyBkZWxldGVkIHVzaW5nIFJN LiIKKysgICAgICAgIDs7CisrCisrICAgICAgY29tcGlsZSkKKysgICAgICAkRUNITyBcCisrIlVz YWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNvbXBpbGUgQ09NUElMRS1DT01NQU5E Li4uIFNPVVJDRUZJTEUKKysKKytDb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wg bGlicmFyeSBvYmplY3QuCisrCisrVGhpcyBtb2RlIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBhZGRp dGlvbmFsIG9wdGlvbnM6CisrCisrICAtbyBPVVRQVVQtRklMRSAgICBzZXQgdGhlIG91dHB1dCBm aWxlIG5hbWUgdG8gT1VUUFVULUZJTEUKKysgIC1uby1zdXBwcmVzcyAgICAgIGRvIG5vdCBzdXBw cmVzcyBjb21waWxlciBvdXRwdXQgZm9yIG11bHRpcGxlIHBhc3NlcworKyAgLXByZWZlci1waWMg ICAgICAgdHJ5IHRvIGJ1aWxkaW5nIFBJQyBvYmplY3RzIG9ubHkKKysgIC1wcmVmZXItbm9uLXBp YyAgIHRyeSB0byBidWlsZGluZyBub24tUElDIG9iamVjdHMgb25seQorKyAgLXNoYXJlZCAgICAg ICAgICAgZG8gbm90IGJ1aWxkIGEgXGAubycgZmlsZSBzdWl0YWJsZSBmb3Igc3RhdGljIGxpbmtp bmcKKysgIC1zdGF0aWMgICAgICAgICAgIG9ubHkgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxl IGZvciBzdGF0aWMgbGlua2luZworKworK0NPTVBJTEUtQ09NTUFORCBpcyBhIGNvbW1hbmQgdG8g YmUgdXNlZCBpbiBjcmVhdGluZyBhIFxgc3RhbmRhcmQnIG9iamVjdCBmaWxlCisrZnJvbSB0aGUg Z2l2ZW4gU09VUkNFRklMRS4KKysKKytUaGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBkZXRlcm1pbmVk IGJ5IHJlbW92aW5nIHRoZSBkaXJlY3RvcnkgY29tcG9uZW50IGZyb20KKytTT1VSQ0VGSUxFLCB0 aGVuIHN1YnN0aXR1dGluZyB0aGUgQyBzb3VyY2UgY29kZSBzdWZmaXggXGAuYycgd2l0aCB0aGUK KytsaWJyYXJ5IG9iamVjdCBzdWZmaXgsIFxgLmxvJy4iCisrICAgICAgICA7OworKworKyAgICAg IGV4ZWN1dGUpCisrICAgICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0u Li4gLS1tb2RlPWV4ZWN1dGUgQ09NTUFORCBbQVJHU10uLi4KKysKKytBdXRvbWF0aWNhbGx5IHNl dCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbS4KKysKKytUaGlzIG1vZGUgYWNjZXB0 cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKKysKKysgIC1kbG9wZW4gRklMRSAg ICAgIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgRklMRSB0byB0aGUgbGlicmFyeSBwYXRo CisrCisrVGhpcyBtb2RlIHNldHMgdGhlIGxpYnJhcnkgcGF0aCBlbnZpcm9ubWVudCB2YXJpYWJs ZSBhY2NvcmRpbmcgdG8gXGAtZGxvcGVuJworK2ZsYWdzLgorKworK0lmIGFueSBvZiB0aGUgQVJH UyBhcmUgbGlidG9vbCBleGVjdXRhYmxlIHdyYXBwZXJzLCB0aGVuIHRoZXkgYXJlIHRyYW5zbGF0 ZWQKKytpbnRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgdW5pbnN0YWxsZWQgYmluYXJ5LCBhbmQgYW55 IG9mIHRoZWlyIHJlcXVpcmVkIGxpYnJhcnkKKytkaXJlY3RvcmllcyBhcmUgYWRkZWQgdG8gdGhl IGxpYnJhcnkgcGF0aC4KKysKKytUaGVuLCBDT01NQU5EIGlzIGV4ZWN1dGVkLCB3aXRoIEFSR1Mg YXMgYXJndW1lbnRzLiIKKysgICAgICAgIDs7CisrCisrICAgICAgZmluaXNoKQorKyAgICAgICAg JEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1maW5pc2ggW0xJ QkRJUl0uLi4KKysKKytDb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFy aWVzLgorKworK0VhY2ggTElCRElSIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgbGlidG9v bCBsaWJyYXJpZXMuCisrCisrVGhlIGNvbW1hbmRzIHRoYXQgdGhpcyBtb2RlIGV4ZWN1dGVzIG1h eSByZXF1aXJlIHN1cGVydXNlciBwcml2aWxlZ2VzLiAgVXNlCisrdGhlIFxgLS1kcnktcnVuJyBv cHRpb24gaWYgeW91IGp1c3Qgd2FudCB0byBzZWUgd2hhdCB3b3VsZCBiZSBleGVjdXRlZC4iCisr ICAgICAgICA7OworKworKyAgICAgIGluc3RhbGwpCisrICAgICAgICAkRUNITyBcCisrIlVzYWdl OiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWluc3RhbGwgSU5TVEFMTC1DT01NQU5ELi4u CisrCisrSW5zdGFsbCBleGVjdXRhYmxlcyBvciBsaWJyYXJpZXMuCisrCisrSU5TVEFMTC1DT01N QU5EIGlzIHRoZSBpbnN0YWxsYXRpb24gY29tbWFuZC4gIFRoZSBmaXJzdCBjb21wb25lbnQgc2hv dWxkIGJlCisrZWl0aGVyIHRoZSBcYGluc3RhbGwnIG9yIFxgY3AnIHByb2dyYW0uCisrCisrVGhl IGZvbGxvd2luZyBjb21wb25lbnRzIG9mIElOU1RBTEwtQ09NTUFORCBhcmUgdHJlYXRlZCBzcGVj aWFsbHk6CisrCisrICAtaW5zdC1wcmVmaXggUFJFRklYLURJUiAgVXNlIFBSRUZJWC1ESVIgYXMg YSBzdGFnaW5nIGFyZWEgZm9yIGluc3RhbGxhdGlvbgorKworK1RoZSByZXN0IG9mIHRoZSBjb21w b25lbnRzIGFyZSBpbnRlcnByZXRlZCBhcyBhcmd1bWVudHMgdG8gdGhhdCBjb21tYW5kIChvbmx5 CisrQlNELWNvbXBhdGlibGUgaW5zdGFsbCBvcHRpb25zIGFyZSByZWNvZ25pemVkKS4iCisrICAg ICAgICA7OworKworKyAgICAgIGxpbmspCisrICAgICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJv Z25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWxpbmsgTElOSy1DT01NQU5ELi4uCisrCisrTGluayBv YmplY3QgZmlsZXMgb3IgbGlicmFyaWVzIHRvZ2V0aGVyIHRvIGZvcm0gYW5vdGhlciBsaWJyYXJ5 LCBvciB0bworK2NyZWF0ZSBhbiBleGVjdXRhYmxlIHByb2dyYW0uCisrCisrTElOSy1DT01NQU5E IGlzIGEgY29tbWFuZCB1c2luZyB0aGUgQyBjb21waWxlciB0aGF0IHlvdSB3b3VsZCB1c2UgdG8g Y3JlYXRlCisrYSBwcm9ncmFtIGZyb20gc2V2ZXJhbCBvYmplY3QgZmlsZXMuCisrCisrVGhlIGZv bGxvd2luZyBjb21wb25lbnRzIG9mIExJTkstQ09NTUFORCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6 CisrCisrICAtYWxsLXN0YXRpYyAgICAgICBkbyBub3QgZG8gYW55IGR5bmFtaWMgbGlua2luZyBh dCBhbGwKKysgIC1hdm9pZC12ZXJzaW9uICAgIGRvIG5vdCBhZGQgYSB2ZXJzaW9uIHN1ZmZpeCBp ZiBwb3NzaWJsZQorKyAgLWRsb3BlbiBGSUxFICAgICAgXGAtZGxwcmVvcGVuJyBGSUxFIGlmIGl0 IGNhbm5vdCBiZSBkbG9wZW5lZCBhdCBydW50aW1lCisrICAtZGxwcmVvcGVuIEZJTEUgICBsaW5r IGluIEZJTEUgYW5kIGFkZCBpdHMgc3ltYm9scyB0byBsdF9wcmVsb2FkZWRfc3ltYm9scworKyAg LWV4cG9ydC1keW5hbWljICAgYWxsb3cgc3ltYm9scyBmcm9tIE9VVFBVVC1GSUxFIHRvIGJlIHJl c29sdmVkIHdpdGggZGxzeW0oMykKKysgIC1leHBvcnQtc3ltYm9scyBTWU1GSUxFCisrICAgICAg ICAgICAgICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMgbGlzdGVkIGluIFNZ TUZJTEUKKysgIC1leHBvcnQtc3ltYm9scy1yZWdleCBSRUdFWAorKyAgICAgICAgICAgICAgICAg ICAgdHJ5IHRvIGV4cG9ydCBvbmx5IHRoZSBzeW1ib2xzIG1hdGNoaW5nIFJFR0VYCisrICAtTExJ QkRJUiAgICAgICAgICBzZWFyY2ggTElCRElSIGZvciByZXF1aXJlZCBpbnN0YWxsZWQgbGlicmFy aWVzCisrICAtbE5BTUUgICAgICAgICAgICBPVVRQVVQtRklMRSByZXF1aXJlcyB0aGUgaW5zdGFs bGVkIGxpYnJhcnkgbGliTkFNRQorKyAgLW1vZHVsZSAgICAgICAgICAgYnVpbGQgYSBsaWJyYXJ5 IHRoYXQgY2FuIGRsb3BlbmVkCisrICAtbm8tZmFzdC1pbnN0YWxsICBkaXNhYmxlIHRoZSBmYXN0 LWluc3RhbGwgbW9kZQorKyAgLW5vLWluc3RhbGwgICAgICAgbGluayBhIG5vdC1pbnN0YWxsYWJs ZSBleGVjdXRhYmxlCisrICAtbm8tdW5kZWZpbmVkICAgICBkZWNsYXJlIHRoYXQgYSBsaWJyYXJ5 IGRvZXMgbm90IHJlZmVyIHRvIGV4dGVybmFsIHN5bWJvbHMKKysgIC1vIE9VVFBVVC1GSUxFICAg IGNyZWF0ZSBPVVRQVVQtRklMRSBmcm9tIHRoZSBzcGVjaWZpZWQgb2JqZWN0cworKyAgLW9iamVj dGxpc3QgRklMRSAgVXNlIGEgbGlzdCBvZiBvYmplY3QgZmlsZXMgZm91bmQgaW4gRklMRSB0byBz cGVjaWZ5IG9iamVjdHMKKysgIC1wcmVjaW91cy1maWxlcy1yZWdleCBSRUdFWAorKyAgICAgICAg ICAgICAgICAgICAgZG9uJ3QgcmVtb3ZlIG91dHB1dCBmaWxlcyBtYXRjaGluZyBSRUdFWAorKyAg LXJlbGVhc2UgUkVMRUFTRSAgc3BlY2lmeSBwYWNrYWdlIHJlbGVhc2UgaW5mb3JtYXRpb24KKysg IC1ycGF0aCBMSUJESVIgICAgIHRoZSBjcmVhdGVkIGxpYnJhcnkgd2lsbCBldmVudHVhbGx5IGJl IGluc3RhbGxlZCBpbiBMSUJESVIKKysgIC1SWyBdTElCRElSICAgICAgIGFkZCBMSUJESVIgdG8g dGhlIHJ1bnRpbWUgcGF0aCBvZiBwcm9ncmFtcyBhbmQgbGlicmFyaWVzCisrICAtc2hhcmVkICAg ICAgICAgICBvbmx5IGRvIGR5bmFtaWMgbGlua2luZyBvZiBsaWJ0b29sIGxpYnJhcmllcworKyAg LXNocmV4dCBTVUZGSVggICAgb3ZlcnJpZGUgdGhlIHN0YW5kYXJkIHNoYXJlZCBsaWJyYXJ5IGZp bGUgZXh0ZW5zaW9uCisrICAtc3RhdGljICAgICAgICAgICBkbyBub3QgZG8gYW55IGR5bmFtaWMg bGlua2luZyBvZiB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcworKyAgLXN0YXRpYy1saWJ0 b29sLWxpYnMKKysgICAgICAgICAgICAgICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5r aW5nIG9mIGxpYnRvb2wgbGlicmFyaWVzCisrICAtdmVyc2lvbi1pbmZvIENVUlJFTlRbOlJFVklT SU9OWzpBR0VdXQorKyAgICAgICAgICAgICAgICAgICAgc3BlY2lmeSBsaWJyYXJ5IHZlcnNpb24g aW5mbyBbZWFjaCB2YXJpYWJsZSBkZWZhdWx0cyB0byAwXQorKyAgLXdlYWsgTElCTkFNRSAgICAg ZGVjbGFyZSB0aGF0IHRoZSB0YXJnZXQgcHJvdmlkZXMgdGhlIExJQk5BTUUgaW50ZXJmYWNlCisr CisrQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0nKSBhcmUg aWdub3JlZC4KKysKKytFdmVyeSBvdGhlciBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmlsZW5h bWUuICBGaWxlcyBlbmRpbmcgaW4gXGAubGEnIGFyZQorK3RyZWF0ZWQgYXMgdW5pbnN0YWxsZWQg bGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVzIGFyZSBzdGFuZGFyZCBvciBsaWJyYXJ5Cisr b2JqZWN0IGZpbGVzLgorKworK0lmIHRoZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxhJywgdGhl biBhIGxpYnRvb2wgbGlicmFyeSBpcyBjcmVhdGVkLAorK29ubHkgbGlicmFyeSBvYmplY3RzIChc YC5sbycgZmlsZXMpIG1heSBiZSBzcGVjaWZpZWQsIGFuZCBcYC1ycGF0aCcgaXMKKytyZXF1aXJl ZCwgZXhjZXB0IHdoZW4gY3JlYXRpbmcgYSBjb252ZW5pZW5jZSBsaWJyYXJ5LgorKworK0lmIE9V VFBVVC1GSUxFIGVuZHMgaW4gXGAuYScgb3IgXGAubGliJywgdGhlbiBhIHN0YW5kYXJkIGxpYnJh cnkgaXMgY3JlYXRlZAorK3VzaW5nIFxgYXInIGFuZCBcYHJhbmxpYicsIG9yIG9uIFdpbmRvd3Mg dXNpbmcgXGBsaWInLgorKworK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAubG8nIG9yIFxgLiR7 b2JqZXh0fScsIHRoZW4gYSByZWxvYWRhYmxlIG9iamVjdCBmaWxlCisraXMgY3JlYXRlZCwgb3Ro ZXJ3aXNlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbSBpcyBjcmVhdGVkLiIKKysgICAgICAgIDs7Cisr CisrICAgICAgdW5pbnN0YWxsKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1l IFtPUFRJT05dLi4uIC0tbW9kZT11bmluc3RhbGwgUk0gW1JNLU9QVElPTl0uLi4gRklMRS4uLgor KworK1JlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgorKwor K1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNz b2NpYXRlZCB3aXRoIGVhY2ggRklMRQorKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJ T05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKKyt0byBSTS4KKysK KytJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0ZWQg d2l0aCBpdCBhcmUgZGVsZXRlZC4KKytPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVs ZXRlZCB1c2luZyBSTS4iCisrICAgICAgICA7OworKworKyAgICAgICopCisrICAgICAgICBmdW5j X2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciCisrICAgICAgICA7 OworKyAgICBlc2FjCisrCisrICAgICRFQ0hPCisrICAgICRFQ0hPICJUcnkgXGAkcHJvZ25hbWUg LS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBtb2Rlcy4iCisrCisrICAg IGV4aXQgJD8KKyt9CisrCisrICAjIE5vdyB0aGF0IHdlJ3ZlIGNvbGxlY3RlZCBhIHBvc3NpYmxl IC0tbW9kZSBhcmcsIHNob3cgaGVscCBpZiBuZWNlc3NhcnkKKysgICRvcHRfaGVscCAmJiBmdW5j X21vZGVfaGVscAorKworKworKyMgZnVuY19tb2RlX2V4ZWN1dGUgYXJnLi4uCisrZnVuY19tb2Rl X2V4ZWN1dGUgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgIyBUaGUgZmlyc3QgYXJndW1l bnQgaXMgdGhlIGNvbW1hbmQgbmFtZS4KKysgICAgY21kPSIkbm9ub3B0IgorKyAgICB0ZXN0IC16 ICIkY21kIiAmJiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEg Q09NTUFORCIKKysKKysgICAgIyBIYW5kbGUgLWRsb3BlbiBmbGFncyBpbW1lZGlhdGVseS4KKysg ICAgZm9yIGZpbGUgaW4gJGV4ZWN1dGVfZGxmaWxlczsgZG8KKysgICAgICB0ZXN0IC1mICIkZmls ZSIgXAorKwl8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGZpbGUnIGlzIG5vdCBhIGZpbGUiCisrCisr ICAgICAgZGlyPQorKyAgICAgIGNhc2UgJGZpbGUgaW4KKysgICAgICAqLmxhKQorKwkjIENoZWNr IHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgorKwlmdW5jX2xh bGliX3Vuc2FmZV9wICIkZmlsZSIgXAorKwkgIHx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkbGliJyBp cyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisrCisrCSMgUmVhZCB0aGUgbGlidG9vbCBs aWJyYXJ5LgorKwlkbG5hbWU9CisrCWxpYnJhcnlfbmFtZXM9CisrCWZ1bmNfc291cmNlICIkZmls ZSIKKysKKysJIyBTa2lwIHRoaXMgbGlicmFyeSBpZiBpdCBjYW5ub3QgYmUgZGxvcGVuZWQuCisr CWlmIHRlc3QgLXogIiRkbG5hbWUiOyB0aGVuCisrCSAgIyBXYXJuIGlmIGl0IHdhcyBhIHNoYXJl ZCBsaWJyYXJ5LgorKwkgIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJiBcCisrCSAgICBmdW5j X3dhcm5pbmcgIlxgJGZpbGUnIHdhcyBub3QgbGlua2VkIHdpdGggXGAtZXhwb3J0LWR5bmFtaWMn IgorKwkgIGNvbnRpbnVlCisrCWZpCisrCisrCWZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgor KwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwlpZiB0ZXN0IC1mICIkZGlyLyRvYmpk aXIvJGRsbmFtZSI7IHRoZW4KKysJICBkaXI9IiRkaXIvJG9iamRpciIKKysJZWxzZQorKwkgIGlm IHRlc3QgISAtZiAiJGRpci8kZGxuYW1lIjsgdGhlbgorKwkgICAgZnVuY19mYXRhbF9lcnJvciAi Y2Fubm90IGZpbmQgXGAkZGxuYW1lJyBpbiBcYCRkaXInIG9yIFxgJGRpci8kb2JqZGlyJyIKKysJ ICBmaQorKwlmaQorKwk7OworKworKyAgICAgICoubG8pCisrCSMgSnVzdCBhZGQgdGhlIGRpcmVj dG9yeSBjb250YWluaW5nIHRoZSAubG8gZmlsZS4KKysJZnVuY19kaXJuYW1lICIkZmlsZSIgIiIg Ii4iCisrCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrCTs7CisrCisrICAgICAgKikKKysJ ZnVuY193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG5vbi1saWJ0b29sIGxpYnJh cmllcyBhbmQgb2JqZWN0cyIKKysJY29udGludWUKKysJOzsKKysgICAgICBlc2FjCisrCisrICAg ICAgIyBHZXQgdGhlIGFic29sdXRlIHBhdGhuYW1lLgorKyAgICAgIGFic2Rpcj1gY2QgIiRkaXIi ICYmIHB3ZGAKKysgICAgICB0ZXN0IC1uICIkYWJzZGlyIiAmJiBkaXI9IiRhYnNkaXIiCisrCisr ICAgICAgIyBOb3cgYWRkIHRoZSBkaXJlY3RvcnkgdG8gc2hsaWJwYXRoX3Zhci4KKysgICAgICBp ZiBldmFsICJ0ZXN0IC16IFwiXCQkc2hsaWJwYXRoX3ZhclwiIjsgdGhlbgorKwlldmFsICIkc2hs aWJwYXRoX3Zhcj1cIlwkZGlyXCIiCisrICAgICAgZWxzZQorKwlldmFsICIkc2hsaWJwYXRoX3Zh cj1cIlwkZGlyOlwkJHNobGlicGF0aF92YXJcIiIKKysgICAgICBmaQorKyAgICBkb25lCisrCisr ICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQgc2hs aWJwYXRoX3ZhcgorKyAgICAjIHJhdGhlciB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisr ICAgIGxpYnRvb2xfZXhlY3V0ZV9tYWdpYz0iJG1hZ2ljIgorKworKyAgICAjIENoZWNrIGlmIGFu eSBvZiB0aGUgYXJndW1lbnRzIGlzIGEgd3JhcHBlciBzY3JpcHQuCisrICAgIGFyZ3M9CisrICAg IGZvciBmaWxlCisrICAgIGRvCisrICAgICAgY2FzZSAkZmlsZSBpbgorKyAgICAgIC0qKSA7Owor KyAgICAgICopCisrCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxpYnRv b2wgcHJvZ3JhbS4KKysJaWYgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgIiRmaWxlIjsgdGhlbgor KwkgIGZ1bmNfc291cmNlICIkZmlsZSIKKysJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBlZCBu YW1lLgorKwkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFtIgorKwllbGlmIGZ1bmNfbHR3cmFwcGVy X2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCisrCSAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFt ZSAiJGZpbGUiCisrCSAgZnVuY19zb3VyY2UgIiRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jl c3VsdCIKKysJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBlZCBuYW1lLgorKwkgIGZpbGU9IiRw cm9nZGlyLyRwcm9ncmFtIgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICAjIFF1b3Rl IGFyZ3VtZW50cyAodG8gcHJlc2VydmUgc2hlbGwgbWV0YWNoYXJhY3RlcnMpLgorKyAgICAgIGZ1 bmNfcXVvdGVfZm9yX2V2YWwgIiRmaWxlIgorKyAgICAgIGFyZ3M9IiRhcmdzICRmdW5jX3F1b3Rl X2Zvcl9ldmFsX3Jlc3VsdCIKKysgICAgZG9uZQorKworKyAgICBpZiB0ZXN0ICJYJG9wdF9kcnlf cnVuIiA9IFhmYWxzZTsgdGhlbgorKyAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsg dGhlbgorKwkjIEV4cG9ydCB0aGUgc2hsaWJwYXRoX3Zhci4KKysJZXZhbCAiZXhwb3J0ICRzaGxp YnBhdGhfdmFyIgorKyAgICAgIGZpCisrCisrICAgICAgIyBSZXN0b3JlIHNhdmVkIGVudmlyb25t ZW50IHZhcmlhYmxlcworKyAgICAgIGZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwg TENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUworKyAgICAgIGRvCisrCWV2YWwgImlmIHRl c3QgXCJcJHtzYXZlXyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCisrICAgICAgICAgICAgICAg ICRsdF92YXI9XCRzYXZlXyRsdF92YXI7IGV4cG9ydCAkbHRfdmFyCisrCSAgICAgIGVsc2UKKysJ CSRsdF91bnNldCAkbHRfdmFyCisrCSAgICAgIGZpIgorKyAgICAgIGRvbmUKKysKKysgICAgICAj IE5vdyBwcmVwYXJlIHRvIGFjdHVhbGx5IGV4ZWMgdGhlIGNvbW1hbmQuCisrICAgICAgZXhlY19j bWQ9IlwkY21kJGFyZ3MiCisrICAgIGVsc2UKKysgICAgICAjIERpc3BsYXkgd2hhdCB3b3VsZCBi ZSBkb25lLgorKyAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorKwlldmFs ICJcJEVDSE8gXCJcJHNobGlicGF0aF92YXI9XCQkc2hsaWJwYXRoX3ZhclwiIgorKwkkRUNITyAi ZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgorKyAgICAgIGZpCisrICAgICAgJEVDSE8gIiRjbWQkYXJn cyIKKysgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKKysgICAgZmkKKyt9CisrCisrdGVzdCAiJG1v ZGUiID0gZXhlY3V0ZSAmJiBmdW5jX21vZGVfZXhlY3V0ZSAkezErIiRAIn0KKysKKysKKysjIGZ1 bmNfbW9kZV9maW5pc2ggYXJnLi4uCisrZnVuY19tb2RlX2ZpbmlzaCAoKQorK3sKKysgICAgJG9w dF9kZWJ1ZworKyAgICBsaWJkaXJzPSIkbm9ub3B0IgorKyAgICBhZG1pbmNtZHM9CisrCisrICAg IGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRp cnMiOyB0aGVuCisrICAgICAgZm9yIGRpcgorKyAgICAgIGRvCisrCWxpYmRpcnM9IiRsaWJkaXJz ICRkaXIiCisrICAgICAgZG9uZQorKworKyAgICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRv CisrCWlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyI7IHRoZW4KKysJICAjIERvIGVhY2ggY29tbWFu ZCBpbiB0aGUgZmluaXNoIGNvbW1hbmRzLgorKwkgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZmluaXNo X2NtZHMiICdhZG1pbmNtZHM9IiRhZG1pbmNtZHMKKysnIiRjbWQiJyInCisrCWZpCisrCWlmIHRl c3QgLW4gIiRmaW5pc2hfZXZhbCI7IHRoZW4KKysJICAjIERvIHRoZSBzaW5nbGUgZmluaXNoX2V2 YWwuCisrCSAgZXZhbCBjbWRzPVwiJGZpbmlzaF9ldmFsXCIKKysJICAkb3B0X2RyeV9ydW4gfHwg ZXZhbCAiJGNtZHMiIHx8IGFkbWluY21kcz0iJGFkbWluY21kcworKyAgICAgICAkY21kcyIKKysJ ZmkKKysgICAgICBkb25lCisrICAgIGZpCisrCisrICAgICMgRXhpdCBoZXJlIGlmIHRoZXkgd2Fu dGVkIHNpbGVudCBtb2RlLgorKyAgICAkb3B0X3NpbGVudCAmJiBleGl0ICRFWElUX1NVQ0NFU1MK KysKKysgICAgJEVDSE8gIlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRYc2VkCisrICAgICRFQ0hPICJMaWJy YXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCisrICAgIGZvciBsaWJkaXIgaW4gJGxpYmRp cnM7IGRvCisrICAgICAgJEVDSE8gIiAgICRsaWJkaXIiCisrICAgIGRvbmUKKysgICAgJEVDSE8K KysgICAgJEVDSE8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3YW50IHRvIGxpbmsgYWdhaW5zdCBp bnN0YWxsZWQgbGlicmFyaWVzIgorKyAgICAkRUNITyAiaW4gYSBnaXZlbiBkaXJlY3RvcnksIExJ QkRJUiwgeW91IG11c3QgZWl0aGVyIHVzZSBsaWJ0b29sLCBhbmQiCisrICAgICRFQ0hPICJzcGVj aWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBvciB1c2UgdGhlIFxgLUxMSUJE SVInIgorKyAgICAkRUNITyAiZmxhZyBkdXJpbmcgbGlua2luZyBhbmQgZG8gYXQgbGVhc3Qgb25l IG9mIHRoZSBmb2xsb3dpbmc6IgorKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRo ZW4KKysgICAgICAkRUNITyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRzaGxpYnBhdGhfdmFy JyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKKysgICAgICAkRUNITyAiICAgICBkdXJpbmcgZXhlY3V0 aW9uIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrICAg ICAgJEVDSE8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkcnVucGF0aF92YXInIGVudmlyb25t ZW50IHZhcmlhYmxlIgorKyAgICAgICRFQ0hPICIgICAgIGR1cmluZyBsaW5raW5nIgorKyAgICBm aQorKyAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKysg ICAgICBsaWJkaXI9TElCRElSCisrICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNcIgorKworKyAgICAgICRFQ0hPICIgICAtIHVzZSB0aGUgXGAkZmxhZycgbGlua2Vy IGZsYWciCisrICAgIGZpCisrICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCisrICAg ICAgJEVDSE8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHJ1biB0aGVzZSBj b21tYW5kczokYWRtaW5jbWRzIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28u Y29uZjsgdGhlbgorKyAgICAgICRFQ0hPICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5pc3Ry YXRvciBhZGQgTElCRElSIHRvIFxgL2V0Yy9sZC5zby5jb25mJyIKKysgICAgZmkKKysgICAgJEVD SE8KKysKKysgICAgJEVDSE8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0aW9u IGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgorKyAgICBjYXNlICRob3N0IGluCisrICAgICAg c29sYXJpczIuWzY3ODldfHNvbGFyaXMyLjFbMC05XSkKKysgICAgICAgICRFQ0hPICJtb3JlIGlu Zm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSwgY3JsZSgxKSBhbmQgbGQuc28oOCkgbWFudWFs IgorKwkkRUNITyAicGFnZXMuIgorKwk7OworKyAgICAgICopCisrICAgICAgICAkRUNITyAibW9y ZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCBwYWdl cy4iCisrICAgICAgICA7OworKyAgICBlc2FjCisrICAgICRFQ0hPICJYLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIg fCAkWHNlZAorKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyt9CisrCisrdGVzdCAiJG1vZGUiID0g ZmluaXNoICYmIGZ1bmNfbW9kZV9maW5pc2ggJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX21vZGVf aW5zdGFsbCBhcmcuLi4KKytmdW5jX21vZGVfaW5zdGFsbCAoKQorK3sKKysgICAgJG9wdF9kZWJ1 ZworKyAgICAjIFRoZXJlIG1heSBiZSBhbiBvcHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0aGUg YmVnaW5uaW5nIG9mCisrICAgICMgaW5zdGFsbF9wcm9nIChlc3BlY2lhbGx5IG9uIFdpbmRvd3Mg TlQpLgorKyAgICBpZiB0ZXN0ICIkbm9ub3B0IiA9ICIkU0hFTEwiIHx8IHRlc3QgIiRub25vcHQi ID0gL2Jpbi9zaCB8fAorKyAgICAgICAjIEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdzIGlu c3RhbGwgY29tbWFuZC4KKysgICAgICAgJEVDSE8gIlgkbm9ub3B0IiB8ICRHUkVQIHNodG9vbCA+ L2Rldi9udWxsOyB0aGVuCisrICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgorKyAgICAg IGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRub25vcHQiCisrICAgICAgaW5zdGFsbF9wcm9nPSIkZnVu Y19xdW90ZV9mb3JfZXZhbF9yZXN1bHQgIgorKyAgICAgIGFyZz0kMQorKyAgICAgIHNoaWZ0Cisr ICAgIGVsc2UKKysgICAgICBpbnN0YWxsX3Byb2c9CisrICAgICAgYXJnPSRub25vcHQKKysgICAg ZmkKKysKKysgICAgIyBUaGUgcmVhbCBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG5hbWUg b2YgdGhlIGluc3RhbGxhdGlvbiBwcm9ncmFtLgorKyAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUg aXQuCisrICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrICAgIGluc3RhbGxfcHJvZz0i JGluc3RhbGxfcHJvZyRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysKKysgICAgIyBXZSBu ZWVkIHRvIGFjY2VwdCBhdCBsZWFzdCBhbGwgdGhlIEJTRCBpbnN0YWxsIGZsYWdzLgorKyAgICBk ZXN0PQorKyAgICBmaWxlcz0KKysgICAgb3B0cz0KKysgICAgcHJldj0KKysgICAgaW5zdGFsbF90 eXBlPQorKyAgICBpc2Rpcj1ubworKyAgICBzdHJpcG1lPQorKyAgICBmb3IgYXJnCisrICAgIGRv CisrICAgICAgaWYgdGVzdCAtbiAiJGRlc3QiOyB0aGVuCisrCWZpbGVzPSIkZmlsZXMgJGRlc3Qi CisrCWRlc3Q9JGFyZworKwljb250aW51ZQorKyAgICAgIGZpCisrCisrICAgICAgY2FzZSAkYXJn IGluCisrICAgICAgLWQpIGlzZGlyPXllcyA7OworKyAgICAgIC1mKQorKwljYXNlICIgJGluc3Rh bGxfcHJvZyAiIGluCisrCSpbXFxcIC9dY3BcICopIDs7CisrCSopIHByZXY9JGFyZyA7OworKwll c2FjCisrCTs7CisrICAgICAgLWcgfCAtbSB8IC1vKQorKwlwcmV2PSRhcmcKKysJOzsKKysgICAg ICAtcykKKysJc3RyaXBtZT0iIC1zIgorKwljb250aW51ZQorKwk7OworKyAgICAgIC0qKQorKwk7 OworKyAgICAgICopCisrCSMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkZWQgYW4gYXJndW1l bnQsIHRoZW4gc2tpcCBpdC4KKysJaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisrCSAgcHJldj0K KysJZWxzZQorKwkgIGRlc3Q9JGFyZworKwkgIGNvbnRpbnVlCisrCWZpCisrCTs7CisrICAgICAg ZXNhYworKworKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgYXJndW1lbnQuCisrICAg ICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysgICAgICBpbnN0YWxsX3Byb2c9IiRpbnN0 YWxsX3Byb2cgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKyAgICBkb25lCisrCisrICAg IHRlc3QgLXogIiRpbnN0YWxsX3Byb2ciICYmIFwKKysgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlv dSBtdXN0IHNwZWNpZnkgYW4gaW5zdGFsbCBwcm9ncmFtIgorKworKyAgICB0ZXN0IC1uICIkcHJl diIgJiYgXAorKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAidGhlIFxgJHByZXYnIG9wdGlvbiByZXF1 aXJlcyBhbiBhcmd1bWVudCIKKysKKysgICAgaWYgdGVzdCAteiAiJGZpbGVzIjsgdGhlbgorKyAg ICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgorKwlmdW5jX2ZhdGFsX2hlbHAgIm5vIGZpbGUg b3IgZGVzdGluYXRpb24gc3BlY2lmaWVkIgorKyAgICAgIGVsc2UKKysJZnVuY19mYXRhbF9oZWxw ICJ5b3UgbXVzdCBzcGVjaWZ5IGEgZGVzdGluYXRpb24iCisrICAgICAgZmkKKysgICAgZmkKKysK KysgICAgIyBTdHJpcCBhbnkgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgZGVzdGluYXRpb24uCisr ICAgIGZ1bmNfc3RyaXBuYW1lICcnICcvJyAiJGRlc3QiCisrICAgIGRlc3Q9JGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdAorKworKyAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBp cyBhIGRpcmVjdG9yeS4KKysgICAgdGVzdCAtZCAiJGRlc3QiICYmIGlzZGlyPXllcworKyAgICBp ZiB0ZXN0ICIkaXNkaXIiID0geWVzOyB0aGVuCisrICAgICAgZGVzdGRpcj0iJGRlc3QiCisrICAg ICAgZGVzdG5hbWU9CisrICAgIGVsc2UKKysgICAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1l ICIkZGVzdCIgIiIgIi4iCisrICAgICAgZGVzdGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisr ICAgICAgZGVzdG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysKKysgICAgICAjIE5vdCBh IGRpcmVjdG9yeSwgc28gY2hlY2sgdG8gc2VlIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZmlsZSBz cGVjaWZpZWQuCisrICAgICAgc2V0IGR1bW15ICRmaWxlczsgc2hpZnQKKysgICAgICB0ZXN0ICIk IyIgLWd0IDEgJiYgXAorKwlmdW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3QnIGlzIG5vdCBhIGRpcmVj dG9yeSIKKysgICAgZmkKKysgICAgY2FzZSAkZGVzdGRpciBpbgorKyAgICBbXFwvXSogfCBbQS1a YS16XTpbXFwvXSopIDs7CisrICAgICopCisrICAgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbwor KwljYXNlICRmaWxlIGluCisrCSoubG8pIDs7CisrCSopCisrCSAgZnVuY19mYXRhbF9oZWxwICJc YCRkZXN0ZGlyJyBtdXN0IGJlIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIgorKwkgIDs7Cisr CWVzYWMKKysgICAgICBkb25lCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICAjIFRoaXMg dmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyByYXRo ZXIKKysgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xfaW5z dGFsbF9tYWdpYz0iJG1hZ2ljIgorKworKyAgICBzdGF0aWNsaWJzPQorKyAgICBmdXR1cmVfbGli ZGlycz0KKysgICAgY3VycmVudF9saWJkaXJzPQorKyAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRv CisrCisrICAgICAgIyBEbyBlYWNoIGluc3RhbGxhdGlvbi4KKysgICAgICBjYXNlICRmaWxlIGlu CisrICAgICAgKi4kbGliZXh0KQorKwkjIERvIHRoZSBzdGF0aWMgbGlicmFyaWVzIGxhdGVyLgor KwlzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZmlsZSIKKysJOzsKKysKKysgICAgICAqLmxhKQor KwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgor KwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAorKwkgIHx8IGZ1bmNfZmF0YWxfaGVscCAi XGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKworKwlsaWJyYXJ5X25h bWVzPQorKwlvbGRfbGlicmFyeT0KKysJcmVsaW5rX2NvbW1hbmQ9CisrCWZ1bmNfc291cmNlICIk ZmlsZSIKKysKKysJIyBBZGQgdGhlIGxpYmRpciB0byBjdXJyZW50X2xpYmRpcnMgaWYgaXQgaXMg dGhlIGRlc3RpbmF0aW9uLgorKwlpZiB0ZXN0ICJYJGRlc3RkaXIiID0gIlgkbGliZGlyIjsgdGhl bgorKwkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgorKwkgICoiICRsaWJkaXIgIiopIDs7 CisrCSAgKikgY3VycmVudF9saWJkaXJzPSIkY3VycmVudF9saWJkaXJzICRsaWJkaXIiIDs7Cisr CSAgZXNhYworKwllbHNlCisrCSAgIyBOb3RlIHRoZSBsaWJkaXIgYXMgYSBmdXR1cmUgbGliZGly LgorKwkgIGNhc2UgIiRmdXR1cmVfbGliZGlycyAiIGluCisrCSAgKiIgJGxpYmRpciAiKikgOzsK KysJICAqKSBmdXR1cmVfbGliZGlycz0iJGZ1dHVyZV9saWJkaXJzICRsaWJkaXIiIDs7CisrCSAg ZXNhYworKwlmaQorKworKwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiLyIgIiIKKysJZGlyPSIkZnVu Y19kaXJuYW1lX3Jlc3VsdCIKKysJZGlyPSIkZGlyJG9iamRpciIKKysKKysJaWYgdGVzdCAtbiAi JHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkgICMgRGV0ZXJtaW5lIHRoZSBwcmVmaXggdGhlIHVz ZXIgaGFzIGFwcGxpZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCisrCSAgaW5zdF9wcmVmaXhfZGlyPWAk RUNITyAiWCRkZXN0ZGlyIiB8ICRYc2VkIC1lICJzJSRsaWJkaXJcJCUlImAKKysKKysJICAjIERv bid0IGFsbG93IHRoZSB1c2VyIHRvIHBsYWNlIHVzIG91dHNpZGUgb2Ygb3VyIGV4cGVjdGVkCisr CSAgIyBsb2NhdGlvbiBiL2MgdGhpcyBwcmV2ZW50cyBmaW5kaW5nIGRlcGVuZGVudCBsaWJyYXJp ZXMgdGhhdAorKwkgICMgYXJlIGluc3RhbGxlZCB0byB0aGUgc2FtZSBwcmVmaXguCisrCSAgIyBB dCBwcmVzZW50LCB0aGlzIGNoZWNrIGRvZXNuJ3QgYWZmZWN0IHdpbmRvd3MgLmRsbCdzIHRoYXQK KysJICAjIGFyZSBpbnN0YWxsZWQgaW50byAkbGliZGlyLy4uL2JpbiAoY3VycmVudGx5LCB0aGF0 IHdvcmtzIGZpbmUpCisrCSAgIyBidXQgaXQncyBzb21ldGhpbmcgdG8ga2VlcCBhbiBleWUgb24u CisrCSAgdGVzdCAiJGluc3RfcHJlZml4X2RpciIgPSAiJGRlc3RkaXIiICYmIFwKKysJICAgIGZ1 bmNfZmF0YWxfZXJyb3IgImVycm9yOiBjYW5ub3QgaW5zdGFsbCBcYCRmaWxlJyB0byBhIGRpcmVj dG9yeSBub3QgZW5kaW5nIGluICRsaWJkaXIiCisrCisrCSAgaWYgdGVzdCAtbiAiJGluc3RfcHJl Zml4X2RpciI7IHRoZW4KKysJICAgICMgU3RpY2sgdGhlIGluc3RfcHJlZml4X2RpciBkYXRhIGlu dG8gdGhlIGxpbmsgY29tbWFuZC4KKysJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxp bmtfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAaW5zdF9wcmVmaXhfZGlyQCUtaW5zdC1wcmVmaXgt ZGlyICRpbnN0X3ByZWZpeF9kaXIlImAKKysJICBlbHNlCisrCSAgICByZWxpbmtfY29tbWFuZD1g JEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQGluc3RfcHJlZml4X2RpckAl JSJgCisrCSAgZmkKKysKKysJICBmdW5jX3dhcm5pbmcgInJlbGlua2luZyBcYCRmaWxlJyIKKysJ ICBmdW5jX3Nob3dfZXZhbCAiJHJlbGlua19jb21tYW5kIiBcCisrCSAgICAnZnVuY19mYXRhbF9l cnJvciAiZXJyb3I6IHJlbGluayBcYCRmaWxlJ1wnJyB3aXRoIHRoZSBhYm92ZSBjb21tYW5kIGJl Zm9yZSBpbnN0YWxsaW5nIGl0IicKKysJZmkKKysKKysJIyBTZWUgdGhlIG5hbWVzIG9mIHRoZSBz aGFyZWQgbGlicmFyeS4KKysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzOyBzaGlmdAorKwlpZiB0 ZXN0IC1uICIkMSI7IHRoZW4KKysJICByZWFsbmFtZT0iJDEiCisrCSAgc2hpZnQKKysKKysJICBz cmNuYW1lPSIkcmVhbG5hbWUiCisrCSAgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIiAmJiBzcmNu YW1lPSIkcmVhbG5hbWUiVAorKworKwkgICMgSW5zdGFsbCB0aGUgc2hhcmVkIGxpYnJhcnkgYW5k IGJ1aWxkIHRoZSBzeW1saW5rcy4KKysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAk ZGlyLyRzcmNuYW1lICRkZXN0ZGlyLyRyZWFsbmFtZSIgXAorKwkgICAgICAnZXhpdCAkPycKKysJ ICB0c3RyaXBtZT0iJHN0cmlwbWUiCisrCSAgY2FzZSAkaG9zdF9vcyBpbgorKwkgIGN5Z3dpbiog fCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysJICAgIGNhc2UgJHJlYWxuYW1lIGluCisrCSAg ICAqLmRsbC5hKQorKwkgICAgICB0c3RyaXBtZT0iIgorKwkgICAgICA7OworKwkgICAgZXNhYwor KwkgICAgOzsKKysJICBlc2FjCisrCSAgaWYgdGVzdCAtbiAiJHRzdHJpcG1lIiAmJiB0ZXN0IC1u ICIkc3RyaXBsaWIiOyB0aGVuCisrCSAgICBmdW5jX3Nob3dfZXZhbCAiJHN0cmlwbGliICRkZXN0 ZGlyLyRyZWFsbmFtZSIgJ2V4aXQgJD8nCisrCSAgZmkKKysKKysJICBpZiB0ZXN0ICIkIyIgLWd0 IDA7IHRoZW4KKysJICAgICMgRGVsZXRlIHRoZSBvbGQgc3ltbGlua3MsIGFuZCBjcmVhdGUgbmV3 IG9uZXMuCisrCSAgICAjIFRyeSBgbG4gLXNmJyBmaXJzdCwgYmVjYXVzZSB0aGUgYGxuJyBiaW5h cnkgbWlnaHQgZGVwZW5kIG9uCisrCSAgICAjIHRoZSBzeW1saW5rIHdlIHJlcGxhY2UhICBTb2xh cmlzIC9iaW4vbG4gZG9lcyBub3QgdW5kZXJzdGFuZCAtZiwKKysJICAgICMgc28gd2UgYWxzbyBu ZWVkIHRvIHRyeSBybSAmJiBsbiAtcy4KKysJICAgIGZvciBsaW5rbmFtZQorKwkgICAgZG8KKysJ ICAgICAgdGVzdCAiJGxpbmtuYW1lIiAhPSAiJHJlYWxuYW1lIiBcCisrCQkmJiBmdW5jX3Nob3df ZXZhbCAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJlYWxuYW1lICRsaW5rbmFtZSB8fCB7 ICRSTSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZTsgfTsgfSkiCisrCSAg ICBkb25lCisrCSAgZmkKKysKKysJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3Rh bGwgY29tbWFuZHMuCisrCSAgbGliPSIkZGVzdGRpci8kcmVhbG5hbWUiCisrCSAgZnVuY19leGVj dXRlX2NtZHMgIiRwb3N0aW5zdGFsbF9jbWRzIiAnZXhpdCAkPycKKysJZmkKKysKKysJIyBJbnN0 YWxsIHRoZSBwc2V1ZG8tbGlicmFyeSBmb3IgaW5mb3JtYXRpb24gcHVycG9zZXMuCisrCWZ1bmNf YmFzZW5hbWUgIiRmaWxlIgorKwluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCWluc3Ru YW1lPSIkZGlyLyRuYW1lImkKKysJZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGluc3Ru YW1lICRkZXN0ZGlyLyRuYW1lIiAnZXhpdCAkPycKKysKKysJIyBNYXliZSBpbnN0YWxsIHRoZSBz dGF0aWMgbGlicmFyeSwgdG9vLgorKwl0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHN0YXRpY2xp YnM9IiRzdGF0aWNsaWJzICRkaXIvJG9sZF9saWJyYXJ5IgorKwk7OworKworKyAgICAgICoubG8p CisrCSMgSW5zdGFsbCAoaS5lLiBjb3B5KSBhIGxpYnRvb2wgb2JqZWN0LgorKworKwkjIEZpZ3Vy ZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZp ZWQuCisrCWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KKysJICBkZXN0ZmlsZT0iJGRlc3Rk aXIvJGRlc3RuYW1lIgorKwllbHNlCisrCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisrCSAgZGVz dGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRl c3RmaWxlIgorKwlmaQorKworKwkjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgZGVzdGluYXRpb24g b2xkLXN0eWxlIG9iamVjdCBmaWxlLgorKwljYXNlICRkZXN0ZmlsZSBpbgorKwkqLmxvKQorKwkg IGZ1bmNfbG8ybyAiJGRlc3RmaWxlIgorKwkgIHN0YXRpY2Rlc3Q9JGZ1bmNfbG8yb19yZXN1bHQK KysJICA7OworKwkqLiRvYmpleHQpCisrCSAgc3RhdGljZGVzdD0iJGRlc3RmaWxlIgorKwkgIGRl c3RmaWxlPQorKwkgIDs7CisrCSopCisrCSAgZnVuY19mYXRhbF9oZWxwICJjYW5ub3QgY29weSBh IGxpYnRvb2wgb2JqZWN0IHRvIFxgJGRlc3RmaWxlJyIKKysJICA7OworKwllc2FjCisrCisrCSMg SW5zdGFsbCB0aGUgbGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgorKwl0ZXN0IC1uICIkZGVz dGZpbGUiICYmIFwKKysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVz dGZpbGUiICdleGl0ICQ/JworKworKwkjIEluc3RhbGwgdGhlIG9sZCBvYmplY3QgaWYgZW5hYmxl ZC4KKysJaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKwkgICMgRGVkdWNl IHRoZSBuYW1lIG9mIHRoZSBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCisrCSAgZnVuY19sbzJvICIk ZmlsZSIKKysJICBzdGF0aWNvYmo9JGZ1bmNfbG8yb19yZXN1bHQKKysJICBmdW5jX3Nob3dfZXZh bCAiJGluc3RhbGxfcHJvZyBcJHN0YXRpY29iaiBcJHN0YXRpY2Rlc3QiICdleGl0ICQ/JworKwlm aQorKwlleGl0ICRFWElUX1NVQ0NFU1MKKysJOzsKKysKKysgICAgICAqKQorKwkjIEZpZ3VyZSBv dXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQu CisrCWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIv JGRlc3RuYW1lIgorKwllbHNlCisrCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisrCSAgZGVzdGZp bGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3Rm aWxlIgorKwlmaQorKworKwkjIElmIHRoZSBmaWxlIGlzIG1pc3NpbmcsIGFuZCB0aGVyZSBpcyBh IC5leGUgb24gdGhlIGVuZCwgc3RyaXAgaXQKKysJIyBiZWNhdXNlIGl0IGlzIG1vc3QgbGlrZWx5 IGEgbGlidG9vbCBzY3JpcHQgd2UgYWN0dWFsbHkgd2FudCB0bworKwkjIGluc3RhbGwKKysJc3Ry aXBwZWRfZXh0PSIiCisrCWNhc2UgJGZpbGUgaW4KKysJICAqLmV4ZSkKKysJICAgIGlmIHRlc3Qg ISAtZiAiJGZpbGUiOyB0aGVuCisrCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZp bGUiCisrCSAgICAgIGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgICBzdHJpcHBl ZF9leHQ9Ii5leGUiCisrCSAgICBmaQorKwkgICAgOzsKKysJZXNhYworKworKwkjIERvIGEgdGVz dCB0byBzZWUgaWYgdGhpcyBpcyByZWFsbHkgYSBsaWJ0b29sIHByb2dyYW0uCisrCWNhc2UgJGhv c3QgaW4KKysJKmN5Z3dpbiogfCAqbWluZ3cqKQorKwkgICAgaWYgZnVuY19sdHdyYXBwZXJfZXhl Y3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KKysJICAgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFt ZSAiJGZpbGUiCisrCSAgICAgIHdyYXBwZXI9JGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVz dWx0CisrCSAgICBlbHNlCisrCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUi CisrCSAgICAgIHdyYXBwZXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgZmkKKysJICAg IDs7CisrCSopCisrCSAgICB3cmFwcGVyPSRmaWxlCisrCSAgICA7OworKwllc2FjCisrCWlmIGZ1 bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkd3JhcHBlciI7IHRoZW4KKysJICBub3RpbnN0X2RlcGxp YnM9CisrCSAgcmVsaW5rX2NvbW1hbmQ9CisrCisrCSAgZnVuY19zb3VyY2UgIiR3cmFwcGVyIgor KworKwkgICMgQ2hlY2sgdGhlIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gc2V0Lgor KwkgIHRlc3QgLXogIiRnZW5lcmF0ZWRfYnlfbGlidG9vbF92ZXJzaW9uIiAmJiBcCisrCSAgICBm dW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgXGAkd3JhcHBl ciciCisrCisrCSAgZmluYWxpemU9eWVzCisrCSAgZm9yIGxpYiBpbiAkbm90aW5zdF9kZXBsaWJz OyBkbworKwkgICAgIyBDaGVjayB0byBzZWUgdGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5zdGFsbGVk LgorKwkgICAgbGliZGlyPQorKwkgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKysJICAgICAg ZnVuY19zb3VyY2UgIiRsaWIiCisrCSAgICBmaQorKwkgICAgbGliZmlsZT0iJGxpYmRpci8iYCRF Q0hPICJYJGxpYiIgfCAkWHNlZCAtZSAncyVeLiovJSVnJ2AgIyMjIHRlc3RzdWl0ZTogc2tpcCBu ZXN0ZWQgcXVvdGluZyB0ZXN0CisrCSAgICBpZiB0ZXN0IC1uICIkbGliZGlyIiAmJiB0ZXN0ICEg LWYgIiRsaWJmaWxlIjsgdGhlbgorKwkgICAgICBmdW5jX3dhcm5pbmcgIlxgJGxpYicgaGFzIG5v dCBiZWVuIGluc3RhbGxlZCBpbiBcYCRsaWJkaXInIgorKwkgICAgICBmaW5hbGl6ZT1ubworKwkg ICAgZmkKKysJICBkb25lCisrCisrCSAgcmVsaW5rX2NvbW1hbmQ9CisrCSAgZnVuY19zb3VyY2Ug IiR3cmFwcGVyIgorKworKwkgIG91dHB1dG5hbWU9CisrCSAgaWYgdGVzdCAiJGZhc3RfaW5zdGFs bCIgPSBubyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisrCSAgICAkb3B0X2Ry eV9ydW4gfHwgeworKwkgICAgICBpZiB0ZXN0ICIkZmluYWxpemUiID0geWVzOyB0aGVuCisrCSAg ICAgICAgdG1wZGlyPWBmdW5jX21rdGVtcGRpcmAKKysJCWZ1bmNfYmFzZW5hbWUgIiRmaWxlJHN0 cmlwcGVkX2V4dCIKKysJCWZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICAgICAgICBv dXRwdXRuYW1lPSIkdG1wZGlyLyRmaWxlIgorKwkgICAgICAgICMgUmVwbGFjZSB0aGUgb3V0cHV0 IGZpbGUgc3BlY2lmaWNhdGlvbi4KKysJICAgICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgk cmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0bmFtZSInJWcn YAorKworKwkgICAgICAgICRvcHRfc2lsZW50IHx8IHsKKysJICAgICAgICAgIGZ1bmNfcXVvdGVf Zm9yX2V4cGFuZCAiJHJlbGlua19jb21tYW5kIgorKwkJICBldmFsICJmdW5jX2VjaG8gJGZ1bmNf cXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisrCSAgICAgICAgfQorKwkgICAgICAgIGlmIGV2YWwg IiRyZWxpbmtfY29tbWFuZCI7IHRoZW4gOgorKwkgICAgICAgICAgZWxzZQorKwkJICBmdW5jX2Vy cm9yICJlcnJvcjogcmVsaW5rIFxgJGZpbGUnIHdpdGggdGhlIGFib3ZlIGNvbW1hbmQgYmVmb3Jl IGluc3RhbGxpbmcgaXQiCisrCQkgICRvcHRfZHJ5X3J1biB8fCAke1JNfXIgIiR0bXBkaXIiCisr CQkgIGNvbnRpbnVlCisrCSAgICAgICAgZmkKKysJICAgICAgICBmaWxlPSIkb3V0cHV0bmFtZSIK KysJICAgICAgZWxzZQorKwkgICAgICAgIGZ1bmNfd2FybmluZyAiY2Fubm90IHJlbGluayBcYCRm aWxlJyIKKysJICAgICAgZmkKKysJICAgIH0KKysJICBlbHNlCisrCSAgICAjIEluc3RhbGwgdGhl IGJpbmFyeSB0aGF0IHdlIGNvbXBpbGVkIGVhcmxpZXIuCisrCSAgICBmaWxlPWAkRUNITyAiWCRm aWxlJHN0cmlwcGVkX2V4dCIgfCAkWHNlZCAtZSAicyVcKFteL10qXCkkJSRvYmpkaXIvXDElImAK KysJICBmaQorKwlmaQorKworKwkjIHJlbW92ZSAuZXhlIHNpbmNlIGN5Z3dpbiAvdXNyL2Jpbi9p bnN0YWxsIHdpbGwgYXBwZW5kIGFub3RoZXIKKysJIyBvbmUgYW55d2F5CisrCWNhc2UgJGluc3Rh bGxfcHJvZywkaG9zdCBpbgorKwkqL3Vzci9iaW4vaW5zdGFsbCosKmN5Z3dpbiopCisrCSAgY2Fz ZSAkZmlsZTokZGVzdGZpbGUgaW4KKysJICAqLmV4ZToqLmV4ZSkKKysJICAgICMgdGhpcyBpcyBv aworKwkgICAgOzsKKysJICAqLmV4ZToqKQorKwkgICAgZGVzdGZpbGU9JGRlc3RmaWxlLmV4ZQor KwkgICAgOzsKKysJICAqOiouZXhlKQorKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIk ZGVzdGZpbGUiCisrCSAgICBkZXN0ZmlsZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSAgICA7 OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrCWZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9w cm9nXCRzdHJpcG1lIFwkZmlsZSBcJGRlc3RmaWxlIiAnZXhpdCAkPycKKysJJG9wdF9kcnlfcnVu IHx8IGlmIHRlc3QgLW4gIiRvdXRwdXRuYW1lIjsgdGhlbgorKwkgICR7Uk19ciAiJHRtcGRpciIK KysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgIGRvbmUKKysKKysgICAgZm9yIGZpbGUgaW4g JHN0YXRpY2xpYnM7IGRvCisrICAgICAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisrICAgICAgbmFt ZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKworKyAgICAgICMgU2V0IHVwIHRoZSByYW5saWIg cGFyYW1ldGVycy4KKysgICAgICBvbGRsaWI9IiRkZXN0ZGlyLyRuYW1lIgorKworKyAgICAgIGZ1 bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nIFwkZmlsZSBcJG9sZGxpYiIgJ2V4aXQgJD8nCisr CisrICAgICAgaWYgdGVzdCAtbiAiJHN0cmlwbWUiICYmIHRlc3QgLW4gIiRvbGRfc3RyaXBsaWIi OyB0aGVuCisrCWZ1bmNfc2hvd19ldmFsICIkb2xkX3N0cmlwbGliICRvbGRsaWIiICdleGl0ICQ/ JworKyAgICAgIGZpCisrCisrICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3RpbnN0 YWxsIGNvbW1hbmRzLgorKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3RpbnN0YWxs X2NtZHMiICdleGl0ICQ/JworKyAgICBkb25lCisrCisrICAgIHRlc3QgLW4gIiRmdXR1cmVfbGli ZGlycyIgJiYgXAorKyAgICAgIGZ1bmNfd2FybmluZyAicmVtZW1iZXIgdG8gcnVuIFxgJHByb2du YW1lIC0tZmluaXNoJGZ1dHVyZV9saWJkaXJzJyIKKysKKysgICAgaWYgdGVzdCAtbiAiJGN1cnJl bnRfbGliZGlycyI7IHRoZW4KKysgICAgICAjIE1heWJlIGp1c3QgZG8gYSBkcnkgcnVuLgorKyAg ICAgICRvcHRfZHJ5X3J1biAmJiBjdXJyZW50X2xpYmRpcnM9IiAtbiRjdXJyZW50X2xpYmRpcnMi CisrICAgICAgZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1maW5p c2gkY3VycmVudF9saWJkaXJzJworKyAgICBlbHNlCisrICAgICAgZXhpdCAkRVhJVF9TVUNDRVNT CisrICAgIGZpCisrfQorKworK3Rlc3QgIiRtb2RlIiA9IGluc3RhbGwgJiYgZnVuY19tb2RlX2lu c3RhbGwgJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX2dlbmVyYXRlX2Rsc3ltcyBvdXRwdXRuYW1l IG9yaWdpbmF0b3IgcGljX3AKKysjIEV4dHJhY3Qgc3ltYm9scyBmcm9tIGRscHJlZmlsZXMgYW5k IGNyZWF0ZSAke291dHB1dG5hbWV9Uy5vIHdpdGgKKysjIGEgZGxwcmVvcGVuIHN5bWJvbCB0YWJs ZS4KKytmdW5jX2dlbmVyYXRlX2Rsc3ltcyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBt eV9vdXRwdXRuYW1lPSIkMSIKKysgICAgbXlfb3JpZ2luYXRvcj0iJDIiCisrICAgIG15X3BpY19w PSIkezMtbm99IgorKyAgICBteV9wcmVmaXg9YCRFQ0hPICIkbXlfb3JpZ2luYXRvciIgfCBzZWQg J3MlW15hLXpBLVowLTldJV8lZydgCisrICAgIG15X2Rsc3ltcz0KKysKKysgICAgaWYgdGVzdCAt biAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KKysg ICAgICBpZiB0ZXN0IC1uICIkTk0iICYmIHRlc3QgLW4gIiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0 aGVuCisrCW15X2Rsc3ltcz0iJHtteV9vdXRwdXRuYW1lfVMuYyIKKysgICAgICBlbHNlCisrCWZ1 bmNfZXJyb3IgIm5vdCBjb25maWd1cmVkIHRvIGV4dHJhY3QgZ2xvYmFsIHN5bWJvbHMgZnJvbSBk bHByZW9wZW5lZCBmaWxlcyIKKysgICAgICBmaQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0IC1u ICIkbXlfZGxzeW1zIjsgdGhlbgorKyAgICAgIGNhc2UgJG15X2Rsc3ltcyBpbgorKyAgICAgICIi KSA7OworKyAgICAgICouYykKKysJIyBEaXNjb3ZlciB0aGUgbmxpc3Qgb2YgZWFjaCBvZiB0aGUg ZGxmaWxlcy4KKysJbmxpc3Q9IiRvdXRwdXRfb2JqZGlyLyR7bXlfb3V0cHV0bmFtZX0ubm0iCisr CisrCWZ1bmNfc2hvd19ldmFsICIkUk0gJG5saXN0ICR7bmxpc3R9UyAke25saXN0fVQiCisrCisr CSMgUGFyc2UgdGhlIG5hbWUgbGlzdCBpbnRvIGEgc291cmNlIGZpbGUuCisrCWZ1bmNfdmVyYm9z ZSAiY3JlYXRpbmcgJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKKysKKysJJG9wdF9kcnlfcnVu IHx8ICRFQ0hPID4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrLyogJG15X2Rsc3lt cyAtIHN5bWJvbCByZXNvbHV0aW9uIHRhYmxlIGZvciBcYCRteV9vdXRwdXRuYW1lJyBkbHN5bSBl bXVsYXRpb24uICovCisrLyogR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElN RVNUQU1QKSAkVkVSU0lPTiAqLworKworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiBcIkNc IiB7CisrI2VuZGlmCisrCisrLyogRXh0ZXJuYWwgc3ltYm9sIGRlY2xhcmF0aW9ucyBmb3IgdGhl IGNvbXBpbGVyLiAqL1wKKysiCisrCisrCWlmIHRlc3QgIiRkbHNlbGYiID0geWVzOyB0aGVuCisr CSAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRvdXRwdXQnIgor KworKwkgICRvcHRfZHJ5X3J1biB8fCBlY2hvICc6IEBQUk9HUkFNQCAnID4gIiRubGlzdCIKKysK KysJICAjIEFkZCBvdXIgb3duIHByb2dyYW0gb2JqZWN0cyB0byB0aGUgc3ltYm9sIGxpc3QuCisr CSAgcHJvZ2ZpbGVzPWAkRUNITyAiWCRvYmpzJG9sZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRYc2Vk IC1lICIkbG8ybyIgfCAkTkwyU1BgCisrCSAgZm9yIHByb2dmaWxlIGluICRwcm9nZmlsZXM7IGRv CisrCSAgICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFsIEMgc3ltYm9scyBmcm9tIFxg JHByb2dmaWxlJyIKKysJICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkTk0gJHByb2dmaWxlIHwg JGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKKysJICBkb25lCisrCisrCSAgaWYgdGVz dCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KKysJICAgICRvcHRfZHJ5X3J1biB8fCB7Cisr CSAgICAgIGV2YWwgJyRFR1JFUCAtdiAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3QiID4g IiRubGlzdCJUJworKwkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJworKwkgICAg fQorKwkgIGZpCisrCisrCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhl bgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgZXZhbCAnJEVHUkVQIC1lICIkZXhw b3J0X3N5bWJvbHNfcmVnZXgiICIkbmxpc3QiID4gIiRubGlzdCJUJworKwkgICAgICBldmFsICck TVYgIiRubGlzdCJUICIkbmxpc3QiJworKwkgICAgfQorKwkgIGZpCisrCisrCSAgIyBQcmVwYXJl IHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKKysJICBpZiB0ZXN0IC16ICIkZXhwb3J0X3N5 bWJvbHMiOyB0aGVuCisrCSAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJG91dHB1 dG5hbWUuZXhwIgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgJFJNICRleHBvcnRf c3ltYm9scworKwkgICAgICBldmFsICIke1NFRH0gLW4gLWUgJy9eOiBAUFJPR1JBTUAgJC9kJyAt ZSAncy9eLiogXCguKlwpJC9cMS9wJyAiJzwgIiRubGlzdCIgPiAiJGV4cG9ydF9zeW1ib2xzIicK KysJICAgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2Vn Y2MqICkKKysgICAgICAgICAgICAgICAgZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9v YmpkaXIvJG91dHB1dG5hbWUuZGVmIicKKysgICAgICAgICAgICAgICAgZXZhbCAnY2F0ICIkZXhw b3J0X3N5bWJvbHMiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkgICAg ICAgIDs7CisrCSAgICAgIGVzYWMKKysJICAgIH0KKysJICBlbHNlCisrCSAgICAkb3B0X2RyeV9y dW4gfHwgeworKwkgICAgICBldmFsICIke1NFRH0gLWUgJ3MvXChbXS5bKl4kXVwpL1xcXFxcMS9n JyAtZSAncy9eLyAvJyAtZSAncy8kLyQvJyInIDwgIiRleHBvcnRfc3ltYm9scyIgPiAiJG91dHB1 dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIicKKysJICAgICAgZXZhbCAnJEdSRVAgLWYgIiRvdXRw dXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIgPCAiJG5saXN0IiA+ICIkbmxpc3QiVCcKKysJICAg ICAgZXZhbCAnJE1WICIkbmxpc3QiVCAiJG5saXN0IicKKysJICAgICAgY2FzZSAkaG9zdCBpbgor KwkgICAgICAgICpjeWd3aW4gfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisrCSAgICAgICAgICBldmFs ICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkg ICAgICAgICAgZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFt ZS5kZWYiJworKwkgICAgICAgICAgOzsKKysJICAgICAgZXNhYworKwkgICAgfQorKwkgIGZpCisr CWZpCisrCisrCWZvciBkbHByZWZpbGUgaW4gJGRscHJlZmlsZXM7IGRvCisrCSAgZnVuY192ZXJi b3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRkbHByZWZpbGUnIgorKwkg IGZ1bmNfYmFzZW5hbWUgIiRkbHByZWZpbGUiCisrCSAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVz dWx0IgorKwkgICRvcHRfZHJ5X3J1biB8fCB7CisrCSAgICBldmFsICckRUNITyAiOiAkbmFtZSAi ID4+ICIkbmxpc3QiJworKwkgICAgZXZhbCAiJE5NICRkbHByZWZpbGUgMj4vZGV2L251bGwgfCAk Z2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgorKwkgIH0KKysJZG9uZQorKworKwkkb3B0 X2RyeV9ydW4gfHwgeworKwkgICMgTWFrZSBzdXJlIHdlIGhhdmUgYXQgbGVhc3QgYW4gZW1wdHkg ZmlsZS4KKysJICB0ZXN0IC1mICIkbmxpc3QiIHx8IDogPiAiJG5saXN0IgorKworKwkgIGlmIHRl c3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVuCisrCSAgICAkRUdSRVAgLXYgIiAoJGV4Y2x1 ZGVfZXhwc3ltcykkIiAiJG5saXN0IiA+ICIkbmxpc3QiVAorKwkgICAgJE1WICIkbmxpc3QiVCAi JG5saXN0IgorKwkgIGZpCisrCisrCSAgIyBUcnkgc29ydGluZyBhbmQgdW5pcXVpZnlpbmcgdGhl IG91dHB1dC4KKysJICBpZiAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiIHwKKysJICAgICAgaWYg c29ydCAtayAzIDwvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQlzb3J0IC1rIDMK KysJICAgICAgZWxzZQorKwkJc29ydCArMgorKwkgICAgICBmaSB8CisrCSAgICAgIHVuaXEgPiAi JG5saXN0IlM7IHRoZW4KKysJICAgIDoKKysJICBlbHNlCisrCSAgICAkR1JFUCAtdiAiXjogIiA8 ICIkbmxpc3QiID4gIiRubGlzdCJTCisrCSAgZmkKKysKKysJICBpZiB0ZXN0IC1mICIkbmxpc3Qi UzsgdGhlbgorKwkgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxpc3Qi UyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyInCisrCSAgZWxzZQorKwkgICAgJEVDSE8g Jy8qIE5PTkUgKi8nID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorKwkgIGZpCisrCisr CSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrCisrLyogVGhlIG1h cHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLworK3R5cGVkZWYgc3Ry dWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lkICphZGRyZXNzOworK30gbHRfZGxz eW1saXN0OworKyIKKysJICBjYXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiogfCAqbWluZ3cqIHwg KmNlZ2NjKiApCisrCSAgICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwK KysvKiBEQVRBIGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMyIGNvbid0IGJlIGNvbnN0LCBiZWNh dXNlCisrICAgcnVudGltZSByZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdzIGRv Y3VtZW50YXRpb24KKysgICBvbiBwc2V1ZG8tcmVsb2NzLiAgKi8iCisrCSAgICBsdF9kbHN5bV9j b25zdD0gOzsKKysJICAqb3NmNSopCisrCSAgICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlf ZGxzeW1zIiAiXAorKy8qIFRoaXMgc3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJlbG9j YXRpb25zIGluIGNvbnN0IGRhdGEgKi8iCisrCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKKysJICAq KQorKwkgICAgbHRfZGxzeW1fY29uc3Q9Y29uc3QgOzsKKysJICBlc2FjCisrCisrCSAgJEVDSE8g Pj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrZXh0ZXJuICRsdF9kbHN5bV9jb25z dCBsdF9kbHN5bWxpc3QKKytsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW107 CisrJGx0X2Rsc3ltX2NvbnN0IGx0X2Rsc3ltbGlzdAorK2x0XyR7bXlfcHJlZml4fV9MVFhfcHJl bG9hZGVkX3N5bWJvbHNbXSA9Cisre1wKKysgIHsgXCIkbXlfb3JpZ2luYXRvclwiLCAodm9pZCAq KSAwIH0sIgorKworKwkgIGNhc2UgJG5lZWRfbGliX3ByZWZpeCBpbgorKwkgIG5vKQorKwkgICAg ZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MiIDwgIiRubGlzdCIgPj4gIiRv dXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCisrCSAgICA7OworKwkgICopCisrCSAgICBldmFsICIk Z2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4IiA8ICIkbmxpc3QiID4+ ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAgJEVD SE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrICB7MCwgKHZvaWQgKikgMH0K Kyt9OworKworKy8qIFRoaXMgd29ya3MgYXJvdW5kIGEgcHJvYmxlbSBpbiBGcmVlQlNEIGxpbmtl ciAqLworKyNpZmRlZiBGUkVFQlNEX1dPUktBUk9VTkQKKytzdGF0aWMgY29uc3Qgdm9pZCAqbHRf cHJlbG9hZGVkX3NldHVwKCkgeworKyAgcmV0dXJuIGx0XyR7bXlfcHJlZml4fV9MVFhfcHJlbG9h ZGVkX3N5bWJvbHM7CisrfQorKyNlbmRpZgorKworKyNpZmRlZiBfX2NwbHVzcGx1cworK30KKysj ZW5kaWZcCisrIgorKwl9ICMgISRvcHRfZHJ5X3J1bgorKworKwlwaWNfZmxhZ19mb3Jfc3ltdGFi bGU9CisrCWNhc2UgIiRjb21waWxlX2NvbW1hbmQgIiBpbgorKwkqIiAtc3RhdGljICIqKSA7Owor KwkqKQorKwkgIGNhc2UgJGhvc3QgaW4KKysJICAjIGNvbXBpbGluZyB0aGUgc3ltYm9sIHRhYmxl IGZpbGUgd2l0aCBwaWNfZmxhZyB3b3JrcyBhcm91bmQKKysJICAjIGEgRnJlZUJTRCBidWcgdGhh dCBjYXVzZXMgcHJvZ3JhbXMgdG8gY3Jhc2ggd2hlbiAtbG0gaXMKKysJICAjIGxpbmtlZCBiZWZv cmUgYW55IG90aGVyIFBJQyBvYmplY3QuICBCdXQgd2UgbXVzdCBub3QgdXNlCisrCSAgIyBwaWNf ZmxhZyB3aGVuIGxpbmtpbmcgd2l0aCAtc3RhdGljLiAgVGhlIHByb2JsZW0gZXhpc3RzIGluCisr CSAgIyBGcmVlQlNEIDIuMi42IGFuZCBpcyBmaXhlZCBpbiBGcmVlQlNEIDMuMS4KKysJICAqLSot ZnJlZWJzZDIqfCotKi1mcmVlYnNkMy4wKnwqLSotZnJlZWJzZGVsZjMuMCopCisrCSAgICBwaWNf ZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWcgLURGUkVFQlNEX1dPUktBUk9VTkQiIDs7Cisr CSAgKi0qLWhwdXgqKQorKwkgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFnIiAg OzsKKysJICAqKQorKwkgICAgaWYgdGVzdCAiWCRteV9waWNfcCIgIT0gWG5vOyB0aGVuCisrCSAg ICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIKKysJICAgIGZpCisrCSAgICA7 OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrCXN5bXRhYl9jZmxhZ3M9CisrCWZvciBhcmcg aW4gJExUQ0ZMQUdTOyBkbworKwkgIGNhc2UgJGFyZyBpbgorKwkgIC1waWUgfCAtZnBpZSB8IC1m UElFKSA7OworKwkgICopIHN5bXRhYl9jZmxhZ3M9IiRzeW10YWJfY2ZsYWdzICRhcmciIDs7Cisr CSAgZXNhYworKwlkb25lCisrCisrCSMgTm93IGNvbXBpbGUgdGhlIGR5bmFtaWMgc3ltYm9sIGZp bGUuCisrCWZ1bmNfc2hvd19ldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJExUQ0Mkc3ltdGFi X2NmbGFncyAtYyRub19idWlsdGluX2ZsYWckcGljX2ZsYWdfZm9yX3N5bXRhYmxlICIkbXlfZGxz eW1zIiknICdleGl0ICQ/JworKworKwkjIENsZWFuIHVwIHRoZSBnZW5lcmF0ZWQgZmlsZXMuCisr CWZ1bmNfc2hvd19ldmFsICckUk0gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICIkbmxpc3Qi ICIke25saXN0fVMiICIke25saXN0fVQiJworKworKwkjIFRyYW5zZm9ybSB0aGUgc3ltYm9sIGZp bGUgaW50byB0aGUgY29ycmVjdCBuYW1lLgorKwlzeW1maWxlb2JqPSIkb3V0cHV0X29iamRpci8k e215X291dHB1dG5hbWV9Uy4kb2JqZXh0IgorKwljYXNlICRob3N0IGluCisrCSpjeWd3aW4qIHwg Km1pbmd3KiB8ICpjZWdjYyogKQorKwkgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRteV9v dXRwdXRuYW1lLmRlZiI7IHRoZW4KKysJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29t cGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlf b3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKKysJICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRF Q0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRf b2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAorKwkgIGVsc2UKKysJICAg IGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJz JUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorKwkgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8g IlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmol ImAKKysJICBmaQorKwkgIDs7CisrCSopCisrCSAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRj b21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCisr CSAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAt ZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKysJICA7OworKwllc2FjCisrCTs7CisrICAg ICAgKikKKysJZnVuY19mYXRhbF9lcnJvciAidW5rbm93biBzdWZmaXggZm9yIFxgJG15X2Rsc3lt cyciCisrCTs7CisrICAgICAgZXNhYworKyAgICBlbHNlCisrICAgICAgIyBXZSBrZWVwIGdvaW5n IGp1c3QgaW4gY2FzZSB0aGUgdXNlciBkaWRuJ3QgcmVmZXIgdG8KKysgICAgICAjIGx0X3ByZWxv YWRlZF9zeW1ib2xzLiAgVGhlIGxpbmtlciB3aWxsIGZhaWwgaWYgZ2xvYmFsX3N5bWJvbF9waXBl CisrICAgICAgIyByZWFsbHkgd2FzIHJlcXVpcmVkLgorKworKyAgICAgICMgTnVsbGlmeSB0aGUg c3ltYm9sIGZpbGUuCisrICAgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2Nv bW1hbmQiIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlImAKKysgICAgICBmaW5hbGl6ZV9jb21t YW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAl JSJgCisrICAgIGZpCisrfQorKworKyMgZnVuY193aW4zMl9saWJpZCBhcmcKKysjIHJldHVybiB0 aGUgbGlicmFyeSB0eXBlIG9mIGZpbGUgJ2FyZycKKysjCisrIyBOZWVkIGEgbG90IG9mIGdvbyB0 byBoYW5kbGUgKmJvdGgqIERMTHMgYW5kIGltcG9ydCBsaWJzCisrIyBIYXMgdG8gYmUgYSBzaGVs bCBmdW5jdGlvbiBpbiBvcmRlciB0byAnZWF0JyB0aGUgYXJndW1lbnQKKysjIHRoYXQgaXMgc3Vw cGxpZWQgd2hlbiAkZmlsZV9tYWdpY19jb21tYW5kIGlzIGNhbGxlZC4KKytmdW5jX3dpbjMyX2xp YmlkICgpCisreworKyAgJG9wdF9kZWJ1ZworKyAgd2luMzJfbGliaWRfdHlwZT0idW5rbm93biIK KysgIHdpbjMyX2ZpbGVyZXM9YGZpbGUgLUwgJDEgMj4vZGV2L251bGxgCisrICBjYXNlICR3aW4z Ml9maWxlcmVzIGluCisrICAqYXJcIGFyY2hpdmVcIGltcG9ydFwgbGlicmFyeSopICMgZGVmaW5p dGVseSBpbXBvcnQKKysgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0Igor KyAgICA7OworKyAgKmFyXCBhcmNoaXZlKikgIyBjb3VsZCBiZSBhbiBpbXBvcnQsIG9yIHN0YXRp YworKyAgICBpZiBldmFsICRPQkpEVU1QIC1mICQxIHwgJFNFRCAtZSAnMTBxJyAyPi9kZXYvbnVs bCB8CisrICAgICAgICRFR1JFUCAnZmlsZSBmb3JtYXQgcGUtaTM4NiguKmFyY2hpdGVjdHVyZTog aTM4Nik/JyA+L2Rldi9udWxsIDsgdGhlbgorKyAgICAgIHdpbjMyX25tcmVzPWBldmFsICROTSAt ZiBwb3NpeCAtQSAkMSB8CisrCSRTRUQgLW4gLWUgJworKwkgICAgMSwxMDB7CisrCQkvIEkgL3sK KysJCSAgICBzLC4qLGltcG9ydCwKKysJCSAgICBwCisrCQkgICAgcQorKwkJfQorKwkgICAgfSdg CisrICAgICAgY2FzZSAkd2luMzJfbm1yZXMgaW4KKysgICAgICBpbXBvcnQqKSAgd2luMzJfbGli aWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0Ijs7CisrICAgICAgKikgICAgICAgIHdpbjMyX2xp YmlkX3R5cGU9Ing4NiBhcmNoaXZlIHN0YXRpYyI7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysg ICAgOzsKKysgICpETEwqKQorKyAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgorKyAgICA7 OworKyAgKmV4ZWN1dGFibGUqKSAjIGJ1dCBzaGVsbCBzY3JpcHRzIGFyZSAiZXhlY3V0YWJsZSIg dG9vLi4uCisrICAgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KKysgICAgKk1TXCBXaW5kb3dzXCBQ RVwgSW50ZWwqKQorKyAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBETEwiCisrICAgICAgOzsK KysgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgJEVDSE8gIiR3aW4zMl9saWJpZF90eXBl IgorK30KKysKKysKKysKKysjIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlIGRpciBvbGRsaWIKKytm dW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBmX2V4 X2FuX2FyX2Rpcj0iJDEiOyBzaGlmdAorKyAgICBmX2V4X2FuX2FyX29sZGxpYj0iJDEiCisrICAg IGZ1bmNfc2hvd19ldmFsICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBcIlwkZl9leF9h bl9hcl9vbGRsaWJcIikiICdleGl0ICQ/JworKyAgICBpZiAoJEFSIHQgIiRmX2V4X2FuX2FyX29s ZGxpYiIgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVsbCAyPiYxKTsgdGhlbgorKyAgICAgOgor KyAgICBlbHNlCisrICAgICAgZnVuY19mYXRhbF9lcnJvciAib2JqZWN0IG5hbWUgY29uZmxpY3Rz IGluIGFyY2hpdmU6ICRmX2V4X2FuX2FyX2Rpci8kZl9leF9hbl9hcl9vbGRsaWIiCisrICAgIGZp CisrfQorKworKworKyMgZnVuY19leHRyYWN0X2FyY2hpdmVzIGdlbnRvcCBvbGRsaWIgLi4uCisr ZnVuY19leHRyYWN0X2FyY2hpdmVzICgpCisreworKyAgICAkb3B0X2RlYnVnCisrICAgIG15X2dl bnRvcD0iJDEiOyBzaGlmdAorKyAgICBteV9vbGRsaWJzPSR7MSsiJEAifQorKyAgICBteV9vbGRv YmpzPSIiCisrICAgIG15X3hsaWI9IiIKKysgICAgbXlfeGFicz0iIgorKyAgICBteV94ZGlyPSIi CisrCisrICAgIGZvciBteV94bGliIGluICRteV9vbGRsaWJzOyBkbworKyAgICAgICMgRXh0cmFj dCB0aGUgb2JqZWN0cy4KKysgICAgICBjYXNlICRteV94bGliIGluCisrCVtcXC9dKiB8IFtBLVph LXpdOltcXC9dKikgbXlfeGFicz0iJG15X3hsaWIiIDs7CisrCSopIG15X3hhYnM9YHB3ZGAiLyRt eV94bGliIiA7OworKyAgICAgIGVzYWMKKysgICAgICBmdW5jX2Jhc2VuYW1lICIkbXlfeGxpYiIK KysgICAgICBteV94bGliPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgICAgbXlfeGxpYl91 PSRteV94bGliCisrICAgICAgd2hpbGUgOjsgZG8KKysgICAgICAgIGNhc2UgIiAkZXh0cmFjdGVk X2FyY2hpdmVzICIgaW4KKysJKiIgJG15X3hsaWJfdSAiKikKKysJICBmdW5jX2FyaXRoICRleHRy YWN0ZWRfc2VyaWFsICsgMQorKwkgIGV4dHJhY3RlZF9zZXJpYWw9JGZ1bmNfYXJpdGhfcmVzdWx0 CisrCSAgbXlfeGxpYl91PWx0JGV4dHJhY3RlZF9zZXJpYWwtJG15X3hsaWIgOzsKKysJKikgYnJl YWsgOzsKKysJZXNhYworKyAgICAgIGRvbmUKKysgICAgICBleHRyYWN0ZWRfYXJjaGl2ZXM9IiRl eHRyYWN0ZWRfYXJjaGl2ZXMgJG15X3hsaWJfdSIKKysgICAgICBteV94ZGlyPSIkbXlfZ2VudG9w LyRteV94bGliX3UiCisrCisrICAgICAgZnVuY19ta2Rpcl9wICIkbXlfeGRpciIKKysKKysgICAg ICBjYXNlICRob3N0IGluCisrICAgICAgKi1kYXJ3aW4qKQorKwlmdW5jX3ZlcmJvc2UgIkV4dHJh Y3RpbmcgJG15X3hhYnMiCisrCSMgRG8gbm90IGJvdGhlciBkb2luZyBhbnl0aGluZyBpZiBqdXN0 IGEgZHJ5IHJ1bgorKwkkb3B0X2RyeV9ydW4gfHwgeworKwkgIGRhcndpbl9vcmlnX2Rpcj1gcHdk YAorKwkgIGNkICRteV94ZGlyIHx8IGV4aXQgJD8KKysJICBkYXJ3aW5fYXJjaGl2ZT0kbXlfeGFi cworKwkgIGRhcndpbl9jdXJkaXI9YHB3ZGAKKysJICBkYXJ3aW5fYmFzZV9hcmNoaXZlPWBiYXNl bmFtZSAiJGRhcndpbl9hcmNoaXZlImAKKysJICBkYXJ3aW5fYXJjaGVzPWAkTElQTyAtaW5mbyAi JGRhcndpbl9hcmNoaXZlIiAyPi9kZXYvbnVsbCB8ICRHUkVQIEFyY2hpdGVjdHVyZXMgMj4vZGV2 L251bGwgfHwgdHJ1ZWAKKysJICBpZiB0ZXN0IC1uICIkZGFyd2luX2FyY2hlcyI7IHRoZW4KKysJ ICAgIGRhcndpbl9hcmNoZXM9YCRFQ0hPICIkZGFyd2luX2FyY2hlcyIgfCAkU0VEIC1lICdzLy4q YXJlOi8vJ2AKKysJICAgIGRhcndpbl9hcmNoPQorKwkgICAgZnVuY192ZXJib3NlICIkZGFyd2lu X2Jhc2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAkZGFyd2luX2FyY2hlcyIK KysJICAgIGZvciBkYXJ3aW5fYXJjaCBpbiAgJGRhcndpbl9hcmNoZXMgOyBkbworKwkgICAgICBm dW5jX21rZGlyX3AgInVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJj aH0iCisrCSAgICAgICRMSVBPIC10aGluICRkYXJ3aW5fYXJjaCAtb3V0cHV0ICJ1bmZhdC0kJC8k e2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJjaGl2 ZX0iICIke2Rhcndpbl9hcmNoaXZlfSIKKysJICAgICAgY2QgInVuZmF0LSQkLyR7ZGFyd2luX2Jh c2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0iCisrCSAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNo aXZlICJgcHdkYCIgIiR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iCisrCSAgICAgIGNkICIkZGFyd2lu X2N1cmRpciIKKysJICAgICAgJFJNICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7 ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iCisrCSAgICBkb25lICMgJGRhcndp bl9hcmNoZXMKKysgICAgICAgICAgICAjIyBPa2F5IG5vdyB3ZSd2ZSBhIGJ1bmNoIG9mIHRoaW4g b2JqZWN0cywgZ290dGEgZmF0dGVuIHRoZW0gdXAgOikKKysJICAgIGRhcndpbl9maWxlbGlzdD1g ZmluZCB1bmZhdC0kJCAtdHlwZSBmIC1uYW1lIFwqLm8gLXByaW50IC1vIC1uYW1lIFwqLmxvIC1w cmludCB8ICRTRUQgLWUgIiRiYXNlbmFtZSIgfCBzb3J0IC11YAorKwkgICAgZGFyd2luX2ZpbGU9 CisrCSAgICBkYXJ3aW5fZmlsZXM9CisrCSAgICBmb3IgZGFyd2luX2ZpbGUgaW4gJGRhcndpbl9m aWxlbGlzdDsgZG8KKysJICAgICAgZGFyd2luX2ZpbGVzPWBmaW5kIHVuZmF0LSQkIC1uYW1lICRk YXJ3aW5fZmlsZSAtcHJpbnQgfCAkTkwyU1BgCisrCSAgICAgICRMSVBPIC1jcmVhdGUgLW91dHB1 dCAiJGRhcndpbl9maWxlIiAkZGFyd2luX2ZpbGVzCisrCSAgICBkb25lICMgJGRhcndpbl9maWxl bGlzdAorKwkgICAgJFJNIC1yZiB1bmZhdC0kJAorKwkgICAgY2QgIiRkYXJ3aW5fb3JpZ19kaXIi CisrCSAgZWxzZQorKwkgICAgY2QgJGRhcndpbl9vcmlnX2RpcgorKwkgICAgZnVuY19leHRyYWN0 X2FuX2FyY2hpdmUgIiRteV94ZGlyIiAiJG15X3hhYnMiCisrCSAgZmkgIyAkZGFyd2luX2FyY2hl cworKwl9ICMgISRvcHRfZHJ5X3J1bgorKwk7OworKyAgICAgICopCisrICAgICAgICBmdW5jX2V4 dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIiICIkbXlfeGFicyIKKysJOzsKKysgICAgICBlc2Fj CisrICAgICAgbXlfb2xkb2Jqcz0iJG15X29sZG9ianMgImBmaW5kICRteV94ZGlyIC1uYW1lIFwq LiRvYmpleHQgLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICROTDJTUGAKKysgICAgZG9u ZQorKworKyAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0PSIkbXlfb2xkb2JqcyIKKyt9 CisrCisrCisrCisrIyBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSBbYXJnPW5vXQorKyMKKysjIEVt aXQgdGhlIGZpcnN0IHBhcnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4K KysjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uIGFzc29jaWF0ZWQg d2l0aAorKyMgZnVuY19lbWl0X3dyYXBwZXIoKSwgYmVsb3cuCisrZnVuY19lbWl0X3dyYXBwZXJf cGFydDEgKCkKKyt7CisrCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxX2FyZzE9bm8KKysJaWYgdGVz dCAtbiAiJDEiIDsgdGhlbgorKwkgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxX2FyZzE9JDEKKysJ ZmkKKysKKysJJEVDSE8gIlwKKysjISAkU0hFTEwKKysKKysjICRvdXRwdXQgLSB0ZW1wb3Jhcnkg d3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKKysjIEdlbmVyYXRlZCBieSAk UFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKysjCisrIyBUaGUgJG91 dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhlIGxp YnRvb2wKKysjIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KKysj CisrIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhl IGJ1aWxkIGRpcmVjdG9yeS4KKysjIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJl Y3RseS4KKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVv dGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGls bCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KKytYc2VkPScke1NFRH0gLWUg MXMvXlgvLycKKytzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCisrCisrIyBCZSBC b3VybmUgY29tcGF0aWJsZQorK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCIgJiYg KGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBzaAorKyAgTlVM TENNRD06CisrICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiBc JHsxK1wiXCRAXCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNh YmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicK KysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rl di9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisrQklOX1NIPXhw ZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENB U0UgIyBmb3IgTUtTIHNoCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmlu dCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisr KHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3JlbGlu a19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKKysKKysjIFRoaXMgZW52aXJvbm1lbnQgdmFy aWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1vZGUuCisraWYgdGVzdCBcIlwkbGlidG9v bF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0aGVuCisrICAjIGluc3RhbGwgbW9kZSBu ZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKKysgIGdlbmVyYXRlZF9ieV9saWJ0b29sX3Zl cnNpb249JyRtYWNyb192ZXJzaW9uJworKyAgbm90aW5zdF9kZXBsaWJzPSckbm90aW5zdF9kZXBs aWJzJworK2Vsc2UKKysgICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVjdXRlIG1vZGUsIFwk ZmlsZSBhbmQgXCRFQ0hPIGFyZSBhbHJlYWR5IHNldC4KKysgIGlmIHRlc3QgXCJcJGxpYnRvb2xf ZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KKysgICAgRUNITz1cIiRxZWNob1wi CisrICAgIGZpbGU9XCJcJDBcIgorKyAgICAjIE1ha2Ugc3VyZSBlY2hvIHdvcmtzLgorKyAgICBp ZiB0ZXN0IFwiWFwkMVwiID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAgICAgIyBEaXNjYXJkIHRo ZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisrICAgICAgc2hpZnQKKysgICAgZWxp ZiB0ZXN0IFwiWFxgeyBcJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbFxgXCIgPSAnWFx0JzsgdGhl bgorKyAgICAgICMgWWlwcGVlLCBcJEVDSE8gd29ya3MhCisrICAgICAgOgorKyAgICBlbHNlCisr ICAgICAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXliZSBc JEVDSE8gd2lsbCB3b3JrLgorKyAgICAgIGV4ZWMgJFNIRUxMIFwiXCQwXCIgLS1uby1yZWV4ZWMg XCR7MStcIlwkQFwifQorKyAgICBmaQorKyAgZmlcCisrIgorKwkkRUNITyAiXAorKworKyAgIyBG aW5kIHRoZSBkaXJlY3RvcnkgdGhhdCB0aGlzIHNjcmlwdCBsaXZlcyBpbi4KKysgIHRoaXNkaXI9 XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qJCUlJ1xgCisrICB0ZXN0 IFwieFwkdGhpc2RpclwiID0gXCJ4XCRmaWxlXCIgJiYgdGhpc2Rpcj0uCisrCisrICAjIEZvbGxv dyBzeW1ib2xpYyBsaW5rcyB1bnRpbCB3ZSBnZXQgdG8gdGhlIHJlYWwgdGhpc2Rpci4KKysgIGZp bGU9XGBscyAtbGQgXCJcJGZpbGVcIiB8ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdcYAorKyAgd2hp bGUgdGVzdCAtbiBcIlwkZmlsZVwiOyBkbworKyAgICBkZXN0ZGlyPVxgXCRFQ0hPIFwiWFwkZmls ZVwiIHwgXCRYc2VkIC1lICdzJS9bXi9dKlwkJSUnXGAKKysKKysgICAgIyBJZiB0aGVyZSB3YXMg YSBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGNoYW5nZSB0aGlzZGlyLgorKyAgICBpZiB0ZXN0 IFwieFwkZGVzdGRpclwiICE9IFwieFwkZmlsZVwiOyB0aGVuCisrICAgICAgY2FzZSBcIlwkZGVz dGRpclwiIGluCisrICAgICAgW1xcXFwvXSogfCBbQS1aYS16XTpbXFxcXC9dKikgdGhpc2Rpcj1c IlwkZGVzdGRpclwiIDs7CisrICAgICAgKikgdGhpc2Rpcj1cIlwkdGhpc2Rpci9cJGRlc3RkaXJc IiA7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysKKysgICAgZmlsZT1cYFwkRUNITyBcIlhcJGZp bGVcIiB8IFwkWHNlZCAtZSAncyVeLiovJSUnXGAKKysgICAgZmlsZT1cYGxzIC1sZCBcIlwkdGhp c2Rpci9cJGZpbGVcIiB8ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdcYAorKyAgZG9uZQorKyIKKyt9 CisrIyBlbmQ6IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxCisrCisrIyBmdW5jX2VtaXRfd3JhcHBl cl9wYXJ0MiBbYXJnPW5vXQorKyMKKysjIEVtaXQgdGhlIHNlY29uZCBwYXJ0IG9mIGEgbGlidG9v bCB3cmFwcGVyIHNjcmlwdCBvbiBzdGRvdXQuCisrIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2Vl IHRoZSBkZXNjcmlwdGlvbiBhc3NvY2lhdGVkIHdpdGgKKysjIGZ1bmNfZW1pdF93cmFwcGVyKCks IGJlbG93LgorK2Z1bmNfZW1pdF93cmFwcGVyX3BhcnQyICgpCisreworKwlmdW5jX2VtaXRfd3Jh cHBlcl9wYXJ0Ml9hcmcxPW5vCisrCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KKysJICBmdW5jX2Vt aXRfd3JhcHBlcl9wYXJ0Ml9hcmcxPSQxCisrCWZpCisrCisrCSRFQ0hPICJcCisrCisrICAjIFVz dWFsbHkgJ25vJywgZXhjZXB0IG9uIGN5Z3dpbi9taW5ndyB3aGVuIGVtYmVkZGVkIGludG8KKysg ICMgdGhlIGN3cmFwcGVyLgorKyAgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVI9JGZ1 bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzEKKysgIGlmIHRlc3QgXCJcJFdSQVBQRVJfU0NSSVBU X0JFTE9OR1NfSU5fT0JKRElSXCIgPSBcInllc1wiOyB0aGVuCisrICAgICMgc3BlY2lhbCBjYXNl IGZvciAnLicKKysgICAgaWYgdGVzdCBcIlwkdGhpc2RpclwiID0gXCIuXCI7IHRoZW4KKysgICAg ICB0aGlzZGlyPVxgcHdkXGAKKysgICAgZmkKKysgICAgIyByZW1vdmUgLmxpYnMgZnJvbSB0aGlz ZGlyCisrICAgIGNhc2UgXCJcJHRoaXNkaXJcIiBpbgorKyAgICAqW1xcXFwvXSRvYmpkaXIgKSB0 aGlzZGlyPVxgXCRFQ0hPIFwiWFwkdGhpc2RpclwiIHwgXCRYc2VkIC1lICdzJVtcXFxcL11bXlxc XFwvXSokJSUnXGAgOzsKKysgICAgJG9iamRpciApICAgdGhpc2Rpcj0uIDs7CisrICAgIGVzYWMK KysgIGZpCisrCisrICAjIFRyeSB0byBnZXQgdGhlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lLgor KyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBwd2RcYAorKyAgdGVzdCAtbiBcIlwkYWJz ZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKKysiCisrCisrCWlmIHRlc3QgIiRmYXN0X2lu c3RhbGwiID0geWVzOyB0aGVuCisrCSAgJEVDSE8gIlwKKysgIHByb2dyYW09bHQtJyRvdXRwdXRu YW1lJyRleGVleHQKKysgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisrCisrICBpZiB0 ZXN0ICEgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgfHwKKysgICAgIHsgZmlsZT1cYGxzIC0x ZHQgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCJcJHByb2dkaXIvLi4vXCRwcm9ncmFtXCIgMj4v ZGV2L251bGwgfCAke1NFRH0gMXFcYDsgXFwKKysgICAgICAgdGVzdCBcIlhcJGZpbGVcIiAhPSBc IlhcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH07IHRoZW4KKysKKysgICAgZmlsZT1cIlwkXCQtXCRw cm9ncmFtXCIKKysKKysgICAgaWYgdGVzdCAhIC1kIFwiXCRwcm9nZGlyXCI7IHRoZW4KKysgICAg ICAkTUtESVIgXCJcJHByb2dkaXJcIgorKyAgICBlbHNlCisrICAgICAgJFJNIFwiXCRwcm9nZGly L1wkZmlsZVwiCisrICAgIGZpIgorKworKwkgICRFQ0hPICJcCisrCisrICAgICMgcmVsaW5rIGV4 ZWN1dGFibGUgaWYgbmVjZXNzYXJ5CisrICAgIGlmIHRlc3QgLW4gXCJcJHJlbGlua19jb21tYW5k XCI7IHRoZW4KKysgICAgICBpZiByZWxpbmtfY29tbWFuZF9vdXRwdXQ9XGBldmFsIFwkcmVsaW5r X2NvbW1hbmQgMj4mMVxgOyB0aGVuIDoKKysgICAgICBlbHNlCisrCSRFQ0hPIFwiXCRyZWxpbmtf Y29tbWFuZF9vdXRwdXRcIiA+JjIKKysJJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrCWV4aXQg MQorKyAgICAgIGZpCisrICAgIGZpCisrCisrICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVcIiBc IlwkcHJvZ2Rpci9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8fAorKyAgICB7ICRSTSBcIlwkcHJv Z2Rpci9cJHByb2dyYW1cIjsKKysgICAgICAkTVYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHBy b2dkaXIvXCRwcm9ncmFtXCI7IH0KKysgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrICBm aSIKKysJZWxzZQorKwkgICRFQ0hPICJcCisrICBwcm9ncmFtPSckb3V0cHV0bmFtZScKKysgIHBy b2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisrIgorKwlmaQorKworKwkkRUNITyAiXAorKwor KyAgaWYgdGVzdCAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgdGhlbiIKKysKKysJIyBFeHBv cnQgb3VyIHNobGlicGF0aF92YXIgaWYgd2UgaGF2ZSBvbmUuCisrCWlmIHRlc3QgIiRzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAm JiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KKysJICAkRUNITyAiXAorKyAgICAjIEFkZCBv dXIgb3duIGxpYnJhcnkgcGF0aCB0byAkc2hsaWJwYXRoX3ZhcgorKyAgICAkc2hsaWJwYXRoX3Zh cj1cIiR0ZW1wX3JwYXRoXCQkc2hsaWJwYXRoX3ZhclwiCisrCisrICAgICMgU29tZSBzeXN0ZW1z IGNhbm5vdCBjb3BlIHdpdGggY29sb24tdGVybWluYXRlZCAkc2hsaWJwYXRoX3ZhcgorKyAgICAj IFRoZSBzZWNvbmQgY29sb24gaXMgYSB3b3JrYXJvdW5kIGZvciBhIGJ1ZyBpbiBCZU9TIFI0IHNl ZAorKyAgICAkc2hsaWJwYXRoX3Zhcj1cYFwkRUNITyBcIlhcJCRzaGxpYnBhdGhfdmFyXCIgfCBc JFhzZWQgLWUgJ3MvOjoqXCQvLydcYAorKworKyAgICBleHBvcnQgJHNobGlicGF0aF92YXIKKysi CisrCWZpCisrCisrCSMgZml4dXAgdGhlIGRsbCBzZWFyY2hwYXRoIGlmIHdlIG5lZWQgdG8uCisr CWlmIHRlc3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsgdGhlbgorKwkgICRFQ0hPICJcCisrICAgICMg QWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQQVRI CisrICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6XCRQQVRICisrIgorKwlmaQorKworKwkkRUNITyAi XAorKyAgICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBcIiRtYWdpY1wi OyB0aGVuCisrICAgICAgIyBSdW4gdGhlIGFjdHVhbCBwcm9ncmFtIHdpdGggb3VyIGFyZ3VtZW50 cy4KKysiCisrCWNhc2UgJGhvc3QgaW4KKysJIyBCYWNrc2xhc2hlcyBzZXBhcmF0ZSBkaXJlY3Rv cmllcyBvbiBwbGFpbiB3aW5kb3dzCisrCSotKi1taW5ndyB8ICotKi1vczIqIHwgKi1jZWdjYyop CisrCSAgJEVDSE8gIlwKKysgICAgICBleGVjIFwiXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwiIFwk ezErXCJcJEBcIn0KKysiCisrCSAgOzsKKysKKysJKikKKysJICAkRUNITyAiXAorKyAgICAgIGV4 ZWMgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQorKyIKKysJICA7OworKwll c2FjCisrCSRFQ0hPICJcCisrICAgICAgXCRFQ0hPIFwiXCQwOiBjYW5ub3QgZXhlYyBcJHByb2dy YW0gXCQqXCIgMT4mMgorKyAgICAgIGV4aXQgMQorKyAgICBmaQorKyAgZWxzZQorKyAgICAjIFRo ZSBwcm9ncmFtIGRvZXNuJ3QgZXhpc3QuCisrICAgIFwkRUNITyBcIlwkMDogZXJyb3I6IFxcXGBc JHByb2dkaXIvXCRwcm9ncmFtJyBkb2VzIG5vdCBleGlzdFwiIDE+JjIKKysgICAgXCRFQ0hPIFwi VGhpcyBzY3JpcHQgaXMganVzdCBhIHdyYXBwZXIgZm9yIFwkcHJvZ3JhbS5cIiAxPiYyCisrICAg ICRFQ0hPIFwiU2VlIHRoZSAkUEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0 aW9uLlwiIDE+JjIKKysgICAgZXhpdCAxCisrICBmaQorK2ZpXAorKyIKKyt9CisrIyBlbmQ6IGZ1 bmNfZW1pdF93cmFwcGVyX3BhcnQyCisrCisrCisrIyBmdW5jX2VtaXRfd3JhcHBlciBbYXJnPW5v XQorKyMKKysjIEVtaXQgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KKysjIERv bid0IGRpcmVjdGx5IG9wZW4gYSBmaWxlIGJlY2F1c2Ugd2UgbWF5IHdhbnQgdG8KKysjIGluY29y cG9yYXRlIHRoZSBzY3JpcHQgY29udGVudHMgd2l0aGluIGEgY3lnd2luL21pbmd3CisrIyB3cmFw cGVyIGV4ZWN1dGFibGUuICBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluCisrIyBmdW5j X21vZGVfbGluayBiZWNhdXNlIGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFyaWFibGVzCisr IyBzZXQgdGhlcmVpbi4KKysjCisrIyBBUkcgaXMgdGhlIHZhbHVlIHRoYXQgdGhlIFdSQVBQRVJf U0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSCisrIyB2YXJpYWJsZSB3aWxsIHRha2UuICBJZiAneWVz JywgdGhlbiB0aGUgZW1pdHRlZCBzY3JpcHQKKysjIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRpcmVj dG9yeSBpbiB3aGljaCBpdCBpcyBzdG9yZWQgaXMKKysjIHRoZSAkb2JqZGlyIGRpcmVjdG9yeS4g IFRoaXMgaXMgYSBjeWd3aW4vbWluZ3ctc3BlY2lmaWMKKysjIGJlaGF2aW9yLgorK2Z1bmNfZW1p dF93cmFwcGVyICgpCisreworKwlmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPW5vCisrCWlmIHRlc3Qg LW4gIiQxIiA7IHRoZW4KKysJICBmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPSQxCisrCWZpCisrCisr CSMgc3BsaXQgdGhpcyB1cCBzbyB0aGF0IGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKKysJIyBj YW4gY2FsbCBlYWNoIHBhcnQgaW5kZXBlbmRlbnRseS4KKysJZnVuY19lbWl0X3dyYXBwZXJfcGFy dDEgIiR7ZnVuY19lbWl0X3dyYXBwZXJfYXJnMX0iCisrCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQy ICIke2Z1bmNfZW1pdF93cmFwcGVyX2FyZzF9IgorK30KKysKKysKKysjIGZ1bmNfdG9faG9zdF9w YXRoIGFyZworKyMKKysjIENvbnZlcnQgcGF0aHMgdG8gaG9zdCBmb3JtYXQgd2hlbiB1c2VkIHdp dGggYnVpbGQgdG9vbHMuCisrIyBJbnRlbmRlZCBmb3IgdXNlIHdpdGggIm5hdGl2ZSIgbWluZ3cg KHdoZXJlIGxpYnRvb2wgaXRzZWxmCisrIyBpcyBydW5uaW5nIHVuZGVyIHRoZSBtc3lzIHNoZWxs KSwgb3IgaW4gdGhlIGZvbGxvd2luZyBjcm9zcy0KKysjIGJ1aWxkIGVudmlyb25tZW50czoKKysj ICAgICRidWlsZCAgICAgICAgICAkaG9zdAorKyMgICAgbWluZ3cgKG1zeXMpICAgIG1pbmd3ICBb ZS5nLiBuYXRpdmVdCisrIyAgICBjeWd3aW4gICAgICAgICAgbWluZ3cKKysjICAgICpuaXggKyB3 aW5lICAgICBtaW5ndworKyMgd2hlcmUgd2luZSBpcyBlcXVpcHBlZCB3aXRoIHRoZSBgd2luZXBh dGgnIGV4ZWN1dGFibGUuCisrIyBJbiB0aGUgbmF0aXZlIG1pbmd3IGNhc2UsIHRoZSAobXN5cykg c2hlbGwgYXV0b21hdGljYWxseQorKyMgY29udmVydHMgcGF0aHMgZm9yIGFueSBub24tbXN5cyBh cHBsaWNhdGlvbnMgaXQgbGF1bmNoZXMsCisrIyBidXQgdGhhdCBmYWNpbGl0eSBpc24ndCBhdmFp bGFibGUgZnJvbSBpbnNpZGUgdGhlIGN3cmFwcGVyLgorKyMgU2ltaWxhciBhY2NvbW1vZGF0aW9u cyBhcmUgbmVjZXNzYXJ5IGZvciAkaG9zdCBtaW5ndyBhbmQKKysjICRidWlsZCBjeWd3aW4uICBD YWxsaW5nIHRoaXMgZnVuY3Rpb24gZG9lcyBubyBoYXJtIGZvciBvdGhlcgorKyMgJGhvc3QvJGJ1 aWxkIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGFib3ZlLgorKyMKKysjIEFSRyBpcyB0aGUgcGF0 aCAob24gJGJ1aWxkKSB0aGF0IHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8KKysjIHRoZSBwcm9wZXIg cmVwcmVzZW50YXRpb24gZm9yICRob3N0LiBUaGUgcmVzdWx0IGlzIHN0b3JlZAorKyMgaW4gJGZ1 bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KKytmdW5jX3RvX2hvc3RfcGF0aCAoKQorK3sKKysgIGZ1 bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisrICBpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCisr ICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAqbWluZ3cqICkKKysgICAgICAgIGx0X3NlZF9uYWl2 ZV9iYWNrc2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKKysgICAg ICAgIGNhc2UgJGJ1aWxkIGluCisrICAgICAgICAgICptaW5ndyogKSAjIGFjdHVhbGx5LCBtc3lz CisrICAgICAgICAgICAgIyBhd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0Cisr ICAgICAgICAgICAgbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcz0icy9bIF0qXCQvLyIKKysg ICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPWAoIGNtZCAvL2MgZWNobyAiJDEiIHxc CisrICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcyIg KSAyPi9kZXYvbnVsbCB8fCBlY2hvICIiYAorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRo X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCisrICAgICAgICAgICAg ICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisrICAgICAgICAgICAgOzsK KysgICAgICAgICAgKmN5Z3dpbiogKQorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Rt cDE9YGN5Z3BhdGggLXcgIiQxImAKKysgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1 bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAorKyAgICAgICAgICAgICAgJFNF RCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorKyAgICAgICAgICAgIDs7CisrICAg ICAgICAgICogKQorKyAgICAgICAgICAgICMgVW5mb3J0dW5hdGVseSwgd2luZXBhdGggZG9lcyBu b3QgZXhpdCB3aXRoIGEgbm9uLXplcm8KKysgICAgICAgICAgICAjIGVycm9yIGNvZGUsIHNvIHdl IGFyZSBmb3JjZWQgdG8gY2hlY2sgdGhlIGNvbnRlbnRzIG9mCisrICAgICAgICAgICAgIyBzdGRv dXQuIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB0aGUgY29tbWFuZCBpcyBub3QKKysgICAgICAgICAg ICAjIGZvdW5kLCB0aGUgc2hlbGwgd2lsbCBzZXQgYW4gZXhpdCBjb2RlIG9mIDEyNyBhbmQgcHJp bnQKKysgICAgICAgICAgICAjICphbiBlcnJvciBtZXNzYWdlKiB0byBzdGRvdXQuIFNvIHdlIG11 c3QgY2hlY2sgZm9yIGJvdGgKKysgICAgICAgICAgICAjIGVycm9yIGNvZGUgb2YgemVybyBBTkQg bm9uLWVtcHR5IHN0ZG91dCwgd2hpY2ggZXhwbGFpbnMKKysgICAgICAgICAgICAjIHRoZSBvZGQg Y29uc3RydWN0aW9uOgorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9YHdpbmVw YXRoIC13ICIkMSIgMj4vZGV2L251bGxgCisrICAgICAgICAgICAgaWYgdGVzdCAiJD8iIC1lcSAw ICYmIHRlc3QgLW4gIiR7ZnVuY190b19ob3N0X3BhdGhfdG1wMX0iOyB0aGVuCisrICAgICAgICAg ICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90 bXAxIiB8XAorKyAgICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFz aGlmeSJgCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgIyBBbGxvdyB3YXJuaW5n IGJlbG93LgorKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIiCisrICAg ICAgICAgICAgZmkKKysgICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgaWYg dGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIgOyB0aGVuCisrICAgICAgICAgIGZ1 bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgaG9zdCBwYXRoIGNvcnJlc3BvbmRpbmcgdG8i CisrICAgICAgICAgIGZ1bmNfZXJyb3IgIiAgJyQxJyIKKysgICAgICAgICAgZnVuY19lcnJvciAi Q29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIG1heSBub3Qgd29yay4iCisr ICAgICAgICAgICMgRmFsbGJhY2s6CisrICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3Vs dD0iJDEiCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKyt9Cisr IyBlbmQ6IGZ1bmNfdG9faG9zdF9wYXRoCisrCisrIyBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgYXJn CisrIworKyMgQ29udmVydCBwYXRobGlzdHMgdG8gaG9zdCBmb3JtYXQgd2hlbiB1c2VkIHdpdGgg YnVpbGQgdG9vbHMuCisrIyBTZWUgZnVuY190b19ob3N0X3BhdGgoKSwgYWJvdmUuIFRoaXMgZnVu Y3Rpb24gc3VwcG9ydHMgdGhlCisrIyBmb2xsb3dpbmcgJGJ1aWxkLyRob3N0IGNvbWJpbmF0aW9u cyAoYnV0IGRvZXMgbm8gaGFybSBmb3IKKysjIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGhlcmUp OgorKyMgICAgJGJ1aWxkICAgICAgICAgICRob3N0CisrIyAgICBtaW5ndyAobXN5cykgICAgbWlu Z3cgIFtlLmcuIG5hdGl2ZV0KKysjICAgIGN5Z3dpbiAgICAgICAgICBtaW5ndworKyMgICAgKm5p eCArIHdpbmUgICAgIG1pbmd3CisrIworKyMgUGF0aCBzZXBhcmF0b3JzIGFyZSBhbHNvIGNvbnZl cnRlZCBmcm9tICRidWlsZCBmb3JtYXQgdG8KKysjICRob3N0IGZvcm1hdC4gSWYgQVJHIGJlZ2lu cyBvciBlbmRzIHdpdGggYSBwYXRoIHNlcGFyYXRvcgorKyMgY2hhcmFjdGVyLCBpdCBpcyBwcmVz ZXJ2ZWQgKGJ1dCBjb252ZXJ0ZWQgdG8gJGhvc3QgZm9ybWF0KQorKyMgb24gb3V0cHV0LgorKyMK KysjIEFSRyBpcyBhIHBhdGhsaXN0IChvbiAkYnVpbGQpIHRoYXQgc2hvdWxkIGJlIGNvbnZlcnRl ZCB0bworKyMgdGhlIHByb3BlciByZXByZXNlbnRhdGlvbiBvbiAkaG9zdC4gVGhlIHJlc3VsdCBp cyBzdG9yZWQKKysjIGluICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0LgorK2Z1bmNfdG9f aG9zdF9wYXRobGlzdCAoKQorK3sKKysgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiQx IgorKyAgaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgorKyAgICBjYXNlICRob3N0IGluCisrICAgICAg Km1pbmd3KiApCisrICAgICAgICBsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwqfFxc fGc7c3wvfFxcfGc7c3xcXHxcXFxcfGcnCisrICAgICAgICAjIFJlbW92ZSBsZWFkaW5nIGFuZCB0 cmFpbGluZyBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXJzIGZyb20KKysgICAgICAgICMgQVJHLiBt c3lzIGJlaGF2aW9yIGlzIGluY29uc2lzdGVudCBoZXJlLCBjeWdwYXRoIHR1cm5zIHRoZW0KKysg ICAgICAgICMgaW50byAnLjsnIGFuZCAnOy4nLCBhbmQgd2luZXBhdGggaWdub3JlcyB0aGVtIGNv bXBsZXRlbHkuCisrICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMj0iJDEiCisrICAg ICAgICAjIE9uY2Ugc2V0IGZvciB0aGlzIGNhbGwsIHRoaXMgdmFyaWFibGUgc2hvdWxkIG5vdCBi ZQorKyAgICAgICAgIyByZWFzc2lnbmVkLiBJdCBpcyB1c2VkIGluIHRoYSBmYWxsYmFjayBjYXNl LgorKyAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDE9YGVjaG8gIiRmdW5jX3RvX2hv c3RfcGF0aGxpc3RfdG1wMiIgfFwKKysgICAgICAgICAgJFNFRCAtZSAnc3xeOip8fCcgLWUgJ3N8 OiokfHwnYAorKyAgICAgICAgY2FzZSAkYnVpbGQgaW4KKysgICAgICAgICAgKm1pbmd3KiApICMg QWN0dWFsbHksIG1zeXMuCisrICAgICAgICAgICAgIyBBd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFj ZXMgdG8gcmVzdWx0LgorKyAgICAgICAgICAgIGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXM9 InMvWyBdKlwkLy8iCisrICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDI9YCgg Y21kIC8vYyBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEiIHxcCisrICAgICAgICAg ICAgICAkU0VEIC1lICIkbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcyIgKSAyPi9kZXYvbnVs bCB8fCBlY2hvICIiYAorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9 YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKKysgICAgICAgICAgICAgICRT RUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKKysgICAgICAgICAgICA7OworKyAg ICAgICAgICAqY3lnd2luKiApCisrICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Rt cDI9YGN5Z3BhdGggLXcgLXAgIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSJgCisrICAgICAg ICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9w YXRobGlzdF90bXAyIiB8XAorKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9i YWNrc2xhc2hpZnkiYAorKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICogKQorKyAgICAgICAg ICAgICMgdW5mb3J0dW5hdGVseSwgd2luZXBhdGggZG9lc24ndCBjb252ZXJ0IHBhdGhsaXN0cwor KyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiIKKysgICAgICAgICAg ICBmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTPSRJRlMKKysgICAgICAgICAgICBJRlM9Ogor KyAgICAgICAgICAgIGZvciBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiBpbiAkZnVuY190b19ob3N0 X3BhdGhsaXN0X3RtcDEgOyBkbworKyAgICAgICAgICAgICAgSUZTPSRmdW5jX3RvX2hvc3RfcGF0 aGxpc3Rfb2xkSUZTCisrICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkZnVuY190b19ob3N0X3Bh dGhsaXN0X2YiIDsgdGhlbgorKyAgICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aCAiJGZ1 bmNfdG9faG9zdF9wYXRobGlzdF9mIgorKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkZnVu Y190b19ob3N0X3BhdGhfcmVzdWx0IiA7IHRoZW4KKysgICAgICAgICAgICAgICAgICBpZiB0ZXN0 IC16ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIgOyB0aGVuCisrICAgICAgICAgICAg ICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3BhdGhf cmVzdWx0IgorKyAgICAgICAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0 OyRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCisrICAgICAgICAgICAgICAgICAgZmkKKysgICAg ICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICBJRlM9Ogor KyAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICBJRlM9JGZ1bmNfdG9faG9zdF9wYXRobGlz dF9vbGRJRlMKKysgICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgaWYgdGVz dCAteiAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiIDsgdGhlbgorKyAgICAgICAgICBm dW5jX2Vycm9yICJDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBob3N0IHBhdGgocykgY29ycmVzcG9u ZGluZyB0byIKKysgICAgICAgICAgZnVuY19lcnJvciAiICAnJDEnIgorKyAgICAgICAgICBmdW5j X2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhlY3V0YWJsZXMgbWF5IG5vdCB3 b3JrLiIKKysgICAgICAgICAgIyBGYWxsYmFjay4gVGhpcyBtYXkgYnJlYWsgaWYgJDEgY29udGFp bnMgRE9TLXN0eWxlIGRyaXZlCisrICAgICAgICAgICMgc3BlY2lmaWNhdGlvbnMuIFRoZSBmaXgg aXMgbm90IHRvIGNvbXBsaWNhdGUgdGhlIGV4cHJlc3Npb24KKysgICAgICAgICAgIyBiZWxvdywg YnV0IGZvciB0aGUgdXNlciB0byBwcm92aWRlIGEgd29ya2luZyB3aW5lIGluc3RhbGxhdGlvbgor KyAgICAgICAgICAjIHdpdGggd2luZXBhdGggc28gdGhhdCBwYXRoIHRyYW5zbGF0aW9uIGluIHRo ZSBjcm9zcy10by1taW5ndworKyAgICAgICAgICAjIGNhc2Ugd29ya3MgcHJvcGVybHkuCisrICAg ICAgICAgIGx0X3JlcGxhY2VfcGF0aHNlcF9uaXhfdG9fZG9zPSJzfDp8O3xnIgorKyAgICAgICAg ICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhs aXN0X3RtcDEiIHxcCisrICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3JlcGxhY2VfcGF0aHNlcF9u aXhfdG9fZG9zImAKKysgICAgICAgIGZpCisrICAgICAgICAjIE5vdywgYWRkIHRoZSBsZWFkaW5n IGFuZCB0cmFpbGluZyBwYXRoIHNlcGFyYXRvcnMgYmFjaworKyAgICAgICAgY2FzZSAiJDEiIGlu CisrICAgICAgICAgIDoqICkgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iOyRmdW5jX3Rv X2hvc3RfcGF0aGxpc3RfcmVzdWx0IgorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisr ICAgICAgICBjYXNlICIkMSIgaW4KKysgICAgICAgICAgKjogKSBmdW5jX3RvX2hvc3RfcGF0aGxp c3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdDsiCisrICAgICAgICAgICAg OzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrfQorKyMg ZW5kOiBmdW5jX3RvX2hvc3RfcGF0aGxpc3QKKysKKysjIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9z cmMKKysjIGVtaXQgdGhlIHNvdXJjZSBjb2RlIGZvciBhIHdyYXBwZXIgZXhlY3V0YWJsZSBvbiBz dGRvdXQKKysjIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gZnVuY19tb2RlX2xpbmsg YmVjYXVzZQorKyMgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJpYWJsZSBzZXQgdGhlcmVp bi4KKytmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjICgpCisreworKwljYXQgPDxFT0YKKysKKysv KiAkY3dyYXBwZXJzb3VyY2UgLSB0ZW1wb3Jhcnkgd3JhcHBlciBleGVjdXRhYmxlIGZvciAkb2Jq ZGlyLyRvdXRwdXRuYW1lCisrICAgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0Uk VElNRVNUQU1QKSAkVkVSU0lPTgorKworKyAgIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90IGJl IGRpcmVjdGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGlidG9vbAorKyAgIGxpYnJhcmllcyB0 aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KKysKKysgICBUaGlzIHdyYXBwZXIgZXhl Y3V0YWJsZSBzaG91bGQgbmV2ZXIgYmUgbW92ZWQgb3V0IG9mIHRoZSBidWlsZCBkaXJlY3Rvcnku CisrICAgSWYgaXQgaXMsIGl0IHdpbGwgbm90IG9wZXJhdGUgY29ycmVjdGx5LgorKworKyAgIEN1 cnJlbnRseSwgaXQgc2ltcGx5IGV4ZWNzIHRoZSB3cmFwcGVyICpzY3JpcHQqICIkU0hFTEwgJG91 dHB1dCIsCisrICAgYnV0IGNvdWxkIGV2ZW50dWFsbHkgYWJzb3JiIGFsbCBvZiB0aGUgc2NyaXB0 cyBmdW5jdGlvbmFsaXR5IGFuZAorKyAgIGV4ZWMgJG9iamRpci8kb3V0cHV0bmFtZSBkaXJlY3Rs eS4KKysqLworK0VPRgorKwkgICAgY2F0IDw8IkVPRiIKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysj aW5jbHVkZSA8c3RkbGliLmg+CisrI2lmZGVmIF9NU0NfVkVSCisrIyBpbmNsdWRlIDxkaXJlY3Qu aD4KKysjIGluY2x1ZGUgPHByb2Nlc3MuaD4KKysjIGluY2x1ZGUgPGlvLmg+CisrIyBkZWZpbmUg c2V0bW9kZSBfc2V0bW9kZQorKyNlbHNlCisrIyBpbmNsdWRlIDx1bmlzdGQuaD4KKysjIGluY2x1 ZGUgPHN0ZGludC5oPgorKyMgaWZkZWYgX19DWUdXSU5fXworKyMgIGluY2x1ZGUgPGlvLmg+Cisr IyAgZGVmaW5lIEhBVkVfU0VURU5WCisrIyAgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCisrY2hhciAq cmVhbHBhdGggKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKKytpbnQgcHV0ZW52IChjaGFyICopOwor K2ludCBzZXRlbnYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOworKyMgIGVuZGlm CisrIyBlbmRpZgorKyNlbmRpZgorKyNpbmNsdWRlIDxtYWxsb2MuaD4KKysjaW5jbHVkZSA8c3Rk YXJnLmg+CisrI2luY2x1ZGUgPGFzc2VydC5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5j bHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8ZmNudGwuaD4K KysjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKysKKysjaWYgZGVmaW5lZChQQVRIX01BWCkKKysjIGRl ZmluZSBMVF9QQVRITUFYIFBBVEhfTUFYCisrI2VsaWYgZGVmaW5lZChNQVhQQVRITEVOKQorKyMg ZGVmaW5lIExUX1BBVEhNQVggTUFYUEFUSExFTgorKyNlbHNlCisrIyBkZWZpbmUgTFRfUEFUSE1B WCAxMDI0CisrI2VuZGlmCisrCisrI2lmbmRlZiBTX0lYT1RICisrIyBkZWZpbmUgU19JWE9USCAw CisrI2VuZGlmCisrI2lmbmRlZiBTX0lYR1JQCisrIyBkZWZpbmUgU19JWEdSUCAwCisrI2VuZGlm CisrCisrI2lmZGVmIF9NU0NfVkVSCisrIyBkZWZpbmUgU19JWFVTUiBfU19JRVhFQworKyMgZGVm aW5lIHN0YXQgX3N0YXQKKysjIGlmbmRlZiBfSU5UUFRSX1RfREVGSU5FRAorKyMgIGRlZmluZSBp bnRwdHJfdCBpbnQKKysjIGVuZGlmCisrI2VuZGlmCisrCisrI2lmbmRlZiBESVJfU0VQQVJBVE9S CisrIyBkZWZpbmUgRElSX1NFUEFSQVRPUiAnLycKKysjIGRlZmluZSBQQVRIX1NFUEFSQVRPUiAn OicKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX1dJTjMyKSB8fCBkZWZpbmVkIChfX01TRE9T X18pIHx8IGRlZmluZWQgKF9fREpHUFBfXykgfHwgXAorKyAgZGVmaW5lZCAoX19PUzJfXykKKysj IGRlZmluZSBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTQorKyMgZGVmaW5lIEZPUEVOX1dCICJ3 YiIKKysjIGlmbmRlZiBESVJfU0VQQVJBVE9SXzIKKysjICBkZWZpbmUgRElSX1NFUEFSQVRPUl8y ICdcXCcKKysjIGVuZGlmCisrIyBpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgorKyMgIGRlZmluZSBQ QVRIX1NFUEFSQVRPUl8yICc7JworKyMgZW5kaWYKKysjZW5kaWYKKysKKysjaWZuZGVmIERJUl9T RVBBUkFUT1JfMgorKyMgZGVmaW5lIElTX0RJUl9TRVBBUkFUT1IoY2gpICgoY2gpID09IERJUl9T RVBBUkFUT1IpCisrI2Vsc2UgLyogRElSX1NFUEFSQVRPUl8yICovCisrIyBkZWZpbmUgSVNfRElS X1NFUEFSQVRPUihjaCkgXAorKwkoKChjaCkgPT0gRElSX1NFUEFSQVRPUikgfHwgKChjaCkgPT0g RElSX1NFUEFSQVRPUl8yKSkKKysjZW5kaWYgLyogRElSX1NFUEFSQVRPUl8yICovCisrCisrI2lm bmRlZiBQQVRIX1NFUEFSQVRPUl8yCisrIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgo Y2gpID09IFBBVEhfU0VQQVJBVE9SKQorKyNlbHNlIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8KKysj IGRlZmluZSBJU19QQVRIX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gUEFUSF9TRVBBUkFUT1JfMikK KysjZW5kaWYgLyogUEFUSF9TRVBBUkFUT1JfMiAqLworKworKyNpZmRlZiBfX0NZR1dJTl9fCisr IyBkZWZpbmUgRk9QRU5fV0IgIndiIgorKyNlbmRpZgorKworKyNpZm5kZWYgRk9QRU5fV0IKKysj IGRlZmluZSBGT1BFTl9XQiAidyIKKysjZW5kaWYKKysjaWZuZGVmIF9PX0JJTkFSWQorKyMgZGVm aW5lIF9PX0JJTkFSWSAwCisrI2VuZGlmCisrCisrI2RlZmluZSBYTUFMTE9DKHR5cGUsIG51bSkg ICAgICAoKHR5cGUgKikgeG1hbGxvYyAoKG51bSkgKiBzaXplb2YodHlwZSkpKQorKyNkZWZpbmUg WEZSRUUoc3RhbGUpIGRvIHsgXAorKyAgaWYgKHN0YWxlKSB7IGZyZWUgKCh2b2lkICopIHN0YWxl KTsgc3RhbGUgPSAwOyB9IFwKKyt9IHdoaWxlICgwKQorKworKyN1bmRlZiBMVFdSQVBQRVJfREVC VUdQUklOVEYKKysjaWYgZGVmaW5lZCBERUJVR1dSQVBQRVIKKysjIGRlZmluZSBMVFdSQVBQRVJf REVCVUdQUklOVEYoYXJncykgbHR3cmFwcGVyX2RlYnVncHJpbnRmIGFyZ3MKKytzdGF0aWMgdm9p ZAorK2x0d3JhcHBlcl9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZm10LCAuLi4pCisreworKyAg ICB2YV9saXN0IGFyZ3M7CisrICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOworKyAgICAodm9pZCkg dmZwcmludGYgKHN0ZGVyciwgZm10LCBhcmdzKTsKKysgICAgdmFfZW5kIChhcmdzKTsKKyt9Cisr I2Vsc2UKKysjIGRlZmluZSBMVFdSQVBQRVJfREVCVUdQUklOVEYoYXJncykKKysjZW5kaWYKKysK Kytjb25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSBOVUxMOworKworK3ZvaWQgKnhtYWxsb2MgKHNp emVfdCBudW0pOworK2NoYXIgKnhzdHJkdXAgKGNvbnN0IGNoYXIgKnN0cmluZyk7CisrY29uc3Qg Y2hhciAqYmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1lKTsKKytjaGFyICpmaW5kX2V4ZWN1dGFi bGUgKGNvbnN0IGNoYXIgKndyYXBwZXIpOworK2NoYXIgKmNoYXNlX3N5bWxpbmtzIChjb25zdCBj aGFyICpwYXRoc3BlYyk7CisraW50IG1ha2VfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7 CisraW50IGNoZWNrX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpOworK2NoYXIgKnN0cmVu ZHphcCAoY2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpOworK3ZvaWQgbHRfZmF0YWwgKGNvbnN0 IGNoYXIgKm1lc3NhZ2UsIC4uLik7Cisrdm9pZCBsdF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IGNoYXIgKnZhbHVlKTsKKytjaGFyICpsdF9leHRlbmRfc3RyIChjb25zdCBjaGFyICpv cmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQsIGludCB0b19lbmQpOworK3ZvaWQgbHRfb3B0X3By b2Nlc3NfZW52X3NldCAoY29uc3QgY2hhciAqYXJnKTsKKyt2b2lkIGx0X29wdF9wcm9jZXNzX2Vu dl9wcmVwZW5kIChjb25zdCBjaGFyICphcmcpOworK3ZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52X2Fw cGVuZCAoY29uc3QgY2hhciAqYXJnKTsKKytpbnQgbHRfc3BsaXRfbmFtZV92YWx1ZSAoY29uc3Qg Y2hhciAqYXJnLCBjaGFyKiogbmFtZSwgY2hhcioqIHZhbHVlKTsKKyt2b2lkIGx0X3VwZGF0ZV9l eGVfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOworK3ZvaWQgbHRf dXBkYXRlX2xpYl9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7Cisr Cisrc3RhdGljIGNvbnN0IGNoYXIgKnNjcmlwdF90ZXh0X3BhcnQxID0KKytFT0YKKysKKysJICAg IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxIHllcyB8CisrCSAgICAgICAgJFNFRCAtZSAncy9cKFtc XCJdXCkvXFxcMS9nJyBcCisrCSAgICAgICAgICAgICAtZSAncy9eLyAgIi8nIC1lICdzLyQvXFxu Ii8nCisrCSAgICBlY2hvICI7IgorKwkgICAgY2F0IDw8RU9GCisrCisrc3RhdGljIGNvbnN0IGNo YXIgKnNjcmlwdF90ZXh0X3BhcnQyID0KKytFT0YKKysJICAgIGZ1bmNfZW1pdF93cmFwcGVyX3Bh cnQyIHllcyB8CisrCSAgICAgICAgJFNFRCAtZSAncy9cKFtcXCJdXCkvXFxcMS9nJyBcCisrCSAg ICAgICAgICAgICAtZSAncy9eLyAgIi8nIC1lICdzLyQvXFxuIi8nCisrCSAgICBlY2hvICI7Igor KworKwkgICAgY2F0IDw8RU9GCisrY29uc3QgY2hhciAqIE1BR0lDX0VYRSA9ICIkbWFnaWNfZXhl IjsKKytjb25zdCBjaGFyICogTElCX1BBVEhfVkFSTkFNRSA9ICIkc2hsaWJwYXRoX3ZhciI7Cisr RU9GCisrCisrCSAgICBpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHll cyAmJiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHRlbXBfcnBhdGgiOyB0 aGVuCisrICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgIiR0ZW1wX3JwYXRoIgor KwkgICAgICBjYXQgPDxFT0YKKytjb25zdCBjaGFyICogTElCX1BBVEhfVkFMVUUgICA9ICIkZnVu Y190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCI7CisrRU9GCisrCSAgICBlbHNlCisrCSAgICAgIGNh dCA8PCJFT0YiCisrY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiIjsKKytFT0YKKysJ ICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KKysgICAg ICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdCAiJGRsbHNlYXJjaHBhdGg6IgorKwkgICAg ICBjYXQgPDxFT0YKKytjb25zdCBjaGFyICogRVhFX1BBVEhfVkFSTkFNRSA9ICJQQVRIIjsKKytj b25zdCBjaGFyICogRVhFX1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jl c3VsdCI7CisrRU9GCisrCSAgICBlbHNlCisrCSAgICAgIGNhdCA8PCJFT0YiCisrY29uc3QgY2hh ciAqIEVYRV9QQVRIX1ZBUk5BTUUgPSAiIjsKKytjb25zdCBjaGFyICogRVhFX1BBVEhfVkFMVUUg ICA9ICIiOworK0VPRgorKwkgICAgZmkKKysKKysJICAgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwi ID0geWVzOyB0aGVuCisrCSAgICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBUQVJHRVRfUFJP R1JBTV9OQU1FID0gImx0LSRvdXRwdXRuYW1lIjsgLyogaG9wZWZ1bGx5LCBubyAuZXhlICovCisr RU9GCisrCSAgICBlbHNlCisrCSAgICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBUQVJHRVRf UFJPR1JBTV9OQU1FID0gIiRvdXRwdXRuYW1lIjsgLyogaG9wZWZ1bGx5LCBubyAuZXhlICovCisr RU9GCisrCSAgICBmaQorKworKworKwkgICAgY2F0IDw8IkVPRiIKKysKKysjZGVmaW5lIExUV1JB UFBFUl9PUFRJT05fUFJFRklYICAgICAgICAgIi0tbHQtIgorKyNkZWZpbmUgTFRXUkFQUEVSX09Q VElPTl9QUkVGSVhfTEVOR1RIICA1CisrCisrc3RhdGljIGNvbnN0IHNpemVfdCBvcHRfcHJlZml4 X2xlbiAgICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIOworK3N0YXRpYyBj b25zdCBjaGFyICpsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCA9IExUV1JBUFBFUl9PUFRJT05fUFJF RklYOworKworK3N0YXRpYyBjb25zdCBjaGFyICpkdW1wc2NyaXB0X29wdCAgICAgICA9IExUV1JB UFBFUl9PUFRJT05fUFJFRklYICJkdW1wLXNjcmlwdCI7CisrCisrc3RhdGljIGNvbnN0IHNpemVf dCBlbnZfc2V0X29wdF9sZW4gICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICsg NzsKKytzdGF0aWMgY29uc3QgY2hhciAqZW52X3NldF9vcHQgICAgICAgICAgPSBMVFdSQVBQRVJf T1BUSU9OX1BSRUZJWCAiZW52LXNldCI7CisrICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUg ImZvbz1iYXIiLCB2YWx1ZSBvZiBmb28gaXMgc2V0IHRvIGJhciAqLworKworK3N0YXRpYyBjb25z dCBzaXplX3QgZW52X3ByZXBlbmRfb3B0X2xlbiA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xF TkdUSCArIDExOworK3N0YXRpYyBjb25zdCBjaGFyICplbnZfcHJlcGVuZF9vcHQgICAgICA9IExU V1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtcHJlcGVuZCI7CisrICAvKiBhcmd1bWVudCBpcyBw dXRlbnYtc3R5bGUgImZvbz1iYXIiLCBuZXcgdmFsdWUgb2YgZm9vIGlzIGJhciR7Zm9vfSAqLwor KworK3N0YXRpYyBjb25zdCBzaXplX3QgZW52X2FwcGVuZF9vcHRfbGVuICA9IExUV1JBUFBFUl9P UFRJT05fUFJFRklYX0xFTkdUSCArIDEwOworK3N0YXRpYyBjb25zdCBjaGFyICplbnZfYXBwZW5k X29wdCAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtYXBwZW5kIjsKKysgIC8q IGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIG5ldyB2YWx1ZSBvZiBmb28gaXMg JHtmb299YmFyICovCisrCisraW50CisrbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyt7 CisrICBjaGFyICoqbmV3YXJnejsKKysgIGludCAgbmV3YXJnYzsKKysgIGNoYXIgKnRtcF9wYXRo c3BlYzsKKysgIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9wYXRoOworKyAgY2hhciAqYWN0dWFsX2N3 cmFwcGVyX25hbWU7CisrICBjaGFyICp0YXJnZXRfbmFtZTsKKysgIGNoYXIgKmx0X2FyZ3ZfemVy bzsKKysgIGludHB0cl90IHJ2YWwgPSAxMjc7CisrCisrICBpbnQgaTsKKysKKysgIHByb2dyYW1f bmFtZSA9IChjaGFyICopIHhzdHJkdXAgKGJhc2VfbmFtZSAoYXJndlswXSkpOworKyAgTFRXUkFQ UEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBhcmd2WzBdICAgICAgOiAlc1xuIiwgYXJndlswXSkp OworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBwcm9ncmFtX25hbWUgOiAlc1xu IiwgcHJvZ3JhbV9uYW1lKSk7CisrCisrICAvKiB2ZXJ5IHNpbXBsZSBhcmcgcGFyc2luZzsgZG9u J3Qgd2FudCB0byByZWx5IG9uIGdldG9wdCAqLworKyAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkr KykKKysgICAgeworKyAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0sIGR1bXBzY3JpcHRfb3B0KSA9 PSAwKQorKwl7CisrRU9GCisrCSAgICBjYXNlICIkaG9zdCIgaW4KKysJICAgICAgKm1pbmd3KiB8 ICpjeWd3aW4qICkKKysJCSMgbWFrZSBzdGRvdXQgdXNlICJ1bml4IiBsaW5lIGVuZGluZ3MKKysJ CWVjaG8gIiAgICAgICAgICBzZXRtb2RlKDEsX09fQklOQVJZKTsiCisrCQk7OworKwkgICAgICBl c2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorKwkgIHByaW50ZiAoIiVzIiwgc2NyaXB0X3RleHRf cGFydDEpOworKwkgIHByaW50ZiAoIiVzIiwgc2NyaXB0X3RleHRfcGFydDIpOworKwkgIHJldHVy biAwOworKwl9CisrICAgIH0KKysKKysgIG5ld2FyZ3ogPSBYTUFMTE9DIChjaGFyICosIGFyZ2Mg KyAxKTsKKysgIHRtcF9wYXRoc3BlYyA9IGZpbmRfZXhlY3V0YWJsZSAoYXJndlswXSk7CisrICBp ZiAodG1wX3BhdGhzcGVjID09IE5VTEwpCisrICAgIGx0X2ZhdGFsICgiQ291bGRuJ3QgZmluZCAl cyIsIGFyZ3ZbMF0pOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmb3VuZCBl eGUgKGJlZm9yZSBzeW1saW5rIGNoYXNlKSBhdCA6ICVzXG4iLAorKwkJCSAgdG1wX3BhdGhzcGVj KSk7CisrCisrICBhY3R1YWxfY3dyYXBwZXJfcGF0aCA9IGNoYXNlX3N5bWxpbmtzICh0bXBfcGF0 aHNwZWMpOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmb3VuZCBleGUgKGFm dGVyIHN5bWxpbmsgY2hhc2UpIGF0IDogJXNcbiIsCisrCQkJICBhY3R1YWxfY3dyYXBwZXJfcGF0 aCkpOworKyAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7CisrCisrICBhY3R1YWxfY3dyYXBwZXJfbmFt ZSA9IHhzdHJkdXAoIGJhc2VfbmFtZSAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpKTsKKysgIHN0cmVu ZHphcCAoYWN0dWFsX2N3cmFwcGVyX3BhdGgsIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKKysKKysg IC8qIHdyYXBwZXIgbmFtZSB0cmFuc2Zvcm1zICovCisrICBzdHJlbmR6YXAgKGFjdHVhbF9jd3Jh cHBlcl9uYW1lLCAiLmV4ZSIpOworKyAgdG1wX3BhdGhzcGVjID0gbHRfZXh0ZW5kX3N0ciAoYWN0 dWFsX2N3cmFwcGVyX25hbWUsICIuZXhlIiwgMSk7CisrICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVy X25hbWUpOworKyAgYWN0dWFsX2N3cmFwcGVyX25hbWUgPSB0bXBfcGF0aHNwZWM7CisrICB0bXBf cGF0aHNwZWMgPSAwOworKworKyAgLyogdGFyZ2V0X25hbWUgdHJhbnNmb3JtcyAtLSB1c2UgYWN0 dWFsIHRhcmdldCBwcm9ncmFtIG5hbWU7IG1pZ2h0IGhhdmUgbHQtIHByZWZpeCAqLworKyAgdGFy Z2V0X25hbWUgPSB4c3RyZHVwIChiYXNlX25hbWUgKFRBUkdFVF9QUk9HUkFNX05BTUUpKTsKKysg IHN0cmVuZHphcCAodGFyZ2V0X25hbWUsICIuZXhlIik7CisrICB0bXBfcGF0aHNwZWMgPSBsdF9l eHRlbmRfc3RyICh0YXJnZXRfbmFtZSwgIi5leGUiLCAxKTsKKysgIFhGUkVFICh0YXJnZXRfbmFt ZSk7CisrICB0YXJnZXRfbmFtZSA9IHRtcF9wYXRoc3BlYzsKKysgIHRtcF9wYXRoc3BlYyA9IDA7 CisrCisrICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGxpYnRvb2wgdGFyZ2V0IG5h bWU6ICVzXG4iLAorKwkJCSAgdGFyZ2V0X25hbWUpKTsKKytFT0YKKysKKysJICAgIGNhdCA8PEVP RgorKyAgbmV3YXJnelswXSA9CisrICAgIFhNQUxMT0MgKGNoYXIsIChzdHJsZW4gKGFjdHVhbF9j d3JhcHBlcl9wYXRoKSArCisrCQkgICAgc3RybGVuICgiJG9iamRpciIpICsgMSArIHN0cmxlbiAo YWN0dWFsX2N3cmFwcGVyX25hbWUpICsgMSkpOworKyAgc3RyY3B5IChuZXdhcmd6WzBdLCBhY3R1 YWxfY3dyYXBwZXJfcGF0aCk7CisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIkb2JqZGlyIik7Cisr ICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIvIik7CisrRU9GCisrCisrCSAgICBjYXQgPDwiRU9GIgor KyAgLyogc3RvcCBoZXJlLCBhbmQgY29weSBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoaXMgdHdp Y2UgKi8KKysgIHRtcF9wYXRoc3BlYyA9IHhzdHJkdXAgKG5ld2FyZ3pbMF0pOworKworKyAgLyog ZG8gTk9UIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSwgc28gdXNlIGFjdHVhbF9jd3JhcHBlcl9u YW1lICovCisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKKysK KysgIC8qIERPIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSBpZiBpdCBleGlzdHMsIHNvIHVzZSB0 YXJnZXRfbmFtZSAqLworKyAgbHRfYXJndl96ZXJvID0gbHRfZXh0ZW5kX3N0ciAodG1wX3BhdGhz cGVjLCB0YXJnZXRfbmFtZSwgMSk7CisrICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKKysgIHRtcF9w YXRoc3BlYyA9IE5VTEw7CisrRU9GCisrCisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAgICAg IG1pbmd3KikKKysJICAgIGNhdCA8PCJFT0YiCisrICB7CisrICAgIGNoYXIqIHA7CisrICAgIHdo aWxlICgocCA9IHN0cmNociAobmV3YXJnelswXSwgJ1xcJykpICE9IE5VTEwpCisrICAgICAgewor KwkqcCA9ICcvJzsKKysgICAgICB9CisrICAgIHdoaWxlICgocCA9IHN0cmNociAobHRfYXJndl96 ZXJvLCAnXFwnKSkgIT0gTlVMTCkKKysgICAgICB7CisrCSpwID0gJy8nOworKyAgICAgIH0KKysg IH0KKytFT0YKKysJICAgIDs7CisrCSAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorKyAg WEZSRUUgKHRhcmdldF9uYW1lKTsKKysgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfcGF0aCk7Cisr ICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVyX25hbWUpOworKworKyAgbHRfc2V0ZW52ICgiQklOX1NI IiwgInhwZzQiKTsgLyogZm9yIFRydTY0ICovCisrICBsdF9zZXRlbnYgKCJEVUFMQ0FTRSIsICIx Iik7ICAvKiBmb3IgTVNLIHNoICovCisrICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZB Uk5BTUUsIExJQl9QQVRIX1ZBTFVFKTsKKysgIGx0X3VwZGF0ZV9leGVfcGF0aCAoRVhFX1BBVEhf VkFSTkFNRSwgRVhFX1BBVEhfVkFMVUUpOworKworKyAgbmV3YXJnYz0wOworKyAgZm9yIChpID0g MTsgaSA8IGFyZ2M7IGkrKykKKysgICAgeworKyAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBl bnZfc2V0X29wdCwgZW52X3NldF9vcHRfbGVuKSA9PSAwKQorKyAgICAgICAgeworKyAgICAgICAg ICBpZiAoYXJndltpXVtlbnZfc2V0X29wdF9sZW5dID09ICc9JykKKysgICAgICAgICAgICB7Cisr ICAgICAgICAgICAgICBjb25zdCBjaGFyICpwID0gYXJndltpXSArIGVudl9zZXRfb3B0X2xlbiAr IDE7CisrICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChwKTsKKysgICAgICAg ICAgICB9CisrICAgICAgICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X3NldF9vcHRfbGVuXSA9PSAn XDAnICYmIGkgKyAxIDwgYXJnYykKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICBsdF9v cHRfcHJvY2Vzc19lbnZfc2V0IChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICovCisrICAgICAg ICAgICAgfQorKyAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgbHRfZmF0YWwgKCIlcyBtaXNz aW5nIHJlcXVpcmVkIGFyZ3VtZW50IiwgZW52X3NldF9vcHQpOworKyAgICAgICAgICBjb250aW51 ZTsKKysgICAgICAgIH0KKysgICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X3ByZXBlbmRf b3B0LCBlbnZfcHJlcGVuZF9vcHRfbGVuKSA9PSAwKQorKyAgICAgICAgeworKyAgICAgICAgICBp ZiAoYXJndltpXVtlbnZfcHJlcGVuZF9vcHRfbGVuXSA9PSAnPScpCisrICAgICAgICAgICAgewor KyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9IGFyZ3ZbaV0gKyBlbnZfcHJlcGVuZF9vcHRf bGVuICsgMTsKKysgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChwKTsK KysgICAgICAgICAgICB9CisrICAgICAgICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X3ByZXBlbmRf b3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCisrICAgICAgICAgICAgeworKyAgICAg ICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGFyZ3ZbKytpXSk7IC8qIGRvbid0 IGNvcHkgKi8KKysgICAgICAgICAgICB9CisrICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICBs dF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQiLCBlbnZfcHJlcGVuZF9vcHQp OworKyAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0KKysgICAgICBpZiAoc3RybmNtcCAo YXJndltpXSwgZW52X2FwcGVuZF9vcHQsIGVudl9hcHBlbmRfb3B0X2xlbikgPT0gMCkKKysgICAg ICAgIHsKKysgICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X2FwcGVuZF9vcHRfbGVuXSA9PSAnPScp CisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9IGFyZ3ZbaV0g KyBlbnZfYXBwZW5kX29wdF9sZW4gKyAxOworKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3Nf ZW52X2FwcGVuZCAocCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICBlbHNlIGlmIChhcmd2 W2ldW2Vudl9hcHBlbmRfb3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCisrICAgICAg ICAgICAgeworKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoYXJndlsr K2ldKTsgLyogZG9uJ3QgY29weSAqLworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgZWxzZQor KyAgICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIsIGVu dl9hcHBlbmRfb3B0KTsKKysgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9CisrICAgICAg aWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBvcHRfcHJlZml4 X2xlbikgPT0gMCkKKysgICAgICAgIHsKKysgICAgICAgICAgLyogaG93ZXZlciwgaWYgdGhlcmUg aXMgYW4gb3B0aW9uIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAorKyAgICAgICAgICAg ICBuYW1lc3BhY2UsIGJ1dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBvbmVzIHdlIGtub3cgYWJvdXQg YW5kCisrICAgICAgICAgICAgIGhhdmUgYWxyZWFkeSBkZWFsdCB3aXRoLCBhYm92ZSAoaW5sdWRp bmcgZHVtcC1zY3JpcHQpLCB0aGVuCisrICAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvci4gT3Ro ZXJ3aXNlLCB0YXJnZXRzIG1pZ2h0IGJlZ2luIHRvIGJlbGlldmUKKysgICAgICAgICAgICAgdGhl eSBhcmUgYWxsb3dlZCB0byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVG SVgKKysgICAgICAgICAgICAgbmFtZXNwYWNlLiBUaGUgZmlyc3QgdGltZSBhbnkgdXNlciBjb21w bGFpbnMgYWJvdXQgdGhpcywgd2UnbGwKKysgICAgICAgICAgICAgbmVlZCB0byBtYWtlIExUV1JB UFBFUl9PUFRJT05fUFJFRklYIGEgY29uZmlndXJlLXRpbWUgb3B0aW9uCisrICAgICAgICAgICAg IG9yIGEgY29uZmlndXJlLmFjLXNldHRhYmxlIHZhbHVlLgorKyAgICAgICAgICAgKi8KKysgICAg ICAgICAgbHRfZmF0YWwgKCJVbnJlY29nbml6ZWQgb3B0aW9uIGluICVzIG5hbWVzcGFjZTogJyVz JyIsCisrICAgICAgICAgICAgICAgICAgICBsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCwgYXJndltp XSk7CisrICAgICAgICB9CisrICAgICAgLyogb3RoZXJ3aXNlIC4uLiAqLworKyAgICAgIG5ld2Fy Z3pbKytuZXdhcmdjXSA9IHhzdHJkdXAgKGFyZ3ZbaV0pOworKyAgICB9CisrICBuZXdhcmd6Wysr bmV3YXJnY10gPSBOVUxMOworKworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICAgICAoKCIobWFp bikgbHRfYXJndl96ZXJvIDogJXNcbiIsIChsdF9hcmd2X3plcm8gPyBsdF9hcmd2X3plcm8gOiAi PE5VTEw+IikpKTsKKysgIGZvciAoaSA9IDA7IGkgPCBuZXdhcmdjOyBpKyspCisrICAgIHsKKysg ICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIG5ld2FyZ3pbJWRdICAgOiAlc1xu IiwgaSwgKG5ld2FyZ3pbaV0gPyBuZXdhcmd6W2ldIDogIjxOVUxMPiIpKSk7CisrICAgIH0KKysK KytFT0YKKysKKysJICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgICAgbWluZ3cqKQorKwkJY2F0 IDw8IkVPRiIKKysgIC8qIGV4ZWN2IGRvZXNuJ3QgYWN0dWFsbHkgd29yayBvbiBtaW5ndyBhcyBl eHBlY3RlZCBvbiB1bml4ICovCisrICBydmFsID0gX3NwYXdudiAoX1BfV0FJVCwgbHRfYXJndl96 ZXJvLCAoY29uc3QgY2hhciAqIGNvbnN0ICopIG5ld2FyZ3opOworKyAgaWYgKHJ2YWwgPT0gLTEp CisrICAgIHsKKysgICAgICAvKiBmYWlsZWQgdG8gc3RhcnQgcHJvY2VzcyAqLworKyAgICAgIExU V1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgZmFpbGVkIHRvIGxhdW5jaCB0YXJnZXQgXCIl c1wiOiBlcnJubyA9ICVkXG4iLCBsdF9hcmd2X3plcm8sIGVycm5vKSk7CisrICAgICAgcmV0dXJu IDEyNzsKKysgICAgfQorKyAgcmV0dXJuIHJ2YWw7CisrRU9GCisrCQk7OworKwkgICAgICAqKQor KwkJY2F0IDw8IkVPRiIKKysgIGV4ZWN2IChsdF9hcmd2X3plcm8sIG5ld2FyZ3opOworKyAgcmV0 dXJuIHJ2YWw7IC8qID0xMjcsIGJ1dCBhdm9pZHMgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgKi8K KytFT0YKKysJCTs7CisrCSAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorK30KKysKKyt2 b2lkICoKKyt4bWFsbG9jIChzaXplX3QgbnVtKQorK3sKKysgIHZvaWQgKnAgPSAodm9pZCAqKSBt YWxsb2MgKG51bSk7CisrICBpZiAoIXApCisrICAgIGx0X2ZhdGFsICgiTWVtb3J5IGV4aGF1c3Rl ZCIpOworKworKyAgcmV0dXJuIHA7CisrfQorKworK2NoYXIgKgorK3hzdHJkdXAgKGNvbnN0IGNo YXIgKnN0cmluZykKKyt7CisrICByZXR1cm4gc3RyaW5nID8gc3RyY3B5ICgoY2hhciAqKSB4bWFs bG9jIChzdHJsZW4gKHN0cmluZykgKyAxKSwKKysJCQkgIHN0cmluZykgOiBOVUxMOworK30KKysK Kytjb25zdCBjaGFyICoKKytiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCisreworKyAgY29u c3QgY2hhciAqYmFzZTsKKysKKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNU RU0pCisrICAvKiBTa2lwIG92ZXIgdGhlIGRpc2sgbmFtZSBpbiBNU0RPUyBwYXRobmFtZXMuICov CisrICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIG5hbWVbMF0pICYmIG5hbWVbMV0gPT0g JzonKQorKyAgICBuYW1lICs9IDI7CisrI2VuZGlmCisrCisrICBmb3IgKGJhc2UgPSBuYW1lOyAq bmFtZTsgbmFtZSsrKQorKyAgICBpZiAoSVNfRElSX1NFUEFSQVRPUiAoKm5hbWUpKQorKyAgICAg IGJhc2UgPSBuYW1lICsgMTsKKysgIHJldHVybiBiYXNlOworK30KKysKKytpbnQKKytjaGVja19l eGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKQorK3sKKysgIHN0cnVjdCBzdGF0IHN0OworKwor KyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihjaGVja19leGVjdXRhYmxlKSAgOiAlc1xuIiwK KysJCQkgIHBhdGggPyAoKnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOworKyAg aWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCisrICAgIHJldHVybiAwOworKworKyAgaWYgKChzdGF0 IChwYXRoLCAmc3QpID49IDApCisrICAgICAgJiYgKHN0LnN0X21vZGUgJiAoU19JWFVTUiB8IFNf SVhHUlAgfCBTX0lYT1RIKSkpCisrICAgIHJldHVybiAxOworKyAgZWxzZQorKyAgICByZXR1cm4g MDsKKyt9CisrCisraW50CisrbWFrZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKQorK3sK KysgIGludCBydmFsID0gMDsKKysgIHN0cnVjdCBzdGF0IHN0OworKworKyAgTFRXUkFQUEVSX0RF QlVHUFJJTlRGICgoIihtYWtlX2V4ZWN1dGFibGUpICAgOiAlc1xuIiwKKysJCQkgIHBhdGggPyAo KnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOworKyAgaWYgKCghcGF0aCkgfHwg KCEqcGF0aCkpCisrICAgIHJldHVybiAwOworKworKyAgaWYgKHN0YXQgKHBhdGgsICZzdCkgPj0g MCkKKysgICAgeworKyAgICAgIHJ2YWwgPSBjaG1vZCAocGF0aCwgc3Quc3RfbW9kZSB8IFNfSVhP VEggfCBTX0lYR1JQIHwgU19JWFVTUik7CisrICAgIH0KKysgIHJldHVybiBydmFsOworK30KKysK KysvKiBTZWFyY2hlcyBmb3IgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgd3JhcHBlci4gIFJldHVybnMK KysgICBuZXdseSBhbGxvY2F0ZWQgZnVsbCBwYXRoIG5hbWUgaWYgZm91bmQsIE5VTEwgb3RoZXJ3 aXNlCisrICAgRG9lcyBub3QgY2hhc2Ugc3ltbGlua3MsIGV2ZW4gb24gcGxhdGZvcm1zIHRoYXQg c3VwcG9ydCB0aGVtLgorKyovCisrY2hhciAqCisrZmluZF9leGVjdXRhYmxlIChjb25zdCBjaGFy ICp3cmFwcGVyKQorK3sKKysgIGludCBoYXNfc2xhc2ggPSAwOworKyAgY29uc3QgY2hhciAqcDsK KysgIGNvbnN0IGNoYXIgKnBfbmV4dDsKKysgIC8qIHN0YXRpYyBidWZmZXIgZm9yIGdldGN3ZCAq LworKyAgY2hhciB0bXBbTFRfUEFUSE1BWCArIDFdOworKyAgaW50IHRtcF9sZW47CisrICBjaGFy ICpjb25jYXRfbmFtZTsKKysKKysgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIoZmluZF9leGVj dXRhYmxlKSAgIDogJXNcbiIsCisrCQkJICB3cmFwcGVyID8gKCp3cmFwcGVyID8gd3JhcHBlciA6 ICJFTVBUWSEiKSA6ICJOVUxMISIpKTsKKysKKysgIGlmICgod3JhcHBlciA9PSBOVUxMKSB8fCAo KndyYXBwZXIgPT0gJ1wwJykpCisrICAgIHJldHVybiBOVUxMOworKworKyAgLyogQWJzb2x1dGUg cGF0aD8gKi8KKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisrICBp ZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIHdyYXBwZXJbMF0pICYmIHdyYXBwZXJbMV0gPT0g JzonKQorKyAgICB7CisrICAgICAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKKysg ICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKwlyZXR1cm4gY29uY2F0 X25hbWU7CisrICAgICAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKKysgICAgfQorKyAgZWxzZQorKyAg ICB7CisrI2VuZGlmCisrICAgICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKHdyYXBwZXJbMF0pKQor Kwl7CisrCSAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKKysJICBpZiAoY2hlY2tf ZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKwkgICAgcmV0dXJuIGNvbmNhdF9uYW1lOworKwkg IFhGUkVFIChjb25jYXRfbmFtZSk7CisrCX0KKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURf RklMRV9TWVNURU0pCisrICAgIH0KKysjZW5kaWYKKysKKysgIGZvciAocCA9IHdyYXBwZXI7ICpw OyBwKyspCisrICAgIGlmICgqcCA9PSAnLycpCisrICAgICAgeworKwloYXNfc2xhc2ggPSAxOwor KwlicmVhazsKKysgICAgICB9CisrICBpZiAoIWhhc19zbGFzaCkKKysgICAgeworKyAgICAgIC8q IG5vIHNsYXNoZXM7IHNlYXJjaCBQQVRIICovCisrICAgICAgY29uc3QgY2hhciAqcGF0aCA9IGdl dGVudiAoIlBBVEgiKTsKKysgICAgICBpZiAocGF0aCAhPSBOVUxMKQorKwl7CisrCSAgZm9yIChw ID0gcGF0aDsgKnA7IHAgPSBwX25leHQpCisrCSAgICB7CisrCSAgICAgIGNvbnN0IGNoYXIgKnE7 CisrCSAgICAgIHNpemVfdCBwX2xlbjsKKysJICAgICAgZm9yIChxID0gcDsgKnE7IHErKykKKysJ CWlmIChJU19QQVRIX1NFUEFSQVRPUiAoKnEpKQorKwkJICBicmVhazsKKysJICAgICAgcF9sZW4g PSBxIC0gcDsKKysJICAgICAgcF9uZXh0ID0gKCpxID09ICdcMCcgPyBxIDogcSArIDEpOworKwkg ICAgICBpZiAocF9sZW4gPT0gMCkKKysJCXsKKysJCSAgLyogZW1wdHkgcGF0aDogY3VycmVudCBk aXJlY3RvcnkgKi8KKysJCSAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxMKQor KwkJICAgIGx0X2ZhdGFsICgiZ2V0Y3dkIGZhaWxlZCIpOworKwkJICB0bXBfbGVuID0gc3RybGVu ICh0bXApOworKwkJICBjb25jYXRfbmFtZSA9CisrCQkgICAgWE1BTExPQyAoY2hhciwgdG1wX2xl biArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CisrCQkgIG1lbWNweSAoY29uY2F0X25hbWUs IHRtcCwgdG1wX2xlbik7CisrCQkgIGNvbmNhdF9uYW1lW3RtcF9sZW5dID0gJy8nOworKwkJICBz dHJjcHkgKGNvbmNhdF9uYW1lICsgdG1wX2xlbiArIDEsIHdyYXBwZXIpOworKwkJfQorKwkgICAg ICBlbHNlCisrCQl7CisrCQkgIGNvbmNhdF9uYW1lID0KKysJCSAgICBYTUFMTE9DIChjaGFyLCBw X2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CisrCQkgIG1lbWNweSAoY29uY2F0X25h bWUsIHAsIHBfbGVuKTsKKysJCSAgY29uY2F0X25hbWVbcF9sZW5dID0gJy8nOworKwkJICBzdHJj cHkgKGNvbmNhdF9uYW1lICsgcF9sZW4gKyAxLCB3cmFwcGVyKTsKKysJCX0KKysJICAgICAgaWYg KGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKKysJCXJldHVybiBjb25jYXRfbmFtZTsK KysJICAgICAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKKysJICAgIH0KKysJfQorKyAgICAgIC8qIG5v dCBmb3VuZCBpbiBQQVRIOyBhc3N1bWUgY3VyZGlyICovCisrICAgIH0KKysgIC8qIFJlbGF0aXZl IHBhdGggfCBub3QgZm91bmQgaW4gcGF0aDogcHJlcGVuZCBjd2QgKi8KKysgIGlmIChnZXRjd2Qg KHRtcCwgTFRfUEFUSE1BWCkgPT0gTlVMTCkKKysgICAgbHRfZmF0YWwgKCJnZXRjd2QgZmFpbGVk Iik7CisrICB0bXBfbGVuID0gc3RybGVuICh0bXApOworKyAgY29uY2F0X25hbWUgPSBYTUFMTE9D IChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKKysgIG1lbWNweSAo Y29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7CisrICBjb25jYXRfbmFtZVt0bXBfbGVuXSA9ICcv JzsKKysgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBlcik7CisrCisr ICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKyAgICByZXR1cm4gY29uY2F0 X25hbWU7CisrICBYRlJFRSAoY29uY2F0X25hbWUpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKwor K2NoYXIgKgorK2NoYXNlX3N5bWxpbmtzIChjb25zdCBjaGFyICpwYXRoc3BlYykKKyt7CisrI2lm bmRlZiBTX0lTTE5LCisrICByZXR1cm4geHN0cmR1cCAocGF0aHNwZWMpOworKyNlbHNlCisrICBj aGFyIGJ1ZltMVF9QQVRITUFYXTsKKysgIHN0cnVjdCBzdGF0IHM7CisrICBjaGFyICp0bXBfcGF0 aHNwZWMgPSB4c3RyZHVwIChwYXRoc3BlYyk7CisrICBjaGFyICpwOworKyAgaW50IGhhc19zeW1s aW5rcyA9IDA7CisrICB3aGlsZSAoc3RybGVuICh0bXBfcGF0aHNwZWMpICYmICFoYXNfc3ltbGlu a3MpCisrICAgIHsKKysgICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiY2hlY2tpbmcgcGF0 aCBjb21wb25lbnQgZm9yIHN5bWxpbmtzOiAlc1xuIiwKKysJCQkgICAgICB0bXBfcGF0aHNwZWMp KTsKKysgICAgICBpZiAobHN0YXQgKHRtcF9wYXRoc3BlYywgJnMpID09IDApCisrCXsKKysJICBp ZiAoU19JU0xOSyAocy5zdF9tb2RlKSAhPSAwKQorKwkgICAgeworKwkgICAgICBoYXNfc3ltbGlu a3MgPSAxOworKwkgICAgICBicmVhazsKKysJICAgIH0KKysKKysJICAvKiBzZWFyY2ggYmFja3dh cmRzIGZvciBsYXN0IERJUl9TRVBBUkFUT1IgKi8KKysJICBwID0gdG1wX3BhdGhzcGVjICsgc3Ry bGVuICh0bXBfcGF0aHNwZWMpIC0gMTsKKysJICB3aGlsZSAoKHAgPiB0bXBfcGF0aHNwZWMpICYm ICghSVNfRElSX1NFUEFSQVRPUiAoKnApKSkKKysJICAgIHAtLTsKKysJICBpZiAoKHAgPT0gdG1w X3BhdGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkpCisrCSAgICB7CisrCSAgICAg IC8qIG5vIG1vcmUgRElSX1NFUEFSQVRPUlMgbGVmdCAqLworKwkgICAgICBicmVhazsKKysJICAg IH0KKysJICAqcCA9ICdcMCc7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBjaGFyICplcnJz dHIgPSBzdHJlcnJvciAoZXJybm8pOworKwkgIGx0X2ZhdGFsICgiRXJyb3IgYWNjZXNzaW5nIGZp bGUgJXMgKCVzKSIsIHRtcF9wYXRoc3BlYywgZXJyc3RyKTsKKysJfQorKyAgICB9CisrICBYRlJF RSAodG1wX3BhdGhzcGVjKTsKKysKKysgIGlmICghaGFzX3N5bWxpbmtzKQorKyAgICB7CisrICAg ICAgcmV0dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKKysgICAgfQorKworKyAgdG1wX3BhdGhzcGVj ID0gcmVhbHBhdGggKHBhdGhzcGVjLCBidWYpOworKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSAwKQor KyAgICB7CisrICAgICAgbHRfZmF0YWwgKCJDb3VsZCBub3QgZm9sbG93IHN5bWxpbmtzIGZvciAl cyIsIHBhdGhzcGVjKTsKKysgICAgfQorKyAgcmV0dXJuIHhzdHJkdXAgKHRtcF9wYXRoc3BlYyk7 CisrI2VuZGlmCisrfQorKworK2NoYXIgKgorK3N0cmVuZHphcCAoY2hhciAqc3RyLCBjb25zdCBj aGFyICpwYXQpCisreworKyAgc2l6ZV90IGxlbiwgcGF0bGVuOworKworKyAgYXNzZXJ0IChzdHIg IT0gTlVMTCk7CisrICBhc3NlcnQgKHBhdCAhPSBOVUxMKTsKKysKKysgIGxlbiA9IHN0cmxlbiAo c3RyKTsKKysgIHBhdGxlbiA9IHN0cmxlbiAocGF0KTsKKysKKysgIGlmIChwYXRsZW4gPD0gbGVu KQorKyAgICB7CisrICAgICAgc3RyICs9IGxlbiAtIHBhdGxlbjsKKysgICAgICBpZiAoc3RyY21w IChzdHIsIHBhdCkgPT0gMCkKKysJKnN0ciA9ICdcMCc7CisrICAgIH0KKysgIHJldHVybiBzdHI7 CisrfQorKworK3N0YXRpYyB2b2lkCisrbHRfZXJyb3JfY29yZSAoaW50IGV4aXRfc3RhdHVzLCBj b25zdCBjaGFyICptb2RlLAorKwkgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZSwgdmFfbGlzdCBh cCkKKyt7CisrICBmcHJpbnRmIChzdGRlcnIsICIlczogJXM6ICIsIHByb2dyYW1fbmFtZSwgbW9k ZSk7CisrICB2ZnByaW50ZiAoc3RkZXJyLCBtZXNzYWdlLCBhcCk7CisrICBmcHJpbnRmIChzdGRl cnIsICIuXG4iKTsKKysKKysgIGlmIChleGl0X3N0YXR1cyA+PSAwKQorKyAgICBleGl0IChleGl0 X3N0YXR1cyk7CisrfQorKworK3ZvaWQKKytsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2FnZSwg Li4uKQorK3sKKysgIHZhX2xpc3QgYXA7CisrICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOworKyAg bHRfZXJyb3JfY29yZSAoRVhJVF9GQUlMVVJFLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7CisrICB2 YV9lbmQgKGFwKTsKKyt9CisrCisrdm9pZAorK2x0X3NldGVudiAoY29uc3QgY2hhciAqbmFtZSwg Y29uc3QgY2hhciAqdmFsdWUpCisreworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihsdF9z ZXRlbnYpIHNldHRpbmcgJyVzJyB0byAnJXMnXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg KHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKKysgIHsKKysjaWZkZWYgSEFWRV9TRVRFTlYK KysgICAgLyogYWx3YXlzIG1ha2UgYSBjb3B5LCBmb3IgY29uc2lzdGVuY3kgd2l0aCAhSEFWRV9T RVRFTlYgKi8KKysgICAgY2hhciAqc3RyID0geHN0cmR1cCAodmFsdWUpOworKyAgICBzZXRlbnYg KG5hbWUsIHN0ciwgMSk7CisrI2Vsc2UKKysgICAgaW50IGxlbiA9IHN0cmxlbiAobmFtZSkgKyAx ICsgc3RybGVuICh2YWx1ZSkgKyAxOworKyAgICBjaGFyICpzdHIgPSBYTUFMTE9DIChjaGFyLCBs ZW4pOworKyAgICBzcHJpbnRmIChzdHIsICIlcz0lcyIsIG5hbWUsIHZhbHVlKTsKKysgICAgaWYg KHB1dGVudiAoc3RyKSAhPSBFWElUX1NVQ0NFU1MpCisrICAgICAgeworKyAgICAgICAgWEZSRUUg KHN0cik7CisrICAgICAgfQorKyNlbmRpZgorKyAgfQorK30KKysKKytjaGFyICoKKytsdF9leHRl bmRfc3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQsIGludCB0b19l bmQpCisreworKyAgY2hhciAqbmV3X3ZhbHVlOworKyAgaWYgKG9yaWdfdmFsdWUgJiYgKm9yaWdf dmFsdWUpCisrICAgIHsKKysgICAgICBpbnQgb3JpZ192YWx1ZV9sZW4gPSBzdHJsZW4gKG9yaWdf dmFsdWUpOworKyAgICAgIGludCBhZGRfbGVuID0gc3RybGVuIChhZGQpOworKyAgICAgIG5ld192 YWx1ZSA9IFhNQUxMT0MgKGNoYXIsIGFkZF9sZW4gKyBvcmlnX3ZhbHVlX2xlbiArIDEpOworKyAg ICAgIGlmICh0b19lbmQpCisrICAgICAgICB7CisrICAgICAgICAgIHN0cmNweSAobmV3X3ZhbHVl LCBvcmlnX3ZhbHVlKTsKKysgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBvcmlnX3ZhbHVl X2xlbiwgYWRkKTsKKysgICAgICAgIH0KKysgICAgICBlbHNlCisrICAgICAgICB7CisrICAgICAg ICAgIHN0cmNweSAobmV3X3ZhbHVlLCBhZGQpOworKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1 ZSArIGFkZF9sZW4sIG9yaWdfdmFsdWUpOworKyAgICAgICAgfQorKyAgICB9CisrICBlbHNlCisr ICAgIHsKKysgICAgICBuZXdfdmFsdWUgPSB4c3RyZHVwIChhZGQpOworKyAgICB9CisrICByZXR1 cm4gbmV3X3ZhbHVlOworK30KKysKKytpbnQKKytsdF9zcGxpdF9uYW1lX3ZhbHVlIChjb25zdCBj aGFyICphcmcsIGNoYXIqKiBuYW1lLCBjaGFyKiogdmFsdWUpCisreworKyAgY29uc3QgY2hhciAq cDsKKysgIGludCBsZW47CisrICBpZiAoIWFyZyB8fCAhKmFyZykKKysgICAgcmV0dXJuIDE7Cisr CisrICBwID0gc3RyY2hyIChhcmcsIChpbnQpJz0nKTsKKysKKysgIGlmICghcCkKKysgICAgcmV0 dXJuIDE7CisrCisrICAqdmFsdWUgPSB4c3RyZHVwICgrK3ApOworKworKyAgbGVuID0gc3RybGVu IChhcmcpIC0gc3RybGVuICgqdmFsdWUpOworKyAgKm5hbWUgPSBYTUFMTE9DIChjaGFyLCBsZW4p OworKyAgc3RybmNweSAoKm5hbWUsIGFyZywgbGVuLTEpOworKyAgKCpuYW1lKVtsZW4gLSAxXSA9 ICdcMCc7CisrCisrICByZXR1cm4gMDsKKyt9CisrCisrdm9pZAorK2x0X29wdF9wcm9jZXNzX2Vu dl9zZXQgKGNvbnN0IGNoYXIgKmFyZykKKyt7CisrICBjaGFyICpuYW1lID0gTlVMTDsKKysgIGNo YXIgKnZhbHVlID0gTlVMTDsKKysKKysgIGlmIChsdF9zcGxpdF9uYW1lX3ZhbHVlIChhcmcsICZu YW1lLCAmdmFsdWUpICE9IDApCisrICAgIHsKKysgICAgICBYRlJFRSAobmFtZSk7CisrICAgICAg WEZSRUUgKHZhbHVlKTsKKysgICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICcl cyciLCBlbnZfc2V0X29wdCwgYXJnKTsKKysgICAgfQorKworKyAgbHRfc2V0ZW52IChuYW1lLCB2 YWx1ZSk7CisrICBYRlJFRSAobmFtZSk7CisrICBYRlJFRSAodmFsdWUpOworK30KKysKKyt2b2lk CisrbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGNvbnN0IGNoYXIgKmFyZykKKyt7CisrICBj aGFyICpuYW1lID0gTlVMTDsKKysgIGNoYXIgKnZhbHVlID0gTlVMTDsKKysgIGNoYXIgKm5ld192 YWx1ZSA9IE5VTEw7CisrCisrICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFtZSwg JnZhbHVlKSAhPSAwKQorKyAgICB7CisrICAgICAgWEZSRUUgKG5hbWUpOworKyAgICAgIFhGUkVF ICh2YWx1ZSk7CisrICAgICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMnIiwg ZW52X3ByZXBlbmRfb3B0LCBhcmcpOworKyAgICB9CisrCisrICBuZXdfdmFsdWUgPSBsdF9leHRl bmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMCk7CisrICBsdF9zZXRlbnYgKG5hbWUsIG5l d192YWx1ZSk7CisrICBYRlJFRSAobmV3X3ZhbHVlKTsKKysgIFhGUkVFIChuYW1lKTsKKysgIFhG UkVFICh2YWx1ZSk7CisrfQorKworK3ZvaWQKKytsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChj b25zdCBjaGFyICphcmcpCisreworKyAgY2hhciAqbmFtZSA9IE5VTEw7CisrICBjaGFyICp2YWx1 ZSA9IE5VTEw7CisrICBjaGFyICpuZXdfdmFsdWUgPSBOVUxMOworKworKyAgaWYgKGx0X3NwbGl0 X25hbWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKKysgICAgeworKyAgICAgIFhG UkVFIChuYW1lKTsKKysgICAgICBYRlJFRSAodmFsdWUpOworKyAgICAgIGx0X2ZhdGFsICgiYmFk IGFyZ3VtZW50IGZvciAlczogJyVzJyIsIGVudl9hcHBlbmRfb3B0LCBhcmcpOworKyAgICB9Cisr CisrICBuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMSk7 CisrICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICBYRlJFRSAobmV3X3ZhbHVlKTsK KysgIFhGUkVFIChuYW1lKTsKKysgIFhGUkVFICh2YWx1ZSk7CisrfQorKworK3ZvaWQKKytsdF91 cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQorK3sK KysgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfdXBkYXRlX2V4ZV9wYXRoKSBtb2RpZnlp bmcgJyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAobmFtZSA/IG5hbWUgOiAiPE5VTEw+IiksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAo dmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOworKworKyAgaWYgKG5hbWUgJiYgKm5hbWUgJiYg dmFsdWUgJiYgKnZhbHVlKQorKyAgICB7CisrICAgICAgY2hhciAqbmV3X3ZhbHVlID0gbHRfZXh0 ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOworKyAgICAgIC8qIHNvbWUgc3lzdGVt cyBjYW4ndCBjb3BlIHdpdGggYSAnOictdGVybWluYXRlZCBwYXRoICMnICovCisrICAgICAgaW50 IGxlbiA9IHN0cmxlbiAobmV3X3ZhbHVlKTsKKysgICAgICB3aGlsZSAoKChsZW4gPSBzdHJsZW4g KG5ld192YWx1ZSkpID4gMCkgJiYgSVNfUEFUSF9TRVBBUkFUT1IgKG5ld192YWx1ZVtsZW4tMV0p KQorKyAgICAgICAgeworKyAgICAgICAgICBuZXdfdmFsdWVbbGVuLTFdID0gJ1wwJzsKKysgICAg ICAgIH0KKysgICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICAgICAgWEZSRUUg KG5ld192YWx1ZSk7CisrICAgIH0KKyt9CisrCisrdm9pZAorK2x0X3VwZGF0ZV9saWJfcGF0aCAo Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCisreworKyAgTFRXUkFQUEVSX0RF QlVHUFJJTlRGICgoIihsdF91cGRhdGVfbGliX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBl bmRpbmcgJyVzJ1xuIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6 ICI8TlVMTD4iKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA/IHZhbHVlIDog IjxOVUxMPiIpKSk7CisrCisrICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUp CisrICAgIHsKKysgICAgICBjaGFyICpuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYg KG5hbWUpLCB2YWx1ZSwgMCk7CisrICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOwor KyAgICAgIFhGUkVFIChuZXdfdmFsdWUpOworKyAgICB9CisrfQorKworKworK0VPRgorK30KKysj IGVuZDogZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYworKworKyMgZnVuY19tb2RlX2xpbmsgYXJn Li4uCisrZnVuY19tb2RlX2xpbmsgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgY2FzZSAk aG9zdCBpbgorKyAgICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSot b3MyKiB8ICotY2VnY2MqKQorKyAgICAgICMgSXQgaXMgaW1wb3NzaWJsZSB0byBsaW5rIGEgZGxs IHdpdGhvdXQgdGhpcyBzZXR0aW5nLCBhbmQKKysgICAgICAjIHdlIHNob3VsZG4ndCBmb3JjZSB0 aGUgbWFrZWZpbGUgbWFpbnRhaW5lciB0byBmaWd1cmUgb3V0CisrICAgICAgIyB3aGljaCBzeXN0 ZW0gd2UgYXJlIGNvbXBpbGluZyBmb3IgaW4gb3JkZXIgdG8gcGFzcyBhbiBleHRyYQorKyAgICAg ICMgZmxhZyBmb3IgZXZlcnkgbGlidG9vbCBpbnZvY2F0aW9uLgorKyAgICAgICMgYWxsb3dfdW5k ZWZpbmVkPW5vCisrCisrICAgICAgIyBGSVhNRTogVW5mb3J0dW5hdGVseSwgdGhlcmUgYXJlIHBy b2JsZW1zIHdpdGggdGhlIGFib3ZlIHdoZW4gdHJ5aW5nCisrICAgICAgIyB0byBtYWtlIGEgZGxs IHdoaWNoIGhhcyB1bmRlZmluZWQgc3ltYm9scywgaW4gd2hpY2ggY2FzZSBub3QKKysgICAgICAj IGV2ZW4gYSBzdGF0aWMgbGlicmFyeSBpcyBidWlsdC4gIEZvciBub3csIHdlIG5lZWQgdG8gc3Bl Y2lmeQorKyAgICAgICMgLW5vLXVuZGVmaW5lZCBvbiB0aGUgbGlidG9vbCBsaW5rIGxpbmUgd2hl biB3ZSBjYW4gYmUgY2VydGFpbgorKyAgICAgICMgdGhhdCBhbGwgc3ltYm9scyBhcmUgc2F0aXNm aWVkLCBvdGhlcndpc2Ugd2UgZ2V0IGEgc3RhdGljIGxpYnJhcnkuCisrICAgICAgYWxsb3dfdW5k ZWZpbmVkPXllcworKyAgICAgIDs7CisrICAgICopCisrICAgICAgYWxsb3dfdW5kZWZpbmVkPXll cworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgbGlidG9vbF9hcmdzPSRub25vcHQKKysgICAg YmFzZV9jb21waWxlPSIkbm9ub3B0ICRAIgorKyAgICBjb21waWxlX2NvbW1hbmQ9JG5vbm9wdAor KyAgICBmaW5hbGl6ZV9jb21tYW5kPSRub25vcHQKKysKKysgICAgY29tcGlsZV9ycGF0aD0KKysg ICAgZmluYWxpemVfcnBhdGg9CisrICAgIGNvbXBpbGVfc2hsaWJwYXRoPQorKyAgICBmaW5hbGl6 ZV9zaGxpYnBhdGg9CisrICAgIGNvbnZlbmllbmNlPQorKyAgICBvbGRfY29udmVuaWVuY2U9Cisr ICAgIGRlcGxpYnM9CisrICAgIG9sZF9kZXBsaWJzPQorKyAgICBjb21waWxlcl9mbGFncz0KKysg ICAgbGlua2VyX2ZsYWdzPQorKyAgICBkbGxzZWFyY2hwYXRoPQorKyAgICBsaWJfc2VhcmNoX3Bh dGg9YHB3ZGAKKysgICAgaW5zdF9wcmVmaXhfZGlyPQorKyAgICBuZXdfaW5oZXJpdGVkX2xpbmtl cl9mbGFncz0KKysKKysgICAgYXZvaWRfdmVyc2lvbj1ubworKyAgICBkbGZpbGVzPQorKyAgICBk bHByZWZpbGVzPQorKyAgICBkbHNlbGY9bm8KKysgICAgZXhwb3J0X2R5bmFtaWM9bm8KKysgICAg ZXhwb3J0X3N5bWJvbHM9CisrICAgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PQorKyAgICBnZW5lcmF0 ZWQ9CisrICAgIGxpYm9ianM9CisrICAgIGx0bGlicz0KKysgICAgbW9kdWxlPW5vCisrICAgIG5v X2luc3RhbGw9bm8KKysgICAgb2Jqcz0KKysgICAgbm9uX3BpY19vYmplY3RzPQorKyAgICBwcmVj aW91c19maWxlc19yZWdleD0KKysgICAgcHJlZmVyX3N0YXRpY19saWJzPW5vCisrICAgIHByZWxv YWQ9bm8KKysgICAgcHJldj0KKysgICAgcHJldmFyZz0KKysgICAgcmVsZWFzZT0KKysgICAgcnBh dGg9CisrICAgIHhycGF0aD0KKysgICAgcGVybV9ycGF0aD0KKysgICAgdGVtcF9ycGF0aD0KKysg ICAgdGhyZWFkX3NhZmU9bm8KKysgICAgdmluZm89CisrICAgIHZpbmZvX251bWJlcj1ubworKyAg ICB3ZWFrX2xpYnM9CisrICAgIHNpbmdsZV9tb2R1bGU9IiR7d2x9LXNpbmdsZV9tb2R1bGUiCisr ICAgIGZ1bmNfaW5mZXJfdGFnICRiYXNlX2NvbXBpbGUKKysKKysgICAgIyBXZSBuZWVkIHRvIGtu b3cgLXN0YXRpYywgdG8gZ2V0IHRoZSByaWdodCBvdXRwdXQgZmlsZW5hbWVzLgorKyAgICBmb3Ig YXJnCisrICAgIGRvCisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLXNoYXJlZCkKKysJdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIFwKKysJICBmdW5jX2ZhdGFsX2NvbmZp Z3VyYXRpb24gImNhbiBub3QgYnVpbGQgYSBzaGFyZWQgbGlicmFyeSIKKysJYnVpbGRfb2xkX2xp YnM9bm8KKysJYnJlYWsKKysJOzsKKysgICAgICAtYWxsLXN0YXRpYyB8IC1zdGF0aWMgfCAtc3Rh dGljLWxpYnRvb2wtbGlicykKKysJY2FzZSAkYXJnIGluCisrCS1hbGwtc3RhdGljKQorKwkgIGlm IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgLXogIiRsaW5rX3N0YXRp Y19mbGFnIjsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJjb21wbGV0ZSBzdGF0aWMgbGlua2lu ZyBpcyBpbXBvc3NpYmxlIGluIHRoaXMgY29uZmlndXJhdGlvbiIKKysJICBmaQorKwkgIGlmIHRl c3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkgICAgZGxvcGVuX3NlbGY9JGRsb3Bl bl9zZWxmX3N0YXRpYworKwkgIGZpCisrCSAgcHJlZmVyX3N0YXRpY19saWJzPXllcworKwkgIDs7 CisrCS1zdGF0aWMpCisrCSAgaWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIkbGlu a19zdGF0aWNfZmxhZyI7IHRoZW4KKysJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0 aWMKKysJICBmaQorKwkgIHByZWZlcl9zdGF0aWNfbGlicz1idWlsdAorKwkgIDs7CisrCS1zdGF0 aWMtbGlidG9vbC1saWJzKQorKwkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIgJiYgdGVzdCAtbiAi JGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisrCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZf c3RhdGljCisrCSAgZmkKKysJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCisrCSAgOzsKKysJZXNh YworKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJYnVpbGRfb2xkX2xpYnM9eWVzCisrCWJyZWFr CisrCTs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrCisrICAgICMgU2VlIGlmIG91ciBzaGFy ZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4KKysgICAgdGVzdCAtbiAiJG9s ZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIGJ1aWxkX29sZF9saWJzPXllcworKworKyAgICAj IEdvIHRocm91Z2ggdGhlIGFyZ3VtZW50cywgdHJhbnNmb3JtaW5nIHRoZW0gb24gdGhlIHdheS4K KysgICAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbworKyAgICAgIGFyZz0iJDEiCisrICAgICAg c2hpZnQKKysgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorKyAgICAgIHFhcmc9JGZ1 bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0CisrICAgICAgZnVuY19hcHBlbmQgbGli dG9vbF9hcmdzICIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKworKyAgICAgICMgSWYg dGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgorKyAgICAg IGlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgorKwljYXNlICRwcmV2IGluCisrCW91dHB1dCkKKysJ ICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiBAT1VUUFVUQCIKKysJICBmdW5jX2FwcGVu ZCBmaW5hbGl6ZV9jb21tYW5kICIgQE9VVFBVVEAiCisrCSAgOzsKKysJZXNhYworKworKwljYXNl ICRwcmV2IGluCisrCWRsZmlsZXN8ZGxwcmVmaWxlcykKKysJICBpZiB0ZXN0ICIkcHJlbG9hZCIg PSBubzsgdGhlbgorKwkgICAgIyBBZGQgdGhlIHN5bWJvbCBvYmplY3QgaW50byB0aGUgbGlua2lu ZyBjb21tYW5kcy4KKysJICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiIEBTWU1GSUxF QCIKKysJICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiBAU1lNRklMRUAiCisrCSAg ICBwcmVsb2FkPXllcworKwkgIGZpCisrCSAgY2FzZSAkYXJnIGluCisrCSAgKi5sYSB8ICoubG8p IDs7ICAjIFdlIGhhbmRsZSB0aGVzZSBjYXNlcyBiZWxvdy4KKysJICBmb3JjZSkKKysJICAgIGlm IHRlc3QgIiRkbHNlbGYiID0gbm87IHRoZW4KKysJICAgICAgZGxzZWxmPW5lZWRsZXNzCisrCSAg ICAgIGV4cG9ydF9keW5hbWljPXllcworKwkgICAgZmkKKysJICAgIHByZXY9CisrCSAgICBjb250 aW51ZQorKwkgICAgOzsKKysJICBzZWxmKQorKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVm aWxlczsgdGhlbgorKwkgICAgICBkbHNlbGY9eWVzCisrCSAgICBlbGlmIHRlc3QgIiRwcmV2IiA9 IGRsZmlsZXMgJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiAhPSB5ZXM7IHRoZW4KKysJICAgICAgZGxz ZWxmPXllcworKwkgICAgZWxzZQorKwkgICAgICBkbHNlbGY9bmVlZGxlc3MKKysJICAgICAgZXhw b3J0X2R5bmFtaWM9eWVzCisrCSAgICBmaQorKwkgICAgcHJldj0KKysJICAgIGNvbnRpbnVlCisr CSAgICA7OworKwkgICopCisrCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCisr CSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisrCSAgICBlbHNlCisrCSAgICAgIGRscHJl ZmlsZXM9IiRkbHByZWZpbGVzICRhcmciCisrCSAgICBmaQorKwkgICAgcHJldj0KKysJICAgIGNv bnRpbnVlCisrCSAgICA7OworKwkgIGVzYWMKKysJICA7OworKwlleHBzeW1zKQorKwkgIGV4cG9y dF9zeW1ib2xzPSIkYXJnIgorKwkgIHRlc3QgLWYgIiRhcmciIFwKKysJICAgIHx8IGZ1bmNfZmF0 YWxfZXJyb3IgInN5bWJvbCBmaWxlIFxgJGFyZycgZG9lcyBub3QgZXhpc3QiCisrCSAgcHJldj0K KysJICBjb250aW51ZQorKwkgIDs7CisrCWV4cHN5bXNfcmVnZXgpCisrCSAgZXhwb3J0X3N5bWJv bHNfcmVnZXg9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWZyYW1l d29yaykKKysJICBjYXNlICRob3N0IGluCisrCSAgICAqLSotZGFyd2luKikKKysJICAgICAgY2Fz ZSAiJGRlcGxpYnMgIiBpbgorKwkJKiIgJHFhcmcubHRmcmFtZXdvcmsgIiopIDs7CisrCQkqKSBk ZXBsaWJzPSIkZGVwbGlicyAkcWFyZy5sdGZyYW1ld29yayIgIyB0aGlzIGlzIGZpeGVkIGxhdGVy CisrCQkgICA7OworKwkgICAgICBlc2FjCisrCSAgICAgIDs7CisrCSAgZXNhYworKwkgIHByZXY9 CisrCSAgY29udGludWUKKysJICA7OworKwlpbnN0X3ByZWZpeCkKKysJICBpbnN0X3ByZWZpeF9k aXI9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCW9iamVjdGxpc3Qp CisrCSAgaWYgdGVzdCAtZiAiJGFyZyI7IHRoZW4KKysJICAgIHNhdmVfYXJnPSRhcmcKKysJICAg IG1vcmVhcmdzPQorKwkgICAgZm9yIGZpbCBpbiBgY2F0ICIkc2F2ZV9hcmciYAorKwkgICAgZG8K KysjCSAgICAgIG1vcmVhcmdzPSIkbW9yZWFyZ3MgJGZpbCIKKysJICAgICAgYXJnPSRmaWwKKysJ ICAgICAgIyBBIGxpYnRvb2wtY29udHJvbGxlZCBvYmplY3QuCisrCisrCSAgICAgICMgQ2hlY2sg dG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIG9iamVjdC4KKysJICAgICAgaWYg ZnVuY19sYWxpYl91bnNhZmVfcCAiJGFyZyI7IHRoZW4KKysJCXBpY19vYmplY3Q9CisrCQlub25f cGljX29iamVjdD0KKysKKysJCSMgUmVhZCB0aGUgLmxvIGZpbGUKKysJCWZ1bmNfc291cmNlICIk YXJnIgorKworKwkJaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8CisrCQkgICB0ZXN0IC16ICIk bm9uX3BpY19vYmplY3QiIHx8CisrCQkgICB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lICYmCisr CQkgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgorKwkJICBmdW5jX2ZhdGFs X2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIG9iamVjdCBmb3IgXGAkYXJnJyIKKysJCWZpCisr CisrCQkjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkJZnVuY19k aXJuYW1lICIkYXJnIiAiLyIgIiIKKysJCXhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKwor KwkJaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJCSAgIyBQcmVwZW5kIHRo ZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKysJCSAgcGljX29iamVjdD0i JHhkaXIkcGljX29iamVjdCIKKysKKysJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhl bgorKwkJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgIiRk bG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KKysJCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRw aWNfb2JqZWN0IgorKwkJICAgICAgcHJldj0KKysJCSAgICAgIGNvbnRpbnVlCisrCQkgICAgZWxz ZQorKwkJICAgICAgIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdl IG5lZWQgdG8gcHJlbG9hZC4KKysJCSAgICAgIHByZXY9ZGxwcmVmaWxlcworKwkJICAgIGZpCisr CQkgIGZpCisrCisrCQkgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3Nz YW1hCisrCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJCSAgICAjIFBy ZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCisrCQkgICAgZGxwcmVmaWxlcz0iJGRscHJlZmls ZXMgJHBpY19vYmplY3QiCisrCQkgICAgcHJldj0KKysJCSAgZmkKKysKKysJCSAgIyBBIFBJQyBv YmplY3QuCisrCQkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKKysJCSAgYXJn PSIkcGljX29iamVjdCIKKysJCWZpCisrCisrCQkjIE5vbi1QSUMgb2JqZWN0LgorKwkJaWYgdGVz dCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCisrCQkgICMgUHJlcGVuZCB0aGUgc3Vi ZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCisrCQkgIG5vbl9waWNfb2JqZWN0PSIk eGRpciRub25fcGljX29iamVjdCIKKysKKysJCSAgIyBBIHN0YW5kYXJkIG5vbi1QSUMgb2JqZWN0 CisrCQkgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKKysJ CSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUg OyB0aGVuCisrCQkgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCisrCQkgIGZpCisrCQllbHNlCisr CQkgICMgSWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KKysJCSAgIyAk eGRpciB3YXMgcHJlcGVuZGVkIHRvICRwaWNfb2JqZWN0IGFib3ZlLgorKwkJICBub25fcGljX29i amVjdD0iJHBpY19vYmplY3QiCisrCQkgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRu b25fcGljX29iamVjdCIKKysJCWZpCisrCSAgICAgIGVsc2UKKysJCSMgT25seSBhbiBlcnJvciBp ZiBub3QgZG9pbmcgYSBkcnktcnVuLgorKwkJaWYgJG9wdF9kcnlfcnVuOyB0aGVuCisrCQkgICMg RXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisrCQkgIGZ1bmNfZGlybmFt ZSAiJGFyZyIgIi8iICIiCisrCQkgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwkJ ICBmdW5jX2xvMm8gIiRhcmciCisrCQkgIHBpY19vYmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5jX2xv Mm9fcmVzdWx0CisrCQkgIG5vbl9waWNfb2JqZWN0PSR4ZGlyJGZ1bmNfbG8yb19yZXN1bHQKKysJ CSAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRwaWNfb2JqZWN0IgorKwkJICBmdW5jX2FwcGVuZCBu b25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisrCSAgICAgICAgZWxzZQorKwkJICBm dW5jX2ZhdGFsX2Vycm9yICJcYCRhcmcnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgb2JqZWN0Igor KwkJZmkKKysJICAgICAgZmkKKysJICAgIGRvbmUKKysJICBlbHNlCisrCSAgICBmdW5jX2ZhdGFs X2Vycm9yICJsaW5rIGlucHV0IGZpbGUgXGAkYXJnJyBkb2VzIG5vdCBleGlzdCIKKysJICBmaQor KwkgIGFyZz0kc2F2ZV9hcmcKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJcHJl Y2lvdXNfcmVnZXgpCisrCSAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9IiRhcmciCisrCSAgcHJldj0K KysJICBjb250aW51ZQorKwkgIDs7CisrCXJlbGVhc2UpCisrCSAgcmVsZWFzZT0iLSRhcmciCisr CSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCXJwYXRoIHwgeHJwYXRoKQorKwkgICMg V2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorKwkgIGNhc2UgJGFyZyBpbgorKwkgIFtcXC9dKiB8 IFtBLVphLXpdOltcXC9dKikgOzsKKysJICAqKQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAib25s eSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiCisrCSAgICA7OworKwkgIGVzYWMKKysJ ICBpZiB0ZXN0ICIkcHJldiIgPSBycGF0aDsgdGhlbgorKwkgICAgY2FzZSAiJHJwYXRoICIgaW4K KysJICAgICoiICRhcmcgIiopIDs7CisrCSAgICAqKSBycGF0aD0iJHJwYXRoICRhcmciIDs7Cisr CSAgICBlc2FjCisrCSAgZWxzZQorKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCisrCSAgICAqIiAk YXJnICIqKSA7OworKwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRhcmciIDs7CisrCSAgICBlc2Fj CisrCSAgZmkKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJc2hyZXh0KQorKwkg IHNocmV4dF9jbWRzPSIkYXJnIgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwl3 ZWFrKQorKwkgIHdlYWtfbGlicz0iJHdlYWtfbGlicyAkYXJnIgorKwkgIHByZXY9CisrCSAgY29u dGludWUKKysJICA7OworKwl4Y2NsaW5rZXIpCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2Zs YWdzICRxYXJnIgorKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCisr CSAgcHJldj0KKysJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKKysJICBm dW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHFhcmciCisrCSAgY29udGludWUKKysJICA7 OworKwl4Y29tcGlsZXIpCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkcWFy ZyIKKysJICBwcmV2PQorKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRxYXJnIgor KwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkcWFyZyIKKysJICBjb250aW51ZQor KwkgIDs7CisrCXhsaW5rZXIpCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRxYXJn IgorKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJHFhcmciCisrCSAgcHJl dj0KKysJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkd2wkcWFyZyIKKysJICBmdW5j X2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHdsJHFhcmciCisrCSAgY29udGludWUKKysJICA7 OworKwkqKQorKwkgIGV2YWwgIiRwcmV2PVwiXCRhcmdcIiIKKysJICBwcmV2PQorKwkgIGNvbnRp bnVlCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpICMgdGVzdCAtbiAiJHByZXYiCisrCisrICAg ICAgcHJldmFyZz0iJGFyZyIKKysKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAtYWxsLXN0 YXRpYykKKysJaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisrCSAgIyBTZWUg Y29tbWVudCBmb3IgLXN0YXRpYyBmbGFnIGJlbG93LCBmb3IgbW9yZSBkZXRhaWxzLgorKwkgIGZ1 bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRsaW5rX3N0YXRpY19mbGFnIgorKwkgIGZ1bmNf YXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkbGlua19zdGF0aWNfZmxhZyIKKysJZmkKKysJY29u dGludWUKKysJOzsKKysKKysgICAgICAtYWxsb3ctdW5kZWZpbmVkKQorKwkjIEZJWE1FOiByZW1v dmUgdGhpcyBmbGFnIHNvbWV0aW1lIGluIHRoZSBmdXR1cmUuCisrCWZ1bmNfZmF0YWxfZXJyb3Ig IlxgLWFsbG93LXVuZGVmaW5lZCcgbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIHRoZSBk ZWZhdWx0IgorKwk7OworKworKyAgICAgIC1hdm9pZC12ZXJzaW9uKQorKwlhdm9pZF92ZXJzaW9u PXllcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1kbG9wZW4pCisrCXByZXY9ZGxmaWxl cworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1kbHByZW9wZW4pCisrCXByZXY9ZGxwcmVm aWxlcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1leHBvcnQtZHluYW1pYykKKysJZXhw b3J0X2R5bmFtaWM9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWV4cG9ydC1zeW1i b2xzIHwgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4KQorKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJv bHMiIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKysJICBmdW5jX2Zh dGFsX2Vycm9yICJtb3JlIHRoYW4gb25lIC1leHBvcnRlZC1zeW1ib2xzIGFyZ3VtZW50IGlzIG5v dCBhbGxvd2VkIgorKwlmaQorKwlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1leHBvcnQtc3ltYm9scyI7 IHRoZW4KKysJICBwcmV2PWV4cHN5bXMKKysJZWxzZQorKwkgIHByZXY9ZXhwc3ltc19yZWdleAor KwlmaQorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1mcmFtZXdvcmspCisrCXByZXY9ZnJh bWV3b3JrCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWluc3QtcHJlZml4LWRpcikKKysJ cHJldj1pbnN0X3ByZWZpeAorKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgVGhlIG5hdGl2 ZSBJUklYIGxpbmtlciB1bmRlcnN0YW5kcyAtTEFORzoqLCAtTElTVDoqIGFuZCAtTE5POioKKysg ICAgICAjIHNvLCBpZiB3ZSBzZWUgdGhlc2UgZmxhZ3MgYmUgY2FyZWZ1bCBub3QgdG8gdHJlYXQg dGhlbSBsaWtlIC1MCisrICAgICAgLUxbQS1aXVtBLVpdKjoqKQorKwljYXNlICR3aXRoX2djYy8k aG9zdCBpbgorKwluby8qLSotaXJpeCogfCAvKi0qLWlyaXgqKQorKwkgIGZ1bmNfYXBwZW5kIGNv bXBpbGVfY29tbWFuZCAiICRhcmciCisrCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAi ICRhcmciCisrCSAgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1MKikK KysJZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGFyZyIKKysJZGlyPSRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQKKysJaWYgdGVzdCAteiAiJGRpciI7IHRoZW4KKysJICBpZiB0ZXN0ICIkIyIgLWd0IDA7 IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInJlcXVpcmUgbm8gc3BhY2UgYmV0d2VlbiBc YC1MJyBhbmQgXGAkMSciCisrCSAgZWxzZQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAibmVlZCBw YXRoIGZvciBcYC1MJyBvcHRpb24iCisrCSAgZmkKKysJZmkKKysJIyBXZSBuZWVkIGFuIGFic29s dXRlIHBhdGguCisrCWNhc2UgJGRpciBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7 CisrCSopCisrCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAorKwkgIHRlc3QgLXogIiRhYnNk aXIiICYmIFwKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1 dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKKysJICBkaXI9IiRhYnNkaXIiCisrCSAgOzsK KysJZXNhYworKwljYXNlICIkZGVwbGlicyAiIGluCisrCSoiIC1MJGRpciAiKikgOzsKKysJKikK KysJICBkZXBsaWJzPSIkZGVwbGlicyAtTCRkaXIiCisrCSAgbGliX3NlYXJjaF9wYXRoPSIkbGli X3NlYXJjaF9wYXRoICRkaXIiCisrCSAgOzsKKysJZXNhYworKwljYXNlICRob3N0IGluCisrCSot Ki1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdjYyop CisrCSAgdGVzdGJpbmRpcj1gJEVDSE8gIlgkZGlyIiB8ICRYc2VkIC1lICdzKi9saWIkKi9iaW4q J2AKKysJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KKysJICAqIjokZGlyOiIqKSA7OworKwkg IDo6KSBkbGxzZWFyY2hwYXRoPSRkaXI7OworKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFy Y2hwYXRoOiRkaXIiOzsKKysJICBlc2FjCisrCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisr CSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7CisrCSAgOjopIGRsbHNlYXJjaHBhdGg9JHRlc3RiaW5k aXI7OworKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0YmluZGlyIjs7 CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAt bCopCisrCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiB8fCB0ZXN0ICJYJGFyZyIgPSAiWC1sbSI7 IHRoZW4KKysJICBjYXNlICRob3N0IGluCisrCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwg Ki0qLXB3MzIqIHwgKi0qLWJlb3MqIHwgKi1jZWdjYyopCisrCSAgICAjIFRoZXNlIHN5c3RlbXMg ZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgb3IgbWF0aCBsaWJyYXJ5IChhcyBzdWNoKQorKwkgICAg Y29udGludWUKKysJICAgIDs7CisrCSAgKi0qLW9zMiopCisrCSAgICAjIFRoZXNlIHN5c3RlbXMg ZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgbGlicmFyeSAoYXMgc3VjaCkKKysJICAgIHRlc3QgIlgk YXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotb3BlbmJzZCogfCAq LSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKKysJICAgICMgRG8gbm90IGluY2x1ZGUgbGli YyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgorKwkgICAgdGVzdCAiWCRhcmciID0gIlgt bGMiICYmIGNvbnRpbnVlCisrCSAgICA7OworKwkgICotKi1yaGFwc29keSogfCAqLSotZGFyd2lu MS5bMDEyXSkKKysJICAgICMgUmhhcHNvZHkgQyBhbmQgbWF0aCBsaWJyYXJpZXMgYXJlIGluIHRo ZSBTeXN0ZW0gZnJhbWV3b3JrCisrCSAgICBkZXBsaWJzPSIkZGVwbGlicyBTeXN0ZW0ubHRmcmFt ZXdvcmsiCisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotc2NvMy4ydjUqIHwgKi0q LXNjbzV2NiopCisrCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKKysJICAgIHRl c3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotc3lzdjQu MnV3MiogfCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCisrCSAg ICAjIENvbXBpbGVyIGluc2VydHMgbGliYyBpbiB0aGUgY29ycmVjdCBwbGFjZSBmb3IgdGhyZWFk cyB0byB3b3JrCisrCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKKysJICAg IDs7CisrCSAgZXNhYworKwllbGlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjX3IiOyB0aGVuCisrCSBj YXNlICRob3N0IGluCisrCSAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29u Zmx5KikKKysJICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjX3IgZGlyZWN0bHksIHVzZSAtcHRocmVh ZCBmbGFnLgorKwkgICBjb250aW51ZQorKwkgICA7OworKwkgZXNhYworKwlmaQorKwlkZXBsaWJz PSIkZGVwbGlicyAkYXJnIgorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1tb2R1bGUpCisr CW1vZHVsZT15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAjIFRydTY0IFVOSVggdXNl cyAtbW9kZWwgW2FyZ10gdG8gZGV0ZXJtaW5lIHRoZSBsYXlvdXQgb2YgQysrCisrICAgICAgIyBj bGFzc2VzLCBuYW1lIG1hbmdsaW5nLCBhbmQgZXhjZXB0aW9uIGhhbmRsaW5nLgorKyAgICAgICMg RGFyd2luIHVzZXMgdGhlIC1hcmNoIGZsYWcgdG8gZGV0ZXJtaW5lIG91dHB1dCBhcmNoaXRlY3R1 cmUuCisrICAgICAgLW1vZGVsfC1hcmNofC1pc3lzcm9vdCkKKysJY29tcGlsZXJfZmxhZ3M9IiRj b21waWxlcl9mbGFncyAkYXJnIgorKwlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJn IgorKwlmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKKysJcHJldj14Y29tcGls ZXIKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1L dGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlfC10aHJlYWRzKQorKwljb21w aWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrCWZ1bmNfYXBwZW5kIGNvbXBpbGVf Y29tbWFuZCAiICRhcmciCisrCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgor KwljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgorKwkgICAgKiIgJGFyZyAi KikgOzsKKysJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0 ZWRfbGlua2VyX2ZsYWdzICRhcmciIDs7CisrCWVzYWMKKysJY29udGludWUKKysJOzsKKysKKysg ICAgICAtbXVsdGlfbW9kdWxlKQorKwlzaW5nbGVfbW9kdWxlPSIke3dsfS1tdWx0aV9tb2R1bGUi CisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW5vLWZhc3QtaW5zdGFsbCkKKysJZmFzdF9p bnN0YWxsPW5vCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW5vLWluc3RhbGwpCisrCWNh c2UgJGhvc3QgaW4KKysJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0q LW9zMiogfCAqLSotZGFyd2luKiB8ICotY2VnY2MqKQorKwkgICMgVGhlIFBBVEggaGFja2VyeSBp biB3cmFwcGVyIHNjcmlwdHMgaXMgcmVxdWlyZWQgb24gV2luZG93cworKwkgICMgYW5kIERhcndp biBpbiBvcmRlciBmb3IgdGhlIGxvYWRlciB0byBmaW5kIGFueSBkbGxzIGl0IG5lZWRzLgorKwkg IGZ1bmNfd2FybmluZyAiXGAtbm8taW5zdGFsbCcgaXMgaWdub3JlZCBmb3IgJGhvc3QiCisrCSAg ZnVuY193YXJuaW5nICJhc3N1bWluZyBcYC1uby1mYXN0LWluc3RhbGwnIGluc3RlYWQiCisrCSAg ZmFzdF9pbnN0YWxsPW5vCisrCSAgOzsKKysJKikgbm9faW5zdGFsbD15ZXMgOzsKKysJZXNhYwor Kwljb250aW51ZQorKwk7OworKworKyAgICAgIC1uby11bmRlZmluZWQpCisrCWFsbG93X3VuZGVm aW5lZD1ubworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1vYmplY3RsaXN0KQorKwlwcmV2 PW9iamVjdGxpc3QKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtbykgcHJldj1vdXRwdXQg OzsKKysKKysgICAgICAtcHJlY2lvdXMtZmlsZXMtcmVnZXgpCisrCXByZXY9cHJlY2lvdXNfcmVn ZXgKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtcmVsZWFzZSkKKysJcHJldj1yZWxlYXNl CisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXJwYXRoKQorKwlwcmV2PXJwYXRoCisrCWNv bnRpbnVlCisrCTs7CisrCisrICAgICAgLVIpCisrCXByZXY9eHJwYXRoCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLVIqKQorKwlmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkYXJnIgorKwlk aXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4K KysJY2FzZSAkZGlyIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKKysJKikKKysJ ICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIK KysJICA7OworKwllc2FjCisrCWNhc2UgIiR4cnBhdGggIiBpbgorKwkqIiAkZGlyICIqKSA7Owor KwkqKSB4cnBhdGg9IiR4cnBhdGggJGRpciIgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7Owor KworKyAgICAgIC1zaGFyZWQpCisrCSMgVGhlIGVmZmVjdHMgb2YgLXNoYXJlZCBhcmUgZGVmaW5l ZCBpbiBhIHByZXZpb3VzIGxvb3AuCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXNocmV4 dCkKKysJcHJldj1zaHJleHQKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtc3RhdGljIHwg LXN0YXRpYy1saWJ0b29sLWxpYnMpCisrCSMgVGhlIGVmZmVjdHMgb2YgLXN0YXRpYyBhcmUgZGVm aW5lZCBpbiBhIHByZXZpb3VzIGxvb3AuCisrCSMgV2UgdXNlZCB0byBkbyB0aGUgc2FtZSBhcyAt YWxsLXN0YXRpYyBvbiBwbGF0Zm9ybXMgdGhhdAorKwkjIGRpZG4ndCBoYXZlIGEgUElDIGZsYWcs IGJ1dCB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBlZmZlY3RzCisrCSMgd291bGQgYmUgZXF1aXZh bGVudCB3YXMgd3JvbmcuICBJdCB3b3VsZCBicmVhayBvbiBhdCBsZWFzdAorKwkjIERpZ2l0YWwg VW5peCBhbmQgQUlYLgorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC10aHJlYWQtc2FmZSkK KysJdGhyZWFkX3NhZmU9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXZlcnNpb24t aW5mbykKKysJcHJldj12aW5mbworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC12ZXJzaW9u LW51bWJlcikKKysJcHJldj12aW5mbworKwl2aW5mb19udW1iZXI9eWVzCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLXdlYWspCisrICAgICAgICBwcmV2PXdlYWsKKysJY29udGludWUKKysJ OzsKKysKKysgICAgICAtV2MsKikKKysJZnVuY19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgor KwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJYXJnPQorKwlzYXZlX2lmcz0iJElGUyI7 IElGUz0nLCcKKysJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisr ICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgorKwkgIGFyZz0iJGFyZyAkd2wk ZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxl cl9mbGFncyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCWRvbmUKKysJSUZTPSIkc2F2 ZV9pZnMiCisrCWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKKysJYXJnPSRmdW5jX3N0cmlw bmFtZV9yZXN1bHQKKysJOzsKKysKKysgICAgICAtV2wsKikKKysJZnVuY19zdHJpcG5hbWUgJy1X bCwnICcnICIkYXJnIgorKwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJYXJnPQorKwlz YXZlX2lmcz0iJElGUyI7IElGUz0nLCcKKysJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCisrCSAgSUZT PSIkc2F2ZV9pZnMiCisrICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgorKwkg IGFyZz0iJGFyZyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgY29tcGlsZXJf ZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisr CSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCIKKysJZG9uZQorKwlJRlM9IiRzYXZlX2lmcyIKKysJZnVuY19zdHJpcG5hbWUgJyAnICcnICIk YXJnIgorKwlhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwk7OworKworKyAgICAgIC1YY29t cGlsZXIpCisrCXByZXY9eGNvbXBpbGVyCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLVhs aW5rZXIpCisrCXByZXY9eGxpbmtlcgorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1YQ0Ns aW5rZXIpCisrCXByZXY9eGNjbGlua2VyCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgIyAt bXNnXyogZm9yIG9zZiBjYworKyAgICAgIC1tc2dfKikKKysJZnVuY19xdW90ZV9mb3JfZXZhbCAi JGFyZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCTs7CisrCisrICAg ICAgIyAtNjQsIC1taXBzWzAtOV0gZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRoZSBTR0kgY29tcGls ZXIKKysgICAgICAjIC1yWzAtOV1bMC05XSogc3BlY2lmaWVzIHRoZSBwcm9jZXNzb3Igb24gdGhl IFNHSSBjb21waWxlcgorKyAgICAgICMgLXhhcmNoPSosIC14dGFyZ2V0PSogZW5hYmxlIDY0LWJp dCBtb2RlIG9uIHRoZSBTdW4gY29tcGlsZXIKKysgICAgICAjICtEQSosICtERCogZW5hYmxlIDY0 LWJpdCBtb2RlIG9uIHRoZSBIUCBjb21waWxlcgorKyAgICAgICMgLXEqIHBhc3MgdGhyb3VnaCBj b21waWxlciBhcmdzIGZvciB0aGUgSUJNIGNvbXBpbGVyCisrICAgICAgIyAtbSosIC10WzQ1XSos IC10eHNjYWxlKiBwYXNzIHRocm91Z2ggYXJjaGl0ZWN0dXJlLXNwZWNpZmljCisrICAgICAgIyBj b21waWxlciBhcmdzIGZvciBHQ0MKKysgICAgICAjIC1GL3BhdGggZ2l2ZXMgcGF0aCB0byB1bmlu c3RhbGxlZCBmcmFtZXdvcmtzLCBnY2Mgb24gZGFyd2luCisrICAgICAgIyAtcCwgLXBnLCAtLWNv dmVyYWdlLCAtZnByb2ZpbGUtKiBwYXNzIHRocm91Z2ggcHJvZmlsaW5nIGZsYWcgZm9yIEdDQwor KyAgICAgICMgQGZpbGUgR0NDIHJlc3BvbnNlIGZpbGVzCisrICAgICAgLTY0fC1taXBzWzAtOV18 LXJbMC05XVswLTldKnwteGFyY2g9KnwteHRhcmdldD0qfCtEQSp8K0REKnwtcSp8LW0qfCBcCisr ICAgICAgLXRbNDVdKnwtdHhzY2FsZSp8LXB8LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxlLSp8LUYq fEAqKQorKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJYXJnPSIkZnVuY19x dW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrICAgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1h bmQgIiAkYXJnIgorKyAgICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmci CisrICAgICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrICAgICAg ICBjb250aW51ZQorKyAgICAgICAgOzsKKysKKysgICAgICAjIFNvbWUgb3RoZXIgY29tcGlsZXIg ZmxhZy4KKysgICAgICAtKiB8ICsqKQorKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFy ZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCTs7CisrCisrICAgICAg Ki4kb2JqZXh0KQorKwkjIEEgc3RhbmRhcmQgb2JqZWN0LgorKwlvYmpzPSIkb2JqcyAkYXJnIgor Kwk7OworKworKyAgICAgICoubG8pCisrCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0Lgor KworKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3Qu CisrCWlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0aGVuCisrCSAgcGljX29iamVjdD0K KysJICBub25fcGljX29iamVjdD0KKysKKysJICAjIFJlYWQgdGhlIC5sbyBmaWxlCisrCSAgZnVu Y19zb3VyY2UgIiRhcmciCisrCisrCSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8CisrCSAg ICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAorKwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0 IiA9IG5vbmUgJiYKKysJICAgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgor KwkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBvYmplY3QgZm9yIFxg JGFyZyciCisrCSAgZmkKKysKKysJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFy Z3VtZW50LgorKwkgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisrCSAgeGRpcj0iJGZ1bmNf ZGlybmFtZV9yZXN1bHQiCisrCisrCSAgaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRo ZW4KKysJICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQg aW4uCisrCSAgICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgorKworKwkgICAgaWYgdGVz dCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9v bF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCisrCQlk bGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKKysJCXByZXY9CisrCQljb250aW51ZQorKwkg ICAgICBlbHNlCisrCQkjIElmIGxpYnRvb2wgb2JqZWN0cyBhcmUgdW5zdXBwb3J0ZWQsIHRoZW4g d2UgbmVlZCB0byBwcmVsb2FkLgorKwkJcHJldj1kbHByZWZpbGVzCisrCSAgICAgIGZpCisrCSAg ICBmaQorKworKwkgICAgIyBDSEVDSyBNRTogIEkgdGhpbmsgSSBidXN0ZWQgdGhpcy4gIC1Pc3Nh bWEKKysJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJICAgICAgIyBQ cmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgorKwkgICAgICBkbHByZWZpbGVzPSIkZGxwcmVm aWxlcyAkcGljX29iamVjdCIKKysJICAgICAgcHJldj0KKysJICAgIGZpCisrCisrCSAgICAjIEEg UElDIG9iamVjdC4KKysJICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKKysJ ICAgIGFyZz0iJHBpY19vYmplY3QiCisrCSAgZmkKKysKKysJICAjIE5vbi1QSUMgb2JqZWN0Lgor KwkgIGlmIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgorKwkgICAgIyBQcmVw ZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKysJICAgIG5vbl9w aWNfb2JqZWN0PSIkeGRpciRub25fcGljX29iamVjdCIKKysKKysJICAgICMgQSBzdGFuZGFyZCBu b24tUElDIG9iamVjdAorKwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9w aWNfb2JqZWN0IgorKwkgICAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRwaWNf b2JqZWN0IiA9IG5vbmUgOyB0aGVuCisrCSAgICAgIGFyZz0iJG5vbl9waWNfb2JqZWN0IgorKwkg ICAgZmkKKysJICBlbHNlCisrCSAgICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0cywgdXNlIGl0 IGluc3RlYWQuCisrCSAgICAjICR4ZGlyIHdhcyBwcmVwZW5kZWQgdG8gJHBpY19vYmplY3QgYWJv dmUuCisrCSAgICBub25fcGljX29iamVjdD0iJHBpY19vYmplY3QiCisrCSAgICBmdW5jX2FwcGVu ZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisrCSAgZmkKKysJZWxzZQorKwkg ICMgT25seSBhbiBlcnJvciBpZiBub3QgZG9pbmcgYSBkcnktcnVuLgorKwkgIGlmICRvcHRfZHJ5 X3J1bjsgdGhlbgorKwkgICAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVu dC4KKysJICAgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisrCSAgICB4ZGlyPSIkZnVuY19k aXJuYW1lX3Jlc3VsdCIKKysKKysJICAgIGZ1bmNfbG8ybyAiJGFyZyIKKysJICAgIHBpY19vYmpl Y3Q9JHhkaXIkb2JqZGlyLyRmdW5jX2xvMm9fcmVzdWx0CisrCSAgICBub25fcGljX29iamVjdD0k eGRpciRmdW5jX2xvMm9fcmVzdWx0CisrCSAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19v YmplY3QiCisrCSAgICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmpl Y3QiCisrCSAgZWxzZQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBub3QgYSB2 YWxpZCBsaWJ0b29sIG9iamVjdCIKKysJICBmaQorKwlmaQorKwk7OworKworKyAgICAgICouJGxp YmV4dCkKKysJIyBBbiBhcmNoaXZlLgorKwlkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgorKwlvbGRf ZGVwbGlicz0iJG9sZF9kZXBsaWJzICRhcmciCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAg Ki5sYSkKKysJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBsaWJyYXJ5LgorKworKwlpZiB0ZXN0ICIk cHJldiIgPSBkbGZpbGVzOyB0aGVuCisrCSAgIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3 aXRoIC1kbG9wZW4uCisrCSAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKKysJICBwcmV2PQorKwll bGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJICAjIFRoZSBsaWJyYXJ5IHdh cyBzcGVjaWZpZWQgd2l0aCAtZGxwcmVvcGVuLgorKwkgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVz ICRhcmciCisrCSAgcHJldj0KKysJZWxzZQorKwkgIGRlcGxpYnM9IiRkZXBsaWJzICRhcmciCisr CWZpCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgIyBTb21lIG90aGVyIGNvbXBpbGVyIGFy Z3VtZW50LgorKyAgICAgICopCisrCSMgVW5rbm93biBhcmd1bWVudHMgaW4gYm90aCBmaW5hbGl6 ZV9jb21tYW5kIGFuZCBjb21waWxlX2NvbW1hbmQgbmVlZAorKwkjIHRvIGJlIGFlc3RoZXRpY2Fs bHkgcXVvdGVkIGJlY2F1c2UgdGhleSBhcmUgZXZhbGVkIGxhdGVyLgorKwlmdW5jX3F1b3RlX2Zv cl9ldmFsICIkYXJnIgorKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJOzsK KysgICAgICBlc2FjICMgYXJnCisrCisrICAgICAgIyBOb3cgYWN0dWFsbHkgc3Vic3RpdHV0ZSB0 aGUgYXJndW1lbnQgaW50byB0aGUgY29tbWFuZHMuCisrICAgICAgaWYgdGVzdCAtbiAiJGFyZyI7 IHRoZW4KKysJZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKKysJZnVuY19hcHBl bmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrICAgICAgZmkKKysgICAgZG9uZSAjIGFyZ3Vt ZW50IHBhcnNpbmcgbG9vcAorKworKyAgICB0ZXN0IC1uICIkcHJldiIgJiYgXAorKyAgICAgIGZ1 bmNfZmF0YWxfaGVscCAidGhlIFxgJHByZXZhcmcnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVu dCIKKysKKysgICAgaWYgdGVzdCAiJGV4cG9ydF9keW5hbWljIiA9IHllcyAmJiB0ZXN0IC1uICIk ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjIjsgdGhlbgorKyAgICAgIGV2YWwgYXJnPVwiJGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlY1wiCisrICAgICAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5k ICIgJGFyZyIKKysgICAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKKysg ICAgZmkKKysKKysgICAgb2xkbGlicz0KKysgICAgIyBjYWxjdWxhdGUgdGhlIG5hbWUgb2YgdGhl IGZpbGUsIHdpdGhvdXQgaXRzIGRpcmVjdG9yeQorKyAgICBmdW5jX2Jhc2VuYW1lICIkb3V0cHV0 IgorKyAgICBvdXRwdXRuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgIGxpYm9ianNf c2F2ZT0iJGxpYm9ianMiCisrCisrICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhl bgorKyAgICAgICMgZ2V0IHRoZSBkaXJlY3RvcmllcyBsaXN0ZWQgaW4gJHNobGlicGF0aF92YXIK KysgICAgICBldmFsIHNobGliX3NlYXJjaF9wYXRoPVxgXCRFQ0hPIFwiWFwkeyRzaGxpYnBhdGhf dmFyfVwiIFx8IFwkWHNlZCAtZSBcJ3MvOi8gL2dcJ1xgCisrICAgIGVsc2UKKysgICAgICBzaGxp Yl9zZWFyY2hfcGF0aD0KKysgICAgZmkKKysgICAgZXZhbCBzeXNfbGliX3NlYXJjaF9wYXRoPVwi JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlY1wiCisrICAgIGV2YWwgc3lzX2xpYl9kbHNlYXJjaF9w YXRoPVwiJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXCIKKysKKysgICAgZnVuY19kaXJuYW1l ICIkb3V0cHV0IiAiLyIgIiIKKysgICAgb3V0cHV0X29iamRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1 bHQkb2JqZGlyIgorKyAgICAjIENyZWF0ZSB0aGUgb2JqZWN0IGRpcmVjdG9yeS4KKysgICAgZnVu Y19ta2Rpcl9wICIkb3V0cHV0X29iamRpciIKKysKKysgICAgIyBEZXRlcm1pbmUgdGhlIHR5cGUg b2Ygb3V0cHV0CisrICAgIGNhc2UgJG91dHB1dCBpbgorKyAgICAiIikKKysgICAgICBmdW5jX2Zh dGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUiCisrICAgICAgOzsKKysg ICAgKi4kbGliZXh0KSBsaW5rbW9kZT1vbGRsaWIgOzsKKysgICAgKi5sbyB8ICouJG9iamV4dCkg bGlua21vZGU9b2JqIDs7CisrICAgICoubGEpIGxpbmttb2RlPWxpYiA7OworKyAgICAqKSBsaW5r bW9kZT1wcm9nIDs7ICMgQW55dGhpbmcgZWxzZSBzaG91bGQgYmUgYSBwcm9ncmFtLgorKyAgICBl c2FjCisrCisrICAgIHNwZWNpYWxkZXBsaWJzPQorKworKyAgICBsaWJzPQorKyAgICAjIEZpbmQg YWxsIGludGVyZGVwZW5kZW50IGRlcGxpYnMgYnkgc2VhcmNoaW5nIGZvciBsaWJyYXJpZXMKKysg ICAgIyB0aGF0IGFyZSBsaW5rZWQgbW9yZSB0aGFuIG9uY2UgKGUuZy4gLWxhIC1sYiAtbGEpCisr ICAgIGZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCisrICAgICAgaWYgJG9wdF9kdXBsaWNhdGVf ZGVwcyA7IHRoZW4KKysJY2FzZSAiJGxpYnMgIiBpbgorKwkqIiAkZGVwbGliICIqKSBzcGVjaWFs ZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCWVzYWMKKysgICAgICBmaQor KyAgICAgIGxpYnM9IiRsaWJzICRkZXBsaWIiCisrICAgIGRvbmUKKysKKysgICAgaWYgdGVzdCAi JGxpbmttb2RlIiA9IGxpYjsgdGhlbgorKyAgICAgIGxpYnM9IiRwcmVkZXBzICRsaWJzICRjb21w aWxlcl9saWJfc2VhcmNoX3BhdGggJHBvc3RkZXBzIgorKworKyAgICAgICMgQ29tcHV0ZSBsaWJy YXJpZXMgdGhhdCBhcmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVkZXBzCisrICAgICAg IyAkcG9zdGRlcHMgYW5kIG1hcmsgdGhlbSBhcyBzcGVjaWFsIChpLmUuLCB3aG9zZSBkdXBsaWNh dGVzIGFyZQorKyAgICAgICMgbm90IHRvIGJlIGVsaW1pbmF0ZWQpLgorKyAgICAgIHByZV9wb3N0 X2RlcHM9CisrICAgICAgaWYgJG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM7 IHRoZW4KKysJZm9yIHByZV9wb3N0X2RlcCBpbiAkcHJlZGVwcyAkcG9zdGRlcHM7IGRvCisrCSAg Y2FzZSAiJHByZV9wb3N0X2RlcHMgIiBpbgorKwkgICoiICRwcmVfcG9zdF9kZXAgIiopIHNwZWNp YWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJHByZV9wb3N0X2RlcHMiIDs7CisrCSAgZXNhYwor KwkgIHByZV9wb3N0X2RlcHM9IiRwcmVfcG9zdF9kZXBzICRwcmVfcG9zdF9kZXAiCisrCWRvbmUK KysgICAgICBmaQorKyAgICAgIHByZV9wb3N0X2RlcHM9CisrICAgIGZpCisrCisrICAgIGRlcGxp YnM9CisrICAgIG5ld2RlcGVuZGVuY3lfbGlicz0KKysgICAgbmV3bGliX3NlYXJjaF9wYXRoPQor KyAgICBuZWVkX3JlbGluaz1ubyAjIHdoZXRoZXIgd2UncmUgbGlua2luZyBhbnkgdW5pbnN0YWxs ZWQgbGlidG9vbCBsaWJyYXJpZXMKKysgICAgbm90aW5zdF9kZXBsaWJzPSAjIG5vdC1pbnN0YWxs ZWQgbGlidG9vbCBsaWJyYXJpZXMKKysgICAgbm90aW5zdF9wYXRoPSAjIHBhdGhzIHRoYXQgY29u dGFpbiBub3QtaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCisrCisrICAgIGNhc2UgJGxpbmtt b2RlIGluCisrICAgIGxpYikKKysJcGFzc2VzPSJjb252IGRscHJlb3BlbiBsaW5rIgorKwlmb3Ig ZmlsZSBpbiAkZGxmaWxlcyAkZGxwcmVmaWxlczsgZG8KKysJICBjYXNlICRmaWxlIGluCisrCSAg Ki5sYSkgOzsKKysJICAqKQorKwkgICAgZnVuY19mYXRhbF9oZWxwICJsaWJyYXJpZXMgY2FuIFxg LWRsb3Blbicgb25seSBsaWJ0b29sIGxpYnJhcmllczogJGZpbGUiCisrCSAgICA7OworKwkgIGVz YWMKKysJZG9uZQorKwk7OworKyAgICBwcm9nKQorKwljb21waWxlX2RlcGxpYnM9CisrCWZpbmFs aXplX2RlcGxpYnM9CisrCWFsbGRlcGxpYnM9bm8KKysJbmV3ZGxmaWxlcz0KKysJbmV3ZGxwcmVm aWxlcz0KKysJcGFzc2VzPSJjb252IHNjYW4gZGxvcGVuIGRscHJlb3BlbiBsaW5rIgorKwk7Owor KyAgICAqKSAgcGFzc2VzPSJjb252IgorKwk7OworKyAgICBlc2FjCisrCisrICAgIGZvciBwYXNz IGluICRwYXNzZXM7IGRvCisrICAgICAgIyBUaGUgcHJlb3BlbiBwYXNzIGluIGxpYiBtb2RlIHJl dmVyc2VzICRkZXBsaWJzOyBwdXQgaXQgYmFjayBoZXJlCisrICAgICAgIyBzbyB0aGF0IC1MIGNv bWVzIGJlZm9yZSBsaWJzIHRoYXQgbmVlZCBpdCBmb3IgaW5zdGFuY2UuLi4KKysgICAgICBpZiB0 ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIjsgdGhlbgorKwkjIyBGSVhNRTogRmlu ZCB0aGUgcGxhY2Ugd2hlcmUgdGhlIGxpc3QgaXMgcmVidWlsdCBpbiB0aGUgd3JvbmcKKysJIyMg ICAgICAgIG9yZGVyLCBhbmQgZml4IGl0IHRoZXJlIHByb3Blcmx5CisrICAgICAgICB0bXBfZGVw bGlicz0KKysJZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJICB0bXBfZGVwbGlicz0iJGRl cGxpYiAkdG1wX2RlcGxpYnMiCisrCWRvbmUKKysJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgorKyAg ICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayIg fHwKKysJIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2FuIjsgdGhlbgorKwlsaWJz PSIkZGVwbGlicyIKKysJZGVwbGlicz0KKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRsaW5r bW9kZSIgPSBwcm9nOyB0aGVuCisrCWNhc2UgJHBhc3MgaW4KKysJZGxvcGVuKSBsaWJzPSIkZGxm aWxlcyIgOzsKKysJZGxwcmVvcGVuKSBsaWJzPSIkZGxwcmVmaWxlcyIgOzsKKysJbGluaykgbGli cz0iJGRlcGxpYnMgJURFUExJQlMlICRkZXBlbmRlbmN5X2xpYnMiIDs7CisrCWVzYWMKKysgICAg ICBmaQorKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGRscHJlb3BlbiI7 IHRoZW4KKysJIyBDb2xsZWN0IGFuZCBmb3J3YXJkIGRlcGxpYnMgb2YgcHJlb3BlbmVkIGxpYnRv b2wgbGlicworKwlmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbworKwkgICMgSWdub3JlIG5vbi1s aWJ0b29sLWxpYnMKKysJICBkZXBlbmRlbmN5X2xpYnM9CisrCSAgY2FzZSAkbGliIGluCisrCSAg Ki5sYSkJZnVuY19zb3VyY2UgIiRsaWIiIDs7CisrCSAgZXNhYworKworKwkgICMgQ29sbGVjdCBw cmVvcGVuZWQgbGlidG9vbCBkZXBsaWJzLCBleGNlcHQgYW55IHRoaXMgbGlicmFyeQorKwkgICMg aGFzIGRlY2xhcmVkIGFzIHdlYWsgbGlicworKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lf bGliczsgZG8KKysgICAgICAgICAgICBkZXBsaWJfYmFzZT1gJEVDSE8gIlgkZGVwbGliIiB8ICRY c2VkIC1lICIkYmFzZW5hbWUiYAorKwkgICAgY2FzZSAiICR3ZWFrX2xpYnMgIiBpbgorKwkgICAg KiIgJGRlcGxpYl9iYXNlICIqKSA7OworKwkgICAgKikgZGVwbGlicz0iJGRlcGxpYnMgJGRlcGxp YiIgOzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCWRvbmUKKysJbGlicz0iJGRscHJlZmlsZXMi CisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbG9wZW47IHRoZW4KKysJIyBD b2xsZWN0IGRscHJlb3BlbmVkIGxpYnJhcmllcworKwlzYXZlX2RlcGxpYnM9IiRkZXBsaWJzIgor KwlkZXBsaWJzPQorKyAgICAgIGZpCisrCisrICAgICAgZm9yIGRlcGxpYiBpbiAkbGliczsgZG8K KysJbGliPQorKwlmb3VuZD1ubworKwljYXNlICRkZXBsaWIgaW4KKysJLW10fC1tdGhyZWFkc3wt a3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRocmVhZHN8LS10aHJlYWQtc2FmZXwtdGhyZWFk cykKKysJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKysJ ICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZmlu YWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICBlbHNlCisrCSAg ICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWIiCisrCSAgICBpZiB0ZXN0 ICIkbGlua21vZGUiID0gbGliIDsgdGhlbgorKwkJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2Vy X2ZsYWdzICIgaW4KKysJCSAgICAqIiAkZGVwbGliICIqKSA7OworKwkJICAgICogKSBuZXdfaW5o ZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRkZXBsaWIi IDs7CisrCQllc2FjCisrCSAgICBmaQorKwkgIGZpCisrCSAgY29udGludWUKKysJICA7OworKwkt bCopCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWIgJiYgdGVzdCAiJGxpbmttb2RlIiAh PSBwcm9nOyB0aGVuCisrCSAgICBmdW5jX3dhcm5pbmcgIlxgLWwnIGlzIGlnbm9yZWQgZm9yIGFy Y2hpdmVzL29iamVjdHMiCisrCSAgICBjb250aW51ZQorKwkgIGZpCisrCSAgZnVuY19zdHJpcG5h bWUgJy1sJyAnJyAiJGRlcGxpYiIKKysJICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJ ICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisrCSAgICBzZWFyY2hkaXJzPSIkbmV3 bGliX3NlYXJjaF9wYXRoICRsaWJfc2VhcmNoX3BhdGggJGNvbXBpbGVyX2xpYl9zZWFyY2hfZGly cyAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGgiCisrCSAgZWxzZQorKwkg ICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRzeXNf bGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aCIKKysJICBmaQorKwkgIGZvciBzZWFy Y2hkaXIgaW4gJHNlYXJjaGRpcnM7IGRvCisrCSAgICBmb3Igc2VhcmNoX2V4dCBpbiAubGEgJHN0 ZF9zaHJleHQgLnNvIC5hOyBkbworKwkgICAgICAjIFNlYXJjaCB0aGUgbGlidG9vbCBsaWJyYXJ5 CisrCSAgICAgIGxpYj0iJHNlYXJjaGRpci9saWIke25hbWV9JHtzZWFyY2hfZXh0fSIKKysJICAg ICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKysJCWlmIHRlc3QgIiRzZWFyY2hfZXh0IiA9ICIu bGEiOyB0aGVuCisrCQkgIGZvdW5kPXllcworKwkJZWxzZQorKwkJICBmb3VuZD1ubworKwkJZmkK KysJCWJyZWFrIDIKKysJICAgICAgZmkKKysJICAgIGRvbmUKKysJICBkb25lCisrCSAgaWYgdGVz dCAiJGZvdW5kIiAhPSB5ZXM7IHRoZW4KKysJICAgICMgZGVwbGliIGRvZXNuJ3Qgc2VlbSB0byBi ZSBhIGxpYnRvb2wgbGlicmFyeQorKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJw cm9nLGxpbmsiOyB0aGVuCisrCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGls ZV9kZXBsaWJzIgorKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9k ZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgor KwkgICAgICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRl cGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgZmkKKysJICAgIGNvbnRpbnVlCisrCSAg ZWxzZSAjIGRlcGxpYiBpcyBhIGxpYnRvb2wgbGlicmFyeQorKwkgICAgIyBJZiAkYWxsb3dfbGli dG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzICYmICRkZXBsaWIgaXMgYSBzdGRsaWIsCisr CSAgICAjIFdlIG5lZWQgdG8gZG8gc29tZSBzcGVjaWFsIHRoaW5ncyBoZXJlLCBhbmQgbm90IGxh dGVyLgorKwkgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVu dGltZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkgICAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBz ICIgaW4KKysJICAgICAgKiIgJGRlcGxpYiAiKikKKysJCWlmIGZ1bmNfbGFsaWJfcCAiJGxpYiI7 IHRoZW4KKysJCSAgbGlicmFyeV9uYW1lcz0KKysJCSAgb2xkX2xpYnJhcnk9CisrCQkgIGZ1bmNf c291cmNlICIkbGliIgorKwkJICBmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7 IGRvCisrCQkgICAgbGw9IiRsIgorKwkJICBkb25lCisrCQkgIGlmIHRlc3QgIlgkbGwiID0gIlgk b2xkX2xpYnJhcnkiIDsgdGhlbiAjIG9ubHkgc3RhdGljIHZlcnNpb24gYXZhaWxhYmxlCisrCQkg ICAgZm91bmQ9bm8KKysJCSAgICBmdW5jX2Rpcm5hbWUgIiRsaWIiICIiICIuIgorKwkJICAgIGxh ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysJCSAgICBsaWI9JGxhZGlyLyRvbGRfbGlicmFy eQorKwkJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgor KwkJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisrCQkg ICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkJICAg IGVsc2UKKysJCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCQkgICAgICB0ZXN0 ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVw ZW5kZW5jeV9saWJzIgorKwkJICAgIGZpCisrCQkgICAgY29udGludWUKKysJCSAgZmkKKysJCWZp CisrCQk7OworKwkgICAgICAqKSA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGZpCisr CSAgOzsgIyAtbAorKwkqLmx0ZnJhbWV3b3JrKQorKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFz cyIgPSAicHJvZyxsaW5rIjsgdGhlbgorKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRj b21waWxlX2RlcGxpYnMiCisrCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6 ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisr CSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliIDsgdGhlbgorKwkJY2FzZSAiJG5ld19pbmhl cml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKysJCSAgICAqIiAkZGVwbGliICIqKSA7OworKwkJICAg ICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2Zs YWdzICRkZXBsaWIiIDs7CisrCQllc2FjCisrCSAgICBmaQorKwkgIGZpCisrCSAgY29udGludWUK KysJICA7OworKwktTCopCisrCSAgY2FzZSAkbGlua21vZGUgaW4KKysJICBsaWIpCisrCSAgICBk ZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgdGVzdCAiJHBhc3MiID0gY29udiAmJiBj b250aW51ZQorKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5 X2xpYnMiCisrCSAgICBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgorKwkgICAgbmV3 bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRmdW5jX3N0cmlwbmFtZV9yZXN1 bHQiCisrCSAgICA7OworKwkgIHByb2cpCisrCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0 aGVuCisrCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICAgIGNvbnRpbnVl CisrCSAgICBmaQorKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gc2NhbjsgdGhlbgorKwkgICAgICBk ZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBjb21waWxlX2Rl cGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGli cz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGZpCisrCSAgICBmdW5jX3N0cmlw bmFtZSAnLUwnICcnICIkZGVwbGliIgorKwkgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGli X3NlYXJjaF9wYXRoICRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisrCSAgICA7OworKwkgICopCisr CSAgICBmdW5jX3dhcm5pbmcgIlxgLUwnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzL29iamVjdHMi CisrCSAgICA7OworKwkgIGVzYWMgIyBsaW5rbW9kZQorKwkgIGNvbnRpbnVlCisrCSAgOzsgIyAt TAorKwktUiopCisrCSAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgorKwkgICAgZnVuY19z dHJpcG5hbWUgJy1SJyAnJyAiJGRlcGxpYiIKKysJICAgIGRpcj0kZnVuY19zdHJpcG5hbWVfcmVz dWx0CisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgeHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRp cmVjdG9yaWVzLgorKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCisrCSAgICAqIiAkZGlyICIqKSA7 OworKwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRkaXIiIDs7CisrCSAgICBlc2FjCisrCSAgZmkK KysJICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJ Ki5sYSkgbGliPSIkZGVwbGliIiA7OworKwkqLiRsaWJleHQpCisrCSAgaWYgdGVzdCAiJHBhc3Mi ID0gY29udjsgdGhlbgorKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgIGNv bnRpbnVlCisrCSAgZmkKKysJICBjYXNlICRsaW5rbW9kZSBpbgorKwkgIGxpYikKKysJICAgICMg TGlua2luZyBjb252ZW5pZW5jZSBtb2R1bGVzIGludG8gc2hhcmVkIGxpYnJhcmllcyBpcyBhbGxv d2VkLAorKwkgICAgIyBidXQgbGlua2luZyBvdGhlciBzdGF0aWMgbGlicmFyaWVzIGlzIG5vbi1w b3J0YWJsZS4KKysJICAgIGNhc2UgIiAkZGxwcmVjb252ZW5pZW5jZWxpYnMgIiBpbgorKwkgICAg KiIgJGRlcGxpYiAiKikgOzsKKysJICAgICopCisrCSAgICAgIHZhbGlkX2FfbGliPW5vCisrCSAg ICAgIGNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCQltYXRjaF9wYXR0ZXJuKikKKysJ CSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKKysJCSAgbWF0Y2hfcGF0 dGVybl9yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAor KwkJICBpZiBldmFsICJcJEVDSE8gXCJYJGRlcGxpYlwiIiAyPi9kZXYvbnVsbCB8ICRYc2VkIC1l IDEwcSBcCisrCQkgICAgfCAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVs bDsgdGhlbgorKwkJICAgIHZhbGlkX2FfbGliPXllcworKwkJICBmaQorKwkJOzsKKysJCXBhc3Nf YWxsKQorKwkJICB2YWxpZF9hX2xpYj15ZXMKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAg aWYgdGVzdCAiJHZhbGlkX2FfbGliIiAhPSB5ZXM7IHRoZW4KKysJCSRFQ0hPCisrCQkkRUNITyAi KioqIFdhcm5pbmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRkZXBs aWIuIgorKwkJJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxp YnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQkkRUNITyAiKioqIHlvdSBsaW5r IHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIK KysJCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBk byBub3QgYXBwZWFyIHRvIGhhdmUiCisrCQkkRUNITyAiKioqIGJlY2F1c2UgdGhlIGZpbGUgZXh0 ZW5zaW9ucyAuJGxpYmV4dCBvZiB0aGlzIGFyZ3VtZW50IG1ha2VzIG1lIGJlbGlldmUiCisrCQkk RUNITyAiKioqIHRoYXQgaXQgaXMganVzdCBhIHN0YXRpYyBhcmNoaXZlIHRoYXQgSSBzaG91bGQg bm90IHVzZSBoZXJlLiIKKysJICAgICAgZWxzZQorKwkJJEVDSE8KKysJCSRFQ0hPICIqKiogV2Fy bmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSIKKysJ CSRFQ0hPICIqKiogc3RhdGljIGxpYnJhcnkgJGRlcGxpYiBpcyBub3QgcG9ydGFibGUhIgorKwkJ ZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgICAgZmkKKysJICAgICAgOzsKKysJICAg IGVzYWMKKysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgIHByb2cpCisrCSAgICBpZiB0ZXN0 ICIkcGFzcyIgIT0gbGluazsgdGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJz IgorKwkgICAgZWxzZQorKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVf ZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVw bGlicyIKKysJICAgIGZpCisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICBlc2FjICMgbGlu a21vZGUKKysJICA7OyAjICouJGxpYmV4dAorKwkqLmxvIHwgKi4kb2JqZXh0KQorKwkgIGlmIHRl c3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMi CisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAgaWYgdGVzdCAi JHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8IHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgICAgIyBJZiB0aGVyZSBp cyBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nIHN0YXRpY2FsbHksCisrCSAgICAg ICMgd2UgbmVlZCB0byBwcmVsb2FkLgorKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVm aWxlcyAkZGVwbGliIgorKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVf ZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVw bGlicyIKKysJICAgIGVsc2UKKysJICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGRlcGxp YiIKKysJICAgIGZpCisrCSAgZmkKKysJICBjb250aW51ZQorKwkgIDs7CisrCSVERVBMSUJTJSkK KysJICBhbGxkZXBsaWJzPXllcworKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJZXNhYyAjIGNhc2Ug JGRlcGxpYgorKworKwlpZiB0ZXN0ICIkZm91bmQiID0geWVzIHx8IHRlc3QgLWYgIiRsaWIiOyB0 aGVuIDoKKysJZWxzZQorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIHRoZSBsaWJy YXJ5IFxgJGxpYicgb3IgdW5oYW5kbGVkIGFyZ3VtZW50IFxgJGRlcGxpYiciCisrCWZpCisrCisr CSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUuCisr CWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRsaWIiIFwKKysJICB8fCBmdW5jX2ZhdGFsX2Vycm9yICJc YCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKysKKysJZnVuY19kaXJuYW1l ICIkbGliIiAiIiAiLiIKKysJbGFkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwlkbG5h bWU9CisrCWRsb3Blbj0KKysJZGxwcmVvcGVuPQorKwlsaWJkaXI9CisrCWxpYnJhcnlfbmFtZXM9 CisrCW9sZF9saWJyYXJ5PQorKwlpbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQorKwkjIElmIHRoZSBs aWJyYXJ5IHdhcyBpbnN0YWxsZWQgd2l0aCBhbiBvbGQgcmVsZWFzZSBvZiBsaWJ0b29sLAorKwkj IGl0IHdpbGwgbm90IHJlZGVmaW5lIHZhcmlhYmxlcyBpbnN0YWxsZWQsIG9yIHNob3VsZG5vdGxp bmsKKysJaW5zdGFsbGVkPXllcworKwlzaG91bGRub3RsaW5rPW5vCisrCWF2b2lkdGVtcHJwYXRo PQorKworKworKwkjIFJlYWQgdGhlIC5sYSBmaWxlCisrCWZ1bmNfc291cmNlICIkbGliIgorKwor KwkjIENvbnZlcnQgIi1mcmFtZXdvcmsgZm9vIiB0byAiZm9vLmx0ZnJhbWV3b3JrIgorKwlpZiB0 ZXN0IC1uICIkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyI7IHRoZW4KKysJICB0bXBfaW5oZXJpdGVk X2xpbmtlcl9mbGFncz1gJEVDSE8gIlgkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkWHNlZCAt ZSAncy8tZnJhbWV3b3JrIFwoW14gJF0qXCkvXDEubHRmcmFtZXdvcmsvZydgCisrCSAgZm9yIHRt cF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgaW4gJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzOyBk bworKwkgICAgY2FzZSAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisrCSAgICAg ICoiICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnICIqKSA7OworKwkgICAgICAqKSBuZXdfaW5o ZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICR0bXBfaW5o ZXJpdGVkX2xpbmtlcl9mbGFnIjs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwlmaQorKwlkZXBl bmRlbmN5X2xpYnM9YCRFQ0hPICJYICRkZXBlbmRlbmN5X2xpYnMiIHwgJFhzZWQgLWUgJ3MlIFwo W14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCWlmIHRlc3QgIiRsaW5r bW9kZSwkcGFzcyIgPSAibGliLGxpbmsiIHx8CisrCSAgIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIg PSAicHJvZyxzY2FuIiB8fAorKwkgICB7IHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0ZXN0 ICIkbGlua21vZGUiICE9IGxpYjsgfTsgdGhlbgorKwkgIHRlc3QgLW4gIiRkbG9wZW4iICYmIGRs ZmlsZXM9IiRkbGZpbGVzICRkbG9wZW4iCisrCSAgdGVzdCAtbiAiJGRscHJlb3BlbiIgJiYgZGxw cmVmaWxlcz0iJGRscHJlZmlsZXMgJGRscHJlb3BlbiIKKysJZmkKKysKKysJaWYgdGVzdCAiJHBh c3MiID0gY29udjsgdGhlbgorKwkgICMgT25seSBjaGVjayBmb3IgY29udmVuaWVuY2UgbGlicmFy aWVzCisrCSAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIKKysJICBpZiB0ZXN0IC16ICIkbGliZGly IjsgdGhlbgorKwkgICAgaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgdGhlbgorKwkgICAgICBm dW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBmb3IgXGAk bGliJyIKKysJICAgIGZpCisrCSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJy YXJ5LCBzbyBhZGQgaW4gaXRzIG9iamVjdHMuCisrCSAgICBjb252ZW5pZW5jZT0iJGNvbnZlbmll bmNlICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKKysJICAgIG9sZF9jb252ZW5pZW5jZT0i JG9sZF9jb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCisrCSAgZWxpZiB0 ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IHRoZW4K KysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgY29udmVuaWVuY2UgbGli cmFyeSIKKysJICBmaQorKwkgIHRtcF9saWJzPQorKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVu Y3lfbGliczsgZG8KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBpZiAk b3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgor KwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRk ZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9s aWJzICRkZXBsaWIiCisrCSAgZG9uZQorKwkgIGNvbnRpbnVlCisrCWZpICMgJHBhc3MgPSBjb252 CisrCisrCisrCSMgR2V0IHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IHdlIGxpbmsgYWdhaW5zdC4K KysJbGlua2xpYj0KKysJZm9yIGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbwor KwkgIGxpbmtsaWI9IiRsIgorKwlkb25lCisrCWlmIHRlc3QgLXogIiRsaW5rbGliIjsgdGhlbgor KwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZv ciBcYCRsaWInIgorKwlmaQorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGgg LWRsb3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCisrCSAgaWYgdGVzdCAt eiAiJGxpYmRpciI7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCAtZGxvcGVu IGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgIGlmIHRlc3QgLXog IiRkbG5hbWUiIHx8CisrCSAgICAgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMgfHwKKysJ ICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAjIElmIHRo ZXJlIGlzIG5vIGRsbmFtZSwgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZworKwkg ICAgIyBzdGF0aWNhbGx5LCB3ZSBuZWVkIHRvIHByZWxvYWQuICBXZSBhbHNvIG5lZWQgdG8gcHJl bG9hZCBhbnkKKysJICAgICMgZGVwZW5kZW50IGxpYnJhcmllcyBzbyBsaWJsdGRsJ3MgZGVwbGli IHByZWxvYWRlciBkb2Vzbid0CisrCSAgICAjIGJvbWIgb3V0IGluIHRoZSBsb2FkIGRlcGxpYnMg cGhhc2UuCisrCSAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliICRkZXBlbmRlbmN5X2xp YnMiCisrCSAgZWxzZQorKwkgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYiIKKysJICBm aQorKwkgIGNvbnRpbnVlCisrCWZpICMgJHBhc3MgPSBkbG9wZW4KKysKKysJIyBXZSBuZWVkIGFu IGFic29sdXRlIHBhdGguCisrCWNhc2UgJGxhZGlyIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltc XC9dKikgYWJzX2xhZGlyPSIkbGFkaXIiIDs7CisrCSopCisrCSAgYWJzX2xhZGlyPWBjZCAiJGxh ZGlyIiAmJiBwd2RgCisrCSAgaWYgdGVzdCAteiAiJGFic19sYWRpciI7IHRoZW4KKysJICAgIGZ1 bmNfd2FybmluZyAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBc YCRsYWRpciciCisrCSAgICBmdW5jX3dhcm5pbmcgInBhc3NpbmcgaXQgbGl0ZXJhbGx5IHRvIHRo ZSBsaW5rZXIsIGFsdGhvdWdoIGl0IG1pZ2h0IGZhaWwiCisrCSAgICBhYnNfbGFkaXI9IiRsYWRp ciIKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJZnVuY19iYXNlbmFtZSAiJGxpYiIKKysJbGFu YW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCisrCSMgRmluZCB0aGUgcmVsZXZhbnQgb2Jq ZWN0IGRpcmVjdG9yeSBhbmQgbGlicmFyeSBuYW1lLgorKwlpZiB0ZXN0ICJYJGluc3RhbGxlZCIg PSBYeWVzOyB0aGVuCisrCSAgaWYgdGVzdCAhIC1mICIkbGliZGlyLyRsaW5rbGliIiAmJiB0ZXN0 IC1mICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJsaWJy YXJ5IFxgJGxpYicgd2FzIG1vdmVkLiIKKysJICAgIGRpcj0iJGxhZGlyIgorKwkgICAgYWJzZGly PSIkYWJzX2xhZGlyIgorKwkgICAgbGliZGlyPSIkYWJzX2xhZGlyIgorKwkgIGVsc2UKKysJICAg IGRpcj0iJGxpYmRpciIKKysJICAgIGFic2Rpcj0iJGxpYmRpciIKKysJICBmaQorKwkgIHRlc3Qg IlgkaGFyZGNvZGVfYXV0b21hdGljIiA9IFh5ZXMgJiYgYXZvaWR0ZW1wcnBhdGg9eWVzCisrCWVs c2UKKysJICBpZiB0ZXN0ICEgLWYgIiRsYWRpci8kb2JqZGlyLyRsaW5rbGliIiAmJiB0ZXN0IC1m ICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgorKwkgICAgZGlyPSIkbGFkaXIiCisrCSAgICBh YnNkaXI9IiRhYnNfbGFkaXIiCisrCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVy CisrCSAgICBub3RpbnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKysJICBlbHNl CisrCSAgICBkaXI9IiRsYWRpci8kb2JqZGlyIgorKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyLyRv YmpkaXIiCisrCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCisrCSAgICBub3Rp bnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKysJICBmaQorKwlmaSAjICRpbnN0 YWxsZWQgPSB5ZXMKKysJZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRsYW5hbWUiCisrCW5h bWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lm aWVkIHdpdGggLWRscHJlb3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVu CisrCSAgaWYgdGVzdCAteiAiJGxpYmRpciIgJiYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRo ZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgbGlicmFyaWVzIG1heSAtZGxwcmVvcGVu IGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgICMgUHJlZmVyIHVz aW5nIGEgc3RhdGljIGxpYnJhcnkgKHNvIHRoYXQgbm8gc2lsbHkgX0RZTkFNSUMgc3ltYm9scwor KwkgICMgYXJlIHJlcXVpcmVkIHRvIGxpbmspLgorKwkgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFy eSI7IHRoZW4KKysJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJG9sZF9s aWJyYXJ5IgorKwkgICAgIyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29udmVuaWVuY2UgbGli cmFyaWVzIHRvIGNoZWNrCisrCSAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0 bHkgaW4gdGhlIGxpbmsgcGFzcy4KKysJICAgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKKysJCWRs cHJlY29udmVuaWVuY2VsaWJzPSIkZGxwcmVjb252ZW5pZW5jZWxpYnMgJGRpci8kb2xkX2xpYnJh cnkiCisrCSAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0X2Rsb3BlbiBm aW5kcyBpdC4KKysJICBlbGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCisrCSAgICBuZXdkbHBy ZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRkbG5hbWUiCisrCSAgZWxzZQorKwkgICAgbmV3 ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kbGlua2xpYiIKKysJICBmaQorKwlmaSAj ICRwYXNzID0gZGxwcmVvcGVuCisrCisrCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisrCSAg IyBMaW5rIHRoZSBjb252ZW5pZW5jZSBsaWJyYXJ5CisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9 IGxpYjsgdGhlbgorKwkgICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMiCisr CSAgZWxpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKysJICAg IGNvbXBpbGVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGNvbXBpbGVfZGVwbGlicyIKKysJ ICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRmaW5hbGl6ZV9kZXBsaWJz IgorKwkgIGVsc2UKKysJICAgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiICMgdXNlZCBmb3IgcHJv ZyxzY2FuIHBhc3MKKysJICBmaQorKwkgIGNvbnRpbnVlCisrCWZpCisrCisrCisrCWlmIHRlc3Qg IiRsaW5rbW9kZSIgPSBwcm9nICYmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCisrCSAgbmV3 bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsYWRpciIKKysJICBkZXBsaWJz PSIkbGliICRkZXBsaWJzIgorKworKwkgIGxpbmthbGxkZXBsaWJzPW5vCisrCSAgaWYgdGVzdCAi JGxpbmtfYWxsX2RlcGxpYnMiICE9IG5vIHx8IHRlc3QgLXogIiRsaWJyYXJ5X25hbWVzIiB8fAor KwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgIGxpbmth bGxkZXBsaWJzPXllcworKwkgIGZpCisrCisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBp biAkZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAtTCop IGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCisrCSAgICAgICAgIG5ld2xpYl9zZWFy Y2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorKwkJ IDs7CisrCSAgICBlc2FjCisrCSAgICAjIE5lZWQgdG8gbGluayBhZ2FpbnN0IGFsbCBkZXBlbmRl bmN5X2xpYnM/CisrCSAgICBpZiB0ZXN0ICIkbGlua2FsbGRlcGxpYnMiID0geWVzOyB0aGVuCisr CSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAgICMg TmVlZCB0byBoYXJkY29kZSBzaGFyZWQgbGlicmFyeSBwYXRocworKwkgICAgICAjIG9yL2FuZCBs aW5rIGFnYWluc3Qgc3RhdGljIGxpYnJhcmllcworKwkgICAgICBuZXdkZXBlbmRlbmN5X2xpYnM9 IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJICAgIGZpCisrCSAgICBpZiAkb3B0X2R1 cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAg ICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIi IDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRk ZXBsaWIiCisrCSAgZG9uZSAjIGZvciBkZXBsaWIKKysJICBjb250aW51ZQorKwlmaSAjICRsaW5r bW9kZSA9IHByb2cuLi4KKysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxp bmsiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisrCSAgICAgeyB7 IHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMiID0gbm8gfHwKKysJICAgICAgICAgdGVzdCAiJHBy ZWZlcl9zdGF0aWNfbGlicywkaW5zdGFsbGVkIiA9ICJidWlsdCx5ZXMiOyB9IHx8CisrCSAgICAg ICB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCisrCSAgICAjIFdlIG5lZWQgdG8gaGFy ZGNvZGUgdGhlIGxpYnJhcnkgcGF0aAorKwkgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIi ICYmIHRlc3QgLXogIiRhdm9pZHRlbXBycGF0aCIgOyB0aGVuCisrCSAgICAgICMgTWFrZSBzdXJl IHRoZSBycGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICAgICAgY2Fz ZSAiJHRlbXBfcnBhdGg6IiBpbgorKwkgICAgICAqIiRhYnNkaXI6IiopIDs7CisrCSAgICAgICop IHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoJGFic2RpcjoiIDs7CisrCSAgICAgIGVzYWMKKysJICAg IGZpCisrCisrCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisrCSAgICAjIFNraXAg ZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisrCSAg ICAjIHNlYXJjaCBwYXRoLgorKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBp bgorKwkgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRjb21w aWxlX3JwYXRoICIgaW4KKysJICAgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICAgKikgY29t cGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKysJICAgICAgZXNhYworKwkgICAg ICA7OworKwkgICAgZXNhYworKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBp bgorKwkgICAgKiIgJGxpYmRpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRmaW5h bGl6ZV9ycGF0aCAiIGluCisrCSAgICAgICoiICRsaWJkaXIgIiopIDs7CisrCSAgICAgICopIGZp bmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKysJICAgICAgZXNhYworKwkg ICAgICA7OworKwkgICAgZXNhYworKwkgIGZpICMgJGxpbmttb2RlLCRwYXNzID0gcHJvZyxsaW5r Li4uCisrCisrCSAgaWYgdGVzdCAiJGFsbGRlcGxpYnMiID0geWVzICYmCisrCSAgICAgeyB0ZXN0 ICIkZGVwbGlic19jaGVja19tZXRob2QiID0gcGFzc19hbGwgfHwKKysJICAgICAgIHsgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYKKysJCSB0ZXN0IC1uICIkbGlicmFyeV9uYW1l cyI7IH07IH07IHRoZW4KKysJICAgICMgV2Ugb25seSBuZWVkIHRvIHNlYXJjaCBmb3Igc3RhdGlj IGxpYnJhcmllcworKwkgICAgY29udGludWUKKysJICBmaQorKwlmaQorKworKwlsaW5rX3N0YXRp Yz1ubyAjIFdoZXRoZXIgdGhlIGRlcGxpYiB3aWxsIGJlIGxpbmtlZCBzdGF0aWNhbGx5CisrCXVz ZV9zdGF0aWNfbGlicz0kcHJlZmVyX3N0YXRpY19saWJzCisrCWlmIHRlc3QgIiR1c2Vfc3RhdGlj X2xpYnMiID0gYnVpbHQgJiYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KKysJICB1c2Vf c3RhdGljX2xpYnM9bm8KKysJZmkKKysJaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisr CSAgIHsgdGVzdCAiJHVzZV9zdGF0aWNfbGlicyIgPSBubyB8fCB0ZXN0IC16ICIkb2xkX2xpYnJh cnkiOyB9OyB0aGVuCisrCSAgY2FzZSAkaG9zdCBpbgorKwkgICpjeWd3aW4qIHwgKm1pbmd3KiB8 ICpjZWdjYyopCisrCSAgICAgICMgTm8gcG9pbnQgaW4gcmVsaW5raW5nIERMTHMgYmVjYXVzZSBw YXRocyBhcmUgbm90IGVuY29kZWQKKysJICAgICAgbm90aW5zdF9kZXBsaWJzPSIkbm90aW5zdF9k ZXBsaWJzICRsaWIiCisrCSAgICAgIG5lZWRfcmVsaW5rPW5vCisrCSAgICA7OworKwkgICopCisr CSAgICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5vOyB0aGVuCisrCSAgICAgIG5vdGluc3RfZGVw bGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgorKwkgICAgICBuZWVkX3JlbGluaz15ZXMKKysJ ICAgIGZpCisrCSAgICA7OworKwkgIGVzYWMKKysJICAjIFRoaXMgaXMgYSBzaGFyZWQgbGlicmFy eQorKworKwkgICMgV2FybiBhYm91dCBwb3J0YWJpbGl0eSwgY2FuJ3QgbGluayBhZ2FpbnN0IC1t b2R1bGUncyBvbiBzb21lCisrCSAgIyBzeXN0ZW1zIChkYXJ3aW4pLiAgRG9uJ3QgYmxlYXQgYWJv dXQgZGxvcGVuZWQgbW9kdWxlcyB0aG91Z2ghCisrCSAgZGxvcGVubW9kdWxlPSIiCisrCSAgZm9y IGRscHJlbW9kdWxldGVzdCBpbiAkZGxwcmVmaWxlczsgZG8KKysJICAgIGlmIHRlc3QgIlgkZGxw cmVtb2R1bGV0ZXN0IiA9ICJYJGxpYiI7IHRoZW4KKysJICAgICAgZGxvcGVubW9kdWxlPSIkZGxw cmVtb2R1bGV0ZXN0IgorKwkgICAgICBicmVhaworKwkgICAgZmkKKysJICBkb25lCisrCSAgaWYg dGVzdCAteiAiJGRsb3Blbm1vZHVsZSIgJiYgdGVzdCAiJHNob3VsZG5vdGxpbmsiID0geWVzICYm IHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KKysJICAgICRFQ0hPCisrCSAgICBpZiB0ZXN0ICIk bGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IExpbmtp bmcgdGhlIGV4ZWN1dGFibGUgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUiCisr CSAgICBlbHNlCisrCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVk IGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUiCisrCSAgICBmaQor KwkgICAgJEVDSE8gIioqKiAkbGlua2xpYiBpcyBub3QgcG9ydGFibGUhIgorKwkgIGZpCisrCSAg aWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJgorKwkgICAgIHRlc3QgIiRoYXJkY29kZV9pbnRv X2xpYnMiID0geWVzOyB0aGVuCisrCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisr CSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1 bi10aW1lCisrCSAgICAjIHNlYXJjaCBwYXRoLgorKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2Vh cmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICopCisrCSAgICAg IGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KKysJICAgICAgKiIgJGFic2RpciAiKikgOzsKKysJ ICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKysJICAgICAg ZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2Vh cmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGxpYmRpciAiKikgOzsKKysJICAgICopCisrCSAgICAg IGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAgICAgICoiICRsaWJkaXIgIiopIDs7Cisr CSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKysJICAg ICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGZpCisrCisrCSAgaWYgdGVzdCAt biAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIjsgdGhlbgorKwkgICAgIyBmaWd1cmUg b3V0IHRoZSBzb25hbWUKKysJICAgIHNldCBkdW1teSAkbGlicmFyeV9uYW1lcworKwkgICAgc2hp ZnQKKysJICAgIHJlYWxuYW1lPSIkMSIKKysJICAgIHNoaWZ0CisrCSAgICBsaWJuYW1lPWBldmFs ICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKysJICAgICMgdXNlIGRsbmFtZSBpZiB3ZSBn b3QgaXQuIGl0J3MgcGVyZmVjdGx5IGdvb2QsIG5vPworKwkgICAgaWYgdGVzdCAtbiAiJGRsbmFt ZSI7IHRoZW4KKysJICAgICAgc29uYW1lPSIkZGxuYW1lIgorKwkgICAgZWxpZiB0ZXN0IC1uICIk c29uYW1lX3NwZWMiOyB0aGVuCisrCSAgICAgICMgYmxlaCB3aW5kb3dzCisrCSAgICAgIGNhc2Ug JGhvc3QgaW4KKysJICAgICAgKmN5Z3dpbiogfCBtaW5ndyogfCAqY2VnY2MqKQorKwkgICAgICAg IGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCisrCQltYWpvcj0kZnVuY19hcml0aF9yZXN1bHQK KysJCXZlcnN1ZmZpeD0iLSRtYWpvciIKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgZXZh bCBzb25hbWU9XCIkc29uYW1lX3NwZWNcIgorKwkgICAgZWxzZQorKwkgICAgICBzb25hbWU9IiRy ZWFsbmFtZSIKKysJICAgIGZpCisrCisrCSAgICAjIE1ha2UgYSBuZXcgbmFtZSBmb3IgdGhlIGV4 dHJhY3RfZXhwc3ltc19jbWRzIHRvIHVzZQorKwkgICAgc29yb290PSIkc29uYW1lIgorKwkgICAg ZnVuY19iYXNlbmFtZSAiJHNvcm9vdCIKKysJICAgIHNvbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVz dWx0IgorKwkgICAgZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5kbGwnICIkc29uYW1lIgorKwkgICAg bmV3bGliPWxpYmltcC0kZnVuY19zdHJpcG5hbWVfcmVzdWx0LmEKKysKKysJICAgICMgSWYgdGhl IGxpYnJhcnkgaGFzIG5vIGV4cG9ydCBsaXN0LCB0aGVuIGNyZWF0ZSBvbmUgbm93CisrCSAgICBp ZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kc29uYW1lLWRlZiI7IHRoZW4gOgorKwkgICAgZWxz ZQorKwkgICAgICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZXhwb3J0ZWQgc3ltYm9sIGxpc3Qg ZnJvbSBcYCRzb25hbWUnIgorKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJGV4dHJhY3RfZXhw c3ltc19jbWRzIiAnZXhpdCAkPycKKysJICAgIGZpCisrCisrCSAgICAjIENyZWF0ZSAkbmV3bGli CisrCSAgICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kbmV3bGliIjsgdGhlbiA6OyBlbHNl CisrCSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBpbXBvcnQgbGlicmFyeSBmb3IgXGAk c29uYW1lJyIKKysJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRvbGRfYXJjaGl2ZV9mcm9tX2V4 cHN5bXNfY21kcyIgJ2V4aXQgJD8nCisrCSAgICBmaQorKwkgICAgIyBtYWtlIHN1cmUgdGhlIGxp YnJhcnkgdmFyaWFibGVzIGFyZSBwb2ludGluZyB0byB0aGUgbmV3IGxpYnJhcnkKKysJICAgIGRp cj0kb3V0cHV0X29iamRpcgorKwkgICAgbGlua2xpYj0kbmV3bGliCisrCSAgZmkgIyB0ZXN0IC1u ICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiCisrCisrCSAgaWYgdGVzdCAiJGxpbmtt b2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgorKwkgICAgYWRkX3No bGlicGF0aD0KKysJICAgIGFkZF9kaXI9CisrCSAgICBhZGQ9CisrCSAgICBsaWJfbGlua2VkPXll cworKwkgICAgY2FzZSAkaGFyZGNvZGVfYWN0aW9uIGluCisrCSAgICBpbW1lZGlhdGUgfCB1bnN1 cHBvcnRlZCkKKysJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSBubzsgdGhlbgor KwkJYWRkPSIkZGlyLyRsaW5rbGliIgorKwkJY2FzZSAkaG9zdCBpbgorKwkJICAqLSotc2NvMy4y djUuMC5bMDI0XSopIGFkZF9kaXI9Ii1MJGRpciIgOzsKKysJCSAgKi0qLXN5c3Y0KnV3MiopIGFk ZF9kaXI9Ii1MJGRpciIgOzsKKysJCSAgKi0qLXN5c3Y1T3BlblVOSVgqIHwgKi0qLXN5c3Y1VW5p eFdhcmU3LlswMV0uWzEwXSogfCBcCisrCQkgICAgKi0qLXVuaXh3YXJlNyopIGFkZF9kaXI9Ii1M JGRpciIgOzsKKysJCSAgKi0qLWRhcndpbiogKQorKwkJICAgICMgaWYgdGhlIGxpYiBpcyBhIChu b24tZGxvcGVuZWQpIG1vZHVsZSB0aGVuIHdlIGNhbiBub3QKKysJCSAgICAjIGxpbmsgYWdhaW5z dCBpdCwgc29tZW9uZSBpcyBpZ25vcmluZyB0aGUgZWFybGllciB3YXJuaW5ncworKwkJICAgIGlm IC91c3IvYmluL2ZpbGUgLUwgJGFkZCAyPiAvZGV2L251bGwgfAorKwkJCSAkR1JFUCAiOiBbXjpd KiBidW5kbGUiID4vZGV2L251bGwgOyB0aGVuCisrCQkgICAgICBpZiB0ZXN0ICJYJGRsb3Blbm1v ZHVsZSIgIT0gIlgkbGliIjsgdGhlbgorKwkJCSRFQ0hPICIqKiogV2FybmluZzogbGliICRsaW5r bGliIGlzIGEgbW9kdWxlLCBub3QgYSBzaGFyZWQgbGlicmFyeSIKKysJCQlpZiB0ZXN0IC16ICIk b2xkX2xpYnJhcnkiIDsgdGhlbgorKwkJCSAgJEVDSE8KKysJCQkgICRFQ0hPICIqKiogQW5kIHRo ZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKKysJCQkg ICRFQ0hPICIqKiogVGhlIGxpbmsgd2lsbCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKKysJCQllbHNl CisrCQkJICBhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5IgorKwkJCWZpCisrCQkgICAgICBlbGlmIHRl c3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KKysJCQlhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5Igor KwkJICAgICAgZmkKKysJCSAgICBmaQorKwkJZXNhYworKwkgICAgICBlbGlmIHRlc3QgIiRoYXJk Y29kZV9taW51c19MIiA9IG5vOyB0aGVuCisrCQljYXNlICRob3N0IGluCisrCQkqLSotc3Vub3Mq KSBhZGRfc2hsaWJwYXRoPSIkZGlyIiA7OworKwkJZXNhYworKwkJYWRkX2Rpcj0iLUwkZGlyIgor KwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhf dmFyIiA9IG5vOyB0aGVuCisrCQlhZGRfc2hsaWJwYXRoPSIkZGlyIgorKwkJYWRkPSItbCRuYW1l IgorKwkgICAgICBlbHNlCisrCQlsaWJfbGlua2VkPW5vCisrCSAgICAgIGZpCisrCSAgICAgIDs7 CisrCSAgICByZWxpbmspCisrCSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVz ICYmCisrCSAgICAgICAgIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87IHRo ZW4KKysJCWFkZD0iJGRpci8kbGlua2xpYiIKKysJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVf bWludXNfTCIgPSB5ZXM7IHRoZW4KKysJCWFkZF9kaXI9Ii1MJGRpciIKKysJCSMgVHJ5IGxvb2tp bmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KKysJCWlm IHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCisrCQkgIGNhc2UgJGxpYmRpciBpbgor KwkJICAgIFtcXC9dKikKKysJCSAgICAgIGFkZF9kaXI9IiRhZGRfZGlyIC1MJGluc3RfcHJlZml4 X2RpciRsaWJkaXIiCisrCQkgICAgICA7OworKwkJICBlc2FjCisrCQlmaQorKwkJYWRkPSItbCRu YW1lIgorKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsg dGhlbgorKwkJYWRkX3NobGlicGF0aD0iJGRpciIKKysJCWFkZD0iLWwkbmFtZSIKKysJICAgICAg ZWxzZQorKwkJbGliX2xpbmtlZD1ubworKwkgICAgICBmaQorKwkgICAgICA7OworKwkgICAgKikg bGliX2xpbmtlZD1ubyA7OworKwkgICAgZXNhYworKworKwkgICAgaWYgdGVzdCAiJGxpYl9saW5r ZWQiICE9IHllczsgdGhlbgorKwkgICAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gInVuc3Vw cG9ydGVkIGhhcmRjb2RlIHByb3BlcnRpZXMiCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAt biAiJGFkZF9zaGxpYnBhdGgiOyB0aGVuCisrCSAgICAgIGNhc2UgOiRjb21waWxlX3NobGlicGF0 aDogaW4KKysJICAgICAgKiI6JGFkZF9zaGxpYnBhdGg6IiopIDs7CisrCSAgICAgICopIGNvbXBp bGVfc2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkYWRkX3NobGlicGF0aDoiIDs7CisrCSAg ICAgIGVzYWMKKysJICAgIGZpCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhl bgorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgY29tcGlsZV9kZXBsaWJzPSIkYWRkX2Rp ciAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBjb21waWxlX2Rl cGxpYnM9IiRhZGQgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgdGVzdCAt biAiJGFkZF9kaXIiICYmIGRlcGxpYnM9IiRhZGRfZGlyICRkZXBsaWJzIgorKwkgICAgICB0ZXN0 IC1uICIkYWRkIiAmJiBkZXBsaWJzPSIkYWRkICRkZXBsaWJzIgorKwkgICAgICBpZiB0ZXN0ICIk aGFyZGNvZGVfZGlyZWN0IiAhPSB5ZXMgJiYKKysJCSB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIg IT0geWVzICYmCisrCQkgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVu CisrCQljYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgorKwkJKiI6JGxpYmRpcjoiKikgOzsK KysJCSopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6IiA7 OworKwkJZXNhYworKwkgICAgICBmaQorKwkgICAgZmkKKysJICBmaQorKworKwkgIGlmIHRlc3Qg IiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorKwkgICAg YWRkX3NobGlicGF0aD0KKysJICAgIGFkZF9kaXI9CisrCSAgICBhZGQ9CisrCSAgICAjIEZpbmFs aXplIGNvbW1hbmQgZm9yIGJvdGggaXMgc2ltcGxlOiBqdXN0IGhhcmRjb2RlIGl0LgorKwkgICAg aWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMgJiYKKysJICAgICAgIHRlc3QgIiRoYXJk Y29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87IHRoZW4KKysJICAgICAgYWRkPSIkbGliZGlyLyRs aW5rbGliIgorKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4K KysJICAgICAgYWRkX2Rpcj0iLUwkbGliZGlyIgorKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisrCSAg ICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgorKwkgICAg ICBjYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgorKwkgICAgICAqIjokbGliZGlyOiIqKSA7 OworKwkgICAgICAqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgkbGli ZGlyOiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisrCSAgICBlbGlm IHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3Qg LW4gIiRpbnN0X3ByZWZpeF9kaXIiICYmCisrCQkgdGVzdCAtZiAiJGluc3RfcHJlZml4X2RpciRs aWJkaXIvJGxpbmtsaWIiIDsgdGhlbgorKwkJYWRkPSIkaW5zdF9wcmVmaXhfZGlyJGxpYmRpci8k bGlua2xpYiIKKysJICAgICAgZWxzZQorKwkJYWRkPSIkbGliZGlyLyRsaW5rbGliIgorKwkgICAg ICBmaQorKwkgICAgZWxzZQorKwkgICAgICAjIFdlIGNhbm5vdCBzZWVtIHRvIGhhcmRjb2RlIGl0 LCBndWVzcyB3ZSdsbCBmYWtlIGl0LgorKwkgICAgICBhZGRfZGlyPSItTCRsaWJkaXIiCisrCSAg ICAgICMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3Rh bGxlZCB0by4KKysJICAgICAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KKysJ CWNhc2UgJGxpYmRpciBpbgorKwkJICBbXFwvXSopCisrCQkgICAgYWRkX2Rpcj0iJGFkZF9kaXIg LUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKKysJCSAgICA7OworKwkJZXNhYworKwkgICAgICBm aQorKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAiJGxp bmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGZpbmFs aXplX2RlcGxpYnM9IiRhZGRfZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAgICB0ZXN0IC1u ICIkYWRkIiAmJiBmaW5hbGl6ZV9kZXBsaWJzPSIkYWRkICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkg ICAgZWxzZQorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZGVwbGlicz0iJGFkZF9kaXIg JGRlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxp YnMiCisrCSAgICBmaQorKwkgIGZpCisrCWVsaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRo ZW4KKysJICAjIEhlcmUgd2UgYXNzdW1lIHRoYXQgb25lIG9mIGhhcmRjb2RlX2RpcmVjdCBvciBo YXJkY29kZV9taW51c19MCisrCSAgIyBpcyBub3QgdW5zdXBwb3J0ZWQuICBUaGlzIGlzIHZhbGlk IG9uIGFsbCBrbm93biBzdGF0aWMgYW5kCisrCSAgIyBzaGFyZWQgcGxhdGZvcm1zLgorKwkgIGlm IHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiICE9IHVuc3VwcG9ydGVkOyB0aGVuCisrCSAgICB0ZXN0 IC1uICIkb2xkX2xpYnJhcnkiICYmIGxpbmtsaWI9IiRvbGRfbGlicmFyeSIKKysJICAgIGNvbXBp bGVfZGVwbGlicz0iJGRpci8kbGlua2xpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZmluYWxp emVfZGVwbGlicz0iJGRpci8kbGlua2xpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICBlbHNlCisr CSAgICBjb21waWxlX2RlcGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRjb21waWxlX2RlcGxpYnMiCisr CSAgICBmaW5hbGl6ZV9kZXBsaWJzPSItbCRuYW1lIC1MJGRpciAkZmluYWxpemVfZGVwbGlicyIK KysJICBmaQorKwllbGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisr CSAgIyBOb3QgYSBzaGFyZWQgbGlicmFyeQorKwkgIGlmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21l dGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KKysJICAgICMgV2UncmUgdHJ5aW5nIGxpbmsgYSBzaGFy ZWQgbGlicmFyeSBhZ2FpbnN0IGEgc3RhdGljIG9uZQorKwkgICAgIyBidXQgdGhlIHN5c3RlbSBk b2Vzbid0IHN1cHBvcnQgaXQuCisrCisrCSAgICAjIEp1c3QgcHJpbnQgYSB3YXJuaW5nIGFuZCBh ZGQgdGhlIGxpYnJhcnkgdG8gZGVwZW5kZW5jeV9saWJzIHNvCisrCSAgICAjIHRoYXQgdGhlIHBy b2dyYW0gY2FuIGJlIGxpbmtlZCBhZ2FpbnN0IHRoZSBzdGF0aWMgbGlicmFyeS4KKysJICAgICRF Q0hPCisrCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IFRoaXMgc3lzdGVtIGNhbiBub3QgbGluayB0 byBzdGF0aWMgbGliIGFyY2hpdmUgJGxpYi4iCisrCSAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUg Y2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hl biIKKysJICAgICRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2Fu IG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorKwkgICAgJEVDSE8gIioqKiBzaGFyZWQgdmVy c2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZS4iCisr CSAgICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgorKwkgICAgICAkRUNITyAiKioqIEJ1 dCBhcyB5b3UgdHJ5IHRvIGJ1aWxkIGEgbW9kdWxlIGxpYnJhcnksIGxpYnRvb2wgd2lsbCBzdGls bCBjcmVhdGUgIgorKwkgICAgICAkRUNITyAiKioqIGEgc3RhdGljIG1vZHVsZSwgdGhhdCBzaG91 bGQgd29yayBhcyBsb25nIGFzIHRoZSBkbG9wZW5pbmcgYXBwbGljYXRpb24iCisrCSAgICAgICRF Q0hPICIqKiogaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZyB0byByZXNvbHZlIHN5bWJv bHMgYXQgcnVudGltZS4iCisrCSAgICAgIGlmIHRlc3QgLXogIiRnbG9iYWxfc3ltYm9sX3BpcGUi OyB0aGVuCisrCQkkRUNITworKwkJJEVDSE8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkg d29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgorKwkJJEVDSE8gIioq KiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0IGxp YnRvb2wgY291bGQiCisrCQkkRUNITyAiKioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28s IHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgorKwkJJEVDSE8gIioqKiBcYG5tJyBm cm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgorKwkgICAgICBm aQorKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KKysJCWJ1aWxk X2xpYnRvb2xfbGlicz1tb2R1bGUKKysJCWJ1aWxkX29sZF9saWJzPXllcworKwkgICAgICBlbHNl CisrCQlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgZWxz ZQorKwkgICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMiCisrCSAgICBsaW5r X3N0YXRpYz15ZXMKKysJICBmaQorKwlmaSAjIGxpbmsgc2hhcmVkL3N0YXRpYyBsaWJyYXJ5Pwor KworKwlpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGRl cGVuZGVuY3lfbGlicyIgJiYKKysJICAgICB7IHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9 IHllcyB8fAorKwkgICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyB8fAorKwkgICAg ICAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IHllczsgfTsgdGhlbgorKwkgICAgIyBFeHRyYWN0IC1S IGZyb20gZGVwZW5kZW5jeV9saWJzCisrCSAgICB0ZW1wX2RlcGxpYnM9CisrCSAgICBmb3IgbGli ZGlyIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgICAgIGNhc2UgJGxpYmRpciBpbgorKwkg ICAgICAtUiopIGZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRsaWJkaXIiCisrCSAgICAgICAgICAg dGVtcF94cnBhdGg9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkJICAgY2FzZSAiICR4cnBhdGgg IiBpbgorKwkJICAgKiIgJHRlbXBfeHJwYXRoICIqKSA7OworKwkJICAgKikgeHJwYXRoPSIkeHJw YXRoICR0ZW1wX3hycGF0aCI7OworKwkJICAgZXNhYzs7CisrCSAgICAgICopIHRlbXBfZGVwbGli cz0iJHRlbXBfZGVwbGlicyAkbGliZGlyIjs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJ ICAgIGRlcGVuZGVuY3lfbGlicz0iJHRlbXBfZGVwbGlicyIKKysJICBmaQorKworKwkgIG5ld2xp Yl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkYWJzZGlyIgorKwkgICMgTGluayBh Z2FpbnN0IHRoaXMgbGlicmFyeQorKwkgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSBubyAmJiBuZXdk ZXBlbmRlbmN5X2xpYnM9IiRhYnNfbGFkaXIvJGxhbmFtZSAkbmV3ZGVwZW5kZW5jeV9saWJzIgor KwkgICMgLi4uIGFuZCBpdHMgZGVwZW5kZW5jeV9saWJzCisrCSAgdG1wX2xpYnM9CisrCSAgZm9y IGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJz PSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCisrCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9k ZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAkZGVw bGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAg ICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisr CSAgZG9uZQorKworKwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubzsgdGhlbgor KwkgICAgIyBBZGQgdGhlIHNlYXJjaCBwYXRocyBvZiBhbGwgZGVwZW5kZW5jeSBsaWJyYXJpZXMK KysJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJICAgICAgY2FzZSAk ZGVwbGliIGluCisrCSAgICAgIC1MKikgcGF0aD0iJGRlcGxpYiIgOzsKKysJICAgICAgKi5sYSkK KysJICAgICAgICBmdW5jX2Rpcm5hbWUgIiRkZXBsaWIiICIiICIuIgorKwkJZGlyPSIkZnVuY19k aXJuYW1lX3Jlc3VsdCIKKysJCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorKwkJY2FzZSAk ZGlyIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFic2Rpcj0iJGRpciIgOzsKKysJ CSopCisrCQkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKysJCSAgaWYgdGVzdCAteiAiJGFi c2RpciI7IHRoZW4KKysJCSAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1 dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKKysJCSAgICBhYnNkaXI9IiRkaXIiCisrCQkg IGZpCisrCQkgIDs7CisrCQllc2FjCisrCQlpZiAkR1JFUCAiXmluc3RhbGxlZD1ubyIgJGRlcGxp YiA+IC9kZXYvbnVsbDsgdGhlbgorKwkJY2FzZSAkaG9zdCBpbgorKwkJKi0qLWRhcndpbiopCisr CQkgIGRlcGRlcGw9CisrCQkgIGV2YWwgZGVwbGlicmFyeV9uYW1lcz1gJHtTRUR9IC1uIC1lICdz L15saWJyYXJ5X25hbWVzPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKysJCSAgaWYgdGVzdCAtbiAi JGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhlbgorKwkJICAgIGZvciB0bXAgaW4gJGRlcGxpYnJhcnlf bmFtZXMgOyBkbworKwkJICAgICAgZGVwZGVwbD0kdG1wCisrCQkgICAgZG9uZQorKwkJICAgIGlm IHRlc3QgLWYgIiRhYnNkaXIvJG9iamRpci8kZGVwZGVwbCIgOyB0aGVuCisrCQkgICAgICBkZXBk ZXBsPSIkYWJzZGlyLyRvYmpkaXIvJGRlcGRlcGwiCisrCQkgICAgICBkYXJ3aW5faW5zdGFsbF9u YW1lPWAke09UT09MfSAtTCAkZGVwZGVwbCB8IGF3ayAne2lmIChOUiA9PSAyKSB7cHJpbnQgJDE7 ZXhpdH19J2AKKysgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGRhcndpbl9pbnN0 YWxsX25hbWUiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgICBkYXJ3aW5faW5zdGFs bF9uYW1lPWAke09UT09MNjR9IC1MICRkZXBkZXBsICB8IGF3ayAne2lmIChOUiA9PSAyKSB7cHJp bnQgJDE7ZXhpdH19J2AKKysgICAgICAgICAgICAgICAgICAgICAgZmkKKysJCSAgICAgIGNvbXBp bGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHt3bH0tZHlsaWJfZmlsZSAke3dsfSR7ZGFyd2lu X2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKKysJCSAgICAgIGxpbmtlcl9mbGFncz0iJGxpbmtl cl9mbGFncyAtZHlsaWJfZmlsZSAke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCisr CQkgICAgICBwYXRoPQorKwkJICAgIGZpCisrCQkgIGZpCisrCQkgIDs7CisrCQkqKQorKwkJICBw YXRoPSItTCRhYnNkaXIvJG9iamRpciIKKysJCSAgOzsKKysJCWVzYWMKKysJCWVsc2UKKysJCSAg ZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxp YmAKKysJCSAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAorKwkJICAgIGZ1bmNfZmF0YWxfZXJyb3Ig IlxgJGRlcGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKwkJICB0ZXN0ICIk YWJzZGlyIiAhPSAiJGxpYmRpciIgJiYgXAorKwkJICAgIGZ1bmNfd2FybmluZyAiXGAkZGVwbGli JyBzZWVtcyB0byBiZSBtb3ZlZCIKKysKKysJCSAgcGF0aD0iLUwkYWJzZGlyIgorKwkJZmkKKysJ CTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgY2FzZSAiICRkZXBsaWJzICIgaW4KKysJICAgICAg KiIgJHBhdGggIiopIDs7CisrCSAgICAgICopIGRlcGxpYnM9IiRwYXRoICRkZXBsaWJzIiA7Owor KwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgZmkgIyBsaW5rX2FsbF9kZXBsaWJzICE9IG5v CisrCWZpICMgbGlua21vZGUgPSBsaWIKKysgICAgICBkb25lICMgZm9yIGRlcGxpYiBpbiAkbGli cworKyAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KKysJaWYgdGVzdCAiJGxpbmtt b2RlIiA9ICJwcm9nIjsgdGhlbgorKwkgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19pbmhlcml0ZWRf bGlua2VyX2ZsYWdzICRjb21waWxlX2RlcGxpYnMiCisrCSAgZmluYWxpemVfZGVwbGlicz0iJG5l d19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRmaW5hbGl6ZV9kZXBsaWJzIgorKwllbHNlCisrCSAg Y29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAiYCRFQ0hPICJYICRuZXdfaW5oZXJpdGVk X2xpbmtlcl9mbGFncyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZy YW1ld29yayBcMSVnJ2AKKysJZmkKKysgICAgICBmaQorKyAgICAgIGRlcGVuZGVuY3lfbGlicz0i JG5ld2RlcGVuZGVuY3lfbGlicyIKKysgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW47 IHRoZW4KKysJIyBMaW5rIHRoZSBkbHByZW9wZW5lZCBsaWJyYXJpZXMgYmVmb3JlIG90aGVyIGxp YnJhcmllcworKwlmb3IgZGVwbGliIGluICRzYXZlX2RlcGxpYnM7IGRvCisrCSAgZGVwbGlicz0i JGRlcGxpYiAkZGVwbGlicyIKKysJZG9uZQorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHBh c3MiICE9IGRsb3BlbjsgdGhlbgorKwlpZiB0ZXN0ICIkcGFzcyIgIT0gY29udjsgdGhlbgorKwkg ICMgTWFrZSBzdXJlIGxpYl9zZWFyY2hfcGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rv cmllcy4KKysJICBsaWJfc2VhcmNoX3BhdGg9CisrCSAgZm9yIGRpciBpbiAkbmV3bGliX3NlYXJj aF9wYXRoOyBkbworKwkgICAgY2FzZSAiJGxpYl9zZWFyY2hfcGF0aCAiIGluCisrCSAgICAqIiAk ZGlyICIqKSA7OworKwkgICAgKikgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRk aXIiIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0KKysJ ZmkKKysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiAhPSAicHJvZyxsaW5rIjsgdGhlbgor KwkgIHZhcnM9ImRlcGxpYnMiCisrCWVsc2UKKysJICB2YXJzPSJjb21waWxlX2RlcGxpYnMgZmlu YWxpemVfZGVwbGlicyIKKysJZmkKKysJZm9yIHZhciBpbiAkdmFycyBkZXBlbmRlbmN5X2xpYnM7 IGRvCisrCSAgIyBBZGQgbGlicmFyaWVzIHRvICR2YXIgaW4gcmV2ZXJzZSBvcmRlcgorKwkgIGV2 YWwgdG1wX2xpYnM9XCJcJCR2YXJcIgorKwkgIG5ld19saWJzPQorKwkgIGZvciBkZXBsaWIgaW4g JHRtcF9saWJzOyBkbworKwkgICAgIyBGSVhNRTogUGVkYW50aWNhbGx5LCB0aGlzIGlzIHRoZSBy aWdodCB0aGluZyB0byBkbywgc28KKysJICAgICMgICAgICAgIHRoYXQgc29tZSBuYXN0eSBkZXBl bmRlbmN5IGxvb3AgaXNuJ3QgYWNjaWRlbnRhbGx5CisrCSAgICAjICAgICAgICBicm9rZW46Cisr CSAgICAjbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIgorKwkgICAgIyBQcmFnbWF0aWNhbGx5 LCB0aGlzIHNlZW1zIHRvIGNhdXNlIHZlcnkgZmV3IHByb2JsZW1zIGluCisrCSAgICAjIHByYWN0 aWNlOgorKwkgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAtTCopIG5ld19saWJzPSIkZGVwbGli ICRuZXdfbGlicyIgOzsKKysJICAgIC1SKikgOzsKKysJICAgICopCisrCSAgICAgICMgQW5kIGhl cmUgaXMgdGhlIHJlYXNvbjogd2hlbiBhIGxpYnJhcnkgYXBwZWFycyBtb3JlCisrCSAgICAgICMg dGhhbiBvbmNlIGFzIGFuIGV4cGxpY2l0IGRlcGVuZGVuY2Ugb2YgYSBsaWJyYXJ5LCBvcgorKwkg ICAgICAjIGlzIGltcGxpY2l0bHkgbGlua2VkIGluIG1vcmUgdGhhbiBvbmNlIGJ5IHRoZQorKwkg ICAgICAjIGNvbXBpbGVyLCBpdCBpcyBjb25zaWRlcmVkIHNwZWNpYWwsIGFuZCBtdWx0aXBsZQor KwkgICAgICAjIG9jY3VycmVuY2VzIHRoZXJlb2YgYXJlIG5vdCByZW1vdmVkLiAgQ29tcGFyZSB0 aGlzCisrCSAgICAgICMgd2l0aCBoYXZpbmcgdGhlIHNhbWUgbGlicmFyeSBiZWluZyBsaXN0ZWQg YXMgYQorKwkgICAgICAjIGRlcGVuZGVuY3kgb2YgbXVsdGlwbGUgb3RoZXIgbGlicmFyaWVzOiBp biB0aGlzIGNhc2UsCisrCSAgICAgICMgd2Uga25vdyAocGVkYW50aWNhbGx5LCB3ZSBhc3N1bWUp IHRoZSBsaWJyYXJ5IGRvZXMgbm90CisrCSAgICAgICMgbmVlZCB0byBiZSBsaXN0ZWQgbW9yZSB0 aGFuIG9uY2UsIHNvIHdlIGtlZXAgb25seSB0aGUKKysJICAgICAgIyBsYXN0IGNvcHkuICBUaGlz IGlzIG5vdCBhbHdheXMgcmlnaHQsIGJ1dCBpdCBpcyByYXJlCisrCSAgICAgICMgZW5vdWdoIHRo YXQgd2UgcmVxdWlyZSB1c2VycyB0aGF0IHJlYWxseSBtZWFuIHRvIHBsYXkKKysJICAgICAgIyBz dWNoIHVucG9ydGFibGUgbGlua2luZyB0cmlja3MgdG8gbGluayB0aGUgbGlicmFyeQorKwkgICAg ICAjIHVzaW5nIC1XbCwtbG5hbWUsIHNvIHRoYXQgbGlidG9vbCBkb2VzIG5vdCBjb25zaWRlciBp dAorKwkgICAgICAjIGZvciBkdXBsaWNhdGUgcmVtb3ZhbC4KKysJICAgICAgY2FzZSAiICRzcGVj aWFsZGVwbGlicyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopIG5ld19saWJzPSIkZGVwbGli ICRuZXdfbGlicyIgOzsKKysJICAgICAgKikKKysJCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorKwkJ KiIgJGRlcGxpYiAiKikgOzsKKysJCSopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsK KysJCWVzYWMKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJ ICBkb25lCisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBpbiAkbmV3X2xpYnM7IGRvCisr CSAgICBjYXNlICRkZXBsaWIgaW4KKysJICAgIC1MKikKKysJICAgICAgY2FzZSAiICR0bXBfbGli cyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopIDs7CisrCSAgICAgICopIHRtcF9saWJzPSIk dG1wX2xpYnMgJGRlcGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgKikg dG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIiA7OworKwkgICAgZXNhYworKwkgIGRvbmUKKysJ ICBldmFsICR2YXI9XCIkdG1wX2xpYnNcIgorKwlkb25lICMgZm9yIHZhcgorKyAgICAgIGZpCisr ICAgICAgIyBMYXN0IHN0ZXA6IHJlbW92ZSBydW50aW1lIGxpYnMgZnJvbSBkZXBlbmRlbmN5X2xp YnMKKysgICAgICAjICh0aGV5IHN0YXkgaW4gZGVwbGlicykKKysgICAgICB0bXBfbGlicz0KKysg ICAgICBmb3IgaSBpbiAkZGVwZW5kZW5jeV9saWJzIDsgZG8KKysJY2FzZSAiICRwcmVkZXBzICRw b3N0ZGVwcyAkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoICIgaW4KKysJKiIgJGkgIiopCisrCSAg aT0iIgorKwkgIDs7CisrCWVzYWMKKysJaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorKwkgIHRtcF9s aWJzPSIkdG1wX2xpYnMgJGkiCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIGRlcGVuZGVuY3lf bGlicz0kdG1wX2xpYnMKKysgICAgZG9uZSAjIGZvciBwYXNzCisrICAgIGlmIHRlc3QgIiRsaW5r bW9kZSIgPSBwcm9nOyB0aGVuCisrICAgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisrICAgIGZp CisrICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRsaW5rbW9kZSIgPSBs aWI7IHRoZW4KKysgICAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKysgICAgZmkKKysK KysgICAgY2FzZSAkbGlua21vZGUgaW4KKysgICAgb2xkbGliKQorKyAgICAgIGlmIHRlc3QgLW4g IiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCisrCWZ1 bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysgICAgICBm aQorKworKyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KKysgICAgICAqXCAtbCogfCAqXCAtTCop CisrCWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBhcmNoaXZl cyIgOzsKKysgICAgICBlc2FjCisrCisrICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisrCWZ1 bmNfd2FybmluZyAiXGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorKworKyAgICAg IHRlc3QgLW4gIiR4cnBhdGgiICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1SJyBpcyBpZ25vcmVk IGZvciBhcmNoaXZlcyIKKysKKysgICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKKysJZnVuY193 YXJuaW5nICJcYC12ZXJzaW9uLWluZm8vLXZlcnNpb24tbnVtYmVyJyBpcyBpZ25vcmVkIGZvciBh cmNoaXZlcyIKKysKKysgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorKwlmdW5jX3dhcm5p bmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorKworKyAgICAgIHRlc3Qg LW4gIiRleHBvcnRfc3ltYm9scyRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgXAorKwlmdW5jX3dh cm5pbmcgIlxgLWV4cG9ydC1zeW1ib2xzJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysKKysg ICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4K KysgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysgICAgICBvbGRsaWJzPSIkb3V0cHV0Igor KyAgICAgIG9ianM9IiRvYmpzJG9sZF9kZXBsaWJzIgorKyAgICAgIDs7CisrCisrICAgIGxpYikK KysgICAgICAjIE1ha2Ugc3VyZSB3ZSBvbmx5IGdlbmVyYXRlIGxpYnJhcmllcyBvZiB0aGUgZm9y bSBgbGliTkFNRS5sYScuCisrICAgICAgY2FzZSAkb3V0cHV0bmFtZSBpbgorKyAgICAgIGxpYiop CisrCWZ1bmNfc3RyaXBuYW1lICdsaWInICcubGEnICIkb3V0cHV0bmFtZSIKKysJbmFtZT0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0CisrCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCisr CWV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgorKwk7OworKyAgICAgICopCisrCXRlc3Qg IiRtb2R1bGUiID0gbm8gJiYgXAorKwkgIGZ1bmNfZmF0YWxfaGVscCAibGlidG9vbCBsaWJyYXJ5 IFxgJG91dHB1dCcgbXVzdCBiZWdpbiB3aXRoIFxgbGliJyIKKysKKysJaWYgdGVzdCAiJG5lZWRf bGliX3ByZWZpeCIgIT0gbm87IHRoZW4KKysJICAjIEFkZCB0aGUgImxpYiIgcHJlZml4IGZvciBt b2R1bGVzIGlmIHJlcXVpcmVkCisrCSAgZnVuY19zdHJpcG5hbWUgJycgJy5sYScgIiRvdXRwdXRu YW1lIgorKwkgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgIGV2YWwgc2hhcmVkX2V4 dD1cIiRzaHJleHRfY21kc1wiCisrCSAgZXZhbCBsaWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wiCisr CWVsc2UKKysJICBmdW5jX3N0cmlwbmFtZSAnJyAnLmxhJyAiJG91dHB1dG5hbWUiCisrCSAgbGli bmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCWZpCisrCTs7CisrICAgICAgZXNhYworKwor KyAgICAgIGlmIHRlc3QgLW4gIiRvYmpzIjsgdGhlbgorKwlpZiB0ZXN0ICIkZGVwbGlic19jaGVj a19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCisrCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90 IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0 cyBvbiB0aGlzIGhvc3Q6JG9ianMiCisrCWVsc2UKKysJICAkRUNITworKwkgICRFQ0hPICIqKiog V2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSBu b24tbGlidG9vbCIKKysJICAkRUNITyAiKioqIG9iamVjdHMgJG9ianMgaXMgbm90IHBvcnRhYmxl ISIKKysJICBsaWJvYmpzPSIkbGlib2JqcyAkb2JqcyIKKysJZmkKKysgICAgICBmaQorKworKyAg ICAgIHRlc3QgIiRkbHNlbGYiICE9IG5vICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1kbG9wZW4g c2VsZicgaXMgaWdub3JlZCBmb3IgbGlidG9vbCBsaWJyYXJpZXMiCisrCisrICAgICAgc2V0IGR1 bW15ICRycGF0aAorKyAgICAgIHNoaWZ0CisrICAgICAgdGVzdCAiJCMiIC1ndCAxICYmIFwKKysJ ZnVuY193YXJuaW5nICJpZ25vcmluZyBtdWx0aXBsZSBcYC1ycGF0aCdzIGZvciBhIGxpYnRvb2wg bGlicmFyeSIKKysKKysgICAgICBpbnN0YWxsX2xpYmRpcj0iJDEiCisrCisrICAgICAgb2xkbGli cz0KKysgICAgICBpZiB0ZXN0IC16ICIkcnBhdGgiOyB0aGVuCisrCWlmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBCdWlsZGluZyBhIGxpYnRvb2wgY29udmVu aWVuY2UgbGlicmFyeS4KKysJICAjIFNvbWUgY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0aCBh IGAuYWwnIGV4dGVuc2lvbiBzbworKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIHNob3VsZCBo YXZlIHRoZSBzYW1lIGV4dGVuc2lvbiBhbgorKwkgICMgYXJjaGl2ZSBub3JtYWxseSB3b3VsZC4K KysJICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0ICRvbGRsaWJzIgor KwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1jb252ZW5pZW5jZQorKwkgIGJ1aWxkX29sZF9saWJzPXll cworKwlmaQorKworKwl0ZXN0IC1uICIkdmluZm8iICYmIFwKKysJICBmdW5jX3dhcm5pbmcgIlxg LXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXInIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNl IGxpYnJhcmllcyIKKysKKysJdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKKysJICBmdW5jX3dhcm5p bmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKKysg ICAgICBlbHNlCisrCisrCSMgUGFyc2UgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gYXJndW1lbnQu CisrCXNhdmVfaWZzPSIkSUZTIjsgSUZTPSc6JworKwlzZXQgZHVtbXkgJHZpbmZvIDAgMCAwCisr CXNoaWZ0CisrCUlGUz0iJHNhdmVfaWZzIgorKworKwl0ZXN0IC1uICIkNyIgJiYgXAorKwkgIGZ1 bmNfZmF0YWxfaGVscCAidG9vIG1hbnkgcGFyYW1ldGVycyB0byBcYC12ZXJzaW9uLWluZm8nIgor KworKwkjIGNvbnZlcnQgYWJzb2x1dGUgdmVyc2lvbiBudW1iZXJzIHRvIGxpYnRvb2wgYWdlcwor KwkjIHRoaXMgcmV0YWlucyBjb21wYXRpYmlsaXR5IHdpdGggLmxhIGZpbGVzIGFuZCBhdHRlbXB0 cworKwkjIHRvIG1ha2UgdGhlIGNvZGUgYmVsb3cgYSBiaXQgbW9yZSBjb21wcmVoZW5zaWJsZQor KworKwljYXNlICR2aW5mb19udW1iZXIgaW4KKysJeWVzKQorKwkgIG51bWJlcl9tYWpvcj0iJDEi CisrCSAgbnVtYmVyX21pbm9yPSIkMiIKKysJICBudW1iZXJfcmV2aXNpb249IiQzIgorKwkgICMK KysJICAjIFRoZXJlIGFyZSByZWFsbHkgb25seSB0d28ga2luZHMgLS0gdGhvc2UgdGhhdAorKwkg ICMgdXNlIHRoZSBjdXJyZW50IHJldmlzaW9uIGFzIHRoZSBtYWpvciB2ZXJzaW9uCisrCSAgIyBh bmQgdGhvc2UgdGhhdCBzdWJ0cmFjdCBhZ2UgYW5kIHVzZSBhZ2UgYXMKKysJICAjIGEgbWlub3Ig dmVyc2lvbi4gIEJ1dCwgdGhlbiB0aGVyZSBpcyBpcml4CisrCSAgIyB3aGljaCBoYXMgYW4gZXh0 cmEgMSBhZGRlZCBqdXN0IGZvciBmdW4KKysJICAjCisrCSAgY2FzZSAkdmVyc2lvbl90eXBlIGlu CisrCSAgZGFyd2lufGxpbnV4fG9zZnx3aW5kb3dzfG5vbmUpCisrCSAgICBmdW5jX2FyaXRoICRu dW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCisrCSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jl c3VsdAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2aXNpb249IiRudW1iZXJf cmV2aXNpb24iCisrCSAgICA7OworKwkgIGZyZWVic2QtYW91dHxmcmVlYnNkLWVsZnxzdW5vcykK KysJICAgIGN1cnJlbnQ9IiRudW1iZXJfbWFqb3IiCisrCSAgICByZXZpc2lvbj0iJG51bWJlcl9t aW5vciIKKysJICAgIGFnZT0iMCIKKysJICAgIDs7CisrCSAgaXJpeHxub25zdG9wdXgpCisrCSAg ICBmdW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCisrCSAgICBjdXJyZW50 PSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2 aXNpb249IiRudW1iZXJfbWlub3IiCisrCSAgICBsdF9pcml4X2luY3JlbWVudD1ubworKwkgICAg OzsKKysJICBlc2FjCisrCSAgOzsKKysJbm8pCisrCSAgY3VycmVudD0iJDEiCisrCSAgcmV2aXNp b249IiQyIgorKwkgIGFnZT0iJDMiCisrCSAgOzsKKysJZXNhYworKworKwkjIENoZWNrIHRoYXQg ZWFjaCBvZiB0aGUgdGhpbmdzIGFyZSB2YWxpZCBudW1iZXJzLgorKwljYXNlICRjdXJyZW50IGlu CisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAt OV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9yICJD VVJSRU5UIFxgJGN1cnJlbnQnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgorKwkgIGZ1 bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlv biIKKysJICA7OworKwllc2FjCisrCisrCWNhc2UgJHJldmlzaW9uIGluCisrCTB8WzEtOV18WzEt OV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVsw LTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9yICJSRVZJU0lPTiBcYCRyZXZp c2lvbicgbXVzdCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiCisrCSAgZnVuY19mYXRhbF9lcnJv ciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgorKwkgIDs7Cisr CWVzYWMKKysKKysJY2FzZSAkYWdlIGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTld WzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsK KysJKikKKysJICBmdW5jX2Vycm9yICJBR0UgXGAkYWdlJyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUg aW50ZWdlciIKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZl cnNpb24gaW5mb3JtYXRpb24iCisrCSAgOzsKKysJZXNhYworKworKwlpZiB0ZXN0ICIkYWdlIiAt Z3QgIiRjdXJyZW50IjsgdGhlbgorKwkgIGZ1bmNfZXJyb3IgIkFHRSBcYCRhZ2UnIGlzIGdyZWF0 ZXIgdGhhbiB0aGUgY3VycmVudCBpbnRlcmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQnIgorKwkgIGZ1 bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlv biIKKysJZmkKKysKKysJIyBDYWxjdWxhdGUgdGhlIHZlcnNpb24gdmFyaWFibGVzLgorKwltYWpv cj0KKysJdmVyc3VmZml4PQorKwl2ZXJzdHJpbmc9CisrCWNhc2UgJHZlcnNpb25fdHlwZSBpbgor Kwlub25lKSA7OworKworKwlkYXJ3aW4pCisrCSAgIyBMaWtlIExpbnV4LCBidXQgd2l0aCB0aGUg Y3VycmVudCB2ZXJzaW9uIGF2YWlsYWJsZSBpbgorKwkgICMgdmVyc3RyaW5nIGZvciBjb2Rpbmcg aXQgaW50byB0aGUgbGlicmFyeSBoZWFkZXIKKysJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFn ZQorKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9IiRtYWpvci4k YWdlLiRyZXZpc2lvbiIKKysJICAjIERhcndpbiBsZCBkb2Vzbid0IGxpa2UgMCBmb3IgdGhlc2Ug b3B0aW9ucy4uLgorKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgKyAxCisrCSAgbWlub3JfY3VycmVu dD0kZnVuY19hcml0aF9yZXN1bHQKKysJICB4bGN2ZXJzdHJpbmc9IiR7d2x9LWNvbXBhdGliaWxp dHlfdmVyc2lvbiAke3dsfSRtaW5vcl9jdXJyZW50ICR7d2x9LWN1cnJlbnRfdmVyc2lvbiAke3ds fSRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKKysJICB2ZXJzdHJpbmc9Ii1jb21wYXRpYmlsaXR5 X3ZlcnNpb24gJG1pbm9yX2N1cnJlbnQgLWN1cnJlbnRfdmVyc2lvbiAkbWlub3JfY3VycmVudC4k cmV2aXNpb24iCisrCSAgOzsKKysKKysJZnJlZWJzZC1hb3V0KQorKwkgIG1ham9yPSIuJGN1cnJl bnQiCisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIjsKKysJICA7OworKworKwlm cmVlYnNkLWVsZikKKysJICBtYWpvcj0iLiRjdXJyZW50IgorKwkgIHZlcnN1ZmZpeD0iLiRjdXJy ZW50IgorKwkgIDs7CisrCisrCWlyaXggfCBub25zdG9wdXgpCisrCSAgaWYgdGVzdCAiWCRsdF9p cml4X2luY3JlbWVudCIgPSAiWG5vIjsgdGhlbgorKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAt ICRhZ2UKKysJICBlbHNlCisrCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZSArIDEKKysJ ICBmaQorKwkgIG1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAorKworKwkgIGNhc2UgJHZlcnNpb25f dHlwZSBpbgorKwkgICAgbm9uc3RvcHV4KSB2ZXJzdHJpbmdfcHJlZml4PW5vbnN0b3B1eCA7Owor KwkgICAgKikgICAgICAgICB2ZXJzdHJpbmdfcHJlZml4PXNnaSA7OworKwkgIGVzYWMKKysJICB2 ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9yLiRyZXZpc2lvbiIKKysKKysJICAjIEFk ZCBpbiBhbGwgdGhlIGludGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29tcGF0aWJsZSB3aXRoLgorKwkg IGxvb3A9JHJldmlzaW9uCisrCSAgd2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAwOyBkbworKwkgICAg ZnVuY19hcml0aCAkcmV2aXNpb24gLSAkbG9vcAorKwkgICAgaWZhY2U9JGZ1bmNfYXJpdGhfcmVz dWx0CisrCSAgICBmdW5jX2FyaXRoICRsb29wIC0gMQorKwkgICAgbG9vcD0kZnVuY19hcml0aF9y ZXN1bHQKKysJICAgIHZlcnN0cmluZz0iJHZlcnN0cmluZ19wcmVmaXgkbWFqb3IuJGlmYWNlOiR2 ZXJzdHJpbmciCisrCSAgZG9uZQorKworKwkgICMgQmVmb3JlIHRoaXMgcG9pbnQsICRtYWpvciBt dXN0IG5vdCBjb250YWluIGAuJy4KKysJICBtYWpvcj0uJG1ham9yCisrCSAgdmVyc3VmZml4PSIk bWFqb3IuJHJldmlzaW9uIgorKwkgIDs7CisrCisrCWxpbnV4KQorKwkgIGZ1bmNfYXJpdGggJGN1 cnJlbnQgLSAkYWdlCisrCSAgbWFqb3I9LiRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgIHZlcnN1ZmZp eD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgorKwkgIDs7CisrCisrCW9zZikKKysJICBmdW5jX2Fy aXRoICRjdXJyZW50IC0gJGFnZQorKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKysJICB2 ZXJzdWZmaXg9Ii4kY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKKysJICB2ZXJzdHJpbmc9IiRjdXJy ZW50LiRhZ2UuJHJldmlzaW9uIgorKworKwkgICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNlcyB0 aGF0IHdlIGFyZSBjb21wYXRpYmxlIHdpdGguCisrCSAgbG9vcD0kYWdlCisrCSAgd2hpbGUgdGVz dCAiJGxvb3AiIC1uZSAwOyBkbworKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRsb29wCisr CSAgICBpZmFjZT0kZnVuY19hcml0aF9yZXN1bHQKKysJICAgIGZ1bmNfYXJpdGggJGxvb3AgLSAx CisrCSAgICBsb29wPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgdmVyc3RyaW5nPSIkdmVyc3Ry aW5nOiR7aWZhY2V9LjAiCisrCSAgZG9uZQorKworKwkgICMgTWFrZSBleGVjdXRhYmxlcyBkZXBl bmQgb24gb3VyIGN1cnJlbnQgdmVyc2lvbi4KKysJICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtj dXJyZW50fS4wIgorKwkgIDs7CisrCisrCXFueCkKKysJICBtYWpvcj0iLiRjdXJyZW50IgorKwkg IHZlcnN1ZmZpeD0iLiRjdXJyZW50IgorKwkgIDs7CisrCisrCXN1bm9zKQorKwkgIG1ham9yPSIu JGN1cnJlbnQiCisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIgorKwkgIDs7Cisr CisrCXdpbmRvd3MpCisrCSAgIyBVc2UgJy0nIHJhdGhlciB0aGFuICcuJywgc2luY2Ugd2Ugb25s eSB3YW50IG9uZQorKwkgICMgZXh0ZW5zaW9uIG9uIERPUyA4LjMgZmlsZXN5c3RlbXMuCisrCSAg ZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKysJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1bHQK KysJICB2ZXJzdWZmaXg9Ii0kbWFqb3IiCisrCSAgOzsKKysKKysJKikKKysJICBmdW5jX2ZhdGFs X2NvbmZpZ3VyYXRpb24gInVua25vd24gbGlicmFyeSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lvbl90 eXBlJyIKKysJICA7OworKwllc2FjCisrCisrCSMgQ2xlYXIgdGhlIHZlcnNpb24gaW5mbyBpZiB3 ZSBkZWZhdWx0ZWQsIGFuZCB0aGV5IHNwZWNpZmllZCBhIHJlbGVhc2UuCisrCWlmIHRlc3QgLXog IiR2aW5mbyIgJiYgdGVzdCAtbiAiJHJlbGVhc2UiOyB0aGVuCisrCSAgbWFqb3I9CisrCSAgY2Fz ZSAkdmVyc2lvbl90eXBlIGluCisrCSAgZGFyd2luKQorKwkgICAgIyB3ZSBjYW4ndCBjaGVjayBm b3IgIjAuMCIgaW4gYXJjaGl2ZV9jbWRzIGR1ZSB0byBxdW90aW5nCisrCSAgICAjIHByb2JsZW1z LCBzbyB3ZSByZXNldCBpdCBjb21wbGV0ZWx5CisrCSAgICB2ZXJzdHJpbmc9CisrCSAgICA7Owor KwkgICopCisrCSAgICB2ZXJzdHJpbmc9IjAuMCIKKysJICAgIDs7CisrCSAgZXNhYworKwkgIGlm IHRlc3QgIiRuZWVkX3ZlcnNpb24iID0gbm87IHRoZW4KKysJICAgIHZlcnN1ZmZpeD0KKysJICBl bHNlCisrCSAgICB2ZXJzdWZmaXg9Ii4wLjAiCisrCSAgZmkKKysJZmkKKysKKysJIyBSZW1vdmUg dmVyc2lvbiBpbmZvIGZyb20gbmFtZSBpZiB2ZXJzaW9uaW5nIHNob3VsZCBiZSBhdm9pZGVkCisr CWlmIHRlc3QgIiRhdm9pZF92ZXJzaW9uIiA9IHllcyAmJiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9 IG5vOyB0aGVuCisrCSAgbWFqb3I9CisrCSAgdmVyc3VmZml4PQorKwkgIHZlcnN0cmluZz0iIgor KwlmaQorKworKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgYXJjaGl2ZSB3aWxsIGhhdmUgdW5kZWZp bmVkIHN5bWJvbHMuCisrCWlmIHRlc3QgIiRhbGxvd191bmRlZmluZWQiID0geWVzOyB0aGVuCisr CSAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZF9mbGFnIiA9IHVuc3VwcG9ydGVkOyB0aGVuCisr CSAgICBmdW5jX3dhcm5pbmcgInVuZGVmaW5lZCBzeW1ib2xzIG5vdCBhbGxvd2VkIGluICRob3N0 IHNoYXJlZCBsaWJyYXJpZXMiCisrCSAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgIGJ1 aWxkX29sZF9saWJzPXllcworKwkgIGZpCisrCWVsc2UKKysJICAjIERvbid0IGFsbG93IHVuZGVm aW5lZCBzeW1ib2xzLgorKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkbm9fdW5kZWZpbmVkX2Zs YWciCisrCWZpCisrCisrICAgICAgZmkKKysKKysgICAgICBmdW5jX2dlbmVyYXRlX2Rsc3ltcyAi JGxpYm5hbWUiICIkbGlibmFtZSIgInllcyIKKysgICAgICBsaWJvYmpzPSIkbGlib2JqcyAkc3lt ZmlsZW9iaiIKKysgICAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKwor KyAgICAgIGlmIHRlc3QgIiRtb2RlIiAhPSByZWxpbms7IHRoZW4KKysJIyBSZW1vdmUgb3VyIG91 dHB1dHMsIGJ1dCBkb24ndCByZW1vdmUgb2JqZWN0IGZpbGVzIHNpbmNlIHRoZXkKKysJIyBtYXkg aGF2ZSBiZWVuIGNyZWF0ZWQgd2hlbiBjb21waWxpbmcgUElDIG9iamVjdHMuCisrCXJlbW92ZWxp c3Q9CisrCXRlbXByZW1vdmVsaXN0PWAkRUNITyAiJG91dHB1dF9vYmpkaXIvKiJgCisrCWZvciBw IGluICR0ZW1wcmVtb3ZlbGlzdDsgZG8KKysJICBjYXNlICRwIGluCisrCSAgICAqLiRvYmpleHQg fCAqLmdjbm8pCisrCSAgICAgICA7OworKwkgICAgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUg fCAkb3V0cHV0X29iamRpci8kbGlibmFtZS4qIHwgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfSR7 cmVsZWFzZX0uKikKKysJICAgICAgIGlmIHRlc3QgIlgkcHJlY2lvdXNfZmlsZXNfcmVnZXgiICE9 ICJYIjsgdGhlbgorKwkJIGlmICRFQ0hPICIkcCIgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19maWxl c19yZWdleCIgPi9kZXYvbnVsbCAyPiYxCisrCQkgdGhlbgorKwkJICAgY29udGludWUKKysJCSBm aQorKwkgICAgICAgZmkKKysJICAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRwIgorKwkg ICAgICAgOzsKKysJICAgICopIDs7CisrCSAgZXNhYworKwlkb25lCisrCXRlc3QgLW4gIiRyZW1v dmVsaXN0IiAmJiBcCisrCSAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciBcJHJlbW92ZWxpc3QiCisr ICAgICAgZmkKKysKKysgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcg b2xkIGxpYnJhcmllcy4KKysgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYm IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhlbgorKwlvbGRs aWJzPSIkb2xkbGlicyAkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorKworKwkjIFRy YW5zZm9ybSAubG8gZmlsZXMgdG8gLm8gZmlsZXMuCisrCW9sZG9ianM9IiRvYmpzICJgJEVDSE8g IlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSckL2QnIC1lICIk bG8ybyIgfCAkTkwyU1BgCisrICAgICAgZmkKKysKKysgICAgICAjIEVsaW1pbmF0ZSBhbGwgdGVt cG9yYXJ5IGRpcmVjdG9yaWVzLgorKyAgICAgICNmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBk bworKyAgICAgICMJbGliX3NlYXJjaF9wYXRoPWAkRUNITyAiWCRsaWJfc2VhcmNoX3BhdGggIiB8 ICRYc2VkIC1lICJzJSAkcGF0aCAlICVnImAKKysgICAgICAjCWRlcGxpYnM9YCRFQ0hPICJYJGRl cGxpYnMgIiB8ICRYc2VkIC1lICJzJSAtTCRwYXRoICUgJWciYAorKyAgICAgICMJZGVwZW5kZW5j eV9saWJzPWAkRUNITyAiWCRkZXBlbmRlbmN5X2xpYnMgIiB8ICRYc2VkIC1lICJzJSAtTCRwYXRo ICUgJWciYAorKyAgICAgICNkb25lCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7IHRo ZW4KKysJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55IHJwYXRoIGZsYWdzLCB0aGVuIGFkZCB0 aGVtLgorKwl0ZW1wX3hycGF0aD0KKysJZm9yIGxpYmRpciBpbiAkeHJwYXRoOyBkbworKwkgIHRl bXBfeHJwYXRoPSIkdGVtcF94cnBhdGggLVIkbGliZGlyIgorKwkgIGNhc2UgIiRmaW5hbGl6ZV9y cGF0aCAiIGluCisrCSAgKiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBmaW5hbGl6ZV9ycGF0aD0i JGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlkb25lCisrCWlmIHRlc3Qg IiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8fCB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0g eWVzOyB0aGVuCisrCSAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF94cnBhdGggJGRlcGVuZGVuY3lf bGlicyIKKysJZmkKKysgICAgICBmaQorKworKyAgICAgICMgTWFrZSBzdXJlIGRsZmlsZXMgY29u dGFpbnMgb25seSB1bmlxdWUgZmlsZXMgdGhhdCB3b24ndCBiZSBkbHByZW9wZW5lZAorKyAgICAg IG9sZF9kbGZpbGVzPSIkZGxmaWxlcyIKKysgICAgICBkbGZpbGVzPQorKyAgICAgIGZvciBsaWIg aW4gJG9sZF9kbGZpbGVzOyBkbworKwljYXNlICIgJGRscHJlZmlsZXMgJGRsZmlsZXMgIiBpbgor KwkqIiAkbGliICIqKSA7OworKwkqKSBkbGZpbGVzPSIkZGxmaWxlcyAkbGliIiA7OworKwllc2Fj CisrICAgICAgZG9uZQorKworKyAgICAgICMgTWFrZSBzdXJlIGRscHJlZmlsZXMgY29udGFpbnMg b25seSB1bmlxdWUgZmlsZXMKKysgICAgICBvbGRfZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMiCisr ICAgICAgZGxwcmVmaWxlcz0KKysgICAgICBmb3IgbGliIGluICRvbGRfZGxwcmVmaWxlczsgZG8K KysJY2FzZSAiJGRscHJlZmlsZXMgIiBpbgorKwkqIiAkbGliICIqKSA7OworKwkqKSBkbHByZWZp bGVzPSIkZGxwcmVmaWxlcyAkbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKworKyAgICAg IGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWlmIHRlc3QgLW4g IiRycGF0aCI7IHRoZW4KKysJICBjYXNlICRob3N0IGluCisrCSAgKi0qLWN5Z3dpbiogfCAqLSot bWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKikKKysJ ICAgICMgdGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgYyBsaWJyYXJ5IChhcyBz dWNoKSEKKysJICAgIDs7CisrCSAgKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQor KwkgICAgIyBSaGFwc29keSBDIGxpYnJhcnkgaXMgaW4gdGhlIFN5c3RlbSBmcmFtZXdvcmsKKysJ ICAgIGRlcGxpYnM9IiRkZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29yayIKKysJICAgIDs7CisrCSAg Ki0qLW5ldGJzZCopCisrCSAgICAjIERvbid0IGxpbmsgd2l0aCBsaWJjIHVudGlsIHRoZSBhLm91 dCBsZC5zbyBpcyBmaXhlZC4KKysJICAgIDs7CisrCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVi c2QqIHwgKi0qLWRyYWdvbmZseSopCisrCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRv IHVzIGhhdmluZyBsaWJjL2xpYmNfci4KKysJICAgIDs7CisrCSAgKi0qLXNjbzMuMnY1KiB8ICot Ki1zY281djYqKQorKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBfX2N0eXBlCisrCSAgICA7 OworKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0q LU9wZW5VTklYKikKKysJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0 IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKKysJICAgIDs7CisrCSAgKikKKysJICAgICMgQWRk IGxpYmMgdG8gZGVwbGlicyBvbiBhbGwgb3RoZXIgc3lzdGVtcyBpZiBuZWNlc3NhcnkuCisrCSAg ICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9uZWVkX2xjIiA9ICJ5ZXMiOyB0aGVuCisrCSAgICAg IGRlcGxpYnM9IiRkZXBsaWJzIC1sYyIKKysJICAgIGZpCisrCSAgICA7OworKwkgIGVzYWMKKysJ ZmkKKysKKysJIyBUcmFuc2Zvcm0gZGVwbGlicyBpbnRvIG9ubHkgZGVwbGlicyB0aGF0IGNhbiBi ZSBsaW5rZWQgaW4gc2hhcmVkLgorKwluYW1lX3NhdmU9JG5hbWUKKysJbGlibmFtZV9zYXZlPSRs aWJuYW1lCisrCXJlbGVhc2Vfc2F2ZT0kcmVsZWFzZQorKwl2ZXJzdWZmaXhfc2F2ZT0kdmVyc3Vm Zml4CisrCW1ham9yX3NhdmU9JG1ham9yCisrCSMgSSdtIG5vdCBzdXJlIGlmIEknbSB0cmVhdGlu ZyB0aGUgcmVsZWFzZSBjb3JyZWN0bHkuICBJIHRoaW5rCisrCSMgcmVsZWFzZSBzaG91bGQgc2hv dyB1cCBpbiB0aGUgLWwgKGllIC1sZ21wNSkgc28gd2UgZG9uJ3Qgd2FudCB0bworKwkjIGFkZCBp dCBpbiB0d2ljZS4gIElzIHRoYXQgY29ycmVjdD8KKysJcmVsZWFzZT0iIgorKwl2ZXJzdWZmaXg9 IiIKKysJbWFqb3I9IiIKKysJbmV3ZGVwbGlicz0KKysJZHJvcHBlZGRlcHM9bm8KKysJY2FzZSAk ZGVwbGlic19jaGVja19tZXRob2QgaW4KKysJcGFzc19hbGwpCisrCSAgIyBEb24ndCBjaGVjayBm b3Igc2hhcmVkL3N0YXRpYy4gIEV2ZXJ5dGhpbmcgd29ya3MuCisrCSAgIyBUaGlzIG1pZ2h0IGJl IGEgbGl0dGxlIG5haXZlLiAgV2UgbWlnaHQgd2FudCB0byBjaGVjaworKwkgICMgd2hldGhlciB0 aGUgbGlicmFyeSBleGlzdHMgb3Igbm90LiAgQnV0IHRoaXMgaXMgb24KKysJICAjIG9zZjMgJiBv c2Y0IGFuZCBJJ20gbm90IHJlYWxseSBzdXJlLi4uIEp1c3QKKysJICAjIGltcGxlbWVudGluZyB3 aGF0IHdhcyBhbHJlYWR5IHRoZSBiZWhhdmlvci4KKysJICBuZXdkZXBsaWJzPSRkZXBsaWJzCisr CSAgOzsKKysJdGVzdF9jb21waWxlKQorKwkgICMgVGhpcyBjb2RlIHN0cmVzc2VzIHRoZSAibGli cmFyaWVzIGFyZSBwcm9ncmFtcyIgcGFyYWRpZ20gdG8gaXRzCisrCSAgIyBsaW1pdHMuIE1heWJl IGV2ZW4gYnJlYWtzIGl0LiAgV2UgY29tcGlsZSBhIHByb2dyYW0sIGxpbmtpbmcgaXQKKysJICAj IGFnYWluc3QgdGhlIGRlcGxpYnMgYXMgYSBwcm94eSBmb3IgdGhlIGxpYnJhcnkuICBUaGVuIHdl IGNhbiBjaGVjaworKwkgICMgd2hldGhlciB0aGV5IGxpbmtlZCBpbiBzdGF0aWNhbGx5IG9yIGR5 bmFtaWNhbGx5IHdpdGggbGRkLgorKwkgICRvcHRfZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QuYwor KwkgIGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKKysJICBpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0K KytFT0YKKysJICAkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0CisrCSAgaWYgJExUQ0MgJExU Q0ZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGRlcGxpYnM7IHRoZW4KKysJICAgIGxkZF9v dXRwdXQ9YGxkZCBjb25mdGVzdGAKKysJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbworKwkgICAg ICBjYXNlICRpIGluCisrCSAgICAgIC1sKikKKysJCWZ1bmNfc3RyaXBuYW1lIC1sICcnICIkaSIK KysJCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkJaWYgdGVzdCAiWCRhbGxvd19saWJ0 b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkJICBjYXNl ICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJCSAgKiIgJGkgIiopCisrCQkgICAgbmV3ZGVw bGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQkgICAgaT0iIgorKwkJICAgIDs7CisrCQkgIGVzYWMK KysJCWZpCisrCQlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCisrCQkgIGxpYm5hbWU9YGV2YWwgIlxc JEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAorKwkJICBkZXBsaWJfbWF0Y2hlcz1gZXZhbCAiXFwk RUNITyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcIiJgCisrCQkgIHNldCBkdW1teSAkZGVwbGliX21h dGNoZXM7IHNoaWZ0CisrCQkgIGRlcGxpYl9tYXRjaD0kMQorKwkJICBpZiB0ZXN0IGBleHByICIk bGRkX291dHB1dCIgOiAiLiokZGVwbGliX21hdGNoImAgLW5lIDAgOyB0aGVuCisrCQkgICAgbmV3 ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQkgIGVsc2UKKysJCSAgICBkcm9wcGVkZGVwcz15 ZXMKKysJCSAgICAkRUNITworKwkJICAgICRFQ0hPICIqKiogV2FybmluZzogZHluYW1pYyBsaW5r ZXIgZG9lcyBub3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIKKysJCSAgICAkRUNITyAiKioq IEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5 IGxpbmsgaW4gd2hlbiIKKysJCSAgICAkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFy eS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKysJCSAgICAkRUNITyAi KioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCBJIGJlbGlldmUgeW91IGRv IG5vdCBoYXZlIgorKwkJICAgICRFQ0hPICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQg cmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSBpdCBmb3IiCisrCQkgICAgJEVDSE8g IioqKiBpdHMgZHluYW1pYyBkZXBlbmRlbmN5IGxpc3QgdGhhdCBwcm9ncmFtcyBnZXQgcmVzb2x2 ZWQgd2l0aCBhdCBydW50aW1lLiIKKysJCSAgZmkKKysJCWZpCisrCQk7OworKwkgICAgICAqKQor KwkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQk7OworKwkgICAgICBlc2FjCisrCSAg ICBkb25lCisrCSAgZWxzZQorKwkgICAgIyBFcnJvciBvY2N1cnJlZCBpbiB0aGUgZmlyc3QgY29t cGlsZS4gIExldCdzIHRyeSB0byBzYWx2YWdlCisrCSAgICAjIHRoZSBzaXR1YXRpb246IENvbXBp bGUgYSBzZXBhcmF0ZSBwcm9ncmFtIGZvciBlYWNoIGxpYnJhcnkuCisrCSAgICBmb3IgaSBpbiAk ZGVwbGliczsgZG8KKysJICAgICAgY2FzZSAkaSBpbgorKwkgICAgICAtbCopCisrCQlmdW5jX3N0 cmlwbmFtZSAtbCAnJyAiJGkiCisrCQluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJCSRv cHRfZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QKKysJCWlmICRMVENDICRMVENGTEFHUyAtbyBjb25m dGVzdCBjb25mdGVzdC5jICRpOyB0aGVuCisrCQkgIGxkZF9vdXRwdXQ9YGxkZCBjb25mdGVzdGAK KysJCSAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMi ID0gIlh5ZXMiIDsgdGhlbgorKwkJICAgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgor KwkJICAgICoiICRpICIqKQorKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisr CQkgICAgICBpPSIiCisrCQkgICAgICA7OworKwkJICAgIGVzYWMKKysJCSAgZmkKKysJCSAgaWYg dGVzdCAtbiAiJGkiIDsgdGhlbgorKwkJICAgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGli bmFtZV9zcGVjXCIiYAorKwkJICAgIGRlcGxpYl9tYXRjaGVzPWBldmFsICJcXCRFQ0hPIFwiJGxp YnJhcnlfbmFtZXNfc3BlY1wiImAKKysJCSAgICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzOyBz aGlmdAorKwkJICAgIGRlcGxpYl9tYXRjaD0kMQorKwkJICAgIGlmIHRlc3QgYGV4cHIgIiRsZGRf b3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KKysJCSAgICAgIG5ld2Rl cGxpYnM9IiRuZXdkZXBsaWJzICRpIgorKwkJICAgIGVsc2UKKysJCSAgICAgIGRyb3BwZWRkZXBz PXllcworKwkJICAgICAgJEVDSE8KKysJCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogZHluYW1p YyBsaW5rZXIgZG9lcyBub3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIKKysJCSAgICAgICRF Q0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9t YXRpY2FsbHkgbGluayBpbiB3aGVuIgorKwkJICAgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0 aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisrCQkg ICAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3Ug ZG8gbm90IGFwcGVhciB0byBoYXZlIgorKwkJICAgICAgJEVDSE8gIioqKiBiZWNhdXNlIGEgdGVz dF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIHRoaXMgb25l IgorKwkJICAgICAgJEVDSE8gIioqKiBhcyBhIGR5bmFtaWMgZGVwZW5kZW5jeSB0aGF0IHByb2dy YW1zIGNhbiBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKKysJCSAgICBmaQorKwkJICBm aQorKwkJZWxzZQorKwkJICBkcm9wcGVkZGVwcz15ZXMKKysJCSAgJEVDSE8KKysJCSAgJEVDSE8g IioqKiBXYXJuaW5nISAgTGlicmFyeSAkaSBpcyBuZWVkZWQgYnkgdGhpcyBsaWJyYXJ5IGJ1dCBJ IHdhcyBub3QgYWJsZSB0byIKKysJCSAgJEVDSE8gIioqKiBtYWtlIGl0IGxpbmsgaW4hICBZb3Ug d2lsbCBwcm9iYWJseSBuZWVkIHRvIGluc3RhbGwgaXQgb3Igc29tZSIKKysJCSAgJEVDSE8gIioq KiBsaWJyYXJ5IHRoYXQgaXQgZGVwZW5kcyBvbiBiZWZvcmUgdGhpcyBsaWJyYXJ5IHdpbGwgYmUg ZnVsbHkiCisrCQkgICRFQ0hPICIqKiogZnVuY3Rpb25hbC4gIEluc3RhbGxpbmcgaXQgYmVmb3Jl IGNvbnRpbnVpbmcgd291bGQgYmUgZXZlbiBiZXR0ZXIuIgorKwkJZmkKKysJCTs7CisrCSAgICAg ICopCisrCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJCTs7CisrCSAgICAgIGVzYWMK KysJICAgIGRvbmUKKysJICBmaQorKwkgIDs7CisrCWZpbGVfbWFnaWMqKQorKwkgIHNldCBkdW1t eSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0CisrCSAgZmlsZV9tYWdpY19yZWdleD1gZXhw ciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAorKwkgIGZvciBhX2RlcGxp YiBpbiAkZGVwbGliczsgZG8KKysJICAgIGNhc2UgJGFfZGVwbGliIGluCisrCSAgICAtbCopCisr CSAgICAgIGZ1bmNfc3RyaXBuYW1lIC1sICcnICIkYV9kZXBsaWIiCisrCSAgICAgIG5hbWU9JGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGli c193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCQljYXNlICIgJHByZWRl cHMgJHBvc3RkZXBzICIgaW4KKysJCSoiICRhX2RlcGxpYiAiKikKKysJCSAgbmV3ZGVwbGlicz0i JG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkJICBhX2RlcGxpYj0iIgorKwkJICA7OworKwkJZXNh YworKwkgICAgICBmaQorKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgorKwkJ bGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisrCQlmb3IgaSBpbiAk bGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aDsg ZG8KKysJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxg CisrCQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KKysJCSAgICAgICMg Rm9sbG93IHNvZnQgbGlua3MuCisrCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIgMj4v ZGV2L251bGwgfAorKwkJCSAkR1JFUCAiIC0+ICIgPi9kZXYvbnVsbDsgdGhlbgorKwkJCWNvbnRp bnVlCisrCQkgICAgICBmaQorKwkJICAgICAgIyBUaGUgc3RhdGVtZW50IGFib3ZlIHRyaWVzIHRv IGF2b2lkIGVudGVyaW5nIGFuCisrCQkgICAgICAjIGVuZGxlc3MgbG9vcCBiZWxvdywgaW4gY2Fz ZSBvZiBjeWNsaWMgbGlua3MuCisrCQkgICAgICAjIFdlIG1pZ2h0IHN0aWxsIGVudGVyIGFuIGVu ZGxlc3MgbG9vcCwgc2luY2UgYSBsaW5rCisrCQkgICAgICAjIGxvb3AgY2FuIGJlIGNsb3NlZCB3 aGlsZSB3ZSBmb2xsb3cgbGlua3MsCisrCQkgICAgICAjIGJ1dCBzbyB3aGF0PworKwkJICAgICAg cG90bGliPSIkcG90ZW50X2xpYiIKKysJCSAgICAgIHdoaWxlIHRlc3QgLWggIiRwb3RsaWIiIDI+ L2Rldi9udWxsOyBkbworKwkJCXBvdGxpYmxpbms9YGxzIC1sZCAkcG90bGliIHwgJHtTRUR9ICdz Ly4qIC0+IC8vJ2AKKysJCQljYXNlICRwb3RsaWJsaW5rIGluCisrCQkJW1xcL10qIHwgW0EtWmEt el06W1xcL10qKSBwb3RsaWI9IiRwb3RsaWJsaW5rIjs7CisrCQkJKikgcG90bGliPWAkRUNITyAi WCRwb3RsaWIiIHwgJFhzZWQgLWUgJ3MsW14vXSokLCwnYCIkcG90bGlibGluayI7OworKwkJCWVz YWMKKysJCSAgICAgIGRvbmUKKysJCSAgICAgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwiXCRw b3RsaWJcIiAyPi9kZXYvbnVsbCB8CisrCQkJICRTRUQgLWUgMTBxIHwKKysJCQkgJEVHUkVQICIk ZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKysJCQluZXdkZXBsaWJzPSIkbmV3 ZGVwbGlicyAkYV9kZXBsaWIiCisrCQkJYV9kZXBsaWI9IiIKKysJCQlicmVhayAyCisrCQkgICAg ICBmaQorKwkJICBkb25lCisrCQlkb25lCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgLW4g IiRhX2RlcGxpYiIgOyB0aGVuCisrCQlkcm9wcGVkZGVwcz15ZXMKKysJCSRFQ0hPCisrCQkkRUNI TyAiKioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRvZXMgbm90IGhhdmUgcmVhbCBmaWxlIGZvciBs aWJyYXJ5ICRhX2RlcGxpYi4iCisrCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0 byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJCSRFQ0hP ICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBp ZiB5b3UgaGF2ZSBhIgorKwkJJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFy eSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKKysJCSRFQ0hPICIqKiogYmVjYXVz ZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5n IgorKwkJaWYgdGVzdCAteiAiJHBvdGxpYiIgOyB0aGVuCisrCQkgICRFQ0hPICIqKiogd2l0aCAk bGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIGZpbGUgbWFnaWMg dGVzdCkiCisrCQllbHNlCisrCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBhbmQgbm9uZSBv ZiB0aGUgY2FuZGlkYXRlcyBwYXNzZWQgYSBmaWxlIGZvcm1hdCB0ZXN0IgorKwkJICAkRUNITyAi KioqIHVzaW5nIGEgZmlsZSBtYWdpYy4gTGFzdCBmaWxlIGNoZWNrZWQ6ICRwb3RsaWIiCisrCQlm aQorKwkgICAgICBmaQorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgIyBBZGQgYSAtTCBh cmd1bWVudC4KKysJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkg ICAgICA7OworKwkgICAgZXNhYworKwkgIGRvbmUgIyBHb25lIHRocm91Z2ggYWxsIGRlcGxpYnMu CisrCSAgOzsKKysJbWF0Y2hfcGF0dGVybiopCisrCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNr X21ldGhvZDsgc2hpZnQKKysJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19j aGVja19tZXRob2QiIDogIiQxIFwoLipcKSJgCisrCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJz OyBkbworKwkgICAgY2FzZSAkYV9kZXBsaWIgaW4KKysJICAgIC1sKikKKysJICAgICAgZnVuY19z dHJpcG5hbWUgLWwgJycgIiRhX2RlcGxpYiIKKysJICAgICAgbmFtZT0kZnVuY19zdHJpcG5hbWVf cmVzdWx0CisrCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGlj X3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKysJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMg IiBpbgorKwkJKiIgJGFfZGVwbGliICIqKQorKwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAk YV9kZXBsaWIiCisrCQkgIGFfZGVwbGliPSIiCisrCQkgIDs7CisrCQllc2FjCisrCSAgICAgIGZp CisrCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisrCQlsaWJuYW1lPWBldmFs ICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKysJCWZvciBpIGluICRsaWJfc2VhcmNoX3Bh dGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoOyBkbworKwkJICBwb3Rl bnRpYWxfbGlicz1gbHMgJGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYvbnVsbGAKKysJCSAgZm9yIHBv dGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbworKwkJICAgIHBvdGxpYj0iJHBvdGVudF9s aWIiICMgc2VlIHN5bWxpbmstY2hlY2sgYWJvdmUgaW4gZmlsZV9tYWdpYyB0ZXN0CisrCQkgICAg aWYgZXZhbCAiXCRFQ0hPIFwiWCRwb3RlbnRfbGliXCIiIDI+L2Rldi9udWxsIHwgJFhzZWQgLWUg MTBxIHwgXAorKwkJICAgICAgICRFR1JFUCAiJG1hdGNoX3BhdHRlcm5fcmVnZXgiID4gL2Rldi9u dWxsOyB0aGVuCisrCQkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisr CQkgICAgICBhX2RlcGxpYj0iIgorKwkJICAgICAgYnJlYWsgMgorKwkJICAgIGZpCisrCQkgIGRv bmUKKysJCWRvbmUKKysJICAgICAgZmkKKysJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7 IHRoZW4KKysJCWRyb3BwZWRkZXBzPXllcworKwkJJEVDSE8KKysJCSRFQ0hPICIqKiogV2Fybmlu ZzogbGlua2VyIHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFfZGVw bGliLiIKKysJCSRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBs aWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorKwkJJEVDSE8gIioqKiB5b3UgbGlu ayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEi CisrCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3Ug ZG8gbm90IGFwcGVhciB0byBoYXZlIgorKwkJJEVDSE8gIioqKiBiZWNhdXNlIEkgZGlkIGNoZWNr IHRoZSBsaW5rZXIgcGF0aCBsb29raW5nIGZvciBhIGZpbGUgc3RhcnRpbmciCisrCQlpZiB0ZXN0 IC16ICIkcG90bGliIiA7IHRoZW4KKysJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGJ1dCBu byBjYW5kaWRhdGVzIHdlcmUgZm91bmQuICguLi5mb3IgcmVnZXggcGF0dGVybiB0ZXN0KSIKKysJ CWVsc2UKKysJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGFuZCBub25lIG9mIHRoZSBjYW5k aWRhdGVzIHBhc3NlZCBhIGZpbGUgZm9ybWF0IHRlc3QiCisrCQkgICRFQ0hPICIqKiogdXNpbmcg YSByZWdleCBwYXR0ZXJuLiBMYXN0IGZpbGUgY2hlY2tlZDogJHBvdGxpYiIKKysJCWZpCisrCSAg ICAgIGZpCisrCSAgICAgIDs7CisrCSAgICAqKQorKwkgICAgICAjIEFkZCBhIC1MIGFyZ3VtZW50 LgorKwkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCSAgICAgIDs7 CisrCSAgICBlc2FjCisrCSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KKysJICA7 OworKwlub25lIHwgdW5rbm93biB8ICopCisrCSAgbmV3ZGVwbGlicz0iIgorKwkgIHRtcF9kZXBs aWJzPWAkRUNITyAiWCAkZGVwbGlicyIgfCAkWHNlZCBcCisrCSAgICAgIC1lICdzLyAtbGMkLy8n IC1lICdzLyAtW0xSXVteIF0qLy9nJ2AKKysJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGli c193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCSAgICBmb3IgaSBpbiAk cHJlZGVwcyAkcG9zdGRlcHMgOyBkbworKwkgICAgICAjIGNhbid0IHVzZSBYc2VkIGJlbG93LCBi ZWNhdXNlICRpIG1pZ2h0IGNvbnRhaW4gJy8nCisrCSAgICAgIHRtcF9kZXBsaWJzPWAkRUNITyAi WCAkdG1wX2RlcGxpYnMiIHwgJFhzZWQgLWUgInMsJGksLCJgCisrCSAgICBkb25lCisrCSAgZmkK KysJICBpZiAkRUNITyAiWCAkdG1wX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvWwkgXS8vZycgfAor KwkgICAgICRHUkVQIC4gPi9kZXYvbnVsbDsgdGhlbgorKwkgICAgJEVDSE8KKysJICAgIGlmIHRl c3QgIlgkZGVwbGlic19jaGVja19tZXRob2QiID0gIlhub25lIjsgdGhlbgorKwkgICAgICAkRUNI TyAiKioqIFdhcm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qgc3VwcG9y dGVkIGluIHRoaXMgcGxhdGZvcm0uIgorKwkgICAgZWxzZQorKwkgICAgICAkRUNITyAiKioqIFdh cm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qga25vd24gdG8gYmUgc3Vw cG9ydGVkLiIKKysJICAgIGZpCisrCSAgICAkRUNITyAiKioqIEFsbCBkZWNsYXJlZCBpbnRlci1s aWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgYmVpbmcgZHJvcHBlZC4iCisrCSAgICBkcm9wcGVkZGVw cz15ZXMKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJdmVyc3VmZml4PSR2ZXJzdWZmaXhfc2F2 ZQorKwltYWpvcj0kbWFqb3Jfc2F2ZQorKwlyZWxlYXNlPSRyZWxlYXNlX3NhdmUKKysJbGlibmFt ZT0kbGlibmFtZV9zYXZlCisrCW5hbWU9JG5hbWVfc2F2ZQorKworKwljYXNlICRob3N0IGluCisr CSotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKysJICAjIE9uIFJoYXBzb2R5IHJl cGxhY2UgdGhlIEMgbGlicmFyeSB3aXRoIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisrCSAgbmV3ZGVw bGlicz1gJEVDSE8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5s dGZyYW1ld29yayAvJ2AKKysJICA7OworKwllc2FjCisrCisrCWlmIHRlc3QgIiRkcm9wcGVkZGVw cyIgPSB5ZXM7IHRoZW4KKysJICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgorKwkgICAg JEVDSE8KKysJICAgICRFQ0hPICIqKiogV2FybmluZzogbGlidG9vbCBjb3VsZCBub3Qgc2F0aXNm eSBhbGwgZGVjbGFyZWQgaW50ZXItbGlicmFyeSIKKysJICAgICRFQ0hPICIqKiogZGVwZW5kZW5j aWVzIG9mIG1vZHVsZSAkbGlibmFtZS4gIFRoZXJlZm9yZSwgbGlidG9vbCB3aWxsIGNyZWF0ZSIK KysJICAgICRFQ0hPICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxv bmcgYXMgdGhlIGRsb3BlbmluZyIKKysJICAgICRFQ0hPICIqKiogYXBwbGljYXRpb24gaXMgbGlu a2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZy4iCisrCSAgICBpZiB0ZXN0IC16ICIkZ2xvYmFsX3N5 bWJvbF9waXBlIjsgdGhlbgorKwkgICAgICAkRUNITworKwkgICAgICAkRUNITyAiKioqIEhvd2V2 ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0cmFjdCBz eW1ib2wiCisrCSAgICAgICRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxg bm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgorKwkgICAgICAkRUNITyAiKioq IG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVz ZWxlc3MuIgorKwkgICAgICAkRUNITyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBh IGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCisrCSAgICBmaQorKwkgICAgaWYgdGVzdCAiJGJ1aWxk X29sZF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAgIG9sZGxpYnM9IiRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLiRsaWJleHQiCisrCSAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKysJICAg ICAgYnVpbGRfb2xkX2xpYnM9eWVzCisrCSAgICBlbHNlCisrCSAgICAgIGJ1aWxkX2xpYnRvb2xf bGlicz1ubworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICAkRUNITyAiKioqIFRoZSBpbnRlci1s aWJyYXJ5IGRlcGVuZGVuY2llcyB0aGF0IGhhdmUgYmVlbiBkcm9wcGVkIGhlcmUgd2lsbCBiZSIK KysJICAgICRFQ0hPICIqKiogYXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dyYW0g aXMgbGlua2VkIHdpdGggdGhpcyBsaWJyYXJ5IgorKwkgICAgJEVDSE8gIioqKiBvciBpcyBkZWNs YXJlZCB0byAtZGxvcGVuIGl0LiIKKysKKysJICAgIGlmIHRlc3QgIiRhbGxvd191bmRlZmluZWQi ID0gbm87IHRoZW4KKysJICAgICAgJEVDSE8KKysJICAgICAgJEVDSE8gIioqKiBTaW5jZSB0aGlz IGxpYnJhcnkgbXVzdCBub3QgY29udGFpbiB1bmRlZmluZWQgc3ltYm9scywiCisrCSAgICAgICRF Q0hPICIqKiogYmVjYXVzZSBlaXRoZXIgdGhlIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgdGhl bSBvciIKKysJICAgICAgJEVDSE8gIioqKiBpdCB3YXMgZXhwbGljaXRseSByZXF1ZXN0ZWQgd2l0 aCAtbm8tdW5kZWZpbmVkLCIKKysJICAgICAgJEVDSE8gIioqKiBsaWJ0b29sIHdpbGwgb25seSBj cmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBvZiBpdC4iCisrCSAgICAgIGlmIHRlc3QgIiRidWlsZF9v bGRfbGlicyIgPSBubzsgdGhlbgorKwkJb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu JGxpYmV4dCIKKysJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKysJCWJ1aWxkX29sZF9saWJz PXllcworKwkgICAgICBlbHNlCisrCQlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgICAgZmkK KysJICAgIGZpCisrCSAgZmkKKysJZmkKKysJIyBEb25lIGNoZWNraW5nIGRlcGxpYnMhCisrCWRl cGxpYnM9JG5ld2RlcGxpYnMKKysgICAgICBmaQorKyAgICAgICMgVGltZSB0byBjaGFuZ2UgYWxs IG91ciAiZm9vLmx0ZnJhbWV3b3JrIiBzdHVmZiBiYWNrIHRvICItZnJhbWV3b3JrIGZvbyIKKysg ICAgICBjYXNlICRob3N0IGluCisrCSotKi1kYXJ3aW4qKQorKwkgIG5ld2RlcGxpYnM9YCRFQ0hP ICJYICRuZXdkZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAt ZnJhbWV3b3JrIFwxJWcnYAorKwkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAi WCAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCku bHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCSAgZGVwbGlicz1gJEVDSE8gIlggJGRl cGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsg XDElZydgCisrCSAgOzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBtb3ZlIGxpYnJhcnkgc2Vh cmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0CisrICAgICAgIyBp bnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNo IGxpc3QKKysgICAgICBuZXdfbGlicz0KKysgICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRo OyBkbworKwljYXNlICIgJG5ld19saWJzICIgaW4KKysJKiIgLUwkcGF0aC8kb2JqZGlyICIqKSA7 OworKwkqKQorKwkgIGNhc2UgIiAkZGVwbGlicyAiIGluCisrCSAgKiIgLUwkcGF0aC8kb2JqZGly ICIqKQorKwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7CisrCSAg ZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBkb25lCisrICAgICAgZm9yIGRlcGxpYiBpbiAk ZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGluCisrCS1MKikKKysJICBjYXNlICIgJG5ld19s aWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7OworKwkgICopIG5ld19saWJzPSIkbmV3X2xp YnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJKikgbmV3X2xpYnM9IiRuZXdfbGli cyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGRlcGxpYnM9IiRuZXdf bGlicyIKKysKKysgICAgICAjIEFsbCB0aGUgbGlicmFyeS1zcGVjaWZpYyB2YXJpYWJsZXMgKGlu c3RhbGxfbGliZGlyIGlzIHNldCBhYm92ZSkuCisrICAgICAgbGlicmFyeV9uYW1lcz0KKysgICAg ICBvbGRfbGlicmFyeT0KKysgICAgICBkbG5hbWU9CisrCisrICAgICAgIyBUZXN0IGFnYWluLCB3 ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkgbW9yZQorKyAgICAgIGlmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWlmIHRlc3QgIiRoYXJkY29k ZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRo cworKwkgIGhhcmRjb2RlX2xpYmRpcnM9CisrCSAgZGVwX3JwYXRoPQorKwkgIHJwYXRoPSIkZmlu YWxpemVfcnBhdGgiCisrCSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBp bGVfcnBhdGgkcnBhdGgiCisrCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCisrCSAgICBpZiB0 ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgICAgaWYgdGVz dCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCQlpZiB0ZXN0IC16ICIk aGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJCSAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIK KysJCWVsc2UKKysJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorKwkJ ICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkJICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y JGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisrCQkgICAgOzsKKysJCSAgKikK KysJCSAgICBoYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yJGxpYmRpciIKKysJCSAgICA7OworKwkJICBlc2FjCisrCQlmaQorKwkgICAg ICBlbHNlCisrCQlldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCQlk ZXBfcnBhdGg9IiRkZXBfcnBhdGggJGZsYWciCisrCSAgICAgIGZpCisrCSAgICBlbGlmIHRlc3Qg LW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJICAgICAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgor KwkgICAgICAqIiAkbGliZGlyICIqKSA7OworKwkgICAgICAqKSBwZXJtX3JwYXRoPSIkcGVybV9y cGF0aCAkbGliZGlyIiA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGRvbmUKKysJICAj IFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgorKwkgIGlm IHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorKwkgICAgIHRlc3QgLW4g IiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorKwkgICAgbGliZGlyPSIkaGFyZGNvZGVfbGliZGly cyIKKysJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIjsgdGhl bgorKwkgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xk XCIKKysJICAgIGVsc2UKKysJICAgICAgZXZhbCBkZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY1wiCisrCSAgICBmaQorKwkgIGZpCisrCSAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhf dmFyIiAmJiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KKysJICAgICMgV2Ugc2hvdWxkIHNl dCB0aGUgcnVucGF0aF92YXIuCisrCSAgICBycGF0aD0KKysJICAgIGZvciBkaXIgaW4gJHBlcm1f cnBhdGg7IGRvCisrCSAgICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICAgIGRvbmUKKysJICAg IGV2YWwgIiRydW5wYXRoX3Zhcj0nJHJwYXRoXCQkcnVucGF0aF92YXInOyBleHBvcnQgJHJ1bnBh dGhfdmFyIgorKwkgIGZpCisrCSAgdGVzdCAtbiAiJGRlcF9ycGF0aCIgJiYgZGVwbGlicz0iJGRl cF9ycGF0aCAkZGVwbGlicyIKKysJZmkKKysKKysJc2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJw YXRoIgorKwl0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rICYmIHNobGlicGF0aD0iJGNvbXBpbGVfc2hs aWJwYXRoJHNobGlicGF0aCIKKysJaWYgdGVzdCAtbiAiJHNobGlicGF0aCI7IHRoZW4KKysJICBl dmFsICIkc2hsaWJwYXRoX3Zhcj0nJHNobGlicGF0aFwkJHNobGlicGF0aF92YXInOyBleHBvcnQg JHNobGlicGF0aF92YXIiCisrCWZpCisrCisrCSMgR2V0IHRoZSByZWFsIGFuZCBsaW5rIG5hbWVz IG9mIHRoZSBsaWJyYXJ5LgorKwlldmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgorKwll dmFsIGxpYnJhcnlfbmFtZXM9XCIkbGlicmFyeV9uYW1lc19zcGVjXCIKKysJc2V0IGR1bW15ICRs aWJyYXJ5X25hbWVzCisrCXNoaWZ0CisrCXJlYWxuYW1lPSIkMSIKKysJc2hpZnQKKysKKysJaWYg dGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgorKwkgIGV2YWwgc29uYW1lPVwiJHNvbmFtZV9z cGVjXCIKKysJZWxzZQorKwkgIHNvbmFtZT0iJHJlYWxuYW1lIgorKwlmaQorKwlpZiB0ZXN0IC16 ICIkZGxuYW1lIjsgdGhlbgorKwkgIGRsbmFtZT0kc29uYW1lCisrCWZpCisrCisrCWxpYj0iJG91 dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgorKwlsaW5rbmFtZXM9CisrCWZvciBsaW5rCisrCWRvCisr CSAgbGlua25hbWVzPSIkbGlua25hbWVzICRsaW5rIgorKwlkb25lCisrCisrCSMgVXNlIHN0YW5k YXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCisrCXRlc3QgLXogIiRwaWNfZmxhZyIgJiYgbGli b2Jqcz1gJEVDSE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5M MlNQYAorKwl0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKworKwlkZWxmaWxl cz0KKysJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkaW5jbHVkZV9l eHBzeW1zIjsgdGhlbgorKwkgICRvcHRfZHJ5X3J1biB8fCBjcCAiJGV4cG9ydF9zeW1ib2xzIiAi JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudWV4cCIKKysJICBleHBvcnRfc3ltYm9scz0iJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUudWV4cCIKKysJICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRf c3ltYm9scyIKKysJZmkKKysKKysJb3JpZ19leHBvcnRfc3ltYm9scz0KKysJY2FzZSAkaG9zdF9v cyBpbgorKwljeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQorKwkgIGlmIHRlc3QgLW4gIiRleHBv cnRfc3ltYm9scyIgJiYgdGVzdCAteiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkg ICAgIyBleHBvcnRpbmcgdXNpbmcgdXNlciBzdXBwbGllZCBzeW1maWxlCisrCSAgICBpZiB0ZXN0 ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgIT0geEVYUE9SVFM7IHRoZW4KKysJICAgICAg IyBhbmQgaXQncyBOT1QgYWxyZWFkeSBhIC5kZWYgZmlsZS4gTXVzdCBmaWd1cmUgb3V0CisrCSAg ICAgICMgd2hpY2ggb2YgdGhlIGdpdmVuIHN5bWJvbHMgYXJlIGRhdGEgc3ltYm9scyBhbmQgdGFn CisrCSAgICAgICMgdGhlbSBhcyBzdWNoLiBTbywgdHJpZ2dlciB1c2Ugb2YgZXhwb3J0X3N5bWJv bHNfY21kcy4KKysJICAgICAgIyBleHBvcnRfc3ltYm9scyBnZXRzIHJlYXNzaWduZWQgaW5zaWRl IHRoZSAicHJlcGFyZQorKwkgICAgICAjIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMiIGlm IHN0YXRlbWVudCwgc28gdGhlCisrCSAgICAgICMgaW5jbHVkZV9leHBzeW1zIGxvZ2ljIHN0aWxs IHdvcmtzLgorKwkgICAgICBvcmlnX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCisr CSAgICAgIGV4cG9ydF9zeW1ib2xzPQorKwkgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9eWVz CisrCSAgICBmaQorKwkgIGZpCisrCSAgOzsKKysJZXNhYworKworKwkjIFByZXBhcmUgdGhlIGxp c3Qgb2YgZXhwb3J0ZWQgc3ltYm9scworKwlpZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMiOyB0 aGVuCisrCSAgaWYgdGVzdCAiJGFsd2F5c19leHBvcnRfc3ltYm9scyIgPSB5ZXMgfHwgdGVzdCAt biAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICAgZnVuY192ZXJib3NlICJnZW5l cmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyIKKysJICAgIGV4cG9ydF9zeW1i b2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS5leHAiCisrCSAgICAkb3B0X2RyeV9ydW4gfHwg JFJNICRleHBvcnRfc3ltYm9scworKwkgICAgY21kcz0kZXhwb3J0X3N5bWJvbHNfY21kcworKwkg ICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCSAgICBmb3IgY21kIGluICRjbWRzOyBkbwor KwkgICAgICBJRlM9IiRzYXZlX2lmcyIKKysJICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKKysJICAg ICAgZnVuY19sZW4gIiAkY21kIgorKwkgICAgICBsZW49JGZ1bmNfbGVuX3Jlc3VsdAorKwkgICAg ICBpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVu IiAtbGUgLTE7IHRoZW4KKysJCWZ1bmNfc2hvd19ldmFsICIkY21kIiAnZXhpdCAkPycKKysJCXNr aXBwZWRfZXhwb3J0PWZhbHNlCisrCSAgICAgIGVsc2UKKysJCSMgVGhlIGNvbW1hbmQgbGluZSBp cyB0b28gbG9uZyB0byBleGVjdXRlIGluIG9uZSBzdGVwLgorKwkJZnVuY192ZXJib3NlICJ1c2lu ZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlIGZvciBleHBvcnQgbGlzdC4uLiIKKysJCXNraXBwZWRf ZXhwb3J0PToKKysJCSMgQnJlYWsgb3V0IGVhcmx5LCBvdGhlcndpc2Ugc2tpcHBlZF9leHBvcnQg bWF5IGJlCisrCQkjIHNldCB0byBmYWxzZSBieSBhIGxhdGVyIGJ1dCBzaG9ydGVyIGNtZC4KKysJ CWJyZWFrCisrCSAgICAgIGZpCisrCSAgICBkb25lCisrCSAgICBJRlM9IiRzYXZlX2lmcyIKKysJ ICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgdGVzdCAiWCRza2lwcGVk X2V4cG9ydCIgIT0gIlg6IjsgdGhlbgorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJEVHUkVQIC1l ICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkZXhwb3J0X3N5bWJvbHMiID4gIiR7ZXhwb3J0X3N5 bWJvbHN9VCInCisrCSAgICAgIGZ1bmNfc2hvd19ldmFsICckTVYgIiR7ZXhwb3J0X3N5bWJvbHN9 VCIgIiRleHBvcnRfc3ltYm9scyInCisrCSAgICBmaQorKwkgIGZpCisrCWZpCisrCisrCWlmIHRl c3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRo ZW4KKysJICB0bXBfZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKKysJICB0ZXN0IC1u ICIkb3JpZ19leHBvcnRfc3ltYm9scyIgJiYgdG1wX2V4cG9ydF9zeW1ib2xzPSIkb3JpZ19leHBv cnRfc3ltYm9scyIKKysJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIlgkaW5jbHVkZV9l eHBzeW1zIiB8ICRYc2VkIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKKysJZmkK KysKKysJaWYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0IC1uICIkb3Jp Z19leHBvcnRfc3ltYm9scyI7IHRoZW4KKysJICAjIFRoZSBnaXZlbiBleHBvcnRzX3N5bWJvbHMg ZmlsZSBoYXMgdG8gYmUgZmlsdGVyZWQsIHNvIGZpbHRlciBpdC4KKysJICBmdW5jX3ZlcmJvc2Ug ImZpbHRlciBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYScgdG8gdGFnIERBVEEgZXhwb3J0 cyIKKysJICAjIEZJWE1FOiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgcG90ZW50aWFs bHkgY29udGFpbnMgbG90cyBvZgorKwkgICMgJ3MnIGNvbW1hbmRzIHdoaWNoIG5vdCBhbGwgc2Vk cyBjYW4gaGFuZGxlLiBHTlUgc2VkIHNob3VsZCBiZSBmaW5lCisrCSAgIyB0aG91Z2guIEFsc28s IHRoZSBmaWx0ZXIgc2NhbGVzIHN1cGVybGluZWFybHkgd2l0aCB0aGUgbnVtYmVyIG9mCisrCSAg IyBnbG9iYWwgdmFyaWFibGVzLiBqb2luKDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IHVuZm9y dHVuYXRlbHkKKysJICAjIGlzbid0IGEgYmxlc3NlZCB0b29sLgorKwkgICRvcHRfZHJ5X3J1biB8 fCAkU0VEIC1lICcvWyAsXURBVEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFcMnws JyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlcgorKwkg IGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLmZpbHRlciIKKysJICBleHBvcnRfc3ltYm9scz0kb3V0cHV0X29iamRpci8kbGlibmFtZS5k ZWYKKysJICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5m aWx0ZXIgPCAkb3JpZ19leHBvcnRfc3ltYm9scyA+ICRleHBvcnRfc3ltYm9scworKwlmaQorKwor Kwl0bXBfZGVwbGlicz0KKysJZm9yIHRlc3RfZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkgIGNh c2UgIiAkY29udmVuaWVuY2UgIiBpbgorKwkgICoiICR0ZXN0X2RlcGxpYiAiKikgOzsKKysJICAq KQorKwkgICAgdG1wX2RlcGxpYnM9IiR0bXBfZGVwbGlicyAkdGVzdF9kZXBsaWIiCisrCSAgICA7 OworKwkgIGVzYWMKKysJZG9uZQorKwlkZXBsaWJzPSIkdG1wX2RlcGxpYnMiCisrCisrCWlmIHRl c3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KKysJICBpZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMiICYmCisrCSAgICB0ZXN0ICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiA9IHll cyAmJgorKwkgICAgdGVzdCAteiAiJGxpYm9ianMiOyB0aGVuCisrCSAgICAjIGV4dHJhY3QgdGhl IGFyY2hpdmVzLCBzbyB3ZSBoYXZlIG9iamVjdHMgdG8gbGlzdC4KKysJICAgICMgVE9ETzogY291 bGQgb3B0aW1pemUgdGhpcyB0byBqdXN0IGV4dHJhY3Qgb25lIGFyY2hpdmUuCisrCSAgICB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysJICBmaQorKwkgIGlmIHRlc3QgLW4gIiR3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgIHNhdmVfbGlib2Jqcz0kbGlib2JqcworKwkgICAg ZXZhbCBsaWJvYmpzPVwiXCRsaWJvYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCisrCSAg ICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKwkgIGVsc2UKKysJICAgIGdl bnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCisrCSAgICBnZW5lcmF0ZWQ9IiRn ZW5lcmF0ZWQgJGdlbnRvcCIKKysKKysJICAgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9w ICRjb252ZW5pZW5jZQorKwkgICAgbGlib2Jqcz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFjdF9hcmNo aXZlc19yZXN1bHQiCisrCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQor KwkgIGZpCisrCWZpCisrCisrCWlmIHRlc3QgIiR0aHJlYWRfc2FmZSIgPSB5ZXMgJiYgdGVzdCAt biAiJHRocmVhZF9zYWZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICBldmFsIGZsYWc9XCIkdGhyZWFk X3NhZmVfZmxhZ19zcGVjXCIKKysJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJGZsYWci CisrCWZpCisrCisrCSMgTWFrZSBhIGJhY2t1cCBvZiB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSB3 aGVuIHJlbGlua2luZworKwlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJICAkb3B0 X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRSTSAke3JlYWxuYW1lfVUg JiYgJE1WICRyZWFsbmFtZSAke3JlYWxuYW1lfVUpJyB8fCBleGl0ICQ/CisrCWZpCisrCisrCSMg RG8gZWFjaCBvZiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KKysJaWYgdGVzdCAiJG1vZHVsZSIgPSB5 ZXMgJiYgdGVzdCAtbiAiJG1vZHVsZV9jbWRzIiA7IHRoZW4KKysJICBpZiB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0aGVuCisrCSAg ICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfZXhwc3ltX2NtZHNcIgorKwkgICAgY21kcz0kbW9k dWxlX2V4cHN5bV9jbWRzCisrCSAgZWxzZQorKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkbW9kdWxl X2NtZHNcIgorKwkgICAgY21kcz0kbW9kdWxlX2NtZHMKKysJICBmaQorKwllbHNlCisrCSAgaWYg dGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21k cyI7IHRoZW4KKysJICAgIGV2YWwgdGVzdF9jbWRzPVwiJGFyY2hpdmVfZXhwc3ltX2NtZHNcIgor KwkgICAgY21kcz0kYXJjaGl2ZV9leHBzeW1fY21kcworKwkgIGVsc2UKKysJICAgIGV2YWwgdGVz dF9jbWRzPVwiJGFyY2hpdmVfY21kc1wiCisrCSAgICBjbWRzPSRhcmNoaXZlX2NtZHMKKysJICBm aQorKwlmaQorKworKwlpZiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmCisrCSAg IGZ1bmNfbGVuICIgJHRlc3RfY21kcyIgJiYKKysJICAgbGVuPSRmdW5jX2xlbl9yZXN1bHQgJiYK KysJICAgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xl biIgLWxlIC0xOyB0aGVuCisrCSAgOgorKwllbHNlCisrCSAgIyBUaGUgY29tbWFuZCBsaW5lIGlz IHRvbyBsb25nIHRvIGxpbmsgaW4gb25lIHN0ZXAsIGxpbmsgcGllY2V3aXNlCisrCSAgIyBvciwg aWYgdXNpbmcgR05VIGxkIGFuZCBza2lwcGVkX2V4cG9ydCBpcyBub3QgOiwgdXNlIGEgbGlua2Vy CisrCSAgIyBzY3JpcHQuCisrCisrCSAgIyBTYXZlIHRoZSB2YWx1ZSBvZiAkb3V0cHV0IGFuZCAk bGlib2JqcyBiZWNhdXNlIHdlIHdhbnQgdG8KKysJICAjIHVzZSB0aGVtIGxhdGVyLiAgSWYgd2Ug aGF2ZSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgd2UKKysJICAjIHdhbnQgdG8gdXNlIHNhdmVf bGlib2JqcyBhcyBpdCB3YXMgYmVmb3JlCisrCSAgIyB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyB3 YXMgZXhwYW5kZWQsIGJlY2F1c2Ugd2UgY2FuJ3QKKysJICAjIGFzc3VtZSB0aGUgbGlua2VyIHVu ZGVyc3RhbmRzIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLgorKwkgICMgVGhpcyBtYXkgaGF2ZSB0 byBiZSByZXZpc2l0ZWQsIGluIGNhc2UgdG9vIG1hbnkKKysJICAjIGNvbnZlbmllbmNlIGxpYnJh cmllcyBnZXQgbGlua2VkIGluIGFuZCBlbmQgdXAgZXhjZWVkaW5nCisrCSAgIyB0aGUgc3BlYy4K KysJICBpZiB0ZXN0IC16ICIkY29udmVuaWVuY2UiIHx8IHRlc3QgLXogIiR3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgIHNhdmVfbGlib2Jqcz0kbGlib2JqcworKwkgIGZpCisr CSAgc2F2ZV9vdXRwdXQ9JG91dHB1dAorKwkgIG91dHB1dF9sYT1gJEVDSE8gIlgkb3V0cHV0IiB8 ICRYc2VkIC1lICIkYmFzZW5hbWUiYAorKworKwkgICMgQ2xlYXIgdGhlIHJlbG9hZGFibGUgb2Jq ZWN0IGNyZWF0aW9uIGNvbW1hbmQgcXVldWUgYW5kCisrCSAgIyBpbml0aWFsaXplIGsgdG8gb25l LgorKwkgIHRlc3RfY21kcz0KKysJICBjb25jYXRfY21kcz0KKysJICBvYmpsaXN0PQorKwkgIGxh c3Rfcm9iaj0KKysJICBrPTEKKysKKysJICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0 ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5 ZXM7IHRoZW4KKysJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5sbmtz Y3JpcHQKKysJICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgR05VIGxkIHNjcmlwdDogJG91dHB1 dCIKKysJICAgICRFQ0hPICdJTlBVVCAoJyA+ICRvdXRwdXQKKysJICAgIGZvciBvYmogaW4gJHNh dmVfbGlib2JqcworKwkgICAgZG8KKysJICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKKysJ ICAgIGRvbmUKKysJICAgICRFQ0hPICcpJyA+PiAkb3V0cHV0CisrCSAgICBkZWxmaWxlcz0iJGRl bGZpbGVzICRvdXRwdXQiCisrCSAgZWxpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0ZXN0 ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIlgkZmlsZV9saXN0X3NwZWMiICE9 IFg7IHRoZW4KKysJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5sbmsK KysJICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgbGlua2VyIGlucHV0IGZpbGUgbGlzdDogJG91 dHB1dCIKKysJICAgIDogPiAkb3V0cHV0CisrCSAgICBzZXQgeCAkc2F2ZV9saWJvYmpzCisrCSAg ICBzaGlmdAorKwkgICAgZmlyc3RvYmo9CisrCSAgICBpZiB0ZXN0ICIkY29tcGlsZXJfbmVlZHNf b2JqZWN0IiA9IHllczsgdGhlbgorKwkgICAgICBmaXJzdG9iaj0iJDEgIgorKwkgICAgICBzaGlm dAorKwkgICAgZmkKKysJICAgIGZvciBvYmoKKysJICAgIGRvCisrCSAgICAgICRFQ0hPICIkb2Jq IiA+PiAkb3V0cHV0CisrCSAgICBkb25lCisrCSAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRvdXRw dXQiCisrCSAgICBvdXRwdXQ9JGZpcnN0b2JqXCIkZmlsZV9saXN0X3NwZWMkb3V0cHV0XCIKKysJ ICBlbHNlCisrCSAgICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIjsgdGhlbgorKwkgICAgICBm dW5jX3ZlcmJvc2UgImNyZWF0aW5nIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLi4uIgorKwkgICAg ICBvdXRwdXQ9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKKysJICAgICAg ZXZhbCB0ZXN0X2NtZHM9XCIkcmVsb2FkX2NtZHNcIgorKwkgICAgICBmdW5jX2xlbiAiICR0ZXN0 X2NtZHMiCisrCSAgICAgIGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAorKwkgICAgICBsZW49JGxlbjAK KysKKysJICAgICAgIyBMb29wIG92ZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBiZSBsaW5rZWQu CisrCSAgICAgIGZvciBvYmogaW4gJHNhdmVfbGlib2JqcworKwkgICAgICBkbworKwkJZnVuY19s ZW4gIiAkb2JqIgorKwkJZnVuY19hcml0aCAkbGVuICsgJGZ1bmNfbGVuX3Jlc3VsdAorKwkJbGVu PSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkJaWYgdGVzdCAiWCRvYmpsaXN0IiA9IFggfHwKKysJCSAg IHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIjsgdGhlbgorKwkJICBmdW5jX2FwcGVuZCBv YmpsaXN0ICIgJG9iaiIKKysJCWVsc2UKKysJCSAgIyBUaGUgY29tbWFuZCAkdGVzdF9jbWRzIGlz IGFsbW9zdCB0b28gbG9uZywgYWRkIGEKKysJCSAgIyBjb21tYW5kIHRvIHRoZSBxdWV1ZS4KKysJ CSAgaWYgdGVzdCAiJGsiIC1lcSAxIDsgdGhlbgorKwkJICAgICMgVGhlIGZpcnN0IGZpbGUgZG9l c24ndCBoYXZlIGEgcHJldmlvdXMgY29tbWFuZCB0byBhZGQuCisrCQkgICAgZXZhbCBjb25jYXRf Y21kcz1cIiRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKKysJCSAgZWxzZQorKwkJ ICAgICMgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMgd2lsbCBsaW5rIGlu CisrCQkgICAgIyB0aGUgbGFzdCBvbmUgY3JlYXRlZC4KKysJCSAgICBldmFsIGNvbmNhdF9jbWRz PVwiXCRjb25jYXRfY21kc34kcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ian5cJFJNICRs YXN0X3JvYmpcIgorKwkJICBmaQorKwkJICBsYXN0X3JvYmo9JG91dHB1dF9vYmpkaXIvJG91dHB1 dF9sYS0ke2t9LiRvYmpleHQKKysJCSAgZnVuY19hcml0aCAkayArIDEKKysJCSAgaz0kZnVuY19h cml0aF9yZXN1bHQKKysJCSAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4k b2JqZXh0CisrCQkgIG9iamxpc3Q9JG9iagorKwkJICBmdW5jX2xlbiAiICRsYXN0X3JvYmoiCisr CQkgIGZ1bmNfYXJpdGggJGxlbjAgKyAkZnVuY19sZW5fcmVzdWx0CisrCQkgIGxlbj0kZnVuY19h cml0aF9yZXN1bHQKKysJCWZpCisrCSAgICAgIGRvbmUKKysJICAgICAgIyBIYW5kbGUgdGhlIHJl bWFpbmluZyBvYmplY3RzIGJ5IGNyZWF0aW5nIG9uZSBsYXN0CisrCSAgICAgICMgcmVsb2FkYWJs ZSBvYmplY3QgZmlsZS4gIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0CisrCSAgICAg ICMgZmlsZXMgd2lsbCBsaW5rIGluIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgorKwkgICAgICB0ZXN0 IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KKysJICAgICAg ZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfSRyZWxvYWRfY21kcyAkb2JqbGlzdCAk bGFzdF9yb2JqXCIKKysJICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rfcm9iaiI7IHRoZW4KKysJICAg ICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9flwkUk0gJGxhc3Rfcm9ialwi CisrCSAgICAgIGZpCisrCSAgICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKKysKKysJ ICAgIGVsc2UKKysJICAgICAgb3V0cHV0PQorKwkgICAgZmkKKysKKysJICAgIGlmICR7c2tpcHBl ZF9leHBvcnQtZmFsc2V9OyB0aGVuCisrCSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBz eW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCisrCSAgICAgIGV4cG9ydF9zeW1ib2xzPSIk b3V0cHV0X29iamRpci8kbGlibmFtZS5leHAiCisrCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0g JGV4cG9ydF9zeW1ib2xzCisrCSAgICAgIGxpYm9ianM9JG91dHB1dAorKwkgICAgICAjIEFwcGVu ZCB0aGUgY29tbWFuZCB0byBjcmVhdGUgdGhlIGV4cG9ydCBmaWxlLgorKwkgICAgICB0ZXN0IC16 ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KKysJICAgICAgZXZh bCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHMkZXhwb3J0X3N5bWJvbHNfY21kc1wiCisrCSAg ICAgIGlmIHRlc3QgLW4gIiRsYXN0X3JvYmoiOyB0aGVuCisrCQlldmFsIGNvbmNhdF9jbWRzPVwi XCRjb25jYXRfY21kc35cJFJNICRsYXN0X3JvYmpcIgorKwkgICAgICBmaQorKwkgICAgZmkKKysK KysJICAgIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmCisrCSAgICAgIGZ1bmNfdmVyYm9zZSAi Y3JlYXRpbmcgYSB0ZW1wb3JhcnkgcmVsb2FkYWJsZSBvYmplY3QgZmlsZTogJG91dHB1dCIKKysK KysJICAgICMgTG9vcCB0aHJvdWdoIHRoZSBjb21tYW5kcyBnZW5lcmF0ZWQgYWJvdmUgYW5kIGV4 ZWN1dGUgdGhlbS4KKysJICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkgICAgZm9yIGNt ZCBpbiAkY29uY2F0X2NtZHM7IGRvCisrCSAgICAgIElGUz0iJHNhdmVfaWZzIgorKwkgICAgICAk b3B0X3NpbGVudCB8fCB7CisrCQkgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJGNtZCIKKysJCSAg ZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgorKwkgICAgICB9 CisrCSAgICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8fCB7CisrCQlsdF9leGl0PSQ/ CisrCisrCQkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKKysJCWlm IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorKwkJICAoIGNkICIkb3V0cHV0X29iamRpciIg JiYgXAorKwkJICAgICRSTSAiJHtyZWFsbmFtZX1UIiAmJiBcCisrCQkgICAgJE1WICIke3JlYWxu YW1lfVUiICIkcmVhbG5hbWUiICkKKysJCWZpCisrCisrCQlleGl0ICRsdF9leGl0CisrCSAgICAg IH0KKysJICAgIGRvbmUKKysJICAgIElGUz0iJHNhdmVfaWZzIgorKworKwkgICAgaWYgdGVzdCAt biAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAmJiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhl bgorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVn ZXgiICIkZXhwb3J0X3N5bWJvbHMiID4gIiR7ZXhwb3J0X3N5bWJvbHN9VCInCisrCSAgICAgIGZ1 bmNfc2hvd19ldmFsICckTVYgIiR7ZXhwb3J0X3N5bWJvbHN9VCIgIiRleHBvcnRfc3ltYm9scyIn CisrCSAgICBmaQorKwkgIGZpCisrCisrICAgICAgICAgIGlmICR7c2tpcHBlZF9leHBvcnQtZmFs c2V9OyB0aGVuCisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4g IiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCisrCSAgICAgIHRtcF9leHBvcnRfc3ltYm9scz0iJGV4 cG9ydF9zeW1ib2xzIgorKwkgICAgICB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyIgJiYg dG1wX2V4cG9ydF9zeW1ib2xzPSIkb3JpZ19leHBvcnRfc3ltYm9scyIKKysJICAgICAgJG9wdF9k cnlfcnVuIHx8IGV2YWwgJyRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCB8ICRTUDJO TCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAt biAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisrCSAgICAgICMgVGhlIGdpdmVuIGV4cG9y dHNfc3ltYm9scyBmaWxlIGhhcyB0byBiZSBmaWx0ZXJlZCwgc28gZmlsdGVyIGl0LgorKwkgICAg ICBmdW5jX3ZlcmJvc2UgImZpbHRlciBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYScgdG8g dGFnIERBVEEgZXhwb3J0cyIKKysJICAgICAgIyBGSVhNRTogJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZmlsdGVyIHBvdGVudGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YKKysJICAgICAgIyAncycgY29t bWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdOVSBzZWQgc2hvdWxkIGJlIGZp bmUKKysJICAgICAgIyB0aG91Z2guIEFsc28sIHRoZSBmaWx0ZXIgc2NhbGVzIHN1cGVybGluZWFy bHkgd2l0aCB0aGUgbnVtYmVyIG9mCisrCSAgICAgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigx KSB3b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5CisrCSAgICAgICMgaXNuJ3Qg YSBibGVzc2VkIHRvb2wuCisrCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1lICcvWyAsXURB VEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFcMnwsJyA8ICRleHBvcnRfc3ltYm9s cyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlcgorKwkgICAgICBkZWxmaWxlcz0iJGRl bGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCisr CSAgICAgIGV4cG9ydF9zeW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgorKwkgICAg ICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIg PCAkb3JpZ19leHBvcnRfc3ltYm9scyA+ICRleHBvcnRfc3ltYm9scworKwkgICAgZmkKKysJICBm aQorKworKwkgIGxpYm9ianM9JG91dHB1dAorKwkgICMgUmVzdG9yZSB0aGUgdmFsdWUgb2Ygb3V0 cHV0LgorKwkgIG91dHB1dD0kc2F2ZV9vdXRwdXQKKysKKysJICBpZiB0ZXN0IC1uICIkY29udmVu aWVuY2UiICYmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAg IGV2YWwgbGlib2Jqcz1cIlwkbGlib2JqcyAkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgorKwkg ICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKysJICBmaQorKwkgICMgRXhw YW5kIHRoZSBsaWJyYXJ5IGxpbmtpbmcgY29tbWFuZHMgYWdhaW4gdG8gcmVzZXQgdGhlCisrCSAg IyB2YWx1ZSBvZiAkbGlib2JqcyBmb3IgcGllY2V3aXNlIGxpbmtpbmcuCisrCisrCSAgIyBEbyBl YWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgorKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVz ICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCisrCSAgICBpZiB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0aGVuCisrCSAg ICAgIGNtZHM9JG1vZHVsZV9leHBzeW1fY21kcworKwkgICAgZWxzZQorKwkgICAgICBjbWRzPSRt b2R1bGVfY21kcworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0 X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9jbWRzIjsgdGhlbgorKwkgICAg ICBjbWRzPSRhcmNoaXZlX2V4cHN5bV9jbWRzCisrCSAgICBlbHNlCisrCSAgICAgIGNtZHM9JGFy Y2hpdmVfY21kcworKwkgICAgZmkKKysJICBmaQorKwlmaQorKworKwlpZiB0ZXN0IC1uICIkZGVs ZmlsZXMiOyB0aGVuCisrCSAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8gcmVtb3ZlIHRlbXBvcmFy eSBmaWxlcyB0byAkY21kcy4KKysJICBldmFsIGNtZHM9XCJcJGNtZHN+XCRSTSAkZGVsZmlsZXNc IgorKwlmaQorKworKwkjIEFkZCBhbnkgb2JqZWN0cyBmcm9tIHByZWxvYWRlZCBjb252ZW5pZW5j ZSBsaWJyYXJpZXMKKysJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCisrCSAgZ2VudG9w PSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKysJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0 ZWQgJGdlbnRvcCIKKysKKysJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkZGxwcmVm aWxlcworKwkgIGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0 IgorKwkgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CisrCWZpCisrCisrCXNh dmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwlmb3IgY21kIGluICRjbWRzOyBkbworKwkgIElGUz0i JHNhdmVfaWZzIgorKwkgIGV2YWwgY21kPVwiJGNtZFwiCisrCSAgJG9wdF9zaWxlbnQgfHwgewor KwkgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkY21kIgorKwkgICAgZXZhbCAiZnVuY19lY2hv ICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgorKwkgIH0KKysJICAkb3B0X2RyeV9ydW4g fHwgZXZhbCAiJGNtZCIgfHwgeworKwkgICAgbHRfZXhpdD0kPworKworKwkgICAgIyBSZXN0b3Jl IHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0CisrCSAgICBpZiB0ZXN0ICIkbW9kZSIg PSByZWxpbms7IHRoZW4KKysJICAgICAgKCBjZCAiJG91dHB1dF9vYmpkaXIiICYmIFwKKysJICAg ICAgICAkUk0gIiR7cmVhbG5hbWV9VCIgJiYgXAorKwkJJE1WICIke3JlYWxuYW1lfVUiICIkcmVh bG5hbWUiICkKKysJICAgIGZpCisrCisrCSAgICBleGl0ICRsdF9leGl0CisrCSAgfQorKwlkb25l CisrCUlGUz0iJHNhdmVfaWZzIgorKworKwkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJh cnkgYW5kIGV4aXQKKysJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCSAgJG9wdF9k cnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkUk0gJHtyZWFsbmFtZX1UICYm ICRNViAkcmVhbG5hbWUgJHtyZWFsbmFtZX1UICYmICRNViAke3JlYWxuYW1lfVUgJHJlYWxuYW1l KScgfHwgZXhpdCAkPworKworKwkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KKysJ ICAgIGlmIHRlc3QgLXogIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgICAg ZnVuY19zaG93X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCisrCSAgICBmaQorKwkgIGZpCisrCisr CSAgZXhpdCAkRVhJVF9TVUNDRVNTCisrCWZpCisrCisrCSMgQ3JlYXRlIGxpbmtzIHRvIHRoZSBy ZWFsIGxpYnJhcnkuCisrCWZvciBsaW5rbmFtZSBpbiAkbGlua25hbWVzOyBkbworKwkgIGlmIHRl c3QgIiRyZWFsbmFtZSIgIT0gIiRsaW5rbmFtZSI7IHRoZW4KKysJICAgIGZ1bmNfc2hvd19ldmFs ICcoY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiAkUk0gIiRsaW5rbmFtZSIgJiYgJExOX1MgIiRyZWFs bmFtZSIgIiRsaW5rbmFtZSIpJyAnZXhpdCAkPycKKysJICBmaQorKwlkb25lCisrCisrCSMgSWYg LW1vZHVsZSBvciAtZXhwb3J0LWR5bmFtaWMgd2FzIHNwZWNpZmllZCwgc2V0IHRoZSBkbG5hbWUu CisrCWlmIHRlc3QgIiRtb2R1bGUiID0geWVzIHx8IHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5 ZXM7IHRoZW4KKysJICAjIE9uIGFsbCBrbm93biBvcGVyYXRpbmcgc3lzdGVtcywgdGhlc2UgYXJl IGlkZW50aWNhbC4KKysJICBkbG5hbWU9IiRzb25hbWUiCisrCWZpCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBvYmopCisrICAgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxl cyIgfHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KKysJZnVuY193YXJuaW5nICJcYC1kbG9w ZW4nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrICAgICAgZmkKKysKKysgICAgICBjYXNlICIg JGRlcGxpYnMiIGluCisrICAgICAgKlwgLWwqIHwgKlwgLUwqKQorKwlmdW5jX3dhcm5pbmcgIlxg LWwnIGFuZCBcYC1MJyBhcmUgaWdub3JlZCBmb3Igb2JqZWN0cyIgOzsKKysgICAgICBlc2FjCisr CisrICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtcnBhdGgn IGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrCisrICAgICAgdGVzdCAtbiAiJHhycGF0aCIgJiYg XAorKwlmdW5jX3dhcm5pbmcgIlxgLVInIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrCisrICAg ICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZv JyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgorKworKyAgICAgIHRlc3QgLW4gIiRyZWxlYXNlIiAm JiBcCisrCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIK KysKKysgICAgICBjYXNlICRvdXRwdXQgaW4KKysgICAgICAqLmxvKQorKwl0ZXN0IC1uICIkb2Jq cyRvbGRfZGVwbGlicyIgJiYgXAorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBidWlsZCBs aWJyYXJ5IG9iamVjdCBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyIKKysKKysJ bGlib2JqPSRvdXRwdXQKKysJZnVuY19sbzJvICIkbGlib2JqIgorKwlvYmo9JGZ1bmNfbG8yb19y ZXN1bHQKKysJOzsKKysgICAgICAqKQorKwlsaWJvYmo9CisrCW9iaj0iJG91dHB1dCIKKysJOzsK KysgICAgICBlc2FjCisrCisrICAgICAgIyBEZWxldGUgdGhlIG9sZCBvYmplY3RzLgorKyAgICAg ICRvcHRfZHJ5X3J1biB8fCAkUk0gJG9iaiAkbGlib2JqCisrCisrICAgICAgIyBPYmplY3RzIGZy b20gY29udmVuaWVuY2UgbGlicmFyaWVzLiAgVGhpcyBhc3N1bWVzCisrICAgICAgIyBzaW5nbGUt dmVyc2lvbiBjb252ZW5pZW5jZSBsaWJyYXJpZXMuICBXaGVuZXZlciB3ZSBjcmVhdGUKKysgICAg ICAjIGRpZmZlcmVudCBvbmVzIGZvciBQSUMvbm9uLVBJQywgdGhpcyB3ZSdsbCBoYXZlIHRvIGR1 cGxpY2F0ZQorKyAgICAgICMgdGhlIGV4dHJhY3Rpb24uCisrICAgICAgcmVsb2FkX2NvbnZfb2Jq cz0KKysgICAgICBnZW50b3A9CisrICAgICAgIyByZWxvYWRfY21kcyBydW5zICRMRCBkaXJlY3Rs eSwgc28gbGV0IHVzIGdldCByaWQgb2YKKysgICAgICAjIC1XbCBmcm9tIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjIGFuZCBob3BlIHdlIGNhbiBnZXQgYnkgd2l0aAorKyAgICAgICMgdHVybmluZyBj b21tYSBpbnRvIHNwYWNlLi4KKysgICAgICB3bD0KKysKKysgICAgICBpZiB0ZXN0IC1uICIkY29u dmVuaWVuY2UiOyB0aGVuCisrCWlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7 IHRoZW4KKysJICBldmFsIHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzPVwiJHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjXCIKKysJICByZWxvYWRfY29udl9vYmpzPSRyZWxvYWRfb2Jqc1wgYCRFQ0hPICJY JHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzIiB8ICRYc2VkIC1lICdzfCx8IHxnJ2AKKysJZWxzZQor KwkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvYmp9eCIKKysJICBnZW5lcmF0ZWQ9IiRnZW5l cmF0ZWQgJGdlbnRvcCIKKysKKysJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29u dmVuaWVuY2UKKysJICByZWxvYWRfY29udl9vYmpzPSIkcmVsb2FkX29ianMgJGZ1bmNfZXh0cmFj dF9hcmNoaXZlc19yZXN1bHQiCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIENyZWF0ZSB0 aGUgb2xkLXN0eWxlIG9iamVjdC4KKysgICAgICByZWxvYWRfb2Jqcz0iJG9ianMkb2xkX2RlcGxp YnMgImAkRUNITyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICcvXC4nJHtsaWJleHR9 JCcvZCcgLWUgJy9cLmxpYiQvZCcgLWUgIiRsbzJvIiB8ICROTDJTUGAiICRyZWxvYWRfY29udl9v YmpzIiAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKKysKKysgICAgICBv dXRwdXQ9IiRvYmoiCisrICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4 aXQgJD8nCisrCisrICAgICAgIyBFeGl0IGlmIHdlIGFyZW4ndCBkb2luZyBhIGxpYnJhcnkgb2Jq ZWN0IGZpbGUuCisrICAgICAgaWYgdGVzdCAteiAiJGxpYm9iaiI7IHRoZW4KKysJaWYgdGVzdCAt biAiJGdlbnRvcCI7IHRoZW4KKysJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicK KysJZmkKKysKKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgICAgZmkKKysKKysgICAgICBpZiB0 ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KKysJaWYgdGVzdCAtbiAiJGdl bnRvcCI7IHRoZW4KKysJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysJZmkK KysKKysJIyBDcmVhdGUgYW4gaW52YWxpZCBsaWJ0b29sIG9iamVjdCBpZiBubyBQSUMsIHNvIHRo YXQgd2UgZG9uJ3QKKysJIyBhY2NpZGVudGFsbHkgbGluayBpdCBpbnRvIGEgcHJvZ3JhbS4KKysJ IyAkc2hvdyAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2JqIgorKwkjICRvcHRfZHJ5X3J1biB8fCBl dmFsICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiIHx8IGV4aXQgJD8KKysJZXhpdCAkRVhJVF9T VUNDRVNTCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkcGljX2ZsYWciIHx8IHRl c3QgIiRwaWNfbW9kZSIgIT0gZGVmYXVsdDsgdGhlbgorKwkjIE9ubHkgZG8gY29tbWFuZHMgaWYg d2UgcmVhbGx5IGhhdmUgZGlmZmVyZW50IFBJQyBvYmplY3RzLgorKwlyZWxvYWRfb2Jqcz0iJGxp Ym9ianMgJHJlbG9hZF9jb252X29ianMiCisrCW91dHB1dD0iJGxpYm9iaiIKKysJZnVuY19leGVj dXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCisrICAgICAgZmkKKysKKysgICAgICBp ZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2Vu dG9wIicKKysgICAgICBmaQorKworKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICAgIDs7 CisrCisrICAgIHByb2cpCisrICAgICAgY2FzZSAkaG9zdCBpbgorKwkqY3lnd2luKikgZnVuY19z dHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0IgorKwkgICAgICAgICAgb3V0cHV0PSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQuZXhlOzsKKysgICAgICBlc2FjCisrICAgICAgdGVzdCAtbiAiJHZpbmZv IiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBw cm9ncmFtcyIKKysKKysgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorKwlmdW5jX3dhcm5p bmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIgorKworKyAgICAgIHRlc3Qg IiRwcmVsb2FkIiA9IHllcyBcCisrICAgICAgICAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0g dW5rbm93biBcCisrCSYmIHRlc3QgIiRkbG9wZW5fc2VsZiIgPSB1bmtub3duIFwKKysJJiYgdGVz dCAiJGRsb3Blbl9zZWxmX3N0YXRpYyIgPSB1bmtub3duICYmIFwKKysJICBmdW5jX3dhcm5pbmcg IlxgTFRfSU5JVChbZGxvcGVuXSknIG5vdCB1c2VkLiBBc3N1bWluZyBubyBkbG9wZW4gc3VwcG9y dC4iCisrCisrICAgICAgY2FzZSAkaG9zdCBpbgorKyAgICAgICotKi1yaGFwc29keSogfCAqLSot ZGFyd2luMS5bMDEyXSkKKysJIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgaXMg dGhlIFN5c3RlbSBmcmFtZXdvcmsKKysJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiWCAkY29tcGls ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCisr CWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1l ICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCisrCTs7CisrICAgICAgZXNhYworKwor KyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAqLSotZGFyd2luKikKKysJIyBEb24ndCBhbGxv dyBsYXp5IGxpbmtpbmcsIGl0IGJyZWFrcyBDKysgZ2xvYmFsIGNvbnN0cnVjdG9ycworKwkjIEJ1 dCBpcyBzdXBwb3NlZGx5IGZpeGVkIG9uIDEwLjQgb3IgbGF0ZXIgKHlheSEpLgorKwlpZiB0ZXN0 ICIkdGFnbmFtZSIgPSBDWFggOyB0aGVuCisrCSAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RB UkdFVC0xMC4wfSBpbgorKwkgICAgMTAuWzAxMjNdKQorKwkgICAgICBjb21waWxlX2NvbW1hbmQ9 IiRjb21waWxlX2NvbW1hbmQgJHt3bH0tYmluZF9hdF9sb2FkIgorKwkgICAgICBmaW5hbGl6ZV9j b21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAke3dsfS1iaW5kX2F0X2xvYWQiCisrCSAgICA7Owor KwkgIGVzYWMKKysJZmkKKysJIyBUaW1lIHRvIGNoYW5nZSBhbGwgb3VyICJmb28ubHRmcmFtZXdv cmsiIHN0dWZmIGJhY2sgdG8gIi1mcmFtZXdvcmsgZm9vIgorKwljb21waWxlX2RlcGxpYnM9YCRF Q0hPICJYICRjb21waWxlX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFt ZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJYICRm aW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAt ZnJhbWV3b3JrIFwxJWcnYAorKwk7OworKyAgICAgIGVzYWMKKysKKysKKysgICAgICAjIG1vdmUg bGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2luY2lkZSB3aXRoIHBhdGhzIHRvIG5vdCB5ZXQK KysgICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGli cmFyeSBzZWFyY2ggbGlzdAorKyAgICAgIG5ld19saWJzPQorKyAgICAgIGZvciBwYXRoIGluICRu b3RpbnN0X3BhdGg7IGRvCisrCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorKwkqIiAtTCRwYXRoLyRv YmpkaXIgIiopIDs7CisrCSopCisrCSAgY2FzZSAiICRjb21waWxlX2RlcGxpYnMgIiBpbgorKwkg ICoiIC1MJHBhdGgvJG9iamRpciAiKikKKysJICAgIG5ld19saWJzPSIkbmV3X2xpYnMgLUwkcGF0 aC8kb2JqZGlyIiA7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAg ICAgIGZvciBkZXBsaWIgaW4gJGNvbXBpbGVfZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGlu CisrCS1MKikKKysJICBjYXNlICIgJG5ld19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7 OworKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAg OzsKKysJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAg ZG9uZQorKyAgICAgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19saWJzIgorKworKworKyAgICAgIGNv bXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkY29tcGlsZV9kZXBsaWJzIgorKyAgICAg IGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRmaW5hbGl6ZV9kZXBsaWJzIgor KworKyAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0aGVuCisrCSMgSWYgdGhlIHVz ZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KKysJZm9yIGxpYmRp ciBpbiAkcnBhdGggJHhycGF0aDsgZG8KKysJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAt cnBhdGguCisrCSAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKysJICAqIiAkbGliZGlyICIq KSA7OworKwkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsK KysJICBlc2FjCisrCWRvbmUKKysgICAgICBmaQorKworKyAgICAgICMgTm93IGhhcmRjb2RlIHRo ZSBsaWJyYXJ5IHBhdGhzCisrICAgICAgcnBhdGg9CisrICAgICAgaGFyZGNvZGVfbGliZGlycz0K KysgICAgICBmb3IgbGliZGlyIGluICRjb21waWxlX3JwYXRoICRmaW5hbGl6ZV9ycGF0aDsgZG8K KysJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisrCSAgaWYg dGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCSAgICBpZiB0ZXN0 IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJICAgICAgaGFyZGNvZGVfbGliZGlycz0i JGxpYmRpciIKKysJICAgIGVsc2UKKysJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1 ZSBsaWJkaXJzLgorKwkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRj b2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkgICAgICAqIiRoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiop CisrCQk7OworKwkgICAgICAqKQorKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRp cnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisrCQk7OworKwkgICAgICBlc2Fj CisrCSAgICBmaQorKwkgIGVsc2UKKysJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjXCIKKysJICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisrCSAgZmkKKysJZWxpZiB0 ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrCSAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgor KwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgcGVybV9ycGF0aD0iJHBlcm1fcnBhdGggJGxp YmRpciIgOzsKKysJICBlc2FjCisrCWZpCisrCWNhc2UgJGhvc3QgaW4KKysJKi0qLWN5Z3dpbiog fCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKKysJICB0ZXN0 YmluZGlyPWAke0VDSE99ICIkbGliZGlyIiB8ICR7U0VEfSAtZSAncyovbGliJCovYmluKidgCisr CSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisrCSAgKiI6JGxpYmRpcjoiKikgOzsKKysJICA6 OikgZGxsc2VhcmNocGF0aD0kbGliZGlyOzsKKysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2Vh cmNocGF0aDokbGliZGlyIjs7CisrCSAgZXNhYworKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBp bgorKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OworKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSR0ZXN0 YmluZGlyOzsKKysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokdGVzdGJpbmRp ciI7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgICMgU3Vi c3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0aGUgcnBhdGguCisrICAgICAgaWYg dGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiICYmCisrCSB0ZXN0IC1uICIkaGFy ZGNvZGVfbGliZGlycyI7IHRoZW4KKysJbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKKysJZXZh bCBycGF0aD1cIiAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrICAgICAgZmkKKysgICAg ICBjb21waWxlX3JwYXRoPSIkcnBhdGgiCisrCisrICAgICAgcnBhdGg9CisrICAgICAgaGFyZGNv ZGVfbGliZGlycz0KKysgICAgICBmb3IgbGliZGlyIGluICRmaW5hbGl6ZV9ycGF0aDsgZG8KKysJ aWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisrCSAgaWYgdGVz dCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16 ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxp YmRpciIKKysJICAgIGVsc2UKKysJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBs aWJkaXJzLgorKwkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2Rl X2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkgICAgICAqIiRoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisr CQk7OworKwkgICAgICAqKQorKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMk aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisrCQk7OworKwkgICAgICBlc2FjCisr CSAgICBmaQorKwkgIGVsc2UKKysJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjXCIKKysJICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisrCSAgZmkKKysJZWxpZiB0ZXN0 IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrCSAgY2FzZSAiJGZpbmFsaXplX3Blcm1fcnBhdGgg IiBpbgorKwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgZmluYWxpemVfcGVybV9ycGF0aD0i JGZpbmFsaXplX3Blcm1fcnBhdGggJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWZpCisrICAgICAg ZG9uZQorKyAgICAgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0aGUg cnBhdGguCisrICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiICYm CisrCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJbGliZGlyPSIkaGFyZGNv ZGVfbGliZGlycyIKKysJZXZhbCBycGF0aD1cIiAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wi CisrICAgICAgZmkKKysgICAgICBmaW5hbGl6ZV9ycGF0aD0iJHJwYXRoIgorKworKyAgICAgIGlm IHRlc3QgLW4gIiRsaWJvYmpzIiAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVu CisrCSMgVHJhbnNmb3JtIGFsbCB0aGUgbGlicmFyeSBvYmplY3RzIGludG8gc3RhbmRhcmQgb2Jq ZWN0cy4KKysJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQ Mk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKKysJZmluYWxpemVfY29tbWFuZD1gJEVD SE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5M MlNQYAorKyAgICAgIGZpCisrCisrICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRvdXRwdXRu YW1lIiAiQFBST0dSQU1AIiAibm8iCisrCisrICAgICAgIyB0ZW1wbGF0ZSBwcmVsaW5raW5nIHN0 ZXAKKysgICAgICBpZiB0ZXN0IC1uICIkcHJlbGlua19jbWRzIjsgdGhlbgorKwlmdW5jX2V4ZWN1 dGVfY21kcyAiJHByZWxpbmtfY21kcyIgJ2V4aXQgJD8nCisrICAgICAgZmkKKysKKysgICAgICB3 cmFwcGVyc19yZXF1aXJlZD15ZXMKKysgICAgICBjYXNlICRob3N0IGluCisrICAgICAgKmN5Z3dp biogfCAqbWluZ3cqICkKKysgICAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9 IHllczsgdGhlbgorKyAgICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubworKyAgICAgICAgZmkK KysgICAgICAgIDs7CisrICAgICAgKmNlZ2NjKQorKyAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJz IGZvciBjZWdjYywgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyBhbnl3YXkuCisrICAgICAgICB3cmFw cGVyc19yZXF1aXJlZD1ubworKyAgICAgICAgOzsKKysgICAgICAqKQorKyAgICAgICAgaWYgdGVz dCAiJG5lZWRfcmVsaW5rIiA9IG5vIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHll czsgdGhlbgorKyAgICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubworKyAgICAgICAgZmkKKysg ICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIGlmIHRlc3QgIiR3cmFwcGVyc19yZXF1aXJl ZCIgPSBubzsgdGhlbgorKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24u CisrCWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1l ICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAorKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX2Nv bW1hbmQkY29tcGlsZV9ycGF0aCIKKysKKysJIyBXZSBoYXZlIG5vIHVuaW5zdGFsbGVkIGxpYnJh cnkgZGVwZW5kZW5jaWVzLCBzbyBmaW5hbGl6ZSByaWdodCBub3cuCisrCWV4aXRfc3RhdHVzPTAK KysJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0X3N0YXR1cz0kPycKKysKKysJ IyBEZWxldGUgdGhlIGdlbmVyYXRlZCBmaWxlcy4KKysJaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpk aXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9IjsgdGhlbgorKwkgIGZ1bmNfc2hvd19ldmFsICck Uk0gIiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSInCisrCWZpCisrCisr CWV4aXQgJGV4aXRfc3RhdHVzCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkY29t cGlsZV9zaGxpYnBhdGgkZmluYWxpemVfc2hsaWJwYXRoIjsgdGhlbgorKwljb21waWxlX2NvbW1h bmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0 aFwkJHNobGlicGF0aF92YXJcIiAkY29tcGlsZV9jb21tYW5kIgorKyAgICAgIGZpCisrICAgICAg aWYgdGVzdCAtbiAiJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4KKysJZmluYWxpemVfY29tbWFu ZD0iJHNobGlicGF0aF92YXI9XCIkZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3Zhclwi ICRmaW5hbGl6ZV9jb21tYW5kIgorKyAgICAgIGZpCisrCisrICAgICAgY29tcGlsZV92YXI9Cisr ICAgICAgZmluYWxpemVfdmFyPQorKyAgICAgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRo ZW4KKysJaWYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVuCisrCSAgIyBXZSBzaG91bGQgc2V0 IHRoZSBydW5wYXRoX3Zhci4KKysJICBycGF0aD0KKysJICBmb3IgZGlyIGluICRwZXJtX3JwYXRo OyBkbworKwkgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorKwkgIGRvbmUKKysJICBjb21waWxlX3Zh cj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJcIiAiCisrCWZpCisrCWlmIHRl c3QgLW4gIiRmaW5hbGl6ZV9wZXJtX3JwYXRoIjsgdGhlbgorKwkgICMgV2Ugc2hvdWxkIHNldCB0 aGUgcnVucGF0aF92YXIuCisrCSAgcnBhdGg9CisrCSAgZm9yIGRpciBpbiAkZmluYWxpemVfcGVy bV9ycGF0aDsgZG8KKysJICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICBkb25lCisrCSAgZmlu YWxpemVfdmFyPSIkcnVucGF0aF92YXI9XCIkcnBhdGhcJCRydW5wYXRoX3ZhclwiICIKKysJZmkK KysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgIiRub19pbnN0YWxsIiA9IHllczsgdGhlbgor KwkjIFdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGEgd3JhcHBlciBzY3JpcHQuCisrCWxpbmtfY29t bWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorKwkjIFJl cGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisrCWxpbmtfY29tbWFuZD1gJEVD SE8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcn YAorKwkjIERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlLgorKwkkb3B0X2RyeV9ydW4gfHwgJFJN ICRvdXRwdXQKKysJIyBMaW5rIHRoZSBleGVjdXRhYmxlIGFuZCBleGl0CisrCWZ1bmNfc2hvd19l dmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAg ICAgZmkKKysKKysgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9IHJlbGluazsgdGhl bgorKwkjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKysJbGlua19jb21tYW5k PSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCisrCXJlbGlua19j b21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisr CisrCWZ1bmNfd2FybmluZyAidGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBsaWtlIHVuaW5zdGFsbGVk IHNoYXJlZCBsaWJyYXJpZXMiCisrCWZ1bmNfd2FybmluZyAiXGAkb3V0cHV0JyB3aWxsIGJlIHJl bGlua2VkIGR1cmluZyBpbnN0YWxsYXRpb24iCisrICAgICAgZWxzZQorKwlpZiB0ZXN0ICIkZmFz dF9pbnN0YWxsIiAhPSBubzsgdGhlbgorKwkgIGxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRj b21waWxlX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisrCSAgaWYgdGVzdCAiJGZhc3RfaW5zdGFs bCIgPSB5ZXM7IHRoZW4KKysJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX3Zh ciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCVc JHByb2dkaXIvXCRmaWxlJWcnYAorKwkgIGVsc2UKKysJICAgICMgZmFzdF9pbnN0YWxsIGlzIHNl dCB0byBuZWVkbGVzcworKwkgICAgcmVsaW5rX2NvbW1hbmQ9CisrCSAgZmkKKysJZWxzZQorKwkg IGxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRo IgorKwkgIHJlbGlua19jb21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmlu YWxpemVfcnBhdGgiCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIFJlcGxhY2UgdGhlIG91 dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisrICAgICAgbGlua19jb21tYW5kPWAkRUNITyAiWCRs aW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29iamRpci8kb3V0 cHV0bmFtZSInJWcnYAorKworKyAgICAgICMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZpbGVzLgor KyAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dCAkb3V0cHV0X29iamRpci8kb3V0cHV0 bmFtZSAkb3V0cHV0X29iamRpci9sdC0kb3V0cHV0bmFtZQorKworKyAgICAgIGZ1bmNfc2hvd19l dmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKysKKysgICAgICAjIE5vdyBjcmVhdGUgdGhl IHdyYXBwZXIgc2NyaXB0LgorKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIK KysKKysgICAgICAjIFF1b3RlIHRoZSByZWxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCisrICAg ICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkjIFByZXNlcnZlIGFueSB2 YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCisrCWZvciB2YXIgaW4g JHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbworKwkgIGlmIGV2YWwgdGVzdCAteiBcIlwk eyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7 JHZhcitzZXR9XCIgfHwgJGx0X3Vuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07 IH07ICRyZWxpbmtfY29tbWFuZCIKKysJICBlbGlmIGV2YWwgdmFyX3ZhbHVlPVwkJHZhcjsgdGVz dCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KKysJICAgIHJlbGlua19jb21tYW5kPSIkdmFyPTsgZXhw b3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKysJICBlbHNlCisrCSAgICBmdW5jX3F1b3RlX2Zv cl9ldmFsICIkdmFyX3ZhbHVlIgorKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVv dGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorKwkgIGZp CisrCWRvbmUKKysJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlua19jb21tYW5kKSIK KysJcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICIk c2VkX3F1b3RlX3N1YnN0ImAKKysgICAgICBmaQorKworKyAgICAgICMgUXVvdGUgJEVDSE8gZm9y IHNoaXBwaW5nLgorKyAgICAgIGlmIHRlc3QgIlgkRUNITyIgPSAiWCRTSEVMTCAkcHJvZ3BhdGgg LS1mYWxsYmFjay1lY2hvIjsgdGhlbgorKwljYXNlICRwcm9ncGF0aCBpbgorKwlbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIHFlY2hvPSIkU0hFTEwgJHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7 OworKwkqKSBxZWNobz0iJFNIRUxMIGBwd2RgLyRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOzsK KysJZXNhYworKwlxZWNobz1gJEVDSE8gIlgkcWVjaG8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVf c3Vic3QiYAorKyAgICAgIGVsc2UKKysJcWVjaG89YCRFQ0hPICJYJEVDSE8iIHwgJFhzZWQgLWUg IiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGZpCisrCisrICAgICAgIyBPbmx5IGFjdHVhbGx5 IGRvIHRoaW5ncyBpZiBub3QgaW4gZHJ5IHJ1biBtb2RlLgorKyAgICAgICRvcHRfZHJ5X3J1biB8 fCB7CisrCSMgd2luMzIgd2lsbCB0aGluayB0aGUgc2NyaXB0IGlzIGEgYmluYXJ5IGlmIGl0IGhh cworKwkjIGEgLmV4ZSBzdWZmaXgsIHNvIHdlIHN0cmlwIGl0IG9mZiBoZXJlLgorKwljYXNlICRv dXRwdXQgaW4KKysJICAqLmV4ZSkgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0Igor KwkgICAgICAgICBvdXRwdXQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworKwllc2FjCisrCSMg dGVzdCBmb3IgY3lnd2luIGJlY2F1c2UgbXYgZmFpbHMgdy9vIC5leGUgZXh0ZW5zaW9ucworKwlj YXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiopCisrCSAgICBleGVleHQ9LmV4ZQorKwkgICAgZnVu Y19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0bmFtZSIKKysJICAgIG91dHB1dG5hbWU9JGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworKwkgICopIGV4ZWV4dD0gOzsKKysJZXNhYworKwljYXNl ICRob3N0IGluCisrCSAgKmN5Z3dpbiogfCAqbWluZ3cqICkKKysJICAgIGZ1bmNfZGlybmFtZV9h bmRfYmFzZW5hbWUgIiRvdXRwdXQiICIiICIuIgorKwkgICAgb3V0cHV0X25hbWU9JGZ1bmNfYmFz ZW5hbWVfcmVzdWx0CisrCSAgICBvdXRwdXRfcGF0aD0kZnVuY19kaXJuYW1lX3Jlc3VsdAorKwkg ICAgY3dyYXBwZXJzb3VyY2U9IiRvdXRwdXRfcGF0aC8kb2JqZGlyL2x0LSRvdXRwdXRfbmFtZS5j IgorKwkgICAgY3dyYXBwZXI9IiRvdXRwdXRfcGF0aC8kb3V0cHV0X25hbWUuZXhlIgorKwkgICAg JFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXIKKysJICAgIHRyYXAgIiRSTSAkY3dyYXBwZXJz b3VyY2UgJGN3cmFwcGVyOyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorKworKwkgICAgZnVu Y19lbWl0X2N3cmFwcGVyZXhlX3NyYyA+ICRjd3JhcHBlcnNvdXJjZQorKworKwkgICAgIyBUaGUg d3JhcHBlciBleGVjdXRhYmxlIGlzIGJ1aWx0IHVzaW5nIHRoZSAkaG9zdCBjb21waWxlciwKKysJ ICAgICMgYmVjYXVzZSBpdCBjb250YWlucyAkaG9zdCBwYXRocyBhbmQgZmlsZXMuIElmIGNyb3Nz LQorKwkgICAgIyBjb21waWxpbmcsIGl0LCBsaWtlIHRoZSB0YXJnZXQgZXhlY3V0YWJsZSwgbXVz dCBiZQorKwkgICAgIyBleGVjdXRlZCBvbiB0aGUgJGhvc3Qgb3IgdW5kZXIgYW4gZW11bGF0aW9u IGVudmlyb25tZW50LgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgJExUQ0MgJExU Q0ZMQUdTIC1vICRjd3JhcHBlciAkY3dyYXBwZXJzb3VyY2UKKysJICAgICAgJFNUUklQICRjd3Jh cHBlcgorKwkgICAgfQorKworKwkgICAgIyBOb3csIGNyZWF0ZSB0aGUgd3JhcHBlciBzY3JpcHQg Zm9yIGZ1bmNfc291cmNlIHVzZToKKysJICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgJGN3 cmFwcGVyCisrCSAgICAkUk0gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0CisrCSAg ICB0cmFwICIkUk0gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0OyBleGl0ICRFWElU X0ZBSUxVUkUiIDEgMiAxNQorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgIyBub3Rl OiB0aGlzIHNjcmlwdCB3aWxsIG5vdCBiZSBleGVjdXRlZCwgc28gZG8gbm90IGNobW9kLgorKwkg ICAgICBpZiB0ZXN0ICJ4JGJ1aWxkIiA9ICJ4JGhvc3QiIDsgdGhlbgorKwkJJGN3cmFwcGVyIC0t bHQtZHVtcC1zY3JpcHQgPiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKysJICAg ICAgZWxzZQorKwkJZnVuY19lbWl0X3dyYXBwZXIgbm8gPiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0 bmFtZV9yZXN1bHQKKysJICAgICAgZmkKKysJICAgIH0KKysJICA7OworKwkgICogKQorKwkgICAg JFJNICRvdXRwdXQKKysJICAgIHRyYXAgIiRSTSAkb3V0cHV0OyBleGl0ICRFWElUX0ZBSUxVUkUi IDEgMiAxNQorKworKwkgICAgZnVuY19lbWl0X3dyYXBwZXIgbm8gPiAkb3V0cHV0CisrCSAgICBj aG1vZCAreCAkb3V0cHV0CisrCSAgOzsKKysJZXNhYworKyAgICAgIH0KKysgICAgICBleGl0ICRF WElUX1NVQ0NFU1MKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgICMgU2VlIGlmIHdlIG5l ZWQgdG8gYnVpbGQgYW4gb2xkLWZhc2hpb25lZCBhcmNoaXZlLgorKyAgICBmb3Igb2xkbGliIGlu ICRvbGRsaWJzOyBkbworKworKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0g Y29udmVuaWVuY2U7IHRoZW4KKysJb2xkb2Jqcz0iJGxpYm9ianNfc2F2ZSAkc3ltZmlsZW9iaiIK KysJYWRkbGlicz0iJGNvbnZlbmllbmNlIgorKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysgICAg ICBlbHNlCisrCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbW9kdWxlOyB0aGVuCisr CSAgb2xkb2Jqcz0iJGxpYm9ianNfc2F2ZSIKKysJICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJ ZWxzZQorKwkgIG9sZG9ianM9IiRvbGRfZGVwbGlicyAkbm9uX3BpY19vYmplY3RzIgorKwkgIGlm IHRlc3QgIiRwcmVsb2FkIiA9IHllcyAmJiB0ZXN0IC1mICIkc3ltZmlsZW9iaiI7IHRoZW4KKysJ ICAgIG9sZG9ianM9IiRvbGRvYmpzICRzeW1maWxlb2JqIgorKwkgIGZpCisrCWZpCisrCWFkZGxp YnM9IiRvbGRfY29udmVuaWVuY2UiCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIk YWRkbGlicyI7IHRoZW4KKysJZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIK KysJZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisrCisrCWZ1bmNfZXh0cmFjdF9hcmNo aXZlcyAkZ2VudG9wICRhZGRsaWJzCisrCW9sZG9ianM9IiRvbGRvYmpzICRmdW5jX2V4dHJhY3Rf YXJjaGl2ZXNfcmVzdWx0IgorKyAgICAgIGZpCisrCisrICAgICAgIyBEbyBlYWNoIGNvbW1hbmQg aW4gdGhlIGFyY2hpdmUgY29tbWFuZHMuCisrICAgICAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZl X2Zyb21fbmV3X2NtZHMiICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVu CisrCWNtZHM9JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKKysgICAgICBlbHNlCisrCisrCSMg QWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcworKwlp ZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KKysJICBnZW50b3A9IiRvdXRwdXRfb2JqZGly LyR7b3V0cHV0bmFtZX14IgorKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorKwor KwkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHByZWZpbGVzCisrCSAgb2xkb2Jq cz0iJG9sZG9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisrCWZpCisrCisrCSMg UE9TSVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hpdmVzLiAgV2UgaGF2 ZQorKwkjIHRvIGF2b2lkIGNyZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVwbGljYXRlIGJhc2VuYW1l cyBpZiB3ZQorKwkjIG1pZ2h0IGhhdmUgdG8gZXh0cmFjdCB0aGVtIGFmdGVyd2FyZHMsIGUuZy4s IHdoZW4gY3JlYXRpbmcgYQorKwkjIHN0YXRpYyBhcmNoaXZlIG91dCBvZiBhIGNvbnZlbmllbmNl IGxpYnJhcnksIG9yIHdoZW4gbGlua2luZworKwkjIHRoZSBlbnRpcmV0eSBvZiBhIGxpYnRvb2wg YXJjaGl2ZSBpbnRvIGFub3RoZXIgKGN1cnJlbnRseQorKwkjIG5vdCBzdXBwb3J0ZWQgYnkgbGli dG9vbCkuCisrCWlmIChmb3Igb2JqIGluICRvbGRvYmpzCisrCSAgICBkbworKwkgICAgICBmdW5j X2Jhc2VuYW1lICIkb2JqIgorKwkgICAgICAkRUNITyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0Igor KwkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCisrCSAg OgorKwllbHNlCisrCSAgJEVDSE8gImNvcHlpbmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRvIGF2 b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4uLiIKKysJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7 b3V0cHV0bmFtZX14IgorKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorKwkgIGZ1 bmNfbWtkaXJfcCAiJGdlbnRvcCIKKysJICBzYXZlX29sZG9ianM9JG9sZG9ianMKKysJICBvbGRv YmpzPQorKwkgIGNvdW50ZXI9MQorKwkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcworKwkgIGRv CisrCSAgICBmdW5jX2Jhc2VuYW1lICIkb2JqIgorKwkgICAgb2JqYmFzZT0iJGZ1bmNfYmFzZW5h bWVfcmVzdWx0IgorKwkgICAgY2FzZSAiICRvbGRvYmpzICIgaW4KKysJICAgICIgIikgb2xkb2Jq cz0kb2JqIDs7CisrCSAgICAqW1wgL10iJG9iamJhc2UgIiopCisrCSAgICAgIHdoaWxlIDo7IGRv CisrCQkjIE1ha2Ugc3VyZSB3ZSBkb24ndCBwaWNrIGFuIGFsdGVybmF0ZSBuYW1lIHRoYXQgYWxz bworKwkJIyBvdmVybGFwcy4KKysJCW5ld29iaj1sdCRjb3VudGVyLSRvYmpiYXNlCisrCQlmdW5j X2FyaXRoICRjb3VudGVyICsgMQorKwkJY291bnRlcj0kZnVuY19hcml0aF9yZXN1bHQKKysJCWNh c2UgIiAkb2xkb2JqcyAiIGluCisrCQkqW1wgL10iJG5ld29iaiAiKikgOzsKKysJCSopIGlmIHRl c3QgISAtZiAiJGdlbnRvcC8kbmV3b2JqIjsgdGhlbiBicmVhazsgZmkgOzsKKysJCWVzYWMKKysJ ICAgICAgZG9uZQorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAibG4gJG9iaiAkZ2VudG9wLyRuZXdv YmogfHwgY3AgJG9iaiAkZ2VudG9wLyRuZXdvYmoiCisrCSAgICAgIG9sZG9ianM9IiRvbGRvYmpz ICRnZW50b3AvJG5ld29iaiIKKysJICAgICAgOzsKKysJICAgICopIG9sZG9ianM9IiRvbGRvYmpz ICRvYmoiIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwlmaQorKwlldmFsIGNtZHM9XCIkb2xk X2FyY2hpdmVfY21kc1wiCisrCisrCWZ1bmNfbGVuICIgJGNtZHMiCisrCWxlbj0kZnVuY19sZW5f cmVzdWx0CisrCWlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4 X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgorKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKKysJZWxz ZQorKwkgICMgdGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVw LCBsaW5rIGluIHBhcnRzCisrCSAgZnVuY192ZXJib3NlICJ1c2luZyBwaWVjZXdpc2UgYXJjaGl2 ZSBsaW5raW5nLi4uIgorKwkgIHNhdmVfUkFOTElCPSRSQU5MSUIKKysJICBSQU5MSUI9OgorKwkg IG9iamxpc3Q9CisrCSAgY29uY2F0X2NtZHM9CisrCSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpzCisr CSAgb2xkb2Jqcz0KKysJICAjIElzIHRoZXJlIGEgYmV0dGVyIHdheSBvZiBmaW5kaW5nIHRoZSBs YXN0IG9iamVjdCBpbiB0aGUgbGlzdD8KKysJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKKysJ ICBkbworKwkgICAgbGFzdF9vbGRvYmo9JG9iagorKwkgIGRvbmUKKysJICBldmFsIHRlc3RfY21k cz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKKysJICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiCisrCSAg bGVuMD0kZnVuY19sZW5fcmVzdWx0CisrCSAgbGVuPSRsZW4wCisrCSAgZm9yIG9iaiBpbiAkc2F2 ZV9vbGRvYmpzCisrCSAgZG8KKysJICAgIGZ1bmNfbGVuICIgJG9iaiIKKysJICAgIGZ1bmNfYXJp dGggJGxlbiArICRmdW5jX2xlbl9yZXN1bHQKKysJICAgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQK KysJICAgIGZ1bmNfYXBwZW5kIG9iamxpc3QgIiAkb2JqIgorKwkgICAgaWYgdGVzdCAiJGxlbiIg LWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCisrCSAgICAgIDoKKysJICAgIGVsc2UKKysJICAgICAg IyB0aGUgYWJvdmUgY29tbWFuZCBzaG91bGQgYmUgdXNlZCBiZWZvcmUgaXQgZ2V0cyB0b28gbG9u ZworKwkgICAgICBvbGRvYmpzPSRvYmpsaXN0CisrCSAgICAgIGlmIHRlc3QgIiRvYmoiID0gIiRs YXN0X29sZG9iaiIgOyB0aGVuCisrCQlSQU5MSUI9JHNhdmVfUkFOTElCCisrCSAgICAgIGZpCisr CSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRz fgorKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JG9sZF9hcmNoaXZl X2NtZHNcIgorKwkgICAgICBvYmpsaXN0PQorKwkgICAgICBsZW49JGxlbjAKKysJICAgIGZpCisr CSAgZG9uZQorKwkgIFJBTkxJQj0kc2F2ZV9SQU5MSUIKKysJICBvbGRvYmpzPSRvYmpsaXN0Cisr CSAgaWYgdGVzdCAiWCRvbGRvYmpzIiA9ICJYIiA7IHRoZW4KKysJICAgIGV2YWwgY21kcz1cIlwk Y29uY2F0X2NtZHNcIgorKwkgIGVsc2UKKysJICAgIGV2YWwgY21kcz1cIlwkY29uY2F0X2NtZHN+ XCRvbGRfYXJjaGl2ZV9jbWRzXCIKKysJICBmaQorKwlmaQorKyAgICAgIGZpCisrICAgICAgZnVu Y19leGVjdXRlX2NtZHMgIiRjbWRzIiAnZXhpdCAkPycKKysgICAgZG9uZQorKworKyAgICB0ZXN0 IC1uICIkZ2VuZXJhdGVkIiAmJiBcCisrICAgICAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciRnZW5l cmF0ZWQiCisrCisrICAgICMgTm93IGNyZWF0ZSB0aGUgbGlidG9vbCBhcmNoaXZlLgorKyAgICBj YXNlICRvdXRwdXQgaW4KKysgICAgKi5sYSkKKysgICAgICBvbGRfbGlicmFyeT0KKysgICAgICB0 ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIG9sZF9saWJyYXJ5PSIkbGlibmFtZS4kbGli ZXh0IgorKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIKKysKKysgICAgICAj IFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9y CisrICAgICAgZm9yIHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms7IGRvCisrCWlm IGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgcmVsaW5rX2NvbW1hbmQ9 InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8ICRsdF91bnNldCAkdmFyIHx8IHsgJHZhcj07 IGV4cG9ydCAkdmFyOyB9OyB9OyAkcmVsaW5rX2NvbW1hbmQiCisrCWVsaWYgZXZhbCB2YXJfdmFs dWU9XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVlIjsgdGhlbgorKwkgIHJlbGlua19jb21tYW5k PSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKysJZWxzZQorKwkgIGZ1bmNf cXVvdGVfZm9yX2V2YWwgIiR2YXJfdmFsdWUiCisrCSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgor KwlmaQorKyAgICAgIGRvbmUKKysgICAgICAjIFF1b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9yIHNo aXBwaW5nLgorKyAgICAgIHJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRTSEVMTCAkcHJvZ3Bh dGggJHByZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGluayAkbGlidG9vbF9hcmdzIEBpbnN0X3ByZWZp eF9kaXJAKSIKKysgICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQi IHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGlmIHRlc3QgIiRoYXJkY29k ZV9hdXRvbWF0aWMiID0geWVzIDsgdGhlbgorKwlyZWxpbmtfY29tbWFuZD0KKysgICAgICBmaQor KworKyAgICAgICMgT25seSBjcmVhdGUgdGhlIG91dHB1dCBpZiBub3QgYSBkcnkgcnVuLgorKyAg ICAgICRvcHRfZHJ5X3J1biB8fCB7CisrCWZvciBpbnN0YWxsZWQgaW4gbm8geWVzOyBkbworKwkg IGlmIHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16ICIkaW5z dGFsbF9saWJkaXIiOyB0aGVuCisrCSAgICAgIGJyZWFrCisrCSAgICBmaQorKwkgICAgb3V0cHV0 PSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSJpCisrCSAgICAjIFJlcGxhY2UgYWxsIHVuaW5z dGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzIHdpdGggdGhlIGluc3RhbGxlZCBvbmVzCisrCSAgICBu ZXdkZXBlbmRlbmN5X2xpYnM9CisrCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7 IGRvCisrCSAgICAgIGNhc2UgJGRlcGxpYiBpbgorKwkgICAgICAqLmxhKQorKwkJZnVuY19iYXNl bmFtZSAiJGRlcGxpYiIKKysJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJCWV2YWwg bGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRkZXBsaWJgCisr CQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCisrCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGRlcGxp YicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKwkJbmV3ZGVwZW5kZW5jeV9saWJz PSIkbmV3ZGVwZW5kZW5jeV9saWJzICRsaWJkaXIvJG5hbWUiCisrCQk7OworKwkgICAgICAqKSBu ZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGRlcGxpYiIgOzsKKysJICAg ICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5j eV9saWJzIgorKwkgICAgbmV3ZGxmaWxlcz0KKysKKysJICAgIGZvciBsaWIgaW4gJGRsZmlsZXM7 IGRvCisrCSAgICAgIGNhc2UgJGxpYiBpbgorKwkgICAgICAqLmxhKQorKwkgICAgICAgIGZ1bmNf YmFzZW5hbWUgIiRsaWIiCisrCQluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCQlldmFs IGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkbGliYAorKwkJ dGVzdCAteiAiJGxpYmRpciIgJiYgXAorKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlz IG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKysJCW5ld2RsZmlsZXM9IiRuZXdkbGZpbGVz ICRsaWJkaXIvJG5hbWUiCisrCQk7OworKwkgICAgICAqKSBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxl cyAkbGliIiA7OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgICBkbGZpbGVzPSIkbmV3 ZGxmaWxlcyIKKysJICAgIG5ld2RscHJlZmlsZXM9CisrCSAgICBmb3IgbGliIGluICRkbHByZWZp bGVzOyBkbworKwkgICAgICBjYXNlICRsaWIgaW4KKysJICAgICAgKi5sYSkKKysJCSMgT25seSBw YXNzIHByZW9wZW5lZCBmaWxlcyB0byB0aGUgcHNldWRvLWFyY2hpdmUgKGZvcgorKwkJIyBldmVu dHVhbCBsaW5raW5nIHdpdGggdGhlIGFwcC4gdGhhdCBsaW5rcyBpdCkgaWYgd2UKKysJCSMgZGlk bid0IGFscmVhZHkgbGluayB0aGUgcHJlb3BlbmVkIG9iamVjdHMgZGlyZWN0bHkgaW50bworKwkJ IyB0aGUgbGlicmFyeToKKysJCWZ1bmNfYmFzZW5hbWUgIiRsaWIiCisrCQluYW1lPSIkZnVuY19i YXNlbmFtZV9yZXN1bHQiCisrCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9 XCguKlwpJC9cMS9wJyAkbGliYAorKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAorKwkJICBmdW5j X2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKysJ CW5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRsaWJkaXIvJG5hbWUiCisrCQk7OworKwkg ICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIK KysJICBlbHNlCisrCSAgICBuZXdkbGZpbGVzPQorKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsg ZG8KKysJICAgICAgY2FzZSAkbGliIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFi cz0iJGxpYiIgOzsKKysJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKysJICAgICAgZXNhYworKwkg ICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkYWJzIgorKwkgICAgZG9uZQorKwkgICAgZGxm aWxlcz0iJG5ld2RsZmlsZXMiCisrCSAgICBuZXdkbHByZWZpbGVzPQorKwkgICAgZm9yIGxpYiBp biAkZGxwcmVmaWxlczsgZG8KKysJICAgICAgY2FzZSAkbGliIGluCisrCQlbXFwvXSogfCBbQS1a YS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKKysJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKysJ ICAgICAgZXNhYworKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkYWJzIgor KwkgICAgZG9uZQorKwkgICAgZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMiCisrCSAgZmkKKysJ ICAkUk0gJG91dHB1dAorKwkgICMgcGxhY2UgZGxuYW1lIGluIGNvcnJlY3QgcG9zaXRpb24gZm9y IGN5Z3dpbgorKwkgIHRkbG5hbWU9JGRsbmFtZQorKwkgIGNhc2UgJGhvc3QsJG91dHB1dCwkaW5z dGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgorKwkgICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8sKi5k bGwgfCAqbWluZ3cqLCpsYWkseWVzLG5vLCouZGxsIHwgKmNlZ2NjKiwqbGFpLHllcyxubywqLmRs bCkgdGRsbmFtZT0uLi9iaW4vJGRsbmFtZSA7OworKwkgIGVzYWMKKysJICAkRUNITyA+ICRvdXRw dXQgIlwKKysjICRvdXRwdXRuYW1lIC0gYSBsaWJ0b29sIGxpYnJhcnkgZmlsZQorKyMgR2VuZXJh dGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorKyMKKysj IFBsZWFzZSBETyBOT1QgZGVsZXRlIHRoaXMgZmlsZSEKKysjIEl0IGlzIG5lY2Vzc2FyeSBmb3Ig bGlua2luZyB0aGUgbGlicmFyeS4KKysKKysjIFRoZSBuYW1lIHRoYXQgd2UgY2FuIGRsb3Blbigz KS4KKytkbG5hbWU9JyR0ZGxuYW1lJworKworKyMgTmFtZXMgb2YgdGhpcyBsaWJyYXJ5LgorK2xp YnJhcnlfbmFtZXM9JyRsaWJyYXJ5X25hbWVzJworKworKyMgVGhlIG5hbWUgb2YgdGhlIHN0YXRp YyBhcmNoaXZlLgorK29sZF9saWJyYXJ5PSckb2xkX2xpYnJhcnknCisrCisrIyBMaW5rZXIgZmxh Z3MgdGhhdCBjYW4gbm90IGdvIGluIGRlcGVuZGVuY3lfbGlicy4KKytpbmhlcml0ZWRfbGlua2Vy X2ZsYWdzPSckbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MnCisrCisrIyBMaWJyYXJpZXMgdGhh dCB0aGlzIG9uZSBkZXBlbmRzIHVwb24uCisrZGVwZW5kZW5jeV9saWJzPSckZGVwZW5kZW5jeV9s aWJzJworKworKyMgTmFtZXMgb2YgYWRkaXRpb25hbCB3ZWFrIGxpYnJhcmllcyBwcm92aWRlZCBi eSB0aGlzIGxpYnJhcnkKKyt3ZWFrX2xpYnJhcnlfbmFtZXM9JyR3ZWFrX2xpYnMnCisrCisrIyBW ZXJzaW9uIGluZm9ybWF0aW9uIGZvciAkbGlibmFtZS4KKytjdXJyZW50PSRjdXJyZW50CisrYWdl PSRhZ2UKKytyZXZpc2lvbj0kcmV2aXNpb24KKysKKysjIElzIHRoaXMgYW4gYWxyZWFkeSBpbnN0 YWxsZWQgbGlicmFyeT8KKytpbnN0YWxsZWQ9JGluc3RhbGxlZAorKworKyMgU2hvdWxkIHdlIHdh cm4gYWJvdXQgcG9ydGFiaWxpdHkgd2hlbiBsaW5raW5nIGFnYWluc3QgLW1vZHVsZXM/Cisrc2hv dWxkbm90bGluaz0kbW9kdWxlCisrCisrIyBGaWxlcyB0byBkbG9wZW4vZGxwcmVvcGVuCisrZGxv cGVuPSckZGxmaWxlcycKKytkbHByZW9wZW49JyRkbHByZWZpbGVzJworKworKyMgRGlyZWN0b3J5 IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRzIHRvIGJlIGluc3RhbGxlZCBpbjoKKytsaWJkaXI9JyRp bnN0YWxsX2xpYmRpciciCisrCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSBubyAmJiB0ZXN0ICIk bmVlZF9yZWxpbmsiID0geWVzOyB0aGVuCisrCSAgICAkRUNITyA+PiAkb3V0cHV0ICJcCisrcmVs aW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2NvbW1hbmRcIiIKKysJICBmaQorKwlkb25lCisrICAgICAg fQorKworKyAgICAgICMgRG8gYSBzeW1ib2xpYyBsaW5rIHNvIHRoYXQgdGhlIGxpYnRvb2wgYXJj aGl2ZSBjYW4gYmUgZm91bmQgaW4KKysgICAgICAjIExEX0xJQlJBUllfUEFUSCBiZWZvcmUgdGhl IHByb2dyYW0gaXMgaW5zdGFsbGVkLgorKyAgICAgIGZ1bmNfc2hvd19ldmFsICcoIGNkICIkb3V0 cHV0X29iamRpciIgJiYgJFJNICIkb3V0cHV0bmFtZSIgJiYgJExOX1MgIi4uLyRvdXRwdXRuYW1l IiAiJG91dHB1dG5hbWUiICknICdleGl0ICQ/JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAg ZXhpdCAkRVhJVF9TVUNDRVNTCisrfQorKworK3sgdGVzdCAiJG1vZGUiID0gbGluayB8fCB0ZXN0 ICIkbW9kZSIgPSByZWxpbms7IH0gJiYKKysgICAgZnVuY19tb2RlX2xpbmsgJHsxKyIkQCJ9Cisr CisrCisrIyBmdW5jX21vZGVfdW5pbnN0YWxsIGFyZy4uLgorK2Z1bmNfbW9kZV91bmluc3RhbGwg KCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgUk09IiRub25vcHQiCisrICAgIGZpbGVzPQor KyAgICBybWZvcmNlPQorKyAgICBleGl0X3N0YXR1cz0wCisrCisrICAgICMgVGhpcyB2YXJpYWJs ZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQgdmFyaWFibGVzIHJhdGhlcgorKyAg ICAjIHRoYW4gcnVubmluZyB0aGVpciBwcm9ncmFtcy4KKysgICAgbGlidG9vbF9pbnN0YWxsX21h Z2ljPSIkbWFnaWMiCisrCisrICAgIGZvciBhcmcKKysgICAgZG8KKysgICAgICBjYXNlICRhcmcg aW4KKysgICAgICAtZikgUk09IiRSTSAkYXJnIjsgcm1mb3JjZT15ZXMgOzsKKysgICAgICAtKikg Uk09IiRSTSAkYXJnIiA7OworKyAgICAgICopIGZpbGVzPSIkZmlsZXMgJGFyZyIgOzsKKysgICAg ICBlc2FjCisrICAgIGRvbmUKKysKKysgICAgdGVzdCAteiAiJFJNIiAmJiBcCisrICAgICAgZnVu Y19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIFJNIHByb2dyYW0iCisrCisrICAgIHJt ZGlycz0KKysKKysgICAgb3JpZ29iamRpcj0iJG9iamRpciIKKysgICAgZm9yIGZpbGUgaW4gJGZp bGVzOyBkbworKyAgICAgIGZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgorKyAgICAgIGRpcj0i JGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrICAgICAgaWYgdGVzdCAiWCRkaXIiID0gWC47IHRoZW4K KysJb2JqZGlyPSIkb3JpZ29iamRpciIKKysgICAgICBlbHNlCisrCW9iamRpcj0iJGRpci8kb3Jp Z29iamRpciIKKysgICAgICBmaQorKyAgICAgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorKyAgICAg IG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysgICAgICB0ZXN0ICIkbW9kZSIgPSB1bmlu c3RhbGwgJiYgb2JqZGlyPSIkZGlyIgorKworKyAgICAgICMgUmVtZW1iZXIgb2JqZGlyIGZvciBy ZW1vdmFsIGxhdGVyLCBiZWluZyBjYXJlZnVsIHRvIGF2b2lkIGR1cGxpY2F0ZXMKKysgICAgICBp ZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgdGhlbgorKwljYXNlICIgJHJtZGlycyAiIGluCisrCSAg KiIgJG9iamRpciAiKikgOzsKKysJICAqKSBybWRpcnM9IiRybWRpcnMgJG9iamRpciIgOzsKKysJ ZXNhYworKyAgICAgIGZpCisrCisrICAgICAgIyBEb24ndCBlcnJvciBpZiB0aGUgZmlsZSBkb2Vz bid0IGV4aXN0IGFuZCBybSAtZiB3YXMgdXNlZC4KKysgICAgICBpZiB7IHRlc3QgLUwgIiRmaWxl IjsgfSA+L2Rldi9udWxsIDI+JjEgfHwKKysJIHsgdGVzdCAtaCAiJGZpbGUiOyB9ID4vZGV2L251 bGwgMj4mMSB8fAorKwkgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCisrCToKKysgICAgICBlbGlmIHRl c3QgLWQgIiRmaWxlIjsgdGhlbgorKwlleGl0X3N0YXR1cz0xCisrCWNvbnRpbnVlCisrICAgICAg ZWxpZiB0ZXN0ICIkcm1mb3JjZSIgPSB5ZXM7IHRoZW4KKysJY29udGludWUKKysgICAgICBmaQor KworKyAgICAgIHJtZmlsZXM9IiRmaWxlIgorKworKyAgICAgIGNhc2UgJG5hbWUgaW4KKysgICAg ICAqLmxhKQorKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBhcmNoaXZlLCBzbyB2ZXJpZnkgaXQuCisr CWlmIGZ1bmNfbGFsaWJfcCAiJGZpbGUiOyB0aGVuCisrCSAgZnVuY19zb3VyY2UgJGRpci8kbmFt ZQorKworKwkgICMgRGVsZXRlIHRoZSBsaWJ0b29sIGxpYnJhcmllcyBhbmQgc3ltbGlua3MuCisr CSAgZm9yIG4gaW4gJGxpYnJhcnlfbmFtZXM7IGRvCisrCSAgICBybWZpbGVzPSIkcm1maWxlcyAk b2JqZGlyLyRuIgorKwkgIGRvbmUKKysJICB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHJtZmls ZXM9IiRybWZpbGVzICRvYmpkaXIvJG9sZF9saWJyYXJ5IgorKworKwkgIGNhc2UgIiRtb2RlIiBp bgorKwkgIGNsZWFuKQorKwkgICAgY2FzZSAiICAkbGlicmFyeV9uYW1lcyAiIGluCisrCSAgICAj ICIgICIgaW4gdGhlIGJlZ2lubmluZyBjYXRjaGVzIGVtcHR5ICRkbG5hbWUKKysJICAgICoiICRk bG5hbWUgIiopIDs7CisrCSAgICAqKSBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRkbG5hbWUi IDs7CisrCSAgICBlc2FjCisrCSAgICB0ZXN0IC1uICIkbGliZGlyIiAmJiBybWZpbGVzPSIkcm1m aWxlcyAkb2JqZGlyLyRuYW1lICRvYmpkaXIvJHtuYW1lfWkiCisrCSAgICA7OworKwkgIHVuaW5z dGFsbCkKKysJICAgIGlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIjsgdGhlbgorKwkgICAgICAj IERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdHVuaW5zdGFsbCBjb21tYW5kcy4KKysJICAgICAg ZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0dW5pbnN0YWxsX2NtZHMiICd0ZXN0ICIkcm1mb3JjZSIg PSB5ZXMgfHwgZXhpdF9zdGF0dXM9MScKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1uICIk b2xkX2xpYnJhcnkiOyB0aGVuCisrCSAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBvbGRf cG9zdHVuaW5zdGFsbCBjb21tYW5kcy4KKysJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRvbGRf cG9zdHVuaW5zdGFsbF9jbWRzIiAndGVzdCAiJHJtZm9yY2UiID0geWVzIHx8IGV4aXRfc3RhdHVz PTEnCisrCSAgICBmaQorKwkgICAgIyBGSVhNRTogc2hvdWxkIHJlaW5zdGFsbCB0aGUgYmVzdCBy ZW1haW5pbmcgc2hhcmVkIGxpYnJhcnkuCisrCSAgICA7OworKwkgIGVzYWMKKysJZmkKKysJOzsK KysKKysgICAgICAqLmxvKQorKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBvYmplY3QsIHNvIHZlcmlm eSBpdC4KKysJaWYgZnVuY19sYWxpYl9wICIkZmlsZSI7IHRoZW4KKysKKysJICAjIFJlYWQgdGhl IC5sbyBmaWxlCisrCSAgZnVuY19zb3VyY2UgJGRpci8kbmFtZQorKworKwkgICMgQWRkIFBJQyBv YmplY3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgorKwkgIGlmIHRlc3QgLW4gIiRw aWNfb2JqZWN0IiAmJgorKwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCisr CSAgICBybWZpbGVzPSIkcm1maWxlcyAkZGlyLyRwaWNfb2JqZWN0IgorKwkgIGZpCisrCisrCSAg IyBBZGQgbm9uLVBJQyBvYmplY3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgorKwkg IGlmIHRlc3QgLW4gIiRub25fcGljX29iamVjdCIgJiYKKysJICAgICB0ZXN0ICIkbm9uX3BpY19v YmplY3QiICE9IG5vbmU7IHRoZW4KKysJICAgIHJtZmlsZXM9IiRybWZpbGVzICRkaXIvJG5vbl9w aWNfb2JqZWN0IgorKwkgIGZpCisrCWZpCisrCTs7CisrCisrICAgICAgKikKKysJaWYgdGVzdCAi JG1vZGUiID0gY2xlYW4gOyB0aGVuCisrCSAgbm9leGVuYW1lPSRuYW1lCisrCSAgY2FzZSAkZmls ZSBpbgorKwkgICouZXhlKQorKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZmlsZSIK KysJICAgIGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgZnVuY19zdHJpcG5hbWUg JycgJy5leGUnICIkbmFtZSIKKysJICAgIG5vZXhlbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 CisrCSAgICAjICRmaWxlIHdpdGggLmV4ZSBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHJtZmls ZXMsCisrCSAgICAjIGFkZCAkZmlsZSB3aXRob3V0IC5leGUKKysJICAgIHJtZmlsZXM9IiRybWZp bGVzICRmaWxlIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAgIyBEbyBhIHRlc3QgdG8gc2VlIGlm IHRoaXMgaXMgYSBsaWJ0b29sIHByb2dyYW0uCisrCSAgaWYgZnVuY19sdHdyYXBwZXJfcCAiJGZp bGUiOyB0aGVuCisrCSAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsg dGhlbgorKwkgICAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKKysJICAgICAg cmVsaW5rX2NvbW1hbmQ9CisrCSAgICAgIGZ1bmNfc291cmNlICRmdW5jX2x0d3JhcHBlcl9zY3Jp cHRuYW1lX3Jlc3VsdAorKwkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkZnVuY19sdHdyYXBwZXJf c2NyaXB0bmFtZV9yZXN1bHQiCisrCSAgICBlbHNlCisrCSAgICAgIHJlbGlua19jb21tYW5kPQor KwkgICAgICBmdW5jX3NvdXJjZSAkZGlyLyRub2V4ZW5hbWUKKysJICAgIGZpCisrCisrCSAgICAj IG5vdGUgJG5hbWUgc3RpbGwgY29udGFpbnMgLmV4ZSBpZiBpdCB3YXMgaW4gJGZpbGUgb3JpZ2lu YWxseQorKwkgICAgIyBhcyBkb2VzIHRoZSB2ZXJzaW9uIG9mICRmaWxlIHRoYXQgd2FzIGFkZGVk IGludG8gJHJtZmlsZXMKKysJICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9i amRpci8ke25hbWV9Uy4ke29iamV4dH0iCisrCSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9 IHllcyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisrCSAgICAgIHJtZmlsZXM9 IiRybWZpbGVzICRvYmpkaXIvbHQtJG5hbWUiCisrCSAgICBmaQorKwkgICAgaWYgdGVzdCAiWCRu b2V4ZW5hbWUiICE9ICJYJG5hbWUiIDsgdGhlbgorKwkgICAgICBybWZpbGVzPSIkcm1maWxlcyAk b2JqZGlyL2x0LSR7bm9leGVuYW1lfS5jIgorKwkgICAgZmkKKysJICBmaQorKwlmaQorKwk7Owor KyAgICAgIGVzYWMKKysgICAgICBmdW5jX3Nob3dfZXZhbCAiJFJNICRybWZpbGVzIiAnZXhpdF9z dGF0dXM9MScKKysgICAgZG9uZQorKyAgICBvYmpkaXI9IiRvcmlnb2JqZGlyIgorKworKyAgICAj IFRyeSB0byByZW1vdmUgdGhlICR7b2JqZGlyfXMgaW4gdGhlIGRpcmVjdG9yaWVzIHdoZXJlIHdl IGRlbGV0ZWQgZmlsZXMKKysgICAgZm9yIGRpciBpbiAkcm1kaXJzOyBkbworKyAgICAgIGlmIHRl c3QgLWQgIiRkaXIiOyB0aGVuCisrCWZ1bmNfc2hvd19ldmFsICJybWRpciAkZGlyID4vZGV2L251 bGwgMj4mMSIKKysgICAgICBmaQorKyAgICBkb25lCisrCisrICAgIGV4aXQgJGV4aXRfc3RhdHVz CisrfQorKworK3sgdGVzdCAiJG1vZGUiID0gdW5pbnN0YWxsIHx8IHRlc3QgIiRtb2RlIiA9IGNs ZWFuOyB9ICYmCisrICAgIGZ1bmNfbW9kZV91bmluc3RhbGwgJHsxKyIkQCJ9CisrCisrdGVzdCAt eiAiJG1vZGUiICYmIHsKKysgIGhlbHA9IiRnZW5lcmljX2hlbHAiCisrICBmdW5jX2ZhdGFsX2hl bHAgInlvdSBtdXN0IHNwZWNpZnkgYSBNT0RFIgorK30KKysKKyt0ZXN0IC16ICIkZXhlY19jbWQi ICYmIFwKKysgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRtb2Rl JyIKKysKKytpZiB0ZXN0IC1uICIkZXhlY19jbWQiOyB0aGVuCisrICBldmFsIGV4ZWMgIiRleGVj X2NtZCIKKysgIGV4aXQgJEVYSVRfRkFJTFVSRQorK2ZpCisrCisrZXhpdCAkZXhpdF9zdGF0dXMK KysKKysKKysjIFRoZSBUQUdzIGJlbG93IGFyZSBkZWZpbmVkIHN1Y2ggdGhhdCB3ZSBuZXZlciBn ZXQgaW50byBhIHNpdHVhdGlvbgorKyMgaW4gd2hpY2ggd2UgZGlzYWJsZSBib3RoIGtpbmRzIG9m IGxpYnJhcmllcy4gIEdpdmVuIGNvbmZsaWN0aW5nCisrIyBjaG9pY2VzLCB3ZSBnbyBmb3IgYSBz dGF0aWMgbGlicmFyeSwgdGhhdCBpcyB0aGUgbW9zdCBwb3J0YWJsZSwKKysjIHNpbmNlIHdlIGNh bid0IHRlbGwgd2hldGhlciBzaGFyZWQgbGlicmFyaWVzIHdlcmUgZGlzYWJsZWQgYmVjYXVzZQor KyMgdGhlIHVzZXIgYXNrZWQgZm9yIHRoYXQgb3IgYmVjYXVzZSB0aGUgcGxhdGZvcm0gZG9lc24n dCBzdXBwb3J0CisrIyB0aGVtLiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IG9uIEFJ WCwgYmVjYXVzZSB3ZSBkb24ndAorKyMgc3VwcG9ydCBoYXZpbmcgYm90aCBzdGF0aWMgYW5kIHNo YXJlZCBsaWJyYXJpZXMgZW5hYmxlZCBhdCB0aGUgc2FtZQorKyMgdGltZSBvbiB0aGF0IHBsYXRm b3JtLCBzbyB3ZSBkZWZhdWx0IHRvIGEgc2hhcmVkLW9ubHkgY29uZmlndXJhdGlvbi4KKysjIElm IGEgZGlzYWJsZS1zaGFyZWQgdGFnIGlzIGdpdmVuLCB3ZSdsbCBmYWxsYmFjayB0byBhIHN0YXRp Yy1vbmx5CisrIyBjb25maWd1cmF0aW9uLiAgQnV0IHdlJ2xsIG5ldmVyIGdvIGZyb20gc3RhdGlj LW9ubHkgdG8gc2hhcmVkLW9ubHkuCisrCisrIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklH OiBkaXNhYmxlLXNoYXJlZAorK2J1aWxkX2xpYnRvb2xfbGlicz1ubworK2J1aWxkX29sZF9saWJz PXllcworKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc2hhcmVkCisrCisr IyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXN0YXRpYworK2J1aWxkX29s ZF9saWJzPWBjYXNlICRidWlsZF9saWJ0b29sX2xpYnMgaW4geWVzKSBlY2hvIG5vOzsgKikgZWNo byB5ZXM7OyBlc2FjYAorKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc3Rh dGljCisrCisrIyBMb2NhbCBWYXJpYWJsZXM6CisrIyBtb2RlOnNoZWxsLXNjcmlwdAorKyMgc2gt aW5kZW50YXRpb246MgorKyMgRW5kOgorKyMgdmk6c3c9MgorKworZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln L2x0fm9ic29sZXRlLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0fm9ic29sZXRl Lm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNAkyMDA5LTA1LTIzIDEwOjAxOjU2LjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSw5MiBAQAorKyMgbHR+b2Jzb2xldGUubTQgLS0gYWNsb2NhbCBz YXRpc2Z5aW5nIG9ic29sZXRlIGRlZmluaXRpb25zLiAgICAtKi1BdXRvY29uZi0qLQorKyMKKysj ICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKyMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQuCisrIwor KyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24gZ2l2ZXMKKysjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1 dGUgaXQsIHdpdGggb3Igd2l0aG91dAorKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlz IG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNCBsdH5vYnNvbGV0ZS5tNAorKwor KyMgVGhlc2UgZXhpc3QgZW50aXJlbHkgdG8gZm9vbCBhY2xvY2FsIHdoZW4gYm9vdHN0cmFwcGlu ZyBsaWJ0b29sLgorKyMKKysjIEluIHRoZSBwYXN0IGxpYnRvb2wubTQgaGFzIHByb3ZpZGVkIG1h Y3JvcyB2aWEgQUNfREVGVU4gKG9yIEFVX0RFRlVOKQorKyMgd2hpY2ggaGF2ZSBsYXRlciBiZWVu IGNoYW5nZWQgdG8gbTRfZGVmaW5lIGFzIHRoZXkgYXJlbid0IHBhcnQgb2YgdGhlCisrIyBleHBv cnRlZCBBUEksIG9yIG1vdmVkIHRvIEF1dG9jb25mIG9yIEF1dG9tYWtlIHdoZXJlIHRoZXkgYmVs b25nLgorKyMKKysjIFRoZSB0cm91YmxlIGlzLCBhY2xvY2FsIGlzIGEgYml0IHRoaWNrLiAgSXQn bGwgc2VlIHRoZSBvbGQgQUNfREVGVU4KKysjIGluIC91c3Ivc2hhcmUvYWNsb2NhbC9saWJ0b29s Lm00IGFuZCByZW1lbWJlciBpdCwgdGhlbiB3aGVuIGl0IHNlZXMgdXMKKysjIHVzaW5nIGEgbWFj cm8gd2l0aCB0aGUgc2FtZSBuYW1lIGluIG91ciBsb2NhbCBtNC9saWJ0b29sLm00IGl0J2xsCisr IyBwdWxsIHRoZSBvbGQgbGlidG9vbC5tNCBpbiAoaXQgZG9lc24ndCBzZWUgb3VyIHNoaW55IG5l dyBtNF9kZWZpbmUKKysjIGFuZCBkb2Vzbid0IGtub3cgYWJvdXQgQXV0b2NvbmYgbWFjcm9zIGF0 IGFsbC4pCisrIworKyMgU28gd2UgcHJvdmlkZSB0aGlzIGZpbGUsIHdoaWNoIGhhcyBhIHNpbGx5 IGZpbGVuYW1lIHNvIGl0J3MgYWx3YXlzCisrIyBpbmNsdWRlZCBhZnRlciBldmVyeXRoaW5nIGVs c2UuICBUaGlzIHByb3ZpZGVzIGFjbG9jYWwgd2l0aCB0aGUKKysjIEFDX0RFRlVOcyBpdCB3YW50 cywgYnV0IHdoZW4gbTQgcHJvY2Vzc2VzIGl0LCBpdCBkb2Vzbid0IGRvIGFueXRoaW5nCisrIyBi ZWNhdXNlIHRob3NlIG1hY3JvcyBhbHJlYWR5IGV4aXN0LCBvciB3aWxsIGJlIG92ZXJ3cml0dGVu IGxhdGVyLgorKyMgV2UgdXNlIEFDX0RFRlVOIG92ZXIgQVVfREVGVU4gZm9yIGNvbXBhdGliaWxp dHkgd2l0aCBhY2xvY2FsLTEuNi4gCisrIworKyMgQW55dGltZSB3ZSB3aXRoZHJhdyBhbiBBQ19E RUZVTiBvciBBVV9ERUZVTiwgcmVtZW1iZXIgdG8gYWRkIGl0IGhlcmUuCisrIyBZZXMsIHRoYXQg bWVhbnMgZXZlcnkgbmFtZSBvbmNlIHRha2VuIHdpbGwgbmVlZCB0byByZW1haW4gaGVyZSB1bnRp bAorKyMgd2UgZ2l2ZSB1cCBjb21wYXRpYmlsaXR5IHdpdGggdmVyc2lvbnMgYmVmb3JlIDEuNywg YXQgd2hpY2ggcG9pbnQKKysjIHdlIG5lZWQgdG8ga2VlcCBvbmx5IHRob3NlIG5hbWVzIHdoaWNo IHdlIHN0aWxsIHJlZmVyIHRvLgorKworKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0 aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCisrQUNfREVGVU4oW0xUT0JT T0xFVEVfVkVSU0lPTl0sIFttNF9pZihbMV0pXSkKKysKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xf TElOS0VSX09QVElPTl0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSldKQor K200X2lmbmRlZihbQUNfUFJPR19FR1JFUF0sCQlbQUNfREVGVU4oW0FDX1BST0dfRUdSRVBdKV0p CisrbTRfaWZuZGVmKFtfTFRfQUNfUFJPR19FQ0hPX0JBQ0tTTEFTSF0sCVtBQ19ERUZVTihbX0xU X0FDX1BST0dfRUNIT19CQUNLU0xBU0hdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfU0hFTExfSU5J VF0sCQlbQUNfREVGVU4oW19MVF9BQ19TSEVMTF9JTklUXSldKQorK200X2lmbmRlZihbX0xUX0FD X1NZU19MSUJQQVRIX0FJWF0sCVtBQ19ERUZVTihbX0xUX0FDX1NZU19MSUJQQVRIX0FJWF0pXSkK KyttNF9pZm5kZWYoW19MVF9QUk9HX0xUTUFJTl0sCQlbQUNfREVGVU4oW19MVF9QUk9HX0xUTUFJ Tl0pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19UQUdWQVJdLAkJW0FDX0RFRlVOKFtfTFRfQUNfVEFH VkFSXSldKQorK200X2lmbmRlZihbQUNfTFRETF9FTkFCTEVfSU5TVEFMTF0sCVtBQ19ERUZVTihb QUNfTFRETF9FTkFCTEVfSU5TVEFMTF0pXSkKKyttNF9pZm5kZWYoW0FDX0xURExfUFJFT1BFTl0s CQlbQUNfREVGVU4oW0FDX0xURExfUFJFT1BFTl0pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19TWVNf Q09NUElMRVJdLAlbQUNfREVGVU4oW19MVF9BQ19TWVNfQ09NUElMRVJdKV0pCisrbTRfaWZuZGVm KFtfTFRfQUNfTE9DS10sCQlbQUNfREVGVU4oW19MVF9BQ19MT0NLXSldKQorK200X2lmbmRlZihb QUNfTElCVE9PTF9TWVNfT0xEX0FSQ0hJVkVdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX09M RF9BUkNISVZFXSldKQorK200X2lmbmRlZihbX0xUX0FDX1RSWV9ETE9QRU5fU0VMRl0sCVtBQ19E RUZVTihbX0xUX0FDX1RSWV9ETE9QRU5fU0VMRl0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xf UFJPR19DQ19DX09dLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19DQ19DX09dKV0pCisrbTRf aWZuZGVmKFtBQ19MSUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1NdLCBbQUNfREVGVU4oW0FDX0xJ QlRPT0xfU1lTX0hBUkRfTElOS19MT0NLU10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfT0JK RElSXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9PQkpESVJdKV0pCisrbTRfaWZuZGVmKFtBQ19M VERMX09CSkRJUl0sCQlbQUNfREVGVU4oW0FDX0xURExfT0JKRElSXSldKQorK200X2lmbmRlZihb QUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEhdLCBbQUNfREVGVU4oW0FDX0xJQlRP T0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9T WVNfTElCX1NUUklQXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19MSUJfU1RSSVBdKV0pCisr bTRfaWZuZGVmKFtBQ19QQVRIX01BR0lDXSwJCVtBQ19ERUZVTihbQUNfUEFUSF9NQUdJQ10pXSkK KyttNF9pZm5kZWYoW0FDX1BST0dfTERfR05VXSwJCVtBQ19ERUZVTihbQUNfUFJPR19MRF9HTlVd KV0pCisrbTRfaWZuZGVmKFtBQ19QUk9HX0xEX1JFTE9BRF9GTEFHXSwJW0FDX0RFRlVOKFtBQ19Q Uk9HX0xEX1JFTE9BRF9GTEFHXSldKQorK200X2lmbmRlZihbQUNfREVQTElCU19DSEVDS19NRVRI T0RdLAlbQUNfREVGVU4oW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9EXSldKQorK200X2lmbmRlZihb QUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEldLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xf UFJPR19DT01QSUxFUl9OT19SVFRJXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfR0xP QkFMX1NZTUJPTF9QSVBFXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9M X1BJUEVdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDXSwgW0FD X0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDXSldKQorK200X2lmbmRlZihbQUNf TElCVE9PTF9QUk9HX0xEX1NITElCU10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0xEX1NI TElCU10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVBdLAlbQUNfREVG VU4oW0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVBdKV0pCisrbTRfaWZuZGVmKFtMVF9BQ19QUk9H X0VHUkVQXSwJCVtBQ19ERUZVTihbTFRfQUNfUFJPR19FR1JFUF0pXSkKKyttNF9pZm5kZWYoW0xU X0FDX1BST0dfU0VEXSwJCVtBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdKV0pCisrbTRfaWZuZGVm KFtfTFRfQ0NfQkFTRU5BTUVdLAkJW0FDX0RFRlVOKFtfTFRfQ0NfQkFTRU5BTUVdKV0pCisrbTRf aWZuZGVmKFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVdLAlbQUNfREVGVU4oW19MVF9DT01QSUxF Ul9CT0lMRVJQTEFURV0pXSkKKyttNF9pZm5kZWYoW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdLAlb QUNfREVGVU4oW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdKV0pCisrbTRfaWZuZGVmKFtfQUNfUFJP R19MSUJUT09MXSwJCVtBQ19ERUZVTihbX0FDX1BST0dfTElCVE9PTF0pXSkKKyttNF9pZm5kZWYo W0FDX0xJQlRPT0xfU0VUVVBdLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NFVFVQXSldKQorK200 X2lmbmRlZihbX0xUX0FDX0NIRUNLX0RMRkNOXSwJCVtBQ19ERUZVTihbX0xUX0FDX0NIRUNLX0RM RkNOXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdLAlbQUNf REVGVU4oW0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSXSldKQorK200X2lmbmRlZihbX0xU X0FDX1RBR0NPTkZJR10sCQlbQUNfREVGVU4oW19MVF9BQ19UQUdDT05GSUddKV0pCisrbTRfaWZu ZGVmKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sCVtBQ19ERUZVTihbQUNfRElTQUJMRV9GQVNU X0lOU1RBTExdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DWFhdLAkJW0FDX0RFRlVOKFtf TFRfQUNfTEFOR19DWFhdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19GNzddLAkJW0FDX0RF RlVOKFtfTFRfQUNfTEFOR19GNzddKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pdLAkJ W0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX1JD XSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9SQ10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xf TEFOR19DX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSldKQor K200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5H X0NfQ09ORklHXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUddLAlb QUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DWFhfQ09ORklHXSldKQorK200X2lmbmRlZihbX0xU X0FDX0xBTkdfQ1hYX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ1hYX0NPTkZJR10p XSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHXSwJW0FDX0RFRlVOKFtB Q19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0Y3 N19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N19DT05GSUddKV0pCisrbTRfaWZu ZGVmKFtBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9M QU5HX0dDSl9DT05GSUddKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklHXSwJ W0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklHXSldKQorK200X2lmbmRlZihbQUNfTElC VE9PTF9MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJ R10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihbX0xU X0FDX0xBTkdfUkNfQ09ORklHXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9DT05GSUddLAkJ W0FDX0RFRlVOKFtBQ19MSUJUT09MX0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19GSUxF X0xURExMX0NdLAlbQUNfREVGVU4oW19MVF9BQ19GSUxFX0xURExMX0NdKV0pCitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0b3B0aW9ucy5tNCBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2x0b3B0aW9ucy5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG9wdGlv bnMubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvY29uZmlnL2x0b3B0aW9ucy5tNAkyMDA5LTA1LTIzIDEwOjAxOjU1LjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSwzNjggQEAKKysjIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9wdGlv biBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysjCisrIyAg IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysjICAgV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKKysjCisr IyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biBnaXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA2IGx0b3B0aW9ucy5tNAorKworKyMg VGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNl ZSBtNF9kZWZpbmUuCisrQUNfREVGVU4oW0xUT1BUSU9OU19WRVJTSU9OXSwgW200X2lmKFsxXSld KQorKworKworKyMgX0xUX01BTkdMRV9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUo W19MVF9NQU5HTEVfT1BUSU9OXSwKKytbW19MVF9PUFRJT05fXW00X2JwYXRzdWJzdCgkMV9fJDIs IFtbXmEtekEtWjAtOV9dXSwgW19dKV0pCisrCisrCisrIyBfTFRfU0VUX09QVElPTihNQUNSTy1O QU1FLCBPUFRJT04tTkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyMgU2V0IG9wdGlvbiBPUFRJT04tTkFNRSBmb3IgbWFjcm8gTUFDUk8tTkFNRSwgYW5k IGlmIHRoZXJlIGlzIGEKKysjIG1hdGNoaW5nIGhhbmRsZXIgZGVmaW5lZCwgZGlzcGF0Y2ggdG8g aXQuICBPdGhlciBPUFRJT04tTkFNRXMgYXJlCisrIyBzYXZlZCBhcyBhIGZsYWcuCisrbTRfZGVm aW5lKFtfTFRfU0VUX09QVElPTl0sCisrW200X2RlZmluZShfTFRfTUFOR0xFX09QVElPTihbJDFd LCBbJDJdKSlkbmwKKyttNF9pZmRlZihfTFRfTUFOR0xFX0RFRlVOKFskMV0sIFskMl0pLAorKyAg ICAgICAgX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwKKysgICAgW200X3dhcm5pbmcoW1Vu a25vd24gJDEgb3B0aW9uIGAkMiddKV0pW11kbmwKKytdKQorKworKworKyMgX0xUX0lGX09QVElP TihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBzZXQsIElGLU5PVC1TRVQgb3RoZXJ3aXNl LgorK200X2RlZmluZShbX0xUX0lGX09QVElPTl0sCisrW200X2lmZGVmKF9MVF9NQU5HTEVfT1BU SU9OKFskMV0sIFskMl0pLCBbJDNdLCBbJDRdKV0pCisrCisrCisrIyBfTFRfVU5MRVNTX09QVElP TlMoTUFDUk8tTkFNRSwgT1BUSU9OLUxJU1QsIElGLU5PVC1TRVQpCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFeGVjdXRlIElG LU5PVC1TRVQgdW5sZXNzIGFsbCBvcHRpb25zIGluIE9QVElPTi1MSVNUIGZvciBNQUNSTy1OQU1F CisrIyBhcmUgc2V0LgorK200X2RlZmluZShbX0xUX1VOTEVTU19PUFRJT05TXSwKKytbbTRfZm9y ZWFjaChbX0xUX09wdGlvbl0sIG00X3NwbGl0KG00X25vcm1hbGl6ZShbJDJdKSksCisrCSAgICBb bTRfaWZkZWYoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgX0xUX09wdGlvbiksCisrCQkgICAgICBb bTRfZGVmaW5lKFskMF9mb3VuZF0pXSldKVtdZG5sCisrbTRfaWZkZWYoWyQwX2ZvdW5kXSwgW200 X3VuZGVmaW5lKFskMF9mb3VuZF0pXSwgWyQzCisrXSlbXWRubAorK10pCisrCisrCisrIyBfTFRf U0VUX09QVElPTlMoTUFDUk8tTkFNRSwgT1BUSU9OLUxJU1QpCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBPUFRJT04tTElTVCBpcyBhIHNwYWNlLXNlcGFy YXRlZCBsaXN0IG9mIExpYnRvb2wgb3B0aW9ucyBhc3NvY2lhdGVkCisrIyB3aXRoIE1BQ1JPLU5B TUUuICBJZiBhbnkgT1BUSU9OIGhhcyBhIG1hdGNoaW5nIGhhbmRsZXIgZGVjbGFyZWQgd2l0aAor KyMgTFRfT1BUSU9OX0RFRklORSwgZGlzcGF0Y2ggdG8gdGhhdCBtYWNybzsgb3RoZXJ3aXNlIGNv bXBsYWluIGFib3V0CisrIyB0aGUgdW5rbm93biBvcHRpb24gYW5kIGV4aXQuCisrbTRfZGVmdW4o W19MVF9TRVRfT1BUSU9OU10sCisrWyMgU2V0IG9wdGlvbnMKKyttNF9mb3JlYWNoKFtfTFRfT3B0 aW9uXSwgbTRfc3BsaXQobTRfbm9ybWFsaXplKFskMl0pKSwKKysgICAgW19MVF9TRVRfT1BUSU9O KFskMV0sIF9MVF9PcHRpb24pXSkKKysKKyttNF9pZihbJDFdLFtMVF9JTklUXSxbCisrICBkbmwK KysgIGRubCBTaW1wbHkgc2V0IHNvbWUgZGVmYXVsdCB2YWx1ZXMgKGkuZSBvZmYpIGlmIGJvb2xl YW4gb3B0aW9ucyB3ZXJlIG5vdAorKyAgZG5sIHNwZWNpZmllZDoKKysgIF9MVF9VTkxFU1NfT1BU SU9OUyhbTFRfSU5JVF0sIFtkbG9wZW5dLCBbZW5hYmxlX2Rsb3Blbj1ubworKyAgXSkKKysgIF9M VF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFt3aW4zMi1kbGxdLCBbZW5hYmxlX3dpbjMyX2Rs bD1ubworKyAgXSkKKysgIGRubAorKyAgZG5sIElmIG5vIHJlZmVyZW5jZSB3YXMgbWFkZSB0byB2 YXJpb3VzIHBhaXJzIG9mIG9wcG9zaW5nIG9wdGlvbnMsIHRoZW4KKysgIGRubCB3ZSBydW4gdGhl IGRlZmF1bHQgbW9kZSBoYW5kbGVyIGZvciB0aGUgcGFpci4gIEZvciBleGFtcGxlLCBpZiBuZWl0 aGVyCisrICBkbmwgYHNoYXJlZCcgbm9yIGBkaXNhYmxlLXNoYXJlZCcgd2FzIHBhc3NlZCwgd2Ug ZW5hYmxlIGJ1aWxkaW5nIG9mIHNoYXJlZAorKyAgZG5sIGFyY2hpdmVzIGJ5IGRlZmF1bHQ6Cisr ICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbc2hhcmVkIGRpc2FibGUtc2hhcmVkXSwg W19MVF9FTkFCTEVfU0hBUkVEXSkKKysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtz dGF0aWMgZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUNdKQorKyAgX0xUX1VOTEVT U19PUFRJT05TKFtMVF9JTklUXSwgW3BpYy1vbmx5IG5vLXBpY10sIFtfTFRfV0lUSF9QSUNdKQor KyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW2Zhc3QtaW5zdGFsbCBkaXNhYmxlLWZh c3QtaW5zdGFsbF0sCisrICAJCSAgIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF0pCisrICBdKQor K10pIyBfTFRfU0VUX09QVElPTlMKKysKKysKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gIyMKKysjIyBNYWNyb3MgdG8gaGFuZGxlIExUX0lOSVQgb3B0aW9ucy4gIyMKKysj IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKysjIF9MVF9NQU5HTEVf REVGVU4oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbX0xUX01BTkdMRV9ERUZVTl0sCisrW1tf TFRfT1BUSU9OX0RFRlVOX11tNF9icGF0c3Vic3QobTRfdG91cHBlcihbJDFfXyQyXSksIFtbXkEt WjAtOV9dXSwgW19dKV0pCisrCisrCisrIyBMVF9PUFRJT05fREVGSU5FKE1BQ1JPLU5BTUUsIE9Q VElPTi1OQU1FLCBDT0RFKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW0xUX09QVElPTl9ERUZJTkVdLAorK1ttNF9kZWZpbmUo X0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwgWyQzXSlbXWRubAorK10pIyBMVF9PUFRJT05f REVGSU5FCisrCisrCisrIyBkbG9wZW4KKysjIC0tLS0tLQorK0xUX09QVElPTl9ERUZJTkUoW0xU X0lOSVRdLCBbZGxvcGVuXSwgW2VuYWJsZV9kbG9wZW49eWVzCisrXSkKKysKKytBVV9ERUZVTihb QUNfTElCVE9PTF9ETE9QRU5dLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkbG9wZW5d KQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFu ZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdQorK3B1dCB0aGUgYGRsb3Blbicg b3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrZG5sIGFj bG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElC VE9PTF9ETE9QRU5dLCBbXSkKKysKKysKKysjIHdpbjMyLWRsbAorKyMgLS0tLS0tLS0tCisrIyBE ZWNsYXJlIHBhY2thZ2Ugc3VwcG9ydCBmb3IgYnVpbGRpbmcgd2luMzIgZGxsJ3MuCisrTFRfT1BU SU9OX0RFRklORShbTFRfSU5JVF0sIFt3aW4zMi1kbGxdLAorK1tlbmFibGVfd2luMzJfZGxsPXll cworKworK2Nhc2UgJGhvc3QgaW4KKysqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHcz MiogfCAqLWNlZ2NjKikKKysgIEFDX0NIRUNLX1RPT0woQVMsIGFzLCBmYWxzZSkKKysgIEFDX0NI RUNLX1RPT0woRExMVE9PTCwgZGxsdG9vbCwgZmFsc2UpCisrICBBQ19DSEVDS19UT09MKE9CSkRV TVAsIG9iamR1bXAsIGZhbHNlKQorKyAgOzsKKytlc2FjCisrCisrdGVzdCAteiAiJEFTIiAmJiBB Uz1hcworK19MVF9ERUNMKFtdLCBbQVNdLCAgICAgIFswXSwgW0Fzc2VtYmxlciBwcm9ncmFtXSlk bmwKKysKKyt0ZXN0IC16ICIkRExMVE9PTCIgJiYgRExMVE9PTD1kbGx0b29sCisrX0xUX0RFQ0wo W10sIFtETExUT09MXSwgWzBdLCBbRExMIGNyZWF0aW9uIHByb2dyYW1dKWRubAorKworK3Rlc3Qg LXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKKytfTFRfREVDTChbXSwgW09CSkRVTVBd LCBbMF0sIFtPYmplY3QgZHVtcGVyIHByb2dyYW1dKWRubAorK10pIyB3aW4zMi1kbGwKKysKKytB VV9ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExdLAorK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklD QUxfSE9TVF0pZG5sCisrX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbd2luMzItZGxsXSkKKytB Q19ESUFHTk9TRShbb2Jzb2xldGVdLAorK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhl IGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKKytwdXQgdGhlIGB3aW4zMi1kbGwnIG9w dGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKKytdKQorKworK2RubCBhY2xv Y2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRP T0xfV0lOMzJfRExMXSwgW10pCisrCisrCisrIyBfTFRfRU5BQkxFX1NIQVJFRChbREVGQVVMVF0p CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0tZW5h YmxlLXNoYXJlZCBmbGFnLCBhbmQgc3VwcG9ydHMgdGhlIGBzaGFyZWQnIGFuZAorKyMgYGRpc2Fi bGUtc2hhcmVkJyBMVF9JTklUIG9wdGlvbnMuCisrIyBERUZBVUxUIGlzIGVpdGhlciBgeWVzJyBv ciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHllcycuCisrbTRfZGVmaW5lKFtf TFRfRU5BQkxFX1NIQVJFRF0sCisrW200X2RlZmluZShbX0xUX0VOQUJMRV9TSEFSRURfREVGQVVM VF0sIFttNF9pZigkMSwgbm8sIG5vLCB5ZXMpXSlkbmwKKytBQ19BUkdfRU5BQkxFKFtzaGFyZWRd LAorKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXNoYXJlZEA8OkA9UEtHU0A6PkBdLAor KwlbYnVpbGQgc2hhcmVkIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1dX0xUX0VOQUJMRV9TSEFSRURf REVGQVVMVFtAOj5AXSldLAorKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAk ZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKKysgICAgbm8pIGVu YWJsZV9zaGFyZWQ9bm8gOzsKKysgICAgKikKKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisrICAg ICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24g bGlzdCBzZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30k UEFUSF9TRVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJSUZT PSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAgZW5h YmxlX3NoYXJlZD15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCisrICAgICAgOzsKKysgICAgZXNhY10sCisrICAgIFtlbmFibGVfc2hhcmVkPV1fTFRfRU5B QkxFX1NIQVJFRF9ERUZBVUxUKQorKworKyAgICBfTFRfREVDTChbYnVpbGRfbGlidG9vbF9saWJz XSwgW2VuYWJsZV9zaGFyZWRdLCBbMF0sCisrCVtXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFy ZWQgbGlicmFyaWVzXSkKKytdKSMgX0xUX0VOQUJMRV9TSEFSRUQKKysKKytMVF9PUFRJT05fREVG SU5FKFtMVF9JTklUXSwgW3NoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRChbeWVzXSldKQorK0xU X09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFyZWRdLCBbX0xUX0VOQUJMRV9T SEFSRUQoW25vXSldKQorKworKyMgT2xkIG5hbWVzOgorK0FDX0RFRlVOKFtBQ19FTkFCTEVfU0hB UkVEXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlz YWJsZS1dKVtzaGFyZWRdKQorK10pCisrCisrQUNfREVGVU4oW0FDX0RJU0FCTEVfU0hBUkVEXSwK KytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFyZWRdKQorK10pCisrCisr QVVfREVGVU4oW0FNX0VOQUJMRV9TSEFSRURdLCBbQUNfRU5BQkxFX1NIQVJFRCgkQCldKQorK0FV X0RFRlVOKFtBTV9ESVNBQkxFX1NIQVJFRF0sIFtBQ19ESVNBQkxFX1NIQVJFRCgkQCldKQorKwor K2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4o W0FNX0VOQUJMRV9TSEFSRURdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU0hBUkVE XSwgW10pCisrCisrCisrCisrIyBfTFRfRU5BQkxFX1NUQVRJQyhbREVGQVVMVF0pCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLXN0YXRp YyBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYHN0YXRpYycgYW5kCisrIyBgZGlzYWJsZS1zdGF0aWMn IExUX0lOSVQgb3B0aW9ucy4KKysjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJ ZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKyttNF9kZWZpbmUoW19MVF9FTkFCTEVf U1RBVElDXSwKKytbbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUXSwgW200X2lm KCQxLCBubywgbm8sIHllcyldKWRubAorK0FDX0FSR19FTkFCTEUoW3N0YXRpY10sCisrICAgIFtB U19IRUxQX1NUUklORyhbLS1lbmFibGUtc3RhdGljQDw6QD1QS0dTQDo+QF0sCisrCVtidWlsZCBz dGF0aWMgbGlicmFyaWVzIEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUW0A6 PkBdKV0sCisrICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwg aW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OworKyAgICBubykgZW5hYmxlX3N0YXRp Yz1ubyA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICMgTG9vayBh dCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJh dG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJB VE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVf aWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9zdGF0aWM9 eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAg IDs7CisrICAgIGVzYWNdLAorKyAgICBbZW5hYmxlX3N0YXRpYz1dX0xUX0VOQUJMRV9TVEFUSUNf REVGQVVMVCkKKysKKysgICAgX0xUX0RFQ0woW2J1aWxkX29sZF9saWJzXSwgW2VuYWJsZV9zdGF0 aWNdLCBbMF0sCisrCVtXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkK KytdKSMgX0xUX0VOQUJMRV9TVEFUSUMKKysKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwg W3N0YXRpY10sIFtfTFRfRU5BQkxFX1NUQVRJQyhbeWVzXSldKQorK0xUX09QVElPTl9ERUZJTkUo W0xUX0lOSVRdLCBbZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUMoW25vXSldKQor KworKyMgT2xkIG5hbWVzOgorK0FDX0RFRlVOKFtBQ19FTkFCTEVfU1RBVElDXSwKKytbX0xUX1NF VF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzdGF0aWNd KQorK10pCisrCisrQUNfREVGVU4oW0FDX0RJU0FCTEVfU1RBVElDXSwKKytbX0xUX1NFVF9PUFRJ T04oW0xUX0lOSVRdLCBbZGlzYWJsZS1zdGF0aWNdKQorK10pCisrCisrQVVfREVGVU4oW0FNX0VO QUJMRV9TVEFUSUNdLCBbQUNfRU5BQkxFX1NUQVRJQygkQCldKQorK0FVX0RFRlVOKFtBTV9ESVNB QkxFX1NUQVRJQ10sIFtBQ19ESVNBQkxFX1NUQVRJQygkQCldKQorKworK2RubCBhY2xvY2FsLTEu NCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9TVEFU SUNdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU1RBVElDXSwgW10pCisrCisrCisr CisrIyBfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbREVGQVVMVF0pCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLWZhc3QtaW5z dGFsbCBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYGZhc3QtaW5zdGFsbCcKKysjIGFuZCBgZGlzYWJs ZS1mYXN0LWluc3RhbGwnIExUX0lOSVQgb3B0aW9ucy4KKysjIERFRkFVTFQgaXMgZWl0aGVyIGB5 ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKyttNF9kZWZp bmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMXSwKKytbbTRfZGVmaW5lKFtfTFRfRU5BQkxFX0ZB U1RfSU5TVEFMTF9ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8sIHllcyldKWRubAorK0FDX0FS R19FTkFCTEUoW2Zhc3QtaW5zdGFsbF0sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUt ZmFzdC1pbnN0YWxsQDw6QD1QS0dTQDo+QF0sCisrICAgIFtvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0 YWxsYXRpb24gQDw6QGRlZmF1bHQ9XV9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFRbQDo+ QF0pXSwKKysgICAgW3A9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAgIGNhc2UgJGVuYWJsZXZhbCBp bgorKyAgICB5ZXMpIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzIDs7CisrICAgIG5vKSBlbmFibGVf ZmFzdF9pbnN0YWxsPW5vIDs7CisrICAgICopCisrICAgICAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1u bworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUg Y29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0i JHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRv CisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgor KwkgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElG Uz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWNdLAorKyAgICBbZW5hYmxlX2Zh c3RfaW5zdGFsbD1dX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVCkKKysKKytfTFRfREVD TChbZmFzdF9pbnN0YWxsXSwgW2VuYWJsZV9mYXN0X2luc3RhbGxdLCBbMF0sCisrCSBbV2hldGhl ciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uXSlkbmwKKytdKSMgX0xU X0VOQUJMRV9GQVNUX0lOU1RBTEwKKysKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Zh c3QtaW5zdGFsbF0sIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbeWVzXSldKQorK0xUX09QVElP Tl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1mYXN0LWluc3RhbGxdLCBbX0xUX0VOQUJMRV9G QVNUX0lOU1RBTEwoW25vXSldKQorKworKyMgT2xkIG5hbWVzOgorK0FVX0RFRlVOKFtBQ19FTkFC TEVfRkFTVF9JTlNUQUxMXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFd LCBbbm9dLCBbZGlzYWJsZS1dKVtmYXN0LWluc3RhbGxdKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0 ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09Q VElPTiB3aGVuIHlvdSBwdXQKKyt0aGUgYGZhc3QtaW5zdGFsbCcgb3B0aW9uIGludG8gTFRfSU5J VCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrQVVfREVGVU4oW0FDX0RJU0FCTEVfRkFT VF9JTlNUQUxMXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1mYXN0LWlu c3RhbGxdKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJu aW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdSBwdXQKKyt0aGUgYGRp c2FibGUtZmFzdC1pbnN0YWxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVy Ll0pCisrXSkKKysKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Cisr ZG5sIEFDX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxMXSwgW10pCisrZG5sIEFDX0RFRlVO KFtBTV9ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sIFtdKQorKworKworKyMgX0xUX1dJVEhfUElDKFtN T0RFXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0td2l0aC1w aWMgZmxhZywgYW5kIHN1cHBvcnQgdGhlIGBwaWMtb25seScgYW5kIGBuby1waWMnCisrIyBMVF9J TklUIG9wdGlvbnMuCisrIyBNT0RFIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRl ZCwgaXQgZGVmYXVsdHMgdG8gYGJvdGgnLgorK200X2RlZmluZShbX0xUX1dJVEhfUElDXSwKKytb QUNfQVJHX1dJVEgoW3BpY10sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXBpY10sCisr CVt0cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBAPDpAZGVmYXVsdD11c2UgYm90 aEA6PkBdKV0sCisrICAgIFtwaWNfbW9kZT0iJHdpdGh2YWwiXSwKKysgICAgW3BpY19tb2RlPWRl ZmF1bHRdKQorKworK3Rlc3QgLXogIiRwaWNfbW9kZSIgJiYgcGljX21vZGU9bTRfZGVmYXVsdChb JDFdLCBbZGVmYXVsdF0pCisrCisrX0xUX0RFQ0woW10sIFtwaWNfbW9kZV0sIFswXSwgW1doYXQg dHlwZSBvZiBvYmplY3RzIHRvIGJ1aWxkXSlkbmwKKytdKSMgX0xUX1dJVEhfUElDCisrCisrTFRf T1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtwaWMtb25seV0sIFtfTFRfV0lUSF9QSUMoW3llc10p XSkKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW25vLXBpY10sIFtfTFRfV0lUSF9QSUMo W25vXSldKQorKworKyMgT2xkIG5hbWU6CisrQVVfREVGVU4oW0FDX0xJQlRPT0xfUElDTU9ERV0s CisrW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW3BpYy1vbmx5XSkKKytBQ19ESUFHTk9TRShb b2Jzb2xldGVdLAorK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xU X1NFVF9PUFRJT04gd2hlbiB5b3UKKytwdXQgdGhlIGBwaWMtb25seScgb3B0aW9uIGludG8gTFRf SU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwg W10pCisrCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBMVERMX0lOSVQgT3B0aW9ucyAj IworKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCisrCisrbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwg W10pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW25vbnJlY3Vyc2l2ZV0sCisrCQkg W200X2RlZmluZShbX0xURExfTU9ERV0sIFtub25yZWN1cnNpdmVdKV0pCisrTFRfT1BUSU9OX0RF RklORShbTFRETF9JTklUXSwgW3JlY3Vyc2l2ZV0sCisrCQkgW200X2RlZmluZShbX0xURExfTU9E RV0sIFtyZWN1cnNpdmVdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW3N1YnBy b2plY3RdLAorKwkJIFttNF9kZWZpbmUoW19MVERMX01PREVdLCBbc3VicHJvamVjdF0pXSkKKysK KyttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbXSkKKytMVF9PUFRJT05fREVGSU5FKFtMVERMX0lO SVRdLCBbaW5zdGFsbGFibGVdLAorKwkJIFttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbaW5zdGFs bGFibGVdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW2NvbnZlbmllbmNlXSwK KysJCSBbbTRfZGVmaW5lKFtfTFRETF9UWVBFXSwgW2NvbnZlbmllbmNlXSldKQorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHN1Z2FyLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvbHRzdWdhci5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHN1Z2FyLm00 CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVw MzAwL2NvbmZpZy9sdHN1Z2FyLm00CTIwMDktMDUtMjMgMTA6MDE6NTYuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDEyMyBAQAorKyMgbHRzdWdhci5tNCAtLSBsaWJ0b29sIG00IGJhc2UgbGF5 ZXIuICAgICAgICAgICAgICAgICAgICAgICAgIC0qLUF1dG9jb25mLSotCisrIworKyMgQ29weXJp Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKyMgV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKKysjCisrIyBUaGlzIGZp bGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwor KyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0 aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlz IHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA2IGx0c3VnYXIubTQKKysKKysjIFRoaXMgaXMgdG8g aGVscCBhY2xvY2FsIGZpbmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5l LgorK0FDX0RFRlVOKFtMVFNVR0FSX1ZFUlNJT05dLCBbbTRfaWYoWzAuMV0pXSkKKysKKysKKysj IGx0X2pvaW4oU0VQLCBBUkcxLCBbQVJHMi4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgUHJvZHVjZSBBUkcxU0VQQVJHMi4uLlNFUEFSR24sIG9taXR0aW5nIFtdIGFy Z3VtZW50cyBhbmQgdGhlaXIKKysjIGFzc29jaWF0ZWQgc2VwYXJhdG9yLgorKyMgTmVlZGVkIHVu dGlsIHdlIGNhbiByZWx5IG9uIG00X2pvaW4gZnJvbSBBdXRvY29uZiAyLjYyLCBzaW5jZSBhbGwg ZWFybGllcgorKyMgdmVyc2lvbnMgaW4gbTRzdWdhciBoYWQgYnVncy4KKyttNF9kZWZpbmUoW2x0 X2pvaW5dLAorK1ttNF9pZihbJCNdLCBbMV0sIFtdLAorKyAgICAgICBbJCNdLCBbMl0sIFtbJDJd XSwKKysgICAgICAgW200X2lmKFskMl0sIFtdLCBbXSwgW1skMl1fXSkkMChbJDFdLCBtNF9zaGlm dChtNF9zaGlmdCgkQCkpKV0pXSkKKyttNF9kZWZpbmUoW19sdF9qb2luXSwKKytbbTRfaWYoWyQj JDJdLCBbMl0sIFtdLAorKyAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtdLCBbWyQxJDJdXSkkMChb JDFdLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpKV0pXSkKKysKKysKKysjIGx0X2NhcihMSVNUKQor KyMgbHRfY2RyKExJU1QpCisrIyAtLS0tLS0tLS0tLS0KKysjIE1hbmlwdWxhdGUgbTQgbGlzdHMu CisrIyBUaGVzZSBtYWNyb3MgYXJlIG5lY2Vzc2FyeSBhcyBsb25nIGFzIHdpbGwgc3RpbGwgbmVl ZCB0byBzdXBwb3J0CisrIyBBdXRvY29uZi0yLjU5IHdoaWNoIHF1b3RlcyBkaWZmZXJlbnRseS4K KyttNF9kZWZpbmUoW2x0X2Nhcl0sIFtbJDFdXSkKKyttNF9kZWZpbmUoW2x0X2Nkcl0sCisrW200 X2lmKFskI10sIDAsIFttNF9mYXRhbChbJDA6IGNhbm5vdCBiZSBjYWxsZWQgd2l0aG91dCBhcmd1 bWVudHNdKV0sCisrICAgICAgIFskI10sIDEsIFtdLAorKyAgICAgICBbbTRfZHF1b3RlKG00X3No aWZ0KCRAKSldKV0pCisrbTRfZGVmaW5lKFtsdF91bnF1b3RlXSwgJDEpCisrCisrCisrIyBsdF9h cHBlbmQoTUFDUk8tTkFNRSwgU1RSSU5HLCBbU0VQQVJBVE9SXSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUmVkZWZpbmUgTUFDUk8tTkFNRSB0byBo b2xkIGl0cyBmb3JtZXIgY29udGVudCBwbHVzIGBTRVBBUkFUT1InYFNUUklORycuCisrIyBOb3Rl IHRoYXQgbmVpdGhlciBTRVBBUkFUT1Igbm9yIFNUUklORyBhcmUgZXhwYW5kZWQ7IHRoZXkgYXJl IGFwcGVuZGVkCisrIyB0byBNQUNSTy1OQU1FIGFzIGlzIChsZWF2aW5nIHRoZSBleHBhbnNpb24g Zm9yIHdoZW4gTUFDUk8tTkFNRSBpcyBpbnZva2VkKS4KKysjIE5vIFNFUEFSQVRPUiBpcyBvdXRw dXQgaWYgTUFDUk8tTkFNRSB3YXMgcHJldmlvdXNseSB1bmRlZmluZWQgKGRpZmZlcmVudAorKyMg dGhhbiBkZWZpbmVkIGFuZCBlbXB0eSkuCisrIworKyMgVGhpcyBtYWNybyBpcyBuZWVkZWQgdW50 aWwgd2UgY2FuIHJlbHkgb24gQXV0b2NvbmYgMi42Miwgc2luY2UgZWFybGllcgorKyMgdmVyc2lv bnMgb2YgbTRzdWdhciBtaXN0YWtlbmx5IGV4cGFuZGVkIFNFUEFSQVRPUiBidXQgbm90IFNUUklO Ry4KKyttNF9kZWZpbmUoW2x0X2FwcGVuZF0sCisrW200X2RlZmluZShbJDFdLAorKwkgICBtNF9p ZmRlZihbJDFdLCBbbTRfZGVmbihbJDFdKVskM11dKVskMl0pXSkKKysKKysKKysKKysjIGx0X2Nv bWJpbmUoU0VQLCBQUkVGSVgtTElTVCwgSU5GSVgsIFNVRkZJWDEsIFtTVUZGSVgyLi4uXSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIFByb2R1Y2UgYSBTRVAgZGVsaW1pdGVkIGxpc3Qgb2YgYWxsIHBhaXJlZCBjb21iaW5h dGlvbnMgb2YgZWxlbWVudHMgb2YKKysjIFBSRUZJWC1MSVNUIHdpdGggU1VGRklYMSB0aHJvdWdo IFNVRkZJWG4uICBFYWNoIGVsZW1lbnQgb2YgdGhlIGxpc3QKKysjIGhhcyB0aGUgZm9ybSBQUkVG SVhtSU5GSVhTVUZGSVhuLgorKyMgTmVlZGVkIHVudGlsIHdlIGNhbiByZWx5IG9uIG00X2NvbWJp bmUgYWRkZWQgaW4gQXV0b2NvbmYgMi42Mi4KKyttNF9kZWZpbmUoW2x0X2NvbWJpbmVdLAorK1tt NF9pZihtNF9ldmFsKFskIyA+IDNdKSwgWzFdLAorKyAgICAgICBbbTRfcHVzaGRlZihbX0x0X3Nl cF0sIFttNF9kZWZpbmUoW19MdF9zZXBdLCBtNF9kZWZuKFtsdF9jYXJdKSldKV1dZG5sCisrW1tt NF9mb3JlYWNoKFtfTHRfcHJlZml4XSwgWyQyXSwKKysJICAgICBbbTRfZm9yZWFjaChbX0x0X3N1 ZmZpeF0sCisrCQldbTRfZHF1b3RlKG00X2RxdW90ZShtNF9zaGlmdChtNF9zaGlmdChtNF9zaGlm dCgkQCkpKSkpWywKKysJW19MdF9zZXAoWyQxXSlbXW00X2RlZm4oW19MdF9wcmVmaXhdKVskM11t NF9kZWZuKFtfTHRfc3VmZml4XSldKV0pXSldKQorKworKworKyMgbHRfaWZfYXBwZW5kX3VuaXEo TUFDUk8tTkFNRSwgVkFSTkFNRSwgW1NFUEFSQVRPUl0sIFtVTklRXSwgW05PVC1VTklRXSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBJZmYgTUFDUk8tTkFNRSBkb2VzIG5vdCB5ZXQgY29udGFpbiBW QVJOQU1FLCB0aGVuIGFwcGVuZCBpdCAoZGVsaW1pdGVkCisrIyBieSBTRVBBUkFUT1IgaWYgc3Vw cGxpZWQpIGFuZCBleHBhbmQgVU5JUSwgZWxzZSBOT1QtVU5JUS4KKyttNF9kZWZpbmUoW2x0X2lm X2FwcGVuZF91bmlxXSwKKytbbTRfaWZkZWYoWyQxXSwKKysJICBbbTRfaWYobTRfaW5kZXgoWyQz XW00X2RlZm4oWyQxXSlbJDNdLCBbJDMkMiQzXSksIFstMV0sCisrCQkgW2x0X2FwcGVuZChbJDFd LCBbJDJdLCBbJDNdKSQ0XSwKKysJCSBbJDVdKV0sCisrCSAgW2x0X2FwcGVuZChbJDFdLCBbJDJd LCBbJDNdKSQ0XSldKQorKworKworKyMgbHRfZGljdF9hZGQoRElDVCwgS0VZLCBWQUxVRSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kaWN0X2FkZF0s CisrW200X2RlZmluZShbJDEoJDIpXSwgWyQzXSldKQorKworKworKyMgbHRfZGljdF9hZGRfc3Vi a2V5KERJQ1QsIEtFWSwgU1VCS0VZLCBWQUxVRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kaWN0X2FkZF9zdWJrZXldLAor K1ttNF9kZWZpbmUoWyQxKCQyOiQzKV0sIFskNF0pXSkKKysKKysKKysjIGx0X2RpY3RfZmV0Y2go RElDVCwgS0VZLCBbU1VCS0VZXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyttNF9kZWZpbmUoW2x0X2RpY3RfZmV0Y2hdLAorK1ttNF9pZnZhbChbJDNdLAorKwltNF9p ZmRlZihbJDEoJDI6JDMpXSwgW200X2RlZm4oWyQxKCQyOiQzKV0pXSksCisrICAgIG00X2lmZGVm KFskMSgkMildLCBbbTRfZGVmbihbJDEoJDIpXSldKSldKQorKworKworKyMgbHRfaWZfZGljdF9m ZXRjaChESUNULCBLRVksIFtTVUJLRVldLCBWQUxVRSwgSUYtVFJVRSwgW0lGLUZBTFNFXSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9pZl9kaWN0X2ZldGNoXSwKKytbbTRfaWYobHRfZGlj dF9mZXRjaChbJDFdLCBbJDJdLCBbJDNdKSwgWyQ0XSwKKysJWyQ1XSwKKysgICAgWyQ2XSldKQor KworKworKyMgbHRfZGljdF9maWx0ZXIoRElDVCwgW1NVQktFWV0sIFZBTFVFLCBbU0VQQVJBVE9S XSwgS0VZLCBbLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kaWN0X2ZpbHRlcl0sCisr W200X2lmKFskNV0sIFtdLCBbXSwKKysgIFtsdF9qb2luKG00X3F1b3RlKG00X2RlZmF1bHQoWyQ0 XSwgW1ssIF1dKSksCisrICAgICAgICAgICBsdF91bnF1b3RlKG00X3NwbGl0KG00X25vcm1hbGl6 ZShtNF9mb3JlYWNoKF9MdF9rZXksIGx0X2NhcihbbTRfc2hpZnRuKDQsICRAKV0pLAorKwkJICAg ICAgW2x0X2lmX2RpY3RfZmV0Y2goWyQxXSwgX0x0X2tleSwgWyQyXSwgWyQzXSwgW19MdF9rZXkg XSldKSkpKSldKVtdZG5sCisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcv bHR2ZXJzaW9uLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR2ZXJzaW9uLm00CistLS0g c29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0dmVyc2lvbi5tNAkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR2ZXJzaW9u Lm00CTIwMDktMDUtMjMgMTA6MDE6NTYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIzIEBA CisrIyBsdHZlcnNpb24ubTQgLS0gdmVyc2lvbiBudW1iZXJzCQkJLSotIEF1dG9jb25mIC0qLQor KyMKKysjICAgQ29weXJpZ2h0IChDKSAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKyMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQKKysjCisrIyBUaGlz IGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZl cworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwg d2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNl IGlzIHByZXNlcnZlZC4KKysKKysjIEdlbmVyYXRlZCBmcm9tIGx0dmVyc2lvbi5pbi4KKysKKysj IHNlcmlhbCAzMDEyIGx0dmVyc2lvbi5tNAorKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExp YnRvb2wKKysKKyttNF9kZWZpbmUoW0xUX1BBQ0tBR0VfVkVSU0lPTl0sIFsyLjIuNl0pCisrbTRf ZGVmaW5lKFtMVF9QQUNLQUdFX1JFVklTSU9OXSwgWzEuMzAxMl0pCisrCisrQUNfREVGVU4oW0xU VkVSU0lPTl9WRVJTSU9OXSwKKytbbWFjcm9fdmVyc2lvbj0nMi4yLjYnCisrbWFjcm9fcmV2aXNp b249JzEuMzAxMicKKytfTFRfREVDTCgsIG1hY3JvX3ZlcnNpb24sIDAsIFtXaGljaCByZWxlYXNl IG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/XSkKKytfTFRfREVDTCgsIG1hY3JvX3JldmlzaW9uLCAw KQorK10pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21pc3Npbmcgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9taXNzaW5nCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmln L21pc3NpbmcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlnL21pc3NpbmcJMjAwOS0wNS0yMyAxMDowMjowMS4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsMzY3IEBACisrIyEgL2Jpbi9zaAorKyMgQ29tbW9uIHN0dWIgZm9y IGEgZmV3IG1pc3NpbmcgR05VIHByb2dyYW1zIHdoaWxlIGluc3RhbGxpbmcuCisrCisrc2NyaXB0 dmVyc2lvbj0yMDA2LTA1LTEwLjIzCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5 OTksIDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYKKysjICAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29pcyBQaW5hcmQgPHBp bmFyZEBpcm8udW1vbnRyZWFsLmNhPiwgMTk5Ni4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g Miwgb3IgKGF0IHlvdXIgb3B0aW9uKQorKyMgYW55IGxhdGVyIHZlcnNpb24uCisrCisrIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisrIyAwMjExMC0x MzAxLCBVU0EuCisrCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0 IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdl bmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2Ft ZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHBy b2dyYW0uCisrCisraWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAgZWNobyAxPiYyICJUcnkgXGAk MCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgorKyAgZXhpdCAxCisrZmkKKysKKytydW49 OgorK3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRbID1dXChbXiBdKlwpLiovXDEvcCcKKytzZWRf bWludXNvPSdzLy4qIC1vIFwoW14gXSpcKS4qL1wxL3AnCisrCisrIyBJbiB0aGUgY2FzZXMgd2hl cmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVuIGluIHRoZQorKyMgc3JjZGly IGFscmVhZHkuCisraWYgdGVzdCAtZiBjb25maWd1cmUuYWM7IHRoZW4KKysgIGNvbmZpZ3VyZV9h Yz1jb25maWd1cmUuYWMKKytlbHNlCisrICBjb25maWd1cmVfYWM9Y29uZmlndXJlLmluCisrZmkK KysKKyttc2c9Im1pc3Npbmcgb24geW91ciBzeXN0ZW0iCisrCisrY2FzZSAkMSBpbgorKy0tcnVu KQorKyAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBhbmQganVzdCBleGl0IGlmIGl0 IHN1Y2NlZWRzLgorKyAgcnVuPQorKyAgc2hpZnQKKysgICIkQCIgJiYgZXhpdCAwCisrICAjIEV4 aXQgY29kZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21hdGNoLiAgVGhpcyBvZnRlbiBoYXBwZW5zCisr ICAjIHdoZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBhbiBhbmNpZW50IHZlcnNpb24gb2YgYSB0b29s IG9uCisrICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJzaW9uLiAgSW4gdGhp cyBjYXNlIHdlCisrICAjIHdlIHNob3VsZCBwcm9jZWVkIGhhcyBpZiB0aGUgcHJvZ3JhbSBoYWQg YmVlbiBhYnNlbnQsIG9yCisrICAjIGlmIC0tcnVuIGhhZG4ndCBiZWVuIHBhc3NlZC4KKysgIGlm IHRlc3QgJD8gPSA2MzsgdGhlbgorKyAgICBydW49OgorKyAgICBtc2c9InByb2JhYmx5IHRvbyBv bGQiCisrICBmaQorKyAgOzsKKysKKysgIC1ofC0taHwtLWhlfC0taGVsfC0taGVscCkKKysgICAg ZWNobyAiXAorKyQwIFtPUFRJT05dLi4uIFBST0dSQU0gW0FSR1VNRU5UXS4uLgorKworK0hhbmRs ZSBcYFBST0dSQU0gW0FSR1VNRU5UXS4uLicgZm9yIHdoZW4gUFJPR1JBTSBpcyBtaXNzaW5nLCBv ciByZXR1cm4gYW4KKytlcnJvciBzdGF0dXMgaWYgdGhlcmUgaXMgbm8ga25vd24gaGFuZGxpbmcg Zm9yIFBST0dSQU0uCisrCisrT3B0aW9uczoKKysgIC1oLCAtLWhlbHAgICAgICBkaXNwbGF5IHRo aXMgaGVscCBhbmQgZXhpdAorKyAgLXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2ZXJzaW9uIGluZm9y bWF0aW9uIGFuZCBleGl0CisrICAtLXJ1biAgICAgICAgICAgdHJ5IHRvIHJ1biB0aGUgZ2l2ZW4g Y29tbWFuZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQgZmFpbHMKKysKKytTdXBwb3J0ZWQgUFJPR1JB TSB2YWx1ZXM6CisrICBhY2xvY2FsICAgICAgdG91Y2ggZmlsZSBcYGFjbG9jYWwubTQnCisrICBh dXRvY29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZpZ3VyZScKKysgIGF1dG9oZWFkZXIgICB0b3Vj aCBmaWxlIFxgY29uZmlnLmguaW4nCisrICBhdXRvbTR0ZSAgICAgdG91Y2ggdGhlIG91dHB1dCBm aWxlLCBvciBjcmVhdGUgYSBzdHViIG9uZQorKyAgYXV0b21ha2UgICAgIHRvdWNoIGFsbCBcYE1h a2VmaWxlLmluJyBmaWxlcworKyAgYmlzb24gICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBp ZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQorKyAgZmxleCAgICAgICAgIGNyZWF0ZSBc YGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKKysgIGhlbHAybWFuICAg ICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKKysgIGxleCAgICAgICAgICBjcmVhdGUgXGBsZXgueXku YycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCisrICBtYWtlaW5mbyAgICAgdG91Y2gg dGhlIG91dHB1dCBmaWxlCisrICB0YXIgICAgICAgICAgdHJ5IHRhciwgZ251dGFyLCBndGFyLCB0 aGVuIHRhciB3aXRob3V0IG5vbi1wb3J0YWJsZSBmbGFncworKyAgeWFjYyAgICAgICAgIGNyZWF0 ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQorKworK1Nl bmQgYnVnIHJlcG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCisrICAgIGV4aXQgJD8K KysgICAgOzsKKysKKysgIC12fC0tdnwtLXZlfC0tdmVyfC0tdmVyc3wtLXZlcnNpfC0tdmVyc2lv fC0tdmVyc2lvbikKKysgICAgZWNobyAibWlzc2luZyAkc2NyaXB0dmVyc2lvbiAoR05VIEF1dG9t YWtlKSIKKysgICAgZXhpdCAkPworKyAgICA7OworKworKyAgLSopCisrICAgIGVjaG8gMT4mMiAi JDA6IFVua25vd24gXGAkMScgb3B0aW9uIgorKyAgICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVs cCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCisrICAgIGV4aXQgMQorKyAgICA7OworKworK2VzYWMK KysKKysjIE5vdyBleGl0IGlmIHdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuICBBbHNvIGV4aXQg bm93IGlmIHdlCisrIyBkb24ndCBoYXZlIGl0IGFuZCAtLXZlcnNpb24gd2FzIHBhc3NlZCAobW9z dCBsaWtlbHkgdG8gZGV0ZWN0CisrIyB0aGUgcHJvZ3JhbSkuCisrY2FzZSAkMSBpbgorKyAgbGV4 fHlhY2MpCisrICAgICMgTm90IEdOVSBwcm9ncmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lv bi4KKysgICAgOzsKKysKKysgIHRhcikKKysgICAgaWYgdGVzdCAtbiAiJHJ1biI7IHRoZW4KKysg ICAgICAgZWNobyAxPiYyICJFUlJPUjogXGB0YXInIHJlcXVpcmVzIC0tcnVuIgorKyAgICAgICBl eGl0IDEKKysgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8IHRlc3QgIngkMiIg PSAieC0taGVscCI7IHRoZW4KKysgICAgICAgZXhpdCAxCisrICAgIGZpCisrICAgIDs7CisrCisr ICAqKQorKyAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVs bCAyPiYxOyB0aGVuCisrICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4KKysgICAg ICAgZXhpdCAxCisrICAgIGVsaWYgdGVzdCAieCQyIiA9ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4 JDIiID0gIngtLWhlbHAiOyB0aGVuCisrICAgICAgICMgQ291bGQgbm90IHJ1biAtLXZlcnNpb24g b3IgLS1oZWxwLiAgVGhpcyBpcyBwcm9iYWJseSBzb21lb25lCisrICAgICAgICMgcnVubmluZyBg JFRPT0wgLS12ZXJzaW9uJyBvciBgJFRPT0wgLS1oZWxwJyB0byBjaGVjayB3aGV0aGVyCisrICAg ICAgICMgJFRPT0wgZXhpc3RzIGFuZCBub3Qga25vd2luZyAkVE9PTCB1c2VzIG1pc3NpbmcuCisr ICAgICAgIGV4aXQgMQorKyAgICBmaQorKyAgICA7OworK2VzYWMKKysKKysjIElmIGl0IGRvZXMg bm90IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFuIG91dGRhdGVkIHZlcnNpb24p LAorKyMgdHJ5IHRvIGVtdWxhdGUgaXQuCisrY2FzZSAkMSBpbgorKyAgYWNsb2NhbCopCisrICAg IGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkg bmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFjaW5jbHVkZS5tNCcgb3IgXGAk e2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKKysgICAgICAgICB0byBpbnN0YWxsIHRo ZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tCisrICAg ICAgICAgYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorKyAgICB0b3VjaCBhY2xvY2FsLm00CisrICAg IDs7CisrCisrICBhdXRvY29uZikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScg aXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAgICAgeW91IG1vZGlm aWVkIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlCisr ICAgICAgICAgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBm cm9tIGFueSBHTlUKKysgICAgICAgICBhcmNoaXZlIHNpdGUuIgorKyAgICB0b3VjaCBjb25maWd1 cmUKKysgICAgOzsKKysKKysgIGF1dG9oZWFkZXIpCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5J Tkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAg IHlvdSBtb2RpZmllZCBcYGFjY29uZmlnLmgnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBt aWdodCB3YW50CisrICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05V IG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbQorKyAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZl IHNpdGUuIgorKyAgICBmaWxlcz1gc2VkIC1uICdzL15bIF0qQVtDTV1fQ09ORklHX0hFQURFUihc KFteKV0qXCkpLiovXDEvcCcgJHtjb25maWd1cmVfYWN9YAorKyAgICB0ZXN0IC16ICIkZmlsZXMi ICYmIGZpbGVzPSJjb25maWcuaCIKKysgICAgdG91Y2hfZmlsZXM9CisrICAgIGZvciBmIGluICRm aWxlczsgZG8KKysgICAgICBjYXNlICRmIGluCisrICAgICAgKjoqKSB0b3VjaF9maWxlcz0iJHRv dWNoX2ZpbGVzICJgZWNobyAiJGYiIHwKKysJCQkJICAgICAgIHNlZCAtZSAncy9eW146XSo6Ly8n IC1lICdzLzouKi8vJ2A7OworKyAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYu aW4iOzsKKysgICAgICBlc2FjCisrICAgIGRvbmUKKysgICAgdG91Y2ggJHRvdWNoX2ZpbGVzCisr ICAgIDs7CisrCisrICBhdXRvbWFrZSopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxg JDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBt b2RpZmllZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVf YWN9Jy4KKysgICAgICAgICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtl JyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4KKysgICAgICAgICBHcmFiIHRoZW0gZnJvbSBhbnkgR05V IGFyY2hpdmUgc2l0ZS4iCisrICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1w cmludCB8CisrCSAgIHNlZCAncy9cLmFtJC8uaW4vJyB8CisrCSAgIHdoaWxlIHJlYWQgZjsgZG8g dG91Y2ggIiRmIjsgZG9uZQorKyAgICA7OworKworKyAgYXV0b200dGUpCisrICAgIGVjaG8gMT4m MiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYnV0IGlzICRtc2cuCisrICAgICAgICAg WW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKKysg ICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4KKysgICAgICAg ICBZb3UgY2FuIGdldCBcYCQxJyBhcyBwYXJ0IG9mIFxgQXV0b2NvbmYnIGZyb20gYW55IEdOVQor KyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCisrCisrICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAt biAiJHNlZF9vdXRwdXQiYAorKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoi IHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCisrICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgor Kwl0b3VjaCAkZmlsZQorKyAgICBlbHNlCisrCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmls ZQorKwllY2hvICIjISAvYmluL3NoIgorKwllY2hvICIjIENyZWF0ZWQgYnkgR05VIEF1dG9tYWtl IG1pc3NpbmcgYXMgYSByZXBsYWNlbWVudCBvZiIKKysJZWNobyAiIyAgJCAkQCIKKysJZWNobyAi ZXhpdCAwIgorKwljaG1vZCAreCAkZmlsZQorKwlleGl0IDEKKysgICAgZmkKKysgICAgOzsKKysK KysgIGJpc29ufHlhY2MpCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnICRtc2cu ICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxg LnknIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKKysgICAgICAgICBp biBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4g Z2V0CisrICAgICAgICAgXGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAg IHJtIC1mIHkudGFiLmMgeS50YWIuaAorKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCisrICAg ICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKKysJY2FzZSAkTEFTVEFSRyBpbgorKwkqLnkpCisr CSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8nYAorKwkgICAgaWYg dGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCisrCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50YWIu YworKwkgICAgZmkKKysJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9o LydgCisrCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KKysJICAgICAgICAgY3AgIiRT UkNGSUxFIiB5LnRhYi5oCisrCSAgICBmaQorKwkgIDs7CisrCWVzYWMKKysgICAgZmkKKysgICAg aWYgdGVzdCAhIC1mIHkudGFiLmg7IHRoZW4KKysJZWNobyA+eS50YWIuaAorKyAgICBmaQorKyAg ICBpZiB0ZXN0ICEgLWYgeS50YWIuYzsgdGhlbgorKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsg fScgPnkudGFiLmMKKysgICAgZmkKKysgICAgOzsKKysKKysgIGxleHxmbGV4KQorKyAgICBlY2hv IDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQg aXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5sJyBmaWxlLiAgWW91IG1heSBuZWVk IHRoZSBcYEZsZXgnIHBhY2thZ2UKKysgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZp Y2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0CisrICAgICAgICAgXGBGbGV4JyBm cm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgcm0gLWYgbGV4Lnl5LmMKKysgICAgaWYg dGVzdCAkIyAtbmUgMTsgdGhlbgorKyAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCisrCWNh c2UgJExBU1RBUkcgaW4KKysJKi5sKQorKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwg c2VkICdzL2wkL2MvJ2AKKysJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgorKwkgICAg ICAgICBjcCAiJFNSQ0ZJTEUiIGxleC55eS5jCisrCSAgICBmaQorKwkgIDs7CisrCWVzYWMKKysg ICAgZmkKKysgICAgaWYgdGVzdCAhIC1mIGxleC55eS5jOyB0aGVuCisrCWVjaG8gJ21haW4oKSB7 IHJldHVybiAwOyB9JyA+bGV4Lnl5LmMKKysgICAgZmkKKysgICAgOzsKKysKKysgIGhlbHAybWFu KQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3Vs ZCBvbmx5IG5lZWQgaXQgaWYKKysJIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2YgYSBtYW51 YWwgcGFnZS4gIFlvdSBtYXkgbmVlZCB0aGUKKysJIFxgSGVscDJtYW4nIHBhY2thZ2UgaW4gb3Jk ZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZQorKwkgZWZmZWN0LiAgWW91IGNhbiBn ZXQgXGBIZWxwMm1hbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrCisrICAgIGZpbGU9 YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorKyAgICB0ZXN0IC16ICIkZmlsZSIg JiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCisrICAgIGlmIHRlc3Qg LWYgIiRmaWxlIjsgdGhlbgorKwl0b3VjaCAkZmlsZQorKyAgICBlbHNlCisrCXRlc3QgLXogIiRm aWxlIiB8fCBleGVjID4kZmlsZQorKwllY2hvICIuYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8g Z2VuZXJhdGUgdGhpcyBwYWdlIgorKwlleGl0IDEKKysgICAgZmkKKysgICAgOzsKKysKKysgIG1h a2VpbmZvKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91 IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC50ZXhp JyBvciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmlsZQorKyAgICAgICAgIGluZGly ZWN0bHkgYWZmZWN0aW5nIHRoZSBhc3BlY3Qgb2YgdGhlIG1hbnVhbC4gIFRoZSBzcHVyaW91cwor KyAgICAgICAgIGNhbGwgbWlnaHQgYWxzbyBiZSB0aGUgY29uc2VxdWVuY2Ugb2YgdXNpbmcgYSBi dWdneSBcYG1ha2UnIChBSVgsCisrICAgICAgICAgRFUsIElSSVgpLiAgWW91IG1pZ2h0IHdhbnQg dG8gaW5zdGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdlIG9yCisrICAgICAgICAgdGhlIFxgR05V IG1ha2UnIHBhY2thZ2UuICBHcmFiIGVpdGhlciBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIK KysgICAgIyBUaGUgZmlsZSB0byB0b3VjaCBpcyB0aGF0IHNwZWNpZmllZCB3aXRoIC1vIC4uLgor KyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAKKysgICAgdGVzdCAt eiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAorKyAg ICBpZiB0ZXN0IC16ICIkZmlsZSI7IHRoZW4KKysgICAgICAjIC4uLiBvciBpdCBpcyB0aGUgb25l IHNwZWNpZmllZCB3aXRoIEBzZXRmaWxlbmFtZSAuLi4KKysgICAgICBpbmZpbGU9YGVjaG8gIiQq IiB8IHNlZCAncy8uKiBcKFteIF0qXCkgKiQvXDEvJ2AKKysgICAgICBmaWxlPWBzZWQgLW4gJwor KwkvXkBzZXRmaWxlbmFtZS97CisrCSAgcy8uKiBcKFteIF0qXCkgKiQvXDEvCisrCSAgcAorKwkg IHEKKysJfScgJGluZmlsZWAKKysgICAgICAjIC4uLiBvciBpdCBpcyBkZXJpdmVkIGZyb20gdGhl IHNvdXJjZSBuYW1lIChkaXIvZi50ZXhpIGJlY29tZXMgZi5pbmZvKQorKyAgICAgIHRlc3QgLXog IiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkaW5maWxlIiB8IHNlZCAncywuKi8sLDtzLC5bXi5dKiQs LCdgLmluZm8KKysgICAgZmkKKysgICAgIyBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCwgdGhl IHVzZXIgcmVhbGx5IG5lZWRzIG1ha2VpbmZvOworKyAgICAjIGxldCdzIGZhaWwgd2l0aG91dCB0 b3VjaGluZyBhbnl0aGluZy4KKysgICAgdGVzdCAtZiAkZmlsZSB8fCBleGl0IDEKKysgICAgdG91 Y2ggJGZpbGUKKysgICAgOzsKKysKKysgIHRhcikKKysgICAgc2hpZnQKKysKKysgICAgIyBXZSBo YXZlIGFscmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCisrICAgICMgTG9vayBm b3IgZ251dGFyL2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZvaWQgdWdseSBlcnJvcgorKyAg ICAjIG1lc3NhZ2VzLgorKyAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYx KTsgdGhlbgorKyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAKKysgICAgZmkKKysgICAgaWYg KGd0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCisrICAgICAgIGd0YXIgIiRA IiAmJiBleGl0IDAKKysgICAgZmkKKysgICAgZmlyc3Rhcmc9IiQxIgorKyAgICBpZiBzaGlmdDsg dGhlbgorKwljYXNlICRmaXJzdGFyZyBpbgorKwkqbyopCisrCSAgICBmaXJzdGFyZz1gZWNobyAi JGZpcnN0YXJnIiB8IHNlZCBzL28vL2AKKysJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4 aXQgMAorKwkgICAgOzsKKysJZXNhYworKwljYXNlICRmaXJzdGFyZyBpbgorKwkqaCopCisrCSAg ICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKKysJICAgIHRhciAiJGZp cnN0YXJnIiAiJEAiICYmIGV4aXQgMAorKwkgICAgOzsKKysJZXNhYworKyAgICBmaQorKworKyAg ICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBJIGNhbid0IHNlZW0gdG8gYmUgYWJsZSB0byBydW4g XGB0YXInIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KKysgICAgICAgICBZb3UgbWF5IHdhbnQg dG8gaW5zdGFsbCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNrIHRoZQorKyAgICAg ICAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIgorKyAgICBleGl0IDEKKysgICAgOzsKKysKKysg ICopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYW5kIGlz ICRtc2cuCisrICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRo b3V0IGhhdmluZyB0aGUKKysgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxp bmcgdGhlbS4gIENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKKysgICAgICAgICBpdCBvZnRlbiB0 ZWxscyB5b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0YWxsaW5nCisr ICAgICAgICAgdGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBlZWsgYXQgYW55IEdOVSBhcmNo aXZlIHNpdGUsIGluIGNhc2UKKysgICAgICAgICBzb21lIG90aGVyIHBhY2thZ2Ugd291bGQgY29u dGFpbiB0aGlzIG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCisrICAgIGV4aXQgMQorKyAgICA7Owor K2VzYWMKKysKKytleGl0IDAKKysKKysjIExvY2FsIHZhcmlhYmxlczoKKysjIGV2YWw6IChhZGQt aG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6 ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4l MDJIIgorKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL2NvbmZpZ3VyZSBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlCistLS0gc29j aS0zLjAuMF80LXBhY2svY29uZmlndXJlCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICsw MjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZQkyMDA5LTA1LTIzIDEwOjAyOjAw LjAwMDAwMDAwMCArMDIwMAorQEAgLTEsNzIgKzEsMjIxNTAgQEAKKy0jIS9iaW4vc2gKKysjISAv YmluL3NoCisrIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFu ZCBjcmVhdGUgTWFrZWZpbGVzLgorKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzIGZv ciBTT0NJIDMuMC4wLgorKyMKKysjIFJlcG9ydCBidWdzIHRvIDxtc29iY3pha0B1c2Vycy5zb3Vy Y2Vmb3JnZS5uZXQ+LgorKyMKKysjIENvcHlyaWdodCAoQykgMjAwNC0yMDA5IE1hY2llaiBTb2Jj emFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrIworKyMgQ29weXJpZ2h0IChD KSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAor KyMgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCisrIyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCisrIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCisrIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tICMjCisgCistaWYgWyAkIyAtZ3QgMCBdCistdGhlbgorLSAgICBpZiBb ICQxID0gIi1oZWxwIiAtbyAkMSA9ICItLWhlbHAiIF0KKy0gICAgdGhlbgorLSAgICAgICAgZWNo byAnUmVjb2duaXplZCBjb25maWd1cmUgb3B0aW9uczonCistICAgICAgICBlY2hvICcnCistICAg ICAgICBlY2hvICdJbnN0YWxsYXRpb24gb3B0aW9uczonCistICAgICAgICBlY2hvICctLWluY2x1 ZGUtcHJlZml4PS9zb21lL3BhdGggICAgICAtIHBhdGggdG8gaW5zdGFsbCBTT0NJIGhlYWRlciBm aWxlcycKKy0gICAgICAgIGVjaG8gJy0tbGliLXByZWZpeD0vc29tZS9wYXRoICAgICAgICAgIC0g cGF0aCB0byBpbnN0YWxsIFNPQ0kgbGlicmFyaWVzJworLSAgICAgICAgZWNobyAnJworLSAgICAg ICAgZWNobyAnTXlTUUwgb3B0aW9uczonCistICAgICAgICBlY2hvICctLW15c3FsLWluY2x1ZGU9 L3NvbWUvcGF0aCAgICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5nIG15c3FsLmgnCistICAgICAg ICBlY2hvICctLW15c3FsLWxpYj0vc29tZS9wYXRoICAgICAgICAgICAtIGRpcmVjdG9yeSBjb250 YWluaW5nIGxpYm15c3FsY2xpZW50LlthfHNvXScKKy0gICAgICAgIGVjaG8gJycKKy0gICAgICAg IGVjaG8gJ09yYWNsZSBvcHRpb25zIChpZiBPUkFDTEVfSE9NRSB2YXJpYWJsZSBpcyBub3Qgc2V0 KTonCistICAgICAgICBlY2hvICctLW9yYWNsZS1pbmNsdWRlPS9zb21lL3BhdGggICAgICAtIGRp cmVjdG9yeSBjb250YWluaW5nIG9jaS5oJworLSAgICAgICAgZWNobyAnLS1vcmFjbGUtbGliPS9z b21lL3BhdGggICAgICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJjbG50c2guW2F8c29d JworLSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAnUG9zdGdyZVNRTCBvcHRpb25zOicK Ky0gICAgICAgIGVjaG8gJy0tcG9zdGdyZXNxbC1pbmNsdWRlPS9zb21lL3BhdGggIC0gZGlyZWN0 b3J5IGNvbnRhaW5pbmcgbGlicHEvbGlicHEtZnMuaCcKKy0gICAgICAgIGVjaG8gJy0tcG9zdGdy ZXNxbC1saWI9L3NvbWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlicHEuW2F8 c29dJworLSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAnVGVzdCBwcm9ncmFtcyBjb21w aWxhdGlvbiBvcHRpb25zIChub3QgbmVlZGVkIGZvciBsaWJyYXJ5IGJ1aWxkKTonCistICAgICAg ICBlY2hvICctLWJvb3N0LWluY2x1ZGU9L3NvbWUvcGF0aCAgICAgICAtIHJvb3QgaW5jbHVkZSBk aXJlY3Rvcnkgb2YgQm9vc3QnCistICAgICAgICBlY2hvICctLWJvb3N0LWxpYj0vc29tZS9wYXRo ICAgICAgICAgICAtIHJvb3QgbGliIGRpcmVjdG9yeSBvZiBCb29zdCcKKy0gICAgICAgIGVjaG8g JycKKy0gICAgICAgIGV4aXQKKy0gICAgZmkKKysjIEJlIG1vcmUgQm91cm5lIGNvbXBhdGlibGUK KytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisraWYgdGVzdCAtbiAi JHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVu CisrICBlbXVsYXRlIHNoCisrICBOVUxMQ01EPToKKysgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBa c2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFy eSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICckezEr IiRAIn0nPSciJEAiJworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytlbHNlCisrICBjYXNlIGAo c2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KKysgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7OworK2Vz YWMKKysKKytmaQorKworKworKworKworKyMgUEFUSCBuZWVkcyBDUgorKyMgQXZvaWQgZGVwZW5k aW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KKythc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xt bm9wcXJzdHV2d3h5eicKKythc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZ WicKKythc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKKythc19jcl9k aWdpdHM9JzAxMjM0NTY3ODknCisrYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGln aXRzCisrCisrYXNfbmw9JworKycKKytleHBvcnQgYXNfbmwKKysjIFByaW50aW5nIGEgbG9uZyBz dHJpbmcgY3Jhc2hlcyBTb2xhcmlzIDcgL3Vzci9iaW4vcHJpbnRmLgorK2FzX2VjaG89J1xcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnCisrYXNfZWNobz0kYXNf ZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCisrYXNfZWNobz0kYXNfZWNobyRh c19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KKytpZiAodGVzdCAiWGBwcmlu dGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgorKyAgYXNf ZWNobz0ncHJpbnRmICVzXG4nCisrICBhc19lY2hvX249J3ByaW50ZiAlcycKKytlbHNlCisrICBp ZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hvKSAyPi9kZXYvbnVsbGAiID0g IlgtbiAkYXNfZWNobyI7IHRoZW4KKysgICAgYXNfZWNob19ib2R5PSdldmFsIC91c3IvdWNiL2Vj aG8gLW4gIiQxJGFzX25sIicKKysgICAgYXNfZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJworKyAg ZWxzZQorKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJwor KyAgICBhc19lY2hvX25fYm9keT0nZXZhbAorKyAgICAgIGFyZz0kMTsKKysgICAgICBjYXNlICRh cmcgaW4KKysgICAgICAqIiRhc19ubCIqKQorKwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFz X25sIjsKKysJYXJnPWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxcXCguKlxcKSJgOzsKKysgICAg ICBlc2FjOworKyAgICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19u bCIKKysgICAgJworKyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkKKysgICAgYXNfZWNob19uPSdz aCAtYyAkYXNfZWNob19uX2JvZHkgYXNfZWNobycKKysgIGZpCisrICBleHBvcnQgYXNfZWNob19i b2R5CisrICBhc19lY2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFzX2VjaG8nCisrZmkKKysKKysj IFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KKytpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3Nl dH0iICE9IHNldDsgdGhlbgorKyAgUEFUSF9TRVBBUkFUT1I9OgorKyAgKFBBVEg9Jy9iaW47L2Jp bic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgJiYgeworKyAgICAoUEFU SD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8fAor KyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7JworKyAgfQorK2ZpCisrCisrIyBTdXBwb3J0IHVuc2V0 IHdoZW4gcG9zc2libGUuCisraWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCisrICBhc191bnNldD11bnNldAorK2Vsc2UKKysgIGFzX3Vuc2V0 PWZhbHNlCisrZmkKKysKKysKKysjIElGUworKyMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcg bGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuICBRdW90aW5nIGlzCisrIyB0aGVyZSB0byBw cmV2ZW50IGVkaXRvcnMgZnJvbSBjb21wbGFpbmluZyBhYm91dCBzcGFjZS10YWIuCisrIyAoSWYg X0FTX1BBVEhfV0FMSyB3ZXJlIGNhbGxlZCB3aXRoIElGUyB1bnNldCwgaXQgd291bGQgZGlzYWJs ZSB3b3JkCisrIyBzcGxpdHRpbmcgYnkgc2V0dGluZyBJRlMgdG8gZW1wdHkgdmFsdWUuKQorK0lG Uz0iICIiCSRhc19ubCIKKysKKysjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGgg aWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgorK2Nhc2UgJDAgaW4KKysgICpb XFwvXSogKSBhc19teXNlbGY9JDAgOzsKKysgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9J RlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICB0ZXN0IC1yICIkYXNfZGly LyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhaworK2RvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrCisrICAgICA7OworK2VzYWMKKysjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMs IG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCisrIyBpbiB3aGljaCBj YXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCisraWYgdGVzdCAieCRhc19t eXNlbGYiID0geDsgdGhlbgorKyAgYXNfbXlzZWxmPSQwCisrZmkKKytpZiB0ZXN0ICEgLWYgIiRh c19teXNlbGYiOyB0aGVuCisrICAkYXNfZWNobyAiJGFzX215c2VsZjogZXJyb3I6IGNhbm5vdCBm aW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBmaWxlIG5hbWUiID4mMgorKyAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9CisrZmkKKysKKysjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMu MCBVV0lOIGtzaC4KKytmb3IgYXNfdmFyIGluIEVOViBNQUlMIE1BSUxQQVRICisrZG8gKCRhc191 bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKKytkb25l CisrUFMxPSckICcKKytQUzI9Jz4gJworK1BTND0nKyAnCisrCisrIyBOTFMgbnVpc2FuY2VzLgor K0xDX0FMTD1DCisrZXhwb3J0IExDX0FMTAorK0xBTkdVQUdFPUMKKytleHBvcnQgTEFOR1VBR0UK KysKKysjIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KKytpZiBleHByIGEgOiAnXChhXCknID4v ZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIg PSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytlbHNlCisrICBhc19leHByPWZhbHNlCisr ZmkKKysKKytpZiAoYmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFz ZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0aGVuCisrICBhc19iYXNlbmFtZT1iYXNlbmFtZQor K2Vsc2UKKysgIGFzX2Jhc2VuYW1lPWZhbHNlCisrZmkKKysKKysKKysjIE5hbWUgb2YgdGhlIGV4 ZWN1dGFibGUuCisrYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8CisrJGFzX2V4cHIgWC8i JDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKysJIFgiJDAiIDogJ1hcKC8vXCkkJyBc fCBcCisrCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBY LyIkMCIgfAorKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1woXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJ ICAgIHEKKysJICB9CisrCSAgL15YXC9cKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEK KysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrCisrIyBDRFBBVEguCisrJGFzX3Vuc2V0IENEUEFU SAorKworKworK2lmIHRlc3QgIngkQ09ORklHX1NIRUxMIiA9IHg7IHRoZW4KKysgIGlmIChldmFs ICI6IikgMj4vZGV2L251bGw7IHRoZW4KKysgIGFzX2hhdmVfcmVxdWlyZWQ9eWVzCisrZWxzZQor KyAgYXNfaGF2ZV9yZXF1aXJlZD1ubworK2ZpCisrCisrICBpZiB0ZXN0ICRhc19oYXZlX3JlcXVp cmVkID0geWVzICYmCSAoZXZhbCAiOgorKyhhc19mdW5jX3JldHVybiAoKSB7CisrICAoZXhpdCBc JDEpCisrfQorK2FzX2Z1bmNfc3VjY2VzcyAoKSB7CisrICBhc19mdW5jX3JldHVybiAwCisrfQor K2FzX2Z1bmNfZmFpbHVyZSAoKSB7CisrICBhc19mdW5jX3JldHVybiAxCisrfQorK2FzX2Z1bmNf cmV0X3N1Y2Nlc3MgKCkgeworKyAgcmV0dXJuIDAKKyt9CisrYXNfZnVuY19yZXRfZmFpbHVyZSAo KSB7CisrICByZXR1cm4gMQorK30KKysKKytleGl0Y29kZT0wCisraWYgYXNfZnVuY19zdWNjZXNz OyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX3N1Y2Nl c3MgZmFpbGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19mYWlsdXJlOyB0aGVuCisrICBleGl0Y29k ZT0xCisrICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiBhc19m dW5jX3JldF9zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNo byBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lmIGFzX2Z1bmNfcmV0X2Zh aWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19yZXRfZmFpbHVyZSBz dWNjZWVkZWQuCisrZmkKKysKKytpZiAoIHNldCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkgJiYg dGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAg ZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCisrZmkKKysKKyt0ZXN0 IFwkZXhpdGNvZGUgPSAwKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKysKKysoCisrICBhc19s aW5lbm9fMT1cJExJTkVOTworKyAgYXNfbGluZW5vXzI9XCRMSU5FTk8KKysgIHRlc3QgXCJ4XCRh c19saW5lbm9fMVwiICE9IFwieFwkYXNfbGluZW5vXzJcIiAmJgorKyAgdGVzdCBcInhcYGV4cHIg XCRhc19saW5lbm9fMSArIDFcYFwiID0gXCJ4XCRhc19saW5lbm9fMlwiKSB8fCB7IChleGl0IDEp OyBleGl0IDE7IH0KKysiKSAyPiAvZGV2L251bGw7IHRoZW4KKysgIDoKKytlbHNlCisrICBhc19j YW5kaWRhdGVfc2hlbGxzPQorKyAgICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBB UkFUT1IkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgY2FzZSAkYXNfZGlyIGluCisrCSAvKikKKysJICAgZm9yIGFzX2Jh c2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbworKwkgICAgIGFzX2NhbmRpZGF0ZV9zaGVsbHM9IiRh c19jYW5kaWRhdGVfc2hlbGxzICRhc19kaXIvJGFzX2Jhc2UiCisrCSAgIGRvbmU7OworKyAgICAg ICBlc2FjCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysKKysgICAgICBmb3IgYXNfc2hl bGwgaW4gJGFzX2NhbmRpZGF0ZV9zaGVsbHMgJFNIRUxMOyBkbworKwkgIyBUcnkgb25seSBzaGVs bHMgdGhhdCBleGlzdCwgdG8gc2F2ZSBzZXZlcmFsIGZvcmtzLgorKwkgaWYgeyB0ZXN0IC1mICIk YXNfc2hlbGwiIHx8IHRlc3QgLWYgIiRhc19zaGVsbC5leGUiOyB9ICYmCisrCQl7ICgiJGFzX3No ZWxsIikgMj4gL2Rldi9udWxsIDw8XF9BU0VPRgorK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04r c2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBz aAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3Bs aXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdl LiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicK KysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2 L251bGxgIGluCisrICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKKytlc2FjCisrCisrZmkKKysK KysKKys6CisrX0FTRU9GCisrfTsgdGhlbgorKyAgQ09ORklHX1NIRUxMPSRhc19zaGVsbAorKwkg ICAgICAgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKKysJICAgICAgIGlmIHsgIiRhc19zaGVsbCIgMj4g L2Rldi9udWxsIDw8XF9BU0VPRgorK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYg KGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBzaAorKyAgTlVM TENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9u ICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJs ZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKKysgIHNldG9w dCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGlu CisrICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKKytlc2FjCisrCisrZmkKKysKKysKKys6Cisr KGFzX2Z1bmNfcmV0dXJuICgpIHsKKysgIChleGl0ICQxKQorK30KKythc19mdW5jX3N1Y2Nlc3Mg KCkgeworKyAgYXNfZnVuY19yZXR1cm4gMAorK30KKythc19mdW5jX2ZhaWx1cmUgKCkgeworKyAg YXNfZnVuY19yZXR1cm4gMQorK30KKythc19mdW5jX3JldF9zdWNjZXNzICgpIHsKKysgIHJldHVy biAwCisrfQorK2FzX2Z1bmNfcmV0X2ZhaWx1cmUgKCkgeworKyAgcmV0dXJuIDEKKyt9CisrCisr ZXhpdGNvZGU9MAorK2lmIGFzX2Z1bmNfc3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4 aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19zdWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lmIGFz X2Z1bmNfZmFpbHVyZTsgdGhlbgorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX2ZhaWx1 cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19yZXRfc3VjY2VzczsgdGhlbgorKyAg OgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19yZXRfc3VjY2VzcyBmYWls ZWQuCisrZmkKKysKKytpZiBhc19mdW5jX3JldF9mYWlsdXJlOyB0aGVuCisrICBleGl0Y29kZT0x CisrICBlY2hvIGFzX2Z1bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgKCBz ZXQgeDsgYXNfZnVuY19yZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9ICIkMSIgKTsgdGhlbgorKyAg OgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gcG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdl cmUgbm90IHNhdmVkLgorK2ZpCisrCisrdGVzdCAkZXhpdGNvZGUgPSAwKSB8fCB7IChleGl0IDEp OyBleGl0IDE7IH0KKysKKysoCisrICBhc19saW5lbm9fMT0kTElORU5PCisrICBhc19saW5lbm9f Mj0kTElORU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYK KysgIHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIpIHx8 IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorKworK19BU0VPRgorK307IHRoZW4KKysgIGJyZWFrCisr ZmkKKysKKytmaQorKworKyAgICAgIGRvbmUKKysKKysgICAgICBpZiB0ZXN0ICJ4JENPTkZJR19T SEVMTCIgIT0geDsgdGhlbgorKyAgZm9yIGFzX3ZhciBpbiBCQVNIX0VOViBFTlYKKysJZG8gKCRh c191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKKysJ ZG9uZQorKwlleHBvcnQgQ09ORklHX1NIRUxMCisrCWV4ZWMgIiRDT05GSUdfU0hFTEwiICIkYXNf bXlzZWxmIiAkezErIiRAIn0KKytmaQorKworKworKyAgICBpZiB0ZXN0ICRhc19oYXZlX3JlcXVp cmVkID0gbm87IHRoZW4KKysgIGVjaG8gVGhpcyBzY3JpcHQgcmVxdWlyZXMgYSBzaGVsbCBtb3Jl IG1vZGVybiB0aGFuIGFsbCB0aGUKKysgICAgICBlY2hvIHNoZWxscyB0aGF0IEkgZm91bmQgb24g eW91ciBzeXN0ZW0uICBQbGVhc2UgaW5zdGFsbCBhCisrICAgICAgZWNobyBtb2Rlcm4gc2hlbGws IG9yIG1hbnVhbGx5IHJ1biB0aGUgc2NyaXB0IHVuZGVyIHN1Y2ggYQorKyAgICAgIGVjaG8gc2hl bGwgaWYgeW91IGRvIGhhdmUgb25lLgorKyAgICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorK2Zp CisrCisrCisrZmkKKysKKytmaQorKworKworKworKyhldmFsICJhc19mdW5jX3JldHVybiAoKSB7 CisrICAoZXhpdCBcJDEpCisrfQorK2FzX2Z1bmNfc3VjY2VzcyAoKSB7CisrICBhc19mdW5jX3Jl dHVybiAwCisrfQorK2FzX2Z1bmNfZmFpbHVyZSAoKSB7CisrICBhc19mdW5jX3JldHVybiAxCisr fQorK2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkgeworKyAgcmV0dXJuIDAKKyt9CisrYXNfZnVuY19y ZXRfZmFpbHVyZSAoKSB7CisrICByZXR1cm4gMQorK30KKysKKytleGl0Y29kZT0wCisraWYgYXNf ZnVuY19zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBh c19mdW5jX3N1Y2Nlc3MgZmFpbGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19mYWlsdXJlOyB0aGVu CisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkK KysKKytpZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNv ZGU9MQorKyAgZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lmIGFz X2Z1bmNfcmV0X2ZhaWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19y ZXRfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiAoIHNldCB4OyBhc19mdW5jX3JldF9z dWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhp dGNvZGU9MQorKyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCisr ZmkKKysKKyt0ZXN0IFwkZXhpdGNvZGUgPSAwIikgfHwgeworKyAgZWNobyBObyBzaGVsbCBmb3Vu ZCB0aGF0IHN1cHBvcnRzIHNoZWxsIGZ1bmN0aW9ucy4KKysgIGVjaG8gUGxlYXNlIHRlbGwgYnVn LWF1dG9jb25mQGdudS5vcmcgYWJvdXQgeW91ciBzeXN0ZW0sCisrICBlY2hvIGluY2x1ZGluZyBh bnkgZXJyb3IgcG9zc2libHkgb3V0cHV0IGJlZm9yZSB0aGlzIG1lc3NhZ2UuCisrICBlY2hvIFRo aXMgY2FuIGhlbHAgdXMgaW1wcm92ZSBmdXR1cmUgYXV0b2NvbmYgdmVyc2lvbnMuCisrICBlY2hv IENvbmZpZ3VyYXRpb24gd2lsbCBub3cgcHJvY2VlZCB3aXRob3V0IHNoZWxsIGZ1bmN0aW9ucy4K Kyt9CisrCisrCisrCisrICBhc19saW5lbm9fMT0kTElORU5PCisrICBhc19saW5lbm9fMj0kTElO RU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKysgIHRl c3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIgfHwgeworKwor KyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdp dGggJExJTkVOTworKyAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAg VGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQorKyAgIyBsaW5lLW51bWJlciBsaW5lIGFmdGVyIGVh Y2ggbGluZSB1c2luZyAkTElORU5POyB0aGUgc2Vjb25kICdzZWQnCisrICAjIGRvZXMgdGhlIHJl YWwgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaAorKyAgIyBs aW5lLW51bWJlciBsaW5lIHdpdGggdGhlIGxpbmUgY29udGFpbmluZyAkTElORU5PLCBhbmQgYXBw ZW5kcworKyAgIyB0cmFpbGluZyAnLScgZHVyaW5nIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5F Tk8gaXMgbm90IGEgc3BlY2lhbAorKyAgIyBjYXNlIGF0IGxpbmUgZW5kLgorKyAgIyAoUmFqYSBS IEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhlCisr ICAjIHNjcmlwdHMgd2l0aCBvcHRpbWl6YXRpb24gaGVscCBmcm9tIFBhb2xvIEJvbnppbmkuICBC bGFtZSBMZWUKKysgICMgRS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBmb3Igc2VkJ3Mgc3ludGF4LiAg Oi0pCisrICBzZWQgLW4gJworKyAgICBwCisrICAgIC9bJF1MSU5FTk8vPQorKyAgJyA8JGFzX215 c2VsZiB8CisrICAgIHNlZCAnCisrICAgICAgcy9bJF1MSU5FTk8uKi8mLS8KKysgICAgICB0IGxp bmVubworKyAgICAgIGIKKysgICAgICA6bGluZW5vCisrICAgICAgTgorKyAgICAgIDpsb29wCisr ICAgICAgcy9bJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXS4qXG5cKVwoLipcKS9cMlwxXDIv CisrICAgICAgdCBsb29wCisrICAgICAgcy8tXG4uKi8vCisrICAgICcgPiRhc19tZS5saW5lbm8g JiYKKysgIGNobW9kICt4ICIkYXNfbWUubGluZW5vIiB8fAorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJ WCBzaGVsbCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCisrICAjIERvbid0 IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9i bGVtcworKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdl IG1pZ2h0IGZpbmQgdGhlCisrICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVz cGVjaWFsbHkgc2Vuc2l0aXZlIHRvIHRoaXMpLgorKyAgLiAiLi8kYXNfbWUubGluZW5vIgorKyAg IyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCisrICBleGl0CisrfQor KworKworK2lmIChhc19kaXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8p ID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfZGlybmFtZT1kaXJuYW1lCisrZWxzZQorKyAg YXNfZGlybmFtZT1mYWxzZQorK2ZpCisrCisrRUNIT19DPSBFQ0hPX049IEVDSE9fVD0KKytjYXNl IGBlY2hvIC1uIHhgIGluCisrLW4qKQorKyAgY2FzZSBgZWNobyAneFxjJ2AgaW4KKysgICpjKikg RUNIT19UPScJJzs7CSMgRUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgorKyAgKikgICBF Q0hPX0M9J1xjJzs7CisrICBlc2FjOzsKKysqKQorKyAgRUNIT19OPSctbic7OworK2VzYWMKKytp ZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhwciAw MDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytlbHNl CisrICBhc19leHByPWZhbHNlCisrZmkKKysKKytybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25m JCQuZmlsZQorK2lmIHRlc3QgLWQgY29uZiQkLmRpcjsgdGhlbgorKyAgcm0gLWYgY29uZiQkLmRp ci9jb25mJCQuZmlsZQorK2Vsc2UKKysgIHJtIC1mIGNvbmYkJC5kaXIKKysgIG1rZGlyIGNvbmYk JC5kaXIgMj4vZGV2L251bGwKKytmaQorK2lmIChlY2hvID5jb25mJCQuZmlsZSkgMj4vZGV2L251 bGw7IHRoZW4KKysgIGlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhl bgorKyAgICBhc19sbl9zPSdsbiAtcycKKysgICAgIyAuLi4gYnV0IHRoZXJlIGFyZSB0d28gZ290 Y2hhczoKKysgICAgIyAxKSBPbiBNU1lTLCBib3RoIGBsbiAtcyBmaWxlIGRpcicgYW5kIGBsbiBm aWxlIGRpcicgZmFpbC4KKysgICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtzOyBg bG4gLXMnIGNyZWF0ZXMgYSB3cmFwcGVyIGV4ZWN1dGFibGUuCisrICAgICMgSW4gYm90aCBjYXNl cywgd2UgaGF2ZSB0byBkZWZhdWx0IHRvIGBjcCAtcCcuCisrICAgIGxuIC1zIGNvbmYkJC5maWxl IGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYkJC5leGUgfHwKKysgICAg ICBhc19sbl9zPSdjcCAtcCcKKysgIGVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9u dWxsOyB0aGVuCisrICAgIGFzX2xuX3M9bG4KKysgIGVsc2UKKysgICAgYXNfbG5fcz0nY3AgLXAn CisrICBmaQorK2Vsc2UKKysgIGFzX2xuX3M9J2NwIC1wJworK2ZpCisrcm0gLWYgY29uZiQkIGNv bmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmlsZQorK3JtZGlyIGNvbmYk JC5kaXIgMj4vZGV2L251bGwKKysKKytpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCisr ICBhc19ta2Rpcl9wPToKKytlbHNlCisrICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorKyAg YXNfbWtkaXJfcD1mYWxzZQorK2ZpCisrCisraWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4mMTsg dGhlbgorKyAgYXNfdGVzdF94PSd0ZXN0IC14JworK2Vsc2UKKysgIGlmIGxzIC1kTCAvID4vZGV2 L251bGwgMj4mMTsgdGhlbgorKyAgICBhc19sc19MX29wdGlvbj1MCisrICBlbHNlCisrICAgIGFz X2xzX0xfb3B0aW9uPQorKyAgZmkKKysgIGFzX3Rlc3RfeD0nCisrICAgIGV2YWwgc2ggLWMgJ1wn JworKyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0IC1kICIkMS8uIjsKKysgICAg ICBlbHNlCisrCWNhc2UgJDEgaW4KKysJLSopc2V0ICIuLyQxIjs7CisrCWVzYWM7CisrCWNhc2Ug YGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluCisrCT8/P1tzeF0q KTo7OyopZmFsc2U7O2VzYWM7ZmkKKysgICAgJ1wnJyBzaAorKyAgJworK2ZpCisrYXNfZXhlY3V0 YWJsZV9wPSRhc190ZXN0X3gKKysKKysjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBv bnRvIGEgdmFsaWQgQ1BQIG5hbWUuCisrYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xl dHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKysKKysjIFNl ZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4K Kythc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgor KworKworKworKworKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0aGUgY29ycmVj dCBzaGVsbC4KKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorKworK2Nhc2UgWCRsdF9F Q0hPIGluCisrWCotLWZhbGxiYWNrLWVjaG8pCisrICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVv dGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgorKyAgRUNITz1gZWNobyAiJGx0 X0VDSE8iIHwgc2VkICdzLFxcXFxcJFxcJDAsJyQwJywnYAorKyAgOzsKKytlc2FjCisrCisrRUNI Tz0ke2x0X0VDSE8tZWNob30KKytpZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCisr ICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KKysgIHNoaWZ0 CisrZWxpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9pZCBp bmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVz dCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnIDsgdGhlbgorKyAgIyBZ aXBwZWUsICRFQ0hPIHdvcmtzIQorKyAgOgorK2Vsc2UKKysgICMgUmVzdGFydCB1bmRlciB0aGUg Y29ycmVjdCBzaGVsbC4KKysgIGV4ZWMgJFNIRUxMICIkMCIgLS1uby1yZWV4ZWMgJHsxKyIkQCJ9 CisrZmkKKysKKytpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyB1 c2VkIGFzIGZhbGxiYWNrIGVjaG8KKysgIHNoaWZ0CisrICBjYXQgPDxfTFRfRU9GCisrJCoKKytf TFRfRU9GCisrICBleGl0IDAKKyBmaQorIAorLW1rZGlyIC1wIGJ1aWxkL3VuaXgvbG9jYWwKKy1w YXRoPSJidWlsZC91bml4L2xvY2FsL3BhcmFtZXRlcnMiCistcm0gLWYgJHBhdGgKKy10b3VjaCAk cGF0aAorLWZvciBwYXJhbSBpbiAkKgorLWRvCistICAgICAgICBlY2hvICRwYXJhbSA+PiAkcGF0 aAorLWRvbmUKKy0KKy1wcmludGYgJ1RyeWluZyB0byBmaW5kIHRoZSBUY2wgaW50ZXJwcmV0ZXIu Li4gJworLXRjbF9mb3VuZD0wCistCistZm9yIHBhdGggaW4gIi91c3IvYmluL3RjbHNoIiBcCist ICAgICAgICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC41IiBcCistICAgICAgICAgICAgIi91 c3IvbG9jYWwvYmluL3RjbHNoOC40IiBcCistICAgICAgICAgICAgIi91c3IvbG9jYWwvYmluL3Rj bHNoOC4zIjsgZG8KKy0gICAgaWYgWyAteCAkcGF0aCBdCistICAgIHRoZW4KKy0gICAgICAgIGVj aG8gJHBhdGggPiBidWlsZC91bml4L2xvY2FsL3RjbAorLSAgICAgICAgZWNobyAkcGF0aAorLSAg ICAgICAgdGNsX2ZvdW5kPTEKKysjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50 IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAorKyMgaWYgQ0RQQVRIIGlzIHNldC4KKyso dW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICisrCisraWYgdGVz dCAteiAiJGx0X0VDSE8iOyB0aGVuCisrICBpZiB0ZXN0ICJYJHtlY2hvX3Rlc3Rfc3RyaW5nK3Nl dH0iICE9IFhzZXQ7IHRoZW4KKysgICAgIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3Np YmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0CisrICAgIGZvciBjbWQg aW4gJ3NlZCA1MHEgIiQwIicgJ3NlZCAyMHEgIiQwIicgJ3NlZCAxMHEgIiQwIicgJ3NlZCAycSAi JDAiJyAnZWNobyB0ZXN0JzsgZG8KKysgICAgICAjIGV4cGVjdGVkIHNpemVzOiBsZXNzIHRoYW4g MktiLCAxS2IsIDUxMiBieXRlcywgMTYgYnl0ZXMsIC4uLgorKyAgICAgIGlmIHsgZWNob190ZXN0 X3N0cmluZz1gZXZhbCAkY21kYDsgfSAyPi9kZXYvbnVsbCAmJgorKwkgeyB0ZXN0ICJYJGVjaG9f dGVzdF9zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGwKKysgICAg ICB0aGVuCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGRvbmUKKysgIGZpCisrCisr ICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysg ICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAy Pi9kZXYvbnVsbGAgJiYKKysgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRl Y2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICA6CisrICBlbHNlCisrICAgICMgVGhlIFNvbGFy aXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZhdWx0IGVjaG8gcHJvZ3JhbXMgdW5xdW90ZQor KyAgICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHF1b3RlIGJh Y2tzbGFzaGVzIHVzaW5nCisrICAgICMgICBlY2hvICIkc29tZXRoaW5nIiB8IHNlZCAncy9cXC9c XFxcL2cnCisrICAgICMKKysgICAgIyBTbywgZmlyc3Qgd2UgbG9vayBmb3IgYSB3b3JraW5nIGVj aG8gaW4gdGhlIHVzZXIncyBQQVRILgorKworKyAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0k UEFUSF9TRVBBUkFUT1IKKysgICAgZm9yIGRpciBpbiAkUEFUSCAvdXNyL3VjYjsgZG8KKysgICAg ICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICBpZiAodGVzdCAtZiAkZGlyL2VjaG8gfHwgdGVz dCAtZiAkZGlyL2VjaG8kYWNfZXhlZXh0KSAmJgorKyAgICAgICAgIHRlc3QgIlhgKCRkaXIvZWNo byAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgICAgICBlY2hvX3Rlc3Rpbmdf c3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgor KyAgICAgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3Ry aW5nIjsgdGhlbgorKyAgICAgICAgRUNITz0iJGRpci9lY2hvIgorICAgICAgICAgYnJlYWsKKysg ICAgICBmaQorKyAgICBkb25lCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKworKyAgICBpZiB0 ZXN0ICJYJEVDSE8iID0gWGVjaG87IHRoZW4KKysgICAgICAjIFdlIGRpZG4ndCBmaW5kIGEgYmV0 dGVyIGVjaG8sIHNvIGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KKysgICAgICBpZiB0ZXN0ICJYYHsg cHJpbnQgLXIgJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgICAgICBlY2hv X3Rlc3Rpbmdfc3RyaW5nPWB7IHByaW50IC1yICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2 L251bGxgICYmCisrICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVj aG9fdGVzdF9zdHJpbmciOyB0aGVuCisrICAgICAgICAjIFRoaXMgc2hlbGwgaGFzIGEgYnVpbHRp biBwcmludCAtciB0aGF0IGRvZXMgdGhlIHRyaWNrLgorKyAgICAgICAgRUNITz0ncHJpbnQgLXIn CisrICAgICAgZWxpZiB7IHRlc3QgLWYgL2Jpbi9rc2ggfHwgdGVzdCAtZiAvYmluL2tzaCRhY19l eGVleHQ7IH0gJiYKKysJICAgdGVzdCAiWCRDT05GSUdfU0hFTEwiICE9IFgvYmluL2tzaDsgdGhl bgorKyAgICAgICAgIyBJZiB3ZSBoYXZlIGtzaCwgdHJ5IHJ1bm5pbmcgY29uZmlndXJlIGFnYWlu IHdpdGggaXQuCisrICAgICAgICBPUklHSU5BTF9DT05GSUdfU0hFTEw9JHtDT05GSUdfU0hFTEwt L2Jpbi9zaH0KKysgICAgICAgIGV4cG9ydCBPUklHSU5BTF9DT05GSUdfU0hFTEwKKysgICAgICAg IENPTkZJR19TSEVMTD0vYmluL2tzaAorKyAgICAgICAgZXhwb3J0IENPTkZJR19TSEVMTAorKyAg ICAgICAgZXhlYyAkQ09ORklHX1NIRUxMICIkMCIgLS1uby1yZWV4ZWMgJHsxKyIkQCJ9CisrICAg ICAgZWxzZQorKyAgICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgorKyAgICAgICAgRUNITz0ncHJp bnRmICVzXG4nCisrICAgICAgICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVs bGAiID0gJ1hcdCcgJiYKKysJICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9f dGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgorKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGlu Z19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysJICAjIENvb2wsIHByaW50 ZiB3b3JrcworKwkgIDoKKysgICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklH SU5BTF9DT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxg ICYmCisrCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCisrCSAg ICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIiQwIiAtLWZh bGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCisrCSAgICAg dGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVu CisrCSAgQ09ORklHX1NIRUxMPSRPUklHSU5BTF9DT05GSUdfU0hFTEwKKysJICBleHBvcnQgQ09O RklHX1NIRUxMCisrCSAgU0hFTEw9IiRDT05GSUdfU0hFTEwiCisrCSAgZXhwb3J0IFNIRUxMCisr CSAgRUNITz0iJENPTkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iCisrICAgICAgICBlbGlm IGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hv ICdcdCcpIDI+L2Rldi9udWxsYCAmJgorKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmlu ZyIgPSAnWFx0JyAmJgorKwkgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NIRUxM ICIkMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAm JgorKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3Ry aW5nIjsgdGhlbgorKwkgIEVDSE89IiRDT05GSUdfU0hFTEwgJDAgLS1mYWxsYmFjay1lY2hvIgor KyAgICAgICAgZWxzZQorKwkgICMgbWF5YmUgd2l0aCBhIHNtYWxsZXIgc3RyaW5nLi4uCisrCSAg cHJldj06CisrCisrCSAgZm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAnc2VkIDJxICIkMCInICdzZWQg MTBxICIkMCInICdzZWQgMjBxICIkMCInICdzZWQgNTBxICIkMCInOyBkbworKwkgICAgaWYgeyB0 ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlhgZXZhbCAkY21kYCI7IH0gMj4vZGV2L251bGwK KysJICAgIHRoZW4KKysJICAgICAgYnJlYWsKKysJICAgIGZpCisrCSAgICBwcmV2PSIkY21kIgor KwkgIGRvbmUKKysKKysJICBpZiB0ZXN0ICIkcHJldiIgIT0gJ3NlZCA1MHEgIiQwIic7IHRoZW4K KysJICAgIGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJHByZXZgCisrCSAgICBleHBvcnQgZWNob190 ZXN0X3N0cmluZworKwkgICAgZXhlYyAke09SSUdJTkFMX0NPTkZJR19TSEVMTC0ke0NPTkZJR19T SEVMTC0vYmluL3NofX0gIiQwIiAkezErIiRAIn0KKysJICBlbHNlCisrCSAgICAjIE9vcHMuICBX ZSBsb3N0IGNvbXBsZXRlbHksIHNvIGp1c3Qgc3RpY2sgd2l0aCBlY2hvLgorKwkgICAgRUNITz1l Y2hvCisrCSAgZmkKKysgICAgICAgIGZpCisrICAgICAgZmkKKyAgICAgZmkKKysgIGZpCisrZmkK KysKKysjIENvcHkgZWNobyBhbmQgcXVvdGUgdGhlIGNvcHkgc3VpdGFibHkgZm9yIHBhc3Npbmcg dG8gbGlidG9vbCBmcm9tCisrIyB0aGUgTWFrZWZpbGUsIGluc3RlYWQgb2YgcXVvdGluZyB0aGUg b3JpZ2luYWwsIHdoaWNoIGlzIHVzZWQgbGF0ZXIuCisrbHRfRUNITz0kRUNITworK2lmIHRlc3Qg IlgkbHRfRUNITyIgPSAiWCRDT05GSUdfU0hFTEwgJDAgLS1mYWxsYmFjay1lY2hvIjsgdGhlbgor KyAgIGx0X0VDSE89IiRDT05GSUdfU0hFTEwgXFxcJFwkMCAtLWZhbGxiYWNrLWVjaG8iCisrZmkK KysKKysKKysKKysKKytleGVjIDc8JjAgPC9kZXYvbnVsbCA2PiYxCisrCisrIyBOYW1lIG9mIHRo ZSBob3N0LgorKyMgaG9zdG5hbWUgb24gc29tZSBzeXN0ZW1zIChTVlIzLjIsIExpbnV4KSByZXR1 cm5zIGEgYm9ndXMgZXhpdCBzdGF0dXMsCisrIyBzbyB1bmFtZSBnZXRzIHJ1biB0b28uCisrYWNf aG9zdG5hbWU9YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCisr CisrIworKyMgSW5pdGlhbGl6YXRpb25zLgorKyMKKythY19kZWZhdWx0X3ByZWZpeD0vdXNyL2xv Y2FsCisrYWNfY2xlYW5fZmlsZXM9CisrYWNfY29uZmlnX2xpYm9ial9kaXI9LgorK0xJQk9CSlM9 CisrY3Jvc3NfY29tcGlsaW5nPW5vCisrc3ViZGlycz0KKytNRkxBR1M9CisrTUFLRUZMQUdTPQor K1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9CisrCisrIyBJZGVudGl0eSBvZiB0aGlzIHBh Y2thZ2UuCisrUEFDS0FHRV9OQU1FPSdTT0NJJworK1BBQ0tBR0VfVEFSTkFNRT0nc29jaScKKytQ QUNLQUdFX1ZFUlNJT049JzMuMC4wJworK1BBQ0tBR0VfU1RSSU5HPSdTT0NJIDMuMC4wJworK1BB Q0tBR0VfQlVHUkVQT1JUPSdtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQnCisrCisrYWNf dW5pcXVlX2ZpbGU9InNvY2kvY29yZS9lcnJvci5jcHAiCisrIyBGYWN0b3JpbmcgZGVmYXVsdCBo ZWFkZXJzIGZvciBtb3N0IHRlc3RzLgorK2FjX2luY2x1ZGVzX2RlZmF1bHQ9IlwKKysjaW5jbHVk ZSA8c3RkaW8uaD4KKysjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAorKyMgaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorKyMgaW5jbHVkZSA8c3lz L3N0YXQuaD4KKysjZW5kaWYKKysjaWZkZWYgU1REQ19IRUFERVJTCisrIyBpbmNsdWRlIDxzdGRs aWIuaD4KKysjIGluY2x1ZGUgPHN0ZGRlZi5oPgorKyNlbHNlCisrIyBpZmRlZiBIQVZFX1NURExJ Ql9ICisrIyAgaW5jbHVkZSA8c3RkbGliLmg+CisrIyBlbmRpZgorKyNlbmRpZgorKyNpZmRlZiBI QVZFX1NUUklOR19ICisrIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZF X01FTU9SWV9ICisrIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CisrIyBlbmRpZgorKyMgaW5jbHVkZSA8 c3RyaW5nLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfU1RSSU5HU19ICisrIyBpbmNsdWRlIDxz dHJpbmdzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAorKyMgaW5jbHVkZSA8 aW50dHlwZXMuaD4KKysjZW5kaWYKKysjaWZkZWYgSEFWRV9TVERJTlRfSAorKyMgaW5jbHVkZSA8 c3RkaW50Lmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfVU5JU1REX0gKKysjIGluY2x1ZGUgPHVu aXN0ZC5oPgorKyNlbmRpZiIKKysKKythY19zdWJzdF92YXJzPSdMVExJQk9CSlMKKytMSUJPQkpT CisrUlVOX1RFU1RTX0ZBTFNFCisrUlVOX1RFU1RTX1RSVUUKKytzZWRfb2sKKytkaWZmX29rCisr SFRNTF9ET0NfRkFMU0UKKytIVE1MX0RPQ19UUlVFCisrUEVSTAorK2dzX29rCisrZHZpcHNfb2sK KytsYXRleF9vaworK2RveHlnZW5fb2sKKytJTkZPX0RPQ19GQUxTRQorK0lORk9fRE9DX1RSVUUK KytQT1NUR1JFU1FMX0RJUlMKKytIQVZFX1BPU1RHUkVTUUxfRkFMU0UKKytIQVZFX1BPU1RHUkVT UUxfVFJVRQorK1BPU1RHUkVTUUxfTERGTEFHUworK1BPU1RHUkVTUUxfQ0ZMQUdTCisrUE9TVEdS RVNRTF9WRVJTSU9OCisrUEdfQ09ORklHCisrT1JBQ0xFX0RJUlMKKytIQVZFX09SQUNMRV9GQUxT RQorK0hBVkVfT1JBQ0xFX1RSVUUKKytPUkFDTEVfT0NJX0xERkxBR1MKKytPUkFDTEVfT0NJX0NG TEFHUworK09SQUNMRV9PQ0lfVkVSU0lPTgorK01ZU1FMX0RJUlMKKytIQVZFX01ZU1FMX0ZBTFNF CisrSEFWRV9NWVNRTF9UUlVFCisrTVlTUUxfTERGTEFHUworK01ZU1FMX0NGTEFHUworK01ZU1FM X1ZFUlNJT04KKytNWVNRTF9DT05GSUcKKytCT09TVF9WRVJTSU9OCisrQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUIKKytCT09TVF9SRUdFWF9MSUIKKytCT09TVF9EQVRFX1RJTUVfTElCCisr Qk9PU1RfU0lHTkFMU19MSUIKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIKKytCT09TVF9TRVJJ QUxJWkFUSU9OX0xJQgorK0JPT1NUX0lPU1RSRUFNU19MSUIKKytCT09TVF9USFJFQURfTElCCisr Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQgorK0JPT1NUX0ZJTEVTWVNURU1fTElCCisrQk9PU1Rf TElCUworK0JPT1NUX0NGTEFHUworK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRAorK1NP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFRF9UUlVFCisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRAorK1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURfRkFMU0UKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUUKKytT T0NJX0hFQURFUlNfQlVSSUVECisrU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfSEVB REVSU19CVVJJRURfVFJVRQorK0NQUAorK09UT09MNjQKKytPVE9PTAorK0xJUE8KKytOTUVESVQK KytEU1lNVVRJTAorK2x0X0VDSE8KKytSQU5MSUIKKytBUgorK09CSkRVTVAKKytMTl9TCisrTk0K KythY19jdF9EVU1QQklOCisrRFVNUEJJTgorK0xECisrRkdSRVAKKytFR1JFUAorK0dSRVAKKytT RUQKKythbV9fZmFzdGRlcENDX0ZBTFNFCisrYW1fX2Zhc3RkZXBDQ19UUlVFCisrQ0NERVBNT0RF CisrYWNfY3RfQ0MKKytDRkxBR1MKKytDQworK0xJQlRPT0wKKytDWFhDUFAKKythbV9fZmFzdGRl cENYWF9GQUxTRQorK2FtX19mYXN0ZGVwQ1hYX1RSVUUKKytDWFhERVBNT0RFCisrQU1ERVBCQUNL U0xBU0gKKytBTURFUF9GQUxTRQorK0FNREVQX1RSVUUKKythbV9fcXVvdGUKKythbV9faW5jbHVk ZQorK0RFUERJUgorK09CSkVYVAorK0VYRUVYVAorK2FjX2N0X0NYWAorK0NQUEZMQUdTCisrTERG TEFHUworK0NYWEZMQUdTCisrQ1hYCisraG9zdF9vcworK2hvc3RfdmVuZG9yCisraG9zdF9jcHUK Kytob3N0CisrYnVpbGRfb3MKKytidWlsZF92ZW5kb3IKKytidWlsZF9jcHUKKytidWlsZAorK1VQ TE9BRF9DT01NQU5ECisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04KKytSUE1fUkVMRUFTRQorK0hB VkVfQ1BQVU5JVF9GQUxTRQorK0hBVkVfQ1BQVU5JVF9UUlVFCisrQ1BQVU5JVF9WRVJTSU9OCisr Q1BQVU5JVF9MSUJTCisrQ1BQVU5JVF9DRkxBR1MKKytDUFBVTklUX0NPTkZJRworK2FtX191bnRh cgorK2FtX190YXIKKytBTVRBUgorK2FtX19sZWFkaW5nX2RvdAorK1NFVF9NQUtFCisrQVdLCisr bWtkaXJfcAorK01LRElSX1AKKytJTlNUQUxMX1NUUklQX1BST0dSQU0KKytTVFJJUAorK2luc3Rh bGxfc2gKKytNQUtFSU5GTworK0FVVE9IRUFERVIKKytBVVRPTUFLRQorK0FVVE9DT05GCisrQUNM T0NBTAorK1ZFUlNJT04KKytQQUNLQUdFCisrQ1lHUEFUSF9XCisrYW1fX2lzcmMKKytJTlNUQUxM X0RBVEEKKytJTlNUQUxMX1NDUklQVAorK0lOU1RBTExfUFJPR1JBTQorK3RhcmdldF9hbGlhcwor K2hvc3RfYWxpYXMKKytidWlsZF9hbGlhcworK0xJQlMKKytFQ0hPX1QKKytFQ0hPX04KKytFQ0hP X0MKKytERUZTCisrbWFuZGlyCisrbG9jYWxlZGlyCisrbGliZGlyCisrcHNkaXIKKytwZGZkaXIK KytkdmlkaXIKKytodG1sZGlyCisraW5mb2RpcgorK2RvY2RpcgorK29sZGluY2x1ZGVkaXIKKytp bmNsdWRlZGlyCisrbG9jYWxzdGF0ZWRpcgorK3NoYXJlZHN0YXRlZGlyCisrc3lzY29uZmRpcgor K2RhdGFkaXIKKytkYXRhcm9vdGRpcgorK2xpYmV4ZWNkaXIKKytzYmluZGlyCisrYmluZGlyCisr cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZQorK3ByZWZpeAorK2V4ZWNfcHJlZml4CisrUEFDS0FHRV9C VUdSRVBPUlQKKytQQUNLQUdFX1NUUklORworK1BBQ0tBR0VfVkVSU0lPTgorK1BBQ0tBR0VfVEFS TkFNRQorK1BBQ0tBR0VfTkFNRQorK1BBVEhfU0VQQVJBVE9SCisrU0hFTEwnCisrYWNfc3Vic3Rf ZmlsZXM9JycKKythY191c2VyX29wdHM9JworK2VuYWJsZV9vcHRpb25fY2hlY2tpbmcKKyt3aXRo X2NwcHVuaXRfcHJlZml4Cisrd2l0aF9jcHB1bml0X2V4ZWNfcHJlZml4CisrZW5hYmxlX3NoYXJl ZAorK2VuYWJsZV9zdGF0aWMKKytlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZworK3dpdGhfcGlj CisrZW5hYmxlX2Zhc3RfaW5zdGFsbAorK3dpdGhfZ251X2xkCisrZW5hYmxlX2xpYnRvb2xfbG9j aworK2VuYWJsZV9leGNlcHRpb25zCisrZW5hYmxlX2luZm9fZG9jCisrZW5hYmxlX2h0bWxfZG9j Cisrd2l0aF9kb2NkaXIKKytlbmFibGVfYnVycmllZF9oZWFkZXJzCisrZW5hYmxlX215c3FsX2J1 cnJpZWRfaGVhZGVycworK2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycworK3dpdGhf Ym9vc3QKKytlbmFibGVfYmFja2VuZF9teXNxbAorK3dpdGhfbXlzcWwKKytlbmFibGVfYmFja2Vu ZF9vcmFjbGUKKyt3aXRoX29yYWNsZQorK3dpdGhfb3JhY2xlX2luY2x1ZGUKKyt3aXRoX29yYWNs ZV9saWIKKytlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsCisrd2l0aF9wb3N0Z3Jlc3FsCisrJwor KyAgICAgIGFjX3ByZWNpb3VzX3ZhcnM9J2J1aWxkX2FsaWFzCisraG9zdF9hbGlhcworK3Rhcmdl dF9hbGlhcworK0NYWAorK0NYWEZMQUdTCisrTERGTEFHUworK0xJQlMKKytDUFBGTEFHUworK0ND QworK0NYWENQUAorK0NDCisrQ0ZMQUdTCisrQ1BQJworKworKworKyMgSW5pdGlhbGl6ZSBzb21l IHZhcmlhYmxlcyBzZXQgYnkgb3B0aW9ucy4KKythY19pbml0X2hlbHA9CisrYWNfaW5pdF92ZXJz aW9uPWZhbHNlCisrYWNfdW5yZWNvZ25pemVkX29wdHM9CisrYWNfdW5yZWNvZ25pemVkX3NlcD0K KysjIFRoZSB2YXJpYWJsZXMgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhcyB0aGUgb3B0aW9ucywgd2l0 aAorKyMgZGFzaGVzIGNoYW5nZWQgdG8gdW5kZXJsaW5lcy4KKytjYWNoZV9maWxlPS9kZXYvbnVs bAorK2V4ZWNfcHJlZml4PU5PTkUKKytub19jcmVhdGU9Cisrbm9fcmVjdXJzaW9uPQorK3ByZWZp eD1OT05FCisrcHJvZ3JhbV9wcmVmaXg9Tk9ORQorK3Byb2dyYW1fc3VmZml4PU5PTkUKKytwcm9n cmFtX3RyYW5zZm9ybV9uYW1lPXMseCx4LAorK3NpbGVudD0KKytzaXRlPQorK3NyY2Rpcj0KKyt2 ZXJib3NlPQorK3hfaW5jbHVkZXM9Tk9ORQorK3hfbGlicmFyaWVzPU5PTkUKKysKKysjIEluc3Rh bGxhdGlvbiBkaXJlY3Rvcnkgb3B0aW9ucy4KKysjIFRoZXNlIGFyZSBsZWZ0IHVuZXhwYW5kZWQg c28gdXNlcnMgY2FuICJtYWtlIGluc3RhbGwgZXhlY19wcmVmaXg9L2ZvbyIKKysjIGFuZCBhbGwg dGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBzdXBwb3NlZCB0byBiZSBiYXNlZCBvbiBleGVjX3ByZWZp eAorKyMgYnkgZGVmYXVsdCB3aWxsIGFjdHVhbGx5IGNoYW5nZS4KKysjIFVzZSBicmFjZXMgaW5z dGVhZCBvZiBwYXJlbnMgYmVjYXVzZSBzaCwgcGVybCwgZXRjLiBhbHNvIGFjY2VwdCB0aGVtLgor KyMgKFRoZSBsaXN0IGZvbGxvd3MgdGhlIHNhbWUgb3JkZXIgYXMgdGhlIEdOVSBDb2RpbmcgU3Rh bmRhcmRzLikKKytiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKKytzYmluZGlyPScke2V4ZWNf cHJlZml4fS9zYmluJworK2xpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMnCisrZGF0 YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScKKytkYXRhZGlyPScke2RhdGFyb290ZGlyfScKKytz eXNjb25mZGlyPScke3ByZWZpeH0vZXRjJworK3NoYXJlZHN0YXRlZGlyPScke3ByZWZpeH0vY29t JworK2xvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCisraW5jbHVkZWRpcj0nJHtwcmVmaXh9 L2luY2x1ZGUnCisrb2xkaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJworK2RvY2Rpcj0nJHtkYXRh cm9vdGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJOQU1FfScKKytpbmZvZGlyPScke2RhdGFyb290ZGly fS9pbmZvJworK2h0bWxkaXI9JyR7ZG9jZGlyfScKKytkdmlkaXI9JyR7ZG9jZGlyfScKKytwZGZk aXI9JyR7ZG9jZGlyfScKKytwc2Rpcj0nJHtkb2NkaXJ9JworK2xpYmRpcj0nJHtleGVjX3ByZWZp eH0vbGliJworK2xvY2FsZWRpcj0nJHtkYXRhcm9vdGRpcn0vbG9jYWxlJworK21hbmRpcj0nJHtk YXRhcm9vdGRpcn0vbWFuJworKworK2FjX3ByZXY9CisrYWNfZGFzaGRhc2g9CisrZm9yIGFjX29w dGlvbgorK2RvCisrICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQs IGFzc2lnbiBpdC4KKysgIGlmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgorKyAgICBldmFsICRh Y19wcmV2PVwkYWNfb3B0aW9uCisrICAgIGFjX3ByZXY9CisrICAgIGNvbnRpbnVlCisrICBmaQor KworKyAgY2FzZSAkYWNfb3B0aW9uIGluCisrICAqPSopCWFjX29wdGFyZz1gZXhwciAiWCRhY19v cHRpb24iIDogJ1tePV0qPVwoLipcKSdgIDs7CisrICAqKQlhY19vcHRhcmc9eWVzIDs7CisrICBl c2FjCisrCisrICAjIEFjY2VwdCB0aGUgaW1wb3J0YW50IEN5Z251cyBjb25maWd1cmUgb3B0aW9u cywgc28gd2UgY2FuIGRpYWdub3NlIHR5cG9zLgorKworKyAgY2FzZSAkYWNfZGFzaGRhc2gkYWNf b3B0aW9uIGluCisrICAtLSkKKysgICAgYWNfZGFzaGRhc2g9eWVzIDs7CisrCisrICAtYmluZGly IHwgLS1iaW5kaXIgfCAtLWJpbmRpIHwgLS1iaW5kIHwgLS1iaW4gfCAtLWJpKQorKyAgICBhY19w cmV2PWJpbmRpciA7OworKyAgLWJpbmRpcj0qIHwgLS1iaW5kaXI9KiB8IC0tYmluZGk9KiB8IC0t YmluZD0qIHwgLS1iaW49KiB8IC0tYmk9KikKKysgICAgYmluZGlyPSRhY19vcHRhcmcgOzsKKysK KysgIC1idWlsZCB8IC0tYnVpbGQgfCAtLWJ1aWwgfCAtLWJ1aSB8IC0tYnUpCisrICAgIGFjX3By ZXY9YnVpbGRfYWxpYXMgOzsKKysgIC1idWlsZD0qIHwgLS1idWlsZD0qIHwgLS1idWlsPSogfCAt LWJ1aT0qIHwgLS1idT0qKQorKyAgICBidWlsZF9hbGlhcz0kYWNfb3B0YXJnIDs7CisrCisrICAt Y2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsIHwgLS1jYWNoZS1maSBcCisr ICB8IC0tY2FjaGUtZiB8IC0tY2FjaGUtIHwgLS1jYWNoZSB8IC0tY2FjaCB8IC0tY2FjIHwgLS1j YSB8IC0tYykKKysgICAgYWNfcHJldj1jYWNoZV9maWxlIDs7CisrICAtY2FjaGUtZmlsZT0qIHwg LS1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbD0qIHwgLS1jYWNoZS1maT0qIFwKKysgIHwgLS1j YWNoZS1mPSogfCAtLWNhY2hlLT0qIHwgLS1jYWNoZT0qIHwgLS1jYWNoPSogfCAtLWNhYz0qIHwg LS1jYT0qIHwgLS1jPSopCisrICAgIGNhY2hlX2ZpbGU9JGFjX29wdGFyZyA7OworKworKyAgLS1j b25maWctY2FjaGUgfCAtQykKKysgICAgY2FjaGVfZmlsZT1jb25maWcuY2FjaGUgOzsKKysKKysg IC1kYXRhZGlyIHwgLS1kYXRhZGlyIHwgLS1kYXRhZGkgfCAtLWRhdGFkKQorKyAgICBhY19wcmV2 PWRhdGFkaXIgOzsKKysgIC1kYXRhZGlyPSogfCAtLWRhdGFkaXI9KiB8IC0tZGF0YWRpPSogfCAt LWRhdGFkPSopCisrICAgIGRhdGFkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWRhdGFyb290ZGly IHwgLS1kYXRhcm9vdGRpciB8IC0tZGF0YXJvb3RkaSB8IC0tZGF0YXJvb3RkIHwgLS1kYXRhcm9v dCBcCisrICB8IC0tZGF0YXJvbyB8IC0tZGF0YXJvIHwgLS1kYXRhcikKKysgICAgYWNfcHJldj1k YXRhcm9vdGRpciA7OworKyAgLWRhdGFyb290ZGlyPSogfCAtLWRhdGFyb290ZGlyPSogfCAtLWRh dGFyb290ZGk9KiB8IC0tZGF0YXJvb3RkPSogXAorKyAgfCAtLWRhdGFyb290PSogfCAtLWRhdGFy b289KiB8IC0tZGF0YXJvPSogfCAtLWRhdGFyPSopCisrICAgIGRhdGFyb290ZGlyPSRhY19vcHRh cmcgOzsKKysKKysgIC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKikKKysgICAgYWNfdXNlcm9wdD1g ZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmRpc2FibGUtXCguKlwpJ2AKKysgICAgIyBSZWplY3Qg bmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorKyAgICBleHBy ICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgor KyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgZmVhdHVyZSBuYW1lOiAk YWNfdXNlcm9wdCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAgIGFjX3Vz ZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAorKyAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3Vz ZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCisrICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBpbgor KyAgICAgICoiCisrImVuYWJsZV8kYWNfdXNlcm9wdCIKKysiKikgOzsKKysgICAgICAqKSBhY191 bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9vcHRzJGFjX3VucmVjb2duaXplZF9z ZXAtLWRpc2FibGUtJGFjX3VzZXJvcHRfb3JpZyIKKysJIGFjX3VucmVjb2duaXplZF9zZXA9Jywg Jzs7CisrICAgIGVzYWMKKysgICAgZXZhbCBlbmFibGVfJGFjX3VzZXJvcHQ9bm8gOzsKKysKKysg IC1kb2NkaXIgfCAtLWRvY2RpciB8IC0tZG9jZGkgfCAtLWRvYyB8IC0tZG8pCisrICAgIGFjX3By ZXY9ZG9jZGlyIDs7CisrICAtZG9jZGlyPSogfCAtLWRvY2Rpcj0qIHwgLS1kb2NkaT0qIHwgLS1k b2M9KiB8IC0tZG89KikKKysgICAgZG9jZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1kdmlkaXIg fCAtLWR2aWRpciB8IC0tZHZpZGkgfCAtLWR2aWQgfCAtLWR2aSB8IC0tZHYpCisrICAgIGFjX3By ZXY9ZHZpZGlyIDs7CisrICAtZHZpZGlyPSogfCAtLWR2aWRpcj0qIHwgLS1kdmlkaT0qIHwgLS1k dmlkPSogfCAtLWR2aT0qIHwgLS1kdj0qKQorKyAgICBkdmlkaXI9JGFjX29wdGFyZyA7OworKwor KyAgLWVuYWJsZS0qIHwgLS1lbmFibGUtKikKKysgICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19v cHRpb24iIDogJ3gtKmVuYWJsZS1cKFtePV0qXCknYAorKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0 IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCisrICAgIGV4cHIgIngkYWNfdXNl cm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCisrICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0 IiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgYWNfdXNlcm9wdF9vcmln PSRhY191c2Vyb3B0CisrICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBz ZWQgJ3MvWy0rLl0vXy9nJ2AKKysgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCisrICAgICAgKiIK KysiZW5hYmxlXyRhY191c2Vyb3B0IgorKyIqKSA7OworKyAgICAgICopIGFjX3VucmVjb2duaXpl ZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0tZW5hYmxl LSRhY191c2Vyb3B0X29yaWciCisrCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7OworKyAgICBl c2FjCisrICAgIGV2YWwgZW5hYmxlXyRhY191c2Vyb3B0PVwkYWNfb3B0YXJnIDs7CisrCisrICAt ZXhlYy1wcmVmaXggfCAtLWV4ZWNfcHJlZml4IHwgLS1leGVjLXByZWZpeCB8IC0tZXhlYy1wcmVm aSBcCisrICB8IC0tZXhlYy1wcmVmIHwgLS1leGVjLXByZSB8IC0tZXhlYy1wciB8IC0tZXhlYy1w IHwgLS1leGVjLSBcCisrICB8IC0tZXhlYyB8IC0tZXhlIHwgLS1leCkKKysgICAgYWNfcHJldj1l eGVjX3ByZWZpeCA7OworKyAgLWV4ZWMtcHJlZml4PSogfCAtLWV4ZWNfcHJlZml4PSogfCAtLWV4 ZWMtcHJlZml4PSogfCAtLWV4ZWMtcHJlZmk9KiBcCisrICB8IC0tZXhlYy1wcmVmPSogfCAtLWV4 ZWMtcHJlPSogfCAtLWV4ZWMtcHI9KiB8IC0tZXhlYy1wPSogfCAtLWV4ZWMtPSogXAorKyAgfCAt LWV4ZWM9KiB8IC0tZXhlPSogfCAtLWV4PSopCisrICAgIGV4ZWNfcHJlZml4PSRhY19vcHRhcmcg OzsKKysKKysgIC1nYXMgfCAtLWdhcyB8IC0tZ2EgfCAtLWcpCisrICAgICMgT2Jzb2xldGU7IHVz ZSAtLXdpdGgtZ2FzLgorKyAgICB3aXRoX2dhcz15ZXMgOzsKKysKKysgIC1oZWxwIHwgLS1oZWxw IHwgLS1oZWwgfCAtLWhlIHwgLWgpCisrICAgIGFjX2luaXRfaGVscD1sb25nIDs7CisrICAtaGVs cD1yKiB8IC0taGVscD1yKiB8IC0taGVsPXIqIHwgLS1oZT1yKiB8IC1ociopCisrICAgIGFjX2lu aXRfaGVscD1yZWN1cnNpdmUgOzsKKysgIC1oZWxwPXMqIHwgLS1oZWxwPXMqIHwgLS1oZWw9cyog fCAtLWhlPXMqIHwgLWhzKikKKysgICAgYWNfaW5pdF9oZWxwPXNob3J0IDs7CisrCisrICAtaG9z dCB8IC0taG9zdCB8IC0taG9zIHwgLS1obykKKysgICAgYWNfcHJldj1ob3N0X2FsaWFzIDs7Cisr ICAtaG9zdD0qIHwgLS1ob3N0PSogfCAtLWhvcz0qIHwgLS1obz0qKQorKyAgICBob3N0X2FsaWFz PSRhY19vcHRhcmcgOzsKKysKKysgIC1odG1sZGlyIHwgLS1odG1sZGlyIHwgLS1odG1sZGkgfCAt LWh0bWxkIHwgLS1odG1sIHwgLS1odG0gfCAtLWh0KQorKyAgICBhY19wcmV2PWh0bWxkaXIgOzsK KysgIC1odG1sZGlyPSogfCAtLWh0bWxkaXI9KiB8IC0taHRtbGRpPSogfCAtLWh0bWxkPSogfCAt LWh0bWw9KiB8IC0taHRtPSogXAorKyAgfCAtLWh0PSopCisrICAgIGh0bWxkaXI9JGFjX29wdGFy ZyA7OworKworKyAgLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaSB8IC0t aW5jbHVkZWQgfCAtLWluY2x1ZGUgXAorKyAgfCAtLWluY2x1ZCB8IC0taW5jbHUgfCAtLWluY2wg fCAtLWluYykKKysgICAgYWNfcHJldj1pbmNsdWRlZGlyIDs7CisrICAtaW5jbHVkZWRpcj0qIHwg LS1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaT0qIHwgLS1pbmNsdWRlZD0qIHwgLS1pbmNsdWRl PSogXAorKyAgfCAtLWluY2x1ZD0qIHwgLS1pbmNsdT0qIHwgLS1pbmNsPSogfCAtLWluYz0qKQor KyAgICBpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1pbmZvZGlyIHwgLS1pbmZvZGly IHwgLS1pbmZvZGkgfCAtLWluZm9kIHwgLS1pbmZvIHwgLS1pbmYpCisrICAgIGFjX3ByZXY9aW5m b2RpciA7OworKyAgLWluZm9kaXI9KiB8IC0taW5mb2Rpcj0qIHwgLS1pbmZvZGk9KiB8IC0taW5m b2Q9KiB8IC0taW5mbz0qIHwgLS1pbmY9KikKKysgICAgaW5mb2Rpcj0kYWNfb3B0YXJnIDs7Cisr CisrICAtbGliZGlyIHwgLS1saWJkaXIgfCAtLWxpYmRpIHwgLS1saWJkKQorKyAgICBhY19wcmV2 PWxpYmRpciA7OworKyAgLWxpYmRpcj0qIHwgLS1saWJkaXI9KiB8IC0tbGliZGk9KiB8IC0tbGli ZD0qKQorKyAgICBsaWJkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWxpYmV4ZWNkaXIgfCAtLWxp YmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaSB8IC0tbGliZXhlY2QgfCAtLWxpYmV4ZWMgXAorKyAgfCAt LWxpYmV4ZSB8IC0tbGliZXggfCAtLWxpYmUpCisrICAgIGFjX3ByZXY9bGliZXhlY2RpciA7Owor KyAgLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGk9KiB8IC0tbGli ZXhlY2Q9KiB8IC0tbGliZXhlYz0qIFwKKysgIHwgLS1saWJleGU9KiB8IC0tbGliZXg9KiB8IC0t bGliZT0qKQorKyAgICBsaWJleGVjZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1sb2NhbGVkaXIg fCAtLWxvY2FsZWRpciB8IC0tbG9jYWxlZGkgfCAtLWxvY2FsZWQgfCAtLWxvY2FsZSkKKysgICAg YWNfcHJldj1sb2NhbGVkaXIgOzsKKysgIC1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGlyPSogfCAt LWxvY2FsZWRpPSogfCAtLWxvY2FsZWQ9KiB8IC0tbG9jYWxlPSopCisrICAgIGxvY2FsZWRpcj0k YWNfb3B0YXJnIDs7CisrCisrICAtbG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRpciB8IC0t bG9jYWxzdGF0ZWRpIHwgLS1sb2NhbHN0YXRlZCBcCisrICB8IC0tbG9jYWxzdGF0ZSB8IC0tbG9j YWxzdGF0IHwgLS1sb2NhbHN0YSB8IC0tbG9jYWxzdCB8IC0tbG9jYWxzKQorKyAgICBhY19wcmV2 PWxvY2Fsc3RhdGVkaXIgOzsKKysgIC1sb2NhbHN0YXRlZGlyPSogfCAtLWxvY2Fsc3RhdGVkaXI9 KiB8IC0tbG9jYWxzdGF0ZWRpPSogfCAtLWxvY2Fsc3RhdGVkPSogXAorKyAgfCAtLWxvY2Fsc3Rh dGU9KiB8IC0tbG9jYWxzdGF0PSogfCAtLWxvY2Fsc3RhPSogfCAtLWxvY2Fsc3Q9KiB8IC0tbG9j YWxzPSopCisrICAgIGxvY2Fsc3RhdGVkaXI9JGFjX29wdGFyZyA7OworKworKyAgLW1hbmRpciB8 IC0tbWFuZGlyIHwgLS1tYW5kaSB8IC0tbWFuZCB8IC0tbWFuIHwgLS1tYSB8IC0tbSkKKysgICAg YWNfcHJldj1tYW5kaXIgOzsKKysgIC1tYW5kaXI9KiB8IC0tbWFuZGlyPSogfCAtLW1hbmRpPSog fCAtLW1hbmQ9KiB8IC0tbWFuPSogfCAtLW1hPSogfCAtLW09KikKKysgICAgbWFuZGlyPSRhY19v cHRhcmcgOzsKKysKKysgIC1uZnAgfCAtLW5mcCB8IC0tbmYpCisrICAgICMgT2Jzb2xldGU7IHVz ZSAtLXdpdGhvdXQtZnAuCisrICAgIHdpdGhfZnA9bm8gOzsKKysKKysgIC1uby1jcmVhdGUgfCAt LW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAtLW5vLWNyZWEgfCAtLW5vLWNyZSBcCisrICB8IC0t bm8tY3IgfCAtLW5vLWMgfCAtbikKKysgICAgbm9fY3JlYXRlPXllcyA7OworKworKyAgLW5vLXJl Y3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpbyB8IC0tbm8tcmVjdXJzaSBc CisrICB8IC0tbm8tcmVjdXJzIHwgLS1uby1yZWN1ciB8IC0tbm8tcmVjdSB8IC0tbm8tcmVjIHwg LS1uby1yZSB8IC0tbm8tcikKKysgICAgbm9fcmVjdXJzaW9uPXllcyA7OworKworKyAgLW9sZGlu Y2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaSB8IC0tb2xkaW5jbHVk ZWQgXAorKyAgfCAtLW9sZGluY2x1ZGUgfCAtLW9sZGluY2x1ZCB8IC0tb2xkaW5jbHUgfCAtLW9s ZGluY2wgfCAtLW9sZGluYyBcCisrICB8IC0tb2xkaW4gfCAtLW9sZGkgfCAtLW9sZCB8IC0tb2wg fCAtLW8pCisrICAgIGFjX3ByZXY9b2xkaW5jbHVkZWRpciA7OworKyAgLW9sZGluY2x1ZGVkaXI9 KiB8IC0tb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGk9KiB8IC0tb2xkaW5jbHVkZWQ9 KiBcCisrICB8IC0tb2xkaW5jbHVkZT0qIHwgLS1vbGRpbmNsdWQ9KiB8IC0tb2xkaW5jbHU9KiB8 IC0tb2xkaW5jbD0qIHwgLS1vbGRpbmM9KiBcCisrICB8IC0tb2xkaW49KiB8IC0tb2xkaT0qIHwg LS1vbGQ9KiB8IC0tb2w9KiB8IC0tbz0qKQorKyAgICBvbGRpbmNsdWRlZGlyPSRhY19vcHRhcmcg OzsKKysKKysgIC1wcmVmaXggfCAtLXByZWZpeCB8IC0tcHJlZmkgfCAtLXByZWYgfCAtLXByZSB8 IC0tcHIgfCAtLXApCisrICAgIGFjX3ByZXY9cHJlZml4IDs7CisrICAtcHJlZml4PSogfCAtLXBy ZWZpeD0qIHwgLS1wcmVmaT0qIHwgLS1wcmVmPSogfCAtLXByZT0qIHwgLS1wcj0qIHwgLS1wPSop CisrICAgIHByZWZpeD0kYWNfb3B0YXJnIDs7CisrCisrICAtcHJvZ3JhbS1wcmVmaXggfCAtLXBy b2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpIHwgLS1wcm9ncmFtLXByZWYgXAorKyAgfCAt LXByb2dyYW0tcHJlIHwgLS1wcm9ncmFtLXByIHwgLS1wcm9ncmFtLXApCisrICAgIGFjX3ByZXY9 cHJvZ3JhbV9wcmVmaXggOzsKKysgIC1wcm9ncmFtLXByZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZp eD0qIHwgLS1wcm9ncmFtLXByZWZpPSogXAorKyAgfCAtLXByb2dyYW0tcHJlZj0qIHwgLS1wcm9n cmFtLXByZT0qIHwgLS1wcm9ncmFtLXByPSogfCAtLXByb2dyYW0tcD0qKQorKyAgICBwcm9ncmFt X3ByZWZpeD0kYWNfb3B0YXJnIDs7CisrCisrICAtcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0t c3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpIHwgLS1wcm9ncmFtLXN1ZmYgXAorKyAgfCAtLXByb2dy YW0tc3VmIHwgLS1wcm9ncmFtLXN1IHwgLS1wcm9ncmFtLXMpCisrICAgIGFjX3ByZXY9cHJvZ3Jh bV9zdWZmaXggOzsKKysgIC1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpeD0qIHwg LS1wcm9ncmFtLXN1ZmZpPSogXAorKyAgfCAtLXByb2dyYW0tc3VmZj0qIHwgLS1wcm9ncmFtLXN1 Zj0qIHwgLS1wcm9ncmFtLXN1PSogfCAtLXByb2dyYW0tcz0qKQorKyAgICBwcm9ncmFtX3N1ZmZp eD0kYWNfb3B0YXJnIDs7CisrCisrICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSB8IC0tcHJvZ3Jh bS10cmFuc2Zvcm0tbmFtZSBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtIHwgLS1wcm9n cmFtLXRyYW5zZm9ybS1uYSBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbiB8IC0tcHJvZ3Jh bS10cmFuc2Zvcm0tIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybSB8IC0tcHJvZ3JhbS10cmFu c2ZvciBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2ZvIHwgLS1wcm9ncmFtLXRyYW5zZiBcCisrICB8 IC0tcHJvZ3JhbS10cmFucyB8IC0tcHJvZ3JhbS10cmFuIFwKKysgIHwgLS1wcm9nci10cmEgfCAt LXByb2dyYW0tdHIgfCAtLXByb2dyYW0tdCkKKysgICAgYWNfcHJldj1wcm9ncmFtX3RyYW5zZm9y bV9uYW1lIDs7CisrICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0qIHwgLS1wcm9ncmFtLXRyYW5z Zm9ybS1uYW1lPSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbT0qIHwgLS1wcm9ncmFt LXRyYW5zZm9ybS1uYT0qIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uPSogfCAtLXByb2dy YW0tdHJhbnNmb3JtLT0qIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybT0qIHwgLS1wcm9ncmFt LXRyYW5zZm9yPSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmbz0qIHwgLS1wcm9ncmFtLXRyYW5z Zj0qIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zPSogfCAtLXByb2dyYW0tdHJhbj0qIFwKKysgIHwg LS1wcm9nci10cmE9KiB8IC0tcHJvZ3JhbS10cj0qIHwgLS1wcm9ncmFtLXQ9KikKKysgICAgcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZT0kYWNfb3B0YXJnIDs7CisrCisrICAtcGRmZGlyIHwgLS1wZGZk aXIgfCAtLXBkZmRpIHwgLS1wZGZkIHwgLS1wZGYgfCAtLXBkKQorKyAgICBhY19wcmV2PXBkZmRp ciA7OworKyAgLXBkZmRpcj0qIHwgLS1wZGZkaXI9KiB8IC0tcGRmZGk9KiB8IC0tcGRmZD0qIHwg LS1wZGY9KiB8IC0tcGQ9KikKKysgICAgcGRmZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1wc2Rp ciB8IC0tcHNkaXIgfCAtLXBzZGkgfCAtLXBzZCB8IC0tcHMpCisrICAgIGFjX3ByZXY9cHNkaXIg OzsKKysgIC1wc2Rpcj0qIHwgLS1wc2Rpcj0qIHwgLS1wc2RpPSogfCAtLXBzZD0qIHwgLS1wcz0q KQorKyAgICBwc2Rpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtcSB8IC1xdWlldCB8IC0tcXVpZXQg fCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAorKyAgfCAtc2lsZW50IHwgLS1zaWxlbnQg fCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCisrICAgIHNpbGVudD15ZXMgOzsKKysKKysgIC1z YmluZGlyIHwgLS1zYmluZGlyIHwgLS1zYmluZGkgfCAtLXNiaW5kIHwgLS1zYmluIHwgLS1zYmkg fCAtLXNiKQorKyAgICBhY19wcmV2PXNiaW5kaXIgOzsKKysgIC1zYmluZGlyPSogfCAtLXNiaW5k aXI9KiB8IC0tc2JpbmRpPSogfCAtLXNiaW5kPSogfCAtLXNiaW49KiBcCisrICB8IC0tc2JpPSog fCAtLXNiPSopCisrICAgIHNiaW5kaXI9JGFjX29wdGFyZyA7OworKworKyAgLXNoYXJlZHN0YXRl ZGlyIHwgLS1zaGFyZWRzdGF0ZWRpciB8IC0tc2hhcmVkc3RhdGVkaSBcCisrICB8IC0tc2hhcmVk c3RhdGVkIHwgLS1zaGFyZWRzdGF0ZSB8IC0tc2hhcmVkc3RhdCB8IC0tc2hhcmVkc3RhIFwKKysg IHwgLS1zaGFyZWRzdCB8IC0tc2hhcmVkcyB8IC0tc2hhcmVkIHwgLS1zaGFyZSB8IC0tc2hhciBc CisrICB8IC0tc2hhIHwgLS1zaCkKKysgICAgYWNfcHJldj1zaGFyZWRzdGF0ZWRpciA7OworKyAg LXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRlZGk9 KiBcCisrICB8IC0tc2hhcmVkc3RhdGVkPSogfCAtLXNoYXJlZHN0YXRlPSogfCAtLXNoYXJlZHN0 YXQ9KiB8IC0tc2hhcmVkc3RhPSogXAorKyAgfCAtLXNoYXJlZHN0PSogfCAtLXNoYXJlZHM9KiB8 IC0tc2hhcmVkPSogfCAtLXNoYXJlPSogfCAtLXNoYXI9KiBcCisrICB8IC0tc2hhPSogfCAtLXNo PSopCisrICAgIHNoYXJlZHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1zaXRlIHwgLS1z aXRlIHwgLS1zaXQpCisrICAgIGFjX3ByZXY9c2l0ZSA7OworKyAgLXNpdGU9KiB8IC0tc2l0ZT0q IHwgLS1zaXQ9KikKKysgICAgc2l0ZT0kYWNfb3B0YXJnIDs7CisrCisrICAtc3JjZGlyIHwgLS1z cmNkaXIgfCAtLXNyY2RpIHwgLS1zcmNkIHwgLS1zcmMgfCAtLXNyKQorKyAgICBhY19wcmV2PXNy Y2RpciA7OworKyAgLXNyY2Rpcj0qIHwgLS1zcmNkaXI9KiB8IC0tc3JjZGk9KiB8IC0tc3JjZD0q IHwgLS1zcmM9KiB8IC0tc3I9KikKKysgICAgc3JjZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1z eXNjb25mZGlyIHwgLS1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGkgfCAtLXN5c2NvbmZkIHwgLS1z eXNjb25mIFwKKysgIHwgLS1zeXNjb24gfCAtLXN5c2NvIHwgLS1zeXNjIHwgLS1zeXMgfCAtLXN5 KQorKyAgICBhY19wcmV2PXN5c2NvbmZkaXIgOzsKKysgIC1zeXNjb25mZGlyPSogfCAtLXN5c2Nv bmZkaXI9KiB8IC0tc3lzY29uZmRpPSogfCAtLXN5c2NvbmZkPSogfCAtLXN5c2NvbmY9KiBcCisr ICB8IC0tc3lzY29uPSogfCAtLXN5c2NvPSogfCAtLXN5c2M9KiB8IC0tc3lzPSogfCAtLXN5PSop CisrICAgIHN5c2NvbmZkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXRhcmdldCB8IC0tdGFyZ2V0 IHwgLS10YXJnZSB8IC0tdGFyZyB8IC0tdGFyIHwgLS10YSB8IC0tdCkKKysgICAgYWNfcHJldj10 YXJnZXRfYWxpYXMgOzsKKysgIC10YXJnZXQ9KiB8IC0tdGFyZ2V0PSogfCAtLXRhcmdlPSogfCAt LXRhcmc9KiB8IC0tdGFyPSogfCAtLXRhPSogfCAtLXQ9KikKKysgICAgdGFyZ2V0X2FsaWFzPSRh Y19vcHRhcmcgOzsKKysKKysgIC12IHwgLXZlcmJvc2UgfCAtLXZlcmJvc2UgfCAtLXZlcmJvcyB8 IC0tdmVyYm8gfCAtLXZlcmIpCisrICAgIHZlcmJvc2U9eWVzIDs7CisrCisrICAtdmVyc2lvbiB8 IC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8IC1WKQorKyAgICBhY19p bml0X3ZlcnNpb249OiA7OworKworKyAgLXdpdGgtKiB8IC0td2l0aC0qKQorKyAgICBhY191c2Vy b3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0aC1cKFtePV0qXCknYAorKyAgICAjIFJl amVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCisrICAg IGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxs ICYmCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBwYWNrYWdlIG5h bWU6ICRhY191c2Vyb3B0IiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAg YWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0CisrICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIk YWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKKysgICAgY2FzZSAkYWNfdXNlcl9vcHRz IGluCisrICAgICAgKiIKKysid2l0aF8kYWNfdXNlcm9wdCIKKysiKikgOzsKKysgICAgICAqKSBh Y191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9vcHRzJGFjX3VucmVjb2duaXpl ZF9zZXAtLXdpdGgtJGFjX3VzZXJvcHRfb3JpZyIKKysJIGFjX3VucmVjb2duaXplZF9zZXA9Jywg Jzs7CisrICAgIGVzYWMKKysgICAgZXZhbCB3aXRoXyRhY191c2Vyb3B0PVwkYWNfb3B0YXJnIDs7 CisrCisrICAtd2l0aG91dC0qIHwgLS13aXRob3V0LSopCisrICAgIGFjX3VzZXJvcHQ9YGV4cHIg IngkYWNfb3B0aW9uIiA6ICd4LSp3aXRob3V0LVwoLipcKSdgCisrICAgICMgUmVqZWN0IG5hbWVz IHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKysgICAgZXhwciAieCRh Y191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3Vz ZXJvcHQiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBhY191c2Vyb3B0 X29yaWc9JGFjX3VzZXJvcHQKKysgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0 IiB8IHNlZCAncy9bLSsuXS9fL2cnYAorKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KKysgICAg ICAqIgorKyJ3aXRoXyRhY191c2Vyb3B0IgorKyIqKSA7OworKyAgICAgICopIGFjX3VucmVjb2du aXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0td2l0 aG91dC0kYWNfdXNlcm9wdF9vcmlnIgorKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKKysg ICAgZXNhYworKyAgICBldmFsIHdpdGhfJGFjX3VzZXJvcHQ9bm8gOzsKKysKKysgIC0teCkKKysg ICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC14LgorKyAgICB3aXRoX3g9eWVzIDs7CisrCisrICAt eC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlIHwgLS14LWluY2x1ZCB8IC0t eC1pbmNsdSBcCisrICB8IC0teC1pbmNsIHwgLS14LWluYyB8IC0teC1pbiB8IC0teC1pKQorKyAg ICBhY19wcmV2PXhfaW5jbHVkZXMgOzsKKysgIC14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZXM9 KiB8IC0teC1pbmNsdWRlPSogfCAtLXgtaW5jbHVkPSogfCAtLXgtaW5jbHU9KiBcCisrICB8IC0t eC1pbmNsPSogfCAtLXgtaW5jPSogfCAtLXgtaW49KiB8IC0teC1pPSopCisrICAgIHhfaW5jbHVk ZXM9JGFjX29wdGFyZyA7OworKworKyAgLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllcyB8IC0t eC1saWJyYXJpZSB8IC0teC1saWJyYXJpIFwKKysgIHwgLS14LWxpYnJhciB8IC0teC1saWJyYSB8 IC0teC1saWJyIHwgLS14LWxpYiB8IC0teC1saSB8IC0teC1sKQorKyAgICBhY19wcmV2PXhfbGli cmFyaWVzIDs7CisrICAteC1saWJyYXJpZXM9KiB8IC0teC1saWJyYXJpZXM9KiB8IC0teC1saWJy YXJpZT0qIHwgLS14LWxpYnJhcmk9KiBcCisrICB8IC0teC1saWJyYXI9KiB8IC0teC1saWJyYT0q IHwgLS14LWxpYnI9KiB8IC0teC1saWI9KiB8IC0teC1saT0qIHwgLS14LWw9KikKKysgICAgeF9s aWJyYXJpZXM9JGFjX29wdGFyZyA7OworKworKyAgLSopIHsgJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IHVucmVjb2duaXplZCBvcHRpb246ICRhY19vcHRpb24KKytUcnkgXGAkMCAtLWhlbHAnIGZv ciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Cisr ICAgIDs7CisrCisrICAqPSopCisrICAgIGFjX2VudnZhcj1gZXhwciAieCRhY19vcHRpb24iIDog J3hcKFtePV0qXCk9J2AKKysgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNo ZWxsIHZhcmlhYmxlIG5hbWVzLgorKyAgICBleHByICJ4JGFjX2VudnZhciIgOiAiLipbXl8kYXNf Y3JfYWxudW1dIiA+L2Rldi9udWxsICYmCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJv cjogaW52YWxpZCB2YXJpYWJsZSBuYW1lOiAkYWNfZW52dmFyIiA+JjIKKysgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KKysgICAgZXZhbCAkYWNfZW52dmFyPVwkYWNfb3B0YXJnCisrICAgIGV4 cG9ydCAkYWNfZW52dmFyIDs7CisrCisrICAqKQorKyAgICAjIEZJWE1FOiBzaG91bGQgYmUgcmVt b3ZlZCBpbiBhdXRvY29uZiAzLjAuCisrICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHlv dSBzaG91bGQgdXNlIC0tYnVpbGQsIC0taG9zdCwgLS10YXJnZXQiID4mMgorKyAgICBleHByICJ4 JGFjX29wdGlvbiIgOiAiLipbXi0uXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAg ICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpbnZhbGlkIGhvc3QgdHlwZTogJGFjX29wdGlv biIgPiYyCisrICAgIDogJHtidWlsZF9hbGlhcz0kYWNfb3B0aW9ufSAke2hvc3RfYWxpYXM9JGFj X29wdGlvbn0gJHt0YXJnZXRfYWxpYXM9JGFjX29wdGlvbn0KKysgICAgOzsKKysKKysgIGVzYWMK KyBkb25lCisgCistaWYgWyAkdGNsX2ZvdW5kIC1lcSAwIF0KKy10aGVuCistICAgICAgICBlY2hv ICdOT1QgZm91bmQuJworLSAgICAgICAgZWNobyAnSXMgdGhlIFRjbCBpbnN0YWxsZWQ/JworLSAg ICAgICAgZXhpdAorK2lmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgorKyAgYWNfb3B0aW9uPS0t YGVjaG8gJGFjX3ByZXYgfCBzZWQgJ3MvXy8tL2cnYAorKyAgeyAkYXNfZWNobyAiJGFzX21lOiBl cnJvcjogbWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0aW9uIiA+JjIKKysgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KKytmaQorKworK2lmIHRlc3QgLW4gIiRhY191bnJlY29nbml6ZWRfb3B0 cyI7IHRoZW4KKysgIGNhc2UgJGVuYWJsZV9vcHRpb25fY2hlY2tpbmcgaW4KKysgICAgbm8pIDs7 CisrICAgIGZhdGFsKSB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0 aW9uczogJGFjX3VucmVjb2duaXplZF9vcHRzIiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0gOzsKKysgICAgKikgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVucmVjb2du aXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMiA7OworKyAgZXNhYworK2Zp CisrCisrIyBDaGVjayBhbGwgZGlyZWN0b3J5IGFyZ3VtZW50cyBmb3IgY29uc2lzdGVuY3kuCisr Zm9yIGFjX3ZhciBpbglleGVjX3ByZWZpeCBwcmVmaXggYmluZGlyIHNiaW5kaXIgbGliZXhlY2Rp ciBkYXRhcm9vdGRpciBcCisrCQlkYXRhZGlyIHN5c2NvbmZkaXIgc2hhcmVkc3RhdGVkaXIgbG9j YWxzdGF0ZWRpciBpbmNsdWRlZGlyIFwKKysJCW9sZGluY2x1ZGVkaXIgZG9jZGlyIGluZm9kaXIg aHRtbGRpciBkdmlkaXIgcGRmZGlyIHBzZGlyIFwKKysJCWxpYmRpciBsb2NhbGVkaXIgbWFuZGly CisrZG8KKysgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgorKyAgIyBSZW1vdmUgdHJhaWxpbmcgc2xh c2hlcy4KKysgIGNhc2UgJGFjX3ZhbCBpbgorKyAgICAqLyApCisrICAgICAgYWNfdmFsPWBleHBy ICJYJGFjX3ZhbCIgOiAnWFwoLipbXi9dXCknIFx8ICJYJGFjX3ZhbCIgOiAnWFwoLipcKSdgCisr ICAgICAgZXZhbCAkYWNfdmFyPVwkYWNfdmFsOzsKKysgIGVzYWMKKysgICMgQmUgc3VyZSB0byBo YXZlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lcy4KKysgIGNhc2UgJGFjX3ZhbCBpbgorKyAgICBb XFwvJF0qIHwgPzpbXFwvXSogKSAgY29udGludWU7OworKyAgICBOT05FIHwgJycgKSBjYXNlICRh Y192YXIgaW4gKnByZWZpeCApIGNvbnRpbnVlOzsgZXNhYzs7CisrICBlc2FjCisrICB7ICRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBm b3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K Kytkb25lCisrCisrIyBUaGVyZSBtaWdodCBiZSBwZW9wbGUgd2hvIGRlcGVuZCBvbiB0aGUgb2xk IGJyb2tlbiBiZWhhdmlvcjogYCRob3N0JworKyMgdXNlZCB0byBob2xkIHRoZSBhcmd1bWVudCBv ZiAtLWhvc3QgZXRjLgorKyMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KKytidWlsZD0kYnVp bGRfYWxpYXMKKytob3N0PSRob3N0X2FsaWFzCisrdGFyZ2V0PSR0YXJnZXRfYWxpYXMKKysKKysj IEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCisraWYgdGVzdCAieCRob3N0X2FsaWFzIiAhPSB4 OyB0aGVuCisrICBpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiA9IHg7IHRoZW4KKysgICAgY3Jvc3Nf Y29tcGlsaW5nPW1heWJlCisrICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IElmIHlvdSB3 YW50ZWQgdG8gc2V0IHRoZSAtLWJ1aWxkIHR5cGUsIGRvbid0IHVzZSAtLWhvc3QuCisrICAgIElm IGEgY3Jvc3MgY29tcGlsZXIgaXMgZGV0ZWN0ZWQgdGhlbiBjcm9zcyBjb21waWxlIG1vZGUgd2ls bCBiZSB1c2VkLiIgPiYyCisrICBlbGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiICE9ICJ4JGhvc3Rf YWxpYXMiOyB0aGVuCisrICAgIGNyb3NzX2NvbXBpbGluZz15ZXMKKysgIGZpCisrZmkKKysKKyth Y190b29sX3ByZWZpeD0KKyt0ZXN0IC1uICIkaG9zdF9hbGlhcyIgJiYgYWNfdG9vbF9wcmVmaXg9 JGhvc3RfYWxpYXMtCisrCisrdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYgZXhlYyA2Pi9kZXYvbnVs bAorKworKworK2FjX3B3ZD1gcHdkYCAmJiB0ZXN0IC1uICIkYWNfcHdkIiAmJgorK2FjX2xzX2Rp PWBscyAtZGkgLmAgJiYKKythY19wd2RfbHNfZGk9YGNkICIkYWNfcHdkIiAmJiBscyAtZGkgLmAg fHwKKysgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHdvcmtpbmcgZGlyZWN0b3J5IGNhbm5v dCBiZSBkZXRlcm1pbmVkIiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyt0ZXN0 ICJYJGFjX2xzX2RpIiA9ICJYJGFjX3B3ZF9sc19kaSIgfHwKKysgIHsgJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IHB3ZCBkb2VzIG5vdCByZXBvcnQgbmFtZSBvZiB3b3JraW5nIGRpcmVjdG9yeSIg PiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCisrCisrIyBGaW5kIHRoZSBzb3Vy Y2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkLgorK2lmIHRlc3QgLXogIiRz cmNkaXIiOyB0aGVuCisrICBhY19zcmNkaXJfZGVmYXVsdGVkPXllcworKyAgIyBUcnkgdGhlIGRp cmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIHRoZSBwYXJlbnQgZGlyZWN0b3J5 LgorKyAgYWNfY29uZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19teXNlbGYiIHx8CisrJGFzX2V4 cHIgWCIkYXNfbXlzZWxmIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorKwkg WCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIkYXNfbXlzZWxmIiA6ICdY XCgvL1wpJCcgXHwgXAorKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251 bGwgfHwKKyskYXNfZWNobyBYIiRhc19teXNlbGYiIHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwp XC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAv XlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15Y XChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCku Ki97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrICBz cmNkaXI9JGFjX2NvbmZkaXIKKysgIGlmIHRlc3QgISAtciAiJHNyY2Rpci8kYWNfdW5pcXVlX2Zp bGUiOyB0aGVuCisrICAgIHNyY2Rpcj0uLgorKyAgZmkKKytlbHNlCisrICBhY19zcmNkaXJfZGVm YXVsdGVkPW5vCisrZmkKKytpZiB0ZXN0ICEgLXIgIiRzcmNkaXIvJGFjX3VuaXF1ZV9maWxlIjsg dGhlbgorKyAgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0ZWQiID0geWVzICYmIHNyY2Rpcj0iJGFj X2NvbmZkaXIgb3IgLi4iCisrICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmlu ZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRzcmNkaXIiID4mMgorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorK2ZpCisrYWNfbXNnPSJzb3VyY2VzIGFyZSBpbiAkc3JjZGlyLCBi dXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIgorK2FjX2Fic19jb25mZGlyPWAoCisrCWNk ICIkc3JjZGlyIiAmJiB0ZXN0IC1yICIuLyRhY191bmlxdWVfZmlsZSIgfHwgeyAkYXNfZWNobyAi JGFzX21lOiBlcnJvcjogJGFjX21zZyIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 CisrCXB3ZClgCisrIyBXaGVuIGJ1aWxkaW5nIGluIHBsYWNlLCBzZXQgc3JjZGlyPS4KKytpZiB0 ZXN0ICIkYWNfYWJzX2NvbmZkaXIiID0gIiRhY19wd2QiOyB0aGVuCisrICBzcmNkaXI9LgorK2Zp CisrIyBSZW1vdmUgdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hlcyBmcm9tIHNyY2Rpci4KKysj IERvdWJsZSBzbGFzaGVzIGluIGZpbGUgbmFtZXMgaW4gb2JqZWN0IGZpbGUgZGVidWdnaW5nIGlu Zm8KKysjIG1lc3MgdXAgTS14IGdkYiBpbiBFbWFjcy4KKytjYXNlICRzcmNkaXIgaW4KKysqLykg c3JjZGlyPWBleHByICJYJHNyY2RpciIgOiAnWFwoLipbXi9dXCknIFx8ICJYJHNyY2RpciIgOiAn WFwoLipcKSdgOzsKKytlc2FjCisrZm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8K KysgIGV2YWwgYWNfZW52XyR7YWNfdmFyfV9zZXQ9XCR7JHthY192YXJ9K3NldH0KKysgIGV2YWwg YWNfZW52XyR7YWNfdmFyfV92YWx1ZT1cJCR7YWNfdmFyfQorKyAgZXZhbCBhY19jdl9lbnZfJHth Y192YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQorKyAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9 X3ZhbHVlPVwkJHthY192YXJ9CisrZG9uZQorKworKyMKKysjIFJlcG9ydCB0aGUgLS1oZWxwIG1l c3NhZ2UuCisrIworK2lmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gImxvbmciOyB0aGVuCisrICAj IE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3Qg bGVzcyBpbXBvc2luZy4KKysgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3Ry aW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KKysgIGNhdCA8PF9BQ0VPRgorK1xgY29uZmlndXJlJyBj b25maWd1cmVzIFNPQ0kgMy4wLjAgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgor KworK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgorKworK1RvIGFzc2lnbiBl bnZpcm9ubWVudCB2YXJpYWJsZXMgKGUuZy4sIENDLCBDRkxBR1MuLi4pLCBzcGVjaWZ5IHRoZW0g YXMKKytWQVI9VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRlc2NyaXB0aW9ucyBvZiBzb21lIG9mIHRo ZSB1c2VmdWwgdmFyaWFibGVzLgorKworK0RlZmF1bHRzIGZvciB0aGUgb3B0aW9ucyBhcmUgc3Bl Y2lmaWVkIGluIGJyYWNrZXRzLgorKworK0NvbmZpZ3VyYXRpb246CisrICAtaCwgLS1oZWxwICAg ICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAorKyAgICAgIC0taGVscD1zaG9y dCAgICAgICAgZGlzcGxheSBvcHRpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZQorKyAgICAg IC0taGVscD1yZWN1cnNpdmUgICAgZGlzcGxheSB0aGUgc2hvcnQgaGVscCBvZiBhbGwgdGhlIGlu Y2x1ZGVkIHBhY2thZ2VzCisrICAtViwgLS12ZXJzaW9uICAgICAgICAgICBkaXNwbGF5IHZlcnNp b24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKysgIC1xLCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5v dCBwcmludCBcYGNoZWNraW5nLi4uJyBtZXNzYWdlcworKyAgICAgIC0tY2FjaGUtZmlsZT1GSUxF ICAgY2FjaGUgdGVzdCByZXN1bHRzIGluIEZJTEUgW2Rpc2FibGVkXQorKyAgLUMsIC0tY29uZmln LWNhY2hlICAgICAgYWxpYXMgZm9yIFxgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScKKysgIC1u LCAtLW5vLWNyZWF0ZSAgICAgICAgIGRvIG5vdCBjcmVhdGUgb3V0cHV0IGZpbGVzCisrICAgICAg LS1zcmNkaXI9RElSICAgICAgICBmaW5kIHRoZSBzb3VyY2VzIGluIERJUiBbY29uZmlndXJlIGRp ciBvciBcYC4uJ10KKysKKytJbnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6CisrICAtLXByZWZpeD1Q UkVGSVggICAgICAgICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyBpbiBQ UkVGSVgKKysgICAgICAgICAgICAgICAgICAgICAgICAgIFskYWNfZGVmYXVsdF9wcmVmaXhdCisr ICAtLWV4ZWMtcHJlZml4PUVQUkVGSVggICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQg ZmlsZXMgaW4gRVBSRUZJWAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgW1BSRUZJWF0KKysK KytCeSBkZWZhdWx0LCBcYG1ha2UgaW5zdGFsbCcgd2lsbCBpbnN0YWxsIGFsbCB0aGUgZmlsZXMg aW4KKytcYCRhY19kZWZhdWx0X3ByZWZpeC9iaW4nLCBcYCRhY19kZWZhdWx0X3ByZWZpeC9saWIn IGV0Yy4gIFlvdSBjYW4gc3BlY2lmeQorK2FuIGluc3RhbGxhdGlvbiBwcmVmaXggb3RoZXIgdGhh biBcYCRhY19kZWZhdWx0X3ByZWZpeCcgdXNpbmcgXGAtLXByZWZpeCcsCisrZm9yIGluc3RhbmNl IFxgLS1wcmVmaXg9XCRIT01FJy4KKysKKytGb3IgYmV0dGVyIGNvbnRyb2wsIHVzZSB0aGUgb3B0 aW9ucyBiZWxvdy4KKysKKytGaW5lIHR1bmluZyBvZiB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9y aWVzOgorKyAgLS1iaW5kaXI9RElSICAgICAgICAgICAgdXNlciBleGVjdXRhYmxlcyBbRVBSRUZJ WC9iaW5dCisrICAtLXNiaW5kaXI9RElSICAgICAgICAgICBzeXN0ZW0gYWRtaW4gZXhlY3V0YWJs ZXMgW0VQUkVGSVgvc2Jpbl0KKysgIC0tbGliZXhlY2Rpcj1ESVIgICAgICAgIHByb2dyYW0gZXhl Y3V0YWJsZXMgW0VQUkVGSVgvbGliZXhlY10KKysgIC0tc3lzY29uZmRpcj1ESVIgICAgICAgIHJl YWQtb25seSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvZXRjXQorKyAgLS1zaGFyZWRzdGF0 ZWRpcj1ESVIgICAgbW9kaWZpYWJsZSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBbUFJF RklYL2NvbV0KKysgIC0tbG9jYWxzdGF0ZWRpcj1ESVIgICAgIG1vZGlmaWFibGUgc2luZ2xlLW1h Y2hpbmUgZGF0YSBbUFJFRklYL3Zhcl0KKysgIC0tbGliZGlyPURJUiAgICAgICAgICAgIG9iamVj dCBjb2RlIGxpYnJhcmllcyBbRVBSRUZJWC9saWJdCisrICAtLWluY2x1ZGVkaXI9RElSICAgICAg ICBDIGhlYWRlciBmaWxlcyBbUFJFRklYL2luY2x1ZGVdCisrICAtLW9sZGluY2x1ZGVkaXI9RElS ICAgICBDIGhlYWRlciBmaWxlcyBmb3Igbm9uLWdjYyBbL3Vzci9pbmNsdWRlXQorKyAgLS1kYXRh cm9vdGRpcj1ESVIgICAgICAgcmVhZC1vbmx5IGFyY2guLWluZGVwZW5kZW50IGRhdGEgcm9vdCBb UFJFRklYL3NoYXJlXQorKyAgLS1kYXRhZGlyPURJUiAgICAgICAgICAgcmVhZC1vbmx5IGFyY2hp dGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtEQVRBUk9PVERJUl0KKysgIC0taW5mb2Rpcj1ESVIg ICAgICAgICAgIGluZm8gZG9jdW1lbnRhdGlvbiBbREFUQVJPT1RESVIvaW5mb10KKysgIC0tbG9j YWxlZGlyPURJUiAgICAgICAgIGxvY2FsZS1kZXBlbmRlbnQgZGF0YSBbREFUQVJPT1RESVIvbG9j YWxlXQorKyAgLS1tYW5kaXI9RElSICAgICAgICAgICAgbWFuIGRvY3VtZW50YXRpb24gW0RBVEFS T09URElSL21hbl0KKysgIC0tZG9jZGlyPURJUiAgICAgICAgICAgIGRvY3VtZW50YXRpb24gcm9v dCBbREFUQVJPT1RESVIvZG9jL3NvY2ldCisrICAtLWh0bWxkaXI9RElSICAgICAgICAgICBodG1s IGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KKysgIC0tZHZpZGlyPURJUiAgICAgICAgICAgIGR2aSBk b2N1bWVudGF0aW9uIFtET0NESVJdCisrICAtLXBkZmRpcj1ESVIgICAgICAgICAgICBwZGYgZG9j dW1lbnRhdGlvbiBbRE9DRElSXQorKyAgLS1wc2Rpcj1ESVIgICAgICAgICAgICAgcHMgZG9jdW1l bnRhdGlvbiBbRE9DRElSXQorK19BQ0VPRgorKworKyAgY2F0IDw8XF9BQ0VPRgorKworK1Byb2dy YW0gbmFtZXM6CisrICAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCAgICAgICAgICAgIHByZXBlbmQg UFJFRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCisrICAtLXByb2dyYW0tc3VmZml4PVNV RkZJWCAgICAgICAgICAgIGFwcGVuZCBTVUZGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMK KysgIC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT1QUk9HUkFNICAgcnVuIHNlZCBQUk9HUkFNIG9u IGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCisrCisrU3lzdGVtIHR5cGVzOgorKyAgLS1idWlsZD1C VUlMRCAgICAgY29uZmlndXJlIGZvciBidWlsZGluZyBvbiBCVUlMRCBbZ3Vlc3NlZF0KKysgIC0t aG9zdD1IT1NUICAgICAgIGNyb3NzLWNvbXBpbGUgdG8gYnVpbGQgcHJvZ3JhbXMgdG8gcnVuIG9u IEhPU1QgW0JVSUxEXQorK19BQ0VPRgorK2ZpCisrCisraWYgdGVzdCAtbiAiJGFjX2luaXRfaGVs cCI7IHRoZW4KKysgIGNhc2UgJGFjX2luaXRfaGVscCBpbgorKyAgICAgc2hvcnQgfCByZWN1cnNp dmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFNPQ0kgMy4wLjA6Ijs7CisrICAgZXNhYworKyAg Y2F0IDw8XF9BQ0VPRgorKworK09wdGlvbmFsIEZlYXR1cmVzOgorKyAgLS1kaXNhYmxlLW9wdGlv bi1jaGVja2luZyAgaWdub3JlIHVucmVjb2duaXplZCAtLWVuYWJsZS8tLXdpdGggb3B0aW9ucwor KyAgLS1kaXNhYmxlLUZFQVRVUkUgICAgICAgZG8gbm90IGluY2x1ZGUgRkVBVFVSRSAoc2FtZSBh cyAtLWVuYWJsZS1GRUFUVVJFPW5vKQorKyAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVk ZSBGRUFUVVJFIFtBUkc9eWVzXQorKyAgLS1lbmFibGUtc2hhcmVkWz1QS0dTXSAgYnVpbGQgc2hh cmVkIGxpYnJhcmllcyBbZGVmYXVsdD1ub10KKysgIC0tZW5hYmxlLXN0YXRpY1s9UEtHU10gIGJ1 aWxkIHN0YXRpYyBsaWJyYXJpZXMgW2RlZmF1bHQ9eWVzXQorKyAgLS1kaXNhYmxlLWRlcGVuZGVu Y3ktdHJhY2tpbmcgIHNwZWVkcyB1cCBvbmUtdGltZSBidWlsZAorKyAgLS1lbmFibGUtZGVwZW5k ZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJhY3RvcnMK KysgIC0tZW5hYmxlLWZhc3QtaW5zdGFsbFs9UEtHU10KKysgICAgICAgICAgICAgICAgICAgICAg ICAgIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBbZGVmYXVsdD15ZXNdCisrICAtLWRp c2FibGUtbGlidG9vbC1sb2NrICBhdm9pZCBsb2NraW5nIChtaWdodCBicmVhayBwYXJhbGxlbCBi dWlsZHMpCisrICAtLWVuYWJsZS1leGNlcHRpb25zICAgICBlbmFibGUgZXhjZXB0aW9ucyBoYW5k bGluZyBtZWNoYW5pc20KKysgIC0tZGlzYWJsZS1pbmZvLWRvYyAgICAgIGRvIG5vdCBnZW5lcmF0 ZSBJbmZvIGRvY3VtZW50YXRpb24KKysgIC0tZGlzYWJsZS1odG1sLWRvYyAgICAgIGRvIG5vdCBn ZW5lcmF0ZSBIVE1MIGRvY3VtZW50YXRpb24KKysgIC0tZW5hYmxlLWJ1cnJpZWQtaGVhZGVycwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBoZWFkZXIgZmlsZXMgZnJvbSBhIGRp cmVjdG9yeSBzdHJ1Y3R1cmUKKysgIC0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVycworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBNeVNRTCBoZWFkZXIgZmlsZXMgZnJvbSBh IGRpcmVjdG9yeQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlCisrICAtLWVu YWJsZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgaW5jbHVkZSBQb3N0R3JlU1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5CisrICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUKKysgIC0tZW5hYmxlLWJhY2tlbmQtbXlz cWwgIGJ1aWxkLWluIE15U1FMIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KKysgIC0tZW5h YmxlLWJhY2tlbmQtb3JhY2xlIGJ1aWxkLWluIE9SQUNMRSBiYWNrZW5kIHN1cHBvcnQgW2RlZmF1 bHQ9bm9dCisrICAtLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgIGJ1aWxkLWluIFBvc3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5v XQorKworK09wdGlvbmFsIFBhY2thZ2VzOgorKyAgLS13aXRoLVBBQ0tBR0VbPUFSR10gICAgdXNl IFBBQ0tBR0UgW0FSRz15ZXNdCisrICAtLXdpdGhvdXQtUEFDS0FHRSAgICAgICBkbyBub3QgdXNl IFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9bm8pCisrICAtLXdpdGgtY3BwdW5pdC1w cmVmaXg9UEZYICAgUHJlZml4IHdoZXJlIENwcFVuaXQgaXMgaW5zdGFsbGVkIChvcHRpb25hbCkK KysgIC0td2l0aC1jcHB1bml0LWV4ZWMtcHJlZml4PVBGWCAgRXhlYyBwcmVmaXggd2hlcmUgQ3Bw VW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKQorKyAgLS13aXRoLXBpYyAgICAgICAgICAgICAg dHJ5IHRvIHVzZSBvbmx5IFBJQy9ub24tUElDIG9iamVjdHMgW2RlZmF1bHQ9dXNlCisrICAgICAg ICAgICAgICAgICAgICAgICAgICBib3RoXQorKyAgLS13aXRoLWdudS1sZCAgICAgICAgICAgYXNz dW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIFtkZWZhdWx0PW5vXQorKyAgLS13aXRoLWRv Y2Rpcj1ESVIgICAgICAgc2V0IGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IHRvIERJUgorKyAgLS13 aXRoLWJvb3N0PURJUiAgICAgICAgdXNlIGJvb3N0IChkZWZhdWx0IGlzIE5PKSAsIHNwZWNpZnkg dGhlIHJvb3QKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSBmb3IgYm9vc3Qg bGlicmFyeSAob3B0aW9uYWwpCisrICAtLXdpdGgtbXlzcWw9W0FSR10gICAgICB1c2UgTXlTUUwg Y2xpZW50IGxpYnJhcnkgW2RlZmF1bHQ9eWVzXSwgb3B0aW9uYWxseQorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgc3BlY2lmeSBwYXRoIHRvIG15c3FsX2NvbmZpZworKyAgLS13aXRoLW9yYWNs ZT1bRElSXSAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJIGZyb20gZ2l2ZW4gcGF0aCB0byBPcmFjbGUg aG9tZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5CisrICAtLXdpdGgtb3Jh Y2xlLWluY2x1ZGU9W0RJUl0KKysgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBPcmFjbGUg T0NJIEFQSSBoZWFkZXJzIGZyb20gZ2l2ZW4gcGF0aAorKyAgLS13aXRoLW9yYWNsZS1saWI9W0RJ Ul0gdXNlIE9yYWNsZSBPQ0kgQVBJIGxpYnJhcmllcyBmcm9tIGdpdmVuIHBhdGgKKysgIC0td2l0 aC1wb3N0Z3Jlc3FsPVtBUkddIHVzZSBQb3N0Z3JlU1FMIGxpYnJhcnkgW2RlZmF1bHQ9eWVzXSwg b3B0aW9uYWxseQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmeSBwYXRoIHRvIHBn X2NvbmZpZworKworK1NvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorKyAg Q1hYICAgICAgICAgQysrIGNvbXBpbGVyIGNvbW1hbmQKKysgIENYWEZMQUdTICAgIEMrKyBjb21w aWxlciBmbGFncworKyAgTERGTEFHUyAgICAgbGlua2VyIGZsYWdzLCBlLmcuIC1MPGxpYiBkaXI+ IGlmIHlvdSBoYXZlIGxpYnJhcmllcyBpbiBhCisrICAgICAgICAgICAgICBub25zdGFuZGFyZCBk aXJlY3RvcnkgPGxpYiBkaXI+CisrICBMSUJTICAgICAgICBsaWJyYXJpZXMgdG8gcGFzcyB0byB0 aGUgbGlua2VyLCBlLmcuIC1sPGxpYnJhcnk+CisrICBDUFBGTEFHUyAgICBDL0MrKy9PYmplY3Rp dmUgQyBwcmVwcm9jZXNzb3IgZmxhZ3MsIGUuZy4gLUk8aW5jbHVkZSBkaXI+IGlmCisrICAgICAg ICAgICAgICB5b3UgaGF2ZSBoZWFkZXJzIGluIGEgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxpbmNs dWRlIGRpcj4KKysgIENYWENQUCAgICAgIEMrKyBwcmVwcm9jZXNzb3IKKysgIENDICAgICAgICAg IEMgY29tcGlsZXIgY29tbWFuZAorKyAgQ0ZMQUdTICAgICAgQyBjb21waWxlciBmbGFncworKyAg Q1BQICAgICAgICAgQyBwcmVwcm9jZXNzb3IKKysKKytVc2UgdGhlc2UgdmFyaWFibGVzIHRvIG92 ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVscAorK2l0IHRv IGZpbmQgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRoIG5vbnN0YW5kYXJkIG5hbWVzL2xvY2F0 aW9ucy4KKysKKytSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0 Pi4KKytfQUNFT0YKKythY19zdGF0dXM9JD8KKytmaQorKworK2lmIHRlc3QgIiRhY19pbml0X2hl bHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KKysgICMgSWYgdGhlcmUgYXJlIHN1YmRpcnMsIHJlcG9y dCB0aGVpciBzcGVjaWZpYyAtLWhlbHAuCisrICBmb3IgYWNfZGlyIGluIDogJGFjX3N1YmRpcnNf YWxsOyBkbyB0ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBjb250aW51ZQorKyAgICB0ZXN0IC1kICIk YWNfZGlyIiB8fAorKyAgICAgIHsgY2QgIiRzcmNkaXIiICYmIGFjX3B3ZD1gcHdkYCAmJiBzcmNk aXI9LiAmJiB0ZXN0IC1kICIkYWNfZGlyIjsgfSB8fAorKyAgICAgIGNvbnRpbnVlCisrICAgIGFj X2J1aWxkZGlyPS4KKysKKytjYXNlICIkYWNfZGlyIiBpbgorKy4pIGFjX2Rpcl9zdWZmaXg9IGFj X3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OworKyopCisrICBhY19k aXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwnYAorKyAg IyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgorKyAgYWNfdG9w X2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9d KnwvLi58ZztzfC98fCdgCisrICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCisrICAiIikg YWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CisrICAqKSAgYWNf dG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKKysgIGVzYWMgOzsKKytl c2FjCisrYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCisrYWNfYWJzX2J1aWxkZGlyPSRhY19w d2QkYWNfZGlyX3N1ZmZpeAorKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6CisrYWNfdG9w X2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4CisrCisrY2FzZSAkc3JjZGlyIGluCisrICAu KSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisrICAgIGFjX3NyY2Rpcj0uCisrICAgIGFj X3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9 JGFjX3B3ZCA7OworKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1lLgorKyAg ICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OworKyAgICBhY190b3Bfc3JjZGlyPSRz cmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OworKyAgKikgIyBSZWxhdGl2 ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rp cl9zdWZmaXgKKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIK KysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7CisrZXNhYworK2FjX2Fi c19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKysKKysgICAgY2QgIiRh Y19kaXIiIHx8IHsgYWNfc3RhdHVzPSQ/OyBjb250aW51ZTsgfQorKyAgICAjIENoZWNrIGZvciBn dWVzdGVkIGNvbmZpZ3VyZS4KKysgICAgaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25maWd1cmUu Z251IjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysgICAgICAkU0hFTEwgIiRhY19zcmNkaXIvY29u ZmlndXJlLmdudSIgLS1oZWxwPXJlY3Vyc2l2ZQorKyAgICBlbGlmIHRlc3QgLWYgIiRhY19zcmNk aXIvY29uZmlndXJlIjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysgICAgICAkU0hFTEwgIiRhY19z cmNkaXIvY29uZmlndXJlIiAtLWhlbHA9cmVjdXJzaXZlCisrICAgIGVsc2UKKysgICAgICAkYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGlzIGlu ICRhY19kaXIiID4mMgorKyAgICBmaSB8fCBhY19zdGF0dXM9JD8KKysgICAgY2QgIiRhY19wd2Qi IHx8IHsgYWNfc3RhdHVzPSQ/OyBicmVhazsgfQorKyAgZG9uZQorK2ZpCisrCisrdGVzdCAtbiAi JGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCisraWYgJGFjX2luaXRfdmVyc2lvbjsg dGhlbgorKyAgY2F0IDw8XF9BQ0VPRgorK1NPQ0kgY29uZmlndXJlIDMuMC4wCisrZ2VuZXJhdGVk IGJ5IEdOVSBBdXRvY29uZiAyLjYzCisrCisrQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAorKzIwMDIsIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr VGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KKytnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmli dXRlIGFuZCBtb2RpZnkgaXQuCisrCisrQ29weXJpZ2h0IChDKSAyMDA0LTIwMDkgTWFjaWVqIFNv YmN6YWsgPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKytfQUNFT0YKKysgIGV4aXQK KyBmaQorK2NhdCA+Y29uZmlnLmxvZyA8PF9BQ0VPRgorK1RoaXMgZmlsZSBjb250YWlucyBhbnkg bWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCisrcnVubmluZyBjb25maWd1cmUs IHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KKysKKytJdCB3 YXMgY3JlYXRlZCBieSBTT0NJICRhc19tZSAzLjAuMCwgd2hpY2ggd2FzCisrZ2VuZXJhdGVkIGJ5 IEdOVSBBdXRvY29uZiAyLjYzLiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCisrCisrICAk ICQwICRACisrCisrX0FDRU9GCisrZXhlYyA1Pj5jb25maWcubG9nCisreworK2NhdCA8PF9BU1VO QU1FCisrIyMgLS0tLS0tLS0tICMjCisrIyMgUGxhdGZvcm0uICMjCisrIyMgLS0tLS0tLS0tICMj CisrCisraG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNl ZCAxcWAKKyt1bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93 bmAKKyt1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAK Kyt1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKyt1 bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKysKKysv dXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9udWxsIHx8IGVj aG8gdW5rbm93bmAKKysvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2 L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKKysKKysvYmluL2FyY2ggICAgICAgICAgICAgID0g YCgvYmluL2FyY2gpIDI+L2Rldi9udWxsICAgICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCisr L3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGwg ICAgICAgfHwgZWNobyB1bmtub3duYAorKy91c3IvY29udmV4L2dldHN5c2luZm8gPSBgKC91c3Iv Y29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKysvdXNyL2Jp bi9ob3N0aW5mbyAgICAgID0gYCgvdXNyL2Jpbi9ob3N0aW5mbykgMj4vZGV2L251bGwgICAgICB8 fCBlY2hvIHVua25vd25gCisrL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IGAoL2Jpbi9tYWNoaW5l KSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAorKy91c3IvYmluL29zbGV2 ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8g dW5rbm93bmAKKysvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNlKSAyPi9k ZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25vd25gCisrCisrX0FTVU5BTUUKKysKKythc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgJGFzX2VjaG8gIlBBVEg6ICRhc19kaXIiCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysKKyt9ID4mNQorKworK2NhdCA+JjUgPDxfQUNFT0YKKysKKysKKysjIyAtLS0tLS0tLS0tLSAj IworKyMjIENvcmUgdGVzdHMuICMjCisrIyMgLS0tLS0tLS0tLS0gIyMKKysKKytfQUNFT0YKKysK KysKKysjIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFuZCBsaW5lLgorKyMgU3RyaXAgb3V0IC0t bm8tY3JlYXRlIGFuZCAtLW5vLXJlY3Vyc2lvbiBzbyB0aGV5IGRvIG5vdCBwaWxlIHVwLgorKyMg U3RyaXAgb3V0IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByZWNvcmQgaXQgZm9y IGZ1dHVyZSBydW5zLgorKyMgQWxzbyBxdW90ZSBhbnkgYXJncyBjb250YWluaW5nIHNoZWxsIG1l dGEtY2hhcmFjdGVycy4KKysjIE1ha2UgdHdvIHBhc3NlcyB0byBhbGxvdyBmb3IgcHJvcGVyIGR1 cGxpY2F0ZS1hcmd1bWVudCBzdXBwcmVzc2lvbi4KKythY19jb25maWd1cmVfYXJncz0KKythY19j b25maWd1cmVfYXJnczA9CisrYWNfY29uZmlndXJlX2FyZ3MxPQorK2FjX211c3Rfa2VlcF9uZXh0 PWZhbHNlCisrZm9yIGFjX3Bhc3MgaW4gMSAyCisrZG8KKysgIGZvciBhY19hcmcKKysgIGRvCisr ICAgIGNhc2UgJGFjX2FyZyBpbgorKyAgICAtbm8tY3JlYXRlIHwgLS1uby1jKiB8IC1uIHwgLW5v LXJlY3Vyc2lvbiB8IC0tbm8tciopIGNvbnRpbnVlIDs7CisrICAgIC1xIHwgLXF1aWV0IHwgLS1x dWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCisrICAgIHwgLXNpbGVudCB8IC0t c2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQorKyAgICAgIGNvbnRpbnVlIDs7Cisr ICAgICpcJyopCisrICAgICAgYWNfYXJnPWAkYXNfZWNobyAiJGFjX2FyZyIgfCBzZWQgInMvJy8n XFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNhYworKyAgICBjYXNlICRhY19wYXNzIGluCisrICAg IDEpIGFjX2NvbmZpZ3VyZV9hcmdzMD0iJGFjX2NvbmZpZ3VyZV9hcmdzMCAnJGFjX2FyZyciIDs7 CisrICAgIDIpCisrICAgICAgYWNfY29uZmlndXJlX2FyZ3MxPSIkYWNfY29uZmlndXJlX2FyZ3Mx ICckYWNfYXJnJyIKKysgICAgICBpZiB0ZXN0ICRhY19tdXN0X2tlZXBfbmV4dCA9IHRydWU7IHRo ZW4KKysJYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UgIyBHb3QgdmFsdWUsIGJhY2sgdG8gbm9ybWFs LgorKyAgICAgIGVsc2UKKysJY2FzZSAkYWNfYXJnIGluCisrCSAgKj0qIHwgLS1jb25maWctY2Fj aGUgfCAtQyB8IC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKiBcCisrCSAgfCAtZW5hYmxlLSogfCAt LWVuYWJsZS0qIHwgLWdhcyB8IC0tZyogfCAtbmZwIHwgLS1uZiogXAorKwkgIHwgLXEgfCAtcXVp ZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZlcmIqIFwKKysJICB8IC13aXRo LSogfCAtLXdpdGgtKiB8IC13aXRob3V0LSogfCAtLXdpdGhvdXQtKiB8IC0teCkKKysJICAgIGNh c2UgIiRhY19jb25maWd1cmVfYXJnczAgIiBpbgorKwkgICAgICAiJGFjX2NvbmZpZ3VyZV9hcmdz MSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJ ICAtKiApIGFjX211c3Rfa2VlcF9uZXh0PXRydWUgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAg ICAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyciCisrICAg ICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorK2RvbmUKKyskYXNfdW5zZXQgYWNfY29uZmlndXJl X2FyZ3MwIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MwK3NldH0iICE9IHNldCB8fCB7IGFj X2NvbmZpZ3VyZV9hcmdzMD07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczA7IH0KKyskYXNfdW5z ZXQgYWNfY29uZmlndXJlX2FyZ3MxIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MxK3NldH0i ICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMT07IGV4cG9ydCBhY19jb25maWd1cmVfYXJn czE7IH0KKysKKysjIFdoZW4gaW50ZXJydXB0ZWQgb3IgZXhpdCdkLCBjbGVhbnVwIHRlbXBvcmFy eSBmaWxlcywgYW5kIGNvbXBsZXRlCisrIyBjb25maWcubG9nLiAgV2UgcmVtb3ZlIGNvbW1lbnRz IGJlY2F1c2UgYW55d2F5IHRoZSBxdW90ZXMgaW4gdGhlcmUKKysjIHdvdWxkIGNhdXNlIHByb2Js ZW1zIG9yIGxvb2sgdWdseS4KKysjIFdBUk5JTkc6IFVzZSAnXCcnIHRvIHJlcHJlc2VudCBhbiBh cG9zdHJvcGhlIHdpdGhpbiB0aGUgdHJhcC4KKysjIFdBUk5JTkc6IERvIG5vdCBzdGFydCB0aGUg dHJhcCBjb2RlIHdpdGggYSBuZXdsaW5lLCBkdWUgdG8gYSBGcmVlQlNEIDQuMCBidWcuCisrdHJh cCAnZXhpdF9zdGF0dXM9JD8KKysgICMgU2F2ZSBpbnRvIGNvbmZpZy5sb2cgc29tZSBpbmZvcm1h dGlvbiB0aGF0IG1pZ2h0IGhlbHAgaW4gZGVidWdnaW5nLgorKyAgeworKyAgICBlY2hvCisrCisr ICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgQ2FjaGUgdmFy aWFibGVzLiAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgZWNobwor KyAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMg bmV3bGluZXMgaW4gdmFsdWVzLAorKygKKysgIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEgfCBz ZWQgLW4gJ1wnJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnXCcnYDsgZG8K KysgICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAorKyAg ICAqJHthc19ubH0qKQorKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAorKyAgICAgICpfY3ZfKikg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192 YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBj YWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30gOzsKKysgICAg ICBlc2FjCisrICAgICAgY2FzZSAkYWNfdmFyIGluICMoCisrICAgICAgXyB8IElGUyB8IGFzX25s KSA7OyAjKAorKyAgICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7 ICMoCisrICAgICAgKikgJGFzX3Vuc2V0ICRhY192YXIgOzsKKysgICAgICBlc2FjIDs7CisrICAg IGVzYWMKKysgIGRvbmUKKysgIChzZXQpIDI+JjEgfAorKyAgICBjYXNlICRhc19ubGAoYWNfc3Bh Y2U9J1wnJyAnXCcnOyBzZXQpIDI+JjFgIGluICMoCisrICAgICoke2FzX25sfWFjX3NwYWNlPVwg KikKKysgICAgICBzZWQgLW4gXAorKwkicy8nXCcnLydcJydcXFxcJ1wnJydcJycvZzsKKysJICBz L15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwx PSdcJydcXDInXCcnL3AiCisrICAgICAgOzsgIygKKysgICAgKikKKysgICAgICBzZWQgLW4gIi9e W18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9wIgorKyAgICAgIDs7CisrICAg IGVzYWMgfAorKyAgICBzb3J0CisrKQorKyAgICBlY2hvCisrCisrICAgIGNhdCA8PFxfQVNCT1gK KysjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIE91dHB1dCB2YXJpYWJsZXMuICMjCisrIyMg LS0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgZWNobworKyAgICBmb3IgYWNfdmFy IGluICRhY19zdWJzdF92YXJzCisrICAgIGRvCisrICAgICAgZXZhbCBhY192YWw9XCQkYWNfdmFy CisrICAgICAgY2FzZSAkYWNfdmFsIGluCisrICAgICAgKlwnXCcnKikgYWNfdmFsPWAkYXNfZWNo byAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9nImA7OworKyAg ICAgIGVzYWMKKysgICAgICAkYXNfZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3ZhbCdcJyciCisrICAg IGRvbmUgfCBzb3J0CisrICAgIGVjaG8KKysKKysgICAgaWYgdGVzdCAtbiAiJGFjX3N1YnN0X2Zp bGVzIjsgdGhlbgorKyAgICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0t ICMjCisrIyMgRmlsZSBzdWJzdGl0dXRpb25zLiAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0g IyMKKytfQVNCT1gKKysgICAgICBlY2hvCisrICAgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3Rf ZmlsZXMKKysgICAgICBkbworKwlldmFsIGFjX3ZhbD1cJCRhY192YXIKKysJY2FzZSAkYWNfdmFs IGluCisrCSpcJ1wnJyopIGFjX3ZhbD1gJGFzX2VjaG8gIiRhY192YWwiIHwgc2VkICJzLydcJycv J1wnJ1xcXFxcXFxcJ1wnJydcJycvZyJgOzsKKysJZXNhYworKwkkYXNfZWNobyAiJGFjX3Zhcj0n XCcnJGFjX3ZhbCdcJyciCisrICAgICAgZG9uZSB8IHNvcnQKKysgICAgICBlY2hvCisrICAgIGZp CisrCisrICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhlbgorKyAgICAgIGNhdCA8PFxfQVNC T1gKKysjIyAtLS0tLS0tLS0tLSAjIworKyMjIGNvbmZkZWZzLmguICMjCisrIyMgLS0tLS0tLS0t LS0gIyMKKytfQVNCT1gKKysgICAgICBlY2hvCisrICAgICAgY2F0IGNvbmZkZWZzLmgKKysgICAg ICBlY2hvCisrICAgIGZpCisrICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYKKysgICAgICAk YXNfZWNobyAiJGFzX21lOiBjYXVnaHQgc2lnbmFsICRhY19zaWduYWwiCisrICAgICRhc19lY2hv ICIkYXNfbWU6IGV4aXQgJGV4aXRfc3RhdHVzIgorKyAgfSA+JjUKKysgIHJtIC1mIGNvcmUgKi5j b3JlIGNvcmUuY29uZnRlc3QuKiAmJgorKyAgICBybSAtZiAtciBjb25mdGVzdCogY29uZmRlZnMq IGNvbmYkJCogJGFjX2NsZWFuX2ZpbGVzICYmCisrICAgIGV4aXQgJGV4aXRfc3RhdHVzCisrJyAw CisrZm9yIGFjX3NpZ25hbCBpbiAxIDIgMTMgMTU7IGRvCisrICB0cmFwICdhY19zaWduYWw9JyRh Y19zaWduYWwnOyB7IChleGl0IDEpOyBleGl0IDE7IH0nICRhY19zaWduYWwKKytkb25lCisrYWNf c2lnbmFsPTAKKysKKysjIGNvbmZkZWZzLmggYXZvaWRzIE9TIGNvbW1hbmQgbGluZSBsZW5ndGgg bGltaXRzIHRoYXQgREVGUyBjYW4gZXhjZWVkLgorK3JtIC1mIC1yIGNvbmZ0ZXN0KiBjb25mZGVm cy5oCisrCisrIyBQcmVkZWZpbmVkIHByZXByb2Nlc3NvciB2YXJpYWJsZXMuCisrCisrY2F0ID4+ Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFDS0FHRV9OQU1FICIkUEFDS0FHRV9OQU1F IgorK19BQ0VPRgorKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiJFBBQ0tBR0VfVEFSTkFNRSIKKytfQUNFT0YKKysKKysKKytjYXQgPj5j b25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRQQUNLQUdFX1ZF UlNJT04iCisrX0FDRU9GCisrCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIiRQQUNLQUdFX1NUUklORyIKKytfQUNFT0YKKysKKysKKytjYXQg Pj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiJFBBQ0tB R0VfQlVHUkVQT1JUIgorK19BQ0VPRgorKworKworKyMgTGV0IHRoZSBzaXRlIGZpbGUgc2VsZWN0 IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdhbnRzIHRvLgorKyMgUHJlZmVyIGFuIGV4 cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIG9uZXMuCisr YWNfc2l0ZV9maWxlMT1OT05FCisrYWNfc2l0ZV9maWxlMj1OT05FCisraWYgdGVzdCAtbiAiJENP TkZJR19TSVRFIjsgdGhlbgorKyAgYWNfc2l0ZV9maWxlMT0kQ09ORklHX1NJVEUKKytlbGlmIHRl c3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgorKyAgYWNfc2l0ZV9maWxlMT0kcHJlZml4L3No YXJlL2NvbmZpZy5zaXRlCisrICBhY19zaXRlX2ZpbGUyPSRwcmVmaXgvZXRjL2NvbmZpZy5zaXRl CisrZWxzZQorKyAgYWNfc2l0ZV9maWxlMT0kYWNfZGVmYXVsdF9wcmVmaXgvc2hhcmUvY29uZmln LnNpdGUKKysgIGFjX3NpdGVfZmlsZTI9JGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9jb25maWcuc2l0 ZQorK2ZpCisrZm9yIGFjX3NpdGVfZmlsZSBpbiAiJGFjX3NpdGVfZmlsZTEiICIkYWNfc2l0ZV9m aWxlMiIKKytkbworKyAgdGVzdCAieCRhY19zaXRlX2ZpbGUiID0geE5PTkUgJiYgY29udGludWUK KysgIGlmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY2O30K KysgICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1CisrICAgIC4gIiRhY19zaXRl X2ZpbGUiCisrICBmaQorK2RvbmUKKysKKytpZiB0ZXN0IC1yICIkY2FjaGVfZmlsZSI7IHRoZW4K KysgICMgU29tZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwgZmFpbCB0byBzb3VyY2UgL2Rldi9udWxs IChzcGVjaWFsCisrICAjIGZpbGVzIGFjdHVhbGx5KSwgc28gd2UgYXZvaWQgZG9pbmcgdGhhdC4K KysgIGlmIHRlc3QgLWYgIiRjYWNoZV9maWxlIjsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgICAgY2FzZSAkY2FjaGVf ZmlsZSBpbgorKyAgICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAiJGNhY2hlX2ZpbGUiOzsKKysg ICAgICAqKSAgICAgICAgICAgICAgICAgICAgICAuICIuLyRjYWNoZV9maWxlIjs7CisrICAgIGVz YWMKKysgIGZpCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5n IGNhY2hlICRjYWNoZV9maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyBjYWNo ZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgID4kY2FjaGVfZmlsZQorK2ZpCisrCisrIyBDaGVjayB0 aGF0IHRoZSBwcmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQgaW4gdGhlIGNhY2hlIGhhdmUga2VwdCB0 aGUgc2FtZQorKyMgdmFsdWUuCisrYWNfY2FjaGVfY29ycnVwdGVkPWZhbHNlCisrZm9yIGFjX3Zh ciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8KKysgIGV2YWwgYWNfb2xkX3NldD1cJGFjX2N2X2Vu dl8ke2FjX3Zhcn1fc2V0CisrICBldmFsIGFjX25ld19zZXQ9XCRhY19lbnZfJHthY192YXJ9X3Nl dAorKyAgZXZhbCBhY19vbGRfdmFsPVwkYWNfY3ZfZW52XyR7YWNfdmFyfV92YWx1ZQorKyAgZXZh bCBhY19uZXdfdmFsPVwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZQorKyAgY2FzZSAkYWNfb2xkX3Nl dCwkYWNfbmV3X3NldCBpbgorKyAgICBzZXQsKQorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRo ZSBwcmV2aW91cyBydW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXIn IHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYyO30KKysg ICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OworKyAgICAsc2V0KQorKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUg cHJldmlvdXMgcnVuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3 YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQorKyAgICAgIGFjX2NhY2hlX2Nv cnJ1cHRlZD06IDs7CisrICAgICwpOzsKKysgICAgKikKKysgICAgICBpZiB0ZXN0ICJ4JGFjX29s ZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVuCisrCSMgZGlmZmVyZW5jZXMgaW4gd2hpdGVz cGFjZSBkbyBub3QgbGVhZCB0byBmYWlsdXJlLgorKwlhY19vbGRfdmFsX3c9YGVjaG8geCAkYWNf b2xkX3ZhbGAKKysJYWNfbmV3X3ZhbF93PWBlY2hvIHggJGFjX25ld192YWxgCisrCWlmIHRlc3Qg IiRhY19vbGRfdmFsX3ciICE9ICIkYWNfbmV3X3ZhbF93IjsgdGhlbgorKwkgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUg cHJldmlvdXMgcnVuOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicg aGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9CisrCSAgYWNfY2FjaGVf Y29ycnVwdGVkPToKKysJZWxzZQorKwkgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiB3YXJu aW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gXGAkYWNfdmFyJyBzaW5jZSB0aGUg cHJldmlvdXMgcnVuOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogd2FybmluZzogaWdub3Jpbmcg d2hpdGVzcGFjZSBjaGFuZ2VzIGluIFxgJGFjX3Zhcicgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoi ID4mMjt9CisrCSAgZXZhbCAkYWNfdmFyPVwkYWNfb2xkX3ZhbAorKwlmaQorKwl7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFsJyIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFsJyIgPiYyO30K KysJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICAgY3VycmVudCB2YWx1ZTogXGAkYWNfbmV3 X3ZhbCciID4mNQorKyRhc19lY2hvICIkYXNfbWU6ICAgY3VycmVudCB2YWx1ZTogXGAkYWNfbmV3 X3ZhbCciID4mMjt9CisrICAgICAgZmk7OworKyAgZXNhYworKyAgIyBQYXNzIHByZWNpb3VzIHZh cmlhYmxlcyB0byBjb25maWcuc3RhdHVzLgorKyAgaWYgdGVzdCAiJGFjX25ld19zZXQiID0gc2V0 OyB0aGVuCisrICAgIGNhc2UgJGFjX25ld192YWwgaW4KKysgICAgKlwnKikgYWNfYXJnPSRhY192 YXI9YCRhc19lY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsK KysgICAgKikgYWNfYXJnPSRhY192YXI9JGFjX25ld192YWwgOzsKKysgICAgZXNhYworKyAgICBj YXNlICIgJGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KKysgICAgICAqIiAnJGFjX2FyZycgIiopIDs7 ICMgQXZvaWQgZHVwcy4gIFVzZSBvZiBxdW90ZXMgZW5zdXJlcyBhY2N1cmFjeS4KKysgICAgICAq KSBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICckYWNfYXJnJyIgOzsKKysg ICAgZXNhYworKyAgZmkKKytkb25lCisraWYgJGFjX2NhY2hlX2NvcnJ1cHRlZDsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBj YW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBj aGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mMjt9 CisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0 Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAk Y2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9CisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAk Q1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29t cGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKworK2FjX2NvbmZpZ19oZWFkZXJz PSIkYWNfY29uZmlnX2hlYWRlcnMgc29jaS9jb25maWcuaCIKKysKKysKKythY19hdXhfZGlyPQor K2ZvciBhY19kaXIgaW4gY29uZmlnICIkc3JjZGlyIi9jb25maWc7IGRvCisrICBpZiB0ZXN0IC1m ICIkYWNfZGlyL2luc3RhbGwtc2giOyB0aGVuCisrICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorKyAg ICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLXNoIC1jIgorKyAgICBicmVhawor KyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwuc2giOyB0aGVuCisrICAgIGFjX2F1eF9k aXI9JGFjX2RpcgorKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLnNoIC1j IgorKyAgICBicmVhaworKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL3NodG9vbCI7IHRoZW4KKysg ICAgYWNfYXV4X2Rpcj0kYWNfZGlyCisrICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL3No dG9vbCBpbnN0YWxsIC1jIgorKyAgICBicmVhaworKyAgZmkKKytkb25lCisraWYgdGVzdCAteiAi JGFjX2F1eF9kaXIiOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY2Fubm90IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0YWxsLnNoIGluIGNvbmZpZyBcIiRzcmNk aXJcIi9jb25maWciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBp bnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gY29uZmlnIFwiJHNyY2RpclwiL2NvbmZpZyIgPiYy O30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorKworKyMgVGhlc2UgdGhyZWUg dmFyaWFibGVzIGFyZSB1bmRvY3VtZW50ZWQgYW5kIHVuc3VwcG9ydGVkLAorKyMgYW5kIGFyZSBp bnRlbmRlZCB0byBiZSB3aXRoZHJhd24gaW4gYSBmdXR1cmUgQXV0b2NvbmYgcmVsZWFzZS4KKysj IFRoZXkgY2FuIGNhdXNlIHNlcmlvdXMgcHJvYmxlbXMgaWYgYSBidWlsZGVyJ3Mgc291cmNlIHRy ZWUgaXMgaW4gYSBkaXJlY3RvcnkKKysjIHdob3NlIGZ1bGwgbmFtZSBjb250YWlucyB1bnVzdWFs IGNoYXJhY3RlcnMuCisrYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmln Lmd1ZXNzIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgorK2FjX2NvbmZpZ19zdWI9IiRT SEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFy LgorK2FjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIgICMgUGxlYXNl IGRvbid0IHVzZSB0aGlzIHZhci4KKysKKysKKythbV9fYXBpX3ZlcnNpb249JzEuMTAnCisrCisr IyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZh c3RlciksCisrIyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMgYW5vdGhlci4gIEJ1dCBhdm9p ZCB0aGUgYnJva2VuIG9yCisrIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6CisrIyBTeXNWIC9ldGMv aW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKKysjIFN1bk9TIC91c3IvZXRjL2luc3RhbGwKKysj IElSSVggL3NiaW4vaW5zdGFsbAorKyMgQUlYIC9iaW4vaW5zdGFsbAorKyMgQW1pZ2FPUyAvQy9p bnN0YWxsLCB3aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZsb3BweSBkaXNjcworKyMgQUlY IDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhvdXQgYSAtZyBm bGFnCisrIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxlcyBub25l eGlzdGVudCBhcmdzCisrIyBTVlI0IC91c3IvdWNiL2luc3RhbGwsIHdoaWNoIHRyaWVzIHRvIHVz ZSB0aGUgbm9uZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgorKyMgT1MvMidzIHN5c3RlbSBpbnN0YWxs LCB3aGljaCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYworKyMgLi9pbnN0YWxs LCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9pbnN0YWxs LnNoLgorKyMgUmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMgdGhhdCBjYW5ub3QgaW5zdGFsbCBtdWx0 aXBsZSBmaWxlcy4KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGEg QlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEg QlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRJTlNUQUxM IjsgdGhlbgorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElG Uz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAjIEFj Y291bnQgZm9yIHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5nIHNsYXNoZXMgaW4gUEFUSCBlbGVtZW50 cy4KKytjYXNlICRhc19kaXIvIGluCisrICAuLyB8IC4vLyB8IC9jQy8qIHwgXAorKyAgL2V0Yy8q IHwgL3Vzci9zYmluLyogfCAvdXNyL2V0Yy8qIHwgL3NiaW4vKiB8IC91c3IvYWZzd3MvYmluLyog fCBcCisrICA/OlxcL29zMlxcL2luc3RhbGxcXC8qIHwgPzpcXC9PUzJcXC9JTlNUQUxMXFwvKiB8 IFwKKysgIC91c3IvdWNiLyogKSA7OworKyAgKikKKysgICAgIyBPU0YxIGFuZCBTQ08gT0RUIDMu MCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KKysgICAgIyBEb24ndCB1c2UgaW5z dGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290CisrICAgICMg YnkgZGVmYXVsdC4KKysgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5zdCBpbnN0YWxs OyBkbworKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbworKwlpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB9OyB0aGVuCisrCSAg aWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKysJICAgIGdyZXAgZHNwbXNnICIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICAgICMgQUlY IGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlvbi4KKysJ ICAgIDoKKysJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCisrCSAgICBncmVwIHB3 cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVu CisrCSAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBieSBIUCBwd3Bs dXMtLWRvbid0IHVzZS4KKysJICAgIDoKKysJICBlbHNlCisrCSAgICBybSAtcmYgY29uZnRlc3Qu b25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysJICAgIGVjaG8gb25lID4gY29uZnRlc3Qu b25lCisrCSAgICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3bworKwkgICAgbWtkaXIgY29uZnRlc3Qu ZGlyCisrCSAgICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLWMgY29uZnRlc3Qu b25lIGNvbmZ0ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAmJgorKwkgICAgICB0ZXN0IC1z IGNvbmZ0ZXN0Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LnR3byAmJgorKwkgICAgICB0ZXN0IC1z IGNvbmZ0ZXN0LmRpci9jb25mdGVzdC5vbmUgJiYKKysJICAgICAgdGVzdCAtcyBjb25mdGVzdC5k aXIvY29uZnRlc3QudHdvCisrCSAgICB0aGVuCisrCSAgICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0i JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKKysJICAgICAgYnJlYWsgMworKwkgICAg ZmkKKysJICBmaQorKwlmaQorKyAgICAgIGRvbmUKKysgICAgZG9uZQorKyAgICA7OworK2VzYWMK KysKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK3JtIC1yZiBjb25mdGVzdC5vbmUgY29u ZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgorKworK2ZpCisrICBpZiB0ZXN0ICIke2FjX2N2X3BhdGhf aW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgICBJTlNUQUxMPSRhY19jdl9wYXRoX2luc3Rh bGwKKysgIGVsc2UKKysgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhlIHNsb3cgc2hlbGwg c2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQorKyAgICAjIHZhbHVlIGZvciBJTlNUQUxMIHdpdGhpbiBh IHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisrICAgICMgYnJlYWsgb3RoZXIg cGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCisrICAgICMgcmVt b3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFtZS4KKysgICAgSU5TVEFMTD0k YWNfaW5zdGFsbF9zaAorKyAgZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRJTlNUQUxMIiA+JjUKKyskYXNfZWNobyAiJElOU1RBTEwiID4mNjsgfQorKworKyMg VXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4gJHt2YXIt dmFsfS4KKysjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJhY2UgZW5kcyB0aGUgdmFyaWFi bGUgc3Vic3RpdHV0aW9uLgorK3Rlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0iICYmIElOU1RBTExf UFJPR1JBTT0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16ICIkSU5TVEFMTF9TQ1JJUFQiICYmIElO U1RBTExfU0NSSVBUPScke0lOU1RBTEx9JworKworK3Rlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYm IElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCisrCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZSIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5l Li4uICIgPiY2OyB9CisrIyBKdXN0IGluIGNhc2UKKytzbGVlcCAxCisrZWNobyB0aW1lc3RhbXAg PiBjb25mdGVzdC5maWxlCisrIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNs b2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncworKyMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmly c3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQorKyMgc3ltbGluazsgc29tZSBzeXN0 ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MKKysjIChl ZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmlu ZworKyMgZGlyZWN0b3J5KS4KKytpZiAoCisrICAgc2V0IFggYGxzIC1MdCAkc3JjZGlyL2NvbmZp Z3VyZSBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKKysgICBpZiB0ZXN0ICIkKiIgPSAiWCI7 IHRoZW4KKysgICAgICAjIC1MIGRpZG4ndCB3b3JrLgorKyAgICAgIHNldCBYIGBscyAtdCAkc3Jj ZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlYAorKyAgIGZpCisrICAgcm0gLWYgY29uZnRlc3Qu ZmlsZQorKyAgIGlmIHRlc3QgIiQqIiAhPSAiWCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5m aWxlIiBcCisrICAgICAgJiYgdGVzdCAiJCoiICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9j b25maWd1cmUiOyB0aGVuCisrCisrICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2Ug aGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgorKyAgICAgICMgaWYsIGZvciBpbnN0 YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKKysgICAgICAjIGJy b2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5Cisr ICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQg InNhbmUiLgorKyAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBscyAt dCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2VuCisrYWxp YXMgaW4geW91ciBlbnZpcm9ubWVudCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGxz IC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KKyth bGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQorKyAgIGZpCisrCisrICAgdGVzdCAiJDIiID0gY29uZnRlc3QuZmlsZQorKyAgICkKKyt0 aGVuCisrICAgIyBPay4KKysgICA6CisrZWxzZQorKyAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRl ZCBmaWxlcyEKKytDaGVjayB5b3VyIHN5c3RlbSBjbG9jayIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZp bGVzIQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVz IiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKyt0ZXN0ICIkcHJvZ3JhbV9wcmVmaXgiICE9 IE5PTkUgJiYKKysgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMmXiYkcHJvZ3JhbV9wcmVmaXgm OyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgorKyMgVXNlIGEgZG91YmxlICQgc28gbWFrZSBpZ25v cmVzIGl0LgorK3Rlc3QgIiRwcm9ncmFtX3N1ZmZpeCIgIT0gTk9ORSAmJgorKyAgcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9u YW1lIgorKyMgRG91YmxlIGFueSBcIG9yICQuCisrIyBCeSBkZWZhdWx0IHdhcyBgcyx4LHgnLCBy ZW1vdmUgaXQgaWYgdXNlbGVzcy4KKythY19zY3JpcHQ9J3MvW1xcJF0vJiYvZztzLztzLHgseCwk Ly8nCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFzX2VjaG8gIiRwcm9ncmFtX3RyYW5zZm9y bV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCisrCisrIyBleHBhbmQgJGFjX2F1eF9kaXIgdG8g YW4gYWJzb2x1dGUgcGF0aAorK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYmIHB3ZGAKKysK Kyt0ZXN0IHgiJHtNSVNTSU5HK3NldH0iID0geHNldCB8fCBNSVNTSU5HPSJcJHtTSEVMTH0gJGFt X2F1eF9kaXIvbWlzc2luZyIKKysjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKKytpZiBldmFs ICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgorKyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5H IC0tcnVuICIKKytlbHNlCisrICBhbV9taXNzaW5nX3J1bj0KKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3Np bmciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgbWlzc2luZycgc2NyaXB0IGlz IHRvbyBvbGQgb3IgbWlzc2luZyIgPiYyO30KKytmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcCIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0IC16ICIkTUtESVJfUCI7IHRoZW4KKysgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2Rp citzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSCRQQVRIX1NFUEFSQVRPUi9vcHQvc2Z3L2JpbgorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX3Byb2cgaW4g bWtkaXIgZ21rZGlyOyBkbworKwkgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCisrCSAgIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH0gfHwg Y29udGludWUKKysJICAgY2FzZSBgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC0tdmVy c2lvbiAyPiYxYCBpbiAjKAorKwkgICAgICdta2RpciAoR05VIGNvcmV1dGlscykgJyogfCBcCisr CSAgICAgJ21rZGlyIChjb3JldXRpbHMpICcqIHwgXAorKwkgICAgICdta2RpciAoZmlsZXV0aWxz KSAnNC4xKikKKysJICAgICAgIGFjX2N2X3BhdGhfbWtkaXI9JGFzX2Rpci8kYWNfcHJvZyRhY19l eGVjX2V4dAorKwkgICAgICAgYnJlYWsgMzs7CisrCSAgIGVzYWMKKysJIGRvbmUKKysgICAgICAg ZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKysKKysgIGlmIHRlc3QgIiR7 YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgorKyAgICBNS0RJUl9QPSIkYWNfY3Zf cGF0aF9ta2RpciAtcCIKKysgIGVsc2UKKysgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhl IHNsb3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQorKyAgICAjIHZhbHVlIGZvciBNS0RJ Ul9QIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisrICAgICMg YnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlz CisrICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFtZS4KKysg ICAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgorKyAgICBNS0RJUl9Q PSIkYWNfaW5zdGFsbF9zaCAtZCIKKysgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkTUtESVJfUCIgPiY1CisrJGFzX2VjaG8gIiRNS0RJUl9QIiA+JjY7IH0K KysKKytta2Rpcl9wPSIkTUtESVJfUCIKKytjYXNlICRta2Rpcl9wIGluCisrICBbXFwvJF0qIHwg PzpbXFwvXSopIDs7CisrICAqLyopIG1rZGlyX3A9IlwkKHRvcF9idWlsZGRpcikvJG1rZGlyX3Ai IDs7CisrZXNhYworKworK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBuYXdrIGF3aworK2RvCisr ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfQVdLK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRBV0siOyB0aGVuCisrICBhY19jdl9w cm9nX0FXSz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQor K2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQ QVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYg JGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAg YWNfY3ZfcHJvZ19BV0s9IiRhY19wcm9nIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisr ICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytBV0s9 JGFjX2N2X3Byb2dfQVdLCisraWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRBV0siID4mNQorKyRhc19lY2hvICIkQVdLIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgdGVzdCAtbiAiJEFXSyIgJiYg YnJlYWsKKytkb25lCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdo ZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+JjY7IH0KKytzZXQg eCAke01BS0UtbWFrZX0KKythY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2VkICdzLysvcC9nOyBz L1teYS16QS1aMC05X10vXy9nJ2AKKytpZiB7IGFzX3Zhcj1hY19jdl9wcm9nX21ha2VfJHthY19t YWtlfV9zZXQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC5t YWtlIDw8XF9BQ0VPRgorK1NIRUxMID0gL2Jpbi9zaAorK2FsbDoKKysJQGVjaG8gJ0BAQCUlJT0k KE1BS0UpPUBAQCUlJScKKytfQUNFT0YKKysjIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1h a2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KKytjYXNlIGAke01B S0UtbWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4KKysgICpAQEAlJSU9Pyo9 QEBAJSUlKikKKysgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9eWVzOzsK KysgICopCisrICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PW5vOzsKKytl c2FjCisrcm0gLWYgY29uZnRlc3QubWFrZQorK2ZpCisraWYgZXZhbCB0ZXN0IFwkYWNfY3ZfcHJv Z19tYWtlXyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKyAgU0VU X01BS0U9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICBTRVRfTUFLRT0iTUFLRT0ke01BS0UtbWFr ZX0iCisrZmkKKysKKytybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAorK21rZGlyIC50c3QgMj4vZGV2 L251bGwKKytpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KKysgIGFtX19sZWFkaW5nX2RvdD0uCisrZWxz ZQorKyAgYW1fX2xlYWRpbmdfZG90PV8KKytmaQorK3JtZGlyIC50c3QgMj4vZGV2L251bGwKKysK KytpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVuCisrICAjIFVz ZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91 dHB1dAorKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgorKyAgYW1fX2lz cmM9JyAtSSQoc3JjZGlyKScKKysgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVhZHkgY29u ZmlndXJlZAorKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRoZW4KKysgICAg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHNvdXJjZSBkaXJlY3RvcnkgYWxy ZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZp Z3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiID4mMjt9CisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICBmaQorK2ZpCisrCisrIyB0ZXN0IHdoZXRoZXIgd2Ug aGF2ZSBjeWdwYXRoCisraWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KKysgIGlmIChjeWdw YXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBDWUdQQVRI X1c9J2N5Z3BhdGggLXcnCisrICBlbHNlCisrICAgIENZR1BBVEhfVz1lY2hvCisrICBmaQorK2Zp CisrCisrCisrIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgorKyBQQUNLQUdF PSdzb2NpJworKyBWRVJTSU9OPSczLjAuMCcKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FD RU9GCisrI2RlZmluZSBQQUNLQUdFICIkUEFDS0FHRSIKKytfQUNFT0YKKysKKysKKytjYXQgPj5j b25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBWRVJTSU9OICIkVkVSU0lPTiIKKytfQUNFT0YK KysKKysjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCisrCisrQUNMT0NBTD0ke0FDTE9DQUwt IiR7YW1fbWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0ifQorKworKworK0FV VE9DT05GPSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYifQorKworKworK0FV VE9NQUtFPSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2UtJHthbV9fYXBpX3Zl cnNpb259In0KKysKKysKKytBVVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHthbV9taXNzaW5nX3J1 bn1hdXRvaGVhZGVyIn0KKysKKysKKytNQUtFSU5GTz0ke01BS0VJTkZPLSIke2FtX21pc3Npbmdf cnVufW1ha2VpbmZvIn0KKysKKytpbnN0YWxsX3NoPSR7aW5zdGFsbF9zaC0iXCQoU0hFTEwpICRh bV9hdXhfZGlyL2luc3RhbGwtc2gifQorKworKyMgSW5zdGFsbGVkIGJpbmFyaWVzIGFyZSB1c3Vh bGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNlcgorKyMgcnVuIGBtYWtlIGlu c3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQKKysj IHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywgdGhlcmVmb3Jl IEF1dG9tYWtlCisrIyB3aWxsIGhvbm9yIHRoZSBgU1RSSVAnIGVudmlyb25tZW50IHZhcmlhYmxl IHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KKytpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAh PSBubzsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3By ZWZpeH1zdHJpcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1u ICIkU1RSSVAiOyB0aGVuCisrICBhY19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfU1RSSVA9IiR7YWNfdG9v bF9wcmVmaXh9c3RyaXAiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9u ZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK1NUUklQPSRhY19jdl9w cm9nX1NUUklQCisraWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJFNUUklQIiA+JjUKKyskYXNfZWNobyAiJFNUUklQIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFj X2N2X3Byb2dfU1RSSVAiOyB0aGVuCisrICBhY19jdF9TVFJJUD0kU1RSSVAKKysgICMgRXh0cmFj dCB0aGUgZmlyc3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgorK3NldCBkdW1teSBzdHJpcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19h Y19jdF9TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCisrICBhY19jdl9w cm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRo ZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisr Zm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVj dXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi OyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgorKyAgICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lG UworKworK2ZpCisrZmkKKythY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJUAorK2lm IHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9TVFJJUCIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3Rf U1RSSVAiID0geDsgdGhlbgorKyAgICBTVFJJUD0iOiIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jv c3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRo IGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jv c3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xf d2FybmVkPXllcyA7OworK2VzYWMKKysgICAgU1RSSVA9JGFjX2N0X1NUUklQCisrICBmaQorK2Vs c2UKKysgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKKytmaQorKworK2ZpCisrSU5TVEFMTF9T VFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKKysKKysjIFdlIG5lZWQgYXdrIGZv ciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgorKyMgc29t ZSBwbGF0Zm9ybXMuCisrIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRp YmlsaXR5LgorKworK0FNVEFSPSR7QU1UQVItIiR7YW1fbWlzc2luZ19ydW59dGFyIn0KKysKKyth bV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0g eGYgLScKKysKKysKKysKKysKKysKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNw cHVuaXQtcHJlZml4IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfY3BwdW5pdF9wcmVmaXgr c2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfY3BwdW5pdF9wcmVmaXg7IGNwcHVu aXRfY29uZmlnX3ByZWZpeD0iJHdpdGh2YWwiCisrZWxzZQorKyAgY3BwdW5pdF9jb25maWdfcHJl Zml4PSIiCisrZmkKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtZXhlYy1w cmVmaXggd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9jcHB1bml0X2V4ZWNfcHJlZml4K3Nl dH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXg7IGNw cHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIKKytlbHNlCisrICBjcHB1bml0X2Nv bmZpZ19leGVjX3ByZWZpeD0iIgorK2ZpCisrCisrCisrICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25m aWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRj cHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJl Zml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVu CisrICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgvYmlu L2NwcHVuaXQtY29uZmlnCisrICAgICBmaQorKyAgZmkKKysgIGlmIHRlc3QgeCRjcHB1bml0X2Nv bmZpZ19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1 bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgiCisrICAgICBp ZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KKysgICAgICAgIENQ UFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCisr ICAgICBmaQorKyAgZmkKKysKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY3BwdW5p dC1jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBk dW1teSBjcHB1bml0LWNvbmZpZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9DUFBVTklUX0NP TkZJRytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBjYXNlICRDUFBVTklUX0NPTkZJRyBpbgorKyAgW1xcL10qIHwgPzpbXFwvXSopCisr ICBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSIkQ1BQVU5JVF9DT05GSUciICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysgICopCisrICBhc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv CisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2 X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrCisrICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRyIgJiYgYWNf Y3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0ibm8iCisrICA7OworK2VzYWMKKytmaQorK0NQUFVOSVRf Q09ORklHPSRhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHCisraWYgdGVzdCAtbiAiJENQUFVOSVRf Q09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQ UFVOSVRfQ09ORklHIiA+JjUKKyskYXNfZWNobyAiJENQUFVOSVRfQ09ORklHIiA+JjY7IH0KKytl bHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFz X2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0xLjEw CisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIENwcHVuaXQg LSB2ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNpb25fbWluIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4uLi4gIiA+ JjY7IH0KKysgIG5vX2NwcHVuaXQ9IiIKKysgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAi bm8iIDsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgbm9fY3BwdW5pdD15ZXMKKysgIGVsc2UK KysgICAgQ1BQVU5JVF9DRkxBR1M9YCRDUFBVTklUX0NPTkZJRyAtLWNmbGFnc2AKKysgICAgQ1BQ VU5JVF9MSUJTPWAkQ1BQVU5JVF9DT05GSUcgLS1saWJzYAorKyAgICBDUFBVTklUX1ZFUlNJT049 YCRDUFBVTklUX0NPTkZJRyAtLXZlcnNpb25gCisrCisrICAgIGNwcHVuaXRfbWFqb3JfdmVyc2lv bj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0q XCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydgCisrICAgIGNwcHVuaXRfbWlub3JfdmVyc2lv bj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0q XCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wyLydgCisrICAgIGNwcHVuaXRfbWljcm9fdmVyc2lv bj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0q XCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wzLydgCisrCisrICAgIGNwcHVuaXRfbWFqb3JfbWlu PWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woWzAt OV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydgCisrICAgIGlmIHRlc3QgIngke2NwcHVu aXRfbWFqb3JfbWlufSIgPSAieCIgOyB0aGVuCisrICAgICAgIGNwcHVuaXRfbWFqb3JfbWluPTAK KysgICAgZmkKKysKKysgICAgY3BwdW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lv bl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAt OV0qXCkvXDIvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59IiA9ICJ4IiA7 IHRoZW4KKysgICAgICAgY3BwdW5pdF9taW5vcl9taW49MAorKyAgICBmaQorKworKyAgICBjcHB1 bml0X21pY3JvX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKKysgICAgICAgICAg IHNlZCAncy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMy8nYAorKyAgICBpZiB0 ZXN0ICJ4JHtjcHB1bml0X21pY3JvX21pbn0iID0gIngiIDsgdGhlbgorKyAgICAgICBjcHB1bml0 X21pY3JvX21pbj0wCisrICAgIGZpCisrCisrICAgIGNwcHVuaXRfdmVyc2lvbl9wcm9wZXI9YGV4 cHIgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9tYWpvcl9t aW4gXHwgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpv cl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9t aW5vcl9taW4gXHwgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5p dF9tYWpvcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPSAkY3Bw dW5pdF9taW5vcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRfbWljcm9fdmVyc2lvbiBcPj0g JGNwcHVuaXRfbWljcm9fbWluIGAKKysKKysgICAgaWYgdGVzdCAiJGNwcHVuaXRfdmVyc2lvbl9w cm9wZXIiID0gIjEiIDsgdGhlbgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRjcHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVuaXRfbWlub3JfdmVyc2lvbi4kY3Bw dW5pdF9taWNyb192ZXJzaW9uIiA+JjUKKyskYXNfZWNobyAiJGNwcHVuaXRfbWFqb3JfdmVyc2lv bi4kY3BwdW5pdF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4mNjsgfQor KyAgICBlbHNlCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgbm9fY3BwdW5pdD15ZXMKKysgICAg ZmkKKysgIGZpCisrCisrICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQiID0geCA7IHRoZW4KKysgICAg IDoKKysgIGVsc2UKKysgICAgIENQUFVOSVRfQ0ZMQUdTPSIiCisrICAgICBDUFBVTklUX0xJQlM9 IiIKKysgICAgIDoKKysgIGZpCisrCisrCisrCisrCisrCisrIGlmIHRlc3QgIngkQ1BQVU5JVF9M SUJTIiAhPSB4OyB0aGVuCisrICBIQVZFX0NQUFVOSVRfVFJVRT0KKysgIEhBVkVfQ1BQVU5JVF9G QUxTRT0nIycKKytlbHNlCisrICBIQVZFX0NQUFVOSVRfVFJVRT0nIycKKysgIEhBVkVfQ1BQVU5J VF9GQUxTRT0KKytmaQorKworKworKyMgUlBNIHJlbGVhc2UgbnVtYmVyCisrUlBNX1JFTEVBU0U9 IjEzIgorKworKworKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZworK0dFTkVSSUNfTElCUkFS WV9WRVJTSU9OPSIzOjA6MCIKKysjICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwKKysjICAg ICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0rCisrIyAgICAgICAgICAgICAgICAgfCAgICAg ICAgfCAgICAgfAorKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2aXNpb246YWdlCisrIyAgICAg ICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAgICAgIHwgICAgICAg IHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZDsKKysjICAg ICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2Vz IGhhdmUgYmVlbgorKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQg b3IgY2hhbmdlZAorKyMgICAgICAgICAgICAgICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBz b3VyY2UgY29kZSBoYXMgY2hhbmdlZDsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBz ZXQgdG8gemVybyBpZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCisrIyAgICAgICAgICAgICAgICAg Ky0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCisrIyAg ICAgICAgICAgICAgICAgICAgb3IgY2hhbmdlZAorKworKworKyMgVXBsb2FkIGNvbW1hbmQgZm9y IFNvdXJjZUZvcmdlCisrVVBMT0FEX0NPTU1BTkQ9Im5jZnRwcHV0IC12IHVwbG9hZC5zb3VyY2Vm b3JnZS5uZXQgL2luY29taW5nIgorKworKworKyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUg YnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCisrIyBNYWtlIHN1cmUgd2UgY2Fu IHJ1biBjb25maWcuc3ViLgorKyRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgc3VuNCA+ L2Rldi9udWxsIDI+JjEgfHwKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjYW5ub3QgcnVuICRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1 YiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHth Y19jdl9idWlsZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBhY19idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKKyt0ZXN0ICJ4JGFjX2J1 aWxkX2FsaWFzIiA9IHggJiYKKysgIGFjX2J1aWxkX2FsaWFzPWAkU0hFTEwgIiRhY19hdXhfZGly L2NvbmZpZy5ndWVzcyJgCisrdGVzdCAieCRhY19idWlsZF9hbGlhcyIgPSB4ICYmCisrICB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7 IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fu bm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjI7fQorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2FjX2N2X2J1aWxkPWAkU0hFTEwgIiRhY19hdXhfZGly L2NvbmZpZy5zdWIiICRhY19idWlsZF9hbGlhc2AgfHwKKysgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRf YWxpYXMgZmFpbGVkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFNIRUxMICRhY19h dXhfZGlyL2NvbmZpZy5zdWIgJGFjX2J1aWxkX2FsaWFzIGZhaWxlZCIgPiYyO30KKysgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9idWlsZCIgPiY2 OyB9CisrY2FzZSAkYWNfY3ZfYnVpbGQgaW4KKysqLSotKikgOzsKKysqKSB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBvZiBjYW5vbmljYWwgYnVpbGQi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNh bCBidWlsZCIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworK2VzYWMKKyti dWlsZD0kYWNfY3ZfYnVpbGQKKythY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCisrc2V0IHggJGFj X2N2X2J1aWxkCisrc2hpZnQKKytidWlsZF9jcHU9JDEKKytidWlsZF92ZW5kb3I9JDIKKytzaGlm dDsgc2hpZnQKKysjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2Vk IHRvIGNyZWF0ZSAkKiwKKysjIGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6CisrYnVpbGRfb3M9JCoK KytJRlM9JGFjX3NhdmVfSUZTCisrY2FzZSAkYnVpbGRfb3MgaW4gKlwgKikgYnVpbGRfb3M9YGVj aG8gIiRidWlsZF9vcyIgfCBzZWQgJ3MvIC8tL2cnYDs7IGVzYWMKKysKKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YWNfY3ZfaG9zdCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiID0geDsgdGhlbgorKyAgYWNfY3Zf aG9zdD0kYWNfY3ZfYnVpbGQKKytlbHNlCisrICBhY19jdl9ob3N0PWAkU0hFTEwgIiRhY19hdXhf ZGlyL2NvbmZpZy5zdWIiICRob3N0X2FsaWFzYCB8fAorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxp YXMgZmFpbGVkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFNIRUxMICRhY19hdXhf ZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVkIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQorK2ZpCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3ZfaG9zdCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9ob3N0IiA+JjY7IH0K KytjYXNlICRhY19jdl9ob3N0IGluCisrKi0qLSopIDs7CisrKikgeyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGhvc3QiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBob3N0 IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisrZXNhYworK2hvc3Q9JGFj X2N2X2hvc3QKKythY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCisrc2V0IHggJGFjX2N2X2hvc3QK KytzaGlmdAorK2hvc3RfY3B1PSQxCisraG9zdF92ZW5kb3I9JDIKKytzaGlmdDsgc2hpZnQKKysj IFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAk KiwKKysjIGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6CisraG9zdF9vcz0kKgorK0lGUz0kYWNfc2F2 ZV9JRlMKKytjYXNlICRob3N0X29zIGluICpcICopIGhvc3Rfb3M9YGVjaG8gIiRob3N0X29zIiB8 IHNlZCAncy8gLy0vZydgOzsgZXNhYworKworKworK2Nhc2UgJGhvc3QgaW4KKysgICotKi1tc2Rv cyogfCAqLSotZ28zMiogfCAqLSotbWluZ3czMiogfCAqLSotY3lnd2luKiB8ICotKi13aW5kb3dz KikKKysgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMgZ2l2ZW4uCisraWYg dGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVu YWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAgIGNhc2UgJGVuYWJsZXZhbCBp bgorKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7CisrICAgIG5vKSBlbmFibGVfc2hhcmVk PW5vIDs7CisrICAgICopCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAgICAgICMgTG9vayBh dCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJh dG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJB VE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVf aWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9zaGFyZWQ9 eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAg IDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc2hhcmVkPW5vCisrZmkKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0YXRpYyB3 YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfc3RhdGljK3NldH0iID0gc2V0OyB0aGVuCisr ICBlbmFibGV2YWw9JGVuYWJsZV9zdGF0aWM7IHA9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAgIGNh c2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9zdGF0aWM9eWVzIDs7CisrICAgIG5v KSBlbmFibGVfc3RhdGljPW5vIDs7CisrICAgICopCisrICAgICBlbmFibGVfc3RhdGljPW5vCisr ICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21t b24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lG U30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJ SUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAg ZW5hYmxlX3N0YXRpYz15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2 ZV9pZnMiCisrICAgICAgOzsKKysgICAgZXNhYworK2Vsc2UKKysgIGVuYWJsZV9zdGF0aWM9eWVz CisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysgICAgOzsKKysgICopCisrICAgICMg Q2hlY2sgd2hldGhlciAtLWVuYWJsZS1zaGFyZWQgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5h YmxlX3NoYXJlZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfc2hhcmVk OyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVz KSBlbmFibGVfc2hhcmVkPXllcyA7OworKyAgICBubykgZW5hYmxlX3NoYXJlZD1ubyA7OworKyAg ICAqKQorKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3Vt ZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAg ICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAg ICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYg dGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfc2hhcmVkPXllcworKwlmaQor KyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBl c2FjCisrZWxzZQorKyAgZW5hYmxlX3NoYXJlZD15ZXMKKytmaQorKworKworKworKworKworKwor KyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxl X3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAkZW5hYmxldmFsIGluCisr ICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8g OzsKKysgICAgKikKKysgICAgIGVuYWJsZV9zdGF0aWM9bm8KKysgICAgICAjIExvb2sgYXQgdGhl IGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMu CisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwi CisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZlX2lmcyIK KysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfc3RhdGljPXllcwor KwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7Owor KyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX3N0YXRpYz1ubworK2ZpCisrCisrCisrCisrCisr CisrCisrICAgIDs7CisrZXNhYworKworKyMgQ2hlY2tzIGZvciBwcm9ncmFtcworK3NhdmVfQ1hY RkxBR1M9IiRDWFhGTEFHUyIKKythY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKytpZiB0ZXN0IC16ICIkQ1hYIjsgdGhl bgorKyAgaWYgdGVzdCAtbiAiJENDQyI7IHRoZW4KKysgICAgQ1hYPSRDQ0MKKysgIGVsc2UKKysg ICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgZm9yIGFjX3Byb2cgaW4g ZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMK KysgIGRvCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4 JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBk dW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19D WFgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgaWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQ1hYPSIkQ1hYIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZT PSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0NYWD0i JGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysg IGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0NYWD0k YWNfY3ZfcHJvZ19DWFgKKytpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENYWCIgPiY1CisrJGFzX2VjaG8gIiRDWFgiID4mNjsg fQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgIHRlc3QgLW4gIiRDWFgiICYm IGJyZWFrCisrICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgorKyAgYWNfY3Rf Q1hYPSRDWFgKKysgIGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3BwIGFDQyBDQyBjeHggY2MrKyBj bC5leGUgRkNDIEtDQyBSQ0MgeGxDX3IgeGxDCisrZG8KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9D WFgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3Rf Q1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNl CisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4g JFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAg ICBhY19jdl9wcm9nX2FjX2N0X0NYWD0iJGFjX3Byb2ciCisrICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJy ZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytm aQorK2FjX2N0X0NYWD0kYWNfY3ZfcHJvZ19hY19jdF9DWFgKKytpZiB0ZXN0IC1uICIkYWNfY3Rf Q1hYIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0 X0NYWCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIkYWNfY3RfQ1hYIiAmJiBicmVhaworK2RvbmUK KysKKysgIGlmIHRlc3QgIngkYWNfY3RfQ1hYIiA9IHg7IHRoZW4KKysgICAgQ1hYPSJnKysiCisr ICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5 ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJp cGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIENYWD0kYWNf Y3RfQ1hYCisrICBmaQorK2ZpCisrCisrICBmaQorK2ZpCisrIyBQcm92aWRlIHNvbWUgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgorKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIEMrKyBjb21waWxlciB2ZXJzaW9uIiA+JjUKKytzZXQgWCAkYWNfY29tcGlsZQor K2FjX2NvbXBpbGVyPSQyCisreyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1 IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KKyt7IChhY190cnk9 IiRhY19jb21waWxlciAtdiA+JjUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNf Y29tcGlsZXIgLXYgPiY1IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0KKyt7IChhY190cnk9IiRhY19jb21waWxlciAtViA+JjUiCisrY2FzZSAiKCgkYWNfdHJ5IiBp bgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK KysgIChldmFsICIkYWNfY29tcGlsZXIgLVYgPiY1IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0KKysKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9 CisrX0FDRU9GCisrYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKKythY19jbGVh bl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzIGEub3V0IGEub3V0LmRTWU0gYS5leGUgYi5vdXQiCisr IyBUcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGUgd2l0aG91dCAtbyBmaXJzdCwgZGlzcmVnYXJk IGEub3V0LgorKyMgSXQgd2lsbCBoZWxwIHVzIGRpYWdub3NlIGJyb2tlbiBjb21waWxlcnMsIGFu ZCBmaW5kaW5nIG91dCBhbiBpbnR1aXRpb24KKysjIG9mIGV4ZWV4dC4KKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBm aWxlIG5hbWUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBDKysgY29tcGlsZXIgZGVm YXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uICIgPiY2OyB9CisrYWNfbGlua19kZWZhdWx0PWAkYXNf ZWNobyAiJGFjX2xpbmsiIHwgc2VkICdzLyAtbyAqY29uZnRlc3RbXiBdKi8vJ2AKKysKKysjIFRo ZSBwb3NzaWJsZSBvdXRwdXQgZmlsZXM6CisrYWNfZmlsZXM9ImEub3V0IGNvbmZ0ZXN0LmV4ZSBj b25mdGVzdCBhLmV4ZSBhX291dC5leGUgYi5vdXQgY29uZnRlc3QuKiIKKysKKythY19ybWZpbGVz PQorK2ZvciBhY19maWxlIGluICRhY19maWxlcworK2RvCisrICBjYXNlICRhY19maWxlIGluCisr ICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwg Ki5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsK KysgICAgKiApIGFjX3JtZmlsZXM9IiRhY19ybWZpbGVzICRhY19maWxlIjs7CisrICBlc2FjCisr ZG9uZQorK3JtIC1mICRhY19ybWZpbGVzCisrCisraWYgeyAoYWNfdHJ5PSIkYWNfbGlua19kZWZh dWx0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmtfZGVmYXVsdCIpIDI+ JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICAjIEF1dG9j b25mLTIuMTMgY291bGQgc2V0IHRoZSBhY19jdl9leGVleHQgdmFyaWFibGUgdG8gYG5vJy4KKysj IFNvIGlnbm9yZSBhIHZhbHVlIG9mIGBubycsIG90aGVyd2lzZSB0aGlzIHdvdWxkIGxlYWQgdG8g YEVYRUVYVCA9IG5vJworKyMgaW4gYSBNYWtlZmlsZS4gIFdlIHNob3VsZCBub3Qgb3ZlcnJpZGUg YWNfY3ZfZXhlZXh0IGlmIGl0IHdhcyBjYWNoZWQsCisrIyBzbyB0aGF0IHRoZSB1c2VyIGNhbiBz aG9ydC1jaXJjdWl0IHRoaXMgdGVzdCBmb3IgY29tcGlsZXJzIHVua25vd24gdG8KKysjIEF1dG9j b25mLgorK2ZvciBhY19maWxlIGluICRhY19maWxlcyAnJworK2RvCisrICB0ZXN0IC1mICIkYWNf ZmlsZSIgfHwgY29udGludWUKKysgIGNhc2UgJGFjX2ZpbGUgaW4KKysgICAgKi4kYWNfZXh0IHwg Ki54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAq Lm1hcCB8ICouaW5mIHwgKi5kU1lNIHwgKi5vIHwgKi5vYmogKQorKwk7OworKyAgICBbYWJdLm91 dCApCisrCSMgV2UgZm91bmQgdGhlIGRlZmF1bHQgZXhlY3V0YWJsZSwgYnV0IGV4ZWV4dD0nJyBp cyBtb3N0CisrCSMgY2VydGFpbmx5IHJpZ2h0LgorKwlicmVhazs7CisrICAgICouKiApCisrICAg ICAgICBpZiB0ZXN0ICIke2FjX2N2X2V4ZWV4dCtzZXR9IiA9IHNldCAmJiB0ZXN0ICIkYWNfY3Zf ZXhlZXh0IiAhPSBubzsKKysJdGhlbiA6OyBlbHNlCisrCSAgIGFjX2N2X2V4ZWV4dD1gZXhwciAi JGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAorKwlmaQorKwkjIFdlIHNldCBhY19jdl9leGVl eHQgaGVyZSBiZWNhdXNlIHRoZSBsYXRlciB0ZXN0IGZvciBpdCBpcyBub3QKKysJIyBzYWZlOiBj cm9zcyBjb21waWxlcnMgbWF5IG5vdCBhZGQgdGhlIHN1ZmZpeCBpZiBnaXZlbiBhbiBgLW8nCisr CSMgYXJndW1lbnQsIHNvIHdlIG1heSBuZWVkIHRvIGtub3cgaXQgYXQgdGhhdCBwb2ludCBhbHJl YWR5LgorKwkjIEV2ZW4gaWYgdGhpcyBzZWN0aW9uIGxvb2tzIGNydWZ0eTogaXQgaGFzIHRoZSBh ZHZhbnRhZ2Ugb2YKKysJIyBhY3R1YWxseSB3b3JraW5nLgorKwlicmVhazs7CisrICAgICogKQor KwlicmVhazs7CisrICBlc2FjCisrZG9uZQorK3Rlc3QgIiRhY19jdl9leGVleHQiID0gbm8gJiYg YWNfY3ZfZXhlZXh0PQorKworK2Vsc2UKKysgIGFjX2ZpbGU9JycKKytmaQorKworK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19maWxlIiA+JjUKKyskYXNfZWNobyAiJGFj X2ZpbGUiID4mNjsgfQorK2lmIHRlc3QgLXogIiRhY19maWxlIjsgdGhlbgorKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQorKworK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBp biBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3 ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDKysgY29t cGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBt b3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQysrIGNvbXBpbGVy IGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBk ZXRhaWxzLiIgPiYyO30KKysgICB7IChleGl0IDc3KTsgZXhpdCA3NzsgfTsgfTsgfQorK2ZpCisr CisrYWNfZXhlZXh0PSRhY19jdl9leGVleHQKKysKKysjIENoZWNrIHRoYXQgdGhlIGNvbXBpbGVy IHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBub3QsIGVpdGhlcgorKyMgdGhl IGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIHdvcmtzIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgd29ya3Mu Li4gIiA+JjY7IH0KKysjIEZJWE1FOiBUaGVzZSBjcm9zcyBjb21waWxlciBoYWNrcyBzaG91bGQg YmUgcmVtb3ZlZCBmb3IgQXV0b2NvbmYgMy4wCisrIyBJZiBub3QgY3Jvc3MgY29tcGlsaW5nLCBj aGVjayB0aGF0IHdlIGNhbiBydW4gYSBzaW1wbGUgcHJvZ3JhbS4KKytpZiB0ZXN0ICIkY3Jvc3Nf Y29tcGlsaW5nIiAhPSB5ZXM7IHRoZW4KKysgIGlmIHsgYWNfdHJ5PScuLyRhY19maWxlJworKyAg eyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfdHJ5IikgMj4mNQorKyAgYWNfc3Rh dHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKysgICAgY3Jvc3NfY29tcGlsaW5n PW5vCisrICBlbHNlCisrICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbWF5YmU7IHRo ZW4KKysJY3Jvc3NfY29tcGlsaW5nPXllcworKyAgICBlbHNlCisrCXsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBjYW5ub3QgcnVuIEMrKyBjb21waWxlZCBwcm9ncmFtcy4KKytJZiB5b3Ug bWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KKytTZWUgXGBjb25maWcubG9n JyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5v dCBydW4gQysrIGNvbXBpbGVkIHByb2dyYW1zLgorK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21w aWxlLCB1c2UgXGAtLWhvc3QnLgorK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMu IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorKyAgICBmaQorKyAgZmkK KytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFz X2VjaG8gInllcyIgPiY2OyB9CisrCisrcm0gLWYgLXIgYS5vdXQgYS5vdXQuZFNZTSBhLmV4ZSBj b25mdGVzdCRhY19jdl9leGVleHQgYi5vdXQKKythY19jbGVhbl9maWxlcz0kYWNfY2xlYW5fZmls ZXNfc2F2ZQorKyMgQ2hlY2sgdGhhdCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMg d2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCisrIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBv ciB3ZSBjcm9zcyBjb21waWxlLgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmciID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAiID4mNjsgfQorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjcm9zc19jb21waWxpbmciID4mNQorKyRhc19l Y2hvICIkY3Jvc3NfY29tcGlsaW5nIiA+JjY7IH0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcyIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAiID4mNjsgfQorK2lmIHsg KGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGlu ayIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICAj IElmIGJvdGggYGNvbmZ0ZXN0LmV4ZScgYW5kIGBjb25mdGVzdCcgYXJlIGBwcmVzZW50JyAod2Vs bCwgb2JzZXJ2YWJsZSkKKysjIGNhdGNoIGBjb25mdGVzdC5leGUnLiAgRm9yIGluc3RhbmNlIHdp dGggQ3lnd2luLCBgbHMgY29uZnRlc3QnIHdpbGwKKysjIHdvcmsgcHJvcGVybHkgKGkuZS4sIHJl ZmVyIHRvIGBjb25mdGVzdC5leGUnKSwgd2hpbGUgaXQgd29uJ3Qgd2l0aAorKyMgYHJtJy4KKytm b3IgYWNfZmlsZSBpbiBjb25mdGVzdC5leGUgY29uZnRlc3QgY29uZnRlc3QuKjsgZG8KKysgIHRl c3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQorKyAgY2FzZSAkYWNfZmlsZSBpbgorKyAgICAq LiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIg fCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7CisrICAg ICouKiApIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAor KwkgIGJyZWFrOzsKKysgICAgKiApIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrZWxzZQorKyAg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBl eGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKKytTZWUgXGBjb25maWcubG9nJyBm b3IgbW9yZSBkZXRhaWxzLiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBj b21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKKytT ZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKysgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH07IH0KKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dAor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQor KyRhc19lY2hvICIkYWNfY3ZfZXhlZXh0IiA+JjY7IH0KKysKKytybSAtZiBjb25mdGVzdC4kYWNf ZXh0CisrRVhFRVhUPSRhY19jdl9leGVleHQKKythY19leGVleHQ9JEVYRUVYVAorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X29iamV4dCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7Cisr ICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QubyBjb25mdGVzdC5vYmoK KytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZh bCAiJGFjX2NvbXBpbGUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fTsgdGhlbgorKyAgZm9yIGFjX2ZpbGUgaW4gY29uZnRlc3QubyBjb25mdGVzdC5vYmogY29uZnRl c3QuKjsgZG8KKysgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZTsKKysgIGNhc2UgJGFj X2ZpbGUgaW4KKysgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIg fCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNICkgOzsKKysg ICAgKikgYWNfY3Zfb2JqZXh0PWBleHByICIkYWNfZmlsZSIgOiAnLipcLlwoLipcKSdgCisrICAg ICAgIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQorKworK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19w d2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7 fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBz dWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQorK1NlZSBcYGNvbmZpZy5sb2cn IGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90 IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKKytTZWUgXGBj b25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH07IH0KKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LiRhY19jdl9vYmpleHQgY29uZnRl c3QuJGFjX2V4dAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N2X29iamV4dCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9vYmpleHQiID4mNjsgfQorK09CSkVY VD0kYWNfY3Zfb2JqZXh0CisrYWNfb2JqZXh0PSRPQkpFWFQKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGls ZXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBH TlUgQysrIGNvbXBpbGVyLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9jeHhfY29tcGls ZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmgu ICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisr aW50CisrbWFpbiAoKQorK3sKKysjaWZuZGVmIF9fR05VQ19fCisrICAgICAgIGNob2tlIG1lCisr I2VuZGlmCisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0 dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBy bSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KKysgIGFjX2NvbXBpbGVyX2dudT15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrCWFjX2NvbXBpbGVyX2dudT1ubworK2ZpCisrCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251CisrCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY3h4X2NvbXBpbGVyX2dudSIgPiY1CisrJGFz X2VjaG8gIiRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjY7IH0KKytpZiB0ZXN0ICRhY19jb21w aWxlcl9nbnUgPSB5ZXM7IHRoZW4KKysgIEdYWD15ZXMKKytlbHNlCisrICBHWFg9CisrZmkKKyth Y190ZXN0X0NYWEZMQUdTPSR7Q1hYRkxBR1Mrc2V0fQorK2FjX3NhdmVfQ1hYRkxBR1M9JENYWEZM QUdTCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENYWCBh Y2NlcHRzIC1nIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDWFggYWNjZXB0 cyAtZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jeHhfZytzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19zYXZl X2N4eF93ZXJyb3JfZmxhZz0kYWNfY3h4X3dlcnJvcl9mbGFnCisrICAgYWNfY3h4X3dlcnJvcl9m bGFnPXllcworKyAgIGFjX2N2X3Byb2dfY3h4X2c9bm8KKysgICBDWFhGTEFHUz0iLWciCisrICAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FD RU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWlu ICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3Rh dHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAg cm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCisrICBhY19jdl9wcm9nX2N4eF9nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKysKKysJQ1hYRkxBR1M9IiIKKysgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7Cisr ICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lm IHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIk YWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEK KysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVz dCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK KysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIDoKKytl bHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N4eF93ZXJyb3JfZmxhZz0k YWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKKysJIENYWEZMQUdTPSItZyIKKysJIGNhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysK KysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2Jq ZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisr ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAg KGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgor KyAgYWNfY3ZfcHJvZ19jeHhfZz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 CisrCisrCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgYWNf Y3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZworK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY3h4X2ciID4mNQorKyRhc19l Y2hvICIkYWNfY3ZfcHJvZ19jeHhfZyIgPiY2OyB9CisraWYgdGVzdCAiJGFjX3Rlc3RfQ1hYRkxB R1MiID0gc2V0OyB0aGVuCisrICBDWFhGTEFHUz0kYWNfc2F2ZV9DWFhGTEFHUworK2VsaWYgdGVz dCAkYWNfY3ZfcHJvZ19jeHhfZyA9IHllczsgdGhlbgorKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7 IHRoZW4KKysgICAgQ1hYRkxBR1M9Ii1nIC1PMiIKKysgIGVsc2UKKysgICAgQ1hYRkxBR1M9Ii1n IgorKyAgZmkKKytlbHNlCisrICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICBDWFhG TEFHUz0iLU8yIgorKyAgZWxzZQorKyAgICBDWFhGTEFHUz0KKysgIGZpCisrZmkKKythY19leHQ9 YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVz dCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorK0RFUERJ Uj0iJHthbV9fbGVhZGluZ19kb3R9ZGVwcyIKKysKKythY19jb25maWdfY29tbWFuZHM9IiRhY19j b25maWdfY29tbWFuZHMgZGVwZmlsZXMiCisrCisrCisrYW1fbWFrZT0ke01BS0UtbWFrZX0KKytj YXQgPiBjb25maW5jIDw8ICdFTkQnCisrYW1fX2RvaXQ6CisrCUBlY2hvIGRvbmUKKysuUEhPTlk6 IGFtX19kb2l0CisrRU5ECisrIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGlyZWN0aXZl LCBqdXN0IGNvbW1lbnQgb3V0IHRoZSBjb2RlLgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtl Li4uICIgPiY2OyB9CisrYW1fX2luY2x1ZGU9IiMiCisrYW1fX3F1b3RlPQorK19hbV9yZXN1bHQ9 bm9uZQorKyMgRmlyc3QgdHJ5IEdOVSBtYWtlIHN0eWxlIGluY2x1ZGUuCisrZWNobyAiaW5jbHVk ZSBjb25maW5jIiA+IGNvbmZtZgorKyMgV2UgZ3JlcCBvdXQgYEVudGVyaW5nIGRpcmVjdG9yeScg YW5kIGBMZWF2aW5nIGRpcmVjdG9yeScKKysjIG1lc3NhZ2VzIHdoaWNoIGNhbiBvY2N1ciBpZiBg dycgZW5kcyB1cCBpbiBNQUtFRkxBR1MuCisrIyBJbiBwYXJ0aWN1bGFyIHdlIGRvbid0IGxvb2sg YXQgYF5tYWtlOicgYmVjYXVzZSBHTlUgbWFrZSBtaWdodAorKyMgYmUgaW52b2tlZCB1bmRlciBz b21lIG90aGVyIG5hbWUgKHVzdWFsbHkgImdtYWtlIiksIGluIHdoaWNoCisrIyBjYXNlIGl0IHBy aW50cyBpdHMgbmV3IG5hbWUgaW5zdGVhZCBvZiBgbWFrZScuCisraWYgdGVzdCAiYCRhbV9tYWtl IC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGwgfCBncmVwIC12ICdpbmcgZGlyZWN0b3J5J2AiID0g ImRvbmUiOyB0aGVuCisrICAgYW1fX2luY2x1ZGU9aW5jbHVkZQorKyAgIGFtX19xdW90ZT0KKysg ICBfYW1fcmVzdWx0PUdOVQorK2ZpCisrIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1ZGUu CisraWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgorKyAgIGVjaG8gJy5pbmNsdWRl ICJjb25maW5jIicgPiBjb25mbWYKKysgICBpZiB0ZXN0ICJgJGFtX21ha2UgLXMgLWYgY29uZm1m IDI+IC9kZXYvbnVsbGAiID0gImRvbmUiOyB0aGVuCisrICAgICAgYW1fX2luY2x1ZGU9LmluY2x1 ZGUKKysgICAgICBhbV9fcXVvdGU9IlwiIgorKyAgICAgIF9hbV9yZXN1bHQ9QlNECisrICAgZmkK KytmaQorKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRfYW1fcmVz dWx0IiA+JjUKKyskYXNfZWNobyAiJF9hbV9yZXN1bHQiID4mNjsgfQorK3JtIC1mIGNvbmZpbmMg Y29uZm1mCisrCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcg d2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmcrc2V0fSIg PSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmc7Cisr ZmkKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRo ZW4KKysgIGFtX2RlcGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCisrICBBTURFUEJBQ0tTTEFT SD0nXCcKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4 bm87IHRoZW4KKysgIEFNREVQX1RSVUU9CisrICBBTURFUF9GQUxTRT0nIycKKytlbHNlCisrICBB TURFUF9UUlVFPScjJworKyAgQU1ERVBfRkFMU0U9CisrZmkKKysKKysKKysKKytkZXBjYz0iJENY WCIgIGFtX2NvbXBpbGVyX2xpc3Q9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlK3NldH0iID0gc2V0OyB0aGVuCisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLXogIiRBTURF UF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KKysgICMgV2UgbWFrZSBhIHN1 YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKysg ICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIg cmVtb3ZlLiAgRm9yCisrICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVY IHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAorKyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVk IGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAorKyAgIyBpbiBEJy4K KysgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorKyAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1 c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKKysgICMgdXNpbmcgYSByZWxh dGl2ZSBkaXJlY3RvcnkuCisrICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgorKyAgY2Qg Y29uZnRlc3QuZGlyCisrICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVz IGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UKKysgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBw bGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCisrICAjIGJvdGggVHJ1NjQn cyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorKyAg IyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5k ZW5jaWVzIGluCisrICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1 dCB0aGVtIGluIHRoZSBvYmplY3QKKysgICMgZGlyZWN0b3J5LgorKyAgbWtkaXIgc3ViCisrCisr ICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorKyAgaWYgdGVzdCAi JGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KKysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNl ZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCisrICBmaQor KyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBz b3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAg ICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0 aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hp Y2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVh dGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAj IG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5k IGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21w aWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2 OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0 ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkg c3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2gu CisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHth bV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNv bmZtZgorKworKyAgICBjYXNlICRkZXBtb2RlIGluCisrICAgIG5vc2lkZWVmZmVjdCkKKysgICAg ICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNv IHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVk CisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0 aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVhaworKyAgICAgIGZpCisrICAgICAg OzsKKysgICAgbm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYworKyAgICAjIFdlIGNoZWNrIHdpdGgg YC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAgIyBt b2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3Qg cHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRo aXMuCisrICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAorKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0 ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCisrICAgICAgIGRlcGZpbGU9 c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAgICAgICRT SEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIv Y29uZnRlc3QuYyBcCisrICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgorKyAg ICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYx ICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9u dWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2Nv bmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1m IGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgIyBpY2MgZG9lc24ndCBjaG9r ZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncworKyAgICAg ICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9y IGFueSBtZXNzYWdlCisrICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9y IG5vdCBzdXBwb3J0ZWQuCisrICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4x IGNvbXBsYWluIHRodXNseToKKysgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzog aWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCisrICAgICAgIyBUaGUg ZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKKysgICAgICAjICAgaWNjOiBDb21tYW5kIGxp bmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAorKyAgICAgIGlmIChncmVwICdp Z25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAorKyAgICAgICAgICBncmVwICdub3Qgc3Vw cG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCisrICAg ICAgICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKKysgICAg ICAgIGJyZWFrCisrICAgICAgZmkKKysgICAgZmkKKysgIGRvbmUKKysKKysgIGNkIC4uCisrICBy bSAtcmYgY29uZnRlc3QuZGlyCisrZWxzZQorKyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlPW5vbmUKKytmaQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1CisrJGFz X2VjaG8gIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQorK0NY WERFUE1PREU9ZGVwbW9kZT0kYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCisr CisrIGlmCisrICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAor KyAgJiYgdGVzdCAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2Mz OyB0aGVuCisrICBhbV9fZmFzdGRlcENYWF9UUlVFPQorKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9 JyMnCisrZWxzZQorKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0nIycKKysgIGFtX19mYXN0ZGVwQ1hY X0ZBTFNFPQorK2ZpCisrCisrCisrYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxB R1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29t cGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0IC16ICIkQ1hYQ1BQIjsgdGhlbgorKyAgaWYgdGVzdCAiJHthY19jdl9w cm9nX0NYWENQUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1hYQ1BQIG5lZWRzIHRv IGJlIGV4cGFuZGVkCisrICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUiICIvbGliL2NwcCIKKysg ICAgZG8KKysgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCisrZm9yIGFjX2N4eF9wcmVwcm9jX3dh cm5fZmxhZyBpbiAnJyB5ZXMKKytkbworKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVz IHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYworKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3Mt Y29tcGlsZXIgd29ya3MuCisrICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYg X19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKysgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBv biBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgorKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0 aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKKysgICMgbm90IGp1c3QgdGhy b3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgorKyAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FD RU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaWZkZWYgX19TVERD X18KKysjIGluY2x1ZGUgPGxpbWl0cy5oPgorKyNlbHNlCisrIyBpbmNsdWRlIDxhc3NlcnQuaD4K KysjZW5kaWYKKysJCSAgICAgU3ludGF4IGVycm9yCisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIk YWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIk YWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAg IH07IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAj IEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisrY29udGludWUKKytmaQorKworK3JtIC1m IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAjIE9LLCB3b3JrcyBvbiBzYW5l IGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycworKyAgIyBjYW4g YmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CisrX0FDRU9GCisraWYgeyAo YWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgor KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysg IChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNf c3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgor KyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dh cm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH07IHRoZW4KKysgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQu CisrY29udGludWUKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIFBh c3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisrZmkKKysKKytybSAt ZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysjIEJlY2F1c2Ugb2Yg YGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4K KytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRhY19wcmVwcm9jX29r OyB0aGVuCisrICBicmVhaworK2ZpCisrCisrICAgIGRvbmUKKysgICAgYWNfY3ZfcHJvZ19DWFhD UFA9JENYWENQUAorKworK2ZpCisrICBDWFhDUFA9JGFjX2N2X3Byb2dfQ1hYQ1BQCisrZWxzZQor KyAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJENYWENQUCIgPiY1CisrJGFzX2VjaG8gIiRDWFhDUFAiID4mNjsgfQor K2FjX3ByZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcn IHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNv IGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jr cy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBk ZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGlu ZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91 Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5 bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVk ZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJ ICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEK KysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAg OgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQor K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgICMgQnJva2VuOiBmYWls cyBvbiB2YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cg Y2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3RlZCBh bmQgaG93LgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysj aW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19j cHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19j cHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysg IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25m dGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9k ZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsg dGhlbgorKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51ZQor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgICMgUGFzc2VzIGJvdGggdGVz dHMuCisrYWNfcHJlcHJvY19vaz06CisrYnJlYWsKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNf UFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KKysgIDoK KytlbHNlCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNf cHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYy O30KKyt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQysrIHByZXByb2Nlc3Nv ciBcIiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKKytTZWUgXGBjb25maWcubG9nJyBmb3Ig bW9yZSBkZXRhaWxzLiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IEMrKyBwcmVwcm9j ZXNzb3IgXCIkQ1hYQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCisrU2VlIFxgY29uZmlnLmxvZycg Zm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9 CisrZmkKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGls ZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xp bms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2Nv bXBpbGVyX2dudQorKworK0NYWEZMQUdTPSIkc2F2ZV9DWFhGTEFHUyIKKysjIEZpbmQgYSBnb29k IGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKKysjIHNv IG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4g b3IKKysjIGluY29tcGF0aWJsZSB2ZXJzaW9uczoKKysjIFN5c1YgL2V0Yy9pbnN0YWxsLCAvdXNy L3NiaW4vaW5zdGFsbAorKyMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAorKyMgSVJJWCAvc2Jpbi9p bnN0YWxsCisrIyBBSVggL2Jpbi9pbnN0YWxsCisrIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNo IGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCisrIyBBSVggNCAvdXNyL2Jpbi9p bnN0YWxsYnNkLCB3aGljaCBkb2Vzbid0IHdvcmsgd2l0aG91dCBhIC1nIGZsYWcKKysjIEFGUyAv dXNyL2Fmc3dzL2Jpbi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50IGFyZ3MK KysjIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlz dGVudCBncm91cCAic3RhZmYiCisrIyBPUy8yJ3Mgc3lzdGVtIGluc3RhbGwsIHdoaWNoIGhhcyBh IGNvbXBsZXRlbHkgZGlmZmVyZW50IHNlbWFudGljCisrIyAuL2luc3RhbGwsIHdoaWNoIGNhbiBi ZSBlcnJvbmVvdXNseSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2luc3RhbGwuc2guCisrIyBSZWpl Y3QgaW5zdGFsbCBwcm9ncmFtcyB0aGF0IGNhbm5vdCBpbnN0YWxsIG11bHRpcGxlIGZpbGVzLgor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJs ZSBpbnN0YWxsIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJs ZSBpbnN0YWxsLi4uICIgPiY2OyB9CisraWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCisraWYg dGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lG UworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICMgQWNjb3VudCBmb3IgcGVv cGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgorK2Nhc2UgJGFz X2Rpci8gaW4KKysgIC4vIHwgLi8vIHwgL2NDLyogfCBcCisrICAvZXRjLyogfCAvdXNyL3NiaW4v KiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKKysgID86XFwv b3MyXFwvaW5zdGFsbFxcLyogfCA/OlxcL09TMlxcL0lOU1RBTExcXC8qIHwgXAorKyAgL3Vzci91 Y2IvKiApIDs7CisrICAqKQorKyAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIg b3duIG5hbWVzIGZvciBpbnN0YWxsLgorKyAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20g T1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKKysgICAgIyBieSBkZWZhdWx0Lgor KyAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCisrICAgICAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrCWlm IHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAi JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH07IHRoZW4KKysJICBpZiB0ZXN0ICRhY19w cm9nID0gaW5zdGFsbCAmJgorKwkgICAgZ3JlcCBkc3Btc2cgIiRhc19kaXIvJGFjX3Byb2ckYWNf ZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkgICAgIyBBSVggaW5zdGFsbC4gIEl0 IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgorKwkgICAgOgorKwkgIGVs aWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKysJICAgIGdyZXAgcHdwbHVzICIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICAgICMgcHJv Z3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNl LgorKwkgICAgOgorKwkgIGVsc2UKKysJICAgIHJtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3Qu dHdvIGNvbmZ0ZXN0LmRpcgorKwkgICAgZWNobyBvbmUgPiBjb25mdGVzdC5vbmUKKysJICAgIGVj aG8gdHdvID4gY29uZnRlc3QudHdvCisrCSAgICBta2RpciBjb25mdGVzdC5kaXIKKysJICAgIGlm ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAtYyBjb25mdGVzdC5vbmUgY29uZnRlc3Qu dHdvICJgcHdkYC9jb25mdGVzdC5kaXIiICYmCisrCSAgICAgIHRlc3QgLXMgY29uZnRlc3Qub25l ICYmIHRlc3QgLXMgY29uZnRlc3QudHdvICYmCisrCSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGly L2NvbmZ0ZXN0Lm9uZSAmJgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC50 d28KKysJICAgIHRoZW4KKysJICAgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19w cm9nJGFjX2V4ZWNfZXh0IC1jIgorKwkgICAgICBicmVhayAzCisrCSAgICBmaQorKwkgIGZpCisr CWZpCisrICAgICAgZG9uZQorKyAgICBkb25lCisrICAgIDs7CisrZXNhYworKworK2RvbmUKKytJ RlM9JGFzX3NhdmVfSUZTCisrCisrcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29u ZnRlc3QuZGlyCisrCisrZmkKKysgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0i ID0gc2V0OyB0aGVuCisrICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAorKyAgZWxzZQor KyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBEb24n dCBjYWNoZSBhCisrICAgICMgdmFsdWUgZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNlIGRpcmVj dG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKKysgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2lu ZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKysgICAgIyByZW1vdmVkLCBvciBpZiB0 aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgorKyAgICBJTlNUQUxMPSRhY19pbnN0YWxsX3No CisrICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJElOU1RB TEwiID4mNQorKyRhc19lY2hvICIkSU5TVEFMTCIgPiY2OyB9CisrCisrIyBVc2UgdGVzdCAteiBi ZWNhdXNlIFN1bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9LgorKyMgSXQg dGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRp b24uCisrdGVzdCAteiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFNPScke0lO U1RBTEx9JworKworK3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9 JyR7SU5TVEFMTH0nCisrCisrdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRB PScke0lOU1RBTEx9IC1tIDY0NCcKKysKKytjYXNlIGBwd2RgIGluCisrICAqXCAqIHwgKlwJKikK KysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IExpYnRvb2wgZG9lcyBu b3QgY29wZSB3ZWxsIHdpdGggd2hpdGVzcGFjZSBpbiBcYHB3ZFxgIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBXQVJOSU5HOiBMaWJ0b29sIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHdoaXRlc3Bh Y2UgaW4gXGBwd2RcYCIgPiYyO30gOzsKKytlc2FjCisrCisrCisrCisrbWFjcm9fdmVyc2lvbj0n Mi4yLjYnCisrbWFjcm9fcmV2aXNpb249JzEuMzAxMicKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKytsdG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKKysKKythY19l eHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxB R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25m dGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorK2lm IHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiJHthY190b29sX3ByZWZpeH1nY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWdjYzsgYWNfd29yZD0k MgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisrICBhY19jdl9w cm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKyth c19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFU SAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k aXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRh c190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFj X2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Z2NjIgorKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBi cmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisr ZmkKKytDQz0kYWNfY3ZfcHJvZ19DQworK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXog IiRhY19jdl9wcm9nX0NDIjsgdGhlbgorKyAgYWNfY3RfQ0M9JENDCisrICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0NDPSIk YWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv CisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2 X3Byb2dfYWNfY3RfQ0M9ImdjYyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkK Kytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfQ0M9 JGFjX2N2X3Byb2dfYWNfY3RfQ0MKKytpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQorKyRhc19l Y2hvICIkYWNfY3RfQ0MiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrICBp ZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KKysgICAgQ0M9IiIKKysgIGVsc2UKKysgICAg Y2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQor K2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ0M9JGFjX2N0X0NDCisrICBmaQor K2Vsc2UKKysgIENDPSIkYWNfY3ZfcHJvZ19DQyIKKytmaQorKworK2lmIHRlc3QgLXogIiRDQyI7 IHRoZW4KKysgICAgICAgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAg ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Y2MiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xf cHJlZml4fWNjOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRD QyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK Kytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1jYyIKKysg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNf c2F2ZV9JRlMKKysKKytmaQorK2ZpCisrQ0M9JGFjX2N2X3Byb2dfQ0MKKytpZiB0ZXN0IC1uICIk Q0MiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4m NQorKyRhc19lY2hvICIkQ0MiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr CisrICBmaQorK2ZpCisraWYgdGVzdCAteiAiJENDIjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Cisrc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3Qg LW4gIiRDQyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorKyAgYWNfcHJvZ19yZWplY3RlZD1ubworK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8K KysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisr ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgaWYgdGVzdCAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCisrICAg ICAgIGFjX3Byb2dfcmVqZWN0ZWQ9eWVzCisrICAgICAgIGNvbnRpbnVlCisrICAgICBmaQorKyAg ICBhY19jdl9wcm9nX0NDPSJjYyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkK Kytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytpZiB0ZXN0ICRhY19wcm9nX3Jl amVjdGVkID0geWVzOyB0aGVuCisrICAjIFdlIGZvdW5kIGEgYm9nb24gaW4gdGhlIHBhdGgsIHNv IG1ha2Ugc3VyZSB3ZSBuZXZlciB1c2UgaXQuCisrICBzZXQgZHVtbXkgJGFjX2N2X3Byb2dfQ0MK KysgIHNoaWZ0CisrICBpZiB0ZXN0ICQjICE9IDA7IHRoZW4KKysgICAgIyBXZSBjaG9zZSBhIGRp ZmZlcmVudCBjb21waWxlciBmcm9tIHRoZSBib2d1cyBvbmUuCisrICAgICMgSG93ZXZlciwgaXQg aGFzIHRoZSBzYW1lIGJhc2VuYW1lLCBzbyB0aGUgYm9nb24gd2lsbCBiZSBjaG9zZW4KKysgICAg IyBmaXJzdCBpZiB3ZSBzZXQgQ0MgdG8ganVzdCB0aGUgYmFzZW5hbWU7IHVzZSB0aGUgZnVsbCBm aWxlIG5hbWUuCisrICAgIHNoaWZ0CisrICAgIGFjX2N2X3Byb2dfQ0M9IiRhc19kaXIvJGFjX3dv cmQkezErJyAnfSRAIgorKyAgZmkKKytmaQorK2ZpCisrZmkKKytDQz0kYWNfY3ZfcHJvZ19DQwor K2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2 OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KKysgIGlmIHRlc3Qg LW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgIGZvciBhY19wcm9nIGluIGNsLmV4ZQorKyAg ZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNf cHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15 ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2 ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xf cHJlZml4JGFjX3Byb2ciCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9u ZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9n X0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJENDIiA+JjUKKyskYXNfZWNobyAiJENDIiA+JjY7IH0KKytlbHNlCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5v IiA+JjY7IH0KKytmaQorKworKworKyAgICB0ZXN0IC1uICIkQ0MiICYmIGJyZWFrCisrICBkb25l CisrZmkKKytpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCisrICBhY19jdF9DQz0kQ0MKKysgIGZvciBh Y19wcm9nIGluIGNsLmV4ZQorK2RvCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRh Y19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVt bXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVz dCAtbiAiJGFjX2N0X0NDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0ND IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2Fj X2N0X0NDPSIkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytk b25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfQ0M9JGFj X2N2X3Byb2dfYWNfY3RfQ0MKKytpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQorKyRhc19lY2hv ICIkYWNfY3RfQ0MiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0 ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFrCisrZG9uZQorKworKyAgaWYgdGVzdCAieCRhY19j dF9DQyIgPSB4OyB0aGVuCisrICAgIENDPSIiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2Nv bXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRv b2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5l ZD15ZXMgOzsKKytlc2FjCisrICAgIENDPSRhY19jdF9DQworKyAgZmkKKytmaQorKworK2ZpCisr CisrCisrdGVzdCAteiAiJENDIiAmJiB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiYyO30KKyt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8g YWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAorK1NlZSBcYGNvbmZpZy5sb2cn IGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNj ZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAorK1NlZSBcYGNvbmZpZy5sb2cnIGZv ciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQor KworKyMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KKyskYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24iID4m NQorK3NldCBYICRhY19jb21waWxlCisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190cnk9IiRhY19j b21waWxlciAtLXZlcnNpb24gPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1CisrICBhY19zdGF0 dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4m NSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAy PiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorKworK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMg Y29tcGlsZXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5n IHRoZSBHTlUgQyBjb21waWxlci4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfY19jb21w aWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysK KytpbnQKKyttYWluICgpCisreworKyNpZm5kZWYgX19HTlVDX18KKysgICAgICAgY2hva2UgbWUK KysjZW5kaWYKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KKysgIGFjX2NvbXBpbGVyX2dudT15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrCWFjX2NvbXBpbGVyX2dudT1ubworK2ZpCisrCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrYWNfY3Zf Y19jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQorKworK2ZpCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjUKKyskYXNfZWNo byAiJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjY7IH0KKytpZiB0ZXN0ICRhY19jb21waWxlcl9n bnUgPSB5ZXM7IHRoZW4KKysgIEdDQz15ZXMKKytlbHNlCisrICBHQ0M9CisrZmkKKythY190ZXN0 X0NGTEFHUz0ke0NGTEFHUytzZXR9CisrYWNfc2F2ZV9DRkxBR1M9JENGTEFHUworK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2crc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfc2F2ZV9jX3dlcnJvcl9mbGFnPSRh Y19jX3dlcnJvcl9mbGFnCisrICAgYWNfY193ZXJyb3JfZmxhZz15ZXMKKysgICBhY19jdl9wcm9n X2NjX2c9bm8KKysgICBDRkxBR1M9Ii1nIgorKyAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21w aWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIk YWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY2Nf Zz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCUNGTEFHUz0iIgor KyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50 CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysg IGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRh Y19vYmpleHQ7IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCWFjX2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3JfZmxhZworKwkgQ0ZMQUdTPSIt ZyIKKysJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50 CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysg IGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRh Y19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY2NfZz15ZXMKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorKworK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisr Cisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0CisrICAgYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jX3dlcnJvcl9mbGFnCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19nIiA+ JjUKKyskYXNfZWNobyAiJGFjX2N2X3Byb2dfY2NfZyIgPiY2OyB9CisraWYgdGVzdCAiJGFjX3Rl c3RfQ0ZMQUdTIiA9IHNldDsgdGhlbgorKyAgQ0ZMQUdTPSRhY19zYXZlX0NGTEFHUworK2VsaWYg dGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCisrICBpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgorKyAgICBDRkxBR1M9Ii1nIC1PMiIKKysgIGVsc2UKKysgICAgQ0ZMQUdTPSItZyIK KysgIGZpCisrZWxzZQorKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgQ0ZMQUdT PSItTzIiCisrICBlbHNlCisrICAgIENGTEFHUz0KKysgIGZpCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODki ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBJU08g Qzg5Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2M4OStzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jdl9w cm9nX2NjX2M4OT1ubworK2FjX3NhdmVfQ0M9JENDCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrI2luY2x1ZGUgPHN0ZGlv Lmg+CisrI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorKy8q IE1vc3Qgb2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgc3RvbGVuIGZyb20gUkNTIDUuNydzIHNy Yy9jb25mLnNoLiAgKi8KKytzdHJ1Y3QgYnVmIHsgaW50IHg7IH07CisrRklMRSAqICgqcmNzb3Bl bikgKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KTsKKytzdGF0aWMgY2hhciAqZSAo cCwgaSkKKysgICAgIGNoYXIgKipwOworKyAgICAgaW50IGk7CisreworKyAgcmV0dXJuIHBbaV07 CisrfQorK3N0YXRpYyBjaGFyICpmIChjaGFyICogKCpnKSAoY2hhciAqKiwgaW50KSwgY2hhciAq KnAsIC4uLikKKyt7CisrICBjaGFyICpzOworKyAgdmFfbGlzdCB2OworKyAgdmFfc3RhcnQgKHYs cCk7CisrICBzID0gZyAocCwgdmFfYXJnICh2LGludCkpOworKyAgdmFfZW5kICh2KTsKKysgIHJl dHVybiBzOworK30KKysKKysvKiBPU0YgNC4wIENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2YgYWxt b3N0LUFOU0kgYnkgZGVmYXVsdC4gIEl0IGhhcworKyAgIGZ1bmN0aW9uIHByb3RvdHlwZXMgYW5k IHN0dWZmLCBidXQgbm90ICdceEhIJyBoZXggY2hhcmFjdGVyIGNvbnN0YW50cy4KKysgICBUaGVz ZSBkb24ndCBwcm92b2tlIGFuIGVycm9yIHVuZm9ydHVuYXRlbHksIGluc3RlYWQgYXJlIHNpbGVu dGx5IHRyZWF0ZWQKKysgICBhcyAneCcuICBUaGUgZm9sbG93aW5nIGluZHVjZXMgYW4gZXJyb3Is IHVudGlsIC1zdGQgaXMgYWRkZWQgdG8gZ2V0CisrICAgcHJvcGVyIEFOU0kgbW9kZS4gIEN1cmlv dXNseSAnXHgwMCchPSd4JyBhbHdheXMgY29tZXMgb3V0IHRydWUsIGZvciBhbgorKyAgIGFycmF5 IHNpemUgYXQgbGVhc3QuICBJdCdzIG5lY2Vzc2FyeSB0byB3cml0ZSAnXHgwMCc9PTAgdG8gZ2V0 IHNvbWV0aGluZworKyAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAtc3RkLiAgKi8KKytpbnQgb3Nm NF9jY19hcnJheSBbJ1x4MDAnID09IDAgPyAxIDogLTFdOworKworKy8qIElCTSBDIDYgZm9yIEFJ WCBpcyBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LCBidXQgaXQgcmVwbGFjZXMgbWFjcm8gcGFyYW1l dGVycworKyAgIGluc2lkZSBzdHJpbmdzIGFuZCBjaGFyYWN0ZXIgY29uc3RhbnRzLiAgKi8KKysj ZGVmaW5lIEZPTyh4KSAneCcKKytpbnQgeGxjNl9jY19hcnJheVtGT08oYSkgPT0gJ3gnID8gMSA6 IC0xXTsKKysKKytpbnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsKKytzdHJ1Y3QgczEge2ludCAo KmYpIChpbnQgYSk7fTsKKytzdHJ1Y3QgczIge2ludCAoKmYpIChkb3VibGUgYSk7fTsKKytpbnQg cGFpcm5hbWVzIChpbnQsIGNoYXIgKiosIEZJTEUgKigqKShzdHJ1Y3QgYnVmICosIHN0cnVjdCBz dGF0ICosIGludCksIGludCwgaW50KTsKKytpbnQgYXJnYzsKKytjaGFyICoqYXJndjsKKytpbnQK KyttYWluICgpCisreworK3JldHVybiBmIChlLCBhcmd2LCAwKSAhPSBhcmd2WzBdICB8fCAgZiAo ZSwgYXJndiwgMSkgIT0gYXJndlsxXTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK Kytmb3IgYWNfYXJnIGluICcnIC1xbGFuZ2x2bD1leHRjODkgLXFsYW5nbHZsPWFuc2kgLXN0ZCBc CisrCS1BZSAiLUFhIC1EX0hQVVhfU09VUkNFIiAiLVhjIC1EX19FWFRFTlNJT05TX18iCisrZG8K KysgIENDPSIkYWNfc2F2ZV9DQyAkYWNfYXJnIgorKyAgcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVz dC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewor KwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBh Y19jdl9wcm9nX2NjX2M4OT0kYWNfYXJnCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQorKworKworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dAorKyAgdGVzdCAieCRhY19jdl9wcm9nX2NjX2M4OSIgIT0gInhubyIgJiYgYnJlYWsKKytk b25lCisrcm0gLWYgY29uZnRlc3QuJGFjX2V4dAorK0NDPSRhY19zYXZlX0NDCisrCisrZmkKKysj IEFDX0NBQ0hFX1ZBTAorK2Nhc2UgIngkYWNfY3ZfcHJvZ19jY19jODkiIGluCisrICB4KQorKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub25lIG5lZWRlZCIgPiY1Cisr JGFzX2VjaG8gIm5vbmUgbmVlZGVkIiA+JjY7IH0gOzsKKysgIHhubykKKysgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogdW5zdXBwb3J0ZWQiID4mNQorKyRhc19lY2hvICJ1 bnN1cHBvcnRlZCIgPiY2OyB9IDs7CisrICAqKQorKyAgICBDQz0iJENDICRhY19jdl9wcm9nX2Nj X2M4OSIKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3By b2dfY2NfYzg5IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X3Byb2dfY2NfYzg5IiA+JjY7IH0gOzsK Kytlc2FjCisrCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2Nv bXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKyth Y19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y19jb21waWxlcl9nbnUKKysKKytkZXBjYz0iJENDIiAgIGFtX2NvbXBpbGVyX2xpc3Q9CisrCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2Yg JGRlcGNjIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRk ZXBjYy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBp bGVyX3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBj b21wIjsgdGhlbgorKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUu ICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAorKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3 ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKKysgICMgaW5zdGFuY2Ug aXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCisr ICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMg YHB1dCB0aGUgb3V0cHV0CisrICAjIGluIEQnLgorKyAgbWtkaXIgY29uZnRlc3QuZGlyCisrICAj IENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBp dCBpZiB3ZSdyZQorKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KKysgIGNwICIkYW1f ZGVwY29tcCIgY29uZnRlc3QuZGlyCisrICBjZCBjb25mdGVzdC5kaXIKKysgICMgV2Ugd2lsbCBi dWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQor KyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBG b3IgaW5zdGFuY2UKKysgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8g b3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCisrICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9u LCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KKysgICMgdGhlIGN1cnJlbnQg ZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAorKyAgIyBk aXJlY3RvcnkuCisrICBta2RpciBzdWIKKysKKysgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlPW5vbmUKKysgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVu CisrICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkk L1wxL3AnIDwgLi9kZXBjb21wYAorKyAgZmkKKysgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxl cl9saXN0OyBkbworKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMs IGJlY2F1c2Ugc29tZSBjb21waWxlcnMKKysgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5k ZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAorKyAgICAjIHdlIHNob3VsZCBu b3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCisrICAg ICMKKysgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3Qs IGFzIHRoZSBjb21waWxlciBtYXkKKysgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4g dGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KKysgICAgIyBUaGlzIGhhcHBlbnMg YXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCisrICAgIDogPiBzdWIvY29uZnRlc3Qu YworKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KKysgICAgICBlY2hvICcjaW5jbHVkZSAi Y29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCisrICAgICAgIyBVc2luZyBgOiA+IHN1 Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKKysgICAgICAj IFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgorKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGku aAorKyAgICBkb25lCisrICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9j b25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKKysKKysgICAgY2FzZSAkZGVwbW9kZSBp bgorKyAgICBub3NpZGVlZmZlY3QpCisrICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNt cyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCisrICAgICAgIyBvbmx5IGJlIHVz ZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAorKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2Rl cGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgorKwljb250aW51ZQorKyAgICAgIGVsc2UK KysJYnJlYWsKKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIG5vbmUpIGJyZWFrIDs7CisrICAg IGVzYWMKKysgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9m IHRoZSAiZGFzaG1zdGRvdXQiCisrICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBT dW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5CisrICAgICMgaGFuZGxlIGAtTSAt bycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLgorKyAgICBpZiBkZXBtb2RlPSRkZXBtb2Rl IFwKKysgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD1zdWIvY29uZnRlc3QuJHtP QkpFWFQtb30gXAorKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1 Yi9jb25mdGVzdC5UUG8gXAorKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAtbyBz dWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LmMgXAorKyAgICAgICAgID4vZGV2 L251bGwgMj5jb25mdGVzdC5lcnIgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDEuaCBzdWIv Y29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdHN0 Ni5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgIGdyZXAgc3Vi L2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYm CisrICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhl bgorKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxs IGp1c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vy cm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAgICMgdGhhdCBz YXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAgICAgICMgV2hl biBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisrICAgICAgIyAg IGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1 bWVudCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6 CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBz dXBwb3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIg fHwKKysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9u dWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAgICAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGU9JGRlcG1vZGUKKysgICAgICAgIGJyZWFrCisrICAgICAgZmkKKysgICAgZmkK KysgIGRvbmUKKysKKysgIGNkIC4uCisrICBybSAtcmYgY29uZnRlc3QuZGlyCisrZWxzZQorKyAg YW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorK2ZpCisrCisrZmkKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVz X2NvbXBpbGVyX3R5cGUiID4mNQorKyRhc19lY2hvICIkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGUiID4mNjsgfQorK0NDREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DQ19kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZQorKworKyBpZgorKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5j eV90cmFja2luZyIgIT0geG5vIFwKKysgICYmIHRlc3QgIiRhbV9jdl9DQ19kZXBlbmRlbmNpZXNf Y29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCisrICBhbV9fZmFzdGRlcENDX1RSVUU9CisrICBh bV9fZmFzdGRlcENDX0ZBTFNFPScjJworK2Vsc2UKKysgIGFtX19mYXN0ZGVwQ0NfVFJVRT0nIycK KysgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9CisrZmkKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0 IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVu Y2F0ZSBvdXRwdXQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfU0VEK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAg ICAgICAgICBhY19zY3JpcHQ9cy9hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYS9i YmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIvCisrICAgICBmb3IgYWNfaSBpbiAxIDIg MyA0IDUgNiA3OyBkbworKyAgICAgICBhY19zY3JpcHQ9IiRhY19zY3JpcHQkYXNfbmwkYWNfc2Ny aXB0IgorKyAgICAgZG9uZQorKyAgICAgZWNobyAiJGFjX3NjcmlwdCIgMj4vZGV2L251bGwgfCBz ZWQgOTlxID5jb25mdGVzdC5zZWQKKysgICAgICRhc191bnNldCBhY19zY3JpcHQgfHwgYWNfc2Ny aXB0PQorKyAgICAgaWYgdGVzdCAteiAiJFNFRCI7IHRoZW4KKysgIGFjX3BhdGhfU0VEX2ZvdW5k PWZhbHNlCisrICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVh Y2ggb2YgUFJPR05BTUUtTElTVAorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19wcm9nIGluIHNlZCBnc2Vk OyBkbworKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KKysgICAgICBhY19wYXRoX1NFRD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIK KysgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX1NFRCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhf U0VEIjsgfSB8fCBjb250aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX1NFRCBhbmQgc2Vs ZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgorKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX1NFRAor K2Nhc2UgYCIkYWNfcGF0aF9TRUQiIC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNf Y3ZfcGF0aF9TRUQ9IiRhY19wYXRoX1NFRCIgYWNfcGF0aF9TRURfZm91bmQ9Ojs7CisrKikKKysg IGFjX2NvdW50PTAKKysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgorKyAg d2hpbGUgOgorKyAgZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNv bmZ0ZXN0LnRtcCIKKysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAgICBj cCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJycgPj4gImNvbmZ0 ZXN0Lm5sIgorKyAgICAiJGFjX3BhdGhfU0VEIiAtZiBjb25mdGVzdC5zZWQgPCAiY29uZnRlc3Qu bmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAgICBkaWZmICJjb25m dGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAgIGFj X2NvdW50PWBleHByICRhY19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAk e2FjX3BhdGhfU0VEX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZl IGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2X3BhdGhf U0VEPSIkYWNfcGF0aF9TRUQiCisrICAgICAgYWNfcGF0aF9TRURfbWF4PSRhY19jb3VudAorKyAg ICBmaQorKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5v dWdoCisrICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgZG9uZQorKyAgcm0g LWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7Cisr ZXNhYworKworKyAgICAgICRhY19wYXRoX1NFRF9mb3VuZCAmJiBicmVhayAzCisrICAgIGRvbmUK KysgIGRvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKyAgaWYgdGVzdCAteiAiJGFjX2N2 X3BhdGhfU0VEIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogbm8gYWNjZXB0YWJsZSBzZWQgY291bGQgYmUgZm91bmQgaW4gXCRQQVRIIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBzZWQgY291bGQgYmUgZm91bmQgaW4g XCRQQVRIIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgZmkKKytlbHNl CisrICBhY19jdl9wYXRoX1NFRD0kU0VECisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wYXRoX1NFRCIgPiY1CisrJGFzX2VjaG8gIiRhY19j dl9wYXRoX1NFRCIgPiY2OyB9CisrIFNFRD0iJGFjX2N2X3BhdGhfU0VEIgorKyAgcm0gLWYgY29u ZnRlc3Quc2VkCisrCisrdGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRTRUQgLWUg MXMvXlgvLyIKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMg YW5kIC1lIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMg bG9uZyBsaW5lcyBhbmQgLWUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfR1JF UCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBpZiB0ZXN0IC16ICIkR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfR1JFUF9mb3VuZD1mYWxz ZQorKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNoIG9m IFBST0dOQU1FLUxJU1QKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK Kytmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbgorK2RvCisr ICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAg Zm9yIGFjX3Byb2cgaW4gZ3JlcCBnZ3JlcDsgZG8KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICAgICAgYWNfcGF0aF9HUkVQPSIkYXNf ZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfR1JF UCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfR1JFUCI7IH0gfHwgY29udGludWUKKysjIENoZWNr IGZvciBHTlUgYWNfcGF0aF9HUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisrICAj IENoZWNrIGZvciBHTlUgJGFjX3BhdGhfR1JFUAorK2Nhc2UgYCIkYWNfcGF0aF9HUkVQIiAtLXZl cnNpb24gMj4mMWAgaW4KKysqR05VKikKKysgIGFjX2N2X3BhdGhfR1JFUD0iJGFjX3BhdGhfR1JF UCIgYWNfcGF0aF9HUkVQX2ZvdW5kPTo7OworKyopCisrICBhY19jb3VudD0wCisrICAkYXNfZWNo b19uIDAxMjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKKysgIHdoaWxlIDoKKysgIGRvCisrICAgIGNh dCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCisrICAgIG12ICJj b25mdGVzdC50bXAiICJjb25mdGVzdC5pbiIKKysgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRl c3QubmwiCisrICAgICRhc19lY2hvICdHUkVQJyA+PiAiY29uZnRlc3QubmwiCisrICAgICIkYWNf cGF0aF9HUkVQIiAtZSAnR1JFUCQnIC1lICctKGNhbm5vdCBtYXRjaCktJyA8ICJjb25mdGVzdC5u bCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCisrICAgIGRpZmYgImNvbmZ0 ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKKysgICAgYWNf Y291bnQ9YGV4cHIgJGFjX2NvdW50ICsgMWAKKysgICAgaWYgdGVzdCAkYWNfY291bnQgLWd0ICR7 YWNfcGF0aF9HUkVQX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZl IGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2X3BhdGhf R1JFUD0iJGFjX3BhdGhfR1JFUCIKKysgICAgICBhY19wYXRoX0dSRVBfbWF4PSRhY19jb3VudAor KyAgICBmaQorKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4g ZW5vdWdoCisrICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgZG9uZQorKyAg cm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7 CisrZXNhYworKworKyAgICAgICRhY19wYXRoX0dSRVBfZm91bmQgJiYgYnJlYWsgMworKyAgICBk b25lCisrICBkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRlc3QgLXogIiRh Y19jdl9wYXRoX0dSRVAiOyB0aGVuCisrICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBubyBhY2NlcHRhYmxlIGdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9T RVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8g YWNjZXB0YWJsZSBncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vz ci94cGc0L2JpbiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisr ZWxzZQorKyAgYWNfY3ZfcGF0aF9HUkVQPSRHUkVQCisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wYXRoX0dSRVAiID4mNQorKyRhc19lY2hv ICIkYWNfY3ZfcGF0aF9HUkVQIiA+JjY7IH0KKysgR1JFUD0iJGFjX2N2X3BhdGhfR1JFUCIKKysK KysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGVncmVwIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZWdyZXAuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3BhdGhfRUdSRVArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgaWYgZWNobyBhIHwgJEdSRVAgLUUgJyhhfGIpJyA+L2Rldi9u dWxsIDI+JjEKKysgICB0aGVuIGFjX2N2X3BhdGhfRUdSRVA9IiRHUkVQIC1FIgorKyAgIGVsc2UK KysgICAgIGlmIHRlc3QgLXogIiRFR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfRUdSRVBfZm91bmQ9 ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFj aCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4KKytk bworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KysgIGZvciBhY19wcm9nIGluIGVncmVwOyBkbworKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBhY19wYXRoX0VHUkVQPSIkYXNf ZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfRUdS RVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0VHUkVQIjsgfSB8fCBjb250aW51ZQorKyMgQ2hl Y2sgZm9yIEdOVSBhY19wYXRoX0VHUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisr ICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfRUdSRVAKKytjYXNlIGAiJGFjX3BhdGhfRUdSRVAi IC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3ZfcGF0aF9FR1JFUD0iJGFjX3Bh dGhfRUdSRVAiIGFjX3BhdGhfRUdSRVBfZm91bmQ9Ojs7CisrKikKKysgIGFjX2NvdW50PTAKKysg ICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgorKyAgd2hpbGUgOgorKyAgZG8K KysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKKysg ICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAgICBjcCAiY29uZnRlc3QuaW4i ICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJ0VHUkVQJyA+PiAiY29uZnRlc3QubmwiCisr ICAgICIkYWNfcGF0aF9FR1JFUCIgJ0VHUkVQJCcgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qu b3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25m dGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAgIGFjX2NvdW50PWBleHByICRh Y19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfRUdSRVBf bWF4LTB9OyB0aGVuCisrICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAg bG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCisrICAgICAgYWNfY3ZfcGF0aF9FR1JFUD0iJGFjX3Bh dGhfRUdSRVAiCisrICAgICAgYWNfcGF0aF9FR1JFUF9tYXg9JGFjX2NvdW50CisrICAgIGZpCisr ICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKKysg ICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCisrICBkb25lCisrICBybSAtZiBjb25m dGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKKytlc2FjCisr CisrICAgICAgJGFjX3BhdGhfRUdSRVBfZm91bmQgJiYgYnJlYWsgMworKyAgICBkb25lCisrICBk b25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRo X0VHUkVQIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog bm8gYWNjZXB0YWJsZSBlZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRP Ui91c3IveHBnNC9iaW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRh YmxlIGVncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0 L2JpbiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisrZWxzZQor KyAgYWNfY3ZfcGF0aF9FR1JFUD0kRUdSRVAKKytmaQorKworKyAgIGZpCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0aF9FR1JFUCIgPiY1CisrJGFz X2VjaG8gIiRhY19jdl9wYXRoX0VHUkVQIiA+JjY7IH0KKysgRUdSRVA9IiRhY19jdl9wYXRoX0VH UkVQIgorKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZmdy ZXAiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBmZ3JlcC4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7YWNfY3ZfcGF0aF9GR1JFUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiBlY2hvICdhYipjJyB8ICRHUkVQIC1GICdh YipjJyA+L2Rldi9udWxsIDI+JjEKKysgICB0aGVuIGFjX2N2X3BhdGhfRkdSRVA9IiRHUkVQIC1G IgorKyAgIGVsc2UKKysgICAgIGlmIHRlc3QgLXogIiRGR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhf RkdSRVBfZm91bmQ9ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQg dGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3Iv eHBnNC9iaW4KKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KKysgIGZvciBhY19wcm9nIGluIGZncmVwOyBkbworKyAgICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBhY19wYXRo X0ZHUkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAi JGFjX3BhdGhfRkdSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0ZHUkVQIjsgfSB8fCBjb250 aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0ZHUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQg aXMgZm91bmQuCisrICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfRkdSRVAKKytjYXNlIGAiJGFj X3BhdGhfRkdSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3ZfcGF0aF9G R1JFUD0iJGFjX3BhdGhfRkdSRVAiIGFjX3BhdGhfRkdSRVBfZm91bmQ9Ojs7CisrKikKKysgIGFj X2NvdW50PTAKKysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgorKyAgd2hp bGUgOgorKyAgZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0 ZXN0LnRtcCIKKysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAgICBjcCAi Y29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJ0ZHUkVQJyA+PiAiY29u ZnRlc3QubmwiCisrICAgICIkYWNfcGF0aF9GR1JFUCIgRkdSRVAgPCAiY29uZnRlc3QubmwiID4i Y29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAgICBkaWZmICJjb25mdGVzdC5v dXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAgIGFjX2NvdW50 PWBleHByICRhY19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3Bh dGhfRkdSRVBfbWF4LTB9OyB0aGVuCisrICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQg YnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCisrICAgICAgYWNfY3ZfcGF0aF9GR1JF UD0iJGFjX3BhdGhfRkdSRVAiCisrICAgICAgYWNfcGF0aF9GR1JFUF9tYXg9JGFjX2NvdW50Cisr ICAgIGZpCisrICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBl bm91Z2gKKysgICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCisrICBkb25lCisrICBy bSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsK Kytlc2FjCisrCisrICAgICAgJGFjX3BhdGhfRkdSRVBfZm91bmQgJiYgYnJlYWsgMworKyAgICBk b25lCisrICBkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRlc3QgLXogIiRh Y19jdl9wYXRoX0ZHUkVQIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogbm8gYWNjZXB0YWJsZSBmZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRI X1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBu byBhY2NlcHRhYmxlIGZncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9S L3Vzci94cGc0L2JpbiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZp CisrZWxzZQorKyAgYWNfY3ZfcGF0aF9GR1JFUD0kRkdSRVAKKytmaQorKworKyAgIGZpCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0aF9GR1JFUCIg PiY1CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX0ZHUkVQIiA+JjY7IH0KKysgRkdSRVA9IiRhY19j dl9wYXRoX0ZHUkVQIgorKworKworK3Rlc3QgLXogIiRHUkVQIiAmJiBHUkVQPWdyZXAKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysjIENo ZWNrIHdoZXRoZXIgLS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2du dV9sZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3QgIiR3 aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXllcworK2Vsc2UKKysgIHdpdGhfZ251X2xkPW5v CisrZmkKKysKKythY19wcm9nPWxkCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICMg Q2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQyIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDLi4uICIgPiY2OyB9CisrICBj YXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGlu ZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0Mg LXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAg IGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysg IGNhc2UgJGFjX3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtc XC9dKiB8ID86W1xcL10qKQorKyAgICAgIHJlX2RpcmVsdD0nL1teL11bXi9dKi9cLlwuLycKKysg ICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKKysgICAgICBhY19wcm9nPWAk RUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKKysgICAgICB3aGlsZSAkRUNITyAi JGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRvCisrCWFj X3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAorKyAgICAgIGRv bmUKKysgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKKysgICAgICA7OworKyAg IiIpCisrICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0ND LgorKyAgICBhY19wcm9nPWxkCisrICAgIDs7CisrICAqKQorKyAgICAjIElmIGl0IGlzIHJlbGF0 aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCisrICAgIHdpdGhfZ251 X2xkPXVua25vd24KKysgICAgOzsKKysgIGVzYWMKKytlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSB5ZXM7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig R05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4uICIgPiY2OyB9 CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBub24t R05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igbm9uLUdOVSBsZC4uLiAiID4m NjsgfQorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0iID0gc2V0OyB0aGVuCisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLXogIiRMRCI7 IHRoZW4KKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgZm9y IGFjX2RpciBpbiAkUEFUSDsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgIHRlc3Qg LXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisrICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3By b2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgorKyAgICAg IGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCisrICAgICAgIyBDaGVjayB0byBzZWUg aWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAorKyAg ICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBhY2NlcHQg LXYuCisrICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhh dCB3ZSBwcmVmZXIuCisrICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwvZGV2 L251bGxgIGluCisrICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCisrCXRlc3QgIiR3aXRoX2du dV9sZCIgIT0gbm8gJiYgYnJlYWsKKysJOzsKKysgICAgICAqKQorKwl0ZXN0ICIkd2l0aF9nbnVf bGQiICE9IHllcyAmJiBicmVhaworKwk7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgIGRvbmUK KysgIElGUz0iJGx0X3NhdmVfaWZzIgorK2Vsc2UKKysgIGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrZmkKKytmaQorKwor K0xEPSIkbHRfY3ZfcGF0aF9MRCIKKytpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTEQiID4mNQorKyRhc19lY2hvICIkTEQiID4m NjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrdGVzdCAteiAiJExEIiAmJiB7IHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBc JFBBVEgiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGxkIGZv dW5kIGluIFwkUEFUSCIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBH TlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMg R05VIGxkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2dudV9sZCtzZXR9IiA9 IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAjIEkn ZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMg b25seSBhY2NlcHQgLXYuCisrY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysqR05V KiB8ICond2l0aCBCRkQnKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPXllcworKyAgOzsKKysqKQor KyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KKysgIDs7CisrZXNhYworK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251X2xkIiA+JjUKKyskYXNfZWNo byAiJGx0X2N2X3Byb2dfZ251X2xkIiA+JjY7IH0KKyt3aXRoX2dudV9sZD0kbHRfY3ZfcHJvZ19n bnVfbGQKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0p IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgQlNELSBvciBNUy1jb21wYXRpYmxlIG5h bWUgbGlzdGVyIChubSkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTk0rc2V0 fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg aWYgdGVzdCAtbiAiJE5NIjsgdGhlbgorKyAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCisrICBsdF9jdl9wYXRoX05NPSIkTk0iCisrZWxzZQorKyAgbHRfbm1fdG9fY2hlY2s9IiR7 YWNfdG9vbF9wcmVmaXh9bm0iCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiICYmIHRl c3QgIiRidWlsZCIgPSAiJGhvc3QiOyB0aGVuCisrICAgIGx0X25tX3RvX2NoZWNrPSIkbHRfbm1f dG9fY2hlY2sgbm0iCisrICBmaQorKyAgZm9yIGx0X3RtcF9ubSBpbiAkbHRfbm1fdG9fY2hlY2s7 IGRvCisrICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgICBm b3IgYWNfZGlyIGluICRQQVRIIC91c3IvY2NzL2Jpbi9lbGYgL3Vzci9jY3MvYmluIC91c3IvdWNi IC9iaW47IGRvCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgdGVzdCAteiAiJGFj X2RpciIgJiYgYWNfZGlyPS4KKysgICAgICB0bXBfbm09IiRhY19kaXIvJGx0X3RtcF9ubSIKKysg ICAgICBpZiB0ZXN0IC1mICIkdG1wX25tIiB8fCB0ZXN0IC1mICIkdG1wX25tJGFjX2V4ZWV4dCIg OyB0aGVuCisrCSMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBubSBhY2NlcHRzIGEgQlNELWNvbXBhdCBm bGFnLgorKwkjIEFkZGluZyB0aGUgYHNlZCAxcScgcHJldmVudHMgZmFsc2UgcG9zaXRpdmVzIG9u IEhQLVVYLCB3aGljaCBzYXlzOgorKwkjICAgbm06IHVua25vd24gb3B0aW9uICJCIiBpZ25vcmVk CisrCSMgVHJ1NjQncyBubSBjb21wbGFpbnMgdGhhdCAvZGV2L251bGwgaXMgYW4gaW52YWxpZCBv YmplY3QgZmlsZQorKwljYXNlIGAiJHRtcF9ubSIgLUIgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFx J2AgaW4KKysJKi9kZXYvbnVsbCogfCAqJ0ludmFsaWQgZmlsZSBvciBvYmplY3QgdHlwZScqKQor KwkgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLUIiCisrCSAgYnJlYWsKKysJICA7OworKwkqKQor KwkgIGNhc2UgYCIkdG1wX25tIiAtcCAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgorKwkg ICovZGV2L251bGwqKQorKwkgICAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtcCIKKysJICAgIGJy ZWFrCisrCSAgICA7OworKwkgICopCisrCSAgICBsdF9jdl9wYXRoX05NPSR7bHRfY3ZfcGF0aF9O TT0iJHRtcF9ubSJ9ICMga2VlcCB0aGUgZmlyc3QgbWF0Y2gsIGJ1dAorKwkgICAgY29udGludWUg IyBzbyB0aGF0IHdlIGNhbiB0cnkgdG8gZmluZCBvbmUgdGhhdCBzdXBwb3J0cyBCU0QgZmxhZ3MK KysJICAgIDs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICBkb25l CisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgZG9uZQorKyAgOiAke2x0X2N2X3BhdGhfTk09 bm99CisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9j dl9wYXRoX05NIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3BhdGhfTk0iID4mNjsgfQorK2lmIHRl c3QgIiRsdF9jdl9wYXRoX05NIiAhPSAibm8iOyB0aGVuCisrICBOTT0iJGx0X2N2X3BhdGhfTk0i CisrZWxzZQorKyAgIyBEaWRuJ3QgZmluZCBhbnkgQlNEIGNvbXBhdGlibGUgbmFtZSBsaXN0ZXIs IGxvb2sgZm9yIGR1bXBiaW4uCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVu CisrICBmb3IgYWNfcHJvZyBpbiAiZHVtcGJpbiAtc3ltYm9scyIgImxpbmsgLWR1bXAgLXN5bWJv bHMiCisrICBkbworKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3By ZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytz ZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3By b2dfRFVNUEJJTitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkRFVNUEJJTiI7IHRoZW4KKysgIGFjX2N2X3Byb2df RFVNUEJJTj0iJERVTVBCSU4iICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3Byb2dfRFVNUEJJTj0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCisrICAgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVf SUZTCisrCisrZmkKKytmaQorK0RVTVBCSU49JGFjX2N2X3Byb2dfRFVNUEJJTgorK2lmIHRlc3Qg LW4gIiREVU1QQklOIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJERVTVBCSU4iID4mNQorKyRhc19lY2hvICIkRFVNUEJJTiIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJu byIgPiY2OyB9CisrZmkKKysKKysKKysgICAgdGVzdCAtbiAiJERVTVBCSU4iICYmIGJyZWFrCisr ICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIkRFVNUEJJTiI7IHRoZW4KKysgIGFjX2N0X0RVTVBC SU49JERVTVBCSU4KKysgIGZvciBhY19wcm9nIGluICJkdW1wYmluIC1zeW1ib2xzIiAibGluayAt ZHVtcCAtc3ltYm9scyIKKytkbworKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNf cHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15 ICRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0RVTVBCSU4rc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYg dGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0RVTVBC SU49IiRhY19jdF9EVU1QQklOIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytl bHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIg aW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgor KyAgICBhY19jdl9wcm9nX2FjX2N0X0RVTVBCSU49IiRhY19wcm9nIgorKyAgICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQor KyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKwor K2ZpCisrZmkKKythY19jdF9EVU1QQklOPSRhY19jdl9wcm9nX2FjX2N0X0RVTVBCSU4KKytpZiB0 ZXN0IC1uICIkYWNfY3RfRFVNUEJJTiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdF9EVU1QQklOIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0RVTVBC SU4iID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIk YWNfY3RfRFVNUEJJTiIgJiYgYnJlYWsKKytkb25lCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0RV TVBCSU4iID0geDsgdGhlbgorKyAgICBEVU1QQklOPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRj cm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdp dGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBj cm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9v bF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBEVU1QQklOPSRhY19jdF9EVU1QQklOCisrICBm aQorK2ZpCisrCisrCisrICBpZiB0ZXN0ICIkRFVNUEJJTiIgIT0gIjoiOyB0aGVuCisrICAgIE5N PSIkRFVNUEJJTiIKKysgIGZpCisrZmkKKyt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCisrCisrCisr CisrCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHRoZSBuYW1l IGxpc3RlciAoJE5NKSBpbnRlcmZhY2UiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHRoZSBu YW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2UuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2 X25tX2ludGVyZmFjZStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBsdF9jdl9ubV9pbnRlcmZhY2U9IkJTRCBubSIKKysgIGVjaG8gImlu dCBzb21lX3ZhcmlhYmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgKGV2YWwgZWNobyAi XCJcJGFzX21lOjU1NTQ6ICRhY19jb21waWxlXCIiID4mNSkKKysgIChldmFsICIkYWNfY29tcGls ZSIgMj5jb25mdGVzdC5lcnIpCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgKGV2YWwgZWNo byAiXCJcJGFzX21lOjU1NTc6ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiY1 KQorKyAgKGV2YWwgIiROTSBcImNvbmZ0ZXN0LiRhY19vYmpleHRcIiIgMj5jb25mdGVzdC5lcnIg PiBjb25mdGVzdC5vdXQpCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgKGV2YWwgZWNobyAi XCJcJGFzX21lOjU1NjA6IG91dHB1dFwiIiA+JjUpCisrICBjYXQgY29uZnRlc3Qub3V0ID4mNQor KyAgaWYgJEdSRVAgJ0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQgPiAvZGV2 L251bGw7IHRoZW4KKysgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgorKyAgZmkK KysgIHJtIC1mIGNvbmZ0ZXN0KgorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGx0X2N2X25tX2ludGVyZmFjZSIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9ubV9pbnRl cmZhY2UiID4mNjsgfQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3 aGV0aGVyIGxuIC1zIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGxu IC1zIHdvcmtzLi4uICIgPiY2OyB9CisrTE5fUz0kYXNfbG5fcworK2lmIHRlc3QgIiRMTl9TIiA9 ICJsbiAtcyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHll cyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8sIHVzaW5nICRMTl9TIiA+JjUKKyskYXNfZWNobyAibm8s IHVzaW5nICRMTl9TIiA+JjY7IH0KKytmaQorKworKyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGgg b2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGlu ZSBhcmd1bWVudHMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19tYXhfY21kX2xl bitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICAgIGk9MAorKyAgdGVzdHN0cmluZz0iQUJDRCIKKysKKysgIGNhc2UgJGJ1aWxkX29zIGlu CisrICBtc2Rvc2RqZ3BwKikKKysgICAgIyBPbiBESkdQUCwgdGhpcyB0ZXN0IGNhbiBibG93IHVw IHByZXR0eSBiYWRseSBkdWUgdG8gcHJvYmxlbXMgaW4gbGliYworKyAgICAjIChhbnkgc2luZ2xl IGFyZ3VtZW50IGV4Y2VlZGluZyAyMDAwIGJ5dGVzIGNhdXNlcyBhIGJ1ZmZlciBvdmVycnVuCisr ICAgICMgZHVyaW5nIGdsb2IgZXhwYW5zaW9uKS4gIEV2ZW4gaWYgaXQgd2VyZSBmaXhlZCwgdGhl IHJlc3VsdCBvZiB0aGlzCisrICAgICMgY2hlY2sgd291bGQgYmUgbGFyZ2VyIHRoYW4gaXQgc2hv dWxkIGJlLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTIyODg7ICAgICMgMTJLIGlzIGFi b3V0IHJpZ2h0CisrICAgIDs7CisrCisrICBnbnUqKQorKyAgICAjIFVuZGVyIEdOVSBIdXJkLCB0 aGlzIHRlc3QgaXMgbm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlcmUgaXMKKysgICAgIyBubyBsaW1p dCB0byB0aGUgbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisrICAgICMgTGlidG9v bCB3aWxsIGludGVycHJldCAtMSBhcyBubyBsaW1pdCB3aGF0c29ldmVyCisrICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj0tMTsKKysgICAgOzsKKysKKysgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdj YyopCisrICAgICMgT24gV2luOXgvTUUsIHRoaXMgdGVzdCBibG93cyB1cCAtLSBpdCBzdWNjZWVk cywgYnV0IHRha2VzCisrICAgICMgYWJvdXQgNSBtaW51dGVzIGFzIHRoZSB0ZXN0c3RyaW5nIGdy b3dzIGV4cG9uZW50aWFsbHkuCisrICAgICMgV29yc2UsIHNpbmNlIDl4L01FIGFyZSBub3QgcHJl LWVtcHRpdmVseSBtdWx0aXRhc2tpbmcsCisrICAgICMgeW91IGVuZCB1cCB3aXRoIGEgImZyb3pl biIgY29tcHV0ZXIsIGV2ZW4gdGhvdWdoIHdpdGggcGF0aWVuY2UKKysgICAgIyB0aGUgdGVzdCBl dmVudHVhbGx5IHN1Y2NlZWRzICh3aXRoIGEgbWF4IGxpbmUgbGVuZ3RoIG9mIDI1NmspLgorKyAg ICAjIEluc3RlYWQsIGxldCdzIGp1c3QgcHVudDogdXNlIHRoZSBtaW5pbXVtIGxpbmVsZW5ndGgg cmVwb3J0ZWQgYnkKKysgICAgIyBhbGwgb2YgdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXM6IDgxOTIg KG9uIE5ULzJLL1hQKS4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7CisrICAgIDs7 CisrCisrICBhbWlnYW9zKikKKysgICAgIyBPbiBBbWlnYU9TIHdpdGggcGRrc2gsIHRoaXMgdGVz dCB0YWtlcyBob3VycywgbGl0ZXJhbGx5LgorKyAgICAjIFNvIHdlIGp1c3QgcHVudCBhbmQgdXNl IGEgbWluaW11bSBsaW5lIGxlbmd0aCBvZiA4MTkyLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49ODE5MjsKKysgICAgOzsKKysKKysgIG5ldGJzZCogfCBmcmVlYnNkKiB8IG9wZW5ic2QqIHwg ZGFyd2luKiB8IGRyYWdvbmZseSopCisrICAgICMgVGhpcyBoYXMgYmVlbiBhcm91bmQgc2luY2Ug Mzg2QlNELCBhdCBsZWFzdC4gIExpa2VseSBmdXJ0aGVyLgorKyAgICBpZiB0ZXN0IC14IC9zYmlu L3N5c2N0bDsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3NiaW4vc3lzY3Rs IC1uIGtlcm4uYXJnbWF4YAorKyAgICBlbGlmIHRlc3QgLXggL3Vzci9zYmluL3N5c2N0bDsgdGhl bgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3Vzci9zYmluL3N5c2N0bCAtbiBrZXJu LmFyZ21heGAKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj02NTUzNgkj IHVzYWJsZSBkZWZhdWx0IGZvciBhbGwgQlNEcworKyAgICBmaQorKyAgICAjIEFuZCBhZGQgYSBz YWZldHkgem9uZQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19t YXhfY21kX2xlbiBcLyA0YAorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2 X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICA7OworKworKyAgaW50ZXJpeCopCisrICAgICMg V2Uga25vdyB0aGUgdmFsdWUgMjYyMTQ0IGFuZCBoYXJkY29kZSBpdCB3aXRoIGEgc2FmZXR5IHpv bmUgKGxpa2UgQlNEKQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTk2NjA4CisrICAgIDs7 CisrCisrICBvc2YqKQorKyAgICAjIERyLiBIYW5zIEVra2VoYXJkIFBsZXNzZXIgcmVwb3J0cyBz ZWVpbmcgYSBrZXJuZWwgcGFuaWMgcnVubmluZyBjb25maWd1cmUKKysgICAgIyBkdWUgdG8gdGhp cyB0ZXN0IHdoZW4gZXhlY19kaXNhYmxlX2FyZ19saW1pdCBpcyAxIG9uIFRydTY0LiBJdCBpcyBu b3QKKysgICAgIyBuaWNlIHRvIGNhdXNlIGtlcm5lbCBwYW5pY3Mgc28gbGV0cyBhdm9pZCB0aGUg bG9vcCBiZWxvdy4KKysgICAgIyBGaXJzdCBzZXQgYSByZWFzb25hYmxlIGRlZmF1bHQuCisrICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj0xNjM4NAorKyAgICAjCisrICAgIGlmIHRlc3QgLXggL3Ni aW4vc3lzY29uZmlnOyB0aGVuCisrICAgICAgY2FzZSBgL3NiaW4vc3lzY29uZmlnIC1xIHByb2Mg ZXhlY19kaXNhYmxlX2FyZ19saW1pdGAgaW4KKysgICAgICAgICoxKikgbHRfY3Zfc3lzX21heF9j bWRfbGVuPS0xIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgICA7OworKyAgc2NvMy4ydjUq KQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTAyNDAwCisrICAgIDs7CisrICBzeXN2NSog fCBzY281djYqIHwgc3lzdjQuMnV3MiopCisrICAgIGthcmdtYXg9YGdyZXAgQVJHX01BWCAvZXRj L2NvbmYvY2YuZC9zdHVuZSAyPi9kZXYvbnVsbGAKKysgICAgaWYgdGVzdCAtbiAiJGthcmdtYXgi OyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBlY2hvICRrYXJnbWF4IHwgc2Vk ICdzLy4qWwkgXS8vJ2AKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0z Mjc2OAorKyAgICBmaQorKyAgICA7OworKyAgKikKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PWAoZ2V0Y29uZiBBUkdfTUFYKSAyPiAvZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4gIiRsdF9j dl9zeXNfbWF4X2NtZF9sZW4iOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBl eHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKKysgICAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICBlbHNlCisrICAg ICAgIyBNYWtlIHRlc3RzdHJpbmcgYSBsaXR0bGUgYmlnZ2VyIGJlZm9yZSB3ZSBkbyBhbnl0aGlu ZyB3aXRoIGl0LgorKyAgICAgICMgYSAxSyBzdHJpbmcgc2hvdWxkIGJlIGEgcmVhc29uYWJsZSBz dGFydC4KKysgICAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNiA3IDggOyBkbworKyAgICAgICAgdGVz dHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCisrICAgICAgZG9uZQorKyAgICAgIFNIRUxM PSR7U0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19CisrICAgICAgIyBJZiB0ZXN0IGlzIG5v dCBhIHNoZWxsIGJ1aWx0LWluLCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5nIGEKKysg ICAgICAjIG1heGltdW0gbGVuZ3RoIHRoYXQgaXMgb25seSBoYWxmIG9mIHRoZSBhY3R1YWwgbWF4 aW11bSBsZW5ndGgsIGJ1dAorKyAgICAgICMgd2UgY2FuJ3QgdGVsbC4KKysgICAgICB3aGlsZSB7 IHRlc3QgIlgiYCRTSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8gIlgkdGVzdHN0cmluZyR0ZXN0c3Ry aW5nIiAyPi9kZXYvbnVsbGAgXAorKwkgICAgICAgICA9ICJYWCR0ZXN0c3RyaW5nJHRlc3RzdHJp bmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAgICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1C IHNob3VsZCBiZSBlbm91Z2gKKysgICAgICBkbworKyAgICAgICAgaT1gZXhwciAkaSArIDFgCisr ICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKKysgICAgICBkb25lCisr ICAgICAgIyBPbmx5IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxvb3AuCisr ICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAy PiYxYAorKyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZl dHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbgorKyAgICAgICMgbWFz c2l2ZSBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0g dG8gdGhlCisrICAgICAgIyBsaW5rZXIuICBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIgaXMgYSB1 c2FibGUgdmFsdWUuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9z eXNfbWF4X2NtZF9sZW4gXC8gMmAKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysKKytmaQor KworK2lmIHRlc3QgLW4gJGx0X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iID4mNQor KyRhc19lY2hvICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIiA+JjY7IH0KKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub25lIiA+JjUKKyskYXNfZWNobyAibm9u ZSIgPiY2OyB9CisrZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCisrCisr CisrCisrCisrCisrCisrOiAke0NQPSJjcCAtZiJ9CisrOiAke01WPSJtdiAtZiJ9CisrOiAke1JN PSJybSAtZiJ9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo ZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHMiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNv bnN0cnVjdHMuLi4gIiA+JjY7IH0KKysjIFRyeSBzb21lIFhTSSBmZWF0dXJlcworK3hzaV9zaGVs bD1ubworKyggX2x0X2R1bW15PSJhL2IvYyIKKysgIHRlc3QgIiR7X2x0X2R1bW15IyMqL30sJHtf bHRfZHVtbXklLyp9LCIke19sdF9kdW1teSUiJF9sdF9kdW1teSJ9LCBcCisrICAgICAgPSBjLGEv YiwsIFwKKysgICAgJiYgZXZhbCAndGVzdCAkKCggMSArIDEgKSkgLWVxIDIgXAorKyAgICAmJiB0 ZXN0ICIkeyNfbHRfZHVtbXl9IiAtZXEgNScgKSA+L2Rldi9udWxsIDI+JjEgXAorKyAgJiYgeHNp X3NoZWxsPXllcworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICR4c2lfc2hl bGwiID4mNQorKyRhc19lY2hvICIkeHNpX3NoZWxsIiA+JjY7IH0KKysKKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMg XCIrPVwiIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRl cnN0YW5kcyBcIis9XCIuLi4gIiA+JjY7IH0KKytsdF9zaGVsbF9hcHBlbmQ9bm8KKysoIGZvbz1i YXI7IHNldCBmb28gYmF6OyBldmFsICIkMSs9XCQyIiAmJiB0ZXN0ICIkZm9vIiA9IGJhcmJheiAp IFwKKysgICAgPi9kZXYvbnVsbCAyPiYxIFwKKysgICYmIGx0X3NoZWxsX2FwcGVuZD15ZXMKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfc2hlbGxfYXBwZW5kIiA+JjUK KyskYXNfZWNobyAiJGx0X3NoZWxsX2FwcGVuZCIgPiY2OyB9CisrCisrCisraWYgKCAoTUFJTD02 MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBsdF91bnNl dD11bnNldAorK2Vsc2UKKysgIGx0X3Vuc2V0PWZhbHNlCisrZmkKKysKKysKKysKKysKKysKKysj IHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2FzZSBgZWNobyBYfHRyIFggJ1wxMDEnYCBpbgorKyBB KSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAgICAjIFxuIGlzIG5vdCBpbnRlcnByZXRlZCBjb3Jy ZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCisrICBsdF9TUDJOTD0ndHIgXDA0MCBcMDEy JworKyAgbHRfTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJworKyAgOzsKKysgKikgIyBFQkNE SUMgYmFzZWQgc3lzdGVtCisrICBsdF9TUDJOTD0ndHIgXDEwMCBcbicKKysgIGx0X05MMlNQPSd0 ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytlc2FjCisrCisrCisrCisrCisrCisrCisrCisrCisr CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRv IHJlbG9hZCBvYmplY3QgZmlsZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkTEQg b3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X2xkX3JlbG9hZF9mbGFnK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X2xkX3JlbG9hZF9mbGFnPSctcicKKytmaQorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9sZF9yZWxvYWRfZmxhZyIg PiY1CisrJGFzX2VjaG8gIiRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY2OyB9CisrcmVsb2FkX2Zs YWc9JGx0X2N2X2xkX3JlbG9hZF9mbGFnCisrY2FzZSAkcmVsb2FkX2ZsYWcgaW4KKysiIiB8ICIg IiopIDs7CisrKikgcmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7CisrZXNhYworK3JlbG9h ZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKytjYXNlICRo b3N0X29zIGluCisrICBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KyAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8g JG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZWxzZQorKyAgICAgIHJlbG9hZF9jbWRzPSckTEQk cmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZmkKKysgICAgOzsKKytl c2FjCisrCisrCisrCisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJl Zml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJl Zml4fW9iamR1bXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3Nl dCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW9iamR1bXA7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3By b2dfT0JKRFVNUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkT0JKRFVNUCI7IHRoZW4KKysgIGFjX2N2X3Byb2df T0JKRFVNUD0iJE9CSkRVTVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3Byb2dfT0JKRFVNUD0iJHthY190b29sX3ByZWZpeH1vYmpkdW1wIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZl X0lGUworKworK2ZpCisrZmkKKytPQkpEVU1QPSRhY19jdl9wcm9nX09CSkRVTVAKKytpZiB0ZXN0 IC1uICIkT0JKRFVNUCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRPQkpEVU1QIiA+JjUKKyskYXNfZWNobyAiJE9CSkRVTVAiID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAi bm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19PQkpE VU1QIjsgdGhlbgorKyAgYWNfY3RfT0JKRFVNUD0kT0JKRFVNUAorKyAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICJvYmpkdW1wIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KKytzZXQgZHVtbXkgb2JqZHVtcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19j dF9PQkpEVU1QK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9PQkpEVU1QIjsgdGhlbgorKyAgYWNfY3Zf cHJvZ19hY19jdF9PQkpEVU1QPSIkYWNfY3RfT0JKRFVNUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QPSJvYmpkdW1wIgor KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRh c19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9PQkpEVU1QPSRhY19jdl9wcm9nX2FjX2N0 X09CSkRVTVAKKytpZiB0ZXN0IC1uICIkYWNfY3RfT0JKRFVNUCI7IHRoZW4KKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9PQkpEVU1QIiA+JjUKKyskYXNfZWNo byAiJGFjX2N0X09CSkRVTVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr ICBpZiB0ZXN0ICJ4JGFjX2N0X09CSkRVTVAiID0geDsgdGhlbgorKyAgICBPQkpEVU1QPSJmYWxz ZSIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBp bgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNy b3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgT0JK RFVNUD0kYWNfY3RfT0JKRFVNUAorKyAgZmkKKytlbHNlCisrICBPQkpEVU1QPSIkYWNfY3ZfcHJv Z19PQkpEVU1QIgorK2ZpCisrCisrdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVt cAorKworKworKworKworKworKworKworKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllcy4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Qrc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRf Y3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCisrbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2Zp bGU9CisrbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J3Vua25vd24nCisrIyBOZWVkIHRvIHNl dCB0aGUgcHJlY2VkaW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0Cisr IyBpbnRlcmxpYnJhcnkgZGVwZW5kZW5jaWVzLgorKyMgJ25vbmUnIC0tIGRlcGVuZGVuY2llcyBu b3Qgc3VwcG9ydGVkLgorKyMgYHVua25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRvY3VtZW50 cyB0aGF0IHdlIHJlYWxseSBkb24ndCBrbm93LgorKyMgJ3Bhc3NfYWxsJyAtLSBhbGwgZGVwZW5k ZW5jaWVzIHBhc3NlZCB3aXRoIG5vIGNoZWNrcy4KKysjICd0ZXN0X2NvbXBpbGUnIC0tIGNoZWNr IGJ5IG1ha2luZyB0ZXN0IHByb2dyYW0uCisrIyAnZmlsZV9tYWdpYyBbW3JlZ2V4XV0nIC0tIGNo ZWNrIGJ5IGxvb2tpbmcgZm9yIGZpbGVzIGluIGxpYnJhcnkgcGF0aAorKyMgd2hpY2ggcmVzcG9u ZHMgdG8gdGhlICRmaWxlX21hZ2ljX2NtZCB3aXRoIGEgZ2l2ZW4gZXh0ZW5kZWQgcmVnZXguCisr IyBJZiB5b3UgaGF2ZSBgZmlsZScgb3IgZXF1aXZhbGVudCBvbiB5b3VyIHN5c3RlbSBhbmQgeW91 J3JlIG5vdCBzdXJlCisrIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2lsbCAqYWx3YXlzKiB3b3JrLCB5 b3UgcHJvYmFibHkgd2FudCB0aGlzIG9uZS4KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4WzQt OV0qKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisr YmVvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysK Kytic2RpWzQ1XSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBF TEYgWzAtOV1bMC05XSotYml0IFtNTF1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiknCisr ICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKKysgIGx0X2N2X2ZpbGVf bWFnaWNfdGVzdF9maWxlPS9zaGxpYi9saWJjLnNvCisrICA7OworKworK2N5Z3dpbiopCisrICAj IGZ1bmNfd2luMzJfbGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0bWFpbi5z aAorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZl IGltcG9ydHxeeDg2IERMTCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xp YmlkJworKyAgOzsKKysKKyttaW5ndyogfCBwdzMyKikKKysgICMgQmFzZSBNU1lTL01pbkdXIGRv IG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKKysgICMgZnVuY193aW4z Ml9saWJpZCBzaGVsbCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29i amR1bXAnLAorKyAgIyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJlY2F1c2Ug d2UgYXJlIGNyb3NzLWNvbXBpbGluZy4KKysgIGlmICggZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYg YXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5j X3dpbjMyX2xpYmlkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0n ZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycK KysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJworKyAgZmkKKysgIDs7Cisr CisrY2VnY2MpCisrICAjIHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLiBT ZWUgbWluZ3cqLgorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmls ZSBmb3JtYXQgcGUtYXJtLS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKKysgIGx0X2N2 X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKysgIDs7CisrCisrZGFyd2luKiB8IHJoYXBz b2R5KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKwor K2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwg JEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBjYXNlICRob3N0X2NwdSBpbgor KyAgICBpKjg2ICkKKysgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9w ZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgorKyAgICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2Yg dGhlbSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAuCisrICAgICAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lbMy05XTg2 IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JworKyAgICAgIGx0X2N2X2Zp bGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKKysgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3Rf ZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCisrICAgICAgOzsKKysgICAgZXNhYworKyAg ZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgZmkKKysg IDs7CisrCisrZ251KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisr ICA7OworKworK2hwdXgxMC4yMCogfCBocHV4MTEqKQorKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9 L3Vzci9iaW4vZmlsZQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIGlhNjQqKQorKyAgICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYt WzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKKysgICAgbHRfY3ZfZmlsZV9t YWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KKysgICAgOzsKKysgIGhwcGEq NjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTld WzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gUEEtUklTQyBb MC05XS5bMC05XScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEy MF82NC9saWJjLnNsCisrICAgIDs7CisrICAqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxQQS1SSVNDWzAtOV0uWzAtOV0pIHNo YXJlZCBsaWJyYXJ5JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9s aWJjLnNsCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2ludGVyaXhbMy05XSopCisrICAj IFBJQyBjb2RlIGlzIGJyb2tlbiBvbiBJbnRlcml4IDMueCwgdGhhdCdzIHdoeSB8XC5hIG5vdCB8 X3BpY1wuYSBoZXJlCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVy biAvbGliW14vXSsoXC5zb3xcLmEpJCcKKysgIDs7CisrCisraXJpeDUqIHwgaXJpeDYqIHwgbm9u c3RvcHV4KikKKysgIGNhc2UgJExEIGluCisrICAqLTMyfCoiLTMyICIpIGxpYm1hZ2ljPTMyLWJp dDs7CisrICAqLW4zMnwqIi1uMzIgIikgbGlibWFnaWM9TjMyOzsKKysgICotNjR8KiItNjQgIikg bGlibWFnaWM9NjQtYml0OzsKKysgICopIGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysgIGVzYWMK KysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworKyMgVGhp cyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrbmV0YnNkKikKKysgIGlmIGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgor KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSso XC5zb1wuWzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb3xfcGljXC5hKSQn CisrICBmaQorKyAgOzsKKysKKytuZXdvczYqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKGV4ZWN1dGFibGV8ZHlu YW1pYyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgbHRf Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCisrICA7OworKworKypu dG8qIHwgKnFueCopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAg OzsKKysKKytvcGVuYnNkKikKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUg LSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5i c2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21h dGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfFwuc298X3BpY1wuYSkk JworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVy biAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJworKyAgZmkKKysgIDs7 CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9cGFzc19hbGwKKysgIDs7CisrCisrcmRvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2 NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysg IGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICBtb3Rvcm9sYSkKKysgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJl ZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bMC05XVswLTldKiBWZXJzaW9uIFswLTldJworKyAgICBs dF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKKysgICAg OzsKKysgIG5jcikKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysg ICAgOzsKKysgIHNlcXVlbnQpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUn CisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVsw LTldKi1iaXQgW0xNXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCisrICAgIDs7Cisr ICBzbmkpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xN XVNCIGR5bmFtaWMgbGliIgorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xp YmMuc28KKysgICAgOzsKKysgIHNpZW1lbnMpCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCisrICAgIDs7CisrICBwYykKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrdHBmKikKKysgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworK2VzYWMKKysKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCIgPiY2 OyB9CisrZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNfY21kCisrZGVwbGlic19jaGVj a19tZXRob2Q9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisrdGVzdCAteiAiJGRlcGxpYnNf Y2hlY2tfbWV0aG9kIiAmJiBkZXBsaWJzX2NoZWNrX21ldGhvZD11bmtub3duCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4Ijsg dGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWFy Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHth Y190b29sX3ByZWZpeH1hcjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BUitzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0 IC1uICIkQVIiOyB0aGVuCisrICBhY19jdl9wcm9nX0FSPSIkQVIiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQVI9IiR7YWNfdG9vbF9wcmVmaXh9 YXIiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJ RlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0FSPSRhY19jdl9wcm9nX0FSCisraWYgdGVz dCAtbiAiJEFSIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JEFSIiA+JjUKKyskYXNfZWNobyAiJEFSIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytm aQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQVIiOyB0aGVuCisrICBhY19j dF9BUj0kQVIKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiYXIiLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBhcjsgYWNfd29yZD0kMgor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19hY19jdF9BUitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCisr ICBhY19jdl9wcm9nX2FjX2N0X0FSPSIkYWNfY3RfQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S CisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQVI9ImFyIgorKyAgICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUwor KworK2ZpCisrZmkKKythY19jdF9BUj0kYWNfY3ZfcHJvZ19hY19jdF9BUgorK2lmIHRlc3QgLW4g IiRhY19jdF9BUiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdF9BUiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9BUiIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJu byIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfQVIiID0geDsgdGhlbgorKyAg ICBBUj0iZmFsc2UiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9v bF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H OiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhl ZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2Fj CisrICAgIEFSPSRhY19jdF9BUgorKyAgZmkKKytlbHNlCisrICBBUj0iJGFjX2N2X3Byb2dfQVIi CisrZmkKKysKKyt0ZXN0IC16ICIkQVIiICYmIEFSPWFyCisrdGVzdCAteiAiJEFSX0ZMQUdTIiAm JiBBUl9GTEFHUz1jcnUKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKytpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgIiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQy CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHthY19jdl9wcm9nX1NUUklQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KKysgIGFj X2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu CisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KKysgICAgYWNfY3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZpeH1zdHJpcCIKKysgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2 ZV9JRlMKKysKKytmaQorK2ZpCisrU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAKKytpZiB0ZXN0IC1u ICIkU1RSSVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk U1RSSVAiID4mNQorKyRhc19lY2hvICIkU1RSSVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsg fQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19TVFJJUCI7IHRoZW4K KysgIGFjX2N0X1NUUklQPSRTVFJJUAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJz dHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15 IHN0cmlwOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3Qg LW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9IiRhY19j dF9TVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisr ZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u CisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K KysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3Zf cHJvZ19hY19jdF9TVFJJUD0ic3RyaXAiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysg IGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0 X1NUUklQPSRhY19jdl9wcm9nX2FjX2N0X1NUUklQCisraWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQ IjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X1NU UklQIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7IH0KKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIgPSB4OyB0aGVuCisrICAg IFNUUklQPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xf d2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQg d2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYwor KyAgICBTVFJJUD0kYWNfY3RfU1RSSVAKKysgIGZpCisrZWxzZQorKyAgU1RSSVA9IiRhY19jdl9w cm9nX1NUUklQIgorK2ZpCisrCisrdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06CisrCisrCisr CisrCisrCisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVm aXh9cmFubGliOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX1JBTkxJQitzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1u ICIkUkFOTElCIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19SQU5MSUI9IiRSQU5MSUIiICMgTGV0IHRo ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3Nh dmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfUkFOTElCPSIke2Fj X3Rvb2xfcHJlZml4fXJhbmxpYiIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkK Kytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrUkFOTElCPSRh Y19jdl9wcm9nX1JBTkxJQgorK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUkFOTElCIiA+JjUKKyskYXNfZWNobyAiJFJB TkxJQiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRl c3QgLXogIiRhY19jdl9wcm9nX1JBTkxJQiI7IHRoZW4KKysgIGFjX2N0X1JBTkxJQj0kUkFOTElC CisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNhbiBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHJhbmxpYjsgYWNfd29yZD0kMgor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7 IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSIkYWNfY3RfUkFOTElCIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19z YXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X1JBTkxJ Qj0icmFubGliIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytk b25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9SQU5MSUI9JGFjX2N2 X3Byb2dfYWNfY3RfUkFOTElCCisraWYgdGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9SQU5MSUIiID4mNQor KyRhc19lY2hvICIkYWNfY3RfUkFOTElCIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytm aQorKworKyAgaWYgdGVzdCAieCRhY19jdF9SQU5MSUIiID0geDsgdGhlbgorKyAgICBSQU5MSUI9 IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQg aW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBj cm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIFJB TkxJQj0kYWNfY3RfUkFOTElCCisrICBmaQorK2Vsc2UKKysgIFJBTkxJQj0iJGFjX2N2X3Byb2df UkFOTElCIgorK2ZpCisrCisrdGVzdCAteiAiJFJBTkxJQiIgJiYgUkFOTElCPToKKysKKysKKysK KysKKysKKysKKysjIERldGVybWluZSBjb21tYW5kcyB0byBjcmVhdGUgb2xkLXN0eWxlIHN0YXRp YyBhcmNoaXZlcy4KKytvbGRfYXJjaGl2ZV9jbWRzPSckQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xk b2JqcycKKytvbGRfcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNjQ0ICRvbGRsaWInCisrb2xkX3Bv c3R1bmluc3RhbGxfY21kcz0KKysKKytpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgb3BlbmJzZCopCisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIk b2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgLXQgXCRvbGRsaWIiCisrICAgIDs7CisrICAq KQorKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFO TElCIFwkb2xkbGliIgorKyAgICA7OworKyAgZXNhYworKyAgb2xkX2FyY2hpdmVfY21kcz0iJG9s ZF9hcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisrZmkKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNp ZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBjb21waWxl ciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZMQUdT LSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn dW1lbnRzLgorK2NvbXBpbGVyPSRDQworKworKworKyMgQ2hlY2sgZm9yIGNvbW1hbmQgdG8gZ3Jh YiB0aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9sIGZyb20gbm0uCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91 dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGNv bW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUrc2V0fSIgPSBzZXQ7 IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKyMgVGhlc2Ug YXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1z LgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBV bHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9iYWwg c3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tCQ0RFR1JTVF0nCisrCisrIyBSZWdleHAgdG8gbWF0 Y2ggc3ltYm9scyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJlY3RseSBmcm9tIEMuCisrc3ltcGF0 PSdcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKScKKysKKysjIERlZmluZSBzeXN0ZW0tc3BlY2lm aWMgdmFyaWFibGVzLgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgqKQorKyAgc3ltY29kZT0nW0JD RFRdJworKyAgOzsKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICBzeW1j b2RlPSdbQUJDREdJU1RXXScKKysgIDs7CisraHB1eCopCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUi ID0gaWE2NDsgdGhlbgorKyAgICBzeW1jb2RlPSdbQUJDREVHUlNUXScKKysgIGZpCisrICA7Owor K2lyaXgqIHwgbm9uc3RvcHV4KikKKysgIHN5bWNvZGU9J1tCQ0RFR1JTVF0nCisrICA7OworK29z ZiopCisrICBzeW1jb2RlPSdbQkNERUdRUlNUXScKKysgIDs7Cisrc29sYXJpcyopCisrICBzeW1j b2RlPSdbQkRSVF0nCisrICA7OworK3NjbzMuMnY1KikKKysgIHN5bWNvZGU9J1tEVF0nCisrICA7 OworK3N5c3Y0LjJ1dzIqKQorKyAgc3ltY29kZT0nW0RUXScKKysgIDs7Cisrc3lzdjUqIHwgc2Nv NXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKKysgIHN5bWNvZGU9J1tBQkRUXScKKysgIDs7 Cisrc3lzdjQpCisrICBzeW1jb2RlPSdbREZOU1RVXScKKysgIDs7CisrZXNhYworKworKyMgSWYg d2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHVzZSBpdHMgc3RhbmRhcmQgc3ltYm9sIGNvZGVzLgor K2Nhc2UgYCROTSAtViAyPiYxYCBpbgorKypHTlUqIHwgKid3aXRoIEJGRCcqKQorKyAgc3ltY29k ZT0nW0FCQ0RHSVJTVFddJyA7OworK2VzYWMKKysKKysjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQg c3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0aW9uLgorKyMgU29tZSBzeXN0ZW1z IChlc3AuIG9uIGlhNjQpIGxpbmsgZGF0YSBhbmQgY29kZSBzeW1ib2xzIGRpZmZlcmVudGx5LAor KyMgc28gdXNlIHRoaXMgZ2VuZXJhbCBhcHByb2FjaC4KKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQvZXh0ZXJuIGludCBcMSgpOy9w JyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgorKworKyMg VHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBz eW1ib2wgYWRkcmVzcworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNz PSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0s L3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJcMlwiLCAodm9p ZCAqKSBcJlwyfSwvcCciCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJl c3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1xcXCJcMVxcXCIs ICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14gXSpcKSBcKGxpYlteIF0qXCkk LyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwp IFwoW14gXSpcKSQvICB7XCJsaWJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCisrCisrIyBIYW5k bGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCisrb3B0X2NyPQorK2Nhc2UgJGJ1aWxkX29zIGlu CisrbWluZ3cqKQorKyAgb3B0X2NyPWAkRUNITyAneFx7MCwxXH0nIHwgdHIgeCAnXDAxNSdgICMg b3B0aW9uIGNyIGluIHJlZ2V4cAorKyAgOzsKKytlc2FjCisrCisrIyBUcnkgd2l0aG91dCBhIHBy ZWZpeCB1bmRlcnNjb3JlLCB0aGVuIHdpdGggaXQuCisrZm9yIGFjX3N5bXByZnggaW4gIiIgIl8i OyBkbworKworKyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0LCBhbmQgc3ltcHJmeCBpbnRv IGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4KKysgIHN5bXhmcm09IlxcMSAkYWNfc3ltcHJm eFxcMiBcXDIiCisrCisrICAjIFdyaXRlIHRoZSByYXcgYW5kIEMgaWRlbnRpZmllcnMuCisrICBp ZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBkdW1wYmluIjsgdGhlbgorKyAgICAj IEZha2UgaXQgZm9yIGR1bXBiaW4gYW5kIHNheSBUIGZvciBhbnkgbm9uLXN0YXRpYyBmdW5jdGlv bgorKyAgICAjIGFuZCBEIGZvciBhbnkgZ2xvYmFsIHZhcmlhYmxlLgorKyAgICAjIEFsc28gZmlu ZCBDKysgYW5kIF9fZmFzdGNhbGwgc3ltYm9scyBmcm9tIE1TVkMrKywKKysgICAgIyB3aGljaCBz dGFydCB3aXRoIEAgb3IgPy4KKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0iJEFX SyAnIlwKKysiICAgICB7bGFzdF9zZWN0aW9uPXNlY3Rpb247IHNlY3Rpb249XCQgM307IlwKKysi ICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBhbnkpL3toaWRlW2xhc3Rfc2Vj dGlvbl09MX07IlwKKysiICAgICBcJCAwIX4vRXh0ZXJuYWwgKlx8L3tuZXh0fTsiXAorKyIgICAg IC8gMCsgVU5ERUYgL3tuZXh0fTsgLyBVTkRFRiBcKFtefF1cKSooKS97bmV4dH07IlwKKysiICAg ICB7aWYoaGlkZVtzZWN0aW9uXSkgbmV4dH07IlwKKysiICAgICB7Zj0wfTsgXCQgMH4vXChcKS4q XHwve2Y9MX07IHtwcmludGYgZiA/IFwiVCBcIiA6IFwiRCBcIn07IlwKKysiICAgICB7c3BsaXQo XCQgMCwgYSwgL1x8fFxyLyk7IHNwbGl0KGFbMl0sIHMpfTsiXAorKyIgICAgIHNbMV1+L15bQD9d L3twcmludCBzWzFdLCBzWzFdOyBuZXh0fTsiXAorKyIgICAgIHNbMV1+cHJmeCB7c3BsaXQoc1sx XSx0LFwiQFwiKTsgcHJpbnQgdFsxXSwgc3Vic3RyKHRbMV0sbGVuZ3RoKHByZngpKX0iXAorKyIg ICAgICcgcHJmeD1eJGFjX3N5bXByZngiCisrICBlbHNlCisrICAgIGx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbCSBdXCgkc3ltY29kZSRzeW1jb2RlKlwpWwkg XVsJIF0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCisrICBmaQorKwor KyAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCisrICBwaXBl X3dvcmtzPW5vCisrCisrICBybSAtZiBjb25mdGVzdCoKKysgIGNhdCA+IGNvbmZ0ZXN0LiRhY19l eHQgPDxfTFRfRU9GCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB7CisrI2VuZGlm CisrY2hhciBubV90ZXN0X3ZhcjsKKyt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKKyt2b2lkIG5t X3Rlc3RfZnVuYyh2b2lkKXt9CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgorK2lu dCBtYWluKCl7bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9CisrX0xU X0VPRgorKworKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGls ZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJv bHMuCisrICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCisrICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21l OiRMSU5FTk86IFwiJE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGUgXD4gJG5saXN0XCIiKSA+JjUKKysgIChldmFsICROTSBjb25mdGVzdC4kYWNf b2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdCkgMj4mNQor KyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyAiJG5saXN0Ijsg dGhlbgorKyAgICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCisr ICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KKysJbXYgLWYg IiRubGlzdCJUICIkbmxpc3QiCisrICAgICAgZWxzZQorKwlybSAtZiAiJG5saXN0IlQKKysgICAg ICBmaQorKworKyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJv bHMgd2UgbmVlZC4KKysgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9k ZXYvbnVsbDsgdGhlbgorKwlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2 L251bGw7IHRoZW4KKysJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFjX2V4dAorKyNpZmRl ZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorKworK19MVF9FT0YKKysJICAj IE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCisrCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRl c3QuJGFjX2V4dCcKKysKKysJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKKysK KysvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCisr Y29uc3Qgc3RydWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lkICAgICAgICphZGRy ZXNzOworK30KKytsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW10gPQorK3sKKysg IHsgIkBQUk9HUkFNQCIsICh2b2lkICopIDAgfSwKKytfTFRfRU9GCisrCSAgJFNFRCAicy9eJHN5 bWNvZGUkc3ltY29kZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwv IiA8ICIkbmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0CisrCSAgY2F0 IDw8XF9MVF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAorKyAgezAsICh2b2lkICopIDB9CisrfTsK KysKKysvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8K KysjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECisrc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxv YWRlZF9zZXR1cCgpIHsKKysgIHJldHVybiBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1i b2xzOworK30KKysjZW5kaWYKKysKKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisr X0xUX0VPRgorKwkgICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCisrCSAgbXYgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdHN0bS4kYWNfb2JqZXh0CisrCSAgbHRfc2F2ZV9MSUJTPSIk TElCUyIKKysJICBsdF9zYXZlX0NGTEFHUz0iJENGTEFHUyIKKysJICBMSUJTPSJjb25mdHN0bS4k YWNfb2JqZXh0IgorKwkgIENGTEFHUz0iJENGTEFHUyRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0 aW5fZmxhZyIKKysJICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5r XCIiKSA+JjUKKysgIChldmFsICRhY19saW5rKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCisrCSAg ICBwaXBlX3dvcmtzPXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKKysJICBD RkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5t X3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4mNQorKwlmaQorKyAgICAgIGVsc2UKKysJZWNobyAiY2Fu bm90IGZpbmQgbm1fdGVzdF92YXIgaW4gJG5saXN0IiA+JjUKKysgICAgICBmaQorKyAgICBlbHNl CisrICAgICAgZWNobyAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIg PiY1CisrICAgIGZpCisrICBlbHNlCisrICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1CisrICAgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorKyAgZmkKKysgIHJt IC1yZiBjb25mdGVzdCogY29uZnRzdCoKKysKKysgICMgRG8gbm90IHVzZSB0aGUgZ2xvYmFsX3N5 bWJvbF9waXBlIHVubGVzcyBpdCB3b3Jrcy4KKysgIGlmIHRlc3QgIiRwaXBlX3dvcmtzIiA9IHll czsgdGhlbgorKyAgICBicmVhaworKyAgZWxzZQorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF9waXBlPQorKyAgZmkKKytkb25lCisrCisrZmkKKysKKytpZiB0ZXN0IC16ICIkbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKysgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NkZWNsPQorK2ZpCisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUk bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiOyB0aGVuCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBmYWlsZWQiID4mNQorKyRhc19lY2hvICJmYWlsZWQiID4m NjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG9rIiA+ JjUKKyskYXNfZWNobyAib2siID4mNjsgfQorK2ZpCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrIyBDaGVjayB3aGV0 aGVyIC0tZW5hYmxlLWxpYnRvb2wtbG9jayB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVf bGlidG9vbF9sb2NrK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9saWJ0 b29sX2xvY2s7CisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9saWJ0b29sX2xvY2siICE9IHhubyAm JiBlbmFibGVfbGlidG9vbF9sb2NrPXllcworKworKyMgU29tZSBmbGFncyBuZWVkIHRvIGJlIHBy b3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3IgZ29vZAorKyMgbGlidG9vbCBz dXBwb3J0LgorK2Nhc2UgJGhvc3QgaW4KKytpYTY0LSotaHB1eCopCisrICAjIEZpbmQgb3V0IHdo aWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4 dAorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikg PiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH07IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNf b2JqZXh0YCBpbgorKyAgICAgICpFTEYtMzIqKQorKwlIUFVYX0lBNjRfTU9ERT0iMzIiCisrCTs7 CisrICAgICAgKkVMRi02NCopCisrCUhQVVhfSUE2NF9NT0RFPSI2NCIKKysJOzsKKysgICAgZXNh YworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrKi0qLWlyaXg2KikKKysgICMg RmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJyNsaW5lIDY3NjYgImNv bmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6 JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4m NQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICAgaWYgdGVz dCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAgIGNhc2UgYC91c3IvYmlu L2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQt bGR9IC1tZWxmMzJic21pcCIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW1l bGYzMmJtaXBuMzIiCisrCSAgOzsKKysJKjY0LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxm NjRibWlwIgorKwk7OworKyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgIGNhc2UgYC91c3Iv YmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7 TEQtbGR9IC0zMiIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW4zMiIKKysJ ICA7OworKwkqNjQtYml0KikKKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwkgIDs7CisrICAgICAg ZXNhYworKyAgICBmaQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisreDg2 XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxwb3dlcnBjKi0q bGludXgqfCBcCisrczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4KikKKysg ICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBj b25mdGVzdC4kYWNfZXh0CisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh Y19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0 dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxl IGNvbmZ0ZXN0Lm9gIGluCisrICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhvc3QgaW4KKysJICB4 ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJz ZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0g ZWxmX2kzODYiCisrCSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCop CisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAgIDs7CisrCSAgczM5 MHgtKmxpbnV4KikKKysJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKKysJICAgIDs7Cisr CSAgc3BhcmM2NC0qbGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgor KwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgICo2NC1iaXQqKQorKwljYXNlICRob3N0IGlu CisrCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94 ODZfNjRfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtM RC1sZH0gLW0gZWxmX3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGludXgqfHBvd2VycGMq LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrCSAgICA7OworKwkg IHMzOTAqLSpsaW51eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRf czM5MCIKKysJICAgIDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0g LW0gZWxmNjRfc3BhcmMiCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgIGVzYWMKKysgIGZp CisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKworKyotKi1zY28zLjJ2NSopCisrICAjIE9u IFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmlu YXJpZXMuCisrICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0iJENGTEFHUyAtYmVs ZiIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBD IGNvbXBpbGVyIG5lZWRzIC1iZWxmIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9j dl9jY19uZWVkc19iZWxmK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGFjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKyth Y19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn CisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFj X2N2X2NfY29tcGlsZXJfZ251CisrCisrICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4g MDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l eGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJ IHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3Qg IiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBsdF9jdl9jY19uZWVkc19iZWxmPXllcworK2Vsc2UK KysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJbHRfY3ZfY2NfbmVlZHNfYmVsZj1ubwor K2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNv bmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICBhY19leHQ9YworK2FjX2Nw cD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVl eHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn CisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2ZpCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2NjX25lZWRzX2JlbGYiID4mNQor KyRhc19lY2hvICIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY2OyB9CisrICBpZiB0ZXN0IHgiJGx0 X2N2X2NjX25lZWRzX2JlbGYiICE9IHgieWVzIjsgdGhlbgorKyAgICAjIHRoaXMgaXMgcHJvYmFi bHkgZ2NjIDIuOC4wLCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYKKysgICAg Q0ZMQUdTPSIkU0FWRV9DRkxBR1MiCisrICBmaQorKyAgOzsKKytzcGFyYyotKnNvbGFyaXMqKQor KyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnaW50IGk7JyA+ IGNvbmZ0ZXN0LiRhY19leHQKKysgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi JGFjX2NvbXBpbGVcIiIpID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0 YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICAgIGNhc2UgYC91c3IvYmluL2Zp bGUgY29uZnRlc3Qub2AgaW4KKysgICAgKjY0LWJpdCopCisrICAgICAgY2FzZSAkbHRfY3ZfcHJv Z19nbnVfbGQgaW4KKysgICAgICB5ZXMqKSBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiIDs7 CisrICAgICAgKikKKysJaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0 Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAgTEQ9IiR7TEQtbGR9IC02NCIKKysJZmkKKysJ OzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBj b25mdGVzdCoKKysgIDs7CisrZXNhYworKworK25lZWRfbG9ja3M9IiRlbmFibGVfbGlidG9vbF9s b2NrIgorKworKworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3aW4q KQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3Qg dGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWwiLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4 fWRzeW11dGlsOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0RTWU1VVElMK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3Qg LW4gIiREU1lNVVRJTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfRFNZTVVUSUw9IiREU1lNVVRJTCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElG Uz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsg dGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19EU1lN VVRJTD0iJHthY190b29sX3ByZWZpeH1kc3ltdXRpbCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJl YWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2Zp CisrRFNZTVVUSUw9JGFjX2N2X3Byb2dfRFNZTVVUSUwKKytpZiB0ZXN0IC1uICIkRFNZTVVUSUwi OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkRFNZTVVUSUwi ID4mNQorKyRhc19lY2hvICIkRFNZTVVUSUwiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQor K2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19EU1lNVVRJTCI7IHRoZW4K KysgIGFjX2N0X0RTWU1VVElMPSREU1lNVVRJTAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICJkc3ltdXRpbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisr c2V0IGR1bW15IGRzeW11dGlsOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0RTWU1V VElMK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9EU1lNVVRJTCI7IHRoZW4KKysgIGFjX2N2X3Byb2df YWNfY3RfRFNZTVVUSUw9IiRhY19jdF9EU1lNVVRJTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK Kytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTD0iZHN5bXV0aWwiCisr ICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFz X3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0RTWU1VVElMPSRhY19jdl9wcm9nX2FjX2N0 X0RTWU1VVElMCisraWYgdGVzdCAtbiAiJGFjX2N0X0RTWU1VVElMIjsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0RTWU1VVElMIiA+JjUKKyskYXNf ZWNobyAiJGFjX2N0X0RTWU1VVElMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQor KworKyAgaWYgdGVzdCAieCRhY19jdF9EU1lNVVRJTCIgPSB4OyB0aGVuCisrICAgIERTWU1VVElM PSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVk IGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBo b3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBE U1lNVVRJTD0kYWNfY3RfRFNZTVVUSUwKKysgIGZpCisrZWxzZQorKyAgRFNZTVVUSUw9IiRhY19j dl9wcm9nX0RTWU1VVElMIgorK2ZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZp eCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZp eH1ubWVkaXQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBk dW1teSAke2FjX3Rvb2xfcHJlZml4fW5tZWRpdDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19O TUVESVQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgaWYgdGVzdCAtbiAiJE5NRURJVCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfTk1FRElU PSIkTk1FRElUIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgK KytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19j dl9wcm9nX05NRURJVD0iJHthY190b29sX3ByZWZpeH1ubWVkaXQiCisrICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Cisr ICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ZmkKKytmaQorK05NRURJVD0kYWNfY3ZfcHJvZ19OTUVESVQKKytpZiB0ZXN0IC1uICIkTk1FRElU IjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE5NRURJVCIg PiY1CisrJGFzX2VjaG8gIiROTUVESVQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2Zp CisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19OTUVESVQiOyB0aGVuCisrICBh Y19jdF9OTUVESVQ9JE5NRURJVAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJubWVk aXQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBu bWVkaXQ7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfTk1FRElUK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3Qg LW4gIiRhY19jdF9OTUVESVQiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X05NRURJVD0iJGFj X2N0X05NRURJVCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRI CisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFz X3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNf Y3ZfcHJvZ19hY19jdF9OTUVESVQ9Im5tZWRpdCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsg MgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisr YWNfY3RfTk1FRElUPSRhY19jdl9wcm9nX2FjX2N0X05NRURJVAorK2lmIHRlc3QgLW4gIiRhY19j dF9OTUVESVQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3RfTk1FRElUIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X05NRURJVCIgPiY2OyB9CisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19l Y2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfTk1FRElUIiA9IHg7 IHRoZW4KKysgICAgTk1FRElUPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxp bmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlw bGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBu b3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVz IDs7CisrZXNhYworKyAgICBOTUVESVQ9JGFjX2N0X05NRURJVAorKyAgZmkKKytlbHNlCisrICBO TUVESVQ9IiRhY19jdl9wcm9nX05NRURJVCIKKytmaQorKworKyAgICBpZiB0ZXN0IC1uICIkYWNf dG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNf dG9vbF9wcmVmaXh9bGlwbyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Cisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bGlwbzsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf cHJvZ19MSVBPK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRMSVBPIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19MSVBP PSIkTElQTyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisr ZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u CisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K KysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3Zf cHJvZ19MSVBPPSIke2FjX3Rvb2xfcHJlZml4fWxpcG8iCisrICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJy ZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytm aQorK0xJUE89JGFjX2N2X3Byb2dfTElQTworK2lmIHRlc3QgLW4gIiRMSVBPIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJExJUE8iID4mNQorKyRhc19lY2hv ICIkTElQTyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lm IHRlc3QgLXogIiRhY19jdl9wcm9nX0xJUE8iOyB0aGVuCisrICBhY19jdF9MSVBPPSRMSVBPCisr ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImxpcG8iLCBzbyBpdCBjYW4gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBsaXBvOyBhY193b3JkPSQyCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19j dl9wcm9nX2FjX2N0X0xJUE8rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0xJUE8iOyB0aGVuCisrICBh Y19jdl9wcm9nX2FjX2N0X0xJUE89IiRhY19jdF9MSVBPIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0xJUE89ImxpcG8iCisrICAgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVf SUZTCisrCisrZmkKKytmaQorK2FjX2N0X0xJUE89JGFjX2N2X3Byb2dfYWNfY3RfTElQTworK2lm IHRlc3QgLW4gIiRhY19jdF9MSVBPIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGFjX2N0X0xJUE8iID4mNQorKyRhc19lY2hvICIkYWNfY3RfTElQTyIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfTElQ TyIgPSB4OyB0aGVuCisrICAgIExJUE89IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2Nv bXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRv b2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5l ZD15ZXMgOzsKKytlc2FjCisrICAgIExJUE89JGFjX2N0X0xJUE8KKysgIGZpCisrZWxzZQorKyAg TElQTz0iJGFjX2N2X3Byb2dfTElQTyIKKytmaQorKworKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9v bF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9v bF9wcmVmaXh9b3Rvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgor K3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW90b29sOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX09UT09MK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRPVE9PTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfT1RP T0w9IiRPVE9PTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRI CisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFz X3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNf Y3ZfcHJvZ19PVE9PTD0iJHthY190b29sX3ByZWZpeH1vdG9vbCIKKysgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysg ICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytm aQorK2ZpCisrT1RPT0w9JGFjX2N2X3Byb2dfT1RPT0wKKytpZiB0ZXN0IC1uICIkT1RPT0wiOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkT1RPT0wiID4mNQor KyRhc19lY2hvICIkT1RPT0wiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr CisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19PVE9PTCI7IHRoZW4KKysgIGFjX2N0X09U T09MPSRPVE9PTAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJvdG9vbCIsIHNvIGl0 IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IG90b29sOyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X09UT09MK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9P VE9PTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w9IiRhY19jdF9PVE9PTCIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0k YXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9P VE9PTD0ib3Rvb2wiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQor K2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X09UT09MPSRhY19j dl9wcm9nX2FjX2N0X09UT09MCisraWYgdGVzdCAtbiAiJGFjX2N0X09UT09MIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X09UT09MIiA+JjUKKysk YXNfZWNobyAiJGFjX2N0X09UT09MIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQor KworKyAgaWYgdGVzdCAieCRhY19jdF9PVE9PTCIgPSB4OyB0aGVuCisrICAgIE9UT09MPSI6Igor KyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisr eWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3Mg dG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRy aXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBPVE9PTD0k YWNfY3RfT1RPT0wKKysgIGZpCisrZWxzZQorKyAgT1RPT0w9IiRhY19jdl9wcm9nX09UT09MIgor K2ZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1vdG9vbDY0Iiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3By ZWZpeH1vdG9vbDY0OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX09UT09MNjQrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVz dCAtbiAiJE9UT09MNjQiOyB0aGVuCisrICBhY19jdl9wcm9nX09UT09MNjQ9IiRPVE9PTDY0IiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZT PSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX09UT09M NjQ9IiR7YWNfdG9vbF9wcmVmaXh9b3Rvb2w2NCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsg MgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisr T1RPT0w2ND0kYWNfY3ZfcHJvZ19PVE9PTDY0CisraWYgdGVzdCAtbiAiJE9UT09MNjQiOyB0aGVu CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkT1RPT0w2NCIgPiY1Cisr JGFzX2VjaG8gIiRPVE9PTDY0IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKwor KworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfT1RPT0w2NCI7IHRoZW4KKysgIGFjX2N0 X09UT09MNjQ9JE9UT09MNjQKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAib3Rvb2w2 NCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IG90 b29sNjQ7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfT1RPT0w2NCtzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0 IC1uICIkYWNfY3RfT1RPT0w2NCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w2ND0i JGFjX2N0X09UT09MNjQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UK Kythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAk UEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAg IGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w2ND0ib3Rvb2w2NCIKKysgICAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAg YnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQor K2ZpCisrYWNfY3RfT1RPT0w2ND0kYWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0CisraWYgdGVzdCAt biAiJGFjX2N0X09UT09MNjQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3RfT1RPT0w2NCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9PVE9PTDY0IiA+ JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9P VE9PTDY0IiA9IHg7IHRoZW4KKysgICAgT1RPT0w2ND0iOiIKKysgIGVsc2UKKysgICAgY2FzZSAk Y3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rv b2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgT1RPT0w2ND0kYWNfY3RfT1RPT0w2NAorKyAg ZmkKKytlbHNlCisrICBPVE9PTDY0PSIkYWNfY3ZfcHJvZ19PVE9PTDY0IgorK2ZpCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWciID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQorK2lmIHRlc3Qg IiR7bHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9k PW5vCisrICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgorKwkjIEJ5 IGRlZmF1bHQgd2Ugd2lsbCBhZGQgdGhlIC1zaW5nbGVfbW9kdWxlIGZsYWcuIFlvdSBjYW4gb3Zl cnJpZGUKKysJIyBieSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTFRf TVVMVElfTU9EVUxFCisrCSMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRp bmcgLW11bHRpX21vZHVsZSB0byB0aGUKKysJIyBsaW5rIGZsYWdzLgorKwlybSAtcmYgbGliY29u ZnRlc3QuZHlsaWIqCisrCWVjaG8gImludCBmb28odm9pZCl7cmV0dXJuIDE7fSIgPiBjb25mdGVz dC5jCisrCWVjaG8gIiRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxp YiBcCisrLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMiID4mNQorKwkk TFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAorKwkgIC1keW5h bWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+Y29uZnRlc3QuZXJyCisrICAg ICAgICBfbHRfcmVzdWx0PSQ/CisrCWlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIgJiYgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMDsgdGhlbgorKwkgIGx0 X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCisrCWVsc2UKKysJICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKwlmaQorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCXJtIC1mIGNvbmZ0ZXN0 LioKKysgICAgICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfYXBwbGVf Y2Nfc2luZ2xlX21vZCIgPiY2OyB9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZsYWcu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCtz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KKysgICAgICBzYXZlX0xERkxBR1M9 JExERkxBR1MKKysgICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KKysgICAgICBMREZM QUdTPSIkTERGTEFHUyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0iCisr ICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICov CisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQK KyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll cyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgor KyAgbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PXllcworK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysJbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vCisr ZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJTERGTEFHUz0iJHNhdmVfTERGTEFH UyIKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9s ZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfbGRfZXhwb3J0 ZWRfc3ltYm9sc19saXN0IiA+JjY7IH0KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFw c29keSogfCBkYXJ3aW4xLlswMTJdKQorKyAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPSck e3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysgICAgZGFyd2luMS4qKQorKyAgICAg IF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRl ZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysgICAgZGFyd2luKikgIyBkYXJ3aW4gNS54IG9uCisr ICAgICAgIyBpZiBydW5uaW5nIG9uIDEwLjUgb3IgbGF0ZXIsIHRoZSBkZXBsb3ltZW50IHRhcmdl dCBkZWZhdWx0cworKyAgICAgICMgdG8gdGhlIE9TIHZlcnNpb24sIGlmIG9uIHg4NiwgYW5kIDEw LjQsIHRoZSBkZXBsb3ltZW50CisrICAgICAgIyB0YXJnZXQgZGVmYXVsdHMgdG8gMTAuNC4gRG9u J3QgeW91IGxvdmUgaXQ/CisrICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVC0x MC4wfSwkaG9zdCBpbgorKwkxMC4wLCo4NiotZGFyd2luOCp8MTAuMCwqLWRhcndpbls5MV0qKQor KwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWlj X2xvb2t1cCcgOzsKKysJMTAuWzAxMl0qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPSck e3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysJ MTAuKikKKysJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9 ZHluYW1pY19sb29rdXAnIDs7CisrICAgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgICBp ZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgorKyAgICAg IF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisrICAgIGZpCisrICAgIGlmIHRl c3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KKysgICAg ICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRvdXRw dXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisrICAgIGVsc2UKKysgICAgICBf bHRfZGFyX2V4cG9ydF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9 LXN5bWJvbHMuZXhwc3ltICR7bGlifScKKysgICAgZmkKKysgICAgaWYgdGVzdCAiJERTWU1VVElM IiAhPSAiOiI7IHRoZW4KKysgICAgICBfbHRfZHN5bXV0aWw9J34kRFNZTVVUSUwgJGxpYiB8fCA6 JworKyAgICBlbHNlCisrICAgICAgX2x0X2RzeW11dGlsPQorKyAgICBmaQorKyAgICA7OworKyAg ZXNhYworKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxl PSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGlu az0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29t cGlsZXJfZ251CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBy dW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8g cnVuIHRoZSBDIHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQorKyMgT24gU3Vucywgc29tZXRpbWVz ICRDUFAgbmFtZXMgYSBkaXJlY3RvcnkuCisraWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAtZCAi JENQUCI7IHRoZW4KKysgIENQUD0KKytmaQorK2lmIHRlc3QgLXogIiRDUFAiOyB0aGVuCisrICBp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1BQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBD UFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKKysgICAgZm9yIENQUCBpbiAiJENDIC1FIiAiJENDIC1F IC10cmFkaXRpb25hbC1jcHAiICIvbGliL2NwcCIKKysgICAgZG8KKysgICAgICBhY19wcmVwcm9j X29rPWZhbHNlCisrZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisrZG8KKysg ICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcg Z2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAgIyBQcmVm ZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNl CisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4K KysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGls ZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBp cyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4K KysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5bnRheCBl cnJvcgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Igor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Iikg Mj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3Qg LXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQu CisrY29udGludWUKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0 CisrCisrICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9u ZXhpc3RlbnQgaGVhZGVycworKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgor K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGFjX25vbmV4 aXN0ZW50Lmg+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19l eHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19l eHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkg dGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgIyBCcm9rZW46IHN1 Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2Vsc2UKKysgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKysKKysgICMgUGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJvY19vaz06 CisrYnJlYWsKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Cisr CisrZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVh bmluZyBjb2RlIHdhcyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf ZXh0CisraWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKysgICAgZG9u ZQorKyAgICBhY19jdl9wcm9nX0NQUD0kQ1BQCisrCisrZmkKKysgIENQUD0kYWNfY3ZfcHJvZ19D UFAKKytlbHNlCisrICBhY19jdl9wcm9nX0NQUD0kQ1BQCisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkQ1BQIiA+JjUKKyskYXNfZWNobyAiJENQUCIgPiY2OyB9Cisr YWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHll cworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNv bmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4K KysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZp bmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBj b21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2gg dGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRh eCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8 bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAg ICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysg IGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7 CisrCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICA6CisrZWxz ZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZh bGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3 aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cu CisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8K KytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRl IDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVy MQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxs ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2Zs YWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgICMg QnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytlbHNlCisrICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3By ZXByb2Nfb2s9OgorK2JyZWFrCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX2V4dAorKworK2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZF TFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX2V4dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCisrICA6CisrZWxzZQorKyAg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZh aWxzIHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFp bHMgc2FuaXR5IGNoZWNrCisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4m Mjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrZmkKKysKKythY19leHQ9Ywor K2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRh Y19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKworK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxl cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNs dWRlIDxzdGRhcmcuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPGZsb2F0Lmg+ CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNF T0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls ZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxh ZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X2hlYWRlcl9zdGRjPXllcworK2Vsc2UK KysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytm aQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisr ICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRv IEFOU0kuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5o LiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNp bmNsdWRlIDxzdHJpbmcuaD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVz dC4kYWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAgIm1lbWNociIgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuCisrICA6CisrZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3JtIC1mIGNv bmZ0ZXN0KgorKworK2ZpCisrCisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRo ZW4KKysgICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwgY29udHJh cnkgdG8gQU5TSS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZk ZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAor K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICov CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKworK19BQ0VPRgorK2lmIChldmFsICIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKysgICRFR1JFUCAiZnJlZSIgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCisrICA6CisrZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3JtIC1m IGNvbmZ0ZXN0KgorKworK2ZpCisrCisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7 IHRoZW4KKysgICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFOU0kgY3R5cGUgbWFj cm9zIHVubGVzcyB1c2luZyAtYW5zaS4KKysgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzOyB0aGVuCisrICA6CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8c3RkbGliLmg+Cisr I2lmICgoJyAnICYgMHgwRkYpID09IDB4MDIwKQorKyMgZGVmaW5lIElTTE9XRVIoYykgKCdhJyA8 PSAoYykgJiYgKGMpIDw9ICd6JykKKysjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8g J0EnICsgKChjKSAtICdhJykgOiAoYykpCisrI2Vsc2UKKysjIGRlZmluZSBJU0xPV0VSKGMpIFwK KysJCSAgICgoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ2knKSBcCisrCQkgICAgIHx8ICgnaicgPD0g KGMpICYmIChjKSA8PSAncicpIFwKKysJCSAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6 JykpCisrIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICgoYykgfCAweDQwKSA6IChj KSkKKysjZW5kaWYKKysKKysjZGVmaW5lIFhPUihlLCBmKSAoKChlKSAmJiAhKGYpKSB8fCAoIShl KSAmJiAoZikpKQorK2ludAorK21haW4gKCkKKyt7CisrICBpbnQgaTsKKysgIGZvciAoaSA9IDA7 IGkgPCAyNTY7IGkrKykKKysgICAgaWYgKFhPUiAoaXNsb3dlciAoaSksIElTTE9XRVIgKGkpKQor Kwl8fCB0b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkKKysgICAgICByZXR1cm4gMjsKKysgIHJl dHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChh Y190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsi KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0n Li9jb25mdGVzdCRhY19leGVleHQnCisrICB7IChjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY190cnkiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsg dGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdp dGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKyso IGV4aXQgJGFjX3N0YXR1cyApCisrYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3JtIC1yZiBj b25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdtb24ub3V0 IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0CisrZmkKKysKKysKKytmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2hlYWRl cl9zdGRjIiA+JjY7IH0KKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgor KworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBTVERDX0hFQURFUlMgMQor K19BQ0VPRgorKworK2ZpCisrCisrIyBPbiBJUklYIDUuMywgc3lzL3R5cGVzIGFuZCBpbnR0eXBl cy5oIGFyZSBjb25mbGljdGluZy4KKysKKysKKysKKysKKysKKysKKysKKysKKysKKytmb3IgYWNf aGVhZGVyIGluIHN5cy90eXBlcy5oIHN5cy9zdGF0Lmggc3RkbGliLmggc3RyaW5nLmggbWVtb3J5 Lmggc3RyaW5ncy5oIFwKKysJCSAgaW50dHlwZXMuaCBzdGRpbnQuaCB1bmlzdGQuaAorK2RvCisr YXNfYWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3Ry X3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRl ciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+JjY7IH0K KytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9 XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrJGFjX2luY2x1 ZGVzX2RlZmF1bHQKKysKKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4KKytfQUNFT0YKKytybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFj X3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK KysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19v YmpleHQ7IHRoZW4KKysgIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgorK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKKytmaQorKwor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAorK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9CisrCQkg JGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192 YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KKysJCSAkYXNfZWNobyAiJGFzX3Zh bCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgY2F0ID4+Y29u ZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwg JGFzX3RyX2NwcGAgMQorK19BQ0VPRgorKworK2ZpCisrCisrZG9uZQorKworKworKworK2ZvciBh Y19oZWFkZXIgaW4gZGxmY24uaAorK2RvCisrYXNfYWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3Zf aGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY19oZWFkZXIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBl dmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrJGFjX2luY2x1ZGVzX2RlZmF1bHQKKysKKysjaW5jbHVkZSA8JGFj X2hlYWRlcj4KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21w aWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIk YWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGV2YWwgIiRhc19hY19I ZWFkZXI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAi JGFzX2FjX0hlYWRlcj1ubyIKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrYWNfcmVzPWBldmFsICdhc192 YWw9JHsnJGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19l Y2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVh ZGVyJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9 IHgiInllczsgdGhlbgorKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgYCRh c19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQorK19BQ0VPRgorKworK2Zp CisrCisrZG9uZQorKworKworKworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK2lmIHRlc3QgLXogIiRDWFgiOyB0 aGVuCisrICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAgICBDWFg9JENDQworKyAgZWxzZQor KyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNfcHJvZyBp biBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhsQ19yIHhs QworKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVm aXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0 IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9n X0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DWFg9IiRDWFgi ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJ RlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQ1hY PSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgor KyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrQ1hY PSRhY19jdl9wcm9nX0NYWAorK2lmIHRlc3QgLW4gIiRDWFgiOyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYIiA+JjUKKyskYXNfZWNobyAiJENYWCIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgICAgdGVzdCAtbiAiJENYWCIg JiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCisrICBhY19j dF9DWFg9JENYWAorKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysr IGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKKytkbworKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0 X0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19j dF9DWFg9IiRhY19jdF9DWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAg YnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQor K2ZpCisrYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAorK2lmIHRlc3QgLW4gIiRhY19j dF9DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf Y3RfQ1hYIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0NYWCIgPiY2OyB9CisrZWxzZQorKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIg PiY2OyB9CisrZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9DWFgiICYmIGJyZWFrCisrZG9u ZQorKworKyAgaWYgdGVzdCAieCRhY19jdF9DWFgiID0geDsgdGhlbgorKyAgICBDWFg9ImcrKyIK KysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgor K3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3Nz IHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0 cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ1hYPSRh Y19jdF9DWFgKKysgIGZpCisrZmkKKysKKysgIGZpCisrZmkKKysjIFByb3ZpZGUgc29tZSBpbmZv cm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCisrJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgQysrIGNvbXBpbGVyIHZlcnNpb24iID4mNQorK3NldCBYICRhY19jb21waWxl CisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190cnk9IiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1 IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+ JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3Ry eT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y19jb21waWxlciAtdiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8K KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21waWxlciIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGls ZXIuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2N4eF9jb21waWxlcl9nbnUrc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9G CisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgp CisreworKyNpZm5kZWYgX19HTlVDX18KKysgICAgICAgY2hva2UgbWUKKysjZW5kaWYKKysKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2 YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Cisr CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAg YWNfY29tcGlsZXJfZ251PXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysK KysJYWNfY29tcGlsZXJfZ251PW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKythY19jdl9jeHhfY29tcGlsZXJf Z251PSRhY19jb21waWxlcl9nbnUKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2 X2N4eF9jb21waWxlcl9nbnUiID4mNjsgfQorK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHll czsgdGhlbgorKyAgR1hYPXllcworK2Vsc2UKKysgIEdYWD0KKytmaQorK2FjX3Rlc3RfQ1hYRkxB R1M9JHtDWFhGTEFHUytzZXR9CisrYWNfc2F2ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ1hYIGFjY2VwdHMgLWciID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2N4eF9nK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX3NhdmVfY3h4X3dlcnJvcl9m bGFnPSRhY19jeHhfd2Vycm9yX2ZsYWcKKysgICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVzCisrICAg YWNfY3ZfcHJvZ19jeHhfZz1ubworKyAgIENYWEZMQUdTPSItZyIKKysgICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisr ICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVz dC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewor KwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysg IGFjX2N2X3Byb2dfY3h4X2c9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKwlDWFhGTEFHUz0iIgorKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOwor K30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93 ZXJyb3JfZmxhZworKwkgQ1hYRkxBR1M9Ii1nIgorKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9wcm9n X2N4eF9nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQor KworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qu JGFjX2V4dAorK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICBhY19jeHhfd2Vycm9yX2Zs YWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jeHhfZyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9w cm9nX2N4eF9nIiA+JjY7IH0KKytpZiB0ZXN0ICIkYWNfdGVzdF9DWFhGTEFHUyIgPSBzZXQ7IHRo ZW4KKysgIENYWEZMQUdTPSRhY19zYXZlX0NYWEZMQUdTCisrZWxpZiB0ZXN0ICRhY19jdl9wcm9n X2N4eF9nID0geWVzOyB0aGVuCisrICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICBD WFhGTEFHUz0iLWcgLU8yIgorKyAgZWxzZQorKyAgICBDWFhGTEFHUz0iLWciCisrICBmaQorK2Vs c2UKKysgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgIENYWEZMQUdTPSItTzIiCisr ICBlbHNlCisrICAgIENYWEZMQUdTPQorKyAgZmkKKytmaQorK2FjX2V4dD1jCisrYWNfY3BwPSck Q1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKyth Y19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrZGVwY2M9IiRDWFgiICBh bV9jb21waWxlcl9saXN0PQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg ZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FtX2N2 X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJV RSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCisrICAjIFdlIG1ha2UgYSBzdWJkaXIg YW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCisrICAjIG1h a2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92 ZS4gIEZvcgorKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUg Z2NjIHRlc3Qgd2lsbCBlbmQgdXAKKysgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcg LS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKysgICMgaW4gRCcuCisrICBt a2RpciBjb25mdGVzdC5kaXIKKysgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90 aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisrICAjIHVzaW5nIGEgcmVsYXRpdmUg ZGlyZWN0b3J5LgorKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKKysgIGNkIGNvbmZ0 ZXN0LmRpcgorKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBh IHN1YmRpcmVjdG9yeSBiZWNhdXNlCisrICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2Fi bGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQorKyAgIyBib3RoIFRydTY0J3MgY2Mg YW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKKysgICMgc2lk ZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2ll cyBpbgorKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhl bSBpbiB0aGUgb2JqZWN0CisrICAjIGRpcmVjdG9yeS4KKysgIG1rZGlyIHN1YgorKworKyAgYW1f Y3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKysgIGlmIHRlc3QgIiRhbV9j b21waWxlcl9saXN0IiA9ICIiOyB0aGVuCisrICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4g J3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAorKyAgZmkKKysgIGZv ciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbworKyAgICAjIFNldHVwIGEgc291cmNl IHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKKysgICAgIyBs aWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCks IGFuZAorKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlz IGNvbmZ1c2VkIGJ5IHRoaXMuCisrICAgICMKKysgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRo ZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKKysgICAgIyBvdmVy d3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5l cy4KKysgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIu CisrICAgIDogPiBzdWIvY29uZnRlc3QuYworKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8K KysgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5j CisrICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9j b25mdHN0MS5oIHdpdGgKKysgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgorKyAg ICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAorKyAgICBkb25lCisrICAgIGVjaG8gIiR7YW1fX2lu Y2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYK KysKKysgICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBub3NpZGVlZmZlY3QpCisrICAgICAgIyBh ZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5 J2xsCisrICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAorKyAg ICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgor Kwljb250aW51ZQorKyAgICAgIGVsc2UKKysJYnJlYWsKKysgICAgICBmaQorKyAgICAgIDs7Cisr ICAgIG5vbmUpIGJyZWFrIDs7CisrICAgIGVzYWMKKysgICAgIyBXZSBjaGVjayB3aXRoIGAtYycg YW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCisrICAgICMgbW9kZS4g IEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Bl cmx5CisrICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLgor KyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5j IG9iamVjdD1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gXAorKyAgICAgICBkZXBmaWxlPXN1Yi9j b25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAorKyAgICAgICAkU0hFTEwg Li9kZXBjb21wICRkZXBjYyAtYyAtbyBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0 ZXN0LmMgXAorKyAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVzdC5lcnIgJiYKKysgICAgICAg Z3JlcCBzdWIvY29uZnRzdDEuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgor KyAgICAgICBncmVwIHN1Yi9jb25mdHN0Ni5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAy PiYxICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVz dC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25m bWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24g dW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAjIG9y IHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkg bWVzc2FnZQorKyAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qg c3VwcG9ydGVkLgorKyAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21w bGFpbiB0aHVzbHk6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9y aW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRpYWdu b3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJl bWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdub3Jp bmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRl ZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAgICAg YW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCisrICAgICAgICBi cmVhaworKyAgICAgIGZpCisrICAgIGZpCisrICBkb25lCisrCisrICBjZCAuLgorKyAgcm0gLXJm IGNvbmZ0ZXN0LmRpcgorK2Vsc2UKKysgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJf dHlwZT1ub25lCisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNQorKyRhc19lY2hv ICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjY7IH0KKytDWFhERVBN T0RFPWRlcG1vZGU9JGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZQorKworKyBp ZgorKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKKysgICYm IHRlc3QgIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID0gZ2NjMzsgdGhl bgorKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0KKysgIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFPScjJwor K2Vsc2UKKysgIGFtX19mYXN0ZGVwQ1hYX1RSVUU9JyMnCisrICBhbV9fZmFzdGRlcENYWF9GQUxT RT0KKytmaQorKworKworK2lmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJY bm8iICYmCisrICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251 bGwgMj4mMWAgKSB8fAorKyAgICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7IHRoZW4KKysg IGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cg dG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBo b3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yLi4uICIgPiY2OyB9CisraWYgdGVzdCAteiAi JENYWENQUCI7IHRoZW4KKysgIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DWFhDUFArc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgICAgICMg RG91YmxlIHF1b3RlcyBiZWNhdXNlIENYWENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAorKyAgICBm b3IgQ1hYQ1BQIGluICIkQ1hYIC1FIiAiL2xpYi9jcHAiCisrICAgIGRvCisrICAgICAgYWNfcHJl cHJvY19vaz1mYWxzZQorK2ZvciBhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisr ZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmln dXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAg IyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQs IHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBp bGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUg Y29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVy cm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1p dHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5 bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNf ZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNf ZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJ IHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICA6CisrZWxz ZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZh bGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3 aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cu CisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8K KytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRl IDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVy MQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxs ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisr ICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQor KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKyth Y19wcmVwcm9jX29rPToKKyticmVhaworK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19leHQKKysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9D X0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19leHQKKytpZiAkYWNfcHJlcHJvY19vazsgdGhlbgorKyAgYnJlYWsKKytm aQorKworKyAgICBkb25lCisrICAgIGFjX2N2X3Byb2dfQ1hYQ1BQPSRDWFhDUFAKKysKKytmaQor KyAgQ1hYQ1BQPSRhY19jdl9wcm9nX0NYWENQUAorK2Vsc2UKKysgIGFjX2N2X3Byb2dfQ1hYQ1BQ PSRDWFhDUFAKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDWFhD UFAiID4mNQorKyRhc19lY2hvICIkQ1hYQ1BQIiA+JjY7IH0KKythY19wcmVwcm9jX29rPWZhbHNl CisrZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKKytkbworKyAgIyBVc2Ug YSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwor KyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisrICAjIFByZWZlciA8bGlt aXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKysgICMg PGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgorKyAgIyBP biB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBh cnNlciwKKysgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUg dG8gY2F0Y2ggdGhpcyBjYXNlLgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysjaWZkZWYgX19TVERDX18KKysjIGluY2x1ZGUgPGxpbWl0cy5oPgorKyNlbHNl CisrIyBpbmNsdWRlIDxhc3NlcnQuaD4KKysjZW5kaWYKKysJCSAgICAgU3ludGF4IGVycm9yCisr X0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0 ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFj X2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisr Y29udGludWUKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Cisr CisrICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhp c3RlbnQgaGVhZGVycworKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGFjX25vbmV4aXN0 ZW50Lmg+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQi CisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQi KSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29u ZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVz dCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Cisr CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgICMgQnJva2VuOiBz dWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytlbHNlCisrICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1CisrCisrICAjIFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9 OgorK2JyZWFrCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAor KworK2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xl YW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X2V4dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCisrICA6CisrZWxzZQorKyAgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisrX2x0X2NhdWdodF9DWFhf ZXJyb3I9eWVzOyB9CisrZmkKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2Vsc2UKKysgIF9sdF9jYXVnaHRfQ1hYX2Vycm9y PXllcworK2ZpCisrCisrCisrCisrCisrCisrIyBTZXQgb3B0aW9ucworKworKworKworKyAgICAg ICAgZW5hYmxlX2Rsb3Blbj1ubworKworKworKyAgZW5hYmxlX3dpbjMyX2RsbD1ubworKworKwor KworKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtcGljIHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke3dpdGhfcGljK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX3BpYzsgcGlj X21vZGU9IiR3aXRodmFsIgorK2Vsc2UKKysgIHBpY19tb2RlPWRlZmF1bHQKKytmaQorKworKwor K3Rlc3QgLXogIiRwaWNfbW9kZSIgJiYgcGljX21vZGU9ZGVmYXVsdAorKworKworKworKworKwor KworKworKyAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWZhc3QtaW5zdGFsbCB3YXMgZ2l2ZW4u CisraWYgdGVzdCAiJHtlbmFibGVfZmFzdF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCisrICBl bmFibGV2YWw9JGVuYWJsZV9mYXN0X2luc3RhbGw7IHA9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAg IGNhc2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzIDs7 CisrICAgIG5vKSBlbmFibGVfZmFzdF9pbnN0YWxsPW5vIDs7CisrICAgICopCisrICAgICAgZW5h YmxlX2Zhc3RfaW5zdGFsbD1ubworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290 LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZl X2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtn IGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBr ZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCisrCWZpCisrICAg ICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMK KytlbHNlCisrICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcworK2ZpCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrIyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlYnVpbGQgbGlidG9vbCB3 aGVuIG5lZWRlZAorK0xJQlRPT0xfREVQUz0iJGx0bWFpbiIKKysKKysjIEFsd2F5cyB1c2Ugb3Vy IG93biBsaWJ0b29sLgorK0xJQlRPT0w9JyQoU0hFTEwpICQodG9wX2J1aWxkZGlyKS9saWJ0b29s JworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworK3Rlc3QgLXogIiRMTl9TIiAmJiBMTl9TPSJsbiAtcyIKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKytpZiB0ZXN0IC1uICIke1pT SF9WRVJTSU9OK3NldH0iIDsgdGhlbgorKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZmkKKysK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG9iamRpciIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG9iamRpci4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 bHRfY3Zfb2JqZGlyK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIHJtIC1mIC5saWJzIDI+L2Rldi9udWxsCisrbWtkaXIgLmxpYnMgMj4v ZGV2L251bGwKKytpZiB0ZXN0IC1kIC5saWJzOyB0aGVuCisrICBsdF9jdl9vYmpkaXI9LmxpYnMK KytlbHNlCisrICAjIE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxlbmFtZXMgdGhhdCBiZWdpbiB3 aXRoIGEgZG90LgorKyAgbHRfY3Zfb2JqZGlyPV9saWJzCisrZmkKKytybWRpciAubGlicyAyPi9k ZXYvbnVsbAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2 X29iamRpciIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9vYmpkaXIiID4mNjsgfQorK29iamRpcj0k bHRfY3Zfb2JqZGlyCisrCisrCisrCisrCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgor KyNkZWZpbmUgTFRfT0JKRElSICIkbHRfY3Zfb2JqZGlyLyIKKytfQUNFT0YKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKytjYXNlICRob3N0X29zIGlu CisrYWl4MyopCisrICAjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBj b2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKysgICMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENP TExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcworKyAgIyB2YW5p c2ggaW4gYSBwdWZmIG9mIHNtb2tlLgorKyAgaWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9 IiAhPSBYc2V0OyB0aGVuCisrICAgIENPTExFQ1RfTkFNRVM9CisrICAgIGV4cG9ydCBDT0xMRUNU X05BTUVTCisrICBmaQorKyAgOzsKKytlc2FjCisrCisrIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQg aGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcworKyMgbWV0YWNo YXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmlu Z3MuCisrc2VkX3F1b3RlX3N1YnN0PSdzL1woWyJgJFxcXVwpL1xcXDEvZycKKysKKysjIFNhbWUg YXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KKytkb3VibGVf cXVvdGVfc3Vic3Q9J3MvXChbImBcXF1cKS9cXFwxL2cnCisrCisrIyBTZWQgc3Vic3RpdHV0aW9u IHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxsIHZhcmlhYmxlIGluIGEKKysj IGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcuCisrZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3Mv XFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkg ZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2luZ2xlIHF1b3RlLgorK2RlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdD0ncy8nXCcnLydcJ1xcXFxcXFwnXCcnL2cnCisrCisrIyBTZWQgc3Vic3RpdHV0aW9u IHRvIGF2b2lkIGFjY2lkZW50YWwgZ2xvYmJpbmcgaW4gZXZhbGVkIGV4cHJlc3Npb25zCisrbm9f Z2xvYl9zdWJzdD0ncy9cKi9cXFwqL2cnCisrCisrIyBHbG9iYWwgdmFyaWFibGVzOgorK29maWxl PWxpYnRvb2wKKytjYW5fYnVpbGRfc2hhcmVkPXllcworKworKyMgQWxsIGtub3duIGxpbmtlcnMg cmVxdWlyZSBhIGAuYScgYXJjaGl2ZSBmb3Igc3RhdGljIGxpbmtpbmcgKGV4Y2VwdCBNU1ZDLAor KyMgd2hpY2ggbmVlZHMgJy5saWInKS4KKytsaWJleHQ9YQorKworK3dpdGhfZ251X2xkPSIkbHRf Y3ZfcHJvZ19nbnVfbGQiCisrCisrb2xkX0NDPSIkQ0MiCisrb2xkX0NGTEFHUz0iJENGTEFHUyIK KysKKysjIFNldCBzYW5lIGRlZmF1bHRzIGZvciB2YXJpb3VzIHZhcmlhYmxlcworK3Rlc3QgLXog IiRDQyIgJiYgQ0M9Y2MKKyt0ZXN0IC16ICIkTFRDQyIgJiYgTFRDQz0kQ0MKKyt0ZXN0IC16ICIk TFRDRkxBR1MiICYmIExUQ0ZMQUdTPSRDRkxBR1MKKyt0ZXN0IC16ICIkTEQiICYmIExEPWxkCisr dGVzdCAteiAiJGFjX29iamV4dCIgJiYgYWNfb2JqZXh0PW8KKysKKytmb3IgY2NfdGVtcCBpbiAk Y29tcGlsZXIiIjsgZG8KKysgIGNhc2UgJGNjX3RlbXAgaW4KKysgICAgY29tcGlsZSB8ICpbXFwv XWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OworKyAgICBkaXN0Y2MgfCAqW1xc L11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OworKyAgICBcLSopIDs7CisrICAg ICopIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrY2NfYmFzZW5hbWU9YCRFQ0hPICJYJGNjX3Rl bXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCisrCisrCisr IyBPbmx5IHBlcmZvcm0gdGhlIGNoZWNrIGZvciBmaWxlLCBpZiB0aGUgY2hlY2sgbWV0aG9kIHJl cXVpcmVzIGl0CisrdGVzdCAteiAiJE1BR0lDX0NNRCIgJiYgTUFHSUNfQ01EPWZpbGUKKytjYXNl ICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorK2ZpbGVfbWFnaWMqKQorKyAgaWYgdGVzdCAiJGZp bGVfbWFnaWNfY21kIiA9ICckTUFHSUNfQ01EJzsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9ZmlsZSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9ZmlsZS4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2FzZSAkTUFHSUNfQ01EIGluCisr W1xcLypdIHwgID86W1xcL10qKQorKyAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQi ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysq KQorKyAgbHRfc2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCisrICBsdF9zYXZlX2lmcz0iJElG UyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGFjX2R1bW15PSIvdXNyL2JpbiRQQVRIX1NFUEFS QVRPUiRQQVRIIgorKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0iJGx0 X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0 ZXN0IC1mICRhY19kaXIvJHthY190b29sX3ByZWZpeH1maWxlOyB0aGVuCisrICAgICAgbHRfY3Zf cGF0aF9NQUdJQ19DTUQ9IiRhY19kaXIvJHthY190b29sX3ByZWZpeH1maWxlIgorKyAgICAgIGlm IHRlc3QgLW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KKysJY2FzZSAkZGVwbGlic19j aGVja19tZXRob2QgaW4KKysJImZpbGVfbWFnaWMgIiopCisrCSAgZmlsZV9tYWdpY19yZWdleD1g ZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwoLipcKSJgCisrCSAg TUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisrCSAgaWYgZXZhbCAkZmlsZV9tYWdp Y19jbWQgXCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAorKwkgICAgJEVHUkVQ ICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKysJICAgIDoKKysJICBlbHNl CisrCSAgICBjYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogdGhlIGNvbW1hbmQg bGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAorKyoqKiAkZmlsZV9tYWdp Y19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4KKysq KiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJl ZCBsaWJyYXJpZXMKKysqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0aW9u IG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKKysqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJyYXJp ZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKKysqKiogbGlicmFyaWVz IHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywgeW91 CisrKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBtYW5h Z2VyIGFuZC9vciB0bworKyoqKiBidWctbGlidG9vbEBnbnUub3JnCisrCisrX0xUX0VPRgorKwkg IGZpIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGJyZWFrCisrICAgIGZpCisrICBkb25l CisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgIE1BR0lDX0NNRD0iJGx0X3NhdmVfTUFHSUNfQ01E IgorKyAgOzsKKytlc2FjCisrZmkKKysKKytNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NN RCIKKytpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1CisrJGFzX2VjaG8gIiRNQUdJQ19DTUQi ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrCisrCisrCisraWYgdGVz dCAteiAiJGx0X2N2X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rv b2xfcHJlZml4IjsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yIGZpbGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBmaWxlLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX01BR0lDX0NNRCtzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRNQUdJQ19DTUQg aW4KKytbXFwvKl0gfCAgPzpbXFwvXSopCisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lD X0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7 OworKyopCisrICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3NhdmVfaWZz PSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgYWNfZHVtbXk9Ii91c3IvYmluJFBBVEhf U0VQQVJBVE9SJFBBVEgiCisrICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KKysgICAgSUZT PSIkbHRfc2F2ZV9pZnMiCisrICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisrICAg IGlmIHRlc3QgLWYgJGFjX2Rpci9maWxlOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0aF9NQUdJQ19D TUQ9IiRhY19kaXIvZmlsZSIKKysgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2Zp bGUiOyB0aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCSJmaWxlX21hZ2lj ICIqKQorKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIg OiAiZmlsZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNf Q01EIgorKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUg Mj4gL2Rldi9udWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9u dWxsOyB0aGVuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0IDw8X0xUX0VPRiAxPiYyCisr CisrKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVk IGxpYnJhcmllcywKKysqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBs aWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCisrKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29s IG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCisrKioqIGFzIHN1Y2guICBU aGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0Cisr KioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGgg c3VjaCBsaWJ0b29sCisrKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlz IHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQorKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhl IHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KKysqKiogYnVnLWxpYnRv b2xAZ251Lm9yZworKworK19MVF9FT0YKKysJICBmaSA7OworKwllc2FjCisrICAgICAgZmkKKysg ICAgICBicmVhaworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBN QUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKKysgIDs7CisrZXNhYworK2ZpCisrCisrTUFH SUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisraWYgdGVzdCAtbiAiJE1BR0lDX0NNRCI7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRNQUdJQ19DTUQi ID4mNQorKyRhc19lY2hvICIkTUFHSUNfQ01EIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0K KytmaQorKworKworKyAgZWxzZQorKyAgICBNQUdJQ19DTUQ9OgorKyAgZmkKKytmaQorKworKyAg ZmkKKysgIDs7CisrZXNhYworKworKyMgVXNlIEMgZm9yIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRp b24gaW4gdGhlIGxpYnRvb2wgc2NyaXB0CisrCisrbHRfc2F2ZV9DQz0iJENDIgorK2FjX2V4dD1j CisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrCisr IyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jCisr CisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMgdGVzdCBzb3VyY2VzLgor K29iamV4dD1vCisrb2JqZXh0PSRvYmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1w bGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVf dmFyaWFibGUgPSAwOyIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0 cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oKXtyZXR1cm4oMCk7fScKKysK KysKKysKKysKKysKKysKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNl IENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3 ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdT In0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgor K2NvbXBpbGVyPSRDQworKworKyMgU2F2ZSB0aGUgZGVmYXVsdCBjb21waWxlciwgc2luY2UgaXQg Z2V0cyBvdmVyd3JpdHRlbiB3aGVuIHRoZSBvdGhlcgorKyMgdGFncyBhcmUgYmVpbmcgdGVzdGVk LCBhbmQgX0xUX1RBR1ZBUihjb21waWxlciwgW10pIGlzIGEgTk9QLgorK2NvbXBpbGVyX0RFRkFV TFQ9JENDCisrCisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNv ZGUKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2Nv bXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19jb21waWxlIiAy PiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19s dF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gY29uZnRlc3Qq CisrCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9s aW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfbGluayIgMj4mMSA+ L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfbGlu a2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRSTSAtciBjb25mdGVzdCoKKysK KysKKysjIyBDQVZFQVQgRU1QVE9SOgorKyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0 aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisrIyMgdGhlIHJ1bm5pbmcg b3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0 bHkKKysjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KKytpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0 aGVuCisrCisrbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9CisrCisraWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KKysgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPScg LWZuby1idWlsdGluJworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGlmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8t ZXhjZXB0aW9ucy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9y dHRpX2V4Y2VwdGlvbnMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnM9bm8K KysgICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICBlY2hvICIkbHRfc2ltcGxl X2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBsdF9jb21waWxlcl9m bGFnPSItZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24g ZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikg YmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4K KysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNr c2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhl biksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICAjIFRoZSBvcHRpb24g aXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgorKyAg IGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxB R1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpj b25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2Nv bXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6OTI4MjogJGx0X2NvbXBp bGVcIiIgPiY1KQorKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCisrICAg YWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6 OTI4NjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYg dGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCisrICAgICAjIFRoZSBjb21waWxlciBjYW4gb25s eSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBT byBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1 dC4KKysgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAn L14kL2QnID5jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVz dC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBk aWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBs dF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz15ZXMKKysgICAgIGZpCisrICAgZmkK KysgICAkUk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMiID4mNQorKyRhc19l Y2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMiID4mNjsgfQorKworK2lm IHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMiID0geHllczsgdGhl bgorKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0iJGx0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiCisrZWxzZQorKyAg ICA6CisrZmkKKysKKytmaQorKworKworKworKworKworKworKyAgbHRfcHJvZ19jb21waWxlcl93 bD0KKytsdF9wcm9nX2NvbXBpbGVyX3BpYz0KKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0KKysK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRp b24gdG8gcHJvZHVjZSBQSUMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkY29tcGls ZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uICIgPiY2OyB9CisrCisrICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYz0nLXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgor KyAgICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQg cHJvY2Vzc29yCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGlu CisrICAgICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdh T1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElD JworKyAgICAgICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5l ZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKKysg ICAgICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1 aWxkaW5nIGFueXRoaW5nIGJldHRlciwKKysgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgor KyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctbTY4MDIwIC1yZXNpZGVudDMyIC1t YWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7Owor KworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9z ZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMu CisrICAgICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNl Z2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4g dGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGlu IGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICAj IEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBm b3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMK KysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLURETExfRVhQT1JUJworKyAgICAgIDs7Cisr CisrICAgIGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQg b24gdGhpcyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4g TUhfRFlMSUIgZmlsZXMKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZuby1jb21tb24n CisrICAgICAgOzsKKysKKysgICAgaHB1eCopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQg Zm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0CisrICAgICAgIyBQQSBIUC1V WC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCisr ICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4K KysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEqNjQqKQorKwkjICtaIHRoZSBk ZWZhdWx0CisrCTs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJwor Kwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQorKyAg ICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2Vu IGNvZGUuCisrICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0 IHJ1bnRpbWUuCisrICAgICAgOzsKKysKKysgICAgbXNkb3NkamdwcCopCisrICAgICAgIyBKdXN0 IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNoYXJlZCBs aWJyYXJpZXMKKysgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0uCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZW5hYmxl X3NoYXJlZD1ubworKyAgICAgIDs7CisrCisrICAgICpudG8qIHwgKnFueCopCisrICAgICAgIyBR TlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBv dGhlcndpc2UKKysgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAqKQor KyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJbHRfcHJvZ19jb21waWxlcl9waWM9 LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxz ZQorKyAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFncyB0aHJv dWdoIHRoZSBzeXN0ZW0gY29tcGlsZXIuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgYWl4 KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICAgIGlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vz c29yCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICBlbHNlCisr CWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBv czIqIHwgY2VnY2MqKQorKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBm aWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKysgICAgICAjIGJ1aWx0IGZvciBpbmNs dXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgor KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQnCisrICAgICAgOzsKKysK KysgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAgICAgbHRfcHJvZ19jb21waWxl cl93bD0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBh bmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAg Y2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVm YXVsdAorKwk7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPScrWicKKysJOzsK KysgICAgICBlc2FjCisrICAgICAgIyBJcyB0aGVyZSBhIGJldHRlciBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRsZWQgQ0M/CisrICAgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJworKyAgICAgIDs7CisrCisrICAg IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93 bD0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQuCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisr ICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisrICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysg ICAgICAjIG9sZCBJbnRlbCBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4K KysgICAgICBlY2MqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKwlsdF9wcm9nX2Nv bXBpbGVyX3BpYz0nLUtQSUMnCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctc3RhdGljJwor KyAgICAgICAgOzsKKysgICAgICAjIGljYyB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3aXRoIEdD Qy4KKysgICAgICAjIElDQyAxMCBkb2Vzbid0IGFjY2VwdCAtS1BJQyBhbnkgbW9yZS4KKysgICAg ICBpY2MqIHwgaWZvcnQqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKwlsdF9wcm9n X2NvbXBpbGVyX3BpYz0nLWZQSUMnCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctc3RhdGlj JworKyAgICAgICAgOzsKKysgICAgICAjIExhaGV5IEZvcnRyYW4gOC4xLgorKyAgICAgIGxmOTUq KQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0n LS1zaGFyZWQnCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctLXN0YXRpYycKKysJOzsKKysg ICAgICBwZ2NjKiB8IHBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikKKysgICAgICAgICMgUG9ydGxh bmQgR3JvdXAgY29tcGlsZXJzICgqbm90KiB0aGUgUGVudGl1bSBnY2MgY29tcGlsZXIsCisrCSMg d2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9 Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZnBpYycKKysJbHRfcHJvZ19jb21waWxl cl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgICAgOzsKKysgICAgICBjY2MqKQorKyAgICAgICAg bHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMg UElDLgorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAg ICAgICAgOzsKKysgICAgICB4bCopCisrCSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAuMSBvbiBQ UEMKKysJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysJbHRfcHJvZ19jb21waWxlcl9waWM9 Jy1xcGljJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXFzdGF0aWNsaW5rJworKwk7Owor KyAgICAgICopCisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikK KysJICAjIFN1biBDIDUuOQorKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysJICBs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrCSAgbHRfcHJvZ19jb21waWxlcl93 bD0nLVdsLCcKKysJICA7OworKwkqU3VuXCBGKikKKysJICAjIFN1biBGb3J0cmFuIDguMyBwYXNz ZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCisrCSAgbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1LUElDJworKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycK KysJICBsdF9wcm9nX2NvbXBpbGVyX3dsPScnCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAg IGVzYWMKKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfcGljPSctS1BJQycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMn CisrICAgICAgOzsKKysKKysgICAgKm50byogfCAqcW54KikKKysgICAgICAjIFFOWCB1c2VzIEdO VSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQor KyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0n LWZQSUMgLXNoYXJlZCcKKysgICAgICA7OworKworKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSop CisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAjIEFsbCBPU0YvMSBj b2RlIGlzIFBJQy4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQn CisrICAgICAgOzsKKysKKysgICAgcmRvcyopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWM9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Yz0nLUJzdGF0aWMnCisrICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBmNzcqIHwg ZjkwKiB8IGY5NSopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1Rb3B0aW9uIGxkICc7OworKyAg ICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnOzsKKysgICAgICBlc2FjCisrICAg ICAgOzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctUW9w dGlvbiBsZCAnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1QSUMnCisrICAgICAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0 IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSct V2wsJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysgICAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAq KQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKysJbHRfcHJvZ19jb21waWxlcl9w aWM9Jy1LY29uZm9ybV9waWMnCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycK KysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMu MnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0n LVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisrICAgICAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHVuaWNvcyop CisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBp bGVyX2Nhbl9idWlsZF9zaGFyZWQ9bm8KKysgICAgICA7OworKworKyAgICB1dHM0KikKKysgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLXBpYycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYz0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBsdF9wcm9nX2Nv bXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQ9bm8KKysgICAgICA7OworKyAgICBlc2FjCisrICBmaQor KworK2Nhc2UgJGhvc3Rfb3MgaW4KKysgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3Vw cG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgorKyAgKmRqZ3BwKikKKysgICAgbHRfcHJv Z19jb21waWxlcl9waWM9CisrICAgIDs7CisrICAqKQorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0iJGx0X3Byb2dfY29tcGlsZXJfcGljIC1EUElDIgorKyAgICA7OworK2VzYWMKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfcHJvZ19jb21waWxlcl9waWMiID4mNQor KyRhc19lY2hvICIkbHRfcHJvZ19jb21waWxlcl9waWMiID4mNjsgfQorKworKworKworKworKwor KworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3Mu CisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyI7IHRoZW4KKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0 X3Byb2dfY29tcGlsZXJfcGljIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAk Y29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljIHdvcmtzLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcytzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9n X2NvbXBpbGVyX3BpY193b3Jrcz1ubworKyAgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4 dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFj X2V4dAorKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX3BpYyAtRFBJQyIK KysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdT IHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRl c3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRz ZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBh IGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3Jy ZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8g YXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIg fCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6 OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsg dCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAi XCJcJGFzX21lOjk2MjE6ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBp bGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBjb25mdGVzdC5l cnIgPiY1CisrICAgZWNobyAiJGFzX21lOjk2MjU6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg IGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgorKyAg ICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYg bm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBv dGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisrICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJf Ym9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisrICAgICAkU0VE ICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgIGlmIHRl c3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4v ZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3M9eWVz CisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtz IiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzIiA+JjY7IH0K KysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzIiA9IHh5ZXM7IHRo ZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWMgaW4KKysgICAgICIiIHwgIiAiKikg OzsKKysgICAgICopIGx0X3Byb2dfY29tcGlsZXJfcGljPSIgJGx0X3Byb2dfY29tcGlsZXJfcGlj IiA7OworKyAgICAgZXNhYworK2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWM9CisrICAg ICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQ9bm8KKytmaQorKworK2ZpCisrCisr CisrCisrCisrCisrCisrIworKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBh Y3R1YWxseSB3b3Jrcy4KKysjCisrd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBsdF90bXBf c3RhdGljX2ZsYWc9XCIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNcIgorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9z dGF0aWNfZmxhZyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVy IHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29t cGlsZXJfc3RhdGljX3dvcmtzPW5vCisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICBM REZMQUdTPSIkTERGTEFHUyAkbHRfdG1wX3N0YXRpY19mbGFnIgorKyAgIGVjaG8gIiRsdF9zaW1w bGVfbGlua190ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGlmIChldmFsICRhY19s aW5rIDI+Y29uZnRlc3QuZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgor KyAgICAgIyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlm IG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MK KysgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICMgQXBwZW5kIGFu eSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCisrICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4m NQorKyAgICAgICAkRUNITyAiWCRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcv XiQvZCcgPiBjb25mdGVzdC5leHAKKysgICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0 ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0 ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9z dGF0aWNfd29ya3M9eWVzCisrICAgICAgIGZpCisrICAgICBlbHNlCisrICAgICAgIGx0X2N2X3By b2dfY29tcGlsZXJfc3RhdGljX3dvcmtzPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRSTSAt ciBjb25mdGVzdCoKKysgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGlj X3dvcmtzIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtz IiA+JjY7IH0KKysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtz IiA9IHh5ZXM7IHRoZW4KKysgICAgOgorK2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWM9CisrZmkKKysKKysKKysKKysKKysKKysKKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0 IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8g ZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBp bGVyX2NfbytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz1ubworKyAgICRSTSAtciBjb25mdGVz dCAyPi9kZXYvbnVsbAorKyAgIG1rZGlyIGNvbmZ0ZXN0CisrICAgY2QgY29uZnRlc3QKKysgICBt a2RpciBvdXQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0 ZXN0LiRhY19leHQKKysKKysgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRh Y19vYmpleHQiCisrICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBs YXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKKysgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5p bmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgorKyAgICMgTm90ZSB0aGF0ICRhY19j b21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKKysg ICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxk IHdvcmsgY29ycmVjdGx5LgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRT RUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQn IFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBc CisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwk YXNfbWU6OTcyNjogJGx0X2NvbXBpbGVcIiIgPiY1KQorKyAgIChldmFsICIkbHRfY29tcGlsZSIg Mj5vdXQvY29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBvdXQvY29uZnRl c3QuZXJyID4mNQorKyAgIGVjaG8gIiRhc19tZTo5NzMwOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29i amV4dAorKyAgIHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGln bm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0 aGVyZSBhcmUgd2FybmluZ3MKKysgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0 ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14k L2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKKysgICAgIGlm IHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQv Y29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxl cl9jX289eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgY2htb2QgdSt3IC4gMj4mNQorKyAgICRS TSBjb25mdGVzdCoKKysgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5 IG91dC9paV9maWxlcy8gZm9yCisrICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCisrICAgdGVz dCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9m aWxlcworKyAgICRSTSBvdXQvKiAmJiBybWRpciBvdXQKKysgICBjZCAuLgorKyAgICRSTSAtciBj b25mdGVzdAorKyAgICRSTSBjb25mdGVzdCoKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY1CisrJGFzX2VjaG8g IiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY2OyB9CisrCisrCisrCisrCisrCisrCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRz IC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNv bXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX28rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX289 bm8KKysgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAor KyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxh Zz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24g ZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikg YmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4K KysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNr c2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhl biksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBl Y2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYk bHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0 X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidg CisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjk3ODE6ICRsdF9jb21waWxlXCIiID4mNSkKKysg ICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9 JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6OTc4NTog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAt cyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVuCisrICAgICAjIFRoZSBjb21waWxl ciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAor KyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICAkRUNITyAiWCRf bHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IG91dC9jb25mdGVz dC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQv Y29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZm IG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAg ICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPXllcworKyAgICAgZmkKKysgICBmaQorKyAgIGNo bW9kIHUrdyAuIDI+JjUKKysgICAkUk0gY29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVy IHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUg aW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmls ZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0Cisr ICAgY2QgLi4KKysgICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0gY29uZnRlc3QqCisrCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxl cl9jX28iID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX28iID4mNjsgfQor KworKworKworKworK2hhcmRfbGlua3M9Im5vdHRlc3RlZCIKKytpZiB0ZXN0ICIkbHRfY3ZfcHJv Z19jb21waWxlcl9jX28iID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCisr ICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkg dGhlIHVzZXIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiB3ZSBj YW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHdl IGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQorKyAgaGFyZF9saW5rcz15ZXMK KysgICRSTSBjb25mdGVzdCoKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVs bCAmJiBoYXJkX2xpbmtzPW5vCisrICB0b3VjaCBjb25mdGVzdC5hCisrICBsbiBjb25mdGVzdC5h IGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0 ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQorKyRhc19lY2hvICIkaGFyZF9saW5r cyIgPiY2OyB9CisrICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBubzsgdGhlbgorKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQg XGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFr ZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30KKysgICAgbmVlZF9sb2Nrcz13YXJuCisrICBmaQor K2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytmaQorKworKworKworKworKworKworKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5r ZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQg bGlicmFyaWVzLi4uICIgPiY2OyB9CisrCisrICBydW5wYXRoX3Zhcj0KKysgIGFsbG93X3VuZGVm aW5lZF9mbGFnPQorKyAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPW5vCisrICBhcmNoaXZlX2NtZHM9 CisrICBhcmNoaXZlX2V4cHN5bV9jbWRzPQorKyAgY29tcGlsZXJfbmVlZHNfb2JqZWN0PW5vCisr ICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPW5vCisrICBleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9CisrICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gJGxpYm9ianMgJGNvbnZl bmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29y dCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICBoYXJkY29kZV9hdXRvbWF0aWM9bm8KKysg IGhhcmRjb2RlX2RpcmVjdD1ubworKyAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPW5vCisrICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQorKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19s ZD0KKysgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9CisrICBoYXJkY29kZV9taW51c19MPW5v CisrICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPXVuc3VwcG9ydGVkCisrICBpbmhlcml0X3JwYXRo PW5vCisrICBsaW5rX2FsbF9kZXBsaWJzPXVua25vd24KKysgIG1vZHVsZV9jbWRzPQorKyAgbW9k dWxlX2V4cHN5bV9jbWRzPQorKyAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0KKysgIG9sZF9h cmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPQorKyAgdGhyZWFkX3NhZmVfZmxhZ19zcGVjPQorKyAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9CisrICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUg YSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCisrICAjIGlu Y2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAorKyAgaW5jbHVkZV9leHBzeW1zPQorKyAgIyBleGNs dWRlX2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVkIHJlZ2V4cCBvZiBzeW1ib2xzIHRvIGV4Y2x1 ZGUKKysgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0 IG5vdCBtYXRjaCBiZWdpbm5pbmcgb3IKKysgICMgZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxi Y3wuKmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJjJywKKysgICMgYXMg d2VsbCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgYGQnLgorKyAgZXhjbHVkZV9leHBzeW1z PSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCisrICAjIEFsdGhvdWdo IF9HTE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZhbGlkIHN5bWJvbCBDIG5hbWUsIG1vc3QgYS5v dXQKKysgICMgcGxhdGZvcm1zIChhYil1c2UgaXQgaW4gUElDIGNvZGUsIGJ1dCB0aGVpciBsaW5r ZXJzIGdldCBjb25mdXNlZCBpZgorKyAgIyB0aGUgc3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJl bmNlZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fubm90CisrICAjIHJlbHkgb24gdGhpcyBzeW1i b2wgbmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KKysgICMg cHJlbG9hZGVkIHN5bWJvbCB0YWJsZXMuCisrICAjIEV4Y2x1ZGUgc2hhcmVkIGxpYnJhcnkgaW5p dGlhbGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJvbHMuCisrICBleHRyYWN0X2V4cHN5bXNfY21k cz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8 IGNlZ2NjKikKKysgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3Rl ZCBpbiBhIGxvb29vbmcgdGltZQorKyAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVu dGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysr LgorKyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKysgICAgICB3aXRoX2dudV9sZD1u bworKyAgICBmaQorKyAgICA7OworKyAgaW50ZXJpeCopCisrICAgICMgd2UganVzdCBob3BlL2Fz c3VtZSB0aGlzIGlzIGdjYyBhbmQgbm90IGM4OSAoPSBNU1ZDKyspCisrICAgIHdpdGhfZ251X2xk PXllcworKyAgICA7OworKyAgb3BlbmJzZCopCisrICAgIHdpdGhfZ251X2xkPW5vCisrICAgIDs7 CisrICBlc2FjCisrCisrICBsZF9zaGxpYnM9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0geWVzOyB0aGVuCisrICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xh cmMgc2hvdWxkIGJlIGVtcHR5CisrICAgIHdsYXJjPScke3dsfScKKysKKysgICAgIyBTZXQgc29t ZSBkZWZhdWx0cyBmb3IgR05VIGxkIHdpdGggc2hhcmVkIGxpYnJhcnkgc3VwcG9ydC4gVGhlc2UK KysgICAgIyBhcmUgcmVzZXQgbGF0ZXIgaWYgc2hhcmVkIGxpYnJhcmllcyBhcmUgbm90IHN1cHBv cnRlZC4gUHV0dGluZyB0aGVtCisrICAgICMgaGVyZSBhbGxvd3MgdGhlbSB0byBiZSBvdmVycmlk ZGVuIGlmIG5lY2Vzc2FyeS4KKysgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKKysgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICBl eHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysgICAgIyBh bmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorKyAg ICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251 bGw7IHRoZW4KKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0iJHdsYXJjIictLXdob2xl LWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAg ZWxzZQorKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQorKyAgICBmaQorKyAgICBzdXBw b3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KKysgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCisrICAg ICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05XS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNp b25zIDwgMi4xMQorKyAgICAgICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNp b25pbmc9eWVzIDs7ICMgUkg3LjMgLi4uCisrICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBw b3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgorKyAgICAgICpc IDIuMTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCisrICAgICAgKikgc3VwcG9ydHNfYW5v bl92ZXJzaW9uaW5nPXllcyA7OworKyAgICBlc2FjCisrCisrICAgICMgU2VlIGlmIEdOVSBsZCBz dXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFp eFszLTldKikKKysgICAgICAjIE9uIEFJWC9QUEMsIHRoZSBHTlUgbGlua2VyIGlzIHZlcnkgYnJv a2VuCisrICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCisrCWxkX3NobGli cz1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogdGhlIEdOVSBsaW5r ZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi45LjEsIGlzIHJlcG9ydGVkCisrKioqIHRvIGJl IHVuYWJsZSB0byByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBSVguCisrKioq IFRoZXJlZm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0 LiAgSWYgeW91CisrKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5 IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAorKyoqKiBzbyB0aGF0IGEgbm9uLUdOVSBsaW5rZXIg aXMgZm91bmQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VPRgorKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAg ICBwb3dlcnBjKQorKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNv IHN1cHBvcnQKKysgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JworKyAgICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JycKKysgICAgICAgIDs7CisrICAg ICAgbTY4aykKKysgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRpci9h Mml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9v YmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRv dXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFq b3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVW SVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAk QVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYm IGEyaXhsaWJyYXJ5IC0zMiknCisrICAgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nLUwkbGliZGlyJworKyAgICAgICAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAg ICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBiZW9zKikKKysgICAgICBpZiAk TEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rl di9udWxsOyB0aGVuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrCSMgSm9z ZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MK KysJIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21lIGludmVzdGlnYXRp b24uICBGSVhNRQorKwlhcmNoaXZlX2NtZHM9JyRDQyAtbm9zdGFydCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAg ICBlbHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgY3ln d2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICAgICMgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCApIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAorKyAgICAg ICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisrICAgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFn PXVuc3VwcG9ydGVkCisrICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPW5vCisrICAgICAgZW5h YmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMKKysgICAgICBleHBvcnRfc3ltYm9s c19jbWRzPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8 ICRTRUQgLWUgJ1wnJy9eW0JDREdSU11bIF0vcy8uKlsgXVwoW14gXSpcKS9cMSBEQVRBLydcJycg fCAkU0VEIC1lICdcJycvXltBSVRXXVsgXS9zLy4qWyBdLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAk ZXhwb3J0X3N5bWJvbHMnCisrCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ2F1 dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgYXJjaGl2ZV9jbWRzPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1p bXBsaWIgLVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJl YWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMg aXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSdpZiB0ZXN0 ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorKwkgIGNwICRl eHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJZWxzZQorKwkgIGVj aG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwkgIGNhdCAkZXhwb3J0 X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCWZpfgorKwkkQ0MgLXNo YXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1h Z2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysgICAgICBlbHNl CisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgaW50ZXJpeFsz LTldKikKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBh dGhfdmFyPW5vCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgs JGxpYmRpcicKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCisrICAg ICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ug b2YgYSBicm9rZW4gZ2NjLgorKyAgICAgICMgSW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUg bG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKKysgICAgICAjIGRlZmF1bHQp IGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVt b3J5CisrICAgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9p ZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKyAgICAgICMgMjU2IEtpQi1hbGlnbmVkIGltYWdl IGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKKysgICAgICAj IHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2Jyaygy KSBzcGFjZS4KKysgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1pbWFn ZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcy ODBgIC1vICRsaWInCisrICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nc2VkICJzLF4sXywiICRl eHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQg JHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25h bWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBz eW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYy MTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysgICAgICA7OworKworKyAgICBnbnUqIHwgbGlu dXgqIHwgdHBmKiB8IGsqYnNkKi1nbnUpCisrICAgICAgdG1wX2RpZXQ9bm8KKysgICAgICBpZiB0 ZXN0ICIkaG9zdF9vcyIgPSBsaW51eC1kaWV0bGliYzsgdGhlbgorKwljYXNlICRjY19iYXNlbmFt ZSBpbgorKwkgIGRpZXRcICopIHRtcF9kaWV0PXllczs7CSMgbGludXgtZGlldGxpYmMgd2l0aCBz dGF0aWMgbGlua2luZyAoIWRpZXQtZHluKQorKwllc2FjCisrICAgICAgZmkKKysgICAgICBpZiAk TEQgLS1oZWxwIDI+JjEgfCAkRUdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9k ZXYvbnVsbCBcCisrCSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8KKysgICAgICB0aGVuCisrCXRt cF9hZGRmbGFnPQorKwl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcKKysJY2FzZSAkY2NfYmFzZW5h bWUsJGhvc3RfY3B1IGluCisrICAgICAgICBwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNv bXBpbGVyCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZl YGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBu ZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwi JG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRk ZmxhZz0nICRwaWNfZmxhZycKKysJICA7OworKwlwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCSMg UG9ydGxhbmQgR3JvdXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCisrCSAgd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwi XCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZl bmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0t bm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFpbicg OzsKKysJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0 CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZvcnQq LGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRmbGFn PScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIEludGVs IEZvcnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OworKwls Zjk1KikJCQkJIyBMYWhleSBGb3J0cmFuIDguMQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj PQorKwkgIHRtcF9zaGFyZWRmbGFnPSctLXNoYXJlZCcgOzsKKysJeGxbY0NdKikJCQkjIElCTSBY TCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cpCisrCSAgdG1wX3NoYXJlZGZsYWc9 Jy1xbWtzaHJvYmonCisrCSAgdG1wX2FkZGZsYWc9IDs7CisrCWVzYWMKKysJY2FzZSBgJENDIC1W IDI+JjEgfCBzZWQgNXFgIGluCisrCSpTdW5cIEMqKQkJCSMgU3VuIEMgNS45CisrCSAgd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07 IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5l d19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIk bmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgIGNvbXBpbGVy X25lZWRzX29iamVjdD15ZXMKKysJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7CisrCSpTdW5cIEYq KQkJCSMgU3VuIEZvcnRyYW4gOC4zCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwllc2Fj CisrCWFyY2hpdmVfY21kcz0nJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKKysKKysgICAgICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5n IiA9IHh5ZXM7IHRoZW4KKysgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBn bG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgIGNhdCAkZXhwb3J0 X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLnZlcn4KKysJICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUudmVyfgorKwkgICAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg JHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8g JGxpYicKKysgICAgICAgIGZpCisrCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCXhsZiopCisr CSAgIyBJQk0gWEwgRm9ydHJhbiAxMC4xIG9uIFBQQyBjYW5ub3QgY3JlYXRlIHNoYXJlZCBsaWJz IGl0c2VsZgorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSctLXdob2xlLWFyY2hpdmUkY29u dmVuaWVuY2UgLS1uby13aG9sZS1hcmNoaXZlJworKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWM9CisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nLXJwYXRoICRsaWJkaXInCisr CSAgYXJjaGl2ZV9jbWRzPSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC1vICRsaWInCisrCSAgaWYgdGVzdCAieCRzdXBwb3J0c19h bm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgorKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0n ZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAg Y2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUudmVyfgorKwkgICAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrCSAgZmkKKysJICA7OworKwllc2Fj CisrICAgICAgZWxzZQorKyAgICAgICAgbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAgICA7 OworKworKyAgICBuZXRic2QqKQorKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwg JEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJExEIC1Cc2hh cmVhYmxlICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW8gJGxpYicKKysJd2xhcmM9 CisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlh cmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmls ZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIDs7CisrCisr ICAgIHNvbGFyaXMqKQorKyAgICAgIGlmICRMRCAtdiAyPiYxIHwgJEdSRVAgJ0JGRCAyXC44JyA+ IC9kZXYvbnVsbDsgdGhlbgorKwlsZF9zaGxpYnM9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisr CisrKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBjYW5u b3QgcmVsaWFibHkKKysqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0 ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFy aWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQorKyoqKiBiaW51dGlscyB0 byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Cisr KioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2 ZSBsaW5rZXIgaXMKKysqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KKysKKytfTFRfRU9GCisr ICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czou KiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4t c3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJ bGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2NSogfCBzY28z LjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQorKyAgICAgIGNhc2UgYCRM RCAtdiAyPiYxYCBpbgorKyAgICAgICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05XS4qIHwgKlwgMi4x WzAtNV0uKikKKysJbGRfc2hsaWJzPW5vCisrCWNhdCA8PF9MVF9FT0YgMT4mMgorKworKyoqKiBX YXJuaW5nOiBSZWxlYXNlcyBvZiB0aGUgR05VIGxpbmtlciBwcmlvciB0byAyLjE2LjkxLjAuMyBj YW4gbm90CisrKioqIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNDTyBzeXN0 ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFy aWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQorKyoqKiBiaW51dGlscyB0 byByZWxlYXNlIDIuMTYuOTEuMC4zIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9k aWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhl IG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KKysKKytfTFRf RU9GCisrCTs7CisrCSopCisrCSAgIyBGb3Igc2VjdXJpdHkgcmVhc29ucywgaXQgaXMgaGlnaGx5 IHJlY29tbWVuZGVkIHRoYXQgeW91IGFsd2F5cworKwkgICMgdXNlIGFic29sdXRlIHBhdGhzIGZv ciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywgYW5kIGV4Y2x1ZGUgdGhlCisrCSAgIyBEVF9SVU5Q QVRIIHRhZyBmcm9tIGV4ZWN1dGFibGVzIGFuZCBsaWJyYXJpZXMuICBCdXQgZG9pbmcgc28KKysJ ICAjIHJlcXVpcmVzIHRoYXQgeW91IGNvbXBpbGUgZXZlcnl0aGluZyB0d2ljZSwgd2hpY2ggaXMg YSBwYWluLgorKwkgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJn ZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysJICAgIGFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lIC1vICRsaWInCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJl ZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicK KysJICBlbHNlCisrCSAgICBsZF9zaGxpYnM9bm8KKysJICBmaQorKwk7OworKyAgICAgIGVzYWMK KysgICAgICA7OworKworKyAgICBzdW5vczQqKQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1h c3NlcnQgcHVyZS10ZXh0IC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKKysgICAgICB3bGFyYz0KKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisr ICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgICopCisr ICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6Liog ZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAk bGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5 bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBlbHNlCisrCWxk X3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBpZiB0 ZXN0ICIkbGRfc2hsaWJzIiA9IG5vOyB0aGVuCisrICAgICAgcnVucGF0aF92YXI9CisrICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0KKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWM9CisrICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9CisrICAgIGZpCisrICBlbHNlCisr ICAgICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIGxpbmtl ciAobm90IEdOVSBsZCkKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgzKikKKysgICAg ICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKyAgICAgIGFsd2F5c19leHBvcnRf c3ltYm9scz15ZXMKKysgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckTEQgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1iRTokZXhwb3J0 X3N5bWJvbHMgLVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZMQUdTICRsaWIgJG91dHB1dF9v YmpkaXIvJHNvbmFtZScKKysgICAgICAjIE5vdGU6IHRoaXMgbGlua2VyIGhhcmRjb2RlcyB0aGUg ZGlyZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQorKyAgICAgICMgYXJlIG5vIGRpcmVjdG9y aWVzIHNwZWNpZmllZCBieSAtTC4KKysgICAgICBoYXJkY29kZV9taW51c19MPXllcworKyAgICAg IGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgLXogIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YyI7IHRoZW4KKysJIyBOZWl0aGVyIGRpcmVjdCBoYXJkY29kaW5nIG5vciBzdGF0aWMgbGlua2lu ZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCisrCSMgYnJva2VuIGNvbGxlY3QyLgorKwloYXJkY29kZV9k aXJlY3Q9dW5zdXBwb3J0ZWQKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFpeFs0LTld KikKKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIE9uIElBNjQs IHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0 CisrCSMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorKwlhaXhfdXNlX3J1bnRpbWVsaW5r aW5nPW5vCisrCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9IiIKKysg ICAgICBlbHNlCisrCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQg dGhlICItQyIgb3B0aW9uLgorKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1l YW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrCWlmICROTSAtViAyPiYxIHwgJEdSRVAg J0dOVScgPiAvZGV2L251bGw7IHRoZW4KKysJICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gLUJw ZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8 IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0g Ii4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwor KwllbHNlCisrCSAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252 ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8 fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwk IDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrCWZpCisrCWFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KKysKKysJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1 biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisrCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRs IGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5r aW5nLgorKwljYXNlICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSop CisrCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAgaWYgKHRlc3QgJGxkX2ZsYWcg PSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KKysJICAgIGFp eF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisrCSAgICBicmVhaworKwkgIGZpCisrCSAgZG9uZQor KwkgIDs7CisrCWVzYWMKKysKKysJZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKKysJbm9fZW50cnlf ZmxhZz0nLWJub2VudHJ5JworKyAgICAgIGZpCisrCisrICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1 dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAgICAgICMg aGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5n IGEgbGlicmFyeQorKyAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3Zl cmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisrICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9y IGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAjIGVub3Vn aCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysKKysg ICAgICBhcmNoaXZlX2NtZHM9JycKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrICAgICAg aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPXllcworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3I9JzonCisrICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKKysgICAgICBmaWxlX2xpc3Rf c3BlYz0nJHt3bH0tZiwnCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJ Y2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0uKikKKysJIyBXZSBvbmx5IHdh bnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCisrCSMgYmVsb3cg Zm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKworKwkgIGNvbGxlY3Qy bmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKKysJICBpZiB0ZXN0IC1mICIk Y29sbGVjdDJuYW1lIiAmJgorKwkgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJl c29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAorKwkgIHRoZW4KKysJICAjIFdlIGhhdmUgcmV3b3Jr ZWQgY29sbGVjdDIKKysJICA6CisrCSAgZWxzZQorKwkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIK KysJICBoYXJkY29kZV9kaXJlY3Q9dW5zdXBwb3J0ZWQKKysJICAjIEl0IGZhaWxzIHRvIGZpbmQg dW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisrCSAgIyBwYXRoIGlz IG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKKysJ ICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKKysJICBoYXJkY29kZV9taW51c19M PXllcworKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysJICBoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yPQorKwkgIGZpCisrCSAgOzsKKysJZXNhYworKwlzaGFyZWRf ZmxhZz0nLXNoYXJlZCcKKysJaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVz OyB0aGVuCisrCSAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCisrCWZpCisr ICAgICAgZWxzZQorKwkjIG5vdCB1c2luZyBnY2MKKysJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlh NjQ7IHRoZW4KKysJIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJ QS02NCwgQmV0YSAzIFJlbGVhc2UKKysJIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5n IGxpbmUgaXMgY29ycmVjdDoKKysJICBzaGFyZWRfZmxhZz0nLUcnCisrCWVsc2UKKysJICBpZiB0 ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICAgIHNoYXJlZF9m bGFnPScke3dsfS1HJworKwkgIGVsc2UKKysJICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUn CisrCSAgZmkKKysJZmkKKysgICAgICBmaQorKworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYz0nJHt3bH0tYmV4cGFsbCcKKysgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9l cyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKysgICAgICAjIHVuZGVyc2NvcmUg KF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhw b3J0LgorKyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz15ZXMKKysgICAgICBpZiB0ZXN0ICIk YWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJIyBXYXJuaW5nIC0gd2l0aG91 dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCisrCSMgLWJl cm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGli cmFyeS4KKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Jy1iZXJvaycKKysgICAgICAgICMgRGV0ZXJt aW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgorKyAg ICAgICAgIyBlbXB0eSBleGVjdXRhYmxlLgorKyAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Cisr CSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVz dCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKworK2x0X2FpeF9saWJwYXRoX3NlZD0nCisr ICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKKysJL14wLyB7CisrCSAgICBzL14wICAq XCguKlwpJC9cMS8KKysJICAgIHAKKysJfQorKyAgICB9JworK2FpeF9saWJwYXRoPWBkdW1wIC1I IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGli cGF0aF9zZWQiYAorKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmlu ZCBhbnl0aGluZy4KKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCisrICBhaXhfbGli cGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1u IC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKytmaQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0 Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK2lmIHRl c3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBm aQorKworKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6 JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRD QyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5v X2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFn fSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5 bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgIGVsc2UKKysJaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1SICRsaWJk aXI6L3Vzci9saWI6L2xpYicKKysJICBhbGxvd191bmRlZmluZWRfZmxhZz0iLXogbm9kZWZzIgor KwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicg JGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhw X3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCisrCWVsc2UKKysJICMgRGV0ZXJtaW5lIHRoZSBk ZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgorKwkgIyBlbXB0eSBl eGVjdXRhYmxlLgorKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAo YWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5r IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAg fTsgdGhlbgorKworK2x0X2FpeF9saWJwYXRoX3NlZD0nCisrICAgIC9JbXBvcnQgRmlsZSBTdHJp bmdzLywvXiQvIHsKKysJL14wLyB7CisrCSAgICBzL14wICAqXCguKlwpJC9cMS8KKysJICAgIHAK KysJfQorKyAgICB9JworK2FpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAy Pi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorKyMgQ2hlY2sg Zm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KKytpZiB0ZXN0 IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCisrICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25m dGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhf c2VkImAKKytmaQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQor KworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVz dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7 IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQorKworKwkgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysJ ICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZs YWdzLAorKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1 Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICBub191bmRlZmluZWRfZmxhZz0nICR7d2x9LWJlcm5v dG9rJworKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tYmVyb2snCisrCSAgIyBFeHBv cnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hp dmVzCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyRjb252ZW5pZW5jZScKKysJICBhcmNo aXZlX2NtZHNfbmVlZF9sYz15ZXMKKysJICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRy YWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgorKwkgIGFyY2hpdmVfZXhw c3ltX2NtZHM9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk bGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6 JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0 cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysJ ZmkKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNhc2Ug JGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21tZW50 IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAgICAgYXJjaGl2ZV9jbWRzPSck Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPScn CisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAgYXJjaGl2ZV9jbWRzPSck Uk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRs aWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUg TElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIj ZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJp eGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihj ZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgICAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICAgICAgICBoYXJkY29kZV9t aW51c19MPXllcworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAg YnNkaVs0NV0qKQorKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0tcmR5bmFtaWMKKysg ICAgICA7OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAg ICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUg dXNpbmcKKysgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorKyAgICAgICMgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywgYXMgdGhlcmUgaXMKKysg ICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyAnCisrICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKKysg ICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgorKyAg ICAgIGxpYmV4dD1saWIKKysgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywg bm90IC5zbyBmaWxlcy4KKysgICAgICBzaHJleHRfY21kcz0iLmRsbCIKKysgICAgICAjIEZJWE1F OiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisrICAgICAgYXJjaGl2ZV9j bWRzPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgYCRFQ0hPICJYJGRlcGxp YnMiIHwgJFhzZWQgLWUgJ1wnJ3MvIC1sYyQvLydcJydgIC1saW5rIC1kbGx+bGlua25hbWVzPScK KysgICAgICAjIFRoZSBsaW5rZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGJ1aWxkIGEgLmxpYiBmaWxl IGlmIHdlIGJ1aWxkIGEgRExMLgorKyAgICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J3Ry dWUnCisrICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIg cHJvZ3JhbS4KKysgICAgICBvbGRfYXJjaGl2ZV9jbWRzPSdsaWIgLU9VVDokb2xkbGliJG9sZG9i anMkb2xkX2RlcGxpYnMnCisrICAgICAgZml4X3NyY2ZpbGVfcGF0aD0nYGN5Z3BhdGggLXcgIiRz cmNmaWxlImAnCisrICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMK KysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKworKworKyAgYXJjaGl2 ZV9jbWRzX25lZWRfbGM9bm8KKysgIGhhcmRjb2RlX2RpcmVjdD1ubworKyAgaGFyZGNvZGVfYXV0 b21hdGljPXllcworKyAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj11bnN1cHBvcnRlZAorKyAgd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWM9JycKKysgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrICBhbGxv d191bmRlZmluZWRfZmxhZz0iJF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkIgorKyAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysgICAgIGlmb3J0KikgX2x0X2Rhcl9jYW5fc2hhcmVkPXllcyA7OworKyAg ICAgKikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKKysgIGVzYWMKKysgIGlmIHRlc3QgIiRf bHRfZGFyX2Nhbl9zaGFyZWQiID0gInllcyI7IHRoZW4KKysgICAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9ZWNobworKyAgICBhcmNoaXZlX2NtZHM9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191 bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxh Z3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3Np bmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisrICAgIG1vZHVsZV9jbWRzPSJcJENDIFwkYWxsb3df dW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29t cGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCisrICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9InNl ZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFt ZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFn IC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9u YW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtf bHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgbW9kdWxlX2V4cHN5bV9j bWRzPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGly L1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAt byBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0 X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrCisrICBlbHNlCisrICBsZF9zaGxp YnM9bm8KKysgIGZpCisrCisrICAgICAgOzsKKysKKysgICAgZGd1eCopCisrICAgICAgYXJjaGl2 ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwor KyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICBmcmVl YnNkMSopCisrICAgICAgbGRfc2hsaWJzPW5vCisrICAgICAgOzsKKysKKysgICAgIyBGcmVlQlNE IDIuMi5bMDEyXSBhbGxvd3MgdXMgdG8gaW5jbHVkZSBjKytydDAubyB0byBnZXQgQysrIGNvbnN0 cnVjdG9yCisrICAgICMgc3VwcG9ydC4gIEZ1dHVyZSB2ZXJzaW9ucyBkbyB0aGlzIGF1dG9tYXRp Y2FsbHksIGJ1dCBhbiBleHBsaWNpdCBjKytydDAubworKyAgICAjIGRvZXMgbm90IGJyZWFrIGFu eXRoaW5nLCBhbmQgaGVscHMgc2lnbmlmaWNhbnRseSAoYXQgdGhlIGNvc3Qgb2YgYSBsaXR0bGUK KysgICAgIyBleHRyYSBzcGFjZSkuCisrICAgIGZyZWVic2QyLjIqKQorKyAgICAgIGFyY2hpdmVf Y21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncyAvdXNyL2xpYi9jKytydDAubycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICAjIFVuZm9ydHVuYXRlbHksIG9s ZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUuCisrICAg IGZyZWVic2QyKikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfZGlyZWN0 PXllcworKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVz ZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KKysgICAgZnJlZWJzZCogfCBk cmFnb25mbHkqKQorKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgaHB1eDkqKQorKyAg ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJFJNICRvdXRw dXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxs X2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJFJN ICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0 cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAk b3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1l ICRsaWInCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3ds fStiICR7d2x9JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysg ICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrCisrICAgICAgIyBoYXJkY29kZV9taW51c19MOiBO b3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVs dCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysgICAgICBoYXJkY29kZV9taW51c19MPXllcwor KyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysgICAgICA7OworKwor KyAgICBocHV4MTAqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVf bGQiID0gbm87IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfSto ICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRz PSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IG5vOyB0aGVuCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2Ig JHt3bH0kbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPScrYiAkbGliZGly JworKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysJaGFyZGNvZGVfZGlyZWN0PXllcwor KwloYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCisrCWV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Yz0nJHt3bH0tRScKKysJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFy Y2ggUEFUSCwKKysJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnku CisrCWhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBo cHV4MTEqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0g bm87IHRoZW4KKysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2NCopCisrCSAgYXJjaGl2ZV9j bWRzPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0KikKKysJICBhcmNoaXZlX2Nt ZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVs dHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7 CisrCSopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9 JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWVzYWMKKysgICAgICBlbHNlCisrCWNh c2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1iICR7 d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJworKwkgIDs7CisrCWlhNjQqKQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1iICR7d2x9K2gg JHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0Mg LWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisr ICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCWhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3I9OgorKworKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0Knxp YTY0KikKKysJICBoYXJkY29kZV9kaXJlY3Q9bm8KKysJICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy PW5vCisrCSAgOzsKKysJKikKKysJICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrCSAgaGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlPXllcworKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0t RScKKysKKysJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQ QVRILAorKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5Lgor KwkgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZl cnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJIyBUcnkgdG8gdXNlIHRoZSAtZXhwb3J0ZWRf c3ltYm9sIGxkIG9wdGlvbiwgaWYgaXQgZG9lcyBub3QKKysJIyB3b3JrLCBhc3N1bWUgdGhhdCAt ZXhwb3J0c19maWxlIGRvZXMgbm90IHdvcmsgZWl0aGVyIGFuZAorKwkjIGltcGxpY2l0bHkgZXhw b3J0IGFsbCBzeW1ib2xzLgorKyAgICAgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICAg ICAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sICR7d2x9 Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYvbnVsbCIKKysgICAgICAgIGNhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorK2ludCBmb28odm9pZCkge30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3Ry eT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytl c2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vy cm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg PSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRo ZW4KKysgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAk WHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2Nh dGlvbnMgJHt3bH0tZXhwb3J0c19maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisr CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisr c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworK2ZpCisrCisrcm0gLXJm IGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKyAg ICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAk RUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5 ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3lt X2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29u YW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9u ICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9z b19sb2NhdGlvbnMgLWV4cG9ydHNfZmlsZSAkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAg ICBmaQorKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPSdubycKKysgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvcj06CisrICAgICAgaW5oZXJpdF9ycGF0aD15ZXMKKysgICAgICBs aW5rX2FsbF9kZXBsaWJzPXllcworKyAgICAgIDs7CisrCisrICAgIG5ldGJzZCopCisrICAgICAg aWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRo ZW4KKysJYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJyAgIyBhLm91dAorKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRz PSckTEQgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAg ICAgIyBFTEYKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1S JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgIG5ld3NvczYpCisrICAgICAgYXJjaGl2 ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICBoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yPToKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisr ICAgICAgOzsKKysKKysgICAgKm50byogfCAqcW54KikKKysgICAgICA7OworKworKyAgICBvcGVu YnNkKikKKysgICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwloYXJk Y29kZV9kaXJlY3Q9eWVzCisrCWhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysJaGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlPXllcworKwlpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1F IC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVu YnNkMi44LXBvd2VycGMiOyB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgYXJj aGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9y dF9zeW1ib2xzJworKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRs aWJkaXInCisrCSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJworKwllbHNlCisr CSAgY2FzZSAkaG9zdF9vcyBpbgorKwkgICBvcGVuYnNkWzAxXS4qIHwgb3BlbmJzZDIuWzAtN10g fCBvcGVuYnNkMi5bMC03XS4qKQorKwkgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxl IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisrCSAgICAgOzsKKysJICAgKikKKysJICAg ICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgIDs7CisrCSAgZXNhYworKwlmaQorKyAgICAg IGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBvczIq KQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICBo YXJkY29kZV9taW51c19MPXllcworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9y dGVkCisrICAgICAgYXJjaGl2ZV9jbWRzPSckRUNITyAiTElCUkFSWSAkbGlibmFtZSBJTklUSU5T VEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICJERVNDUklQVElPTiBc IiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyBEQVRBID4+ ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiIFNJTkdMRSBOT05TSEFSRUQiID4+ ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyBFWFBPUlRTID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCisrICAgICAgb2xkX2FyY2hp dmVfZnJvbV9uZXdfY21kcz0nZW14aW1wIC1vICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmEgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIDs7CisrCisrICAgIG9zZjMqKQorKyAg ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScg JHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNo YXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAk RUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0t dXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp YicKKysgICAgICBlbHNlCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29s dmVkIFwqJworKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxh Z30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAk WHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAk bGliJworKyAgICAgIGZpCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9J25vJworKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysg ICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysgICAgICA7OworKworKyAgICBvc2Y0 KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKKysg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhbGxvd191bmRlZmluZWRfZmxhZz0n ICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFyY2hpdmVfY21kcz0nJENDIC1z aGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAk WHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2Nh dGlvbnMgLW8gJGxpYicKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgg JHt3bH0kbGliZGlyJworKyAgICAgIGVsc2UKKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAtZXhw ZWN0X3VucmVzb2x2ZWQgXConCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNv bmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lv biAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0v c29fbG9jYXRpb25zIC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2ZvciBpIGluIGBj YXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJv bCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgcHJpbnRmICIlc1xcbiIgIi1oaWRkZW4iPj4gJGxp Yi5leHB+CisrCSRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0taW5wdXQg JHt3bH0kbGliLmV4cCAkY29tcGlsZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFtZSAk c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVy c3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9j YXRpb25zIC1vICRsaWJ+JFJNICRsaWIuZXhwJworKworKwkjIEJvdGggYyBhbmQgY3h4IGNvbXBp bGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9 Jy1ycGF0aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9 J25vJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKyAgICAgIDs7CisrCisr ICAgIHNvbGFyaXMqKQorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnPScgLXogZGVmcycKKysgICAg ICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwl3bGFyYz0nJHt3bH0nCisrCWFyY2hpdmVf Y21kcz0nJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0taCAke3dsfSRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhw c3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xz IHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07 IiA+PiAkbGliLmV4cH4KKysJICAkQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1N ICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKyAgICAgIGVsc2UKKysJY2FzZSBg JENDIC1WIDI+JjFgIGluCisrCSoiQ29tcGlsZXJzIDUuMCIqKQorKwkgIHdsYXJjPScnCisrCSAg YXJjaGl2ZV9jbWRzPSckTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBhcmNoaXZlX2V4cHN5 bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8 ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIg Pj4gJGxpYi5leHB+CisrCSAgJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5l eHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+JFJN ICRsaWIuZXhwJworKwkgIDs7CisrCSopCisrCSAgd2xhcmM9JyR7d2x9JworKwkgIGFyY2hpdmVf Y21kcz0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBhcmNoaXZlX2V4cHN5bV9jbWRz PSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQg LWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxp Yi5leHB+CisrCSAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWgg JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxp Yi5leHAnCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8K KysgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc29sYXJpczIuWzAtNV0gfCBzb2xhcmlz Mi5bMC01XS4qKSA7OworKyAgICAgICopCisrCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNv bWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCisrCSMgYnV0IHVuZGVyc3RhbmRzIGAt eiBsaW5rZXJfZmxhZycuICBHQ0MgZGlzY2FyZHMgaXQgd2l0aG91dCBgJHdsJywKKysJIyBidXQg aXMgY2FyZWZ1bCBlbm91Z2ggbm90IHRvIHJlb3JkZXIuCisrCSMgU3VwcG9ydGVkIHNpbmNlIFNv bGFyaXMgMi42IChtYXliZSAyLjUuMT8pCisrCWlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisr CSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZl bmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKKysJZWxzZQorKwkgIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRy YWN0JworKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBsaW5rX2FsbF9kZXBsaWJzPXll cworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAgaWYgdGVzdCAieCRob3N0X3Zl bmRvciIgPSB4c2VxdWVudDsgdGhlbgorKwkjIFVzZSAkQ0MgdG8gbGluayB1bmRlciBzZXF1ZW50 LCBiZWNhdXNlIGl0IHRocm93cyBpbiBzb21lIGV4dHJhIC5vCisrCSMgZmlsZXMgdGhhdCBtYWtl IC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyB3b3JrLgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtRyAk e3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnN0 YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkK KysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgaGFy ZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0KQorKyAgICAg IGNhc2UgJGhvc3RfdmVuZG9yIGluCisrCXNuaSkKKysJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAt aCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBo YXJkY29kZV9kaXJlY3Q9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PworKwk7OworKwlzaWVt ZW5zKQorKwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExBTUxJQgorKwkgICMjIENDIGp1c3Qg bWFrZXMgYSBHcm9zc01vZHVsZS4KKysJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgcmVsb2FkX2NtZHM9JyRDQyAtciAt byAkb3V0cHV0JHJlbG9hZF9vYmpzJworKwkgIGhhcmRjb2RlX2RpcmVjdD1ubworKyAgICAgICAg OzsKKysJbW90b3JvbGEpCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgaGFyZGNvZGVfZGlyZWN0 PW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUK KysJOzsKKysgICAgICBlc2FjCisrICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKyAg ICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICBzeXN2NC4z KikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy PW5vCisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSctQmV4cG9ydCcKKysgICAgICA7 OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgor KwlhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKKysJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKwlydW5wYXRo X3Zhcj1MRF9SVU5fUEFUSAorKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKKysJbGRfc2hsaWJz PXllcworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3Bl blVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2 NS4wLlswMjRdKikKKysgICAgICBub191bmRlZmluZWRfZmxhZz0nJHt3bH0teix0ZXh0JworKyAg ICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj1ubworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LWgs JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJj aGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJv bHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCwkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4 cHN5bV9jbWRzPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAg IGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKKysg ICAgICAjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBi ZWNhdXNlIHdlIGRvIG5vdAorKyAgICAgICMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQg Y2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KKysgICAgICAjIGFsd2F5cyBiZSB1 bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKKysgICAg ICAjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdlIHVz ZSAteiB0ZXh0CisrICAgICAgIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3lt Ym9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCisrICAgICAgIyBhcyAteiBkZWZzLgorKyAg ICAgIG5vX3VuZGVmaW5lZF9mbGFnPScke3dsfS16LHRleHQnCisrICAgICAgYWxsb3dfdW5kZWZp bmVkX2ZsYWc9JyR7d2x9LXosbm9kZWZzJworKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5v CisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9JyR7d2x9LVIsJGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yPSc6JworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrICAgICAgZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjPScke3dsfS1CZXhwb3J0JworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9S VU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZl X2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQg JHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9j bWRzPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLUcgJHt3bH0tQmV4cG9y dDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgdXRzNCop CisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7 OworKworKyAgICAqKQorKyAgICAgIGxkX3NobGlicz1ubworKyAgICAgIDs7CisrICAgIGVzYWMK KysKKysgICAgaWYgdGVzdCB4JGhvc3RfdmVuZG9yID0geHNuaTsgdGhlbgorKyAgICAgIGNhc2Ug JGhvc3QgaW4KKysgICAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyogfCBzeXN2NSop CisrCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmxhcmdlZHluc3ltJworKwk7Owor KyAgICAgIGVzYWMKKysgICAgZmkKKysgIGZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGxkX3NobGlicyIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnMiID4mNjsg fQorK3Rlc3QgIiRsZF9zaGxpYnMiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworK3dp dGhfZ251X2xkPSR3aXRoX2dudV9sZAorKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKyMKKysjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/Cisr IworK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGMiIGluCisreHx4eWVzKQorKyAgIyBBc3N1 bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9eWVzCisrCisr ICBpZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KKysgICAgY2FzZSAkYXJjaGl2ZV9jbWRzIGluCisrICAgIConficqKQorKyAgICAgICMgRklY TUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKysg ICAgICA7OworKyAgICAnJENDICcqKQorKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxl ciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKKysgICAgICAjIHN5c3Rl bXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAt bGMKKysgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KKysgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJl IGV4cGxpY2l0bHkgbGlua2VkIGluIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0KKysgICAgICAk Uk0gY29uZnRlc3QqCisrICAgICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIg PiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQor KyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gMj5jb25mdGVzdC5lcnI7IHRoZW4K KysgICAgICAgIHNvbmFtZT1jb25mdGVzdAorKyAgICAgICAgbGliPWNvbmZ0ZXN0CisrICAgICAg ICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICAgICAgIGRlcGxpYnM9CisrICAgICAg ICB3bD0kbHRfcHJvZ19jb21waWxlcl93bAorKwlwaWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9w aWMKKysgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12CisrICAgICAgICBsaW5rZXJfZmxhZ3M9LXYK KysgICAgICAgIHZlcnN0cmluZz0KKysgICAgICAgIG91dHB1dF9vYmpkaXI9LgorKyAgICAgICAg bGlibmFtZT1jb25mdGVzdAorKyAgICAgICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0k YWxsb3dfdW5kZWZpbmVkX2ZsYWcKKysgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPQorKyAg ICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYXJjaGl2ZV9jbWRzIDJc PlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxXCIiKSA+JjUKKysgIChl dmFsICRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAy XD5cJjEpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisrICAgICAg ICB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysgICAgICAgIGVsc2UKKysJICBh cmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKKysgICAgICAgIGZpCisrICAgICAgICBhbGxvd191bmRl ZmluZWRfZmxhZz0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZworKyAgICAgIGVsc2UKKysg ICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgIGZpCisrICAgICAgJFJNIGNvbmZ0 ZXN0KgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhcmNoaXZl X2NtZHNfbmVlZF9sYyIgPiY1CisrJGFzX2VjaG8gIiRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgPiY2 OyB9CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIDs7CisrZXNhYworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGR5bmFtaWMgbGlu a2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZHluYW1pYyBs aW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9CisrCisraWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZGFyd2luKikgbHRfYXdrX2FyZz0i L15saWJyYXJpZXM6LywvTFIvIiA7OworKyAgICAqKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczov IiA7OworKyAgZXNhYworKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gt ZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMs PS8sLyxnImAKKysgIGlmICRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkR1JFUCAnOycg Pi9kZXYvbnVsbCA7IHRoZW4KKysgICAgIyBpZiB0aGUgcGF0aCBjb250YWlucyAiOyIgdGhlbiB3 ZSBhc3N1bWUgaXQgdG8gYmUgdGhlIHNlcGFyYXRvcgorKyAgICAjIG90aGVyd2lzZSBkZWZhdWx0 IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKKysgICAg IyBhc3N1bWVkIHRoYXQgbm8gcGFydCBvZiBhIG5vcm1hbCBwYXRobmFtZSBjb250YWlucyAiOyIg YnV0IHRoYXQgc2hvdWxkCisrICAgICMgb2theSBpbiB0aGUgcmVhbCB3b3JsZCB3aGVyZSAiOyIg aW4gZGlycGF0aHMgaXMgaXRzZWxmIHByb2JsZW1hdGljLgorKyAgICBsdF9zZWFyY2hfcGF0aF9z cGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCisr ICBlbHNlCisrICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhf c3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKysgIGZpCisrICAjIE9r LCBub3cgd2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNlcywgd2UgY2FuIHN0ZXAg dGhyb3VnaCBpdAorKyAgIyBhbmQgYWRkIG11bHRpbGliIGRpciBpZiBuZWNlc3NhcnkuCisrICBs dF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0KKysgIGx0X211bHRpX29zX2Rpcj1gJENDICRDUFBG TEFHUyAkQ0ZMQUdTICRMREZMQUdTIC1wcmludC1tdWx0aS1vcy1kaXJlY3RvcnkgMj4vZGV2L251 bGxgCisrICBmb3IgbHRfc3lzX3BhdGggaW4gJGx0X3NlYXJjaF9wYXRoX3NwZWM7IGRvCisrICAg IGlmIHRlc3QgLWQgIiRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIjsgdGhlbgorKyAgICAg IGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMg JGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiCisrICAgIGVsc2UKKysgICAgICB0ZXN0IC1k ICIkbHRfc3lzX3BhdGgiICYmIFwKKysJbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90 bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgiCisrICAgIGZpCisrICBkb25lCisr ICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMg fCBhd2sgJworK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKKysgIGx0X2Zvbz0iIjsKKysg IGx0X2NvdW50PTA7CisrICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0X2ktLSkgeworKyAg ICBpZiAoJGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7CisrICAgICAgaWYgKCRsdF9pID09 ICIuLiIpIHsKKysgICAgICAgIGx0X2NvdW50Kys7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAg IGlmIChsdF9jb3VudCA9PSAwKSB7CisrICAgICAgICAgIGx0X2Zvbz0iLyIgJGx0X2kgbHRfZm9v OworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgbHRfY291bnQtLTsKKysgICAgICAgIH0K KysgICAgICB9CisrICAgIH0KKysgIH0KKysgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJlcVts dF9mb29dKys7IH0KKysgIGlmIChsdF9mcmVxW2x0X2Zvb10gPT0gMSkgeyBwcmludCBsdF9mb287 IH0KKyt9J2AKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gJGx0X3NlYXJjaF9w YXRoX3NwZWNgCisrZWxzZQorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3Iv bGliIC91c3IvbG9jYWwvbGliIgorK2ZpCisrbGlicmFyeV9uYW1lc19zcGVjPQorK2xpYm5hbWVf c3BlYz0nbGliJG5hbWUnCisrc29uYW1lX3NwZWM9Cisrc2hyZXh0X2NtZHM9Ii5zbyIKKytwb3N0 aW5zdGFsbF9jbWRzPQorK3Bvc3R1bmluc3RhbGxfY21kcz0KKytmaW5pc2hfY21kcz0KKytmaW5p c2hfZXZhbD0KKytzaGxpYnBhdGhfdmFyPQorK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD11 bmtub3duCisrdmVyc2lvbl90eXBlPW5vbmUKKytkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQu c28iCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIiCisrbmVlZF9s aWJfcHJlZml4PXVua25vd24KKytoYXJkY29kZV9pbnRvX2xpYnM9bm8KKysKKysjIHdoZW4geW91 IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0 X3ZlcnNpb24KKysjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVudHMKKytuZWVkX3Zl cnNpb249dW5rbm93bgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikKKysgIHZlcnNpb25f dHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBB VEgKKysKKysgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5k IGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICA7OworKworK2FpeFs0LTldKikKKysg IHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNp b249bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIg PSBpYTY0OyB0aGVuCisrICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAorKyAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGVsc2UKKysgICAgIyBX aXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmls ZQorKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3Vs ZCBzdGFydCB3aXRoCisrICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0 aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKysgICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4g aW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KKysgICAgIyBkZXZlbG9wbWVudCBz bmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICAgIGFpeDQgfCBhaXg0LlswMV0gfCBhaXg0LlswMV0uKikKKysgICAgICBpZiB7IGVjaG8gJyNp ZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcp JworKwkgICBlY2hvICcgeWVzICcKKysJICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0g fCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KKysJOgorKyAgICAgIGVsc2UKKysJY2FuX2J1 aWxkX3NoYXJlZD1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICAjIEFJ WCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2Ug Y2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0CisrICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4g UHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KKysgICAgIyBjb2xsZWN0 Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KKysgICAgaWYg dGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAgICAgIyBJZiB1 c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+ LnNvCisrICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0 aGF0IHRoZXNlIGFyZSBub3QKKysgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMu CisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIGVsc2UKKysgICAgICAjIFdlIHByZXNlcnZlIC5h IGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgorKyAgICAg ICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgorKyAg ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5h JworKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCisrICAgIGZpCisrICAgIHNobGlicGF0aF92YXI9TElCUEFUSAorKyAgZmkKKysgIDs7 CisrCisrYW1pZ2FvcyopCisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgcG93ZXJwYykKKysgICAg IyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNpYWxseSBzdXBwb3J0cyAuc28gbGlicmFy aWVzLgorKyAgICAjIFdoZW4gY29tcGlsaW5nIHRoZSBleGVjdXRhYmxlLCBhZGQgLXVzZS1keW5s ZCAtTHNvYmpzOiB0byB0aGUgY29tcGlsZWxpbmUuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICA7 OworKyAgbTY4aykKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkg JGxpYm5hbWUuYScKKysgICAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVz IGluIC9zeXMvbGlicy4KKysgICAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIv Ki5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWAkRUNITyAiWCRsaWIiIHwgJFhz ZWQgLWUgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0g L3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYg JExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9T ICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCisrICAgIDs7Cisr ICBlc2FjCisrICA7OworKworK2Jlb3MqKQorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtzaGFyZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKysg IHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICisrICA7OworKworK2JzZGlbNDVdKikKKysgIHZl cnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJworKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vz ci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3Iv bGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29u dGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDEx IGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdworKyAgIyBsaWJ0b29s IHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7OworKworK2N5Z3dpbiogfCBt aW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJl eHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5v CisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3 KiB8IHllcyxwdzMyKiB8IHllcyxjZWdjYyopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxp Ym5hbWUuZGxsLmEnCisrICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmlu IGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBi YXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAk ZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBk bGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRscGF0aGB+CisrICAgICAgdGVzdCAtZCBcJGRsZGly IHx8IG1rZGlyIC1wIFwkZGxkaXJ+CisrICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUg XCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRkbG5hbWV+CisrICAg ICAgaWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUnXCcnICYmIHRlc3QgLW4gJ1wnJyRzdHJpcGxpYidc Jyc7IHRoZW4KKysgICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRsZGlyLyRkbG5hbWUnXCcn IHx8IGV4aXQgXCQ/OworKyAgICAgIGZpJworKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxs PWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAg IGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRSTSBcJGRscGF0aCcKKysgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAg IGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0 aGFuICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUg J3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3Zl cnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9saWIgL2xpYi93MzJhcGkgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgICAgICA7OworKyAg ICBtaW5ndyogfCBjZWdjYyopCisrICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAn bGliJyBwcmVmaXgKKysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFz ZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgJEdS RVAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxn ImAKKysgICAgICBpZiAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkR1JFUCAn O1tjLXpDLVpdOi8nID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBwcm9i YWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5ndyBn Y2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAor KyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJz LiBXZSBjYW4gaGFuZGxlIHRoZQorKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmls ZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBlc3Bl Y2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpk dW1wLAorKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQg cGF0aC4gQWhoLgorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysgICAgICBlbHNl CisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorKyAgICAg IGZpCisrICAgICAgOzsKKysgICAgcHczMiopCisrICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycg cHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNo byAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNF RCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgICAgOzsKKysKKysgICopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4 fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJworKyAgICA7OworKyAgZXNhYworKyAgZHluYW1p Y19saW5rZXI9J1dpbjMyIGxkLmV4ZScKKysgICMgRklYTUU6IGZpcnN0IHdlIHNob3VsZCBzZWFy Y2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBpcyBpbgorKyAgc2hsaWJwYXRo X3Zhcj1QQVRICisrICA7OworKworK2RhcndpbiogfCByaGFwc29keSopCisrICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgZHlsZCIKKysgIHZlcnNpb25fdHlwZT1kYXJ3aW4KKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHNoYXJlZF9l eHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRf ZXh0JworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgc2hsaWJwYXRoX3Zh cj1EWUxEX0xJQlJBUllfUEFUSAorKyAgc2hyZXh0X2NtZHM9J2B0ZXN0IC4kbW9kdWxlID0gLnll cyAmJiBlY2hvIC5zbyB8fCBlY2hvIC5keWxpYmAnCisrCisrICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL3Vzci9sb2NhbC9saWIiCisrICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL2xpYiAvdXNyL2xpYicKKysg IDs7CisrCisrZGd1eCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZp eD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNoYXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrZnJlZWJzZDEqKQorKyAgZHluYW1pY19saW5r ZXI9bm8KKysgIDs7CisrCisrZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgIyBEcmFnb25GbHkg ZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5IGltcGxlbWVudCBhIG5ldworKyAgIyB2 ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMuCisrICBpZiB0ZXN0IC14IC91c3IvYmlu L29iamZvcm1hdDsgdGhlbgorKyAgICBvYmpmb3JtYXQ9YC91c3IvYmluL29iamZvcm1hdGAKKysg IGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBmcmVlYnNkWzEyM10qKSBvYmpmb3Jt YXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CisrICAgIGVzYWMKKysgIGZpCisr ICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBjYXNlICR2ZXJzaW9uX3R5cGUg aW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgIG5lZWRfdmVyc2lv bj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIGZyZWVic2Qt KikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgICAg ICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGluCisrICBmcmVlYnNkMiopCisrICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlsw MV0qIHwgZnJlZWJzZGVsZjMuWzAxXSopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAgZnJlZWJzZDMu WzItOV0qIHwgZnJlZWJzZGVsZjMuWzItOV0qIHwgXAorKyAgZnJlZWJzZDQuWzAtNV0gfCBmcmVl YnNkZWxmNC5bMC01XSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEuMSkKKysgICAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK KysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkKKysgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisr ICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVk X2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAj IEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0 IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KKysg IHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNp b249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysgICAgc2hyZXh0X2NtZHM9 Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBkeW5hbWljX2xpbmtlcj0i JGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBz cGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2 NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIKKysgICAg ZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDY0IC91 c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgaHBwYSo2NCopCisr ICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAg ZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICisrICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmll ZC4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKKysgICAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgKikK KysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRs ZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRICisr ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNhYworKyAgIyBIUC1VWCBydW5zICpy ZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUuCisrICBw b3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysgIDs7CisrCisraW50ZXJpeFszLTld KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVk X3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZHluYW1pY19saW5rZXI9J0ludGVy aXggMy54IGxkLnNvLjEgKFBFLCBsaWtlIEVMRiknCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCisrICA7OworKworK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisr ICBjYXNlICRob3N0X29zIGluCisrICAgIG5vbnN0b3B1eCopIHZlcnNpb25fdHlwZT1ub25zdG9w dXggOzsKKysgICAgKikKKysJaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhl bgorKwkJdmVyc2lvbl90eXBlPWxpbnV4CisrCWVsc2UKKysJCXZlcnNpb25fdHlwZT1pcml4Cisr CWZpIDs7CisrICBlc2FjCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1u bworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysg IGNhc2UgJGhvc3Rfb3MgaW4KKysgIGlyaXg1KiB8IG5vbnN0b3B1eCopCisrICAgIGxpYnN1ZmY9 IHNobGlic3VmZj0KKysgICAgOzsKKysgICopCisrICAgIGNhc2UgJExEIGluICMgbGlidG9vbC5t NCB3aWxsIGFkZCBvbmUgb2YgdGhlc2Ugc3dpdGNoZXMgdG8gTEQKKysgICAgKi0zMnwqIi0zMiAi fCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAgIikKKysgICAgICBsaWJzdWZmPSBzaGxpYnN1 ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7CisrICAgICotbjMyfCoiLW4zMiAifCotbWVsZjMyYm1pcG4z MnwqIi1tZWxmMzJibWlwbjMyICIpCisrICAgICAgbGlic3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxp Ym1hZ2ljPU4zMjs7CisrICAgICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1p cCAiKQorKyAgICAgIGxpYnN1ZmY9NjQgc2hsaWJzdWZmPTY0IGxpYm1hZ2ljPTY0LWJpdDs7Cisr ICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9bmV2ZXItbWF0Y2g7OworKyAgICBl c2FjCisrICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUlkke3NobGli c3VmZn1fUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNy L2xvY2FsL2xpYiR7bGlic3VmZn0iCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IgorKyAgaGFyZGNvZGVfaW50b19saWJzPXll cworKyAgOzsKKysKKysjIE5vIHNoYXJlZCBsaWIgc3VwcG9ydCBmb3IgTGludXggb2xkbGQsIGFv dXQsIG9yIGNvZmYuCisrbGludXgqb2xkbGQqIHwgbGludXgqYW91dCogfCBsaW51eCpjb2ZmKikK KysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVM Ri4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVk X2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAg ZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRpcicKKysg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KKysgICMgU29tZSBiaW51dGlscyBsZCBhcmUgcGF0Y2hlZCB0byBzZXQgRFRfUlVO UEFUSAorKyAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisrICBzYXZlX2xpYmRpcj0kbGliZGlyCisr ICBldmFsICJsaWJkaXI9L2Zvbzsgd2w9XCIkbHRfcHJvZ19jb21waWxlcl93bFwiOyBcCisrICAg ICAgIExERkxBR1M9XCJcJExERkxBR1MgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIiIKKysg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFp biAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xp bmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3Qu ZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1 CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWci IHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwK KysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGlm ICAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJV TlBBVEguKiRsaWJkaXIiID4vZGV2L251bGw7IHRoZW4KKysgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKytmaQorKworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysK KysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgTERGTEFHUz0kc2F2ZV9M REZMQUdTCisrICBsaWJkaXI9JHNhdmVfbGliZGlyCisrCisrICAjIFRoaXMgaW1wbGllcyBubyBm YXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2ls bCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBj YW4gYmUgZW5hYmxlZC4KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysKKysgICMgQWRkIEFC SS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUgc3lzdGVtIGxpYnJhcnkgcGF0aC4KKysgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGli IgorKworKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgK KysgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisrICAgIGx0X2xkX2V4dHJhPWBh d2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYv bnVsbCIsIFwkMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBza2lwID0g MDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJ IF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0ciAn XG4nICcgJ2AKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCisrICBmaQorKworKyAgIyBXZSB1c2VkIHRvIHRl c3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCisrICAj IHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVz IHdpdGggdGhlCisrICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tl biB3aXRoIGNyb3NzIGNvbXBpbGVycywKKysgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1 cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCisrICAjIHBlb3BsZSBjYW4gYWx3 YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKKysgICMg YXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgorKyAgZHluYW1p Y19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKKysgIDs7CisrCisrbmV0YnNkKikKKysgIHZlcnNp b25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8K KysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxs OyB0aGVuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisr ICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXIn CisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKKysgIGVsc2UKKysg ICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5h bWV9JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZf c28nCisrICBmaQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7 CisrCisrbmV3c29zNikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcworKyAgOzsKKysKKysqbnRvKiB8ICpxbngqKQorKyAgdmVyc2lvbl90eXBlPXFu eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGR5bmFtaWNf bGlua2VyPSdsZHFueC5zbycKKysgIDs7CisrCisrb3BlbmJzZCopCisrICB2ZXJzaW9uX3R5cGU9 c3Vub3MKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKKysgIG5lZWRf bGliX3ByZWZpeD1ubworKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBh dCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgorKyAgY2FzZSAkaG9zdF9vcyBpbgor KyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNpb249eWVzIDs7CisrICAg ICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKKysgIGVzYWMKKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9z YmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxG X19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7 IHRoZW4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVu YnNkMi5bODldLiopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKwk7OworKyAg ICAgICopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsKKysgICAgICBl c2FjCisrICBlbHNlCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGZp CisrICA7OworKworK29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAgc2hyZXh0X2Nt ZHM9Ii5kbGwiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xpbmtlcj0nT1Mv MiBsZC5leGUnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisrb3NmMyogfCBv c2Y0KiB8IG9zZjUqKQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJfcHJlZml4PW5v CisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIg L3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAv dmFyL3NobGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMiCisrICA7OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysg IDs7CisrCisrc29sYXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBs aWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRs aWInCisrICA7OworKworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFU SD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGlm IHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJfcHJlZml4PW5v CisrICBmaQorKyAgbmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0LjMq KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgICAgc25pKQor KyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAgOzsKKysgICAg c2llbWVucykKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBtb3Rv cm9sYSkKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3ZlcnNpb249bm8K KysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAgICAgIDs7Cisr ICBlc2FjCisrICA7OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3Ro ZW4KKysgICAgdmVyc2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxp Ym5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hh cmVkX2V4dH0uJG1ham9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg ZmkKKysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8 IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKKysg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251 X2xkIiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9j YWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKKysgIGVsc2UK KysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCisr ICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBzY28zLjJ2NSopCisrICAgICAgICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKKysJOzsK KysgICAgZXNhYworKyAgZmkKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xp YicKKysgIDs7CisrCisrdHBmKikKKysgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHkuICBQ cmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KKysgIHZlcnNpb25fdHlwZT1saW51eAor KyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKyt1dHM0 KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrKikKKysgIGR5bmFtaWNfbGlua2VyPW5v CisrICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZHlu YW1pY19saW5rZXIiID4mNQorKyRhc19lY2hvICIkZHluYW1pY19saW5rZXIiID4mNjsgfQorK3Rl c3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrdmFy aWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFy IgorK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3Jl bGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxF Ul9QQVRIIExJQlJBUllfUEFUSCIKKytmaQorKworK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisrICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCisrZmkKKytpZiB0ZXN0ICIk e2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisrICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjIgorK2ZpCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMg aW50byBwcm9ncmFtcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGhhcmRjb2Rl IGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcy4uLiAiID4mNjsgfQorK2hhcmRjb2RlX2FjdGlv bj0KKytpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgfHwKKysgICB0ZXN0 IC1uICIkcnVucGF0aF92YXIiIHx8CisrICAgdGVzdCAiWCRoYXJkY29kZV9hdXRvbWF0aWMiID0g Ilh5ZXMiIDsgdGhlbgorKworKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50IGRpcmVj dG9yaWVzLgorKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gbm8gJiYKKysgICAgICMg SWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zh ciwgd2UKKysgICAgICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdp dGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKKysgICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2lu ZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKKysgICAgICMjIHRlc3QgIiRfTFRfVEFH VkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICkiICE9IG5vICYmCisrICAgICB0ZXN0ICIkaGFy ZGNvZGVfbWludXNfTCIgIT0gbm87IHRoZW4KKysgICAgIyBMaW5raW5nIGFsd2F5cyBoYXJkY29k ZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KKysgICAgaGFyZGNvZGVfYWN0aW9u PXJlbGluaworKyAgZWxzZQorKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywg YW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgorKyAgICBoYXJkY29kZV9hY3Rp b249aW1tZWRpYXRlCisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRo aW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9y aWVzLgorKyAgaGFyZGNvZGVfYWN0aW9uPXVuc3VwcG9ydGVkCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZGNvZGVfYWN0aW9uIiA+JjUKKyskYXNfZWNobyAi JGhhcmRjb2RlX2FjdGlvbiIgPiY2OyB9CisrCisraWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbiIg PSByZWxpbmsgfHwKKysgICB0ZXN0ICIkaW5oZXJpdF9ycGF0aCIgPSB5ZXM7IHRoZW4KKysgICMg RmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3RfaW5zdGFs bD1ubworK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwK KysgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisrICAjIEZhc3QgaW5zdGFs bGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MK KytmaQorKworKworKworKworKworKworKyAgaWYgdGVzdCAieCRlbmFibGVfZGxvcGVuIiAhPSB4 eWVzOyB0aGVuCisrICBlbmFibGVfZGxvcGVuPXVua25vd24KKysgIGVuYWJsZV9kbG9wZW5fc2Vs Zj11bmtub3duCisrICBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24KKytlbHNlCisr ICBsdF9jdl9kbG9wZW49bm8KKysgIGx0X2N2X2Rsb3Blbl9saWJzPQorKworKyAgY2FzZSAkaG9z dF9vcyBpbgorKyAgYmVvcyopCisrICAgIGx0X2N2X2Rsb3Blbj0ibG9hZF9hZGRfb24iCisrICAg IGx0X2N2X2Rsb3Blbl9saWJzPQorKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKKysgICAgOzsK KysKKysgIG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICBsdF9jdl9kbG9wZW49IkxvYWRM aWJyYXJ5IgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgOzsKKysKKysgIGN5Z3dpbiop CisrICAgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysg ICAgOzsKKysKKysgIGRhcndpbiopCisrICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3ZSBuZWVk IHRvIGxpbmsgYWdhaW5zdCBpdAorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig ZGxvcGVuIGluIC1sZGwuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9kbF9kbG9w ZW4rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sZGwgICRMSUJTIgor K2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJp ZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNl IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisr ICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw cGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hh ciBkbG9wZW4gKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxvcGVuICgpOworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1 cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJt IC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAm JiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBj b25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfbGliX2RsX2Rsb3Bl bj15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2xpYl9k bF9kbG9wZW49bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v IFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFj X2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYl9k bF9kbG9wZW4iID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPSB4IiJ5 ZXM7IHRoZW4KKysgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxk bCIKKytlbHNlCisrCisrICAgIGx0X2N2X2Rsb3Blbj0iZHlsZCIKKysgICAgbHRfY3ZfZGxvcGVu X2xpYnM9CisrICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcworKworK2ZpCisrCisrICAgIDs7Cisr CisrICAqKQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNo bF9sb2FkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igc2hsX2xvYWQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X2Z1bmNfc2hsX2xvYWQrc2V0fSIgPSBzZXQ7IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysvKiBEZWZpbmUgc2hsX2xvYWQgdG8gYW4gaW5ub2N1 b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzaGxfbG9hZC4KKysgICBG b3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAg Ki8KKysjZGVmaW5lIHNobF9sb2FkIGlubm9jdW91c19zaGxfbG9hZAorKworKy8qIFN5c3RlbSBo ZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBl cywKKysgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzaGxfbG9hZCAoKTsgYmVsb3cu CisrICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVm aW5lZCwgc2luY2UKKysgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcg Y29tcGlsZXJzLiAgKi8KKysKKysjaWZkZWYgX19TVERDX18KKysjIGluY2x1ZGUgPGxpbWl0cy5o PgorKyNlbHNlCisrIyBpbmNsdWRlIDxhc3NlcnQuaD4KKysjZW5kaWYKKysKKysjdW5kZWYgc2hs X2xvYWQKKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p ZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0 dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90 b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVy biAiQyIKKysjZW5kaWYKKytjaGFyIHNobF9sb2FkICgpOworKy8qIFRoZSBHTlUgQyBsaWJyYXJ5 IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKKysgICAgdG8g YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt ZWQKKysgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBp cyBhbiBhbGlhcy4gICovCisrI2lmIGRlZmluZWQgX19zdHViX3NobF9sb2FkIHx8IGRlZmluZWQg X19zdHViX19fc2hsX2xvYWQKKytjaG9rZSBtZQorKyNlbmRpZgorKworK2ludAorK21haW4gKCkK Kyt7CisrcmV0dXJuIHNobF9sb2FkICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAo YWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5r IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAg fTsgdGhlbgorKyAgYWNfY3ZfZnVuY19zaGxfbG9hZD15ZXMKKytlbHNlCisrICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2Z1bmNfc2hsX2xvYWQ9bm8KKytmaQorKworK3JtIC1y ZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVl eHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGFjX2N2X2Z1bmNfc2hsX2xvYWQiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfZnVuY19z aGxfbG9hZCIgPiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9mdW5jX3NobF9sb2FkIiA9IHgiInll czsgdGhlbgorKyAgbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIKKytlbHNlCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNobF9sb2FkIGluIC1sZGxkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X2xpYl9kbGRfc2hsX2xvYWQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElC Uz0kTElCUworK0xJQlM9Ii1sZGxkICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKworKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90 eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNw bHVzCisrZXh0ZXJuICJDIgorKyNlbmRpZgorK2NoYXIgc2hsX2xvYWQgKCk7CisraW50CisrbWFp biAoKQorK3sKKytyZXR1cm4gc2hsX2xvYWQgKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9Cisr X0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytp ZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAg ICAgICB9OyB0aGVuCisrICBhY19jdl9saWJfZGxkX3NobF9sb2FkPXllcworK2Vsc2UKKysgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfbGliX2RsZF9zaGxfbG9hZD1ubworK2Zp CisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVf TElCUworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xp Yl9kbGRfc2hsX2xvYWQiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIg PiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA9IHgiInllczsgdGhl bgorKyAgbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIgor K2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVu IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVuLi4uICIgPiY2OyB9CisraWYg dGVzdCAiJHthY19jdl9mdW5jX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKy8qIERlZmluZSBkbG9wZW4gdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQs IGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBkbG9wZW4uCisrICAgRm9yIGV4YW1wbGUsIEhQ LVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCisrI2RlZmluZSBk bG9wZW4gaW5ub2N1b3VzX2Rsb3BlbgorKworKy8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9f c3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKKysgICAgd2hpY2ggY2Fu IGNvbmZsaWN0IHdpdGggY2hhciBkbG9wZW4gKCk7IGJlbG93LgorKyAgICBQcmVmZXIgPGxpbWl0 cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAgIDxs aW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCisrCisr I2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVk ZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCisrI3VuZGVmIGRsb3BlbgorKworKy8qIE92ZXJyaWRl IGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorKyAgIFVzZSBj aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQworKyAg IGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBs eS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgorKyNlbmRpZgorK2NoYXIg ZGxvcGVuICgpOworKy8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rp b25zIHdoaWNoIGl0IGltcGxlbWVudHMKKysgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMu ICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKKysgICAgc29tZXRoaW5nIHN0YXJ0 aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCisrI2lmIGRl ZmluZWQgX19zdHViX2Rsb3BlbiB8fCBkZWZpbmVkIF9fc3R1Yl9fX2Rsb3BlbgorK2Nob2tlIG1l CisrI2VuZGlmCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxvcGVuICgpOworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1 cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJt IC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAm JiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBj b25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfZnVuY19kbG9wZW49 eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9mdW5jX2Rs b3Blbj1ubworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAor KyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19kbG9wZW4iID4mNQorKyRh c19lY2hvICIkYWNfY3ZfZnVuY19kbG9wZW4iID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfZnVu Y19kbG9wZW4iID0geCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKKytlbHNl CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAt bGRsIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9kbF9kbG9wZW4rc2V0fSIgPSBzZXQ7IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3Nh dmVfTElCUz0kTElCUworK0xJQlM9Ii1sZGwgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBw cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWln aHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBp dHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19j cGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBkbG9wZW4gKCk7CisraW50Cisr bWFpbiAoKQorK3sKKytyZXR1cm4gZGxvcGVuICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Cisr aWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAg ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3Nf Y29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysg ICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfbGliX2RsX2Rsb3Blbj15ZXMKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2xpYl9kbF9kbG9wZW49bm8KKytmaQorKwor K3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRh Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMK KytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxf ZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNjsgfQorK2lm IHRlc3QgIngkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rs b3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCIKKytlbHNlCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbHN2bGQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxzdmxkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9saWJfc3ZsZF9kbG9wZW4rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElC Uz0kTElCUworK0xJQlM9Ii1sc3ZsZCAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVz cGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIGRsb3BlbiAoKTsKKytpbnQKKyttYWlu ICgpCisreworK3JldHVybiBkbG9wZW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7 IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xp bmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRh Y19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAg ICB9OyB0aGVuCisrICBhY19jdl9saWJfc3ZsZF9kbG9wZW49eWVzCisrZWxzZQorKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9saWJfc3ZsZF9kbG9wZW49bm8KKytmaQorKwor K3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRh Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMK KytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfc3Zs ZF9kbG9wZW4iID4mNQorKyRhc19lY2hvICIkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA+JjY7IH0K KytpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0 X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxzdmxkIgorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxkX2xpbmsgaW4gLWxk bGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbGRfbGluayBpbiAtbGRsZC4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9kbGRfbGluaytzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19s aWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWxkbGQgICRMSUJTIgorK2NhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRl cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBp bnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQg dGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZk ZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBkbGRfbGluayAoKTsK KytpbnQKKyttYWluICgpCisreworK3JldHVybiBkbGRfbGluayAoKTsKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFj X2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgor KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysg IChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVz dC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewor KwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVz dCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNf ZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2X2xpYl9kbGRfZGxkX2xpbms9eWVzCisr ZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9saWJfZGxkX2RsZF9s aW5rPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisr ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVj a19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9saWJfZGxk X2RsZF9saW5rIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbGRfZGxkX2xpbmsiID0g eCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsZF9saW5rIiBsdF9jdl9kbG9wZW5fbGli cz0iLWxkbGQiCisrZmkKKysKKysKKytmaQorKworKworK2ZpCisrCisrCisrZmkKKysKKysKKytm aQorKworKworK2ZpCisrCisrICAgIDs7CisrICBlc2FjCisrCisrICBpZiB0ZXN0ICJ4JGx0X2N2 X2Rsb3BlbiIgIT0geG5vOyB0aGVuCisrICAgIGVuYWJsZV9kbG9wZW49eWVzCisrICBlbHNlCisr ICAgIGVuYWJsZV9kbG9wZW49bm8KKysgIGZpCisrCisrICBjYXNlICRsdF9jdl9kbG9wZW4gaW4K KysgIGRsb3BlbikKKysgICAgc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorKyAgICB0ZXN0ICJ4 JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA9IHh5ZXMgJiYgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtREhB VkVfRExGQ05fSCIKKysKKysgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICAgd2w9JGx0 X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRleHBvcnRfZHluYW1p Y19mbGFnX3NwZWNcIgorKworKyAgICBzYXZlX0xJQlM9IiRMSUJTIgorKyAgICBMSUJTPSIkbHRf Y3ZfZGxvcGVuX2xpYnMgJExJQlMiCisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZiIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBhIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2Rsb3Blbl9zZWxmK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIAkgIGlmIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Blbl9zZWxmPWNyb3Nz CisrZWxzZQorKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91 c2NvcmU9MgorKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KKysgIGNhdCA+IGNvbmZ0ZXN0LiRh Y19leHQgPDxfTFRfRU9GCisrI2xpbmUgMTI1ODQgImNvbmZpZ3VyZSIKKysjaW5jbHVkZSAiY29u ZmRlZnMuaCIKKysKKysjaWYgSEFWRV9ETEZDTl9ICisrI2luY2x1ZGUgPGRsZmNuLmg+CisrI2Vu ZGlmCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrI2lmZGVmIFJUTERfR0xPQkFMCisrIyAg ZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAorKyNlbHNlCisrIyAgaWZkZWYgRExfR0xP QkFMCisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAorKyMgIGVsc2UKKysjICAg IGRlZmluZSBMVF9ETEdMT0JBTAkJMAorKyMgIGVuZGlmCisrI2VuZGlmCisrCisrLyogV2UgbWF5 IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3 ZQorKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KKysj aWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKKysjICBpZmRlZiBSVExEX0xBWlkKKysjICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKKysjICBlbHNlCisrIyAgICBpZmRlZiBETF9M QVpZCisrIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCisrIyAgICBlbHNl CisrIyAgICAgIGlmZGVmIFJUTERfTk9XCisrIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9O T1cJUlRMRF9OT1cKKysjICAgICAgZWxzZQorKyMgICAgICAgIGlmZGVmIERMX05PVworKyMgICAg ICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCisrIyAgICAgICAgZWxzZQorKyMg ICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAorKyMgICAgICAgIGVuZGlmCisrIyAg ICAgIGVuZGlmCisrIyAgICBlbmRpZgorKyMgIGVuZGlmCisrI2VuZGlmCisrCisrdm9pZCBmbm9y ZCgpIHsgaW50IGk9NDI7fQorK2ludCBtYWluICgpCisreworKyAgdm9pZCAqc2VsZiA9IGRsb3Bl biAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7CisrICBpbnQgc3RhdHVzID0gJGx0 X2RsdW5rbm93bjsKKysKKysgIGlmIChzZWxmKQorKyAgICB7CisrICAgICAgaWYgKGRsc3ltIChz ZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7CisrICAgICAgZWxz ZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsK KysgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KKysgICAgfQorKyAgZWxzZQorKyAgICBwdXRz IChkbGVycm9yICgpKTsKKysKKysgIHJldHVybiBzdGF0dXM7CisrfQorK19MVF9FT0YKKysgIGlm IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorKyAgKGV2 YWwgJGFjX2xpbmspIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KKysgICAgKC4v Y29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCisrICAgIGx0X3N0YXR1cz0kPworKyAg ICBjYXNlIHgkbHRfc3RhdHVzIGluCisrICAgICAgeCRsdF9kbG5vX3VzY29yZSkgbHRfY3ZfZGxv cGVuX3NlbGY9eWVzIDs7CisrICAgICAgeCRsdF9kbG5lZWRfdXNjb3JlKSBsdF9jdl9kbG9wZW5f c2VsZj15ZXMgOzsKKysgICAgICB4JGx0X2RsdW5rbm93bnx4KikgbHRfY3ZfZGxvcGVuX3NlbGY9 bm8gOzsKKysgICAgZXNhYworKyAgZWxzZSA6CisrICAgICMgY29tcGlsYXRpb24gZmFpbGVkCisr ICAgIGx0X2N2X2Rsb3Blbl9zZWxmPW5vCisrICBmaQorK2ZpCisrcm0gLWZyIGNvbmZ0ZXN0Kgor KworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2Rs b3Blbl9zZWxmIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X2Rsb3Blbl9zZWxmIiA+JjY7IH0KKysK KysgICAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW5fc2VsZiIgPSB4eWVzOyB0aGVuCisrICAgICAg d2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY1wiCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRz ZWxmIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5r ZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRf Y3ZfZGxvcGVuX3NlbGZfc3RhdGljK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIAkgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzOyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1jcm9zcworK2Vsc2UKKysg IGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIKKysg IGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCisrICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xU X0VPRgorKyNsaW5lIDEyNjgwICJjb25maWd1cmUiCisrI2luY2x1ZGUgImNvbmZkZWZzLmgiCisr CisrI2lmIEhBVkVfRExGQ05fSAorKyNpbmNsdWRlIDxkbGZjbi5oPgorKyNlbmRpZgorKworKyNp bmNsdWRlIDxzdGRpby5oPgorKworKyNpZmRlZiBSVExEX0dMT0JBTAorKyMgIGRlZmluZSBMVF9E TEdMT0JBTAkJUlRMRF9HTE9CQUwKKysjZWxzZQorKyMgIGlmZGVmIERMX0dMT0JBTAorKyMgICAg ZGVmaW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKKysjICBlbHNlCisrIyAgICBkZWZpbmUgTFRf RExHTE9CQUwJCTAKKysjICBlbmRpZgorKyNlbmRpZgorKworKy8qIFdlIG1heSBoYXZlIHRvIGRl ZmluZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKKysgICBmaW5k IG91dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0uICovCisrI2lmbmRlZiBMVF9E TExBWllfT1JfTk9XCisrIyAgaWZkZWYgUlRMRF9MQVpZCisrIyAgICBkZWZpbmUgTFRfRExMQVpZ X09SX05PVwkJUlRMRF9MQVpZCisrIyAgZWxzZQorKyMgICAgaWZkZWYgRExfTEFaWQorKyMgICAg ICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQorKyMgICAgZWxzZQorKyMgICAgICBp ZmRlZiBSVExEX05PVworKyMgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9X CisrIyAgICAgIGVsc2UKKysjICAgICAgICBpZmRlZiBETF9OT1cKKysjICAgICAgICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCURMX05PVworKyMgICAgICAgIGVsc2UKKysjICAgICAgICAgIGRl ZmluZSBMVF9ETExBWllfT1JfTk9XCTAKKysjICAgICAgICBlbmRpZgorKyMgICAgICBlbmRpZgor KyMgICAgZW5kaWYKKysjICBlbmRpZgorKyNlbmRpZgorKworK3ZvaWQgZm5vcmQoKSB7IGludCBp PTQyO30KKytpbnQgbWFpbiAoKQorK3sKKysgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RM R0xPQkFMfExUX0RMTEFaWV9PUl9OT1cpOworKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247 CisrCisrICBpZiAoc2VsZikKKysgICAgeworKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQi KSkgICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOworKyAgICAgIGVsc2UgaWYgKGRsc3lt KCBzZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisrICAgICAgLyog ZGxjbG9zZSAoc2VsZik7ICovCisrICAgIH0KKysgIGVsc2UKKysgICAgcHV0cyAoZGxlcnJvciAo KSk7CisrCisrICByZXR1cm4gc3RhdHVzOworK30KKytfTFRfRU9GCisrICBpZiB7IChldmFsIGVj aG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKysgIChldmFsICRhY19saW5r KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JHthY19leGVleHR9IDI+L2Rldi9udWxsOyB0aGVuCisrICAgICguL2NvbmZ0ZXN0OyBl eGl0OyApID4mNSAyPi9kZXYvbnVsbAorKyAgICBsdF9zdGF0dXM9JD8KKysgICAgY2FzZSB4JGx0 X3N0YXR1cyBpbgorKyAgICAgIHgkbHRfZGxub191c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxmX3N0 YXRpYz15ZXMgOzsKKysgICAgICB4JGx0X2RsbmVlZF91c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxm X3N0YXRpYz15ZXMgOzsKKysgICAgICB4JGx0X2RsdW5rbm93bnx4KikgbHRfY3ZfZGxvcGVuX3Nl bGZfc3RhdGljPW5vIDs7CisrICAgIGVzYWMKKysgIGVsc2UgOgorKyAgICAjIGNvbXBpbGF0aW9u IGZhaWxlZAorKyAgICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8KKysgIGZpCisrZmkKKyty bSAtZnIgY29uZnRlc3QqCisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2 X2Rsb3Blbl9zZWxmX3N0YXRpYyIgPiY2OyB9CisrICAgIGZpCisrCisrICAgIENQUEZMQUdTPSIk c2F2ZV9DUFBGTEFHUyIKKysgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysgICAgTElCUz0i JHNhdmVfTElCUyIKKysgICAgOzsKKysgIGVzYWMKKysKKysgIGNhc2UgJGx0X2N2X2Rsb3Blbl9z ZWxmIGluCisrICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZj0kbHRfY3ZfZGxvcGVuX3NlbGYg OzsKKysgICopIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duIDs7CisrICBlc2FjCisrCisrICBj YXNlICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgaW4KKysgIHllc3xubykgZW5hYmxlX2Rsb3Bl bl9zZWxmX3N0YXRpYz0kbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIDs7CisrICAqKSBlbmFibGVf ZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24gOzsKKysgIGVzYWMKKytmaQorKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworK3N0cmlwbGliPQorK29sZF9z dHJpcGxpYj0KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBz dHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0IC1uICIkU1RSSVAiICYmICRTVFJJUCAtViAyPiYxIHwgJEdSRVAgIkdOVSBzdHJpcCIg Pi9kZXYvbnVsbDsgdGhlbgorKyAgdGVzdCAteiAiJG9sZF9zdHJpcGxpYiIgJiYgb2xkX3N0cmlw bGliPSIkU1RSSVAgLS1zdHJpcC1kZWJ1ZyIKKysgIHRlc3QgLXogIiRzdHJpcGxpYiIgJiYgc3Ry aXBsaWI9IiRTVFJJUCAtLXN0cmlwLXVubmVlZGVkIgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKytlbHNlCisr IyBGSVhNRSAtIGluc2VydCBzb21lIHJlYWwgdGVzdHMsIGhvc3Rfb3MgaXNuJ3QgcmVhbGx5IGdv b2QgZW5vdWdoCisrICBjYXNlICRob3N0X29zIGluCisrICBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0 IC1uICIkU1RSSVAiIDsgdGhlbgorKyAgICAgIHN0cmlwbGliPSIkU1RSSVAgLXgiCisrICAgICAg b2xkX3N0cmlwbGliPSIkU1RSSVAgLVMiCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysgICAgZWxzZQor KyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQorKyAgICBmaQorKyAgICA7OworKyAgKikKKysgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9 CisrICAgIDs7CisrICBlc2FjCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysgICMgUmVwb3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWls dAorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIGxpYnRvb2wgc3Vw cG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgbGli dG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkY2FuX2J1aWxkX3NoYXJlZCIgPiY1CisrJGFzX2Vj aG8gIiRjYW5fYnVpbGRfc2hhcmVkIiA+JjY7IH0KKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcy4u LiAiID4mNjsgfQorKyAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVf c2hhcmVkPW5vCisrCisrICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxp YnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysgICMgYXJlIGFsbCBidWlsdCBm cm9tIFBJQy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGFpeDMqKQorKyAgICB0ZXN0ICIkZW5h YmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgICBpZiB0ZXN0IC1uICIk UkFOTElCIjsgdGhlbgorKyAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJ QiBcJGxpYiIKKysgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCisrICAgIGZp CisrICAgIDs7CisrCisrICBhaXhbNC05XSopCisrICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0g aWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KKysgICAg ICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgICBm aQorKyAgICA7OworKyAgZXNhYworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGVuYWJsZV9zaGFyZWQiID4mNQorKyRhc19lY2hvICIkZW5hYmxlX3NoYXJlZCIgPiY2OyB9 CisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0byBi dWlsZCBzdGF0aWMgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KKysgICMgTWFrZSBzdXJlIGVp dGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgorKyAgdGVzdCAiJGVu YWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZW5hYmxlX3N0YXRpYyIgPiY1CisrJGFzX2VjaG8gIiRl bmFibGVfc3RhdGljIiA+JjY7IH0KKysKKysKKysKKysKKytmaQorK2FjX2V4dD1jCisrYWNfY3Bw PSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK KythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrQ0M9IiRsdF9zYXZl X0NDIgorKworKworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworK2FyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1u bworK2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0KKythbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hY PW5vCisrYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9CisrY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NY WD1ubworK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9CisraGFyZGNvZGVfZGlyZWN0X0NY WD1ubworK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9bm8KKytoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWD0KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWD0KKytoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0KKytoYXJkY29kZV9taW51c19MX0NYWD1ubworK2hh cmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPXVuc3VwcG9ydGVkCisraGFyZGNvZGVfYXV0b21hdGlj X0NYWD1ubworK2luaGVyaXRfcnBhdGhfQ1hYPW5vCisrbW9kdWxlX2NtZHNfQ1hYPQorK21vZHVs ZV9leHBzeW1fY21kc19DWFg9CisrbGlua19hbGxfZGVwbGlic19DWFg9dW5rbm93bgorK29sZF9h cmNoaXZlX2NtZHNfQ1hYPSRvbGRfYXJjaGl2ZV9jbWRzCisrbm9fdW5kZWZpbmVkX2ZsYWdfQ1hY PQorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0KKytlbmFibGVfc2hhcmVkX3dpdGhfc3Rh dGljX3J1bnRpbWVzX0NYWD1ubworKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDKysg dGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jcHAKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBm b3IgY29tcGlsZWQgQysrIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK29iamV4dF9DWFg9JG9i amV4dAorKworKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxy ZWFkeSBkZXRlcm1pbmVkIHRoYXQKKysjIHRoZSBDWFggY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4g IFNvbWUgdmFyaWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCisrIyBhcmUgY3VycmVudGx5IGFz c3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorKyMgYW5k IHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5n IGNvbXBpbGVyLgorK2lmIHRlc3QgIiRfbHRfY2F1Z2h0X0NYWF9lcnJvciIgIT0geWVzOyB0aGVu CisrICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworKyAgbHRfc2lt cGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorKworKyAgIyBD b2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKKysgIGx0X3NpbXBsZV9saW5rX3Rl c3RfY29kZT0naW50IG1haW4oaW50LCBjaGFyICpbXSkgeyByZXR1cm4oMCk7IH0nCisrCisrICAj IGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBz dXJlICRDQyBpcyBzZXQuCisrCisrCisrCisrCisrCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdh cyBzcGVjaWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMg Y29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtM VENGTEFHUy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3VtZW50cy4KKytjb21waWxlcj0kQ0MKKysKKysKKysgICMgc2F2ZSB3YXJuaW5ncy9i b2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRh Y19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3Qu JGFjX2V4dAorK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQv ZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0 IGNvbmZ0ZXN0LmVycmAKKyskUk0gY29uZnRlc3QqCisrCisrICBhY19vdXRmaWxlPWNvbmZ0ZXN0 LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3Qu JGFjX2V4dAorK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsg L14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25m dGVzdC5lcnJgCisrJFJNIC1yIGNvbmZ0ZXN0KgorKworKworKyAgIyBBbGxvdyBDQyB0byBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKysgIGx0X3NhdmVfQ0M9JENDCisrICBsdF9z YXZlX0xEPSRMRAorKyAgbHRfc2F2ZV9HQ0M9JEdDQworKyAgR0NDPSRHWFgKKysgIGx0X3NhdmVf d2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCisrICBsdF9zYXZlX3BhdGhfTEQ9JGx0X2N2X3BhdGhf TEQKKysgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcHJvZ19nbnVfbGRjeHgrc2V0fSI7IHRoZW4KKysg ICAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkY3h4CisrICBlbHNlCisrICAg ICRhc191bnNldCBsdF9jdl9wcm9nX2dudV9sZAorKyAgZmkKKysgIGlmIHRlc3QgLW4gIiR7bHRf Y3ZfcGF0aF9MRENYWCtzZXR9IjsgdGhlbgorKyAgICBsdF9jdl9wYXRoX0xEPSRsdF9jdl9wYXRo X0xEQ1hYCisrICBlbHNlCisrICAgICRhc191bnNldCBsdF9jdl9wYXRoX0xECisrICBmaQorKyAg dGVzdCAteiAiJHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKKysgIENDPSR7Q1hYLSJjKysifQor KyAgY29tcGlsZXI9JENDCisrICBjb21waWxlcl9DWFg9JENDCisrICBmb3IgY2NfdGVtcCBpbiAk Y29tcGlsZXIiIjsgZG8KKysgIGNhc2UgJGNjX3RlbXAgaW4KKysgICAgY29tcGlsZSB8ICpbXFwv XWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OworKyAgICBkaXN0Y2MgfCAqW1xc L11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OworKyAgICBcLSopIDs7CisrICAg ICopIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrY2NfYmFzZW5hbWU9YCRFQ0hPICJYJGNjX3Rl bXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCisrCisrCisr ICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICAgICMgV2UgZG9uJ3Qgd2FudCAtZm5v LWV4Y2VwdGlvbiB3aGVuIGNvbXBpbGluZyBDKysgY29kZSwgc28gc2V0IHRoZQorKyAgICAjIG5v X2J1aWx0aW5fZmxhZyBzZXBhcmF0ZWx5CisrICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVu CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYPScgLWZuby1idWls dGluJworKyAgICBlbHNlCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdf Q1hYPQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICAg ICMgU2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9uCisrCisrCisrCisrIyBDaGVj ayB3aGV0aGVyIC0td2l0aC1nbnUtbGQgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9nbnVf bGQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfZ251X2xkOyB0ZXN0ICIkd2l0 aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXMKKytlbHNlCisrICB3aXRoX2dudV9sZD1ubwor K2ZpCisrCisrYWNfcHJvZz1sZAorK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAjIENo ZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1uYW1lPWxkIGdpdmVzIGEgcGF0aC4KKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGQgdXNlZCBieSAkQ0MiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQy4uLiAiID4mNjsgfQorKyAgY2Fz ZSAkaG9zdCBpbgorKyAgKi0qLW1pbmd3KikKKysgICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxpbmcg Y2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndworKyAgICBhY19wcm9nPWAoJENDIC1w cmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7CisrICAqKQorKyAgICBh Y19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7CisrICBlc2FjCisrICBj YXNlICRhY19wcm9nIGluCisrICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgorKyAgICBbXFwv XSogfCA/OltcXC9dKikKKysgICAgICByZV9kaXJlbHQ9Jy9bXi9dW14vXSovXC5cLi8nCisrICAg ICAgIyBDYW5vbmljYWxpemUgdGhlIHBhdGhuYW1lIG9mIGxkCisrICAgICAgYWNfcHJvZz1gJEVD SE8gIiRhY19wcm9nInwgJFNFRCAncyVcXFxcJS8lZydgCisrICAgICAgd2hpbGUgJEVDSE8gIiRh Y19wcm9nIiB8ICRHUkVQICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbworKwlhY19w cm9nPWAkRUNITyAkYWNfcHJvZ3wgJFNFRCAicyUkcmVfZGlyZWx0JS8lImAKKysgICAgICBkb25l CisrICAgICAgdGVzdCAteiAiJExEIiAmJiBMRD0iJGFjX3Byb2ciCisrICAgICAgOzsKKysgICIi KQorKyAgICAjIElmIGl0IGZhaWxzLCB0aGVuIHByZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdDQy4K KysgICAgYWNfcHJvZz1sZAorKyAgICA7OworKyAgKikKKysgICAgIyBJZiBpdCBpcyByZWxhdGl2 ZSwgdGhlbiBzZWFyY2ggZm9yIHRoZSBmaXJzdCBsZCBpbiBQQVRILgorKyAgICB3aXRoX2dudV9s ZD11bmtub3duCisrICAgIDs7CisrICBlc2FjCisrZWxpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g eWVzOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEdO VSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEdOVSBsZC4uLiAiID4mNjsgfQor K2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igbm9uLUdO VSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQuLi4gIiA+JjY7 IH0KKytmaQorK2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9MRCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkTEQiOyB0 aGVuCisrICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGZvciBh Y19kaXIgaW4gJFBBVEg7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16 ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9n IiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KKysgICAgICBs dF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19wcm9nIgorKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlm IHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKKysgICAg ICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUgdmFyaWFudHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12 LgorKyAgICAgICMgQnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQg d2UgcHJlZmVyLgorKyAgICAgIGNhc2UgYCIkbHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9u dWxsYCBpbgorKyAgICAgICpHTlUqIHwgKid3aXRoIEJGRCcqKQorKwl0ZXN0ICIkd2l0aF9nbnVf bGQiICE9IG5vICYmIGJyZWFrCisrCTs7CisrICAgICAgKikKKysJdGVzdCAiJHdpdGhfZ251X2xk IiAhPSB5ZXMgJiYgYnJlYWsKKysJOzsKKysgICAgICBlc2FjCisrICAgIGZpCisrICBkb25lCisr ICBJRlM9IiRsdF9zYXZlX2lmcyIKKytlbHNlCisrICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorK2ZpCisrZmkKKysKKytM RD0iJGx0X2N2X3BhdGhfTEQiCisraWYgdGVzdCAtbiAiJExEIjsgdGhlbgorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJExEIiA+JjUKKyskYXNfZWNobyAiJExEIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorK3Rlc3QgLXogIiRMRCIgJiYgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQ QVRIIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3Vu ZCBpbiBcJFBBVEgiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05V IGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdO VSBsZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19nbnVfbGQrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgIyBJJ2Qg cmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9u bHkgYWNjZXB0IC12LgorK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2L251bGxgIGluCisrKkdOVSog fCAqJ3dpdGggQkZEJyopCisrICBsdF9jdl9wcm9nX2dudV9sZD15ZXMKKysgIDs7CisrKikKKysg IGx0X2N2X3Byb2dfZ251X2xkPW5vCisrICA7OworK2VzYWMKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2dudV9sZCIgPiY1CisrJGFzX2VjaG8g IiRsdF9jdl9wcm9nX2dudV9sZCIgPiY2OyB9Cisrd2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251 X2xkCisrCisrCisrCisrCisrCisrCisrCisrICAgICAgIyBDaGVjayBpZiBHTlUgQysrIHVzZXMg R05VIGxkIGFzIHRoZSB1bmRlcmx5aW5nIGxpbmtlciwgc2luY2UgdGhlCisrICAgICAgIyBhcmNo aXZpbmcgY29tbWFuZHMgYmVsb3cgYXNzdW1lIHRoYXQgR05VIGxkIGlzIGJlaW5nIHVzZWQuCisr ICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAgICAgYXJjaGl2 ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAtbyAkbGliJworKyAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRD QyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysKKysg ICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRs aWJkaXInCisrICAgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhw b3J0LWR5bmFtaWMnCisrCisrICAgICAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3Qg Q0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorKyAgICAgICAgIyBYWFggSSB0aGluayB3bGFyYyBj YW4gYmUgZWxpbWluYXRlZCBpbiBsdGNmLWN4eCwgYnV0IEkgbmVlZCB0bworKyAgICAgICAgIyAg ICAgaW52ZXN0aWdhdGUgaXQgYSBsaXR0bGUgYml0IG1vcmUuIChNTSkKKysgICAgICAgIHdsYXJj PScke3dsfScKKysKKysgICAgICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13 aG9sZS1hcmNoaXZlIGV0LiBhbC4KKysgICAgICAgIGlmIGV2YWwgImAkQ0MgLXByaW50LXByb2ct bmFtZT1sZGAgLS1oZWxwIDI+JjEiIHwKKysJICAkR1JFUCAnbm8td2hvbGUtYXJjaGl2ZScgPiAv ZGV2L251bGw7IHRoZW4KKysgICAgICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSIk d2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1h cmNoaXZlJworKyAgICAgICAgZWxzZQorKyAgICAgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y19DWFg9CisrICAgICAgICBmaQorKyAgICAgIGVsc2UKKysgICAgICAgIHdpdGhfZ251X2xkPW5v CisrICAgICAgICB3bGFyYz0KKysKKysgICAgICAgICMgQSBnZW5lcmljIGFuZCB2ZXJ5IHNpbXBs ZSBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5IGNyZWF0aW9uCisrICAgICAgICAjIGNvbW1hbmQgZm9y IEdOVSBDKysgZm9yIHRoZSBjYXNlIHdoZXJlIGl0IHVzZXMgdGhlIG5hdGl2ZQorKyAgICAgICAg IyBsaW5rZXIsIGluc3RlYWQgb2YgR05VIGxkLiAgSWYgcG9zc2libGUsIHRoaXMgc2V0dGluZyBz aG91bGQKKysgICAgICAgICMgb3ZlcnJpZGRlbiB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgbmF0 aXZlIGxpbmtlciBmZWF0dXJlcyBvbgorKyAgICAgICAgIyB0aGUgcGxhdGZvcm0gaXQgaXMgYmVp bmcgdXNlZCBvbi4KKysgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKKysgICAgICBmaQorKworKyAgICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysgICAg ICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1 c2VkIHdoZW4KKysgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysgICAgICBvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2Jq ZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKysKKysgICAgZWxzZQorKyAgICAgIEdYWD1ubworKyAg ICAgIHdpdGhfZ251X2xkPW5vCisrICAgICAgd2xhcmM9CisrICAgIGZpCisrCisrICAgICMgUE9S VE1FOiBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBDKysgbGluayBjaGFy YWN0ZXJpc3RpY3MKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdo ZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmll cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtl ciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICAgIGxkX3No bGlic19DWFg9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgzKikKKysgICAg ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAg bGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgOzsKKysgICAgICBhaXhbNC05XSopCisrICAgICAg ICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICAgICAgICAjIE9uIElBNjQs IHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0 CisrICAgICAgICAgICMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorKyAgICAgICAgICBh aXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLUJleHBv cnQnCisrICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9IiIKKysgICAgICAgIGVsc2UKKysgICAgICAg ICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKworKyAgICAgICAgICAjIFRlc3QgaWYgd2Ug YXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKKysgICAgICAgICAg IyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdl CisrICAgICAgICAgICMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCisrICAgICAgICAgIGNh c2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4qfGFpeFs1LTldKikKKysJICAgIGZv ciBsZF9mbGFnIGluICRMREZMQUdTOyBkbworKwkgICAgICBjYXNlICRsZF9mbGFnIGluCisrCSAg ICAgICotYnJ0bCopCisrCSAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKKysJICAg ICAgICBicmVhaworKwkgICAgICAgIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICAg IDs7CisrICAgICAgICAgIGVzYWMKKysKKysgICAgICAgICAgZXhwX3N5bV9mbGFnPSctYmV4cG9y dCcKKysgICAgICAgICAgbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JworKyAgICAgICAgZmkKKysK KysgICAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUg YnVpbHQsIEFJWCBsZCBjYW4KKysgICAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUg dGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorKyAgICAgICAgIyBvciBw cm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2Mg dG8KKysgICAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2Vz IHdoZXJlIHRoYXQgaXMgbm90CisrICAgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0s IGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysKKysgICAgICAgIGFyY2hpdmVfY21kc19D WFg9JycKKysgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCisrICAgICAgICBoYXJkY29k ZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPXllcworKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcl9DWFg9JzonCisrICAgICAgICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKKysgICAgICAg IGZpbGVfbGlzdF9zcGVjX0NYWD0nJHt3bH0tZiwnCisrCisrICAgICAgICBpZiB0ZXN0ICIkR1hY IiA9IHllczsgdGhlbgorKyAgICAgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuWzAxMl18YWl4 NC5bMDEyXS4qKQorKyAgICAgICAgICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0 LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKKysgICAgICAgICAgIyBiZWxvdyBmb3IgYnJva2VuIGNv bGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCisrCSAgY29sbGVjdDJuYW1lPWAke0NDfSAt cHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAorKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUi ICYmCisrCSAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9u YW1lID4vZGV2L251bGwKKysJICB0aGVuCisrCSAgICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVj dDIKKysJICAgIDoKKysJICBlbHNlCisrCSAgICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAg ICBoYXJkY29kZV9kaXJlY3RfQ1hYPXVuc3VwcG9ydGVkCisrCSAgICAjIEl0IGZhaWxzIHRvIGZp bmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisrCSAgICAjIHBh dGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNf TAorKwkgICAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAgICBoYXJkY29k ZV9taW51c19MX0NYWD15ZXMKKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSct TCRsaWJkaXInCisrCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0KKysJICBmaQor KyAgICAgICAgICBlc2FjCisrICAgICAgICAgIHNoYXJlZF9mbGFnPSctc2hhcmVkJworKwkgIGlm IHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVk X2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCisrCSAgZmkKKysgICAgICAgIGVsc2UKKysg ICAgICAgICAgIyBub3QgdXNpbmcgZ2NjCisrICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIg PSBpYTY0OyB0aGVuCisrCSAgIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVM IGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKysJICAjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBm b2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycKKysgICAgICAg ICAgZWxzZQorKwkgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0 aGVuCisrCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJworKwkgICAgZWxzZQorKwkgICAgICBz aGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkgICAgZmkKKysgICAgICAgICAgZmkKKysgICAg ICAgIGZpCisrCisrICAgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1i ZXhwYWxsJworKyAgICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9y dCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBp dCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8KKysJIyBleHBvcnQu CisrICAgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPXllcworKyAgICAgICAgaWYgdGVz dCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAgICAgICAgICMgV2Fy bmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJy dGwpLAorKyAgICAgICAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1h eSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrICAgICAgICAgIGFsbG93X3VuZGVmaW5lZF9m bGFnX0NYWD0nLWJlcm9rJworKyAgICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJw YXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkKKysgICAgICAgICAgIyBleGVj dXRhYmxlLgorKyAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9Cisr X0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytp ZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3Nz X2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Cisr ICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZp bGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisr CSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19l eGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysj IENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisr aWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhY NjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9s aWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisr CisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xp YnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAgICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6 JyIkYWl4X2xpYnBhdGgiCisrCisrICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSck Q0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRu b19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmlu ZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAkRUNITyAiWCR7d2x9JHthbGxvd191bmRlZmluZWRfZmxh Z30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9z eW1ib2xzICRzaGFyZWRfZmxhZyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgaWYgdGVzdCAi JGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Q1hYPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKKysJICAgIGFsbG93X3VuZGVmaW5l ZF9mbGFnX0NYWD0iLXogbm9kZWZzIgorKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9Ilwk Q0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVw bGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxv d191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMi CisrICAgICAgICAgIGVsc2UKKysJICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGgg ZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgorKwkgICAgIyBlbXB0eSBleGVjdXRhYmxlLgor KwkgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICov CisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQK KyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVu CisrCisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9e JC8geworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9Cisr ICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9u dWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2 NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRh aXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFj X2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAor K2ZpCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworK2ZpCisrCisrcm0g LXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBh aXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCisrCisrCSAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysJ ICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcg ZmxhZ3MsCisrCSAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBw cm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCSAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAk e3dsfS1iZXJub3RvaycKKysJICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWJl cm9rJworKwkgICAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQg b2JqZWN0cyBmcm9tIGFyY2hpdmVzCisrCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9 JyRjb252ZW5pZW5jZScKKysJICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKKysJICAg ICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNo YXJlZAorKwkgICAgIyBsaWJyYXJpZXMuCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0i XCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRk ZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5 bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJworKyAgICAgICAgICBm aQorKyAgICAgICAgZmkKKysgICAgICAgIDs7CisrCisrICAgICAgYmVvcyopCisrCWlmICRMRCAt LWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251 bGw7IHRoZW4KKysJICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9dW5zdXBwb3J0ZWQKKysJICAj IEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2Yg Z2NjCisrCSAgIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21lIGludmVz dGlnYXRpb24uICBGSVhNRQorKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtbm9zdGFydCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8g JGxpYicKKysJZWxzZQorKwkgIGxkX3NobGlic19DWFg9bm8KKysJZmkKKysJOzsKKysKKysgICAg ICBjaG9ydXMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgKikK KysJICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICBsZF9z aGxpYnNfQ1hYPW5vCisrCSAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAg ICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICAgICAgIyBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsIENYWCkgaXMgYWN0dWFsbHkgbWVhbmluZ2xl c3MsCisrICAgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAg ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1MJGxpYmRpcicKKysgICAgICAg IGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD11bnN1cHBvcnRlZAorKyAgICAgICAgYWx3YXlzX2V4 cG9ydF9zeW1ib2xzX0NYWD1ubworKyAgICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19y dW50aW1lc19DWFg9eWVzCisrCisrICAgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAn YXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICAgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIg LVhsaW5rZXIgJGxpYicKKysgICAgICAgICAgIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBh bHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKyAgICAgICAgICAjIGlzIEVYUE9SVFMp LCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKyAgICAgICAgICBhcmNoaXZl X2V4cHN5bV9jbWRzX0NYWD0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0g eEVYUE9SVFM7IHRoZW4KKysJICAgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8k c29uYW1lLmRlZjsKKysgICAgICAgICAgZWxzZQorKwkgICAgZWNobyBFWFBPUlRTID4gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUuZGVmOworKyAgICAgICAgICBmaX4KKysgICAgICAgICAgJENDIC1z aGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlu a2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAgICAgICAgZWxzZQorKyAgICAgICAg ICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgICBkYXJ3 aW4qIHwgcmhhcHNvZHkqKQorKworKworKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisr ICBoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCisrICBoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPXllcwor KyAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9dW5zdXBwb3J0ZWQKKysgIHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjX0NYWD0nJworKyAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrICBhbGxv d191bmRlZmluZWRfZmxhZ19DWFg9IiRfbHRfZGFyX2FsbG93X3VuZGVmaW5lZCIKKysgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCisrICAgICBpZm9ydCopIF9sdF9kYXJfY2FuX3NoYXJlZD15ZXMgOzsK KysgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0NDIDs7CisrICBlc2FjCisrICBpZiB0ZXN0 ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0aGVuCisrICAgIG91dHB1dF92ZXJib3Nl X2xpbmtfY21kPWVjaG8KKysgICAgYXJjaGl2ZV9jbWRzX0NYWD0iXCRDQyAtZHluYW1pY2xpYiBc JGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21w aWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9s dF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKKysgICAgbW9kdWxlX2NtZHNfQ1hYPSJc JENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRk ZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCisrICAgIGFyY2hpdmVfZXhw c3ltX2NtZHNfQ1hYPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRf b2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxv d191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJf ZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rh cl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAg IG1vZHVsZV9leHBzeW1fY21kc19DWFg9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJv bHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFs bG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBc JGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysg ICAgICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiICE9ICJ5ZXMiOyB0aGVu CisrICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0iXCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMg LW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIg XCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGli cyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0 cmluZyR7X2x0X2RzeW11dGlsfSIKKysgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ic2Vk ICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1l fS1zeW1ib2xzLmV4cHN5bX5cJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIg LW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGls ZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRf ZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgZmkKKysKKysgIGVsc2UKKysg IGxkX3NobGlic19DWFg9bm8KKysgIGZpCisrCisrCTs7CisrCisrICAgICAgZGd1eCopCisrICAg ICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBlYysrKikKKysJICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NY WD1ubworKwkgICAgOzsKKysgICAgICAgICAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMr KyBDb21waWxlcgorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkg ICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9z aGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysg ICAgICBmcmVlYnNkWzEyXSopCisrICAgICAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9y dGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVmb3JlCisrCSMgc3dpdGNoIHRvIEVMRgorKyAgICAg ICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgOzsKKysKKysgICAgICBmcmVlYnNkLWVsZiop CisrICAgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysgICAgICAgIDs7CisrCisr ICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgICAgICAgIyBGcmVlQlNEIDMgYW5kIGxh dGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFyZCBFTEYKKysgICAgICAgICMg Y29udmVudGlvbnMKKysgICAgICAgIGxkX3NobGlic19DWFg9eWVzCisrICAgICAgICA7OworKwor KyAgICAgIGdudSopCisrICAgICAgICA7OworKworKyAgICAgIGhwdXg5KikKKysgICAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfStiICR7d2x9JGxpYmRpcicKKysgICAg ICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKKysgICAgICAgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCisrICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hY PXllcworKyAgICAgICAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVzICMgTm90IGluIHRoZSBzZWFy Y2ggUEFUSCwKKysJCQkJICAgICAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0CisrCQkJCSAg ICAgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKworKyAgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0MqKQorKyAgICAgICAgICAgICMgRklYTUU6IGlu c2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgICAgIGxkX3NobGlic19D WFg9bm8KKysgICAgICAgICAgICA7OworKyAgICAgICAgICBhQ0MqKQorKyAgICAgICAgICAgIGFy Y2hpdmVfY21kc19DWFg9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtYiAke3dsfSti ICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz fnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkbGliJworKyAgICAgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBw cm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysgICAgICAgICAgICAjIHdoYXQgImhp ZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysg ICAgICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysgICAgICAgICAgICAjCisr ICAgICAgICAgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50 IHRoaXMgY29tcGlsZXIgZnJvbQorKyAgICAgICAgICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5 c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrICAgICAgICAgICAg IyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUg bGlicmFyeQorKyAgICAgICAgICAgICMgZGVwZW5kZW5jaWVzLgorKyAgICAgICAgICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0 LiRvYmpleHQgMj4mMSkgfCAkRUdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxp c3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4k b2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIg fCAkWHNlZCcKKysgICAgICAgICAgICA7OworKyAgICAgICAgICAqKQorKyAgICAgICAgICAgIGlm IHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hY PSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMg JHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgICAgICAg IGxkX3NobGlic19DWFg9bm8KKysgICAgICAgICAgICBmaQorKyAgICAgICAgICAgIDs7CisrICAg ICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIGhwdXgxMCp8aHB1eDExKikKKysgICAg ICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KKysJICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWD0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCSAgaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcl9DWFg9OgorKworKyAgICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAg ICAgICAgIGhwcGEqNjQqfGlhNjQqKQorKyAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAq KQorKwkgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJworKyAgICAg ICAgICAgICAgOzsKKysgICAgICAgICAgZXNhYworKyAgICAgICAgZmkKKysgICAgICAgIGNhc2Ug JGhvc3RfY3B1IGluCisrICAgICAgICAgIGhwcGEqNjQqfGlhNjQqKQorKyAgICAgICAgICAgIGhh cmRjb2RlX2RpcmVjdF9DWFg9bm8KKysgICAgICAgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy X0NYWD1ubworKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICopCisrICAgICAgICAgICAgaGFy ZGNvZGVfZGlyZWN0X0NYWD15ZXMKKysgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1 dGVfQ1hYPXllcworKyAgICAgICAgICAgIGhhcmRjb2RlX21pbnVzX0xfQ1hYPXllcyAjIE5vdCBp biB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCQkgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAor KwkJCQkJICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysgICAgICAgICAgICA7 OworKyAgICAgICAgZXNhYworKworKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAg ICAgICAgQ0MqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgICBhQ0MqKQor KwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJICAgICAgaHBwYSo2NCopCisrCSAgICAgICAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzJworKwkgICAgICAgIDs7CisrCSAgICAgIGlhNjQqKQorKwkgICAgICAgIGFyY2hpdmVfY21k c19DWFg9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAt byAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncycKKysJICAgICAgICA7OworKwkgICAgICAqKQorKwkgICAgICAgIGFy Y2hpdmVfY21kc19DWFg9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9 JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgIDs7CisrCSAgICBl c2FjCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91 dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3Qg ZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdh eSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtp bmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMg ZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxp YnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19j bWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8 ICRHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGlu IGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0 PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisrCSAgICA7 OworKyAgICAgICAgICAqKQorKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysJICAg ICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgorKwkgICAgICAgIGNhc2UgJGhvc3Rf Y3B1IGluCisrCSAgICAgICAgICBocHBhKjY0KikKKysJICAgICAgICAgICAgYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lIC1v ICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgICAgICA7OworKwkgICAgICAgICAgaWE2NCopCisr CSAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJ QyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncycKKysJICAgICAgICAgICAgOzsKKysJICAgICAgICAgICopCisrCSAgICAgICAgICAgIGFy Y2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9 JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwor KwkgICAgICAgICAgICA7OworKwkgICAgICAgIGVzYWMKKysJICAgICAgZmkKKysJICAgIGVsc2UK KysJICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAg ICAgIGxkX3NobGlic19DWFg9bm8KKysJICAgIGZpCisrCSAgICA7OworKyAgICAgICAgZXNhYwor KyAgICAgICAgOzsKKysKKysgICAgICBpbnRlcml4WzMtOV0qKQorKwloYXJkY29kZV9kaXJlY3Rf Q1hYPW5vCisrCWhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisrCWhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJworKwlleHBvcnRfZHluYW1pY19m bGFnX3NwZWNfQ1hYPScke3dsfS1FJworKwkjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5u b3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCisrCSMgSW5zdGVhZCwgc2hh cmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkK KysJIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEg c2xvdyB2ZXJ5IG1lbW9yeQorKwkjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4g IFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCisrCSMgMjU2IEtpQi1hbGlnbmVkIGlt YWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKKysJIyB0 aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikg c3BhY2UuCisrCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1pbWFnZS1i YXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBg IC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdzZWQgInMsXixfLCIgJGV4cG9y dF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAk e3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAk e3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQg KyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwk7OworKyAgICAgIGlyaXg1KiB8IGlyaXg2KikKKysg ICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJICAgICMgU0dJ IEMrKworKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLWFsbCAtbXVsdGlnb3Qg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8g Ilgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKworKwkgICAgIyBBcmNoaXZlcyBj b250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAj ICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMrKyBjb21waWxlci4gIFRoaXMgaXMK KysJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFy ZSBpbmNsdWRlZAorKwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgIG9sZF9hcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsKKysg ICAgICAgICAgKikKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrCSAgICAgIGlm IHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwkgICAgICAgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAk e3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCSAgICAgIGVsc2UKKysJICAgICAg ICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3 bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAtbyAkbGliJworKwkgICAg ICBmaQorKwkgICAgZmkKKysJICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcworKwkgICAgOzsK KysgICAgICAgIGVzYWMKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSck e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yX0NYWD06CisrICAgICAgICBpbmhlcml0X3JwYXRoX0NYWD15ZXMKKysgICAgICAgIDs7Cisr CisrICAgICAgbGludXgqIHwgaypic2QqLWdudSkKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCisrICAgICAgICAgIEtDQyopCisrCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4g KEtBSSkgQysrIENvbXBpbGVyCisrCisrCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hh cmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAo b3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0 cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorKwkgICAgYXJjaGl2 ZV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChb XigpMC05QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNF RCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRz b25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKKysJICAgIGFyY2hpdmVfZXhw c3ltX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9c KFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAk U0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUg JHNvbmFtZSAtbyBcJHRlbXBsaWIgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5 bWJvbHM7IG12IFwkdGVtcGxpYiAkbGliJworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBp bGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAg ICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMKKysJICAgICMgVGhlcmUgZG9l c24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysJ ICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0 byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3Qg Z2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRlcGVuZGVuY2llcy4KKysJICAg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDICRDRkxBR1MgLXYgY29uZnRl c3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsg cm0gLWYgbGliY29uZnRlc3Qkc2hhcmVkX2V4dDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0 OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9i amV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwg JFhzZWQnCisrCisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBh dGgsJGxpYmRpcicKKysJICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1l eHBvcnQtZHluYW1pYycKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0 IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAgIyAiQ0MgLUJzdGF0aWMiLCB3aGVy ZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBpbGVyLgorKwkgICAgb2xkX2FyY2hpdmVfY21kc19D WFg9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsKKysJICBpY3Bj KiB8IGVjcGMqICkKKysJICAgICMgSW50ZWwgQysrCisrCSAgICB3aXRoX2dudV9sZD15ZXMKKysJ ICAgICMgdmVyc2lvbiA4LjAgYW5kIGFib3ZlIG9mIGljcGMgY2hva2Ugb24gbXVsdGlwbHkgZGVm aW5lZCBzeW1ib2xzCisrCSAgICAjIGlmIHdlIGFkZCAkcHJlZGVwX29iamVjdHMgYW5kICRwb3N0 ZGVwX29iamVjdHMsIGhvd2V2ZXIgNy4xIGFuZAorKwkgICAgIyBlYXJsaWVyIGRvIG5vdCBhZGQg dGhlIG9iamVjdHMgdGhlbXNlbHZlcy4KKysJICAgIGNhc2UgYCRDQyAtViAyPiYxYCBpbgorKwkg ICAgICAqIlZlcnNpb24gNy4iKikKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNo YXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJCWFyY2hp dmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8g JGxpYicKKysJCTs7CisrCSAgICAgICopICAjIFZlcnNpb24gOC4wIG9yIG5ld2VyCisrCSAgICAg ICAgdG1wX2lkeW49CisrCSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJCSAgaWE2NCopIHRt cF9pZHluPScgLWlfZHluYW1pYyc7OworKwkJZXNhYworKwkgICAgICAgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJCWFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCQk7OworKwkgICAgZXNhYworKwkg ICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgIGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysJICAgIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5v LXdob2xlLWFyY2hpdmUnCisrCSAgICA7OworKyAgICAgICAgICBwZ0NDKiB8IHBnY3BwKikKKysg ICAgICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgorKwkgICAgY2FzZSBgJEND IC1WYCBpbgorKwkgICAgKnBnQ0NcIFsxLTVdKiB8ICpwZ2NwcFwgWzEtNV0qKQorKwkgICAgICBw cmVsaW5rX2NtZHNfQ1hYPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0cGxkaXJ+ CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRv YmpzICRsaWJvYmpzICRjb21waWxlX2RlcGxpYnN+CisrCQljb21waWxlX2NvbW1hbmQ9IiRjb21w aWxlX2NvbW1hbmQgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCInCisrCSAgICAg IG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0 cGxkaXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBs ZGlyICRvbGRvYmpzJG9sZF9kZXBsaWJzfgorKwkJJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9i anMkb2xkX2RlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYH4KKysJCSRS QU5MSUIgJG9sZGxpYicKKysJICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndHBsZGlyPVRlbXBsYXRl LmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5z dGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCou byB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0n dHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlu a19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0MgLXNo YXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0 cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7 d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgICAgIDs7CisrCSAgICAqKSAjIFZlcnNp b24gNiB3aWxsIHVzZSB3ZWFrIHN5bWJvbHMKKysJICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1v ICRsaWInCisrCSAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5 bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgICAgICA7OworKwkg ICAgZXNhYworKworKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1y cGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPSck e3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRl c3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRj b252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUt YXJjaGl2ZScKKysgICAgICAgICAgICA7OworKwkgIGN4eCopCisrCSAgICAjIENvbXBhcSBDKysK KysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRD QyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKKysKKysJICAgIHJ1bnBh dGhfdmFyPUxEX1JVTl9QQVRICisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n LXJwYXRoICRsaWJkaXInCisrCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Cisr CisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1 dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmls ZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJy YXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0 byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcg c3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJv bSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJh cnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9 J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8 ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUgInMv XCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxp c3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4k b2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIg fCAkWHNlZCcKKysJICAgIDs7CisrCSAgeGwqKQorKwkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQywg d2l0aCBHTlUgbGQKKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1y cGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPSck e3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXFta3No cm9iaiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgLW8gJGxpYicKKysJICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5n IiA9IHh5ZXM7IHRoZW4KKysJICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsg Z2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQljYXQgJGV4cG9ydF9z eW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFt ZS52ZXJ+CisrCQllY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LnZlcn4KKysJCSRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJworKwkgICAgZmkKKysJICAgIDs7CisrCSAg KikKKysJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkgICAgKlN1blwgQyop CisrCSAgICAgICMgU3VuIEMrKyA1LjkKKysJICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScg LXpkZWZzJworKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUcke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgIGFyY2hpdmVfZXhw c3ltX2NtZHNfQ1hYPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8g JGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3lt Ym9scycKKysJICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRpcicK KysJICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2 ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0 IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252 XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJj aGl2ZScKKysJICAgICAgY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWD15ZXMKKysKKysJICAgICAg IyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgorKwkgICAgICAjICRDQyAkQ0ZM QUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxCisr CSAgICAgICMgd291bGQgYmUgYmV0dGVyLgorKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD0nZWNobycKKysKKysJICAgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmls ZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0Mi IGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkgICAgICAjIG5lY2Vzc2FyeSB0 byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICAg IyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAteGFy IC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICA7Owor Kwllc2FjCisrCTs7CisrCisrICAgICAgbHlueG9zKikKKysgICAgICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlsZF9zaGxpYnNfQ1hYPW5vCisrCTs7Cisr CisrICAgICAgbTg4ayopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKKysgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysJOzsKKysKKysgICAgICBt dnMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgY3h4KikKKysJ ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRf c2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysJICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7 OworKwllc2FjCisrCTs7CisrCisrICAgICAgbmV0YnNkKikKKysgICAgICAgIGlmIGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCSAgYXJj aGl2ZV9jbWRzX0NYWD0nJExEIC1Cc2hhcmVhYmxlICAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRsaW5rZXJfZmxhZ3MnCisrCSAgd2xh cmM9CisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRpcicKKysJICBo YXJkY29kZV9kaXJlY3RfQ1hYPXllcworKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5v CisrCWZpCisrCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUtMS41IHRvb2xjaGFpbnMKKysJ b3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3Qu JG9iamV4dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6LWxnY2Mg LWxjIC1sZ2NjOjoiJworKwk7OworKworKyAgICAgICpudG8qIHwgKnFueCopCisrICAgICAgICBs ZF9zaGxpYnNfQ1hYPXllcworKwk7OworKworKyAgICAgIG9wZW5ic2QyKikKKysgICAgICAgICMg QysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBicm9rZW4KKysJbGRfc2hsaWJzX0NYWD1u bworKwk7OworKworKyAgICAgIG9wZW5ic2QqKQorKwlpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9s ZC5zbzsgdGhlbgorKwkgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCisrCSAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9DWFg9bm8KKysJICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPXllcwor KwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8g JGxpYicKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxp YmRpcicKKysJICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9f RUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJw YyI7IHRoZW4KKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xz IC1vICRsaWInCisrCSAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJwor KwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2 ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJworKwkgIGZpCisrCSAg b3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworKwllbHNlCisrCSAgbGRfc2hsaWJzX0NYWD1u bworKwlmaQorKwk7OworKworKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIEtDQyopCisrCSAgICAjIEt1Y2sgYW5k IEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisrCSAgICAjIEtDQyB3aWxs IG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSAgICAj IGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJy YXJ5CisrCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5r aW5nLgorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8 ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxp Yj1gZWNobyAiJGxpYiIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGli JworKworKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRs aWJkaXInCisrCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisrCSAgICAj IEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNp bmcKKysJICAgICMgdGhlIEtBSSBDKysgY29tcGlsZXIuCisrCSAgICBjYXNlICRob3N0IGluCisr CSAgICAgIG9zZjMqKSBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRs aWIgJG9sZG9ianMnIDs7CisrCSAgICAgICopIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLW8g JG9sZGxpYiAkb2xkb2JqcycgOzsKKysJICAgIGVzYWMKKysJICAgIDs7CisrICAgICAgICAgIFJD QyopCisrCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7 OworKyAgICAgICAgICBjeHgqKQorKwkgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICBvc2YzKikK KysJICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1leHBlY3RfdW5yZXNv bHZlZCAke3dsfVwqJworKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkJHth bGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkc29uYW1lIGB0ZXN0 IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR2ZXJzdHJpbmci IHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKKysJICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJworKwkJOzsKKysJICAgICAgKikKKysJICAgICAgICBhbGxvd191 bmRlZmluZWRfZmxhZ19DWFg9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCSAgICAgICAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAi WC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCSAgICAgICAgYXJjaGl2ZV9leHBz eW1fY21kc19DWFg9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIl cyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZX4KKysJICAg ICAgICAgIGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSAgICAgICAgICAkQ0MgLXNoYXJl ZCRhbGxvd191bmRlZmluZWRfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lICR7 d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAi WC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+CisrCSAgICAgICAgICAkUk0gJGxpYi5l eHAnCisrCSAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1ycGF0aCAkbGli ZGlyJworKwkJOzsKKysJICAgIGVzYWMKKysKKysJICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfQ1hYPToKKysKKysJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZl cmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCisrCSAgICAjCisrCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRv IGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSAgICAjIGV4cGxpY2l0 bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQor KwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBp biB0aGUgbGlicmFyeQorKwkgICAgIyBkZXBlbmRlbmNpZXMuCisrCSAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9i amV4dCAyPiYxIHwgJEdSRVAgImxkIiB8ICRHUkVQIC12ICJsZDoiYDsgdGVtcGxpc3Q9YCRFQ0hP ICJYJHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCggLipsZC4qJFwpL1wxLyJg OyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9i amV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7 ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysJICAgIDs7CisrCSAgKikKKysJ ICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhl bgorKwkgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1leHBlY3RfdW5yZXNv bHZlZCAke3dsfVwqJworKwkgICAgICBjYXNlICRob3N0IGluCisrCSAgICAgICAgb3NmMyopCisr CSAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxv d191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVy c3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkJICA7OworKwkgICAgICAgICopCisrCSAgICAg ICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRl ZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFt ZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9 JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRf b2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJCSAgOzsKKysJICAgICAgZXNhYworKwor KwkgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0k bGliZGlyJworKwkgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisrCSAg ICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRo YXQgbGlzdHMKKysJICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVz IGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJy YXJ5LgorKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKysKKysJICAgIGVsc2UK KysJICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAg ICAgIGxkX3NobGlic19DWFg9bm8KKysJICAgIGZpCisrCSAgICA7OworKyAgICAgICAgZXNhYwor KyAgICAgICAgOzsKKysKKysgICAgICBwc29zKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAg ICAgICAgOzsKKysKKysgICAgICBzdW5vczQqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUg aW4KKysgICAgICAgICAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQueAorKwkgICAgIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5v CisrCSAgICA7OworKyAgICAgICAgICBsY2MqKQorKwkgICAgIyBMdWNpZAorKwkgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hY PW5vCisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7Owor KyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBzb2xhcmlzKikKKysgICAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJICAgICMgU3VuIEMrKyA0 LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKysgICAgICAgICAgICBhcmNoaXZlX2NtZHNfbmVl ZF9sY19DWFg9eWVzCisrCSAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAtemRlZnMnCisrCSAg ICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAgLWgkc29u YW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2Vj aG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAi cy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4 cH4KKysJICAgICAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0tTSAke3dsfSRs aWIuZXhwIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJworKwkgICAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysJICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgICAg c29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OworKwkgICAgICAqKQorKwkJIyBU aGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9u cywKKysJCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuCisrCSAgICAgICAgIyBT dXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKysJCXdob2xlX2FyY2hp dmVfZmxhZ19zcGVjX0NYWD0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0 cmFjdCcKKysJICAgICAgICA7OworKwkgICAgZXNhYworKwkgICAgbGlua19hbGxfZGVwbGlic19D WFg9eWVzCisrCisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysKKysJICAg ICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1 c2luZworKwkgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGls ZXIuICBUaGlzIGlzCisrCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVk IHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICMgaW4gdGhlIGFyY2hpdmUuCisrCSAgICBv bGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJICAg IDs7CisrICAgICAgICAgIGdjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgor KwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHds JHNvbmFtZSAtbyAkbGliJworKworKwkgICAgIyBUaGUgQysrIGNvbXBpbGVyIG11c3QgYmUgdXNl ZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCisrCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJEND ICRMREZMQUdTIC1hcmNoaXZlIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKyAgICAg ICAgICAqKQorKwkgICAgIyBHTlUgQysrIGNvbXBpbGVyIHdpdGggU29sYXJpcyBsaW5rZXIKKysJ ICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhl bgorKwkgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS16ICR7d2x9ZGVmcycKKysJ ICAgICAgaWYgJENDIC0tdmVyc2lvbiB8ICRHUkVQIC12ICdeMlwuNycgPiAvZGV2L251bGw7IHRo ZW4KKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExE RkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRl eHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8g ImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCQkgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk e3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKysKKysJ ICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1 dCB0aGF0IGxpc3RzCisrCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0 IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAgICAgIyBsaW5raW5nIGEgc2hh cmVkIGxpYnJhcnkuCisrCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hh cmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisrCSAg ICAgIGVsc2UKKysJICAgICAgICAjIGcrKyAyLjcgYXBwZWFycyB0byByZXF1aXJlIGAtRycgTk9U IGAtc2hhcmVkJyBvbiB0aGlzCisrCSAgICAgICAgIyBwbGF0Zm9ybS4KKysJICAgICAgICBhcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLUcgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1o ICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0n ZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1l ICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIu ZXhwfgorKwkJICAkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKworKwkgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBj b21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICAgICAjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KKysJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICAgICBvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1HICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAy PiYxIHwgJEdSRVAgIlwtTCInCisrCSAgICAgIGZpCisrCisrCSAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPScke3dsfS1SICR3bCRsaWJkaXInCisrCSAgICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysJCXNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKKysJCSopCisr CQkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3Qk Y29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JworKwkJICA7OworKwkgICAg ICBlc2FjCisrCSAgICBmaQorKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7Cisr CisrICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LlswMV0u WzEwXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0XSopCisrICAgICAgbm9fdW5kZWZp bmVkX2ZsYWdfQ1hYPScke3dsfS16LHRleHQnCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNf Q1hYPW5vCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysgICAgICBydW5w YXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysg ICAgICAgIENDKikKKysJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUcgJHt3bH0taCwkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3 bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0taCwk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRf c3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgICBzeXN2 NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKwkjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRl ZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAorKwkjIGxpbmsgd2l0aCAt bGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisr CSMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFy eSB3b3VsZAorKwkjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05V IGxkIHdlIHVzZSAteiB0ZXh0CisrCSMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFk IHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKwkjIGFzIC16IGRlZnMuCisrCW5v X3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teix0ZXh0JworKwlhbGxvd191bmRlZmluZWRfZmxh Z19DWFg9JyR7d2x9LXosbm9kZWZzJworKwlhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysJ aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LVIsJGxpYmRpcicKKysJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9 JzonCisrCWxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcworKwlleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWNfQ1hYPScke3dsfS1CZXhwb3J0JworKwlydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisr CWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJICAgIGFyY2hpdmVfY21k c19DWFg9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1HICR7 d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIDs7CisrCSAgKikKKysJICAgIGFy Y2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNf Q1hYPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICA7 OworKwllc2FjCisrICAgICAgOzsKKysKKysgICAgICB0YW5kZW0qKQorKyAgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgTkNDKikKKysJICAgICMgTm9uU3RvcC1VWCBOQ0Mg My4yMAorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr CSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNf Q1hYPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICB2 eHdvcmtzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgOzsKKysKKysgICAgICAq KQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr ICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgICAgICA7OworKyAgICBlc2FjCisrCisrICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsZF9zaGxpYnNfQ1hYIiA+JjUK KyskYXNfZWNobyAiJGxkX3NobGlic19DWFgiID4mNjsgfQorKyAgICB0ZXN0ICIkbGRfc2hsaWJz X0NYWCIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrICAgIEdDQ19DWFg9IiRHWFgi CisrICAgIExEX0NYWD0iJExEIgorKworKyAgICAjIyBDQVZFQVQgRU1QVE9SOgorKyAgICAjIyBU aGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8g bm90IGNoYW5nZQorKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0 aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorKyAgICAjIyB3aGF0IHlvdSBhcmUg ZG9pbmcuLi4KKysgICAgIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0 aGUgb2JqZWN0IGJlaW5nIGxpbmtlZDoKKytwcmVkZXBfb2JqZWN0c19DWFg9CisrcG9zdGRlcF9v YmplY3RzX0NYWD0KKytwcmVkZXBzX0NYWD0KKytwb3N0ZGVwc19DWFg9CisrY29tcGlsZXJfbGli X3NlYXJjaF9wYXRoX0NYWD0KKysKKytjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgor K2NsYXNzIEZvbworK3sKKytwdWJsaWM6CisrICBGb28gKHZvaWQpIHsgYSA9IDA7IH0KKytwcml2 YXRlOgorKyAgaW50IGE7CisrfTsKKytfTFRfRU9GCisrCisraWYgeyAoZXZhbCBlY2hvICIkYXNf bWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkg Mj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICMgUGFy c2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5CisrICAjIG9i amVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KKysKKysgICMgU2VudGluZWwgdXNl ZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgb3Igbm90IHdlIGFyZSBiZWZvcmUKKysgICMgdGhl IGNvbmZ0ZXN0IG9iamVjdCBmaWxlLgorKyAgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT1ubwor KworKyAgZm9yIHAgaW4gYGV2YWwgIiRvdXRwdXRfdmVyYm9zZV9saW5rX2NtZCJgOyBkbworKyAg ICBjYXNlICRwIGluCisrCisrICAgIC1MKiB8IC1SKiB8IC1sKikKKysgICAgICAgIyBTb21lIGNv bXBpbGVycyBwbGFjZSBzcGFjZSBiZXR3ZWVuICIte0wsUn0iIGFuZCB0aGUgcGF0aC4KKysgICAg ICAgIyBSZW1vdmUgdGhlIHNwYWNlLgorKyAgICAgICBpZiB0ZXN0ICRwID0gIi1MIiB8fAorKyAg ICAgICAgICB0ZXN0ICRwID0gIi1SIjsgdGhlbgorKwkgcHJldj0kcAorKwkgY29udGludWUKKysg ICAgICAgZWxzZQorKwkgcHJldj0KKysgICAgICAgZmkKKysKKysgICAgICAgaWYgdGVzdCAiJHBy ZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KKysJIGNhc2UgJHAgaW4KKysJIC1M KiB8IC1SKikKKysJICAgIyBJbnRlcm5hbCBjb21waWxlciBsaWJyYXJ5IHBhdGhzIHNob3VsZCBj b21lIGFmdGVyIHRob3NlCisrCSAgICMgcHJvdmlkZWQgdGhlIHVzZXIuICBUaGUgcG9zdGRlcHMg YWxyZWFkeSBjb21lIGFmdGVyIHRoZQorKwkgICAjIHVzZXIgc3VwcGxpZWQgbGlicyBzbyB0aGVy ZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgdGhlbS4KKysJICAgaWYgdGVzdCAteiAiJGNvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aF9DWFgiOyB0aGVuCisrCSAgICAgY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoX0NYWD0iJHtwcmV2fSR7cH0iCisrCSAgIGVsc2UKKysJICAgICBjb21waWxlcl9saWJfc2Vh cmNoX3BhdGhfQ1hYPSIke2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFh9ICR7cHJldn0ke3B9 IgorKwkgICBmaQorKwkgICA7OworKwkgIyBUaGUgIi1sIiBjYXNlIHdvdWxkIG5ldmVyIGNvbWUg YmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKKysJICMgbGlua2VkLCBzbyBkb24ndCBib3RoZXIgaGFu ZGxpbmcgdGhpcyBjYXNlLgorKwkgZXNhYworKyAgICAgICBlbHNlCisrCSBpZiB0ZXN0IC16ICIk cG9zdGRlcHNfQ1hYIjsgdGhlbgorKwkgICBwb3N0ZGVwc19DWFg9IiR7cHJldn0ke3B9IgorKwkg ZWxzZQorKwkgICBwb3N0ZGVwc19DWFg9IiR7cG9zdGRlcHNfQ1hYfSAke3ByZXZ9JHtwfSIKKysJ IGZpCisrICAgICAgIGZpCisrICAgICAgIDs7CisrCisrICAgICouJG9iamV4dCkKKysgICAgICAg IyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBvYmplY3QgZmlsZSBvbmx5IHNob3dzIHVwCisr ICAgICAgICMgb25jZSBpbiB0aGUgY29tcGlsZXIgb3V0cHV0LgorKyAgICAgICBpZiB0ZXN0ICIk cCIgPSAiY29uZnRlc3QuJG9iamV4dCI7IHRoZW4KKysJIHByZV90ZXN0X29iamVjdF9kZXBzX2Rv bmU9eWVzCisrCSBjb250aW51ZQorKyAgICAgICBmaQorKworKyAgICAgICBpZiB0ZXN0ICIkcHJl X3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgorKwkgaWYgdGVzdCAteiAiJHByZWRl cF9vYmplY3RzX0NYWCI7IHRoZW4KKysJICAgcHJlZGVwX29iamVjdHNfQ1hYPSIkcCIKKysJIGVs c2UKKysJICAgcHJlZGVwX29iamVjdHNfQ1hYPSIkcHJlZGVwX29iamVjdHNfQ1hYICRwIgorKwkg ZmkKKysgICAgICAgZWxzZQorKwkgaWYgdGVzdCAteiAiJHBvc3RkZXBfb2JqZWN0c19DWFgiOyB0 aGVuCisrCSAgIHBvc3RkZXBfb2JqZWN0c19DWFg9IiRwIgorKwkgZWxzZQorKwkgICBwb3N0ZGVw X29iamVjdHNfQ1hYPSIkcG9zdGRlcF9vYmplY3RzX0NYWCAkcCIKKysJIGZpCisrICAgICAgIGZp CisrICAgICAgIDs7CisrCisrICAgICopIDs7ICMgSWdub3JlIHRoZSByZXN0LgorKworKyAgICBl c2FjCisrICBkb25lCisrCisrICAjIENsZWFuIHVwLgorKyAgcm0gLWYgYS5vdXQgYS5leGUKKytl bHNlCisrICBlY2hvICJsaWJ0b29sLm00OiBlcnJvcjogcHJvYmxlbSBjb21waWxpbmcgQ1hYIHRl c3QgcHJvZ3JhbSIKKytmaQorKworKyRSTSAtZiBjb25mZXN0LiRvYmpleHQKKysKKysjIFBPUlRN RTogb3ZlcnJpZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGJyb2tlbgorK2Nh c2UgJGhvc3Rfb3MgaW4KKytpbnRlcml4WzMtOV0qKQorKyAgIyBJbnRlcml4IDMuNSBpbnN0YWxs cyBjb21wbGV0ZWx5IGhvc2VkIC5sYSBmaWxlcyBmb3IgQysrLCBzbyByYXRoZXIgdGhhbgorKyAg IyBoYWNrIGFsbCBhcm91bmQgaXQsIGxldCdzIGp1c3QgdHJ1c3QgImcrKyIgdG8gRFRSVC4KKysg IHByZWRlcF9vYmplY3RzX0NYWD0KKysgIHBvc3RkZXBfb2JqZWN0c19DWFg9CisrICBwb3N0ZGVw c19DWFg9CisrICA7OworKworK2xpbnV4KikKKysgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVx YCBpbgorKyAgKlN1blwgQyopCisrICAgICMgU3VuIEMrKyA1LjkKKysKKysgICAgIyBUaGUgbW9y ZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCisrICAgICMgaW5jb21w YXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZworKyAgICAjIGl0 IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCisrICAgICMgLWxpYnJhcnk9 c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KKysgICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4K KysgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCisrICAgICAgc29sYXJpc191c2Vfc3RscG9y dDQ9eWVzCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBpZiB0ZXN0ICIkc29sYXJpc191 c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgorKyAgICAgIHBvc3RkZXBzX0NYWD0nLWxpYnJhcnk9 Q3N0ZCAtbGlicmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysK Kytzb2xhcmlzKikKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICBDQyopCisrICAgICMgVGhl IG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcworKyAgICAjIGlu Y29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKysgICAg IyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcworKyAgICAjIC1saWJy YXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAi IGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQorKyAgICAgIHNvbGFyaXNfdXNlX3N0 bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBBZGRpbmcgdGhpcyBy ZXF1aXJlcyBhIGtub3duLWdvb2Qgc2V0dXAgb2Ygc2hhcmVkIGxpYnJhcmllcyBmb3IKKysgICAg IyBTdW4gY29tcGlsZXIgdmVyc2lvbnMgYmVmb3JlIDUuNiwgZWxzZSBQSUMgb2JqZWN0cyBmcm9t IGFuIG9sZAorKyAgICAjIGFyY2hpdmUgd2lsbCBiZSBsaW5rZWQgaW50byB0aGUgb3V0cHV0LCBs ZWFkaW5nIHRvIHN1YnRsZSBidWdzLgorKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9y dDQiICE9IHllczsgdGhlbgorKyAgICAgIHBvc3RkZXBzX0NYWD0nLWxpYnJhcnk9Q3N0ZCAtbGli cmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKyAgOzsKKytlc2FjCisrCisr CisrY2FzZSAiICRwb3N0ZGVwc19DWFggIiBpbgorKyoiIC1sYyAiKikgYXJjaGl2ZV9jbWRzX25l ZWRfbGNfQ1hYPW5vIDs7CisrZXNhYworKyBjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYPQor K2lmIHRlc3QgLW4gIiR7Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWH0iOyB0aGVuCisrIGNv bXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFg9YGVjaG8gIiAke2NvbXBpbGVyX2xpYl9zZWFyY2hf cGF0aF9DWFh9IiB8ICR7U0VEfSAtZSAncyEgLUwhICFnJyAtZSAncyFeICEhJ2AKKytmaQorKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKyAgICBsdF9wcm9nX2NvbXBpbGVyX3ds X0NYWD0KKytsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9CisrbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfQ1hYPQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGNv bXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KKysKKysgICMg QysrIHNwZWNpZmljIGNhc2VzIGZvciBwaWMsIHN0YXRpYywgd2wsIGV0Yy4KKysgIGlmIHRlc3Qg IiRHWFgiID0geWVzOyB0aGVuCisrICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwor KyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMnCisrCisrICAgIGNhc2Ug JGhvc3Rfb3MgaW4KKysgICAgYWl4KikKKysgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCisr ICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJIyBBSVggNSBub3cgc3Vw cG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0 YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNh c2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21t ZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPSctZlBJQycKKysgICAgICAgIDs7CisrICAgICAgbTY4aykKKysgICAgICAg ICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNvZGUgdG8gYnVpbGQgc2hhcmVk IGxpYnJhcmllcywgYnV0CisrICAgICAgICAgICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIwJyBmbGFn IHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCisrICAgICAgICAgICAg IyBsaWtlIGAtbTY4MDQwJy4KKysgICAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9 Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKKysgICAgICAgIDs7Cisr ICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwg bm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICAjIFBJQyBpcyB0aGUg ZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KKysgICAgICA7OworKyAgICBtaW5ndyogfCBjeWd3aW4q IHwgb3MyKiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQg dGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKysgICAgICAjIGJ1 aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9y IGV4YW1wbGUpLgorKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJ Qywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKKysgICAgICAjICgtLWRpc2FibGUtYXV0 by1pbXBvcnQpIGxpYnJhcmllcworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLURE TExfRVhQT1JUJworKyAgICAgIDs7CisrICAgIGRhcndpbiogfCByaGFwc29keSopCisrICAgICAg IyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5 bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9Jy1mbm8tY29tbW9uJworKyAgICAgIDs7CisrICAgICpkamdwcCopCisrICAg ICAgIyBESkdQUCBkb2VzIG5vdCBzdXBwb3J0IHNoYXJlZCBsaWJyYXJpZXMgYXQgYWxsCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQorKyAgICAgIDs7CisrICAgIGludGVyaXhbMy05 XSopCisrICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0 ZSBicm9rZW4gY29kZS4KKysgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJy YXJpZXMgYXQgcnVudGltZS4KKysgICAgICA7OworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYg dGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9LUtjb25m b3JtX3BpYworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgaHB1eCopCisrICAgICAgIyBQSUMg aXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0Cisr ICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQg dGhlIHBpYyBmbGFnCisrICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZm ZWN0cyBpbmxpbmluZy4KKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEqNjQq KQorKwk7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCisr CTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrICAgICpxbngqIHwgKm50byopCisrICAgICAg IyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9v LCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCisrICAgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPSctZlBJQyAtc2hhcmVkJworKyAgICAgIDs7CisrICAgICopCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKKysgICAgICA7OworKyAgICBlc2Fj CisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXhbNC05XSopCisrCSMg QWxsIEFJWCBjb2RlIGlzIFBJQy4KKysJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4K KysJICAjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwkgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisrCWVsc2UKKysJICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysJZmkKKysJOzsKKysg ICAgICBjaG9ydXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwljeGNoNjgqKQorKwkgICMg R3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgIyBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCBDWFgpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19w cmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIv Q0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEiCisrCSAgOzsKKysJZXNh YworKwk7OworKyAgICAgIGRndXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIGVjKysq KQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKKysJICAgIDs7CisrCSAg Z2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNh YworKwk7OworKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysJIyBGcmVlQlNEIHVzZXMg R05VIEMrKworKwk7OworKyAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKwljYXNl ICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hY PSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPScke3dsfS1hICR7d2x9 YXJjaGl2ZScKKysJICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwkgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9JytaJworKwkgICAgZmkKKysJICAgIDs7CisrCSAg YUNDKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfQ1hYPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGNhc2Ug JGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0KnxpYTY0KikKKysJICAgICAgIyArWiB0aGUgZGVm YXVsdAorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPScrWicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIDs7CisrCSAgKikKKysJICAg IDs7CisrCWVzYWMKKysJOzsKKysgICAgICBpbnRlcml4KikKKysJIyBUaGlzIGlzIGM4OSwgd2hp Y2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hhcmVkIGxpYnMpCisrCSMgQW55b25lIHdhbnRzIHRv IGRvIGEgcG9ydD8KKysJOzsKKysgICAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQor KwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJf d2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctbm9uX3No YXJlZCcKKysJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1bHQuCisrCSAgICA7 OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgbGludXgqIHwgaypic2Qq LWdudSkKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBLQ0MqKQorKwkgICAgIyBLQUkgQysr IENvbXBpbGVyCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLS1iYWNrZW5kIC1XbCwn CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJworKwkgICAgOzsKKysJICBl Y3BjKiApCisrCSAgICAjIG9sZCBJbnRlbCBDKysgZm9yIHg4Nl82NCB3aGljaCBzdGlsbCBzdXBw b3J0ZWQgLUtQSUMuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Jy1zdGF0aWMnCisrCSAgICA7OworKwkgIGljcGMqICkKKysJICAgICMgSW50 ZWwgQysrLCB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KKysJICAgICMgSUNDIDEw IGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgorKwkgICAgbHRfcHJvZ19jb21waWxlcl93 bF9DWFg9Jy1XbCwnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJworKwkg ICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctc3RhdGljJworKwkgICAgOzsKKysJICBw Z0NDKiB8IHBnY3BwKikKKysJICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCisrCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWD0nLWZwaWMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3Rh dGljJworKwkgICAgOzsKKysJICBjeHgqKQorKwkgICAgIyBDb21wYXEgQysrCisrCSAgICAjIE1h a2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhh CisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisr CSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19DWFg9Jy1ub25fc2hhcmVkJworKwkgICAgOzsKKysJICB4bGMqIHwgeGxDKikKKysJICAg ICMgSUJNIFhMIDguMCBvbiBQUEMKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2ws JworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcXBpYycKKysJICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0NYWD0nLXFzdGF0aWNsaW5rJworKwkgICAgOzsKKysJICAqKQorKwkg ICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSAgICAqU3VuXCBDKikKKysJICAg ICAgIyBTdW4gQysrIDUuOQorKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElD JworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVFvcHRpb24gbGQgJworKwkgICAgICA7OworKwkg ICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGx5bnhvcyopCisrCTs7Cisr ICAgICAgbTg4ayopCisrCTs7CisrICAgICAgbXZzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4K KysJICBjeHgqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctVyBjLGV4cG9ydGFs bCcKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBuZXRi c2QqKQorKwk7OworKyAgICAgICpxbngqIHwgKm50byopCisrICAgICAgICAjIFFOWCB1c2VzIEdO VSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQor KyAgICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYPSctZlBJQyAtc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICBvc2YzKiB8IG9zZjQq IHwgb3NmNSopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgS0NDKikKKysJICAgIGx0X3By b2dfY29tcGlsZXJfd2xfQ1hYPSctLWJhY2tlbmQgLVdsLCcKKysJICAgIDs7CisrCSAgUkNDKikK KysJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFg9Jy1waWMnCisrCSAgICA7OworKwkgIGN4eCopCisrCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMr KworKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrCSAgICAjIE1ha2Ugc3Vy ZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCisrCSAg ICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisrCSAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19D WFg9Jy1ub25fc2hhcmVkJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7 OworKyAgICAgIHBzb3MqKQorKwk7OworKyAgICAgIHNvbGFyaXMqKQorKwljYXNlICRjY19iYXNl bmFtZSBpbgorKwkgIENDKikKKysJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGlu ZSBDKysKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAgbHRfcHJvZ19jb21waWxl cl93bF9DWFg9Jy1Rb3B0aW9uIGxkICcKKysJICAgIDs7CisrCSAgZ2N4KikKKysJICAgICMgR3Jl ZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1Q SUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgc3Vu b3M0KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICAjIFN1biBDKysg NC54CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCisrCSAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJICBsY2MqKQorKwkg ICAgIyBMdWNpZAorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJworKwkgICAg OzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHN5c3Y1KiB8IHVuaXh3 YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCisrCSAgQ0MqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisr CSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAg ICB0YW5kZW0qKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIE5DQyopCisrCSAgICAjIE5v blN0b3AtVVggTkNDIDMuMjAKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMn CisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgdnh3b3Jr cyopCisrCTs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVk X0NYWD1ubworKwk7OworKyAgICBlc2FjCisrICBmaQorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKysg ICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5p bmdsZXNzOgorKyAgKmRqZ3BwKikKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQorKyAg ICA7OworKyAgKikKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSIkbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYIC1EUElDIgorKyAgICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIiA+JjUKKyskYXNfZWNo byAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgPiY2OyB9CisrCisrCisrCisrIworKyMgQ2hl Y2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KKysjCisraWYgdGVz dCAtbiAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWCB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBp bGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggd29ya3MuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCtzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9w cm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFg9bm8KKysgICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRh Y19vYmpleHQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0 ZXN0LiRhY19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSIkbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYIC1EUElDIgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUg bGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWlu aW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNf Y29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisr ICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3Vs ZCB3b3JrIGNvcnJlY3RseS4KKysgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2 YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRh Y19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21w aWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGls ZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAo ZXZhbCBlY2hvICJcIlwkYXNfbWU6MTQ3MDA6ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZh bCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNh dCBjb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjE0NzA0OiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0Zmls ZSI7IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0 aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBh cmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgorKyAgICAgJEVDSE8gIlgk X2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4 cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIy CisrICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNv bmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJf cGljX3dvcmtzX0NYWD15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAkUk0gY29uZnRlc3QqCisr CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19j b21waWxlcl9waWNfd29ya3NfQ1hYIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGls ZXJfcGljX3dvcmtzX0NYWCIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBp bGVyX3BpY193b3Jrc19DWFgiID0geHllczsgdGhlbgorKyAgICBjYXNlICRsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFggaW4KKysgICAgICIiIHwgIiAiKikgOzsKKysgICAgICopIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0iICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiIDs7CisrICAgICBlc2Fj CisrZWxzZQorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9CisrICAgICBsdF9wcm9nX2Nv bXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfQ1hYPW5vCisrZmkKKysKKytmaQorKworKworKworKyMK KysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29ya3MuCisr IworK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1c IiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFhcIgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxh ZyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBm bGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVy X3N0YXRpY193b3Jrc19DWFg9bm8KKysgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgorKyAgIExE RkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWciCisrICAgZWNobyAiJGx0X3NpbXBs ZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrICAgaWYgKGV2YWwgJGFjX2xp bmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCisr ICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYg bm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwor KyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKysgICAgICAgIyBBcHBlbmQgYW55 IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KKysgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1 CisrICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9e JC9kJyA+IGNvbmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRl c3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRl c3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0 YXRpY193b3Jrc19DWFg9eWVzCisrICAgICAgIGZpCisrICAgICBlbHNlCisrICAgICAgIGx0X2N2 X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD15ZXMKKysgICAgIGZpCisrICAgZmkKKysg ICAkUk0gLXIgY29uZnRlc3QqCisrICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVy X3N0YXRpY193b3Jrc19DWFgiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9z dGF0aWNfd29ya3NfQ1hYIiA+JjY7IH0KKysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGls ZXJfc3RhdGljX3dvcmtzX0NYWCIgPSB4eWVzOyB0aGVuCisrICAgIDoKKytlbHNlCisrICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0KKytmaQorKworKworKworKworKyAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1v IGZpbGUuJGFjX29iamV4dCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVy IHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NY WD1ubworKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAorKyAgIG1rZGlyIGNvbmZ0ZXN0 CisrICAgY2QgY29uZnRlc3QKKysgICBta2RpciBvdXQKKysgICBlY2hvICIkbHRfc2ltcGxlX2Nv bXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICBsdF9jb21waWxlcl9m bGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCisrICAgIyBJbnNlcnQgdGhlIG9wdGlv biBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKKysgICAjICgy KSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5k LgorKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJh Y2tzbGFzaGVzIGFuZCBiZWdpbnMKKysgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlw aGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgorKyAgIGx0X2NvbXBpbGU9 YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6 JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAk bHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6 J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTQ3OTk6ICRsdF9jb21waWxlXCIiID4mNSkK KysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0 dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6MTQ4 MDM6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRl c3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29t cGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6 ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJEVDSE8g IlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29u ZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+ b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwg ZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgor KyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9eWVzCisrICAgICBmaQorKyAgIGZp CisrICAgY2htb2QgdSt3IC4gMj4mNQorKyAgICRSTSBjb25mdGVzdCoKKysgICAjIFNHSSBDKysg Y29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCisrICAgIyB0 ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCisrICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91 dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcworKyAgICRSTSBvdXQvKiAmJiBybWRp ciBvdXQKKysgICBjZCAuLgorKyAgICRSTSAtciBjb25mdGVzdAorKyAgICRSTSBjb25mdGVzdCoK KysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9n X2NvbXBpbGVyX2Nfb19DWFgiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9j X29fQ1hYIiA+JjY7IH0KKysKKysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxl LiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJf Y19vX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9bm8KKysgICAkUk0gLXIgY29u ZnRlc3QgMj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0Cisr ICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBj b25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0 Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0 aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250 YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAk YWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5z CisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNo b3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIg fCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6 OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsg dCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAi XCJcJGFzX21lOjE0ODUxOiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21w aWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91dC9j b25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjE0ODU1OiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIu JGFjX29iamV4dAorKyAgIHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4g YW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBu byBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2ls ZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAorKyAgICAgJFNF RCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKKysg ICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4 cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19j b21waWxlcl9jX29fQ1hYPXllcworKyAgICAgZmkKKysgICBmaQorKyAgIGNobW9kIHUrdyAuIDI+ JjUKKysgICAkUk0gY29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRl IGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlv bgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRp ciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysg ICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+ JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY2OyB9CisrCisr CisrCisrCisraGFyZF9saW5rcz0ibm90dGVzdGVkIgorK2lmIHRlc3QgIiRsdF9jdl9wcm9nX2Nv bXBpbGVyX2Nfb19DWFgiID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCisr ICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkg dGhlIHVzZXIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiB3ZSBj YW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHdl IGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQorKyAgaGFyZF9saW5rcz15ZXMK KysgICRSTSBjb25mdGVzdCoKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVs bCAmJiBoYXJkX2xpbmtzPW5vCisrICB0b3VjaCBjb25mdGVzdC5hCisrICBsbiBjb25mdGVzdC5h IGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0 ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQorKyRhc19lY2hvICIkaGFyZF9saW5r cyIgPiY2OyB9CisrICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBubzsgdGhlbgorKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQg XGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFr ZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30KKysgICAgbmVlZF9sb2Nrcz13YXJuCisrICBmaQor K2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytmaQorKworKworKworKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExE KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXMuLi4gIiA+JjY7IH0KKysKKysgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gJGxpYm9i anMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8n XCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICBjYXNlICRob3N0X29zIGlu CisrICBhaXhbNC05XSopCisrICAgICMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRv bid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgorKyAgICAjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJ WCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrICAgIGlmICROTSAt ViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICBleHBvcnRfc3lt Ym9sc19jbWRzX0NYWD0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7 IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYm IChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAt dSA+ICRleHBvcnRfc3ltYm9scycKKysgICAgZWxzZQorKyAgICAgIGV4cG9ydF9zeW1ib2xzX2Nt ZHNfQ1hYPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgo KFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChzdWJz dHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRl eHBvcnRfc3ltYm9scycKKysgICAgZmkKKysgICAgOzsKKysgIHB3MzIqKQorKyAgICBleHBvcnRf c3ltYm9sc19jbWRzX0NYWD0iJGx0ZGxsX2NtZHMiCisrICA7OworKyAgY3lnd2luKiB8IG1pbmd3 KiB8IGNlZ2NjKikKKysgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JT XVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvOy9eLipbIF1fX25tX18vcy9eLipbIF1fX25t X19cKFteIF0qXClbIF1bXiBdKi9cMSBEQVRBLzsvXklbIF0vZDsvXltBSVRXXVsgXS9zLy4qIC8v J1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgOzsKKysgICopCisrICAg IGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGds b2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAk ZXhwb3J0X3N5bWJvbHMnCisrICA7OworKyAgZXNhYworKyAgZXhjbHVkZV9leHBzeW1zX0NYWD0n X0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJworKworK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsZF9zaGxpYnNfQ1hYIiA+JjUKKyskYXNfZWNobyAi JGxkX3NobGlic19DWFgiID4mNjsgfQorK3Rlc3QgIiRsZF9zaGxpYnNfQ1hYIiA9IG5vICYmIGNh bl9idWlsZF9zaGFyZWQ9bm8KKysKKyt3aXRoX2dudV9sZF9DWFg9JHdpdGhfZ251X2xkCisrCisr CisrCisrCisrCisrCisrIworKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8K KysjCisrY2FzZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiIGluCisreHx4eWVzKQorKyAg IyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hY PXllcworKworKyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCisrICAgIGNhc2UgJGFyY2hpdmVfY21kc19DWFggaW4KKysgICAgKid+Jyop CisrICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQg c2VxdWVuY2VzLgorKyAgICAgIDs7CisrICAgICckQ0MgJyopCisrICAgICAgIyBUZXN0IHdoZXRo ZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQor KyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFs cmVhZHkgcGFzc2VzIC1sYworKyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1s Z2NjLgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4iID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAiID4m NjsgfQorKyAgICAgICRSTSBjb25mdGVzdCoKKysgICAgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICAgICBpZiB7IChldmFsIGVj aG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19j b21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAyPmNvbmZ0 ZXN0LmVycjsgdGhlbgorKyAgICAgICAgc29uYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsaWI9Y29u ZnRlc3QKKysgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAorKyAgICAgICAgZGVw bGlicz0KKysgICAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWAorKwlwaWNfZmxhZz0k bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYCisrICAgICAgICBjb21waWxlcl9mbGFncz0tdgorKyAg ICAgICAgbGlua2VyX2ZsYWdzPS12CisrICAgICAgICB2ZXJzdHJpbmc9CisrICAgICAgICBvdXRw dXRfb2JqZGlyPS4KKysgICAgICAgIGxpYm5hbWU9Y29uZnRlc3QKKysgICAgICAgIGx0X3NhdmVf YWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWAorKyAgICAgICAg YWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPQorKyAgICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNf bWU6JExJTkVOTzogXCIkYXJjaGl2ZV9jbWRzX0NYWCAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwi IFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1CisrICAoZXZhbCAkYXJjaGl2ZV9jbWRzX0NYWCAy XD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkgMj4mNQorKyAgYWNf c3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KKysgICAgICAgIHRoZW4KKysJICBhcmNoaXZl X2NtZHNfbmVlZF9sY19DWFg9bm8KKysgICAgICAgIGVsc2UKKysJICBhcmNoaXZlX2NtZHNfbmVl ZF9sY19DWFg9eWVzCisrICAgICAgICBmaQorKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Q1hYPSRsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnCisrICAgICAgZWxzZQorKyAgICAgICAg Y2F0IGNvbmZ0ZXN0LmVyciAxPiY1CisrICAgICAgZmkKKysgICAgICAkUk0gY29uZnRlc3QqCisr ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFyY2hpdmVfY21kc19u ZWVkX2xjX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiID4m NjsgfQorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrICA7OworK2VzYWMKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGR5 bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg ZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9CisrCisrbGlicmFyeV9u YW1lc19zcGVjPQorK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCisrc29uYW1lX3NwZWM9Cisrc2hy ZXh0X2NtZHM9Ii5zbyIKKytwb3N0aW5zdGFsbF9jbWRzPQorK3Bvc3R1bmluc3RhbGxfY21kcz0K KytmaW5pc2hfY21kcz0KKytmaW5pc2hfZXZhbD0KKytzaGxpYnBhdGhfdmFyPQorK3NobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCisrdmVyc2lvbl90eXBlPW5vbmUKKytkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9s aWIgL3Vzci9saWIiCisrbmVlZF9saWJfcHJlZml4PXVua25vd24KKytoYXJkY29kZV9pbnRvX2xp YnM9bm8KKysKKysjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBp dCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KKysjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91 dCBhcmd1bWVudHMKKytuZWVkX3ZlcnNpb249dW5rbm93bgorKworK2Nhc2UgJGhvc3Rfb3MgaW4K KythaXgzKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCisr ICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysKKysgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcg c3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICA7 OworKworK2FpeFs0LTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJl Zml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysg IGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICMgQUlYIDUgc3VwcG9ydHMg SUE2NAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIGVsc2UKKysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxk IGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4g IFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAgICMgdGhlIGxpbmUgYCMhIC4n LiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKysgICAgIyBkZXBl bmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4K KysgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KKysgICAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBhaXg0LlswMV0uKikK KysgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYg X19HTlVDX01JTk9SX18gPj0gOTcpJworKwkgICBlY2hvICcgeWVzICcKKysJICAgZWNobyAnI2Vu ZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KKysJOgor KyAgICAgIGVsc2UKKysJY2FuX2J1aWxkX3NoYXJlZD1ubworKyAgICAgIGZpCisrICAgICAgOzsK KysgICAgZXNhYworKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBw b3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0CisrICAgICMgc29u YW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBv cnQgdG8KKysgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVs IGluIGZ1dHVyZS4KKysgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVz OyB0aGVuCisrICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9y IGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCisrICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5h IHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKKysgICAgICAjIHR5cGljYWwg QUlYIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIGVsc2UKKysg ICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0 aHJvdWdoIEFJWDQuMgorKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBy dW4gdGltZSBsaW5raW5nLgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0uYSAkbGlibmFtZS5hJworKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGZpCisrICAgIHNobGlicGF0aF92YXI9 TElCUEFUSAorKyAgZmkKKysgIDs7CisrCisrYW1pZ2FvcyopCisrICBjYXNlICRob3N0X2NwdSBp bgorKyAgcG93ZXJwYykKKysgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNpYWxs eSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgorKyAgICAjIFdoZW4gY29tcGlsaW5nIHRoZSBleGVj dXRhYmxlLCBhZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUgY29tcGlsZWxpbmUuCisrICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgICA7OworKyAgbTY4aykKKysgICAgbGlicmFyeV9uYW1lc19zcGVj PSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKKysgICAgIyBDcmVhdGUgJHtsaWJuYW1l fV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KKysgICAgZmluaXNoX2V2YWw9J2Zv ciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1l PWAkRUNITyAiWCRsaWIiIHwgJFhzZWQgLWUgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhsaWJyYXJ5 JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRz aG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsg Y2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0 IDE7IGRvbmUnCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2Jlb3MqKQorKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2Vy PSIkaG9zdF9vcyBsZC5zbyIKKysgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICisrICA7Owor KworK2JzZGlbNDVdKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5v CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBs ZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNy L2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVs dCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vz ci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1 cyBhbGxvdworKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisr ICA7OworKworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHZlcnNpb25f dHlwZT13aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgbmVlZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHll cyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKiB8IHllcyxjZWdjYyopCisrICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCisrICAgICMgRExMIGlzIGluc3RhbGxl ZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAgcG9zdGluc3Rh bGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAgZGxwYXRoPWAk U0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRk bG5hbWUnXCcnYH4KKysgICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRscGF0aGB+Cisr ICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+CisrICAgICAgJGluc3Rh bGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGNobW9kIGEreCBc JGRsZGlyLyRkbG5hbWV+CisrICAgICAgaWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUnXCcnICYmIHRl c3QgLW4gJ1wnJyRzdHJpcGxpYidcJyc7IHRoZW4KKysgICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxp YiBcJGRsZGlyLyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/OworKyAgICAgIGZpJworKyAgICBwb3N0 dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBc JGRsbmFtZSdcJydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRSTSBc JGRscGF0aCcKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBj YXNlICRob3N0X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2Ug J2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hv ICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNF RCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIgL2xpYi93MzJhcGkgL2xpYiAvdXNyL2xvY2Fs L2xpYiIKKysgICAgICA7OworKyAgICBtaW5ndyogfCBjZWdjYyopCisrICAgICAgIyBNaW5HVyBE TExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKKysgICAgICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4 fSR7c2hhcmVkX2V4dH0nCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXBy aW50LXNlYXJjaC1kaXJzIHwgJEdSRVAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJh cmllczovLyIgLWUgInMsPS8sLyxnImAKKysgICAgICBpZiAkRUNITyAiJHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYyIgfCAkR1JFUCAnO1tjLXpDLVpdOi8nID4vZGV2L251bGw7IHRoZW4KKysgICAg ICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBi eQorKyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdj YyBwcmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBh bmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQorKyAgICAgICAgIyBkcml2 ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0 aGVtLAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQg dGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRl cnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdz LzsvIC9nJ2AKKysgICAgICBlbHNlCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NF UEFSQVRPUi8gL2ciYAorKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgcHczMiopCisrICAgICAg IyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgbGli cmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2Bg ZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJl ZF9leHR9JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgOzsKKysKKysgICopCisrICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdz L1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJworKyAgICA7 OworKyAgZXNhYworKyAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKKysgICMgRklYTUU6 IGZpcnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJs ZSBpcyBpbgorKyAgc2hsaWJwYXRoX3Zhcj1QQVRICisrICA7OworKworK2RhcndpbiogfCByaGFw c29keSopCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZHlsZCIKKysgIHZlcnNpb25fdHlw ZT1kYXJ3aW4KKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4 dCAke2xpYm5hbWV9JHNoYXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0JworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcworKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllfUEFUSAorKyAgc2hyZXh0X2NtZHM9 J2B0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8fCBlY2hvIC5keWxpYmAnCisrCisr ICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL2xpYiAvdXNyL2xp YicKKysgIDs7CisrCisrZGd1eCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNoYXJlZF9leHQnCisrICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrZnJlZWJzZDEqKQorKyAgZHluYW1p Y19saW5rZXI9bm8KKysgIDs7CisrCisrZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgIyBEcmFn b25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5IGltcGxlbWVudCBhIG5ldwor KyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMuCisrICBpZiB0ZXN0IC14IC91 c3IvYmluL29iamZvcm1hdDsgdGhlbgorKyAgICBvYmpmb3JtYXQ9YC91c3IvYmluL29iamZvcm1h dGAKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBmcmVlYnNkWzEyM10qKSBv Ympmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CisrICAgIGVzYWMKKysg IGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBjYXNlICR2ZXJzaW9u X3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgIG5lZWRf dmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIGZy ZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcK KysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGluCisrICBmcmVlYnNkMiop CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgOzsKKysgIGZyZWVi c2QzLlswMV0qIHwgZnJlZWJzZGVsZjMuWzAxXSopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAgZnJl ZWJzZDMuWzItOV0qIHwgZnJlZWJzZGVsZjMuWzItOV0qIHwgXAorKyAgZnJlZWJzZDQuWzAtNV0g fCBmcmVlYnNkZWxmNC5bMC01XSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEuMSkKKysg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkKKysgICAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7 c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSop CisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBz byB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9u cy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVk X3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysgICAgc2hyZXh0 X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZh ciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0ZXN0ICJYJEhQ VVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIK KysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1 eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgaHBwYSo2 NCopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK KysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICisrICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNw ZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKKysgICAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7Owor KyAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICisrICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9Q QVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNhYworKyAgIyBIUC1VWCBy dW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUu CisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysgIDs7CisrCisraW50ZXJp eFszLTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZHluYW1pY19saW5rZXI9 J0ludGVyaXggMy54IGxkLnNvLjEgKFBFLCBsaWtlIEVMRiknCisrICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1 eCopCisrICBjYXNlICRob3N0X29zIGluCisrICAgIG5vbnN0b3B1eCopIHZlcnNpb25fdHlwZT1u b25zdG9wdXggOzsKKysgICAgKikKKysJaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHll czsgdGhlbgorKwkJdmVyc2lvbl90eXBlPWxpbnV4CisrCWVsc2UKKysJCXZlcnNpb25fdHlwZT1p cml4CisrCWZpIDs7CisrICBlc2FjCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVy c2lvbj1ubworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGlyaXg1KiB8IG5vbnN0b3B1eCopCisrICAgIGxp YnN1ZmY9IHNobGlic3VmZj0KKysgICAgOzsKKysgICopCisrICAgIGNhc2UgJExEIGluICMgbGli dG9vbC5tNCB3aWxsIGFkZCBvbmUgb2YgdGhlc2Ugc3dpdGNoZXMgdG8gTEQKKysgICAgKi0zMnwq Ii0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAgIikKKysgICAgICBsaWJzdWZmPSBz aGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7CisrICAgICotbjMyfCoiLW4zMiAifCotbWVsZjMy Ym1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpCisrICAgICAgbGlic3VmZj0zMiBzaGxpYnN1ZmY9 TjMyIGxpYm1hZ2ljPU4zMjs7CisrICAgICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiItbWVs ZjY0Ym1pcCAiKQorKyAgICAgIGxpYnN1ZmY9NjQgc2hsaWJzdWZmPTY0IGxpYm1hZ2ljPTY0LWJp dDs7CisrICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9bmV2ZXItbWF0Y2g7Owor KyAgICBlc2FjCisrICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUlkk e3NobGlic3VmZn1fUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZm fSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IgorKyAgaGFyZGNvZGVfaW50b19s aWJzPXllcworKyAgOzsKKysKKysjIE5vIHNoYXJlZCBsaWIgc3VwcG9ydCBmb3IgTGludXggb2xk bGQsIGFvdXQsIG9yIGNvZmYuCisrbGludXgqb2xkbGQqIHwgbGludXgqYW91dCogfCBsaW51eCpj b2ZmKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworKyMgVGhpcyBtdXN0IGJlIExp bnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4Cisr ICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRp cicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9bm8KKysgICMgU29tZSBiaW51dGlscyBsZCBhcmUgcGF0Y2hlZCB0byBzZXQg RFRfUlVOUEFUSAorKyAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisrICBzYXZlX2xpYmRpcj0kbGli ZGlyCisrICBldmFsICJsaWJkaXI9L2Zvbzsgd2w9XCIkbHRfcHJvZ19jb21waWxlcl93bF9DWFhc IjsgXAorKyAgICAgICBMREZMQUdTPVwiXCRMREZMQUdTICRoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWFwiIgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAo YWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5r IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAg ICB9OyB0aGVuCisrICBpZiAgKCRPQkpEVU1QIC1wIGNvbmZ0ZXN0JGFjX2V4ZWV4dCkgMj4vZGV2 L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rldi9udWxsOyB0aGVuCisrICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrZmkKKysKKytlbHNlCisrICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25m dGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysg IExERkxBR1M9JHNhdmVfTERGTEFHUworKyAgbGliZGlyPSRzYXZlX2xpYmRpcgorKworKyAgIyBU aGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1bmFjY2VwdGFibGUuCisrICAj IFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZvciBmYXN0X2luc3RhbGwKKysg ICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz CisrCisrICAjIEFkZCBBQkktc3BlY2lmaWMgZGlyZWN0b3JpZXMgdG8gdGhlIHN5c3RlbSBsaWJy YXJ5IHBhdGguCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYjY0IC91c3IvbGli NjQgL2xpYiAvdXNyL2xpYiIKKysKKysgICMgQXBwZW5kIGxkLnNvLmNvbmYgY29udGVudHMgdG8g dGhlIHNlYXJjaCBwYXRoCisrICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgorKyAg ICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUgLyB7IHN5c3RlbShzcHJpbnRmKCJjZCAvZXRj OyBjYXQgJXMgMj4vZGV2L251bGwiLCBcJDIpKTsgc2tpcCA9IDE7IH0geyBpZiAoIXNraXApIHBy aW50IFwkMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiov LzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8g L2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgorKyAgZmkKKysKKysg ICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxp YnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQg c2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5j ZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisrICAjIG1vc3QgcG93ZXJw Yy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBkYXlzIGFuZAorKyAg IyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3Zl ZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGlu IHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCisrICA7OworKworK25l dGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAg bmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4JworKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNv bmZpZyAtbSAkbGliZGlyJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQu c28nCisrICBlbHNlCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGR5bmFtaWNfbGlua2Vy PSdOZXRCU0QgbGQuZWxmX3NvJworKyAgZmkKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCisrICA7OworKworK25ld3NvczYpCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIDs7CisrCisrKm50byogfCAqcW54KikKKysg IHZlcnNpb25fdHlwZT1xbngKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9u PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICBkeW5hbWljX2xpbmtlcj0nbGRxbnguc28nCisrICA7OworKworK29wZW5ic2QqKQor KyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBv ZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KKysgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikJbmVlZF92ZXJz aW9uPXllcyA7OworKyAgICAqKQkJCQluZWVkX3ZlcnNpb249bm8gIDs7CisrICBlc2FjCisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9 J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1F IC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVu YnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBvcGVu YnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQorKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KKysJOzsKKysgICAgICAqKQorKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz CisrCTs7CisrICAgICAgZXNhYworKyAgZWxzZQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysKKytvczIqKQorKyAgbGlibmFtZV9zcGVjPSckbmFt ZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFtZS5hJworKyAgZHlu YW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrICA7 OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIHZlcnNpb25fdHlwZT1vc2YKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIg L3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorKyAgOzsKKysKKytyZG9zKikKKysgIGR5bmFt aWNfbGlua2VyPW5vCisrICA7OworKworK3NvbGFyaXMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4 CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICMgbGRkIGNv bXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCisrICBwb3N0aW5zdGFsbF9j bWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsKKysKKytzdW5vczQqKQorKyAgdmVyc2lvbl90eXBl PXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAg ZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcgJGxpYmRpcicKKysg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysgIG5lZWRfdmVyc2lvbj15ZXMKKysgIDs7CisrCisr c3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGNhc2UgJGhvc3RfdmVuZG9y IGluCisrICAgIHNuaSkKKysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysg ICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAor KyAgICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAg ICAgOzsKKysgICAgbW90b3JvbGEpCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAg bmVlZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisr ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91c3IvY2NzL2xp YicKKysgICAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzeXN2NCpNUCopCisrICBpZiB0ZXN0 IC1kIC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNpb25fdHlwZT1saW51eAorKyAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtz aGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3Bl Yz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIGZpCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2 NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgdmVyc2lvbl90eXBl PWZyZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlm IHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGli IC9saWInCisrICBlbHNlCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9jY3Mv bGliIC91c3IvbGliJworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc2NvMy4ydjUqKQor KyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIC9saWIiCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0nL3Vzci9saWInCisrICA7OworKworK3RwZiopCisrICAjIFRQRiBpcyBhIGNyb3Nz LXRhcmdldCBvbmx5LiAgUHJlZmVycmVkIGNyb3NzLWhvc3QgPSBHTlUvTGludXguCisrICB2ZXJz aW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK KysgIDs7CisrCisrdXRzNCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKworKyopCisrICBk eW5hbWljX2xpbmtlcj1ubworKyAgOzsKKytlc2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+JjUKKyskYXNfZWNobyAiJGR5bmFtaWNfbGlu a2VyIiA+JjY7IH0KKyt0ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3No YXJlZD1ubworKworK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhf dmFyICRydW5wYXRoX3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgdmFyaWFi bGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0NfRVhF Q19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysKKytpZiB0ZXN0ICIk e2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgor K2ZpCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9 IHNldDsgdGhlbgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcyIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBw cm9ncmFtcy4uLiAiID4mNjsgfQorK2hhcmRjb2RlX2FjdGlvbl9DWFg9CisraWYgdGVzdCAtbiAi JGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIiB8fAorKyAgIHRlc3QgLW4gIiRydW5wYXRo X3Zhcl9DWFgiIHx8CisrICAgdGVzdCAiWCRoYXJkY29kZV9hdXRvbWF0aWNfQ1hYIiA9ICJYeWVz IiA7IHRoZW4KKysKKysgICMgV2UgY2FuIGhhcmRjb2RlIG5vbi1leGlzdGVudCBkaXJlY3Rvcmll cy4KKysgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfQ1hYIiAhPSBubyAmJgorKyAgICAgIyBJ ZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFy LCB3ZQorKyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0 aCBhbiBpbnN0YWxsZWQgbGlicmFyeQorKyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5n IHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQorKyAgICAgIyMgdGVzdCAiJF9MVF9UQUdW QVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgQ1hYKSIgIT0gbm8gJiYKKysgICAgIHRlc3QgIiRo YXJkY29kZV9taW51c19MX0NYWCIgIT0gbm87IHRoZW4KKysgICAgIyBMaW5raW5nIGFsd2F5cyBo YXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KKysgICAgaGFyZGNvZGVf YWN0aW9uX0NYWD1yZWxpbmsKKysgIGVsc2UKKysgICAgIyBXZSBjYW4gbGluayB3aXRob3V0IGhh cmRjb2RpbmcsIGFuZCB3ZSBjYW4gaGFyZGNvZGUgbm9uZXhpc3RpbmcgZGlycy4KKysgICAgaGFy ZGNvZGVfYWN0aW9uX0NYWD1pbW1lZGlhdGUKKysgIGZpCisrZWxzZQorKyAgIyBXZSBjYW5ub3Qg aGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcK KysgICMgZGlyZWN0b3JpZXMuCisrICBoYXJkY29kZV9hY3Rpb25fQ1hYPXVuc3VwcG9ydGVkCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZGNvZGVfYWN0aW9u X0NYWCIgPiY1CisrJGFzX2VjaG8gIiRoYXJkY29kZV9hY3Rpb25fQ1hYIiA+JjY7IH0KKysKKytp ZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uX0NYWCIgPSByZWxpbmsgfHwKKysgICB0ZXN0ICIkaW5o ZXJpdF9ycGF0aF9DWFgiID0geWVzOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5v dCBzdXBwb3J0ZWQKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKytlbGlmIHRlc3QgIiRzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzIHx8CisrICAgICB0ZXN0ICIkZW5hYmxlX3No YXJlZCIgPSBubzsgdGhlbgorKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3QgbmVjZXNzYXJ5 CisrICBlbmFibGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCisrZmkKKysKKysKKysKKysKKysKKysK KysKKysgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgorKworKyAgQ0M9JGx0X3NhdmVfQ0MKKysg IExEQ1hYPSRMRAorKyAgTEQ9JGx0X3NhdmVfTEQKKysgIEdDQz0kbHRfc2F2ZV9HQ0MKKysgIHdp dGhfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251X2xkCisrICBsdF9jdl9wYXRoX0xEQ1hYPSRsdF9j dl9wYXRoX0xECisrICBsdF9jdl9wYXRoX0xEPSRsdF9zYXZlX3BhdGhfTEQKKysgIGx0X2N2X3By b2dfZ251X2xkY3h4PSRsdF9jdl9wcm9nX2dudV9sZAorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0 X3NhdmVfd2l0aF9nbnVfbGQKKytmaSAjIHRlc3QgIiRfbHRfY2F1Z2h0X0NYWF9lcnJvciIgIT0g eWVzCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9 JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5r PSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21w aWxlcl9nbnUKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysgICAgICAg IGFjX2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBsaWJ0b29sIgorKworKwor KworKworKyMgT25seSBleHBhbmQgb25jZToKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiAiID4mNjsgfQorK0xOX1M9JGFzX2xuX3MKKytp ZiB0ZXN0ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vLCB1c2luZyAkTE5fUyIgPiY1 CisrJGFzX2VjaG8gIm5vLCB1c2luZyAkTE5fUyIgPiY2OyB9CisrZmkKKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChN QUtFKSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0 cyBcJChNQUtFKS4uLiAiID4mNjsgfQorK3NldCB4ICR7TUFLRS1tYWtlfQorK2FjX21ha2U9YCRh c19lY2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpBLVowLTlfXS9fL2cnYAorK2lmIHsg YXNfdmFyPWFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldDsgZXZhbCAidGVzdCBcIlwkeyRh c192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0Lm1ha2UgPDxcX0FDRU9GCisrU0hFTEwgPSAvYmlu L3NoCisrYWxsOgorKwlAZWNobyAnQEBAJSUlPSQoTUFLRSk9QEBAJSUlJworK19BQ0VPRgorKyMg R05VIG1ha2Ugc29tZXRpbWVzIHByaW50cyAibWFrZVsxXTogRW50ZXJpbmcuLi4iLCB3aGljaCB3 b3VsZCBjb25mdXNlIHVzLgorK2Nhc2UgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+ L2Rldi9udWxsYCBpbgorKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQorKyAgICBldmFsIGFjX2N2X3By b2dfbWFrZV8ke2FjX21ha2V9X3NldD15ZXM7OworKyAgKikKKysgICAgZXZhbCBhY19jdl9wcm9n X21ha2VfJHthY19tYWtlfV9zZXQ9bm87OworK2VzYWMKKytybSAtZiBjb25mdGVzdC5tYWtlCisr ZmkKKytpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQgPSB5ZXM7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Cisr JGFzX2VjaG8gInllcyIgPiY2OyB9CisrICBTRVRfTUFLRT0KKytlbHNlCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0K KysgIFNFVF9NQUtFPSJNQUtFPSR7TUFLRS1tYWtlfSIKKytmaQorKworKworKyMgU2V0IGRlZmF1 bHQgbGFuZ3VhZ2UgdG8gQysrCisrYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxB R1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29t cGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrIyBDaGVjayBmb3IgZXhj ZXB0aW9ucyBzd2l0Y2gKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZXhjZXB0aW9ucyB3YXMg Z2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfZXhjZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbgor KyAgZW5hYmxldmFsPSRlbmFibGVfZXhjZXB0aW9uczsKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9B Q0VPRgorKyNkZWZpbmUgU09DSV9FWENFUFRJT05TIDEKKytfQUNFT0YKKysKKytmaQorKworK3Rl c3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9ucz15ZXMK Kyt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgIT0geG5vICYmIGVuYWJsZV9leGNlcHRp b25zPXllcworKworKyMgQ2hlY2sgZm9yIGluZm8gcGFnZXMKKysjIENoZWNrIHdoZXRoZXIgLS1l bmFibGUtaW5mby1kb2Mgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2luZm9fZG9jK3Nl dH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9pbmZvX2RvYzsKKytmaQorKwor K3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm8gJiYgZW5hYmxlX2luZm9fZG9jPXllcwor KworKworKyMgQ2hlY2sgZm9yIGh0bWwtZG9jIHN3aXRjaAorKyMgQ2hlY2sgd2hldGhlciAtLWVu YWJsZS1odG1sLWRvYyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfaHRtbF9kb2Mrc2V0 fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2h0bWxfZG9jOworK2ZpCisrCisr dGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubyAmJiBlbmFibGVfaHRtbF9kb2M9eWVzCisr CisrCisrIyBQcm92aWRlIC0td2l0aC1kb2NkaXIKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRo LWRvY2RpciB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2RvY2RpcitzZXR9IiA9IHNldDsg dGhlbgorKyAgd2l0aHZhbD0kd2l0aF9kb2NkaXI7IERPQ19ESVI9IiR3aXRodmFsIgorK2Vsc2UK KysgIERPQ19ESVI9IiIKKytmaQorKworK2lmIHRlc3QgIngkRE9DX0RJUiIgIT0geDsgdGhlbgor KyAgZG9jZGlyPSIkRE9DX0RJUiIKKytlbHNlCisrICBkb2NkaXI9IiR7ZGF0YWRpcn0vZG9jLyRQ QUNLQUdFLSRWRVJTSU9OIgorK2ZpCisrCisrCisrCisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFk ZXIgZmlsZXMgKGZvciBTT0NJIGl0c2VsZikKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYnVy cmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9idXJyaWVkX2hlYWRl cnMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2J1cnJpZWRfaGVhZGVy czsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysgICAgICBlbmFibGVfYnVycmll ZF9oZWFkZXJzPW5vCisrICAgZWxzZQorKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVz CisrICAgZmkKKytlbHNlCisrICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubworK2ZpCisrCisr IyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KKytlbmFibGVfYnVy cmllZF9oZWFkZXJzPXllcworKyBpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0g eHllczsgdGhlbgorKyAgU09DSV9IRUFERVJTX0JVUklFRF9UUlVFPQorKyAgU09DSV9IRUFERVJT X0JVUklFRF9GQUxTRT0nIycKKytlbHNlCisrICBTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUU9JyMn CisrICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQorK2ZpCisrCisrCisraWYgdGVzdCAieCRl bmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgICBDUFBGTEFHUz0iLURTT0NJ X0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKKytmaQorKworKyMgQ2hlY2sgZm9yIGJ1cnJpZWQg aGVhZGVyIGZpbGVzIChmb3IgTXlTUUwgY2xpZW50KQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJs ZS1teXNxbC1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX215 c3FsX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFi bGVfbXlzcWxfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhl bgorKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCisrICAgZWxzZQorKwllbmFibGVf bXlzcWxfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9teXNx bF9idXJyaWVkX2hlYWRlcnM9bm8KKytmaQorKworKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBw YWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKysg aWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysg IFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJVRT0KKysgIFNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURfRkFMU0U9JyMnCisrZWxzZQorKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVF PScjJworKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0KKytmaQorKworKworK2lm IHRlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICAg Q1BQRkxBR1M9Ii1EU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkKKysK KysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFBvc3RHcmVTUUwgY2xpZW50 KQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycyB3 YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMr c2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX3Bvc3RncmVzcWxfYnVycmll ZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKwllbmFibGVfcG9z dGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBlbHNlCisrCWVuYWJsZV9wb3N0Z3Jlc3Fs X2J1cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaQorK2Vsc2UKKysgICBlbmFibGVfcG9zdGdyZXNx bF9idXJyaWVkX2hlYWRlcnM9bm8KKytmaQorKworKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBw YWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXll cworKyBpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVz OyB0aGVuCisrICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRT0KKysgIFNPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKKytlbHNlCisrICBTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRURfVFJVRT0nIycKKysgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFRF9GQUxTRT0KKytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxf YnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgICBDUFBGTEFHUz0iLURTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgorK2ZpCisrCisrCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQm9vc3Qg KFNUTCBFeHRlbnNpb25zOiBodHRwOi8vd3d3LmJvb3N0Lm9yZykKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrCisrIyBDaGVj ayB3aGV0aGVyIC0td2l0aC1ib29zdCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2Jvb3N0 K3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX2Jvb3N0OworKyAgICAgICAgICAg ICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCisrCQkgICAgICAgICAgICB3YW50 X2Jvb3N0PSJubyIKKysgICAgICAgICAgICAgICAgZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVz IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgd2FudF9ib29zdD0ieWVzIgorKyAgICAgICAg ICAgICAgICAgICAgYWNfYm9vc3RfcGF0aD0iIgorKyAgICAgICAgICAgICAgICBlbHNlCisrCQkJ ICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCisrICAgICAgICAgICAgCQlhY19ib29zdF9wYXRoPSIk d2l0aHZhbCIKKysJCSAgICAgICAgZmkKKysKKytlbHNlCisrICB3YW50X2Jvb3N0PSJ5ZXMiCisr ZmkKKysKKysKKysjICAgIEFDX0NBTk9OSUNBTF9CVUlMRAorK0JPT1NUX01EV19WRVJTSU9OPSIx LTMzLTEiCisrQk9PU1RMSUJfTURXX1ZFUlNJT049IjFfMzNfMSIKKysKKysJaWYgdGVzdCAieCR3 YW50X2Jvb3N0IiA9ICJ4eWVzIjsgdGhlbgorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxPTEuMzMK KysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuPWBleHByICRib29zdF9saWJfdmVyc2lv bl9yZXEgOiAnXChbMC05XSpcLlswLTldKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9t YWpvcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAorKwkJYm9v c3RfbGliX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAn WzAtOV0qXC5cKFswLTldKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9 YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpc KSdgCisrCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3IiID0gIngi IDsgdGhlbgorKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9IjAiCisrICAgIAlm aQorKwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWFq b3IgXCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMCBcKyAk Ym9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAKKysJCXsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgYm9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGJvb3N0bGliID49ICRib29zdF9saWJfdmVy c2lvbl9yZXEuLi4gIiA+JjY7IH0KKysJCXN1Y2NlZWRlZD1ubworKworKwkJCQkJCQkJCQlpZiB0 ZXN0IC1kIC9saWI2NDsgdGhlbgorKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0IgorKwkJZWxz ZQorKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKKysJCWZpCisrCQlpZiB0ZXN0ICIkYWNfYm9v c3RfcGF0aCIgIT0gIiI7IHRoZW4KKysJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIgPT0g ImxpYjY0IjsgdGhlbgorKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElC RElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiOyB0 aGVuCisrCSAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09T VF9MSUJESVJUWVBFIgorKwkJCQllbHNlCisrICAgICAgICAgICAgICAgICAgICBCT09TVF9MSUJT PSItTCRhY19ib29zdF9wYXRoL2xpYiIKKysJCQkJZmkKKysJCQllbHNlCisrCQkJCUJPT1NUX0xJ QlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgorKwkJCWZpCisrCQkJQk9PU1RfQ0ZMQUdTPSItSSRh Y19ib29zdF9wYXRoL2luY2x1ZGUiCisrCQllbHNlCisrCQkJZm9yIGFjX2Jvb3N0X3BhdGhfdG1w IGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29scy9ib29zdCA7IGRvCisrCQkJCWlmIHRl c3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNf Ym9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCI7IHRoZW4KKysJCQkJCUJPT1NUX0xJQlM9Ii1M JGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJQk9PU1RfQ0ZMQUdT PSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgorKwkJCQkJYnJlYWs7CisrCQkJCWZpCisr CQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9N RFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUv Ym9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IjsgdGhlbgorKwkJCQkJQk9PU1RfTElCUz0i LUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCQlCT09TVF9DRkxB R1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9O IgorKworKwkJCQkJCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvbGliIiAmJiB0 ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvbGliIiAmJiB0ZXN0ICEgLWQgIiRhY19ib29zdF9w YXRoX3RtcC9saWI2NCI7IHRoZW4KKysJCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRo X3RtcC9saWIiCisrCQkJCQkJZWNobyAiSGFjazogJEJPT1NUX0xJQlMiCisrCQkJCQlmaQorKwkJ CQkJYnJlYWs7CisrCQkJCWZpCisrCQkJZG9uZQorKwkJZmkKKysKKysJCUNQUEZMQUdTX1NBVkVE PSIkQ1BQRkxBR1MiCisrCQlDUFBGTEFHUz0iJENQUEZMQUdTICRCT09TVF9DRkxBR1MiCisrCQll eHBvcnQgQ1BQRkxBR1MKKysKKysJCUxERkxBR1NfU0FWRUQ9IiRMREZMQUdTIgorKwkJTERGTEFH Uz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCisrCQlleHBvcnQgTERGTEFHUworKworKyAgICAgCWNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VP RgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrI2luY2x1ZGUgPGJv b3N0L3ZlcnNpb24uaHBwPgorKworK2ludAorK21haW4gKCkKKyt7CisrCisrI2lmIEJPT1NUX1ZF UlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgorKy8vIEV2ZXJ5dGhpbmcgaXMgb2theQorKyNl bHNlCisrIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCisrI2VuZGlmCisrCisrCisr ICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVz dC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewor KwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysK KysgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQor KyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKwkJIHN1Y2NlZWRlZD15ZXMKKysJCSBmb3VuZF9zeXN0 ZW09eWVzCisrICAgICAgICAgOgorKworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK KysKKysKKysKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAorKworKwkJCQkJCWlmIHRlc3QgIngkc3VjY2VlZGVkIiAh PSAieHllcyI7IHRoZW4KKysJCQlfdmVyc2lvbj0wCisrCQkJaWYgdGVzdCAiJGFjX2Jvb3N0X3Bh dGgiICE9ICIiOyB0aGVuCisrICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0 X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRo IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KKysJCQkJCWZvciBpIGluIGBscyAt ZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbworKwkJCQkJ CV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAn cy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKKysJCQkJCQlWX0NIRUNLPWBl eHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAorKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNL IiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAorKwkJCQkJCWZp CisrCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9f LydgCisrCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3Qt JFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJCWRvbmUKKysJCQkJZmkKKysJCQllbHNlCisrCQkJ CWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IDsgZG8KKysJCQkJCWlm IHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRo ZW4KKysJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0q IDI+L2Rldi9udWxsYDsgZG8KKysJCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJz IyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdz L18vLi8nYAorKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9u YAorKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCisrCQkJCQkJCQlfdmVy c2lvbj0kX3ZlcnNpb25fdG1wCisrCQkJCQkJCQliZXN0X3BhdGg9JGFjX2Jvb3N0X3BhdGgKKysJ CQkJCQkJZmkKKysJCQkJCQlkb25lCisrCQkJCQlmaQorKwkJCQlkb25lCisrCisrCQkJCVZFUlNJ T05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAorKwkJCQlCT09T VF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUi CisrCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKKysKKysJ ICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4KKysJCQkJCWlmIHRlc3Qg LWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7IHRoZW4KKysJCQkJCQl2 ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipcKSdgCisrCQkJCQkJc3Rh Z2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9vc3RfLy8nIHwgc2VkICdz L18vLi9nJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4cHIgJHN0YWdlX3ZlcnNp b24gOiAnXChbMC05XSpcLlswLTldKlwpJ2AKKysJCQkJCQlWX0NIRUNLPWBleHByICRzdGFnZV92 ZXJzaW9uX3Nob3J0ZW4gXD5cPSAkX3ZlcnNpb25gCisrCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0si ID0gIjEiIDsgdGhlbgorKwkJCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV2Ugd2ls bCB1c2UgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSBmcm9tICRCT09TVF9ST09UIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJP T1NUX1JPT1QiID4mNjt9CisrCQkJCQkJCUJPT1NUX0NGTEFHUz0iLUkkQk9PU1RfUk9PVCIKKysJ CQkJCQkJQk9PU1RfTElCUz0iLUwkQk9PU1RfUk9PVC9zdGFnZS8kQk9PU1RfTElCRElSVFlQRSIK KysJCQkJCQlmaQorKwkJCQkJZmkKKysJICAgIAkJZmkKKysJCQlmaQorKworKwkJCUNQUEZMQUdT PSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKKysJCQlleHBvcnQgQ1BQRkxBR1MKKysJCQlMREZM QUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKKysJCQlleHBvcnQgTERGTEFHUworKworKyAgICAg CQljYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKyNpbmNsdWRl IDxib29zdC92ZXJzaW9uLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworKworKyNpZiBCT09T VF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJT04KKysvLyBFdmVyeXRoaW5nIGlzIG9rYXkK KysjZWxzZQorKyMgIGVycm9yIEJvb3N0IHZlcnNpb24gaXMgdG9vIG9sZAorKyNlbmRpZgorKwor KworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4K KysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Cisr ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVu CisrCisrICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzICgk X3ZlcnNpb24pIiA+JjUKKyskYXNfZWNobyAieWVzICgkX3ZlcnNpb24pIiA+JjY7IH0KKysJCSBz dWNjZWVkZWQ9eWVzCisrICAgICAgICAgOgorKworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKKysKKysKKysgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyAoJF92ZXJzaW9uKSIgPiY1CisrJGFzX2VjaG8gIm5vICgkX3ZlcnNpb24pIiA+JjY7IH0K KysgICAgICAgICA6CisrCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCWZpCisrCisrCQlpZiB0ZXN0ICIkc3Vj Y2VlZGVkIiAhPSAieWVzIiA7IHRoZW4KKysJCQlpZiB0ZXN0ICIkX3ZlcnNpb24iID0gIjAiIDsg dGhlbgorKwkJCQl7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogV2UgY291bGQg bm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJfdmVyc2lv bl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29zdCBsaWJy YXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JPT1QgaW4g eW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1ib29zdCBv cHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0aGVuIGNo ZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5ocHA+LiIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFdlIGNvdWxkIG5vdCBkZXRlY3QgdGhlIGJv b3N0IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW4gb3Ig aGlnaGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSAoc3RpbGwgbm90IGlu c3RhbGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09TVF9ST09UIGluIHlvdXIgZW52aXJvbm1lbnQg YW5kIGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qgb3B0aW9uLiAgSWYgeW91IGFy ZSBzdXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxlZCwgdGhlbiBjaGVjayB5b3VyIHZlcnNpb24g bnVtYmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNpb24uaHBwPi4iID4mMjt9CisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9CisrCQkJZWxzZQorKwkJCQl7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogJ1lvdXIgYm9vc3QgbGlicmFyaWVzIHNlZW1zIHRvIG9sZCAodmVyc2lv biAkX3ZlcnNpb24pLiAgV2UgbmVlZCBhdCBsZWFzdCAkYm9vc3RfbGliX3ZlcnNpb25fc2hvcnRl biciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAnWW91ciBib29zdCBsaWJyYXJpZXMg c2VlbXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBXZSBuZWVkIGF0IGxlYXN0ICRib29z dF9saWJfdmVyc2lvbl9zaG9ydGVuJyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KKysJCQlmaQorKwkJZWxzZQorKworKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9G CisrI2RlZmluZSBIQVZFX0JPT1NUIC8qKi8KKytfQUNFT0YKKysKKysKKysJCQl7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0g bGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg dGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHtheF9jdl9ib29zdF9maWxlc3lzdGVtK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Cisr CisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1 ZGUgPGJvb3N0L2ZpbGVzeXN0ZW0vcGF0aC5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKyt1c2lu ZyBuYW1lc3BhY2UgYm9vc3Q6OmZpbGVzeXN0ZW07CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYXRoIG15X3BhdGgoICJmb28vYmFyL2RhdGEudHh0IiApOworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrICA7CisrICByZXR1cm4gMDsK Kyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0i JGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytl c2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIp IDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25m dGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X2ZpbGVz eXN0ZW09eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9i b29zdF9maWxlc3lzdGVtPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCSAJCSAgICAgICAgCQkJYWNfZXh0 PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9maWxl c3lzdGVtIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICIkYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPSAi eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZF X0JPT1NUX0ZJTEVTWVNURU0gLyoqLworK19BQ0VPRgorKworKwkJCQlCTj1ib29zdF9maWxlc3lz dGVtCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10 LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGli JEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10 LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10 LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hv ICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsg YXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7 IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hl Y2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisr Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgp CisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikg Mj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxp bmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9 OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29u ZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNv bmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19y ZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCIn YAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIg PiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7 JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRh c192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9GSUxFU1lTVEVNX0xJQj0iLWwkYXhfbGli IiAgbGlua19maWxlc3lzdGVtPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua19maWxlc3lzdGVt PSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX2ZpbGVzeXN0 ZW0iID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291 bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysK KysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlz IGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfcHJvZ3JhbV9v cHRpb25zK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19leHQ9Y3BwCisrYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJ CQkgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKyNpbmNsdWRlIDxib29zdC9wcm9ncmFtX29wdGlvbnMuaHBwPgorK2ludAorK21haW4gKCkK Kyt7CisrYm9vc3Q6OnByb2dyYW1fb3B0aW9uczo6b3B0aW9uc19kZXNjcmlwdGlvbiBnZW5lcmlj KCJHZW5lcmljIG9wdGlvbnMiKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3Rh dHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAg cm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9eWVzCisrZWxzZQorKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9 bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAorKwkJCSAgICAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3By b2dyYW1fb3B0aW9ucyIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9wcm9ncmFtX29wdGlv bnMiID4mNjsgfQorKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMiID0g eWVzOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVf Qk9PU1RfUFJPR1JBTV9PUFRJT05TIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3RfcHJv Z3JhbV9vcHRpb25zCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT047IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4 X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19M aWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElC Uz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBt YWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Cisr CSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFs ICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisr CWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9j b25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK KytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3Zh bD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8g IiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQor KwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVz OyB0aGVuCisrICBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCPSItbCRheF9saWIiICBsaW5rX3By b2dyYW1fb3B0aW9ucz0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfcHJvZ3JhbV9vcHRpb25z PSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3Byb2dyYW1f b3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQor KwkJCWZpCisrCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo ZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFi bGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3RocmVhZCtzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFj X2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFgg LWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSck Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2Nv bXBpbGVyX2dudQorKworKwkJCSBDWFhGTEFHU19TQVZFPSRDWFhGTEFHUworKworKwkJCSBpZiB0 ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCisrICAJCQkJIENYWEZMQUdTPSIt cHRocmVhZHMgJENYWEZMQUdTIgorKwkJCSBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5n MzIiIDsgdGhlbgorKwkJCQkgQ1hYRkxBR1M9Ii1tdGhyZWFkcyAkQ1hYRkxBR1MiCisrCQkJIGVs c2UKKysJCQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRDWFhGTEFHUyIKKysJCQkgZmkKKysJCQkgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9G CisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3Qv dGhyZWFkL3RocmVhZC5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKytib29zdDo6dGhyZWFkX2dy b3VwIHRocmRzOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7 CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgor KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysg IChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysg IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25m dGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg eworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4K KysgIGF4X2N2X2Jvb3N0X3RocmVhZD15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1CisrCisrCWF4X2N2X2Jvb3N0X3RocmVhZD1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIENYWEZM QUdTPSRDWFhGTEFHU19TQVZFCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3RocmVhZCIgPiY1Cisr JGFzX2VjaG8gIiRheF9jdl9ib29zdF90aHJlYWQiID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhf Y3ZfYm9vc3RfdGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgorKyAgICAgICAgICAgICAgIGlmIHRlc3Qg IngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRoZW4KKysgCQkJCSAgQk9PU1RfQ0ZMQUdTPSIt cHRocmVhZHMgJEJPT1NUX0NGTEFHUyIKKysJCQkgICBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0g InhtaW5nMzIiIDsgdGhlbgorKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1tdGhyZWFkcyAkQk9PU1Rf Q0ZMQUdTIgorKwkJCSAgIGVsc2UKKysJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkICRCT09T VF9DRkxBR1MiCisrCQkJICAgZmkKKysKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VP RgorKyNkZWZpbmUgSEFWRV9CT09TVF9USFJFQUQgLyoqLworK19BQ0VPRgorKworKwkJCQlCTj1i b29zdF90aHJlYWQKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRC Ti0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRh eF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNf TGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4g bWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsi CisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIx CisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIg fHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAor KwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZh bCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKwor KwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThf Y29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0 CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192 YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hv ICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30K KysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInll czsgdGhlbgorKyAgQk9PU1RfVEhSRUFEX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9Inll cyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25l CisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWls YWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OklPU3Ry ZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3Zf Ym9vc3RfaW9zdHJlYW1zK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L2lvc3RyZWFt cy9maWx0ZXJpbmdfc3RyZWFtLmhwcD4KKysJCQkJCQkJCQkJCQkgI2luY2x1ZGUgPGJvb3N0L3Jh bmdlL2l0ZXJhdG9yX3JhbmdlLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK3N0ZDo6c3Ry aW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOworKwkJCQkJCQkJCSBuYW1lc3BhY2UgaW8gPSBi b29zdDo6aW9zdHJlYW1zOworKwkJCQkJCQkJCSBpbzo6ZmlsdGVyaW5nX2lzdHJlYW0gIGluKGJv b3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7CisrCQkJCQkJCQkJIHJldHVybiAwOwor KworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4K KysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Cisr ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVu CisrICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9pb3N0cmVhbXM9bm8KKytmaQorKworK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJ CSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSck Q1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGlu az0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4 eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRheF9jdl9ib29zdF9pb3N0cmVhbXMiID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9v c3RfaW9zdHJlYW1zIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2lvc3RyZWFt cyIgPSAieHllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZp bmUgSEFWRV9CT09TVF9JT1NUUkVBTVMgLyoqLworK19BQ0VPRgorKworKwkJCQlCTj1ib29zdF9p b3N0cmVhbXMKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0k Q0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRC TiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZF UlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9s aWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfTGli OyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9 JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBl bmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFp biAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisr Y2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisr ICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwK KysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkg JGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAi JGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwll dmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29u ZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Cisr TElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9 JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIk YWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJ CSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsg dGhlbgorKyAgQk9PU1RfSU9TVFJFQU1TX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9Inll cyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25l CisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBh dmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpT ZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHtheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJ IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGZz dHJlYW0+CisrCQkJCQkJCQkJCQkJICNpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hp dmUuaHBwPgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZlLmhwcD4KKysKKytpbnQKKytt YWluICgpCisreworK3N0ZDo6b2ZzdHJlYW0gb2ZzKCJmaWxlbmFtZSIpOworKwkJCQkJCQkJCWJv b3N0OjphcmNoaXZlOjp0ZXh0X29hcmNoaXZlIG9hKG9mcyk7CisrCQkJCQkJCQkJIHJldHVybiAw OworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0 aGVuCisrICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPXllcworK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbj1ubworK2ZpCisr Cisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID4mNQorKyRhc19l Y2hvICIkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPiY2OyB9CisrCQkJaWYgdGVzdCAieCRh eF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA9ICJ4eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZk ZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX1NFUklBTElaQVRJT04gLyoqLwor K19BQ0VPRgorKworKwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9uCisrCQkJCWZvciBheF9saWIg aW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10 IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJO LSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2Fj X0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xp YiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIg PiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIr c2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAk TElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAg Ki8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKwor K2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsK Kyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVl eHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZh bCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhl ZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQor KworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVz dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19l Y2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBl dmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysg ICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX1NFUklBTElaQVRJ T05fTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxp bmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJQk49Ym9vc3Rfd3Nlcmlh bGl6YXRpb24KKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0k Q0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRC TiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZF UlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9s aWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfTGli OyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9 JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBl bmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFp biAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisr Y2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisr ICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwK KysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkg JGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAi JGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwll dmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29u ZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Cisr TElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9 JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIk YWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJ CSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsg dGhlbgorKyAgQk9PU1RfV1NFUklBTElaQVRJT05fTElCPSItbCRheF9saWIiICBsaW5rX3RocmVh ZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJ CWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJ eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xp YiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9s aWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2 YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlNp Z25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2 X2Jvb3N0X3NpZ25hbHMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3Qvc2lnbmFsLmhw cD4KKysKKytpbnQKKyttYWluICgpCisreworK2Jvb3N0OjpzaWduYWw8dm9pZCAoKT4gc2lnOwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Cisr aWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVy MQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0 ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhf Y3ZfYm9vc3Rfc2lnbmFscz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCWF4X2N2X2Jvb3N0X3NpZ25hbHM9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3Bw CisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9j dl9ib29zdF9zaWduYWxzIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3NpZ25hbHMiID4m NjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPSAieHllcyI7IHRoZW4K KysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9TSUdO QUxTIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3Rfc2lnbmFscworKwkJCQlmb3IgYXhf bGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRD Qy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBh c19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3No YAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRh eF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4u LiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNf dmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xp YiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysK KysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNf ZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisr ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAg KGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Cisr CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRl c3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFj X2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisr ZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2 ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAk YXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3Zh bD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidg CisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9TSUdOQUxT X0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5r X3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190 aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog Q291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkK KysKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUg Qm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfZGF0ZV90aW1lK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkg YWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrI2luY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3JlZ29yaWFuX3R5 cGVzLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK3VzaW5nIG5hbWVzcGFjZSBib29zdDo6 Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTApOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNF T0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls ZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lPXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3RfZGF0ZV90 aW1lPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAk Q1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD WFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisr YWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiA+ JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPiY2OyB9CisrCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCisrCisrY2F0ID4+Y29u ZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfREFURV9USU1FIC8qKi8KKytf QUNFT0YKKysKKysJCQkJQk49Ym9vc3RfZGF0ZV90aW1lCisrCQkJCWZvciBheF9saWIgaW4gJEJO ICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRC Ti0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1z ICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJO LW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRC Ti0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1g JGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9 CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwi ID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIK KytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAor K21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9Cisr X0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytp ZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3Nz X2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Cisr ICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3Jt IC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19l eGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytm aQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIk YXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdh c192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0 ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX0RBVEVfVElNRV9MSUI9Ii1s JGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua190aHJlYWQ9 Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIj0i bm8iID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291 bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysK KysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3JlZ2V4K3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Cisr CisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1 ZGUgPGJvb3N0L3JlZ2V4LmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK2Jvb3N0OjpyZWdl eCByKCk7IHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2Ug IigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAg YWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Cisr CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4k YWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9yZWdleD15ZXMKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3JlZ2V4PW5vCisrZmkKKysKKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29t cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwor K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfcmVnZXgiID4mNQorKyRhc19lY2hvICIkYXhfY3Zf Ym9vc3RfcmVnZXgiID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfcmVnZXgiID0g Inh5ZXMiOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhB VkVfQk9PU1RfUkVHRVggLyoqLworK19BQ0VPRgorKworKwkJCQlCTj1ib29zdF9yZWdleAorKwkJ CQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0k Q0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0Mg bGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisr CQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwg JGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFp biBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1s JGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3Qg XCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9 Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0k PworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1m IGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYm IHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNv bmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXll cyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19M aWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisr ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVj a19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGli J30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsg fQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIk YXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09T VF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCisrZWxzZQor KyAgbGlua190aHJlYWQ9Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4 JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQor KwkJCWZpCisrCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo ZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3 b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9i b29zdF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENY WENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VP RgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0 L3Rlc3QvdW5pdF90ZXN0LmhwcD4KKytpbnQKKyttYWluICgpCisreworK3VzaW5nIGJvb3N0Ojp1 bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7CisrCQkJCQkgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUq IHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4g MDsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhl bgorKyAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz15ZXMKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcms9 bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3 b3JrIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4m NjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPSAi eHllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFW RV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLIC8qKi8KKytfQUNFT0YKKysKKysJCQlCTj1ib29z dF91bml0X3Rlc3RfZnJhbWV3b3JrCisrICAgIAkJc2F2ZWRfbGRmbGFncz0iJHtMREZMQUdTfSIK KysJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRC Ti0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBs aWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZF UlNJT04gOyBkbworKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke0xERkxBR1N9IC1sJGF4X2xp YiIKKysgICAgCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHRoZSBuYW1l IG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJy YXJ5Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3 b3JrK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICAgICAgICAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0 X3Rlc3QuaHBwPgorK2ludAorK21haW4gKCkKKyt7CisrdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6 dGVzdF9zdWl0ZTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSog dGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAw OworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFj X3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK KysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNf ZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNf dGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBsaW5rX3RocmVh ZD0ieWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJbGlua190aHJl YWQ9Im5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAor KyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrCisrCQkJIGFjX2V4 dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMg JENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hY IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBp bGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQorKyRhc19lY2hvICIkYXhfY3Zf Ym9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9CisrICAgICAgICAgICAgICAgIExERkxB R1M9IiR7c2F2ZWRfbGRmbGFnc30iCisrCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQiID0g Inh5ZXMiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQj0iLWwkYXhfbGliIgorKworKwkJCQkJYnJlYWsKKysJCQkJZmkKKysgICAgICAgICAg ICAgIGRvbmUKKysJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgor KwkJCQkgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5z dCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWlu c3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCQlmaQorKyAgICAgICAgQ1BQ RkxBR1M9IiRDUFBGTEFHU19TQVZFRCIKKysgICAgICAgIExERkxBR1M9IiRMREZMQUdTX1NBVkVE IgorKwlmaQorKworKworKworKworKworKworKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBv cnQgZm9yIE15U1FMIGJhY2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0dHA6Ly93d3cubXlzcWwub3Jn CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNrZW5kLW15c3Fs IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5kX215c3FsK3NldH0iID0gc2V0 OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX215c3FsOyAgaWYgdGVzdCAiJGVu YWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8KKysg ICAgICBlbHNlCisrCSBlbmFibGVfYmFja2VuZF9teXNxbD15ZXMKKysgICAgICBmaQorK2Vsc2UK KysgICBlbmFibGVfYmFja2VuZF9teXNxbD1ubworKworK2ZpCisrCisrCisraWYgdGVzdCAieCRl bmFibGVfYmFja2VuZF9teXNxbCIgPSAieHllcyI7IHRoZW4KKysgICBNWVNRTF9ESVJTPSJteXNx bCIKKysgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCisrCisrCisrIyBDaGVjayB3aGV0aGVy IC0td2l0aC1teXNxbCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX215c3FsK3NldH0iID0g c2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX215c3FsOworKwlNWVNRTF9pbmNfY2hlY2s9IiR3 aXRoX215c3FsL2luY2x1ZGUiCisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0 aGVuCisrICAgICAgICAgICAgd2FudF9teXNxbD0ibm8iCisrICAgICAgICBlbGlmIHRlc3QgIiR3 aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9teXNxbD0ieWVzIgorKyAg ICAgICAgZWxzZQorKyAgICAgICAgICAgIHdhbnRfbXlzcWw9InllcyIKKysgICAgICAgICAgICBN WVNRTF9DT05GSUc9IiR3aXRodmFsIgorKyAgICAgICAgZmkKKysKKytlbHNlCisrICB3YW50X215 c3FsPSJ5ZXMiCisrCU1ZU1FMX2luY19jaGVjaz0iL3Vzci9pbmNsdWRlIC91c3IvbG9jYWwgL29w dCIKKysKKytmaQorKworKworKyAgICBNWVNRTF9DRkxBR1M9IiIKKysgICAgTVlTUUxfTERGTEFH Uz0iIgorKyAgICBNWVNRTF9WRVJTSU9OPSIiCisrCisrCisrICAgIGlmIHRlc3QgIiR3YW50X215 c3FsIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0IC16ICIkTVlTUUxfQ09ORklH IiAtbyB0ZXN0OyB0aGVuCisrICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICJteXNxbF9jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgor K3NldCBkdW1teSBteXNxbF9jb25maWc7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfTVlTUUxf Q09ORklHK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGNhc2UgJE1ZU1FMX0NPTkZJRyBpbgorKyAgW1xcL10qIHwgPzpbXFwvXSopCisr ICBhY19jdl9wYXRoX01ZU1FMX0NPTkZJRz0iJE1ZU1FMX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyAgKikKKysgIGFzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8K KysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisr ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcGF0 aF9NWVNRTF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg PiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZT CisrCisrICA7OworK2VzYWMKKytmaQorK01ZU1FMX0NPTkZJRz0kYWNfY3ZfcGF0aF9NWVNRTF9D T05GSUcKKytpZiB0ZXN0IC1uICIkTVlTUUxfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1ZU1FMX0NPTkZJRyIgPiY1CisrJGFzX2VjaG8gIiRN WVNRTF9DT05GSUciID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAg ICAgICBmaQorKworKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICEgLXggIiRNWVNRTF9DT05GSUci OyB0aGVuCisrICAgICAgICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 ICRNWVNRTF9DT05GSUcgZG9lcyBub3QgZXhpc3Qgb3IgaXQgaXMgbm90IGFuIGV4ZWN0dWFibGUg ZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6ICRNWVNRTF9DT05GSUcgZG9lcyBu b3QgZXhpc3Qgb3IgaXQgaXMgbm90IGFuIGV4ZWN0dWFibGUgZmlsZSIgPiYyO30KKysgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgICAgICAgICBNWVNRTF9DT05GSUc9Im5vIgorKyAg ICAgICAgICAgIGZvdW5kX215c3FsPSJubyIKKysgICAgICAgIGZpCisrCisrICAgICAgICBpZiB0 ZXN0ICIkTVlTUUxfQ09ORklHIiAhPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgIworKyAgICAg ICAgICAgICMgTG9vayBmb3IgTXlTUUwgQyBBUEkgaGVhZGVycworKyAgICAgICAgICAgICMKKysg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE15U1FM IGluY2x1ZGUgZGlyZWN0b3J5IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgTXlTUUwg aW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KKysgICAgICAgICAgICBNWVNRTF9pbmNkaXI9 CisrICAgICAgICAgICAgZm9yIG15c3FsX2luY19kaXIgaW4gJE1ZU1FMX2luY19jaGVjaworKyAg ICAgICAgICAgIGRvCisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRteXNxbF9pbmNfZGly IiBcCisrICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRteXNxbF9pbmNfZGlyL215c3FsL215 c3FsLmgiCisrICAgICAgICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAgICAgIE1ZU1FM X2luY2Rpcj0kbXlzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAg ICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAgICAgICAgaWYgdGVz dCAteiAiJE1ZU1FMX2luY2RpciIKKysgICAgICAgICAgICB0aGVuCisrICAgICAgICAgICAgICAg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUgTXlT UUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxf aW5jX2NoZWNrJyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgICAg ICAgICBmaQorKworKyAgICAgICAgICAgIGNhc2UgIiRNWVNRTF9pbmNkaXIiIGluCisrICAgICAg ICAgICAgICAgIC8qICkgOzsKKysgICAgICAgICAgICAgICAgKiApICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxf aW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0 IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fSA7OworKyAgICAgICAgICAgIGVzYWMKKysKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkTVlTUUxfaW5jZGlyIiA+JjUKKyskYXNfZWNobyAiJE1ZU1FM X2luY2RpciIgPiY2OyB9CisrCisrICAgICAgICAgICAgaWYgdGVzdCAiJE1ZU1FMX2luY2RpciIg PSAiL3Vzci9pbmNsdWRlIjsgdGhlbgorKyAgICAgICAgICAgICAgTVlTUUxfQ0ZMQUdTPSIiCisr ICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgTVlTUUxfQ0ZMQUdTPSItSSR7TVlTUUxf aW5jZGlyfSIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIE1ZU1FMX0xERkxBR1M9 ImAkTVlTUUxfQ09ORklHIC0tbGlic2AiCisrCisrICAgICAgICAgICAgTVlTUUxfVkVSU0lPTj1g JE1ZU1FMX0NPTkZJRyAtLXZlcnNpb25gCisrCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNF T0YKKysjZGVmaW5lIEhBVkVfTVlTUUwgMQorK19BQ0VPRgorKworKworKyAgICAgICAgICAgIGZv dW5kX215c3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgZm91bmRfbXlzcWw9 Im5vIgorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysKKysKKysgICAgbXlzcWxfdmVyc2lvbl9y ZXE9JE1ZU1FMX1JFUV9WRVJTSU9OCisrCisrICAgIGlmIHRlc3QgIiRmb3VuZF9teXNxbCIgPSAi eWVzIiAtYSAtbiAiJG15c3FsX3ZlcnNpb25fcmVxIjsgdGhlbgorKworKyAgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIE15U1FMIHZlcnNpb24gaXMgPj0gJG15 c3FsX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBNeVNRTCB2ZXJz aW9uIGlzID49ICRteXNxbF92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQorKworKyAgICAgICAgICAg ICAgICAgICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRteXNxbF92ZXJzaW9u X3JlcSA6ICdcKFswLTldKlwpJ2AKKysgICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21pbm9yPWBl eHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAg bXlzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1swLTld KlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKKysgICAgICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lv bl9yZXFfbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFf bWljcm89IjAiCisrICAgICAgICBmaQorKworKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbnVt YmVyPWBleHByICRteXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9taW5vciBc KiAxMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92 ZXJzaW9uX3JlcV9taWNyb2AKKysKKysgICAgICAgICAgICAgICAgICAgICAgICBteXNxbF92ZXJz aW9uX21ham9yPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1woWzAtOV0qXCknYAorKyAgICAgICAg bXlzcWxfdmVyc2lvbl9taW5vcj1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbMC05XSpcLlwoWzAt OV0qXCknYAorKyAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkTVlTUUxfVkVSU0lP TiA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JG15 c3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAgbXlzcWxfdmVyc2lv bl9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAgICAgICBteXNxbF92ZXJzaW9uX251bWJl cj1gZXhwciAkbXlzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25fbWlj cm9gCisrCisrICAgICAgICBteXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRteXNxbF92ZXJzaW9u X251bWJlciBcPlw9ICRteXNxbF92ZXJzaW9uX3JlcV9udW1iZXJgCisrICAgICAgICBpZiB0ZXN0 ICIkbXlzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4m NjsgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgICAgICAgZmkK KysgICAgZmkKKysKKysKKysKKysKKysKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5k X215c3FsIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVfTVlTUUxfVFJVRT0KKysgIEhBVkVfTVlTUUxf RkFMU0U9JyMnCisrZWxzZQorKyAgSEFWRV9NWVNRTF9UUlVFPScjJworKyAgSEFWRV9NWVNRTF9G QUxTRT0KKytmaQorKworKyNNWVNRTF9ESVJTPSJteXNxbCIKKysKKysKKysKKysKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIFN1cHBvcnQgZm9yIE9yYWNsZSBiYWNrZW5kCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBD aGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlIHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke2VuYWJsZV9iYWNrZW5kX29yYWNsZStzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFs PSRlbmFibGVfYmFja2VuZF9vcmFjbGU7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVu CisrICAgICAgCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KKysgICAgICBlbHNlCisrCSBlbmFi bGVfYmFja2VuZF9vcmFjbGU9eWVzCisrICAgICAgZmkKKytlbHNlCisrICAgZW5hYmxlX2JhY2tl bmRfb3JhY2xlPW5vCisrCisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29y YWNsZSIgPSAieHllcyI7IHRoZW4KKysgICBPUkFDTEVfRElSUz0ib3JhY2xlIgorKyAgIE9SQUNM RV9PQ0lfUkVRX1ZFUlNJT049IjkuMCIKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRo LW9yYWNsZSB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX29yYWNsZStzZXR9IiA9IHNldDsg dGhlbgorKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGU7CisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZh bCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7 IHRoZW4KKysgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCisr ICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysg ICAgICAgICAgICBmaQorKyAgICAgICAgZmkKKysKKytlbHNlCisrCisrICAgICAgICBpZiB0ZXN0 IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIk T1JBQ0xFX0hPTUUiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGly PSIiCisrICAgICAgICBmaQorKworKworK2ZpCisrCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0t d2l0aC1vcmFjbGUtaW5jbHVkZSB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX29yYWNsZV9p bmNsdWRlK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX29yYWNsZV9pbmNsdWRl OyBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iJHdpdGh2YWwiCisrZWxzZQorKyAgb3JhY2xlX2hv bWVfaW5jbHVkZV9kaXI9IiIKKysKKytmaQorKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgt b3JhY2xlLWxpYiB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX29yYWNsZV9saWIrc2V0fSIg PSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfb3JhY2xlX2xpYjsgb3JhY2xlX2hvbWVfbGli X2Rpcj0iJHdpdGh2YWwiCisrZWxzZQorKyAgb3JhY2xlX2hvbWVfbGliX2Rpcj0iIgorKworK2Zp CisrCisrCisrICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lfTERGTEFH Uz0iIgorKyAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiIKKysKKysgICAgICAgICAgICAgICAgd2Fu dF9vcmFjbGVfYnV0X25vX3BhdGg9Im5vIgorKworKyAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2hv bWVfZGlyIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgIT0g Im5vIiAtYSAiJG9yYWNsZV9ob21lX2RpciIgIT0gInllcyI7IHRoZW4KKysKKysgICAgICAgICAg ICAgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMv cHVibGljIgorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2RpcjI9 IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvZGVtbyIKKysKKysgICAgICAgICAgICAgICAgICAgICAg ICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9saWIiCisrICAgICAgICBlbGlmIHRl c3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X29y YWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysKKysgICAgZWxpZiB0ZXN0IC1u ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiIC1vIC1uICIkb3JhY2xlX2hvbWVfbGliX2RpciI7 IHRoZW4KKysKKysgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0g Im5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAieWVzIjsgdGhlbgorKyAgICAg ICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIgorKyAg ICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiID0gInllcyI7IHRoZW4K KysgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkK KysKKysgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAibm8iIC1hICIk b3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInllcyI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVf bGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9kaXIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFj bGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVf YnV0X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrICAgIGZpCisrCisrICAgIGlmIHRlc3Qg IiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3Rl ZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAorK1BsZWFzZSwgbG9j YXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKKystLXdpdGgt b3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiBPcmFjbGUgc3VwcG9ydCBpcyByZXF1ZXN0ZWQgYnV0IG5v IE9yYWNsZSBwYXRocyBoYXZlIGJlZW4gcHJvdmlkZWQuIFwKKytQbGVhc2UsIGxvY2F0ZSBPcmFj bGUgZGlyZWN0b3JpZXMgdXNpbmcgLS13aXRoLW9yYWNsZSBvciBcCisrLS13aXRoLW9yYWNsZS1p bmNsdWRlIGFuZCAtLXdpdGgtb3JhY2xlLWxpYiBvcHRpb25zLiIgPiYyO30KKysgICAgZmkKKysK KysgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpciIgLWEgLW4g IiRvcmFjbGVfbGliX2RpciI7IHRoZW4KKysKKysgICAgICAgIHNhdmVkX0NQUEZMQUdTPSIkQ1BQ RkxBR1MiCisrICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2Rp ciIKKysKKysgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpcjIi OyB0aGVuCisrICAgICAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVk ZV9kaXIyIgorKyAgICAgICAgZmkKKysKKysgICAgICAgICMgRmlndXJlIG91dCBpZiB3ZSBhcmUg YnVpbGRpbmcgb24gd2luMzIuCisrICAgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgICAg ICAgKm1pbmd3MzIqICkgV0lOMzI9eWVzIDs7CisrICAgICAgICAgICAgKmN5Z3dpbiogKSAgV0lO MzI9eWVzIDs7CisrICAgICAgICAgICAgKikgV0lOMzI9bm8gOzsKKysgICAgICAgIGVzYWMKKysK KysgICAgICAgIGlmIHRlc3QgIiRXSU4zMiIgPSAibm8iCisrICAgICAgICB0aGVuCisrICAgICAg ICAgICAgb2NpX2xpYnM9Ii1sY2xudHNoIC1sbm56MTEiCisrICAgICAgICBlbHNlCisrICAgICAg ICAgICAgb2NpX2xpYnM9Ii1sb2NpIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIHNhdmVkX0xE RkxBR1M9IiRMREZMQUdTIgorKyAgICAgICAgc2F2ZWRfTElCUz0iJExJQlMiCisrICAgICAgICBv Y2lfbGRmbGFncz0iLUwkb3JhY2xlX2xpYl9kaXIiCisrICAgICAgICBMREZMQUdTPSIkTERGTEFH UyAkb2NpX2xkZmxhZ3MiCisrICAgICAgICBMSUJTPSIkTElCUyAkb2NpX2xpYnMiCisrCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBpbiAkb3JhY2xlX2luY2x1ZGVfZGlyIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFj bGVfaW5jbHVkZV9kaXIuLi4gIiA+JjY7IH0KKysKKysgICAgICAgIGFjX2V4dD1jcHAKKythY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKwor KyAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrCisrICAgICAgICAgICAg LyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysjaW5jbHVkZSA8b2NpLmg+CisraW50CisrbWFpbiAoKQorK3sKKysKKysjaWYg ZGVmaW5lZChPQ0lfTUFKT1JfVkVSU0lPTikKKysjaWYgT0NJX01BSk9SX1ZFUlNJT04gPT0gMTAg JiYgT0NJX01JTk9SX1ZFUlNJT04gPT0gMgorKy8vIE9yYWNsZSAxMC4yIGRldGVjdGVkCisrI2Vu ZGlmCisrI2VsaWYgZGVmaW5lZChPQ0lfVjdfU1lOVEFYKQorKy8vIE9LLCBvbGRlciBPcmFjbGUg ZGV0ZWN0ZWQKKysvLyBUT0RPIC0gbWxvc2tvdDogZmluZCBiZXR0ZXIgbWFjcm8gdG8gY2hlY2sg Zm9yIG9sZGVyIHZlcnNpb25zOworKyNlbHNlCisrIyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhlYWRl ciBub3QgZm91bmQKKysjZW5kaWYKKysKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNF T0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls ZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKworKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfQ0ZM QUdTPSItSSRvcmFjbGVfaW5jbHVkZV9kaXIiCisrCisrICAgICAgICAgICAgaWYgdGVzdCAtbiAi JG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCisrICAgICAgICAgICAgICAgIE9SQUNMRV9PQ0lf Q0ZMQUdTPSIkT1JBQ0xFX09DSV9DRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKKysgICAg ICAgICAgICBmaQorKworKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9InllcyIKKysgICAg ICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRh c19lY2hvICJ5ZXMiID4mNjsgfQorKworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK KysKKysKKysgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJubyIKKysgICAgICAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub3QgZm91bmQiID4mNQorKyRhc19l Y2hvICJub3QgZm91bmQiID4mNjsgfQorKworKworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICAgICBhY19l eHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKKysKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Qg IiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBPcmFjbGUgT0NJIGxpYnJhcmllcyBp biAkb3JhY2xlX2xpYl9kaXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBPcmFjbGUg T0NJIGxpYnJhcmllcyBpbiAkb3JhY2xlX2xpYl9kaXIuLi4gIiA+JjY7IH0KKysKKysgICAgICAg ICAgICBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKKysKKysgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysKKysgICAgICAgICAgICAgICAgLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9G CisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8b2NpLmg+ CisraW50CisrbWFpbiAoKQorK3sKKysKKytPQ0lFbnYqIGVudmggPSAwOworK09DSUVudkNyZWF0 ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAsIDApOworK2lmIChlbnZoKSBPQ0lI YW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9FTlYpOworKworKworKyAgOworKyAgcmV0dXJuIDA7 CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhl ZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2 YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVy MQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0 ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3Qg IiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAorKyAgICAgICB9OyB0aGVuCisrCisrICAgICAgICAgICAgICAgIE9SQUNMRV9PQ0lfTERG TEFHUz0iJG9jaV9sZGZsYWdzICRvY2lfbGlicyIKKysgICAgICAgICAgICAgICAgb2NpX2xpYl9m b3VuZD0ieWVzIgorKyAgICAgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKworK2Vsc2UKKysgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKysgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3Vu ZD0ibm8iCisrICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vdCBmb3VuZCIgPiY1CisrJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9CisrCisrCisr ZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICAgICAgICAgICBhY19leHQ9Y3Bw CisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKKysKKysgICAgICAgIGZpCisrCisrICAgICAgICBDUFBGTEFHUz0iJHNhdmVkX0NQUEZMQUdT IgorKyAgICAgICAgTERGTEFHUz0iJHNhdmVkX0xERkxBR1MiCisrICAgICAgICBMSUJTPSIkc2F2 ZWRfTElCUyIKKysgICAgZmkKKysKKysgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVx PSRPUkFDTEVfT0NJX1JFUV9WRVJTSU9OCisrCisrICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2Zv dW5kIiA9ICJ5ZXMiIC1hICIkb2NpX2xpYl9mb3VuZCIgPSAieWVzIiAtYSBcCisrICAgICAgICAt biAiJG9yYWNsZV92ZXJzaW9uX3JlcSI7IHRoZW4KKysKKysgICAgICAgIG9yYWNsZV92ZXJzaW9u X21ham9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NQUpPUl9WRVJTSU9OLionIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01BSk9S X1ZFUlNJT04gICovLycgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUg J3MvICAqXC9cKi4qXCpcLy8vJ2AKKysKKysgICAgICAgIG9yYWNsZV92ZXJzaW9uX21pbm9yPWBj YXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NSU5PUl9WRVJTSU9OLionIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01JTk9SX1ZFUlNJT04g ICovLycgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9c Ki4qXCpcLy8vJ2AKKysKKysgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlzID49ICRvcmFj bGVfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KKysKKysgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFj bGVfdmVyc2lvbl9tYWpvciIgLWEgLW4gJCJvcmFjbGVfdmVyc2lvbl9taW5vciI7IHRoZW4KKysK KysgICAgICAgICAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiRvcmFjbGVfdmVyc2lvbl9tYWpvci4k b3JhY2xlX3ZlcnNpb25fbWlub3IiCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEg OiAnXChbMC05XSpcKSdgCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yPWBl eHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKKysKKysgICAg ICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9y ZXFfbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwYAorKworKyAgICAgICAg ICAgICAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNp b25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwrICRvcmFjbGVfdmVyc2lvbl9taW5vciBcKiAxMDAwYAorKworKyAgICAgICAgICAgIG9yYWNs ZV92ZXJzaW9uX2NoZWNrPWBleHByICRvcmFjbGVfdmVyc2lvbl9udW1iZXIgXD5cPSAkb3JhY2xl X3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAgICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX3ZlcnNp b25fY2hlY2siID0gIjEiOyB0aGVuCisrICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisr Y2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfT1JBQ0xFIDEKKytfQUNF T0YKKysKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAg ICAgICAgICAgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogT3JhY2xl ICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1aXJlZCB2ZXJzaW9uIGlzICRvcmFj bGVfdmVyc2lvbl9yZXEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBPcmFjbGUgJE9S QUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJlcXVpcmVkIHZlcnNpb24gaXMgJG9yYWNsZV92 ZXJzaW9uX3JlcSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgICAg ICAgICBmaQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0i VU5LTk9XTiIKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgICAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFi bHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IE9yYWNsZSB2ZXJzaW9uIHVua25vd24sIHByb2JhYmx5IE9DSSBvbGRlciB0 aGFuIDEwLjIgaXMgYXZhaWxhYmxlIiA+JjI7fQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysK KysKKysKKysKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSB4eWVz OyB0aGVuCisrICBIQVZFX09SQUNMRV9UUlVFPQorKyAgSEFWRV9PUkFDTEVfRkFMU0U9JyMnCisr ZWxzZQorKyAgSEFWRV9PUkFDTEVfVFJVRT0nIycKKysgIEhBVkVfT1JBQ0xFX0ZBTFNFPQorK2Zp CisrCisrI09SQUNMRV9ESVJTPSJvcmFjbGUiCisrCisrCisrCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBT dXBwb3J0IGZvciBQb3N0Z3JlU1FMIGJhY2tlbmQKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHdo ZXRoZXIgLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIk e2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZh bD0kZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbDsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87 IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KKysgICAgICBlbHNl CisrCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPXllcworKyAgICAgIGZpCisrZWxzZQorKyAg IGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KKysKKytmaQorKworKworK2lmIHRlc3QgIngk ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAieHllcyI7IHRoZW4KKysgICBQT1NUR1JFU1FM X0RJUlM9InBvc3RncmVzcWwiCisrICAgUE9TVEdSRVNRTF9SRVFfVkVSU0lPTj0iNy4xLjQiCisr CisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1wb3N0Z3Jlc3FsIHdhcyBnaXZlbi4KKytpZiB0 ZXN0ICIke3dpdGhfcG9zdGdyZXNxbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0 aF9wb3N0Z3Jlc3FsOworKwlQT1NUR1JFU1FMX2luY19jaGVjaz0iJHdpdGhfcG9zdGdyZXNxbC9p bmNsdWRlIgorKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgorKyAgICAg ICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFs IiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrICAg ICAgICBlbHNlCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrICAgICAgICAg ICAgUEdfQ09ORklHPSIkd2l0aHZhbCIKKysgICAgICAgIGZpCisrCisrZWxzZQorKyAgd2FudF9w b3N0Z3Jlc3FsPSJ5ZXMiCisrCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vz ci9sb2NhbCAvb3B0IgorKworK2ZpCisrCisrCisrICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSIiCisr ICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iIgorKyAgICBQT1NUR1JFU1FMX1BPU1RHUkVTUUw9IiIK KysKKysKKysgICAgaWYgdGVzdCAiJHdhbnRfcG9zdGdyZXNxbCIgPSAieWVzIjsgdGhlbgorKwor KyAgICAgICAgaWYgdGVzdCAteiAiJFBHX0NPTkZJRyIgLW8gdGVzdDsgdGhlbgorKyAgICAgICAg ICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGdfY29uZmlnIiwgc28gaXQgY2FuIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgcGdfY29uZmlnOyBhY193b3Jk PSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYg dGVzdCAiJHthY19jdl9wYXRoX1BHX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRQR19DT05GSUcgaW4KKysgIFtc XC9dKiB8ID86W1xcL10qKQorKyAgYWNfY3ZfcGF0aF9QR19DT05GSUc9IiRQR19DT05GSUciICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysgICop CisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3BhdGhfUEdfQ09ORklHPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Igor KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRh c19zYXZlX0lGUworKworKyAgOzsKKytlc2FjCisrZmkKKytQR19DT05GSUc9JGFjX2N2X3BhdGhf UEdfQ09ORklHCisraWYgdGVzdCAtbiAiJFBHX0NPTkZJRyI7IHRoZW4KKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQR19DT05GSUciID4mNQorKyRhc19lY2hvICIkUEdf Q09ORklHIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgICAgICAg ZmkKKysKKysgICAgICAgIGlmIHRlc3QgISAteCAiJFBHX0NPTkZJRyI7IHRoZW4KKysgICAgICAg ICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJFBHX0NPTkZJRyBkb2Vz IG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3Qg YW4gZXhlY3R1YWJsZSBmaWxlIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQor KyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCisrICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNx bD0ibm8iCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0g Im5vIjsgdGhlbgorKyAgICAgICAgICAgICMKKysgICAgICAgICAgICAjIExvb2sgZm9yIFBvc3Rn cmVzcWwgQyBBUEkgaGVhZGVycworKyAgICAgICAgICAgICMKKysgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJl Y3RvcnkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUg ZGlyZWN0b3J5Li4uICIgPiY2OyB9CisrICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9Cisr ICAgICAgICAgICAgZm9yIHBvc3RncmVzcWxfaW5jX2RpciBpbiAkUE9TVEdSRVNRTF9pbmNfY2hl Y2sKKysgICAgICAgICAgICBkbworKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkcG9zdGdy ZXNxbF9pbmNfZGlyIiBcCisrICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRwb3N0Z3Jlc3Fs X2luY19kaXIvcG9zdGdyZXNfZXh0LmgiCisrICAgICAgICAgICAgICAgIHRoZW4KKysgICAgICAg ICAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGlyPSRwb3N0Z3Jlc3FsX2luY19kaXIKKysgICAg ICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAg ZG9uZQorKworKyAgICAgICAgICAgIGlmIHRlc3QgLXogIiRQT1NUR1JFU1FMX2luY2RpciIKKysg ICAgICAgICAgICB0aGVuCisrICAgICAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpciBpbiAn JFBPU1RHUkVTUUxfaW5jX2NoZWNrJyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IERp ZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNf Y2hlY2snIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICAgICAgICAg IGZpCisrCisrICAgICAgICAgICAgY2FzZSAiJFBPU1RHUkVTUUxfaW5jZGlyIiBpbgorKyAgICAg ICAgICAgICAgICAvKiApIDs7CisrICAgICAgICAgICAgICAgICogKSAgeyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgk UE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBUaGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSAoJFBP U1RHUkVTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7fQorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworKyAgICAgICAgICAgIGVzYWMKKysKKysgICAgICAg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUE9TVEdSRVNRTF9pbmNk aXIiID4mNQorKyRhc19lY2hvICIkUE9TVEdSRVNRTF9pbmNkaXIiID4mNjsgfQorKworKyAgICAg ICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhl bgorKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgICAgICAgICBlbHNl CisrICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGly fSIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0i LUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKKysKKysgICAgICAgICAgICBQT1NUR1JFU1FM X1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMn YAorKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX1BPU1RH UkVTUUwgMQorK19BQ0VPRgorKworKworKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Inll cyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKKysg ICAgICAgIGZpCisrICAgIGZpCisrCisrCisrCisrICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXE9 JFBPU1RHUkVTUUxfUkVRX1ZFUlNJT04KKysKKysgICAgaWYgdGVzdCAiJGZvdW5kX3Bvc3RncmVz cWwiID0gInllcyIgLWEgLW4gIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIjsgdGhlbgorKworKyAg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIFBvc3RncmVTUUwg dmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxLi4uICIgPiY2OyB9CisrCisrICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGdyZXNxbF92 ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdcKFswLTld KlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBvc3Rn cmVzcWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKKysgICAgICAgIHBvc3Rn cmVzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAn WzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jl c3FsX3ZlcnNpb25fcmVxX21pY3JvIiA9ICJ4IjsgdGhlbgorKyAgICAgICAgICAgIHBvc3RncmVz cWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCisrICAgICAgICBmaQorKworKyAgICAgICAgcG9zdGdy ZXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWFq b3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvYAorKwor KyAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAk UE9TVEdSRVNRTF9WRVJTSU9OIDogJ1woWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92 ZXJzaW9uX21pbm9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5cKFswLTld KlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9TVEdSRVNR TF9WRVJTSU9OIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKKysgICAgICAgIGlmIHRl c3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgorKyAgICAgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAgICAgICBw b3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3Ig XCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9z dGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKKysKKysgICAgICAgIHBv c3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX251bWJlciBc Plw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAgICAgIGlmIHRlc3QgIiRw b3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisrICAgICAgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+ JjY7IH0KKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgICAgIGZp CisrICAgIGZpCisrCisrCisrCisrCisrCisrZmkKKysgaWYgdGVzdCAieCRlbmFibGVfYmFja2Vu ZF9wb3N0Z3Jlc3FsIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVfUE9TVEdSRVNRTF9UUlVFPQorKyAg SEFWRV9QT1NUR1JFU1FMX0ZBTFNFPScjJworK2Vsc2UKKysgIEhBVkVfUE9TVEdSRVNRTF9UUlVF PScjJworKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPQorK2ZpCisrCisrI1BPU1RHUkVTUUxfRElS Uz0icG9zdGdyZXNxbCIKKysKKysKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9y IGRvY3VtZW50YXRpb24KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlv biBidWlsZCB0b29scworKyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBb eWVzXSwgW25vXSkKKysjaWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgor KyMgIHRlc3QgIngkdGV4aW5mb19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KKysj ICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQorKyNmaQorKyBpZiB0ZXN0ICJ4JGVu YWJsZV9pbmZvX2RvYyIgPSB4eWVzOyB0aGVuCisrICBJTkZPX0RPQ19UUlVFPQorKyAgSU5GT19E T0NfRkFMU0U9JyMnCisrZWxzZQorKyAgSU5GT19ET0NfVFJVRT0nIycKKysgIElORk9fRE9DX0ZB TFNFPQorK2ZpCisrCisrCisrIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMK KysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRveHlnZW4iLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBkb3h5Z2VuOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9wcm9nX2RveHlnZW5fb2src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGRveHlnZW5fb2siOyB0aGVu CisrICBhY19jdl9wcm9nX2RveHlnZW5fb2s9IiRkb3h5Z2VuX29rIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUwor KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2RveHlnZW5fb2s9InllcyIKKysg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNf c2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RveHlnZW5fb2siICYmIGFjX2N2 X3Byb2dfZG94eWdlbl9vaz0ibm8iCisrZmkKKytmaQorK2RveHlnZW5fb2s9JGFjX2N2X3Byb2df ZG94eWdlbl9vaworK2lmIHRlc3QgLW4gIiRkb3h5Z2VuX29rIjsgdGhlbgorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGRveHlnZW5fb2siID4mNQorKyRhc19lY2hvICIk ZG94eWdlbl9vayIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImxhdGV4Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgbGF0ZXg7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3By b2dfbGF0ZXhfb2src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGxhdGV4X29rIjsgdGhlbgorKyAgYWNfY3ZfcHJv Z19sYXRleF9vaz0iJGxhdGV4X29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4K KytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19k aXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgorKyAgICBhY19jdl9wcm9nX2xhdGV4X29rPSJ5ZXMiCisrICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJy ZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICB0ZXN0 IC16ICIkYWNfY3ZfcHJvZ19sYXRleF9vayIgJiYgYWNfY3ZfcHJvZ19sYXRleF9vaz0ibm8iCisr ZmkKKytmaQorK2xhdGV4X29rPSRhY19jdl9wcm9nX2xhdGV4X29rCisraWYgdGVzdCAtbiAiJGxh dGV4X29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxh dGV4X29rIiA+JjUKKyskYXNfZWNobyAiJGxhdGV4X29rIiA+JjY7IH0KKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZHZpcHMiLCBz byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBkdmlwczsg YWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsg fQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19kdmlwc19vaytzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkZHZpcHNf b2siOyB0aGVuCisrICBhY19jdl9wcm9nX2R2aXBzX29rPSIkZHZpcHNfb2siICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfZHZpcHNfb2s9InllcyIK KysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2R2aXBzX29rIiAmJiBhY19j dl9wcm9nX2R2aXBzX29rPSJubyIKKytmaQorK2ZpCisrZHZpcHNfb2s9JGFjX2N2X3Byb2dfZHZp cHNfb2sKKytpZiB0ZXN0IC1uICIkZHZpcHNfb2siOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkZHZpcHNfb2siID4mNQorKyRhc19lY2hvICIkZHZpcHNfb2si ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICJncyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Cisrc2V0IGR1bW15IGdzOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2dzX29rK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRl c3QgLW4gIiRnc19vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfZ3Nfb2s9IiRnc19vayIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNf c2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19nc19vaz0ieWVz IgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZT PSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZ3Nfb2siICYmIGFjX2N2 X3Byb2dfZ3Nfb2s9Im5vIgorK2ZpCisrZmkKKytnc19vaz0kYWNfY3ZfcHJvZ19nc19vaworK2lm IHRlc3QgLW4gIiRnc19vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRnc19vayIgPiY1CisrJGFzX2VjaG8gIiRnc19vayIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJu byIgPiY2OyB9CisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5v OyB0aGVuCisrICB0ZXN0ICJ4JGRveHlnZW5fb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9j PW5vCisrICB0ZXN0ICJ4JGxhdGV4X29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwor KyAgdGVzdCAieCRkdmlwc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRl c3QgIngkZ3Nfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICAjIEV4dHJhY3Qg dGhlIGZpcnN0IHdvcmQgb2YgInBlcmwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgorK3NldCBkdW1teSBwZXJsOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX1BFUkwr c2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgY2FzZSAkUEVSTCBpbgorKyAgW1xcL10qIHwgPzpbXFwvXSopCisrICBhY19jdl9wYXRoX1BF Ukw9IiRQRVJMIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4K KysgIDs7CisrICAqKQorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgor K2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgorKyAgICBhY19jdl9wYXRoX1BFUkw9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUK KytJRlM9JGFzX3NhdmVfSUZTCisrCisrICA7OworK2VzYWMKKytmaQorK1BFUkw9JGFjX2N2X3Bh dGhfUEVSTAorK2lmIHRlc3QgLW4gIiRQRVJMIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJFBFUkwiID4mNQorKyRhc19lY2hvICIkUEVSTCIgPiY2OyB9Cisr ZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRh c19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9o dG1sX2RvYyIgPSB4eWVzOyB0aGVuCisrICBIVE1MX0RPQ19UUlVFPQorKyAgSFRNTF9ET0NfRkFM U0U9JyMnCisrZWxzZQorKyAgSFRNTF9ET0NfVFJVRT0nIycKKysgIEhUTUxfRE9DX0ZBTFNFPQor K2ZpCisrCisrCisrCisrIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3RzCisr IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkaWZmIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZGlmZjsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf cHJvZ19kaWZmX29rK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgorKyAgYWNfY3ZfcHJv Z19kaWZmX29rPSIkZGlmZl9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisr ZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGly IGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K KysgICAgYWNfY3ZfcHJvZ19kaWZmX29rPSJ5ZXMiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFr IDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICB0ZXN0IC16 ICIkYWNfY3ZfcHJvZ19kaWZmX29rIiAmJiBhY19jdl9wcm9nX2RpZmZfb2s9Im5vIgorK2ZpCisr ZmkKKytkaWZmX29rPSRhY19jdl9wcm9nX2RpZmZfb2sKKytpZiB0ZXN0IC1uICIkZGlmZl9vayI7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkaWZmX29rIiA+ JjUKKyskYXNfZWNobyAiJGRpZmZfb2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2Zp CisrCisrCisrIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzZWQiLCBzbyBpdCBjYW4gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBzZWQ7IGFjX3dvcmQ9JDIKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfc2VkX29rK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRzZWRfb2siOyB0aGVuCisrICBhY19j dl9wcm9nX3NlZF9vaz0iJHNlZF9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu CisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KKysgICAgYWNfY3ZfcHJvZ19zZWRfb2s9InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJl YWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3Qg LXogIiRhY19jdl9wcm9nX3NlZF9vayIgJiYgYWNfY3ZfcHJvZ19zZWRfb2s9Im5vIgorK2ZpCisr ZmkKKytzZWRfb2s9JGFjX2N2X3Byb2dfc2VkX29rCisraWYgdGVzdCAtbiAiJHNlZF9vayI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRzZWRfb2siID4mNQor KyRhc19lY2hvICIkc2VkX29rIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKwor KworK2VuYWJsZV90ZXN0cz15ZXMKKyt0ZXN0ICJ4JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxl X3Rlc3RzPW5vCisrdGVzdCAieCRzZWRfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisr IGlmIHRlc3QgIngkZW5hYmxlX3Rlc3RzIiA9IHh5ZXM7IHRoZW4KKysgIFJVTl9URVNUU19UUlVF PQorKyAgUlVOX1RFU1RTX0ZBTFNFPScjJworK2Vsc2UKKysgIFJVTl9URVNUU19UUlVFPScjJwor KyAgUlVOX1RFU1RTX0ZBTFNFPQorK2ZpCisrCisrCisrCisrIyBDaGVja3MgZm9yIGhlYWRlciBm aWxlcworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQU5TSSBD IGhlYWRlciBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFk ZXIgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VP RgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN0ZGxp Yi5oPgorKyNpbmNsdWRlIDxzdGRhcmcuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1 ZGUgPGZsb2F0Lmg+CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5 PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxl IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY3ZfaGVhZGVyX3N0 ZGM9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9oZWFk ZXJfc3RkYz1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMg PSB5ZXM7IHRoZW4KKysgICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRlY2xhcmUgbWVt KiwgY29udHJhcnkgdG8gQU5TSS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrI2luY2x1ZGUgPHN0cmluZy5oPgorKworK19BQ0VPRgorK2lmIChldmFsICIk YWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKysgICRFR1JFUCAibWVtY2hyIiA+L2Rl di9udWxsIDI+JjE7IHRoZW4KKysgIDoKKytlbHNlCisrICBhY19jdl9oZWFkZXJfc3RkYz1ubwor K2ZpCisrcm0gLWYgY29uZnRlc3QqCisrCisrZmkKKysKKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJf c3RkYyA9IHllczsgdGhlbgorKyAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBub3QgZGVjbGFy ZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrCisrX0FDRU9GCisraWYgKGV2 YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAorKyAgJEVHUkVQICJmcmVlIiA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIDoKKytlbHNlCisrICBhY19jdl9oZWFkZXJfc3RkYz1u bworK2ZpCisrcm0gLWYgY29uZnRlc3QqCisrCisrZmkKKysKKytpZiB0ZXN0ICRhY19jdl9oZWFk ZXJfc3RkYyA9IHllczsgdGhlbgorKyAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUgZ2V0cyBub24t QU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNpLgorKyAgaWYgdGVzdCAiJGNyb3Nz X2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KKysgIDoKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxjdHlwZS5oPgorKyNpbmNsdWRl IDxzdGRsaWIuaD4KKysjaWYgKCgnICcgJiAweDBGRikgPT0gMHgwMjApCisrIyBkZWZpbmUgSVNM T1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQorKyMgZGVmaW5lIFRPVVBQRVIoYykg KElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKKysjZWxzZQorKyMgZGVmaW5l IElTTE9XRVIoYykgXAorKwkJICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScpIFwKKysJCSAg ICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAorKwkJICAgICB8fCAoJ3MnIDw9IChj KSAmJiAoYykgPD0gJ3onKSkKKysjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gKChj KSB8IDB4NDApIDogKGMpKQorKyNlbmRpZgorKworKyNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYm ICEoZikpIHx8ICghKGUpICYmIChmKSkpCisraW50CisrbWFpbiAoKQorK3sKKysgIGludCBpOwor KyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQorKyAgICBpZiAoWE9SIChpc2xvd2VyIChpKSwg SVNMT1dFUiAoaSkpCisrCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQorKyAgICAgIHJl dHVybiAyOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4 ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfbGluayIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKKysgIHsgKGNhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9OyB9OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogcHJv Z3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQorKworKyggZXhpdCAkYWNfc3RhdHVzICkKKythY19jdl9oZWFkZXJfc3RkYz1ubwor K2ZpCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0 ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorKworKworK2ZpCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQorKyRhc19lY2hv ICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQorK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRj ID0geWVzOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIFNU RENfSEVBREVSUyAxCisrX0FDRU9GCisrCisrZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUg aW5jbHVkZWQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGltZS5oIGFuZCBz eXMvdGltZS5oIG1heSBib3RoIGJlIGluY2x1ZGVkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHth Y19jdl9oZWFkZXJfdGltZStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKysjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKysj aW5jbHVkZSA8dGltZS5oPgorKworK2ludAorK21haW4gKCkKKyt7CisraWYgKChzdHJ1Y3QgdG0g KikgMCkKKytyZXR1cm4gMDsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysg IGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAor KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu JGFjX29iamV4dDsgdGhlbgorKyAgYWNfY3ZfaGVhZGVyX3RpbWU9eWVzCisrZWxzZQorKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9oZWFkZXJfdGltZT1ubworK2ZpCisrCisr cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf ZXh0CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVh ZGVyX3RpbWUiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNjsgfQorK2lm IHRlc3QgJGFjX2N2X2hlYWRlcl90aW1lID0geWVzOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMu aCA8PFxfQUNFT0YKKysjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCisrX0FDRU9GCisrCisr ZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKytmb3IgYWNf aGVhZGVyIGluIGNtYXRoIFwKKysgIGRlcXVlIFwKKysgIGZzdHJlYW0gXAorKyAgaW9tYW5pcCBc CisrICBpb3N0cmVhbSBcCisrICBzc3RyZWFtIFwKKysgIGxpbWl0cyBcCisrICBsaXN0IFwKKysg IHNldCBcCisrICB2ZWN0b3IgXAorKyAgbWFwIFwKKysgIHF1ZXVlIFwKKysgIHN0ZGV4Y2VwdCBc CisrICBzdHJpbmcKKytkbworK2FzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8k YWNfaGVhZGVyIiB8ICRhc190cl9zaGAKKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFs ICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFz X2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNf dmFsPSR7JyRhc19hY19IZWFkZXInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNf ZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrZWxzZQorKyAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFi bGU/CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNh YmlsaXR5IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eS4u LiAiID4mNjsgfQorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZz LmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2Nh dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisr JGFjX2luY2x1ZGVzX2RlZmF1bHQKKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcworK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCisrZmkK KysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVy X2NvbXBpbGVyIiA+JjUKKyskYXNfZWNobyAiJGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9Cisr CisrIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n ICRhY19oZWFkZXIgcHJlc2VuY2UuLi4gIiA+JjY7IH0KKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDwkYWNfaGVhZGVyPgorK19BQ0VPRgorK2lm IHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysg IGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJv Y193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgorKyAgICAgICB9OyB0aGVuCisrICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICBhY19oZWFkZXJfcHJlcHJvYz1ubworK2Zp CisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorKyRhc19lY2hv ICIkYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQorKworKyMgU28/ICBXaGF0IGFib3V0IHRoaXMg aGVhZGVyPworK2Nhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFj X2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbgorKyAgeWVzOm5vOiApCisrICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29t cGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVj dGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxl cidzIHJlc3VsdCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjog cHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KKysgICAgYWNfaGVh ZGVyX3ByZXByb2M9eWVzCisrICAgIDs7CisrICBubzp5ZXM6KiApCisrICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3Qg YmUgY29tcGlsZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6 IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KKysgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2lu ZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8i ID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVh ZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQorKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIg PiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFk ZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJl c2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHBy ZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFj X2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9 CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBp biB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBj b21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KKysgICAgKCBjYXQgPDxcX0FTQk9Y CisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisr IyMgUmVwb3J0IHRoaXMgdG8gbXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0ICMjCisrIyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrX0FTQk9Y CisrICAgICApIHwgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCisrICAgIDs7 CisrZXNhYworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hl YWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+JjY7 IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zhcitz ZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGV2YWwgIiRhc19hY19IZWFkZXI9XCRhY19oZWFkZXJfcHJlcHJvYyIKKytmaQorK2Fj X3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQorKwkJICRhc19lY2hvICIkYXNf dmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf cmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrCisrZmkKKythc192YWw9YGV2 YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAor KyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgY2F0ID4+Y29uZmRlZnMu aCA8PF9BQ0VPRgorKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3Ry X2NwcGAgMQorK19BQ0VPRgorKworK2ZpCisrCisrZG9uZQorKworKworKworKyMgRGVmaW5lIGNv bmZpZ3VyZWQgZmlsZXMKKythY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZp bGUgc29jaS1jb25maWcgc29jaS5wYyBzb2NpLnNwZWMgc29jaS9NYWtlZmlsZSBzb2NpL2NvcmUv TWFrZWZpbGUgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSBz b2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUgc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSBtYW4vTWFrZWZpbGUgZG9jL01ha2VmaWxlIGRv Yy9iYWNrZW5kcy9NYWtlZmlsZSBidWlsZC9NYWtlZmlsZSBidWlsZC91bml4L01ha2VmaWxlIGJ1 aWxkL21zdmM4MC9NYWtlZmlsZSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIGJ1aWxkL21zdmM4 MC9saWIvTWFrZWZpbGUiCisrCisrCisrY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9GCisrIyBUaGlz IGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMgb2YgY29uZmln dXJlCisrIyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJl dHdlZW4gY29uZmlndXJlCisrIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucywgc2VlIGNvbmZp Z3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4KKysjIEl0IGlzIG5vdCB1c2VmdWwgb24gb3Ro ZXIgc3lzdGVtcy4gIElmIGl0IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0CisrIyB3YW50IHRv IGtlZXAsIHlvdSBtYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCisrIworKyMgY29uZmlnLnN0YXR1cyBv bmx5IHBheXMgYXR0ZW50aW9uIHRvIHRoZSBjYWNoZSBmaWxlIGlmIHlvdSBnaXZlIGl0CisrIyB0 aGUgLS1yZWNoZWNrIG9wdGlvbiB0byByZXJ1biBjb25maWd1cmUuCisrIworKyMgYGFjX2N2X2Vu dl9mb28nIHZhcmlhYmxlcyAoc2V0IG9yIHVuc2V0KSB3aWxsIGJlIG92ZXJyaWRkZW4gd2hlbgor KyMgbG9hZGluZyB0aGlzIGZpbGUsIG90aGVyICp1bnNldCogYGFjX2N2X2Zvbycgd2lsbCBiZSBh c3NpZ25lZCB0aGUKKysjIGZvbGxvd2luZyB2YWx1ZXMuCisrCisrX0FDRU9GCisrCisrIyBUaGUg Zm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGlu IHZhbHVlcywKKysjIGJ1dCB3ZSBrbm93IG9mIG5vIHdvcmthcm91bmQgdGhhdCBpcyBzaW1wbGUs IHBvcnRhYmxlLCBhbmQgZWZmaWNpZW50LgorKyMgU28sIHdlIGtpbGwgdmFyaWFibGVzIGNvbnRh aW5pbmcgbmV3bGluZXMuCisrIyBVbHRyaXggc2ggc2V0IHdyaXRlcyB0byBzdGRlcnIgYW5kIGNh bid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0bHksCisrIyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQgaW4g dGhlIGNhY2hlIGZpbGUgdW5sZXNzIHdlIGFzc2lnbiB0byB0aGUgdmFycy4KKysoCisrICBmb3Ig YWNfdmFyIGluIGAoc2V0KSAyPiYxIHwgc2VkIC1uICdzL15cKFthLXpBLVpfXVthLXpBLVowLTlf XSpcKT0uKi9cMS9wJ2A7IGRvCisrICAgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgorKyAgICBjYXNl ICRhY192YWwgaW4gIygKKysgICAgKiR7YXNfbmx9KikKKysgICAgICBjYXNlICRhY192YXIgaW4g IygKKysgICAgICAqX2N2XyopIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBj YWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xp bmUiID4mMjt9IDs7CisrICAgICAgZXNhYworKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAorKyAg ICAgIF8gfCBJRlMgfCBhc19ubCkgOzsgIygKKysgICAgICBCQVNIX0FSR1YgfCBCQVNIX1NPVVJD RSkgZXZhbCAkYWNfdmFyPSA7OyAjKAorKyAgICAgICopICRhc191bnNldCAkYWNfdmFyIDs7Cisr ICAgICAgZXNhYyA7OworKyAgICBlc2FjCisrICBkb25lCisrCisrICAoc2V0KSAyPiYxIHwKKysg ICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPScgJzsgc2V0KSAyPiYxYCBpbiAjKAorKyAgICAqJHth c19ubH1hY19zcGFjZT1cICopCisrICAgICAgIyBgc2V0JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0 bHksIHNvIGFkZCBxdW90ZXMgKGRvdWJsZS1xdW90ZQorKyAgICAgICMgc3Vic3RpdHV0aW9uIHR1 cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0dXJucyBcXCBpbnRvIFwpLgorKyAgICAgIHNlZCAt biBcCisrCSJzLycvJ1xcXFwnJy9nOworKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18k YXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1xcMicvcCIKKysgICAgICA7OyAjKAorKyAg ICAqKQorKyAgICAgICMgYHNldCcgcXVvdGVzIGNvcnJlY3RseSBhcyByZXF1aXJlZCBieSBQT1NJ WCwgc28gZG8gbm90IGFkZCBxdW90ZXMuCisrICAgICAgc2VkIC1uICIvXltfJGFzX2NyX2FsbnVt XSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKKysgICAgICA7OworKyAgICBlc2FjIHwKKysgICAg c29ydAorKykgfAorKyAgc2VkICcKKysgICAgIC9eYWNfY3ZfZW52Xy9iIGVuZAorKyAgICAgdCBj bGVhcgorKyAgICAgOmNsZWFyCisrICAgICBzL15cKFtePV0qXCk9XCguKlt7fV0uKlwpJC90ZXN0 ICIke1wxK3NldH0iID0gc2V0IHx8ICYvCisrICAgICB0IGVuZAorKyAgICAgcy9eXChbXj1dKlwp PVwoLipcKSQvXDE9JHtcMT1cMn0vCisrICAgICA6ZW5kJyA+PmNvbmZjYWNoZQorK2lmIGRpZmYg IiRjYWNoZV9maWxlIiBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKKysg IGlmIHRlc3QgLXcgIiRjYWNoZV9maWxlIjsgdGhlbgorKyAgICB0ZXN0ICJ4JGNhY2hlX2ZpbGUi ICE9ICJ4L2Rldi9udWxsIiAmJgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiB1 cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogdXBkYXRp bmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CisrICAgIGNhdCBjb25mY2FjaGUgPiRjYWNoZV9m aWxlCisrICBlbHNlCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBub3QgdXBkYXRp bmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog bm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CisrICBmaQor K2ZpCisrcm0gLWYgY29uZmNhY2hlCisrCisrdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJl Zml4PSRhY19kZWZhdWx0X3ByZWZpeAorKyMgTGV0IG1ha2UgZXhwYW5kIGV4ZWNfcHJlZml4Lgor K3Rlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScK KysKKytERUZTPS1ESEFWRV9DT05GSUdfSAorKworK2FjX2xpYm9ianM9CisrYWNfbHRsaWJvYmpz PQorK2ZvciBhY19pIGluIDogJExJQk9CSlM7IGRvIHRlc3QgIngkYWNfaSIgPSB4OiAmJiBjb250 aW51ZQorKyAgIyAxLiBSZW1vdmUgdGhlIGV4dGVuc2lvbiwgYW5kICRVIGlmIGFscmVhZHkgaW5z dGFsbGVkLgorKyAgYWNfc2NyaXB0PSdzL1wkVVwuLy4vO3MvXC5vJC8vO3MvXC5vYmokLy8nCisr ICBhY19pPWAkYXNfZWNobyAiJGFjX2kiIHwgc2VkICIkYWNfc2NyaXB0ImAKKysgICMgMi4gUHJl cGVuZCBMSUJPQkpESVIuICBXaGVuIHVzZWQgd2l0aCBhdXRvbWFrZT49MS4xMCBMSUJPQkpESVIK KysgICMgICAgd2lsbCBiZSBzZXQgdG8gdGhlIGRpcmVjdG9yeSB3aGVyZSBMSUJPQkpTIG9iamVj dHMgYXJlIGJ1aWx0LgorKyAgYWNfbGlib2Jqcz0iJGFjX2xpYm9ianMgXCR7TElCT0JKRElSfSRh Y19pXCRVLiRhY19vYmpleHQiCisrICBhY19sdGxpYm9ianM9IiRhY19sdGxpYm9ianMgXCR7TElC T0JKRElSfSRhY19pIickVS5sbycKKytkb25lCisrTElCT0JKUz0kYWNfbGlib2JqcworKworK0xU TElCT0JKUz0kYWNfbHRsaWJvYmpzCisrCisrCisraWYgdGVzdCAteiAiJHtIQVZFX0NQUFVOSVRf VFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9DUFBVTklUX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfQ1BQVU5J VFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1 YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHku IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAi JHtBTURFUF9UUlVFfSIgJiYgdGVzdCAteiAiJHtBTURFUF9GQUxTRX0iOyB0aGVuCisrICB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdh cyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNv bmRpdGlvbmFsIFwiQU1ERVBcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVh bnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke2FtX19mYXN0ZGVw Q1hYX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ1hYX0ZBTFNFfSI7IHRoZW4KKysg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19m YXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENYWFwiIHdhcyBuZXZlciBkZWZp bmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lm IHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDQ19UUlVFfSIgJiYgdGVzdCAteiAiJHthbV9fZmFzdGRl cENDX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3Vh bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVw Q0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ1hYX1RSVUV9IiAmJiB0 ZXN0IC16ICIke2FtX19mYXN0ZGVwQ1hYX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ1hYXCIgd2Fz IG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBp bnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29u ZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENYWFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkg dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYy O30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7U09D SV9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX0hFQURFUlNfQlVSSUVE X0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj b25kaXRpb25hbCBcIlNPQ0lfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytV c3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxs eS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfSEVB REVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhl IG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke1NPQ0lfTVlTUUxfSEVBREVS U19CVVJJRURfVFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9G QUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29u ZGl0aW9uYWwgXCJTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQu CisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlv bmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlz IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8g d2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEXCIgd2Fz IG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBp bnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQorK2ZpCisraWYgdGVzdCAteiAiJHtIQVZFX01ZU1FMX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hB VkVfTVlTUUxfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9NWVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1Vz dWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5 LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9NWVNR TFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7SEFWRV9PUkFDTEVfVFJVRX0iICYmIHRlc3Qg LXogIiR7SEFWRV9PUkFDTEVfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9PUkFDTEVcIiB3YXMgbmV2ZXIgZGVm aW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29u ZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBc IkhBVkVfT1JBQ0xFXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtIQVZFX1BPU1RHUkVTUUxf VFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9QT1NUR1JFU1FMX0ZBTFNFfSI7IHRoZW4KKysgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfUE9T VEdSRVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFj cm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9QT1NUR1JFU1FMXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYg dGVzdCAteiAiJHtJTkZPX0RPQ19UUlVFfSIgJiYgdGVzdCAteiAiJHtJTkZPX0RPQ19GQUxTRX0i OyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9u YWwgXCJJTkZPX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0 aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSU5GT19ET0NcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0 ZXN0IC16ICIke0hUTUxfRE9DX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hUTUxfRE9DX0ZBTFNFfSI7 IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25h bCBcIkhUTUxfRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIVE1MX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVk LgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRp b25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRl c3QgLXogIiR7UlVOX1RFU1RTX1RSVUV9IiAmJiB0ZXN0IC16ICIke1JVTl9URVNUU19GQUxTRX0i OyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9u YWwgXCJSVU5fVEVTVFNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMg dGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlJVTl9URVNUU1wiIHdhcyBuZXZlciBkZWZp bmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorKwor KzogJHtDT05GSUdfU1RBVFVTPS4vY29uZmlnLnN0YXR1c30KKythY193cml0ZV9mYWlsPTAKKyth Y19jbGVhbl9maWxlc19zYXZlPSRhY19jbGVhbl9maWxlcworK2FjX2NsZWFuX2ZpbGVzPSIkYWNf Y2xlYW5fZmlsZXMgJENPTkZJR19TVEFUVVMiCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBjcmVhdGlu ZyAkQ09ORklHX1NUQVRVUyIgPiY2O30KKytjYXQgPiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8 IGFjX3dyaXRlX2ZhaWw9MQorKyMhICRTSEVMTAorKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KKysj IFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KKysj IENvbXBpbGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUsIHVzZWZ1bCBmb3IgZGVidWdn aW5nCisrIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgorKworK2Rl YnVnPWZhbHNlCisrYWNfY3NfcmVjaGVjaz1mYWxzZQorK2FjX2NzX3NpbGVudD1mYWxzZQorK1NI RUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CisrX0FDRU9GCisrCisrY2F0ID4+JENPTkZJR19T VEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLSAjIworKyMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIworKyMjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLSAjIworKworKyMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQorK0RVQUxDQVNFPTE7 IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKytpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9O K3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGVtdWxhdGUg c2gKKysgIE5VTExDTUQ9OgorKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNw bGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisrICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2Fn ZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCIn CisrICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2Vsc2UKKysgIGNhc2UgYChzZXQgLW8pIDI+L2Rl di9udWxsYCBpbgorKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7CisrZXNhYworKworK2ZpCisr CisrCisrCisrCisrIyBQQVRIIG5lZWRzIENSCisrIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFy YWN0ZXIgUmFuZ2VzLgorK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6 JworK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJworK2FzX2NyX0xl dHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUworK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1 Njc4OScKKythc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKKysKKythc19u bD0nCisrJworK2V4cG9ydCBhc19ubAorKyMgUHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFzaGVz IFNvbGFyaXMgNyAvdXNyL2Jpbi9wcmludGYuCisrYXNfZWNobz0nXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKKythc19lY2hvPSRhc19lY2hvJGFzX2VjaG8k YXNfZWNobyRhc19lY2hvJGFzX2VjaG8KKythc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNo byRhc19lY2hvJGFzX2VjaG8kYXNfZWNobworK2lmICh0ZXN0ICJYYHByaW50ZiAlcyAkYXNfZWNo b2AiID0gIlgkYXNfZWNobyIpIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19lY2hvPSdwcmludGYg JXNcbicKKysgIGFzX2VjaG9fbj0ncHJpbnRmICVzJworK2Vsc2UKKysgIGlmIHRlc3QgIlhgKC91 c3IvdWNiL2VjaG8gLW4gLW4gJGFzX2VjaG8pIDI+L2Rldi9udWxsYCIgPSAiWC1uICRhc19lY2hv IjsgdGhlbgorKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgL3Vzci91Y2IvZWNobyAtbiAiJDEkYXNf bmwiJworKyAgICBhc19lY2hvX249Jy91c3IvdWNiL2VjaG8gLW4nCisrICBlbHNlCisrICAgIGFz X2VjaG9fYm9keT0nZXZhbCBleHByICJYJDEiIDogIlhcXCguKlxcKSInCisrICAgIGFzX2VjaG9f bl9ib2R5PSdldmFsCisrICAgICAgYXJnPSQxOworKyAgICAgIGNhc2UgJGFyZyBpbgorKyAgICAg ICoiJGFzX25sIiopCisrCWV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkkYXNfbmwiOworKwlhcmc9 YGV4cHIgIlgkYXJnIiA6ICIuKiRhc19ubFxcKC4qXFwpImA7OworKyAgICAgIGVzYWM7CisrICAg ICAgZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSIgfCB0ciAtZCAiJGFzX25sIgorKyAgICAnCisr ICAgIGV4cG9ydCBhc19lY2hvX25fYm9keQorKyAgICBhc19lY2hvX249J3NoIC1jICRhc19lY2hv X25fYm9keSBhc19lY2hvJworKyAgZmkKKysgIGV4cG9ydCBhc19lY2hvX2JvZHkKKysgIGFzX2Vj aG89J3NoIC1jICRhc19lY2hvX2JvZHkgYXNfZWNobycKKytmaQorKworKyMgVGhlIHVzZXIgaXMg YWx3YXlzIHJpZ2h0LgorK2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0 aGVuCisrICBQQVRIX1NFUEFSQVRPUj06CisrICAoUEFUSD0nL2JpbjsvYmluJzsgRlBBVEg9JFBB VEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSAmJiB7CisrICAgIChQQVRIPScvYmluOi9iaW4n OyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxIHx8CisrICAgICAgUEFUSF9T RVBBUkFUT1I9JzsnCisrICB9CisrZmkKKysKKysjIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJs ZS4KKytpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKysgIGFzX3Vuc2V0PXVuc2V0CisrZWxzZQorKyAgYXNfdW5zZXQ9ZmFsc2UKKytmaQor KworKworKyMgSUZTCisrIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVj aXNlbHkgdGhhdCBvcmRlci4gIFF1b3RpbmcgaXMKKysjIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9y cyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNwYWNlLXRhYi4KKysjIChJZiBfQVNfUEFUSF9XQUxL IHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKKysjIHNw bGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBlbXB0eSB2YWx1ZS4pCisrSUZTPSIgIiIJJGFzX25s IgorKworKyMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWlu IG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCisrY2FzZSAkMCBpbgorKyAgKltcXC9dKiApIGFzX215 c2VsZj0kMCA7OworKyAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgor K2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215 c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysg ICAgIDs7CisrZXNhYworKyMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJs eSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKKysjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5v dCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KKytpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0 aGVuCisrICBhc19teXNlbGY9JDAKKytmaQorK2lmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRo ZW4KKysgICRhc19lY2hvICIkYXNfbXlzZWxmOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyBy ZXJ1biB3aXRoIGFuIGFic29sdXRlIGZpbGUgbmFtZSIgPiYyCisrICB7IChleGl0IDEpOyBleGl0 IDE7IH0KKytmaQorKworKyMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgor K2ZvciBhc192YXIgaW4gRU5WIE1BSUwgTUFJTFBBVEgKKytkbyAoJGFzX3Vuc2V0ICRhc192YXIp ID4vZGV2L251bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFzX3ZhcgorK2RvbmUKKytQUzE9JyQgJwor K1BTMj0nPiAnCisrUFM0PScrICcKKysKKysjIE5MUyBudWlzYW5jZXMuCisrTENfQUxMPUMKKytl eHBvcnQgTENfQUxMCisrTEFOR1VBR0U9QworK2V4cG9ydCBMQU5HVUFHRQorKworKyMgUmVxdWly ZWQgdG8gdXNlIGJhc2VuYW1lLgorK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYx ICYmCisrICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4K KysgIGFzX2V4cHI9ZXhwcgorK2Vsc2UKKysgIGFzX2V4cHI9ZmFsc2UKKytmaQorKworK2lmIChi YXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAtLSAvIDI+ JjFgIiA9ICJYLyI7IHRoZW4KKysgIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCisrZWxzZQorKyAgYXNf YmFzZW5hbWU9ZmFsc2UKKytmaQorKworKworKyMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KKyth c19tZT1gJGFzX2Jhc2VuYW1lIC0tICIkMCIgfHwKKyskYXNfZXhwciBYLyIkMCIgOiAnLiovXChb Xi9dW14vXSpcKS8qJCcgXHwgXAorKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJDAi IDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgvIiQwIiB8CisrICAg IHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisr CSAgfQorKwkgIC9eWFwvXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0K KysJICAvXlhcL1woXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBz Ly4qLy4vOyBxJ2AKKysKKysjIENEUEFUSC4KKyskYXNfdW5zZXQgQ0RQQVRICisrCisrCisrCisr ICBhc19saW5lbm9fMT0kTElORU5PCisrICBhc19saW5lbm9fMj0kTElORU5PCisrICB0ZXN0ICJ4 JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKysgIHRlc3QgInhgZXhwciAkYXNf bGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIgfHwgeworKworKyAgIyBDcmVhdGUgJGFz X21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTworKyAg IyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQn IGluc2VydHMgYQorKyAgIyBsaW5lLW51bWJlciBsaW5lIGFmdGVyIGVhY2ggbGluZSB1c2luZyAk TElORU5POyB0aGUgc2Vjb25kICdzZWQnCisrICAjIGRvZXMgdGhlIHJlYWwgd29yay4gIFRoZSBz ZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaAorKyAgIyBsaW5lLW51bWJlciBsaW5l IHdpdGggdGhlIGxpbmUgY29udGFpbmluZyAkTElORU5PLCBhbmQgYXBwZW5kcworKyAgIyB0cmFp bGluZyAnLScgZHVyaW5nIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3Bl Y2lhbAorKyAgIyBjYXNlIGF0IGxpbmUgZW5kLgorKyAgIyAoUmFqYSBSIEhhcmluYXRoIHN1Z2dl c3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhlCisrICAjIHNjcmlwdHMgd2l0 aCBvcHRpbWl6YXRpb24gaGVscCBmcm9tIFBhb2xvIEJvbnppbmkuICBCbGFtZSBMZWUKKysgICMg RS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBmb3Igc2VkJ3Mgc3ludGF4LiAgOi0pCisrICBzZWQgLW4g JworKyAgICBwCisrICAgIC9bJF1MSU5FTk8vPQorKyAgJyA8JGFzX215c2VsZiB8CisrICAgIHNl ZCAnCisrICAgICAgcy9bJF1MSU5FTk8uKi8mLS8KKysgICAgICB0IGxpbmVubworKyAgICAgIGIK KysgICAgICA6bGluZW5vCisrICAgICAgTgorKyAgICAgIDpsb29wCisrICAgICAgcy9bJF1MSU5F Tk9cKFteJyRhc19jcl9hbG51bSdfXS4qXG5cKVwoLipcKS9cMlwxXDIvCisrICAgICAgdCBsb29w CisrICAgICAgcy8tXG4uKi8vCisrICAgICcgPiRhc19tZS5saW5lbm8gJiYKKysgIGNobW9kICt4 ICIkYXNfbWUubGluZW5vIiB8fAorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5u b3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyCisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCisrICAjIERvbid0IHRyeSB0byBleGVjIGFz IGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9ibGVtcworKyAgIyAodGhl IGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhl CisrICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2l0 aXZlIHRvIHRoaXMpLgorKyAgLiAiLi8kYXNfbWUubGluZW5vIgorKyAgIyBFeGl0IHN0YXR1cyBp cyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCisrICBleGl0CisrfQorKworKworK2lmIChhc19k aXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8pID4vZGV2L251bGwgMj4m MTsgdGhlbgorKyAgYXNfZGlybmFtZT1kaXJuYW1lCisrZWxzZQorKyAgYXNfZGlybmFtZT1mYWxz ZQorK2ZpCisrCisrRUNIT19DPSBFQ0hPX049IEVDSE9fVD0KKytjYXNlIGBlY2hvIC1uIHhgIGlu CisrLW4qKQorKyAgY2FzZSBgZWNobyAneFxjJ2AgaW4KKysgICpjKikgRUNIT19UPScJJzs7CSMg RUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgorKyAgKikgICBFQ0hPX0M9J1xjJzs7Cisr ICBlc2FjOzsKKysqKQorKyAgRUNIT19OPSctbic7OworK2VzYWMKKytpZiBleHByIGEgOiAnXChh XCknID4vZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4u XCknYCIgPSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytlbHNlCisrICBhc19leHByPWZh bHNlCisrZmkKKysKKytybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQorK2lmIHRl c3QgLWQgY29uZiQkLmRpcjsgdGhlbgorKyAgcm0gLWYgY29uZiQkLmRpci9jb25mJCQuZmlsZQor K2Vsc2UKKysgIHJtIC1mIGNvbmYkJC5kaXIKKysgIG1rZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251 bGwKKytmaQorK2lmIChlY2hvID5jb25mJCQuZmlsZSkgMj4vZGV2L251bGw7IHRoZW4KKysgIGlm IGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBhc19sbl9z PSdsbiAtcycKKysgICAgIyAuLi4gYnV0IHRoZXJlIGFyZSB0d28gZ290Y2hhczoKKysgICAgIyAx KSBPbiBNU1lTLCBib3RoIGBsbiAtcyBmaWxlIGRpcicgYW5kIGBsbiBmaWxlIGRpcicgZmFpbC4K KysgICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtzOyBgbG4gLXMnIGNyZWF0ZXMg YSB3cmFwcGVyIGV4ZWN1dGFibGUuCisrICAgICMgSW4gYm90aCBjYXNlcywgd2UgaGF2ZSB0byBk ZWZhdWx0IHRvIGBjcCAtcCcuCisrICAgIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJC5kaXIgMj4v ZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYkJC5leGUgfHwKKysgICAgICBhc19sbl9zPSdjcCAt cCcKKysgIGVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisrICAg IGFzX2xuX3M9bG4KKysgIGVsc2UKKysgICAgYXNfbG5fcz0nY3AgLXAnCisrICBmaQorK2Vsc2UK KysgIGFzX2xuX3M9J2NwIC1wJworK2ZpCisrcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQk LmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmlsZQorK3JtZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251 bGwKKysKKytpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19ta2Rpcl9wPToK KytlbHNlCisrICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorKyAgYXNfbWtkaXJfcD1mYWxz ZQorK2ZpCisrCisraWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfdGVz dF94PSd0ZXN0IC14JworK2Vsc2UKKysgIGlmIGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsgdGhl bgorKyAgICBhc19sc19MX29wdGlvbj1MCisrICBlbHNlCisrICAgIGFzX2xzX0xfb3B0aW9uPQor KyAgZmkKKysgIGFzX3Rlc3RfeD0nCisrICAgIGV2YWwgc2ggLWMgJ1wnJworKyAgICAgIGlmIHRl c3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0IC1kICIkMS8uIjsKKysgICAgICBlbHNlCisrCWNhc2Ug JDEgaW4KKysJLSopc2V0ICIuLyQxIjs7CisrCWVzYWM7CisrCWNhc2UgYGxzIC1sZCckYXNfbHNf TF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluCisrCT8/P1tzeF0qKTo7OyopZmFsc2U7O2Vz YWM7ZmkKKysgICAgJ1wnJyBzaAorKyAgJworK2ZpCisrYXNfZXhlY3V0YWJsZV9wPSRhc190ZXN0 X3gKKysKKysjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQ IG5hbWUuCisrYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9M RVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKysKKysjIFNlZCBleHByZXNzaW9uIHRv IG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4KKythc190cl9zaD0iZXZh bCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgorKworKworK2V4ZWMgNj4m MQorKworKyMgU2F2ZSB0aGUgbG9nIG1lc3NhZ2UsIHRvIGtlZXAgJFswXSBhbmQgc28gb24gbWVh bmluZ2Z1bCwgYW5kIHRvCisrIyByZXBvcnQgYWN0dWFsIGlucHV0IHZhbHVlcyBvZiBDT05GSUdf RklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCisrIyB2YWx1ZXMgYWZ0ZXIgb3B0aW9ucyBoYW5k bGluZy4KKythY19sb2c9IgorK1RoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgU09DSSAkYXNfbWUg My4wLjAsIHdoaWNoIHdhcworK2dlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42My4gIEludm9j YXRpb24gY29tbWFuZCBsaW5lIHdhcworKworKyAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19G SUxFUworKyAgQ09ORklHX0hFQURFUlMgID0gJENPTkZJR19IRUFERVJTCisrICBDT05GSUdfTElO S1MgICAgPSAkQ09ORklHX0xJTktTCisrICBDT05GSUdfQ09NTUFORFMgPSAkQ09ORklHX0NPTU1B TkRTCisrICAkICQwICRACisrCisrb24gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251 bGwgfCBzZWQgMXFgCisrIgorKworK19BQ0VPRgorKworK2Nhc2UgJGFjX2NvbmZpZ19maWxlcyBp biAqIgorKyIqKSBzZXQgeCAkYWNfY29uZmlnX2ZpbGVzOyBzaGlmdDsgYWNfY29uZmlnX2ZpbGVz PSQqOzsKKytlc2FjCisrCisrY2FzZSAkYWNfY29uZmlnX2hlYWRlcnMgaW4gKiIKKysiKikgc2V0 IHggJGFjX2NvbmZpZ19oZWFkZXJzOyBzaGlmdDsgYWNfY29uZmlnX2hlYWRlcnM9JCo7OworK2Vz YWMKKysKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKKysjIEZpbGVzIHRoYXQgY29uZmlnLnN0YXR1cyB3YXMgbWFkZSBmb3IuCisrY29uZmlnX2Zp bGVzPSIkYWNfY29uZmlnX2ZpbGVzIgorK2NvbmZpZ19oZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRl cnMiCisrY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIgorKworK19BQ0VPRgor KworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKyth Y19jc191c2FnZT0iXAorK1xgJGFzX21lJyBpbnN0YW50aWF0ZXMgZmlsZXMgZnJvbSB0ZW1wbGF0 ZXMgYWNjb3JkaW5nIHRvIHRoZQorK2N1cnJlbnQgY29uZmlndXJhdGlvbi4KKysKKytVc2FnZTog JDAgW09QVElPTl0uLi4gW0ZJTEVdLi4uCisrCisrICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRo aXMgaGVscCwgdGhlbiBleGl0CisrICAtViwgLS12ZXJzaW9uICAgIHByaW50IHZlcnNpb24gbnVt YmVyIGFuZCBjb25maWd1cmF0aW9uIHNldHRpbmdzLCB0aGVuIGV4aXQKKysgIC1xLCAtLXF1aWV0 LCAtLXNpbGVudAorKyAgICAgICAgICAgICAgICAgICBkbyBub3QgcHJpbnQgcHJvZ3Jlc3MgbWVz c2FnZXMKKysgIC1kLCAtLWRlYnVnICAgICAgZG9uJ3QgcmVtb3ZlIHRlbXBvcmFyeSBmaWxlcwor KyAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhl IHNhbWUgY29uZGl0aW9ucworKyAgICAgIC0tZmlsZT1GSUxFWzpURU1QTEFURV0KKysgICAgICAg ICAgICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBGSUxFCisrICAg ICAgLS1oZWFkZXI9RklMRVs6VEVNUExBVEVdCisrICAgICAgICAgICAgICAgICAgIGluc3RhbnRp YXRlIHRoZSBjb25maWd1cmF0aW9uIGhlYWRlciBGSUxFCisrCisrQ29uZmlndXJhdGlvbiBmaWxl czoKKyskY29uZmlnX2ZpbGVzCisrCisrQ29uZmlndXJhdGlvbiBoZWFkZXJzOgorKyRjb25maWdf aGVhZGVycworKworK0NvbmZpZ3VyYXRpb24gY29tbWFuZHM6CisrJGNvbmZpZ19jb21tYW5kcwor KworK1JlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgorKworK19BQ0VPRgor K2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK2FjX2Nz X3ZlcnNpb249IlxcCisrU09DSSBjb25maWcuc3RhdHVzIDMuMC4wCisrY29uZmlndXJlZCBieSAk MCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLAorKyAgd2l0aCBvcHRpb25zIFxcImAk YXNfZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9eIC8vOyBzL1tcXCIiXGBcJF0v XFxcXCYvZydgXFwiCisrCisrQ29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorK1RoaXMgY29uZmlnLnN0YXR1cyBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorK2dpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCisrCisrYWNfcHdkPSckYWNfcHdk JworK3NyY2Rpcj0nJHNyY2RpcicKKytJTlNUQUxMPSckSU5TVEFMTCcKKytNS0RJUl9QPSckTUtE SVJfUCcKKytBV0s9JyRBV0snCisrdGVzdCAtbiAiXCRBV0siIHx8IEFXSz1hd2sKKytfQUNFT0YK KysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisr IyBUaGUgZGVmYXVsdCBsaXN0cyBhcHBseSBpZiB0aGUgdXNlciBkb2VzIG5vdCBzcGVjaWZ5IGFu eSBmaWxlLgorK2FjX25lZWRfZGVmYXVsdHM9OgorK3doaWxlIHRlc3QgJCMgIT0gMAorK2RvCisr ICBjYXNlICQxIGluCisrICAtLSo9KikKKysgICAgYWNfb3B0aW9uPWBleHByICJYJDEiIDogJ1hc KFtePV0qXCk9J2AKKysgICAgYWNfb3B0YXJnPWBleHByICJYJDEiIDogJ1hbXj1dKj1cKC4qXCkn YAorKyAgICBhY19zaGlmdD06CisrICAgIDs7CisrICAqKQorKyAgICBhY19vcHRpb249JDEKKysg ICAgYWNfb3B0YXJnPSQyCisrICAgIGFjX3NoaWZ0PXNoaWZ0CisrICAgIDs7CisrICBlc2FjCisr CisrICBjYXNlICRhY19vcHRpb24gaW4KKysgICMgSGFuZGxpbmcgb2YgdGhlIG9wdGlvbnMuCisr ICAtcmVjaGVjayB8IC0tcmVjaGVjayB8IC0tcmVjaGVjIHwgLS1yZWNoZSB8IC0tcmVjaCB8IC0t cmVjIHwgLS1yZSB8IC0tcikKKysgICAgYWNfY3NfcmVjaGVjaz06IDs7CisrICAtLXZlcnNpb24g fCAtLXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAtLXZlciB8IC0tdmUgfCAtLXYgfCAtViAp CisrICAgICRhc19lY2hvICIkYWNfY3NfdmVyc2lvbiI7IGV4aXQgOzsKKysgIC0tZGVidWcgfCAt LWRlYnUgfCAtLWRlYiB8IC0tZGUgfCAtLWQgfCAtZCApCisrICAgIGRlYnVnPTogOzsKKysgIC0t ZmlsZSB8IC0tZmlsIHwgLS1maSB8IC0tZiApCisrICAgICRhY19zaGlmdAorKyAgICBjYXNlICRh Y19vcHRhcmcgaW4KKysgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNfZWNobyAiJGFjX29wdGFyZyIg fCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNhYworKyAgICBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgJyRhY19vcHRhcmcnIgorKyAgICBhY19uZWVkX2RlZmF1bHRzPWZh bHNlOzsKKysgIC0taGVhZGVyIHwgLS1oZWFkZSB8IC0taGVhZCB8IC0taGVhICkKKysgICAgJGFj X3NoaWZ0CisrICAgIGNhc2UgJGFjX29wdGFyZyBpbgorKyAgICAqXCcqKSBhY19vcHRhcmc9YCRh c19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OworKyAgICBl c2FjCisrICAgIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgJyRhY19vcHRhcmcnIgor KyAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKysgIC0taGUgfCAtLWgpCisrICAgICMgQ29u ZmxpY3QgYmV0d2VlbiAtLWhlbHAgYW5kIC0taGVhZGVyCisrICAgIHsgJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCisrVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4iID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisrICAt LWhlbHAgfCAtLWhlbCB8IC1oICkKKysgICAgJGFzX2VjaG8gIiRhY19jc191c2FnZSI7IGV4aXQg OzsKKysgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0t cSBcCisrICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8 IC0tc2kgfCAtLXMpCisrICAgIGFjX2NzX3NpbGVudD06IDs7CisrCisrICAjIFRoaXMgaXMgYW4g ZXJyb3IuCisrICAtKikgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9w dGlvbjogJDEKKytUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrCisrICAqKSBhY19jb25maWdfdGFyZ2V0 cz0iJGFjX2NvbmZpZ190YXJnZXRzICQxIgorKyAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZSA7 OworKworKyAgZXNhYworKyAgc2hpZnQKKytkb25lCisrCisrYWNfY29uZmlndXJlX2V4dHJhX2Fy Z3M9CisrCisraWYgJGFjX2NzX3NpbGVudDsgdGhlbgorKyAgZXhlYyA2Pi9kZXYvbnVsbAorKyAg YWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLXNpbGVu dCIKKytmaQorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFj X3dyaXRlX2ZhaWw9MQorK2lmIFwkYWNfY3NfcmVjaGVjazsgdGhlbgorKyAgc2V0IFggJyRTSEVM TCcgJyQwJyAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLW5v LWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgorKyAgc2hpZnQKKysgIFwkYXNfZWNobyAicnVubmluZyBD T05GSUdfU0hFTEw9JFNIRUxMIFwkKiIgPiY2CisrICBDT05GSUdfU0hFTEw9JyRTSEVMTCcKKysg IGV4cG9ydCBDT05GSUdfU0hFTEwKKysgIGV4ZWMgIlwkQCIKKytmaQorKworK19BQ0VPRgorK2Nh dCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKytleGVjIDU+ PmNvbmZpZy5sb2cKKyt7CisrICBlY2hvCisrICBzZWQgJ2g7cy8uLy0vZztzL14uLi4vIyMgLztz Ly4uLiQvICMjLztwO3g7cDt4JyA8PF9BU0JPWAorKyMjIFJ1bm5pbmcgJGFzX21lLiAjIworK19B U0JPWAorKyAgJGFzX2VjaG8gIiRhY19sb2ciCisrfSA+JjUKKysKKytfQUNFT0YKKytjYXQgPj4k Q09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKysjCisrIyBJTklULUNP TU1BTkRTCisrIworK0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIkYWNfYXV4 X2RpciIKKysKKysKKysjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0 YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAorKyMgaWYgQ0RQQVRIIGlzIHNldC4KKysodW5zZXQg Q0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICisrCisrc2VkX3F1b3RlX3N1 YnN0PSckc2VkX3F1b3RlX3N1YnN0JworK2RvdWJsZV9xdW90ZV9zdWJzdD0nJGRvdWJsZV9xdW90 ZV9zdWJzdCcKKytkZWxheV92YXJpYWJsZV9zdWJzdD0nJGRlbGF5X3ZhcmlhYmxlX3N1YnN0Jwor K2VuYWJsZV9zaGFyZWQ9J2AkRUNITyAiWCRlbmFibGVfc2hhcmVkIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX3N0YXRpYz0nYCRFQ0hPICJYJGVuYWJs ZV9zdGF0aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyttYWNy b192ZXJzaW9uPSdgJEVDSE8gIlgkbWFjcm9fdmVyc2lvbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK21hY3JvX3JldmlzaW9uPSdgJEVDSE8gIlgkbWFjcm9fcmV2 aXNpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwaWNfbW9k ZT0nYCRFQ0hPICJYJHBpY19tb2RlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrZW5hYmxlX2Zhc3RfaW5zdGFsbD0nYCRFQ0hPICJYJGVuYWJsZV9mYXN0X2luc3Rh bGwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytob3N0X2FsaWFz PSdgJEVDSE8gIlgkaG9zdF9hbGlhcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK2hvc3Q9J2AkRUNITyAiWCRob3N0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisraG9zdF9vcz0nYCRFQ0hPICJYJGhvc3Rfb3MiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytidWlsZF9hbGlhcz0nYCRFQ0hPICJYJGJ1 aWxkX2FsaWFzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYnVp bGQ9J2AkRUNITyAiWCRidWlsZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK2J1aWxkX29zPSdgJEVDSE8gIlgkYnVpbGRfb3MiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKKytTRUQ9J2AkRUNITyAiWCRTRUQiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytYc2VkPSdgJEVDSE8gIlgkWHNlZCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0dSRVA9J2AkRUNITyAiWCRHUkVQ IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrRUdSRVA9J2AkRUNI TyAiWCRFR1JFUCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0ZH UkVQPSdgJEVDSE8gIlgkRkdSRVAiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytMRD0nYCRFQ0hPICJYJExEIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrTk09J2AkRUNITyAiWCROTSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK0xOX1M9J2AkRUNITyAiWCRMTl9TIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbWF4X2NtZF9sZW49J2AkRUNITyAiWCRtYXhfY21kX2xl biIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FjX29iamV4dD0n YCRFQ0hPICJYJGFjX29iamV4dCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK2V4ZWV4dD0nYCRFQ0hPICJYJGV4ZWV4dCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2x0X3Vuc2V0PSdgJEVDSE8gIlgkbHRfdW5zZXQiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9TUDJOTD0nYCRFQ0hPICJYJGx0 X1NQMk5MIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfTkwy U1A9J2AkRUNITyAiWCRsdF9OTDJTUCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK3JlbG9hZF9mbGFnPSdgJEVDSE8gIlgkcmVsb2FkX2ZsYWciIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytyZWxvYWRfY21kcz0nYCRFQ0hPICJYJHJl bG9hZF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrT0JK RFVNUD0nYCRFQ0hPICJYJE9CSkRVTVAiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytkZXBsaWJzX2NoZWNrX21ldGhvZD0nYCRFQ0hPICJYJGRlcGxpYnNfY2hlY2tf bWV0aG9kIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZmlsZV9t YWdpY19jbWQ9J2AkRUNITyAiWCRmaWxlX21hZ2ljX2NtZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK0FSPSdgJEVDSE8gIlgkQVIiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytBUl9GTEFHUz0nYCRFQ0hPICJYJEFSX0ZMQUdTIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrU1RSSVA9J2AkRUNITyAi WCRTVFJJUCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK1JBTkxJ Qj0nYCRFQ0hPICJYJFJBTkxJQiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIlgkb2xkX3Bvc3RpbnN0YWxsX2Nt ZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvbGRfcG9zdHVu aW5zdGFsbF9jbWRzPSdgJEVDSE8gIlgkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2NtZHM9J2AkRUNI TyAiWCRvbGRfYXJjaGl2ZV9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrQ0M9J2AkRUNITyAiWCRDQyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK0NGTEFHUz0nYCRFQ0hPICJYJENGTEFHUyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyPSdgJEVDSE8gIlgkY29tcGlsZXIiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytHQ0M9J2AkRUNITyAiWCRH Q0MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF9waXBlPSdgJEVDSE8gIlgkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlw ZSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NkZWNsPSdgJEVDSE8gIlgkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf dG9fY2RlY2wiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0nYCRFQ0hPICJYJGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2Fk ZHJlc3NfbGliX3ByZWZpeD0nYCRFQ0hPICJYJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2Nf bmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytvYmpkaXI9J2AkRUNITyAiWCRvYmpkaXIiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKKytTSEVMTD0nYCRFQ0hPICJYJFNIRUxMIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrRUNITz0nYCRFQ0hPICJYJEVDSE8iIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytNQUdJQ19DTUQ9J2AkRUNI TyAiWCRNQUdJQ19DTUQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nYCRFQ0hPICJYJGx0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl93bD0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJf d2wiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2Nv bXBpbGVyX3BpYz0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfcGljIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9J2Ak RUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vPSdgJEVDSE8gIlgkbHRf Y3ZfcHJvZ19jb21waWxlcl9jX28iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytuZWVkX2xvY2tzPSdgJEVDSE8gIlgkbmVlZF9sb2NrcyIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0RTWU1VVElMPSdgJEVDSE8gIlgkRFNZTVVUSUwi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytOTUVESVQ9J2AkRUNI TyAiWCROTUVESVQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytM SVBPPSdgJEVDSE8gIlgkTElQTyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK09UT09MPSdgJEVDSE8gIlgkT1RPT0wiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytPVE9PTDY0PSdgJEVDSE8gIlgkT1RPT0w2NCIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2xpYmV4dD0nYCRFQ0hPICJYJGxpYmV4dCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3NocmV4dF9jbWRzPSdg JEVDSE8gIlgkc2hyZXh0X2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytleHRyYWN0X2V4cHN5bXNfY21kcz0nYCRFQ0hPICJYJGV4dHJhY3RfZXhwc3ltc19j bWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYXJjaGl2ZV9j bWRzX25lZWRfbGM9J2AkRUNITyAiWCRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2VuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNf cnVudGltZXM9J2AkRUNITyAiWCRlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjPSdgJEVDSE8gIlgkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9 J2AkRUNITyAiWCR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX25lZWRzX29iamVjdD0nYCRFQ0hPICJYJGNv bXBpbGVyX25lZWRzX29iamVjdCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J2AkRUNITyAiWCRvbGRfYXJjaGl2ZV9m cm9tX25ld19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr b2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9J2AkRUNITyAiWCRvbGRfYXJjaGl2ZV9mcm9t X2V4cHN5bXNfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K2FyY2hpdmVfY21kcz0nYCRFQ0hPICJYJGFyY2hpdmVfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfZXhwc3ltX2NtZHM9J2AkRUNITyAiWCRh cmNoaXZlX2V4cHN5bV9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrbW9kdWxlX2NtZHM9J2AkRUNITyAiWCRtb2R1bGVfY21kcyIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK21vZHVsZV9leHBzeW1fY21kcz0nYCRFQ0hPICJY JG1vZHVsZV9leHBzeW1fY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK3dpdGhfZ251X2xkPSdgJEVDSE8gIlgkd2l0aF9nbnVfbGQiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythbGxvd191bmRlZmluZWRfZmxhZz0nYCRFQ0hP ICJYJGFsbG93X3VuZGVmaW5lZF9mbGFnIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrbm9fdW5kZWZpbmVkX2ZsYWc9J2AkRUNITyAiWCRub191bmRlZmluZWRfZmxh ZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19sZD0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2RpcmVjdD0nYCRFQ0hPICJY JGhhcmRjb2RlX2RpcmVjdCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JworK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0nYCRFQ0hPICJYJGhhcmRjb2RlX2RpcmVjdF9h YnNvbHV0ZSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRj b2RlX21pbnVzX0w9J2AkRUNITyAiWCRoYXJkY29kZV9taW51c19MIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0nYCRFQ0hP ICJYJGhhcmRjb2RlX3NobGlicGF0aF92YXIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytoYXJkY29kZV9hdXRvbWF0aWM9J2AkRUNITyAiWCRoYXJkY29kZV9hdXRv bWF0aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytpbmhlcml0 X3JwYXRoPSdgJEVDSE8gIlgkaW5oZXJpdF9ycGF0aCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2xpbmtfYWxsX2RlcGxpYnM9J2AkRUNITyAiWCRsaW5rX2FsbF9k ZXBsaWJzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZml4X3Ny Y2ZpbGVfcGF0aD0nYCRFQ0hPICJYJGZpeF9zcmNmaWxlX3BhdGgiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythbHdheXNfZXhwb3J0X3N5bWJvbHM9J2AkRUNITyAi WCRhbHdheXNfZXhwb3J0X3N5bWJvbHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytleHBvcnRfc3ltYm9sc19jbWRzPSdgJEVDSE8gIlgkZXhwb3J0X3N5bWJvbHNf Y21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2V4Y2x1ZGVf ZXhwc3ltcz0nYCRFQ0hPICJYJGV4Y2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK2luY2x1ZGVfZXhwc3ltcz0nYCRFQ0hPICJYJGluY2x1ZGVf ZXhwc3ltcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3ByZWxp bmtfY21kcz0nYCRFQ0hPICJYJHByZWxpbmtfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2ZpbGVfbGlzdF9zcGVjPSdgJEVDSE8gIlgkZmlsZV9saXN0X3Nw ZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyt2YXJpYWJsZXNf c2F2ZWRfZm9yX3JlbGluaz0nYCRFQ0hPICJYJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbmVlZF9saWJfcHJlZml4 PSdgJEVDSE8gIlgkbmVlZF9saWJfcHJlZml4IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrbmVlZF92ZXJzaW9uPSdgJEVDSE8gIlgkbmVlZF92ZXJzaW9uIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrdmVyc2lvbl90eXBlPSdgJEVD SE8gIlgkdmVyc2lvbl90eXBlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrcnVucGF0aF92YXI9J2AkRUNITyAiWCRydW5wYXRoX3ZhciIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3NobGlicGF0aF92YXI9J2AkRUNITyAiWCRzaGxp YnBhdGhfdmFyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSdgJEVDSE8gIlgkc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbGlibmFt ZV9zcGVjPSdgJEVDSE8gIlgkbGlibmFtZV9zcGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrbGlicmFyeV9uYW1lc19zcGVjPSdgJEVDSE8gIlgkbGlicmFyeV9u YW1lc19zcGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrc29u YW1lX3NwZWM9J2AkRUNITyAiWCRzb25hbWVfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK3Bvc3RpbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRwb3N0aW5zdGFs bF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcG9zdHVu aW5zdGFsbF9jbWRzPSdgJEVDSE8gIlgkcG9zdHVuaW5zdGFsbF9jbWRzIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZmluaXNoX2NtZHM9J2AkRUNITyAiWCRmaW5p c2hfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2Zpbmlz aF9ldmFsPSdgJEVDSE8gIlgkZmluaXNoX2V2YWwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9pbnRvX2xpYnM9J2AkRUNITyAiWCRoYXJkY29kZV9p bnRvX2xpYnMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9J2AkRUNITyAiWCRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0nYCRFQ0hPICJYJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfYWN0aW9uPSdg JEVDSE8gIlgkaGFyZGNvZGVfYWN0aW9uIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrZW5hYmxlX2Rsb3Blbj0nYCRFQ0hPICJYJGVuYWJsZV9kbG9wZW4iIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytlbmFibGVfZGxvcGVuX3NlbGY9 J2AkRUNITyAiWCRlbmFibGVfZGxvcGVuX3NlbGYiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSdgJEVDSE8gIlgkZW5h YmxlX2Rsb3Blbl9zZWxmX3N0YXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK29sZF9zdHJpcGxpYj0nYCRFQ0hPICJYJG9sZF9zdHJpcGxpYiIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3N0cmlwbGliPSdgJEVDSE8gIlgkc3Ry aXBsaWIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytjb21waWxl cl9saWJfc2VhcmNoX2RpcnM9J2AkRUNITyAiWCRjb21waWxlcl9saWJfc2VhcmNoX2RpcnMiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwcmVkZXBfb2JqZWN0cz0n YCRFQ0hPICJYJHByZWRlcF9vYmplY3RzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrcG9zdGRlcF9vYmplY3RzPSdgJEVDSE8gIlgkcG9zdGRlcF9vYmplY3RzIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJlZGVwcz0nYCRFQ0hP ICJYJHByZWRlcHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytw b3N0ZGVwcz0nYCRFQ0hPICJYJHBvc3RkZXBzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSdgJEVDSE8gIlgkY29tcGls ZXJfbGliX3NlYXJjaF9wYXRoIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrTERfQ1hYPSdgJEVDSE8gIlgkTERfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrb2xkX2FyY2hpdmVfY21kc19DWFg9J2AkRUNITyAiWCRvbGRfYXJj aGl2ZV9jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K2NvbXBpbGVyX0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0dDQ19DWFg9J2AkRUNITyAiWCRHQ0NfQ1hYIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl9u b19idWlsdGluX2ZsYWdfQ1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGlu X2ZsYWdfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRf cHJvZ19jb21waWxlcl93bF9DWFg9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWD0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWCIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NY WD0nYCRFQ0hPICJYJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfY21kc19uZWVkX2xjX0NYWD0nYCRF Q0hPICJYJGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2VuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hY PSdgJEVDSE8gIlgkZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFgiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleHBvcnRfZHluYW1pY19mbGFn X3NwZWNfQ1hYPSdgJEVDSE8gIlgkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3dob2xlX2FyY2hpdmVfZmxhZ19z cGVjX0NYWD0nYCRFQ0hPICJYJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX25lZWRzX29iamVjdF9D WFg9J2AkRUNITyAiWCRjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFg9 J2AkRUNITyAiWCRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz X0NYWD0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfY21kc19DWFg9J2Ak RUNITyAiWCRhcmNoaXZlX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2AkRUNITyAiWCRhcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K21vZHVsZV9jbWRzX0NYWD0nYCRFQ0hPICJYJG1vZHVsZV9jbWRzX0NYWCIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK21vZHVsZV9leHBzeW1fY21kc19DWFg9J2Ak RUNITyAiWCRtb2R1bGVfZXhwc3ltX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrd2l0aF9nbnVfbGRfQ1hYPSdgJEVDSE8gIlgkd2l0aF9nbnVfbGRf Q1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYWxsb3dfdW5k ZWZpbmVkX2ZsYWdfQ1hYPSdgJEVDSE8gIlgkYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbm9fdW5kZWZpbmVkX2ZsYWdf Q1hYPSdgJEVDSE8gIlgkbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9J2Ak RUNITyAiWCRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hY PSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfZGlyZWN0X0NYWD0nYCRF Q0hPICJYJGhhcmRjb2RlX2RpcmVjdF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPSdgJEVDSE8gIlgkaGFy ZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2hhcmRjb2RlX21pbnVzX0xfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfbWlu dXNfTF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJk Y29kZV9zaGxpYnBhdGhfdmFyX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX3NobGlicGF0aF92YXJf Q1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVf YXV0b21hdGljX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2F1dG9tYXRpY19DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytpbmhlcml0X3JwYXRoX0NYWD0nYCRF Q0hPICJYJGluaGVyaXRfcnBhdGhfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrbGlua19hbGxfZGVwbGlic19DWFg9J2AkRUNITyAiWCRsaW5rX2FsbF9kZXBs aWJzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpeF9z cmNmaWxlX3BhdGhfQ1hYPSdgJEVDSE8gIlgkZml4X3NyY2ZpbGVfcGF0aF9DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythbHdheXNfZXhwb3J0X3N5bWJvbHNf Q1hYPSdgJEVDSE8gIlgkYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSdgJEVD SE8gIlgkZXhwb3J0X3N5bWJvbHNfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytleGNsdWRlX2V4cHN5bXNfQ1hYPSdgJEVDSE8gIlgkZXhjbHVkZV9l eHBzeW1zX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2lu Y2x1ZGVfZXhwc3ltc19DWFg9J2AkRUNITyAiWCRpbmNsdWRlX2V4cHN5bXNfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJlbGlua19jbWRzX0NYWD0nYCRF Q0hPICJYJHByZWxpbmtfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytmaWxlX2xpc3Rfc3BlY19DWFg9J2AkRUNITyAiWCRmaWxlX2xpc3Rfc3BlY19D WFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9h Y3Rpb25fQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfYWN0aW9uX0NYWCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFg9 J2AkRUNITyAiWCRjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJlZGVwX29iamVjdHNfQ1hYPSdgJEVDSE8gIlgk cHJlZGVwX29iamVjdHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrcG9zdGRlcF9vYmplY3RzX0NYWD0nYCRFQ0hPICJYJHBvc3RkZXBfb2JqZWN0c19DWFgi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwcmVkZXBzX0NYWD0n YCRFQ0hPICJYJHByZWRlcHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrcG9zdGRlcHNfQ1hYPSdgJEVDSE8gIlgkcG9zdGRlcHNfQ1hYIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRo X0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKysKKytMVENDPSckTFRDQycKKytMVENGTEFH Uz0nJExUQ0ZMQUdTJworK2NvbXBpbGVyPSckY29tcGlsZXJfREVGQVVMVCcKKysKKysjIFF1b3Rl IGV2YWxlZCBzdHJpbmdzLgorK2ZvciB2YXIgaW4gU0VEIFwKKytHUkVQIFwKKytFR1JFUCBcCisr RkdSRVAgXAorK0xEIFwKKytOTSBcCisrTE5fUyBcCisrbHRfU1AyTkwgXAorK2x0X05MMlNQIFwK KytyZWxvYWRfZmxhZyBcCisrT0JKRFVNUCBcCisrZGVwbGlic19jaGVja19tZXRob2QgXAorK2Zp bGVfbWFnaWNfY21kIFwKKytBUiBcCisrQVJfRkxBR1MgXAorK1NUUklQIFwKKytSQU5MSUIgXAor K0NDIFwKKytDRkxBR1MgXAorK2NvbXBpbGVyIFwKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9w aXBlIFwKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCBcCisrbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MgXAorK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXggXAorK1NIRUxMIFwKKytFQ0hPIFwKKytsdF9w cm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyBcCisrbHRfcHJvZ19jb21waWxlcl93bCBcCisr bHRfcHJvZ19jb21waWxlcl9waWMgXAorK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljIFwKKytsdF9j dl9wcm9nX2NvbXBpbGVyX2NfbyBcCisrbmVlZF9sb2NrcyBcCisrRFNZTVVUSUwgXAorK05NRURJ VCBcCisrTElQTyBcCisrT1RPT0wgXAorK09UT09MNjQgXAorK3NocmV4dF9jbWRzIFwKKytleHBv cnRfZHluYW1pY19mbGFnX3NwZWMgXAorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjIFwKKytjb21w aWxlcl9uZWVkc19vYmplY3QgXAorK3dpdGhfZ251X2xkIFwKKythbGxvd191bmRlZmluZWRfZmxh ZyBcCisrbm9fdW5kZWZpbmVkX2ZsYWcgXAorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgXAor K2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQgXAorK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IgXAorK2ZpeF9zcmNmaWxlX3BhdGggXAorK2V4Y2x1ZGVfZXhwc3ltcyBcCisraW5jbHVkZV9l eHBzeW1zIFwKKytmaWxlX2xpc3Rfc3BlYyBcCisrdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsg XAorK2xpYm5hbWVfc3BlYyBcCisrbGlicmFyeV9uYW1lc19zcGVjIFwKKytzb25hbWVfc3BlYyBc CisrZmluaXNoX2V2YWwgXAorK29sZF9zdHJpcGxpYiBcCisrc3RyaXBsaWIgXAorK2NvbXBpbGVy X2xpYl9zZWFyY2hfZGlycyBcCisrcHJlZGVwX29iamVjdHMgXAorK3Bvc3RkZXBfb2JqZWN0cyBc CisrcHJlZGVwcyBcCisrcG9zdGRlcHMgXAorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCBcCisr TERfQ1hYIFwKKytjb21waWxlcl9DWFggXAorK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnX0NYWCBcCisrbHRfcHJvZ19jb21waWxlcl93bF9DWFggXAorK2x0X3Byb2dfY29tcGlsZXJf cGljX0NYWCBcCisrbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYIFwKKytsdF9jdl9wcm9nX2Nv bXBpbGVyX2Nfb19DWFggXAorK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFggXAorK3dob2xl X2FyY2hpdmVfZmxhZ19zcGVjX0NYWCBcCisrY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWCBcCisr d2l0aF9nbnVfbGRfQ1hYIFwKKythbGxvd191bmRlZmluZWRfZmxhZ19DWFggXAorK25vX3VuZGVm aW5lZF9mbGFnX0NYWCBcCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFggXAorK2hhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYIFwKKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0NYWCBcCisrZml4X3NyY2ZpbGVfcGF0aF9DWFggXAorK2V4Y2x1ZGVfZXhwc3ltc19DWFggXAor K2luY2x1ZGVfZXhwc3ltc19DWFggXAorK2ZpbGVfbGlzdF9zcGVjX0NYWCBcCisrY29tcGlsZXJf bGliX3NlYXJjaF9kaXJzX0NYWCBcCisrcHJlZGVwX29iamVjdHNfQ1hYIFwKKytwb3N0ZGVwX29i amVjdHNfQ1hYIFwKKytwcmVkZXBzX0NYWCBcCisrcG9zdGRlcHNfQ1hYIFwKKytjb21waWxlcl9s aWJfc2VhcmNoX3BhdGhfQ1hYOyBkbworKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxc XFwkXCR2YXIiXGAgaW4KKysgICAgKltcXFxcXFxcYFxcIlxcXCRdKikKKysgICAgICBldmFsICJs dF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAt ZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisrICAgICAgOzsKKysgICAg KikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKysgICAg ICA7OworKyAgICBlc2FjCisrZG9uZQorKworKyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQg c3RyaW5ncy4KKytmb3IgdmFyIGluIHJlbG9hZF9jbWRzIFwKKytvbGRfcG9zdGluc3RhbGxfY21k cyBcCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcyBcCisrb2xkX2FyY2hpdmVfY21kcyBcCisrZXh0 cmFjdF9leHBzeW1zX2NtZHMgXAorK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMgXAorK29sZF9h cmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIFwKKythcmNoaXZlX2NtZHMgXAorK2FyY2hpdmVfZXhw c3ltX2NtZHMgXAorK21vZHVsZV9jbWRzIFwKKyttb2R1bGVfZXhwc3ltX2NtZHMgXAorK2V4cG9y dF9zeW1ib2xzX2NtZHMgXAorK3ByZWxpbmtfY21kcyBcCisrcG9zdGluc3RhbGxfY21kcyBcCisr cG9zdHVuaW5zdGFsbF9jbWRzIFwKKytmaW5pc2hfY21kcyBcCisrc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIFwKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCisrb2xkX2FyY2hpdmVfY21k c19DWFggXAorK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hYIFwKKytvbGRfYXJjaGl2ZV9m cm9tX2V4cHN5bXNfY21kc19DWFggXAorK2FyY2hpdmVfY21kc19DWFggXAorK2FyY2hpdmVfZXhw c3ltX2NtZHNfQ1hYIFwKKyttb2R1bGVfY21kc19DWFggXAorK21vZHVsZV9leHBzeW1fY21kc19D WFggXAorK2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYIFwKKytwcmVsaW5rX2NtZHNfQ1hYOyBkbwor KyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KKysgICAgKltc XFxcXFxcYFxcIlxcXCRdKikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRF Q0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1 YnN0XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJGRlbGF5X3Zhcmlh YmxlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBldmFs ICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKysgICAgICA7OworKyAgICBlc2Fj CisrZG9uZQorKworKyMgRml4LXVwIGZhbGxiYWNrIGVjaG8gaWYgaXQgd2FzIG1hbmdsZWQgYnkg dGhlIGFib3ZlIHF1b3RpbmcgcnVsZXMuCisrY2FzZSBcJGx0X0VDSE8gaW4KKysqJ1xcXCQwIC0t ZmFsbGJhY2stZWNobyInKSAgbHRfRUNITz1cYFwkRUNITyAiWFwkbHRfRUNITyIgfCBcJFhzZWQg LWUgJ3MvXFxcXFxcXFxcXFxcXFxcJDAgLS1mYWxsYmFjay1lY2hvIlwkL1wkMCAtLWZhbGxiYWNr LWVjaG8iLydcYAorKyAgOzsKKytlc2FjCisrCisrYWNfYXV4X2Rpcj0nJGFjX2F1eF9kaXInCisr eHNpX3NoZWxsPSckeHNpX3NoZWxsJworK2x0X3NoZWxsX2FwcGVuZD0nJGx0X3NoZWxsX2FwcGVu ZCcKKysKKysjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlv bnMgd2hpY2ggYWxsb3cgb3VyCisrIyBjb21tYW5kcyB0aHJvdWdoIHdpdGhvdXQgcmVtb3ZhbCBv ZiBcIGVzY2FwZXMgSU5JVC4KKytpZiB0ZXN0IC1uICJcJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRo ZW4KKysgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2ZpCisrCisrCisrICAgIFBBQ0tBR0U9JyRQ QUNLQUdFJworKyAgICBWRVJTSU9OPSckVkVSU0lPTicKKysgICAgVElNRVNUQU1QPSckVElNRVNU QU1QJworKyAgICBSTT0nJFJNJworKyAgICBvZmlsZT0nJG9maWxlJworKworKworKworKworKwor KworK19BQ0VPRgorKworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0 ZV9mYWlsPTEKKysKKysjIEhhbmRsaW5nIG9mIGFyZ3VtZW50cy4KKytmb3IgYWNfY29uZmlnX3Rh cmdldCBpbiAkYWNfY29uZmlnX3RhcmdldHMKKytkbworKyAgY2FzZSAkYWNfY29uZmlnX3Rhcmdl dCBpbgorKyAgICAic29jaS9jb25maWcuaCIpIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURF UlMgc29jaS9jb25maWcuaCIgOzsKKysgICAgImRlcGZpbGVzIikgQ09ORklHX0NPTU1BTkRTPSIk Q09ORklHX0NPTU1BTkRTIGRlcGZpbGVzIiA7OworKyAgICAibGlidG9vbCIpIENPTkZJR19DT01N QU5EUz0iJENPTkZJR19DT01NQU5EUyBsaWJ0b29sIiA7OworKyAgICAiTWFrZWZpbGUiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgTWFrZWZpbGUiIDs7CisrICAgICJzb2NpLWNvbmZpZyIp IENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpLWNvbmZpZyIgOzsKKysgICAgInNvY2ku cGMiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS5wYyIgOzsKKysgICAgInNvY2ku c3BlYyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpLnNwZWMiIDs7CisrICAgICJz b2NpL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvTWFrZWZpbGUi IDs7CisrICAgICJzb2NpL2NvcmUvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM RVMgc29jaS9jb3JlL01ha2VmaWxlIiA7OworKyAgICAic29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUi KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUiIDs7 CisrICAgICJzb2NpL2JhY2tlbmRzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIHNvY2kvYmFja2VuZHMvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL215c3Fs L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvbXlz cWwvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUi KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01h a2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmls ZSIgOzsKKysgICAgInNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01h a2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUiKSBDT05GSUdf RklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUiIDs7Cisr ICAgICJzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUiIDs7CisrICAg ICJtYW4vTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgbWFuL01ha2VmaWxl IiA7OworKyAgICAiZG9jL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGRv Yy9NYWtlZmlsZSIgOzsKKysgICAgImRvYy9iYWNrZW5kcy9NYWtlZmlsZSIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBkb2MvYmFja2VuZHMvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9N YWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9NYWtlZmlsZSIgOzsK KysgICAgImJ1aWxkL3VuaXgvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg YnVpbGQvdW5peC9NYWtlZmlsZSIgOzsKKysgICAgImJ1aWxkL21zdmM4MC9NYWtlZmlsZSIpIENP TkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvTWFrZWZpbGUiIDs7CisrICAg ICJidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9tc3ZjODAvbGliL01h a2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL21zdmM4MC9saWIvTWFr ZWZpbGUiIDs7CisrCisrICAqKSB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog aW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiYyO30KKysg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworKyAgZXNhYworK2RvbmUKKysKKysKKysjIElm IHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8gc3BlY2lmeSB0aGUgaXRlbXMg dG8gaW5zdGFudGlhdGUsCisrIyB0aGVuIHRoZSBlbnZ2YXIgaW50ZXJmYWNlIGlzIHVzZWQuICBT ZXQgb25seSB0aG9zZSB0aGF0IGFyZSBub3QuCisrIyBXZSB1c2UgdGhlIGxvbmcgZm9ybSBmb3Ig dGhlIGRlZmF1bHQgYXNzaWdubWVudCBiZWNhdXNlIG9mIGFuIGV4dHJlbWVseQorKyMgYml6YXJy ZSBidWcgb24gU3VuT1MgNC4xLjMuCisraWYgJGFjX25lZWRfZGVmYXVsdHM7IHRoZW4KKysgIHRl c3QgIiR7Q09ORklHX0ZJTEVTK3NldH0iID0gc2V0IHx8IENPTkZJR19GSUxFUz0kY29uZmlnX2Zp bGVzCisrICB0ZXN0ICIke0NPTkZJR19IRUFERVJTK3NldH0iID0gc2V0IHx8IENPTkZJR19IRUFE RVJTPSRjb25maWdfaGVhZGVycworKyAgdGVzdCAiJHtDT05GSUdfQ09NTUFORFMrc2V0fSIgPSBz ZXQgfHwgQ09ORklHX0NPTU1BTkRTPSRjb25maWdfY29tbWFuZHMKKytmaQorKworKyMgSGF2ZSBh IHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIGNvbnZlbmllbmNlLiAgTWFrZSBpdCBpbiB0aGUgYnVp bGQgdHJlZQorKyMgc2ltcGx5IGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVhc29uIGFnYWluc3QgaGF2 aW5nIGl0IGhlcmUsIGFuZCBpbiBhZGRpdGlvbiwKKysjIGNyZWF0aW5nIGFuZCBtb3ZpbmcgZmls ZXMgZnJvbSAvdG1wIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMuCisrIyBIb29rIGZvciBp dHMgcmVtb3ZhbCB1bmxlc3MgZGVidWdnaW5nLgorKyMgTm90ZSB0aGF0IHRoZXJlIGlzIGEgc21h bGwgd2luZG93IGluIHdoaWNoIHRoZSBkaXJlY3Rvcnkgd2lsbCBub3QgYmUgY2xlYW5lZDoKKysj IGFmdGVyIGl0cyBjcmVhdGlvbiBidXQgYmVmb3JlIGl0cyBuYW1lIGhhcyBiZWVuIGFzc2lnbmVk IHRvIGAkdG1wJy4KKyskZGVidWcgfHwKKyt7CisrICB0bXA9CisrICB0cmFwICdleGl0X3N0YXR1 cz0kPworKyAgeyB0ZXN0IC16ICIkdG1wIiB8fCB0ZXN0ICEgLWQgIiR0bXAiIHx8IHJtIC1mciAi JHRtcCI7IH0gJiYgZXhpdCAkZXhpdF9zdGF0dXMKKysnIDAKKysgIHRyYXAgJ3sgKGV4aXQgMSk7 IGV4aXQgMTsgfScgMSAyIDEzIDE1CisrfQorKyMgQ3JlYXRlIGEgKHNlY3VyZSkgdG1wIGRpcmVj dG9yeSBmb3IgdG1wIGZpbGVzLgorKworK3sKKysgIHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAg LWQgIi4vY29uZlhYWFhYWCIpIDI+L2Rldi9udWxsYCAmJgorKyAgdGVzdCAtbiAiJHRtcCIgJiYg dGVzdCAtZCAiJHRtcCIKKyt9ICB8fAorK3sKKysgIHRtcD0uL2NvbmYkJC0kUkFORE9NCisrICAo dW1hc2sgMDc3ICYmIG1rZGlyICIkdG1wIikKKyt9IHx8CisreworKyAgICRhc19lY2hvICIkYXNf bWU6IGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIC4iID4mMgorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfQorK30KKysKKysjIFNldCB1cCB0aGUgc2NyaXB0cyBmb3IgQ09O RklHX0ZJTEVTIHNlY3Rpb24uCisrIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZW0gaWYgdGhlcmUg YXJlIG5vIENPTkZJR19GSUxFUy4KKysjIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2l0aCBg Li9jb25maWcuc3RhdHVzIGNvbmZpZy5oJy4KKytpZiB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIjsg dGhlbgorKworKworK2FjX2NyPScNJworK2FjX2NzX2F3a19jcj1gJEFXSyAnQkVHSU4geyBwcmlu dCAiYVxyYiIgfScgPC9kZXYvbnVsbCAyPi9kZXYvbnVsbGAKKytpZiB0ZXN0ICIkYWNfY3NfYXdr X2NyIiA9ICJhJHthY19jcn1iIjsgdGhlbgorKyAgYWNfY3NfYXdrX2NyPSdcXHInCisrZWxzZQor KyAgYWNfY3NfYXdrX2NyPSRhY19jcgorK2ZpCisrCisrZWNobyAnQkVHSU4geycgPiIkdG1wL3N1 YnMxLmF3ayIgJiYKKytfQUNFT0YKKysKKysKKyt7CisrICBlY2hvICJjYXQgPmNvbmYkJHN1YnMu YXdrIDw8X0FDRU9GIiAmJgorKyAgZWNobyAiJGFjX3N1YnN0X3ZhcnMiIHwgc2VkICdzLy4qLyYh JCYkYWNfZGVsaW0vJyAmJgorKyAgZWNobyAiX0FDRU9GIgorK30gPmNvbmYkJHN1YnMuc2ggfHwK KysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAk Q09ORklHX1NUQVRVUyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBt YWtlICRDT05GSUdfU1RBVFVTIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQor K2FjX2RlbGltX251bT1gZWNobyAiJGFjX3N1YnN0X3ZhcnMiIHwgZ3JlcCAtYyAnJCdgCisrYWNf ZGVsaW09JyUhXyEjICcKKytmb3IgYWNfbGFzdF90cnkgaW4gZmFsc2UgZmFsc2UgZmFsc2UgZmFs c2UgZmFsc2UgOjsgZG8KKysgIC4gLi9jb25mJCRzdWJzLnNoIHx8CisrICAgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RB VFVTIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworKyAgYWNfZGVsaW1f bj1gc2VkIC1uICJzLy4qJGFjX2RlbGltXCQvWC9wIiBjb25mJCRzdWJzLmF3ayB8IGdyZXAgLWMg WGAKKysgIGlmIHRlc3QgJGFjX2RlbGltX24gPSAkYWNfZGVsaW1fbnVtOyB0aGVuCisrICAgIGJy ZWFrCisrICBlbGlmICRhY19sYXN0X3RyeTsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgPiYy O30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGVsc2UKKysgICAgYWNfZGVsaW09 IiRhY19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIKKysgIGZpCisrZG9uZQorK3JtIC1m IGNvbmYkJHN1YnMuc2gKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193 cml0ZV9mYWlsPTEKKytjYXQgPj4iXCR0bXAvc3ViczEuYXdrIiA8PFxcX0FDQVdLICYmCisrX0FD RU9GCisrc2VkIC1uICcKKytoCisrcy9eL1NbIi87IHMvIS4qLyJdPS8KKytwCisrZworK3MvXlte IV0qIS8vCisrOnJlcGwKKyt0IHJlcGwKKytzLyciJGFjX2RlbGltIickLy8KKyt0IGRlbGltCisr Om5sCisraAorK3MvXCguXHsxNDhcfVwpLiovXDEvCisrdCBtb3JlMQorK3MvWyJcXF0vXFwmL2c7 IHMvXi8iLzsgcy8kL1xcbiJcXC8KKytwCisrbgorK2IgcmVwbAorKzptb3JlMQorK3MvWyJcXF0v XFwmL2c7IHMvXi8iLzsgcy8kLyJcXC8KKytwCisrZworK3MvLlx7MTQ4XH0vLworK3QgbmwKKys6 ZGVsaW0KKytoCisrcy9cKC5cezE0OFx9XCkuKi9cMS8KKyt0IG1vcmUyCisrcy9bIlxcXS9cXCYv Zzsgcy9eLyIvOyBzLyQvIi8KKytwCisrYgorKzptb3JlMgorK3MvWyJcXF0vXFwmL2c7IHMvXi8i Lzsgcy8kLyJcXC8KKytwCisrZworK3MvLlx7MTQ4XH0vLworK3QgZGVsaW0KKysnIDxjb25mJCRz dWJzLmF3ayB8IHNlZCAnCisrL15bXiIiXS97CisrICBOCisrICBzL1xuLy8KKyt9CisrJyA+PiRD T05GSUdfU1RBVFVTIHx8IGFjX3dyaXRlX2ZhaWw9MQorK3JtIC1mIGNvbmYkJHN1YnMuYXdrCisr Y2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrX0FDQVdL CisrY2F0ID4+IlwkdG1wL3N1YnMxLmF3ayIgPDxfQUNBV0sgJiYKKysgIGZvciAoa2V5IGluIFMp IFNfaXNfc2V0W2tleV0gPSAxCisrICBGUyA9ICIHIgorKworK30KKyt7CisrICBsaW5lID0gJCAw CisrICBuZmllbGRzID0gc3BsaXQobGluZSwgZmllbGQsICJAIikKKysgIHN1YnN0ZWQgPSAwCisr ICBsZW4gPSBsZW5ndGgoZmllbGRbMV0pCisrICBmb3IgKGkgPSAyOyBpIDwgbmZpZWxkczsgaSsr KSB7CisrICAgIGtleSA9IGZpZWxkW2ldCisrICAgIGtleWxlbiA9IGxlbmd0aChrZXkpCisrICAg IGlmIChTX2lzX3NldFtrZXldKSB7CisrICAgICAgdmFsdWUgPSBTW2tleV0KKysgICAgICBsaW5l ID0gc3Vic3RyKGxpbmUsIDEsIGxlbikgIiIgdmFsdWUgIiIgc3Vic3RyKGxpbmUsIGxlbiArIGtl eWxlbiArIDMpCisrICAgICAgbGVuICs9IGxlbmd0aCh2YWx1ZSkgKyBsZW5ndGgoZmllbGRbKytp XSkKKysgICAgICBzdWJzdGVkID0gMQorKyAgICB9IGVsc2UKKysgICAgICBsZW4gKz0gMSArIGtl eWxlbgorKyAgfQorKworKyAgcHJpbnQgbGluZQorK30KKysKKytfQUNBV0sKKytfQUNFT0YKKytj YXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisraWYgc2Vk ICJzLyRhY19jci8vIiA8IC9kZXYvbnVsbCA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBzZWQg InMvJGFjX2NyXCQvLzsgcy8kYWNfY3IvJGFjX2NzX2F3a19jci9nIgorK2Vsc2UKKysgIGNhdAor K2ZpIDwgIiR0bXAvc3ViczEuYXdrIiA+ICIkdG1wL3N1YnMuYXdrIiBcCisrICB8fCB7IHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IHNldHVwIGNvbmZpZyBmaWxl cyBtYWNoaW5lcnkiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3Qgc2V0 dXAgY29uZmlnIGZpbGVzIG1hY2hpbmVyeSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KKytfQUNFT0YKKysKKysjIFZQQVRIIG1heSBjYXVzZSB0cm91YmxlIHdpdGggc29tZSBt YWtlcywgc28gd2UgcmVtb3ZlICQoc3JjZGlyKSwKKysjICR7c3JjZGlyfSBhbmQgQHNyY2RpckAg ZnJvbSBWUEFUSCBpZiBzcmNkaXIgaXMgIi4iLCBzdHJpcCBsZWFkaW5nIGFuZAorKyMgdHJhaWxp bmcgY29sb25zIGFuZCB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgbGluZSBpZiBWUEFUSCBiZWNvbWVz IGVtcHR5CisrIyAoYWN0dWFsbHkgd2UgbGVhdmUgYW4gZW1wdHkgbGluZSB0byBwcmVzZXJ2ZSBs aW5lIG51bWJlcnMpLgorK2lmIHRlc3QgIngkc3JjZGlyIiA9IHguOyB0aGVuCisrICBhY192cHN1 Yj0nL15bCSBdKlZQQVRIWwkgXSo9L3sKKytzLzoqXCQoc3JjZGlyKToqLzovCisrcy86Klwke3Ny Y2Rpcn06Ki86LworK3MvOipAc3JjZGlyQDoqLzovCisrcy9eXChbXj1dKj1bCSBdKlwpOiovXDEv Cisrcy86KiQvLworK3MvXltePV0qPVsJIF0qJC8vCisrfScKKytmaQorKworK2NhdCA+PiRDT05G SUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKytmaSAjIHRlc3QgLW4gIiRD T05GSUdfRklMRVMiCisrCisrIyBTZXQgdXAgdGhlIHNjcmlwdHMgZm9yIENPTkZJR19IRUFERVJT IHNlY3Rpb24uCisrIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZW0gaWYgdGhlcmUgYXJlIG5vIENP TkZJR19IRUFERVJTLgorKyMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aXRoIGAuL2NvbmZp Zy5zdGF0dXMgTWFrZWZpbGUnLgorK2lmIHRlc3QgLW4gIiRDT05GSUdfSEVBREVSUyI7IHRoZW4K KytjYXQgPiIkdG1wL2RlZmluZXMuYXdrIiA8PFxfQUNBV0sgfHwKKytCRUdJTiB7CisrX0FDRU9G CisrCisrIyBUcmFuc2Zvcm0gY29uZmRlZnMuaCBpbnRvIGFuIGF3ayBzY3JpcHQgYGRlZmluZXMu YXdrJywgZW1iZWRkZWQgYXMKKysjIGhlcmUtZG9jdW1lbnQgaW4gY29uZmlnLnN0YXR1cywgdGhh dCBzdWJzdGl0dXRlcyB0aGUgcHJvcGVyIHZhbHVlcyBpbnRvCisrIyBjb25maWcuaC5pbiB0byBw cm9kdWNlIGNvbmZpZy5oLgorKworKyMgQ3JlYXRlIGEgZGVsaW1pdGVyIHN0cmluZyB0aGF0IGRv ZXMgbm90IGV4aXN0IGluIGNvbmZkZWZzLmgsIHRvIGVhc2UKKysjIGhhbmRsaW5nIG9mIGxvbmcg bGluZXMuCisrYWNfZGVsaW09JyUhXyEjICcKKytmb3IgYWNfbGFzdF90cnkgaW4gZmFsc2UgZmFs c2UgOjsgZG8KKysgIGFjX3Q9YHNlZCAtbiAiLyRhY19kZWxpbS9wIiBjb25mZGVmcy5oYAorKyAg aWYgdGVzdCAteiAiJGFjX3QiOyB0aGVuCisrICAgIGJyZWFrCisrICBlbGlmICRhY19sYXN0X3Ry eTsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQg bm90IG1ha2UgJENPTkZJR19IRUFERVJTIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog Y291bGQgbm90IG1ha2UgJENPTkZJR19IRUFERVJTIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQorKyAgZWxzZQorKyAgICBhY19kZWxpbT0iJGFjX2RlbGltISRhY19kZWxpbSBf JGFjX2RlbGltISEgIgorKyAgZmkKKytkb25lCisrCisrIyBGb3IgdGhlIGF3ayBzY3JpcHQsIEQg aXMgYW4gYXJyYXkgb2YgbWFjcm8gdmFsdWVzIGtleWVkIGJ5IG5hbWUsCisrIyBsaWtld2lzZSBQ IGNvbnRhaW5zIG1hY3JvIHBhcmFtZXRlcnMgaWYgYW55LiAgUHJlc2VydmUgYmFja3NsYXNoCisr IyBuZXdsaW5lIHNlcXVlbmNlcy4KKysKKythY193b3JkX3JlPVtfJGFzX2NyX0xldHRlcnNdW18k YXNfY3JfYWxudW1dKgorK3NlZCAtbiAnCisrcy8uXHsxNDhcfS8mJyIkYWNfZGVsaW0iJy9nCisr dCByc2V0CisrOnJzZXQKKytzL15bCSBdKiNbCSBdKmRlZmluZVsJIF1bCSBdKi8gLworK3QgZGVm CisrZAorKzpkZWYKKytzL1xcJC8vCisrdCBic25sCisrcy9bIlxcXS9cXCYvZworK3MvXiBcKCci JGFjX3dvcmRfcmUiJ1wpXCgoW14oKV0qKVwpWwkgXSpcKC4qXCkvUFsiXDEiXT0iXDIiXAorK0Rb IlwxIl09IiBcMyIvcAorK3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wpWwkgXSpcKC4qXCkvRFsiXDEi XT0iIFwyIi9wCisrZAorKzpic25sCisrcy9bIlxcXS9cXCYvZworK3MvXiBcKCciJGFjX3dvcmRf cmUiJ1wpXCgoW14oKV0qKVwpWwkgXSpcKC4qXCkvUFsiXDEiXT0iXDIiXAorK0RbIlwxIl09IiBc M1xcXFxcXG4iXFwvcAorK3QgY29udAorK3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wpWwkgXSpcKC4q XCkvRFsiXDEiXT0iIFwyXFxcXFxcbiJcXC9wCisrdCBjb250CisrZAorKzpjb250CisrbgorK3Mv Llx7MTQ4XH0vJiciJGFjX2RlbGltIicvZworK3QgY2xlYXIKKys6Y2xlYXIKKytzL1xcJC8vCisr dCBic25sYworK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kLyIvcAorK2QKKys6YnNubGMKKytz L1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC9cXFxcXFxuIlxcL3AKKytiIGNvbnQKKysnIDxjb25m ZGVmcy5oIHwgc2VkICcKKytzLyciJGFjX2RlbGltIicvIlxcXAorKyIvZycgPj4kQ09ORklHX1NU QVRVUyB8fCBhY193cml0ZV9mYWlsPTEKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKKysgIGZvciAoa2V5IGluIEQpIERfaXNfc2V0W2tleV0gPSAx CisrICBGUyA9ICIHIgorK30KKysvXltcdCBdKiNbXHQgXSooZGVmaW5lfHVuZGVmKVtcdCBdKyRh Y193b3JkX3JlKFtcdCAoXXxcJCkvIHsKKysgIGxpbmUgPSBcJCAwCisrICBzcGxpdChsaW5lLCBh cmcsICIgIikKKysgIGlmIChhcmdbMV0gPT0gIiMiKSB7CisrICAgIGRlZnVuZGVmID0gYXJnWzJd CisrICAgIG1hYzEgPSBhcmdbM10KKysgIH0gZWxzZSB7CisrICAgIGRlZnVuZGVmID0gc3Vic3Ry KGFyZ1sxXSwgMikKKysgICAgbWFjMSA9IGFyZ1syXQorKyAgfQorKyAgc3BsaXQobWFjMSwgbWFj MiwgIigiKSAjKQorKyAgbWFjcm8gPSBtYWMyWzFdCisrICBwcmVmaXggPSBzdWJzdHIobGluZSwg MSwgaW5kZXgobGluZSwgZGVmdW5kZWYpIC0gMSkKKysgIGlmIChEX2lzX3NldFttYWNyb10pIHsK KysgICAgIyBQcmVzZXJ2ZSB0aGUgd2hpdGUgc3BhY2Ugc3Vycm91bmRpbmcgdGhlICIjIi4KKysg ICAgcHJpbnQgcHJlZml4ICJkZWZpbmUiLCBtYWNybyBQW21hY3JvXSBEW21hY3JvXQorKyAgICBu ZXh0CisrICB9IGVsc2UgeworKyAgICAjIFJlcGxhY2UgI3VuZGVmIHdpdGggY29tbWVudHMuICBU aGlzIGlzIG5lY2Vzc2FyeSwgZm9yIGV4YW1wbGUsCisrICAgICMgaW4gdGhlIGNhc2Ugb2YgX1BP U0lYX1NPVVJDRSwgd2hpY2ggaXMgcHJlZGVmaW5lZCBhbmQgcmVxdWlyZWQKKysgICAgIyBvbiBz b21lIHN5c3RlbXMgd2hlcmUgY29uZmlndXJlIHdpbGwgbm90IGRlY2lkZSB0byBkZWZpbmUgaXQu CisrICAgIGlmIChkZWZ1bmRlZiA9PSAidW5kZWYiKSB7CisrICAgICAgcHJpbnQgIi8qIiwgcHJl Zml4IGRlZnVuZGVmLCBtYWNybywgIiovIgorKyAgICAgIG5leHQKKysgICAgfQorKyAgfQorK30K Kyt7IHByaW50IH0KKytfQUNBV0sKKytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxf QUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY291bGQgbm90IHNldHVwIGNvbmZpZyBoZWFkZXJzIG1hY2hpbmVyeSIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgaGVhZGVycyBt YWNoaW5lcnkiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkgIyB0ZXN0 IC1uICIkQ09ORklHX0hFQURFUlMiCisrCisrCisrZXZhbCBzZXQgWCAiICA6RiAkQ09ORklHX0ZJ TEVTICA6SCAkQ09ORklHX0hFQURFUlMgICAgOkMgJENPTkZJR19DT01NQU5EUyIKKytzaGlmdAor K2ZvciBhY190YWcKKytkbworKyAgY2FzZSAkYWNfdGFnIGluCisrICA6W0ZITENdKSBhY19tb2Rl PSRhY190YWc7IGNvbnRpbnVlOzsKKysgIGVzYWMKKysgIGNhc2UgJGFjX21vZGUkYWNfdGFnIGlu CisrICA6W0ZITF0qOiopOzsKKysgIDpMKiB8IDpDKjoqKSB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogaW52YWxpZCB0YWcgJGFjX3RhZyIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGludmFsaWQgdGFnICRhY190YWciID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9OzsKKysgIDpbRkhdLSkgYWNfdGFnPS06LTs7CisrICA6W0ZIXSopIGFjX3RhZz0k YWNfdGFnOiRhY190YWcuaW47OworKyAgZXNhYworKyAgYWNfc2F2ZV9JRlM9JElGUworKyAgSUZT PToKKysgIHNldCB4ICRhY190YWcKKysgIElGUz0kYWNfc2F2ZV9JRlMKKysgIHNoaWZ0CisrICBh Y19maWxlPSQxCisrICBzaGlmdAorKworKyAgY2FzZSAkYWNfbW9kZSBpbgorKyAgOkwpIGFjX3Nv dXJjZT0kMTs7CisrICA6W0ZIXSkKKysgICAgYWNfZmlsZV9pbnB1dHM9CisrICAgIGZvciBhY19m CisrICAgIGRvCisrICAgICAgY2FzZSAkYWNfZiBpbgorKyAgICAgIC0pIGFjX2Y9IiR0bXAvc3Rk aW4iOzsKKysgICAgICAqKSAjIExvb2sgZm9yIHRoZSBmaWxlIGZpcnN0IGluIHRoZSBidWlsZCB0 cmVlLCB0aGVuIGluIHRoZSBzb3VyY2UgdHJlZQorKwkgIyAoaWYgdGhlIHBhdGggaXMgbm90IGFi c29sdXRlKS4gIFRoZSBhYnNvbHV0ZSBwYXRoIGNhbm5vdCBiZSBET1Mtc3R5bGUsCisrCSAjIGJl Y2F1c2UgJGFjX2YgY2Fubm90IGNvbnRhaW4gYDonLgorKwkgdGVzdCAtZiAiJGFjX2YiIHx8Cisr CSAgIGNhc2UgJGFjX2YgaW4KKysJICAgW1xcLyRdKikgZmFsc2U7OworKwkgICAqKSB0ZXN0IC1m ICIkc3JjZGlyLyRhY19mIiAmJiBhY19mPSIkc3JjZGlyLyRhY19mIjs7CisrCSAgIGVzYWMgfHwK KysJICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlu cHV0IGZpbGU6ICRhY19mIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZp bmQgaW5wdXQgZmlsZTogJGFjX2YiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 OzsKKysgICAgICBlc2FjCisrICAgICAgY2FzZSAkYWNfZiBpbiAqXCcqKSBhY19mPWAkYXNfZWNo byAiJGFjX2YiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsgZXNhYworKyAgICAgIGFjX2Zp bGVfaW5wdXRzPSIkYWNfZmlsZV9pbnB1dHMgJyRhY19mJyIKKysgICAgZG9uZQorKworKyAgICAj IExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFudGlhdGVz IChpLmUuLCBkb24ndAorKyAgICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJp c2VkIHRvIHJlYWQ6CisrICAgICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmln LnN0YXR1cy4gICovCisrICAgIGNvbmZpZ3VyZV9pbnB1dD0nR2VuZXJhdGVkIGZyb20gJ2AKKysJ ICAkYXNfZWNobyAiJCoiIHwgc2VkICdzfF5bXjpdKi98fDtzfDpbXjpdKi98LCB8ZycKKysJYCcg YnkgY29uZmlndXJlLicKKysgICAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgorKyAg ICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAkY29uZmlndXJlX2lucHV0IgorKyAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9CisrICAgIGZpCisrICAgICMg TmV1dHJhbGl6ZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW50ZXJwcmV0ZWQgYnkgc2VkIGluIHJlcGxh Y2VtZW50IHN0cmluZ3MuCisrICAgIGNhc2UgJGNvbmZpZ3VyZV9pbnB1dCBpbiAjKAorKyAgICAq XCYqIHwgKlx8KiB8ICpcXCogKQorKyAgICAgICBhY19zZWRfY29uZl9pbnB1dD1gJGFzX2VjaG8g IiRjb25maWd1cmVfaW5wdXQiIHwKKysgICAgICAgc2VkICdzL1tcXFxcJnxdL1xcXFwmL2cnYDs7 ICMoCisrICAgICopIGFjX3NlZF9jb25mX2lucHV0PSRjb25maWd1cmVfaW5wdXQ7OworKyAgICBl c2FjCisrCisrICAgIGNhc2UgJGFjX3RhZyBpbgorKyAgICAqOi06KiB8ICo6LSkgY2F0ID4iJHRt cC9zdGRpbiIgXAorKyAgICAgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0gOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKworKyAgYWNfZGlyPWAk YXNfZGlybmFtZSAtLSAiJGFjX2ZpbGUiIHx8CisrJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwo LipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClb Xi9dJyBcfCBcCisrCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkYWNfZmls ZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIkYWNfZmlsZSIg fAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8v XDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAg ICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkg IH0KKysJICBzLy4qLy4vOyBxJ2AKKysgIHsgYXNfZGlyPSIkYWNfZGlyIgorKyAgY2FzZSAkYXNf ZGlyIGluICMoCisrICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7CisrICBlc2FjCisrICB0ZXN0IC1k ICIkYXNfZGlyIiB8fCB7ICRhc19ta2Rpcl9wICYmIG1rZGlyIC1wICIkYXNfZGlyIjsgfSB8fCB7 CisrICAgIGFzX2RpcnM9CisrICAgIHdoaWxlIDo7IGRvCisrICAgICAgY2FzZSAkYXNfZGlyIGlu ICMoCisrICAgICAgKlwnKikgYXNfcWRpcj1gJGFzX2VjaG8gIiRhc19kaXIiIHwgc2VkICJzLycv J1xcXFxcXFxcJycvZyJgOzsgIycoCisrICAgICAgKikgYXNfcWRpcj0kYXNfZGlyOzsKKysgICAg ICBlc2FjCisrICAgICAgYXNfZGlycz0iJyRhc19xZGlyJyAkYXNfZGlycyIKKysgICAgICBhc19k aXI9YCRhc19kaXJuYW1lIC0tICIkYXNfZGlyIiB8fAorKyRhc19leHByIFgiJGFzX2RpciIgOiAn WFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoLy9c KVteL10nIFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJGFzX2Rp ciIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIkYXNfZGlyIiB8 CisrICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CisrCSAgICBzLy9c MS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXClbXi9dLioveworKwkgICAgcy8vXDEv CisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAg IHEKKysJICB9CisrCSAgL15YXChcL1wpLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAg fQorKwkgIHMvLiovLi87IHEnYAorKyAgICAgIHRlc3QgLWQgIiRhc19kaXIiICYmIGJyZWFrCisr ICAgIGRvbmUKKysgICAgdGVzdCAteiAiJGFzX2RpcnMiIHx8IGV2YWwgIm1rZGlyICRhc19kaXJz IgorKyAgfSB8fCB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiID4mMjt9 CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrICBhY19idWlsZGRpcj0uCisrCisr Y2FzZSAiJGFjX2RpciIgaW4KKysuKSBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXJfc3Vi PS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKKysqKQorKyAgYWNfZGlyX3N1ZmZpeD0vYCRhc19l Y2hvICIkYWNfZGlyIiB8IHNlZCAnc3xeXC5bXFwvXXx8J2AKKysgICMgQSAiLi4iIGZvciBlYWNo IGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KKysgIGFjX3RvcF9idWlsZGRpcl9zdWI9YCRh c19lY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3N8L1teXFwvXSp8Ly4ufGc7c3wvfHwnYAor KyAgY2FzZSAkYWNfdG9wX2J1aWxkZGlyX3N1YiBpbgorKyAgIiIpIGFjX3RvcF9idWlsZGRpcl9z dWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OworKyAgKikgIGFjX3RvcF9idWlsZF9wcmVmaXg9 JGFjX3RvcF9idWlsZGRpcl9zdWIvIDs7CisrICBlc2FjIDs7CisrZXNhYworK2FjX2Fic190b3Bf YnVpbGRkaXI9JGFjX3B3ZAorK2FjX2Fic19idWlsZGRpcj0kYWNfcHdkJGFjX2Rpcl9zdWZmaXgK KysjIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OgorK2FjX3RvcF9idWlsZGRpcj0kYWNfdG9w X2J1aWxkX3ByZWZpeAorKworK2Nhc2UgJHNyY2RpciBpbgorKyAgLikgICMgV2UgYXJlIGJ1aWxk aW5nIGluIHBsYWNlLgorKyAgICBhY19zcmNkaXI9LgorKyAgICBhY190b3Bfc3JjZGlyPSRhY190 b3BfYnVpbGRkaXJfc3ViCisrICAgIGFjX2Fic190b3Bfc3JjZGlyPSRhY19wd2QgOzsKKysgIFtc XC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgbmFtZS4KKysgICAgYWNfc3JjZGlyPSRzcmNk aXIkYWNfZGlyX3N1ZmZpeDsKKysgICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyCisrICAgIGFjX2Fi c190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKKysgICopICMgUmVsYXRpdmUgbmFtZS4KKysgICAgYWNf c3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpciRhY19kaXJfc3VmZml4CisrICAgIGFj X3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyCisrICAgIGFjX2Fic190b3Bf c3JjZGlyPSRhY19wd2QvJHNyY2RpciA7OworK2VzYWMKKythY19hYnNfc3JjZGlyPSRhY19hYnNf dG9wX3NyY2RpciRhY19kaXJfc3VmZml4CisrCisrCisrICBjYXNlICRhY19tb2RlIGluCisrICA6 RikKKysgICMKKysgICMgQ09ORklHX0ZJTEUKKysgICMKKysKKysgIGNhc2UgJElOU1RBTEwgaW4K KysgIFtcXC8kXSogfCA/OltcXC9dKiApIGFjX0lOU1RBTEw9JElOU1RBTEwgOzsKKysgICopIGFj X0lOU1RBTEw9JGFjX3RvcF9idWlsZF9wcmVmaXgkSU5TVEFMTCA7OworKyAgZXNhYworKyAgYWNf TUtESVJfUD0kTUtESVJfUAorKyAgY2FzZSAkTUtESVJfUCBpbgorKyAgW1xcLyRdKiB8ID86W1xc L10qICkgOzsKKysgICovKikgYWNfTUtESVJfUD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRNS0RJUl9Q IDs7CisrICBlc2FjCisrX0FDRU9GCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9G IHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMgSWYgdGhlIHRlbXBsYXRlIGRvZXMgbm90IGtub3cgYWJv dXQgZGF0YXJvb3RkaXIsIGV4cGFuZCBpdC4KKysjIEZJWE1FOiBUaGlzIGhhY2sgc2hvdWxkIGJl IHJlbW92ZWQgYSBmZXcgeWVhcnMgYWZ0ZXIgMi42MC4KKythY19kYXRhcm9vdGRpcl9oYWNrPTsg YWNfZGF0YXJvb3RkaXJfc2Vlbj0KKysKKythY19zZWRfZGF0YXJvb3Q9JworKy9kYXRhcm9vdGRp ci8geworKyAgcAorKyAgcQorK30KKysvQGRhdGFkaXJAL3AKKysvQGRvY2RpckAvcAorKy9AaW5m b2RpckAvcAorKy9AbG9jYWxlZGlyQC9wCisrL0BtYW5kaXJAL3AKKysnCisrY2FzZSBgZXZhbCAi c2VkIC1uIFwiXCRhY19zZWRfZGF0YXJvb3RcIiAkYWNfZmlsZV9pbnB1dHMiYCBpbgorKypkYXRh cm9vdGRpciopIGFjX2RhdGFyb290ZGlyX3NlZW49eWVzOzsKKysqQGRhdGFkaXJAKnwqQGRvY2Rp ckAqfCpAaW5mb2RpckAqfCpAbG9jYWxlZGlyQCp8KkBtYW5kaXJAKikKKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfZmlsZV9pbnB1dHMgc2VlbXMgdG8gaWdub3Jl IHRoZSAtLWRhdGFyb290ZGlyIHNldHRpbmciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0 dGluZyIgPiYyO30KKytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBh Y193cml0ZV9mYWlsPTEKKysgIGFjX2RhdGFyb290ZGlyX2hhY2s9JworKyAgcyZAZGF0YWRpckAm JGRhdGFkaXImZworKyAgcyZAZG9jZGlyQCYkZG9jZGlyJmcKKysgIHMmQGluZm9kaXJAJiRpbmZv ZGlyJmcKKysgIHMmQGxvY2FsZWRpckAmJGxvY2FsZWRpciZnCisrICBzJkBtYW5kaXJAJiRtYW5k aXImZworKyAgICBzJlxcXCR7ZGF0YXJvb3RkaXJ9JiRkYXRhcm9vdGRpciZnJyA7OworK2VzYWMK KytfQUNFT0YKKysKKysjIE5ldXRyYWxpemUgVlBBVEggd2hlbiBgJHNyY2RpcicgPSBgLicuCisr IyBTaGVsbCBjb2RlIGluIGNvbmZpZ3VyZS5hYyBtaWdodCBzZXQgZXh0cmFzdWIuCisrIyBGSVhN RTogZG8gd2UgcmVhbGx5IHdhbnQgdG8gbWFpbnRhaW4gdGhpcyBmZWF0dXJlPworK2NhdCA+PiRD T05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK2FjX3NlZF9leHRyYT0i JGFjX3Zwc3ViCisrJGV4dHJhc3ViCisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxc X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKzp0CisrL0BbYS16QS1aX11bYS16QS1aXzAtOV0q QC8hYgorK3N8QGNvbmZpZ3VyZV9pbnB1dEB8JGFjX3NlZF9jb25mX2lucHV0fDt0IHQKKytzJkB0 b3BfYnVpbGRkaXJAJiRhY190b3BfYnVpbGRkaXJfc3ViJjt0IHQKKytzJkB0b3BfYnVpbGRfcHJl Zml4QCYkYWNfdG9wX2J1aWxkX3ByZWZpeCY7dCB0CisrcyZAc3JjZGlyQCYkYWNfc3JjZGlyJjt0 IHQKKytzJkBhYnNfc3JjZGlyQCYkYWNfYWJzX3NyY2RpciY7dCB0CisrcyZAdG9wX3NyY2RpckAm JGFjX3RvcF9zcmNkaXImO3QgdAorK3MmQGFic190b3Bfc3JjZGlyQCYkYWNfYWJzX3RvcF9zcmNk aXImO3QgdAorK3MmQGJ1aWxkZGlyQCYkYWNfYnVpbGRkaXImO3QgdAorK3MmQGFic19idWlsZGRp ckAmJGFjX2Fic19idWlsZGRpciY7dCB0CisrcyZAYWJzX3RvcF9idWlsZGRpckAmJGFjX2Fic190 b3BfYnVpbGRkaXImO3QgdAorK3MmQElOU1RBTExAJiRhY19JTlNUQUxMJjt0IHQKKytzJkBNS0RJ Ul9QQCYkYWNfTUtESVJfUCY7dCB0CisrJGFjX2RhdGFyb290ZGlyX2hhY2sKKysiCisrZXZhbCBz ZWQgXCJcJGFjX3NlZF9leHRyYVwiICIkYWNfZmlsZV9pbnB1dHMiIHwgJEFXSyAtZiAiJHRtcC9z dWJzLmF3ayIgPiR0bXAvb3V0IFwKKysgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KKysgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KKysKKyt0ZXN0IC16ICIkYWNfZGF0YXJvb3RkaXJfaGFjayRhY19kYXRh cm9vdGRpcl9zZWVuIiAmJgorKyAgeyBhY19vdXQ9YHNlZCAtbiAnL1wke2RhdGFyb290ZGlyfS9w JyAiJHRtcC9vdXQiYDsgdGVzdCAtbiAiJGFjX291dCI7IH0gJiYKKysgIHsgYWNfb3V0PWBzZWQg LW4gJy9eWwkgXSpkYXRhcm9vdGRpclsJIF0qOio9L3AnICIkdG1wL291dCJgOyB0ZXN0IC16ICIk YWNfb3V0IjsgfSAmJgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRh Y19maWxlIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YXJpYWJsZSBcYGRhdGFyb290ZGly JworK3doaWNoIHNlZW1zIHRvIGJlIHVuZGVmaW5lZC4gIFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMg ZGVmaW5lZC4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxlIGNvbnRh aW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YXJpYWJsZSBcYGRhdGFyb290ZGlyJworK3doaWNoIHNl ZW1zIHRvIGJlIHVuZGVmaW5lZC4gIFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgZGVmaW5lZC4iID4m Mjt9CisrCisrICBybSAtZiAiJHRtcC9zdGRpbiIKKysgIGNhc2UgJGFjX2ZpbGUgaW4KKysgIC0p IGNhdCAiJHRtcC9vdXQiICYmIHJtIC1mICIkdG1wL291dCI7OworKyAgKikgcm0gLWYgIiRhY19m aWxlIiAmJiBtdiAiJHRtcC9vdXQiICIkYWNfZmlsZSI7OworKyAgZXNhYyBcCisrICB8fCB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmls ZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2Zp bGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrIDs7CisrICA6SCkKKysg ICMKKysgICMgQ09ORklHX0hFQURFUgorKyAgIworKyAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4 LTsgdGhlbgorKyAgICB7CisrICAgICAgJGFzX2VjaG8gIi8qICRjb25maWd1cmVfaW5wdXQgICov IiBcCisrICAgICAgJiYgZXZhbCAnJEFXSyAtZiAiJHRtcC9kZWZpbmVzLmF3ayInICIkYWNfZmls ZV9pbnB1dHMiCisrICAgIH0gPiIkdG1wL2NvbmZpZy5oIiBcCisrICAgICAgfHwgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+ JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBpZiBkaWZmICIkYWNfZmls ZSIgIiR0bXAvY29uZmlnLmgiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNQorKyRhc19lY2hv ICIkYXNfbWU6ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY2O30KKysgICAgZWxzZQorKyAgICAg IHJtIC1mICIkYWNfZmlsZSIKKysgICAgICBtdiAiJHRtcC9jb25maWcuaCIgIiRhY19maWxlIiBc CisrCXx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3Jl YXRlICRhY19maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IGNy ZWF0ZSAkYWNfZmlsZSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAg ZmkKKysgIGVsc2UKKysgICAgJGFzX2VjaG8gIi8qICRjb25maWd1cmVfaW5wdXQgICovIiBcCisr ICAgICAgJiYgZXZhbCAnJEFXSyAtZiAiJHRtcC9kZWZpbmVzLmF3ayInICIkYWNfZmlsZV9pbnB1 dHMiIFwKKysgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291 bGQgbm90IGNyZWF0ZSAtIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90 IGNyZWF0ZSAtIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgZmkKKysj IENvbXB1dGUgIiRhY19maWxlIidzIGluZGV4IGluICRjb25maWdfaGVhZGVycy4KKytfYW1fYXJn PSIkYWNfZmlsZSIKKytfYW1fc3RhbXBfY291bnQ9MQorK2ZvciBfYW1faGVhZGVyIGluICRjb25m aWdfaGVhZGVycyA6OyBkbworKyAgY2FzZSAkX2FtX2hlYWRlciBpbgorKyAgICAkX2FtX2FyZyB8 ICRfYW1fYXJnOiogKQorKyAgICAgIGJyZWFrIDs7CisrICAgICogKQorKyAgICAgIF9hbV9zdGFt cF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKKysgIGVzYWMKKytkb25lCisr ZWNobyAidGltZXN0YW1wIGZvciAkX2FtX2FyZyIgPmAkYXNfZGlybmFtZSAtLSAiJF9hbV9hcmci IHx8CisrJGFzX2V4cHIgWCIkX2FtX2FyZyIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQn IFx8IFwKKysJIFgiJF9hbV9hcmciIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRfYW1fYXJn IiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkX2FtX2FyZyIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rl di9udWxsIHx8CisrJGFzX2VjaG8gWCIkX2FtX2FyZyIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9d XClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkg IC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAv XlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9c KS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2Avc3Rh bXAtaCRfYW1fc3RhbXBfY291bnQKKysgOzsKKysKKysgIDpDKSAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogZXhlY3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+JjY7fQorKyA7OworKyAgZXNhYwor KworKworKyAgY2FzZSAkYWNfZmlsZSRhY19tb2RlIGluCisrICAgICJkZXBmaWxlcyI6QykgdGVz dCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgIyBBdXRvY29uZiAyLjYyIHF1b3RlcyAtLWZpbGUg YXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90IHdoZW4gZmlsZXMKKysjIGFyZSBsaXN0ZWQgd2l0 aG91dCAtLWZpbGUuICBMZXQncyBwbGF5IHNhZmUgYW5kIG9ubHkgZW5hYmxlIHRoZSBldmFsCisr IyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3RpbmcuCisrY2FzZSAkQ09ORklHX0ZJTEVTIGluCisrKlwn KikgZXZhbCBzZXQgeCAiJENPTkZJR19GSUxFUyIgOzsKKysqKSAgIHNldCB4ICRDT05GSUdfRklM RVMgOzsKKytlc2FjCisrc2hpZnQKKytmb3IgbWYKKytkbworKyAgIyBTdHJpcCBNRiBzbyB3ZSBl bmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KKysgIG1mPWBlY2hvICIkbWYiIHwgc2Vk IC1lICdzLzouKiQvLydgCisrICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBn ZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90LgorKyAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhl IGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAorKyAgIyBzb21lIHBlb3BsZSByZW5hbWUg dGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCisrICAjIEdyZXAn aW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxlIHBvc3QtcHJvY2Vz cworKyAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFj aCBmaWxlIHRvIHNheSBzby4KKysgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZpbGUgaXMgbm90IGdv b2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCisrICAjIGxpbWl0IG9mIDIwNDgsIGJ1dCBh bGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQgYXQgbGVhc3QgNDAwMC4KKysgIGlmIHNl ZCAtbiAncyxeIy4qZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlLiosWCxwJyAiJG1mIiB8IGdyZXAgWCA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgZGlycGFydD1gJGFzX2Rpcm5hbWUgLS0gIiRtZiIg fHwKKyskYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwK KysJIFgiJG1mIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIkbWYiIDogJ1hcKC8vXCkkJyBc fCBcCisrCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8g WCIkbWYiIHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJ ICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAg ICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAg IHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrICBlbHNlCisrICAgIGNvbnRpbnVlCisrICBm aQorKyAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFu ZCBhbV9fcXVvdGUKKysgICMgZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nIGBtYWtl Jy4KKysgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCisrICB0ZXN0 IC16ICIkREVQRElSIiAmJiBjb250aW51ZQorKyAgYW1fX2luY2x1ZGU9YHNlZCAtbiAncy9eYW1f X2luY2x1ZGUgPSAvL3AnIDwgIiRtZiJgCisrICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29u dGludWUKKysgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJg CisrICAjIFdoZW4gdXNpbmcgYW5zaTJrbnIsIFUgbWF5IGJlIGVtcHR5IG9yIGFuIHVuZGVyc2Nv cmU7IGV4cGFuZCBpdAorKyAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAorKyAgIyBG aW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMg d2l0aAorKyAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFtZXMuICBXZSBpbnZva2Ugc2VkIHR3aWNl IGJlY2F1c2UgaXQgaXMgdGhlCisrICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQo REVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQorKyAgIyBleHBhbnNpb24uCisrICBm b3IgZmlsZSBpbiBgc2VkIC1uICIKKysgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4q KERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCisrICAgICAgIHNlZCAt ZSAncy9cJChERVBESVIpLyciJERFUERJUiInL2cnIC1lICdzL1wkVS8nIiRVIicvZydgOyBkbwor KyAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KKysgICAgdGVzdCAtZiAiJGRp cnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCisrICAgIGZkaXI9YCRhc19kaXJuYW1lIC0tICIkZmls ZSIgfHwKKyskYXNfZXhwciBYIiRmaWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcg XHwgXAorKwkgWCIkZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKKysJIFgiJGZpbGUiIDogJ1hc KC8vXCkkJyBcfCBcCisrCSBYIiRmaWxlIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwK KyskYXNfZWNobyBYIiRmaWxlIiB8CisrICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVte L10qXC8qJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXClb Xi9dLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpJC97 CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wpLioveworKwkgICAg cy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMvLiovLi87IHEnYAorKyAgICB7IGFzX2Rpcj0k ZGlycGFydC8kZmRpcgorKyAgY2FzZSAkYXNfZGlyIGluICMoCisrICAtKikgYXNfZGlyPS4vJGFz X2Rpcjs7CisrICBlc2FjCisrICB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7ICRhc19ta2Rpcl9wICYm IG1rZGlyIC1wICIkYXNfZGlyIjsgfSB8fCB7CisrICAgIGFzX2RpcnM9CisrICAgIHdoaWxlIDo7 IGRvCisrICAgICAgY2FzZSAkYXNfZGlyIGluICMoCisrICAgICAgKlwnKikgYXNfcWRpcj1gJGFz X2VjaG8gIiRhc19kaXIiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsgIycoCisrICAgICAg KikgYXNfcWRpcj0kYXNfZGlyOzsKKysgICAgICBlc2FjCisrICAgICAgYXNfZGlycz0iJyRhc19x ZGlyJyAkYXNfZGlycyIKKysgICAgICBhc19kaXI9YCRhc19kaXJuYW1lIC0tICIkYXNfZGlyIiB8 fAorKyRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8 IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKysJIFgiJGFzX2RpciIgOiAn WFwoLy9cKSQnIFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxs IHx8CisrJGFzX2VjaG8gWCIkYXNfZGlyIiB8CisrICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8q W14vXVteL10qXC8qJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChc L1wvXClbXi9dLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9c L1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wpLiovewor KwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMvLiovLi87IHEnYAorKyAgICAgIHRl c3QgLWQgIiRhc19kaXIiICYmIGJyZWFrCisrICAgIGRvbmUKKysgICAgdGVzdCAteiAiJGFzX2Rp cnMiIHx8IGV2YWwgIm1rZGlyICRhc19kaXJzIgorKyAgfSB8fCB0ZXN0IC1kICIkYXNfZGlyIiB8 fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJl Y3RvcnkgJGFzX2RpciIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVh dGUgZGlyZWN0b3J5ICRhc19kaXIiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 OyB9CisrICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisrICAgIGVjaG8gJyMg ZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgorKyAgZG9uZQorK2RvbmUKKysgOzsKKysgICAgImxp YnRvb2wiOkMpCisrCisrICAgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNl dCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKKysgICAgIyBjb21tYW5kcyB0aHJvdWdoIHdp dGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCisrICAgIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJ T04rc2V0fSIgOyB0aGVuCisrICAgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKysgICAgZmkKKysK KysgICAgY2ZnZmlsZT0iJHtvZmlsZX1UIgorKyAgICB0cmFwICIkUk0gXCIkY2ZnZmlsZVwiOyBl eGl0IDEiIDEgMiAxNQorKyAgICAkUk0gIiRjZmdmaWxlIgorKworKyAgICBjYXQgPDxfTFRfRU9G ID4+ICIkY2ZnZmlsZSIKKysjISAkU0hFTEwKKysKKysjIGAkRUNITyAiJG9maWxlIiB8IHNlZCAn cyVeLiovJSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0 IHNlcnZpY2VzLgorKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgJGFzX21lICgkUEFDS0FH RSRUSU1FU1RBTVApICRWRVJTSU9OCisrIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3Qg YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgorKyMgTk9URTog Q2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxvb2sgYXQgbHRtYWluLnNo LgorKyMKKysjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAzLCAyMDA0LCAyMDA1LAorKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIw MDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyAgIFdyaXR0ZW4gYnkgR29yZG9u IE1hdHppZ2tlaXQsIDE5OTYKKysjCisrIyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0 b29sLgorKyMKKysjIEdOVSBMaWJ0b29sIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKysjIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisrIyB0aGUgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBBcyBhIHNwZWNpYWwg ZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKysjIGlmIHlvdSBk aXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSBvciBsaWJyYXJ5IHRoYXQK KysjIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxl IHVuZGVyIHRoZQorKyMgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0 aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrIworKyMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysj IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUgdGhlIGZpbGUgQ09QWUlO Ry4gIElmIG5vdCwgYSBjb3B5CisrIyBjYW4gYmUgZG93bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbCwgb3IKKysjIG9idGFpbmVkIGJ5IHdyaXRpbmcgdG8g dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKysjIDUxIEZyYW5rbGluIFN0cmVl dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKworKworKyMgVGhl IG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2Ny aXB0LgorK2F2YWlsYWJsZV90YWdzPSJDWFggIgorKworKyMgIyMjIEJFR0lOIExJQlRPT0wgQ09O RklHCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgorK2J1 aWxkX2xpYnRvb2xfbGlicz0kZW5hYmxlX3NoYXJlZAorKworKyMgV2hldGhlciBvciBub3QgdG8g YnVpbGQgc3RhdGljIGxpYnJhcmllcy4KKytidWlsZF9vbGRfbGlicz0kZW5hYmxlX3N0YXRpYwor KworKyMgV2hpY2ggcmVsZWFzZSBvZiBsaWJ0b29sLm00IHdhcyB1c2VkPworK21hY3JvX3ZlcnNp b249JG1hY3JvX3ZlcnNpb24KKyttYWNyb19yZXZpc2lvbj0kbWFjcm9fcmV2aXNpb24KKysKKysj IFdoYXQgdHlwZSBvZiBvYmplY3RzIHRvIGJ1aWxkLgorK3BpY19tb2RlPSRwaWNfbW9kZQorKwor KyMgV2hldGhlciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uLgorK2Zh c3RfaW5zdGFsbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbAorKworKyMgVGhlIGhvc3Qgc3lzdGVtLgor K2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKKytob3N0PSRob3N0CisraG9zdF9vcz0kaG9zdF9vcwor KworKyMgVGhlIGJ1aWxkIHN5c3RlbS4KKytidWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKKytidWls ZD0kYnVpbGQKKytidWlsZF9vcz0kYnVpbGRfb3MKKysKKysjIEEgc2VkIHByb2dyYW0gdGhhdCBk b2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuCisrU0VEPSRsdF9TRUQKKysKKysjIFNlZCB0aGF0IGhl bHBzIHVzIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIGVjaG8oMSkgb3B0aW9ucyBsaWtl IC1uLgorK1hzZWQ9IlwkU0VEIC1lIDFzL15YLy8iCisrCisrIyBBIGdyZXAgcHJvZ3JhbSB0aGF0 IGhhbmRsZXMgbG9uZyBsaW5lcy4KKytHUkVQPSRsdF9HUkVQCisrCisrIyBBbiBFUkUgbWF0Y2hl ci4KKytFR1JFUD0kbHRfRUdSRVAKKysKKysjIEEgbGl0ZXJhbCBzdHJpbmcgbWF0Y2hlci4KKytG R1JFUD0kbHRfRkdSRVAKKysKKysjIEEgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVy LgorK05NPSRsdF9OTQorKworKyMgV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBsaW5rcy4K KytMTl9TPSRsdF9MTl9TCisrCisrIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNv bW1hbmQ/CisrbWF4X2NtZF9sZW49JG1heF9jbWRfbGVuCisrCisrIyBPYmplY3QgZmlsZSBzdWZm aXggKG5vcm1hbGx5ICJvIikuCisrb2JqZXh0PSRhY19vYmpleHQKKysKKysjIEV4ZWN1dGFibGUg ZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9JGV4ZWV4dAorKworKyMgd2hldGhl ciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgInVuc2V0Ii4KKytsdF91bnNldD0kbHRfdW5zZXQKKysK KysjIHR1cm4gc3BhY2VzIGludG8gbmV3bGluZXMuCisrU1AyTkw9JGx0X2x0X1NQMk5MCisrCisr IyB0dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzLgorK05MMlNQPSRsdF9sdF9OTDJTUAorKworKyMg SG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KKytyZWxvYWRfZmxhZz0kbHRf cmVsb2FkX2ZsYWcKKytyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKKysKKysjIEFuIG9iamVj dCBzeW1ib2wgZHVtcGVyLgorK09CSkRVTVA9JGx0X09CSkRVTVAKKysKKysjIE1ldGhvZCB0byBj aGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgorK2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAorKworKyMgQ29tbWFu ZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSAiZmlsZV9tYWdpYyIuCisrZmls ZV9tYWdpY19jbWQ9JGx0X2ZpbGVfbWFnaWNfY21kCisrCisrIyBUaGUgYXJjaGl2ZXIuCisrQVI9 JGx0X0FSCisrQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCisrCisrIyBBIHN5bWJvbCBzdHJpcHBpbmcg cHJvZ3JhbS4KKytTVFJJUD0kbHRfU1RSSVAKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gaW5zdGFs bCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KKytSQU5MSUI9JGx0X1JBTkxJQgorK29sZF9wb3N0aW5z dGFsbF9jbWRzPSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcworK29sZF9wb3N0dW5pbnN0YWxsX2Nt ZHM9JGx0X29sZF9wb3N0dW5pbnN0YWxsX2NtZHMKKysKKysjIEEgQyBjb21waWxlci4KKytMVEND PSRsdF9DQworKworKyMgTFRDQyBjb21waWxlciBmbGFncy4KKytMVENGTEFHUz0kbHRfQ0ZMQUdT CisrCisrIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJh dyBzeW1ib2xzIGFuZCBDIG5hbWVzLgorK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRfbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfcGlwZQorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4g YSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KKytnbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSRsdF9sdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbAorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQg b2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyLgorK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1l X2FkZHJlc3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCisr CisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIg d2hlbiBsaWIgcHJlZml4IGlzIG5lZWRlZC4KKytnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRy ZXNzX2xpYl9wcmVmaXg9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRy ZXNzX2xpYl9wcmVmaXgKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250 YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KKytvYmpkaXI9JG9iamRpcgorKworKyMgU2hl bGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KKytTSEVMTD0kbHRfU0hFTEwK KysKKysjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xhc2hl cy4KKytFQ0hPPSRsdF9FQ0hPCisrCisrIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4g ZmlsZV9tYWdpY19jbWQgYmVnaW5zIHdpdGggImZpbGUiLgorK01BR0lDX0NNRD0kTUFHSUNfQ01E CisrCisrIyBNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj8KKytuZWVk X2xvY2tzPSRsdF9uZWVkX2xvY2tzCisrCisrIyBUb29sIHRvIG1hbmlwdWxhdGUgYXJjaGl2ZWQg RFdBUkYgZGVidWcgc3ltYm9sIGZpbGVzIG9uIE1hYyBPUyBYLgorK0RTWU1VVElMPSRsdF9EU1lN VVRJTAorKworKyMgVG9vbCB0byBjaGFuZ2UgZ2xvYmFsIHRvIGxvY2FsIHN5bWJvbHMgb24gTWFj IE9TIFguCisrTk1FRElUPSRsdF9OTUVESVQKKysKKysjIFRvb2wgdG8gbWFuaXB1bGF0ZSBmYXQg b2JqZWN0cyBhbmQgYXJjaGl2ZXMgb24gTWFjIE9TIFguCisrTElQTz0kbHRfTElQTworKworKyMg bGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFguCisr T1RPT0w9JGx0X09UT09MCisrCisrIyBsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIDY0IGJpdCBN YWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFggMTAuNC4KKytPVE9PTDY0PSRsdF9PVE9PTDY0Cisr CisrIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIikuCisrbGliZXh0PSRsaWJleHQK KysKKysjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpLgorK3NocmV4dF9j bWRzPSRsdF9zaHJleHRfY21kcworKworKyMgVGhlIGNvbW1hbmRzIHRvIGV4dHJhY3QgdGhlIGV4 cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KKytleHRyYWN0X2V4cHN5 bXNfY21kcz0kbHRfZXh0cmFjdF9leHBzeW1zX2NtZHMKKysKKysjIFZhcmlhYmxlcyB3aG9zZSB2 YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAorKyMg cmVzdG9yZWQgYXQgbGluayB0aW1lLgorK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSRsdF92 YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaworKworKyMgRG8gd2UgbmVlZCB0aGUgImxpYiIgcHJl Zml4IGZvciBtb2R1bGVzPworK25lZWRfbGliX3ByZWZpeD0kbmVlZF9saWJfcHJlZml4CisrCisr IyBEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzPworK25lZWRfdmVyc2lvbj0kbmVl ZF92ZXJzaW9uCisrCisrIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KKyt2ZXJzaW9uX3R5cGU9 JHZlcnNpb25fdHlwZQorKworKyMgU2hhcmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxl LgorK3J1bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgorKworKyMgU2hhcmVkIGxpYnJhcnkgcGF0aCB2 YXJpYWJsZS4KKytzaGxpYnBhdGhfdmFyPSRzaGxpYnBhdGhfdmFyCisrCisrIyBJcyBzaGxpYnBh dGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/Cisr c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgK KysKKysjIEZvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgorK2xpYm5hbWVfc3BlYz0kbHRf bGlibmFtZV9zcGVjCisrCisrIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJzdCBuYW1lIGlz IHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgorKyMgVGhlIGxhc3QgbmFtZSBpcyB0 aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRQorK2xpYnJhcnlfbmFtZXNf c3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCisrCisrIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUg bGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4KKytzb25hbWVfc3BlYz0k bHRfc29uYW1lX3NwZWMKKysKKysjIENvbW1hbmQgdG8gdXNlIGFmdGVyIGluc3RhbGxhdGlvbiBv ZiBhIHNoYXJlZCBhcmNoaXZlLgorK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3RpbnN0YWxsX2Nt ZHMKKysKKysjIENvbW1hbmQgdG8gdXNlIGFmdGVyIHVuaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVk IGFyY2hpdmUuCisrcG9zdHVuaW5zdGFsbF9jbWRzPSRsdF9wb3N0dW5pbnN0YWxsX2NtZHMKKysK KysjIENvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlv biBpbiBhIGRpcmVjdG9yeS4KKytmaW5pc2hfY21kcz0kbHRfZmluaXNoX2NtZHMKKysKKysjIEFz ICJmaW5pc2hfY21kcyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZh bGVkIGJ1dAorKyMgbm90IHNob3duLgorK2ZpbmlzaF9ldmFsPSRsdF9maW5pc2hfZXZhbAorKwor KyMgV2hldGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIGxpYnJhcmll cy4KKytoYXJkY29kZV9pbnRvX2xpYnM9JGhhcmRjb2RlX2ludG9fbGlicworKworKyMgQ29tcGls ZS10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzLgorK3N5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisrCisrIyBSdW4tdGltZSBz eXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcy4KKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYz0kbHRfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKKysKKysjIFdoZXRoZXIgZGxvcGVu IGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgorKworKyMgV2hl dGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmPSRlbmFi bGVfZGxvcGVuX3NlbGYKKysKKysjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2Vk IHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9w ZW5fc2VsZl9zdGF0aWMKKysKKysjIENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KKytvbGRf c3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgorK3N0cmlwbGliPSRsdF9zdHJpcGxpYgorKworKwor KyMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KKytMRD0kbHRfTEQKKysKKysj IENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrb2xkX2FyY2hp dmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kcworKworKyMgQSBsYW5ndWFnZSBzcGVjaWZpYyBj b21waWxlci4KKytDQz0kbHRfY29tcGlsZXIKKysKKysjIElzIHRoZSBjb21waWxlciB0aGUgR05V IGNvbXBpbGVyPworK3dpdGhfZ2NjPSRHQ0MKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBv ZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBp bGVyX25vX2J1aWx0aW5fZmxhZworKworKyMgSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJv dWdoIHRoZSBjb21waWxlci4KKyt3bD0kbHRfbHRfcHJvZ19jb21waWxlcl93bAorKworKyMgQWRk aXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgorK3Bp Y19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpYworKworKyMgQ29tcGlsZXIgZmxhZyB0byBw cmV2ZW50IGR5bmFtaWMgbGlua2luZy4KKytsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYworKworKyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0 IC1jIGFuZCAtbyBvcHRpb25zPworK2NvbXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxl cl9jX28KKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJl ZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRhcmNoaXZlX2NtZHNfbmVlZF9s YworKworKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50 aW1lIGxpYnMgYXJlIHN0YXRpYy4KKythbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVu dGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMKKysKKysjIENvbXBpbGVy IGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCisrZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWMKKysKKysjIENvbXBpbGVyIGZsYWcgdG8g Z2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4KKyt3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMKKysKKysjIFdoZXRo ZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5Lgor K2NvbXBpbGVyX25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVlZHNfb2JqZWN0CisrCisrIyBD cmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgorK29sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKKysKKysj IENyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQgb2Yg YSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0kbHRfb2xk X2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQg YSBzaGFyZWQgYXJjaGl2ZS4KKythcmNoaXZlX2NtZHM9JGx0X2FyY2hpdmVfY21kcworK2FyY2hp dmVfZXhwc3ltX2NtZHM9JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHMKKysKKysjIENvbW1hbmRzIHVz ZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVpbGRpbmcK KysjIGEgc2hhcmVkIGFyY2hpdmUuCisrbW9kdWxlX2NtZHM9JGx0X21vZHVsZV9jbWRzCisrbW9k dWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHMKKysKKysjIFdoZXRoZXIgd2Ug YXJlIGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5vdC4KKyt3aXRoX2dudV9sZD0kbHRfd2l0aF9n bnVfbGQKKysKKysjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVm aW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgorK2FsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9hbGxv d191bmRlZmluZWRfZmxhZworKworKyMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBz eW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZworKworKyMg RmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgor KyMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdAorK2hhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMKKysKKysj IElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGlu dG8gYSBiaW5hcnkKKysjIGR1cmluZyBsaW5raW5nLiAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBc JGxpYmRpciBkb2VzIG5vdCBleGlzdC4KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRs dF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkCisrCisrIyBXaGV0aGVyIHdlIG5lZWQgYSBz aW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgorK2hhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IKKysKKysjIFNl dCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5r aW5nIGhhcmRjb2RlcworKyMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNv ZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3QKKysKKysjIFNldCB0byAieWVzIiBpZiB1c2luZyBE SVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcworKyMgRElS IGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBl bmRlbmN5IGlzCisrIyAiYWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0 aW5nIFwke3NobGlicGF0aF92YXJ9IGlmIHRoZQorKyMgbGlicmFyeSBpcyByZWxvY2F0ZWQuCisr aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPSRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUKKysKKysj IFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJk Y29kZXMgRElSCisrIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX21pbnVz X0w9JGhhcmRjb2RlX21pbnVzX0wKKysKKysjIFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBB VEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCisrIyBpbnRvIHRoZSByZXN1 bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3NobGlicGF0 aF92YXIKKysKKysjIFNldCB0byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1 dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUgorKyMgaW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1 YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKKysjIGFnYWluc3QgaXQu CisraGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWMKKysKKysjIFNldCB0byB5 ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCisr IyB0byBydW50aW1lIHBhdGggbGlzdC4KKytpbmhlcml0X3JwYXRoPSRpbmhlcml0X3JwYXRoCisr CisrIyBXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMg ZGVwZW5kZW5jeSBsaWJyYXJpZXMuCisrbGlua19hbGxfZGVwbGlicz0kbGlua19hbGxfZGVwbGli cworKworKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxl ci4KKytmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCisrCisrIyBTZXQgdG8g InllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCisrYWx3YXlzX2V4cG9ydF9z eW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHMKKysKKysjIFRoZSBjb21tYW5kcyB0byBsaXN0 IGV4cG9ydGVkIHN5bWJvbHMuCisrZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJv bHNfY21kcworKworKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBw cmVsb2FkZWQgc3ltYm9scy4KKytleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltcwor KworKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgorK2luY2x1ZGVfZXhw c3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zCisrCisrIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxp bmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KKytwcmVs aW5rX2NtZHM9JGx0X3ByZWxpbmtfY21kcworKworKyMgU3BlY2lmeSBmaWxlbmFtZSBjb250YWlu aW5nIGlucHV0IGZpbGVzLgorK2ZpbGVfbGlzdF9zcGVjPSRsdF9maWxlX2xpc3Rfc3BlYworKwor KyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFi bGUuCisraGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb24KKysKKysjIFRoZSBkaXJlY3Rv cmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQgbGli cmFyeS4KKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hf ZGlycworKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9i amVjdHMgYmVpbmcgbGlua2VkIHRvCisrIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4KKytwcmVk ZXBfb2JqZWN0cz0kbHRfcHJlZGVwX29iamVjdHMKKytwb3N0ZGVwX29iamVjdHM9JGx0X3Bvc3Rk ZXBfb2JqZWN0cworK3ByZWRlcHM9JGx0X3ByZWRlcHMKKytwb3N0ZGVwcz0kbHRfcG9zdGRlcHMK KysKKysjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29t cGlsZXIgd2hlbiBsaW5raW5nCisrIyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9z ZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoCisrCisrIyAjIyMgRU5EIExJ QlRPT0wgQ09ORklHCisrCisrX0xUX0VPRgorKworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4 MyopCisrICAgIGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysjIEFJWCBzb21ldGltZXMg aGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKysj IHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxl LCB0aGUgcHJvYmxlbXMKKysjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCisraWYgdGVzdCAi WCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICBDT0xMRUNUX05BTUVTPQor KyAgZXhwb3J0IENPTExFQ1RfTkFNRVMKKytmaQorK19MVF9FT0YKKysgICAgOzsKKysgIGVzYWMK KysKKysKKytsdG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKKysKKysKKysgICMgV2UgdXNl IHNlZCBpbnN0ZWFkIG9mIGNhdCBiZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBjb25mdXNlZCBp ZgorKyAgIyBpZiBmaW5kcyBtaXhlZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNl ZCBvcGVyYXRlcyBpbgorKyAgIyB0ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZlcnRzIGxpbmVz IHRvIENSL0xGLiAgVGhpcyBiYXNoIHByb2JsZW0KKysgICMgaXMgcmVwb3J0ZWRseSBmaXhlZCwg YnV0IHdoeSBub3QgcnVuIG9uIG9sZCB2ZXJzaW9ucyB0b28/CisrICBzZWQgJy9eIyBHZW5lcmF0 ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvcScgIiRsdG1haW4iID4+ICIkY2ZnZmls ZSIgXAorKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQorKworKyAgY2FzZSAkeHNp X3NoZWxsIGluCisrICB5ZXMpCisrICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisr CisrIyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisrIyBDb21w dXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUg cmVzdWx0LAorKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgor K2Z1bmNfZGlybmFtZSAoKQorK3sKKysgIGNhc2UgJHsxfSBpbgorKyAgICAqLyopIGZ1bmNfZGly bmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OworKyAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1 bHQ9IiR7M30iIDs7CisrICBlc2FjCisrfQorKworKyMgZnVuY19iYXNlbmFtZSBmaWxlCisrZnVu Y19iYXNlbmFtZSAoKQorK3sKKysgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKKyt9 CisrCisrIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBs YWNlbWVudAorKyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBz aW5nbGUgZnVuY3Rpb24KKysjIGNhbGw6CisrIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJu YW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwKKysjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8g dGhlIHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKKysjICAgICAgICAgICAgIHRvIE5PTkRJ Ul9SRVBMQUNFTUVOVC4KKysjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19k aXJuYW1lX3Jlc3VsdCIKKysjICAgYmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4K KysjICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIK KysjIEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rp cm5hbWUKKysjIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRl bGVnYXRlIHRvCisrIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBm dW5jdGlvbmFsaXR5IGhlcmUuCisrZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQorK3sKKysg IGNhc2UgJHsxfSBpbgorKyAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9 IiA7OworKyAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7CisrICBlc2FjCisr ICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iCisrfQorKworKyMgZnVuY19zdHJpcG5h bWUgcHJlZml4IHN1ZmZpeCBuYW1lCisrIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2Yg TkFNRS4KKysjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3Ig cmVnZXggc3BlY2lhbAorKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQg U1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZworKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQg bWF0Y2hlcyBvbmx5IGEgZG90KS4KKytmdW5jX3N0cmlwbmFtZSAoKQorK3sKKysgICMgcGRrc2gg NS4yLjE0IGRvZXMgbm90IGRvICR7WCUkWX0gY29ycmVjdGx5IGlmIGJvdGggWCBhbmQgWSBhcmUK KysgICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25lIHRvIG9yZGluYXJ5IHBh cmFtZXRlciBmaXJzdC4KKysgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0kezN9CisrICBmdW5jX3N0 cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQjIiR7MX0ifQorKyAgZnVuY19z dHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIkezJ9In0KKyt9CisrCisr IyBmdW5jX29wdF9zcGxpdAorK2Z1bmNfb3B0X3NwbGl0ICgpCisreworKyAgZnVuY19vcHRfc3Bs aXRfb3B0PSR7MSUlPSp9CisrICBmdW5jX29wdF9zcGxpdF9hcmc9JHsxIyo9fQorK30KKysKKysj IGZ1bmNfbG8ybyBvYmplY3QKKytmdW5jX2xvMm8gKCkKKyt7CisrICBjYXNlICR7MX0gaW4KKysg ICAgKi5sbykgZnVuY19sbzJvX3Jlc3VsdD0kezElLmxvfS4ke29iamV4dH0gOzsKKysgICAgKikg ICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7CisrICBlc2FjCisrfQorKworKyMgZnVuY194Zm9y bSBsaWJvYmotb3Itc291cmNlCisrZnVuY194Zm9ybSAoKQorK3sKKysgIGZ1bmNfeGZvcm1fcmVz dWx0PSR7MSUuKn0ubG8KKyt9CisrCisrIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgor K2Z1bmNfYXJpdGggKCkKKyt7CisrICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCggJCogKSkKKyt9Cisr CisrIyBmdW5jX2xlbiBzdHJpbmcKKysjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBo ZW4uCisrZnVuY19sZW4gKCkKKyt7CisrICBmdW5jX2xlbl9yZXN1bHQ9JHsjMX0KKyt9CisrCisr X0xUX0VPRgorKyAgICA7OworKyAgKikgIyBCb3VybmUgY29tcGF0aWJsZSBmdW5jdGlvbnMuCisr ICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrCisrIyBmdW5jX2Rpcm5hbWUgZmls ZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisrIyBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJ TEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LAorKyMgb3RoZXJ3aXNl IHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgorK2Z1bmNfZGlybmFtZSAoKQorK3sK KysgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisrICBmdW5jX2Rp cm5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRkaXJuYW1lImAKKysgIGlm IHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCisrICAgIGZ1bmNf ZGlybmFtZV9yZXN1bHQ9IiR7M30iCisrICBlbHNlCisrICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9 IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKKysgIGZpCisrfQorKworKyMgZnVuY19iYXNlbmFt ZSBmaWxlCisrZnVuY19iYXNlbmFtZSAoKQorK3sKKysgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAk RUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCisrfQorKworKworKyMgZnVuY19z dHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCisrIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBv ZmYgb2YgTkFNRS4KKysjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJp bmcgb3IgcmVnZXggc3BlY2lhbAorKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25z LCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZworKyMgZG90IChpbiB3aGljaCBjYXNl IHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KKysjIGZ1bmNfc3RyaXBfc3VmZml4IHByZWZpeCBu YW1lCisrZnVuY19zdHJpcG5hbWUgKCkKKyt7CisrICBjYXNlICR7Mn0gaW4KKysgICAgLiopIGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCisrICAgICAgICAgICB8ICRYc2Vk IC1lICJzJV4kezF9JSUiIC1lICJzJVxcXFwkezJ9XCQlJSJgOzsKKysgICAgKikgIGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCisrICAgICAgICAgICB8ICRYc2VkIC1lICJz JV4kezF9JSUiIC1lICJzJSR7Mn1cJCUlImA7OworKyAgZXNhYworK30KKysKKysjIHNlZCBzY3Jp cHRzOgorK215X3NlZF9sb25nX29wdD0nMXMvXlwoLVtePV0qXCk9LiovXDEvO3EnCisrbXlfc2Vk X2xvbmdfYXJnPScxcy9eLVtePV0qPS8vJworKworKyMgZnVuY19vcHRfc3BsaXQKKytmdW5jX29w dF9zcGxpdCAoKQorK3sKKysgIGZ1bmNfb3B0X3NwbGl0X29wdD1gJEVDSE8gIlgkezF9IiB8ICRY c2VkIC1lICIkbXlfc2VkX2xvbmdfb3B0ImAKKysgIGZ1bmNfb3B0X3NwbGl0X2FyZz1gJEVDSE8g IlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfYXJnImAKKyt9CisrCisrIyBmdW5jX2xv Mm8gb2JqZWN0CisrZnVuY19sbzJvICgpCisreworKyAgZnVuY19sbzJvX3Jlc3VsdD1gJEVDSE8g IlgkezF9IiB8ICRYc2VkIC1lICIkbG8ybyJgCisrfQorKworKyMgZnVuY194Zm9ybSBsaWJvYmot b3Itc291cmNlCisrZnVuY194Zm9ybSAoKQorK3sKKysgIGZ1bmNfeGZvcm1fcmVzdWx0PWAkRUNI TyAiWCR7MX0iIHwgJFhzZWQgLWUgJ3MvXC5bXi5dKiQvLmxvLydgCisrfQorKworKyMgZnVuY19h cml0aCBhcml0aG1ldGljLXRlcm0uLi4KKytmdW5jX2FyaXRoICgpCisreworKyAgZnVuY19hcml0 aF9yZXN1bHQ9YGV4cHIgIiRAImAKKyt9CisrCisrIyBmdW5jX2xlbiBzdHJpbmcKKysjIFNUUklO RyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCisrZnVuY19sZW4gKCkKKyt7CisrICBmdW5j X2xlbl9yZXN1bHQ9YGV4cHIgIiQxIiA6ICIuKiIgMj4vZGV2L251bGwgfHwgZWNobyAkbWF4X2Nt ZF9sZW5gCisrfQorKworK19MVF9FT0YKKytlc2FjCisrCisrY2FzZSAkbHRfc2hlbGxfYXBwZW5k IGluCisrICB5ZXMpCisrICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrCisrIyBm dW5jX2FwcGVuZCB2YXIgdmFsdWUKKysjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxs IHZhcmlhYmxlIFZBUi4KKytmdW5jX2FwcGVuZCAoKQorK3sKKysgIGV2YWwgIiQxKz1cJDIiCisr fQorK19MVF9FT0YKKysgICAgOzsKKysgICopCisrICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNm Z2ZpbGUiCisrCisrIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKKysjIEFwcGVuZCBWQUxVRSB0byB0 aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KKytmdW5jX2FwcGVuZCAoKQorK3sKKysgIGV2 YWwgIiQxPVwkJDFcJDIiCisrfQorKworK19MVF9FT0YKKysgICAgOzsKKysgIGVzYWMKKysKKysK KysgIHNlZCAtbiAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS8s JHAnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKKysgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7 IGV4aXQgMSkKKysKKysgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwKKysgICAgKHJtIC1m ICIkb2ZpbGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikK KysgIGNobW9kICt4ICIkb2ZpbGUiCisrCisrCisrICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRvZmls ZSIKKysKKysjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IENYWAorKworKyMgVGhlIGxp bmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KKytMRD0kbHRfTERfQ1hYCisrCisrIyBDb21t YW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Nt ZHM9JGx0X29sZF9hcmNoaXZlX2NtZHNfQ1hYCisrCisrIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNv bXBpbGVyLgorK0NDPSRsdF9jb21waWxlcl9DWFgKKysKKysjIElzIHRoZSBjb21waWxlciB0aGUg R05VIGNvbXBpbGVyPworK3dpdGhfZ2NjPSRHQ0NfQ1hYCisrCisrIyBDb21waWxlciBmbGFnIHRv IHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgorK25vX2J1aWx0aW5fZmxhZz0kbHRfbHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYCisrCisrIyBIb3cgdG8gcGFzcyBhIGxpbmtl ciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgorK3dsPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3ds X0NYWAorKworKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFy eSBvYmplY3RzLgorK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgKKysKKysj IENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCisrbGlua19zdGF0aWNf ZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYCisrCisrIyBEb2VzIGNvbXBpbGVy IHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CisrY29tcGlsZXJfY19v PSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgKKysKKysjIFdoZXRoZXIgb3Igbm90IHRv IGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9u ZWVkX2xjPSRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgKKysKKysjIFdoZXRoZXIgb3Igbm90IHRv IGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCisrYWxs b3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRlbmFibGVfc2hhcmVkX3dpdGhf c3RhdGljX3J1bnRpbWVzX0NYWAorKworKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhp dmUgZGxvcGVucy4KKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWlj X2ZsYWdfc3BlY19DWFgKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9i amVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4KKyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0k bHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYCisrCisrIyBXaGV0aGVyIHRoZSBjb21waWxl ciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4KKytjb21waWxlcl9uZWVk c19vYmplY3Q9JGx0X2NvbXBpbGVyX25lZWRzX29iamVjdF9DWFgKKysKKysjIENyZWF0ZSBhbiBv bGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfZnJv bV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFgKKysKKysjIENyZWF0 ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQgb2YgYSBzaGFy ZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0kbHRfb2xkX2FyY2hp dmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hYCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEg c2hhcmVkIGFyY2hpdmUuCisrYXJjaGl2ZV9jbWRzPSRsdF9hcmNoaXZlX2NtZHNfQ1hYCisrYXJj aGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kc19DWFgKKysKKysjIENvbW1h bmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVp bGRpbmcKKysjIGEgc2hhcmVkIGFyY2hpdmUuCisrbW9kdWxlX2NtZHM9JGx0X21vZHVsZV9jbWRz X0NYWAorK21vZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRzX0NYWAorKwor KyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90LgorK3dpdGhfZ251 X2xkPSRsdF93aXRoX2dudV9sZF9DWFgKKysKKysjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxp YnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgorK2FsbG93X3VuZGVm aW5lZF9mbGFnPSRsdF9hbGxvd191bmRlZmluZWRfZmxhZ19DWFgKKysKKysjIEZsYWcgdGhhdCBl bmZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4KKytub191bmRlZmluZWRfZmxhZz0kbHRfbm9f dW5kZWZpbmVkX2ZsYWdfQ1hYCisrCisrIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8g YSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCisrIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGli ZGlyIGRvZXMgbm90IGV4aXN0CisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19DWFgKKysKKysjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5n LCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkKKysjIGR1cmluZyBsaW5r aW5nLiAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdC4KKyto YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkX0NYWAorKworKyMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0 aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9o YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5n IERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrIyBE SVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2Rl X2RpcmVjdF9DWFgKKysKKysjIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRVwke3No YXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcworKyMgRElSIGludG8gdGhlIHJlc3Vs dGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCisrIyAi YWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0aW5nIFwke3NobGlicGF0 aF92YXJ9IGlmIHRoZQorKyMgbGlicmFyeSBpcyByZWxvY2F0ZWQuCisraGFyZGNvZGVfZGlyZWN0 X2Fic29sdXRlPSRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYCisrCisrIyBTZXQgdG8gInll cyIgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgor KyMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9taW51c19MPSRoYXJkY29k ZV9taW51c19MX0NYWAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9 RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysjIGludG8gdGhlIHJlc3VsdGluZyBi aW5hcnkuCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9D WFgKKysKKysjIFNldCB0byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9t YXRpY2FsbHkgaGFyZGNvZGVzIERJUgorKyMgaW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNl cXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKKysjIGFnYWluc3QgaXQuCisr aGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWNfQ1hYCisrCisrIyBTZXQgdG8g eWVzIGlmIGxpbmtlciBhZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxpYnJhcmllcwor KyMgdG8gcnVudGltZSBwYXRoIGxpc3QuCisraW5oZXJpdF9ycGF0aD0kaW5oZXJpdF9ycGF0aF9D WFgKKysKKysjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxs IGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KKytsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9k ZXBsaWJzX0NYWAorKworKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRo ZSBjb21waWxlci4KKytmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoX0NYWAor KworKyMgU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgorK2Fs d2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWAorKworKyMgVGhl IGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KKytleHBvcnRfc3ltYm9sc19jbWRz PSRsdF9leHBvcnRfc3ltYm9sc19jbWRzX0NYWAorKworKyMgU3ltYm9scyB0aGF0IHNob3VsZCBu b3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KKytleGNsdWRlX2V4cHN5bXM9 JGx0X2V4Y2x1ZGVfZXhwc3ltc19DWFgKKysKKysjIFN5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBi ZSBleHBvcnRlZC4KKytpbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhwc3ltc19DWFgKKysK KysjIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJy YXJpZXMpIHdpdGggdGVtcGxhdGVzLgorK3ByZWxpbmtfY21kcz0kbHRfcHJlbGlua19jbWRzX0NY WAorKworKyMgU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzLgorK2ZpbGVf bGlzdF9zcGVjPSRsdF9maWxlX2xpc3Rfc3BlY19DWFgKKysKKysjIEhvdyB0byBoYXJkY29kZSBh IHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgorK2hhcmRjb2RlX2FjdGlv bj0kaGFyZGNvZGVfYWN0aW9uX0NYWAorKworKyMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5 IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVy X2xpYl9zZWFyY2hfZGlycz0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWAorKworKyMg RGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcg bGlua2VkIHRvCisrIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4KKytwcmVkZXBfb2JqZWN0cz0k bHRfcHJlZGVwX29iamVjdHNfQ1hYCisrcG9zdGRlcF9vYmplY3RzPSRsdF9wb3N0ZGVwX29iamVj dHNfQ1hYCisrcHJlZGVwcz0kbHRfcHJlZGVwc19DWFgKKytwb3N0ZGVwcz0kbHRfcG9zdGRlcHNf Q1hYCisrCisrIyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhl IGNvbXBpbGVyIHdoZW4gbGlua2luZworKyMgYSBzaGFyZWQgbGlicmFyeS4KKytjb21waWxlcl9s aWJfc2VhcmNoX3BhdGg9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFgKKysKKysjICMj IyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBDWFgKKytfTFRfRU9GCisrCisrIDs7CisrCisrICBl c2FjCisrZG9uZSAjIGZvciBhY190YWcKKysKKysKKyt7IChleGl0IDApOyBleGl0IDA7IH0KKytf QUNFT0YKKytjaG1vZCAreCAkQ09ORklHX1NUQVRVUworK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVh bl9maWxlc19zYXZlCisrCisrdGVzdCAkYWNfd3JpdGVfZmFpbCA9IDAgfHwKKysgIHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05G SUdfU1RBVFVTIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogd3JpdGUgZmFpbHVyZSBj cmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KKysKKysKKysjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFuZCB0aGVu IGNhbGxzIGNvbmZpZy5zdGF0dXMuCisrIyBjb25maWcuc3RhdHVzIGRvZXMgaXRzIG93biByZWRp cmVjdGlvbiwgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2cuCisrIyBVbmZvcnR1bmF0ZWx5LCBvbiBE T1MgdGhpcyBmYWlscywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBrZXB0IG9wZW4KKysjIGJ5IGNv bmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3b24ndCBiZSBhYmxlIHRvIHdyaXRlIHRvIGl0OyBp dHMKKysjIG91dHB1dCBpcyBzaW1wbHkgZGlzY2FyZGVkLiAgU28gd2UgZXhlYyB0aGUgRkQgdG8g L2Rldi9udWxsLAorKyMgZWZmZWN0aXZlbHkgY2xvc2luZyBjb25maWcubG9nLCBzbyBpdCBjYW4g YmUgcHJvcGVybHkgKHJlKW9wZW5lZCBhbmQKKysjIGFwcGVuZGVkIHRvIGJ5IGNvbmZpZy5zdGF0 dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZpZ3VyZSwgd2UKKysjIG5lZWQgdG8gbWFrZSB0 aGUgRkQgYXZhaWxhYmxlIGFnYWluLgorK2lmIHRlc3QgIiRub19jcmVhdGUiICE9IHllczsgdGhl bgorKyAgYWNfY3Nfc3VjY2Vzcz06CisrICBhY19jb25maWdfc3RhdHVzX2FyZ3M9CisrICB0ZXN0 ICIkc2lsZW50IiA9IHllcyAmJgorKyAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9IiRhY19jb25m aWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKKysgIGV4ZWMgNT4vZGV2L251bGwKKysgICRTSEVMTCAk Q09ORklHX1NUQVRVUyAkYWNfY29uZmlnX3N0YXR1c19hcmdzIHx8IGFjX2NzX3N1Y2Nlc3M9ZmFs c2UKKysgIGV4ZWMgNT4+Y29uZmlnLmxvZworKyAgIyBVc2UgfHwsIG5vdCAmJiwgdG8gYXZvaWQg ZXhpdGluZyBmcm9tIHRoZSBpZiB3aXRoICQ/ID0gMSwgd2hpY2gKKysgICMgd291bGQgbWFrZSBj b25maWd1cmUgZmFpbCBpZiB0aGlzIGlzIHRoZSBsYXN0IGluc3RydWN0aW9uLgorKyAgJGFjX2Nz X3N1Y2Nlc3MgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisrZmkKKytpZiB0ZXN0IC1uICIkYWNf dW5yZWNvZ25pemVkX29wdHMiICYmIHRlc3QgIiRlbmFibGVfb3B0aW9uX2NoZWNraW5nIiAhPSBu bzsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVucmVjb2du aXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMi ID4mMjt9CisrZmkKKysKKysKKytlY2hvICIKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyskUEFD S0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRpb246CisrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrCisrRGlyZWN0b3JpZXM6CisrICAtIHByZWZpeCAuLi4uLi4uLi4uLi4uLi4gOiAke3By ZWZpeH0KKysgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4uLiA6ICR7ZXhlY19wcmVmaXh9CisrICAt IGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1ZGVkaXJ9CisrICAtIGxpYmRpciAuLi4u Li4uLi4uLi4uLi4gOiAke2xpYmRpcn0KKysgIC0gZG9jZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7 ZG9jZGlyfQorKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4uLi4uIDogJHttYW5kaXJ9CisrICAtIGlu Zm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9CisrCisrU3dpdGNoZXM6CisrICAtIGV4 Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9leGNlcHRpb25zfQorKyAgLSBpbmZvLWRv YyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19kb2N9CisrICAtIGh0bWwtZG9jIC4uLi4u Li4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KKysgIC0gc2hhcmVkIC4uLi4uLi4uLi4uLi4u LiA6ICR7ZW5hYmxlX3NoYXJlZH0KKysgIC0gc3RhdGljIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5h YmxlX3N0YXRpY30KKysKKytEb2N1bWVudGF0aW9uIHRvb2xzOgorKyAgLSB0ZXhpbmZvIC4uLi4u Li4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQorKyAgLSBkb3h5Z2VuIC4uLi4uLi4uLi4uLi4uIDog JHtkb3h5Z2VuX29rfQorKyAgLSBsYXRleCAuLi4uLi4uLi4uLi4uLi4uIDogJHtsYXRleF9va30K KysgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZHZpcHNfb2t9CisrICAtIGdob3N0c2Ny aXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQorKworK1Rlc3RpbmcgdG9vbHM6CisrICAtIGRpZmYg Li4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9CisrICAtIHNlZCAuLi4uLi4uLi4uLi4uLi4u Li4gOiAke3NlZF9va30KKysKKytDb21waWxlci9saW5rZXIgZmxhZ3MvbGlicy9kZWZzOgorKyAg LSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9CisrICAtIENYWEZMQUdTIC4uLi4uLi4u Li4uLi4gOiAke0NYWEZMQUdTfQorKyAgLSBDUFBGTEFHUyAuLi4uLi4uLi4uLi4uIDogJHtDUFBG TEFHU30KKysgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4uLiA6ICR7TERGTEFHU30KKysgIC0gTElC UyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KKysKKytCdXJyaWVkIGhlYWRlciBmaWxlczoK KysgIC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4uIDogJHtlbmFibGVfYnVycmllZF9oZWFk ZXJzfQorKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAuLi4uLi4gOiAke2VuYWJsZV9teXNxbF9i dXJyaWVkX2hlYWRlcnN9CisrICAtIFBPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgLiA6ICR7ZW5h YmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQorKworK0V4dGVybmFsIGxpYnJhcmllczoK KysgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6CisrICAgIG8gQk9PU1RfVkVSU0lPTiAuLi4u Li4gOiAke0JPT1NUX1ZFUlNJT059CisrICAgIG8gQk9PU1RfQ0ZMQUdTIC4uLi4uLi4gOiAke0JP T1NUX0NGTEFHU30KKysgICAgbyBCT09TVF9MSUJTIC4uLi4uLi4uLiA6ICR7Qk9PU1RfTElCU30K KysgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfREFURV9USU1FX0xJQn0KKysg ICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQn0K KysKKysgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfbXlzcWx9 CisrICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAke01ZU1FMX1ZFUlNJT059CisrICAgIG8g TVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NGTEFHU30KKysgICAgbyBNWVNRTF9MREZM QUdTIC4uLi4uLiA6ICR7TVlTUUxfTERGTEFHU30KKysKKysgIC0gUG9zdEdyZVNRTCBzdXBwb3J0 IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbH0KKysgICAgbyBQT1NUR1JFU1FMX1ZF UlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQorKyAgICBvIFBPU1RHUkVTUUxfQ0ZMQUdT IC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KKysgICAgbyBQT1NUR1JFU1FMX0xERkxBR1MgLiA6 ICR7UE9TVEdSRVNRTF9MREZMQUdTfQorKworKyAgLSBPcmFjbGUgc3VwcG9ydCAuLi4uLi4uIDog JHtlbmFibGVfYmFja2VuZF9vcmFjbGV9CisrICAgIG8gT1JBQ0xFX1ZFUlNJT04gLi4uLi4gOiAk e09SQUNMRV9PQ0lfVkVSU0lPTn0KKysgICAgbyBPUkFDTEVfQ0ZMQUdTIC4uLi4uLiA6ICR7T1JB Q0xFX09DSV9DRkxBR1N9CisrICAgIG8gT1JBQ0xFX0xERkxBR1MgLi4uLi4gOiAke09SQUNMRV9P Q0lfTERGTEFHU30KKysKKysgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6CisrICAgIG8gQ1BQ VU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KKysgICAgbyBDUFBVTklUX0NG TEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9CisrICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4u Li4gOiAke0NQUFVOSVRfTElCU30KKyAKKy1lY2hvICcnCistY2QgYnVpbGQvdW5peDsgYGNhdCBs b2NhbC90Y2xgIHBhcnNlLXBhcmFtZXRlcnMudGNsCistCistZWNobyAnJworLWVjaG8gJ0NvbmZp Z3VyZSBkb25lLicKKy1lY2hvICdZZXMsIGl0IHdhcyBzaG9ydC4nCistZWNobyAnJworLWVjaG8g J1lvdSBjYW4gbm93IHJ1biBtYWtlLicKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytOb3cgdHlw ZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNLQUdFLSRW RVJTSU9OIGxpYnJhcnkKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysiCitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlndXJlLmFjIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUu YWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlLmFjCTIw MDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDQwMCBAQAorKyMg UHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0byBwcm9kdWNlIGEgY29uZmlndXJlIHNj cmlwdAorKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfUFJFUkVRKDIuNTkpCisrQUNfQ09QWVJJR0hUKFtDb3B5 cmlnaHQgKEMpIDIwMDQtMjAwOSBNYWNpZWogU29iY3phayA8bXNvYmN6YWtAdXNlcnMuc291cmNl Zm9yZ2UubmV0Pl0pCisrQUNfSU5JVChbU09DSV0sWzMuMC4wXSxbbXNvYmN6YWtAdXNlcnMuc291 cmNlZm9yZ2UubmV0XSxbc29jaV0pCisrQUNfQ09ORklHX0hFQURFUihbc29jaS9jb25maWcuaF0p CisrQUNfQ09ORklHX1NSQ0RJUihbc29jaS9jb3JlL2Vycm9yLmNwcF0pCisrQUNfQ09ORklHX0FV WF9ESVIoW2NvbmZpZ10pCisrQU1fSU5JVF9BVVRPTUFLRQorK0FNX1BBVEhfQ1BQVU5JVCgxLjEw KQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX0NQUFVOSVRdLCBbdGVzdCAieCRDUFBVTklUX0xJQlMi ICE9IHhdKQorKworKyMgUlBNIHJlbGVhc2UgbnVtYmVyCisrUlBNX1JFTEVBU0U9IjEzIgorK0FD X1NVQlNUKFJQTV9SRUxFQVNFKQorKworKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZworK0dF TkVSSUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKKysjICAgICAgICAgICAgICAgICAgICAgICAg fCB8IHwKKysjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0rCisrIyAgICAgICAgICAg ICAgICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2aXNpb246 YWdlCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAg ICAgIHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBh ZGRlZDsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8gemVybyBp ZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiAKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAg ICAgICByZW1vdmVkIG9yIGNoYW5nZWQKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICArLSBp bmNyZW1lbnQgaWYgc291cmNlIGNvZGUgaGFzIGNoYW5nZWQ7CisrIyAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgc2V0IHRvIHplcm8gaWYgY3VycmVudCBpcyBpbmNyZW1lbnRlZAorKyMgICAg ICAgICAgICAgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZCwg cmVtb3ZlZAorKyMgICAgICAgICAgICAgICAgICAgIG9yIGNoYW5nZWQKKytBQ19TVUJTVChHRU5F UklDX0xJQlJBUllfVkVSU0lPTikKKysKKysjIFVwbG9hZCBjb21tYW5kIGZvciBTb3VyY2VGb3Jn ZQorK1VQTE9BRF9DT01NQU5EPSJuY2Z0cHB1dCAtdiB1cGxvYWQuc291cmNlZm9yZ2UubmV0IC9p bmNvbWluZyIKKytBQ19TVUJTVChVUExPQURfQ09NTUFORCkKKysKKysjIENoZWNrIGZvciBob3N0 IGFuZCBkaXNhYmxlIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgaW4gV2luZG93cworK0FDX0NB Tk9OSUNBTF9IT1NUCisrY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1zZG9zKiB8ICotKi1nbzMyKiB8 ICotKi1taW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0qLXdpbmRvd3MqKSAKKysgICAgQUNfRElT QUJMRV9TSEFSRUQKKysgICAgQUNfRU5BQkxFX1NUQVRJQworKyAgICA7OworKyAgKikgIAorKyAg ICBBQ19FTkFCTEVfU0hBUkVECisrICAgIEFDX0RJU0FCTEVfU1RBVElDCisrICAgIDs7CisrZXNh YworKworKyMgQ2hlY2tzIGZvciBwcm9ncmFtcworK3NhdmVfQ1hYRkxBR1M9IiRDWFhGTEFHUyIK KytBQ19QUk9HX0NYWAorK0FDX1BST0dfQ1hYQ1BQCisrQ1hYRkxBR1M9IiRzYXZlX0NYWEZMQUdT IgorK0FDX1BST0dfSU5TVEFMTAorK0FDX1BST0dfTElCVE9PTAorK0FDX1BST0dfTE5fUworK0FD X1BST0dfTUFLRV9TRVQKKysKKysjIFNldCBkZWZhdWx0IGxhbmd1YWdlIHRvIEMrKworK0FDX0xB TkcoW0MrK10pCisrCisrIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKKytBQ19BUkdfRU5B QkxFKGV4Y2VwdGlvbnMsCisrICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxl LWV4Y2VwdGlvbnNdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFibGUgZXhj ZXB0aW9ucyBoYW5kbGluZyBtZWNoYW5pc21dKV0sCisrICAgICAgICAgICAgICBbQUNfREVGSU5F KFtTT0NJX0VYQ0VQVElPTlNdLCBbMV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZp bmUgaWYgeW91IHdhbnQgZXhjZXB0aW9ucyBoYW5kbGluZ10pXSkKKyt0ZXN0ICJ4JGVuYWJsZV9l eGNlcHRpb25zIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCisrdGVzdCAieCRheF9j dl9ib29zdF9kYXRlX3RpbWUiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9ucz15ZXMKKysKKysj IENoZWNrIGZvciBpbmZvIHBhZ2VzCisrQUNfQVJHX0VOQUJMRShpbmZvLWRvYywgCisrICAgICAg ICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1pbmZvLWRvY10sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBJbmZvIGRvY3VtZW50YXRpb25d KV0pCisrdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBlbmFibGVfaW5mb19kb2M9 eWVzCisrCisrCisrIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCisrQUNfQVJHX0VOQUJMRSho dG1sLWRvYywgCisrICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1odG1s LWRvY10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBI VE1MIGRvY3VtZW50YXRpb25dKV0pCisrdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubyAm JiBlbmFibGVfaHRtbF9kb2M9eWVzCisrCisrCisrIyBQcm92aWRlIC0td2l0aC1kb2NkaXIKKytB Q19BUkdfV0lUSChkb2NkaXIsCisrICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgt ZG9jZGlyPURJUl0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZXQgZG9jdW1lbnRh dGlvbiBkaXJlY3RvcnkgdG8gRElSXSldLAorKyAgICAgICAgICAgIFtET0NfRElSPSIkd2l0aHZh bCJdLAorKyAgICAgICAgICAgIFtET0NfRElSPSIiXSkKKytpZiB0ZXN0ICJ4JERPQ19ESVIiICE9 IHg7IHRoZW4KKysgIGRvY2Rpcj0iJERPQ19ESVIiCisrZWxzZQorKyAgZG9jZGlyPSIke2RhdGFk aXJ9L2RvYy8kUEFDS0FHRS0kVkVSU0lPTiIKKytmaQorK0FDX1NVQlNUKGRvY2RpcikKKysKKysK KysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRzZWxmKQorK0FD X0FSR19FTkFCTEUoYnVycmllZC1oZWFkZXJzLCAKKysgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxl LWJ1cnJpZWQtaGVhZGVyc10sCisrCQlbaW5jbHVkZSBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVj dG9yeSBzdHJ1Y3R1cmVdKSwKKysgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisr ICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysgICAgICBlbmFibGVf YnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpIF0sCisrIFsgZW5hYmxlX2J1cnJpZWRfaGVhZGVy cz1ubyBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCisr ZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKKytBTV9DT05ESVRJT05BTChbU09DSV9IRUFERVJT X0JVUklFRF0sIFt0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllc10pCisrQUNf U1VCU1QoU09DSV9IRUFERVJTX0JVUklFRCkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hl YWRlcnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQg JENQUEZMQUdTIgorK2ZpCisrCisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZv ciBNeVNRTCBjbGllbnQpCisrQUNfQVJHX0VOQUJMRShteXNxbC1idXJyaWVkLWhlYWRlcnMsIAor KyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzXSwKKysJCVtp bmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAor KyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysJZW5hYmxlX215c3FsX2J1cnJp ZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15 ZXMKKysgICBmaSBdLAorKyBbIGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8gXSkKKysj IFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgorK2VuYWJsZV9teXNx bF9idXJyaWVkX2hlYWRlcnM9eWVzCisrQU1fQ09ORElUSU9OQUwoW1NPQ0lfTVlTUUxfSEVBREVS U19CVVJJRURdLAorKyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVk X2hlYWRlcnMiID0geHllc10pCisrQUNfU1VCU1QoU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCkK KytpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgor KyAgIENQUEZMQUdTPSItRFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgorK2Zp CisrCisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBQb3N0R3JlU1FMIGNs aWVudCkKKytBQ19BUkdfRU5BQkxFKHBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzLCAKKysgQVNf SEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzXSwKKysJCVtp bmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJl XSksCisrIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKwllbmFibGVfcG9zdGdy ZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBlbHNlCisrCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1 cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaSBdLAorKyBbIGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycz1ubyBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5l cmF0aW9uCisrZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcworK0FNX0NPTkRJ VElPTkFMKFtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURdLAorKyAgICAgICAgICAgICAg IFt0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzXSkKKytB Q19TVUJTVChTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQpCisraWYgdGVzdCAieCRlbmFi bGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdT PSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkKKysKKysK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qub3JnKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KytBWF9CT09TVChbMS4zM10pCisrQUNfU1VCU1QoQk9PU1RfVkVSU0lPTikKKytBQ19TVUJTVChC T09TVF9DRkxBR1MpCisrQUNfU1VCU1QoQk9PU1RfTElCUykKKytBQ19TVUJTVChCT09TVF9EQVRF X1RJTUVfTElCKQorK0FDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpCisrCisrCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFja2VuZCAoQyBjbGllbnQgQVBJ KTogaHR0cDovL3d3dy5teXNxbC5vcmcKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfQVJHX0VOQUJMRShb YmFja2VuZC1teXNxbF0sCisrICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLW15 c3FsXSwKKysgICAgICAgIFtidWlsZC1pbiBNeVNRTCBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1 bHQ9bm9AOj5AXQorKyAgICApLAorKyAgICBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRo ZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vCisrICAgICAgZWxzZQorKwkgZW5h YmxlX2JhY2tlbmRfbXlzcWw9eWVzCisrICAgICAgZmkgXSwKKysgICAgWyBlbmFibGVfYmFja2Vu ZF9teXNxbD1ubyBdCisrKQorKworK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0g Inh5ZXMiOyB0aGVuCisrICAgTVlTUUxfRElSUz0ibXlzcWwiCisrICAgTVlTUUxfUkVRX1ZFUlNJ T049IjMuMC4wIgorKyAgIEFYX0xJQl9NWVNRTChbJE1ZU1FMX1JFUV9WRVJTSU9OXSkKKytmaQor K0FNX0NPTkRJVElPTkFMKFtIQVZFX01ZU1FMXSwgW3Rlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlz cWwiID0geHllc10pCisrI01ZU1FMX0RJUlM9Im15c3FsIgorKworK0FDX1NVQlNUKFtNWVNRTF9E SVJTXSkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIE9yYWNsZSBiYWNrZW5k CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrQUNfQVJHX0VOQUJMRShbYmFja2VuZC1vcmFjbGVdLAorKyAgICBB Q19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1vcmFjbGVdLAorKwkJICAgW2J1aWxkLWlu IE9SQUNMRSBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9AOj5AXSksCisrICAgIFsgaWYg dGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfb3Jh Y2xlPW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPXllcworKyAgICAg IGZpIF0sCisrICAgIFsgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vIF0KKyspCisrCisraWYgdGVz dCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMiOyB0aGVuCisrICAgT1JBQ0xFX0RJ UlM9Im9yYWNsZSIKKysgICBPUkFDTEVfT0NJX1JFUV9WRVJTSU9OPSI5LjAiCisrICAgQVhfTElC X09SQUNMRV9PQ0koJE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04pCisrZmkKKytBTV9DT05ESVRJT05B TChbSEFWRV9PUkFDTEVdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0geHllc10p CisrI09SQUNMRV9ESVJTPSJvcmFjbGUiCisrCisrQUNfU1VCU1QoW09SQUNMRV9ESVJTXSkKKysK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFja2VuZAorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtcG9zdGdyZXNxbF0sCisrICAgIEFDX0hF TFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWxdLAorKyAgICAgICAgW2J1aWxk LWluIFBvc3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0KKysgICAg KSwKKysgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFi bGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRf cG9zdGdyZXNxbD15ZXMKKysgICAgICBmaSBdLAorKyAgICBbIGVuYWJsZV9iYWNrZW5kX3Bvc3Rn cmVzcWw9bm8gXQorKykKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwi ID0gInh5ZXMiOyB0aGVuCisrICAgUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgorKyAgIFBP U1RHUkVTUUxfUkVRX1ZFUlNJT049IjcuMS40IgorKyAgIEFYX0xJQl9QT1NUR1JFU1FMKCRQT1NU R1JFU1FMX1JFUV9WRVJTSU9OKQorK2ZpCisrQU1fQ09ORElUSU9OQUwoW0hBVkVfUE9TVEdSRVNR TF0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHllc10pCisrI1BPU1RH UkVTUUxfRElSUz0icG9zdGdyZXNxbCIKKysKKytBQ19TVUJTVChbUE9TVEdSRVNRTF9ESVJTXSkK KysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIGRvY3VtZW50YXRpb24KKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scworKyNBQ19D SEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25vXSkKKysjaWYgdGVz dCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgorKyMgIHRlc3QgIngkdGV4aW5mb19v ayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KKysjICBBQ19QQVRIX1BST0coW1BFUkxd LCBbcGVybF0sIFtdKQorKyNmaQorK0FNX0NPTkRJVElPTkFMKFtJTkZPX0RPQ10sIFt0ZXN0ICJ4 JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzXSkKKysKKysjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlv biBidWlsZCB0b29scworK0FDX0NIRUNLX1BST0coW2RveHlnZW5fb2tdLCBbZG94eWdlbl0sIFt5 ZXNdLCBbbm9dKQorK0FDX0NIRUNLX1BST0coW2xhdGV4X29rXSwgW2xhdGV4XSwgW3llc10sIFtu b10pCisrQUNfQ0hFQ0tfUFJPRyhbZHZpcHNfb2tdLCBbZHZpcHNdLCBbeWVzXSwgW25vXSkKKytB Q19DSEVDS19QUk9HKFtnc19va10sIFtnc10sIFt5ZXNdLCBbbm9dKQorK2lmIHRlc3QgIngkZW5h YmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KKysgIHRlc3QgIngkZG94eWdlbl9vayIgIT0geHll cyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngkbGF0ZXhfb2siICE9IHh5ZXMgJiYg ZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGR2aXBzX29rIiAhPSB4eWVzICYmIGVuYWJs ZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9k b2M9bm8KKysgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCisrZmkKKytBTV9DT05E SVRJT05BTChbSFRNTF9ET0NdLCBbdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiID0geHllc10pCisr CisrCisrIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3RzCisrQUNfQ0hFQ0tf UFJPRyhbZGlmZl9va10sIFtkaWZmXSwgW3llc10sIFtub10pCisrQUNfQ0hFQ0tfUFJPRyhbc2Vk X29rXSwgW3NlZF0sIFt5ZXNdLCBbbm9dKQorK2VuYWJsZV90ZXN0cz15ZXMKKyt0ZXN0ICJ4JGRp ZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisrdGVzdCAieCRzZWRfb2siICE9IHh5 ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisrQU1fQ09ORElUSU9OQUwoW1JVTl9URVNUU10sIFt0ZXN0 ICJ4JGVuYWJsZV90ZXN0cyIgPSB4eWVzXSkKKysKKysKKysjIENoZWNrcyBmb3IgaGVhZGVyIGZp bGVzCisrQUNfSEVBREVSX1NUREMKKytBQ19IRUFERVJfVElNRQorK0FDX0NIRUNLX0hFQURFUlMo W2NtYXRoIFwKKysgIGRlcXVlIFwKKysgIGZzdHJlYW0gXAorKyAgaW9tYW5pcCBcCisrICBpb3N0 cmVhbSBcCisrICBzc3RyZWFtIFwKKysgIGxpbWl0cyBcCisrICBsaXN0IFwKKysgIHNldCBcCisr ICB2ZWN0b3IgXAorKyAgbWFwIFwKKysgIHF1ZXVlIFwKKysgIHN0ZGV4Y2VwdCBcCisrICBzdHJp bmddKQorKworKworKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMKKytBQ19DT05GSUdfRklMRVMo CisrCU1ha2VmaWxlCisrCXNvY2ktY29uZmlnCisrCXNvY2kucGMKKysJc29jaS5zcGVjCisrCXNv Y2kvTWFrZWZpbGUKKysJc29jaS9jb3JlL01ha2VmaWxlCisrCXNvY2kvY29yZS90ZXN0L01ha2Vm aWxlCisrCXNvY2kvYmFja2VuZHMvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9teXNxbC9NYWtl ZmlsZQorKwlzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL01ha2VmaWxlCisrCXNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01h a2VmaWxlCisrCXNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlCisrCXNvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvTWFrZWZpbGUKKysJbWFuL01ha2VmaWxlCisrICAgICAgICBkb2MvTWFrZWZp bGUKKysgICAgICAgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZQorKwlidWlsZC9NYWtlZmlsZQorKwli dWlsZC91bml4L01ha2VmaWxlCisrCWJ1aWxkL21zdmM4MC9NYWtlZmlsZQorKwlidWlsZC9tc3Zj ODAvZGxsL01ha2VmaWxlCisrCWJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUpCisrCisrQUNfT1VU UFVUCisrCisrZWNobyAiCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrJFBBQ0tBR0UtJFZFUlNJ T04gbGlicmFyeSBjb25maWd1cmF0aW9uOgorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK0Rp cmVjdG9yaWVzOgorKyAgLSBwcmVmaXggLi4uLi4uLi4uLi4uLi4uIDogJHtwcmVmaXh9CisrICAt IGV4ZWNfcHJlZml4IC4uLi4uLi4uLi4gOiAke2V4ZWNfcHJlZml4fQorKyAgLSBpbmNsdWRlZGly IC4uLi4uLi4uLi4uIDogJHtpbmNsdWRlZGlyfQorKyAgLSBsaWJkaXIgLi4uLi4uLi4uLi4uLi4u IDogJHtsaWJkaXJ9CisrICAtIGRvY2RpciAuLi4uLi4uLi4uLi4uLi4gOiAke2RvY2Rpcn0KKysg IC0gbWFuZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bWFuZGlyfQorKyAgLSBpbmZvZGlyIC4uLi4u Li4uLi4uLi4uIDogJHtpbmZvZGlyfQorKworK1N3aXRjaGVzOgorKyAgLSBleGNlcHRpb25zIC4u Li4uLi4uLi4uIDogJHtlbmFibGVfZXhjZXB0aW9uc30KKysgIC0gaW5mby1kb2MgLi4uLi4uLi4u Li4uLiA6ICR7ZW5hYmxlX2luZm9fZG9jfQorKyAgLSBodG1sLWRvYyAuLi4uLi4uLi4uLi4uIDog JHtlbmFibGVfaHRtbF9kb2N9CisrICAtIHNoYXJlZCAuLi4uLi4uLi4uLi4uLi4gOiAke2VuYWJs ZV9zaGFyZWR9CisrICAtIHN0YXRpYyAuLi4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9zdGF0aWN9 CisrCisrRG9jdW1lbnRhdGlvbiB0b29sczoKKysgIC0gdGV4aW5mbyAuLi4uLi4uLi4uLi4uLiA6 ICR7dGV4aW5mb19va30KKysgIC0gZG94eWdlbiAuLi4uLi4uLi4uLi4uLiA6ICR7ZG94eWdlbl9v a30KKysgIC0gbGF0ZXggLi4uLi4uLi4uLi4uLi4uLiA6ICR7bGF0ZXhfb2t9CisrICAtIGR2aXBz IC4uLi4uLi4uLi4uLi4uLi4gOiAke2R2aXBzX29rfQorKyAgLSBnaG9zdHNjcmlwdCAuLi4uLi4u Li4uIDogJHtnc19va30KKysKKytUZXN0aW5nIHRvb2xzOgorKyAgLSBkaWZmIC4uLi4uLi4uLi4u Li4uLi4uIDogJHtkaWZmX29rfQorKyAgLSBzZWQgLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtzZWRf b2t9CisrCisrQ29tcGlsZXIvbGlua2VyIGZsYWdzL2xpYnMvZGVmczoKKysgIC0gQ1hYIC4uLi4u Li4uLi4uLi4uLi4uLiA6ICR7Q1hYfQorKyAgLSBDWFhGTEFHUyAuLi4uLi4uLi4uLi4uIDogJHtD WFhGTEFHU30KKysgIC0gQ1BQRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1BQRkxBR1N9CisrICAt IExERkxBR1MgLi4uLi4uLi4uLi4uLi4gOiAke0xERkxBR1N9CisrICAtIExJQlMgLi4uLi4uLi4u Li4uLi4uLi4gOiAke0xJQlN9CisrCisrQnVycmllZCBoZWFkZXIgZmlsZXM6CisrICAtIFNPQ0lf SEVBREVSU19CVVJJRUQgLi4uLi4uLiA6ICR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVyc30KKysgIC0g TVlTUUxfSEVBREVSU19CVVJJRUQgLi4uLi4uIDogJHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzfQorKyAgLSBQT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEIC4gOiAke2VuYWJsZV9wb3N0Z3Jl c3FsX2J1cnJpZWRfaGVhZGVyc30KKysKKytFeHRlcm5hbCBsaWJyYXJpZXM6CisrICAtIEJvb3N0 IC4uLi4uLi4uLi4uLi4uLi4gOgorKyAgICBvIEJPT1NUX1ZFUlNJT04gLi4uLi4uIDogJHtCT09T VF9WRVJTSU9OfQorKyAgICBvIEJPT1NUX0NGTEFHUyAuLi4uLi4uIDogJHtCT09TVF9DRkxBR1N9 CisrICAgIG8gQk9PU1RfTElCUyAuLi4uLi4uLi4gOiAke0JPT1NUX0xJQlN9CisrICAgIG8gQk9P U1RfRFRfTElCIC4uLi4uLi4gOiAke0JPT1NUX0RBVEVfVElNRV9MSUJ9CisrICAgIG8gQk9PU1Rf UE9fTElCIC4uLi4uLi4gOiAke0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJ9CisrCisrICAtIE15 U1FMIHN1cHBvcnQgLi4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX215c3FsfQorKyAgICBvIE1Z U1FMX1ZFUlNJT04gLi4uLi4uIDogJHtNWVNRTF9WRVJTSU9OfQorKyAgICBvIE1ZU1FMX0NGTEFH UyAuLi4uLi4uIDogJHtNWVNRTF9DRkxBR1N9CisrICAgIG8gTVlTUUxfTERGTEFHUyAuLi4uLi4g OiAke01ZU1FMX0xERkxBR1N9CisrCisrICAtIFBvc3RHcmVTUUwgc3VwcG9ydCAuLi4gOiAke2Vu YWJsZV9iYWNrZW5kX3Bvc3RncmVzcWx9CisrICAgIG8gUE9TVEdSRVNRTF9WRVJTSU9OIC4gOiAk e1BPU1RHUkVTUUxfVkVSU0lPTn0KKysgICAgbyBQT1NUR1JFU1FMX0NGTEFHUyAuLiA6ICR7UE9T VEdSRVNRTF9DRkxBR1N9CisrICAgIG8gUE9TVEdSRVNRTF9MREZMQUdTIC4gOiAke1BPU1RHUkVT UUxfTERGTEFHU30gCisrCisrICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9i YWNrZW5kX29yYWNsZX0KKysgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09D SV9WRVJTSU9OfQorKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NG TEFHU30KKysgICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdT fSAKKysKKysgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6CisrICAgIG8gQ1BQVU5JVF9WRVJT SU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KKysgICAgbyBDUFBVTklUX0NGTEFHUyAuLi4u LiA6ICR7Q1BQVU5JVF9DRkxBR1N9CisrICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4uLi4gOiAke0NQ UFVOSVRfTElCU30KKysKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytOb3cgdHlwZSAnbWFrZSAm JiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNLQUdFLSRWRVJTSU9OIGxp YnJhcnkKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysiCitkaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svQ09QWUlORyBzb2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlORworLS0tIHNvY2ktMy4wLjBf NC1wYWNrL0NPUFlJTkcJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlORwkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCAr MDIwMAorQEAgLTIxLDMgKzIxLDQgQEAKKyBGT1IgQU5ZIERBTUFHRVMgT1IgT1RIRVIgTElBQklM SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyBBUklTSU5HIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIKKyBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisrCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9k b2MvYmFja2VuZHMvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2Vu ZHMvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6 NTQ6MjIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE2IEBACisrIyMgZG9jL2JhY2tlbmRz IHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisr aW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworKyMjIFNvdXJjZSBkaXJlY3RvcnkKKysK KytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9CisrCisr RVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jja19zb3VyY2VzKQor KyNmaXJlYmlyZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwgb3JhY2xlLmh0 bWwgcG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAorKworK0VYVFJBX0RJU1QgPSAkKEVYVFJB X0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKysKKysjcGtnZGF0YWRpciA9ICQoaHRtbF9i Y2tfc291cmNlcykKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFr ZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2Vu ZHMvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0w LDAgKzEsNTU5IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4y IGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0 IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAy LAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQg YnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNF VF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFD S0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9 ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lP TisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFs bF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwor K2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0g JChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQor K05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoK KytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RB TEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAK KytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUu aW4gXAorKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgorK3N1YmRpciA9IGRvYy9iYWNrZW5kcworK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2Fj bG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf Ym9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29u ZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVO Q0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkg LWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05G SUdfQ0xFQU5fRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrUkVDVVJTSVZF X1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwK KysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBc CisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1w ZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJ aW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2 ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRp c3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9IGV0 YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklM RVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9E SVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAK KytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVU T01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1Rf Q0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytC T09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NU UkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9M SUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNf TElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhS RUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9P U1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9 IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQ ID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBV TklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklU X0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJ T05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hY REVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9X QAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1V VElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9 IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQg PSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0g QEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElO U1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0g PSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAor K0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBA TERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0g QExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExO X1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytN S0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNR TF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytN WVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9W RVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpE VU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisr T1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZM QUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xF X09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQ QUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBP UlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQ QUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BB Q0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFU SF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisr UE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJT ID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9M REZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFO TElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VE QAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVS U19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBT VFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZF UlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFi c19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190 b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2Fj X2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAor K2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVh ZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJA CisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0g QGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWls ZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3Zl bmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0 YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9 IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJA CisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisr Z3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlh c0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92 ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIg PSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0 YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGli ZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxz dGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIg PSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGlu Y2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dy YW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBw c2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRz dGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZk aXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9i dWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1 aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0 b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK2h0bWxfYmNrX3NvdXJjZXMgPSAkKHRvcF9z cmNkaXIpL2RvYy9iYWNrZW5kcy9pbmRleC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFj a2VuZHMvZmlyZWJpcmQuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL215c3Fs Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9vZGJjLmh0bWwgXAorKwkkKHRv cF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9vcmFjbGUuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9j L2JhY2tlbmRzL3Bvc3RncmVzcWwuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRz L3NxbGl0ZTMuaHRtbAorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytT VUJESVJTID0gCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jj a19zb3VyY2VzKQorKyNmaXJlYmlyZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0 bWwgb3JhY2xlLmh0bWwgcG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAorK0VYVFJBX0RJU1Qg PSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKythbGw6IGFsbC1yZWN1cnNp dmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01h a2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2Vz Lm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNh c2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAg ICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNl IGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25l OyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBkb2Mv YmFja2VuZHMvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVU T01BS0UpIC0tZ251ICBkb2MvYmFja2VuZHMvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxl CisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsg XAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJ R19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTog ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbwor KworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGly ZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBj ZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlz IE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczog aW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMg c2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hp Y2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1 biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24g dGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWls Y29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNl ICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0n ZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAor Kwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRh cmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g XAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFt IjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBm aTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVz dCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKwor KyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlm b3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0q IHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBl c2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJ ICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMp JyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0n JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAi LiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZp OyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBz ZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBl Y2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisr CSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisr CSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0 KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwi CisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6 CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRl c3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJ U1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkg JChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAg IGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRp OyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25l bXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZp bGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFH UworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdT X0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisr CWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24p ID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNs dWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249 LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAor KwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFH UyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdT X0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5p cXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1Mp ICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7 IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVS UykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdz JCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFH UykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6Cisr CWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0 b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytk aXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRI IHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIk KHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJz dHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBp biAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNk aXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9i dWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChN S0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58 JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwll c2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYg JCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7 IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIv JCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChz cmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBj cCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAg ICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQg MTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAg ICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQg MTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7 IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwg JChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisr CSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICB0b3Bf ZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIChjZCAk JHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAg ICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkZGlz dGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBf bGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAx OyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2st cmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1y ZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQor K2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5z dGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKwor K2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJl Y3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RB TExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBc CisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dS QU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVy aWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMp CisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlz IGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZp bGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3Qg LXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJp YyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4t cmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlz dGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysK KytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vy c2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZp OiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFs bC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxs LWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3Rh bGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisr CisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRp c3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9z dGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1h bToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgor KworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRT KSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwg YWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBc CisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAor KwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRt bCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRh dGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFs bC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0g aW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRm IGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3Ry aXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxk aXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRm IHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5z dGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjcGtnZGF0YWRpciA9ICQoaHRtbF9iY2tfc291 cmNlcykKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4 cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lz ViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAv ZG9jL2JhY2tlbmRzL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2Vu ZHMvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNlcy5tawkyMDA5LTA1LTIyIDIyOjU0 OjIyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3IEBACisraHRtbF9iY2tfc291cmNlcyA9 ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2luZGV4Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIp L2RvYy9iYWNrZW5kcy9maXJlYmlyZC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2Vu ZHMvbXlzcWwuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29kYmMuaHRtbCBc CisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29yYWNsZS5odG1sIFwKKysJJCh0b3Bfc3Jj ZGlyKS9kb2MvYmFja2VuZHMvcG9zdGdyZXNxbC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2Mv YmFja2VuZHMvc3FsaXRlMy5odG1sCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL01h a2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmFtCTIwMDktMDUtMjMg MTA6MDY6NTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDggQEAKKytpbmNsdWRlICQodG9w X3NyY2RpcikvZG9jL3NvdXJjZXMubWsKKysKKytTVUJESVJTID0gYmFja2VuZHMKKysKKytFWFRS QV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfbG9jYWxfc291cmNlcykgXAor KwkkKGNzc19sb2NhbF9zb3VyY2VzKSAkKGltZ19sb2NhbF9zb3VyY2VzKQorKworK0VYVFJBX0RJ U1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtl ZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFr ZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowNjo1NS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEs NTYyIEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20g TWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAx OTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMg MjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3 OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtF QAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAK Kytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5j bHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQo UEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkg LWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3Rh bGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNU QUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1B TF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JN QUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6 CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNU X0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAor KwkkKHRvcF9zcmNkaXIpL2RvYy9zb3VyY2VzLm1rCisrc3ViZGlyID0gZG9jCisrQUNMT0NBTF9N NCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykg JChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxk aXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9T T1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJz aXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5z dGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNp dmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVh bi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0g JChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAk KFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0g QEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBC T09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdF WF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9M SUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhS RUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBA Qk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklB TElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZM QUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQ UFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVO SVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJT SU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBA CisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZ R1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJA CisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9 IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQ ID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBH UkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRB QAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQg PSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RS SVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9 IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9 IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJ TkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBA TVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNR TF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJ VEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElS UyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFH U0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9P Q0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RP T0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9S VCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAor K1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQ QUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQ QVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09O RklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFH U0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERG TEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RH UkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9S RUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBA U0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01N QU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGly QAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190 b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3Rf Q0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklO ID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xl YWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAor K2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9 IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNA CisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWls ZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFk aXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0g QGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tA CisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZp eCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9z dF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3Mg PSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0 bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAK KytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGli ZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0g QGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9 IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29s ZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZp eCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9y bV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sg PSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9 IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0 YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3Rv cF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAor K2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzLmh0bWwgXAor KwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Jl eW9uZC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYm9vc3QuaHRtbCBcCisrCSQodG9wX3Ny Y2RpcikvZG9jL2Vycm9ycy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvZXhjaGFuZ2UuaHRt bCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2Rv Yy9pbnRlcmZhY2VzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9tdWx0aXRocmVhZGluZy5o dG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxlLmh0bWwgXAorKwkkKHRvcF9zcmNk aXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3N0YXRlbWVudHMu aHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5odG1sCisrCisrY3NzX2xvY2Fs X3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHlsZS5jc3MKKytpbWdfbG9jYWxfc291cmNl cyA9ICQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5wbmcKKytTVUJESVJTID0gYmFja2VuZHMK KytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfbG9jYWxfc291cmNl cykgXAorKwkkKGNzc19sb2NhbF9zb3VyY2VzKSAkKGltZ19sb2NhbF9zb3VyY2VzKQorKworK0VY VFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKythbGw6IGFs bC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChz cmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsgJChhbV9fY29u ZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29u ZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkg ICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9 OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAn IGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGRvYy9NYWtlZmlsZSc7IFwK KysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgIGRvYy9NYWtl ZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxl LmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkg ICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXli ZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9w X3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKwor KyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQo QUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworK21vc3RseWNsZWFu LWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAu bGlicyBfbGlicworKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9z dGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScg d2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZh bHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAor KyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBj b25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8g YmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBw YXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJF Q1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAk JE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSop OzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlk b25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1 cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxj b207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAor KwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisr CWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Cisr CUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJ ICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFp bGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1u bzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVh bi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMp JyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAor KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0i JCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4i OyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1 YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRp ciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAor Kwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIi ID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwK KysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDog JChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lk IC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChI RUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklM RVMpICQoTElTUCkKKysJdGFncz07IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykg LS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBp bmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwll bHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBc CisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0 ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVf b3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisr CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwg XAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsg ZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAor KwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKKysJICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdT OiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5D SUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRl c3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQo Q1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRh Z3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGly KSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAk KEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJ RCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVT KQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAor KwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUg fCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8 XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlz dF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwg XAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwK KysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2Zp bGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4g ZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsg dGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwn YDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQo c3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRp cikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmls ZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1m ICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGly KS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0 PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3Rk aXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGly IiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3Rk aXIpICYmIHB3ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRp cikgJiYgcHdkYDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBc CisrCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3Zl X2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlz dGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2st YW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlCisr aW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgorK2lu c3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVj dXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0YWxs OiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5z dGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJJChN QUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJP R1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwK KysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBp bnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rp c3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBy bSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6 CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVz ZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRv b2xzIHRvIHJlYnVpbGQuIgorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFu OiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1y ZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZv OiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKwor K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06 CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFs bC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMt cmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1h aW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXIt Y2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0 bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2 ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5p bnN0YWxsLWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTog JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RB R1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFu LWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2 aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1h bSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1k dmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0 YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFu IGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFt IGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxk aXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFu LWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5p bnN0YWxsIHVuaW5zdGFsbC1hbQorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBH TlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0 ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JU OgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9zb3VyY2VzLm1rIHNvY2ktMy4wLjBf dHJlcDMwMC9kb2Mvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9zb3VyY2Vz Lm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL2RvYy9zb3VyY2VzLm1rCTIwMDktMDUtMjMgMTA6MDY6NDYuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDE4IEBACisraHRtbF9sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9k b2MvYmFja2VuZHMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Jhc2ljcy5odG1sIFwKKysJ JCh0b3Bfc3JjZGlyKS9kb2MvYmV5b25kLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9ib29z dC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvZXJyb3JzLmh0bWwgXAorKwkkKHRvcF9zcmNk aXIpL2RvYy9leGNoYW5nZS5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvaW5kZXguaHRtbCBc CisrCSQodG9wX3NyY2RpcikvZG9jL2ludGVyZmFjZXMuaHRtbCBcCisrCSQodG9wX3NyY2Rpcikv ZG9jL211bHRpdGhyZWFkaW5nLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9yYXRpb25hbGUu aHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3JlZmVyZW5jZS5odG1sIFwKKysJJCh0b3Bfc3Jj ZGlyKS9kb2Mvc3RhdGVtZW50cy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2Mvc3RydWN0dXJl Lmh0bWwKKysKKytjc3NfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL3N0eWxlLmNz cworKworK2ltZ19sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3RydWN0dXJlLnBu ZworKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RBTEwgc29jaS0zLjAuMF90cmVw MzAwL0lOU1RBTEwKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9JTlNUQUxMCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL0lOU1RBTEwJMjAw OS0wNS0yMyAxMDowMjowMy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjkxIEBACisrSW5z dGFsbGF0aW9uIEluc3RydWN0aW9ucworKyoqKioqKioqKioqKioqKioqKioqKioqKioKKysKKytD b3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIw MDQsIDIwMDUsCisrMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysKKysgICBUaGlzIGZpbGUgaXMgZnJlZSBkb2N1bWVudGF0aW9uOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisrdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlz dHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgorKworK0Jhc2ljIEluc3RhbGxhdGlvbgorKz09PT09PT09 PT09PT09PT09PQorKworKyAgIEJyaWVmbHksIHRoZSBzaGVsbCBjb21tYW5kcyBgLi9jb25maWd1 cmU7IG1ha2U7IG1ha2UgaW5zdGFsbCcgc2hvdWxkCisrY29uZmlndXJlLCBidWlsZCwgYW5kIGlu c3RhbGwgdGhpcyBwYWNrYWdlLiAgVGhlIGZvbGxvd2luZworK21vcmUtZGV0YWlsZWQgaW5zdHJ1 Y3Rpb25zIGFyZSBnZW5lcmljOyBzZWUgdGhlIGBSRUFETUUnIGZpbGUgZm9yCisraW5zdHJ1Y3Rp b25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZS4KKysKKysgICBUaGUgYGNvbmZpZ3VyZScgc2hl bGwgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGNvcnJlY3QgdmFsdWVzIGZvcgorK3ZhcmlvdXMg c3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24uICBJdCB1 c2VzCisrdGhvc2UgdmFsdWVzIHRvIGNyZWF0ZSBhIGBNYWtlZmlsZScgaW4gZWFjaCBkaXJlY3Rv cnkgb2YgdGhlIHBhY2thZ2UuCisrSXQgbWF5IGFsc28gY3JlYXRlIG9uZSBvciBtb3JlIGAuaCcg ZmlsZXMgY29udGFpbmluZyBzeXN0ZW0tZGVwZW5kZW50CisrZGVmaW5pdGlvbnMuICBGaW5hbGx5 LCBpdCBjcmVhdGVzIGEgc2hlbGwgc2NyaXB0IGBjb25maWcuc3RhdHVzJyB0aGF0CisreW91IGNh biBydW4gaW4gdGhlIGZ1dHVyZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9u LCBhbmQgYQorK2ZpbGUgYGNvbmZpZy5sb2cnIGNvbnRhaW5pbmcgY29tcGlsZXIgb3V0cHV0ICh1 c2VmdWwgbWFpbmx5IGZvcgorK2RlYnVnZ2luZyBgY29uZmlndXJlJykuCisrCisrICAgSXQgY2Fu IGFsc28gdXNlIGFuIG9wdGlvbmFsIGZpbGUgKHR5cGljYWxseSBjYWxsZWQgYGNvbmZpZy5jYWNo ZScKKythbmQgZW5hYmxlZCB3aXRoIGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJyBvciBzaW1w bHkgYC1DJykgdGhhdCBzYXZlcworK3RoZSByZXN1bHRzIG9mIGl0cyB0ZXN0cyB0byBzcGVlZCB1 cCByZWNvbmZpZ3VyaW5nLiAgQ2FjaGluZyBpcworK2Rpc2FibGVkIGJ5IGRlZmF1bHQgdG8gcHJl dmVudCBwcm9ibGVtcyB3aXRoIGFjY2lkZW50YWwgdXNlIG9mIHN0YWxlCisrY2FjaGUgZmlsZXMu CisrCisrICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3VhbCB0aGluZ3MgdG8gY29tcGlsZSB0aGUg cGFja2FnZSwgcGxlYXNlIHRyeQorK3RvIGZpZ3VyZSBvdXQgaG93IGBjb25maWd1cmUnIGNvdWxk IGNoZWNrIHdoZXRoZXIgdG8gZG8gdGhlbSwgYW5kIG1haWwKKytkaWZmcyBvciBpbnN0cnVjdGlv bnMgdG8gdGhlIGFkZHJlc3MgZ2l2ZW4gaW4gdGhlIGBSRUFETUUnIHNvIHRoZXkgY2FuCisrYmUg Y29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4gIElmIHlvdSBhcmUgdXNpbmcgdGhlIGNh Y2hlLCBhbmQgYXQKKytzb21lIHBvaW50IGBjb25maWcuY2FjaGUnIGNvbnRhaW5zIHJlc3VsdHMg eW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91CisrbWF5IHJlbW92ZSBvciBlZGl0IGl0LgorKwor KyAgIFRoZSBmaWxlIGBjb25maWd1cmUuYWMnIChvciBgY29uZmlndXJlLmluJykgaXMgdXNlZCB0 byBjcmVhdGUKKytgY29uZmlndXJlJyBieSBhIHByb2dyYW0gY2FsbGVkIGBhdXRvY29uZicuICBZ b3UgbmVlZCBgY29uZmlndXJlLmFjJyBpZgorK3lvdSB3YW50IHRvIGNoYW5nZSBpdCBvciByZWdl bmVyYXRlIGBjb25maWd1cmUnIHVzaW5nIGEgbmV3ZXIgdmVyc2lvbgorK29mIGBhdXRvY29uZicu CisrCisrVGhlIHNpbXBsZXN0IHdheSB0byBjb21waWxlIHRoaXMgcGFja2FnZSBpczoKKysKKysg IDEuIGBjZCcgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBwYWNrYWdlJ3Mgc291cmNl IGNvZGUgYW5kIHR5cGUKKysgICAgIGAuL2NvbmZpZ3VyZScgdG8gY29uZmlndXJlIHRoZSBwYWNr YWdlIGZvciB5b3VyIHN5c3RlbS4KKysKKysgICAgIFJ1bm5pbmcgYGNvbmZpZ3VyZScgbWlnaHQg dGFrZSBhIHdoaWxlLiAgV2hpbGUgcnVubmluZywgaXQgcHJpbnRzCisrICAgICBzb21lIG1lc3Nh Z2VzIHRlbGxpbmcgd2hpY2ggZmVhdHVyZXMgaXQgaXMgY2hlY2tpbmcgZm9yLgorKworKyAgMi4g VHlwZSBgbWFrZScgdG8gY29tcGlsZSB0aGUgcGFja2FnZS4KKysKKysgIDMuIE9wdGlvbmFsbHks IHR5cGUgYG1ha2UgY2hlY2snIHRvIHJ1biBhbnkgc2VsZi10ZXN0cyB0aGF0IGNvbWUgd2l0aAor KyAgICAgdGhlIHBhY2thZ2UuCisrCisrICA0LiBUeXBlIGBtYWtlIGluc3RhbGwnIHRvIGluc3Rh bGwgdGhlIHByb2dyYW1zIGFuZCBhbnkgZGF0YSBmaWxlcyBhbmQKKysgICAgIGRvY3VtZW50YXRp b24uCisrCisrICA1LiBZb3UgY2FuIHJlbW92ZSB0aGUgcHJvZ3JhbSBiaW5hcmllcyBhbmQgb2Jq ZWN0IGZpbGVzIGZyb20gdGhlCisrICAgICBzb3VyY2UgY29kZSBkaXJlY3RvcnkgYnkgdHlwaW5n IGBtYWtlIGNsZWFuJy4gIFRvIGFsc28gcmVtb3ZlIHRoZQorKyAgICAgZmlsZXMgdGhhdCBgY29u ZmlndXJlJyBjcmVhdGVkIChzbyB5b3UgY2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yCisrICAg ICBhIGRpZmZlcmVudCBraW5kIG9mIGNvbXB1dGVyKSwgdHlwZSBgbWFrZSBkaXN0Y2xlYW4nLiAg VGhlcmUgaXMKKysgICAgIGFsc28gYSBgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB0YXJnZXQsIGJ1 dCB0aGF0IGlzIGludGVuZGVkIG1haW5seQorKyAgICAgZm9yIHRoZSBwYWNrYWdlJ3MgZGV2ZWxv cGVycy4gIElmIHlvdSB1c2UgaXQsIHlvdSBtYXkgaGF2ZSB0byBnZXQKKysgICAgIGFsbCBzb3J0 cyBvZiBvdGhlciBwcm9ncmFtcyBpbiBvcmRlciB0byByZWdlbmVyYXRlIGZpbGVzIHRoYXQgY2Ft ZQorKyAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKworKyAgNi4gT2Z0ZW4sIHlvdSBjYW4g YWxzbyB0eXBlIGBtYWtlIHVuaW5zdGFsbCcgdG8gcmVtb3ZlIHRoZSBpbnN0YWxsZWQKKysgICAg IGZpbGVzIGFnYWluLgorKworK0NvbXBpbGVycyBhbmQgT3B0aW9ucworKz09PT09PT09PT09PT09 PT09PT09PQorKworKyAgIFNvbWUgc3lzdGVtcyByZXF1aXJlIHVudXN1YWwgb3B0aW9ucyBmb3Ig Y29tcGlsYXRpb24gb3IgbGlua2luZyB0aGF0CisrdGhlIGBjb25maWd1cmUnIHNjcmlwdCBkb2Vz IG5vdCBrbm93IGFib3V0LiAgUnVuIGAuL2NvbmZpZ3VyZSAtLWhlbHAnCisrZm9yIGRldGFpbHMg b24gc29tZSBvZiB0aGUgcGVydGluZW50IGVudmlyb25tZW50IHZhcmlhYmxlcy4KKysKKysgICBZ b3UgY2FuIGdpdmUgYGNvbmZpZ3VyZScgaW5pdGlhbCB2YWx1ZXMgZm9yIGNvbmZpZ3VyYXRpb24g cGFyYW1ldGVycworK2J5IHNldHRpbmcgdmFyaWFibGVzIGluIHRoZSBjb21tYW5kIGxpbmUgb3Ig aW4gdGhlIGVudmlyb25tZW50LiAgSGVyZQorK2lzIGFuIGV4YW1wbGU6CisrCisrICAgICAuL2Nv bmZpZ3VyZSBDQz1jOTkgQ0ZMQUdTPS1nIExJQlM9LWxwb3NpeAorKworKyAgICpOb3RlIERlZmlu aW5nIFZhcmlhYmxlczo6LCBmb3IgbW9yZSBkZXRhaWxzLgorKworK0NvbXBpbGluZyBGb3IgTXVs dGlwbGUgQXJjaGl0ZWN0dXJlcworKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorKworKyAgIFlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IgbW9yZSB0aGFuIG9uZSBr aW5kIG9mIGNvbXB1dGVyIGF0IHRoZQorK3NhbWUgdGltZSwgYnkgcGxhY2luZyB0aGUgb2JqZWN0 IGZpbGVzIGZvciBlYWNoIGFyY2hpdGVjdHVyZSBpbiB0aGVpcgorK293biBkaXJlY3RvcnkuICBU byBkbyB0aGlzLCB5b3UgY2FuIHVzZSBHTlUgYG1ha2UnLiAgYGNkJyB0byB0aGUKKytkaXJlY3Rv cnkgd2hlcmUgeW91IHdhbnQgdGhlIG9iamVjdCBmaWxlcyBhbmQgZXhlY3V0YWJsZXMgdG8gZ28g YW5kIHJ1bgorK3RoZSBgY29uZmlndXJlJyBzY3JpcHQuICBgY29uZmlndXJlJyBhdXRvbWF0aWNh bGx5IGNoZWNrcyBmb3IgdGhlCisrc291cmNlIGNvZGUgaW4gdGhlIGRpcmVjdG9yeSB0aGF0IGBj b25maWd1cmUnIGlzIGluIGFuZCBpbiBgLi4nLgorKworKyAgIFdpdGggYSBub24tR05VIGBtYWtl JywgaXQgaXMgc2FmZXIgdG8gY29tcGlsZSB0aGUgcGFja2FnZSBmb3Igb25lCisrYXJjaGl0ZWN0 dXJlIGF0IGEgdGltZSBpbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LiAgQWZ0ZXIgeW91IGhh dmUKKytpbnN0YWxsZWQgdGhlIHBhY2thZ2UgZm9yIG9uZSBhcmNoaXRlY3R1cmUsIHVzZSBgbWFr ZSBkaXN0Y2xlYW4nIGJlZm9yZQorK3JlY29uZmlndXJpbmcgZm9yIGFub3RoZXIgYXJjaGl0ZWN0 dXJlLgorKworKyAgIE9uIE1hY09TIFggMTAuNSBhbmQgbGF0ZXIgc3lzdGVtcywgeW91IGNhbiBj cmVhdGUgbGlicmFyaWVzIGFuZAorK2V4ZWN1dGFibGVzIHRoYXQgd29yayBvbiBtdWx0aXBsZSBz eXN0ZW0gdHlwZXMtLWtub3duIGFzICJmYXQiIG9yCisrInVuaXZlcnNhbCIgYmluYXJpZXMtLWJ5 IHNwZWNpZnlpbmcgbXVsdGlwbGUgYC1hcmNoJyBvcHRpb25zIHRvIHRoZQorK2NvbXBpbGVyIGJ1 dCBvbmx5IGEgc2luZ2xlIGAtYXJjaCcgb3B0aW9uIHRvIHRoZSBwcmVwcm9jZXNzb3IuICBMaWtl CisrdGhpczoKKysKKysgICAgIC4vY29uZmlndXJlIENDPSJnY2MgLWFyY2ggaTM4NiAtYXJjaCB4 ODZfNjQgLWFyY2ggcHBjIC1hcmNoIHBwYzY0IiBcCisrICAgICAgICAgICAgICAgICBDWFg9Imcr KyAtYXJjaCBpMzg2IC1hcmNoIHg4Nl82NCAtYXJjaCBwcGMgLWFyY2ggcHBjNjQiIFwKKysgICAg ICAgICAgICAgICAgIENQUD0iZ2NjIC1FIiBDWFhDUFA9ImcrKyAtRSIKKysKKysgICBUaGlzIGlz IG5vdCBndWFyYW50ZWVkIHRvIHByb2R1Y2Ugd29ya2luZyBvdXRwdXQgaW4gYWxsIGNhc2VzLCB5 b3UKKyttYXkgaGF2ZSB0byBidWlsZCBvbmUgYXJjaGl0ZWN0dXJlIGF0IGEgdGltZSBhbmQgY29t YmluZSB0aGUgcmVzdWx0cworK3VzaW5nIHRoZSBgbGlwbycgdG9vbCBpZiB5b3UgaGF2ZSBwcm9i bGVtcy4KKysKKytJbnN0YWxsYXRpb24gTmFtZXMKKys9PT09PT09PT09PT09PT09PT0KKysKKysg ICBCeSBkZWZhdWx0LCBgbWFrZSBpbnN0YWxsJyBpbnN0YWxscyB0aGUgcGFja2FnZSdzIGNvbW1h bmRzIHVuZGVyCisrYC91c3IvbG9jYWwvYmluJywgaW5jbHVkZSBmaWxlcyB1bmRlciBgL3Vzci9s b2NhbC9pbmNsdWRlJywgZXRjLiAgWW91CisrY2FuIHNwZWNpZnkgYW4gaW5zdGFsbGF0aW9uIHBy ZWZpeCBvdGhlciB0aGFuIGAvdXNyL2xvY2FsJyBieSBnaXZpbmcKKytgY29uZmlndXJlJyB0aGUg b3B0aW9uIGAtLXByZWZpeD1QUkVGSVgnLgorKworKyAgIFlvdSBjYW4gc3BlY2lmeSBzZXBhcmF0 ZSBpbnN0YWxsYXRpb24gcHJlZml4ZXMgZm9yCisrYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVz IGFuZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMuICBJZiB5b3UKKytwYXNzIHRoZSBv cHRpb24gYC0tZXhlYy1wcmVmaXg9UFJFRklYJyB0byBgY29uZmlndXJlJywgdGhlIHBhY2thZ2Ug dXNlcworK1BSRUZJWCBhcyB0aGUgcHJlZml4IGZvciBpbnN0YWxsaW5nIHByb2dyYW1zIGFuZCBs aWJyYXJpZXMuCisrRG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZGF0YSBmaWxlcyBzdGlsbCB1c2Ug dGhlIHJlZ3VsYXIgcHJlZml4LgorKworKyAgIEluIGFkZGl0aW9uLCBpZiB5b3UgdXNlIGFuIHVu dXN1YWwgZGlyZWN0b3J5IGxheW91dCB5b3UgY2FuIGdpdmUKKytvcHRpb25zIGxpa2UgYC0tYmlu ZGlyPURJUicgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFsdWVzIGZvciBwYXJ0aWN1bGFyCisra2lu ZHMgb2YgZmlsZXMuICBSdW4gYGNvbmZpZ3VyZSAtLWhlbHAnIGZvciBhIGxpc3Qgb2YgdGhlIGRp cmVjdG9yaWVzCisreW91IGNhbiBzZXQgYW5kIHdoYXQga2luZHMgb2YgZmlsZXMgZ28gaW4gdGhl bS4KKysKKysgICBJZiB0aGUgcGFja2FnZSBzdXBwb3J0cyBpdCwgeW91IGNhbiBjYXVzZSBwcm9n cmFtcyB0byBiZSBpbnN0YWxsZWQKKyt3aXRoIGFuIGV4dHJhIHByZWZpeCBvciBzdWZmaXggb24g dGhlaXIgbmFtZXMgYnkgZ2l2aW5nIGBjb25maWd1cmUnIHRoZQorK29wdGlvbiBgLS1wcm9ncmFt LXByZWZpeD1QUkVGSVgnIG9yIGAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCcuCisrCisrT3B0aW9u YWwgRmVhdHVyZXMKKys9PT09PT09PT09PT09PT09PQorKworKyAgIFNvbWUgcGFja2FnZXMgcGF5 IGF0dGVudGlvbiB0byBgLS1lbmFibGUtRkVBVFVSRScgb3B0aW9ucyB0bworK2Bjb25maWd1cmUn LCB3aGVyZSBGRUFUVVJFIGluZGljYXRlcyBhbiBvcHRpb25hbCBwYXJ0IG9mIHRoZSBwYWNrYWdl LgorK1RoZXkgbWF5IGFsc28gcGF5IGF0dGVudGlvbiB0byBgLS13aXRoLVBBQ0tBR0UnIG9wdGlv bnMsIHdoZXJlIFBBQ0tBR0UKKytpcyBzb21ldGhpbmcgbGlrZSBgZ251LWFzJyBvciBgeCcgKGZv ciB0aGUgWCBXaW5kb3cgU3lzdGVtKS4gIFRoZQorK2BSRUFETUUnIHNob3VsZCBtZW50aW9uIGFu eSBgLS1lbmFibGUtJyBhbmQgYC0td2l0aC0nIG9wdGlvbnMgdGhhdCB0aGUKKytwYWNrYWdlIHJl Y29nbml6ZXMuCisrCisrICAgRm9yIHBhY2thZ2VzIHRoYXQgdXNlIHRoZSBYIFdpbmRvdyBTeXN0 ZW0sIGBjb25maWd1cmUnIGNhbiB1c3VhbGx5CisrZmluZCB0aGUgWCBpbmNsdWRlIGFuZCBsaWJy YXJ5IGZpbGVzIGF1dG9tYXRpY2FsbHksIGJ1dCBpZiBpdCBkb2Vzbid0LAorK3lvdSBjYW4gdXNl IHRoZSBgY29uZmlndXJlJyBvcHRpb25zIGAtLXgtaW5jbHVkZXM9RElSJyBhbmQKKytgLS14LWxp YnJhcmllcz1ESVInIHRvIHNwZWNpZnkgdGhlaXIgbG9jYXRpb25zLgorKworK1BhcnRpY3VsYXIg c3lzdGVtcworKz09PT09PT09PT09PT09PT09PQorKworKyAgIE9uIEhQLVVYLCB0aGUgZGVmYXVs dCBDIGNvbXBpbGVyIGlzIG5vdCBBTlNJIEMgY29tcGF0aWJsZS4gIElmIEdOVQorK0NDIGlzIG5v dCBpbnN0YWxsZWQsIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgZm9sbG93aW5nIG9wdGlv bnMgaW4KKytvcmRlciB0byB1c2UgYW4gQU5TSSBDIGNvbXBpbGVyOgorKworKyAgICAgLi9jb25m aWd1cmUgQ0M9ImNjIC1BZSIKKysKKythbmQgaWYgdGhhdCBkb2Vzbid0IHdvcmssIGluc3RhbGwg cHJlLWJ1aWx0IGJpbmFyaWVzIG9mIEdDQyBmb3IgSFAtVVguCisrCisrICAgT24gT1NGLzEgYS5r LmEuIFRydTY0LCBzb21lIHZlcnNpb25zIG9mIHRoZSBkZWZhdWx0IEMgY29tcGlsZXIgY2Fubm90 CisrcGFyc2UgaXRzIGA8d2NoYXIuaD4nIGhlYWRlciBmaWxlLiAgVGhlIG9wdGlvbiBgLW5vZHRr JyBjYW4gYmUgdXNlZCBhcworK2Egd29ya2Fyb3VuZC4gIElmIEdOVSBDQyBpcyBub3QgaW5zdGFs bGVkLCBpdCBpcyB0aGVyZWZvcmUgcmVjb21tZW5kZWQKKyt0byB0cnkKKysKKysgICAgIC4vY29u ZmlndXJlIENDPSJjYyIKKysKKythbmQgaWYgdGhhdCBkb2Vzbid0IHdvcmssIHRyeQorKworKyAg ICAgLi9jb25maWd1cmUgQ0M9ImNjIC1ub2R0ayIKKysKKytTcGVjaWZ5aW5nIHRoZSBTeXN0ZW0g VHlwZQorKz09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisrICAgVGhlcmUgbWF5IGJlIHNv bWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2Fubm90IGZpZ3VyZSBvdXQKKythdXRvbWF0aWNhbGx5 LCBidXQgbmVlZHMgdG8gZGV0ZXJtaW5lIGJ5IHRoZSB0eXBlIG9mIG1hY2hpbmUgdGhlIHBhY2th Z2UKKyt3aWxsIHJ1biBvbi4gIFVzdWFsbHksIGFzc3VtaW5nIHRoZSBwYWNrYWdlIGlzIGJ1aWx0 IHRvIGJlIHJ1biBvbiB0aGUKKytfc2FtZV8gYXJjaGl0ZWN0dXJlcywgYGNvbmZpZ3VyZScgY2Fu IGZpZ3VyZSB0aGF0IG91dCwgYnV0IGlmIGl0IHByaW50cworK2EgbWVzc2FnZSBzYXlpbmcgaXQg Y2Fubm90IGd1ZXNzIHRoZSBtYWNoaW5lIHR5cGUsIGdpdmUgaXQgdGhlCisrYC0tYnVpbGQ9VFlQ RScgb3B0aW9uLiAgVFlQRSBjYW4gZWl0aGVyIGJlIGEgc2hvcnQgbmFtZSBmb3IgdGhlIHN5c3Rl bQorK3R5cGUsIHN1Y2ggYXMgYHN1bjQnLCBvciBhIGNhbm9uaWNhbCBuYW1lIHdoaWNoIGhhcyB0 aGUgZm9ybToKKysKKysgICAgIENQVS1DT01QQU5ZLVNZU1RFTQorKworK3doZXJlIFNZU1RFTSBj YW4gaGF2ZSBvbmUgb2YgdGhlc2UgZm9ybXM6CisrCisrICAgICBPUyBLRVJORUwtT1MKKysKKysg ICBTZWUgdGhlIGZpbGUgYGNvbmZpZy5zdWInIGZvciB0aGUgcG9zc2libGUgdmFsdWVzIG9mIGVh Y2ggZmllbGQuICBJZgorK2Bjb25maWcuc3ViJyBpc24ndCBpbmNsdWRlZCBpbiB0aGlzIHBhY2th Z2UsIHRoZW4gdGhpcyBwYWNrYWdlIGRvZXNuJ3QKKytuZWVkIHRvIGtub3cgdGhlIG1hY2hpbmUg dHlwZS4KKysKKysgICBJZiB5b3UgYXJlIF9idWlsZGluZ18gY29tcGlsZXIgdG9vbHMgZm9yIGNy b3NzLWNvbXBpbGluZywgeW91IHNob3VsZAorK3VzZSB0aGUgb3B0aW9uIGAtLXRhcmdldD1UWVBF JyB0byBzZWxlY3QgdGhlIHR5cGUgb2Ygc3lzdGVtIHRoZXkgd2lsbAorK3Byb2R1Y2UgY29kZSBm b3IuCisrCisrICAgSWYgeW91IHdhbnQgdG8gX3VzZV8gYSBjcm9zcyBjb21waWxlciwgdGhhdCBn ZW5lcmF0ZXMgY29kZSBmb3IgYQorK3BsYXRmb3JtIGRpZmZlcmVudCBmcm9tIHRoZSBidWlsZCBw bGF0Zm9ybSwgeW91IHNob3VsZCBzcGVjaWZ5IHRoZQorKyJob3N0IiBwbGF0Zm9ybSAoaS5lLiwg dGhhdCBvbiB3aGljaCB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zIHdpbGwKKytldmVudHVhbGx5IGJl IHJ1bikgd2l0aCBgLS1ob3N0PVRZUEUnLgorKworK1NoYXJpbmcgRGVmYXVsdHMKKys9PT09PT09 PT09PT09PT09CisrCisrICAgSWYgeW91IHdhbnQgdG8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBg Y29uZmlndXJlJyBzY3JpcHRzIHRvIHNoYXJlLAorK3lvdSBjYW4gY3JlYXRlIGEgc2l0ZSBzaGVs bCBzY3JpcHQgY2FsbGVkIGBjb25maWcuc2l0ZScgdGhhdCBnaXZlcworK2RlZmF1bHQgdmFsdWVz IGZvciB2YXJpYWJsZXMgbGlrZSBgQ0MnLCBgY2FjaGVfZmlsZScsIGFuZCBgcHJlZml4Jy4KKytg Y29uZmlndXJlJyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25maWcuc2l0ZScgaWYgaXQgZXhp c3RzLCB0aGVuCisrYFBSRUZJWC9ldGMvY29uZmlnLnNpdGUnIGlmIGl0IGV4aXN0cy4gIE9yLCB5 b3UgY2FuIHNldCB0aGUKKytgQ09ORklHX1NJVEUnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRo ZSBsb2NhdGlvbiBvZiB0aGUgc2l0ZSBzY3JpcHQuCisrQSB3YXJuaW5nOiBub3QgYWxsIGBjb25m aWd1cmUnIHNjcmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4KKysKKytEZWZpbmluZyBWYXJp YWJsZXMKKys9PT09PT09PT09PT09PT09PT0KKysKKysgICBWYXJpYWJsZXMgbm90IGRlZmluZWQg aW4gYSBzaXRlIHNoZWxsIHNjcmlwdCBjYW4gYmUgc2V0IGluIHRoZQorK2Vudmlyb25tZW50IHBh c3NlZCB0byBgY29uZmlndXJlJy4gIEhvd2V2ZXIsIHNvbWUgcGFja2FnZXMgbWF5IHJ1bgorK2Nv bmZpZ3VyZSBhZ2FpbiBkdXJpbmcgdGhlIGJ1aWxkLCBhbmQgdGhlIGN1c3RvbWl6ZWQgdmFsdWVz IG9mIHRoZXNlCisrdmFyaWFibGVzIG1heSBiZSBsb3N0LiAgSW4gb3JkZXIgdG8gYXZvaWQgdGhp cyBwcm9ibGVtLCB5b3Ugc2hvdWxkIHNldAorK3RoZW0gaW4gdGhlIGBjb25maWd1cmUnIGNvbW1h bmQgbGluZSwgdXNpbmcgYFZBUj12YWx1ZScuICBGb3IgZXhhbXBsZToKKysKKysgICAgIC4vY29u ZmlndXJlIENDPS91c3IvbG9jYWwyL2Jpbi9nY2MKKysKKytjYXVzZXMgdGhlIHNwZWNpZmllZCBg Z2NjJyB0byBiZSB1c2VkIGFzIHRoZSBDIGNvbXBpbGVyICh1bmxlc3MgaXQgaXMKKytvdmVycmlk ZGVuIGluIHRoZSBzaXRlIHNoZWxsIHNjcmlwdCkuCisrCisrVW5mb3J0dW5hdGVseSwgdGhpcyB0 ZWNobmlxdWUgZG9lcyBub3Qgd29yayBmb3IgYENPTkZJR19TSEVMTCcgZHVlIHRvCisrYW4gQXV0 b2NvbmYgYnVnLiAgVW50aWwgdGhlIGJ1ZyBpcyBmaXhlZCB5b3UgY2FuIHVzZSB0aGlzIHdvcmth cm91bmQ6CisrCisrICAgICBDT05GSUdfU0hFTEw9L2Jpbi9iYXNoIC9iaW4vYmFzaCAuL2NvbmZp Z3VyZSBDT05GSUdfU0hFTEw9L2Jpbi9iYXNoCisrCisrYGNvbmZpZ3VyZScgSW52b2NhdGlvbgor Kz09PT09PT09PT09PT09PT09PT09PT0KKysKKysgICBgY29uZmlndXJlJyByZWNvZ25pemVzIHRo ZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBjb250cm9sIGhvdyBpdAorK29wZXJhdGVzLgorKworK2At LWhlbHAnCisrYC1oJworKyAgICAgUHJpbnQgYSBzdW1tYXJ5IG9mIGFsbCBvZiB0aGUgb3B0aW9u cyB0byBgY29uZmlndXJlJywgYW5kIGV4aXQuCisrCisrYC0taGVscD1zaG9ydCcKKytgLS1oZWxw PXJlY3Vyc2l2ZScKKysgICAgIFByaW50IGEgc3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB1bmlxdWUg dG8gdGhpcyBwYWNrYWdlJ3MKKysgICAgIGBjb25maWd1cmUnLCBhbmQgZXhpdC4gIFRoZSBgc2hv cnQnIHZhcmlhbnQgbGlzdHMgb3B0aW9ucyB1c2VkCisrICAgICBvbmx5IGluIHRoZSB0b3AgbGV2 ZWwsIHdoaWxlIHRoZSBgcmVjdXJzaXZlJyB2YXJpYW50IGxpc3RzIG9wdGlvbnMKKysgICAgIGFs c28gcHJlc2VudCBpbiBhbnkgbmVzdGVkIHBhY2thZ2VzLgorKworK2AtLXZlcnNpb24nCisrYC1W JworKyAgICAgUHJpbnQgdGhlIHZlcnNpb24gb2YgQXV0b2NvbmYgdXNlZCB0byBnZW5lcmF0ZSB0 aGUgYGNvbmZpZ3VyZScKKysgICAgIHNjcmlwdCwgYW5kIGV4aXQuCisrCisrYC0tY2FjaGUtZmls ZT1GSUxFJworKyAgICAgRW5hYmxlIHRoZSBjYWNoZTogdXNlIGFuZCBzYXZlIHRoZSByZXN1bHRz IG9mIHRoZSB0ZXN0cyBpbiBGSUxFLAorKyAgICAgdHJhZGl0aW9uYWxseSBgY29uZmlnLmNhY2hl Jy4gIEZJTEUgZGVmYXVsdHMgdG8gYC9kZXYvbnVsbCcgdG8KKysgICAgIGRpc2FibGUgY2FjaGlu Zy4KKysKKytgLS1jb25maWctY2FjaGUnCisrYC1DJworKyAgICAgQWxpYXMgZm9yIGAtLWNhY2hl LWZpbGU9Y29uZmlnLmNhY2hlJy4KKysKKytgLS1xdWlldCcKKytgLS1zaWxlbnQnCisrYC1xJwor KyAgICAgRG8gbm90IHByaW50IG1lc3NhZ2VzIHNheWluZyB3aGljaCBjaGVja3MgYXJlIGJlaW5n IG1hZGUuICBUbworKyAgICAgc3VwcHJlc3MgYWxsIG5vcm1hbCBvdXRwdXQsIHJlZGlyZWN0IGl0 IHRvIGAvZGV2L251bGwnIChhbnkgZXJyb3IKKysgICAgIG1lc3NhZ2VzIHdpbGwgc3RpbGwgYmUg c2hvd24pLgorKworK2AtLXNyY2Rpcj1ESVInCisrICAgICBMb29rIGZvciB0aGUgcGFja2FnZSdz IHNvdXJjZSBjb2RlIGluIGRpcmVjdG9yeSBESVIuICBVc3VhbGx5CisrICAgICBgY29uZmlndXJl JyBjYW4gZGV0ZXJtaW5lIHRoYXQgZGlyZWN0b3J5IGF1dG9tYXRpY2FsbHkuCisrCisrYC0tcHJl Zml4PURJUicKKysgICAgIFVzZSBESVIgYXMgdGhlIGluc3RhbGxhdGlvbiBwcmVmaXguICAqTm90 ZSBJbnN0YWxsYXRpb24gTmFtZXM6OgorKyAgICAgZm9yIG1vcmUgZGV0YWlscywgaW5jbHVkaW5n IG90aGVyIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBmaW5lLXR1bmluZworKyAgICAgdGhlIGluc3Rh bGxhdGlvbiBsb2NhdGlvbnMuCisrCisrYC0tbm8tY3JlYXRlJworK2AtbicKKysgICAgIFJ1biB0 aGUgY29uZmlndXJlIGNoZWNrcywgYnV0IHN0b3AgYmVmb3JlIGNyZWF0aW5nIGFueSBvdXRwdXQK KysgICAgIGZpbGVzLgorKworK2Bjb25maWd1cmUnIGFsc28gYWNjZXB0cyBzb21lIG90aGVyLCBu b3Qgd2lkZWx5IHVzZWZ1bCwgb3B0aW9ucy4gIFJ1bgorK2Bjb25maWd1cmUgLS1oZWxwJyBmb3Ig bW9yZSBkZXRhaWxzLgorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlIHNv Y2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxl CTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVw MzAwL01ha2VmaWxlCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSwy MCArMCwwIEBACistYnVpbGRfbGlicyA6CistCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNs YCBidWlsZC50Y2wgY29yZSBjb3JlLXNvIG15c3FsIG15c3FsLXNvIHBvc3RncmVzcWwgcG9zdGdy ZXNxbC1zbyBvcmFjbGUgb3JhY2xlLXNvCistCistdGVzdHMgOgorLQljZCBidWlsZC91bml4OyBg Y2F0IGxvY2FsL3RjbGAgYnVpbGQudGNsIG15c3FsLXRlc3Qgb3JhY2xlLXRlc3QgcG9zdGdyZXNx bC10ZXN0CistCistaW5zdGFsbCA6CistCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBp bnN0YWxsLnRjbAorLQorLXVuaW5zdGFsbCA6CistCWNkIGJ1aWxkL3VuaXgvbG9jYWw7IC9iaW4v c2ggdW5pbnN0YWxsLnNoCistCistY2xlYW4gOgorLQlmaW5kIC4gLW5hbWUgJyoubycgfCB4YXJn cyBybQorLQlmaW5kIC4gLW5hbWUgJyouYScgfCB4YXJncyBybQorLQlmaW5kIC4gLW5hbWUgJyou c28nIHwgeGFyZ3Mgcm0KKy0Jcm0gLWYgc3JjL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNx bAorLQlybSAtZiBzcmMvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUKKy0Jcm0gLWYg c3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwKKy0Jcm0gLXJmIGJ1 aWxkL3VuaXgvaW5jbHVkZSBidWlsZC91bml4L2xpYiBidWlsZC91bml4L3Rlc3RzCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL01ha2Vm aWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuYW0J MjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNjIgQEAKKysj IyB0b3AgZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgor KworK0FDTE9DQUxfQU1GTEFHUyA9IC1JIGNvbmZpZworKworK0FVVE9NQUtFX09QVElPTlMgPSBk aXN0LWJ6aXAyCisrCisraWYgUlVOX1RFU1RTCisrIyAgVEVTVF9ESVIgPSB0ZXN0CisrZW5kaWYK KysKKytNQU5fRE9DX0RJUiA9IG1hbgorKworKyMgTWFpbnRhaW5hbmNlIGZpbGVzCisrTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSBcCisrCQkJ Y29uZmlnLWguaW4gc2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAKKysKKysjRVhU UkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUgLl9NYWtlZmlsZSBj b250cmliCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gY29udHJpYgorKwor K0VYVFJBX0RJU1QgPSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBB VElCSUxJVFkpIEBQQUNLQUdFQC5tNAorKworKyMgQnVpbGQgaW4gdGhlc2UgZGlyZWN0b3JpZXM6 CisrU1VCRElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2MgJChURVNUX0RJ UikKKysKKysKKysjIENvbmZpZ3VyYXRpb24gaGVscGVycworK2Jpbl9TQ1JJUFRTID0gQFBBQ0tB R0VALWNvbmZpZworKworK3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKKytwa2dj b25maWdfREFUQSA9IEBQQUNLQUdFQC5wYworKworK200ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNs b2NhbAorK200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00CisrCisrIyBUYXJnZXRzCisrdW5pbnN0 YWxsLWxvY2FsOgorKwlybSAtcmYgJChERVNURElSKSQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisr CisrZGlzdC1odG1sOgorKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwKKysKKysKKytzbmFwc2hv dDogc25hcHNob3Qtc3JjIHNuYXBzaG90LWh0bWwKKysKKysKKytzbmFwc2hvdC1zcmM6CisrICAg ICAgICAkKE1BS0UpIGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9UQVJOQU1FQC1gZGF0ZSArIiVZJW0l ZCJgCisrCisrc25hcHNob3QtaHRtbDoKKysJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sIGh0bWxf dGFybmFtZT1AUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1gZGF0ZSArIiVZJW0lZCJgCisrCisr dXBsb2FkOiB1cGxvYWQtc3JjIHVwbG9hZC1odG1sCisrCisrdXBsb2FkLXNyYzogZGlzdAorKwlA VVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuZ3ogXAorKwlA UEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmJ6MgorKworK3VwbG9hZC1odG1sOiBkaXN0 LWh0bWwKKysJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVS U0lPTkAudGFyLmd6IFwKKysJQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRh ci5iejIKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21tb24gc29j aS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmNvbW1vbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01h a2VmaWxlLmNvbW1vbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24JMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAw MDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMiBAQAorK0BTRVRfTUFLRUAKKytBTV9DUFBGTEFHUyA9 IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5pbgorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6 MDI6MDMuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgwOCBAQAorKyMgTWFrZWZpbGUuaW4g Z2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZp Z3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5Nywg MTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYs IDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtl ZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisr IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMg UEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBzcmNk aXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChs aWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdF QAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIg JiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3Rh bGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQo aW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5z Zm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQ UkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoK KytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQg PSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSBSRUFETUUg JChhbV9fY29uZmlndXJlX2RlcHMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisrCSQoc3JjZGly KS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc29jaS1jb25maWcuaW4gXAorKwkkKHNyY2Rpcikvc29j aS5wYy5pbiAkKHNyY2Rpcikvc29jaS5zcGVjLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24gJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgQVVUSE9SUyBcCisrCUNPUFlJTkcgQ2hh bmdlTG9nIElOU1RBTEwgTkVXUyBjb25maWcvY29uZmlnLmd1ZXNzIFwKKysJY29uZmlnL2NvbmZp Zy5zdWIgY29uZmlnL2RlcGNvbXAgY29uZmlnL2luc3RhbGwtc2ggXAorKwljb25maWcvbHRtYWlu LnNoIGNvbmZpZy9taXNzaW5nCisrc3ViZGlyID0gLgorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNk aXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5p dC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2Fy Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKyth bV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RF UEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklM RVMgPSBjb25maWcuc3RhdHVzIGNvbmZpZy5jYWNoZSBjb25maWcubG9nIFwKKysgY29uZmlndXJl LmxpbmVubyBjb25maWcuc3RhdHVzLmxpbmVubworK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxf c2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisr Q09ORklHX0NMRUFOX0ZJTEVTID0gc29jaS1jb25maWcgc29jaS5wYyBzb2NpLnNwZWMKKythbV9f aW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKG00ZGF0YWRp cikiIFwKKysJIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiCisrYmluU0NSSVBUX0lOU1RBTEwg PSAkKElOU1RBTExfU0NSSVBUKQorK1NDUklQVFMgPSAkKGJpbl9TQ1JJUFRTKQorK1NPVVJDRVMg PQorK0RJU1RfU09VUkNFUyA9CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNo ZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1 cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBp bnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxs LWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVj dXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0 YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3Rh bGwtcmVjdXJzaXZlCisrYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIk KHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CisrYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGlu IFwKKysgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3Ry aXAvfHwiYDs7IFwKKysgICAgKikgZj0kJHA7OyBcCisrICBlc2FjOworK2FtX19zdHJpcF9kaXIg PSBgZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrbTRkYXRhREFUQV9JTlNUQUxMID0g JChJTlNUQUxMX0RBVEEpCisrcGtnY29uZmlnREFUQV9JTlNUQUxMID0gJChJTlNUQUxMX0RBVEEp CisrREFUQSA9ICQobTRkYXRhX0RBVEEpICQocGtnY29uZmlnX0RBVEEpCisrUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysg IGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9 IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNU RklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRS QV9ESVNUKQorK2Rpc3RkaXIgPSAkKFBBQ0tBR0UpLSQoVkVSU0lPTikKKyt0b3BfZGlzdGRpciA9 ICQoZGlzdGRpcikKKythbV9fcmVtb3ZlX2Rpc3RkaXIgPSBcCisrICB7IHRlc3QgISAtZCAkKGRp c3RkaXIpIFwKKysgICAgfHwgeyBmaW5kICQoZGlzdGRpcikgLXR5cGUgZCAhIC1wZXJtIC0yMDAg LWV4ZWMgY2htb2QgdSt3IHt9ICc7JyBcCisrICAgICAgICAgJiYgcm0gLWZyICQoZGlzdGRpcik7 IH07IH0KKytESVNUX0FSQ0hJVkVTID0gJChkaXN0ZGlyKS50YXIuZ3ogJChkaXN0ZGlyKS50YXIu YnoyCisrR1pJUF9FTlYgPSAtLWJlc3QKKytkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzID0g ZmluZCAuIC10eXBlIGYgLXByaW50CisrZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzID0gZmluZCAu IC10eXBlIGYgLXByaW50CisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAor K0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hF QURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFH UyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJ TUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAor K0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJT ID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9H UkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisr Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9P U1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENG TEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVU SUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NA CisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQ QAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lO U1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RB TExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFM TF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JB TUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpT QAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAor K0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1B S0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNR TF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9O ID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpE VU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFD TEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFD TEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lP TiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBP VE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNL QUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0Vf U1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RB Uk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFS QVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBH X0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NU R1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQ T1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVS U0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAor K1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisr U09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAor K1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZF UlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19z cmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRk aXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNf Y3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0 X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90 ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIg PSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJA CisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRf Y3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3Ig PSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0 YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tA CisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGly ID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVj X3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9 IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9v c0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisr aW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxs X3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxp YmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRp ckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hP QAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVk aXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVm aXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAor K3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29r QAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJA Cisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxp YXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRp ciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZM QUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrQUNMT0NBTF9BTUZMQUdT ID0gLUkgY29uZmlnCisrQVVUT01BS0VfT1BUSU9OUyA9IGRpc3QtYnppcDIKKysKKysjICBURVNU X0RJUiA9IHRlc3QKKytNQU5fRE9DX0RJUiA9IG1hbgorKworKyMgTWFpbnRhaW5hbmNlIGZpbGVz CisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3Vy ZSBcCisrCQkJY29uZmlnLWguaW4gc2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAK KysKKysKKysjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUg Ll9NYWtlZmlsZSBjb250cmliCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0g Y29udHJpYgorK0VYVFJBX0RJU1QgPSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkpIEBQQUNLQUdFQC5tNAorKworKyMgQnVpbGQgaW4gdGhlc2UgZGly ZWN0b3JpZXM6CisrU1VCRElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2Mg JChURVNUX0RJUikKKysKKysjIENvbmZpZ3VyYXRpb24gaGVscGVycworK2Jpbl9TQ1JJUFRTID0g QFBBQ0tBR0VALWNvbmZpZworK3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKKytw a2djb25maWdfREFUQSA9IEBQQUNLQUdFQC5wYworK200ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNs b2NhbAorK200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00CisrYWxsOiBhbGwtcmVjdXJzaXZlCisr CisrLlNVRkZJWEVTOgorK2FtLS1yZWZyZXNoOgorKwlAOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5p bjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAk KGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICck KGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgZWNo byAnIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAnOyBcCisrCSAgICAgIGNkICQo c3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgXAorKwkJJiYgZXhpdCAwOyBcCisrCSAgICAg IGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3Ny Y2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIE1ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNk aXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1h a2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwK KysJICAgIGVjaG8gJyAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMnOyBcCisrCSAgICAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXM7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0 YXR1cyAkQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NU QVRVU19ERVBFTkRFTkNJRVMpCisrCSQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sK KysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlj ZCAkKHNyY2RpcikgJiYgJChBVVRPQ09ORikKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQorKwljZCAkKHNyY2RpcikgJiYgJChBQ0xPQ0FMKSAkKEFDTE9DQUxfQU1GTEFH UykKKytzb2NpLWNvbmZpZzogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIp L3NvY2ktY29uZmlnLmluCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJEAKKytzb2NpLnBjOiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNy Y2Rpcikvc29jaS5wYy5pbgorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICRACisrc29jaS5zcGVjOiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAk KHNyY2Rpcikvc29jaS5zcGVjLmluCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJEAKKytpbnN0YWxsLWJpblNDUklQVFM6ICQoYmluX1NDUklQVFMpCisr CUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGJpbmRpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKGJpbmRpcikiCisrCUBsaXN0PSckKGJpbl9TQ1JJUFRTKSc7IGZvciBwIGlu ICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChz cmNkaXIpLyI7IGZpOyBcCisrCSAgaWYgdGVzdCAtZiAkJGQkJHA7IHRoZW4gXAorKwkgICAgZj1g ZWNobyAiJCRwIiB8IHNlZCAnc3xeLiovfHw7JCh0cmFuc2Zvcm0pJ2A7IFwKKysJICAgIGVjaG8g IiAkKGJpblNDUklQVF9JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElSKSQoYmluZGlyKS8kJGYn IjsgXAorKwkgICAgJChiaW5TQ1JJUFRfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKGJp bmRpcikvJCRmIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1i aW5TQ1JJUFRTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChiaW5fU0NSSVBU UyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBmPWBlY2hvICIkJHAiIHwgc2VkICdzfF4u Ki98fDskKHRyYW5zZm9ybSknYDsgXAorKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQoYmlu ZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1mICIkKERFU1RESVIpJChiaW5kaXIpLyQkZiI7IFwKKysJ ZG9uZQorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4t bGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworKworK2Rpc3RjbGVhbi1saWJ0b29sOgor Kwktcm0gLWYgbGlidG9vbCBjb25maWcubHQKKytpbnN0YWxsLW00ZGF0YURBVEE6ICQobTRkYXRh X0RBVEEpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKG00ZGF0YWRpcikiIHx8 ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG00ZGF0YWRpcikiCisrCUBsaXN0PSckKG00ZGF0YV9E QVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4g ZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwK KysJICBlY2hvICIgJChtNGRhdGFEQVRBX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RESVIpJCht NGRhdGFkaXIpLyQkZiciOyBcCisrCSAgJChtNGRhdGFEQVRBX0lOU1RBTEwpICIkJGQkJHAiICIk KERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiI7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1tNGRh dGFEQVRBOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChtNGRhdGFfREFUQSkn OyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVj aG8gIiBybSAtZiAnJChERVNURElSKSQobTRkYXRhZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1mICIk KERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiI7IFwKKysJZG9uZQorK2luc3RhbGwtcGtnY29uZmln REFUQTogJChwa2djb25maWdfREFUQSkKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXog IiQocGtnY29uZmlnZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnY29uZmlnZGly KSIKKysJQGxpc3Q9JyQocGtnY29uZmlnX0RBVEEpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwK KysJICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKHBrZ2NvbmZpZ0RBVEFfSU5T VEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmJyI7IFwKKysJICAk KHBrZ2NvbmZpZ0RBVEFfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2Rp cikvJCRmIjsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEE6CisrCUAkKE5P Uk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKHBrZ2NvbmZpZ19EQVRBKSc7IGZvciBwIGluICQk bGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiIHJtIC1mICck KERFU1RESVIpJChwa2djb25maWdkaXIpLyQkZiciOyBcCisrCSAgcm0gLWYgIiQoREVTVERJUikk KHBrZ2NvbmZpZ2RpcikvJCRmIjsgXAorKwlkb25lCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1 YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8g dGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4K KysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2Yg ZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29u ZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1 c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsK KysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScg Y29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAx JzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAor KwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7 IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBl Y2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRz dWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRv dF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBl bHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAo Y2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwK KysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3Nl ZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0 LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAk JE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSop OzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlk b25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFu LSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkg ICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7 IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25l OyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vy c2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5n ICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsg dGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAor KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1 YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8 IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVj dXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK KysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSck KFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRp ciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7 IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1Nf RklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJ ICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdT OiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJ RVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2Rg OyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkg IGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsg XAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6 OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgdGFn cz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAg Zmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkg JChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAg IGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRp OyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25l bXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZp bGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFn cyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5p cXVlPSQkZW1wdHlfZml4OyBcCisrCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdT RkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisr Y3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNF UykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0 YWdzPTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJ TEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3Qg LWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAor KwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7 IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmlu dCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBc CisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1Nf QVJHUykgXAorKwkgICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFt X19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2Rpcikg XAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRh Z3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisr ZGlzdGRpcjogJChESVNURklMRVMpCisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKwl0ZXN0IC1k ICQoZGlzdGRpcikgfHwgbWtkaXIgJChkaXN0ZGlyKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0 cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGlu ICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2Rp cnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1 aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1L RElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8Xnwk KGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVz YWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAk JGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsg XAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8k JGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNy Y2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNw IC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAg IGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAx OyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAg IHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAx OyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAk KE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJ ICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRvcF9k aXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNkICQk c3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAg IHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0 ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9s ZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7 IFwKKysJICBmaTsgXAorKwlkb25lCisrCS1maW5kICQoZGlzdGRpcikgLXR5cGUgZCAhIC1wZXJt IC03NzcgLWV4ZWMgY2htb2QgYStyd3gge30gXDsgLW8gXAorKwkgICEgLXR5cGUgZCAhIC1wZXJt IC00NDQgLWxpbmtzIDEgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKKysJICAhIC10eXBlIGQg ISAtcGVybSAtNDAwIC1leGVjIGNobW9kIGErciB7fSBcOyAtbyBcCisrCSAgISAtdHlwZSBkICEg LXBlcm0gLTQ0NCAtZXhlYyAkKGluc3RhbGxfc2gpIC1jIC1tIGErciB7fSB7fSBcOyBcCisrCXx8 IGNobW9kIC1SIGErciAkKGRpc3RkaXIpCisrZGlzdC1nemlwOiBkaXN0ZGlyCisrCXRhcmRpcj0k KGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlz dGRpcikudGFyLmd6CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorK2Rpc3QtYnppcDI6IGRpc3Rk aXIKKysJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4kKGRp c3RkaXIpLnRhci5iejIKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdC1sem1hOiBk aXN0ZGlyCisrCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBsem1hIC05IC1jID4k KGRpc3RkaXIpLnRhci5sem1hCisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3QtdGFy WjogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgY29tcHJlc3Mg LWMgPiQoZGlzdGRpcikudGFyLloKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdC1z aGFyOiBkaXN0ZGlyCisrCXNoYXIgJChkaXN0ZGlyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAt YyA+JChkaXN0ZGlyKS5zaGFyLmd6CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3Qt emlwOiBkaXN0ZGlyCisrCS1ybSAtZiAkKGRpc3RkaXIpLnppcAorKwl6aXAgLXJxICQoZGlzdGRp cikuemlwICQoZGlzdGRpcikKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdCBkaXN0 LWFsbDogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJUD0k KEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnRhci5negorKwl0YXJkaXI9JChkaXN0ZGly KSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgorKwkkKGFt X19yZW1vdmVfZGlzdGRpcikKKysKKysjIFRoaXMgdGFyZ2V0IHVudGFycyB0aGUgZGlzdCBmaWxl IGFuZCB0cmllcyBhIFZQQVRIIGNvbmZpZ3VyYXRpb24uICBUaGVuCisrIyBpdCBndWFyYW50ZWVz IHRoYXQgdGhlIGRpc3RyaWJ1dGlvbiBpcyBzZWxmLWNvbnRhaW5lZCBieSBtYWtpbmcgYW5vdGhl cgorKyMgdGFyZmlsZS4KKytkaXN0Y2hlY2s6IGRpc3QKKysJY2FzZSAnJChESVNUX0FSQ0hJVkVT KScgaW4gXAorKwkqLnRhci5neiopIFwKKysJICBHWklQPSQoR1pJUF9FTlYpIGd1bnppcCAtYyAk KGRpc3RkaXIpLnRhci5neiB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi50YXIuYnoyKikgXAorKwkg IGJ1bnppcDIgLWMgJChkaXN0ZGlyKS50YXIuYnoyIHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnRh ci5sem1hKikgXAorKwkgIHVubHptYSAtYyAkKGRpc3RkaXIpLnRhci5sem1hIHwgJChhbV9fdW50 YXIpIDs7XAorKwkqLnRhci5aKikgXAorKwkgIHVuY29tcHJlc3MgLWMgJChkaXN0ZGlyKS50YXIu WiB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi5zaGFyLmd6KikgXAorKwkgIEdaSVA9JChHWklQX0VO VikgZ3VuemlwIC1jICQoZGlzdGRpcikuc2hhci5neiB8IHVuc2hhciA7O1wKKysJKi56aXAqKSBc CisrCSAgdW56aXAgJChkaXN0ZGlyKS56aXAgOztcCisrCWVzYWMKKysJY2htb2QgLVIgYS13ICQo ZGlzdGRpcik7IGNobW9kIGErdyAkKGRpc3RkaXIpCisrCW1rZGlyICQoZGlzdGRpcikvX2J1aWxk CisrCW1rZGlyICQoZGlzdGRpcikvX2luc3QKKysJY2htb2QgYS13ICQoZGlzdGRpcikKKysJZGNf aW5zdGFsbF9iYXNlPWAkKGFtX19jZCkgJChkaXN0ZGlyKS9faW5zdCAmJiBwd2QgfCBzZWQgLWUg J3MsXlteOlxcL106W1xcL10sLywnYCBcCisrCSAgJiYgZGNfZGVzdGRpcj0iJCR7VE1QRElSLS90 bXB9L2FtLWRjLSQkJCQvIiBcCisrCSAgJiYgY2QgJChkaXN0ZGlyKS9fYnVpbGQgXAorKwkgICYm IC4uL2NvbmZpZ3VyZSAtLXNyY2Rpcj0uLiAtLXByZWZpeD0iJCRkY19pbnN0YWxsX2Jhc2UiIFwK KysJICAgICQoRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUykgXAorKwkgICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkdmkgXAorKwkg ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGNoZWNrIFwKKysJICAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBpbnN0YWxsIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0 YWxsY2hlY2sgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHVuaW5zdGFsbCBcCisr CSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRk Y19pbnN0YWxsX2Jhc2UiIFwKKysJICAgICAgICBkaXN0dW5pbnN0YWxsY2hlY2sgXAorKwkgICYm IGNobW9kIC1SIGEtdyAiJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJICAmJiAoeyBcCisrCSAgICAg ICAoY2QgLi4vLi4gJiYgdW1hc2sgMDc3ICYmIG1rZGlyICIkJGRjX2Rlc3RkaXIiKSBcCisrCSAg ICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIGlu c3RhbGwgXAorKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRk Y19kZXN0ZGlyIiB1bmluc3RhbGwgXAorKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBcCisrCSAgICAgICAgICAgIGRpc3R1bmluc3RhbGxj aGVja19kaXI9IiQkZGNfZGVzdGRpciIgZGlzdHVuaW5zdGFsbGNoZWNrOyBcCisrCSAgICAgIH0g fHwgeyBybSAtcmYgIiQkZGNfZGVzdGRpciI7IGV4aXQgMTsgfSkgXAorKwkgICYmIHJtIC1yZiAi JCRkY19kZXN0ZGlyIiBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdCBcCisr CSAgJiYgcm0gLXJmICQoRElTVF9BUkNISVZFUykgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGRpc3RjbGVhbmNoZWNrCisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKwlAKGVjaG8g IiQoZGlzdGRpcikgYXJjaGl2ZXMgcmVhZHkgZm9yIGRpc3RyaWJ1dGlvbjogIjsgXAorKwkgIGxp c3Q9JyQoRElTVF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRpOyBkb25l KSB8IFwKKysJICBzZWQgLWUgMWggLWUgMXMvLi89L2cgLWUgMXAgLWUgMXggLWUgJyQkcCcgLWUg JyQkeCcKKytkaXN0dW5pbnN0YWxsY2hlY2s6CisrCUBjZCAkKGRpc3R1bmluc3RhbGxjaGVja19k aXIpIFwKKysJJiYgdGVzdCBgJChkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1s YCAtbGUgMSBcCisrCSAgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgYWZ0ZXIgdW5pbnN0 YWxsOiIgOyBcCisrCSAgICAgICAgaWYgdGVzdCAtbiAiJChERVNURElSKSI7IHRoZW4gXAorKwkg ICAgICAgICAgZWNobyAiICAoY2hlY2sgREVTVERJUiBzdXBwb3J0KSI7IFwKKysJICAgICAgICBm aSA7IFwKKysJICAgICAgICAkKGRpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIDsgXAorKwkg ICAgICAgIGV4aXQgMTsgfSA+JjIKKytkaXN0Y2xlYW5jaGVjazogZGlzdGNsZWFuCisrCUBpZiB0 ZXN0ICckKHNyY2RpciknID0gLiA7IHRoZW4gXAorKwkgIGVjaG8gIkVSUk9SOiBkaXN0Y2xlYW5j aGVjayBjYW4gb25seSBydW4gZnJvbSBhIFZQQVRIIGJ1aWxkIiA7IFwKKysJICBleGl0IDEgOyBc CisrCWZpCisrCUB0ZXN0IGAkKGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAgLWVx IDAgXAorKwkgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgaW4gYnVpbGQgZGlyZWN0b3J5 IGFmdGVyIGRpc3RjbGVhbjoiIDsgXAorKwkgICAgICAgJChkaXN0Y2xlYW5jaGVja19saXN0Zmls ZXMpIDsgXAorKwkgICAgICAgZXhpdCAxOyB9ID4mMgorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVj azogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKFNDUklQVFMpICQoREFUQSkK KytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06Cisr CWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtNGRhdGFkaXIp IiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIg fHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vy c2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0 YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2 ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNo ZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFs bF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxB Rz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxM X1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFu LWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJ LXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f RklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21t YW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxl dGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJ LXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJD TEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4t Z2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0 Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiAkKGFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTKQor Kwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5l cmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1y ZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZv OiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0 YWxsLW00ZGF0YURBVEEgaW5zdGFsbC1wa2djb25maWdEQVRBCisrCisraW5zdGFsbC1kdmk6IGlu c3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1iaW5TQ1JJ UFRTCisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFs bC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5z dGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwt cHMtcmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46 IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiAkKGFtX19DT05GSUdfRElTVENM RUFOX0ZJTEVTKQorKwktcm0gLXJmICQodG9wX3NyY2RpcikvYXV0b200dGUuY2FjaGUKKysJLXJt IC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUK KysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0 b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1 cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1iaW5TQ1JJUFRT IHVuaW5zdGFsbC1sb2NhbCBcCisrCXVuaW5zdGFsbC1tNGRhdGFEQVRBIHVuaW5zdGFsbC1wa2dj b25maWdEQVRBCisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJT SVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFH UyBcCisrCWFsbCBhbGwtYW0gYW0tLXJlZnJlc2ggY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4t Z2VuZXJpYyBcCisrCWNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3QgZGlz dC1hbGwgZGlzdC1iemlwMiBcCisrCWRpc3QtZ3ppcCBkaXN0LWx6bWEgZGlzdC1zaGFyIGRpc3Qt dGFyWiBkaXN0LXppcCBkaXN0Y2hlY2sgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMg ZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgXAorKwlkaXN0Y2xlYW5jaGVjayBkaXN0 ZGlyIGRpc3R1bmluc3RhbGxjaGVjayBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8g aW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1iaW5TQ1JJUFRTIFwKKysJaW5zdGFs bC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWlu c3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBc CisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tNGRhdGFEQVRBIGluc3Rh bGwtbWFuIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2djb25maWdE QVRBIGluc3RhbGwtcHMgXAorKwlpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNo ZWNrIGluc3RhbGxjaGVjay1hbSBcCisrCWluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50 YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9z dGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBw cy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmlu c3RhbGwtYmluU0NSSVBUUyB1bmluc3RhbGwtbG9jYWwgXAorKwl1bmluc3RhbGwtbTRkYXRhREFU QSB1bmluc3RhbGwtcGtnY29uZmlnREFUQQorKworK0BTRVRfTUFLRUAKKysKKysjIFRhcmdldHMK Kyt1bmluc3RhbGwtbG9jYWw6CisrCXJtIC1yZiAkKERFU1RESVIpJChpbmNsdWRlZGlyKS9AUEFD S0FHRUAKKysKKytkaXN0LWh0bWw6CisrCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbAorKworK3Nu YXBzaG90OiBzbmFwc2hvdC1zcmMgc25hcHNob3QtaHRtbAorKworK3NuYXBzaG90LXNyYzoKKysg ICAgICAgICQoTUFLRSkgZGlzdCBkaXN0ZGlyPUBQQUNLQUdFX1RBUk5BTUVALWBkYXRlICsiJVkl bSVkImAKKysKKytzbmFwc2hvdC1odG1sOgorKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwgaHRt bF90YXJuYW1lPUBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLWBkYXRlICsiJVklbSVkImAKKysK Kyt1cGxvYWQ6IHVwbG9hZC1zcmMgdXBsb2FkLWh0bWwKKysKKyt1cGxvYWQtc3JjOiBkaXN0Cisr CUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5neiBcCisr CUBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuYnoyCisrCisrdXBsb2FkLWh0bWw6IGRp c3QtaHRtbAorKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBW RVJTSU9OQC50YXIuZ3ogXAorKwlAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAu dGFyLmJ6MgorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3Qg ZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBT eXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01h a2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmFtCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9N YWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCAr MSw0IEBACisrIyBNYW4gcGFnZXMKKyttYW5fTUFOUyA9IHNvY2ktY29uZmlnLjEKKysKKytFWFRS QV9ESVNUID0gJChtYW5fTUFOUykKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFr ZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL21hbi9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAx MDowMjowMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNDQxIEBACisrIyBNYWtlZmlsZS5p biBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29u ZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAw NiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1h a2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K KysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisr IyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAK Kytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRp cikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisr YW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBj ZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9z aF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0 YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3Jt ID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9J TlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BS RV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBi dWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytzdWJkaXIgPSBtYW4KKytESVNUX0NPTU1P TiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4KKytBQ0xPQ0FM X000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQo dG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBz KSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFs bGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGly KS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNU X1NPVVJDRVMgPQorK21hbjFkaXIgPSAkKG1hbmRpcikvbWFuMQorK2FtX19pbnN0YWxsZGlycyA9 ICIkKERFU1RESVIpJChtYW4xZGlyKSIKKytOUk9GRiA9IG5yb2ZmCisrTUFOUyA9ICQobWFuX01B TlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5G T1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJA CisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRP SEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZM QUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVf VElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJA CisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJ QlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAK KytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytC T09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJFQURfTElC ID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBA Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9W RVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBA Q0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9D RkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05G SUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBA Q1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhE RVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9X ID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lN VVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9f Q0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdS RVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJB UllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisr SU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5T VEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNU QUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9H UkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9C SlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9A CisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBA TUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9D RkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0gQE1Z U1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJ T04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09C SkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9S QUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09S QUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJT SU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0g QE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBB Q0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FH RV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0Vf VEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQ QVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBA UEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BP U1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0g QFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9W RVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VA CisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAK KytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURA CisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisr VkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJz X3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWls ZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBh Y19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNf Y3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19k b3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3Rh ciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRp ckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWls ZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRv ciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBk YXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9v a0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlk aXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4 ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFz ID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0 X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAK KytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3Rh bGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBA bGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxl ZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VD SE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVk ZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHBy ZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVA CisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRf b2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2Rp ckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9h bGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxk ZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrCisrIyBN YW4gcGFnZXMKKyttYW5fTUFOUyA9IHNvY2ktY29uZmlnLjEKKytFWFRSQV9ESVNUID0gJChtYW5f TUFOUykKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUu aW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9y IGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAor KwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3Qg LWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7 OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYm ICQoQVVUT01BS0UpIC0tZ251ICBtYW4vTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2Rpcikg JiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBtYW4vTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1h a2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwK KysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0 YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKwor KyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAk KENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9f YWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYg Ki5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKytpbnN0YWxs LW1hbjE6ICQobWFuMV9NQU5TKSAkKG1hbl9NQU5TKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJ dGVzdCAteiAiJChtYW4xZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobWFuMWRpciki CisrCUBsaXN0PSckKG1hbjFfTUFOUykgJChkaXN0X21hbjFfTUFOUykgJChub2Rpc3RfbWFuMV9N QU5TKSc7IFwKKysJbDI9JyQobWFuX01BTlMpICQoZGlzdF9tYW5fTUFOUykgJChub2Rpc3RfbWFu X01BTlMpJzsgXAorKwlmb3IgaSBpbiAkJGwyOyBkbyBcCisrCSAgY2FzZSAiJCRpIiBpbiBcCisr CSAgICAqLjEqKSBsaXN0PSIkJGxpc3QgJCRpIiA7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBc CisrCWZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRpOyB0aGVuIGZpbGU9 JCRpOyBcCisrCSAgZWxzZSBmaWxlPSQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZXh0PWBlY2hv ICQkaSB8IHNlZCAtZSAncy9eLipcXC4vLydgOyBcCisrCSAgY2FzZSAiJCRleHQiIGluIFwKKysJ ICAgIDEqKSA7OyBcCisrCSAgICAqKSBleHQ9JzEnIDs7IFwKKysJICBlc2FjOyBcCisrCSAgaW5z dD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXFwuWzAtOWEtel0qJCQvLydgOyBcCisrCSAgaW5zdD1g ZWNobyAkJGluc3QgfCBzZWQgLWUgJ3MvXi4qXC8vLydgOyBcCisrCSAgaW5zdD1gZWNobyAkJGlu c3QgfCBzZWQgJyQodHJhbnNmb3JtKSdgLiQkZXh0OyBcCisrCSAgZWNobyAiICQoSU5TVEFMTF9E QVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0JyI7IFwKKysJICAkKElO U1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCI7IFwKKysJ ZG9uZQorK3VuaW5zdGFsbC1tYW4xOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0n JChtYW4xX01BTlMpICQoZGlzdF9tYW4xX01BTlMpICQobm9kaXN0X21hbjFfTUFOUyknOyBcCisr CWwyPSckKG1hbl9NQU5TKSAkKGRpc3RfbWFuX01BTlMpICQobm9kaXN0X21hbl9NQU5TKSc7IFwK KysJZm9yIGkgaW4gJCRsMjsgZG8gXAorKwkgIGNhc2UgIiQkaSIgaW4gXAorKwkgICAgKi4xKikg bGlzdD0iJCRsaXN0ICQkaSIgOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlmb3IgaSBp biAkJGxpc3Q7IGRvIFwKKysJICBleHQ9YGVjaG8gJCRpIHwgc2VkIC1lICdzL14uKlxcLi8vJ2A7 IFwKKysJICBjYXNlICIkJGV4dCIgaW4gXAorKwkgICAgMSopIDs7IFwKKysJICAgICopIGV4dD0n MScgOzsgXAorKwkgIGVzYWM7IFwKKysJICBpbnN0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9cXC5b MC05YS16XSokJC8vJ2A7IFwKKysJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAtZSAncy9eLipc Ly8vJ2A7IFwKKysJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAnJCh0cmFuc2Zvcm0pJ2AuJCRl eHQ7IFwKKysJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBc CisrCSAgcm0gLWYgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCI7IFwKKysJZG9uZQorK3Rh Z3M6IFRBR1MKKytUQUdTOgorKworK2N0YWdzOiBDVEFHUworK0NUQUdTOgorKworKworK2Rpc3Rk aXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRv cF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChE SVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNo byAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwK KysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsg XAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIk JGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywv W14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZp bGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAt ZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3Qg LWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1l ICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYm IHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2Rpcikv JCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBj cCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBc CisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8k JGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwK KysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1h a2VmaWxlICQoTUFOUykKKytpbnN0YWxsZGlyczoKKysJZm9yIGRpciBpbiAiJChERVNURElSKSQo bWFuMWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGly IjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFs bC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVu aW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VG TEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazog aW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFH UykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0 YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9G TEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RB TExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xl YW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgor KwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVB Tl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNv bW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRl bGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgor K2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRv b2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLWYg TWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCisrCisr ZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2luZm86IGlu Zm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1tYW4KKysK KytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisr aW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwt aW5mby1hbQorKworK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjEKKysKKytpbnN0YWxsLXBkZjog aW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFs bGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKysJ LXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50 YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKwor K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wK KysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToK KysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1tYW4KKysKKyt1bmluc3RhbGwtbWFuOiB1bmlu c3RhbGwtbWFuMQorKworKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKysKKysuUEhP Tlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1s aWJ0b29sIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29s IGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFs bCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2 aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0g aW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0g aW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sg aW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFpbnRhaW5lci1jbGVhbiBtYWludGFp bmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1v c3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisrCXVuaW5zdGFsbCB1bmlu c3RhbGwtYW0gdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuMQorKworKyMgVGVsbCB2ZXJzaW9u cyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisr IyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhj ZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9zb2Np LWNvbmZpZy4xIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vc29jaS1jb25maWcuMQorLS0tIHNvY2kt My4wLjBfNC1wYWNrL21hbi9zb2NpLWNvbmZpZy4xCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCTIwMDkt MDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDM5IEBACisrLlRIIFNP Q0kgMSAiMjggTWFyY2ggMjAwOSIKKysuU0ggTkFNRQorK3NvY2ktY29uZmlnIC0gc2NyaXB0IHRv IGdldCB2ZXJzaW9uIG51bWJlciBhbmQgY29tcGlsZXIgZmxhZ3Mgb2YgdGhlIGluc3RhbGxlZCBT T0NJIGxpYnJhcnkKKysuU0ggU1lOT1BTSVMKKysuQiBzb2NpLWNvbmZpZworK1tcLVwtcHJlZml4 XSAgW1wtXC12ZXJzaW9uXSBbXC1cLWxpYnNdIFtcLVwtY2ZsYWdzXQorKy5TSCBERVNDUklQVElP TgorKy5QUAorK1xmSXNvY2ktY29uZmlnXGZQIGlzIGEgdG9vbCB0aGF0IGlzIHVzZWQgdG8gY29u ZmlndXJlIHRvIGRldGVybWluZQorK3RoZSBjb21waWxlciBhbmQgbGlua2VyIGZsYWdzIHRoYXQg c2hvdWxkIGJlIHVzZWQgdG8gY29tcGlsZQorK2FuZCBsaW5rIHByb2dyYW1zIHRoYXQgdXNlIFxm SVNPQ0lcZlAuIEl0IGlzIGFsc28gdXNlZCBpbnRlcm5hbGx5CisrdG8gdGhlIC5tNCBtYWNyb3Mg Zm9yIEdOVSBhdXRvY29uZiB0aGF0IGFyZSBpbmNsdWRlZCB3aXRoIFxmSVNPQ0lcZlAuCisrLgor Ky5TSCBPUFRJT05TCisrLmwKKytcZklzb2NpLWNvbmZpZ1xmUCBhY2NlcHRzIHRoZSBmb2xsb3dp bmcgb3B0aW9uczoKKysuVFAgOAorKy5CICBcLVwtdmVyc2lvbgorK1ByaW50IHRoZSBjdXJyZW50 bHkgaW5zdGFsbGVkIHZlcnNpb24gb2YgXGZJU09DSVxmUCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0 LgorKy5UUCA4CisrLkIgIFwtXC1saWJzCisrUHJpbnQgdGhlIGxpbmtlciBmbGFncyB0aGF0IGFy ZSBuZWNlc3NhcnkgdG8gbGluayBhIFxmSVNPQ0lcZlAgcHJvZ3JhbSwgd2l0aCBjYmxhcworKy5U UCA4CisrLkIgIFwtXC1jZmxhZ3MKKytQcmludCB0aGUgY29tcGlsZXIgZmxhZ3MgdGhhdCBhcmUg bmVjZXNzYXJ5IHRvIGNvbXBpbGUgYSBcZklTT0NJXGZQIHByb2dyYW0uCisrLlRQIDgKKysuQiAg XC1cLXByZWZpeAorK1Nob3cgdGhlIFNPQ0kgaW5zdGFsbGF0aW9uIHByZWZpeC4KKysuU0ggU0VF IEFMU08KKysuQlIgZ3RrLWNvbmZpZyAoMSksCisrLkJSIGdub21lLWNvbmZpZyAoMSkKKysuU0gg Q09QWVJJR0hUCisrQ29weXJpZ2h0IFwoY28gIDIwMDkgRGVuaXMgQXJuYXVkCisrCisrUGVybWlz c2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBh bmQgaXRzCisrZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIGlz IGhlcmVieSBncmFudGVkLAorK3Byb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp Y2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKKytib3RoIHRoYXQgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KKytzdXBwb3J0aW5nIGRv Y3VtZW50YXRpb24uCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTkVXUyBzb2NpLTMuMC4w X3RyZXAzMDAvTkVXUworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL05FV1MJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVXUwkyMDA5LTA1 LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzIEBACisrCisrKiBXZWQg TWFyIDI2IDIwMDkgUlBNIHJlbGVhc2UgZm9yIHZlcnNpb24gMy4wLjAKKysKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCTIwMDkt MDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkgQEAKKytpbmNsdWRl ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrIyMgU291cmNlIGRpcmVjdG9yeQor KworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0gQE1Z U1FMX0RJUlNAIEBQT1NUR1JFU1FMX0RJUlNAIEBPUkFDTEVfRElSU0AKKysKKytFWFRSQV9ESVNU ID0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmlu IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01h a2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsx LDU0NyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9t IE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykg MTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysj IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxh dzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFL RUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VA CisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGlu Y2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0k KFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gp IC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0 YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5T VEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JN QUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9S TUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0g OgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElT VF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwK KysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRz CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200 X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xl X29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9j YWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkK Kytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRv cF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNF UyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUg Y2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJl Y3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZl IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3Rh bGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1y ZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGlu c3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5z dGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJl Y3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFp bmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElT VF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElT VF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FM QAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAor K0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sg PSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1F X0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJP T1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJF QU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9 IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VS SUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJA CisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NU X1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RF UE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQ UEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09O RklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisr Q1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQ UCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENY WEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJ UiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklO QAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNI T19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdS RVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05A CisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBA SU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5T VEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0g QElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NA CisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRP T0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJP QkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNR TF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdA CisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERG TEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1F RElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAK KytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFD TEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdT QAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBA T1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNL QUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFD S0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0Vf VEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0Vf VkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBF UkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NU R1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BP U1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJT SU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxF QVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VA CisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNf QlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJT X0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0g QFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBA YWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxk ZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNk aXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKyth Y19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1 ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBA YW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFy QAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBA YnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWls ZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxk ZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAK KytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0g QGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AK KytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0g QGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1 QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKyto dG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIg PSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0 ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisr bG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJA CisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBt a2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRm ZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9n cmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRp ckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGly QAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3Rhcmdl dF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRf cHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0 b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNk aXIpCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSBATVlT UUxfRElSU0AgQFBPU1RHUkVTUUxfRElSU0AgQE9SQUNMRV9ESVJTQAorK0VYVFJBX0RJU1QgPSAK KythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxl LmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2Ug JyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAo IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJy ZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBc CisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2Jh Y2tlbmRzL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9N QUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUK KytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo OzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVM TCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBc CisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQo c3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklH X1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAg JChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2Fs X200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisr CisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworKworKyMgVGhpcyBkaXJl Y3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNk CisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMg TWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBp bnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBz ZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3aGlj aCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVu IGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0 aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWxj b209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2Ug JCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdm YWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisr CXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFy Z2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBc CisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0i OyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZp OyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxf dGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0 ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp ICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisr JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZv ciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSog fCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVz YWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkg IGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUykn IDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIu IjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7 IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNl ZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVj aG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJ ICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJ ICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQp IFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIK Kyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2ZToK KysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVz dCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElT UCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdT CisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJ aGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1 ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0t LWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisr CSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdT IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1Nf QVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlx dWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykg JChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1ZTsg XAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJT KSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQo TElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3Mk JHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdT KSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJ aGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRv cF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rp c3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEgg dGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0 cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGlu ICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2Rp cnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1 aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1L RElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8Xnwk KGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVz YWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAk JGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsg XAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8k JGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNy Y2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNw IC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAg IGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAx OyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAg IHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAx OyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAk KE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJ ICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRvcF9k aXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNkICQk c3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAg IHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0 ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9s ZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7 IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1y ZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisr aW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisr aW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVj dXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFM TF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwK KysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JB TV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJp YzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykK KysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1y ZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLXJlY3Vyc2l2ZQorKwor K2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQorKworK2luZm86IGluZm8tcmVjdXJz aXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6 IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxs LWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwt aW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFs bC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysK KytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVh bi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlz dGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0 bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFt OgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06Cisr CisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMp IGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBh bGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwK KysJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisr CWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1s IFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0 YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxs LWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBp bnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYg aW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJp cCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRp cnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYg cGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAorKwl1bmluc3RhbGwgdW5pbnN0 YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBH TlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0 ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JU OgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9u LmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCist LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCTIwMDkt MDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAw MCArMDIwMAorQEAgLTYsNyArNiwxMyBAQAorIC8vCisgCisgI2luY2x1ZGUgImNvbW1vbi5oIgor LSNpbmNsdWRlICJzb2NpLWJhY2tlbmQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVS U19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+Cisr I2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1 ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGNzdGRsaWI+CisgI2luY2x1ZGUgPGN0aW1lPgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0g c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0KKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsMjYgQEAKKysjIyBiYWNrZW5kcy9teXNxbCBzdWItZGlyZWN0b3J5 CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNk aXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisr CisrU1VCRElSUyA9IC4gdGVzdAorKworK2lmIEhBVkVfTVlTUUwKKytsaWJfTFRMSUJSQVJJRVM9 IGxpYnNvY2lfbXlzcWwubGEKKysKKytsaWJzb2NpX215c3FsX2xhX1NPVVJDRVM9ICQoYmNrX215 c3FsX2hfc291cmNlcykgJChiY2tfbXlzcWxfY2Nfc291cmNlcykgCisrbGlic29jaV9teXNxbF9s YV9DWFhGTEFHUyA9ICQoTVlTUUxfQ0ZMQUdTKQorK2xpYnNvY2lfbXlzcWxfbGFfTElCQUREID0K KytsaWJzb2NpX215c3FsX2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9E QVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNpb24t aW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKytlbmRpZgor K2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGly KS9zb2NpL2JhY2tlbmRzL215c3FsCisrZWxzZQorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1 ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFz aWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2lj CTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDk3ICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcgdmFy aWFibGVzIGFyZSBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIHRoZWlyIGNvcnJlY3QKKy0j IHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBz ZXQgaXQgYWNjb3JkaW5nbHkuCistCistTVlTUUxMSUJESVIgPSAtTC91c3IvbGliL215c3FsCist TVlTUUxMSUJTID0gLWxteXNxbGNsaWVudCAtbHoKKy1NWVNRTElOQ0xVREVESVIgPSAtSS91c3Iv aW5jbHVkZS9teXNxbAorLQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW5k ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysKKy1DWFhG TEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUNYWEZMQUdTU08gPSAke0NY WEZMQUdTfSAtZlBJQworLUlOQ0xVREVESVJTID0gLUkuLi8uLi9jb3JlICR7TVlTUUxJTkNMVURF RElSfQorLQorLQorLU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNlc3Npb24u byBzdGFuZGFyZC1pbnRvLXR5cGUubyBcCistCXN0YW5kYXJkLXVzZS10eXBlLm8gc3RhdGVtZW50 Lm8gdmVjdG9yLWludG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5vIFwKKy0JY29tbW9uLm8KKy0K Ky0KKy1PQkpFQ1RTU08gPSBibG9iLXMubyBmYWN0b3J5LXMubyByb3ctaWQtcy5vIHNlc3Npb24t cy5vIFwKKy0Jc3RhbmRhcmQtaW50by10eXBlLXMubyBzdGFuZGFyZC11c2UtdHlwZS1zLm8gc3Rh dGVtZW50LXMubyBcCistCXZlY3Rvci1pbnRvLXR5cGUtcy5vIHZlY3Rvci11c2UtdHlwZS1zLm8g Y29tbW9uLXMubworLQorLQorLWxpYnNvY2lfbXlzcWwuYSA6ICR7T0JKRUNUU30KKy0JYXIgcnYg JEAgJD8KKy0Jcm0gKi5vCistCistCistYmxvYi5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0g LWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1jb21tb24ubyA6IGNvbW1vbi5j cHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1m YWN0b3J5Lm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC5vIDogcm93LWlkLmNwcAorLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24ubyA6IHNlc3Npb24u Y3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCist c3RhbmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5 cGUubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAorLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci1p bnRvLXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0b3It dXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9CistCistc2hhcmVkIDogJHtPQkpFQ1RTU099CistCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8g bGlic29jaV9teXNxbC5zbyAke09CSkVDVFNTT30KKy0Jcm0gKi5vCistCistYmxvYi1zLm8gOiBi bG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9CistCistY29tbW9uLXMubyA6IGNvbW1vbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3Rvcnktcy5vIDogZmFj dG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xV REVESVJTfQorLQorLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1v ICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLXMubyA6IHNl c3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBl LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJ UlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCist CSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0K Ky1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAk PyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWludG8tdHlwZS1zLm8g OiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZM QUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11 c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lO Q0xVREVESVJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgbGlic29jaV9teXNxbC5hIGxpYnNv Y2lfbXlzcWwuc28KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01h a2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6 MDI6MDIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgwNyBAQAorKyMgTWFrZWZpbGUuaW4g Z2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZp Z3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5Nywg MTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYs IDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtl ZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisr IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMg UEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBzcmNk aXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChs aWJkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBB VEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1j IC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxs X3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFM TF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxf SU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFM X1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgor K2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9D T01NT04gPSAkKGFtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkgJChzcmNkaXIpL01ha2VmaWxl LmFtIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwKKysJ JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL215 c3FsCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2Fs X200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9N NCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrYW1f X3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdz fC58LnxnJ2A7CisrYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKysgICAgJChzcmNkaXIp LyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKysgICAg KikgZj0kJHA7OyBcCisrICBlc2FjOworK2FtX19zdHJpcF9kaXIgPSBgZWNobyAkJHAgfCBzZWQg LWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpciki ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKytsaWJMVExJQlJBUklFU19JTlNUQUxMID0g JChJTlNUQUxMKQorK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMpCisrbGlic29jaV9t eXNxbF9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19saWJzb2NpX215c3FsX2xhX1NPVVJDRVNfRElT VCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBcCisr CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggXAorKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAgXAorKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9yb3ctaWQuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Nlc3Npb24uY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5k YXJkLWludG8tdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YXRlbWVudC5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv dmVjdG9yLWludG8tdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdmVjdG9yLXVzZS10eXBlLmNwcAorK2FtX19vYmplY3RzXzEgPQorK2FtX19vYmplY3RzXzIg PSBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8gXAor KwlsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8g XAorKwlsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXN0 YW5kYXJkLWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5 cGUubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbyBcCisrCWxpYnNvY2lfbXlz cWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLmxvCisrQEhBVkVfTVlTUUxfVFJVRUBhbV9saWJzb2NpX215c3FsX2xhX09CSkVDVFMg PSAkKGFtX19vYmplY3RzXzEpIFwKKytASEFWRV9NWVNRTF9UUlVFQAkkKGFtX19vYmplY3RzXzIp CisrbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX215c3FsX2xhX09CSkVD VFMpCisrbGlic29jaV9teXNxbF9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwK KysJJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCisrCSQobGlic29j aV9teXNxbF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisrQEhBVkVfTVlTUUxfVFJVRUBh bV9saWJzb2NpX215c3FsX2xhX3JwYXRoID0gLXJwYXRoICQobGliZGlyKQorK0RFRkFVTFRfSU5D TFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0g JChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXli ZSA9IGRlcGZpbGVzCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9 ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFH UykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytDT01Q SUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpIFwKKysJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0xUQ09N UElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdT KSAkKENGTEFHUykKKytDQ0xEID0gJChDQykKKytMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDQ0xE KSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1v ICRACisrU09VUkNFUyA9ICQobGlic29jaV9teXNxbF9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNF UyA9ICQoYW1fX2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNUKQorK1JFQ1VSU0lWRV9UQVJH RVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0 bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlp bnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwt aHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJl Y3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3Rh bGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAor Kwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK2FtX19wa2dpbmNsdWRlX0hFQURF UlNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15 c3FsLmgKKytwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNUQUxMX0hFQURFUikKKytI RUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMg PSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1y ZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9IGV0YWdzCisrQ1RB R1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK3Br Z2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAor K0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBA QVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJ QiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NU X0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1T X0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBC T09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFM SVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisr Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZM QUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9 IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZM QUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9 IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAor K0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19U QAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBA CisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisr R1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5T VEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFM TF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElO U1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisr TElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xA CisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpT QAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9D RkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisr TVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFH U0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElU ID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytP UkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVf T0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAor K09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RP T0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdF X0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FH RV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFS TkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVS U0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxA CisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JF U1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RH UkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9O ID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNF ID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisr U0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JV UklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQ TE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJz X2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGly ID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJA CisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19j dF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVA CisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1f X3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAor K2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVp bGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9v c0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGly QAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytk aWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRv eHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytl eGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhv c3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAor K2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1s ZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBA aW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhf b2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9j YWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisr bHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rp cl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGly QAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAK KytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAor K3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9h bGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJl Zml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bf c3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIp CisrYmNrX215c3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9jb21tb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrCisrYmNrX215c3FsX2NjX3NvdXJjZXMgPSBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10 eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK01BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0ZXN0CisrQEhBVkVfTVlTUUxf VFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX215c3FsLmxhCisrQEhBVkVfTVlTUUxfVFJV RUBsaWJzb2NpX215c3FsX2xhX1NPVVJDRVMgPSAkKGJja19teXNxbF9oX3NvdXJjZXMpICQoYmNr X215c3FsX2NjX3NvdXJjZXMpIAorK0BIQVZFX01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9sYV9D WFhGTEFHUyA9ICQoTVlTUUxfQ0ZMQUdTKQorK0BIQVZFX01ZU1FMX1RSVUVAbGlic29jaV9teXNx bF9sYV9MSUJBREQgPSAKKytASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfTERGTEFH UyA9IFwKKytASEFWRV9NWVNRTF9UUlVFQAkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1F X0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisrQEhBVkVfTVlTUUxfVFJVRUAJ LXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK0BIQVZFX01ZU1FM X1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3NvY2ktbXlzcWwuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVk ZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2lu Y2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsCisrYWxsOiBhbGwt cmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagor KyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVf ZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVf ZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAg JiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJ ICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0 b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtl ZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUg IHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFr ZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwK KysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFU VVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9k ZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKKytpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKKysJ QCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAi JChERVNURElSKSQobGliZGlyKSIKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBw IGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKysJICAgIGY9JChh bV9fc3RyaXBfZGlyKSBcCisrCSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFM TCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZici OyBcCisrCSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBf RkxBRykgIiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAorKwkgIGVsc2UgOjsgZmk7 IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKKysJQCQoTk9STUFMX1VO SU5TVEFMTCkKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsg ZG8gXAorKwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICck KERFU1RESVIpJChsaWJkaXIpLyQkcCciOyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikk KGxpYmRpcikvJCRwIjsgXAorKwlkb25lCisrCisrY2xlYW4tbGliTFRMSUJSQVJJRVM6CisrCS10 ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQor KwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAg ZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQk ZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19s b2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRv bmUKKytsaWJzb2NpX215c3FsLmxhOiAkKGxpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykgJChsaWJz b2NpX215c3FsX2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29jaV9teXNxbF9sYV9MSU5LKSAk KGFtX2xpYnNvY2lfbXlzcWxfbGFfcnBhdGgpICQobGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKSAk KGxpYnNvY2lfbXlzcWxfbGFfTElCQUREKSAkKExJQlMpCisrCisrbW9zdGx5Y2xlYW4tY29tcGls ZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1ybSAt ZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNv bW1vbi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlBsb0BhbV9f cXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1l bnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsb0BhbV9fcXVv dGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACisrCisrLmNwcC5v OgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1N RiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKysuY3BwLm9i ajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAt TUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRA JyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8g JEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAt YyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBv ICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5UcG8gLWMgLW8gbGli c29jaV9teXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9teXNx bF9sYS1ibG9iLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAnIG9iamVjdD0nbGli c29jaV9teXNxbF9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCisrCisr bGlic29jaV9teXNxbF9sYS1jb21tb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS1jb21tb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1v bi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtY29tbW9uLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uUGxvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEt Y29tbW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCisrCisrbGlic29j aV9teXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv ZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3Rv cnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuUGxv CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3Fs X2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKKysK KytsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Jvdy1pZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93 LWlkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9s YS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKKysKKytsaWJz b2NpX215c3FsX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vz c2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlz cWxfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAor KworK2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1p bnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRh cmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlw ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5U cG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsbworK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2Np X215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFy ZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorKworK2xpYnNv Y2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUu VHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQt dXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3Rh dGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVu dC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1z dGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5QbG8KKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9s YS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5j cHAKKysKKytsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1p bnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9y LWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC92ZWN0b3ItaW50by10eXBlLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10 eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBl LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9t eXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rv ci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5U cG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsbworK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3Fs X2xhLXZlY3Rvci11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNl LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6Cisr CS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicwor K2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQorKwlAJChO T1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9Q KSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVB REVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVu IGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBc CisrCSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgJChwa2dpbmNsdWRlSEVBREVSU19J TlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAorKwlk b25lCisrCisrdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgorKwlAJChOT1JNQUxfVU5JTlNU QUxMKQorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBk byBcCisrCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgcm0gLWYgJyQoREVTVERJ UikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgcm0gLWYgIiQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJl Y3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRoZW0g YW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisrIyBU byBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRp bmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5z dGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRo ZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7CisrIyAo Mikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1h bmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwK KysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAg ICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisr CSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGly IjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rfc2Vl bj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAg fHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9 ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIg fHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtF RkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwK KysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsg XAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwg bWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBs aXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAor KwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUv L2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRh cmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g XAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFs ICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2 ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0g LiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisr CWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVT KQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc CisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJaGVyZT1gcHdkYDsgXAor KwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYx OyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0 eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJ ICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxz ZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHRhZ3M9IiQk dGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBc CisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVu aXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0k JGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdT KSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0YWdz OiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07 IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBk b25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK KysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkg IHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1Mp IFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2Qp ICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJ ICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgor Kwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3Rk aXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRv cF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChE SVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNo byAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwK KysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsg XAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIk JGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywv W14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZp bGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAt ZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3Qg LWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1l ICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYm IHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2Rpcikv JCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBj cCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBc CisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8k JGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwK KysJZG9uZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0 ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRp c3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQo YW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19j ZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJ ICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIk JHRvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBc CisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBc CisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAor Kwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwt YW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGlyczogaW5z dGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVT VERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKKysJICB0 ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxs OiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2 ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5p bnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFN X01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxj aGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xl YW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlA ZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisr CUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0 byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAt ZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytj bGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29s IFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUK KysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06 IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNs ZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDog aHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06Cisr CisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFs bC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFs bC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2 ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwt bWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxs LXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWlu dGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLXJmIC4vJChE RVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVh bi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xl YW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9z dGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1y ZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgor KworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dp bmNsdWRlSEVBREVSUworKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJF Q1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9O WTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1Mg R1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMg XAorKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vy c2l2ZSBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBc CisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBo dG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwt ZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0 YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1h bSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklF UyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtn aW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCisrCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJp cCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKysJaW5zdGFsbGRpcnMgaW5zdGFsbGRp cnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorKwl0YWdzIHRhZ3MtcmVjdXJz aXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMg dW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisrQFNFVF9NQUtFQAorKyMgVGVsbCB2ZXJz aW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMu CisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUg ZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL215c3FsL3NvY2ktbXlzcWwuaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc29jaS1teXNxbC5oCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5o CTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtMjMsMTIgKzIzLDIzIEBA CisgI2lmbmRlZiBTT0NJX01ZU1FMX0RFQ0wKKyAjIGRlZmluZSBTT0NJX01ZU1FMX0RFQ0wKKyAj ZW5kaWYKKy0KKy0jaW5jbHVkZSAic29jaS1iYWNrZW5kLmgiCisrLy8KKysjaWYgZGVmaW5lZChT T0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFj a2VuZC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysjZW5kaWYKKysv LworICNpZmRlZiBfV0lOMzIKKyAjaW5jbHVkZSA8d2luc29jay5oPiAvLyBTT0NLRVQKKyAjZW5k aWYgLy8gX1dJTjMyCistI2luY2x1ZGUgPG15c3FsLmg+IC8vIE15U1FMIENsaWVudAorKy8vCisr Ly8gTXlTUUwgQ2xpZW50CisrI2lmIGRlZmluZWQoU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCkK KysjICAgICAgIGluY2x1ZGUgPG15c3FsL215c3FsLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPG15 c3FsLmg+CisrI2VuZGlmCisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKyAKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3NvdXJjZXMubWsJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAg KzEsMTQgQEAKKytiY2tfbXlzcWxfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKytiY2tfbXlzcWxfY2Nfc291cmNlcyA9 IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8t dHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5k YXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtOCw4ICs4LDE0 IEBACisgCisgI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW15c3Fs LmgiCistI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKyAjaW5jbHVkZSAiY29tbW9uLmgiCisr Ly8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8 c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0 Zm9ybS5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGNh c3NlcnQ+CisgI2luY2x1ZGUgPGN0aW1lPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDkt MDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6 MTkuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEyIEBACisgI2RlZmluZSBTT0NJX01ZU1FM X1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1ZGUgImNvbW1vbi5oIgor LSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURF UlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4K KysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKyNlbmRpZgorIC8vCisgI2lu Y2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGxpbWl0cz4KK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAw MDAgKzAyMDAKK0BAIC0wLDAgKzEsMTggQEAKKysjIyBiYWNrZW5kL215c3FsL3Rlc3Qgc3ViLWRp cmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRl ICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmls ZS5pbgorKworK2lmIFJVTl9URVNUUworKyAgbm9pbnN0X1BST0dSQU1TID0gdGVzdF9teXNxbAor K2VuZGlmCisrCisrdGVzdF9teXNxbF9TT1VSQ0VTID0gJChteXNxbF90ZXN0X2NjX3NvdXJjZXMp CisrdGVzdF9teXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQorK3Rlc3RfbXlzcWxfTERB REQgPQorK3Rlc3RfbXlzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGli c29jaV9jb3JlLmxhIC1sZGwgXAorKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvbGlic29jaV9teXNxbC5sYSBcCisrCQkkKE1ZU1FMX0xERkxBR1MpCisrCisrI25vZGlzdF9w a2dpbmNsdWRlX0hFQURFUlMgPSAkKG15c3FsX3Rlc3RfaF9zb3VyY2VzKQorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2lj CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxl LmJhc2ljCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsMjIgKzAsMCBAQAorLSMgVGhlIGZv bGxvd2luZyB2YXJpYWJsZXMgYXJlIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQgdGhlaXIg Y29ycmVjdAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVl bCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KKy0KKy1NWVNRTExJQkRJUiA9IC1ML3Vzci9s aWIvbXlzcWwKKy1NWVNRTExJQlMgPSAtbG15c3FsY2xpZW50IC1segorLU1ZU1FMSU5DTFVERURJ UiA9IC1JL3Vzci9pbmNsdWRlL215c3FsCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUg aXMgaW5kZXBlbmRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9 IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistSU5DTFVE RURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZSAke01ZU1FMSU5DTFVERURJUn0KKy1MSUJESVJT ID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtNWVNRTExJQkRJUn0KKy1MSUJTID0gLWxzb2NpX2Nv cmUgLWxzb2NpX215c3FsIC1sZGwgJHtNWVNRTExJQlN9CistCistCistdGVzdC1teXNxbCA6IHRl c3QtbXlzcWwuY3BwCistCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9ICR7TElCRElSU30gJHtMSUJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgdGVzdC1t eXNxbAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVz dC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5pbgky MDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1MjQgQEAKKysj IE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5h bS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3Ig ZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25n IGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQK KysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrVlBB VEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xp YmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGly KS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NF UEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2 NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9T Q1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFU QSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RB TEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklO U1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWls ZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9O ID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3Jj ZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrQFJVTl9URVNU U19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfbXlzcWwkKEVYRUVYVCkKKytzdWJkaXIgPSBz b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xv Y2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jv b3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZp Z3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJ RVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1k CisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklH X0NMRUFOX0ZJTEVTID0KKytQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dSQU1TKQorK2FtX19vYmpl Y3RzXzEgPSB0ZXN0X215c3FsLXRlc3QtbXlzcWwuJChPQkpFWFQpCisrYW1fdGVzdF9teXNxbF9P QkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQorK3Rlc3RfbXlzcWxfT0JKRUNUUyA9ICQoYW1fdGVz dF9teXNxbF9PQkpFQ1RTKQorK3Rlc3RfbXlzcWxfREVQRU5ERU5DSUVTID0KKyt0ZXN0X215c3Fs X0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSBc CisrCSQoQ1hYRkxBR1MpICQodGVzdF9teXNxbF9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisr REVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQor K2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCisrYW1fX2Rl cGZpbGVzX21heWJlID0gZGVwZmlsZXMKKytDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxFID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg XAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdT KQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENYWExEKSAk KEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAt byAkQAorK1NPVVJDRVMgPSAkKHRlc3RfbXlzcWxfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAk KHRlc3RfbXlzcWxfU09VUkNFUykKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJ U1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVY VFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0g QEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAK KytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBC T09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElC QAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NU X0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJP T1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lH TkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09T VF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAK KytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAor K0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AK KytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0g QENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQ UFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRf VkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9 IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQ QVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBA RFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNI T19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VY RUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwg PSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJP R1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJ UFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytM RCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJ QlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1Mg PSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZP QAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAor K01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJT QAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1Z U1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0g QE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElS U0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJ X0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBP UkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0 QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JV R1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5H ID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVA CisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9 IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJ R0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FM X0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JF U1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAK KytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9 IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9I RUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVS U19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQ ID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04g PSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIg PSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisr YWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NA CisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBC SU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFt X19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1f X3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVp bGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0g QGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVp bGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAK KytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9j ZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2 aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZp eEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0 X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKyto b3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVk ZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0g QGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAK KytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKyts b2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21h bmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBA b2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisr cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGly ID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3No YXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lz Y29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisr dG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0 b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0g LUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrbXlzcWxfdGVzdF9oX3NvdXJjZXMg PSAKKytteXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZp bGUuaW4KKyt0ZXN0X215c3FsX1NPVVJDRVMgPSAkKG15c3FsX3Rlc3RfY2Nfc291cmNlcykKKyt0 ZXN0X215c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCisrdGVzdF9teXNxbF9MREFERCA9 IAorK3Rlc3RfbXlzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29j aV9jb3JlLmxhIC1sZGwgXAorKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv bGlic29jaV9teXNxbC5sYSBcCisrCQkkKE1ZU1FMX0xERkxBR1MpCisrCisrYWxsOiBhbGwtYW0K KysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCisrJChzcmNkaXIp L01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlA Zm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4g XAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRl c3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0 IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIp ICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUn OyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2Np L2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFr ZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwK KysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFU VVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9k ZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKKysKKytjbGVhbi1ub2luc3RQUk9HUkFNUzoKKysJQGxpc3Q9JyQobm9pbnN0X1BS T0dSQU1TKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9YGVjaG8gJCRwfHNlZCAncy8k KEVYRUVYVCkkJC8vJ2A7IFwKKysJICBlY2hvICIgcm0gLWYgJCRwICQkZiI7IFwKKysJICBybSAt ZiAkJHAgJCRmIDsgXAorKwlkb25lCisrdGVzdF9teXNxbCQoRVhFRVhUKTogJCh0ZXN0X215c3Fs X09CSkVDVFMpICQodGVzdF9teXNxbF9ERVBFTkRFTkNJRVMpIAorKwlAcm0gLWYgdGVzdF9teXNx bCQoRVhFRVhUKQorKwkkKHRlc3RfbXlzcWxfTElOSykgJCh0ZXN0X215c3FsX09CSkVDVFMpICQo dGVzdF9teXNxbF9MREFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1y bSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIu YworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90 ZXN0X215c3FsLXRlc3QtbXlzcWwuUG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIp LyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJ UikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElS KS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1u byBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BB VEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hY Q09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikv JCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBv YmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09N UElMRSkgLWMgLW8gJEAgJDwKKysKKyt0ZXN0X215c3FsLXRlc3QtbXlzcWwubzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikv dGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNx bC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvICQoREVQRElSKS90ZXN0X215c3FsLXRl c3QtbXlzcWwuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIG9i amVjdD0ndGVzdF9teXNxbC10ZXN0LW15c3FsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNI QAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5j cHAKKysKKyt0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRl c3RfbXlzcWwtdGVzdC1teXNxbC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3RfbXlzcWwt dGVzdC1teXNxbC5UcG8gLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iaiBgaWYgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAn OyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZmlgCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwu VHBvICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIG9iamVjdD0ndGVzdF9teXNxbC10ZXN0LW15c3FsLm9i aicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo dGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15 c3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvdGVzdC1teXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAn JChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlz cWwuY3BwJzsgZmlgCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysK KytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrSUQ6ICQoSEVBREVS UykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQk dW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQo VEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsg XAorKwloZXJlPWBwd2RgOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0 YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1 bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRB R1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkK KytjdGFnczogQ1RBR1MKKytDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwK KysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENU QUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAg ICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9i dWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3Rh Z3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1m IFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJ U1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlte JCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGly KSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVT KSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxl OyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAg IC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2Fz ZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2Zp bGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQs LCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQk ZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxl OyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8k JGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14v XSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQk ZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAk KGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQk ZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAg dGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQo ZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUK KytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAk KFBST0dSQU1TKQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxs LWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisr dW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytp bnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xl YW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlA ZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisr CUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0 byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAt ZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFt OiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAorKwlt b3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtcmYgLi8k KERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisr ZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2luZm86IGlu Zm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2 aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKwor K2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKworK2luc3Rh bGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5l ci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1y bSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFp bmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKysKKytt b3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwK KysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKwor K3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogaW5z dGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFt IGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJ0b29sIGNs ZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisrCWRpc3RjbGVhbi1jb21waWxl IGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3Mg ZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorKwlpbnN0YWxs IGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisr CWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1s IFwKKysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFs bC1tYW4gXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwt cHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5z dGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbi1saWJ0b29sIFwKKysJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFs bCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrI25vZGlzdF9wa2dpbmNsdWRlX0hF QURFUlMgPSAkKG15c3FsX3Rlc3RfaF9zb3VyY2VzKQorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwz LjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndp c2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisr Lk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1r CTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytt eXNxbF90ZXN0X2hfc291cmNlcyA9CisrbXlzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNw cAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAJMjAwOS0w NS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC02LDkgKzYsMTcgQEAKKyAvLyBodHRw Oi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgLy8KKyAKKy0jaW5jbHVkZSAic29j aS5oIgorLSNpbmNsdWRlICJzb2NpLW15c3FsLmgiCistI2luY2x1ZGUgInRlc3QvY29tbW9uLXRl c3RzLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvYmFja2Vu ZHMvbXlzcWwvc29jaS1teXNxbC5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rlc3Qv Y29tbW9uLXRlc3RzLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2kuaD4KKysjCWluY2x1ZGUg PHNvY2ktbXlzcWwuaD4KKysjICAgICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+Cisr I2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8aW9zdHJlYW0+CisgI2luY2x1ZGUgPHNzdHJlYW0+Cisg I2luY2x1ZGUgPHN0cmluZz4KK0BAIC0xOCw4ICsyNiwxNCBAQAorICNpbmNsdWRlIDxjdGltZT4K KyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKy0jaW5jbHVkZSA8bXlz cWxkX2Vycm9yLmg+CistI2luY2x1ZGUgPGVycm1zZy5oPgorKy8vIE15U1FMIENsaWVudAorKyNp ZiBkZWZpbmVkKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxt eXNxbC9teXNxbGRfZXJyb3IuaD4KKysjICAgICAgIGluY2x1ZGUgPG15c3FsL2Vycm1zZy5oPgor KyNlbHNlCisrIyAgICAgICBpbmNsdWRlIDxteXNxbGRfZXJyb3IuaD4KKysjICAgICAgIGluY2x1 ZGUgPGVycm1zZy5oPgorKyNlbmRpZgorIAorIHVzaW5nIG5hbWVzcGFjZSBzb2NpOworIHVzaW5n IG5hbWVzcGFjZSBzb2NpOjp0ZXN0czsKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5LTA1LTIz IDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAw MDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEzIEBACisgI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJD RQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1ZGUgImNvbW1vbi5oIgorLSNpbmNs dWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVS SUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KKysjZWxz ZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUg PGNpc282NDY+CisgCisgI2lmZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAwOS0w NS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTku MDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEyIEBACisgI2RlZmluZSBTT0NJX01ZU1FMX1NP VVJDRQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1ZGUgImNvbW1vbi5oIgorLSNp bmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNf QlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KKysj ZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKyNlbmRpZgorIC8vCisgI2luY2x1 ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGxpbWl0cz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9ibG9iLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAky MDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTcsNyArNywxMyBAQAorIAor ICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgorICNpbmNsdWRlICJlcnJvci5oIgorLSNpbmNsdWRl ICJzdGF0ZW1lbnQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisr IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+CisrI2Vsc2UKKysjCWluY2x1 ZGUgPHN0YXRlbWVudC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNzdHJpbmc+CisgI2lu Y2x1ZGUgPHNzdHJlYW0+CisgI2luY2x1ZGUgPGNzdGRpbz4KK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSwyNyBAQAorKyMjIGJhY2tlbmRzL29yYWNsZSBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMu bWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9 IC4gdGVzdAorKworK2lmIEhBVkVfT1JBQ0xFCisrbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX29y YWNsZS5sYQorKworK2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVM9ICQoYmNrX29yYWNsZV9oX3Nv dXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKKytsaWJzb2NpX29yYWNsZV9sYV9DWFhG TEFHUyA9ICQoT1JBQ0xFX09DSV9DRkxBR1MpCisrbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0K KytsaWJzb2NpX29yYWNsZV9sYV9MREZMQUdTID0gXAorKwkkKEJPT1NUX0xJQlMpICQoQk9PU1Rf REFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisrCSQoT1JBQ0xF X09DSV9MREZMQUdTKSBcCisrCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lP TikKKysKKytub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisrZW5kaWYKKytpZiBTT0NJX0hFQURFUlNfQlVS SUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytlbmRpZgorK3Br Z2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzoz NzowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKK0BAIC0xLDk1ICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lm aWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVu ZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4K Ky0KKy1PUkFDTEVJTkNMVURFRElSID0gLUkvdXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9w cm9kdWN0LzEwLjIuMC9zZXJ2ZXIvcmRibXMvcHVibGljCistCistIyBUaGUgcmVzdCBvZiB0aGUg TWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1D T01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25n CistQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCistSU5DTFVERURJUlMgPSAtSS4uLy4u L2NvcmUgJHtPUkFDTEVJTkNMVURFRElSfQorLQorLU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5v IHJvdy1pZC5vIHNlc3Npb24ubyBzdGFuZGFyZC1pbnRvLXR5cGUubyBcCistCXN0YW5kYXJkLXVz ZS10eXBlLm8gc3RhdGVtZW50Lm8gdmVjdG9yLWludG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5v IFwKKy0JZXJyb3IubworLQorLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1p ZC1zLm8gc2Vzc2lvbi1zLm8gXAorLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVz ZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKKy0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9y LXVzZS10eXBlLXMubyBlcnJvci1zLm8KKy0KKy1saWJzb2NpX29yYWNsZS5hIDogJHtPQkpFQ1RT fQorLQlhciBydiAkQCAkPworLQlybSAqLm8KKy0KKy1zb2NpLW9yYWNsZS5vIDogc29jaS1vcmFj bGUuY3BwIAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQkKKy1ibG9iLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQorLQorLWVycm9yLm8gOiBlcnJvci5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJv dy1pZC5vIDogcm93LWlkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtaW50by10eXBlLm8g OiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10 eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQorLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1p bnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9CistCistdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCistCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistCistc2hhcmVkIDog JHtPQkpFQ1RTU099CistCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9vcmFjbGUuc28g JHtPQkpFQ1RTU099CistCXJtICoubworLQorLWJsb2Itcy5vIDogYmxvYi5jcHAKKy0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWVycm9y LXMubyA6IGVycm9yLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099 ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS1zLm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJ TEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistcm93LWlk LXMubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NP fSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24tcy5vIDogc2Vzc2lvbi5jcHAKKy0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5k YXJkLWludG8tdHlwZS1zLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9 IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC11 c2UtdHlwZS1zLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC1zLm8gOiBz dGF0ZW1lbnQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJ TkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUu Y3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KKy0KKy12ZWN0b3ItdXNlLXR5cGUtcy5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAorLQkke0NP TVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistCist Y2xlYW4gOgorLQlybSAtZiAqLm8gbGlic29jaV9vcmFjbGUuYSBsaWJzb2NpX29yYWNsZS5zbwor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxl LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbgor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgxMSBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVk IGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1 dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRo ZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxB UiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtn ZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQ QUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJB VE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAor K2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQ VCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQor K3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9 IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFM TCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3Ry aXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAk KGFtX19ub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QpIFwKKysJJChzcmNkaXIpL01ha2Vm aWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9vcmFj bGUKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxf bTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFj bGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQo dG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNs b2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000 KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQo dG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKythbV9f dnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8 LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2Rpcikv KikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAq KSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAt ZSAnc3xeLiovfHwnYDsKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIg IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorK2xpYkxUTElCUkFSSUVTX0lOU1RBTEwgPSAk KElOU1RBTEwpCisrTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJBUklFUykKKytsaWJzb2NpX29y YWNsZV9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19saWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTX0RJ U1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAor KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmggXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwIFwKKysJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zZXNzaW9uLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAorK2FtX19vYmplY3RzXzEgPQorK2Ft X19vYmplY3RzXzIgPSBsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvIGxpYnNvY2lfb3JhY2xlX2xh LWVycm9yLmxvIFwKKysJbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyBsaWJzb2NpX29yYWNs ZV9sYS1yb3ctaWQubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvIFwKKysJbGli c29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwKKysJbGlic29jaV9vcmFjbGVf bGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQu bG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKKysJbGlic29j aV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvCisrQEhBVkVfT1JBQ0xFX1RSVUVAYW1fbGli c29jaV9vcmFjbGVfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgXAorK0BIQVZFX09SQUNM RV9UUlVFQAkkKGFtX19vYmplY3RzXzIpCisrbGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUyA9ICQo YW1fbGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUykKKytsaWJzb2NpX29yYWNsZV9sYV9MSU5LID0g JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxB R1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgXAorKwkkKGxpYnNvY2lfb3JhY2xlX2xhX0xERkxBR1MpICQoTERGTEFH UykgLW8gJEAKKytASEFWRV9PUkFDTEVfVFJVRUBhbV9saWJzb2NpX29yYWNsZV9sYV9ycGF0aCA9 IC1ycGF0aCAkKGxpYmRpcikKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQo dG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29u ZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK0NYWENPTVBJTEUg PSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENY WENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1f Q1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0t bW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFH UykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQoQ1BQRkxBR1Mp ICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUND ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAk KENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NMRCA9ICQoQ0Mp CisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAk KEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKGxpYnNvY2lf b3JhY2xlX2xhX1NPVVJDRVMpCisrRElTVF9TT1VSQ0VTID0gJChhbV9fbGlic29jaV9vcmFjbGVf bGFfU09VUkNFU19ESVNUKQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVj ay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJz aXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5z dGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1p bmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vy c2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFs bGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxs LXJlY3Vyc2l2ZQorK2FtX19ub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QgPSAgXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKKytub2Jhc2Vf cGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCA9ICQoaW5zdGFsbF9zaF9EQVRBKQorK0hFQURFUlMg PSAkKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMg PSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1y ZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9IGV0YWdzCisrQ1RB R1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK3Br Z2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAor K0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBA QVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJ QiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NU X0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1T X0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBC T09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFM SVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisr Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZM QUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9 IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZM QUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9 IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAor K0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19U QAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBA CisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisr R1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5T VEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFM TF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElO U1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisr TElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xA CisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpT QAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9D RkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisr TVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFH U0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElU ID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytP UkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVf T0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAor K09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RP T0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdF X0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FH RV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFS TkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVS U0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxA CisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JF U1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RH UkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9O ID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNF ID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisr U0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JV UklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQ TE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJz X2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGly ID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJA CisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19j dF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVA CisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1f X3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAor K2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVp bGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9v c0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGly QAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytk aWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRv eHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytl eGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhv c3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAor K2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1s ZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBA aW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhf b2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9j YWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisr bHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rp cl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGly QAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAK KytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAor K3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9h bGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJl Zml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bf c3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIp CisrYmNrX29yYWNsZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisrCisrYmNrX29yYWNsZV9jY19zb3VyY2VzID0g XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24u Y3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRh cmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKKysK KytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IC4gdGVzdAor K0BIQVZFX09SQUNMRV9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfb3JhY2xlLmxhCisr QEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfU09VUkNFUyA9ICQoYmNrX29yYWNs ZV9oX3NvdXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKKytASEFWRV9PUkFDTEVfVFJV RUBsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09DSV9DRkxBR1MpCisrQEhB VkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0gCisrQEhBVkVfT1JBQ0xF X1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwKKytASEFWRV9PUkFDTEVfVFJVRUAJ JChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQikgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkkKE9SQUNMRV9PQ0lfTERGTEFHUykgXAor K0BIQVZFX09SQUNMRV9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T04pCisrCisrQEhBVkVfT1JBQ0xFX1RSVUVAbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK0BTT0NJX0hF QURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNP Q0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZQorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoK KysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAk KHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNk aXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBk byBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAq KSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBl eGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2Fj OyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkg LS1nbnUgIHNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNk aXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFr ZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJ ICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysK KyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysk KEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKytpbnN0YWxsLWxpYkxU TElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRl c3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobGliZGlyKSIKKysJ QGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlm IHRlc3QgLWYgJCRwOyB0aGVuIFwKKysJICAgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgICBl Y2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcp ICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCisrCSAgICAkKExJQlRPT0wpICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJMVExJ QlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgIiQkcCIgIiQoREVTVERJUikk KGxpYmRpcikvJCRmIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZQorKworK3VuaW5zdGFs bC1saWJMVExJQlJBUklFUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQobGli X0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIHA9JChhbV9fc3RyaXBf ZGlyKSBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkcCci OyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRwIjsgXAorKwlkb25l CisrCisrY2xlYW4tbGliTFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklF UykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJ RVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUg J3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9Ljsg XAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJICBybSAt ZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX29yYWNsZS5sYTog JChsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVO Q0lFUykgCisrCSQobGlic29jaV9vcmFjbGVfbGFfTElOSykgJChhbV9saWJzb2NpX29yYWNsZV9s YV9ycGF0aCkgJChsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfb3JhY2xlX2xh X0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQo T0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1ibG9iLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlBsb0BhbV9fcXVv dGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlk LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFj bGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5k YXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5QbG9AYW1f X3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBE SVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERF UERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQ RElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9v bD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZ R1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExU Q1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAg JDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJ UikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8 JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hY Q09NUElMRSkgLWMgLW8gJEAgJDwKKysKKytsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyAtTUQg LU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29j aV9vcmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLWJsb2IuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAnIG9iamVjdD0n bGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5j cHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9lcnJvci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWVy cm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9y LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9lcnJvci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xp YnNvY2lfb3JhY2xlX2xhLWVycm9yLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJy b3IuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwJyBvYmplY3Q9J2xpYnNvY2lf b3JhY2xlX2xhLWVycm9yLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAor KworK2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9s YS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlRwbyAkKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtZmFjdG9yeS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCcg b2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt ZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9m YWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9mYWN0b3J5LmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3Jh Y2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtcm93LWlk LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuVHBvIC1j IC1vIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5UcG8gJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9yb3ctaWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1z ZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFj bGVfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt c2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNw cAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uUGxvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVf bGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAK KysKKytsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29y YWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5k YXJkLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1p bnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1p bnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5 cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFy ZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11 c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBl LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xl X2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAK KysKKytsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2Np X29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQuVHBvICQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQuUGxvCisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQu bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCisrCisr bGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5 cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRv LXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYg JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlBsbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRv LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtdmVj dG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rv ci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9v cmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt dmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVz ZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIG9i amVjdD0nbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisr QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFj bGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAorKwor K21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoK KysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJT OiAkKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0 ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dp bmNsdWRlZGlyKSIKKysJQCQoYW1fX3ZwYXRoX2Fkal9zZXR1cCkgXAorKwlsaXN0PSckKG5vYmFz ZV9wa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICAkKGFt X192cGF0aF9hZGopIFwKKysJICBlY2hvICIgJChub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlNfSU5T VEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAg JChub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikk KHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1ub2Jhc2VfcGtn aW5jbHVkZUhFQURFUlM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUAkKGFtX192cGF0aF9h ZGpfc2V0dXApIFwKKysJbGlzdD0nJChub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBw IGluICQkbGlzdDsgZG8gXAorKwkgICQoYW1fX3ZwYXRoX2FkaikgXAorKwkgIGVjaG8gIiBybSAt ZiAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmJyI7IFwKKysJICBybSAtZiAiJChERVNU RElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAorKwlkb25lCisrCisrIyBUaGlzIGRpcmVjdG9y eSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysj IGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtl ZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3Rl YWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBp biBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdp bGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1h a2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBg bWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0n ZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYg aW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9 eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFy Z2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQg aW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJ ICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwK KysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwK KysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJn ZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQk ZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQk dGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYg aW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0t WyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsg XAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlz dGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsg XAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0 aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAor Kwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMv LXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAi TWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVs c2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAor KwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3Rh Z3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIk JHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBj dGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAk KFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysK KytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJl PWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsg XAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5j bHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAg ICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBc CisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQo TElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwK KysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rp cikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAx OyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChp IGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdT KSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIg fHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFN X0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisr CWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQo U09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQ KQorKwl0YWdzPTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5p cXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQo Q1RBR1NfQVJHUykgXAorKwkgICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJl PWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3Ny Y2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNs ZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdz CisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9 YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAor KwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRs aXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3Ry aXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRk aXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJf UCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlz dGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsg XAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmls ZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisr CSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmls ZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGly KS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBS ICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7 IFwKKysJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwK KysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwg Y3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwK KysJICBmaTsgXAorKwlkb25lCisrCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtE SVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAg ZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3Rk aXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJk aXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9w X2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIv JCRzdWJkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0 aF9jaGVjaz06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vy c2l2ZQorK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChIRUFERVJTKQorK2luc3Rh bGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKysJZm9yIGRp ciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIjsg ZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKKysJZG9u ZQorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4 ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5p bnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisr CisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJpcDoK KysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCkn IHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQ KSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgor KworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMp IiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdl bmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJz IHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVj aWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxF UykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vy c2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYkxUTElCUkFSSUVTIGNs ZWFuLWxpYnRvb2wgXAorKwltb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFu LXJlY3Vyc2l2ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rp c3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMg XAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLXJlY3Vyc2l2ZQorKworK2R2aS1hbToK KysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQorKworK2luZm86IGluZm8tcmVjdXJzaXZlCisrCisr aW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVI RUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1 cnNpdmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxj aGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2 ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXIt Y2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0 bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRv b2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vy c2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFS SUVTIFwKKysJdW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUworKworKy5NQUtFOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFt IFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNr IGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJMVExJQlJBUklFUyBj bGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWRpc3RjbGVhbiBkaXN0Y2xl YW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3Rj bGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8t YW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBp bnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxs LWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBcCisrCWluc3RhbGwt bm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJ aW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJ aW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xl YW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4t Y29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYg cGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0 YWxsLWFtIFwKKysJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1ub2Jhc2VfcGtn aW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01BS0VACisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysu Tk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFj bGUvc29jaS1vcmFjbGUuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv c29jaS1vcmFjbGUuaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L3NvY2ktb3JhY2xlLmgJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAkyMDA5 LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTIyLDkgKzIyLDE0IEBACisgI2lm bmRlZiBTT0NJX09SQUNMRV9ERUNMCisgIyBkZWZpbmUgU09DSV9PUkFDTEVfREVDTAorICNlbmRp ZgorLQorLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKy0jaW5jbHVkZSA8b2NpLmg+IC8vIE9D SQorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1 ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1i YWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKysjaW5jbHVkZSA8b2NpLmg+IC8vIE9DSSAoT3JhY2xl IGNsaWVudCkKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorICNpZmRlZiBfTVNDX1ZFUgorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMubWsgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMubWsKKy0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1rCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3NvdXJjZXMubWsJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsMTQgQEAKKytiY2tfb3JhY2xlX2hfc291cmNlcyA9IFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKKytiY2tfb3Jh Y2xlX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvZXJyb3IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9yb3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc2Vzc2lvbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9y LXVzZS10eXBlLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjMg MTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4w MDAwMDAwMDAgKzAyMDAKK0BAIC03LDEwICs3LDE4IEBACisgCisgI2RlZmluZSBTT0NJX09SQUNM RV9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAiYmxvYi5oIgor ICNpbmNsdWRlICJlcnJvci5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNpbmNsdWRlICJzdGF0 ZW1lbnQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAg ICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L3Jvd2lkLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+CisrI2Vs c2UKKysjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4KKysjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+ CisrIyAgICAgICBpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRl IDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2Ut dHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJk LXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11 c2UtdHlwZS5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDEw ICs3LDE4IEBACisgCisgI2RlZmluZSBzb2NpX09SQUNMRV9TT1VSQ0UKKyAjaW5jbHVkZSAic29j aS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAiYmxvYi5oIgorICNpbmNsdWRlICJlcnJvci5oIgorLSNp bmNsdWRlICJyb3dpZC5oIgorLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKKysvLworKyNpZiBkZWZp bmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxv Yi5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+CisrIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPGJs b2IuaD4KKysjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+CisrIyAgICAgICBpbmNsdWRlIDxzdGF0 ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNz dGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAw MDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGF0ZW1lbnQuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3 ICs5LDEzIEBACisgCisgI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCisgI2luY2x1ZGUgImVycm9y LmgiCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQu aD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKyAj aW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdHJpbmc+ CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQky MDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyMiBAQAorKyMj IGNvcmUgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbgorKworK2lmIEhBVkVfT1JBQ0xFCisrICBURVNUX09SQUNMRSA9IHRl c3Rfb3JhY2xlCisrCisraWYgUlVOX1RFU1RTCisrICBub2luc3RfUFJPR1JBTVMgPSAkKFRFU1Rf T1JBQ0xFKQorK2VuZGlmCisrCisrdGVzdF9vcmFjbGVfU09VUkNFUyA9ICQob3JhY2xlX3Rlc3Rf Y2Nfc291cmNlcykKKyt0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKSAkKE9S QUNMRV9PQ0lfQ0ZMQUdTKQorK3Rlc3Rfb3JhY2xlX0xEQUREID0KKyt0ZXN0X29yYWNsZV9MREZM QUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCisr CQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvbGlic29jaV9vcmFjbGUubGEg XAorKwkJJChPUkFDTEVfT0NJX0xERkxBR1MpCisrZW5kaWYKKysKKysjbm9kaXN0X3BrZ2luY2x1 ZGVfSEVBREVSUyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQorZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmJh c2ljCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDIzICswLDAgQEAKKy0jIFRoZSBmb2xs b3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVj dAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVl IHRvIHNldCBpdCBhY2NvcmRpbmdseS4KKy0KKy1PUkFDTEVJTkNMVURFRElSID0gLUkvdXNyL2xp Yi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvcmRibXMvcHVibGlj IAorLU9SQUNMRUxJQkRJUiA9IC1ML3Vzci9saWIvb3JhY2xlL3hlL2FwcC9vcmFjbGUvcHJvZHVj dC8xMC4yLjAvc2VydmVyL2xpYiAKKy1PUkFDTEVMSUJTID0gLWxjbG50c2ggLWxubnoxMAorLQor LSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50ZW50IG9mIHRoZSB0YXJnZXQg ZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxsIC1wZWRh bnRpYyAtV25vLWxvbmctbG9uZworLUlOQ0xVREVESVJTID0gLUkuLiAtSS4uLy4uLy4uL2NvcmUg LUkuLi8uLi8uLi9jb3JlL3Rlc3QgJHtPUkFDTEVJTkNMVURFRElSfQorLUxJQkRJUlMgPSAtTC4u IC1MLi4vLi4vLi4vY29yZSAke09SQUNMRUxJQkRJUn0KKy1MSUJTID0gLWxzb2NpX2NvcmUgLWxz b2NpX29yYWNsZSAtbGRsIC1sYm9vc3RfZGF0ZV90aW1lICR7T1JBQ0xFTElCU30KKy0KKy0KKy10 ZXN0LW9yYWNsZSA6IHRlc3Qtb3JhY2xlLmNwcCAKKy0jLi4vLi4vLi4vY29yZS90ZXN0L2NvbW1v bi10ZXN0cy5oCistCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9ICR7TElCRElSU30gJHtMSUJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgKi5vIHRlc3Qt b3JhY2xlCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmls ZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1Mjgg QEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtl ZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBh bmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBh cyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdp dGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisr CisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAor K3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNs dWRlZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQ QVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAt YyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFs bF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RB TExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFM X0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1B TF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoK KytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1Rf Q09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisr CSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrQEhB VkVfT1JBQ0xFX1RSVUVAQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9ICQoYW1fX0VY RUVYVF8xKQorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QKKytBQ0xPQ0FMX000 ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9w X3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf bXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29u ZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAk KENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRp cnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9z b2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytASEFWRV9PUkFDTEVfVFJVRUBh bV9fRVhFRVhUXzEgPSB0ZXN0X29yYWNsZSQoRVhFRVhUKQorK1BST0dSQU1TID0gJChub2luc3Rf UFJPR1JBTVMpCisrYW1fX3Rlc3Rfb3JhY2xlX1NPVVJDRVNfRElTVCA9ICBcCisrCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKythbV9fb2Jq ZWN0c18xID0gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuJChPQkpFWFQpCisrQEhBVkVfT1JBQ0xF X1RSVUVAYW1fdGVzdF9vcmFjbGVfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkKKyt0ZXN0X29y YWNsZV9PQkpFQ1RTID0gJChhbV90ZXN0X29yYWNsZV9PQkpFQ1RTKQorK3Rlc3Rfb3JhY2xlX0RF UEVOREVOQ0lFUyA9CisrdGVzdF9vcmFjbGVfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExE KSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSBcCisrCSQoQ1hYRkxBR1MpICQodGVzdF9vcmFjbGVf TERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lz cmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3Jj ZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrQ1hY Q09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg XAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdT KQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksg PSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChB TV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJCh0ZXN0X29yYWNs ZV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQoYW1fX3Rlc3Rfb3JhY2xlX1NPVVJDRVNfRElT VCkKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RGSUxFUyA9ICQoRElTVF9D T01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NB TCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0g QEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRP TUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9P U1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNU RU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBA Qk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NU X1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIg PSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1Rf U0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQ TU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQ UEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAor K0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBV TklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBA Q1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NY WEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBE RUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJ TiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytF Q0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisr RkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJS QVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNU QUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BS T0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJ UF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdT ID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJU T09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9C SlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtE SVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBN WVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1Mg PSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0g PSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhU ID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NG TEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xF X09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05A CisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFD S0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdF X05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5H QAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9O ID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAK KytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NG TEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNR TF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9T VEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElC QAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0Ug PSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBT T0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9N WVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9B RF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNf YnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKyth YnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBA YWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFj X2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUg PSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKyth bV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIg PSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVp bGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWls ZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxk ZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBk YXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytk b3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9 IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19v a0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1 ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0 X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGly QAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0 ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxp YmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxv Y2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisr bWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytw ZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5k aXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNo YXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25m ZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9 IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9w X3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikg LUkkKHRvcF9zcmNkaXIpCisrb3JhY2xlX3Rlc3RfaF9zb3VyY2VzID0gCisrb3JhY2xlX3Rlc3Rf Y2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0 LW9yYWNsZS5jcHAKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrQEhBVkVf T1JBQ0xFX1RSVUVAVEVTVF9PUkFDTEUgPSB0ZXN0X29yYWNsZQorK0BIQVZFX09SQUNMRV9UUlVF QHRlc3Rfb3JhY2xlX1NPVVJDRVMgPSAkKG9yYWNsZV90ZXN0X2NjX3NvdXJjZXMpCisrQEhBVkVf T1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykgJChPUkFD TEVfT0NJX0NGTEFHUykKKytASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9MREFERCA9IAor K0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKytASEFWRV9PUkFDTEVfVFJVRUAJCSQo dG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9saWJzb2NpX29yYWNsZS5sYSBcCisr QEhBVkVfT1JBQ0xFX1RSVUVACQkkKE9SQUNMRV9PQ0lfTERGTEFHUykKKysKKythbGw6IGFsbC1h bQorKworKy5TVUZGSVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2Rp cikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisr CUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBp biBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYg dGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4 aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2Rp cikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZp bGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBz b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQor K01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7 OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwK KysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChz dWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdf U1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAk KGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxf bTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCisrCisrY2xlYW4tbm9pbnN0UFJPR1JBTVM6CisrCUBsaXN0PSckKG5vaW5z dF9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBmPWBlY2hvICQkcHxzZWQg J3MvJChFWEVFWFQpJCQvLydgOyBcCisrCSAgZWNobyAiIHJtIC1mICQkcCAkJGYiOyBcCisrCSAg cm0gLWYgJCRwICQkZiA7IFwKKysJZG9uZQorK3Rlc3Rfb3JhY2xlJChFWEVFWFQpOiAkKHRlc3Rf b3JhY2xlX09CSkVDVFMpICQodGVzdF9vcmFjbGVfREVQRU5ERU5DSUVTKSAKKysJQHJtIC1mIHRl c3Rfb3JhY2xlJChFWEVFWFQpCisrCSQodGVzdF9vcmFjbGVfTElOSykgJCh0ZXN0X29yYWNsZV9P QkpFQ1RTKSAkKHRlc3Rfb3JhY2xlX0xEQUREKSAkKExJQlMpCisrCisrbW9zdGx5Y2xlYW4tY29t cGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1y bSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvQGFtX19xdW90ZUAKKysKKysuY3Bw Lm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAg LU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworKy5jcHAu b2JqOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1Q IC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAt byAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBv IC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5U cG8gJChERVBESVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrdGVzdF9vcmFjbGUtdGVzdC1vcmFj bGUubzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xl LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFj bGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIC1N RCAtTVAgLU1GICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gLWMgLW8gdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFj bGUuVHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5QbworK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBvYmplY3Q9J3Rlc3Rfb3JhY2xlLXRlc3Qt b3JhY2xlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X29yYWNs ZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCisrCisrdGVzdF9v cmFjbGUtdGVzdC1vcmFjbGUub2JqOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3QvdGVzdC1vcmFjbGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rfb3JhY2xl LXRlc3Qtb3JhY2xlLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1v cmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiBgaWYgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7 IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvdGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZmlgCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9y YWNsZS5UcG8gJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUtdGVz dC1vcmFjbGUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9v cmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBl bHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAKKysKKyttb3N0bHljbGVhbi1saWJ0b29s OgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xp YnMKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQor KwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAor Kwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsg dGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8 IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAg ICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0n YDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVB REVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVT KSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VT KSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkg aW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBl bHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAn eyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5v bmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3Qg LXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVz dCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQo RVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFn cyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAk KFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElT UCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVu aXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAk KENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVy ZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9z cmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3Rj bGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFn cworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3Jj ZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlw PWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwK KysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQk bGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0 cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxk ZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElS X1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRp c3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7 IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZp bGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAor KwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZp bGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2Rp cikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1w UiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZp OyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBc CisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8 IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBc CisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0K KythbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDog aW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRh OiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwt YW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGlu c3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFs bC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAn JChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9H PSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1n ZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xF QU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVy LWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1h aW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVx dWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVS Q0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNs ZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1u b2luc3RQUk9HUkFNUyBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xl YW4tYW0KKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xl YW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJ ZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBo dG1sLWFtCisrCisraW5mbzogaW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRh LWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZXhlYy1h bToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLWFtCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3Rh bGwtcGRmLWFtCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGxjaGVj ay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisrCS1ybSAt cmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTog ZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBt b3N0bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1v c3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYt YW0KKysKKytwZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxs LWFtOgorKworKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IENU QUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBc CisrCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwK KysJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wg XAorKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8g aW5mby1hbSBcCisrCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRh LWFtIGluc3RhbGwtZHZpIFwKKysJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAorKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGlu c3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCisrCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFt IGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCisrCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNr IGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisrCW1haW50YWluZXItY2xlYW4gbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKKysJbW9zdGx5Y2xlYW4tY29tcGlsZSBt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAorKwlwZGYgcGRmLWFtIHBz IHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysj bm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQorKyMg VGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2 YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0 KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCAr MDIwMAorQEAgLTAsMCArMSwyIEBACisrb3JhY2xlX3Rlc3RfaF9zb3VyY2VzID0KKytvcmFjbGVf dGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L3Rlc3Qtb3JhY2xlLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCTIwMDktMDUtMjMgMTM6 Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAw MDAwICswMjAwCitAQCAtNSw5ICs1LDE3IEBACisgLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElD RU5TRV8xXzAudHh0KQorIC8vCisgCistI2luY2x1ZGUgInNvY2kuaCIKKy0jaW5jbHVkZSAic29j aS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAiY29tbW9uLXRlc3RzLmgiCisrLy8KKysjaWYgZGVmaW5l ZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ku aD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmg+ CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KKysjZWxz ZQorKyMJaW5jbHVkZSA8c29jaS5oPgorKyMJaW5jbHVkZSA8c29jaS1vcmFjbGUuaD4KKysjICAg ICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVk ZSA8aW9zdHJlYW0+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8Y2Fzc2VydD4KK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50 by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9y LWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNs ZS92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50 by10eXBlLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTcsOCAr NywxNCBAQAorIAorICNkZWZpbmUgc29jaV9PUkFDTEVfU09VUkNFCisgI2luY2x1ZGUgInNvY2kt b3JhY2xlLmgiCistI2luY2x1ZGUgInN0YXRlbWVudC5oIgorICNpbmNsdWRlICJlcnJvci5oIgor Ky8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUg PHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+ CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjc3RkaW8+Cisg I2luY2x1ZGUgPGNzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAg KzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Nv bW1vbi5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC02LDcgKzYs MTIgQEAKKyAvLworIAorICNpbmNsdWRlICJjb21tb24uaCIKKy0jaW5jbHVkZSA8c29jaS1iYWNr ZW5kLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxz b2NpLWJhY2tlbmQuaD4KKysjZW5kaWYKKyAvLworICNpbmNsdWRlIDxjc3RkbGliPgorICNpbmNs dWRlIDxjc3RkaW8+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2Vm aWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDMw IEBACisrIyMgYmFja2VuZHMvcG9zdGdyZXNxbCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsK KysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IC4g dGVzdAorKworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5o CisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQor KworK2lmIEhBVkVfUE9TVEdSRVNRTAorK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9wb3N0Z3Jl c3FsLmxhCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVM9ICQoYmNrX3Bvc3RncmVz cWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAorK2xpYnNvY2lfcG9z dGdyZXNxbF9sYV9DWFhGTEFHUyA9ICQoUE9TVEdSRVNRTF9DRkxBR1MpCisrbGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0xJQkFERCA9CisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MgPSBcCisr CSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BU SU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQor KworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrZW5kaWYKKytpZiBTT0NJX0hFQURFUlNfQlVSSUVE Cisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsCisrZWxzZQorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrZW5kaWYKKytw a2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCTIw MDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsOTUgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2 YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0CistIyB2 YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0 IGl0IGFjY29yZGluZ2x5LgorLQorLVBHU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlCist CistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdl dCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBl ZGFudGljIC1Xbm8tbG9uZy1sb25nCistQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCist SU5DTFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtQR1NRTElOQ0xVREVESVJ9CistCistCistT0JK RUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8t dHlwZS5vIFwKKy0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10 eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8gXAorLQljb21tb24ubworLQorLU9CSkVDVFNTTyA9IGJs b2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAorLQlzdGFuZGFyZC1p bnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKKy0JdmVj dG9yLWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBjb21tb24tcy5vCistCistCist bGlic29jaV9wb3N0Z3Jlc3FsLmEgOiAke09CSkVDVFN9CistCWFyIHJ2ICRAICQ/CistCXJtICou bworLQorLQorLWJsb2IubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLm8gOiBjb21tb24uY3BwCistCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS5vIDogZmFj dG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K Ky0KKy1yb3ctaWQubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8t dHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFy ZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30KKy0KKy1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLm8gOiB2 ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAor LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLQorLXNo YXJlZCA6ICR7T0JKRUNUU1NPfQorLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfcG9z dGdyZXNxbC5zbyAke09CSkVDVFNTT30KKy0Jcm0gKi5vCistCistYmxvYi1zLm8gOiBibG9iLmNw cAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9 CistCistY29tbW9uLXMubyA6IGNvbW1vbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5j cHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQorLQorLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLXMubyA6IHNlc3Npb24u Y3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAor LQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Cist Cistc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09N UElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0 ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0 b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099 ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlw ZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVE SVJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgbGlic29jaV9wb3N0Z3Jlc3FsLmEgbGlic29j aV9wb3N0Z3Jlc3FsLnNvCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01h a2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsx LDgxMyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9t IE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykg MTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysj IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxh dzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFL RUAKKysKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBB Q0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFU SD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3No X0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQo aW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJ TlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQ T1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0g OgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90 cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKGFtX19wa2dpbmNsdWRlX0hFQURFUlNf RElTVCkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmluICQo c3JjZGlyKS9zb3VyY2VzLm1rIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytz dWJkaXIgPSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3Jj ZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29u ZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVu aXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdh ci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisr YW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9E RVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3Rh bGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5o CisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3Ry aXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0g Y2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xe JCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1f X3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKKythbV9faW5zdGFs bGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIp IgorK2xpYkxUTElCUkFSSUVTX0lOU1RBTEwgPSAkKElOU1RBTEwpCisrTFRMSUJSQVJJRVMgPSAk KGxpYl9MVExJQlJBUklFUykKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGFfREVQRU5ERU5DSUVTID0K KythbV9fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVNfRElTVCA9ICBcCisrCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5oIFwKKysJJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmggXAorKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCBcCisrCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgXAorKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCisrCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAorKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAor KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwIFwK KysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlw ZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3It dXNlLXR5cGUuY3BwCisrYW1fX29iamVjdHNfMSA9CisrYW1fX29iamVjdHNfMiA9IGxpYnNvY2lf cG9zdGdyZXNxbF9sYS1ibG9iLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5s byBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvIFwKKysJbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXJvdy1pZC5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxv IFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBcCisrCWxp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCisrCWxpYnNvY2lfcG9z dGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9y LWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUu bG8KKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVD VFMgPSAgXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJJChhbV9fb2JqZWN0c18xKSAkKGFtX19v YmplY3RzXzIpCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMgPSAkKGFtX2xpYnNvY2lf cG9zdGdyZXNxbF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9MSU5LID0gJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIFwKKysJJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTERGTEFHUykgJChM REZMQUdTKSAtbyAkQAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBhbV9saWJzb2NpX3Bvc3RncmVz cWxfbGFfcnBhdGggPSAtcnBhdGggXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJJChsaWJkaXIp CisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29j aQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCisrYW1f X2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKytDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxFID0gJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZM QUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENYWExE KSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdT KSAtbyAkQAorK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChD RkxBR1MpCisrTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQorK0xJTksgPSAkKExJQlRP T0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1v ZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCisr CSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfU09V UkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNF U19ESVNUKQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNp dmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3Rh bGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVj LXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vy c2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0 YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVj dXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2 ZQorK2FtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrcGtnaW5jbHVkZUhFQURF UlNfSU5TVEFMTCA9ICQoSU5TVEFMTF9IRUFERVIpCisrSEVBREVSUyA9ICQocGtnaW5jbHVkZV9I RUFERVJTKQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZl IGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJ UlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJD RVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2lu Y2x1ZGVfZGlyKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9 IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJA CisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBA Qk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJ QkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09T VF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBC T09TVF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NU X1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJ R05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9P U1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05A CisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAK KytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NA CisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9 IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytD UFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklU X1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUg PSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lH UEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0g QERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VD SE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytF WEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJT SU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxM ID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BS T0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NS SVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisr TEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytM SUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9T ID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5G T0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AK KytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElS U0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBN WVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9 IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJ UlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09D SV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBA T1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2 NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9C VUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklO RyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1F QAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1Ig PSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05G SUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNR TF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdS RVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05A CisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQg PSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lf SEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJ UCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9O ID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGly ID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAor K2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0ND QAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1Q QklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBh bV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFt X190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1 aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9 IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1 aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJA CisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2Rv Y2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBk dmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVm aXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9z dF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisr aG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1 ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9 IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJA CisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisr bG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKytt YW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0g QG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAor K3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2Rp ciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytz aGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5 c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAor K3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBA dG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9 IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK2Jja19wb3N0Z3Jlc3FsX2hfc291 cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2NvbW1vbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrCisrYmNrX3Bvc3RncmVzcWxfY2Nfc291cmNlcyA9IFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1v bi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv ZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvcm93LWlkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1l bnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKysKKytNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IC4gdGVzdAorKworKyNFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCisrRVhUUkFfRElTVCA9ICQoRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJf TFRMSUJSQVJJRVMgPSBsaWJzb2NpX3Bvc3RncmVzcWwubGEKKytASEFWRV9QT1NUR1JFU1FMX1RS VUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVMgPSAkKGJja19wb3N0Z3Jlc3FsX2hfc291 cmNlcykgJChiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzKSAKKytASEFWRV9QT1NUR1JFU1FMX1RS VUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0gJChQT1NUR1JFU1FMX0NGTEFHUykK KytASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCA9IAor K0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTERGTEFHUyA9IFwK KytASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVf TElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKytASEFWRV9QT1NUR1JFU1FMX1RS VUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKytASEFWRV9Q T1NUR1JFU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKytAU09DSV9IRUFERVJTX0JVUklF RF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK0BTT0NJX0hFQURFUlNf QlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKy5TVUZG SVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGly KS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291 cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJ ICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJ ICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsg ZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJ ZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAg c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIp ICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01h a2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZp bGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisr CSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAn IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIp LyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21h eWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr CisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr JChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisraW5zdGFsbC1saWJM VExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0 ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCisr CUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBp ZiB0ZXN0IC1mICQkcDsgdGhlbiBcCisrCSAgICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgICAg ZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFH KSAnJCRwJyAnJChERVNURElSKSQobGliZGlyKS8kJGYnIjsgXAorKwkgICAgJChMSUJUT09MKSAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRM SUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICIkJHAiICIkKERFU1RESVIp JChsaWJkaXIpLyQkZiI7IFwKKysJICBlbHNlIDo7IGZpOyBcCisrCWRvbmUKKysKKyt1bmluc3Rh bGwtbGliTFRMSUJSQVJJRVM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKGxp Yl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBwPSQoYW1fX3N0cmlw X2RpcikgXAorKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJHAn IjsgXAorKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9dW5pbnN0YWxsIHJtIC1mICIkKERFU1RESVIpJChsaWJkaXIpLyQkcCI7IFwKKysJZG9u ZQorKworK2NsZWFuLWxpYkxUTElCUkFSSUVTOgorKwktdGVzdCAteiAiJChsaWJfTFRMSUJSQVJJ RVMpIiB8fCBybSAtZiAkKGxpYl9MVExJQlJBUklFUykKKysJQGxpc3Q9JyQobGliX0xUTElCUkFS SUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1l ICdzfC9bXi9dKiQkfHwnYCI7IFwKKysJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47 IFwKKysJICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCisrCSAgcm0g LWYgIiQke2Rpcn0vc29fbG9jYXRpb25zIjsgXAorKwlkb25lCisrbGlic29jaV9wb3N0Z3Jlc3Fs LmxhOiAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9ERVBFTkRFTkNJRVMpIAorKwkkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MSU5LKSAkKGFt X2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ycGF0aCkgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JK RUNUUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREKSAkKExJQlMpCisrCisrbW9zdGx5 Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNsZWFuLWNvbXBp bGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlBsb0BhbV9fcXVv dGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxf bGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFu ZGFyZC11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlBs b0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsb0BhbV9fcXVv dGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKysKKysu Y3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAt TVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8g QEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAor K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworKy5j cHAub2JqOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQg LU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCou UG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVj dD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAt YyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCou VHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8k Ki5UcG8gJChERVBESVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2Iu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxf bGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIG9iamVjdD0n bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xh LWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9ibG9iLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24u bG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLWNvbW1vbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLWNvbW1vbi5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvY29tbW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS1jb21tb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAn IG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCisrCisrbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLWZhY3RvcnkubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkuVHBv ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5QbG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xh LWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9mYWN0b3J5LmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQubG86ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXJvdy1pZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJv dy1pZC5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93 LWlkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1y b3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIG9iamVjdD0n bGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxf bGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Np b24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24u bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9u LmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG86ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMgLW8gbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVz ZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBv IC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5U cG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9 J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAor K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3Rh dGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlRwbyAkKERF UERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEt c3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YXRlbWVudC5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWlu dG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAt YyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1m ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsbworK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2Np X3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9w b3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5 cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11 c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKysKKyttb3N0bHljbGVhbi1saWJ0 b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMg X2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykK KysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQo TUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorKwlAbGlzdD0nJChwa2dpbmNs dWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRw IjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBmPSQoYW1fX3N0cmlw X2RpcikgXAorKwkgIGVjaG8gIiAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICckJGQkJHAn ICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgICQocGtnaW5jbHVkZUhF QURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7 IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKKysJQCQoTk9STUFM X1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQk bGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiIHJtIC1mICck KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1mICIkKERFU1RESVIp JChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mg c3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50 byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxl LgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBv ZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBj b25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBj YXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScp OworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtl JyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0 IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBc CisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMn OzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9 YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAk JHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAg ZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkg IGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkg IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkg XAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rf c2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJn ZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4 ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtd Kik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisr CWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0Y2xl YW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisr CSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g OjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisrCWRv bmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVj dXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAg fHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1y ZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3Vi ZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdz KTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFH U19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3Qg LWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAor KwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7 IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmlu dCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RB R1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3 ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251 bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisr CSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRl OyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVu IDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICB0 YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJ ICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0 YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1 bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRB R1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkK KytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisr CXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUi IFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFH U19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQo YW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGly KSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4t dGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysK KytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNo byAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxp c3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7 IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98 fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikv fDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBg ZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGly KS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisr CWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8 IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBp ZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8 IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQk ZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChz cmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAor KwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkg IGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAt cCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkg IGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAor KwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJUl9Q KSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgICBkaXN0 ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICB0b3BfZGlzdGRpcj1g JChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIChjZCAkJHN1YmRpciAm JiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlz dGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1 YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2No ZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAg Zmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZl CisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCisraW5zdGFsbGRp cnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgorKwlmb3IgZGlyIGlu ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBc CisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorKwlkb25lCisr aW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1y ZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3Rh bGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytp bnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dS QU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwg XAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJg IGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisr ZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8 IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJp YzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8g dXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwg dG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIg fHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZl CisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4t bGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVj dXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNs ZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisr CWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKwor K2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZv LWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKwor K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06 IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1y ZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytp bnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisr aW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsY2hlY2stYW06Cisr CisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1y ZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBk aXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1v c3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21w aWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRm OiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytw cy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3Rh bGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCisrCWluc3RhbGwtc3RyaXAKKysK KysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMp IENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1n ZW5lcmljIFwKKysJY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBjdGFncyBjdGFn cy1yZWN1cnNpdmUgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdl bmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBk dmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBp bnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmkt YW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxs LWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbGliTFRM SUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0 YWxsLXBrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcHMgXAorKwlpbnN0YWxsLXBzLWFtIGluc3Rh bGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBcCisrCWluc3RhbGxkaXJzIGlu c3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdz LXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKKysJdW5pbnN0YWxsLWxpYkxUTElC UkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK0BTRVRfTUFLRUAKKysjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmggc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwu aAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgJMjAwOS0wNS0y MiAyMjo1NDoxOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMiw5ICsyMiwxNCBAQAorICNpZm5kZWYg U09DSV9QT1NUR1JFU1FMX0RFQ0wKKyAjIGRlZmluZSBTT0NJX1BPU1RHUkVTUUxfREVDTAorICNl bmRpZgorLQorLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKy0jaW5jbHVkZSA8bGlicHEtZmUu aD4KKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2kt YmFja2VuZC5oPgorKyNlbmRpZgorKy8vCisrI2luY2x1ZGUgPGxpYnBxLWZlLmg+IC8vIFBvc3RH cmVTUUwgY2xpZW50CisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKyAjaWZkZWYgX01TQ19WRVIKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc291cmNl cy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMu bWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc291cmNl cy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc291cmNlcy5tawkyMDA5LTA1LTIyIDIy OjU0OjE4LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNCBAQAorK2Jja19wb3N0Z3Jlc3Fs X2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2NvbW1vbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrYmNrX3Bvc3RncmVzcWxfY2Nfc291cmNlcyA9 IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2Iu Y3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Nv bW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvcm93LWlkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0 ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNw cCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWlu dG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCAr MDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE4LjAwMDAwMDAwMCArMDIwMAor QEAgLTgsOSArOCwxNiBAQAorICNkZWZpbmUgU09DSV9QT1NUR1JFU1FMX1NPVVJDRQorICNpbmNs dWRlICJzb2NpLXBvc3RncmVzcWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2luY2x1ZGUg InJvd2lkLmgiCistI2luY2x1ZGUgImJsb2IuaCIKKy0jaW5jbHVkZSA8bGlicHEvbGlicHEtZnMu aD4gLy8gbGlicHEKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAg ICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL3Jvd2lkLmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4KKysjICAgICAg IGluY2x1ZGUgPHJvd2lkLmg+CisrI2VuZGlmCisrLy8KKysjaW5jbHVkZSA8bGlicHEvbGlicHEt ZnMuaD4gLy8gbGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQorICNpbmNsdWRlIDxjY3R5cGU+Cisg I2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAwICswMjAwCitAQCAt Nyw4ICs3LDE0IEBACisgCisgI2RlZmluZSBTT0NJX1BPU1RHUkVTUUxfU09VUkNFCisgI2luY2x1 ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNpbmNsdWRlIDxs aWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcQorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJT X0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9yb3dpZC5oPgorKyNlbHNlCisr IyAgICAgICBpbmNsdWRlIDxyb3dpZC5oPgorKyNlbmRpZgorKy8vCisrI2luY2x1ZGUgPGxpYnBx L2xpYnBxLWZzLmg+IC8vIGxpYnBxIChQb3N0R3JlU1FMIGNsaWVudCkKKyAjaW5jbHVkZSA8Y2N0 eXBlPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdHJpbmc+CitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUu YW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2Vm aWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUu YW0JMjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTggQEAK KysjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytpZiBSVU5fVEVTVFMKKysgIG5vaW5zdF9QUk9HUkFN UyA9IHRlc3RfcG9zdGdyZXNxbAorK2VuZGlmCisrCisrdGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMg PSAkKHBvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzKQorK3Rlc3RfcG9zdGdyZXNxbF9DWFhGTEFH UyA9ICQoQk9PU1RfQ0ZMQUdTKQorK3Rlc3RfcG9zdGdyZXNxbF9MREFERCA9CisrdGVzdF9wb3N0 Z3Jlc3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5s YSAtbGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGli c29jaV9wb3N0Z3Jlc3FsLmxhIFwKKysJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQorKworKyNub2Rp c3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzKQorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01h a2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAw MDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CitAQCAtMSwyMiArMCwwIEBACistIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmlj IHRvIHRoaXMgYmFja2VuZCBhbmQgaXRzIGNvcnJlY3QKKy0jIHZhbHVlcyBtaWdodCBkZXBlbmQg b24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCist CistUEdTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUKKy1QR1NRTExJQkRJUiA9IC1ML3Vz ci9saWIKKy1QR1NRTExJQlMgPSAtbHBxCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUg aXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9 IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistSU5DTFVE RURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZS90ZXN0IC1JLi4vLi4vLi4vY29yZSAke1BHU1FM SU5DTFVERURJUn0KKy1MSUJESVJTID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtQR1NRTExJQkRJ Un0KKy1MSUJTID0gLWxzb2NpX2NvcmUgLWxzb2NpX3Bvc3RncmVzcWwgLWxkbCAke1BHU1FMTElC U30KKy0KKy0KKy10ZXN0LXBvc3RncmVzcWwgOiB0ZXN0LXBvc3RncmVzcWwuY3BwCistCSR7Q09N UElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtM SUJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgdGVzdC1wb3N0Z3Jlc3FsCitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUu aW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2Vm aWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUu aW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTI1IEBA CisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZp bGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKwor K1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVk ZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9J TlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxf VU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6Cisr YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NP TU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkk KHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK0BSVU5f VEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X3Bvc3RncmVzcWwkKEVYRUVYVCkKKytz dWJkaXIgPSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdAorK0FDTE9DQUxfTTQgPSAkKHRv cF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv Y3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUu YWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklH VVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQo aW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29u ZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK1BST0dSQU1TID0gJChub2luc3RfUFJPR1JB TVMpCisrYW1fX29iamVjdHNfMSA9IHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuJChP QkpFWFQpCisrYW1fdGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCisr dGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAkKGFtX3Rlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKQor K3Rlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMgPQorK3Rlc3RfcG9zdGdyZXNxbF9MSU5LID0g JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxB R1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIFwKKysJJCh0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUykgJChMREZMQUdTKSAt byAkQAorK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIp L3NvY2kKKytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAor K2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAor KwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChD WFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERG TEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJCh0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUykKKytESVNU X1NPVVJDRVMgPSAkKHRlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTKQorK0VUQUdTID0gZXRhZ3MKKytD VEFHUyA9IGN0YWdzCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIg PSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURF UiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisr Qk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJP T1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZ U1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAor K0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0g QEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JF R0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9O X0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytD RkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisr Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQ UEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisr Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJ UkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19D ID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdS RVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5F UklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0g QEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RB VEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQ VCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9T VFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpT ID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBP ID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFL RUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9 IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9E SVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01Z U1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1F RElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9E SVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZM QUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xF X09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytP VE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQ T1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVA CisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0g QFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAor K1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19D T05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZM QUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9M REZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9T VEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBN X1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9 IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisr U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAor K1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NP TU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRk aXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJz X3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19j dF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBC SU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9f bGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVA CisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGly ID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlh c0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1 aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0 YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sg PSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9v a0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJl Zml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKyto b3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9v cyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBA aHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGly QAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKyts aWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIg PSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hP ID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisr b2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJl Zml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNm b3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9v ayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGly ID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0g QHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisr dG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJA CisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytwb3N0 Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzID0gCisrcG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrdGVzdF9wb3N0Z3Jl c3FsX1NPVVJDRVMgPSAkKHBvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzKQorK3Rlc3RfcG9zdGdy ZXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQorK3Rlc3RfcG9zdGdyZXNxbF9MREFERCA9 IAorK3Rlc3RfcG9zdGdyZXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9s aWJzb2NpX2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL2xpYnNvY2lfcG9zdGdyZXNxbC5sYSBcCisrCQkkKFBPU1RHUkVTUUxfTERGTEFH UykKKysKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxv IC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0g JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9f Y29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9f Y29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAor KwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZp OyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNo byAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJ ICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZp bGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5p biAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAq Y29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAg JChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo U0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUp OzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKysk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFD TE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKytjbGVhbi1ub2luc3RQ Uk9HUkFNUzoKKysJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IGZvciBwIGluICQkbGlzdDsg ZG8gXAorKwkgIGY9YGVjaG8gJCRwfHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKysJICBlY2hv ICIgcm0gLWYgJCRwICQkZiI7IFwKKysJICBybSAtZiAkJHAgJCRmIDsgXAorKwlkb25lCisrdGVz dF9wb3N0Z3Jlc3FsJChFWEVFWFQpOiAkKHRlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKSAkKHRlc3Rf cG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMpIAorKwlAcm0gLWYgdGVzdF9wb3N0Z3Jlc3FsJChFWEVF WFQpCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0xJTkspICQodGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMp ICQodGVzdF9wb3N0Z3Jlc3FsX0xEQUREKSAkKExJQlMpCisrCisrbW9zdGx5Y2xlYW4tY29tcGls ZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1ybSAt ZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG9AYW1fX3F1b3RlQAorKwor Ky5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1E IC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1u byBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisr LmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1N RCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8k Ki5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2Jq ZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUp IC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8k Ki5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKyt0ZXN0X3Bvc3RncmVzcWwt dGVzdC1wb3N0Z3Jlc3FsLm86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVz dF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0 X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVz dC1wb3N0Z3Jlc3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0X3Bvc3RncmVz cWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9z dGdyZXNxbC5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAnIG9iamVjdD0ndGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vJyBsaWJ0b29s PW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X3Bvc3Rn cmVzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBv c3RncmVzcWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAK KysKKyt0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9iajogJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9iaiAt TUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8g LWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogYGlmIHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3Fs LmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChz cmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1w b3N0Z3Jlc3FsLmNwcCc7IGZpYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJ UikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8gJChERVBESVIpL3Rlc3RfcG9z dGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC90ZXN0LXBvc3RncmVzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3Rn cmVzcWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rf cG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyB0aGVu ICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5j cHAnOyBmaWAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2Ns ZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKytJRDogJChIRUFERVJTKSAk KFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVB REVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlx dWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdT X0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisr CWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3Mk JHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1 ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0 YWdzOiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5E RU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0n JChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1 ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVj aG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkg ICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5E IHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisr CXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1Mp ICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAk JHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxk ZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAt aSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFH UyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJ TEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxc Kl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsg XAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRv bmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUg InN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQk ZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMi IHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8 IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0 X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRo ZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmls ZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQk LCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9 ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlz dGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQk ZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0 IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0 ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2No ZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlICQoUFJP R1JBTVMpCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhl YzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmlu c3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAk KEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3Rh bGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFN X01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwK KysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFM TF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVj aG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisr bW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1n ZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENP TkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hv ICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVj aG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJl YnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQo TUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNs ZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCisrCW1vc3Rs eWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKysJLXJtIC1yZiAuLyQoREVQ RElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVh bi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6 IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraW5mbzogaW5mby1h bQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBp bnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGlu c3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisrCisraW5z dGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1w czogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNs ZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1m IE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKworK21vc3Rs eWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwlt b3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtYW0KKysKKytwZGYtYW06CisrCisrcHM6 IHBzLWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiBpbnN0YWxs LWFtIGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hl Y2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYnRvb2wgY2xlYW4t bm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKKysJZGlzdGNsZWFuLWNvbXBpbGUgZGlz dGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4tdGFncyBkaXN0 ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCisrCWluc3RhbGwgaW5z dGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKysJaW5z dGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAor KwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1h biBcCisrCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1h bSBcCisrCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxs ZGlycyBcCisrCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuIFwKKysJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuLWxpYnRvb2wgXAorKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVu aW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVS UyA9ICQocG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcykKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTks My42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3 aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgor Ky5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDIgQEAKKytwb3N0Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzID0KKytwb3N0Z3Jl c3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rl c3QtcG9zdGdyZXNxbC5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAgKzAyMDAKK0BA IC01LDkgKzUsMTcgQEAKKyAvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQp CisgLy8KKyAKKy0jaW5jbHVkZSAic29jaS5oIgorLSNpbmNsdWRlICJzb2NpLXBvc3RncmVzcWwu aCIKKy0jaW5jbHVkZSAiY29tbW9uLXRlc3RzLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hF QURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAg ICAgIGluY2x1ZGUgPHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaD4K KysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbHNl CisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIwlpbmNsdWRlIDxzb2NpLXBvc3RncmVzcWwuaD4KKysj ICAgICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+CisrI2VuZGlmCisrLy8KKyAjaW5j bHVkZSA8aW9zdHJlYW0+CisgI2luY2x1ZGUgPHNzdHJlYW0+CisgI2luY2x1ZGUgPHN0cmluZz4K K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvbmZpZy5oLmluIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvbmZpZy5oLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb25m aWcuaC5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2NvbmZpZy5oLmluCTIwMDktMDUtMjMgMTA6MDI6MDEuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDE0NiBAQAorKy8qIHNvY2kvY29uZmlnLmguaW4uICBHZW5lcmF0 ZWQgZnJvbSBjb25maWd1cmUuYWMgYnkgYXV0b2hlYWRlci4gICovCisrCisrLyogZGVmaW5lIGlm IHRoZSBCb29zdCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUCisr CisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxl ICovCisrI3VuZGVmIEhBVkVfQk9PU1RfREFURV9USU1FCisrCisrLyogZGVmaW5lIGlmIHRoZSBC b29zdDo6RklMRVNZU1RFTSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JP T1NUX0ZJTEVTWVNURU0KKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9JT1NUUkVBTVMKKysKKysv KiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpQUk9HUkFNX09QVElPTlMgbGlicmFyeSBpcyBhdmFpbGFi bGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMKKysKKysvKiBkZWZpbmUg aWYgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZF X0JPT1NUX1JFR0VYCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBs aWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX1NFUklBTElaQVRJT04K KysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxl ICovCisrI3VuZGVmIEhBVkVfQk9PU1RfU0lHTkFMUworKworKy8qIGRlZmluZSBpZiB0aGUgQm9v c3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX1RI UkVBRAorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlVuaXRfdGVzdF9mcmFtZXdvcmsgbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxjbWF0aD4gaGVhZGVyIGZp bGUuICovCisrI3VuZGVmIEhBVkVfQ01BVEgKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPGRlcXVlPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9ERVFVRQorKworKy8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGxmY24uaD4gaGVhZGVyIGZpbGUuICovCisr I3VuZGVmIEhBVkVfRExGQ05fSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 ZnN0cmVhbT4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfRlNUUkVBTQorKworKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW50dHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCisr I3VuZGVmIEhBVkVfSU5UVFlQRVNfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8aW9tYW5pcD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfSU9NQU5JUAorKworKy8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW9zdHJlYW0+IGhlYWRlciBmaWxlLiAqLwor KyN1bmRlZiBIQVZFX0lPU1RSRUFNCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxsaW1pdHM+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0xJTUlUUworKworKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGlzdD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVm IEhBVkVfTElTVAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFwPiBoZWFk ZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9NQVAKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9NRU1PUllf SAorKworKy8qIERlZmluZSB0byAxIGlmIE15U1FMIGxpYnJhcmllcyBhcmUgYXZhaWxhYmxlICov CisrI3VuZGVmIEhBVkVfTVlTUUwKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB0aGUgT3JhY2xlIE9D SSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX09SQUNMRQorKworKy8qIERl ZmluZSB0byAxIGlmIFBvc3RncmVTUUwgbGlicmFyaWVzIGFyZSBhdmFpbGFibGUgKi8KKysjdW5k ZWYgSEFWRV9QT1NUR1JFU1FMCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxx dWV1ZT4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfUVVFVUUKKysKKysvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNldD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVf U0VUCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzc3RyZWFtPiBoZWFkZXIg ZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TU1RSRUFNCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIDxzdGRleGNlcHQ+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NUREVY Q0VQVAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRl ciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NURElOVF9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1RE TElCX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZz4gaGVhZGVy IGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1RSSU5HCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NUUklO R1NfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5nLmg+IGhlYWRl ciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NUUklOR19ICisrCisrLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9T WVNfU1RBVF9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMu aD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1lTX1RZUEVTX0gKKysKKysvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5k ZWYgSEFWRV9VTklTVERfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dmVj dG9yPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9WRUNUT1IKKysKKysvKiBEZWZpbmUg dG8gdGhlIHN1Yi1kaXJlY3RvcnkgaW4gd2hpY2ggbGlidG9vbCBzdG9yZXMgdW5pbnN0YWxsZWQg bGlicmFyaWVzLgorKyAgICovCisrI3VuZGVmIExUX09CSkRJUgorKworKy8qIE5hbWUgb2YgcGFj a2FnZSAqLworKyN1bmRlZiBQQUNLQUdFCisrCisrLyogRGVmaW5lIHRvIHRoZSBhZGRyZXNzIHdo ZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxkIGJlIHNlbnQuICovCisrI3Vu ZGVmIFBBQ0tBR0VfQlVHUkVQT1JUCisrCisrLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgb2Yg dGhpcyBwYWNrYWdlLiAqLworKyN1bmRlZiBQQUNLQUdFX05BTUUKKysKKysvKiBEZWZpbmUgdG8g dGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCisrI3VuZGVmIFBB Q0tBR0VfU1RSSU5HCisrCisrLyogRGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUg b2YgdGhpcyBwYWNrYWdlLiAqLworKyN1bmRlZiBQQUNLQUdFX1RBUk5BTUUKKysKKysvKiBEZWZp bmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLworKyN1bmRlZiBQQUNLQUdFX1ZF UlNJT04KKysKKysvKiBEZWZpbmUgaWYgeW91IHdhbnQgZXhjZXB0aW9ucyBoYW5kbGluZyAqLwor KyN1bmRlZiBTT0NJX0VYQ0VQVElPTlMKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gKi8KKysjdW5kZWYgU1REQ19IRUFERVJTCisrCisrLyog RGVmaW5lIHRvIDEgaWYgeW91IGNhbiBzYWZlbHkgaW5jbHVkZSBib3RoIDxzeXMvdGltZS5oPiBh bmQgPHRpbWUuaD4uICovCisrI3VuZGVmIFRJTUVfV0lUSF9TWVNfVElNRQorKworKy8qIFZlcnNp b24gbnVtYmVyIG9mIHBhY2thZ2UgKi8KKysjdW5kZWYgVkVSU0lPTgorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9jb3JlL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2Vm aWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE4LjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSwyOSBAQAorKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQorK2lu Y2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9z b3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK1NV QkRJUlMgPSAuIHRlc3QKKysKKysjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0g Ll9yb3cuY3BwIC5fc29jaS1zaW1wbGUuY3BwIC5fc29jaS1zaW1wbGUuaCAuX3ZhbHVlcy1leGNo YW5nZS5oCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklM SVRZKQorKworK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9jb3JlLmxhCisrCisrbGlic29jaV9j b3JlX2xhX1NPVVJDRVM9ICQoY29yZV9oX3NvdXJjZXMpICQoY29yZV9jY19zb3VyY2VzKSAKKyts aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MgPQorK2xpYnNvY2lfY29yZV9sYV9MSUJBREQgPQorK2xp YnNvY2lfY29yZV9sYV9MREZMQUdTID0gXAorKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9U SU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisrCS12ZXJzaW9uLWluZm8g JChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKytwa2dpbmNsdWRlX0hFQURFUlMgPSAkKGNv cmVfaF9zb3VyY2VzKQorK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKKytzb2NpX2luY2x1ZGVfZGly ID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQo aW5jbHVkZWRpcikKKytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIp CisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmJhc2lj IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzozNzowOS4w MDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxl LmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSw3NiArMCww IEBACistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxv bmctbG9uZworLUlOQ0xVREVESVJTID0gCistT0JKUyA9ICBzZXNzaW9uLm8gc3RhdGVtZW50Lm8g cm93Lm8gdmFsdWVzLm8gXAorLQlpbnRvLXR5cGUubyB1c2UtdHlwZS5vIFwKKy0JYmxvYi5vIHJv d2lkLm8gcHJvY2VkdXJlLm8gcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLm8gcmVmLWNvdW50ZWQt c3RhdGVtZW50Lm8gXAorLQlvbmNlLXRlbXAtdHlwZS5vIHByZXBhcmUtdGVtcC10eXBlLm8gZXJy b3IubyB0cmFuc2FjdGlvbi5vIGJhY2tlbmQtbG9hZGVyLm8gXAorLQljb25uZWN0aW9uLXBvb2wu byBzb2NpLXNpbXBsZS5vCistCistCistbGlic29jaV9jb3JlLmEgOiAke09CSlN9IAorLQlhciBy diAkQCAkPworLQlybSAqLm8KKy0KKy1zaGFyZWQgOiAke09CSlN9IAorLQkke0NPTVBJTEVSfSAt ZlBJQyAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQkke0NPTVBJTEVSfSAtc2hh cmVkIC1vIGxpYnNvY2lfY29yZS5zbyAke09CSlN9IAorLQlybSAqLm8KKy0KKy1zZXNzaW9uLm8g OiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQorLQorLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy5vIDogcm93LmNwcAorLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZhbHVlcy5vIDog dmFsdWVzLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLWludG8tdHlwZS5vIDogaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXVzZS10eXBlLm8gOiB1c2UtdHlwZS5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0JCistYmxv Yi5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30KKy0KKy1lcnJvci5vIDogZXJyb3IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcm93aWQubyA6IHJvd2lkLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXByb2NlZHVyZS5vIDog cHJvY2VkdXJlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQorLQorLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5vIDogcmVmLWNvdW50ZWQtcHJlcGFy ZS1pbmZvLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLXJlZi1jb3VudGVkLXN0YXRlbWVudC5vIDogcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLW9u Y2UtdGVtcC10eXBlLm8gOiBvbmNlLXRlbXAtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1wcmVwYXJlLXRlbXAtdHlwZS5vIDogcHJl cGFyZS10ZW1wLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9CistCistdHJhbnNhY3Rpb24ubyA6IHRyYW5zYWN0aW9uLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLWJhY2tlbmQtbG9hZGVy Lm8gOiBiYWNrZW5kLWxvYWRlci5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KKy0KKy1jb25uZWN0aW9uLXBvb2wubyA6IGNvbm5lY3Rpb24tcG9vbC5j cHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1z b2NpLXNpbXBsZS5vIDogc29jaS1zaW1wbGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9CistCistCistY2xlYW4gOgorLQlybSAtZiBsaWJzb2NpX2Nv cmUuYSBsaWJzb2NpX2NvcmUuc28KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Nv cmUvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5pbgor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUv TWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAg KzEsOTA1IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZy b20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChD KSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAor KyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkg bGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9N QUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQ QVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxf c2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0g JChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwor K0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFt X3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgor K1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwg PSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0 X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQocGtnaW5jbHVkZV9IRUFERVJTKSAk KHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIp L3NvdXJjZXMubWsgXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9 IHNvY2kvY29yZQorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9f YWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3Fs Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xl dGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAk KGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFD TE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVB REVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMg PQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQo c3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBc CisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRw IHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChs aWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrbGliTFRMSUJSQVJJRVNfSU5T VEFMTCA9ICQoSU5TVEFMTCkKKytMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQorK2xp YnNvY2lfY29yZV9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19vYmplY3RzXzEgPQorK2FtX19vYmpl Y3RzXzIgPSBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gXAorKwlsaWJzb2NpX2Nv cmVfbGEtYmxvYi5sbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIFwKKysJbGli c29jaV9jb3JlX2xhLWVycm9yLmxvIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gXAorKwls aWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtcHJl cGFyZS10ZW1wLXR5cGUubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIFwKKysJ bGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBcCisrCWxpYnNvY2lf Y29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtcm93 LmxvIGxpYnNvY2lfY29yZV9sYS1yb3dpZC5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1zZXNzaW9u LmxvIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1z dGF0ZW1lbnQubG8gbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvIFwKKysJbGlic29jaV9j b3JlX2xhLXVzZS10eXBlLmxvIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8KKythbV9saWJzb2Np X2NvcmVfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgJChhbV9fb2JqZWN0c18yKQorK2xp YnNvY2lfY29yZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX2NvcmVfbGFfT0JKRUNUUykKKyts aWJzb2NpX2NvcmVfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCisrCSQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCisrCSQobGlic29jaV9jb3JlX2xh X0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19p c3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3Ny Y2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK0NY WENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp IFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFH UykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5L ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQo QU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElMRSA9ICQoQ0MpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQo Q1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wp IC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9 Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAor KwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NM RCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQo Q0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAk KGxpYnNvY2lfY29yZV9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQobGlic29jaV9jb3Jl X2xhX1NPVVJDRVMpCisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJl Y3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUg aW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxs LWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8t cmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZl IGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGly cy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVj dXJzaXZlCisrcGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCA9ICQoSU5TVEFMTF9IRUFERVIpCisr SEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT ID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4t cmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrRVRBR1MgPSBldGFncworK0NU QUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChE SVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytw a2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAK KytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytB VVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0g QEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9M SUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09T VF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFN U19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBA Qk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklB TElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAor K0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9W RVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBN T0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBG TEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJ RyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQ UFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAg PSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhG TEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIg PSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAK KytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9f VEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQ QAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAor K0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElO U1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RB TExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJ TlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAor K0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09M QAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JK U0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxf Q0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAor K01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxB R1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJ VCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisr T1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xF X09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AK KytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9U T09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FH RV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tB R0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RB Uk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZF UlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJM QAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdS RVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NU R1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lP TiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFT RSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAor K1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JV UklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBV UExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFi c19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRp ciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGly QAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNf Y3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRl QAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFt X19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAK KytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1 aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRf b3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRp ckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisr ZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBk b3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisr ZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBo b3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAK Kytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRt bGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0g QGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4 X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xv Y2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAor K2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtk aXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRp ckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJA Cisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAK KytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRf YWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3By ZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9w X3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGly KQorK2NvcmVfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmFja2VuZC1sb2FkZXIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9i LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi1leGNoYW5nZS5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmgg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC10dXBsZS5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5oIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Vycm9yLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvZXhjaGFuZ2UtdHJhaXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv aW50by5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuaCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuaCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yb3ctZXhjaGFuZ2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yb3dpZC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lk LWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93c2V0Lmgg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktYmFja2VuZC5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktY29uZmlnLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3NvY2ktc2ltcGxlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c29jaS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmggXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLXRyYWl0cy5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtaG9sZGVyLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1wdHIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS91c2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2Ut dHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy1leGNoYW5nZS5oCisrCisrY29y ZV9jY19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2Vu ZC1sb2FkZXIuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Jvd2lkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9z ZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBs ZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IC4gdGVzdAorKworKyNFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2NpLXNpbXBsZS5jcHAgLl9zb2NpLXNp bXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkpCisrbGliX0xUTElCUkFSSUVTID0gbGlic29jaV9jb3JlLmxh CisrbGlic29jaV9jb3JlX2xhX1NPVVJDRVMgPSAkKGNvcmVfaF9zb3VyY2VzKSAkKGNvcmVfY2Nf c291cmNlcykgCisrbGlic29jaV9jb3JlX2xhX0NYWEZMQUdTID0gCisrbGlic29jaV9jb3JlX2xh X0xJQkFERCA9IAorK2xpYnNvY2lfY29yZV9sYV9MREZMQUdTID0gXAorKwkkKEJPT1NUX0xJQlMp ICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisr CS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKytwa2dpbmNsdWRl X0hFQURFUlMgPSAkKGNvcmVfaF9zb3VyY2VzKQorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNF QHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURf VFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUKKythbGw6IGFs bC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2Jq CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3Vy ZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3Vy ZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAg ICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAor KwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAk KHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2NvcmUvTWFrZWZpbGUnOyBc CisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2Nv cmUvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9N YWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGlu IFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBl Y2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz OiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKytpbnN0YWxs LWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKKysJQCQoTk9STUFMX0lOU1RBTEwp CisrCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobGliZGly KSIKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAor KwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKysJICAgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisr CSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQ X0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCisrCSAgICAkKExJQlRP T0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChs aWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgIiQkcCIgIiQoREVT VERJUikkKGxpYmRpcikvJCRmIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZQorKworK3Vu aW5zdGFsbC1saWJMVExJQlJBUklFUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9 JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIHA9JChhbV9f c3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIp LyQkcCciOyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRwIjsgXAor Kwlkb25lCisrCisrY2xlYW4tbGliTFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKGxpYl9MVExJ QlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChsaWJfTFRM SUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBz ZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBk aXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJ ICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX2NvcmUu bGE6ICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMpICQobGlic29jaV9jb3JlX2xhX0RFUEVOREVO Q0lFUykgCisrCSQobGlic29jaV9jb3JlX2xhX0xJTkspIC1ycGF0aCAkKGxpYmRpcikgJChsaWJz b2NpX2NvcmVfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfbGFfTElCQUREKSAkKExJQlMpCisr CisrbW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNs ZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRl ci5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt Y29ubmVjdGlvbi1wb29sLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1vbmNlLXRl bXAtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuUGxvQGFt X19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVm LWNvdW50ZWQtcHJlcGFyZS1pbmZvLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRl ZC1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5QbG9AYW1fX3F1b3RlQAor K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtcm93aWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uUGxvQGFtX19x dW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0 ZW1lbnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlBsb0BhbV9fcXVvdGVA CisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlBsb0Bh bV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJ TEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBv CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9 JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMg LW8gJEAgJDwKKysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01Q SUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQ QVRIX1cpICckPCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5U cG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86 CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAt TUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK2xp YnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmFja2VuZC1sb2FkZXIuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtYmFja2VuZC1sb2FkZXIubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jh Y2tlbmQtbG9hZGVyLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuVHBvICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVy LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9j b3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9iYWNrZW5kLWxvYWRlci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1ibG9iLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1i bG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlRwbyAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwJyBv YmplY3Q9J2xpYnNvY2lfY29yZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAKKysKKytsaWJzb2NpX2NvcmVf bGEtY29ubmVjdGlvbi1wb29sLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9u LXBvb2wuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1jb25u ZWN0aW9uLXBvb2wubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rp b24tcG9vbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Nvbm5lY3Rpb24tcG9vbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuVHBvICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9j b3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvY29ubmVjdGlvbi1wb29sLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1lcnJv ci5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyAtTUQgLU1Q IC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9yLlRwbyAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt ZXJyb3IuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuUGxvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Vycm9yLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3Jl X2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcAor KworK2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2ludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8t dHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuUGxvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2ludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBl LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9j b3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLW9uY2UtdGVt cC10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1w LXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1vbmNl LXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9s YS1vbmNlLXRlbXAtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3Bw CisrCisrbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuVHBv IC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVw YXJlLXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAt dHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10 ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVt cC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv cHJlcGFyZS10ZW1wLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlRwbyAtYyAtbyBsaWJz b2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9wcm9jZWR1cmUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9wcm9jZWR1cmUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXByb2NlZHVyZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCcgb2JqZWN0PSdsaWJzb2Np X2NvcmVfbGEtcHJvY2VkdXJlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKKysKKytsaWJzb2Np X2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1w cmVwYXJlLWluZm8uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJl LWluZm8ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXBy ZXBhcmUtaW5mby5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8u VHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlBs bworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyBvYmplY3Q9J2xpYnNv Y2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJl Zi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAorKworK2xp YnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRl bWVudC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50 ZWQtc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3Vu dGVkLXN0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0 YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1z dGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXJvdy5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcm93LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX2NvcmVfbGEtcm93LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtcm93LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXJvdy5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcm93 LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvdy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Jvdy5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtcm93aWQubG86ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Jvd2lkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1yb3dpZC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlRwbyAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXJvd2lkLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAnIG9iamVjdD0nbGli c29jaV9jb3JlX2xhLXJvd2lkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3dpZC5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtc2Vz c2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLlRwbyAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zZXNz aW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEt c2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXNvY2ktc2lt cGxlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9j b3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXNvY2ktc2lt cGxlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUu VHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5UcG8gJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1z aW1wbGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtc29jaS1zaW1wbGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktc2ltcGxlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc29jaS1zaW1wbGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJz b2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2Np X2NvcmVfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKKysKKytsaWJzb2Np X2NvcmVfbGEtdHJhbnNhY3Rpb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0 aW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS10cmFuc2FjdGlvbi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXRy YW5zYWN0aW9uLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXRyYW5z YWN0aW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKKysKKytsaWJzb2NpX2NvcmVf bGEtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtdXNl LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5U cG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAt ZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXVzZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAnIG9iamVjdD0n bGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAKKysKKytsaWJz b2NpX2NvcmVfbGEtdmFsdWVzLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9s YS12YWx1ZXMubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS12YWx1ZXMu VHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS12YWx1ZXMuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtdmFsdWVzLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29y ZV9sYS12YWx1ZXMubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6Cisr CS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicwor K2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQorKwlAJChO T1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9Q KSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVB REVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVu IGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBc CisrCSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgJChwa2dpbmNsdWRlSEVBREVSU19J TlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAorKwlk b25lCisrCisrdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgorKwlAJChOT1JNQUxfVU5JTlNU QUxMKQorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBk byBcCisrCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgcm0gLWYgJyQoREVTVERJ UikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgcm0gLWYgIiQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJl Y3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRoZW0g YW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisrIyBU byBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRp bmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5z dGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRo ZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7CisrIyAo Mikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1h bmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwK KysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAg ICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisr CSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGly IjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rfc2Vl bj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAg fHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9 ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIg fHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtF RkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwK KysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsg XAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwg bWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBs aXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAor KwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUv L2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRh cmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g XAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFs ICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2 ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0g LiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisr CWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVT KQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc CisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJaGVyZT1gcHdkYDsgXAor KwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYx OyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0 eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJ ICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxz ZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHRhZ3M9IiQk dGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBc CisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVu aXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0k JGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdT KSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0YWdz OiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07 IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBk b25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK KysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkg IHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1Mp IFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2Qp ICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJ ICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgor Kwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3Rk aXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRv cF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChE SVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNo byAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwK KysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsg XAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIk JGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywv W14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZp bGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAt ZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3Qg LWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1l ICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYm IHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2Rpcikv JCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBj cCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBc CisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8k JGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwK KysJZG9uZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0 ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRp c3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQo YW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19j ZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJ ICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIk JHRvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBc CisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBc CisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAor Kwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwt YW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGlyczogaW5z dGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVT VERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKKysJICB0 ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxs OiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2 ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5p bnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFN X01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxj aGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xl YW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlA ZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisr CUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0 byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAt ZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytj bGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29s IFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUK KysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06 IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNs ZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDog aHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06Cisr CisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFs bC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFs bC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2 ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwt bWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxs LXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWlu dGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLXJmIC4vJChE RVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVh bi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xl YW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9z dGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1y ZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgor KworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dp bmNsdWRlSEVBREVSUworKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJF Q1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9O WTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1Mg R1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMg XAorKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vy c2l2ZSBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBc CisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBo dG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwt ZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0 YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1h bSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklF UyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtn aW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCisrCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJp cCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKysJaW5zdGFsbGRpcnMgaW5zdGFsbGRp cnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorKwl0YWdzIHRhZ3MtcmVjdXJz aXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMg dW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisrQFNFVF9NQUtFQAorKyMgVGVsbCB2ZXJz aW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMu CisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUg ZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv Y29yZS9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc291cmNlcy5tawor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9z b3VyY2VzLm1rCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsx LDU4IEBACisrY29yZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9iYWNrZW5kLWxvYWRlci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Jsb2IuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLWV4Y2hhbmdl LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRh dGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1mdXNpb24uaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1vcHRpb25hbC5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LXR1cGxlLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9pbnRvLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBl LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5nZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Jvd2lkLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv cm93aWQtZXhjaGFuZ2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dz ZXQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1iYWNrZW5kLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1jb25maWcuaCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9zb2NpLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50 LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24uaCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24tdHJhaXRzLmggXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1ob2xkZXIuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLXB0ci5oIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3VzZS10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmgg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLWV4Y2hhbmdlLmgKKytj b3JlX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNr ZW5kLWxvYWRlci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2lt cGxlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAgXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv Y29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICsw MjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5o CTIwMDktMDUtMjIgMjI6NTQ6MTcuMDAwMDAwMDAwICswMjAwCitAQCAtOCwxNiArOCwzMCBAQAor ICNpZm5kZWYgU09DSV9DT01NT05fVEVTVFNfSF9JTkNMVURFRAorICNkZWZpbmUgU09DSV9DT01N T05fVEVTVFNfSF9JTkNMVURFRAorIAorLSNpbmNsdWRlICJzb2NpLmgiCistI2luY2x1ZGUgInNv Y2ktY29uZmlnLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMg ICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zb2NpLWNvbmZpZy5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LW9w dGlvbmFsLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYm9vc3QtdHVwbGUuaD4KKysj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1ncmVnb3JpYW4tZGF0ZS5oPgorKyNlbHNl CisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpLWNvbmZpZy5oPgor KyMgICAgICAgaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKysjICAgICAgIGluY2x1ZGUgPGJv b3N0LXR1cGxlLmg+CisrIyAgICAgICBpbmNsdWRlIDxib29zdC1ncmVnb3JpYW4tZGF0ZS5oPgor KyNlbmRpZgorKy8vCisgCisgLy8gZXhwbGljaXRseSBwdWxsIGNvbnZlcnNpb25zIGZvciBCb29z dCdzIG9wdGlvbmFsLCB0dXBsZSBhbmQgZnVzaW9uOgorICNpbmNsdWRlIDxib29zdC92ZXJzaW9u LmhwcD4KKy0jaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKy0jaW5jbHVkZSA8Ym9vc3QtdHVw bGUuaD4KKy0jaW5jbHVkZSA8Ym9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KKyAjaWYgZGVmaW5lZChC T09TVF9WRVJTSU9OKSAmJiBCT09TVF9WRVJTSU9OID49IDEwMzUwMAorKyNpZiBkZWZpbmVkKFNP Q0lfSEVBREVSU19CVVJJRUQpCisrI2luY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1mdXNpb24uaD4K KysjZWxzZQorICNpbmNsdWRlIDxib29zdC1mdXNpb24uaD4KKysjZW5kaWYKKyAjZW5kaWYgLy8g Qk9PU1RfVkVSU0lPTgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+CitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9j b3JlL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0w NS0yMiAyMjo1NDoxNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjYgQEAKKysjIyBjb3Jl IHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisr aW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPQorKwor K0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKysKKytu b2luc3RfTFRMSUJSQVJJRVM9IGxpYnNvY2lfY29yZV90ZXN0LmxhCisrCisrbGlic29jaV9jb3Jl X3Rlc3RfbGFfU09VUkNFUz0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQorK2xpYnNvY2lfY29yZV90 ZXN0X2xhX0NYWEZMQUdTID0KKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQgPQorKyNsaWJz b2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFS WV9WRVJTSU9OKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPQorKworK3BrZ2luY2x1 ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKKytpZiBTT0NJX0hFQURFUlNfQlVS SUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlL3Rlc3QKKytl bHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytlbmRpZgorK3BrZ2luY2x1 ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29y ZS90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qv TWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDow MjowMy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTE2IEBACisrIyBNYWtlZmlsZS5pbiBn ZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmln dXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwg MjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2Vm aWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs CisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQ QVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2Rp ckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxp YmRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9J TlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxf VU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6Cisr YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NP TU1PTiA9ICQocGtnaW5jbHVkZV9IRUFERVJTKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkk KHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAorKwkkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IHNvY2kvY29yZS90ZXN0CisrQUNMT0NBTF9N NCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykg JChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxk aXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrTFRMSUJSQVJJRVMgPSAkKG5v aW5zdF9MVExJQlJBUklFUykKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9ERVBFTkRFTkNJRVMgPQor K2FtX19vYmplY3RzXzEgPQorK2FtX2xpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMgPSAkKGFt X19vYmplY3RzXzEpCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29j aV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSU5LID0gJChM SUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykg LS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKKysJJChsaWJzb2Np X2NvcmVfdGVzdF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisrREVGQVVMVF9JTkNMVURF UyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQorK0NPTVBJTEUgPSAkKEND KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg XAorKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrTFRDT01QSUxFID0gJChM SUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJ LS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdT KQorK0NDTEQgPSAkKENDKQorK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZM QUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VS Q0VTID0gJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQo bGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUykKKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhf YWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNl ZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7 CisrYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKKythbV9f aW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrcGtnaW5jbHVkZUhF QURFUlNfSU5TVEFMTCA9ICQoSU5TVEFMTF9IRUFERVIpCisrSEVBREVSUyA9ICQocGtnaW5jbHVk ZV9IRUFERVJTKQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVEZJTEVTID0g JChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkK Kytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorK0FDTE9DQUwgPSBAQUNMT0NB TEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAK KytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdL ID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElN RV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBC T09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RS RUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BU SU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIg PSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NF UklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElC QAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09T VF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NE RVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBD UFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NP TkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAor K0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhD UFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBD WFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBE SVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJ TkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVD SE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZH UkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O QAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0g QElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lO U1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9 IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdT QAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJU T09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElC T0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlT UUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklH QAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xE RkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05N RURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRA CisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JB Q0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFH U0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0g QE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFD S0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBB Q0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdF X1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQ RVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVM RUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtF QAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJT X0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVS U19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9 IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0g QGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWls ZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3Jj ZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisr YWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNs dWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0g QGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRh ckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0g QGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVp bGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWls ZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJA CisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9 IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tA CisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9 IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2Nw dUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisr aHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGly ID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxh dGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAor K2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGly QAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBA bWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBk ZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5k aXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRp ckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJn ZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxk X3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBA dG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3Jj ZGlyKQorK2NvcmVfdGVzdF9oX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90ZXN0 L2NvbW1vbi10ZXN0cy5oCisrY29yZV90ZXN0X2NjX3NvdXJjZXMgPSAKKytNQUlOVEFJTkVSQ0xF QU5GSUxFUyA9IE1ha2VmaWxlLmluCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZ ID0gCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQor K25vaW5zdF9MVExJQlJBUklFUyA9IGxpYnNvY2lfY29yZV90ZXN0LmxhCisrbGlic29jaV9jb3Jl X3Rlc3RfbGFfU09VUkNFUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKKytsaWJzb2NpX2NvcmVf dGVzdF9sYV9DWFhGTEFHUyA9IAorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xJQkFERCA9IAorKyNs aWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElC UkFSWV9WRVJTSU9OKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPSAKKytwa2dpbmNs dWRlX0hFQURFUlMgPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCisrQFNPQ0lfSEVBREVSU19CVVJJ RURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytAU09DSV9IRUFERVJT X0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZS90 ZXN0CisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmlu OiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQo c3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAk PzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQk ZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRo ZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAg ZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01B S0UpIC0tZ251ICBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGly KSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvY29yZS90ZXN0L01ha2VmaWxlCisr LlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZp Zy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwK KysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGly KS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bf c3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FM X000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrY2xlYW4tbm9pbnN0TFRMSUJS QVJJRVM6CisrCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobm9p bnN0X0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8 fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVjaG8g InJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGlyfS9z b19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX2NvcmVfdGVzdC5sYTogJChsaWJzb2Np X2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVOQ0lF UykgCisrCSQobGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSykgICQobGlic29jaV9jb3JlX3Rlc3Rf bGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQpICQoTElCUykKKysKKytt b3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9CSkVYVCkKKysKKytkaXN0Y2xlYW4t Y29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwkt cm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKytp bnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9S TUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURF UlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBk PTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBmPSQoYW1fX3N0cmlwX2RpcikgXAor KwkgIGVjaG8gIiAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RE SVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgICQocGtnaW5jbHVkZUhFQURFUlNfSU5T VEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9u ZQorKworK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKKysJQCQoTk9STUFMX1VOSU5TVEFM TCkKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8g XAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIp JChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1mICIkKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQo TElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBU QUdTCisrCisrVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lF UykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7 IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBk b25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK KysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRo ZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2Zp eDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdT X0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUwor K0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisr CQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQo Q1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFH UykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlx dWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2Rg IFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FS R1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBH UlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3Rf ZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAg c2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3Jj ZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBp biBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAg IHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBz b3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBc CisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNl IGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisr CSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkg ICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsg dGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8 fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3Rk aXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRp cikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUg XAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwt YW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQo SEVBREVSUykKKytpbnN0YWxsZGlyczoKKysJZm9yIGRpciBpbiAiJChERVNURElSKSQocGtnaW5j bHVkZWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGly IjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFs bC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVu aW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VG TEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazog aW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFH UykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0 YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9G TEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RB TExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xl YW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgor KwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVB Tl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNv bW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRl bGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgor KwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5F UkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVy aWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RMVExJQlJBUklFUyBcCisrCW1vc3RseWNsZWFu LWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrZGlz dGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBc CisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRt bDogaHRtbC1hbQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwt ZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK2luc3RhbGwtZHZpOiBpbnN0 YWxsLWR2aS1hbQorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3Rh bGwtaHRtbC1hbQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisrCisraW5zdGFs bC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wczog aW5zdGFsbC1wcy1hbQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFu OiBtYWludGFpbmVyLWNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xl YW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHlj bGVhbjogbW9zdGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29t cGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3Bk ZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3Vu aW5zdGFsbC1hbTogdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisrLk1BS0U6IGluc3Rh bGwtYW0gaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBj aGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVh bi1ub2luc3RMVExJQlJBUklFUyBjdGFncyBkaXN0Y2xlYW4gXAorKwlkaXN0Y2xlYW4tY29tcGls ZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdz IGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKysJaW5zdGFs bCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAor KwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRt bCBcCisrCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3Rh bGwtbWFuIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRl SEVBREVSUyBcCisrCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3Rh bGxjaGVjayBcCisrCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFu IFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNv bXBpbGUgXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBk Zi1hbSBwcyBwcy1hbSBcCisrCXRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwt cGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01BS0VACisrIyBUZWxsIHZlcnNpb25zIFszLjU5 LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVy d2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4K KysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qv c291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tawor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9j b3JlL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA1LTIyIDIyOjU0OjE3LjAwMDAwMDAwMCArMDIwMAor QEAgLTAsMCArMSwyIEBACisrY29yZV90ZXN0X2hfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKKytjb3JlX3Rlc3RfY2Nfc291cmNlcyA9CitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIw MAorQEAgLTAsMCArMSw5IEBACisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgorKworKyMjIFNvdXJjZSBkaXJlY3RvcnkKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCisrCisrU1VCRElSUyA9IGNvcmUgYmFja2VuZHMKKysKKytFWFRSQV9ESVNUID0K K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmluIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDU2NSBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1 dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysK KysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRl bnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQ T1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQo ZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3Br Z2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0i JCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RB VEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5z dGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNU QUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NU X0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgor K1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlw bGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNk aXIpL01ha2VmaWxlLmluIFwKKysJJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaQorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNk aXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5p dC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2Fy Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKyth bV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RF UEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFs bF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMg PQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwt cmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNp dmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZp LXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vy c2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGlu c3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJl Y3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vy c2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0 bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNp dmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBj dGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09N TU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwg PSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBB VVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01B S0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1P REUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBG TEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytD UFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5J VF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENY WEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhG TEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVG U0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4g PSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNI T19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZH UkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFS WV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFM TF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9H UkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBf UFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9 IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9P TCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpT ID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElS X1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlT UUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0g QE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0g QE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9 IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAor K09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tB R0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK KytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9 IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisr UEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxB R1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxf RElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RH UkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAK KytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0g QFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0g QGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1f X3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0g QGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxk X2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRf b3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRp ciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0 YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94 eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBA ZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tA CisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9 IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92 ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAK KytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4 X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJl eGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2Nh bHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21r ZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRm ZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25h bWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGly ID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFy ZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRp ckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBA dG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9z cmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1J JCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJE SVJTID0gY29yZSBiYWNrZW5kcworK0VYVFJBX0RJU1QgPSAKKythbGw6IGNvbmZpZy5oCisrCSQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChz cmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsg ZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVw KikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4g ZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNh YzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0Up IC0tZ251ICBzb2NpL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAk KEFVVE9NQUtFKSAtLWdudSAgc29jaS9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytN YWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3Rh dHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsg XAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisr CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NU QVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChh bV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200 X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAorKworK2NvbmZpZy5oOiBzdGFtcC1oMQorKwlAaWYgdGVzdCAhIC1mICRAOyB0 aGVuIFwKKysJICBybSAtZiBzdGFtcC1oMTsgXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IHN0YW1wLWgxOyBcCisrCWVsc2UgOjsgZmkKKysKKytzdGFtcC1oMTogJChzcmNkaXIpL2NvbmZp Zy5oLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBybSAtZiBzdGFtcC1oMQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzIHNvY2kvY29u ZmlnLmgKKyskKHNyY2RpcikvY29uZmlnLmguaW46ICAkKGFtX19jb25maWd1cmVfZGVwcykgCisr CWNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPSEVBREVSKQorKwlybSAtZiBzdGFtcC1oMQorKwl0 b3VjaCAkQAorKworK2Rpc3RjbGVhbi1oZHI6CisrCS1ybSAtZiBjb25maWcuaCBzdGFtcC1oMQor KworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9v bDoKKysJLXJtIC1yZiAubGlicyBfbGlicworKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJl Y3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRoZW0g YW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisrIyBU byBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRp bmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5z dGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRo ZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7CisrIyAo Mikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1h bmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwK KysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAg ICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisr CSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGly IjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rfc2Vl bj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAg fHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9 ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIg fHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtF RkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwK KysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsg XAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwg bWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBs aXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAor KwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUv L2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRh cmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g XAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFs ICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2 ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0g LiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisr CWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVT KQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmluICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJl PWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsg XAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5j bHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAg ICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBc CisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29u ZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIk KEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4g IiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdT RkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1 bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQo SEVBREVSUykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisr CQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpIGNvbmZpZy5oLmluICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVl PWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNo byAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAg JChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQg eyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJ dGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykg JChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQk dGFncyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRk aXIpICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1p ICQoR1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdT IElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklM RVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBc CisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9u ZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAi c3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRk aXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIg fCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwg XAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3Rf ZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhl biBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxl OyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQs LCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0g JChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0 ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1wUiAkJGQvJCRm aWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3Qg LWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3Rk aXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCWxp c3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlz dGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJk aXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlz dGRpcikgJiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0 ZGlyKSAmJiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIi IFwKKysJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKKysJCWFtX19yZW1v dmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJICAgICAgICBk aXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVj ay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUg Y29uZmlnLmgKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRp cnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3Rh bGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUK Kyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0K KysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEt YW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0 cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NU UklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNU UklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQo U1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVy aWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9G SUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xl YW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRh aW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJl IHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVB TkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4t cmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0 bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYg TWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3Rj bGVhbi1oZHIgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmkt YW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQor KworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0 YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t cmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5z dGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVj dXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVh bi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xl YW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysK KytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5N QUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0 YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFt IGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWN0 YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0 Y2xlYW4taGRyIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIFwK KysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwK KysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1h bSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwt aHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5z dGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5z dGFsbC1zdHJpcCBcCisrCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMg aW5zdGFsbGRpcnMtYW0gXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGli dG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3Rh bGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwz LjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndp c2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisr Lk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2ktY29uZmlnLmluIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpLWNvbmZpZy5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2ktY29uZmlnLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2ktY29uZmlnLmluCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAw MDAwICswMjAwCitAQCAtMCwwICsxLDc2IEBACisrIyEvYmluL3NoCisrCisrcHJlZml4PUBwcmVm aXhACisrZXhlY19wcmVmaXg9JHtwcmVmaXh9CisrbGliZGlyPUBsaWJkaXJACisraW5jbHVkZWRp cj1AaW5jbHVkZWRpckAKKysKKyt1c2FnZSgpCisreworKyAgY2F0IDw8RU9GCisrVXNhZ2U6IEBQ QUNLQUdFQC1jb25maWcgW09QVElPTl0KKysKKytLbm93biB2YWx1ZXMgZm9yIE9QVElPTiBhcmU6 CisrCisrICAtLXByZWZpeCAgICAgICAgcHJpbnQgQFBBQ0tBR0VfTkFNRUAgaW5zdGFsbGF0aW9u IHByZWZpeAorKyAgLS1saWJzICAgICAgICAgIHByaW50IGxpYnJhcnkgbGlua2luZyBpbmZvcm1h dGlvbgorKyAgLS1jZmxhZ3MgICAgICAgIHByaW50IHByZS1wcm9jZXNzb3IgYW5kIGNvbXBpbGVy IGZsYWdzCisrICAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKKysg IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbgorK0VPRgorKyAgZXhp dCAkMQorK30KKysKKytpZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCisrICB1c2FnZSAxCisrZmkKKysK KytjZmxhZ3M9ZmFsc2UKKytsaWJzPWZhbHNlCisrCisrd2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8K KysgIGNhc2UgIiQxIiBpbgorKyAgLSo9Kikgb3B0YXJnPWBlY2hvICIkMSIgfCBzZWQgJ3MvWy1f YS16QS1aMC05XSo9Ly8nYCA7OworKyAgKikgb3B0YXJnPSA7OworKyAgZXNhYworKworKyAgY2Fz ZSAkMSBpbgorKyAgICAtLXByZWZpeD0qKQorKyAgICAgIHByZWZpeD0kb3B0YXJnCisrICAgICAg OzsKKysKKysgICAgLS1wcmVmaXgpCisrICAgICAgZWNobyAkcHJlZml4CisrICAgICAgOzsKKysK KysgICAgLS12ZXJzaW9uKQorKyAgICAgIGVjaG8gQFZFUlNJT05ACisrICAgICAgOzsKKysKKysg ICAgLS1oZWxwKQorKyAgICAgIHVzYWdlIDAKKysgICAgICA7OworKworKyAgICAtLWNmbGFncykK KysgICAgICBpZiBbICIke3ByZWZpeH0iICE9ICIvdXNyIiBdOyB0aGVuCisrICAgICAgICBlY2hv IC1JJHtpbmNsdWRlZGlyfQorKyAgICAgIGVsc2UKKysgICAgICAgIGVjaG8KKysgICAgICBmaQor KyAgICAgIDs7CisrCisrICAgIC0tbGlicykKKysgICAgICBpZiBbICIke3ByZWZpeH0iICE9ICIv dXNyIiBdOyB0aGVuCisrICAgICAgICBlY2hvIC1MJHtsaWJkaXJ9IC1sQFBBQ0tBR0VACisrICAg ICAgZWxzZQorKyAgICAgICAgZWNobyAtbEBQQUNLQUdFQAorKyAgICAgIGZpCisrICAgICAgOzsK KysKKysgICAgKikKKysgICAgICB1c2FnZQorKyAgICAgIGV4aXQgMQorKyAgICAgIDs7CisrICBl c2FjCisrICBzaGlmdAorK2RvbmUKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLm00 IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS5t NAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpLm00CTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDExOCBAQAorK2RubCBAc3lub3BzaXMgQVhfU09DSQorK2RubCAKKytkbmwgVGhpcyBtYWNy byB0cmllcyB0byBmaW5kIFNvY2kgQyBBUEkgaGVhZGVyIGFuZCBsaWJyYXJ5IGxvY2F0aW9ucy4K KytkbmwKKytkbmwgV2UgZGVmaW5lIHRoZSBmb2xsb3dpbmcgY29uZmlndXJlIHNjcmlwdCBmbGFn czoKKytkbmwKKytkbmwJLS13aXRoLXNvY2k6IEdpdmUgcHJlZml4IGZvciBib3RoIGxpYnJhcnkg YW5kIGhlYWRlcnMsIGFuZCB0cnkKKytkbmwJCSAgICAgdG8gZ3Vlc3Mgc3ViZGlyZWN0b3J5IG5h bWVzIGZvciBlYWNoLiAgKGUuZy4gYWRkIC9saWIgYW5kCisrZG5sCQkgICAgIC9pbmNsdWRlIG9u dG8gZ2l2ZW4gZGlyIG5hbWVzLCBhbmQgb3RoZXIgY29tbW9uIHNjaGVtZXMuKQorK2RubAorK2Ru bCBAdmVyc2lvbiAxLjMsIDIwMDkvMDUvMDIKKytkbmwgQGF1dGhvciBEZW5pcyBBcm5hdWQgPGRl bmlzX2FybmF1ZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrZG5sCisrZG5sIEB2ZXJzaW9uIDEu MiwgMjAwNy8wMi8yMAorK2RubCBAYXV0aG9yIFdhcnJlbiBZb3VuZyA8c29jaXBwQGV0ci11c2Eu Y29tPgorKworK0FDX0RFRlVOKFtBWF9TT0NJXSwKKytbCisrIworKyMgU2V0IHVwIGNvbmZpZ3Vy ZSBzY3JpcHQgbWFjcm9zCisrIworK0FDX0FSR19XSVRIKHNvY2ksCisrCVstLXdpdGgtc29jaT08 cGF0aD4gICAgIHJvb3QgZGlyZWN0b3J5IHBhdGggb2YgU29jaSBpbnN0YWxsYXRpb25dLAorKwlb U09DSV9saWJfY2hlY2s9IiR3aXRoX3NvY2kvbGliNjQvc29jaSAkd2l0aF9zb2NpL2xpYi9zb2Np ICR3aXRoX3NvY2kvbGliNjQgJHdpdGhfc29jaS9saWIiCisrCVNPQ0lfaW5jX2NoZWNrPSIkd2l0 aF9zb2NpL2luY2x1ZGUgJHdpdGhfc29jaS9pbmNsdWRlL3NvY2kiXSwKKysJW1NPQ0lfbGliX2No ZWNrPSIvdXNyL2xpYjY0IC91c3IvbGliIC91c3IvbGliNjQvc29jaSAvdXNyL2xpYi9zb2NpIC91 c3IvbG9jYWwvbGliNjQgL3Vzci9sb2NhbC9saWIgL29wdC9zb2NpL2xpYjY0IC9vcHQvc29jaS9s aWIgL3Vzci9sb2NhbC9saWI2NC9zb2NpIC91c3IvbG9jYWwvbGliL3NvY2kgL3Vzci9sb2NhbC9z b2NpL2xpYjY0IC91c3IvbG9jYWwvc29jaS9saWIgL29wdC9zb2NpL2xpYjY0L3NvY2kgL29wdC9z b2NpL2xpYi9zb2NpIgorKwlTT0NJX2luY19jaGVjaz0iL3Vzci9pbmNsdWRlIC91c3IvaW5jbHVk ZS9zb2NpIC91c3IvbG9jYWwvaW5jbHVkZSAvb3B0L3NvY2kvaW5jbHVkZSAvdXNyL2xvY2FsL2lu Y2x1ZGUvc29jaSAvdXNyL2xvY2FsL3NvY2kvaW5jbHVkZSAvdXNyL2xvY2FsL3NvY2kvaW5jbHVk ZS9zb2NpIC9vcHQvc29jaS9pbmNsdWRlL3NvY2kiXSkKKysKKysjIFNPQ0kgbGlicmFyeQorK1NP Q0lfQ09SRV9MSUI9c29jaV9jb3JlCisrU09DSV9NWVNRTF9MSUI9c29jaV9teXNxbAorKworKyMK KysjIExvb2sgZm9yIFNvY2kgQ29yZSBBUEkgbGlicmFyeQorKyMKKytBQ19NU0dfQ0hFQ0tJTkco W2ZvciBTb2NpIGxpYnJhcnkgZGlyZWN0b3J5XSkKKytTT0NJX2xpYmRpcj0KKytmb3IgbSBpbiAk U09DSV9saWJfY2hlY2sKKytkbworKwlpZiB0ZXN0IC1kICIkbSIgJiYgXAorKwkJKHRlc3QgLWYg IiRtL2xpYiRTT0NJX0NPUkVfTElCLnNvIiB8fCB0ZXN0IC1mICIkbS9saWIkU09DSV9DT1JFX0xJ Qi5hIikKKysJdGhlbgorKwkJU09DSV9saWJkaXI9JG0KKysJCWJyZWFrCisrCWZpCisrZG9uZQor KworK2lmIHRlc3QgLXogIiRTT0NJX2xpYmRpciIKKyt0aGVuCisrCUFDX01TR19FUlJPUihbRGlk bid0IGZpbmQgJFNPQ0lfQ09SRV9MSUIgbGlicmFyeSBpbiAnJFNPQ0lfbGliX2NoZWNrJ10pCisr ZmkKKysKKytjYXNlICIkU09DSV9saWJkaXIiIGluCisrCS8qICkgOzsKKysJKiApICBBQ19NU0df RVJST1IoW1RoZSBTb2NpIGxpYnJhcnkgZGlyZWN0b3J5ICgkU09DSV9saWJkaXIpIG11c3QgYmUg YW4gYWJzb2x1dGUgcGF0aC5dKSA7OworK2VzYWMKKysKKytBQ19NU0dfUkVTVUxUKFskU09DSV9s aWJkaXJdKQorKworK2Nhc2UgIiRTT0NJX2xpYmRpciIgaW4KKysgIC91c3IvbGliNjQpIDs7Cisr ICAvdXNyL2xpYikgOzsKKysgICopIFNPQ0lfTElCUz0iLUwke1NPQ0lfbGliZGlyfSIgOzsKKytl c2FjCisrTERGTEFHUz0iJExERkxBR1MgJHtTT0NJX0xJQlN9IgorKworKworKyMKKysjIExvb2sg Zm9yIFNvY2kgQ29yZSBBUEkgaGVhZGVycworKyMKKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBTb2Np IGluY2x1ZGUgZGlyZWN0b3J5XSkKKytTT0NJX2luY2Rpcj0KKytmb3IgbSBpbiAkU09DSV9pbmNf Y2hlY2sKKytkbworKwlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vc29jaS9jb3JlL3Nv Y2kuaCIKKysJdGhlbgorKwkJU09DSV9pbmNkaXI9JG0KKysJCWJyZWFrCisrCWZpCisrZG9uZQor KworK2lmIHRlc3QgLXogIiRTT0NJX2luY2RpciIKKyt0aGVuCisrCUFDX01TR19FUlJPUihbRGlk bid0IGZpbmQgdGhlIFNvY2kgaW5jbHVkZSBkaXIgaW4gJyRTT0NJX2luY19jaGVjayddKQorK2Zp CisrCisrY2FzZSAiJFNPQ0lfaW5jZGlyIiBpbgorKwkvKiApIDs7CisrCSogKSAgQUNfTVNHX0VS Uk9SKFtUaGUgU29jaSBpbmNsdWRlIGRpcmVjdG9yeSAoJFNPQ0lfaW5jZGlyKSBtdXN0IGJlIGFu IGFic29sdXRlIHBhdGguXSkgOzsKKytlc2FjCisrCisrQUNfTVNHX1JFU1VMVChbJFNPQ0lfaW5j ZGlyXSkKKysKKytjYXNlICIkU09DSV9pbmNkaXIiIGluCisrICAvdXNyL2luY2x1ZGUpIDs7Cisr ICAqKSBTT0NJX0NGTEFHUz0iLUkke1NPQ0lfaW5jZGlyfSIgOzsKKytlc2FjCisrCisrU09DSV9M SUJTPSIke1NPQ0lfTElCU30gLWwke1NPQ0lfQ09SRV9MSUJ9IC1sJHtTT0NJX01ZU1FMX0xJQn0g LWxkbCIKKysKKytBQ19TVUJTVChTT0NJX0NGTEFHUykKKytBQ19TVUJTVChTT0NJX0xJQlMpCisr CisrIyBUZXN0IGxpbmtpbmcgd2l0aCBzb2NpIChub3RlIHRoYXQgaXQgbmVlZHMgTXlTUUwgY2xp ZW50IHRvIGhhdmUgYmVlbiBkZWZpbmVkCisrIyBiZWZvcmUpCisrc2F2ZV9MSUJTPSIkTElCUyIK KytpZiB0ZXN0IC16ICIkTVlTUUxfTElCUyIKKyt0aGVuCisrCU1ZU1FMX0xJQlM9Ii1ML3Vzci9s aWI2NC9teXNxbCAtTC91c3IvbGliL215c3FsIC1sbXlzcWxjbGllbnQiCisrZmkKKytMSUJTPSIk TElCUyAkTVlTUUxfTElCUyAkU09DSV9MSUJTIgorK0FDX0NIRUNLX0xJQigkU09DSV9DT1JFX0xJ Qiwgc29jaV9iZWdpbiwKKysJICAgICBbXSwgCisrICAgICAgICAgICAgIFtBQ19NU0dfRVJST1Io W0NvdWxkIG5vdCBmaW5kIHdvcmtpbmcgU29jaSBjbGllbnQgbGlicmFyeSFdKV0KKysJICAgICAp CisrTElCUz0iJHNhdmVfTElCUyIKKytBQ19TVUJTVChTT0NJX0NPUkVfTElCKQorK10pIGRubCBB WF9TT0NJCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS5wYy5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS5wYy5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kucGMuaW4JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS5wYy5pbgkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCAr MSwxMSBAQAorK3ByZWZpeD1AcHJlZml4QAorK2V4ZWNfcHJlZml4PUBleGVjX3ByZWZpeEAKKyts aWJkaXI9QGxpYmRpckAKKytpbmNsdWRlZGlyPUBpbmNsdWRlZGlyQAorKworK05hbWU6IEBQQUNL QUdFX05BTUVACisrRGVzY3JpcHRpb246IFRoZSBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSBmb3Ig QysrIHByb2dyYW1tZXJzCisrVmVyc2lvbjogQFBBQ0tBR0VfVkVSU0lPTkAKKytVUkw6IGh0dHA6 Ly9AUEFDS0FHRUAuc291cmNlZm9yZ2UubmV0CisrTGliczogLUwke2xpYmRpcn0gLWxAUEFDS0FH RUBfY29yZSBATERGTEFHU0AgQExJQlNACisrQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0KK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnNwZWMuaW4gc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kuc3BlYy5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kuc3BlYy5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnNw ZWMuaW4JMjAwOS0wNS0yMyAwOTo1ODozOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMzI3 IEBACisrIworKyMjCisrIyBEZWZhdWx0IHZhbHVlcyBhcmUgLS13aXRoIG15c3FsIC0td2l0aCBw b3N0Z3Jlc3FsIC0td2l0aG91dCBvcmFjbGUgCisrIyBOb3RlIHRoYXQsIGZvciBPcmFjbGUsIHdo ZW4gZW5hYmxlZCwgdGhlIGZvbGxvd2luZyBvcHRpb25zIHNob3VsZAorKyMgYWxzbyBiZSBnaXZl bjoKKysjIC0td2l0aC1vcmFjbGUtaW5jbHVkZT0vb3B0L29yYWNsZS9hcHAvb3JhY2xlL3Byb2R1 Y3QvMTEuMS4wL2RiXzEvcmRibXMvcHVibGljCisrIyAtLXdpdGgtb3JhY2xlLWxpYj0vb3B0L29y YWNsZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEvbGliCisrIyBJZiB0aGUgbWFjcm9z IGFyZSBkZWZpbmVkLCByZWRlZmluZSB0aGVtIHdpdGggdGhlIGNvcnJlY3QgY29tcGlsYXRpb24g ZmxhZ3MuCisrJWJjb25kX3dpdGhvdXQgbXlzcWwKKyslYmNvbmRfd2l0aG91dCBwb3N0Z3Jlc3Fs CisrJWJjb25kX3dpdGggb3JhY2xlCisrCisrJWRlZmluZSBfZGVmYXVsdF9vcmFjbGVfZGlyIC9v cHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJfMQorKyV7IT9fd2l0aF9vcmFj bGVfaW5jZGlyOiAlZGVmaW5lIF93aXRoX29yYWNsZV9pbmNkaXIgLS13aXRoLW9yYWNsZS1pbmNs dWRlPSV7X2RlZmF1bHRfb3JhY2xlX2Rpcn0vcmRibXMvcHVibGljfQorKyV7IT9fd2l0aF9vcmFj bGVfbGliZGlyOiAlZGVmaW5lIF93aXRoX29yYWNsZV9saWJkaXIgLS13aXRoLW9yYWNsZS1saWI9 JXtfZGVmYXVsdF9vcmFjbGVfZGlyfS9saWJ9CisrIworKyMjCisrIworK05hbWU6ICAgICAgICAg ICBAUEFDS0FHRUAKKytWZXJzaW9uOiAgICAgICAgQFZFUlNJT05ACisrUmVsZWFzZTogICAgICAg IEBSUE1fUkVMRUFTRUAlez9kaXN0fQorKworK1N1bW1hcnk6ICAgICAgICBUaGUgZGF0YWJhc2Ug YWNjZXNzIGxpYnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVycworKworK0dyb3VwOiAgICAgICAgICBT eXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCisrTGljZW5zZTogICAgICAgIEJvb3N0CisrVVJM OiAgICAgICAgICAgIGh0dHA6Ly8le25hbWV9LnNvdXJjZWZvcmdlLm5ldAorK1NvdXJjZTA6ICAg ICAgICBodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9zb2NpLyV7bmFtZX0tJXt2ZXJz aW9ufS50YXIuZ3oKKysjIFRoYXQgcGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0KKytQ YXRjaDA6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LWZpeC1nY2M0My1jb21wYXRpYmlsaXR5 LnBhdGNoCisrIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHVwc3RyZWFtCisrUGF0Y2gx OiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmls aXR5LnBhdGNoCisrQnVpbGRSb290OiAgICAgICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9u fS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0gLW4pCisrCisrQnVpbGRSZXF1aXJlczogIGJv b3N0LWRldmVsCisrI0J1aWxkUmVxdWlyZXM6ICBjcHB1bml0LWRldmVsID49IDEuMTAKKytCdWls ZFJlcXVpcmVzOiAgbGlidG9vbAorKyNSZXF1aXJlczogICAgICAgCisrCisrJWRlc2NyaXB0aW9u CisrQFBBQ0tBR0VfTkFNRUAgaXMgYSBDKysgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgdGhhdCBw cm92aWRlcyB0aGUKKytpbGx1c2lvbiBvZiBlbWJlZGRpbmcgU1FMIGluIHJlZ3VsYXIgQysrIGNv ZGUsIHN0YXlpbmcgZW50aXJlbHkgd2l0aGluCisrdGhlIEMrKyBzdGFuZGFyZC4KKysKKysKKysl ez93aXRoX215c3FsOiVwYWNrYWdlICAgICAgICBteXNxbAorK1N1bW1hcnk6ICAgICAgICBNeVNR TCBiYWNrZW5kIGZvciAle25hbWV9CisrR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVu dC9MaWJyYXJpZXMKKytSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxl YXNlfQorK0J1aWxkUmVxdWlyZXM6ICBteXNxbC1kZXZlbCA+PSA1LjAKKysKKyslZGVzY3JpcHRp b24gICAgbXlzcWwKKytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIE15U1FMIGJhY2tlbmQgZm9y IEBQQUNLQUdFX05BTUVALCBpLmUuLAorK2R5bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUg TXlTUUwgZGF0YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlIHRvCisrdXNlIEBQQUNLQUdFX05BTUVA IGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBNeVNRTCwgeW91IHdpbGwgbmVlZCB0bworK2luc3RhbGwg JXtuYW1lfS1teXNxbC59CisrCisrJXs/d2l0aF9wb3N0Z3Jlc3FsOiVwYWNrYWdlICAgICAgICBw b3N0Z3Jlc3FsCisrU3VtbWFyeTogICAgICAgIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgJXtuYW1l fQorK0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCisrUmVxdWly ZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytCdWlsZFJlcXVpcmVz OiAgcG9zdGdyZXNxbC1kZXZlbCA+PSA3LjEKKysKKyslZGVzY3JpcHRpb24gICAgcG9zdGdyZXNx bAorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciBAUEFD S0FHRV9OQU1FQCwgaS5lLiwKKytkeW5hbWljIGxpYnJhcnkgc3BlY2lmaWMgdG8gdGhlIFBvc3RH cmVTUUwgZGF0YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlCisrdG8gdXNlIEBQQUNLQUdFX05BTUVA IGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBQb3N0R3JlU1FMLCB5b3Ugd2lsbCBuZWVkIHRvCisraW5z dGFsbCAle25hbWV9LXBvc3RncmVzcWwufQorKworKyV7P3dpdGhfb3JhY2xlOiVwYWNrYWdlICAg ICAgICBvcmFjbGUKKytTdW1tYXJ5OiAgICAgICAgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFtZX0K KytHcm91cDogICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcworK1JlcXVpcmVz OiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrCisrJWRlc2NyaXB0aW9u ICAgIG9yYWNsZQorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9y IEBQQUNLQUdFX05BTUVALCBpLmUuLAorK2R5bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUg T3JhY2xlIGRhdGFiYXNlLiBJZiB5b3Ugd291bGQgbGlrZSB0bworK3VzZSBAUEFDS0FHRV9OQU1F QCBpbiB5b3VyIHByb2dyYW1zIHdpdGggT3JhY2xlLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwK Kysle25hbWV9LW9yYWNsZS59CisrCisrCisrJXBhY2thZ2UgICAgICAgIGRldmVsCisrU3VtbWFy eTogICAgICAgIEhlYWRlciBmaWxlcywgbGlicmFyaWVzIGFuZCBkZXZlbG9wbWVudCBkb2N1bWVu dGF0aW9uIGZvciAle25hbWV9CisrR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmll cworK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrUmVx dWlyZXM6ICAgICAgIHBrZ2NvbmZpZworKworKyVkZXNjcmlwdGlvbiAgICBkZXZlbAorK1RoaXMg cGFja2FnZSBjb250YWlucyB0aGUgaGVhZGVyIGZpbGVzLCBkeW5hbWljIGxpYnJhcmllcyBhbmQK KytkZXZlbG9wbWVudCBkb2N1bWVudGF0aW9uIGZvciAle25hbWV9LiBJZiB5b3Ugd291bGQgbGlr ZSB0byBkZXZlbG9wCisrcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSwgeW91IHdpbGwgbmVlZCB0byBp bnN0YWxsICV7bmFtZX0tZGV2ZWwuCisrCisrJXs/d2l0aF9teXNxbDolcGFja2FnZSAgICAgICAg bXlzcWwtZGV2ZWwKKytTdW1tYXJ5OiAgICAgICAgTXlTUUwgYmFja2VuZCBmb3IgJXtuYW1lfQor K0dyb3VwOiAgICAgICAgICBEZXZlbG9wbWVudC9MaWJyYXJpZXMKKytSZXF1aXJlczogICAgICAg JXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK1JlcXVpcmVzOiAgICAgICAl e25hbWV9LW15c3FsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrUmVxdWlyZXM6ICAgICAgIG15 c3FsLWRldmVsID49IDUuMAorKworKyVkZXNjcmlwdGlvbiAgICBteXNxbC1kZXZlbAorK1RoaXMg cGFja2FnZSBjb250YWlucyB0aGUgTXlTUUwgYmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVh ZGVyCisrZmlsZXMgYW5kIGR5bmFtaWMgbGlicmFyaWVzIHNwZWNpZmljIHRvIHRoZSBNeVNRTCBk YXRhYmFzZS4gSWYgeW91Cisrd291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7 bmFtZX0gYW5kIE15U1FMLCB5b3Ugd2lsbCBuZWVkCisrdG8gaW5zdGFsbCAle25hbWV9LW15c3Fs Ln0KKysKKyslez93aXRoX3Bvc3RncmVzcWw6JXBhY2thZ2UgICAgICAgIHBvc3RncmVzcWwtZGV2 ZWwKKytTdW1tYXJ5OiAgICAgICAgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciAle25hbWV9CisrR3Jv dXA6ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcworK1JlcXVpcmVzOiAgICAgICAle25h bWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrUmVxdWlyZXM6ICAgICAgICV7bmFt ZX0tcG9zdGdyZXNxbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK1JlcXVpcmVzOiAgICAgICBw b3N0Z3Jlc3FsLWRldmVsID49IDcuMQorKworKyVkZXNjcmlwdGlvbiAgICBwb3N0Z3Jlc3FsLWRl dmVsCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBQb3N0R3JlU1FMIGJhY2tlbmQgZm9yICV7 bmFtZX0sIGkuZS4sIGhlYWRlcgorK2ZpbGVzIGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZp YyB0byB0aGUgUG9zdEdyZVNRTCBkYXRhYmFzZS4gSWYKKyt5b3Ugd291bGQgbGlrZSB0byBkZXZl bG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0gYW5kIFBvc3RHcmVTUUwsIHlvdQorK3dpbGwgbmVl ZCB0byBpbnN0YWxsICV7bmFtZX0tcG9zdGdyZXNxbC59CisrCisrJXs/d2l0aF9vcmFjbGU6JXBh Y2thZ2UgICAgICAgIG9yYWNsZS1kZXZlbAorK1N1bW1hcnk6ICAgICAgICBPcmFjbGUgYmFja2Vu ZCBmb3IgJXtuYW1lfQorK0dyb3VwOiAgICAgICAgICBEZXZlbG9wbWVudC9MaWJyYXJpZXMKKytS ZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK1Jl cXVpcmVzOiAgICAgICAle25hbWV9LW9yYWNsZSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorKwor KyVkZXNjcmlwdGlvbiAgICBvcmFjbGUtZGV2ZWwKKytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhl IE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9LCBpLmUuLCBoZWFkZXIKKytmaWxlcyBhbmQgZHlu YW1pYyBsaWJyYXJpZXMgc3BlY2lmaWMgdG8gdGhlIE9yYWNsZSBkYXRhYmFzZS4gSWYgeW91Cisr d291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0gYW5kIE9yYWNsZSwg eW91IHdpbGwgbmVlZAorK3RvIGluc3RhbGwgJXtuYW1lfS1vcmFjbGUufQorKworKworKyVwYWNr YWdlIGRvYworK1N1bW1hcnk6ICAgICAgICBIVE1MIGRvY3VtZW50YXRpb24gZm9yIHRoZSBAUEFD S0FHRV9OQU1FQCBsaWJyYXJ5CisrR3JvdXA6ICAgICAgICAgIERvY3VtZW50YXRpb24KKyslaWYg MCV7P2ZlZG9yYX0gPj0gMTAKKytCdWlsZEFyY2g6ICAgICAgbm9hcmNoCisrI0J1aWxkUmVxdWly ZXM6ICB0ZXhsaXZlLWxhdGV4LCB0ZXhsaXZlLWR2aXBzCisrJWVuZGlmCisrI0J1aWxkUmVxdWly ZXM6ICB0ZXRleC1sYXRleCwgdGV0ZXgtZHZpcHMKKysjQnVpbGRSZXF1aXJlczogIGRveHlnZW4s IGdob3N0c2NyaXB0CisrCisrJWRlc2NyaXB0aW9uIGRvYworK1RoaXMgcGFja2FnZSBjb250YWlu cyB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgSFRNTCBmb3JtYXQgb2YgdGhlIEBQQUNLQUdFX05B TUVACisrbGlicmFyeS4gVGhlIGRvY3VtZW50YXRpb24gaXMgdGhlIHNhbWUgYXMgYXQgdGhlIEBQ QUNLQUdFX05BTUVAIHdlYiBwYWdlLgorKworKworKyVwcmVwCisrJXNldHVwIC1xCisrCisrIyBB cHBseSB0aGUgZysrIDQuMyBjb21wYXRpYmlsaXR5IHBhdGNoCisrJXBhdGNoMCAtcDEKKysKKysj IFJlbmFtZSBjaGFuZ2UtbG9nIGFuZCBsaWNlbnNlIGZpbGUsIHNvIHRoYXQgdGhleSBjb21wbHkg d2l0aAorKyMgcGFja2FnaW5nIHN0YW5kYXJkCisrbXYgQ0hBTkdFUyBDaGFuZ2VMb2cKKyttdiBM SUNFTlNFXzFfMC50eHQgQ09QWUlORworK3JtIC1mIElOU1RBTEwKKysKKysjIFJlbW92ZSBNYWNP U1ggY29tcGF0aWJpbGl0eSBidWlsZGluZyBmaWxlcworK3JtIC1mIGJ1aWxkL3VuaXgvLl8qLnRj bAorK3JtIC1mIC5fTWFrZWZpbGUgLl9jb25maWd1cmUKKytybSAtZiBzcmMvY29yZS8uXyouaCBz cmMvY29yZS8uXyouY3BwCisrcm0gLWYgc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvLl8qLmgKKyty bSAtZiBkb2MvLl8qLmh0bWwKKysKKysjIFJlbmFtZSB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5 LCBzbyB0aGF0IHRoZSBmaWxlcyAoZS5nLCBoZWFkZXIKKysjIGZpbGVzKSBjYW4gYmUgZXhwb3J0 ZWQgY29ycmVjdGx5IGludG8ge19zdGFuZGFyZF9kaXJ9LyV7bmFtZX0KKyttdiBzcmMgJXtuYW1l fQorKworKyMgQXBwbHkgdGhlIEdOVSBBdXRvdG9vbHMgY29tcGF0aWJpbGl0eSBwYXRjaAorKyVw YXRjaDEgLXAxCisrCisrIyBGaXggc29tZSBwZXJtaXNzaW9ucyBhbmQgZm9ybWF0cworK2ZpbmQg Li9kb2MgLXR5cGUgZiAtcGVybSA3NTUgLWV4ZWMgY2htb2QgNjQ0IHt9IFw7CisrY2htb2QgLXgg QVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyMgZmluZCAuIC10eXBlIGYg LW5hbWUgJyouW2hjXXBwJyAtZXhlYyBjaG1vZCA2NDQge30gXDsKKysKKysKKyslYnVpbGQKKysl Y29uZmlndXJlIC0tZGlzYWJsZS1zdGF0aWMgXAorKyV7P3dpdGhfbXlzcWw6LS1lbmFibGUtYmFj a2VuZC1teXNxbH0gXAorKyV7P3dpdGhfcG9zdGdyZXNxbDotLWVuYWJsZS1iYWNrZW5kLXBvc3Rn cmVzcWx9IFwKKyslez93aXRoX29yYWNsZTotLWVuYWJsZS1iYWNrZW5kLW9yYWNsZSAlez9fd2l0 aF9vcmFjbGVfaW5jZGlyfSAlez9fd2l0aF9vcmFjbGVfbGliZGlyfX0KKyttYWtlICV7P19zbXBf bWZsYWdzfQorKworKyVpbnN0YWxsCisrcm0gLXJmICRSUE1fQlVJTERfUk9PVAorK21ha2UgaW5z dGFsbCBERVNURElSPSRSUE1fQlVJTERfUk9PVAorKyMjCisrIyAgUmVtb3ZlIHVucGFja2FnZWQg ZmlsZXMgZnJvbSB0aGUgYnVpbGRyb290Cisrcm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVk ZWRpcn0vJXtuYW1lfS9jb25maWcuaAorK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2xpYmRpcn0v bGliJXtuYW1lfV8qLmxhCisrIyMKKysjIworKyMgIER1cGxpY2F0ZSB0aGUgaGVhZGVyIGZpbGVz LCBzbyBhcyB0byBrZWVwIHRoZSBjb21wYXRpYmlsaXR5LCBmb3IKKysjICBkZXZlbG9wZXJzIHVz aW5nIHRoZSBTT0NJIGxpYnJhcnksIHdpdGggdGhlIG5vbi1wYWNrYWdlZCB2ZXJzaW9uIG9mCisr IyAgdGhhdCBsaWJyYXJ5LgorK2ZvciBoZWFkZXJfZmlsZSBpbiAkUlBNX0JVSUxEX1JPT1Qle19p bmNsdWRlZGlyfS8le25hbWV9L2NvcmUvKi5oOyBkbworKyAgY3AgJHtoZWFkZXJfZmlsZX0gJFJQ TV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorK2RvbmUKKyslez93aXRoX215c3Fs OmNwICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvbXlzcWwv c29jaS1teXNxbC5oICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19CisrJXs/ d2l0aF9wb3N0Z3Jlc3FsOmNwICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0v YmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAkUlBNX0JVSUxEX1JPT1Qle19p bmNsdWRlZGlyfS8le25hbWV9fQorKyV7P3dpdGhfb3JhY2xlOmNwICRSUE1fQlVJTERfUk9PVCV7 X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmggJFJQTV9C VUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfX0KKysKKysKKyslY2xlYW4KKytybSAtcmYg JFJQTV9CVUlMRF9ST09UCisrCisrJXBvc3QgLXAgL3NiaW4vbGRjb25maWcKKysKKyslcG9zdHVu IC1wIC9zYmluL2xkY29uZmlnCisrCisrJXs/d2l0aF9teXNxbDolcG9zdCBteXNxbCAtcCAvc2Jp bi9sZGNvbmZpZworKworKyVwb3N0dW4gbXlzcWwgLXAgL3NiaW4vbGRjb25maWd9CisrCisrJXs/ d2l0aF9wb3N0Z3Jlc3FsOiVwb3N0IHBvc3RncmVzcWwgLXAgL3NiaW4vbGRjb25maWcKKysKKysl cG9zdHVuIHBvc3RncmVzcWwgLXAgL3NiaW4vbGRjb25maWd9CisrCisrJXs/d2l0aF9vcmFjbGU6 JXBvc3Qgb3JhY2xlIC1wIC9zYmluL2xkY29uZmlnCisrCisrJXBvc3R1biBvcmFjbGUgLXAgL3Ni aW4vbGRjb25maWd9CisrCisrCisrCisrJWZpbGVzCisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkK KyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKKysle19saWJkaXJ9 L2xpYiV7bmFtZX1fY29yZS5zby4qCisrCisrJXs/d2l0aF9teXNxbDolZmlsZXMgbXlzcWwKKysl ZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBO RVdTIFJFQURNRQorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9teXNxbC5zby4qfQorKworKyV7P3dp dGhfcG9zdGdyZXNxbDolZmlsZXMgcG9zdGdyZXNxbAorKyVkZWZhdHRyKC0scm9vdCxyb290LC0p CisrJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisrJXtfbGliZGly fS9saWIle25hbWV9X3Bvc3RncmVzcWwuc28uKn0KKysKKyslez93aXRoX29yYWNsZTolZmlsZXMg b3JhY2xlCisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9n IENPUFlJTkcgTkVXUyBSRUFETUUKKysle19saWJkaXJ9L2xpYiV7bmFtZX1fb3JhY2xlLnNvLip9 CisrCisrCisrJWZpbGVzIGRldmVsCisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFV VEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKKyslZGlyICV7X2luY2x1ZGVkaXJ9 LyV7bmFtZX0KKyslZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZQorKyV7X2luY2x1ZGVk aXJ9LyV7bmFtZX0vKi5oCisrJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3JlLyouaAorKyV7X2lu Y2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS90ZXN0CisrJXtfYmluZGlyfS8le25hbWV9LWNvbmZpZwor KyV7X2xpYmRpcn0vbGliJXtuYW1lfV9jb3JlLnNvCisrJXtfbGliZGlyfS9wa2djb25maWcvJXtu YW1lfS5wYworKyV7X2RhdGFkaXJ9L2FjbG9jYWwvJXtuYW1lfS5tNAorKyV7X21hbmRpcn0vbWFu MS8le25hbWV9LWNvbmZpZy4xLioKKysKKyslez93aXRoX215c3FsOiVmaWxlcyBteXNxbC1kZXZl bAorKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZ SU5HIE5FV1MgUkVBRE1FCisrJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9CisrJXtfaW5jbHVk ZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9teXNxbAorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9teXNx bC5zb30KKysKKyslez93aXRoX3Bvc3RncmVzcWw6JWZpbGVzIHBvc3RncmVzcWwtZGV2ZWwKKysl ZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBO RVdTIFJFQURNRQorKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorKyV7X2luY2x1ZGVkaXJ9 LyV7bmFtZX0vYmFja2VuZHMvcG9zdGdyZXNxbAorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9wb3N0 Z3Jlc3FsLnNvfQorKworKyV7P3dpdGhfb3JhY2xlOiVmaWxlcyBvcmFjbGUtZGV2ZWwKKyslZGVm YXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdT IFJFQURNRQorKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorKyV7X2luY2x1ZGVkaXJ9LyV7 bmFtZX0vYmFja2VuZHMvb3JhY2xlCisrJXtfbGliZGlyfS9saWIle25hbWV9X29yYWNsZS5zb30K KysKKysKKyslZmlsZXMgZG9jCisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFVVEhP UlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUgZG9jCisrCisrCisrJWNoYW5nZWxvZwor KyogU2F0IE1heSAwOSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgu b3JnPiAzLjAuMC0xMworKy0gSW50cm9kdWNlZCBkaXN0aW5jdCBkZXBlbmRlbmNpZXMgZm9yIGRp ZmZlcmVudCBkaXN0cmlidXRpb25zCisrCisrKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVk IDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEyCisrLSBSZW1vdmVkIHRoZSBk ZXBlbmRlbmN5IG9uIHRoZSB2ZXJzaW9uIG9mIEJvb3N0LCBhbmQgb24gQ1BQVW5pdAorKworKyog VHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3Jn PiAzLjAuMC0xMQorKy0gUmVtb3ZlZCB0aGUgZGVwZW5kZW5jeSBvbiBMYXRleCBmb3IgZG9jdW1l bnRhdGlvbiBkZWxpdmVyeQorKworKyogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVu aXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMAorKy0gQnVycmllZCB0aGUgQm9vc3Qg RnVzaW9uIGhlYWRlciBpbmNsdWRlIGZvciBjb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKKysKKysq IFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9y Zz4gMy4wLjAtOQorKy0gQWRkZWQgYSBtaXNzaW5nIGNzdGRpbyBoZWFkZXIgaW5jbHVkZSBmb3Ig ZysrLTQuNCBjb21wYXRpYmlsaXR5CisrCisrKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVk IDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTgKKystIEFkZGVkIG1pc3Npbmcg Y3N0ZGlvIGhlYWRlciBpbmNsdWRlcyBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5CisrCisrKiBU dWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+ IDMuMC4wLTcKKystIEFkZGVkIGEgbWlzc2luZyBjc3RkaW8gaGVhZGVyIGluY2x1ZGUgZm9yIGcr Ky00LjQgY29tcGF0aWJpbGl0eQorKworKyogU2F0IE1heSAwMiAyMDA5IERlbmlzIEFybmF1ZCA8 ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC02CisrLSBSZW1vdmVkIHRoZSB1bnVz ZWQgYnVpbGQgY29uZGl0aW9uYWxzCisrCisrKiBUdWUgQXByIDI4IDIwMDkgRGVuaXMgQXJuYXVk IDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTUKKystIFNpbXBsaWZpZWQgdGhl IGNvbmRpdGlvbmFsIGJ1aWxkIHJ1bGVzIHdpdGhpbiB0aGUgUlBNIHNwZWNpZmljYXRpb24gZmls ZQorKworKyogU2F0IEFwciAxOCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9y YUBtNHgub3JnPiAzLjAuMC00CisrLSBGaXhlZCBhbiBpc3N1ZSBhYm91dCBPUFRGTEFHUyBjb21w aWxhdGlvbgorKworKyogVHVlIEFwciAxNCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVk X2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0zCisrLSBSZXN0YXJ0ZWQgZnJvbSBwcmlzdGluZSB2ZXJz aW9uIDMuMC4wIG9mIHVwc3RyZWFtIChTT0NJKSBwcm9qZWN0CisrCisrKiBTYXQgQXByICA0IDIw MDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTIKKyst IFNwZWNpZmljIFJQTSBmb3IgZWFjaCBiYWNrZW5kCisrCisrKiBGcmkgTWFyIDI3IDIwMDkgRGVu aXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEKKystIEZpcnN0 IFJQTSByZWxlYXNlCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC1maXgtZ2NjNDMtY29tcGF0aWJp bGl0eS5wYXRjaCBiL3NvY2ktMy4wLjAtZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjYTllODkuLjAwMDAwMDAKLS0tIGEvc29jaS0z LjAuMC1maXgtZ2NjNDMtY29tcGF0aWJpbGl0eS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEx MiArMCwwIEBACi1kaWZmIC1ydSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24u aCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvY29tbW9uLmgKLS0tLSBzb2Np LTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAkyMDA4LTA3LTAzIDA5OjIyOjU3LjAw MDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9j b21tb24uaAkyMDA5LTA1LTA1IDIzOjMyOjIyLjAwMDAwMDAwMCArMDIwMAotQEAgLTEwLDYgKzEw LDcgQEAKLSAKLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAjaW5jbHVkZSAic29jaS1teXNxbC5oIgot KyNpbmNsdWRlIDxjdGltZT4KLSAKLSBuYW1lc3BhY2Ugc29jaQotIHsKLWRpZmYgLXJ1IHNvY2kt My4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3Ny Yy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRz L215c3FsL3Nlc3Npb24uY3BwCTIwMDgtMDUtMTUgMTU6NTg6MzguMDAwMDAwMDAwICswMjAwCi0r Kysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCTIwMDkt MDUtMDUgMjM6MzI6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMTEsNyArMTEsOCBAQAotICNpbmNs dWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNlcnJubz4KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLS0K LSsjaW5jbHVkZSA8Y3N0ZGxpYj4KLSsjaW5jbHVkZSA8Y2xpbWl0cz4KLSAKLSAjaWZkZWYgX01T Q19WRVIKLSAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQotZGlmZiAtcnUgc29jaS0zLjAu MC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wXzQt cGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0tIHNvY2kt My4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOC0wNS0z MCAxMzozMzo0NS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA1LTA1IDIzOjMyOjIyLjAw MDAwMDAwMCArMDIwMAotQEAgLTEyLDYgKzEyLDggQEAKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0g I2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci0rI2luY2x1ZGUgPGN0aW1l PgotKyNpbmNsdWRlIDxjc3RyaW5nPgotIAotICNpZmRlZiBfTVNDX1ZFUgotICNwcmFnbWEgd2Fy bmluZyhkaXNhYmxlOjQzNTUpCi1kaWZmIC1ydSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCAr MDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11 c2UtdHlwZS5jcHAJMjAwOS0wNS0wNSAyMzozMjoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC05LDkg KzksMTYgQEAKLSAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktbXlz cWwuaCIKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4K LSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLXBs YXRmb3JtLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8 bGltaXRzPgotKyNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJpbmc+Ci0gCi0gI2lm ZGVmIF9NU0NfVkVSCi1kaWZmIC1ydSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvdmVjdG9y LXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAotKysrIHNv Y2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIw MDktMDUtMDUgMjM6MzI6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtOSwxMCArOSwxOCBAQAotICNk ZWZpbmUgU09DSV9NWVNRTF9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1teXNxbC5oIgotICNpbmNs dWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKy8vCi0rI2lmIGRl ZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9z b2NpLXBsYXRmb3JtLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSsj ZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNpbmNsdWRlIDxsaW1pdHM+Ci0rI2lu Y2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLSsjaW5jbHVkZSA8Y3RpbWU+Ci0g Ci0gI2lmZGVmIF9NU0NfVkVSCi0gI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKLWRpZmYg LXJ1IHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBzb2NpLTMu MC4wXzQtcGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCi0tLS0gc29jaS0z LjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCTIwMDgtMDYtMjcgMTY6Mzg6 MDUuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTA1IDIzOjMyOjIyLjAwMDAwMDAwMCArMDIwMAot QEAgLTYsOCArNiwxNSBAQAotIC8vCi0gCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotLSNpbmNsdWRl IDxzb2NpLWJhY2tlbmQuaD4KLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQp Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+Ci0rI2Vsc2UKLSsj CWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNzdGRs aWI+Ci0rI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3RpbWU+Ci0gCi0gCi1kaWZmIC1y dSBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9z cmMvY29yZS9zb2NpLXNpbXBsZS5jcHAKLS0tLSBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2ktc2lt cGxlLmNwcAkyMDA4LTA3LTAxIDA5OjQyOjI1LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4w LjBfNC1wYWNrL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDA5LTA1LTA1IDIzOjMzOjU3LjAw MDAwMDAwMCArMDIwMAotQEAgLTksNiArOSw4IEBACi0gCi0gI2luY2x1ZGUgInNvY2ktc2ltcGxl LmgiCi0gI2luY2x1ZGUgInNvY2kuaCIKLSsvLwotKyNpbmNsdWRlIDxjc3RkaW8+Ci0gCi0gdXNp bmcgbmFtZXNwYWNlIHNvY2k7Ci0gCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC1maXgtZ251LWF1 dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29jaS0zLjAuMC1maXgtZ251LWF1dG90b29s cy1jb21wYXRpYmlsaXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZGMx MDZlLi4wMDAwMDAwCi0tLSBhL3NvY2ktMy4wLjAtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJp bGl0eS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYwMjM0ICswLDAgQEAKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9hY2xvY2FsLm00 Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svYWNsb2NhbC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9hY2xvY2FsLm00CTIwMDktMDUt MDYgMDE6MzE6NDEuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDc1MTIgQEAKLSsjIGdlbmVy YXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGFjbG9jYWwgMS4xMC4xIC0qLSBBdXRvY29uZiAtKi0KLSsK LSsjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwgMjAwMywgMjAwNCwKLSsjIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3 OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rbTRfaWZuZGVm KFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKLSsgIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05d LCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKLSttNF9pZihBQ19BVVRPQ09ORl9WRVJTSU9O LCBbMi42M10sLAotK1ttNF93YXJuaW5nKFt0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBmb3IgYXV0 b2NvbmYgMi42My4KLStZb3UgaGF2ZSBhbm90aGVyIHZlcnNpb24gb2YgYXV0b2NvbmYuICBJdCBt YXkgd29yaywgYnV0IGlzIG5vdCBndWFyYW50ZWVkIHRvLgotK0lmIHlvdSBoYXZlIHByb2JsZW1z LCB5b3UgbWF5IG5lZWQgdG8gcmVnZW5lcmF0ZSB0aGUgYnVpbGQgc3lzdGVtIGVudGlyZWx5Lgot K1RvIGRvIHNvLCB1c2UgdGhlIHByb2NlZHVyZSBkb2N1bWVudGVkIGJ5IHRoZSBwYWNrYWdlLCB0 eXBpY2FsbHkgYGF1dG9yZWNvbmYnLl0pXSkKLSsKLSsjIGxpYnRvb2wubTQgLSBDb25maWd1cmUg bGlidG9vbCBmb3IgdGhlIGhvc3Qgc3lzdGVtLiAtKi1BdXRvY29uZi0qLQotKwotKyMgc2VyaWFs IDUyIEFDX1BST0dfTElCVE9PTAotKwotKwotKyMgQUNfUFJPVklERV9JRkVMU0UoTUFDUk8tTkFN RSwgSUYtUFJPVklERUQsIElGLU5PVC1QUk9WSURFRCkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBJZiB0aGlzIG1hY3Jv IGlzIG5vdCBkZWZpbmVkIGJ5IEF1dG9jb25mLCBkZWZpbmUgaXQgaGVyZS4KLSttNF9pZmRlZihb QUNfUFJPVklERV9JRkVMU0VdLAotKyAgICAgICAgIFtdLAotKyAgICAgICAgIFttNF9kZWZpbmUo W0FDX1BST1ZJREVfSUZFTFNFXSwKLSsJICAgICAgICAgW200X2lmZGVmKFtBQ19QUk9WSURFXyQx XSwKLSsJCSAgICAgICAgICAgWyQyXSwgWyQzXSldKV0pCi0rCi0rCi0rIyBBQ19QUk9HX0xJQlRP T0wKLSsjIC0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19QUk9HX0xJQlRPT0xdLAotK1tB Q19SRVFVSVJFKFtfQUNfUFJPR19MSUJUT09MXSlkbmwKLStkbmwgSWYgQUNfUFJPR19DWFggaGFz IGFscmVhZHkgYmVlbiBleHBhbmRlZCwgcnVuIEFDX0xJQlRPT0xfQ1hYCi0rZG5sIGltbWVkaWF0 ZWx5LCBvdGhlcndpc2UsIGhvb2sgaXQgaW4gYXQgdGhlIGVuZCBvZiBBQ19QUk9HX0NYWC4KLSsg IEFDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCi0rICAgIFtBQ19MSUJUT09MX0NYWF0s Ci0rICAgIFtkZWZpbmUoW0FDX1BST0dfQ1hYXSwgZGVmbihbQUNfUFJPR19DWFhdKVtBQ19MSUJU T09MX0NYWAotKyAgXSldKQotK2RubCBBbmQgYSBzaW1pbGFyIHNldHVwIGZvciBGb3J0cmFuIDc3 IHN1cHBvcnQKLSsgIEFDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0Y3N10sCi0rICAgIFtBQ19M SUJUT09MX0Y3N10sCi0rICAgIFtkZWZpbmUoW0FDX1BST0dfRjc3XSwgZGVmbihbQUNfUFJPR19G NzddKVtBQ19MSUJUT09MX0Y3NwotK10pXSkKLSsKLStkbmwgUXVvdGUgQV1bTV9QUk9HX0dDSiBz byB0aGF0IGFjbG9jYWwgZG9lc24ndCBicmluZyBpdCBpbiBuZWVkbGVzc2x5LgotK2RubCBJZiBl aXRoZXIgQUNfUFJPR19HQ0ogb3IgQV1bTV9QUk9HX0dDSiBoYXZlIGFscmVhZHkgYmVlbiBleHBh bmRlZCwgcnVuCi0rZG5sIEFDX0xJQlRPT0xfR0NKIGltbWVkaWF0ZWx5LCBvdGhlcndpc2UsIGhv b2sgaXQgaW4gYXQgdGhlIGVuZCBvZiBib3RoLgotKyAgQUNfUFJPVklERV9JRkVMU0UoW0FDX1BS T0dfR0NKXSwKLSsgICAgW0FDX0xJQlRPT0xfR0NKXSwKLSsgICAgW0FDX1BST1ZJREVfSUZFTFNF KFtBXVtNX1BST0dfR0NKXSwKLSsgICAgICBbQUNfTElCVE9PTF9HQ0pdLAotKyAgICAgIFtBQ19Q Uk9WSURFX0lGRUxTRShbTFRfQUNfUFJPR19HQ0pdLAotKwlbQUNfTElCVE9PTF9HQ0pdLAotKyAg ICAgIFtpZmRlZihbQUNfUFJPR19HQ0pdLAotKwkgICAgIFtkZWZpbmUoW0FDX1BST0dfR0NKXSwg ZGVmbihbQUNfUFJPR19HQ0pdKVtBQ19MSUJUT09MX0dDSl0pXSkKLSsgICAgICAgaWZkZWYoW0Fd W01fUFJPR19HQ0pdLAotKwkgICAgIFtkZWZpbmUoW0FdW01fUFJPR19HQ0pdLCBkZWZuKFtBXVtN X1BST0dfR0NKXSlbQUNfTElCVE9PTF9HQ0pdKV0pCi0rICAgICAgIGlmZGVmKFtMVF9BQ19QUk9H X0dDSl0sCi0rCSAgICAgW2RlZmluZShbTFRfQUNfUFJPR19HQ0pdLAotKwkJZGVmbihbTFRfQUNf UFJPR19HQ0pdKVtBQ19MSUJUT09MX0dDSl0pXSldKV0pCi0rXSldKSMgQUNfUFJPR19MSUJUT09M Ci0rCi0rCi0rIyBfQUNfUFJPR19MSUJUT09MCi0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVG VU4oW19BQ19QUk9HX0xJQlRPT0xdLAotK1tBQ19SRVFVSVJFKFtBQ19MSUJUT09MX1NFVFVQXSlk bmwKLStBQ19CRUZPUkUoWyQwXSxbQUNfTElCVE9PTF9DWFhdKWRubAotK0FDX0JFRk9SRShbJDBd LFtBQ19MSUJUT09MX0Y3N10pZG5sCi0rQUNfQkVGT1JFKFskMF0sW0FDX0xJQlRPT0xfR0NKXSlk bmwKLSsKLSsjIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVidWlsZCBsaWJ0b29sIHdoZW4gbmVlZGVk Ci0rTElCVE9PTF9ERVBTPSIkYWNfYXV4X2Rpci9sdG1haW4uc2giCi0rCi0rIyBBbHdheXMgdXNl IG91ciBvd24gbGlidG9vbC4KLStMSUJUT09MPSckKFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGli dG9vbCcKLStBQ19TVUJTVChMSUJUT09MKWRubAotKwotKyMgUHJldmVudCBtdWx0aXBsZSBleHBh bnNpb24KLStkZWZpbmUoW0FDX1BST0dfTElCVE9PTF0sIFtdKQotK10pIyBfQUNfUFJPR19MSUJU T09MCi0rCi0rCi0rIyBBQ19MSUJUT09MX1NFVFVQCi0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rQUNf REVGVU4oW0FDX0xJQlRPT0xfU0VUVVBdLAotK1tBQ19QUkVSRVEoMi41MClkbmwKLStBQ19SRVFV SVJFKFtBQ19FTkFCTEVfU0hBUkVEXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19FTkFCTEVfU1RBVElD XSlkbmwKLStBQ19SRVFVSVJFKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxMXSlkbmwKLStBQ19SRVFV SVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCi0rQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JV SUxEXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19Q Uk9HX0xEXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0xEX1JFTE9BRF9GTEFHXSlkbmwKLStB Q19SRVFVSVJFKFtBQ19QUk9HX05NXSlkbmwKLSsKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0xOX1Nd KWRubAotK0FDX1JFUVVJUkUoW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9EXSlkbmwKLSsjIEF1dG9j b25mIDIuMTMncyBBQ19PQkpFWFQgYW5kIEFDX0VYRUVYVCBtYWNyb3Mgb25seSB3b3JrcyBmb3Ig QyBjb21waWxlcnMhCi0rQUNfUkVRVUlSRShbQUNfT0JKRVhUXSlkbmwKLStBQ19SRVFVSVJFKFtB Q19FWEVFWFRdKWRubAotK2RubAotK0FDX0xJQlRPT0xfU1lTX01BWF9DTURfTEVOCi0rQUNfTElC VE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9QSVBFCi0rQUNfTElCVE9PTF9PQkpESVIKLSsKLStBQ19S RVFVSVJFKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSlkbmwKLStfTFRfQUNfUFJPR19FQ0hPX0JBQ0tT TEFTSAotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgICMgQUlYIHNvbWV0aW1lcyBo YXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQotKyAg IyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJs ZSwgdGhlIHByb2JsZW1zCi0rICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0rICBpZiB0 ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsgICAgQ09MTEVDVF9O QU1FUz0KLSsgICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsK LSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0 IGJhY2tzbGFzaGlmaWVzCi0rIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUg d2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KLStYc2VkPSdzZWQgLWUgMXMvXlgvLycKLStb c2VkX3F1b3RlX3N1YnN0PSdzL1woW1xcIlxcYCRcXFxcXVwpL1xcXDEvZyddCi0rCi0rIyBTYW1l IGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCi0rW2RvdWJs ZV9xdW90ZV9zdWJzdD0ncy9cKFtcXCJcXGBcXFxcXVwpL1xcXDEvZyddCi0rCi0rIyBTZWQgc3Vi c3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxsIHZhcmlhYmxl IGluIGEKLSsjIGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcuCi0rZGVsYXlfdmFyaWFibGVf c3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24g dG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKLStub19n bG9iX3N1YnN0PSdzL1wqL1xcXCovZycKLSsKLSsjIENvbnN0YW50czoKLStybT0icm0gLWYiCi0r Ci0rIyBHbG9iYWwgdmFyaWFibGVzOgotK2RlZmF1bHRfb2ZpbGU9bGlidG9vbAotK2Nhbl9idWls ZF9zaGFyZWQ9eWVzCi0rCi0rIyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNo aXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCi0rIyB3aGljaCBuZWVkcyAnLmxp YicpLgotK2xpYmV4dD1hCi0rbHRtYWluPSIkYWNfYXV4X2Rpci9sdG1haW4uc2giCi0rb2ZpbGU9 IiRkZWZhdWx0X29maWxlIgotK3dpdGhfZ251X2xkPSIkbHRfY3ZfcHJvZ19nbnVfbGQiCi0rCi0r QUNfQ0hFQ0tfVE9PTChBUiwgYXIsIGZhbHNlKQotK0FDX0NIRUNLX1RPT0woUkFOTElCLCByYW5s aWIsIDopCi0rQUNfQ0hFQ0tfVE9PTChTVFJJUCwgc3RyaXAsIDopCi0rCi0rb2xkX0NDPSIkQ0Mi Ci0rb2xkX0NGTEFHUz0iJENGTEFHUyIKLSsKLSsjIFNldCBzYW5lIGRlZmF1bHRzIGZvciB2YXJp b3VzIHZhcmlhYmxlcwotK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKLSt0ZXN0IC16ICIkQVJfRkxB R1MiICYmIEFSX0ZMQUdTPWNydQotK3Rlc3QgLXogIiRBUyIgJiYgQVM9YXMKLSt0ZXN0IC16ICIk Q0MiICYmIENDPWNjCi0rdGVzdCAteiAiJExUQ0MiICYmIExUQ0M9JENDCi0rdGVzdCAteiAiJExU Q0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZMQUdTCi0rdGVzdCAteiAiJERMTFRPT0wiICYmIERMTFRP T0w9ZGxsdG9vbAotK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKLSt0ZXN0IC16ICIkTE5fUyIgJiYg TE5fUz0ibG4gLXMiCi0rdGVzdCAteiAiJE1BR0lDX0NNRCIgJiYgTUFHSUNfQ01EPWZpbGUKLSt0 ZXN0IC16ICIkTk0iICYmIE5NPW5tCi0rdGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAotK3Rlc3Qg LXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKLSt0ZXN0IC16ICIkUkFOTElCIiAmJiBS QU5MSUI9OgotK3Rlc3QgLXogIiRTVFJJUCIgJiYgU1RSSVA9OgotK3Rlc3QgLXogIiRhY19vYmpl eHQiICYmIGFjX29iamV4dD1vCi0rCi0rIyBEZXRlcm1pbmUgY29tbWFuZHMgdG8gY3JlYXRlIG9s ZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMuCi0rb2xkX2FyY2hpdmVfY21kcz0nJEFSICRBUl9GTEFH UyAkb2xkbGliJG9sZG9ianMnCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xk bGliJwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9Ci0rCi0raWYgdGVzdCAtbiAiJFJBTkxJQiI7 IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIG9wZW5ic2QqKQotKyAgICBvbGRfcG9zdGlu c3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGliIgot KyAgICA7OwotKyAgKikKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3Rh bGxfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKLSsgICAgOzsKLSsgIGVzYWMKLSsgIG9sZF9hcmNo aXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkb2xkbGliIgotK2ZpCi0rCi0r X0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQotKwotKyMgT25seSBwZXJmb3JtIHRoZSBjaGVj ayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJlcyBpdAotK2Nhc2UgJGRlcGxp YnNfY2hlY2tfbWV0aG9kIGluCi0rZmlsZV9tYWdpYyopCi0rICBpZiB0ZXN0ICIkZmlsZV9tYWdp Y19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCi0rICAgIEFDX1BBVEhfTUFHSUMKLSsgIGZpCi0r ICA7OwotK2VzYWMKLSsKLStfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLUwotKwotK0FDX1BST1ZJ REVfSUZFTFNFKFtBQ19MSUJUT09MX0RMT1BFTl0sIGVuYWJsZV9kbG9wZW49eWVzLCBlbmFibGVf ZGxvcGVuPW5vKQotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sCi0r ZW5hYmxlX3dpbjMyX2RsbD15ZXMsIGVuYWJsZV93aW4zMl9kbGw9bm8pCi0rCi0rQUNfQVJHX0VO QUJMRShbbGlidG9vbC1sb2NrXSwKLSsgICAgW0FDX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbGli dG9vbC1sb2NrXSwKLSsJW2F2b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxk cyldKV0pCi0rdGVzdCAieCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xp YnRvb2xfbG9jaz15ZXMKLSsKLStBQ19BUkdfV0lUSChbcGljXSwKLSsgICAgW0FDX0hFTFBfU1RS SU5HKFstLXdpdGgtcGljXSwKLSsJW3RyeSB0byB1c2Ugb25seSBQSUMvbm9uLVBJQyBvYmplY3Rz IEA8OkBkZWZhdWx0PXVzZSBib3RoQDo+QF0pXSwKLSsgICAgW3BpY19tb2RlPSIkd2l0aHZhbCJd LAotKyAgICBbcGljX21vZGU9ZGVmYXVsdF0pCi0rdGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNf bW9kZT1kZWZhdWx0Ci0rCi0rIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBp biB0aGUgbGlidG9vbCBzY3JpcHQKLSt0YWduYW1lPQotK0FDX0xJQlRPT0xfTEFOR19DX0NPTkZJ RwotK19MVF9BQ19UQUdDT05GSUcKLStdKSMgQUNfTElCVE9PTF9TRVRVUAotKwotKwotKyMgX0xU X0FDX1NZU19DT01QSUxFUgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfTFRf QUNfU1lTX0NPTVBJTEVSXSwKLStbQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCi0rCi0rIyBJ ZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KLStMVENDPSR7TFRDQy0iJEND In0KLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxB R1MuCi0rTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9Ci0rCi0rIyBBbGxvdyBDQyB0byBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLStjb21waWxlcj0kQ0MKLStdKSMgX0xU X0FDX1NZU19DT01QSUxFUgotKwotKwotKyMgX0xUX0NDX0JBU0VOQU1FKENDKQotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgQ2FsY3VsYXRlIGNjX2Jhc2VuYW1lLiAgU2tpcCBrbm93biBjb21w aWxlciB3cmFwcGVycyBhbmQgY3Jvc3MtcHJlZml4LgotK0FDX0RFRlVOKFtfTFRfQ0NfQkFTRU5B TUVdLAotK1tmb3IgY2NfdGVtcCBpbiAkMSIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBpbgotKyAg ICBjb21waWxlIHwgKltbXFwvXV1jb21waWxlIHwgY2NhY2hlIHwgKltbXFwvXV1jY2FjaGUgKSA7 OwotKyAgICBkaXN0Y2MgfCAqW1tcXC9dXWRpc3RjYyB8IHB1cmlmeSB8ICpbW1xcL11dcHVyaWZ5 ICkgOzsKLSsgICAgXC0qKSA7OwotKyAgICAqKSBicmVhazs7Ci0rICBlc2FjCi0rZG9uZQotK2Nj X2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVe JGhvc3RfYWxpYXMtJSUiYAotK10pCi0rCi0rCi0rIyBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgZm9yIGNvbXBpbGVyIGJvaWxl cnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRoCi0rIyB0aGUgc2ltcGxlIGNvbXBpbGVyIHRl c3QgY29kZS4KLStBQ19ERUZVTihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSwKLStbQUNfUkVR VUlSRShbTFRfQUNfUFJPR19TRURdKWRubAotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4 dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0 Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAq Ky9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRl c3QuZXJyYAotKyRybSBjb25mdGVzdCoKLStdKSMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0r Ci0rCi0rIyBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBDaGVjayBmb3IgbGlua2VyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRo Ci0rIyB0aGUgc2ltcGxlIGxpbmsgdGVzdCBjb2RlLgotK0FDX0RFRlVOKFtfTFRfTElOS0VSX0JP SUxFUlBMQVRFXSwKLStbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAotK2FjX291dGZp bGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUi ID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRT RUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2xpbmtlcl9ib2lsZXJwbGF0 ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskcm0gLXIgY29uZnRlc3QqCi0rXSkjIF9MVF9MSU5LRVJf Qk9JTEVSUExBVEUKLSsKLSsjIF9MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgZm9yIHNvbWUgdGhpbmdzIG9uIGRhcndpbgot K0FDX0RFRlVOKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10sWwotKyAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICByaGFwc29keSogfCBkYXJ3aW4qKQotKyAgICBBQ19DSEVDS19UT09MKFtEU1lN VVRJTF0sIFtkc3ltdXRpbF0sIFs6XSkKLSsgICAgQUNfQ0hFQ0tfVE9PTChbTk1FRElUXSwgW25t ZWRpdF0sIFs6XSkKLSsKLSsgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAtc2luZ2xlX21vZHVsZSBs aW5rZXIgZmxhZ10sW2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2RdLAotKyAgICAgIFtsdF9jdl9h cHBsZV9jY19zaW5nbGVfbW9kPW5vCi0rICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RV TEV9IjsgdGhlbgotKyAgICMgQnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9tb2R1 bGUgZmxhZy4gWW91IGNhbiBvdmVycmlkZQotKyAgICMgYnkgZWl0aGVyIHNldHRpbmcgdGhlIGVu dmlyb25tZW50IHZhcmlhYmxlIExUX01VTFRJX01PRFVMRQotKyAgICMgbm9uLWVtcHR5IGF0IGNv bmZpZ3VyZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKLSsgICAjIGxp bmsgZmxhZ3MuCi0rICAgZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0 LmMKLSsgICAkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAot KyAgICAgLWR5bmFtaWNsaWIgJHt3bH0tc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jCi0rICAgaWYg dGVzdCAtZiBsaWJjb25mdGVzdC5keWxpYjsgdGhlbgotKyAgICAgbHRfY3ZfYXBwbGVfY2Nfc2lu Z2xlX21vZD15ZXMKLSsgICAgIHJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKLSsgICBmaQotKyAg IHJtIGNvbmZ0ZXN0LmMKLSsgICAgICBmaV0pCi0rICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLWV4 cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZ10sCi0rICAgICAgW2x0X2N2X2xkX2V4cG9y dGVkX3N5bWJvbHNfbGlzdF0sCi0rICAgICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlz dD1ubwotKyAgICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUwotKyAgICAgIGVjaG8gIl9tYWluIiA+ IGNvbmZ0ZXN0LnN5bQotKyAgICAgIExERkxBR1M9IiRMREZMQUdTIC1XbCwtZXhwb3J0ZWRfc3lt Ym9sc19saXN0LGNvbmZ0ZXN0LnN5bSIKLSsgICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19Q Uk9HUkFNKFtdLFtdKV0sCi0rICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD15ZXNd LAotKyAgIFtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm9dKQotKyAgIExERkxBR1M9 IiRzYXZlX0xERkxBR1MiCi0rICAgIF0pCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgcmhh cHNvZHkqIHwgZGFyd2luMS5bWzAxMjNdXSkKLSsgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5l ZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0rICAgIGRhcndpbjEuKikKLSsg ICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11 bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsgICAgZGFyd2luKikKLSsgICAgICAjIGlmIHJ1 bm5pbmcgb24gMTAuNSBvciBsYXRlciwgdGhlIGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRzCi0r ICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxv eW1lbnQKLSsgICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBp dD8KLSsgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0IGlu Ci0rICAgMTAuMCwqODYqLWRhcndpbjgqfDEwLjAsKi1kYXJ3aW5bWzkxXV0qKQotKyAgICAgX2x0 X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3Vw JyA7OwotKyAgIDEwLltbMDEyXV0qKQotKyAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7 d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OwotKyAg IDEwLiopCi0rICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7 d2x9ZHluYW1pY19sb29rdXAnIDs7Ci0rICAgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKyAg ICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgotKyAg ICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCi0rICAgIGZpCi0rICAgIGlm IHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KLSsg ICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRv dXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCi0rICAgIGVsc2UKLSsgICAg ICBfbHRfZGFyX2V4cG9ydF9zeW1zPSJ+JE5NRURJVCAtcyBcJG91dHB1dF9vYmpkaXIvXCR7bGli bmFtZX0tc3ltYm9scy5leHBzeW0gXCR7bGlifSIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJERT WU1VVElMIiAhPSAiOiI7IHRoZW4KLSsgICAgICBfbHRfZHN5bXV0aWw9In4kRFNZTVVUSUwgXCRs aWIgfHwgOiIKLSsgICAgZWxzZQotKyAgICAgIF9sdF9kc3ltdXRpbD0KLSsgICAgZmkKLSsgICAg OzsKLSsgIGVzYWMKLStdKQotKwotKyMgX0xUX0FDX1NZU19MSUJQQVRIX0FJWAotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgTGlua3MgYSBtaW5pbWFsIHByb2dyYW0gYW5kIGNoZWNrcyB0 aGUgZXhlY3V0YWJsZQotKyMgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBoYXJkY29kZWQgbGlicmFy eSBwYXRoLiBJbiBtb3N0IGNhc2VzLAotKyMgdGhpcyBpcyAvdXNyL2xpYjovbGliLCBidXQgd2hl biB0aGUgTVBJIGNvbXBpbGVycyBhcmUgdXNlZAotKyMgdGhlIGxvY2F0aW9uIG9mIHRoZSBjb21t dW5pY2F0aW9uIGFuZCBNUEkgbGlicyBhcmUgaW5jbHVkZWQgdG9vLgotKyMgSWYgd2UgZG9uJ3Qg ZmluZCBhbnl0aGluZywgdXNlIHRoZSBkZWZhdWx0IGxpYnJhcnkgcGF0aCBhY2NvcmRpbmcKLSsj IHRvIHRoZSBhaXggbGQgbWFudWFsLgotK0FDX0RFRlVOKFtfTFRfQUNfU1lTX0xJQlBBVEhfQUlY XSwKLStbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAotK0FDX0xJTktfSUZFTFNFKEFD X0xBTkdfUFJPR1JBTSxbCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxl IFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkg ICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhl ZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBD aGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lm IHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0 IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGli cGF0aF9zZWQiYAotK2ZpXSxbXSkKLStpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFp eF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKLStdKSMgX0xUX0FDX1NZU19MSUJQQVRIX0FJ WAotKwotKwotKyMgX0xUX0FDX1NIRUxMX0lOSVQoQVJHKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotK0FDX0RFRlVOKFtfTFRfQUNfU0hFTExfSU5JVF0sCi0rW2lmZGVmKFtBQ19ESVZFUlNJ T05fTk9USUNFXSwKLSsJICAgICBbQUNfRElWRVJUX1BVU0goQUNfRElWRVJTSU9OX05PVElDRSld LAotKwkgW0FDX0RJVkVSVF9QVVNIKE5PVElDRSldKQotKyQxCi0rQUNfRElWRVJUX1BPUAotK10p IyBfTFRfQUNfU0hFTExfSU5JVAotKwotKwotKyMgX0xUX0FDX1BST0dfRUNIT19CQUNLU0xBU0gK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBBZGQgc29tZSBjb2RlIHRvIHRoZSBz dGFydCBvZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQgd2hpY2gKLSsjIHdpbGwgZmlu ZCBhbiBlY2hvIGNvbW1hbmQgd2hpY2ggZG9lc24ndCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCi0r QUNfREVGVU4oW19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNIXSwKLStbX0xUX0FDX1NIRUxMX0lO SVQoWwotKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0aGUgY29ycmVjdCBzaGVs bC4KLStTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKwotK2Nhc2UgWCRFQ0hPIGluCi0r WCotLWZhbGxiYWNrLWVjaG8pCi0rICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVvdGF0aW9uICh3 aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgotKyAgRUNITz1gZWNobyAiJEVDSE8iIHwgc2Vk ICdzLFxcXFxcWyRdXFxbJF0wLCdbJF0wJywnYAotKyAgOzsKLStlc2FjCi0rCi0rZWNobz0ke0VD SE8tZWNob30KLStpZiB0ZXN0ICJYWyRdMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSsgICMgRGlz Y2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgotKyAgc2hpZnQKLStlbGlm IHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSsgICMgQXZvaWQgaW5saW5l IGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKLSsgIDoKLStlbGlmIHRlc3QgIlhg KCRlY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyA7IHRoZW4KLSsgICMgWWlwcGVlLCAk ZWNobyB3b3JrcyEKLSsgIDoKLStlbHNlCi0rICAjIFJlc3RhcnQgdW5kZXIgdGhlIGNvcnJlY3Qg c2hlbGwuCi0rICBleGVjICRTSEVMTCAiWyRdMCIgLS1uby1yZWV4ZWMgJHsxKyJbJF1AIn0KLStm aQotKwotK2lmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSsgICMgdXNl ZCBhcyBmYWxsYmFjayBlY2hvCi0rICBzaGlmdAotKyAgY2F0IDw8RU9GCi0rWyRdKgotK0VPRgot KyAgZXhpdCAwCi0rZmkKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50 IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4KLSso dW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0raWYgdGVz dCAteiAiJEVDSE8iOyB0aGVuCi0raWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAh PSBYc2V0OyB0aGVuCi0rIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBs b25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0Ci0rICBmb3IgY21kIGluICdzZWQgNTBx ICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAnc2VkIDEwcSAiWyRdMCInICdzZWQgMnEgIlskXTAi JyAnZWNobyB0ZXN0JzsgZG8KLSsgICAgIyBleHBlY3RlZCBzaXplczogbGVzcyB0aGFuIDJLYiwg MUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVzLCAuLi4KLSsgICAgaWYgKGVjaG9fdGVzdF9zdHJpbmc9 YGV2YWwgJGNtZGApIDI+L2Rldi9udWxsICYmCi0rICAgICAgIGVjaG9fdGVzdF9zdHJpbmc9YGV2 YWwgJGNtZGAgJiYKLSsgICAgICAgKHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWCRlY2hv X3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGwKLSsgICAgdGhlbgotKyAgICAgIGJyZWFrCi0rICAg IGZpCi0rICBkb25lCi0rZmkKLSsKLStpZiB0ZXN0ICJYYCgkZWNobyAnXHQnKSAyPi9kZXYvbnVs bGAiID0gJ1hcdCcgJiYKLSsgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJGVjaG8gIiRlY2hvX3Rl c3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3Ry aW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgIyBUaGUg U29sYXJpcywgQUlYLCBhbmQgRGlnaXRhbCBVbml4IGRlZmF1bHQgZWNobyBwcm9ncmFtcyB1bnF1 b3RlCi0rICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHF1b3Rl IGJhY2tzbGFzaGVzIHVzaW5nCi0rICAjICAgZWNobyAiJHNvbWV0aGluZyIgfCBzZWQgJ3MvXFwv XFxcXC9nJwotKyAgIwotKyAgIyBTbywgZmlyc3Qgd2UgbG9vayBmb3IgYSB3b3JraW5nIGVjaG8g aW4gdGhlIHVzZXIncyBQQVRILgotKwotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rICBmb3IgZGlyIGluICRQQVRIIC91c3IvdWNiOyBkbwotKyAgICBJRlM9IiRs dF9zYXZlX2lmcyIKLSsgICAgaWYgKHRlc3QgLWYgJGRpci9lY2hvIHx8IHRlc3QgLWYgJGRpci9l Y2hvJGFjX2V4ZWV4dCkgJiYKLSsgICAgICAgdGVzdCAiWGAoJGRpci9lY2hvICdcdCcpIDI+L2Rl di9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJGRpci9l Y2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKyAgICAgICB0ZXN0ICJY JGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsgICAg ICBlY2hvPSIkZGlyL2VjaG8iCi0rICAgICAgYnJlYWsKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElG Uz0iJGx0X3NhdmVfaWZzIgotKwotKyAgaWYgdGVzdCAiWCRlY2hvIiA9IFhlY2hvOyB0aGVuCi0r ICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28gbG9vayBmb3IgYWx0ZXJuYXRp dmVzLgotKyAgICBpZiB0ZXN0ICJYYChwcmludCAtciAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hc dCcgJiYKLSsgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKHByaW50IC1yICIkZWNob190ZXN0 X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKyAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19z dHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsgICAgICAjIFRoaXMgc2hlbGwg aGFzIGEgYnVpbHRpbiBwcmludCAtciB0aGF0IGRvZXMgdGhlIHRyaWNrLgotKyAgICAgIGVjaG89 J3ByaW50IC1yJwotKyAgICBlbGlmICh0ZXN0IC1mIC9iaW4va3NoIHx8IHRlc3QgLWYgL2Jpbi9r c2gkYWNfZXhlZXh0KSAmJgotKwkgdGVzdCAiWCRDT05GSUdfU0hFTEwiICE9IFgvYmluL2tzaDsg dGhlbgotKyAgICAgICMgSWYgd2UgaGF2ZSBrc2gsIHRyeSBydW5uaW5nIGNvbmZpZ3VyZSBhZ2Fp biB3aXRoIGl0LgotKyAgICAgIE9SSUdJTkFMX0NPTkZJR19TSEVMTD0ke0NPTkZJR19TSEVMTC0v YmluL3NofQotKyAgICAgIGV4cG9ydCBPUklHSU5BTF9DT05GSUdfU0hFTEwKLSsgICAgICBDT05G SUdfU0hFTEw9L2Jpbi9rc2gKLSsgICAgICBleHBvcnQgQ09ORklHX1NIRUxMCi0rICAgICAgZXhl YyAkQ09ORklHX1NIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezErIlskXUAifQotKyAgICBlbHNl Ci0rICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgotKyAgICAgIGVjaG89J3ByaW50ZiAlc1xuJwot KyAgICAgIGlmIHRlc3QgIlhgKCRlY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgot KwkgZWNob190ZXN0aW5nX3N0cmluZz1gKCRlY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rl di9udWxsYCAmJgotKwkgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVz dF9zdHJpbmciOyB0aGVuCi0rCSMgQ29vbCwgcHJpbnRmIHdvcmtzCi0rCToKLSsgICAgICBlbGlm IGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICJbJF0wIiAtLWZh bGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYmCi0rCSAgIHRlc3QgIlgkZWNob190ZXN0 aW5nX3N0cmluZyIgPSAnWFx0JyAmJgotKwkgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJ TkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmlu ZyIpIDI+L2Rldi9udWxsYCAmJgotKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0g IlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsJQ09ORklHX1NIRUxMPSRPUklHSU5BTF9DT05G SUdfU0hFTEwKLSsJZXhwb3J0IENPTkZJR19TSEVMTAotKwlTSEVMTD0iJENPTkZJR19TSEVMTCIK LSsJZXhwb3J0IFNIRUxMCi0rCWVjaG89IiRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVj aG8iCi0rICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiWyRd MCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgotKwkgICB0ZXN0ICJYJGVj aG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgZWNob190ZXN0aW5nX3N0cmluZz1g KCRDT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmci KSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJY JGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rCWVjaG89IiRDT05GSUdfU0hFTEwgWyRdMCAtLWZh bGxiYWNrLWVjaG8iCi0rICAgICAgZWxzZQotKwkjIG1heWJlIHdpdGggYSBzbWFsbGVyIHN0cmlu Zy4uLgotKwlwcmV2PToKLSsKLSsJZm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAnc2VkIDJxICJbJF0w IicgJ3NlZCAxMHEgIlskXTAiJyAnc2VkIDIwcSAiWyRdMCInICdzZWQgNTBxICJbJF0wIic7IGRv Ci0rCSAgaWYgKHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWGBldmFsICRjbWRgIikgMj4v ZGV2L251bGwKLSsJICB0aGVuCi0rCSAgICBicmVhawotKwkgIGZpCi0rCSAgcHJldj0iJGNtZCIK LSsJZG9uZQotKwotKwlpZiB0ZXN0ICIkcHJldiIgIT0gJ3NlZCA1MHEgIlskXTAiJzsgdGhlbgot KwkgIGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJHByZXZgCi0rCSAgZXhwb3J0IGVjaG9fdGVzdF9z dHJpbmcKLSsJICBleGVjICR7T1JJR0lOQUxfQ09ORklHX1NIRUxMLSR7Q09ORklHX1NIRUxMLS9i aW4vc2h9fSAiWyRdMCIgJHsxKyJbJF1AIn0KLSsJZWxzZQotKwkgICMgT29wcy4gIFdlIGxvc3Qg Y29tcGxldGVseSwgc28ganVzdCBzdGljayB3aXRoIGVjaG8uCi0rCSAgZWNobz1lY2hvCi0rCWZp Ci0rICAgICAgZmkKLSsgICAgZmkKLSsgIGZpCi0rZmkKLStmaQotKwotKyMgQ29weSBlY2hvIGFu ZCBxdW90ZSB0aGUgY29weSBzdWl0YWJseSBmb3IgcGFzc2luZyB0byBsaWJ0b29sIGZyb20KLSsj IHRoZSBNYWtlZmlsZSwgaW5zdGVhZCBvZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwgd2hpY2ggaXMg dXNlZCBsYXRlci4KLStFQ0hPPSRlY2hvCi0raWYgdGVzdCAiWCRFQ0hPIiA9ICJYJENPTkZJR19T SEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyI7IHRoZW4KLSsgICBFQ0hPPSIkQ09ORklHX1NIRUxM IFxcXCRcWyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0rZmkKLSsKLStBQ19TVUJTVChFQ0hPKQotK10p XSkjIF9MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNICi0rCi0rCi0rIyBfTFRfQUNfTE9DSwotKyMg LS0tLS0tLS0tLS0KLStBQ19ERUZVTihbX0xUX0FDX0xPQ0tdLAotK1tBQ19BUkdfRU5BQkxFKFts aWJ0b29sLWxvY2tdLAotKyAgICBbQUNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1saWJ0b29sLWxv Y2tdLAotKwlbYXZvaWQgbG9ja2luZyAobWlnaHQgYnJlYWsgcGFyYWxsZWwgYnVpbGRzKV0pXSkK LSt0ZXN0ICJ4JGVuYWJsZV9saWJ0b29sX2xvY2siICE9IHhubyAmJiBlbmFibGVfbGlidG9vbF9s b2NrPXllcwotKwotKyMgU29tZSBmbGFncyBuZWVkIHRvIGJlIHByb3BhZ2F0ZWQgdG8gdGhlIGNv bXBpbGVyIG9yIGxpbmtlciBmb3IgZ29vZAotKyMgbGlidG9vbCBzdXBwb3J0LgotK2Nhc2UgJGhv c3QgaW4KLStpYTY0LSotaHB1eCopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNp bmcuCi0rICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgQUNfVFJZX0VW QUwoYWNfY29tcGlsZSk7IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4k YWNfb2JqZXh0YCBpbgotKyAgICAqRUxGLTMyKikKLSsgICAgICBIUFVYX0lBNjRfTU9ERT0iMzIi Ci0rICAgICAgOzsKLSsgICAgKkVMRi02NCopCi0rICAgICAgSFBVWF9JQTY0X01PREU9IjY0Igot KyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7Owot KyotKi1pcml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBl Y2hvICdbI11saW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0Ci0r ICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAgIGlmIHRlc3QgIiRsdF9jdl9w cm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVz dC4kYWNfb2JqZXh0YCBpbgotKyAgICAqMzItYml0KikKLSsgICAgICBMRD0iJHtMRC1sZH0gLW1l bGYzMmJzbWlwIgotKyAgICAgIDs7Ci0rICAgICpOMzIqKQotKyAgICAgIExEPSIke0xELWxkfSAt bWVsZjMyYm1pcG4zMiIKLSsgICAgICA7OwotKyAgICAqNjQtYml0KikKLSsgICAgICBMRD0iJHtM RC1sZH0gLW1lbGY2NGJtaXAiCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgIGVsc2UKLSsgICAg Y2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKyAgICAqMzItYml0 KikKLSsgICAgICBMRD0iJHtMRC1sZH0gLTMyIgotKyAgICAgIDs7Ci0rICAgICpOMzIqKQotKyAg ICAgIExEPSIke0xELWxkfSAtbjMyIgotKyAgICAgIDs7Ci0rICAgICo2NC1iaXQqKQotKyAgICAg IExEPSIke0xELWxkfSAtNjQiCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgIGZpCi0rICBmaQot KyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsKLSt4ODZfNjQtKmtmcmVlYnNkKi1nbnV8eDg2 XzY0LSpsaW51eCp8cHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCp8IFwKLStzMzkwKi0qbGlu dXgqfHNwYXJjKi0qbGludXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5n LgotKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFM KGFjX2NvbXBpbGUpOyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2Ag aW4KLSsgICAgKjMyLWJpdCopCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICAgeDg2XzY0 LSprZnJlZWJzZCotZ251KQotKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJz ZCIKLSsgICAgICAgICAgOzsKLSsgICAgICAgIHg4Nl82NC0qbGludXgqKQotKyAgICAgICAgICBM RD0iJHtMRC1sZH0gLW0gZWxmX2kzODYiCi0rICAgICAgICAgIDs7Ci0rICAgICAgICBwcGM2NC0q bGludXgqfHBvd2VycGM2NC0qbGludXgqKQotKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxm MzJwcGNsaW51eCIKLSsgICAgICAgICAgOzsKLSsgICAgICAgIHMzOTB4LSpsaW51eCopCi0rICAg ICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKLSsgICAgICAgICAgOzsKLSsgICAgICAg IHNwYXJjNjQtKmxpbnV4KikKLSsgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJj IgotKyAgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKyAgICAqNjQtYml0KikK LSsgICAgICBsaWJzdWZmPTY0Ci0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICAgeDg2XzY0 LSprZnJlZWJzZCotZ251KQotKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NF9m YnNkIgotKyAgICAgICAgICA7OwotKyAgICAgICAgeDg2XzY0LSpsaW51eCopCi0rICAgICAgICAg IExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0IgotKyAgICAgICAgICA7OwotKyAgICAgICAgcHBj Ki0qbGludXgqfHBvd2VycGMqLSpsaW51eCopCi0rICAgICAgICAgIExEPSIke0xELWxkfSAtbSBl bGY2NHBwYyIKLSsgICAgICAgICAgOzsKLSsgICAgICAgIHMzOTAqLSpsaW51eCopCi0rICAgICAg ICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zMzkwIgotKyAgICAgICAgICA7OwotKyAgICAgICAg c3BhcmMqLSpsaW51eCopCi0rICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIK LSsgICAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkK LSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rCi0rKi0qLXNjbzMuMnY1KikKLSsgICMgT24g U0NPIE9wZW5TZXJ2ZXIgNSwgd2UgbmVlZCAtYmVsZiB0byBnZXQgZnVsbC1mZWF0dXJlZCBiaW5h cmllcy4KLSsgIFNBVkVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKyAgQ0ZMQUdTPSIkQ0ZMQUdTIC1iZWxm IgotKyAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGZd LCBsdF9jdl9jY19uZWVkc19iZWxmLAotKyAgICBbQUNfTEFOR19QVVNIKEMpCi0rICAgICBBQ19U UllfTElOSyhbXSxbXSxbbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXNdLFtsdF9jdl9jY19uZWVkc19i ZWxmPW5vXSkKLSsgICAgIEFDX0xBTkdfUE9QXSkKLSsgIGlmIHRlc3QgeCIkbHRfY3ZfY2NfbmVl ZHNfYmVsZiIgIT0geCJ5ZXMiOyB0aGVuCi0rICAgICMgdGhpcyBpcyBwcm9iYWJseSBnY2MgMi44 LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBubyBuZWVkIGZvciAtYmVsZgotKyAgICBDRkxBR1M9IiRT QVZFX0NGTEFHUyIKLSsgIGZpCi0rICA7OwotK3NwYXJjKi0qc29sYXJpcyopCi0rICAjIEZpbmQg b3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3Qu JGFjX2V4dAotKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KLSsgICAgY2FzZSBg L3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgotKyAgICAqNjQtYml0KikKLSsgICAgICBjYXNl ICRsdF9jdl9wcm9nX2dudV9sZCBpbgotKyAgICAgIHllcyopIExEPSIke0xELWxkfSAtbSBlbGY2 NF9zcGFyYyIgOzsKLSsgICAgICAqKQotKyAgICAgICAgaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNv bmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCSAgTEQ9IiR7TEQt bGR9IC02NCIKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgZXNhYwot KyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rCi0rQUNfUFJPVklERV9JRkVMU0Uo W0FDX0xJQlRPT0xfV0lOMzJfRExMXSwKLStbKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0q LXB3MzIqKQotKyAgQUNfQ0hFQ0tfVE9PTChETExUT09MLCBkbGx0b29sLCBmYWxzZSkKLSsgIEFD X0NIRUNLX1RPT0woQVMsIGFzLCBmYWxzZSkKLSsgIEFDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2Jq ZHVtcCwgZmFsc2UpCi0rICA7OwotKyAgXSkKLStlc2FjCi0rCi0rbmVlZF9sb2Nrcz0iJGVuYWJs ZV9saWJ0b29sX2xvY2siCi0rCi0rXSkjIF9MVF9BQ19MT0NLCi0rCi0rCi0rIyBBQ19MSUJUT09M X0NPTVBJTEVSX09QVElPTihNRVNTQUdFLCBWQVJJQUJMRS1OQU1FLCBGTEFHUywKLSsjCQlbT1VU UFVULUZJTEVdLCBbQUNUSU9OLVNVQ0NFU1NdLCBbQUNUSU9OLUZBSUxVUkVdKQotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gY29tcGlsZXIgb3B0aW9uIHdvcmtzCi0rQUNf REVGVU4oW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwKLStbQUNfUkVRVUlSRShbTFRfQUNf UFJPR19TRURdKQotK0FDX0NBQ0hFX0NIRUNLKFskMV0sIFskMl0sCi0rICBbJDI9bm8KLSsgIGlm ZWxzZShbJDRdLCAsIFthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHRdLCBbYWNfb3V0Zmls ZT0kNF0pCi0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVz dC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iJDMiCi0rICAgIyBJbnNlcnQgdGhlIG9w dGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAj ICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUg ZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWlu IGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEg aHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9w dGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQu Ci0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6 LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBb W14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAotKyAgIC1lICdzOiQ6 ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVf XzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKLSsgICAoZXZhbCAiJGx0X2Nv bXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBjb25mdGVz dC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgIGVjaG8gIiRhc19tZTpfX29saW5lX186IFwk PyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICBpZiAoZXhpdCAkYWNfc3Rh dHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVy IGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0r ICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1 YWwgb3V0cHV0LgotKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRY c2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2Qn IGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0r ICAgICAgICQyPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRybSBjb25mdGVzdCoKLStdKQot KwotK2lmIHRlc3QgeCJbJF0kMiIgPSB4eWVzOyB0aGVuCi0rICAgIGlmZWxzZShbJDVdLCAsIDos IFskNV0pCi0rZWxzZQotKyAgICBpZmVsc2UoWyQ2XSwgLCA6LCBbJDZdKQotK2ZpCi0rXSkjIEFD X0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OCi0rCi0rCi0rIyBBQ19MSUJUT09MX0xJTktFUl9PUFRJ T04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCi0rIyAgICAgICAgICAgICAgICAgICAg ICAgICAgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hl Y2sgd2hldGhlciB0aGUgZ2l2ZW4gY29tcGlsZXIgb3B0aW9uIHdvcmtzCi0rQUNfREVGVU4oW0FD X0xJQlRPT0xfTElOS0VSX09QVElPTl0sCi0rW0FDX1JFUVVJUkUoW0xUX0FDX1BST0dfU0VEXSlk bmwKLStBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAotKyAgWyQyPW5vCi0rICAgc2F2ZV9MREZM QUdTPSIkTERGTEFHUyIKLSsgICBMREZMQUdTPSIkTERGTEFHUyAkMyIKLSsgICBlY2hvICIkbHRf c2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBpZiAoZXZhbCAk YWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRo ZW4KLSsgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlv biBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5p bmdzCi0rICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICAgICAjIEFwcGVu ZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgotKyAgICAgICBjYXQgY29uZnRlc3QuZXJy IDE+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgICAgICRlY2hvICJYJF9sdF9saW5rZXJfYm9pbGVy cGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcv XiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlm ZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICAk Mj15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAgICAgJDI9eWVzCi0rICAgICBmaQot KyAgIGZpCi0rICAgJHJtIC1yIGNvbmZ0ZXN0KgotKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1Mi Ci0rXSkKLSsKLStpZiB0ZXN0IHgiWyRdJDIiID0geHllczsgdGhlbgotKyAgICBpZmVsc2UoWyQ0 XSwgLCA6LCBbJDRdKQotK2Vsc2UKLSsgICAgaWZlbHNlKFskNV0sICwgOiwgWyQ1XSkKLStmaQot K10pIyBBQ19MSUJUT09MX0xJTktFUl9PUFRJT04KLSsKLSsKLSsjIEFDX0xJQlRPT0xfU1lTX01B WF9DTURfTEVOCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19M SUJUT09MX1NZU19NQVhfQ01EX0xFTl0sCi0rWyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2Yg Y29tbWFuZCBsaW5lIGFyZ3VtZW50cwotK0FDX01TR19DSEVDS0lORyhbdGhlIG1heGltdW0gbGVu Z3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHNdKQotK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lz X21heF9jbWRfbGVuXSwgW2RubAotKyAgaT0wCi0rICB0ZXN0c3RyaW5nPSJBQkNEIgotKwotKyAg Y2FzZSAkYnVpbGRfb3MgaW4KLSsgIG1zZG9zZGpncHAqKQotKyAgICAjIE9uIERKR1BQLCB0aGlz IHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJjCi0r ICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEg YnVmZmVyIG92ZXJydW4KLSsgICAgIyBkdXJpbmcgZ2xvYiBleHBhbnNpb24pLiAgRXZlbiBpZiBp dCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMKLSsgICAgIyBjaGVjayB3b3VsZCBiZSBs YXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4 ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKLSsgICAgOzsKLSsKLSsgIGdudSopCi0rICAgICMg VW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3QgcmVxdWlyZWQgYmVjYXVzZSB0aGVyZSBp cwotKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50 cy4KLSsgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2 ZXIKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xOwotKyAgICA7OwotKwotKyAgY3lnd2lu KiB8IG1pbmd3KikKLSsgICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0 IHN1Y2NlZWRzLCBidXQgdGFrZXMKLSsgICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3Rz dHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KLSsgICAgIyBXb3JzZSwgc2luY2UgOXgvTUUgYXJl IG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywKLSsgICAgIyB5b3UgZW5kIHVwIHdpdGgg YSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0aCBwYXRpZW5jZQotKyAgICAjIHRo ZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2 aykuCi0rICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBwdW50OiB1c2UgdGhlIG1pbmltdW0gbGlu ZWxlbmd0aCByZXBvcnRlZCBieQotKyAgICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3Jt czogODE5MiAob24gTlQvMksvWFApLgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsK LSsgICAgOzsKLSsKLSsgIGFtaWdhb3MqKQotKyAgICAjIE9uIEFtaWdhT1Mgd2l0aCBwZGtzaCwg dGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBsaXRlcmFsbHkuCi0rICAgICMgU28gd2UganVzdCBwdW50 IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIuCi0rICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwotKyAgbmV0YnNkKiB8IGZyZWVic2QqIHwgb3Bl bmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikKLSsgICAgIyBUaGlzIGhhcyBiZWVuIGFyb3Vu ZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0LiAgTGlrZWx5IGZ1cnRoZXIuCi0rICAgIGlmIHRlc3Qg LXggL3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvc2Jp bi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsaWYgdGVzdCAteCAvdXNyL3NiaW4vc3lz Y3RsOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvdXNyL3NiaW4vc3lzY3Rs IC1uIGtlcm4uYXJnbWF4YAotKyAgICBlbHNlCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQgZm9yIGFsbCBCU0RzCi0rICAgIGZpCi0rICAgICMgQW5k IGFkZCBhIHNhZmV0eSB6b25lCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRf Y3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhw ciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCi0rICAgIDs7Ci0rCi0rICBpbnRlcml4KikK LSsgICAgIyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIxNDQgYW5kIGhhcmRjb2RlIGl0IHdpdGggYSBz YWZldHkgem9uZSAobGlrZSBCU0QpCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xOTY2MDgK LSsgICAgOzsKLSsKLSsgIG9zZiopCi0rICAgICMgRHIuIEhhbnMgRWtrZWhhcmQgUGxlc3NlciBy ZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBwYW5pYyBydW5uaW5nIGNvbmZpZ3VyZQotKyAgICAjIGR1 ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2FibGVfYXJnX2xpbWl0IGlzIDEgb24gVHJ1NjQu IEl0IGlzIG5vdAotKyAgICAjIG5pY2UgdG8gY2F1c2Uga2VybmVsIHBhbmljcyBzbyBsZXRzIGF2 b2lkIHRoZSBsb29wIGJlbG93LgotKyAgICAjIEZpcnN0IHNldCBhIHJlYXNvbmFibGUgZGVmYXVs dC4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE2Mzg0Ci0rICAgICMKLSsgICAgaWYgdGVz dCAteCAvc2Jpbi9zeXNjb25maWc7IHRoZW4KLSsgICAgICBjYXNlIGAvc2Jpbi9zeXNjb25maWcg LXEgcHJvYyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0YCBpbgotKyAgICAgICAgKjEqKSBsdF9jdl9z eXNfbWF4X2NtZF9sZW49LTEgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICAgIDs7Ci0rICBz Y28zLjJ2NSopCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMDI0MDAKLSsgICAgOzsKLSsg IHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcyKikKLSsgICAga2FyZ21heD1gZ3JlcCBBUkdf TUFYIC9ldGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rldi9udWxsYAotKyAgICBpZiB0ZXN0IC1uICIk a2FyZ21heCI7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGVjaG8gJGthcmdt YXggfCBzZWQgJ3MvLipbWyAJXV0vLydgCi0rICAgIGVsc2UKLSsgICAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49MzI3NjgKLSsgICAgZmkKLSsgICAgOzsKLSsgICopCi0rICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rldi9udWxsYAotKyAgICBpZiB0ZXN0 IC1uICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19tYXhf Y21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCi0rICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKLSsgICAg ZWxzZQotKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19Ci0rICAg ICAgd2hpbGUgKHRlc3QgIlgiYCRTSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyAiWCR0ZXN0c3Ry aW5nIiAyPi9kZXYvbnVsbGAgXAotKwkgICAgICAgPSAiWFgkdGVzdHN0cmluZyIpID4vZGV2L251 bGwgMj4mMSAmJgotKwkgICAgICBuZXdfcmVzdWx0PWBleHByICJYJHRlc3RzdHJpbmciIDogIi4q IiAyPiYxYCAmJgotKwkgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49JG5ld19yZXN1bHQgJiYK LSsJICAgICAgdGVzdCAkaSAhPSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCi0rICAgICAg ZG8KLSsgICAgICAgIGk9YGV4cHIgJGkgKyAxYAotKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0 cmluZyR0ZXN0c3RyaW5nCi0rICAgICAgZG9uZQotKyAgICAgIHRlc3RzdHJpbmc9Ci0rICAgICAg IyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBj YW4gdGFjayBvbiBtYXNzaXZlCi0rICAgICAgIyBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1l bnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlIGxpbmtlci4KLSsgICAgICAjIEl0IGFwcGVh cnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KLSsgICAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyAyYAotKyAgICBmaQotKyAg ICA7OwotKyAgZXNhYwotK10pCi0raWYgdGVzdCAtbiAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIDsg dGhlbgotKyAgQUNfTVNHX1JFU1VMVCgkbHRfY3Zfc3lzX21heF9jbWRfbGVuKQotK2Vsc2UKLSsg IEFDX01TR19SRVNVTFQobm9uZSkKLStmaQotK10pIyBBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xF TgotKwotKwotKyMgX0xUX0FDX0NIRUNLX0RMRkNOCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLStB Q19ERUZVTihbX0xUX0FDX0NIRUNLX0RMRkNOXSwKLStbQUNfQ0hFQ0tfSEVBREVSUyhkbGZjbi5o KWRubAotK10pIyBfTFRfQUNfQ0hFQ0tfRExGQ04KLSsKLSsKLSsjIF9MVF9BQ19UUllfRExPUEVO X1NFTEYgKEFDVElPTi1JRi1UUlVFLCBBQ1RJT04tSUYtVFJVRS1XLVVTQ09SRSwKLSsjICAgICAg ICAgICAgICAgICAgICAgICAgICAgQUNUSU9OLUlGLUZBTFNFLCBBQ1RJT04tSUYtQ1JPU1MtQ09N UElMSU5HKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW19MVF9BQ19UUllfRExPUEVOX1NF TEZdLAotK1tBQ19SRVFVSVJFKFtfTFRfQUNfQ0hFQ0tfRExGQ05dKWRubAotK2lmIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKLSsgIFskNF0KLStlbHNlCi0rICBsdF9kbHVu a25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCi0rICBsdF9zdGF0 dXM9JGx0X2RsdW5rbm93bgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotK1sjbGlu ZSBfX29saW5lX18gImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsKLSsjaWYg SEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2VuZGlmCi0rCi0rI2luY2x1ZGUg PHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xPQkFMCi0rIyAgZGVmaW5lIExUX0RMR0xPQkFM CQlSVExEX0dMT0JBTAotKyNlbHNlCi0rIyAgaWZkZWYgRExfR0xPQkFMCi0rIyAgICBkZWZpbmUg TFRfRExHTE9CQUwJCURMX0dMT0JBTAotKyMgIGVsc2UKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JB TAkJMAotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExU X0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQotKyAgIGZpbmQgb3V0IGl0 IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KLSsjaWZuZGVmIExUX0RMTEFaWV9P Ul9OT1cKLSsjICBpZmRlZiBSVExEX0xBWlkKLSsjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9X CQlSVExEX0xBWlkKLSsjICBlbHNlCi0rIyAgICBpZmRlZiBETF9MQVpZCi0rIyAgICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCi0rIyAgICBlbHNlCi0rIyAgICAgIGlmZGVmIFJU TERfTk9XCi0rIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKLSsjICAg ICAgZWxzZQotKyMgICAgICAgIGlmZGVmIERMX05PVwotKyMgICAgICAgICAgZGVmaW5lIExUX0RM TEFaWV9PUl9OT1cJRExfTk9XCi0rIyAgICAgICAgZWxzZQotKyMgICAgICAgICAgZGVmaW5lIExU X0RMTEFaWV9PUl9OT1cJMAotKyMgICAgICAgIGVuZGlmCi0rIyAgICAgIGVuZGlmCi0rIyAgICBl bmRpZgotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJu ICJDIiB2b2lkIGV4aXQgKGludCk7Ci0rI2VuZGlmCi0rCi0rdm9pZCBmbm9yZCgpIHsgaW50IGk9 NDI7fQotK2ludCBtYWluICgpCi0rewotKyAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExH TE9CQUx8TFRfRExMQVpZX09SX05PVyk7Ci0rICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93bjsK LSsKLSsgIGlmIChzZWxmKQotKyAgICB7Ci0rICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIp KSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7Ci0rICAgICAgZWxzZSBpZiAoZGxzeW0o IHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKLSsgICAgICAvKiBk bGNsb3NlIChzZWxmKTsgKi8KLSsgICAgfQotKyAgZWxzZQotKyAgICBwdXRzIChkbGVycm9yICgp KTsKLSsKLSsgICAgZXhpdCAoc3RhdHVzKTsKLSt9XQotK0VPRgotKyAgaWYgQUNfVFJZX0VWQUwo YWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhl bgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JkFTX01FU1NBR0VfTE9HX0ZEIDI+L2Rldi9u dWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCi0rICAgICAg eCRsdF9kbG5vX3VzY29yZSkgJDEgOzsKLSsgICAgICB4JGx0X2RsbmVlZF91c2NvcmUpICQyIDs7 Ci0rICAgICAgeCRsdF9kbHVua25vd258eCopICQzIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UgOgot KyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAotKyAgICAkMwotKyAgZmkKLStmaQotK3JtIC1mciBj b25mdGVzdCoKLStdKSMgX0xUX0FDX1RSWV9ETE9QRU5fU0VMRgotKwotKwotKyMgQUNfTElCVE9P TF9ETE9QRU5fU0VMRgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19M SUJUT09MX0RMT1BFTl9TRUxGXSwKLStbQUNfUkVRVUlSRShbX0xUX0FDX0NIRUNLX0RMRkNOXSlk bmwKLStpZiB0ZXN0ICJ4JGVuYWJsZV9kbG9wZW4iICE9IHh5ZXM7IHRoZW4KLSsgIGVuYWJsZV9k bG9wZW49dW5rbm93bgotKyAgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24KLSsgIGVuYWJsZV9k bG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93bgotK2Vsc2UKLSsgIGx0X2N2X2Rsb3Blbj1ubwotKyAg bHRfY3ZfZGxvcGVuX2xpYnM9Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBiZW9zKikKLSsg ICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2FkZF9vbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0r ICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcwotKyAgICA7OwotKwotKyAgbWluZ3cqIHwgcHczMiop Ci0rICAgIGx0X2N2X2Rsb3Blbj0iTG9hZExpYnJhcnkiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJz PQotKyAgIDs7Ci0rCi0rICBjeWd3aW4qKQotKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKLSsg ICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgOzsKLSsKLSsgIGRhcndpbiopCi0rICAjIGlmIGxp YmRsIGlzIGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBpdAotKyAgICBBQ19DSEVD S19MSUIoW2RsXSwgW2Rsb3Blbl0sCi0rCQlbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rs b3Blbl9saWJzPSItbGRsIl0sWwotKyAgICBsdF9jdl9kbG9wZW49ImR5bGQiCi0rICAgIGx0X2N2 X2Rsb3Blbl9saWJzPQotKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKLSsgICAgXSkKLSsgICA7 OwotKwotKyAgKikKLSsgICAgQUNfQ0hFQ0tfRlVOQyhbc2hsX2xvYWRdLAotKwkgIFtsdF9jdl9k bG9wZW49InNobF9sb2FkIl0sCi0rICAgICAgW0FDX0NIRUNLX0xJQihbZGxkXSwgW3NobF9sb2Fk XSwKLSsJICAgIFtsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxk bGQiXSwKLSsJW0FDX0NIRUNLX0ZVTkMoW2Rsb3Blbl0sCi0rCSAgICAgIFtsdF9jdl9kbG9wZW49 ImRsb3BlbiJdLAotKwkgIFtBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCi0rCQlbbHRfY3Zf ZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0sCi0rCSAgICBbQUNfQ0hF Q0tfTElCKFtzdmxkXSwgW2Rsb3Blbl0sCi0rCQkgIFtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRf Y3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCJdLAotKwkgICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRdLCBb ZGxkX2xpbmtdLAotKwkJICAgIFtsdF9jdl9kbG9wZW49ImRsZF9saW5rIiBsdF9jdl9kbG9wZW5f bGlicz0iLWxkbGQiXSkKLSsJICAgICAgXSkKLSsJICAgIF0pCi0rCSAgXSkKLSsJXSkKLSsgICAg ICBdKQotKyAgICA7OwotKyAgZXNhYwotKwotKyAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW4iICE9 IHhubzsgdGhlbgotKyAgICBlbmFibGVfZGxvcGVuPXllcwotKyAgZWxzZQotKyAgICBlbmFibGVf ZGxvcGVuPW5vCi0rICBmaQotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuIGluCi0rICBkbG9wZW4p Ci0rICAgIHNhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAgdGVzdCAieCRhY19jdl9oZWFk ZXJfZGxmY25faCIgPSB4eWVzICYmIENQUEZMQUdTPSIkQ1BQRkxBR1MgLURIQVZFX0RMRkNOX0gi Ci0rCi0rICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgIHdsPSRsdF9wcm9nX2NvbXBp bGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj XCIKLSsKLSsgICAgc2F2ZV9MSUJTPSIkTElCUyIKLSsgICAgTElCUz0iJGx0X2N2X2Rsb3Blbl9s aWJzICRMSUJTIgotKwotKyAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciBhIHByb2dyYW0gY2Fu IGRsb3BlbiBpdHNlbGZdLAotKwkgIGx0X2N2X2Rsb3Blbl9zZWxmLCBbZG5sCi0rCSAgX0xUX0FD X1RSWV9ETE9QRU5fU0VMRigKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcywgbHRfY3ZfZGxv cGVuX3NlbGY9eWVzLAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGY9bm8sIGx0X2N2X2Rsb3Blbl9z ZWxmPWNyb3NzKQotKyAgICBdKQotKwotKyAgICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxm IiA9IHh5ZXM7IHRoZW4KLSsgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxB R1M9XCJcJExERkxBR1MgJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSsgICAgICBBQ19DQUNI RV9DSEVDSyhbd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBp dHNlbGZdLAotKyAgICAJICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMsIFtkbmwKLSsJICBfTFRf QUNfVFJZX0RMT1BFTl9TRUxGKAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcywg bHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcywKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0 YXRpYz1ubywgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1jcm9zcykKLSsgICAgICBdKQotKyAg ICBmaQotKwotKyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCi0rICAgIExERkxBR1M9IiRz YXZlX0xERkxBR1MiCi0rICAgIExJQlM9IiRzYXZlX0xJQlMiCi0rICAgIDs7Ci0rICBlc2FjCi0r Ci0rICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZiBpbgotKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVu X3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxmIDs7Ci0rICAqKSBlbmFibGVfZGxvcGVuX3NlbGY9dW5r bm93biA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIGlu Ci0rICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rsb3Blbl9zZWxm X3N0YXRpYyA7OwotKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duIDs7Ci0r ICBlc2FjCi0rZmkKLStdKSMgQUNfTElCVE9PTF9ETE9QRU5fU0VMRgotKwotKwotKyMgQUNfTElC VE9PTF9QUk9HX0NDX0NfTyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIENoZWNrIHRvIHNlZSBpZiBvcHRpb25zIC1jIGFuZCAtbyBhcmUgc2ltdWx0 YW5lb3VzbHkgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJP R19DQ19DX09dLAotK1tBQ19SRVFVSVJFKFtMVF9BQ19QUk9HX1NFRF0pZG5sCi0rQUNfUkVRVUlS RShbX0xUX0FDX1NZU19DT01QSUxFUl0pZG5sCi0rQUNfQ0FDSEVfQ0hFQ0soW2lmICRjb21waWxl ciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHRdLAotKyAgW19MVF9BQ19UQUdWQVIobHRf Y3ZfcHJvZ19jb21waWxlcl9jX28sICQxKV0sCi0rICBbX0xUX0FDX1RBR1ZBUihsdF9jdl9wcm9n X2NvbXBpbGVyX2NfbywgJDEpPW5vCi0rICAgJHJtIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0r ICAgbWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVj aG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwot KyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAj IEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlh YmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwg b3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRv ZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxh ciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHku Ci0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6 LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBb W14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAotKyAgIC1lICdzOiQ6 ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVf XzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKLSsgICAoZXZhbCAiJGx0X2Nv bXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgb3V0 L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgZWNobyAiJGFzX21lOl9fb2xp bmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgIGlmIChleGl0 ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0Ci0rICAgdGhl bgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRp b24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJu aW5ncwotKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1l ICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcg b3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIG91 dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIg Pi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBfTFRfQUNfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGls ZXJfY19vLCAkMSk9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgY2htb2QgdSt3IC4gMj4mQVNf TUVTU0FHRV9MT0dfRkQKLSsgICAkcm0gY29uZnRlc3QqCi0rICAgIyBTR0kgQysrIGNvbXBpbGVy IHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgotKyAgICMgdGVtcGxhdGUg aW5zdGFudGlhdGlvbgotKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRybSBvdXQvaWlfZmls ZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKLSsgICAkcm0gb3V0LyogJiYgcm1kaXIgb3V0Ci0r ICAgY2QgLi4KLSsgICBybWRpciBjb25mdGVzdAotKyAgICRybSBjb25mdGVzdCoKLStdKQotK10p IyBBQ19MSUJUT09MX1BST0dfQ0NfQ19PCi0rCi0rCi0rIyBBQ19MSUJUT09MX1NZU19IQVJEX0xJ TktfTE9DS1MoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIENoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gZG8gaGFyZCBsaW5rcyB0byBsb2Nr IHNvbWUgZmlsZXMgaWYgbmVlZGVkCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0hBUkRfTElO S19MT0NLU10sCi0rW0FDX1JFUVVJUkUoW19MVF9BQ19MT0NLXSlkbmwKLSsKLStoYXJkX2xpbmtz PSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJF9MVF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxl cl9jX28sICQxKSIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMg ZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUg dXNlcgotKyAgQUNfTVNHX0NIRUNLSU5HKFtpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3Nd KQotKyAgaGFyZF9saW5rcz15ZXMKLSsgICRybSBjb25mdGVzdCoKLSsgIGxuIGNvbmZ0ZXN0LmEg Y29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB0b3VjaCBjb25mdGVz dC5hCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCi0r ICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubwot KyAgQUNfTVNHX1JFU1VMVChbJGhhcmRfbGlua3NdKQotKyAgaWYgdGVzdCAiJGhhcmRfbGlua3Mi ID0gbm87IHRoZW4KLSsgICAgQUNfTVNHX1dBUk4oW2AkQ0MnIGRvZXMgbm90IHN1cHBvcnQgYC1j IC1vJywgc28gYG1ha2UgLWonIG1heSBiZSB1bnNhZmVdKQotKyAgICBuZWVkX2xvY2tzPXdhcm4K LSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0rXSkjIEFDX0xJQlRPT0xfU1lT X0hBUkRfTElOS19MT0NLUwotKwotKwotKyMgQUNfTElCVE9PTF9PQkpESVIKLSsjIC0tLS0tLS0t LS0tLS0tLS0tCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfT0JKRElSXSwKLStbQUNfQ0FDSEVfQ0hF Q0soW2ZvciBvYmpkaXJdLCBbbHRfY3Zfb2JqZGlyXSwKLStbcm0gLWYgLmxpYnMgMj4vZGV2L251 bGwKLStta2RpciAubGlicyAyPi9kZXYvbnVsbAotK2lmIHRlc3QgLWQgLmxpYnM7IHRoZW4KLSsg IGx0X2N2X29iamRpcj0ubGlicwotK2Vsc2UKLSsgICMgTVMtRE9TIGRvZXMgbm90IGFsbG93IGZp bGVuYW1lcyB0aGF0IGJlZ2luIHdpdGggYSBkb3QuCi0rICBsdF9jdl9vYmpkaXI9X2xpYnMKLStm aQotK3JtZGlyIC5saWJzIDI+L2Rldi9udWxsXSkKLStvYmpkaXI9JGx0X2N2X29iamRpcgotK10p IyBBQ19MSUJUT09MX09CSkRJUgotKwotKwotKyMgQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RF X0xJQlBBVEgoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgaGFyZGNvZGluZyBhdHRyaWJ1dGVzLgotK0FDX0RFRlVO KFtBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSF0sCi0rW0FDX01TR19DSEVDS0lO RyhbaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtc10pCi0rX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT0KLStpZiB0ZXN0IC1uICIkX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkiIHx8IFwKLSsgICB0ZXN0IC1uICIkX0xU X0FDX1RBR1ZBUihydW5wYXRoX3ZhciwgJDEpIiB8fCBcCi0rICAgdGVzdCAiWCRfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpIiA9ICJYeWVzIiA7IHRoZW4KLSsKLSsgICMgV2Ug Y2FuIGhhcmRjb2RlIG5vbi1leGlzdGFudCBkaXJlY3Rvcmllcy4KLSsgIGlmIHRlc3QgIiRfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpIiAhPSBubyAmJgotKyAgICAgIyBJZiB0aGUg b25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQot KyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBp bnN0YWxsZWQgbGlicmFyeQotKyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGgg YSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQotKyAgICAgIyMgdGVzdCAiJF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpIiAhPSBubyAmJgotKyAgICAgdGVzdCAiJF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpIiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtp bmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAg ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPXJlbGluawotKyAgZWxzZQotKyAg ICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBu b25leGlzdGluZyBkaXJzLgotKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEp PWltbWVkaWF0ZQotKyAgZmkKLStlbHNlCi0rICAjIFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGlu Zywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGluZwotKyAgIyBkaXJlY3Rvcmll cy4KLSsgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9dW5zdXBwb3J0ZWQKLStm aQotK0FDX01TR19SRVNVTFQoWyRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpXSkK LSsKLStpZiB0ZXN0ICIkX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKSIgPSByZWxp bms7IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAotKyAgZW5h YmxlX2Zhc3RfaW5zdGFsbD1ubwotK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aCIgPSB5ZXMgfHwKLSsgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCi0r ICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKLSsgIGVuYWJsZV9mYXN0X2lu c3RhbGw9bmVlZGxlc3MKLStmaQotK10pIyBBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElC UEFUSAotKwotKwotKyMgQUNfTElCVE9PTF9TWVNfTElCX1NUUklQCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLStBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfTElCX1NUUklQXSwKLStbc3Ry aXBsaWI9Ci0rb2xkX3N0cmlwbGliPQotK0FDX01TR19DSEVDS0lORyhbd2hldGhlciBzdHJpcHBp bmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlXSkKLStpZiB0ZXN0IC1uICIkU1RSSVAiICYmICRTVFJJ UCAtViAyPiYxIHwgZ3JlcCAiR05VIHN0cmlwIiA+L2Rldi9udWxsOyB0aGVuCi0rICB0ZXN0IC16 ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgot KyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVk ZWQiCi0rICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotK2Vsc2UKLSsjIEZJWE1FIC0gaW5zZXJ0IHNv bWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91Z2gKLSsgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICBkYXJ3aW4qKQotKyAgICAgICBpZiB0ZXN0IC1uICIkU1RSSVAiIDsg dGhlbgotKyAgICAgICAgIHN0cmlwbGliPSIkU1RSSVAgLXgiCi0rICAgICAgICAgb2xkX3N0cmlw bGliPSIkU1RSSVAgLVMiCi0rICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAg ZWxzZQotKyAgQUNfTVNHX1JFU1VMVChbbm9dKQotK2ZpCi0rICAgICAgIDs7Ci0rICAgKikKLSsg IEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgOzsKLSsgIGVzYWMKLStmaQotK10pIyBBQ19MSUJU T09MX1NZU19MSUJfU1RSSVAKLSsKLSsKLSsjIEFDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VS Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUE9SVE1FIEZpbGwgaW4geW91 ciBsZC5zbyBjaGFyYWN0ZXJpc3RpY3MKLStBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfRFlOQU1J Q19MSU5LRVJdLAotK1tBQ19SRVFVSVJFKFtMVF9BQ19QUk9HX1NFRF0pZG5sCi0rQUNfTVNHX0NI RUNLSU5HKFtkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3NdKQotK2xpYnJhcnlfbmFtZXNf c3BlYz0KLStsaWJuYW1lX3NwZWM9J2xpYiRuYW1lJwotK3NvbmFtZV9zcGVjPQotK3NocmV4dF9j bWRzPSIuc28iCi0rcG9zdGluc3RhbGxfY21kcz0KLStwb3N0dW5pbnN0YWxsX2NtZHM9Ci0rZmlu aXNoX2NtZHM9Ci0rZmluaXNoX2V2YWw9Ci0rc2hsaWJwYXRoX3Zhcj0KLStzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9dW5rbm93bgotK3ZlcnNpb25fdHlwZT1ub25lCi0rZHluYW1pY19saW5r ZXI9IiRob3N0X29zIGxkLnNvIgotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91 c3IvbGliIgotK200X2lmKCQxLFtdLFsKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAg Y2FzZSAkaG9zdF9vcyBpbgotKyAgICBkYXJ3aW4qKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczov LC9MUi8iIDs7Ci0rICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8iIDs7Ci0rICBlc2Fj Ci0rICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRs dF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotKyAg aWYgZWNobyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgZ3JlcCAnOycgPi9kZXYvbnVsbCA7IHRo ZW4KLSsgICAgIyBpZiB0aGUgcGF0aCBjb250YWlucyAiOyIgdGhlbiB3ZSBhc3N1bWUgaXQgdG8g YmUgdGhlIHNlcGFyYXRvcgotKyAgICAjIG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFy ZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKLSsgICAgIyBhc3N1bWVkIHRoYXQg bm8gcGFydCBvZiBhIG5vcm1hbCBwYXRobmFtZSBjb250YWlucyAiOyIgYnV0IHRoYXQgc2hvdWxk Ci0rICAgICMgb2theSBpbiB0aGUgcmVhbCB3b3JsZCB3aGVyZSAiOyIgaW4gZGlycGF0aHMgaXMg aXRzZWxmIHByb2JsZW1hdGljLgotKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkbHRf c2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKLSsgIGVsc2UKLSsgICAgbHRf c2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUg InMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICBmaQotKyAgIyBPaywgbm93IHdlIGhhdmUgdGhl IHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRocm91Z2ggaXQKLSsgICMg YW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5LgotKyAgbHRfdG1wX2x0X3NlYXJjaF9w YXRoX3NwZWM9Ci0rICBsdF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQRkxBR1MgJENGTEFHUyAkTERG TEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rldi9udWxsYAotKyAgZm9yIGx0X3N5 c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbwotKyAgICBpZiB0ZXN0IC1kICIkbHRf c3lzX3BhdGgvJGx0X211bHRpX29zX2RpciI7IHRoZW4KLSsgICAgICBsdF90bXBfbHRfc2VhcmNo X3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aC8kbHRf bXVsdGlfb3NfZGlyIgotKyAgICBlbHNlCi0rICAgICAgdGVzdCAtZCAiJGx0X3N5c19wYXRoIiAm JiBcCi0rCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRo X3NwZWMgJGx0X3N5c19wYXRoIgotKyAgICBmaQotKyAgZG9uZQotKyAgbHRfc2VhcmNoX3BhdGhf c3BlYz1gZWNobyAkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgfCBhd2sgJwotK0JFR0lOIHtS Uz0iICI7IEZTPSIvfFxuIjt9IHsKLSsgIGx0X2Zvbz0iIjsKLSsgIGx0X2NvdW50PTA7Ci0rICBm b3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0X2ktLSkgewotKyAgICBpZiAoJGx0X2kgIT0gIiIg JiYgJGx0X2kgIT0gIi4iKSB7Ci0rICAgICAgaWYgKCRsdF9pID09ICIuLiIpIHsKLSsgICAgICAg IGx0X2NvdW50Kys7Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIGlmIChsdF9jb3VudCA9PSAw KSB7Ci0rICAgICAgICAgIGx0X2Zvbz0iLyIgJGx0X2kgbHRfZm9vOwotKyAgICAgICAgfSBlbHNl IHsKLSsgICAgICAgICAgbHRfY291bnQtLTsKLSsgICAgICAgIH0KLSsgICAgICB9Ci0rICAgIH0K LSsgIH0KLSsgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJlcVtbbHRfZm9vXV0rKzsgfQotKyAg aWYgKGx0X2ZyZXFbW2x0X2Zvb11dID09IDEpIHsgcHJpbnQgbHRfZm9vOyB9Ci0rfSdgCi0rICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8gJGx0X3NlYXJjaF9wYXRoX3NwZWNgCi0rZWxz ZQotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIC91c3IvbG9jYWwv bGliIgotK2ZpXSkKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgotK2hhcmRjb2RlX2ludG9fbGli cz1ubwotKwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0 IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0 IGFyZ3VtZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgot K2FpeDMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKLSsg IHNobGlicGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBz dXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgotKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIDs7 Ci0rCi0rYWl4W1s0LTldXSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3By ZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0r ICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAgICAjIEFJWCA1IHN1cHBvcnRz IElBNjQKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICi0rICBlbHNlCi0rICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3Vs ZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKLSsgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMu ICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAotKyAgICAjIHRoZSBsaW5lIGAjISAu Jy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCi0rICAgICMgZGVw ZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGlu Ci0rICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCi0rICAg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBhaXg0IHwgYWl4NC5bWzAxXV0gfCBhaXg0LltbMDFd XS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0g MiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMgJwotKwkgICBlY2hv ICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8IGdyZXAgeWVzID4gL2Rldi9udWxsOyB0aGVuCi0r CToKLSsgICAgICBlbHNlCi0rCWNhbl9idWlsZF9zaGFyZWQ9bm8KLSsgICAgICBmaQotKyAgICAg IDs7Ci0rICAgIGVzYWMKLSsgICAgIyBBSVggKG9uIFBvd2VyKikgaGFzIG5vIHZlcnNpb25pbmcg c3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNvZGUgY29ycmVjdAotKyAgICAj IHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVyc2lvbmluZyBz dXBwb3J0IHRvCi0rICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3MgY2FuIGJlIHVz ZWZ1bCBpbiBmdXR1cmUuCi0rICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9 IHllczsgdGhlbgotKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAob24gQUlYIDQu MiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbwotKyAgICAgICMgaW5zdGVhZCBvZiBsaWI8bmFt ZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUgbm90Ci0rICAgICAgIyB0eXBp Y2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBlbHNl Ci0rICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJp ZXMgdGhyb3VnaCBBSVg0LjIKLSsgICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFyZSBub3QgZG9p bmcgcnVuIHRpbWUgbGlua2luZy4KLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKLSsgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBmaQotKyAgICBzaGxpYnBhdGhf dmFyPUxJQlBBVEgKLSsgIGZpCi0rICA7OwotKwotK2FtaWdhb3MqKQotKyAgbGlicmFyeV9uYW1l c19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICMgQ3JlYXRlICR7bGli bmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMuCi0rICBmaW5pc2hfZXZhbD0n Zm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5h bWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbW14vXV0qXClcLml4bGli cmFyeSQlXDElJ1wnJ2A7IHRlc3QgJHJtIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5h OyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnku YSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwg ZXhpdCAxOyBkb25lJwotKyAgOzsKLSsKLStiZW9zKikKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQu c28iCi0rICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAotKyAgOzsKLSsKLStic2RpW1s0NV1d KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRf ZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGli ZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGli IC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3No bGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgotKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25m IGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKLSsgICMgL3Vzci9YMTFSNi9saWIg KC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdwotKyAg IyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCi0rICA7OwotKwotK2N5 Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsgIHZlcnNpb25fdHlwZT13aW5kb3dzCi0rICBzaHJl eHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbmVlZF9saWJfcHJlZml4PW5v Ci0rCi0rICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KLSsgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3 KiB8IHllcyxwdzMyKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScK LSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3Rh bGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2Zp bGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jh c2VfZmlsZX0nXCcnaTtlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxkaXI9JGRlc3RkaXIv YGRpcm5hbWUgXCRkbHBhdGhgfgotKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBc JGRsZGlyfgotKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFt ZX4KLSsgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lJwotKyAgICBwb3N0dW5pbnN0YWxs X2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdc JydgfgotKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+Ci0rICAgICAgICRybSBcJGRscGF0aCcK LSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKwotKyAgICBjYXNlICRob3N0 X29zIGluCi0rICAgIGN5Z3dpbiopCi0rICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJl Zml4IHJhdGhlciB0aGFuICdsaWInCi0rICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFt ZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9b Wy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgot KyAgICAgIDs7Ci0rICAgIG1pbmd3KikKLSsgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlv bmFsICdsaWInIHByZWZpeAotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHty ZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9 JwotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGly cyB8IGdyZXAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMs PS8sLyxnImAKLSsgICAgICBpZiBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IFtn cmVwICc7W2MtekMtWl06LycgPi9kZXYvbnVsbF07IHRoZW4KLSsgICAgICAgICMgSXQgaXMgbW9z dCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBieQotKyAgICAgICAgIyBt aW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNl YXJjaAotKyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBs ZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQotKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3 aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAotKyAgICAgICAg IyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5n dyBvYmpkdW1wLAotKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2lu aWZpZWQgcGF0aC4gQWhoLgotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hv ICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgICAg IGVsc2UKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rICAgIHB3MzIqKQotKyAgICAgICMgcHczMiBETExzIHVzZSAn cHcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n YGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8 ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAg IDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2 ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAgIDs7Ci0rICBlc2FjCi0r ICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hv dWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBz aGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5 bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3ZlcnN1ZmZpeH0kc2hhcmVkX2V4dCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0Jwot KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcK LSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIHNobGlicGF0aF92YXI9RFlM RF9MSUJSQVJZX1BBVEgKLSsgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYg ZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJwotKyAgbTRfaWYoWyQxXSwgW10sWwotKyAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbG9jYWwv bGliIl0pIAotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9s aWIgL3Vzci9saWInCi0rICA7OwotKwotK2RndXgqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0Jwot KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotK2ZyZWVic2QxKikK LSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikK LSsgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1l bnQgYSBuZXcKLSsgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgotKyAgaWYg dGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KLSsgICAgb2JqZm9ybWF0PWAvdXNyL2Jp bi9vYmpmb3JtYXRgCi0rICBlbHNlCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgZnJlZWJz ZFtbMTIzXV0qKSBvYmpmb3JtYXQ9YW91dCA7OwotKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7Ci0r ICAgIGVzYWMKLSsgIGZpCi0rICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0Ci0rICBj YXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsgICAgZnJlZWJzZC1lbGYqKQotKyAgICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgICAgIG5lZWRfdmVyc2lvbj1ubwotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAg IDs7Ci0rICAgIGZyZWVic2QtKikKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCcKLSsgICAgICBuZWVkX3ZlcnNpb249eWVzCi0rICAgICAgOzsKLSsgIGVzYWMK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X29zIGluCi0r ICBmcmVlYnNkMiopCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAg OzsKLSsgIGZyZWVic2QzLltbMDFdXSogfCBmcmVlYnNkZWxmMy5bWzAxXV0qKQotKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgICAgOzsKLSsgIGZyZWVic2QzLltbMi05XV0qIHwgZnJlZWJzZGVsZjMuW1syLTldXSogfCBc Ci0rICBmcmVlYnNkNC5bWzAtNV1dIHwgZnJlZWJzZGVsZjQuW1swLTVdXSB8IGZyZWVic2Q0LjEu MSB8IGZyZWVic2RlbGY0LjEuMSkKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5v Ci0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgICopICMgZnJvbSA0LjYg b24sIGFuZCBEcmFnb25GbHkKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwot KyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwot K2dudSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg bmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raHB1 eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCi0rICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGlu ZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCi0rICAjIGxp bmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGNhc2UgJGhvc3RfY3B1IGlu Ci0rICBpYTY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbycKLSsgICAgaGFyZGNvZGVfaW50b19s aWJzPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgotKyAgICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCi0rICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJwotKyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgotKyAgICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGli L2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIKLSsgICAgZWxzZQotKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKLSsgICAg ZmkKLSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYwotKyAgICA7OwotKyAgIGhwcGEqNjQqKQotKyAgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsg ICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9v cyBkbGQuc2wiCi0rICAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91 bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAv dXNyL2Njcy9saWIvcGEyMF82NCIKLSsgICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAgIDs7Ci0rICAgKikKLSsgICAgc2hyZXh0X2Nt ZHM9Jy5zbCcKLSsgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKLSsgICAgc2hs aWJwYXRoX3Zhcj1TSExJQl9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u byAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRICi0rICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJwotKyAgICA7OwotKyAgZXNhYwotKyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1 bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUuCi0rICBwb3N0aW5zdGFsbF9jbWRz PSdjaG1vZCA1NTUgJGxpYicKLSsgIDs7Ci0rCi0raW50ZXJpeFtbMy05XV0qKQotKyAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5h bWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28u MSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OwotKyAgICAq KQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rCQl2ZXJzaW9u X3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWlyaXgKLSsJZmkgOzsKLSsgIGVz YWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgY2FzZSAkaG9zdF9v cyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGlic3VmZj0gc2hsaWJzdWZmPQot KyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9u ZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21p cHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9 MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJt aXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsK LSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCi0rICAgICAg bGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKLSsgICAgKikgbGlic3Vm Zj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICAgIGVzYWMKLSsgICAgOzsK LSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICi0r ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHts aWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3Vm Zn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwot KyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4K LStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQotKyAgZHluYW1pY19s aW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8 IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1u bwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0n UEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAg IyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1bmFjY2VwdGFibGUuCi0r ICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZvciBmYXN0X2luc3RhbGwK LSsgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGli JHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCi0rICBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IgotKwotKyAgIyBB cHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKLSsgIGlmIHRlc3Qg LWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVk ZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFxbJF0y KSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcWyRdMDsgc2tpcCA9IDA7IH0nIDwg L2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsgCV0qaHdjYXBbIAldL2Q7cy9b OiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdg Ci0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWMgJGx0X2xkX2V4dHJhIgotKyAgZmkKLSsKLSsgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAv bGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgotKyAgIyBwb3dlcnBj LCBiZWNhdXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRo ZQotKyAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBj cm9zcyBjb21waWxlcnMsCi0rICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5 bmFtaWMgbGlua2luZyB0aGVzZSBkYXlzIGFuZAotKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRp c2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCi0rICAjIGFzc3VtZSB0 aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KLSsgIGR5bmFtaWNfbGlua2Vy PSdHTlUvTGludXggbGQuc28nCi0rICA7OwotKwotK25ldGJzZCopCi0rICB2ZXJzaW9uX3R5cGU9 c3Vub3MKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBpZiBl Y2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0r ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgIGZpbmlz aF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICAgIGR5 bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKLSsgIGVsc2UKLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCi0rICBm aQotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rbmV3 c29zNikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cwotKyAgOzsKLSsKLStudG8tcW54KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCi0rICA7OwotKwotK29wZW5ic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCi0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpk byogbmVlZCB2ZXJzaW9uZWQgbGlicy4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgb3BlbmJz ZDMuMyB8IG9wZW5ic2QzLjMuKikgbmVlZF92ZXJzaW9uPXllcyA7OwotKyAgICAqKSAgICAgICAg ICAgICAgICAgICAgICAgICBuZWVkX3ZlcnNpb249bm8gIDs7Ci0rICBlc2FjCi0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9 IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBn cmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgt cG93ZXJwYyI7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIG9wZW5ic2QyLltb ODldXSB8IG9wZW5ic2QyLltbODldXS4qKQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KLSsJOzsKLSsgICAgICAqKQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0r CTs7Ci0rICAgICAgZXNhYwotKyAgZWxzZQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCi0rICBmaQotKyAgOzsKLSsKLStvczIqKQotKyAgbGlibmFtZV9zcGVjPSckbmFtZScK LSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFtZS5hJwotKyAgZHluYW1p Y19saW5rZXI9J09TLzIgbGQuZXhlJwotKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICA7Owot KwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIHZlcnNpb25fdHlwZT1vc2YKLSsgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIgL3Vz ci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIk c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotKyAgOzsKLSsKLStyZG9zKikKLSsgIGR5bmFtaWNf bGlua2VyPW5vCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n Ci0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICMgbGRkIGNvbXBs YWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCi0rICBwb3N0aW5zdGFsbF9jbWRz PSdjaG1vZCAreCAkbGliJwotKyAgOzsKLSsKLStzdW5vczQqKQotKyAgdmVyc2lvbl90eXBlPXN1 bm9zCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgZmlu aXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgZmkKLSsgIG5lZWRfdmVyc2lvbj15ZXMKLSsgIDs7Ci0rCi0rc3lz djQgfCBzeXN2NC4zKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3RfdmVuZG9yIGlu Ci0rICAgIHNuaSkKLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAg ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7 d2x9LUJsYXJnZWR5bnN5bScKLSsgICAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICAg IDs7Ci0rICAgIHNpZW1lbnMpCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsK LSsgICAgbW90b3JvbGEpCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgbmVlZF92 ZXJzaW9uPW5vCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91c3IvY2NzL2xpYicKLSsg ICAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStzeXN2NCpNUCopCi0rICBpZiB0ZXN0IC1kIC91 c3IvbmVjIDt0aGVuCi0rICAgIHZlcnNpb25fdHlwZT1saW51eAotKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRf ZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJGxp Ym5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKLSsgIGZpCi0rICA7OwotKwotK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1 bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQotKyAgdmVyc2lvbl90eXBlPWZyZWVi c2QtZWxmCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vzci9j Y3MvbGliIC91c3IvbGliIC9saWInCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u bwotKyAgZWxzZQotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAv dXNyL2xpYicKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBjYXNl ICRob3N0X29zIGluCi0rICAgICAgc2NvMy4ydjUqKQotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIiCi0rCTs7Ci0rICAgIGVz YWMKLSsgIGZpCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCi0rICA7 OwotKwotK3V0czQqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLSsqKQotKyAgZHluYW1p Y19saW5rZXI9bm8KLSsgIDs7Ci0rZXNhYwotK0FDX01TR19SRVNVTFQoWyRkeW5hbWljX2xpbmtl cl0pCi0rdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8K LSsKLStBQ19DQUNIRV9WQUwoW2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlY10sCi0rW2x0 X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyJd KQotK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhf c3BlYyIKLStBQ19DQUNIRV9WQUwoW2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXSwK LStbbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYyJdKQotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWMiCi0rCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEgg JHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVs aW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFUSCIKLStmaQotK10p IyBBQ19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUgotKwotKwotKyMgX0xUX0FDX1RBR0NPTkZJ RwotKyMgLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfTFRfQUNfVEFHQ09ORklHXSwKLStb QUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAotK0FDX0FSR19XSVRIKFt0YWdzXSwKLSsg ICAgW0FDX0hFTFBfU1RSSU5HKFstLXdpdGgtdGFnc0A8OkA9VEFHU0A6PkBdLAotKyAgICAgICAg W2luY2x1ZGUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9ucyBAPDpAYXV0b21hdGljQDo+QF0pXSwK LSsgICAgW3RhZ25hbWVzPSIkd2l0aHZhbCJdKQotKwotK2lmIHRlc3QgLWYgIiRsdG1haW4iICYm IHRlc3QgLW4gIiR0YWduYW1lcyI7IHRoZW4KLSsgIGlmIHRlc3QgISAtZiAiJHtvZmlsZX0iOyB0 aGVuCi0rICAgIEFDX01TR19XQVJOKFtvdXRwdXQgZmlsZSBgJG9maWxlJyBkb2VzIG5vdCBleGlz dF0pCi0rICBmaQotKwotKyAgaWYgdGVzdCAteiAiJExUQ0MiOyB0aGVuCi0rICAgIGV2YWwgImAk U0hFTEwgJHtvZmlsZX0gLS1jb25maWcgfCBncmVwICdeTFRDQz0nYCIKLSsgICAgaWYgdGVzdCAt eiAiJExUQ0MiOyB0aGVuCi0rICAgICAgQUNfTVNHX1dBUk4oW291dHB1dCBmaWxlIGAkb2ZpbGUn IGRvZXMgbm90IGxvb2sgbGlrZSBhIGxpYnRvb2wgc2NyaXB0XSkKLSsgICAgZWxzZQotKyAgICAg IEFDX01TR19XQVJOKFt1c2luZyBgTFRDQz0kTFRDQycsIGV4dHJhY3RlZCBmcm9tIGAkb2ZpbGUn XSkKLSsgICAgZmkKLSsgIGZpCi0rICBpZiB0ZXN0IC16ICIkTFRDRkxBR1MiOyB0aGVuCi0rICAg IGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25maWcgfCBncmVwICdeTFRDRkxBR1M9J2AiCi0r ICBmaQotKwotKyAgIyBFeHRyYWN0IGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ2dlZCBjb25maWd1cmF0 aW9ucyBpbiAkb2ZpbGUuCi0rICAjIE5vdGUgdGhhdCB0aGlzIGFzc3VtZXMgdGhlIGVudGlyZSBs aXN0IGlzIG9uIG9uZSBsaW5lLgotKyAgYXZhaWxhYmxlX3RhZ3M9YGdyZXAgIl5hdmFpbGFibGVf dGFncz0iICIke29maWxlfSIgfCAkU0VEIC1lICdzL2F2YWlsYWJsZV90YWdzPVwoLiokXCkvXDEv JyAtZSAncy9cIi8vZydgCi0rCi0rICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBB VEhfU0VQQVJBVE9SLCIKLSsgIGZvciB0YWduYW1lIGluICR0YWduYW1lczsgZG8KLSsgICAgSUZT PSIkbHRfc2F2ZV9pZnMiCi0rICAgICMgQ2hlY2sgd2hldGhlciB0YWduYW1lIGNvbnRhaW5zIG9u bHkgdmFsaWQgY2hhcmFjdGVycwotKyAgICBjYXNlIGAkZWNobyAiWCR0YWduYW1lIiB8ICRYc2Vk IC1lICdzOltbLV9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0 dXZ3eHl6MTIzNDU2Nzg5MCwvXV06OmcnYCBpbgotKyAgICAiIikgOzsKLSsgICAgKikgIEFDX01T R19FUlJPUihbaW52YWxpZCB0YWcgbmFtZTogJHRhZ25hbWVdKQotKwk7OwotKyAgICBlc2FjCi0r Ci0rICAgIGlmIGdyZXAgIl4jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1l JCIgPCAiJHtvZmlsZX0iID4gL2Rldi9udWxsCi0rICAgIHRoZW4KLSsgICAgICBBQ19NU0dfRVJS T1IoW3RhZyBuYW1lIFwiJHRhZ25hbWVcIiBhbHJlYWR5IGV4aXN0c10pCi0rICAgIGZpCi0rCi0r ICAgICMgVXBkYXRlIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdzLgotKyAgICBpZiB0ZXN0IC1u ICIkdGFnbmFtZSI7IHRoZW4KLSsgICAgICBlY2hvIGFwcGVuZGluZyBjb25maWd1cmF0aW9uIHRh ZyBcIiR0YWduYW1lXCIgdG8gJG9maWxlCi0rCi0rICAgICAgY2FzZSAkdGFnbmFtZSBpbgotKyAg ICAgIENYWCkKLSsJaWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIg JiYKLSsJICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251bGwg Mj4mMWAgKSB8fAotKwkgICAgKHRlc3QgIlgkQ1hYIiAhPSAiWGcrKyIpKSkgOyB0aGVuCi0rCSAg QUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUcKLSsJZWxzZQotKwkgIHRhZ25hbWU9IiIKLSsJZmkK LSsJOzsKLSsKLSsgICAgICBGNzcpCi0rCWlmIHRlc3QgLW4gIiRGNzciICYmIHRlc3QgIlgkRjc3 IiAhPSAiWG5vIjsgdGhlbgotKwkgIEFDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHCi0rCWVsc2UK LSsJICB0YWduYW1lPSIiCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgR0NKKQotKwlpZiB0ZXN0IC1u ICIkR0NKIiAmJiB0ZXN0ICJYJEdDSiIgIT0gIlhubyI7IHRoZW4KLSsJICBBQ19MSUJUT09MX0xB TkdfR0NKX0NPTkZJRwotKwllbHNlCi0rCSAgdGFnbmFtZT0iIgotKwlmaQotKwk7OwotKwotKyAg ICAgIFJDKQotKwlBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHCi0rCTs7Ci0rCi0rICAgICAgKikK LSsJQUNfTVNHX0VSUk9SKFtVbnN1cHBvcnRlZCB0YWcgbmFtZTogJHRhZ25hbWVdKQotKwk7Owot KyAgICAgIGVzYWMKLSsKLSsgICAgICAjIEFwcGVuZCB0aGUgbmV3IHRhZyBuYW1lIHRvIHRoZSBs aXN0IG9mIGF2YWlsYWJsZSB0YWdzLgotKyAgICAgIGlmIHRlc3QgLW4gIiR0YWduYW1lIiA7IHRo ZW4KLSsgICAgICBhdmFpbGFibGVfdGFncz0iJGF2YWlsYWJsZV90YWdzICR0YWduYW1lIgotKyAg ICBmaQotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCi0rICAjIE5v dyBzdWJzdGl0dXRlIHRoZSB1cGRhdGVkIGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ3MuCi0rICBpZiBl dmFsICJzZWQgLWUgJ3MvXmF2YWlsYWJsZV90YWdzPS4qXCQvYXZhaWxhYmxlX3RhZ3M9XCIkYXZh aWxhYmxlX3RhZ3NcIi8nIFwiJG9maWxlXCIgPiBcIiR7b2ZpbGV9VFwiIjsgdGhlbgotKyAgICBt diAiJHtvZmlsZX1UIiAiJG9maWxlIgotKyAgICBjaG1vZCAreCAiJG9maWxlIgotKyAgZWxzZQot KyAgICBybSAtZiAiJHtvZmlsZX1UIgotKyAgICBBQ19NU0dfRVJST1IoW3VuYWJsZSB0byB1cGRh dGUgbGlzdCBvZiBhdmFpbGFibGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zLl0pCi0rICBmaQotK2Zp Ci0rXSkjIF9MVF9BQ19UQUdDT05GSUcKLSsKLSsKLSsjIEFDX0xJQlRPT0xfRExPUEVOCi0rIyAt LS0tLS0tLS0tLS0tLS0tLQotKyMgZW5hYmxlIGNoZWNrcyBmb3IgZGxvcGVuIHN1cHBvcnQKLStB Q19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLAotKyBbQUNfQkVGT1JFKFskMF0sW0FDX0xJQlRP T0xfU0VUVVBdKQotK10pIyBBQ19MSUJUT09MX0RMT1BFTgotKwotKwotKyMgQUNfTElCVE9PTF9X SU4zMl9ETEwKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBkZWNsYXJlIHBhY2thZ2Ugc3Vw cG9ydCBmb3IgYnVpbGRpbmcgd2luMzIgRExMcwotK0FDX0RFRlVOKFtBQ19MSUJUT09MX1dJTjMy X0RMTF0sCi0rW0FDX0JFRk9SRShbJDBdLCBbQUNfTElCVE9PTF9TRVRVUF0pCi0rXSkjIEFDX0xJ QlRPT0xfV0lOMzJfRExMCi0rCi0rCi0rIyBBQ19FTkFCTEVfU0hBUkVEKFtERUZBVUxUXSkKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgaW1wbGVtZW50IHRoZSAtLWVuYWJsZS1z aGFyZWQgZmxhZwotKyMgREVGQVVMVCBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0 ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMnLgotK0FDX0RFRlVOKFtBQ19FTkFCTEVfU0hBUkVEXSwK LStbZGVmaW5lKFtBQ19FTkFCTEVfU0hBUkVEX0RFRkFVTFRdLCBpZmVsc2UoJDEsIG5vLCBubywg eWVzKSlkbmwKLStBQ19BUkdfRU5BQkxFKFtzaGFyZWRdLAotKyAgICBbQUNfSEVMUF9TVFJJTkco Wy0tZW5hYmxlLXNoYXJlZEA8OkA9UEtHU0A6PkBdLAotKwlbYnVpbGQgc2hhcmVkIGxpYnJhcmll cyBAPDpAZGVmYXVsdD1dQUNfRU5BQkxFX1NIQVJFRF9ERUZBVUxUW0A6PkBdKV0sCi0rICAgIFtw PSR7UEFDS0FHRS1kZWZhdWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBl bmFibGVfc2hhcmVkPXllcyA7OwotKyAgICBubykgZW5hYmxlX3NoYXJlZD1ubyA7OwotKyAgICAq KQotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50 IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAg bHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAg Zm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVz dCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc2hhcmVkPXllcwotKwlmaQotKyAg ICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2Fj XSwKLSsgICAgW2VuYWJsZV9zaGFyZWQ9XUFDX0VOQUJMRV9TSEFSRURfREVGQVVMVCkKLStdKSMg QUNfRU5BQkxFX1NIQVJFRAotKwotKwotKyMgQUNfRElTQUJMRV9TSEFSRUQKLSsjIC0tLS0tLS0t LS0tLS0tLS0tCi0rIyBzZXQgdGhlIGRlZmF1bHQgc2hhcmVkIGZsYWcgdG8gLS1kaXNhYmxlLXNo YXJlZAotK0FDX0RFRlVOKFtBQ19ESVNBQkxFX1NIQVJFRF0sCi0rW0FDX0JFRk9SRShbJDBdLFtB Q19MSUJUT09MX1NFVFVQXSlkbmwKLStBQ19FTkFCTEVfU0hBUkVEKG5vKQotK10pIyBBQ19ESVNB QkxFX1NIQVJFRAotKwotKwotKyMgQUNfRU5BQkxFX1NUQVRJQyhbREVGQVVMVF0pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtc3RhdGlj IGZsYWcKLSsjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBp dCBkZWZhdWx0cyB0byBgeWVzJy4KLStBQ19ERUZVTihbQUNfRU5BQkxFX1NUQVRJQ10sCi0rW2Rl ZmluZShbQUNfRU5BQkxFX1NUQVRJQ19ERUZBVUxUXSwgaWZlbHNlKCQxLCBubywgbm8sIHllcykp ZG5sCi0rQUNfQVJHX0VOQUJMRShbc3RhdGljXSwKLSsgICAgW0FDX0hFTFBfU1RSSU5HKFstLWVu YWJsZS1zdGF0aWNAPDpAPVBLR1NAOj5AXSwKLSsJW2J1aWxkIHN0YXRpYyBsaWJyYXJpZXMgQDw6 QGRlZmF1bHQ9XUFDX0VOQUJMRV9TVEFUSUNfREVGQVVMVFtAOj5AXSldLAotKyAgICBbcD0ke1BB Q0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxl X3N0YXRpYz15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKLSsgICAgKikKLSsg ICAgIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdv dC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2 ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBr ZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRw a2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc3RhdGljPXllcwotKwlmaQotKyAgICAgIGRv bmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjXSwKLSsg ICAgW2VuYWJsZV9zdGF0aWM9XUFDX0VOQUJMRV9TVEFUSUNfREVGQVVMVCkKLStdKSMgQUNfRU5B QkxFX1NUQVRJQwotKwotKwotKyMgQUNfRElTQUJMRV9TVEFUSUMKLSsjIC0tLS0tLS0tLS0tLS0t LS0tCi0rIyBzZXQgdGhlIGRlZmF1bHQgc3RhdGljIGZsYWcgdG8gLS1kaXNhYmxlLXN0YXRpYwot K0FDX0RFRlVOKFtBQ19ESVNBQkxFX1NUQVRJQ10sCi0rW0FDX0JFRk9SRShbJDBdLFtBQ19MSUJU T09MX1NFVFVQXSlkbmwKLStBQ19FTkFCTEVfU1RBVElDKG5vKQotK10pIyBBQ19ESVNBQkxFX1NU QVRJQwotKwotKwotKyMgQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTChbREVGQVVMVF0pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGltcGxlbWVudCB0aGUgLS1lbmFibGUt ZmFzdC1pbnN0YWxsIGZsYWcKLSsjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJ ZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KLStBQ19ERUZVTihbQUNfRU5BQkxFX0ZB U1RfSU5TVEFMTF0sCi0rW2RlZmluZShbQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUXSwg aWZlbHNlKCQxLCBubywgbm8sIHllcykpZG5sCi0rQUNfQVJHX0VOQUJMRShbZmFzdC1pbnN0YWxs XSwKLSsgICAgW0FDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1mYXN0LWluc3RhbGxAPDpAPVBLR1NA Oj5AXSwKLSsgICAgW29wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBAPDpAZGVmYXVsdD1d QUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUW0A6PkBdKV0sCi0rICAgIFtwPSR7UEFDS0FH RS1kZWZhdWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfZmFz dF9pbnN0YWxsPXllcyA7OwotKyAgICBubykgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubyA7OwotKyAg ICAqKQotKyAgICAgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KLSsgICAgICAjIExvb2sgYXQgdGhl IGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMu Ci0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwi Ci0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIK LSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfZmFzdF9pbnN0YWxs PXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAg ICA7OwotKyAgICBlc2FjXSwKLSsgICAgW2VuYWJsZV9mYXN0X2luc3RhbGw9XUFDX0VOQUJMRV9G QVNUX0lOU1RBTExfREVGQVVMVCkKLStdKSMgQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTAotKwotKwot KyMgQUNfRElTQUJMRV9GQVNUX0lOU1RBTEwKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBzZXQgdGhlIGRlZmF1bHQgdG8gLS1kaXNhYmxlLWZhc3QtaW5zdGFsbAotK0FDX0RFRlVOKFtB Q19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sCi0rW0FDX0JFRk9SRShbJDBdLFtBQ19MSUJUT09MX1NF VFVQXSlkbmwKLStBQ19FTkFCTEVfRkFTVF9JTlNUQUxMKG5vKQotK10pIyBBQ19ESVNBQkxFX0ZB U1RfSU5TVEFMTAotKwotKwotKyMgQUNfTElCVE9PTF9QSUNNT0RFKFtNT0RFXSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBpbXBsZW1lbnQgdGhlIC0td2l0aC1waWMgZmxhZwot KyMgTU9ERSBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRz IHRvIGBib3RoJy4KLStBQ19ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwKLStbQUNfQkVGT1JF KFskMF0sW0FDX0xJQlRPT0xfU0VUVVBdKWRubAotK3BpY19tb2RlPWlmZWxzZSgkIywxLCQxLGRl ZmF1bHQpCi0rXSkjIEFDX0xJQlRPT0xfUElDTU9ERQotKwotKwotKyMgQUNfUFJPR19FR1JFUAot KyMgLS0tLS0tLS0tLS0tLQotKyMgVGhpcyBpcyBwcmVkZWZpbmVkIHN0YXJ0aW5nIHdpdGggQXV0 b2NvbmYgMi41NCwgc28gdGhpcyBjb25kaXRpb25hbAotKyMgZGVmaW5pdGlvbiBjYW4gYmUgcmVt b3ZlZCBvbmNlIHdlIHJlcXVpcmUgQXV0b2NvbmYgMi41NCBvciBsYXRlci4KLSttNF9pZm5kZWYo W0FDX1BST0dfRUdSRVBdLCBbQUNfREVGVU4oW0FDX1BST0dfRUdSRVBdLAotK1tBQ19DQUNIRV9D SEVDSyhbZm9yIGVncmVwXSwgW2FjX2N2X3Byb2dfZWdyZXBdLAotKyAgIFtpZiBlY2hvIGEgfCAo Z3JlcCAtRSAnKGF8YiknKSA+L2Rldi9udWxsIDI+JjEKLSsgICAgdGhlbiBhY19jdl9wcm9nX2Vn cmVwPSdncmVwIC1FJwotKyAgICBlbHNlIGFjX2N2X3Byb2dfZWdyZXA9J2VncmVwJwotKyAgICBm aV0pCi0rIEVHUkVQPSRhY19jdl9wcm9nX2VncmVwCi0rIEFDX1NVQlNUKFtFR1JFUF0pCi0rXSld KQotKwotKwotKyMgQUNfUEFUSF9UT09MX1BSRUZJWAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgZmluZCBhIGZpbGUgcHJvZ3JhbSB3aGljaCBjYW4gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJ5 Ci0rQUNfREVGVU4oW0FDX1BBVEhfVE9PTF9QUkVGSVhdLAotK1tBQ19SRVFVSVJFKFtBQ19QUk9H X0VHUkVQXSlkbmwKLStBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkMV0pCi0rQUNfQ0FDSEVfVkFMKGx0 X2N2X3BhdGhfTUFHSUNfQ01ELAotK1tjYXNlICRNQUdJQ19DTUQgaW4KLStbW1xcLypdIHwgID86 W1xcL10qXSkKLSsgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsgIDs7Ci0rKikKLSsgIGx0X3Nh dmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZG5sICRhY19kdW1teSBmb3JjZXMgc3BsaXR0aW5nIG9uIGNvbnN0YW50 IHVzZXItc3VwcGxpZWQgcGF0aHMuCi0rZG5sIFBPU0lYLjIgd29yZCBzcGxpdHRpbmcgaXMgZG9u ZSBvbmx5IG9uIHRoZSBvdXRwdXQgb2Ygd29yZCBleHBhbnNpb25zLAotK2RubCBub3QgZXZlcnkg d29yZC4gIFRoaXMgY2xvc2VzIGEgbG9uZ3N0YW5kaW5nIHNoIHNlY3VyaXR5IGhvbGUuCi0rICBh Y19kdW1teT0iaWZlbHNlKFskMl0sICwgJFBBVEgsIFskMl0pIgotKyAgZm9yIGFjX2RpciBpbiAk YWNfZHVtbXk7IGRvCi0rICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICB0ZXN0IC16ICIkYWNf ZGlyIiAmJiBhY19kaXI9LgotKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJDE7IHRoZW4KLSsgICAg ICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8kMSIKLSsgICAgICBpZiB0ZXN0IC1uICIk ZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVuCi0rCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9k IGluCi0rCSJmaWxlX21hZ2ljICIqKQotKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBs aWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAotKwkgIE1BR0lDX0NNRD0i JGx0X2N2X3BhdGhfTUFHSUNfQ01EIgotKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmls ZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKLSsJICAgICRFR1JFUCAiJGZpbGVfbWFn aWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgY2F0 IDw8RU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2VzIHRv IGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAotKyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1Y2Vz IG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4KLSsqKiogVGhlIHJlc3VsdCBp cyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMKLSsq KiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wgbGli cmFyaWVzIHRoYXQKLSsqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9ncmFt cyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKLSsqKiogbGlicmFyaWVzIHdpbGwgd29yayByZWdh cmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywgeW91Ci0rKioqIG1heSB3YW50 IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0bwot KyoqKiBidWctbGlidG9vbEBnbnUub3JnCi0rCi0rRU9GCi0rCSAgZmkgOzsKLSsJZXNhYwotKyAg ICAgIGZpCi0rICAgICAgYnJlYWsKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVf aWZzIgotKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCi0rICA7OwotK2VzYWNdKQot K01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgotK2lmIHRlc3QgLW4gIiRNQUdJQ19D TUQiOyB0aGVuCi0rICBBQ19NU0dfUkVTVUxUKCRNQUdJQ19DTUQpCi0rZWxzZQotKyAgQUNfTVNH X1JFU1VMVChubykKLStmaQotK10pIyBBQ19QQVRIX1RPT0xfUFJFRklYCi0rCi0rCi0rIyBBQ19Q QVRIX01BR0lDCi0rIyAtLS0tLS0tLS0tLS0tCi0rIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNo IGNhbiByZWNvZ25pemUgYSBzaGFyZWQgbGlicmFyeQotK0FDX0RFRlVOKFtBQ19QQVRIX01BR0lD XSwKLStbQUNfUEFUSF9UT09MX1BSRUZJWCgke2FjX3Rvb2xfcHJlZml4fWZpbGUsIC91c3IvYmlu JFBBVEhfU0VQQVJBVE9SJFBBVEgpCi0raWYgdGVzdCAteiAiJGx0X2N2X3BhdGhfTUFHSUNfQ01E IjsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgICBBQ19Q QVRIX1RPT0xfUFJFRklYKGZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCi0rICBl bHNlCi0rICAgIE1BR0lDX0NNRD06Ci0rICBmaQotK2ZpCi0rXSkjIEFDX1BBVEhfTUFHSUMKLSsK LSsKLSsjIEFDX1BST0dfTEQKLSsjIC0tLS0tLS0tLS0KLSsjIGZpbmQgdGhlIHBhdGhuYW1lIHRv IHRoZSBHTlUgb3Igbm9uLUdOVSBsaW5rZXIKLStBQ19ERUZVTihbQUNfUFJPR19MRF0sCi0rW0FD X0FSR19XSVRIKFtnbnUtbGRdLAotKyAgICBbQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1nbnUtbGRd LAotKwlbYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIEA8OkBkZWZhdWx0PW5vQDo+ QF0pXSwKLSsgICAgW3Rlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXllc10sCi0r ICAgIFt3aXRoX2dudV9sZD1ub10pCi0rQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAot K0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAotK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9I T1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAotK2FjX3Byb2c9 bGQKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgIyBDaGVjayBpZiBnY2MgLXByaW50 LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCi0rICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBsZCB1 c2VkIGJ5ICRDQ10pCi0rICBjYXNlICRob3N0IGluCi0rICAqLSotbWluZ3cqKQotKyAgICAjIGdj YyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3Ci0r ICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1 J2AgOzsKLSsgICopCi0rICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4m NWAgOzsKLSsgIGVzYWMKLSsgIGNhc2UgJGFjX3Byb2cgaW4KLSsgICAgIyBBY2NlcHQgYWJzb2x1 dGUgcGF0aHMuCi0rICAgIFtbXFwvXV0qIHwgPzpbW1xcL11dKikKLSsgICAgICByZV9kaXJlbHQ9 Jy9bW14vXV1bW14vXV0qL1wuXC4vJwotKyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFt ZSBvZiBsZAotKyAgICAgIGFjX3Byb2c9YGVjaG8gJGFjX3Byb2d8ICRTRUQgJ3MlXFxcXCUvJWcn YAotKyAgICAgIHdoaWxlIGVjaG8gJGFjX3Byb2cgfCBncmVwICIkcmVfZGlyZWx0IiA+IC9kZXYv bnVsbCAyPiYxOyBkbwotKwlhY19wcm9nPWBlY2hvICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJl bHQlLyUiYAotKyAgICAgIGRvbmUKLSsgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJv ZyIKLSsgICAgICA7OwotKyAgIiIpCi0rICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3 ZSBhcmVuJ3QgdXNpbmcgR0NDLgotKyAgICBhY19wcm9nPWxkCi0rICAgIDs7Ci0rICAqKQotKyAg ICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBB VEguCi0rICAgIHdpdGhfZ251X2xkPXVua25vd24KLSsgICAgOzsKLSsgIGVzYWMKLStlbGlmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgIEFDX01TR19DSEVDS0lORyhbZm9yIEdO VSBsZF0pCi0rZWxzZQotKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igbm9uLUdOVSBsZF0pCi0rZmkK LStBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9MRCwKLStbaWYgdGVzdCAteiAiJExEIjsgdGhlbgot KyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBmb3IgYWNfZGly IGluICRQQVRIOyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVzdCAteiAiJGFj X2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwg dGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVuCi0rICAgICAgbHRfY3Zf cGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKLSsgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUg cHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCi0rICAgICAgIyBi dXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KLSsg ICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHBy ZWZlci4KLSsgICAgICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAg aW4KLSsgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikKLSsJdGVzdCAiJHdpdGhfZ251X2xkIiAh PSBubyAmJiBicmVhawotKwk7OwotKyAgICAgICopCi0rCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0g eWVzICYmIGJyZWFrCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgZG9uZQotKyAgSUZT PSIkbHRfc2F2ZV9pZnMiCi0rZWxzZQotKyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLStmaV0pCi0rTEQ9IiRsdF9jdl9w YXRoX0xEIgotK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4KLSsgIEFDX01TR19SRVNVTFQoJExEKQot K2Vsc2UKLSsgIEFDX01TR19SRVNVTFQobm8pCi0rZmkKLSt0ZXN0IC16ICIkTEQiICYmIEFDX01T R19FUlJPUihbbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEhdKQotK0FDX1BST0dfTERf R05VCi0rXSkjIEFDX1BST0dfTEQKLSsKLSsKLSsjIEFDX1BST0dfTERfR05VCi0rIyAtLS0tLS0t LS0tLS0tLQotK0FDX0RFRlVOKFtBQ19QUk9HX0xEX0dOVV0sCi0rW0FDX1JFUVVJUkUoW0FDX1BS T0dfRUdSRVBdKWRubAotK0FDX0NBQ0hFX0NIRUNLKFtpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdO VSBsZF0sIGx0X2N2X3Byb2dfZ251X2xkLAotK1sjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBo ZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCi0rY2FzZSBg JExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIGx0 X2N2X3Byb2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8K LSsgIDs7Ci0rZXNhY10pCi0rd2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCi0rXSkjIEFD X1BST0dfTERfR05VCi0rCi0rCi0rIyBBQ19QUk9HX0xEX1JFTE9BRF9GTEFHCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0rIyBmaW5kIHJlbG9hZCBmbGFnIGZvciBsaW5rZXIKLSsjICAgLS0g UE9SVE1FIFNvbWUgbGlua2VycyBtYXkgbmVlZCBhIGRpZmZlcmVudCByZWxvYWQgZmxhZy4KLStB Q19ERUZVTihbQUNfUFJPR19MRF9SRUxPQURfRkxBR10sCi0rW0FDX0NBQ0hFX0NIRUNLKFtmb3Ig JExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzXSwKLSsgIGx0X2N2X2xkX3JlbG9hZF9m bGFnLAotKyAgW2x0X2N2X2xkX3JlbG9hZF9mbGFnPSctciddKQotK3JlbG9hZF9mbGFnPSRsdF9j dl9sZF9yZWxvYWRfZmxhZwotK2Nhc2UgJHJlbG9hZF9mbGFnIGluCi0rIiIgfCAiICIqKSA7Owot KyopIHJlbG9hZF9mbGFnPSIgJHJlbG9hZF9mbGFnIiA7OwotK2VzYWMKLStyZWxvYWRfY21kcz0n JExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rY2FzZSAkaG9zdF9vcyBp bgotKyAgZGFyd2luKikKLSsgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgICBy ZWxvYWRfY21kcz0nJExUQ0MgJExUQ0ZMQUdTIC1ub3N0ZGxpYiAke3dsfS1yIC1vICRvdXRwdXQk cmVsb2FkX29ianMnCi0rICAgIGVsc2UKLSsgICAgICByZWxvYWRfY21kcz0nJExEJHJlbG9hZF9m bGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGZpCi0rICAgIDs7Ci0rZXNhYwotK10p IyBBQ19QUk9HX0xEX1JFTE9BRF9GTEFHCi0rCi0rCi0rIyBBQ19ERVBMSUJTX0NIRUNLX01FVEhP RAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGhvdyB0byBjaGVjayBmb3IgbGlicmFy eSBkZXBlbmRlbmNpZXMKLSsjICAtLSBQT1JUTUUgZmlsbCBpbiB3aXRoIHRoZSBkeW5hbWljIGxp YnJhcnkgY2hhcmFjdGVyaXN0aWNzCi0rQUNfREVGVU4oW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9E XSwKLStbQUNfQ0FDSEVfQ0hFQ0soW2hvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmll c10sCi0rbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QsCi0rW2x0X2N2X2ZpbGVfbWFnaWNfY21k PSckTUFHSUNfQ01EJwotK2x0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPQotK2x0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSd1bmtub3duJwotKyMgTmVlZCB0byBzZXQgdGhlIHByZWNlZGluZyB2 YXJpYWJsZSBvbiBhbGwgcGxhdGZvcm1zIHRoYXQgc3VwcG9ydAotKyMgaW50ZXJsaWJyYXJ5IGRl cGVuZGVuY2llcy4KLSsjICdub25lJyAtLSBkZXBlbmRlbmNpZXMgbm90IHN1cHBvcnRlZC4KLSsj IGB1bmtub3duJyAtLSBzYW1lIGFzIG5vbmUsIGJ1dCBkb2N1bWVudHMgdGhhdCB3ZSByZWFsbHkg ZG9uJ3Qga25vdy4KLSsjICdwYXNzX2FsbCcgLS0gYWxsIGRlcGVuZGVuY2llcyBwYXNzZWQgd2l0 aCBubyBjaGVja3MuCi0rIyAndGVzdF9jb21waWxlJyAtLSBjaGVjayBieSBtYWtpbmcgdGVzdCBw cm9ncmFtLgotKyMgJ2ZpbGVfbWFnaWMgW1tyZWdleF1dJyAtLSBjaGVjayBieSBsb29raW5nIGZv ciBmaWxlcyBpbiBsaWJyYXJ5IHBhdGgKLSsjIHdoaWNoIHJlc3BvbmRzIHRvIHRoZSAkZmlsZV9t YWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4dGVuZGVkIHJlZ2V4LgotKyMgSWYgeW91IGhhdmUgYGZp bGUnIG9yIGVxdWl2YWxlbnQgb24geW91ciBzeXN0ZW0gYW5kIHlvdSdyZSBub3Qgc3VyZQotKyMg d2hldGhlciBgcGFzc19hbGwnIHdpbGwgKmFsd2F5cyogd29yaywgeW91IHByb2JhYmx5IHdhbnQg dGhpcyBvbmUuCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeFtbNC05XV0qKQotKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStic2RpW1s0NV1dKikK LSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1sw LTldXSotYml0IFtbTUxdXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKScKLSsgIGx0X2N2 X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxlIC1MJwotKyAgbHRfY3ZfZmlsZV9tYWdpY190 ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28KLSsgIDs7Ci0rCi0rY3lnd2luKikKLSsgICMgZnVuY193 aW4zMl9saWJpZCBpcyBhIHNoZWxsIGZ1bmN0aW9uIGRlZmluZWQgaW4gbHRtYWluLnNoCi0rICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0 fF54ODYgRExMJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0r ICA7OwotKwotK21pbmd3KiB8IHB3MzIqKQotKyAgIyBCYXNlIE1TWVMvTWluR1cgZG8gbm90IHBy b3ZpZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRlZCBieQotKyAgIyBmdW5jX3dpbjMyX2xpYmlk IHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcs Ci0rICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1wbGUgYmVjYXVzZSB3ZSBhcmUg Y3Jvc3MtY29tcGlsaW5nLgotKyAgaWYgKCBmaWxlIC8gKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4K LSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZl IGltcG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJf bGliaWQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21h Z2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JwotKyAgICBs dF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCi0rICBmaQotKyAgOzsKLSsKLStkYXJ3 aW4qIHwgcmhhcHNvZHkqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK LSsgIDs7Ci0rCi0rZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgaWYgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCBncmVwIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgY2FzZSAkaG9z dF9jcHUgaW4KLSsgICAgaSo4NiApCi0rICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHRoZSBwcmVz ZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2FzIGEgbWlzdGFrZS4KLSsgICAgICAjIExldCdzIGFjY2Vw dCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVkIHVwLgotKyAgICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChGcmVlQlNEfE9wZW5CU0R8RHJhZ29uRmx5 KS9pW1szLTldXTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JwotKyAg ICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgICAgICBsdF9jdl9maWxl X21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCi0rICAgICAgOzsKLSsg ICAgZXNhYwotKyAgZWxzZQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2Fs bAotKyAgZmkKLSsgIDs7Ci0rCi0rZ251KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PXBhc3NfYWxsCi0rICA7OwotKwotK2hwdXgxMC4yMCogfCBocHV4MTEqKQotKyAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQq KQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1b WzAtOV1dW1swLTldXXxFTEYtW1swLTldXVtbMC05XV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIElB NjQnCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2hwdXgzMi9saWJj LnNvCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgW2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1bMC05XVswLTldKSBzaGFyZWQg b2JqZWN0IGZpbGUgLSBQQS1SSVNDIFswLTldLlswLTldJ10KLSsgICAgbHRfY3ZfZmlsZV9tYWdp Y190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCi0rICAgIDs7Ci0rICAqKQotKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1d W1swLTldXXxQQS1SSVNDW1swLTldXS5bWzAtOV1dKSBzaGFyZWQgbGlicmFyeScKLSsgICAgbHRf Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGliYy5zbAotKyAgICA7OwotKyAgZXNh YwotKyAgOzsKLSsKLStpbnRlcml4W1szLTldXSopCi0rICAjIFBJQyBjb2RlIGlzIGJyb2tlbiBv biBJbnRlcml4IDMueCwgdGhhdCdzIHdoeSB8XC5hIG5vdCB8X3BpY1wuYSBoZXJlCi0rICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvfFwu YSkkJwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAk TEQgaW4KLSsgICotMzJ8KiItMzIgIikgbGlibWFnaWM9MzItYml0OzsKLSsgICotbjMyfCoiLW4z MiAiKSBsaWJtYWdpYz1OMzI7OwotKyAgKi02NHwqIi02NCAiKSBsaWJtYWdpYz02NC1iaXQ7Owot KyAgKikgbGlibWFnaWM9bmV2ZXItbWF0Y2g7OwotKyAgZXNhYwotKyAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxG LgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAotKyAgOzsKLSsKLStuZXRic2QqKQotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1F IC0gfCBncmVwIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltb MC05XV0rfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb3xfcGljXC5hKSQnCi0rICBmaQotKyAg OzsKLSsKLStuZXdvczYqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBs aWIpJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQotKyAgbHRfY3ZfZmls ZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCi0rICA7OwotKwotK250by1xbngq KQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgotKyAgOzsKLSsKLStvcGVu YnNkKikKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19F TEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBj IjsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAv bGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8XC5zb3xfcGljXC5hKSQnCi0rICBl bHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJb W14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xfcGljXC5hKSQnCi0rICBmaQotKyAgOzsK LSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD1wYXNzX2FsbAotKyAgOzsKLSsKLStyZG9zKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsgIGNhc2Ug JGhvc3RfdmVuZG9yIGluCi0rICBtb3Rvcm9sYSkKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKHNoYXJl ZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bWzAtOV1dW1swLTldXSogVmVyc2lvbiBbWzAtOV1dJwot KyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAK LSsgICAgOzsKLSsgIG5jcikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKLSsgICAgOzsKLSsgIHNlcXVlbnQpCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmlu L2ZpbGUnCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBb WzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICkn Ci0rICAgIDs7Ci0rICBzbmkpCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUn Ci0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBbWzAtOV1d W1swLTldXSotYml0IFtbTE1dXVNCIGR5bmFtaWMgbGliIgotKyAgICBsdF9jdl9maWxlX21hZ2lj X3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KLSsgICAgOzsKLSsgIHNpZW1lbnMpCi0rICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0rICBwYykKLSsgICAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7 Ci0rCi0rc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklY KiB8IHN5c3Y0KnV3MiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAot KyAgOzsKLStlc2FjCi0rXSkKLStmaWxlX21hZ2ljX2NtZD0kbHRfY3ZfZmlsZV9tYWdpY19jbWQK LStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QKLSt0ZXN0 IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxpYnNfY2hlY2tfbWV0aG9kPXVua25v d24KLStdKSMgQUNfREVQTElCU19DSEVDS19NRVRIT0QKLSsKLSsKLSsjIEFDX1BST0dfTk0KLSsj IC0tLS0tLS0tLS0KLSsjIGZpbmQgdGhlIHBhdGhuYW1lIHRvIGEgQlNELWNvbXBhdGlibGUgbmFt ZSBsaXN0ZXIKLStBQ19ERUZVTihbQUNfUFJPR19OTV0sCi0rW0FDX0NBQ0hFX0NIRUNLKFtmb3Ig QlNELWNvbXBhdGlibGUgbm1dLCBsdF9jdl9wYXRoX05NLAotK1tpZiB0ZXN0IC1uICIkTk0iOyB0 aGVuCi0rICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLSsgIGx0X2N2X3BhdGhf Tk09IiROTSIKLStlbHNlCi0rICBsdF9ubV90b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIK LSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCIgJiYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9z dCI7IHRoZW4KLSsgICAgbHRfbm1fdG9fY2hlY2s9IiRsdF9ubV90b19jaGVjayBubSIKLSsgIGZp Ci0rICBmb3IgbHRfdG1wX25tIGluICRsdF9ubV90b19jaGVjazsgZG8KLSsgICAgbHRfc2F2ZV9p ZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICAgIGZvciBhY19kaXIgaW4gJFBBVEgg L3Vzci9jY3MvYmluL2VsZiAvdXNyL2Njcy9iaW4gL3Vzci91Y2IgL2JpbjsgZG8KLSsgICAgICBJ RlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9Lgot KyAgICAgIHRtcF9ubT0iJGFjX2Rpci8kbHRfdG1wX25tIgotKyAgICAgIGlmIHRlc3QgLWYgIiR0 bXBfbm0iIHx8IHRlc3QgLWYgIiR0bXBfbm0kYWNfZXhlZXh0IiA7IHRoZW4KLSsJIyBDaGVjayB0 byBzZWUgaWYgdGhlIG5tIGFjY2VwdHMgYSBCU0QtY29tcGF0IGZsYWcuCi0rCSMgQWRkaW5nIHRo ZSBgc2VkIDFxJyBwcmV2ZW50cyBmYWxzZSBwb3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6 Ci0rCSMgICBubTogdW5rbm93biBvcHRpb24gIkIiIGlnbm9yZWQKLSsJIyBUcnU2NCdzIG5tIGNv bXBsYWlucyB0aGF0IC9kZXYvbnVsbCBpcyBhbiBpbnZhbGlkIG9iamVjdCBmaWxlCi0rCWNhc2Ug YCIkdG1wX25tIiAtQiAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgotKwkqL2Rldi9udWxs KiB8IConSW52YWxpZCBmaWxlIG9yIG9iamVjdCB0eXBlJyopCi0rCSAgbHRfY3ZfcGF0aF9OTT0i JHRtcF9ubSAtQiIKLSsJICBicmVhawotKwkgIDs7Ci0rCSopCi0rCSAgY2FzZSBgIiR0bXBfbm0i IC1wIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCi0rCSAgKi9kZXYvbnVsbCopCi0rCSAg ICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1wIgotKwkgICAgYnJlYWsKLSsJICAgIDs7Ci0rCSAg KikKLSsJICAgIGx0X2N2X3BhdGhfTk09JHtsdF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVw IHRoZSBmaXJzdCBtYXRjaCwgYnV0Ci0rCSAgICBjb250aW51ZSAjIHNvIHRoYXQgd2UgY2FuIHRy eSB0byBmaW5kIG9uZSB0aGF0IHN1cHBvcnRzIEJTRCBmbGFncwotKwkgICAgOzsKLSsJICBlc2Fj Ci0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsgICAgSUZTPSIkbHRfc2F2 ZV9pZnMiCi0rICBkb25lCi0rICB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9OTSIgJiYgbHRfY3ZfcGF0 aF9OTT1ubQotK2ZpXSkKLStOTT0iJGx0X2N2X3BhdGhfTk0iCi0rXSkjIEFDX1BST0dfTk0KLSsK LSsKLSsjIEFDX0NIRUNLX0xJQk0KLSsjIC0tLS0tLS0tLS0tLS0KLSsjIGNoZWNrIGZvciBtYXRo IGxpYnJhcnkKLStBQ19ERUZVTihbQUNfQ0hFQ0tfTElCTV0sCi0rW0FDX1JFUVVJUkUoW0FDX0NB Tk9OSUNBTF9IT1NUXSlkbmwKLStMSUJNPQotK2Nhc2UgJGhvc3QgaW4KLSsqLSotYmVvcyogfCAq LSotY3lnd2luKiB8ICotKi1wdzMyKiB8ICotKi1kYXJ3aW4qKQotKyAgIyBUaGVzZSBzeXN0ZW0g ZG9uJ3QgaGF2ZSBsaWJtLCBvciBkb24ndCBuZWVkIGl0Ci0rICA7OwotKyotbmNyLXN5c3Y0LjMq KQotKyAgQUNfQ0hFQ0tfTElCKG13LCBfbXd2YWxpZGNoZWNrbCwgTElCTT0iLWxtdyIpCi0rICBB Q19DSEVDS19MSUIobSwgY29zLCBMSUJNPSIkTElCTSAtbG0iKQotKyAgOzsKLSsqKQotKyAgQUNf Q0hFQ0tfTElCKG0sIGNvcywgTElCTT0iLWxtIikKLSsgIDs7Ci0rZXNhYwotK10pIyBBQ19DSEVD S19MSUJNCi0rCi0rCi0rIyBBQ19MSUJMVERMX0NPTlZFTklFTkNFKFtESVJFQ1RPUlldKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIHNldHMgTElCTFRETCB0byB0 aGUgbGluayBmbGFncyBmb3IgdGhlIGxpYmx0ZGwgY29udmVuaWVuY2UgbGlicmFyeSBhbmQKLSsj IExURExJTkNMIHRvIHRoZSBpbmNsdWRlIGZsYWdzIGZvciB0aGUgbGlibHRkbCBoZWFkZXIgYW5k IGFkZHMKLSsjIC0tZW5hYmxlLWx0ZGwtY29udmVuaWVuY2UgdG8gdGhlIGNvbmZpZ3VyZSBhcmd1 bWVudHMuICBOb3RlIHRoYXQKLSsjIEFDX0NPTkZJR19TVUJESVJTIGlzIG5vdCBjYWxsZWQgaGVy ZS4gIElmIERJUkVDVE9SWSBpcyBub3QgcHJvdmlkZWQsCi0rIyBpdCBpcyBhc3N1bWVkIHRvIGJl IGBsaWJsdGRsJy4gIExJQkxUREwgd2lsbCBiZSBwcmVmaXhlZCB3aXRoCi0rIyAnJHt0b3BfYnVp bGRkaXJ9LycgYW5kIExURExJTkNMIHdpbGwgYmUgcHJlZml4ZWQgd2l0aCAnJHt0b3Bfc3JjZGly fS8nCi0rIyAobm90ZSB0aGUgc2luZ2xlIHF1b3RlcyEpLiAgSWYgeW91ciBwYWNrYWdlIGlzIG5v dCBmbGF0IGFuZCB5b3UncmUgbm90Ci0rIyB1c2luZyBhdXRvbWFrZSwgZGVmaW5lIHRvcF9idWls ZGRpciBhbmQgdG9wX3NyY2RpciBhcHByb3ByaWF0ZWx5IGluCi0rIyB0aGUgTWFrZWZpbGVzLgot K0FDX0RFRlVOKFtBQ19MSUJMVERMX0NPTlZFTklFTkNFXSwKLStbQUNfQkVGT1JFKFskMF0sW0FD X0xJQlRPT0xfU0VUVVBdKWRubAotKyAgY2FzZSAkZW5hYmxlX2x0ZGxfY29udmVuaWVuY2UgaW4K LSsgIG5vKSBBQ19NU0dfRVJST1IoW3RoaXMgcGFja2FnZSBuZWVkcyBhIGNvbnZlbmllbmNlIGxp Ymx0ZGxdKSA7OwotKyAgIiIpIGVuYWJsZV9sdGRsX2NvbnZlbmllbmNlPXllcwotKyAgICAgIGFj X2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgLS1lbmFibGUtbHRkbC1jb252ZW5p ZW5jZSIgOzsKLSsgIGVzYWMKLSsgIExJQkxUREw9JyR7dG9wX2J1aWxkZGlyfS8naWZlbHNlKCQj LDEsWyQxXSxbJ2xpYmx0ZGwnXSkvbGlibHRkbGMubGEKLSsgIExURExJTkNMPSctSSR7dG9wX3Ny Y2Rpcn0vJ2lmZWxzZSgkIywxLFskMV0sWydsaWJsdGRsJ10pCi0rICAjIEZvciBiYWNrd2FyZHMg bm9uLWdldHRleHQgY29uc2lzdGVudCBjb21wYXRpYmlsaXR5Li4uCi0rICBJTkNMVERMPSIkTFRE TElOQ0wiCi0rXSkjIEFDX0xJQkxURExfQ09OVkVOSUVOQ0UKLSsKLSsKLSsjIEFDX0xJQkxURExf SU5TVEFMTEFCTEUoW0RJUkVDVE9SWV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKyMgc2V0cyBMSUJMVERMIHRvIHRoZSBsaW5rIGZsYWdzIGZvciB0aGUgbGlibHRk bCBpbnN0YWxsYWJsZSBsaWJyYXJ5IGFuZAotKyMgTFRETElOQ0wgdG8gdGhlIGluY2x1ZGUgZmxh Z3MgZm9yIHRoZSBsaWJsdGRsIGhlYWRlciBhbmQgYWRkcwotKyMgLS1lbmFibGUtbHRkbC1pbnN0 YWxsIHRvIHRoZSBjb25maWd1cmUgYXJndW1lbnRzLiAgTm90ZSB0aGF0Ci0rIyBBQ19DT05GSUdf U1VCRElSUyBpcyBub3QgY2FsbGVkIGhlcmUuICBJZiBESVJFQ1RPUlkgaXMgbm90IHByb3ZpZGVk LAotKyMgYW5kIGFuIGluc3RhbGxlZCBsaWJsdGRsIGlzIG5vdCBmb3VuZCwgaXQgaXMgYXNzdW1l ZCB0byBiZSBgbGlibHRkbCcuCi0rIyBMSUJMVERMIHdpbGwgYmUgcHJlZml4ZWQgd2l0aCAnJHt0 b3BfYnVpbGRkaXJ9LycjIGFuZCBMVERMSU5DTCB3aXRoCi0rIyAnJHt0b3Bfc3JjZGlyfS8nIChu b3RlIHRoZSBzaW5nbGUgcXVvdGVzISkuICBJZiB5b3VyIHBhY2thZ2UgaXMgbm90Ci0rIyBmbGF0 IGFuZCB5b3UncmUgbm90IHVzaW5nIGF1dG9tYWtlLCBkZWZpbmUgdG9wX2J1aWxkZGlyIGFuZCB0 b3Bfc3JjZGlyCi0rIyBhcHByb3ByaWF0ZWx5IGluIHRoZSBNYWtlZmlsZXMuCi0rIyBJbiB0aGUg ZnV0dXJlLCB0aGlzIG1hY3JvIG1heSBoYXZlIHRvIGJlIGNhbGxlZCBhZnRlciBBQ19QUk9HX0xJ QlRPT0wuCi0rQUNfREVGVU4oW0FDX0xJQkxURExfSU5TVEFMTEFCTEVdLAotK1tBQ19CRUZPUkUo WyQwXSxbQUNfTElCVE9PTF9TRVRVUF0pZG5sCi0rICBBQ19DSEVDS19MSUIobHRkbCwgbHRfZGxp bml0LAotKyAgW3Rlc3QgeCIkZW5hYmxlX2x0ZGxfaW5zdGFsbCIgIT0geHllcyAmJiBlbmFibGVf bHRkbF9pbnN0YWxsPW5vXSwKLSsgIFtpZiB0ZXN0IHgiJGVuYWJsZV9sdGRsX2luc3RhbGwiID0g eG5vOyB0aGVuCi0rICAgICBBQ19NU0dfV0FSTihbbGlibHRkbCBub3QgaW5zdGFsbGVkLCBidXQg aW5zdGFsbGF0aW9uIGRpc2FibGVkXSkKLSsgICBlbHNlCi0rICAgICBlbmFibGVfbHRkbF9pbnN0 YWxsPXllcwotKyAgIGZpCi0rICBdKQotKyAgaWYgdGVzdCB4IiRlbmFibGVfbHRkbF9pbnN0YWxs IiA9IHgieWVzIjsgdGhlbgotKyAgICBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9h cmdzIC0tZW5hYmxlLWx0ZGwtaW5zdGFsbCIKLSsgICAgTElCTFRETD0nJHt0b3BfYnVpbGRkaXJ9 LydpZmVsc2UoJCMsMSxbJDFdLFsnbGlibHRkbCddKS9saWJsdGRsLmxhCi0rICAgIExURExJTkNM PSctSSR7dG9wX3NyY2Rpcn0vJ2lmZWxzZSgkIywxLFskMV0sWydsaWJsdGRsJ10pCi0rICBlbHNl Ci0rICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgLS1lbmFibGUtbHRk bC1pbnN0YWxsPW5vIgotKyAgICBMSUJMVERMPSItbGx0ZGwiCi0rICAgIExURExJTkNMPQotKyAg ZmkKLSsgICMgRm9yIGJhY2t3YXJkcyBub24tZ2V0dGV4dCBjb25zaXN0ZW50IGNvbXBhdGliaWxp dHkuLi4KLSsgIElOQ0xUREw9IiRMVERMSU5DTCIKLStdKSMgQUNfTElCTFRETF9JTlNUQUxMQUJM RQotKwotKwotKyMgQUNfTElCVE9PTF9DWFgKLSsjIC0tLS0tLS0tLS0tLS0tCi0rIyBlbmFibGUg c3VwcG9ydCBmb3IgQysrIGxpYnJhcmllcwotK0FDX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sCi0r W0FDX1JFUVVJUkUoW19MVF9BQ19MQU5HX0NYWF0pCi0rXSkjIEFDX0xJQlRPT0xfQ1hYCi0rCi0r Ci0rIyBfTFRfQUNfTEFOR19DWFgKLSsjIC0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfTFRf QUNfTEFOR19DWFhdLAotK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NYWF0pCi0rQUNfUkVRVUlSRShb X0xUX0FDX1BST0dfQ1hYQ1BQXSkKLStfTFRfQUNfU0hFTExfSU5JVChbdGFnbmFtZXM9JHt0YWdu YW1lcyske3RhZ25hbWVzfSx9Q1hYXSkKLStdKSMgX0xUX0FDX0xBTkdfQ1hYCi0rCi0rIyBfTFRf QUNfUFJPR19DWFhDUFAKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfTFRfQUNf UFJPR19DWFhDUFBdLAotK1sKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0NYWF0pCi0raWYgdGVzdCAt biAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKLSsgICAgKCAodGVzdCAiWCRD WFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8Ci0rICAgICh0ZXN0 ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgotKyAgQUNfUFJPR19DWFhDUFAKLStmaQotK10p IyBfTFRfQUNfUFJPR19DWFhDUFAKLSsKLSsjIEFDX0xJQlRPT0xfRjc3Ci0rIyAtLS0tLS0tLS0t LS0tLQotKyMgZW5hYmxlIHN1cHBvcnQgZm9yIEZvcnRyYW4gNzcgbGlicmFyaWVzCi0rQUNfREVG VU4oW0FDX0xJQlRPT0xfRjc3XSwKLStbQUNfUkVRVUlSRShbX0xUX0FDX0xBTkdfRjc3XSkKLStd KSMgQUNfTElCVE9PTF9GNzcKLSsKLSsKLSsjIF9MVF9BQ19MQU5HX0Y3NwotKyMgLS0tLS0tLS0t LS0tLS0tCi0rQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N10sCi0rW0FDX1JFUVVJUkUoW0FDX1BS T0dfRjc3XSkKLStfTFRfQUNfU0hFTExfSU5JVChbdGFnbmFtZXM9JHt0YWduYW1lcyske3RhZ25h bWVzfSx9Rjc3XSkKLStdKSMgX0xUX0FDX0xBTkdfRjc3Ci0rCi0rCi0rIyBBQ19MSUJUT09MX0dD SgotKyMgLS0tLS0tLS0tLS0tLS0KLSsjIGVuYWJsZSBzdXBwb3J0IGZvciBHQ0ogbGlicmFyaWVz Ci0rQUNfREVGVU4oW0FDX0xJQlRPT0xfR0NKXSwKLStbQUNfUkVRVUlSRShbX0xUX0FDX0xBTkdf R0NKXSkKLStdKSMgQUNfTElCVE9PTF9HQ0oKLSsKLSsKLSsjIF9MVF9BQ19MQU5HX0dDSgotKyMg LS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW19MVF9BQ19MQU5HX0dDSl0sCi0rW0FDX1BST1ZJ REVfSUZFTFNFKFtBQ19QUk9HX0dDSl0sW10sCi0rICBbQUNfUFJPVklERV9JRkVMU0UoW0FdW01f UFJPR19HQ0pdLFtdLAotKyAgICBbQUNfUFJPVklERV9JRkVMU0UoW0xUX0FDX1BST0dfR0NKXSxb XSwKLSsgICAgICBbaWZkZWYoW0FDX1BST0dfR0NKXSxbQUNfUkVRVUlSRShbQUNfUFJPR19HQ0pd KV0sCi0rCSBbaWZkZWYoW0FdW01fUFJPR19HQ0pdLFtBQ19SRVFVSVJFKFtBXVtNX1BST0dfR0NK XSldLAotKwkgICBbQUNfUkVRVUlSRShbQV1bQ19QUk9HX0dDSl9PUl9BXVtNX1BST0dfR0NKXSld KV0pXSldKV0pCi0rX0xUX0FDX1NIRUxMX0lOSVQoW3RhZ25hbWVzPSR7dGFnbmFtZXMrJHt0YWdu YW1lc30sfUdDSl0pCi0rXSkjIF9MVF9BQ19MQU5HX0dDSgotKwotKwotKyMgQUNfTElCVE9PTF9S QwotKyMgLS0tLS0tLS0tLS0tLQotKyMgZW5hYmxlIHN1cHBvcnQgZm9yIFdpbmRvd3MgcmVzb3Vy Y2UgZmlsZXMKLStBQ19ERUZVTihbQUNfTElCVE9PTF9SQ10sCi0rW0FDX1JFUVVJUkUoW0xUX0FD X1BST0dfUkNdKQotK19MVF9BQ19TSEVMTF9JTklUKFt0YWduYW1lcz0ke3RhZ25hbWVzKyR7dGFn bmFtZXN9LH1SQ10pCi0rXSkjIEFDX0xJQlRPT0xfUkMKLSsKLSsKLSsjIEFDX0xJQlRPT0xfTEFO R19DX0NPTkZJRwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0 aGUgY29uZmlndXJhdGlvbiB2YXJzIGZvciB0aGUgQyBjb21waWxlciBhcmUKLSsjIHN1aXRhYmx5 IGRlZmluZWQuICBUaG9zZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5Ci0rIyBB Q19MSUJUT09MX0NPTkZJRyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBg bGlidG9vbCcuCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DX0NPTkZJR10sIFtfTFRfQUNf TEFOR19DX0NPTkZJR10pCi0rQUNfREVGVU4oW19MVF9BQ19MQU5HX0NfQ09ORklHXSwKLStbbHRf c2F2ZV9DQz0iJENDIgotK0FDX0xBTkdfUFVTSChDKQotKwotKyMgU291cmNlIGZpbGUgZXh0ZW5z aW9uIGZvciBDIHRlc3Qgc291cmNlcy4KLSthY19leHQ9YwotKwotKyMgT2JqZWN0IGZpbGUgZXh0 ZW5zaW9uIGZvciBjb21waWxlZCBDIHRlc3Qgc291cmNlcy4KLStvYmpleHQ9bwotK19MVF9BQ19U QUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBs ZSBjb21waWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92 YXJpYWJsZSA9IDA7IgotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3Rz Ci0rbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbigpe3JldHVybigwKTt9JwotKwot K19MVF9BQ19TWVNfQ09NUElMRVIKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Yg c2ltcGxlIHRlc3QgY29kZQotK19MVF9DT01QSUxFUl9CT0lMRVJQTEFURQotK19MVF9MSU5LRVJf Qk9JTEVSUExBVEUKLSsKLStBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9fUlRUSSgkMSkKLStB Q19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDKCQxKQotK0FDX0xJQlRPT0xfUFJPR19DQ19DX08o JDEpCi0rQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTKCQxKQotK0FDX0xJQlRPT0xfUFJP R19MRF9TSExJQlMoJDEpCi0rQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCi0rQUNf TElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rQUNfTElCVE9PTF9TWVNfTElC X1NUUklQCi0rQUNfTElCVE9PTF9ETE9QRU5fU0VMRgotKwotKyMgUmVwb3J0IHdoaWNoIGxpYnJh cnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWlsdAotK0FDX01TR19DSEVDS0lORyhbaWYgbGli dG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLStBQ19NU0dfUkVTVUxUKFskY2FuX2J1 aWxkX3NoYXJlZF0pCi0rCi0rQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJl ZCBsaWJyYXJpZXNdKQotK3Rlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxl X3NoYXJlZD1ubwotKwotKyMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGli cmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAotKyMgYXJlIGFsbCBidWlsdCBmcm9t IFBJQy4KLStjYXNlICRob3N0X29zIGluCi0rYWl4MyopCi0rICB0ZXN0ICIkZW5hYmxlX3NoYXJl ZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRo ZW4KLSsgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgotKyAg ICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCi0rICBmaQotKyAgOzsKLSsKLSthaXhb WzQtOV1dKikKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3Vz ZV9ydW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KLSsgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQi ID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsgIGZpCi0rICAgIDs7Ci0rZXNhYwotK0FDX01T R19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKLSsKLStBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIg dG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0rIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9z aGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0g eWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCi0rQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNd KQotKwotK0FDX0xJQlRPT0xfQ09ORklHKCQxKQotKwotK0FDX0xBTkdfUE9QCi0rQ0M9IiRsdF9z YXZlX0NDIgotK10pIyBBQ19MSUJUT09MX0xBTkdfQ19DT05GSUcKLSsKLSsKLSsjIEFDX0xJQlRP T0xfTEFOR19DWFhfQ09ORklHCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5z dXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFycyBmb3IgdGhlIEMgY29tcGlsZXIgYXJlCi0r IyBzdWl0YWJseSBkZWZpbmVkLiAgVGhvc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNl ZCBieQotKyMgQUNfTElCVE9PTF9DT05GSUcgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3Vy YXRpb24gdG8gYGxpYnRvb2wnLgotK0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJ R10sIFtfTFRfQUNfTEFOR19DWFhfQ09ORklHKENYWCldKQotK0FDX0RFRlVOKFtfTFRfQUNfTEFO R19DWFhfQ09ORklHXSwKLStbQUNfTEFOR19QVVNIKEMrKykKLStBQ19SRVFVSVJFKFtBQ19QUk9H X0NYWF0pCi0rQUNfUkVRVUlSRShbX0xUX0FDX1BST0dfQ1hYQ1BQXSkKLSsKLStfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLStfTFRfQUNfVEFHVkFSKGFsbG93X3Vu ZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMs ICQxKT1ubwotK19MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQotK19MVF9B Q19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT1ubwotK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPQotK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19s ZCwgJDEpPQotK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQot K19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCi0rX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKLStfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCi0rX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21kcywgJDEp PQotK19MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX0FDX1RBR1ZB UihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9BQ19UQUdWQVIob2xkX2FyY2hp dmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX0FDX1RBR1ZBUihub191bmRlZmlu ZWRfZmxhZywgJDEpPQotK19MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0KLStfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQx KT1ubwotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9i amVjdCBiZWluZyBsaW5rZWQ6Ci0rX0xUX0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPQot K19MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihwcmVk ZXBzLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihwb3N0ZGVwcywgJDEpPQotK19MVF9BQ19UQUdWQVIo Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihjb21waWxlcl9s aWJfc2VhcmNoX2RpcnMsICQxKT0KLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysr IHRlc3Qgc291cmNlcy4KLSthY19leHQ9Y3BwCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24g Zm9yIGNvbXBpbGVkIEMrKyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfQUNfVEFHVkFS KG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29t cGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFi bGUgPSAwOyIKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oaW50LCBjaGFyICpbW11dKSB7IHJldHVy bigwKTsgfScKLSsKLSsjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJh dGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rX0xUX0FDX1NZU19DT01QSUxFUgotKwot KyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0rX0xUX0NP TVBJTEVSX0JPSUxFUlBMQVRFCi0rX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwotKyMgQWxsb3cg Q0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rbHRfc2F2ZV9DQz0kQ0MK LStsdF9zYXZlX0xEPSRMRAotK2x0X3NhdmVfR0NDPSRHQ0MKLStHQ0M9JEdYWAotK2x0X3NhdmVf d2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCi0rbHRfc2F2ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xE Ci0raWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9IjsgdGhlbgotKyAgbHRf Y3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkY3h4Ci0rZWxzZQotKyAgJGFzX3Vuc2V0 IGx0X2N2X3Byb2dfZ251X2xkCi0rZmkKLStpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhfTERDWFgr c2V0fSI7IHRoZW4KLSsgIGx0X2N2X3BhdGhfTEQ9JGx0X2N2X3BhdGhfTERDWFgKLStlbHNlCi0r ICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAotK2ZpCi0rdGVzdCAteiAiJHtMRENYWCtzZXR9IiB8 fCBMRD0kTERDWFgKLStDQz0ke0NYWC0iYysrIn0KLStjb21waWxlcj0kQ0MKLStfTFRfQUNfVEFH VkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQotKwot KyMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3ZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBz byBzZXQgdGhlCi0rIyBub19idWlsdGluX2ZsYWcgc2VwYXJhdGVseQotK2lmIHRlc3QgIiRHWFgi ID0geWVzOyB0aGVuCi0rICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnLCAkMSk9JyAtZm5vLWJ1aWx0aW4nCi0rZWxzZQotKyAgX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPQotK2ZpCi0rCi0raWYgdGVzdCAiJEdY WCIgPSB5ZXM7IHRoZW4KLSsgICMgU2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9u Ci0rCi0rICBBQ19QUk9HX0xECi0rCi0rICAjIENoZWNrIGlmIEdOVSBDKysgdXNlcyBHTlUgbGQg YXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5jZSB0aGUKLSsgICMgYXJjaGl2aW5nIGNvbW1h bmRzIGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgotKyAgaWYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCi0rICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWIn Ci0rCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSck e3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rCi0rICAgICMgSWYg YXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5Ci0rICAg ICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVsaW1pbmF0ZWQgaW4gbHRjZi1jeHgsIGJ1dCBJ IG5lZWQgdG8KLSsgICAgIyAgICAgaW52ZXN0aWdhdGUgaXQgYSBsaXR0bGUgYml0IG1vcmUuIChN TSkKLSsgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBz dXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCi0rICAgIGlmIGV2YWwgImAkQ0MgLXByaW50 LXByb2ctbmFtZT1sZGAgLS1oZWxwIDI+JjEiIHwgXAotKwlncmVwICduby13aG9sZS1hcmNoaXZl JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xh cmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgZWxzZQotKyAgICAgIF9MVF9BQ19UQUdWQVIo d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgd2l0 aF9nbnVfbGQ9bm8KLSsgICAgd2xhcmM9Ci0rCi0rICAgICMgQSBnZW5lcmljIGFuZCB2ZXJ5IHNp bXBsZSBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5IGNyZWF0aW9uCi0rICAgICMgY29tbWFuZCBmb3Ig R05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUgbmF0aXZlCi0rICAgICMgbGlu a2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElmIHBvc3NpYmxlLCB0aGlzIHNldHRpbmcgc2hvdWxk Ci0rICAgICMgb3ZlcnJpZGRlbiB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgbmF0aXZlIGxpbmtl ciBmZWF0dXJlcyBvbgotKyAgICAjIHRoZSBwbGF0Zm9ybSBpdCBpcyBiZWluZyB1c2VkIG9uLgot KyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzIC1vICRsaWInCi0rICBmaQotKwotKyAgIyBDb21tYW5kcyB0byBtYWtlIGNv bXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKyAgIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rICAj IGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSck Q0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgIlwtTCIn Ci0rCi0rZWxzZQotKyAgR1hYPW5vCi0rICB3aXRoX2dudV9sZD1ubwotKyAgd2xhcmM9Ci0rZmkK LSsKLSsjIFBPUlRNRTogZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgQysr IGxpbmsgY2hhcmFjdGVyaXN0aWNzCi0rQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29t cGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQotK19MVF9BQ19U QUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgYWl4MyopCi0r ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICBfTFRf QUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgIDs7Ci0rICBhaXhbWzQtOV1dKikKLSsg ICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgICAjIE9uIElBNjQsIHRo ZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0Ci0r ICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCi0rICAgICAgYWl4X3VzZV9ydW50 aW1lbGlua2luZz1ubwotKyAgICAgIGV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCi0rICAgICAgbm9f ZW50cnlfZmxhZz0iIgotKyAgICBlbHNlCi0rICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1u bwotKwotKyAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5r aW5nIG9yIG5vcm1hbAotKyAgICAgICMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNv bWV3aGVyZSBpbiBMREZMQUdTLCB3ZQotKyAgICAgICMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtp bmcuCi0rICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFp eFtbNS05XV0qKQotKwlmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICBjYXNlICRsZF9m bGFnIGluCi0rCSAgKi1icnRsKikKLSsJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCi0r CSAgICBicmVhawotKwkgICAgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsJOzsKLSsgICAgICBlc2Fj Ci0rCi0rICAgICAgZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKLSsgICAgICBub19lbnRyeV9mbGFn PSctYm5vZW50cnknCi0rICAgIGZpCi0rCi0rICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBv ciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KLSsgICAgIyBoYXZlIHByb2Js ZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5 Ci0rICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAt bW1pbmltYWwtdG9jIHRvCi0rICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4g dGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90Ci0rICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJv YmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwotKyAgICBfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPScnCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9eWVzCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwg JDEpPSc6JwotKyAgICBfTFRfQUNfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsK LSsgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICBjYXNlICRob3N0X29zIGlu IGFpeDQuW1swMTJdXXxhaXg0LltbMDEyXV0uKikKLSsgICAgICAjIFdlIG9ubHkgd2FudCB0byBk byB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKLSsgICAgICAjIGJlbG93IGZv ciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJY29sbGVjdDJuYW1l PWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAotKwlpZiB0ZXN0IC1mICIkY29sbGVj dDJuYW1lIiAmJiBcCi0rCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZl X2xpYl9uYW1lID4vZGV2L251bGwKLSsJdGhlbgotKwkgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xs ZWN0MgotKwkgIDoKLSsJZWxzZQotKwkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSsJICBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCi0rCSAgIyBJdCBmYWls cyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAotKwkg ICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9t aW51c19MCi0rCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCi0rCSAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rCSAgX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsJICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLSsJZmkKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rICAgICAgaWYgdGVzdCAiJGFpeF91c2Vf cnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCXNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcg Iicke3dsfS1HJwotKyAgICAgIGZpCi0rICAgIGVsc2UKLSsgICAgICAjIG5vdCB1c2luZyBnY2MK LSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIFZpc3VhbEFnZSBD KyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQotKwkj IGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgotKwlzaGFy ZWRfZmxhZz0nLUcnCi0rICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlu a2luZyIgPSB5ZXM7IHRoZW4KLSsJICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKLSsJZWxzZQotKwkg IHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0rCWZpCi0rICAgICAgZmkKLSsgICAgZmkKLSsK LSsgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJl Z2lubmluZyB3aXRoCi0rICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBn ZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCi0rICAgIF9MVF9BQ19UQUdWQVIo YWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCi0rICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1 bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNp bmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAotKyAgICAgICMgLWJl cm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGli cmFyeS4KLSsgICAgICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Jy1i ZXJvaycKLSsgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZh bHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KLSsgICAgICBfTFRfQUNfU1lTX0xJ QlBBVEhfQUlYCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0rCi0rICAgICAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MiJyAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWci JyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0g IngiOyB0aGVuIGVjaG8gIiR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZp YCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCi0r ICAgICBlbHNlCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRp cjovdXNyL2xpYjovbGliJwotKwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAk MSk9Ii16IG5vZGVmcyIKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAk ZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHth bGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJv bHMiCi0rICAgICAgZWxzZQotKwkjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20g dGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KLSsJX0xUX0FDX1NZU19M SUJQQVRIX0FJWAotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsJIyBXYXJuaW5nIC0g d2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKLSsJIyAtYmVy b2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJy YXJ5LgotKwlfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJu b3RvaycKLSsJX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0t YmVyb2snCi0rCSMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9i amVjdHMgZnJvbSBhcmNoaXZlcwotKwlfTFRfQUNfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjLCAkMSk9JyRjb252ZW5pZW5jZScKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVl ZF9sYywgJDEpPXllcwotKwkjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFs bHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8k c29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAk e3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZM QUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29u YW1lJwotKyAgICAgIGZpCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICBiZW9zKikKLSsgICAgaWYg JExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rl di9udWxsOyB0aGVuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPXVuc3VwcG9ydGVkCi0rICAgICAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNv bT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKyAgICAgICMgc3VwcG9ydCAtLXVuZGVmaW5l ZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKLSsgICAgICBfTFRf QUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAg IGVsc2UKLSsgICAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgIGZpCi0r ICAgIDs7Ci0rCi0rICBjaG9ydXMqKQotKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAg ICopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwlfTFRf QUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsK LSsgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsgICAgIyBfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKLSsgICAg IyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgX0xUX0FD X1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgIF9MVF9B Q19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsgICAgX0xUX0FDX1RBR1ZB UihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCi0rCi0rICAgIGlm ICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgot KyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1 dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAg ICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFz dCBsaW5lCi0rICAgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHBy ZXBlbmQuLi4KLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0n aWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KLSsJ Y3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKyAgICAgIGVs c2UKLSsJZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCWNhdCAk ZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rICAgICAgZml+ Ci0rICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVm ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1p bWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICBlbHNl Ci0rICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICBmaQotKyAgOzsK LSsgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEp PXllcwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVu c3VwcG9ydGVkCi0rICAgICAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywg JDEpPScnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIkX2x0X2Rhcl9h bGxvd191bmRlZmluZWQiCi0rICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgOyB0aGVuCi0rICAg ICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rICAgICAgX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFn IC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9u YW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0 X2RzeW11dGlsfSIKLSsgICAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9IlwkQ0Mg XCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxp YnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBfTFRfQUNfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9s cyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5h bWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGli cyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0 cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5 bXV0aWx9IgotKyAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9InNl ZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGli bmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGli IC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4 cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVf Y2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KLSsgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAt byBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxl cl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9k c3ltdXRpbH0iCi0rICAgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHts aWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9z dGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFs bG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwk Y29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5n JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBmaQotKyAgICAg IGVsc2UKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgeGxjKikKLSsgICAg ICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKLSsgICAgICAgICAgX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1xbWtzaHJvYmogJHt3bH0tc2luZ2xlX21vZHVs ZSAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9YGVjaG8gJHJwYXRoLyRzb25hbWVgICR4 bGN2ZXJzdHJpbmcnCi0rICAgICAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0n JENDICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRlcGxp YnMkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgICAgICMgRG9uJ3QgZml4IHRoaXMgYnkgdXNpbmcg dGhlIGxkIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgZmxhZywgaXQgZG9lc24ndCBleGlzdCBpbiBv bGRlciBkYXJ3aW4gbGRzCi0rICAgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4u KlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5 bWJvbHMuZXhwc3ltfiRDQyAtcW1rc2hyb2JqICR7d2x9LXNpbmdsZV9tb2R1bGUgJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LWluc3RhbGxfbmFtZSAke3dsfSRycGF0aC8kc29uYW1lICR4bGN2ZXJzdHJpbmd+bm1lZGl0 IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JwotKyAg ICAgICAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPSdzZWQgLWUgInMs Iy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5 bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAkYWxs b3dfdW5kZWZpbmVkX2ZsYWcgIC1vICRsaWIgLWJ1bmRsZSAkbGlib2JqcyAkZGVwbGlicyRjb21w aWxlcl9mbGFnc35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4 cHN5bSAke2xpYn0nCi0rICAgICAgICAgIDs7Ci0rICAgICAgICopCi0rICAgICAgICAgX0xUX0FD X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsg ICAgICBmaQotKyAgICAgICAgOzsKLSsKLSsgIGRndXgqKQotKyAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgotKyAgICAgIGVjKysqKQotKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKyAgICAg IGdoY3gqKQotKwkjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKwk7OwotKyAgICAgICopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCTs7Ci0rICAg IGVzYWMKLSsgICAgOzsKLSsgIGZyZWVic2RbWzEyXV0qKQotKyAgICAjIEMrKyBzaGFyZWQgbGli cmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVmb3JlIHN3aXRjaCB0byBFTEYK LSsgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICA7OwotKyAgZnJlZWJz ZC1lbGYqKQotKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8K LSsgICAgOzsKLSsgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICAgIyBGcmVlQlNEIDMgYW5k IGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFyZCBFTEYKLSsgICAgIyBj b252ZW50aW9ucwotKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcwotKyAgICA7 OwotKyAgZ251KikKLSsgICAgOzsKLSsgIGhwdXg5KikKLSsgICAgX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKyAgICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAgIF9MVF9B Q19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rICAgIF9M VF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCQkJ CSMgYnV0IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCSMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0r Ci0rICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgIENDKikKLSsgICAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICBfTFRfQUNfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCi0rICAgICAgOzsKLSsgICAgYUNDKikKLSsgICAgICBfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckcm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLWIg JHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIg cHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rICAgICAgIyB3aGF0ICJoaWRkZW4i IGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rICAgICAg IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rICAgICAgIwotKyAgICAgICMgVGhlcmUgZG9l c24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsg ICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQg dG8gc3RyaXAgdGhlbQotKyAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24n dCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsgICAgICAjIGRlcGVuZGVuY2llcy4KLSsg ICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAt diBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgZ3JlcCAiW1stXV1MImA7IGxpc3Q9IiI7IGZvciB6 IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlz dCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hv ICRsaXN0JwotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7 IHRoZW4KLSsgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRybSAkb3V0 cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStiICR7 d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRl c3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkbGliJwotKyAgICAgIGVsc2UKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgaHB1eDEw KnxocHV4MTEqKQotKyAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCi0rICAgICAg X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3 bH0kbGliZGlyJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciwgJDEpPToKLSsKLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqfGlh NjQqKSA7OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjLCAkMSk9JyR7d2x9LUUnCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsg ICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgaHBwYSo2NCp8aWE2NCopCi0rICAgICAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCi0r CQkJCQkgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAotKwkJCQkJICAgICAgIyBsb2NhdGlvbiBv ZiB0aGUgbGlicmFyeS4KLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rICAgICAgQ0MqKQotKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKyAg ICAgIGFDQyopCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQqKQotKwkgIF9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBfTFRfQUNfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0 cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAk e3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwllc2FjCi0r CSMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKLSsJIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFn cyBhcmUgdXNlZCB3aGVuCi0rCSMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkjCi0rCSMg VGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVy IGZyb20KLSsJIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBu ZWVkIHRvIHN0cmlwIHRoZW0KLSsJIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0 IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkjIGRlcGVuZGVuY2llcy4KLSsJb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3Qu JG9iamV4dCAyPiYxKSB8IGdyZXAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7 IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2Jq ZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZWNobyAkbGlzdCcKLSsJOzsK LSsgICAgICAqKQotKwlpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKwkgIGlmIHRlc3QgJHdp dGhfZ251X2xkID0gbm87IHRoZW4KLSsJICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAgICBocHBh KjY0KikKLSsJICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz JwotKwkgICAgICA7OwotKwkgICAgaWE2NCopCi0rCSAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNv bmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgOzsK LSsJICAgICopCi0rCSAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9 JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICA7OwotKwkgICAgZXNh YwotKwkgIGZpCi0rCWVsc2UKLSsJICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKLSsJICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCWZpCi0rCTs7 Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGludGVyaXhbWzMtOV1dKikKLSsgICAgX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsgICAgX0xUX0FDX1RBR1ZB UihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsgICAgIyBIYWNrOiBP biBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4g Z2NjLgotKyAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBp bWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5Ci0rICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBp ZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKLSsgICAgIyBjb25z dW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEg cmFuZG9tLAotKyAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAw MDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0rICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9t IDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgotKyAgICBfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFz ZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAt byAkbGliJwotKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2Vk ICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+ JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5 NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgOzsKLSsgIGlyaXg1 KiB8IGlyaXg2KikKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBDQyopCi0rCSMg U0dJIEMrKwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAt YWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3Ry aW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0rCSMgQXJjaGl2ZXMgY29u dGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkjICJDQyAt YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMrKyBjb21waWxlci4gIFRoaXMgaXMKLSsJIyBu ZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVk Ci0rCSMgaW4gdGhlIGFyY2hpdmUuCi0rCV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywg JDEpPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRvYmpzJwotKwk7OwotKyAgICAgICop Ci0rCWlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rCSAgaWYgdGVzdCAiJHdpdGhfZ251X2xk IiA9IG5vOyB0aGVuCi0rCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3Ry aW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0 aW9ucyAtbyAkbGliJwotKwkgIGVsc2UKLSsJICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9 JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAk e3dsfSR2ZXJzdHJpbmdgIC1vICRsaWInCi0rCSAgZmkKLSsJZmkKLSsJX0xUX0FDX1RBR1ZBUihs aW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxp YmRpcicKLSsgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 OgotKyAgICA7OwotKyAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgY2FzZSAkY2NfYmFzZW5h bWUgaW4KLSsgICAgICBLQ0MqKQotKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkg QysrIENvbXBpbGVyCi0rCi0rCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFy eSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBI UC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQotKwkjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0 aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05 QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUg InMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1l IC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAn XCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8g JGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAt LXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRl eHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCi0rCSMgQ29tbWFuZHMgdG8gbWFrZSBj b21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSMg bGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkjCi0rCSMgVGhlcmUgZG9lc24ndCBhcHBlYXIg dG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsJIyBleHBsaWNpdGx5 IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJ IyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUg bGlicmFyeQotKwkjIGRlcGVuZGVuY2llcy4KLSsJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3Rl bXBsaXN0PWAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNo YXJlZF9leHQgMj4mMSB8IGdyZXAgImxkImA7IHJtIC1mIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQ7 IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2Jq ZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztl c2FjOyBkb25lOyBlY2hvICRsaXN0JwotKwotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXJwYXRoLCRsaWJkaXInCi0rCV9MVF9BQ19UQUdWQVIo ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsK LSsJIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVk IHVzaW5nCi0rCSMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkNDIiBpcyB0aGUgS0FJIEMrKyBjb21w aWxlci4KLSsJX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRp YyAtbyAkb2xkbGliICRvbGRvYmpzJwotKwk7OwotKyAgICAgIGljcGMqKQotKwkjIEludGVsIEMr KwotKwl3aXRoX2dudV9sZD15ZXMKLSsJIyB2ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBj aG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKLSsJIyBpZiB3ZSBhZGQgJHByZWRlcF9v YmplY3RzIGFuZCAkcG9zdGRlcF9vYmplY3RzLCBob3dldmVyIDcuMSBhbmQKLSsJIyBlYXJsaWVy IGRvIG5vdCBhZGQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4KLSsJY2FzZSBgJENDIC1WIDI+JjFg IGluCi0rCSoiVmVyc2lvbiA3LiIqKQotKyAgCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRs aWInCi0rICAJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1i b2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgOzsKLSsJKikgICMgVmVy c2lvbiA4LjAgb3IgbmV3ZXIKLSsJICB0bXBfaWR5bj0KLSsJICBjYXNlICRob3N0X2NwdSBpbgot KwkgICAgaWE2NCopIHRtcF9pZHluPScgLWlfZHluYW1pYyc7OwotKwkgIGVzYWMKLSsgIAkgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKLSsJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJEND IC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBv cnRfc3ltYm9scyAtbyAkbGliJwotKwkgIDs7Ci0rCWVzYWMKLSsJX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwlfTFRfQUNfVEFHVkFSKGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rCV9M VF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFy Y2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCTs7Ci0rICAgICAg cGdDQyogfCBwZ2NwcCopCi0rICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgot KwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKLSsgIAlfTFRfQUNf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZp bGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsKLSsJX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCi0r CV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBv cnQtZHluYW1pYycKLSsJX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0 ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwk Y29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xl LWFyY2hpdmUnCi0rICAgICAgICA7OwotKyAgICAgIGN4eCopCi0rCSMgQ29tcGFxIEMrKwotKwlf TFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9s cycKLSsKLSsJcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwotKwlfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rCi0rCSMgQ29tbWFuZHMgdG8gbWFr ZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJIyB3aGF0ICJo aWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0r CSMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkjCi0rCSMgVGhlcmUgZG9lc24ndCBhcHBl YXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsJIyBleHBsaWNp dGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0K LSsJIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0 aGUgbGlicmFyeQotKwkjIGRlcGVuZGVuY2llcy4KLSsJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9 J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8 IGdyZXAgImxkImA7IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlzdCB8ICRTRUQgInMvXCheLipsZC4q XClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNh c2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7 ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZWNobyAkbGlzdCcKLSsJOzsKLSsgICAg ICAqKQotKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCi0rCSAg IyBTdW4gQysrIDUuOQotKwkgIF9MVF9BQ19UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0n IC16ZGVmcycKLSsJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzJwotKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rCSAgX0xUX0FDX1RBR1ZBUih3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVu aWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZc IiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRl Y2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsKLSsJ ICAjIE5vdCBzdXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9uCi0rCSAgIyAkQ0MgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMQotKwkg ICMgd291bGQgYmUgYmV0dGVyLgotKwkgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwot KwotKwkgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3Jl YXRlZCB1c2luZwotKwkgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNv bXBpbGVyLiAgVGhpcyBpcwotKwkgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0 ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkgICMgaW4gdGhlIGFyY2hpdmUuCi0rCSAgX0xU X0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9s ZG9ianMnCi0rCSAgOzsKLSsJZXNhYwotKwk7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBseW54 b3MqKQotKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsg ICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICA7OwotKyAgbTg4ayopCi0r ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICBfTFRf QUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgIDs7Ci0rICBtdnMqKQotKyAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGN4eCopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0r CTs7Ci0rICAgICAgKikKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0Ci0rCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsgICAgZXNhYwot KyAgICA7OwotKyAgbmV0YnNkKikKLSsgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBn cmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIHds YXJjPQotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PSctUiRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15 ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwot KyAgICBmaQotKyAgICAjIFdvcmthcm91bmQgc29tZSBicm9rZW4gcHJlLTEuNSB0b29sY2hhaW5z Ci0rICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNv bmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgY29uZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6 LWxnY2MgLWxjIC1sZ2NjOjoiJwotKyAgICA7OwotKyAgb3BlbmJzZDIqKQotKyAgICAjIEMrKyBz aGFyZWQgbGlicmFyaWVzIGFyZSBmYWlybHkgYnJva2VuCi0rICAgIF9MVF9BQ19UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsgICAgOzsKLSsgIG9wZW5ic2QqKQotKyAgICBpZiB0ZXN0IC1mIC91 c3IvbGliZXhlYy9sZC5zbzsgdGhlbgotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFy LCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCi0rICAgICAgX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rICAg ICAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIg fHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVu Ci0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1i b2xzIC1vICRsaWInCi0rCV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LUUnCi0rCV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hv bGUtYXJjaGl2ZScKLSsgICAgICBmaQotKyAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdl Y2hvJwotKyAgICBlbHNlCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot KyAgICBmaQotKyAgICA7OwotKyAgb3NmMyopCi0rICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0r ICAgICAgS0NDKikKLSsJIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21w aWxlcgotKwotKwkjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhl IG91dHB1dCBmaWxlCi0rCSMgZW5kcyB3aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBz byByZW5hbWUgdGhlIGxpYnJhcnkKLSsJIyB0byBpdHMgcHJvcGVyIG5hbWUgKHdpdGggdmVyc2lv bikgYWZ0ZXIgbGlua2luZy4KLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndGVt cGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEtent9 XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3Rl bXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRl bXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJwotKwotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwkjIEFyY2hpdmVzIGNvbnRh aW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJIyAiQ0MgLUJz dGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBpbGVyLgotKwlfTFRfQUNfVEFH VkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9i anMnCi0rCi0rCTs7Ci0rICAgICAgUkNDKikKLSsJIyBSYXRpb25hbCBDKysgMi40LjEKLSsJIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCV9MVF9BQ19UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsgICAgICBjeHgqKQotKwlfTFRfQUNfVEFHVkFSKGFs bG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwq JwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3df dW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRl X3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0rCV9M VF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAk e3dsfSRsaWJkaXInCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwg JDEpPToKLSsKLSsJIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBv dXRwdXQgdGhhdCBsaXN0cwotKwkjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmls ZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnku Ci0rCSMKLSsJIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRo aXMgY29tcGlsZXIgZnJvbQotKwkjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZp bGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0 IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSMgZGVwZW5kZW5jaWVz LgotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxB R1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAibGQiIHwgZ3JlcCAtdiAibGQ6ImA7 IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlzdCB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkLiok XCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25m dGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxp c3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JwotKwk7OwotKyAgICAgICopCi0rCWlmIHRl c3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkgIF9M VF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJl c29sdmVkICR7d2x9XConCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9 LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9 JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsKLSsJICBfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGli ZGlyJwotKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToK LSsKLSsJICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1 dCB0aGF0IGxpc3RzCi0rCSAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVz IGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnku Ci0rCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29u ZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAiXC1MIicKLSsKLSsJZWxzZQotKwkgICMgRklYTUU6 IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgIF9MVF9BQ19UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsJZmkKLSsJOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgb3NmNCog fCBvc2Y1KikKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBLQ0MqKQotKwkjIEt1 Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCi0rCi0rCSMgS0NDIHdp bGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJIyBl bmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFy eQotKwkjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgot KwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRf ZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7 IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsg JENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGli ICRsaWInCi0rCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PScke3dsfS1ycGF0aCwkbGliZGlyJwotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IsICQxKT06Ci0rCi0rCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZp bGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkjIHRoZSBLQUkgQysrIGNvbXBpbGVyLgotKwlf TFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRvbGRsaWIgJG9sZG9i anMnCi0rCTs7Ci0rICAgICAgUkNDKikKLSsJIyBSYXRpb25hbCBDKysgMi40LjEKLSsJIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCV9MVF9BQ19UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsgICAgICBjeHgqKQotKwlfTFRfQUNfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCV9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxh Z30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIg JiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1 dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmlu dGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lfgot KwkgIGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+Ci0rCSAgJENDIC1zaGFyZWQkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSAtV2wsLWlucHV0IC1X bCwkbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uCSR2 ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYn4KLSsJICAkcm0gJGxpYi5leHAnCi0rCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKLSsJX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwkjIENvbW1hbmRzIHRvIG1ha2Ug Y29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSMgd2hhdCAiaGlk ZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkj IGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJIwotKwkjIFRoZXJlIGRvZXNuJ3QgYXBwZWFy IHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSMgZXhwbGljaXRs eSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0r CSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhl IGxpYnJhcnkKLSsJIyBkZXBlbmRlbmNpZXMuCi0rCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0 ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBn cmVwICJsZCIgfCBncmVwIC12ICJsZDoiYDsgdGVtcGxpc3Q9YGVjaG8gJHRlbXBsaXN0IHwgJFNF RCAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRl bXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7 ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3Qn Ci0rCTs7Ci0rICAgICAgKikKLSsJaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IG5vOyB0aGVuCi0rCSAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxh ZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJIF9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1l IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZl cnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYicKLSsKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsJICAjIENvbW1hbmRzIHRv IG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgIyB3 aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3 aGVuCi0rCSAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwg Z3JlcCAiXC1MIicKLSsKLSsJZWxzZQotKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAotKwkgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJZmkK LSsJOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgcHNvcyopCi0rICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGli cywgJDEpPW5vCi0rICAgIDs7Ci0rICBzdW5vczQqKQotKyAgICBjYXNlICRjY19iYXNlbmFtZSBp bgotKyAgICAgIENDKikKLSsJIyBTdW4gQysrIDQueAotKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot Kwk7OwotKyAgICAgIGxjYyopCi0rCSMgTHVjaWQKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0Ci0rCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJ OzsKLSsgICAgICAqKQotKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKyAgICBlc2FjCi0r ICAgIDs7Ci0rICBzb2xhcmlzKikKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBD QyopCi0rCSMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKLSsgICAgICAgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsJDEpPXllcwotKwlfTFRfQUNfVEFHVkFS KG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRlZnMnCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICAtaCRzb25hbWUgLW8g JGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VE IC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAk bGliLmV4cH4KLSsJJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gICR7d2x9LU0gJHt3bH0k bGliLmV4cCAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJwotKwotKwlf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwot KwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwljYXNlICRo b3N0X29zIGluCi0rCSAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsK LSsJICAqKQotKwkgICAgIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVv cmRlciBsaW5rZXIgb3B0aW9ucywKLSsJICAgICMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJf ZmxhZycuCi0rCSAgICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/ KQotKwkgICAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBh bGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JwotKwkgICAgOzsKLSsJZXNh YwotKwlfTFRfQUNfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsKLSsJb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rCi0rCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysg b2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkjICJDQyAteGFyIiwgd2hlcmUg IkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMKLSsJIyBuZWNlc3NhcnkgdG8g bWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSMgaW4gdGhl IGFyY2hpdmUuCi0rCV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLXhh ciAtbyAkb2xkbGliICRvbGRvYmpzJwotKwk7OwotKyAgICAgIGdjeCopCi0rCSMgR3JlZW4gSGls bHMgQysrIENvbXBpbGVyCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKLSsKLSsJIyBUaGUg QysrIGNvbXBpbGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCi0rCV9MVF9B Q19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgJExERkxBR1MgLWFyY2hpdmUgLW8g JG9sZGxpYiAkb2xkb2JqcycKLSsJOzsKLSsgICAgICAqKQotKwkjIEdOVSBDKysgY29tcGlsZXIg d2l0aCBTb2xhcmlzIGxpbmtlcgotKwlpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0 aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJICBfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFn LCAkMSk9JyAke3dsfS16ICR7d2x9ZGVmcycKLSsJICBpZiAkQ0MgLS12ZXJzaW9uIHwgZ3JlcCAt diAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LWggJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3lt Ym9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDog KjsgfTsiID4+ICRsaWIuZXhwfgotKwkJJENDIC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHds JGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJwotKwotKwkgICAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwot KwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgIG91 dHB1dF92ZXJib3NlX2xpbmtfY21kPSIkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRv YmpleHQgMj4mMSB8IGdyZXAgXCJcLUxcIiIKLSsJICBlbHNlCi0rCSAgICAjIGcrKyAyLjcgYXBw ZWFycyB0byByZXF1aXJlIGAtRycgTk9UIGAtc2hhcmVkJyBvbiB0aGlzCi0rCSAgICAjIHBsYXRm b3JtLgotKwkgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HIC1ub3N0 ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAg ICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJGVjaG8gInsgZ2xvYmFs OiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7 LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCQkkQ0Mg LUcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRs aWIuZXhwJwotKwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVy Ym9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywg b2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBz aGFyZWQgbGlicmFyeS4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSIkQ0MgLUcgJENG TEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwIFwiXC1MXCIiCi0rCSAgZmkKLSsK LSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t UiAkd2wkbGliZGlyJwotKwkgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJICBzb2xhcmlzMi5bWzAtNV1d IHwgc29sYXJpczIuW1swLTVdXS4qKSA7OwotKwkgICopCi0rCSAgICBfTFRfQUNfVEFHVkFSKHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZl bmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKLSsJICAgIDs7Ci0rCSAgZXNhYwot KwlmaQotKwk7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVu VU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bWzAxXV0uW1sxMF1dKiB8IHVuaXh3YXJlNyogfCBzY28z LjJ2NS4wLltbMDI0XV0qKQotKyAgICBfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAk MSk9JyR7d2x9LXosdGV4dCcKLSsgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPW5vCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEp PW5vCi0rICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsgICAgICBDQyopCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0Mg LUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7OwotKyAgICAgICopCi0rCV9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6 JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKLSsJOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgc3lzdjUqIHwg c2NvMy4ydjUqIHwgc2NvNXY2KikKLSsgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZz IGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKLSsgICAgIyBsaW5rIHdpdGgg LWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bwot KyAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxp YnJhcnkgd291bGQKLSsgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVz aW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAotKyAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRj aCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKLSsgICAgIyBhcyAt eiBkZWZzLgotKyAgICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBpdCBpcyBoaWdobHkgcmVjb21t ZW5kZWQgdGhhdCB5b3UgYWx3YXlzCi0rICAgICMgdXNlIGFic29sdXRlIHBhdGhzIGZvciBuYW1p bmcgc2hhcmVkIGxpYnJhcmllcywgYW5kIGV4Y2x1ZGUgdGhlCi0rICAgICMgRFRfUlVOUEFUSCB0 YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0IGRvaW5nIHNvCi0rICAgICMg cmVxdWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3aWNlLCB3aGljaCBpcyBhIHBh aW4uCi0rICAgICMgU28gdGhhdCBiZWhhdmlvdXIgaXMgb25seSBlbmFibGVkIGlmIFNDT0FCU1BB VEggaXMgc2V0IHRvIGEKLSsgICAgIyBub24tZW1wdHkgdmFsdWUgaW4gdGhlIGVudmlyb25tZW50 LiAgTW9zdCBsaWtlbHkgb25seSB1c2VmdWwgZm9yCi0rICAgICMgY3JlYXRpbmcgb2ZmaWNpYWwg ZGlzdHJpYnV0aW9ucyBvZiBwYWNrYWdlcy4KLSsgICAgIyBUaGlzIGlzIGEgaGFjayB1bnRpbCBs aWJ0b29sIG9mZmljaWFsbHkgc3VwcG9ydHMgYWJzb2x1dGUgcGF0aAotKyAgICAjIG5hbWVzIGZv ciBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFn LCAkMSk9JyR7d2x9LXosdGV4dCcKLSsgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPScke3dsfS16LG5vZGVmcycKLSsgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2Nt ZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tUiwkbGliZGlyYCcK LSsgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCi0r ICAgIF9MVF9BQ19UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKyAgICBfTFRfQUNf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0JwotKyAg ICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rICAgICAgQ0MqKQotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcg JHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9s cyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7OwotKyAgICAgICopCi0r CV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsXCR7 U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3ds fS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7OwotKyAgICBlc2FjCi0rICAgIDs7 Ci0rICB0YW5kZW0qKQotKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIE5DQyopCi0r CSMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKyAg ICAgICopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwlf TFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsK LSsgIHZ4d29ya3MqKQotKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKLSsgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICA7OwotKyAg KikKLSsgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAg IF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgOzsKLStlc2FjCi0rQUNfTVNH X1JFU1VMVChbJF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSldKQotK3Rlc3QgIiRfTFRfQUNf VEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLStf TFRfQUNfVEFHVkFSKEdDQywgJDEpPSIkR1hYIgotK19MVF9BQ19UQUdWQVIoTEQsICQxKT0iJExE IgotKwotK0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVAoJDEpCi0rQUNfTElCVE9PTF9QUk9HX0NP TVBJTEVSX1BJQygkMSkKLStBQ19MSUJUT09MX1BST0dfQ0NfQ19PKCQxKQotK0FDX0xJQlRPT0xf U1lTX0hBUkRfTElOS19MT0NLUygkMSkKLStBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTKCQxKQot K0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQotK0FDX0xJQlRPT0xfUFJPR19MRF9I QVJEQ09ERV9MSUJQQVRIKCQxKQotKwotK0FDX0xJQlRPT0xfQ09ORklHKCQxKQotKwotK0FDX0xB TkdfUE9QCi0rQ0M9JGx0X3NhdmVfQ0MKLStMRENYWD0kTEQKLStMRD0kbHRfc2F2ZV9MRAotK0dD Qz0kbHRfc2F2ZV9HQ0MKLSt3aXRoX2dudV9sZGN4eD0kd2l0aF9nbnVfbGQKLSt3aXRoX2dudV9s ZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2x0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQK LStsdF9jdl9wYXRoX0xEPSRsdF9zYXZlX3BhdGhfTEQKLStsdF9jdl9wcm9nX2dudV9sZGN4eD0k bHRfY3ZfcHJvZ19nbnVfbGQKLStsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9s ZAotK10pIyBBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJRwotKwotKyMgQUNfTElCVE9PTF9QT1NU REVQX1BSRURFUChbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIEZpZ3VyZSBvdXQgImhpZGRlbiIgbGlicmFyeSBkZXBlbmRlbmNpZXMgZnJvbSB2 ZXJib3NlCi0rIyBjb21waWxlciBvdXRwdXQgd2hlbiBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnku Ci0rIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkK LSsjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KLStBQ19ERUZVTihbQUNf TElCVE9PTF9QT1NUREVQX1BSRURFUF0sCi0rW0FDX1JFUVVJUkUoW0xUX0FDX1BST0dfU0VEXSlk bmwKLStkbmwgd2UgY2FuJ3QgdXNlIHRoZSBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUgaGVy ZSwKLStkbmwgYmVjYXVzZSBpdCBjb250YWlucyBjb2RlIGludGVuZGVkIGZvciBhbiBleGVjdXRh YmxlLAotK2RubCBub3QgYSBsaWJyYXJ5LiAgSXQncyBwb3NzaWJsZSB3ZSBzaG91bGQgbGV0IGVh Y2gKLStkbmwgdGFnIGRlZmluZSBhIG5ldyBsdF8/Pz8/X2xpbmtfdGVzdF9jb2RlIHZhcmlhYmxl LAotK2RubCBidXQgaXQncyBvbmx5IHVzZWQgaGVyZS4uLgotK2lmZWxzZShbJDFdLFtdLFtjYXQg PiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0raW50IGE7Ci0rdm9pZCBmb28gKHZvaWQpIHsgYSA9 IDA7IH0KLStFT0YKLStdLFskMV0sW0NYWF0sW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YK LStjbGFzcyBGb28KLSt7Ci0rcHVibGljOgotKyAgRm9vICh2b2lkKSB7IGEgPSAwOyB9Ci0rcHJp dmF0ZToKLSsgIGludCBhOwotK307Ci0rRU9GCi0rXSxbJDFdLFtGNzddLFtjYXQgPiBjb25mdGVz dC4kYWNfZXh0IDw8RU9GCi0rICAgICAgc3Vicm91dGluZSBmb28KLSsgICAgICBpbXBsaWNpdCBu b25lCi0rICAgICAgaW50ZWdlcio0IGEKLSsgICAgICBhPTAKLSsgICAgICByZXR1cm4KLSsgICAg ICBlbmQKLStFT0YKLStdLFskMV0sW0dDSl0sW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YK LStwdWJsaWMgY2xhc3MgZm9vIHsKLSsgIHByaXZhdGUgaW50IGE7Ci0rICBwdWJsaWMgdm9pZCBi YXIgKHZvaWQpIHsKLSsgICAgYSA9IDA7Ci0rICB9Ci0rfTsKLStFT0YKLStdKQotK2RubCBQYXJz ZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKLStkbmwgb2Jq ZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgotK2lmIEFDX1RSWV9FVkFMKGFjX2Nv bXBpbGUpOyB0aGVuCi0rICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3Qg dGhlIG5lY2Vzc2FyeQotKyAgIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3Mu Ci0rCi0rICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB3 ZSBhcmUgYmVmb3JlCi0rICAjIHRoZSBjb25mdGVzdCBvYmplY3QgZmlsZS4KLSsgIHByZV90ZXN0 X29iamVjdF9kZXBzX2RvbmU9bm8KLSsKLSsgICMgVGhlIGAqJyBpbiB0aGUgY2FzZSBtYXRjaGVz IGZvciBhcmNoaXRlY3R1cmVzIHRoYXQgdXNlIGBjYXNlJyBpbgotKyAgIyAkb3V0cHV0X3ZlcmJv c2VfY21kIGNhbiB0cmlnZ2VyIGdsb2IgZXhwYW5zaW9uIGR1cmluZyB0aGUgbG9vcAotKyAgIyBl dmFsIHdpdGhvdXQgdGhpcyBzdWJzdGl0dXRpb24uCi0rICBvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD1gJGVjaG8gIlgkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQiIHwgJFhzZWQgLWUgIiRub19nbG9i X3N1YnN0ImAKLSsKLSsgIGZvciBwIGluIGBldmFsICRvdXRwdXRfdmVyYm9zZV9saW5rX2NtZGA7 IGRvCi0rICAgIGNhc2UgJHAgaW4KLSsKLSsgICAgLUwqIHwgLVIqIHwgLWwqKQotKyAgICAgICAj IFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRo LgotKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCi0rICAgICAgIGlmIHRlc3QgJHAgPSAiLUwi IFwKLSsJICB8fCB0ZXN0ICRwID0gIi1SIjsgdGhlbgotKwkgcHJldj0kcAotKwkgY29udGludWUK LSsgICAgICAgZWxzZQotKwkgcHJldj0KLSsgICAgICAgZmkKLSsKLSsgICAgICAgaWYgdGVzdCAi JHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KLSsJIGNhc2UgJHAgaW4KLSsJ IC1MKiB8IC1SKikKLSsJICAgIyBJbnRlcm5hbCBjb21waWxlciBsaWJyYXJ5IHBhdGhzIHNob3Vs ZCBjb21lIGFmdGVyIHRob3NlCi0rCSAgICMgcHJvdmlkZWQgdGhlIHVzZXIuICBUaGUgcG9zdGRl cHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQotKwkgICAjIHVzZXIgc3VwcGxpZWQgbGlicyBzbyB0 aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgdGhlbS4KLSsJICAgaWYgdGVzdCAteiAiJF9MVF9B Q19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkiOyB0aGVuCi0rCSAgICAgX0xU X0FDX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0iJHtwcmV2fSR7cH0iCi0r CSAgIGVsc2UKLSsJICAgICBfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwg JDEpPSIke19MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9ICR7cHJl dn0ke3B9IgotKwkgICBmaQotKwkgICA7OwotKwkgIyBUaGUgIi1sIiBjYXNlIHdvdWxkIG5ldmVy IGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKLSsJICMgbGlua2VkLCBzbyBkb24ndCBib3Ro ZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgotKwkgZXNhYwotKyAgICAgICBlbHNlCi0rCSBpZiB0ZXN0 IC16ICIkX0xUX0FDX1RBR1ZBUihwb3N0ZGVwcywgJDEpIjsgdGhlbgotKwkgICBfTFRfQUNfVEFH VkFSKHBvc3RkZXBzLCAkMSk9IiR7cHJldn0ke3B9IgotKwkgZWxzZQotKwkgICBfTFRfQUNfVEFH VkFSKHBvc3RkZXBzLCAkMSk9IiR7X0xUX0FDX1RBR1ZBUihwb3N0ZGVwcywgJDEpfSAke3ByZXZ9 JHtwfSIKLSsJIGZpCi0rICAgICAgIGZpCi0rICAgICAgIDs7Ci0rCi0rICAgICouJG9iamV4dCkK LSsgICAgICAgIyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBvYmplY3QgZmlsZSBvbmx5IHNo b3dzIHVwCi0rICAgICAgICMgb25jZSBpbiB0aGUgY29tcGlsZXIgb3V0cHV0LgotKyAgICAgICBp ZiB0ZXN0ICIkcCIgPSAiY29uZnRlc3QuJG9iamV4dCI7IHRoZW4KLSsJIHByZV90ZXN0X29iamVj dF9kZXBzX2RvbmU9eWVzCi0rCSBjb250aW51ZQotKyAgICAgICBmaQotKwotKyAgICAgICBpZiB0 ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgotKwkgaWYgdGVzdCAt eiAiJF9MVF9BQ19UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSI7IHRoZW4KLSsJICAgX0xUX0FD X1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPSIkcCIKLSsJIGVsc2UKLSsJICAgX0xUX0FDX1RB R1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPSIkX0xUX0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywg JDEpICRwIgotKwkgZmkKLSsgICAgICAgZWxzZQotKwkgaWYgdGVzdCAteiAiJF9MVF9BQ19UQUdW QVIocG9zdGRlcF9vYmplY3RzLCAkMSkiOyB0aGVuCi0rCSAgIF9MVF9BQ19UQUdWQVIocG9zdGRl cF9vYmplY3RzLCAkMSk9IiRwIgotKwkgZWxzZQotKwkgICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBf b2JqZWN0cywgJDEpPSIkX0xUX0FDX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKSAkcCIKLSsJ IGZpCi0rICAgICAgIGZpCi0rICAgICAgIDs7Ci0rCi0rICAgICopIDs7ICMgSWdub3JlIHRoZSBy ZXN0LgotKwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICAjIENsZWFuIHVwLgotKyAgcm0gLWYg YS5vdXQgYS5leGUKLStlbHNlCi0rICBlY2hvICJsaWJ0b29sLm00OiBlcnJvcjogcHJvYmxlbSBj b21waWxpbmcgJDEgdGVzdCBwcm9ncmFtIgotK2ZpCi0rCi0rJHJtIC1mIGNvbmZlc3QuJG9iamV4 dAotKwotK19MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9Ci0raWYg dGVzdCAtbiAiJF9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkiOyB0 aGVuCi0rICBfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycywgJDEpPWBlY2hv ICIgJHtfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSIgfCAke1NF RH0gLWUgJ3MhIC1MISAhZycgLWUgJ3MhXiAhISdgCi0rZmkKLSsKLSsjIFBPUlRNRTogb3ZlcnJp ZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGJyb2tlbgotK2lmZWxzZShbJDFd LFtDWFhdLAotK1tjYXNlICRob3N0X29zIGluCi0raW50ZXJpeFtbMy05XV0qKQotKyAgIyBJbnRl cml4IDMuNSBpbnN0YWxscyBjb21wbGV0ZWx5IGhvc2VkIC5sYSBmaWxlcyBmb3IgQysrLCBzbyBy YXRoZXIgdGhhbgotKyAgIyBoYWNrIGFsbCBhcm91bmQgaXQsIGxldCdzIGp1c3QgdHJ1c3QgImcr KyIgdG8gRFRSVC4KLSsgIF9MVF9BQ19UQUdWQVIocHJlZGVwX29iamVjdHMsJDEpPQotKyAgX0xU X0FDX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsJDEpPQotKyAgX0xUX0FDX1RBR1ZBUihwb3N0ZGVw cywkMSk9Ci0rICA7OwotKwotK2xpbnV4KikKLSsgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVx YCBpbgotKyAgKlN1blwgQyopCi0rICAgICMgU3VuIEMrKyA1LjkKLSsgICAgIwotKyAgICAjIFRo ZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBp bmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAg ICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGli cmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1Mg IiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9z dGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlz X3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihwb3N0ZGVw cywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsKLSsg IGVzYWMKLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAg Q0MqKQotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJh cnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBz cGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4g YXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIg JENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAg ICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAg ICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJy YXJpZXMgZm9yCi0rICAgICMgU3VuIGNvbXBpbGVyIHZlcnNpb25zIGJlZm9yZSA1LjYsIGVsc2Ug UElDIG9iamVjdHMgZnJvbSBhbiBvbGQKLSsgICAgIyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGlu dG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUgYnVncy4KLSsgICAgaWYgdGVzdCAiJHNv bGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KLSsgICAgICBfTFRfQUNfVEFHVkFSKHBv c3RkZXBzLCQxKT0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVuJwotKyAgICBmaQotKyAgICA7 OwotKyAgZXNhYwotKyAgOzsKLStlc2FjCi0rXSkKLStjYXNlICIgJF9MVF9BQ19UQUdWQVIocG9z dGRlcHMsICQxKSAiIGluCi0rKiIgLWxjICIqKSBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19u ZWVkX2xjLCAkMSk9bm8gOzsKLStlc2FjCi0rXSkjIEFDX0xJQlRPT0xfUE9TVERFUF9QUkVERVAK LSsKLSsjIEFDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFycyBmb3IgdGhlIEMg Y29tcGlsZXIgYXJlCi0rIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhvc2UgdmFyaWFibGVzIGFyZSBz dWJzZXF1ZW50bHkgdXNlZCBieQotKyMgQUNfTElCVE9PTF9DT05GSUcgdG8gd3JpdGUgdGhlIGNv bXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK0FDX0RFRlVOKFtBQ19MSUJUT09M X0xBTkdfRjc3X0NPTkZJR10sIFtfTFRfQUNfTEFOR19GNzdfQ09ORklHKEY3NyldKQotK0FDX0RF RlVOKFtfTFRfQUNfTEFOR19GNzdfQ09ORklHXSwKLStbQUNfUkVRVUlSRShbQUNfUFJPR19GNzdd KQotK0FDX0xBTkdfUFVTSChGb3J0cmFuIDc3KQotKwotK19MVF9BQ19UQUdWQVIoYXJjaGl2ZV9j bWRzX25lZWRfbGMsICQxKT1ubwotK19MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcs ICQxKT0KLStfTFRfQUNfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0rX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihleHBv cnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLStfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPW5vCi0rX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 Ci0rX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Ci0rX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9Ci0rX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KLStfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9t YXRpYywgJDEpPW5vCi0rX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQotK19MVF9BQ19U QUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9k ZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEp PSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEp PQotK19MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KLStfTFRfQUNf VEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwotKwotKyMg U291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmNzcgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD1mCi0r Ci0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIGY3NyB0ZXN0IHNvdXJjZXMu Ci0rb2JqZXh0PW8KLStfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENv ZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxl X3Rlc3RfY29kZT0iXAotKyAgICAgIHN1YnJvdXRpbmUgdAotKyAgICAgIHJldHVybgotKyAgICAg IGVuZAotKyIKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAotKyAgICAgIHByb2dyYW0gdAotKyAgICAgIGVuZAot KyIKLSsKLSsjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMg c28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rX0xUX0FDX1NZU19DT01QSUxFUgotKwotKyMgc2F2 ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0rX0xUX0NPTVBJTEVS X0JPSUxFUlBMQVRFCi0rX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwotKyMgQWxsb3cgQ0MgdG8g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rbHRfc2F2ZV9DQz0iJENDIgotK0ND PSR7Rjc3LSJmNzcifQotK2NvbXBpbGVyPSRDQwotK19MVF9BQ19UQUdWQVIoY29tcGlsZXIsICQx KT0kQ0MKLStfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rCi0rQUNfTVNHX0NIRUNLSU5H KFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQotK0FDX01TR19SRVNVTFQo WyRjYW5fYnVpbGRfc2hhcmVkXSkKLSsKLStBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVp bGQgc2hhcmVkIGxpYnJhcmllc10pCi0rdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAm JiBlbmFibGVfc2hhcmVkPW5vCi0rCi0rIyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0 YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5kCi0rIyBhcmUgYWxsIGJ1 aWx0IGZyb20gUElDLgotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgIHRlc3QgIiRlbmFi bGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICBpZiB0ZXN0IC1uICIkUkFO TElCIjsgdGhlbgotKyAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRs aWIiCi0rICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKLSsgIGZpCi0rICA7Owot K2FpeFtbNC05XV0qKQotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRh aXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKyAgICB0ZXN0ICIkZW5hYmxlX3No YXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotK0FD X01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKLSsKLStBQ19NU0dfQ0hFQ0tJTkcoW3doZXRo ZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0rIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJs ZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rdGVzdCAiJGVuYWJsZV9zaGFyZWQi ID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCi0rQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0 aWNdKQotKwotK19MVF9BQ19UQUdWQVIoR0NDLCAkMSk9IiRHNzciCi0rX0xUX0FDX1RBR1ZBUihM RCwgJDEpPSIkTEQiCi0rCi0rQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQygkMSkKLStBQ19M SUJUT09MX1BST0dfQ0NfQ19PKCQxKQotK0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLUygk MSkKLStBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTKCQxKQotK0FDX0xJQlRPT0xfU1lTX0RZTkFN SUNfTElOS0VSKCQxKQotK0FDX0xJQlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIKCQxKQot KwotK0FDX0xJQlRPT0xfQ09ORklHKCQxKQotKwotK0FDX0xBTkdfUE9QCi0rQ0M9IiRsdF9zYXZl X0NDIgotK10pIyBBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJRwotKwotKwotKyMgQUNfTElCVE9P TF9MQU5HX0dDSl9DT05GSUcKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFbnN1 cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJzIGZvciB0aGUgQyBjb21waWxlciBhcmUKLSsj IHN1aXRhYmx5IGRlZmluZWQuICBUaG9zZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2Vk IGJ5Ci0rIyBBQ19MSUJUT09MX0NPTkZJRyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJh dGlvbiB0byBgbGlidG9vbCcuCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19HQ0pfQ09ORklH XSwgW19MVF9BQ19MQU5HX0dDSl9DT05GSUcoR0NKKV0pCi0rQUNfREVGVU4oW19MVF9BQ19MQU5H X0dDSl9DT05GSUddLAotK1tBQ19MQU5HX1NBVkUKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lv biBmb3IgSmF2YSB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWphdmEKLSsKLSsjIE9iamVjdCBmaWxl IGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgSmF2YSB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStf TFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBp biBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iY2xh c3MgZm9vIHt9IgotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCi0r bHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdwdWJsaWMgY2xhc3MgY29uZnRlc3QgeyBwdWJsaWMg c3RhdGljIHZvaWQgbWFpbihTdHJpbmdbW11dIGFyZ3YpIHt9OyB9JwotKwotKyMgbHRtYWluIG9u bHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlz IHNldC4KLStfTFRfQUNfU1lTX0NPTVBJTEVSCi0rCi0rIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBs YXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLStfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKLStfTFRf TElOS0VSX0JPSUxFUlBMQVRFCi0rCi0rIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3VtZW50cy4KLStsdF9zYXZlX0NDPSIkQ0MiCi0rQ0M9JHtHQ0otImdjaiJ9Ci0rY29t cGlsZXI9JENDCi0rX0xUX0FDX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwotK19MVF9DQ19CQVNF TkFNRShbJGNvbXBpbGVyXSkKLSsKLSsjIEdDSiBkaWQgbm90IGV4aXN0IGF0IHRoZSB0aW1lIEdD QyBkaWRuJ3QgaW1wbGljaXRseSBsaW5rIGxpYmMgaW4uCi0rX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rCi0rX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRz LCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKLSsKLStBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9f UlRUSSgkMSkKLStBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDKCQxKQotK0FDX0xJQlRPT0xf UFJPR19DQ19DX08oJDEpCi0rQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTKCQxKQotK0FD X0xJQlRPT0xfUFJPR19MRF9TSExJQlMoJDEpCi0rQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5L RVIoJDEpCi0rQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rCi0rQUNf TElCVE9PTF9DT05GSUcoJDEpCi0rCi0rQUNfTEFOR19SRVNUT1JFCi0rQ0M9IiRsdF9zYXZlX0ND IgotK10pIyBBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJRwotKwotKwotKyMgQUNfTElCVE9PTF9M QU5HX1JDX0NPTkZJRwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRo YXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFycyBmb3IgdGhlIFdpbmRvd3MgcmVzb3VyY2UgY29tcGls ZXIgYXJlCi0rIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhvc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1 ZW50bHkgdXNlZCBieQotKyMgQUNfTElCVE9PTF9DT05GSUcgdG8gd3JpdGUgdGhlIGNvbXBpbGVy IGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdf UkNfQ09ORklHXSwgW19MVF9BQ19MQU5HX1JDX0NPTkZJRyhSQyldKQotK0FDX0RFRlVOKFtfTFRf QUNfTEFOR19SQ19DT05GSUddLAotK1tBQ19MQU5HX1NBVkUKLSsKLSsjIFNvdXJjZSBmaWxlIGV4 dGVuc2lvbiBmb3IgUkMgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD1yYwotKwotKyMgT2JqZWN0IGZp bGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBSQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStf TFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBp biBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0nc2Ft cGxlIE1FTlUgeyBNRU5VSVRFTSAiJlNvdXAiLCAxMDAsIENIRUNLRUQgfScKLSsKLSsjIENvZGUg dG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29k ZT0iJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIKLSsKLSsjIGx0bWFpbiBvbmx5IHVzZXMg JENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0r X0xUX0FDX1NZU19DT01QSUxFUgotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBz aW1wbGUgdGVzdCBjb2RlCi0rX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rX0xUX0xJTktFUl9C T0lMRVJQTEFURQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1 bWVudHMuCi0rbHRfc2F2ZV9DQz0iJENDIgotK0NDPSR7UkMtIndpbmRyZXMifQotK2NvbXBpbGVy PSRDQwotK19MVF9BQ19UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKLStfTFRfQ0NfQkFTRU5BTUUo WyRjb21waWxlcl0pCi0rX0xUX0FDX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEp PXllcwotKwotK0FDX0xJQlRPT0xfQ09ORklHKCQxKQotKwotK0FDX0xBTkdfUkVTVE9SRQotK0ND PSIkbHRfc2F2ZV9DQyIKLStdKSMgQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJRwotKwotKwotKyMg QUNfTElCVE9PTF9DT05GSUcoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgSWYgVEFHTkFNRSBpcyBub3QgcGFzc2VkLCB0aGVuIGNyZWF0ZSBhbiBpbml0aWFs IGxpYnRvb2wgc2NyaXB0Ci0rIyB3aXRoIGEgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZyb20gdGhl IHVudGFnZ2VkIGNvbmZpZyB2YXJzLiAgT3RoZXJ3aXNlCi0rIyBhZGQgY29kZSB0byBjb25maWcu c3RhdHVzIGZvciBhcHBlbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gbmFtZWQgYnkKLSsjIFRBR05B TUUgZnJvbSB0aGUgbWF0Y2hpbmcgdGFnZ2VkIGNvbmZpZyB2YXJzLgotK0FDX0RFRlVOKFtBQ19M SUJUT09MX0NPTkZJR10sCi0rWyMgVGhlIGVsc2UgY2xhdXNlIHNob3VsZCBvbmx5IGZpcmUgd2hl biBib290c3RyYXBwaW5nIHRoZQotKyMgbGlidG9vbCBkaXN0cmlidXRpb24sIG90aGVyd2lzZSB5 b3UgZm9yZ290IHRvIHNoaXAgbHRtYWluLnNoCi0rIyB3aXRoIHlvdXIgcGFja2FnZSwgYW5kIHlv dSB3aWxsIGdldCBjb21wbGFpbnRzIHRoYXQgdGhlcmUgYXJlCi0rIyBubyBydWxlcyB0byBnZW5l cmF0ZSBsdG1haW4uc2guCi0raWYgdGVzdCAtZiAiJGx0bWFpbiI7IHRoZW4KLSsgICMgU2VlIGlm IHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBv dXIgY29tbWFuZHMgdGhyb3VnaAotKyAgIyB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzLgot KyAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KLSsgICAgc2V0b3B0IE5P X0dMT0JfU1VCU1QKLSsgIGZpCi0rICAjIE5vdyBxdW90ZSBhbGwgdGhlIHRoaW5ncyB0aGF0IG1h eSBjb250YWluIG1ldGFjaGFyYWN0ZXJzIHdoaWxlIGJlaW5nCi0rICAjIGNhcmVmdWwgbm90IHRv IG92ZXJxdW90ZSB0aGUgQUNfU1VCU1RlZCB2YWx1ZXMuICBXZSB0YWtlIGNvcGllcyBvZiB0aGUK LSsgICMgdmFyaWFibGVzIGFuZCBxdW90ZSB0aGUgY29waWVzIGZvciBnZW5lcmF0aW9uIG9mIHRo ZSBsaWJ0b29sIHNjcmlwdC4KLSsgIGZvciB2YXIgaW4gZWNobyBvbGRfQ0Mgb2xkX0NGTEFHUyBB UiBBUl9GTEFHUyBFR1JFUCBSQU5MSUIgTE5fUyBMVENDIExUQ0ZMQUdTIE5NIFwKLSsgICAgU0VE IFNIRUxMIFNUUklQIFwKLSsgICAgbGlibmFtZV9zcGVjIGxpYnJhcnlfbmFtZXNfc3BlYyBzb25h bWVfc3BlYyBleHRyYWN0X2V4cHN5bXNfY21kcyBcCi0rICAgIG9sZF9zdHJpcGxpYiBzdHJpcGxp YiBmaWxlX21hZ2ljX2NtZCBmaW5pc2hfY21kcyBmaW5pc2hfZXZhbCBcCi0rICAgIGRlcGxpYnNf Y2hlY2tfbWV0aG9kIHJlbG9hZF9mbGFnIHJlbG9hZF9jbWRzIG5lZWRfbG9ja3MgXAotKyAgICBs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2Nk ZWNsIFwKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MgXAot KyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMg XAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyBvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIFwKLSsg ICAgX0xUX0FDX1RBR1ZBUihjb21waWxlciwgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihDQywg JDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihMRCwgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl YywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUih0aHJlYWRfc2FmZV9mbGFnX3NwZWMsICQxKSBc Ci0rICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKSBcCi0rICAg IF9MVF9BQ19UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpIFwK LSsgICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSkgXAotKyAgICBfTFRfQUNf VEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKSBcCi0rICAgIF9MVF9BQ19UQUdW QVIocHJlZGVwX29iamVjdHMsICQxKSBcCi0rICAgIF9MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmpl Y3RzLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKHByZWRlcHMsICQxKSBcCi0rICAgIF9MVF9B Q19UQUdWQVIocG9zdGRlcHMsICQxKSBcCi0rICAgIF9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGli X3NlYXJjaF9wYXRoLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFy Y2hfZGlycywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKSBcCi0r ICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpIFwKLSsgICAgX0xUX0FD X1RBR1ZBUihwb3N0aW5zdGFsbF9jbWRzLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKHBvc3R1 bmluc3RhbGxfY21kcywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9t X2V4cHN5bXNfY21kcywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpIFwK LSsgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSkgXAotKyAgICBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBcCi0rICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpIFwKLSsgICAgX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21k cywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKSBcCi0r ICAgIF9MVF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKSBcCi0rICAgIF9M VF9BQ19UQUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihl eGNsdWRlX2V4cHN5bXMsICQxKSBcCi0rICAgIF9MVF9BQ19UQUdWQVIoaW5jbHVkZV9leHBzeW1z LCAkMSk7IGRvCi0rCi0rICAgIGNhc2UgJHZhciBpbgotKyAgICBfTFRfQUNfVEFHVkFSKG9sZF9h cmNoaXZlX2NtZHMsICQxKSB8IFwKLSsgICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9t X25ld19jbWRzLCAkMSkgfCBcCi0rICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkg fCBcCi0rICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpIHwgXAotKyAg ICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSkgfCBcCi0rICAgIF9MVF9BQ19UQUdWQVIo bW9kdWxlX2V4cHN5bV9jbWRzLCAkMSkgfCBcCi0rICAgIF9MVF9BQ19UQUdWQVIob2xkX2FyY2hp dmVfZnJvbV9leHBzeW1zX2NtZHMsICQxKSB8IFwKLSsgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRf c3ltYm9sc19jbWRzLCAkMSkgfCBcCi0rICAgIGV4dHJhY3RfZXhwc3ltc19jbWRzIHwgcmVsb2Fk X2NtZHMgfCBmaW5pc2hfY21kcyB8IFwKLSsgICAgcG9zdGluc3RhbGxfY21kcyB8IHBvc3R1bmlu c3RhbGxfY21kcyB8IFwKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMgfCBvbGRfcG9zdHVuaW5z dGFsbF9jbWRzIHwgXAotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgfCBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYykKLSsgICAgICAjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0 cmluZ3MuCi0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBc JFhzZWQgLWUgXCJcJGRvdWJsZV9xdW90ZV9zdWJzdFwiIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3Rc IiAtZSBcIlwkZGVsYXlfdmFyaWFibGVfc3Vic3RcIlxgXFxcIiIKLSsgICAgICA7OwotKyAgICAq KQotKyAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwgXCRYc2Vk IC1lIFwiXCRzZWRfcXVvdGVfc3Vic3RcIlxgXFxcIiIKLSsgICAgICA7OwotKyAgICBlc2FjCi0r ICBkb25lCi0rCi0rICBjYXNlICRsdF9lY2hvIGluCi0rICAqJ1xbJF0wIC0tZmFsbGJhY2stZWNo byInKQotKyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8ICRYc2VkIC1lICdzL1xcXFxc XFxbJF0wIC0tZmFsbGJhY2stZWNobyJbJF0vWyRdMCAtLWZhbGxiYWNrLWVjaG8iLydgCi0rICAg IDs7Ci0rICBlc2FjCi0rCi0raWZlbHNlKFskMV0sIFtdLAotKyAgW2NmZ2ZpbGU9IiR7b2ZpbGV9 VCIKLSsgIHRyYXAgIiRybSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1Ci0rICAkcm0gLWYg IiRjZmdmaWxlIgotKyAgQUNfTVNHX05PVElDRShbY3JlYXRpbmcgJG9maWxlXSldLAotKyAgW2Nm Z2ZpbGU9IiRvZmlsZSJdKQotKwotKyAgY2F0IDw8X19FT0ZfXyA+PiAiJGNmZ2ZpbGUiCi0raWZl bHNlKFskMV0sIFtdLAotK1sjISAkU0hFTEwKLSsKLSsjIGAkZWNobyAiJGNmZ2ZpbGUiIHwgc2Vk ICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBv cnQgc2VydmljZXMuCi0rIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSAkUFJPR1JBTSAoR05V ICRQQUNLQUdFICRWRVJTSU9OJFRJTUVTVEFNUCkKLSsjIE5PVEU6IENoYW5nZXMgbWFkZSB0byB0 aGlzIGZpbGUgd2lsbCBiZSBsb3N0OiBsb29rIGF0IGx0bWFpbi5zaC4KLSsjCi0rIyBDb3B5cmln aHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgKLSsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sOgotKyMgT3JpZ2lu YWxseSBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKLSsj Ci0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSsjIFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VCi0rIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0r IwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSsjCi0rIyBB cyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwg aWYgeW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0 IGNvbnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29u ZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVy bXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rCi0rIyBBIHNl ZCBwcm9ncmFtIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0LgotK1NFRD0kbHRfU0VECi0r Ci0rIyBTZWQgdGhhdCBoZWxwcyB1cyBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyBlY2hv KDEpIG9wdGlvbnMgbGlrZSAtbi4KLStYc2VkPSIkU0VEIC1lIDFzL15YLy8iCi0rCi0rIyBUaGUg SFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBz dGRvdXQKLSsjIGlmIENEUEFUSCBpcyBzZXQuCi0rKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAy PiYxICYmIHVuc2V0IENEUEFUSAotKwotKyMgVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmln dXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgotK2F2YWlsYWJsZV90YWdzPQotKwot KyMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHXSwKLStbIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcg Q09ORklHOiAkdGFnbmFtZV0pCi0rCi0rIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3Qg YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgotKwotKyMgU2hl bGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KLStTSEVMTD0kbHRfU0hFTEwK LSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRf bGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWls ZCBzdGF0aWMgbGlicmFyaWVzLgotK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCi0rCi0r IyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVz LgotK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVl ZF9sYywgJDEpCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3 aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljCi0rYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3Rh dGljX3J1bnRpbWVzPSRfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVu dGltZXMsICQxKQotKwotKyMgV2hldGhlciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5z dGFsbGF0aW9uLgotK2Zhc3RfaW5zdGFsbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbAotKwotKyMgVGhl IGhvc3Qgc3lzdGVtLgotK2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKLStob3N0PSRob3N0Ci0raG9z dF9vcz0kaG9zdF9vcwotKwotKyMgVGhlIGJ1aWxkIHN5c3RlbS4KLStidWlsZF9hbGlhcz0kYnVp bGRfYWxpYXMKLStidWlsZD0kYnVpbGQKLStidWlsZF9vcz0kYnVpbGRfb3MKLSsKLSsjIEFuIGVj aG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xhc2hlcy4KLStlY2hvPSRs dF9lY2hvCi0rCi0rIyBUaGUgYXJjaGl2ZXIuCi0rQVI9JGx0X0FSCi0rQVJfRkxBR1M9JGx0X0FS X0ZMQUdTCi0rCi0rIyBBIEMgY29tcGlsZXIuCi0rTFRDQz0kbHRfTFRDQwotKwotKyMgTFRDQyBj b21waWxlciBmbGFncy4KLStMVENGTEFHUz0kbHRfTFRDRkxBR1MKLSsKLSsjIEEgbGFuZ3VhZ2Ut c3BlY2lmaWMgY29tcGlsZXIuCi0rQ0M9JGx0X1tdX0xUX0FDX1RBR1ZBUihjb21waWxlciwgJDEp Ci0rCi0rIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBDIGNvbXBpbGVyPwotK3dpdGhfZ2NjPSRf TFRfQUNfVEFHVkFSKEdDQywgJDEpCi0rCi0rIyBBbiBFUkUgbWF0Y2hlci4KLStFR1JFUD0kbHRf RUdSRVAKLSsKLSsjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXMuCi0rTEQ9JGx0 X1tdX0xUX0FDX1RBR1ZBUihMRCwgJDEpCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgaGFyZCBvciBz b2Z0IGxpbmtzLgotK0xOX1M9JGx0X0xOX1MKLSsKLSsjIEEgQlNELWNvbXBhdGlibGUgbm0gcHJv Z3JhbS4KLStOTT0kbHRfTk0KLSsKLSsjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtCi0rU1RS SVA9JGx0X1NUUklQCi0rCi0rIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9t YWdpY19jbWQgYmVnaW5zICJmaWxlIgotK01BR0lDX0NNRD0kTUFHSUNfQ01ECi0rCi0rIyBVc2Vk IG9uIGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0uCi0rRExMVE9PTD0iJERMTFRPT0wiCi0r Ci0rIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KLStPQkpEVU1QPSIkT0JKRFVNUCIK LSsKLSsjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCi0rQVM9IiRBUyIKLSsKLSsjIFRoZSBu YW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxl cy4KLStvYmpkaXI9JG9iamRpcgotKwotKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVj dCBmaWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKLStyZWxvYWRfY21kcz0kbHRf cmVsb2FkX2NtZHMKLSsKLSsjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUg Y29tcGlsZXIuCi0rd2w9JGx0X1tdX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSkKLSsKLSsjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8iKS4KLStvYmpleHQ9IiRh Y19vYmpleHQiCi0rCi0rIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIikuCi0rbGli ZXh0PSIkbGliZXh0IgotKwotKyMgU2hhcmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAiLnNv IikuCi0rc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycKLSsKLSsjIEV4ZWN1dGFibGUgZmlsZSBz dWZmaXggKG5vcm1hbGx5ICIiKS4KLStleGVleHQ9IiRleGVleHQiCi0rCi0rIyBBZGRpdGlvbmFs IGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCi0rcGljX2ZsYWc9 JGx0X1tdX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpCi0rcGljX21vZGU9 JHBpY19tb2RlCi0rCi0rIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbW1hbmQ/ Ci0rbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgotKwotKyMgRG9lcyBjb21waWxl ciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwotK2NvbXBpbGVyX2Nf bz0kbHRfW11fTFRfQUNfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSkKLSsKLSsj IE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPwotK25lZWRfbG9ja3M9 JGx0X25lZWRfbG9ja3MKLSsKLSsjIERvIHdlIG5lZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1vZHVs ZXM/Ci0rbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgKLSsKLSsjIERvIHdlIG5lZWQg YSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/Ci0rbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KLSsK LSsjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc3VwcG9ydD0kZW5hYmxl X2Rsb3BlbgotKwotKyMgV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgot K2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9m IHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc2VsZl9z dGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8g cHJldmVudCBkeW5hbWljIGxpbmtpbmcuCi0rbGlua19zdGF0aWNfZmxhZz0kbHRfW11fTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSkKLSsKLSsjIENvbXBpbGVyIGZsYWcg dG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCi0rbm9fYnVpbHRpbl9mbGFnPSRsdF9bXV9M VF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKQotKwotKyMg Q29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KLStleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9JGx0X1tdX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMs ICQxKQotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJl Y3RseSBmcm9tIGFyY2hpdmVzLgotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF9bXV9MVF9B Q19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKQotKwotKyMgQ29tcGlsZXIgZmxh ZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2FmZSBvYmplY3RzLgotK3RocmVhZF9zYWZlX2ZsYWdfc3Bl Yz0kbHRfW11fTFRfQUNfVEFHVkFSKHRocmVhZF9zYWZlX2ZsYWdfc3BlYywgJDEpCi0rCi0rIyBM aWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KLSt2ZXJzaW9uX3R5cGU9JHZlcnNpb25fdHlwZQotKwot KyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXguCi0rbGlibmFtZV9zcGVjPSRsdF9saWJu YW1lX3NwZWMKLSsKLSsjIExpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhl IHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCi0rIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBv bmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FLgotK2xpYnJhcnlfbmFtZXNfc3Bl Yz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCi0rCi0rIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGli cmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4KLStzb25hbWVfc3BlYz0kbHRf c29uYW1lX3NwZWMKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwgYW4g b2xkLXN0eWxlIGFyY2hpdmUuCi0rUkFOTElCPSRsdF9SQU5MSUIKLStvbGRfYXJjaGl2ZV9jbWRz PSRsdF9bXV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpCi0rb2xkX3Bvc3RpbnN0 YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCi0rb2xkX3Bvc3R1bmluc3RhbGxfY21k cz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBh cmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRz PSRsdF9bXV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpCi0rCi0r IyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9m IGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9JGx0X1td X0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcywgJDEpCi0rCi0rIyBD b21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGEgc2hhcmVkIGFyY2hpdmUuCi0rYXJj aGl2ZV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkKLSthcmNoaXZl X2V4cHN5bV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp Ci0rcG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGluc3RhbGxfY21kcwotK3Bvc3R1bmluc3RhbGxf Y21kcz0kbHRfcG9zdHVuaW5zdGFsbF9jbWRzCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxk IGEgbG9hZGFibGUgbW9kdWxlIChhc3N1bWVkIHNhbWUgYXMgYWJvdmUgaWYgZW1wdHkpCi0rbW9k dWxlX2NtZHM9JGx0X1tdX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpCi0rbW9kdWxlX2V4 cHN5bV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSkKLSsK LSsjIENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KLStvbGRfc3RyaXBsaWI9JGx0X29sZF9z dHJpcGxpYgotK3N0cmlwbGliPSRsdF9zdHJpcGxpYgotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBs YWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJl ZCBsaWJyYXJ5LgotK3ByZWRlcF9vYmplY3RzPSRsdF9bXV9MVF9BQ19UQUdWQVIocHJlZGVwX29i amVjdHMsICQxKQotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3Rz IGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcG9zdGRlcF9v YmplY3RzPSRsdF9bXV9MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkKLSsKLSsjIERl cGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNy ZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwcmVkZXBzPSRsdF9bXV9MVF9BQ19UQUdWQVIo cHJlZGVwcywgJDEpCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVj dHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwb3N0ZGVw cz0kbHRfW11fTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCAkMSkKLSsKLSsjIFRoZSBkaXJlY3Rvcmll cyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQKLSsjIGxp YnJhcnkKLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X1tdX0xUX0FDX1RBR1ZBUihjb21w aWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKQotKwotKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGgg dXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsjIGEgc2hhcmVk IGxpYnJhcnkuCi0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9bXV9MVF9BQ19UQUdWQVIo Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkKLSsKLSsjIE1ldGhvZCB0byBjaGVjayB3aGV0 aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgotK2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAotKwotKyMgQ29tbWFuZCB0byB1c2Ug d2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgotK2ZpbGVfbWFnaWNfY21k PSRsdF9maWxlX21hZ2ljX2NtZAotKwotKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFy aWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCi0rYWxsb3dfdW5kZWZpbmVk X2ZsYWc9JGx0X1tdX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpCi0rCi0r IyBGbGFnIHRoYXQgZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgotK25vX3VuZGVmaW5lZF9m bGFnPSRsdF9bXV9MVF9BQ19UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKQotKwotKyMgQ29t bWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEg ZGlyZWN0b3J5LgotK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21kcwotKwotKyMgU2FtZSBhcyBh Ym92ZSwgYnV0IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0IG5vdCBz aG93bi4KLStmaW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKLSsKLSsjIFRha2UgdGhlIG91dHB1 dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXMu Ci0rZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlCi0r Ci0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9u Ci0rZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y2RlY2wKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJl c3MgcGFpcgotK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCi0rCi0rIyBUaGlzIGlzIHRoZSBzaGFyZWQg bGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCi0rcnVucGF0aF92YXI9JHJ1bnBhdGhfdmFy Ci0rCi0rIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgotK3NobGli cGF0aF92YXI9JHNobGlicGF0aF92YXIKLSsKLSsjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZv cmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8KLStzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aAotKwotKyMgSG93IHRvIGhh cmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCi0raGFyZGNv ZGVfYWN0aW9uPSRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpCi0rCi0rIyBXaGV0 aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgotK2hh cmRjb2RlX2ludG9fbGlicz0kaGFyZGNvZGVfaW50b19saWJzCi0rCi0rIyBGbGFnIHRvIGhhcmRj b2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qg d29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JGx0X1tdX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSkKLSsKLSsjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwk bGliZGlyIGludG8KLSsjIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBl dmVuIGlmIFwkbGliZGlyIGRvZXMKLSsjIG5vdCBleGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX2xkPSRsdF9bXV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19s ZCwgJDEpCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBh IHNlcGFyYXRlZCBhcmd1bWVudC4KLStoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9bXV9M VF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpCi0rCi0rIyBTZXQgdG8g eWVzIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJk Y29kZXMgRElSIGludG8gdGhlCi0rIyByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX2RpcmVj dD0kX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKQotKwotKyMgU2V0IHRvIHllcyBp ZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8g dGhlCi0rIyByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX21pbnVzX0w9JF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbWludXNfTCwgJDEpCi0rCi0rIyBTZXQgdG8geWVzIGlmIHVzaW5nIFNITElC UEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50bwotKyMgdGhlIHJl c3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSkKLSsKLSsjIFNldCB0byB5ZXMgaWYgYnVpbGRpbmcg YSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIgaW50byB0aGUgbGli cmFyeQotKyMgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlu a2VkIGFnYWluc3QgaXQuCi0raGFyZGNvZGVfYXV0b21hdGljPSRfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2F1dG9tYXRpYywgJDEpCi0rCi0rIyBWYXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBi ZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0cyBhbmQKLSsjIHJlc3RvcmVkIGF0IHJl bGluayB0aW1lLgotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVk X2Zvcl9yZWxpbmsiCi0rCi0rIyBXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBh Z2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXMuCi0rbGlua19hbGxfZGVwbGlicz0k X0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSkKLSsKLSsjIENvbXBpbGUtdGltZSBz eXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcwotK3N5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rCi0rIyBSdW4tdGltZSBzeXN0ZW0gc2Vh cmNoIHBhdGggZm9yIGxpYnJhcmllcwotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9z eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYwotKwotKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBc JHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlci4KLStmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3Jj ZmlsZV9wYXRoCi0rCi0rIyBTZXQgdG8geWVzIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVp cmVkLgotK2Fsd2F5c19leHBvcnRfc3ltYm9scz0kX0xUX0FDX1RBR1ZBUihhbHdheXNfZXhwb3J0 X3N5bWJvbHMsICQxKQotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9s cy4KLStleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIoZXhwb3J0X3N5bWJv bHNfY21kcywgJDEpCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQg c3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4dHJhY3RfZXhwc3ltc19jbWRz PSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwotKwotKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3Qg YmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0 X1tdX0xUX0FDX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKQotKwotKyMgU3ltYm9scyB0aGF0 IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVfZXhwc3ltcz0kbHRfW11fTFRfQUNf VEFHVkFSKGluY2x1ZGVfZXhwc3ltcywgJDEpCi0rCi0raWZlbHNlKFskMV0sW10sCi0rWyMgIyMj IEVORCBMSUJUT09MIENPTkZJR10sCi0rWyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICR0 YWduYW1lXSkKLSsKLStfX0VPRl9fCi0rCi0raWZlbHNlKFskMV0sW10sIFsKLSsgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgIGFpeDMqKQotKyAgICBjYXQgPDxcRU9GID4+ICIkY2ZnZmlsZSIKLSsKLSsj IEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFt LiAgRm9yIHNvbWUKLSsjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmly b25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKLSsjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21v a2UuCi0raWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCi0rICBD T0xMRUNUX05BTUVTPQotKyAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLStmaQotK0VPRgotKyAgICA7 OwotKyAgZXNhYwotKwotKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFz aCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCi0rICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFu ZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCi0rICAjIHRleHQgbW9kZSwg aXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQot KyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25z IHRvbz8KLSsgIHNlZCAnJHEnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIHx8IChybSAtZiAiJGNm Z2ZpbGUiOyBleGl0IDEpCi0rCi0rICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8IFwKLSsg ICAgKHJtIC1mICIkb2ZpbGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRj ZmdmaWxlIikKLSsgIGNobW9kICt4ICIkb2ZpbGUiCi0rXSkKLStlbHNlCi0rICAjIElmIHRoZXJl IGlzIG5vIE1ha2VmaWxlIHlldCwgd2UgcmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRlCi0r ICAjIGBjb25maWcuc3RhdHVzIC0tcmVjaGVjaycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5kIGNy ZWF0ZSB0aGUKLSsgICMgbGlidG9vbCBzY3JpcHQgdGhlbi4KLSsgIGx0bWFpbl9pbj1gZWNobyAk bHRtYWluIHwgc2VkIC1lICdzL1wuc2gkLy5pbi8nYAotKyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9p biI7IHRoZW4KLSsgICAgdGVzdCAtZiBNYWtlZmlsZSAmJiBtYWtlICIkbHRtYWluIgotKyAgZmkK LStmaQotK10pIyBBQ19MSUJUT09MX0NPTkZJRwotKwotKwotKyMgQUNfTElCVE9PTF9QUk9HX0NP TVBJTEVSX05PX1JUVEkoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9f UlRUSV0sCi0rW0FDX1JFUVVJUkUoW19MVF9BQ19TWVNfQ09NUElMRVJdKWRubAotKwotK19MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0KLSsKLStpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJwotKwotKyAgQUNfTElCVE9PTF9D T01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNl cHRpb25zXSwKLSsgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMsCi0rICAg IFstZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwgW10sCi0rICAgIFtfTFRfQUNfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9IiRfTFRfQUNfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9u cyJdKQotK2ZpCi0rXSkjIEFDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9OT19SVFRJCi0rCi0rCi0r IyBBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJUEUKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9M X1BJUEVdLAotK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCi0rQUNfUkVRVUlSRShb TFRfQUNfUFJPR19TRURdKQotK0FDX1JFUVVJUkUoW0FDX1BST0dfTk1dKQotK0FDX1JFUVVJUkUo W0FDX09CSkVYVF0pCi0rIyBDaGVjayBmb3IgY29tbWFuZCB0byBncmFiIHRoZSByYXcgc3ltYm9s IG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1ib2wgZnJvbSBubS4KLStBQ19NU0dfQ0hFQ0tJTkcoW2Nv bW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3RdKQotK0FDX0NB Q0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sCi0rWwotKyMgVGhlc2UgYXJl IHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1zLgot KyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBVbHRy aXg/ISEgOyldCi0rCi0rIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9iYWwgc3lt Ym9sIGNvZGVzLgotK3N5bWNvZGU9J1tbQkNERUdSU1RdXScKLSsKLSsjIFJlZ2V4cCB0byBtYXRj aCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4KLStzeW1wYXQ9 J1woW1tfQS1aYS16XV1bW19BLVphLXowLTldXSpcKScKLSsKLSsjIFRyYW5zZm9ybSBhbiBleHRy YWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0aW9uCi0rbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eLiAuKiBcKC4qXCkkL2V4dGVy biBpbnQgXDE7L3AnIgotKwotKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBp bnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcwotK2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbW14gXV0qXCkgJC8gIHtc XFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlIFwoW1teIF1dKlwpIFwo W1teIF1dKlwpJC8gIHtcIlwyXCIsIChsdF9wdHIpIFwmXDJ9LC9wJyIKLSsKLSsjIERlZmluZSBz eXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgqKQotKyAg c3ltY29kZT0nW1tCQ0RUXV0nCi0rICA7OwotK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsg IHN5bWNvZGU9J1tbQUJDREdJU1RXXV0nCi0rICA7OwotK2hwdXgqKSAjIEl0cyBsaW5rZXIgZGlz dGluZ3Vpc2hlcyBkYXRhIGZyb20gY29kZSBzeW1ib2xzCi0rICBpZiB0ZXN0ICIkaG9zdF9jcHUi ID0gaWE2NDsgdGhlbgotKyAgICBzeW1jb2RlPSdbW0FCQ0RFR1JTVF1dJwotKyAgZmkKLSsgIGx0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwp JC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4g Y2hhciBcMTsvcCciCi0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVz cz0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKGx0X3B0cikg MH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wiXDJc IiwgKGx0X3B0cikgXCZcMn0sL3AnIgotKyAgOzsKLStsaW51eCogfCBrKmJzZCotZ251KQotKyAg aWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgc3ltY29kZT0nW1tBQkNER0lS U1RXXV0nCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUg J3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiog XCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbW14gXV0qXCkgJC8gIHtcXFwi XDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKFtb XiBdXSpcKSQvICB7XCJcMlwiLCAobHRfcHRyKSBcJlwyfSwvcCciCi0rICBmaQotKyAgOzsKLStp cml4KiB8IG5vbnN0b3B1eCopCi0rICBzeW1jb2RlPSdbW0JDREVHUlNUXV0nCi0rICA7OwotK29z ZiopCi0rICBzeW1jb2RlPSdbW0JDREVHUVJTVF1dJwotKyAgOzsKLStzb2xhcmlzKikKLSsgIHN5 bWNvZGU9J1tbQkRSVF1dJwotKyAgOzsKLStzY28zLjJ2NSopCi0rICBzeW1jb2RlPSdbW0RUXV0n Ci0rICA7OwotK3N5c3Y0LjJ1dzIqKQotKyAgc3ltY29kZT0nW1tEVF1dJwotKyAgOzsKLStzeXN2 NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQotKyAgc3ltY29kZT0nW1tBQkRU XV0nCi0rICA7OwotK3N5c3Y0KQotKyAgc3ltY29kZT0nW1tERk5TVFVdXScKLSsgIDs7Ci0rZXNh YwotKwotKyMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBjaGFpbgotK29wdF9jcj0KLStjYXNl ICRidWlsZF9vcyBpbgotK21pbmd3KikKLSsgIG9wdF9jcj1gZWNobyAneFx7MCwxXH0nIHwgdHIg eCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAotKyAgOzsKLStlc2FjCi0rCi0rIyBJZiB3 ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCi0r Y2FzZSBgJE5NIC1WIDI+JjFgIGluCi0rKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rICBzeW1jb2Rl PSdbW0FCQ0RHSVJTVFddXScgOzsKLStlc2FjCi0rCi0rIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1 bmRlcmNvcmUsIHRoZW4gd2l0aCBpdC4KLStmb3IgYWNfc3ltcHJmeCBpbiAiIiAiXyI7IGRvCi0r Ci0rICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQsIGFuZCBzeW1wcmZ4IGludG8gYSByYXcg c3ltYm9sIGFuZCBhIEMgc3ltYm9sLgotKyAgc3lteGZybT0iXFwxICRhY19zeW1wcmZ4XFwyIFxc MiIKLSsKLSsgICMgV3JpdGUgdGhlIHJhdyBhbmQgQyBpZGVudGlmaWVycy4KLSsgIGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbWyAJXV1cKCRzeW1jb2RlJHN5 bWNvZGUqXClbWyAJXV1bWyAJXV0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0v cCciCi0rCi0rICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4K LSsgIHBpcGVfd29ya3M9bm8KLSsKLSsgIHJtIC1mIGNvbmZ0ZXN0KgotKyAgY2F0ID4gY29uZnRl c3QuJGFjX2V4dCA8PEVPRgotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIgewotKyNl bmRpZgotK2NoYXIgbm1fdGVzdF92YXI7Ci0rdm9pZCBubV90ZXN0X2Z1bmMoKXt9Ci0rI2lmZGVm IF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgotK2ludCBtYWluKCl7bm1fdGVzdF92YXI9J2EnO25t X3Rlc3RfZnVuYygpO3JldHVybigwKTt9Ci0rRU9GCi0rCi0rICBpZiBBQ19UUllfRVZBTChhY19j b21waWxlKTsgdGhlbgotKyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4KLSsgICAg bmxpc3Q9Y29uZnRlc3Qubm0KLSsgICAgaWYgQUNfVFJZX0VWQUwoTk0gY29uZnRlc3QuJGFjX29i amV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAkbmxpc3QpICYmIHRlc3Qg LXMgIiRubGlzdCI7IHRoZW4KLSsgICAgICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0 aGUgb3V0cHV0LgotKyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1bmlxID4gIiRubGlzdCJUOyB0 aGVuCi0rCW12IC1mICIkbmxpc3QiVCAiJG5saXN0IgotKyAgICAgIGVsc2UKLSsJcm0gLWYgIiRu bGlzdCJUCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIHNuYWdnZWQg YWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCi0rICAgICAgaWYgZ3JlcCAnIG5tX3Rlc3RfdmFyJCcg IiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgotKwlpZiBncmVwICcgbm1fdGVzdF9mdW5jJCcgIiRu bGlzdCIgPi9kZXYvbnVsbDsgdGhlbgotKwkgIGNhdCA8PEVPRiA+IGNvbmZ0ZXN0LiRhY19leHQK LSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLSsKLStFT0YKLSsJ ICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCi0rCSAgZXZhbCAiJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8IGdyZXAgLXYgbWFpbiA+PiBjb25m dGVzdC4kYWNfZXh0JwotKwotKwkgIGNhdCA8PEVPRiA+PiBjb25mdGVzdC4kYWNfZXh0Ci0rI2lm IGRlZmluZWQgKF9fU1REQ19fKSAmJiBfX1NURENfXwotKyMgZGVmaW5lIGx0X3B0cl90IHZvaWQg KgotKyNlbHNlCi0rIyBkZWZpbmUgbHRfcHRyX3QgY2hhciAqCi0rIyBkZWZpbmUgY29uc3QKLSsj ZW5kaWYKLSsKLSsvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9s cy4gKi8KLStjb25zdCBzdHJ1Y3QgewotKyAgY29uc3QgY2hhciAqbmFtZTsKLSsgIGx0X3B0cl90 IGFkZHJlc3M7Ci0rfQotK2x0X3ByZWxvYWRlZF9zeW1ib2xzW1tdXSA9Ci0rewotK0VPRgotKwkg ICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBcKC4qXCkkLyAge1wiXDJcIiwgKGx0 X3B0cl90KSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgZ3JlcCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRh Y19leHQKLSsJICBjYXQgPDxcRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIHswLCAobHRfcHRy X3QpIDB9Ci0rfTsKLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmCi0rRU9GCi0r CSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxlcy4KLSsJICBtdiBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKLSsJICBsdF9zYXZlX0xJQlM9IiRMSUJTIgotKwkg IGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKwkgIExJQlM9ImNvbmZ0c3RtLiRhY19vYmpleHQi Ci0rCSAgQ0ZMQUdTPSIkQ0ZMQUdTJF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19i dWlsdGluX2ZsYWcsICQxKSIKLSsJICBpZiBBQ19UUllfRVZBTChhY19saW5rKSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCi0rCSAgICBwaXBlX3dvcmtzPXllcwotKwkgIGZp Ci0rCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKLSsJICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIK LSsJZWxzZQotKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4m QVNfTUVTU0FHRV9MT0dfRkQKLSsJZmkKLSsgICAgICBlbHNlCi0rCWVjaG8gImNhbm5vdCBmaW5k IG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgICAgIGZpCi0r ICAgIGVsc2UKLSsgICAgICBlY2hvICJjYW5ub3QgcnVuICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF9waXBlIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgIGZpCi0rICBlbHNlCi0rICAgIGVjaG8g IiRwcm9nbmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAg ICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqIGNv bmZ0c3QqCi0rCi0rICAjIERvIG5vdCB1c2UgdGhlIGdsb2JhbF9zeW1ib2xfcGlwZSB1bmxlc3Mg aXQgd29ya3MuCi0rICBpZiB0ZXN0ICIkcGlwZV93b3JrcyIgPSB5ZXM7IHRoZW4KLSsgICAgYnJl YWsKLSsgIGVsc2UKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0KLSsgIGZpCi0r ZG9uZQotK10pCi0raWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0 aGVuCi0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0KLStmaQotK2lmIHRlc3Qg LXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NkZWNsIjsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVChmYWlsZWQpCi0rZWxzZQotKyAgQUNf TVNHX1JFU1VMVChvaykKLStmaQotK10pICMgQUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9Q SVBFCi0rCi0rCi0rIyBBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDKFtUQUdOQU1FXSkKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19M SUJUT09MX1BST0dfQ09NUElMRVJfUElDXSwKLStbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3dsLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQot K19MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0KLSsKLStBQ19NU0df Q0hFQ0tJTkcoW2ZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDXSkKLSsgaWZlbHNl KFskMV0sW0NYWF0sWwotKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3 bCwgZXRjLgotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgIF9MVF9BQ19UQUdWQVIobHRf cHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKLSsKLSsgICAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsgICAgICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJ QTY0IHByb2Nlc3NvcgotKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAk MSk9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgYW1pZ2FvcyopCi0rICAg ICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBs aWJyYXJpZXMsIGJ1dAotKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0Mg cHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAgICAgICMgbGlrZSBgLW02ODA0 MCcuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4 MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCi0rICAgICAgOzsKLSsgICAgYmVv cyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUq KQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7 Ci0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiopCi0rICAgICAgIyBUaGlzIGhh Y2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWlu ZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBv cnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdj YyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAgICMg KC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAgICAgbTRfaWYoWyQxXSwgW0dD Sl0sIFtdLAotKwlbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERM TF9FWFBPUlQnXSkKLSsgICAgICA7OwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAg ICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAjIENvbW1vbiBz eW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0rICAgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicKLSsgICAgICA7OwotKyAg ICAqZGpncHAqKQotKyAgICAgICMgREpHUFAgZG9lcyBub3Qgc3VwcG9ydCBzaGFyZWQgbGlicmFy aWVzIGF0IGFsbAotKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0KLSsgICAgICA7OwotKyAgICBpbnRlcml4W1szLTldXSopCi0rICAgICAgIyBJbnRlcml4IDMu eCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAgICAj IEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsgICAg ICA7OwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgot KwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9LUtjb25mb3JtX3BpYwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRl ZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1VWCwgYnV0Ci0rICAgICAgIyBub3Qg Zm9yIFBBIEhQLVVYLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCp8 aWE2NCopCi0rCTs7Ci0rICAgICAgKikKLSsJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgKikK LSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwot KyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ICAgIGFpeFtbNC05XV0qKQotKwkjIEFsbCBBSVggY29kZSBpcyBQSUMuCi0rCWlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9j ZXNzb3IKLSsJICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1C c3RhdGljJwotKwllbHNlCi0rCSAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCi0rCWZpCi0rCTs7Ci0rICAgICAg Y2hvcnVzKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJY3hjaDY4KikKLSsJICAjIEdyZWVu IEhpbGxzIEMrKyBDb21waWxlcgotKwkgICMgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19wcmVt YWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIvQ0Mv bGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEiCi0rCSAgOzsKLSsJZXNhYwot Kwk7OwotKyAgICAgICBkYXJ3aW4qKQotKyAgICAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9u IHRoaXMgcGxhdGZvcm0KLSsgICAgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGlu IE1IX0RZTElCIGZpbGVzCi0rICAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAg ICAgIHhsYyopCi0rICAgICAgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9Jy1xbm9jb21tb24nCi0rICAgICAgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICAgICAgIDs7Ci0rICAgICAgICAgZXNhYwotKyAg ICAgICA7OwotKyAgICAgIGRndXgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIGVjKysq KQotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycK LSsJICAgIDs7Ci0rCSAgZ2hjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgot KwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkg ICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGZyZWVic2QqIHwg ZHJhZ29uZmx5KikKLSsJIyBGcmVlQlNEIHVzZXMgR05VIEMrKwotKwk7OwotKyAgICAgIGhwdXg5 KiB8IGhwdXgxMCogfCBocHV4MTEqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikK LSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7 d2x9YXJjaGl2ZScKLSsJICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgotKwkg ICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJwotKwkgICAg ZmkKLSsJICAgIDs7Ci0rCSAgYUNDKikKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKLSsJICAgIGNhc2UgJGhvc3RfY3B1 IGluCi0rCSAgICBocHBhKjY0KnxpYTY0KikKLSsJICAgICAgIyArWiB0aGUgZGVmYXVsdAotKwkg ICAgICA7OwotKwkgICAgKikKLSsJICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPScrWicKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCSAgKikK LSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBpbnRlcml4KikKLSsJIyBUaGlzIGlzIGM4 OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hhcmVkIGxpYnMpCi0rCSMgQW55b25lIHdh bnRzIHRvIGRvIGEgcG9ydD8KLSsJOzsKLSsgICAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9w dXgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAgIF9MVF9BQ19UQUdW QVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsJICAgICMgQ0MgcGlj IGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1bHQuCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7Owot Kwllc2FjCi0rCTs7Ci0rICAgICAgbGludXgqIHwgaypic2QqLWdudSkKLSsJY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsJICBLQ0MqKQotKwkgICAgIyBLQUkgQysrIENvbXBpbGVyCi0rCSAgICBfTFRf QUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCi0rCSAg ICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKwkgICAg OzsKLSsJICBpY3BjKiB8IGVjcGMqKQotKwkgICAgIyBJbnRlbCBDKysKLSsJICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIF9MVF9BQ19UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKLSsJICAgIDs7Ci0rCSAgcGdD QyogfCBwZ2NwcCopCi0rCSAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlci4KLSsJICAg IF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xU X0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZnBpYycKLSsJICAgIF9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICA7 OwotKwkgIGN4eCopCi0rCSAgICAjIENvbXBhcSBDKysKLSsJICAgICMgTWFrZSBzdXJlIHRoZSBQ SUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKLSsJICAgICMgTGlu dXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KLSsJICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KLSsJICAgIF9MVF9BQ19UQUdWQVIobHRf cHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkgICop Ci0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJICAgICpTdW5cIEMqKQot KwkgICAgICAjIFN1biBDKysgNS45Ci0rCSAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLUtQSUMnCi0rCSAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCi0rCSAgICAgIDs7Ci0rCSAgICBlc2Fj Ci0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbHlueG9zKikKLSsJOzsKLSsgICAgICBt ODhrKikKLSsJOzsKLSsgICAgICBtdnMqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIGN4 eCopCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1XIGMs ZXhwb3J0YWxsJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAg ICAgIG5ldGJzZCopCi0rCTs7Ci0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKwljYXNl ICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCi0rCSAgICA7OwotKwkgIFJDQyopCi0r CSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkgICAgOzsKLSsJICBjeHgqKQotKwkgICAgIyBEaWdp dGFsL0NvbXBhcSBDKysKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwg JDEpPSctV2wsJwotKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQg YXBwZWFycyB0aGF0IGFsbCBBbHBoYQotKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVu aXggb2JqZWN0cyBhcmUgUElDLgotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPQotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctbm9uX3NoYXJlZCcKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJ OzsKLSsgICAgICBwc29zKikKLSsJOzsKLSsgICAgICBzb2xhcmlzKikKLSsJY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxp bmUgQysrCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1L UElDJwotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct QnN0YXRpYycKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSct UW9wdGlvbiBsZCAnCi0rCSAgICA7OwotKwkgIGdjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMr KyBDb21waWxlcgotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctUElDJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAg IHN1bm9zNCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgIyBTdW4g QysrIDQueAotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct cGljJwotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct QnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgbGNjKikKLSsJICAgICMgTHVjaWQKLSsJICAgIF9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKLSsJICAgIDs7Ci0rCSAg KikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICB0YW5kZW0qKQotKwljYXNlICRjY19i YXNlbmFtZSBpbgotKwkgIE5DQyopCi0rCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKLSsJICAg IF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rCSAgICA7 OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgc3lzdjUqIHwgdW5peHdh cmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsJY2FzZSAkY2NfYmFzZW5h bWUgaW4KLSsJICBDQyopCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLVdsLCcKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLUtQSUMnCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAk MSk9Jy1Cc3RhdGljJwotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHZ4d29ya3MqKQot Kwk7OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVp bGRfc2hhcmVkLCAkMSk9bm8KLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLStdLAotK1sKLSsgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctV2wsJwotKyAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBh aXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3Nv cgotKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGlj JwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgIyBGSVhN RTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMs IGJ1dAotKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMg YnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAgICAgICMgbGlrZSBgLW02ODA0MCcuCi0rICAg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNp ZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAg ICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rCi0r ICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiopCi0rICAgICAgIyBUaGlzIGhhY2sg aXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwot KyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQg c3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBp Z25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAgICMgKC0t ZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAgICAgbTRfaWYoWyQxXSwgW0dDSl0s IFtdLAotKwlbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9F WFBPUlQnXSkKLSsgICAgICA7OwotKwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAg ICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAjIENvbW1vbiBz eW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0rICAgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicKLSsgICAgICA7OwotKwot KyAgICBpbnRlcml4W1szLTldXSopCi0rICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQ SUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAgICAjIEluc3RlYWQsIHdlIHJl bG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsgICAgICA7OwotKwotKyAgICBt c2Rvc2RqZ3BwKikKLSsgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVh biB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcwotKyAgICAgICMgb24gc3lzdGVtcyB0 aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCi0rICAgICAgZW5hYmxlX3NoYXJlZD1ubwot KyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVj OyB0aGVuCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZv cm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBocHV4KikKLSsgICAgICAjIFBJ QyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKLSsg ICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAg ICBocHBhKjY0KnxpYTY0KikKLSsJIyArWiB0aGUgZGVmYXVsdAotKwk7OwotKyAgICAgICopCi0r CV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCi0rCTs7Ci0r ICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsgICAgICA7OwotKyAgICBlc2FjCi0r ICBlbHNlCi0rICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdz IHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ICBhaXgqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSct V2wsJwotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgQUlYIDUg bm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgZWxzZQotKwlfTFRfQUNfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4 cCcKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgICAgZGFyd2luKikKLSsgICAgICAgICMgUElD IGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAgICMgQ29tbW9uIHN5bWJv bHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSsgICAgICAgY2FzZSAkY2NfYmFzZW5h bWUgaW4KLSsgICAgICAgICB4bGMqKQotKyAgICAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLXFub2NvbW1vbicKLSsgICAgICAgICBfTFRfQUNfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICAgICA7OwotKyAgICAgICBlc2Fj Ci0rICAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiopCi0r ICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hl dGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAo YW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgbTRfaWYoWyQx XSwgW0dDSl0sIFtdLAotKwlbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctRERMTF9FWFBPUlQnXSkKLSsgICAgICA7OwotKwotKyAgICBocHV4OSogfCBocHV4MTAqIHwg aHB1eDExKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQt Yml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCi0rICAgICAgY2FzZSAk aG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0KnxpYTY0KikKLSsJIyArWiB0aGUgZGVmYXVsdAot Kwk7OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nK1onCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRf cHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPwotKyAg ICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAk e3dsfWFyY2hpdmUnCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3Rv cHV4KikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVds LCcKLSsgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQuCi0rICAgICAgX0xU X0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsg ICAgICA7OwotKwotKyAgICBuZXdzb3M2KQotKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBsaW51eCog fCBrKmJzZCotZ251KQotKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgaWNjKiB8 IGVjYyopCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwot KwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwlfTFRf QUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rICAgICAg ICA7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQotKyAgICAgICAg IyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxl ciwKLSsJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKLSsJX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLWZwaWMnCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgIGNjYyopCi0r ICAgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsg ICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgotKyAgICAgICAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsgICAgICAgIDs7Ci0r ICAgICAgKikKLSsgICAgICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkqU3Vu XCBDKikKLSsJICAjIFN1biBDIDUuOQotKwkgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLUtQSUMnCi0rCSAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf d2wsICQxKT0nLVdsLCcKLSsJICA7OwotKwkqU3VuXCBGKikKLSsJICAjIFN1biBGb3J0cmFuIDgu MyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCi0rCSAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICBfTFRfQUNfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKwkgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCi0rCSAgOzsKLSsJZXNhYwotKwk7Owot KyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAg ICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBy ZG9zKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1ub25fc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAgIF9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rICAgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICBj YXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKLSsJX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICc7OwotKyAgICAg ICopCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJzs7Ci0r ICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgX0xUX0FDX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKLSsgICAgICBfTFRf QUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCi0rICAgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICA7 OwotKwotKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyopCi0rICAgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgX0xUX0FDX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsgICAgICBfTFRfQUNfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0r Ci0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rCV9M VF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtjb25mb3JtX3BpYycKLSsJ X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1 KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctS1BJQycKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAgIHVuaWNvcyopCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1u bwotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLXBpYycKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQx KT1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rXSkKLStBQ19NU0dfUkVTVUxUKFsk X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpXSkKLSsKLSsjCi0rIyBDaGVj ayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLStpZiB0ZXN0 IC1uICIkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIjsgdGhlbgotKyAg QUNfTElCVE9PTF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBQSUMgZmxhZyAkX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIHdvcmtzXSwKLSsgICAgX0xUX0FDX1RB R1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcywgJDEpLAotKyAgICBbJF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKWlmZWxzZShbJDFdLFtdLFsgLURQSUNdLFtp ZmVsc2UoWyQxXSxbQ1hYXSxbIC1EUElDXSxbXSldKV0sIFtdLAotKyAgICBbY2FzZSAkX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIGluCi0rICAgICAiIiB8ICIgIiopIDs7 Ci0rICAgICAqKSBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9IiAkX0xU X0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIiA7OwotKyAgICAgZXNhY10sCi0r ICAgIFtfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Ci0rICAgICBfTFRf QUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vXSkKLStm aQotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3Vw cG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgotKyAgKmRqZ3BwKikKLSsgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKyAgICA7OwotKyAgKikKLSsgICAg X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIkX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpaWZlbHNlKFskMV0sW10sWyAtRFBJQ10sW2lmZWxzZShb JDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pIgotKyAgICA7OwotK2VzYWMKLSsKLSsjCi0rIyBDaGVj ayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLSt3bD0k X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkgZXZhbCBsdF90bXBfc3RhdGlj X2ZsYWc9XCIkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpXCIKLStB Q19MSUJUT09MX0xJTktFUl9PUFRJT04oW2lmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1w X3N0YXRpY19mbGFnIHdvcmtzXSwKLSsgIF9MVF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxl cl9zdGF0aWNfd29ya3MsICQxKSwKLSsgICRsdF90bXBfc3RhdGljX2ZsYWcsCi0rICBbXSwKLSsg IFtfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9XSkKLStdKQotKwot KwotKyMgQUNfTElCVE9PTF9QUk9HX0xEX1NITElCUyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFNlZSBpZiB0aGUgbGlua2VyIHN1cHBvcnRz IGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19M RF9TSExJQlNdLAotK1tBQ19SRVFVSVJFKFtMVF9BQ19QUk9HX1NFRF0pZG5sCi0rQUNfTVNHX0NI RUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJl ZCBsaWJyYXJpZXNdKQotK2lmZWxzZShbJDFdLFtDWFhdLFsKLSsgIF9MVF9BQ19UQUdWQVIoZXhw b3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2Jh bF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhw b3J0X3N5bWJvbHMnCi0rICBjYXNlICRob3N0X29zIGluCi0rICBhaXhbWzQtOV1dKikKLSsgICAg IyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRp b24uCi0rICAgICMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3Qg ZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsgICAgaWYgJE5NIC1WIDI+JjEgfCBncmVwICdHTlUnID4g L2Rldi9udWxsOyB0aGVuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRz LCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChc WyRdMiA9PSAiVCIpIHx8IChcWyRdMiA9PSAiRCIpIHx8IChcWyRdMiA9PSAiQiIpKSAmJiAoW3N1 YnN0cl0oXFskXTMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFxbJF0zIH0gfSdcJycgfCBzb3J0IC11 ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBlbHNlCi0rICAgICAgX0xUX0FDX1RBR1ZBUihleHBv cnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBh d2sgJ1wnJ3sgaWYgKCgoXFskXTIgPT0gIlQiKSB8fCAoXFskXTIgPT0gIkQiKSB8fCAoXFskXTIg PT0gIkIiKSkgJiYgKFtzdWJzdHJdKFxbJF0zLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcWyRdMyB9 IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsgICAgZmkKLSsgICAgOzsKLSsg IHB3MzIqKQotKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0iJGx0 ZGxsX2NtZHMiCi0rICA7OwotKyAgY3lnd2luKiB8IG1pbmd3KikKLSsgICAgX0xUX0FDX1RBR1ZB UihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAk Z2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bW0JDREdSU11dW1sgXV0vcy8uKltb IF1dXChbW14gXV0qXCkvXDEgREFUQS87L14uKltbIF1dX19ubV9fL3MvXi4qW1sgXV1fX25tX19c KFtbXiBdXSpcKVtbIF1dW1teIF1dKi9cMSBEQVRBLzsvXklbWyBdXS9kOy9eW1tBSVRXXV1bWyBd XS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIDs7 Ci0rICAqKQotKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5N ICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydz Ly4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgOzsKLSsgIGVz YWMKLSsgIF9MVF9BQ19UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNF VF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQotK10sWwotKyAgcnVucGF0aF92YXI9Ci0rICBf TFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rICBfTFRfQUNfVEFHVkFS KGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwotKyAgX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0KLSsgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPQotKyAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzLCAk MSk9Ci0rICBfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzLCAkMSk9 Ci0rICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQotKyAgX0xU X0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgX0xUX0FDX1RBR1ZB Uih0aHJlYWRfc2FmZV9mbGFnX3NwZWMsICQxKT0KLSsgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPQotKyAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkLCAkMSk9Ci0rICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT0KLSsgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCi0rICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAotKyAgX0xUX0FDX1RBR1ZB UihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotKyAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9hdXRvbWF0aWMsICQxKT1ubwotKyAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQot KyAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KLSsgIF9MVF9BQ19UQUdW QVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsgIF9MVF9BQ19UQUdWQVIoZXhwb3J0 X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9z eW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0 X3N5bWJvbHMnCi0rICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNl LXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCi0rICAjIGluY2x1ZGVkIGluIHRoZSBz eW1ib2wgbGlzdAotKyAgX0xUX0FDX1RBR1ZBUihpbmNsdWRlX2V4cHN5bXMsICQxKT0KLSsgICMg ZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9scyB0byBl eGNsdWRlCi0rICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBzbyBvbmUg bXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCi0rICAjIGVuZCBvZiBsaW5lLiAgRXhhbXBsZTog YGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5kIGBiYycsCi0rICAj IGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KLSsgIF9MVF9BQ19UQUdW QVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9f RltJRF1fLionXQotKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxp ZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0Ci0rICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGlu IFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKLSsgICMgdGhlIHN5 bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5v dAotKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBu ZXZlciBpbmNsdWRlIGl0IGluCi0rICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgotKyAgIyBF eGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xz LgotK2RubCBOb3RlIGFsc28gYWRqdXN0IGV4Y2x1ZGVfZXhwc3ltcyBmb3IgQysrIGFib3ZlLgot KyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9Ci0rICAjIEp1c3QgYmVpbmcgcGFyYW5vaWQgYWJvdXQg ZW5zdXJpbmcgdGhhdCBjY19iYXNlbmFtZSBpcyBzZXQuCi0rICBfTFRfQ0NfQkFTRU5BTUUoWyRj b21waWxlcl0pCi0rICBjYXNlICRob3N0X29zIGluCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgcHcz MiopCi0rICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4g YSBsb29vb25nIHRpbWUKLSsgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBh c3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKLSsgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsg ICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCi0rICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsg ICAgZmkKLSsgICAgOzsKLSsgIGludGVyaXgqKQotKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUg dGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQotKyAgICB3aXRoX2dudV9sZD15ZXMK LSsgICAgOzsKLSsgIG9wZW5ic2QqKQotKyAgICB3aXRoX2dudV9sZD1ubwotKyAgICA7OwotKyAg ZXNhYwotKwotKyAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsgIGlmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBM RCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsgICAgd2xhcmM9JyR7d2x9JwotKwot KyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBz dXBwb3J0LiBUaGVzZQotKyAgICAjIGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVz IGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KLSsgICAgIyBoZXJlIGFsbG93cyB0aGVt IHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgotKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5f UEFUSAotKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n JHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfZHlu YW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKyAgICAjIGFuY2ll bnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCi0rICAgIGlm ICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0 aGVuCi0rCV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJj IictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2 ZScKLSsgICAgICBlbHNlCi0rICAJX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YywgJDEpPQotKyAgICBmaQotKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KLSsgICAg Y2FzZSBgJExEIC12IDI+L2Rldi9udWxsYCBpbgotKyAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5b WzAtOV1dLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCi0rICAgICAg KlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcu MyAuLi4KLSsgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmlu Zz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCi0rICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVy IDIuMTEgdmVyc2lvbnMKLSsgICAgICAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7 Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgR05VIGxkIHN1cHBvcnRzIHNoYXJlZCBsaWJy YXJpZXMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4W1szLTldXSopCi0rICAgICAg IyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgotKyAgICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCi0rCWNhdCA8PEVPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2Vy LCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAotKyoqKiB0byBiZSB1 bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gQUlYLgotKyoqKiBU aGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4g IElmIHlvdQotKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3 YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKLSsqKiogc28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlz IGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK0VPRgotKyAgICAgIGZpCi0rICAgICAgOzsK LSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJHJtICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTkFN RSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVm aW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNo byAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnku ZGF0YX4kZWNobyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGly L2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxp Yn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsgICAgICBfTFRfQUNf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKwotKyAgICAgICMgU2Ft dWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5vcGVucHJvamVjdHMubmV0PiByZXBvcnRz Ci0rICAgICAgIyB0aGF0IHRoZSBzZW1hbnRpY3Mgb2YgZHluYW1pYyBsaWJyYXJpZXMgb24gQW1p Z2FPUywgYXQgbGVhc3QgdXAKLSsgICAgICAjIHRvIHZlcnNpb24gNCwgaXMgdG8gc2hhcmUgZGF0 YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQKLSsgICAgICAjIHdpdGggdGhlIHNhbWUg ZHluYW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vzbid0IG1hdGNoIHRoZQotKyAgICAgICMg YmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJhcmllcyBvbiBvdGhlciBwbGF0Zm9ybXMsIHdlIGNhbid0 IHVzZQotKyAgICAgICMgdGhlbS4KLSsgICAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyopCi0rICAgICAgaWYgJExEIC0taGVscCAyPiYx IHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0r CV9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKwkj IEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2Yg Z2NjCi0rCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3Rp Z2F0aW9uLiAgRklYTUUKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1u b3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds JHNvbmFtZSAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8 IHB3MzIqKQotKyAgICAgICMgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBubyBz ZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoYWxsb3df dW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKyAgICAgIF9MVF9BQ19UQUdWQVIoYWx3 YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFSKGVuYWJsZV9z aGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFS KGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRn bG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sg XV1cKFtbXiBdXSpcKS9cMSBEQVRBLydcJycgLWUgJ1wnJy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sg XV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsKLSsgICAgICBpZiAk TEQgLS1oZWxwIDI+JjEgfCBncmVwICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsg ICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7 d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtl ciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVm IGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNl LCBwcmVwZW5kLi4uCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdp ZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkg IGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZWxzZQot KwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwkgIGNhdCAk ZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCWZpfgotKwkk Q0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1 dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAg ICBlbHNlCi0rCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAg ICAgIDs7Ci0rCi0rICAgIGludGVyaXhbWzMtOV1dKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxp YnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsgICAgICBfTFRfQUNfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKyAgICAgICMgSGFjazog T24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2Vu IGdjYy4KLSsgICAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBh biBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5Ci0rICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2Nh dGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQotKyAgICAg ICMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2Ug cGljayBhIHJhbmRvbSwKLSsgICAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdl ZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0rICAgICAgIyB0aW1lLiAgTW92 aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19m bGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3 bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsg MTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIv JHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUs JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtS QU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsg ICAgICA7OwotKwotKyAgICBnbnUqIHwgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICBpZiAk TEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2 L251bGw7IHRoZW4KLSsJdG1wX2FkZGZsYWc9Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2Nw dSBpbgotKwlwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCi0rCSAgX0xUX0FD X1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2 ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYg bmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBc IiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgdG1wX2Fk ZGZsYWc9JyAkcGljX2ZsYWcnCi0rCSAgOzsKLSsJcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQkj IFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycwotKwkgIF9MVF9BQ19UQUdWQVIo d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNv bnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252 ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2Nv bnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScg JHBpY19mbGFnIC1Nbm9tYWluJyA7OwotKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJCSMgSW50 ZWwgQyBjb21waWxlciBvbiBpYTY0Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7Owot KwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24g aWE2NAotKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKLSsJaWZj KiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIKLSsJICB0bXBfYWRkZmxhZz0n IC1ub2Zvcl9tYWluJyA7OwotKwllc2FjCi0rCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBp bgotKwkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQotKwkgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNl PTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwg bmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBc IiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgdG1wX3No YXJlZGZsYWc9Jy1HJyA7OwotKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMwotKwkgIHRt cF9zaGFyZWRmbGFnPSctRycgOzsKLSsJKikKLSsJICB0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcg OzsKLSsJZXNhYwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgJyIkdG1w X3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwotKwlpZiB0ZXN0ICRzdXBw b3J0c19hbm9uX3ZlcnNpb25pbmcgPSB5ZXM7IHRoZW4KLSsJICBfTFRfQUNfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8k bGlibmFtZS52ZXJ+Ci0rICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9c MTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rICAkZWNobyAibG9jYWw6ICo7 IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgJENDICciJHRtcF9zaGFy ZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0 X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJZmkKLSsgICAgICBlbHNlCi0rCV9MVF9B Q19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAg IG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxG X18gPi9kZXYvbnVsbDsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJwot Kwl3bGFyYz0KLSsgICAgICBlbHNlCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9y dF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlz KikKLSsgICAgICBpZiAkTEQgLXYgMj4mMSB8IGdyZXAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsg dGhlbgotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCWNhdCA8PEVPRiAxPiYy Ci0rCi0rKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBj YW5ub3QgcmVsaWFibHkKLSsqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBz eXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCi0rKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGli cmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQotKyoqKiBiaW51dGls cyB0byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5 Ci0rKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5h dGl2ZSBsaW5rZXIgaXMKLSsqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStFT0YKLSsg ICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6Liog ZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBv cnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxp YnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgc2NvMy4y djUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKLSsgICAgICBjYXNlIGAkTEQg LXYgMj4mMWAgaW4KLSsgICAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAy LjFbWzAtNV1dLiopCi0rCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJY2F0IDw8 X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2Vy IHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKLSsqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJl ZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMg ZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3Jh ZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBB bm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNv bmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQg dGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsJOzsKLSsJKikKLSsJICBpZiAkTEQgLS1oZWxw IDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRo ZW4KLSsJICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSdg dGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tcnBhdGgsJGxpYmRpcmAnCi0rCSAg ICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lLFwke1NDT0FCU1BBVEg6KyR7aW5z dGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWInCi0rCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99 JHNvbmFtZSwtcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJ ICBlbHNlCi0rCSAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgZmkKLSsJ OzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBfTFRf QUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFy ZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIHds YXJjPQotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAg ICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICA7 OwotKwotKyAgICAqKQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9y dGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX0FD X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNh YwotKwotKyAgICBpZiB0ZXN0ICIkX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubzsg dGhlbgotKyAgICAgIHJ1bnBhdGhfdmFyPQotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPQotKyAgICAgIF9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjLCAkMSk9Ci0rICAgICAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYywgJDEpPQotKyAgICBmaQotKyAgZWxzZQotKyAgICAjIFBPUlRNRSBmaWxsIGluIGEg ZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQpCi0rICAgIGNh c2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4MyopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhbHdh eXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nJExEIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEyIC1INTEyIC1i TTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rICAgICAg IyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEgg aWYgdGhlcmUKLSsgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgLUwuCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgaWYg dGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsg dGhlbgotKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlz IHN1cHBvcnRlZCB3aXRoIGEKLSsJIyBicm9rZW4gY29sbGVjdDIuCi0rCV9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICBmaQotKyAgICAgIDs7Ci0r Ci0rICAgIGFpeFtbNC05XV0qKQotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0 aGVuCi0rCSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVm YXVsdCwgc28gd2UgZG9uJ3QKLSsJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCi0rCWFp eF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKLSsJbm9f ZW50cnlfZmxhZz0iIgotKyAgICAgIGVsc2UKLSsJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRo ZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rCSMgLUMgbWVhbnMgZGVtYW5nbGUg dG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsJaWYgJE5N IC1WIDI+JjEgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgX0xUX0FDX1RBR1ZB UihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5j ZSB8IGF3ayAnXCcneyBpZiAoKChcWyRdMiA9PSAiVCIpIHx8IChcWyRdMiA9PSAiRCIpIHx8IChc WyRdMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXFskXTMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFxb JF0zIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKwllbHNlCi0rCSAgX0xU X0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXFskXTIgPT0gIlQiKSB8fCAoXFskXTIgPT0g IkQiKSB8fCAoXFskXTIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFxbJF0zLDEsMSkgIT0gIi4iKSkg eyBwcmludCBcWyRdMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsJZmkK LSsJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwotKwkjIFRlc3QgaWYgd2UgYXJlIHRyeWlu ZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKLSsJIyBBSVggc3R5bGUgbGlua2lu Zy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCi0rCSMgbmVlZCB0byBkbyBy dW50aW1lIGxpbmtpbmcuCi0rCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzIzXV18YWl4NC5bWzIz XV0uKnxhaXhbWzUtOV1dKikKLSsJICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsgIAkg IGlmICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0ZXN0ICRsZF9mbGFnID0gIi1XbCwtYnJ0 bCIpOyB0aGVuCi0rICAJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCi0rICAJICAgIGJy ZWFrCi0rICAJICBmaQotKwkgIGRvbmUKLSsJICA7OwotKwllc2FjCi0rCi0rCWV4cF9zeW1fZmxh Zz0nLWJleHBvcnQnCi0rCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKLSsgICAgICBmaQotKwot KyAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVp bHQsIEFJWCBsZCBjYW4KLSsgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxl IG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKLSsgICAgICAjIG9yIHByb2dyYW0g cmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bwotKyAg ICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRo YXQgaXMgbm90Ci0rICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1i YmlndG9jIHRvIExERkxBR1MuCi0rCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rCi0rICAgICAg aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEy XV18YWl4NC5bWzAxMl1dLiopCi0rCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQu MiBhbmQgbG93ZXIsIHRoZSBjaGVjawotKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9l c24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9n LW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYgXAotKyAg CSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4vZGV2 L251bGwKLSsJICB0aGVuCi0rICAJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKLSsgIAkg IDoKLSsJICBlbHNlCi0rICAJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCi0rICAJICBfTFRfQUNf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCi0rICAJICAjIEl0IGZhaWxz IHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCi0rICAJ ICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVf bWludXNfTAotKyAgCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCi0rICAJICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgIAkgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAJICBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLSsJICBmaQotKwkgIDs7 Ci0rCWVzYWMKLSsJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCWlmIHRlc3QgIiRhaXhfdXNlX3J1 bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcg Iicke3dsfS1HJwotKwlmaQotKyAgICAgIGVsc2UKLSsJIyBub3QgdXNpbmcgZ2NjCi0rCWlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAJIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9u IDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKLSsgIAkjIGNob2tlcyBv biAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgotKwkgIHNoYXJlZF9mbGFn PSctRycKLSsJZWxzZQotKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHll czsgdGhlbgotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgZWxzZQotKwkgICAgc2hh cmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKLSsJICBmaQotKwlmaQotKyAgICAgIGZpCi0rCi0rICAg ICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lu bmluZyB3aXRoCi0rICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRvIGdl bmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4KLSsgICAgICBfTFRfQUNfVEFHVkFS KGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcwotKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5n IHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKLSsJIyAtYmVyb2sgd2ls bCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5Lgot KwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKLSsgICAg ICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVk IGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rICAgICAgIF9MVF9BQ19TWVNfTElCUEFUSF9BSVgK LSsgICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0rCV9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk bGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdz IGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBlY2hvICIk e3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5 bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgotKyAgICAgICBlbHNlCi0rCWlm IHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwot KwkgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0iLXogbm9kZWZzIgot KwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRf ZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3 bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgotKwllbHNlCi0r CSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQg aW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KLSsJIF9MVF9BQ19TWVNfTElCUEFUSF9BSVgKLSsJIF9M VF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0 aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcg dGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sgd2lsbCBsaW5r IHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwkgIF9M VF9BQ19UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJwotKwkg IF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJwot KwkgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMg ZnJvbSBhcmNoaXZlcwotKwkgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0nJGNvbnZlbmllbmNlJwotKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRf bGMsICQxKT15ZXMKLSsJICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFs bHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgotKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJf RkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRz b25hbWUnCi0rCWZpCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhbWlnYW9zKikKLSsg ICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckcm0gJG91dHB1dF9vYmpkaXIv YTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRf b2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAk b3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFZFUlNJT04gJG1h am9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFJF VklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIg JEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAm JiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBkaWZmZXJlbnQg c2VtYW50aWNzIG9uIHRoZSBHTlUgbGQgc2VjdGlvbgotKyAgICAgIF9MVF9BQ19UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICBic2RpW1s0NV1dKikKLSsgICAgICBf TFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPS1yZHluYW1pYwotKyAg ICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsgICAgICAjIFdoZW4g bm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZwotKyAg ICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwotKyAgICAgICMgbm8g c2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyAnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmlu ZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5s aWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KLSsgICAgICBsaWJleHQ9bGliCi0rICAgICAgIyBUZWxs IGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCi0rICAgICAgc2hyZXh0 X2NtZHM9Ii5kbGwiCi0rICAgICAgIyBGSVhNRTogU2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBh IGJhZCBoYWNrLgotKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt byAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgZWNobyAiJGRlcGxpYnMiIHwgJFNFRCAt ZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotKyAgICAgICMgVGhl IGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQg YSBETEwuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzLCAk MSk9J3RydWUnCi0rICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRo ZSBsaWIgcHJvZ3JhbS4KLSsgICAgICBfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQx KT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJwotKyAgICAgIF9MVF9BQ19U QUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKLSsg ICAgICBfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQx KT15ZXMKLSsgICAgICA7OwotKwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgIGNh c2UgJGhvc3Rfb3MgaW4KLSsgICAgICAgIHJoYXBzb2R5KiB8IGRhcndpbjEuW1swMTJdXSkKLSsg ICAgICAgICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXVu ZGVmaW5lZCAke3dsfXN1cHByZXNzJwotKyAgICAgICAgIDs7Ci0rICAgICAgICopICMgRGFyd2lu IDEuMyBvbgotKyAgICAgICAgIGlmIHRlc3QgLXogJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9 IDsgdGhlbgotKyAgICAgICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycK LSsgICAgICAgICBlbHNlCi0rICAgICAgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFS R0VUfSBpbgotKyAgICAgICAgICAgICAxMC5bWzAxMl1dKQotKyAgICAgICAgICAgICAgIF9MVF9B Q19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0tZmxhdF9uYW1lc3BhY2Ug JHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCi0rICAgICAgICAgICAgICAgOzsKLSsgICAg ICAgICAgICAgMTAuKikKLSsgICAgICAgICAgICAgICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVm aW5lZF9mbGFnLCAkMSk9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJwotKyAg ICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICBlc2FjCi0rICAgICAgICAgZmkKLSsgICAgICAg ICA7OwotKyAgICAgIGVzYWMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVk X2xjLCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5v Ci0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT15ZXMKLSsgICAg ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAot KyAgICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJwotKyAg ICAgIF9MVF9BQ19UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKyAgICBpZiB0ZXN0 ICIkR0NDIiA9IHllcyA7IHRoZW4KLSsgICAgCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hv JwotKyAgICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1p Y2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMg XCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJp bmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKLSsgICAgICAgIF9MVF9BQ19U QUdWQVIobW9kdWxlX2NtZHMsICQxKT0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwk bGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5 bXV0aWx9IgotKyAgICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGli bmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9m bGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFs bF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9tb2R9 JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgICAgIF9MVF9BQ19U QUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0 X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRD QyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVw bGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGls fSIKLSsgICAgZWxzZQotKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICB4bGMq KQotKyAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKyAgICAgICAgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRl ZmluZWRfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1pbnN0YWxsX25hbWUgJHt3bH1gZWNobyAkcnBhdGgvJHNvbmFtZWAgJHhsY3ZlcnN0cmluZycK LSsgICAgICAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9JyRDQyAkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVyX2Zs YWdzJwotKyAgICAgICAgICAjIERvbid0IGZpeCB0aGlzIGJ5IHVzaW5nIHRoZSBsZCAtZXhwb3J0 ZWRfc3ltYm9sc19saXN0IGZsYWcsIGl0IGRvZXNuJ3QgZXhpc3QgaW4gb2xkZXIgZGFyd2luIGxk cwotKyAgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQg LWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhw b3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRD QyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUgJHt3bH0kcnBhdGgvJHNvbmFt ZSAkeGxjdmVyc3RyaW5nfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltICR7bGlifScKLSsgICAgICAgICAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfZXhwc3lt X2NtZHMsICQxKT0nc2VkIC1lICJzLCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCgu LipcKSxfJiwiIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1z eW1ib2xzLmV4cHN5bX4kQ0MgJGFsbG93X3VuZGVmaW5lZF9mbGFnICAtbyAkbGliIC1idW5kbGUg JGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3N+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGly LyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JwotKyAgICAgICAgICA7OwotKyAgICAg ICAqKQotKyAgICAgICAgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICAg ICAgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgZGd1eCopCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAg X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICA7Owot KwotKyAgICBmcmVlYnNkMSopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dzIHVzIHRvIGlu Y2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgotKyAgICAjIHN1cHBvcnQuICBG dXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgYW4gZXhwbGljaXQgYysr cnQwLm8KLSsgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhlbHBzIHNpZ25pZmlj YW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCi0rICAgICMgZXh0cmEgc3BhY2UpLgotKyAg ICBmcmVlYnNkMi4yKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91 c3IvbGliL2MrK3J0MC5vJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9k aXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVy c2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KLSsgICAgZnJlZWJz ZDIqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJl YWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAzIGFu ZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KLSsgICAg ZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PSctUiRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15 ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwot KyAgICAgIDs7Ci0rCi0rICAgIGhwdXg5KikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckcm0gJG91dHB1dF9vYmpk aXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGly IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xp YmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29i amRpci8kc29uYW1lICRsaWInCi0rICAgICAgZmkKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rICAgICAg X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICAgIF9M VF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCi0rICAgICAgIyBoYXJkY29k ZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsgICAgICAjIGJ1dCBh cyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsgICAgICBfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKyAgICAgIDs7Ci0rCi0rICAgIGhw dXgxMCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAt ZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJ X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1iICtoICRzb25hbWUgK2IgJGlu c3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsg ICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwlfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRs aWJkaXInCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToK LSsKLSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsJX0xUX0FDX1RB R1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsKLSsJIyBoYXJk Y29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJIyBidXQgYXMg dGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCV9MVF9BQ19UQUdWQVIoaGFy ZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaHB1 eDExKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5v OyB0aGVuCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQqKQotKwkgIF9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQq KQotKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9 K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCSopCi0rCSAgX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUg JHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKLSsJICA7OwotKwllc2FjCi0rICAgICAgZWxzZQotKwljYXNlICRob3N0 X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCopCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVs dHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7 Ci0rCSopCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9 K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGZp Ci0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCV9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicK LSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwlj YXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KnxpYTY0KikKLSsJICBfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nK2IgJGxpYmRpcicKLSsJICBfTFRfQUNf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rCSAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJICA7OwotKwkqKQotKwkgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCSAgX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsKLSsJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5v dCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxv Y2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNf TCwgJDEpPXllcwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAg IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0k dmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAt c29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9u ICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlv bnMgLW8gJGxpYicKLSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xk LCAkMSk9Jy1ycGF0aCAkbGliZGlyJwotKyAgICAgIGZpCi0rICAgICAgX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicK LSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0r ICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAgOzsK LSsKLSsgICAgbmV0YnNkKikKLSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdy ZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnICAjIGEub3V0Ci0rICAgICAgZWxzZQotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckTEQgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnICAgICAgIyBFTEYKLSsgICAgICBmaQotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgIG5ld3NvczYpCi0rICAgICAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAgICAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICA7OwotKwot KyAgICBvcGVuYnNkKikKLSsgICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhl bgotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKwlfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwlpZiB0ZXN0IC16ICJgZWNobyBf X0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9z dF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICBfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3lt Ym9scycKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n JHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPScke3dsfS1FJwotKwllbHNlCi0rCSAgY2FzZSAkaG9zdF9vcyBpbgotKwkg ICBvcGVuYnNkW1swMV1dLiogfCBvcGVuYnNkMi5bWzAtN11dIHwgb3BlbmJzZDIuW1swLTddXS4q KQotKwkgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJs ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgICAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsJICAg ICA7OwotKwkgICAqKQotKwkgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKLSsJICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICAgICA7OwotKwkgIGVzYWMKLSsgICAgICAgIGZp Ci0rICAgICAgZWxzZQotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAg ZmkKLSsgICAgICA7OwotKwotKyAgICBvczIqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJGVjaG8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwi IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gREFUQSA+PiAkb3V0cHV0X29i amRpci8kbGlibmFtZS5kZWZ+JGVjaG8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29i amRpci8kbGlibmFtZS5kZWZ+JGVjaG8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFt ZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0Mg LVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwotKyAgICAgIF9MVF9BQ19UQUdWQVIob2xkX2Fy Y2hpdmVfRnJvbV9uZXdfY21kcywgJDEpPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAgICAgOzsKLSsKLSsgICAgb3Nm MyopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJX0xUX0FDX1RBR1ZBUihh bGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1c KicKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlfTFRf QUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQg XConCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkJHthbGxv d191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1l ICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJz dHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8g JGxpYicKLSsgICAgICBmaQotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICAgIDs7Ci0rCi0rICAg IG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxh ZwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9BQ19UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XCon Ci0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191 bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1z eW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNo byAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3Ry eSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCV9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRs aWJkaXInCi0rICAgICAgZWxzZQotKwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFn LCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJz dHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkg JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsg ZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsg ZG9uZTsgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLSsJJExEIC1zaGFyZWQke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAtaW5wdXQgJGxpYi5leHAgJGxpbmtlcl9mbGFncyAkbGlib2JqcyAkZGVw bGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92 ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYn4kcm0gJGxpYi5leHAnCi0rCi0rCSMgQm90aCBjIGFuZCBjeHggY29t cGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKLSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwotKyAgICAgIGZpCi0rICAgICAg X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICAgIDs7 Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIobm9fdW5kZWZpbmVkX2Zs YWcsICQxKT0nIC16IHRleHQnCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJ d2xhcmM9JyR7d2x9JwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRl Y2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUg InMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIu ZXhwfgotKwkgICRDQyAtc2hhcmVkICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9 JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kcm0gJGxp Yi5leHAnCi0rICAgICAgZWxzZQotKwl3bGFyYz0nJwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRl eHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hv ICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKyAgCSRMRCAtRyR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzfiRybSAkbGliLmV4cCcKLSsgICAgICBmaQotKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBjYXNlICRo b3N0X29zIGluCi0rICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikg OzsKLSsgICAgICAqKQotKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCBy ZW9yZGVyIGxpbmtlciBvcHRpb25zLAotKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2Zs YWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCi0rCSMgYnV0IGlzIGNhcmVmdWwg ZW5vdWdoIG5vdCB0byByZW9yZGVyLgotKyAJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYg KG1heWJlIDIuNS4xPykKLSsJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJICBfTFRfQUNf VEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1hbGxleHRy YWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKLSsJZWxzZQotKwkg IF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLXogYWxsZXh0cmFj dCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJZmkKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAg OzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhz ZXF1ZW50OyB0aGVuCi0rCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2Ug aXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KLSsJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5k IC5maW5pIHNlY3Rpb25zIHdvcmsuCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bWludXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQpCi0rICAgICAgY2FzZSAkaG9z dF92ZW5kb3IgaW4KLSsJc25pKQotKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcyAjIGlzIHRoaXMg cmVhbGx5IHRydWU/Pz8KLSsJOzsKLSsJc2llbWVucykKLSsJICAjIyBMRCBpcyBsZCBpdCBtYWtl cyBhIFBMQU1MSUIKLSsJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCi0rCSAgX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRfQUNfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9 JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0LCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rCW1vdG9yb2xhKQotKwkgIF9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2Rp cmVjdCwgJDEpPW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkg dGhleSBsaWUKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9Q QVRIJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5v Ci0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQuMyopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCi0rICAgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWMsICQxKT0nLUJleHBvcnQnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQqTVAqKQotKyAgICAg IGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJwotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwot KwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKLSsJ X0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0r Ci0rICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LltbMDFd XS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1swMjRdXSopCi0rICAgICAgX0xU X0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCi0rICAgICAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgICAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBydW5wYXRoX3Zh cj0nTERfUlVOX1BBVEgnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJ X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfQUNf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9y dDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkK LSsgICAgICA7OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQotKyAgICAg ICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1 c2Ugd2UgZG8gbm90Ci0rICAgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVz ZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bwotKyAgICAgICMgYWx3YXlzIGJlIHVucmVz b2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAotKyAgICAgICMg ZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16 IHRleHQKLSsgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xz IGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKLSsgICAgICAjIGFzIC16IGRlZnMuCi0rICAgICAg X0xUX0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCi0rICAg ICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5vZGVm cycKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsg ICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSdgdGVzdCAteiAi JFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tUiwkbGliZGlyYCcKLSsgICAgICBfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKLSsgICAgICBfTFRfQUNfVEFH VkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0JwotKyAgICAgIHJ1bnBhdGhf dmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgot KwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLFwk e1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3 bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCV9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7 aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJEND IC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7U0NPQUJTUEFUSDor JHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICB1dHM0KikKLSsgICAg ICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0r ICAgICopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsgIGZpCi0rXSkKLStBQ19NU0dfUkVTVUxUKFskX0xUX0FDX1RBR1ZBUihs ZF9zaGxpYnMsICQxKV0pCi0rdGVzdCAiJF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0g bm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotKyMKLSsjIERvIHdlIG5lZWQgdG8gZXhwbGlj aXRseSBsaW5rIGxpYmM/Ci0rIwotK2Nhc2UgIngkX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNf bmVlZF9sYywgJDEpIiBpbgotK3h8eHllcykKLSsgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRk ZWQKLSsgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKLSsKLSsg IGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgotKyAgICBjYXNlICRfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIGluCi0rICAgICon ficqKQotKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21t YW5kIHNlcXVlbmNlcy4KLSsgICAgICA7OwotKyAgICAnJENDICcqKQotKyAgICAgICMgVGVzdCB3 aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNv bWUKLSsgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdj YyBhbHJlYWR5IHBhc3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9y ZSAtbGdjYy4KLSsgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgLWxjIHNob3VsZCBiZSBl eHBsaWNpdGx5IGxpbmtlZCBpbl0pCi0rICAgICAgJHJtIGNvbmZ0ZXN0KgotKyAgICAgIGVjaG8g IiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAg ICAgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXJyOyB0aGVuCi0rICAg ICAgICBzb25hbWU9Y29uZnRlc3QKLSsgICAgICAgIGxpYj1jb25mdGVzdAotKyAgICAgICAgbGli b2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgICAgICBkZXBsaWJzPQotKyAgICAgICAgd2w9 JF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpCi0rCXBpY19mbGFnPSRfTFRf QUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkKLSsgICAgICAgIGNvbXBpbGVyX2Zs YWdzPS12Ci0rICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKLSsgICAgICAgIHZlcnN0cmluZz0KLSsg ICAgICAgIG91dHB1dF9vYmpkaXI9LgotKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAotKyAgICAg ICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0kX0xUX0FDX1RBR1ZBUihhbGxvd191bmRl ZmluZWRfZmxhZywgJDEpCi0rICAgICAgICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9Ci0rICAgICAgICBpZiBBQ19UUllfRVZBTChfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpIDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpCi0r ICAgICAgICB0aGVuCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEp PW5vCi0rICAgICAgICBlbHNlCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPXllcwotKyAgICAgICAgZmkKLSsgICAgICAgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZwotKyAgICAgIGVs c2UKLSsgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQotKyAgICAgIGZpCi0rICAgICAgJHJt IGNvbmZ0ZXN0KgotKyAgICAgIEFDX01TR19SRVNVTFQoWyRfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kc19uZWVkX2xjLCAkMSldKQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICA7Owot K2VzYWMKLStdKSMgQUNfTElCVE9PTF9QUk9HX0xEX1NITElCUwotKwotKwotKyMgX0xUX0FDX0ZJ TEVfTFRETExfQwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQmUgY2FyZWZ1bCB0aGF0IHRo ZSBzdGFydCBtYXJrZXIgYWx3YXlzIGZvbGxvd3MgYSBuZXdsaW5lLgotK0FDX0RFRlVOKFtfTFRf QUNfRklMRV9MVERMTF9DXSwgWwotKyMgLyogbHRkbGwuYyBzdGFydHMgaGVyZSAqLwotKyMgI2Rl ZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCi0rIyAjaW5jbHVkZSA8d2luZG93cy5oPgotKyMgI3Vu ZGVmIFdJTjMyX0xFQU5fQU5EX01FQU4KLSsjICNpbmNsdWRlIDxzdGRpby5oPgotKyMKLSsjICNp Zm5kZWYgX19DWUdXSU5fXwotKyMgIyAgaWZkZWYgX19DWUdXSU4zMl9fCi0rIyAjICAgIGRlZmlu ZSBfX0NZR1dJTl9fIF9fQ1lHV0lOMzJfXwotKyMgIyAgZW5kaWYKLSsjICNlbmRpZgotKyMKLSsj ICNpZmRlZiBfX2NwbHVzcGx1cwotKyMgZXh0ZXJuICJDIiB7Ci0rIyAjZW5kaWYKLSsjIEJPT0wg QVBJRU5UUlkgRGxsTWFpbiAoSElOU1RBTkNFIGhJbnN0LCBEV09SRCByZWFzb24sIExQVk9JRCBy ZXNlcnZlZCk7Ci0rIyAjaWZkZWYgX19jcGx1c3BsdXMKLSsjIH0KLSsjICNlbmRpZgotKyMKLSsj ICNpZmRlZiBfX0NZR1dJTl9fCi0rIyAjaW5jbHVkZSA8Y3lnd2luL2N5Z3dpbl9kbGwuaD4KLSsj IERFQ0xBUkVfQ1lHV0lOX0RMTCggRGxsTWFpbiApOwotKyMgI2VuZGlmCi0rIyBISU5TVEFOQ0Ug X19oRGxsSW5zdGFuY2VfYmFzZTsKLSsjCi0rIyBCT09MIEFQSUVOVFJZCi0rIyBEbGxNYWluIChI SU5TVEFOQ0UgaEluc3QsIERXT1JEIHJlYXNvbiwgTFBWT0lEIHJlc2VydmVkKQotKyMgewotKyMg ICBfX2hEbGxJbnN0YW5jZV9iYXNlID0gaEluc3Q7Ci0rIyAgIHJldHVybiBUUlVFOwotKyMgfQot KyMgLyogbHRkbGwuYyBlbmRzIGhlcmUgKi8KLStdKSMgX0xUX0FDX0ZJTEVfTFRETExfQwotKwot KwotKyMgX0xUX0FDX1RBR1ZBUihWQVJOQU1FLCBbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbX0xUX0FDX1RBR1ZBUl0sIFtpZmVsc2Uo WyQyXSwgW10sIFskMV0sIFskMV8kMl0pXSkKLSsKLSsKLSsjIG9sZCBuYW1lcwotK0FDX0RFRlVO KFtBTV9QUk9HX0xJQlRPT0xdLCAgIFtBQ19QUk9HX0xJQlRPT0xdKQotK0FDX0RFRlVOKFtBTV9F TkFCTEVfU0hBUkVEXSwgIFtBQ19FTkFCTEVfU0hBUkVEKCRAKV0pCi0rQUNfREVGVU4oW0FNX0VO QUJMRV9TVEFUSUNdLCAgW0FDX0VOQUJMRV9TVEFUSUMoJEApXSkKLStBQ19ERUZVTihbQU1fRElT QUJMRV9TSEFSRURdLCBbQUNfRElTQUJMRV9TSEFSRUQoJEApXSkKLStBQ19ERUZVTihbQU1fRElT QUJMRV9TVEFUSUNdLCBbQUNfRElTQUJMRV9TVEFUSUMoJEApXSkKLStBQ19ERUZVTihbQU1fUFJP R19MRF0sICAgICAgICBbQUNfUFJPR19MRF0pCi0rQUNfREVGVU4oW0FNX1BST0dfTk1dLCAgICAg ICAgW0FDX1BST0dfTk1dKQotKwotKyMgVGhpcyBpcyBqdXN0IHRvIHNpbGVuY2UgYWNsb2NhbCBh Ym91dCB0aGUgbWFjcm8gbm90IGJlaW5nIHVzZWQKLStpZmVsc2UoW0FDX0RJU0FCTEVfRkFTVF9J TlNUQUxMXSkKLSsKLStBQ19ERUZVTihbTFRfQUNfUFJPR19HQ0pdLAotK1tBQ19DSEVDS19UT09M KEdDSiwgZ2NqLCBubykKLSsgIHRlc3QgIngke0dDSkZMQUdTK3NldH0iID0geHNldCB8fCBHQ0pG TEFHUz0iLWcgLU8yIgotKyAgQUNfU1VCU1QoR0NKRkxBR1MpCi0rXSkKLSsKLStBQ19ERUZVTihb TFRfQUNfUFJPR19SQ10sCi0rW0FDX0NIRUNLX1RPT0woUkMsIHdpbmRyZXMsIG5vKQotK10pCi0r Ci0rCi0rIyBDaGVhcCBiYWNrcG9ydCBvZiBBU19FWEVDVVRBQkxFX1AgYW5kIHJlcXVpcmVkIG1h Y3JvcwotKyMgZnJvbSBBdXRvY29uZiAyLjU5OyB3ZSBzaG91bGQgbm90IHVzZSAkYXNfZXhlY3V0 YWJsZV9wIGRpcmVjdGx5LgotKwotKyMgX0FTX1RFU1RfUFJFUEFSRQotKyMgLS0tLS0tLS0tLS0t LS0tLQotK200X2lmbmRlZihbX0FTX1RFU1RfUFJFUEFSRV0sCi0rW200X2RlZnVuKFtfQVNfVEVT VF9QUkVQQVJFXSwKLStbaWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgYXNf ZXhlY3V0YWJsZV9wPSd0ZXN0IC14JwotK2Vsc2UKLSsgIGFzX2V4ZWN1dGFibGVfcD0ndGVzdCAt ZicKLStmaQotK10pXSkjIF9BU19URVNUX1BSRVBBUkUKLSsKLSsjIEFTX0VYRUNVVEFCTEVfUAot KyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB3aGV0aGVyIGEgZmlsZSBpcyBleGVjdXRhYmxl LgotK200X2lmbmRlZihbQVNfRVhFQ1VUQUJMRV9QXSwKLStbbTRfZGVmdW4oW0FTX0VYRUNVVEFC TEVfUF0sCi0rW0FTX1JFUVVJUkUoW19BU19URVNUX1BSRVBBUkVdKWRubAotKyRhc19leGVjdXRh YmxlX3AgJDFbXWRubAotK10pXSkjIEFTX0VYRUNVVEFCTEVfUAotKwotKyMgTk9URTogVGhpcyBt YWNybyBoYXMgYmVlbiBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbnRvICAgIwotKyMgIEdOVSBB dXRvY29uZiBhcyBBQ19QUk9HX1NFRC4gIFdoZW4gaXQgaXMgYXZhaWxhYmxlIGluICAgIwotKyMg IGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBBdXRvY29uZiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgICAg IwotKyMgIG1hY3JvIGFuZCB1c2UgaXQgaW5zdGVhZC4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIwotKyMgTFRfQUNfUFJPR19TRUQKLSsjIC0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBm b3IgYSBmdWxseS1mdW5jdGlvbmFsIHNlZCBwcm9ncmFtLCB0aGF0IHRydW5jYXRlcwotKyMgYXMg ZmV3IGNoYXJhY3RlcnMgYXMgcG9zc2libGUuICBQcmVmZXIgR05VIHNlZCBpZiBmb3VuZC4KLStB Q19ERUZVTihbTFRfQUNfUFJPR19TRURdLAotK1tBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBhIHNlZCB0 aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCi0rQUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhf U0VELAotK1sjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIHNlZCBh bmQgZ3NlZC4KLSsjIFRoZW4gdXNlIHRoYXQgbGlzdCBvZiBzZWQncyBhcyBvbmVzIHRvIHRlc3Qg Zm9yIHRydW5jYXRpb24uCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBsdF9hY19wcm9nIGluIHNlZCBnc2VkOyBk bwotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KLSsgICAgICBpZiBBU19FWEVDVVRBQkxFX1AoWyIkYXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4 ZWNfZXh0Il0pOyB0aGVuCi0rICAgICAgICBsdF9hY19zZWRfbGlzdD0iJGx0X2FjX3NlZF9saXN0 ICRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiCi0rICAgICAgZmkKLSsgICAgZG9uZQot KyAgZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rbHRfYWNfbWF4PTAKLStsdF9hY19j b3VudD0wCi0rIyBBZGQgL3Vzci94cGc0L2Jpbi9zZWQgYXMgaXQgaXMgdHlwaWNhbGx5IGZvdW5k IG9uIFNvbGFyaXMKLSsjIGFsb25nIHdpdGggL2Jpbi9zZWQgdGhhdCB0cnVuY2F0ZXMgb3V0cHV0 LgotK2ZvciBsdF9hY19zZWQgaW4gJGx0X2FjX3NlZF9saXN0IC91c3IveHBnNC9iaW4vc2VkOyBk bwotKyAgdGVzdCAhIC1mICRsdF9hY19zZWQgJiYgY29udGludWUKLSsgIGNhdCAvZGV2L251bGwg PiBjb25mdGVzdC5pbgotKyAgbHRfYWNfY291bnQ9MAotKyAgZWNobyAkRUNIT19OICIwMTIzNDU2 Nzg5JEVDSE9fQyIgPmNvbmZ0ZXN0LmluCi0rICAjIENoZWNrIGZvciBHTlUgc2VkIGFuZCBzZWxl Y3QgaXQgaWYgaXQgaXMgZm91bmQuCi0rICBpZiAiJGx0X2FjX3NlZCIgLS12ZXJzaW9uIDI+JjEg PCAvZGV2L251bGwgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGx0X2N2X3Bh dGhfU0VEPSRsdF9hY19zZWQKLSsgICAgYnJlYWsKLSsgIGZpCi0rICB3aGlsZSB0cnVlOyBkbwot KyAgICBjYXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0ZXN0LnRtcAotKyAgICBtdiBj b25mdGVzdC50bXAgY29uZnRlc3QuaW4KLSsgICAgY3AgY29uZnRlc3QuaW4gY29uZnRlc3QubmwK LSsgICAgZWNobyA+PmNvbmZ0ZXN0Lm5sCi0rICAgICRsdF9hY19zZWQgLWUgJ3MvYSQvLycgPCBj b25mdGVzdC5ubCA+Y29uZnRlc3Qub3V0IHx8IGJyZWFrCi0rICAgIGNtcCAtcyBjb25mdGVzdC5v dXQgY29uZnRlc3QubmwgfHwgYnJlYWsKLSsgICAgIyAxMDAwMCBjaGFycyBhcyBpbnB1dCBzZWVt cyBtb3JlIHRoYW4gZW5vdWdoCi0rICAgIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAxMCAmJiBicmVh awotKyAgICBsdF9hY19jb3VudD1gZXhwciAkbHRfYWNfY291bnQgKyAxYAotKyAgICBpZiB0ZXN0 ICRsdF9hY19jb3VudCAtZ3QgJGx0X2FjX21heDsgdGhlbgotKyAgICAgIGx0X2FjX21heD0kbHRf YWNfY291bnQKLSsgICAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNfc2VkCi0rICAgIGZpCi0rICBk b25lCi0rZG9uZQotK10pCi0rU0VEPSRsdF9jdl9wYXRoX1NFRAotK0FDX1NVQlNUKFtTRURdKQot K0FDX01TR19SRVNVTFQoWyRTRURdKQotK10pCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIw MDMsIDIwMDUsIDIwMDYsIDIwMDcgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMK LSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmli dXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhp cyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgQU1fQVVUT01BS0VfVkVSU0lPTihWRVJTSU9O KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQXV0b21ha2UgWC5ZIHRyYWNl cyB0aGlzIG1hY3JvIHRvIGVuc3VyZSBhY2xvY2FsLm00IGhhcyBiZWVuCi0rIyBnZW5lcmF0ZWQg ZnJvbSB0aGUgbTQgZmlsZXMgYWNjb21wYW55aW5nIEF1dG9tYWtlIFguWS4KLSsjIChUaGlzIHBy aXZhdGUgbWFjcm8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0aGlzIGZpbGUuKQotK0FD X0RFRlVOKFtBTV9BVVRPTUFLRV9WRVJTSU9OXSwKLStbYW1fX2FwaV92ZXJzaW9uPScxLjEwJwot K2RubCBTb21lIHVzZXJzIGZpbmQgQU1fQVVUT01BS0VfVkVSU0lPTiBhbmQgbWlzdGFrZSBpdCBm b3IgYSB3YXkgdG8KLStkbmwgcmVxdWlyZSBzb21lIG1pbmltdW0gdmVyc2lvbi4gIFBvaW50IHRo ZW0gdG8gdGhlIHJpZ2h0IG1hY3JvLgotK200X2lmKFskMV0sIFsxLjEwLjFdLCBbXSwKLSsgICAg ICBbQUNfRkFUQUwoW0RvIG5vdCBjYWxsICQwLCB1c2UgQU1fSU5JVF9BVVRPTUFLRShbJDFdKS5d KV0pZG5sCi0rXSkKLSsKLSsjIF9BTV9BVVRPQ09ORl9WRVJTSU9OKFZFUlNJT04pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgYWNsb2NhbCB0cmFjZXMgdGhpcyBtYWNybyB0 byBmaW5kIHRoZSBBdXRvY29uZiB2ZXJzaW9uLgotKyMgVGhpcyBpcyBhIHByaXZhdGUgbWFjcm8g dG9vLiAgVXNpbmcgbTRfZGVmaW5lIHNpbXBsaWZpZXMKLSsjIHRoZSBsb2dpYyBpbiBhY2xvY2Fs LCB3aGljaCBjYW4gc2ltcGx5IGlnbm9yZSB0aGlzIGRlZmluaXRpb24uCi0rbTRfZGVmaW5lKFtf QU1fQVVUT0NPTkZfVkVSU0lPTl0sIFtdKQotKwotKyMgQU1fU0VUX0NVUlJFTlRfQVVUT01BS0Vf VkVSU0lPTgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2FsbCBBTV9B VVRPTUFLRV9WRVJTSU9OIGFuZCBBTV9BVVRPTUFLRV9WRVJTSU9OIHNvIHRoZXkgY2FuIGJlIHRy YWNlZC4KLSsjIFRoaXMgZnVuY3Rpb24gaXMgQUNfUkVRVUlSRWQgYnkgQUNfSU5JVF9BVVRPTUFL RS4KLStBQ19ERUZVTihbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0sCi0rW0FNX0FV VE9NQUtFX1ZFUlNJT04oWzEuMTAuMV0pZG5sCi0rbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJT SU9OXSwKLSsgIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVS U0lPTl0pXSlkbmwKLStfQU1fQVVUT0NPTkZfVkVSU0lPTihBQ19BVVRPQ09ORl9WRVJTSU9OKV0p Ci0rCi0rIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAz LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIEZvciBwcm9qZWN0cyB1c2luZyBBQ19DT05GSUdfQVVYX0RJUihbZm9v XSksIEF1dG9jb25mIHNldHMKLSsjICRhY19hdXhfZGlyIHRvIGAkc3JjZGlyL2ZvbycuICBJbiBv dGhlciBwcm9qZWN0cywgaXQgaXMgc2V0IHRvCi0rIyBgJHNyY2RpcicsIGAkc3JjZGlyLy4uJywg b3IgYCRzcmNkaXIvLi4vLi4nLgotKyMKLSsjIE9mIGNvdXJzZSwgQXV0b21ha2UgbXVzdCBob25v ciB0aGlzIHZhcmlhYmxlIHdoZW5ldmVyIGl0IGNhbGxzIGEKLSsjIHRvb2wgZnJvbSB0aGUgYXV4 aWxpYXJ5IGRpcmVjdG9yeS4gIFRoZSBwcm9ibGVtIGlzIHRoYXQgJHNyY2RpciAoYW5kCi0rIyB0 aGVyZWZvcmUgJGFjX2F1eF9kaXIgYXMgd2VsbCkgY2FuIGJlIGVpdGhlciBhYnNvbHV0ZSBvciBy ZWxhdGl2ZSwKLSsjIGRlcGVuZGluZyBvbiBob3cgY29uZmlndXJlIGlzIHJ1bi4gIFRoaXMgaXMg cHJldHR5IGFubm95aW5nLCBzaW5jZQotKyMgaXQgbWFrZXMgJGFjX2F1eF9kaXIgcXVpdGUgdW51 c2FibGUgaW4gc3ViZGlyZWN0b3JpZXM6IGluIHRoZSB0b3AKLSsjIHNvdXJjZSBkaXJlY3Rvcnks IGFueSBmb3JtIHdpbGwgd29yayBmaW5lLCBidXQgaW4gc3ViZGlyZWN0b3JpZXMgYQotKyMgcmVs YXRpdmUgcGF0aCBuZWVkcyB0byBiZSBhZGp1c3RlZCBmaXJzdC4KLSsjCi0rIyAkYWNfYXV4X2Rp ci9taXNzaW5nCi0rIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGlm ICRhY19hdXhfZGlyIGlzIHJlbGF0aXZlCi0rIyAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNz aW5nCi0rIyAgICBmYWlscyBpZiAkYWNfYXV4X2RpciBpcyBhYnNvbHV0ZSwKLSsjICAgIGZhaWxz IHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaW4gYSBWUEFUSCBidWlsZCB3aXRoCi0r IyAgICAgICAgICBhIHJlbGF0aXZlICRhY19hdXhfZGlyCi0rIwotKyMgVGhlIHJlYXNvbiBvZiB0 aGUgbGF0dGVyIGZhaWx1cmUgaXMgdGhhdCAkdG9wX3NyY2RpciBhbmQgJGFjX2F1eF9kaXIKLSsj IGFyZSBib3RoIHByZWZpeGVkIGJ5ICRzcmNkaXIuICBJbiBhbiBpbi1zb3VyY2UgYnVpbGQgdGhp cyBpcyB1c3VhbGx5Ci0rIyBoYXJtbGVzcyBiZWNhdXNlICRzcmNkaXIgaXMgYC4nLCBidXQgdGhp bmdzIHdpbGwgYnJva2Ugd2hlbiB5b3UKLSsjIHN0YXJ0IGEgVlBBVEggYnVpbGQgb3IgdXNlIGFu IGFic29sdXRlICRzcmNkaXIuCi0rIwotKyMgU28gd2UgY291bGQgdXNlIHNvbWV0aGluZyBzaW1p bGFyIHRvICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3NpbmcsCi0rIyBpZmYgd2Ugc3RyaXAg dGhlIGxlYWRpbmcgJHNyY2RpciBmcm9tICRhY19hdXhfZGlyLiAgVGhhdCB3b3VsZCBiZToKLSsj ICAgYW1fYXV4X2Rpcj0nXCQodG9wX3NyY2RpcikvJ2BleHByICIkYWNfYXV4X2RpciIgOiAiJHNy Y2Rpci8vKlwoLipcKSJgCi0rIyBhbmQgdGhlbiB3ZSB3b3VsZCBkZWZpbmUgJE1JU1NJTkcgYXMK LSsjICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCi0rIyBUaGlzIHdp bGwgd29yayBhcyBsb25nIGFzIE1JU1NJTkcgaXMgbm90IGNhbGxlZCBmcm9tIGNvbmZpZ3VyZSwg YmVjYXVzZQotKyMgdW5mb3J0dW5hdGVseSAkKHRvcF9zcmNkaXIpIGhhcyBubyBtZWFuaW5nIGlu IGNvbmZpZ3VyZS4KLSsjIEhvd2V2ZXIgdGhlcmUgYXJlIG90aGVyIHZhcmlhYmxlcywgbGlrZSBD Qywgd2hpY2ggYXJlIG9mdGVuIHVzZWQgaW4KLSsjIGNvbmZpZ3VyZSwgYW5kIGNvdWxkIHRoZXJl Zm9yZSBub3QgdXNlIHRoaXMgImZpeGVkIiAkYWNfYXV4X2Rpci4KLSsjCi0rIyBBbm90aGVyIHNv bHV0aW9uLCB1c2VkIGhlcmUsIGlzIHRvIGFsd2F5cyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4K LSsjIGFic29sdXRlIFBBVEguICBUaGUgZHJhd2JhY2sgaXMgdGhhdCB1c2luZyBhYnNvbHV0ZSBw YXRocyBwcmV2ZW50IGEKLSsjIGNvbmZpZ3VyZWQgdHJlZSB0byBiZSBtb3ZlZCB3aXRob3V0IHJl Y29uZmlndXJhdGlvbi4KLSsKLStBQ19ERUZVTihbQU1fQVVYX0RJUl9FWFBBTkRdLAotK1tkbmwg UmVseSBvbiBhdXRvY29uZiB0byBzZXQgdXAgQ0RQQVRIIHByb3Blcmx5LgotK0FDX1BSRVJFUShb Mi41MF0pZG5sCi0rIyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAotK2Ft X2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYmIHB3ZGAKLStdKQotKwotKyMgQU1fQ09ORElUSU9O QUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29u ZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwg MjAwNSwgMjAwNgotKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs Ci0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgOAotKwotKyMgQU1fQ09ORElUSU9OQUwoTkFN RSwgU0hFTEwtQ09ORElUSU9OKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgRGVmaW5lIGEgY29uZGl0aW9uYWwuCi0rQUNfREVGVU4oW0FNX0NPTkRJVElPTkFM XSwKLStbQUNfUFJFUkVRKDIuNTIpZG5sCi0rIGlmZWxzZShbJDFdLCBbVFJVRV0sICBbQUNfRkFU QUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0sCi0rCVskMV0sIFtGQUxTRV0sIFtBQ19G QVRBTChbJDA6IGludmFsaWQgY29uZGl0aW9uOiAkMV0pXSlkbmwKLStBQ19TVUJTVChbJDFfVFJV RV0pZG5sCi0rQUNfU1VCU1QoWyQxX0ZBTFNFXSlkbmwKLStfQU1fU1VCU1RfTk9UTUFLRShbJDFf VFJVRV0pZG5sCi0rX0FNX1NVQlNUX05PVE1BS0UoWyQxX0ZBTFNFXSlkbmwKLStpZiAkMjsgdGhl bgotKyAgJDFfVFJVRT0KLSsgICQxX0ZBTFNFPScjJwotK2Vsc2UKLSsgICQxX1RSVUU9JyMnCi0r ICAkMV9GQUxTRT0KLStmaQotK0FDX0NPTkZJR19DT01NQU5EU19QUkUoCi0rW2lmIHRlc3QgLXog IiR7JDFfVFJVRX0iICYmIHRlc3QgLXogIiR7JDFfRkFMU0V9IjsgdGhlbgotKyAgQUNfTVNHX0VS Uk9SKFtbY29uZGl0aW9uYWwgIiQxIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS5dXSkKLStmaV0p XSkKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAw NCwgMjAwNSwgMjAwNgotKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgOQotKwotKyMgVGhlcmUgYXJlIGEgZmV3 IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJlCi0rIyB3 cml0dGVuIGluIGNsZWFyLCBpbiB3aGljaCBjYXNlIGF1dG9tYWtlLCB3aGVuIHJlYWRpbmcgYWNs b2NhbC5tNCwKLSsjIHdpbGwgdGhpbmsgaXQgc2VlcyBhICp1c2UqLCBhbmQgdGhlcmVmb3JlIHdp bGwgdHJpZ2dlciBhbGwgaXQncwotKyMgQyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0 aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWluZwotKyMgQ0MgZXRjLiBpbiB0aGUgTWFr ZWZpbGUsIHdpbGwgYXNrIGZvciBhbiBBQ19QUk9HX0NDIHVzZS4uLgotKwotKwotKyMgX0FNX0RF UEVOREVOQ0lFUyhOQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2VlIGhvdyB0 aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5IGNoZWNraW5nLgotKyMgTkFNRSBpcyAi Q0MiLCAiQ1hYIiwgIkdDSiIsIG9yICJPQkpDIi4KLSsjIFdlIHRyeSBhIGZldyB0ZWNobmlxdWVz IGFuZCB1c2UgdGhhdCB0byBzZXQgYSBzaW5nbGUgY2FjaGUgdmFyaWFibGUuCi0rIwotKyMgV2Ug ZG9uJ3QgQUNfUkVRVUlSRSB0aGUgY29ycmVzcG9uZGluZyBBQ19QUk9HX0NDIHNpbmNlIHRoZSBs YXR0ZXIgd2FzCi0rIyBtb2RpZmllZCB0byBpbnZva2UgX0FNX0RFUEVOREVOQ0lFUyhDQyk7IHdl IHdvdWxkIGhhdmUgYSBjaXJjdWxhcgotKyMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhl IHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlzIG1hY3JvLAotKyMganVzdCByZWx5IG9u IEFDX1BST0dfQ0MuCi0rQUNfREVGVU4oW19BTV9ERVBFTkRFTkNJRVNdLAotK1tBQ19SRVFVSVJF KFtBTV9TRVRfREVQRElSXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9D T01NQU5EU10pZG5sCi0rQUNfUkVRVUlSRShbQU1fTUFLRV9JTkNMVURFXSlkbmwKLStBQ19SRVFV SVJFKFtBTV9ERVBfVFJBQ0tdKWRubAotKwotK2lmZWxzZShbJDFdLCBDQywgICBbZGVwY2M9IiRD QyIgICBhbV9jb21waWxlcl9saXN0PV0sCi0rICAgICAgIFskMV0sIENYWCwgIFtkZXBjYz0iJENY WCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKLSsgICAgICAgWyQxXSwgT0JKQywgW2RlcGNjPSIkT0JK QyIgYW1fY29tcGlsZXJfbGlzdD0nZ2NjMyBnY2MnXSwKLSsgICAgICAgWyQxXSwgVVBDLCAgW2Rl cGNjPSIkVVBDIiAgYW1fY29tcGlsZXJfbGlzdD1dLAotKyAgICAgICBbJDFdLCBHQ0osICBbZGVw Y2M9IiRHQ0oiICBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAotKyAgICAgICAgICAgICAg ICAgICBbZGVwY2M9IiQkMSIgICBhbV9jb21waWxlcl9saXN0PV0pCi0rCi0rQUNfQ0FDSEVfQ0hF Q0soW2RlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjXSwKLSsgICAgICAgICAgICAgICBbYW1fY3Zf JDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdLAotK1tpZiB0ZXN0IC16ICIkQU1ERVBfVFJV RSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAjIFdlIG1ha2UgYSBzdWJkaXIg YW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCi0rICAjIG1h a2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92 ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUg Z2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcg LS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsgICMgaW4gRCcuCi0rICBt a2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90 aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVzaW5nIGEgcmVsYXRpdmUg ZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSsgIGNkIGNvbmZ0 ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBh IHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2Fi bGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAgIyBib3RoIFRydTY0J3MgY2Mg YW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKLSsgICMgc2lk ZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2ll cyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhl bSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1rZGlyIHN1YgotKwotKyAgYW1f Y3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYgdGVzdCAiJGFtX2Nv bXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBb J3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29tcGAKLSsgIGZpCi0rICBm b3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KLSsgICAgIyBTZXR1cCBhIHNvdXJj ZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCi0rICAgICMg bGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwp LCBhbmQKLSsgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBp cyBjb25mdXNlZCBieSB0aGlzLgotKyAgICAjCi0rICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0 aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIgbWF5Ci0rICAgICMgb3Zl cndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGlu ZXMuCi0rICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVy LgotKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRv Ci0rICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29uZnRlc3Qu YwotKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIv Y29uZnRzdDEuaCB3aXRoCi0rICAgICAgIyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KLSsg ICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKLSsgICAgZG9uZQotKyAgICBlY2hvICIke2FtX19p bmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1m Ci0rCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgbm9zaWRlZWZmZWN0KQotKyAgICAgICMg YWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhl eSdsbAotKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSsg ICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4K LSsJY29udGludWUKLSsgICAgICBlbHNlCi0rCWJyZWFrCi0rICAgICAgZmkKLSsgICAgICA7Owot KyAgICBub25lKSBicmVhayA7OwotKyAgICBlc2FjCi0rICAgICMgV2UgY2hlY2sgd2l0aCBgLWMn IGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotKyAgICAjIG1vZGUu ICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9w ZXJseQotKyAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3QgdGhpcy4K LSsgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3Qu YyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IFwKLSsgICAgICAgZGVwZmlsZT1zdWIv Y29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKLSsgICAgICAgJFNIRUxM IC4vZGVwY29tcCAkZGVwY2MgLWMgLW8gc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25m dGVzdC5jIFwKLSsgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCi0rICAgICAg IGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYK LSsgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwg Mj4mMSAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRl c3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29u Zm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9u IHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBv ciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55 IG1lc3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90 IHN1cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29t cGxhaW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25v cmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFn bm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSBy ZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9y aW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0 ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAg IGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCi0rICAgICAgICBi cmVhawotKyAgICAgIGZpCi0rICAgIGZpCi0rICBkb25lCi0rCi0rICBjZCAuLgotKyAgcm0gLXJm IGNvbmZ0ZXN0LmRpcgotK2Vsc2UKLSsgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90 eXBlPW5vbmUKLStmaQotK10pCi0rQUNfU1VCU1QoWyQxREVQTU9ERV0sIFtkZXBtb2RlPSRhbV9j dl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0pCi0rQU1fQ09ORElUSU9OQUwoW2FtX19m YXN0ZGVwJDFdLCBbCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4 bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9 IGdjYzNdKQotK10pCi0rCi0rCi0rIyBBTV9TRVRfREVQRElSCi0rIyAtLS0tLS0tLS0tLS0tCi0r IyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFtZSBmb3IgZGVwZW5kZW5jeSBmaWxlcy4KLSsjIFRoaXMg bWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4gX0FNX0RFUEVOREVOQ0lFUwotK0FDX0RFRlVOKFtBTV9T RVRfREVQRElSXSwKLStbQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStBQ19T VUJTVChbREVQRElSXSwgWyIke2FtX19sZWFkaW5nX2RvdH1kZXBzIl0pZG5sCi0rXSkKLSsKLSsK LSsjIEFNX0RFUF9UUkFDSwotKyMgLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FNX0RFUF9UUkFD S10sCi0rW0FDX0FSR19FTkFCTEUoZGVwZW5kZW5jeS10cmFja2luZywKLStbICAtLWRpc2FibGUt ZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCi0rICAtLWVuYWJs ZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0 cmFjdG9yc10pCi0raWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5v OyB0aGVuCi0rICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgotKyAgQU1ERVBCQUNL U0xBU0g9J1wnCi0rZmkKLStBTV9DT05ESVRJT05BTChbQU1ERVBdLCBbdGVzdCAieCRlbmFibGVf ZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vXSkKLStBQ19TVUJTVChbQU1ERVBCQUNLU0xBU0hd KWRubAotK19BTV9TVUJTVF9OT1RNQUtFKFtBTURFUEJBQ0tTTEFTSF0pZG5sCi0rXSkKLSsKLSsj IEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAg ICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEs IDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUKLSsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBk aXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyNzZXJpYWwgMwotKwotKyMgX0FNX09V VFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLStBQ19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLStbZm9yIG1m IGluICRDT05GSUdfRklMRVM7IGRvCi0rICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRo ZSBuYW1lIG9mIHRoZSBmaWxlLgotKyAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8v J2AKLSsgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtl ZmlsZSBvciBub3QuCi0rICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQg YE1ha2VmaWxlLmluJywgYnV0Ci0rICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0 ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSsgICMgR3JlcCdpbmcgdGhlIGZpcnN0 IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCi0rICAjIGVhY2gg TWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5 IHNvLgotKyAgIyBHcmVwJ2luZyB0aGUgd2hvbGUgZmlsZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJ WCBncmVwIGhhcyBhIGxpbmUKLSsgICMgbGltaXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBr bm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgotKyAgaWYgc2VkIC1uICdzLF4jLipn ZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4m MTsgdGhlbgotKyAgICBkaXJwYXJ0PWBBU19ESVJOQU1FKCIkbWYiKWAKLSsgIGVsc2UKLSsgICAg Y29udGludWUKLSsgIGZpCi0rICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBh bV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotKyAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0 IHJ1bm5pbmcgYG1ha2UnLgotKyAgREVQRElSPWBzZWQgLW4gJ3MvXkRFUERJUiA9IC8vcCcgPCAi JG1mImAKLSsgIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0rICBhbV9faW5jbHVkZT1g c2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKLSsgIHRlc3QgLXogImFtX19p bmNsdWRlIiAmJiBjb250aW51ZQotKyAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9 IC8vcCcgPCAiJG1mImAKLSsgICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUgZW1wdHkg b3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0Ci0rICBVPWBzZWQgLW4gJ3MvXlUgPSAvL3AnIDwg IiRtZiJgCi0rICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBp bmNsdWRlZCBmaWxlcyB3aXRoCi0rICAjICQoREVQRElSKSBpbiB0aGVpciBuYW1lcy4gIFdlIGlu dm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKLSsgICMgc2ltcGxlc3QgYXBwcm9hY2gg dG8gY2hhbmdpbmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFsdWUgaW4gdGhlCi0rICAjIGV4 cGFuc2lvbi4KLSsgIGZvciBmaWxlIGluIGBzZWQgLW4gIgotKyAgICBzL14kYW1fX2luY2x1ZGUg JGFtX19xdW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3RlIickL1wxL3AnIDwiJG1mIiB8IFwK LSsgICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyci JFUiJy9nJ2A7IGRvCi0rICAgICMgTWFrZSBzdXJlIHRoZSBkaXJlY3RvcnkgZXhpc3RzLgotKyAg ICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKLSsgICAgZmRpcj1gQVNfRElS TkFNRShbIiRmaWxlIl0pYAotKyAgICBBU19NS0RJUl9QKFskZGlycGFydC8kZmRpcl0pCi0rICAg ICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCi0rICAgIGVjaG8gJyMgZHVtbXknID4g IiRkaXJwYXJ0LyRmaWxlIgotKyAgZG9uZQotK2RvbmUKLStdKSMgX0FNX09VVFBVVF9ERVBFTkRF TkNZX0NPTU1BTkRTCi0rCi0rCi0rIyBBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUwotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFRoaXMgbWFjcm8gc2hvdWxkIG9ubHkg YmUgaW52b2tlZCBvbmNlIC0tIHVzZSB2aWEgQUNfUkVRVUlSRS4KLSsjCi0rIyBUaGlzIGNvZGUg aXMgb25seSByZXF1aXJlZCB3aGVuIGF1dG9tYXRpYyBkZXBlbmRlbmN5IHRyYWNraW5nCi0rIyBp cyBlbmFibGVkLiAgRklYTUUuICBUaGlzIGNyZWF0ZXMgZWFjaCBgLlAnIGZpbGUgdGhhdCB3ZSB3 aWxsCi0rIyBuZWVkIGluIG9yZGVyIHRvIGJvb3RzdHJhcCB0aGUgZGVwZW5kZW5jeSBoYW5kbGlu ZyBjb2RlLgotK0FDX0RFRlVOKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10sCi0rW0FD X0NPTkZJR19DT01NQU5EUyhbZGVwZmlsZXNdLAotKyAgICAgW3Rlc3QgeCIkQU1ERVBfVFJVRSIg IT0geCIiIHx8IF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10sCi0rICAgICBbQU1ERVBf VFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIl0pCi0rXSkKLSsKLSsj IERvIGFsbCB0aGUgd29yayBmb3IgQXV0b21ha2UuICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgs IDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCi0rIyAyMDA1LCAyMDA2LCAyMDA4 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgotKwotKyMgc2VyaWFsIDEzCi0rCi0rIyBUaGlzIG1hY3JvIGFjdHVhbGx5IGRvZXMgdG9vIG11 Y2guICBTb21lIGNoZWNrcyBhcmUgb25seSBuZWVkZWQgaWYKLSsjIHlvdXIgcGFja2FnZSBkb2Vz IGNlcnRhaW4gdGhpbmdzLiAgQnV0IHRoaXMgaXNuJ3QgcmVhbGx5IGEgYmlnIGRlYWwuCi0rCi0r IyBBTV9JTklUX0FVVE9NQUtFKFBBQ0tBR0UsIFZFUlNJT04sIFtOTy1ERUZJTkVdKQotKyMgQU1f SU5JVF9BVVRPTUFLRShbT1BUSU9OU10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgVGhlIGNhbGwgd2l0aCBQQUNLQUdFIGFuZCBWRVJTSU9O IGFyZ3VtZW50cyBpcyB0aGUgb2xkIHN0eWxlCi0rIyBjYWxsIChwcmUgYXV0b2NvbmYtMi41MCks IHdoaWNoIGlzIGJlaW5nIHBoYXNlZCBvdXQuICBQQUNLQUdFCi0rIyBhbmQgVkVSU0lPTiBzaG91 bGQgbm93IGJlIHBhc3NlZCB0byBBQ19JTklUIGFuZCByZW1vdmVkIGZyb20KLSsjIHRoZSBjYWxs IHRvIEFNX0lOSVRfQVVUT01BS0UuCi0rIyBXZSBzdXBwb3J0IGJvdGggY2FsbCBzdHlsZXMgZm9y IHRoZSB0cmFuc2l0aW9uLiAgQWZ0ZXIKLSsjIHRoZSBuZXh0IEF1dG9tYWtlIHJlbGVhc2UsIEF1 dG9jb25mIGNhbiBtYWtlIHRoZSBBQ19JTklUCi0rIyBhcmd1bWVudHMgbWFuZGF0b3J5LCBhbmQg dGhlbiB3ZSBjYW4gZGVwZW5kIG9uIGEgbmV3IEF1dG9jb25mCi0rIyByZWxlYXNlIGFuZCBkcm9w IHRoZSBvbGQgY2FsbCBzdXBwb3J0LgotK0FDX0RFRlVOKFtBTV9JTklUX0FVVE9NQUtFXSwKLStb QUNfUFJFUkVRKFsyLjYwXSlkbmwKLStkbmwgQXV0b2NvbmYgd2FudHMgdG8gZGlzYWxsb3cgQU1f IG5hbWVzLiAgV2UgZXhwbGljaXRseSBhbGxvdwotK2RubCB0aGUgb25lcyB3ZSBjYXJlIGFib3V0 LgotK200X3BhdHRlcm5fYWxsb3coW15BTV9bQS1aXStGTEFHUyRdKWRubAotK0FDX1JFUVVJUkUo W0FNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT05dKWRubAotK0FDX1JFUVVJUkUoW0FDX1BS T0dfSU5TVEFMTF0pZG5sCi0raWYgdGVzdCAiYGNkICRzcmNkaXIgJiYgcHdkYCIgIT0gImBwd2Rg IjsgdGhlbgotKyAgIyBVc2UgLUkkKHNyY2Rpcikgb25seSB3aGVuICQoc3JjZGlyKSAhPSAuLCBz byB0aGF0IG1ha2UncyBvdXRwdXQKLSsgICMgaXMgbm90IHBvbGx1dGVkIHdpdGggcmVwZWF0ZWQg Ii1JLiIKLSsgIEFDX1NVQlNUKFthbV9faXNyY10sIFsnIC1JJChzcmNkaXIpJ10pX0FNX1NVQlNU X05PVE1BS0UoW2FtX19pc3JjXSlkbmwKLSsgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVh ZHkgY29uZmlndXJlZAotKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRoZW4K LSsgICAgQUNfTVNHX0VSUk9SKFtzb3VyY2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsg cnVuICJtYWtlIGRpc3RjbGVhbiIgdGhlcmUgZmlyc3RdKQotKyAgZmkKLStmaQotKwotKyMgdGVz dCB3aGV0aGVyIHdlIGhhdmUgY3lncGF0aAotK2lmIHRlc3QgLXogIiRDWUdQQVRIX1ciOyB0aGVu Ci0rICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4K LSsgICAgQ1lHUEFUSF9XPSdjeWdwYXRoIC13JwotKyAgZWxzZQotKyAgICBDWUdQQVRIX1c9ZWNo bwotKyAgZmkKLStmaQotK0FDX1NVQlNUKFtDWUdQQVRIX1ddKQotKwotKyMgRGVmaW5lIHRoZSBp ZGVudGl0eSBvZiB0aGUgcGFja2FnZS4KLStkbmwgRGlzdGluZ3Vpc2ggYmV0d2VlbiBvbGQtc3R5 bGUgYW5kIG5ldy1zdHlsZSBjYWxscy4KLSttNF9pZnZhbChbJDJdLAotK1ttNF9pZnZhbChbJDNd LCBbX0FNX1NFVF9PUFRJT04oW25vLWRlZmluZV0pXSlkbmwKLSsgQUNfU1VCU1QoW1BBQ0tBR0Vd LCBbJDFdKWRubAotKyBBQ19TVUJTVChbVkVSU0lPTl0sIFskMl0pXSwKLStbX0FNX1NFVF9PUFRJ T05TKFskMV0pZG5sCi0rZG5sIERpYWdub3NlIG9sZC1zdHlsZSBBQ19JTklUIHdpdGggbmV3LXN0 eWxlIEFNX0FVVE9NQUtFX0lOSVQuCi0rbTRfaWYobTRfaWZkZWYoW0FDX1BBQ0tBR0VfTkFNRV0s IDEpbTRfaWZkZWYoW0FDX1BBQ0tBR0VfVkVSU0lPTl0sIDEpLCAxMSwsCi0rICBbbTRfZmF0YWwo W0FDX0lOSVQgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHBhY2thZ2UgYW5kIHZlcnNpb24gYXJndW1l bnRzXSldKWRubAotKyBBQ19TVUJTVChbUEFDS0FHRV0sIFsnQUNfUEFDS0FHRV9UQVJOQU1FJ10p ZG5sCi0rIEFDX1NVQlNUKFtWRVJTSU9OXSwgWydBQ19QQUNLQUdFX1ZFUlNJT04nXSldKWRubAot KwotK19BTV9JRl9PUFRJT04oW25vLWRlZmluZV0sLAotK1tBQ19ERUZJTkVfVU5RVU9URUQoUEFD S0FHRSwgIiRQQUNLQUdFIiwgW05hbWUgb2YgcGFja2FnZV0pCi0rIEFDX0RFRklORV9VTlFVT1RF RChWRVJTSU9OLCAiJFZFUlNJT04iLCBbVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZV0pXSlkbmwK LSsKLSsjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCi0rQUNfUkVRVUlSRShbQU1fU0FOSVRZ X0NIRUNLXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19BUkdfUFJPR1JBTV0pZG5sCi0rQU1fTUlTU0lO R19QUk9HKEFDTE9DQUwsIGFjbG9jYWwtJHthbV9fYXBpX3ZlcnNpb259KQotK0FNX01JU1NJTkdf UFJPRyhBVVRPQ09ORiwgYXV0b2NvbmYpCi0rQU1fTUlTU0lOR19QUk9HKEFVVE9NQUtFLCBhdXRv bWFrZS0ke2FtX19hcGlfdmVyc2lvbn0pCi0rQU1fTUlTU0lOR19QUk9HKEFVVE9IRUFERVIsIGF1 dG9oZWFkZXIpCi0rQU1fTUlTU0lOR19QUk9HKE1BS0VJTkZPLCBtYWtlaW5mbykKLStBTV9QUk9H X0lOU1RBTExfU0gKLStBTV9QUk9HX0lOU1RBTExfU1RSSVAKLStBQ19SRVFVSVJFKFtBTV9QUk9H X01LRElSX1BdKWRubAotKyMgV2UgbmVlZCBhd2sgZm9yIHRoZSAiY2hlY2siIHRhcmdldC4gIFRo ZSBzeXN0ZW0gImF3ayIgaXMgYmFkIG9uCi0rIyBzb21lIHBsYXRmb3Jtcy4KLStBQ19SRVFVSVJF KFtBQ19QUk9HX0FXS10pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19NQUtFX1NFVF0pZG5sCi0r QUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStfQU1fSUZfT1BUSU9OKFt0YXIt dXN0YXJdLCBbX0FNX1BST0dfVEFSKFt1c3Rhcl0pXSwKLSsgICAgICAgICAgICAgIFtfQU1fSUZf T1BUSU9OKFt0YXItcGF4XSwgW19BTV9QUk9HX1RBUihbcGF4XSldLAotKwkgICAgICAJCSAgICAg W19BTV9QUk9HX1RBUihbdjddKV0pXSkKLStfQU1fSUZfT1BUSU9OKFtuby1kZXBlbmRlbmNpZXNd LCwKLStbQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfQ0NdLAotKyAgICAgICAgICAgICAgICAg IFtfQU1fREVQRU5ERU5DSUVTKENDKV0sCi0rICAgICAgICAgICAgICAgICAgW2RlZmluZShbQUNf UFJPR19DQ10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZuKFtBQ19QUk9HX0NDXSlb X0FNX0RFUEVOREVOQ0lFUyhDQyldKV0pZG5sCi0rQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0df Q1hYXSwKLSsgICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lFUyhDWFgpXSwKLSsgICAg ICAgICAgICAgICAgICBbZGVmaW5lKFtBQ19QUk9HX0NYWF0sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBkZWZuKFtBQ19QUk9HX0NYWF0pW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0pXSlkbmwK LStBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19PQkpDXSwKLSsgICAgICAgICAgICAgICAgICBb X0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0sCi0rICAgICAgICAgICAgICAgICAgW2RlZmluZShbQUNf UFJPR19PQkpDXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZm4oW0FDX1BST0dfT0JK Q10pW19BTV9ERVBFTkRFTkNJRVMoT0JKQyldKV0pZG5sCi0rXSkKLStdKQotKwotKwotKyMgV2hl biBjb25maWcuc3RhdHVzIGdlbmVyYXRlcyBhIGhlYWRlciwgd2UgbXVzdCB1cGRhdGUgdGhlIHN0 YW1wLWggZmlsZS4KLSsjIFRoaXMgZmlsZSByZXNpZGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBh cyB0aGUgY29uZmlnIGhlYWRlcgotKyMgdGhhdCBpcyBnZW5lcmF0ZWQuICBUaGUgc3RhbXAgZmls ZXMgYXJlIG51bWJlcmVkIHRvIGhhdmUgZGlmZmVyZW50IG5hbWVzLgotKwotKyMgQXV0b2NvbmYg Y2FsbHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBkZWZpbmVkKSBpbiB0aGUKLSsj IGxvb3Agd2hlcmUgY29uZmlnLnN0YXR1cyBjcmVhdGVzIHRoZSBoZWFkZXJzLCBzbyB3ZSBjYW4g Z2VuZXJhdGUKLSsjIG91ciBzdGFtcCBmaWxlcyB0aGVyZS4KLStBQ19ERUZVTihbX0FDX0FNX0NP TkZJR19IRUFERVJfSE9PS10sCi0rWyMgQ29tcHV0ZSAkMSdzIGluZGV4IGluICRjb25maWdfaGVh ZGVycy4KLStfYW1fYXJnPSQxCi0rX2FtX3N0YW1wX2NvdW50PTEKLStmb3IgX2FtX2hlYWRlciBp biAkY29uZmlnX2hlYWRlcnMgOjsgZG8KLSsgIGNhc2UgJF9hbV9oZWFkZXIgaW4KLSsgICAgJF9h bV9hcmcgfCAkX2FtX2FyZzoqICkKLSsgICAgICBicmVhayA7OwotKyAgICAqICkKLSsgICAgICBf YW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7Ci0rICBlc2FjCi0r ZG9uZQotK2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gQVNfRElSTkFNRShbIiRfYW1f YXJnIl0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKLSsKLSsjIENvcHlyaWdodCAoQykg MjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBBTV9QUk9HX0lOU1RBTExfU0gKLSsjIC0tLS0tLS0t LS0tLS0tLS0tLQotKyMgRGVmaW5lICRpbnN0YWxsX3NoLgotK0FDX0RFRlVOKFtBTV9QUk9HX0lO U1RBTExfU0hdLAotK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCi0raW5zdGFs bF9zaD0ke2luc3RhbGxfc2gtIlwkKFNIRUxMKSAkYW1fYXV4X2Rpci9pbnN0YWxsLXNoIn0KLStB Q19TVUJTVChpbnN0YWxsX3NoKV0pCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgot KwotKyMgc2VyaWFsIDIKLSsKLSsjIENoZWNrIHdoZXRoZXIgdGhlIHVuZGVybHlpbmcgZmlsZS1z eXN0ZW0gc3VwcG9ydHMgZmlsZW5hbWVzCi0rIyB3aXRoIGEgbGVhZGluZyBkb3QuICBGb3IgaW5z dGFuY2UgTVMtRE9TIGRvZXNuJ3QuCi0rQUNfREVGVU4oW0FNX1NFVF9MRUFESU5HX0RPVF0sCi0r W3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCi0rbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAotK2lmIHRl c3QgLWQgLnRzdDsgdGhlbgotKyAgYW1fX2xlYWRpbmdfZG90PS4KLStlbHNlCi0rICBhbV9fbGVh ZGluZ19kb3Q9XwotK2ZpCi0rcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAotK0FDX1NVQlNUKFthbV9f bGVhZGluZ19kb3RdKV0pCi0rCi0rIyBDaGVjayB0byBzZWUgaG93ICdtYWtlJyB0cmVhdHMgaW5j bHVkZXMuCSAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykg MjAwMSwgMjAwMiwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r IwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgMwotKwotKyMgQU1fTUFLRV9J TkNMVURFKCkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB0byBzZWUgaG93IG1ha2Ug dHJlYXRzIGluY2x1ZGVzLgotK0FDX0RFRlVOKFtBTV9NQUtFX0lOQ0xVREVdLAotK1thbV9tYWtl PSR7TUFLRS1tYWtlfQotK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKLSthbV9fZG9pdDoKLSsJQGVj aG8gZG9uZQotKy5QSE9OWTogYW1fX2RvaXQKLStFTkQKLSsjIElmIHdlIGRvbid0IGZpbmQgYW4g aW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCi0rQUNfTVNHX0NI RUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlXSkKLSthbV9faW5j bHVkZT0iIyIKLSthbV9fcXVvdGU9Ci0rX2FtX3Jlc3VsdD1ub25lCi0rIyBGaXJzdCB0cnkgR05V IG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStlY2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCi0r IyBXZSBncmVwIG91dCBgRW50ZXJpbmcgZGlyZWN0b3J5JyBhbmQgYExlYXZpbmcgZGlyZWN0b3J5 JwotKyMgbWVzc2FnZXMgd2hpY2ggY2FuIG9jY3VyIGlmIGB3JyBlbmRzIHVwIGluIE1BS0VGTEFH Uy4KLSsjIEluIHBhcnRpY3VsYXIgd2UgZG9uJ3QgbG9vayBhdCBgXm1ha2U6JyBiZWNhdXNlIEdO VSBtYWtlIG1pZ2h0Ci0rIyBiZSBpbnZva2VkIHVuZGVyIHNvbWUgb3RoZXIgbmFtZSAodXN1YWxs eSAiZ21ha2UiKSwgaW4gd2hpY2gKLSsjIGNhc2UgaXQgcHJpbnRzIGl0cyBuZXcgbmFtZSBpbnN0 ZWFkIG9mIGBtYWtlJy4KLStpZiB0ZXN0ICJgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYv bnVsbCB8IGdyZXAgLXYgJ2luZyBkaXJlY3RvcnknYCIgPSAiZG9uZSI7IHRoZW4KLSsgICBhbV9f aW5jbHVkZT1pbmNsdWRlCi0rICAgYW1fX3F1b3RlPQotKyAgIF9hbV9yZXN1bHQ9R05VCi0rZmkK LSsjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStpZiB0ZXN0ICIkYW1fX2luY2x1 ZGUiID0gIiMiOyB0aGVuCi0rICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgot KyAgIGlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCIgPSAiZG9u ZSI7IHRoZW4KLSsgICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQotKyAgICAgIGFtX19xdW90ZT0i XCIiCi0rICAgICAgX2FtX3Jlc3VsdD1CU0QKLSsgICBmaQotK2ZpCi0rQUNfU1VCU1QoW2FtX19p bmNsdWRlXSkKLStBQ19TVUJTVChbYW1fX3F1b3RlXSkKLStBQ19NU0dfUkVTVUxUKFskX2FtX3Jl c3VsdF0pCi0rcm0gLWYgY29uZmluYyBjb25mbWYKLStdKQotKwotKyMgRmFrZSB0aGUgZXhpc3Rl bmNlIG9mIHByb2dyYW1zIHRoYXQgR05VIG1haW50YWluZXJzIHVzZS4gIC0qLSBBdXRvY29uZiAt Ki0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NywgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAw NCwgMjAwNQotKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBm aWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0r IyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgNQotKwotKyMgQU1fTUlTU0lOR19QUk9HKE5BTUUs IFBST0dSQU0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihb QU1fTUlTU0lOR19QUk9HXSwKLStbQUNfUkVRVUlSRShbQU1fTUlTU0lOR19IQVNfUlVOXSkKLSsk MT0keyQxLSIke2FtX21pc3NpbmdfcnVufSQyIn0KLStBQ19TVUJTVCgkMSldKQotKwotKwotKyMg QU1fTUlTU0lOR19IQVNfUlVOCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSsjIERlZmluZSBNSVNT SU5HIGlmIG5vdCBkZWZpbmVkIHNvIGZhciBhbmQgdGVzdCBpZiBpdCBzdXBwb3J0cyAtLXJ1bi4K LSsjIElmIGl0IGRvZXMsIHNldCBhbV9taXNzaW5nX3J1biB0byB1c2UgaXQsIG90aGVyd2lzZSwg dG8gbm90aGluZy4KLStBQ19ERUZVTihbQU1fTUlTU0lOR19IQVNfUlVOXSwKLStbQUNfUkVRVUlS RShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAotK0FDX1JFUVVJUkVfQVVYX0ZJTEUoW21pc3Npbmdd KWRubAotK3Rlc3QgeCIke01JU1NJTkcrc2V0fSIgPSB4c2V0IHx8IE1JU1NJTkc9Ilwke1NIRUxM fSAkYW1fYXV4X2Rpci9taXNzaW5nIgotKyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAotK2lm IGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCi0rICBhbV9taXNzaW5nX3J1bj0iJE1J U1NJTkcgLS1ydW4gIgotK2Vsc2UKLSsgIGFtX21pc3NpbmdfcnVuPQotKyAgQUNfTVNHX1dBUk4o W2BtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nXSkKLStmaQotK10pCi0rCi0r IyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgQU1fUFJPR19N S0RJUl9QCi0rIyAtLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIGZvciBgbWtkaXIgLXAnLgotK0FD X0RFRlVOKFtBTV9QUk9HX01LRElSX1BdLAotK1tBQ19QUkVSRVEoWzIuNjBdKWRubAotK0FDX1JF UVVJUkUoW0FDX1BST0dfTUtESVJfUF0pZG5sCi0rZG5sIEF1dG9tYWtlIDEuOCB0byAxLjkuNiB1 c2VkIHRvIGRlZmluZSBta2Rpcl9wLiAgV2Ugbm93IHVzZSBNS0RJUl9QLAotK2RubCB3aGlsZSBr ZWVwaW5nIGEgZGVmaW5pdGlvbiBvZiBta2Rpcl9wIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5 LgotK2RubCBATUtESVJfUEAgaXMgbWFnaWM6IEFDX09VVFBVVCBhZGp1c3RzIGl0cyB2YWx1ZSBm b3IgZWFjaCBNYWtlZmlsZS4KLStkbmwgSG93ZXZlciB3ZSBjYW5ub3QgZGVmaW5lIG1rZGlyX3Ag YXMgJChNS0RJUl9QKSBmb3IgdGhlIHNha2Ugb2YKLStkbmwgTWFrZWZpbGUuaW5zIHRoYXQgZG8g bm90IGRlZmluZSBNS0RJUl9QLCBzbyB3ZSBkbyBvdXIgb3duCi0rZG5sIGFkanVzdG1lbnQgdXNp bmcgdG9wX2J1aWxkZGlyICh3aGljaCBpcyBkZWZpbmVkIG1vcmUgb2Z0ZW4gdGhhbgotK2RubCBN S0RJUl9QKS4KLStBQ19TVUJTVChbbWtkaXJfcF0sIFsiJE1LRElSX1AiXSlkbmwKLStjYXNlICRt a2Rpcl9wIGluCi0rICBbW1xcLyRdXSogfCA/OltbXFwvXV0qKSA7OwotKyAgKi8qKSBta2Rpcl9w PSJcJCh0b3BfYnVpbGRkaXIpLyRta2Rpcl9wIiA7OwotK2VzYWMKLStdKQotKwotKyMgSGVscGVy IGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgIC0qLSBB dXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu Ci0rCi0rIyBzZXJpYWwgMwotKwotKyMgX0FNX01BTkdMRV9PUFRJT04oTkFNRSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW19BTV9NQU5HTEVfT1BUSU9OXSwKLStbW19B TV9PUFRJT05fXW00X2JwYXRzdWJzdCgkMSwgW1teYS16QS1aMC05X11dLCBbX10pXSkKLSsKLSsj IF9BTV9TRVRfT1BUSU9OKE5BTUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSsjIFNldCBvcHRpb24gTkFNRS4gIFByZXNlbnRseSB0aGF0IG9ubHkgbWVhbnMgZGVmaW5pbmcg YSBmbGFnIGZvciB0aGlzIG9wdGlvbi4KLStBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05dLAotK1tt NF9kZWZpbmUoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIDEpXSkKLSsKLSsjIF9BTV9TRVRfT1BU SU9OUyhPUFRJT05TKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg T1BUSU9OUyBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIEF1dG9tYWtlIG9wdGlvbnMuCi0r QUNfREVGVU4oW19BTV9TRVRfT1BUSU9OU10sCi0rW0FDX0ZPUkVBQ0goW19BTV9PcHRpb25dLCBb JDFdLCBbX0FNX1NFVF9PUFRJT04oX0FNX09wdGlvbildKV0pCi0rCi0rIyBfQU1fSUZfT1BUSU9O KE9QVElPTiwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMgc2V0 LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KLStBQ19ERUZVTihbX0FNX0lGX09QVElPTl0sCi0rW200 X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBbJDNdKV0pCi0rCi0rIyBDaGVj ayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4gICAgLSot IEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAyMDAwLCAyMDAx LCAyMDAzLCAyMDA1Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgot KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA0Ci0rCi0rIyBBTV9TQU5JVFlfQ0hFQ0sK LSsjIC0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBTV9TQU5JVFlfQ0hFQ0tdLAotK1tBQ19N U0dfQ0hFQ0tJTkcoW3doZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZV0pCi0rIyBKdXN0 IGluIGNhc2UKLStzbGVlcCAxCi0rZWNobyB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCi0rIyBE byBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hl bGwncwotKyMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUg aXMgYWN0dWFsbHkgYQotKyMgc3ltbGluazsgc29tZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMg d2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MKLSsjIChlZyBGcmVlQlNEIHJldHVybnMgdGhl IG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmluZwotKyMgZGlyZWN0b3J5KS4KLStp ZiAoCi0rICAgc2V0IFggYGxzIC1MdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIDI+ IC9kZXYvbnVsbGAKLSsgICBpZiB0ZXN0ICIkWypdIiA9ICJYIjsgdGhlbgotKyAgICAgICMgLUwg ZGlkbid0IHdvcmsuCi0rICAgICAgc2V0IFggYGxzIC10ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0 ZXN0LmZpbGVgCi0rICAgZmkKLSsgICBybSAtZiBjb25mdGVzdC5maWxlCi0rICAgaWYgdGVzdCAi JFsqXSIgIT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSIgXAotKyAgICAgICYm IHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVu Ci0rCi0rICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBs cy4gIFRoaXMgY2FuIGhhcHBlbgotKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NI RUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSsgICAgICAjIGJyb2tlbiBscyBhbGlhcyBm cm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5Ci0rICAgICAgIyBoYXBwZW5l ZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgotKyAgICAg IEFDX01TR19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlz IG5vdCBhIGJyb2tlbgotK2FsaWFzIGluIHlvdXIgZW52aXJvbm1lbnRdKQotKyAgIGZpCi0rCi0r ICAgdGVzdCAiJFsyXSIgPSBjb25mdGVzdC5maWxlCi0rICAgKQotK3RoZW4KLSsgICAjIE9rLgot KyAgIDoKLStlbHNlCi0rICAgQUNfTVNHX0VSUk9SKFtuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xk ZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKLStDaGVjayB5b3VyIHN5c3RlbSBjbG9ja10pCi0r ZmkKLStBQ19NU0dfUkVTVUxUKHllcyldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAz LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIEFNX1BST0dfSU5TVEFMTF9TVFJJUAotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBPbmUgaXNzdWUgd2l0aCB2ZW5kb3IgYGluc3RhbGwnIChldmVuIEdOVSkgaXMg dGhhdCB5b3UgY2FuJ3QKLSsjIHNwZWNpZnkgdGhlIHByb2dyYW0gdXNlZCB0byBzdHJpcCBiaW5h cmllcy4gIFRoaXMgaXMgZXNwZWNpYWxseQotKyMgYW5ub3lpbmcgaW4gY3Jvc3MtY29tcGlsaW5n IGVudmlyb25tZW50cywgd2hlcmUgdGhlIGJ1aWxkJ3Mgc3RyaXAKLSsjIGlzIHVubGlrZWx5IHRv IGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFyaWVzLgotKyMgRm9ydHVuYXRlbHkgaW5zdGFsbC1zaCB3 aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZhcmlhYmxlLCBzbyB3ZQotKyMgYWx3YXlzIHVzZSBpbnN0 YWxsLXNoIGluIGBtYWtlIGluc3RhbGwtc3RyaXAnLCBhbmQgaW5pdGlhbGl6ZQotKyMgU1RSSVBQ Uk9HIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBTVFJJUCB2YXJpYWJsZSAoc2V0IGJ5IHRoZSB1c2Vy KS4KLStBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NUUklQXSwKLStbQUNfUkVRVUlSRShbQU1f UFJPR19JTlNUQUxMX1NIXSlkbmwKLSsjIEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBz dHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKLSsjIHJ1biBgbWFrZSBpbnN0YWxs LXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0Ci0rIyB0b29s IHRvIHVzZSBpbiBjcm9zcy1jb21waWxhdGlvbiBlbnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRv bWFrZQotKyMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBv dmVycnVsZSB0aGlzIHByb2dyYW0uCi0rZG5sIERvbid0IHRlc3QgZm9yICRjcm9zc19jb21waWxp bmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWlnaHQgYmUgYG1heWJlJy4KLStpZiB0ZXN0ICIkY3Jvc3Nf Y29tcGlsaW5nIiAhPSBubzsgdGhlbgotKyAgQUNfQ0hFQ0tfVE9PTChbU1RSSVBdLCBbc3RyaXBd LCA6KQotK2ZpCi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIK LStBQ19TVUJTVChbSU5TVEFMTF9TVFJJUF9QUk9HUkFNXSldKQotKwotKyMgQ29weXJpZ2h0IChD KSAyMDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxFKQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBQcmV2ZW50IEF1dG9tYWtlIGZyb20gb3V0cHV0dGluZyBW QVJJQUJMRSA9IEBWQVJJQUJMRUAgaW4gTWFrZWZpbGUuaW4uCi0rIyBUaGlzIG1hY3JvIGlzIHRy YWNlZCBieSBBdXRvbWFrZS4KLStBQ19ERUZVTihbX0FNX1NVQlNUX05PVE1BS0VdKQotKwotKyMg Q2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0r IyBzZXJpYWwgMgotKwotKyMgX0FNX1BST0dfVEFSKEZPUk1BVCkKLSsjIC0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9STUFU LgotKyMgRk9STUFUIHNob3VsZCBiZSBvbmUgb2YgYHY3JywgYHVzdGFyJywgb3IgYHBheCcuCi0r IwotKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1hbmQK LSsjIHdyaXRpbmcgdG8gc3Rkb3V0IGEgRk9STUFULXRhcmJhbGwgY29udGFpbmluZyB0aGUgZGly ZWN0b3J5Ci0rIyAkdGFyZGlyLgotKyMgICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9fdGFy KSA+IHJlc3VsdC50YXIKLSsjCi0rIyBTdWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9fdW50YXIp IHRoYXQgZXh0cmFjdCBzdWNoCi0rIyBhIHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgotKyMgICAg ICQoYW1fX3VudGFyKSA8IHJlc3VsdC50YXIKLStBQ19ERUZVTihbX0FNX1BST0dfVEFSXSwKLStb IyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgotK0FNX01J U1NJTkdfUFJPRyhbQU1UQVJdLCBbdGFyXSkKLSttNF9pZihbJDFdLCBbdjddLAotKyAgICAgW2Ft X190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4 ZiAtJ10sCi0rICAgICBbbTRfY2FzZShbJDFdLCBbdXN0YXJdLCwgW3BheF0sLAotKyAgICAgICAg ICAgICAgW200X2ZhdGFsKFtVbmtub3duIHRhciBmb3JtYXRdKV0pCi0rQUNfTVNHX0NIRUNLSU5H KFtob3cgdG8gY3JlYXRlIGEgJDEgdGFyIGFyY2hpdmVdKQotKyMgTG9vcCBvdmVyIGFsbCBrbm93 biBtZXRob2RzIHRvIGNyZWF0ZSBhIHRhciBhcmNoaXZlIHVudGlsIG9uZSB3b3Jrcy4KLStfYW1f dG9vbHM9J2dudXRhciBtNF9pZihbJDFdLCBbdXN0YXJdLCBbcGxhaW50YXJdKSBwYXggY3BpbyBu b25lJwotK19hbV90b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9Ci0rIyBEbyBu b3QgZm9sZCB0aGUgYWJvdmUgdHdvIGxpbmUgaW50byBvbmUsIGJlY2F1c2UgVHJ1NjQgc2ggYW5k Ci0rIyBTb2xhcmlzIHNoIHdpbGwgbm90IGdyb2sgc3BhY2VzIGluIHRoZSByaHMgb2YgYC0nLgot K2ZvciBfYW1fdG9vbCBpbiAkX2FtX3Rvb2xzCi0rZG8KLSsgIGNhc2UgJF9hbV90b29sIGluCi0r ICBnbnV0YXIpCi0rICAgIGZvciBfYW1fdGFyIGluIHRhciBnbnV0YXIgZ3RhcjsKLSsgICAgZG8K LSsgICAgICBBTV9SVU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAmJiBicmVhawotKyAgICBk b25lCi0rICAgIGFtX190YXI9IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBb cG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJCR0YXJkaXIiJwotKyAgICBhbV9fdGFyXz0iJF9hbV90 YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIk dGFyZGlyIicKLSsgICAgYW1fX3VudGFyPSIkX2FtX3RhciAteGYgLSIKLSsgICAgOzsKLSsgIHBs YWludGFyKQotKyAgICAjIE11c3Qgc2tpcCBHTlUgdGFyOiBpZiBpdCBkb2VzIG5vdCBzdXBwb3J0 IC0tZm9ybWF0PSBpdCBkb2Vzbid0IGNyZWF0ZQotKyAgICAjIHVzdGFyIHRhcmJhbGwgZWl0aGVy LgotKyAgICAodGFyIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCi0rICAg IGFtX190YXI9J3RhciBjaGYgLSAiJCR0YXJkaXIiJwotKyAgICBhbV9fdGFyXz0ndGFyIGNoZiAt ICIkdGFyZGlyIicKLSsgICAgYW1fX3VudGFyPSd0YXIgeGYgLScKLSsgICAgOzsKLSsgIHBheCkK LSsgICAgYW1fX3Rhcj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciInCi0rICAgIGFtX190YXJf PSdwYXggLUwgLXggJDEgLXcgIiR0YXJkaXIiJwotKyAgICBhbV9fdW50YXI9J3BheCAtcicKLSsg ICAgOzsKLSsgIGNwaW8pCi0rICAgIGFtX190YXI9J2ZpbmQgIiQkdGFyZGlyIiAtcHJpbnQgfCBj cGlvIC1vIC1IICQxIC1MJwotKyAgICBhbV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50IHwg Y3BpbyAtbyAtSCAkMSAtTCcKLSsgICAgYW1fX3VudGFyPSdjcGlvIC1pIC1IICQxIC1kJwotKyAg ICA7OwotKyAgbm9uZSkKLSsgICAgYW1fX3Rhcj1mYWxzZQotKyAgICBhbV9fdGFyXz1mYWxzZQot KyAgICBhbV9fdW50YXI9ZmFsc2UKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgICMgSWYgdGhlIHZh bHVlIHdhcyBjYWNoZWQsIHN0b3Agbm93LiAgV2UganVzdCB3YW50ZWQgdG8gaGF2ZSBhbV9fdGFy Ci0rICAjIGFuZCBhbV9fdW50YXIgc2V0LgotKyAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rhcl8k MX0iICYmIGJyZWFrCi0rCi0rICAjIHRhci91bnRhciBhIGR1bW15IGRpcmVjdG9yeSwgYW5kIHN0 b3AgaWYgdGhlIGNvbW1hbmQgd29ya3MKLSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLSsgIG1rZGly IGNvbmZ0ZXN0LmRpcgotKyAgZWNobyBHcmVwTWUgPiBjb25mdGVzdC5kaXIvZmlsZQotKyAgQU1f UlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRlc3Qu dGFyXSkKLSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLSsgIGlmIHRlc3QgLXMgY29uZnRlc3QudGFy OyB0aGVuCi0rICAgIEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCi0rICAg IGdyZXAgR3JlcE1lIGNvbmZ0ZXN0LmRpci9maWxlID4vZGV2L251bGwgMj4mMSAmJiBicmVhawot KyAgZmkKLStkb25lCi0rcm0gLXJmIGNvbmZ0ZXN0LmRpcgotKwotK0FDX0NBQ0hFX1ZBTChbYW1f Y3ZfcHJvZ190YXJfJDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90b29sXSkKLStBQ19NU0df UkVTVUxUKFskYW1fY3ZfcHJvZ190YXJfJDFdKV0pCi0rQUNfU1VCU1QoW2FtX190YXJdKQotK0FD X1NVQlNUKFthbV9fdW50YXJdKQotK10pICMgX0FNX1BST0dfVEFSCi0rCi0rbTRfaW5jbHVkZShb Y29uZmlnL2F4X2Jvb3N0Lm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvYXhfbXlzcWwubTRdKQot K200X2luY2x1ZGUoW2NvbmZpZy9heF9vcmFjbGVfb2NpLm00XSkKLSttNF9pbmNsdWRlKFtjb25m aWcvYXhfcG9zdGdyZXNxbC5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2NwcHVuaXQubTRdKQot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL0FVVEhPUlMgc29jaS0zLjAuMF90cmVwMzAwL0FV VEhPUlMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9BVVRIT1JTCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL0FVVEhPUlMJMjAwOS0wNC0x NiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsOSBAQAotKwotK0RhdmlkIENv dXJ0bmV5LCBEZXZlbG9wZXIsIGRhY291cnRuZXkgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Ci0r TWF0ZXVzeiBMb3Nrb3QsIERldmVsb3BlciwgbWxvc2tvdCBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5u ZXQKLStNYWNpZWogU29iY3phaywgQWRtaW4gUHJvamVjdCBNYW5hZ2VyLCBtc29iY3phayBhdCB1 c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStQYXdlbCBBbGVrc2FuZGVyIEZlZG9yeW5za2ksIERldmVs b3BlciwgcGZlZG9yIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK1JhZmFsIEJvYnJvd3NraSwg RGV2ZWxvcGVyLCByYm9icm8gYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Ci0rSmVhbi1NYXJjLCBE ZXZlbG9wZXIsIHNpZGp0YWwgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Ci0rU3RlcGhlbiBIdXR0 b24sIERldmVsb3Blciwgc3RlcGhlbmh1dHRvbiBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLSsK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4w X3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9N YWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAw MDAwMCArMDIwMAotQEAgLTAsMCArMSw3IEBACi0rIyMgYnVpbGQgc3ViLWRpcmVjdG9yeQotK2lu Y2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IHVuaXggbXN2YzgwCi0rCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAw L2J1aWxkL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUu aW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvYnVpbGQvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMTozMTo0Ny4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsNTM1IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21h a2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMg Q29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0r Ci0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBw ZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0Uu Ci0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRh ZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5j bHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5T VEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9T VF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQg PSBAaG9zdEAKLStESVNUX0NPTU1PTiA9IFJFQURNRSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChz cmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStz dWJkaXIgPSBidWlsZAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSth bV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jl c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVw cykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3Rh bGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRp cikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElT VF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVj dXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBp bnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwt ZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUg aW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJz LXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1 cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBj bGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFu LXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJT ID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VT KSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFS ID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFE RVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAot K0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBC T09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVT WVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAK LStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9 IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9S RUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1Rf VEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04g PSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NF UklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0r Q0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAot K0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQ UFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9W RVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhD UFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAot K0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBE SVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBF Q0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0g QEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZM QUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O QAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0g QElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lO U1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9 IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMg PSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1Mg PSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZP QAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAot K01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJT QAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1Z U1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0r T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBB Q0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FH RV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklO R0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lP TiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JA Ci0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9D RkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVT UUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BP U1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJ QkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtF ID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBA U09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExP QURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJz X2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0r YWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0g QGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBh Y19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9f aW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90 ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9f dW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlh cyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0g QGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBA YnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290 ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5f b2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBz X29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hv c3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9z dF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9y QAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5m b2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9 IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2Rp ckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0 ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNs dWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBA cHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNl ZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3Jj ZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0 X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVp bGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9D UFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gdW5peCBtc3ZjODAKLSthbGw6IGFs bC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChz cmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2Nv bmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAotKwkJJiYg ZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL01ha2Vm aWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAg YnVpbGQvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGly KS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8n IGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAg ICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3Rh dHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVT KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBz KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLStt b3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0r CS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3Jp ZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBy dW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hh bmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1h a2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVz JywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFr ZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90 aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxp bmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZv ciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSog fCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVz YWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBz ZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVz OyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkg ICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2 YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8i OyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4 aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdT OyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAg ICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJ ZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50 YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0n JChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0r CSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2 PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBc Ci0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQg aW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJ ICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2Nh bF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZh aWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3Qg IiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwg KGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25l Ci0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVj dXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYg KCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhl biBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4 PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1w dHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAot KwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3Mg JCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlk b25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklM RVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAt ZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0r CSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsg fSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50 IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUi OyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0 eV9maXg7IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChF VEFHU19BUkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RB R1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdT X0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0r CWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAot Kwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsg dGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8 IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAg ICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0n YDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAk KENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0r CSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRv cF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYg Z3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJt IC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAk KERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3Jj ZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJ TEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRm aWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAg ICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJ Y2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0 X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10q JCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGlu ICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRm aWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQk ZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywv W14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0 ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmls ZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBS ICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkg ICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxl ICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRv bmUKLSsJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAt ZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGly KS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFtX19j ZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQo dG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRpciAmJiBcCi0rCSAgICAg ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3Bf ZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAotKwkJ YW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkg ICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBN YWtlZmlsZQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGly cy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQot K3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQot KwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1h bQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3Ry aXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RS SVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChT VFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJp YzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFp bmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUg c3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFO RklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1y ZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3Rs eWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBN YWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNs ZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDog aHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0r Ci0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNp dmUKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwt cmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwot K2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbGNoZWNrLWFtOgot KwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAt ZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0r Ci0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9v bAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJz aXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKLSsJaW5z dGFsbC1zdHJpcAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFt IGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWN0YWdzIGN0YWdzLXJlY3Vy c2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGlidG9vbCBk aXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBp bmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxsLWRhdGEt YW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKLSsJaW5z dGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKLSsJ aW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJ aW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xl YW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4t Z2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdz IHRhZ3MtcmVjdXJzaXZlIFwKLSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFL RUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9y dCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBh dCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMw MC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVp bGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFt CTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0r IyMgYnVpbGQvbXN2YzgwL2RsbCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K LSsKLStFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2Ri Y190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKLSsJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxp dGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCi0rCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNf dGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKLSsJcG9zdGdyZXNxbC52Y3Byb2ogc3Fs aXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKLSsJb2RiY190ZXN0X21z c3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKLSsJZW1wdHlfdGVz dC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfZGxsLnZz cHJvcHMKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2Vm aWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluCi0t LS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWls ZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluCTIwMDktMDUtMDYgMDE6MzE6NDcuMDAwMDAwMDAwICsw MjAwCi1AQCAtMCwwICsxLDM4MyBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9t YWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsj IENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwg MjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgot KwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQg cGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NF LgotKwotK0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0 YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2lu Y2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7 WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEg PSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFs bF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxM X0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lO U1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BP U1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0 ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIp L01ha2VmaWxlLmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIg PSBidWlsZC9tc3ZjODAvZGxsCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5t NAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bv c3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9t NF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21r aW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0K LStESVNUX1NPVVJDRVMgPQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VS Q0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FN VEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9I RUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdL QAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9 IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJ TEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJ QkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09T VF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpB VElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9P U1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJ T04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1Rf V1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVA Ci0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdT QAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0g QENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5J VF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBD WFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdT QAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBE RVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9 IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQ ID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBA RkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRB ID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAot K0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JB TSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9C SlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xO X1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJ TkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdT QAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9E SVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0g QE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAot K09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNM RV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NA Ci0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0g QFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFD S0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NU UklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVS U0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFU T1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNR TF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RH UkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAot K1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJB TkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9N QUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQg PSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStV UExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0r YWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJA Ci0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGly ID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9 IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBh bV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19x dW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBh bV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9h bGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29z ID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIg PSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFy b290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHln ZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2 aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAot K2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBA aG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVu ZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0r aW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9v ayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhl Y2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxz dGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRp bmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXgg PSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0g QHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBA c3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFy Z2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3Bf YnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStB TV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5 LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKLSsJcG9z dGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCi0rCWZp cmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwK LSsJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQu dmNwcm9qIFwKLSsJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29j aV9kbGwuc2xuIFwKLSsJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBv cmFjbGUudmNwcm9qIHNvY2lfZGxsLnZzcHJvcHMKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZG SVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3Ig ZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0r CSAgICAqJCRkZXAqKSBcCi0rCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhp dCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGly KSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSc7IFwKLSsJ Y2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL21zdmM4 MC9kbGwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGly KS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8n IGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAg ICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3Rh dHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVT KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBz KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLStt b3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0r CS1ybSAtcmYgLmxpYnMgX2xpYnMKLSt0YWdzOiBUQUdTCi0rVEFHUzoKLSsKLStjdGFnczogQ1RB R1MKLStDVEFHUzoKLSsKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlw PWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0 b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBm b3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAi c3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlw L3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkg ICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9c Ly8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAg OzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlm IHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3Jj ZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGly PWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRl c3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAot KwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAx OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGly IHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmls ZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAg IHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hl Y2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOgotK2luc3RhbGw6 IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0 YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxs LWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3Rh bGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJ TlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXog JyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJP Rz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4t Z2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NM RUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBt YWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJl cXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5F UkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBj bGVhbi1hbQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5 Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUK LStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCi0rCi0rZHZpOiBkdmkt YW0KLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2luZm86IGluZm8tYW0KLSsK LStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFs bC1kdmktYW0KLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxs LWh0bWwtYW0KLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwt bWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcHM6IGlu c3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjog bWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFu LWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xl YW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwot K3BzOiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5z dGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNr LWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbiBkaXN0 Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2aSBcCi0rCWR2aS1hbSBo dG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwt ZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAotKwlpbnN0 YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAot KwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwK LSsJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAg XAotKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXIt Y2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xl YW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1 bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBb My41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBP dGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVk ZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4 MC9saWIvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFr ZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxl LmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNy4w MDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTEgQEAKLSsjIyBidWlsZC9tc3ZjODAvbGliIHN1 Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0r TUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK0VYVFJBX0RJU1QgPSBidWls ZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3By b2ogXAotKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4u YmF0IFwKLSsJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2Ri Yy52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJv aiBmaXJlYmlyZC52Y3Byb2ogXAotKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0 LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAotKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlz cWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcwotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVw MzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9i dWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUu aW4JMjAwOS0wNS0wNiAwMTozMTo0Ny4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzgzIEBA Ci0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZp bGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQ QVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2ds aWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRp cikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9T RVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0g NjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hf U0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RB VEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNU QUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5J TlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVp bGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1P TiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9saWIKLStB Q0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVw cyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2Np Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSth bV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RF UEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFs bF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgK LStDT05GSUdfQ0xFQU5fRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rRElT VEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhU UkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBA QVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAot K0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJP T1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJA Ci0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1Rf SU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9P U1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BU SU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9T RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdO QUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NU X1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAot K0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0r Q0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAot K0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBA Q1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQ VU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9W RVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0g QENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BB VEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBE U1lNVVRJTEAKLStFQ0hPID0gQEVDSE9ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBA RUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0g QEVYRUVYVEAKLStGNzcgPSBARjc3QAotK0ZGTEFHUyA9IEBGRkxBR1NACi0rR0VORVJJQ19MSUJS QVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAot K0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lO U1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5T VEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJP R1JBTUAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMg PSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JK UyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJ Ul9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1Z U1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9 IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTUVE SVQgPSBATk1FRElUQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xF X0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xF X09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04g PSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JV R1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9O QU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFN RSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lP TkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0r UEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FM X0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVT UUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0g QFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0g QFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hF TEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVE QAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklF REAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9B RF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1 aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0g QGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0r YWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9G NzcgPSBAYWNfY3RfRjc3QAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFk aW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSth bV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBA YmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAot K2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRf dmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGly ID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBk aWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAot K2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXgg PSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3Rf YWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0g QGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1s ZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0r aW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRp ciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBs b2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBt YW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVk ZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGly QAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRl ZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9 IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxk X3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRk aXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9i dWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmls ZS5pbgotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBv ZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNx bGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2Ri Y190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsLnZjcHJvaiBz cWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAotKwlvZGJjX3Rlc3Rf bXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAotKwllbXB0eV90 ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIu dnNwcm9wcwotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBj YXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoIFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAot Kwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251 ICBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwK LSsJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZQotKy5QUkVD SU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3Rh dHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVz YWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29u ZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2Rp cikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6 ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0r CS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwot K3RhZ3M6IFRBR1MKLStUQUdTOgotKwotK2N0YWdzOiBDVEFHUwotK0NUQUdTOgotKwotKwotK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0n JChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxl ICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2Rp cikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAg ICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQk ZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7 IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stYW0KLSthbGwtYW06 IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6Ci0raW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3RhbGwt ZXhlYzogaW5zdGFsbC1leGVjLWFtCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KLSt1 bmluc3RhbGw6IHVuaW5zdGFsbC1hbQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtF KSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2lu c3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAk KEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSki IFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5T VEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAg IGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxs Ci0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVh bi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAk KENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBl Y2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJ QGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRv IHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1m ICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06 IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVh bjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4t YW0gZGlzdGNsZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLSto dG1sOiBodG1sLWFtCi0rCi0raW5mbzogaW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFs bC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwt ZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwt aW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6 IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3Rh bGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0r CS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWlu dGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsK LSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29s Ci0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06 Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAK LSsKLSsuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJp YyBjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVh bi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKLSsJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8t YW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBp bnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCi0rCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCi0rCWluc3RhbGwtaW5mbyBpbnN0YWxs LWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAotKwlpbnN0YWxsLXBkZi1hbSBpbnN0 YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCi0rCWluc3RhbGxjaGVjayBpbnN0 YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5 Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0K LSsKLStAU0VUX01BS0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtl IHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1p dCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtIHNvY2ktMy4w LjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtCTIw MDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDggQEAKLSsjIyBi dWlsZC9tc3ZjODAgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rRVhU UkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCi0rCi0rU1VCRElSUyA9IGRsbCBsaWIK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4gc29j aS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUu aW4JMjAwOS0wNS0wNiAwMTozMTo0Ny4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTM2IEBA Ci0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZp bGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQ QVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2ds aWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRp cikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9T RVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0g NjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hf U0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RB VEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNU QUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5J TlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVp bGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1P TiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL21zdmM4MAotK0FDTE9D QUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0g JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NP TkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJ VkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUg XAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl IFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlp bnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxs LXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAot KwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJz aXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAg ZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0g ZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RG SUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJB X0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFS QAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStB VVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAot K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFM U19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9U SFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStC T09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0ND ID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStD UFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQ UFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVO SVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVS U0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBD WFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRI X1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZ TVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVD SE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBF WEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFS WV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJ TlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNU QUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RB TExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dS QU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0g QExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMg PSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJf UEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNR TF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBA TVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElU ID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9E SVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9P Q0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0g QE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdS RVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFN RUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUg PSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05A Ci0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BH X0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9D RkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FM X0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQ T1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBS UE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxM ID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAK LStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURA Ci0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURf Q09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWls ZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBh YnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2Fj X2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3 ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGlu Z19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1f X3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJp bmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLSti dWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3Zl bmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9 IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlm Zl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStk dmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0g QGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2Fs aWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBo b3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRp ckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2lu c3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIg PSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9j YWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFu ZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVk aXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJh bnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAK LStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRp ciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBA c3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9w cmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGly QAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVp bGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KLStFWFRSQV9ESVNUID0gUkVBRE1FLnR4dCBzb2NpLnZzcHJvcHMKLStTVUJESVJTID0gZGxs IGxpYgotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFr ZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAg Y2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAg ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwK LSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdu dSAgYnVpbGQvbXN2YzgwL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJ ICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBN YWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBc Ci0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21h eWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5z dGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsK LSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUg JChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1f X2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1m ICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBU aGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlv dSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91 Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJp YWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlh YmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAg ICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVu IHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFs dWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgot KwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0r CSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49 bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc Ci0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg JCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0r CWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFp bCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7 IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJ ICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBc Ci0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBp biBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9T VUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAot KwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwK LSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hv ICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBc Ci0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFt IjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBm aTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAi JCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVj dXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNF UykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW10cHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3Rh Z3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykg ICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdz PTsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12 ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRh Z3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVf b3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0n JChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdT IHx8IFwKLSsJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3Vi ZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAteiAi JChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1u ICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChFVEFH U0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdzICQk dW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAk KEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19G SUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykg ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdT KSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NU QUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dU QUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYm IGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJl Ci0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lN UyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9w c3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xc XFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9y IGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8 XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98 JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAq LyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8v IWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7 IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0 ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rp cik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1g ZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0 IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJ ICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsg XAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8 fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUg XAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8 fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJ ICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQg MTsgXAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAotKwkg ICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAg ICAoY2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0r CSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGly PSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFt X19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8 IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6 IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGlyczogaW5zdGFs bGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0raW5zdGFsbDogaW5zdGFsbC1yZWN1 cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRh dGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNp dmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGlu c3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxj aGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3Rh bGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZM QUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFM TF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVh bi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0r CS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFO X0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29t bWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVs ZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0r CS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVS Q0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFu LWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlz dGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFu LWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJz aXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raW5mbzogaW5m by1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0 YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1leGVjLWFtOgotKwot K2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRm OiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vy c2l2ZQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFp bmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFu LWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xl YW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVh bi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsK LStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFs bC1hbToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVf VEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6ICQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwK LSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxp YnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5l cmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZp LWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5z dGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFt IGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1o dG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0 YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0 YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBp bnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0 b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFs bCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsu Tk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmls ZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQotLS0tIHNvY2kt My4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmls ZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxMSBA QAotKyMjIGJ1aWxkL3VuaXggc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0r Ci0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNs IC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAu X2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAotKwot K0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBp bnN0YWxsLnRjbCBcCi0rCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxk LW15c3FsLnRjbCBcCi0rCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKLSsJJChF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5p eC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUu aW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgkyMDA5LTA1LTA2IDAxOjMxOjQ3LjAwMDAwMDAw MCArMDIwMAotQEAgLTAsMCArMSwzODMgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBh dXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0r Ci0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIw MDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0 ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVS UE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAk KGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStw a2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9 IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9E QVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGlu c3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5T VEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJh bnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9T VF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoK LStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJp cGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3Vi ZGlyID0gYnVpbGQvdW5peAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQK LSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0 Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2lu c3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWls ZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0r RElTVF9TT1VSQ0VTID0KLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNF UykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRB UiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVB REVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AK LStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBA Qk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxF U1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJA Ci0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIg PSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1Rf UkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJ T05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NU X1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9O ID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAot K0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AK LStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBD UFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRf VkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hY Q1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AK LStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQ RElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0VDSE8gPSBARUNIT0AKLStFQ0hPX0MgPSBA RUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9 IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0Y3NyA9IEBGNzdACi0rRkZMQUdTID0gQEZG TEFHU0AKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lP TkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9 IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJ TlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0g PSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpT ID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMTl9T ID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5G T0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AK LStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElS U0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9IEBN WVNRTF9WRVJTSU9OQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRVhUID0gQE9CSkVYVEAKLStP UkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVf T0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAot K09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rUEFDS0FHRSA9IEBQ QUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5M SUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFL RSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAot K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBA YWNfY3RfQ1hYQAotK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACi0rYW1fX2luY2x1ZGUgPSBAYW1f X2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVv dGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1f X3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxp YXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9 IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0g QGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9v dGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2Vu X29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlw c19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLSto b3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhv c3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRv ckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2lu Zm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sg PSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNk aXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3Rh dGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5j bHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0g QHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25h bWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBz ZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNy Y2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdl dF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1 aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1f Q1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFU SUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9z dGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wg Ll9wYXJzZS1wYXJhbWV0ZXJzLnRjbAotK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWls ZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCi0rCXBhcnNlLXBhcmFtZXRlcnMu dGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCi0rCWJ1aWxkLXBvc3RncmVzcWwu dGNsIGV4ZWN1dGUudGNsIFwKLSsJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkp Ci0rCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmlu OiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQo YW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAot KwkJJiYgZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7 IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxk L3VuaXgvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01B S0UpIC0tZ251ICBidWlsZC91bml4L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01h a2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBc Ci0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJk aXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RB VFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFt X19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStj bGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rdGFnczogVEFHUwotK1RBR1M6 Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMp Ci0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0r CSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8 IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xe JCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0 X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBc Ci0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAot KwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmls ZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBk PS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0 aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdg OyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChz cmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGly KSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxl ICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYg JChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIp LyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2st YW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUKLStpbnN0YWxs ZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMt YW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxs LWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxs Y2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNU QUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMg XAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9H UkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5l cmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0 IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVT KQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0 IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJ LXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJp YwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtYW0KLSsKLStp bmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5z dGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3Rh bGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t YW0KLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KLSsK LStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21h aW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0r bWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJp YwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1hbQot KwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06 Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogYWxsIGFs bC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAot KwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBk dmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwt YW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwt ZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5z dGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1h biBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1h bSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxs ZGlycyBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBw ZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsj IFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwg dmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFz dCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvYXhfYm9vc3QubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9ib29z dC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9ib29zdC5tNAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv YXhfYm9vc3QubTQJMjAwOS0wNC0xNiAxOTozNzoyMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsNTM0IEBACi0rZG5sIEBzeW5vcHNpcyBBWF9CT09TVChbTUlOSU1VTS1WRVJTSU9OXSwgW0FD VElPTi1JRi1GT1VORF0sIFtBQ1RJT04tSUYtTk9ULUZPVU5EXSkKLStkbmwKLStkbmwgVGVzdCBm b3IgdGhlIEJvb3N0IEMrKyBsaWJyYXJpZXMgb2YgYSBwYXJ0aWN1bGFyIHZlcnNpb24gKG9yIG5l d2VyKQotK2RubAotK2RubCBJZiBubyBwYXRoIHRvIHRoZSBpbnN0YWxsZWQgYm9vc3QgbGlicmFy eSBpcyBnaXZlbiB0aGUgbWFjcm8KLStkbmwgc2VhcmNocyB1bmRlciAvdXNyLCAvdXNyL2xvY2Fs LCBhbmQgL29wdCwgYW5kIGV2YWx1YXRlcyB0aGUKLStkbmwgJEJPT1NUX1JPT1QgZW52aXJvbm1l bnQgdmFyaWFibGUuCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gY2FsbHM6Ci0rZG5sCi0rZG5sICAg QUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKSAvIEFDX1NVQlNUKEJPT1NUX0xJQlMpCi0rZG5sICAgQUNf U1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9USFJFQURfTElCKQotK2RubCAg IEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfU0VS SUFMSVpBVElPTl9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElC KQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKQotK2RubCAgIEFDX1NVQlNUKEJP T1NUX0RBVEVfVElNRV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKQotK2Ru bCAgIEFDX1NVQlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCKQotK2RubAotK2RubCBB bmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX0JPT1NUCi0rZG5sICAgSEFWRV9CT09TVF9GSUxF U1lTVEVNCi0rZG5sICAgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMKLStkbmwgICBIQVZFX0JP T1NUX1RIUkVBRAotK2RubCAgIEhBVkVfQk9PU1RfSU9TVFJFQU1TCi0rZG5sICAgSEFWRV9CT09T VF9TRVJJQUxJWkFUSU9OCi0rZG5sICAgSEFWRV9CT09TVF9TSUdOQUxTCi0rZG5sICAgSEFWRV9C T09TVF9EQVRFX1RJTUUKLStkbmwgICBIQVZFX0JPT1NUX1JFR0VYCi0rZG5sICAgSEFWRV9CT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLCi0rZG5sCi0rZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNr YWdlcwotK2RubCBAYXV0aG9yIFRob21hcyBQb3JzY2hiZXJnIDx0aG9tYXNAcmFuZHNwcmluZ2Vy LmRlPgotK2RubCBAdmVyc2lvbiAyMDA2LTAxLTAyCi0rZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3Np dmUKLSsKLStBQ19ERUZVTihbQVhfQk9PU1RdLAotK1sKLSsgICAgQUNfQVJHX1dJVEgoW2Jvb3N0 XSwKLSsgICAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1ib29zdD1ESVJdLAot KyAgICAgICAgICAgICAgICBbdXNlIGJvb3N0IChkZWZhdWx0IGlzIE5PKSAsIHNwZWNpZnkgdGhl IHJvb3QgZGlyZWN0b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRpb25hbCldKSwKLSsgICAgICAg ICAgICAgICAgWwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0 aGVuCi0rCQkgICAgICAgICAgICB3YW50X2Jvb3N0PSJubyIKLSsgICAgICAgICAgICAgICAgZWxp ZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgd2Fu dF9ib29zdD0ieWVzIgotKyAgICAgICAgICAgICAgICAgICAgYWNfYm9vc3RfcGF0aD0iIgotKyAg ICAgICAgICAgICAgICBlbHNlCi0rCQkJICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCi0rICAgICAg ICAgICAgCQlhY19ib29zdF9wYXRoPSIkd2l0aHZhbCIKLSsJCSAgICAgICAgZmkKLSsgICAgICAg ICAgICAJXSwKLSsgICAgICAgICAgICAgICAgW3dhbnRfYm9vc3Q9InllcyJdKQotKwotKyMgICAg QUNfQ0FOT05JQ0FMX0JVSUxECi0rQk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIKLStCT09TVExJ Ql9NRFdfVkVSU0lPTj0iMV8zM18xIgotKwotKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5 ZXMiOyB0aGVuCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sICwxLjIwLjAs JDEpCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbj1gZXhwciAkYm9vc3RfbGliX3Zl cnNpb25fcmVxIDogJ1woW1swLTldXSpcLltbMC05XV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNp b25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwp J2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNp b25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNpb25f cmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5b WzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsJCWlmIHRlc3QgIngkYm9vc3RfbGliX3ZlcnNpb25f cmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCi0rCQkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1 Yl9taW5vcj0iMCIKLSsgICAgCWZpCi0rCQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4cHIgJGJvb3N0 X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9saWJfdmVyc2lvbl9y ZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yYAotKwkJ QUNfTVNHX0NIRUNLSU5HKGZvciBib29zdGxpYiA+PSAkYm9vc3RfbGliX3ZlcnNpb25fcmVxKQot KwkJc3VjY2VlZGVkPW5vCi0rCi0rCQlkbmwgZmlyc3Qgd2UgY2hlY2sgdGhlIHN5c3RlbSBsb2Nh dGlvbiBmb3IgYm9vc3QgbGlicmFyaWVzCi0rCQlkbmwgdGhpcyBsb2NhdGlvbiBpcyBjaG9zZW4g aWYgYm9vc3QgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWQgCi0rCQlkbmwgd2l0aCB0aGUgLS1sYXlv dXQ9c3lzdGVtIG9wdGlvbgotKwkJZG5sIG9yIGlmIHlvdSBpbnN0YWxsIGJvb3N0IHdpdGggUlBN Ci0rCQlpZiB0ZXN0IC1kIC9saWI2NDsgdGhlbgotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0 IgotKwkJZWxzZQotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKLSsJCWZpCi0rCQlpZiB0ZXN0 ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElS VFlQRSIgPT0gImxpYjY0IjsgdGhlbgotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aC8k Qk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJ UlRZUEUiOyB0aGVuCi0rCSAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9w YXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQllbHNlCi0rICAgICAgICAgICAgICAgICAgICBC T09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQkJZmkKLSsJCQllbHNlCi0rCQkJ CUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJCWZpCi0rCQkJQk9PU1RfQ0ZM QUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCi0rCQllbHNlCi0rCQkJZm9yIGFjX2Jvb3N0 X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29scy9ib29zdCA7IGRvCi0r CQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IiAmJiB0ZXN0 IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCI7IHRoZW4KLSsJCQkJCUJPT1NU X0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQkJQk9P U1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgotKwkJCQkJYnJlYWs7Ci0r CQkJCWZpCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0 LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1w L2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IjsgdGhlbgotKwkJCQkJQk9P U1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCQlC T09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01E V19WRVJTSU9OIgotKwkJCQotKwkJCQkJZG5sIEhhY2sgZm9yIHdyb25nbHkgaW5zdGFsbGVkIEJv b3N0IGxpYnJhcmllcyAoQU1ENjQgbGlicmFyaWVzIGluc3RhbGxlZCBpbiBib29zdC9saWIgZGly ZWN0b3J5KQotKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgJiYgdGVz dCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgJiYgdGVzdCAhIC1kICIkYWNfYm9vc3RfcGF0 aF90bXAvbGliNjQiOyB0aGVuCi0rCQkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90 bXAvbGliIgotKwkJCQkJCWVjaG8gIkhhY2s6ICRCT09TVF9MSUJTIgotKwkJCQkJZmkKLSsJCQkJ CWJyZWFrOwotKwkJCQlmaQotKwkJCWRvbmUKLSsJCWZpCi0rCi0rCQlDUFBGTEFHU19TQVZFRD0i JENQUEZMQUdTIgotKwkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgotKwkJZXhw b3J0IENQUEZMQUdTCi0rCi0rCQlMREZMQUdTX1NBVkVEPSIkTERGTEFHUyIKLSsJCUxERkxBR1M9 IiRMREZMQUdTICRCT09TVF9MSUJTIgotKwkJZXhwb3J0IExERkxBR1MKLSsKLSsgICAgIAlBQ19U UllfQ09NUElMRSgKLSsgICAgICAgCVsKLStAJTpAaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+ Ci0rXSwKLSsgICAgICAgWwotKyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJ T04KLSsvLyBFdmVyeXRoaW5nIGlzIG9rYXkKLSsjZWxzZQotKyMgIGVycm9yIEJvb3N0IHZlcnNp b24gaXMgdG9vIG9sZAotKyNlbmRpZgotKwotKwkJXSwKLSsgICAgCVsKLSsgICAgICAgICBBQ19N U0dfUkVTVUxUKHllcykKLSsJCSBzdWNjZWVkZWQ9eWVzCi0rCQkgZm91bmRfc3lzdGVtPXllcwot KyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCi0rICAgICAgIF0sCi0rICAgICAgIFsK LSsgICAgICAgXSkKLSsKLSsJCWRubCBpZiB3ZSBmb3VuZCBubyBib29zdCB3aXRoIHN5c3RlbSBs YXlvdXQgd2Ugc2VhcmNoIGZvciBib29zdCBsaWJyYXJpZXMKLSsJCWRubCBidWlsdCBhbmQgaW5z dGFsbGVkIHdpdGhvdXQgdGhlIC0tbGF5b3V0PXN5c3RlbSBvcHRpb24gb3IgZm9yIGEgc3RhZ2Vk KG5vdCBpbnN0YWxsZWQpIHZlcnNpb24KLSsJCWlmIHRlc3QgIngkc3VjY2VlZGVkIiAhPSAieHll cyI7IHRoZW4KLSsJCQlfdmVyc2lvbj0wCi0rCQkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9 ICIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgv JEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0 ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJCQkJCWZvciBpIGluIGBscyAtZCAkYWNf Ym9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbwotKwkJCQkJCV92ZXJz aW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2lu Y2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKLSsJCQkJCQlWX0NIRUNLPWBleHByICRf dmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIx IiA7IHRoZW4KLSsJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAotKwkJCQkJCWZpCi0rCQkJ CQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCi0r CQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJ T05fVU5ERVJTQ09SRSIKLSsJCQkJCWRvbmUKLSsJCQkJZmkKLSsJCQllbHNlCi0rCQkJCWZvciBh Y19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IDsgZG8KLSsJCQkJCWlmIHRlc3Qg LWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJ CQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rl di9udWxsYDsgZG8KLSsJCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRhY19i b29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18vLi8n YAotKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJ CQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCQlfdmVyc2lvbj0k X3ZlcnNpb25fdG1wCi0rCQkJCQkJCQliZXN0X3BhdGg9JGFjX2Jvb3N0X3BhdGgKLSsJCQkJCQkJ ZmkKLSsJCQkJCQlkb25lCi0rCQkJCQlmaQotKwkJCQlkb25lCi0rCi0rCQkJCVZFUlNJT05fVU5E RVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAotKwkJCQlCT09TVF9DRkxB R1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUiCi0rCQkJ CUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsKLSsJICAgIAkJ aWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4KLSsJCQkJCWlmIHRlc3QgLWQgIiRC T09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7IHRoZW4KLSsJCQkJCQl2ZXJzaW9u X2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipcKSdgCi0rCQkJCQkJc3RhZ2VfdmVy c2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9vc3RfLy8nIHwgc2VkICdzL18vLi9n J2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4cHIgJHN0YWdlX3ZlcnNpb24gOiAn XChbWzAtOV1dKlwuW1swLTldXSpcKSdgCi0rCQkJCQkJVl9DSEVDSz1gZXhwciAkc3RhZ2VfdmVy c2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9 ICIxIiA7IHRoZW4KLSsJCQkJCQkJQUNfTVNHX05PVElDRShXZSB3aWxsIHVzZSBhIHN0YWdlZCBi b29zdCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QpCi0rCQkJCQkJCUJPT1NUX0NGTEFHUz0iLUkk Qk9PU1RfUk9PVCIKLSsJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9PU1RfUk9PVC9zdGFnZS8kQk9P U1RfTElCRElSVFlQRSIKLSsJCQkJCQlmaQotKwkJCQkJZmkKLSsJICAgIAkJZmkKLSsJCQlmaQot KwotKwkJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKLSsJCQlleHBvcnQgQ1BQ RkxBR1MKLSsJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJCQlleHBvcnQgTERG TEFHUwotKwotKyAgICAgCQlBQ19UUllfQ09NUElMRSgKLSsgICAgICAgCQlbCi0rQCU6QGluY2x1 ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotK10sCi0rICAgICAgIFsKLSsjaWYgQk9PU1RfVkVSU0lP TiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCi0rLy8gRXZlcnl0aGluZyBpcyBva2F5Ci0rI2Vsc2UK LSsjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKLSsjZW5kaWYKLSsKLSsJCV0sCi0r ICAgIAlbCi0rICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMgKCRfdmVyc2lvbikpCi0rCQkgc3Vj Y2VlZGVkPXllcwotKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCi0rICAgICAgIF0s Ci0rICAgICAgIFsKLSsgICAgICAgICBBQ19NU0dfUkVTVUxUKG5vICgkX3ZlcnNpb24pKQotKyAg ICAgICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCi0rICAgICAgIF0pCi0rCQlmaQotKwotKwkJ aWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0aGVuCi0rCQkJaWYgdGVzdCAiJF92ZXJz aW9uIiA9ICIwIiA7IHRoZW4KLSsJCQkJQUNfTVNHX0VSUk9SKFtbV2UgY291bGQgbm90IGRldGVj dCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJfdmVyc2lvbl9yZXFfc2hv cnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IChzdGls bCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JPT1QgaW4geW91ciBlbnZp cm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1ib29zdCBvcHRpb24uICBJ ZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0aGVuIGNoZWNrIHlvdXIg dmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5ocHA+Ll1dKQotKwkJCWVs c2UKLSsJCQkJQUNfTVNHX0VSUk9SKCdZb3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQg KHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9u X3Nob3J0ZW4nKQotKwkJCWZpCi0rCQllbHNlCi0rCQkJQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKQot KwkJCUFDX1NVQlNUKEJPT1NUX0xJQlMpCi0rCQkJQUNfREVGSU5FKEhBVkVfQk9PU1QsLFtkZWZp bmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsKLSsJCQlBQ19DQUNIRV9D SEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGVd LAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0sCi0rCQkJCQkJW0FDX0xBTkdfU0FW RQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5H X1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9wYXRoLmhwcD5dXSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0 OjpmaWxlc3lzdGVtOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBt eV9wYXRoKCAiZm9vL2Jhci9kYXRhLnR4dCIgKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAJCQkJICAgICAgIGF4X2N2X2Jv b3N0X2ZpbGVzeXN0ZW09eWVzLCBheF9jdl9ib29zdF9maWxlc3lzdGVtPW5vKQotKwkJIAkJICAg ICAgICAJCQlBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIiRheF9jdl9ib29z dF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0ZJ TEVTWVNURU0sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxFU1lTVEVNIGxpYnJhcnkgaXMgYXZh aWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfZmlsZXN5c3RlbQotKwkJCQlmb3IgYXhfbGliIGluICRC TiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIk Qk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0Mt cyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBk bwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW0JPT1NUX0ZJTEVTWVNURU1fTElCPSItbCRheF9saWIiIEFDX1NV QlNUKEJPT1NUX0ZJTEVTWVNURU1fTElCKSBsaW5rX2ZpbGVzeXN0ZW09InllcyIgYnJlYWtdLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX2ZpbGVzeXN0ZW09Im5vIl0p Ci0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsg dGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIg ISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBC b29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSwKLSsJCQkJCQkgICBh eF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMsCi0rCQkJCQkJICAgW0FDX0xBTkdfU0FWRQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJICAgICAgICAg ICAgICAgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJv b3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+XV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbW2Jvb3N0Ojpwcm9ncmFtX29wdGlvbnM6Om9wdGlvbnNfZGVzY3JpcHRpb24gZ2Vu ZXJpYygiR2VuZXJpYyBvcHRpb25zIik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gMDtdXSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9v c3RfcHJvZ3JhbV9vcHRpb25zPXllcywgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPW5vKQot KwkJCSAgICAgICAgICAgICAgIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAi JGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KLSsJCQkJQUNfREVGSU5F KEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6UFJPR1JB TV9PUFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfcHJvZ3JhbV9v cHRpb25zCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJEND LW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4g bGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJ T047IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQj0iLWwkYXhf bGliIiBBQ19TVUJTVChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBsaW5rX3Byb2dyYW1fb3B0 aW9ucz0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xp bmtfcHJvZ3JhbV9vcHRpb25zPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRs aW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9U SUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQlmaQotKwkJCWZpCi0r Ci0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlz IGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF90aHJlYWQsCi0rCQkJCQkJW0FDX0xB TkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBDWFhGTEFHU19TQVZFPSRDWFhG TEFHUwotKwotKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCi0r ICAJCQkJIENYWEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgotKwkJCSBlbGlmIHRlc3QgIngk YnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgotKwkJCQkgQ1hYRkxBR1M9Ii1tdGhyZWFkcyAk Q1hYRkxBR1MiCi0rCQkJIGVsc2UKLSsJCQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRDWFhGTEFHUyIK LSsJCQkgZmkKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGlu Y2x1ZGUgPGJvb3N0L3RocmVhZC90aHJlYWQuaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW1tib29zdDo6dGhyZWFkX2dyb3VwIHRocmRzOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAotKyAgICAgICAgICAgICAgICAg ICBheF9jdl9ib29zdF90aHJlYWQ9eWVzLCBheF9jdl9ib29zdF90aHJlYWQ9bm8pCi0rCQkJIENY WEZMQUdTPSRDWFhGTEFHU19TQVZFCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJ aWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAg ICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAJCQkJICBC T09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVsaWYgdGVzdCAi eCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJCQkgIEJPT1NUX0NGTEFHUz0iLW10 aHJlYWRzICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQotKwkJCQkgIEJPT1NUX0NGTEFHUz0i LXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQotKwotKwkJCQlBQ19TVUJTVChCT09T VF9DRkxBR1MpCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1RIUkVBRCwsW2RlZmluZSBpZiB0 aGUgQm9vc3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3Ro cmVhZAotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1t dC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxp YiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lP TiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX1RIUkVB RF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikgbGlua190aHJlYWQ9 InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3Ro cmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0g InhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAk YXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVy IHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4 X2N2X2Jvb3N0X2lvc3RyZWFtcywKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdf Q1BMVVNQTFVTCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBp bmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVhbS5ocHA+Ci0rCQkJCQkJCQkJ CQkJIEAlOkBpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+Ci0rCQkJCQkJ CQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3N0ZDo6c3Ry aW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOwotKwkJCQkJCQkJCSBuYW1lc3BhY2UgaW8gPSBi b29zdDo6aW9zdHJlYW1zOwotKwkJCQkJCQkJCSBpbzo6ZmlsdGVyaW5nX2lzdHJlYW0gIGluKGJv b3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7Ci0rCQkJCQkJCQkJIHJldHVybiAwOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAgICAgICAg ICAgICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzLCBheF9jdl9ib29zdF9pb3N0cmVhbXM9bm8p Ci0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29z dF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0lP U1RSRUFNUywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWls YWJsZV0pCi0rCQkJCUJOPWJvb3N0X2lvc3RyZWFtcwotKwkJCQlmb3IgYXhfbGliIGluICRCTiAk Qk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1t Z3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIo JGF4X2xpYiwgbWFpbiwgW0JPT1NUX0lPU1RSRUFNU19MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1Qo Qk9PU1RfSU9TVFJFQU1TX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25l Ci0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01T R19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJ ZmkKLSsKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlv biBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9zZXJpYWxpemF0 aW9uLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkg QUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGZzdHJlYW0+ Ci0rCQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hpdmUu aHBwPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBA JTpAaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZlLmhwcD4KLSsJCQkJCQkJCQkJ CQldXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbc3RkOjpvZnN0cmVh bSBvZnMoImZpbGVuYW1lIik7Ci0rCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hp dmUgb2Eob2ZzKTsKLSsJCQkJCQkJCQkgcmV0dXJuIDA7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3Nlcmlh bGl6YXRpb249eWVzLCBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPW5vKQotKwkJCSBBQ19MQU5H X1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlv biIgPSAieHllcyI7IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfU0VSSUFMSVpBVElP TiwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFi bGVdKQotKwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9uCi0rCQkJCWZvciBheF9saWIgaW4gJEJO ICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRC Ti0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1z ICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJO LW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRC Ti0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJ QigkYXhfbGliLCBtYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09T VF9TRVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9TRVJJQUxJWkFU SU9OX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCUJOPWJv b3N0X3dzZXJpYWxpemF0aW9uCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRD Qy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1n dy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1t Z3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NU TElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWlu LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElCKSBsaW5r X3RocmVhZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W2xpbmtfdGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3Ro cmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNL KHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJ CSAgIGF4X2N2X2Jvb3N0X3NpZ25hbHMsCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19M QU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tA JTpAaW5jbHVkZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAgICAgICAgICAgICBh eF9jdl9ib29zdF9zaWduYWxzPXllcywgYXhfY3ZfYm9vc3Rfc2lnbmFscz1ubykKLSsJCQkgQUNf TEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NpZ25hbHMi ID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NJR05BTFMsLFtkZWZp bmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49 Ym9vc3Rfc2lnbmFscwotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQg JEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMg IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9N RFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JP T1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKSBs aW5rX3RocmVhZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW2xpbmtfdGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5r X3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGlu ayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NI RUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGUsCi0r CQkJCQkJICAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJ CQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9H UkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3JlZ29yaWFuX3R5 cGVzLmhwcD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgyMDAyLEph biwxMCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAgICAgICAg ICAgICBheF9jdl9ib29zdF9kYXRlX3RpbWU9eWVzLCBheF9jdl9ib29zdF9kYXRlX3RpbWU9bm8p Ci0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29z dF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0RB VEVfVElNRSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWls YWJsZV0pCi0rCQkJCUJOPWJvb3N0X2RhdGVfdGltZQotKwkJCQlmb3IgYXhfbGliIGluICRCTiAk Qk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1t Z3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIo JGF4X2xpYiwgbWFpbiwgW0JPT1NUX0RBVEVfVElNRV9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1Qo Qk9PU1RfREFURV9USU1FX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25l Ci0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiPSJubyIgPSAieG5vIjsgdGhlbgotKwkJCQkJ QUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkK LSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBs aWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9yZWdleCwKLSsJCQkJ CQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJIEFDX0NPTVBJTEVf SUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9yZWdleC5ocHA+Ci0r CQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jv b3N0OjpyZWdleCByKCk7IHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3Zf Ym9vc3RfcmVnZXg9eWVzLCBheF9jdl9ib29zdF9yZWdleD1ubykKLSsJCQkgQUNfTEFOR19SRVNU T1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3JlZ2V4IiA9ICJ4eWVzIjsg dGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9SRUdFWCwsW2RlZmluZSBpZiB0aGUgQm9v c3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfcmVnZXgKLSsJ CQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4t JENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJEND IGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwot KwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9SRUdFWF9MSUI9Ii1s JGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVh a10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJd KQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhl bgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkK LSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0 OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9j dl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkg QUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFN KFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5dXSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rf c3VpdGU7Ci0rCQkJCQkgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RF U1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDtdXSksCi0rICAgICAg ICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcms9eWVzLCBheF9jdl9i b29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQld KQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPSAieHll cyI7IHRoZW4KLSsgICAgCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JL LCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6VW5pdF90ZXN0X2ZyYW1ld29yayBsaWJyYXJ5IGlzIGF2 YWlsYWJsZV0pCi0rCQkJQk49Ym9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yawotKyAgICAJCXNhdmVk X2xkZmxhZ3M9IiR7TERGTEFHU30iCi0rCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4t JENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAk Qk4tbWd3LW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0k Q0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsgICAgICAgICAgICAgICAgTERGTEFH Uz0iJHtMREZMQUdTfSAtbCRheF9saWIiCi0rICAgIAkJCUFDX0NBQ0hFX0NIRUNLKHRoZSBuYW1l IG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSwKLSsJICAgICAgCQkJCQkg ICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUK LSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsgICAgICAgICAgICAgICBBQ19MSU5LX0lGRUxTRShb QUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5d XSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBib29zdDo6dW5pdF90 ZXN0Ojp0ZXN0X3N1aXRlOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1 aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0 dXJuIDA7XV0pXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFk PSJ5ZXMiXSxbbGlua190aHJlYWQ9Im5vIl0pCi0rCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKyAg ICAgICAgICAgICAgIF0pCi0rICAgICAgICAgICAgICAgIExERkxBR1M9IiR7c2F2ZWRfbGRmbGFn c30iCi0rCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAg ICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQj0iLWwkYXhfbGli IgotKyAgICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIpCi0rCQkJCQlicmVhawotKwkJCQlmaQotKyAgICAgICAgICAgICAgZG9uZQotKwkJCSAg ICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCSAgIEFDX01TR19O T1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkK LSsJCWZpCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVEIgotKyAgICAgICAgTERG TEFHUz0iJExERkxBR1NfU0FWRUQiCi0rCWZpCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvYXhfbXlzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9teXNx bC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9teXNxbC5tNAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv YXhfbXlzcWwubTQJMjAwOS0wNC0xOCAxODoxNDoxNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsMTcyIEBACi0rZG5sICRJZDogYXhfbXlzcWwubTQsdiAxLjMgMjAwNy8wNi8yMyAwMTo1MToy MiBtbG9za290IEV4cCAkCi0rZG5sCi0rZG5sIEBzeW5vcHNpcyBBWF9MSUJfTVlTUUwoW01JTklN VU0tVkVSU0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZh aWxhYmlsaXR5IG9mIE15U1FMIGNsaWVudCBsaWJyYXJ5Ci0rZG5sIG9mIHBhcnRpY3VsYXIgdmVy c2lvbiBvciBuZXdlci4KLStkbmwgCi0rZG5sIEFYX0xJQl9NWVNRTCBtYWNybyB0YWtlcyBvbmx5 IG9uZSBhcmd1bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCi0rZG5sIHJl cXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRl c3QuCi0rZG5sCi0rZG5sIFRoZSAtLXdpdGgtbXlzcWwgb3B0aW9uIHRha2VzIG9uZSBvZiB0aHJl ZSBwb3NzaWJsZSB2YWx1ZXM6Ci0rZG5sIG5vICAgLSBkbyBub3QgY2hlY2sgZm9yIE15U1FMIGNs aWVudCBsaWJyYXJ5Ci0rZG5sIHllcyAgLSBkbyBjaGVjayBmb3IgTXlTUUwgbGlicmFyeSBpbiBz dGFuZGFyZCBsb2NhdGlvbnMKLStkbmwgICAgICAgIChteXNxbF9jb25maWcgc2hvdWxkIGJlIGlu IHRoZSBQQVRIKQotK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBteXNxbF9jb25maWcgdXRp bGl0eSwgdXNlIHRoaXMgb3B0aW9uCi0rZG5sICAgICAgICBpZiBteXNxbF9jb25maWcgY2FuJ3Qg YmUgZm91bmQgaW4gdGhlIFBBVEgKLStkbmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwK LStkbmwgICBBQ19TVUJTVChNWVNRTF9DRkxBR1MpCi0rZG5sICAgQUNfU1VCU1QoTVlTUUxfTERG TEFHUykKLStkbmwgICBBQ19TVUJTVChNWVNRTF9WRVJTSU9OKQotK2RubAotK2RubCBBbmQgc2V0 czoKLStkbmwKLStkbmwgICBIQVZFX01ZU1FMCi0rZG5sCi0rZG5sIEBjYXRlZ29yeSBJbnN0YWxs ZWRQYWNrYWdlcwotK2RubCBAY2F0ZWdvcnkgQ3h4Ci0rZG5sIEBhdXRob3IgTWF0ZXVzeiBMb3Nr b3QgPG1hdGV1c3pAbG9za290Lm5ldD4KLStkbmwgQHZlcnNpb24gJERhdGU6IDIwMDcvMDYvMjMg MDE6NTE6MjIgJAotK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCi0rZG5sCi0rZG5sICRJZDog YXhfbXlzcWwubTQsdiAxLjMgMjAwNy8wNi8yMyAwMTo1MToyMiBtbG9za290IEV4cCAkCi0rZG5s Ci0rQUNfREVGVU4oW0FYX0xJQl9NWVNRTF0sCi0rWwotKyAgICBBQ19BUkdfV0lUSChbbXlzcWxd LAotKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1teXNxbD1APDpAQVJHQDo+QF0sCi0r ICAgICAgICAgICAgW3VzZSBNeVNRTCBjbGllbnQgbGlicmFyeSBAPDpAZGVmYXVsdD15ZXNAOj5A LCBvcHRpb25hbGx5IHNwZWNpZnkgcGF0aCB0byBteXNxbF9jb25maWddCi0rICAgICAgICApLAot KyAgICAgICAgWwotKwlNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsL2luY2x1ZGUiCi0rICAg ICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9t eXNxbD0ibm8iCi0rICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0r ICAgICAgICAgICAgd2FudF9teXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAg IHdhbnRfbXlzcWw9InllcyIKLSsgICAgICAgICAgICBNWVNRTF9DT05GSUc9IiR3aXRodmFsIgot KyAgICAgICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbd2FudF9teXNxbD0ieWVzIgotKwlN WVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiXQotKyAgICApCi0r Ci0rICAgIE1ZU1FMX0NGTEFHUz0iIgotKyAgICBNWVNRTF9MREZMQUdTPSIiCi0rICAgIE1ZU1FM X1ZFUlNJT049IiIKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVjayBNeVNRTCBsaWJyYXJpZXMg KGxpYm15c3FsY2xpZW50KQotKyAgICBkbmwKLSsgICAgCi0rICAgIGlmIHRlc3QgIiR3YW50X215 c3FsIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0IC16ICIkTVlTUUxfQ09ORklH IiAtbyB0ZXN0OyB0aGVuCi0rICAgICAgICAgICAgQUNfUEFUSF9QUk9HKFtNWVNRTF9DT05GSUdd LCBbbXlzcWxfY29uZmlnXSwgW10pCi0rICAgICAgICBmaQotKwotKyAgICAgICAgZG5sIE1ZU1FM X0NPTkZJRyBpcyBwcm92aWRlZCBidXQgaXQgZG9lcyBub3QgcG9pbnQgdG8gZXhlY3V0YWJsZSBm aWxlCi0rICAgICAgICBpZiB0ZXN0ICEgLXggIiRNWVNRTF9DT05GSUciOyB0aGVuCi0rICAgICAg ICAgICAgQUNfTVNHX0VSUk9SKFskTVlTUUxfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlz IG5vdCBhbiBleGVjdHVhYmxlIGZpbGVdKQotKyAgICAgICAgICAgIE1ZU1FMX0NPTkZJRz0ibm8i Ci0rICAgICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAg IGlmIHRlc3QgIiRNWVNRTF9DT05GSUciICE9ICJubyI7IHRoZW4KLSsgICAgICAgICAgICAjCi0r ICAgICAgICAgICAgIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFkZXJzCi0rICAgICAgICAgICAg IwotKyAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0 b3J5XSkKLSsgICAgICAgICAgICBNWVNRTF9pbmNkaXI9Ci0rICAgICAgICAgICAgZm9yIG15c3Fs X2luY19kaXIgaW4gJE1ZU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRvCi0rICAgICAgICAg ICAgICAgIGlmIHRlc3QgLWQgIiRteXNxbF9pbmNfZGlyIiBcCi0rICAgICAgICAgICAgICAgICYm IHRlc3QgLWYgIiRteXNxbF9pbmNfZGlyL215c3FsL215c3FsLmgiCi0rICAgICAgICAgICAgICAg IHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIE1ZU1FMX2luY2Rpcj0kbXlzcWxfaW5jX2Rpcgot KyAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAgICAgICAgZmkKLSsgICAgICAg ICAgICBkb25lCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAteiAiJE1ZU1FMX2luY2RpciIKLSsg ICAgICAgICAgICB0aGVuCi0rICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihbRGlkbid0IGZp bmQgdGhlIE15U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxfaW5jX2NoZWNrJ10pCi0rICAgICAg ICAgICAgZmkKLSsKLSsgICAgICAgICAgICBjYXNlICIkTVlTUUxfaW5jZGlyIiBpbgotKyAgICAg ICAgICAgICAgICAvKiApIDs7Ci0rICAgICAgICAgICAgICAgICogKSAgQUNfTVNHX0VSUk9SKFtU aGUgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJz b2x1dGUgcGF0aC5dKSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAgICAgICBBQ19N U0dfUkVTVUxUKFskTVlTUUxfaW5jZGlyXSkKLSsKLSsgICAgICAgICAgICBpZiB0ZXN0ICIkTVlT UUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCi0rICAgICAgICAgICAgICBNWVNRTF9D RkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICBNWVNRTF9DRkxBR1M9 Ii1JJHtNWVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgTVlT UUxfTERGTEFHUz0iYCRNWVNRTF9DT05GSUcgLS1saWJzYCIKLSsKLSsgICAgICAgICAgICBNWVNR TF9WRVJTSU9OPWAkTVlTUUxfQ09ORklHIC0tdmVyc2lvbmAKLSsKLSsgICAgICAgICAgICBBQ19E RUZJTkUoW0hBVkVfTVlTUUxdLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiBNeVNRTCBsaWJyYXJpZXMg YXJlIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAgZm91bmRfbXlzcWw9 InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBmb3VuZF9teXNxbD0ibm8iCi0rICAg ICAgICBmaQotKyAgICBmaQotKwotKyAgICBkbmwKLSsgICAgZG5sIENoZWNrIGlmIHJlcXVpcmVk IHZlcnNpb24gb2YgTXlTUUwgaXMgYXZhaWxhYmxlCi0rICAgIGRubAotKyAgICAKLSsKLSsgICAg bXlzcWxfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKLSsKLSsgICAgaWYg dGVzdCAiJGZvdW5kX215c3FsIiA9ICJ5ZXMiIC1hIC1uICIkbXlzcWxfdmVyc2lvbl9yZXEiOyB0 aGVuCi0rCi0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIE15U1FMIHZlcnNpb24gaXMgPj0g JG15c3FsX3ZlcnNpb25fcmVxXSkKLSsKLSsgICAgICAgIGRubCBEZWNvbXBvc2UgcmVxdWlyZWQg dmVyc2lvbiBzdHJpbmcgb2YgTXlTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBu dW1iZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21ham9yPWBl eHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAotKyAgICAgICAgbXlzcWxf dmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5c KFtbMC05XV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJG15 c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsg ICAgICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCi0r ICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCi0rICAgICAgICBmaQotKwot KyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRteXNxbF92ZXJzaW9uX3Jl cV9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwrICRteXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKLSsKLSsgICAg ICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFsbGVkIE15U1FMCi0rICAg ICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCi0rICAgICAg ICBteXNxbF92ZXJzaW9uX21ham9yPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpc KSdgCi0rICAgICAgICBteXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRNWVNRTF9WRVJTSU9OIDog J1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz1g ZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdg Ci0rICAgICAgICBpZiB0ZXN0ICJ4JG15c3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVuCi0r ICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAg ICAgICBteXNxbF92ZXJzaW9uX251bWJlcj1gZXhwciAkbXlzcWxfdmVyc2lvbl9tYWpvciBcKiAx MDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92 ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXCsgJG15c3FsX3ZlcnNpb25fbWljcm9gCi0rCi0rICAgICAgICBteXNxbF92ZXJzaW9uX2No ZWNrPWBleHByICRteXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRteXNxbF92ZXJzaW9uX3JlcV9u dW1iZXJgCi0rICAgICAgICBpZiB0ZXN0ICIkbXlzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRo ZW4KLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKyAgICAgICAgZWxzZQotKyAg ICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0r ICAgIEFDX1NVQlNUKFtNWVNRTF9WRVJTSU9OXSkKLSsgICAgQUNfU1VCU1QoW01ZU1FMX0NGTEFH U10pCi0rICAgIEFDX1NVQlNUKFtNWVNRTF9MREZMQUdTXSkKLStdKQotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvYXhfb3JhY2xlX29jaS5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9v cmFjbGVfb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTIwMDktMDQtMTYgMTk6Mzc6 MjMuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI4NiBAQAotK2RubCAkSWQ6IGF4X29yYWNs ZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tvdCBFeHAgJAotK2RubAot K2RubCBAc3lub3BzaXMgQVhfTElCX09SQUNMRV9PQ0koW01JTklNVU0tVkVSU0lPTl0pCi0rZG5s Ci0rZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIE9yYWNs ZSBPQ0kgQVBJCi0rZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBvciBuZXdlci4KLStkbmwgVGhp cyBtYWNyb3MgY2hlY2tzIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMgYW5kIGxpYnJhcmllcyAKLStk bmwgYW5kIGRlZmluZXMgY29tcGlsYXRpb24gZmxhZ3MKLStkbmwgCi0rZG5sIE1hY3JvIHN1cHBv cnRzIGZvbGxvd2luZyBvcHRpb25zIGFuZCB0aGVpciB2YWx1ZXM6Ci0rZG5sIDEpIFNpbmdsZS1v cHRpb24gdXNhZ2U6Ci0rZG5sIC0td2l0aC1vcmFjbGUgLSBwYXRoIHRvIE9SQUNMRV9IT01FIGRp cmVjdG9yeQotK2RubCAyKSBUd28tb3B0aW9ucyB1c2FnZSAoYm90aCBvcHRpb25zIGFyZSByZXF1 aXJlZCk6Ci0rZG5sIC0td2l0aC1vcmFjbGUtaW5jbHVkZSAtIHBhdGggdG8gZGlyZWN0b3J5IHdp dGggT0NJIGhlYWRlcnMKLStkbmwgLS13aXRoLW9yYWNsZS1saWIgLSBwYXRoIHRvIGRpcmVjdG9y eSB3aXRoIE9DSSBsaWJyYXJpZXMgCi0rZG5sCi0rZG5sIE5PVEU6IFRoZXNlIG9wdGlvbnMgZGVz Y3JpYmVkIGFib3ZlIGRvZXMgbm90IHRha2UgeWVzfG5vIHZhbHVlcy4KLStkbmwgSWYgJ3llcycg dmFsdWUgaXMgcGFzc2VkLCB0aGVuIFdBUk5JTkcgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCwK LStkbmwgJ25vJyB2YWx1ZSwgYXMgd2VsbCBhcyB0aGUgLS13aXRob3V0LW9yYWNsZSogdmFyaWF0 aW9ucyB3aWxsIGNhdXNlCi0rZG5sIHRoZSBtYWNybyB3b24ndCBjaGVjayBlbnl0aGluZy4KLStk bmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwgICBBQ19TVUJTVChPUkFDTEVf T0NJX0NGTEFHUykKLStkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX0xERkxBR1MpCi0rZG5sICAg QUNfU1VCU1QoT1JBQ0xFX09DSV9WRVJTSU9OKQotK2RubAotK2RubCBBbmQgc2V0czoKLStkbmwK LStkbmwgICBIQVZFX09SQUNMRQotK2RubAotK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2Fn ZXMKLStkbmwgQGNhdGVnb3J5IEN4eAotK2RubCBAYXV0aG9yIE1hdGV1c3ogTG9za290IDxtYXRl dXN6QGxvc2tvdC5uZXQ+Ci0rZG5sIEB2ZXJzaW9uICREYXRlOiAyMDA4LzA0LzI4IDE5OjU4OjU0 ICQKLStkbmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQotK2RubAotK2RubCAkSWQ6IGF4X29yYWNs ZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tvdCBFeHAgJAotK2RubAot K0FDX0RFRlVOKFtBWF9MSUJfT1JBQ0xFX09DSV0sCi0rWwotKyAgICBBQ19SRVFVSVJFKFtBQ19D QU5PTklDQUxfSE9TVF0pCi0rICAgIEFDX0FSR19XSVRIKFtvcmFjbGVdLAotKyAgICAgICAgQUNf SEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGU9QDw6QERJUkA6PkBdLAotKyAgICAgICAgICAgIFt1 c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNsZSBob21lIGRpcmVjdG9y eV0KLSsgICAgICAgICksCi0rICAgICAgICBbCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIg PSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRo ZW4KLSsgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0rICAg ICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKLSsgICAg ICAgICAgICBmaSAKLSsgICAgICAgIGZpCi0rICAgICAgICBdLAotKyAgICAgICAgWwotKyAgICAg ICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9o b21lX2Rpcj0iJE9SQUNMRV9IT01FIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIG9yYWNs ZV9ob21lX2Rpcj0iIgotKyAgICAgICAgZmkgCi0rICAgICAgICBdCi0rICAgICkKLSsKLSsgICAg QUNfQVJHX1dJVEgoW29yYWNsZS1pbmNsdWRlXSwKLSsgICAgICAgIEFDX0hFTFBfU1RSSU5HKFst LXdpdGgtb3JhY2xlLWluY2x1ZGU9QDw6QERJUkA6PkBdLAotKyAgICAgICAgICAgIFt1c2UgT3Jh Y2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGhdCi0rICAgICAgICApLAotKyAgICAg ICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCJdLAotKyAgICAgICAgW29yYWNs ZV9ob21lX2luY2x1ZGVfZGlyPSIiXQotKyAgICApCi0rICAgIEFDX0FSR19XSVRIKFtvcmFjbGUt bGliXSwKLSsgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3JhY2xlLWxpYj1APDpARElS QDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQSSBsaWJyYXJpZXMgZnJvbSBn aXZlbiBwYXRoXQotKyAgICAgICAgKSwKLSsgICAgICAgIFtvcmFjbGVfaG9tZV9saWJfZGlyPSIk d2l0aHZhbCJdLAotKyAgICAgICAgW29yYWNsZV9ob21lX2xpYl9kaXI9IiJdCi0rICAgICkKLSsK LSsgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiIKLSsgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIiCi0r ICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iIgotKwotKyAgICBkbmwKLSsgICAgZG5sIENvbGxlY3Qg aW5jbHVkZS9saWIgcGF0aHMKLSsgICAgZG5sIAotKyAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0 aD0ibm8iCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCi0rCi0r ICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hv bWVfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGRubCBPUkFDTEVfSE9NRSBwYXRo IHByb3ZpZGVkCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAgZG5sIFByaW1hcnkgcGF0aCB0 byBPQ0kgaGVhZGVycywgYXZhaWxhYmxlIGluIE9yYWNsZT49MTAKLSsgICAgICAgICAgICBvcmFj bGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvcHVibGljIgotKyAgICAgICAg ICAgIAotKyAgICAgICAgICAgIGRubCBTZWNvbmRhcnkgcGF0aCB0byBPQ0kgaGVhZGVycyB1c2Vk IGJ5IG9sZGVyIHZlcnNpb25zCi0rICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyMj0iJG9y YWNsZV9ob21lX2Rpci9yZGJtcy9kZW1vIgotKwotKyAgICAgICAgICAgIGRubCBMaWJyYXJ5IHBh dGgKLSsgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9saWIiCi0r ICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInllcyI7IHRoZW4KLSsgICAg ICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsKLSsg ICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiIC1vIC1uICIkb3JhY2xl X2hvbWVfbGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9p bmNsdWRlX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAieWVz IjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2lu Y2x1ZGVfZGlyIgotKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIi ID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVz IgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGly IiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInllcyI7IHRoZW4KLSsgICAg ICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9kaXIiCi0rICAgICAgICBl bGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAg ICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAgICAgIGZpCi0rICAgIGZpCi0r Ci0rICAgIGlmIHRlc3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIgPSAieWVzIjsgdGhlbgot KyAgICAgICAgQUNfTVNHX1dBUk4oW09yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8g T3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAotK1BsZWFzZSwgbG9jYXRlIE9yYWNs ZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKLSstLXdpdGgtb3JhY2xlLWlu Y2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuXSkKLSsgICAgZmkKLSsKLSsgICAg ZG5sCi0rICAgIGRubCBDaGVjayBPQ0kgZmlsZXMKLSsgICAgZG5sCi0rICAgIGlmIHRlc3QgLW4g IiRvcmFjbGVfaW5jbHVkZV9kaXIiIC1hIC1uICIkb3JhY2xlX2xpYl9kaXIiOyB0aGVuCi0rCi0r ICAgICAgICBzYXZlZF9DUFBGTEFHUz0iJENQUEZMQUdTIgotKyAgICAgICAgQ1BQRkxBR1M9IiRD UFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIiCi0rCi0rICAgICAgICBkbmwgQWRkaXRpb25h bCBwYXRoIGZvciBvbGRlciBPcmFjbGUgaW5zdGFsbGF0aW9ucyAKLSsgICAgICAgIGlmIHRlc3Qg LW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAgICAgICAgICAgIENQUEZMQUdTPSIk Q1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKLSsgICAgICAgIGZpCi0rCi0rICAgICAg ICAjIEZpZ3VyZSBvdXQgaWYgd2UgYXJlIGJ1aWxkaW5nIG9uIHdpbjMyLgotKyAgICAgICAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICAgICAgICAgICptaW5ndzMyKiApIFdJTjMyPXllcyA7OwotKyAg ICAgICAgICAgICpjeWd3aW4qICkgIFdJTjMyPXllcyA7OwotKyAgICAgICAgICAgICopIFdJTjMy PW5vIDs7Ci0rICAgICAgICBlc2FjCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkV0lOMzIiID0gIm5v IgotKyAgICAgICAgdGhlbgotKyAgICAgICAgICAgIG9jaV9saWJzPSItbGNsbnRzaCAtbG5uejEx IgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIG9jaV9saWJzPSItbG9jaSIKLSsgICAgICAg IGZpCi0rCi0rICAgICAgICBzYXZlZF9MREZMQUdTPSIkTERGTEFHUyIKLSsgICAgICAgIHNhdmVk X0xJQlM9IiRMSUJTIgotKyAgICAgICAgb2NpX2xkZmxhZ3M9Ii1MJG9yYWNsZV9saWJfZGlyIgot KyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgJG9jaV9sZGZsYWdzIgotKyAgICAgICAgTElCUz0i JExJQlMgJG9jaV9saWJzIgotKwotKyAgICAgICAgZG5sCi0rICAgICAgICBkbmwgQ2hlY2sgT0NJ IGhlYWRlcnMKLSsgICAgICAgIGRubAotKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3Jh Y2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXJdKQotKwotKyAgICAgICAgQUNf TEFOR19QVVNIKEMrKykKLSsgICAgICAgIEFDX0NPTVBJTEVfSUZFTFNFKFsKLSsgICAgICAgICAg ICBBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8b2NpLmg+XV0sCi0rICAgICAgICAgICAg ICAgIFtbCi0rI2lmIGRlZmluZWQoT0NJX01BSk9SX1ZFUlNJT04pCi0rI2lmIE9DSV9NQUpPUl9W RVJTSU9OID09IDEwICYmIE9DSV9NSU5PUl9WRVJTSU9OID09IDIKLSsvLyBPcmFjbGUgMTAuMiBk ZXRlY3RlZAotKyNlbmRpZgotKyNlbGlmIGRlZmluZWQoT0NJX1Y3X1NZTlRBWCkKLSsvLyBPSywg b2xkZXIgT3JhY2xlIGRldGVjdGVkCi0rLy8gVE9ETyAtIG1sb3Nrb3Q6IGZpbmQgYmV0dGVyIG1h Y3JvIHRvIGNoZWNrIGZvciBvbGRlciB2ZXJzaW9uczsgCi0rI2Vsc2UKLSsjICBlcnJvciBPcmFj bGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAotKyNlbmRpZgotKyAgICAgICAgICAgICAgICBdXQot KyAgICAgICAgICAgICldLAotKyAgICAgICAgICAgIFsKLSsgICAgICAgICAgICBPUkFDTEVfT0NJ X0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgotKwotKyAgICAgICAgICAgIGlmIHRlc3Qg LW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAgICAgICAgICAgICAgICBPUkFDTEVf T0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCi0r ICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJ5ZXMiCi0r ICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgICAgICBdLAotKyAgICAg ICAgICAgIFsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJubyIKLSsgICAgICAgICAg ICBBQ19NU0dfUkVTVUxUKFtub3QgZm91bmRdKQotKyAgICAgICAgICAgIF0KLSsgICAgICAgICkK LSsgICAgICAgIEFDX0xBTkdfUE9QKFtDKytdKQotKyAgICAgICAgCi0rICAgICAgICBkbmwKLSsg ICAgICAgIGRubCBDaGVjayBPQ0kgbGlicmFyaWVzCi0rICAgICAgICBkbmwKLSsgICAgICAgIGlm IHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICAgICAg QUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJf ZGlyXSkKLSsKLSsgICAgICAgICAgICBBQ19MQU5HX1BVU0goQysrKQotKyAgICAgICAgICAgIEFD X0xJTktfSUZFTFNFKFsKLSsgICAgICAgICAgICAgICAgQUNfTEFOR19QUk9HUkFNKFtbQCU6QGlu Y2x1ZGUgPG9jaS5oPl1dLAotKyAgICAgICAgICAgICAgICAgICAgW1sKLStPQ0lFbnYqIGVudmgg PSAwOwotK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAsIDAp OwotK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9FTlYpOwotKyAgICAg ICAgICAgICAgICAgICAgXV0KLSsgICAgICAgICAgICAgICAgKV0sCi0rICAgICAgICAgICAgICAg IFsKLSsgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9j aV9saWJzIgotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCi0rICAgICAgICAg ICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0rICAgICAgICAgICAgICAgIF0sCi0rICAgICAg ICAgICAgICAgIFsKLSsgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0ibm8iCi0rICAgICAg ICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vdCBmb3VuZF0pCi0rICAgICAgICAgICAgICAgIF0K LSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgQUNfTEFOR19QT1AoW0MrK10pCi0rICAgICAg ICBmaQotKwotKyAgICAgICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBGTEFHUyIKLSsgICAgICAgIExE RkxBR1M9IiRzYXZlZF9MREZMQUdTIgotKyAgICAgICAgTElCUz0iJHNhdmVkX0xJQlMiCi0rICAg IGZpCi0rCi0rICAgIGRubAotKyAgICBkbmwgQ2hlY2sgcmVxdWlyZWQgdmVyc2lvbiBvZiBPcmFj bGUgaXMgYXZhaWxhYmxlCi0rICAgIGRubAotKyAgICBvcmFjbGVfdmVyc2lvbl9yZXE9aWZlbHNl KFskMV0sIFtdLCBbXSwgWyQxXSkKLSsKLSsgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQi ID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMiIC1hIFwKLSsgICAgICAgIC1uICIk b3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWFq b3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01BSk9SX1ZFUlNJT04uKicgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUFKT1JfVkVS U0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8g ICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWlub3I9YGNhdCAk b3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9SX1ZFUlNJT04uKicgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUlOT1JfVkVSU0lPTiAgKi8v JyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipc KlwvLy8nYAotKwotKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBPcmFjbGUgT0NJIHZlcnNp b24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcV0pCi0rCi0rICAgICAgICBpZiB0ZXN0IC1uICIk b3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1uICQib3JhY2xlX3ZlcnNpb25fbWlub3IiOyB0aGVu Ci0rCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIkb3JhY2xlX3ZlcnNpb25fbWFq b3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgotKwotKyAgICAgICAgICAgIGRubCBEZWNvbXBvc2Ug cmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgT3JhY2xlCi0rICAgICAgICAgICAgZG5sIGFuZCBj YWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgotKyAgICAgICAgICAgIG9yYWNsZV92 ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpc KSdgCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRvcmFjbGVf dmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rCi0rICAgICAgICAgICAg b3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxX21ham9y IFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwr ICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMGAKLSsKLSsgICAgICAgICAgICBkbmwg Q2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24gCi0rICAgICAgICAgICAgb3JhY2xl X3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21p bm9yIFwqIDEwMDBgCi0rCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIg JG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAot KyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4K LSsgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgICAgICAgICAg QUNfREVGSU5FKEhBVkVfT1JBQ0xFLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiB0aGUgT3JhY2xlIE9D SSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAg ICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihb T3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1aXJlZCB2ZXJzaW9uIGlz ICRvcmFjbGVfdmVyc2lvbl9yZXFdKQotKyAgICAgICAgICAgIGZpCi0rICAgICAgICBlbHNlCi0r ICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgotKyAgICAgICAgICAgIEFD X01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgICAgICBBQ19NU0dfV0FSTihbT3JhY2xlIHZlcnNp b24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGVdKQot KyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgQUNfU1VCU1QoW09SQUNMRV9PQ0lfVkVSU0lP Tl0pCi0rICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0NGTEFHU10pCi0rICAgIEFDX1NVQlNUKFtP UkFDTEVfT0NJX0xERkxBR1NdKQotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2F4X3Bvc3RncmVzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9wb3N0Z3Jl c3FsLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMjAwOS0wNC0xOCAxODoyMjozNi4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsMTcxIEBACi0rZG5sICRJZDogYXhfcG9zdGdyZXNxbC5tNCx2IDEuMyAy MDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3QgRXhwICQKLStkbmwKLStkbmwgQHN5bm9wc2lzIEFY X0xJQl9QT1NUR1JFU1FMKFtNSU5JTVVNLVZFUlNJT05dKQotK2RubAotK2RubCBUaGlzIG1hY3Jv IHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBQb3N0Z3JlU1FMICdsaWJwcScgbGli cmFyeQotK2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24gb3IgbmV3ZXIuCi0rZG5sIAotK2RubCBB WF9MSUJfUE9TVEdSRVNRTCBtYWNybyB0YWtlcyBvbmx5IG9uZSBhcmd1bWVudCB3aGljaCBpcyBv cHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCi0rZG5sIHJlcXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0 aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRlc3QuCi0rZG5sCi0rZG5sIFRoZSAtLXdp dGgtcG9zdGdyZXNxbCBvcHRpb24gdGFrZXMgb25lIG9mIHRocmVlIHBvc3NpYmxlIHZhbHVlczoK LStkbmwgbm8gICAtIGRvIG5vdCBjaGVjayBmb3IgUG9zdGdyZVNRTCBjbGllbnQgbGlicmFyeQot K2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9yIFBvc3RncmVTUUwgbGlicmFyeSBpbiBzdGFuZGFyZCBs b2NhdGlvbnMKLStkbmwgICAgICAgIChwZ19jb25maWcgc2hvdWxkIGJlIGluIHRoZSBQQVRIKQot K2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBwZ19jb25maWcgdXRpbGl0eSwgdXNlIHRoaXMg b3B0aW9uCi0rZG5sICAgICAgICBpZiBwZ19jb25maWcgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIFBB VEgKLStkbmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwgICBBQ19TVUJTVChQ T1NUR1JFU1FMX0NGTEFHUykKLStkbmwgICBBQ19TVUJTVChQT1NUR1JFU1FMX0xERkxBR1MpCi0r ZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9WRVJTSU9OKQotK2RubAotK2RubCBBbmQgc2V0czoK LStkbmwKLStkbmwgICBIQVZFX1BPU1RHUkVTUUwKLStkbmwKLStkbmwgQGNhdGVnb3J5IEluc3Rh bGxlZFBhY2thZ2VzCi0rZG5sIEBjYXRlZ29yeSBDeHgKLStkbmwgQGF1dGhvciBNYXRldXN6IExv c2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0PgotK2RubCBAdmVyc2lvbiAkRGF0ZTogMjAwNy8wNi8y MyAwMTo1MToyMiAkCi0rZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUKLStkbmwKLStkbmwgJElk OiBheF9wb3N0Z3Jlc3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6NTE6MjIgbWxvc2tvdCBFeHAg JAotK2RubAotK0FDX0RFRlVOKFtBWF9MSUJfUE9TVEdSRVNRTF0sCi0rWwotKyAgICBBQ19BUkdf V0lUSChbcG9zdGdyZXNxbF0sCi0rICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLXBvc3Rn cmVzcWw9QDw6QEFSR0A6PkBdLAotKyAgICAgICAgICAgIFt1c2UgUG9zdGdyZVNRTCBsaWJyYXJ5 IEA8OkBkZWZhdWx0PXllc0A6PkAsIG9wdGlvbmFsbHkgc3BlY2lmeSBwYXRoIHRvIHBnX2NvbmZp Z10KLSsgICAgICAgICksCi0rICAgICAgICBbCi0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIkd2l0 aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8i OyB0aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGVsaWYg dGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X3Bvc3RncmVz cWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9Inll cyIKLSsgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgotKyAgICAgICAgZmkKLSsgICAg ICAgIF0sCi0rICAgICAgICBbd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rCVBPU1RHUkVTUUxfaW5j X2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0Il0KLSsgICAgKQotKwotKyAgICBQ T1NUR1JFU1FMX0NGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX0xERkxBR1M9IiIKLSsgICAgUE9T VEdSRVNRTF9QT1NUR1JFU1FMPSIiCi0rCi0rICAgIGRubAotKyAgICBkbmwgQ2hlY2sgUG9zdGdy ZVNRTCBsaWJyYXJpZXMgKGxpYnBxKQotKyAgICBkbmwKLSsgICAgCi0rICAgIGlmIHRlc3QgIiR3 YW50X3Bvc3RncmVzcWwiID0gInllcyI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgLXogIiRQ R19DT05GSUciIC1vIHRlc3Q7IHRoZW4KLSsgICAgICAgICAgICBBQ19QQVRIX1BST0coW1BHX0NP TkZJR10sIFtwZ19jb25maWddLCBbXSkKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBpZiB0ZXN0 ICEgLXggIiRQR19DT05GSUciOyB0aGVuCi0rICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFskUEdf Q09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGVdKQot KyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNx bD0ibm8iCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0g Im5vIjsgdGhlbgotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICAjIExvb2sgZm9yIFBvc3Rn cmVzcWwgQyBBUEkgaGVhZGVycwotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICBBQ19NU0df Q0hFQ0tJTkcoW2ZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5XSkKLSsgICAgICAgICAg ICBQT1NUR1JFU1FMX2luY2Rpcj0KLSsgICAgICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNfZGly IGluICRQT1NUR1JFU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRvCi0rICAgICAgICAgICAg ICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKLSsgICAgICAgICAgICAgICAg JiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQuaCIKLSsgICAgICAg ICAgICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9JHBv c3RncmVzcWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAg ICAgICAgZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAteiAi JFBPU1RHUkVTUUxfaW5jZGlyIgotKyAgICAgICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAg QUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpciBpbiAn JFBPU1RHUkVTUUxfaW5jX2NoZWNrJ10pCi0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAg ICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCi0rICAgICAgICAgICAgICAgIC8qICkgOzsK LSsgICAgICAgICAgICAgICAgKiApICBBQ19NU0dfRVJST1IoW1RoZSBQb3N0Z3Jlc3FsIGluY2x1 ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0 aC5dKSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxU KFskUE9TVEdSRVNRTF9pbmNkaXJdKQotKwotKyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JF U1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgotKyAgICAgICAgICAgICAgUE9TVEdS RVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICBQT1NUR1JF U1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKLSsgICAgICAgICAgICBmaQotKwot KyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAg LWxwcSIKLSsKLSsgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12 ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAotKwotKyAgICAgICAgICAgIEFDX0RF RklORShbSEFWRV9QT1NUR1JFU1FMXSwgWzFdLCBbRGVmaW5lIHRvIDEgaWYgUG9zdGdyZVNRTCBs aWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAgZm91 bmRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIGZvdW5kX3Bv c3RncmVzcWw9Im5vIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgZG5sCi0rICAgIGRu bCBDaGVjayBpZiByZXF1aXJlZCB2ZXJzaW9uIG9mIFBvc3RncmVTUUwgaXMgYXZhaWxhYmxlCi0r ICAgIGRubAotKyAgICAKLSsKLSsgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcT1pZmVsc2UoWyQx XSwgW10sIFtdLCBbJDFdKQotKwotKyAgICBpZiB0ZXN0ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAi eWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCi0rCi0rICAgICAgICBB Q19NU0dfQ0hFQ0tJTkcoW2lmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92 ZXJzaW9uX3JlcV0pCi0rCi0rICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVpcmVkIHZlcnNpb24g c3RyaW5nIG9mIFBvc3RncmVTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1i ZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWFqb3I9 YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwpJ2AKLSsgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9y ZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5b WzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92 ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAgICAgICBwb3N0Z3Jlc3FsX3Zl cnNpb25fcmVxX21pY3JvPSIwIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIHBvc3RncmVzcWxf dmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yIFwq IDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3Rn cmVzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKLSsKLSsgICAg ICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFsbGVkIFBvc3RncmVTUUwK LSsgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KLSsg ICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9O IDogJ1woW1swLTldXSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4 cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDog J1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngk cG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAgICAgICAgIHBvc3Rn cmVzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBwb3N0Z3Jl c3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3IgXCogMTAw MDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNx bF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKLSsKLSsgICAgICAgIHBvc3RncmVz cWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgIGlmIHRlc3QgIiRwb3N0Z3Jl c3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAgICAgICAgQUNfTVNHX1JFU1VM VChbeWVzXSkKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10p Ci0rICAgICAgICBmaQotKyAgICBmaQotKwotKyAgICBBQ19TVUJTVChbUE9TVEdSRVNRTF9WRVJT SU9OXSkKLSsgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfQ0ZMQUdTXSkKLSsgICAgQUNfU1VCU1Qo W1BPU1RHUkVTUUxfTERGTEFHU10pCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvY29uZmlnLmd1ZXNzIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLmd1ZXNz Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5ndWVzcwkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29u ZmlnLmd1ZXNzCTIwMDktMDUtMDYgMDE6MzE6NTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDE1MjYgQEAKLSsjISAvYmluL3NoCi0rIyBBdHRlbXB0IHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5 c3RlbSBuYW1lLgotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5 OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0rIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgKLSsjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rCi0rdGltZXN0YW1wPScyMDA4LTAxLTA4JwotKwotKyMgVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKLSsjIHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy IG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0rIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotKyMgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMg Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3Rv biwgTUEKLSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsjCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9u IHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBkaXN0cmlidXRl IHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSsjIGNvbmZp Z3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0 IHVuZGVyCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0 aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rCi0rCi0rIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkg UGVyIEJvdGhuZXIgPHBlckBib3RobmVyLmNvbT4uCi0rIyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHRv IDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBhIGNvbnRleHQKLSsjIGRpZmYgYW5k IGEgcHJvcGVybHkgZm9ybWF0dGVkIENoYW5nZUxvZyBlbnRyeS4KLSsjCi0rIyBUaGlzIHNjcmlw dCBhdHRlbXB0cyB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZSBzaW1pbGFyIHRvCi0r IyBjb25maWcuc3ViLiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50cyB0aGUgc3lzdGVtIG5hbWUg b24gc3Rkb3V0LCBhbmQKLSsjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0 aCAxLgotKyMKLSsjIFRoZSBwbGFuIGlzIHRoYXQgdGhpcyBjYW4gYmUgY2FsbGVkIGJ5IGNvbmZp Z3VyZSBzY3JpcHRzIGlmIHlvdQotKyMgZG9uJ3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBidWlsZCBz eXN0ZW0gdHlwZS4KLSsKLSttZT1gZWNobyAiJDAiIHwgc2VkIC1lICdzLC4qLywsJ2AKLSsKLSt1 c2FnZT0iXAotK1VzYWdlOiAkMCBbT1BUSU9OXQotKwotK091dHB1dCB0aGUgY29uZmlndXJhdGlv biBuYW1lIG9mIHRoZSBzeXN0ZW0gXGAkbWUnIGlzIHJ1biBvbi4KLSsKLStPcGVyYXRpb24gbW9k ZXM6Ci0rICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsg IC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVu IGV4aXQKLSsgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBl eGl0Ci0rCi0rUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5v cmc+LiIKLSsKLSt2ZXJzaW9uPSJcCi0rR05VIGNvbmZpZy5ndWVzcyAoJHRpbWVzdGFtcCkKLSsK LStPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuCi0rQ29weXJpZ2h0IChDKSAxOTky LCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAot KzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rCi0rVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJj ZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSt3YXJyYW50eTsgbm90IGV2 ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4iCi0rCi0raGVscD0iCi0rVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24u IgotKwotKyMgUGFyc2UgY29tbWFuZCBsaW5lCi0rd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0r ICBjYXNlICQxIGluCi0rICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCi0rICAgICAg IGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OwotKyAgICAtLXZlcnNpb24gfCAtdiApCi0rICAg ICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKLSsgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkK LSsgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OwotKyAgICAtLSApICAgICAjIFN0b3Agb3B0 aW9uIHByb2Nlc3NpbmcKLSsgICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0rICAgIC0gKQkjIFVzZSBz dGRpbiBhcyBpbnB1dC4KLSsgICAgICAgYnJlYWsgOzsKLSsgICAgLSogKQotKyAgICAgICBlY2hv ICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiID4mMgotKyAgICAgICBleGl0IDEgOzsKLSsg ICAgKiApCi0rICAgICAgIGJyZWFrIDs7Ci0rICBlc2FjCi0rZG9uZQotKwotK2lmIHRlc3QgJCMg IT0gMDsgdGhlbgotKyAgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCi0r ICBleGl0IDEKLStmaQotKwotK3RyYXAgJ2V4aXQgMScgMSAyIDE1Ci0rCi0rIyBDQ19GT1JfQlVJ TEQgLS0gY29tcGlsZXIgdXNlZCBieSB0aGlzIHNjcmlwdC4gTm90ZSB0aGF0IHRoZSB1c2Ugb2Yg YQotKyMgY29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rpb24gaXMgZGlzY291cmFnZWQg YXMgaXQgcmVxdWlyZXMKLSsjIHRlbXBvcmFyeSBmaWxlcyB0byBiZSBjcmVhdGVkIGFuZCwgYXMg eW91IGNhbiBzZWUgYmVsb3csIGl0IGlzIGEKLSsjIGhlYWRhY2hlIHRvIGRlYWwgd2l0aCBpbiBh IHBvcnRhYmxlIGZhc2hpb24uCi0rCi0rIyBIaXN0b3JpY2FsbHksIGBDQ19GT1JfQlVJTEQnIHVz ZWQgdG8gYmUgbmFtZWQgYEhPU1RfQ0MnLiBXZSBzdGlsbAotKyMgdXNlIGBIT1NUX0NDJyBpZiBk ZWZpbmVkLCBidXQgaXQgaXMgZGVwcmVjYXRlZC4KLSsKLSsjIFBvcnRhYmxlIHRtcCBkaXJlY3Rv cnkgY3JlYXRpb24gaW5zcGlyZWQgYnkgdGhlIEF1dG9jb25mIHRlYW0uCi0rCi0rc2V0X2NjX2Zv cl9idWlsZD0nCi0rdHJhcCAiZXhpdGNvZGU9XCQ/OyAocm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYv bnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGwpICYmIGV4aXQgXCRleGl0Y29kZSIgMCA7Ci0r dHJhcCAicm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251 bGw7IGV4aXQgMSIgMSAyIDEzIDE1IDsKLSs6ICR7VE1QRElSPS90bXB9IDsKLSsgeyB0bXA9YCh1 bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIkVE1QRElSL2NnWFhYWFhYIikgMj4vZGV2L251bGxgICYm IHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiIDsgfSB8fAotKyB7IHRlc3QgLW4gIiRS QU5ET00iICYmIHRtcD0kVE1QRElSL2NnJCQtJFJBTkRPTSAmJiAodW1hc2sgMDc3ICYmIG1rZGly ICR0bXApIDsgfSB8fAotKyB7IHRtcD0kVE1QRElSL2NnLSQkICYmICh1bWFzayAwNzcgJiYgbWtk aXIgJHRtcCkgJiYgZWNobyAiV2FybmluZzogY3JlYXRpbmcgaW5zZWN1cmUgdGVtcCBkaXJlY3Rv cnkiID4mMiA7IH0gfHwKLSsgeyBlY2hvICIkbWU6IGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3Jhcnkg ZGlyZWN0b3J5IGluICRUTVBESVIiID4mMiA7IGV4aXQgMSA7IH0gOwotK2R1bW15PSR0bXAvZHVt bXkgOwotK3RtcGZpbGVzPSIkZHVtbXkuYyAkZHVtbXkubyAkZHVtbXkucmVsICRkdW1teSIgOwot K2Nhc2UgJENDX0ZPUl9CVUlMRCwkSE9TVF9DQywkQ0MgaW4KLSsgLCwpICAgIGVjaG8gImludCB4 OyIgPiAkZHVtbXkuYyA7Ci0rCWZvciBjIGluIGNjIGdjYyBjODkgYzk5IDsgZG8KLSsJICBpZiAo JGMgLWMgLW8gJGR1bW15Lm8gJGR1bW15LmMpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLSsJICAg ICBDQ19GT1JfQlVJTEQ9IiRjIjsgYnJlYWsgOwotKwkgIGZpIDsKLSsJZG9uZSA7Ci0rCWlmIHRl c3QgeCIkQ0NfRk9SX0JVSUxEIiA9IHggOyB0aGVuCi0rCSAgQ0NfRk9SX0JVSUxEPW5vX2NvbXBp bGVyX2ZvdW5kIDsKLSsJZmkKLSsJOzsKLSsgLCwqKSAgIENDX0ZPUl9CVUlMRD0kQ0MgOzsKLSsg LCosKikgIENDX0ZPUl9CVUlMRD0kSE9TVF9DQyA7OwotK2VzYWMgOyBzZXRfY2NfZm9yX2J1aWxk PSA7JwotKwotKyMgVGhpcyBpcyBuZWVkZWQgdG8gZmluZCB1bmFtZSBvbiBhIFB5cmFtaWQgT1N4 IHdoZW4gcnVuIGluIHRoZSBCU0QgdW5pdmVyc2UuCi0rIyAoZ2hhemlAbm9jLnJ1dGdlcnMuZWR1 IDE5OTQtMDgtMjQpCi0raWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4m MSA7IHRoZW4KLSsJUEFUSD0kUEFUSDovLmF0dGJpbiA7IGV4cG9ydCBQQVRICi0rZmkKLSsKLStV TkFNRV9NQUNISU5FPWAodW5hbWUgLW0pIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9NQUNISU5FPXVu a25vd24KLStVTkFNRV9SRUxFQVNFPWAodW5hbWUgLXIpIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9S RUxFQVNFPXVua25vd24KLStVTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8 fCBVTkFNRV9TWVNURU09dW5rbm93bgotK1VOQU1FX1ZFUlNJT049YCh1bmFtZSAtdikgMj4vZGV2 L251bGxgIHx8IFVOQU1FX1ZFUlNJT049dW5rbm93bgotKwotKyMgTm90ZTogb3JkZXIgaXMgc2ln bmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KLSsKLStjYXNl ICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5B TUVfVkVSU0lPTn0iIGluCi0rICAgICo6TmV0QlNEOio6KikKLSsJIyBOZXRCU0QgKG5ic2QpIHRh cmdldHMgc2hvdWxkICh3aGVyZSBhcHBsaWNhYmxlKSBtYXRjaCBvbmUgb3IKLSsJIyBtb3JlIG9m IHRoZSB0dXBwbGVzOiAqLSotbmV0YnNkZWxmKiwgKi0qLW5ldGJzZGFvdXQqLAotKwkjICotKi1u ZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhhdCByZWNlbnRseQot KwkjIHN3aXRjaGVkIHRvIEVMRiwgKi0qLW5ldGJzZCogd291bGQgc2VsZWN0IHRoZSBvbGQKLSsJ IyBvYmplY3QgZmlsZSBmb3JtYXQuICBUaGlzIHByb3ZpZGVzIGJvdGggZm9yd2FyZAotKwkjIGNv bXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9yIHNlbGVjdGluZyB0aGUK LSsJIyBvYmplY3QgZmlsZSBmb3JtYXQuCi0rCSMKLSsJIyBOb3RlOiBOZXRCU0QgZG9lc24ndCBw YXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCi0rCSMgcG9ydGlvbiBvZiB0aGUgbmFt ZS4gIFdlIGFsd2F5cyBzZXQgaXQgdG8gInVua25vd24iLgotKwlzeXNjdGw9InN5c2N0bCAtbiBo dy5tYWNoaW5lX2FyY2giCi0rCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4v ZGV2L251bGwgfHwgXAotKwkgICAgL3Vzci9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgZWNo byB1bmtub3duKWAKLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgotKwkgICAgYXJt ZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OwotKwkgICAgYXJtKikgbWFjaGluZT1hcm0tdW5r bm93biA7OwotKwkgICAgc2gzZWwpIG1hY2hpbmU9c2hsLXVua25vd24gOzsKLSsJICAgIHNoM2Vi KSBtYWNoaW5lPXNoLXVua25vd24gOzsKLSsJICAgIHNoNWVsKSBtYWNoaW5lPXNoNWxlLXVua25v d24gOzsKLSsJICAgICopIG1hY2hpbmU9JHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24gOzsK LSsJZXNhYwotKwkjIFRoZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1ZGluZyBvYmplY3QgZm9ybWF0 LCBpZiBpdCBoYXMgc3dpdGNoZWQKLSsJIyB0byBFTEYgcmVjZW50bHksIG9yIHdpbGwgaW4gdGhl IGZ1dHVyZS4KLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgotKwkgICAgYXJtKnxp Mzg2fG02OGt8bnMzMmt8c2gzKnxzcGFyY3x2YXgpCi0rCQlldmFsICRzZXRfY2NfZm9yX2J1aWxk Ci0rCQlpZiBlY2hvIF9fRUxGX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAot KwkJCXwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGwKLSsJCXRoZW4KLSsJCSAgICAjIE9uY2UgYWxs IHV0aWxpdGllcyBjYW4gYmUgRUNPRkYgKG5ldGJzZGVjb2ZmKSBvciBhLm91dCAobmV0YnNkYW91 dCkuCi0rCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/Ci0rCQkgICAgb3M9 bmV0YnNkCi0rCQllbHNlCi0rCQkgICAgb3M9bmV0YnNkZWxmCi0rCQlmaQotKwkJOzsKLSsJICAg ICopCi0rCSAgICAgICAgb3M9bmV0YnNkCi0rCQk7OwotKwllc2FjCi0rCSMgVGhlIE9TIHJlbGVh c2UKLSsJIyBEZWJpYW4gR05VL05ldEJTRCBtYWNoaW5lcyBoYXZlIGEgZGlmZmVyZW50IHVzZXJs YW5kLCBhbmQKLSsJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4gSG93ZXZlciwgdGhl eSBkbyBub3QgbmVlZAotKwkjIGtlcm5lbCB2ZXJzaW9uIGluZm9ybWF0aW9uLCBzbyBpdCBjYW4g YmUgcmVwbGFjZWQgd2l0aCBhCi0rCSMgc3VpdGFibGUgdGFnLCBpbiB0aGUgc3R5bGUgb2YgbGlu dXgtZ251LgotKwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgotKwkgICAgRGViaWFuKikKLSsJ CXJlbGVhc2U9Jy1nbnUnCi0rCQk7OwotKwkgICAgKikKLSsJCXJlbGVhc2U9YGVjaG8gJHtVTkFN RV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy1fXS4qL1wuLydgCi0rCQk7OwotKwllc2FjCi0rCSMgU2lu Y2UgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNOgotKwkjIGNv bnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9ybToKLSsJIyBDUFVf VFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTSBpcyB1c2VkLgotKwllY2hvICIke21h Y2hpbmV9LSR7b3N9JHtyZWxlYXNlfSIKLSsJZXhpdCA7OwotKyAgICAqOk9wZW5CU0Q6KjoqKQot KwlVTkFNRV9NQUNISU5FX0FSQ0g9YGFyY2ggfCBzZWQgJ3MvT3BlbkJTRC4vLydgCi0rCWVjaG8g JHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLSsJ ZXhpdCA7OwotKyAgICAqOmVra29CU0Q6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5r bm93bi1la2tvYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6U29saWRCU0Q6 KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zb2xpZGJzZCR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICBtYWNwcGM6TWlyQlNEOio6KikKLSsJZWNobyBwb3dlcnBj LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6TWlyQlNE Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxF QVNFfQotKwlleGl0IDs7Ci0rICAgIGFscGhhOk9TRjE6KjoqKQotKwljYXNlICRVTkFNRV9SRUxF QVNFIGluCi0rCSo0LjApCi0rCQlVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBh d2sgJ3twcmludCAkM30nYAotKwkJOzsKLSsJKjUuKikKLSsJICAgICAgICBVTkFNRV9SRUxFQVNF PWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAotKwkJOzsKLSsJZXNhYwot KwkjIEFjY29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZvIGhhcyBiZWVuIGF2YWls YWJsZSBvbgotKwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHByb2R1Y2VkIHNpbmNlIDE5OTUu ICBJIGhvcGUgdGhhdAotKwkjIGNvdmVycyBtb3N0IHN5c3RlbXMgcnVubmluZyB0b2RheS4gIFRo aXMgY29kZSBwaXBlcyB0aGUgQ1BVCi0rCSMgdHlwZXMgdGhyb3VnaCBoZWFkIC1uIDEsIHNvIHdl IG9ubHkgZGV0ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgotKwlBTFBIQV9DUFVfVFlQRT1gL3Vzci9z YmluL3BzcmluZm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFscGhhIFwoLipcKSBwcm9jZXNz b3IuKiQvXDEvcCcgfCBoZWFkIC1uIDFgCi0rCWNhc2UgIiRBTFBIQV9DUFVfVFlQRSIgaW4KLSsJ ICAgICJFVjQgKDIxMDY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKLSsJICAgICJF VjQuNSAoMjEwNjQpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OwotKwkgICAgIkxDQTQg KDIxMDY2LzIxMDY4KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKLSsJICAgICJFVjUg KDIxMTY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIgOzsKLSsJICAgICJFVjUuNiAo MjExNjRBKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYiIDs7Ci0rCSAgICAiRVY1LjYg KDIxMTY0UEMpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTYiIDs7Ci0rCSAgICAiRVY1 LjcgKDIxMTY0UEMpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTciIDs7Ci0rCSAgICAi RVY2ICgyMTI2NCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjYiIDs7Ci0rCSAgICAiRVY2 LjcgKDIxMjY0QSkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY3IiA7OwotKwkgICAgIkVW Ni44Q0IgKDIxMjY0QykiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OwotKwkgICAg IkVWNi44QUwgKDIxMjY0QikiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OwotKwkg ICAgIkVWNi44Q1ggKDIxMjY0RCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7Owot KwkgICAgIkVWNi45QSAoMjEyNjQvRVY2OUEpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2 OSIgOzsKLSsJICAgICJFVjcgKDIxMzY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NyIg OzsKLSsJICAgICJFVjcuOSAoMjEzNjRBKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2Nzki IDs7Ci0rCWVzYWMKLSsJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBhdGNoZWQgdmVyc2lvbi4KLSsJ IyBBIFZuLm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIHZlcnNpb24uCi0rCSMgQSBUbi5uIHZlcnNp b24gaXMgYSByZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCi0rCSMgQSBYbi5uIHZlcnNpb24g aXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgotKwkjIDEuMiB1c2VzICIx LjIiIGZvciB1bmFtZSAtci4KLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1vc2ZgZWNobyAk e1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAnQUJDREVGR0hJSktM TU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCi0rCWV4aXQgOzsK LSsgICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKLSsJIyBIb3cgZG8gd2Uga25vdyBpdCdzIElu dGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPwotKwkjIFNob3Vs ZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGlu c3RlYWQKLSsJIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/Ci0rCWVjaG8gYWxwaGEtcGMt aW50ZXJpeAotKwlleGl0IDs7Ci0rICAgIDIxMDY0OldpbmRvd3NfTlQ6NTA6MykKLSsJZWNobyBh bHBoYS1kZWMtd2lubnQzLjUKLSsJZXhpdCA7OwotKyAgICBBbWlnYSo6VU5JWF9TeXN0ZW1fVjo0 LjA6KikKLSsJZWNobyBtNjhrLXVua25vd24tc3lzdjQKLSsJZXhpdCA7OwotKyAgICAqOltBYV1t aWdhW09vXVtTc106KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hbWlnYW9z Ci0rCWV4aXQgOzsKLSsgICAgKjpbTW1db3JwaFtPb11bU3NdOio6KikKLSsJZWNobyAke1VOQU1F X01BQ0hJTkV9LXVua25vd24tbW9ycGhvcwotKwlleGl0IDs7Ci0rICAgICo6T1MvMzkwOio6KikK LSsJZWNobyBpMzcwLWlibS1vcGVuZWRpdGlvbgotKwlleGl0IDs7Ci0rICAgICo6ei9WTToqOiop Ci0rCWVjaG8gczM5MC1pYm0tenZtb2UKLSsJZXhpdCA7OwotKyAgICAqOk9TNDAwOio6KikKLSsg ICAgICAgIGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKLSsJZXhpdCA7OwotKyAgICBhcm06UklTQyo6 MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCi0rCWVjaG8gYXJtLWFjb3JuLXJpc2Np eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBhcm06cmlzY29zOio6Knxhcm06UklT Q09TOio6KikKLSsJZWNobyBhcm0tdW5rbm93bi1yaXNjb3MKLSsJZXhpdCA7OwotKyAgICBTUjI/ MDE6SEktVVgvTVBQOio6KiB8IFNSODAwMDpISS1VWC9NUFA6KjoqKQotKwllY2hvIGhwcGExLjEt aGl0YWNoaS1oaXV4bXBwCi0rCWV4aXQgOzsKLSsgICAgUHlyYW1pZCo6T1N4KjoqOiogfCBNSVMq Ok9TeCo6KjoqIHwgTUlTKjpTTVBfREMtT1N4KjoqOiopCi0rCSMgYWtlZUB3cGRpczAzLndwYWZi LmFmLm1pbCAoRWFybGUgRi4gQWtlKSBjb250cmlidXRlZCBNSVMgYW5kIE5JTEUuCi0rCWlmIHRl c3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KLSsJCWVjaG8g cHlyYW1pZC1weXJhbWlkLXN5c3YzCi0rCWVsc2UKLSsJCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJz ZAotKwlmaQotKwlleGl0IDs7Ci0rICAgIE5JTEUqOio6KjpkY29zeCkKLSsJZWNobyBweXJhbWlk LXB5cmFtaWQtc3ZyNAotKwlleGl0IDs7Ci0rICAgIERSUz82MDAwOnVuaXg6NC4wOjYqKQotKwll Y2hvIHNwYXJjLWljbC1ueDYKLSsJZXhpdCA7OwotKyAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6 NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCi0rCWNhc2UgYC91c3IvYmluL3VuYW1lIC1wYCBp bgotKwkgICAgc3BhcmMpIGVjaG8gc3BhcmMtaWNsLW54NzsgZXhpdCA7OwotKwllc2FjIDs7Ci0r ICAgIHN1bjRIOlN1bk9TOjUuKjoqKQotKwllY2hvIHNwYXJjLWhhbC1zb2xhcmlzMmBlY2hvICR7 VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0IDs7Ci0rICAgIHN1bjQq OlN1bk9TOjUuKjoqIHwgdGFkcG9sZSo6U3VuT1M6NS4qOiopCi0rCWVjaG8gc3BhcmMtc3VuLXNv bGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0rCWV4aXQg OzsKLSsgICAgaTg2cGM6U3VuT1M6NS4qOiogfCBpODZ4ZW46U3VuT1M6NS4qOiopCi0rCWVjaG8g aTM4Ni1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8n YAotKwlleGl0IDs7Ci0rICAgIHN1bjQqOlN1bk9TOjYqOiopCi0rCSMgQWNjb3JkaW5nIHRvIGNv bmZpZy5zdWIsIHRoaXMgaXMgdGhlIHByb3BlciB3YXkgdG8gY2Fub25pY2FsaXplCi0rCSMgU3Vu T1M2LiAgSGFyZCB0byBndWVzcyBleGFjdGx5IHdoYXQgU3VuT1M2IHdpbGwgYmUgbGlrZSwgYnV0 Ci0rCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCi0r CWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMzYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3Mv W14uXSovLydgCi0rCWV4aXQgOzsKLSsgICAgc3VuNCo6U3VuT1M6KjoqKQotKwljYXNlICJgL3Vz ci9iaW4vYXJjaCAta2AiIGluCi0rCSAgICBTZXJpZXMqfFM0KikKLSsJCVVOQU1FX1JFTEVBU0U9 YHVuYW1lIC12YAotKwkJOzsKLSsJZXNhYwotKwkjIEphcGFuZXNlIExhbmd1YWdlIHZlcnNpb25z IGhhdmUgYSB2ZXJzaW9uIG51bWJlciBsaWtlIGA0LjEuMy1KTCcuCi0rCWVjaG8gc3BhcmMtc3Vu LXN1bm9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fLydgCi0rCWV4aXQgOzsK LSsgICAgc3VuMyo6U3VuT1M6KjoqKQotKwllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxF QVNFfQotKwlleGl0IDs7Ci0rICAgIHN1bio6Kjo0LjJCU0Q6KikKLSsJVU5BTUVfUkVMRUFTRT1g KHNlZCAxcSAvZXRjL21vdGQgfCBhd2sgJ3twcmludCBzdWJzdHIoJDUsMSwzKX0nKSAyPi9kZXYv bnVsbGAKLSsJdGVzdCAieCR7VU5BTUVfUkVMRUFTRX0iID0gIngiICYmIFVOQU1FX1JFTEVBU0U9 MwotKwljYXNlICJgL2Jpbi9hcmNoYCIgaW4KLSsJICAgIHN1bjMpCi0rCQllY2hvIG02OGstc3Vu LXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwkJOzsKLSsJICAgIHN1bjQpCi0rCQllY2hvIHNwYXJj LXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLSsJCTs7Ci0rCWVzYWMKLSsJZXhpdCA7OwotKyAg ICBhdXNocDpTdW5PUzoqOiopCi0rCWVjaG8gc3BhcmMtYXVzcGV4LXN1bm9zJHtVTkFNRV9SRUxF QVNFfQotKwlleGl0IDs7Ci0rICAgICMgVGhlIHNpdHVhdGlvbiBmb3IgTWlOVCBpcyBhIGxpdHRs ZSBjb25mdXNpbmcuICBUaGUgbWFjaGluZSBuYW1lCi0rICAgICMgY2FuIGJlIHZpcnR1YWxseSBl dmVyeXRoaW5nIChldmVyeXRoaW5nIHdoaWNoIGlzIG5vdAotKyAgICAjICJhdGFyaXN0IiBvciAi YXRhcmlzdGUiIGF0IGxlYXN0IHNob3VsZCBoYXZlIGEgcHJvY2Vzc29yCi0rICAgICMgPiBtNjgw MDApLiAgVGhlIHN5c3RlbSBuYW1lIHJhbmdlcyBmcm9tICJNaU5UIiBvdmVyICJGcmVlTWlOVCIK LSsgICAgIyB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gIm1pbnQiIChvciAiZnJlZW1pbnQiKS4g IEZpbmFsbHkKLSsgICAgIyB0aGUgc3lzdGVtIG5hbWUgIlRPUyIgZGVub3RlcyBhIHN5c3RlbSB3 aGljaCBpcyBhY3R1YWxseSBub3QKLSsgICAgIyBNaU5ULiAgQnV0IE1pTlQgaXMgZG93bndhcmQg Y29tcGF0aWJsZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxkCi0rICAgICMgYmUgbm8gcHJvYmxlbS4K LSsgICAgYXRhcmlzdFtlXToqTWlOVDoqOiogfCBhdGFyaXN0W2VdOiptaW50Oio6KiB8IGF0YXJp c3RbZV06KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICBhdGFyaSo6Kk1pTlQ6KjoqIHwgYXRhcmkqOiptaW50Oio6 KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0rCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9S RUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICAqZmFsY29uKjoqTWlOVDoqOiogfCAqZmFs Y29uKjoqbWludDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKLSsgICAgICAgIGVjaG8gbTY4ay1h dGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIG1pbGFuKjoqTWlOVDoq OiogfCBtaWxhbio6Km1pbnQ6KjoqIHwgKm1pbGFuKjoqVE9TOio6KikKLSsgICAgICAgIGVjaG8g bTY4ay1taWxhbi1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICBo YWRlcyo6Kk1pTlQ6KjoqIHwgaGFkZXMqOiptaW50Oio6KiB8ICpoYWRlcyo6KlRPUzoqOiopCi0r ICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KLSsgICAgICAgIGV4 aXQgOzsKLSsgICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCi0rICAg ICAgICBlY2hvIG02OGstdW5rbm93bi1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhp dCA7OwotKyAgICBtNjhrOm1hY2h0ZW46KjoqKQotKwllY2hvIG02OGstYXBwbGUtbWFjaHRlbiR7 VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBwb3dlcnBjOm1hY2h0ZW46KjoqKQotKwll Y2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAg ICBSSVNDKjpNYWNoOio6KikKLSsJZWNobyBtaXBzLWRlYy1tYWNoX2JzZDQuMwotKwlleGl0IDs7 Ci0rICAgIFJJU0MqOlVMVFJJWDoqOiopCi0rCWVjaG8gbWlwcy1kZWMtdWx0cml4JHtVTkFNRV9S RUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFZBWCo6VUxUUklYKjoqOiopCi0rCWVjaG8gdmF4LWRl Yy11bHRyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgMjAyMDpDTElYOio6KiB8 IDI0MzA6Q0xJWDoqOiopCi0rCWVjaG8gY2xpcHBlci1pbnRlcmdyYXBoLWNsaXgke1VOQU1FX1JF TEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgbWlwczoqOio6VU1JUFMgfCBtaXBzOio6KjpSSVNDb3Mp Ci0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15 LmMKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSsjaW5jbHVkZSA8c3RkaW8uaD4gIC8qIGZvciBwcmlu dGYoKSBwcm90b3R5cGUgKi8KLSsJaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsK LSsjZWxzZQotKwlpbnQgbWFpbiAoYXJnYywgYXJndikgaW50IGFyZ2M7IGNoYXIgKmFyZ3ZbXTsg ewotKyNlbmRpZgotKwkjaWYgZGVmaW5lZCAoaG9zdF9taXBzKSAmJiBkZWZpbmVkIChNSVBTRUIp Ci0rCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NZU1YpCi0rCSAgcHJpbnRmICgibWlwcy1taXBzLXJp c2NvcyVzc3lzdlxuIiwgYXJndlsxXSk7IGV4aXQgKDApOwotKwkjZW5kaWYKLSsJI2lmIGRlZmlu ZWQgKFNZU1RZUEVfU1ZSNCkKLSsJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzdnI0XG4i LCBhcmd2WzFdKTsgZXhpdCAoMCk7Ci0rCSNlbmRpZgotKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9C U0Q0MykgfHwgZGVmaW5lZChTWVNUWVBFX0JTRCkKLSsJICBwcmludGYgKCJtaXBzLW1pcHMtcmlz Y29zJXNic2RcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKLSsJI2VuZGlmCi0rCSNlbmRpZgotKwkg IGV4aXQgKC0xKTsKLSsJfQotK0VPRgotKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXku YyAmJgotKwkgIGR1bW15YXJnPWBlY2hvICIke1VOQU1FX1JFTEVBU0V9IiB8IHNlZCAtbiAncy9c KFswLTldKlwpLiovXDEvcCdgICYmCi0rCSAgU1lTVEVNX05BTUU9YCRkdW1teSAkZHVtbXlhcmdg ICYmCi0rCSAgICB7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KLSsJZWNobyBtaXBzLW1p cHMtcmlzY29zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIE1vdG9yb2xhOlBvd2Vy TUFYX09TOio6KikKLSsJZWNobyBwb3dlcnBjLW1vdG9yb2xhLXBvd2VybWF4Ci0rCWV4aXQgOzsK LSsgICAgTW90b3JvbGE6Kjo0LjM6UEw4LSopCi0rCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJt YXgKLSsJZXhpdCA7OwotKyAgICBOaWdodF9IYXdrOio6KjpQb3dlck1BWF9PUyB8IFN5bmVyZ3k6 UG93ZXJNQVhfT1M6KjoqKQotKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4Ci0rCWV4aXQg OzsKLSsgICAgTmlnaHRfSGF3azpQb3dlcl9VTklYOio6KikKLSsJZWNobyBwb3dlcnBjLWhhcnJp cy1wb3dlcnVuaXgKLSsJZXhpdCA7OwotKyAgICBtODhrOkNYL1VYOjcqOiopCi0rCWVjaG8gbTg4 ay1oYXJyaXMtY3h1eDcKLSsJZXhpdCA7OwotKyAgICBtODhrOio6NCo6UjQqKQotKwllY2hvIG04 OGstbW90b3JvbGEtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBtODhrOio6Myo6UjMqKQotKwllY2hv IG04OGstbW90b3JvbGEtc3lzdjMKLSsJZXhpdCA7OwotKyAgICBBVmlpT046ZGd1eDoqOiopCi0r ICAgICAgICAjIERHL1VYIHJldHVybnMgQVZpaU9OIGZvciBhbGwgYXJjaGl0ZWN0dXJlcwotKyAg ICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKLSsJaWYgWyAkVU5BTUVf UFJPQ0VTU09SID0gbWM4ODEwMCBdIHx8IFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgxMTAgXQot Kwl0aGVuCi0rCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4 ZWxmeCBdIHx8IFwKLSsJICAgICAgIFsgJHtUQVJHRVRfQklOQVJZX0lOVEVSRkFDRX14ID0geCBd Ci0rCSAgICB0aGVuCi0rCQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KLSsJICAg IGVsc2UKLSsJCWVjaG8gbTg4ay1kZy1kZ3V4YmNzJHtVTkFNRV9SRUxFQVNFfQotKwkgICAgZmkK LSsJZWxzZQotKwkgICAgZWNobyBpNTg2LWRnLWRndXgke1VOQU1FX1JFTEVBU0V9Ci0rCWZpCi0r IAlleGl0IDs7Ci0rICAgIE04OCo6RG9scGhpbk9TOio6KikJIyBEb2xwaGluT1MgKFNWUjMpCi0r CWVjaG8gbTg4ay1kb2xwaGluLXN5c3YzCi0rCWV4aXQgOzsKLSsgICAgTTg4KjoqOlIzKjoqKQot KwkjIERlbHRhIDg4ayBzeXN0ZW0gcnVubmluZyBTVlIzCi0rCWVjaG8gbTg4ay1tb3Rvcm9sYS1z eXN2MwotKwlleGl0IDs7Ci0rICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3Rl bSBydW5uaW5nIFVUZWtWIChTVlIzKQotKwllY2hvIG04OGstdGVrdHJvbml4LXN5c3YzCi0rCWV4 aXQgOzsKLSsgICAgVGVrNDNbMC05XVswLTldOlVUZWs6KjoqKSAjIFRla3Ryb25peCA0MzAwIHN5 c3RlbSBydW5uaW5nIFVUZWsgKEJTRCkKLSsJZWNobyBtNjhrLXRla3Ryb25peC1ic2QKLSsJZXhp dCA7OwotKyAgICAqOklSSVgqOio6KikKLSsJZWNobyBtaXBzLXNnaS1pcml4YGVjaG8gJHtVTkFN RV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fL2cnYAotKwlleGl0IDs7Ci0rICAgID8/Pz8/Pz8/OkFJ WD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KLSsJ ZWNobyByb21wLWlibS1haXggICAgICMgdW5hbWUgLW0gZ2l2ZXMgYW4gOCBoZXgtY29kZSBDUFUg aWQKLSsJZXhpdCA7OyAgICAgICAgICAgICAgICMgTm90ZSB0aGF0OiBlY2hvICInYHVuYW1lIC1z YCciIGdpdmVzICdBSVggJwotKyAgICBpKjg2OkFJWDoqOiopCi0rCWVjaG8gaTM4Ni1pYm0tYWl4 Ci0rCWV4aXQgOzsKLSsgICAgaWE2NDpBSVg6KjoqKQotKwlpZiBbIC14IC91c3IvYmluL29zbGV2 ZWwgXSA7IHRoZW4KLSsJCUlCTV9SRVY9YC91c3IvYmluL29zbGV2ZWxgCi0rCWVsc2UKLSsJCUlC TV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Ci0rCWZpCi0rCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1pYm0tYWl4JHtJQk1fUkVWfQotKwlleGl0IDs7Ci0rICAgICo6QUlYOjI6 MykKLSsJaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYx OyB0aGVuCi0rCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQlzZWQgJ3MvXgkJLy8nIDw8IEVP RiA+JGR1bW15LmMKLSsJCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+Ci0rCi0rCQltYWluKCkK LSsJCQl7Ci0rCQkJaWYgKCFfX3Bvd2VyX3BjKCkpCi0rCQkJCWV4aXQoMSk7Ci0rCQkJcHV0cygi cG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKLSsJCQlleGl0KDApOwotKwkJCX0KLStFT0YKLSsJCWlm ICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlg Ci0rCQl0aGVuCi0rCQkJZWNobyAiJFNZU1RFTV9OQU1FIgotKwkJZWxzZQotKwkJCWVjaG8gcnM2 MDAwLWlibS1haXgzLjIuNQotKwkJZmkKLSsJZWxpZiBncmVwIGJvczMyNCAvdXNyL2luY2x1ZGUv c3RkaW8uaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIu NAotKwllbHNlCi0rCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yCi0rCWZpCi0rCWV4aXQgOzsKLSsg ICAgKjpBSVg6KjpbNDU2XSkKLSsJSUJNX0NQVV9JRD1gL3Vzci9zYmluL2xzZGV2IC1DIC1jIHBy b2Nlc3NvciAtUyBhdmFpbGFibGUgfCBzZWQgMXEgfCBhd2sgJ3sgcHJpbnQgJDEgfSdgCi0rCWlm IC91c3Ivc2Jpbi9sc2F0dHIgLUVsICR7SUJNX0NQVV9JRH0gfCBncmVwICcgUE9XRVInID4vZGV2 L251bGwgMj4mMTsgdGhlbgotKwkJSUJNX0FSQ0g9cnM2MDAwCi0rCWVsc2UKLSsJCUlCTV9BUkNI PXBvd2VycGMKLSsJZmkKLSsJaWYgWyAteCAvdXNyL2Jpbi9vc2xldmVsIF0gOyB0aGVuCi0rCQlJ Qk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAotKwllbHNlCi0rCQlJQk1fUkVWPSR7VU5BTUVfVkVS U0lPTn0uJHtVTkFNRV9SRUxFQVNFfQotKwlmaQotKwllY2hvICR7SUJNX0FSQ0h9LWlibS1haXgk e0lCTV9SRVZ9Ci0rCWV4aXQgOzsKLSsgICAgKjpBSVg6KjoqKQotKwllY2hvIHJzNjAwMC1pYm0t YWl4Ci0rCWV4aXQgOzsKLSsgICAgaWJtcnQ6NC40QlNEOip8cm9tcC1pYm06QlNEOiopCi0rCWVj aG8gcm9tcC1pYm0tYnNkNC40Ci0rCWV4aXQgOzsKLSsgICAgaWJtcnQ6KkJTRDoqfHJvbXAtaWJt OkJTRDoqKSAgICAgICAgICAgICMgY292ZXJzIFJUL1BDIEJTRCBhbmQKLSsJZWNobyByb21wLWli bS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0bwotKwlleGl0 IDs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlcG9ydDogcm9tcC1pYm0gQlNEIDQu MwotKyAgICAqOkJPU1g6KjoqKQotKwllY2hvIHJzNjAwMC1idWxsLWJvc3gKLSsJZXhpdCA7Owot KyAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQotKwllY2hvIG02OGstYnVsbC1zeXN2MwotKwlleGl0 IDs7Ci0rICAgIDkwMDAvWzM0XT8/OjQuM2JzZDoxLio6KikKLSsJZWNobyBtNjhrLWhwLWJzZAot KwlleGl0IDs7Ci0rICAgIGhwMzAwOjQuNEJTRDoqOiogfCA5MDAwL1szNF0/Pzo0LjNic2Q6Mi4q OiopCi0rCWVjaG8gbTY4ay1ocC1ic2Q0LjQKLSsJZXhpdCA7OwotKyAgICA5MDAwL1szNDY3OF0/ PzpIUC1VWDoqOiopCi0rCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdz L1teLl0qLlswQl0qLy8nYAotKwljYXNlICIke1VOQU1FX01BQ0hJTkV9IiBpbgotKwkgICAgOTAw MC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7Ci0rCSAgICA5MDAwL1szNF0/PyAp ICAgICAgICAgSFBfQVJDSD1tNjhrIDs7Ci0rCSAgICA5MDAwL1s2NzhdWzAtOV1bMC05XSkKLSsJ CWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCi0rCQkgICAgc2NfY3B1X3ZlcnNpb249 YC91c3IvYmluL2dldGNvbmYgU0NfQ1BVX1ZFUlNJT04gMj4vZGV2L251bGxgCi0rICAgICAgICAg ICAgICAgICAgICBzY19rZXJuZWxfYml0cz1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19LRVJORUxfQklU UyAyPi9kZXYvbnVsbGAKLSsgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNp b259IiBpbgotKyAgICAgICAgICAgICAgICAgICAgICA1MjMpIEhQX0FSQ0g9ImhwcGExLjAiIDs7 ICMgQ1BVX1BBX1JJU0MxXzAKLSsgICAgICAgICAgICAgICAgICAgICAgNTI4KSBIUF9BUkNIPSJo cHBhMS4xIiA7OyAjIENQVV9QQV9SSVNDMV8xCi0rICAgICAgICAgICAgICAgICAgICAgIDUzMikg ICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAotKyAgICAgICAgICAgICAgICAg ICAgICAgIGNhc2UgIiR7c2Nfa2VybmVsX2JpdHN9IiBpbgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgMzIpIEhQX0FSQ0g9ImhwcGEyLjBuIiA7OwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OwotKwkJCSAgJycpIEhQX0FSQ0g9ImhwcGEyLjAi IDs7ICAgIyBIUC1VWCAxMC4yMAotKyAgICAgICAgICAgICAgICAgICAgICAgIGVzYWMgOzsKLSsg ICAgICAgICAgICAgICAgICAgIGVzYWMKLSsJCWZpCi0rCQlpZiBbICIke0hQX0FSQ0h9IiA9ICIi IF07IHRoZW4KLSsJCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQkgICAgc2VkICdzL14g ICAgICAgICAgICAgIC8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCi0rICAgICAgICAgICAgICAjZGVm aW5lIF9IUFVYX1NPVVJDRQotKyAgICAgICAgICAgICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyAg ICAgICAgICAgICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgotKwotKyAgICAgICAgICAgICAgaW50IG1h aW4gKCkKLSsgICAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19L RVJORUxfQklUUykKLSsgICAgICAgICAgICAgICAgICBsb25nIGJpdHMgPSBzeXNjb25mKF9TQ19L RVJORUxfQklUUyk7Ci0rICAgICAgICAgICAgICAjZW5kaWYKLSsgICAgICAgICAgICAgICAgICBs b25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwotKwotKyAgICAgICAgICAgICAg ICAgIHN3aXRjaCAoY3B1KQotKyAgICAgICAgICAgICAgCXsKLSsgICAgICAgICAgICAgIAljYXNl IENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsgICAgICAgICAgICAg IAljYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMSIpOyBicmVhazsKLSsgICAgICAg ICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgotKyAgICAgICAgICAgICAgI2lmIGRlZmluZWQo X1NDX0tFUk5FTF9CSVRTKQotKyAgICAgICAgICAgICAgCSAgICBzd2l0Y2ggKGJpdHMpCi0rICAg ICAgICAgICAgICAJCXsKLSsgICAgICAgICAgICAgIAkJY2FzZSA2NDogcHV0cyAoImhwcGEyLjB3 Iik7IGJyZWFrOwotKyAgICAgICAgICAgICAgCQljYXNlIDMyOiBwdXRzICgiaHBwYTIuMG4iKTsg YnJlYWs7Ci0rICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFr OwotKyAgICAgICAgICAgICAgCQl9IGJyZWFrOwotKyAgICAgICAgICAgICAgI2Vsc2UgIC8qICFk ZWZpbmVkKF9TQ19LRVJORUxfQklUUykgKi8KLSsgICAgICAgICAgICAgIAkgICAgcHV0cyAoImhw cGEyLjAiKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAjZW5kaWYKLSsgICAgICAgICAgICAgIAlk ZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsgICAgICAgICAgICAgIAl9Ci0rICAg ICAgICAgICAgICAgICAgZXhpdCAoMCk7Ci0rICAgICAgICAgICAgICB9Ci0rRU9GCi0rCQkgICAg KENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwpICYm IEhQX0FSQ0g9YCRkdW1teWAKLSsJCSAgICB0ZXN0IC16ICIkSFBfQVJDSCIgJiYgSFBfQVJDSD1o cHBhCi0rCQlmaSA7OwotKwllc2FjCi0rCWlmIFsgJHtIUF9BUkNIfSA9ICJocHBhMi4wdyIgXQot Kwl0aGVuCi0rCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCi0rCSAgICAjIGhwcGEyLjB3 LWhwLWhwdXgqIGhhcyBhIDY0LWJpdCBrZXJuZWwgYW5kIGEgY29tcGlsZXIgZ2VuZXJhdGluZwot KwkgICAgIyAzMi1iaXQgY29kZS4gIGhwcGE2NC1ocC1ocHV4KiBoYXMgdGhlIHNhbWUga2VybmVs IGFuZCBhIGNvbXBpbGVyCi0rCSAgICAjIGdlbmVyYXRpbmcgNjQtYml0IGNvZGUuICBHTlUgYW5k IEhQIHVzZSBkaWZmZXJlbnQgbm9tZW5jbGF0dXJlOgotKwkgICAgIwotKwkgICAgIyAkIENDX0ZP Ul9CVUlMRD1jYyAuL2NvbmZpZy5ndWVzcwotKwkgICAgIyA9PiBocHBhMi4wdy1ocC1ocHV4MTEu MjMKLSsJICAgICMgJCBDQ19GT1JfQlVJTEQ9ImNjICtEQTIuMHciIC4vY29uZmlnLmd1ZXNzCi0r CSAgICAjID0+IGhwcGE2NC1ocC1ocHV4MTEuMjMKLSsKLSsJICAgIGlmIGVjaG8gX19MUDY0X18g fCAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwKLSsJCWdyZXAgX19M UDY0X18gPi9kZXYvbnVsbAotKwkgICAgdGhlbgotKwkJSFBfQVJDSD0iaHBwYTIuMHciCi0rCSAg ICBlbHNlCi0rCQlIUF9BUkNIPSJocHBhNjQiCi0rCSAgICBmaQotKwlmaQotKwllY2hvICR7SFBf QVJDSH0taHAtaHB1eCR7SFBVWF9SRVZ9Ci0rCWV4aXQgOzsKLSsgICAgaWE2NDpIUC1VWDoqOiop Ci0rCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0q Ly8nYAotKwllY2hvIGlhNjQtaHAtaHB1eCR7SFBVWF9SRVZ9Ci0rCWV4aXQgOzsKLSsgICAgMzA1 MCo6SEktVVg6KjoqKQotKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCXNlZCAncy9eCS8vJyA8 PCBFT0YgPiRkdW1teS5jCi0rCSNpbmNsdWRlIDx1bmlzdGQuaD4KLSsJaW50Ci0rCW1haW4gKCkK LSsJewotKwkgIGxvbmcgY3B1ID0gc3lzY29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKLSsJICAvKiBU aGUgb3JkZXIgbWF0dGVycywgYmVjYXVzZSBDUFVfSVNfSFBfTUM2OEsgZXJyb25lb3VzbHkgcmV0 dXJucwotKwkgICAgIHRydWUgZm9yIENQVV9QQV9SSVNDMV8wLiAgQ1BVX0lTX1BBX1JJU0MgcmV0 dXJucyBjb3JyZWN0Ci0rCSAgICAgcmVzdWx0cywgaG93ZXZlci4gICovCi0rCSAgaWYgKENQVV9J U19QQV9SSVNDIChjcHUpKQotKwkgICAgewotKwkgICAgICBzd2l0Y2ggKGNwdSkKLSsJCXsKLSsJ CSAgY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAtaGl0YWNoaS1oaXV4d2UyIik7 IGJyZWFrOwotKwkJICBjYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMS1oaXRhY2hp LWhpdXh3ZTIiKTsgYnJlYWs7Ci0rCQkgIGNhc2UgQ1BVX1BBX1JJU0MyXzA6IHB1dHMgKCJocHBh Mi4wLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKLSsJCSAgZGVmYXVsdDogcHV0cyAoImhwcGEt aGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotKwkJfQotKwkgICAgfQotKwkgIGVsc2UgaWYgKENQ VV9JU19IUF9NQzY4SyAoY3B1KSkKLSsJICAgIHB1dHMgKCJtNjhrLWhpdGFjaGktaGl1eHdlMiIp OwotKwkgIGVsc2UgcHV0cyAoInVua25vd24taGl0YWNoaS1oaXV4d2UyIik7Ci0rCSAgZXhpdCAo MCk7Ci0rCX0KLStFT0YKLSsJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgU1lT VEVNX05BTUU9YCRkdW1teWAgJiYKLSsJCXsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQot KwllY2hvIHVua25vd24taGl0YWNoaS1oaXV4d2UyCi0rCWV4aXQgOzsKLSsgICAgOTAwMC83Pz86 NC4zYnNkOio6KiB8IDkwMDAvOD9bNzldOjQuM2JzZDoqOiogKQotKwllY2hvIGhwcGExLjEtaHAt YnNkCi0rCWV4aXQgOzsKLSsgICAgOTAwMC84Pz86NC4zYnNkOio6KikKLSsJZWNobyBocHBhMS4w LWhwLWJzZAotKwlleGl0IDs7Ci0rICAgICo5Pz8qOk1QRS9pWDoqOiogfCAqMzAwMCo6TVBFL2lY Oio6KikKLSsJZWNobyBocHBhMS4wLWhwLW1wZWl4Ci0rCWV4aXQgOzsKLSsgICAgaHA3Pz86T1NG MToqOiogfCBocDg/Wzc5XTpPU0YxOio6KiApCi0rCWVjaG8gaHBwYTEuMS1ocC1vc2YKLSsJZXhp dCA7OwotKyAgICBocDg/PzpPU0YxOio6KikKLSsJZWNobyBocHBhMS4wLWhwLW9zZgotKwlleGl0 IDs7Ci0rICAgIGkqODY6T1NGMToqOiopCi0rCWlmIFsgLXggL3Vzci9zYmluL3N5c3ZlcnNpb24g XSA7IHRoZW4KLSsJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW9zZjFtawotKwll bHNlCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxCi0rCWZpCi0rCWV4 aXQgOzsKLSsgICAgcGFyaXNjKjpMaXRlcyo6KjoqKQotKwllY2hvIGhwcGExLjEtaHAtbGl0ZXMK LSsJZXhpdCA7OwotKyAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoq KQotKwllY2hvIGMxLWNvbnZleC1ic2QKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgQzIqOkNvbnZl eE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMio6KikKLSsJaWYgZ2V0c3lzaW5mbyAtZiBzY2Fs YXJfYWNjCi0rCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAotKwllbHNlIGVjaG8gYzItY29udmV4 LWJzZAotKwlmaQotKyAgICAgICAgZXhpdCA7OwotKyAgICBDMzQqOkNvbnZleE9TOio6KiB8IGNv bnZleDpDb252ZXhPUzpDMzQqOiopCi0rCWVjaG8gYzM0LWNvbnZleC1ic2QKLSsgICAgICAgIGV4 aXQgOzsKLSsgICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQot KwllY2hvIGMzOC1jb252ZXgtYnNkCi0rICAgICAgICBleGl0IDs7Ci0rICAgIEM0KjpDb252ZXhP UzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzQqOiopCi0rCWVjaG8gYzQtY29udmV4LWJzZAotKyAg ICAgICAgZXhpdCA7OwotKyAgICBDUkFZKlktTVA6KjoqOiopCi0rCWVjaG8geW1wLWNyYXktdW5p Y29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4aXQgOzsK LSsgICAgQ1JBWSpbQS1aXTkwOio6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tY3JheS11 bmljb3Mke1VOQU1FX1JFTEVBU0V9IFwKLSsJfCBzZWQgLWUgJ3MvQ1JBWS4qXChbQS1aXTkwXCkv XDEvJyBcCi0rCSAgICAgIC1lIHkvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hp amtsbW5vcHFyc3R1dnd4eXovIFwKLSsJICAgICAgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0 IDs7Ci0rICAgIENSQVkqVFM6KjoqOiopCi0rCWVjaG8gdDkwLWNyYXktdW5pY29zJHtVTkFNRV9S RUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4aXQgOzsKLSsgICAgQ1JBWSpU M0U6KjoqOiopCi0rCWVjaG8gYWxwaGFldjUtY3JheS11bmljb3NtayR7VU5BTUVfUkVMRUFTRX0g fCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIENSQVkqU1YxOio6Kjoq KQotKwllY2hvIHN2MS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5b Xi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgICo6VU5JQ09TL21wOio6KikKLSsJZWNobyBjcmF5 bnYtY3JheS11bmljb3NtcCR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgv JwotKwlleGl0IDs7Ci0rICAgIEYzMFswMV06VU5JWF9TeXN0ZW1fVjoqOiogfCBGNzAwOlVOSVhf U3lzdGVtX1Y6KjoqKQotKwlGVUpJVFNVX1BST0M9YHVuYW1lIC1tIHwgdHIgJ0FCQ0RFRkdISUpL TE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAotKyAgICAgICAg RlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAn YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAotKyAgICAgICAg RlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy8gL18vJ2AKLSsg ICAgICAgIGVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJ VFNVX1JFTH0iCi0rICAgICAgICBleGl0IDs7Ci0rICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6 KikKLSsgICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9Q UVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8v J2AKLSsgICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCB0ciAnQUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBz ZWQgLWUgJ3MvIC9fLydgCi0rICAgICAgICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9T WVN9JHtGVUpJVFNVX1JFTH0iCi0rCWV4aXQgOzsKLSsgICAgaSo4NjpCU0QvMzg2Oio6KiB8IGkq ODY6QlNEL09TOio6KiB8ICo6QXNjZW5kXCBFbWJlZGRlZC9PUzoqOiopCi0rCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1wYy1ic2RpJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIHNwYXJj KjpCU0QvT1M6KjoqKQotKwllY2hvIHNwYXJjLXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFTRX0K LSsJZXhpdCA7OwotKyAgICAqOkJTRC9PUzoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11 bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpGcmVlQlNEOio6 KikKLSsJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCi0rCSAgICBwYzk4KQotKwkJZWNobyBpMzg2 LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8v J2AgOzsKLSsJICAgIGFtZDY0KQotKwkJZWNobyB4ODZfNjQtdW5rbm93bi1mcmVlYnNkYGVjaG8g JHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7OwotKwkgICAgKikKLSsJCWVj aG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9 fHNlZCAtZSAncy9bLShdLiovLydgIDs7Ci0rCWVzYWMKLSsJZXhpdCA7OwotKyAgICBpKjpDWUdX SU4qOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1jeWd3aW4KLSsJZXhpdCA7OwotKyAg ICAqOk1JTkdXKjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluZ3czMgotKwlleGl0 IDs7Ci0rICAgIGkqOndpbmRvd3MzMio6KikKLSsgICAgCSMgdW5hbWUgLW0gaW5jbHVkZXMgIi1w YyIgb24gdGhpcyBzeXN0ZW0uCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tbWluZ3czMgot KwlleGl0IDs7Ci0rICAgIGkqOlBXKjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcHcz MgotKwlleGl0IDs7Ci0rICAgICo6SW50ZXJpeCo6WzM0NTZdKikKLSsgICAgCWNhc2UgJHtVTkFN RV9NQUNISU5FfSBpbgotKwkgICAgeDg2KQotKwkJZWNobyBpNTg2LXBjLWludGVyaXgke1VOQU1F X1JFTEVBU0V9Ci0rCQlleGl0IDs7Ci0rCSAgICBFTTY0VCB8IGF1dGhlbnRpY2FtZCkKLSsJCWVj aG8geDg2XzY0LXVua25vd24taW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KLSsJCWV4aXQgOzsKLSsJ ICAgIElBNjQpCi0rCQllY2hvIGlhNjQtdW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQot KwkJZXhpdCA7OwotKwllc2FjIDs7Ci0rICAgIFszNDVdODY6V2luZG93c185NToqIHwgWzM0NV04 NjpXaW5kb3dzXzk4OiogfCBbMzQ1XTg2OldpbmRvd3NfTlQ6KikKLSsJZWNobyBpJHtVTkFNRV9N QUNISU5FfS1wYy1ta3MKLSsJZXhpdCA7OwotKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1 bSo6V2luZG93c19OVCo6KikKLSsJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVy IHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPwotKwkjIEl0IGFsc28gY29uZmxpY3Rz IHdpdGggcHJlLTIuMCB2ZXJzaW9ucyBvZiBBVCZUIFVXSU4uIFNob3VsZCB3ZQotKwkjIFVOQU1F X01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/Ci0r CWVjaG8gaTU4Ni1wYy1pbnRlcml4Ci0rCWV4aXQgOzsKLSsgICAgaSo6VVdJTio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXBjLXV3aW4KLSsJZXhpdCA7OwotKyAgICBhbWQ2NDpDWUdXSU4q Oio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKLSsJZWNobyB4ODZfNjQtdW5rbm93bi1jeWd3aW4K LSsJZXhpdCA7OwotKyAgICBwKjpDWUdXSU4qOiopCi0rCWVjaG8gcG93ZXJwY2xlLXVua25vd24t Y3lnd2luCi0rCWV4aXQgOzsKLSsgICAgcHJlcCo6U3VuT1M6NS4qOiopCi0rCWVjaG8gcG93ZXJw Y2xlLXVua25vd24tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5d Ki8vJ2AKLSsJZXhpdCA7OwotKyAgICAqOkdOVToqOiopCi0rCSMgdGhlIEdOVSBzeXN0ZW0KLSsJ ZWNobyBgZWNobyAke1VOQU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtub3du LWdudWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCi0rCWV4aXQgOzsK LSsgICAgKjpHTlUvKjoqOiopCi0rCSMgb3RoZXIgc3lzdGVtcyB3aXRoIEdOVSBsaWJjIGFuZCB1 c2VybGFuZAotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZ U1RFTX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VO QU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQotKwlleGl0IDs7Ci0rICAgIGkq ODY6TWluaXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKLSsJZXhpdCA7 OwotKyAgICBhcm0qOkxpbnV4Oio6KikKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlpZiBl Y2hvIF9fQVJNX0VBQklfXyB8ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBcCi0rCSAg ICB8IGdyZXAgLXEgX19BUk1fRUFCSV9fCi0rCXRoZW4KLSsJICAgIGVjaG8gJHtVTkFNRV9NQUNI SU5FfS11bmtub3duLWxpbnV4LWdudQotKwllbHNlCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElO RX0tdW5rbm93bi1saW51eC1nbnVlYWJpCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgYXZyMzIqOkxp bnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4 aXQgOzsKLSsgICAgY3JpczpMaW51eDoqOiopCi0rCWVjaG8gY3Jpcy1heGlzLWxpbnV4LWdudQot KwlleGl0IDs7Ci0rICAgIGNyaXN2MzI6TGludXg6KjoqKQotKwllY2hvIGNyaXN2MzItYXhpcy1s aW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBmcnY6TGludXg6KjoqKQotKyAgICAJZWNobyBmcnYt dW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBpYTY0OkxpbnV4Oio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbTMy cio6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUK LSsJZXhpdCA7OwotKyAgICBtNjgqOkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbWlwczpMaW51eDoqOiopCi0rCWV2 YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJ I3VuZGVmIENQVQotKwkjdW5kZWYgbWlwcwotKwkjdW5kZWYgbWlwc2VsCi0rCSNpZiBkZWZpbmVk KF9fTUlQU0VMX18pIHx8IGRlZmluZWQoX19NSVBTRUwpIHx8IGRlZmluZWQoX01JUFNFTCkgfHwg ZGVmaW5lZChNSVBTRUwpCi0rCUNQVT1taXBzZWwKLSsJI2Vsc2UKLSsJI2lmIGRlZmluZWQoX19N SVBTRUJfXykgfHwgZGVmaW5lZChfX01JUFNFQikgfHwgZGVmaW5lZChfTUlQU0VCKSB8fCBkZWZp bmVkKE1JUFNFQikKLSsJQ1BVPW1pcHMKLSsJI2Vsc2UKLSsJQ1BVPQotKwkjZW5kaWYKLSsJI2Vu ZGlmCi0rRU9GCi0rCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxs IHwgc2VkIC1uICcKLSsJICAgIC9eQ1BVL3sKLSsJCXM6IDo6ZwotKwkJcAotKwkgICAgfSdgIgot Kwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251 IjsgZXhpdDsgfQotKwk7OwotKyAgICBtaXBzNjQ6TGludXg6KjoqKQotKwlldmFsICRzZXRfY2Nf Zm9yX2J1aWxkCi0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCSN1bmRlZiBDUFUK LSsJI3VuZGVmIG1pcHM2NAotKwkjdW5kZWYgbWlwczY0ZWwKLSsJI2lmIGRlZmluZWQoX19NSVBT RUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVk KE1JUFNFTCkKLSsJQ1BVPW1pcHM2NGVsCi0rCSNlbHNlCi0rCSNpZiBkZWZpbmVkKF9fTUlQU0VC X18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChN SVBTRUIpCi0rCUNQVT1taXBzNjQKLSsJI2Vsc2UKLSsJQ1BVPQotKwkjZW5kaWYKLSsJI2VuZGlm Ci0rRU9GCi0rCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwg c2VkIC1uICcKLSsJICAgIC9eQ1BVL3sKLSsJCXM6IDo6ZwotKwkJcAotKwkgICAgfSdgIgotKwl0 ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251Ijsg ZXhpdDsgfQotKwk7OwotKyAgICBvcjMyOkxpbnV4Oio6KikKLSsJZWNobyBvcjMyLXVua25vd24t bGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcHBjOkxpbnV4Oio6KikKLSsJZWNobyBwb3dlcnBj LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcHBjNjQ6TGludXg6KjoqKQotKwll Y2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIGFscGhhOkxp bnV4Oio6KikKLSsJY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3An IDwgL3Byb2MvY3B1aW5mb2AgaW4KLSsJICBFVjUpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7 OwotKwkgIEVWNTYpICBVTkFNRV9NQUNISU5FPWFscGhhZXY1NiA7OwotKwkgIFBDQTU2KSBVTkFN RV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLSsJICBQQ0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBj YTU2IDs7Ci0rCSAgRVY2KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjYgOzsKLSsJICBFVjY3KSAg VU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKLSsJICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBo YWV2NjggOzsKLSsgICAgICAgIGVzYWMKLSsJb2JqZHVtcCAtLXByaXZhdGUtaGVhZGVycyAvYmlu L3NoIHwgZ3JlcCBsZC5zby4xID4vZGV2L251bGwKLSsJaWYgdGVzdCAiJD8iID0gMCA7IHRoZW4g TElCQz0ibGliYzEiIDsgZWxzZSBMSUJDPSIiIDsgZmkKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbGludXgtZ251JHtMSUJDfQotKwlleGl0IDs7Ci0rICAgIHBhcmlzYzpMaW51eDoq OiogfCBocHBhOkxpbnV4Oio6KikKLSsJIyBMb29rIGZvciBDUFUgbGV2ZWwKLSsJY2FzZSBgZ3Jl cCAnXmNwdVteYS16XSo6JyAvcHJvYy9jcHVpbmZvIDI+L2Rldi9udWxsIHwgY3V0IC1kJyAnIC1m MmAgaW4KLSsJICBQQTcqKSBlY2hvIGhwcGExLjEtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJICBQ QTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJICAqKSAgICBlY2hvIGhw cGEtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJZXNhYwotKwlleGl0IDs7Ci0rICAgIHBhcmlzYzY0 OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51eDoqOiopCi0rCWVjaG8gaHBwYTY0LXVua25vd24tbGlu dXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiop Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKLSsJZXhpdCA7OwotKyAgICBzaDY0 KjpMaW51eDoqOiopCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1n bnUKLSsJZXhpdCA7OwotKyAgICBzaCo6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElO RX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzcGFyYzpMaW51eDoqOiogfCBz cGFyYzY0OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgt Z251Ci0rCWV4aXQgOzsKLSsgICAgdmF4OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJ TkV9LWRlYy1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICB4ODZfNjQ6TGludXg6KjoqKQotKwll Y2hvIHg4Nl82NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHh0ZW5zYSo6TGlu dXg6KjoqKQotKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0r CWV4aXQgOzsKLSsgICAgaSo4NjpMaW51eDoqOiopCi0rCSMgVGhlIEJGRCBsaW5rZXIga25vd3Mg d2hhdCB0aGUgZGVmYXVsdCBvYmplY3QgZmlsZSBmb3JtYXQgaXMsIHNvCi0rCSMgZmlyc3Qgc2Vl IGlmIGl0IHdpbGwgdGVsbCB1cy4gY2QgdG8gdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXZlbnQK LSsJIyBwcm9ibGVtcyB3aXRoIG90aGVyIHByb2dyYW1zIG9yIGRpcmVjdG9yaWVzIGNhbGxlZCBg bGQnIGluIHRoZSBwYXRoLgotKwkjIFNldCBMQ19BTEw9QyB0byBlbnN1cmUgbGQgb3V0cHV0cyBt ZXNzYWdlcyBpbiBFbmdsaXNoLgotKwlsZF9zdXBwb3J0ZWRfdGFyZ2V0cz1gY2QgLzsgTENfQUxM PUMgbGQgLS1oZWxwIDI+JjEgXAotKwkJCSB8IHNlZCAtbmUgJy9zdXBwb3J0ZWQgdGFyZ2V0czov IWQKLSsJCQkJICAgIHMvWyAJXVsgCV0qLyAvZwotKwkJCQkgICAgcy8uKnN1cHBvcnRlZCB0YXJn ZXRzOiAqLy8KLSsJCQkJICAgIHMvIC4qLy8KLSsJCQkJICAgIHAnYAotKyAgICAgICAgY2FzZSAi JGxkX3N1cHBvcnRlZF90YXJnZXRzIiBpbgotKwkgIGVsZjMyLWkzODYpCi0rCQlURU5UQVRJVkU9 IiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251IgotKwkJOzsKLSsJICBhLm91dC1pMzg2LWxp bnV4KQotKwkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnVhb3V0IgotKwkJZXhp dCA7OwotKwkgIGNvZmYtaTM4NikKLSsJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgt Z251Y29mZiIKLSsJCWV4aXQgOzsKLSsJICAiIikKLSsJCSMgRWl0aGVyIGEgcHJlLUJGRCBhLm91 dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxkKSBvcgotKwkJIyBvbmUgdGhhdCBkb2VzIG5vdCBnaXZl IHVzIHVzZWZ1bCAtLWhlbHAuCi0rCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdu dW9sZGxkIgotKwkJZXhpdCA7OwotKwllc2FjCi0rCSMgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRl ZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQgb3IgZWxmCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQK LSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJI2luY2x1ZGUgPGZlYXR1cmVzLmg+ Ci0rCSNpZmRlZiBfX0VMRl9fCi0rCSMgaWZkZWYgX19HTElCQ19fCi0rCSMgIGlmIF9fR0xJQkNf XyA+PSAyCi0rCUxJQkM9Z251Ci0rCSMgIGVsc2UKLSsJTElCQz1nbnVsaWJjMQotKwkjICBlbmRp ZgotKwkjIGVsc2UKLSsJTElCQz1nbnVsaWJjMQotKwkjIGVuZGlmCi0rCSNlbHNlCi0rCSNpZiBk ZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpIHx8IGRlZmluZWQoX19QR0kpIHx8IGRlZmluZWQoX19T VU5QUk9fQykgfHwgZGVmaW5lZChfX1NVTlBST19DQykKLSsJTElCQz1nbnUKLSsJI2Vsc2UKLSsJ TElCQz1nbnVhb3V0Ci0rCSNlbmRpZgotKwkjZW5kaWYKLSsJI2lmZGVmIF9fZGlldGxpYmNfXwot KwlMSUJDPWRpZXRsaWJjCi0rCSNlbmRpZgotK0VPRgotKwlldmFsICJgJENDX0ZPUl9CVUlMRCAt RSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IHNlZCAtbiAnCi0rCSAgICAvXkxJQkMvewotKwkJczog OjpnCi0rCQlwCi0rCSAgICB9J2AiCi0rCXRlc3QgeCIke0xJQkN9IiAhPSB4ICYmIHsKLSsJCWVj aG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtJHtMSUJDfSIKLSsJCWV4aXQKLSsJfQotKwl0 ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4ICYmIHsgZWNobyAiJHtURU5UQVRJVkV9IjsgZXhpdDsg fQotKwk7OwotKyAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQotKwkjIHB0eCA0LjAgZG9lcyB1bmFt ZSAtcyBjb3JyZWN0bHksIHdpdGggRFlOSVgvcHR4IGluIHRoZXJlLgotKwkjIGVhcmxpZXIgdmVy c2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQgcHV0IHRoZSBub2RlbmFtZSBpbiBib3RoCi0rCSMgc3lz bmFtZSBhbmQgbm9kZW5hbWUuCi0rCWVjaG8gaTM4Ni1zZXF1ZW50LXN5c3Y0Ci0rCWV4aXQgOzsK LSsgICAgaSo4NjpVTklYX1NWOjQuMk1QOjIuKikKLSsgICAgICAgICMgVW5peHdhcmUgaXMgYW4g b2Zmc2hvb3Qgb2YgU1ZSNCwgYnV0IGl0IGhhcyBpdHMgb3duIHZlcnNpb24KLSsgICAgICAgICMg bnVtYmVyIHNlcmllcyBzdGFydGluZyB3aXRoIDIuLi4KLSsgICAgICAgICMgSSBhbSBub3QgcG9z aXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29uJ3QgbWF0Y2ggdGhpcywKLSsJIyBJIGp1 c3QgaGF2ZSB0byBob3BlLiAgLS0gcm1zLgotKyAgICAgICAgIyBVc2Ugc3lzdjQuMnV3Li4uIHNv IHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2 NC4ydXcke1VOQU1FX1ZFUlNJT059Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpPUy8yOio6KikKLSsJ IyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmluZCBgdW5hbWUnLCB0aGVuIEVNWCBVbml4IGNvbXBhdGli aWxpdHkKLSsJIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQuCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5F fS1wYy1vczItZW14Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpYVFMtMzAwOio6U1RPUCkKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3RvcAotKwlleGl0IDs7Ci0rICAgIGkqODY6YXRo ZW9zOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYXRoZW9zCi0rCWV4aXQg OzsKLSsgICAgaSo4NjpzeWxsYWJsZToqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1z eWxsYWJsZQotKwlleGl0IDs7Ci0rICAgIGkqODY6THlueE9TOjIuKjoqIHwgaSo4NjpMeW54T1M6 My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6NC4wKjoqKQotKwllY2hvIGkzODYtdW5rbm93bi1seW54 b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjoqRE9TOio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXBjLW1zZG9zZGpncHAKLSsJZXhpdCA7OwotKyAgICBpKjg2Oio6 NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQotKwlVTkFNRV9SRUw9YGVjaG8gJHtVTkFNRV9S RUxFQVNFfSB8IHNlZCAncy9cL01QJC8vJ2AKLSsJaWYgZ3JlcCBOb3ZlbGwgL3Vzci9pbmNsdWRl L2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCi0rCQllY2hvICR7VU5BTUVfTUFD SElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0KLSsJZWxzZQotKwkJZWNobyAke1VOQU1FX01B Q0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JFTH0KLSsJZmkKLSsJZXhpdCA7OwotKyAgICBpKjg2Oio6 NTpbNjc4XSopCi0rICAgIAkjIFVuaXhXYXJlIDcueCwgT3BlblVOSVggYW5kIE9wZW5TZXJ2ZXIg Ni4KLSsJY2FzZSBgL2Jpbi91bmFtZSAtWCB8IGdyZXAgIl5NYWNoaW5lImAgaW4KLSsJICAgICo0 ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4NiA7OwotKwkgICAgKlBlbnRpdW0pCSAgICAgVU5B TUVfTUFDSElORT1pNTg2IDs7Ci0rCSAgICAqUGVudCp8KkNlbGVyb24pIFVOQU1FX01BQ0hJTkU9 aTY4NiA7OwotKwllc2FjCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN5c3Yke1VO QU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNURU19JHtVTkFNRV9WRVJTSU9OfQotKwlleGl0IDs7Ci0r ICAgIGkqODY6KjozLjI6KikKLSsJaWYgdGVzdCAtZiAvdXNyL29wdGlvbnMvY2IubmFtZTsgdGhl bgotKwkJVU5BTUVfUkVMPWBzZWQgLW4gJ3MvLipWZXJzaW9uIC8vcCcgPC91c3Ivb3B0aW9ucy9j Yi5uYW1lYAotKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9SRUwKLSsJZWxp ZiAvYmluL3VuYW1lIC1YIDI+L2Rldi9udWxsID4vZGV2L251bGwgOyB0aGVuCi0rCQlVTkFNRV9S RUw9YCgvYmluL3VuYW1lIC1YfGdyZXAgUmVsZWFzZXxzZWQgLWUgJ3MvLio9IC8vJylgCi0rCQko L2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0 ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50aXVtJyA+L2Rldi9udWxs KSBcCi0rCQkJJiYgVU5BTUVfTUFDSElORT1pNTg2Ci0rCQkoL2Jpbi91bmFtZSAtWHxncmVwICde TWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKLSsJCQkmJiBVTkFNRV9NQUNISU5FPWk2 ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50aXVtIFBybycgPi9kZXYv bnVsbCkgXAotKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgotKwkJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXBjLXNjbyRVTkFNRV9SRUwKLSsJZWxzZQotKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBj LXN5c3YzMgotKwlmaQotKwlleGl0IDs7Ci0rICAgIHBjOio6KjoqKQotKwkjIExlZnQgaGVyZSBm b3IgY29tcGF0aWJpbGl0eToKLSsgICAgICAgICMgdW5hbWUgLW0gcHJpbnRzIGZvciBESkdQUCBh bHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0Ci0rICAgICAgICAjIHRoZSBw cm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBpMzg2LgotKwllY2hvIGkzODYt cGMtbXNkb3NkamdwcAotKyAgICAgICAgZXhpdCA7OwotKyAgICBJbnRlbDpNYWNoOjMqOiopCi0r CWVjaG8gaTM4Ni1wYy1tYWNoMwotKwlleGl0IDs7Ci0rICAgIHBhcmFnb246KjoqOiopCi0rCWVj aG8gaTg2MC1pbnRlbC1vc2YxCi0rCWV4aXQgOzsKLSsgICAgaTg2MDoqOjQuKjoqKSAjIGk4NjAt U1ZSNAotKwlpZiBncmVwIFN0YXJkZW50IC91c3IvaW5jbHVkZS9zeXMvdWFkbWluLmggPi9kZXYv bnVsbCAyPiYxIDsgdGhlbgotKwkgIGVjaG8gaTg2MC1zdGFyZGVudC1zeXN2JHtVTkFNRV9SRUxF QVNFfSAjIFN0YXJkZW50IFZpc3RyYSBpODYwLVNWUjQKLSsJZWxzZSAjIEFkZCBvdGhlciBpODYw LVNWUjQgdmVuZG9ycyBiZWxvdyBhcyB0aGV5IGFyZSBkaXNjb3ZlcmVkLgotKwkgIGVjaG8gaTg2 MC11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9ICAjIFVua25vd24gaTg2MC1TVlI0Ci0rCWZp Ci0rCWV4aXQgOzsKLSsgICAgbWluaSo6Q1RJWDpTWVMqNToqKQotKwkjICJtaW5pZnJhbWUiCi0r CWVjaG8gbTY4MDEwLWNvbnZlcmdlbnQtc3lzdgotKwlleGl0IDs7Ci0rICAgIG1jNjhrOlVOSVg6 U1lTVEVNNTozLjUxbSkKLSsJZWNobyBtNjhrLWNvbnZlcmdlbnQtc3lzdgotKwlleGl0IDs7Ci0r ICAgIE02ODA/MDpELU5JWDo1LjM6KikKLSsJZWNobyBtNjhrLWRpYWItZG5peAotKwlleGl0IDs7 Ci0rICAgIE02OCo6KjpSM1ZbNTY3OF0qOiopCi0rCXRlc3QgLXIgL3N5c1Y2OCAmJiB7IGVjaG8g J202OGstbW90b3JvbGEtc3lzdic7IGV4aXQ7IH0gOzsKLSsgICAgM1szNDVdPz86Kjo0LjA6My4w IHwgM1szNF0/P0E6Kjo0LjA6My4wIHwgM1szNF0/PywqOio6NC4wOjMuMCB8IDNbMzRdPz8vKjoq OjQuMDozLjAgfCA0NDAwOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6 My4wIHwgU0RTMjoqOjQuMDozLjAgfCBTSEcyOio6NC4wOjMuMCB8IFM3NTAxKjoqOjQuMDozLjAp Ci0rCU9TX1JFTD0nJwotKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKLSsJJiYgT1NfUkVMPS5gc2Vk IC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAK LSsJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCi0rCSAg JiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0KLSsJL2Jpbi91bmFt ZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCi0rCSAgJiYg eyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0gOzsKLSsgICAgM1szNF0/ PzoqOjQuMDoqIHwgM1szNF0/PywqOio6NC4wOiopCi0rICAgICAgICAvYmluL3VuYW1lIC1wIDI+ L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSsgICAgICAgICAgJiYgeyBlY2hvIGk0 ODYtbmNyLXN5c3Y0OyBleGl0OyB9IDs7Ci0rICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpM eW54T1M6My4wKjoqKQotKwllY2hvIG02OGstdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9 Ci0rCWV4aXQgOzsKLSsgICAgbWM2ODAzMDpVTklYX1N5c3RlbV9WOjQuKjoqKQotKwllY2hvIG02 OGstYXRhcmktc3lzdjQKLSsJZXhpdCA7OwotKyAgICBUU1VOQU1JOkx5bnhPUzoyLio6KikKLSsJ ZWNobyBzcGFyYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAg ICByczYwMDA6THlueE9TOjIuKjoqKQotKwllY2hvIHJzNjAwMC11bmtub3duLWx5bnhvcyR7VU5B TUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBQb3dlclBDOkx5bnhPUzoyLio6KiB8IFBvd2Vy UEM6THlueE9TOjMuWzAxXSo6KiB8IFBvd2VyUEM6THlueE9TOjQuMCo6KikKLSsJZWNobyBwb3dl cnBjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNNW0JF XVM6VU5JWF9TVjoqOiopCi0rCWVjaG8gbWlwcy1kZGUtc3lzdiR7VU5BTUVfUkVMRUFTRX0KLSsJ ZXhpdCA7OwotKyAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCi0rCWVjaG8gbWlwcy1zbmktc3lz djQKLSsJZXhpdCA7OwotKyAgICBSTSo6U0lOSVgtKjoqOiopCi0rCWVjaG8gbWlwcy1zbmktc3lz djQKLSsJZXhpdCA7OwotKyAgICAqOlNJTklYLSo6KjoqKQotKwlpZiB1bmFtZSAtcCAyPi9kZXYv bnVsbCA+L2Rldi9udWxsIDsgdGhlbgotKwkJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9k ZXYvbnVsbGAKLSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1zbmktc3lzdjQKLSsJZWxzZQotKwkJ ZWNobyBuczMyay1zbmktc3lzdgotKwlmaQotKwlleGl0IDs7Ci0rICAgIFBFTlRJVU06Kjo0LjAq OiopICMgVW5pc3lzIGBDbGVhclBhdGggSE1QIElYIDQwMDAnIFNWUjQvTVAgZWZmb3J0Ci0rICAg ICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3Vz LkdPVj4KLSsgICAgICAgIGVjaG8gaTU4Ni11bmlzeXMtc3lzdjQKLSsgICAgICAgIGV4aXQgOzsK LSsgICAgKjpVTklYX1N5c3RlbV9WOjQqOkZUWCopCi0rCSMgRnJvbSBHZXJhbGQgSGV3ZXMgPGhl d2VzQG9wZW5tYXJrZXQuY29tPi4KLSsJIyBIb3cgYWJvdXQgZGlmZmVyZW50aWF0aW5nIGJldHdl ZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVzPyAtZGptCi0rCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXN5 c3Y0Ci0rCWV4aXQgOzsKLSsgICAgKjoqOio6RlRYKikKLSsJIyBGcm9tIHNlYW5mQHN3ZGMuc3Ry YXR1cy5jb20uCi0rCWVjaG8gaTg2MC1zdHJhdHVzLXN5c3Y0Ci0rCWV4aXQgOzsKLSsgICAgaSo4 NjpWT1M6KjoqKQotKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVzLmNvbS4KLSsJZWNobyAke1VO QU1FX01BQ0hJTkV9LXN0cmF0dXMtdm9zCi0rCWV4aXQgOzsKLSsgICAgKjpWT1M6KjoqKQotKwkj IEZyb20gUGF1bC5HcmVlbkBzdHJhdHVzLmNvbS4KLSsJZWNobyBocHBhMS4xLXN0cmF0dXMtdm9z Ci0rCWV4aXQgOzsKLSsgICAgbWM2OCo6QS9VWDoqOiopCi0rCWVjaG8gbTY4ay1hcHBsZS1hdXgk e1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgbmV3cyo6TkVXUy1PUzo2KjoqKQotKwll Y2hvIG1pcHMtc29ueS1uZXdzb3M2Ci0rCWV4aXQgOzsKLSsgICAgUlszNF0wMDA6KlN5c3RlbV9W KjoqOiogfCBSNDAwMDpVTklYX1NZU1Y6KjoqIHwgUiowMDA6VU5JWF9TVjoqOiopCi0rCWlmIFsg LWQgL3Vzci9uZWMgXTsgdGhlbgotKwkgICAgICAgIGVjaG8gbWlwcy1uZWMtc3lzdiR7VU5BTUVf UkVMRUFTRX0KLSsJZWxzZQotKwkgICAgICAgIGVjaG8gbWlwcy11bmtub3duLXN5c3Yke1VOQU1F X1JFTEVBU0V9Ci0rCWZpCi0rICAgICAgICBleGl0IDs7Ci0rICAgIEJlQm94OkJlT1M6KjoqKQkj IEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQUEMgb25seS4KLSsJZWNobyBw b3dlcnBjLWJlLWJlb3MKLSsJZXhpdCA7OwotKyAgICBCZU1hYzpCZU9TOio6KikJIyBCZU9TIHJ1 bm5pbmcgb24gTWFjIG9yIE1hYyBjbG9uZSwgUFBDIG9ubHkuCi0rCWVjaG8gcG93ZXJwYy1hcHBs ZS1iZW9zCi0rCWV4aXQgOzsKLSsgICAgQmVQQzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24g SW50ZWwgUEMgY29tcGF0aWJsZS4KLSsJZWNobyBpNTg2LXBjLWJlb3MKLSsJZXhpdCA7OwotKyAg ICBTWC00OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDQtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVB U0V9Ci0rCWV4aXQgOzsKLSsgICAgU1gtNTpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g1LW5lYy1z dXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLTY6U1VQRVItVVg6Kjoq KQotKwllY2hvIHN4Ni1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAg ICBTWC03OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDctbmVjLXN1cGVydXgke1VOQU1FX1JFTEVB U0V9Ci0rCWV4aXQgOzsKLSsgICAgU1gtODpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g4LW5lYy1z dXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLThSOlNVUEVSLVVYOio6 KikKLSsJZWNobyBzeDhyLW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0r ICAgIFBvd2VyKjpSaGFwc29keToqOiopCi0rCWVjaG8gcG93ZXJwYy1hcHBsZS1yaGFwc29keSR7 VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOlJoYXBzb2R5Oio6KikKLSsJZWNobyAk e1VOQU1FX01BQ0hJTkV9LWFwcGxlLXJoYXBzb2R5JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgICo6RGFyd2luOio6KikKLSsJVU5BTUVfUFJPQ0VTU09SPWB1bmFtZSAtcGAgfHwgVU5B TUVfUFJPQ0VTU09SPXVua25vd24KLSsJY2FzZSAkVU5BTUVfUFJPQ0VTU09SIGluCi0rCSAgICB1 bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7OwotKwllc2FjCi0rCWVjaG8gJHtVTkFN RV9QUk9DRVNTT1J9LWFwcGxlLWRhcndpbiR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAg ICAqOnByb2NudG8qOio6KiB8ICo6UU5YOlswMTIzNDU2Nzg5XSo6KikKLSsJVU5BTUVfUFJPQ0VT U09SPWB1bmFtZSAtcGAKLSsJaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2IjsgdGhl bgotKwkJVU5BTUVfUFJPQ0VTU09SPWkzODYKLSsJCVVOQU1FX01BQ0hJTkU9cGMKLSsJZmkKLSsJ ZWNobyAke1VOQU1FX1BST0NFU1NPUn0tJHtVTkFNRV9NQUNISU5FfS1udG8tcW54JHtVTkFNRV9S RUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6UU5YOio6NCopCi0rCWVjaG8gaTM4Ni1wYy1xbngK LSsJZXhpdCA7OwotKyAgICBOU0UtPzpOT05TVE9QX0tFUk5FTDoqOiopCi0rCWVjaG8gbnNlLXRh bmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgTlNSLT86Tk9OU1RPUF9L RVJORUw6KjoqKQotKwllY2hvIG5zci10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0 IDs7Ci0rICAgICo6Tm9uU3RvcC1VWDoqOiopCi0rCWVjaG8gbWlwcy1jb21wYXEtbm9uc3RvcHV4 Ci0rCWV4aXQgOzsKLSsgICAgQlMyMDAwOlBPU0lYKjoqOiopCi0rCWVjaG8gYnMyMDAwLXNpZW1l bnMtc3lzdgotKwlleGl0IDs7Ci0rICAgIERTLyo6VU5JWF9TeXN0ZW1fVjoqOiopCi0rCWVjaG8g JHtVTkFNRV9NQUNISU5FfS0ke1VOQU1FX1NZU1RFTX0tJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0 IDs7Ci0rICAgICo6UGxhbjk6KjoqKQotKwkjICJ1bmFtZSAtbSIgaXMgbm90IGNvbnNpc3RlbnQs IHNvIHVzZSAkY3B1dHlwZSBpbnN0ZWFkLiAzODYKLSsJIyBpcyBjb252ZXJ0ZWQgdG8gaTM4NiBm b3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKLSsJIyBvcGVyYXRpbmcgc3lzdGVtcy4KLSsJ aWYgdGVzdCAiJGNwdXR5cGUiID0gIjM4NiI7IHRoZW4KLSsJICAgIFVOQU1FX01BQ0hJTkU9aTM4 NgotKwllbHNlCi0rCSAgICBVTkFNRV9NQUNISU5FPSIkY3B1dHlwZSIKLSsJZmkKLSsJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tcGxhbjkKLSsJZXhpdCA7OwotKyAgICAqOlRPUFMtMTA6 KjoqKQotKwllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCi0rCWV4aXQgOzsKLSsgICAgKjpURU5F WDoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAotKwlleGl0IDs7Ci0rICAgIEtTMTA6 VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQRTQ6VE9QUy0yMDoqOiopCi0rCWVj aG8gcGRwMTAtZGVjLXRvcHMyMAotKwlleGl0IDs7Ci0rICAgIFhLTC0xOlRPUFMtMjA6KjoqIHwg VFlQRTU6VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAteGtsLXRvcHMyMAotKwlleGl0IDs7Ci0r ICAgICo6VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMjAKLSsJZXhpdCA7 OwotKyAgICAqOklUUzoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi1pdHMKLSsJZXhpdCA7Owot KyAgICBTRUk6KjoqOlNFSVVYKQotKyAgICAgICAgZWNobyBtaXBzLXNlaS1zZWl1eCR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkRyYWdvbkZseToqOiopCi0rCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzL1stKF0uKi8vJ2AKLSsJZXhpdCA7OwotKyAgICAqOipWTVM6KjoqKQotKyAgICAJVU5BTUVf TUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5F fSIgaW4KLSsJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgOyBleGl0IDs7Ci0rCSAgICBJKikg ZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7Ci0rCSAgICBWKikgZWNobyB2YXgtZGVjLXZtcyA7 IGV4aXQgOzsKLSsJZXNhYyA7OwotKyAgICAqOlhFTklYOio6U3lzVikKLSsJZWNobyBpMzg2LXBj LXhlbml4Ci0rCWV4aXQgOzsKLSsgICAgaSo4Njpza3lvczoqOiopCi0rCWVjaG8gJHtVTkFNRV9N QUNISU5FfS1wYy1za3lvc2BlY2hvICR7VU5BTUVfUkVMRUFTRX1gIHwgc2VkIC1lICdzLyAuKiQv LycKLSsJZXhpdCA7OwotKyAgICBpKjg2OnJkb3M6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElO RX0tcGMtcmRvcwotKwlleGl0IDs7Ci0rZXNhYwotKwotKyNlY2hvICcoTm8gdW5hbWUgY29tbWFu ZCBvciB1bmFtZSBvdXRwdXQgbm90IHJlY29nbml6ZWQuKScgMT4mMgotKyNlY2hvICIke1VOQU1F X01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lP Tn0iIDE+JjIKLSsKLStldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rY2F0ID4kZHVtbXkuYyA8PEVP RgotKyNpZmRlZiBfU0VRVUVOVF8KLSsjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotKyMgaW5jbHVk ZSA8c3lzL3V0c25hbWUuaD4KLSsjZW5kaWYKLSttYWluICgpCi0rewotKyNpZiBkZWZpbmVkIChz b255KQotKyNpZiBkZWZpbmVkIChNSVBTRUIpCi0rICAvKiBCRkQgd2FudHMgImJzZCIgaW5zdGVh ZCBvZiAibmV3c29zIi4gIFBlcmhhcHMgQkZEIHNob3VsZCBiZSBjaGFuZ2VkLAotKyAgICAgSSBk b24ndCBrbm93Li4uLiAgKi8KLSsgIHByaW50ZiAoIm1pcHMtc29ueS1ic2RcbiIpOyBleGl0ICgw KTsKLSsjZWxzZQotKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KLSsgIHByaW50ZiAoIm02OGstc29u eS1uZXdzb3Mlc1xuIiwKLSsjaWZkZWYgTkVXU09TNAotKyAgICAgICAgICAiNCIKLSsjZWxzZQot KwkgICIiCi0rI2VuZGlmCi0rICAgICAgICAgKTsgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rI2VuZGlm Ci0rCi0rI2lmIGRlZmluZWQgKF9fYXJtKSAmJiBkZWZpbmVkIChfX2Fjb3JuKSAmJiBkZWZpbmVk IChfX3VuaXgpCi0rICBwcmludGYgKCJhcm0tYWNvcm4tcmlzY2l4XG4iKTsgZXhpdCAoMCk7Ci0r I2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKGhwMzAwKSAmJiAhZGVmaW5lZCAoaHB1eCkKLSsgIHBy aW50ZiAoIm02OGstaHAtYnNkXG4iKTsgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rCi0rI2lmIGRlZmlu ZWQgKE5lWFQpCi0rI2lmICFkZWZpbmVkIChfX0FSQ0hJVEVDVFVSRV9fKQotKyNkZWZpbmUgX19B UkNISVRFQ1RVUkVfXyAibTY4ayIKLSsjZW5kaWYKLSsgIGludCB2ZXJzaW9uOwotKyAgdmVyc2lv bj1gKGhvc3RpbmZvIHwgc2VkIC1uICdzLy4qTmVYVCBNYWNoIFwoWzAtOV0qXCkuKi9cMS9wJykg Mj4vZGV2L251bGxgOwotKyAgaWYgKHZlcnNpb24gPCA0KQotKyAgICBwcmludGYgKCIlcy1uZXh0 LW5leHRzdGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNpb24pOwotKyAgZWxzZQotKyAg ICBwcmludGYgKCIlcy1uZXh0LW9wZW5zdGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNp b24pOwotKyAgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKE1VTFRJTUFYKSB8 fCBkZWZpbmVkIChuMTYpCi0rI2lmIGRlZmluZWQgKFVNQVhWKQotKyAgcHJpbnRmICgibnMzMmst ZW5jb3JlLXN5c3ZcbiIpOyBleGl0ICgwKTsKLSsjZWxzZQotKyNpZiBkZWZpbmVkIChDTVUpCi0r ICBwcmludGYgKCJuczMyay1lbmNvcmUtbWFjaFxuIik7IGV4aXQgKDApOwotKyNlbHNlCi0rICBw cmludGYgKCJuczMyay1lbmNvcmUtYnNkXG4iKTsgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rI2VuZGlm Ci0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKF9fMzg2QlNEX18pCi0rICBwcmludGYgKCJpMzg2 LXBjLWJzZFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChzZXF1ZW50 KQotKyNpZiBkZWZpbmVkIChpMzg2KQotKyAgcHJpbnRmICgiaTM4Ni1zZXF1ZW50LWR5bml4XG4i KTsgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQgKG5zMzIwMDApCi0rICBwcmludGYg KCJuczMyay1zZXF1ZW50LWR5bml4XG4iKTsgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rI2VuZGlmCi0r Ci0rI2lmIGRlZmluZWQgKF9TRVFVRU5UXykKLSsgICAgc3RydWN0IHV0c25hbWUgdW47Ci0rCi0r ICAgIHVuYW1lKCZ1bik7Ci0rCi0rICAgIGlmIChzdHJuY21wKHVuLnZlcnNpb24sICJWMiIsIDIp ID09IDApIHsKLSsJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDJcbiIpOyBleGl0ICgwKTsKLSsg ICAgfQotKyAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjEiLCAyKSA9PSAwKSB7IC8qIFhY WCBpcyBWMSBjb3JyZWN0PyAqLwotKwlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MVxuIik7IGV4 aXQgKDApOwotKyAgICB9Ci0rICAgIHByaW50ZiAoImkzODYtc2VxdWVudC1wdHhcbiIpOyBleGl0 ICgwKTsKLSsKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAodmF4KQotKyMgaWYgIWRlZmluZWQg KHVsdHJpeCkKLSsjICBpbmNsdWRlIDxzeXMvcGFyYW0uaD4KLSsjICBpZiBkZWZpbmVkIChCU0Qp Ci0rIyAgIGlmIEJTRCA9PSA0MwotKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zXG4iKTsg ZXhpdCAoMCk7Ci0rIyAgIGVsc2UKLSsjICAgIGlmIEJTRCA9PSAxOTkwMDYKLSsgICAgICBwcmlu dGYgKCJ2YXgtZGVjLWJzZDQuM3Jlbm9cbiIpOyBleGl0ICgwKTsKLSsjICAgIGVsc2UKLSsgICAg ICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOwotKyMgICAgZW5kaWYKLSsjICAg ZW5kaWYKLSsjICBlbHNlCi0rICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7 Ci0rIyAgZW5kaWYKLSsjIGVsc2UKLSsgICAgcHJpbnRmICgidmF4LWRlYy11bHRyaXhcbiIpOyBl eGl0ICgwKTsKLSsjIGVuZGlmCi0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKGFsbGlhbnQpICYm IGRlZmluZWQgKGk4NjApCi0rICBwcmludGYgKCJpODYwLWFsbGlhbnQtYnNkXG4iKTsgZXhpdCAo MCk7Ci0rI2VuZGlmCi0rCi0rICBleGl0ICgxKTsKLSt9Ci0rRU9GCi0rCi0rJENDX0ZPUl9CVUlM RCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAg JiYKLSsJeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9Ci0rCi0rIyBBcG9sbG9zIHB1dCB0 aGUgc3lzdGVtIHR5cGUgaW4gdGhlIGVudmlyb25tZW50LgotKwotK3Rlc3QgLWQgL3Vzci9hcG9s bG8gJiYgeyBlY2hvICR7SVNQfS1hcG9sbG8tJHtTWVNUWVBFfTsgZXhpdDsgfQotKwotKyMgQ29u dmV4IHZlcnNpb25zIHRoYXQgcHJlZGF0ZSB1bmFtZSBjYW4gdXNlIGdldHN5c2luZm8oMSkKLSsK LStpZiBbIC14IC91c3IvY29udmV4L2dldHN5c2luZm8gXQotK3RoZW4KLSsgICAgY2FzZSBgZ2V0 c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KLSsgICAgYzEqKQotKwllY2hvIGMxLWNvbnZleC1ic2QK LSsJZXhpdCA7OwotKyAgICBjMiopCi0rCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYwotKwl0 aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKLSsJZWxzZSBlY2hvIGMyLWNvbnZleC1ic2QKLSsJZmkK LSsJZXhpdCA7OwotKyAgICBjMzQqKQotKwllY2hvIGMzNC1jb252ZXgtYnNkCi0rCWV4aXQgOzsK LSsgICAgYzM4KikKLSsJZWNobyBjMzgtY29udmV4LWJzZAotKwlleGl0IDs7Ci0rICAgIGM0KikK LSsJZWNobyBjNC1jb252ZXgtYnNkCi0rCWV4aXQgOzsKLSsgICAgZXNhYwotK2ZpCi0rCi0rY2F0 ID4mMiA8PEVPRgotKyQwOiB1bmFibGUgdG8gZ3Vlc3Mgc3lzdGVtIHR5cGUKLSsKLStUaGlzIHNj cmlwdCwgbGFzdCBtb2RpZmllZCAkdGltZXN0YW1wLCBoYXMgZmFpbGVkIHRvIHJlY29nbml6ZQot K3RoZSBvcGVyYXRpbmcgc3lzdGVtIHlvdSBhcmUgdXNpbmcuIEl0IGlzIGFkdmlzZWQgdGhhdCB5 b3UKLStkb3dubG9hZCB0aGUgbW9zdCB1cCB0byBkYXRlIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBz Y3JpcHRzIGZyb20KLSsKLSsgIGh0dHA6Ly9zYXZhbm5haC5nbnUub3JnL2NnaS1iaW4vdmlld2N2 cy8qY2hlY2tvdXQqL2NvbmZpZy9jb25maWcvY29uZmlnLmd1ZXNzCi0rYW5kCi0rICBodHRwOi8v c2F2YW5uYWguZ251Lm9yZy9jZ2ktYmluL3ZpZXdjdnMvKmNoZWNrb3V0Ki9jb25maWcvY29uZmln L2NvbmZpZy5zdWIKLSsKLStJZiB0aGUgdmVyc2lvbiB5b3UgcnVuICgkMCkgaXMgYWxyZWFkeSB1 cCB0byBkYXRlLCBwbGVhc2UKLStzZW5kIHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9y bWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQotK3BlcnRpbmVudCB0byA8Y29uZmlnLXBhdGNoZXNA Z251Lm9yZz4gaW4gb3JkZXIgdG8gcHJvdmlkZSB0aGUgbmVlZGVkCi0raW5mb3JtYXRpb24gdG8g aGFuZGxlIHlvdXIgc3lzdGVtLgotKwotK2NvbmZpZy5ndWVzcyB0aW1lc3RhbXAgPSAkdGltZXN0 YW1wCi0rCi0rdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25v d25gCi0rdW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25g Ci0rdW5hbWUgLXMgPSBgKHVuYW1lIC1zKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0r dW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rCi0r L3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91c3IvYmluL3VuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsv YmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGxgCi0rCi0raG9z dGluZm8gICAgICAgICAgICAgICA9IGAoaG9zdGluZm8pIDI+L2Rldi9udWxsYAotKy9iaW4vdW5p dmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsYAotKy91c3IvYmlu L2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsYAotKy9iaW4v YXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251bGxgCi0rL3Vzci9iaW4v b3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGxgCi0rL3Vzci9j b252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGxg Ci0rCi0rVU5BTUVfTUFDSElORSA9ICR7VU5BTUVfTUFDSElORX0KLStVTkFNRV9SRUxFQVNFID0g JHtVTkFNRV9SRUxFQVNFfQotK1VOQU1FX1NZU1RFTSAgPSAke1VOQU1FX1NZU1RFTX0KLStVTkFN RV9WRVJTSU9OID0gJHtVTkFNRV9WRVJTSU9OfQotK0VPRgotKwotK2V4aXQgMQotKwotKyMgTG9j YWwgdmFyaWFibGVzOgotKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1l LXN0YW1wKQotKyMgdGltZS1zdGFtcC1zdGFydDogInRpbWVzdGFtcD0nIgotKyMgdGltZS1zdGFt cC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkIgotKyMgdGltZS1zdGFtcC1lbmQ6ICInIgotKyMgRW5k OgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuc3ViIHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvY29uZmlnLnN1YgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZp Zy9jb25maWcuc3ViCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jb25maWcuc3ViCTIwMDktMDUtMDYgMDE6MzE6NTAuMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE2NTggQEAKLSsjISAvYmluL3NoCi0rIyBDb25maWd1 cmF0aW9uIHZhbGlkYXRpb24gc3Vicm91dGluZSBzY3JpcHQuCi0rIyAgIENvcHlyaWdodCAoQykg MTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLSsjICAgMjAw MCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOAotKyMgICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSt0aW1lc3RhbXA9JzIwMDgtMDEtMTYn Ci0rCi0rIyBUaGlzIGZpbGUgaXMgKGluIHByaW5jaXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29m dHdhcmUuCi0rIyBUaGUgcHJlc2VuY2Ugb2YgYSBtYWNoaW5lIGluIHRoaXMgZmlsZSBzdWdnZXN0 cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJlCi0rIyBjYW4gaGFuZGxlIHRoYXQgbWFjaGluZS4gIEl0 IGRvZXMgbm90IGltcGx5IEFMTCBHTlUgc29mdHdhcmUgY2FuLgotKyMKLSsjIFRoaXMgZmlsZSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0r IyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh cmUKLSsjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BCi0rIyAwMjExMC0xMzAxLCBVU0EuCi0rIwotKyMgQXMgYSBzcGVjaWFsIGV4 Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQotKyMgZGlz dHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCi0r IyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5j bHVkZSBpdCB1bmRlcgotKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVz ZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgotKwotKwotKyMgUGxlYXNlIHNlbmQgcGF0 Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uICBTdWJtaXQgYSBjb250ZXh0Ci0rIyBk aWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBDaGFuZ2VMb2cgZW50cnkuCi0rIwotKyMgQ29u ZmlndXJhdGlvbiBzdWJyb3V0aW5lIHRvIHZhbGlkYXRlIGFuZCBjYW5vbmljYWxpemUgYSBjb25m aWd1cmF0aW9uIHR5cGUuCi0rIyBTdXBwbHkgdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIHR5 cGUgYXMgYW4gYXJndW1lbnQuCi0rIyBJZiBpdCBpcyBpbnZhbGlkLCB3ZSBwcmludCBhbiBlcnJv ciBtZXNzYWdlIG9uIHN0ZGVyciBhbmQgZXhpdCB3aXRoIGNvZGUgMS4KLSsjIE90aGVyd2lzZSwg d2UgcHJpbnQgdGhlIGNhbm9uaWNhbCBjb25maWcgdHlwZSBvbiBzdGRvdXQgYW5kIHN1Y2NlZWQu Ci0rCi0rIyBUaGlzIGZpbGUgaXMgc3VwcG9zZWQgdG8gYmUgdGhlIHNhbWUgZm9yIGFsbCBHTlUg cGFja2FnZXMKLSsjIGFuZCByZWNvZ25pemUgYWxsIHRoZSBDUFUgdHlwZXMsIHN5c3RlbSB0eXBl cyBhbmQgYWxpYXNlcwotKyMgdGhhdCBhcmUgbWVhbmluZ2Z1bCB3aXRoICphbnkqIEdOVSBzb2Z0 d2FyZS4KLSsjIEVhY2ggcGFja2FnZSBpcyByZXNwb25zaWJsZSBmb3IgcmVwb3J0aW5nIHdoaWNo IHZhbGlkIGNvbmZpZ3VyYXRpb25zCi0rIyBpdCBkb2VzIG5vdCBzdXBwb3J0LiAgVGhlIHVzZXIg c2hvdWxkIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gKLSsjIGEgZmFpbHVyZSB0byBzdXBwb3J0IGEg dmFsaWQgY29uZmlndXJhdGlvbiBmcm9tIGEgbWVhbmluZ2xlc3MKLSsjIGNvbmZpZ3VyYXRpb24u Ci0rCi0rIyBUaGUgZ29hbCBvZiB0aGlzIGZpbGUgaXMgdG8gbWFwIGFsbCB0aGUgdmFyaW91cyB2 YXJpYXRpb25zIG9mIGEgZ2l2ZW4KLSsjIG1hY2hpbmUgc3BlY2lmaWNhdGlvbiBpbnRvIGEgc2lu Z2xlIHNwZWNpZmljYXRpb24gaW4gdGhlIGZvcm06Ci0rIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVIt T1BFUkFUSU5HX1NZU1RFTQotKyMgb3IgaW4gc29tZSBjYXNlcywgdGhlIG5ld2VyIGZvdXItcGFy dCBmb3JtOgotKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVN Ci0rIyBJdCBpcyB3cm9uZyB0byBlY2hvIGFueSBvdGhlciB0eXBlIG9mIHNwZWNpZmljYXRpb24u Ci0rCi0rbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCi0rCi0rdXNhZ2U9IlwKLStV c2FnZTogJDAgW09QVElPTl0gQ1BVLU1GUi1PUFNZUwotKyAgICAgICAkMCBbT1BUSU9OXSBBTElB UwotKwotK0Nhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gbmFtZS4KLSsKLStPcGVyYXRpb24g bW9kZXM6Ci0rICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQK LSsgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0 aGVuIGV4aXQKLSsgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhl biBleGl0Ci0rCi0rUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdu dS5vcmc+LiIKLSsKLSt2ZXJzaW9uPSJcCi0rR05VIGNvbmZpZy5zdWIgKCR0aW1lc3RhbXApCi0r Ci0rQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4 LCAxOTk5LCAyMDAwLCAyMDAxLAotKzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rVGhpcyBpcyBmcmVlIHNv ZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMg Tk8KLSt3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0rCi0raGVscD0iCi0rVHJ5IFxgJG1lIC0taGVscCcg Zm9yIG1vcmUgaW5mb3JtYXRpb24uIgotKwotKyMgUGFyc2UgY29tbWFuZCBsaW5lCi0rd2hpbGUg dGVzdCAkIyAtZ3QgMCA7IGRvCi0rICBjYXNlICQxIGluCi0rICAgIC0tdGltZS1zdGFtcCB8IC0t dGltZSogfCAtdCApCi0rICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OwotKyAgICAt LXZlcnNpb24gfCAtdiApCi0rICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKLSsgICAg LS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OwotKyAg ICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKLSsgICAgICAgc2hpZnQ7IGJyZWFr IDs7Ci0rICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KLSsgICAgICAgYnJlYWsgOzsKLSsg ICAgLSogKQotKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiCi0rICAg ICAgIGV4aXQgMSA7OwotKwotKyAgICAqbG9jYWwqKQotKyAgICAgICAjIEZpcnN0IHBhc3MgdGhy b3VnaCBhbnkgbG9jYWwgbWFjaGluZSB0eXBlcy4KLSsgICAgICAgZWNobyAkMQotKyAgICAgICBl eGl0IDs7Ci0rCi0rICAgICogKQotKyAgICAgICBicmVhayA7OwotKyAgZXNhYwotK2RvbmUKLSsK LStjYXNlICQjIGluCi0rIDApIGVjaG8gIiRtZTogbWlzc2luZyBhcmd1bWVudCRoZWxwIiA+JjIK LSsgICAgZXhpdCAxOzsKLSsgMSkgOzsKLSsgKikgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVu dHMkaGVscCIgPiYyCi0rICAgIGV4aXQgMTs7Ci0rZXNhYwotKwotKyMgU2VwYXJhdGUgd2hhdCB0 aGUgdXNlciBnYXZlIGludG8gQ1BVLUNPTVBBTlkgYW5kIE9TIG9yIEtFUk5FTC1PUyAoaWYgYW55 KS4KLSsjIEhlcmUgd2UgbXVzdCByZWNvZ25pemUgYWxsIHRoZSB2YWxpZCBLRVJORUwtT1MgY29t YmluYXRpb25zLgotK21heWJlX29zPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1b Xi1dKlwpJC9cMi8nYAotK2Nhc2UgJG1heWJlX29zIGluCi0rICBudG8tcW54KiB8IGxpbnV4LWdu dSogfCBsaW51eC1kaWV0bGliYyB8IGxpbnV4LW5ld2xpYiogfCBsaW51eC11Y2xpYmMqIHwgXAot KyAgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1nbnUqIHwga2ZyZWVic2QqLWdudSogfCBrbmV0 YnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUqIHwgXAotKyAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCog fCBydG1rLW5vdmEqKQotKyAgICBvcz0tJG1heWJlX29zCi0rICAgIGJhc2ljX21hY2hpbmU9YGVj aG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wxLydgCi0rICAgIDs7Ci0r ICAqKQotKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzLy1bXi1dKiQvLydgCi0r ICAgIGlmIFsgJGJhc2ljX21hY2hpbmUgIT0gJDEgXQotKyAgICB0aGVuIG9zPWBlY2hvICQxIHwg c2VkICdzLy4qLS8tLydgCi0rICAgIGVsc2Ugb3M9OyBmaQotKyAgICA7OwotK2VzYWMKLSsKLSsj IyMgTGV0J3MgcmVjb2duaXplIGNvbW1vbiBtYWNoaW5lcyBhcyBub3QgYmVpbmcgb3BlcmF0aW5n IHN5c3RlbXMgc28KLSsjIyMgdGhhdCB0aGluZ3MgbGlrZSBjb25maWcuc3ViIGRlY3N0YXRpb24t MzEwMCB3b3JrLiAgV2UgYWxzbwotKyMjIyByZWNvZ25pemUgc29tZSBtYW51ZmFjdHVyZXJzIGFz IG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcywgc28gd2UKLSsjIyMgY2FuIHByb3ZpZGUgZGVm YXVsdCBvcGVyYXRpbmcgc3lzdGVtcyBiZWxvdy4KLStjYXNlICRvcyBpbgotKwktc3VuKm9zKikK LSsJCSMgUHJldmVudCBmb2xsb3dpbmcgY2xhdXNlIGZyb20gaGFuZGxpbmcgdGhpcyBpbnZhbGlk IGlucHV0LgotKwkJOzsKLSsJLWRlYyogfCAtbWlwcyogfCAtc2VxdWVudCogfCAtZW5jb3JlKiB8 IC1wYzUzMiogfCAtc2dpKiB8IC1zb255KiB8IFwKLSsJLWF0dCogfCAtNzMwMCogfCAtMzMwMCog fCAtZGVsdGEqIHwgLW1vdG9yb2xhKiB8IC1zdW5bMjM0XSogfCBcCi0rCS11bmljb20qIHwgLWli bSogfCAtbmV4dCB8IC1ocCB8IC1pc2kqIHwgLWFwb2xsbyB8IC1hbHRvcyogfCBcCi0rCS1jb252 ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2MDAqIHwgLTMxMDAqIHwgLWhpdGFj aGkqIHxcCi0rCS1jWzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwgLWNyZHMgfCAtb21yb24qIHwg LWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCi0rCS1oYXJyaXMgfCAtZG9scGhpbiB8IC1oaWdobGV2 ZWwgfCAtZ291bGQgfCAtY2JtIHwgLW5zIHwgLW1hc3Njb21wIHwgXAotKwktYXBwbGUgfCAtYXhp cyB8IC1rbnV0aCB8IC1jcmF5KQotKwkJb3M9Ci0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7Owot Kwktc2ltIHwgLWNpc2NvIHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkKLSsJCW9zPQotKwkJYmFz aWNfbWFjaGluZT0kMQotKwkJOzsKLSsJLXNjb3V0KQotKwkJOzsKLSsJLXdycykKLSsJCW9zPS12 eHdvcmtzCi0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKwktY2hvcnVzb3MqKQotKwkJb3M9 LWNob3J1c29zCi0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKyAJLWNob3J1c3JkYikKLSsg CQlvcz0tY2hvcnVzcmRiCi0rCQliYXNpY19tYWNoaW5lPSQxCi0rIAkJOzsKLSsJLWhpdXgqKQot KwkJb3M9LWhpdXh3ZTIKLSsJCTs7Ci0rCS1zY282KQotKwkJb3M9LXNjbzV2NgotKwkJYmFzaWNf bWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLXNj bzUpCi0rCQlvcz0tc2NvMy4ydjUKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUg J3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY280KQotKwkJb3M9LXNjbzMuMnY0Ci0rCQli YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7Owot Kwktc2NvMy4yLls0LTldKikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy9zY28zLjIuL3Nj bzMuMnYvJ2AKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYt cGMvJ2AKLSsJCTs7Ci0rCS1zY28zLjJ2WzQtOV0qKQotKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lv biBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBz ZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY281djYqKQotKwkJIyBEb24ndCBm b3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLSsJCWJhc2ljX21hY2hpbmU9 YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY28qKQotKwkJ b3M9LXNjbzMuMnYyCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4q Lzg2LXBjLydgCi0rCQk7OwotKwktdWRrKikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBz ZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1pc2MpCi0rCQlvcz0taXNjMi4yCi0r CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7 OwotKwktY2xpeCopCi0rCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaW50ZXJncmFwaAotKwkJOzsK LSsJLWlzYyopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2 LXBjLydgCi0rCQk7OwotKwktbHlueCopCi0rCQlvcz0tbHlueG9zCi0rCQk7OwotKwktcHR4KikK LSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtc2VxdWVudC8n YAotKwkJOzsKLSsJLXdpbmRvd3NudCopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvd2lu ZG93c250L3dpbm50LydgCi0rCQk7OwotKwktcHNvcyopCi0rCQlvcz0tcHNvcwotKwkJOzsKLSsJ LW1pbnQgfCAtbWludFswLTldKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQotKwkJb3M9 LW1pbnQKLSsJCTs7Ci0rZXNhYwotKwotKyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4gQ1BV LUNPTVBBTlkgY29tYmluYXRpb25zLgotK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KLSsJIyBSZWNv Z25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZS4KLSsJIyBTb21l IGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxv dy4KLSsJMTc1MGEgfCA1ODAgXAotKwl8IGEyOWsgXAotKwl8IGFscGhhIHwgYWxwaGFldls0LThd IHwgYWxwaGFldjU2IHwgYWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3XSBcCi0rCXwgYWxwaGE2 NCB8IGFscGhhNjRldls0LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFscGhh NjRwY2E1WzY3XSBcCi0rCXwgYW0zM18yLjAgXAotKwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwg YXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwKLSsJ fCBiZmluIFwKLSsJfCBjNHggfCBjbGlwcGVyIFwKLSsJfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRz cDE2eHggXAotKwl8IGZpZG8gfCBmcjMwIHwgZnJ2IFwKLSsJfCBoODMwMCB8IGg4NTAwIHwgaHBw YSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAotKwl8IGkz NzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAotKwl8IGlwMmsgfCBpcTIwMDAgXAotKwl8IG0zMmMg fCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAotKwl8IG1heHEgfCBtYiB8 IG1pY3JvYmxhemUgfCBtY29yZSB8IG1lcCBcCi0rCXwgbWlwcyB8IG1pcHNiZSB8IG1pcHNlYiB8 IG1pcHNlbCB8IG1pcHNsZSBcCi0rCXwgbWlwczE2IFwKLSsJfCBtaXBzNjQgfCBtaXBzNjRlbCBc Ci0rCXwgbWlwczY0dnIgfCBtaXBzNjR2cmVsIFwKLSsJfCBtaXBzNjRvcmlvbiB8IG1pcHM2NG9y aW9uZWwgXAotKwl8IG1pcHM2NHZyNDEwMCB8IG1pcHM2NHZyNDEwMGVsIFwKLSsJfCBtaXBzNjR2 cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBcCi0rCXwgbWlwczY0dnI1MDAwIHwgbWlwczY0dnI1MDAw ZWwgXAotKwl8IG1pcHM2NHZyNTkwMCB8IG1pcHM2NHZyNTkwMGVsIFwKLSsJfCBtaXBzaXNhMzIg fCBtaXBzaXNhMzJlbCBcCi0rCXwgbWlwc2lzYTMycjIgfCBtaXBzaXNhMzJyMmVsIFwKLSsJfCBt aXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBcCi0rCXwgbWlwc2lzYTY0cjIgfCBtaXBzaXNhNjRyMmVs IFwKLSsJfCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFlbCBcCi0rCXwgbWlwc2lzYTY0c3I3 MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwKLSsJfCBtaXBzdHgzOSB8IG1pcHN0eDM5ZWwgXAotKwl8 IG1uMTAyMDAgfCBtbjEwMzAwIFwKLSsJfCBtdCBcCi0rCXwgbXNwNDMwIFwKLSsJfCBuaW9zIHwg bmlvczIgXAotKwl8IG5zMTZrIHwgbnMzMmsgXAotKwl8IG9yMzIgXAotKwl8IHBkcDEwIHwgcGRw MTEgfCBwaiB8IHBqbCBcCi0rCXwgcG93ZXJwYyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwg cG93ZXJwY2xlIHwgcHBjYmUgXAotKwl8IHB5cmFtaWQgXAotKwl8IHNjb3JlIFwKLSsJfCBzaCB8 IHNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzIzXWUgfCBzaFszNF1lYiB8IHNoZWIgfCBzaGJlIHwg c2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNlbGUgXAotKwl8IHNoNjQgfCBzaDY0bGUgXAotKwl8IHNw YXJjIHwgc3BhcmM2NCB8IHNwYXJjNjRiIHwgc3BhcmM2NHYgfCBzcGFyYzg2eCB8IHNwYXJjbGV0 IHwgc3BhcmNsaXRlIFwKLSsJfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2 OXYgXAotKwl8IHNwdSB8IHN0cm9uZ2FybSBcCi0rCXwgdGFob2UgfCB0aHVtYiB8IHRpYzR4IHwg dGljODAgfCB0cm9uIFwKLSsJfCB2ODUwIHwgdjg1MGUgXAotKwl8IHdlMzJrIFwKLSsJfCB4ODYg fCB4YzE2eCB8IHhzY2FsZSB8IHhzY2FsZWVbYmxdIHwgeHN0b3JteTE2IHwgeHRlbnNhIFwKLSsJ fCB6OGspCi0rCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KLSsJCTs7Ci0r CW02ODExIHwgbTY4aGMxMSB8IG02ODEyIHwgbTY4aGMxMikKLSsJCSMgTW90b3JvbGEgNjhIQzEx LzEyLgotKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0rCQlvcz0tbm9u ZQotKwkJOzsKLSsJbTg4MTEwIHwgbTY4MFsxMjM0Nl0wIHwgbTY4Mz8yIHwgbTY4MzYwIHwgbTUy MDAgfCB2NzAgfCB3NjUgfCB6OGspCi0rCQk7OwotKwltczEpCi0rCQliYXNpY19tYWNoaW5lPW10 LXVua25vd24KLSsJCTs7Ci0rCi0rCSMgV2UgdXNlIGBwYycgcmF0aGVyIHRoYW4gYHVua25vd24n Ci0rCSMgYmVjYXVzZSAoMSkgdGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAotKwkj ICgyKSB0aGUgd29yZCAidW5rbm93biIgdGVuZHMgdG8gY29uZnVzZSBiZWdpbm5pbmcgdXNlcnMu Ci0rCWkqODYgfCB4ODZfNjQpCi0rCSAgYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS1wYwot KwkgIDs7Ci0rCSMgT2JqZWN0IGlmIG1vcmUgdGhhbiBvbmUgY29tcGFueSBuYW1lIHdvcmQuCi0r CSotKi0qKQotKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxg JGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCi0rCQlleGl0IDEKLSsJCTs7Ci0r CSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aCBjb21wYW55IG5hbWUuCi0rCTU4 MC0qIFwKLSsJfCBhMjlrLSogXAotKwl8IGFscGhhLSogfCBhbHBoYWV2WzQtOF0tKiB8IGFscGhh ZXY1Ni0qIHwgYWxwaGFldjZbNzhdLSogXAotKwl8IGFscGhhNjQtKiB8IGFscGhhNjRldls0LThd LSogfCBhbHBoYTY0ZXY1Ni0qIHwgYWxwaGE2NGV2Nls3OF0tKiBcCi0rCXwgYWxwaGFwY2E1WzY3 XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCi0rCXwgYXJtLSogIHwgYXJtYmUtKiB8 IGFybWxlLSogfCBhcm1lYi0qIHwgYXJtdiotKiBcCi0rCXwgYXZyLSogfCBhdnIzMi0qIFwKLSsJ fCBiZmluLSogfCBiczIwMDAtKiBcCi0rCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwg YzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBjNngtKiBcCi0rCXwgY2xpcHBlci0qIHwgY3JheW52 LSogfCBjeWRyYS0qIFwKLSsJfCBkMTB2LSogfCBkMzB2LSogfCBkbHgtKiBcCi0rCXwgZWx4c2kt KiBcCi0rCXwgZjMwWzAxXS0qIHwgZjcwMC0qIHwgZmlkby0qIHwgZnIzMC0qIHwgZnJ2LSogfCBm eDgwLSogXAotKwl8IGg4MzAwLSogfCBoODUwMC0qIFwKLSsJfCBocHBhLSogfCBocHBhMS5bMDFd LSogfCBocHBhMi4wLSogfCBocHBhMi4wW253XS0qIHwgaHBwYTY0LSogXAotKwl8IGkqODYtKiB8 IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQtKiBcCi0rCXwgaXAyay0qIHwgaXEyMDAwLSogXAotKwl8 IG0zMmMtKiB8IG0zMnItKiB8IG0zMnJsZS0qIFwKLSsJfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2 XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAotKwl8IG04ODExMC0qIHwgbTg4 ay0qIHwgbWF4cS0qIHwgbWNvcmUtKiBcCi0rCXwgbWlwcy0qIHwgbWlwc2JlLSogfCBtaXBzZWIt KiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAotKwl8IG1pcHMxNi0qIFwKLSsJfCBtaXBzNjQtKiB8 IG1pcHM2NGVsLSogXAotKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2cmVsLSogXAotKwl8IG1pcHM2 NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAotKwl8IG1pcHM2NHZyNDEwMC0qIHwgbWlwczY0 dnI0MTAwZWwtKiBcCi0rCXwgbWlwczY0dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKLSsJ fCBtaXBzNjR2cjUwMDAtKiB8IG1pcHM2NHZyNTAwMGVsLSogXAotKwl8IG1pcHM2NHZyNTkwMC0q IHwgbWlwczY0dnI1OTAwZWwtKiBcCi0rCXwgbWlwc2lzYTMyLSogfCBtaXBzaXNhMzJlbC0qIFwK LSsJfCBtaXBzaXNhMzJyMi0qIHwgbWlwc2lzYTMycjJlbC0qIFwKLSsJfCBtaXBzaXNhNjQtKiB8 IG1pcHNpc2E2NGVsLSogXAotKwl8IG1pcHNpc2E2NHIyLSogfCBtaXBzaXNhNjRyMmVsLSogXAot Kwl8IG1pcHNpc2E2NHNiMS0qIHwgbWlwc2lzYTY0c2IxZWwtKiBcCi0rCXwgbWlwc2lzYTY0c3I3 MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCi0rCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwt KiBcCi0rCXwgbW1peC0qIFwKLSsJfCBtdC0qIFwKLSsJfCBtc3A0MzAtKiBcCi0rCXwgbmlvcy0q IHwgbmlvczItKiBcCi0rCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCi0r CXwgb3Jpb24tKiBcCi0rCXwgcGRwMTAtKiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0q IHwgcG93ZXItKiBcCi0rCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0q IHwgcG93ZXJwY2xlLSogfCBwcGNiZS0qIFwKLSsJfCBweXJhbWlkLSogXAotKwl8IHJvbXAtKiB8 IHJzNjAwMC0qIFwKLSsJfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzI0XWEtKiB8IHNoWzIzXWUt KiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAotKwl8IHNobGUtKiB8IHNoWzEyMzRd bGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAotKwl8IHNwYXJjLSogfCBzcGFy YzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJjODZ4LSogfCBzcGFyY2xldC0q IFwKLSsJfCBzcGFyY2xpdGUtKiBcCi0rCXwgc3BhcmN2OC0qIHwgc3BhcmN2OS0qIHwgc3BhcmN2 OWItKiB8IHNwYXJjdjl2LSogfCBzdHJvbmdhcm0tKiB8IHN2MS0qIHwgc3g/LSogXAotKwl8IHRh aG9lLSogfCB0aHVtYi0qIFwKLSsJfCB0aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGlj NTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiBcCi0rCXwgdHJvbi0qIFwKLSsJfCB2ODUwLSogfCB2 ODUwZS0qIHwgdmF4LSogXAotKwl8IHdlMzJrLSogXAotKwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4 YzE2eC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxdLSogXAotKwl8IHhzdG9y bXkxNi0qIHwgeHRlbnNhKi0qIFwKLSsJfCB5bXAtKiBcCi0rCXwgejhrLSopCi0rCQk7OwotKwkj IFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQgY29tcGFueSBuYW1lLCB3aXRo IGdsb2IgbWF0Y2guCi0rCXh0ZW5zYSopCi0rCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5l LXVua25vd24KLSsJCTs7Ci0rCSMgUmVjb2duaXplIHRoZSB2YXJpb3VzIG1hY2hpbmUgbmFtZXMg YW5kIGFsaWFzZXMgd2hpY2ggc3RhbmQKLSsJIyBmb3IgYSBDUFUgdHlwZSBhbmQgYSBjb21wYW55 IGFuZCBzb21ldGltZXMgZXZlbiBhbiBPUy4KLSsJMzg2YnNkKQotKwkJYmFzaWNfbWFjaGluZT1p Mzg2LXVua25vd24KLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCTNiMSB8IDczMDAgfCA3MzAwLWF0dCB8 IGF0dC03MzAwIHwgcGM3MzAwIHwgc2FmYXJpIHwgdW5peHBjKQotKwkJYmFzaWNfbWFjaGluZT1t NjgwMDAtYXR0Ci0rCQk7OwotKwkzYiopCi0rCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAotKwkJ OzsKLSsJYTI5a2hpZikKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLSsJCW9zPS11ZGkKLSsJ CTs7Ci0rICAgIAlhYmFjdXMpCi0rCQliYXNpY19tYWNoaW5lPWFiYWN1cy11bmtub3duCi0rCQk7 OwotKwlhZG9iZTY4aykKLSsJCWJhc2ljX21hY2hpbmU9bTY4MDEwLWFkb2JlCi0rCQlvcz0tc2Nv dXQKLSsJCTs7Ci0rCWFsbGlhbnQgfCBmeDgwKQotKwkJYmFzaWNfbWFjaGluZT1meDgwLWFsbGlh bnQKLSsJCTs7Ci0rCWFsdG9zIHwgYWx0b3MzMDY4KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFs dG9zCi0rCQk7OwotKwlhbTI5aykKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1ub25lCi0rCQlvcz0t YnNkCi0rCQk7OwotKwlhbWQ2NCkKLSsJCWJhc2ljX21hY2hpbmU9eDg2XzY0LXBjCi0rCQk7Owot KwlhbWQ2NC0qKQotKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtYGVjaG8gJGJhc2ljX21hY2hpbmUg fCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCWFtZGFobCkKLSsJCWJhc2ljX21hY2hpbmU9 NTgwLWFtZGFobAotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCWFtaWdhIHwgYW1pZ2EtKikKLSsJCWJh c2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0rCQk7OwotKwlhbWlnYW9zIHwgYW1pZ2Fkb3MpCi0r CQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgotKwkJb3M9LWFtaWdhb3MKLSsJCTs7Ci0rCWFt aWdhdW5peCB8IGFtaXgpCi0rCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgotKwkJb3M9LXN5 c3Y0Ci0rCQk7OwotKwlhcG9sbG82OCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KLSsJ CW9zPS1zeXN2Ci0rCQk7OwotKwlhcG9sbG82OGJzZCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1h cG9sbG8KLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWF1eCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1h cHBsZQotKwkJb3M9LWF1eAotKwkJOzsKLSsJYmFsYW5jZSkKLSsJCWJhc2ljX21hY2hpbmU9bnMz Mmstc2VxdWVudAotKwkJb3M9LWR5bml4Ci0rCQk7OwotKwlibGFja2ZpbikKLSsJCWJhc2ljX21h Y2hpbmU9YmZpbi11bmtub3duCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCWJsYWNrZmluLSopCi0r CQliYXNpY19tYWNoaW5lPWJmaW4tYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0q LS8vJ2AKLSsJCW9zPS1saW51eAotKwkJOzsKLSsJYzkwKQotKwkJYmFzaWNfbWFjaGluZT1jOTAt Y3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJY29udmV4LWMxKQotKwkJYmFzaWNfbWFjaGlu ZT1jMS1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNvbnZleC1jMikKLSsJCWJhc2ljX21h Y2hpbmU9YzItY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwljb252ZXgtYzMyKQotKwkJYmFz aWNfbWFjaGluZT1jMzItY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwljb252ZXgtYzM0KQot KwkJYmFzaWNfbWFjaGluZT1jMzQtY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwljb252ZXgt YzM4KQotKwkJYmFzaWNfbWFjaGluZT1jMzgtY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwlj cmF5IHwgajkwKQotKwkJYmFzaWNfbWFjaGluZT1qOTAtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJ OzsKLSsJY3JheW52KQotKwkJYmFzaWNfbWFjaGluZT1jcmF5bnYtY3JheQotKwkJb3M9LXVuaWNv c21wCi0rCQk7OwotKwljcjE2KQotKwkJYmFzaWNfbWFjaGluZT1jcjE2LXVua25vd24KLSsJCW9z PS1lbGYKLSsJCTs7Ci0rCWNyZHMgfCB1bm9zKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWNyZHMK LSsJCTs7Ci0rCWNyaXN2MzIgfCBjcmlzdjMyLSogfCBldHJheGZzKikKLSsJCWJhc2ljX21hY2hp bmU9Y3Jpc3YzMi1heGlzCi0rCQk7OwotKwljcmlzIHwgY3Jpcy0qIHwgZXRyYXgqKQotKwkJYmFz aWNfbWFjaGluZT1jcmlzLWF4aXMKLSsJCTs7Ci0rCWNyeCkKLSsJCWJhc2ljX21hY2hpbmU9Y3J4 LXVua25vd24KLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCWRhMzAgfCBkYTMwLSopCi0rCQliYXNpY19t YWNoaW5lPW02OGstZGEzMAotKwkJOzsKLSsJZGVjc3RhdGlvbiB8IGRlY3N0YXRpb24tMzEwMCB8 IHBtYXggfCBwbWF4LSogfCBwbWluIHwgZGVjMzEwMCB8IGRlY3N0YXRuKQotKwkJYmFzaWNfbWFj aGluZT1taXBzLWRlYwotKwkJOzsKLSsJZGVjc3lzdGVtMTAqIHwgZGVjMTAqKQotKwkJYmFzaWNf bWFjaGluZT1wZHAxMC1kZWMKLSsJCW9zPS10b3BzMTAKLSsJCTs7Ci0rCWRlY3N5c3RlbTIwKiB8 IGRlYzIwKikKLSsJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCi0rCQlvcz0tdG9wczIwCi0rCQk7 OwotKwlkZWx0YSB8IDMzMDAgfCBtb3Rvcm9sYS0zMzAwIHwgbW90b3JvbGEtZGVsdGEgXAotKwkg ICAgICB8IDMzMDAtbW90b3JvbGEgfCBkZWx0YS1tb3Rvcm9sYSkKLSsJCWJhc2ljX21hY2hpbmU9 bTY4ay1tb3Rvcm9sYQotKwkJOzsKLSsJZGVsdGE4OCkKLSsJCWJhc2ljX21hY2hpbmU9bTg4ay1t b3Rvcm9sYQotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwlkamdwcCkKLSsJCWJhc2ljX21hY2hpbmU9 aTU4Ni1wYwotKwkJb3M9LW1zZG9zZGpncHAKLSsJCTs7Ci0rCWRweDIwIHwgZHB4MjAtKikKLSsJ CWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKLSsJCW9zPS1ib3N4Ci0rCQk7OwotKwlkcHgyKiB8 IGRweDIqLWJ1bGwpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAotKwkJb3M9LXN5c3YzCi0r CQk7OwotKwllYm1vbjI5aykKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLSsJCW9zPS1lYm1v bgotKwkJOzsKLSsJZWx4c2kpCi0rCQliYXNpY19tYWNoaW5lPWVseHNpLWVseHNpCi0rCQlvcz0t YnNkCi0rCQk7OwotKwllbmNvcmUgfCB1bWF4IHwgbW1heCkKLSsJCWJhc2ljX21hY2hpbmU9bnMz MmstZW5jb3JlCi0rCQk7OwotKwllczE4MDAgfCBPU0U2OGsgfCBvc2U2OGsgfCBvc2UgfCBPU0Up Ci0rCQliYXNpY19tYWNoaW5lPW02OGstZXJpY3Nzb24KLSsJCW9zPS1vc2UKLSsJCTs7Ci0rCWZ4 MjgwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTg2MC1hbGxpYW50Ci0rCQk7OwotKwlnZW5peCkKLSsJ CWJhc2ljX21hY2hpbmU9bnMzMmstbnMKLSsJCTs7Ci0rCWdtaWNybykKLSsJCWJhc2ljX21hY2hp bmU9dHJvbi1nbWljcm8KLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwlnbzMyKQotKwkJYmFzaWNfbWFj aGluZT1pMzg2LXBjCi0rCQlvcz0tZ28zMgotKwkJOzsKLSsJaDMwNTByKiB8IGhpdXgqKQotKwkJ YmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKLSsJCW9zPS1oaXV4d2UyCi0rCQk7OwotKwlo ODMwMGhtcykKLSsJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQotKwkJb3M9LWhtcwotKwkJ OzsKLSsJaDgzMDB4cmF5KQotKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCi0rCQlvcz0t eHJheQotKwkJOzsKLSsJaDg1MDBobXMpCi0rCQliYXNpY19tYWNoaW5lPWg4NTAwLWhpdGFjaGkK LSsJCW9zPS1obXMKLSsJCTs7Ci0rCWhhcnJpcykKLSsJCWJhc2ljX21hY2hpbmU9bTg4ay1oYXJy aXMKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJaHAzMDAtKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4 ay1ocAotKwkJOzsKLSsJaHAzMDBic2QpCi0rCQliYXNpY19tYWNoaW5lPW02OGstaHAKLSsJCW9z PS1ic2QKLSsJCTs7Ci0rCWhwMzAwaHB1eCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAotKwkJ b3M9LWhwdXgKLSsJCTs7Ci0rCWhwM2s5WzAtOV1bMC05XSB8IGhwOVswLTldWzAtOV0pCi0rCQli YXNpY19tYWNoaW5lPWhwcGExLjAtaHAKLSsJCTs7Ci0rCWhwOWsyWzAtOV1bMC05XSB8IGhwOWsz MVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtaHAKLSsJCTs7Ci0rCWhwOWszWzItOV1b MC05XSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAotKwkJOzsKLSsJaHA5azZbMC05XVswLTld IHwgaHA2WzAtOV1bMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAotKwkJOzsKLSsJ aHA5azdbMC03OV1bMC05XSB8IGhwN1swLTc5XVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1ocHBh MS4xLWhwCi0rCQk7OwotKwlocDlrNzhbMC05XSB8IGhwNzhbMC05XSkKLSsJCSMgRklYTUU6IHJl YWxseSBocHBhMi4wLWhwCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJCTs7Ci0rCWhw OWs4WzY3XTEgfCBocDhbNjddMSB8IGhwOWs4MFsyNF0gfCBocDgwWzI0XSB8IGhwOWs4Wzc4XTkg fCBocDhbNzhdOSB8IGhwOWs4OTMgfCBocDg5MykKLSsJCSMgRklYTUU6IHJlYWxseSBocHBhMi4w LWhwCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJCTs7Ci0rCWhwOWs4WzAtOV1bMTM2 NzldIHwgaHA4WzAtOV1bMTM2NzldKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQk7 OwotKwlocDlrOFswLTldWzAtOV0gfCBocDhbMC05XVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1o cHBhMS4wLWhwCi0rCQk7OwotKwlocHBhLW5leHQpCi0rCQlvcz0tbmV4dHN0ZXAzCi0rCQk7Owot KwlocHBhb3NmKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQlvcz0tb3NmCi0rCQk7 OwotKwlocHBybykKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotKwkJb3M9LXByb2VsZgot KwkJOzsKLSsJaTM3MC1pYm0qIHwgaWJtKikKLSsJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KLSsJ CTs7Ci0rIyBJJ20gbm90IHN1cmUgd2hhdCAiU3lzdjMyIiBtZWFucy4gIFNob3VsZCB0aGlzIGJl IHN5c3YzLjI/Ci0rCWkqODZ2MzIpCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1l ICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1zeXN2MzIKLSsJCTs7Ci0rCWkqODZ2NCopCi0rCQli YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1z eXN2NAotKwkJOzsKLSsJaSo4NnYpCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1l ICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwlpKjg2c29sMikKLSsJCWJh c2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAotKwkJb3M9LXNv bGFyaXMyCi0rCQk7OwotKwlpMzg2bWFjaCkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1tYWNoCi0r CQlvcz0tbWFjaAotKwkJOzsKLSsJaTM4Ni12c3RhIHwgdnN0YSkKLSsJCWJhc2ljX21hY2hpbmU9 aTM4Ni11bmtub3duCi0rCQlvcz0tdnN0YQotKwkJOzsKLSsJaXJpcyB8IGlyaXM0ZCkKLSsJCWJh c2ljX21hY2hpbmU9bWlwcy1zZ2kKLSsJCWNhc2UgJG9zIGluCi0rCQkgICAgLWlyaXgqKQotKwkJ CTs7Ci0rCQkgICAgKikKLSsJCQlvcz0taXJpeDQKLSsJCQk7OwotKwkJZXNhYwotKwkJOzsKLSsJ aXNpNjggfCBpc2kpCi0rCQliYXNpY19tYWNoaW5lPW02OGstaXNpCi0rCQlvcz0tc3lzdgotKwkJ OzsKLSsJbTY4a25vbW11KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLSsJCW9zPS1s aW51eAotKwkJOzsKLSsJbTY4a25vbW11LSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstYGVjaG8g JGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCW9zPS1saW51eAotKwkJOzsK LSsJbTg4ay1vbXJvbiopCi0rCQliYXNpY19tYWNoaW5lPW04OGstb21yb24KLSsJCTs7Ci0rCW1h Z251bSB8IG0zMjMwKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLW1pcHMKLSsJCW9zPS1zeXN2Ci0r CQk7OwotKwltZXJsaW4pCi0rCQliYXNpY19tYWNoaW5lPW5zMzJrLXV0ZWsKLSsJCW9zPS1zeXN2 Ci0rCQk7OwotKwltaW5ndzMyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tbWlu Z3czMgotKwkJOzsKLSsJbWluZ3czMmNlKQotKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgot KwkJb3M9LW1pbmd3MzJjZQotKwkJOzsKLSsJbWluaWZyYW1lKQotKwkJYmFzaWNfbWFjaGluZT1t NjgwMDAtY29udmVyZ2VudAotKwkJOzsKLSsJKm1pbnQgfCAtbWludFswLTldKiB8ICpNaU5UIHwg Kk1pTlRbMC05XSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkKLSsJCW9zPS1taW50Ci0r CQk7OwotKwltaXBzMyotKikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUg fCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgCi0rCQk7OwotKwltaXBzMyopCi0rCQliYXNpY19t YWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8nYC11 bmtub3duCi0rCQk7OwotKwltb25pdG9yKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXJvbTY4awot KwkJb3M9LWNvZmYKLSsJCTs7Ci0rCW1vcnBob3MpCi0rCQliYXNpY19tYWNoaW5lPXBvd2VycGMt dW5rbm93bgotKwkJb3M9LW1vcnBob3MKLSsJCTs7Ci0rCW1zZG9zKQotKwkJYmFzaWNfbWFjaGlu ZT1pMzg2LXBjCi0rCQlvcz0tbXNkb3MKLSsJCTs7Ci0rCW1zMS0qKQotKwkJYmFzaWNfbWFjaGlu ZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9tczEtL210LS8nYAotKwkJOzsKLSsJ bXZzKQotKwkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQotKwkJb3M9LW12cwotKwkJOzsKLSsJbmNy MzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTQ4Ni1uY3IKLSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJ bmV0YnNkMzg2KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KLSsJCW9zPS1uZXRic2QK LSsJCTs7Ci0rCW5ldHdpbmRlcikKLSsJCWJhc2ljX21hY2hpbmU9YXJtdjRsLXJlYmVsCi0rCQlv cz0tbGludXgKLSsJCTs7Ci0rCW5ld3MgfCBuZXdzNzAwIHwgbmV3czgwMCB8IG5ld3M5MDApCi0r CQliYXNpY19tYWNoaW5lPW02OGstc29ueQotKwkJb3M9LW5ld3NvcwotKwkJOzsKLSsJbmV3czEw MDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAzMC1zb255Ci0rCQlvcz0tbmV3c29zCi0rCQk7Owot KwluZXdzLTM2MDAgfCByaXNjLW5ld3MpCi0rCQliYXNpY19tYWNoaW5lPW1pcHMtc29ueQotKwkJ b3M9LW5ld3NvcwotKwkJOzsKLSsJbmVjdjcwKQotKwkJYmFzaWNfbWFjaGluZT12NzAtbmVjCi0r CQlvcz0tc3lzdgotKwkJOzsKLSsJbmV4dCB8IG0qLW5leHQgKQotKwkJYmFzaWNfbWFjaGluZT1t NjhrLW5leHQKLSsJCWNhc2UgJG9zIGluCi0rCQkgICAgLW5leHRzdGVwKiApCi0rCQkJOzsKLSsJ CSAgICAtbnMyKikKLSsJCSAgICAgIG9zPS1uZXh0c3RlcDIKLSsJCQk7OwotKwkJICAgICopCi0r CQkgICAgICBvcz0tbmV4dHN0ZXAzCi0rCQkJOzsKLSsJCWVzYWMKLSsJCTs7Ci0rCW5oMzAwMCkK LSsJCWJhc2ljX21hY2hpbmU9bTY4ay1oYXJyaXMKLSsJCW9zPS1jeHV4Ci0rCQk7OwotKwluaFs0 NV0wMDApCi0rCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCi0rCQlvcz0tY3h1eAotKwkJOzsK LSsJbmluZHk5NjApCi0rCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwKLSsJCW9zPS1uaW5keQot KwkJOzsKLSsJbW9uOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCi0rCQlvcz0tbW9u OTYwCi0rCQk7OwotKwlub25zdG9wdXgpCi0rCQliYXNpY19tYWNoaW5lPW1pcHMtY29tcGFxCi0r CQlvcz0tbm9uc3RvcHV4Ci0rCQk7OwotKwlucDEpCi0rCQliYXNpY19tYWNoaW5lPW5wMS1nb3Vs ZAotKwkJOzsKLSsJbnNyLXRhbmRlbSkKLSsJCWJhc2ljX21hY2hpbmU9bnNyLXRhbmRlbQotKwkJ OzsKLSsJb3A1MG4tKiB8IG9wNjBjLSopCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCi0r CQlvcz0tcHJvZWxmCi0rCQk7OwotKwlvcGVucmlzYyB8IG9wZW5yaXNjLSopCi0rCQliYXNpY19t YWNoaW5lPW9yMzItdW5rbm93bgotKwkJOzsKLSsJb3M0MDApCi0rCQliYXNpY19tYWNoaW5lPXBv d2VycGMtaWJtCi0rCQlvcz0tb3M0MDAKLSsJCTs7Ci0rCU9TRTY4MDAwIHwgb3NlNjgwMDApCi0r CQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgotKwkJb3M9LW9zZQotKwkJOzsKLSsJb3M2 OGspCi0rCQliYXNpY19tYWNoaW5lPW02OGstbm9uZQotKwkJb3M9LW9zNjhrCi0rCQk7OwotKwlw YS1oaXRhY2hpKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKLSsJCW9zPS1oaXV4 d2UyCi0rCQk7OwotKwlwYXJhZ29uKQotKwkJYmFzaWNfbWFjaGluZT1pODYwLWludGVsCi0rCQlv cz0tb3NmCi0rCQk7OwotKwlwYXJpc2MpCi0rCQliYXNpY19tYWNoaW5lPWhwcGEtdW5rbm93bgot KwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlwYXJpc2MtKikKLSsJCWJhc2ljX21hY2hpbmU9aHBwYS1g ZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJb3M9LWxpbnV4Ci0r CQk7OwotKwlwYmQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXR0aQotKwkJOzsKLSsJcGJiKQot KwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0aQotKwkJOzsKLSsJcGM1MzIgfCBwYzUzMi0qKQotKwkJ YmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgotKwkJOzsKLSsJcGM5OCkKLSsJCWJhc2ljX21hY2hp bmU9aTM4Ni1wYwotKwkJOzsKLSsJcGM5OC0qKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LWBlY2hv ICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlwZW50aXVtIHwg cDUgfCBrNSB8IGs2IHwgbmV4Z2VuIHwgdmlhYzMpCi0rCQliYXNpY19tYWNoaW5lPWk1ODYtcGMK LSsJCTs7Ci0rCXBlbnRpdW1wcm8gfCBwNiB8IDZ4ODYgfCBhdGhsb24gfCBhdGhsb25fKikKLSsJ CWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJOzsKLSsJcGVudGl1bWlpIHwgcGVudGl1bTIgfCBw ZW50aXVtaWlpIHwgcGVudGl1bTMpCi0rCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKLSsJCTs7Ci0r CXBlbnRpdW00KQotKwkJYmFzaWNfbWFjaGluZT1pNzg2LXBjCi0rCQk7OwotKwlwZW50aXVtLSog fCBwNS0qIHwgazUtKiB8IGs2LSogfCBuZXhnZW4tKiB8IHZpYWMzLSopCi0rCQliYXNpY19tYWNo aW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7 Ci0rCXBlbnRpdW1wcm8tKiB8IHA2LSogfCA2eDg2LSogfCBhdGhsb24tKikKLSsJCWJhc2ljX21h Y2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJ OzsKLSsJcGVudGl1bWlpLSogfCBwZW50aXVtMi0qIHwgcGVudGl1bWlpaS0qIHwgcGVudGl1bTMt KikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9e W14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bTQtKikKLSsJCWJhc2ljX21hY2hpbmU9aTc4Ni1g ZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcG4pCi0r CQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCi0rCQk7OwotKwlwb3dlcikJYmFzaWNfbWFjaGluZT1w b3dlci1pYm0KLSsJCTs7Ci0rCXBwYykJYmFzaWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KLSsJ CTs7Ci0rCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVjaG8gJGJhc2ljX21hY2hpbmUg fCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwY2xlIHwgcG93ZXJwY2xpdHRsZSB8IHBw Yy1sZSB8IHBvd2VycGMtbGl0dGxlKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtdW5rbm93 bgotKwkJOzsKLSsJcHBjbGUtKiB8IHBvd2VycGNsaXR0bGUtKikKLSsJCWJhc2ljX21hY2hpbmU9 cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7 OwotKwlwcGM2NCkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtdW5rbm93bgotKwkJOzsKLSsJcHBj NjQtKikgYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQg J3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwYzY0bGUgfCBwb3dlcnBjNjRsaXR0bGUgfCBwcGM2 NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCi0rCQliYXNpY19tYWNoaW5lPXBvd2VycGM2NGxlLXVu a25vd24KLSsJCTs7Ci0rCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxpdHRsZS0qKQotKwkJYmFzaWNf bWFjaGluZT1wb3dlcnBjNjRsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSot Ly8nYAotKwkJOzsKLSsJcHMyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LWlibQotKwkJOzsKLSsJ cHczMikKLSsJCWJhc2ljX21hY2hpbmU9aTU4Ni11bmtub3duCi0rCQlvcz0tcHczMgotKwkJOzsK LSsJcmRvcykKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJb3M9LXJkb3MKLSsJCTs7Ci0r CXJvbTY4aykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKLSsJCW9zPS1jb2ZmCi0rCQk7 OwotKwlybVs0Nl0wMCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1zaWVtZW5zCi0rCQk7OwotKwly dHBjIHwgcnRwYy0qKQotKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQotKwkJOzsKLSsJczM5MCB8 IHMzOTAtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MC1pYm0KLSsJCTs7Ci0rCXMzOTB4IHwgczM5 MHgtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCi0rCQk7OwotKwlzYTI5MjAwKQotKwkJ YmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQotKwkJOzsKLSsJc2IxKQotKwkJYmFz aWNfbWFjaGluZT1taXBzaXNhNjRzYjEtdW5rbm93bgotKwkJOzsKLSsJc2IxZWwpCi0rCQliYXNp Y19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVua25vd24KLSsJCTs7Ci0rCXNkZSkKLSsJCWJhc2lj X21hY2hpbmU9bWlwc2lzYTMyLXNkZQotKwkJb3M9LWVsZgotKwkJOzsKLSsJc2VpKQotKwkJYmFz aWNfbWFjaGluZT1taXBzLXNlaQotKwkJb3M9LXNlaXV4Ci0rCQk7OwotKwlzZXF1ZW50KQotKwkJ YmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKLSsJCTs7Ci0rCXNoKQotKwkJYmFzaWNfbWFjaGlu ZT1zaC1oaXRhY2hpCi0rCQlvcz0taG1zCi0rCQk7OwotKwlzaDVlbCkKLSsJCWJhc2ljX21hY2hp bmU9c2g1bGUtdW5rbm93bgotKwkJOzsKLSsJc2g2NCkKLSsJCWJhc2ljX21hY2hpbmU9c2g2NC11 bmtub3duCi0rCQk7OwotKwlzcGFyY2xpdGUtd3JzIHwgc2ltc28td3JzKQotKwkJYmFzaWNfbWFj aGluZT1zcGFyY2xpdGUtd3JzCi0rCQlvcz0tdnh3b3JrcwotKwkJOzsKLSsJc3BzNykKLSsJCWJh c2ljX21hY2hpbmU9bTY4ay1idWxsCi0rCQlvcz0tc3lzdjIKLSsJCTs7Ci0rCXNwdXIpCi0rCQli YXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgotKwkJOzsKLSsJc3QyMDAwKQotKwkJYmFzaWNfbWFj aGluZT1tNjhrLXRhbmRlbQotKwkJOzsKLSsJc3RyYXR1cykKLSsJCWJhc2ljX21hY2hpbmU9aTg2 MC1zdHJhdHVzCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCXN1bjIpCi0rCQliYXNpY19tYWNoaW5l PW02ODAwMC1zdW4KLSsJCTs7Ci0rCXN1bjJvczMpCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1z dW4KLSsJCW9zPS1zdW5vczMKLSsJCTs7Ci0rCXN1bjJvczQpCi0rCQliYXNpY19tYWNoaW5lPW02 ODAwMC1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7Ci0rCXN1bjNvczMpCi0rCQliYXNpY19tYWNo aW5lPW02OGstc3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7OwotKwlzdW4zb3M0KQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLXN1bgotKwkJb3M9LXN1bm9zNAotKwkJOzsKLSsJc3VuNG9zMykKLSsJCWJh c2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7OwotKwlzdW40b3M0KQot KwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7Ci0rCXN1bjRz b2wyKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCW9zPS1zb2xhcmlzMgotKwkJOzsK LSsJc3VuMyB8IHN1bjMtKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KLSsJCTs7Ci0rCXN1 bjQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJOzsKLSsJc3VuMzg2IHwgc3VuMzg2 aSB8IHJvYWRydW5uZXIpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtc3VuCi0rCQk7OwotKwlzdjEp Ci0rCQliYXNpY19tYWNoaW5lPXN2MS1jcmF5Ci0rCQlvcz0tdW5pY29zCi0rCQk7OwotKwlzeW1t ZXRyeSkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0rCQlvcz0tZHluaXgKLSsJCTs7 Ci0rCXQzZSkKLSsJCWJhc2ljX21hY2hpbmU9YWxwaGFldjUtY3JheQotKwkJb3M9LXVuaWNvcwot KwkJOzsKLSsJdDkwKQotKwkJYmFzaWNfbWFjaGluZT10OTAtY3JheQotKwkJb3M9LXVuaWNvcwot KwkJOzsKLSsJdGljNTR4IHwgYzU0eCopCi0rCQliYXNpY19tYWNoaW5lPXRpYzU0eC11bmtub3du Ci0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNTV4IHwgYzU1eCopCi0rCQliYXNpY19tYWNoaW5l PXRpYzU1eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNnggfCBjNngqKQotKwkJ YmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGlsZSop Ci0rCQliYXNpY19tYWNoaW5lPXRpbGUtdW5rbm93bgotKwkJb3M9LWxpbnV4LWdudQotKwkJOzsK LSsJdHgzOSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzktdW5rbm93bgotKwkJOzsKLSsJdHgz OWVsKQotKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOWVsLXVua25vd24KLSsJCTs7Ci0rCXRvYWQx KQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wKLSsJCW9zPS10b3BzMjAKLSsJCTs7Ci0rCXRv d2VyIHwgdG93ZXItMzIpCi0rCQliYXNpY19tYWNoaW5lPW02OGstbmNyCi0rCQk7OwotKwl0cGYp Ci0rCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQotKwkJb3M9LXRwZgotKwkJOzsKLSsJdWRpMjlr KQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQotKwkJOzsKLSsJdWx0cmEz KQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQotKwkJb3M9LXN5bTEKLSsJCTs7Ci0rCXY4MTAg fCBuZWN2ODEwKQotKwkJYmFzaWNfbWFjaGluZT12ODEwLW5lYwotKwkJb3M9LW5vbmUKLSsJCTs7 Ci0rCXZheHYpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJCW9zPS1zeXN2Ci0rCQk7Owot Kwl2bXMpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJCW9zPS12bXMKLSsJCTs7Ci0rCXZw cCp8dnh8dngtKikKLSsJCWJhc2ljX21hY2hpbmU9ZjMwMS1mdWppdHN1Ci0rCQk7OwotKwl2eHdv cmtzOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLXdycwotKwkJb3M9LXZ4d29ya3MKLSsJCTs7 Ci0rCXZ4d29ya3M2OCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay13cnMKLSsJCW9zPS12eHdvcmtz Ci0rCQk7OwotKwl2eHdvcmtzMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLXdycwotKwkJb3M9 LXZ4d29ya3MKLSsJCTs7Ci0rCXc2NSopCi0rCQliYXNpY19tYWNoaW5lPXc2NS13ZGMKLSsJCW9z PS1ub25lCi0rCQk7OwotKwl3ODlrLSopCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9u ZAotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJeGJveCkKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1w YwotKwkJb3M9LW1pbmd3MzIKLSsJCTs7Ci0rCXhwcyB8IHhwczEwMCkKLSsJCWJhc2ljX21hY2hp bmU9eHBzMTAwLWhvbmV5d2VsbAotKwkJOzsKLSsJeW1wKQotKwkJYmFzaWNfbWFjaGluZT15bXAt Y3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJejhrLSotY29mZikKLSsJCWJhc2ljX21hY2hp bmU9ejhrLXVua25vd24KLSsJCW9zPS1zaW0KLSsJCTs7Ci0rCW5vbmUpCi0rCQliYXNpY19tYWNo aW5lPW5vbmUtbm9uZQotKwkJb3M9LW5vbmUKLSsJCTs7Ci0rCi0rIyBIZXJlIHdlIGhhbmRsZSB0 aGUgZGVmYXVsdCBtYW51ZmFjdHVyZXIgb2YgY2VydGFpbiBDUFUgdHlwZXMuICBJdCBpcyBpbgot KyMgc29tZSBjYXNlcyB0aGUgb25seSBtYW51ZmFjdHVyZXIsIGluIG90aGVycywgaXQgaXMgdGhl IG1vc3QgcG9wdWxhci4KLSsJdzg5aykKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS13aW5ib25k Ci0rCQk7OwotKwlvcDUwbikKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKLSsJCTs7Ci0r CW9wNjBjKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQotKwkJOzsKLSsJcm9tcCkKLSsJ CWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KLSsJCTs7Ci0rCW1taXgpCi0rCQliYXNpY19tYWNoaW5l PW1taXgta251dGgKLSsJCTs7Ci0rCXJzNjAwMCkKLSsJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWli bQotKwkJOzsKLSsJdmF4KQotKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCi0rCQk7OwotKwlwZHAx MCkKLSsJCSMgdGhlcmUgYXJlIG1hbnkgY2xvbmVzLCBzbyBERUMgaXMgbm90IGEgc2FmZSBiZXQK LSsJCWJhc2ljX21hY2hpbmU9cGRwMTAtdW5rbm93bgotKwkJOzsKLSsJcGRwMTEpCi0rCQliYXNp Y19tYWNoaW5lPXBkcDExLWRlYwotKwkJOzsKLSsJd2UzMmspCi0rCQliYXNpY19tYWNoaW5lPXdl MzJrLWF0dAotKwkJOzsKLSsJc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMzRdZWIgfCBzaFsxMjM0 XWxlIHwgc2hbMjNdZWxlKQotKwkJYmFzaWNfbWFjaGluZT1zaC11bmtub3duCi0rCQk7OwotKwlz cGFyYyB8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgfCBzcGFyY3Y5dikKLSsJCWJhc2lj X21hY2hpbmU9c3BhcmMtc3VuCi0rCQk7OwotKwljeWRyYSkKLSsJCWJhc2ljX21hY2hpbmU9Y3lk cmEtY3lkcm9tZQotKwkJOzsKLSsJb3Jpb24pCi0rCQliYXNpY19tYWNoaW5lPW9yaW9uLWhpZ2hs ZXZlbAotKwkJOzsKLSsJb3Jpb24xMDUpCi0rCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaGlnaGxl dmVsCi0rCQk7OwotKwltYWMgfCBtcHcgfCBtYWMtbXB3KQotKwkJYmFzaWNfbWFjaGluZT1tNjhr LWFwcGxlCi0rCQk7OwotKwlwbWFjIHwgcG1hYy1tcHcpCi0rCQliYXNpY19tYWNoaW5lPXBvd2Vy cGMtYXBwbGUKLSsJCTs7Ci0rCSotdW5rbm93bikKLSsJCSMgTWFrZSBzdXJlIHRvIG1hdGNoIGFu IGFscmVhZHktY2Fub25pY2FsaXplZCBtYWNoaW5lIG5hbWUuCi0rCQk7OwotKwkqKQotKwkJZWNo byBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVc JyBub3QgcmVjb2duaXplZCAxPiYyCi0rCQlleGl0IDEKLSsJCTs7Ci0rZXNhYwotKwotKyMgSGVy ZSB3ZSBjYW5vbmljYWxpemUgY2VydGFpbiBhbGlhc2VzIGZvciBtYW51ZmFjdHVyZXJzLgotK2Nh c2UgJGJhc2ljX21hY2hpbmUgaW4KLSsJKi1kaWdpdGFsKikKLSsJCWJhc2ljX21hY2hpbmU9YGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvZGlnaXRhbC4qL2RlYy8nYAotKwkJOzsKLSsJKi1j b21tb2RvcmUqKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAn cy9jb21tb2RvcmUuKi9jYm0vJ2AKLSsJCTs7Ci0rCSopCi0rCQk7OwotK2VzYWMKLSsKLSsjIERl Y29kZSBtYW51ZmFjdHVyZXItc3BlY2lmaWMgYWxpYXNlcyBmb3IgY2VydGFpbiBvcGVyYXRpbmcg c3lzdGVtcy4KLSsKLStpZiBbIHgiJG9zIiAhPSB4IiIgXQotK3RoZW4KLStjYXNlICRvcyBpbgot KyAgICAgICAgIyBGaXJzdCBtYXRjaCBzb21lIHN5c3RlbSB0eXBlIGFsaWFzZXMKLSsgICAgICAg ICMgdGhhdCBtaWdodCBnZXQgY29uZnVzZWQgd2l0aCB2YWxpZCBzeXN0ZW0gdHlwZXMuCi0rCSMg LXNvbGFyaXMqIGlzIGEgYmFzaWMgc3lzdGVtIHR5cGUsIHdpdGggdGhpcyBvbmUgZXhjZXB0aW9u LgotKwktc29sYXJpczEgfCAtc29sYXJpczEuKikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAn c3xzb2xhcmlzMXxzdW5vczR8J2AKLSsJCTs7Ci0rCS1zb2xhcmlzKQotKwkJb3M9LXNvbGFyaXMy Ci0rCQk7OwotKwktc3ZyNCopCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCS11bml4d2FyZSopCi0r CQlvcz0tc3lzdjQuMnV3Ci0rCQk7OwotKwktZ251L2xpbnV4KikKLSsJCW9zPWBlY2hvICRvcyB8 IHNlZCAtZSAnc3xnbnUvbGludXh8bGludXgtZ251fCdgCi0rCQk7OwotKwkjIEZpcnN0IGFjY2Vw dCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVzLgotKwkjIFRoZSBwb3J0YWJsZSBzeXN0ZW1zIGNvbWVz IGZpcnN0LgotKwkjIEVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gQSAqLCB0byBtYXRjaCBh IHZlcnNpb24gbnVtYmVyLgotKwkjIC1zeXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0IGNvbWVz IGxhdGVyLCBhZnRlciBzeXN2cjQuCi0rCS1nbnUqIHwgLWJzZCogfCAtbWFjaCogfCAtbWluaXgq IHwgLWdlbml4KiB8IC11bHRyaXgqIHwgLWlyaXgqIFwKLSsJICAgICAgfCAtKnZtcyogfCAtc2Nv KiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwKLSsJICAg ICAgfCAtaHB1eCogfCAtdW5vcyogfCAtb3NmKiB8IC1sdW5hKiB8IC1kZ3V4KiB8IC1zb2xhcmlz KiB8IC1zeW0qIFwKLSsJICAgICAgfCAtYW1pZ2FvcyogfCAtYW1pZ2Fkb3MqIHwgLW1zZG9zKiB8 IC1uZXdzb3MqIHwgLXVuaWNvcyogfCAtYW9mKiBcCi0rCSAgICAgIHwgLWFvcyogXAotKwkgICAg ICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVibW9uKiB8IC1obXMqIHwgLW12 cyogXAotKwkgICAgICB8IC1jbGl4KiB8IC1yaXNjb3MqIHwgLXVuaXBsdXMqIHwgLWlyaXMqIHwg LXJ0dSogfCAteGVuaXgqIFwKLSsJICAgICAgfCAtaGl1eCogfCAtMzg2YnNkKiB8IC1rbmV0YnNk KiB8IC1taXJic2QqIHwgLW5ldGJzZCogXAotKwkgICAgICB8IC1vcGVuYnNkKiB8IC1zb2xpZGJz ZCogXAotKwkgICAgICB8IC1la2tvYnNkKiB8IC1rZnJlZWJzZCogfCAtZnJlZWJzZCogfCAtcmlz Y2l4KiB8IC1seW54b3MqIFwKLSsJICAgICAgfCAtYm9zeCogfCAtbmV4dHN0ZXAqIHwgLWN4dXgq IHwgLWFvdXQqIHwgLWVsZiogfCAtb2FiaSogXAotKwkgICAgICB8IC1wdHgqIHwgLWNvZmYqIHwg LWVjb2ZmKiB8IC13aW5udCogfCAtZG9tYWluKiB8IC12c3RhKiBcCi0rCSAgICAgIHwgLXVkaSog fCAtZWFiaSogfCAtbGl0ZXMqIHwgLWllZWUqIHwgLWdvMzIqIHwgLWF1eCogXAotKwkgICAgICB8 IC1jaG9ydXNvcyogfCAtY2hvcnVzcmRiKiBcCi0rCSAgICAgIHwgLWN5Z3dpbiogfCAtcGUqIHwg LXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAtcnRlbXMqIFwKLSsJICAgICAgfCAtbWluZ3cz MiogfCAtbGludXgtZ251KiB8IC1saW51eC1uZXdsaWIqIHwgLWxpbnV4LXVjbGliYyogXAotKwkg ICAgICB8IC11eHB2KiB8IC1iZW9zKiB8IC1tcGVpeCogfCAtdWRrKiBcCi0rCSAgICAgIHwgLWlu dGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhhcHNvZHkqIHwgLWRhcndpbiogfCAtb3BlbmVk KiBcCi0rCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCogfCAtY29uaXgqIHwgLXB3MzIqIHwg LW5vbnN0b3B1eCogXAotKwkgICAgICB8IC1zdG9ybS1jaGFvcyogfCAtdG9wczEwKiB8IC10ZW5l eCogfCAtdG9wczIwKiB8IC1pdHMqIFwKLSsJICAgICAgfCAtb3MyKiB8IC12b3MqIHwgLXBhbG1v cyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAotKwkgICAgICB8IC1tb3JwaG9zKiB8IC1zdXBl cnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3MqIFwKLSsJICAgICAgfCAtcG93 ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcgfCAtc2VpKiB8IC1kcmFnb25mbHkqIFwKLSsJ ICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1KiB8IC1yZG9zKiB8IC10b3BwZXJzKiB8IC1kcm9wcyop Ci0rCSMgUmVtZW1iZXIsIGVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gKiwgdG8gbWF0Y2gg YSB2ZXJzaW9uIG51bWJlci4KLSsJCTs7Ci0rCS1xbngqKQotKwkJY2FzZSAkYmFzaWNfbWFjaGlu ZSBpbgotKwkJICAgIHg4Ni0qIHwgaSo4Ni0qKQotKwkJCTs7Ci0rCQkgICAgKikKLSsJCQlvcz0t bnRvJG9zCi0rCQkJOzsKLSsJCWVzYWMKLSsJCTs7Ci0rCS1udG8tcW54KikKLSsJCTs7Ci0rCS1u dG8qKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8tcW54fCdgCi0rCQk7Owot Kwktc2ltIHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwgLW9zNjhrKiB8IC1ub25lKiB8IC12 ODhyKiBcCi0rCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwg LW9zOSogfCAtYmVvcyogfCAtaGFpa3UqIFwKLSsJICAgICAgfCAtbWFjb3MqIHwgLW1wdyogfCAt bWFnaWMqIHwgLW1taXh3YXJlKiB8IC1tb245NjAqIHwgLWxuZXdzKikKLSsJCTs7Ci0rCS1tYWMq KQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG1hY3xtYWNvc3wnYAotKwkJOzsKLSsJLWxp bnV4LWRpZXRsaWJjKQotKwkJb3M9LWxpbnV4LWRpZXRsaWJjCi0rCQk7OwotKwktbGludXgqKQot KwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGxpbnV4fGxpbnV4LWdudXwnYAotKwkJOzsKLSsJ LXN1bm9zNSopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M1fHNvbGFyaXMyfCdg Ci0rCQk7OwotKwktc3Vub3M2KikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczZ8 c29sYXJpczN8J2AKLSsJCTs7Ci0rCS1vcGVuZWQqKQotKwkJb3M9LW9wZW5lZGl0aW9uCi0rCQk7 OwotKyAgICAgICAgLW9zNDAwKikKLSsJCW9zPS1vczQwMAotKwkJOzsKLSsJLXdpbmNlKikKLSsJ CW9zPS13aW5jZQotKwkJOzsKLSsJLW9zZnJvc2UqKQotKwkJb3M9LW9zZnJvc2UKLSsJCTs7Ci0r CS1vc2YqKQotKwkJb3M9LW9zZgotKwkJOzsKLSsJLXV0ZWsqKQotKwkJb3M9LWJzZAotKwkJOzsK LSsJLWR5bml4KikKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCS1hY2lzKikKLSsJCW9zPS1hb3MKLSsJ CTs7Ci0rCS1hdGhlb3MqKQotKwkJb3M9LWF0aGVvcwotKwkJOzsKLSsJLXN5bGxhYmxlKikKLSsJ CW9zPS1zeWxsYWJsZQotKwkJOzsKLSsJLTM4NmJzZCkKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCS1j dGl4KiB8IC11dHMqKQotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCS1ub3ZhKikKLSsJCW9zPS1ydG1r LW5vdmEKLSsJCTs7Ci0rCS1uczIgKQotKwkJb3M9LW5leHRzdGVwMgotKwkJOzsKLSsJLW5zayop Ci0rCQlvcz0tbnNrCi0rCQk7OwotKwkjIFByZXNlcnZlIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBz aW5peDUuCi0rCS1zaW5peDUuKikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxz eXN2fCdgCi0rCQk7OwotKwktc2luaXgqKQotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKyAgICAgICAg LXRwZiopCi0rCQlvcz0tdHBmCi0rCQk7OwotKwktdHJpdG9uKikKLSsJCW9zPS1zeXN2MwotKwkJ OzsKLSsJLW9zcyopCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCS1zdnI0KQotKwkJb3M9LXN5c3Y0 Ci0rCQk7OwotKwktc3ZyMykKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJLXN5c3ZyNCkKLSsJCW9z PS1zeXN2NAotKwkJOzsKLSsJIyBUaGlzIG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgotKwktc3lz diopCi0rCQk7OwotKwktb3NlKikKLSsJCW9zPS1vc2UKLSsJCTs7Ci0rCS1lczE4MDAqKQotKwkJ b3M9LW9zZQotKwkJOzsKLSsJLXhlbml4KQotKwkJb3M9LXhlbml4Ci0rCQk7OwotKwktKm1pbnQg fCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQotKwkJb3M9LW1pbnQKLSsJCTs7 Ci0rCS1hcm9zKikKLSsJCW9zPS1hcm9zCi0rCQk7OwotKwkta2FvcyopCi0rCQlvcz0ta2Fvcwot KwkJOzsKLSsJLXp2bW9lKQotKwkJb3M9LXp2bW9lCi0rCQk7OwotKwktbm9uZSkKLSsJCTs7Ci0r CSopCi0rCQkjIEdldCByaWQgb2YgdGhlIGAtJyBhdCB0aGUgYmVnaW5uaW5nIG9mICRvcy4KLSsJ CW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCi0rCQllY2hvIEludmFsaWQgY29uZmln dXJhdGlvbiBcYCQxXCc6IHN5c3RlbSBcYCRvc1wnIG5vdCByZWNvZ25pemVkIDE+JjIKLSsJCWV4 aXQgMQotKwkJOzsKLStlc2FjCi0rZWxzZQotKwotKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1 bHQgb3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBjb21lIHdpdGggdmFyaW91cyBtYWNoaW5lcy4KLSsj IFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUgdmVuZG9yIGN1cnJlbnRseSBzaGlwcyBvdXQg dGhlIGRvb3Igd2l0aCB0aGVpcgotKyMgbWFjaGluZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBt b3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGluZS4KLSsKLSsjIE5vdGUgdGhh dCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1hdGNoICItTUFOVUZBQ1RVUkVSIiBoZXJlIChz YXksCi0rIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50 IHVwIHRvd2FyZHMgdGhlIHRvcAotKyMgdGhhdCBNQU5VRkFDVFVSRVIgaXNuJ3QgYW4gb3BlcmF0 aW5nIHN5c3RlbS4gIE90aGVyd2lzZSwgY29kZSBhYm92ZQotKyMgd2lsbCBzaWduYWwgYW4gZXJy b3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZwotKyMgc3lzdGVt LCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCi0rCi0rY2FzZSAkYmFzaWNfbWFj aGluZSBpbgotKyAgICAgICAgc2NvcmUtKikKLSsJCW9zPS1lbGYKLSsJCTs7Ci0rICAgICAgICBz cHUtKikKLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCSotYWNvcm4pCi0rCQlvcz0tcmlzY2l4MS4yCi0r CQk7OwotKwlhcm0qLXJlYmVsKQotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlhcm0qLXNlbWkpCi0r CQlvcz0tYW91dAotKwkJOzsKLSsgICAgICAgIGM0eC0qIHwgdGljNHgtKikKLSsgICAgICAgIAlv cz0tY29mZgotKwkJOzsKLSsJIyBUaGlzIG11c3QgY29tZSBiZWZvcmUgdGhlICotZGVjIGVudHJ5 LgotKwlwZHAxMC0qKQotKwkJb3M9LXRvcHMyMAotKwkJOzsKLSsJcGRwMTEtKikKLSsJCW9zPS1u b25lCi0rCQk7OwotKwkqLWRlYyB8IHZheC0qKQotKwkJb3M9LXVsdHJpeDQuMgotKwkJOzsKLSsJ bTY4Ki1hcG9sbG8pCi0rCQlvcz0tZG9tYWluCi0rCQk7OwotKwlpMzg2LXN1bikKLSsJCW9zPS1z dW5vczQuMC4yCi0rCQk7OwotKwltNjgwMDAtc3VuKQotKwkJb3M9LXN1bm9zMwotKwkJIyBUaGlz IGFsc28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUgcHJvZ3JhbSwgYnV0IHdhcyBub3QgdGhlCi0r CQkjIGRlZmF1bHQuCi0rCQkjIG9zPS1zdW5vczQKLSsJCTs7Ci0rCW02OCotY2lzY28pCi0rCQlv cz0tYW91dAotKwkJOzsKLSsgICAgICAgIG1lcC0qKQotKwkJb3M9LWVsZgotKwkJOzsKLSsJbWlw cyotY2lzY28pCi0rCQlvcz0tZWxmCi0rCQk7OwotKwltaXBzKi0qKQotKwkJb3M9LWVsZgotKwkJ OzsKLSsJb3IzMi0qKQotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCSotdHRpKQkjIG11c3QgYmUgYmVm b3JlIHNwYXJjIGVudHJ5IG9yIHdlIGdldCB0aGUgd3Jvbmcgb3MuCi0rCQlvcz0tc3lzdjMKLSsJ CTs7Ci0rCXNwYXJjLSogfCAqLXN1bikKLSsJCW9zPS1zdW5vczQuMS4xCi0rCQk7OwotKwkqLWJl KQotKwkJb3M9LWJlb3MKLSsJCTs7Ci0rCSotaGFpa3UpCi0rCQlvcz0taGFpa3UKLSsJCTs7Ci0r CSotaWJtKQotKwkJb3M9LWFpeAotKwkJOzsKLSsgICAgCSota251dGgpCi0rCQlvcz0tbW1peHdh cmUKLSsJCTs7Ci0rCSotd2VjKQotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJKi13aW5ib25kKQot KwkJb3M9LXByb2VsZgotKwkJOzsKLSsJKi1va2kpCi0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwkq LWhwKQotKwkJb3M9LWhwdXgKLSsJCTs7Ci0rCSotaGl0YWNoaSkKLSsJCW9zPS1oaXV4Ci0rCQk7 OwotKwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwgKi1hbHRvcyB8ICotbW90b3JvbGEgfCAqLWNv bnZlcmdlbnQpCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJKi1jYm0pCi0rCQlvcz0tYW1pZ2Fvcwot KwkJOzsKLSsJKi1kZykKLSsJCW9zPS1kZ3V4Ci0rCQk7OwotKwkqLWRvbHBoaW4pCi0rCQlvcz0t c3lzdjMKLSsJCTs7Ci0rCW02OGstY2N1cikKLSsJCW9zPS1ydHUKLSsJCTs7Ci0rCW04OGstb21y b24qKQotKwkJb3M9LWx1bmEKLSsJCTs7Ci0rCSotbmV4dCApCi0rCQlvcz0tbmV4dHN0ZXAKLSsJ CTs7Ci0rCSotc2VxdWVudCkKLSsJCW9zPS1wdHgKLSsJCTs7Ci0rCSotY3JkcykKLSsJCW9zPS11 bm9zCi0rCQk7OwotKwkqLW5zKQotKwkJb3M9LWdlbml4Ci0rCQk7OwotKwlpMzcwLSopCi0rCQlv cz0tbXZzCi0rCQk7OwotKwkqLW5leHQpCi0rCQlvcz0tbmV4dHN0ZXAzCi0rCQk7OwotKwkqLWdv dWxkKQotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCSotaGlnaGxldmVsKQotKwkJb3M9LWJzZAotKwkJ OzsKLSsJKi1lbmNvcmUpCi0rCQlvcz0tYnNkCi0rCQk7OwotKwkqLXNnaSkKLSsJCW9zPS1pcml4 Ci0rCQk7OwotKwkqLXNpZW1lbnMpCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCSotbWFzc2NvbXAp Ci0rCQlvcz0tcnR1Ci0rCQk7OwotKwlmMzBbMDFdLWZ1aml0c3UgfCBmNzAwLWZ1aml0c3UpCi0r CQlvcz0tdXhwdgotKwkJOzsKLSsJKi1yb202OGspCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJKi0q YnVnKQotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCSotYXBwbGUpCi0rCQlvcz0tbWFjb3MKLSsJCTs7 Ci0rCSotYXRhcmkqKQotKwkJb3M9LW1pbnQKLSsJCTs7Ci0rCSopCi0rCQlvcz0tbm9uZQotKwkJ OzsKLStlc2FjCi0rZmkKLSsKLSsjIEhlcmUgd2UgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGtu b3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBidXQgbm90IHRoZQotKyMgbWFudWZhY3R1cmVy LiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFjdHVyZXIuCi0rdmVuZG9yPXVua25vd24KLStj YXNlICRiYXNpY19tYWNoaW5lIGluCi0rCSotdW5rbm93bikKLSsJCWNhc2UgJG9zIGluCi0rCQkJ LXJpc2NpeCopCi0rCQkJCXZlbmRvcj1hY29ybgotKwkJCQk7OwotKwkJCS1zdW5vcyopCi0rCQkJ CXZlbmRvcj1zdW4KLSsJCQkJOzsKLSsJCQktYWl4KikKLSsJCQkJdmVuZG9yPWlibQotKwkJCQk7 OwotKwkJCS1iZW9zKikKLSsJCQkJdmVuZG9yPWJlCi0rCQkJCTs7Ci0rCQkJLWhwdXgqKQotKwkJ CQl2ZW5kb3I9aHAKLSsJCQkJOzsKLSsJCQktbXBlaXgqKQotKwkJCQl2ZW5kb3I9aHAKLSsJCQkJ OzsKLSsJCQktaGl1eCopCi0rCQkJCXZlbmRvcj1oaXRhY2hpCi0rCQkJCTs7Ci0rCQkJLXVub3Mq KQotKwkJCQl2ZW5kb3I9Y3JkcwotKwkJCQk7OwotKwkJCS1kZ3V4KikKLSsJCQkJdmVuZG9yPWRn Ci0rCQkJCTs7Ci0rCQkJLWx1bmEqKQotKwkJCQl2ZW5kb3I9b21yb24KLSsJCQkJOzsKLSsJCQkt Z2VuaXgqKQotKwkJCQl2ZW5kb3I9bnMKLSsJCQkJOzsKLSsJCQktbXZzKiB8IC1vcGVuZWQqKQot KwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLW9zNDAwKikKLSsJCQkJdmVuZG9yPWlibQot KwkJCQk7OwotKwkJCS1wdHgqKQotKwkJCQl2ZW5kb3I9c2VxdWVudAotKwkJCQk7OwotKwkJCS10 cGYqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLXZ4c2ltKiB8IC12eHdvcmtzKiB8 IC13aW5kaXNzKikKLSsJCQkJdmVuZG9yPXdycwotKwkJCQk7OwotKwkJCS1hdXgqKQotKwkJCQl2 ZW5kb3I9YXBwbGUKLSsJCQkJOzsKLSsJCQktaG1zKikKLSsJCQkJdmVuZG9yPWhpdGFjaGkKLSsJ CQkJOzsKLSsJCQktbXB3KiB8IC1tYWNvcyopCi0rCQkJCXZlbmRvcj1hcHBsZQotKwkJCQk7Owot KwkJCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCi0rCQkJCXZl bmRvcj1hdGFyaQotKwkJCQk7OwotKwkJCS12b3MqKQotKwkJCQl2ZW5kb3I9c3RyYXR1cwotKwkJ CQk7OwotKwkJZXNhYwotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNl ZCAicy91bmtub3duLyR2ZW5kb3IvImAKLSsJCTs7Ci0rZXNhYwotKwotK2VjaG8gJGJhc2ljX21h Y2hpbmUkb3MKLStleGl0Ci0rCi0rIyBMb2NhbCB2YXJpYWJsZXM6Ci0rIyBldmFsOiAoYWRkLWhv b2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCi0rIyB0aW1lLXN0YW1wLXN0YXJ0OiAi dGltZXN0YW1wPSciCi0rIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCi0rIyB0 aW1lLXN0YW1wLWVuZDogIiciCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2NwcHVuaXQubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jcHB1bml0Lm00Ci0t LS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NwcHVuaXQu bTQJMjAwOS0wNC0xNiAxOTozNzoyMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsOTMgQEAK LStkbmwKLStkbmwgQU1fUEFUSF9DUFBVTklUKE1JTklNVU0tVkVSU0lPTiwgW0FDVElPTi1JRi1G T1VORCBbLCBBQ1RJT04tSUYtTk9ULUZPVU5EXV0pCi0rZG5sCi0rQUNfREVGVU4oW0FNX1BBVEhf Q1BQVU5JVF0sCi0rWwotKwotK0FDX0FSR19XSVRIKGNwcHVuaXQtcHJlZml4LFsgIC0td2l0aC1j cHB1bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9w dGlvbmFsKV0sCi0rICAgICAgICAgICAgY3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIs IGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iIikKLStBQ19BUkdfV0lUSChjcHB1bml0LWV4ZWMtcHJl Zml4LFsgIC0td2l0aC1jcHB1bml0LWV4ZWMtcHJlZml4PVBGWCAgRXhlYyBwcmVmaXggd2hlcmUg Q3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCi0rICAgICAgICAgICAgY3BwdW5pdF9j b25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIiwgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9 IiIpCi0rCi0rICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRo ZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhl Yy1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4IgotKyAgICAgaWYgdGVzdCB4JHtD UFBVTklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCi0rICAgICAgICBDUFBVTklUX0NPTkZJ Rz0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBm aQotKyAgZmkKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4K LSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4 PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklH K3NldH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2Nv bmZpZ19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsKLSsgIEFD X1BBVEhfUFJPRyhDUFBVTklUX0NPTkZJRywgY3BwdW5pdC1jb25maWcsIG5vKQotKyAgY3BwdW5p dF92ZXJzaW9uX21pbj0kMQotKwotKyAgQUNfTVNHX0NIRUNLSU5HKGZvciBDcHB1bml0IC0gdmVy c2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9uX21pbikKLSsgIG5vX2NwcHVuaXQ9IiIKLSsgIGlmIHRl c3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhlbgotKyAgICBBQ19NU0dfUkVTVUxUKG5v KQotKyAgICBub19jcHB1bml0PXllcwotKyAgZWxzZQotKyAgICBDUFBVTklUX0NGTEFHUz1gJENQ UFVOSVRfQ09ORklHIC0tY2ZsYWdzYAotKyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NPTkZJ RyAtLWxpYnNgCi0rICAgIENQUFVOSVRfVkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVyc2lv bmAKLSsKLSsgICAgY3BwdW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04g fCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05 XV0qXCkvXDEvJ2AKLSsgICAgY3BwdW5pdF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZF UlNJT04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5c KFtbMC05XV0qXCkvXDIvJ2AKLSsgICAgY3BwdW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBV TklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTld XSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKLSsKLSsgICAgY3BwdW5pdF9tYWpvcl9taW49YGVjaG8g JGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwp LlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5p dF9tYWpvcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5pdF9tYWpvcl9taW49MAot KyAgICBmaQotKyAgICAKLSsgICAgY3BwdW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVuaXRfdmVy c2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpc KS5cKFtbMC05XV0qXCkvXDIvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59 IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5pdF9taW5vcl9taW49MAotKyAgICBmaQotKyAg ICAKLSsgICAgY3BwdW5pdF9taWNyb19taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBc Ci0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0q XCkvXDMvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taWNyb19taW59IiA9ICJ4IiA7IHRo ZW4KLSsgICAgICAgY3BwdW5pdF9taWNyb19taW49MAotKyAgICBmaQotKwotKyAgICBjcHB1bml0 X3ZlcnNpb25fcHJvcGVyPWBleHByIFwKLSsgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24g XD4gJGNwcHVuaXRfbWFqb3JfbWluIFx8IFwKLSsgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNp b24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKLSsgICAgICAgICRjcHB1bml0X21pbm9yX3Zl cnNpb24gXD4gJGNwcHVuaXRfbWlub3JfbWluIFx8IFwKLSsgICAgICAgICRjcHB1bml0X21ham9y X3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKLSsgICAgICAgICRjcHB1bml0X21p bm9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWlub3JfbWluIFwmIFwKLSsgICAgICAgICRjcHB1bml0 X21pY3JvX3ZlcnNpb24gXD49ICRjcHB1bml0X21pY3JvX21pbiBgCi0rCi0rICAgIGlmIHRlc3Qg IiRjcHB1bml0X3ZlcnNpb25fcHJvcGVyIiA9ICIxIiA7IHRoZW4KLSsgICAgICBBQ19NU0dfUkVT VUxUKFskY3BwdW5pdF9tYWpvcl92ZXJzaW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVu aXRfbWljcm9fdmVyc2lvbl0pCi0rICAgIGVsc2UKLSsgICAgICBBQ19NU0dfUkVTVUxUKG5vKQot KyAgICAgIG5vX2NwcHVuaXQ9eWVzCi0rICAgIGZpCi0rICBmaQotKwotKyAgaWYgdGVzdCAieCRu b19jcHB1bml0IiA9IHggOyB0aGVuCi0rICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKSAgICAg Ci0rICBlbHNlCi0rICAgICBDUFBVTklUX0NGTEFHUz0iIgotKyAgICAgQ1BQVU5JVF9MSUJTPSIi Ci0rICAgICBpZmVsc2UoWyQzXSwgLCA6LCBbJDNdKQotKyAgZmkKLSsKLSsgIEFDX1NVQlNUKENQ UFVOSVRfQ0ZMQUdTKQotKyAgQUNfU1VCU1QoQ1BQVU5JVF9MSUJTKQotKyAgQUNfU1VCU1QoQ1BQ VU5JVF9WRVJTSU9OKQotK10pCi0rCi0rCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2RlcGNvbXAgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9kZXBjb21wCi0tLS0gc29j aS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2RlcGNvbXAJMjAwOS0wNS0w NiAwMTozMTo0OS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTg5IEBACi0rIyEgL2Jpbi9z aAotKyMgZGVwY29tcCAtIGNvbXBpbGUgYSBwcm9ncmFtIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVz IGFzIHNpZGUtZWZmZWN0cwotKwotK3NjcmlwdHZlcnNpb249MjAwNy0wMy0yOS4wMQotKwotKyMg Q29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEZy ZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQotKyMgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgotKwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCi0rIyAwMjEx MC0xMzAxLCBVU0EuCi0rCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBw YXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0 IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUg c2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0 IHByb2dyYW0uCi0rCi0rIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQWxleGFuZHJlIE9saXZhIDxv bGl2YUBkY2MudW5pY2FtcC5icj4uCi0rCi0rY2FzZSAkMSBpbgotKyAgJycpCi0rICAgICBlY2hv ICIkMDogTm8gY29tbWFuZC4gIFRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24u IiAxPiYyCi0rICAgICBleGl0IDE7Ci0rICAgICA7OwotKyAgLWggfCAtLWgqKQotKyAgICBjYXQg PDxcRU9GCi0rVXNhZ2U6IGRlcGNvbXAgWy0taGVscF0gWy0tdmVyc2lvbl0gUFJPR1JBTSBbQVJH U10KLSsKLStSdW4gUFJPR1JBTVMgQVJHUyB0byBjb21waWxlIGEgZmlsZSwgZ2VuZXJhdGluZyBk ZXBlbmRlbmNpZXMKLSthcyBzaWRlLWVmZmVjdHMuCi0rCi0rRW52aXJvbm1lbnQgdmFyaWFibGVz OgotKyAgZGVwbW9kZSAgICAgRGVwZW5kZW5jeSB0cmFja2luZyBtb2RlLgotKyAgc291cmNlICAg ICAgU291cmNlIGZpbGUgcmVhZCBieSBgUFJPR1JBTVMgQVJHUycuCi0rICBvYmplY3QgICAgICBP YmplY3QgZmlsZSBvdXRwdXQgYnkgYFBST0dSQU1TIEFSR1MnLgotKyAgREVQRElSICAgICAgZGly ZWN0b3J5IHdoZXJlIHRvIHN0b3JlIGRlcGVuZGVuY2llcy4KLSsgIGRlcGZpbGUgICAgIERlcGVu ZGVuY3kgZmlsZSB0byBvdXRwdXQuCi0rICB0bXBkZXBmaWxlICBUZW1wb3JhcnkgZmlsZSB0byB1 c2Ugd2hlbiBvdXRwdXRpbmcgZGVwZW5kZW5jaWVzLgotKyAgbGlidG9vbCAgICAgV2hldGhlciBs aWJ0b29sIGlzIHVzZWQgKHllcy9ubykuCi0rCi0rUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvbWFr ZUBnbnUub3JnPi4KLStFT0YKLSsgICAgZXhpdCAkPwotKyAgICA7OwotKyAgLXYgfCAtLXYqKQot KyAgICBlY2hvICJkZXBjb21wICRzY3JpcHR2ZXJzaW9uIgotKyAgICBleGl0ICQ/Ci0rICAgIDs7 Ci0rZXNhYwotKwotK2lmIHRlc3QgLXogIiRkZXBtb2RlIiB8fCB0ZXN0IC16ICIkc291cmNlIiB8 fCB0ZXN0IC16ICIkb2JqZWN0IjsgdGhlbgotKyAgZWNobyAiZGVwY29tcDogVmFyaWFibGVzIHNv dXJjZSwgb2JqZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAxPiYyCi0rICBleGl0IDEKLStm aQotKwotKyMgRGVwZW5kZW5jaWVzIGZvciBzdWIvYmFyLm8gb3Igc3ViL2Jhci5vYmogZ28gaW50 byBzdWIvLmRlcHMvYmFyLlBvLgotK2RlcGZpbGU9JHtkZXBmaWxlLWBlY2hvICIkb2JqZWN0IiB8 Ci0rICBzZWQgJ3N8W15cXC9dKiR8JyR7REVQRElSLS5kZXBzfScvJnw7c3xcLlwoW14uXSpcKSR8 LlBcMXw7c3xQb2JqJHxQb3wnYH0KLSt0bXBkZXBmaWxlPSR7dG1wZGVwZmlsZS1gZWNobyAiJGRl cGZpbGUiIHwgc2VkICdzL1wuXChbXi5dKlwpJC8uVFwxLydgfQotKwotK3JtIC1mICIkdG1wZGVw ZmlsZSIKLSsKLSsjIFNvbWUgbW9kZXMgd29yayBqdXN0IGxpa2Ugb3RoZXIgbW9kZXMsIGJ1dCB1 c2UgZGlmZmVyZW50IGZsYWdzLiAgV2UKLSsjIHBhcmFtZXRlcml6ZSBoZXJlLCBidXQgc3RpbGwg bGlzdCB0aGUgbW9kZXMgaW4gdGhlIGJpZyBjYXNlIGJlbG93LAotKyMgdG8gbWFrZSBkZXBlbmQu bTQgZWFzaWVyIHRvIHdyaXRlLiAgTm90ZSB0aGF0IHdlICpjYW5ub3QqIHVzZSBhIGNhc2UKLSsj IGhlcmUsIGJlY2F1c2UgdGhpcyBmaWxlIGNhbiBvbmx5IGNvbnRhaW4gb25lIGNhc2Ugc3RhdGVt ZW50LgotK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGhwOyB0aGVuCi0rICAjIEhQIGNvbXBpbGVyIHVz ZXMgLU0gYW5kIG5vIGV4dHJhIGFyZy4KLSsgIGdjY2ZsYWc9LU0KLSsgIGRlcG1vZGU9Z2NjCi0r ZmkKLSsKLStpZiB0ZXN0ICIkZGVwbW9kZSIgPSBkYXNoWG1zdGRvdXQ7IHRoZW4KLSsgICAjIFRo aXMgaXMganVzdCBsaWtlIGRhc2htc3Rkb3V0IHdpdGggYSBkaWZmZXJlbnQgYXJndW1lbnQuCi0r ICAgZGFzaG1mbGFnPS14TQotKyAgIGRlcG1vZGU9ZGFzaG1zdGRvdXQKLStmaQotKwotK2Nhc2Ug IiRkZXBtb2RlIiBpbgotK2djYzMpCi0rIyMgZ2NjIDMgaW1wbGVtZW50cyBkZXBlbmRlbmN5IHRy YWNraW5nIHRoYXQgZG9lcyBleGFjdGx5IHdoYXQKLSsjIyB3ZSB3YW50LiAgWWF5ISAgTm90ZTog Zm9yIHNvbWUgcmVhc29uIGxpYnRvb2wgMS40IGRvZXNuJ3QgbGlrZQotKyMjIGl0IGlmIC1NRCAt TVAgY29tZXMgYWZ0ZXIgdGhlIC1NRiBzdHVmZi4gIEhtbS4KLSsjIyBVbmZvcnR1bmF0ZWx5LCBG cmVlQlNEIGM4OSBhY2NlcHRhbmNlIG9mIGZsYWdzIGRlcGVuZHMgdXBvbgotKyMjIHRoZSBjb21t YW5kIGxpbmUgYXJndW1lbnQgb3JkZXI7IHNvIGFkZCB0aGUgZmxhZ3Mgd2hlcmUgdGhleQotKyMj IGFwcGVhciBpbiBkZXBlbmQyLmFtLiAgTm90ZSB0aGF0IHRoZSBzbG93ZG93biBpbmN1cnJlZCBo ZXJlCi0rIyMgYWZmZWN0cyBvbmx5IGNvbmZpZ3VyZTogaW4gbWFrZWZpbGVzLCAlRkFTVERFUCUg c2hvcnRjdXRzIHRoaXMuCi0rICBmb3IgYXJnCi0rICBkbwotKyAgICBjYXNlICRhcmcgaW4KLSsg ICAgLWMpIHNldCBmbm9yZCAiJEAiIC1NVCAiJG9iamVjdCIgLU1EIC1NUCAtTUYgIiR0bXBkZXBm aWxlIiAiJGFyZyIgOzsKLSsgICAgKikgIHNldCBmbm9yZCAiJEAiICIkYXJnIiA7OwotKyAgICBl c2FjCi0rICAgIHNoaWZ0ICMgZm5vcmQKLSsgICAgc2hpZnQgIyAkYXJnCi0rICBkb25lCi0rICAi JEAiCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UK LSsgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgICBleGl0ICRzdGF0Ci0rICBmaQotKyAgbXYg IiR0bXBkZXBmaWxlIiAiJGRlcGZpbGUiCi0rICA7OwotKwotK2djYykKLSsjIyBUaGVyZSBhcmUg dmFyaW91cyB3YXlzIHRvIGdldCBkZXBlbmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUncwot KyMjIHdoeSB3ZSBwaWNrIHRoaXMgcmF0aGVyIG9ic2N1cmUgbWV0aG9kOgotKyMjIC0gRG9uJ3Qg d2FudCB0byB1c2UgLU1EIGJlY2F1c2Ugd2UnZCBsaWtlIHRoZSBkZXBlbmRlbmNpZXMgdG8gZW5k Ci0rIyMgICB1cCBpbiBhIHN1YmRpci4gIEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1Z2x5 LgotKyMjICAgKFdlIG1pZ2h0IGVuZCB1cCBkb2luZyB0aGlzIGFueXdheSB0byBzdXBwb3J0IG90 aGVyIGNvbXBpbGVycy4pCi0rIyMgLSBUaGUgREVQRU5ERU5DSUVTX09VVFBVVCBlbnZpcm9ubWVu dCB2YXJpYWJsZSBtYWtlcyBnY2MgYWN0IGxpa2UKLSsjIyAgIC1NTSwgbm90IC1NIChkZXNwaXRl IHdoYXQgdGhlIGRvY3Mgc2F5KS4KLSsjIyAtIFVzaW5nIC1NIGRpcmVjdGx5IG1lYW5zIHJ1bm5p bmcgdGhlIGNvbXBpbGVyIHR3aWNlIChldmVuIHdvcnNlCi0rIyMgICB0aGFuIHJlbmFtaW5nKS4K LSsgIGlmIHRlc3QgLXogIiRnY2NmbGFnIjsgdGhlbgotKyAgICBnY2NmbGFnPS1NRCwKLSsgIGZp Ci0rICAiJEAiIC1XcCwiJGdjY2ZsYWckdG1wZGVwZmlsZSIKLSsgIHN0YXQ9JD8KLSsgIGlmIHRl c3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAgICBybSAtZiAiJHRtcGRlcGZpbGUi Ci0rICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rICBlY2hvICIk b2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotKyAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFSU1RV VldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egotKyMjIFRoZSBzZWNvbmQgLWUgZXhwcmVz c2lvbiBoYW5kbGVzIERPUy1zdHlsZSBmaWxlIG5hbWVzIHdpdGggZHJpdmUgbGV0dGVycy4KLSsg IHNlZCAtZSAncy9eW146XSo6IC8gLycgXAotKyAgICAgIC1lICdzL15bJyRhbHBoYSddOlwvW146 XSo6IC8gLycgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsjIyBUaGlzIG5leHQgcGll Y2Ugb2YgbWFnaWMgYXZvaWRzIHRoZSBgZGVsZXRlZCBoZWFkZXIgZmlsZScgcHJvYmxlbS4KLSsj IyBUaGUgcHJvYmxlbSBpcyB0aGF0IHdoZW4gYSBoZWFkZXIgZmlsZSB3aGljaCBhcHBlYXJzIGlu IGEgLlAgZmlsZQotKyMjIGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtlIHRv IGRpZSAoYmVjYXVzZSB0aGVyZSBpcwotKyMjIHR5cGljYWxseSBubyB3YXkgdG8gcmVidWlsZCB0 aGUgaGVhZGVyKS4gIFdlIGF2b2lkIHRoaXMgYnkgYWRkaW5nCi0rIyMgZHVtbXkgZGVwZW5kZW5j aWVzIGZvciBlYWNoIGhlYWRlciBmaWxlLiAgVG9vIGJhZCBnY2MgZG9lc24ndCBkbwotKyMjIHRo aXMgZm9yIHVzIGRpcmVjdGx5LgotKyAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiB8Ci0r IyMgU29tZSB2ZXJzaW9ucyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBPbiB0 aGUgdGhlb3J5Ci0rIyMgdGhhdCB0aGUgc3BhY2UgbWVhbnMgc29tZXRoaW5nLCB3ZSBhZGQgYSBz cGFjZSB0byB0aGUgb3V0cHV0IGFzCi0rIyMgd2VsbC4KLSsjIyBTb21lIHZlcnNpb25zIG9mIHRo ZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgotKyMjIGNvcnJl Y3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91 bmQuCi0rICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAt ZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgOzsK LSsKLStocCkKLSsgICMgVGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRvIGxldCBkZXBlbmQubTQgZG8g aXRzIHdvcmsuICBJdCB3b3JrcyBieQotKyAgIyBsb29raW5nIGF0IHRoZSB0ZXh0IG9mIHRoaXMg c2NyaXB0LiAgVGhpcyBjYXNlIHdpbGwgbmV2ZXIgYmUgcnVuLAotKyAgIyBzaW5jZSBpdCBpcyBj aGVja2VkIGZvciBhYm92ZS4KLSsgIGV4aXQgMQotKyAgOzsKLSsKLStzZ2kpCi0rICBpZiB0ZXN0 ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1wZGVw ZmlsZSIKLSsgIGVsc2UKLSsgICAgIiRAIiAtTUR1cGRhdGUgIiR0bXBkZXBmaWxlIgotKyAgZmkK LSsgIHN0YXQ9JD8KLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAg ICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rICBybSAtZiAi JGRlcGZpbGUiCi0rCi0rICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVzLCB0 aGUgc291cmNlZmlsZSBkZXBlbmQgb24gb3RoZXIgZmlsZXMKLSsgICAgZWNobyAiJG9iamVjdCA6 IFxcIiA+ICIkZGVwZmlsZSIKLSsKLSsgICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVtZW50 ICh0aGUgZGVwZW5kZW50KS4gIERvbid0IHRyeSB0byBiZQotKyAgICAjIGNsZXZlciBhbmQgcmVw bGFjZSB0aGlzIHdpdGggc2VkIGNvZGUsIGFzIElSSVggc2VkIHdvbid0IGhhbmRsZQotKyAgICAj IGxpbmVzIHdpdGggbW9yZSB0aGFuIGEgZml4ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgKDQwOTYg aW4KLSsgICAgIyBJUklYIDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyByZW1v dmUgY29tbWVudCBsaW5lczsKLSsgICAgIyB0aGUgSVJJWCBjYyBhZGRzIGNvbW1lbnRzIGxpa2Ug YCM6ZmVjJyB0byB0aGUgZW5kIG9mIHRoZQotKyAgICAjIGRlcGVuZGVuY3kgbGluZS4KLSsgICAg dHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiBcCi0rICAgIHwgc2VkIC1lICdzL14uKlwubzov LycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyB8IFwKLSsgICAgdHIgJwotKycgJyAnID4+ICRk ZXBmaWxlCi0rICAgIGVjaG8gPj4gJGRlcGZpbGUKLSsKLSsgICAgIyBUaGUgc2Vjb25kIHBhc3Mg Z2VuZXJhdGVzIGEgZHVtbXkgZW50cnkgZm9yIGVhY2ggaGVhZGVyIGZpbGUuCi0rICAgIHRyICcg JyAnCi0rJyA8ICIkdG1wZGVwZmlsZSIgXAotKyAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUg J3MvIy4qJC8vJyAtZSAnL14kLyBkJyAtZSAncy8kLzovJyBcCi0rICAgPj4gJGRlcGZpbGUKLSsg IGVsc2UKLSsgICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBkZXBlbmRl bmNpZXMsIHNvIGp1c3QKLSsgICAgIyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGluZSwgdG8gYXZv aWQgZXJyb3JzIHdpdGggdGhlIE1ha2VmaWxlCi0rICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxv IiBzY2hlbWUuCi0rICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCi0rICBmaQotKyAgcm0g LWYgIiR0bXBkZXBmaWxlIgotKyAgOzsKLSsKLSthaXgpCi0rICAjIFRoZSBDIGZvciBBSVggQ29t cGlsZXIgdXNlcyAtTSBhbmQgb3V0cHV0cyB0aGUgZGVwZW5kZW5jaWVzCi0rICAjIGluIGEgLnUg ZmlsZS4gIEluIG9sZGVyIHZlcnNpb25zLCB0aGlzIGZpbGUgYWx3YXlzIGxpdmVzIGluIHRoZQot KyAgIyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9i amVjdDonIGF0IHRoZQotKyAgIyBzdGFydCBvZiBlYWNoIGxpbmU7ICRvYmplY3QgZG9lc24ndCBo YXZlIGRpcmVjdG9yeSBpbmZvcm1hdGlvbi4KLSsgICMgVmVyc2lvbiA2IHVzZXMgdGhlIGRpcmVj dG9yeSBpbiBib3RoIGNhc2VzLgotKyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wv W14vXSokfC98J2AKLSsgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQotKyAgYmFz ZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdz L1wubG8kLy8nYAotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHRtcGRl cGZpbGUxPSRkaXIkYmFzZS51Ci0rICAgIHRtcGRlcGZpbGUyPSRiYXNlLnUKLSsgICAgdG1wZGVw ZmlsZTM9JGRpci5saWJzLyRiYXNlLnUKLSsgICAgIiRAIiAtV2MsLU0KLSsgIGVsc2UKLSsgICAg dG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKLSsgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLnUKLSsg ICAgdG1wZGVwZmlsZTM9JGRpciRiYXNlLnUKLSsgICAgIiRAIiAtTQotKyAgZmkKLSsgIHN0YXQ9 JD8KLSsKLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAgICBybSAt ZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgotKyAgICBleGl0 ICRzdGF0Ci0rICBmaQotKwotKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0 bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIKLSsgIGRvCi0rICAgIHRlc3QgLWYgIiR0bXBkZXBm aWxlIiAmJiBicmVhawotKyAgZG9uZQotKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVu Ci0rICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgot KyAgICAjIERvIHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bwotKyAgICAj IGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicu Ci0rICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIg PiAiJGRlcGZpbGUiCi0rICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4K LSsgICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdzLCQsOiwnIDwgIiR0bXBk ZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0rICBlbHNlCi0rICAgICMgVGhlIHNvdXJjZWZpbGUgZG9l cyBub3QgY29udGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0Ci0rICAgICMgc3RvcmUgYSBk dW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQotKyAg ICAjICJpbmNsdWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgotKyAgICBlY2hvICIjZHVtbXkiID4g IiRkZXBmaWxlIgotKyAgZmkKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0raWNj KQotKyAgIyBJbnRlbCdzIEMgY29tcGlsZXIgdW5kZXJzdGFuZHMgYC1NRCAtTUYgZmlsZScuICBI b3dldmVyIG9uCi0rICAjICAgIGljYyAtTUQgLU1GIGZvby5kIC1jIC1vIHN1Yi9mb28ubyBzdWIv Zm9vLmMKLSsgICMgSUNDIDcuMCB3aWxsIGZpbGwgZm9vLmQgd2l0aCBzb21ldGhpbmcgbGlrZQot KyAgIyAgICBmb28ubzogc3ViL2Zvby5jCi0rICAjICAgIGZvby5vOiBzdWIvZm9vLmgKLSsgICMg d2hpY2ggaXMgd3JvbmcuICBXZSB3YW50OgotKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uYwot KyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uaAotKyAgIyAgICBzdWIvZm9vLmM6Ci0rICAjICAg IHN1Yi9mb28uaDoKLSsgICMgSUNDIDcuMSB3aWxsIG91dHB1dAotKyAgIyAgICBmb28ubzogc3Vi L2Zvby5jIHN1Yi9mb28uaAotKyAgIyBhbmQgd2lsbCB3cmFwIGxvbmcgbGluZXMgdXNpbmcgXCA6 Ci0rICAjICAgIGZvby5vOiBzdWIvZm9vLmMgLi4uIFwKLSsgICMgICAgIHN1Yi9mb28uaCAuLi4g XAotKyAgIyAgICAgLi4uCi0rCi0rICAiJEAiIC1NRCAtTUYgIiR0bXBkZXBmaWxlIgotKyAgc3Rh dD0kPwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNlCi0rICAgIHJtIC1m ICIkdG1wZGVwZmlsZSIKLSsgICAgZXhpdCAkc3RhdAotKyAgZmkKLSsgIHJtIC1mICIkZGVwZmls ZSIKLSsgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLAot KyAgIyBvciBgZm9vLm86IGRlcDEuaCBkZXAyLmggXCcsIG9yIGAgZGVwMy5oIGRlcDQuaCBcJy4K LSsgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCi0rICAjIGAk b2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCi0r ICBzZWQgInMsXlteOl0qOiwkb2JqZWN0IDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUi Ci0rICAjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3Mg dGhpcyBpbnZvY2F0aW9uCi0rICAjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNl ZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCi0rICBzZWQgJ3MsXlteOl0qOiBcKC4qXCkk LFwxLDtzL15cXCQvLzsvXiQvZDsvOiQvZCcgPCAiJHRtcGRlcGZpbGUiIHwKLSsgICAgc2VkIC1l ICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7Owot KwotK2hwMikKLSsgICMgVGhlICJocCIgc3RhbnphIGFib3ZlIGRvZXMgbm90IHdvcmsgd2l0aCBh Q0MgKEMrKykgYW5kIEhQJ3MgaWE2NAotKyAgIyBjb21waWxlcnMsIHdoaWNoIGhhdmUgaW50ZWdy YXRlZCBwcmVwcm9jZXNzb3JzLiAgVGhlIGNvcnJlY3Qgb3B0aW9uCi0rICAjIHRvIHVzZSB3aXRo IHRoZXNlIGlzICtNYWtlZDsgaXQgd3JpdGVzIGRlcGVuZGVuY2llcyB0byBhIGZpbGUgbmFtZWQK LSsgICMgJ2Zvby5kJywgd2hpY2ggbGFuZHMgbmV4dCB0byB0aGUgb2JqZWN0IGZpbGUsIHdoZXJl dmVyIHRoYXQKLSsgICMgaGFwcGVucyB0byBiZS4KLSsgICMgTXVjaCBvZiB0aGlzIGlzIHNpbWls YXIgdG8gdGhlIHRydTY0IGNhc2U7IHNlZSBjb21tZW50cyB0aGVyZS4KLSsgIGRpcj1gZWNobyAi JG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCi0rICB0ZXN0ICJ4JGRpciIgPSAieCRv YmplY3QiICYmIGRpcj0KLSsgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98 fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9 IHllczsgdGhlbgotKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UuZAotKyAgICB0bXBkZXBmaWxl Mj0kZGlyLmxpYnMvJGJhc2UuZAotKyAgICAiJEAiIC1XYywrTWFrZWQKLSsgIGVsc2UKLSsgICAg dG1wZGVwZmlsZTE9JGRpciRiYXNlLmQKLSsgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLmQKLSsg ICAgIiRAIiArTWFrZWQKLSsgIGZpCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAw OyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmls ZTIiCi0rICAgICBleGl0ICRzdGF0Ci0rICBmaQotKwotKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0 bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIKLSsgIGRvCi0rICAgIHRlc3QgLWYgIiR0bXBkZXBm aWxlIiAmJiBicmVhawotKyAgZG9uZQotKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVu Ci0rICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiAiJHRtcGRlcGZpbGUiID4g IiRkZXBmaWxlIgotKyAgICAjIEFkZCBgZGVwZW5kZW50Lmg6JyBsaW5lcy4KLSsgICAgc2VkIC1u ZSAnMiwkezsgcy9eICovLzsgcy8gXFwqJC8vOyBzLyQvOi87IHA7fScgIiR0bXBkZXBmaWxlIiA+ PiAiJGRlcGZpbGUiCi0rICBlbHNlCi0rICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCi0r ICBmaQotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZpbGUyIgotKyAgOzsKLSsKLSt0 cnU2NCkKLSsgICAjIFRoZSBUcnU2NCBjb21waWxlciB1c2VzIC1NRCB0byBnZW5lcmF0ZSBkZXBl bmRlbmNpZXMgYXMgYSBzaWRlCi0rICAgIyBlZmZlY3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicg cHV0cyB0aGUgZGVwZW5kZW5jaWVzIGludG8gYGZvby5vLmQnLgotKyAgICMgQXQgbGVhc3Qgb24g QWxwaGEvUmVkaGF0IDYuMSwgQ29tcGFxIENDQyBWNi4yLTUwNCBzZWVtcyB0byBwdXQKLSsgICAj IGRlcGVuZGVuY2llcyBpbiBgZm9vLmQnIGluc3RlYWQsIHNvIHdlIGNoZWNrIGZvciB0aGF0IHRv by4KLSsgICAjIFN1YmRpcmVjdG9yaWVzIGFyZSByZXNwZWN0ZWQuCi0rICAgZGlyPWBlY2hvICIk b2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKLSsgICB0ZXN0ICJ4JGRpciIgPSAieCRv YmplY3QiICYmIGRpcj0KLSsgICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiov fHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCi0rCi0rICAgaWYgdGVzdCAiJGxpYnRv b2wiID0geWVzOyB0aGVuCi0rICAgICAgIyBXaXRoIFRydTY0IGNjLCBzaGFyZWQgb2JqZWN0cyBj YW4gYWxzbyBiZSB1c2VkIHRvIG1ha2UgYQotKyAgICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlz IG1lY2hhbmlzbSBpcyB1c2VkIGluIGxpYnRvb2wgMS40IHNlcmllcyB0bwotKyAgICAgICMgaGFu ZGxlIGJvdGggc2hhcmVkIGFuZCBzdGF0aWMgbGlicmFyaWVzIGluIGEgc2luZ2xlIGNvbXBpbGF0 aW9uLgotKyAgICAgICMgV2l0aCBsaWJ0b29sIDEuNCwgZGVwZW5kZW5jaWVzIHdlcmUgb3V0cHV0 IGluICRkaXIubGlicy8kYmFzZS5sby5kLgotKyAgICAgICMKLSsgICAgICAjIFdpdGggbGlidG9v bCAxLjUgdGhpcyBleGNlcHRpb24gd2FzIHJlbW92ZWQsIGFuZCBsaWJ0b29sIG5vdwotKyAgICAg ICMgZ2VuZXJhdGVzIDIgc2VwYXJhdGUgb2JqZWN0cyBmb3IgdGhlIDIgbGlicmFyaWVzLiAgVGhl c2UgdHdvCi0rICAgICAgIyBjb21waWxhdGlvbnMgb3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGly LmxpYnMvJGJhc2Uuby5kIGFuZAotKyAgICAgICMgaW4gJGRpciRiYXNlLm8uZC4gIFdlIGhhdmUg dG8gY2hlY2sgZm9yIGJvdGggZmlsZXMsIGJlY2F1c2UKLSsgICAgICAjIG9uZSBvZiB0aGUgdHdv IGNvbXBpbGF0aW9ucyBjYW4gYmUgZGlzYWJsZWQuICBXZSBzaG91bGQgcHJlZmVyCi0rICAgICAg IyAkZGlyJGJhc2Uuby5kIG92ZXIgJGRpci5saWJzLyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0 ZXIgaXMKLSsgICAgICAjIGF1dG9tYXRpY2FsbHkgY2xlYW5lZCB3aGVuIC5saWJzLyBpcyBkZWxl dGVkLCB3aGlsZSBpZ25vcmluZwotKyAgICAgICMgdGhlIGZvcm1lciB3b3VsZCBjYXVzZSBhIGRp c3RjbGVhbmNoZWNrIHBhbmljLgotKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5s by5kICAgIyBsaWJ0b29sIDEuNAotKyAgICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5vLmQgICAg ICAgICAgIyBsaWJ0b29sIDEuNQotKyAgICAgIHRtcGRlcGZpbGUzPSRkaXIubGlicy8kYmFzZS5v LmQgICAgIyBsaWJ0b29sIDEuNQotKyAgICAgIHRtcGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5k ICAgICAgIyBDb21wYXEgQ0NDIFY2LjItNTA0Ci0rICAgICAgIiRAIiAtV2MsLU1ECi0rICAgZWxz ZQotKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5vLmQKLSsgICAgICB0bXBkZXBmaWxlMj0k ZGlyJGJhc2UuZAotKyAgICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFzZS5kCi0rICAgICAgdG1wZGVw ZmlsZTQ9JGRpciRiYXNlLmQKLSsgICAgICAiJEAiIC1NRAotKyAgIGZpCi0rCi0rICAgc3RhdD0k PwotKyAgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgIGVsc2UKLSsgICAgICBybSAt ZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZp bGU0IgotKyAgICAgIGV4aXQgJHN0YXQKLSsgICBmaQotKwotKyAgIGZvciB0bXBkZXBmaWxlIGlu ICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmls ZTQiCi0rICAgZG8KLSsgICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhawotKyAgIGRv bmUKLSsgICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KLSsgICAgICBzZWQgLWUgInMs Xi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotKyAg ICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4KLSsgICAgICBzZWQgLWUg J3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIk ZGVwZmlsZSIKLSsgICBlbHNlCi0rICAgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSsg ICBmaQotKyAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgICA7OwotKwotKyNub3NpZGVlZmZlY3Qp Ci0rICAjIFRoaXMgY29tbWVudCBhYm92ZSBpcyB1c2VkIGJ5IGF1dG9tYWtlIHRvIHRlbGwgc2lk ZS1lZmZlY3QKLSsgICMgZGVwZW5kZW5jeSB0cmFja2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2Vy IG9uZXMuCi0rCi0rZGFzaG1zdGRvdXQpCi0rICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0 byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKLSsgICMgYWx3YXlzIHdyaXRl IHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCi0rICAi JEAiIHx8IGV4aXQgJD8KLSsKLSsgICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCi0rICBp ZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1t b2RlPWNvbXBpbGUnOyBkbwotKyAgICAgIHNoaWZ0Ci0rICAgIGRvbmUKLSsgICAgc2hpZnQKLSsg IGZpCi0rCi0rICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCi0rICBJRlM9IiAiCi0rICBmb3IgYXJn Ci0rICBkbwotKyAgICBjYXNlICRhcmcgaW4KLSsgICAgLW8pCi0rICAgICAgc2hpZnQKLSsgICAg ICA7OwotKyAgICAkb2JqZWN0KQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsKLSsgICAgKikKLSsg ICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLSsgICAgICBzaGlmdCAjIGZub3JkCi0rICAgICAg c2hpZnQgIyAkYXJnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAgdGVzdCAt eiAiJGRhc2htZmxhZyIgJiYgZGFzaG1mbGFnPS1NCi0rICAjIFJlcXVpcmUgYXQgbGVhc3QgdHdv IGNoYXJhY3RlcnMgYmVmb3JlIHNlYXJjaGluZyBmb3IgYDonCi0rICAjIGluIHRoZSB0YXJnZXQg bmFtZS4gIFRoaXMgaXMgdG8gY29wZSB3aXRoIERPUy1zdHlsZSBmaWxlbmFtZXM6Ci0rICAjIGEg ZGVwZW5kZW5jeSBzdWNoIGFzIGBjOi9mb28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBg Yycgb3RoZXJ3aXNlLgotKyAgIiRAIiAkZGFzaG1mbGFnIHwKLSsgICAgc2VkICdzOl5bICBdKlte OiBdW146XVteOl0qXDpbICAgIF0qOiciJG9iamVjdCInXDogOicgPiAiJHRtcGRlcGZpbGUiCi0r ICBybSAtZiAiJGRlcGZpbGUiCi0rICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgot KyAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiB8IFwKLSsjIyBTb21lIHZlcnNpb25zIG9m IHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgotKyMjIGNv cnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmth cm91bmQuCi0rICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNl ZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAg OzsKLSsKLStkYXNoWG1zdGRvdXQpCi0rICAjIFRoaXMgY2FzZSBvbmx5IGV4aXN0cyB0byBzYXRp c2Z5IGRlcGVuZC5tNC4gIEl0IGlzIG5ldmVyIGFjdHVhbGx5Ci0rICAjIHJ1biwgYXMgdGhpcyBt b2RlIGlzIHNwZWNpYWxseSByZWNvZ25pemVkIGluIHRoZSBwcmVhbWJsZS4KLSsgIGV4aXQgMQot KyAgOzsKLSsKLSttYWtlZGVwZW5kKQotKyAgIiRAIiB8fCBleGl0ICQ/Ci0rICAjIFJlbW92ZSBh bnkgTGlidG9vbCBjYWxsCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAg d2hpbGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbwotKyAgICAgIHNoaWZ0Ci0rICAg IGRvbmUKLSsgICAgc2hpZnQKLSsgIGZpCi0rICAjIFggbWFrZWRlcGVuZAotKyAgc2hpZnQKLSsg IGNsZWFyZWQ9bm8KLSsgIGZvciBhcmcgaW4gIiRAIjsgZG8KLSsgICAgY2FzZSAkY2xlYXJlZCBp bgotKyAgICBubykKLSsgICAgICBzZXQgIiI7IHNoaWZ0Ci0rICAgICAgY2xlYXJlZD15ZXMgOzsK LSsgICAgZXNhYwotKyAgICBjYXNlICIkYXJnIiBpbgotKyAgICAtRCp8LUkqKQotKyAgICAgIHNl dCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKLSsgICAgIyBTdHJpcCBhbnkgb3B0aW9uIHRo YXQgbWFrZWRlcGVuZCBtYXkgbm90IHVuZGVyc3RhbmQuICBSZW1vdmUKLSsgICAgIyB0aGUgb2Jq ZWN0IHRvbywgb3RoZXJ3aXNlIG1ha2VkZXBlbmQgd2lsbCBwYXJzZSBpdCBhcyBhIHNvdXJjZSBm aWxlLgotKyAgICAtKnwkb2JqZWN0KQotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgc2V0IGZu b3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rICBvYmpfc3Vm Zml4PSJgZWNobyAkb2JqZWN0IHwgc2VkICdzL14uKlwuLy4vJ2AiCi0rICB0b3VjaCAiJHRtcGRl cGZpbGUiCi0rICAke01BS0VERVBFTkQtbWFrZWRlcGVuZH0gLW8iJG9ial9zdWZmaXgiIC1mIiR0 bXBkZXBmaWxlIiAiJEAiCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rICBjYXQgPCAiJHRtcGRlcGZp bGUiID4gIiRkZXBmaWxlIgotKyAgc2VkICcxLDJkJyAiJHRtcGRlcGZpbGUiIHwgdHIgJyAnICcK LSsnIHwgXAotKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHBy b2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0rIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0 d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KLSsgICAgc2VkIC1lICdzL15cXCQv LycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUi Ci0rICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZSIuYmFrCi0rICA7OwotKwotK2Nw cCkKLSsgICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBh IGNvbXBpbGVyICptdXN0KgotKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxl IHRvIHN0ZG91dC4KLSsgICIkQCIgfHwgZXhpdCAkPwotKwotKyAgIyBSZW1vdmUgdGhlIGNhbGwg dG8gTGlidG9vbC4KLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB3aGls ZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAgZG9u ZQotKyAgICBzaGlmdAotKyAgZmkKLSsKLSsgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KLSsgIElG Uz0iICIKLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgJGFyZyBpbgotKyAgICAtbykKLSsg ICAgICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICRvYmplY3QpCi0rICAgICAgc2hpZnQKLSsgICAg ICA7OwotKyAgICAqKQotKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIgotKyAgICAgIHNoaWZ0 ICMgZm5vcmQKLSsgICAgICBzaGlmdCAjICRhcmcKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBk b25lCi0rCi0rICAiJEAiIC1FIHwKLSsgICAgc2VkIC1uIC1lICcvXiMgWzAtOV1bMC05XSogIlwo W14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIFwKLSsgICAgICAgLWUgJy9eI2xpbmUgWzAtOV1bMC05 XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIHwKLSsgICAgc2VkICckIHM6IFxcJDo6JyA+ ICIkdG1wZGVwZmlsZSIKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsgIGVjaG8gIiRvYmplY3QgOiBc XCIgPiAiJGRlcGZpbGUiCi0rICBjYXQgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsg IHNlZCA8ICIkdG1wZGVwZmlsZSIgJy9eJC9kO3MvXiAvLztzLyBcXCQvLztzLyQvIDovJyA+PiAi JGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwotK21zdmlzdWFsY3Bw KQotKyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEg Y29tcGlsZXIgKm11c3QqCi0rICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUg dG8gc3Rkb3V0LCByZWdhcmRsZXNzIG9mIC1vLAotKyAgIyBiZWNhdXNlIHdlIG11c3QgdXNlIC1v IHdoZW4gcnVubmluZyBsaWJ0b29sLgotKyAgIiRAIiB8fCBleGl0ICQ/Ci0rICBJRlM9IiAiCi0r ICBmb3IgYXJnCi0rICBkbwotKyAgICBjYXNlICIkYXJnIiBpbgotKyAgICAiLUdtInwiL0dtInwi LUdpInwiL0dpInwiLVpJInwiL1pJIikKLSsJc2V0IGZub3JkICIkQCIKLSsJc2hpZnQKLSsJc2hp ZnQKLSsJOzsKLSsgICAgKikKLSsJc2V0IGZub3JkICIkQCIgIiRhcmciCi0rCXNoaWZ0Ci0rCXNo aWZ0Ci0rCTs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsgICIkQCIgLUUgfAotKyAgc2VkIC1uICcv XiNsaW5lIFswLTldWzAtOV0qICJcKFteIl0qXCkiLyBzOjplY2hvICJgY3lncGF0aCAtdSBcXCJc MVxcImAiOnAnIHwgc29ydCB8IHVuaXEgPiAiJHRtcGRlcGZpbGUiCi0rICBybSAtZiAiJGRlcGZp bGUiCi0rICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotKyAgLiAiJHRtcGRlcGZp bGUiIHwgc2VkICdzJSAlXFwgJWcnIHwgc2VkIC1uICcvXlwoLipcKSQvIHM6OglcMSBcXDpwJyA+ PiAiJGRlcGZpbGUiCi0rICBlY2hvICIJIiA+PiAiJGRlcGZpbGUiCi0rICAuICIkdG1wZGVwZmls ZSIgfCBzZWQgJ3MlICVcXCAlZycgfCBzZWQgLW4gJy9eXCguKlwpJC8gczo6XDFcOjpwJyA+PiAi JGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwotK25vbmUpCi0rICBl eGVjICIkQCIKLSsgIDs7Ci0rCi0rKikKLSsgIGVjaG8gIlVua25vd24gZGVwbW9kZSAkZGVwbW9k ZSIgMT4mMgotKyAgZXhpdCAxCi0rICA7OwotK2VzYWMKLSsKLStleGl0IDAKLSsKLSsjIExvY2Fs IFZhcmlhYmxlczoKLSsjIG1vZGU6IHNoZWxsLXNjcmlwdAotKyMgc2gtaW5kZW50YXRpb246IDIK LSsjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRp bWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAi JTp5LSUwMm0tJTAyZC4lMDJIIgotKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgotKyMgRW5kOgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxsLXNoIHNvY2ktMy4wLjBfdHJl cDMwMC9jb25maWcvaW5zdGFsbC1zaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0 YWxsLXNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9pbnN0YWxsLXNoCTIwMDktMDUtMDYgMDE6MzE6NDcuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDUxOSBAQAotKyMhL2Jpbi9zaAotKyMgaW5zdGFsbCAtIGluc3Rh bGwgYSBwcm9ncmFtLCBzY3JpcHQsIG9yIGRhdGFmaWxlCi0rCi0rc2NyaXB0dmVyc2lvbj0yMDA2 LTEyLTI1LjAwCi0rCi0rIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBYMTFSNSAobWl0L3V0aWwvc2Ny aXB0cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCi0rIyBsYXRlciByZWxlYXNlZCBpbiBYMTFSNiAo eGMvY29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKLSsjIGZvbGxvd2luZyBjb3B5cmln aHQgYW5kIGxpY2Vuc2UuCi0rIwotKyMgQ29weXJpZ2h0IChDKSAxOTk0IFggQ29uc29ydGl1bQot KyMKLSsjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKLSsjIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bwotKyMgZGVhbCBp biB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt aXRhdGlvbiB0aGUKLSsjIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgotKyMgc2VsbCBjb3BpZXMgb2YgdGhl IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMK LSsjIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnM6Ci0rIwotKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSsjIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotKyMKLSsjIFRIRSBTT0ZUV0FSRSBJUyBQUk9W SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0r IyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwKLSsjIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSsjIFggQ09OU09SVElV TSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI RVRIRVIgSU4KLSsjIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQy0KLSsjIFRJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0rIwotKyMg RXhjZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5hbWUgb2YgdGhlIFggQ29u c29ydGl1bSBzaGFsbCBub3QKLSsjIGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNl IHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsLQotKyMgaW5ncyBpbiB0aGlz IFNvZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0aW9uIGZyb20gdGhlIFgg Q29uc29yLQotKyMgdGl1bS4KLSsjCi0rIwotKyMgRlNGIGNoYW5nZXMgdG8gdGhpcyBmaWxlIGFy ZSBpbiB0aGUgcHVibGljIGRvbWFpbi4KLSsjCi0rIyBDYWxsaW5nIHRoaXMgc2NyaXB0IGluc3Rh bGwtc2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8gcHJldmVudAotKyMgYG1ha2Un IGltcGxpY2l0IHJ1bGVzIGZyb20gY3JlYXRpbmcgYSBmaWxlIGNhbGxlZCBpbnN0YWxsIGZyb20g aXQKLSsjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCi0rIwotKyMgVGhpcyBzY3JpcHQgaXMg Y29tcGF0aWJsZSB3aXRoIHRoZSBCU0QgaW5zdGFsbCBzY3JpcHQsIGJ1dCB3YXMgd3JpdHRlbgot KyMgZnJvbSBzY3JhdGNoLgotKwotK25sPScKLSsnCi0rSUZTPSIgIiIJJG5sIgotKwotKyMgc2V0 IERPSVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAotKwotKyMgRG9uJ3QgdXNlIDot IHNpbmNlIDQuM0JTRCBhbmQgZWFybGllciBzaGVsbHMgZG9uJ3QgbGlrZSBpdC4KLStkb2l0PSR7 RE9JVFBST0ctfQotK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgotKyAgZG9pdF9leGVjPWV4ZWMK LStlbHNlCi0rICBkb2l0X2V4ZWM9JGRvaXQKLStmaQotKwotKyMgUHV0IGluIGFic29sdXRlIGZp bGUgbmFtZXMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3VyIHBhdGg7Ci0rIyBvciB1c2Ug ZW52aXJvbm1lbnQgdmFycy4KLSsKLStjaGdycHByb2c9JHtDSEdSUFBST0ctY2hncnB9Ci0rY2ht b2Rwcm9nPSR7Q0hNT0RQUk9HLWNobW9kfQotK2Nob3ducHJvZz0ke0NIT1dOUFJPRy1jaG93bn0K LStjbXBwcm9nPSR7Q01QUFJPRy1jbXB9Ci0rY3Bwcm9nPSR7Q1BQUk9HLWNwfQotK21rZGlycHJv Zz0ke01LRElSUFJPRy1ta2Rpcn0KLSttdnByb2c9JHtNVlBST0ctbXZ9Ci0rcm1wcm9nPSR7Uk1Q Uk9HLXJtfQotK3N0cmlwcHJvZz0ke1NUUklQUFJPRy1zdHJpcH0KLSsKLStwb3NpeF9nbG9iPSc/ JwotK2luaXRpYWxpemVfcG9zaXhfZ2xvYj0nCi0rICB0ZXN0ICIkcG9zaXhfZ2xvYiIgIT0gIj8i IHx8IHsKLSsgICAgaWYgKHNldCAtZikgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgICBwb3NpeF9n bG9iPQotKyAgICBlbHNlCi0rICAgICAgcG9zaXhfZ2xvYj06Ci0rICAgIGZpCi0rICB9Ci0rJwot KwotK3Bvc2l4X21rZGlyPQotKwotKyMgRGVzaXJlZCBtb2RlIG9mIGluc3RhbGxlZCBmaWxlLgot K21vZGU9MDc1NQotKwotK2NoZ3JwY21kPQotK2NobW9kY21kPSRjaG1vZHByb2cKLStjaG93bmNt ZD0KLSttdmNtZD0kbXZwcm9nCi0rcm1jbWQ9IiRybXByb2cgLWYiCi0rc3RyaXBjbWQ9Ci0rCi0r c3JjPQotK2RzdD0KLStkaXJfYXJnPQotK2RzdF9hcmc9Ci0rCi0rY29weV9vbl9jaGFuZ2U9ZmFs c2UKLStub190YXJnZXRfZGlyZWN0b3J5PQotKwotK3VzYWdlPSJcCi0rVXNhZ2U6ICQwIFtPUFRJ T05dLi4uIFstVF0gU1JDRklMRSBEU1RGSUxFCi0rICAgb3I6ICQwIFtPUFRJT05dLi4uIFNSQ0ZJ TEVTLi4uIERJUkVDVE9SWQotKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAtdCBESVJFQ1RPUlkgU1JD RklMRVMuLi4KLSsgICBvcjogJDAgW09QVElPTl0uLi4gLWQgRElSRUNUT1JJRVMuLi4KLSsKLStJ biB0aGUgMXN0IGZvcm0sIGNvcHkgU1JDRklMRSB0byBEU1RGSUxFLgotK0luIHRoZSAybmQgYW5k IDNyZCwgY29weSBhbGwgU1JDRklMRVMgdG8gRElSRUNUT1JZLgotK0luIHRoZSA0dGgsIGNyZWF0 ZSBESVJFQ1RPUklFUy4KLSsKLStPcHRpb25zOgotKyAgICAgLS1oZWxwICAgICBkaXNwbGF5IHRo aXMgaGVscCBhbmQgZXhpdC4KLSsgICAgIC0tdmVyc2lvbiAgZGlzcGxheSB2ZXJzaW9uIGluZm8g YW5kIGV4aXQuCi0rCi0rICAtYyAgICAgICAgICAgIChpZ25vcmVkKQotKyAgLUMgICAgICAgICAg ICBpbnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0aGUgbGFzdCBkYXRhIG1vZGlm aWNhdGlvbiB0aW1lKQotKyAgLWQgICAgICAgICAgICBjcmVhdGUgZGlyZWN0b3JpZXMgaW5zdGVh ZCBvZiBpbnN0YWxsaW5nIGZpbGVzLgotKyAgLWcgR1JPVVAgICAgICAkY2hncnBwcm9nIGluc3Rh bGxlZCBmaWxlcyB0byBHUk9VUC4KLSsgIC1tIE1PREUgICAgICAgJGNobW9kcHJvZyBpbnN0YWxs ZWQgZmlsZXMgdG8gTU9ERS4KLSsgIC1vIFVTRVIgICAgICAgJGNob3ducHJvZyBpbnN0YWxsZWQg ZmlsZXMgdG8gVVNFUi4KLSsgIC1zICAgICAgICAgICAgJHN0cmlwcHJvZyBpbnN0YWxsZWQgZmls ZXMuCi0rICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RPUlkuCi0rICAtVCAgICAg ICAgICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEgZGlyZWN0b3J5LgotKwotK0Vu dmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb21tYW5kczoKLSsgIENI R1JQUFJPRyBDSE1PRFBST0cgQ0hPV05QUk9HIENNUFBST0cgQ1BQUk9HIE1LRElSUFJPRyBNVlBS T0cKLSsgIFJNUFJPRyBTVFJJUFBST0cKLSsiCi0rCi0rd2hpbGUgdGVzdCAkIyAtbmUgMDsgZG8K LSsgIGNhc2UgJDEgaW4KLSsgICAgLWMpIDs7Ci0rCi0rICAgIC1DKSBjb3B5X29uX2NoYW5nZT10 cnVlOzsKLSsKLSsgICAgLWQpIGRpcl9hcmc9dHJ1ZTs7Ci0rCi0rICAgIC1nKSBjaGdycGNtZD0i JGNoZ3JwcHJvZyAkMiIKLSsJc2hpZnQ7OwotKwotKyAgICAtLWhlbHApIGVjaG8gIiR1c2FnZSI7 IGV4aXQgJD87OwotKwotKyAgICAtbSkgbW9kZT0kMgotKwljYXNlICRtb2RlIGluCi0rCSAgKicg JyogfCAqJwknKiB8IConCi0rJyoJICB8IConKicqIHwgKic/JyogfCAqJ1snKikKLSsJICAgIGVj aG8gIiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKLSsJICAgIGV4aXQgMTs7Ci0rCWVzYWMK LSsJc2hpZnQ7OwotKwotKyAgICAtbykgY2hvd25jbWQ9IiRjaG93bnByb2cgJDIiCi0rCXNoaWZ0 OzsKLSsKLSsgICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2c7OwotKwotKyAgICAtdCkgZHN0X2Fy Zz0kMgotKwlzaGlmdDs7Ci0rCi0rICAgIC1UKSBub190YXJnZXRfZGlyZWN0b3J5PXRydWU7Owot KwotKyAgICAtLXZlcnNpb24pIGVjaG8gIiQwICRzY3JpcHR2ZXJzaW9uIjsgZXhpdCAkPzs7Ci0r Ci0rICAgIC0tKQlzaGlmdAotKwlicmVhazs7Ci0rCi0rICAgIC0qKQllY2hvICIkMDogaW52YWxp ZCBvcHRpb246ICQxIiA+JjIKLSsJZXhpdCAxOzsKLSsKLSsgICAgKikgIGJyZWFrOzsKLSsgIGVz YWMKLSsgIHNoaWZ0Ci0rZG9uZQotKwotK2lmIHRlc3QgJCMgLW5lIDAgJiYgdGVzdCAteiAiJGRp cl9hcmckZHN0X2FyZyI7IHRoZW4KLSsgICMgV2hlbiAtZCBpcyB1c2VkLCBhbGwgcmVtYWluaW5n IGFyZ3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgotKyAgIyBXaGVuIC10IGlzIHVz ZWQsIHRoZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IHNwZWNpZmllZC4KLSsgICMgT3RoZXJ3aXNl LCB0aGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24uICBSZW1vdmUgaXQgZnJvbSAk QC4KLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGlmIHRlc3QgLW4gIiRkc3RfYXJnIjsgdGhlbgot KyAgICAgICMgJEAgaXMgbm90IGVtcHR5OiBpdCBjb250YWlucyBhdCBsZWFzdCAkYXJnLgotKyAg ICAgIHNldCBmbm9yZCAiJEAiICIkZHN0X2FyZyIKLSsgICAgICBzaGlmdCAjIGZub3JkCi0rICAg IGZpCi0rICAgIHNoaWZ0ICMgYXJnCi0rICAgIGRzdF9hcmc9JGFyZwotKyAgZG9uZQotK2ZpCi0r Ci0raWYgdGVzdCAkIyAtZXEgMDsgdGhlbgotKyAgaWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVu Ci0rICAgIGVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmllZC4iID4mMgotKyAgICBleGl0 IDEKLSsgIGZpCi0rICAjIEl0J3MgT0sgdG8gY2FsbCBgaW5zdGFsbC1zaCAtZCcgd2l0aG91dCBh cmd1bWVudC4KLSsgICMgVGhpcyBjYW4gaGFwcGVuIHdoZW4gY3JlYXRpbmcgY29uZGl0aW9uYWwg ZGlyZWN0b3JpZXMuCi0rICBleGl0IDAKLStmaQotKwotK2lmIHRlc3QgLXogIiRkaXJfYXJnIjsg dGhlbgotKyAgdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMgMTUKLSsKLSsgICMgU2V0IHVt YXNrIHNvIGFzIG5vdCB0byBjcmVhdGUgdGVtcHMgd2l0aCB0b28tZ2VuZXJvdXMgbW9kZXMuCi0r ICAjIEhvd2V2ZXIsICdzdHJpcCcgcmVxdWlyZXMgYm90aCByZWFkIGFuZCB3cml0ZSBhY2Nlc3Mg dG8gdGVtcHMuCi0rICBjYXNlICRtb2RlIGluCi0rICAgICMgT3B0aW1pemUgY29tbW9uIGNhc2Vz LgotKyAgICAqNjQ0KSBjcF91bWFzaz0xMzM7OwotKyAgICAqNzU1KSBjcF91bWFzaz0yMjs7Ci0r Ci0rICAgICpbMC03XSkKLSsgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCi0rCXVf cGx1c19ydz0KLSsgICAgICBlbHNlCi0rCXVfcGx1c19ydz0nJSAyMDAnCi0rICAgICAgZmkKLSsg ICAgICBjcF91bWFzaz1gZXhwciAnKCcgNzc3IC0gJG1vZGUgJSAxMDAwICcpJyAkdV9wbHVzX3J3 YDs7Ci0rICAgICopCi0rICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgotKwl1X3Bs dXNfcnc9Ci0rICAgICAgZWxzZQotKwl1X3BsdXNfcnc9LHUrcncKLSsgICAgICBmaQotKyAgICAg IGNwX3VtYXNrPSRtb2RlJHVfcGx1c19ydzs7Ci0rICBlc2FjCi0rZmkKLSsKLStmb3Igc3JjCi0r ZG8KLSsgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KLSsgIGNhc2UgJHNyYyBp bgotKyAgICAtKikgc3JjPS4vJHNyYzs7Ci0rICBlc2FjCi0rCi0rICBpZiB0ZXN0IC1uICIkZGly X2FyZyI7IHRoZW4KLSsgICAgZHN0PSRzcmMKLSsgICAgZHN0ZGlyPSRkc3QKLSsgICAgdGVzdCAt ZCAiJGRzdGRpciIKLSsgICAgZHN0ZGlyX3N0YXR1cz0kPwotKyAgZWxzZQotKwotKyAgICAjIFdh aXRpbmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIkY3Bwcm9nICRzcmMgJGRzdHRt cCIgY29tbWFuZAotKyAgICAjIG1pZ2h0IGNhdXNlIGRpcmVjdG9yaWVzIHRvIGJlIGNyZWF0ZWQs IHdoaWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCi0rICAgICMgaWYgJHNyYyAoYW5kIHRodXMg JGRzdHRtcCkgY29udGFpbnMgJyonLgotKyAgICBpZiB0ZXN0ICEgLWYgIiRzcmMiICYmIHRlc3Qg ISAtZCAiJHNyYyI7IHRoZW4KLSsgICAgICBlY2hvICIkMDogJHNyYyBkb2VzIG5vdCBleGlzdC4i ID4mMgotKyAgICAgIGV4aXQgMQotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0IC16ICIkZHN0X2Fy ZyI7IHRoZW4KLSsgICAgICBlY2hvICIkMDogbm8gZGVzdGluYXRpb24gc3BlY2lmaWVkLiIgPiYy Ci0rICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0rICAgIGRzdD0kZHN0X2FyZwotKyAgICAjIFBy b3RlY3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCi0rICAgIGNhc2UgJGRzdCBpbgotKyAgICAg IC0qKSBkc3Q9Li8kZHN0OzsKLSsgICAgZXNhYwotKwotKyAgICAjIElmIGRlc3RpbmF0aW9uIGlz IGEgZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1lOyB3b24ndCB3b3JrCi0rICAg ICMgaWYgZG91YmxlIHNsYXNoZXMgYXJlbid0IGlnbm9yZWQuCi0rICAgIGlmIHRlc3QgLWQgIiRk c3QiOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAiJG5vX3RhcmdldF9kaXJlY3RvcnkiOyB0aGVu Ci0rCWVjaG8gIiQwOiAkZHN0X2FyZzogSXMgYSBkaXJlY3RvcnkiID4mMgotKwlleGl0IDEKLSsg ICAgICBmaQotKyAgICAgIGRzdGRpcj0kZHN0Ci0rICAgICAgZHN0PSRkc3RkaXIvYGJhc2VuYW1l ICIkc3JjImAKLSsgICAgICBkc3RkaXJfc3RhdHVzPTAKLSsgICAgZWxzZQotKyAgICAgICMgUHJl ZmVyIGRpcm5hbWUsIGJ1dCBmYWxsIGJhY2sgb24gYSBzdWJzdGl0dXRlIGlmIGRpcm5hbWUgZmFp bHMuCi0rICAgICAgZHN0ZGlyPWAKLSsJKGRpcm5hbWUgIiRkc3QiKSAyPi9kZXYvbnVsbCB8fAot KwlleHByIFgiJGRzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJICAg ICBYIiRkc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSAgICAgWCIkZHN0IiA6ICdYXCgvL1wp JCcgXHwgXAotKwkgICAgIFgiJGRzdCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0r CWVjaG8gWCIkZHN0IiB8Ci0rCSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwv KiQvewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9eWFwoXC9cL1wpW14vXS4q L3sKLSsJCSAgIHMvL1wxLwotKwkJICAgcQotKwkJIH0KLSsJCSAvXlhcKFwvXC9cKSQvewotKwkJ ICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9eWFwoXC9cKS4qL3sKLSsJCSAgIHMvL1wx LwotKwkJICAgcQotKwkJIH0KLSsJCSBzLy4qLy4vOyBxJwotKyAgICAgIGAKLSsKLSsgICAgICB0 ZXN0IC1kICIkZHN0ZGlyIgotKyAgICAgIGRzdGRpcl9zdGF0dXM9JD8KLSsgICAgZmkKLSsgIGZp Ci0rCi0rICBvYnNvbGV0ZV9ta2Rpcl91c2VkPWZhbHNlCi0rCi0rICBpZiB0ZXN0ICRkc3RkaXJf c3RhdHVzICE9IDA7IHRoZW4KLSsgICAgY2FzZSAkcG9zaXhfbWtkaXIgaW4KLSsgICAgICAnJykK LSsJIyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9kZSA3NTUgYXMgbW9kaWZpZWQg YnkgdGhlIHVtYXNrLgotKwkjIFRoaXMgaXMgbGlrZSBGcmVlQlNEICdpbnN0YWxsJyBhcyBvZiAx OTk3LTEwLTI4LgotKwl1bWFzaz1gdW1hc2tgCi0rCWNhc2UgJHN0cmlwY21kLiR1bWFzayBpbgot KwkgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgotKwkgICpbMjM2N11bMjM2N10pIG1rZGlyX3Vt YXNrPSR1bWFzazs7Ci0rCSAgLiowWzAyXVswMl0gfCAuWzAyXVswMl0gfCAuWzAyXSkgbWtkaXJf dW1hc2s9MjI7OwotKwotKwkgICpbMC03XSkKLSsJICAgIG1rZGlyX3VtYXNrPWBleHByICR1bWFz ayArIDIyIFwKLSsJICAgICAgLSAkdW1hc2sgJSAxMDAgJSA0MCArICR1bWFzayAlIDIwIFwKLSsJ ICAgICAgLSAkdW1hc2sgJSAxMCAlIDQgKyAkdW1hc2sgJSAyCi0rCSAgICBgOzsKLSsJICAqKSBt a2Rpcl91bWFzaz0kdW1hc2ssZ28tdzs7Ci0rCWVzYWMKLSsKLSsJIyBXaXRoIC1kLCBjcmVhdGUg dGhlIG5ldyBkaXJlY3Rvcnkgd2l0aCB0aGUgdXNlci1zcGVjaWZpZWQgbW9kZS4KLSsJIyBPdGhl cndpc2UsIHJlbHkgb24gJG1rZGlyX3VtYXNrLgotKwlpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRo ZW4KLSsJICBta2Rpcl9tb2RlPS1tJG1vZGUKLSsJZWxzZQotKwkgIG1rZGlyX21vZGU9Ci0rCWZp Ci0rCi0rCXBvc2l4X21rZGlyPWZhbHNlCi0rCWNhc2UgJHVtYXNrIGluCi0rCSAgKlsxMjM1Njdd WzAtN11bMC03XSkKLSsJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0cyB1K3d4IGJpdHMgcmVnYXJk bGVzcyBvZiB1bWFzaywgd2hpY2gKLSsJICAgICMgaXMgaW5jb21wYXRpYmxlIHdpdGggRnJlZUJT RCAnaW5zdGFsbCcgd2hlbiAodW1hc2sgJiAzMDApICE9IDAuCi0rCSAgICA7OwotKwkgICopCi0r CSAgICB0bXBkaXI9JHtUTVBESVItL3RtcH0vaW5zJFJBTkRPTS0kJAotKwkgICAgdHJhcCAncmV0 PSQ/OyBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIgMj4vZGV2L251bGw7IGV4aXQgJHJldCcg MAotKwotKwkgICAgaWYgKHVtYXNrICRta2Rpcl91bWFzayAmJgotKwkJZXhlYyAkbWtkaXJwcm9n ICRta2Rpcl9tb2RlIC1wIC0tICIkdG1wZGlyL2QiKSA+L2Rldi9udWxsIDI+JjEKLSsJICAgIHRo ZW4KLSsJICAgICAgaWYgdGVzdCAteiAiJGRpcl9hcmciIHx8IHsKLSsJCSAgICMgQ2hlY2sgZm9y IFBPU0lYIGluY29tcGF0aWJpbGl0aWVzIHdpdGggLW0uCi0rCQkgICAjIEhQLVVYIDExLjIzIGFu ZCBJUklYIDYuNSBta2RpciAtbSAtcCBzZXRzIGdyb3VwLSBvcgotKwkJICAgIyBvdGhlci13cml0 ZWFibGUgYml0IG9mIHBhcmVudCBkaXJlY3Rvcnkgd2hlbiBpdCBzaG91bGRuJ3QuCi0rCQkgICAj IEZyZWVCU0QgNi4xIG1rZGlyIC1tIC1wIHNldHMgbW9kZSBvZiBleGlzdGluZyBkaXJlY3Rvcnku Ci0rCQkgICBsc19sZF90bXBkaXI9YGxzIC1sZCAiJHRtcGRpciJgCi0rCQkgICBjYXNlICRsc19s ZF90bXBkaXIgaW4KLSsJCSAgICAgZD8/Pz8tP3ItKikgZGlmZmVyZW50X21vZGU9NzAwOzsKLSsJ CSAgICAgZD8/Pz8tPy0tKikgZGlmZmVyZW50X21vZGU9NzU1OzsKLSsJCSAgICAgKikgZmFsc2U7 OwotKwkJICAgZXNhYyAmJgotKwkJICAgJG1rZGlycHJvZyAtbSRkaWZmZXJlbnRfbW9kZSAtcCAt LSAiJHRtcGRpciIgJiYgewotKwkJICAgICBsc19sZF90bXBkaXJfMT1gbHMgLWxkICIkdG1wZGly ImAKLSsJCSAgICAgdGVzdCAiJGxzX2xkX3RtcGRpciIgPSAiJGxzX2xkX3RtcGRpcl8xIgotKwkJ ICAgfQotKwkJIH0KLSsJICAgICAgdGhlbiBwb3NpeF9ta2Rpcj06Ci0rCSAgICAgIGZpCi0rCSAg ICAgIHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIgotKwkgICAgZWxzZQotKwkgICAgICAjIFJl bW92ZSBhbnkgZGlycyBsZWZ0IGJlaGluZCBieSBhbmNpZW50IG1rZGlyIGltcGxlbWVudGF0aW9u cy4KLSsJICAgICAgcm1kaXIgLi8kbWtkaXJfbW9kZSAuLy1wIC4vLS0gMj4vZGV2L251bGwKLSsJ ICAgIGZpCi0rCSAgICB0cmFwICcnIDA7OwotKwllc2FjOzsKLSsgICAgZXNhYwotKwotKyAgICBp ZgotKyAgICAgICRwb3NpeF9ta2RpciAmJiAoCi0rCXVtYXNrICRta2Rpcl91bWFzayAmJgotKwkk ZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiCi0rICAgICAg KQotKyAgICB0aGVuIDoKLSsgICAgZWxzZQotKwotKyAgICAgICMgVGhlIHVtYXNrIGlzIHJpZGlj dWxvdXMsIG9yIG1rZGlyIGRvZXMgbm90IGNvbmZvcm0gdG8gUE9TSVgsCi0rICAgICAgIyBvciBp dCBmYWlsZWQgcG9zc2libHkgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24uICBDcmVhdGUgdGhlCi0r ICAgICAgIyBkaXJlY3RvcnkgdGhlIHNsb3cgd2F5LCBzdGVwIGJ5IHN0ZXAsIGNoZWNraW5nIGZv ciByYWNlcyBhcyB3ZSBnby4KLSsKLSsgICAgICBjYXNlICRkc3RkaXIgaW4KLSsJLyopIHByZWZp eD0nLyc7OwotKwktKikgcHJlZml4PScuLyc7OwotKwkqKSAgcHJlZml4PScnOzsKLSsgICAgICBl c2FjCi0rCi0rICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIKLSsKLSsgICAgICBv SUZTPSRJRlMKLSsgICAgICBJRlM9LwotKyAgICAgICRwb3NpeF9nbG9iIHNldCAtZgotKyAgICAg IHNldCBmbm9yZCAkZHN0ZGlyCi0rICAgICAgc2hpZnQKLSsgICAgICAkcG9zaXhfZ2xvYiBzZXQg K2YKLSsgICAgICBJRlM9JG9JRlMKLSsKLSsgICAgICBwcmVmaXhlcz0KLSsKLSsgICAgICBmb3Ig ZAotKyAgICAgIGRvCi0rCXRlc3QgLXogIiRkIiAmJiBjb250aW51ZQotKwotKwlwcmVmaXg9JHBy ZWZpeCRkCi0rCWlmIHRlc3QgLWQgIiRwcmVmaXgiOyB0aGVuCi0rCSAgcHJlZml4ZXM9Ci0rCWVs c2UKLSsJICBpZiAkcG9zaXhfbWtkaXI7IHRoZW4KLSsJICAgICh1bWFzaz0kbWtkaXJfdW1hc2sg JiYKLSsJICAgICAkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3Rk aXIiKSAmJiBicmVhawotKwkgICAgIyBEb24ndCBmYWlsIGlmIHR3byBpbnN0YW5jZXMgYXJlIHJ1 bm5pbmcgY29uY3VycmVudGx5LgotKwkgICAgdGVzdCAtZCAiJHByZWZpeCIgfHwgZXhpdCAxCi0r CSAgZWxzZQotKwkgICAgY2FzZSAkcHJlZml4IGluCi0rCSAgICAgICpcJyopIHFwcmVmaXg9YGVj aG8gIiRwcmVmaXgiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKLSsJICAgICAgKikgcXBy ZWZpeD0kcHJlZml4OzsKLSsJICAgIGVzYWMKLSsJICAgIHByZWZpeGVzPSIkcHJlZml4ZXMgJyRx cHJlZml4JyIKLSsJICBmaQotKwlmaQotKwlwcmVmaXg9JHByZWZpeC8KLSsgICAgICBkb25lCi0r Ci0rICAgICAgaWYgdGVzdCAtbiAiJHByZWZpeGVzIjsgdGhlbgotKwkjIERvbid0IGZhaWwgaWYg dHdvIGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCi0rCSh1bWFzayAkbWtkaXJf dW1hc2sgJiYKLSsJIGV2YWwgIlwkZG9pdF9leGVjIFwkbWtkaXJwcm9nICRwcmVmaXhlcyIpIHx8 Ci0rCSAgdGVzdCAtZCAiJGRzdGRpciIgfHwgZXhpdCAxCi0rCW9ic29sZXRlX21rZGlyX3VzZWQ9 dHJ1ZQotKyAgICAgIGZpCi0rICAgIGZpCi0rICBmaQotKwotKyAgaWYgdGVzdCAtbiAiJGRpcl9h cmciOyB0aGVuCi0rICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQg IiRkc3QiOyB9ICYmCi0rICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8fCAkZG9pdCAkY2hncnBj bWQgIiRkc3QiOyB9ICYmCi0rICAgIHsgdGVzdCAiJG9ic29sZXRlX21rZGlyX3VzZWQkY2hvd25j bWQkY2hncnBjbWQiID0gZmFsc2UgfHwKLSsgICAgICB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRk b2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdCI7IH0gfHwgZXhpdCAxCi0rICBlbHNlCi0rCi0rICAg ICMgTWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhlIHByb3BlciBkaXJlY3Rv cnkuCi0rICAgIGRzdHRtcD0kZHN0ZGlyL19pbnN0LiQkXwotKyAgICBybXRtcD0kZHN0ZGlyL19y bS4kJF8KLSsKLSsgICAgIyBUcmFwIHRvIGNsZWFuIHVwIHRob3NlIHRlbXAgZmlsZXMgYXQgZXhp dC4KLSsgICAgdHJhcCAncmV0PSQ/OyBybSAtZiAiJGRzdHRtcCIgIiRybXRtcCIgJiYgZXhpdCAk cmV0JyAwCi0rCi0rICAgICMgQ29weSB0aGUgZmlsZSBuYW1lIHRvIHRoZSB0ZW1wIG5hbWUuCi0r ICAgICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bwcm9nICIkc3JjIiAiJGRzdHRt cCIpICYmCi0rCi0rICAgICMgYW5kIHNldCBhbnkgb3B0aW9uczsgZG8gY2htb2QgbGFzdCB0byBw cmVzZXJ2ZSBzZXR1aWQgYml0cy4KLSsgICAgIwotKyAgICAjIElmIGFueSBvZiB0aGVzZSBmYWls LCB3ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50IHRvCi0rICAgICMgaWdub3Jl IGVycm9ycyBmcm9tIGFueSBvZiB0aGVzZSwganVzdCBtYWtlIHN1cmUgbm90IHRvIGlnbm9yZQot KyAgICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNwcHJvZyAkc3JjICRkc3R0bXAi IGNvbW1hbmQuCi0rICAgICMKLSsgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRj aG93bmNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRk b2l0ICRjaGdycGNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkc3RyaXBjbWQi IHx8ICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkY2ht b2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdHRtcCI7IH0gJiYKLSsKLSsgICAg IyBJZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291bGRuJ3QgY2hhbmdlIHRoZSBm aWxlLgotKyAgICBpZiAkY29weV9vbl9jaGFuZ2UgJiYKLSsgICAgICAgb2xkPWBMQ19BTEw9QyBs cyAtZGxMICIkZHN0IgkyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgbmV3PWBMQ19BTEw9QyBscyAt ZGxMICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKLSsKLSsgICAgICAgZXZhbCAiJGluaXRpYWxp emVfcG9zaXhfZ2xvYiIgJiYKLSsgICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mICYmCi0rICAgICAg IHNldCBYICRvbGQgJiYgb2xkPTokMjokNDokNTokNiAmJgotKyAgICAgICBzZXQgWCAkbmV3ICYm IG5ldz06JDI6JDQ6JDU6JDYgJiYKLSsgICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmICYmCi0rCi0r ICAgICAgIHRlc3QgIiRvbGQiID0gIiRuZXciICYmCi0rICAgICAgICRjbXBwcm9nICIkZHN0IiAi JGRzdHRtcCIgPi9kZXYvbnVsbCAyPiYxCi0rICAgIHRoZW4KLSsgICAgICBybSAtZiAiJGRzdHRt cCIKLSsgICAgZWxzZQotKyAgICAgICMgUmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFsIGRlc3Rp bmF0aW9uLgotKyAgICAgICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRtcCIgIiRkc3QiIDI+L2Rldi9u dWxsIHx8Ci0rCi0rICAgICAgIyBUaGUgcmVuYW1lIGZhaWxlZCwgcGVyaGFwcyBiZWNhdXNlIG12 IGNhbid0IHJlbmFtZSBzb21ldGhpbmcgZWxzZQotKyAgICAgICMgdG8gaXRzZWxmLCBvciBwZXJo YXBzIGJlY2F1c2UgbXYgaXMgc28gYW5jaWVudCB0aGF0IGl0IGRvZXMgbm90Ci0rICAgICAgIyBz dXBwb3J0IC1mLgotKyAgICAgIHsKLSsJIyBOb3cgcmVtb3ZlIG9yIG1vdmUgYXNpZGUgYW55IG9s ZCBmaWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLgotKwkjIFdlIHRyeSB0aGlzIHR3byB3YXlz IHNpbmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQotKwkjIHN5c3RlbXMgYW5kIHRo ZSBkZXN0aW5hdGlvbiBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90aGVyCi0rCSMgcmVhc29ucy4g IEluIHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAgbWlnaHQgZmFpbCBidXQgdGhlIG5ldwot KwkjIGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5LgotKwl7Ci0rCSAgdGVz dCAhIC1mICIkZHN0IiB8fAotKwkgICRkb2l0ICRybWNtZCAtZiAiJGRzdCIgMj4vZGV2L251bGwg fHwKLSsJICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdCIgIiRybXRtcCIgMj4vZGV2L251bGwgJiYK LSsJICAgIHsgJGRvaXQgJHJtY21kIC1mICIkcm10bXAiIDI+L2Rldi9udWxsOyA6OyB9Ci0rCSAg fSB8fAotKwkgIHsgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVuYW1lICRkc3QiID4mMgot KwkgICAgKGV4aXQgMSk7IGV4aXQgMQotKwkgIH0KLSsJfSAmJgotKwotKwkjIE5vdyByZW5hbWUg dGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCi0rCSRkb2l0ICRtdmNtZCAiJGRzdHRt cCIgIiRkc3QiCi0rICAgICAgfQotKyAgICBmaSB8fCBleGl0IDEKLSsKLSsgICAgdHJhcCAnJyAw Ci0rICBmaQotK2RvbmUKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2YWw6IChhZGQtaG9v ayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJz Y3JpcHR2ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJI IgotKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgotKyMgRW5kOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9sdG1haW4uc2ggc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG1haW4u c2gKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRtYWluLnNoCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG1h aW4uc2gJMjAwOC0wOC0zMCAwMDoyNzoxMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNjk1 NiBAQAotKyMgbHRtYWluLnNoIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5n IHN1cHBvcnQgc2VydmljZXMuCi0rIyBOT1RFOiBDaGFuZ2luZyB0aGlzIGZpbGUgd2lsbCBub3Qg YWZmZWN0IGFueXRoaW5nIHVudGlsIHlvdSByZXJ1biBjb25maWd1cmUuCi0rIwotKyMgQ29weXJp Z2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAy MDA1LCAyMDA2LAotKyMgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rIyBPcmlnaW5hbGx5IGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxnb3JkQGdudS5haS5taXQuZWR1 PiwgMTk5NgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IK LSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1 dAotKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSsjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4sIDUx IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB LgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBw cm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVk IGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLSsjIHRoZSBzYW1lIGRpc3Ry aWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4K LSsKLStiYXNlbmFtZT0icyxeLiovLCxnIgotKwotKyMgV29yayBhcm91bmQgYmFja3dhcmQgY29t cGF0aWJpbGl0eSBpc3N1ZSBvbiBJUklYIDYuNS4gT24gSVJJWCA2LjQrLCBzaAotKyMgaXMga3No IGJ1dCB3aGVuIHRoZSBzaGVsbCBpcyBpbnZva2VkIGFzICJzaCIgYW5kIHRoZSBjdXJyZW50IHZh bHVlIG9mCi0rIyB0aGUgX1hQRyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3QgZXF1YWwgdG8g MSAob25lKSwgdGhlIHNwZWNpYWwKLSsjIHBvc2l0aW9uYWwgcGFyYW1ldGVyICQwLCB3aXRoaW4g YSBmdW5jdGlvbiBjYWxsLCBpcyB0aGUgbmFtZSBvZiB0aGUKLSsjIGZ1bmN0aW9uLgotK3Byb2dw YXRoPSIkMCIKLSsKLSsjIFRoZSBuYW1lIG9mIHRoaXMgcHJvZ3JhbToKLStwcm9nbmFtZT1gZWNo byAiJHByb2dwYXRoIiB8ICRTRUQgJGJhc2VuYW1lYAotK21vZGVuYW1lPSIkcHJvZ25hbWUiCi0r Ci0rIyBHbG9iYWwgdmFyaWFibGVzOgotK0VYSVRfU1VDQ0VTUz0wCi0rRVhJVF9GQUlMVVJFPTEK LSsKLStQUk9HUkFNPWx0bWFpbi5zaAotK1BBQ0tBR0U9bGlidG9vbAotK1ZFUlNJT049MS41LjI2 Ci0rVElNRVNUQU1QPSIgKDEuMTIyMC4yLjQ5MyAyMDA4LzAyLzAxIDE2OjU4OjE4KSIKLSsKLSsj IEJlIEJvdXJuZSBjb21wYXRpYmxlICh0YWtlbiBmcm9tIEF1dG9jb25mOl9BU19CT1VSTkVfQ09N UEFUSUJMRSkuCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBz aCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsg ICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwg d2hpY2gKLSsgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1 cmUuCi0rICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLSsgIHNldG9wdCBOT19HTE9CX1NV QlNUCi0rZWxzZQotKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluICpwb3NpeCopIHNl dCAtbyBwb3NpeDs7IGVzYWMKLStmaQotK0JJTl9TSD14cGc0OyBleHBvcnQgQklOX1NIICMgZm9y IFRydTY0Ci0rRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotKwotKyMg Q2hlY2sgdGhhdCB3ZSBoYXZlIGEgd29ya2luZyAkZWNoby4KLStpZiB0ZXN0ICJYJDEiID0gWC0t bm8tcmVleGVjOyB0aGVuCi0rICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBj b250aW51ZS4KLSsgIHNoaWZ0Ci0rZWxpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsg dGhlbgotKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3Zl cgotKyAgOgotK2VsaWYgdGVzdCAiWGAoJGVjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQn OyB0aGVuCi0rICAjIFlpcHBlZSwgJGVjaG8gd29ya3MhCi0rICA6Ci0rZWxzZQotKyAgIyBSZXN0 YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXliZSAkZWNobyB3aWxsIHdv cmsuCi0rICBleGVjICRTSEVMTCAiJHByb2dwYXRoIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KLStm aQotKwotK2lmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCi0rICAjIHVzZWQg YXMgZmFsbGJhY2sgZWNobwotKyAgc2hpZnQKLSsgIGNhdCA8PEVPRgotKyQqCi0rRU9GCi0rICBl eGl0ICRFWElUX1NVQ0NFU1MKLStmaQotKwotK2RlZmF1bHRfbW9kZT0KLStoZWxwPSJUcnkgXGAk cHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCi0rbWFnaWM9IiUlJU1BR0lD IHZhcmlhYmxlJSUlIgotK21rZGlyPSJta2RpciIKLSttdj0ibXYgLWYiCi0rcm09InJtIC1mIgot KwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAg SXQgYmFja3NsYXNoaWZpZXMKLSsjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2 ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgotK1hzZWQ9IiR7U0VEfSInIC1lIDFzL15Y Ly8nCi0rc2VkX3F1b3RlX3N1YnN0PSdzL1woW1xcYFxcIiRcXFxcXVwpL1xcXDEvZycKLSsjIHRl c3QgRUJDRElDIG9yIEFTQ0lJCi0rY2FzZSBgZWNobyBYfHRyIFggJ1wxMDEnYCBpbgotKyBBKSAj IEFTQ0lJIGJhc2VkIHN5c3RlbQotKyAgICAjIFxuIGlzIG5vdCBpbnRlcnByZXRlZCBjb3JyZWN0 bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCi0rICBTUDJOTD0ndHIgXDA0MCBcMDEyJwotKyAg TkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJwotKyAgOzsKLSsgKikgIyBFQkNESUMgYmFzZWQg c3lzdGVtCi0rICBTUDJOTD0ndHIgXDEwMCBcbicKLSsgIE5MMlNQPSd0ciBcclxuIFwxMDBcMTAw JwotKyAgOzsKLStlc2FjCi0rCi0rIyBOTFMgbnVpc2FuY2VzLgotKyMgT25seSBzZXQgTEFORyBh bmQgTENfQUxMIHRvIEMgaWYgYWxyZWFkeSBzZXQuCi0rIyBUaGVzZSBtdXN0IG5vdCBiZSBzZXQg dW5jb25kaXRpb25hbGx5IGJlY2F1c2Ugbm90IGFsbCBzeXN0ZW1zIHVuZGVyc3RhbmQKLSsjIGUu Zy4gTEFORz1DIChub3RhYmx5IFNDTykuCi0rIyBXZSBzYXZlIHRoZSBvbGQgdmFsdWVzIHRvIHJl c3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KLStsdF9lbnY9Ci0rZm9yIGx0X3ZhciBpbiBMQU5H IExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExDX01FU1NBR0VTCi0rZG8KLSsg IGV2YWwgImlmIHRlc3QgXCJcJHskbHRfdmFyK3NldH1cIiA9IHNldDsgdGhlbgotKwkgIHNhdmVf JGx0X3Zhcj1cJCRsdF92YXIKLSsJICBsdF9lbnY9XCIkbHRfdmFyPVwkJGx0X3ZhciBcJGx0X2Vu dlwiCi0rCSAgJGx0X3Zhcj1DCi0rCSAgZXhwb3J0ICRsdF92YXIKLSsJZmkiCi0rZG9uZQotKwot K2lmIHRlc3QgLW4gIiRsdF9lbnYiOyB0aGVuCi0rICBsdF9lbnY9ImVudiAkbHRfZW52IgotK2Zp Ci0rCi0rIyBNYWtlIHN1cmUgSUZTIGhhcyBhIHNlbnNpYmxlIGRlZmF1bHQKLStsdF9ubD0nCi0r JwotK0lGUz0iIAkkbHRfbmwiCi0rCi0raWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0g eWVzICYmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgIT0geWVzOyB0aGVuCi0rICAkZWNobyAiJG1v ZGVuYW1lOiBub3QgY29uZmlndXJlZCB0byBidWlsZCBhbnkga2luZCBvZiBsaWJyYXJ5IiAxPiYy Ci0rICAkZWNobyAiRmF0YWwgY29uZmlndXJhdGlvbiBlcnJvci4gIFNlZSB0aGUgJFBBQ0tBR0Ug ZG9jcyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDE+JjIKLSsgIGV4aXQgJEVYSVRfRkFJTFVSRQot K2ZpCi0rCi0rIyBHbG9iYWwgdmFyaWFibGVzLgotK21vZGU9JGRlZmF1bHRfbW9kZQotK25vbm9w dD0KLStwcmV2PQotK3ByZXZvcHQ9Ci0rcnVuPQotK3Nob3c9IiRlY2hvIgotK3Nob3dfaGVscD0K LStleGVjdXRlX2RsZmlsZXM9Ci0rZHVwbGljYXRlX2RlcHM9bm8KLStwcmVzZXJ2ZV9hcmdzPQot K2xvMm89InMvXFwubG9cJC8uJHtvYmpleHR9LyIKLStvMmxvPSJzL1xcLiR7b2JqZXh0fVwkLy5s by8iCi0rZXh0cmFjdGVkX2FyY2hpdmVzPQotK2V4dHJhY3RlZF9zZXJpYWw9MAotKwotKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIFNoZWxsIGZ1bmN0aW9uIGRlZmlu aXRpb25zOgotKyMgVGhpcyBzZWVtcyB0byBiZSB0aGUgYmVzdCBwbGFjZSBmb3IgdGhlbQotKwot KyMgZnVuY19ta3RlbXBkaXIgW3N0cmluZ10KLSsjIE1ha2UgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5 IHRoYXQgd29uJ3QgY2xhc2ggd2l0aCBvdGhlciBydW5uaW5nCi0rIyBsaWJ0b29sIHByb2Nlc3Nl cywgYW5kIGF2b2lkcyByYWNlIGNvbmRpdGlvbnMgaWYgcG9zc2libGUuICBJZgotKyMgZ2l2ZW4s IFNUUklORyBpcyB0aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGlyZWN0b3J5LgotK2Z1bmNfbWt0ZW1w ZGlyICgpCi0rewotKyAgICBteV90ZW1wbGF0ZT0iJHtUTVBESVItL3RtcH0vJHsxLSRwcm9nbmFt ZX0iCi0rCi0rICAgIGlmIHRlc3QgIiRydW4iID0gIjoiOyB0aGVuCi0rICAgICAgIyBSZXR1cm4g YSBkaXJlY3RvcnkgbmFtZSwgYnV0IGRvbid0IGNyZWF0ZSBpdCBpbiBkcnktcnVuIG1vZGUKLSsg ICAgICBteV90bXBkaXI9IiR7bXlfdGVtcGxhdGV9LSQkIgotKyAgICBlbHNlCi0rCi0rICAgICAg IyBJZiBta3RlbXAgd29ya3MsIHVzZSB0aGF0IGZpcnN0IGFuZCBmb3JlbW9zdAotKyAgICAgIG15 X3RtcGRpcj1gbWt0ZW1wIC1kICIke215X3RlbXBsYXRlfS1YWFhYWFhYWCIgMj4vZGV2L251bGxg Ci0rCi0rICAgICAgaWYgdGVzdCAhIC1kICIkbXlfdG1wZGlyIjsgdGhlbgotKwkjIEZhaWxpbmcg dGhhdCwgYXQgbGVhc3QgdHJ5IGFuZCB1c2UgJFJBTkRPTSB0byBhdm9pZCBhIHJhY2UKLSsJbXlf dG1wZGlyPSIke215X3RlbXBsYXRlfS0ke1JBTkRPTS0wfSQkIgotKwotKwlzYXZlX21rdGVtcGRp cl91bWFzaz1gdW1hc2tgCi0rCXVtYXNrIDAwNzcKLSsJJG1rZGlyICIkbXlfdG1wZGlyIgotKwl1 bWFzayAkc2F2ZV9ta3RlbXBkaXJfdW1hc2sKLSsgICAgICBmaQotKwotKyAgICAgICMgSWYgd2Un cmUgbm90IGluIGRyeS1ydW4gbW9kZSwgYm9tYiBvdXQgb24gZmFpbHVyZQotKyAgICAgIHRlc3Qg LWQgIiRteV90bXBkaXIiIHx8IHsKLSsgICAgICAgICRlY2hvICJjYW5ub3QgY3JlYXRlIHRlbXBv cmFyeSBkaXJlY3RvcnkgXGAkbXlfdG1wZGlyJyIgMT4mMgotKwlleGl0ICRFWElUX0ZBSUxVUkUK LSsgICAgICB9Ci0rICAgIGZpCi0rCi0rICAgICRlY2hvICJYJG15X3RtcGRpciIgfCAkWHNlZAot K30KLSsKLSsKLSsjIGZ1bmNfd2luMzJfbGliaWQgYXJnCi0rIyByZXR1cm4gdGhlIGxpYnJhcnkg dHlwZSBvZiBmaWxlICdhcmcnCi0rIwotKyMgTmVlZCBhIGxvdCBvZiBnb28gdG8gaGFuZGxlICpi b3RoKiBETExzIGFuZCBpbXBvcnQgbGlicwotKyMgSGFzIHRvIGJlIGEgc2hlbGwgZnVuY3Rpb24g aW4gb3JkZXIgdG8gJ2VhdCcgdGhlIGFyZ3VtZW50Ci0rIyB0aGF0IGlzIHN1cHBsaWVkIHdoZW4g JGZpbGVfbWFnaWNfY29tbWFuZCBpcyBjYWxsZWQuCi0rZnVuY193aW4zMl9saWJpZCAoKQotK3sK LSsgIHdpbjMyX2xpYmlkX3R5cGU9InVua25vd24iCi0rICB3aW4zMl9maWxlcmVzPWBmaWxlIC1M ICQxIDI+L2Rldi9udWxsYAotKyAgY2FzZSAkd2luMzJfZmlsZXJlcyBpbgotKyAgKmFyXCBhcmNo aXZlXCBpbXBvcnRcIGxpYnJhcnkqKSAjIGRlZmluaXRlbHkgaW1wb3J0Ci0rICAgIHdpbjMyX2xp YmlkX3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCIKLSsgICAgOzsKLSsgICphclwgYXJjaGl2ZSop ICMgY291bGQgYmUgYW4gaW1wb3J0LCBvciBzdGF0aWMKLSsgICAgaWYgZXZhbCAkT0JKRFVNUCAt ZiAkMSB8ICRTRUQgLWUgJzEwcScgMj4vZGV2L251bGwgfCBcCi0rICAgICAgJEVHUkVQIC1lICdm aWxlIGZvcm1hdCBwZS1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT8nID4vZGV2L251bGwgOyB0 aGVuCi0rICAgICAgd2luMzJfbm1yZXM9YGV2YWwgJE5NIC1mIHBvc2l4IC1BICQxIHwgXAotKwkk U0VEIC1uIC1lICcxLDEwMHsKLSsJCS8gSSAvewotKwkJCXMsLiosaW1wb3J0LAotKwkJCXAKLSsJ CQlxCi0rCQkJfQotKwkJfSdgCi0rICAgICAgY2FzZSAkd2luMzJfbm1yZXMgaW4KLSsgICAgICBp bXBvcnQqKSAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0Ijs7Ci0rICAgICAg KikgICAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIHN0YXRpYyI7OwotKyAgICAg IGVzYWMKLSsgICAgZmkKLSsgICAgOzsKLSsgICpETEwqKQotKyAgICB3aW4zMl9saWJpZF90eXBl PSJ4ODYgRExMIgotKyAgICA7OwotKyAgKmV4ZWN1dGFibGUqKSAjIGJ1dCBzaGVsbCBzY3JpcHRz IGFyZSAiZXhlY3V0YWJsZSIgdG9vLi4uCi0rICAgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KLSsg ICAgKk1TXCBXaW5kb3dzXCBQRVwgSW50ZWwqKQotKyAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4 NiBETEwiCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKyAgJGVjaG8g JHdpbjMyX2xpYmlkX3R5cGUKLSt9Ci0rCi0rCi0rIyBmdW5jX2luZmVyX3RhZyBhcmcKLSsjIElu ZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIHRvIHVzZSBpZiBhbnkgYXJlIGF2YWlsYWJsZSBhbmQK LSsjIGlmIG9uZSB3YXNuJ3QgY2hvc2VuIHZpYSB0aGUgIi0tdGFnIiBjb21tYW5kIGxpbmUgb3B0 aW9uLgotKyMgT25seSBhdHRlbXB0IHRoaXMgaWYgdGhlIGNvbXBpbGVyIGluIHRoZSBiYXNlIGNv bXBpbGUKLSsjIGNvbW1hbmQgZG9lc24ndCBtYXRjaCB0aGUgZGVmYXVsdCBjb21waWxlci4KLSsj IGFyZyBpcyB1c3VhbGx5IG9mIHRoZSBmb3JtICdnY2MgLi4uJwotK2Z1bmNfaW5mZXJfdGFnICgp Ci0rewotKyAgICBpZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3RhZ3MiICYmIHRlc3QgLXogIiR0YWdu YW1lIjsgdGhlbgotKyAgICAgIENDX3F1b3RlZD0KLSsgICAgICBmb3IgYXJnIGluICRDQzsgZG8K LSsJY2FzZSAkYXJnIGluCi0rCSAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wg XAldKnwqXSp8IiIpCi0rCSAgYXJnPSJcIiRhcmdcIiIKLSsJICA7OwotKwllc2FjCi0rCUNDX3F1 b3RlZD0iJENDX3F1b3RlZCAkYXJnIgotKyAgICAgIGRvbmUKLSsgICAgICBjYXNlICRAIGluCi0r ICAgICAgIyBCbGFua3MgaW4gdGhlIGNvbW1hbmQgbWF5IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0 aGUgY2FsbGluZyBzaGVsbCwKLSsgICAgICAjIGJ1dCBub3QgZnJvbSB0aGUgQ0MgZW52aXJvbm1l bnQgdmFyaWFibGUgd2hlbiBjb25maWd1cmUgd2FzIHJ1bi4KLSsgICAgICAiICRDQyAiKiB8ICIk Q0MgIiogfCAiIGAkZWNobyAkQ0NgICIqIHwgImAkZWNobyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVk IiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRlY2hvICRDQ19xdW90ZWRgICIqIHwgImAkZWNobyAk Q0NfcXVvdGVkYCAiKikgOzsKLSsgICAgICAjIEJsYW5rcyBhdCB0aGUgc3RhcnQgb2YgJGJhc2Vf Y29tcGlsZSB3aWxsIGNhdXNlIHRoaXMgdG8gZmFpbAotKyAgICAgICMgaWYgd2UgZG9uJ3QgY2hl Y2sgZm9yIHRoZW0gYXMgd2VsbC4KLSsgICAgICAqKQotKwlmb3IgeiBpbiAkYXZhaWxhYmxlX3Rh Z3M7IGRvCi0rCSAgaWYgZ3JlcCAiXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHok IiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICAjIEV2YWx1YXRlIHRoZSBj b25maWd1cmF0aW9uLgotKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAtZSAnL14jICMjIyBCRUdJTiBM SUJUT09MIFRBRyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6 ICckeickL3AnIDwgJHByb2dwYXRoYCIKLSsJICAgIENDX3F1b3RlZD0KLSsJICAgIGZvciBhcmcg aW4gJENDOyBkbwotKwkgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIG90aGVyIHNo ZWxsIG1ldGFjaGFyYWN0ZXJzLgotKwkgICAgY2FzZSAkYXJnIGluCi0rCSAgICAgICpbXFtcflwj XF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQotKwkgICAgICBhcmc9Ilwi JGFyZ1wiIgotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgQ0NfcXVvdGVkPSIkQ0NfcXVv dGVkICRhcmciCi0rCSAgZG9uZQotKwkgICAgY2FzZSAiJEAgIiBpbgotKwkgICAgICAiICRDQyAi KiB8ICIkQ0MgIiogfCAiIGAkZWNobyAkQ0NgICIqIHwgImAkZWNobyAkQ0NgICIqIHwgIiAkQ0Nf cXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRlY2hvICRDQ19xdW90ZWRgICIqIHwgImAk ZWNobyAkQ0NfcXVvdGVkYCAiKikKLSsJICAgICAgIyBUaGUgY29tcGlsZXIgaW4gdGhlIGJhc2Ug Y29tcGlsZSBjb21tYW5kIG1hdGNoZXMKLSsJICAgICAgIyB0aGUgb25lIGluIHRoZSB0YWdnZWQg Y29uZmlndXJhdGlvbi4KLSsJICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZp Z3VyYXRpb24gd2Ugd2FudC4KLSsJICAgICAgdGFnbmFtZT0kegotKwkgICAgICBicmVhawotKwkg ICAgICA7OwotKwkgICAgZXNhYwotKwkgIGZpCi0rCWRvbmUKLSsJIyBJZiAkdGFnbmFtZSBzdGls bCBpc24ndCBzZXQsIHRoZW4gbm8gdGFnZ2VkIGNvbmZpZ3VyYXRpb24KLSsJIyB3YXMgZm91bmQg YW5kIGxldCB0aGUgdXNlciBrbm93IHRoYXQgdGhlICItLXRhZyIgY29tbWFuZAotKwkjIGxpbmUg b3B0aW9uIG11c3QgYmUgdXNlZC4KLSsJaWYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCi0rCSAg JGVjaG8gIiRtb2RlbmFtZTogdW5hYmxlIHRvIGluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIgot KwkgICRlY2hvICIkbW9kZW5hbWU6IHNwZWNpZnkgYSB0YWcgd2l0aCBcYC0tdGFnJyIgMT4mMgot KwkgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyMgICAgICAgIGVsc2UKLSsjICAgICAgICAgICRlY2hv ICIkbW9kZW5hbWU6IHVzaW5nICR0YWduYW1lIHRhZ2dlZCBjb25maWd1cmF0aW9uIgotKwlmaQot Kwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSt9Ci0rCi0rCi0rIyBmdW5jX2V4dHJhY3RfYW5f YXJjaGl2ZSBkaXIgb2xkbGliCi0rZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgKCkKLSt7Ci0rICAg IGZfZXhfYW5fYXJfZGlyPSIkMSI7IHNoaWZ0Ci0rICAgIGZfZXhfYW5fYXJfb2xkbGliPSIkMSIK LSsKLSsgICAgJHNob3cgIihjZCAkZl9leF9hbl9hcl9kaXIgJiYgJEFSIHggJGZfZXhfYW5fYXJf b2xkbGliKSIKLSsgICAgJHJ1biBldmFsICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBc JGZfZXhfYW5fYXJfb2xkbGliKSIgfHwgZXhpdCAkPwotKyAgICBpZiAoJEFSIHQgIiRmX2V4X2Fu X2FyX29sZGxpYiIgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVsbCAyPiYxKTsgdGhlbgotKyAg ICAgOgotKyAgICBlbHNlCi0rICAgICAgJGVjaG8gIiRtb2RlbmFtZTogRVJST1I6IG9iamVjdCBu YW1lIGNvbmZsaWN0czogJGZfZXhfYW5fYXJfZGlyLyRmX2V4X2FuX2FyX29sZGxpYiIgMT4mMgot KyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICBmaQotK30KLSsKLSsjIGZ1bmNfZXh0cmFj dF9hcmNoaXZlcyBnZW50b3Agb2xkbGliIC4uLgotK2Z1bmNfZXh0cmFjdF9hcmNoaXZlcyAoKQot K3sKLSsgICAgbXlfZ2VudG9wPSIkMSI7IHNoaWZ0Ci0rICAgIG15X29sZGxpYnM9JHsxKyIkQCJ9 Ci0rICAgIG15X29sZG9ianM9IiIKLSsgICAgbXlfeGxpYj0iIgotKyAgICBteV94YWJzPSIiCi0r ICAgIG15X3hkaXI9IiIKLSsgICAgbXlfc3RhdHVzPSIiCi0rCi0rICAgICRzaG93ICIke3JtfXIg JG15X2dlbnRvcCIKLSsgICAgJHJ1biAke3JtfXIgIiRteV9nZW50b3AiCi0rICAgICRzaG93ICIk bWtkaXIgJG15X2dlbnRvcCIKLSsgICAgJHJ1biAkbWtkaXIgIiRteV9nZW50b3AiCi0rICAgIG15 X3N0YXR1cz0kPwotKyAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtbmUgMCAmJiB0ZXN0ICEgLWQg IiRteV9nZW50b3AiOyB0aGVuCi0rICAgICAgZXhpdCAkbXlfc3RhdHVzCi0rICAgIGZpCi0rCi0r ICAgIGZvciBteV94bGliIGluICRteV9vbGRsaWJzOyBkbwotKyAgICAgICMgRXh0cmFjdCB0aGUg b2JqZWN0cy4KLSsgICAgICBjYXNlICRteV94bGliIGluCi0rCVtcXC9dKiB8IFtBLVphLXpdOltc XC9dKikgbXlfeGFicz0iJG15X3hsaWIiIDs7Ci0rCSopIG15X3hhYnM9YHB3ZGAiLyRteV94bGli IiA7OwotKyAgICAgIGVzYWMKLSsgICAgICBteV94bGliPWAkZWNobyAiWCRteV94bGliIiB8ICRY c2VkIC1lICdzJV4uKi8lJSdgCi0rICAgICAgbXlfeGxpYl91PSRteV94bGliCi0rICAgICAgd2hp bGUgOjsgZG8KLSsgICAgICAgIGNhc2UgIiAkZXh0cmFjdGVkX2FyY2hpdmVzICIgaW4KLSsJKiIg JG15X3hsaWJfdSAiKikKLSsJICBleHRyYWN0ZWRfc2VyaWFsPWBleHByICRleHRyYWN0ZWRfc2Vy aWFsICsgMWAKLSsJICBteV94bGliX3U9bHQkZXh0cmFjdGVkX3NlcmlhbC0kbXlfeGxpYiA7Owot KwkqKSBicmVhayA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIGV4dHJhY3RlZF9hcmNo aXZlcz0iJGV4dHJhY3RlZF9hcmNoaXZlcyAkbXlfeGxpYl91IgotKyAgICAgIG15X3hkaXI9IiRt eV9nZW50b3AvJG15X3hsaWJfdSIKLSsKLSsgICAgICAkc2hvdyAiJHtybX1yICRteV94ZGlyIgot KyAgICAgICRydW4gJHtybX1yICIkbXlfeGRpciIKLSsgICAgICAkc2hvdyAiJG1rZGlyICRteV94 ZGlyIgotKyAgICAgICRydW4gJG1rZGlyICIkbXlfeGRpciIKLSsgICAgICBleGl0X3N0YXR1cz0k PwotKyAgICAgIGlmIHRlc3QgIiRleGl0X3N0YXR1cyIgLW5lIDAgJiYgdGVzdCAhIC1kICIkbXlf eGRpciI7IHRoZW4KLSsJZXhpdCAkZXhpdF9zdGF0dXMKLSsgICAgICBmaQotKyAgICAgIGNhc2Ug JGhvc3QgaW4KLSsgICAgICAqLWRhcndpbiopCi0rCSRzaG93ICJFeHRyYWN0aW5nICRteV94YWJz IgotKwkjIERvIG5vdCBib3RoZXIgZG9pbmcgYW55dGhpbmcgaWYganVzdCBhIGRyeSBydW4KLSsJ aWYgdGVzdCAteiAiJHJ1biI7IHRoZW4KLSsJICBkYXJ3aW5fb3JpZ19kaXI9YHB3ZGAKLSsJICBj ZCAkbXlfeGRpciB8fCBleGl0ICQ/Ci0rCSAgZGFyd2luX2FyY2hpdmU9JG15X3hhYnMKLSsJICBk YXJ3aW5fY3VyZGlyPWBwd2RgCi0rCSAgZGFyd2luX2Jhc2VfYXJjaGl2ZT1gJGVjaG8gIlgkZGFy d2luX2FyY2hpdmUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsJICBkYXJ3aW5fYXJjaGVzPWBs aXBvIC1pbmZvICIkZGFyd2luX2FyY2hpdmUiIDI+L2Rldi9udWxsIHwgJEVHUkVQIEFyY2hpdGVj dHVyZXMgMj4vZGV2L251bGxgCi0rCSAgaWYgdGVzdCAtbiAiJGRhcndpbl9hcmNoZXMiOyB0aGVu IAotKwkgICAgZGFyd2luX2FyY2hlcz1gZWNobyAiJGRhcndpbl9hcmNoZXMiIHwgJFNFRCAtZSAn cy8uKmFyZTovLydgCi0rCSAgICBkYXJ3aW5fYXJjaD0KLSsJICAgICRzaG93ICIkZGFyd2luX2Jh c2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAkZGFyd2luX2FyY2hlcyIKLSsJ ICAgIGZvciBkYXJ3aW5fYXJjaCBpbiAgJGRhcndpbl9hcmNoZXMgOyBkbwotKwkgICAgICBta2Rp ciAtcCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofSIKLSsJ ICAgICAgbGlwbyAtdGhpbiAkZGFyd2luX2FyY2ggLW91dHB1dCAidW5mYXQtJCQvJHtkYXJ3aW5f YmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IiAiJHtk YXJ3aW5fYXJjaGl2ZX0iCi0rCSAgICAgIGNkICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hp dmV9LSR7ZGFyd2luX2FyY2h9IgotKwkgICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiYHB3 ZGAiICIke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkgICAgICBjZCAiJGRhcndpbl9jdXJkaXIi Ci0rCSAgICAgICRybSAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9h cmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkgICAgZG9uZSAjICRkYXJ3aW5fYXJjaGVz Ci0rICAgICAgIyMgT2theSBub3cgd2UgaGF2ZSBhIGJ1bmNoIG9mIHRoaW4gb2JqZWN0cywgZ290 dGEgZmF0dGVuIHRoZW0gdXAgOikKLSsJICAgIGRhcndpbl9maWxlbGlzdD1gZmluZCB1bmZhdC0k JCAtdHlwZSBmIC1uYW1lIFwqLm8gLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludHwgeGFyZ3Mg YmFzZW5hbWUgfCBzb3J0IC11IHwgJE5MMlNQYAotKwkgICAgZGFyd2luX2ZpbGU9Ci0rCSAgICBk YXJ3aW5fZmlsZXM9Ci0rCSAgICBmb3IgZGFyd2luX2ZpbGUgaW4gJGRhcndpbl9maWxlbGlzdDsg ZG8KLSsJICAgICAgZGFyd2luX2ZpbGVzPWBmaW5kIHVuZmF0LSQkIC1uYW1lICRkYXJ3aW5fZmls ZSAtcHJpbnQgfCAkTkwyU1BgCi0rCSAgICAgIGxpcG8gLWNyZWF0ZSAtb3V0cHV0ICIkZGFyd2lu X2ZpbGUiICRkYXJ3aW5fZmlsZXMKLSsJICAgIGRvbmUgIyAkZGFyd2luX2ZpbGVsaXN0Ci0rCSAg ICAke3JtfXIgdW5mYXQtJCQKLSsJICAgIGNkICIkZGFyd2luX29yaWdfZGlyIgotKwkgIGVsc2UK LSsJICAgIGNkICIkZGFyd2luX29yaWdfZGlyIgotKyAJICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNo aXZlICIkbXlfeGRpciIgIiRteV94YWJzIgotKwkgIGZpICMgJGRhcndpbl9hcmNoZXMKLSsJZmkg IyAkcnVuCi0rCTs7Ci0rICAgICAgKikKLSsgICAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZl ICIkbXlfeGRpciIgIiRteV94YWJzIgotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAg bXlfb2xkb2Jqcz0iJG15X29sZG9ianMgImBmaW5kICRteV94ZGlyIC1uYW1lIFwqLiRvYmpleHQg LXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICROTDJTUGAKLSsgICAgZG9uZQotKyAgICBm dW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0PSIkbXlfb2xkb2JqcyIKLSt9Ci0rIyBFbmQgb2Yg U2hlbGwgZnVuY3Rpb24gZGVmaW5pdGlvbnMKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0rCi0rIyBEYXJ3aW4gc3Vja3MKLStldmFsIHN0ZF9zaHJleHQ9XCIkc2hyZXh0 X2NtZHNcIgotKwotK2Rpc2FibGVfbGlicz1ubwotKwotKyMgUGFyc2Ugb3VyIGNvbW1hbmQgbGlu ZSBvcHRpb25zIG9uY2UsIHRob3JvdWdobHkuCi0rd2hpbGUgdGVzdCAiJCMiIC1ndCAwCi0rZG8K LSsgIGFyZz0iJDEiCi0rICBzaGlmdAotKwotKyAgY2FzZSAkYXJnIGluCi0rICAtKj0qKSBvcHRh cmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAncy9bLV9hLXpBLVowLTldKj0vLydgIDs7Ci0r ICAqKSBvcHRhcmc9IDs7Ci0rICBlc2FjCi0rCi0rICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24g bmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KLSsgIGlmIHRlc3QgLW4gIiRwcmV2IjsgdGhl bgotKyAgICBjYXNlICRwcmV2IGluCi0rICAgIGV4ZWN1dGVfZGxmaWxlcykKLSsgICAgICBleGVj dXRlX2RsZmlsZXM9IiRleGVjdXRlX2RsZmlsZXMgJGFyZyIKLSsgICAgICA7OwotKyAgICB0YWcp Ci0rICAgICAgdGFnbmFtZT0iJGFyZyIKLSsgICAgICBwcmVzZXJ2ZV9hcmdzPSIke3ByZXNlcnZl X2FyZ3N9PSRhcmciCi0rCi0rICAgICAgIyBDaGVjayB3aGV0aGVyIHRhZ25hbWUgY29udGFpbnMg b25seSB2YWxpZCBjaGFyYWN0ZXJzCi0rICAgICAgY2FzZSAkdGFnbmFtZSBpbgotKyAgICAgICpb IS1fQS1aYS16MC05LC9dKikKLSsJJGVjaG8gIiRwcm9nbmFtZTogaW52YWxpZCB0YWcgbmFtZTog JHRhZ25hbWUiIDE+JjIKLSsJZXhpdCAkRVhJVF9GQUlMVVJFCi0rCTs7Ci0rICAgICAgZXNhYwot KwotKyAgICAgIGNhc2UgJHRhZ25hbWUgaW4KLSsgICAgICBDQykKLSsJIyBEb24ndCB0ZXN0IGZv ciB0aGUgImRlZmF1bHQiIEMgdGFnLCBhcyB3ZSBrbm93LCBpdCdzIHRoZXJlLCBidXQKLSsJIyBu b3Qgc3BlY2lhbGx5IG1hcmtlZC4KLSsJOzsKLSsgICAgICAqKQotKwlpZiBncmVwICJeIyAjIyMg QkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZSQiIDwgIiRwcm9ncGF0aCIgPiAvZGV2 L251bGw7IHRoZW4KLSsJICB0YWdsaXN0PSIkdGFnbGlzdCAkdGFnbmFtZSIKLSsJICAjIEV2YWx1 YXRlIHRoZSBjb25maWd1cmF0aW9uLgotKwkgIGV2YWwgImAke1NFRH0gLW4gLWUgJy9eIyAjIyMg QkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAnJHRhZ25hbWUnJC8sL14jICMjIyBFTkQgTElCVE9P TCBUQUcgQ09ORklHOiAnJHRhZ25hbWUnJC9wJyA8ICRwcm9ncGF0aGAiCi0rCWVsc2UKLSsJICAk ZWNobyAiJHByb2duYW1lOiBpZ25vcmluZyB1bmtub3duIHRhZyAkdGFnbmFtZSIgMT4mMgotKwlm aQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgIiRw cmV2PVwkYXJnIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgcHJldj0KLSsgICAgcHJl dm9wdD0KLSsgICAgY29udGludWUKLSsgIGZpCi0rCi0rICAjIEhhdmUgd2Ugc2VlbiBhIG5vbi1v cHRpb25hbCBhcmd1bWVudCB5ZXQ/Ci0rICBjYXNlICRhcmcgaW4KLSsgIC0taGVscCkKLSsgICAg c2hvd19oZWxwPXllcwotKyAgICA7OwotKwotKyAgLS12ZXJzaW9uKQotKyAgICBlY2hvICJcCi0r JFBST0dSQU0gKEdOVSAkUEFDS0FHRSkgJFZFUlNJT04kVElNRVNUQU1QCi0rCi0rQ29weXJpZ2h0 IChDKSAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLStUaGlzIGlzIGZyZWUg c29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBp cyBOTwotK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiIKLSsgICAgZXhpdCAkPwotKyAgICA7OwotKwotKyAg LS1jb25maWcpCi0rICAgICR7U0VEfSAtZSAnMSwvXiMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklH L2QnIC1lICcvXiMgIyMjIEVORCBMSUJUT09MIENPTkZJRy8sJGQnICRwcm9ncGF0aAotKyAgICAj IE5vdyBwcmludCB0aGUgY29uZmlndXJhdGlvbnMgZm9yIHRoZSB0YWdzLgotKyAgICBmb3IgdGFn bmFtZSBpbiAkdGFnbGlzdDsgZG8KLSsgICAgICAke1NFRH0gLW4gLWUgIi9eIyAjIyMgQkVHSU4g TElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZSQvLC9eIyAjIyMgRU5EIExJQlRPT0wgVEFHIENP TkZJRzogJHRhZ25hbWUkL3AiIDwgIiRwcm9ncGF0aCIKLSsgICAgZG9uZQotKyAgICBleGl0ICQ/ Ci0rICAgIDs7Ci0rCi0rICAtLWRlYnVnKQotKyAgICAkZWNobyAiJHByb2duYW1lOiBlbmFibGlu ZyBzaGVsbCB0cmFjZSBtb2RlIgotKyAgICBzZXQgLXgKLSsgICAgcHJlc2VydmVfYXJncz0iJHBy ZXNlcnZlX2FyZ3MgJGFyZyIKLSsgICAgOzsKLSsKLSsgIC0tZHJ5LXJ1biB8IC1uKQotKyAgICBy dW49OgotKyAgICA7OwotKwotKyAgLS1mZWF0dXJlcykKLSsgICAgJGVjaG8gImhvc3Q6ICRob3N0 IgotKyAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKyAgICAg ICRlY2hvICJlbmFibGUgc2hhcmVkIGxpYnJhcmllcyIKLSsgICAgZWxzZQotKyAgICAgICRlY2hv ICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMiCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgIiRidWls ZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICAkZWNobyAiZW5hYmxlIHN0YXRpYyBsaWJy YXJpZXMiCi0rICAgIGVsc2UKLSsgICAgICAkZWNobyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVz IgotKyAgICBmaQotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rCi0rICAtLWZpbmlzaCkgbW9kZT0i ZmluaXNoIiA7OwotKwotKyAgLS1tb2RlKSBwcmV2b3B0PSItLW1vZGUiIHByZXY9bW9kZSA7Owot KyAgLS1tb2RlPSopIG1vZGU9IiRvcHRhcmciIDs7Ci0rCi0rICAtLXByZXNlcnZlLWR1cC1kZXBz KSBkdXBsaWNhdGVfZGVwcz0ieWVzIiA7OwotKwotKyAgLS1xdWlldCB8IC0tc2lsZW50KQotKyAg ICBzaG93PToKLSsgICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJGFyZyIKLSsgICAg OzsKLSsKLSsgIC0tdGFnKQotKyAgICBwcmV2b3B0PSItLXRhZyIKLSsgICAgcHJldj10YWcKLSsg ICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgLS10YWciCi0rICAgIDs7Ci0rICAtLXRh Zz0qKQotKyAgICBzZXQgdGFnICIkb3B0YXJnIiAkezErIiRAIn0KLSsgICAgc2hpZnQKLSsgICAg cHJldj10YWcKLSsgICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgLS10YWciCi0rICAg IDs7Ci0rCi0rICAtZGxvcGVuKQotKyAgICBwcmV2b3B0PSItZGxvcGVuIgotKyAgICBwcmV2PWV4 ZWN1dGVfZGxmaWxlcwotKyAgICA7OwotKwotKyAgLSopCi0rICAgICRlY2hvICIkbW9kZW5hbWU6 IHVucmVjb2duaXplZCBvcHRpb24gXGAkYXJnJyIgMT4mMgotKyAgICAkZWNobyAiJGhlbHAiIDE+ JjIKLSsgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgIDs7Ci0rCi0rICAqKQotKyAgICBub25v cHQ9IiRhcmciCi0rICAgIGJyZWFrCi0rICAgIDs7Ci0rICBlc2FjCi0rZG9uZQotKwotK2lmIHRl c3QgLW4gIiRwcmV2b3B0IjsgdGhlbgotKyAgJGVjaG8gIiRtb2RlbmFtZTogb3B0aW9uIFxgJHBy ZXZvcHQnIHJlcXVpcmVzIGFuIGFyZ3VtZW50IiAxPiYyCi0rICAkZWNobyAiJGhlbHAiIDE+JjIK LSsgIGV4aXQgJEVYSVRfRkFJTFVSRQotK2ZpCi0rCi0rY2FzZSAkZGlzYWJsZV9saWJzIGluCi0r bm8pIAotKyAgOzsKLStzaGFyZWQpCi0rICBidWlsZF9saWJ0b29sX2xpYnM9bm8KLSsgIGJ1aWxk X29sZF9saWJzPXllcwotKyAgOzsKLStzdGF0aWMpCi0rICBidWlsZF9vbGRfbGlicz1gY2FzZSAk YnVpbGRfbGlidG9vbF9saWJzIGluIHllcykgZWNobyBubzs7ICopIGVjaG8geWVzOzsgZXNhY2AK LSsgIDs7Ci0rZXNhYwotKwotKyMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgaW4gYW55IG9mIHRo ZSBhY3Rpb25zLCB0aGUgY29tbWFuZCBpbiBpdAotKyMgd2lsbCBiZSBleGVjZWQgYXQgdGhlIGVu ZC4gIFRoaXMgcHJldmVudHMgaGVyZS1kb2N1bWVudHMgZnJvbSBiZWluZwotKyMgbGVmdCBvdmVy IGJ5IHNoZWxscy4KLStleGVjX2NtZD0KLSsKLStpZiB0ZXN0IC16ICIkc2hvd19oZWxwIjsgdGhl bgotKwotKyAgIyBJbmZlciB0aGUgb3BlcmF0aW9uIG1vZGUuCi0rICBpZiB0ZXN0IC16ICIkbW9k ZSI7IHRoZW4KLSsgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBpbmZlcnJpbmcgdGhlIG1vZGUgb2Yg b3BlcmF0aW9uIGlzIGRlcHJlY2F0ZWQuIiAxPiYyCi0rICAgICRlY2hvICIqKiogRnV0dXJlIHZl cnNpb25zIG9mIExpYnRvb2wgd2lsbCByZXF1aXJlIC0tbW9kZT1NT0RFIGJlIHNwZWNpZmllZC4i IDE+JjIKLSsgICAgY2FzZSAkbm9ub3B0IGluCi0rICAgICpjYyB8IGNjKiB8ICorKyB8IGdjYyog fCAqLWdjYyogfCBnKysqIHwgeGxjKikKLSsgICAgICBtb2RlPWxpbmsKLSsgICAgICBmb3IgYXJn Ci0rICAgICAgZG8KLSsJY2FzZSAkYXJnIGluCi0rCS1jKQotKwkgICBtb2RlPWNvbXBpbGUKLSsJ ICAgYnJlYWsKLSsJICAgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICA7OwotKyAgICAq ZGIgfCAqZGJ4IHwgKnN0cmFjZSB8ICp0cnVzcykKLSsgICAgICBtb2RlPWV4ZWN1dGUKLSsgICAg ICA7OwotKyAgICAqaW5zdGFsbCp8Y3B8bXYpCi0rICAgICAgbW9kZT1pbnN0YWxsCi0rICAgICAg OzsKLSsgICAgKnJtKQotKyAgICAgIG1vZGU9dW5pbnN0YWxsCi0rICAgICAgOzsKLSsgICAgKikK LSsgICAgICAjIElmIHdlIGhhdmUgbm8gbW9kZSwgYnV0IGRsZmlsZXMgd2VyZSBzcGVjaWZpZWQs IHRoZW4gZG8gZXhlY3V0ZSBtb2RlLgotKyAgICAgIHRlc3QgLW4gIiRleGVjdXRlX2RsZmlsZXMi ICYmIG1vZGU9ZXhlY3V0ZQotKwotKyAgICAgICMgSnVzdCB1c2UgdGhlIGRlZmF1bHQgb3BlcmF0 aW9uIG1vZGUuCi0rICAgICAgaWYgdGVzdCAteiAiJG1vZGUiOyB0aGVuCi0rCWlmIHRlc3QgLW4g IiRub25vcHQiOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90IGlu ZmVyIG9wZXJhdGlvbiBtb2RlIGZyb20gXGAkbm9ub3B0JyIgMT4mMgotKwllbHNlCi0rCSAgJGVj aG8gIiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90IGluZmVyIG9wZXJhdGlvbiBtb2RlIHdpdGhv dXQgTU9ERS1BUkdTIiAxPiYyCi0rCWZpCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBlc2Fj Ci0rICBmaQotKwotKyAgIyBPbmx5IGV4ZWN1dGUgbW9kZSBpcyBhbGxvd2VkIHRvIGhhdmUgLWRs b3BlbiBmbGFncy4KLSsgIGlmIHRlc3QgLW4gIiRleGVjdXRlX2RsZmlsZXMiICYmIHRlc3QgIiRt b2RlIiAhPSBleGVjdXRlOyB0aGVuCi0rICAgICRlY2hvICIkbW9kZW5hbWU6IHVucmVjb2duaXpl ZCBvcHRpb24gXGAtZGxvcGVuJyIgMT4mMgotKyAgICAkZWNobyAiJGhlbHAiIDE+JjIKLSsgICAg ZXhpdCAkRVhJVF9GQUlMVVJFCi0rICBmaQotKwotKyAgIyBDaGFuZ2UgdGhlIGhlbHAgbWVzc2Fn ZSB0byBhIG1vZGUtc3BlY2lmaWMgb25lLgotKyAgZ2VuZXJpY19oZWxwPSIkaGVscCIKLSsgIGhl bHA9IlRyeSBcYCRtb2RlbmFtZSAtLWhlbHAgLS1tb2RlPSRtb2RlJyBmb3IgbW9yZSBpbmZvcm1h dGlvbi4iCi0rCi0rICAjIFRoZXNlIG1vZGVzIGFyZSBpbiBvcmRlciBvZiBleGVjdXRpb24gZnJl cXVlbmN5IHNvIHRoYXQgdGhleSBydW4gcXVpY2tseS4KLSsgIGNhc2UgJG1vZGUgaW4KLSsgICMg bGlidG9vbCBjb21waWxlIG1vZGUKLSsgIGNvbXBpbGUpCi0rICAgIG1vZGVuYW1lPSIkbW9kZW5h bWU6IGNvbXBpbGUiCi0rICAgICMgR2V0IHRoZSBjb21waWxhdGlvbiBjb21tYW5kIGFuZCB0aGUg c291cmNlIGZpbGUuCi0rICAgIGJhc2VfY29tcGlsZT0KLSsgICAgc3JjZmlsZT0iJG5vbm9wdCIg ICMgIGFsd2F5cyBrZWVwIGEgbm9uLWVtcHR5IHZhbHVlIGluICJzcmNmaWxlIgotKyAgICBzdXBw cmVzc19vcHQ9eWVzCi0rICAgIHN1cHByZXNzX291dHB1dD0KLSsgICAgYXJnX21vZGU9bm9ybWFs Ci0rICAgIGxpYm9iaj0KLSsgICAgbGF0ZXI9Ci0rCi0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsg ICAgICBjYXNlICRhcmdfbW9kZSBpbgotKyAgICAgIGFyZyAgKQotKwkjIGRvIG5vdCAiY29udGlu dWUiLiAgSW5zdGVhZCwgYWRkIHRoaXMgdG8gYmFzZV9jb21waWxlCi0rCWxhc3Rhcmc9IiRhcmci Ci0rCWFyZ19tb2RlPW5vcm1hbAotKwk7OwotKwotKyAgICAgIHRhcmdldCApCi0rCWxpYm9iaj0i JGFyZyIKLSsJYXJnX21vZGU9bm9ybWFsCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgbm9y bWFsICkKLSsJIyBBY2NlcHQgYW55IGNvbW1hbmQtbGluZSBvcHRpb25zLgotKwljYXNlICRhcmcg aW4KLSsJLW8pCi0rCSAgaWYgdGVzdCAtbiAiJGxpYm9iaiIgOyB0aGVuCi0rCSAgICAkZWNobyAi JG1vZGVuYW1lOiB5b3UgY2Fubm90IHNwZWNpZnkgXGAtbycgbW9yZSB0aGFuIG9uY2UiIDE+JjIK LSsJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwkgIGZpCi0rCSAgYXJnX21vZGU9dGFyZ2V0Ci0r CSAgY29udGludWUKLSsJICA7OwotKwotKwktc3RhdGljIHwgLXByZWZlci1waWMgfCAtcHJlZmVy LW5vbi1waWMpCi0rCSAgbGF0ZXI9IiRsYXRlciAkYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsK LSsKLSsJLW5vLXN1cHByZXNzKQotKwkgIHN1cHByZXNzX29wdD1ubwotKwkgIGNvbnRpbnVlCi0r CSAgOzsKLSsKLSsJLVhjb21waWxlcikKLSsJICBhcmdfbW9kZT1hcmcgICMgIHRoZSBuZXh0IG9u ZSBnb2VzIGludG8gdGhlICJiYXNlX2NvbXBpbGUiIGFyZyBsaXN0Ci0rCSAgY29udGludWUgICAg ICAjICBUaGUgY3VycmVudCAic3JjZmlsZSIgd2lsbCBlaXRoZXIgYmUgcmV0YWluZWQgb3IKLSsJ ICA7OyAgICAgICAgICAgICMgIHJlcGxhY2VkIGxhdGVyLiAgSSB3b3VsZCBndWVzcyB0aGF0IHdv dWxkIGJlIGEgYnVnLgotKwotKwktV2MsKikKLSsJICBhcmdzPWAkZWNobyAiWCRhcmciIHwgJFhz ZWQgLWUgInMvXi1XYywvLyJgCi0rCSAgbGFzdGFyZz0KLSsJICBzYXZlX2lmcz0iJElGUyI7IElG Uz0nLCcKLSsgCSAgZm9yIGFyZyBpbiAkYXJnczsgZG8KLSsJICAgIElGUz0iJHNhdmVfaWZzIgot KwotKwkgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFj aGFyYWN0ZXJzLgotKwkgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9z ZSBicmFja2V0cyBjb3JyZWN0bHkKLSsJICAgICMgaW4gc2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5 IGl0IHNlcGFyYXRlbHkuCi0rCSAgICBjYXNlICRhcmcgaW4KLSsJICAgICAgKltcW1x+XCNcXlwm XCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0rCSAgICAgIGFyZz0iXCIkYXJn XCIiCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICBsYXN0YXJnPSIkbGFzdGFyZyAkYXJn IgotKwkgIGRvbmUKLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsJICBsYXN0YXJnPWAkZWNobyAiWCRs YXN0YXJnIiB8ICRYc2VkIC1lICJzL14gLy8iYAotKwotKwkgICMgQWRkIHRoZSBhcmd1bWVudHMg dG8gYmFzZV9jb21waWxlLgotKwkgIGJhc2VfY29tcGlsZT0iJGJhc2VfY29tcGlsZSAkbGFzdGFy ZyIKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCi0rCSogKQotKwkgICMgQWNjZXB0IHRoZSBjdXJy ZW50IGFyZ3VtZW50IGFzIHRoZSBzb3VyY2UgZmlsZS4KLSsJICAjIFRoZSBwcmV2aW91cyAic3Jj ZmlsZSIgYmVjb21lcyB0aGUgY3VycmVudCBhcmd1bWVudC4KLSsJICAjCi0rCSAgbGFzdGFyZz0i JHNyY2ZpbGUiCi0rCSAgc3JjZmlsZT0iJGFyZyIKLSsJICA7OwotKwllc2FjICAjICBjYXNlICRh cmcKLSsJOzsKLSsgICAgICBlc2FjICAgICMgIGNhc2UgJGFyZ19tb2RlCi0rCi0rICAgICAgIyBB ZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBwcmV2aW91cyBhcmd1bWVudC4KLSsgICAgICBsYXN0YXJn PWAkZWNobyAiWCRsYXN0YXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsKLSsg ICAgICBjYXNlICRsYXN0YXJnIGluCi0rICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWlu aW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgotKyAgICAgICMgTWFueSBCb3VybmUgc2hl bGxzIGNhbm5vdCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5Ci0rICAgICAgIyBpbiBz Y2FuIHNldHMsIGFuZCBzb21lIFN1bk9TIGtzaCBtaXN0cmVhdCBiYWNrc2xhc2gtZXNjYXBpbmcK LSsgICAgICAjIGluIHNjYW4gc2V0cyAod29ya2VkIGFyb3VuZCB3aXRoIHZhcmlhYmxlIGV4cGFu c2lvbiksCi0rICAgICAgIyBhbmQgZnVydGhlcm1vcmUgY2Fubm90IGhhbmRsZSAnfCcgJyYnICco JyAnKScgaW4gc2NhbiBzZXRzIAotKyAgICAgICMgYXQgYWxsLCBzbyB3ZSBzcGVjaWZ5IHRoZW0g c2VwYXJhdGVseS4KLSsgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBc CV0qfCpdKnwiIikKLSsJbGFzdGFyZz0iXCIkbGFzdGFyZ1wiIgotKwk7OwotKyAgICAgIGVzYWMK LSsKLSsgICAgICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGxhc3RhcmciCi0rICAgIGRv bmUgIyBmb3IgYXJnCi0rCi0rICAgIGNhc2UgJGFyZ19tb2RlIGluCi0rICAgIGFyZykKLSsgICAg ICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGFuIGFyZ3VtZW50IGZvciAtWGNv bXBpbGUiCi0rICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgICAgOzsKLSsgICAgdGFyZ2V0 KQotKyAgICAgICRlY2hvICIkbW9kZW5hbWU6IHlvdSBtdXN0IHNwZWNpZnkgYSB0YXJnZXQgd2l0 aCBcYC1vJyIgMT4mMgotKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIDs7Ci0rICAg ICopCi0rICAgICAgIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgb2JqZWN0LgotKyAgICAg IFsgLXogIiRsaWJvYmoiIF0gJiYgbGlib2JqPWAkZWNobyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1l ICdzJV4uKi8lJSdgCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIFJlY29nbml6ZSBz ZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzLgotKyAgICAjIElmIHRoZSB1c2VyIHNwZWNp ZmllcyAtbyBmaWxlLm8sIGl0IGlzIHJlcGxhY2VkIHdpdGggZmlsZS5sbwotKyAgICB4Zm9ybT0n W2NDRlNpZm1zb10nCi0rICAgIGNhc2UgJGxpYm9iaiBpbgotKyAgICAqLmFkYSkgeGZvcm09YWRh IDs7Ci0rICAgICouYWRiKSB4Zm9ybT1hZGIgOzsKLSsgICAgKi5hZHMpIHhmb3JtPWFkcyA7Owot KyAgICAqLmFzbSkgeGZvcm09YXNtIDs7Ci0rICAgICouYysrKSB4Zm9ybT1jKysgOzsKLSsgICAg Ki5jYykgeGZvcm09Y2MgOzsKLSsgICAgKi5paSkgeGZvcm09aWkgOzsKLSsgICAgKi5jbGFzcykg eGZvcm09Y2xhc3MgOzsKLSsgICAgKi5jcHApIHhmb3JtPWNwcCA7OwotKyAgICAqLmN4eCkgeGZv cm09Y3h4IDs7Ci0rICAgICouW2ZGXVswOV0/KSB4Zm9ybT1bZkZdWzA5XS4gOzsKLSsgICAgKi5m b3IpIHhmb3JtPWZvciA7OwotKyAgICAqLmphdmEpIHhmb3JtPWphdmEgOzsKLSsgICAgKi5vYmop IHhmb3JtPW9iaiA7OwotKyAgICAqLnN4KSB4Zm9ybT1zeCA7OwotKyAgICBlc2FjCi0rCi0rICAg IGxpYm9iaj1gJGVjaG8gIlgkbGlib2JqIiB8ICRYc2VkIC1lICJzL1wuJHhmb3JtJC8ubG8vImAK LSsKLSsgICAgY2FzZSAkbGlib2JqIGluCi0rICAgICoubG8pIG9iaj1gJGVjaG8gIlgkbGlib2Jq IiB8ICRYc2VkIC1lICIkbG8ybyJgIDs7Ci0rICAgICopCi0rICAgICAgJGVjaG8gIiRtb2RlbmFt ZTogY2Fubm90IGRldGVybWluZSBuYW1lIG9mIGxpYnJhcnkgb2JqZWN0IGZyb20gXGAkbGlib2Jq JyIgMT4mMgotKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIDs7Ci0rICAgIGVzYWMK LSsKLSsgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQotKwotKyAgICBmb3IgYXJnIGlu ICRsYXRlcjsgZG8KLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtc3RhdGljKQotKwlidWls ZF9vbGRfbGlicz15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtcHJlZmVyLXBpYykK LSsJcGljX21vZGU9eWVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXByZWZlci1ub24t cGljKQotKwlwaWNfbW9kZT1ubwotKwljb250aW51ZQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAg ZG9uZQotKwotKyAgICBxbGlib2JqPWAkZWNobyAiWCRsaWJvYmoiIHwgJFhzZWQgLWUgIiRzZWRf cXVvdGVfc3Vic3QiYAotKyAgICBjYXNlICRxbGlib2JqIGluCi0rICAgICAgKltcW1x+XCNcXlwm XCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0rCXFsaWJvYmo9IlwiJHFsaWJv YmpcIiIgOzsKLSsgICAgZXNhYwotKyAgICB0ZXN0ICJYJGxpYm9iaiIgIT0gIlgkcWxpYm9iaiIg XAotKwkmJiAkZWNobyAiWCRsaWJvYmoiIHwgZ3JlcCAnW11+I14qe307PD4/IiciJyInIAkmKCl8 YCRbXScgXAotKwkmJiAkZWNobyAiJG1vZGVuYW1lOiBsaWJvYmogbmFtZSBcYCRsaWJvYmonIG1h eSBub3QgY29udGFpbiBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMuIgotKyAgICBvYmpuYW1lPWAk ZWNobyAiWCRvYmoiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsgICAgeGRpcj1gJGVjaG8gIlgk b2JqIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCi0rICAgIGlmIHRlc3QgIlgkeGRpciIgPSAi WCRvYmoiOyB0aGVuCi0rICAgICAgeGRpcj0KLSsgICAgZWxzZQotKyAgICAgIHhkaXI9JHhkaXIv Ci0rICAgIGZpCi0rICAgIGxvYmo9JHt4ZGlyfSRvYmpkaXIvJG9iam5hbWUKLSsKLSsgICAgaWYg dGVzdCAteiAiJGJhc2VfY29tcGlsZSI7IHRoZW4KLSsgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5 b3UgbXVzdCBzcGVjaWZ5IGEgY29tcGlsYXRpb24gY29tbWFuZCIgMT4mMgotKyAgICAgICRlY2hv ICIkaGVscCIgMT4mMgotKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICBmaQotKwotKyAg ICAjIERlbGV0ZSBhbnkgbGVmdG92ZXIgbGlicmFyeSBvYmplY3RzLgotKyAgICBpZiB0ZXN0ICIk YnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgcmVtb3ZlbGlzdD0iJG9iaiAkbG9i aiAkbGlib2JqICR7bGlib2JqfVQiCi0rICAgIGVsc2UKLSsgICAgICByZW1vdmVsaXN0PSIkbG9i aiAkbGlib2JqICR7bGlib2JqfVQiCi0rICAgIGZpCi0rCi0rICAgICRydW4gJHJtICRyZW1vdmVs aXN0Ci0rICAgIHRyYXAgIiRydW4gJHJtICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUi IDEgMiAxNQotKwotKyAgICAjIE9uIEN5Z3dpbiB0aGVyZSdzIG5vICJyZWFsIiBQSUMgZmxhZyBz byB3ZSBtdXN0IGJ1aWxkIGJvdGggb2JqZWN0IHR5cGVzCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4K LSsgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgb3MyKikKLSsgICAgICBwaWNfbW9kZT1k ZWZhdWx0Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBpZiB0ZXN0ICIkcGljX21vZGUiID0g bm8gJiYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgotKyAg ICAgICMgbm9uLVBJQyBjb2RlIGluIHNoYXJlZCBsaWJyYXJpZXMgaXMgbm90IHN1cHBvcnRlZAot KyAgICAgIHBpY19tb2RlPWRlZmF1bHQKLSsgICAgZmkKLSsKLSsgICAgIyBDYWxjdWxhdGUgdGhl IGZpbGVuYW1lIG9mIHRoZSBvdXRwdXQgb2JqZWN0IGlmIGNvbXBpbGVyIGRvZXMKLSsgICAgIyBu b3Qgc3VwcG9ydCAtbyB3aXRoIC1jCi0rICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0gbm87 IHRoZW4KLSsgICAgICBvdXRwdXRfb2JqPWAkZWNobyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICdz JV4uKi8lJScgLWUgJ3MlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQotKyAgICAgIGxvY2tmaWxlPSIk b3V0cHV0X29iai5sb2NrIgotKyAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRvdXRwdXRf b2JqICRsb2NrZmlsZSIKLSsgICAgICB0cmFwICIkcnVuICRybSAkcmVtb3ZlbGlzdDsgZXhpdCAk RVhJVF9GQUlMVVJFIiAxIDIgMTUKLSsgICAgZWxzZQotKyAgICAgIG91dHB1dF9vYmo9Ci0rICAg ICAgbmVlZF9sb2Nrcz1ubwotKyAgICAgIGxvY2tmaWxlPQotKyAgICBmaQotKwotKyAgICAjIExv Y2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IGlzIG5lZWRlZAotKyAgICAjIFdlIHVzZSB0 aGlzIHNjcmlwdCBmaWxlIHRvIG1ha2UgdGhlIGxpbmssIGl0IGF2b2lkcyBjcmVhdGluZyBhIG5l dyBmaWxlCi0rICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHllczsgdGhlbgotKyAgICAgIHVu dGlsICRydW4gbG4gIiRwcm9ncGF0aCIgIiRsb2NrZmlsZSIgMj4vZGV2L251bGw7IGRvCi0rCSRz aG93ICJXYWl0aW5nIGZvciAkbG9ja2ZpbGUgdG8gYmUgcmVtb3ZlZCIKLSsJc2xlZXAgMgotKyAg ICAgIGRvbmUKLSsgICAgZWxpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuOyB0aGVuCi0rICAg ICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxlIjsgdGhlbgotKwkkZWNobyAiXAotKyoqKiBFUlJPUiwg JGxvY2tmaWxlIGV4aXN0cyBhbmQgY29udGFpbnM6Ci0rYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251 bGxgCi0rCi0rVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRv IHVzZSB0aGUgc2FtZQotK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQg bm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKLSt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBv cnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91Ci0rcmVwZWF0IHRoaXMgY29tcGls YXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgotK2F2 b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEg YmV0dGVyCi0rY29tcGlsZXIuIgotKwotKwkkcnVuICRybSAkcmVtb3ZlbGlzdAotKwlleGl0ICRF WElUX0ZBSUxVUkUKLSsgICAgICBmaQotKyAgICAgICRlY2hvICIkc3JjZmlsZSIgPiAiJGxvY2tm aWxlIgotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0IC1uICIkZml4X3NyY2ZpbGVfcGF0aCI7IHRo ZW4KLSsgICAgICBldmFsIHNyY2ZpbGU9XCIkZml4X3NyY2ZpbGVfcGF0aFwiCi0rICAgIGZpCi0r ICAgIHFzcmNmaWxlPWAkZWNobyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1 YnN0ImAKLSsgICAgY2FzZSAkcXNyY2ZpbGUgaW4KLSsgICAgICAqW1xbXH5cI1xeXCZcKlwoXClc e1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsgICAgICBxc3JjZmlsZT0iXCIkcXNyY2Zp bGVcIiIgOzsKLSsgICAgZXNhYwotKwotKyAgICAkcnVuICRybSAiJGxpYm9iaiIgIiR7bGlib2Jq fVQiCi0rCi0rICAgICMgQ3JlYXRlIGEgbGlidG9vbCBvYmplY3QgZmlsZSAoYW5hbG9nb3VzIHRv IGEgIi5sYSIgZmlsZSksCi0rICAgICMgYnV0IGRvbid0IGNyZWF0ZSBpdCBpZiB3ZSdyZSBkb2lu ZyBhIGRyeSBydW4uCi0rICAgIHRlc3QgLXogIiRydW4iICYmIGNhdCA+ICR7bGlib2JqfVQgPDxF T0YKLSsjICRsaWJvYmogLSBhIGxpYnRvb2wgb2JqZWN0IGZpbGUKLSsjIEdlbmVyYXRlZCBieSAk UFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAkVkVSU0lPTiRUSU1FU1RBTVAKLSsjCi0rIyBQbGVhc2Ug RE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCi0rIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcg dGhlIGxpYnJhcnkuCi0rCi0rIyBOYW1lIG9mIHRoZSBQSUMgb2JqZWN0LgotK0VPRgotKwotKyAg ICAjIE9ubHkgYnVpbGQgYSBQSUMgb2JqZWN0IGlmIHdlIGFyZSBidWlsZGluZyBsaWJ0b29sIGxp YnJhcmllcy4KLSsgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4K LSsgICAgICAjIFdpdGhvdXQgdGhpcyBhc3NpZ25tZW50LCBiYXNlX2NvbXBpbGUgZ2V0cyBlbXB0 aWVkLgotKyAgICAgIGZic2RfaGlkZW91c19zaF9idWc9JGJhc2VfY29tcGlsZQotKwotKyAgICAg IGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0gbm87IHRoZW4KLSsJY29tbWFuZD0iJGJhc2VfY29tcGls ZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgotKyAgICAgIGVsc2UKLSsJIyBEb24ndCBidWlsZCBQSUMg Y29kZQotKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSIKLSsgICAgICBmaQotKwot KyAgICAgIGlmIHRlc3QgISAtZCAiJHt4ZGlyfSRvYmpkaXIiOyB0aGVuCi0rCSRzaG93ICIkbWtk aXIgJHt4ZGlyfSRvYmpkaXIiCi0rCSRydW4gJG1rZGlyICR7eGRpcn0kb2JqZGlyCi0rCWV4aXRf c3RhdHVzPSQ/Ci0rCWlmIHRlc3QgIiRleGl0X3N0YXR1cyIgLW5lIDAgJiYgdGVzdCAhIC1kICIk e3hkaXJ9JG9iamRpciI7IHRoZW4KLSsJICBleGl0ICRleGl0X3N0YXR1cwotKwlmaQotKyAgICAg IGZpCi0rCi0rICAgICAgaWYgdGVzdCAteiAiJG91dHB1dF9vYmoiOyB0aGVuCi0rCSMgUGxhY2Ug UElDIG9iamVjdHMgaW4gJG9iamRpcgotKwljb21tYW5kPSIkY29tbWFuZCAtbyAkbG9iaiIKLSsg ICAgICBmaQotKwotKyAgICAgICRydW4gJHJtICIkbG9iaiIgIiRvdXRwdXRfb2JqIgotKwotKyAg ICAgICRzaG93ICIkY29tbWFuZCIKLSsgICAgICBpZiAkcnVuIGV2YWwgJGx0X2VudiAiJGNvbW1h bmQiOyB0aGVuIDoKLSsgICAgICBlbHNlCi0rCXRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiAkcnVu ICRybSAkcmVtb3ZlbGlzdAotKwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBmaQotKwotKyAg ICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm4gJiYKLSsJIHRlc3QgIlhgY2F0ICRsb2Nr ZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJYJHNyY2ZpbGUiOyB0aGVuCi0rCSRlY2hvICJcCi0rKioq IEVSUk9SLCAkbG9ja2ZpbGUgY29udGFpbnM6Ci0rYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxg Ci0rCi0rYnV0IGl0IHNob3VsZCBjb250YWluOgotKyRzcmNmaWxlCi0rCi0rVGhpcyBpbmRpY2F0 ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQotK3RlbXBv cmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJl Y2F1c2UKLSt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRv Z2V0aGVyLiAgSWYgeW91Ci0rcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVk LCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgotK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAo bWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCi0rY29tcGlsZXIuIgot KwotKwkkcnVuICRybSAkcmVtb3ZlbGlzdAotKwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBm aQotKwotKyAgICAgICMgSnVzdCBtb3ZlIHRoZSBvYmplY3QgaWYgbmVlZGVkLCB0aGVuIGdvIG9u IHRvIGNvbXBpbGUgdGhlIG5leHQgb25lCi0rICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoi ICYmIHRlc3QgIlgkb3V0cHV0X29iaiIgIT0gIlgkbG9iaiI7IHRoZW4KLSsJJHNob3cgIiRtdiAk b3V0cHV0X29iaiAkbG9iaiIKLSsJaWYgJHJ1biAkbXYgJG91dHB1dF9vYmogJGxvYmo7IHRoZW4g OgotKwllbHNlCi0rCSAgZXJyb3I9JD8KLSsJICAkcnVuICRybSAkcmVtb3ZlbGlzdAotKwkgIGV4 aXQgJGVycm9yCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICAjIEFwcGVuZCB0aGUgbmFtZSBv ZiB0aGUgUElDIG9iamVjdCB0byB0aGUgbGlidG9vbCBvYmplY3QgZmlsZS4KLSsgICAgICB0ZXN0 IC16ICIkcnVuIiAmJiBjYXQgPj4gJHtsaWJvYmp9VCA8PEVPRgotK3BpY19vYmplY3Q9JyRvYmpk aXIvJG9iam5hbWUnCi0rCi0rRU9GCi0rCi0rICAgICAgIyBBbGxvdyBlcnJvciBtZXNzYWdlcyBv bmx5IGZyb20gdGhlIGZpcnN0IGNvbXBpbGF0aW9uLgotKyAgICAgIGlmIHRlc3QgIiRzdXBwcmVz c19vcHQiID0geWVzOyB0aGVuCi0rICAgICAgICBzdXBwcmVzc19vdXRwdXQ9JyA+L2Rldi9udWxs IDI+JjEnCi0rICAgICAgZmkKLSsgICAgZWxzZQotKyAgICAgICMgTm8gUElDIG9iamVjdCBzbyBp bmRpY2F0ZSBpdCBkb2Vzbid0IGV4aXN0IGluIHRoZSBsaWJ0b29sCi0rICAgICAgIyBvYmplY3Qg ZmlsZS4KLSsgICAgICB0ZXN0IC16ICIkcnVuIiAmJiBjYXQgPj4gJHtsaWJvYmp9VCA8PEVPRgot K3BpY19vYmplY3Q9bm9uZQotKwotK0VPRgotKyAgICBmaQotKwotKyAgICAjIE9ubHkgYnVpbGQg YSBwb3NpdGlvbi1kZXBlbmRlbnQgb2JqZWN0IGlmIHdlIGJ1aWxkIG9sZCBsaWJyYXJpZXMuCi0r ICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICBpZiB0ZXN0 ICIkcGljX21vZGUiICE9IHllczsgdGhlbgotKwkjIERvbid0IGJ1aWxkIFBJQyBjb2RlCi0rCWNv bW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlIgotKyAgICAgIGVsc2UKLSsJY29tbWFuZD0i JGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgotKyAgICAgIGZpCi0rICAgICAgaWYg dGVzdCAiJGNvbXBpbGVyX2NfbyIgPSB5ZXM7IHRoZW4KLSsJY29tbWFuZD0iJGNvbW1hbmQgLW8g JG9iaiIKLSsgICAgICBmaQotKwotKyAgICAgICMgU3VwcHJlc3MgY29tcGlsZXIgb3V0cHV0IGlm IHdlIGFscmVhZHkgZGlkIGEgUElDIGNvbXBpbGF0aW9uLgotKyAgICAgIGNvbW1hbmQ9IiRjb21t YW5kJHN1cHByZXNzX291dHB1dCIKLSsgICAgICAkcnVuICRybSAiJG9iaiIgIiRvdXRwdXRfb2Jq IgotKyAgICAgICRzaG93ICIkY29tbWFuZCIKLSsgICAgICBpZiAkcnVuIGV2YWwgJGx0X2VudiAi JGNvbW1hbmQiOyB0aGVuIDoKLSsgICAgICBlbHNlCi0rCSRydW4gJHJtICRyZW1vdmVsaXN0Ci0r CWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAiJG5lZWRf bG9ja3MiID0gd2FybiAmJgotKwkgdGVzdCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIg IT0gIlgkc3JjZmlsZSI7IHRoZW4KLSsJJGVjaG8gIlwKLSsqKiogRVJST1IsICRsb2NrZmlsZSBj b250YWluczoKLStgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKLSsKLStidXQgaXQgc2hvdWxk IGNvbnRhaW46Ci0rJHNyY2ZpbGUKLSsKLStUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJv Y2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCi0rdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBh bmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQotK3lvdXIgY29tcGls ZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKLSty ZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlv dSBoYWQgYmV0dGVyCi0rYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBs YXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKLStjb21waWxlci4iCi0rCi0rCSRydW4gJHJtICRyZW1v dmVsaXN0Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBKdXN0 IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVkZWQKLSsgICAgICBpZiB0ZXN0IC1uICIkb3V0cHV0X29i aiIgJiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAhPSAiWCRvYmoiOyB0aGVuCi0rCSRzaG93ICIkbXYg JG91dHB1dF9vYmogJG9iaiIKLSsJaWYgJHJ1biAkbXYgJG91dHB1dF9vYmogJG9iajsgdGhlbiA6 Ci0rCWVsc2UKLSsJICBlcnJvcj0kPwotKwkgICRydW4gJHJtICRyZW1vdmVsaXN0Ci0rCSAgZXhp dCAkZXJyb3IKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAgICMgQXBwZW5kIHRoZSBuYW1lIG9m IHRoZSBub24tUElDIG9iamVjdCB0aGUgbGlidG9vbCBvYmplY3QgZmlsZS4KLSsgICAgICAjIE9u bHkgYXBwZW5kIGlmIHRoZSBsaWJ0b29sIG9iamVjdCBmaWxlIGV4aXN0cy4KLSsgICAgICB0ZXN0 IC16ICIkcnVuIiAmJiBjYXQgPj4gJHtsaWJvYmp9VCA8PEVPRgotKyMgTmFtZSBvZiB0aGUgbm9u LVBJQyBvYmplY3QuCi0rbm9uX3BpY19vYmplY3Q9JyRvYmpuYW1lJwotKwotK0VPRgotKyAgICBl bHNlCi0rICAgICAgIyBBcHBlbmQgdGhlIG5hbWUgb2YgdGhlIG5vbi1QSUMgb2JqZWN0IHRoZSBs aWJ0b29sIG9iamVjdCBmaWxlLgotKyAgICAgICMgT25seSBhcHBlbmQgaWYgdGhlIGxpYnRvb2wg b2JqZWN0IGZpbGUgZXhpc3RzLgotKyAgICAgIHRlc3QgLXogIiRydW4iICYmIGNhdCA+PiAke2xp Ym9ian1UIDw8RU9GCi0rIyBOYW1lIG9mIHRoZSBub24tUElDIG9iamVjdC4KLStub25fcGljX29i amVjdD1ub25lCi0rCi0rRU9GCi0rICAgIGZpCi0rCi0rICAgICRydW4gJG12ICIke2xpYm9ian1U IiAiJHtsaWJvYmp9IgotKwotKyAgICAjIFVubG9jayB0aGUgY3JpdGljYWwgc2VjdGlvbiBpZiBp dCB3YXMgbG9ja2VkCi0rICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgotKyAg ICAgICRydW4gJHJtICIkbG9ja2ZpbGUiCi0rICAgIGZpCi0rCi0rICAgIGV4aXQgJEVYSVRfU1VD Q0VTUwotKyAgICA7OwotKwotKyAgIyBsaWJ0b29sIGxpbmsgbW9kZQotKyAgbGluayB8IHJlbGlu aykKLSsgICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogbGluayIKLSsgICAgY2FzZSAkaG9zdCBpbgot KyAgICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKikKLSsg ICAgICAjIEl0IGlzIGltcG9zc2libGUgdG8gbGluayBhIGRsbCB3aXRob3V0IHRoaXMgc2V0dGlu ZywgYW5kCi0rICAgICAgIyB3ZSBzaG91bGRuJ3QgZm9yY2UgdGhlIG1ha2VmaWxlIG1haW50YWlu ZXIgdG8gZmlndXJlIG91dAotKyAgICAgICMgd2hpY2ggc3lzdGVtIHdlIGFyZSBjb21waWxpbmcg Zm9yIGluIG9yZGVyIHRvIHBhc3MgYW4gZXh0cmEKLSsgICAgICAjIGZsYWcgZm9yIGV2ZXJ5IGxp YnRvb2wgaW52b2NhdGlvbi4KLSsgICAgICAjIGFsbG93X3VuZGVmaW5lZD1ubwotKwotKyAgICAg ICMgRklYTUU6IFVuZm9ydHVuYXRlbHksIHRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIHRoZSBhYm92 ZSB3aGVuIHRyeWluZwotKyAgICAgICMgdG8gbWFrZSBhIGRsbCB3aGljaCBoYXMgdW5kZWZpbmVk IHN5bWJvbHMsIGluIHdoaWNoIGNhc2Ugbm90Ci0rICAgICAgIyBldmVuIGEgc3RhdGljIGxpYnJh cnkgaXMgYnVpbHQuICBGb3Igbm93LCB3ZSBuZWVkIHRvIHNwZWNpZnkKLSsgICAgICAjIC1uby11 bmRlZmluZWQgb24gdGhlIGxpYnRvb2wgbGluayBsaW5lIHdoZW4gd2UgY2FuIGJlIGNlcnRhaW4K LSsgICAgICAjIHRoYXQgYWxsIHN5bWJvbHMgYXJlIHNhdGlzZmllZCwgb3RoZXJ3aXNlIHdlIGdl dCBhIHN0YXRpYyBsaWJyYXJ5LgotKyAgICAgIGFsbG93X3VuZGVmaW5lZD15ZXMKLSsgICAgICA7 OwotKyAgICAqKQotKyAgICAgIGFsbG93X3VuZGVmaW5lZD15ZXMKLSsgICAgICA7OwotKyAgICBl c2FjCi0rICAgIGxpYnRvb2xfYXJncz0iJG5vbm9wdCIKLSsgICAgYmFzZV9jb21waWxlPSIkbm9u b3B0ICRAIgotKyAgICBjb21waWxlX2NvbW1hbmQ9IiRub25vcHQiCi0rICAgIGZpbmFsaXplX2Nv bW1hbmQ9IiRub25vcHQiCi0rCi0rICAgIGNvbXBpbGVfcnBhdGg9Ci0rICAgIGZpbmFsaXplX3Jw YXRoPQotKyAgICBjb21waWxlX3NobGlicGF0aD0KLSsgICAgZmluYWxpemVfc2hsaWJwYXRoPQot KyAgICBjb252ZW5pZW5jZT0KLSsgICAgb2xkX2NvbnZlbmllbmNlPQotKyAgICBkZXBsaWJzPQot KyAgICBvbGRfZGVwbGlicz0KLSsgICAgY29tcGlsZXJfZmxhZ3M9Ci0rICAgIGxpbmtlcl9mbGFn cz0KLSsgICAgZGxsc2VhcmNocGF0aD0KLSsgICAgbGliX3NlYXJjaF9wYXRoPWBwd2RgCi0rICAg IGluc3RfcHJlZml4X2Rpcj0KLSsKLSsgICAgYXZvaWRfdmVyc2lvbj1ubwotKyAgICBkbGZpbGVz PQotKyAgICBkbHByZWZpbGVzPQotKyAgICBkbHNlbGY9bm8KLSsgICAgZXhwb3J0X2R5bmFtaWM9 bm8KLSsgICAgZXhwb3J0X3N5bWJvbHM9Ci0rICAgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PQotKyAg ICBnZW5lcmF0ZWQ9Ci0rICAgIGxpYm9ianM9Ci0rICAgIGx0bGlicz0KLSsgICAgbW9kdWxlPW5v Ci0rICAgIG5vX2luc3RhbGw9bm8KLSsgICAgb2Jqcz0KLSsgICAgbm9uX3BpY19vYmplY3RzPQot KyAgICBub3RpbnN0X3BhdGg9ICMgcGF0aHMgdGhhdCBjb250YWluIG5vdC1pbnN0YWxsZWQgbGli dG9vbCBsaWJyYXJpZXMKLSsgICAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9Ci0rICAgIHByZWZlcl9z dGF0aWNfbGlicz1ubwotKyAgICBwcmVsb2FkPW5vCi0rICAgIHByZXY9Ci0rICAgIHByZXZhcmc9 Ci0rICAgIHJlbGVhc2U9Ci0rICAgIHJwYXRoPQotKyAgICB4cnBhdGg9Ci0rICAgIHBlcm1fcnBh dGg9Ci0rICAgIHRlbXBfcnBhdGg9Ci0rICAgIHRocmVhZF9zYWZlPW5vCi0rICAgIHZpbmZvPQot KyAgICB2aW5mb19udW1iZXI9bm8KLSsgICAgc2luZ2xlX21vZHVsZT0iJHt3bH0tc2luZ2xlX21v ZHVsZSIKLSsKLSsgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQotKwotKyAgICAjIFdl IG5lZWQgdG8ga25vdyAtc3RhdGljLCB0byBnZXQgdGhlIHJpZ2h0IG91dHB1dCBmaWxlbmFtZXMu Ci0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtYWxs LXN0YXRpYyB8IC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykKLSsJY2FzZSAkYXJnIGlu Ci0rCS1hbGwtc3RhdGljKQotKwkgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVz ICYmIHRlc3QgLXogIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgotKwkgICAgJGVjaG8gIiRtb2Rl bmFtZTogd2FybmluZzogY29tcGxldGUgc3RhdGljIGxpbmtpbmcgaXMgaW1wb3NzaWJsZSBpbiB0 aGlzIGNvbmZpZ3VyYXRpb24iIDE+JjIKLSsJICBmaQotKwkgIGlmIHRlc3QgLW4gIiRsaW5rX3N0 YXRpY19mbGFnIjsgdGhlbgotKwkgICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYwot KwkgIGZpCi0rCSAgcHJlZmVyX3N0YXRpY19saWJzPXllcwotKwkgIDs7Ci0rCS1zdGF0aWMpCi0r CSAgaWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7 IHRoZW4KLSsJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKLSsJICBmaQotKwkg IHByZWZlcl9zdGF0aWNfbGlicz1idWlsdAotKwkgIDs7Ci0rCS1zdGF0aWMtbGlidG9vbC1saWJz KQotKwkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIgJiYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2Zs YWciOyB0aGVuCi0rCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCi0rCSAgZmkK LSsJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCi0rCSAgOzsKLSsJZXNhYwotKwlidWlsZF9saWJ0 b29sX2xpYnM9bm8KLSsJYnVpbGRfb2xkX2xpYnM9eWVzCi0rCWJyZWFrCi0rCTs7Ci0rICAgICAg ZXNhYwotKyAgICBkb25lCi0rCi0rICAgICMgU2VlIGlmIG91ciBzaGFyZWQgYXJjaGl2ZXMgZGVw ZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4KLSsgICAgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHMiICYmIGJ1aWxkX29sZF9saWJzPXllcwotKwotKyAgICAjIEdvIHRocm91Z2ggdGhl IGFyZ3VtZW50cywgdHJhbnNmb3JtaW5nIHRoZW0gb24gdGhlIHdheS4KLSsgICAgd2hpbGUgdGVz dCAiJCMiIC1ndCAwOyBkbwotKyAgICAgIGFyZz0iJDEiCi0rICAgICAgc2hpZnQKLSsgICAgICBj YXNlICRhcmcgaW4KLSsgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBc CV0qfCpdKnwiIikKLSsJcWFyZz1cImAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRzZWRfcXVv dGVfc3Vic3QiYFwiICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAotKwk7 OwotKyAgICAgICopIHFhcmc9JGFyZyA7OwotKyAgICAgIGVzYWMKLSsgICAgICBsaWJ0b29sX2Fy Z3M9IiRsaWJ0b29sX2FyZ3MgJHFhcmciCi0rCi0rICAgICAgIyBJZiB0aGUgcHJldmlvdXMgb3B0 aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCi0rICAgICAgaWYgdGVzdCAtbiAiJHBy ZXYiOyB0aGVuCi0rCWNhc2UgJHByZXYgaW4KLSsJb3V0cHV0KQotKwkgIGNvbXBpbGVfY29tbWFu ZD0iJGNvbXBpbGVfY29tbWFuZCBAT1VUUFVUQCIKLSsJICBmaW5hbGl6ZV9jb21tYW5kPSIkZmlu YWxpemVfY29tbWFuZCBAT1VUUFVUQCIKLSsJICA7OwotKwllc2FjCi0rCi0rCWNhc2UgJHByZXYg aW4KLSsJZGxmaWxlc3xkbHByZWZpbGVzKQotKwkgIGlmIHRlc3QgIiRwcmVsb2FkIiA9IG5vOyB0 aGVuCi0rCSAgICAjIEFkZCB0aGUgc3ltYm9sIG9iamVjdCBpbnRvIHRoZSBsaW5raW5nIGNvbW1h bmRzLgotKwkgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIEBTWU1GSUxFQCIK LSsJICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kIEBTWU1GSUxFQCIKLSsJ ICAgIHByZWxvYWQ9eWVzCi0rCSAgZmkKLSsJICBjYXNlICRhcmcgaW4KLSsJICAqLmxhIHwgKi5s bykgOzsgICMgV2UgaGFuZGxlIHRoZXNlIGNhc2VzIGJlbG93LgotKwkgIGZvcmNlKQotKwkgICAg aWYgdGVzdCAiJGRsc2VsZiIgPSBubzsgdGhlbgotKwkgICAgICBkbHNlbGY9bmVlZGxlc3MKLSsJ ICAgICAgZXhwb3J0X2R5bmFtaWM9eWVzCi0rCSAgICBmaQotKwkgICAgcHJldj0KLSsJICAgIGNv bnRpbnVlCi0rCSAgICA7OwotKwkgIHNlbGYpCi0rCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHBy ZWZpbGVzOyB0aGVuCi0rCSAgICAgIGRsc2VsZj15ZXMKLSsJICAgIGVsaWYgdGVzdCAiJHByZXYi ID0gZGxmaWxlcyAmJiB0ZXN0ICIkZGxvcGVuX3NlbGYiICE9IHllczsgdGhlbgotKwkgICAgICBk bHNlbGY9eWVzCi0rCSAgICBlbHNlCi0rCSAgICAgIGRsc2VsZj1uZWVkbGVzcwotKwkgICAgICBl eHBvcnRfZHluYW1pYz15ZXMKLSsJICAgIGZpCi0rCSAgICBwcmV2PQotKwkgICAgY29udGludWUK LSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4K LSsJICAgICAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKLSsJICAgIGVsc2UKLSsJICAgICAgZGxw cmVmaWxlcz0iJGRscHJlZmlsZXMgJGFyZyIKLSsJICAgIGZpCi0rCSAgICBwcmV2PQotKwkgICAg Y29udGludWUKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWV4cHN5bXMpCi0rCSAgZXhw b3J0X3N5bWJvbHM9IiRhcmciCi0rCSAgaWYgdGVzdCAhIC1mICIkYXJnIjsgdGhlbgotKwkgICAg JGVjaG8gIiRtb2RlbmFtZTogc3ltYm9sIGZpbGUgXGAkYXJnJyBkb2VzIG5vdCBleGlzdCIKLSsJ ICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwkgIGZpCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQot KwkgIDs7Ci0rCWV4cHN5bXNfcmVnZXgpCi0rCSAgZXhwb3J0X3N5bWJvbHNfcmVnZXg9IiRhcmci Ci0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWluc3RfcHJlZml4KQotKwkgIGlu c3RfcHJlZml4X2Rpcj0iJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJ cHJlY2lvdXNfcmVnZXgpCi0rCSAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9IiRhcmciCi0rCSAgcHJl dj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXJlbGVhc2UpCi0rCSAgcmVsZWFzZT0iLSRhcmci Ci0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCW9iamVjdGxpc3QpCi0rCSAgaWYg dGVzdCAtZiAiJGFyZyI7IHRoZW4KLSsJICAgIHNhdmVfYXJnPSRhcmcKLSsJICAgIG1vcmVhcmdz PQotKwkgICAgZm9yIGZpbCBpbiBgY2F0ICRzYXZlX2FyZ2AKLSsJICAgIGRvCi0rIwkgICAgICBt b3JlYXJncz0iJG1vcmVhcmdzICRmaWwiCi0rCSAgICAgIGFyZz0kZmlsCi0rCSAgICAgICMgQSBs aWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0LgotKwotKwkgICAgICAjIENoZWNrIHRvIHNlZSB0aGF0 IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3QuCi0rCSAgICAgIGlmICgke1NFRH0gLWUg JzJxJyAkYXJnIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4KLSsJCXBpY19vYmplY3Q9Ci0rCQlub25fcGljX29iamVjdD0KLSsKLSsJCSMg UmVhZCB0aGUgLmxvIGZpbGUKLSsJCSMgSWYgdGhlcmUgaXMgbm8gZGlyZWN0b3J5IGNvbXBvbmVu dCwgdGhlbiBhZGQgb25lLgotKwkJY2FzZSAkYXJnIGluCi0rCQkqLyogfCAqXFwqKSAuICRhcmcg OzsKLSsJCSopIC4gLi8kYXJnIDs7Ci0rCQllc2FjCi0rCi0rCQlpZiB0ZXN0IC16ICIkcGljX29i amVjdCIgfHwgXAotKwkJICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAotKwkJICAgdGVz dCAiJHBpY19vYmplY3QiID0gbm9uZSAmJiBcCi0rCQkgICB0ZXN0ICIkbm9uX3BpY19vYmplY3Qi ID0gbm9uZTsgdGhlbgotKwkJICAkZWNobyAiJG1vZGVuYW1lOiBjYW5ub3QgZmluZCBuYW1lIG9m IG9iamVjdCBmb3IgXGAkYXJnJyIgMT4mMgotKwkJICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJCWZp Ci0rCi0rCQkjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgotKwkJeGRp cj1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCi0rCQlpZiB0ZXN0ICJY JHhkaXIiID0gIlgkYXJnIjsgdGhlbgotKwkJICB4ZGlyPQotKwkJZWxzZQotKwkJICB4ZGlyPSIk eGRpci8iCi0rCQlmaQotKwotKwkJaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4K LSsJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4K LSsJCSAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVjdCIKLSsKLSsJCSAgaWYgdGVzdCAiJHBy ZXYiID0gZGxmaWxlczsgdGhlbgotKwkJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KLSsJCSAgICAgIGRs ZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgotKwkJICAgICAgcHJldj0KLSsJCSAgICAgIGNv bnRpbnVlCi0rCQkgICAgZWxzZQotKwkJICAgICAgIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVu c3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KLSsJCSAgICAgIHByZXY9ZGxwcmVm aWxlcwotKwkJICAgIGZpCi0rCQkgIGZpCi0rCi0rCQkgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkg YnVzdGVkIHRoaXMuICAtT3NzYW1hCi0rCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7 IHRoZW4KLSsJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0rCQkgICAgZGxw cmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCi0rCQkgICAgcHJldj0KLSsJCSAgZmkK LSsKLSsJCSAgIyBBIFBJQyBvYmplY3QuCi0rCQkgIGxpYm9ianM9IiRsaWJvYmpzICRwaWNfb2Jq ZWN0IgotKwkJICBhcmc9IiRwaWNfb2JqZWN0IgotKwkJZmkKLSsKLSsJCSMgTm9uLVBJQyBvYmpl Y3QuCi0rCQlpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLSsJCSAgIyBQ cmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KLSsJCSAgbm9u X3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9waWNfb2JqZWN0IgotKwotKwkJICAjIEEgc3RhbmRhcmQg bm9uLVBJQyBvYmplY3QKLSsJCSAgbm9uX3BpY19vYmplY3RzPSIkbm9uX3BpY19vYmplY3RzICRu b25fcGljX29iamVjdCIKLSsJCSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRw aWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCi0rCQkgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCi0r CQkgIGZpCi0rCQllbHNlCi0rCQkgICMgSWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQg aW5zdGVhZC4KLSsJCSAgIyAkeGRpciB3YXMgcHJlcGVuZGVkIHRvICRwaWNfb2JqZWN0IGFib3Zl LgotKwkJICBub25fcGljX29iamVjdD0iJHBpY19vYmplY3QiCi0rCQkgIG5vbl9waWNfb2JqZWN0 cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCi0rCQlmaQotKwkgICAgICBlbHNl Ci0rCQkjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KLSsJCWlmIHRlc3Qg LXogIiRydW4iOyB0aGVuCi0rCQkgICRlY2hvICIkbW9kZW5hbWU6IFxgJGFyZycgaXMgbm90IGEg dmFsaWQgbGlidG9vbCBvYmplY3QiIDE+JjIKLSsJCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCQll bHNlCi0rCQkgICMgRHJ5LXJ1biBjYXNlLgotKwotKwkJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5 IGZyb20gdGhlIGFyZ3VtZW50LgotKwkJICB4ZGlyPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUg J3MlL1teL10qJCUlJ2AKLSsJCSAgaWYgdGVzdCAiWCR4ZGlyIiA9ICJYJGFyZyI7IHRoZW4KLSsJ CSAgICB4ZGlyPQotKwkJICBlbHNlCi0rCQkgICAgeGRpcj0iJHhkaXIvIgotKwkJICBmaQotKwot KwkJICBwaWNfb2JqZWN0PWAkZWNobyAiWCR7eGRpcn0ke29iamRpcn0vJHthcmd9IiB8ICRYc2Vk IC1lICIkbG8ybyJgCi0rCQkgIG5vbl9waWNfb2JqZWN0PWAkZWNobyAiWCR7eGRpcn0ke2FyZ30i IHwgJFhzZWQgLWUgIiRsbzJvImAKLSsJCSAgbGlib2Jqcz0iJGxpYm9ianMgJHBpY19vYmplY3Qi Ci0rCQkgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3Qi Ci0rCQlmaQotKwkgICAgICBmaQotKwkgICAgZG9uZQotKwkgIGVsc2UKLSsJICAgICRlY2hvICIk bW9kZW5hbWU6IGxpbmsgaW5wdXQgZmlsZSBcYCRzYXZlX2FyZycgZG9lcyBub3QgZXhpc3QiCi0r CSAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJICBmaQotKwkgIGFyZz0kc2F2ZV9hcmcKLSsJICBw cmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJcnBhdGggfCB4cnBhdGgpCi0rCSAgIyBXZSBu ZWVkIGFuIGFic29sdXRlIHBhdGguCi0rCSAgY2FzZSAkYXJnIGluCi0rCSAgW1xcL10qIHwgW0Et WmEtel06W1xcL10qKSA7OwotKwkgICopCi0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiBvbmx5IGFi c29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIgMT4mMgotKwkgICAgZXhpdCAkRVhJVF9GQUlM VVJFCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICBpZiB0ZXN0ICIkcHJldiIgPSBycGF0aDsgdGhl bgotKwkgICAgY2FzZSAiJHJwYXRoICIgaW4KLSsJICAgICoiICRhcmcgIiopIDs7Ci0rCSAgICAq KSBycGF0aD0iJHJwYXRoICRhcmciIDs7Ci0rCSAgICBlc2FjCi0rCSAgZWxzZQotKwkgICAgY2Fz ZSAiJHhycGF0aCAiIGluCi0rCSAgICAqIiAkYXJnICIqKSA7OwotKwkgICAgKikgeHJwYXRoPSIk eHJwYXRoICRhcmciIDs7Ci0rCSAgICBlc2FjCi0rCSAgZmkKLSsJICBwcmV2PQotKwkgIGNvbnRp bnVlCi0rCSAgOzsKLSsJeGNvbXBpbGVyKQotKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJf ZmxhZ3MgJHFhcmciCi0rCSAgcHJldj0KLSsJICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2Nv bW1hbmQgJHFhcmciCi0rCSAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJHFh cmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwl4bGlua2VyKQotKwkgIGxpbmtlcl9mbGFncz0i JGxpbmtlcl9mbGFncyAkcWFyZyIKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdz ICR3bCRxYXJnIgotKwkgIHByZXY9Ci0rCSAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21t YW5kICR3bCRxYXJnIgotKwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICR3 bCRxYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJeGNjbGlua2VyKQotKwkgIGxpbmtlcl9m bGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVy X2ZsYWdzICRxYXJnIgotKwkgIHByZXY9Ci0rCSAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9j b21tYW5kICRxYXJnIgotKwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRx YXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJc2hyZXh0KQotKyAgCSAgc2hyZXh0X2NtZHM9 IiRhcmciCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWRhcndpbl9mcmFtZXdv cmt8ZGFyd2luX2ZyYW1ld29ya19za2lwKQotKwkgIHRlc3QgIiRwcmV2IiA9ICJkYXJ3aW5fZnJh bWV3b3JrIiAmJiBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCi0rCSAgY29t cGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICRhcmciCi0rCSAgZmluYWxpemVfY29tbWFu ZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAg OzsKLSsJKikKLSsJICBldmFsICIkcHJldj1cIlwkYXJnXCIiCi0rCSAgcHJldj0KLSsJICBjb250 aW51ZQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaSAjIHRlc3QgLW4gIiRwcmV2IgotKwotKyAg ICAgIHByZXZhcmc9IiRhcmciCi0rCi0rICAgICAgY2FzZSAkYXJnIGluCi0rICAgICAgLWFsbC1z dGF0aWMpCi0rCWlmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgotKwkgIGNvbXBp bGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkbGlua19zdGF0aWNfZmxhZyIKLSsJICBmaW5h bGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkbGlua19zdGF0aWNfZmxhZyIKLSsJZmkK LSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtYWxsb3ctdW5kZWZpbmVkKQotKwkjIEZJWE1F OiByZW1vdmUgdGhpcyBmbGFnIHNvbWV0aW1lIGluIHRoZSBmdXR1cmUuCi0rCSRlY2hvICIkbW9k ZW5hbWU6IFxgLWFsbG93LXVuZGVmaW5lZCcgaXMgZGVwcmVjYXRlZCBiZWNhdXNlIGl0IGlzIHRo ZSBkZWZhdWx0IiAxPiYyCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWF2b2lkLXZlcnNp b24pCi0rCWF2b2lkX3ZlcnNpb249eWVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWRs b3BlbikKLSsJcHJldj1kbGZpbGVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWRscHJl b3BlbikKLSsJcHJldj1kbHByZWZpbGVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWV4 cG9ydC1keW5hbWljKQotKwlleHBvcnRfZHluYW1pYz15ZXMKLSsJY29udGludWUKLSsJOzsKLSsK LSsgICAgICAtZXhwb3J0LXN5bWJvbHMgfCAtZXhwb3J0LXN5bWJvbHMtcmVnZXgpCi0rCWlmIHRl c3QgLW4gIiRleHBvcnRfc3ltYm9scyIgfHwgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4 IjsgdGhlbgotKwkgICRlY2hvICIkbW9kZW5hbWU6IG1vcmUgdGhhbiBvbmUgLWV4cG9ydGVkLXN5 bWJvbHMgYXJndW1lbnQgaXMgbm90IGFsbG93ZWQiCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0r CWZpCi0rCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWV4cG9ydC1zeW1ib2xzIjsgdGhlbgotKwkgIHBy ZXY9ZXhwc3ltcwotKwllbHNlCi0rCSAgcHJldj1leHBzeW1zX3JlZ2V4Ci0rCWZpCi0rCWNvbnRp bnVlCi0rCTs7Ci0rCi0rICAgICAgLWZyYW1ld29ya3wtYXJjaHwtaXN5c3Jvb3QpCi0rCWNhc2Ug IiAkQ0MgIiBpbgotKwkgICoiICR7YXJnfSAkezF9ICIqIHwgKiIgJHthcmd9CSR7MX0gIiopIAot KwkJcHJldj1kYXJ3aW5fZnJhbWV3b3JrX3NraXAgOzsKLSsJICAqKSBjb21waWxlcl9mbGFncz0i JGNvbXBpbGVyX2ZsYWdzICRhcmciCi0rCSAgICAgcHJldj1kYXJ3aW5fZnJhbWV3b3JrIDs7Ci0r CWVzYWMKLSsJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICRhcmciCi0rCWZpbmFs aXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRhcmciCi0rCWNvbnRpbnVlCi0rCTs7Ci0r Ci0rICAgICAgLWluc3QtcHJlZml4LWRpcikKLSsJcHJldj1pbnN0X3ByZWZpeAotKwljb250aW51 ZQotKwk7OwotKwotKyAgICAgICMgVGhlIG5hdGl2ZSBJUklYIGxpbmtlciB1bmRlcnN0YW5kcyAt TEFORzoqLCAtTElTVDoqIGFuZCAtTE5POioKLSsgICAgICAjIHNvLCBpZiB3ZSBzZWUgdGhlc2Ug ZmxhZ3MgYmUgY2FyZWZ1bCBub3QgdG8gdHJlYXQgdGhlbSBsaWtlIC1MCi0rICAgICAgLUxbQS1a XVtBLVpdKjoqKQotKwljYXNlICR3aXRoX2djYy8kaG9zdCBpbgotKwluby8qLSotaXJpeCogfCAv Ki0qLWlyaXgqKQotKwkgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkYXJnIgot KwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRhcmciCi0rCSAgOzsKLSsJ ZXNhYwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1MKikKLSsJZGlyPWAkZWNobyAiWCRh cmciIHwgJFhzZWQgLWUgJ3MvXi1MLy8nYAotKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4K LSsJY2FzZSAkZGlyIGluCi0rCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKLSsJKikKLSsJ ICBhYnNkaXI9YGNkICIkZGlyIiAmJiBwd2RgCi0rCSAgaWYgdGVzdCAteiAiJGFic2RpciI7IHRo ZW4KLSsJICAgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGly ZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIgMT4mMgotKwkgICAgYWJzZGlyPSIkZGlyIgotKwkgICAg bm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRkaXIiCi0rCSAgZmkKLSsJICBkaXI9IiRhYnNk aXIiCi0rCSAgOzsKLSsJZXNhYwotKwljYXNlICIkZGVwbGlicyAiIGluCi0rCSoiIC1MJGRpciAi KikgOzsKLSsJKikKLSsJICBkZXBsaWJzPSIkZGVwbGlicyAtTCRkaXIiCi0rCSAgbGliX3NlYXJj aF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiCi0rCSAgOzsKLSsJZXNhYwotKwljYXNlICRo b3N0IGluCi0rCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIq KQotKwkgIHRlc3RiaW5kaXI9YCRlY2hvICJYJGRpciIgfCAkWHNlZCAtZSAncyovbGliJCovYmlu KidgCi0rCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCi0rCSAgKiI6JGRpcjoiKikgOzsKLSsJ ICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokZGlyIjs7Ci0rCSAgZXNhYwotKwkg IGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgotKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OwotKwkg ICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0YmluZGlyIjs7Ci0rCSAgZXNh YwotKwkgIDs7Ci0rCWVzYWMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtbCopCi0rCWlm IHRlc3QgIlgkYXJnIiA9ICJYLWxjIiB8fCB0ZXN0ICJYJGFyZyIgPSAiWC1sbSI7IHRoZW4KLSsJ ICBjYXNlICRob3N0IGluCi0rCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIq IHwgKi0qLWJlb3MqKQotKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUg YSBDIG9yIG1hdGggbGlicmFyeSAoYXMgc3VjaCkKLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7Owot KwkgICotKi1vczIqKQotKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUg YSBDIGxpYnJhcnkgKGFzIHN1Y2gpCi0rCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29u dGludWUKLSsJICAgIDs7Ci0rCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRy YWdvbmZseSopCi0rCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBs aWJjL2xpYmNfci4KLSsJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQotKwkg ICAgOzsKLSsJICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCi0rCSAgICAjIFJo YXBzb2R5IEMgYW5kIG1hdGggbGlicmFyaWVzIGFyZSBpbiB0aGUgU3lzdGVtIGZyYW1ld29yawot KwkgICAgZGVwbGlicz0iJGRlcGxpYnMgLWZyYW1ld29yayBTeXN0ZW0iCi0rCSAgICBjb250aW51 ZQotKwkgICAgOzsKLSsJICAqLSotc2NvMy4ydjUqIHwgKi0qLXNjbzV2NiopCi0rCSAgICAjIENh dXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKLSsJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAm JiBjb250aW51ZQotKwkgICAgOzsKLSsJICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lzdjUqIHwg Ki0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCi0rCSAgICAjIENvbXBpbGVyIGluc2VydHMg bGliYyBpbiB0aGUgY29ycmVjdCBwbGFjZSBmb3IgdGhyZWFkcyB0byB3b3JrCi0rCSAgICB0ZXN0 ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwllbGlm IHRlc3QgIlgkYXJnIiA9ICJYLWxjX3IiOyB0aGVuCi0rCSBjYXNlICRob3N0IGluCi0rCSAqLSot b3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKLSsJICAgIyBEbyBub3Qg aW5jbHVkZSBsaWJjX3IgZGlyZWN0bHksIHVzZSAtcHRocmVhZCBmbGFnLgotKwkgICBjb250aW51 ZQotKwkgICA7OwotKwkgZXNhYwotKwlmaQotKwlkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgotKwlj b250aW51ZQotKwk7OwotKwotKyAgICAgICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0 byBkZXRlcm1pbmUgdGhlIGxheW91dCBvZiBDKysKLSsgICAgICAjIGNsYXNzZXMsIG5hbWUgbWFu Z2xpbmcsIGFuZCBleGNlcHRpb24gaGFuZGxpbmcuCi0rICAgICAgLW1vZGVsKQotKwljb21waWxl X2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKLSsJY29tcGlsZXJfZmxhZ3M9IiRjb21w aWxlcl9mbGFncyAkYXJnIgotKwlmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAk YXJnIgotKwlwcmV2PXhjb21waWxlcgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgLW10fC1t dGhyZWFkc3wta3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRocmVhZHN8LS10aHJlYWQtc2Fm ZXwtdGhyZWFkcykKLSsJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgotKwlj b21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKLSsJZmluYWxpemVfY29tbWFu ZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFyZyIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAt bXVsdGlfbW9kdWxlKQotKwlzaW5nbGVfbW9kdWxlPSIke3dsfS1tdWx0aV9tb2R1bGUiCi0rCWNv bnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW1vZHVsZSkKLSsJbW9kdWxlPXllcwotKwljb250aW51 ZQotKwk7OwotKwotKyAgICAgICMgLTY0LCAtbWlwc1swLTldIGVuYWJsZSA2NC1iaXQgbW9kZSBv biB0aGUgU0dJIGNvbXBpbGVyCi0rICAgICAgIyAtclswLTldWzAtOV0qIHNwZWNpZmllcyB0aGUg cHJvY2Vzc29yIG9uIHRoZSBTR0kgY29tcGlsZXIKLSsgICAgICAjIC14YXJjaD0qLCAteHRhcmdl dD0qIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgU3VuIGNvbXBpbGVyCi0rICAgICAgIyArREEq LCArREQqIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgSFAgY29tcGlsZXIKLSsgICAgICAjIC1x KiBwYXNzIHRocm91Z2ggY29tcGlsZXIgYXJncyBmb3IgdGhlIElCTSBjb21waWxlcgotKyAgICAg ICMgLW0qIHBhc3MgdGhyb3VnaCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29tcGlsZXIgYXJncyBm b3IgR0NDCi0rICAgICAgIyAtbSosIC10WzQ1XSosIC10eHNjYWxlKiBwYXNzIHRocm91Z2ggYXJj aGl0ZWN0dXJlLXNwZWNpZmljCi0rICAgICAgIyBjb21waWxlciBhcmdzIGZvciBHQ0MKLSsgICAg ICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qIHBhc3MgdGhyb3VnaCBwcm9maWxp bmcgZmxhZyBmb3IgR0NDCi0rICAgICAgIyAtRi9wYXRoIGdpdmVzIHBhdGggdG8gdW5pbnN0YWxs ZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRhcndpbgotKyAgICAgICMgQGZpbGUgR0NDIHJlc3BvbnNl IGZpbGVzCi0rICAgICAgLTY0fC1taXBzWzAtOV18LXJbMC05XVswLTldKnwteGFyY2g9KnwteHRh cmdldD0qfCtEQSp8K0REKnwtcSp8LW0qfCBcCi0rICAgICAgLXRbNDVdKnwtdHhzY2FsZSp8LXB8 LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxlLSp8LUYqfEAqKQotKwotKwkjIFVua25vd24gYXJndW1l bnRzIGluIGJvdGggZmluYWxpemVfY29tbWFuZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKLSsJ IyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRl ci4KLSsJYXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAot KwljYXNlICRhcmcgaW4KLSsJKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAld KnwqXSp8IiIpCi0rCSAgYXJnPSJcIiRhcmdcIiIKLSsJICA7OwotKwllc2FjCi0rICAgICAgICBj b21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKLSsgICAgICAgIGZpbmFsaXpl X2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRhcmciCi0rICAgICAgICBjb21waWxlcl9mbGFn cz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCi0rICAgICAgICBjb250aW51ZQotKyAgICAgICAgOzsK LSsKLSsgICAgICAtc2hyZXh0KQotKwlwcmV2PXNocmV4dAotKwljb250aW51ZQotKwk7OwotKwot KyAgICAgIC1uby1mYXN0LWluc3RhbGwpCi0rCWZhc3RfaW5zdGFsbD1ubwotKwljb250aW51ZQot Kwk7OwotKwotKyAgICAgIC1uby1pbnN0YWxsKQotKwljYXNlICRob3N0IGluCi0rCSotKi1jeWd3 aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi0qLWRhcndpbiopCi0r CSAgIyBUaGUgUEFUSCBoYWNrZXJ5IGluIHdyYXBwZXIgc2NyaXB0cyBpcyByZXF1aXJlZCBvbiBX aW5kb3dzCi0rCSAgIyBhbmQgRGFyd2luIGluIG9yZGVyIGZvciB0aGUgbG9hZGVyIHRvIGZpbmQg YW55IGRsbHMgaXQgbmVlZHMuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtbm8t aW5zdGFsbCcgaXMgaWdub3JlZCBmb3IgJGhvc3QiIDE+JjIKLSsJICAkZWNobyAiJG1vZGVuYW1l OiB3YXJuaW5nOiBhc3N1bWluZyBcYC1uby1mYXN0LWluc3RhbGwnIGluc3RlYWQiIDE+JjIKLSsJ ICBmYXN0X2luc3RhbGw9bm8KLSsJICA7OwotKwkqKSBub19pbnN0YWxsPXllcyA7OwotKwllc2Fj Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW5vLXVuZGVmaW5lZCkKLSsJYWxsb3dfdW5k ZWZpbmVkPW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW9iamVjdGxpc3QpCi0rCXBy ZXY9b2JqZWN0bGlzdAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1vKSBwcmV2PW91dHB1 dCA7OwotKwotKyAgICAgIC1wcmVjaW91cy1maWxlcy1yZWdleCkKLSsJcHJldj1wcmVjaW91c19y ZWdleAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1yZWxlYXNlKQotKwlwcmV2PXJlbGVh c2UKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtcnBhdGgpCi0rCXByZXY9cnBhdGgKLSsJ Y29udGludWUKLSsJOzsKLSsKLSsgICAgICAtUikKLSsJcHJldj14cnBhdGgKLSsJY29udGludWUK LSsJOzsKLSsKLSsgICAgICAtUiopCi0rCWRpcj1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICdz L14tUi8vJ2AKLSsJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCi0rCWNhc2UgJGRpciBpbgot KwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7Ci0rCSopCi0rCSAgJGVjaG8gIiRtb2RlbmFt ZTogb25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiIDE+JjIKLSsJICBleGl0ICRF WElUX0ZBSUxVUkUKLSsJICA7OwotKwllc2FjCi0rCWNhc2UgIiR4cnBhdGggIiBpbgotKwkqIiAk ZGlyICIqKSA7OwotKwkqKSB4cnBhdGg9IiR4cnBhdGggJGRpciIgOzsKLSsJZXNhYwotKwljb250 aW51ZQotKwk7OwotKwotKyAgICAgIC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykKLSsJ IyBUaGUgZWZmZWN0cyBvZiAtc3RhdGljIGFyZSBkZWZpbmVkIGluIGEgcHJldmlvdXMgbG9vcC4K LSsJIyBXZSB1c2VkIHRvIGRvIHRoZSBzYW1lIGFzIC1hbGwtc3RhdGljIG9uIHBsYXRmb3JtcyB0 aGF0Ci0rCSMgZGlkbid0IGhhdmUgYSBQSUMgZmxhZywgYnV0IHRoZSBhc3N1bXB0aW9uIHRoYXQg dGhlIGVmZmVjdHMKLSsJIyB3b3VsZCBiZSBlcXVpdmFsZW50IHdhcyB3cm9uZy4gIEl0IHdvdWxk IGJyZWFrIG9uIGF0IGxlYXN0Ci0rCSMgRGlnaXRhbCBVbml4IGFuZCBBSVguCi0rCWNvbnRpbnVl Ci0rCTs7Ci0rCi0rICAgICAgLXRocmVhZC1zYWZlKQotKwl0aHJlYWRfc2FmZT15ZXMKLSsJY29u dGludWUKLSsJOzsKLSsKLSsgICAgICAtdmVyc2lvbi1pbmZvKQotKwlwcmV2PXZpbmZvCi0rCWNv bnRpbnVlCi0rCTs7Ci0rICAgICAgLXZlcnNpb24tbnVtYmVyKQotKwlwcmV2PXZpbmZvCi0rCXZp bmZvX251bWJlcj15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtV2MsKikKLSsJYXJn cz1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0IiAtZSAncy9eLVdj LC8vJ2AKLSsJYXJnPQotKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKLSsJZm9yIGZsYWcgaW4g JGFyZ3M7IGRvCi0rCSAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgY2FzZSAkZmxhZyBpbgotKwkgICAg KltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0rCSAgICBm bGFnPSJcIiRmbGFnXCIiCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICBhcmc9IiRhcmcgJHdsJGZs YWciCi0rCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkZmxhZyIKLSsJZG9uZQot KwlJRlM9IiRzYXZlX2lmcyIKLSsJYXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgInMvXiAv LyJgCi0rCTs7Ci0rCi0rICAgICAgLVdsLCopCi0rCWFyZ3M9YCRlY2hvICJYJGFyZyIgfCAkWHNl ZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCIgLWUgJ3MvXi1XbCwvLydgCi0rCWFyZz0KLSsJc2F2ZV9p ZnM9IiRJRlMiOyBJRlM9JywnCi0rCWZvciBmbGFnIGluICRhcmdzOyBkbwotKwkgIElGUz0iJHNh dmVfaWZzIgotKwkgIGNhc2UgJGZsYWcgaW4KLSsJICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1c fFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQotKwkgICAgZmxhZz0iXCIkZmxhZ1wiIgotKwkgICAg OzsKLSsJICBlc2FjCi0rCSAgYXJnPSIkYXJnICR3bCRmbGFnIgotKwkgIGNvbXBpbGVyX2ZsYWdz PSIkY29tcGlsZXJfZmxhZ3MgJHdsJGZsYWciCi0rCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2Zs YWdzICRmbGFnIgotKwlkb25lCi0rCUlGUz0iJHNhdmVfaWZzIgotKwlhcmc9YCRlY2hvICJYJGFy ZyIgfCAkWHNlZCAtZSAicy9eIC8vImAKLSsJOzsKLSsKLSsgICAgICAtWGNvbXBpbGVyKQotKwlw cmV2PXhjb21waWxlcgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1YbGlua2VyKQotKwlw cmV2PXhsaW5rZXIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtWENDbGlua2VyKQotKwlw cmV2PXhjY2xpbmtlcgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMgU29tZSBvdGhlciBj b21waWxlciBmbGFnLgotKyAgICAgIC0qIHwgKyopCi0rCSMgVW5rbm93biBhcmd1bWVudHMgaW4g Ym90aCBmaW5hbGl6ZV9jb21tYW5kIGFuZCBjb21waWxlX2NvbW1hbmQgbmVlZAotKwkjIHRvIGJl IGFlc3RoZXRpY2FsbHkgcXVvdGVkIGJlY2F1c2UgdGhleSBhcmUgZXZhbGVkIGxhdGVyLgotKwlh cmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi0rCWNhc2Ug JGFyZyBpbgotKwkqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwi IikKLSsJICBhcmc9IlwiJGFyZ1wiIgotKwkgIDs7Ci0rCWVzYWMKLSsJOzsKLSsKLSsgICAgICAq LiRvYmpleHQpCi0rCSMgQSBzdGFuZGFyZCBvYmplY3QuCi0rCW9ianM9IiRvYmpzICRhcmciCi0r CTs7Ci0rCi0rICAgICAgKi5sbykKLSsJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBvYmplY3QuCi0r Ci0rCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIG9iamVjdC4K LSsJaWYgKCR7U0VEfSAtZSAnMnEnICRhcmcgfCBncmVwICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFD S0FHRSIpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgIHBpY19vYmplY3Q9Ci0rCSAgbm9uX3Bp Y19vYmplY3Q9Ci0rCi0rCSAgIyBSZWFkIHRoZSAubG8gZmlsZQotKwkgICMgSWYgdGhlcmUgaXMg bm8gZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgotKwkgIGNhc2UgJGFyZyBpbgot KwkgICovKiB8ICpcXCopIC4gJGFyZyA7OwotKwkgICopIC4gLi8kYXJnIDs7Ci0rCSAgZXNhYwot KwotKwkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fCBcCi0rCSAgICAgdGVzdCAteiAiJG5v bl9waWNfb2JqZWN0IiB8fAotKwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgJiYgXAot KwkgICAgIHRlc3QgIiRub25fcGljX29iamVjdCIgPSBub25lOyB0aGVuCi0rCSAgICAkZWNobyAi JG1vZGVuYW1lOiBjYW5ub3QgZmluZCBuYW1lIG9mIG9iamVjdCBmb3IgXGAkYXJnJyIgMT4mMgot KwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgZmkKLSsKLSsJICAjIEV4dHJhY3Qgc3ViZGly ZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgotKwkgIHhkaXI9YCRlY2hvICJYJGFyZyIgfCAkWHNl ZCAtZSAncyUvW14vXSokJSUnYAotKwkgIGlmIHRlc3QgIlgkeGRpciIgPSAiWCRhcmciOyB0aGVu Ci0rCSAgICB4ZGlyPQotKyAJICBlbHNlCi0rCSAgICB4ZGlyPSIkeGRpci8iCi0rCSAgZmkKLSsK LSsJICBpZiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkgICAgIyBQcmVwZW5k IHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KLSsJICAgIHBpY19vYmpl Y3Q9IiR4ZGlyJHBpY19vYmplY3QiCi0rCi0rCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVz OyB0aGVuCi0rCSAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRl c3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KLSsJCWRsZmlsZXM9IiRkbGZpbGVzICRw aWNfb2JqZWN0IgotKwkJcHJldj0KLSsJCWNvbnRpbnVlCi0rCSAgICAgIGVsc2UKLSsJCSMgSWYg bGlidG9vbCBvYmplY3RzIGFyZSB1bnN1cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQu Ci0rCQlwcmV2PWRscHJlZmlsZXMKLSsJICAgICAgZmkKLSsJICAgIGZpCi0rCi0rCSAgICAjIENI RUNLIE1FOiAgSSB0aGluayBJIGJ1c3RlZCB0aGlzLiAgLU9zc2FtYQotKwkgICAgaWYgdGVzdCAi JHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgotKwkgICAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHls ZSBvYmplY3QuCi0rCSAgICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0Igot KwkgICAgICBwcmV2PQotKwkgICAgZmkKLSsKLSsJICAgICMgQSBQSUMgb2JqZWN0LgotKwkgICAg bGlib2Jqcz0iJGxpYm9ianMgJHBpY19vYmplY3QiCi0rCSAgICBhcmc9IiRwaWNfb2JqZWN0Igot KwkgIGZpCi0rCi0rCSAgIyBOb24tUElDIG9iamVjdC4KLSsJICBpZiB0ZXN0ICIkbm9uX3BpY19v YmplY3QiICE9IG5vbmU7IHRoZW4KLSsJICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRo ZSBvYmplY3QgaXMgZm91bmQgaW4uCi0rCSAgICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3Bp Y19vYmplY3QiCi0rCi0rCSAgICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKLSsJICAgIG5v bl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCi0rCSAgICBp ZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSA7IHRo ZW4KLSsJICAgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJ ICAgICMgSWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KLSsJICAgICMg JHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92ZS4KLSsJICAgIG5vbl9waWNf b2JqZWN0PSIkcGljX29iamVjdCIKLSsJICAgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2Jq ZWN0cyAkbm9uX3BpY19vYmplY3QiCi0rCSAgZmkKLSsJZWxzZQotKwkgICMgT25seSBhbiBlcnJv ciBpZiBub3QgZG9pbmcgYSBkcnktcnVuLgotKwkgIGlmIHRlc3QgLXogIiRydW4iOyB0aGVuCi0r CSAgICAkZWNobyAiJG1vZGVuYW1lOiBcYCRhcmcnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgb2Jq ZWN0IiAxPiYyCi0rCSAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJICBlbHNlCi0rCSAgICAjIERy eS1ydW4gY2FzZS4KLSsKLSsJICAgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJn dW1lbnQuCi0rCSAgICB4ZGlyPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUl J2AKLSsJICAgIGlmIHRlc3QgIlgkeGRpciIgPSAiWCRhcmciOyB0aGVuCi0rCSAgICAgIHhkaXI9 Ci0rCSAgICBlbHNlCi0rCSAgICAgIHhkaXI9IiR4ZGlyLyIKLSsJICAgIGZpCi0rCi0rCSAgICBw aWNfb2JqZWN0PWAkZWNobyAiWCR7eGRpcn0ke29iamRpcn0vJHthcmd9IiB8ICRYc2VkIC1lICIk bG8ybyJgCi0rCSAgICBub25fcGljX29iamVjdD1gJGVjaG8gIlgke3hkaXJ9JHthcmd9IiB8ICRY c2VkIC1lICIkbG8ybyJgCi0rCSAgICBsaWJvYmpzPSIkbGlib2JqcyAkcGljX29iamVjdCIKLSsJ ICAgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCi0r CSAgZmkKLSsJZmkKLSsJOzsKLSsKLSsgICAgICAqLiRsaWJleHQpCi0rCSMgQW4gYXJjaGl2ZS4K LSsJZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKLSsJb2xkX2RlcGxpYnM9IiRvbGRfZGVwbGlicyAk YXJnIgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICoubGEpCi0rCSMgQSBsaWJ0b29sLWNv bnRyb2xsZWQgbGlicmFyeS4KLSsKLSsJaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgot KwkgICMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxvcGVuLgotKwkgIGRsZmls ZXM9IiRkbGZpbGVzICRhcmciCi0rCSAgcHJldj0KLSsJZWxpZiB0ZXN0ICIkcHJldiIgPSBkbHBy ZWZpbGVzOyB0aGVuCi0rCSAgIyBUaGUgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJl b3Blbi4KLSsJICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgotKwkgIHByZXY9Ci0rCWVs c2UKLSsJICBkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgotKwlmaQotKwljb250aW51ZQotKwk7Owot KwotKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBhcmd1bWVudC4KLSsgICAgICAqKQotKwkj IFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVfY29tbWFuZCBhbmQgY29tcGlsZV9j b21tYW5kIG5lZWQKLSsJIyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkg YXJlIGV2YWxlZCBsYXRlci4KLSsJYXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRzZWRf cXVvdGVfc3Vic3QiYAotKwljYXNlICRhcmcgaW4KLSsJKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8 XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0rCSAgYXJnPSJcIiRhcmdcIiIKLSsJICA7OwotKwll c2FjCi0rCTs7Ci0rICAgICAgZXNhYyAjIGFyZwotKwotKyAgICAgICMgTm93IGFjdHVhbGx5IHN1 YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRzLgotKyAgICAgIGlmIHRlc3Qg LW4gIiRhcmciOyB0aGVuCi0rCWNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkYXJn IgotKwlmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkYXJnIgotKyAgICAgIGZp Ci0rICAgIGRvbmUgIyBhcmd1bWVudCBwYXJzaW5nIGxvb3AKLSsKLSsgICAgaWYgdGVzdCAtbiAi JHByZXYiOyB0aGVuCi0rICAgICAgJGVjaG8gIiRtb2RlbmFtZTogdGhlIFxgJHByZXZhcmcnIG9w dGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIgMT4mMgotKyAgICAgICRlY2hvICIkaGVscCIgMT4m MgotKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0ICIk ZXhwb3J0X2R5bmFtaWMiID0geWVzICYmIHRlc3QgLW4gIiRleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWMiOyB0aGVuCi0rICAgICAgZXZhbCBhcmc9XCIkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIK LSsgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKLSsgICAgICBm aW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkYXJnIgotKyAgICBmaQotKwotKyAg ICBvbGRsaWJzPQotKyAgICAjIGNhbGN1bGF0ZSB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgd2l0aG91 dCBpdHMgZGlyZWN0b3J5Ci0rICAgIG91dHB1dG5hbWU9YCRlY2hvICJYJG91dHB1dCIgfCAkWHNl ZCAtZSAncyVeLiovJSUnYAotKyAgICBsaWJvYmpzX3NhdmU9IiRsaWJvYmpzIgotKwotKyAgICBp ZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsgICAgICAjIGdldCB0aGUgZGlyZWN0 b3JpZXMgbGlzdGVkIGluICRzaGxpYnBhdGhfdmFyCi0rICAgICAgZXZhbCBzaGxpYl9zZWFyY2hf cGF0aD1cYFwkZWNobyBcIlhcJHskc2hsaWJwYXRoX3Zhcn1cIiBcfCBcJFhzZWQgLWUgXCdzLzov IC9nXCdcYAotKyAgICBlbHNlCi0rICAgICAgc2hsaWJfc2VhcmNoX3BhdGg9Ci0rICAgIGZpCi0r ICAgIGV2YWwgc3lzX2xpYl9zZWFyY2hfcGF0aD1cIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWNc IgotKyAgICBldmFsIHN5c19saWJfZGxzZWFyY2hfcGF0aD1cIiRzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlY1wiCi0rCi0rICAgIG91dHB1dF9vYmpkaXI9YCRlY2hvICJYJG91dHB1dCIgfCAkWHNl ZCAtZSAncyUvW14vXSokJSUnYAotKyAgICBpZiB0ZXN0ICJYJG91dHB1dF9vYmpkaXIiID0gIlgk b3V0cHV0IjsgdGhlbgotKyAgICAgIG91dHB1dF9vYmpkaXI9IiRvYmpkaXIiCi0rICAgIGVsc2UK LSsgICAgICBvdXRwdXRfb2JqZGlyPSIkb3V0cHV0X29iamRpci8kb2JqZGlyIgotKyAgICBmaQot KyAgICAjIENyZWF0ZSB0aGUgb2JqZWN0IGRpcmVjdG9yeS4KLSsgICAgaWYgdGVzdCAhIC1kICIk b3V0cHV0X29iamRpciI7IHRoZW4KLSsgICAgICAkc2hvdyAiJG1rZGlyICRvdXRwdXRfb2JqZGly IgotKyAgICAgICRydW4gJG1rZGlyICRvdXRwdXRfb2JqZGlyCi0rICAgICAgZXhpdF9zdGF0dXM9 JD8KLSsgICAgICBpZiB0ZXN0ICIkZXhpdF9zdGF0dXMiIC1uZSAwICYmIHRlc3QgISAtZCAiJG91 dHB1dF9vYmpkaXIiOyB0aGVuCi0rCWV4aXQgJGV4aXRfc3RhdHVzCi0rICAgICAgZmkKLSsgICAg ZmkKLSsKLSsgICAgIyBEZXRlcm1pbmUgdGhlIHR5cGUgb2Ygb3V0cHV0Ci0rICAgIGNhc2UgJG91 dHB1dCBpbgotKyAgICAiIikKLSsgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVj aWZ5IGFuIG91dHB1dCBmaWxlIiAxPiYyCi0rICAgICAgJGVjaG8gIiRoZWxwIiAxPiYyCi0rICAg ICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgICAgOzsKLSsgICAgKi4kbGliZXh0KSBsaW5rbW9k ZT1vbGRsaWIgOzsKLSsgICAgKi5sbyB8ICouJG9iamV4dCkgbGlua21vZGU9b2JqIDs7Ci0rICAg ICoubGEpIGxpbmttb2RlPWxpYiA7OwotKyAgICAqKSBsaW5rbW9kZT1wcm9nIDs7ICMgQW55dGhp bmcgZWxzZSBzaG91bGQgYmUgYSBwcm9ncmFtLgotKyAgICBlc2FjCi0rCi0rICAgIGNhc2UgJGhv c3QgaW4KLSsgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqKQotKyAgICAgICMgZG9uJ3Qg ZWxpbWluYXRlIGR1cGxpY2F0aW9ucyBpbiAkcG9zdGRlcHMgYW5kICRwcmVkZXBzCi0rICAgICAg ZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPXllcwotKyAgICAgIDs7Ci0rICAgICop Ci0rICAgICAgZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPSRkdXBsaWNhdGVfZGVw cwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgc3BlY2lhbGRlcGxpYnM9Ci0rCi0rICAgIGxp YnM9Ci0rICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVwbGlicyBieSBzZWFyY2hpbmcg Zm9yIGxpYnJhcmllcwotKyAgICAjIHRoYXQgYXJlIGxpbmtlZCBtb3JlIHRoYW4gb25jZSAoZS5n LiAtbGEgLWxiIC1sYSkKLSsgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KLSsgICAgICBp ZiB0ZXN0ICJYJGR1cGxpY2F0ZV9kZXBzIiA9ICJYeWVzIiA7IHRoZW4KLSsJY2FzZSAiJGxpYnMg IiBpbgotKwkqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRk ZXBsaWIiIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGxpYnM9IiRsaWJzICRkZXBsaWIi Ci0rICAgIGRvbmUKLSsKLSsgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKyAg ICAgIGxpYnM9IiRwcmVkZXBzICRsaWJzICRjb21waWxlcl9saWJfc2VhcmNoX3BhdGggJHBvc3Rk ZXBzIgotKwotKyAgICAgICMgQ29tcHV0ZSBsaWJyYXJpZXMgdGhhdCBhcmUgbGlzdGVkIG1vcmUg dGhhbiBvbmNlIGluICRwcmVkZXBzCi0rICAgICAgIyAkcG9zdGRlcHMgYW5kIG1hcmsgdGhlbSBh cyBzcGVjaWFsIChpLmUuLCB3aG9zZSBkdXBsaWNhdGVzIGFyZQotKyAgICAgICMgbm90IHRvIGJl IGVsaW1pbmF0ZWQpLgotKyAgICAgIHByZV9wb3N0X2RlcHM9Ci0rICAgICAgaWYgdGVzdCAiWCRk dXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHMiID0gIlh5ZXMiIDsgdGhlbgotKwlmb3Ig cHJlX3Bvc3RfZGVwIGluICRwcmVkZXBzICRwb3N0ZGVwczsgZG8KLSsJICBjYXNlICIkcHJlX3Bv c3RfZGVwcyAiIGluCi0rCSAgKiIgJHByZV9wb3N0X2RlcCAiKikgc3BlY2lhbGRlcGxpYnM9IiRz cGVjaWFsZGVwbGlicyAkcHJlX3Bvc3RfZGVwcyIgOzsKLSsJICBlc2FjCi0rCSAgcHJlX3Bvc3Rf ZGVwcz0iJHByZV9wb3N0X2RlcHMgJHByZV9wb3N0X2RlcCIKLSsJZG9uZQotKyAgICAgIGZpCi0r ICAgICAgcHJlX3Bvc3RfZGVwcz0KLSsgICAgZmkKLSsKLSsgICAgZGVwbGlicz0KLSsgICAgbmV3 ZGVwZW5kZW5jeV9saWJzPQotKyAgICBuZXdsaWJfc2VhcmNoX3BhdGg9Ci0rICAgIG5lZWRfcmVs aW5rPW5vICMgd2hldGhlciB3ZSdyZSBsaW5raW5nIGFueSB1bmluc3RhbGxlZCBsaWJ0b29sIGxp YnJhcmllcwotKyAgICBub3RpbnN0X2RlcGxpYnM9ICMgbm90LWluc3RhbGxlZCBsaWJ0b29sIGxp YnJhcmllcwotKyAgICBjYXNlICRsaW5rbW9kZSBpbgotKyAgICBsaWIpCi0rCXBhc3Nlcz0iY29u diBsaW5rIgotKwlmb3IgZmlsZSBpbiAkZGxmaWxlcyAkZGxwcmVmaWxlczsgZG8KLSsJICBjYXNl ICRmaWxlIGluCi0rCSAgKi5sYSkgOzsKLSsJICAqKQotKwkgICAgJGVjaG8gIiRtb2RlbmFtZTog bGlicmFyaWVzIGNhbiBcYC1kbG9wZW4nIG9ubHkgbGlidG9vbCBsaWJyYXJpZXM6ICRmaWxlIiAx PiYyCi0rCSAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlkb25l Ci0rCTs7Ci0rICAgIHByb2cpCi0rCWNvbXBpbGVfZGVwbGlicz0KLSsJZmluYWxpemVfZGVwbGli cz0KLSsJYWxsZGVwbGlicz1ubwotKwluZXdkbGZpbGVzPQotKwluZXdkbHByZWZpbGVzPQotKwlw YXNzZXM9ImNvbnYgc2NhbiBkbG9wZW4gZGxwcmVvcGVuIGxpbmsiCi0rCTs7Ci0rICAgICopICBw YXNzZXM9ImNvbnYiCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgZm9yIHBhc3MgaW4gJHBhc3Nlczsg ZG8KLSsgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIiB8fAotKwkg dGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iOyB0aGVuCi0rCWxpYnM9IiRkZXBs aWJzIgotKwlkZXBsaWJzPQotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9 IHByb2c7IHRoZW4KLSsJY2FzZSAkcGFzcyBpbgotKwlkbG9wZW4pIGxpYnM9IiRkbGZpbGVzIiA7 OwotKwlkbHByZW9wZW4pIGxpYnM9IiRkbHByZWZpbGVzIiA7OwotKwlsaW5rKSBsaWJzPSIkZGVw bGlicyAlREVQTElCUyUgJGRlcGVuZGVuY3lfbGlicyIgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0r ICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCi0rCSMgQ29sbGVjdCBkbHByZW9w ZW5lZCBsaWJyYXJpZXMKLSsJc2F2ZV9kZXBsaWJzPSIkZGVwbGlicyIKLSsJZGVwbGlicz0KLSsg ICAgICBmaQotKyAgICAgIGZvciBkZXBsaWIgaW4gJGxpYnM7IGRvCi0rCWxpYj0KLSsJZm91bmQ9 bm8KLSsJY2FzZSAkZGVwbGliIGluCi0rCS1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8 LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRocmVhZHMpCi0rCSAgaWYgdGVzdCAi JGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCi0rCSAgICBjb21waWxlX2RlcGxp YnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRk ZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgY29tcGlsZXJfZmxhZ3M9 IiRjb21waWxlcl9mbGFncyAkZGVwbGliIgotKwkgIGZpCi0rCSAgY29udGludWUKLSsJICA7Owot KwktbCopCi0rCSAgaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWIgJiYgdGVzdCAiJGxpbmttb2Rl IiAhPSBwcm9nOyB0aGVuCi0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1sJyBp cyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIiAxPiYyCi0rCSAgICBjb250aW51ZQotKwkg IGZpCi0rCSAgbmFtZT1gJGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICdzL14tbC8vJ2AKLSsJ ICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCi0rCSAgICBzZWFyY2hkaXJzPSIkbmV3 bGliX3NlYXJjaF9wYXRoICRsaWJfc2VhcmNoX3BhdGggJGNvbXBpbGVyX2xpYl9zZWFyY2hfZGly cyAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGgiCi0rCSAgZWxzZQotKwkg ICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRzeXNf bGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aCIKLSsJICBmaQotKwkgIGZvciBzZWFy Y2hkaXIgaW4gJHNlYXJjaGRpcnM7IGRvCi0rCSAgICBmb3Igc2VhcmNoX2V4dCBpbiAubGEgJHN0 ZF9zaHJleHQgLnNvIC5hOyBkbwotKwkgICAgICAjIFNlYXJjaCB0aGUgbGlidG9vbCBsaWJyYXJ5 Ci0rCSAgICAgIGxpYj0iJHNlYXJjaGRpci9saWIke25hbWV9JHtzZWFyY2hfZXh0fSIKLSsJICAg ICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KLSsJCWlmIHRlc3QgIiRzZWFyY2hfZXh0IiA9ICIu bGEiOyB0aGVuCi0rCQkgIGZvdW5kPXllcwotKwkJZWxzZQotKwkJICBmb3VuZD1ubwotKwkJZmkK LSsJCWJyZWFrIDIKLSsJICAgICAgZmkKLSsJICAgIGRvbmUKLSsJICBkb25lCi0rCSAgaWYgdGVz dCAiJGZvdW5kIiAhPSB5ZXM7IHRoZW4KLSsJICAgICMgZGVwbGliIGRvZXNuJ3Qgc2VlbSB0byBi ZSBhIGxpYnRvb2wgbGlicmFyeQotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJw cm9nLGxpbmsiOyB0aGVuCi0rCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGls ZV9kZXBsaWJzIgotKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9k ZXBsaWJzIgotKwkgICAgZWxzZQotKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgot KwkgICAgICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRl cGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgZmkKLSsJICAgIGNvbnRpbnVlCi0rCSAg ZWxzZSAjIGRlcGxpYiBpcyBhIGxpYnRvb2wgbGlicmFyeQotKwkgICAgIyBJZiAkYWxsb3dfbGli dG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzICYmICRkZXBsaWIgaXMgYSBzdGRsaWIsCi0r CSAgICAjIFdlIG5lZWQgdG8gZG8gc29tZSBzcGVjaWFsIHRoaW5ncyBoZXJlLCBhbmQgbm90IGxh dGVyLgotKwkgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVu dGltZXMiID0gIlh5ZXMiIDsgdGhlbgotKwkgICAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBz ICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikKLSsJCWlmICgke1NFRH0gLWUgJzJxJyAkbGli IHwKLSsgICAgICAgICAgICAgICAgICAgIGdyZXAgIl4jIEdlbmVyYXRlZCBieSAuKiRQQUNLQUdF IikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCQkgIGxpYnJhcnlfbmFtZXM9Ci0rCQkgIG9sZF9s aWJyYXJ5PQotKwkJICBjYXNlICRsaWIgaW4KLSsJCSAgKi8qIHwgKlxcKikgLiAkbGliIDs7Ci0r CQkgICopIC4gLi8kbGliIDs7Ci0rCQkgIGVzYWMKLSsJCSAgZm9yIGwgaW4gJG9sZF9saWJyYXJ5 ICRsaWJyYXJ5X25hbWVzOyBkbwotKwkJICAgIGxsPSIkbCIKLSsJCSAgZG9uZQotKwkJICBpZiB0 ZXN0ICJYJGxsIiA9ICJYJG9sZF9saWJyYXJ5IiA7IHRoZW4gIyBvbmx5IHN0YXRpYyB2ZXJzaW9u IGF2YWlsYWJsZQotKwkJICAgIGZvdW5kPW5vCi0rCQkgICAgbGFkaXI9YCRlY2hvICJYJGxpYiIg fCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAotKwkJICAgIHRlc3QgIlgkbGFkaXIiID0gIlgkbGli IiAmJiBsYWRpcj0iLiIKLSsJCSAgICBsaWI9JGxhZGlyLyRvbGRfbGlicmFyeQotKwkJICAgIGlm IHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgotKwkJICAgICAgY29t cGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCi0rCQkgICAgICBmaW5hbGl6 ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkJICAgIGVsc2UKLSsJCSAg ICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCQkgICAgICB0ZXN0ICIkbGlua21vZGUi ID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJz IgotKwkJICAgIGZpCi0rCQkgICAgY29udGludWUKLSsJCSAgZmkKLSsJCWZpCi0rCSAgICAgICAg OzsKLSsJICAgICAgKikgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICBmaQotKwkgIDs7 ICMgLWwKLSsJLUwqKQotKwkgIGNhc2UgJGxpbmttb2RlIGluCi0rCSAgbGliKQotKwkgICAgZGVw bGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIHRlc3QgIiRwYXNzIiA9IGNvbnYgJiYgY29u dGludWUKLSsJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9s aWJzIgotKwkgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICJgJGVj aG8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICdzL14tTC8vJ2AKLSsJICAgIDs7Ci0rCSAgcHJvZykK LSsJICAgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRl cGxpYiAkZGVwbGlicyIKLSsJICAgICAgY29udGludWUKLSsJICAgIGZpCi0rCSAgICBpZiB0ZXN0 ICIkcGFzcyIgPSBzY2FuOyB0aGVuCi0rCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMi Ci0rCSAgICBlbHNlCi0rCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9k ZXBsaWJzIgotKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBs aWJzIgotKwkgICAgZmkKLSsJICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hf cGF0aCAiYCRlY2hvICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAncy9eLUwvLydgCi0rCSAgICA7Owot KwkgICopCi0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1MJyBpcyBpZ25vcmVk IGZvciBhcmNoaXZlcy9vYmplY3RzIiAxPiYyCi0rCSAgICA7OwotKwkgIGVzYWMgIyBsaW5rbW9k ZQotKwkgIGNvbnRpbnVlCi0rCSAgOzsgIyAtTAotKwktUiopCi0rCSAgaWYgdGVzdCAiJHBhc3Mi ID0gbGluazsgdGhlbgotKwkgICAgZGlyPWAkZWNobyAiWCRkZXBsaWIiIHwgJFhzZWQgLWUgJ3Mv Xi1SLy8nYAotKwkgICAgIyBNYWtlIHN1cmUgdGhlIHhycGF0aCBjb250YWlucyBvbmx5IHVuaXF1 ZSBkaXJlY3Rvcmllcy4KLSsJICAgIGNhc2UgIiR4cnBhdGggIiBpbgotKwkgICAgKiIgJGRpciAi KikgOzsKLSsJICAgICopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7OwotKwkgICAgZXNhYwotKwkg IGZpCi0rCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICBjb250aW51ZQotKwkgIDs7 Ci0rCSoubGEpIGxpYj0iJGRlcGxpYiIgOzsKLSsJKi4kbGliZXh0KQotKwkgIGlmIHRlc3QgIiRw YXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAg ICBjb250aW51ZQotKwkgIGZpCi0rCSAgY2FzZSAkbGlua21vZGUgaW4KLSsJICBsaWIpCi0rCSAg ICB2YWxpZF9hX2xpYj1ubwotKwkgICAgY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KLSsJ ICAgICAgbWF0Y2hfcGF0dGVybiopCi0rCQlzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9k Ci0rCSAgICAgICAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0 aG9kIiA6ICIkMiBcKC4qXCkiYAotKwkJaWYgZXZhbCAkZWNobyBcIiRkZXBsaWJcIiAyPi9kZXYv bnVsbCBcCi0rCQkgICAgfCAkU0VEIDEwcSBcCi0rCQkgICAgfCAkRUdSRVAgIiRtYXRjaF9wYXR0 ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJICB2YWxpZF9hX2xpYj15ZXMKLSsJCWZp Ci0rCQk7OwotKwkgICAgICBwYXNzX2FsbCkKLSsJCXZhbGlkX2FfbGliPXllcwotKwkJOzsKLSsg ICAgICAgICAgICBlc2FjCi0rCSAgICBpZiB0ZXN0ICIkdmFsaWRfYV9saWIiICE9IHllczsgdGhl bgotKwkgICAgICAkZWNobwotKwkgICAgICAkZWNobyAiKioqIFdhcm5pbmc6IFRyeWluZyB0byBs aW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRkZXBsaWIuIgotKwkgICAgICAkZWNobyAiKioq IEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5 IGxpbmsgaW4gd2hlbiIKLSsJICAgICAgJGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJh cnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCSAgICAgICRlY2hv ICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBw ZWFyIHRvIGhhdmUiCi0rCSAgICAgICRlY2hvICIqKiogYmVjYXVzZSB0aGUgZmlsZSBleHRlbnNp b25zIC4kbGliZXh0IG9mIHRoaXMgYXJndW1lbnQgbWFrZXMgbWUgYmVsaWV2ZSIKLSsJICAgICAg JGVjaG8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBzdGF0aWMgYXJjaGl2ZSB0aGF0IEkgc2hvdWxk IG5vdCB1c2VkIGhlcmUuIgotKwkgICAgZWxzZQotKwkgICAgICAkZWNobwotKwkgICAgICAkZWNo byAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5z dCB0aGUiCi0rCSAgICAgICRlY2hvICIqKiogc3RhdGljIGxpYnJhcnkgJGRlcGxpYiBpcyBub3Qg cG9ydGFibGUhIgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgICAgZmkK LSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIHByb2cpCi0rCSAgICBpZiB0ZXN0ICIkcGFz cyIgIT0gbGluazsgdGhlbgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkg ICAgZWxzZQotKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGli cyIKLSsJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIK LSsJICAgIGZpCi0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICBlc2FjICMgbGlua21vZGUK LSsJICA7OyAjICouJGxpYmV4dAotKwkqLmxvIHwgKi4kb2JqZXh0KQotKwkgIGlmIHRlc3QgIiRw YXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAg ZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwkgICAgaWYgdGVzdCAiJHBhc3Mi ID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8IHRlc3QgIiRi dWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KLSsJICAgICAgIyBJZiB0aGVyZSBpcyBubyBk bG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nIHN0YXRpY2FsbHksCi0rCSAgICAgICMgd2Ug bmVlZCB0byBwcmVsb2FkLgotKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAk ZGVwbGliIgotKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGli cyIKLSsJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIK LSsJICAgIGVsc2UKLSsJICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGRlcGxpYiIKLSsJ ICAgIGZpCi0rCSAgZmkKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCSVERVBMSUJTJSkKLSsJICBh bGxkZXBsaWJzPXllcwotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJZXNhYyAjIGNhc2UgJGRlcGxp YgotKwlpZiB0ZXN0ICIkZm91bmQiID0geWVzIHx8IHRlc3QgLWYgIiRsaWIiOyB0aGVuIDoKLSsJ ZWxzZQotKwkgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBmaW5kIHRoZSBsaWJyYXJ5IFxgJGxp Yicgb3IgdW5oYW5kbGVkIGFyZ3VtZW50IFxgJGRlcGxpYiciIDE+JjIKLSsJICBleGl0ICRFWElU X0ZBSUxVUkUKLSsJZmkKLSsKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBh IGxpYnRvb2wgYXJjaGl2ZS4KLSsJaWYgKCR7U0VEfSAtZSAnMnEnICRsaWIgfCBncmVwICJeIyBH ZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6Ci0rCWVsc2UK LSsJICAkZWNobyAiJG1vZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJj aGl2ZSIgMT4mMgotKwkgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwlmaQotKwotKwlsYWRpcj1gJGVj aG8gIlgkbGliIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCi0rCXRlc3QgIlgkbGFkaXIiID0g IlgkbGliIiAmJiBsYWRpcj0iLiIKLSsKLSsJZGxuYW1lPQotKwlkbG9wZW49Ci0rCWRscHJlb3Bl bj0KLSsJbGliZGlyPQotKwlsaWJyYXJ5X25hbWVzPQotKwlvbGRfbGlicmFyeT0KLSsJIyBJZiB0 aGUgbGlicmFyeSB3YXMgaW5zdGFsbGVkIHdpdGggYW4gb2xkIHJlbGVhc2Ugb2YgbGlidG9vbCwK LSsJIyBpdCB3aWxsIG5vdCByZWRlZmluZSB2YXJpYWJsZXMgaW5zdGFsbGVkLCBvciBzaG91bGRu b3RsaW5rCi0rCWluc3RhbGxlZD15ZXMKLSsJc2hvdWxkbm90bGluaz1ubwotKwlhdm9pZHRlbXBy cGF0aD0KLSsKLSsKLSsJIyBSZWFkIHRoZSAubGEgZmlsZQotKwljYXNlICRsaWIgaW4KLSsJKi8q IHwgKlxcKikgLiAkbGliIDs7Ci0rCSopIC4gLi8kbGliIDs7Ci0rCWVzYWMKLSsKLSsJaWYgdGVz dCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayIgfHwKLSsJICAgdGVzdCAiJGxpbmttb2Rl LCRwYXNzIiA9ICJwcm9nLHNjYW4iIHx8Ci0rCSAgIHsgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9n ICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliOyB9OyB0aGVuCi0rCSAgdGVzdCAtbiAiJGRsb3Bl biIgJiYgZGxmaWxlcz0iJGRsZmlsZXMgJGRsb3BlbiIKLSsJICB0ZXN0IC1uICIkZGxwcmVvcGVu IiAmJiBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkZGxwcmVvcGVuIgotKwlmaQotKwotKwlpZiB0 ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCi0rCSAgIyBPbmx5IGNoZWNrIGZvciBjb252ZW5pZW5j ZSBsaWJyYXJpZXMKLSsJICBkZXBsaWJzPSIkbGliICRkZXBsaWJzIgotKwkgIGlmIHRlc3QgLXog IiRsaWJkaXIiOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB0aGVuCi0r CSAgICAgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5 IGZvciBcYCRsaWInIiAxPiYyCi0rCSAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwkgICAgZmkK LSsJICAgICMgSXQgaXMgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxpYnJhcnksIHNvIGFkZCBpbiBp dHMgb2JqZWN0cy4KLSsJICAgIGNvbnZlbmllbmNlPSIkY29udmVuaWVuY2UgJGxhZGlyLyRvYmpk aXIvJG9sZF9saWJyYXJ5IgotKwkgICAgb2xkX2NvbnZlbmllbmNlPSIkb2xkX2NvbnZlbmllbmNl ICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKLSsJICAgIHRtcF9saWJzPQotKwkgICAgZm9y IGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAgICBkZXBsaWJzPSIkZGVwbGli ICRkZXBsaWJzIgotKyAgICAgICAgICAgICAgaWYgdGVzdCAiWCRkdXBsaWNhdGVfZGVwcyIgPSAi WHllcyIgOyB0aGVuCi0rCSAgICAgICAgY2FzZSAiJHRtcF9saWJzICIgaW4KLSsJICAgICAgICAq IiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7 Ci0rCSAgICAgICAgZXNhYwotKyAgICAgICAgICAgICAgZmkKLSsJICAgICAgdG1wX2xpYnM9IiR0 bXBfbGlicyAkZGVwbGliIgotKwkgICAgZG9uZQotKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlIiAh PSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliOyB0aGVuCi0rCSAgICAkZWNobyAiJG1v ZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBhIGNvbnZlbmllbmNlIGxpYnJhcnkiIDE+JjIKLSsJICAg IGV4aXQgJEVYSVRfRkFJTFVSRQotKwkgIGZpCi0rCSAgY29udGludWUKLSsJZmkgIyAkcGFzcyA9 IGNvbnYKLSsKLSsKLSsJIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgd2UgbGluayBhZ2Fp bnN0LgotKwlsaW5rbGliPQotKwlmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7 IGRvCi0rCSAgbGlua2xpYj0iJGwiCi0rCWRvbmUKLSsJaWYgdGVzdCAteiAiJGxpbmtsaWIiOyB0 aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGZpbmQgbmFtZSBvZiBsaW5rIGxpYnJh cnkgZm9yIFxgJGxpYiciIDE+JjIKLSsJICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJZmkKLSsKLSsJ IyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbG9wZW4uCi0rCWlmIHRlc3QgIiRw YXNzIiA9IGRsb3BlbjsgdGhlbgotKwkgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0rCSAg ICAkZWNobyAiJG1vZGVuYW1lOiBjYW5ub3QgLWRsb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6 IFxgJGxpYiciIDE+JjIKLSsJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwkgIGZpCi0rCSAgaWYg dGVzdCAteiAiJGRsbmFtZSIgfHwKLSsJICAgICB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiICE9IHll cyB8fAotKwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KLSsJICAg ICMgSWYgdGhlcmUgaXMgbm8gZGxuYW1lLCBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5r aW5nCi0rCSAgICAjIHN0YXRpY2FsbHksIHdlIG5lZWQgdG8gcHJlbG9hZC4gIFdlIGFsc28gbmVl ZCB0byBwcmVsb2FkIGFueQotKwkgICAgIyBkZXBlbmRlbnQgbGlicmFyaWVzIHNvIGxpYmx0ZGwn cyBkZXBsaWIgcHJlbG9hZGVyIGRvZXNuJ3QKLSsJICAgICMgYm9tYiBvdXQgaW4gdGhlIGxvYWQg ZGVwbGlicyBwaGFzZS4KLSsJICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRsaWIgJGRlcGVu ZGVuY3lfbGlicyIKLSsJICBlbHNlCi0rCSAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGli IgotKwkgIGZpCi0rCSAgY29udGludWUKLSsJZmkgIyAkcGFzcyA9IGRsb3BlbgotKwotKwkjIFdl IG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJY2FzZSAkbGFkaXIgaW4KLSsJW1xcL10qIHwgW0Et WmEtel06W1xcL10qKSBhYnNfbGFkaXI9IiRsYWRpciIgOzsKLSsJKikKLSsJICBhYnNfbGFkaXI9 YGNkICIkbGFkaXIiICYmIHB3ZGAKLSsJICBpZiB0ZXN0IC16ICIkYWJzX2xhZGlyIjsgdGhlbgot KwkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90IGRldGVybWluZSBhYnNvbHV0 ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRsYWRpciciIDE+JjIKLSsJICAgICRlY2hvICIkbW9kZW5h bWU6IHBhc3NpbmcgaXQgbGl0ZXJhbGx5IHRvIHRoZSBsaW5rZXIsIGFsdGhvdWdoIGl0IG1pZ2h0 IGZhaWwiIDE+JjIKLSsJICAgIGFic19sYWRpcj0iJGxhZGlyIgotKwkgIGZpCi0rCSAgOzsKLSsJ ZXNhYwotKwlsYW5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAotKwot KwkjIEZpbmQgdGhlIHJlbGV2YW50IG9iamVjdCBkaXJlY3RvcnkgYW5kIGxpYnJhcnkgbmFtZS4K LSsJaWYgdGVzdCAiWCRpbnN0YWxsZWQiID0gWHllczsgdGhlbgotKwkgIGlmIHRlc3QgISAtZiAi JGxpYmRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4K LSsJICAgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGxpYnJhcnkgXGAkbGliJyB3YXMgbW92 ZWQuIiAxPiYyCi0rCSAgICBkaXI9IiRsYWRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRpciIK LSsJICAgIGxpYmRpcj0iJGFic19sYWRpciIKLSsJICBlbHNlCi0rCSAgICBkaXI9IiRsaWJkaXIi Ci0rCSAgICBhYnNkaXI9IiRsaWJkaXIiCi0rCSAgZmkKLSsJICB0ZXN0ICJYJGhhcmRjb2RlX2F1 dG9tYXRpYyIgPSBYeWVzICYmIGF2b2lkdGVtcHJwYXRoPXllcwotKwllbHNlCi0rCSAgaWYgdGVz dCAhIC1mICIkbGFkaXIvJG9iamRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8k bGlua2xpYiI7IHRoZW4KLSsJICAgIGRpcj0iJGxhZGlyIgotKwkgICAgYWJzZGlyPSIkYWJzX2xh ZGlyIgotKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgotKwkgICAgbm90aW5z dF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIiCi0rCSAgZWxzZQotKwkgICAgZGlyPSIk bGFkaXIvJG9iamRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRpci8kb2JqZGlyIgotKwkgICAg IyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgotKwkgICAgbm90aW5zdF9wYXRoPSIkbm90 aW5zdF9wYXRoICRhYnNfbGFkaXIiCi0rCSAgZmkKLSsJZmkgIyAkaW5zdGFsbGVkID0geWVzCi0r CW5hbWU9YCRlY2hvICJYJGxhbmFtZSIgfCAkWHNlZCAtZSAncy9cLmxhJC8vJyAtZSAncy9ebGli Ly8nYAotKwotKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4K LSsJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCi0rCSAgaWYgdGVzdCAteiAiJGxp YmRpciI7IHRoZW4KLSsJICAgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCAtZGxwcmVvcGVuIGEg Y29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIgMT4mMgotKwkgICAgZXhpdCAkRVhJVF9GQUlM VVJFCi0rCSAgZmkKLSsJICAjIFByZWZlciB1c2luZyBhIHN0YXRpYyBsaWJyYXJ5IChzbyB0aGF0 IG5vIHNpbGx5IF9EWU5BTUlDIHN5bWJvbHMKLSsJICAjIGFyZSByZXF1aXJlZCB0byBsaW5rKS4K LSsJICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCi0rCSAgICBuZXdkbHByZWZpbGVz PSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRvbGRfbGlicmFyeSIKLSsJICAjIE90aGVyd2lzZSwgdXNl IHRoZSBkbG5hbWUsIHNvIHRoYXQgbHRfZGxvcGVuIGZpbmRzIGl0LgotKwkgIGVsaWYgdGVzdCAt biAiJGRsbmFtZSI7IHRoZW4KLSsJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRk aXIvJGRsbmFtZSIKLSsJICBlbHNlCi0rCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxl cyAkZGlyLyRsaW5rbGliIgotKwkgIGZpCi0rCWZpICMgJHBhc3MgPSBkbHByZW9wZW4KLSsKLSsJ aWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KLSsJICAjIExpbmsgdGhlIGNvbnZlbmllbmNlIGxp YnJhcnkKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCi0rCSAgICBkZXBsaWJz PSIkZGlyLyRvbGRfbGlicmFyeSAkZGVwbGlicyIKLSsJICBlbGlmIHRlc3QgIiRsaW5rbW9kZSwk cGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgotKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRv bGRfbGlicmFyeSAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRp ci8kb2xkX2xpYnJhcnkgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgZGVwbGli cz0iJGxpYiAkZGVwbGlicyIgIyB1c2VkIGZvciBwcm9nLHNjYW4gcGFzcwotKwkgIGZpCi0rCSAg Y29udGludWUKLSsJZmkKLSsKLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgJiYgdGVz dCAiJHBhc3MiICE9IGxpbms7IHRoZW4KLSsJICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJf c2VhcmNoX3BhdGggJGxhZGlyIgotKwkgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiCi0rCi0rCSAg bGlua2FsbGRlcGxpYnM9bm8KLSsJICBpZiB0ZXN0ICIkbGlua19hbGxfZGVwbGlicyIgIT0gbm8g fHwgdGVzdCAteiAiJGxpYnJhcnlfbmFtZXMiIHx8Ci0rCSAgICAgdGVzdCAiJGJ1aWxkX2xpYnRv b2xfbGlicyIgPSBubzsgdGhlbgotKwkgICAgbGlua2FsbGRlcGxpYnM9eWVzCi0rCSAgZmkKLSsK LSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0r CSAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgIC1MKikgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3 bGliX3NlYXJjaF9wYXRoICJgJGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICdzL14tTC8vJ2A7 OyAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKLSsJICAgIGVzYWMKLSsJ ICAgICMgTmVlZCB0byBsaW5rIGFnYWluc3QgYWxsIGRlcGVuZGVuY3lfbGlicz8KLSsJICAgIGlm IHRlc3QgIiRsaW5rYWxsZGVwbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRl cGxpYiAkZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgIyBOZWVkIHRvIGhhcmRjb2RlIHNo YXJlZCBsaWJyYXJ5IHBhdGhzCi0rCSAgICAgICMgb3IvYW5kIGxpbmsgYWdhaW5zdCBzdGF0aWMg bGlicmFyaWVzCi0rCSAgICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5k ZW5jeV9saWJzIgotKwkgICAgZmkKLSsJICAgIGlmIHRlc3QgIlgkZHVwbGljYXRlX2RlcHMiID0g Ilh5ZXMiIDsgdGhlbgotKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgotKwkgICAgICAqIiAk ZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7Ci0r CSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIi Ci0rCSAgZG9uZSAjIGZvciBkZXBsaWIKLSsJICBjb250aW51ZQotKwlmaSAjICRsaW5rbW9kZSA9 IHByb2cuLi4KLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0 aGVuCi0rCSAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCi0rCSAgICAgeyB7IHRlc3Qg IiRwcmVmZXJfc3RhdGljX2xpYnMiID0gbm8gfHwKLSsJCSB0ZXN0ICIkcHJlZmVyX3N0YXRpY19s aWJzLCRpbnN0YWxsZWQiID0gImJ1aWx0LHllcyI7IH0gfHwKLSsJICAgICAgIHRlc3QgLXogIiRv bGRfbGlicmFyeSI7IH07IHRoZW4KLSsJICAgICMgV2UgbmVlZCB0byBoYXJkY29kZSB0aGUgbGli cmFyeSBwYXRoCi0rCSAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAteiAi JGF2b2lkdGVtcHJwYXRoIiA7IHRoZW4KLSsJICAgICAgIyBNYWtlIHN1cmUgdGhlIHJwYXRoIGNv bnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgotKwkgICAgICBjYXNlICIkdGVtcF9ycGF0 aCAiIGluCi0rCSAgICAgICoiICRkaXIgIiopIDs7Ci0rCSAgICAgICoiICRhYnNkaXIgIiopIDs7 Ci0rCSAgICAgICopIHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoICRhYnNkaXIiIDs7Ci0rCSAgICAg IGVzYWMKLSsJICAgIGZpCi0rCi0rCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCi0r CSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1 bi10aW1lCi0rCSAgICAjIHNlYXJjaCBwYXRoLgotKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2Vh cmNoX3BhdGggIiBpbgotKwkgICAgKiIgJGFic2RpciAiKikgOzsKLSsJICAgICopCi0rCSAgICAg IGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KLSsJICAgICAgKiIgJGFic2RpciAiKikgOzsKLSsJ ICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKLSsJICAgICAg ZXNhYwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2Vh cmNoX3BhdGggIiBpbgotKwkgICAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAgICopCi0rCSAgICAg IGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCi0rCSAgICAgICoiICRsaWJkaXIgIiopIDs7Ci0r CSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKLSsJICAg ICAgZXNhYwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgIGZpICMgJGxpbmttb2RlLCRwYXNz ID0gcHJvZyxsaW5rLi4uCi0rCi0rCSAgaWYgdGVzdCAiJGFsbGRlcGxpYnMiID0geWVzICYmCi0r CSAgICAgeyB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiID0gcGFzc19hbGwgfHwKLSsJICAg ICAgIHsgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYKLSsJCSB0ZXN0IC1uICIk bGlicmFyeV9uYW1lcyI7IH07IH07IHRoZW4KLSsJICAgICMgV2Ugb25seSBuZWVkIHRvIHNlYXJj aCBmb3Igc3RhdGljIGxpYnJhcmllcwotKwkgICAgY29udGludWUKLSsJICBmaQotKwlmaQotKwot KwlsaW5rX3N0YXRpYz1ubyAjIFdoZXRoZXIgdGhlIGRlcGxpYiB3aWxsIGJlIGxpbmtlZCBzdGF0 aWNhbGx5Ci0rCXVzZV9zdGF0aWNfbGlicz0kcHJlZmVyX3N0YXRpY19saWJzCi0rCWlmIHRlc3Qg IiR1c2Vfc3RhdGljX2xpYnMiID0gYnVpbHQgJiYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXMgOyB0 aGVuCi0rCSAgdXNlX3N0YXRpY19saWJzPW5vCi0rCWZpCi0rCWlmIHRlc3QgLW4gIiRsaWJyYXJ5 X25hbWVzIiAmJgotKwkgICB7IHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gbm8gfHwgdGVzdCAt eiAiJG9sZF9saWJyYXJ5IjsgfTsgdGhlbgotKwkgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0gbm87 IHRoZW4KLSsJICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgotKwkg ICAgbmVlZF9yZWxpbms9eWVzCi0rCSAgZmkKLSsJICAjIFRoaXMgaXMgYSBzaGFyZWQgbGlicmFy eQotKwotKwkgICMgV2FybiBhYm91dCBwb3J0YWJpbGl0eSwgY2FuJ3QgbGluayBhZ2FpbnN0IC1t b2R1bGUncyBvbgotKwkgICMgc29tZSBzeXN0ZW1zIChkYXJ3aW4pCi0rCSAgaWYgdGVzdCAiJHNo b3VsZG5vdGxpbmsiID0geWVzICYmIHRlc3QgIiRwYXNzIiA9IGxpbmsgOyB0aGVuCi0rCSAgICAk ZWNobwotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJICAgICAgJGVj aG8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxlICRvdXRwdXQgYWdhaW5zdCB0 aGUgbG9hZGFibGUgbW9kdWxlIgotKwkgICAgZWxzZQotKwkgICAgICAkZWNobyAiKioqIFdhcm5p bmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFi bGUgbW9kdWxlIgotKwkgICAgZmkKLSsJICAgICRlY2hvICIqKiogJGxpbmtsaWIgaXMgbm90IHBv cnRhYmxlISIKLSsJICBmaQotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYKLSsJICAg ICB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhlbgotKwkgICAgIyBIYXJkY29k ZSB0aGUgbGlicmFyeSBwYXRoLgotKwkgICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGlu IHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4tdGltZQotKwkgICAgIyBzZWFyY2ggcGF0aC4KLSsJICAg IGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRhYnNkaXIgIiop IDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIkY29tcGlsZV9ycGF0aCAiIGluCi0rCSAgICAg ICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAgICopIGNvbXBpbGVfcnBhdGg9IiRjb21waWxlX3Jw YXRoICRhYnNkaXIiCi0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAg IGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRsaWJkaXIgIiop IDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgotKwkgICAg ICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXpl X3JwYXRoICRsaWJkaXIiCi0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJ ICBmaQotKwotKwkgIGlmIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyI7 IHRoZW4KLSsJICAgICMgZmlndXJlIG91dCB0aGUgc29uYW1lCi0rCSAgICBzZXQgZHVtbXkgJGxp YnJhcnlfbmFtZXMKLSsJICAgIHJlYWxuYW1lPSIkMiIKLSsJICAgIHNoaWZ0OyBzaGlmdAotKwkg ICAgbGlibmFtZT1gZXZhbCBcXCRlY2hvIFwiJGxpYm5hbWVfc3BlY1wiYAotKwkgICAgIyB1c2Ug ZGxuYW1lIGlmIHdlIGdvdCBpdC4gaXQncyBwZXJmZWN0bHkgZ29vZCwgbm8/Ci0rCSAgICBpZiB0 ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgotKwkgICAgICBzb25hbWU9IiRkbG5hbWUiCi0rCSAgICBl bGlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KLSsJICAgICAgIyBibGVoIHdpbmRvd3MK LSsJICAgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICAqY3lnd2luKiB8IG1pbmd3KikKLSsJCW1h am9yPWBleHByICRjdXJyZW50IC0gJGFnZWAKLSsJCXZlcnN1ZmZpeD0iLSRtYWpvciIKLSsJCTs7 Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgZXZhbCBzb25hbWU9XCIkc29uYW1lX3NwZWNcIgotKwkg ICAgZWxzZQotKwkgICAgICBzb25hbWU9IiRyZWFsbmFtZSIKLSsJICAgIGZpCi0rCi0rCSAgICAj IE1ha2UgYSBuZXcgbmFtZSBmb3IgdGhlIGV4dHJhY3RfZXhwc3ltc19jbWRzIHRvIHVzZQotKwkg ICAgc29yb290PSIkc29uYW1lIgotKwkgICAgc29uYW1lPWAkZWNobyAkc29yb290IHwgJHtTRUR9 IC1lICdzL14uKlwvLy8nYAotKwkgICAgbmV3bGliPSJsaWJpbXAtYCRlY2hvICRzb25hbWUgfCAk e1NFRH0gJ3MvXmxpYi8vO3MvXC5kbGwkLy8nYC5hIgotKwotKwkgICAgIyBJZiB0aGUgbGlicmFy eSBoYXMgbm8gZXhwb3J0IGxpc3QsIHRoZW4gY3JlYXRlIG9uZSBub3cKLSsJICAgIGlmIHRlc3Qg LWYgIiRvdXRwdXRfb2JqZGlyLyRzb25hbWUtZGVmIjsgdGhlbiA6Ci0rCSAgICBlbHNlCi0rCSAg ICAgICRzaG93ICJleHRyYWN0aW5nIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gXGAkc29uYW1l JyIKLSsJICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rCSAgICAgIGNtZHM9JGV4dHJh Y3RfZXhwc3ltc19jbWRzCi0rCSAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCQlJRlM9IiRz YXZlX2lmcyIKLSsJCWV2YWwgY21kPVwiJGNtZFwiCi0rCQkkc2hvdyAiJGNtZCIKLSsJCSRydW4g ZXZhbCAiJGNtZCIgfHwgZXhpdCAkPwotKwkgICAgICBkb25lCi0rCSAgICAgIElGUz0iJHNhdmVf aWZzIgotKwkgICAgZmkKLSsKLSsJICAgICMgQ3JlYXRlICRuZXdsaWIKLSsJICAgIGlmIHRlc3Qg LWYgIiRvdXRwdXRfb2JqZGlyLyRuZXdsaWIiOyB0aGVuIDo7IGVsc2UKLSsJICAgICAgJHNob3cg ImdlbmVyYXRpbmcgaW1wb3J0IGxpYnJhcnkgZm9yIFxgJHNvbmFtZSciCi0rCSAgICAgIHNhdmVf aWZzPSIkSUZTIjsgSUZTPSd+JwotKwkgICAgICBjbWRzPSRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kcwotKwkgICAgICBmb3IgY21kIGluICRjbWRzOyBkbwotKwkJSUZTPSIkc2F2ZV9pZnMi Ci0rCQlldmFsIGNtZD1cIiRjbWRcIgotKwkJJHNob3cgIiRjbWQiCi0rCQkkcnVuIGV2YWwgIiRj bWQiIHx8IGV4aXQgJD8KLSsJICAgICAgZG9uZQotKwkgICAgICBJRlM9IiRzYXZlX2lmcyIKLSsJ ICAgIGZpCi0rCSAgICAjIG1ha2Ugc3VyZSB0aGUgbGlicmFyeSB2YXJpYWJsZXMgYXJlIHBvaW50 aW5nIHRvIHRoZSBuZXcgbGlicmFyeQotKwkgICAgZGlyPSRvdXRwdXRfb2JqZGlyCi0rCSAgICBs aW5rbGliPSRuZXdsaWIKLSsJICBmaSAjIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kcyIKLSsKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkbW9k ZSIgIT0gcmVsaW5rOyB0aGVuCi0rCSAgICBhZGRfc2hsaWJwYXRoPQotKwkgICAgYWRkX2Rpcj0K LSsJICAgIGFkZD0KLSsJICAgIGxpYl9saW5rZWQ9eWVzCi0rCSAgICBjYXNlICRoYXJkY29kZV9h Y3Rpb24gaW4KLSsJICAgIGltbWVkaWF0ZSB8IHVuc3VwcG9ydGVkKQotKwkgICAgICBpZiB0ZXN0 ICIkaGFyZGNvZGVfZGlyZWN0IiA9IG5vOyB0aGVuCi0rCQlhZGQ9IiRkaXIvJGxpbmtsaWIiCi0r CQljYXNlICRob3N0IGluCi0rCQkgICotKi1zY28zLjJ2NS4wLlswMjRdKikgYWRkX2Rpcj0iLUwk ZGlyIiA7OwotKwkJICAqLSotc3lzdjQqdXcyKikgYWRkX2Rpcj0iLUwkZGlyIiA7OwotKwkJICAq LSotc3lzdjVPcGVuVU5JWCogfCAqLSotc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IFwKLSsJ CSAgICAqLSotdW5peHdhcmU3KikgYWRkX2Rpcj0iLUwkZGlyIiA7OwotKwkJICAqLSotZGFyd2lu KiApCi0rCQkgICAgIyBpZiB0aGUgbGliIGlzIGEgbW9kdWxlIHRoZW4gd2UgY2FuIG5vdCBsaW5r IGFnYWluc3QKLSsJCSAgICAjIGl0LCBzb21lb25lIGlzIGlnbm9yaW5nIHRoZSBuZXcgd2Fybmlu Z3MgSSBhZGRlZAotKwkJICAgIGlmIC91c3IvYmluL2ZpbGUgLUwgJGFkZCAyPiAvZGV2L251bGwg fAotKyAgICAgICAgICAgICAgICAgICAgICAkRUdSRVAgIjogW146XSogYnVuZGxlIiA+L2Rldi9u dWxsIDsgdGhlbgotKwkJICAgICAgJGVjaG8gIioqIFdhcm5pbmcsIGxpYiAkbGlua2xpYiBpcyBh IG1vZHVsZSwgbm90IGEgc2hhcmVkIGxpYnJhcnkiCi0rCQkgICAgICBpZiB0ZXN0IC16ICIkb2xk X2xpYnJhcnkiIDsgdGhlbgotKwkJICAgICAgICAkZWNobwotKwkJICAgICAgICAkZWNobyAiKiog QW5kIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIK LSsJCSAgICAgICAgJGVjaG8gIioqIFRoZSBsaW5rIHdpbGwgcHJvYmFibHkgZmFpbCwgc29ycnki Ci0rCQkgICAgICBlbHNlCi0rCQkgICAgICAgIGFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCi0rCQkg ICAgICBmaQotKwkJICAgIGZpCi0rCQllc2FjCi0rCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2Rl X21pbnVzX0wiID0gbm87IHRoZW4KLSsJCWNhc2UgJGhvc3QgaW4KLSsJCSotKi1zdW5vcyopIGFk ZF9zaGxpYnBhdGg9IiRkaXIiIDs7Ci0rCQllc2FjCi0rCQlhZGRfZGlyPSItTCRkaXIiCi0rCQlh ZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIi ID0gbm87IHRoZW4KLSsJCWFkZF9zaGxpYnBhdGg9IiRkaXIiCi0rCQlhZGQ9Ii1sJG5hbWUiCi0r CSAgICAgIGVsc2UKLSsJCWxpYl9saW5rZWQ9bm8KLSsJICAgICAgZmkKLSsJICAgICAgOzsKLSsJ ICAgIHJlbGluaykKLSsJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXM7IHRo ZW4KLSsJCWFkZD0iJGRpci8kbGlua2xpYiIKLSsJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVf bWludXNfTCIgPSB5ZXM7IHRoZW4KLSsJCWFkZF9kaXI9Ii1MJGRpciIKLSsJCSMgVHJ5IGxvb2tp bmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KLSsJCWlm IHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCi0rCQkgIGNhc2UgJGxpYmRpciBpbgot KwkJICAgIFtcXC9dKikKLSsJCSAgICAgIGFkZF9kaXI9IiRhZGRfZGlyIC1MJGluc3RfcHJlZml4 X2RpciRsaWJkaXIiCi0rCQkgICAgICA7OwotKwkJICBlc2FjCi0rCQlmaQotKwkJYWRkPSItbCRu YW1lIgotKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsg dGhlbgotKwkJYWRkX3NobGlicGF0aD0iJGRpciIKLSsJCWFkZD0iLWwkbmFtZSIKLSsJICAgICAg ZWxzZQotKwkJbGliX2xpbmtlZD1ubwotKwkgICAgICBmaQotKwkgICAgICA7OwotKwkgICAgKikg bGliX2xpbmtlZD1ubyA7OwotKwkgICAgZXNhYwotKwotKwkgICAgaWYgdGVzdCAiJGxpYl9saW5r ZWQiICE9IHllczsgdGhlbgotKwkgICAgICAkZWNobyAiJG1vZGVuYW1lOiBjb25maWd1cmF0aW9u IGVycm9yOiB1bnN1cHBvcnRlZCBoYXJkY29kZSBwcm9wZXJ0aWVzIgotKwkgICAgICBleGl0ICRF WElUX0ZBSUxVUkUKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0ZXN0IC1uICIkYWRkX3NobGlicGF0 aCI7IHRoZW4KLSsJICAgICAgY2FzZSA6JGNvbXBpbGVfc2hsaWJwYXRoOiBpbgotKwkgICAgICAq IjokYWRkX3NobGlicGF0aDoiKikgOzsKLSsJICAgICAgKikgY29tcGlsZV9zaGxpYnBhdGg9IiRj b21waWxlX3NobGlicGF0aCRhZGRfc2hsaWJwYXRoOiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAg ZmkKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgICAgIHRlc3Qg LW4gIiRhZGRfZGlyIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGRfZGlyICRjb21waWxlX2RlcGxp YnMiCi0rCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZCAkY29t cGlsZV9kZXBsaWJzIgotKwkgICAgZWxzZQotKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYg ZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxpYnMiCi0rCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRl cGxpYnM9IiRhZGQgJGRlcGxpYnMiCi0rCSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3Qi ICE9IHllcyAmJiBcCi0rCQkgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiICE9IHllcyAmJiBcCi0r CQkgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCi0rCQljYXNlIDok ZmluYWxpemVfc2hsaWJwYXRoOiBpbgotKwkJKiI6JGxpYmRpcjoiKikgOzsKLSsJCSopIGZpbmFs aXplX3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6IiA7OwotKwkJZXNhYwot KwkgICAgICBmaQotKwkgICAgZmkKLSsJICBmaQotKwotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIg PSBwcm9nIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgotKwkgICAgYWRkX3NobGlicGF0 aD0KLSsJICAgIGFkZF9kaXI9Ci0rCSAgICBhZGQ9Ci0rCSAgICAjIEZpbmFsaXplIGNvbW1hbmQg Zm9yIGJvdGggaXMgc2ltcGxlOiBqdXN0IGhhcmRjb2RlIGl0LgotKwkgICAgaWYgdGVzdCAiJGhh cmRjb2RlX2RpcmVjdCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgYWRkPSIkbGliZGlyLyRsaW5rbGli IgotKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KLSsJICAg ICAgYWRkX2Rpcj0iLUwkbGliZGlyIgotKwkgICAgICBhZGQ9Ii1sJG5hbWUiCi0rCSAgICBlbGlm IHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgotKwkgICAgICBjYXNl IDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgotKwkgICAgICAqIjokbGliZGlyOiIqKSA7OwotKwkg ICAgICAqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgkbGliZGlyOiIg OzsKLSsJICAgICAgZXNhYwotKwkgICAgICBhZGQ9Ii1sJG5hbWUiCi0rCSAgICBlbGlmIHRlc3Qg IiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzOyB0aGVuCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRp bnN0X3ByZWZpeF9kaXIiICYmCi0rCQkgdGVzdCAtZiAiJGluc3RfcHJlZml4X2RpciRsaWJkaXIv JGxpbmtsaWIiIDsgdGhlbgotKwkgICAgICAgIGFkZD0iJGluc3RfcHJlZml4X2RpciRsaWJkaXIv JGxpbmtsaWIiCi0rCSAgICAgIGVsc2UKLSsJICAgICAgICBhZGQ9IiRsaWJkaXIvJGxpbmtsaWIi Ci0rCSAgICAgIGZpCi0rCSAgICBlbHNlCi0rCSAgICAgICMgV2UgY2Fubm90IHNlZW0gdG8gaGFy ZGNvZGUgaXQsIGd1ZXNzIHdlJ2xsIGZha2UgaXQuCi0rCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRp ciIKLSsJICAgICAgIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVp bmcgaW5zdGFsbGVkIHRvLgotKwkgICAgICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsg dGhlbgotKwkJY2FzZSAkbGliZGlyIGluCi0rCQkgIFtcXC9dKikKLSsJCSAgICBhZGRfZGlyPSIk YWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgotKwkJICAgIDs7Ci0rCQllc2FjCi0r CSAgICAgIGZpCi0rCSAgICAgIGFkZD0iLWwkbmFtZSIKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0 ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIg JiYgZmluYWxpemVfZGVwbGlicz0iJGFkZF9kaXIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICAg IHRlc3QgLW4gIiRhZGQiICYmIGZpbmFsaXplX2RlcGxpYnM9IiRhZGQgJGZpbmFsaXplX2RlcGxp YnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIk YWRkX2RpciAkZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZGVwbGlicz0iJGFk ZCAkZGVwbGlicyIKLSsJICAgIGZpCi0rCSAgZmkKLSsJZWxpZiB0ZXN0ICIkbGlua21vZGUiID0g cHJvZzsgdGhlbgotKwkgICMgSGVyZSB3ZSBhc3N1bWUgdGhhdCBvbmUgb2YgaGFyZGNvZGVfZGly ZWN0IG9yIGhhcmRjb2RlX21pbnVzX0wKLSsJICAjIGlzIG5vdCB1bnN1cHBvcnRlZC4gIFRoaXMg aXMgdmFsaWQgb24gYWxsIGtub3duIHN0YXRpYyBhbmQKLSsJICAjIHNoYXJlZCBwbGF0Zm9ybXMu Ci0rCSAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gdW5zdXBwb3J0ZWQ7IHRoZW4KLSsJ ICAgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgbGlua2xpYj0iJG9sZF9saWJyYXJ5IgotKwkg ICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRsaW5rbGliICRjb21waWxlX2RlcGxpYnMiCi0rCSAg ICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRsaW5rbGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkg IGVsc2UKLSsJICAgIGNvbXBpbGVfZGVwbGlicz0iLWwkbmFtZSAtTCRkaXIgJGNvbXBpbGVfZGVw bGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRmaW5hbGl6ZV9k ZXBsaWJzIgotKwkgIGZpCi0rCWVsaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7 IHRoZW4KLSsJICAjIE5vdCBhIHNoYXJlZCBsaWJyYXJ5Ci0rCSAgaWYgdGVzdCAiJGRlcGxpYnNf Y2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgotKwkgICAgIyBXZSdyZSB0cnlpbmcgbGlu ayBhIHNoYXJlZCBsaWJyYXJ5IGFnYWluc3QgYSBzdGF0aWMgb25lCi0rCSAgICAjIGJ1dCB0aGUg c3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCBpdC4KLSsKLSsJICAgICMgSnVzdCBwcmludCBhIHdhcm5p bmcgYW5kIGFkZCB0aGUgbGlicmFyeSB0byBkZXBlbmRlbmN5X2xpYnMgc28KLSsJICAgICMgdGhh dCB0aGUgcHJvZ3JhbSBjYW4gYmUgbGlua2VkIGFnYWluc3QgdGhlIHN0YXRpYyBsaWJyYXJ5Lgot KwkgICAgJGVjaG8KLSsJICAgICRlY2hvICIqKiogV2FybmluZzogVGhpcyBzeXN0ZW0gY2FuIG5v dCBsaW5rIHRvIHN0YXRpYyBsaWIgYXJjaGl2ZSAkbGliLiIKLSsJICAgICRlY2hvICIqKiogSSBo YXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGlu ayBpbiB3aGVuIgotKwkgICAgJGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBC dXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCSAgICAkZWNobyAiKioqIHNo YXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBo YXZlLiIKLSsJICAgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzOyB0aGVuCi0rCSAgICAgICRlY2hv ICIqKiogQnV0IGFzIHlvdSB0cnkgdG8gYnVpbGQgYSBtb2R1bGUgbGlicmFyeSwgbGlidG9vbCB3 aWxsIHN0aWxsIGNyZWF0ZSAiCi0rCSAgICAgICRlY2hvICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0 aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3BlbmluZyBhcHBsaWNhdGlvbiIKLSsJ ICAgICAgJGVjaG8gIioqKiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnIHRvIHJlc29s dmUgc3ltYm9scyBhdCBydW50aW1lLiIKLSsJICAgICAgaWYgdGVzdCAteiAiJGdsb2JhbF9zeW1i b2xfcGlwZSI7IHRoZW4KLSsJCSRlY2hvCi0rCQkkZWNobyAiKioqIEhvd2V2ZXIsIHRoaXMgd291 bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0cmFjdCBzeW1ib2wiCi0rCQkk ZWNobyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50 LCBidXQgbGlidG9vbCBjb3VsZCIKLSsJCSRlY2hvICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dy YW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCi0rCQkkZWNobyAiKioq IFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCi0r CSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgot KwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQotKwkJYnVpbGRfb2xkX2xpYnM9eWVzCi0rCSAg ICAgIGVsc2UKLSsJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwkgICAgICBmaQotKwkgICAgZmkK LSsJICBlbHNlCi0rCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZGVwbGlicyIKLSsJ ICAgIGxpbmtfc3RhdGljPXllcwotKwkgIGZpCi0rCWZpICMgbGluayBzaGFyZWQvc3RhdGljIGxp YnJhcnk/Ci0rCi0rCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KLSsJICBpZiB0ZXN0 IC1uICIkZGVwZW5kZW5jeV9saWJzIiAmJgotKwkgICAgIHsgdGVzdCAiJGhhcmRjb2RlX2ludG9f bGlicyIgIT0geWVzIHx8Ci0rCSAgICAgICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzIHx8 Ci0rCSAgICAgICB0ZXN0ICIkbGlua19zdGF0aWMiID0geWVzOyB9OyB0aGVuCi0rCSAgICAjIEV4 dHJhY3QgLVIgZnJvbSBkZXBlbmRlbmN5X2xpYnMKLSsJICAgIHRlbXBfZGVwbGlicz0KLSsJICAg IGZvciBsaWJkaXIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAgICAgY2FzZSAkbGliZGly IGluCi0rCSAgICAgIC1SKikgdGVtcF94cnBhdGg9YCRlY2hvICJYJGxpYmRpciIgfCAkWHNlZCAt ZSAncy9eLVIvLydgCi0rCQkgICBjYXNlICIgJHhycGF0aCAiIGluCi0rCQkgICAqIiAkdGVtcF94 cnBhdGggIiopIDs7Ci0rCQkgICAqKSB4cnBhdGg9IiR4cnBhdGggJHRlbXBfeHJwYXRoIjs7Ci0r CQkgICBlc2FjOzsKLSsJICAgICAgKikgdGVtcF9kZXBsaWJzPSIkdGVtcF9kZXBsaWJzICRsaWJk aXIiOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgZGVwZW5kZW5jeV9saWJzPSIk dGVtcF9kZXBsaWJzIgotKwkgIGZpCi0rCi0rCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGli X3NlYXJjaF9wYXRoICRhYnNkaXIiCi0rCSAgIyBMaW5rIGFnYWluc3QgdGhpcyBsaWJyYXJ5Ci0r CSAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IG5vICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGFic19s YWRpci8kbGFuYW1lICRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCSAgIyAuLi4gYW5kIGl0cyBkZXBl bmRlbmN5X2xpYnMKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5 X2xpYnM7IGRvCi0rCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVu Y3lfbGlicyIKLSsJICAgIGlmIHRlc3QgIlgkZHVwbGljYXRlX2RlcHMiID0gIlh5ZXMiIDsgdGhl bgotKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgotKwkgICAgICAqIiAkZGVwbGliICIqKSBz cGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7Ci0rCSAgICAgIGVzYWMK LSsJICAgIGZpCi0rCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCi0rCSAgZG9uZQot KwotKwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubzsgdGhlbgotKwkgICAgIyBB ZGQgdGhlIHNlYXJjaCBwYXRocyBvZiBhbGwgZGVwZW5kZW5jeSBsaWJyYXJpZXMKLSsJICAgIGZv ciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAgICAgY2FzZSAkZGVwbGliIGlu Ci0rCSAgICAgIC1MKikgcGF0aD0iJGRlcGxpYiIgOzsKLSsJICAgICAgKi5sYSkKLSsJCWRpcj1g JGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCi0rCQl0ZXN0ICJYJGRp ciIgPSAiWCRkZXBsaWIiICYmIGRpcj0iLiIKLSsJCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRo LgotKwkJY2FzZSAkZGlyIGluCi0rCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFic2Rpcj0i JGRpciIgOzsKLSsJCSopCi0rCQkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKLSsJCSAgaWYg dGVzdCAteiAiJGFic2RpciI7IHRoZW4KLSsJCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5n OiBjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGRpciciIDE+ JjIKLSsJCSAgICBhYnNkaXI9IiRkaXIiCi0rCQkgIGZpCi0rCQkgIDs7Ci0rCQllc2FjCi0rCQlp ZiBncmVwICJeaW5zdGFsbGVkPW5vIiAkZGVwbGliID4gL2Rldi9udWxsOyB0aGVuCi0rCQkgIHBh dGg9IiRhYnNkaXIvJG9iamRpciIKLSsJCWVsc2UKLSsJCSAgZXZhbCBsaWJkaXI9YCR7U0VEfSAt biAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKLSsJCSAgaWYgdGVzdCAteiAi JGxpYmRpciI7IHRoZW4KLSsJCSAgICAkZWNobyAiJG1vZGVuYW1lOiBcYCRkZXBsaWInIGlzIG5v dCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgotKwkJICAgIGV4aXQgJEVYSVRfRkFJTFVS RQotKwkJICBmaQotKwkJICBpZiB0ZXN0ICIkYWJzZGlyIiAhPSAiJGxpYmRpciI7IHRoZW4KLSsJ CSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYCRkZXBsaWInIHNlZW1zIHRvIGJlIG1v dmVkIiAxPiYyCi0rCQkgIGZpCi0rCQkgIHBhdGg9IiRhYnNkaXIiCi0rCQlmaQotKwkJZGVwZGVw bD0KLSsJCWNhc2UgJGhvc3QgaW4KLSsJCSotKi1kYXJ3aW4qKQotKwkJICAjIHdlIGRvIG5vdCB3 YW50IHRvIGxpbmsgYWdhaW5zdCBzdGF0aWMgbGlicywKLSsJCSAgIyBidXQgbmVlZCB0byBsaW5r IGFnYWluc3Qgc2hhcmVkCi0rCQkgIGV2YWwgZGVwbGlicmFyeV9uYW1lcz1gJHtTRUR9IC1uIC1l ICdzL15saWJyYXJ5X25hbWVzPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKLSsJCSAgZXZhbCBkZXBs aWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKLSsJ CSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhlbgotKwkJICAgIGZvciB0bXAg aW4gJGRlcGxpYnJhcnlfbmFtZXMgOyBkbwotKwkJICAgICAgZGVwZGVwbD0kdG1wCi0rCQkgICAg ZG9uZQotKwkJICAgIGlmIHRlc3QgLWYgIiRkZXBsaWJkaXIvJGRlcGRlcGwiIDsgdGhlbgotKwkJ ICAgICAgZGVwZGVwbD0iJGRlcGxpYmRpci8kZGVwZGVwbCIKLSsJICAgICAgCSAgICBlbGlmIHRl c3QgLWYgIiRwYXRoLyRkZXBkZXBsIiA7IHRoZW4KLSsJCSAgICAgIGRlcGRlcGw9IiRwYXRoLyRk ZXBkZXBsIgotKwkJICAgIGVsc2UKLSsJCSAgICAgICMgQ2FuJ3QgZmluZCBpdCwgb2ggd2VsbC4u LgotKwkJICAgICAgZGVwZGVwbD0KLSsJCSAgICBmaQotKwkJICAgICMgZG8gbm90IGFkZCBwYXRo cyB3aGljaCBhcmUgYWxyZWFkeSB0aGVyZQotKwkJICAgIGNhc2UgIiAkbmV3bGliX3NlYXJjaF9w YXRoICIgaW4KLSsJCSAgICAqIiAkcGF0aCAiKikgOzsKLSsJCSAgICAqKSBuZXdsaWJfc2VhcmNo X3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJHBhdGgiOzsKLSsJCSAgICBlc2FjCi0rCQkgIGZp Ci0rCQkgIHBhdGg9IiIKLSsJCSAgOzsKLSsJCSopCi0rCQkgIHBhdGg9Ii1MJHBhdGgiCi0rCQkg IDs7Ci0rCQllc2FjCi0rCQk7OwotKwkgICAgICAtbCopCi0rCQljYXNlICRob3N0IGluCi0rCQkq LSotZGFyd2luKikKLSsJCSAgIyBBZ2Fpbiwgd2Ugb25seSB3YW50IHRvIGxpbmsgYWdhaW5zdCBz aGFyZWQgbGlicmFyaWVzCi0rCQkgIGV2YWwgdG1wX2xpYnM9YCRlY2hvICJYJGRlcGxpYiIgfCAk WHNlZCAtZSAicyxeXC1sLCwiYAotKwkJICBmb3IgdG1wIGluICRuZXdsaWJfc2VhcmNoX3BhdGgg OyBkbwotKwkJICAgIGlmIHRlc3QgLWYgIiR0bXAvbGliJHRtcF9saWJzLmR5bGliIiA7IHRoZW4K LSsJCSAgICAgIGV2YWwgZGVwZGVwbD0iJHRtcC9saWIkdG1wX2xpYnMuZHlsaWIiCi0rCQkgICAg ICBicmVhawotKwkJICAgIGZpCi0rCQkgIGRvbmUKLSsJCSAgcGF0aD0iIgotKwkJICA7OwotKwkJ KikgY29udGludWUgOzsKLSsJCWVzYWMKLSsJCTs7Ci0rCSAgICAgICopIGNvbnRpbnVlIDs7Ci0r CSAgICAgIGVzYWMKLSsJICAgICAgY2FzZSAiICRkZXBsaWJzICIgaW4KLSsJICAgICAgKiIgJHBh dGggIiopIDs7Ci0rCSAgICAgICopIGRlcGxpYnM9IiRwYXRoICRkZXBsaWJzIiA7OwotKwkgICAg ICBlc2FjCi0rCSAgICAgIGNhc2UgIiAkZGVwbGlicyAiIGluCi0rCSAgICAgICoiICRkZXBkZXBs ICIqKSA7OwotKwkgICAgICAqKSBkZXBsaWJzPSIkZGVwZGVwbCAkZGVwbGlicyIgOzsKLSsJICAg ICAgZXNhYwotKwkgICAgZG9uZQotKwkgIGZpICMgbGlua19hbGxfZGVwbGlicyAhPSBubwotKwlm aSAjIGxpbmttb2RlID0gbGliCi0rICAgICAgZG9uZSAjIGZvciBkZXBsaWIgaW4gJGxpYnMKLSsg ICAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rICAgICAgaWYgdGVz dCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCi0rCSMgTGluayB0aGUgZGxwcmVvcGVuZWQgbGli cmFyaWVzIGJlZm9yZSBvdGhlciBsaWJyYXJpZXMKLSsJZm9yIGRlcGxpYiBpbiAkc2F2ZV9kZXBs aWJzOyBkbwotKwkgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCWRvbmUKLSsgICAgICBm aQotKyAgICAgIGlmIHRlc3QgIiRwYXNzIiAhPSBkbG9wZW47IHRoZW4KLSsJaWYgdGVzdCAiJHBh c3MiICE9IGNvbnY7IHRoZW4KLSsJICAjIE1ha2Ugc3VyZSBsaWJfc2VhcmNoX3BhdGggY29udGFp bnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCi0rCSAgbGliX3NlYXJjaF9wYXRoPQotKwkgIGZv ciBkaXIgaW4gJG5ld2xpYl9zZWFyY2hfcGF0aDsgZG8KLSsJICAgIGNhc2UgIiRsaWJfc2VhcmNo X3BhdGggIiBpbgotKwkgICAgKiIgJGRpciAiKikgOzsKLSsJICAgICopIGxpYl9zZWFyY2hfcGF0 aD0iJGxpYl9zZWFyY2hfcGF0aCAkZGlyIiA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUKLSsJICBu ZXdsaWJfc2VhcmNoX3BhdGg9Ci0rCWZpCi0rCi0rCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIg IT0gInByb2csbGluayI7IHRoZW4KLSsJICB2YXJzPSJkZXBsaWJzIgotKwllbHNlCi0rCSAgdmFy cz0iY29tcGlsZV9kZXBsaWJzIGZpbmFsaXplX2RlcGxpYnMiCi0rCWZpCi0rCWZvciB2YXIgaW4g JHZhcnMgZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICMgQWRkIGxpYnJhcmllcyB0byAkdmFyIGlu IHJldmVyc2Ugb3JkZXIKLSsJICBldmFsIHRtcF9saWJzPVwiXCQkdmFyXCIKLSsJICBuZXdfbGli cz0KLSsJICBmb3IgZGVwbGliIGluICR0bXBfbGliczsgZG8KLSsJICAgICMgRklYTUU6IFBlZGFu dGljYWxseSwgdGhpcyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIHNvCi0rCSAgICAjICAgICAg ICB0aGF0IHNvbWUgbmFzdHkgZGVwZW5kZW5jeSBsb29wIGlzbid0IGFjY2lkZW50YWxseQotKwkg ICAgIyAgICAgICAgYnJva2VuOgotKwkgICAgI25ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIK LSsJICAgICMgUHJhZ21hdGljYWxseSwgdGhpcyBzZWVtcyB0byBjYXVzZSB2ZXJ5IGZldyBwcm9i bGVtcyBpbgotKwkgICAgIyBwcmFjdGljZToKLSsJICAgIGNhc2UgJGRlcGxpYiBpbgotKwkgICAg LUwqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0rCSAgICAtUiopIDs7Ci0rCSAg ICAqKQotKwkgICAgICAjIEFuZCBoZXJlIGlzIHRoZSByZWFzb246IHdoZW4gYSBsaWJyYXJ5IGFw cGVhcnMgbW9yZQotKwkgICAgICAjIHRoYW4gb25jZSBhcyBhbiBleHBsaWNpdCBkZXBlbmRlbmNl IG9mIGEgbGlicmFyeSwgb3IKLSsJICAgICAgIyBpcyBpbXBsaWNpdGx5IGxpbmtlZCBpbiBtb3Jl IHRoYW4gb25jZSBieSB0aGUKLSsJICAgICAgIyBjb21waWxlciwgaXQgaXMgY29uc2lkZXJlZCBz cGVjaWFsLCBhbmQgbXVsdGlwbGUKLSsJICAgICAgIyBvY2N1cnJlbmNlcyB0aGVyZW9mIGFyZSBu b3QgcmVtb3ZlZC4gIENvbXBhcmUgdGhpcwotKwkgICAgICAjIHdpdGggaGF2aW5nIHRoZSBzYW1l IGxpYnJhcnkgYmVpbmcgbGlzdGVkIGFzIGEKLSsJICAgICAgIyBkZXBlbmRlbmN5IG9mIG11bHRp cGxlIG90aGVyIGxpYnJhcmllczogaW4gdGhpcyBjYXNlLAotKwkgICAgICAjIHdlIGtub3cgKHBl ZGFudGljYWxseSwgd2UgYXNzdW1lKSB0aGUgbGlicmFyeSBkb2VzIG5vdAotKwkgICAgICAjIG5l ZWQgdG8gYmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlLCBzbyB3ZSBrZWVwIG9ubHkgdGhlCi0rCSAg ICAgICMgbGFzdCBjb3B5LiAgVGhpcyBpcyBub3QgYWx3YXlzIHJpZ2h0LCBidXQgaXQgaXMgcmFy ZQotKwkgICAgICAjIGVub3VnaCB0aGF0IHdlIHJlcXVpcmUgdXNlcnMgdGhhdCByZWFsbHkgbWVh biB0byBwbGF5Ci0rCSAgICAgICMgc3VjaCB1bnBvcnRhYmxlIGxpbmtpbmcgdHJpY2tzIHRvIGxp bmsgdGhlIGxpYnJhcnkKLSsJICAgICAgIyB1c2luZyAtV2wsLWxuYW1lLCBzbyB0aGF0IGxpYnRv b2wgZG9lcyBub3QgY29uc2lkZXIgaXQKLSsJICAgICAgIyBmb3IgZHVwbGljYXRlIHJlbW92YWwu Ci0rCSAgICAgIGNhc2UgIiAkc3BlY2lhbGRlcGxpYnMgIiBpbgotKwkgICAgICAqIiAkZGVwbGli ICIqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0rCSAgICAgICopCi0rCQljYXNl ICIgJG5ld19saWJzICIgaW4KLSsJCSoiICRkZXBsaWIgIiopIDs7Ci0rCQkqKSBuZXdfbGlicz0i JGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0rCQllc2FjCi0rCQk7OwotKwkgICAgICBlc2FjCi0rCSAg ICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwkgIHRtcF9saWJzPQotKwkgIGZvciBkZXBs aWIgaW4gJG5ld19saWJzOyBkbwotKwkgICAgY2FzZSAkZGVwbGliIGluCi0rCSAgICAtTCopCi0r CSAgICAgIGNhc2UgIiAkdG1wX2xpYnMgIiBpbgotKwkgICAgICAqIiAkZGVwbGliICIqKSA7Owot KwkgICAgICAqKSB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiIDs7Ci0rCSAgICAgIGVzYWMK LSsJICAgICAgOzsKLSsJICAgICopIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIgOzsKLSsJ ICAgIGVzYWMKLSsJICBkb25lCi0rCSAgZXZhbCAkdmFyPVwiJHRtcF9saWJzXCIKLSsJZG9uZSAj IGZvciB2YXIKLSsgICAgICBmaQotKyAgICAgICMgTGFzdCBzdGVwOiByZW1vdmUgcnVudGltZSBs aWJzIGZyb20gZGVwZW5kZW5jeV9saWJzCi0rICAgICAgIyAodGhleSBzdGF5IGluIGRlcGxpYnMp Ci0rICAgICAgdG1wX2xpYnM9Ci0rICAgICAgZm9yIGkgaW4gJGRlcGVuZGVuY3lfbGlicyA7IGRv Ci0rCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCAi IGluCi0rCSoiICRpICIqKQotKwkgIGk9IiIKLSsJICA7OwotKwllc2FjCi0rCWlmIHRlc3QgLW4g IiRpIiA7IHRoZW4KLSsJICB0bXBfbGlicz0iJHRtcF9saWJzICRpIgotKwlmaQotKyAgICAgIGRv bmUKLSsgICAgICBkZXBlbmRlbmN5X2xpYnM9JHRtcF9saWJzCi0rICAgIGRvbmUgIyBmb3IgcGFz cwotKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKyAgICAgIGRsZmlsZXM9 IiRuZXdkbGZpbGVzIgotKyAgICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgotKyAgICBm aQotKwotKyAgICBjYXNlICRsaW5rbW9kZSBpbgotKyAgICBvbGRsaWIpCi0rICAgICAgY2FzZSAi ICRkZXBsaWJzIiBpbgotKyAgICAgICpcIC1sKiB8ICpcIC1MKikKLSsJJGVjaG8gIiRtb2RlbmFt ZTogd2FybmluZzogXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4m MiA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZp bGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgotKwkkZWNobyAiJG1vZGVuYW1lOiB3 YXJuaW5nOiBcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIiAxPiYyCi0rICAgICAg ZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCi0rCSRlY2hvICIkbW9kZW5h bWU6IHdhcm5pbmc6IFxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMgotKyAg ICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7IHRoZW4KLSsJJGVjaG8gIiRt b2RlbmFtZTogd2FybmluZzogXGAtUicgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiIDE+JjIKLSsg ICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiR2aW5mbyI7IHRoZW4KLSsJJGVjaG8gIiRt b2RlbmFtZTogd2FybmluZzogXGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9uLW51bWJlcicgaXMgaWdu b3JlZCBmb3IgYXJjaGl2ZXMiIDE+JjIKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4g IiRyZWxlYXNlIjsgdGhlbgotKwkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1yZWxlYXNl JyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMgotKyAgICAgIGZpCi0rCi0rICAgICAgaWYg dGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVn ZXgiOyB0aGVuCi0rCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLWV4cG9ydC1zeW1ib2xz JyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMgotKyAgICAgIGZpCi0rCi0rICAgICAgIyBO b3cgc2V0IHRoZSB2YXJpYWJsZXMgZm9yIGJ1aWxkaW5nIG9sZCBsaWJyYXJpZXMuCi0rICAgICAg YnVpbGRfbGlidG9vbF9saWJzPW5vCi0rICAgICAgb2xkbGlicz0iJG91dHB1dCIKLSsgICAgICBv YmpzPSIkb2JqcyRvbGRfZGVwbGlicyIKLSsgICAgICA7OwotKwotKyAgICBsaWIpCi0rICAgICAg IyBNYWtlIHN1cmUgd2Ugb25seSBnZW5lcmF0ZSBsaWJyYXJpZXMgb2YgdGhlIGZvcm0gYGxpYk5B TUUubGEnLgotKyAgICAgIGNhc2UgJG91dHB1dG5hbWUgaW4KLSsgICAgICBsaWIqKQotKwluYW1l PWAkZWNobyAiWCRvdXRwdXRuYW1lIiB8ICRYc2VkIC1lICdzL1wubGEkLy8nIC1lICdzL15saWIv LydgCi0rCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCi0rCWV2YWwgbGlibmFtZT1c IiRsaWJuYW1lX3NwZWNcIgotKwk7OwotKyAgICAgICopCi0rCWlmIHRlc3QgIiRtb2R1bGUiID0g bm87IHRoZW4KLSsJICAkZWNobyAiJG1vZGVuYW1lOiBsaWJ0b29sIGxpYnJhcnkgXGAkb3V0cHV0 JyBtdXN0IGJlZ2luIHdpdGggXGBsaWInIiAxPiYyCi0rCSAgJGVjaG8gIiRoZWxwIiAxPiYyCi0r CSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCWZpCi0rCWlmIHRlc3QgIiRuZWVkX2xpYl9wcmVmaXgi ICE9IG5vOyB0aGVuCi0rCSAgIyBBZGQgdGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcyBpZiBy ZXF1aXJlZAotKwkgIG5hbWU9YCRlY2hvICJYJG91dHB1dG5hbWUiIHwgJFhzZWQgLWUgJ3MvXC5s YSQvLydgCi0rCSAgZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKLSsJICBldmFsIGxp Ym5hbWU9XCIkbGlibmFtZV9zcGVjXCIKLSsJZWxzZQotKwkgIGxpYm5hbWU9YCRlY2hvICJYJG91 dHB1dG5hbWUiIHwgJFhzZWQgLWUgJ3MvXC5sYSQvLydgCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNh YwotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRvYmpzIjsgdGhlbgotKwlpZiB0ZXN0ICIkZGVwbGli c19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTog Y2Fubm90IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wg b2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMiIDI+JjEKLSsJICBleGl0ICRFWElUX0ZBSUxVUkUK LSsJZWxzZQotKwkgICRlY2hvCi0rCSAgJGVjaG8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBz aGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0b29sIgotKwkgICRlY2hv ICIqKiogb2JqZWN0cyAkb2JqcyBpcyBub3QgcG9ydGFibGUhIgotKwkgIGxpYm9ianM9IiRsaWJv YmpzICRvYmpzIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAiJGRsc2VsZiIg IT0gbm87IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtZGxvcGVuIHNlbGYn IGlzIGlnbm9yZWQgZm9yIGxpYnRvb2wgbGlicmFyaWVzIiAxPiYyCi0rICAgICAgZmkKLSsKLSsg ICAgICBzZXQgZHVtbXkgJHJwYXRoCi0rICAgICAgaWYgdGVzdCAiJCMiIC1ndCAyOyB0aGVuCi0r CSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGlnbm9yaW5nIG11bHRpcGxlIFxgLXJwYXRoJ3Mg Zm9yIGEgbGlidG9vbCBsaWJyYXJ5IiAxPiYyCi0rICAgICAgZmkKLSsgICAgICBpbnN0YWxsX2xp YmRpcj0iJDIiCi0rCi0rICAgICAgb2xkbGlicz0KLSsgICAgICBpZiB0ZXN0IC16ICIkcnBhdGgi OyB0aGVuCi0rCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rCSAg IyBCdWlsZGluZyBhIGxpYnRvb2wgY29udmVuaWVuY2UgbGlicmFyeS4KLSsJICAjIFNvbWUgY29t cGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0aCBhIGAuYWwnIGV4dGVuc2lvbiBzbwotKwkgICMgY29u dmVuaWVuY2UgbGlicmFyaWVzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGV4dGVuc2lvbiBhbgotKwkg ICMgYXJjaGl2ZSBub3JtYWxseSB3b3VsZC4KLSsJICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8k bGlibmFtZS4kbGliZXh0ICRvbGRsaWJzIgotKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1jb252ZW5p ZW5jZQotKwkgIGJ1aWxkX29sZF9saWJzPXllcwotKwlmaQotKwotKwlpZiB0ZXN0IC1uICIkdmlu Zm8iOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtdmVyc2lvbi1pbmZv Ly12ZXJzaW9uLW51bWJlcicgaXMgaWdub3JlZCBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzIiAx PiYyCi0rCWZpCi0rCi0rCWlmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgotKwkgICRlY2hvICIk bW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNl IGxpYnJhcmllcyIgMT4mMgotKwlmaQotKyAgICAgIGVsc2UKLSsKLSsJIyBQYXJzZSB0aGUgdmVy c2lvbiBpbmZvcm1hdGlvbiBhcmd1bWVudC4KLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JzonCi0r CXNldCBkdW1teSAkdmluZm8gMCAwIDAKLSsJSUZTPSIkc2F2ZV9pZnMiCi0rCi0rCWlmIHRlc3Qg LW4gIiQ4IjsgdGhlbgotKwkgICRlY2hvICIkbW9kZW5hbWU6IHRvbyBtYW55IHBhcmFtZXRlcnMg dG8gXGAtdmVyc2lvbi1pbmZvJyIgMT4mMgotKwkgICRlY2hvICIkaGVscCIgMT4mMgotKwkgIGV4 aXQgJEVYSVRfRkFJTFVSRQotKwlmaQotKwotKwkjIGNvbnZlcnQgYWJzb2x1dGUgdmVyc2lvbiBu dW1iZXJzIHRvIGxpYnRvb2wgYWdlcwotKwkjIHRoaXMgcmV0YWlucyBjb21wYXRpYmlsaXR5IHdp dGggLmxhIGZpbGVzIGFuZCBhdHRlbXB0cwotKwkjIHRvIG1ha2UgdGhlIGNvZGUgYmVsb3cgYSBi aXQgbW9yZSBjb21wcmVoZW5zaWJsZQotKwotKwljYXNlICR2aW5mb19udW1iZXIgaW4KLSsJeWVz KQotKwkgIG51bWJlcl9tYWpvcj0iJDIiCi0rCSAgbnVtYmVyX21pbm9yPSIkMyIKLSsJICBudW1i ZXJfcmV2aXNpb249IiQ0IgotKwkgICMKLSsJICAjIFRoZXJlIGFyZSByZWFsbHkgb25seSB0d28g a2luZHMgLS0gdGhvc2UgdGhhdAotKwkgICMgdXNlIHRoZSBjdXJyZW50IHJldmlzaW9uIGFzIHRo ZSBtYWpvciB2ZXJzaW9uCi0rCSAgIyBhbmQgdGhvc2UgdGhhdCBzdWJ0cmFjdCBhZ2UgYW5kIHVz ZSBhZ2UgYXMKLSsJICAjIGEgbWlub3IgdmVyc2lvbi4gIEJ1dCwgdGhlbiB0aGVyZSBpcyBpcml4 Ci0rCSAgIyB3aGljaCBoYXMgYW4gZXh0cmEgMSBhZGRlZCBqdXN0IGZvciBmdW4KLSsJICAjCi0r CSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCi0rCSAgZGFyd2lufGxpbnV4fG9zZnx3aW5kb3dzfG5v bmUpCi0rCSAgICBjdXJyZW50PWBleHByICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yYAot KwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgotKwkgICAgcmV2aXNpb249IiRudW1iZXJfcmV2aXNp b24iCi0rCSAgICA7OwotKwkgIGZyZWVic2QtYW91dHxmcmVlYnNkLWVsZnxzdW5vcykKLSsJICAg IGN1cnJlbnQ9IiRudW1iZXJfbWFqb3IiCi0rCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5vciIK LSsJICAgIGFnZT0iMCIKLSsJICAgIDs7Ci0rCSAgaXJpeHxub25zdG9wdXgpCi0rCSAgICBjdXJy ZW50PWBleHByICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yYAotKwkgICAgYWdlPSIkbnVt YmVyX21pbm9yIgotKwkgICAgcmV2aXNpb249IiRudW1iZXJfbWlub3IiCi0rCSAgICBsdF9pcml4 X2luY3JlbWVudD1ubwotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJbm8pCi0rCSAgY3Vy cmVudD0iJDIiCi0rCSAgcmV2aXNpb249IiQzIgotKwkgIGFnZT0iJDQiCi0rCSAgOzsKLSsJZXNh YwotKwotKwkjIENoZWNrIHRoYXQgZWFjaCBvZiB0aGUgdGhpbmdzIGFyZSB2YWxpZCBudW1iZXJz LgotKwljYXNlICRjdXJyZW50IGluCi0rCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAt OV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKLSsJ KikKLSsJICAkZWNobyAiJG1vZGVuYW1lOiBDVVJSRU5UIFxgJGN1cnJlbnQnIG11c3QgYmUgYSBu b25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8n IGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9G QUlMVVJFCi0rCSAgOzsKLSsJZXNhYwotKwotKwljYXNlICRyZXZpc2lvbiBpbgotKwkwfFsxLTld fFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTldWzAt OV1bMC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogUkVWSVNJ T04gXGAkcmV2aXNpb24nIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCi0rCSAg JGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0 aW9uIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgOzsKLSsJZXNhYwotKwotKwlj YXNlICRhZ2UgaW4KLSsJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAtOV1bMC05XXxbMS05XVsw LTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTldKSA7OwotKwkqKQotKwkgICRl Y2hvICIkbW9kZW5hbWU6IEFHRSBcYCRhZ2UnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2Vy IiAxPiYyCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJz aW9uIGluZm9ybWF0aW9uIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgOzsKLSsJ ZXNhYwotKwotKwlpZiB0ZXN0ICIkYWdlIiAtZ3QgIiRjdXJyZW50IjsgdGhlbgotKwkgICRlY2hv ICIkbW9kZW5hbWU6IEFHRSBcYCRhZ2UnIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBpbnRl cmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQnIiAxPiYyCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAk dmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCi0rCSAgZXhpdCAk RVhJVF9GQUlMVVJFCi0rCWZpCi0rCi0rCSMgQ2FsY3VsYXRlIHRoZSB2ZXJzaW9uIHZhcmlhYmxl cy4KLSsJbWFqb3I9Ci0rCXZlcnN1ZmZpeD0KLSsJdmVyc3RyaW5nPQotKwljYXNlICR2ZXJzaW9u X3R5cGUgaW4KLSsJbm9uZSkgOzsKLSsKLSsJZGFyd2luKQotKwkgICMgTGlrZSBMaW51eCwgYnV0 IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBhdmFpbGFibGUgaW4KLSsJICAjIHZlcnN0cmluZyBm b3IgY29kaW5nIGl0IGludG8gdGhlIGxpYnJhcnkgaGVhZGVyCi0rCSAgbWFqb3I9LmBleHByICRj dXJyZW50IC0gJGFnZWAKLSsJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdlLiRyZXZpc2lvbiIKLSsJ ICAjIERhcndpbiBsZCBkb2Vzbid0IGxpa2UgMCBmb3IgdGhlc2Ugb3B0aW9ucy4uLgotKwkgIG1p bm9yX2N1cnJlbnQ9YGV4cHIgJGN1cnJlbnQgKyAxYAotKwkgIHhsY3ZlcnN0cmluZz0iJHt3bH0t Y29tcGF0aWJpbGl0eV92ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJlbnQgJHt3bH0tY3VycmVudF92 ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJlbnQuJHJldmlzaW9uIgotKwkgIHZlcnN0cmluZz0iLWNv bXBhdGliaWxpdHlfdmVyc2lvbiAkbWlub3JfY3VycmVudCAtY3VycmVudF92ZXJzaW9uICRtaW5v cl9jdXJyZW50LiRyZXZpc2lvbiIKLSsJICA7OwotKwotKwlmcmVlYnNkLWFvdXQpCi0rCSAgbWFq b3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24iOwotKwkg IDs7Ci0rCi0rCWZyZWVic2QtZWxmKQotKwkgIG1ham9yPSIuJGN1cnJlbnQiCi0rCSAgdmVyc3Vm Zml4PSIuJGN1cnJlbnQiOwotKwkgIDs7Ci0rCi0rCWlyaXggfCBub25zdG9wdXgpCi0rCSAgaWYg dGVzdCAiWCRsdF9pcml4X2luY3JlbWVudCIgPSAiWG5vIjsgdGhlbgotKwkgICAgbWFqb3I9YGV4 cHIgJGN1cnJlbnQgLSAkYWdlYAotKwkgIGVsc2UKLSsJICAgIG1ham9yPWBleHByICRjdXJyZW50 IC0gJGFnZSArIDFgCi0rCSAgZmkKLSsJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJICAgIG5v bnN0b3B1eCkgdmVyc3RyaW5nX3ByZWZpeD1ub25zdG9wdXggOzsKLSsJICAgICopICAgICAgICAg dmVyc3RyaW5nX3ByZWZpeD1zZ2kgOzsKLSsJICBlc2FjCi0rCSAgdmVyc3RyaW5nPSIkdmVyc3Ry aW5nX3ByZWZpeCRtYWpvci4kcmV2aXNpb24iCi0rCi0rCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRl cmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KLSsJICBsb29wPSRyZXZpc2lvbgot KwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KLSsJICAgIGlmYWNlPWBleHByICRyZXZp c2lvbiAtICRsb29wYAotKwkgICAgbG9vcD1gZXhwciAkbG9vcCAtIDFgCi0rCSAgICB2ZXJzdHJp bmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9yLiRpZmFjZTokdmVyc3RyaW5nIgotKwkgIGRvbmUK LSsKLSsJICAjIEJlZm9yZSB0aGlzIHBvaW50LCAkbWFqb3IgbXVzdCBub3QgY29udGFpbiBgLicu Ci0rCSAgbWFqb3I9LiRtYWpvcgotKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRyZXZpc2lvbiIKLSsJ ICA7OwotKwotKwlsaW51eCkKLSsJICBtYWpvcj0uYGV4cHIgJGN1cnJlbnQgLSAkYWdlYAotKwkg IHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgotKwkgIDs7Ci0rCi0rCW9zZikKLSsJ ICBtYWpvcj0uYGV4cHIgJGN1cnJlbnQgLSAkYWdlYAotKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50 LiRhZ2UuJHJldmlzaW9uIgotKwkgIHZlcnN0cmluZz0iJGN1cnJlbnQuJGFnZS4kcmV2aXNpb24i Ci0rCi0rCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGli bGUgd2l0aC4KLSsJICBsb29wPSRhZ2UKLSsJICB3aGlsZSB0ZXN0ICIkbG9vcCIgLW5lIDA7IGRv Ci0rCSAgICBpZmFjZT1gZXhwciAkY3VycmVudCAtICRsb29wYAotKwkgICAgbG9vcD1gZXhwciAk bG9vcCAtIDFgCi0rCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtpZmFjZX0uMCIKLSsJICBk b25lCi0rCi0rCSAgIyBNYWtlIGV4ZWN1dGFibGVzIGRlcGVuZCBvbiBvdXIgY3VycmVudCB2ZXJz aW9uLgotKwkgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2N1cnJlbnR9LjAiCi0rCSAgOzsKLSsK LSsJc3Vub3MpCi0rCSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVu dC4kcmV2aXNpb24iCi0rCSAgOzsKLSsKLSsJd2luZG93cykKLSsJICAjIFVzZSAnLScgcmF0aGVy IHRoYW4gJy4nLCBzaW5jZSB3ZSBvbmx5IHdhbnQgb25lCi0rCSAgIyBleHRlbnNpb24gb24gRE9T IDguMyBmaWxlc3lzdGVtcy4KLSsJICBtYWpvcj1gZXhwciAkY3VycmVudCAtICRhZ2VgCi0rCSAg dmVyc3VmZml4PSItJG1ham9yIgotKwkgIDs7Ci0rCi0rCSopCi0rCSAgJGVjaG8gIiRtb2RlbmFt ZTogdW5rbm93biBsaWJyYXJ5IHZlcnNpb24gdHlwZSBcYCR2ZXJzaW9uX3R5cGUnIiAxPiYyCi0r CSAgJGVjaG8gIkZhdGFsIGNvbmZpZ3VyYXRpb24gZXJyb3IuICBTZWUgdGhlICRQQUNLQUdFIGRv Y3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0r CSAgOzsKLSsJZXNhYwotKwotKwkjIENsZWFyIHRoZSB2ZXJzaW9uIGluZm8gaWYgd2UgZGVmYXVs dGVkLCBhbmQgdGhleSBzcGVjaWZpZWQgYSByZWxlYXNlLgotKwlpZiB0ZXN0IC16ICIkdmluZm8i ICYmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgotKwkgIG1ham9yPQotKwkgIGNhc2UgJHZlcnNp b25fdHlwZSBpbgotKwkgIGRhcndpbikKLSsJICAgICMgd2UgY2FuJ3QgY2hlY2sgZm9yICIwLjAi IGluIGFyY2hpdmVfY21kcyBkdWUgdG8gcXVvdGluZwotKwkgICAgIyBwcm9ibGVtcywgc28gd2Ug cmVzZXQgaXQgY29tcGxldGVseQotKwkgICAgdmVyc3RyaW5nPQotKwkgICAgOzsKLSsJICAqKQot KwkgICAgdmVyc3RyaW5nPSIwLjAiCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICBpZiB0ZXN0ICIk bmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCi0rCSAgICB2ZXJzdWZmaXg9Ci0rCSAgZWxzZQotKwkg ICAgdmVyc3VmZml4PSIuMC4wIgotKwkgIGZpCi0rCWZpCi0rCi0rCSMgUmVtb3ZlIHZlcnNpb24g aW5mbyBmcm9tIG5hbWUgaWYgdmVyc2lvbmluZyBzaG91bGQgYmUgYXZvaWRlZAotKwlpZiB0ZXN0 ICIkYXZvaWRfdmVyc2lvbiIgPSB5ZXMgJiYgdGVzdCAiJG5lZWRfdmVyc2lvbiIgPSBubzsgdGhl bgotKwkgIG1ham9yPQotKwkgIHZlcnN1ZmZpeD0KLSsJICB2ZXJzdHJpbmc9IiIKLSsJZmkKLSsK LSsJIyBDaGVjayB0byBzZWUgaWYgdGhlIGFyY2hpdmUgd2lsbCBoYXZlIHVuZGVmaW5lZCBzeW1i b2xzLgotKwlpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9IHllczsgdGhlbgotKwkgIGlmIHRl c3QgIiRhbGxvd191bmRlZmluZWRfZmxhZyIgPSB1bnN1cHBvcnRlZDsgdGhlbgotKwkgICAgJGVj aG8gIiRtb2RlbmFtZTogd2FybmluZzogdW5kZWZpbmVkIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4g JGhvc3Qgc2hhcmVkIGxpYnJhcmllcyIgMT4mMgotKwkgICAgYnVpbGRfbGlidG9vbF9saWJzPW5v Ci0rCSAgICBidWlsZF9vbGRfbGlicz15ZXMKLSsJICBmaQotKwllbHNlCi0rCSAgIyBEb24ndCBh bGxvdyB1bmRlZmluZWQgc3ltYm9scy4KLSsJICBhbGxvd191bmRlZmluZWRfZmxhZz0iJG5vX3Vu ZGVmaW5lZF9mbGFnIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAiJG1vZGUi ICE9IHJlbGluazsgdGhlbgotKwkjIFJlbW92ZSBvdXIgb3V0cHV0cywgYnV0IGRvbid0IHJlbW92 ZSBvYmplY3QgZmlsZXMgc2luY2UgdGhleQotKwkjIG1heSBoYXZlIGJlZW4gY3JlYXRlZCB3aGVu IGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KLSsJcmVtb3ZlbGlzdD0KLSsJdGVtcHJlbW92ZWxpc3Q9 YCRlY2hvICIkb3V0cHV0X29iamRpci8qImAKLSsJZm9yIHAgaW4gJHRlbXByZW1vdmVsaXN0OyBk bwotKwkgIGNhc2UgJHAgaW4KLSsJICAgICouJG9iamV4dCkKLSsJICAgICAgIDs7Ci0rCSAgICAk b3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSB8ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiogfCAk b3V0cHV0X29iamRpci8ke2xpYm5hbWV9JHtyZWxlYXNlfS4qKQotKwkgICAgICAgaWYgdGVzdCAi WCRwcmVjaW91c19maWxlc19yZWdleCIgIT0gIlgiOyB0aGVuCi0rCSAgICAgICAgIGlmIGVjaG8g JHAgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19maWxlc19yZWdleCIgPi9kZXYvbnVsbCAyPiYxCi0r CSAgICAgICAgIHRoZW4KLSsJCSAgIGNvbnRpbnVlCi0rCQkgZmkKLSsJICAgICAgIGZpCi0rCSAg ICAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkcCIKLSsJICAgICAgIDs7Ci0rCSAgICAqKSA7 OwotKwkgIGVzYWMKLSsJZG9uZQotKwlpZiB0ZXN0IC1uICIkcmVtb3ZlbGlzdCI7IHRoZW4KLSsJ ICAkc2hvdyAiJHtybX1yICRyZW1vdmVsaXN0IgotKwkgICRydW4gJHtybX1yICRyZW1vdmVsaXN0 Ci0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3Ig YnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KLSsgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMi ID0geWVzICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhl bgotKwlvbGRsaWJzPSIkb2xkbGlicyAkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0Igot KwotKwkjIFRyYW5zZm9ybSAubG8gZmlsZXMgdG8gLm8gZmlsZXMuCi0rCW9sZG9ianM9IiRvYmpz ICJgJGVjaG8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSck L2QnIC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rICAgICAgZmkKLSsKLSsgICAgICAjIEVsaW1pbmF0 ZSBhbGwgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzLgotKyAgICAgICNmb3IgcGF0aCBpbiAkbm90aW5z dF9wYXRoOyBkbwotKyAgICAgICMJbGliX3NlYXJjaF9wYXRoPWAkZWNobyAiJGxpYl9zZWFyY2hf cGF0aCAiIHwgJHtTRUR9IC1lICJzJSAkcGF0aCAlICVnImAKLSsgICAgICAjCWRlcGxpYnM9YCRl Y2hvICIkZGVwbGlicyAiIHwgJHtTRUR9IC1lICJzJSAtTCRwYXRoICUgJWciYAotKyAgICAgICMJ ZGVwZW5kZW5jeV9saWJzPWAkZWNobyAiJGRlcGVuZGVuY3lfbGlicyAiIHwgJHtTRUR9IC1lICJz JSAtTCRwYXRoICUgJWciYAotKyAgICAgICNkb25lCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJHhy cGF0aCI7IHRoZW4KLSsJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55IHJwYXRoIGZsYWdzLCB0 aGVuIGFkZCB0aGVtLgotKwl0ZW1wX3hycGF0aD0KLSsJZm9yIGxpYmRpciBpbiAkeHJwYXRoOyBk bwotKwkgIHRlbXBfeHJwYXRoPSIkdGVtcF94cnBhdGggLVIkbGliZGlyIgotKwkgIGNhc2UgIiRm aW5hbGl6ZV9ycGF0aCAiIGluCi0rCSAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBmaW5hbGl6 ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0r CWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8fCB0ZXN0ICIkYnVpbGRfb2xk X2xpYnMiID0geWVzOyB0aGVuCi0rCSAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF94cnBhdGggJGRl cGVuZGVuY3lfbGlicyIKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAgICMgTWFrZSBzdXJlIGRs ZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMgdGhhdCB3b24ndCBiZSBkbHByZW9wZW5l ZAotKyAgICAgIG9sZF9kbGZpbGVzPSIkZGxmaWxlcyIKLSsgICAgICBkbGZpbGVzPQotKyAgICAg IGZvciBsaWIgaW4gJG9sZF9kbGZpbGVzOyBkbwotKwljYXNlICIgJGRscHJlZmlsZXMgJGRsZmls ZXMgIiBpbgotKwkqIiAkbGliICIqKSA7OwotKwkqKSBkbGZpbGVzPSIkZGxmaWxlcyAkbGliIiA7 OwotKwllc2FjCi0rICAgICAgZG9uZQotKwotKyAgICAgICMgTWFrZSBzdXJlIGRscHJlZmlsZXMg Y29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMKLSsgICAgICBvbGRfZGxwcmVmaWxlcz0iJGRscHJl ZmlsZXMiCi0rICAgICAgZGxwcmVmaWxlcz0KLSsgICAgICBmb3IgbGliIGluICRvbGRfZGxwcmVm aWxlczsgZG8KLSsJY2FzZSAiJGRscHJlZmlsZXMgIiBpbgotKwkqIiAkbGliICIqKSA7OwotKwkq KSBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliIiA7OwotKwllc2FjCi0rICAgICAgZG9uZQot KwotKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rCWlm IHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KLSsJICBjYXNlICRob3N0IGluCi0rCSAgKi0qLWN5Z3dp biogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSotYmVvcyopCi0rCSAg ICAjIHRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIGMgbGlicmFyeSAoYXMgc3Vj aCkhCi0rCSAgICA7OwotKwkgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKLSsJ ICAgICMgUmhhcHNvZHkgQyBsaWJyYXJ5IGlzIGluIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0rCSAg ICBkZXBsaWJzPSIkZGVwbGlicyAtZnJhbWV3b3JrIFN5c3RlbSIKLSsJICAgIDs7Ci0rCSAgKi0q LW5ldGJzZCopCi0rCSAgICAjIERvbid0IGxpbmsgd2l0aCBsaWJjIHVudGlsIHRoZSBhLm91dCBs ZC5zbyBpcyBmaXhlZC4KLSsJICAgIDs7Ci0rCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2Qq IHwgKi0qLWRyYWdvbmZseSopCi0rCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVz IGhhdmluZyBsaWJjL2xpYmNfci4KLSsJICAgIDs7Ci0rCSAgKi0qLXNjbzMuMnY1KiB8ICotKi1z Y281djYqKQotKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBfX2N0eXBlCi0rCSAgICA7Owot KwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0qLU9w ZW5VTklYKikKLSsJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0IHBs YWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKLSsJICAgIDs7Ci0rIAkgICopCi0rCSAgICAjIEFkZCBs aWJjIHRvIGRlcGxpYnMgb24gYWxsIG90aGVyIHN5c3RlbXMgaWYgbmVjZXNzYXJ5LgotKwkgICAg aWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbmVlZF9sYyIgPSAieWVzIjsgdGhlbgotKwkgICAgICBk ZXBsaWJzPSIkZGVwbGlicyAtbGMiCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBlc2FjCi0rCWZp Ci0rCi0rCSMgVHJhbnNmb3JtIGRlcGxpYnMgaW50byBvbmx5IGRlcGxpYnMgdGhhdCBjYW4gYmUg bGlua2VkIGluIHNoYXJlZC4KLSsJbmFtZV9zYXZlPSRuYW1lCi0rCWxpYm5hbWVfc2F2ZT0kbGli bmFtZQotKwlyZWxlYXNlX3NhdmU9JHJlbGVhc2UKLSsJdmVyc3VmZml4X3NhdmU9JHZlcnN1ZmZp eAotKwltYWpvcl9zYXZlPSRtYWpvcgotKwkjIEknbSBub3Qgc3VyZSBpZiBJJ20gdHJlYXRpbmcg dGhlIHJlbGVhc2UgY29ycmVjdGx5LiAgSSB0aGluawotKwkjIHJlbGVhc2Ugc2hvdWxkIHNob3cg dXAgaW4gdGhlIC1sIChpZSAtbGdtcDUpIHNvIHdlIGRvbid0IHdhbnQgdG8KLSsJIyBhZGQgaXQg aW4gdHdpY2UuICBJcyB0aGF0IGNvcnJlY3Q/Ci0rCXJlbGVhc2U9IiIKLSsJdmVyc3VmZml4PSIi Ci0rCW1ham9yPSIiCi0rCW5ld2RlcGxpYnM9Ci0rCWRyb3BwZWRkZXBzPW5vCi0rCWNhc2UgJGRl cGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rCXBhc3NfYWxsKQotKwkgICMgRG9uJ3QgY2hlY2sgZm9y IHNoYXJlZC9zdGF0aWMuICBFdmVyeXRoaW5nIHdvcmtzLgotKwkgICMgVGhpcyBtaWdodCBiZSBh IGxpdHRsZSBuYWl2ZS4gIFdlIG1pZ2h0IHdhbnQgdG8gY2hlY2sKLSsJICAjIHdoZXRoZXIgdGhl IGxpYnJhcnkgZXhpc3RzIG9yIG5vdC4gIEJ1dCB0aGlzIGlzIG9uCi0rCSAgIyBvc2YzICYgb3Nm NCBhbmQgSSdtIG5vdCByZWFsbHkgc3VyZS4uLiBKdXN0Ci0rCSAgIyBpbXBsZW1lbnRpbmcgd2hh dCB3YXMgYWxyZWFkeSB0aGUgYmVoYXZpb3IuCi0rCSAgbmV3ZGVwbGlicz0kZGVwbGlicwotKwkg IDs7Ci0rCXRlc3RfY29tcGlsZSkKLSsJICAjIFRoaXMgY29kZSBzdHJlc3NlcyB0aGUgImxpYnJh cmllcyBhcmUgcHJvZ3JhbXMiIHBhcmFkaWdtIHRvIGl0cwotKwkgICMgbGltaXRzLiBNYXliZSBl dmVuIGJyZWFrcyBpdC4gIFdlIGNvbXBpbGUgYSBwcm9ncmFtLCBsaW5raW5nIGl0Ci0rCSAgIyBh Z2FpbnN0IHRoZSBkZXBsaWJzIGFzIGEgcHJveHkgZm9yIHRoZSBsaWJyYXJ5LiAgVGhlbiB3ZSBj YW4gY2hlY2sKLSsJICAjIHdoZXRoZXIgdGhleSBsaW5rZWQgaW4gc3RhdGljYWxseSBvciBkeW5h bWljYWxseSB3aXRoIGxkZC4KLSsJICAkcm0gY29uZnRlc3QuYwotKwkgIGNhdCA+IGNvbmZ0ZXN0 LmMgPDxFT0YKLSsJICBpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0KLStFT0YKLSsJICAkcm0gY29u ZnRlc3QKLSsJICBpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkZGVw bGliczsgdGhlbgotKwkgICAgbGRkX291dHB1dD1gbGRkIGNvbmZ0ZXN0YAotKwkgICAgZm9yIGkg aW4gJGRlcGxpYnM7IGRvCi0rCSAgICAgIG5hbWU9YGV4cHIgJGkgOiAnLWxcKC4qXCknYAotKwkg ICAgICAjIElmICRuYW1lIGlzIGVtcHR5IHdlIGFyZSBvcGVyYXRpbmcgb24gYSAtTCBhcmd1bWVu dC4KLSsgICAgICAgICAgICAgIGlmIHRlc3QgIiRuYW1lIiAhPSAiIiAmJiB0ZXN0ICIkbmFtZSIg IT0gIjAiOyB0aGVuCi0rCQlpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRp Y19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRl cHMgIiBpbgotKwkJICAqIiAkaSAiKikKLSsJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAk aSIKLSsJCSAgICBpPSIiCi0rCQkgICAgOzsKLSsJCSAgZXNhYwotKwkgICAgICAgIGZpCi0rCQlp ZiB0ZXN0IC1uICIkaSIgOyB0aGVuCi0rCQkgIGxpYm5hbWU9YGV2YWwgXFwkZWNobyBcIiRsaWJu YW1lX3NwZWNcImAKLSsJCSAgZGVwbGliX21hdGNoZXM9YGV2YWwgXFwkZWNobyBcIiRsaWJyYXJ5 X25hbWVzX3NwZWNcImAKLSsJCSAgc2V0IGR1bW15ICRkZXBsaWJfbWF0Y2hlcwotKwkJICBkZXBs aWJfbWF0Y2g9JDIKLSsJCSAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxp Yl9tYXRjaCJgIC1uZSAwIDsgdGhlbgotKwkJICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRp IgotKwkJICBlbHNlCi0rCQkgICAgZHJvcHBlZGRlcHM9eWVzCi0rCQkgICAgJGVjaG8KLSsJCSAg ICAkZWNobyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2VwdCBuZWVk ZWQgbGlicmFyeSAkaS4iCi0rCQkgICAgJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkg dG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkgICAg JGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0 aGlzIGlmIHlvdSBoYXZlIGEiCi0rCQkgICAgJGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0 aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxpZXZlIHlvdSBkbyBub3QgaGF2ZSIKLSsJCSAgICAkZWNo byAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIg ZGlkIG5vdCB1c2UgaXQgZm9yIgotKwkJICAgICRlY2hvICIqKiogaXRzIGR5bmFtaWMgZGVwZW5k ZW5jeSBsaXN0IHRoYXQgcHJvZ3JhbXMgZ2V0IHJlc29sdmVkIHdpdGggYXQgcnVudGltZS4iCi0r CQkgIGZpCi0rCQlmaQotKwkgICAgICBlbHNlCi0rCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAk aSIKLSsJICAgICAgZmkKLSsJICAgIGRvbmUKLSsJICBlbHNlCi0rCSAgICAjIEVycm9yIG9jY3Vy cmVkIGluIHRoZSBmaXJzdCBjb21waWxlLiAgTGV0J3MgdHJ5IHRvIHNhbHZhZ2UKLSsJICAgICMg dGhlIHNpdHVhdGlvbjogQ29tcGlsZSBhIHNlcGFyYXRlIHByb2dyYW0gZm9yIGVhY2ggbGlicmFy eS4KLSsJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbwotKwkgICAgICBuYW1lPWBleHByICRpIDog Jy1sXCguKlwpJ2AKLSsJICAgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3BlcmF0aW5n IG9uIGEgLUwgYXJndW1lbnQuCi0rICAgICAgICAgICAgICBpZiB0ZXN0ICIkbmFtZSIgIT0gIiIg JiYgdGVzdCAiJG5hbWUiICE9ICIwIjsgdGhlbgotKwkJJHJtIGNvbmZ0ZXN0Ci0rCQlpZiAkTFRD QyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkaTsgdGhlbgotKwkJICBsZGRfb3V0 cHV0PWBsZGQgY29uZnRlc3RgCi0rCQkgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dp dGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJCSAgICBjYXNlICIgJHByZWRl cHMgJHBvc3RkZXBzICIgaW4KLSsJCSAgICAqIiAkaSAiKikKLSsJCSAgICAgIG5ld2RlcGxpYnM9 IiRuZXdkZXBsaWJzICRpIgotKwkJICAgICAgaT0iIgotKwkJICAgICAgOzsKLSsJCSAgICBlc2Fj Ci0rCQkgIGZpCi0rCQkgIGlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KLSsJCSAgICBsaWJuYW1lPWBl dmFsIFxcJGVjaG8gXCIkbGlibmFtZV9zcGVjXCJgCi0rCQkgICAgZGVwbGliX21hdGNoZXM9YGV2 YWwgXFwkZWNobyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcImAKLSsJCSAgICBzZXQgZHVtbXkgJGRl cGxpYl9tYXRjaGVzCi0rCQkgICAgZGVwbGliX21hdGNoPSQyCi0rCQkgICAgaWYgdGVzdCBgZXhw ciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgotKwkJICAg ICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCi0rCQkgICAgZWxzZQotKwkJICAgICAgZHJv cHBlZGRlcHM9eWVzCi0rCQkgICAgICAkZWNobwotKwkJICAgICAgJGVjaG8gIioqKiBXYXJuaW5n OiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgotKwkJ ICAgICAgJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJh cnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkgICAgICAkZWNobyAiKioqIHlvdSBs aW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUg YSIKLSsJCSAgICAgICRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdo aWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQkgICAgICAkZWNobyAiKioqIGJlY2F1 c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2Ug dGhpcyBvbmUiCi0rCQkgICAgICAkZWNobyAiKioqIGFzIGEgZHluYW1pYyBkZXBlbmRlbmN5IHRo YXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgotKwkJICAgIGZp Ci0rCQkgIGZpCi0rCQllbHNlCi0rCQkgIGRyb3BwZWRkZXBzPXllcwotKwkJICAkZWNobwotKwkJ ICAkZWNobyAiKioqIFdhcm5pbmchICBMaWJyYXJ5ICRpIGlzIG5lZWRlZCBieSB0aGlzIGxpYnJh cnkgYnV0IEkgd2FzIG5vdCBhYmxlIHRvIgotKwkJICAkZWNobyAiKioqIG1ha2UgaXQgbGluayBp biEgIFlvdSB3aWxsIHByb2JhYmx5IG5lZWQgdG8gaW5zdGFsbCBpdCBvciBzb21lIgotKwkJICAk ZWNobyAiKioqIGxpYnJhcnkgdGhhdCBpdCBkZXBlbmRzIG9uIGJlZm9yZSB0aGlzIGxpYnJhcnkg d2lsbCBiZSBmdWxseSIKLSsJCSAgJGVjaG8gIioqKiBmdW5jdGlvbmFsLiAgSW5zdGFsbGluZyBp dCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBldmVuIGJldHRlci4iCi0rCQlmaQotKwkgICAg ICBlbHNlCi0rCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKLSsJICAgICAgZmkKLSsJICAg IGRvbmUKLSsJICBmaQotKwkgIDs7Ci0rCWZpbGVfbWFnaWMqKQotKwkgIHNldCBkdW1teSAkZGVw bGlic19jaGVja19tZXRob2QKLSsJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19j aGVja19tZXRob2QiIDogIiQyIFwoLipcKSJgCi0rCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJz OyBkbwotKwkgICAgbmFtZT1gZXhwciAkYV9kZXBsaWIgOiAnLWxcKC4qXCknYAotKwkgICAgIyBJ ZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3BlcmF0aW5nIG9uIGEgLUwgYXJndW1lbnQuCi0rICAg ICAgICAgICAgaWYgdGVzdCAiJG5hbWUiICE9ICIiICYmIHRlc3QgICIkbmFtZSIgIT0gIjAiOyB0 aGVuCi0rCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1 bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBp bgotKwkJKiIgJGFfZGVwbGliICIqKQotKwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9k ZXBsaWIiCi0rCQkgIGFfZGVwbGliPSIiCi0rCQkgIDs7Ci0rCQllc2FjCi0rCSAgICAgIGZpCi0r CSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCi0rCQlsaWJuYW1lPWBldmFsIFxc JGVjaG8gXCIkbGlibmFtZV9zcGVjXCJgCi0rCQlmb3IgaSBpbiAkbGliX3NlYXJjaF9wYXRoICRz eXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aDsgZG8KLSsJCSAgcG90ZW50aWFs X2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxgCi0rCQkgIGZvciBwb3RlbnRf bGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KLSsJCSAgICAgICMgRm9sbG93IHNvZnQgbGlua3Mu Ci0rCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIgMj4vZGV2L251bGwgXAotKwkJCSB8 IGdyZXAgIiAtPiAiID4vZGV2L251bGw7IHRoZW4KLSsJCQljb250aW51ZQotKwkJICAgICAgZmkK LSsJCSAgICAgICMgVGhlIHN0YXRlbWVudCBhYm92ZSB0cmllcyB0byBhdm9pZCBlbnRlcmluZyBh bgotKwkJICAgICAgIyBlbmRsZXNzIGxvb3AgYmVsb3csIGluIGNhc2Ugb2YgY3ljbGljIGxpbmtz LgotKwkJICAgICAgIyBXZSBtaWdodCBzdGlsbCBlbnRlciBhbiBlbmRsZXNzIGxvb3AsIHNpbmNl IGEgbGluawotKwkJICAgICAgIyBsb29wIGNhbiBiZSBjbG9zZWQgd2hpbGUgd2UgZm9sbG93IGxp bmtzLAotKwkJICAgICAgIyBidXQgc28gd2hhdD8KLSsJCSAgICAgIHBvdGxpYj0iJHBvdGVudF9s aWIiCi0rCQkgICAgICB3aGlsZSB0ZXN0IC1oICIkcG90bGliIiAyPi9kZXYvbnVsbDsgZG8KLSsJ CQlwb3RsaWJsaW5rPWBscyAtbGQgJHBvdGxpYiB8ICR7U0VEfSAncy8uKiAtPiAvLydgCi0rCQkJ Y2FzZSAkcG90bGlibGluayBpbgotKwkJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgcG90bGli PSIkcG90bGlibGluayI7OwotKwkJCSopIHBvdGxpYj1gJGVjaG8gIlgkcG90bGliIiB8ICRYc2Vk IC1lICdzLFteL10qJCwsJ2AiJHBvdGxpYmxpbmsiOzsKLSsJCQllc2FjCi0rCQkgICAgICBkb25l Ci0rCQkgICAgICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcIlwkcG90bGliXCIgMj4vZGV2L251 bGwgXAotKwkJCSB8ICR7U0VEfSAxMHEgXAotKwkJCSB8ICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVn ZXgiID4gL2Rldi9udWxsOyB0aGVuCi0rCQkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVw bGliIgotKwkJCWFfZGVwbGliPSIiCi0rCQkJYnJlYWsgMgotKwkJICAgICAgZmkKLSsJCSAgZG9u ZQotKwkJZG9uZQotKwkgICAgICBmaQotKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsg dGhlbgotKwkJZHJvcHBlZGRlcHM9eWVzCi0rCQkkZWNobwotKwkJJGVjaG8gIioqKiBXYXJuaW5n OiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBs aWIuIgotKwkJJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxp YnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkkZWNobyAiKioqIHlvdSBsaW5r IHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIK LSsJCSRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBk byBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQkkZWNobyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sg dGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKLSsJCWlmIHRlc3Qg LXogIiRwb3RsaWIiIDsgdGhlbgotKwkJICAkZWNobyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5v IGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciBmaWxlIG1hZ2ljIHRlc3QpIgotKwkJZWxz ZQotKwkJICAkZWNobyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0 ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKLSsJCSAgJGVjaG8gIioqKiB1c2luZyBhIGZp bGUgbWFnaWMuIExhc3QgZmlsZSBjaGVja2VkOiAkcG90bGliIgotKwkJZmkKLSsJICAgICAgZmkK LSsJICAgIGVsc2UKLSsJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KLSsJICAgICAgbmV3ZGVw bGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgotKwkgICAgZmkKLSsJICBkb25lICMgR29uZSB0 aHJvdWdoIGFsbCBkZXBsaWJzLgotKwkgIDs7Ci0rCW1hdGNoX3BhdHRlcm4qKQotKwkgIHNldCBk dW1teSAkZGVwbGlic19jaGVja19tZXRob2QKLSsJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHBy ICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQyIFwoLipcKSJgCi0rCSAgZm9yIGFfZGVwbGli IGluICRkZXBsaWJzOyBkbwotKwkgICAgbmFtZT1gZXhwciAkYV9kZXBsaWIgOiAnLWxcKC4qXCkn YAotKwkgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3BlcmF0aW5nIG9uIGEgLUwgYXJn dW1lbnQuCi0rCSAgICBpZiB0ZXN0IC1uICIkbmFtZSIgJiYgdGVzdCAiJG5hbWUiICE9ICIwIjsg dGhlbgotKwkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19y dW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCQljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIg aW4KLSsJCSoiICRhX2RlcGxpYiAiKikKLSsJCSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFf ZGVwbGliIgotKwkJICBhX2RlcGxpYj0iIgotKwkJICA7OwotKwkJZXNhYwotKwkgICAgICBmaQot KwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJbGlibmFtZT1gZXZhbCBc XCRlY2hvIFwiJGxpYm5hbWVfc3BlY1wiYAotKwkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAk c3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCi0rCQkgIHBvdGVudGlh bF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+L2Rldi9udWxsYAotKwkJICBmb3IgcG90ZW50 X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRvCi0rCQkgICAgcG90bGliPSIkcG90ZW50X2xpYiIg IyBzZWUgc3ltbGluay1jaGVjayBhYm92ZSBpbiBmaWxlX21hZ2ljIHRlc3QKLSsJCSAgICBpZiBl dmFsICRlY2hvIFwiJHBvdGVudF9saWJcIiAyPi9kZXYvbnVsbCBcCi0rCQkgICAgICAgIHwgJHtT RUR9IDEwcSBcCi0rCQkgICAgICAgIHwgJEVHUkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAv ZGV2L251bGw7IHRoZW4KLSsJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxp YiIKLSsJCSAgICAgIGFfZGVwbGliPSIiCi0rCQkgICAgICBicmVhayAyCi0rCQkgICAgZmkKLSsJ CSAgZG9uZQotKwkJZG9uZQotKwkgICAgICBmaQotKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBs aWIiIDsgdGhlbgotKwkJZHJvcHBlZGRlcHM9eWVzCi0rCQkkZWNobwotKwkJJGVjaG8gIioqKiBX YXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAk YV9kZXBsaWIuIgotKwkJJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0 aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkkZWNobyAiKioqIHlv dSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhh dmUgYSIKLSsJCSRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNo IHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQkkZWNobyAiKioqIGJlY2F1c2UgSSBkaWQg Y2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKLSsJCWlm IHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgotKwkJICAkZWNobyAiKioqIHdpdGggJGxpYm5hbWUg YnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciByZWdleCBwYXR0ZXJuIHRlc3Qp IgotKwkJZWxzZQotKwkJICAkZWNobyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhl IGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKLSsJCSAgJGVjaG8gIioqKiB1 c2luZyBhIHJlZ2V4IHBhdHRlcm4uIExhc3QgZmlsZSBjaGVja2VkOiAkcG90bGliIgotKwkJZmkK LSsJICAgICAgZmkKLSsJICAgIGVsc2UKLSsJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KLSsJ ICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgotKwkgICAgZmkKLSsJICBk b25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgotKwkgIDs7Ci0rCW5vbmUgfCB1bmtub3du IHwgKikKLSsJICBuZXdkZXBsaWJzPSIiCi0rCSAgdG1wX2RlcGxpYnM9YCRlY2hvICJYICRkZXBs aWJzIiB8ICRYc2VkIC1lICdzLyAtbGMkLy8nIFwKLSsJICAgIC1lICdzLyAtW0xSXVteIF0qLy9n J2AKLSsJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1l cyIgPSAiWHllcyIgOyB0aGVuCi0rCSAgICBmb3IgaSBpbiAkcHJlZGVwcyAkcG9zdGRlcHMgOyBk bwotKwkgICAgICAjIGNhbid0IHVzZSBYc2VkIGJlbG93LCBiZWNhdXNlICRpIG1pZ2h0IGNvbnRh aW4gJy8nCi0rCSAgICAgIHRtcF9kZXBsaWJzPWAkZWNobyAiWCAkdG1wX2RlcGxpYnMiIHwgJHtT RUR9IC1lICIxcyxeWCwsIiAtZSAicywkaSwsImAKLSsJICAgIGRvbmUKLSsJICBmaQotKwkgIGlm ICRlY2hvICJYICR0bXBfZGVwbGlicyIgfCAkWHNlZCAtZSAncy9bIAldLy9nJyBcCi0rCSAgICB8 IGdyZXAgLiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgICAkZWNobwotKwkgICAgaWYgdGVzdCAiWCRk ZXBsaWJzX2NoZWNrX21ldGhvZCIgPSAiWG5vbmUiOyB0aGVuCi0rCSAgICAgICRlY2hvICIqKiog V2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4g dGhpcyBwbGF0Zm9ybS4iCi0rCSAgICBlbHNlCi0rCSAgICAgICRlY2hvICIqKiogV2FybmluZzog aW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB0byBiZSBzdXBwb3J0ZWQu IgotKwkgICAgZmkKLSsJICAgICRlY2hvICIqKiogQWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkg ZGVwZW5kZW5jaWVzIGFyZSBiZWluZyBkcm9wcGVkLiIKLSsJICAgIGRyb3BwZWRkZXBzPXllcwot KwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwl2ZXJzdWZmaXg9JHZlcnN1ZmZpeF9zYXZlCi0rCW1h am9yPSRtYWpvcl9zYXZlCi0rCXJlbGVhc2U9JHJlbGVhc2Vfc2F2ZQotKwlsaWJuYW1lPSRsaWJu YW1lX3NhdmUKLSsJbmFtZT0kbmFtZV9zYXZlCi0rCi0rCWNhc2UgJGhvc3QgaW4KLSsJKi0qLXJo YXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQotKwkgICMgT24gUmhhcHNvZHkgcmVwbGFjZSB0 aGUgQyBsaWJyYXJ5IGlzIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0rCSAgbmV3ZGVwbGlicz1gJGVj aG8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIC1mcmFtZXdvcmsgU3lzdGVt IC8nYAotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJaWYgdGVzdCAiJGRyb3BwZWRkZXBzIiA9IHllczsg dGhlbgotKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzOyB0aGVuCi0rCSAgICAkZWNobwotKwkg ICAgJGVjaG8gIioqKiBXYXJuaW5nOiBsaWJ0b29sIGNvdWxkIG5vdCBzYXRpc2Z5IGFsbCBkZWNs YXJlZCBpbnRlci1saWJyYXJ5IgotKwkgICAgJGVjaG8gIioqKiBkZXBlbmRlbmNpZXMgb2YgbW9k dWxlICRsaWJuYW1lLiAgVGhlcmVmb3JlLCBsaWJ0b29sIHdpbGwgY3JlYXRlIgotKwkgICAgJGVj aG8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUg ZGxvcGVuaW5nIgotKwkgICAgJGVjaG8gIioqKiBhcHBsaWNhdGlvbiBpcyBsaW5rZWQgd2l0aCB0 aGUgLWRsb3BlbiBmbGFnLiIKLSsJICAgIGlmIHRlc3QgLXogIiRnbG9iYWxfc3ltYm9sX3BpcGUi OyB0aGVuCi0rCSAgICAgICRlY2hvCi0rCSAgICAgICRlY2hvICIqKiogSG93ZXZlciwgdGhpcyB3 b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKLSsJ ICAgICAgJGVjaG8gIioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1 aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCi0rCSAgICAgICRlY2hvICIqKiogbm90IGZpbmQg c3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCi0r CSAgICAgICRlY2hvICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1 aWxkIG1heSBoZWxwLiIKLSsJICAgIGZpCi0rCSAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMi ID0gbm87IHRoZW4KLSsJICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxp YmV4dCIKLSsJICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQotKwkgICAgICBidWlsZF9v bGRfbGlicz15ZXMKLSsJICAgIGVsc2UKLSsJICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCi0r CSAgICBmaQotKwkgIGVsc2UKLSsJICAgICRlY2hvICIqKiogVGhlIGludGVyLWxpYnJhcnkgZGVw ZW5kZW5jaWVzIHRoYXQgaGF2ZSBiZWVuIGRyb3BwZWQgaGVyZSB3aWxsIGJlIgotKwkgICAgJGVj aG8gIioqKiBhdXRvbWF0aWNhbGx5IGFkZGVkIHdoZW5ldmVyIGEgcHJvZ3JhbSBpcyBsaW5rZWQg d2l0aCB0aGlzIGxpYnJhcnkiCi0rCSAgICAkZWNobyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1k bG9wZW4gaXQuIgotKwotKwkgICAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZCIgPSBubzsgdGhl bgotKwkgICAgICAkZWNobwotKwkgICAgICAkZWNobyAiKioqIFNpbmNlIHRoaXMgbGlicmFyeSBt dXN0IG5vdCBjb250YWluIHVuZGVmaW5lZCBzeW1ib2xzLCIKLSsJICAgICAgJGVjaG8gIioqKiBi ZWNhdXNlIGVpdGhlciB0aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGVtIG9yIgotKwkg ICAgICAkZWNobyAiKioqIGl0IHdhcyBleHBsaWNpdGx5IHJlcXVlc3RlZCB3aXRoIC1uby11bmRl ZmluZWQsIgotKwkgICAgICAkZWNobyAiKioqIGxpYnRvb2wgd2lsbCBvbmx5IGNyZWF0ZSBhIHN0 YXRpYyB2ZXJzaW9uIG9mIGl0LiIKLSsJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9 IG5vOyB0aGVuCi0rCQlvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0Igot KwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQotKwkJYnVpbGRfb2xkX2xpYnM9eWVzCi0rCSAg ICAgIGVsc2UKLSsJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwkgICAgICBmaQotKwkgICAgZmkK LSsJICBmaQotKwlmaQotKwkjIERvbmUgY2hlY2tpbmcgZGVwbGlicyEKLSsJZGVwbGlicz0kbmV3 ZGVwbGlicwotKyAgICAgIGZpCi0rCi0rCi0rICAgICAgIyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBh dGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0Ci0rICAgICAgIyBpbnN0YWxs ZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QK LSsgICAgICBuZXdfbGlicz0KLSsgICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbwot KwljYXNlICIgJG5ld19saWJzICIgaW4KLSsJKiIgLUwkcGF0aC8kb2JqZGlyICIqKSA7OwotKwkq KQotKwkgIGNhc2UgIiAkZGVwbGlicyAiIGluCi0rCSAgKiIgLUwkcGF0aC8kb2JqZGlyICIqKQot KwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7Ci0rCSAgZXNhYwot KwkgIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGli czsgZG8KLSsJY2FzZSAkZGVwbGliIGluCi0rCS1MKikKLSsJICBjYXNlICIgJG5ld19saWJzICIg aW4KLSsJICAqIiAkZGVwbGliICIqKSA7OwotKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRl cGxpYiIgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVw bGliIiA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIGRlcGxpYnM9IiRuZXdfbGlicyIK LSsKLSsKLSsgICAgICAjIEFsbCB0aGUgbGlicmFyeS1zcGVjaWZpYyB2YXJpYWJsZXMgKGluc3Rh bGxfbGliZGlyIGlzIHNldCBhYm92ZSkuCi0rICAgICAgbGlicmFyeV9uYW1lcz0KLSsgICAgICBv bGRfbGlicmFyeT0KLSsgICAgICBkbG5hbWU9Ci0rCi0rICAgICAgIyBUZXN0IGFnYWluLCB3ZSBt YXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkgbW9yZQotKyAgICAgIGlmIHRlc3Qg IiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rCWlmIHRlc3QgIiRoYXJkY29kZV9p bnRvX2xpYnMiID0geWVzOyB0aGVuCi0rCSAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRocwot KwkgIGhhcmRjb2RlX2xpYmRpcnM9Ci0rCSAgZGVwX3JwYXRoPQotKwkgIHJwYXRoPSIkZmluYWxp emVfcnBhdGgiCi0rCSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVf cnBhdGgkcnBhdGgiCi0rCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCi0rCSAgICBpZiB0ZXN0 IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAt biAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCi0rCQlpZiB0ZXN0IC16ICIkaGFy ZGNvZGVfbGliZGlycyI7IHRoZW4KLSsJCSAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKLSsJ CWVsc2UKLSsJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgotKwkJICBj YXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciBpbgotKwkJICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxp YmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCi0rCQkgICAgOzsKLSsJCSAgKikKLSsJ CSAgICBoYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yJGxpYmRpciIKLSsJCSAgICA7OwotKwkJICBlc2FjCi0rCQlmaQotKwkgICAgICBl bHNlCi0rCQlldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0rCQlkZXBf cnBhdGg9IiRkZXBfcnBhdGggJGZsYWciCi0rCSAgICAgIGZpCi0rCSAgICBlbGlmIHRlc3QgLW4g IiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJICAgICAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgotKwkg ICAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgICAqKSBwZXJtX3JwYXRoPSIkcGVybV9ycGF0 aCAkbGliZGlyIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgIGRvbmUKLSsJICAjIFN1 YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgotKwkgIGlmIHRl c3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgotKwkgICAgIHRlc3QgLW4gIiRo YXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwkgICAgbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIK LSsJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIjsgdGhlbgot KwkgICAgICBjYXNlICRhcmNoaXZlX2NtZHMgaW4KLSsJICAgICAgKlwkTEQqKSBldmFsIGRlcF9y cGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkXCIgOzsKLSsJICAgICAgKikgICAg ICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIgOzsKLSsJICAg ICAgZXNhYwotKwkgICAgZWxzZQotKwkgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjXCIKLSsJICAgIGZpCi0rCSAgZmkKLSsJICBpZiB0ZXN0IC1uICIkcnVu cGF0aF92YXIiICYmIHRlc3QgLW4gIiRwZXJtX3JwYXRoIjsgdGhlbgotKwkgICAgIyBXZSBzaG91 bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KLSsJICAgIHJwYXRoPQotKwkgICAgZm9yIGRpciBpbiAk cGVybV9ycGF0aDsgZG8KLSsJICAgICAgcnBhdGg9IiRycGF0aCRkaXI6IgotKwkgICAgZG9uZQot KwkgICAgZXZhbCAiJHJ1bnBhdGhfdmFyPSckcnBhdGhcJCRydW5wYXRoX3Zhcic7IGV4cG9ydCAk cnVucGF0aF92YXIiCi0rCSAgZmkKLSsJICB0ZXN0IC1uICIkZGVwX3JwYXRoIiAmJiBkZXBsaWJz PSIkZGVwX3JwYXRoICRkZXBsaWJzIgotKwlmaQotKwotKwlzaGxpYnBhdGg9IiRmaW5hbGl6ZV9z aGxpYnBhdGgiCi0rCXRlc3QgIiRtb2RlIiAhPSByZWxpbmsgJiYgc2hsaWJwYXRoPSIkY29tcGls ZV9zaGxpYnBhdGgkc2hsaWJwYXRoIgotKwlpZiB0ZXN0IC1uICIkc2hsaWJwYXRoIjsgdGhlbgot KwkgIGV2YWwgIiRzaGxpYnBhdGhfdmFyPSckc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3Zhcic7IGV4 cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsJZmkKLSsKLSsJIyBHZXQgdGhlIHJlYWwgYW5kIGxpbmsg bmFtZXMgb2YgdGhlIGxpYnJhcnkuCi0rCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wi Ci0rCWV2YWwgbGlicmFyeV9uYW1lcz1cIiRsaWJyYXJ5X25hbWVzX3NwZWNcIgotKwlzZXQgZHVt bXkgJGxpYnJhcnlfbmFtZXMKLSsJcmVhbG5hbWU9IiQyIgotKwlzaGlmdDsgc2hpZnQKLSsKLSsJ aWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgotKwkgIGV2YWwgc29uYW1lPVwiJHNvbmFt ZV9zcGVjXCIKLSsJZWxzZQotKwkgIHNvbmFtZT0iJHJlYWxuYW1lIgotKwlmaQotKwlpZiB0ZXN0 IC16ICIkZGxuYW1lIjsgdGhlbgotKwkgIGRsbmFtZT0kc29uYW1lCi0rCWZpCi0rCi0rCWxpYj0i JG91dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgotKwlsaW5rbmFtZXM9Ci0rCWZvciBsaW5rCi0rCWRv Ci0rCSAgbGlua25hbWVzPSIkbGlua25hbWVzICRsaW5rIgotKwlkb25lCi0rCi0rCSMgVXNlIHN0 YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCi0rCXRlc3QgLXogIiRwaWNfZmxhZyIgJiYg bGlib2Jqcz1gJGVjaG8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwg JE5MMlNQYAotKwotKwkjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scwotKwlp ZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMiOyB0aGVuCi0rCSAgaWYgdGVzdCAiJGFsd2F5c19l eHBvcnRfc3ltYm9scyIgPSB5ZXMgfHwgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4Ijsg dGhlbgotKwkgICAgJHNob3cgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUu bGEnIgotKwkgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmV4cCIK LSsJICAgICRydW4gJHJtICRleHBvcnRfc3ltYm9scwotKwkgICAgY21kcz0kZXhwb3J0X3N5bWJv bHNfY21kcwotKwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rCSAgICBmb3IgY21kIGlu ICRjbWRzOyBkbwotKwkgICAgICBJRlM9IiRzYXZlX2lmcyIKLSsJICAgICAgZXZhbCBjbWQ9XCIk Y21kXCIKLSsJICAgICAgaWYgbGVuPWBleHByICJYJGNtZCIgOiAiLioiYCAmJgotKwkgICAgICAg dGVzdCAiJGxlbiIgLWxlICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxl IC0xOyB0aGVuCi0rCSAgICAgICAgJHNob3cgIiRjbWQiCi0rCSAgICAgICAgJHJ1biBldmFsICIk Y21kIiB8fCBleGl0ICQ/Ci0rCSAgICAgICAgc2tpcHBlZF9leHBvcnQ9ZmFsc2UKLSsJICAgICAg ZWxzZQotKwkgICAgICAgICMgVGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBleGVjdXRl IGluIG9uZSBzdGVwLgotKwkgICAgICAgICRzaG93ICJ1c2luZyByZWxvYWRhYmxlIG9iamVjdCBm aWxlIGZvciBleHBvcnQgbGlzdC4uLiIKLSsJICAgICAgICBza2lwcGVkX2V4cG9ydD06Ci0rCQkj IEJyZWFrIG91dCBlYXJseSwgb3RoZXJ3aXNlIHNraXBwZWRfZXhwb3J0IG1heSBiZQotKwkJIyBz ZXQgdG8gZmFsc2UgYnkgYSBsYXRlciBidXQgc2hvcnRlciBjbWQuCi0rCQlicmVhawotKwkgICAg ICBmaQotKwkgICAgZG9uZQotKwkgICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgICBpZiB0ZXN0IC1u ICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSAgICAgICRzaG93ICIkRUdSRVAgLWUg XCIkZXhwb3J0X3N5bWJvbHNfcmVnZXhcIiBcIiRleHBvcnRfc3ltYm9sc1wiID4gXCIke2V4cG9y dF9zeW1ib2xzfVRcIiIKLSsJICAgICAgJHJ1biBldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3lt Ym9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBvcnRfc3ltYm9sc31UIicKLSsJ ICAgICAgJHNob3cgIiRtdiBcIiR7ZXhwb3J0X3N5bWJvbHN9VFwiIFwiJGV4cG9ydF9zeW1ib2xz XCIiCi0rCSAgICAgICRydW4gZXZhbCAnJG12ICIke2V4cG9ydF9zeW1ib2xzfVQiICIkZXhwb3J0 X3N5bWJvbHMiJwotKwkgICAgZmkKLSsJICBmaQotKwlmaQotKwotKwlpZiB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCi0rCSAgJHJ1 biBldmFsICckZWNobyAiWCRpbmNsdWRlX2V4cHN5bXMiIHwgJFNQMk5MID4+ICIkZXhwb3J0X3N5 bWJvbHMiJwotKwlmaQotKwotKwl0bXBfZGVwbGlicz0KLSsJZm9yIHRlc3RfZGVwbGliIGluICRk ZXBsaWJzOyBkbwotKwkJY2FzZSAiICRjb252ZW5pZW5jZSAiIGluCi0rCQkqIiAkdGVzdF9kZXBs aWIgIiopIDs7Ci0rCQkqKQotKwkJCXRtcF9kZXBsaWJzPSIkdG1wX2RlcGxpYnMgJHRlc3RfZGVw bGliIgotKwkJCTs7Ci0rCQllc2FjCi0rCWRvbmUKLSsJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgot KwotKwlpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCi0rCSAgaWYgdGVzdCAtbiAiJHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpz Ci0rCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj XCIKLSsJICBlbHNlCi0rCSAgICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14 IgotKwkgICAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCSAgICBmdW5jX2V4 dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKLSsJICAgIGxpYm9ianM9IiRsaWJv YmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKwkgIGZpCi0rCWZpCi0rCQotKwlp ZiB0ZXN0ICIkdGhyZWFkX3NhZmUiID0geWVzICYmIHRlc3QgLW4gIiR0aHJlYWRfc2FmZV9mbGFn X3NwZWMiOyB0aGVuCi0rCSAgZXZhbCBmbGFnPVwiJHRocmVhZF9zYWZlX2ZsYWdfc3BlY1wiCi0r CSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmbGFnIgotKwlmaQotKwotKwkjIE1ha2Ug YSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgd2hlbiByZWxpbmtpbmcKLSsJaWYg dGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCi0rCSAgJHJ1biBldmFsICcoY2QgJG91dHB1dF9v YmpkaXIgJiYgJHJtICR7cmVhbG5hbWV9VSAmJiAkbXYgJHJlYWxuYW1lICR7cmVhbG5hbWV9VSkn IHx8IGV4aXQgJD8KLSsJZmkKLSsKLSsJIyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRz LgotKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0IC1uICIkbW9kdWxlX2NtZHMiIDsg dGhlbgotKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVs ZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1vZHVsZV9leHBz eW1fY21kc1wiCi0rCSAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMKLSsJICBlbHNlCi0rCSAg ICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfY21kc1wiCi0rCSAgICBjbWRzPSRtb2R1bGVfY21k cwotKwkgIGZpCi0rCWVsc2UKLSsJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0 IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICBldmFsIHRlc3RfY21kcz1cIiRh cmNoaXZlX2V4cHN5bV9jbWRzXCIKLSsJICBjbWRzPSRhcmNoaXZlX2V4cHN5bV9jbWRzCi0rCWVs c2UKLSsJICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2NtZHNcIgotKwkgIGNtZHM9JGFyY2hp dmVfY21kcwotKwkgIGZpCi0rCWZpCi0rCi0rCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9 ICJYOiIgJiYKLSsJICAgbGVuPWBleHByICJYJHRlc3RfY21kcyIgOiAiLioiIDI+L2Rldi9udWxs YCAmJgotKwkgICB0ZXN0ICIkbGVuIiAtbGUgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9j bWRfbGVuIiAtbGUgLTE7IHRoZW4KLSsJICA6Ci0rCWVsc2UKLSsJICAjIFRoZSBjb21tYW5kIGxp bmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGluayBwaWVjZXdpc2UuCi0rCSAg JGVjaG8gImNyZWF0aW5nIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLi4uIgotKwotKwkgICMgU2F2 ZSB0aGUgdmFsdWUgb2YgJG91dHB1dCBhbmQgJGxpYm9ianMgYmVjYXVzZSB3ZSB3YW50IHRvCi0r CSAgIyB1c2UgdGhlbSBsYXRlci4gIElmIHdlIGhhdmUgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs IHdlCi0rCSAgIyB3YW50IHRvIHVzZSBzYXZlX2xpYm9ianMgYXMgaXQgd2FzIGJlZm9yZQotKwkg ICMgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgd2FzIGV4cGFuZGVkLCBiZWNhdXNlIHdlIGNhbid0 Ci0rCSAgIyBhc3N1bWUgdGhlIGxpbmtlciB1bmRlcnN0YW5kcyB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYy4KLSsJICAjIFRoaXMgbWF5IGhhdmUgdG8gYmUgcmV2aXNpdGVkLCBpbiBjYXNlIHRvbyBt YW55Ci0rCSAgIyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgZ2V0IGxpbmtlZCBpbiBhbmQgZW5kIHVw IGV4Y2VlZGluZwotKwkgICMgdGhlIHNwZWMuCi0rCSAgaWYgdGVzdCAteiAiJGNvbnZlbmllbmNl IiB8fCB0ZXN0IC16ICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICBzYXZl X2xpYm9ianM9JGxpYm9ianMKLSsJICBmaQotKwkgIHNhdmVfb3V0cHV0PSRvdXRwdXQKLSsJICBv dXRwdXRfbGE9YCRlY2hvICJYJG91dHB1dCIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKLSsKLSsJ ICAjIENsZWFyIHRoZSByZWxvYWRhYmxlIG9iamVjdCBjcmVhdGlvbiBjb21tYW5kIHF1ZXVlIGFu ZAotKwkgICMgaW5pdGlhbGl6ZSBrIHRvIG9uZS4KLSsJICB0ZXN0X2NtZHM9Ci0rCSAgY29uY2F0 X2NtZHM9Ci0rCSAgb2JqbGlzdD0KLSsJICBkZWxmaWxlcz0KLSsJICBsYXN0X3JvYmo9Ci0rCSAg az0xCi0rCSAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0Ci0r CSAgIyBMb29wIG92ZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBiZSBsaW5rZWQuCi0rCSAgZm9y IG9iaiBpbiAkc2F2ZV9saWJvYmpzCi0rCSAgZG8KLSsJICAgIGV2YWwgdGVzdF9jbWRzPVwiJHJl bG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpcIgotKwkgICAgaWYgdGVzdCAiWCRvYmpsaXN0 IiA9IFggfHwKLSsJICAgICAgIHsgbGVuPWBleHByICJYJHRlc3RfY21kcyIgOiAiLioiIDI+L2Rl di9udWxsYCAmJgotKwkJIHRlc3QgIiRsZW4iIC1sZSAiJG1heF9jbWRfbGVuIjsgfTsgdGhlbgot KwkgICAgICBvYmpsaXN0PSIkb2JqbGlzdCAkb2JqIgotKwkgICAgZWxzZQotKwkgICAgICAjIFRo ZSBjb21tYW5kICR0ZXN0X2NtZHMgaXMgYWxtb3N0IHRvbyBsb25nLCBhZGQgYQotKwkgICAgICAj IGNvbW1hbmQgdG8gdGhlIHF1ZXVlLgotKwkgICAgICBpZiB0ZXN0ICIkayIgLWVxIDEgOyB0aGVu Ci0rCQkjIFRoZSBmaXJzdCBmaWxlIGRvZXNuJ3QgaGF2ZSBhIHByZXZpb3VzIGNvbW1hbmQgdG8g YWRkLgotKwkJZXZhbCBjb25jYXRfY21kcz1cIiRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9y b2JqXCIKLSsJICAgICAgZWxzZQotKwkJIyBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9iamVj dCBmaWxlcyB3aWxsIGxpbmsgaW4KLSsJCSMgdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCi0rCQlldmFs IGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc34kcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rf cm9ialwiCi0rCSAgICAgIGZpCi0rCSAgICAgIGxhc3Rfcm9iaj0kb3V0cHV0X29iamRpci8kb3V0 cHV0X2xhLSR7a30uJG9iamV4dAotKwkgICAgICBrPWBleHByICRrICsgMWAKLSsJICAgICAgb3V0 cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0Ci0rCSAgICAgIG9iamxp c3Q9JG9iagotKwkgICAgICBsZW49MQotKwkgICAgZmkKLSsJICBkb25lCi0rCSAgIyBIYW5kbGUg dGhlIHJlbWFpbmluZyBvYmplY3RzIGJ5IGNyZWF0aW5nIG9uZSBsYXN0Ci0rCSAgIyByZWxvYWRh YmxlIG9iamVjdCBmaWxlLiAgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QKLSsJICAj IGZpbGVzIHdpbGwgbGluayBpbiB0aGUgbGFzdCBvbmUgY3JlYXRlZC4KLSsJICB0ZXN0IC16ICIk Y29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KLSsJICBldmFsIGNvbmNh dF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpc IgotKwotKwkgIGlmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVuCi0rCSAgICAkc2hvdyAi Z2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCi0rCSAgICBleHBvcnRf c3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgotKwkgICAgJHJ1biAkcm0gJGV4 cG9ydF9zeW1ib2xzCi0rCSAgICBsaWJvYmpzPSRvdXRwdXQKLSsJICAgICMgQXBwZW5kIHRoZSBj b21tYW5kIHRvIGNyZWF0ZSB0aGUgZXhwb3J0IGZpbGUuCi0rCSAgICBldmFsIGNvbmNhdF9jbWRz PVwiXCRjb25jYXRfY21kc34kZXhwb3J0X3N5bWJvbHNfY21kc1wiCi0rICAgICAgICAgIGZpCi0r Ci0rCSAgIyBTZXQgdXAgYSBjb21tYW5kIHRvIHJlbW92ZSB0aGUgcmVsb2FkYWJsZSBvYmplY3Qg ZmlsZXMKLSsJICAjIGFmdGVyIHRoZXkgYXJlIHVzZWQuCi0rCSAgaT0wCi0rCSAgd2hpbGUgdGVz dCAiJGkiIC1sdCAiJGsiCi0rCSAgZG8KLSsJICAgIGk9YGV4cHIgJGkgKyAxYAotKwkgICAgZGVs ZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7aX0uJG9iamV4dCIK LSsJICBkb25lCi0rCi0rCSAgJGVjaG8gImNyZWF0aW5nIGEgdGVtcG9yYXJ5IHJlbG9hZGFibGUg b2JqZWN0IGZpbGU6ICRvdXRwdXQiCi0rCi0rCSAgIyBMb29wIHRocm91Z2ggdGhlIGNvbW1hbmRz IGdlbmVyYXRlZCBhYm92ZSBhbmQgZXhlY3V0ZSB0aGVtLgotKwkgIHNhdmVfaWZzPSIkSUZTIjsg SUZTPSd+JwotKwkgIGZvciBjbWQgaW4gJGNvbmNhdF9jbWRzOyBkbwotKwkgICAgSUZTPSIkc2F2 ZV9pZnMiCi0rCSAgICAkc2hvdyAiJGNtZCIKLSsJICAgICRydW4gZXZhbCAiJGNtZCIgfHwgZXhp dCAkPwotKwkgIGRvbmUKLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsKLSsJICBsaWJvYmpzPSRvdXRw dXQKLSsJICAjIFJlc3RvcmUgdGhlIHZhbHVlIG9mIG91dHB1dC4KLSsJICBvdXRwdXQ9JHNhdmVf b3V0cHV0Ci0rCi0rCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIiAmJiB0ZXN0IC1uICIkd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9i anMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKLSsJICBmaQotKwkgICMgRXhwYW5kIHRoZSBs aWJyYXJ5IGxpbmtpbmcgY29tbWFuZHMgYWdhaW4gdG8gcmVzZXQgdGhlCi0rCSAgIyB2YWx1ZSBv ZiAkbGlib2JqcyBmb3IgcGllY2V3aXNlIGxpbmtpbmcuCi0rCi0rCSAgIyBEbyBlYWNoIG9mIHRo ZSBhcmNoaXZlIGNvbW1hbmRzLgotKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzICYmIHRlc3Qg LW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJv bHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0aGVuCi0rCSAgICAgIGNtZHM9 JG1vZHVsZV9leHBzeW1fY21kcwotKwkgICAgZWxzZQotKwkgICAgICBjbWRzPSRtb2R1bGVfY21k cwotKwkgICAgZmkKLSsJICBlbHNlCi0rCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAm JiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICAgIGNtZHM9JGFyY2hp dmVfZXhwc3ltX2NtZHMKLSsJICBlbHNlCi0rCSAgICBjbWRzPSRhcmNoaXZlX2NtZHMKLSsJICAg IGZpCi0rCSAgZmkKLSsKLSsJICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0byByZW1vdmUgdGhlIHJl bG9hZGFibGUgb2JqZWN0IGZpbGVzCi0rCSAgIyB0byB0aGUganVzdC1yZXNldCAkY21kcy4KLSsJ ICBldmFsIGNtZHM9XCJcJGNtZHN+XCRybSAkZGVsZmlsZXNcIgotKwlmaQotKwlzYXZlX2lmcz0i JElGUyI7IElGUz0nficKLSsJZm9yIGNtZCBpbiAkY21kczsgZG8KLSsJICBJRlM9IiRzYXZlX2lm cyIKLSsJICBldmFsIGNtZD1cIiRjbWRcIgotKwkgICRzaG93ICIkY21kIgotKwkgICRydW4gZXZh bCAiJGNtZCIgfHwgewotKwkgICAgbHRfZXhpdD0kPwotKwotKwkgICAgIyBSZXN0b3JlIHRoZSB1 bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0Ci0rCSAgICBpZiB0ZXN0ICIkbW9kZSIgPSByZWxp bms7IHRoZW4KLSsJICAgICAgJHJ1biBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJHJtICR7 cmVhbG5hbWV9VCAmJiAkbXYgJHtyZWFsbmFtZX1VICRyZWFsbmFtZSknCi0rCSAgICBmaQotKwot KwkgICAgZXhpdCAkbHRfZXhpdAotKwkgIH0KLSsJZG9uZQotKwlJRlM9IiRzYXZlX2lmcyIKLSsK LSsJIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0Ci0rCWlmIHRlc3Qg IiRtb2RlIiA9IHJlbGluazsgdGhlbgotKwkgICRydW4gZXZhbCAnKGNkICRvdXRwdXRfb2JqZGly ICYmICRybSAke3JlYWxuYW1lfVQgJiYgJG12ICRyZWFsbmFtZSAke3JlYWxuYW1lfVQgJiYgJG12 ICIkcmVhbG5hbWUiVSAkcmVhbG5hbWUpJyB8fCBleGl0ICQ/Ci0rCi0rCSAgaWYgdGVzdCAtbiAi JGNvbnZlbmllbmNlIjsgdGhlbgotKwkgICAgaWYgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjIjsgdGhlbgotKwkgICAgICAkc2hvdyAiJHtybX1yICRnZW50b3AiCi0rCSAgICAgICRy dW4gJHtybX1yICIkZ2VudG9wIgotKwkgICAgZmkKLSsJICBmaQotKwotKwkgIGV4aXQgJEVYSVRf U1VDQ0VTUwotKwlmaQotKwotKwkjIENyZWF0ZSBsaW5rcyB0byB0aGUgcmVhbCBsaWJyYXJ5Lgot Kwlmb3IgbGlua25hbWUgaW4gJGxpbmtuYW1lczsgZG8KLSsJICBpZiB0ZXN0ICIkcmVhbG5hbWUi ICE9ICIkbGlua25hbWUiOyB0aGVuCi0rCSAgICAkc2hvdyAiKGNkICRvdXRwdXRfb2JqZGlyICYm ICRybSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZSkiCi0rCSAgICAkcnVu IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkcm0gJGxpbmtuYW1lICYmICRMTl9TICRyZWFs bmFtZSAkbGlua25hbWUpJyB8fCBleGl0ICQ/Ci0rCSAgZmkKLSsJZG9uZQotKwotKwkjIElmIC1t b2R1bGUgb3IgLWV4cG9ydC1keW5hbWljIHdhcyBzcGVjaWZpZWQsIHNldCB0aGUgZGxuYW1lLgot KwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyB8fCB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0geWVz OyB0aGVuCi0rCSAgIyBPbiBhbGwga25vd24gb3BlcmF0aW5nIHN5c3RlbXMsIHRoZXNlIGFyZSBp ZGVudGljYWwuCi0rCSAgZGxuYW1lPSIkc29uYW1lIgotKwlmaQotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgb2JqKQotKyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KLSsgICAgICAqXCAt bCogfCAqXCAtTCopCi0rCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLWwnIGFuZCBcYC1M JyBhcmUgaWdub3JlZCBmb3Igb2JqZWN0cyIgMT4mMiA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAg ICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBu bzsgdGhlbgotKwkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1kbG9wZW4nIGlzIGlnbm9y ZWQgZm9yIG9iamVjdHMiIDE+JjIKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRy cGF0aCI7IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtcnBhdGgnIGlzIGln bm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4g IiR4cnBhdGgiOyB0aGVuCi0rCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLVInIGlzIGln bm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4g IiR2aW5mbyI7IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtdmVyc2lvbi1p bmZvJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIiAxPiYyCi0rICAgICAgZmkKLSsKLSsgICAgICBp ZiB0ZXN0IC1uICIkcmVsZWFzZSI7IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzog XGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIgMT4mMgotKyAgICAgIGZpCi0rCi0r ICAgICAgY2FzZSAkb3V0cHV0IGluCi0rICAgICAgKi5sbykKLSsJaWYgdGVzdCAtbiAiJG9ianMk b2xkX2RlcGxpYnMiOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGJ1aWxkIGxp YnJhcnkgb2JqZWN0IFxgJG91dHB1dCcgZnJvbSBub24tbGlidG9vbCBvYmplY3RzIiAxPiYyCi0r CSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCWZpCi0rCWxpYm9iaj0iJG91dHB1dCIKLSsJb2JqPWAk ZWNobyAiWCRvdXRwdXQiIHwgJFhzZWQgLWUgIiRsbzJvImAKLSsJOzsKLSsgICAgICAqKQotKwls aWJvYmo9Ci0rCW9iaj0iJG91dHB1dCIKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgIyBE ZWxldGUgdGhlIG9sZCBvYmplY3RzLgotKyAgICAgICRydW4gJHJtICRvYmogJGxpYm9iagotKwot KyAgICAgICMgT2JqZWN0cyBmcm9tIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFRoaXMgYXNzdW1l cwotKyAgICAgICMgc2luZ2xlLXZlcnNpb24gY29udmVuaWVuY2UgbGlicmFyaWVzLiAgV2hlbmV2 ZXIgd2UgY3JlYXRlCi0rICAgICAgIyBkaWZmZXJlbnQgb25lcyBmb3IgUElDL25vbi1QSUMsIHRo aXMgd2UnbGwgaGF2ZSB0byBkdXBsaWNhdGUKLSsgICAgICAjIHRoZSBleHRyYWN0aW9uLgotKyAg ICAgIHJlbG9hZF9jb252X29ianM9Ci0rICAgICAgZ2VudG9wPQotKyAgICAgICMgcmVsb2FkX2Nt ZHMgcnVucyAkTEQgZGlyZWN0bHksIHNvIGxldCB1cyBnZXQgcmlkIG9mCi0rICAgICAgIyAtV2wg ZnJvbSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBhbmQgaG9wZSB3ZSBjYW4gZ2V0IGJ5IHdpdGgK LSsgICAgICAjIHR1cm5pbmcgY29tbWEgaW50byBzcGFjZS4uCi0rICAgICAgd2w9Ci0rCi0rICAg ICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgotKwlpZiB0ZXN0IC1uICIkd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgZXZhbCB0bXBfd2hvbGVfYXJjaGl2ZV9mbGFn cz1cIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCi0rCSAgcmVsb2FkX2NvbnZfb2Jqcz0kcmVs b2FkX29ianNcIGAkZWNobyAiWCR0bXBfd2hvbGVfYXJjaGl2ZV9mbGFncyIgfCAkWHNlZCAtZSAn c3wsfCB8ZydgCi0rCWVsc2UKLSsJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b2JqfXgiCi0r CSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRyYWN0X2Fy Y2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCi0rCSAgcmVsb2FkX2NvbnZfb2Jqcz0iJHJlbG9h ZF9vYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKwlmaQotKyAgICAgIGZpCi0r Ci0rICAgICAgIyBDcmVhdGUgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0rICAgICAgcmVsb2FkX29i anM9IiRvYmpzJG9sZF9kZXBsaWJzICJgJGVjaG8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNl ZCAtZSAnL1wuJyR7bGliZXh0fSQnL2QnIC1lICcvXC5saWIkL2QnIC1lICIkbG8ybyIgfCAkTkwy U1BgIiAkcmVsb2FkX2NvbnZfb2JqcyIgIyMjIHRlc3RzdWl0ZTogc2tpcCBuZXN0ZWQgcXVvdGlu ZyB0ZXN0Ci0rCi0rICAgICAgb3V0cHV0PSIkb2JqIgotKyAgICAgIGNtZHM9JHJlbG9hZF9jbWRz Ci0rICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rICAgICAgZm9yIGNtZCBpbiAkY21k czsgZG8KLSsJSUZTPSIkc2F2ZV9pZnMiCi0rCWV2YWwgY21kPVwiJGNtZFwiCi0rCSRzaG93ICIk Y21kIgotKwkkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQgJD8KLSsgICAgICBkb25lCi0rICAgICAg SUZTPSIkc2F2ZV9pZnMiCi0rCi0rICAgICAgIyBFeGl0IGlmIHdlIGFyZW4ndCBkb2luZyBhIGxp YnJhcnkgb2JqZWN0IGZpbGUuCi0rICAgICAgaWYgdGVzdCAteiAiJGxpYm9iaiI7IHRoZW4KLSsJ aWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KLSsJICAkc2hvdyAiJHtybX1yICRnZW50b3AiCi0r CSAgJHJ1biAke3JtfXIgJGdlbnRvcAotKwlmaQotKwotKwlleGl0ICRFWElUX1NVQ0NFU1MKLSsg ICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsg dGhlbgotKwlpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgotKwkgICRzaG93ICIke3JtfXIgJGdl bnRvcCIKLSsJICAkcnVuICR7cm19ciAkZ2VudG9wCi0rCWZpCi0rCi0rCSMgQ3JlYXRlIGFuIGlu dmFsaWQgbGlidG9vbCBvYmplY3QgaWYgbm8gUElDLCBzbyB0aGF0IHdlIGRvbid0Ci0rCSMgYWNj aWRlbnRhbGx5IGxpbmsgaXQgaW50byBhIHByb2dyYW0uCi0rCSMgJHNob3cgImVjaG8gdGltZXN0 YW1wID4gJGxpYm9iaiIKLSsJIyAkcnVuIGV2YWwgImVjaG8gdGltZXN0YW1wID4gJGxpYm9iaiIg fHwgZXhpdCAkPwotKwlleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgICBmaQotKwotKyAgICAgIGlm IHRlc3QgLW4gIiRwaWNfZmxhZyIgfHwgdGVzdCAiJHBpY19tb2RlIiAhPSBkZWZhdWx0OyB0aGVu Ci0rCSMgT25seSBkbyBjb21tYW5kcyBpZiB3ZSByZWFsbHkgaGF2ZSBkaWZmZXJlbnQgUElDIG9i amVjdHMuCi0rCXJlbG9hZF9vYmpzPSIkbGlib2JqcyAkcmVsb2FkX2NvbnZfb2JqcyIKLSsJb3V0 cHV0PSIkbGlib2JqIgotKwljbWRzPSRyZWxvYWRfY21kcwotKwlzYXZlX2lmcz0iJElGUyI7IElG Uz0nficKLSsJZm9yIGNtZCBpbiAkY21kczsgZG8KLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsJICBl dmFsIGNtZD1cIiRjbWRcIgotKwkgICRzaG93ICIkY21kIgotKwkgICRydW4gZXZhbCAiJGNtZCIg fHwgZXhpdCAkPwotKwlkb25lCi0rCUlGUz0iJHNhdmVfaWZzIgotKyAgICAgIGZpCi0rCi0rICAg ICAgaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KLSsJJHNob3cgIiR7cm19ciAkZ2VudG9wIgot KwkkcnVuICR7cm19ciAkZ2VudG9wCi0rICAgICAgZmkKLSsKLSsgICAgICBleGl0ICRFWElUX1NV Q0NFU1MKLSsgICAgICA7OwotKwotKyAgICBwcm9nKQotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsJ KmN5Z3dpbiopIG91dHB1dD1gJGVjaG8gJG91dHB1dCB8ICR7U0VEfSAtZSAncywuZXhlJCwsO3Ms JCwuZXhlLCdgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIGlmIHRlc3QgLW4gIiR2aW5mbyI7IHRo ZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25v cmVkIGZvciBwcm9ncmFtcyIgMT4mMgotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAtbiAi JHJlbGVhc2UiOyB0aGVuCi0rCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJlbGVhc2Un IGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIiAxPiYyCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0 ZXN0ICIkcHJlbG9hZCIgPSB5ZXM7IHRoZW4KLSsJaWYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9 IHVua25vd24gJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiA9IHVua25vd24gJiYKLSsJICAgdGVzdCAi JGRsb3Blbl9zZWxmX3N0YXRpYyIgPSB1bmtub3duOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFt ZTogd2FybmluZzogXGBBQ19MSUJUT09MX0RMT1BFTicgbm90IHVzZWQuIEFzc3VtaW5nIG5vIGRs b3BlbiBzdXBwb3J0LiIKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAgIGNhc2UgJGhvc3QgaW4K LSsgICAgICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCi0rCSMgT24gUmhhcHNv ZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IGlzIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0rCWNvbXBp bGVfZGVwbGlicz1gJGVjaG8gIlggJGNvbXBpbGVfZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxj IC8gLWZyYW1ld29yayBTeXN0ZW0gLydgCi0rCWZpbmFsaXplX2RlcGxpYnM9YCRlY2hvICJYICRm aW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyAtZnJhbWV3b3JrIFN5c3RlbSAv J2AKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICpk YXJ3aW4qKQotKyAgICAgICAgIyBEb24ndCBhbGxvdyBsYXp5IGxpbmtpbmcsIGl0IGJyZWFrcyBD KysgZ2xvYmFsIGNvbnN0cnVjdG9ycwotKyAgICAgICAgaWYgdGVzdCAiJHRhZ25hbWUiID0gQ1hY IDsgdGhlbgotKyAgICAgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICR7d2x9 LWJpbmRfYXRfbG9hZCIKLSsgICAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21t YW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICAg IGVzYWMKLSsKLSsKLSsgICAgICAjIG1vdmUgbGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2lu Y2lkZSB3aXRoIHBhdGhzIHRvIG5vdCB5ZXQKLSsgICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMg dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2ggbGlzdAotKyAgICAgIG5ld19s aWJzPQotKyAgICAgIGZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCi0rCWNhc2UgIiAkbmV3 X2xpYnMgIiBpbgotKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7Ci0rCSopCi0rCSAgY2FzZSAi ICRjb21waWxlX2RlcGxpYnMgIiBpbgotKwkgICoiIC1MJHBhdGgvJG9iamRpciAiKikKLSsJICAg IG5ld19saWJzPSIkbmV3X2xpYnMgLUwkcGF0aC8kb2JqZGlyIiA7OwotKwkgIGVzYWMKLSsJICA7 OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIGZvciBkZXBsaWIgaW4gJGNvbXBpbGVfZGVw bGliczsgZG8KLSsJY2FzZSAkZGVwbGliIGluCi0rCS1MKikKLSsJICBjYXNlICIgJG5ld19saWJz ICIgaW4KLSsJICAqIiAkZGVwbGliICIqKSA7OwotKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMg JGRlcGxpYiIgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAk ZGVwbGliIiA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIGNvbXBpbGVfZGVwbGlicz0i JG5ld19saWJzIgotKwotKwotKyAgICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFu ZCAkY29tcGlsZV9kZXBsaWJzIgotKyAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9j b21tYW5kICRmaW5hbGl6ZV9kZXBsaWJzIgotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCR4 cnBhdGgiOyB0aGVuCi0rCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywg dGhlbiBhZGQgdGhlbS4KLSsJZm9yIGxpYmRpciBpbiAkcnBhdGggJHhycGF0aDsgZG8KLSsJICAj IFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAtcnBhdGguCi0rCSAgY2FzZSAiJGZpbmFsaXplX3Jw YXRoICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIGZpbmFsaXplX3JwYXRoPSIk ZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsgICAgICBmaQot KwotKyAgICAgICMgTm93IGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhzCi0rICAgICAgcnBhdGg9 Ci0rICAgICAgaGFyZGNvZGVfbGliZGlycz0KLSsgICAgICBmb3IgbGliZGlyIGluICRjb21waWxl X3JwYXRoICRmaW5hbGl6ZV9ycGF0aDsgZG8KLSsJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IiOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4K LSsJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKLSsJICAgIGVsc2UKLSsJICAgICAg IyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgotKwkgICAgICBjYXNlICRoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciBpbgotKwkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCi0rCQk7OwotKwkgICAgICAqKQotKwkJaGFyZGNv ZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRs aWJkaXIiCi0rCQk7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgIGV2 YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsJICAgIHJwYXRoPSIkcnBh dGggJGZsYWciCi0rCSAgZmkKLSsJZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCi0r CSAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgotKwkgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgKikg cGVybV9ycGF0aD0iJHBlcm1fcnBhdGggJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWZpCi0rCWNh c2UgJGhvc3QgaW4KLSsJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0q LW9zMiopCi0rCSAgdGVzdGJpbmRpcj1gJGVjaG8gIlgkbGliZGlyIiB8ICRYc2VkIC1lICdzKi9s aWIkKi9iaW4qJ2AKLSsJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KLSsJICAqIjokbGliZGly OiIqKSA7OwotKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiRsaWJkaXIiOzsK LSsJICBlc2FjCi0rCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCi0rCSAgKiI6JHRlc3RiaW5k aXI6IiopIDs7Ci0rCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JHRlc3RiaW5k aXIiOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICAjIFN1 YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgotKyAgICAgIGlm IHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgotKwkgdGVzdCAtbiAiJGhh cmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCi0rCWV2 YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKyAgICAgIGZpCi0rICAg ICAgY29tcGlsZV9ycGF0aD0iJHJwYXRoIgotKwotKyAgICAgIHJwYXRoPQotKyAgICAgIGhhcmRj b2RlX2xpYmRpcnM9Ci0rICAgICAgZm9yIGxpYmRpciBpbiAkZmluYWxpemVfcnBhdGg7IGRvCi0r CWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgotKwkgIGlmIHRl c3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgotKwkgICAgaWYgdGVzdCAt eiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9IiRs aWJkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUg bGliZGlycy4KLSsJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29k ZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KLSsJICAgICAgKiIkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQot KwkJOzsKLSsJICAgICAgKikKLSsJCWhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJkaXJz JGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgotKwkJOzsKLSsJICAgICAgZXNhYwot KwkgICAgZmkKLSsJICBlbHNlCi0rCSAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY1wiCi0rCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgotKwkgIGZpCi0rCWVsaWYgdGVz dCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgotKwkgIGNhc2UgIiRmaW5hbGl6ZV9wZXJtX3JwYXRo ICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIGZpbmFsaXplX3Blcm1fcnBhdGg9 IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRsaWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlmaQotKyAgICAg IGRvbmUKLSsgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhl IHJwYXRoLgotKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAm JgotKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCWxpYmRpcj0iJGhhcmRj b2RlX2xpYmRpcnMiCi0rCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNc IgotKyAgICAgIGZpCi0rICAgICAgZmluYWxpemVfcnBhdGg9IiRycGF0aCIKLSsKLSsgICAgICBp ZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhl bgotKwkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0cyBpbnRvIHN0YW5kYXJkIG9i amVjdHMuCi0rCWNvbXBpbGVfY29tbWFuZD1gJGVjaG8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRT UDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rCWZpbmFsaXplX2NvbW1hbmQ9YCRl Y2hvICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICRO TDJTUGAKLSsgICAgICBmaQotKwotKyAgICAgIGRsc3ltcz0KLSsgICAgICBpZiB0ZXN0IC1uICIk ZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgotKwlpZiB0 ZXN0IC1uICIkTk0iICYmIHRlc3QgLW4gIiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rCSAg ZGxzeW1zPSIke291dHB1dG5hbWV9Uy5jIgotKwllbHNlCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTog bm90IGNvbmZpZ3VyZWQgdG8gZXh0cmFjdCBnbG9iYWwgc3ltYm9scyBmcm9tIGRscHJlb3BlbmVk IGZpbGVzIiAxPiYyCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkZGxz eW1zIjsgdGhlbgotKwljYXNlICRkbHN5bXMgaW4KLSsJIiIpIDs7Ci0rCSouYykKLSsJICAjIERp c2NvdmVyIHRoZSBubGlzdCBvZiBlYWNoIG9mIHRoZSBkbGZpbGVzLgotKwkgIG5saXN0PSIkb3V0 cHV0X29iamRpci8ke291dHB1dG5hbWV9Lm5tIgotKwotKwkgICRzaG93ICIkcm0gJG5saXN0ICR7 bmxpc3R9UyAke25saXN0fVQiCi0rCSAgJHJ1biAkcm0gIiRubGlzdCIgIiR7bmxpc3R9UyIgIiR7 bmxpc3R9VCIKLSsKLSsJICAjIFBhcnNlIHRoZSBuYW1lIGxpc3QgaW50byBhIHNvdXJjZSBmaWxl LgotKwkgICRzaG93ICJjcmVhdGluZyAkb3V0cHV0X29iamRpci8kZGxzeW1zIgotKwotKwkgIHRl c3QgLXogIiRydW4iICYmICRlY2hvID4gIiRvdXRwdXRfb2JqZGlyLyRkbHN5bXMiICJcCi0rLyog JGRsc3ltcyAtIHN5bWJvbCByZXNvbHV0aW9uIHRhYmxlIGZvciBcYCRvdXRwdXRuYW1lJyBkbHN5 bSBlbXVsYXRpb24uICovCi0rLyogR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIC0gR05VICRQQUNLQUdF ICRWRVJTSU9OJFRJTUVTVEFNUCAqLwotKwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiBc IkNcIiB7Ci0rI2VuZGlmCi0rCi0rLyogUHJldmVudCB0aGUgb25seSBraW5kIG9mIGRlY2xhcmF0 aW9uIGNvbmZsaWN0cyB3ZSBjYW4gbWFrZS4gKi8KLSsjZGVmaW5lIGx0X3ByZWxvYWRlZF9zeW1i b2xzIHNvbWVfb3RoZXJfc3ltYm9sCi0rCi0rLyogRXh0ZXJuYWwgc3ltYm9sIGRlY2xhcmF0aW9u cyBmb3IgdGhlIGNvbXBpbGVyLiAqL1wKLSsiCi0rCi0rCSAgaWYgdGVzdCAiJGRsc2VsZiIgPSB5 ZXM7IHRoZW4KLSsJICAgICRzaG93ICJnZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRvdXRw dXQnIgotKwotKwkgICAgdGVzdCAteiAiJHJ1biIgJiYgJGVjaG8gJzogQFBST0dSQU1AICcgPiAi JG5saXN0IgotKwotKwkgICAgIyBBZGQgb3VyIG93biBwcm9ncmFtIG9iamVjdHMgdG8gdGhlIHN5 bWJvbCBsaXN0LgotKwkgICAgcHJvZ2ZpbGVzPWAkZWNobyAiWCRvYmpzJG9sZF9kZXBsaWJzIiB8 ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rCSAgICBmb3IgYXJnIGluICRw cm9nZmlsZXM7IGRvCi0rCSAgICAgICRzaG93ICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMg ZnJvbSBcYCRhcmcnIgotKwkgICAgICAkcnVuIGV2YWwgIiROTSAkYXJnIHwgJGdsb2JhbF9zeW1i b2xfcGlwZSA+PiAnJG5saXN0JyIKLSsJICAgIGRvbmUKLSsKLSsJICAgIGlmIHRlc3QgLW4gIiRl eGNsdWRlX2V4cHN5bXMiOyB0aGVuCi0rCSAgICAgICRydW4gZXZhbCAnJEVHUkVQIC12ICIgKCRl eGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCi0rCSAgICAgICRydW4gZXZh bCAnJG12ICIkbmxpc3QiVCAiJG5saXN0IicKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0ZXN0IC1u ICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSAgICAgICRydW4gZXZhbCAnJEVHUkVQ IC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkbmxpc3QiID4gIiRubGlzdCJUJwotKwkgICAg ICAkcnVuIGV2YWwgJyRtdiAiJG5saXN0IlQgIiRubGlzdCInCi0rCSAgICBmaQotKwotKwkgICAg IyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKLSsJICAgIGlmIHRlc3QgLXog IiRleHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJICAgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRf b2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIKLSsJICAgICAgJHJ1biAkcm0gJGV4cG9ydF9zeW1ib2xz Ci0rCSAgICAgICRydW4gZXZhbCAiJHtTRUR9IC1uIC1lICcvXjogQFBST0dSQU1AICQvZCcgLWUg J3MvXi4qIFwoLipcKSQvXDEvcCcgIic8ICIkbmxpc3QiID4gIiRleHBvcnRfc3ltYm9scyInCi0r ICAgICAgICAgICAgICBjYXNlICRob3N0IGluCi0rICAgICAgICAgICAgICAqY3lnd2luKiB8ICpt aW5ndyogKQotKwkgICAgICAgICRydW4gZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9v YmpkaXIvJG91dHB1dG5hbWUuZGVmIicKLSsJCSRydW4gZXZhbCAnY2F0ICIkZXhwb3J0X3N5bWJv bHMiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwotKyAgICAgICAgICAgICAg ICA7OwotKyAgICAgICAgICAgICAgZXNhYwotKwkgICAgZWxzZQotKwkgICAgICAkcnVuIGV2YWwg IiR7U0VEfSAtZSAncy9cKFtdLlsqXiRdXCkvXFxcXFwxL2cnIC1lICdzL14vIC8nIC1lICdzLyQv JC8nIicgPCAiJGV4cG9ydF9zeW1ib2xzIiA+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5l eHAiJwotKwkgICAgICAkcnVuIGV2YWwgJ2dyZXAgLWYgIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRu YW1lLmV4cCIgPCAiJG5saXN0IiA+ICIkbmxpc3QiVCcKLSsJICAgICAgJHJ1biBldmFsICdtdiAi JG5saXN0IlQgIiRubGlzdCInCi0rICAgICAgICAgICAgICBjYXNlICRob3N0IGluCi0rICAgICAg ICAgICAgICAqY3lnd2luKiB8ICptaW5ndyogKQotKwkgICAgICAgICRydW4gZXZhbCAiZWNobyBF WFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKLSsJCSRydW4gZXZh bCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwotKyAg ICAgICAgICAgICAgICA7OwotKyAgICAgICAgICAgICAgZXNhYwotKwkgICAgZmkKLSsJICBmaQot KwotKwkgIGZvciBhcmcgaW4gJGRscHJlZmlsZXM7IGRvCi0rCSAgICAkc2hvdyAiZXh0cmFjdGlu ZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkYXJnJyIKLSsJICAgIG5hbWU9YCRlY2hvICIkYXJn IiB8ICR7U0VEfSAtZSAncyVeLiovJSUnYAotKwkgICAgJHJ1biBldmFsICckZWNobyAiOiAkbmFt ZSAiID4+ICIkbmxpc3QiJwotKwkgICAgJHJ1biBldmFsICIkTk0gJGFyZyB8ICRnbG9iYWxfc3lt Ym9sX3BpcGUgPj4gJyRubGlzdCciCi0rCSAgZG9uZQotKwotKwkgIGlmIHRlc3QgLXogIiRydW4i OyB0aGVuCi0rCSAgICAjIE1ha2Ugc3VyZSB3ZSBoYXZlIGF0IGxlYXN0IGFuIGVtcHR5IGZpbGUu Ci0rCSAgICB0ZXN0IC1mICIkbmxpc3QiIHx8IDogPiAiJG5saXN0IgotKwotKwkgICAgaWYgdGVz dCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAgICAgJEVHUkVQIC12ICIgKCRleGNs dWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQKLSsJICAgICAgJG12ICIkbmxpc3Qi VCAiJG5saXN0IgotKwkgICAgZmkKLSsKLSsJICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5 aW5nIHRoZSBvdXRwdXQuCi0rCSAgICBpZiBncmVwIC12ICJeOiAiIDwgIiRubGlzdCIgfAotKwkJ aWYgc29ydCAtayAzIDwvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCQkgIHNvcnQg LWsgMwotKwkJZWxzZQotKwkJICBzb3J0ICsyCi0rCQlmaSB8Ci0rCQl1bmlxID4gIiRubGlzdCJT OyB0aGVuCi0rCSAgICAgIDoKLSsJICAgIGVsc2UKLSsJICAgICAgZ3JlcCAtdiAiXjogIiA8ICIk bmxpc3QiID4gIiRubGlzdCJTCi0rCSAgICBmaQotKwotKwkgICAgaWYgdGVzdCAtZiAiJG5saXN0 IlM7IHRoZW4KLSsJICAgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxp c3QiUyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyInCi0rCSAgICBlbHNlCi0rCSAgICAgICRl Y2hvICcvKiBOT05FICovJyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIKLSsJICAgIGZpCi0r Ci0rCSAgICAkZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKLSsKLSsjdW5kZWYg bHRfcHJlbG9hZGVkX3N5bWJvbHMKLSsKLSsjaWYgZGVmaW5lZCAoX19TVERDX18pICYmIF9fU1RE Q19fCi0rIyBkZWZpbmUgbHRfcHRyIHZvaWQgKgotKyNlbHNlCi0rIyBkZWZpbmUgbHRfcHRyIGNo YXIgKgotKyMgZGVmaW5lIGNvbnN0Ci0rI2VuZGlmCi0rCi0rLyogVGhlIG1hcHBpbmcgYmV0d2Vl biBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICovCi0rIgotKwotKwkgICAgY2FzZSAkaG9zdCBp bgotKwkgICAgKmN5Z3dpbiogfCAqbWluZ3cqICkKLSsJICAkZWNobyA+PiAiJG91dHB1dF9vYmpk aXIvJGRsc3ltcyIgIlwKLSsvKiBEQVRBIGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMyIGNhbid0 IGJlIGNvbnN0LCBiZWNhdXNlCi0rICAgcnVudGltZSByZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVk IC0tIHNlZSBsZCdzIGRvY3VtZW50YXRpb24KLSsgICBvbiBwc2V1ZG8tcmVsb2NzICovCi0rc3Ry dWN0IHsKLSsiCi0rCSAgICAgIDs7Ci0rCSAgICAqICkKLSsJICAkZWNobyA+PiAiJG91dHB1dF9v YmpkaXIvJGRsc3ltcyIgIlwKLStjb25zdCBzdHJ1Y3QgewotKyIKLSsJICAgICAgOzsKLSsJICAg IGVzYWMKLSsKLSsKLSsJICAkZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKLSsg IGNvbnN0IGNoYXIgKm5hbWU7Ci0rICBsdF9wdHIgYWRkcmVzczsKLSt9Ci0rbHRfcHJlbG9hZGVk X3N5bWJvbHNbXSA9Ci0re1wKLSsiCi0rCi0rCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzcyIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIKLSsK LSsJICAgICRlY2hvID4+ICIkb3V0cHV0X29iamRpci8kZGxzeW1zIiAiXAotKyAgezAsIChsdF9w dHIpIDB9Ci0rfTsKLSsKLSsvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJT RCBsaW5rZXIgKi8KLSsjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECi0rc3RhdGljIGNvbnN0IHZv aWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKLSsgIHJldHVybiBsdF9wcmVsb2FkZWRfc3ltYm9s czsKLSt9Ci0rI2VuZGlmCi0rCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZlwKLSsi Ci0rCSAgZmkKLSsKLSsJICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9Ci0rCSAgY2FzZSAkaG9zdCBp bgotKwkgICMgY29tcGlsaW5nIHRoZSBzeW1ib2wgdGFibGUgZmlsZSB3aXRoIHBpY19mbGFnIHdv cmtzIGFyb3VuZAotKwkgICMgYSBGcmVlQlNEIGJ1ZyB0aGF0IGNhdXNlcyBwcm9ncmFtcyB0byBj cmFzaCB3aGVuIC1sbSBpcwotKwkgICMgbGlua2VkIGJlZm9yZSBhbnkgb3RoZXIgUElDIG9iamVj dC4gIEJ1dCB3ZSBtdXN0IG5vdCB1c2UKLSsJICAjIHBpY19mbGFnIHdoZW4gbGlua2luZyB3aXRo IC1zdGF0aWMuICBUaGUgcHJvYmxlbSBleGlzdHMgaW4KLSsJICAjIEZyZWVCU0QgMi4yLjYgYW5k IGlzIGZpeGVkIGluIEZyZWVCU0QgMy4xLgotKwkgICotKi1mcmVlYnNkMip8Ki0qLWZyZWVic2Qz LjAqfCotKi1mcmVlYnNkZWxmMy4wKikKLSsJICAgIGNhc2UgIiRjb21waWxlX2NvbW1hbmQgIiBp bgotKwkgICAgKiIgLXN0YXRpYyAiKikgOzsKLSsJICAgICopIHBpY19mbGFnX2Zvcl9zeW10YWJs ZT0iICRwaWNfZmxhZyAtREZSRUVCU0RfV09SS0FST1VORCI7OwotKwkgICAgZXNhYzs7Ci0rCSAg Ki0qLWhwdXgqKQotKwkgICAgY2FzZSAiJGNvbXBpbGVfY29tbWFuZCAiIGluCi0rCSAgICAqIiAt c3RhdGljICIqKSA7OwotKwkgICAgKikgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFn Ijs7Ci0rCSAgICBlc2FjCi0rCSAgZXNhYwotKwotKwkgICMgTm93IGNvbXBpbGUgdGhlIGR5bmFt aWMgc3ltYm9sIGZpbGUuCi0rCSAgJHNob3cgIihjZCAkb3V0cHV0X29iamRpciAmJiAkTFRDQyAg JExUQ0ZMQUdTIC1jJG5vX2J1aWx0aW5fZmxhZyRwaWNfZmxhZ19mb3Jfc3ltdGFibGUgXCIkZGxz eW1zXCIpIgotKwkgICRydW4gZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRMVENDICAkTFRD RkxBR1MgLWMkbm9fYnVpbHRpbl9mbGFnJHBpY19mbGFnX2Zvcl9zeW10YWJsZSAiJGRsc3ltcyIp JyB8fCBleGl0ICQ/Ci0rCi0rCSAgIyBDbGVhbiB1cCB0aGUgZ2VuZXJhdGVkIGZpbGVzLgotKwkg ICRzaG93ICIkcm0gJG91dHB1dF9vYmpkaXIvJGRsc3ltcyAkbmxpc3QgJHtubGlzdH1TICR7bmxp c3R9VCIKLSsJICAkcnVuICRybSAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIiRubGlzdCIgIiR7 bmxpc3R9UyIgIiR7bmxpc3R9VCIKLSsKLSsJICAjIFRyYW5zZm9ybSB0aGUgc3ltYm9sIGZpbGUg aW50byB0aGUgY29ycmVjdCBuYW1lLgotKyAgICAgICAgICBjYXNlICRob3N0IGluCi0rICAgICAg ICAgICpjeWd3aW4qIHwgKm1pbmd3KiApCi0rICAgICAgICAgICAgaWYgdGVzdCAtZiAiJG91dHB1 dF9vYmpkaXIvJHtvdXRwdXRuYW1lfS5kZWYiIDsgdGhlbgotKyAgICAgICAgICAgICAgY29tcGls ZV9jb21tYW5kPWAkZWNobyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUg InMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX0uZGVmICRvdXRwdXRfb2Jq ZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAotKyAgICAgICAgICAgICAg ZmluYWxpemVfY29tbWFuZD1gJGVjaG8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAk WHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfS5kZWYgJG91 dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9JSIgfCAkTkwyU1BgCi0rICAgICAg ICAgICAgZWxzZQotKyAgICAgICAgICAgICAgY29tcGlsZV9jb21tYW5kPWAkZWNobyAiWCRjb21w aWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2Jq ZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAotKyAgICAgICAgICAgICAg ZmluYWxpemVfY29tbWFuZD1gJGVjaG8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAk WHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpl eHR9JSIgfCAkTkwyU1BgCi0rICAgICAgICAgICAgIGZpCi0rICAgICAgICAgICAgOzsKLSsgICAg ICAgICAgKiApCi0rICAgICAgICAgICAgY29tcGlsZV9jb21tYW5kPWAkZWNobyAiWCRjb21waWxl X2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGly LyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAotKyAgICAgICAgICAgIGZpbmFs aXplX2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQg LWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUi IHwgJE5MMlNQYAotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgIGVzYWMKLSsJICA7OwotKwkq KQotKwkgICRlY2hvICIkbW9kZW5hbWU6IHVua25vd24gc3VmZml4IGZvciBcYCRkbHN5bXMnIiAx PiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGVsc2UK LSsJIyBXZSBrZWVwIGdvaW5nIGp1c3QgaW4gY2FzZSB0aGUgdXNlciBkaWRuJ3QgcmVmZXIgdG8K LSsJIyBsdF9wcmVsb2FkZWRfc3ltYm9scy4gIFRoZSBsaW5rZXIgd2lsbCBmYWlsIGlmIGdsb2Jh bF9zeW1ib2xfcGlwZQotKwkjIHJlYWxseSB3YXMgcmVxdWlyZWQuCi0rCi0rCSMgTnVsbGlmeSB0 aGUgc3ltYm9sIGZpbGUuCi0rCWNvbXBpbGVfY29tbWFuZD1gJGVjaG8gIlgkY29tcGlsZV9jb21t YW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAlJSIgfCAkTkwyU1BgCi0rCWZp bmFsaXplX2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhz ZWQgLWUgInMlIEBTWU1GSUxFQCUlIiB8ICROTDJTUGAKLSsgICAgICBmaQotKwotKyAgICAgIGlm IHRlc3QgIiRuZWVkX3JlbGluayIgPSBubyB8fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAh PSB5ZXM7IHRoZW4KLSsJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgot Kwljb21waWxlX2NvbW1hbmQ9YCRlY2hvICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkU1AyTkwgfCAk WHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJyB8ICROTDJTUGAKLSsJbGlua19jb21t YW5kPSIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCi0rCi0rCSMgV2UgaGF2ZSBubyB1 bmluc3RhbGxlZCBsaWJyYXJ5IGRlcGVuZGVuY2llcywgc28gZmluYWxpemUgcmlnaHQgbm93Lgot Kwkkc2hvdyAiJGxpbmtfY29tbWFuZCIKLSsJJHJ1biBldmFsICIkbGlua19jb21tYW5kIgotKwll eGl0X3N0YXR1cz0kPwotKwotKwkjIERlbGV0ZSB0aGUgZ2VuZXJhdGVkIGZpbGVzLgotKwlpZiB0 ZXN0IC1uICIkZGxzeW1zIjsgdGhlbgotKwkgICRzaG93ICIkcm0gJG91dHB1dF9vYmpkaXIvJHtv dXRwdXRuYW1lfVMuJHtvYmpleHR9IgotKwkgICRydW4gJHJtICIkb3V0cHV0X29iamRpci8ke291 dHB1dG5hbWV9Uy4ke29iamV4dH0iCi0rCWZpCi0rCi0rCWV4aXQgJGV4aXRfc3RhdHVzCi0rICAg ICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsJIyBX ZSBzaG91bGQgc2V0IHRoZSBzaGxpYnBhdGhfdmFyCi0rCXJwYXRoPQotKwlmb3IgZGlyIGluICR0 ZW1wX3JwYXRoOyBkbwotKwkgIGNhc2UgJGRpciBpbgotKwkgIFtcXC9dKiB8IFtBLVphLXpdOltc XC9dKikKLSsJICAgICMgQWJzb2x1dGUgcGF0aC4KLSsJICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIK LSsJICAgIDs7Ci0rCSAgKikKLSsJICAgICMgUmVsYXRpdmUgcGF0aDogYWRkIGEgdGhpc2RpciBl bnRyeS4KLSsJICAgIHJwYXRoPSIkcnBhdGhcJHRoaXNkaXIvJGRpcjoiCi0rCSAgICA7OwotKwkg IGVzYWMKLSsJZG9uZQotKwl0ZW1wX3JwYXRoPSIkcnBhdGgiCi0rICAgICAgZmkKLSsKLSsgICAg ICBpZiB0ZXN0IC1uICIkY29tcGlsZV9zaGxpYnBhdGgkZmluYWxpemVfc2hsaWJwYXRoIjsgdGhl bgotKwljb21waWxlX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGNvbXBpbGVfc2hsaWJwYXRo JGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAkY29tcGlsZV9jb21tYW5kIgot KyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAtbiAiJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4K LSsJZmluYWxpemVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9XCIkZmluYWxpemVfc2hsaWJwYXRo XCQkc2hsaWJwYXRoX3ZhclwiICRmaW5hbGl6ZV9jb21tYW5kIgotKyAgICAgIGZpCi0rCi0rICAg ICAgY29tcGlsZV92YXI9Ci0rICAgICAgZmluYWxpemVfdmFyPQotKyAgICAgIGlmIHRlc3QgLW4g IiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJaWYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVuCi0r CSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KLSsJICBycGF0aD0KLSsJICBmb3Ig ZGlyIGluICRwZXJtX3JwYXRoOyBkbwotKwkgICAgcnBhdGg9IiRycGF0aCRkaXI6IgotKwkgIGRv bmUKLSsJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJc IiAiCi0rCWZpCi0rCWlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9wZXJtX3JwYXRoIjsgdGhlbgotKwkg ICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCi0rCSAgcnBhdGg9Ci0rCSAgZm9yIGRp ciBpbiAkZmluYWxpemVfcGVybV9ycGF0aDsgZG8KLSsJICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIK LSsJICBkb25lCi0rCSAgZmluYWxpemVfdmFyPSIkcnVucGF0aF92YXI9XCIkcnBhdGhcJCRydW5w YXRoX3ZhclwiICIKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgIiRub19pbnN0 YWxsIiA9IHllczsgdGhlbgotKwkjIFdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGEgd3JhcHBlciBz Y3JpcHQuCi0rCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21w aWxlX3JwYXRoIgotKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCi0r CWxpbmtfY29tbWFuZD1gJGVjaG8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQ VVRAJSciJG91dHB1dCInJWcnYAotKwkjIERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlLgotKwkk cnVuICRybSAkb3V0cHV0Ci0rCSMgTGluayB0aGUgZXhlY3V0YWJsZSBhbmQgZXhpdAotKwkkc2hv dyAiJGxpbmtfY29tbWFuZCIKLSsJJHJ1biBldmFsICIkbGlua19jb21tYW5kIiB8fCBleGl0ICQ/ Ci0rCWV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAiJGhh cmRjb2RlX2FjdGlvbiIgPSByZWxpbms7IHRoZW4KLSsJIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBu b3Qgc3VwcG9ydGVkCi0rCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFu ZCRjb21waWxlX3JwYXRoIgotKwlyZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6 ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwotKwkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5n OiB0aGlzIHBsYXRmb3JtIGRvZXMgbm90IGxpa2UgdW5pbnN0YWxsZWQgc2hhcmVkIGxpYnJhcmll cyIgMT4mMgotKwkkZWNobyAiJG1vZGVuYW1lOiBcYCRvdXRwdXQnIHdpbGwgYmUgcmVsaW5rZWQg ZHVyaW5nIGluc3RhbGxhdGlvbiIgMT4mMgotKyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGZhc3Rf aW5zdGFsbCIgIT0gbm87IHRoZW4KLSsJICBsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkY29t cGlsZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwkgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwi ID0geWVzOyB0aGVuCi0rCSAgICByZWxpbmtfY29tbWFuZD1gJGVjaG8gIlgkY29tcGlsZV92YXIk Y29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiIHwgJFNQMk5MIHwgJFhzZWQgLWUgJ3MlQE9V VFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVnJyB8ICROTDJTUGAKLSsJICBlbHNlCi0rCSAgICAjIGZh c3RfaW5zdGFsbCBpcyBzZXQgdG8gbmVlZGxlc3MKLSsJICAgIHJlbGlua19jb21tYW5kPQotKwkg IGZpCi0rCWVsc2UKLSsJICBsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1h bmQkY29tcGlsZV9ycGF0aCIKLSsJICByZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5h bGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAg IyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotKyAgICAgIGxpbmtfY29t bWFuZD1gJGVjaG8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91 dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiJyVnJ2AKLSsKLSsgICAgICAjIERlbGV0ZSB0aGUgb2xk IG91dHB1dCBmaWxlcy4KLSsgICAgICAkcnVuICRybSAkb3V0cHV0ICRvdXRwdXRfb2JqZGlyLyRv dXRwdXRuYW1lICRvdXRwdXRfb2JqZGlyL2x0LSRvdXRwdXRuYW1lCi0rCi0rICAgICAgJHNob3cg IiRsaW5rX2NvbW1hbmQiCi0rICAgICAgJHJ1biBldmFsICIkbGlua19jb21tYW5kIiB8fCBleGl0 ICQ/Ci0rCi0rICAgICAgIyBOb3cgY3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdC4KLSsgICAgICAk c2hvdyAiY3JlYXRpbmcgJG91dHB1dCIKLSsKLSsgICAgICAjIFF1b3RlIHRoZSByZWxpbmsgY29t bWFuZCBmb3Igc2hpcHBpbmcuCi0rICAgICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsg dGhlbgotKwkjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVy IGJlaGF2aW9yCi0rCWZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbwot KwkgIGlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCi0rCSAgICByZWxpbmtf Y29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwgdW5zZXQgJHZhciB8fCB7ICR2 YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19jb21tYW5kIgotKwkgIGVsaWYgZXZhbCB2 YXJfdmFsdWU9XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVlIjsgdGhlbgotKwkgICAgcmVsaW5r X2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgotKwkgIGVsc2UK LSsJICAgIHZhcl92YWx1ZT1gJGVjaG8gIlgkdmFyX3ZhbHVlIiB8ICRYc2VkIC1lICIkc2VkX3F1 b3RlX3N1YnN0ImAKLSsJICAgIHJlbGlua19jb21tYW5kPSIkdmFyPVwiJHZhcl92YWx1ZVwiOyBl eHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgotKwkgIGZpCi0rCWRvbmUKLSsJcmVsaW5rX2Nv bW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlua19jb21tYW5kKSIKLSsJcmVsaW5rX2NvbW1hbmQ9YCRl Y2hvICJYJHJlbGlua19jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1 YnN0IiB8ICROTDJTUGAKLSsgICAgICBmaQotKwotKyAgICAgICMgUXVvdGUgJGVjaG8gZm9yIHNo aXBwaW5nLgotKyAgICAgIGlmIHRlc3QgIlgkZWNobyIgPSAiWCRTSEVMTCAkcHJvZ3BhdGggLS1m YWxsYmFjay1lY2hvIjsgdGhlbgotKwljYXNlICRwcm9ncGF0aCBpbgotKwlbXFwvXSogfCBbQS1a YS16XTpbXFwvXSopIHFlY2hvPSIkU0hFTEwgJHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7Owot KwkqKSBxZWNobz0iJFNIRUxMIGBwd2RgLyRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOzsKLSsJ ZXNhYwotKwlxZWNobz1gJGVjaG8gIlgkcWVjaG8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vi c3QiYAotKyAgICAgIGVsc2UKLSsJcWVjaG89YCRlY2hvICJYJGVjaG8iIHwgJFhzZWQgLWUgIiRz ZWRfcXVvdGVfc3Vic3QiYAotKyAgICAgIGZpCi0rCi0rICAgICAgIyBPbmx5IGFjdHVhbGx5IGRv IHRoaW5ncyBpZiBvdXIgcnVuIGNvbW1hbmQgaXMgbm9uLW51bGwuCi0rICAgICAgaWYgdGVzdCAt eiAiJHJ1biI7IHRoZW4KLSsJIyB3aW4zMiB3aWxsIHRoaW5rIHRoZSBzY3JpcHQgaXMgYSBiaW5h cnkgaWYgaXQgaGFzCi0rCSMgYSAuZXhlIHN1ZmZpeCwgc28gd2Ugc3RyaXAgaXQgb2ZmIGhlcmUu Ci0rCWNhc2UgJG91dHB1dCBpbgotKwkgICouZXhlKSBvdXRwdXQ9YCRlY2hvICRvdXRwdXR8JHtT RUR9ICdzLC5leGUkLCwnYCA7OwotKwllc2FjCi0rCSMgdGVzdCBmb3IgY3lnd2luIGJlY2F1c2Ug bXYgZmFpbHMgdy9vIC5leGUgZXh0ZW5zaW9ucwotKwljYXNlICRob3N0IGluCi0rCSAgKmN5Z3dp biopCi0rCSAgICBleGVleHQ9LmV4ZQotKwkgICAgb3V0cHV0bmFtZT1gJGVjaG8gJG91dHB1dG5h bWV8JHtTRUR9ICdzLC5leGUkLCwnYCA7OwotKwkgICopIGV4ZWV4dD0gOzsKLSsJZXNhYwotKwlj YXNlICRob3N0IGluCi0rCSAgKmN5Z3dpbiogfCAqbWluZ3cqICkKLSsgICAgICAgICAgICBvdXRw dXRfbmFtZT1gYmFzZW5hbWUgJG91dHB1dGAKLSsgICAgICAgICAgICBvdXRwdXRfcGF0aD1gZGly bmFtZSAkb3V0cHV0YAotKyAgICAgICAgICAgIGN3cmFwcGVyc291cmNlPSIkb3V0cHV0X3BhdGgv JG9iamRpci9sdC0kb3V0cHV0X25hbWUuYyIKLSsgICAgICAgICAgICBjd3JhcHBlcj0iJG91dHB1 dF9wYXRoLyRvdXRwdXRfbmFtZS5leGUiCi0rICAgICAgICAgICAgJHJtICRjd3JhcHBlcnNvdXJj ZSAkY3dyYXBwZXIKLSsgICAgICAgICAgICB0cmFwICIkcm0gJGN3cmFwcGVyc291cmNlICRjd3Jh cHBlcjsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKLSsKLSsJICAgIGNhdCA+ICRjd3JhcHBl cnNvdXJjZSA8PEVPRgotKwotKy8qICRjd3JhcHBlcnNvdXJjZSAtIHRlbXBvcmFyeSB3cmFwcGVy IGV4ZWN1dGFibGUgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKLSsgICBHZW5lcmF0ZWQgYnkgJFBS T0dSQU0gLSBHTlUgJFBBQ0tBR0UgJFZFUlNJT04kVElNRVNUQU1QCi0rCi0rICAgVGhlICRvdXRw dXQgcHJvZ3JhbSBjYW5ub3QgYmUgZGlyZWN0bHkgZXhlY3V0ZWQgdW50aWwgYWxsIHRoZSBsaWJ0 b29sCi0rICAgbGlicmFyaWVzIHRoYXQgaXQgZGVwZW5kcyBvbiBhcmUgaW5zdGFsbGVkLgotKwot KyAgIFRoaXMgd3JhcHBlciBleGVjdXRhYmxlIHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2Yg dGhlIGJ1aWxkIGRpcmVjdG9yeS4KLSsgICBJZiBpdCBpcywgaXQgd2lsbCBub3Qgb3BlcmF0ZSBj b3JyZWN0bHkuCi0rCi0rICAgQ3VycmVudGx5LCBpdCBzaW1wbHkgZXhlY3MgdGhlIHdyYXBwZXIg KnNjcmlwdCogIi9iaW4vc2ggJG91dHB1dCIsCi0rICAgYnV0IGNvdWxkIGV2ZW50dWFsbHkgYWJz b3JiIGFsbCBvZiB0aGUgc2NyaXB0cyBmdW5jdGlvbmFsaXR5IGFuZAotKyAgIGV4ZWMgJG9iamRp ci8kb3V0cHV0bmFtZSBkaXJlY3RseS4KLSsqLwotK0VPRgotKwkgICAgY2F0ID4+ICRjd3JhcHBl cnNvdXJjZTw8IkVPRiIKLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsjaW5jbHVkZSA8c3RkbGliLmg+ Ci0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlIDxtYWxsb2MuaD4KLSsjaW5jbHVkZSA8 c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPGFzc2VydC5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsj aW5jbHVkZSA8Y3R5cGUuaD4KLSsjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSsKLSsjaWYgZGVmaW5l ZChQQVRIX01BWCkKLSsjIGRlZmluZSBMVF9QQVRITUFYIFBBVEhfTUFYCi0rI2VsaWYgZGVmaW5l ZChNQVhQQVRITEVOKQotKyMgZGVmaW5lIExUX1BBVEhNQVggTUFYUEFUSExFTgotKyNlbHNlCi0r IyBkZWZpbmUgTFRfUEFUSE1BWCAxMDI0Ci0rI2VuZGlmCi0rCi0rI2lmbmRlZiBESVJfU0VQQVJB VE9SCi0rIyBkZWZpbmUgRElSX1NFUEFSQVRPUiAnLycKLSsjIGRlZmluZSBQQVRIX1NFUEFSQVRP UiAnOicKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoX1dJTjMyKSB8fCBkZWZpbmVkIChfX01T RE9TX18pIHx8IGRlZmluZWQgKF9fREpHUFBfXykgfHwgXAotKyAgZGVmaW5lZCAoX19PUzJfXykK LSsjIGRlZmluZSBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTQotKyMgaWZuZGVmIERJUl9TRVBB UkFUT1JfMgotKyMgIGRlZmluZSBESVJfU0VQQVJBVE9SXzIgJ1xcJwotKyMgZW5kaWYKLSsjIGlm bmRlZiBQQVRIX1NFUEFSQVRPUl8yCi0rIyAgZGVmaW5lIFBBVEhfU0VQQVJBVE9SXzIgJzsnCi0r IyBlbmRpZgotKyNlbmRpZgotKwotKyNpZm5kZWYgRElSX1NFUEFSQVRPUl8yCi0rIyBkZWZpbmUg SVNfRElSX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gRElSX1NFUEFSQVRPUikKLSsjZWxzZSAvKiBE SVJfU0VQQVJBVE9SXzIgKi8KLSsjIGRlZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSBcCi0rICAg ICAgICAoKChjaCkgPT0gRElSX1NFUEFSQVRPUikgfHwgKChjaCkgPT0gRElSX1NFUEFSQVRPUl8y KSkKLSsjZW5kaWYgLyogRElSX1NFUEFSQVRPUl8yICovCi0rCi0rI2lmbmRlZiBQQVRIX1NFUEFS QVRPUl8yCi0rIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQ QVJBVE9SKQotKyNlbHNlIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8KLSsjIGRlZmluZSBJU19QQVRI X1NFUEFSQVRPUihjaCkgKChjaCkgPT0gUEFUSF9TRVBBUkFUT1JfMikKLSsjZW5kaWYgLyogUEFU SF9TRVBBUkFUT1JfMiAqLwotKwotKyNkZWZpbmUgWE1BTExPQyh0eXBlLCBudW0pICAgICAgKCh0 eXBlICopIHhtYWxsb2MgKChudW0pICogc2l6ZW9mKHR5cGUpKSkKLSsjZGVmaW5lIFhGUkVFKHN0 YWxlKSBkbyB7IFwKLSsgIGlmIChzdGFsZSkgeyBmcmVlICgodm9pZCAqKSBzdGFsZSk7IHN0YWxl ID0gMDsgfSBcCi0rfSB3aGlsZSAoMCkKLSsKLSsvKiAtRERFQlVHIGlzIGZhaXJseSBjb21tb24g aW4gQ0ZMQUdTLiAgKi8KLSsjdW5kZWYgREVCVUcKLSsjaWYgZGVmaW5lZCBERUJVR1dSQVBQRVIK LSsjIGRlZmluZSBERUJVRyhmb3JtYXQsIC4uLikgZnByaW50ZihzdGRlcnIsIGZvcm1hdCwgX19W QV9BUkdTX18pCi0rI2Vsc2UKLSsjIGRlZmluZSBERUJVRyhmb3JtYXQsIC4uLikKLSsjZW5kaWYK LSsKLStjb25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSBOVUxMOwotKwotK3ZvaWQgKiB4bWFsbG9j IChzaXplX3QgbnVtKTsKLStjaGFyICogeHN0cmR1cCAoY29uc3QgY2hhciAqc3RyaW5nKTsKLStj b25zdCBjaGFyICogYmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1lKTsKLStjaGFyICogZmluZF9l eGVjdXRhYmxlKGNvbnN0IGNoYXIgKndyYXBwZXIpOwotK2ludCAgICBjaGVja19leGVjdXRhYmxl KGNvbnN0IGNoYXIgKnBhdGgpOwotK2NoYXIgKiBzdHJlbmR6YXAoY2hhciAqc3RyLCBjb25zdCBj aGFyICpwYXQpOwotK3ZvaWQgbHRfZmF0YWwgKGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLik7Ci0r Ci0raW50Ci0rbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSt7Ci0rICBjaGFyICoqbmV3 YXJnejsKLSsgIGludCBpOwotKwotKyAgcHJvZ3JhbV9uYW1lID0gKGNoYXIgKikgeHN0cmR1cCAo YmFzZV9uYW1lIChhcmd2WzBdKSk7Ci0rICBERUJVRygiKG1haW4pIGFyZ3ZbMF0gICAgICA6ICVz XG4iLGFyZ3ZbMF0pOwotKyAgREVCVUcoIihtYWluKSBwcm9ncmFtX25hbWUgOiAlc1xuIixwcm9n cmFtX25hbWUpOwotKyAgbmV3YXJneiA9IFhNQUxMT0MoY2hhciAqLCBhcmdjKzIpOwotK0VPRgot KwotKyAgICAgICAgICAgIGNhdCA+PiAkY3dyYXBwZXJzb3VyY2UgPDxFT0YKLSsgIG5ld2FyZ3pb MF0gPSAoY2hhciAqKSB4c3RyZHVwKCIkU0hFTEwiKTsKLStFT0YKLSsKLSsgICAgICAgICAgICBj YXQgPj4gJGN3cmFwcGVyc291cmNlIDw8IkVPRiIKLSsgIG5ld2FyZ3pbMV0gPSBmaW5kX2V4ZWN1 dGFibGUoYXJndlswXSk7Ci0rICBpZiAobmV3YXJnelsxXSA9PSBOVUxMKQotKyAgICBsdF9mYXRh bCgiQ291bGRuJ3QgZmluZCAlcyIsIGFyZ3ZbMF0pOwotKyAgREVCVUcoIihtYWluKSBmb3VuZCBl eGUgYXQgOiAlc1xuIixuZXdhcmd6WzFdKTsKLSsgIC8qIHdlIGtub3cgdGhlIHNjcmlwdCBoYXMg dGhlIHNhbWUgbmFtZSwgd2l0aG91dCB0aGUgLmV4ZSAqLwotKyAgLyogc28gbWFrZSBzdXJlIG5l d2FyZ3pbMV0gZG9lc24ndCBlbmQgaW4gLmV4ZSAqLwotKyAgc3RyZW5kemFwKG5ld2FyZ3pbMV0s Ii5leGUiKTsKLSsgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCi0rICAgIG5ld2FyZ3pbaSsx XSA9IHhzdHJkdXAoYXJndltpXSk7Ci0rICBuZXdhcmd6W2FyZ2MrMV0gPSBOVUxMOwotKwotKyAg Zm9yIChpPTA7IGk8YXJnYysxOyBpKyspCi0rICB7Ci0rICAgIERFQlVHKCIobWFpbikgbmV3YXJn elslZF0gICA6ICVzXG4iLGksbmV3YXJneltpXSk7Ci0rICAgIDsKLSsgIH0KLSsKLStFT0YKLSsK LSsgICAgICAgICAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgICAgICAgICBtaW5ndyopCi0r ICAgICAgICAgICAgICAgIGNhdCA+PiAkY3dyYXBwZXJzb3VyY2UgPDxFT0YKLSsgIGV4ZWN2KCIk U0hFTEwiLChjaGFyIGNvbnN0ICoqKW5ld2FyZ3opOwotK0VPRgotKyAgICAgICAgICAgICAgOzsK LSsgICAgICAgICAgICAgICopCi0rICAgICAgICAgICAgICAgIGNhdCA+PiAkY3dyYXBwZXJzb3Vy Y2UgPDxFT0YKLSsgIGV4ZWN2KCIkU0hFTEwiLG5ld2FyZ3opOwotK0VPRgotKyAgICAgICAgICAg ICAgOzsKLSsgICAgICAgICAgICBlc2FjCi0rCi0rICAgICAgICAgICAgY2F0ID4+ICRjd3JhcHBl cnNvdXJjZSA8PCJFT0YiCi0rICByZXR1cm4gMTI3OwotK30KLSsKLSt2b2lkICoKLSt4bWFsbG9j IChzaXplX3QgbnVtKQotK3sKLSsgIHZvaWQgKiBwID0gKHZvaWQgKikgbWFsbG9jIChudW0pOwot KyAgaWYgKCFwKQotKyAgICBsdF9mYXRhbCAoIk1lbW9yeSBleGhhdXN0ZWQiKTsKLSsKLSsgIHJl dHVybiBwOwotK30KLSsKLStjaGFyICoKLSt4c3RyZHVwIChjb25zdCBjaGFyICpzdHJpbmcpCi0r ewotKyAgcmV0dXJuIHN0cmluZyA/IHN0cmNweSAoKGNoYXIgKikgeG1hbGxvYyAoc3RybGVuIChz dHJpbmcpICsgMSksIHN0cmluZykgOiBOVUxMCi0rOwotK30KLSsKLStjb25zdCBjaGFyICoKLSti YXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCi0rewotKyAgY29uc3QgY2hhciAqYmFzZTsKLSsK LSsjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCi0rICAvKiBTa2lwIG92 ZXIgdGhlIGRpc2sgbmFtZSBpbiBNU0RPUyBwYXRobmFtZXMuICovCi0rICBpZiAoaXNhbHBoYSAo KHVuc2lnbmVkIGNoYXIpbmFtZVswXSkgJiYgbmFtZVsxXSA9PSAnOicpCi0rICAgIG5hbWUgKz0g MjsKLSsjZW5kaWYKLSsKLSsgIGZvciAoYmFzZSA9IG5hbWU7ICpuYW1lOyBuYW1lKyspCi0rICAg IGlmIChJU19ESVJfU0VQQVJBVE9SICgqbmFtZSkpCi0rICAgICAgYmFzZSA9IG5hbWUgKyAxOwot KyAgcmV0dXJuIGJhc2U7Ci0rfQotKwotK2ludAotK2NoZWNrX2V4ZWN1dGFibGUoY29uc3QgY2hh ciAqIHBhdGgpCi0rewotKyAgc3RydWN0IHN0YXQgc3Q7Ci0rCi0rICBERUJVRygiKGNoZWNrX2V4 ZWN1dGFibGUpICA6ICVzXG4iLCBwYXRoID8gKCpwYXRoID8gcGF0aCA6ICJFTVBUWSEiKSA6ICJO VUxMISIpOwotKyAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCi0rICAgIHJldHVybiAwOwotKwot KyAgaWYgKChzdGF0IChwYXRoLCAmc3QpID49IDApICYmCi0rICAgICAgKAotKyAgICAgICAgLyog TWluR1cgJiBuYXRpdmUgV0lOMzIgZG8gbm90IHN1cHBvcnQgU19JWE9USCBvciBTX0lYR1JQICov Ci0rI2lmIGRlZmluZWQgKFNfSVhPVEgpCi0rICAgICAgICgoc3Quc3RfbW9kZSAmIFNfSVhPVEgp ID09IFNfSVhPVEgpIHx8Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQgKFNfSVhHUlApCi0rICAgICAg ICgoc3Quc3RfbW9kZSAmIFNfSVhHUlApID09IFNfSVhHUlApIHx8Ci0rI2VuZGlmCi0rICAgICAg ICgoc3Quc3RfbW9kZSAmIFNfSVhVU1IpID09IFNfSVhVU1IpKQotKyAgICAgICkKLSsgICAgcmV0 dXJuIDE7Ci0rICBlbHNlCi0rICAgIHJldHVybiAwOwotK30KLSsKLSsvKiBTZWFyY2hlcyBmb3Ig dGhlIGZ1bGwgcGF0aCBvZiB0aGUgd3JhcHBlci4gIFJldHVybnMKLSsgICBuZXdseSBhbGxvY2F0 ZWQgZnVsbCBwYXRoIG5hbWUgaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNlICovCi0rY2hhciAqCi0r ZmluZF9leGVjdXRhYmxlIChjb25zdCBjaGFyKiB3cmFwcGVyKQotK3sKLSsgIGludCBoYXNfc2xh c2ggPSAwOwotKyAgY29uc3QgY2hhciogcDsKLSsgIGNvbnN0IGNoYXIqIHBfbmV4dDsKLSsgIC8q IHN0YXRpYyBidWZmZXIgZm9yIGdldGN3ZCAqLwotKyAgY2hhciB0bXBbTFRfUEFUSE1BWCArIDFd OwotKyAgaW50IHRtcF9sZW47Ci0rICBjaGFyKiBjb25jYXRfbmFtZTsKLSsKLSsgIERFQlVHKCIo ZmluZF9leGVjdXRhYmxlKSAgOiAlc1xuIiwgd3JhcHBlciA/ICgqd3JhcHBlciA/IHdyYXBwZXIg OiAiRU1QVFkhIikgOiAiTlVMTCEiKTsKLSsKLSsgIGlmICgod3JhcHBlciA9PSBOVUxMKSB8fCAo KndyYXBwZXIgPT0gJ1wwJykpCi0rICAgIHJldHVybiBOVUxMOwotKwotKyAgLyogQWJzb2x1dGUg cGF0aD8gKi8KLSsjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCi0rICBp ZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpd3JhcHBlclswXSkgJiYgd3JhcHBlclsxXSA9PSAn OicpCi0rICB7Ci0rICAgIGNvbmNhdF9uYW1lID0geHN0cmR1cCAod3JhcHBlcik7Ci0rICAgIGlm IChjaGVja19leGVjdXRhYmxlKGNvbmNhdF9uYW1lKSkKLSsgICAgICByZXR1cm4gY29uY2F0X25h bWU7Ci0rICAgIFhGUkVFKGNvbmNhdF9uYW1lKTsKLSsgIH0KLSsgIGVsc2UKLSsgIHsKLSsjZW5k aWYKLSsgICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKHdyYXBwZXJbMF0pKQotKyAgICB7Ci0rICAg ICAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKLSsgICAgICBpZiAoY2hlY2tfZXhl Y3V0YWJsZShjb25jYXRfbmFtZSkpCi0rICAgICAgICByZXR1cm4gY29uY2F0X25hbWU7Ci0rICAg ICAgWEZSRUUoY29uY2F0X25hbWUpOwotKyAgICB9Ci0rI2lmIGRlZmluZWQgKEhBVkVfRE9TX0JB U0VEX0ZJTEVfU1lTVEVNKQotKyAgfQotKyNlbmRpZgotKwotKyAgZm9yIChwID0gd3JhcHBlcjsg KnA7IHArKykKLSsgICAgaWYgKCpwID09ICcvJykKLSsgICAgewotKyAgICAgIGhhc19zbGFzaCA9 IDE7Ci0rICAgICAgYnJlYWs7Ci0rICAgIH0KLSsgIGlmICghaGFzX3NsYXNoKQotKyAgewotKyAg ICAvKiBubyBzbGFzaGVzOyBzZWFyY2ggUEFUSCAqLwotKyAgICBjb25zdCBjaGFyKiBwYXRoID0g Z2V0ZW52ICgiUEFUSCIpOwotKyAgICBpZiAocGF0aCAhPSBOVUxMKQotKyAgICB7Ci0rICAgICAg Zm9yIChwID0gcGF0aDsgKnA7IHAgPSBwX25leHQpCi0rICAgICAgewotKyAgICAgICAgY29uc3Qg Y2hhciogcTsKLSsgICAgICAgIHNpemVfdCBwX2xlbjsKLSsgICAgICAgIGZvciAocSA9IHA7ICpx OyBxKyspCi0rICAgICAgICAgIGlmIChJU19QQVRIX1NFUEFSQVRPUigqcSkpCi0rICAgICAgICAg ICAgYnJlYWs7Ci0rICAgICAgICBwX2xlbiA9IHEgLSBwOwotKyAgICAgICAgcF9uZXh0ID0gKCpx ID09ICdcMCcgPyBxIDogcSArIDEpOwotKyAgICAgICAgaWYgKHBfbGVuID09IDApCi0rICAgICAg ICB7Ci0rICAgICAgICAgIC8qIGVtcHR5IHBhdGg6IGN1cnJlbnQgZGlyZWN0b3J5ICovCi0rICAg ICAgICAgIGlmIChnZXRjd2QgKHRtcCwgTFRfUEFUSE1BWCkgPT0gTlVMTCkKLSsgICAgICAgICAg ICBsdF9mYXRhbCAoImdldGN3ZCBmYWlsZWQiKTsKLSsgICAgICAgICAgdG1wX2xlbiA9IHN0cmxl bih0bXApOwotKyAgICAgICAgICBjb25jYXRfbmFtZSA9IFhNQUxMT0MoY2hhciwgdG1wX2xlbiAr IDEgKyBzdHJsZW4od3JhcHBlcikgKyAxKTsKLSsgICAgICAgICAgbWVtY3B5IChjb25jYXRfbmFt ZSwgdG1wLCB0bXBfbGVuKTsKLSsgICAgICAgICAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7 Ci0rICAgICAgICAgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBlcik7 Ci0rICAgICAgICB9Ci0rICAgICAgICBlbHNlCi0rICAgICAgICB7Ci0rICAgICAgICAgIGNvbmNh dF9uYW1lID0gWE1BTExPQyhjaGFyLCBwX2xlbiArIDEgKyBzdHJsZW4od3JhcHBlcikgKyAxKTsK LSsgICAgICAgICAgbWVtY3B5IChjb25jYXRfbmFtZSwgcCwgcF9sZW4pOwotKyAgICAgICAgICBj b25jYXRfbmFtZVtwX2xlbl0gPSAnLyc7Ci0rICAgICAgICAgIHN0cmNweSAoY29uY2F0X25hbWUg KyBwX2xlbiArIDEsIHdyYXBwZXIpOwotKyAgICAgICAgfQotKyAgICAgICAgaWYgKGNoZWNrX2V4 ZWN1dGFibGUoY29uY2F0X25hbWUpKQotKyAgICAgICAgICByZXR1cm4gY29uY2F0X25hbWU7Ci0r ICAgICAgICBYRlJFRShjb25jYXRfbmFtZSk7Ci0rICAgICAgfQotKyAgICB9Ci0rICAgIC8qIG5v dCBmb3VuZCBpbiBQQVRIOyBhc3N1bWUgY3VyZGlyICovCi0rICB9Ci0rICAvKiBSZWxhdGl2ZSBw YXRoIHwgbm90IGZvdW5kIGluIHBhdGg6IHByZXBlbmQgY3dkICovCi0rICBpZiAoZ2V0Y3dkICh0 bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCi0rICAgIGx0X2ZhdGFsICgiZ2V0Y3dkIGZhaWxlZCIp OwotKyAgdG1wX2xlbiA9IHN0cmxlbih0bXApOwotKyAgY29uY2F0X25hbWUgPSBYTUFMTE9DKGNo YXIsIHRtcF9sZW4gKyAxICsgc3RybGVuKHdyYXBwZXIpICsgMSk7Ci0rICBtZW1jcHkgKGNvbmNh dF9uYW1lLCB0bXAsIHRtcF9sZW4pOwotKyAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7Ci0r ICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgdG1wX2xlbiArIDEsIHdyYXBwZXIpOwotKwotKyAgaWYg KGNoZWNrX2V4ZWN1dGFibGUoY29uY2F0X25hbWUpKQotKyAgICByZXR1cm4gY29uY2F0X25hbWU7 Ci0rICBYRlJFRShjb25jYXRfbmFtZSk7Ci0rICByZXR1cm4gTlVMTDsKLSt9Ci0rCi0rY2hhciAq Ci0rc3RyZW5kemFwKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqcGF0KQotK3sKLSsgIHNpemVfdCBs ZW4sIHBhdGxlbjsKLSsKLSsgIGFzc2VydChzdHIgIT0gTlVMTCk7Ci0rICBhc3NlcnQocGF0ICE9 IE5VTEwpOwotKwotKyAgbGVuID0gc3RybGVuKHN0cik7Ci0rICBwYXRsZW4gPSBzdHJsZW4ocGF0 KTsKLSsKLSsgIGlmIChwYXRsZW4gPD0gbGVuKQotKyAgewotKyAgICBzdHIgKz0gbGVuIC0gcGF0 bGVuOwotKyAgICBpZiAoc3RyY21wKHN0ciwgcGF0KSA9PSAwKQotKyAgICAgICpzdHIgPSAnXDAn OwotKyAgfQotKyAgcmV0dXJuIHN0cjsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStsdF9lcnJvcl9j b3JlIChpbnQgZXhpdF9zdGF0dXMsIGNvbnN0IGNoYXIgKiBtb2RlLAotKyAgICAgICAgICBjb25z dCBjaGFyICogbWVzc2FnZSwgdmFfbGlzdCBhcCkKLSt7Ci0rICBmcHJpbnRmIChzdGRlcnIsICIl czogJXM6ICIsIHByb2dyYW1fbmFtZSwgbW9kZSk7Ci0rICB2ZnByaW50ZiAoc3RkZXJyLCBtZXNz YWdlLCBhcCk7Ci0rICBmcHJpbnRmIChzdGRlcnIsICIuXG4iKTsKLSsKLSsgIGlmIChleGl0X3N0 YXR1cyA+PSAwKQotKyAgICBleGl0IChleGl0X3N0YXR1cyk7Ci0rfQotKwotK3ZvaWQKLStsdF9m YXRhbCAoY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKQotK3sKLSsgIHZhX2xpc3QgYXA7Ci0rICB2 YV9zdGFydCAoYXAsIG1lc3NhZ2UpOwotKyAgbHRfZXJyb3JfY29yZSAoRVhJVF9GQUlMVVJFLCAi RkFUQUwiLCBtZXNzYWdlLCBhcCk7Ci0rICB2YV9lbmQgKGFwKTsKLSt9Ci0rRU9GCi0rICAgICAg ICAgICMgd2Ugc2hvdWxkIHJlYWxseSB1c2UgYSBidWlsZC1wbGF0Zm9ybSBzcGVjaWZpYyBjb21w aWxlcgotKyAgICAgICAgICAjIGhlcmUsIGJ1dCBPVE9ILCB0aGUgd3JhcHBlcnMgKHNoZWxsIHNj cmlwdCBhbmQgdGhpcyBDIG9uZSkKLSsgICAgICAgICAgIyBhcmUgb25seSB1c2VmdWwgaWYgeW91 IHdhbnQgdG8gZXhlY3V0ZSB0aGUgInJlYWwiIGJpbmFyeS4KLSsgICAgICAgICAgIyBTaW5jZSB0 aGUgInJlYWwiIGJpbmFyeSBpcyBidWlsdCBmb3IgJGhvc3QsIHRoZW4gdGhpcwotKyAgICAgICAg ICAjIHdyYXBwZXIgbWlnaHQgYXMgd2VsbCBiZSBidWlsdCBmb3IgJGhvc3QsIHRvby4KLSsgICAg ICAgICAgJHJ1biAkTFRDQyAkTFRDRkxBR1MgLXMgLW8gJGN3cmFwcGVyICRjd3JhcHBlcnNvdXJj ZQotKyAgICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgJHJtICRvdXRwdXQKLSsg ICAgICAgIHRyYXAgIiRybSAkb3V0cHV0OyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQotKwot KwkkZWNobyA+ICRvdXRwdXQgIlwKLSsjISAkU0hFTEwKLSsKLSsjICRvdXRwdXQgLSB0ZW1wb3Jh cnkgd3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKLSsjIEdlbmVyYXRlZCBi eSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAkVkVSU0lPTiRUSU1FU1RBTVAKLSsjCi0rIyBUaGUg JG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhl IGxpYnRvb2wKLSsjIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4K LSsjCi0rIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2Yg dGhlIGJ1aWxkIGRpcmVjdG9yeS4KLSsjIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNv cnJlY3RseS4KLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3Qg cXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0rIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBz dGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KLStYc2VkPScke1NFRH0g LWUgMXMvXlgvLycKLStzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCi0rCi0rIyBC ZSBCb3VybmUgY29tcGF0aWJsZSAodGFrZW4gZnJvbSBBdXRvY29uZjpfQVNfQk9VUk5FX0NPTVBB VElCTEUpLgotK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCIgJiYgKGVtdWxhdGUg c2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0r ICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRA XCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMg ZmVhdHVyZS4KLSsgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKLSsgIHNldG9w dCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAg aW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYwotK2ZpCi0rQklOX1NIPXhwZzQ7IGV4cG9y dCBCSU5fU0ggIyBmb3IgVHJ1NjQKLStEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3Ig TUtTIHNoCi0rCi0rIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFy Z2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKLSsjIGlmIENEUEFUSCBpcyBzZXQuCi0rKHVuc2V0IENE UEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAotKwotK3JlbGlua19jb21tYW5k PVwiJHJlbGlua19jb21tYW5kXCIKLSsKLSsjIFRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgZGV0 ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1vZGUuCi0raWYgdGVzdCBcIlwkbGlidG9vbF9pbnN0YWxs X21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0aGVuCi0rICAjIGluc3RhbGwgbW9kZSBuZWVkcyB0aGUg Zm9sbG93aW5nIHZhcmlhYmxlOgotKyAgbm90aW5zdF9kZXBsaWJzPSckbm90aW5zdF9kZXBsaWJz JwotK2Vsc2UKLSsgICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVjdXRlIG1vZGUsIFwkZmls ZSBhbmQgXCRlY2hvIGFyZSBhbHJlYWR5IHNldC4KLSsgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhl Y3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KLSsgICAgZWNobz1cIiRxZWNob1wiCi0r ICAgIGZpbGU9XCJcJDBcIgotKyAgICAjIE1ha2Ugc3VyZSBlY2hvIHdvcmtzLgotKyAgICBpZiB0 ZXN0IFwiWFwkMVwiID0gWC0tbm8tcmVleGVjOyB0aGVuCi0rICAgICAgIyBEaXNjYXJkIHRoZSAt LW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCi0rICAgICAgc2hpZnQKLSsgICAgZWxpZiB0 ZXN0IFwiWFxgKFwkZWNobyAnXHQnKSAyPi9kZXYvbnVsbFxgXCIgPSAnWFx0JzsgdGhlbgotKyAg ICAgICMgWWlwcGVlLCBcJGVjaG8gd29ya3MhCi0rICAgICAgOgotKyAgICBlbHNlCi0rICAgICAg IyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXliZSBcJGVjaG8g d2lsbCB3b3JrLgotKyAgICAgIGV4ZWMgJFNIRUxMIFwiXCQwXCIgLS1uby1yZWV4ZWMgXCR7MStc IlwkQFwifQotKyAgICBmaQotKyAgZmlcCi0rIgotKwkkZWNobyA+PiAkb3V0cHV0ICJcCi0rCi0r ICAjIEZpbmQgdGhlIGRpcmVjdG9yeSB0aGF0IHRoaXMgc2NyaXB0IGxpdmVzIGluLgotKyAgdGhp c2Rpcj1cYFwkZWNobyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAtZSAncyUvW14vXSokJSUnXGAKLSsg IHRlc3QgXCJ4XCR0aGlzZGlyXCIgPSBcInhcJGZpbGVcIiAmJiB0aGlzZGlyPS4KLSsKLSsgICMg Rm9sbG93IHN5bWJvbGljIGxpbmtzIHVudGlsIHdlIGdldCB0byB0aGUgcmVhbCB0aGlzZGlyLgot KyAgZmlsZT1cYGxzIC1sZCBcIlwkZmlsZVwiIHwgJHtTRUR9IC1uICdzLy4qLT4gLy9wJ1xgCi0r ICB3aGlsZSB0ZXN0IC1uIFwiXCRmaWxlXCI7IGRvCi0rICAgIGRlc3RkaXI9XGBcJGVjaG8gXCJY XCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qXCQlJSdcYAotKwotKyAgICAjIElmIHRoZXJl IHdhcyBhIGRpcmVjdG9yeSBjb21wb25lbnQsIHRoZW4gY2hhbmdlIHRoaXNkaXIuCi0rICAgIGlm IHRlc3QgXCJ4XCRkZXN0ZGlyXCIgIT0gXCJ4XCRmaWxlXCI7IHRoZW4KLSsgICAgICBjYXNlIFwi XCRkZXN0ZGlyXCIgaW4KLSsgICAgICBbXFxcXC9dKiB8IFtBLVphLXpdOltcXFxcL10qKSB0aGlz ZGlyPVwiXCRkZXN0ZGlyXCIgOzsKLSsgICAgICAqKSB0aGlzZGlyPVwiXCR0aGlzZGlyL1wkZGVz dGRpclwiIDs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKwotKyAgICBmaWxlPVxgXCRlY2hvIFwi WFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJV4uKi8lJSdcYAotKyAgICBmaWxlPVxgbHMgLWxkIFwi XCR0aGlzZGlyL1wkZmlsZVwiIHwgJHtTRUR9IC1uICdzLy4qLT4gLy9wJ1xgCi0rICBkb25lCi0r Ci0rICAjIFRyeSB0byBnZXQgdGhlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lLgotKyAgYWJzZGly PVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBwd2RcYAotKyAgdGVzdCAtbiBcIlwkYWJzZGlyXCIgJiYg dGhpc2Rpcj1cIlwkYWJzZGlyXCIKLSsiCi0rCi0rCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0g eWVzOyB0aGVuCi0rCSAgJGVjaG8gPj4gJG91dHB1dCAiXAotKyAgcHJvZ3JhbT1sdC0nJG91dHB1 dG5hbWUnJGV4ZWV4dAotKyAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8kb2JqZGlyXCIKLSsKLSsgIGlm IHRlc3QgISAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiB8fCBcXAotKyAgICAgeyBmaWxlPVxg bHMgLTFkdCBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiBcIlwkcHJvZ2Rpci8uLi9cJHByb2dyYW1c IiAyPi9kZXYvbnVsbCB8ICR7U0VEfSAxcVxgOyBcXAotKyAgICAgICB0ZXN0IFwiWFwkZmlsZVwi ICE9IFwiWFwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgfTsgdGhlbgotKwotKyAgICBmaWxlPVwiXCRc JC1cJHByb2dyYW1cIgotKwotKyAgICBpZiB0ZXN0ICEgLWQgXCJcJHByb2dkaXJcIjsgdGhlbgot KyAgICAgICRta2RpciBcIlwkcHJvZ2RpclwiCi0rICAgIGVsc2UKLSsgICAgICAkcm0gXCJcJHBy b2dkaXIvXCRmaWxlXCIKLSsgICAgZmkiCi0rCi0rCSAgJGVjaG8gPj4gJG91dHB1dCAiXAotKwot KyAgICAjIHJlbGluayBleGVjdXRhYmxlIGlmIG5lY2Vzc2FyeQotKyAgICBpZiB0ZXN0IC1uIFwi XCRyZWxpbmtfY29tbWFuZFwiOyB0aGVuCi0rICAgICAgaWYgcmVsaW5rX2NvbW1hbmRfb3V0cHV0 PVxgZXZhbCBcJHJlbGlua19jb21tYW5kIDI+JjFcYDsgdGhlbiA6Ci0rICAgICAgZWxzZQotKwkk ZWNobyBcIlwkcmVsaW5rX2NvbW1hbmRfb3V0cHV0XCIgPiYyCi0rCSRybSBcIlwkcHJvZ2Rpci9c JGZpbGVcIgotKwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAg ICAkbXYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgMj4vZGV2 L251bGwgfHwKLSsgICAgeyAkcm0gXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7Ci0rICAgICAgJG12 IFwiXCRwcm9nZGlyL1wkZmlsZVwiIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB9Ci0rICAgICRy bSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgotKyAgZmkiCi0rCWVsc2UKLSsJICAkZWNobyA+PiAkb3V0 cHV0ICJcCi0rICBwcm9ncmFtPSckb3V0cHV0bmFtZScKLSsgIHByb2dkaXI9XCJcJHRoaXNkaXIv JG9iamRpclwiCi0rIgotKwlmaQotKwotKwkkZWNobyA+PiAkb3V0cHV0ICJcCi0rCi0rICBpZiB0 ZXN0IC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB0aGVuIgotKwotKwkjIEV4cG9ydCBvdXIg c2hsaWJwYXRoX3ZhciBpZiB3ZSBoYXZlIG9uZS4KLSsJaWYgdGVzdCAiJHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3Qg LW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgotKwkgICRlY2hvID4+ICRvdXRwdXQgIlwKLSsgICAgIyBB ZGQgb3VyIG93biBsaWJyYXJ5IHBhdGggdG8gJHNobGlicGF0aF92YXIKLSsgICAgJHNobGlicGF0 aF92YXI9XCIkdGVtcF9ycGF0aFwkJHNobGlicGF0aF92YXJcIgotKwotKyAgICAjIFNvbWUgc3lz dGVtcyBjYW5ub3QgY29wZSB3aXRoIGNvbG9uLXRlcm1pbmF0ZWQgJHNobGlicGF0aF92YXIKLSsg ICAgIyBUaGUgc2Vjb25kIGNvbG9uIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBidWcgaW4gQmVPUyBS NCBzZWQKLSsgICAgJHNobGlicGF0aF92YXI9XGBcJGVjaG8gXCJYXCQkc2hsaWJwYXRoX3Zhclwi IHwgXCRYc2VkIC1lICdzLzo6KlwkLy8nXGAKLSsKLSsgICAgZXhwb3J0ICRzaGxpYnBhdGhfdmFy Ci0rIgotKwlmaQotKwotKwkjIGZpeHVwIHRoZSBkbGwgc2VhcmNocGF0aCBpZiB3ZSBuZWVkIHRv LgotKwlpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KLSsJICAkZWNobyA+PiAkb3V0 cHV0ICJcCi0rICAgICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUg ZXhlY3V0YWJsZSBQQVRICi0rICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6XCRQQVRICi0rIgotKwlm aQotKwotKwkkZWNobyA+PiAkb3V0cHV0ICJcCi0rICAgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhl Y3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KLSsgICAgICAjIFJ1biB0aGUgYWN0dWFs IHByb2dyYW0gd2l0aCBvdXIgYXJndW1lbnRzLgotKyIKLSsJY2FzZSAkaG9zdCBpbgotKwkjIEJh Y2tzbGFzaGVzIHNlcGFyYXRlIGRpcmVjdG9yaWVzIG9uIHBsYWluIHdpbmRvd3MKLSsJKi0qLW1p bmd3IHwgKi0qLW9zMiopCi0rCSAgJGVjaG8gPj4gJG91dHB1dCAiXAotKyAgICAgIGV4ZWMgXCJc JHByb2dkaXJcXFxcXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQotKyIKLSsJICA7OwotKwotKwkq KQotKwkgICRlY2hvID4+ICRvdXRwdXQgIlwKLSsgICAgICBleGVjIFwiXCRwcm9nZGlyL1wkcHJv Z3JhbVwiIFwkezErXCJcJEBcIn0KLSsiCi0rCSAgOzsKLSsJZXNhYwotKwkkZWNobyA+PiAkb3V0 cHV0ICJcCi0rICAgICAgXCRlY2hvIFwiXCQwOiBjYW5ub3QgZXhlYyBcJHByb2dyYW0gXCQqXCIK LSsgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgIyBUaGUg cHJvZ3JhbSBkb2Vzbid0IGV4aXN0LgotKyAgICBcJGVjaG8gXCJcJDA6IGVycm9yOiBcXFxgXCRw cm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBub3QgZXhpc3RcIiAxPiYyCi0rICAgIFwkZWNobyBcIlRo aXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFwcGVyIGZvciBcJHByb2dyYW0uXCIgMT4mMgotKyAgICAk ZWNobyBcIlNlZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlv bi5cIiAxPiYyCi0rICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgZmkKLStmaVwKLSsiCi0rCWNo bW9kICt4ICRvdXRwdXQKLSsgICAgICBmaQotKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKyAg ICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBv bGQtZmFzaGlvbmVkIGFyY2hpdmUuCi0rICAgIGZvciBvbGRsaWIgaW4gJG9sZGxpYnM7IGRvCi0r Ci0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBjb252ZW5pZW5jZTsgdGhl bgotKwlvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgotKwlhZGRsaWJzPSIkY29udmVuaWVuY2UiCi0r CWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGJ1aWxkX2xp YnRvb2xfbGlicyIgPSBtb2R1bGU7IHRoZW4KLSsJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgot KwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwllbHNlCi0rCSAgb2xkb2Jqcz0iJG9sZF9kZXBs aWJzICRub25fcGljX29iamVjdHMiCi0rCWZpCi0rCWFkZGxpYnM9IiRvbGRfY29udmVuaWVuY2Ui Ci0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkYWRkbGlicyI7IHRoZW4KLSsJZ2Vu dG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJZ2VuZXJhdGVkPSIkZ2VuZXJh dGVkICRnZW50b3AiCi0rCi0rCWZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRhZGRsaWJz Ci0rCW9sZG9ianM9IiRvbGRvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKyAg ICAgIGZpCi0rCi0rICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGFyY2hpdmUgY29tbWFu ZHMuCi0rICAgICAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgIGNtZHM9JG9sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHMKLSsgICAgICBlbHNlCi0rCSMgUE9TSVggZGVtYW5kcyBubyBw YXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hpdmVzLiAgV2UgaGF2ZQotKwkjIHRvIGF2b2lkIGNy ZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVwbGljYXRlIGJhc2VuYW1lcyBpZiB3ZQotKwkjIG1pZ2h0 IGhhdmUgdG8gZXh0cmFjdCB0aGVtIGFmdGVyd2FyZHMsIGUuZy4sIHdoZW4gY3JlYXRpbmcgYQot KwkjIHN0YXRpYyBhcmNoaXZlIG91dCBvZiBhIGNvbnZlbmllbmNlIGxpYnJhcnksIG9yIHdoZW4g bGlua2luZwotKwkjIHRoZSBlbnRpcmV0eSBvZiBhIGxpYnRvb2wgYXJjaGl2ZSBpbnRvIGFub3Ro ZXIgKGN1cnJlbnRseQotKwkjIG5vdCBzdXBwb3J0ZWQgYnkgbGlidG9vbCkuCi0rCWlmIChmb3Ig b2JqIGluICRvbGRvYmpzCi0rCSAgICBkbwotKwkgICAgICAkZWNobyAiWCRvYmoiIHwgJFhzZWQg LWUgJ3MlXi4qLyUlJwotKwkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxsIDI+ JjEpOyB0aGVuCi0rCSAgOgotKwllbHNlCi0rCSAgJGVjaG8gImNvcHlpbmcgc2VsZWN0ZWQgb2Jq ZWN0IGZpbGVzIHRvIGF2b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4uLiIKLSsKLSsJICBpZiB0ZXN0 IC16ICIkZ2VudG9wIjsgdGhlbgotKwkgICAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1 dG5hbWV9eCIKLSsJICAgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgotKwotKwkgICAg JHNob3cgIiR7cm19ciAkZ2VudG9wIgotKwkgICAgJHJ1biAke3JtfXIgIiRnZW50b3AiCi0rCSAg ICAkc2hvdyAiJG1rZGlyICRnZW50b3AiCi0rCSAgICAkcnVuICRta2RpciAiJGdlbnRvcCIKLSsJ ICAgIGV4aXRfc3RhdHVzPSQ/Ci0rCSAgICBpZiB0ZXN0ICIkZXhpdF9zdGF0dXMiIC1uZSAwICYm IHRlc3QgISAtZCAiJGdlbnRvcCI7IHRoZW4KLSsJICAgICAgZXhpdCAkZXhpdF9zdGF0dXMKLSsJ ICAgIGZpCi0rCSAgZmkKLSsKLSsJICBzYXZlX29sZG9ianM9JG9sZG9ianMKLSsJICBvbGRvYmpz PQotKwkgIGNvdW50ZXI9MQotKwkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcwotKwkgIGRvCi0r CSAgICBvYmpiYXNlPWAkZWNobyAiWCRvYmoiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsJICAg IGNhc2UgIiAkb2xkb2JqcyAiIGluCi0rCSAgICAiICIpIG9sZG9ianM9JG9iaiA7OwotKwkgICAg KltcIC9dIiRvYmpiYXNlICIqKQotKwkgICAgICB3aGlsZSA6OyBkbwotKwkJIyBNYWtlIHN1cmUg d2UgZG9uJ3QgcGljayBhbiBhbHRlcm5hdGUgbmFtZSB0aGF0IGFsc28KLSsJCSMgb3ZlcmxhcHMu Ci0rCQluZXdvYmo9bHQkY291bnRlci0kb2JqYmFzZQotKwkJY291bnRlcj1gZXhwciAkY291bnRl ciArIDFgCi0rCQljYXNlICIgJG9sZG9ianMgIiBpbgotKwkJKltcIC9dIiRuZXdvYmogIiopIDs7 Ci0rCQkqKSBpZiB0ZXN0ICEgLWYgIiRnZW50b3AvJG5ld29iaiI7IHRoZW4gYnJlYWs7IGZpIDs7 Ci0rCQllc2FjCi0rCSAgICAgIGRvbmUKLSsJICAgICAgJHNob3cgImxuICRvYmogJGdlbnRvcC8k bmV3b2JqIHx8IGNwICRvYmogJGdlbnRvcC8kbmV3b2JqIgotKwkgICAgICAkcnVuIGxuICIkb2Jq IiAiJGdlbnRvcC8kbmV3b2JqIiB8fAotKwkgICAgICAkcnVuIGNwICIkb2JqIiAiJGdlbnRvcC8k bmV3b2JqIgotKwkgICAgICBvbGRvYmpzPSIkb2xkb2JqcyAkZ2VudG9wLyRuZXdvYmoiCi0rCSAg ICAgIDs7Ci0rCSAgICAqKSBvbGRvYmpzPSIkb2xkb2JqcyAkb2JqIiA7OwotKwkgICAgZXNhYwot KwkgIGRvbmUKLSsJZmkKLSsKLSsJZXZhbCBjbWRzPVwiJG9sZF9hcmNoaXZlX2NtZHNcIgotKwot KwlpZiBsZW49YGV4cHIgIlgkY21kcyIgOiAiLioiYCAmJgotKwkgICAgIHRlc3QgIiRsZW4iIC1s ZSAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgotKwkg IGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKLSsJZWxzZQotKwkgICMgdGhlIGNvbW1hbmQgbGluZSBp cyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIGluIHBhcnRzCi0rCSAgJGVjaG8g InVzaW5nIHBpZWNld2lzZSBhcmNoaXZlIGxpbmtpbmcuLi4iCi0rCSAgc2F2ZV9SQU5MSUI9JFJB TkxJQgotKwkgIFJBTkxJQj06Ci0rCSAgb2JqbGlzdD0KLSsJICBjb25jYXRfY21kcz0KLSsJICBz YXZlX29sZG9ianM9JG9sZG9ianMKLSsKLSsJICAjIElzIHRoZXJlIGEgYmV0dGVyIHdheSBvZiBm aW5kaW5nIHRoZSBsYXN0IG9iamVjdCBpbiB0aGUgbGlzdD8KLSsJICBmb3Igb2JqIGluICRzYXZl X29sZG9ianMKLSsJICBkbwotKwkgICAgbGFzdF9vbGRvYmo9JG9iagotKwkgIGRvbmUKLSsJICBm b3Igb2JqIGluICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkgICAgb2xkb2Jqcz0iJG9iamxpc3Qg JG9iaiIKLSsJICAgIG9iamxpc3Q9IiRvYmpsaXN0ICRvYmoiCi0rCSAgICBldmFsIHRlc3RfY21k cz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKLSsJICAgIGlmIGxlbj1gZXhwciAiWCR0ZXN0X2NtZHMi IDogIi4qIiAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICAgIHRlc3QgIiRsZW4iIC1sZSAiJG1heF9j bWRfbGVuIjsgdGhlbgotKwkgICAgICA6Ci0rCSAgICBlbHNlCi0rCSAgICAgICMgdGhlIGFib3Zl IGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQgYmVmb3JlIGl0IGdldHMgdG9vIGxvbmcKLSsJICAgICAg b2xkb2Jqcz0kb2JqbGlzdAotKwkgICAgICBpZiB0ZXN0ICIkb2JqIiA9ICIkbGFzdF9vbGRvYmoi IDsgdGhlbgotKwkgICAgICAgIFJBTkxJQj0kc2F2ZV9SQU5MSUIKLSsJICAgICAgZmkKLSsJICAg ICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+Ci0r CSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc30kb2xkX2FyY2hpdmVfY21k c1wiCi0rCSAgICAgIG9iamxpc3Q9Ci0rCSAgICBmaQotKwkgIGRvbmUKLSsJICBSQU5MSUI9JHNh dmVfUkFOTElCCi0rCSAgb2xkb2Jqcz0kb2JqbGlzdAotKwkgIGlmIHRlc3QgIlgkb2xkb2JqcyIg PSAiWCIgOyB0aGVuCi0rCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzXCIKLSsJICBlbHNl Ci0rCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzflwkb2xkX2FyY2hpdmVfY21kc1wiCi0r CSAgZmkKLSsJZmkKLSsgICAgICBmaQotKyAgICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+Jwot KyAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rICAgICAgICBldmFsIGNtZD1cIiRjbWRcIgot KwlJRlM9IiRzYXZlX2lmcyIKLSsJJHNob3cgIiRjbWQiCi0rCSRydW4gZXZhbCAiJGNtZCIgfHwg ZXhpdCAkPwotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRzYXZlX2lmcyIKLSsgICAgZG9uZQot KwotKyAgICBpZiB0ZXN0IC1uICIkZ2VuZXJhdGVkIjsgdGhlbgotKyAgICAgICRzaG93ICIke3Jt fXIkZ2VuZXJhdGVkIgotKyAgICAgICRydW4gJHtybX1yJGdlbmVyYXRlZAotKyAgICBmaQotKwot KyAgICAjIE5vdyBjcmVhdGUgdGhlIGxpYnRvb2wgYXJjaGl2ZS4KLSsgICAgY2FzZSAkb3V0cHV0 IGluCi0rICAgICoubGEpCi0rICAgICAgb2xkX2xpYnJhcnk9Ci0rICAgICAgdGVzdCAiJGJ1aWxk X29sZF9saWJzIiA9IHllcyAmJiBvbGRfbGlicmFyeT0iJGxpYm5hbWUuJGxpYmV4dCIKLSsgICAg ICAkc2hvdyAiY3JlYXRpbmcgJG91dHB1dCIKLSsKLSsgICAgICAjIFByZXNlcnZlIGFueSB2YXJp YWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCi0rICAgICAgZm9yIHZhciBp biAkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms7IGRvCi0rCWlmIGV2YWwgdGVzdCAteiBcIlwk eyR2YXIrc2V0fVwiOyB0aGVuCi0rCSAgcmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwkeyR2 YXIrc2V0fVwiIHx8IHVuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07IH07ICRy ZWxpbmtfY29tbWFuZCIKLSsJZWxpZiBldmFsIHZhcl92YWx1ZT1cJCR2YXI7IHRlc3QgLXogIiR2 YXJfdmFsdWUiOyB0aGVuCi0rCSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsg JHJlbGlua19jb21tYW5kIgotKwllbHNlCi0rCSAgdmFyX3ZhbHVlPWAkZWNobyAiWCR2YXJfdmFs dWUiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKwkgIHJlbGlua19jb21tYW5kPSIk dmFyPVwiJHZhcl92YWx1ZVwiOyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgotKwlmaQot KyAgICAgIGRvbmUKLSsgICAgICAjIFF1b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5n LgotKyAgICAgIHJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRTSEVMTCAkcHJvZ3BhdGggJHBy ZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGluayAkbGlidG9vbF9hcmdzIEBpbnN0X3ByZWZpeF9kaXJA KSIKLSsgICAgICByZWxpbmtfY29tbWFuZD1gJGVjaG8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFNQ Mk5MIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiIHwgJE5MMlNQYAotKyAgICAgIGlmIHRl c3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzIDsgdGhlbgotKwlyZWxpbmtfY29tbWFuZD0K LSsgICAgICBmaQotKwotKwotKyAgICAgICMgT25seSBjcmVhdGUgdGhlIG91dHB1dCBpZiBub3Qg YSBkcnkgcnVuLgotKyAgICAgIGlmIHRlc3QgLXogIiRydW4iOyB0aGVuCi0rCWZvciBpbnN0YWxs ZWQgaW4gbm8geWVzOyBkbwotKwkgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCi0r CSAgICBpZiB0ZXN0IC16ICIkaW5zdGFsbF9saWJkaXIiOyB0aGVuCi0rCSAgICAgIGJyZWFrCi0r CSAgICBmaQotKwkgICAgb3V0cHV0PSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSJpCi0rCSAg ICAjIFJlcGxhY2UgYWxsIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzIHdpdGggdGhlIGlu c3RhbGxlZCBvbmVzCi0rCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9Ci0rCSAgICBmb3IgZGVwbGli IGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAgICAgIGNhc2UgJGRlcGxpYiBpbgotKwkgICAg ICAqLmxhKQotKwkJbmFtZT1gJGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdg Ci0rCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAk ZGVwbGliYAotKwkJaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KLSsJCSAgJGVjaG8gIiRtb2Rl bmFtZTogXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiIDE+JjIKLSsJ CSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCQlmaQotKwkJbmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3 ZGVwZW5kZW5jeV9saWJzICRsaWJkaXIvJG5hbWUiCi0rCQk7OwotKwkgICAgICAqKSBuZXdkZXBl bmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGRlcGxpYiIgOzsKLSsJICAgICAgZXNh YwotKwkgICAgZG9uZQotKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJz IgotKwkgICAgbmV3ZGxmaWxlcz0KLSsJICAgIGZvciBsaWIgaW4gJGRsZmlsZXM7IGRvCi0rCSAg ICAgIG5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAotKwkgICAgICBl dmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkbGliYAot KwkgICAgICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgotKwkJJGVjaG8gIiRtb2RlbmFtZTog XGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiIDE+JjIKLSsJCWV4aXQgJEVY SVRfRkFJTFVSRQotKwkgICAgICBmaQotKwkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAk bGliZGlyLyRuYW1lIgotKwkgICAgZG9uZQotKwkgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCi0r CSAgICBuZXdkbHByZWZpbGVzPQotKwkgICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KLSsJ ICAgICAgbmFtZT1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCi0rCSAgICAg IGV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJg Ci0rCSAgICAgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0rCQkkZWNobyAiJG1vZGVuYW1l OiBcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgotKwkJZXhpdCAk RVhJVF9GQUlMVVJFCi0rCSAgICAgIGZpCi0rCSAgICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHBy ZWZpbGVzICRsaWJkaXIvJG5hbWUiCi0rCSAgICBkb25lCi0rCSAgICBkbHByZWZpbGVzPSIkbmV3 ZGxwcmVmaWxlcyIKLSsJICBlbHNlCi0rCSAgICBuZXdkbGZpbGVzPQotKwkgICAgZm9yIGxpYiBp biAkZGxmaWxlczsgZG8KLSsJICAgICAgY2FzZSAkbGliIGluCi0rCQlbXFwvXSogfCBbQS1aYS16 XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKLSsJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKLSsJICAg ICAgZXNhYwotKwkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkYWJzIgotKwkgICAgZG9u ZQotKwkgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCi0rCSAgICBuZXdkbHByZWZpbGVzPQotKwkg ICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KLSsJICAgICAgY2FzZSAkbGliIGluCi0rCQlb XFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKLSsJCSopIGFicz1gcHdkYCIv JGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVm aWxlcyAkYWJzIgotKwkgICAgZG9uZQotKwkgICAgZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMi Ci0rCSAgZmkKLSsJICAkcm0gJG91dHB1dAotKwkgICMgcGxhY2UgZGxuYW1lIGluIGNvcnJlY3Qg cG9zaXRpb24gZm9yIGN5Z3dpbgotKwkgIHRkbG5hbWU9JGRsbmFtZQotKwkgIGNhc2UgJGhvc3Qs JG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgotKwkgICAgKmN5Z3dpbiosKmxh aSx5ZXMsbm8sKi5kbGwgfCAqbWluZ3cqLCpsYWkseWVzLG5vLCouZGxsKSB0ZGxuYW1lPS4uL2Jp bi8kZGxuYW1lIDs7Ci0rCSAgZXNhYwotKwkgICRlY2hvID4gJG91dHB1dCAiXAotKyMgJG91dHB1 dG5hbWUgLSBhIGxpYnRvb2wgbGlicmFyeSBmaWxlCi0rIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0g LSBHTlUgJFBBQ0tBR0UgJFZFUlNJT04kVElNRVNUQU1QCi0rIwotKyMgUGxlYXNlIERPIE5PVCBk ZWxldGUgdGhpcyBmaWxlIQotKyMgSXQgaXMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHRoZSBsaWJy YXJ5LgotKwotKyMgVGhlIG5hbWUgdGhhdCB3ZSBjYW4gZGxvcGVuKDMpLgotK2RsbmFtZT0nJHRk bG5hbWUnCi0rCi0rIyBOYW1lcyBvZiB0aGlzIGxpYnJhcnkuCi0rbGlicmFyeV9uYW1lcz0nJGxp YnJhcnlfbmFtZXMnCi0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgc3RhdGljIGFyY2hpdmUuCi0rb2xk X2xpYnJhcnk9JyRvbGRfbGlicmFyeScKLSsKLSsjIExpYnJhcmllcyB0aGF0IHRoaXMgb25lIGRl cGVuZHMgdXBvbi4KLStkZXBlbmRlbmN5X2xpYnM9JyRkZXBlbmRlbmN5X2xpYnMnCi0rCi0rIyBW ZXJzaW9uIGluZm9ybWF0aW9uIGZvciAkbGlibmFtZS4KLStjdXJyZW50PSRjdXJyZW50Ci0rYWdl PSRhZ2UKLStyZXZpc2lvbj0kcmV2aXNpb24KLSsKLSsjIElzIHRoaXMgYW4gYWxyZWFkeSBpbnN0 YWxsZWQgbGlicmFyeT8KLStpbnN0YWxsZWQ9JGluc3RhbGxlZAotKwotKyMgU2hvdWxkIHdlIHdh cm4gYWJvdXQgcG9ydGFiaWxpdHkgd2hlbiBsaW5raW5nIGFnYWluc3QgLW1vZHVsZXM/Ci0rc2hv dWxkbm90bGluaz0kbW9kdWxlCi0rCi0rIyBGaWxlcyB0byBkbG9wZW4vZGxwcmVvcGVuCi0rZGxv cGVuPSckZGxmaWxlcycKLStkbHByZW9wZW49JyRkbHByZWZpbGVzJwotKwotKyMgRGlyZWN0b3J5 IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRzIHRvIGJlIGluc3RhbGxlZCBpbjoKLStsaWJkaXI9JyRp bnN0YWxsX2xpYmRpciciCi0rCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSBubyAmJiB0ZXN0ICIk bmVlZF9yZWxpbmsiID0geWVzOyB0aGVuCi0rCSAgICAkZWNobyA+PiAkb3V0cHV0ICJcCi0rcmVs aW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2NvbW1hbmRcIiIKLSsJICBmaQotKwlkb25lCi0rICAgICAg ZmkKLSsKLSsgICAgICAjIERvIGEgc3ltYm9saWMgbGluayBzbyB0aGF0IHRoZSBsaWJ0b29sIGFy Y2hpdmUgY2FuIGJlIGZvdW5kIGluCi0rICAgICAgIyBMRF9MSUJSQVJZX1BBVEggYmVmb3JlIHRo ZSBwcm9ncmFtIGlzIGluc3RhbGxlZC4KLSsgICAgICAkc2hvdyAiKGNkICRvdXRwdXRfb2JqZGly ICYmICRybSAkb3V0cHV0bmFtZSAmJiAkTE5fUyAuLi8kb3V0cHV0bmFtZSAkb3V0cHV0bmFtZSki Ci0rICAgICAgJHJ1biBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJHJtICRvdXRwdXRuYW1l ICYmICRMTl9TIC4uLyRvdXRwdXRuYW1lICRvdXRwdXRuYW1lKScgfHwgZXhpdCAkPwotKyAgICAg IDs7Ci0rICAgIGVzYWMKLSsgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgIDs7Ci0rCi0rICAj IGxpYnRvb2wgaW5zdGFsbCBtb2RlCi0rICBpbnN0YWxsKQotKyAgICBtb2RlbmFtZT0iJG1vZGVu YW1lOiBpbnN0YWxsIgotKwotKyAgICAjIFRoZXJlIG1heSBiZSBhbiBvcHRpb25hbCBzaCgxKSBh cmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mCi0rICAgICMgaW5zdGFsbF9wcm9nIChlc3BlY2lh bGx5IG9uIFdpbmRvd3MgTlQpLgotKyAgICBpZiB0ZXN0ICIkbm9ub3B0IiA9ICIkU0hFTEwiIHx8 IHRlc3QgIiRub25vcHQiID0gL2Jpbi9zaCB8fAotKyAgICAgICAjIEFsbG93IHRoZSB1c2Ugb2Yg R05VIHNodG9vbCdzIGluc3RhbGwgY29tbWFuZC4KLSsgICAgICAgJGVjaG8gIlgkbm9ub3B0IiB8 IGdyZXAgc2h0b29sID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1 b3RlIGl0LgotKyAgICAgIGFyZz1gJGVjaG8gIlgkbm9ub3B0IiB8ICRYc2VkIC1lICIkc2VkX3F1 b3RlX3N1YnN0ImAKLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAqW1xbXH5cI1xeXCZcKlwo XClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsJYXJnPSJcIiRhcmdcIiIKLSsJOzsK LSsgICAgICBlc2FjCi0rICAgICAgaW5zdGFsbF9wcm9nPSIkYXJnICIKLSsgICAgICBhcmc9IiQx IgotKyAgICAgIHNoaWZ0Ci0rICAgIGVsc2UKLSsgICAgICBpbnN0YWxsX3Byb2c9Ci0rICAgICAg YXJnPSRub25vcHQKLSsgICAgZmkKLSsKLSsgICAgIyBUaGUgcmVhbCBmaXJzdCBhcmd1bWVudCBz aG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIGluc3RhbGxhdGlvbiBwcm9ncmFtLgotKyAgICAjIEFl c3RoZXRpY2FsbHkgcXVvdGUgaXQuCi0rICAgIGFyZz1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1l ICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsgICAgY2FzZSAkYXJnIGluCi0rICAgICpbXFtcflwjXF5c JlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQotKyAgICAgIGFyZz0iXCIkYXJn XCIiCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3By b2ckYXJnIgotKwotKyAgICAjIFdlIG5lZWQgdG8gYWNjZXB0IGF0IGxlYXN0IGFsbCB0aGUgQlNE IGluc3RhbGwgZmxhZ3MuCi0rICAgIGRlc3Q9Ci0rICAgIGZpbGVzPQotKyAgICBvcHRzPQotKyAg ICBwcmV2PQotKyAgICBpbnN0YWxsX3R5cGU9Ci0rICAgIGlzZGlyPW5vCi0rICAgIHN0cmlwbWU9 Ci0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBpZiB0ZXN0IC1uICIkZGVzdCI7IHRoZW4K LSsJZmlsZXM9IiRmaWxlcyAkZGVzdCIKLSsJZGVzdD0kYXJnCi0rCWNvbnRpbnVlCi0rICAgICAg ZmkKLSsKLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtZCkgaXNkaXI9eWVzIDs7Ci0rICAg ICAgLWYpIAotKyAgICAgIAljYXNlICIgJGluc3RhbGxfcHJvZyAiIGluCi0rCSpbXFxcIC9dY3Bc ICopIDs7Ci0rCSopIHByZXY9JGFyZyA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgLWcgfCAtbSB8 IC1vKSBwcmV2PSRhcmcgOzsKLSsgICAgICAtcykKLSsJc3RyaXBtZT0iIC1zIgotKwljb250aW51 ZQotKwk7OwotKyAgICAgIC0qKQotKwk7OwotKyAgICAgICopCi0rCSMgSWYgdGhlIHByZXZpb3Vz IG9wdGlvbiBuZWVkZWQgYW4gYXJndW1lbnQsIHRoZW4gc2tpcCBpdC4KLSsJaWYgdGVzdCAtbiAi JHByZXYiOyB0aGVuCi0rCSAgcHJldj0KLSsJZWxzZQotKwkgIGRlc3Q9JGFyZwotKwkgIGNvbnRp bnVlCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgICMgQWVzdGhldGljYWxseSBx dW90ZSB0aGUgYXJndW1lbnQuCi0rICAgICAgYXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUg IiRzZWRfcXVvdGVfc3Vic3QiYAotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgICpbXFtcflwj XF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQotKwlhcmc9IlwiJGFyZ1wi IgotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2cg JGFyZyIKLSsgICAgZG9uZQotKwotKyAgICBpZiB0ZXN0IC16ICIkaW5zdGFsbF9wcm9nIjsgdGhl bgotKyAgICAgICRlY2hvICIkbW9kZW5hbWU6IHlvdSBtdXN0IHNwZWNpZnkgYW4gaW5zdGFsbCBw cm9ncmFtIiAxPiYyCi0rICAgICAgJGVjaG8gIiRoZWxwIiAxPiYyCi0rICAgICAgZXhpdCAkRVhJ VF9GQUlMVVJFCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgotKyAg ICAgICRlY2hvICIkbW9kZW5hbWU6IHRoZSBcYCRwcmV2JyBvcHRpb24gcmVxdWlyZXMgYW4gYXJn dW1lbnQiIDE+JjIKLSsgICAgICAkZWNobyAiJGhlbHAiIDE+JjIKLSsgICAgICBleGl0ICRFWElU X0ZBSUxVUkUKLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAteiAiJGZpbGVzIjsgdGhlbgotKyAg ICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgotKwkkZWNobyAiJG1vZGVuYW1lOiBubyBmaWxl IG9yIGRlc3RpbmF0aW9uIHNwZWNpZmllZCIgMT4mMgotKyAgICAgIGVsc2UKLSsJJGVjaG8gIiRt b2RlbmFtZTogeW91IG11c3Qgc3BlY2lmeSBhIGRlc3RpbmF0aW9uIiAxPiYyCi0rICAgICAgZmkK LSsgICAgICAkZWNobyAiJGhlbHAiIDE+JjIKLSsgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsg ICAgZmkKLSsKLSsgICAgIyBTdHJpcCBhbnkgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgZGVzdGlu YXRpb24uCi0rICAgIGRlc3Q9YCRlY2hvICJYJGRlc3QiIHwgJFhzZWQgLWUgJ3MlLyQlJSdgCi0r Ci0rICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5 LgotKyAgICB0ZXN0IC1kICIkZGVzdCIgJiYgaXNkaXI9eWVzCi0rICAgIGlmIHRlc3QgIiRpc2Rp ciIgPSB5ZXM7IHRoZW4KLSsgICAgICBkZXN0ZGlyPSIkZGVzdCIKLSsgICAgICBkZXN0bmFtZT0K LSsgICAgZWxzZQotKyAgICAgIGRlc3RkaXI9YCRlY2hvICJYJGRlc3QiIHwgJFhzZWQgLWUgJ3Ml L1teL10qJCUlJ2AKLSsgICAgICB0ZXN0ICJYJGRlc3RkaXIiID0gIlgkZGVzdCIgJiYgZGVzdGRp cj0uCi0rICAgICAgZGVzdG5hbWU9YCRlY2hvICJYJGRlc3QiIHwgJFhzZWQgLWUgJ3MlXi4qLyUl J2AKLSsKLSsgICAgICAjIE5vdCBhIGRpcmVjdG9yeSwgc28gY2hlY2sgdG8gc2VlIHRoYXQgdGhl cmUgaXMgb25seSBvbmUgZmlsZSBzcGVjaWZpZWQuCi0rICAgICAgc2V0IGR1bW15ICRmaWxlcwot KyAgICAgIGlmIHRlc3QgIiQjIiAtZ3QgMjsgdGhlbgotKwkkZWNobyAiJG1vZGVuYW1lOiBcYCRk ZXN0JyBpcyBub3QgYSBkaXJlY3RvcnkiIDE+JjIKLSsJJGVjaG8gIiRoZWxwIiAxPiYyCi0rCWV4 aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rICAgIGZpCi0rICAgIGNhc2UgJGRlc3RkaXIg aW4KLSsgICAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OwotKyAgICAqKQotKyAgICAgIGZv ciBmaWxlIGluICRmaWxlczsgZG8KLSsJY2FzZSAkZmlsZSBpbgotKwkqLmxvKSA7OwotKwkqKQot KwkgICRlY2hvICIkbW9kZW5hbWU6IFxgJGRlc3RkaXInIG11c3QgYmUgYW4gYWJzb2x1dGUgZGly ZWN0b3J5IG5hbWUiIDE+JjIKLSsJICAkZWNobyAiJGhlbHAiIDE+JjIKLSsJICBleGl0ICRFWElU X0ZBSUxVUkUKLSsJICA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIDs7Ci0rICAgIGVz YWMKLSsKLSsgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0cyBqdXN0IHRv IHNldCB2YXJpYWJsZXMgcmF0aGVyCi0rICAgICMgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1z LgotKyAgICBsaWJ0b29sX2luc3RhbGxfbWFnaWM9IiRtYWdpYyIKLSsKLSsgICAgc3RhdGljbGli cz0KLSsgICAgZnV0dXJlX2xpYmRpcnM9Ci0rICAgIGN1cnJlbnRfbGliZGlycz0KLSsgICAgZm9y IGZpbGUgaW4gJGZpbGVzOyBkbwotKwotKyAgICAgICMgRG8gZWFjaCBpbnN0YWxsYXRpb24uCi0r ICAgICAgY2FzZSAkZmlsZSBpbgotKyAgICAgICouJGxpYmV4dCkKLSsJIyBEbyB0aGUgc3RhdGlj IGxpYnJhcmllcyBsYXRlci4KLSsJc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGZpbGUiCi0rCTs7 Ci0rCi0rICAgICAgKi5sYSkKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBh IGxpYnRvb2wgYXJjaGl2ZS4KLSsJaWYgKCR7U0VEfSAtZSAnMnEnICRmaWxlIHwgZ3JlcCAiXiMg R2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgotKwllbHNl Ci0rCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBh cmNoaXZlIiAxPiYyCi0rCSAgJGVjaG8gIiRoZWxwIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlM VVJFCi0rCWZpCi0rCi0rCWxpYnJhcnlfbmFtZXM9Ci0rCW9sZF9saWJyYXJ5PQotKwlyZWxpbmtf Y29tbWFuZD0KLSsJIyBJZiB0aGVyZSBpcyBubyBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGFk ZCBvbmUuCi0rCWNhc2UgJGZpbGUgaW4KLSsJKi8qIHwgKlxcKikgLiAkZmlsZSA7OwotKwkqKSAu IC4vJGZpbGUgOzsKLSsJZXNhYwotKwotKwkjIEFkZCB0aGUgbGliZGlyIHRvIGN1cnJlbnRfbGli ZGlycyBpZiBpdCBpcyB0aGUgZGVzdGluYXRpb24uCi0rCWlmIHRlc3QgIlgkZGVzdGRpciIgPSAi WCRsaWJkaXIiOyB0aGVuCi0rCSAgY2FzZSAiJGN1cnJlbnRfbGliZGlycyAiIGluCi0rCSAgKiIg JGxpYmRpciAiKikgOzsKLSsJICAqKSBjdXJyZW50X2xpYmRpcnM9IiRjdXJyZW50X2xpYmRpcnMg JGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWVsc2UKLSsJICAjIE5vdGUgdGhlIGxpYmRpciBhcyBh IGZ1dHVyZSBsaWJkaXIuCi0rCSAgY2FzZSAiJGZ1dHVyZV9saWJkaXJzICIgaW4KLSsJICAqIiAk bGliZGlyICIqKSA7OwotKwkgICopIGZ1dHVyZV9saWJkaXJzPSIkZnV0dXJlX2xpYmRpcnMgJGxp YmRpciIgOzsKLSsJICBlc2FjCi0rCWZpCi0rCi0rCWRpcj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNl ZCAtZSAncyUvW14vXSokJSUnYC8KLSsJdGVzdCAiWCRkaXIiID0gIlgkZmlsZS8iICYmIGRpcj0K LSsJZGlyPSIkZGlyJG9iamRpciIKLSsKLSsJaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsg dGhlbgotKwkgICMgRGV0ZXJtaW5lIHRoZSBwcmVmaXggdGhlIHVzZXIgaGFzIGFwcGxpZWQgdG8g b3VyIGZ1dHVyZSBkaXIuCi0rCSAgaW5zdF9wcmVmaXhfZGlyPWAkZWNobyAiJGRlc3RkaXIiIHwg JFNFRCAicyUkbGliZGlyXCQlJSJgCi0rCi0rCSAgIyBEb24ndCBhbGxvdyB0aGUgdXNlciB0byBw bGFjZSB1cyBvdXRzaWRlIG9mIG91ciBleHBlY3RlZAotKwkgICMgbG9jYXRpb24gYi9jIHRoaXMg cHJldmVudHMgZmluZGluZyBkZXBlbmRlbnQgbGlicmFyaWVzIHRoYXQKLSsJICAjIGFyZSBpbnN0 YWxsZWQgdG8gdGhlIHNhbWUgcHJlZml4LgotKwkgICMgQXQgcHJlc2VudCwgdGhpcyBjaGVjayBk b2Vzbid0IGFmZmVjdCB3aW5kb3dzIC5kbGwncyB0aGF0Ci0rCSAgIyBhcmUgaW5zdGFsbGVkIGlu dG8gJGxpYmRpci8uLi9iaW4gKGN1cnJlbnRseSwgdGhhdCB3b3JrcyBmaW5lKQotKwkgICMgYnV0 IGl0J3Mgc29tZXRoaW5nIHRvIGtlZXAgYW4gZXllIG9uLgotKwkgIGlmIHRlc3QgIiRpbnN0X3By ZWZpeF9kaXIiID0gIiRkZXN0ZGlyIjsgdGhlbgotKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogZXJy b3I6IGNhbm5vdCBpbnN0YWxsIFxgJGZpbGUnIHRvIGEgZGlyZWN0b3J5IG5vdCBlbmRpbmcgaW4g JGxpYmRpciIgMT4mMgotKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgZmkKLSsKLSsJICBp ZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgotKwkgICAgIyBTdGljayB0aGUgaW5z dF9wcmVmaXhfZGlyIGRhdGEgaW50byB0aGUgbGluayBjb21tYW5kLgotKwkgICAgcmVsaW5rX2Nv bW1hbmQ9YCRlY2hvICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFNFRCAicyVAaW5zdF9w cmVmaXhfZGlyQCUtaW5zdC1wcmVmaXgtZGlyICRpbnN0X3ByZWZpeF9kaXIlIiB8ICROTDJTUGAK LSsJICBlbHNlCi0rCSAgICByZWxpbmtfY29tbWFuZD1gJGVjaG8gIiRyZWxpbmtfY29tbWFuZCIg fCAkU1AyTkwgfCAkU0VEICJzJUBpbnN0X3ByZWZpeF9kaXJAJSUiIHwgJE5MMlNQYAotKwkgIGZp Ci0rCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogcmVsaW5raW5nIFxgJGZpbGUnIiAx PiYyCi0rCSAgJHNob3cgIiRyZWxpbmtfY29tbWFuZCIKLSsJICBpZiAkcnVuIGV2YWwgIiRyZWxp bmtfY29tbWFuZCI7IHRoZW4gOgotKwkgIGVsc2UKLSsJICAgICRlY2hvICIkbW9kZW5hbWU6IGVy cm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFs bGluZyBpdCIgMT4mMgotKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgZmkKLSsJZmkKLSsK LSsJIyBTZWUgdGhlIG5hbWVzIG9mIHRoZSBzaGFyZWQgbGlicmFyeS4KLSsJc2V0IGR1bW15ICRs aWJyYXJ5X25hbWVzCi0rCWlmIHRlc3QgLW4gIiQyIjsgdGhlbgotKwkgIHJlYWxuYW1lPSIkMiIK LSsJICBzaGlmdAotKwkgIHNoaWZ0Ci0rCi0rCSAgc3JjbmFtZT0iJHJlYWxuYW1lIgotKwkgIHRl c3QgLW4gIiRyZWxpbmtfY29tbWFuZCIgJiYgc3JjbmFtZT0iJHJlYWxuYW1lIlQKLSsKLSsJICAj IEluc3RhbGwgdGhlIHNoYXJlZCBsaWJyYXJ5IGFuZCBidWlsZCB0aGUgc3ltbGlua3MuCi0rCSAg JHNob3cgIiRpbnN0YWxsX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVzdGRpci8kcmVhbG5hbWUiCi0r CSAgJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nICRkaXIvJHNyY25hbWUgJGRlc3RkaXIvJHJlYWxu YW1lIiB8fCBleGl0ICQ/Ci0rCSAgaWYgdGVzdCAtbiAiJHN0cmlwbWUiICYmIHRlc3QgLW4gIiRz dHJpcGxpYiI7IHRoZW4KLSsJICAgICRzaG93ICIkc3RyaXBsaWIgJGRlc3RkaXIvJHJlYWxuYW1l IgotKwkgICAgJHJ1biBldmFsICIkc3RyaXBsaWIgJGRlc3RkaXIvJHJlYWxuYW1lIiB8fCBleGl0 ICQ/Ci0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0ICIkIyIgLWd0IDA7IHRoZW4KLSsJICAgICMgRGVs ZXRlIHRoZSBvbGQgc3ltbGlua3MsIGFuZCBjcmVhdGUgbmV3IG9uZXMuCi0rCSAgICAjIFRyeSBg bG4gLXNmJyBmaXJzdCwgYmVjYXVzZSB0aGUgYGxuJyBiaW5hcnkgbWlnaHQgZGVwZW5kIG9uCi0r CSAgICAjIHRoZSBzeW1saW5rIHdlIHJlcGxhY2UhICBTb2xhcmlzIC9iaW4vbG4gZG9lcyBub3Qg dW5kZXJzdGFuZCAtZiwKLSsJICAgICMgc28gd2UgYWxzbyBuZWVkIHRvIHRyeSBybSAmJiBsbiAt cy4KLSsJICAgIGZvciBsaW5rbmFtZQotKwkgICAgZG8KLSsJICAgICAgaWYgdGVzdCAiJGxpbmtu YW1lIiAhPSAiJHJlYWxuYW1lIjsgdGhlbgotKyAgICAgICAgICAgICAgICAkc2hvdyAiKGNkICRk ZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJlYWxuYW1lICRsaW5rbmFtZSB8fCB7ICRybSAkbGlua25h bWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZTsgfTsgfSkiCi0rICAgICAgICAgICAgICAg ICRydW4gZXZhbCAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJlYWxuYW1lICRsaW5rbmFt ZSB8fCB7ICRybSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZTsgfTsgfSki Ci0rCSAgICAgIGZpCi0rCSAgICBkb25lCi0rCSAgZmkKLSsKLSsJICAjIERvIGVhY2ggY29tbWFu ZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCi0rCSAgbGliPSIkZGVzdGRpci8kcmVhbG5h bWUiCi0rCSAgY21kcz0kcG9zdGluc3RhbGxfY21kcwotKwkgIHNhdmVfaWZzPSIkSUZTIjsgSUZT PSd+JwotKwkgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCSAgICBJRlM9IiRzYXZlX2lmcyIKLSsJ ICAgIGV2YWwgY21kPVwiJGNtZFwiCi0rCSAgICAkc2hvdyAiJGNtZCIKLSsJICAgICRydW4gZXZh bCAiJGNtZCIgfHwgewotKwkgICAgICBsdF9leGl0PSQ/Ci0rCi0rCSAgICAgICMgUmVzdG9yZSB0 aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAotKwkgICAgICBpZiB0ZXN0ICIkbW9kZSIg PSByZWxpbms7IHRoZW4KLSsJCSRydW4gZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRybSAk e3JlYWxuYW1lfVQgJiYgJG12ICR7cmVhbG5hbWV9VSAkcmVhbG5hbWUpJwotKwkgICAgICBmaQot KwotKwkgICAgICBleGl0ICRsdF9leGl0Ci0rCSAgICB9Ci0rCSAgZG9uZQotKwkgIElGUz0iJHNh dmVfaWZzIgotKwlmaQotKwotKwkjIEluc3RhbGwgdGhlIHBzZXVkby1saWJyYXJ5IGZvciBpbmZv cm1hdGlvbiBwdXJwb3Nlcy4KLSsJbmFtZT1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyVe LiovJSUnYAotKwlpbnN0bmFtZT0iJGRpci8kbmFtZSJpCi0rCSRzaG93ICIkaW5zdGFsbF9wcm9n ICRpbnN0bmFtZSAkZGVzdGRpci8kbmFtZSIKLSsJJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nICRp bnN0bmFtZSAkZGVzdGRpci8kbmFtZSIgfHwgZXhpdCAkPwotKwotKwkjIE1heWJlIGluc3RhbGwg dGhlIHN0YXRpYyBsaWJyYXJ5LCB0b28uCi0rCXRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgc3Rh dGljbGlicz0iJHN0YXRpY2xpYnMgJGRpci8kb2xkX2xpYnJhcnkiCi0rCTs7Ci0rCi0rICAgICAg Ki5sbykKLSsJIyBJbnN0YWxsIChpLmUuIGNvcHkpIGEgbGlidG9vbCBvYmplY3QuCi0rCi0rCSMg RmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5hbWUsIGlmIGl0IHdhc24ndCBhbHJlYWR5IHNw ZWNpZmllZC4KLSsJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhlbgotKwkgIGRlc3RmaWxlPSIk ZGVzdGRpci8kZGVzdG5hbWUiCi0rCWVsc2UKLSsJICBkZXN0ZmlsZT1gJGVjaG8gIlgkZmlsZSIg fCAkWHNlZCAtZSAncyVeLiovJSUnYAotKwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdGZpbGUi Ci0rCWZpCi0rCi0rCSMgRGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBkZXN0aW5hdGlvbiBvbGQtc3R5 bGUgb2JqZWN0IGZpbGUuCi0rCWNhc2UgJGRlc3RmaWxlIGluCi0rCSoubG8pCi0rCSAgc3RhdGlj ZGVzdD1gJGVjaG8gIlgkZGVzdGZpbGUiIHwgJFhzZWQgLWUgIiRsbzJvImAKLSsJICA7OwotKwkq LiRvYmpleHQpCi0rCSAgc3RhdGljZGVzdD0iJGRlc3RmaWxlIgotKwkgIGRlc3RmaWxlPQotKwkg IDs7Ci0rCSopCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGNvcHkgYSBsaWJ0b29sIG9i amVjdCB0byBcYCRkZXN0ZmlsZSciIDE+JjIKLSsJICAkZWNobyAiJGhlbHAiIDE+JjIKLSsJICBl eGl0ICRFWElUX0ZBSUxVUkUKLSsJICA7OwotKwllc2FjCi0rCi0rCSMgSW5zdGFsbCB0aGUgbGli dG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgotKwlpZiB0ZXN0IC1uICIkZGVzdGZpbGUiOyB0aGVu Ci0rCSAgJHNob3cgIiRpbnN0YWxsX3Byb2cgJGZpbGUgJGRlc3RmaWxlIgotKwkgICRydW4gZXZh bCAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVzdGZpbGUiIHx8IGV4aXQgJD8KLSsJZmkKLSsKLSsJ IyBJbnN0YWxsIHRoZSBvbGQgb2JqZWN0IGlmIGVuYWJsZWQuCi0rCWlmIHRlc3QgIiRidWlsZF9v bGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgb2xkLXN0 eWxlIG9iamVjdCBmaWxlLgotKwkgIHN0YXRpY29iaj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAt ZSAiJGxvMm8iYAotKwotKwkgICRzaG93ICIkaW5zdGFsbF9wcm9nICRzdGF0aWNvYmogJHN0YXRp Y2Rlc3QiCi0rCSAgJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nIFwkc3RhdGljb2JqIFwkc3RhdGlj ZGVzdCIgfHwgZXhpdCAkPwotKwlmaQotKwlleGl0ICRFWElUX1NVQ0NFU1MKLSsJOzsKLSsKLSsg ICAgICAqKQotKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNu J3QgYWxyZWFkeSBzcGVjaWZpZWQuCi0rCWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KLSsJ ICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgotKwllbHNlCi0rCSAgZGVzdGZpbGU9YCRl Y2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsJICBkZXN0ZmlsZT0iJGRlc3Rk aXIvJGRlc3RmaWxlIgotKwlmaQotKwotKwkjIElmIHRoZSBmaWxlIGlzIG1pc3NpbmcsIGFuZCB0 aGVyZSBpcyBhIC5leGUgb24gdGhlIGVuZCwgc3RyaXAgaXQKLSsJIyBiZWNhdXNlIGl0IGlzIG1v c3QgbGlrZWx5IGEgbGlidG9vbCBzY3JpcHQgd2UgYWN0dWFsbHkgd2FudCB0bwotKwkjIGluc3Rh bGwKLSsJc3RyaXBwZWRfZXh0PSIiCi0rCWNhc2UgJGZpbGUgaW4KLSsJICAqLmV4ZSkKLSsJICAg IGlmIHRlc3QgISAtZiAiJGZpbGUiOyB0aGVuCi0rCSAgICAgIGZpbGU9YCRlY2hvICRmaWxlfCR7 U0VEfSAncywuZXhlJCwsJ2AKLSsJICAgICAgc3RyaXBwZWRfZXh0PSIuZXhlIgotKwkgICAgZmkK LSsJICAgIDs7Ci0rCWVzYWMKLSsKLSsJIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVh bGx5IGEgbGlidG9vbCBwcm9ncmFtLgotKwljYXNlICRob3N0IGluCi0rCSpjeWd3aW4qfCptaW5n dyopCi0rCSAgICB3cmFwcGVyPWAkZWNobyAkZmlsZSB8ICR7U0VEfSAtZSAncywuZXhlJCwsJ2AK LSsJICAgIDs7Ci0rCSopCi0rCSAgICB3cmFwcGVyPSRmaWxlCi0rCSAgICA7OwotKwllc2FjCi0r CWlmICgke1NFRH0gLWUgJzRxJyAkd3JhcHBlciB8IGdyZXAgIl4jIEdlbmVyYXRlZCBieSAuKiRQ QUNLQUdFIik+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICBub3RpbnN0X2RlcGxpYnM9Ci0rCSAg cmVsaW5rX2NvbW1hbmQ9Ci0rCi0rCSAgIyBOb3RlIHRoYXQgaXQgaXMgbm90IG5lY2Vzc2FyeSBv biBjeWd3aW4vbWluZ3cgdG8gYXBwZW5kIGEgZG90IHRvCi0rCSAgIyBmb28gZXZlbiBpZiBib3Ro IGZvbyBhbmQgRklMRS5leGUgZXhpc3Q6IGF1dG9tYXRpYy1hcHBlbmQtLmV4ZQotKwkgICMgYmVo YXZpb3IgaGFwcGVucyBvbmx5IGZvciBleGVjKDMpLCBub3QgZm9yIG9wZW4oMikhICBBbHNvLCBz b3VyY2luZwotKwkgICMgYEZJTEUuJyBkb2VzIG5vdCB3b3JrIG9uIGN5Z3dpbiBtYW5hZ2VkIG1v dW50cy4KLSsJICAjCi0rCSAgIyBJZiB0aGVyZSBpcyBubyBkaXJlY3RvcnkgY29tcG9uZW50LCB0 aGVuIGFkZCBvbmUuCi0rCSAgY2FzZSAkd3JhcHBlciBpbgotKwkgICovKiB8ICpcXCopIC4gJHt3 cmFwcGVyfSA7OwotKwkgICopIC4gLi8ke3dyYXBwZXJ9IDs7Ci0rCSAgZXNhYwotKwotKwkgICMg Q2hlY2sgdGhlIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gc2V0LgotKwkgIGlmIHRl c3QgLXogIiRub3RpbnN0X2RlcGxpYnMiOyB0aGVuCi0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiBp bnZhbGlkIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgXGAkd3JhcHBlciciIDE+JjIKLSsJICAgIGV4 aXQgJEVYSVRfRkFJTFVSRQotKwkgIGZpCi0rCi0rCSAgZmluYWxpemU9eWVzCi0rCSAgZm9yIGxp YiBpbiAkbm90aW5zdF9kZXBsaWJzOyBkbwotKwkgICAgIyBDaGVjayB0byBzZWUgdGhhdCBlYWNo IGxpYnJhcnkgaXMgaW5zdGFsbGVkLgotKwkgICAgbGliZGlyPQotKwkgICAgaWYgdGVzdCAtZiAi JGxpYiI7IHRoZW4KLSsJICAgICAgIyBJZiB0aGVyZSBpcyBubyBkaXJlY3RvcnkgY29tcG9uZW50 LCB0aGVuIGFkZCBvbmUuCi0rCSAgICAgIGNhc2UgJGxpYiBpbgotKwkgICAgICAqLyogfCAqXFwq KSAuICRsaWIgOzsKLSsJICAgICAgKikgLiAuLyRsaWIgOzsKLSsJICAgICAgZXNhYwotKwkgICAg ZmkKLSsJICAgIGxpYmZpbGU9IiRsaWJkaXIvImAkZWNobyAiWCRsaWIiIHwgJFhzZWQgLWUgJ3Ml Xi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAotKwkgICAg aWYgdGVzdCAtbiAiJGxpYmRpciIgJiYgdGVzdCAhIC1mICIkbGliZmlsZSI7IHRoZW4KLSsJICAg ICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAkbGliJyBoYXMgbm90IGJlZW4gaW5zdGFs bGVkIGluIFxgJGxpYmRpciciIDE+JjIKLSsJICAgICAgZmluYWxpemU9bm8KLSsJICAgIGZpCi0r CSAgZG9uZQotKwotKwkgIHJlbGlua19jb21tYW5kPQotKwkgICMgTm90ZSB0aGF0IGl0IGlzIG5v dCBuZWNlc3Nhcnkgb24gY3lnd2luL21pbmd3IHRvIGFwcGVuZCBhIGRvdCB0bwotKwkgICMgZm9v IGV2ZW4gaWYgYm90aCBmb28gYW5kIEZJTEUuZXhlIGV4aXN0OiBhdXRvbWF0aWMtYXBwZW5kLS5l eGUKLSsJICAjIGJlaGF2aW9yIGhhcHBlbnMgb25seSBmb3IgZXhlYygzKSwgbm90IGZvciBvcGVu KDIpISAgQWxzbywgc291cmNpbmcKLSsJICAjIGBGSUxFLicgZG9lcyBub3Qgd29yayBvbiBjeWd3 aW4gbWFuYWdlZCBtb3VudHMuCi0rCSAgIwotKwkgICMgSWYgdGhlcmUgaXMgbm8gZGlyZWN0b3J5 IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgotKwkgIGNhc2UgJHdyYXBwZXIgaW4KLSsJICAqLyog fCAqXFwqKSAuICR7d3JhcHBlcn0gOzsKLSsJICAqKSAuIC4vJHt3cmFwcGVyfSA7OwotKwkgIGVz YWMKLSsKLSsJICBvdXRwdXRuYW1lPQotKwkgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0gbm8g JiYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgotKwkgICAgaWYgdGVzdCAiJGZpbmFs aXplIiA9IHllcyAmJiB0ZXN0IC16ICIkcnVuIjsgdGhlbgotKwkgICAgICB0bXBkaXI9YGZ1bmNf bWt0ZW1wZGlyYAotKwkgICAgICBmaWxlPWAkZWNobyAiWCRmaWxlJHN0cmlwcGVkX2V4dCIgfCAk WHNlZCAtZSAncyVeLiovJSUnYAotKwkgICAgICBvdXRwdXRuYW1lPSIkdG1wZGlyLyRmaWxlIgot KwkgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCi0rCSAgICAg IHJlbGlua19jb21tYW5kPWAkZWNobyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNl ZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXRuYW1lIiclZycgfCAkTkwyU1BgCi0rCi0rCSAgICAg ICRzaG93ICIkcmVsaW5rX2NvbW1hbmQiCi0rCSAgICAgIGlmICRydW4gZXZhbCAiJHJlbGlua19j b21tYW5kIjsgdGhlbiA6Ci0rCSAgICAgIGVsc2UKLSsJCSRlY2hvICIkbW9kZW5hbWU6IGVycm9y OiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGlu ZyBpdCIgMT4mMgotKwkJJHtybX1yICIkdG1wZGlyIgotKwkJY29udGludWUKLSsJICAgICAgZmkK LSsJICAgICAgZmlsZT0iJG91dHB1dG5hbWUiCi0rCSAgICBlbHNlCi0rCSAgICAgICRlY2hvICIk bW9kZW5hbWU6IHdhcm5pbmc6IGNhbm5vdCByZWxpbmsgXGAkZmlsZSciIDE+JjIKLSsJICAgIGZp Ci0rCSAgZWxzZQotKwkgICAgIyBJbnN0YWxsIHRoZSBiaW5hcnkgdGhhdCB3ZSBjb21waWxlZCBl YXJsaWVyLgotKwkgICAgZmlsZT1gJGVjaG8gIlgkZmlsZSRzdHJpcHBlZF9leHQiIHwgJFhzZWQg LWUgInMlXChbXi9dKlwpJCUkb2JqZGlyL1wxJSJgCi0rCSAgZmkKLSsJZmkKLSsKLSsJIyByZW1v dmUgLmV4ZSBzaW5jZSBjeWd3aW4gL3Vzci9iaW4vaW5zdGFsbCB3aWxsIGFwcGVuZCBhbm90aGVy Ci0rCSMgb25lIGFueXdheSAKLSsJY2FzZSAkaW5zdGFsbF9wcm9nLCRob3N0IGluCi0rCSovdXNy L2Jpbi9pbnN0YWxsKiwqY3lnd2luKikKLSsJICBjYXNlICRmaWxlOiRkZXN0ZmlsZSBpbgotKwkg ICouZXhlOiouZXhlKQotKwkgICAgIyB0aGlzIGlzIG9rCi0rCSAgICA7OwotKwkgICouZXhlOiop Ci0rCSAgICBkZXN0ZmlsZT0kZGVzdGZpbGUuZXhlCi0rCSAgICA7OwotKwkgICo6Ki5leGUpCi0r CSAgICBkZXN0ZmlsZT1gJGVjaG8gJGRlc3RmaWxlIHwgJHtTRUR9IC1lICdzLC5leGUkLCwnYAot KwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKwkkc2hvdyAiJGluc3RhbGxfcHJv ZyRzdHJpcG1lICRmaWxlICRkZXN0ZmlsZSIKLSsJJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nXCRz dHJpcG1lIFwkZmlsZSBcJGRlc3RmaWxlIiB8fCBleGl0ICQ/Ci0rCXRlc3QgLW4gIiRvdXRwdXRu YW1lIiAmJiAke3JtfXIgIiR0bXBkaXIiCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBkb25lCi0r Ci0rICAgIGZvciBmaWxlIGluICRzdGF0aWNsaWJzOyBkbwotKyAgICAgIG5hbWU9YCRlY2hvICJY JGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsKLSsgICAgICAjIFNldCB1cCB0aGUgcmFu bGliIHBhcmFtZXRlcnMuCi0rICAgICAgb2xkbGliPSIkZGVzdGRpci8kbmFtZSIKLSsKLSsgICAg ICAkc2hvdyAiJGluc3RhbGxfcHJvZyAkZmlsZSAkb2xkbGliIgotKyAgICAgICRydW4gZXZhbCAi JGluc3RhbGxfcHJvZyBcJGZpbGUgXCRvbGRsaWIiIHx8IGV4aXQgJD8KLSsKLSsgICAgICBpZiB0 ZXN0IC1uICIkc3RyaXBtZSIgJiYgdGVzdCAtbiAiJG9sZF9zdHJpcGxpYiI7IHRoZW4KLSsJJHNo b3cgIiRvbGRfc3RyaXBsaWIgJG9sZGxpYiIKLSsJJHJ1biBldmFsICIkb2xkX3N0cmlwbGliICRv bGRsaWIiIHx8IGV4aXQgJD8KLSsgICAgICBmaQotKwotKyAgICAgICMgRG8gZWFjaCBjb21tYW5k IGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KLSsgICAgICBjbWRzPSRvbGRfcG9zdGluc3Rh bGxfY21kcwotKyAgICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JwotKyAgICAgIGZvciBjbWQg aW4gJGNtZHM7IGRvCi0rCUlGUz0iJHNhdmVfaWZzIgotKwlldmFsIGNtZD1cIiRjbWRcIgotKwkk c2hvdyAiJGNtZCIKLSsJJHJ1biBldmFsICIkY21kIiB8fCBleGl0ICQ/Ci0rICAgICAgZG9uZQot KyAgICAgIElGUz0iJHNhdmVfaWZzIgotKyAgICBkb25lCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRm dXR1cmVfbGliZGlycyI7IHRoZW4KLSsgICAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBy ZW1lbWJlciB0byBydW4gXGAkcHJvZ25hbWUgLS1maW5pc2gkZnV0dXJlX2xpYmRpcnMnIiAxPiYy Ci0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRjdXJyZW50X2xpYmRpcnMiOyB0aGVuCi0r ICAgICAgIyBNYXliZSBqdXN0IGRvIGEgZHJ5IHJ1bi4KLSsgICAgICB0ZXN0IC1uICIkcnVuIiAm JiBjdXJyZW50X2xpYmRpcnM9IiAtbiRjdXJyZW50X2xpYmRpcnMiCi0rICAgICAgZXhlY19jbWQ9 JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1maW5pc2gkY3VycmVudF9saWJkaXJz JwotKyAgICBlbHNlCi0rICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgIGZpCi0rICAgIDs7 Ci0rCi0rICAjIGxpYnRvb2wgZmluaXNoIG1vZGUKLSsgIGZpbmlzaCkKLSsgICAgbW9kZW5hbWU9 IiRtb2RlbmFtZTogZmluaXNoIgotKyAgICBsaWJkaXJzPSIkbm9ub3B0IgotKyAgICBhZG1pbmNt ZHM9Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVz dCAtbiAiJGxpYmRpcnMiOyB0aGVuCi0rICAgICAgZm9yIGRpcgotKyAgICAgIGRvCi0rCWxpYmRp cnM9IiRsaWJkaXJzICRkaXIiCi0rICAgICAgZG9uZQotKwotKyAgICAgIGZvciBsaWJkaXIgaW4g JGxpYmRpcnM7IGRvCi0rCWlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyI7IHRoZW4KLSsJICAjIERv IGVhY2ggY29tbWFuZCBpbiB0aGUgZmluaXNoIGNvbW1hbmRzLgotKwkgIGNtZHM9JGZpbmlzaF9j bWRzCi0rCSAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rCSAgZm9yIGNtZCBpbiAkY21kczsg ZG8KLSsJICAgIElGUz0iJHNhdmVfaWZzIgotKwkgICAgZXZhbCBjbWQ9XCIkY21kXCIKLSsJICAg ICRzaG93ICIkY21kIgotKwkgICAgJHJ1biBldmFsICIkY21kIiB8fCBhZG1pbmNtZHM9IiRhZG1p bmNtZHMKLSsgICAgICAgJGNtZCIKLSsJICBkb25lCi0rCSAgSUZTPSIkc2F2ZV9pZnMiCi0rCWZp Ci0rCWlmIHRlc3QgLW4gIiRmaW5pc2hfZXZhbCI7IHRoZW4KLSsJICAjIERvIHRoZSBzaW5nbGUg ZmluaXNoX2V2YWwuCi0rCSAgZXZhbCBjbWRzPVwiJGZpbmlzaF9ldmFsXCIKLSsJICAkcnVuIGV2 YWwgIiRjbWRzIiB8fCBhZG1pbmNtZHM9IiRhZG1pbmNtZHMKLSsgICAgICAgJGNtZHMiCi0rCWZp Ci0rICAgICAgZG9uZQotKyAgICBmaQotKwotKyAgICAjIEV4aXQgaGVyZSBpZiB0aGV5IHdhbnRl ZCBzaWxlbnQgbW9kZS4KLSsgICAgdGVzdCAiJHNob3ciID0gOiAmJiBleGl0ICRFWElUX1NVQ0NF U1MKLSsKLSsgICAgJGVjaG8gIlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRYc2VkCi0rICAgICRlY2hvICJM aWJyYXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCi0rICAgIGZvciBsaWJkaXIgaW4gJGxp YmRpcnM7IGRvCi0rICAgICAgJGVjaG8gIiAgICRsaWJkaXIiCi0rICAgIGRvbmUKLSsgICAgJGVj aG8KLSsgICAgJGVjaG8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3YW50IHRvIGxpbmsgYWdhaW5z dCBpbnN0YWxsZWQgbGlicmFyaWVzIgotKyAgICAkZWNobyAiaW4gYSBnaXZlbiBkaXJlY3Rvcnks IExJQkRJUiwgeW91IG11c3QgZWl0aGVyIHVzZSBsaWJ0b29sLCBhbmQiCi0rICAgICRlY2hvICJz cGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBvciB1c2UgdGhlIFxgLUxM SUJESVInIgotKyAgICAkZWNobyAiZmxhZyBkdXJpbmcgbGlua2luZyBhbmQgZG8gYXQgbGVhc3Qg b25lIG9mIHRoZSBmb2xsb3dpbmc6IgotKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7 IHRoZW4KLSsgICAgICAkZWNobyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRzaGxpYnBhdGhf dmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKLSsgICAgICAkZWNobyAiICAgICBkdXJpbmcgZXhl Y3V0aW9uIgotKyAgICBmaQotKyAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCi0r ICAgICAgJGVjaG8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkcnVucGF0aF92YXInIGVudmly b25tZW50IHZhcmlhYmxlIgotKyAgICAgICRlY2hvICIgICAgIGR1cmluZyBsaW5raW5nIgotKyAg ICBmaQotKyAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4K LSsgICAgICBsaWJkaXI9TElCRElSCi0rICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNcIgotKwotKyAgICAgICRlY2hvICIgICAtIHVzZSB0aGUgXGAkZmxhZycgbGlu a2VyIGZsYWciCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCi0r ICAgICAgJGVjaG8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHJ1biB0aGVz ZSBjb21tYW5kczokYWRtaW5jbWRzIgotKyAgICBmaQotKyAgICBpZiB0ZXN0IC1mIC9ldGMvbGQu c28uY29uZjsgdGhlbgotKyAgICAgICRlY2hvICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5p c3RyYXRvciBhZGQgTElCRElSIHRvIFxgL2V0Yy9sZC5zby5jb25mJyIKLSsgICAgZmkKLSsgICAg JGVjaG8KLSsgICAgJGVjaG8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0aW9u IGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgotKyAgICAkZWNobyAibW9yZSBpbmZvcm1hdGlv biwgc3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCBwYWdlcy4iCi0rICAgICRl Y2hvICJYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSIgfCAkWHNlZAotKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKLSsg ICAgOzsKLSsKLSsgICMgbGlidG9vbCBleGVjdXRlIG1vZGUKLSsgIGV4ZWN1dGUpCi0rICAgIG1v ZGVuYW1lPSIkbW9kZW5hbWU6IGV4ZWN1dGUiCi0rCi0rICAgICMgVGhlIGZpcnN0IGFyZ3VtZW50 IGlzIHRoZSBjb21tYW5kIG5hbWUuCi0rICAgIGNtZD0iJG5vbm9wdCIKLSsgICAgaWYgdGVzdCAt eiAiJGNtZCI7IHRoZW4KLSsgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5 IGEgQ09NTUFORCIgMT4mMgotKyAgICAgICRlY2hvICIkaGVscCIKLSsgICAgICBleGl0ICRFWElU X0ZBSUxVUkUKLSsgICAgZmkKLSsKLSsgICAgIyBIYW5kbGUgLWRsb3BlbiBmbGFncyBpbW1lZGlh dGVseS4KLSsgICAgZm9yIGZpbGUgaW4gJGV4ZWN1dGVfZGxmaWxlczsgZG8KLSsgICAgICBpZiB0 ZXN0ICEgLWYgIiRmaWxlIjsgdGhlbgotKwkkZWNobyAiJG1vZGVuYW1lOiBcYCRmaWxlJyBpcyBu b3QgYSBmaWxlIiAxPiYyCi0rCSRlY2hvICIkaGVscCIgMT4mMgotKwlleGl0ICRFWElUX0ZBSUxV UkUKLSsgICAgICBmaQotKwotKyAgICAgIGRpcj0KLSsgICAgICBjYXNlICRmaWxlIGluCi0rICAg ICAgKi5sYSkKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wg YXJjaGl2ZS4KLSsJaWYgKCR7U0VEfSAtZSAnMnEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVk IGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgotKwllbHNlCi0rCSAgJGVj aG8gIiRtb2RlbmFtZTogXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiIDE+ JjIKLSsJICAkZWNobyAiJGhlbHAiIDE+JjIKLSsJICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJZmkK LSsKLSsJIyBSZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCi0rCWRsbmFtZT0KLSsJbGlicmFyeV9u YW1lcz0KLSsKLSsJIyBJZiB0aGVyZSBpcyBubyBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGFk ZCBvbmUuCi0rCWNhc2UgJGZpbGUgaW4KLSsJKi8qIHwgKlxcKikgLiAkZmlsZSA7OwotKwkqKSAu IC4vJGZpbGUgOzsKLSsJZXNhYwotKwotKwkjIFNraXAgdGhpcyBsaWJyYXJ5IGlmIGl0IGNhbm5v dCBiZSBkbG9wZW5lZC4KLSsJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KLSsJICAjIFdhcm4g aWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMi ICYmICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgJGZpbGUnIHdhcyBub3QgbGlua2VkIHdp dGggXGAtZXhwb3J0LWR5bmFtaWMnIgotKwkgIGNvbnRpbnVlCi0rCWZpCi0rCi0rCWRpcj1gJGVj aG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAotKwl0ZXN0ICJYJGRpciIgPSAi WCRmaWxlIiAmJiBkaXI9LgotKwotKwlpZiB0ZXN0IC1mICIkZGlyLyRvYmpkaXIvJGRsbmFtZSI7 IHRoZW4KLSsJICBkaXI9IiRkaXIvJG9iamRpciIKLSsJZWxzZQotKwkgIGlmIHRlc3QgISAtZiAi JGRpci8kZGxuYW1lIjsgdGhlbgotKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGZpbmQg XGAkZGxuYW1lJyBpbiBcYCRkaXInIG9yIFxgJGRpci8kb2JqZGlyJyIgMT4mMgotKwkgICAgZXhp dCAkRVhJVF9GQUlMVVJFCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsKLSsgICAgICAqLmxvKQotKwkj IEp1c3QgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgLmxvIGZpbGUuCi0rCWRpcj1g JGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAotKwl0ZXN0ICJYJGRpciIg PSAiWCRmaWxlIiAmJiBkaXI9LgotKwk7OwotKwotKyAgICAgICopCi0rCSRlY2hvICIkbW9kZW5h bWU6IHdhcm5pbmcgXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBub24tbGlidG9vbCBsaWJyYXJp ZXMgYW5kIG9iamVjdHMiIDE+JjIKLSsJY29udGludWUKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0r ICAgICAgIyBHZXQgdGhlIGFic29sdXRlIHBhdGhuYW1lLgotKyAgICAgIGFic2Rpcj1gY2QgIiRk aXIiICYmIHB3ZGAKLSsgICAgICB0ZXN0IC1uICIkYWJzZGlyIiAmJiBkaXI9IiRhYnNkaXIiCi0r Ci0rICAgICAgIyBOb3cgYWRkIHRoZSBkaXJlY3RvcnkgdG8gc2hsaWJwYXRoX3Zhci4KLSsgICAg ICBpZiBldmFsICJ0ZXN0IC16IFwiXCQkc2hsaWJwYXRoX3ZhclwiIjsgdGhlbgotKwlldmFsICIk c2hsaWJwYXRoX3Zhcj1cIlwkZGlyXCIiCi0rICAgICAgZWxzZQotKwlldmFsICIkc2hsaWJwYXRo X3Zhcj1cIlwkZGlyOlwkJHNobGlicGF0aF92YXJcIiIKLSsgICAgICBmaQotKyAgICBkb25lCi0r Ci0rICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQg c2hsaWJwYXRoX3ZhcgotKyAgICAjIHJhdGhlciB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMu Ci0rICAgIGxpYnRvb2xfZXhlY3V0ZV9tYWdpYz0iJG1hZ2ljIgotKwotKyAgICAjIENoZWNrIGlm IGFueSBvZiB0aGUgYXJndW1lbnRzIGlzIGEgd3JhcHBlciBzY3JpcHQuCi0rICAgIGFyZ3M9Ci0r ICAgIGZvciBmaWxlCi0rICAgIGRvCi0rICAgICAgY2FzZSAkZmlsZSBpbgotKyAgICAgIC0qKSA7 OwotKyAgICAgICopCi0rCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxp YnRvb2wgcHJvZ3JhbS4KLSsJaWYgKCR7U0VEfSAtZSAnNHEnICRmaWxlIHwgZ3JlcCAiXiMgR2Vu ZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAjIElmIHRo ZXJlIGlzIG5vIGRpcmVjdG9yeSBjb21wb25lbnQsIHRoZW4gYWRkIG9uZS4KLSsJICBjYXNlICRm aWxlIGluCi0rCSAgKi8qIHwgKlxcKikgLiAkZmlsZSA7OwotKwkgICopIC4gLi8kZmlsZSA7Owot KwkgIGVzYWMKLSsKLSsJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBlZCBuYW1lLgotKwkgIGZp bGU9IiRwcm9nZGlyLyRwcm9ncmFtIgotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICAj IFF1b3RlIGFyZ3VtZW50cyAodG8gcHJlc2VydmUgc2hlbGwgbWV0YWNoYXJhY3RlcnMpLgotKyAg ICAgIGZpbGU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAot KyAgICAgIGFyZ3M9IiRhcmdzIFwiJGZpbGVcIiIKLSsgICAgZG9uZQotKwotKyAgICBpZiB0ZXN0 IC16ICIkcnVuIjsgdGhlbgotKyAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhl bgotKwkjIEV4cG9ydCB0aGUgc2hsaWJwYXRoX3Zhci4KLSsJZXZhbCAiZXhwb3J0ICRzaGxpYnBh dGhfdmFyIgotKyAgICAgIGZpCi0rCi0rICAgICAgIyBSZXN0b3JlIHNhdmVkIGVudmlyb25tZW50 IHZhcmlhYmxlcwotKyAgICAgIGZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwgTENf Q1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUwotKyAgICAgIGRvCi0rCWV2YWwgImlmIHRlc3Qg XCJcJHtzYXZlXyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCi0rCQkkbHRfdmFyPVwkc2F2ZV8k bHRfdmFyOyBleHBvcnQgJGx0X3ZhcgotKwkgICAgICBmaSIKLSsgICAgICBkb25lCi0rCi0rICAg ICAgIyBOb3cgcHJlcGFyZSB0byBhY3R1YWxseSBleGVjIHRoZSBjb21tYW5kLgotKyAgICAgIGV4 ZWNfY21kPSJcJGNtZCRhcmdzIgotKyAgICBlbHNlCi0rICAgICAgIyBEaXNwbGF5IHdoYXQgd291 bGQgYmUgZG9uZS4KLSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsJ ZXZhbCAiXCRlY2hvIFwiXCRzaGxpYnBhdGhfdmFyPVwkJHNobGlicGF0aF92YXJcIiIKLSsJJGVj aG8gImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsgICAgICBmaQotKyAgICAgICRlY2hvICIkY21k JGFyZ3MiCi0rICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0r ICAjIGxpYnRvb2wgY2xlYW4gYW5kIHVuaW5zdGFsbCBtb2RlCi0rICBjbGVhbiB8IHVuaW5zdGFs bCkKLSsgICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogJG1vZGUiCi0rICAgIHJtPSIkbm9ub3B0Igot KyAgICBmaWxlcz0KLSsgICAgcm1mb3JjZT0KLSsgICAgZXhpdF9zdGF0dXM9MAotKwotKyAgICAj IFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxl cyByYXRoZXIKLSsgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCi0rICAgIGxpYnRv b2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgotKwotKyAgICBmb3IgYXJnCi0rICAgIGRvCi0rICAg ICAgY2FzZSAkYXJnIGluCi0rICAgICAgLWYpIHJtPSIkcm0gJGFyZyI7IHJtZm9yY2U9eWVzIDs7 Ci0rICAgICAgLSopIHJtPSIkcm0gJGFyZyIgOzsKLSsgICAgICAqKSBmaWxlcz0iJGZpbGVzICRh cmciIDs7Ci0rICAgICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAgIGlmIHRlc3QgLXogIiRybSI7 IHRoZW4KLSsgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGFuIFJNIHBy b2dyYW0iIDE+JjIKLSsgICAgICAkZWNobyAiJGhlbHAiIDE+JjIKLSsgICAgICBleGl0ICRFWElU X0ZBSUxVUkUKLSsgICAgZmkKLSsKLSsgICAgcm1kaXJzPQotKwotKyAgICBvcmlnb2JqZGlyPSIk b2JqZGlyIgotKyAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCi0rICAgICAgZGlyPWAkZWNobyAi WCRmaWxlIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCi0rICAgICAgaWYgdGVzdCAiWCRkaXIi ID0gIlgkZmlsZSI7IHRoZW4KLSsJZGlyPS4KLSsJb2JqZGlyPSIkb3JpZ29iamRpciIKLSsgICAg ICBlbHNlCi0rCW9iamRpcj0iJGRpci8kb3JpZ29iamRpciIKLSsgICAgICBmaQotKyAgICAgIG5h bWU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsgICAgICB0ZXN0ICIk bW9kZSIgPSB1bmluc3RhbGwgJiYgb2JqZGlyPSIkZGlyIgotKwotKyAgICAgICMgUmVtZW1iZXIg b2JqZGlyIGZvciByZW1vdmFsIGxhdGVyLCBiZWluZyBjYXJlZnVsIHRvIGF2b2lkIGR1cGxpY2F0 ZXMKLSsgICAgICBpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgdGhlbgotKwljYXNlICIgJHJtZGly cyAiIGluCi0rCSAgKiIgJG9iamRpciAiKikgOzsKLSsJICAqKSBybWRpcnM9IiRybWRpcnMgJG9i amRpciIgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBEb24ndCBlcnJvciBpZiB0 aGUgZmlsZSBkb2Vzbid0IGV4aXN0IGFuZCBybSAtZiB3YXMgdXNlZC4KLSsgICAgICBpZiAodGVz dCAtTCAiJGZpbGUiKSA+L2Rldi9udWxsIDI+JjEgXAotKwl8fCAodGVzdCAtaCAiJGZpbGUiKSA+ L2Rldi9udWxsIDI+JjEgXAotKwl8fCB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KLSsJOgotKyAgICAg IGVsaWYgdGVzdCAtZCAiJGZpbGUiOyB0aGVuCi0rCWV4aXRfc3RhdHVzPTEKLSsJY29udGludWUK LSsgICAgICBlbGlmIHRlc3QgIiRybWZvcmNlIiA9IHllczsgdGhlbgotKwljb250aW51ZQotKyAg ICAgIGZpCi0rCi0rICAgICAgcm1maWxlcz0iJGZpbGUiCi0rCi0rICAgICAgY2FzZSAkbmFtZSBp bgotKyAgICAgICoubGEpCi0rCSMgUG9zc2libHkgYSBsaWJ0b29sIGFyY2hpdmUsIHNvIHZlcmlm eSBpdC4KLSsJaWYgKCR7U0VEfSAtZSAnMnEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5 IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAuICRkaXIvJG5hbWUKLSsK LSsJICAjIERlbGV0ZSB0aGUgbGlidG9vbCBsaWJyYXJpZXMgYW5kIHN5bWxpbmtzLgotKwkgIGZv ciBuIGluICRsaWJyYXJ5X25hbWVzOyBkbwotKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRp ci8kbiIKLSsJICBkb25lCi0rCSAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBybWZpbGVzPSIk cm1maWxlcyAkb2JqZGlyLyRvbGRfbGlicmFyeSIKLSsKLSsJICBjYXNlICIkbW9kZSIgaW4KLSsJ ICBjbGVhbikKLSsJICAgIGNhc2UgIiAgJGxpYnJhcnlfbmFtZXMgIiBpbgotKwkgICAgIyAiICAi IGluIHRoZSBiZWdpbm5pbmcgY2F0Y2hlcyBlbXB0eSAkZGxuYW1lCi0rCSAgICAqIiAkZGxuYW1l ICIqKSA7OwotKwkgICAgKikgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kZGxuYW1lIiA7Owot KwkgICAgZXNhYwotKwkgICAgIHRlc3QgLW4gIiRsaWJkaXIiICYmIHJtZmlsZXM9IiRybWZpbGVz ICRvYmpkaXIvJG5hbWUgJG9iamRpci8ke25hbWV9aSIKLSsJICAgIDs7Ci0rCSAgdW5pbnN0YWxs KQotKwkgICAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiOyB0aGVuCi0rCSAgICAgICMgRG8g ZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0dW5pbnN0YWxsIGNvbW1hbmRzLgotKwkgICAgICBjbWRz PSRwb3N0dW5pbnN0YWxsX2NtZHMKLSsJICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0r CSAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCQlJRlM9IiRzYXZlX2lmcyIKLSsJCWV2YWwg Y21kPVwiJGNtZFwiCi0rCQkkc2hvdyAiJGNtZCIKLSsJCSRydW4gZXZhbCAiJGNtZCIKLSsJCWlm IHRlc3QgIiQ/IiAtbmUgMCAmJiB0ZXN0ICIkcm1mb3JjZSIgIT0geWVzOyB0aGVuCi0rCQkgIGV4 aXRfc3RhdHVzPTEKLSsJCWZpCi0rCSAgICAgIGRvbmUKLSsJICAgICAgSUZTPSIkc2F2ZV9pZnMi Ci0rCSAgICBmaQotKwotKwkgICAgaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgotKwkg ICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bvc3R1bmluc3RhbGwgY29tbWFuZHMu Ci0rCSAgICAgIGNtZHM9JG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsJICAgICAgc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9J34nCi0rCSAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCQlJRlM9IiRz YXZlX2lmcyIKLSsJCWV2YWwgY21kPVwiJGNtZFwiCi0rCQkkc2hvdyAiJGNtZCIKLSsJCSRydW4g ZXZhbCAiJGNtZCIKLSsJCWlmIHRlc3QgIiQ/IiAtbmUgMCAmJiB0ZXN0ICIkcm1mb3JjZSIgIT0g eWVzOyB0aGVuCi0rCQkgIGV4aXRfc3RhdHVzPTEKLSsJCWZpCi0rCSAgICAgIGRvbmUKLSsJICAg ICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgICBmaQotKwkgICAgIyBGSVhNRTogc2hvdWxkIHJlaW5z dGFsbCB0aGUgYmVzdCByZW1haW5pbmcgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICA7OwotKwkgIGVz YWMKLSsJZmkKLSsJOzsKLSsKLSsgICAgICAqLmxvKQotKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBv YmplY3QsIHNvIHZlcmlmeSBpdC4KLSsJaWYgKCR7U0VEfSAtZSAnMnEnICRmaWxlIHwgZ3JlcCAi XiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsKLSsJ ICAjIFJlYWQgdGhlIC5sbyBmaWxlCi0rCSAgLiAkZGlyLyRuYW1lCi0rCi0rCSAgIyBBZGQgUElD IG9iamVjdCB0byB0aGUgbGlzdCBvZiBmaWxlcyB0byByZW1vdmUuCi0rCSAgaWYgdGVzdCAtbiAi JHBpY19vYmplY3QiIFwKLSsJICAgICAmJiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhl bgotKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kcGljX29iamVjdCIKLSsJICBmaQotKwot KwkgICMgQWRkIG5vbi1QSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4K LSsJICBpZiB0ZXN0IC1uICIkbm9uX3BpY19vYmplY3QiIFwKLSsJICAgICAmJiB0ZXN0ICIkbm9u X3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLSsJICAgIHJtZmlsZXM9IiRybWZpbGVzICRkaXIv JG5vbl9waWNfb2JqZWN0IgotKwkgIGZpCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgKikKLSsJaWYg dGVzdCAiJG1vZGUiID0gY2xlYW4gOyB0aGVuCi0rCSAgbm9leGVuYW1lPSRuYW1lCi0rCSAgY2Fz ZSAkZmlsZSBpbgotKwkgICouZXhlKQotKwkgICAgZmlsZT1gJGVjaG8gJGZpbGV8JHtTRUR9ICdz LC5leGUkLCwnYAotKwkgICAgbm9leGVuYW1lPWAkZWNobyAkbmFtZXwke1NFRH0gJ3MsLmV4ZSQs LCdgCi0rCSAgICAjICRmaWxlIHdpdGggLmV4ZSBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHJt ZmlsZXMsCi0rCSAgICAjIGFkZCAkZmlsZSB3aXRob3V0IC5leGUKLSsJICAgIHJtZmlsZXM9IiRy bWZpbGVzICRmaWxlIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgIyBEbyBhIHRlc3QgdG8gc2Vl IGlmIHRoaXMgaXMgYSBsaWJ0b29sIHByb2dyYW0uCi0rCSAgaWYgKCR7U0VEfSAtZSAnNHEnICRm aWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KLSsJICAgIHJlbGlua19jb21tYW5kPQotKwkgICAgLiAkZGlyLyRub2V4ZW5hbWUKLSsK LSsJICAgICMgbm90ZSAkbmFtZSBzdGlsbCBjb250YWlucyAuZXhlIGlmIGl0IHdhcyBpbiAkZmls ZSBvcmlnaW5hbGx5Ci0rCSAgICAjIGFzIGRvZXMgdGhlIHZlcnNpb24gb2YgJGZpbGUgdGhhdCB3 YXMgYWRkZWQgaW50byAkcm1maWxlcwotKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8k bmFtZSAkb2JqZGlyLyR7bmFtZX1TLiR7b2JqZXh0fSIKLSsJICAgIGlmIHRlc3QgIiRmYXN0X2lu c3RhbGwiID0geWVzICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KLSsJICAgICAg cm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0kbmFtZSIKLSsJICAgIGZpCi0rCSAgICBpZiB0 ZXN0ICJYJG5vZXhlbmFtZSIgIT0gIlgkbmFtZSIgOyB0aGVuCi0rCSAgICAgIHJtZmlsZXM9IiRy bWZpbGVzICRvYmpkaXIvbHQtJHtub2V4ZW5hbWV9LmMiCi0rCSAgICBmaQotKwkgIGZpCi0rCWZp Ci0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgICRzaG93ICIkcm0gJHJtZmlsZXMiCi0rICAgICAg JHJ1biAkcm0gJHJtZmlsZXMgfHwgZXhpdF9zdGF0dXM9MQotKyAgICBkb25lCi0rICAgIG9iamRp cj0iJG9yaWdvYmpkaXIiCi0rCi0rICAgICMgVHJ5IHRvIHJlbW92ZSB0aGUgJHtvYmpkaXJ9cyBp biB0aGUgZGlyZWN0b3JpZXMgd2hlcmUgd2UgZGVsZXRlZCBmaWxlcwotKyAgICBmb3IgZGlyIGlu ICRybWRpcnM7IGRvCi0rICAgICAgaWYgdGVzdCAtZCAiJGRpciI7IHRoZW4KLSsJJHNob3cgInJt ZGlyICRkaXIiCi0rCSRydW4gcm1kaXIgJGRpciA+L2Rldi9udWxsIDI+JjEKLSsgICAgICBmaQot KyAgICBkb25lCi0rCi0rICAgIGV4aXQgJGV4aXRfc3RhdHVzCi0rICAgIDs7Ci0rCi0rICAiIikK LSsgICAgJGVjaG8gIiRtb2RlbmFtZTogeW91IG11c3Qgc3BlY2lmeSBhIE1PREUiIDE+JjIKLSsg ICAgJGVjaG8gIiRnZW5lcmljX2hlbHAiIDE+JjIKLSsgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0r ICAgIDs7Ci0rICBlc2FjCi0rCi0rICBpZiB0ZXN0IC16ICIkZXhlY19jbWQiOyB0aGVuCi0rICAg ICRlY2hvICIkbW9kZW5hbWU6IGludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciIDE+JjIK LSsgICAgJGVjaG8gIiRnZW5lcmljX2hlbHAiIDE+JjIKLSsgICAgZXhpdCAkRVhJVF9GQUlMVVJF Ci0rICBmaQotK2ZpICMgdGVzdCAteiAiJHNob3dfaGVscCIKLSsKLStpZiB0ZXN0IC1uICIkZXhl Y19jbWQiOyB0aGVuCi0rICBldmFsIGV4ZWMgJGV4ZWNfY21kCi0rICBleGl0ICRFWElUX0ZBSUxV UkUKLStmaQotKwotKyMgV2UgbmVlZCB0byBkaXNwbGF5IGhlbHAgZm9yIGVhY2ggb2YgdGhlIG1v ZGVzLgotK2Nhc2UgJG1vZGUgaW4KLSsiIikgJGVjaG8gXAotKyJVc2FnZTogJG1vZGVuYW1lIFtP UFRJT05dLi4uIFtNT0RFLUFSR10uLi4KLSsKLStQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJhcnkt YnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KLSsKLSsgICAgLS1jb25maWcgICAgICAgICAgc2hv dyBhbGwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSsgICAgLS1kZWJ1ZyAgICAgICAgICAgZW5h YmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2luZwotKy1uLCAtLWRyeS1ydW4gICAgICAgICBkaXNwbGF5 IGNvbW1hbmRzIHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcwotKyAgICAtLWZlYXR1cmVzICAg ICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSsg ICAgLS1maW5pc2ggICAgICAgICAgc2FtZSBhcyBcYC0tbW9kZT1maW5pc2gnCi0rICAgIC0taGVs cCAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKLSsgICAgLS1t b2RlPU1PREUgICAgICAgdXNlIG9wZXJhdGlvbiBtb2RlIE1PREUgW2RlZmF1bHQ9aW5mZXJyZWQg ZnJvbSBNT0RFLUFSR1NdCi0rICAgIC0tcXVpZXQgICAgICAgICAgIHNhbWUgYXMgXGAtLXNpbGVu dCcKLSsgICAgLS1zaWxlbnQgICAgICAgICAgZG9uJ3QgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNz YWdlcwotKyAgICAtLXRhZz1UQUcgICAgICAgICB1c2UgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMg ZnJvbSB0YWcgVEFHCi0rICAgIC0tdmVyc2lvbiAgICAgICAgIHByaW50IHZlcnNpb24gaW5mb3Jt YXRpb24KLSsKLStNT0RFIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6Ci0rCi0rICAgICAg Y2xlYW4gICAgICAgICAgIHJlbW92ZSBmaWxlcyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkKLSsg ICAgICBjb21waWxlICAgICAgICAgY29tcGlsZSBhIHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0b29s IG9iamVjdAotKyAgICAgIGV4ZWN1dGUgICAgICAgICBhdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5 IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbQotKyAgICAgIGZpbmlzaCAgICAgICAgICBjb21wbGV0 ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzCi0rICAgICAgaW5zdGFsbCAg ICAgICAgIGluc3RhbGwgbGlicmFyaWVzIG9yIGV4ZWN1dGFibGVzCi0rICAgICAgbGluayAgICAg ICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkgb3IgYW4gZXhlY3V0YWJsZQotKyAgICAgIHVuaW5zdGFs bCAgICAgICByZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFsbGVkIGRpcmVjdG9yeQotKwot K01PREUtQVJHUyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgTU9ERS4gIFRyeSBcYCRtb2RlbmFtZSAt LWhlbHAgLS1tb2RlPU1PREUnIGZvcgotK2EgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBN T0RFLgotKwotK1JlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4iCi0rICBleGl0 ICRFWElUX1NVQ0NFU1MKLSsgIDs7Ci0rCi0rY2xlYW4pCi0rICAkZWNobyBcCi0rIlVzYWdlOiAk bW9kZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNsZWFuIFJNIFtSTS1PUFRJT05dLi4uIEZJTEUu Li4KLSsKLStSZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5LgotKwotK1JNIGlz IHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRl ZCB3aXRoIGVhY2ggRklMRQotKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFy ZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKLSt0byBSTS4KLSsKLStJZiBG SUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBvYmplY3Qgb3IgcHJvZ3JhbSwgYWxsIHRoZSBmaWxl cyBhc3NvY2lhdGVkCi0rd2l0aCBpdCBhcmUgZGVsZXRlZC4gT3RoZXJ3aXNlLCBvbmx5IEZJTEUg aXRzZWxmIGlzIGRlbGV0ZWQgdXNpbmcgUk0uIgotKyAgOzsKLSsKLStjb21waWxlKQotKyAgJGVj aG8gXAotKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1jb21waWxlIENPTVBJ TEUtQ09NTUFORC4uLiBTT1VSQ0VGSUxFCi0rCi0rQ29tcGlsZSBhIHNvdXJjZSBmaWxlIGludG8g YSBsaWJ0b29sIGxpYnJhcnkgb2JqZWN0LgotKwotK1RoaXMgbW9kZSBhY2NlcHRzIHRoZSBmb2xs b3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgotKwotKyAgLW8gT1VUUFVULUZJTEUgICAgc2V0IHRo ZSBvdXRwdXQgZmlsZSBuYW1lIHRvIE9VVFBVVC1GSUxFCi0rICAtcHJlZmVyLXBpYyAgICAgICB0 cnkgdG8gYnVpbGRpbmcgUElDIG9iamVjdHMgb25seQotKyAgLXByZWZlci1ub24tcGljICAgdHJ5 IHRvIGJ1aWxkaW5nIG5vbi1QSUMgb2JqZWN0cyBvbmx5Ci0rICAtc3RhdGljICAgICAgICAgICBh bHdheXMgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZwotKwot K0NPTVBJTEUtQ09NTUFORCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNlZCBpbiBjcmVhdGluZyBhIFxg c3RhbmRhcmQnIG9iamVjdCBmaWxlCi0rZnJvbSB0aGUgZ2l2ZW4gU09VUkNFRklMRS4KLSsKLStU aGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHJlbW92aW5nIHRoZSBkaXJlY3Rv cnkgY29tcG9uZW50IGZyb20KLStTT1VSQ0VGSUxFLCB0aGVuIHN1YnN0aXR1dGluZyB0aGUgQyBz b3VyY2UgY29kZSBzdWZmaXggXGAuYycgd2l0aCB0aGUKLStsaWJyYXJ5IG9iamVjdCBzdWZmaXgs IFxgLmxvJy4iCi0rICA7OwotKwotK2V4ZWN1dGUpCi0rICAkZWNobyBcCi0rIlVzYWdlOiAkbW9k ZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWV4ZWN1dGUgQ09NTUFORCBbQVJHU10uLi4KLSsKLStB dXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbS4KLSsKLStU aGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKLSsKLSsg IC1kbG9wZW4gRklMRSAgICAgIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgRklMRSB0byB0 aGUgbGlicmFyeSBwYXRoCi0rCi0rVGhpcyBtb2RlIHNldHMgdGhlIGxpYnJhcnkgcGF0aCBlbnZp cm9ubWVudCB2YXJpYWJsZSBhY2NvcmRpbmcgdG8gXGAtZGxvcGVuJwotK2ZsYWdzLgotKwotK0lm IGFueSBvZiB0aGUgQVJHUyBhcmUgbGlidG9vbCBleGVjdXRhYmxlIHdyYXBwZXJzLCB0aGVuIHRo ZXkgYXJlIHRyYW5zbGF0ZWQKLStpbnRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgdW5pbnN0YWxsZWQg YmluYXJ5LCBhbmQgYW55IG9mIHRoZWlyIHJlcXVpcmVkIGxpYnJhcnkKLStkaXJlY3RvcmllcyBh cmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkgcGF0aC4KLSsKLStUaGVuLCBDT01NQU5EIGlzIGV4ZWN1 dGVkLCB3aXRoIEFSR1MgYXMgYXJndW1lbnRzLiIKLSsgIDs7Ci0rCi0rZmluaXNoKQotKyAgJGVj aG8gXAotKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1maW5pc2ggW0xJQkRJ Ul0uLi4KLSsKLStDb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVz LgotKwotK0VhY2ggTElCRElSIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgbGlidG9vbCBs aWJyYXJpZXMuCi0rCi0rVGhlIGNvbW1hbmRzIHRoYXQgdGhpcyBtb2RlIGV4ZWN1dGVzIG1heSBy ZXF1aXJlIHN1cGVydXNlciBwcml2aWxlZ2VzLiAgVXNlCi0rdGhlIFxgLS1kcnktcnVuJyBvcHRp b24gaWYgeW91IGp1c3Qgd2FudCB0byBzZWUgd2hhdCB3b3VsZCBiZSBleGVjdXRlZC4iCi0rICA7 OwotKwotK2luc3RhbGwpCi0rICAkZWNobyBcCi0rIlVzYWdlOiAkbW9kZW5hbWUgW09QVElPTl0u Li4gLS1tb2RlPWluc3RhbGwgSU5TVEFMTC1DT01NQU5ELi4uCi0rCi0rSW5zdGFsbCBleGVjdXRh YmxlcyBvciBsaWJyYXJpZXMuCi0rCi0rSU5TVEFMTC1DT01NQU5EIGlzIHRoZSBpbnN0YWxsYXRp b24gY29tbWFuZC4gIFRoZSBmaXJzdCBjb21wb25lbnQgc2hvdWxkIGJlCi0rZWl0aGVyIHRoZSBc YGluc3RhbGwnIG9yIFxgY3AnIHByb2dyYW0uCi0rCi0rVGhlIHJlc3Qgb2YgdGhlIGNvbXBvbmVu dHMgYXJlIGludGVycHJldGVkIGFzIGFyZ3VtZW50cyB0byB0aGF0IGNvbW1hbmQgKG9ubHkKLStC U0QtY29tcGF0aWJsZSBpbnN0YWxsIG9wdGlvbnMgYXJlIHJlY29nbml6ZWQpLiIKLSsgIDs7Ci0r Ci0rbGluaykKLSsgICRlY2hvIFwKLSsiVXNhZ2U6ICRtb2RlbmFtZSBbT1BUSU9OXS4uLiAtLW1v ZGU9bGluayBMSU5LLUNPTU1BTkQuLi4KLSsKLStMaW5rIG9iamVjdCBmaWxlcyBvciBsaWJyYXJp ZXMgdG9nZXRoZXIgdG8gZm9ybSBhbm90aGVyIGxpYnJhcnksIG9yIHRvCi0rY3JlYXRlIGFuIGV4 ZWN1dGFibGUgcHJvZ3JhbS4KLSsKLStMSU5LLUNPTU1BTkQgaXMgYSBjb21tYW5kIHVzaW5nIHRo ZSBDIGNvbXBpbGVyIHRoYXQgeW91IHdvdWxkIHVzZSB0byBjcmVhdGUKLSthIHByb2dyYW0gZnJv bSBzZXZlcmFsIG9iamVjdCBmaWxlcy4KLSsKLStUaGUgZm9sbG93aW5nIGNvbXBvbmVudHMgb2Yg TElOSy1DT01NQU5EIGFyZSB0cmVhdGVkIHNwZWNpYWxseToKLSsKLSsgIC1hbGwtc3RhdGljICAg ICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIGF0IGFsbAotKyAgLWF2b2lkLXZlcnNp b24gICAgZG8gbm90IGFkZCBhIHZlcnNpb24gc3VmZml4IGlmIHBvc3NpYmxlCi0rICAtZGxvcGVu IEZJTEUgICAgICBcYC1kbHByZW9wZW4nIEZJTEUgaWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkIGF0 IHJ1bnRpbWUKLSsgIC1kbHByZW9wZW4gRklMRSAgIGxpbmsgaW4gRklMRSBhbmQgYWRkIGl0cyBz eW1ib2xzIHRvIGx0X3ByZWxvYWRlZF9zeW1ib2xzCi0rICAtZXhwb3J0LWR5bmFtaWMgICBhbGxv dyBzeW1ib2xzIGZyb20gT1VUUFVULUZJTEUgdG8gYmUgcmVzb2x2ZWQgd2l0aCBkbHN5bSgzKQot KyAgLWV4cG9ydC1zeW1ib2xzIFNZTUZJTEUKLSsgICAgICAgICAgICAgICAgICAgIHRyeSB0byBl eHBvcnQgb25seSB0aGUgc3ltYm9scyBsaXN0ZWQgaW4gU1lNRklMRQotKyAgLWV4cG9ydC1zeW1i b2xzLXJlZ2V4IFJFR0VYCi0rICAgICAgICAgICAgICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkg dGhlIHN5bWJvbHMgbWF0Y2hpbmcgUkVHRVgKLSsgIC1MTElCRElSICAgICAgICAgIHNlYXJjaCBM SUJESVIgZm9yIHJlcXVpcmVkIGluc3RhbGxlZCBsaWJyYXJpZXMKLSsgIC1sTkFNRSAgICAgICAg ICAgIE9VVFBVVC1GSUxFIHJlcXVpcmVzIHRoZSBpbnN0YWxsZWQgbGlicmFyeSBsaWJOQU1FCi0r ICAtbW9kdWxlICAgICAgICAgICBidWlsZCBhIGxpYnJhcnkgdGhhdCBjYW4gZGxvcGVuZWQKLSsg IC1uby1mYXN0LWluc3RhbGwgIGRpc2FibGUgdGhlIGZhc3QtaW5zdGFsbCBtb2RlCi0rICAtbm8t aW5zdGFsbCAgICAgICBsaW5rIGEgbm90LWluc3RhbGxhYmxlIGV4ZWN1dGFibGUKLSsgIC1uby11 bmRlZmluZWQgICAgIGRlY2xhcmUgdGhhdCBhIGxpYnJhcnkgZG9lcyBub3QgcmVmZXIgdG8gZXh0 ZXJuYWwgc3ltYm9scwotKyAgLW8gT1VUUFVULUZJTEUgICAgY3JlYXRlIE9VVFBVVC1GSUxFIGZy b20gdGhlIHNwZWNpZmllZCBvYmplY3RzCi0rICAtb2JqZWN0bGlzdCBGSUxFICBVc2UgYSBsaXN0 IG9mIG9iamVjdCBmaWxlcyBmb3VuZCBpbiBGSUxFIHRvIHNwZWNpZnkgb2JqZWN0cwotKyAgLXBy ZWNpb3VzLWZpbGVzLXJlZ2V4IFJFR0VYCi0rICAgICAgICAgICAgICAgICAgICBkb24ndCByZW1v dmUgb3V0cHV0IGZpbGVzIG1hdGNoaW5nIFJFR0VYCi0rICAtcmVsZWFzZSBSRUxFQVNFICBzcGVj aWZ5IHBhY2thZ2UgcmVsZWFzZSBpbmZvcm1hdGlvbgotKyAgLXJwYXRoIExJQkRJUiAgICAgdGhl IGNyZWF0ZWQgbGlicmFyeSB3aWxsIGV2ZW50dWFsbHkgYmUgaW5zdGFsbGVkIGluIExJQkRJUgot KyAgLVJbIF1MSUJESVIgICAgICAgYWRkIExJQkRJUiB0byB0aGUgcnVudGltZSBwYXRoIG9mIHBy b2dyYW1zIGFuZCBsaWJyYXJpZXMKLSsgIC1zdGF0aWMgICAgICAgICAgIGRvIG5vdCBkbyBhbnkg ZHluYW1pYyBsaW5raW5nIG9mIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCi0rICAtc3Rh dGljLWxpYnRvb2wtbGlicwotKyAgICAgICAgICAgICAgICAgICAgZG8gbm90IGRvIGFueSBkeW5h bWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKLSsgIC12ZXJzaW9uLWluZm8gQ1VSUkVO VFs6UkVWSVNJT05bOkFHRV1dCi0rICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5IGxpYnJhcnkg dmVyc2lvbiBpbmZvIFtlYWNoIHZhcmlhYmxlIGRlZmF1bHRzIHRvIDBdCi0rCi0rQWxsIG90aGVy IG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0nKSBhcmUgaWdub3JlZC4KLSsK LStFdmVyeSBvdGhlciBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmlsZW5hbWUuICBGaWxlcyBl bmRpbmcgaW4gXGAubGEnIGFyZQotK3RyZWF0ZWQgYXMgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJy YXJpZXMsIG90aGVyIGZpbGVzIGFyZSBzdGFuZGFyZCBvciBsaWJyYXJ5Ci0rb2JqZWN0IGZpbGVz LgotKwotK0lmIHRoZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxhJywgdGhlbiBhIGxpYnRvb2wg bGlicmFyeSBpcyBjcmVhdGVkLAotK29ubHkgbGlicmFyeSBvYmplY3RzIChcYC5sbycgZmlsZXMp IG1heSBiZSBzcGVjaWZpZWQsIGFuZCBcYC1ycGF0aCcgaXMKLStyZXF1aXJlZCwgZXhjZXB0IHdo ZW4gY3JlYXRpbmcgYSBjb252ZW5pZW5jZSBsaWJyYXJ5LgotKwotK0lmIE9VVFBVVC1GSUxFIGVu ZHMgaW4gXGAuYScgb3IgXGAubGliJywgdGhlbiBhIHN0YW5kYXJkIGxpYnJhcnkgaXMgY3JlYXRl ZAotK3VzaW5nIFxgYXInIGFuZCBcYHJhbmxpYicsIG9yIG9uIFdpbmRvd3MgdXNpbmcgXGBsaWIn LgotKwotK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAubG8nIG9yIFxgLiR7b2JqZXh0fScsIHRo ZW4gYSByZWxvYWRhYmxlIG9iamVjdCBmaWxlCi0raXMgY3JlYXRlZCwgb3RoZXJ3aXNlIGFuIGV4 ZWN1dGFibGUgcHJvZ3JhbSBpcyBjcmVhdGVkLiIKLSsgIDs7Ci0rCi0rdW5pbnN0YWxsKQotKyAg JGVjaG8gXAotKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIC0tbW9kZT11bmluc3RhbGwg Uk0gW1JNLU9QVElPTl0uLi4gRklMRS4uLgotKwotK1JlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBp bnN0YWxsYXRpb24gZGlyZWN0b3J5LgotKwotK1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFt IHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggRklMRQotKyh0eXBp Y2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYn KSB0byBiZSBwYXNzZWQKLSt0byBSTS4KLSsKLStJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5 LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCBhcmUgZGVsZXRlZC4KLStPdGhlcndp c2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBSTS4iCi0rICA7OwotKwotKyop Ci0rICAkZWNobyAiJG1vZGVuYW1lOiBpbnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG1vZGUnIiAx PiYyCi0rICAkZWNobyAiJGhlbHAiIDE+JjIKLSsgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgOzsK LStlc2FjCi0rCi0rJGVjaG8KLSskZWNobyAiVHJ5IFxgJG1vZGVuYW1lIC0taGVscCcgZm9yIG1v cmUgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgbW9kZXMuIgotKwotK2V4aXQgJD8KLSsKLSsjIFRo ZSBUQUdzIGJlbG93IGFyZSBkZWZpbmVkIHN1Y2ggdGhhdCB3ZSBuZXZlciBnZXQgaW50byBhIHNp dHVhdGlvbgotKyMgaW4gd2hpY2ggd2UgZGlzYWJsZSBib3RoIGtpbmRzIG9mIGxpYnJhcmllcy4g IEdpdmVuIGNvbmZsaWN0aW5nCi0rIyBjaG9pY2VzLCB3ZSBnbyBmb3IgYSBzdGF0aWMgbGlicmFy eSwgdGhhdCBpcyB0aGUgbW9zdCBwb3J0YWJsZSwKLSsjIHNpbmNlIHdlIGNhbid0IHRlbGwgd2hl dGhlciBzaGFyZWQgbGlicmFyaWVzIHdlcmUgZGlzYWJsZWQgYmVjYXVzZQotKyMgdGhlIHVzZXIg YXNrZWQgZm9yIHRoYXQgb3IgYmVjYXVzZSB0aGUgcGxhdGZvcm0gZG9lc24ndCBzdXBwb3J0Ci0r IyB0aGVtLiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IG9uIEFJWCwgYmVjYXVzZSB3 ZSBkb24ndAotKyMgc3VwcG9ydCBoYXZpbmcgYm90aCBzdGF0aWMgYW5kIHNoYXJlZCBsaWJyYXJp ZXMgZW5hYmxlZCBhdCB0aGUgc2FtZQotKyMgdGltZSBvbiB0aGF0IHBsYXRmb3JtLCBzbyB3ZSBk ZWZhdWx0IHRvIGEgc2hhcmVkLW9ubHkgY29uZmlndXJhdGlvbi4KLSsjIElmIGEgZGlzYWJsZS1z aGFyZWQgdGFnIGlzIGdpdmVuLCB3ZSdsbCBmYWxsYmFjayB0byBhIHN0YXRpYy1vbmx5Ci0rIyBj b25maWd1cmF0aW9uLiAgQnV0IHdlJ2xsIG5ldmVyIGdvIGZyb20gc3RhdGljLW9ubHkgdG8gc2hh cmVkLW9ubHkuCi0rCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNo YXJlZAotK2Rpc2FibGVfbGlicz1zaGFyZWQKLSsjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklH OiBkaXNhYmxlLXNoYXJlZAotKwotKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogZGlz YWJsZS1zdGF0aWMKLStkaXNhYmxlX2xpYnM9c3RhdGljCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFH IENPTkZJRzogZGlzYWJsZS1zdGF0aWMKLSsKLSsjIExvY2FsIFZhcmlhYmxlczoKLSsjIG1vZGU6 c2hlbGwtc2NyaXB0Ci0rIyBzaC1pbmRlbnRhdGlvbjoyCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlnL21pc3Npbmcgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9t aXNzaW5nCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21pc3NpbmcJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21p c3NpbmcJMjAwOS0wNS0wNiAwMTozMTo0Ny4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzY3 IEBACi0rIyEgL2Jpbi9zaAotKyMgQ29tbW9uIHN0dWIgZm9yIGEgZmV3IG1pc3NpbmcgR05VIHBy b2dyYW1zIHdoaWxlIGluc3RhbGxpbmcuCi0rCi0rc2NyaXB0dmVyc2lvbj0yMDA2LTA1LTEwLjIz Ci0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTksIDIwMDAsIDIwMDIsIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYKLSsjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r IyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29pcyBQaW5hcmQgPHBpbmFyZEBpcm8udW1vbnRyZWFsLmNh PiwgMTk5Ni4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9u KQotKyMgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Ci0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCi0rIyAwMjExMC0xMzAxLCBVU0EuCi0rCi0rIyBBcyBh IHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYg eW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNv bnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwg eW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMg dGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rCi0raWYgdGVzdCAk IyAtZXEgMDsgdGhlbgotKyAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGlu Zm9ybWF0aW9uIgotKyAgZXhpdCAxCi0rZmkKLSsKLStydW49OgotK3NlZF9vdXRwdXQ9J3MvLiog LS1vdXRwdXRbID1dXChbXiBdKlwpLiovXDEvcCcKLStzZWRfbWludXNvPSdzLy4qIC1vIFwoW14g XSpcKS4qL1wxL3AnCi0rCi0rIyBJbiB0aGUgY2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlz c2luZycgaXMgYmVpbmcgcnVuIGluIHRoZQotKyMgc3JjZGlyIGFscmVhZHkuCi0raWYgdGVzdCAt ZiBjb25maWd1cmUuYWM7IHRoZW4KLSsgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuYWMKLStlbHNl Ci0rICBjb25maWd1cmVfYWM9Y29uZmlndXJlLmluCi0rZmkKLSsKLSttc2c9Im1pc3Npbmcgb24g eW91ciBzeXN0ZW0iCi0rCi0rY2FzZSAkMSBpbgotKy0tcnVuKQotKyAgIyBUcnkgdG8gcnVuIHJl cXVlc3RlZCBwcm9ncmFtLCBhbmQganVzdCBleGl0IGlmIGl0IHN1Y2NlZWRzLgotKyAgcnVuPQot KyAgc2hpZnQKLSsgICIkQCIgJiYgZXhpdCAwCi0rICAjIEV4aXQgY29kZSA2MyBtZWFucyB2ZXJz aW9uIG1pc21hdGNoLiAgVGhpcyBvZnRlbiBoYXBwZW5zCi0rICAjIHdoZW4gdGhlIHVzZXIgdHJ5 IHRvIHVzZSBhbiBhbmNpZW50IHZlcnNpb24gb2YgYSB0b29sIG9uCi0rICAjIGEgZmlsZSB0aGF0 IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJzaW9uLiAgSW4gdGhpcyBjYXNlIHdlCi0rICAjIHdlIHNo b3VsZCBwcm9jZWVkIGhhcyBpZiB0aGUgcHJvZ3JhbSBoYWQgYmVlbiBhYnNlbnQsIG9yCi0rICAj IGlmIC0tcnVuIGhhZG4ndCBiZWVuIHBhc3NlZC4KLSsgIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgot KyAgICBydW49OgotKyAgICBtc2c9InByb2JhYmx5IHRvbyBvbGQiCi0rICBmaQotKyAgOzsKLSsK LSsgIC1ofC0taHwtLWhlfC0taGVsfC0taGVscCkKLSsgICAgZWNobyAiXAotKyQwIFtPUFRJT05d Li4uIFBST0dSQU0gW0FSR1VNRU5UXS4uLgotKwotK0hhbmRsZSBcYFBST0dSQU0gW0FSR1VNRU5U XS4uLicgZm9yIHdoZW4gUFJPR1JBTSBpcyBtaXNzaW5nLCBvciByZXR1cm4gYW4KLStlcnJvciBz dGF0dXMgaWYgdGhlcmUgaXMgbm8ga25vd24gaGFuZGxpbmcgZm9yIFBST0dSQU0uCi0rCi0rT3B0 aW9uczoKLSsgIC1oLCAtLWhlbHAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAg LXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0rICAt LXJ1biAgICAgICAgICAgdHJ5IHRvIHJ1biB0aGUgZ2l2ZW4gY29tbWFuZCwgYW5kIGVtdWxhdGUg aXQgaWYgaXQgZmFpbHMKLSsKLStTdXBwb3J0ZWQgUFJPR1JBTSB2YWx1ZXM6Ci0rICBhY2xvY2Fs ICAgICAgdG91Y2ggZmlsZSBcYGFjbG9jYWwubTQnCi0rICBhdXRvY29uZiAgICAgdG91Y2ggZmls ZSBcYGNvbmZpZ3VyZScKLSsgIGF1dG9oZWFkZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4n Ci0rICBhdXRvbTR0ZSAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlLCBvciBjcmVhdGUgYSBzdHVi IG9uZQotKyAgYXV0b21ha2UgICAgIHRvdWNoIGFsbCBcYE1ha2VmaWxlLmluJyBmaWxlcwotKyAg Ymlzb24gICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlz dGluZyAuW2NoXQotKyAgZmxleCAgICAgICAgIGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2li bGUsIGZyb20gZXhpc3RpbmcgLmMKLSsgIGhlbHAybWFuICAgICB0b3VjaCB0aGUgb3V0cHV0IGZp bGUKLSsgIGxleCAgICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9t IGV4aXN0aW5nIC5jCi0rICBtYWtlaW5mbyAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCi0rICB0 YXIgICAgICAgICAgdHJ5IHRhciwgZ251dGFyLCBndGFyLCB0aGVuIHRhciB3aXRob3V0IG5vbi1w b3J0YWJsZSBmbGFncwotKyAgeWFjYyAgICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBw b3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQotKwotK1NlbmQgYnVnIHJlcG9ydHMgdG8gPGJ1 Zy1hdXRvbWFrZUBnbnUub3JnPi4iCi0rICAgIGV4aXQgJD8KLSsgICAgOzsKLSsKLSsgIC12fC0t dnwtLXZlfC0tdmVyfC0tdmVyc3wtLXZlcnNpfC0tdmVyc2lvfC0tdmVyc2lvbikKLSsgICAgZWNo byAibWlzc2luZyAkc2NyaXB0dmVyc2lvbiAoR05VIEF1dG9tYWtlKSIKLSsgICAgZXhpdCAkPwot KyAgICA7OwotKwotKyAgLSopCi0rICAgIGVjaG8gMT4mMiAiJDA6IFVua25vd24gXGAkMScgb3B0 aW9uIgotKyAgICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRp b24iCi0rICAgIGV4aXQgMQotKyAgICA7OwotKwotK2VzYWMKLSsKLSsjIE5vdyBleGl0IGlmIHdl IGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuICBBbHNvIGV4aXQgbm93IGlmIHdlCi0rIyBkb24ndCBo YXZlIGl0IGFuZCAtLXZlcnNpb24gd2FzIHBhc3NlZCAobW9zdCBsaWtlbHkgdG8gZGV0ZWN0Ci0r IyB0aGUgcHJvZ3JhbSkuCi0rY2FzZSAkMSBpbgotKyAgbGV4fHlhY2MpCi0rICAgICMgTm90IEdO VSBwcm9ncmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lvbi4KLSsgICAgOzsKLSsKLSsgIHRh cikKLSsgICAgaWYgdGVzdCAtbiAiJHJ1biI7IHRoZW4KLSsgICAgICAgZWNobyAxPiYyICJFUlJP UjogXGB0YXInIHJlcXVpcmVzIC0tcnVuIgotKyAgICAgICBleGl0IDEKLSsgICAgZWxpZiB0ZXN0 ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8IHRlc3QgIngkMiIgPSAieC0taGVscCI7IHRoZW4KLSsg ICAgICAgZXhpdCAxCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICAqKQotKyAgICBpZiB0ZXN0IC16 ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAg ICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4KLSsgICAgICAgZXhpdCAxCi0rICAgIGVsaWYg dGVzdCAieCQyIiA9ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIiID0gIngtLWhlbHAiOyB0aGVu Ci0rICAgICAgICMgQ291bGQgbm90IHJ1biAtLXZlcnNpb24gb3IgLS1oZWxwLiAgVGhpcyBpcyBw cm9iYWJseSBzb21lb25lCi0rICAgICAgICMgcnVubmluZyBgJFRPT0wgLS12ZXJzaW9uJyBvciBg JFRPT0wgLS1oZWxwJyB0byBjaGVjayB3aGV0aGVyCi0rICAgICAgICMgJFRPT0wgZXhpc3RzIGFu ZCBub3Qga25vd2luZyAkVE9PTCB1c2VzIG1pc3NpbmcuCi0rICAgICAgIGV4aXQgMQotKyAgICBm aQotKyAgICA7OwotK2VzYWMKLSsKLSsjIElmIGl0IGRvZXMgbm90IGV4aXN0LCBvciBmYWlscyB0 byBydW4gKHBvc3NpYmx5IGFuIG91dGRhdGVkIHZlcnNpb24pLAotKyMgdHJ5IHRvIGVtdWxhdGUg aXQuCi0rY2FzZSAkMSBpbgotKyAgYWNsb2NhbCopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5J Tkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAg IHlvdSBtb2RpZmllZCBcYGFjaW5jbHVkZS5tNCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91 IG1pZ2h0IHdhbnQKLSsgICAgICAgICB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQ ZXJsJyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tCi0rICAgICAgICAgYW55IEdOVSBhcmNoaXZl IHNpdGUuIgotKyAgICB0b3VjaCBhY2xvY2FsLm00Ci0rICAgIDs7Ci0rCi0rICBhdXRvY29uZikK LSsgICAgZWNobyAxPiYyICJcCi0rV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQg b25seSBuZWVkIGl0IGlmCi0rICAgICAgICAgeW91IG1vZGlmaWVkIFxgJHtjb25maWd1cmVfYWN9 Jy4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlCi0rICAgICAgICAgXGBBdXRvY29uZicg YW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tIGFueSBHTlUKLSsgICAgICAg ICBhcmNoaXZlIHNpdGUuIgotKyAgICB0b3VjaCBjb25maWd1cmUKLSsgICAgOzsKLSsKLSsgIGF1 dG9oZWFkZXIpCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZ b3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFjY29u ZmlnLmgnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50Ci0rICAgICAgICAg dG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIg dGhlbQotKyAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICBmaWxlcz1g c2VkIC1uICdzL15bIF0qQVtDTV1fQ09ORklHX0hFQURFUihcKFteKV0qXCkpLiovXDEvcCcgJHtj b25maWd1cmVfYWN9YAotKyAgICB0ZXN0IC16ICIkZmlsZXMiICYmIGZpbGVzPSJjb25maWcuaCIK LSsgICAgdG91Y2hfZmlsZXM9Ci0rICAgIGZvciBmIGluICRmaWxlczsgZG8KLSsgICAgICBjYXNl ICRmIGluCi0rICAgICAgKjoqKSB0b3VjaF9maWxlcz0iJHRvdWNoX2ZpbGVzICJgZWNobyAiJGYi IHwKLSsJCQkJICAgICAgIHNlZCAtZSAncy9eW146XSo6Ly8nIC1lICdzLzouKi8vJ2A7OwotKyAg ICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYuaW4iOzsKLSsgICAgICBlc2FjCi0r ICAgIGRvbmUKLSsgICAgdG91Y2ggJHRvdWNoX2ZpbGVzCi0rICAgIDs7Ci0rCi0rICBhdXRvbWFr ZSopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hv dWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYE1ha2VmaWxlLmFt JywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4KLSsgICAgICAgICBZb3Ug bWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdl cy4KLSsgICAgICAgICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rICAg IGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1wcmludCB8Ci0rCSAgIHNlZCAncy9c LmFtJC8uaW4vJyB8Ci0rCSAgIHdoaWxlIHJlYWQgZjsgZG8gdG91Y2ggIiRmIjsgZG9uZQotKyAg ICA7OwotKwotKyAgYXV0b200dGUpCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEn IGlzIG5lZWRlZCwgYnV0IGlzICRtc2cuCi0rICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZp ZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKLSsgICAgICAgICBwcm9wZXIgdG9vbHMg Zm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4KLSsgICAgICAgICBZb3UgY2FuIGdldCBcYCQxJyBh cyBwYXJ0IG9mIFxgQXV0b2NvbmYnIGZyb20gYW55IEdOVQotKyAgICAgICAgIGFyY2hpdmUgc2l0 ZS4iCi0rCi0rICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAg ICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVz byJgCi0rICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgotKwl0b3VjaCAkZmlsZQotKyAgICBl bHNlCi0rCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQotKwllY2hvICIjISAvYmluL3No IgotKwllY2hvICIjIENyZWF0ZWQgYnkgR05VIEF1dG9tYWtlIG1pc3NpbmcgYXMgYSByZXBsYWNl bWVudCBvZiIKLSsJZWNobyAiIyAgJCAkQCIKLSsJZWNobyAiZXhpdCAwIgotKwljaG1vZCAreCAk ZmlsZQotKwlleGl0IDEKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGJpc29ufHlhY2MpCi0rICAg IGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVl ZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnknIGZpbGUuICBZb3UgbWF5IG5l ZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKLSsgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9k aWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0Ci0rICAgICAgICAgXGBCaXNv bicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rICAgIHJtIC1mIHkudGFiLmMgeS50YWIu aAotKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0rICAgICAgICBldmFsIExBU1RBUkc9Ilwk eyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLnkpCi0rCSAgICBTUkNGSUxFPWBlY2hvICIk TEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8nYAotKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0 aGVuCi0rCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50YWIuYwotKwkgICAgZmkKLSsJICAgIFNS Q0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9oLydgCi0rCSAgICBpZiB0ZXN0IC1m ICIkU1JDRklMRSI7IHRoZW4KLSsJICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5oCi0rCSAg ICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAhIC1mIHkudGFiLmg7 IHRoZW4KLSsJZWNobyA+eS50YWIuaAotKyAgICBmaQotKyAgICBpZiB0ZXN0ICEgLWYgeS50YWIu YzsgdGhlbgotKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPnkudGFiLmMKLSsgICAgZmkK LSsgICAgOzsKLSsKLSsgIGxleHxmbGV4KQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBc YCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsgICAgICAgICB5b3Ug bW9kaWZpZWQgYSBcYC5sJyBmaWxlLiAgWW91IG1heSBuZWVkIHRoZSBcYEZsZXgnIHBhY2thZ2UK LSsgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVj dC4gIFlvdSBjYW4gZ2V0Ci0rICAgICAgICAgXGBGbGV4JyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBz aXRlLiIKLSsgICAgcm0gLWYgbGV4Lnl5LmMKLSsgICAgaWYgdGVzdCAkIyAtbmUgMTsgdGhlbgot KyAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCi0rCWNhc2UgJExBU1RBUkcgaW4KLSsJKi5s KQotKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL2wkL2MvJ2AKLSsJICAg IGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgotKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIGxl eC55eS5jCi0rCSAgICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAh IC1mIGxleC55eS5jOyB0aGVuCi0rCWVjaG8gJ21haW4oKSB7IHJldHVybiAwOyB9JyA+bGV4Lnl5 LmMKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGhlbHAybWFuKQotKyAgICBlY2hvIDE+JjIgIlwK LStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsJ IHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2YgYSBtYW51YWwgcGFnZS4gIFlvdSBtYXkgbmVl ZCB0aGUKLSsJIFxgSGVscDJtYW4nIHBhY2thZ2UgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNh dGlvbnMgdG8gdGFrZQotKwkgZWZmZWN0LiAgWW91IGNhbiBnZXQgXGBIZWxwMm1hbicgZnJvbSBh bnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rCi0rICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAi JHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwg c2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgotKwl0 b3VjaCAkZmlsZQotKyAgICBlbHNlCi0rCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQot KwllY2hvICIuYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlIgot KwlleGl0IDEKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIG1ha2VpbmZvKQotKyAgICBlY2hvIDE+ JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQg aWYKLSsgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC50ZXhpJyBvciBcYC50ZXhpbmZvJyBmaWxl LCBvciBhbnkgb3RoZXIgZmlsZQotKyAgICAgICAgIGluZGlyZWN0bHkgYWZmZWN0aW5nIHRoZSBh c3BlY3Qgb2YgdGhlIG1hbnVhbC4gIFRoZSBzcHVyaW91cwotKyAgICAgICAgIGNhbGwgbWlnaHQg YWxzbyBiZSB0aGUgY29uc2VxdWVuY2Ugb2YgdXNpbmcgYSBidWdneSBcYG1ha2UnIChBSVgsCi0r ICAgICAgICAgRFUsIElSSVgpLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBUZXhp bmZvJyBwYWNrYWdlIG9yCi0rICAgICAgICAgdGhlIFxgR05VIG1ha2UnIHBhY2thZ2UuICBHcmFi IGVpdGhlciBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKLSsgICAgIyBUaGUgZmlsZSB0byB0 b3VjaCBpcyB0aGF0IHNwZWNpZmllZCB3aXRoIC1vIC4uLgotKyAgICBmaWxlPWBlY2hvICIkKiIg fCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAKLSsgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVj aG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAotKyAgICBpZiB0ZXN0IC16ICIkZmlsZSI7 IHRoZW4KLSsgICAgICAjIC4uLiBvciBpdCBpcyB0aGUgb25lIHNwZWNpZmllZCB3aXRoIEBzZXRm aWxlbmFtZSAuLi4KLSsgICAgICBpbmZpbGU9YGVjaG8gIiQqIiB8IHNlZCAncy8uKiBcKFteIF0q XCkgKiQvXDEvJ2AKLSsgICAgICBmaWxlPWBzZWQgLW4gJwotKwkvXkBzZXRmaWxlbmFtZS97Ci0r CSAgcy8uKiBcKFteIF0qXCkgKiQvXDEvCi0rCSAgcAotKwkgIHEKLSsJfScgJGluZmlsZWAKLSsg ICAgICAjIC4uLiBvciBpdCBpcyBkZXJpdmVkIGZyb20gdGhlIHNvdXJjZSBuYW1lIChkaXIvZi50 ZXhpIGJlY29tZXMgZi5pbmZvKQotKyAgICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hv ICIkaW5maWxlIiB8IHNlZCAncywuKi8sLDtzLC5bXi5dKiQsLCdgLmluZm8KLSsgICAgZmkKLSsg ICAgIyBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCwgdGhlIHVzZXIgcmVhbGx5IG5lZWRzIG1h a2VpbmZvOwotKyAgICAjIGxldCdzIGZhaWwgd2l0aG91dCB0b3VjaGluZyBhbnl0aGluZy4KLSsg ICAgdGVzdCAtZiAkZmlsZSB8fCBleGl0IDEKLSsgICAgdG91Y2ggJGZpbGUKLSsgICAgOzsKLSsK LSsgIHRhcikKLSsgICAgc2hpZnQKLSsKLSsgICAgIyBXZSBoYXZlIGFscmVhZHkgdHJpZWQgdGFy IGluIHRoZSBnZW5lcmljIHBhcnQuCi0rICAgICMgTG9vayBmb3IgZ251dGFyL2d0YXIgYmVmb3Jl IGludm9jYXRpb24gdG8gYXZvaWQgdWdseSBlcnJvcgotKyAgICAjIG1lc3NhZ2VzLgotKyAgICBp ZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxKTsgdGhlbgotKyAgICAgICBnbnV0 YXIgIiRAIiAmJiBleGl0IDAKLSsgICAgZmkKLSsgICAgaWYgKGd0YXIgLS12ZXJzaW9uID4gL2Rl di9udWxsIDI+JjEpOyB0aGVuCi0rICAgICAgIGd0YXIgIiRAIiAmJiBleGl0IDAKLSsgICAgZmkK LSsgICAgZmlyc3Rhcmc9IiQxIgotKyAgICBpZiBzaGlmdDsgdGhlbgotKwljYXNlICRmaXJzdGFy ZyBpbgotKwkqbyopCi0rCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL28v L2AKLSsJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAotKwkgICAgOzsKLSsJZXNh YwotKwljYXNlICRmaXJzdGFyZyBpbgotKwkqaCopCi0rCSAgICBmaXJzdGFyZz1gZWNobyAiJGZp cnN0YXJnIiB8IHNlZCBzL2gvL2AKLSsJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQg MAotKwkgICAgOzsKLSsJZXNhYwotKyAgICBmaQotKwotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJO SU5HOiBJIGNhbid0IHNlZW0gdG8gYmUgYWJsZSB0byBydW4gXGB0YXInIHdpdGggdGhlIGdpdmVu IGFyZ3VtZW50cy4KLSsgICAgICAgICBZb3UgbWF5IHdhbnQgdG8gaW5zdGFsbCBHTlUgdGFyIG9y IEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNrIHRoZQotKyAgICAgICAgIGNvbW1hbmQgbGluZSBhcmd1 bWVudHMuIgotKyAgICBleGl0IDEKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIGVjaG8gMT4mMiAi XAotK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYW5kIGlzICRtc2cuCi0rICAgICAgICAgWW91 IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKLSsgICAg ICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4gIENoZWNrIHRoZSBc YFJFQURNRScgZmlsZSwKLSsgICAgICAgICBpdCBvZnRlbiB0ZWxscyB5b3UgYWJvdXQgdGhlIG5l ZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0YWxsaW5nCi0rICAgICAgICAgdGhpcyBwYWNrYWdl LiAgWW91IG1heSBhbHNvIHBlZWsgYXQgYW55IEdOVSBhcmNoaXZlIHNpdGUsIGluIGNhc2UKLSsg ICAgICAgICBzb21lIG90aGVyIHBhY2thZ2Ugd291bGQgY29udGFpbiB0aGlzIG1pc3NpbmcgXGAk MScgcHJvZ3JhbS4iCi0rICAgIGV4aXQgMQotKyAgICA7OwotK2VzYWMKLSsKLStleGl0IDAKLSsK LSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29r cyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSsj IHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotKyMgdGltZS1zdGFtcC1l bmQ6ICIkIgotKyMgRW5kOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZSBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmln dXJlCTIwMDktMDUtMDYgMDE6MzI6NDAuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL2NvbmZpZ3VyZQkyMDA5LTA1LTA2IDAxOjMxOjQ0LjAwMDAwMDAwMCArMDIwMAotQEAg LTEsNzIgKzEsMjU3MTMgQEAKLS0jIS9iaW4vc2gKLSsjISAvYmluL3NoCi0rIyBHdWVzcyB2YWx1 ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgot KyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzIGZvciBTT0NJIDMuMC4wLgotKyMKLSsj IFJlcG9ydCBidWdzIHRvIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgotKyMKLSsj IENvcHlyaWdodCAoQykgMjAwNC0yMDA5IE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5z b3VyY2Vmb3JnZS5uZXQ+Ci0rIwotKyMgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAx OTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKyMgMjAwMiwgMjAwMywgMjAwNCwg MjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsj IFRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0 cmlidXRlIGFuZCBtb2RpZnkgaXQuCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMg TTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0g Ci0taWYgWyAkIyAtZ3QgMCBdCi0tdGhlbgotLSAgICBpZiBbICQxID0gIi1oZWxwIiAtbyAkMSA9 ICItLWhlbHAiIF0KLSsjIEJlIG1vcmUgQm91cm5lIGNvbXBhdGlibGUKLStEVUFMQ0FTRT0xOyBl eHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitz ZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNo Ci0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxp dHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2Uu ICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwot KyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYv bnVsbGAgaW4KLSsgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7OwotK2VzYWMKLSsKLStmaQotKwot KwotKwotKwotKyMgUEFUSCBuZWVkcyBDUgotKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hhcmFj dGVyIFJhbmdlcy4KLSthc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicK LSthc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKLSthc19jcl9MZXR0 ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKLSthc19jcl9kaWdpdHM9JzAxMjM0NTY3 ODknCi0rYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCi0rCi0rYXNfbmw9 JwotKycKLStleHBvcnQgYXNfbmwKLSsjIFByaW50aW5nIGEgbG9uZyBzdHJpbmcgY3Jhc2hlcyBT b2xhcmlzIDcgL3Vzci9iaW4vcHJpbnRmLgotK2FzX2VjaG89J1xcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnCi0rYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFz X2VjaG8kYXNfZWNobyRhc19lY2hvCi0rYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8k YXNfZWNobyRhc19lY2hvJGFzX2VjaG8KLStpZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2VjaG9g IiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfZWNobz0ncHJpbnRmICVz XG4nCi0rICBhc19lY2hvX249J3ByaW50ZiAlcycKLStlbHNlCi0rICBpZiB0ZXN0ICJYYCgvdXNy L3VjYi9lY2hvIC1uIC1uICRhc19lY2hvKSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNfZWNobyI7 IHRoZW4KLSsgICAgYXNfZWNob19ib2R5PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQxJGFzX25s IicKLSsgICAgYXNfZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJwotKyAgZWxzZQotKyAgICBhc19l Y2hvX2JvZHk9J2V2YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJwotKyAgICBhc19lY2hvX25f Ym9keT0nZXZhbAotKyAgICAgIGFyZz0kMTsKLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAq IiRhc19ubCIqKQotKwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKLSsJYXJnPWBl eHByICJYJGFyZyIgOiAiLiokYXNfbmxcXCguKlxcKSJgOzsKLSsgICAgICBlc2FjOwotKyAgICAg IGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKLSsgICAgJwotKyAg ICBleHBvcnQgYXNfZWNob19uX2JvZHkKLSsgICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNob19u X2JvZHkgYXNfZWNobycKLSsgIGZpCi0rICBleHBvcnQgYXNfZWNob19ib2R5Ci0rICBhc19lY2hv PSdzaCAtYyAkYXNfZWNob19ib2R5IGFzX2VjaG8nCi0rZmkKLSsKLSsjIFRoZSB1c2VyIGlzIGFs d2F5cyByaWdodC4KLStpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhl bgotKyAgUEFUSF9TRVBBUkFUT1I9OgotKyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQQVRI OyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgJiYgewotKyAgICAoUEFUSD0nL2JpbjovYmluJzsg RlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8fAotKyAgICAgIFBBVEhfU0VQ QVJBVE9SPSc7JwotKyAgfQotK2ZpCi0rCi0rIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUu Ci0raWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuCi0rICBhc191bnNldD11bnNldAotK2Vsc2UKLSsgIGFzX3Vuc2V0PWZhbHNlCi0rZmkKLSsK LSsKLSsjIElGUwotKyMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lz ZWx5IHRoYXQgb3JkZXIuICBRdW90aW5nIGlzCi0rIyB0aGVyZSB0byBwcmV2ZW50IGVkaXRvcnMg ZnJvbSBjb21wbGFpbmluZyBhYm91dCBzcGFjZS10YWIuCi0rIyAoSWYgX0FTX1BBVEhfV0FMSyB3 ZXJlIGNhbGxlZCB3aXRoIElGUyB1bnNldCwgaXQgd291bGQgZGlzYWJsZSB3b3JkCi0rIyBzcGxp dHRpbmcgYnkgc2V0dGluZyBJRlMgdG8gZW1wdHkgdmFsdWUuKQotK0lGUz0iICIiCSRhc19ubCIK LSsKLSsjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBu byBkaXJlY3Rvcnkgc2VwYXJhdG9yLgotK2Nhc2UgJDAgaW4KLSsgICpbXFwvXSogKSBhc19teXNl bGY9JDAgOzsKLSsgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStm b3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNl bGY9JGFzX2Rpci8kMCAmJiBicmVhawotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICAg ICA7OwotK2VzYWMKLSsjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkg d2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0rIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3Qg dG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCi0raWYgdGVzdCAieCRhc19teXNlbGYiID0geDsgdGhl bgotKyAgYXNfbXlzZWxmPSQwCi0rZmkKLStpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVu Ci0rICAkYXNfZWNobyAiJGFzX215c2VsZjogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVy dW4gd2l0aCBhbiBhYnNvbHV0ZSBmaWxlIG5hbWUiID4mMgotKyAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9Ci0rZmkKLSsKLSsjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KLStm b3IgYXNfdmFyIGluIEVOViBNQUlMIE1BSUxQQVRICi0rZG8gKCRhc191bnNldCAkYXNfdmFyKSA+ L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKLStkb25lCi0rUFMxPSckICcKLStQ UzI9Jz4gJwotK1BTND0nKyAnCi0rCi0rIyBOTFMgbnVpc2FuY2VzLgotK0xDX0FMTD1DCi0rZXhw b3J0IExDX0FMTAotK0xBTkdVQUdFPUMKLStleHBvcnQgTEFOR1VBR0UKLSsKLSsjIFJlcXVpcmVk IHRvIHVzZSBiYXNlbmFtZS4KLStpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAm JgotKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCi0r ICBhc19leHByPWV4cHIKLStlbHNlCi0rICBhc19leHByPWZhbHNlCi0rZmkKLSsKLStpZiAoYmFz ZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAyPiYx YCIgPSAiWC8iOyB0aGVuCi0rICBhc19iYXNlbmFtZT1iYXNlbmFtZQotK2Vsc2UKLSsgIGFzX2Jh c2VuYW1lPWZhbHNlCi0rZmkKLSsKLSsKLSsjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCi0rYXNf bWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8Ci0rJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14v XVteL10qXCkvKiQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiQwIiA6 ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYLyIkMCIgfAotKyAgICBz ZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkg IH0KLSsJICAvXlhcL1woXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0r CSAgL15YXC9cKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8u Ki8uLzsgcSdgCi0rCi0rIyBDRFBBVEguCi0rJGFzX3Vuc2V0IENEUEFUSAotKwotKwotK2lmIHRl c3QgIngkQ09ORklHX1NIRUxMIiA9IHg7IHRoZW4KLSsgIGlmIChldmFsICI6IikgMj4vZGV2L251 bGw7IHRoZW4KLSsgIGFzX2hhdmVfcmVxdWlyZWQ9eWVzCi0rZWxzZQotKyAgYXNfaGF2ZV9yZXF1 aXJlZD1ubwotK2ZpCi0rCi0rICBpZiB0ZXN0ICRhc19oYXZlX3JlcXVpcmVkID0geWVzICYmCSAo ZXZhbCAiOgotKyhhc19mdW5jX3JldHVybiAoKSB7Ci0rICAoZXhpdCBcJDEpCi0rfQotK2FzX2Z1 bmNfc3VjY2VzcyAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAwCi0rfQotK2FzX2Z1bmNfZmFpbHVy ZSAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAxCi0rfQotK2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkg ewotKyAgcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19yZXRfZmFpbHVyZSAoKSB7Ci0rICByZXR1cm4g MQotK30KLSsKLStleGl0Y29kZT0wCi0raWYgYXNfZnVuY19zdWNjZXNzOyB0aGVuCi0rICA6Ci0r ZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3N1Y2Nlc3MgZmFpbGVkLgotK2Zp Ci0rCi0raWYgYXNfZnVuY19mYWlsdXJlOyB0aGVuCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFz X2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiBhc19mdW5jX3JldF9zdWNjZXNz OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3JldF9z dWNjZXNzIGZhaWxlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X2ZhaWx1cmU7IHRoZW4KLSsg IGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19yZXRfZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkK LSsKLStpZiAoIHNldCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFc IiApOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBwb3NpdGlvbmFs IHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCi0rZmkKLSsKLSt0ZXN0IFwkZXhpdGNvZGUgPSAw KSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSsKLSsoCi0rICBhc19saW5lbm9fMT1cJExJTkVO TwotKyAgYXNfbGluZW5vXzI9XCRMSU5FTk8KLSsgIHRlc3QgXCJ4XCRhc19saW5lbm9fMVwiICE9 IFwieFwkYXNfbGluZW5vXzJcIiAmJgotKyAgdGVzdCBcInhcYGV4cHIgXCRhc19saW5lbm9fMSAr IDFcYFwiID0gXCJ4XCRhc19saW5lbm9fMlwiKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSsi KSAyPiAvZGV2L251bGw7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhc19jYW5kaWRhdGVfc2hlbGxz PQotKyAgICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2Rp ciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotK2Rv Ci0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgot KyAgY2FzZSAkYXNfZGlyIGluCi0rCSAvKikKLSsJICAgZm9yIGFzX2Jhc2UgaW4gc2ggYmFzaCBr c2ggc2g1OyBkbwotKwkgICAgIGFzX2NhbmRpZGF0ZV9zaGVsbHM9IiRhc19jYW5kaWRhdGVfc2hl bGxzICRhc19kaXIvJGFzX2Jhc2UiCi0rCSAgIGRvbmU7OwotKyAgICAgICBlc2FjCi0rZG9uZQot K0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsKLSsgICAgICBmb3IgYXNfc2hlbGwgaW4gJGFzX2NhbmRp ZGF0ZV9zaGVsbHMgJFNIRUxMOyBkbwotKwkgIyBUcnkgb25seSBzaGVsbHMgdGhhdCBleGlzdCwg dG8gc2F2ZSBzZXZlcmFsIGZvcmtzLgotKwkgaWYgeyB0ZXN0IC1mICIkYXNfc2hlbGwiIHx8IHRl c3QgLWYgIiRhc19zaGVsbC5leGUiOyB9ICYmCi0rCQl7ICgiJGFzX3NoZWxsIikgMj4gL2Rldi9u dWxsIDw8XF9BU0VPRgotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxh dGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06 Ci0rICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsi JEAifSwgd2hpY2gKLSsgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlz IGZlYXR1cmUuCi0rICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLSsgIHNldG9wdCBOT19H TE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluCi0rICAq cG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKLStlc2FjCi0rCi0rZmkKLSsKLSsKLSs6Ci0rX0FTRU9G Ci0rfTsgdGhlbgotKyAgQ09ORklHX1NIRUxMPSRhc19zaGVsbAotKwkgICAgICAgYXNfaGF2ZV9y ZXF1aXJlZD15ZXMKLSsJICAgICAgIGlmIHsgIiRhc19zaGVsbCIgMj4gL2Rldi9udWxsIDw8XF9B U0VPRgotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4v ZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFBy ZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hp Y2gKLSsgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUu Ci0rICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNU Ci0rZWxzZQotKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluCi0rICAqcG9zaXgqKSBz ZXQgLW8gcG9zaXggOzsKLStlc2FjCi0rCi0rZmkKLSsKLSsKLSs6Ci0rKGFzX2Z1bmNfcmV0dXJu ICgpIHsKLSsgIChleGl0ICQxKQotK30KLSthc19mdW5jX3N1Y2Nlc3MgKCkgewotKyAgYXNfZnVu Y19yZXR1cm4gMAotK30KLSthc19mdW5jX2ZhaWx1cmUgKCkgewotKyAgYXNfZnVuY19yZXR1cm4g MQotK30KLSthc19mdW5jX3JldF9zdWNjZXNzICgpIHsKLSsgIHJldHVybiAwCi0rfQotK2FzX2Z1 bmNfcmV0X2ZhaWx1cmUgKCkgewotKyAgcmV0dXJuIDEKLSt9Ci0rCi0rZXhpdGNvZGU9MAotK2lm IGFzX2Z1bmNfc3VjY2VzczsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGV4aXRjb2RlPTEKLSsgIGVj aG8gYXNfZnVuY19zdWNjZXNzIGZhaWxlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfZmFpbHVyZTsg dGhlbgotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX2ZhaWx1cmUgc3VjY2VlZGVkLgot K2ZpCi0rCi0raWYgYXNfZnVuY19yZXRfc3VjY2VzczsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGV4 aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19yZXRfc3VjY2VzcyBmYWlsZWQuCi0rZmkKLSsKLStp ZiBhc19mdW5jX3JldF9mYWlsdXJlOyB0aGVuCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1 bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLgotK2ZpCi0rCi0raWYgKCBzZXQgeDsgYXNfZnVuY19y ZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9ICIkMSIgKTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGV4 aXRjb2RlPTEKLSsgIGVjaG8gcG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdlcmUgbm90IHNhdmVkLgot K2ZpCi0rCi0rdGVzdCAkZXhpdGNvZGUgPSAwKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSsK LSsoCi0rICBhc19saW5lbm9fMT0kTElORU5PCi0rICBhc19saW5lbm9fMj0kTElORU5PCi0rICB0 ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKLSsgIHRlc3QgInhgZXhw ciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIpIHx8IHsgKGV4aXQgMSk7IGV4 aXQgMTsgfQotKwotK19BU0VPRgotK307IHRoZW4KLSsgIGJyZWFrCi0rZmkKLSsKLStmaQotKwot KyAgICAgIGRvbmUKLSsKLSsgICAgICBpZiB0ZXN0ICJ4JENPTkZJR19TSEVMTCIgIT0geDsgdGhl bgotKyAgZm9yIGFzX3ZhciBpbiBCQVNIX0VOViBFTlYKLSsJZG8gKCRhc191bnNldCAkYXNfdmFy KSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKLSsJZG9uZQotKwlleHBvcnQg Q09ORklHX1NIRUxMCi0rCWV4ZWMgIiRDT05GSUdfU0hFTEwiICIkYXNfbXlzZWxmIiAkezErIiRA In0KLStmaQotKwotKwotKyAgICBpZiB0ZXN0ICRhc19oYXZlX3JlcXVpcmVkID0gbm87IHRoZW4K LSsgIGVjaG8gVGhpcyBzY3JpcHQgcmVxdWlyZXMgYSBzaGVsbCBtb3JlIG1vZGVybiB0aGFuIGFs bCB0aGUKLSsgICAgICBlY2hvIHNoZWxscyB0aGF0IEkgZm91bmQgb24geW91ciBzeXN0ZW0uICBQ bGVhc2UgaW5zdGFsbCBhCi0rICAgICAgZWNobyBtb2Rlcm4gc2hlbGwsIG9yIG1hbnVhbGx5IHJ1 biB0aGUgc2NyaXB0IHVuZGVyIHN1Y2ggYQotKyAgICAgIGVjaG8gc2hlbGwgaWYgeW91IGRvIGhh dmUgb25lLgotKyAgICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotK2ZpCi0rCi0rCi0rZmkKLSsK LStmaQotKwotKwotKwotKyhldmFsICJhc19mdW5jX3JldHVybiAoKSB7Ci0rICAoZXhpdCBcJDEp Ci0rfQotK2FzX2Z1bmNfc3VjY2VzcyAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAwCi0rfQotK2Fz X2Z1bmNfZmFpbHVyZSAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAxCi0rfQotK2FzX2Z1bmNfcmV0 X3N1Y2Nlc3MgKCkgewotKyAgcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19yZXRfZmFpbHVyZSAoKSB7 Ci0rICByZXR1cm4gMQotK30KLSsKLStleGl0Y29kZT0wCi0raWYgYXNfZnVuY19zdWNjZXNzOyB0 aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3N1Y2Nlc3Mg ZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19mYWlsdXJlOyB0aGVuCi0rICBleGl0Y29kZT0x Ci0rICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiBhc19mdW5j X3JldF9zdWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBh c19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X2ZhaWx1 cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19yZXRfZmFpbHVyZSBzdWNj ZWVkZWQuCi0rZmkKLSsKLStpZiAoIHNldCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkgJiYgdGVz dCB4ID0gXCJcJDFcIiApOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNo byBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCi0rZmkKLSsKLSt0ZXN0IFwk ZXhpdGNvZGUgPSAwIikgfHwgewotKyAgZWNobyBObyBzaGVsbCBmb3VuZCB0aGF0IHN1cHBvcnRz IHNoZWxsIGZ1bmN0aW9ucy4KLSsgIGVjaG8gUGxlYXNlIHRlbGwgYnVnLWF1dG9jb25mQGdudS5v cmcgYWJvdXQgeW91ciBzeXN0ZW0sCi0rICBlY2hvIGluY2x1ZGluZyBhbnkgZXJyb3IgcG9zc2li bHkgb3V0cHV0IGJlZm9yZSB0aGlzIG1lc3NhZ2UuCi0rICBlY2hvIFRoaXMgY2FuIGhlbHAgdXMg aW1wcm92ZSBmdXR1cmUgYXV0b2NvbmYgdmVyc2lvbnMuCi0rICBlY2hvIENvbmZpZ3VyYXRpb24g d2lsbCBub3cgcHJvY2VlZCB3aXRob3V0IHNoZWxsIGZ1bmN0aW9ucy4KLSt9Ci0rCi0rCi0rCi0r ICBhc19saW5lbm9fMT0kTElORU5PCi0rICBhc19saW5lbm9fMj0kTElORU5PCi0rICB0ZXN0ICJ4 JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKLSsgIHRlc3QgInhgZXhwciAkYXNf bGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIgfHwgewotKwotKyAgIyBDcmVhdGUgJGFz X21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTwotKyAg IyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQn IGluc2VydHMgYQotKyAgIyBsaW5lLW51bWJlciBsaW5lIGFmdGVyIGVhY2ggbGluZSB1c2luZyAk TElORU5POyB0aGUgc2Vjb25kICdzZWQnCi0rICAjIGRvZXMgdGhlIHJlYWwgd29yay4gIFRoZSBz ZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaAotKyAgIyBsaW5lLW51bWJlciBsaW5l IHdpdGggdGhlIGxpbmUgY29udGFpbmluZyAkTElORU5PLCBhbmQgYXBwZW5kcwotKyAgIyB0cmFp bGluZyAnLScgZHVyaW5nIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3Bl Y2lhbAotKyAgIyBjYXNlIGF0IGxpbmUgZW5kLgotKyAgIyAoUmFqYSBSIEhhcmluYXRoIHN1Z2dl c3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhlCi0rICAjIHNjcmlwdHMgd2l0 aCBvcHRpbWl6YXRpb24gaGVscCBmcm9tIFBhb2xvIEJvbnppbmkuICBCbGFtZSBMZWUKLSsgICMg RS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBmb3Igc2VkJ3Mgc3ludGF4LiAgOi0pCi0rICBzZWQgLW4g JwotKyAgICBwCi0rICAgIC9bJF1MSU5FTk8vPQotKyAgJyA8JGFzX215c2VsZiB8Ci0rICAgIHNl ZCAnCi0rICAgICAgcy9bJF1MSU5FTk8uKi8mLS8KLSsgICAgICB0IGxpbmVubwotKyAgICAgIGIK LSsgICAgICA6bGluZW5vCi0rICAgICAgTgotKyAgICAgIDpsb29wCi0rICAgICAgcy9bJF1MSU5F Tk9cKFteJyRhc19jcl9hbG51bSdfXS4qXG5cKVwoLipcKS9cMlwxXDIvCi0rICAgICAgdCBsb29w Ci0rICAgICAgcy8tXG4uKi8vCi0rICAgICcgPiRhc19tZS5saW5lbm8gJiYKLSsgIGNobW9kICt4 ICIkYXNfbWUubGluZW5vIiB8fAotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5u b3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyCi0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCi0rICAjIERvbid0IHRyeSB0byBleGVjIGFz IGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9ibGVtcwotKyAgIyAodGhl IGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhl Ci0rICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2l0 aXZlIHRvIHRoaXMpLgotKyAgLiAiLi8kYXNfbWUubGluZW5vIgotKyAgIyBFeGl0IHN0YXR1cyBp cyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCi0rICBleGl0Ci0rfQotKwotKwotK2lmIChhc19k aXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8pID4vZGV2L251bGwgMj4m MTsgdGhlbgotKyAgYXNfZGlybmFtZT1kaXJuYW1lCi0rZWxzZQotKyAgYXNfZGlybmFtZT1mYWxz ZQotK2ZpCi0rCi0rRUNIT19DPSBFQ0hPX049IEVDSE9fVD0KLStjYXNlIGBlY2hvIC1uIHhgIGlu Ci0rLW4qKQotKyAgY2FzZSBgZWNobyAneFxjJ2AgaW4KLSsgICpjKikgRUNIT19UPScJJzs7CSMg RUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgotKyAgKikgICBFQ0hPX0M9J1xjJzs7Ci0r ICBlc2FjOzsKLSsqKQotKyAgRUNIT19OPSctbic7OwotK2VzYWMKLStpZiBleHByIGEgOiAnXChh XCknID4vZGV2L251bGwgMj4mMSAmJgotKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4u XCknYCIgPSBYMDAxOyB0aGVuCi0rICBhc19leHByPWV4cHIKLStlbHNlCi0rICBhc19leHByPWZh bHNlCi0rZmkKLSsKLStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotK2lmIHRl c3QgLWQgY29uZiQkLmRpcjsgdGhlbgotKyAgcm0gLWYgY29uZiQkLmRpci9jb25mJCQuZmlsZQot K2Vsc2UKLSsgIHJtIC1mIGNvbmYkJC5kaXIKLSsgIG1rZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251 bGwKLStmaQotK2lmIChlY2hvID5jb25mJCQuZmlsZSkgMj4vZGV2L251bGw7IHRoZW4KLSsgIGlm IGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICBhc19sbl9z PSdsbiAtcycKLSsgICAgIyAuLi4gYnV0IHRoZXJlIGFyZSB0d28gZ290Y2hhczoKLSsgICAgIyAx KSBPbiBNU1lTLCBib3RoIGBsbiAtcyBmaWxlIGRpcicgYW5kIGBsbiBmaWxlIGRpcicgZmFpbC4K LSsgICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtzOyBgbG4gLXMnIGNyZWF0ZXMg YSB3cmFwcGVyIGV4ZWN1dGFibGUuCi0rICAgICMgSW4gYm90aCBjYXNlcywgd2UgaGF2ZSB0byBk ZWZhdWx0IHRvIGBjcCAtcCcuCi0rICAgIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJC5kaXIgMj4v ZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYkJC5leGUgfHwKLSsgICAgICBhc19sbl9zPSdjcCAt cCcKLSsgIGVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0rICAg IGFzX2xuX3M9bG4KLSsgIGVsc2UKLSsgICAgYXNfbG5fcz0nY3AgLXAnCi0rICBmaQotK2Vsc2UK LSsgIGFzX2xuX3M9J2NwIC1wJwotK2ZpCi0rcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQk LmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmlsZQotK3JtZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251 bGwKLSsKLStpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCi0rICBhc19ta2Rpcl9wPToK LStlbHNlCi0rICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAotKyAgYXNfbWtkaXJfcD1mYWxz ZQotK2ZpCi0rCi0raWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgYXNfdGVz dF94PSd0ZXN0IC14JwotK2Vsc2UKLSsgIGlmIGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsgdGhl bgotKyAgICBhc19sc19MX29wdGlvbj1MCi0rICBlbHNlCi0rICAgIGFzX2xzX0xfb3B0aW9uPQot KyAgZmkKLSsgIGFzX3Rlc3RfeD0nCi0rICAgIGV2YWwgc2ggLWMgJ1wnJwotKyAgICAgIGlmIHRl c3QgLWQgIiQxIjsgdGhlbgotKwl0ZXN0IC1kICIkMS8uIjsKLSsgICAgICBlbHNlCi0rCWNhc2Ug JDEgaW4KLSsJLSopc2V0ICIuLyQxIjs7Ci0rCWVzYWM7Ci0rCWNhc2UgYGxzIC1sZCckYXNfbHNf TF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluCi0rCT8/P1tzeF0qKTo7OyopZmFsc2U7O2Vz YWM7ZmkKLSsgICAgJ1wnJyBzaAotKyAgJwotK2ZpCi0rYXNfZXhlY3V0YWJsZV9wPSRhc190ZXN0 X3gKLSsKLSsjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQ IG5hbWUuCi0rYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9M RVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLSsKLSsjIFNlZCBleHByZXNzaW9uIHRv IG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4KLSthc190cl9zaD0iZXZh bCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotKwotKwotKwotKwotKyMg Q2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KLStTSEVM TD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKwotK2Nhc2UgWCRFQ0hPIGluCi0rWCotLWZhbGxi YWNrLWVjaG8pCi0rICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVvdGF0aW9uICh3aGljaCB3YXMg cmVxdWlyZWQgZm9yIE1ha2UpLgotKyAgRUNITz1gZWNobyAiJEVDSE8iIHwgc2VkICdzLFxcXFxc JFxcJDAsJyQwJywnYAotKyAgOzsKLStlc2FjCi0rCi0rZWNobz0ke0VDSE8tZWNob30KLStpZiB0 ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCi0rICAjIERpc2NhcmQgdGhlIC0tbm8tcmVl eGVjIGZsYWcsIGFuZCBjb250aW51ZS4KLSsgIHNoaWZ0Ci0rZWxpZiB0ZXN0ICJYJDEiID0gWC0t ZmFsbGJhY2stZWNobzsgdGhlbgotKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQg bWF5IGJlIGxlZnQgb3ZlcgotKyAgOgotK2VsaWYgdGVzdCAiWGAoJGVjaG8gJ1x0JykgMj4vZGV2 L251bGxgIiA9ICdYXHQnIDsgdGhlbgotKyAgIyBZaXBwZWUsICRlY2hvIHdvcmtzIQotKyAgOgot K2Vsc2UKLSsgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KLSsgIGV4ZWMgJFNI RUxMICIkMCIgLS1uby1yZWV4ZWMgJHsxKyIkQCJ9Ci0rZmkKLSsKLStpZiB0ZXN0ICJYJDEiID0g WC0tZmFsbGJhY2stZWNobzsgdGhlbgotKyAgIyB1c2VkIGFzIGZhbGxiYWNrIGVjaG8KLSsgIHNo aWZ0Ci0rICBjYXQgPDxFT0YKLSskKgotK0VPRgotKyAgZXhpdCAwCi0rZmkKLSsKLSsjIFRoZSBI UC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0 ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+ JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0raWYgdGVzdCAteiAiJEVDSE8iOyB0aGVuCi0raWYgdGVz dCAiWCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVuCi0rIyBmaW5kIGEgc3Ry aW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3 aXRoIGl0Ci0rICBmb3IgY21kIGluICdzZWQgNTBxICIkMCInICdzZWQgMjBxICIkMCInICdzZWQg MTBxICIkMCInICdzZWQgMnEgIiQwIicgJ2VjaG8gdGVzdCc7IGRvCi0rICAgICMgZXhwZWN0ZWQg c2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwgNTEyIGJ5dGVzLCAxNiBieXRlcywgLi4uCi0rICAg IGlmIChlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgKSAyPi9kZXYvbnVsbCAmJgotKyAgICAg ICBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgICYmCi0rICAgICAgICh0ZXN0ICJYJGVjaG9f dGVzdF9zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsCi0gICAgIHRo ZW4KLS0gICAgICAgIGVjaG8gJ1JlY29nbml6ZWQgY29uZmlndXJlIG9wdGlvbnM6JwotLSAgICAg ICAgZWNobyAnJwotLSAgICAgICAgZWNobyAnSW5zdGFsbGF0aW9uIG9wdGlvbnM6JwotLSAgICAg ICAgZWNobyAnLS1pbmNsdWRlLXByZWZpeD0vc29tZS9wYXRoICAgICAgLSBwYXRoIHRvIGluc3Rh bGwgU09DSSBoZWFkZXIgZmlsZXMnCi0tICAgICAgICBlY2hvICctLWxpYi1wcmVmaXg9L3NvbWUv cGF0aCAgICAgICAgICAtIHBhdGggdG8gaW5zdGFsbCBTT0NJIGxpYnJhcmllcycKLS0gICAgICAg IGVjaG8gJycKLS0gICAgICAgIGVjaG8gJ015U1FMIG9wdGlvbnM6JwotLSAgICAgICAgZWNobyAn LS1teXNxbC1pbmNsdWRlPS9zb21lL3BhdGggICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBt eXNxbC5oJwotLSAgICAgICAgZWNobyAnLS1teXNxbC1saWI9L3NvbWUvcGF0aCAgICAgICAgICAg LSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJteXNxbGNsaWVudC5bYXxzb10nCi0tICAgICAgICBl Y2hvICcnCi0tICAgICAgICBlY2hvICdPcmFjbGUgb3B0aW9ucyAoaWYgT1JBQ0xFX0hPTUUgdmFy aWFibGUgaXMgbm90IHNldCk6JwotLSAgICAgICAgZWNobyAnLS1vcmFjbGUtaW5jbHVkZT0vc29t ZS9wYXRoICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBvY2kuaCcKLS0gICAgICAgIGVjaG8g Jy0tb3JhY2xlLWxpYj0vc29tZS9wYXRoICAgICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcg bGliY2xudHNoLlthfHNvXScKLS0gICAgICAgIGVjaG8gJycKLS0gICAgICAgIGVjaG8gJ1Bvc3Rn cmVTUUwgb3B0aW9uczonCi0tICAgICAgICBlY2hvICctLXBvc3RncmVzcWwtaW5jbHVkZT0vc29t ZS9wYXRoICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBxL2xpYnBxLWZzLmgnCi0tICAgICAg ICBlY2hvICctLXBvc3RncmVzcWwtbGliPS9zb21lL3BhdGggICAgICAtIGRpcmVjdG9yeSBjb250 YWluaW5nIGxpYnBxLlthfHNvXScKLS0gICAgICAgIGVjaG8gJycKLS0gICAgICAgIGVjaG8gJ1Rl c3QgcHJvZ3JhbXMgY29tcGlsYXRpb24gb3B0aW9ucyAobm90IG5lZWRlZCBmb3IgbGlicmFyeSBi dWlsZCk6JwotLSAgICAgICAgZWNobyAnLS1ib29zdC1pbmNsdWRlPS9zb21lL3BhdGggICAgICAg LSByb290IGluY2x1ZGUgZGlyZWN0b3J5IG9mIEJvb3N0JwotLSAgICAgICAgZWNobyAnLS1ib29z dC1saWI9L3NvbWUvcGF0aCAgICAgICAgICAgLSByb290IGxpYiBkaXJlY3Rvcnkgb2YgQm9vc3Qn Ci0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBleGl0Ci0rICAgICAgYnJlYWsKLSAgICAgZmkK LSsgIGRvbmUKLSBmaQotIAotLW1rZGlyIC1wIGJ1aWxkL3VuaXgvbG9jYWwKLS1wYXRoPSJidWls ZC91bml4L2xvY2FsL3BhcmFtZXRlcnMiCi0tcm0gLWYgJHBhdGgKLS10b3VjaCAkcGF0aAotLWZv ciBwYXJhbSBpbiAkKgotLWRvCi0tICAgICAgICBlY2hvICRwYXJhbSA+PiAkcGF0aAotLWRvbmUK LS0KLS1wcmludGYgJ1RyeWluZyB0byBmaW5kIHRoZSBUY2wgaW50ZXJwcmV0ZXIuLi4gJwotLXRj bF9mb3VuZD0wCi0tCi0tZm9yIHBhdGggaW4gIi91c3IvYmluL3RjbHNoIiBcCi0tICAgICAgICAg ICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC41IiBcCi0tICAgICAgICAgICAgIi91c3IvbG9jYWwv YmluL3RjbHNoOC40IiBcCi0tICAgICAgICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC4zIjsg ZG8KLS0gICAgaWYgWyAteCAkcGF0aCBdCi0tICAgIHRoZW4KLS0gICAgICAgIGVjaG8gJHBhdGgg PiBidWlsZC91bml4L2xvY2FsL3RjbAotLSAgICAgICAgZWNobyAkcGF0aAotLSAgICAgICAgdGNs X2ZvdW5kPTEKLS0gICAgICAgIGJyZWFrCi0raWYgdGVzdCAiWGAoJGVjaG8gJ1x0JykgMj4vZGV2 L251bGxgIiA9ICdYXHQnICYmCi0rICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRlY2hvICIkZWNo b190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKyAgIHRlc3QgIlgkZWNob190ZXN0aW5n X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICMg VGhlIFNvbGFyaXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZhdWx0IGVjaG8gcHJvZ3JhbXMg dW5xdW90ZQotKyAgIyBiYWNrc2xhc2hlcy4gIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBx dW90ZSBiYWNrc2xhc2hlcyB1c2luZwotKyAgIyAgIGVjaG8gIiRzb21ldGhpbmciIHwgc2VkICdz L1xcL1xcXFwvZycKLSsgICMKLSsgICMgU28sIGZpcnN0IHdlIGxvb2sgZm9yIGEgd29ya2luZyBl Y2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4KLSsKLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQ QVRIX1NFUEFSQVRPUgotKyAgZm9yIGRpciBpbiAkUEFUSCAvdXNyL3VjYjsgZG8KLSsgICAgSUZT PSIkbHRfc2F2ZV9pZnMiCi0rICAgIGlmICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0IC1mICRk aXIvZWNobyRhY19leGVleHQpICYmCi0rICAgICAgIHRlc3QgIlhgKCRkaXIvZWNobyAnXHQnKSAy Pi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKLSsgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRk aXIvZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgdGVz dCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0r ICAgICAgZWNobz0iJGRpci9lY2hvIgotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0r ICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsKLSsgIGlmIHRlc3QgIlgkZWNobyIgPSBYZWNobzsgdGhl bgotKyAgICAjIFdlIGRpZG4ndCBmaW5kIGEgYmV0dGVyIGVjaG8sIHNvIGxvb2sgZm9yIGFsdGVy bmF0aXZlcy4KLSsgICAgaWYgdGVzdCAiWGAocHJpbnQgLXIgJ1x0JykgMj4vZGV2L251bGxgIiA9 ICdYXHQnICYmCi0rICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YChwcmludCAtciAiJGVjaG9f dGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rp bmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICAgICAgIyBUaGlzIHNo ZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQgLXIgdGhhdCBkb2VzIHRoZSB0cmljay4KLSsgICAgICBl Y2hvPSdwcmludCAtcicKLSsgICAgZWxpZiAodGVzdCAtZiAvYmluL2tzaCB8fCB0ZXN0IC1mIC9i aW4va3NoJGFjX2V4ZWV4dCkgJiYKLSsJIHRlc3QgIlgkQ09ORklHX1NIRUxMIiAhPSBYL2Jpbi9r c2g7IHRoZW4KLSsgICAgICAjIElmIHdlIGhhdmUga3NoLCB0cnkgcnVubmluZyBjb25maWd1cmUg YWdhaW4gd2l0aCBpdC4KLSsgICAgICBPUklHSU5BTF9DT05GSUdfU0hFTEw9JHtDT05GSUdfU0hF TEwtL2Jpbi9zaH0KLSsgICAgICBleHBvcnQgT1JJR0lOQUxfQ09ORklHX1NIRUxMCi0rICAgICAg Q09ORklHX1NIRUxMPS9iaW4va3NoCi0rICAgICAgZXhwb3J0IENPTkZJR19TSEVMTAotKyAgICAg IGV4ZWMgJENPTkZJR19TSEVMTCAiJDAiIC0tbm8tcmVleGVjICR7MSsiJEAifQotKyAgICBlbHNl Ci0rICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgotKyAgICAgIGVjaG89J3ByaW50ZiAlc1xuJwot KyAgICAgIGlmIHRlc3QgIlhgKCRlY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgot KwkgZWNob190ZXN0aW5nX3N0cmluZz1gKCRlY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rl di9udWxsYCAmJgotKwkgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVz dF9zdHJpbmciOyB0aGVuCi0rCSMgQ29vbCwgcHJpbnRmIHdvcmtzCi0rCToKLSsgICAgICBlbGlm IGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICIkMCIgLS1mYWxs YmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgotKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGlu Z19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5B TF9DT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikg Mj4vZGV2L251bGxgICYmCi0rCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRl Y2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotKwlDT05GSUdfU0hFTEw9JE9SSUdJTkFMX0NPTkZJR19T SEVMTAotKwlleHBvcnQgQ09ORklHX1NIRUxMCi0rCVNIRUxMPSIkQ09ORklHX1NIRUxMIgotKwll eHBvcnQgU0hFTEwKLSsJZWNobz0iJENPTkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iCi0r ICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiJDAiIC0tZmFs bGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgdGVzdCAiWCRlY2hvX3Rlc3Rp bmdfc3RyaW5nIiA9ICdYXHQnICYmCi0rCSAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklH X1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9u dWxsYCAmJgotKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0 X3N0cmluZyI7IHRoZW4KLSsJZWNobz0iJENPTkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8i Ci0rICAgICAgZWxzZQotKwkjIG1heWJlIHdpdGggYSBzbWFsbGVyIHN0cmluZy4uLgotKwlwcmV2 PToKLSsKLSsJZm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAnc2VkIDJxICIkMCInICdzZWQgMTBxICIk MCInICdzZWQgMjBxICIkMCInICdzZWQgNTBxICIkMCInOyBkbwotKwkgIGlmICh0ZXN0ICJYJGVj aG9fdGVzdF9zdHJpbmciID0gIlhgZXZhbCAkY21kYCIpIDI+L2Rldi9udWxsCi0rCSAgdGhlbgot KwkgICAgYnJlYWsKLSsJICBmaQotKwkgIHByZXY9IiRjbWQiCi0rCWRvbmUKLSsKLSsJaWYgdGVz dCAiJHByZXYiICE9ICdzZWQgNTBxICIkMCInOyB0aGVuCi0rCSAgZWNob190ZXN0X3N0cmluZz1g ZXZhbCAkcHJldmAKLSsJICBleHBvcnQgZWNob190ZXN0X3N0cmluZwotKwkgIGV4ZWMgJHtPUklH SU5BTF9DT05GSUdfU0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19ICIkMCIgJHsxKyIkQCJ9 Ci0rCWVsc2UKLSsJICAjIE9vcHMuICBXZSBsb3N0IGNvbXBsZXRlbHksIHNvIGp1c3Qgc3RpY2sg d2l0aCBlY2hvLgotKwkgIGVjaG89ZWNobwotKwlmaQotKyAgICAgIGZpCi0gICAgIGZpCi0rICBm aQotK2ZpCi0rZmkKLSsKLSsjIENvcHkgZWNobyBhbmQgcXVvdGUgdGhlIGNvcHkgc3VpdGFibHkg Zm9yIHBhc3NpbmcgdG8gbGlidG9vbCBmcm9tCi0rIyB0aGUgTWFrZWZpbGUsIGluc3RlYWQgb2Yg cXVvdGluZyB0aGUgb3JpZ2luYWwsIHdoaWNoIGlzIHVzZWQgbGF0ZXIuCi0rRUNITz0kZWNobwot K2lmIHRlc3QgIlgkRUNITyIgPSAiWCRDT05GSUdfU0hFTEwgJDAgLS1mYWxsYmFjay1lY2hvIjsg dGhlbgotKyAgIEVDSE89IiRDT05GSUdfU0hFTEwgXFxcJFwkMCAtLWZhbGxiYWNrLWVjaG8iCi0r ZmkKLSsKLSsKLSsKLSsKLSt0YWduYW1lcz0ke3RhZ25hbWVzKyR7dGFnbmFtZXN9LH1DWFgKLSsK LSt0YWduYW1lcz0ke3RhZ25hbWVzKyR7dGFnbmFtZXN9LH1GNzcKLSsKLStleGVjIDc8JjAgPC9k ZXYvbnVsbCA2PiYxCi0rCi0rIyBOYW1lIG9mIHRoZSBob3N0LgotKyMgaG9zdG5hbWUgb24gc29t ZSBzeXN0ZW1zIChTVlIzLjIsIExpbnV4KSByZXR1cm5zIGEgYm9ndXMgZXhpdCBzdGF0dXMsCi0r IyBzbyB1bmFtZSBnZXRzIHJ1biB0b28uCi0rYWNfaG9zdG5hbWU9YChob3N0bmFtZSB8fCB1bmFt ZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCi0rCi0rIwotKyMgSW5pdGlhbGl6YXRpb25zLgot KyMKLSthY19kZWZhdWx0X3ByZWZpeD0vdXNyL2xvY2FsCi0rYWNfY2xlYW5fZmlsZXM9Ci0rYWNf Y29uZmlnX2xpYm9ial9kaXI9LgotK0xJQk9CSlM9Ci0rY3Jvc3NfY29tcGlsaW5nPW5vCi0rc3Vi ZGlycz0KLStNRkxBR1M9Ci0rTUFLRUZMQUdTPQotK1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4v c2h9Ci0rCi0rIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCi0rUEFDS0FHRV9OQU1FPSdTT0NJ JwotK1BBQ0tBR0VfVEFSTkFNRT0nc29jaScKLStQQUNLQUdFX1ZFUlNJT049JzMuMC4wJwotK1BB Q0tBR0VfU1RSSU5HPSdTT0NJIDMuMC4wJwotK1BBQ0tBR0VfQlVHUkVQT1JUPSdtc29iY3pha0B1 c2Vycy5zb3VyY2Vmb3JnZS5uZXQnCi0rCi0rYWNfdW5pcXVlX2ZpbGU9InNvY2kvY29yZS9lcnJv ci5jcHAiCi0rIyBGYWN0b3JpbmcgZGVmYXVsdCBoZWFkZXJzIGZvciBtb3N0IHRlc3RzLgotK2Fj X2luY2x1ZGVzX2RlZmF1bHQ9IlwKLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsjaWZkZWYgSEFWRV9T WVNfVFlQRVNfSAotKyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0rI2VuZGlmCi0rI2lmZGVmIEhB VkVfU1lTX1NUQVRfSAotKyMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSsjZW5kaWYKLSsjaWZkZWYg U1REQ19IRUFERVJTCi0rIyBpbmNsdWRlIDxzdGRsaWIuaD4KLSsjIGluY2x1ZGUgPHN0ZGRlZi5o PgotKyNlbHNlCi0rIyBpZmRlZiBIQVZFX1NURExJQl9ICi0rIyAgaW5jbHVkZSA8c3RkbGliLmg+ Ci0rIyBlbmRpZgotKyNlbmRpZgotKyNpZmRlZiBIQVZFX1NUUklOR19ICi0rIyBpZiAhZGVmaW5l ZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICi0rIyAgaW5jbHVkZSA8bWVt b3J5Lmg+Ci0rIyBlbmRpZgotKyMgaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2VuZGlmCi0rI2lmZGVm IEhBVkVfU1RSSU5HU19ICi0rIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci0rI2VuZGlmCi0rI2lmZGVm IEhBVkVfSU5UVFlQRVNfSAotKyMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLSsjZW5kaWYKLSsjaWZk ZWYgSEFWRV9TVERJTlRfSAotKyMgaW5jbHVkZSA8c3RkaW50Lmg+Ci0rI2VuZGlmCi0rI2lmZGVm IEhBVkVfVU5JU1REX0gKLSsjIGluY2x1ZGUgPHVuaXN0ZC5oPgotKyNlbmRpZiIKLSsKLSthY19z dWJzdF92YXJzPSdMVExJQk9CSlMKLStMSUJPQkpTCi0rUlVOX1RFU1RTX0ZBTFNFCi0rUlVOX1RF U1RTX1RSVUUKLStzZWRfb2sKLStkaWZmX29rCi0rSFRNTF9ET0NfRkFMU0UKLStIVE1MX0RPQ19U UlVFCi0rUEVSTAotK2dzX29rCi0rZHZpcHNfb2sKLStsYXRleF9vawotK2RveHlnZW5fb2sKLStJ TkZPX0RPQ19GQUxTRQotK0lORk9fRE9DX1RSVUUKLStQT1NUR1JFU1FMX0RJUlMKLStIQVZFX1BP U1RHUkVTUUxfRkFMU0UKLStIQVZFX1BPU1RHUkVTUUxfVFJVRQotK1BPU1RHUkVTUUxfTERGTEFH UwotK1BPU1RHUkVTUUxfQ0ZMQUdTCi0rUE9TVEdSRVNRTF9WRVJTSU9OCi0rUEdfQ09ORklHCi0r T1JBQ0xFX0RJUlMKLStIQVZFX09SQUNMRV9GQUxTRQotK0hBVkVfT1JBQ0xFX1RSVUUKLStPUkFD TEVfT0NJX0xERkxBR1MKLStPUkFDTEVfT0NJX0NGTEFHUwotK09SQUNMRV9PQ0lfVkVSU0lPTgot K01ZU1FMX0RJUlMKLStIQVZFX01ZU1FMX0ZBTFNFCi0rSEFWRV9NWVNRTF9UUlVFCi0rTVlTUUxf TERGTEFHUwotK01ZU1FMX0NGTEFHUwotK01ZU1FMX1ZFUlNJT04KLStNWVNRTF9DT05GSUcKLStC T09TVF9WRVJTSU9OCi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIKLStCT09TVF9SRUdF WF9MSUIKLStCT09TVF9EQVRFX1RJTUVfTElCCi0rQk9PU1RfU0lHTkFMU19MSUIKLStCT09TVF9X U0VSSUFMSVpBVElPTl9MSUIKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQgotK0JPT1NUX0lPU1RS RUFNU19MSUIKLStCT09TVF9USFJFQURfTElCCi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQgot K0JPT1NUX0ZJTEVTWVNURU1fTElCCi0rQk9PU1RfTElCUwotK0JPT1NUX0NGTEFHUwotK1NPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RF9GQUxTRQotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFCi0rU09DSV9NWVNR TF9IRUFERVJTX0JVUklFRAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0UKLStTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUUKLStTT0NJX0hFQURFUlNfQlVSSUVECi0rU09DSV9I RUFERVJTX0JVUklFRF9GQUxTRQotK1NPQ0lfSEVBREVSU19CVVJJRURfVFJVRQotK0xJQlRPT0wK LSthY19jdF9GNzcKLStGRkxBR1MKLStGNzcKLStDUFAKLStOTUVESVQKLStEU1lNVVRJTAotK1JB TkxJQgotK0FSCi0rRUNITwotK0xOX1MKLStFR1JFUAotK0dSRVAKLStTRUQKLSthbV9fZmFzdGRl cENDX0ZBTFNFCi0rYW1fX2Zhc3RkZXBDQ19UUlVFCi0rQ0NERVBNT0RFCi0rYWNfY3RfQ0MKLStD RkxBR1MKLStDQwotK0NYWENQUAotK2FtX19mYXN0ZGVwQ1hYX0ZBTFNFCi0rYW1fX2Zhc3RkZXBD WFhfVFJVRQotK0NYWERFUE1PREUKLStBTURFUEJBQ0tTTEFTSAotK0FNREVQX0ZBTFNFCi0rQU1E RVBfVFJVRQotK2FtX19xdW90ZQotK2FtX19pbmNsdWRlCi0rREVQRElSCi0rT0JKRVhUCi0rRVhF RVhUCi0rYWNfY3RfQ1hYCi0rQ1BQRkxBR1MKLStMREZMQUdTCi0rQ1hYRkxBR1MKLStDWFgKLSto b3N0X29zCi0raG9zdF92ZW5kb3IKLStob3N0X2NwdQotK2hvc3QKLStidWlsZF9vcwotK2J1aWxk X3ZlbmRvcgotK2J1aWxkX2NwdQotK2J1aWxkCi0rVVBMT0FEX0NPTU1BTkQKLStHRU5FUklDX0xJ QlJBUllfVkVSU0lPTgotK1JQTV9SRUxFQVNFCi0rSEFWRV9DUFBVTklUX0ZBTFNFCi0rSEFWRV9D UFBVTklUX1RSVUUKLStDUFBVTklUX1ZFUlNJT04KLStDUFBVTklUX0xJQlMKLStDUFBVTklUX0NG TEFHUwotK0NQUFVOSVRfQ09ORklHCi0rYW1fX3VudGFyCi0rYW1fX3RhcgotK0FNVEFSCi0rYW1f X2xlYWRpbmdfZG90Ci0rU0VUX01BS0UKLStBV0sKLStta2Rpcl9wCi0rTUtESVJfUAotK0lOU1RB TExfU1RSSVBfUFJPR1JBTQotK1NUUklQCi0raW5zdGFsbF9zaAotK01BS0VJTkZPCi0rQVVUT0hF QURFUgotK0FVVE9NQUtFCi0rQVVUT0NPTkYKLStBQ0xPQ0FMCi0rVkVSU0lPTgotK1BBQ0tBR0UK LStDWUdQQVRIX1cKLSthbV9faXNyYwotK0lOU1RBTExfREFUQQotK0lOU1RBTExfU0NSSVBUCi0r SU5TVEFMTF9QUk9HUkFNCi0rdGFyZ2V0X2FsaWFzCi0raG9zdF9hbGlhcwotK2J1aWxkX2FsaWFz Ci0rTElCUwotK0VDSE9fVAotK0VDSE9fTgotK0VDSE9fQwotK0RFRlMKLSttYW5kaXIKLStsb2Nh bGVkaXIKLStsaWJkaXIKLStwc2RpcgotK3BkZmRpcgotK2R2aWRpcgotK2h0bWxkaXIKLStpbmZv ZGlyCi0rZG9jZGlyCi0rb2xkaW5jbHVkZWRpcgotK2luY2x1ZGVkaXIKLStsb2NhbHN0YXRlZGly Ci0rc2hhcmVkc3RhdGVkaXIKLStzeXNjb25mZGlyCi0rZGF0YWRpcgotK2RhdGFyb290ZGlyCi0r bGliZXhlY2RpcgotK3NiaW5kaXIKLStiaW5kaXIKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lCi0r cHJlZml4Ci0rZXhlY19wcmVmaXgKLStQQUNLQUdFX0JVR1JFUE9SVAotK1BBQ0tBR0VfU1RSSU5H Ci0rUEFDS0FHRV9WRVJTSU9OCi0rUEFDS0FHRV9UQVJOQU1FCi0rUEFDS0FHRV9OQU1FCi0rUEFU SF9TRVBBUkFUT1IKLStTSEVMTCcKLSthY19zdWJzdF9maWxlcz0nJwotK2FjX3VzZXJfb3B0cz0n Ci0rZW5hYmxlX29wdGlvbl9jaGVja2luZwotK3dpdGhfY3BwdW5pdF9wcmVmaXgKLSt3aXRoX2Nw cHVuaXRfZXhlY19wcmVmaXgKLStlbmFibGVfc2hhcmVkCi0rZW5hYmxlX3N0YXRpYwotK2VuYWJs ZV9kZXBlbmRlbmN5X3RyYWNraW5nCi0rZW5hYmxlX2Zhc3RfaW5zdGFsbAotK3dpdGhfZ251X2xk Ci0rZW5hYmxlX2xpYnRvb2xfbG9jawotK3dpdGhfcGljCi0rd2l0aF90YWdzCi0rZW5hYmxlX2V4 Y2VwdGlvbnMKLStlbmFibGVfaW5mb19kb2MKLStlbmFibGVfaHRtbF9kb2MKLSt3aXRoX2RvY2Rp cgotK2VuYWJsZV9idXJyaWVkX2hlYWRlcnMKLStlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJz Ci0rZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzCi0rd2l0aF9ib29zdAotK2VuYWJs ZV9iYWNrZW5kX215c3FsCi0rd2l0aF9teXNxbAotK2VuYWJsZV9iYWNrZW5kX29yYWNsZQotK3dp dGhfb3JhY2xlCi0rd2l0aF9vcmFjbGVfaW5jbHVkZQotK3dpdGhfb3JhY2xlX2xpYgotK2VuYWJs ZV9iYWNrZW5kX3Bvc3RncmVzcWwKLSt3aXRoX3Bvc3RncmVzcWwKLSsnCi0rICAgICAgYWNfcHJl Y2lvdXNfdmFycz0nYnVpbGRfYWxpYXMKLStob3N0X2FsaWFzCi0rdGFyZ2V0X2FsaWFzCi0rQ1hY Ci0rQ1hYRkxBR1MKLStMREZMQUdTCi0rTElCUwotK0NQUEZMQUdTCi0rQ0NDCi0rQ1hYQ1BQCi0r Q0MKLStDRkxBR1MKLStDUFAKLStGNzcKLStGRkxBR1MnCi0rCi0rCi0rIyBJbml0aWFsaXplIHNv bWUgdmFyaWFibGVzIHNldCBieSBvcHRpb25zLgotK2FjX2luaXRfaGVscD0KLSthY19pbml0X3Zl cnNpb249ZmFsc2UKLSthY191bnJlY29nbml6ZWRfb3B0cz0KLSthY191bnJlY29nbml6ZWRfc2Vw PQotKyMgVGhlIHZhcmlhYmxlcyBoYXZlIHRoZSBzYW1lIG5hbWVzIGFzIHRoZSBvcHRpb25zLCB3 aXRoCi0rIyBkYXNoZXMgY2hhbmdlZCB0byB1bmRlcmxpbmVzLgotK2NhY2hlX2ZpbGU9L2Rldi9u dWxsCi0rZXhlY19wcmVmaXg9Tk9ORQotK25vX2NyZWF0ZT0KLStub19yZWN1cnNpb249Ci0rcHJl Zml4PU5PTkUKLStwcm9ncmFtX3ByZWZpeD1OT05FCi0rcHJvZ3JhbV9zdWZmaXg9Tk9ORQotK3By b2dyYW1fdHJhbnNmb3JtX25hbWU9cyx4LHgsCi0rc2lsZW50PQotK3NpdGU9Ci0rc3JjZGlyPQot K3ZlcmJvc2U9Ci0reF9pbmNsdWRlcz1OT05FCi0reF9saWJyYXJpZXM9Tk9ORQotKwotKyMgSW5z dGFsbGF0aW9uIGRpcmVjdG9yeSBvcHRpb25zLgotKyMgVGhlc2UgYXJlIGxlZnQgdW5leHBhbmRl ZCBzbyB1c2VycyBjYW4gIm1ha2UgaW5zdGFsbCBleGVjX3ByZWZpeD0vZm9vIgotKyMgYW5kIGFs bCB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIGJhc2VkIG9uIGV4ZWNfcHJl Zml4Ci0rIyBieSBkZWZhdWx0IHdpbGwgYWN0dWFsbHkgY2hhbmdlLgotKyMgVXNlIGJyYWNlcyBp bnN0ZWFkIG9mIHBhcmVucyBiZWNhdXNlIHNoLCBwZXJsLCBldGMuIGFsc28gYWNjZXB0IHRoZW0u Ci0rIyAoVGhlIGxpc3QgZm9sbG93cyB0aGUgc2FtZSBvcmRlciBhcyB0aGUgR05VIENvZGluZyBT dGFuZGFyZHMuKQotK2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJwotK3NiaW5kaXI9JyR7ZXhl Y19wcmVmaXh9L3NiaW4nCi0rbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKLStk YXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwotK2RhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9Jwot K3N5c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCi0rc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9j b20nCi0rbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKLStpbmNsdWRlZGlyPScke3ByZWZp eH0vaW5jbHVkZScKLStvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUnCi0rZG9jZGlyPScke2Rh dGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9JwotK2luZm9kaXI9JyR7ZGF0YXJvb3Rk aXJ9L2luZm8nCi0raHRtbGRpcj0nJHtkb2NkaXJ9JwotK2R2aWRpcj0nJHtkb2NkaXJ9JwotK3Bk ZmRpcj0nJHtkb2NkaXJ9JwotK3BzZGlyPScke2RvY2Rpcn0nCi0rbGliZGlyPScke2V4ZWNfcHJl Zml4fS9saWInCi0rbG9jYWxlZGlyPScke2RhdGFyb290ZGlyfS9sb2NhbGUnCi0rbWFuZGlyPSck e2RhdGFyb290ZGlyfS9tYW4nCi0rCi0rYWNfcHJldj0KLSthY19kYXNoZGFzaD0KLStmb3IgYWNf b3B0aW9uCi0rZG8KLSsgICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVu dCwgYXNzaWduIGl0LgotKyAgaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCi0rICAgIGV2YWwg JGFjX3ByZXY9XCRhY19vcHRpb24KLSsgICAgYWNfcHJldj0KLSsgICAgY29udGludWUKLSsgIGZp Ci0rCi0rICBjYXNlICRhY19vcHRpb24gaW4KLSsgICo9KikJYWNfb3B0YXJnPWBleHByICJYJGFj X29wdGlvbiIgOiAnW149XSo9XCguKlwpJ2AgOzsKLSsgICopCWFjX29wdGFyZz15ZXMgOzsKLSsg IGVzYWMKLSsKLSsgICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRp b25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCi0rCi0rICBjYXNlICRhY19kYXNoZGFzaCRh Y19vcHRpb24gaW4KLSsgIC0tKQotKyAgICBhY19kYXNoZGFzaD15ZXMgOzsKLSsKLSsgIC1iaW5k aXIgfCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkpCi0rICAgIGFj X3ByZXY9YmluZGlyIDs7Ci0rICAtYmluZGlyPSogfCAtLWJpbmRpcj0qIHwgLS1iaW5kaT0qIHwg LS1iaW5kPSogfCAtLWJpbj0qIHwgLS1iaT0qKQotKyAgICBiaW5kaXI9JGFjX29wdGFyZyA7Owot KwotKyAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0tYnVpIHwgLS1idSkKLSsgICAgYWNf cHJldj1idWlsZF9hbGlhcyA7OwotKyAgLWJ1aWxkPSogfCAtLWJ1aWxkPSogfCAtLWJ1aWw9KiB8 IC0tYnVpPSogfCAtLWJ1PSopCi0rICAgIGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcgOzsKLSsKLSsg IC1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWwgfCAtLWNhY2hlLWZpIFwK LSsgIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAt LWNhIHwgLS1jKQotKyAgICBhY19wcmV2PWNhY2hlX2ZpbGUgOzsKLSsgIC1jYWNoZS1maWxlPSog fCAtLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsPSogfCAtLWNhY2hlLWZpPSogXAotKyAgfCAt LWNhY2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSog fCAtLWNhPSogfCAtLWM9KikKLSsgICAgY2FjaGVfZmlsZT0kYWNfb3B0YXJnIDs7Ci0rCi0rICAt LWNvbmZpZy1jYWNoZSB8IC1DKQotKyAgICBjYWNoZV9maWxlPWNvbmZpZy5jYWNoZSA7OwotKwot KyAgLWRhdGFkaXIgfCAtLWRhdGFkaXIgfCAtLWRhdGFkaSB8IC0tZGF0YWQpCi0rICAgIGFjX3By ZXY9ZGF0YWRpciA7OwotKyAgLWRhdGFkaXI9KiB8IC0tZGF0YWRpcj0qIHwgLS1kYXRhZGk9KiB8 IC0tZGF0YWQ9KikKLSsgICAgZGF0YWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtZGF0YXJvb3Rk aXIgfCAtLWRhdGFyb290ZGlyIHwgLS1kYXRhcm9vdGRpIHwgLS1kYXRhcm9vdGQgfCAtLWRhdGFy b290IFwKLSsgIHwgLS1kYXRhcm9vIHwgLS1kYXRhcm8gfCAtLWRhdGFyKQotKyAgICBhY19wcmV2 PWRhdGFyb290ZGlyIDs7Ci0rICAtZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaXI9KiB8IC0t ZGF0YXJvb3RkaT0qIHwgLS1kYXRhcm9vdGQ9KiBcCi0rICB8IC0tZGF0YXJvb3Q9KiB8IC0tZGF0 YXJvbz0qIHwgLS1kYXRhcm89KiB8IC0tZGF0YXI9KikKLSsgICAgZGF0YXJvb3RkaXI9JGFjX29w dGFyZyA7OwotKwotKyAgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qKQotKyAgICBhY191c2Vyb3B0 PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZGlzYWJsZS1cKC4qXCknYAotKyAgICAjIFJlamVj dCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0rICAgIGV4 cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYm Ci0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJlIG5hbWU6 ICRhY191c2Vyb3B0IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgYWNf dXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0Ci0rICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNf dXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKLSsgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGlu Ci0rICAgICAgKiIKLSsiZW5hYmxlXyRhY191c2Vyb3B0IgotKyIqKSA7OwotKyAgICAgICopIGFj X3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVk X3NlcC0tZGlzYWJsZS0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0n LCAnOzsKLSsgICAgZXNhYwotKyAgICBldmFsIGVuYWJsZV8kYWNfdXNlcm9wdD1ubyA7OwotKwot KyAgLWRvY2RpciB8IC0tZG9jZGlyIHwgLS1kb2NkaSB8IC0tZG9jIHwgLS1kbykKLSsgICAgYWNf cHJldj1kb2NkaXIgOzsKLSsgIC1kb2NkaXI9KiB8IC0tZG9jZGlyPSogfCAtLWRvY2RpPSogfCAt LWRvYz0qIHwgLS1kbz0qKQotKyAgICBkb2NkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWR2aWRp ciB8IC0tZHZpZGlyIHwgLS1kdmlkaSB8IC0tZHZpZCB8IC0tZHZpIHwgLS1kdikKLSsgICAgYWNf cHJldj1kdmlkaXIgOzsKLSsgIC1kdmlkaXI9KiB8IC0tZHZpZGlyPSogfCAtLWR2aWRpPSogfCAt LWR2aWQ9KiB8IC0tZHZpPSogfCAtLWR2PSopCi0rICAgIGR2aWRpcj0kYWNfb3B0YXJnIDs7Ci0r Ci0rICAtZW5hYmxlLSogfCAtLWVuYWJsZS0qKQotKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFj X29wdGlvbiIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCi0rICAgICMgUmVqZWN0IG5hbWVzIHRo YXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLSsgICAgZXhwciAieCRhY191 c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX3VzZXJv cHQiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICBhY191c2Vyb3B0X29y aWc9JGFjX3VzZXJvcHQKLSsgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8 IHNlZCAncy9bLSsuXS9fL2cnYAotKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KLSsgICAgICAq IgotKyJlbmFibGVfJGFjX3VzZXJvcHQiCi0rIiopIDs7Ci0rICAgICAgKikgYWNfdW5yZWNvZ25p emVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS1lbmFi bGUtJGFjX3VzZXJvcHRfb3JpZyIKLSsJIGFjX3VucmVjb2duaXplZF9zZXA9JywgJzs7Ci0rICAg IGVzYWMKLSsgICAgZXZhbCBlbmFibGVfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsKLSsKLSsg IC1leGVjLXByZWZpeCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMtcHJlZml4IHwgLS1leGVjLXBy ZWZpIFwKLSsgIHwgLS1leGVjLXByZWYgfCAtLWV4ZWMtcHJlIHwgLS1leGVjLXByIHwgLS1leGVj LXAgfCAtLWV4ZWMtIFwKLSsgIHwgLS1leGVjIHwgLS1leGUgfCAtLWV4KQotKyAgICBhY19wcmV2 PWV4ZWNfcHJlZml4IDs7Ci0rICAtZXhlYy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9KiB8IC0t ZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaT0qIFwKLSsgIHwgLS1leGVjLXByZWY9KiB8IC0t ZXhlYy1wcmU9KiB8IC0tZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCi0rICB8 IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKLSsgICAgZXhlY19wcmVmaXg9JGFjX29wdGFy ZyA7OwotKwotKyAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKLSsgICAgIyBPYnNvbGV0ZTsg dXNlIC0td2l0aC1nYXMuCi0rICAgIHdpdGhfZ2FzPXllcyA7OwotKwotKyAgLWhlbHAgfCAtLWhl bHAgfCAtLWhlbCB8IC0taGUgfCAtaCkKLSsgICAgYWNfaW5pdF9oZWxwPWxvbmcgOzsKLSsgIC1o ZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKLSsgICAgYWNf aW5pdF9oZWxwPXJlY3Vyc2l2ZSA7OwotKyAgLWhlbHA9cyogfCAtLWhlbHA9cyogfCAtLWhlbD1z KiB8IC0taGU9cyogfCAtaHMqKQotKyAgICBhY19pbml0X2hlbHA9c2hvcnQgOzsKLSsKLSsgIC1o b3N0IHwgLS1ob3N0IHwgLS1ob3MgfCAtLWhvKQotKyAgICBhY19wcmV2PWhvc3RfYWxpYXMgOzsK LSsgIC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSopCi0rICAgIGhvc3RfYWxp YXM9JGFjX29wdGFyZyA7OwotKwotKyAgLWh0bWxkaXIgfCAtLWh0bWxkaXIgfCAtLWh0bWxkaSB8 IC0taHRtbGQgfCAtLWh0bWwgfCAtLWh0bSB8IC0taHQpCi0rICAgIGFjX3ByZXY9aHRtbGRpciA7 OwotKyAgLWh0bWxkaXI9KiB8IC0taHRtbGRpcj0qIHwgLS1odG1sZGk9KiB8IC0taHRtbGQ9KiB8 IC0taHRtbD0qIHwgLS1odG09KiBcCi0rICB8IC0taHQ9KikKLSsgICAgaHRtbGRpcj0kYWNfb3B0 YXJnIDs7Ci0rCi0rICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwg LS1pbmNsdWRlZCB8IC0taW5jbHVkZSBcCi0rICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5j bCB8IC0taW5jKQotKyAgICBhY19wcmV2PWluY2x1ZGVkaXIgOzsKLSsgIC1pbmNsdWRlZGlyPSog fCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1 ZGU9KiBcCi0rICB8IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSop Ci0rICAgIGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWluZm9kaXIgfCAtLWluZm9k aXIgfCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWluZikKLSsgICAgYWNfcHJldj1p bmZvZGlyIDs7Ci0rICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0qIHwgLS1p bmZvZD0qIHwgLS1pbmZvPSogfCAtLWluZj0qKQotKyAgICBpbmZvZGlyPSRhY19vcHRhcmcgOzsK LSsKLSsgIC1saWJkaXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAtLWxpYmQpCi0rICAgIGFjX3By ZXY9bGliZGlyIDs7Ci0rICAtbGliZGlyPSogfCAtLWxpYmRpcj0qIHwgLS1saWJkaT0qIHwgLS1s aWJkPSopCi0rICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtbGliZXhlY2RpciB8IC0t bGliZXhlY2RpciB8IC0tbGliZXhlY2RpIHwgLS1saWJleGVjZCB8IC0tbGliZXhlYyBcCi0rICB8 IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKLSsgICAgYWNfcHJldj1saWJleGVjZGlyIDs7 Ci0rICAtbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaT0qIHwgLS1s aWJleGVjZD0qIHwgLS1saWJleGVjPSogXAotKyAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwg LS1saWJlPSopCi0rICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWxvY2FsZWRp ciB8IC0tbG9jYWxlZGlyIHwgLS1sb2NhbGVkaSB8IC0tbG9jYWxlZCB8IC0tbG9jYWxlKQotKyAg ICBhY19wcmV2PWxvY2FsZWRpciA7OwotKyAgLWxvY2FsZWRpcj0qIHwgLS1sb2NhbGVkaXI9KiB8 IC0tbG9jYWxlZGk9KiB8IC0tbG9jYWxlZD0qIHwgLS1sb2NhbGU9KikKLSsgICAgbG9jYWxlZGly PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGlyIHwg LS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fsc3RhdGVkIFwKLSsgIHwgLS1sb2NhbHN0YXRlIHwgLS1s b2NhbHN0YXQgfCAtLWxvY2Fsc3RhIHwgLS1sb2NhbHN0IHwgLS1sb2NhbHMpCi0rICAgIGFjX3By ZXY9bG9jYWxzdGF0ZWRpciA7OwotKyAgLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRp cj0qIHwgLS1sb2NhbHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9KiBcCi0rICB8IC0tbG9jYWxz dGF0ZT0qIHwgLS1sb2NhbHN0YXQ9KiB8IC0tbG9jYWxzdGE9KiB8IC0tbG9jYWxzdD0qIHwgLS1s b2NhbHM9KikKLSsgICAgbG9jYWxzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtbWFuZGly IHwgLS1tYW5kaXIgfCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1tKQotKyAg ICBhY19wcmV2PW1hbmRpciA7OwotKyAgLW1hbmRpcj0qIHwgLS1tYW5kaXI9KiB8IC0tbWFuZGk9 KiB8IC0tbWFuZD0qIHwgLS1tYW49KiB8IC0tbWE9KiB8IC0tbT0qKQotKyAgICBtYW5kaXI9JGFj X29wdGFyZyA7OwotKwotKyAgLW5mcCB8IC0tbmZwIHwgLS1uZikKLSsgICAgIyBPYnNvbGV0ZTsg dXNlIC0td2l0aG91dC1mcC4KLSsgICAgd2l0aF9mcD1ubyA7OwotKwotKyAgLW5vLWNyZWF0ZSB8 IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLSsgIHwg LS1uby1jciB8IC0tbm8tYyB8IC1uKQotKyAgICBub19jcmVhdGU9eWVzIDs7Ci0rCi0rICAtbm8t cmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNp IFwKLSsgIHwgLS1uby1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1uby1yZWN1IHwgLS1uby1yZWMg fCAtLW5vLXJlIHwgLS1uby1yKQotKyAgICBub19yZWN1cnNpb249eWVzIDs7Ci0rCi0rICAtb2xk aW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpIHwgLS1vbGRpbmNs dWRlZCBcCi0rICB8IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVkIHwgLS1vbGRpbmNsdSB8IC0t b2xkaW5jbCB8IC0tb2xkaW5jIFwKLSsgIHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1v bCB8IC0tbykKLSsgICAgYWNfcHJldj1vbGRpbmNsdWRlZGlyIDs7Ci0rICAtb2xkaW5jbHVkZWRp cj0qIHwgLS1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRpbmNsdWRl ZD0qIFwKLSsgIHwgLS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0q IHwgLS1vbGRpbmNsPSogfCAtLW9sZGluYz0qIFwKLSsgIHwgLS1vbGRpbj0qIHwgLS1vbGRpPSog fCAtLW9sZD0qIHwgLS1vbD0qIHwgLS1vPSopCi0rICAgIG9sZGluY2x1ZGVkaXI9JGFjX29wdGFy ZyA7OwotKwotKyAgLXByZWZpeCB8IC0tcHJlZml4IHwgLS1wcmVmaSB8IC0tcHJlZiB8IC0tcHJl IHwgLS1wciB8IC0tcCkKLSsgICAgYWNfcHJldj1wcmVmaXggOzsKLSsgIC1wcmVmaXg9KiB8IC0t cHJlZml4PSogfCAtLXByZWZpPSogfCAtLXByZWY9KiB8IC0tcHJlPSogfCAtLXByPSogfCAtLXA9 KikKLSsgICAgcHJlZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXByZWZpeCB8IC0t cHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBcCi0rICB8 IC0tcHJvZ3JhbS1wcmUgfCAtLXByb2dyYW0tcHIgfCAtLXByb2dyYW0tcCkKLSsgICAgYWNfcHJl dj1wcm9ncmFtX3ByZWZpeCA7OwotKyAgLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJl Zml4PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCi0rICB8IC0tcHJvZ3JhbS1wcmVmPSogfCAtLXBy b2dyYW0tcHJlPSogfCAtLXByb2dyYW0tcHI9KiB8IC0tcHJvZ3JhbS1wPSopCi0rICAgIHByb2dy YW1fcHJlZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3Jh bS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZmkgfCAtLXByb2dyYW0tc3VmZiBcCi0rICB8IC0tcHJv Z3JhbS1zdWYgfCAtLXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykKLSsgICAgYWNfcHJldj1wcm9n cmFtX3N1ZmZpeCA7OwotKyAgLXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZml4PSog fCAtLXByb2dyYW0tc3VmZmk9KiBcCi0rICB8IC0tcHJvZ3JhbS1zdWZmPSogfCAtLXByb2dyYW0t c3VmPSogfCAtLXByb2dyYW0tc3U9KiB8IC0tcHJvZ3JhbS1zPSopCi0rICAgIHByb2dyYW1fc3Vm Zml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9n cmFtLXRyYW5zZm9ybS1uYW1lIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXBy b2dyYW0tdHJhbnNmb3JtLW5hIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uIHwgLS1wcm9n cmFtLXRyYW5zZm9ybS0gXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRy YW5zZm9yIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNmIFwKLSsg IHwgLS1wcm9ncmFtLXRyYW5zIHwgLS1wcm9ncmFtLXRyYW4gXAotKyAgfCAtLXByb2dyLXRyYSB8 IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQotKyAgICBhY19wcmV2PXByb2dyYW1fdHJhbnNm b3JtX25hbWUgOzsKLSsgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogfCAtLXByb2dyYW0tdHJh bnNmb3JtLW5hbWU9KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dy YW0tdHJhbnNmb3JtLW5hPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW49KiB8IC0tcHJv Z3JhbS10cmFuc2Zvcm0tPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtPSogfCAtLXByb2dy YW0tdHJhbnNmb3I9KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dyYW0tdHJh bnNmPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnM9KiB8IC0tcHJvZ3JhbS10cmFuPSogXAotKyAg fCAtLXByb2dyLXRyYT0qIHwgLS1wcm9ncmFtLXRyPSogfCAtLXByb2dyYW0tdD0qKQotKyAgICBw cm9ncmFtX3RyYW5zZm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wZGZkaXIgfCAtLXBk ZmRpciB8IC0tcGRmZGkgfCAtLXBkZmQgfCAtLXBkZiB8IC0tcGQpCi0rICAgIGFjX3ByZXY9cGRm ZGlyIDs7Ci0rICAtcGRmZGlyPSogfCAtLXBkZmRpcj0qIHwgLS1wZGZkaT0qIHwgLS1wZGZkPSog fCAtLXBkZj0qIHwgLS1wZD0qKQotKyAgICBwZGZkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXBz ZGlyIHwgLS1wc2RpciB8IC0tcHNkaSB8IC0tcHNkIHwgLS1wcykKLSsgICAgYWNfcHJldj1wc2Rp ciA7OwotKyAgLXBzZGlyPSogfCAtLXBzZGlyPSogfCAtLXBzZGk9KiB8IC0tcHNkPSogfCAtLXBz PSopCi0rICAgIHBzZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1xIHwgLXF1aWV0IHwgLS1xdWll dCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0rICB8IC1zaWxlbnQgfCAtLXNpbGVu dCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKLSsgICAgc2lsZW50PXllcyA7OwotKwotKyAg LXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNi aSB8IC0tc2IpCi0rICAgIGFjX3ByZXY9c2JpbmRpciA7OwotKyAgLXNiaW5kaXI9KiB8IC0tc2Jp bmRpcj0qIHwgLS1zYmluZGk9KiB8IC0tc2JpbmQ9KiB8IC0tc2Jpbj0qIFwKLSsgIHwgLS1zYmk9 KiB8IC0tc2I9KikKLSsgICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtc2hhcmVkc3Rh dGVkaXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpIFwKLSsgIHwgLS1zaGFy ZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAot KyAgfCAtLXNoYXJlZHN0IHwgLS1zaGFyZWRzIHwgLS1zaGFyZWQgfCAtLXNoYXJlIHwgLS1zaGFy IFwKLSsgIHwgLS1zaGEgfCAtLXNoKQotKyAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7Ci0r ICAtc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVk aT0qIFwKLSsgIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hhcmVkc3RhdGU9KiB8IC0tc2hhcmVk c3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBcCi0rICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0q IHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwKLSsgIHwgLS1zaGE9KiB8IC0t c2g9KikKLSsgICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXNpdGUgfCAt LXNpdGUgfCAtLXNpdCkKLSsgICAgYWNfcHJldj1zaXRlIDs7Ci0rICAtc2l0ZT0qIHwgLS1zaXRl PSogfCAtLXNpdD0qKQotKyAgICBzaXRlPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1zcmNkaXIgfCAt LXNyY2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0tc3IpCi0rICAgIGFjX3ByZXY9 c3JjZGlyIDs7Ci0rICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNk PSogfCAtLXNyYz0qIHwgLS1zcj0qKQotKyAgICBzcmNkaXI9JGFjX29wdGFyZyA7OwotKwotKyAg LXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29uZmQgfCAt LXN5c2NvbmYgXAotKyAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5cyB8IC0t c3kpCi0rICAgIGFjX3ByZXY9c3lzY29uZmRpciA7OwotKyAgLXN5c2NvbmZkaXI9KiB8IC0tc3lz Y29uZmRpcj0qIHwgLS1zeXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwK LSsgIHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0tc3k9 KikKLSsgICAgc3lzY29uZmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtdGFyZ2V0IHwgLS10YXJn ZXQgfCAtLXRhcmdlIHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwgLS10KQotKyAgICBhY19wcmV2 PXRhcmdldF9hbGlhcyA7OwotKyAgLXRhcmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8 IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQotKyAgICB0YXJnZXRfYWxpYXM9 JGFjX29wdGFyZyA7OwotKwotKyAgLXYgfCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9z IHwgLS12ZXJibyB8IC0tdmVyYikKLSsgICAgdmVyYm9zZT15ZXMgOzsKLSsKLSsgIC12ZXJzaW9u IHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCi0rICAgIGFj X2luaXRfdmVyc2lvbj06IDs7Ci0rCi0rICAtd2l0aC0qIHwgLS13aXRoLSopCi0rICAgIGFjX3Vz ZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCi0rICAgICMg UmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLSsg ICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251 bGwgJiYKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2Ug bmFtZTogJGFjX3VzZXJvcHQiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAg ICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8g IiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAgICBjYXNlICRhY191c2VyX29w dHMgaW4KLSsgICAgICAqIgotKyJ3aXRoXyRhY191c2Vyb3B0IgotKyIqKSA7OwotKyAgICAgICop IGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25p emVkX3NlcC0td2l0aC0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0n LCAnOzsKLSsgICAgZXNhYwotKyAgICBldmFsIHdpdGhfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcg OzsKLSsKLSsgIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKLSsgICAgYWNfdXNlcm9wdD1gZXhw ciAieCRhY19vcHRpb24iIDogJ3gtKndpdGhvdXQtXCguKlwpJ2AKLSsgICAgIyBSZWplY3QgbmFt ZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotKyAgICBleHByICJ4 JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotKyAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNf dXNlcm9wdCIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgIGFjX3VzZXJv cHRfb3JpZz0kYWNfdXNlcm9wdAotKyAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJv cHQiIHwgc2VkICdzL1stKy5dL18vZydgCi0rICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBpbgotKyAg ICAgICoiCi0rIndpdGhfJGFjX3VzZXJvcHQiCi0rIiopIDs7Ci0rICAgICAgKikgYWNfdW5yZWNv Z25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS13 aXRob3V0LSRhY191c2Vyb3B0X29yaWciCi0rCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7Owot KyAgICBlc2FjCi0rICAgIGV2YWwgd2l0aF8kYWNfdXNlcm9wdD1ubyA7OwotKwotKyAgLS14KQot KyAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLXguCi0rICAgIHdpdGhfeD15ZXMgOzsKLSsKLSsg IC14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGUgfCAtLXgtaW5jbHVkIHwg LS14LWluY2x1IFwKLSsgIHwgLS14LWluY2wgfCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCi0r ICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7OwotKyAgLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRl cz0qIHwgLS14LWluY2x1ZGU9KiB8IC0teC1pbmNsdWQ9KiB8IC0teC1pbmNsdT0qIFwKLSsgIHwg LS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0qIHwgLS14LWk9KikKLSsgICAgeF9pbmNs dWRlcz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAteC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwg LS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAotKyAgfCAtLXgtbGlicmFyIHwgLS14LWxpYnJh IHwgLS14LWxpYnIgfCAtLXgtbGliIHwgLS14LWxpIHwgLS14LWwpCi0rICAgIGFjX3ByZXY9eF9s aWJyYXJpZXMgOzsKLSsgIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14LWxp YnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKLSsgIHwgLS14LWxpYnJhcj0qIHwgLS14LWxpYnJh PSogfCAtLXgtbGlicj0qIHwgLS14LWxpYj0qIHwgLS14LWxpPSogfCAtLXgtbD0qKQotKyAgICB4 X2xpYnJhcmllcz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtKikgeyAkYXNfZWNobyAiJGFzX21lOiBl cnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJGFjX29wdGlvbgotK1RyeSBcYCQwIC0taGVscCcg Zm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LSsgICAgOzsKLSsKLSsgICo9KikKLSsgICAgYWNfZW52dmFyPWBleHByICJ4JGFjX29wdGlvbiIg OiAneFwoW149XSpcKT0nYAotKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQg c2hlbGwgdmFyaWFibGUgbmFtZXMuCi0rICAgIGV4cHIgIngkYWNfZW52dmFyIiA6ICIuKlteXyRh c19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBpbnZhbGlkIHZhcmlhYmxlIG5hbWU6ICRhY19lbnZ2YXIiID4mMgotKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQotKyAgICBldmFsICRhY19lbnZ2YXI9XCRhY19vcHRhcmcKLSsgICAg ZXhwb3J0ICRhY19lbnZ2YXIgOzsKLSsKLSsgICopCi0rICAgICMgRklYTUU6IHNob3VsZCBiZSBy ZW1vdmVkIGluIGF1dG9jb25mIDMuMC4KLSsgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog eW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdldCIgPiYyCi0rICAgIGV4cHIg IngkYWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotKyAg ICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0 aW9uIiA+JjIKLSsgICAgOiAke2J1aWxkX2FsaWFzPSRhY19vcHRpb259ICR7aG9zdF9hbGlhcz0k YWNfb3B0aW9ufSAke3RhcmdldF9hbGlhcz0kYWNfb3B0aW9ufQotKyAgICA7OwotKwotKyAgZXNh YwotIGRvbmUKLSAKLS1pZiBbICR0Y2xfZm91bmQgLWVxIDAgXQotLXRoZW4KLS0gICAgICAgIGVj aG8gJ05PVCBmb3VuZC4nCi0tICAgICAgICBlY2hvICdJcyB0aGUgVGNsIGluc3RhbGxlZD8nCi0t ICAgICAgICBleGl0Ci0raWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCi0rICBhY19vcHRpb249 LS1gZWNobyAkYWNfcHJldiB8IHNlZCAncy9fLy0vZydgCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iID4mMgotKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rCi0raWYgdGVzdCAtbiAiJGFjX3VucmVjb2duaXplZF9v cHRzIjsgdGhlbgotKyAgY2FzZSAkZW5hYmxlX29wdGlvbl9jaGVja2luZyBpbgotKyAgICBubykg OzsKLSsgICAgZmF0YWwpIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBv cHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfSA7OwotKyAgICAqKSAgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNv Z25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYyIDs7Ci0rICBlc2FjCi0r ZmkKLSsKLSsjIENoZWNrIGFsbCBkaXJlY3RvcnkgYXJndW1lbnRzIGZvciBjb25zaXN0ZW5jeS4K LStmb3IgYWNfdmFyIGluCWV4ZWNfcHJlZml4IHByZWZpeCBiaW5kaXIgc2JpbmRpciBsaWJleGVj ZGlyIGRhdGFyb290ZGlyIFwKLSsJCWRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBs b2NhbHN0YXRlZGlyIGluY2x1ZGVkaXIgXAotKwkJb2xkaW5jbHVkZWRpciBkb2NkaXIgaW5mb2Rp ciBodG1sZGlyIGR2aWRpciBwZGZkaXIgcHNkaXIgXAotKwkJbGliZGlyIGxvY2FsZWRpciBtYW5k aXIKLStkbwotKyAgZXZhbCBhY192YWw9XCQkYWNfdmFyCi0rICAjIFJlbW92ZSB0cmFpbGluZyBz bGFzaGVzLgotKyAgY2FzZSAkYWNfdmFsIGluCi0rICAgICovICkKLSsgICAgICBhY192YWw9YGV4 cHIgIlgkYWNfdmFsIiA6ICdYXCguKlteL11cKScgXHwgIlgkYWNfdmFsIiA6ICdYXCguKlwpJ2AK LSsgICAgICBldmFsICRhY192YXI9XCRhY192YWw7OwotKyAgZXNhYwotKyAgIyBCZSBzdXJlIHRv IGhhdmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWVzLgotKyAgY2FzZSAkYWNfdmFsIGluCi0rICAg IFtcXC8kXSogfCA/OltcXC9dKiApICBjb250aW51ZTs7Ci0rICAgIE5PTkUgfCAnJyApIGNhc2Ug JGFjX3ZhciBpbiAqcHJlZml4ICkgY29udGludWU7OyBlc2FjOzsKLSsgIGVzYWMKLSsgIHsgJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1l IGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQotK2RvbmUKLSsKLSsjIFRoZXJlIG1pZ2h0IGJlIHBlb3BsZSB3aG8gZGVwZW5kIG9uIHRoZSBv bGQgYnJva2VuIGJlaGF2aW9yOiBgJGhvc3QnCi0rIyB1c2VkIHRvIGhvbGQgdGhlIGFyZ3VtZW50 IG9mIC0taG9zdCBldGMuCi0rIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgotK2J1aWxkPSRi dWlsZF9hbGlhcwotK2hvc3Q9JGhvc3RfYWxpYXMKLSt0YXJnZXQ9JHRhcmdldF9hbGlhcwotKwot KyMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KLStpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiICE9 IHg7IHRoZW4KLSsgIGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiID0geDsgdGhlbgotKyAgICBjcm9z c19jb21waWxpbmc9bWF5YmUKLSsgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogSWYgeW91 IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVpbGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KLSsgICAg SWYgYSBjcm9zcyBjb21waWxlciBpcyBkZXRlY3RlZCB0aGVuIGNyb3NzIGNvbXBpbGUgbW9kZSB3 aWxsIGJlIHVzZWQuIiA+JjIKLSsgIGVsaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgIT0gIngkaG9z dF9hbGlhcyI7IHRoZW4KLSsgICAgY3Jvc3NfY29tcGlsaW5nPXllcwotKyAgZmkKLStmaQotKwot K2FjX3Rvb2xfcHJlZml4PQotK3Rlc3QgLW4gIiRob3N0X2FsaWFzIiAmJiBhY190b29sX3ByZWZp eD0kaG9zdF9hbGlhcy0KLSsKLSt0ZXN0ICIkc2lsZW50IiA9IHllcyAmJiBleGVjIDY+L2Rldi9u dWxsCi0rCi0rCi0rYWNfcHdkPWBwd2RgICYmIHRlc3QgLW4gIiRhY19wd2QiICYmCi0rYWNfbHNf ZGk9YGxzIC1kaSAuYCAmJgotK2FjX3B3ZF9sc19kaT1gY2QgIiRhY19wd2QiICYmIGxzIC1kaSAu YCB8fAotKyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogd29ya2luZyBkaXJlY3RvcnkgY2Fu bm90IGJlIGRldGVybWluZWQiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK3Rl c3QgIlgkYWNfbHNfZGkiID0gIlgkYWNfcHdkX2xzX2RpIiB8fAotKyAgeyAkYXNfZWNobyAiJGFz X21lOiBlcnJvcjogcHdkIGRvZXMgbm90IHJlcG9ydCBuYW1lIG9mIHdvcmtpbmcgZGlyZWN0b3J5 IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSsKLSsjIEZpbmQgdGhlIHNv dXJjZSBmaWxlcywgaWYgbG9jYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQuCi0raWYgdGVzdCAteiAi JHNyY2RpciI7IHRoZW4KLSsgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9eWVzCi0rICAjIFRyeSB0aGUg ZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBzY3JpcHQsIHRoZW4gdGhlIHBhcmVudCBkaXJlY3Rv cnkuCi0rICBhY19jb25mZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX215c2VsZiIgfHwKLSskYXNf ZXhwciBYIiRhc19teXNlbGYiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0r CSBYIiRhc19teXNlbGYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSBYIiRhc19teXNlbGYiIDog J1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhc19teXNlbGYiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYv bnVsbCB8fAotKyRhc19lY2hvIFgiJGFzX215c2VsZiIgfAotKyAgICBzZWQgJy9eWFwoLipbXi9d XClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkg IC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAv XlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9c KS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsg IHNyY2Rpcj0kYWNfY29uZmRpcgotKyAgaWYgdGVzdCAhIC1yICIkc3JjZGlyLyRhY191bmlxdWVf ZmlsZSI7IHRoZW4KLSsgICAgc3JjZGlyPS4uCi0rICBmaQotK2Vsc2UKLSsgIGFjX3NyY2Rpcl9k ZWZhdWx0ZWQ9bm8KLStmaQotK2lmIHRlc3QgISAtciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUi OyB0aGVuCi0rICB0ZXN0ICIkYWNfc3JjZGlyX2RlZmF1bHRlZCIgPSB5ZXMgJiYgc3JjZGlyPSIk YWNfY29uZmRpciBvciAuLiIKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBm aW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJHNyY2RpciIgPiYyCi0rICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLSthY19tc2c9InNvdXJjZXMgYXJlIGluICRzcmNkaXIs IGJ1dCBcYGNkICRzcmNkaXInIGRvZXMgbm90IHdvcmsiCi0rYWNfYWJzX2NvbmZkaXI9YCgKLSsJ Y2QgIiRzcmNkaXIiICYmIHRlc3QgLXIgIi4vJGFjX3VuaXF1ZV9maWxlIiB8fCB7ICRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiAkYWNfbXNnIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KLSsJcHdkKWAKLSsjIFdoZW4gYnVpbGRpbmcgaW4gcGxhY2UsIHNldCBzcmNkaXI9LgotK2lm IHRlc3QgIiRhY19hYnNfY29uZmRpciIgPSAiJGFjX3B3ZCI7IHRoZW4KLSsgIHNyY2Rpcj0uCi0r ZmkKLSsjIFJlbW92ZSB1bm5lY2Vzc2FyeSB0cmFpbGluZyBzbGFzaGVzIGZyb20gc3JjZGlyLgot KyMgRG91YmxlIHNsYXNoZXMgaW4gZmlsZSBuYW1lcyBpbiBvYmplY3QgZmlsZSBkZWJ1Z2dpbmcg aW5mbwotKyMgbWVzcyB1cCBNLXggZ2RiIGluIEVtYWNzLgotK2Nhc2UgJHNyY2RpciBpbgotKyov KSBzcmNkaXI9YGV4cHIgIlgkc3JjZGlyIiA6ICdYXCguKlteL11cKScgXHwgIlgkc3JjZGlyIiA6 ICdYXCguKlwpJ2A7OwotK2VzYWMKLStmb3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJzOyBk bwotKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQotKyAgZXZh bCBhY19lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9Ci0rICBldmFsIGFjX2N2X2Vudl8k e2FjX3Zhcn1fc2V0PVwkeyR7YWNfdmFyfStzZXR9Ci0rICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zh cn1fdmFsdWU9XCQke2FjX3Zhcn0KLStkb25lCi0rCi0rIwotKyMgUmVwb3J0IHRoZSAtLWhlbHAg bWVzc2FnZS4KLSsjCi0raWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAibG9uZyI7IHRoZW4KLSsg ICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlz dCBsZXNzIGltcG9zaW5nLgotKyAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBz dHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgotKyAgY2F0IDw8X0FDRU9GCi0rXGBjb25maWd1cmUn IGNvbmZpZ3VyZXMgU09DSSAzLjAuMCB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMu Ci0rCi0rVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVdLi4uCi0rCi0rVG8gYXNzaWdu IGVudmlyb25tZW50IHZhcmlhYmxlcyAoZS5nLiwgQ0MsIENGTEFHUy4uLiksIHNwZWNpZnkgdGhl bSBhcwotK1ZBUj1WQUxVRS4gIFNlZSBiZWxvdyBmb3IgZGVzY3JpcHRpb25zIG9mIHNvbWUgb2Yg dGhlIHVzZWZ1bCB2YXJpYWJsZXMuCi0rCi0rRGVmYXVsdHMgZm9yIHRoZSBvcHRpb25zIGFyZSBz cGVjaWZpZWQgaW4gYnJhY2tldHMuCi0rCi0rQ29uZmlndXJhdGlvbjoKLSsgIC1oLCAtLWhlbHAg ICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0Ci0rICAgICAgLS1oZWxwPXNo b3J0ICAgICAgICBkaXNwbGF5IG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlCi0rICAg ICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBkaXNwbGF5IHRoZSBzaG9ydCBoZWxwIG9mIGFsbCB0aGUg aW5jbHVkZWQgcGFja2FnZXMKLSsgIC1WLCAtLXZlcnNpb24gICAgICAgICAgIGRpc3BsYXkgdmVy c2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAotKyAgLXEsIC0tcXVpZXQsIC0tc2lsZW50ICAgZG8g bm90IHByaW50IFxgY2hlY2tpbmcuLi4nIG1lc3NhZ2VzCi0rICAgICAgLS1jYWNoZS1maWxlPUZJ TEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gRklMRSBbZGlzYWJsZWRdCi0rICAtQywgLS1jb25m aWctY2FjaGUgICAgICBhbGlhcyBmb3IgXGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJwotKyAg LW4sIC0tbm8tY3JlYXRlICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKLSsgICAg ICAtLXNyY2Rpcj1ESVIgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUg ZGlyIG9yIFxgLi4nXQotKwotK0luc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKLSsgIC0tcHJlZml4 PVBSRUZJWCAgICAgICAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzIGlu IFBSRUZJWAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgWyRhY19kZWZhdWx0X3ByZWZpeF0K LSsgIC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVu dCBmaWxlcyBpbiBFUFJFRklYCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBbUFJFRklYXQot KwotK0J5IGRlZmF1bHQsIFxgbWFrZSBpbnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxl cyBpbgotK1xgJGFjX2RlZmF1bHRfcHJlZml4L2JpbicsIFxgJGFjX2RlZmF1bHRfcHJlZml4L2xp YicgZXRjLiAgWW91IGNhbiBzcGVjaWZ5Ci0rYW4gaW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0 aGFuIFxgJGFjX2RlZmF1bHRfcHJlZml4JyB1c2luZyBcYC0tcHJlZml4JywKLStmb3IgaW5zdGFu Y2UgXGAtLXByZWZpeD1cJEhPTUUnLgotKwotK0ZvciBiZXR0ZXIgY29udHJvbCwgdXNlIHRoZSBv cHRpb25zIGJlbG93LgotKwotK0ZpbmUgdHVuaW5nIG9mIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0 b3JpZXM6Ci0rICAtLWJpbmRpcj1ESVIgICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtFUFJF RklYL2Jpbl0KLSsgIC0tc2JpbmRpcj1ESVIgICAgICAgICAgIHN5c3RlbSBhZG1pbiBleGVjdXRh YmxlcyBbRVBSRUZJWC9zYmluXQotKyAgLS1saWJleGVjZGlyPURJUiAgICAgICAgcHJvZ3JhbSBl eGVjdXRhYmxlcyBbRVBSRUZJWC9saWJleGVjXQotKyAgLS1zeXNjb25mZGlyPURJUiAgICAgICAg cmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC9ldGNdCi0rICAtLXNoYXJlZHN0 YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQ UkVGSVgvY29tXQotKyAgLS1sb2NhbHN0YXRlZGlyPURJUiAgICAgbW9kaWZpYWJsZSBzaW5nbGUt bWFjaGluZSBkYXRhIFtQUkVGSVgvdmFyXQotKyAgLS1saWJkaXI9RElSICAgICAgICAgICAgb2Jq ZWN0IGNvZGUgbGlicmFyaWVzIFtFUFJFRklYL2xpYl0KLSsgIC0taW5jbHVkZWRpcj1ESVIgICAg ICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5jbHVkZV0KLSsgIC0tb2xkaW5jbHVkZWRpcj1E SVIgICAgIEMgaGVhZGVyIGZpbGVzIGZvciBub24tZ2NjIFsvdXNyL2luY2x1ZGVdCi0rICAtLWRh dGFyb290ZGlyPURJUiAgICAgICByZWFkLW9ubHkgYXJjaC4taW5kZXBlbmRlbnQgZGF0YSByb290 IFtQUkVGSVgvc2hhcmVdCi0rICAtLWRhdGFkaXI9RElSICAgICAgICAgICByZWFkLW9ubHkgYXJj aGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSXQotKyAgLS1pbmZvZGlyPURJ UiAgICAgICAgICAgaW5mbyBkb2N1bWVudGF0aW9uIFtEQVRBUk9PVERJUi9pbmZvXQotKyAgLS1s b2NhbGVkaXI9RElSICAgICAgICAgbG9jYWxlLWRlcGVuZGVudCBkYXRhIFtEQVRBUk9PVERJUi9s b2NhbGVdCi0rICAtLW1hbmRpcj1ESVIgICAgICAgICAgICBtYW4gZG9jdW1lbnRhdGlvbiBbREFU QVJPT1RESVIvbWFuXQotKyAgLS1kb2NkaXI9RElSICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiBy b290IFtEQVRBUk9PVERJUi9kb2Mvc29jaV0KLSsgIC0taHRtbGRpcj1ESVIgICAgICAgICAgIGh0 bWwgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQotKyAgLS1kdmlkaXI9RElSICAgICAgICAgICAgZHZp IGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KLSsgIC0tcGRmZGlyPURJUiAgICAgICAgICAgIHBkZiBk b2N1bWVudGF0aW9uIFtET0NESVJdCi0rICAtLXBzZGlyPURJUiAgICAgICAgICAgICBwcyBkb2N1 bWVudGF0aW9uIFtET0NESVJdCi0rX0FDRU9GCi0rCi0rICBjYXQgPDxcX0FDRU9GCi0rCi0rUHJv Z3JhbSBuYW1lczoKLSsgIC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklYICAgICAgICAgICAgcHJlcGVu ZCBQUkVGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLSsgIC0tcHJvZ3JhbS1zdWZmaXg9 U1VGRklYICAgICAgICAgICAgYXBwZW5kIFNVRkZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1l cwotKyAgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPVBST0dSQU0gICBydW4gc2VkIFBST0dSQU0g b24gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLSsKLStTeXN0ZW0gdHlwZXM6Ci0rICAtLWJ1aWxk PUJVSUxEICAgICBjb25maWd1cmUgZm9yIGJ1aWxkaW5nIG9uIEJVSUxEIFtndWVzc2VkXQotKyAg LS1ob3N0PUhPU1QgICAgICAgY3Jvc3MtY29tcGlsZSB0byBidWlsZCBwcm9ncmFtcyB0byBydW4g b24gSE9TVCBbQlVJTERdCi0rX0FDRU9GCi0rZmkKLSsKLStpZiB0ZXN0IC1uICIkYWNfaW5pdF9o ZWxwIjsgdGhlbgotKyAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0rICAgICBzaG9ydCB8IHJlY3Vy c2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgU09DSSAzLjAuMDoiOzsKLSsgICBlc2FjCi0r ICBjYXQgPDxcX0FDRU9GCi0rCi0rT3B0aW9uYWwgRmVhdHVyZXM6Ci0rICAtLWRpc2FibGUtb3B0 aW9uLWNoZWNraW5nICBpZ25vcmUgdW5yZWNvZ25pemVkIC0tZW5hYmxlLy0td2l0aCBvcHRpb25z Ci0rICAtLWRpc2FibGUtRkVBVFVSRSAgICAgICBkbyBub3QgaW5jbHVkZSBGRUFUVVJFIChzYW1l IGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8pCi0rICAtLWVuYWJsZS1GRUFUVVJFWz1BUkddICBpbmNs dWRlIEZFQVRVUkUgW0FSRz15ZXNdCi0rICAtLWVuYWJsZS1zaGFyZWRbPVBLR1NdICBidWlsZCBz aGFyZWQgbGlicmFyaWVzIFtkZWZhdWx0PW5vXQotKyAgLS1lbmFibGUtc3RhdGljWz1QS0dTXSAg YnVpbGQgc3RhdGljIGxpYnJhcmllcyBbZGVmYXVsdD15ZXNdCi0rICAtLWRpc2FibGUtZGVwZW5k ZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCi0rICAtLWVuYWJsZS1kZXBl bmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9y cwotKyAgLS1lbmFibGUtZmFzdC1pbnN0YWxsWz1QS0dTXQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uIFtkZWZhdWx0PXllc10KLSsgIC0t ZGlzYWJsZS1saWJ0b29sLWxvY2sgIGF2b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVs IGJ1aWxkcykKLSsgIC0tZW5hYmxlLWV4Y2VwdGlvbnMgICAgIGVuYWJsZSBleGNlcHRpb25zIGhh bmRsaW5nIG1lY2hhbmlzbQotKyAgLS1kaXNhYmxlLWluZm8tZG9jICAgICAgZG8gbm90IGdlbmVy YXRlIEluZm8gZG9jdW1lbnRhdGlvbgotKyAgLS1kaXNhYmxlLWh0bWwtZG9jICAgICAgZG8gbm90 IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbgotKyAgLS1lbmFibGUtYnVycmllZC1oZWFkZXJz Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIGhlYWRlciBmaWxlcyBmcm9tIGEg ZGlyZWN0b3J5IHN0cnVjdHVyZQotKyAgLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9t IGEgZGlyZWN0b3J5Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUKLSsgIC0t ZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3RvcnkKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZQotKyAgLS1lbmFibGUtYmFja2VuZC1t eXNxbCAgYnVpbGQtaW4gTXlTUUwgYmFja2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5vXQotKyAgLS1l bmFibGUtYmFja2VuZC1vcmFjbGUgYnVpbGQtaW4gT1JBQ0xFIGJhY2tlbmQgc3VwcG9ydCBbZGVm YXVsdD1ub10KLSsgIC0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgYnVpbGQtaW4gUG9zdGdyZVNRTCBiYWNrZW5kIHN1cHBvcnQgW2RlZmF1bHQ9 bm9dCi0rCi0rT3B0aW9uYWwgUGFja2FnZXM6Ci0rICAtLXdpdGgtUEFDS0FHRVs9QVJHXSAgICB1 c2UgUEFDS0FHRSBbQVJHPXllc10KLSsgIC0td2l0aG91dC1QQUNLQUdFICAgICAgIGRvIG5vdCB1 c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykKLSsgIC0td2l0aC1jcHB1bml0 LXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFs KQotKyAgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXg9UEZYICBFeGVjIHByZWZpeCB3aGVyZSBD cHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpCi0rICAtLXdpdGgtZ251LWxkICAgICAgICAg ICBhc3N1bWUgdGhlIEMgY29tcGlsZXIgdXNlcyBHTlUgbGQgW2RlZmF1bHQ9bm9dCi0rICAtLXdp dGgtcGljICAgICAgICAgICAgICB0cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBb ZGVmYXVsdD11c2UKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdGhdCi0rICAtLXdpdGgt dGFnc1s9VEFHU10gICAgICBpbmNsdWRlIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgW2F1dG9t YXRpY10KLSsgIC0td2l0aC1kb2NkaXI9RElSICAgICAgIHNldCBkb2N1bWVudGF0aW9uIGRpcmVj dG9yeSB0byBESVIKLSsgIC0td2l0aC1ib29zdD1ESVIgICAgICAgIHVzZSBib29zdCAoZGVmYXVs dCBpcyBOTykgLCBzcGVjaWZ5IHRoZSByb290Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBk aXJlY3RvcnkgZm9yIGJvb3N0IGxpYnJhcnkgKG9wdGlvbmFsKQotKyAgLS13aXRoLW15c3FsPVtB UkddICAgICAgdXNlIE15U1FMIGNsaWVudCBsaWJyYXJ5IFtkZWZhdWx0PXllc10sIG9wdGlvbmFs bHkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgcGF0aCB0byBteXNxbF9jb25m aWcKLSsgIC0td2l0aC1vcmFjbGU9W0RJUl0gICAgIHVzZSBPcmFjbGUgT0NJIEFQSSBmcm9tIGdp dmVuIHBhdGggdG8gT3JhY2xlIGhvbWUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVj dG9yeQotKyAgLS13aXRoLW9yYWNsZS1pbmNsdWRlPVtESVJdCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICB1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGgKLSsgIC0t d2l0aC1vcmFjbGUtbGliPVtESVJdIHVzZSBPcmFjbGUgT0NJIEFQSSBsaWJyYXJpZXMgZnJvbSBn aXZlbiBwYXRoCi0rICAtLXdpdGgtcG9zdGdyZXNxbD1bQVJHXSB1c2UgUG9zdGdyZVNRTCBsaWJy YXJ5IFtkZWZhdWx0PXllc10sIG9wdGlvbmFsbHkKLSsgICAgICAgICAgICAgICAgICAgICAgICAg IHNwZWNpZnkgcGF0aCB0byBwZ19jb25maWcKLSsKLStTb21lIGluZmx1ZW50aWFsIGVudmlyb25t ZW50IHZhcmlhYmxlczoKLSsgIENYWCAgICAgICAgIEMrKyBjb21waWxlciBjb21tYW5kCi0rICBD WFhGTEFHUyAgICBDKysgY29tcGlsZXIgZmxhZ3MKLSsgIExERkxBR1MgICAgIGxpbmtlciBmbGFn cywgZS5nLiAtTDxsaWIgZGlyPiBpZiB5b3UgaGF2ZSBsaWJyYXJpZXMgaW4gYQotKyAgICAgICAg ICAgICAgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxsaWIgZGlyPgotKyAgTElCUyAgICAgICAgbGli cmFyaWVzIHRvIHBhc3MgdG8gdGhlIGxpbmtlciwgZS5nLiAtbDxsaWJyYXJ5PgotKyAgQ1BQRkxB R1MgICAgQy9DKysvT2JqZWN0aXZlIEMgcHJlcHJvY2Vzc29yIGZsYWdzLCBlLmcuIC1JPGluY2x1 ZGUgZGlyPiBpZgotKyAgICAgICAgICAgICAgeW91IGhhdmUgaGVhZGVycyBpbiBhIG5vbnN0YW5k YXJkIGRpcmVjdG9yeSA8aW5jbHVkZSBkaXI+Ci0rICBDWFhDUFAgICAgICBDKysgcHJlcHJvY2Vz c29yCi0rICBDQyAgICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKLSsgIENGTEFHUyAgICAgIEMg Y29tcGlsZXIgZmxhZ3MKLSsgIENQUCAgICAgICAgIEMgcHJlcHJvY2Vzc29yCi0rICBGNzcgICAg ICAgICBGb3J0cmFuIDc3IGNvbXBpbGVyIGNvbW1hbmQKLSsgIEZGTEFHUyAgICAgIEZvcnRyYW4g NzcgY29tcGlsZXIgZmxhZ3MKLSsKLStVc2UgdGhlc2UgdmFyaWFibGVzIHRvIG92ZXJyaWRlIHRo ZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVscAotK2l0IHRvIGZpbmQgbGli cmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRoIG5vbnN0YW5kYXJkIG5hbWVzL2xvY2F0aW9ucy4KLSsK LStSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pi4KLStfQUNF T0YKLSthY19zdGF0dXM9JD8KLStmaQotKwotK2lmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gInJl Y3Vyc2l2ZSI7IHRoZW4KLSsgICMgSWYgdGhlcmUgYXJlIHN1YmRpcnMsIHJlcG9ydCB0aGVpciBz cGVjaWZpYyAtLWhlbHAuCi0rICBmb3IgYWNfZGlyIGluIDogJGFjX3N1YmRpcnNfYWxsOyBkbyB0 ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBjb250aW51ZQotKyAgICB0ZXN0IC1kICIkYWNfZGlyIiB8 fAotKyAgICAgIHsgY2QgIiRzcmNkaXIiICYmIGFjX3B3ZD1gcHdkYCAmJiBzcmNkaXI9LiAmJiB0 ZXN0IC1kICIkYWNfZGlyIjsgfSB8fAotKyAgICAgIGNvbnRpbnVlCi0rICAgIGFjX2J1aWxkZGly PS4KLSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4pIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWls ZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OwotKyopCi0rICBhY19kaXJfc3VmZml4 PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwnYAotKyAgIyBBICIuLiIg Zm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotKyAgYWNfdG9wX2J1aWxkZGly X3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58Zztz fC98fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCi0rICAiIikgYWNfdG9wX2J1 aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rICAqKSAgYWNfdG9wX2J1aWxk X3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKLSsgIGVzYWMgOzsKLStlc2FjCi0rYWNf YWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNfYWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGly X3N1ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6Ci0rYWNfdG9wX2J1aWxkZGly PSRhY190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2FzZSAkc3JjZGlyIGluCi0rICAuKSAgIyBXZSBh cmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFjX3NyY2Rpcj0uCi0rICAgIGFjX3RvcF9zcmNk aXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7 OwotKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1lLgotKyAgICBhY19zcmNk aXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKLSsg ICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgot KyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgK LSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIKLSsgICAgYWNf YWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7Ci0rZXNhYwotK2FjX2Fic19zcmNkaXI9 JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsKLSsgICAgY2QgIiRhY19kaXIiIHx8 IHsgYWNfc3RhdHVzPSQ/OyBjb250aW51ZTsgfQotKyAgICAjIENoZWNrIGZvciBndWVzdGVkIGNv bmZpZ3VyZS4KLSsgICAgaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25maWd1cmUuZ251IjsgdGhl bgotKyAgICAgIGVjaG8gJiYKLSsgICAgICAkU0hFTEwgIiRhY19zcmNkaXIvY29uZmlndXJlLmdu dSIgLS1oZWxwPXJlY3Vyc2l2ZQotKyAgICBlbGlmIHRlc3QgLWYgIiRhY19zcmNkaXIvY29uZmln dXJlIjsgdGhlbgotKyAgICAgIGVjaG8gJiYKLSsgICAgICAkU0hFTEwgIiRhY19zcmNkaXIvY29u ZmlndXJlIiAtLWhlbHA9cmVjdXJzaXZlCi0rICAgIGVsc2UKLSsgICAgICAkYXNfZWNobyAiJGFz X21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGlzIGluICRhY19kaXIi ID4mMgotKyAgICBmaSB8fCBhY19zdGF0dXM9JD8KLSsgICAgY2QgIiRhY19wd2QiIHx8IHsgYWNf c3RhdHVzPSQ/OyBicmVhazsgfQotKyAgZG9uZQotIGZpCi0gCi0tZWNobyAnJwotLWNkIGJ1aWxk L3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBwYXJzZS1wYXJhbWV0ZXJzLnRjbAotLQotLWVjaG8gJycK LS1lY2hvICdDb25maWd1cmUgZG9uZS4nCi0tZWNobyAnWWVzLCBpdCB3YXMgc2hvcnQuJwotLWVj aG8gJycKLS1lY2hvICdZb3UgY2FuIG5vdyBydW4gbWFrZS4nCi0rdGVzdCAtbiAiJGFjX2luaXRf aGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCi0raWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgotKyAg Y2F0IDw8XF9BQ0VPRgotK1NPQ0kgY29uZmlndXJlIDMuMC4wCi0rZ2VuZXJhdGVkIGJ5IEdOVSBB dXRvY29uZiAyLjYzCi0rCi0rQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAx OTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIw MDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBjb25m aWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24KLStnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBt b2RpZnkgaXQuCi0rCi0rQ29weXJpZ2h0IChDKSAyMDA0LTIwMDkgTWFjaWVqIFNvYmN6YWsgPG1z b2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLStfQUNFT0YKLSsgIGV4aXQKLStmaQotK2Nh dCA+Y29uZmlnLmxvZyA8PF9BQ0VPRgotK1RoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMg cHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCi0rcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBk ZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KLSsKLStJdCB3YXMgY3JlYXRl ZCBieSBTT0NJICRhc19tZSAzLjAuMCwgd2hpY2ggd2FzCi0rZ2VuZXJhdGVkIGJ5IEdOVSBBdXRv Y29uZiAyLjYzLiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCi0rCi0rICAkICQwICRACi0r Ci0rX0FDRU9GCi0rZXhlYyA1Pj5jb25maWcubG9nCi0rewotK2NhdCA8PF9BU1VOQU1FCi0rIyMg LS0tLS0tLS0tICMjCi0rIyMgUGxhdGZvcm0uICMjCi0rIyMgLS0tLS0tLS0tICMjCi0rCi0raG9z dG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLSt1 bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLSt1bmFt ZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLSt1bmFtZSAt cyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLSt1bmFtZSAtdiA9 IGAodW5hbWUgLXYpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLSsKLSsvdXNyL2Jpbi91 bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93 bmAKLSsvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGwgICAg IHx8IGVjaG8gdW5rbm93bmAKLSsKLSsvYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2Fy Y2gpIDI+L2Rldi9udWxsICAgICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi0rL3Vzci9iaW4v YXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGwgICAgICAgfHwg ZWNobyB1bmtub3duYAotKy91c3IvY29udmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29udmV4L2dl dHN5c2luZm8pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLSsvdXNyL2Jpbi9ob3N0aW5m byAgICAgID0gYCgvdXNyL2Jpbi9ob3N0aW5mbykgMj4vZGV2L251bGwgICAgICB8fCBlY2hvIHVu a25vd25gCi0rL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IGAoL2Jpbi9tYWNoaW5lKSAyPi9kZXYv bnVsbCAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAotKy91c3IvYmluL29zbGV2ZWwgICAgICAg PSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAK LSsvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbCAg ICAgICAgICB8fCBlY2hvIHVua25vd25gCi0rCi0rX0FTVU5BTUUKLSsKLSthc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgJGFz X2VjaG8gIlBBVEg6ICRhc19kaXIiCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSt9ID4m NQotKwotK2NhdCA+JjUgPDxfQUNFT0YKLSsKLSsKLSsjIyAtLS0tLS0tLS0tLSAjIwotKyMjIENv cmUgdGVzdHMuICMjCi0rIyMgLS0tLS0tLS0tLS0gIyMKLSsKLStfQUNFT0YKLSsKLSsKLSsjIEtl ZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFuZCBsaW5lLgotKyMgU3RyaXAgb3V0IC0tbm8tY3JlYXRl IGFuZCAtLW5vLXJlY3Vyc2lvbiBzbyB0aGV5IGRvIG5vdCBwaWxlIHVwLgotKyMgU3RyaXAgb3V0 IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByZWNvcmQgaXQgZm9yIGZ1dHVyZSBy dW5zLgotKyMgQWxzbyBxdW90ZSBhbnkgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGEtY2hhcmFj dGVycy4KLSsjIE1ha2UgdHdvIHBhc3NlcyB0byBhbGxvdyBmb3IgcHJvcGVyIGR1cGxpY2F0ZS1h cmd1bWVudCBzdXBwcmVzc2lvbi4KLSthY19jb25maWd1cmVfYXJncz0KLSthY19jb25maWd1cmVf YXJnczA9Ci0rYWNfY29uZmlndXJlX2FyZ3MxPQotK2FjX211c3Rfa2VlcF9uZXh0PWZhbHNlCi0r Zm9yIGFjX3Bhc3MgaW4gMSAyCi0rZG8KLSsgIGZvciBhY19hcmcKLSsgIGRvCi0rICAgIGNhc2Ug JGFjX2FyZyBpbgotKyAgICAtbm8tY3JlYXRlIHwgLS1uby1jKiB8IC1uIHwgLW5vLXJlY3Vyc2lv biB8IC0tbm8tciopIGNvbnRpbnVlIDs7Ci0rICAgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0t cXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0rICAgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwg LS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQotKyAgICAgIGNvbnRpbnVlIDs7Ci0rICAgICpcJyop Ci0rICAgICAgYWNfYXJnPWAkYXNfZWNobyAiJGFjX2FyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwn Jy9nImAgOzsKLSsgICAgZXNhYwotKyAgICBjYXNlICRhY19wYXNzIGluCi0rICAgIDEpIGFjX2Nv bmZpZ3VyZV9hcmdzMD0iJGFjX2NvbmZpZ3VyZV9hcmdzMCAnJGFjX2FyZyciIDs7Ci0rICAgIDIp Ci0rICAgICAgYWNfY29uZmlndXJlX2FyZ3MxPSIkYWNfY29uZmlndXJlX2FyZ3MxICckYWNfYXJn JyIKLSsgICAgICBpZiB0ZXN0ICRhY19tdXN0X2tlZXBfbmV4dCA9IHRydWU7IHRoZW4KLSsJYWNf bXVzdF9rZWVwX25leHQ9ZmFsc2UgIyBHb3QgdmFsdWUsIGJhY2sgdG8gbm9ybWFsLgotKyAgICAg IGVsc2UKLSsJY2FzZSAkYWNfYXJnIGluCi0rCSAgKj0qIHwgLS1jb25maWctY2FjaGUgfCAtQyB8 IC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKiBcCi0rCSAgfCAtZW5hYmxlLSogfCAtLWVuYWJsZS0q IHwgLWdhcyB8IC0tZyogfCAtbmZwIHwgLS1uZiogXAotKwkgIHwgLXEgfCAtcXVpZXQgfCAtLXEq IHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZlcmIqIFwKLSsJICB8IC13aXRoLSogfCAtLXdp dGgtKiB8IC13aXRob3V0LSogfCAtLXdpdGhvdXQtKiB8IC0teCkKLSsJICAgIGNhc2UgIiRhY19j b25maWd1cmVfYXJnczAgIiBpbgotKwkgICAgICAiJGFjX2NvbmZpZ3VyZV9hcmdzMSIqIiAnJGFj X2FyZycgIiogKSBjb250aW51ZSA7OwotKwkgICAgZXNhYwotKwkgICAgOzsKLSsJICAtKiApIGFj X211c3Rfa2VlcF9uZXh0PXRydWUgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgYWNfY29u ZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyciCi0rICAgICAgOzsKLSsg ICAgZXNhYwotKyAgZG9uZQotK2RvbmUKLSskYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MwIHx8 IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MwK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3Vy ZV9hcmdzMD07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczA7IH0KLSskYXNfdW5zZXQgYWNfY29u ZmlndXJlX2FyZ3MxIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MxK3NldH0iICE9IHNldCB8 fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMT07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczE7IH0KLSsK LSsjIFdoZW4gaW50ZXJydXB0ZWQgb3IgZXhpdCdkLCBjbGVhbnVwIHRlbXBvcmFyeSBmaWxlcywg YW5kIGNvbXBsZXRlCi0rIyBjb25maWcubG9nLiAgV2UgcmVtb3ZlIGNvbW1lbnRzIGJlY2F1c2Ug YW55d2F5IHRoZSBxdW90ZXMgaW4gdGhlcmUKLSsjIHdvdWxkIGNhdXNlIHByb2JsZW1zIG9yIGxv b2sgdWdseS4KLSsjIFdBUk5JTkc6IFVzZSAnXCcnIHRvIHJlcHJlc2VudCBhbiBhcG9zdHJvcGhl IHdpdGhpbiB0aGUgdHJhcC4KLSsjIFdBUk5JTkc6IERvIG5vdCBzdGFydCB0aGUgdHJhcCBjb2Rl IHdpdGggYSBuZXdsaW5lLCBkdWUgdG8gYSBGcmVlQlNEIDQuMCBidWcuCi0rdHJhcCAnZXhpdF9z dGF0dXM9JD8KLSsgICMgU2F2ZSBpbnRvIGNvbmZpZy5sb2cgc29tZSBpbmZvcm1hdGlvbiB0aGF0 IG1pZ2h0IGhlbHAgaW4gZGVidWdnaW5nLgotKyAgewotKyAgICBlY2hvCi0rCi0rICAgIGNhdCA8 PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgQ2FjaGUgdmFyaWFibGVzLiAj IwotKyMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLStfQVNCT1gKLSsgICAgZWNobwotKyAgICAjIFRo ZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMg aW4gdmFsdWVzLAotKygKLSsgIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ1wn J3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnXCcnYDsgZG8KLSsgICAgZXZh bCBhY192YWw9XCQkYWNfdmFyCi0rICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAotKyAgICAqJHthc19u bH0qKQotKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAotKyAgICAgICpfY3ZfKikgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFp bnMgYSBuZXdsaW5lIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBjYWNoZSB2YXJp YWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30gOzsKLSsgICAgICBlc2FjCi0r ICAgICAgY2FzZSAkYWNfdmFyIGluICMoCi0rICAgICAgXyB8IElGUyB8IGFzX25sKSA7OyAjKAot KyAgICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7ICMoCi0rICAg ICAgKikgJGFzX3Vuc2V0ICRhY192YXIgOzsKLSsgICAgICBlc2FjIDs7Ci0rICAgIGVzYWMKLSsg IGRvbmUKLSsgIChzZXQpIDI+JjEgfAotKyAgICBjYXNlICRhc19ubGAoYWNfc3BhY2U9J1wnJyAn XCcnOyBzZXQpIDI+JjFgIGluICMoCi0rICAgICoke2FzX25sfWFjX3NwYWNlPVwgKikKLSsgICAg ICBzZWQgLW4gXAotKwkicy8nXCcnLydcJydcXFxcJ1wnJydcJycvZzsKLSsJICBzL15cXChbXyRh c19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPSdcJydcXDIn XCcnL3AiCi0rICAgICAgOzsgIygKLSsgICAgKikKLSsgICAgICBzZWQgLW4gIi9eW18kYXNfY3Jf YWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9wIgotKyAgICAgIDs7Ci0rICAgIGVzYWMgfAot KyAgICBzb3J0Ci0rKQotKyAgICBlY2hvCi0rCi0rICAgIGNhdCA8PFxfQVNCT1gKLSsjIyAtLS0t LS0tLS0tLS0tLS0tLSAjIwotKyMjIE91dHB1dCB2YXJpYWJsZXMuICMjCi0rIyMgLS0tLS0tLS0t LS0tLS0tLS0gIyMKLStfQVNCT1gKLSsgICAgZWNobwotKyAgICBmb3IgYWNfdmFyIGluICRhY19z dWJzdF92YXJzCi0rICAgIGRvCi0rICAgICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCi0rICAgICAg Y2FzZSAkYWNfdmFsIGluCi0rICAgICAgKlwnXCcnKikgYWNfdmFsPWAkYXNfZWNobyAiJGFjX3Zh bCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9nImA7OwotKyAgICAgIGVzYWMK LSsgICAgICAkYXNfZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3ZhbCdcJyciCi0rICAgIGRvbmUgfCBz b3J0Ci0rICAgIGVjaG8KLSsKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3N1YnN0X2ZpbGVzIjsgdGhl bgotKyAgICAgIGNhdCA8PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMg RmlsZSBzdWJzdGl0dXRpb25zLiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLStfQVNC T1gKLSsgICAgICBlY2hvCi0rICAgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfZmlsZXMKLSsg ICAgICBkbwotKwlldmFsIGFjX3ZhbD1cJCRhY192YXIKLSsJY2FzZSAkYWNfdmFsIGluCi0rCSpc J1wnJyopIGFjX3ZhbD1gJGFzX2VjaG8gIiRhY192YWwiIHwgc2VkICJzLydcJycvJ1wnJ1xcXFxc XFxcJ1wnJydcJycvZyJgOzsKLSsJZXNhYwotKwkkYXNfZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3Zh bCdcJyciCi0rICAgICAgZG9uZSB8IHNvcnQKLSsgICAgICBlY2hvCi0rICAgIGZpCi0rCi0rICAg IGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhlbgotKyAgICAgIGNhdCA8PFxfQVNCT1gKLSsjIyAt LS0tLS0tLS0tLSAjIwotKyMjIGNvbmZkZWZzLmguICMjCi0rIyMgLS0tLS0tLS0tLS0gIyMKLStf QVNCT1gKLSsgICAgICBlY2hvCi0rICAgICAgY2F0IGNvbmZkZWZzLmgKLSsgICAgICBlY2hvCi0r ICAgIGZpCi0rICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYKLSsgICAgICAkYXNfZWNobyAi JGFzX21lOiBjYXVnaHQgc2lnbmFsICRhY19zaWduYWwiCi0rICAgICRhc19lY2hvICIkYXNfbWU6 IGV4aXQgJGV4aXRfc3RhdHVzIgotKyAgfSA+JjUKLSsgIHJtIC1mIGNvcmUgKi5jb3JlIGNvcmUu Y29uZnRlc3QuKiAmJgotKyAgICBybSAtZiAtciBjb25mdGVzdCogY29uZmRlZnMqIGNvbmYkJCog JGFjX2NsZWFuX2ZpbGVzICYmCi0rICAgIGV4aXQgJGV4aXRfc3RhdHVzCi0rJyAwCi0rZm9yIGFj X3NpZ25hbCBpbiAxIDIgMTMgMTU7IGRvCi0rICB0cmFwICdhY19zaWduYWw9JyRhY19zaWduYWwn OyB7IChleGl0IDEpOyBleGl0IDE7IH0nICRhY19zaWduYWwKLStkb25lCi0rYWNfc2lnbmFsPTAK LSsKLSsjIGNvbmZkZWZzLmggYXZvaWRzIE9TIGNvbW1hbmQgbGluZSBsZW5ndGggbGltaXRzIHRo YXQgREVGUyBjYW4gZXhjZWVkLgotK3JtIC1mIC1yIGNvbmZ0ZXN0KiBjb25mZGVmcy5oCi0rCi0r IyBQcmVkZWZpbmVkIHByZXByb2Nlc3NvciB2YXJpYWJsZXMuCi0rCi0rY2F0ID4+Y29uZmRlZnMu aCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FHRV9OQU1FICIkUEFDS0FHRV9OQU1FIgotK19BQ0VP RgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiJFBBQ0tBR0VfVEFSTkFNRSIKLStfQUNFT0YKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5o IDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRQQUNLQUdFX1ZFUlNJT04iCi0r X0FDRU9GCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIiRQQUNLQUdFX1NUUklORyIKLStfQUNFT0YKLSsKLSsKLStjYXQgPj5jb25mZGVm cy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiJFBBQ0tBR0VfQlVHUkVQ T1JUIgotK19BQ0VPRgotKwotKwotKyMgTGV0IHRoZSBzaXRlIGZpbGUgc2VsZWN0IGFuIGFsdGVy bmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdhbnRzIHRvLgotKyMgUHJlZmVyIGFuIGV4cGxpY2l0bHkg c2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIG9uZXMuCi0rYWNfc2l0ZV9m aWxlMT1OT05FCi0rYWNfc2l0ZV9maWxlMj1OT05FCi0raWYgdGVzdCAtbiAiJENPTkZJR19TSVRF IjsgdGhlbgotKyAgYWNfc2l0ZV9maWxlMT0kQ09ORklHX1NJVEUKLStlbGlmIHRlc3QgIngkcHJl Zml4IiAhPSB4Tk9ORTsgdGhlbgotKyAgYWNfc2l0ZV9maWxlMT0kcHJlZml4L3NoYXJlL2NvbmZp Zy5zaXRlCi0rICBhY19zaXRlX2ZpbGUyPSRwcmVmaXgvZXRjL2NvbmZpZy5zaXRlCi0rZWxzZQot KyAgYWNfc2l0ZV9maWxlMT0kYWNfZGVmYXVsdF9wcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUKLSsg IGFjX3NpdGVfZmlsZTI9JGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9jb25maWcuc2l0ZQotK2ZpCi0r Zm9yIGFjX3NpdGVfZmlsZSBpbiAiJGFjX3NpdGVfZmlsZTEiICIkYWNfc2l0ZV9maWxlMiIKLStk bwotKyAgdGVzdCAieCRhY19zaXRlX2ZpbGUiID0geE5PTkUgJiYgY29udGludWUKLSsgIGlmIHRl c3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY2O30KLSsgICAgc2Vk ICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1Ci0rICAgIC4gIiRhY19zaXRlX2ZpbGUiCi0r ICBmaQotK2RvbmUKLSsKLStpZiB0ZXN0IC1yICIkY2FjaGVfZmlsZSI7IHRoZW4KLSsgICMgU29t ZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwgZmFpbCB0byBzb3VyY2UgL2Rldi9udWxsIChzcGVjaWFs Ci0rICAjIGZpbGVzIGFjdHVhbGx5KSwgc28gd2UgYXZvaWQgZG9pbmcgdGhhdC4KLSsgIGlmIHRl c3QgLWYgIiRjYWNoZV9maWxlIjsgdGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogbG9h ZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLSsgICAgY2FzZSAkY2FjaGVfZmlsZSBpbgot KyAgICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAiJGNhY2hlX2ZpbGUiOzsKLSsgICAgICAqKSAg ICAgICAgICAgICAgICAgICAgICAuICIuLyRjYWNoZV9maWxlIjs7Ci0rICAgIGVzYWMKLSsgIGZp Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nIGNhY2hlICRj YWNoZV9maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyBjYWNoZSAkY2FjaGVf ZmlsZSIgPiY2O30KLSsgID4kY2FjaGVfZmlsZQotK2ZpCi0rCi0rIyBDaGVjayB0aGF0IHRoZSBw cmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQgaW4gdGhlIGNhY2hlIGhhdmUga2VwdCB0aGUgc2FtZQot KyMgdmFsdWUuCi0rYWNfY2FjaGVfY29ycnVwdGVkPWZhbHNlCi0rZm9yIGFjX3ZhciBpbiAkYWNf cHJlY2lvdXNfdmFyczsgZG8KLSsgIGV2YWwgYWNfb2xkX3NldD1cJGFjX2N2X2Vudl8ke2FjX3Zh cn1fc2V0Ci0rICBldmFsIGFjX25ld19zZXQ9XCRhY19lbnZfJHthY192YXJ9X3NldAotKyAgZXZh bCBhY19vbGRfdmFsPVwkYWNfY3ZfZW52XyR7YWNfdmFyfV92YWx1ZQotKyAgZXZhbCBhY19uZXdf dmFsPVwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZQotKyAgY2FzZSAkYWNfb2xkX3NldCwkYWNfbmV3 X3NldCBpbgotKyAgICBzZXQsKQotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91 cyBydW4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQg dG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYyO30KLSsgICAgICBhY19j YWNoZV9jb3JydXB0ZWQ9OiA7OwotKyAgICAsc2V0KQotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMg cnVuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNl dCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQotKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06 IDs7Ci0rICAgICwpOzsKLSsgICAgKikKLSsgICAgICBpZiB0ZXN0ICJ4JGFjX29sZF92YWwiICE9 ICJ4JGFjX25ld192YWwiOyB0aGVuCi0rCSMgZGlmZmVyZW5jZXMgaW4gd2hpdGVzcGFjZSBkbyBu b3QgbGVhZCB0byBmYWlsdXJlLgotKwlhY19vbGRfdmFsX3c9YGVjaG8geCAkYWNfb2xkX3ZhbGAK LSsJYWNfbmV3X3ZhbF93PWBlY2hvIHggJGFjX25ld192YWxgCi0rCWlmIHRlc3QgIiRhY19vbGRf dmFsX3ciICE9ICIkYWNfbmV3X3ZhbF93IjsgdGhlbgotKwkgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMg cnVuOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5n ZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9Ci0rCSAgYWNfY2FjaGVfY29ycnVwdGVk PToKLSsJZWxzZQotKwkgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiB3YXJuaW5nOiBpZ25v cmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gXGAkYWNfdmFyJyBzaW5jZSB0aGUgcHJldmlvdXMg cnVuOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogd2FybmluZzogaWdub3Jpbmcgd2hpdGVzcGFj ZSBjaGFuZ2VzIGluIFxgJGFjX3Zhcicgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9Ci0r CSAgZXZhbCAkYWNfdmFyPVwkYWNfb2xkX3ZhbAotKwlmaQotKwl7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFsJyIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFsJyIgPiYyO30KLSsJeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86ICAgY3VycmVudCB2YWx1ZTogXGAkYWNfbmV3X3ZhbCciID4m NQotKyRhc19lY2hvICIkYXNfbWU6ICAgY3VycmVudCB2YWx1ZTogXGAkYWNfbmV3X3ZhbCciID4m Mjt9Ci0rICAgICAgZmk7OwotKyAgZXNhYwotKyAgIyBQYXNzIHByZWNpb3VzIHZhcmlhYmxlcyB0 byBjb25maWcuc3RhdHVzLgotKyAgaWYgdGVzdCAiJGFjX25ld19zZXQiID0gc2V0OyB0aGVuCi0r ICAgIGNhc2UgJGFjX25ld192YWwgaW4KLSsgICAgKlwnKikgYWNfYXJnPSRhY192YXI9YCRhc19l Y2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKLSsgICAgKikg YWNfYXJnPSRhY192YXI9JGFjX25ld192YWwgOzsKLSsgICAgZXNhYwotKyAgICBjYXNlICIgJGFj X2NvbmZpZ3VyZV9hcmdzICIgaW4KLSsgICAgICAqIiAnJGFjX2FyZycgIiopIDs7ICMgQXZvaWQg ZHVwcy4gIFVzZSBvZiBxdW90ZXMgZW5zdXJlcyBhY2N1cmFjeS4KLSsgICAgICAqKSBhY19jb25m aWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICckYWNfYXJnJyIgOzsKLSsgICAgZXNhYwot KyAgZmkKLStkb25lCi0raWYgJGFjX2NhY2hlX2NvcnJ1cHRlZDsgdGhlbgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJv bWlzZSB0aGUgYnVpbGQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjaGFuZ2VzIGlu IHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mMjt9Ci0rICB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFu ZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmls ZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0r ZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKwotK2FjX2NvbmZpZ19oZWFkZXJzPSIkYWNfY29u ZmlnX2hlYWRlcnMgc29jaS9jb25maWcuaCIKLSsKLSsKLSthY19hdXhfZGlyPQotK2ZvciBhY19k aXIgaW4gY29uZmlnICIkc3JjZGlyIi9jb25maWc7IGRvCi0rICBpZiB0ZXN0IC1mICIkYWNfZGly L2luc3RhbGwtc2giOyB0aGVuCi0rICAgIGFjX2F1eF9kaXI9JGFjX2RpcgotKyAgICBhY19pbnN0 YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLXNoIC1jIgotKyAgICBicmVhawotKyAgZWxpZiB0 ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwuc2giOyB0aGVuCi0rICAgIGFjX2F1eF9kaXI9JGFjX2Rp cgotKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLnNoIC1jIgotKyAgICBi cmVhawotKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL3NodG9vbCI7IHRoZW4KLSsgICAgYWNfYXV4 X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL3NodG9vbCBpbnN0 YWxsIC1jIgotKyAgICBicmVhawotKyAgZmkKLStkb25lCi0raWYgdGVzdCAteiAiJGFjX2F1eF9k aXIiOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90 IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0YWxsLnNoIGluIGNvbmZpZyBcIiRzcmNkaXJcIi9jb25m aWciID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNo IG9yIGluc3RhbGwuc2ggaW4gY29uZmlnIFwiJHNyY2RpclwiL2NvbmZpZyIgPiYyO30KLSsgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotKwotKyMgVGhlc2UgdGhyZWUgdmFyaWFibGVz IGFyZSB1bmRvY3VtZW50ZWQgYW5kIHVuc3VwcG9ydGVkLAotKyMgYW5kIGFyZSBpbnRlbmRlZCB0 byBiZSB3aXRoZHJhd24gaW4gYSBmdXR1cmUgQXV0b2NvbmYgcmVsZWFzZS4KLSsjIFRoZXkgY2Fu IGNhdXNlIHNlcmlvdXMgcHJvYmxlbXMgaWYgYSBidWlsZGVyJ3Mgc291cmNlIHRyZWUgaXMgaW4g YSBkaXJlY3RvcnkKLSsjIHdob3NlIGZ1bGwgbmFtZSBjb250YWlucyB1bnVzdWFsIGNoYXJhY3Rl cnMuCi0rYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzIiAg IyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgotK2FjX2NvbmZpZ19zdWI9IiRTSEVMTCAkYWNf YXV4X2Rpci9jb25maWcuc3ViIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgotK2FjX2Nv bmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIgICMgUGxlYXNlIGRvbid0IHVz ZSB0aGlzIHZhci4KLSsKLSsKLSthbV9fYXBpX3ZlcnNpb249JzEuMTAnCi0rCi0rIyBGaW5kIGEg Z29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZhc3RlciksCi0r IyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMgYW5vdGhlci4gIEJ1dCBhdm9pZCB0aGUgYnJv a2VuIG9yCi0rIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6Ci0rIyBTeXNWIC9ldGMvaW5zdGFsbCwg L3Vzci9zYmluL2luc3RhbGwKLSsjIFN1bk9TIC91c3IvZXRjL2luc3RhbGwKLSsjIElSSVggL3Ni aW4vaW5zdGFsbAotKyMgQUlYIC9iaW4vaW5zdGFsbAotKyMgQW1pZ2FPUyAvQy9pbnN0YWxsLCB3 aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZsb3BweSBkaXNjcwotKyMgQUlYIDQgL3Vzci9i aW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhvdXQgYSAtZyBmbGFnCi0rIyBB RlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxlcyBub25leGlzdGVudCBh cmdzCi0rIyBTVlI0IC91c3IvdWNiL2luc3RhbGwsIHdoaWNoIHRyaWVzIHRvIHVzZSB0aGUgbm9u ZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgotKyMgT1MvMidzIHN5c3RlbSBpbnN0YWxsLCB3aGljaCBo YXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYwotKyMgLi9pbnN0YWxsLCB3aGljaCBj YW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9pbnN0YWxsLnNoLgotKyMg UmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMgdGhhdCBjYW5ub3QgaW5zdGFsbCBtdWx0aXBsZSBmaWxl cy4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBh dGlibGUgaW5zdGFsbCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBh dGlibGUgaW5zdGFsbC4uLiAiID4mNjsgfQotK2lmIHRlc3QgLXogIiRJTlNUQUxMIjsgdGhlbgot K2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAjIEFjY291bnQgZm9y IHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5nIHNsYXNoZXMgaW4gUEFUSCBlbGVtZW50cy4KLStjYXNl ICRhc19kaXIvIGluCi0rICAuLyB8IC4vLyB8IC9jQy8qIHwgXAotKyAgL2V0Yy8qIHwgL3Vzci9z YmluLyogfCAvdXNyL2V0Yy8qIHwgL3NiaW4vKiB8IC91c3IvYWZzd3MvYmluLyogfCBcCi0rICA/ OlxcL29zMlxcL2luc3RhbGxcXC8qIHwgPzpcXC9PUzJcXC9JTlNUQUxMXFwvKiB8IFwKLSsgIC91 c3IvdWNiLyogKSA7OwotKyAgKikKLSsgICAgIyBPU0YxIGFuZCBTQ08gT0RUIDMuMCBoYXZlIHRo ZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KLSsgICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBm cm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290Ci0rICAgICMgYnkgZGVmYXVs dC4KLSsgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5zdCBpbnN0YWxsOyBkbwotKyAg ICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwot KwlpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rCSAgaWYgdGVzdCAk YWNfcHJvZyA9IGluc3RhbGwgJiYKLSsJICAgIGdyZXAgZHNwbXNnICIkYXNfZGlyLyRhY19wcm9n JGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAgICMgQUlYIGluc3RhbGwu ICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlvbi4KLSsJICAgIDoKLSsJ ICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0rCSAgICBncmVwIHB3cGx1cyAiJGFz X2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCSAgICAj IHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBieSBIUCBwd3BsdXMtLWRvbid0 IHVzZS4KLSsJICAgIDoKLSsJICBlbHNlCi0rCSAgICBybSAtcmYgY29uZnRlc3Qub25lIGNvbmZ0 ZXN0LnR3byBjb25mdGVzdC5kaXIKLSsJICAgIGVjaG8gb25lID4gY29uZnRlc3Qub25lCi0rCSAg ICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3bwotKwkgICAgbWtkaXIgY29uZnRlc3QuZGlyCi0rCSAg ICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLWMgY29uZnRlc3Qub25lIGNvbmZ0 ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAmJgotKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0 Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LnR3byAmJgotKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0 LmRpci9jb25mdGVzdC5vbmUgJiYKLSsJICAgICAgdGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRl c3QudHdvCi0rCSAgICB0aGVuCi0rCSAgICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rpci8k YWNfcHJvZyRhY19leGVjX2V4dCAtYyIKLSsJICAgICAgYnJlYWsgMwotKwkgICAgZmkKLSsJICBm aQotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgZG9uZQotKyAgICA7OwotK2VzYWMKLSsKLStkb25l Ci0rSUZTPSRhc19zYXZlX0lGUwotKwotK3JtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdv IGNvbmZ0ZXN0LmRpcgotKwotK2ZpCi0rICBpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtz ZXR9IiA9IHNldDsgdGhlbgotKyAgICBJTlNUQUxMPSRhY19jdl9wYXRoX2luc3RhbGwKLSsgIGVs c2UKLSsgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0LiAg RG9uJ3QgY2FjaGUgYQotKyAgICAjIHZhbHVlIGZvciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJjZSBk aXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCi0rICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMg dXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCi0rICAgICMgcmVtb3ZlZCwgb3Ig aWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFtZS4KLSsgICAgSU5TVEFMTD0kYWNfaW5zdGFs bF9zaAotKyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRJ TlNUQUxMIiA+JjUKLSskYXNfZWNobyAiJElOU1RBTEwiID4mNjsgfQotKwotKyMgVXNlIHRlc3Qg LXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4gJHt2YXItdmFsfS4KLSsj IEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJhY2UgZW5kcyB0aGUgdmFyaWFibGUgc3Vic3Rp dHV0aW9uLgotK3Rlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0iICYmIElOU1RBTExfUFJPR1JBTT0n JHtJTlNUQUxMfScKLSsKLSt0ZXN0IC16ICIkSU5TVEFMTF9TQ1JJUFQiICYmIElOU1RBTExfU0NS SVBUPScke0lOU1RBTEx9JwotKwotK3Rlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExf REFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZSIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uICIgPiY2 OyB9Ci0rIyBKdXN0IGluIGNhc2UKLStzbGVlcCAxCi0rZWNobyB0aW1lc3RhbXAgPiBjb25mdGVz dC5maWxlCi0rIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhl IGN1cnJlbnQgc2hlbGwncwotKyMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2Fz ZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQotKyMgc3ltbGluazsgc29tZSBzeXN0ZW1zIHBsYXkg d2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MKLSsjIChlZyBGcmVlQlNE IHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmluZwotKyMgZGly ZWN0b3J5KS4KLStpZiAoCi0rICAgc2V0IFggYGxzIC1MdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25m dGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKLSsgICBpZiB0ZXN0ICIkKiIgPSAiWCI7IHRoZW4KLSsg ICAgICAjIC1MIGRpZG4ndCB3b3JrLgotKyAgICAgIHNldCBYIGBscyAtdCAkc3JjZGlyL2NvbmZp Z3VyZSBjb25mdGVzdC5maWxlYAotKyAgIGZpCi0rICAgcm0gLWYgY29uZnRlc3QuZmlsZQotKyAg IGlmIHRlc3QgIiQqIiAhPSAiWCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIiBcCi0r ICAgICAgJiYgdGVzdCAiJCoiICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUi OyB0aGVuCi0rCi0rICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJy b2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgotKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09O RklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSsgICAgICAjIGJyb2tlbiBscyBh bGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5Ci0rICAgICAgIyBo YXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgot KyAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBscyAtdCBhcHBlYXJz IHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2VuCi0rYWxpYXMgaW4geW91 ciBlbnZpcm9ubWVudCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGxzIC10IGFwcGVh cnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KLSthbGlhcyBpbiB5 b3VyIGVudmlyb25tZW50IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAg IGZpCi0rCi0rICAgdGVzdCAiJDIiID0gY29uZnRlc3QuZmlsZQotKyAgICkKLSt0aGVuCi0rICAg IyBPay4KLSsgICA6Ci0rZWxzZQotKyAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEK LStDaGVjayB5b3VyIHN5c3RlbSBjbG9jayIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQotK0No ZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSsk YXNfZWNobyAieWVzIiA+JjY7IH0KLSt0ZXN0ICIkcHJvZ3JhbV9wcmVmaXgiICE9IE5PTkUgJiYK LSsgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMmXiYkcHJvZ3JhbV9wcmVmaXgmOyRwcm9ncmFt X3RyYW5zZm9ybV9uYW1lIgotKyMgVXNlIGEgZG91YmxlICQgc28gbWFrZSBpZ25vcmVzIGl0Lgot K3Rlc3QgIiRwcm9ncmFtX3N1ZmZpeCIgIT0gTk9ORSAmJgotKyAgcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgotKyMg RG91YmxlIGFueSBcIG9yICQuCi0rIyBCeSBkZWZhdWx0IHdhcyBgcyx4LHgnLCByZW1vdmUgaXQg aWYgdXNlbGVzcy4KLSthY19zY3JpcHQ9J3MvW1xcJF0vJiYvZztzLztzLHgseCwkLy8nCi0rcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFzX2VjaG8gIiRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIiB8 IHNlZCAiJGFjX3NjcmlwdCJgCi0rCi0rIyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1 dGUgcGF0aAotK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYmIHB3ZGAKLSsKLSt0ZXN0IHgi JHtNSVNTSU5HK3NldH0iID0geHNldCB8fCBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIv bWlzc2luZyIKLSsjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKLStpZiBldmFsICIkTUlTU0lO RyAtLXJ1biB0cnVlIjsgdGhlbgotKyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVuICIK LStlbHNlCi0rICBhbV9taXNzaW5nX3J1bj0KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmciID4mNQot KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQg b3IgbWlzc2luZyIgPiYyO30KLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4gIiA+JjY7IH0KLStpZiB0ZXN0IC16 ICIkTUtESVJfUCI7IHRoZW4KLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSCRQ QVRIX1NFUEFSQVRPUi9vcHQvc2Z3L2JpbgotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX3Byb2cgaW4gbWtkaXIgZ21r ZGlyOyBkbwotKwkgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCi0rCSAgIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYg JGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH0gfHwgY29udGludWUK LSsJICAgY2FzZSBgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC0tdmVyc2lvbiAyPiYx YCBpbiAjKAotKwkgICAgICdta2RpciAoR05VIGNvcmV1dGlscykgJyogfCBcCi0rCSAgICAgJ21r ZGlyIChjb3JldXRpbHMpICcqIHwgXAotKwkgICAgICdta2RpciAoZmlsZXV0aWxzKSAnNC4xKikK LSsJICAgICAgIGFjX2N2X3BhdGhfbWtkaXI9JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dAot KwkgICAgICAgYnJlYWsgMzs7Ci0rCSAgIGVzYWMKLSsJIGRvbmUKLSsgICAgICAgZG9uZQotK2Rv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLSsKLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0 aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgotKyAgICBNS0RJUl9QPSIkYWNfY3ZfcGF0aF9ta2Rp ciAtcCIKLSsgIGVsc2UKLSsgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhlIHNsb3cgc2hl bGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQotKyAgICAjIHZhbHVlIGZvciBNS0RJUl9QIHdpdGhp biBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCi0rICAgICMgYnJlYWsgb3Ro ZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCi0rICAgICMg cmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFtZS4KLSsgICAgdGVzdCAt ZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgotKyAgICBNS0RJUl9QPSIkYWNfaW5z dGFsbF9zaCAtZCIKLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkTUtESVJfUCIgPiY1Ci0rJGFzX2VjaG8gIiRNS0RJUl9QIiA+JjY7IH0KLSsKLStta2Rp cl9wPSIkTUtESVJfUCIKLStjYXNlICRta2Rpcl9wIGluCi0rICBbXFwvJF0qIHwgPzpbXFwvXSop IDs7Ci0rICAqLyopIG1rZGlyX3A9IlwkKHRvcF9idWlsZGRpcikvJG1rZGlyX3AiIDs7Ci0rZXNh YwotKwotK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBuYXdrIGF3awotK2RvCi0rICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2 X3Byb2dfQVdLK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRBV0siOyB0aGVuCi0rICBhY19jdl9wcm9nX0FXSz0i JEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJv Z19BV0s9IiRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2Rv bmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStBV0s9JGFjX2N2X3By b2dfQVdLCi0raWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRBV0siID4mNQotKyRhc19lY2hvICIkQVdLIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAtbiAiJEFXSyIgJiYgYnJlYWsKLStk b25lCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJHtN QUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRo ZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+JjY7IH0KLStzZXQgeCAke01BS0Ut bWFrZX0KLSthY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2VkICdzLysvcC9nOyBzL1teYS16QS1a MC05X10vXy9nJ2AKLStpZiB7IGFzX3Zhcj1hY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ7 IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC5tYWtlIDw8XF9B Q0VPRgotK1NIRUxMID0gL2Jpbi9zaAotK2FsbDoKLSsJQGVjaG8gJ0BAQCUlJT0kKE1BS0UpPUBA QCUlJScKLStfQUNFT0YKLSsjIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVu dGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KLStjYXNlIGAke01BS0UtbWFrZX0g LWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4KLSsgICpAQEAlJSU9Pyo9QEBAJSUlKikK LSsgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9eWVzOzsKLSsgICopCi0r ICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PW5vOzsKLStlc2FjCi0rcm0g LWYgY29uZnRlc3QubWFrZQotK2ZpCi0raWYgZXZhbCB0ZXN0IFwkYWNfY3ZfcHJvZ19tYWtlXyR7 YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgU0VUX01BS0U9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0iTUFLRT0ke01BS0UtbWFrZX0iCi0rZmkK LSsKLStybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21rZGlyIC50c3QgMj4vZGV2L251bGwKLStp ZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFkaW5nX2RvdD0uCi0rZWxzZQotKyAgYW1f X2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3QgMj4vZGV2L251bGwKLSsKLStpZiB0ZXN0 ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVuCi0rICAjIFVzZSAtSSQoc3Jj ZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91dHB1dAotKyAg IyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgotKyAgYW1fX2lzcmM9JyAtSSQo c3JjZGlyKScKLSsgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAot KyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRoZW4KLSsgICAgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25m aWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1 biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsg ZXhpdCAxOyB9OyB9Ci0rICBmaQotK2ZpCi0rCi0rIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdw YXRoCi0raWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KLSsgIGlmIChjeWdwYXRoIC0tdmVy c2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICBDWUdQQVRIX1c9J2N5Z3Bh dGggLXcnCi0rICBlbHNlCi0rICAgIENZR1BBVEhfVz1lY2hvCi0rICBmaQotK2ZpCi0rCi0rCi0r IyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgotKyBQQUNLQUdFPSdzb2NpJwot KyBWRVJTSU9OPSczLjAuMCcKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2Rl ZmluZSBQQUNLQUdFICIkUEFDS0FHRSIKLStfQUNFT0YKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5o IDw8X0FDRU9GCi0rI2RlZmluZSBWRVJTSU9OICIkVkVSU0lPTiIKLStfQUNFT0YKLSsKLSsjIFNv bWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCi0rCi0rQUNMT0NBTD0ke0FDTE9DQUwtIiR7YW1fbWlz c2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0ifQotKwotKwotK0FVVE9DT05GPSR7 QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYifQotKwotKwotK0FVVE9NQUtFPSR7 QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259In0K LSsKLSsKLStBVVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHthbV9taXNzaW5nX3J1bn1hdXRvaGVh ZGVyIn0KLSsKLSsKLStNQUtFSU5GTz0ke01BS0VJTkZPLSIke2FtX21pc3NpbmdfcnVufW1ha2Vp bmZvIn0KLSsKLStpbnN0YWxsX3NoPSR7aW5zdGFsbF9zaC0iXCQoU0hFTEwpICRhbV9hdXhfZGly L2luc3RhbGwtc2gifQotKwotKyMgSW5zdGFsbGVkIGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlw cGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNlcgotKyMgcnVuIGBtYWtlIGluc3RhbGwtc3Ry aXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQKLSsjIHRvb2wgdG8g dXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtl Ci0rIyB3aWxsIGhvbm9yIHRoZSBgU1RSSVAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJy dWxlIHRoaXMgcHJvZ3JhbS4KLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhl bgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJp cDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkU1RSSVAi OyB0aGVuCi0rICBhY19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfU1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9 c3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUK LStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK1NUUklQPSRhY19jdl9wcm9nX1NUUklQ Ci0raWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJFNUUklQIiA+JjUKLSskYXNfZWNobyAiJFNUUklQIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2df U1RSSVAiOyB0aGVuCi0rICBhY19jdF9TVFJJUD0kU1RSSVAKLSsgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgotK3NldCBkdW1teSBzdHJpcDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9TVFJJ UCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0 X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgot K2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2Rp ciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu Ci0rICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgotKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAg ICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2Zp Ci0rZmkKLSthY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJUAotK2lmIHRlc3QgLW4g IiRhY19jdF9TVFJJUCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19jdF9TVFJJUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9TVFJJUCIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfU1RSSVAiID0g eDsgdGhlbgotKyAgICBTVFJJUD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGls aW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJp cGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMg bm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXll cyA7OwotK2VzYWMKLSsgICAgU1RSSVA9JGFjX2N0X1NUUklQCi0rICBmaQotK2Vsc2UKLSsgIFNU UklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKLStmaQotKwotK2ZpCi0rSU5TVEFMTF9TVFJJUF9QUk9H UkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKLSsKLSsjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNo ZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgotKyMgc29tZSBwbGF0Zm9y bXMuCi0rIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Lgot KwotK0FNVEFSPSR7QU1UQVItIiR7YW1fbWlzc2luZ19ydW59dGFyIn0KLSsKLSthbV9fdGFyPSck e0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtcHJl Zml4IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfY3BwdW5pdF9wcmVmaXgrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfY3BwdW5pdF9wcmVmaXg7IGNwcHVuaXRfY29uZmln X3ByZWZpeD0iJHdpdGh2YWwiCi0rZWxzZQotKyAgY3BwdW5pdF9jb25maWdfcHJlZml4PSIiCi0r ZmkKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXggd2Fz IGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9jcHB1bml0X2V4ZWNfcHJlZml4K3NldH0iID0gc2V0 OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXg7IGNwcHVuaXRfY29u ZmlnX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIKLStlbHNlCi0rICBjcHB1bml0X2NvbmZpZ19leGVj X3ByZWZpeD0iIgotK2ZpCi0rCi0rCi0rICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhlY19w cmVmaXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2Nv bmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4IgotKyAg ICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCi0rICAgICAg ICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgvYmluL2NwcHVuaXQt Y29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19wcmVm aXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZp Z19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgk e0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09O RklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBmaQot KyAgZmkKLSsKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY3BwdW5pdC1jb25maWci LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBjcHB1 bml0LWNvbmZpZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRytzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBj YXNlICRDUFBVTklUX0NPTkZJRyBpbgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBhY19jdl9w YXRoX0NQUFVOSVRfQ09ORklHPSIkQ1BQVU5JVF9DT05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsgICopCi0rICBhc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3BhdGhfQ1BQ VU5JVF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0r Ci0rICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRyIgJiYgYWNfY3ZfcGF0aF9D UFBVTklUX0NPTkZJRz0ibm8iCi0rICA7OwotK2VzYWMKLStmaQotK0NQUFVOSVRfQ09ORklHPSRh Y19jdl9wYXRoX0NQUFVOSVRfQ09ORklHCi0raWYgdGVzdCAtbiAiJENQUFVOSVRfQ09ORklHIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQUFVOSVRfQ09O RklHIiA+JjUKLSskYXNfZWNobyAiJENQUFVOSVRfQ09ORklHIiA+JjY7IH0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5v IiA+JjY7IH0KLStmaQotKwotKwotKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0xLjEwCi0rCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIENwcHVuaXQgLSB2ZXJzaW9u ID49ICRjcHB1bml0X3ZlcnNpb25fbWluIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig Q3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4uLi4gIiA+JjY7IH0KLSsg IG5vX2NwcHVuaXQ9IiIKLSsgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhl bgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgbm9fY3BwdW5pdD15ZXMKLSsgIGVsc2UKLSsgICAgQ1BQ VU5JVF9DRkxBR1M9YCRDUFBVTklUX0NPTkZJRyAtLWNmbGFnc2AKLSsgICAgQ1BQVU5JVF9MSUJT PWAkQ1BQVU5JVF9DT05GSUcgLS1saWJzYAotKyAgICBDUFBVTklUX1ZFUlNJT049YCRDUFBVTklU X0NPTkZJRyAtLXZlcnNpb25gCi0rCi0rICAgIGNwcHVuaXRfbWFqb3JfdmVyc2lvbj1gZWNobyAk Q1BQVU5JVF9WRVJTSU9OIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05 XSpcKS5cKFswLTldKlwpL1wxLydgCi0rICAgIGNwcHVuaXRfbWlub3JfdmVyc2lvbj1gZWNobyAk Q1BQVU5JVF9WRVJTSU9OIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05 XSpcKS5cKFswLTldKlwpL1wyLydgCi0rICAgIGNwcHVuaXRfbWljcm9fdmVyc2lvbj1gZWNobyAk Q1BQVU5JVF9WRVJTSU9OIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05 XSpcKS5cKFswLTldKlwpL1wzLydgCi0rCi0rICAgIGNwcHVuaXRfbWFqb3JfbWluPWBlY2hvICRj cHB1bml0X3ZlcnNpb25fbWluIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChb MC05XSpcKS5cKFswLTldKlwpL1wxLydgCi0rICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWFqb3Jf bWlufSIgPSAieCIgOyB0aGVuCi0rICAgICAgIGNwcHVuaXRfbWFqb3JfbWluPTAKLSsgICAgZmkK LSsKLSsgICAgY3BwdW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBc Ci0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDIv J2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsg ICAgICAgY3BwdW5pdF9taW5vcl9taW49MAotKyAgICBmaQotKwotKyAgICBjcHB1bml0X21pY3Jv X21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9c KFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMy8nYAotKyAgICBpZiB0ZXN0ICJ4JHtj cHB1bml0X21pY3JvX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21pY3JvX21p bj0wCi0rICAgIGZpCi0rCi0rICAgIGNwcHVuaXRfdmVyc2lvbl9wcm9wZXI9YGV4cHIgXAotKyAg ICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9tYWpvcl9taW4gXHwgXAot KyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYg XAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9taW5vcl9taW4g XHwgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9t aW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9taW5v cl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWljcm9fdmVyc2lvbiBcPj0gJGNwcHVuaXRf bWljcm9fbWluIGAKLSsKLSsgICAgaWYgdGVzdCAiJGNwcHVuaXRfdmVyc2lvbl9wcm9wZXIiID0g IjEiIDsgdGhlbgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRj cHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVuaXRfbWlub3JfdmVyc2lvbi4kY3BwdW5pdF9taWNy b192ZXJzaW9uIiA+JjUKLSskYXNfZWNobyAiJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5p dF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4mNjsgfQotKyAgICBlbHNl Ci0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rICAgICAgbm9fY3BwdW5pdD15ZXMKLSsgICAgZmkKLSsgIGZp Ci0rCi0rICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQiID0geCA7IHRoZW4KLSsgICAgIDoKLSsgIGVs c2UKLSsgICAgIENQUFVOSVRfQ0ZMQUdTPSIiCi0rICAgICBDUFBVTklUX0xJQlM9IiIKLSsgICAg IDoKLSsgIGZpCi0rCi0rCi0rCi0rCi0rCi0rIGlmIHRlc3QgIngkQ1BQVU5JVF9MSUJTIiAhPSB4 OyB0aGVuCi0rICBIQVZFX0NQUFVOSVRfVFJVRT0KLSsgIEhBVkVfQ1BQVU5JVF9GQUxTRT0nIycK LStlbHNlCi0rICBIQVZFX0NQUFVOSVRfVFJVRT0nIycKLSsgIEhBVkVfQ1BQVU5JVF9GQUxTRT0K LStmaQotKwotKwotKyMgUlBNIHJlbGVhc2UgbnVtYmVyCi0rUlBNX1JFTEVBU0U9IjExIgotKwot KwotKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZwotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9O PSIzOjA6MCIKLSsjICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwKLSsjICAgICAgICAgICAg ICAgICArLS0tLS0tKyB8ICstLS0rCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAg fAotKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2aXNpb246YWdlCi0rIyAgICAgICAgICAgICAg ICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICst IGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZDsKLSsjICAgICAgICAgICAg ICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVl bgotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdl ZAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29k ZSBoYXMgY2hhbmdlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8gemVy byBpZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCi0rIyAgICAgICAgICAgICAgICAgKy0gaW5jcmVt ZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCi0rIyAgICAgICAgICAg ICAgICAgICAgb3IgY2hhbmdlZAotKwotKwotKyMgVXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZv cmdlCi0rVVBMT0FEX0NPTU1BTkQ9Im5jZnRwcHV0IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQg L2luY29taW5nIgotKwotKwotKyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcg YSBzaGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCi0rIyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25m aWcuc3ViLgotKyRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgc3VuNCA+L2Rldi9udWxs IDI+JjEgfHwKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3Qg cnVuICRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogY2Fubm90IHJ1biAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgPiYyO30K LSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9idWls ZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBhY19idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLSt0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFz IiA9IHggJiYKLSsgIGFjX2J1aWxkX2FsaWFzPWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5n dWVzcyJgCi0rdGVzdCAieCRhY19idWlsZF9hbGlhcyIgPSB4ICYmCi0rICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0 IHNwZWNpZnkgb25lIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGd1ZXNz IGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotK2FjX2N2X2J1aWxkPWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5z dWIiICRhY19idWlsZF9hbGlhc2AgfHwKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFp bGVkIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2Nv bmZpZy5zdWIgJGFjX2J1aWxkX2FsaWFzIGZhaWxlZCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdl9idWlsZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9idWlsZCIgPiY2OyB9Ci0rY2Fz ZSAkYWNfY3ZfYnVpbGQgaW4KLSsqLSotKikgOzsKLSsqKSB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBvZiBjYW5vbmljYWwgYnVpbGQiID4mNQotKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBidWlsZCIg PiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotK2VzYWMKLStidWlsZD0kYWNf Y3ZfYnVpbGQKLSthY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCi0rc2V0IHggJGFjX2N2X2J1aWxk Ci0rc2hpZnQKLStidWlsZF9jcHU9JDEKLStidWlsZF92ZW5kb3I9JDIKLStzaGlmdDsgc2hpZnQK LSsjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0 ZSAkKiwKLSsjIGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6Ci0rYnVpbGRfb3M9JCoKLStJRlM9JGFj X3NhdmVfSUZTCi0rY2FzZSAkYnVpbGRfb3MgaW4gKlwgKikgYnVpbGRfb3M9YGVjaG8gIiRidWls ZF9vcyIgfCBzZWQgJ3MvIC8tL2cnYDs7IGVzYWMKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfaG9z dCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiID0geDsgdGhlbgotKyAgYWNfY3ZfaG9zdD0kYWNf Y3ZfYnVpbGQKLStlbHNlCi0rICBhY19jdl9ob3N0PWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZp Zy5zdWIiICRob3N0X2FsaWFzYCB8fAotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVk IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZp Zy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVkIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQotK2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfaG9zdCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9ob3N0IiA+JjY7IH0KLStjYXNlICRh Y19jdl9ob3N0IGluCi0rKi0qLSopIDs7Ci0rKikgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGhvc3QiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBob3N0IiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0rZXNhYwotK2hvc3Q9JGFjX2N2X2hvc3QK LSthY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCi0rc2V0IHggJGFjX2N2X2hvc3QKLStzaGlmdAot K2hvc3RfY3B1PSQxCi0raG9zdF92ZW5kb3I9JDIKLStzaGlmdDsgc2hpZnQKLSsjIFJlbWVtYmVy LCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKLSsjIGV4 Y2VwdCB3aXRoIG9sZCBzaGVsbHM6Ci0raG9zdF9vcz0kKgotK0lGUz0kYWNfc2F2ZV9JRlMKLStj YXNlICRob3N0X29zIGluICpcICopIGhvc3Rfb3M9YGVjaG8gIiRob3N0X29zIiB8IHNlZCAncy8g Ly0vZydgOzsgZXNhYwotKwotKwotK2Nhc2UgJGhvc3QgaW4KLSsgICotKi1tc2RvcyogfCAqLSot Z28zMiogfCAqLSotbWluZ3czMiogfCAqLSotY3lnd2luKiB8ICotKi13aW5kb3dzKikKLSsgICAg IyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtl bmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9zaGFy ZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5 ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7Ci0r ICAgICopCi0rICAgICAgZW5hYmxlX3NoYXJlZD1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJn dW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsg ICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsg ICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlp ZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCi0rCWZp Ci0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAg IGVzYWMKLStlbHNlCi0rICBlbmFibGVfc2hhcmVkPW5vCi0rZmkKLSsKLSsKLSsKLSsgICAgIyBD aGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0YXRpYyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFi bGVfc3RhdGljK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9zdGF0aWM7 IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMp IGVuYWJsZV9zdGF0aWM9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfc3RhdGljPW5vIDs7Ci0rICAg ICopCi0rICAgICBlbmFibGVfc3RhdGljPW5vCi0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVu dCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAg IGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRl c3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX3N0YXRpYz15ZXMKLSsJZmkKLSsg ICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNh YwotK2Vsc2UKLSsgIGVuYWJsZV9zdGF0aWM9eWVzCi0rZmkKLSsKLSsKLSsgICAgOzsKLSsgICop Ci0rICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zaGFyZWQgd2FzIGdpdmVuLgotK2lmIHRl c3QgIiR7ZW5hYmxlX3NoYXJlZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFi bGVfc2hhcmVkOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4K LSsgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OwotKyAgICBubykgZW5hYmxlX3NoYXJlZD1u byA7OwotKyAgICAqKQotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICAjIExvb2sgYXQg dGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRv cnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRP UiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lm cyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc2hhcmVkPXll cwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rZWxzZQotKyAgZW5hYmxlX3NoYXJlZD15ZXMKLStmaQotKwotKwotKyAg ICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIk e2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3N0 YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAg IHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsK LSsgICAgKikKLSsgICAgIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFy Z3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0r ICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0r ICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJ aWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc3RhdGljPXllcwotKwlm aQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAg ICBlc2FjCi0rZWxzZQotKyAgZW5hYmxlX3N0YXRpYz1ubwotK2ZpCi0rCi0rCi0rCi0rICAgIDs7 Ci0rZXNhYwotKwotKyMgQ2hlY2tzIGZvciBwcm9ncmFtcwotK3NhdmVfQ1hYRkxBR1M9IiRDWFhG TEFHUyIKLSthY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0r YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKLStpZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAgaWYgdGVz dCAtbiAiJENDQyI7IHRoZW4KLSsgICAgQ1hYPSRDQ0MKLSsgIGVsc2UKLSsgICAgaWYgdGVzdCAt biAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAg YUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKLSsgIGRvCi0rICAg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBz byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfdG9v bF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DWFgrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVz dCAtbiAiJENYWCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ1hYPSIkQ1hYIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lG UwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0NYWD0iJGFjX3Rvb2xfcHJl Zml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQot K2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NYWD0kYWNfY3ZfcHJvZ19D WFgKLStpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJENYWCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFgiID4mNjsgfQotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgIHRlc3QgLW4gIiRDWFgiICYmIGJyZWFrCi0rICBk b25lCi0rZmkKLStpZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAgYWNfY3RfQ1hYPSRDWFgKLSsg IGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3BwIGFDQyBDQyBjeHggY2MrKyBjbC5leGUgRkNDIEtD QyBSQ0MgeGxDX3IgeGxDCi0rZG8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFj X3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1t eSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DWFgrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVz dCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3Rf Q1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwot KyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsg IGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAg aWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9n X2FjX2N0X0NYWD0iJGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZp Ci0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0NY WD0kYWNfY3ZfcHJvZ19hY19jdF9DWFgKLStpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NYWCIgPiY1Ci0r JGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0r Ci0rCi0rICB0ZXN0IC1uICIkYWNfY3RfQ1hYIiAmJiBicmVhawotK2RvbmUKLSsKLSsgIGlmIHRl c3QgIngkYWNfY3RfQ1hYIiA9IHg7IHRoZW4KLSsgICAgQ1hYPSJnKysiCi0rICBlbHNlCi0rICAg IGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJl Zml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30K LSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIENYWD0kYWNfY3RfQ1hYCi0rICBm aQotK2ZpCi0rCi0rICBmaQotK2ZpCi0rIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQg dGhlIGNvbXBpbGVyLgotKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMr KyBjb21waWxlciB2ZXJzaW9uIiA+JjUKLStzZXQgWCAkYWNfY29tcGlsZQotK2FjX2NvbXBpbGVy PSQyCi0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1IikgMj4mNQotKyAg YWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21waWxl ciAtdiA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2Fj Ci0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgot KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLXYg PiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190 cnk9IiRhY19jb21waWxlciAtViA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfY29tcGlsZXIgLVYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0KLSsKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot K2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0r YWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKLSthY19jbGVhbl9maWxlcz0iJGFj X2NsZWFuX2ZpbGVzIGEub3V0IGEub3V0LmRTWU0gYS5leGUgYi5vdXQiCi0rIyBUcnkgdG8gY3Jl YXRlIGFuIGV4ZWN1dGFibGUgd2l0aG91dCAtbyBmaXJzdCwgZGlzcmVnYXJkIGEub3V0LgotKyMg SXQgd2lsbCBoZWxwIHVzIGRpYWdub3NlIGJyb2tlbiBjb21waWxlcnMsIGFuZCBmaW5kaW5nIG91 dCBhbiBpbnR1aXRpb24KLSsjIG9mIGV4ZWV4dC4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBDKysgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQg ZmlsZSBuYW1lLi4uICIgPiY2OyB9Ci0rYWNfbGlua19kZWZhdWx0PWAkYXNfZWNobyAiJGFjX2xp bmsiIHwgc2VkICdzLyAtbyAqY29uZnRlc3RbXiBdKi8vJ2AKLSsKLSsjIFRoZSBwb3NzaWJsZSBv dXRwdXQgZmlsZXM6Ci0rYWNfZmlsZXM9ImEub3V0IGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBhLmV4 ZSBhX291dC5leGUgYi5vdXQgY29uZnRlc3QuKiIKLSsKLSthY19ybWZpbGVzPQotK2ZvciBhY19m aWxlIGluICRhY19maWxlcwotK2RvCi0rICBjYXNlICRhY19maWxlIGluCi0rICAgICouJGFjX2V4 dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJn IHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsKLSsgICAgKiApIGFj X3JtZmlsZXM9IiRhY19ybWZpbGVzICRhY19maWxlIjs7Ci0rICBlc2FjCi0rZG9uZQotK3JtIC1m ICRhY19ybWZpbGVzCi0rCi0raWYgeyAoYWNfdHJ5PSIkYWNfbGlua19kZWZhdWx0IgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmtfZGVmYXVsdCIpIDI+JjUKLSsgIGFjX3N0 YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAjIEF1dG9jb25mLTIuMTMgY291 bGQgc2V0IHRoZSBhY19jdl9leGVleHQgdmFyaWFibGUgdG8gYG5vJy4KLSsjIFNvIGlnbm9yZSBh IHZhbHVlIG9mIGBubycsIG90aGVyd2lzZSB0aGlzIHdvdWxkIGxlYWQgdG8gYEVYRUVYVCA9IG5v JwotKyMgaW4gYSBNYWtlZmlsZS4gIFdlIHNob3VsZCBub3Qgb3ZlcnJpZGUgYWNfY3ZfZXhlZXh0 IGlmIGl0IHdhcyBjYWNoZWQsCi0rIyBzbyB0aGF0IHRoZSB1c2VyIGNhbiBzaG9ydC1jaXJjdWl0 IHRoaXMgdGVzdCBmb3IgY29tcGlsZXJzIHVua25vd24gdG8KLSsjIEF1dG9jb25mLgotK2ZvciBh Y19maWxlIGluICRhY19maWxlcyAnJwotK2RvCi0rICB0ZXN0IC1mICIkYWNfZmlsZSIgfHwgY29u dGludWUKLSsgIGNhc2UgJGFjX2ZpbGUgaW4KLSsgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICou dGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5m IHwgKi5kU1lNIHwgKi5vIHwgKi5vYmogKQotKwk7OwotKyAgICBbYWJdLm91dCApCi0rCSMgV2Ug Zm91bmQgdGhlIGRlZmF1bHQgZXhlY3V0YWJsZSwgYnV0IGV4ZWV4dD0nJyBpcyBtb3N0Ci0rCSMg Y2VydGFpbmx5IHJpZ2h0LgotKwlicmVhazs7Ci0rICAgICouKiApCi0rICAgICAgICBpZiB0ZXN0 ICIke2FjX2N2X2V4ZWV4dCtzZXR9IiA9IHNldCAmJiB0ZXN0ICIkYWNfY3ZfZXhlZXh0IiAhPSBu bzsKLSsJdGhlbiA6OyBlbHNlCi0rCSAgIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDog J1teLl0qXChcLi4qXCknYAotKwlmaQotKwkjIFdlIHNldCBhY19jdl9leGVleHQgaGVyZSBiZWNh dXNlIHRoZSBsYXRlciB0ZXN0IGZvciBpdCBpcyBub3QKLSsJIyBzYWZlOiBjcm9zcyBjb21waWxl cnMgbWF5IG5vdCBhZGQgdGhlIHN1ZmZpeCBpZiBnaXZlbiBhbiBgLW8nCi0rCSMgYXJndW1lbnQs IHNvIHdlIG1heSBuZWVkIHRvIGtub3cgaXQgYXQgdGhhdCBwb2ludCBhbHJlYWR5LgotKwkjIEV2 ZW4gaWYgdGhpcyBzZWN0aW9uIGxvb2tzIGNydWZ0eTogaXQgaGFzIHRoZSBhZHZhbnRhZ2Ugb2YK LSsJIyBhY3R1YWxseSB3b3JraW5nLgotKwlicmVhazs7Ci0rICAgICogKQotKwlicmVhazs7Ci0r ICBlc2FjCi0rZG9uZQotK3Rlc3QgIiRhY19jdl9leGVleHQiID0gbm8gJiYgYWNfY3ZfZXhlZXh0 PQotKwotK2Vsc2UKLSsgIGFjX2ZpbGU9JycKLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFjX2ZpbGUiID4mNjsg fQotK2lmIHRlc3QgLXogIiRhY19maWxlIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2Qn OiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQot K3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDKysgY29tcGlsZXIgY2Fubm90 IGNyZWF0ZSBleGVjdXRhYmxlcwotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMu IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQysrIGNvbXBpbGVyIGNhbm5vdCBjcmVh dGUgZXhlY3V0YWJsZXMKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYy O30KLSsgICB7IChleGl0IDc3KTsgZXhpdCA3NzsgfTsgfTsgfQotK2ZpCi0rCi0rYWNfZXhlZXh0 PSRhY19jdl9leGVleHQKLSsKLSsjIENoZWNrIHRoYXQgdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGV4 ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBub3QsIGVpdGhlcgotKyMgdGhlIGNvbXBpbGVyIGlz IGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIHdvcmtzIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgd29ya3MuLi4gIiA+JjY7IH0K LSsjIEZJWE1FOiBUaGVzZSBjcm9zcyBjb21waWxlciBoYWNrcyBzaG91bGQgYmUgcmVtb3ZlZCBm b3IgQXV0b2NvbmYgMy4wCi0rIyBJZiBub3QgY3Jvc3MgY29tcGlsaW5nLCBjaGVjayB0aGF0IHdl IGNhbiBydW4gYSBzaW1wbGUgcHJvZ3JhbS4KLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAh PSB5ZXM7IHRoZW4KLSsgIGlmIHsgYWNfdHJ5PScuLyRhY19maWxlJwotKyAgeyAoY2FzZSAiKCgk YWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsgICAgY3Jvc3NfY29tcGlsaW5nPW5vCi0rICBlbHNl Ci0rICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbWF5YmU7IHRoZW4KLSsJY3Jvc3Nf Y29tcGlsaW5nPXllcwotKyAgICBlbHNlCi0rCXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu IFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjYW5ub3QgcnVuIEMrKyBjb21waWxlZCBwcm9ncmFtcy4KLStJZiB5b3UgbWVhbnQgdG8gY3Jv c3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBk ZXRhaWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gQysrIGNv bXBpbGVkIHByb2dyYW1zLgotK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAt LWhvc3QnLgotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotKyAgICBmaQotKyAgZmkKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIg PiY2OyB9Ci0rCi0rcm0gLWYgLXIgYS5vdXQgYS5vdXQuZFNZTSBhLmV4ZSBjb25mdGVzdCRhY19j dl9leGVleHQgYi5vdXQKLSthY19jbGVhbl9maWxlcz0kYWNfY2xlYW5fZmlsZXNfc2F2ZQotKyMg Q2hlY2sgdGhhdCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4g IElmIG5vdCwgZWl0aGVyCi0rIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBj b21waWxlLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdl IGFyZSBjcm9zcyBjb21waWxpbmciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg d2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAiID4mNjsgfQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRjcm9zc19jb21waWxpbmciID4mNQotKyRhc19lY2hvICIkY3Jvc3Nf Y29tcGlsaW5nIiA+JjY7IH0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAiID4mNjsgfQotK2lmIHsgKGFjX3RyeT0iJGFj X2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUKLSsg IGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAjIElmIGJvdGggYGNv bmZ0ZXN0LmV4ZScgYW5kIGBjb25mdGVzdCcgYXJlIGBwcmVzZW50JyAod2VsbCwgb2JzZXJ2YWJs ZSkKLSsjIGNhdGNoIGBjb25mdGVzdC5leGUnLiAgRm9yIGluc3RhbmNlIHdpdGggQ3lnd2luLCBg bHMgY29uZnRlc3QnIHdpbGwKLSsjIHdvcmsgcHJvcGVybHkgKGkuZS4sIHJlZmVyIHRvIGBjb25m dGVzdC5leGUnKSwgd2hpbGUgaXQgd29uJ3Qgd2l0aAotKyMgYHJtJy4KLStmb3IgYWNfZmlsZSBp biBjb25mdGVzdC5leGUgY29uZnRlc3QgY29uZnRlc3QuKjsgZG8KLSsgIHRlc3QgLWYgIiRhY19m aWxlIiB8fCBjb250aW51ZQotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgICAqLiRhY19leHQgfCAq Lnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICou bWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7Ci0rICAgICouKiApIGFjX2N2 X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAotKwkgIGJyZWFrOzsK LSsgICAgKiApIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rZWxzZQotKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0reyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczog Y2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRh aWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZp eCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKLStTZWUgXGBjb25maWcu bG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH07IH0KLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dAotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQotKyRhc19lY2hvICIk YWNfY3ZfZXhlZXh0IiA+JjY7IH0KLSsKLStybSAtZiBjb25mdGVzdC4kYWNfZXh0Ci0rRVhFRVhU PSRhY19jdl9leGVleHQKLSthY19leGVleHQ9JEVYRUVYVAotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2FjX2N2X29iamV4dCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QubyBjb25mdGVzdC5vYmoKLStpZiB7IChhY190 cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBp bGUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAg Zm9yIGFjX2ZpbGUgaW4gY29uZnRlc3QubyBjb25mdGVzdC5vYmogY29uZnRlc3QuKjsgZG8KLSsg IHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZTsKLSsgIGNhc2UgJGFjX2ZpbGUgaW4KLSsg ICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAq LmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNICkgOzsKLSsgICAgKikgYWNfY3Zf b2JqZXh0PWBleHByICIkYWNfZmlsZSIgOiAnLipcLlwoLipcKSdgCi0rICAgICAgIGJyZWFrOzsK LSsgIGVzYWMKLStkb25lCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotK3sg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2Jq ZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRl dGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3Vm Zml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKLStTZWUgXGBjb25maWcubG9nJyBm b3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0K LStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LiRhY19jdl9vYmpleHQgY29uZnRlc3QuJGFjX2V4dAot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X29iamV4dCIg PiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9vYmpleHQiID4mNjsgfQotK09CSkVYVD0kYWNfY3Zfb2Jq ZXh0Ci0rYWNfb2JqZXh0PSRPQkpFWFQKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQysrIGNvbXBp bGVyLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9jeHhfY29tcGlsZXJfZ251K3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAo KQotK3sKLSsjaWZuZGVmIF9fR05VQ19fCi0rICAgICAgIGNob2tlIG1lCi0rI2VuZGlmCi0rCi0r ICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewot KwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsg IGFjX2NvbXBpbGVyX2dudT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r Ci0rCWFjX2NvbXBpbGVyX2dudT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rYWNfY3ZfY3h4X2NvbXBpbGVy X2dudT0kYWNfY29tcGlsZXJfZ251Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYWNfY3ZfY3h4X2NvbXBpbGVyX2dudSIgPiY1Ci0rJGFzX2VjaG8gIiRhY19j dl9jeHhfY29tcGlsZXJfZ251IiA+JjY7IH0KLStpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5 ZXM7IHRoZW4KLSsgIEdYWD15ZXMKLStlbHNlCi0rICBHWFg9Ci0rZmkKLSthY190ZXN0X0NYWEZM QUdTPSR7Q1hYRkxBR1Mrc2V0fQotK2FjX3NhdmVfQ1hYRkxBR1M9JENYWEZMQUdTCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDWFggYWNjZXB0cyAtZy4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jeHhfZytzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19zYXZlX2N4eF93ZXJyb3Jf ZmxhZz0kYWNfY3h4X3dlcnJvcl9mbGFnCi0rICAgYWNfY3h4X3dlcnJvcl9mbGFnPXllcwotKyAg IGFjX2N2X3Byb2dfY3h4X2c9bm8KLSsgICBDWFhGTEFHUz0iLWciCi0rICAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwot KyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAo ZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK LSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0r ICBhY19jdl9wcm9nX2N4eF9nPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK LSsKLSsJQ1hYRkxBR1M9IiIKLSsgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0i JGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIp IDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N4eF93ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jeHhf d2Vycm9yX2ZsYWcKLSsJIENYWEZMQUdTPSItZyIKLSsJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBl bmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJl dHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAo YWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19j b21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfcHJv Z19jeHhfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkK LSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgYWNfY3h4X3dlcnJvcl9m bGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY3h4X2ciID4mNQotKyRhc19lY2hvICIkYWNfY3Zf cHJvZ19jeHhfZyIgPiY2OyB9Ci0raWYgdGVzdCAiJGFjX3Rlc3RfQ1hYRkxBR1MiID0gc2V0OyB0 aGVuCi0rICBDWFhGTEFHUz0kYWNfc2F2ZV9DWFhGTEFHUwotK2VsaWYgdGVzdCAkYWNfY3ZfcHJv Z19jeHhfZyA9IHllczsgdGhlbgotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAg Q1hYRkxBR1M9Ii1nIC1PMiIKLSsgIGVsc2UKLSsgICAgQ1hYRkxBR1M9Ii1nIgotKyAgZmkKLStl bHNlCi0rICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICBDWFhGTEFHUz0iLU8yIgot KyAgZWxzZQotKyAgICBDWFhGTEFHUz0KLSsgIGZpCi0rZmkKLSthY19leHQ9YwotK2FjX2NwcD0n JENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQg JENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0r YWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotK0RFUERJUj0iJHthbV9fbGVh ZGluZ19kb3R9ZGVwcyIKLSsKLSthY19jb25maWdfY29tbWFuZHM9IiRhY19jb25maWdfY29tbWFu ZHMgZGVwZmlsZXMiCi0rCi0rCi0rYW1fbWFrZT0ke01BS0UtbWFrZX0KLStjYXQgPiBjb25maW5j IDw8ICdFTkQnCi0rYW1fX2RvaXQ6Ci0rCUBlY2hvIGRvbmUKLSsuUEhPTlk6IGFtX19kb2l0Ci0r RU5ECi0rIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGlyZWN0aXZlLCBqdXN0IGNvbW1l bnQgb3V0IHRoZSBjb2RlLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlLi4uICIgPiY2OyB9 Ci0rYW1fX2luY2x1ZGU9IiMiCi0rYW1fX3F1b3RlPQotK19hbV9yZXN1bHQ9bm9uZQotKyMgRmly c3QgdHJ5IEdOVSBtYWtlIHN0eWxlIGluY2x1ZGUuCi0rZWNobyAiaW5jbHVkZSBjb25maW5jIiA+ IGNvbmZtZgotKyMgV2UgZ3JlcCBvdXQgYEVudGVyaW5nIGRpcmVjdG9yeScgYW5kIGBMZWF2aW5n IGRpcmVjdG9yeScKLSsjIG1lc3NhZ2VzIHdoaWNoIGNhbiBvY2N1ciBpZiBgdycgZW5kcyB1cCBp biBNQUtFRkxBR1MuCi0rIyBJbiBwYXJ0aWN1bGFyIHdlIGRvbid0IGxvb2sgYXQgYF5tYWtlOicg YmVjYXVzZSBHTlUgbWFrZSBtaWdodAotKyMgYmUgaW52b2tlZCB1bmRlciBzb21lIG90aGVyIG5h bWUgKHVzdWFsbHkgImdtYWtlIiksIGluIHdoaWNoCi0rIyBjYXNlIGl0IHByaW50cyBpdHMgbmV3 IG5hbWUgaW5zdGVhZCBvZiBgbWFrZScuCi0raWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZt ZiAyPiAvZGV2L251bGwgfCBncmVwIC12ICdpbmcgZGlyZWN0b3J5J2AiID0gImRvbmUiOyB0aGVu Ci0rICAgYW1fX2luY2x1ZGU9aW5jbHVkZQotKyAgIGFtX19xdW90ZT0KLSsgICBfYW1fcmVzdWx0 PUdOVQotK2ZpCi0rIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1ZGUuCi0raWYgdGVzdCAi JGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgotKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicg PiBjb25mbWYKLSsgICBpZiB0ZXN0ICJgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVs bGAiID0gImRvbmUiOyB0aGVuCi0rICAgICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUKLSsgICAgICBh bV9fcXVvdGU9IlwiIgotKyAgICAgIF9hbV9yZXN1bHQ9QlNECi0rICAgZmkKLStmaQotKwotKwot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRfYW1fcmVzdWx0IiA+JjUKLSsk YXNfZWNobyAiJF9hbV9yZXN1bHQiID4mNjsgfQotK3JtIC1mIGNvbmZpbmMgY29uZm1mCi0rCi0r IyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgd2FzIGdpdmVuLgot K2lmIHRlc3QgIiR7ZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmcrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgIGVuYWJsZXZhbD0kZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmc7Ci0rZmkKLSsKLStpZiB0 ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KLSsgIGFtX2Rl cGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCi0rICBBTURFUEJBQ0tTTEFTSD0nXCcKLStmaQot KyBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KLSsg IEFNREVQX1RSVUU9Ci0rICBBTURFUF9GQUxTRT0nIycKLStlbHNlCi0rICBBTURFUF9UUlVFPScj JwotKyAgQU1ERVBfRkFMU0U9Ci0rZmkKLSsKLSsKLSsKLStkZXBjYz0iJENYWCIgIGFtX2NvbXBp bGVyX2xpc3Q9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRlcGVu ZGVuY3kgc3R5bGUgb2YgJGRlcGNjIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRl bmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YW1fY3ZfQ1hYX2Rl cGVuZGVuY2llc19jb21waWxlcl90eXBlK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0 ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KLSsgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8g dGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKLSsgICMgbWFraW5nIGJv Z3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9y Ci0rICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVz dCB3aWxsIGVuZCB1cAotKyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNh dXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAotKyAgIyBpbiBEJy4KLSsgIG1rZGlyIGNv bmZ0ZXN0LmRpcgotKyAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNl IHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKLSsgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3Rv cnkuCi0rICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgotKyAgY2QgY29uZnRlc3QuZGly Ci0rICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGly ZWN0b3J5IGJlY2F1c2UKLSsgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBl bmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCi0rICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUND IHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQotKyAgIyBzaWRlIGVmZmVj dCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCi0r ICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRo ZSBvYmplY3QKLSsgICMgZGlyZWN0b3J5LgotKyAgbWtkaXIgc3ViCi0rCi0rICBhbV9jdl9DWFhf ZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVy X2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypc KFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCi0rICBmaQotKyAgZm9yIGRlcG1v ZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCi0rICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBt YW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycwotKyAgICAjIGxpa2UgdG8g d3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCi0r ICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVz ZWQgYnkgdGhpcy4KLSsgICAgIwotKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmls ZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQotKyAgICAjIG92ZXJ3cml0ZSBz b21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgotKyAg ICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KLSsgICAg OiA+IHN1Yi9jb25mdGVzdC5jCi0rICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbwotKyAgICAg IGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAg ICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3Qx Lmggd2l0aAotKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCi0rICAgICAgdG91 Y2ggc3ViL2NvbmZ0c3QkaS5oCi0rICAgIGRvbmUKLSsgICAgZWNobyAiJHthbV9faW5jbHVkZX0g JHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgotKwotKyAg ICBjYXNlICRkZXBtb2RlIGluCi0rICAgIG5vc2lkZWVmZmVjdCkKLSsgICAgICAjIGFmdGVyIHRo aXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKLSsg ICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCi0rICAgICAgaWYg dGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCi0rCWNvbnRp bnVlCi0rICAgICAgZWxzZQotKwlicmVhawotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgbm9u ZSkgYnJlYWsgOzsKLSsgICAgZXNhYwotKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1v JyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKLSsgICAgIyBtb2RlLiAgSXQgdHVy bnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKLSsg ICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuCi0rICAgIGlm IGRlcG1vZGU9JGRlcG1vZGUgXAotKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0 PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCi0rICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0 LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCi0rICAgICAgICRTSEVMTCAuL2RlcGNv bXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuYyBc Ci0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgotKyAgICAgICBncmVwIHN1 Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAg IGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYK LSsgICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4g L2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9k ZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgIyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3du IG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncwotKyAgICAgICMgb3IgcmVtYXJr cyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdl Ci0rICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0 ZWQuCi0rICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRo dXNseToKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0 aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0rICAgICAgIyBUaGUgZGlhZ25vc2lzIGNo YW5nZWQgaW4gaWNjIDguMDoKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBv cHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotKyAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRp b24nIGNvbmZ0ZXN0LmVyciB8fAotKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25m dGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCi0rICAgICAgICBhbV9jdl9D WFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKLSsgICAgICAgIGJyZWFrCi0r ICAgICAgZmkKLSsgICAgZmkKLSsgIGRvbmUKLSsKLSsgIGNkIC4uCi0rICBybSAtcmYgY29uZnRl c3QuZGlyCi0rZWxzZQotKyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5v bmUKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFt X2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1Ci0rJGFzX2VjaG8gIiRhbV9j dl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQotK0NYWERFUE1PREU9ZGVw bW9kZT0kYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCi0rCi0rIGlmCi0rICB0 ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAotKyAgJiYgdGVzdCAi JGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCi0rICBh bV9fZmFzdGRlcENYWF9UUlVFPQotKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9JyMnCi0rZWxzZQot KyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0nIycKLSsgIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFPQotK2Zp Ci0rCi0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29t cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwot K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jeHhfY29tcGlsZXJfZ251Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KLStpZiB0 ZXN0IC16ICIkQ1hYQ1BQIjsgdGhlbgotKyAgaWYgdGVzdCAiJHthY19jdl9wcm9nX0NYWENQUCtz ZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1hYQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVk Ci0rICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUiICIvbGliL2NwcCIKLSsgICAgZG8KLSsgICAg ICBhY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAn JyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBz byBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29y a3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMg ZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRp bmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJv dWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJT eW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1 ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsJ CSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0 ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0 ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIx Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwg JiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9y X2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsg IDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK LStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIEJyb2tlbjogZmFp bHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93 IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0ZWQg YW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZz LmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2Nh dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0r I2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4v ZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19j eHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07 IHRoZW4KLSsgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0rY29udGludWUK LStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIFBhc3NlcyBib3RoIHRl c3RzLgotK2FjX3ByZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FD X1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLStybSAtZiBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCi0rICBi cmVhawotK2ZpCi0rCi0rICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAot KwotK2ZpCi0rICBDWFhDUFA9JGFjX2N2X3Byb2dfQ1hYQ1BQCi0rZWxzZQotKyAgYWNfY3ZfcHJv Z19DWFhDUFA9JENYWENQUAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJENYWENQUCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFhDUFAiID4mNjsgfQotK2FjX3ByZXByb2Nf b2s9ZmFsc2UKLStmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotK2RvCi0r ICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5n IGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSsgICMgUHJl ZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5j ZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMu Ci0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBp bGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIg aXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+ Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJICAgICBTeW50YXgg ZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIp IDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0 IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgotK2Vsc2UKLSsg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBp bnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhl ciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNf bm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7 Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxh ZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgIyBC cm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJl cHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVM U0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIDoKLStlbHNlCi0rICB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSt7IHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQysrIHByZXByb2Nlc3NvciBcIiRDWFhDUFBc IiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxz LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IEMrKyBwcmVwcm9jZXNzb3IgXCIkQ1hY Q1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0 YWlscy4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9Ci0rZmkKLSsKLSth Y19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRD RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBj b25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQot KwotK0NYWEZMQUdTPSIkc2F2ZV9DWFhGTEFHUyIKLSsjIEZpbmQgYSBnb29kIGluc3RhbGwgcHJv Z3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKLSsjIHNvIG9uZSBzY3JpcHQg aXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4gb3IKLSsjIGluY29t cGF0aWJsZSB2ZXJzaW9uczoKLSsjIFN5c1YgL2V0Yy9pbnN0YWxsLCAvdXNyL3NiaW4vaW5zdGFs bAotKyMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAotKyMgSVJJWCAvc2Jpbi9pbnN0YWxsCi0rIyBB SVggL2Jpbi9pbnN0YWxsCi0rIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxzIGJv b3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCi0rIyBBSVggNCAvdXNyL2Jpbi9pbnN0YWxsYnNkLCB3 aGljaCBkb2Vzbid0IHdvcmsgd2l0aG91dCBhIC1nIGZsYWcKLSsjIEFGUyAvdXNyL2Fmc3dzL2Jp bi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50IGFyZ3MKLSsjIFNWUjQgL3Vz ci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlzdGVudCBncm91cCAi c3RhZmYiCi0rIyBPUy8yJ3Mgc3lzdGVtIGluc3RhbGwsIHdoaWNoIGhhcyBhIGNvbXBsZXRlbHkg ZGlmZmVyZW50IHNlbWFudGljCi0rIyAuL2luc3RhbGwsIHdoaWNoIGNhbiBiZSBlcnJvbmVvdXNs eSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2luc3RhbGwuc2guCi0rIyBSZWplY3QgaW5zdGFsbCBw cm9ncmFtcyB0aGF0IGNhbm5vdCBpbnN0YWxsIG11bHRpcGxlIGZpbGVzLgotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCi0raWYgdGVzdCAiJHthY19j dl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQg dHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgotK2Nhc2UgJGFzX2Rpci8gaW4KLSsg IC4vIHwgLi8vIHwgL2NDLyogfCBcCi0rICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRj LyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKLSsgID86XFwvb3MyXFwvaW5zdGFs bFxcLyogfCA/OlxcL09TMlxcL0lOU1RBTExcXC8qIHwgXAotKyAgL3Vzci91Y2IvKiApIDs7Ci0r ICAqKQotKyAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZv ciBpbnN0YWxsLgotKyAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNlIGl0 IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLSsgICAgIyBieSBkZWZhdWx0LgotKyAgICBmb3IgYWNf cHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCi0rICAgICAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rCWlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf cHJvZyRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFs bCAmJgotKwkgICAgZ3JlcCBkc3Btc2cgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4v ZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBpbmNv bXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotKwkgICAgOgotKwkgIGVsaWYgdGVzdCAkYWNf cHJvZyA9IGluc3RhbGwgJiYKLSsJICAgIGdyZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9nJGFj X2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAgICMgcHJvZ3JhbS1zcGVjaWZp YyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgotKwkgICAgOgot KwkgIGVsc2UKLSsJICAgIHJtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0 LmRpcgotKwkgICAgZWNobyBvbmUgPiBjb25mdGVzdC5vbmUKLSsJICAgIGVjaG8gdHdvID4gY29u ZnRlc3QudHdvCi0rCSAgICBta2RpciBjb25mdGVzdC5kaXIKLSsJICAgIGlmICIkYXNfZGlyLyRh Y19wcm9nJGFjX2V4ZWNfZXh0IiAtYyBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvICJgcHdkYC9j b25mdGVzdC5kaXIiICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3Qub25lICYmIHRlc3QgLXMg Y29uZnRlc3QudHdvICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm9u ZSAmJgotKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC50d28KLSsJICAgIHRo ZW4KLSsJICAgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNf ZXh0IC1jIgotKwkgICAgICBicmVhayAzCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rICAgICAg ZG9uZQotKyAgICBkb25lCi0rICAgIDs7Ci0rZXNhYwotKwotK2RvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCi0r Ci0rZmkKLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVu Ci0rICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAotKyAgZWxzZQotKyAgICAjIEFzIGEg bGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBEb24ndCBjYWNoZSBhCi0r ICAgICMgdmFsdWUgZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVz ZSB0aGF0IHdpbGwKLSsgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUg aWYgdGhhdCBkaXJlY3RvcnkgaXMKLSsgICAgIyByZW1vdmVkLCBvciBpZiB0aGUgdmFsdWUgaXMg YSByZWxhdGl2ZSBuYW1lLgotKyAgICBJTlNUQUxMPSRhY19pbnN0YWxsX3NoCi0rICBmaQotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJElOU1RBTEwiID4mNQotKyRh c19lY2hvICIkSU5TVEFMTCIgPiY2OyB9Ci0rCi0rIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1bk9T NCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9LgotKyMgSXQgdGhpbmtzIHRoZSBm aXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCi0rdGVzdCAt eiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JwotKwot K3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0n Ci0rCi0rdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9 IC1tIDY0NCcKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZmFzdC1pbnN0YWxsIHdhcyBn aXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9mYXN0X2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgIGVuYWJsZXZhbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0K LSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX2Zhc3RfaW5zdGFsbD15 ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8gOzsKLSsgICAgKikKLSsgICAg ICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3 ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0 X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZv ciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3Qg IlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMKLSsJZmkK LSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAg ZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCi0rZmkKLSsKLSsKLSthY19l eHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxB R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25m dGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotK2lm IHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiJHthY190b29sX3ByZWZpeH1nY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWdjYzsgYWNfd29yZD0k MgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0rICBhY19jdl9w cm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSth c19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFU SAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k aXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRh c190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFj X2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Z2NjIgotKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBi cmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0r ZmkKLStDQz0kYWNfY3ZfcHJvZ19DQwotK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXog IiRhY19jdl9wcm9nX0NDIjsgdGhlbgotKyAgYWNfY3RfQ0M9JENDCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCi0rc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytz ZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0NDPSIk YWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAot K2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv Ci0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2 X3Byb2dfYWNfY3RfQ0M9ImdjYyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkK LStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQ0M9 JGFjX2N2X3Byb2dfYWNfY3RfQ0MKLStpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotKyRhc19l Y2hvICIkYWNfY3RfQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBp ZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KLSsgICAgQ0M9IiIKLSsgIGVsc2UKLSsgICAg Y2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQot K2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgQ0M9JGFjX2N0X0NDCi0rICBmaQot K2Vsc2UKLSsgIENDPSIkYWNfY3ZfcHJvZ19DQyIKLStmaQotKwotK2lmIHRlc3QgLXogIiRDQyI7 IHRoZW4KLSsgICAgICAgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAg ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Y2MiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xf cHJlZml4fWNjOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRD QyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK LStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1jYyIKLSsg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rQ0M9JGFjX2N2X3Byb2dfQ0MKLStpZiB0ZXN0IC1uICIk Q0MiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4m NQotKyRhc19lY2hvICIkQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0r Ci0rICBmaQotK2ZpCi0raWYgdGVzdCAteiAiJENDIjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Ci0rc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3Qg LW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotKyAgYWNfcHJvZ19yZWplY3RlZD1ubwotK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgaWYgdGVzdCAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCi0rICAg ICAgIGFjX3Byb2dfcmVqZWN0ZWQ9eWVzCi0rICAgICAgIGNvbnRpbnVlCi0rICAgICBmaQotKyAg ICBhY19jdl9wcm9nX0NDPSJjYyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkK LStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStpZiB0ZXN0ICRhY19wcm9nX3Jl amVjdGVkID0geWVzOyB0aGVuCi0rICAjIFdlIGZvdW5kIGEgYm9nb24gaW4gdGhlIHBhdGgsIHNv IG1ha2Ugc3VyZSB3ZSBuZXZlciB1c2UgaXQuCi0rICBzZXQgZHVtbXkgJGFjX2N2X3Byb2dfQ0MK LSsgIHNoaWZ0Ci0rICBpZiB0ZXN0ICQjICE9IDA7IHRoZW4KLSsgICAgIyBXZSBjaG9zZSBhIGRp ZmZlcmVudCBjb21waWxlciBmcm9tIHRoZSBib2d1cyBvbmUuCi0rICAgICMgSG93ZXZlciwgaXQg aGFzIHRoZSBzYW1lIGJhc2VuYW1lLCBzbyB0aGUgYm9nb24gd2lsbCBiZSBjaG9zZW4KLSsgICAg IyBmaXJzdCBpZiB3ZSBzZXQgQ0MgdG8ganVzdCB0aGUgYmFzZW5hbWU7IHVzZSB0aGUgZnVsbCBm aWxlIG5hbWUuCi0rICAgIHNoaWZ0Ci0rICAgIGFjX2N2X3Byb2dfQ0M9IiRhc19kaXIvJGFjX3dv cmQkezErJyAnfSRAIgotKyAgZmkKLStmaQotK2ZpCi0rZmkKLStDQz0kYWNfY3ZfcHJvZ19DQwot K2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2 OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSsgIGlmIHRlc3Qg LW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgIGZvciBhY19wcm9nIGluIGNsLmV4ZQotKyAg ZG8KLSsgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNf cHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15 ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xf cHJlZml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9u ZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NDPSRhY19jdl9wcm9n X0NDCi0raWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJENDIiA+JjUKLSskYXNfZWNobyAiJENDIiA+JjY7IH0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5v IiA+JjY7IH0KLStmaQotKwotKwotKyAgICB0ZXN0IC1uICIkQ0MiICYmIGJyZWFrCi0rICBkb25l Ci0rZmkKLStpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCi0rICBhY19jdF9DQz0kQ0MKLSsgIGZvciBh Y19wcm9nIGluIGNsLmV4ZQotK2RvCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRh Y19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVt bXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVz dCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0ND IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAg SUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2Fj X2N0X0NDPSIkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStk b25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQ0M9JGFj X2N2X3Byb2dfYWNfY3RfQ0MKLStpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotKyRhc19lY2hv ICIkYWNfY3RfQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICB0 ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFrCi0rZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19j dF9DQyIgPSB4OyB0aGVuCi0rICAgIENDPSIiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2Nv bXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRv b2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5l ZD15ZXMgOzsKLStlc2FjCi0rICAgIENDPSRhY19jdF9DQwotKyAgZmkKLStmaQotKwotK2ZpCi0r Ci0rCi0rdGVzdCAteiAiJENDIiAmJiB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8g YWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAotK1NlZSBcYGNvbmZpZy5sb2cn IGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNj ZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAotK1NlZSBcYGNvbmZpZy5sb2cnIGZv ciBtb3JlIGRldGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQot KwotKyMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KLSskYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24iID4m NQotK3NldCBYICRhY19jb21waWxlCi0rYWNfY29tcGlsZXI9JDIKLSt7IChhY190cnk9IiRhY19j b21waWxlciAtLXZlcnNpb24gPiY1IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFj X2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfQotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1Ci0rICBhY19zdGF0 dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4m NSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAy PiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKwotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMg Y29tcGlsZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5n IHRoZSBHTlUgQyBjb21waWxlci4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfY19jb21w aWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMu aC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsK LStpbnQKLSttYWluICgpCi0rewotKyNpZm5kZWYgX19HTlVDX18KLSsgICAgICAgY2hva2UgbWUK LSsjZW5kaWYKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsg IHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KLSsgIGFjX2NvbXBpbGVyX2dudT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCi0rCWFjX2NvbXBpbGVyX2dudT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rYWNfY3Zf Y19jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjUKLSskYXNfZWNo byAiJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjY7IH0KLStpZiB0ZXN0ICRhY19jb21waWxlcl9n bnUgPSB5ZXM7IHRoZW4KLSsgIEdDQz15ZXMKLStlbHNlCi0rICBHQ0M9Ci0rZmkKLSthY190ZXN0 X0NGTEFHUz0ke0NGTEFHUytzZXR9Ci0rYWNfc2F2ZV9DRkxBR1M9JENGTEFHUwotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2crc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfc2F2ZV9jX3dlcnJvcl9mbGFnPSRh Y19jX3dlcnJvcl9mbGFnCi0rICAgYWNfY193ZXJyb3JfZmxhZz15ZXMKLSsgICBhY19jdl9wcm9n X2NjX2c9bm8KLSsgICBDRkxBR1M9Ii1nIgotKyAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNf dHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21w aWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIk YWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY2Nf Zz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCUNGTEFHUz0iIgot KyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRh Y19vYmpleHQ7IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r Ci0rCWFjX2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3JfZmxhZwotKwkgQ0ZMQUdTPSIt ZyIKLSsJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRh Y19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY2NfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0r Ci0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0Ci0rICAgYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jX3dlcnJvcl9mbGFnCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19nIiA+ JjUKLSskYXNfZWNobyAiJGFjX2N2X3Byb2dfY2NfZyIgPiY2OyB9Ci0raWYgdGVzdCAiJGFjX3Rl c3RfQ0ZMQUdTIiA9IHNldDsgdGhlbgotKyAgQ0ZMQUdTPSRhY19zYXZlX0NGTEFHUwotK2VsaWYg dGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCi0rICBpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgotKyAgICBDRkxBR1M9Ii1nIC1PMiIKLSsgIGVsc2UKLSsgICAgQ0ZMQUdTPSItZyIK LSsgIGZpCi0rZWxzZQotKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgQ0ZMQUdT PSItTzIiCi0rICBlbHNlCi0rICAgIENGTEFHUz0KLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODki ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBJU08g Qzg5Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2M4OStzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jdl9w cm9nX2NjX2M4OT1ubwotK2FjX3NhdmVfQ0M9JENDCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPHN0ZGlv Lmg+Ci0rI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKy8q IE1vc3Qgb2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgc3RvbGVuIGZyb20gUkNTIDUuNydzIHNy Yy9jb25mLnNoLiAgKi8KLStzdHJ1Y3QgYnVmIHsgaW50IHg7IH07Ci0rRklMRSAqICgqcmNzb3Bl bikgKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KTsKLStzdGF0aWMgY2hhciAqZSAo cCwgaSkKLSsgICAgIGNoYXIgKipwOwotKyAgICAgaW50IGk7Ci0rewotKyAgcmV0dXJuIHBbaV07 Ci0rfQotK3N0YXRpYyBjaGFyICpmIChjaGFyICogKCpnKSAoY2hhciAqKiwgaW50KSwgY2hhciAq KnAsIC4uLikKLSt7Ci0rICBjaGFyICpzOwotKyAgdmFfbGlzdCB2OwotKyAgdmFfc3RhcnQgKHYs cCk7Ci0rICBzID0gZyAocCwgdmFfYXJnICh2LGludCkpOwotKyAgdmFfZW5kICh2KTsKLSsgIHJl dHVybiBzOwotK30KLSsKLSsvKiBPU0YgNC4wIENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2YgYWxt b3N0LUFOU0kgYnkgZGVmYXVsdC4gIEl0IGhhcwotKyAgIGZ1bmN0aW9uIHByb3RvdHlwZXMgYW5k IHN0dWZmLCBidXQgbm90ICdceEhIJyBoZXggY2hhcmFjdGVyIGNvbnN0YW50cy4KLSsgICBUaGVz ZSBkb24ndCBwcm92b2tlIGFuIGVycm9yIHVuZm9ydHVuYXRlbHksIGluc3RlYWQgYXJlIHNpbGVu dGx5IHRyZWF0ZWQKLSsgICBhcyAneCcuICBUaGUgZm9sbG93aW5nIGluZHVjZXMgYW4gZXJyb3Is IHVudGlsIC1zdGQgaXMgYWRkZWQgdG8gZ2V0Ci0rICAgcHJvcGVyIEFOU0kgbW9kZS4gIEN1cmlv dXNseSAnXHgwMCchPSd4JyBhbHdheXMgY29tZXMgb3V0IHRydWUsIGZvciBhbgotKyAgIGFycmF5 IHNpemUgYXQgbGVhc3QuICBJdCdzIG5lY2Vzc2FyeSB0byB3cml0ZSAnXHgwMCc9PTAgdG8gZ2V0 IHNvbWV0aGluZwotKyAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAtc3RkLiAgKi8KLStpbnQgb3Nm NF9jY19hcnJheSBbJ1x4MDAnID09IDAgPyAxIDogLTFdOwotKwotKy8qIElCTSBDIDYgZm9yIEFJ WCBpcyBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LCBidXQgaXQgcmVwbGFjZXMgbWFjcm8gcGFyYW1l dGVycwotKyAgIGluc2lkZSBzdHJpbmdzIGFuZCBjaGFyYWN0ZXIgY29uc3RhbnRzLiAgKi8KLSsj ZGVmaW5lIEZPTyh4KSAneCcKLStpbnQgeGxjNl9jY19hcnJheVtGT08oYSkgPT0gJ3gnID8gMSA6 IC0xXTsKLSsKLStpbnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsKLStzdHJ1Y3QgczEge2ludCAo KmYpIChpbnQgYSk7fTsKLStzdHJ1Y3QgczIge2ludCAoKmYpIChkb3VibGUgYSk7fTsKLStpbnQg cGFpcm5hbWVzIChpbnQsIGNoYXIgKiosIEZJTEUgKigqKShzdHJ1Y3QgYnVmICosIHN0cnVjdCBz dGF0ICosIGludCksIGludCwgaW50KTsKLStpbnQgYXJnYzsKLStjaGFyICoqYXJndjsKLStpbnQK LSttYWluICgpCi0rewotK3JldHVybiBmIChlLCBhcmd2LCAwKSAhPSBhcmd2WzBdICB8fCAgZiAo ZSwgYXJndiwgMSkgIT0gYXJndlsxXTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YK LStmb3IgYWNfYXJnIGluICcnIC1xbGFuZ2x2bD1leHRjODkgLXFsYW5nbHZsPWFuc2kgLXN0ZCBc Ci0rCS1BZSAiLUFhIC1EX0hQVVhfU09VUkNFIiAiLVhjIC1EX19FWFRFTlNJT05TX18iCi0rZG8K LSsgIENDPSIkYWNfc2F2ZV9DQyAkYWNfYXJnIgotKyAgcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewot KwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBh Y19jdl9wcm9nX2NjX2M4OT0kYWNfYXJnCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dAotKyAgdGVzdCAieCRhY19jdl9wcm9nX2NjX2M4OSIgIT0gInhubyIgJiYgYnJlYWsKLStk b25lCi0rcm0gLWYgY29uZnRlc3QuJGFjX2V4dAotK0NDPSRhY19zYXZlX0NDCi0rCi0rZmkKLSsj IEFDX0NBQ0hFX1ZBTAotK2Nhc2UgIngkYWNfY3ZfcHJvZ19jY19jODkiIGluCi0rICB4KQotKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub25lIG5lZWRlZCIgPiY1Ci0r JGFzX2VjaG8gIm5vbmUgbmVlZGVkIiA+JjY7IH0gOzsKLSsgIHhubykKLSsgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogdW5zdXBwb3J0ZWQiID4mNQotKyRhc19lY2hvICJ1 bnN1cHBvcnRlZCIgPiY2OyB9IDs7Ci0rICAqKQotKyAgICBDQz0iJENDICRhY19jdl9wcm9nX2Nj X2M4OSIKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3By b2dfY2NfYzg5IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3Byb2dfY2NfYzg5IiA+JjY7IH0gOzsK LStlc2FjCi0rCi0rCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2Nv bXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSth Y19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y19jb21waWxlcl9nbnUKLSsKLStkZXBjYz0iJENDIiAgIGFtX2NvbXBpbGVyX2xpc3Q9Ci0rCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2Yg JGRlcGNjIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRk ZXBjYy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBp bGVyX3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBj b21wIjsgdGhlbgotKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUu ICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAotKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3 ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKLSsgICMgaW5zdGFuY2Ug aXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCi0r ICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMg YHB1dCB0aGUgb3V0cHV0Ci0rICAjIGluIEQnLgotKyAgbWtkaXIgY29uZnRlc3QuZGlyCi0rICAj IENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBp dCBpZiB3ZSdyZQotKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSsgIGNwICIkYW1f ZGVwY29tcCIgY29uZnRlc3QuZGlyCi0rICBjZCBjb25mdGVzdC5kaXIKLSsgICMgV2Ugd2lsbCBi dWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQot KyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBG b3IgaW5zdGFuY2UKLSsgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8g b3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCi0rICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9u LCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KLSsgICMgdGhlIGN1cnJlbnQg ZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAotKyAgIyBk aXJlY3RvcnkuCi0rICBta2RpciBzdWIKLSsKLSsgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlPW5vbmUKLSsgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVu Ci0rICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkk L1wxL3AnIDwgLi9kZXBjb21wYAotKyAgZmkKLSsgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxl cl9saXN0OyBkbwotKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMs IGJlY2F1c2Ugc29tZSBjb21waWxlcnMKLSsgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5k ZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAotKyAgICAjIHdlIHNob3VsZCBu b3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0rICAg ICMKLSsgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3Qs IGFzIHRoZSBjb21waWxlciBtYXkKLSsgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4g dGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSsgICAgIyBUaGlzIGhhcHBlbnMg YXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCi0rICAgIDogPiBzdWIvY29uZnRlc3Qu YwotKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KLSsgICAgICBlY2hvICcjaW5jbHVkZSAi Y29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCi0rICAgICAgIyBVc2luZyBgOiA+IHN1 Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAgICAj IFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgotKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGku aAotKyAgICBkb25lCi0rICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9j b25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKLSsKLSsgICAgY2FzZSAkZGVwbW9kZSBp bgotKyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNt cyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCi0rICAgICAgIyBvbmx5IGJlIHVz ZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2Rl cGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotKwljb250aW51ZQotKyAgICAgIGVsc2UK LSsJYnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIG5vbmUpIGJyZWFrIDs7Ci0rICAg IGVzYWMKLSsgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9m IHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBT dW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0rICAgICMgaGFuZGxlIGAtTSAt bycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLgotKyAgICBpZiBkZXBtb2RlPSRkZXBtb2Rl IFwKLSsgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD1zdWIvY29uZnRlc3QuJHtP QkpFWFQtb30gXAotKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1 Yi9jb25mdGVzdC5UUG8gXAotKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAtbyBz dWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LmMgXAotKyAgICAgICAgID4vZGV2 L251bGwgMj5jb25mdGVzdC5lcnIgJiYKLSsgICAgICAgZ3JlcCBzdWIvY29uZnRzdDEuaCBzdWIv Y29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0 Ni5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3Vi L2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYm Ci0rICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhl bgotKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxs IGp1c3QgaXNzdWUgd2FybmluZ3MKLSsgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vy cm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQotKyAgICAgICMgdGhhdCBz YXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgotKyAgICAgICMgV2hl biBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6Ci0rICAgICAgIyAg IGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1 bWVudCByZXF1aXJlZAotKyAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6 Ci0rICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBz dXBwb3J0ZWQKLSsgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIg fHwKLSsgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9u dWxsIDI+JjE7IHRoZW4gOjsgZWxzZQotKyAgICAgICAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGU9JGRlcG1vZGUKLSsgICAgICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAgZmkK LSsgIGRvbmUKLSsKLSsgIGNkIC4uCi0rICBybSAtcmYgY29uZnRlc3QuZGlyCi0rZWxzZQotKyAg YW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotK2ZpCi0rCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVz X2NvbXBpbGVyX3R5cGUiID4mNQotKyRhc19lY2hvICIkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGUiID4mNjsgfQotK0NDREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DQ19kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZQotKwotKyBpZgotKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5j eV90cmFja2luZyIgIT0geG5vIFwKLSsgICYmIHRlc3QgIiRhbV9jdl9DQ19kZXBlbmRlbmNpZXNf Y29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCi0rICBhbV9fZmFzdGRlcENDX1RSVUU9Ci0rICBh bV9fZmFzdGRlcENDX0ZBTFNFPScjJwotK2Vsc2UKLSsgIGFtX19mYXN0ZGVwQ0NfVFJVRT0nIycK LSsgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9Ci0rZmkKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0 IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVu Y2F0ZSBvdXRwdXQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3BhdGhfU0VEK3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICMg TG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3Igc2VkIGFuZCBnc2VkLgot KyMgVGhlbiB1c2UgdGhhdCBsaXN0IG9mIHNlZCdzIGFzIG9uZXMgdG8gdGVzdCBmb3IgdHJ1bmNh dGlvbi4KLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2Rp ciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgotKyAgZm9yIGx0X2FjX3Byb2cgaW4gc2VkIGdzZWQ7IGRvCi0rICAgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgICAg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgICAg IGx0X2FjX3NlZF9saXN0PSIkbHRfYWNfc2VkX2xpc3QgJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19l eGVjX2V4dCIKLSsgICAgICBmaQotKyAgICBkb25lCi0rICBkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLStsdF9hY19tYXg9MAotK2x0X2FjX2NvdW50PTAKLSsjIEFkZCAvdXNyL3hwZzQv YmluL3NlZCBhcyBpdCBpcyB0eXBpY2FsbHkgZm91bmQgb24gU29sYXJpcwotKyMgYWxvbmcgd2l0 aCAvYmluL3NlZCB0aGF0IHRydW5jYXRlcyBvdXRwdXQuCi0rZm9yIGx0X2FjX3NlZCBpbiAkbHRf YWNfc2VkX2xpc3QgL3Vzci94cGc0L2Jpbi9zZWQ7IGRvCi0rICB0ZXN0ICEgLWYgJGx0X2FjX3Nl ZCAmJiBjb250aW51ZQotKyAgY2F0IC9kZXYvbnVsbCA+IGNvbmZ0ZXN0LmluCi0rICBsdF9hY19j b3VudD0wCi0rICBlY2hvICRFQ0hPX04gIjAxMjM0NTY3ODkkRUNIT19DIiA+Y29uZnRlc3QuaW4K LSsgICMgQ2hlY2sgZm9yIEdOVSBzZWQgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsg IGlmICIkbHRfYWNfc2VkIiAtLXZlcnNpb24gMj4mMSA8IC9kZXYvbnVsbCB8IGdyZXAgJ0dOVScg PiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAotKyAgICBi cmVhawotKyAgZmkKLSsgIHdoaWxlIHRydWU7IGRvCi0rICAgIGNhdCBjb25mdGVzdC5pbiBjb25m dGVzdC5pbiA+Y29uZnRlc3QudG1wCi0rICAgIG12IGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5pbgot KyAgICBjcCBjb25mdGVzdC5pbiBjb25mdGVzdC5ubAotKyAgICBlY2hvID4+Y29uZnRlc3QubmwK LSsgICAgJGx0X2FjX3NlZCAtZSAncy9hJC8vJyA8IGNvbmZ0ZXN0Lm5sID5jb25mdGVzdC5vdXQg fHwgYnJlYWsKLSsgICAgY21wIC1zIGNvbmZ0ZXN0Lm91dCBjb25mdGVzdC5ubCB8fCBicmVhawot KyAgICAjIDEwMDAwIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAg dGVzdCAkbHRfYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCi0rICAgIGx0X2FjX2NvdW50PWBleHBy ICRsdF9hY19jb3VudCArIDFgCi0rICAgIGlmIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAkbHRfYWNf bWF4OyB0aGVuCi0rICAgICAgbHRfYWNfbWF4PSRsdF9hY19jb3VudAotKyAgICAgIGx0X2N2X3Bh dGhfU0VEPSRsdF9hY19zZWQKLSsgICAgZmkKLSsgIGRvbmUKLStkb25lCi0rCi0rZmkKLSsKLStT RUQ9JGx0X2N2X3BhdGhfU0VECi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJFNFRCIgPiY1Ci0rJGFzX2VjaG8gIiRTRUQiID4mNjsgfQotKwotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBh bmQgLWUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBs b25nIGxpbmVzIGFuZCAtZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9HUkVQ K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGlmIHRlc3QgLXogIiRHUkVQIjsgdGhlbgotKyAgYWNfcGF0aF9HUkVQX2ZvdW5kPWZhbHNl Ci0rICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2Yg UFJPR05BTUUtTElTVAotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluCi0rZG8KLSsg IElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBm b3IgYWNfcHJvZyBpbiBncmVwIGdncmVwOyBkbwotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgICAgICBhY19wYXRoX0dSRVA9IiRhc19k aXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCi0rICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9HUkVQ IiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9HUkVQIjsgfSB8fCBjb250aW51ZQotKyMgQ2hlY2sg Zm9yIEdOVSBhY19wYXRoX0dSRVAgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsgICMg Q2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9HUkVQCi0rY2FzZSBgIiRhY19wYXRoX0dSRVAiIC0tdmVy c2lvbiAyPiYxYCBpbgotKypHTlUqKQotKyAgYWNfY3ZfcGF0aF9HUkVQPSIkYWNfcGF0aF9HUkVQ IiBhY19wYXRoX0dSRVBfZm91bmQ9Ojs7Ci0rKikKLSsgIGFjX2NvdW50PTAKLSsgICRhc19lY2hv X24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgotKyAgd2hpbGUgOgotKyAgZG8KLSsgICAgY2F0 ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKLSsgICAgbXYgImNv bmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgotKyAgICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVz dC5ubCIKLSsgICAgJGFzX2VjaG8gJ0dSRVAnID4+ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19w YXRoX0dSRVAiIC1lICdHUkVQJCcgLWUgJy0oY2Fubm90IG1hdGNoKS0nIDwgImNvbmZ0ZXN0Lm5s IiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsKLSsgICAgZGlmZiAiY29uZnRl c3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBicmVhawotKyAgICBhY19j b3VudD1gZXhwciAkYWNfY291bnQgKyAxYAotKyAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHth Y19wYXRoX0dSRVBfbWF4LTB9OyB0aGVuCi0rICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUg aXQgYnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCi0rICAgICAgYWNfY3ZfcGF0aF9H UkVQPSIkYWNfcGF0aF9HUkVQIgotKyAgICAgIGFjX3BhdGhfR1JFUF9tYXg9JGFjX2NvdW50Ci0r ICAgIGZpCi0rICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBl bm91Z2gKLSsgICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCi0rICBkb25lCi0rICBy bSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsK LStlc2FjCi0rCi0rICAgICAgJGFjX3BhdGhfR1JFUF9mb3VuZCAmJiBicmVhayAzCi0rICAgIGRv bmUKLSsgIGRvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKyAgaWYgdGVzdCAteiAiJGFj X2N2X3BhdGhfR1JFUCI7IHRoZW4KLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IG5vIGFjY2VwdGFibGUgZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NF UEFSQVRPUi91c3IveHBnNC9iaW4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBh Y2NlcHRhYmxlIGdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNy L3hwZzQvYmluIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZmkKLStl bHNlCi0rICBhY19jdl9wYXRoX0dSRVA9JEdSRVAKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3BhdGhfR1JFUCIgPiY1Ci0rJGFzX2VjaG8g IiRhY19jdl9wYXRoX0dSRVAiID4mNjsgfQotKyBHUkVQPSIkYWNfY3ZfcGF0aF9HUkVQIgotKwot KwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZWdyZXAiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBlZ3JlcC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfcGF0aF9FR1JFUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBpZiBlY2hvIGEgfCAkR1JFUCAtRSAnKGF8YiknID4vZGV2L251 bGwgMj4mMQotKyAgIHRoZW4gYWNfY3ZfcGF0aF9FR1JFUD0iJEdSRVAgLUUiCi0rICAgZWxzZQot KyAgICAgaWYgdGVzdCAteiAiJEVHUkVQIjsgdGhlbgotKyAgYWNfcGF0aF9FR1JFUF9mb3VuZD1m YWxzZQotKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNo IG9mIFBST0dOQU1FLUxJU1QKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbgotK2Rv Ci0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgot KyAgZm9yIGFjX3Byb2cgaW4gZWdyZXA7IGRvCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAk YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgICAgIGFjX3BhdGhfRUdSRVA9IiRhc19k aXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCi0rICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9FR1JF UCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfRUdSRVAiOyB9IHx8IGNvbnRpbnVlCi0rIyBDaGVj ayBmb3IgR05VIGFjX3BhdGhfRUdSRVAgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsg ICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9FR1JFUAotK2Nhc2UgYCIkYWNfcGF0aF9FR1JFUCIg LS12ZXJzaW9uIDI+JjFgIGluCi0rKkdOVSopCi0rICBhY19jdl9wYXRoX0VHUkVQPSIkYWNfcGF0 aF9FR1JFUCIgYWNfcGF0aF9FR1JFUF9mb3VuZD06OzsKLSsqKQotKyAgYWNfY291bnQ9MAotKyAg JGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4iCi0rICB3aGlsZSA6Ci0rICBkbwot KyAgICBjYXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgotKyAg ICBtdiAiY29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCi0rICAgIGNwICJjb25mdGVzdC5pbiIg ImNvbmZ0ZXN0Lm5sIgotKyAgICAkYXNfZWNobyAnRUdSRVAnID4+ICJjb25mdGVzdC5ubCIKLSsg ICAgIiRhY19wYXRoX0VHUkVQIiAnRUdSRVAkJyA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5v dXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCi0rICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0 ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKLSsgICAgYWNfY291bnQ9YGV4cHIgJGFj X2NvdW50ICsgMWAKLSsgICAgaWYgdGVzdCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9FR1JFUF9t YXgtMH07IHRoZW4KLSsgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBs b29raW5nIGZvciBhIGJldHRlciBvbmUKLSsgICAgICBhY19jdl9wYXRoX0VHUkVQPSIkYWNfcGF0 aF9FR1JFUCIKLSsgICAgICBhY19wYXRoX0VHUkVQX21heD0kYWNfY291bnQKLSsgICAgZmkKLSsg ICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAotKyAg ICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIHJtIC1mIGNvbmZ0 ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OwotK2VzYWMKLSsK LSsgICAgICAkYWNfcGF0aF9FR1JFUF9mb3VuZCAmJiBicmVhayAzCi0rICAgIGRvbmUKLSsgIGRv bmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhf RUdSRVAiOyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBu byBhY2NlcHRhYmxlIGVncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9S L3Vzci94cGc0L2JpbiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFi bGUgZWdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQv YmluIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZmkKLStlbHNlCi0r ICBhY19jdl9wYXRoX0VHUkVQPSRFR1JFUAotK2ZpCi0rCi0rICAgZmkKLStmaQotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wYXRoX0VHUkVQIiA+JjUKLSskYXNf ZWNobyAiJGFjX2N2X3BhdGhfRUdSRVAiID4mNjsgfQotKyBFR1JFUD0iJGFjX2N2X3BhdGhfRUdS RVAiCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nbnUtbGQgd2FzIGdpdmVuLgot K2lmIHRlc3QgIiR7d2l0aF9nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdp dGhfZ251X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXMKLStlbHNl Ci0rICB3aXRoX2dudV9sZD1ubwotK2ZpCi0rCi0rYWNfcHJvZz1sZAotK2lmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCi0rICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1uYW1lPWxkIGdpdmVz IGEgcGF0aC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGQg dXNlZCBieSAkQ0MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRD Qy4uLiAiID4mNjsgfQotKyAgY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1pbmd3KikKLSsgICAgIyBn Y2MgbGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndwot KyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAx NSdgIDs7Ci0rICAqKQotKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+ JjVgIDs7Ci0rICBlc2FjCi0rICBjYXNlICRhY19wcm9nIGluCi0rICAgICMgQWNjZXB0IGFic29s dXRlIHBhdGhzLgotKyAgICBbXFwvXSogfCA/OltcXC9dKikKLSsgICAgICByZV9kaXJlbHQ9Jy9b Xi9dW14vXSovXC5cLi8nCi0rICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBhdGhuYW1lIG9mIGxk Ci0rICAgICAgYWNfcHJvZz1gZWNobyAkYWNfcHJvZ3wgJFNFRCAncyVcXFxcJS8lZydgCi0rICAg ICAgd2hpbGUgZWNobyAkYWNfcHJvZyB8IGdyZXAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+ JjE7IGRvCi0rCWFjX3Byb2c9YGVjaG8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJg Ci0rICAgICAgZG9uZQotKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgotKyAg ICAgIDs7Ci0rICAiIikKLSsgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4n dCB1c2luZyBHQ0MuCi0rICAgIGFjX3Byb2c9bGQKLSsgICAgOzsKLSsgICopCi0rICAgICMgSWYg aXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KLSsg ICAgd2l0aF9nbnVfbGQ9dW5rbm93bgotKyAgICA7OwotKyAgZXNhYwotK2VsaWYgdGVzdCAiJHdp dGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBHTlUgbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBHTlUgbGQu Li4gIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yIG5vbi1HTlUgbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBub24tR05V IGxkLi4uICIgPiY2OyB9Ci0rZmkKLStpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTEQrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVz dCAteiAiJExEIjsgdGhlbgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIK LSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAiJGFj X2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0 aGVuCi0rICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKLSsgICAgICAjIENo ZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZl cnNpb24sCi0rICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBv bmx5IGFjY2VwdCAtdi4KLSsgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9u LUdOVSBsZCB0aGF0IHdlIHByZWZlci4KLSsgICAgICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12 IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikKLSsJdGVz dCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhawotKwk7OwotKyAgICAgICopCi0rCXRlc3Qg IiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBm aQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rZWxzZQotKyAgbHRfY3ZfcGF0aF9M RD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLStm aQotK2ZpCi0rCi0rTEQ9IiRsdF9jdl9wYXRoX0xEIgotK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4K LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRMRCIgPiY1Ci0rJGFzX2Vj aG8gIiRMRCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSt0ZXN0IC16ICIkTEQi ICYmIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIGxk IGZvdW5kIGluIFwkUEFUSCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2Vw dGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiB0aGUgbGlua2Vy ICgkTEQpIGlzIEdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgdGhlIGxpbmtl ciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfZ251 X2xkK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgICMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNv bWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KLStjYXNlIGAkTEQgLXYgMj4mMSA8L2Rldi9udWxs YCBpbgotKypHTlUqIHwgKid3aXRoIEJGRCcqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9eWVzCi0r ICA7OwotKyopCi0rICBsdF9jdl9wcm9nX2dudV9sZD1ubwotKyAgOzsKLStlc2FjCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19nbnVfbGQiID4m NQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNjsgfQotK3dpdGhfZ251X2xkPSRs dF9jdl9wcm9nX2dudV9sZAotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9sZF9yZWxvYWRfZmxhZytzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9sZF9yZWxv YWRfZmxhZz0nLXInCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk bHRfY3ZfbGRfcmVsb2FkX2ZsYWciID4mNQotKyRhc19lY2hvICIkbHRfY3ZfbGRfcmVsb2FkX2Zs YWciID4mNjsgfQotK3JlbG9hZF9mbGFnPSRsdF9jdl9sZF9yZWxvYWRfZmxhZwotK2Nhc2UgJHJl bG9hZF9mbGFnIGluCi0rIiIgfCAiICIqKSA7OwotKyopIHJlbG9hZF9mbGFnPSIgJHJlbG9hZF9m bGFnIiA7OwotK2VzYWMKLStyZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQk cmVsb2FkX29ianMnCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgZGFyd2luKikKLSsgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgICByZWxvYWRfY21kcz0nJExUQ0MgJExUQ0ZMQUdT IC1ub3N0ZGxpYiAke3dsfS1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGVsc2UKLSsg ICAgICByZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMn Ci0rICAgIGZpCi0rICAgIDs7Ci0rZXNhYwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgQlNELWNvbXBhdGlibGUgbm0iID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBCU0QtY29tcGF0aWJsZSBubS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3Zf cGF0aF9OTStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBpZiB0ZXN0IC1uICIkTk0iOyB0aGVuCi0rICAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdC4KLSsgIGx0X2N2X3BhdGhfTk09IiROTSIKLStlbHNlCi0rICBsdF9ubV90 b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIKLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3By ZWZpeCIgJiYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KLSsgICAgbHRfbm1fdG9fY2hl Y2s9IiRsdF9ubV90b19jaGVjayBubSIKLSsgIGZpCi0rICBmb3IgbHRfdG1wX25tIGluICRsdF9u bV90b19jaGVjazsgZG8KLSsgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rICAgIGZvciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluL2VsZiAvdXNyL2Njcy9i aW4gL3Vzci91Y2IgL2JpbjsgZG8KLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICB0 ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICAgIHRtcF9ubT0iJGFjX2Rpci8kbHRf dG1wX25tIgotKyAgICAgIGlmIHRlc3QgLWYgIiR0bXBfbm0iIHx8IHRlc3QgLWYgIiR0bXBfbm0k YWNfZXhlZXh0IiA7IHRoZW4KLSsJIyBDaGVjayB0byBzZWUgaWYgdGhlIG5tIGFjY2VwdHMgYSBC U0QtY29tcGF0IGZsYWcuCi0rCSMgQWRkaW5nIHRoZSBgc2VkIDFxJyBwcmV2ZW50cyBmYWxzZSBw b3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6Ci0rCSMgICBubTogdW5rbm93biBvcHRpb24g IkIiIGlnbm9yZWQKLSsJIyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0aGF0IC9kZXYvbnVsbCBpcyBh biBpbnZhbGlkIG9iamVjdCBmaWxlCi0rCWNhc2UgYCIkdG1wX25tIiAtQiAvZGV2L251bGwgMj4m MSB8IHNlZCAnMXEnYCBpbgotKwkqL2Rldi9udWxsKiB8IConSW52YWxpZCBmaWxlIG9yIG9iamVj dCB0eXBlJyopCi0rCSAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKLSsJICBicmVhawotKwkg IDs7Ci0rCSopCi0rCSAgY2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcx cSdgIGluCi0rCSAgKi9kZXYvbnVsbCopCi0rCSAgICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1w IgotKwkgICAgYnJlYWsKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGx0X2N2X3BhdGhfTk09JHts dF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVwIHRoZSBmaXJzdCBtYXRjaCwgYnV0Ci0rCSAg ICBjb250aW51ZSAjIHNvIHRoYXQgd2UgY2FuIHRyeSB0byBmaW5kIG9uZSB0aGF0IHN1cHBvcnRz IEJTRCBmbGFncwotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGZp Ci0rICAgIGRvbmUKLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICBkb25lCi0rICB0ZXN0IC16 ICIkbHRfY3ZfcGF0aF9OTSIgJiYgbHRfY3ZfcGF0aF9OTT1ubQotK2ZpCi0rZmkKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcGF0aF9OTSIgPiY1Ci0rJGFzX2Vj aG8gIiRsdF9jdl9wYXRoX05NIiA+JjY7IH0KLStOTT0iJGx0X2N2X3BhdGhfTk0iCi0rCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MuLi4gIiA+JjY7IH0K LStMTl9TPSRhc19sbl9zCi0raWYgdGVzdCAiJExOX1MiID0gImxuIC1zIjsgdGhlbgotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVz IiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu bywgdXNpbmcgJExOX1MiID4mNQotKyRhc19lY2hvICJubywgdXNpbmcgJExOX1MiID4mNjsgfQot K2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byByZWNv Z25pemUgZGVwZW5kZW50IGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93 IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHtsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1B R0lDX0NNRCcKLStsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0KLStsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0ndW5rbm93bicKLSsjIE5lZWQgdG8gc2V0IHRoZSBwcmVjZWRpbmcgdmFyaWFi bGUgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKLSsjIGludGVybGlicmFyeSBkZXBlbmRl bmNpZXMuCi0rIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBzdXBwb3J0ZWQuCi0rIyBgdW5r bm93bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRoYXQgd2UgcmVhbGx5IGRvbid0 IGtub3cuCi0rIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNpZXMgcGFzc2VkIHdpdGggbm8g Y2hlY2tzLgotKyMgJ3Rlc3RfY29tcGlsZScgLS0gY2hlY2sgYnkgbWFraW5nIHRlc3QgcHJvZ3Jh bS4KLSsjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sgYnkgbG9va2luZyBmb3IgZmls ZXMgaW4gbGlicmFyeSBwYXRoCi0rIyB3aGljaCByZXNwb25kcyB0byB0aGUgJGZpbGVfbWFnaWNf Y21kIHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KLSsjIElmIHlvdSBoYXZlIGBmaWxlJyBv ciBlcXVpdmFsZW50IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3UncmUgbm90IHN1cmUKLSsjIHdoZXRo ZXIgYHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBwcm9iYWJseSB3YW50IHRoaXMg b25lLgotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXhbNC05XSopCi0rICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStiZW9zKikKLSsgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2JzZGlbNDVdKikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW01M XVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PScvdXNyL2Jpbi9maWxlIC1MJwotKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3NobGli L2xpYmMuc28KLSsgIDs7Ci0rCi0rY3lnd2luKikKLSsgICMgZnVuY193aW4zMl9saWJpZCBpcyBh IHNoZWxsIGZ1bmN0aW9uIGRlZmluZWQgaW4gbHRtYWluLnNoCi0rICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJwotKyAg bHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICA7OwotKwotK21pbmd3 KiB8IHB3MzIqKQotKyAgIyBCYXNlIE1TWVMvTWluR1cgZG8gbm90IHByb3ZpZGUgdGhlICdmaWxl JyBjb21tYW5kIG5lZWRlZCBieQotKyAgIyBmdW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9u LCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcsCi0rICAjIHVubGVzcyB3 ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1wbGUgYmVjYXVzZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5n LgotKyAgaWYgKCBmaWxlIC8gKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERM TCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICBlbHNl Ci0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0 IHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JwotKyAgICBsdF9jdl9maWxlX21hZ2lj X2NtZD0nJE9CSkRVTVAgLWYnCi0rICBmaQotKyAgOzsKLSsKLStkYXJ3aW4qIHwgcmhhcHNvZHkq KQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rZnJl ZWJzZCogfCBkcmFnb25mbHkqKQotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVw IF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAg aSo4NiApCi0rICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHRoZSBwcmVzZW5jZSBvZiBPcGVuQlNE IGhlcmUgd2FzIGEgbWlzdGFrZS4KLSsgICAgICAjIExldCdzIGFjY2VwdCBib3RoIG9mIHRoZW0g dW50aWwgdGhpcyBpcyBjbGVhcmVkIHVwLgotKyAgICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdmaWxlX21hZ2ljIChGcmVlQlNEfE9wZW5CU0R8RHJhZ29uRmx5KS9pWzMtOV04NiAoY29t cGFjdCApP2RlbWFuZCBwYWdlZCBzaGFyZWQgbGlicmFyeScKLSsgICAgICBsdF9jdl9maWxlX21h Z2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICAgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9 YGVjaG8gL3Vzci9saWIvbGliYy5zby4qYAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UK LSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIGZpCi0rICA7Owot KwotK2dudSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsK LSsKLStocHV4MTAuMjAqIHwgaHB1eDExKikKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3Iv YmluL2ZpbGUKLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBpYTY0KikKLSsgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18RUxGLVswLTld WzAtOV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIElBNjQnCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNf dGVzdF9maWxlPS91c3IvbGliL2hwdXgzMi9saWJjLnNvCi0rICAgIDs7Ci0rICBocHBhKjY0KikK LSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTld WzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIFBBLVJJU0MgWzAtOV0u WzAtOV0nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL3BhMjBfNjQv bGliYy5zbAotKyAgICA7OwotKyAgKikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J2ZpbGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18UEEtUklTQ1swLTldLlswLTldKSBzaGFyZWQg bGlicmFyeScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGliYy5z bAotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStpbnRlcml4WzMtOV0qKQotKyAgIyBQSUMg Y29kZSBpcyBicm9rZW4gb24gSW50ZXJpeCAzLngsIHRoYXQncyB3aHkgfFwuYSBub3QgfF9waWNc LmEgaGVyZQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xp YlteL10rKFwuc298XC5hKSQnCi0rICA7OwotKwotK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1 eCopCi0rICBjYXNlICRMRCBpbgotKyAgKi0zMnwqIi0zMiAiKSBsaWJtYWdpYz0zMi1iaXQ7Owot KyAgKi1uMzJ8KiItbjMyICIpIGxpYm1hZ2ljPU4zMjs7Ci0rICAqLTY0fCoiLTY0ICIpIGxpYm1h Z2ljPTY0LWJpdDs7Ci0rICAqKSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICBlc2FjCi0rICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLSsjIFRoaXMgbXVz dCBiZSBMaW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdudSkKLSsgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK25ldGJzZCopCi0rICBpZiBlY2hvIF9f RUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb1wu WzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJwotKyAgZWxzZQotKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb3xfcGljXC5hKSQnCi0rICBm aQotKyAgOzsKLSsKLStuZXdvczYqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2Zp bGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBs aWIpJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQotKyAgbHRfY3ZfZmls ZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCi0rICA7OwotKwotK250by1xbngq KQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgotKyAgOzsKLSsKLStvcGVu YnNkKikKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19F TEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBj IjsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAv bGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8XC5zb3xfcGljXC5hKSQnCi0rICBlbHNlCi0r ICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhc LnNvXC5bMC05XStcLlswLTldK3xfcGljXC5hKSQnCi0rICBmaQotKyAgOzsKLSsKLStvc2YzKiB8 IG9zZjQqIHwgb3NmNSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAot KyAgOzsKLSsKLStyZG9zKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs Ci0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFz c19hbGwKLSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsgIGNhc2UgJGhvc3RfdmVuZG9y IGluCi0rICBtb3Rvcm9sYSkKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBs aWIpIE1bMC05XVswLTldKiBWZXJzaW9uIFswLTldJwotKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rl c3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKLSsgICAgOzsKLSsgIG5jcikKLSsgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgICAgOzsKLSsgIHNlcXVlbnQp Ci0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCi0rICAgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xNXVNCIChz aGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCi0rICAgIDs7Ci0rICBzbmkpCi0rICAgIGx0X2N2 X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSJmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xNXVNCIGR5bmFtaWMgbGliIgot KyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KLSsgICAgOzsKLSsg IHNpZW1lbnMpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAg IDs7Ci0rICBwYykKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsg ICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8 IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0rICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLStlc2FjCi0rCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QiID4mNQot KyRhc19lY2hvICIkbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QiID4mNjsgfQotK2ZpbGVfbWFn aWNfY21kPSRsdF9jdl9maWxlX21hZ2ljX2NtZAotK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZAotK3Rlc3QgLXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIg JiYgZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgotKwotKwotKwotKwotKyMgSWYgbm8gQyBj b21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0r IyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xU Q0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0rCi0rIyBDaGVjayB3 aGV0aGVyIC0tZW5hYmxlLWxpYnRvb2wtbG9jayB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFi bGVfbGlidG9vbF9sb2NrK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9s aWJ0b29sX2xvY2s7Ci0rZmkKLSsKLSt0ZXN0ICJ4JGVuYWJsZV9saWJ0b29sX2xvY2siICE9IHhu byAmJiBlbmFibGVfbGlidG9vbF9sb2NrPXllcwotKwotKyMgU29tZSBmbGFncyBuZWVkIHRvIGJl IHByb3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3IgZ29vZAotKyMgbGlidG9v bCBzdXBwb3J0LgotK2Nhc2UgJGhvc3QgaW4KLStpYTY0LSotaHB1eCopCi0rICAjIEZpbmQgb3V0 IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFj X2V4dAotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwi IikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH07IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4k YWNfb2JqZXh0YCBpbgotKyAgICAqRUxGLTMyKikKLSsgICAgICBIUFVYX0lBNjRfTU9ERT0iMzIi Ci0rICAgICAgOzsKLSsgICAgKkVMRi02NCopCi0rICAgICAgSFBVWF9JQTY0X01PREU9IjY0Igot KyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7Owot KyotKi1pcml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBl Y2hvICcjbGluZSA1NTY5ICJjb25maWd1cmUiJyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIHsg KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2 YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9 OyB0aGVuCi0rICAgaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgotKyAg ICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rICAgICozMi1i aXQqKQotKyAgICAgIExEPSIke0xELWxkfSAtbWVsZjMyYnNtaXAiCi0rICAgICAgOzsKLSsgICAg Kk4zMiopCi0rICAgICAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJibWlwbjMyIgotKyAgICAgIDs7Ci0r ICAgICo2NC1iaXQqKQotKyAgICAgIExEPSIke0xELWxkfSAtbWVsZjY0Ym1pcCIKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rICAgZWxzZQotKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0 LiRhY19vYmpleHRgIGluCi0rICAgICozMi1iaXQqKQotKyAgICAgIExEPSIke0xELWxkfSAtMzIi Ci0rICAgICAgOzsKLSsgICAgKk4zMiopCi0rICAgICAgTEQ9IiR7TEQtbGR9IC1uMzIiCi0rICAg ICAgOzsKLSsgICAgKjY0LWJpdCopCi0rICAgICAgTEQ9IiR7TEQtbGR9IC02NCIKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rICAgZmkKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7Owot KwotK3g4Nl82NC0qa2ZyZWVic2QqLWdudXx4ODZfNjQtKmxpbnV4KnxwcGMqLSpsaW51eCp8cG93 ZXJwYyotKmxpbnV4KnwgXAotK3MzOTAqLSpsaW51eCp8c3BhcmMqLSpsaW51eCopCi0rICAjIEZp bmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdpbnQgaTsnID4gY29uZnRl c3QuJGFjX2V4dAotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29t cGlsZVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25m dGVzdC5vYCBpbgotKyAgICAqMzItYml0KikKLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAg ICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCi0rICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZf aTM4Nl9mYnNkIgotKyAgICAgICAgICA7OwotKyAgICAgICAgeDg2XzY0LSpsaW51eCopCi0rICAg ICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4NiIKLSsgICAgICAgICAgOzsKLSsgICAgICAg IHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCi0rICAgICAgICAgIExEPSIke0xELWxk fSAtbSBlbGYzMnBwY2xpbnV4IgotKyAgICAgICAgICA7OwotKyAgICAgICAgczM5MHgtKmxpbnV4 KikKLSsgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9zMzkwIgotKyAgICAgICAgICA7Owot KyAgICAgICAgc3BhcmM2NC0qbGludXgqKQotKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxm MzJfc3BhcmMiCi0rICAgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rICAgICo2 NC1iaXQqKQotKyAgICAgIGxpYnN1ZmY9NjQKLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAg ICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCi0rICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZf eDg2XzY0X2Zic2QiCi0rICAgICAgICAgIDs7Ci0rICAgICAgICB4ODZfNjQtKmxpbnV4KikKLSsg ICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjQiCi0rICAgICAgICAgIDs7Ci0rICAg ICAgICBwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KikKLSsgICAgICAgICAgTEQ9IiR7TEQt bGR9IC1tIGVsZjY0cHBjIgotKyAgICAgICAgICA7OwotKyAgICAgICAgczM5MCotKmxpbnV4KikK LSsgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3MzOTAiCi0rICAgICAgICAgIDs7Ci0r ICAgICAgICBzcGFyYyotKmxpbnV4KikKLSsgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0 X3NwYXJjIgotKyAgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKyAgICBlc2Fj Ci0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsKLSsqLSotc2NvMy4ydjUqKQot KyAgIyBPbiBTQ08gT3BlblNlcnZlciA1LCB3ZSBuZWVkIC1iZWxmIHRvIGdldCBmdWxsLWZlYXR1 cmVkIGJpbmFyaWVzLgotKyAgU0FWRV9DRkxBR1M9IiRDRkxBR1MiCi0rICBDRkxBR1M9IiRDRkxB R1MgLWJlbGYiCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhl ciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZi4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7bHRfY3ZfY2NfbmVlZHNfYmVsZitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxB R1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJf Z251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKyAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAg cmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwot KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNv bmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0r CSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVz dCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXMK LStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWx0X2N2X2NjX25lZWRzX2Jl bGY9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsg ICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgICAgYWNfZXh0PWMK LSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9jY19uZWVkc19iZWxm IiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2NjX25lZWRzX2JlbGYiID4mNjsgfQotKyAgaWYgdGVz dCB4IiRsdF9jdl9jY19uZWVkc19iZWxmIiAhPSB4InllcyI7IHRoZW4KLSsgICAgIyB0aGlzIGlz IHByb2JhYmx5IGdjYyAyLjguMCwgZWdjcyAxLjAgb3IgbmV3ZXI7IG5vIG5lZWQgZm9yIC1iZWxm Ci0rICAgIENGTEFHUz0iJFNBVkVfQ0ZMQUdTIgotKyAgZmkKLSsgIDs7Ci0rc3BhcmMqLSpzb2xh cmlzKikKLSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVjaG8gJ2lu dCBpOycgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElO RU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0r ICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgICBjYXNlIGAvdXNy L2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCi0rICAgICo2NC1iaXQqKQotKyAgICAgIGNhc2UgJGx0 X2N2X3Byb2dfZ251X2xkIGluCi0rICAgICAgeWVzKikgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3Nw YXJjIiA7OwotKyAgICAgICopCi0rICAgICAgICBpZiAke0xELWxkfSAtNjQgLXIgLW8gY29uZnRl c3QyLm8gY29uZnRlc3QubyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICBMRD0iJHtMRC1sZH0g LTY0IgotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBm aQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsKLSsKLStlc2FjCi0rCi0rbmVlZF9sb2Nr cz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCi0rCi0rCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAg JENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLi4uICIgPiY2OyB9 Ci0rIyBPbiBTdW5zLCBzb21ldGltZXMgJENQUCBuYW1lcyBhIGRpcmVjdG9yeS4KLStpZiB0ZXN0 IC1uICIkQ1BQIiAmJiB0ZXN0IC1kICIkQ1BQIjsgdGhlbgotKyAgQ1BQPQotK2ZpCi0raWYgdGVz dCAteiAiJENQUCI7IHRoZW4KLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DUFArc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgICAgICMg RG91YmxlIHF1b3RlcyBiZWNhdXNlIENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAotKyAgICBmb3Ig Q1BQIGluICIkQ0MgLUUiICIkQ0MgLUUgLXRyYWRpdGlvbmFsLWNwcCIgIi9saWIvY3BwIgotKyAg ICBkbwotKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY19wcmVwcm9jX3dhcm5f ZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdp dGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29t cGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19T VERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBm cmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUg Y29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3Vn aCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18K LSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsj ZW5kaWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4v ZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhl bgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2Vu OiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMu ICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRl Y3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29u ZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwg IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRh Y19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9 OyB0aGVuCi0rICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotK2NvbnRpbnVl Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAgIyBQYXNzZXMgYm90aCB0 ZXN0cy4KLSthY19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9B Q19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLStpZiAkYWNfcHJlcHJvY19vazsgdGhlbgotKyAg YnJlYWsKLStmaQotKwotKyAgICBkb25lCi0rICAgIGFjX2N2X3Byb2dfQ1BQPSRDUFAKLSsKLStm aQotKyAgQ1BQPSRhY19jdl9wcm9nX0NQUAotK2Vsc2UKLSsgIGFjX2N2X3Byb2dfQ1BQPSRDUFAK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDUFAiID4mNQotKyRh c19lY2hvICIkQ1BQIiA+JjY7IH0KLSthY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2NfcHJl cHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhh dCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLSsgICMgd2l0aCBhIGZyZXNo IGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0 Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0rICAjIDxsaW1pdHMuaD4gZXhpc3Rz IGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICMgT24gdGhlIE5lWFQsIGNjIC1F IHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCi0rICAjIG5vdCBq dXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2Fz ZS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lmZGVm IF9fU1REQ19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsjZWxzZQotKyMgaW5jbHVkZSA8YXNz ZXJ0Lmg+Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJvcgotK19BQ0VPRgotK2lmIHsgKGFj X3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAo ZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsg IHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9m bGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAg ICAgIH07IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0r ICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUKLStmaQotKwotK3Jt IC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBz YW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBj YW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29u ZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYg eyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBp bgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK LSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193 YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK LSsgICAgICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4K LStjb250aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgUGFz c2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3JtIC1m IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBg YnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgot K3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7 IHRoZW4KLSsgIDoKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBw cmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2VlIFxgY29uZmlnLmxv ZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBDIHBy ZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9n JyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07 IH0KLStmaQotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21w aWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2Nf Y29tcGlsZXJfZ251Ci0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig QU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVy X3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5j bHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0ZGFyZy5oPgotKyNpbmNsdWRlIDxzdHJpbmcu aD4KLSsjaW5jbHVkZSA8ZmxvYXQuaD4KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwot KyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIx Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRl c3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgot KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3Zf aGVhZGVyX3N0ZGM9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlh Y19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0raWYgdGVzdCAkYWNfY3ZfaGVh ZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsgICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRl Y2xhcmUgbWVtKiwgY29udHJhcnkgdG8gQU5TSS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBl bmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwotK19BQ0VPRgotK2lm IChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSsgICRFR1JFUCAibWVt Y2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFkZXJf c3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19j dl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBu b3QgZGVjbGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgotKyAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rCi0rX0FDRU9G Ci0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotKyAgJEVHUkVQ ICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFk ZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRh Y19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUg Z2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNpLgotKyAgaWYgdGVz dCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxjdHlwZS5oPgot KyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaWYgKCgnICcgJiAweDBGRikgPT0gMHgwMjApCi0rIyBk ZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQotKyMgZGVmaW5lIFRP VVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKLSsjZWxzZQot KyMgZGVmaW5lIElTTE9XRVIoYykgXAotKwkJICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScp IFwKLSsJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAotKwkJICAgICB8fCAo J3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKLSsjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VS KGMpID8gKChjKSB8IDB4NDApIDogKGMpKQotKyNlbmRpZgotKwotKyNkZWZpbmUgWE9SKGUsIGYp ICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi0raW50Ci0rbWFpbiAoKQotK3sKLSsg IGludCBpOwotKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQotKyAgICBpZiAoWE9SIChpc2xv d2VyIChpKSwgSVNMT1dFUiAoaSkpCi0rCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQot KyAgICAgIHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSsgIHsgKGNhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwot KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQotKwotKyggZXhpdCAkYWNfc3RhdHVzICkKLSthY19jdl9oZWFkZXJf c3RkYz1ubwotK2ZpCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlICouY29yZSBj b3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotKwotK2ZpCi0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQot KyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQotK2lmIHRlc3QgJGFjX2N2X2hl YWRlcl9zdGRjID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsj ZGVmaW5lIFNURENfSEVBREVSUyAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLSsjIE9uIElSSVggNS4z LCBzeXMvdHlwZXMgYW5kIGludHR5cGVzLmggYXJlIGNvbmZsaWN0aW5nLgotKwotKwotKwotKwot KwotKwotKwotKwotKwotK2ZvciBhY19oZWFkZXIgaW4gc3lzL3R5cGVzLmggc3lzL3N0YXQuaCBz dGRsaWIuaCBzdHJpbmcuaCBtZW1vcnkuaCBzdHJpbmdzLmggXAotKwkJICBpbnR0eXBlcy5oIHN0 ZGludC5oIHVuaXN0ZC5oCi0rZG8KLSthc19hY19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFk ZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX2hlYWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2YWwg InRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSskYWNfaW5jbHVkZXNfZGVmYXVsdAotKwotKyNpbmNsdWRlIDwkYWNfaGVh ZGVyPgotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9 IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0r ZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUi KSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29u ZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19j X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0hlYWRl cj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNf YWNfSGVhZGVyPW5vIgotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0k eyckYXNfYWNfSGVhZGVyJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8g IiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXIn fQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIi eWVzOyB0aGVuCi0rICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBgJGFzX2Vj aG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi0rX0FDRU9GCi0rCi0rZmkKLSsK LStkb25lCi0rCi0rCi0rCi0rZm9yIGFjX2hlYWRlciBpbiBkbGZjbi5oCi0rZG8KLSthc19hY19I ZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi0r aWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwi ID0gc2V0IjsgfTsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX2hlYWRl ci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJc JHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KLSsJ CSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2Vs c2UKLSsgICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eSIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkuLi4gIiA+JjY7IH0KLStjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyRhY19pbmNsdWRlc19kZWZhdWx0Ci0rI2lu Y2x1ZGUgPCRhY19oZWFkZXI+Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAot K2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFs ICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5l cjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkg dGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy Ci0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19o ZWFkZXJfY29tcGlsZXI9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KwlhY19oZWFkZXJfY29tcGlsZXI9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQotKyRhc19lY2hvICIk YWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KLSsKLSsjIElzIHRoZSBoZWFkZXIgcHJlc2VudD8K LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5j ZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAiID4m NjsgfQotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1 ZGUgPCRhY19oZWFkZXI+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2Fj Ci0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgot KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0r ICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYg ewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIg fHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgYWNfaGVh ZGVyX3ByZXByb2M9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAg YWNfaGVhZGVyX3ByZXByb2M9bm8KLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfZXh0Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRl cl9wcmVwcm9jIiA+JjUKLSskYXNfZWNobyAiJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjY7IH0KLSsK LSsjIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KLStjYXNlICRhY19oZWFkZXJfY29tcGls ZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCi0rICB5ZXM6 bm86ICkKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFk ZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3Nv ciEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVk IGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9Ci0r ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9j ZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVz dWx0IiA+JjI7fQotKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLSsgICAgOzsKLSsgIG5vOnll czoqICkKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFk ZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+ JjI7fQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRl cjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5n IHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlv biIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBB dXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5u b3QgQmUgQ29tcGlsZWRcIiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hl YWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYy O30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6 IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXBy b2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRh a2UgcHJlY2VkZW5jZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRl cjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7 fQotKyAgICAoIGNhdCA8PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBSZXBvcnQgdGhpcyB0byBtc29iY3pha0B1c2Vycy5z b3VyY2Vmb3JnZS5uZXQgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKLStfQVNCT1gKLSsgICAgICkgfCBzZWQgInMvXi8kYXNfbWU6IFdBUk5J Tkc6ICAgICAvIiA+JjIKLSsgICAgOzsKLStlc2FjCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2 YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj1cJGFjX2hl YWRlcl9wcmVwcm9jIgotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRl cid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7 IH0KLSsKLStmaQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJ ICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0 aGVuCi0rICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBgJGFzX2VjaG8gIkhB VkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLStkb25l Ci0rCi0rCi0rCi0raWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIg JiYKLSsgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAy PiYxYCApIHx8Ci0rICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgotKyAgYWNf ZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBy dW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0 byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KLStpZiB0ZXN0IC16ICIkQ1hY Q1BQIjsgdGhlbgotKyAgaWYgdGVzdCAiJHthY19jdl9wcm9nX0NYWENQUCtzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAgICAgIyBEb3Vi bGUgcXVvdGVzIGJlY2F1c2UgQ1hYQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCi0rICAgIGZvciBD WFhDUFAgaW4gIiRDWFggLUUiICIvbGliL2NwcCIKLSsgICAgZG8KLSsgICAgICBhY19wcmVwcm9j X29rPWZhbHNlCi0rZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwot KyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmlu ZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFBy ZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2lu Y2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJz LgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21w aWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3Ii IGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5o PgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3ludGF4 IGVycm9yCi0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQi KSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29u ZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVz dCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0r CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgIDoKLStlbHNlCi0r ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQg aW5wdXQuCi0rY29udGludWUKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRo ZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSsg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGFj X25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2Fj Ci0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgot KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0r ICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYg ewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2Zs YWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgICMg QnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0rY29udGludWUKLStlbHNlCi0rICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIFBhc3NlcyBib3RoIHRlc3RzLgotK2FjX3By ZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZF TFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLStybSAtZiBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCi0rICBicmVhawotK2ZpCi0r Ci0rICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAotKwotK2ZpCi0rICBD WFhDUFA9JGFjX2N2X3Byb2dfQ1hYQ1BQCi0rZWxzZQotKyAgYWNfY3ZfcHJvZ19DWFhDUFA9JENY WENQUAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENYWENQUCIg PiY1Ci0rJGFzX2VjaG8gIiRDWFhDUFAiID4mNjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UKLStm b3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotK2RvCi0rICAjIFVzZSBhIGhl YWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAj IHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSsgICMgUHJlZmVyIDxsaW1pdHMu aD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgIyA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCi0rICAjIE9uIHRo ZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2Vy LAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBj YXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBj b25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmgu ICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsj IGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJICAgICBTeW50YXggZXJyb3IKLStfQUNF T0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3Qu ZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1 Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4 X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250 aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsg ICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVu dCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQu aD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStj YXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+ Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVz dC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16 ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nl c3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0r YnJlYWsKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0r ZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmlu ZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0 Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIDoKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogQysrIHByZXByb2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBzYW5p dHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IEMrKyBwcmVwcm9jZXNzb3IgXCIkQ1hYQ1BQXCIgZmFpbHMg c2FuaXR5IGNoZWNrCi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9 Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9Ci0rZmkKLSsKLSthY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLStmaQotKwotKwotK2FjX2V4dD1mCi0rYWNfY29tcGlsZT0nJEY3NyAtYyAkRkZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRGNzcgLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRGRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGls ZXJfZ251PSRhY19jdl9mNzdfY29tcGlsZXJfZ251Ci0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJl Zml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gZzc3IHhsZiBmNzcgZnJ0IHBnZjc3IGNmNzcg Zm9ydDc3IGZsMzIgYWY3NyB4bGY5MCBmOTAgcGdmOTAgcGdocGYgZXBjZjkwIGdmb3J0cmFuIGc5 NSB4bGY5NSBmOTUgZm9ydCBpZm9ydCBpZmMgZWZjIHBnZjk1IGxmOTUgZnRuCi0rICBkbwotKyAg ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9nIiwg c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Rv b2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfRjc3K3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRl c3QgLW4gIiRGNzciOyB0aGVuCi0rICBhY19jdl9wcm9nX0Y3Nz0iJEY3NyIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9J RlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19GNzc9IiRhY190b29sX3By ZWZpeCRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUK LStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStGNzc9JGFjX2N2X3Byb2df Rjc3Ci0raWYgdGVzdCAtbiAiJEY3NyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRGNzciID4mNQotKyRhc19lY2hvICIkRjc3IiA+JjY7IH0KLStlbHNlCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8g Im5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgICB0ZXN0IC1uICIkRjc3IiAmJiBicmVhawotKyAg ZG9uZQotK2ZpCi0raWYgdGVzdCAteiAiJEY3NyI7IHRoZW4KLSsgIGFjX2N0X0Y3Nz0kRjc3Ci0r ICBmb3IgYWNfcHJvZyBpbiBnNzcgeGxmIGY3NyBmcnQgcGdmNzcgY2Y3NyBmb3J0NzcgZmwzMiBh Zjc3IHhsZjkwIGY5MCBwZ2Y5MCBwZ2hwZiBlcGNmOTAgZ2ZvcnRyYW4gZzk1IHhsZjk1IGY5NSBm b3J0IGlmb3J0IGlmYyBlZmMgcGdmOTUgbGY5NSBmdG4KLStkbwotKyAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCi0rc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2Fj X2N0X0Y3NytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfRjc3IjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19h Y19jdF9GNzc9IiRhY19jdF9GNzciICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgot K2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2Rp ciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu Ci0rICAgIGFjX2N2X3Byb2dfYWNfY3RfRjc3PSIkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsg ICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStm aQotK2ZpCi0rYWNfY3RfRjc3PSRhY19jdl9wcm9nX2FjX2N0X0Y3NwotK2lmIHRlc3QgLW4gIiRh Y19jdF9GNzciOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3RfRjc3IiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X0Y3NyIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRhY19jdF9GNzciICYmIGJyZWFrCi0r ZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9GNzciID0geDsgdGhlbgotKyAgICBGNzc9IiIK LSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgot K3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3Nz IHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0 cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgRjc3PSRh Y19jdF9GNzcKLSsgIGZpCi0rZmkKLSsKLSsKLSsjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBh Ym91dCB0aGUgY29tcGlsZXIuCi0rJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgRm9ydHJhbiA3NyBjb21waWxlciB2ZXJzaW9uIiA+JjUKLStzZXQgWCAkYWNfY29tcGlsZQot K2FjX2NvbXBpbGVyPSQyCi0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1 IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190cnk9 IiRhY19jb21waWxlciAtdiA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y29tcGlsZXIgLXYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0KLSt7IChhY190cnk9IiRhY19jb21waWxlciAtViA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBp bgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK LSsgIChldmFsICIkYWNfY29tcGlsZXIgLVYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0KLStybSAtZiBhLm91dAotKwotKyMgSWYgd2UgZG9uJ3QgdXNlIGAu RicgYXMgZXh0ZW5zaW9uLCB0aGUgcHJlcHJvY2Vzc29yIGlzIG5vdCBydW4gb24gdGhlCi0rIyBp bnB1dCBmaWxlLiAgKE5vdGUgdGhhdCB0aGlzIG9ubHkgbmVlZHMgdG8gd29yayBmb3IgR05VIGNv bXBpbGVycy4pCi0rYWNfc2F2ZV9leHQ9JGFjX2V4dAotK2FjX2V4dD1GCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgRm9y dHJhbiA3NyBjb21waWxlciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBh cmUgdXNpbmcgdGhlIEdOVSBGb3J0cmFuIDc3IGNvbXBpbGVyLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9mNzdfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKyAgICAgIHByb2dyYW0gbWFpbgotKyNpZm5kZWYgX19HTlVDX18KLSsgICAgICAgY2hv a2UgbWUKLSsjZW5kaWYKLSsKLSsgICAgICBlbmQKLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0k PwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1m IGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfZjc3X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsg dGhlbgotKyAgYWNfY29tcGlsZXJfZ251PXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsJYWNfY29tcGlsZXJfZ251PW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSthY19jdl9mNzdf Y29tcGlsZXJfZ251PSRhY19jb21waWxlcl9nbnUKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mNzdfY29tcGlsZXJfZ251IiA+JjUKLSskYXNfZWNo byAiJGFjX2N2X2Y3N19jb21waWxlcl9nbnUiID4mNjsgfQotK2FjX2V4dD0kYWNfc2F2ZV9leHQK LSthY190ZXN0X0ZGTEFHUz0ke0ZGTEFHUytzZXR9Ci0rYWNfc2F2ZV9GRkxBR1M9JEZGTEFHUwot K0ZGTEFHUz0KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAk Rjc3IGFjY2VwdHMgLWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJEY3NyBh Y2NlcHRzIC1nLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2Y3N19nK3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIEZG TEFHUz0tZwotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKyAgICAgIHByb2dyYW0g bWFpbgotKwotKyAgICAgIGVuZAotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK LStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19mNzdfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBh Y19jdl9wcm9nX2Y3N19nPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsK LSsJYWNfY3ZfcHJvZ19mNzdfZz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19mNzdfZyIgPiY1Ci0rJGFzX2Vj aG8gIiRhY19jdl9wcm9nX2Y3N19nIiA+JjY7IH0KLStpZiB0ZXN0ICIkYWNfdGVzdF9GRkxBR1Mi ID0gc2V0OyB0aGVuCi0rICBGRkxBR1M9JGFjX3NhdmVfRkZMQUdTCi0rZWxpZiB0ZXN0ICRhY19j dl9wcm9nX2Y3N19nID0geWVzOyB0aGVuCi0rICBpZiB0ZXN0ICJ4JGFjX2N2X2Y3N19jb21waWxl cl9nbnUiID0geHllczsgdGhlbgotKyAgICBGRkxBR1M9Ii1nIC1PMiIKLSsgIGVsc2UKLSsgICAg RkZMQUdTPSItZyIKLSsgIGZpCi0rZWxzZQotKyAgaWYgdGVzdCAieCRhY19jdl9mNzdfY29tcGls ZXJfZ251IiA9IHh5ZXM7IHRoZW4KLSsgICAgRkZMQUdTPSItTzIiCi0rICBlbHNlCi0rICAgIEZG TEFHUz0KLSsgIGZpCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXM7IHRo ZW4KLSsgIEc3Nz15ZXMKLStlbHNlCi0rICBHNzc9Ci0rZmkKLSthY19leHQ9YwotK2FjX2NwcD0n JENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQg JENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0r YWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKwotKwotKyMgQXV0b2Nv bmYgMi4xMydzIEFDX09CSkVYVCBhbmQgQUNfRVhFRVhUIG1hY3JvcyBvbmx5IHdvcmtzIGZvciBD IGNvbXBpbGVycyEKLSsjIGZpbmQgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBh cmd1bWVudHMKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgdGhlIG1heGlt dW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbWF4X2NtZF9sZW4rc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgICBpPTAKLSsgIHRl c3RzdHJpbmc9IkFCQ0QiCi0rCi0rICBjYXNlICRidWlsZF9vcyBpbgotKyAgbXNkb3NkamdwcCop Ci0rICAgICMgT24gREpHUFAsIHRoaXMgdGVzdCBjYW4gYmxvdyB1cCBwcmV0dHkgYmFkbHkgZHVl IHRvIHByb2JsZW1zIGluIGxpYmMKLSsgICAgIyAoYW55IHNpbmdsZSBhcmd1bWVudCBleGNlZWRp bmcgMjAwMCBieXRlcyBjYXVzZXMgYSBidWZmZXIgb3ZlcnJ1bgotKyAgICAjIGR1cmluZyBnbG9i IGV4cGFuc2lvbikuICBFdmVuIGlmIGl0IHdlcmUgZml4ZWQsIHRoZSByZXN1bHQgb2YgdGhpcwot KyAgICAjIGNoZWNrIHdvdWxkIGJlIGxhcmdlciB0aGFuIGl0IHNob3VsZCBiZS4KLSsgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPTEyMjg4OyAgICAjIDEySyBpcyBhYm91dCByaWdodAotKyAgICA7 OwotKwotKyAgZ251KikKLSsgICAgIyBVbmRlciBHTlUgSHVyZCwgdGhpcyB0ZXN0IGlzIG5vdCBy ZXF1aXJlZCBiZWNhdXNlIHRoZXJlIGlzCi0rICAgICMgbm8gbGltaXQgdG8gdGhlIGxlbmd0aCBv ZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgotKyAgICAjIExpYnRvb2wgd2lsbCBpbnRlcnByZXQg LTEgYXMgbm8gbGltaXQgd2hhdHNvZXZlcgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTE7 Ci0rICAgIDs7Ci0rCi0rICBjeWd3aW4qIHwgbWluZ3cqKQotKyAgICAjIE9uIFdpbjl4L01FLCB0 aGlzIHRlc3QgYmxvd3MgdXAgLS0gaXQgc3VjY2VlZHMsIGJ1dCB0YWtlcwotKyAgICAjIGFib3V0 IDUgbWludXRlcyBhcyB0aGUgdGVzdHN0cmluZyBncm93cyBleHBvbmVudGlhbGx5LgotKyAgICAj IFdvcnNlLCBzaW5jZSA5eC9NRSBhcmUgbm90IHByZS1lbXB0aXZlbHkgbXVsdGl0YXNraW5nLAot KyAgICAjIHlvdSBlbmQgdXAgd2l0aCBhICJmcm96ZW4iIGNvbXB1dGVyLCBldmVuIHRob3VnaCB3 aXRoIHBhdGllbmNlCi0rICAgICMgdGhlIHRlc3QgZXZlbnR1YWxseSBzdWNjZWVkcyAod2l0aCBh IG1heCBsaW5lIGxlbmd0aCBvZiAyNTZrKS4KLSsgICAgIyBJbnN0ZWFkLCBsZXQncyBqdXN0IHB1 bnQ6IHVzZSB0aGUgbWluaW11bSBsaW5lbGVuZ3RoIHJlcG9ydGVkIGJ5Ci0rICAgICMgYWxsIG9m IHRoZSBzdXBwb3J0ZWQgcGxhdGZvcm1zOiA4MTkyIChvbiBOVC8ySy9YUCkuCi0rICAgIGx0X2N2 X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwotKyAgYW1pZ2FvcyopCi0rICAgICMg T24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVyYWxseS4K LSsgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVzZSBhIG1pbmltdW0gbGluZSBsZW5ndGggb2Yg ODE5Mi4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7Ci0rICAgIDs7Ci0rCi0rICBu ZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiogfCBkcmFnb25mbHkqKQotKyAg ICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJTRCwgYXQgbGVhc3QuICBMaWtlbHkg ZnVydGhlci4KLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKLSsgICAgZWxp ZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsc2UKLSsgICAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1c2FibGUgZGVmYXVsdCBmb3IgYWxsIEJT RHMKLSsgICAgZmkKLSsgICAgIyBBbmQgYWRkIGEgc2FmZXR5IHpvbmUKLSsgICAgbHRfY3Zfc3lz X21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKLSsgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKLSsg ICAgOzsKLSsKLSsgIGludGVyaXgqKQotKyAgICAjIFdlIGtub3cgdGhlIHZhbHVlIDI2MjE0NCBh bmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25lIChsaWtlIEJTRCkKLSsgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPTE5NjYwOAotKyAgICA7OwotKwotKyAgb3NmKikKLSsgICAgIyBEci4g SGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmljIHJ1bm5p bmcgY29uZmlndXJlCi0rICAgICMgZHVlIHRvIHRoaXMgdGVzdCB3aGVuIGV4ZWNfZGlzYWJsZV9h cmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90Ci0rICAgICMgbmljZSB0byBjYXVzZSBr ZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxvb3AgYmVsb3cuCi0rICAgICMgRmlyc3Qg c2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTYz ODQKLSsgICAgIwotKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2NvbmZpZzsgdGhlbgotKyAgICAg IGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXRgIGlu Ci0rICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMSA7OwotKyAgICAgIGVzYWMK LSsgICAgZmkKLSsgICAgOzsKLSsgIHNjbzMuMnY1KikKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPTEwMjQwMAotKyAgICA7OwotKyAgc3lzdjUqIHwgc2NvNXY2KiB8IHN5c3Y0LjJ1dzIqKQot KyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9jb25mL2NmLmQvc3R1bmUgMj4vZGV2L251 bGxgCi0rICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNlZCAncy8uKlsgCV0vLydgCi0rICAgIGVsc2UK LSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgKLSsgICAgZmkKLSsgICAgOzsKLSsg ICopCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rl di9udWxsYAotKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgot KyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVu IFwvIDRgCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4 X2NtZF9sZW4gXCogM2AKLSsgICAgZWxzZQotKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05GSUdf U0hFTEwtL2Jpbi9zaH19Ci0rICAgICAgd2hpbGUgKHRlc3QgIlgiYCRTSEVMTCAkMCAtLWZhbGxi YWNrLWVjaG8gIlgkdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKLSsJICAgICAgID0gIlhYJHRl c3RzdHJpbmciKSA+L2Rldi9udWxsIDI+JjEgJiYKLSsJICAgICAgbmV3X3Jlc3VsdD1gZXhwciAi WCR0ZXN0c3RyaW5nIiA6ICIuKiIgMj4mMWAgJiYKLSsJICAgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPSRuZXdfcmVzdWx0ICYmCi0rCSAgICAgIHRlc3QgJGkgIT0gMTcgIyAxLzIgTUIgc2hvdWxk IGJlIGVub3VnaAotKyAgICAgIGRvCi0rICAgICAgICBpPWBleHByICRpICsgMWAKLSsgICAgICAg IHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZwotKyAgICAgIGRvbmUKLSsgICAgICB0 ZXN0c3RyaW5nPQotKyAgICAgICMgQWRkIGEgc2lnbmlmaWNhbnQgc2FmZXR5IGZhY3RvciBiZWNh dXNlIEMrKyBjb21waWxlcnMgY2FuIHRhY2sgb24gbWFzc2l2ZQotKyAgICAgICMgYW1vdW50cyBv ZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZSBsaW5rZXIu Ci0rICAgICAgIyBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIgaXMgYSB1c2FibGUgdmFsdWUuCi0r ICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4g XC8gMmAKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsKLStmaQotKwotK2lmIHRlc3QgLW4g JGx0X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iID4mNQotKyRhc19lY2hvICIkbHRf Y3Zfc3lzX21heF9jbWRfbGVuIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBub25lIiA+JjUKLSskYXNfZWNobyAibm9uZSIgPiY2OyB9Ci0rZmkK LSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIGZvciBjb21tYW5kIHRvIGdyYWIgdGhlIHJhdyBzeW1i b2wgbmFtZSBmb2xsb3dlZCBieSBDIHN5bWJvbCBmcm9tIG5tLgotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQgZnJvbSAkY29t cGlsZXIgb2JqZWN0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBjb21tYW5kIHRvIHBhcnNl ICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsjIFRoZXNlIGFyZSBzYW5lIGRlZmF1 bHRzIHRoYXQgd29yayBvbiBhdCBsZWFzdCBhIGZldyBvbGQgc3lzdGVtcy4KLSsjIFtUaGV5IGNv bWUgZnJvbSBVbHRyaXguICBXaGF0IGNvdWxkIGJlIG9sZGVyIHRoYW4gVWx0cml4PyEhIDspXQot KwotKyMgQ2hhcmFjdGVyIGNsYXNzIGRlc2NyaWJpbmcgTk0gZ2xvYmFsIHN5bWJvbCBjb2Rlcy4K LStzeW1jb2RlPSdbQkNERUdSU1RdJwotKwotKyMgUmVnZXhwIHRvIG1hdGNoIHN5bWJvbHMgdGhh dCBjYW4gYmUgYWNjZXNzZWQgZGlyZWN0bHkgZnJvbSBDLgotK3N5bXBhdD0nXChbX0EtWmEtel1b X0EtWmEtejAtOV0qXCknCi0rCi0rIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5l IGludG8gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbgotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NkZWNsPSJzZWQgLW4gLWUgJ3MvXi4gLiogXCguKlwpJC9leHRlcm4gaW50IFwxOy9wJyIKLSsK LSsjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBzeW1ib2wgbmFtZSBh bmQgc3ltYm9sIGFkZHJlc3MKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRk cmVzcz0ic2VkIC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1xcXCJcMVxcXCIsIChsdF9wdHIp IDB9LC9wJyAtZSAncy9eJHN5bWNvZGUgXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJcMlwiLCAo bHRfcHRyKSBcJlwyfSwvcCciCi0rCi0rIyBEZWZpbmUgc3lzdGVtLXNwZWNpZmljIHZhcmlhYmxl cy4KLStjYXNlICRob3N0X29zIGluCi0rYWl4KikKLSsgIHN5bWNvZGU9J1tCQ0RUXScKLSsgIDs7 Ci0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgc3ltY29kZT0nW0FCQ0RHSVNUV10nCi0r ICA7OwotK2hwdXgqKSAjIEl0cyBsaW5rZXIgZGlzdGluZ3Vpc2hlcyBkYXRhIGZyb20gY29kZSBz eW1ib2xzCi0rICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAgICBzeW1jb2Rl PSdbQUJDREVHUlNUXScKLSsgIGZpCi0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVj bD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQvZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9e JHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgotKyAgbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFteIF0qXCkg JC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFteIF0q XCkgXChbXiBdKlwpJC8gIHtcIlwyXCIsIChsdF9wdHIpIFwmXDJ9LC9wJyIKLSsgIDs7Ci0rbGlu dXgqIHwgaypic2QqLWdudSkKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0r ICAgIHN5bWNvZGU9J1tBQkNER0lSU1RXXScKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf dG9fY2RlY2w9InNlZCAtbiAtZSAncy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsvcCcg LWUgJ3MvXiRzeW1jb2RlKiAuKiBcKC4qXCkkL2V4dGVybiBjaGFyIFwxOy9wJyIKLSsgICAgbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBc KFteIF0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2Rl KiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcIlwyXCIsIChsdF9wdHIpIFwmXDJ9LC9wJyIKLSsg IGZpCi0rICA7OwotK2lyaXgqIHwgbm9uc3RvcHV4KikKLSsgIHN5bWNvZGU9J1tCQ0RFR1JTVF0n Ci0rICA7OwotK29zZiopCi0rICBzeW1jb2RlPSdbQkNERUdRUlNUXScKLSsgIDs7Ci0rc29sYXJp cyopCi0rICBzeW1jb2RlPSdbQkRSVF0nCi0rICA7OwotK3NjbzMuMnY1KikKLSsgIHN5bWNvZGU9 J1tEVF0nCi0rICA7OwotK3N5c3Y0LjJ1dzIqKQotKyAgc3ltY29kZT0nW0RUXScKLSsgIDs7Ci0r c3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKLSsgIHN5bWNvZGU9J1tB QkRUXScKLSsgIDs7Ci0rc3lzdjQpCi0rICBzeW1jb2RlPSdbREZOU1RVXScKLSsgIDs7Ci0rZXNh YwotKwotKyMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBjaGFpbgotK29wdF9jcj0KLStjYXNl ICRidWlsZF9vcyBpbgotK21pbmd3KikKLSsgIG9wdF9jcj1gZWNobyAneFx7MCwxXH0nIHwgdHIg eCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAotKyAgOzsKLStlc2FjCi0rCi0rIyBJZiB3 ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCi0r Y2FzZSBgJE5NIC1WIDI+JjFgIGluCi0rKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rICBzeW1jb2Rl PSdbQUJDREdJUlNUV10nIDs7Ci0rZXNhYwotKwotKyMgVHJ5IHdpdGhvdXQgYSBwcmVmaXggdW5k ZXJjb3JlLCB0aGVuIHdpdGggaXQuCi0rZm9yIGFjX3N5bXByZnggaW4gIiIgIl8iOyBkbwotKwot KyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0LCBhbmQgc3ltcHJmeCBpbnRvIGEgcmF3IHN5 bWJvbCBhbmQgYSBDIHN5bWJvbC4KLSsgIHN5bXhmcm09IlxcMSAkYWNfc3ltcHJmeFxcMiBcXDIi Ci0rCi0rICAjIFdyaXRlIHRoZSByYXcgYW5kIEMgaWRlbnRpZmllcnMuCi0rICBsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF9waXBlPSJzZWQgLW4gLWUgJ3MvXi4qWyAJXVwoJHN5bWNvZGUkc3ltY29k ZSpcKVsgCV1bIAldKiRhY19zeW1wcmZ4JHN5bXBhdCRvcHRfY3IkLyRzeW14ZnJtL3AnIgotKwot KyAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCi0rICBwaXBl X3dvcmtzPW5vCi0rCi0rICBybSAtZiBjb25mdGVzdCoKLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19l eHQgPDxFT0YKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLStj aGFyIG5tX3Rlc3RfdmFyOwotK3ZvaWQgbm1fdGVzdF9mdW5jKCl7fQotKyNpZmRlZiBfX2NwbHVz cGx1cwotK30KLSsjZW5kaWYKLStpbnQgbWFpbigpe25tX3Rlc3RfdmFyPSdhJztubV90ZXN0X2Z1 bmMoKTtyZXR1cm4oMCk7fQotK0VPRgotKwotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQot KyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSsgICAgIyBOb3cgdHJ5 IHRvIGdyYWIgdGhlIHN5bWJvbHMuCi0rICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCi0rICAgIGlmIHsg KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwg JGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0XCIiKSA+JjUKLSsgIChldmFs ICROTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBl IFw+ICRubGlzdCkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg dGVzdCAtcyAiJG5saXN0IjsgdGhlbgotKyAgICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5 aW5nIHRoZSBvdXRwdXQuCi0rICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0 IlQ7IHRoZW4KLSsJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCi0rICAgICAgZWxzZQotKwlybSAt ZiAiJG5saXN0IlQKLSsgICAgICBmaQotKwotKyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25h Z2dlZCBhbGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4KLSsgICAgICBpZiBncmVwICcgbm1fdGVzdF92 YXIkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCWlmIGdyZXAgJyBubV90ZXN0X2Z1bmMk JyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgY2F0IDw8RU9GID4gY29uZnRlc3QuJGFj X2V4dAotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIgewotKyNlbmRpZgotKwotK0VP RgotKwkgICMgTm93IGdlbmVyYXRlIHRoZSBzeW1ib2wgZmlsZS4KLSsJICBldmFsICIkbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxpc3QiIHwgZ3JlcCAtdiBtYWluID4+ IGNvbmZ0ZXN0LiRhY19leHQnCi0rCi0rCSAgY2F0IDw8RU9GID4+IGNvbmZ0ZXN0LiRhY19leHQK LSsjaWYgZGVmaW5lZCAoX19TVERDX18pICYmIF9fU1REQ19fCi0rIyBkZWZpbmUgbHRfcHRyX3Qg dm9pZCAqCi0rI2Vsc2UKLSsjIGRlZmluZSBsdF9wdHJfdCBjaGFyICoKLSsjIGRlZmluZSBjb25z dAotKyNlbmRpZgotKwotKy8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFuZCBz eW1ib2xzLiAqLwotK2NvbnN0IHN0cnVjdCB7Ci0rICBjb25zdCBjaGFyICpuYW1lOwotKyAgbHRf cHRyX3QgYWRkcmVzczsKLSt9Ci0rbHRfcHJlbG9hZGVkX3N5bWJvbHNbXSA9Ci0rewotK0VPRgot KwkgICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBcKC4qXCkkLyAge1wiXDJcIiwg KGx0X3B0cl90KSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgZ3JlcCAtdiBtYWluID4+IGNvbmZ0ZXN0 LiRhY19leHQKLSsJICBjYXQgPDxcRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIHswLCAobHRf cHRyX3QpIDB9Ci0rfTsKLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmCi0rRU9G Ci0rCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxlcy4KLSsJICBtdiBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKLSsJICBsdF9zYXZlX0xJQlM9IiRMSUJTIgot KwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKwkgIExJQlM9ImNvbmZ0c3RtLiRhY19vYmpl eHQiCi0rCSAgQ0ZMQUdTPSIkQ0ZMQUdTJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFn IgotKwkgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4m NQotKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4KLSsJICAgIHBpcGVf d29ya3M9eWVzCi0rCSAgZmkKLSsJICBMSUJTPSIkbHRfc2F2ZV9MSUJTIgotKwkgIENGTEFHUz0i JGx0X3NhdmVfQ0ZMQUdTIgotKwllbHNlCi0rCSAgZWNobyAiY2Fubm90IGZpbmQgbm1fdGVzdF9m dW5jIGluICRubGlzdCIgPiY1Ci0rCWZpCi0rICAgICAgZWxzZQotKwllY2hvICJjYW5ub3QgZmlu ZCBubV90ZXN0X3ZhciBpbiAkbmxpc3QiID4mNQotKyAgICAgIGZpCi0rICAgIGVsc2UKLSsgICAg ICBlY2hvICJjYW5ub3QgcnVuICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JjUKLSsg ICAgZmkKLSsgIGVsc2UKLSsgICAgZWNobyAiJHByb2duYW1lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLSsgICAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBmaQotKyAgcm0gLXJmIGNv bmZ0ZXN0KiBjb25mdHN0KgotKwotKyAgIyBEbyBub3QgdXNlIHRoZSBnbG9iYWxfc3ltYm9sX3Bp cGUgdW5sZXNzIGl0IHdvcmtzLgotKyAgaWYgdGVzdCAiJHBpcGVfd29ya3MiID0geWVzOyB0aGVu Ci0rICAgIGJyZWFrCi0rICBlbHNlCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9 Ci0rICBmaQotK2RvbmUKLSsKLStmaQotKwotK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF9waXBlIjsgdGhlbgotKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9 Ci0rZmkKLStpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSRsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IGZhaWxlZCIgPiY1Ci0rJGFzX2VjaG8gImZhaWxlZCIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogb2siID4mNQotKyRh c19lY2hvICJvayIgPiY2OyB9Ci0rZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIG9iamRpciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG9iamRp ci4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3Zfb2JqZGlyK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIHJtIC1mIC5saWJzIDI+ L2Rldi9udWxsCi0rbWtkaXIgLmxpYnMgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC5saWJzOyB0 aGVuCi0rICBsdF9jdl9vYmpkaXI9LmxpYnMKLStlbHNlCi0rICAjIE1TLURPUyBkb2VzIG5vdCBh bGxvdyBmaWxlbmFtZXMgdGhhdCBiZWdpbiB3aXRoIGEgZG90LgotKyAgbHRfY3Zfb2JqZGlyPV9s aWJzCi0rZmkKLStybWRpciAubGlicyAyPi9kZXYvbnVsbAotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X29iamRpciIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9j dl9vYmpkaXIiID4mNjsgfQotK29iamRpcj0kbHRfY3Zfb2JqZGlyCi0rCi0rCi0rCi0rCi0rCi0r Y2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgIyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVt cyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBzb21lCi0rICAjIHJlYXNvbiwg aWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJv YmxlbXMKLSsgICMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KLSsgIGlmIHRlc3QgIlgke0NP TExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAgICBDT0xMRUNUX05BTUVTPQotKyAg ICBleHBvcnQgQ09MTEVDVF9OQU1FUwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotKyMgU2VkIHN1 YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNo aWZpZXMKLSsjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91 YmxlLXF1b3RlZCBzdHJpbmdzLgotK1hzZWQ9J3NlZCAtZSAxcy9eWC8vJwotK3NlZF9xdW90ZV9z dWJzdD0ncy9cKFtcXCJcXGAkXFxcXF1cKS9cXFwxL2cnCi0rCi0rIyBTYW1lIGFzIGFib3ZlLCBi dXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCi0rZG91YmxlX3F1b3RlX3N1YnN0 PSdzL1woW1xcIlxcYFxcXFxdXCkvXFxcMS9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBk ZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaGVsbCB2YXJpYWJsZSBpbiBhCi0rIyBkb3Vi bGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxc XFxcXFxcJC9cXFxcXFwkL2cnCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGF2b2lkIGFjY2lk ZW50YWwgZ2xvYmJpbmcgaW4gZXZhbGVkIGV4cHJlc3Npb25zCi0rbm9fZ2xvYl9zdWJzdD0ncy9c Ki9cXFwqL2cnCi0rCi0rIyBDb25zdGFudHM6Ci0rcm09InJtIC1mIgotKwotKyMgR2xvYmFsIHZh cmlhYmxlczoKLStkZWZhdWx0X29maWxlPWxpYnRvb2wKLStjYW5fYnVpbGRfc2hhcmVkPXllcwot KwotKyMgQWxsIGtub3duIGxpbmtlcnMgcmVxdWlyZSBhIGAuYScgYXJjaGl2ZSBmb3Igc3RhdGlj IGxpbmtpbmcgKGV4Y2VwdCBNU1ZDLAotKyMgd2hpY2ggbmVlZHMgJy5saWInKS4KLStsaWJleHQ9 YQotK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgotK29maWxlPSIkZGVmYXVsdF9vZmls ZSIKLSt3aXRoX2dudV9sZD0iJGx0X2N2X3Byb2dfZ251X2xkIgotKwotK2lmIHRlc3QgLW4gIiRh Y190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHth Y190b29sX3ByZWZpeH1hciIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Ci0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9YXI7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3By b2dfQVIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgaWYgdGVzdCAtbiAiJEFSIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19BUj0iJEFSIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZT PSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0FSPSIk e2FjX3Rvb2xfcHJlZml4fWFyIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5k ICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQot K2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStBUj0kYWNfY3Zf cHJvZ19BUgotK2lmIHRlc3QgLW4gIiRBUiI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRBUiIgPiY1Ci0rJGFzX2VjaG8gIiRBUiIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hv ICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0FS IjsgdGhlbgotKyAgYWNfY3RfQVI9JEFSCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2Yg ImFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkg YXI7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQVIrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFj X2N0X0FSIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9BUj0iJGFjX2N0X0FSIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0FSPSJh ciIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lG Uz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQVI9JGFjX2N2X3Byb2dfYWNfY3Rf QVIKLStpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQVIiID4mNQotKyRhc19lY2hvICIkYWNfY3RfQVIiID4m NjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0FS IiA9IHg7IHRoZW4KLSsgICAgQVI9ImZhbHNlIgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19j b21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJu ZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBBUj0kYWNfY3RfQVIKLSsgIGZpCi0rZWxzZQotKyAgQVI9 IiRhY19jdl9wcm9nX0FSIgotK2ZpCi0rCi0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4Ijsg dGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXJh bmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15 ICR7YWNfdG9vbF9wcmVmaXh9cmFubGliOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX1JBTkxJ QitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19SQU5MSUI9IiRS QU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2Rv Ci0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgot KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0r ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3By b2dfUkFOTElCPSIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIKLSsgICAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAg YnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQot K2ZpCi0rUkFOTElCPSRhY19jdl9wcm9nX1JBTkxJQgotK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0 aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUkFOTElCIiA+JjUK LSskYXNfZWNobyAiJFJBTkxJQiIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsK LSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1JBTkxJQiI7IHRoZW4KLSsgIGFjX2N0 X1JBTkxJQj0kUkFOTElCCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxpYiIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHJhbmxp YjsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAi JGFjX2N0X1JBTkxJQiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSIkYWNfY3Rf UkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStk bwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K LSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwot KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9w cm9nX2FjX2N0X1JBTkxJQj0icmFubGliIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0r ICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19j dF9SQU5MSUI9JGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCCi0raWYgdGVzdCAtbiAiJGFjX2N0X1JB TkxJQiI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19j dF9SQU5MSUIiID4mNQotKyRhc19lY2hvICIkYWNfY3RfUkFOTElCIiA+JjY7IH0KLStlbHNlCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8g Im5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9SQU5MSUIiID0geDsgdGhl bgotKyAgICBSQU5MSUI9IjoiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzok YWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBX QVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBw cmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsK LStlc2FjCi0rICAgIFJBTkxJQj0kYWNfY3RfUkFOTElCCi0rICBmaQotK2Vsc2UKLSsgIFJBTkxJ Qj0iJGFjX2N2X3Byb2dfUkFOTElCIgotK2ZpCi0rCi0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJl Zml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJl Zml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQg ZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19T VFJJUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX1NUUklQPSIk U1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2Rv Ci0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgot KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0r ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3By b2dfU1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJy ZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStm aQotK1NUUklQPSRhY19jdl9wcm9nX1NUUklQCi0raWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFNUUklQIiA+JjUKLSskYXNf ZWNobyAiJFNUUklQIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2Zp Ci0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0aGVuCi0rICBhY19jdF9TVFJJUD0k U1RSSVAKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBzdHJpcDsgYWNfd29yZD0k MgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAi OyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRo ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3Nh dmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9 InN0cmlwIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25l Ci0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9TVFJJUD0kYWNfY3ZfcHJv Z19hY19jdF9TVFJJUAotK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1Ci0rJGFzX2Vj aG8gIiRhY19jdF9TVFJJUCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsg IGlmIHRlc3QgIngkYWNfY3RfU1RSSVAiID0geDsgdGhlbgotKyAgICBTVFJJUD0iOiIKLSsgIGVs c2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczop Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xz IG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgU1RSSVA9JGFjX2N0 X1NUUklQCi0rICBmaQotK2Vsc2UKLSsgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKLStmaQot KwotKwotK29sZF9DQz0iJENDIgotK29sZF9DRkxBR1M9IiRDRkxBR1MiCi0rCi0rIyBTZXQgc2Fu ZSBkZWZhdWx0cyBmb3IgdmFyaW91cyB2YXJpYWJsZXMKLSt0ZXN0IC16ICIkQVIiICYmIEFSPWFy Ci0rdGVzdCAteiAiJEFSX0ZMQUdTIiAmJiBBUl9GTEFHUz1jcnUKLSt0ZXN0IC16ICIkQVMiICYm IEFTPWFzCi0rdGVzdCAteiAiJENDIiAmJiBDQz1jYwotK3Rlc3QgLXogIiRMVENDIiAmJiBMVEND PSRDQwotK3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxBR1M9JENGTEFHUwotK3Rlc3QgLXog IiRETExUT09MIiAmJiBETExUT09MPWRsbHRvb2wKLSt0ZXN0IC16ICIkTEQiICYmIExEPWxkCi0r dGVzdCAteiAiJExOX1MiICYmIExOX1M9ImxuIC1zIgotK3Rlc3QgLXogIiRNQUdJQ19DTUQiICYm IE1BR0lDX0NNRD1maWxlCi0rdGVzdCAteiAiJE5NIiAmJiBOTT1ubQotK3Rlc3QgLXogIiRTRUQi ICYmIFNFRD1zZWQKLSt0ZXN0IC16ICIkT0JKRFVNUCIgJiYgT0JKRFVNUD1vYmpkdW1wCi0rdGVz dCAteiAiJFJBTkxJQiIgJiYgUkFOTElCPToKLSt0ZXN0IC16ICIkU1RSSVAiICYmIFNUUklQPToK LSt0ZXN0IC16ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bwotKwotKyMgRGV0ZXJtaW5lIGNv bW1hbmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgotK29sZF9hcmNoaXZl X2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJwotK29sZF9wb3N0aW5zdGFsbF9j bWRzPSdjaG1vZCA2NDQgJG9sZGxpYicKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQotKwotK2lm IHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICBjYXNlICRob3N0X29zIGluCi0rICBvcGVuYnNk KikKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJB TkxJQiAtdCBcJG9sZGxpYiIKLSsgICAgOzsKLSsgICopCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9j bWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCi0rICAgIDs7Ci0r ICBlc2FjCi0rICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBc JG9sZGxpYiIKLStmaQotKwotK2ZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2Fz ZSAkY2NfdGVtcCBpbgotKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpb XFwvXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpb XFwvXXB1cmlmeSApIDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwot K2RvbmUKLStjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8l JScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKLSsKLSsKLSsjIE9ubHkgcGVyZm9ybSB0aGUgY2hl Y2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVjayBtZXRob2QgcmVxdWlyZXMgaXQKLStjYXNlICRkZXBs aWJzX2NoZWNrX21ldGhvZCBpbgotK2ZpbGVfbWFnaWMqKQotKyAgaWYgdGVzdCAiJGZpbGVfbWFn aWNfY21kIiA9ICckTUFHSUNfQ01EJzsgdGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9ZmlsZSIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9ZmlsZS4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2FzZSAkTUFHSUNfQ01EIGluCi0rW1xcLypd IHwgID86W1xcL10qKQotKyAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsqKQotKyAg bHRfc2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCi0rICBsdF9zYXZlX2lmcz0iJElGUyI7IElG Uz0kUEFUSF9TRVBBUkFUT1IKLSsgIGFjX2R1bW15PSIvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQ QVRIIgotKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0rICAgIElGUz0iJGx0X3NhdmVf aWZzIgotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICBpZiB0ZXN0IC1m ICRhY19kaXIvJHthY190b29sX3ByZWZpeH1maWxlOyB0aGVuCi0rICAgICAgbHRfY3ZfcGF0aF9N QUdJQ19DTUQ9IiRhY19kaXIvJHthY190b29sX3ByZWZpeH1maWxlIgotKyAgICAgIGlmIHRlc3Qg LW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KLSsJY2FzZSAkZGVwbGlic19jaGVja19t ZXRob2QgaW4KLSsJImZpbGVfbWFnaWMgIiopCi0rCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAi JGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwoLipcKSJgCi0rCSAgTUFHSUNf Q01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0rCSAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQg XCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAotKwkgICAgJEVHUkVQICIkZmls ZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIDoKLSsJICBlbHNlCi0rCSAg ICBjYXQgPDxFT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgY29tbWFuZCBsaWJ0b29sIHVz ZXMgdG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCi0rKioqICRmaWxlX21hZ2ljX2NtZCwgcHJv ZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXplLgotKyoqKiBUaGUgcmVz dWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVkIGxpYnJhcmll cwotKyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgbGlidG9v bCBsaWJyYXJpZXMgdGhhdAotKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmllcywgYnV0IHBy b2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAotKyoqKiBsaWJyYXJpZXMgd2lsbCB3b3Jr IHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UKLSsqKiogbWF5 IHdhbnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lzdGVtIG1hbmFnZXIgYW5kL29y IHRvCi0rKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKLSsKLStFT0YKLSsJICBmaSA7OwotKwllc2Fj Ci0rICAgICAgZmkKLSsgICAgICBicmVhawotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRf c2F2ZV9pZnMiCi0rICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKLSsgIDs7Ci0rZXNh YwotK2ZpCi0rCi0rTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0raWYgdGVzdCAt biAiJE1BR0lDX0NNRCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRNQUdJQ19DTUQiID4mNQotKyRhc19lY2hvICIkTUFHSUNfQ01EIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLStmaQotKwotK2lmIHRlc3QgLXogIiRsdF9jdl9wYXRoX01BR0lDX0NN RCI7IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBmaWxlIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgZmlsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcGF0 aF9NQUdJQ19DTUQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgY2FzZSAkTUFHSUNfQ01EIGluCi0rW1xcLypdIHwgID86W1xcL10qKQot KyAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsqKQotKyAgbHRfc2F2ZV9NQUdJQ19D TUQ9IiRNQUdJQ19DTUQiCi0rICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFU T1IKLSsgIGFjX2R1bW15PSIvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIIgotKyAgZm9yIGFj X2RpciBpbiAkYWNfZHVtbXk7IGRvCi0rICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICB0ZXN0 IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvZmlsZTsg dGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyL2ZpbGUiCi0rICAgICAg aWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgotKwljYXNlICRkZXBsaWJz X2NoZWNrX21ldGhvZCBpbgotKwkiZmlsZV9tYWdpYyAiKikKLSsJICBmaWxlX21hZ2ljX3JlZ2V4 PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAKLSsJ ICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLSsJICBpZiBldmFsICRmaWxlX21h Z2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8Ci0rCSAgICAkRUdS RVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgOgotKwkgIGVs c2UKLSsJICAgIGNhdCA8PEVPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxp YnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKLSsqKiogJGZpbGVfbWFnaWNf Y21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCi0rKioq IFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQg bGlicmFyaWVzCi0rKioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBv ZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0Ci0rKioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVz LCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0b29sCi0rKioqIGxpYnJhcmllcyB3 aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQot KyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdl ciBhbmQvb3IgdG8KLSsqKiogYnVnLWxpYnRvb2xAZ251Lm9yZwotKwotK0VPRgotKwkgIGZpIDs7 Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0rICBJ RlM9IiRsdF9zYXZlX2lmcyIKLSsgIE1BR0lDX0NNRD0iJGx0X3NhdmVfTUFHSUNfQ01EIgotKyAg OzsKLStlc2FjCi0rZmkKLSsKLStNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLStp ZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1Ci0rJGFzX2VjaG8gIiRNQUdJQ19DTUQiID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBlbHNlCi0rICAgIE1BR0lDX0NNRD06 Ci0rICBmaQotK2ZpCi0rCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rCi0rICBjYXNlICRob3N0 X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbiopCi0rICAgIGlmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190 b29sX3ByZWZpeH1kc3ltdXRpbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWw7IGFjX3dvcmQ9JDIKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfRFNZTVVUSUwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJERTWU1VVElMIjsgdGhlbgotKyAg YWNfY3ZfcHJvZ19EU1lNVVRJTD0iJERTWU1VVElMIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0RTWU1VVElMPSIke2FjX3Rvb2xfcHJlZml4fWRz eW11dGlsIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25l Ci0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStEU1lNVVRJTD0kYWNfY3ZfcHJvZ19E U1lNVVRJTAotK2lmIHRlc3QgLW4gIiREU1lNVVRJTCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICREU1lNVVRJTCIgPiY1Ci0rJGFzX2VjaG8gIiREU1lNVVRJ TCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3Qg LXogIiRhY19jdl9wcm9nX0RTWU1VVElMIjsgdGhlbgotKyAgYWNfY3RfRFNZTVVUSUw9JERTWU1V VElMCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRzeW11dGlsIiwgc28gaXQgY2Fu IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgZHN5bXV0aWw7IGFjX3dv cmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0 X0RTWU1VVElMIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTD0iJGFjX2N0X0RT WU1VVElMIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStk bwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K LSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwot KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9w cm9nX2FjX2N0X0RTWU1VVElMPSJkc3ltdXRpbCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsg MgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0r YWNfY3RfRFNZTVVUSUw9JGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUwKLStpZiB0ZXN0IC1uICIk YWNfY3RfRFNZTVVUSUwiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkYWNfY3RfRFNZTVVUSUwiID4mNQotKyRhc19lY2hvICIkYWNfY3RfRFNZTVVUSUwiID4m NjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0RT WU1VVElMIiA9IHg7IHRoZW4KLSsgICAgRFNZTVVUSUw9IjoiCi0rICBlbHNlCi0rICAgIGNhc2Ug JGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQg d2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5n IGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190 b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIERTWU1VVElMPSRhY19jdF9EU1lNVVRJTAot KyAgZmkKLStlbHNlCi0rICBEU1lNVVRJTD0iJGFjX2N2X3Byb2dfRFNZTVVUSUwiCi0rZmkKLSsK LSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fW5tZWRpdCIsIHNvIGl0IGNhbiBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bm1l ZGl0OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX05NRURJVCtzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkTk1F RElUIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19OTUVESVQ9IiROTUVESVQiICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZT Ci0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfTk1FRElUPSIke2FjX3Rvb2xf cHJlZml4fW5tZWRpdCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25l Ci0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rTk1FRElUPSRhY19jdl9w cm9nX05NRURJVAotK2lmIHRlc3QgLW4gIiROTUVESVQiOyB0aGVuCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTk1FRElUIiA+JjUKLSskYXNfZWNobyAiJE5NRURJVCIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXog IiRhY19jdl9wcm9nX05NRURJVCI7IHRoZW4KLSsgIGFjX2N0X05NRURJVD0kTk1FRElUCi0rICAj IEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm5tZWRpdCIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG5tZWRpdDsgYWNfd29yZD0kMgotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNf Y3ZfcHJvZ19hY19jdF9OTUVESVQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X05NRURJVCI7IHRoZW4K LSsgIGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUPSIkYWNfY3RfTk1FRElUIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lG UwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X05NRURJVD0ibm1l ZGl0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0r SUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9OTUVESVQ9JGFjX2N2X3Byb2df YWNfY3RfTk1FRElUCi0raWYgdGVzdCAtbiAiJGFjX2N0X05NRURJVCI7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9OTUVESVQiID4mNQotKyRhc19l Y2hvICIkYWNfY3RfTk1FRElUIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwot KyAgaWYgdGVzdCAieCRhY19jdF9OTUVESVQiID0geDsgdGhlbgotKyAgICBOTUVESVQ9IjoiCi0r ICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5 ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJp cGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIE5NRURJVD0k YWNfY3RfTk1FRElUCi0rICBmaQotK2Vsc2UKLSsgIE5NRURJVD0iJGFjX2N2X3Byb2dfTk1FRElU IgotK2ZpCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 bHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPW5v Ci0rICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgotKyAgICMgQnkg ZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBvdmVy cmlkZQotKyAgICMgYnkgZWl0aGVyIHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExU X01VTFRJX01PRFVMRQotKyAgICMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBh ZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKLSsgICAjIGxpbmsgZmxhZ3MuCi0rICAgZWNobyAi aW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKLSsgICAkTFRDQyAkTFRDRkxB R1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAotKyAgICAgLWR5bmFtaWNsaWIgJHt3 bH0tc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jCi0rICAgaWYgdGVzdCAtZiBsaWJjb25mdGVzdC5k eWxpYjsgdGhlbgotKyAgICAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKLSsgICAgIHJt IC1yZiBsaWJjb25mdGVzdC5keWxpYioKLSsgICBmaQotKyAgIHJtIGNvbmZ0ZXN0LmMKLSsgICAg ICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2Fw cGxlX2NjX3NpbmdsZV9tb2QiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xl X21vZCIgPiY2OyB9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZyIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZsYWcuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0ICIke2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCtzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9s ZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KLSsgICAgICBzYXZlX0xERkxBR1M9JExERkxBR1MK LSsgICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KLSsgICAgICBMREZMQUdTPSIkTERG TEFHUyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0iCi0rICAgICAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgp Ci0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEK LSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwK LSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkg JGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgbHRfY3Zf bGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsJbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vCi0rZmkKLSsKLSty bSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKwot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2xkX2V4cG9y dGVkX3N5bWJvbHNfbGlzdCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1i b2xzX2xpc3QiID4mNjsgfQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIHJoYXBzb2R5KiB8 IGRhcndpbjEuWzAxMjNdKQotKyAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11 bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsgICAgZGFyd2luMS4qKQotKyAgICAgX2x0X2Rh cl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAk e3dsfXN1cHByZXNzJyA7OwotKyAgICBkYXJ3aW4qKQotKyAgICAgICMgaWYgcnVubmluZyBvbiAx MC41IG9yIGxhdGVyLCB0aGUgZGVwbG95bWVudCB0YXJnZXQgZGVmYXVsdHMKLSsgICAgICAjIHRv IHRoZSBPUyB2ZXJzaW9uLCBpZiBvbiB4ODYsIGFuZCAxMC40LCB0aGUgZGVwbG95bWVudAotKyAg ICAgICMgdGFyZ2V0IGRlZmF1bHRzIHRvIDEwLjQuIERvbid0IHlvdSBsb3ZlIGl0PwotKyAgICAg IGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0sJGhvc3QgaW4KLSsgICAxMC4w LCo4NiotZGFyd2luOCp8MTAuMCwqLWRhcndpbls5MV0qKQotKyAgICAgX2x0X2Rhcl9hbGxvd191 bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKyAgIDEw LlswMTJdKikKLSsgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVz cGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsgICAxMC4qKQotKyAgICAg X2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9v a3VwJyA7OwotKyAgICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgICAgaWYgdGVzdCAiJGx0 X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID0gInllcyI7IHRoZW4KLSsgICAgICBfbHRfZGFyX3Np bmdsZV9tb2Q9JyRzaW5nbGVfbW9kdWxlJwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICIkbHRfY3Zf bGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgX2x0X2Rhcl9l eHBvcnRfc3ltcz0nICR7d2x9LWV4cG9ydGVkX3N5bWJvbHNfbGlzdCwkb3V0cHV0X29iamRpci8k e2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltJwotKyAgICBlbHNlCi0rICAgICAgX2x0X2Rhcl9leHBv cnRfc3ltcz0ifiROTUVESVQgLXMgXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMu ZXhwc3ltIFwke2xpYn0iCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgIiREU1lNVVRJTCIgIT0gIjoi OyB0aGVuCi0rICAgICAgX2x0X2RzeW11dGlsPSJ+JERTWU1VVElMIFwkbGliIHx8IDoiCi0rICAg IGVsc2UKLSsgICAgICBfbHRfZHN5bXV0aWw9Ci0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0r Ci0rCi0rZW5hYmxlX2Rsb3Blbj1ubwotK2VuYWJsZV93aW4zMl9kbGw9bm8KLSsKLSsjIENoZWNr IHdoZXRoZXIgLS1lbmFibGUtbGlidG9vbC1sb2NrIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2Vu YWJsZV9saWJ0b29sX2xvY2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxl X2xpYnRvb2xfbG9jazsKLStmaQotKwotK3Rlc3QgIngkZW5hYmxlX2xpYnRvb2xfbG9jayIgIT0g eG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9eWVzCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0t d2l0aC1waWMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9waWMrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgIHdpdGh2YWw9JHdpdGhfcGljOyBwaWNfbW9kZT0iJHdpdGh2YWwiCi0rZWxzZQotKyAg cGljX21vZGU9ZGVmYXVsdAotK2ZpCi0rCi0rdGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNfbW9k ZT1kZWZhdWx0Ci0rCi0rIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0 aGUgbGlidG9vbCBzY3JpcHQKLSt0YWduYW1lPQotK2x0X3NhdmVfQ0M9IiRDQyIKLSthY19leHQ9 YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVz dCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKwot KyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291cmNlcy4KLSthY19leHQ9Ywot KwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDIHRlc3Qgc291cmNlcy4K LStvYmpleHQ9bwotK29iamV4dD0kb2JqZXh0Ci0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2lt cGxlIGNvbXBpbGUgdGVzdHMKLStsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21l X3ZhcmlhYmxlID0gMDsiCi0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVz dHMKLStsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J2ludCBtYWluKCl7cmV0dXJuKDApO30nCi0r Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KLStMVENDPSR7 TFRDQy0iJENDIn0KLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQs IHVzZSBDRkxBR1MuCi0rTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9Ci0rCi0rIyBBbGxv dyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLStjb21waWxlcj0kQ0MK LSsKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQot K2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGls ZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEg Pi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2Nv bXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRybSBjb25mdGVzdCoKLSsK LSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2xpbmtf dGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2 L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9saW5rZXJf Ym9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0rJHJtIC1yIGNvbmZ0ZXN0KgotKwotKwot KwotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPQotKwotK2lmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCi0rICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nIC1mbm8t YnVpbHRpbicKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYg JGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNl cHRpb25zLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlf ZXhjZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz1ubwotKyAg YWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0i LWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhl ciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9y ZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAg IyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNo ZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBz byB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAgIyBUaGUgb3B0aW9uIGlzIHJl ZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KLSsgICBsdF9j b21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKLSsgICAtZSAnczouKkZMQUdTfVx7 MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCi0rICAgLWUgJ3M6IFteIF0qY29uZnRl c3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAotKyAgIC1lICdzOiQ6ICRsdF9jb21waWxl cl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjgxNzU6ICRsdF9jb21waWxlXCIi ID4mNSkKLSsgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgIGFjX3N0 YXR1cz0kPwotKyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAgZWNobyAiJGFzX21lOjgxNzk6 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3Qg LXMgIiRhY19vdXRmaWxlIjsgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2Fy biBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5 IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCi0r ICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9k JyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJy ID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBj b25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3Zf cHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnM9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAg JHJtIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA+JjUKLSskYXNfZWNobyAi JGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA+JjY7IH0KLSsKLStpZiB0ZXN0 IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA9IHh5ZXM7IHRoZW4KLSsg ICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX25v X2J1aWx0aW5fZmxhZyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgotK2Vsc2UKLSsgICAgOgot K2ZpCi0rCi0rZmkKLSsKLStsdF9wcm9nX2NvbXBpbGVyX3dsPQotK2x0X3Byb2dfY29tcGlsZXJf cGljPQotK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljPQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQ SUMuLi4gIiA+JjY7IH0KLSsKLSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIGx0 X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSct c3RhdGljJwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4KikKLSsgICAgICAj IEFsbCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7 IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAg YW1pZ2FvcyopCi0rICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRv IGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAotKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAy MCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAgICAg ICMgbGlrZSBgLW02ODA0MCcuCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1tNjgwMjAg LXJlc2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKLSsgICAgICA7OwotKwotKyAgICBiZW9z KiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSop Ci0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCi0rICAgICAgOzsK LSsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKikKLSsgICAgICAjIFRoaXMg aGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJl aW5nCi0rICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4 cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4g Z2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCi0rICAgICAg IyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKLSsgICAgICBsdF9wcm9nX2NvbXBp bGVyX3BpYz0nLURETExfRVhQT1JUJwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFw c29keSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQotKyAg ICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZuby1jb21tb24nCi0rICAgICAgOzsKLSsKLSsgICAg aW50ZXJpeFszLTldKikKLSsgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRp b25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgotKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUg c2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgotKyAgICAgIDs7Ci0rCi0rICAgIG1zZG9zZGpn cHAqKQotKyAgICAgICMgSnVzdCBiZWNhdXNlIHdlIHVzZSBHQ0MgZG9lc24ndCBtZWFuIHdlIHN1 ZGRlbmx5IGdldCBzaGFyZWQgbGlicmFyaWVzCi0rICAgICAgIyBvbiBzeXN0ZW1zIHRoYXQgZG9u J3Qgc3VwcG9ydCB0aGVtLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJl ZD1ubwotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpN UCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotKwlsdF9wcm9nX2NvbXBpbGVy X3BpYz0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBocHV4KikK LSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQ LVVYLCBidXQKLSsgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCi0rICAgICAgY2FzZSAkaG9zdF9j cHUgaW4KLSsgICAgICBocHBhKjY0KnxpYTY0KikKLSsJIyArWiB0aGUgZGVmYXVsdAotKwk7Owot KyAgICAgICopCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKLSsJOzsKLSsgICAgICBl c2FjCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0n LWZQSUMnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQotKyAgICAjIFBPUlRNRSBDaGVj ayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFncyB0aHJvdWdoIHRoZSBzeXN0ZW0gY29tcGls ZXIuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4KikKLSsgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVu Ci0rCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCWx0X3Byb2dfY29tcGls ZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICBlbHNlCi0rCWx0X3Byb2dfY29tcGlsZXJfc3Rh dGljPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCi0rICAgICAgZmkKLSsgICAgICA7Owot KyAgICAgIGRhcndpbiopCi0rICAgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBs YXRmb3JtCi0rICAgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElC IGZpbGVzCi0rICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgeGxjKikKLSsg ICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLXFub2NvbW1vbicKLSsgICAgICAgICBsdF9w cm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICAgIDs7Ci0rICAgICAgIGVzYWMKLSsgICAg ICAgOzsKLSsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKikKLSsgICAgICAj IFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0 IGlzIGJlaW5nCi0rICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hv dWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVy X3BpYz0nLURETExfRVhQT1JUJwotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXg5KiB8IGhwdXgxMCog fCBocHV4MTEqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgICAgIyBQ SUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1VWCwgYnV0Ci0r ICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAg ICAgaHBwYSo2NCp8aWE2NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQKLSsJOzsKLSsgICAgICAqKQot KwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nK1onCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgICMg SXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRo IHRoZSBidW5kbGVkIENDPwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPScke3dsfS1h ICR7d2x9YXJjaGl2ZScKLSsgICAgICA7OwotKwotKyAgICBpcml4NSogfCBpcml4NiogfCBub25z dG9wdXgqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgICAgIyBQSUMg KHdpdGggLUtQSUMpIGlzIHRoZSBkZWZhdWx0LgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljPSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBuZXdzb3M2KQotKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Yz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgbGludXgqIHwgaypic2QqLWdudSkKLSsg ICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGljYyogfCBlY2MqKQotKwlsdF9wcm9n X2NvbXBpbGVyX3dsPSctV2wsJwotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCi0rCWx0 X3Byb2dfY29tcGlsZXJfc3RhdGljPSctc3RhdGljJwotKyAgICAgICAgOzsKLSsgICAgICBwZ2Nj KiB8IHBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikKLSsgICAgICAgICMgUG9ydGxhbmQgR3JvdXAg Y29tcGlsZXJzICgqbm90KiB0aGUgUGVudGl1bSBnY2MgY29tcGlsZXIsCi0rCSMgd2hpY2ggbG9v a3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0r CWx0X3Byb2dfY29tcGlsZXJfcGljPSctZnBpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9 Jy1Cc3RhdGljJwotKyAgICAgICAgOzsKLSsgICAgICBjY2MqKQotKyAgICAgICAgbHRfcHJvZ19j b21waWxlcl93bD0nLVdsLCcKLSsgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgotKyAg ICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJwotKyAgICAgICAgOzsK LSsgICAgICAqKQotKyAgICAgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSpT dW5cIEMqKQotKwkgICMgU3VuIEMgNS45Ci0rCSAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElD JwotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsJICBsdF9wcm9nX2Nv bXBpbGVyX3dsPSctV2wsJwotKwkgIDs7Ci0rCSpTdW5cIEYqKQotKwkgICMgU3VuIEZvcnRyYW4g OC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKLSsJICBsdF9w cm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1C c3RhdGljJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9JycKLSsJICA7OwotKwllc2FjCi0rCTs7 Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikK LSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMgQWxsIE9TRi8xIGNv ZGUgaXMgUElDLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcK LSsgICAgICA7OwotKwotKyAgICByZG9zKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Yz0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgbHRf cHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj PSctQnN0YXRpYycKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGY3NyogfCBm OTAqIHwgZjk1KikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24gbGQgJzs7Ci0rICAg ICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCc7OwotKyAgICAgIGVzYWMKLSsgICAg ICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1Rb3B0 aW9uIGxkICcKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLVBJQycKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQg fCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1X bCwnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCop Ci0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKwlsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0nLUtjb25mb3JtX3BpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4y djUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSct V2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsgICAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgdW5pY29zKikK LSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfcGljPSctcGljJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0r Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X3Byb2dfY29tcGlsZXJf cGljIiA+JjUKLSskYXNfZWNobyAiJGx0X3Byb2dfY29tcGlsZXJfcGljIiA+JjY7IH0KLSsKLSsj Ci0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMK LStpZiB0ZXN0IC1uICIkbHRfcHJvZ19jb21waWxlcl9waWMiOyB0aGVuCi0rCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJv Z19jb21waWxlcl9waWMgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21w aWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMgd29ya3MuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29t cGlsZXJfcGljX3dvcmtzPW5vCi0rICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLSsg ICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQK LSsgICBsdF9jb21waWxlcl9mbGFnPSIkbHRfcHJvZ19jb21waWxlcl9waWMgLURQSUMiCi0rICAg IyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJp YWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIs IG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBk b2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xs YXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5 LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lk IGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNF RCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcg XAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwK LSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRh c19tZTo4NDY1OiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAy PmNvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgY29uZnRlc3QuZXJyID4m NQotKyAgIGVjaG8gIiRhc19tZTo4NDY5OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAo ZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KLSsgICAgICMg VGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCBy ZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIg dGhhbiB0aGUgdXN1YWwgb3V0cHV0LgotKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxl cnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14k L2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEg LXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9u dWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzPXllcwotKyAg ICAgZmkKLSsgICBmaQotKyAgICRybSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPiY1 Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPiY2OyB9Ci0rCi0r aWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPSB4eWVzOyB0aGVuCi0r ICAgIGNhc2UgJGx0X3Byb2dfY29tcGlsZXJfcGljIGluCi0rICAgICAiIiB8ICIgIiopIDs7Ci0r ICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3BpYz0iICRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgOzsK LSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPQotKyAgICAgbHRf cHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCi0rZmkKLSsKLStmaQotK2Nhc2UgJGhv c3Rfb3MgaW4KLSsgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMsIC1E UElDIGlzIG1lYW5pbmdsZXNzOgotKyAgKmRqZ3BwKikKLSsgICAgbHRfcHJvZ19jb21waWxlcl9w aWM9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0iJGx0X3Byb2df Y29tcGlsZXJfcGljIC1EUElDIgotKyAgICA7OwotK2VzYWMKLSsKLSsjCi0rIyBDaGVjayB0byBt YWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLSt3bD0kbHRfcHJv Z19jb21waWxlcl93bCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY1wiCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21w aWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxh ZyB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0 aWNfd29ya3Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9bm8KLSsgICBzYXZl X0xERkxBR1M9IiRMREZMQUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGlj X2ZsYWciCi0rICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4k YWNfZXh0Ci0rICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMg Y29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2Fy biBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5 IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7 IHRoZW4KLSsgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsg ICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgICRlY2hvICJYJF9sdF9saW5rZXJf Ym9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAk U0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAg aWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAg ICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz15ZXMKLSsgICAgICAgZmkKLSsg ICAgIGVsc2UKLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCi0r ICAgICBmaQotKyAgIGZpCi0rICAgJHJtIC1yIGNvbmZ0ZXN0KgotKyAgIExERkxBR1M9IiRzYXZl X0xERkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID4mNQotKyRhc19lY2hvICIkbHRfY3Zf cHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3Zf cHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID0geHllczsgdGhlbgotKyAgICA6Ci0rZWxzZQot KyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0KLStmaQotKwotKwotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4k YWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9y dHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9w cm9nX2NvbXBpbGVyX2NfbytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz1ubwotKyAgICRybSAt ciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRl c3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2Rl IiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29u ZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFm dGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3Jk IGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0 aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBi ZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVj aG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21w aWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9m bGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxh ZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBl Y2hvICJcIlwkYXNfbWU6ODU2OTogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRf Y29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBv dXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTo4NTczOiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVz dDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdh cm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNh eSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9i b2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAotKyAgICAg JFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIK LSsgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0 LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJv Z19jb21waWxlcl9jX289eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgY2htb2QgdSt3IC4gMj4m NQotKyAgICRybSBjb25mdGVzdCoKLSsgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUg ZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9u Ci0rICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJHJtIG91dC9paV9maWxlcy8qICYmIHJtZGly IG91dC9paV9maWxlcwotKyAgICRybSBvdXQvKiAmJiBybWRpciBvdXQKLSsgICBjZCAuLgotKyAg IHJtZGlyIGNvbmZ0ZXN0Ci0rICAgJHJtIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjUKLSsk YXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjY7IH0KLSsKLSsKLStoYXJkX2xp bmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA9IG5v ICYmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgotKyAgIyBkbyBub3Qgb3ZlcndyaXRl IHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxp bmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQg bGlua3MuLi4gIiA+JjY7IH0KLSsgIGhhcmRfbGlua3M9eWVzCi0rICAkcm0gY29uZnRlc3QqCi0r ICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubwot KyAgdG91Y2ggY29uZnRlc3QuYQotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+JjUgfHwg aGFyZF9saW5rcz1ubwotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYm IGhhcmRfbGlua3M9bm8KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRo YXJkX2xpbmtzIiA+JjUKLSskYXNfZWNobyAiJGhhcmRfbGlua3MiID4mNjsgfQotKyAgaWYgdGVz dCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2Ug LWonIG1heSBiZSB1bnNhZmUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgJEND JyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1bnNhZmUi ID4mMjt9Ci0rICAgIG5lZWRfbG9ja3M9d2FybgotKyAgZmkKLStlbHNlCi0rICBuZWVkX2xvY2tz PW5vCi0rZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhl ciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgk TEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLSsKLSsgIHJ1bnBhdGhf dmFyPQotKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ci0rICBlbmFibGVfc2hhcmVkX3dpdGhfc3Rh dGljX3J1bnRpbWVzPW5vCi0rICBhcmNoaXZlX2NtZHM9Ci0rICBhcmNoaXZlX2V4cHN5bV9jbWRz PQotKyAgb2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kcz0KLSsgIG9sZF9hcmNoaXZlX2Zyb21fZXhw c3ltc19jbWRzPQotKyAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPQotKyAgd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWM9Ci0rICB0aHJlYWRfc2FmZV9mbGFnX3NwZWM9Ci0rICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPQotKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0KLSsgIGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3I9Ci0rICBoYXJkY29kZV9kaXJlY3Q9bm8KLSsgIGhhcmRjb2Rl X21pbnVzX0w9bm8KLSsgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKLSsgIGxp bmtfYWxsX2RlcGxpYnM9dW5rbm93bgotKyAgaGFyZGNvZGVfYXV0b21hdGljPW5vCi0rICBtb2R1 bGVfY21kcz0KLSsgIG1vZHVsZV9leHBzeW1fY21kcz0KLSsgIGFsd2F5c19leHBvcnRfc3ltYm9s cz1ubwotKyAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlx ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgIyBpbmNsdWRlX2V4cHN5bXMgc2hvdWxkIGJlIGEgbGlz dCBvZiBzcGFjZS1zZXBhcmF0ZWQgc3ltYm9scyB0byBiZSAqYWx3YXlzKgotKyAgIyBpbmNsdWRl ZCBpbiB0aGUgc3ltYm9sIGxpc3QKLSsgIGluY2x1ZGVfZXhwc3ltcz0KLSsgICMgZXhjbHVkZV9l eHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCi0r ICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3Qg bWF0Y2ggYmVnaW5uaW5nIG9yCi0rICAjIGVuZCBvZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8Lipk LionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5kIGBiYycsCi0rICAjIGFzIHdlbGwg YXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KLSsgIGV4Y2x1ZGVfZXhwc3ltcz0nX0dM T0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJwotKyAgIyBBbHRob3VnaCBfR0xP QkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0Ci0r ICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBn ZXQgY29uZnVzZWQgaWYKLSsgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQu ICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5vdAotKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5h bWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGluCi0rICAjIHByZWxv YWRlZCBzeW1ib2wgdGFibGVzLgotKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxp emF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xzLgotKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9Ci0r ICAjIEp1c3QgYmVpbmcgcGFyYW5vaWQgYWJvdXQgZW5zdXJpbmcgdGhhdCBjY19iYXNlbmFtZSBp cyBzZXQuCi0rICBmb3IgY2NfdGVtcCBpbiAkY29tcGlsZXIiIjsgZG8KLSsgIGNhc2UgJGNjX3Rl bXAgaW4KLSsgICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2Fj aGUgKSA7OwotKyAgICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJp ZnkgKSA7OwotKyAgICBcLSopIDs7Ci0rICAgICopIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0r Y2NfYmFzZW5hbWU9YCRlY2hvICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJz JV4kaG9zdF9hbGlhcy0lJSJgCi0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBjeWd3aW4qIHwg bWluZ3cqIHwgcHczMiopCi0rICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVl biB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKLSsgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdl IGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKLSsgICAgIyBNaWNyb3NvZnQgVmlz dWFsIEMrKy4KLSsgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCi0rICAgICAgd2l0aF9n bnVfbGQ9bm8KLSsgICAgZmkKLSsgICAgOzsKLSsgIGludGVyaXgqKQotKyAgICAjIHdlIGp1c3Qg aG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQotKyAgICB3aXRo X2dudV9sZD15ZXMKLSsgICAgOzsKLSsgIG9wZW5ic2QqKQotKyAgICB3aXRoX2dudV9sZD1ubwot KyAgICA7OwotKyAgZXNhYwotKwotKyAgbGRfc2hsaWJzPXllcwotKyAgaWYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IHllczsgdGhlbgotKyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3Qg Q0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQotKyAgICB3bGFyYz0nJHt3bH0nCi0rCi0rICAgICMg U2V0IHNvbWUgZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQu IFRoZXNlCi0rICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5v dCBzdXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQotKyAgICAjIGhlcmUgYWxsb3dzIHRoZW0gdG8gYmUg b3ZlcnJpZGRlbiBpZiBuZWNlc3NhcnkuCi0rICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0r ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXIn Ci0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwot KyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4g YWwuCi0rICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ25vLXdob2xlLWFyY2hpdmUnID4g L2Rldi9udWxsOyB0aGVuCi0rCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSIkd2xhcmMiJy0td2hv bGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAg ICAgIGVsc2UKLSsgIAl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KLSsgICAgZmkKLSsgICAgc3Vw cG9ydHNfYW5vbl92ZXJzaW9uaW5nPW5vCi0rICAgIGNhc2UgYCRMRCAtdiAyPi9kZXYvbnVsbGAg aW4KLSsgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0 Y2ggdmVyc2lvbnMgPCAyLjExCi0rICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fu b25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KLSsgICAgICAqXCAyLjExLjkyLjAuMTJc ICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCi0r ICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKLSsgICAgICAqKSBzdXBw b3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYg R05VIGxkIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4K LSsgICAgYWl4WzMtOV0qKQotKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMg dmVyeSBicm9rZW4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSsJ bGRfc2hsaWJzPW5vCi0rCWNhdCA8PEVPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IHRoZSBHTlUg bGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAotKyoqKiB0 byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gQUlYLgot KyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3Vw cG9ydC4gIElmIHlvdQotKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91 IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKLSsqKiogc28gdGhhdCBhIG5vbi1HTlUgbGlu a2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK0VPRgotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckcm0gJG91dHB1 dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTElCUkFSWV9J RCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFZF UlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIj ZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnku ZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0 X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9taW51c19MPXllcwotKwotKyAgICAg ICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5vcGVucHJvamVjdHMubmV0PiBy ZXBvcnRzCi0rICAgICAgIyB0aGF0IHRoZSBzZW1hbnRpY3Mgb2YgZHluYW1pYyBsaWJyYXJpZXMg b24gQW1pZ2FPUywgYXQgbGVhc3QgdXAKLSsgICAgICAjIHRvIHZlcnNpb24gNCwgaXMgdG8gc2hh cmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQKLSsgICAgICAjIHdpdGggdGhl IHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vzbid0IG1hdGNoIHRoZQotKyAg ICAgICMgYmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJhcmllcyBvbiBvdGhlciBwbGF0Zm9ybXMsIHdl IGNhbid0IHVzZQotKyAgICAgICMgdGhlbS4KLSsgICAgICBsZF9zaGxpYnM9bm8KLSsgICAgICA7 OwotKwotKyAgICBiZW9zKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1 cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJYWxsb3dfdW5kZWZp bmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsJIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNv bT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKwkjIHN1cHBvcnQgLS11bmRlZmluZWQuICBU aGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCWFyY2hpdmVfY21kcz0n JENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAg ICAgZmkKLSsgICAgICA7OwotKwotKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCi0rICAg ICAgIyBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICkgaXMgYWN0dWFs bHkgbWVhbmluZ2xlc3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3Ig RExMcy4KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAg ICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhbHdheXNfZXhwb3J0 X3N5bWJvbHM9bm8KLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXll cwotKyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2Ug fCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBd XChbXiBdKlwpL1wxIERBVEEvJ1wnJyAtZSAnXCcnL15bQUlUV11bIF0vcy8uKlsgXS8vJ1wnJyB8 IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKwotKyAgICAgIGlmICRMRCAtLWhlbHAg Mj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgYXJj aGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg LW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAt WGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsJIyBJZiB0aGUgZXhwb3J0LXN5 bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQotKwkjIGlzIEVYUE9S VFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgotKwlhcmNoaXZlX2V4cHN5 bV9jbWRzPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsg dGhlbgotKwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsK LSsJZWxzZQotKwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwot KwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0r CWZpfgotKwkkQ0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0t ZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxp YicKLSsgICAgICBlbHNlCi0rCWxkX3NobGlicz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsK LSsgICAgaW50ZXJpeFszLTldKikKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9bm8KLSsgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9 JyR7d2x9LUUnCi0rICAgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBp bGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgotKyAgICAgICMgSW5zdGVhZCwgc2hhcmVk IGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKLSsg ICAgICAjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMg YSBzbG93IHZlcnkgbWVtb3J5Ci0rICAgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHBy b2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAotKyAgICAgICMgMjU2IEtp Qi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0 IGxpbmsKLSsgICAgICAjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxs b3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KLSsgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29u YW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2 MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0n c2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBz eW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpk aXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUg NDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgICA7OwotKwot KyAgICBnbnUqIHwgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+ JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4K LSsJdG1wX2FkZGZsYWc9Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgotKwlwZ2Nj KikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7 IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmll bmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8t d2hvbGUtYXJjaGl2ZScKLSsJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKLSsJICA7OwotKwlw Z2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCSMgUG9ydGxhbmQgR3JvdXAgZjc3IGFuZCBmOTAgY29t cGlsZXJzCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZl YGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBu ZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwi JG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICB0bXBfYWRk ZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFpbicgOzsKLSsJZWNjKixpYTY0KiB8IGljYyosaWE2NCop CQkjIEludGVsIEMgY29tcGlsZXIgb24gaWE2NAotKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1p YycgOzsKLSsJZWZjKixpYTY0KiB8IGlmb3J0KixpYTY0KikJIyBJbnRlbCBGb3J0cmFuIGNvbXBp bGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMgLW5vZm9yX21haW4nIDs7 Ci0rCWlmYyogfCBpZm9ydCopCQkJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyCi0rCSAgdG1wX2Fk ZGZsYWc9JyAtbm9mb3JfbWFpbicgOzsKLSsJZXNhYwotKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNl ZCA1cWAgaW4KLSsJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkKLSsJICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYg aW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmll bmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVu aWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgdG1wX3NoYXJlZGZsYWc9Jy1H JyA7OwotKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMwotKwkgIHRtcF9zaGFyZWRmbGFn PSctRycgOzsKLSsJKikKLSsJICB0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcgOzsKLSsJZXNhYwot KwlhcmNoaXZlX2NtZHM9JyRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCi0rCi0rCWlmIHRlc3QgJHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyA9IHllczsgdGhl bgotKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUudmVyfgotKyAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9c KC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKyAgJGVjaG8gImxv Y2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICRDQyAnIiR0 bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9 JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCi0rCWZpCi0rICAgICAgZWxzZQot KwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0r ICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVs bDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzIC1vICRsaWInCi0rCXdsYXJjPQotKyAgICAgIGVsc2UKLSsJYXJjaGl2 ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1v ICRsaWInCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlzKikKLSsgICAgICBp ZiAkTEQgLXYgMj4mMSB8IGdyZXAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlsZF9z aGxpYnM9bm8KLSsJY2F0IDw8RU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogVGhlIHJlbGVhc2Vz IDIuOC4qIG9mIHRoZSBHTlUgbGlua2VyIGNhbm5vdCByZWxpYWJseQotKyoqKiBjcmVhdGUgc2hh cmVkIGxpYnJhcmllcyBvbiBTb2xhcmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKLSsq KiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRv IHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3ZXIuICBB bm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNv bmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQg dGhlbiByZXN0YXJ0LgotKwotK0VPRgotKyAgICAgIGVsaWYgJExEIC0taGVscCAyPiYxIHwgZ3Jl cCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCWFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAt byAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3Bl blVOSVgqKQotKyAgICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgotKyAgICAgICAgKlwgWzAxXS4q IHwgKlwgMi5bMC05XS4qIHwgKlwgMi4xWzAtNV0uKikKLSsJbGRfc2hsaWJzPW5vCi0rCWNhdCA8 PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiBSZWxlYXNlcyBvZiB0aGUgR05VIGxpbmtl ciBwcmlvciB0byAyLjE2LjkxLjAuMyBjYW4gbm90Ci0rKioqIHJlbGlhYmx5IGNyZWF0ZSBzaGFy ZWQgbGlicmFyaWVzIG9uIFNDTyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCi0rKioqIGlz IGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdy YWRlIEdOVQotKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuMTYuOTEuMC4zIG9yIG5ld2VyLiAg QW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Ci0rKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBj b25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKLSsqKiogdXNlZCwgYW5k IHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9GCi0rCTs7Ci0rCSopCi0rCSAgaWYgJExEIC0taGVs cCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0 aGVuCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSdgdGVzdCAteiAiJFNDT0FCU1BB VEgiICYmIGVjaG8gJHt3bH0tcnBhdGgsJGxpYmRpcmAnCi0rCSAgICBhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUs XCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYicKLSsJICAg IGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0v fSRzb25hbWUsLXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0r CSAgZWxzZQotKwkgICAgbGRfc2hsaWJzPW5vCi0rCSAgZmkKLSsJOzsKLSsgICAgICBlc2FjCi0r ICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtYXNz ZXJ0IHB1cmUtdGV4dCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnCi0rICAgICAgd2xhcmM9Ci0rICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcwotKyAg ICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAqKQotKyAg ICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxm JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJv bHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICBlbHNlCi0rCWxkX3No bGlicz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0 ICIkbGRfc2hsaWJzIiA9IG5vOyB0aGVuCi0rICAgICAgcnVucGF0aF92YXI9Ci0rICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0KLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9 Ci0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0rICAgIGZpCi0rICBlbHNlCi0rICAg ICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIGxpbmtlciAo bm90IEdOVSBsZCkKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXgzKikKLSsgICAgICBh bGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAotKyAgICAgIGFsd2F5c19leHBvcnRfc3lt Ym9scz15ZXMKLSsgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckTEQgLW8gJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1iRTokZXhwb3J0X3N5 bWJvbHMgLVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZMQUdTICRsaWIgJG91dHB1dF9vYmpk aXIvJHNvbmFtZScKLSsgICAgICAjIE5vdGU6IHRoaXMgbGlua2VyIGhhcmRjb2RlcyB0aGUgZGly ZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQotKyAgICAgICMgYXJlIG5vIGRpcmVjdG9yaWVz IHNwZWNpZmllZCBieSAtTC4KLSsgICAgICBoYXJkY29kZV9taW51c19MPXllcwotKyAgICAgIGlm IHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgLXogIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyI7 IHRoZW4KLSsJIyBOZWl0aGVyIGRpcmVjdCBoYXJkY29kaW5nIG5vciBzdGF0aWMgbGlua2luZyBp cyBzdXBwb3J0ZWQgd2l0aCBhCi0rCSMgYnJva2VuIGNvbGxlY3QyLgotKwloYXJkY29kZV9kaXJl Y3Q9dW5zdXBwb3J0ZWQKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFpeFs0LTldKikK LSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIE9uIElBNjQsIHRo ZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0Ci0r CSMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgotKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5n PW5vCi0rCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCi0rCW5vX2VudHJ5X2ZsYWc9IiIKLSsgICAg ICBlbHNlCi0rCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhl ICItQyIgb3B0aW9uLgotKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5z IGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCi0rCWlmICROTSAtViAyPiYxIHwgZ3JlcCAnR05V JyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAtQnBnICRs aWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJDIgPT0gIlQiKSB8fCAoXCQy ID09ICJEIikgfHwgKFwkMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkMywxLDEpICE9ICIuIikpIHsg cHJpbnQgXCQzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKwllbHNlCi0r CSAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 IGF3ayAnXCcneyBpZiAoKChcJDIgPT0gIlQiKSB8fCAoXCQyID09ICJEIikgfHwgKFwkMiA9PSAi QiIpKSAmJiAoc3Vic3RyKFwkMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQzIH0gfSdcJycgfCBz b3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKwlmaQotKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5n PW5vCi0rCi0rCSMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5n IG9yIG5vcm1hbAotKwkjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUg aW4gTERGTEFHUywgd2UKLSsJIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KLSsJY2FzZSAk aG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5bMjNdLip8YWl4WzUtOV0qKQotKwkgIGZvciBsZF9m bGFnIGluICRMREZMQUdTOyBkbwotKyAgCSAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8 IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KLSsgIAkgICAgYWl4X3VzZV9ydW50 aW1lbGlua2luZz15ZXMKLSsgIAkgICAgYnJlYWsKLSsgIAkgIGZpCi0rCSAgZG9uZQotKwkgIDs7 Ci0rCWVzYWMKLSsKLSsJZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKLSsJbm9fZW50cnlfZmxhZz0n LWJub2VudHJ5JwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVz IG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgotKyAgICAgICMgaGF2ZSBw cm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGli cmFyeQotKyAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ci IGFkZCAtbW1pbmltYWwtdG9jIHRvCi0rICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9n Y2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKLSsgICAgICAjIGVub3VnaCB0byBm aXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KLSsKLSsgICAgICBh cmNoaXZlX2NtZHM9JycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKwot KyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWNhc2UgJGhvc3Rfb3MgaW4gYWl4 NC5bMDEyXXxhaXg0LlswMTJdLiopCi0rCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlY IDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawotKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIg ZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1w cm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYgXAot KyAgCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4v ZGV2L251bGwKLSsJICB0aGVuCi0rICAJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKLSsg IAkgIDoKLSsJICBlbHNlCi0rICAJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCi0rICAJICBoYXJk Y29kZV9kaXJlY3Q9dW5zdXBwb3J0ZWQKLSsgIAkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3Rh bGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsgIAkgICMgcGF0aCBpcyBub3Qg bGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCi0rICAJICAj IHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKLSsgIAkgIGhhcmRjb2RlX21pbnVzX0w9 eWVzCi0rICAJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAJICBo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPQotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwlzaGFy ZWRfZmxhZz0nLXNoYXJlZCcKLSsJaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0g eWVzOyB0aGVuCi0rCSAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCi0rCWZp Ci0rICAgICAgZWxzZQotKwkjIG5vdCB1c2luZyBnY2MKLSsJaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KLSsgIAkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwg Zm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQotKyAgCSMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZv bGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKwllbHNlCi0r CSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBz aGFyZWRfZmxhZz0nJHt3bH0tRycKLSsJICBlbHNlCi0rCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0t Yk06U1JFJwotKwkgIGZpCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICAjIEl0IHNlZW1zIHRo YXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKLSsgICAg ICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9m IHN5bWJvbHMgdG8gZXhwb3J0LgotKyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz15ZXMKLSsg ICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJIyBX YXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdzICgt YnJ0bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1 Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Jy1iZXJvaycKLSsg ICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNv ZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8K LSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBj b25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewot KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsKLStsdF9haXhfbGlicGF0aF9zZWQ9Jwot KyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0rCS9eMC8gewotKwkgICAgcy9eMCAg KlwoLipcKSQvXDEvCi0rCSAgICBwCi0rCX0KLSsgICAgfScKLSthaXhfbGlicGF0aD1gZHVtcCAt SCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xp YnBhdGhfc2VkImAKLSsjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZp bmQgYW55dGhpbmcuCi0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotKyAgYWl4X2xp YnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAt biAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rZmkKLStlbHNlCi0rICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStpZiB0 ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsg ZmkKLSsKLSsgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6 JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyInIC1v ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50 cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9IiAhPSAieCI7IHRoZW4gZWNobyAiJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSI7IGVs c2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRf ZmxhZyIKLSsgICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgot KwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjov bGliJwotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIteiBub2RlZnMiCi0rCSAgYXJjaGl2ZV9l eHBzeW1fY21kcz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l ICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRl eHBvcnRfc3ltYm9scyIKLSsJZWxzZQotKwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0 aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSBjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YK LStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkK LSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgot K2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk YWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAk YXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4 X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAv IHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4 X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAt biAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0 IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7 IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9k ZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQot KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0 LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVz dC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0i L3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rCSBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3ds fS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICMgV2FybmluZyAtIHdpdGhv dXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sg d2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5 LgotKwkgIG5vX3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tYmVybm90b2snCi0rCSAgYWxsb3dfdW5k ZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJvaycKLSsJICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJl IHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJICB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYz0nJGNvbnZlbmllbmNlJwotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjPXll cwotKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMg aXRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hh cmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7 d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2Fs bG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l JHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlmaQotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckcm0gJG91dHB1 dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTElCUkFSWV9J RCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFZF UlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIj ZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnku ZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0 X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9taW51c19MPXllcwotKyAgICAgICMg c2VlIGNvbW1lbnQgYWJvdXQgZGlmZmVyZW50IHNlbWFudGljcyBvbiB0aGUgR05VIGxkIHNlY3Rp b24KLSsgICAgICBsZF9zaGxpYnM9bm8KLSsgICAgICA7OwotKwotKyAgICBic2RpWzQ1XSopCi0r ICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPS1yZHluYW1pYwotKyAgICAgIDs7Ci0rCi0r ICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsgICAgICAjIFdoZW4gbm90IHVzaW5nIGdj Yywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZwotKyAgICAgICMgTWljcm9z b2Z0IFZpc3VhbCBDKysuCi0rICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFj dHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwotKyAgICAgICMgbm8gc2VhcmNoIHBhdGgg Zm9yIERMTHMuCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nICcKLSsgICAgICBh bGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAotKyAgICAgICMgVGVsbCBsdG1haW4gdG8g bWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMuCi0rICAgICAgbGliZXh0PWxpYgotKyAgICAg ICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgotKyAgICAg IHNocmV4dF9jbWRzPSIuZGxsIgotKyAgICAgICMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhl cmUgaXMgYSBiYWQgaGFjay4KLSsgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtbyAkbGliICRsaWJv YmpzICRjb21waWxlcl9mbGFncyBgZWNobyAiJGRlcGxpYnMiIHwgJFNFRCAtZSAnXCcncy8gLWxj JC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotKyAgICAgICMgVGhlIGxpbmtlciB3aWxs IGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCi0rICAg ICAgb2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kcz0ndHJ1ZScKLSsgICAgICAjIEZJWE1FOiBTaG91 bGQgbGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgotKyAgICAgIG9sZF9hcmNo aXZlX2NtZHM9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicycKLSsgICAgICBm aXhfc3JjZmlsZV9wYXRoPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKLSsgICAgICBlbmFibGVf c2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndp biogfCByaGFwc29keSopCi0rICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgICAgcmhhcHNv ZHkqIHwgZGFyd2luMS5bMDEyXSkKLSsgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0nJHt3 bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCi0rICAgICAgICAgOzsKLSsgICAgICAgKikgIyBE YXJ3aW4gMS4zIG9uCi0rICAgICAgICAgaWYgdGVzdCAteiAke01BQ09TWF9ERVBMT1lNRU5UX1RB UkdFVH0gOyB0aGVuCi0rICAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0nJHt3bH0tZmxh dF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCi0rICAgICAgICAgZWxz ZQotKyAgICAgICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVH0gaW4KLSsgICAg ICAgICAgICAgMTAuWzAxMl0pCi0rICAgICAgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9 JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJwotKyAg ICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICAgIDEwLiopCi0rICAgICAgICAgICAgICAgYWxs b3dfdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJwot KyAgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICBlc2FjCi0rICAgICAgICAgZmkKLSsgICAg ICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAg ICAgIGhhcmRjb2RlX2RpcmVjdD1ubwotKyAgICAgIGhhcmRjb2RlX2F1dG9tYXRpYz15ZXMKLSsg ICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPXVuc3VwcG9ydGVkCi0rICAgICAgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWM9JycKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKyAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllcyA7IHRoZW4KLSsgICAgCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdl Y2hvJwotKyAgICAgICAgYXJjaGl2ZV9jbWRzPSJcJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdz IC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5n bGVfbW9kJHtfbHRfZHN5bXV0aWx9IgotKyAgICAgICAgbW9kdWxlX2NtZHM9IlwkQ0MgXCRhbGxv d191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRj b21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHM9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7 bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5l ZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5z dGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9t b2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgICAgIG1vZHVs ZV9leHBzeW1fY21kcz0ic2VkIC1lICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0 cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIFwkYWxsb3dfdW5kZWZp bmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJf ZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBlbHNlCi0r ICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgIHhsYyopCi0rICAgICAgICAgb3V0 cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rICAgICAgICAgYXJjaGl2ZV9jbWRzPSckQ0Mg LXFta3Nocm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9YGVjaG8gJHJwYXRoLyRz b25hbWVgICR4bGN2ZXJzdHJpbmcnCi0rICAgICAgICAgbW9kdWxlX2NtZHM9JyRDQyAkYWxsb3df dW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVy X2ZsYWdzJwotKyAgICAgICAgICAjIERvbid0IGZpeCB0aGlzIGJ5IHVzaW5nIHRoZSBsZCAtZXhw b3J0ZWRfc3ltYm9sc19saXN0IGZsYWcsIGl0IGRvZXNuJ3QgZXhpc3QgaW4gb2xkZXIgZGFyd2lu IGxkcwotKyAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J3NlZCAtZSAicywjLiosLCIgLWUg InMsXlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRv dXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDIC1xbWtzaHJvYmogJGFs bG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWluc3RhbGxfbmFtZSAke3dsfSRycGF0aC8kc29uYW1lICR4bGN2ZXJzdHJpbmd+ bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9 JwotKyAgICAgICAgICBtb2R1bGVfZXhwc3ltX2NtZHM9J3NlZCAtZSAicywjLiosLCIgLWUgInMs XlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRw dXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDICRhbGxvd191bmRlZmluZWRf ZmxhZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVyX2ZsYWdzfm5t ZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScK LSsgICAgICAgICAgOzsKLSsgICAgICAgKikKLSsgICAgICAgICBsZF9zaGxpYnM9bm8KLSsgICAg ICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgZGd1eCop Ci0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7 OwotKwotKyAgICBmcmVlYnNkMSopCi0rICAgICAgbGRfc2hsaWJzPW5vCi0rICAgICAgOzsKLSsK LSsgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBhbGxvd3MgdXMgdG8gaW5jbHVkZSBjKytydDAubyB0 byBnZXQgQysrIGNvbnN0cnVjdG9yCi0rICAgICMgc3VwcG9ydC4gIEZ1dHVyZSB2ZXJzaW9ucyBk byB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCBhbiBleHBsaWNpdCBjKytydDAubwotKyAgICAjIGRv ZXMgbm90IGJyZWFrIGFueXRoaW5nLCBhbmQgaGVscHMgc2lnbmlmaWNhbnRseSAoYXQgdGhlIGNv c3Qgb2YgYSBsaXR0bGUKLSsgICAgIyBleHRyYSBzcGFjZSkuCi0rICAgIGZyZWVic2QyLjIqKQot KyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycKLSsgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcwot KyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAjIFVu Zm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlz IGZlYXR1cmUuCi0rICAgIGZyZWVic2QyKikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNo YXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAg aGFyZGNvZGVfZGlyZWN0PXllcwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAg aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAz IGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KLSsg ICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFy ZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVj dD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsg ICAgaHB1eDkqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVf Y21kcz0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0r YiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAk bGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBlbHNlCi0rCWFy Y2hpdmVfY21kcz0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxs X2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yPToKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rCi0rICAgICAgIyBoYXJk Y29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsgICAgICAjIGJ1 dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsgICAgICBoYXJkY29k ZV9taW51c19MPXllcwotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScK LSsgICAgICA7OwotKwotKyAgICBocHV4MTAqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz IC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJl ZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGly IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UK LSsJYXJjaGl2ZV9jbWRzPSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAg aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y PToKLSsKLSsJaGFyZGNvZGVfZGlyZWN0PXllcwotKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9 JyR7d2x9LUUnCi0rCi0rCSMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2Vh cmNoIFBBVEgsCi0rCSMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5 LgotKwloYXJkY29kZV9taW51c19MPXllcwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAg aHB1eDExKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9 IG5vOyB0aGVuCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQqKQotKwkgIGFyY2hpdmVf Y21kcz0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCopCi0rCSAgYXJjaGl2ZV9j bWRzPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0 aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwkq KQotKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25h bWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwllc2FjCi0rICAgICAgZWxzZQotKwljYXNlICRo b3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfSto ICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK LSsJICA7OwotKwlpYTY0KikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9 JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIGFyY2hpdmVfY21kcz0nJENDIC1iICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwotKyAgICAg IGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKwloYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yPToKLSsKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCp8aWE2NCop Ci0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nK2IgJGxpYmRpcicKLSsJICBoYXJk Y29kZV9kaXJlY3Q9bm8KLSsJICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rCSAgOzsKLSsJ KikKLSsJICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rCSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj PScke3dsfS1FJwotKwotKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUg c2VhcmNoIFBBVEgsCi0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxp YnJhcnkuCi0rCSAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsJICA7OwotKwllc2FjCi0rICAgICAg ZmkKLSsgICAgICA7OwotKwotKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAg ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFy ZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRz b25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3 bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9 L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSckTEQg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVw ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSctcnBhdGggJGxpYmRpcicKLSsgICAgICBmaQot KyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRp cicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsgICAgICBsaW5rX2FsbF9k ZXBsaWJzPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBf X0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNo aXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnICAjIGEub3V0Ci0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRMRCAtc2hh cmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICAgICAjIEVMRgot KyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwot KyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy PW5vCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRM RCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK LSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3I9OgotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7Owot KwotKyAgICBvcGVuYnNkKikKLSsgICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsg dGhlbgotKwloYXJkY29kZV9kaXJlY3Q9eWVzCi0rCWhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8K LSsJaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIg fHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVu Ci0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJEND IC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzJwotKwkgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKwllbHNlCi0rCSAgY2FzZSAkaG9zdF9vcyBpbgot KwkgICBvcGVuYnNkWzAxXS4qIHwgb3BlbmJzZDIuWzAtN10gfCBvcGVuYnNkMi5bMC03XS4qKQot KwkgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSct UiRsaWJkaXInCi0rCSAgICAgOzsKLSsJICAgKikKLSsJICAgICBhcmNoaXZlX2NtZHM9JyRDQyAt c2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKLSsJICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGly JwotKwkgICAgIDs7Ci0rCSAgZXNhYwotKyAgICAgICAgZmkKLSsgICAgICBlbHNlCi0rCWxkX3No bGlicz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgb3MyKikKLSsgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfbWludXNf TD15ZXMKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAotKyAgICAgIGFy Y2hpdmVfY21kcz0nJGVjaG8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+ PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gREFUQSA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWZ+JGVjaG8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWZ+JGVjaG8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5k ZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpk bGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwotKyAgICAgIG9sZF9hcmNoaXZlX0Zyb21fbmV3X2Nt ZHM9J2VteGltcCAtbyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5hICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmRlZicKLSsgICAgICA7OwotKwotKyAgICBvc2YzKikKLSsgICAgICBpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgotKwlhbGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4cGVjdF91 bnJlc29sdmVkICR7d2x9XConCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRf dmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlhbGxvd191 bmRlZmluZWRfZmxhZz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJYXJjaGl2ZV9jbWRzPSck TEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1z ZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0v c29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcj06Ci0rICAgICAgOzsKLSsKLSsgICAgb3NmNCogfCBvc2Y1KikJIyBhcyBv c2YzKiB3aXRoIHRoZSBhZGRpdGlvbiBvZiAtbXN5bSBmbGFnCi0rICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1leHBlY3RfdW5y ZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRl ZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0g JHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAk e3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAk e3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCWhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBlbHNlCi0r CWFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJwotKwlhcmNoaXZl X2NtZHM9JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21k cz0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAt ZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBlY2hvICItaGlkZGVuIj4+ ICRsaWIuZXhwfgotKwkkTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1pbnB1dCAk bGliLmV4cCAkbGlua2VyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVw ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRybSAk bGliLmV4cCcKLSsKLSsJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBwb3J0IC1ycGF0aCBk aXJlY3RseQotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctcnBhdGggJGxpYmRpcicKLSsg ICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIDs7Ci0r Ci0rICAgIHNvbGFyaXMqKQotKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnPScgLXogdGV4dCcKLSsg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwl3bGFyYz0nJHt3bH0nCi0rCWFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRlY2hv ICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMv XCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhw fgotKwkgICRDQyAtc2hhcmVkICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9JHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kcm0gJGxpYi5l eHAnCi0rICAgICAgZWxzZQotKwl3bGFyYz0nJwotKwlhcmNoaXZlX2NtZHM9JyRMRCAtRyR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckZWNobyAieyBnbG9iYWw6IiA+ ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+ PiAkbGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsgIAkkTEQgLUck e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kcm0gJGxpYi5leHAnCi0rICAgICAgZmkKLSsg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0rICAgICAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzb2xh cmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rICAgICAgKikKLSsJIyBUaGUgY29t cGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJ IyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRo b3V0IGAkd2wnLAotKwkjIGJ1dCBpcyBjYXJlZnVsIGVub3VnaCBub3QgdG8gcmVvcmRlci4KLSsg CSMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCi0rCWlmIHRlc3Qg IiRHQ0MiID0geWVzOyB0aGVuCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LXog JHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcK LSsJZWxzZQotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScteiBhbGxleHRyYWN0JGNvbnZl bmllbmNlIC16IGRlZmF1bHRleHRyYWN0JwotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAg ICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAg ICAgaWYgdGVzdCAieCRob3N0X3ZlbmRvciIgPSB4c2VxdWVudDsgdGhlbgotKwkjIFVzZSAkQ0Mg dG8gbGluayB1bmRlciBzZXF1ZW50LCBiZWNhdXNlIGl0IHRocm93cyBpbiBzb21lIGV4dHJhIC5v Ci0rCSMgZmlsZXMgdGhhdCBtYWtlIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyB3b3JrLgotKwlh cmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRMRCAt YXNzZXJ0IHB1cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSct TCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcwotKyAgICAgIGhhcmRjb2RlX21p bnVzX0w9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0r Ci0rICAgIHN5c3Y0KQotKyAgICAgIGNhc2UgJGhvc3RfdmVuZG9yIGluCi0rCXNuaSkKLSsJICBh cmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycKLSsJICBoYXJkY29kZV9kaXJlY3Q9eWVzICMgaXMgdGhpcyByZWFsbHkg dHJ1ZT8/PwotKwk7OwotKwlzaWVtZW5zKQotKwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExB TUxJQgotKwkgICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVsZS4KLSsJICBhcmNoaXZlX2Nt ZHM9JyRMRCAtRyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAg cmVsb2FkX2NtZHM9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotKwkgIGhhcmRjb2Rl X2RpcmVjdD1ubwotKyAgICAgICAgOzsKLSsJbW90b3JvbGEpCi0rCSAgYXJjaGl2ZV9jbWRzPSck TEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn Ci0rCSAgaGFyZGNvZGVfZGlyZWN0PW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBt eSB0ZXN0cyBzYXkgdGhleSBsaWUKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgcnVucGF0aF92 YXI9J0xEX1JVTl9QQVRIJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAg ICA7OwotKwotKyAgICBzeXN2NC4zKikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj PSctQmV4cG9ydCcKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVz dCAtZCAvdXNyL25lYzsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcj1ubwotKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKwloYXJkY29kZV9ydW5wYXRo X3Zhcj15ZXMKLSsJbGRfc2hsaWJzPXllcwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAg c3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8 IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKLSsgICAgICBub191bmRlZmluZWRfZmxh Zz0nJHt3bH0teix0ZXh0JwotKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCi0rICAgICAg aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFU SCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhcmNoaXZlX2NtZHM9 JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHt3bH0t QmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSck Q0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhw b3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgc2Nv My4ydjUqIHwgc2NvNXY2KikKLSsgICAgICAjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMg YXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAotKyAgICAgICMgbGluayB3aXRo IC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8K LSsgICAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5v IGxpYnJhcnkgd291bGQKLSsgICAgICAjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBu b3QgdXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0Ci0rICAgICAgIyB0aG91Z2gsIHdoaWNoIGRv ZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rICAg ICAgIyBhcyAteiBkZWZzLgotKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnPScke3dsfS16LHRleHQn Ci0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosbm9kZWZzJwotKyAgICAgIGFy Y2hpdmVfY21kc19uZWVkX2xjPW5vCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwot KyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9J2B0ZXN0IC16ICIkU0NPQUJTUEFUSCIg JiYgZWNobyAke3dsfS1SLCRsaWJkaXJgJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3I9JzonCi0rICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKLSsgICAgICBleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9JyR7d2x9LUJleHBvcnQnCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9Q QVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21k cz0nJENDIC1zaGFyZWQgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99 JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJj aGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJv bHMgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCWFy Y2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRp cn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9s cyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgdXRzNCopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIGxkX3NobGlicz1ubwotKyAg ICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGxkX3NobGlicyIgPiY1Ci0rJGFzX2VjaG8gIiRsZF9zaGxpYnMiID4mNjsgfQot K3Rlc3QgIiRsZF9zaGxpYnMiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotKyMKLSsj IERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/Ci0rIwotK2Nhc2UgIngkYXJjaGl2 ZV9jbWRzX25lZWRfbGMiIGluCi0reHx4eWVzKQotKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBh ZGRlZAotKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9eWVzCi0rCi0rICBpZiB0ZXN0ICIkZW5hYmxl X3NoYXJlZCIgPSB5ZXMgJiYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgY2FzZSAkYXJj aGl2ZV9jbWRzIGluCi0rICAgIConficqKQotKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRv IGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KLSsgICAgICA7OwotKyAgICAnJEND ICcqKQotKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtz IHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKLSsgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBj b21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKLSsgICAgICAjIHRvIGxk LCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2Vk IGluIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhw bGljaXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0KLSsgICAgICAkcm0gY29uZnRlc3QqCi0rICAg ICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0 Ci0rCi0rICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGls ZVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gMj5jb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIHNvbmFtZT1j b25mdGVzdAotKyAgICAgICAgbGliPWNvbmZ0ZXN0Ci0rICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0 LiRhY19vYmpleHQKLSsgICAgICAgIGRlcGxpYnM9Ci0rICAgICAgICB3bD0kbHRfcHJvZ19jb21w aWxlcl93bAotKwlwaWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9waWMKLSsgICAgICAgIGNvbXBp bGVyX2ZsYWdzPS12Ci0rICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKLSsgICAgICAgIHZlcnN0cmlu Zz0KLSsgICAgICAgIG91dHB1dF9vYmpkaXI9LgotKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAot KyAgICAgICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0kYWxsb3dfdW5kZWZpbmVkX2Zs YWcKLSsgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPQotKyAgICAgICAgaWYgeyAoZXZhbCBl Y2hvICIkYXNfbWU6JExJTkVOTzogXCIkYXJjaGl2ZV9jbWRzIDJcPlwmMSBcfCBncmVwIFwiIC1s YyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFcIiIpID4mNQotKyAgKGV2YWwgJGFyY2hpdmVfY21kcyAy XD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKSAyPiY1Ci0rICBhY19z dGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKyAgICAgICAgdGhlbgotKwkgIGFyY2hpdmVf Y21kc19uZWVkX2xjPW5vCi0rICAgICAgICBlbHNlCi0rCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9 eWVzCi0rICAgICAgICBmaQotKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X3NhdmVf YWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAgICBlbHNlCi0rICAgICAgICBjYXQgY29uZnRlc3Qu ZXJyIDE+JjUKLSsgICAgICBmaQotKyAgICAgICRybSBjb25mdGVzdCoKLSsgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXJjaGl2ZV9jbWRzX25lZWRfbGMiID4mNQot KyRhc19lY2hvICIkYXJjaGl2ZV9jbWRzX25lZWRfbGMiID4mNjsgfQotKyAgICAgIDs7Ci0rICAg IGVzYWMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4gIiA+JjY7IH0K LStsaWJyYXJ5X25hbWVzX3NwZWM9Ci0rbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLStzb25hbWVf c3BlYz0KLStzaHJleHRfY21kcz0iLnNvIgotK3Bvc3RpbnN0YWxsX2NtZHM9Ci0rcG9zdHVuaW5z dGFsbF9jbWRzPQotK2ZpbmlzaF9jbWRzPQotK2ZpbmlzaF9ldmFsPQotK3NobGlicGF0aF92YXI9 Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KLSt2ZXJzaW9uX3R5cGU9bm9u ZQotK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLStzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKLSsKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgot KyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBkYXJ3aW4qKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmll czovLC9MUi8iIDs7Ci0rICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8iIDs7Ci0rICBl c2FjCi0rICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgYXdr ICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAot KyAgaWYgZWNobyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgZ3JlcCAnOycgPi9kZXYvbnVsbCA7 IHRoZW4KLSsgICAgIyBpZiB0aGUgcGF0aCBjb250YWlucyAiOyIgdGhlbiB3ZSBhc3N1bWUgaXQg dG8gYmUgdGhlIHNlcGFyYXRvcgotKyAgICAjIG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFu ZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKLSsgICAgIyBhc3N1bWVkIHRo YXQgbm8gcGFydCBvZiBhIG5vcm1hbCBwYXRobmFtZSBjb250YWlucyAiOyIgYnV0IHRoYXQgc2hv dWxkCi0rICAgICMgb2theSBpbiB0aGUgcmVhbCB3b3JsZCB3aGVyZSAiOyIgaW4gZGlycGF0aHMg aXMgaXRzZWxmIHByb2JsZW1hdGljLgotKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIk bHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKLSsgIGVsc2UKLSsgICAg bHRfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAg LWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICBmaQotKyAgIyBPaywgbm93IHdlIGhhdmUg dGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRocm91Z2ggaXQKLSsg ICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5LgotKyAgbHRfdG1wX2x0X3NlYXJj aF9wYXRoX3NwZWM9Ci0rICBsdF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQRkxBR1MgJENGTEFHUyAk TERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rldi9udWxsYAotKyAgZm9yIGx0 X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbwotKyAgICBpZiB0ZXN0IC1kICIk bHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciI7IHRoZW4KLSsgICAgICBsdF90bXBfbHRfc2Vh cmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aC8k bHRfbXVsdGlfb3NfZGlyIgotKyAgICBlbHNlCi0rICAgICAgdGVzdCAtZCAiJGx0X3N5c19wYXRo IiAmJiBcCi0rCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9w YXRoX3NwZWMgJGx0X3N5c19wYXRoIgotKyAgICBmaQotKyAgZG9uZQotKyAgbHRfc2VhcmNoX3Bh dGhfc3BlYz1gZWNobyAkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgfCBhd2sgJwotK0JFR0lO IHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKLSsgIGx0X2Zvbz0iIjsKLSsgIGx0X2NvdW50PTA7Ci0r ICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0X2ktLSkgewotKyAgICBpZiAoJGx0X2kgIT0g IiIgJiYgJGx0X2kgIT0gIi4iKSB7Ci0rICAgICAgaWYgKCRsdF9pID09ICIuLiIpIHsKLSsgICAg ICAgIGx0X2NvdW50Kys7Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIGlmIChsdF9jb3VudCA9 PSAwKSB7Ci0rICAgICAgICAgIGx0X2Zvbz0iLyIgJGx0X2kgbHRfZm9vOwotKyAgICAgICAgfSBl bHNlIHsKLSsgICAgICAgICAgbHRfY291bnQtLTsKLSsgICAgICAgIH0KLSsgICAgICB9Ci0rICAg IH0KLSsgIH0KLSsgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJlcVtsdF9mb29dKys7IH0KLSsg IGlmIChsdF9mcmVxW2x0X2Zvb10gPT0gMSkgeyBwcmludCBsdF9mb287IH0KLSt9J2AKLSsgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAkbHRfc2VhcmNoX3BhdGhfc3BlY2AKLStlbHNl Ci0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9s aWIiCi0rZmkKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgotK2hhcmRjb2RlX2ludG9fbGlicz1u bwotKwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0IGRv ZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFy Z3VtZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2Fp eDMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKLSsgIHNo bGlicGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBw b3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIDs7Ci0r Ci0rYWl4WzQtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0cyBJQTY0 Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3Jl YXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhl IGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0aGUgbGluZSBgIyEgLicuICBU aGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0bwotKyAgICAjIGRlcGVuZCBv biBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgotKyAg ICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAgICBjYXNl ICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuWzAxXSB8IGFpeDQuWzAxXS4qKQotKyAg ICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dO VUNfTUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMgJwotKwkgICBlY2hvICcjZW5kaWYn OyB9IHwgJHtDQ30gLUUgLSB8IGdyZXAgeWVzID4gL2Rldi9udWxsOyB0aGVuCi0rCToKLSsgICAg ICBlbHNlCi0rCWNhbl9idWlsZF9zaGFyZWQ9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAg IGVzYWMKLSsgICAgIyBBSVggKG9uIFBvd2VyKikgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwg c28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNvZGUgY29ycmVjdAotKyAgICAjIHNvbmFtZSBp bnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRv Ci0rICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBm dXR1cmUuCi0rICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhl bgotKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAob24gQUlYIDQuMiBvciBsYXRl cikgdXNlIGxpYjxuYW1lPi5zbwotKyAgICAgICMgaW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBs ZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUgbm90Ci0rICAgICAgIyB0eXBpY2FsIEFJWCBz aGFyZWQgbGlicmFyaWVzLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBlbHNlCi0rICAgICAg IyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3Vn aCBBSVg0LjIKLSsgICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRp bWUgbGlua2luZy4KLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9LmEgJGxpYm5hbWUuYScKLSsgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBmaQotKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBB VEgKLSsgIGZpCi0rICA7OwotKwotK2FtaWdhb3MqKQotKyAgbGlicmFyeV9uYW1lc19zcGVjPSck bGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICMgQ3JlYXRlICR7bGlibmFtZX1faXhs aWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMuCi0rICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBp biBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRlY2hv ICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbXi9dKlwpXC5peGxpYnJhcnkkJVwxJSdc JydgOyB0ZXN0ICRybSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNk IC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lz L2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9u ZScKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3NoYXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAgc2hs aWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNkaVs0NV0qKQotKyAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZp bmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIv c2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xv Y2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIg L3Vzci9sb2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlu cyAvdXNyL2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMg YSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93Ci0rICAjIGxpYnRvb2wgdG8g aGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0rCi0rY3lnd2luKiB8IG1pbmd3 KiB8IHB3MzIqKQotKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKLSsgIHNocmV4dF9jbWRzPSIuZGxs IgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsKLSsgIGNhc2Ug JEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIq KQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLmRsbC5hJwotKyAgICAjIERMTCBp cyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCi0rICAg IHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgotKyAgICAg IGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcnXCR7YmFzZV9maWxlfSdcJydp O2VjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRs cGF0aGB+Ci0rICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+Ci0rICAg ICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgotKyAgICAgIGNo bW9kIGEreCBcJGRsZGlyLyRkbG5hbWUnCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9 YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAg ZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJHJtIFwkZGxwYXRoJwotKyAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAg Y3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRo YW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAn cy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVy c3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIv dXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgotKyAgICAgIDs7Ci0rICAg IG1pbmd3KikKLSsgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZp eAotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQg LWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBncmVwICJebGlicmFy aWVzOiIgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCi0rICAgICAg aWYgZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCBncmVwICc7W2MtekMtWl06Lycg Pi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93 cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0rICAgICAgICAjIG1pbmd3IGdjYywgYnV0IHdlIGFy ZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2VhcmNoCi0rICAgICAgICAjIHBh dGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5k bGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJz dGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0rICAgICAgICAjIGVzcGVjaWFsbHkgYXMgd2Ug bWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3IG9iamR1bXAsCi0rICAgICAg ICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0r ICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8gIiRzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0rICAgICAgZWxzZQotKyAgICAgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8 ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotKyAgICAgIGZpCi0rICAgICAgOzsK LSsgICAgcHczMiopCi0rICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0 aGFuICdsaWInCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwg c2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9n J2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAg OzsKLSsKLSsgICopCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7 cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0g JGxpYm5hbWUubGliJwotKyAgICA7OwotKyAgZXNhYwotKyAgZHluYW1pY19saW5rZXI9J1dpbjMy IGxkLmV4ZScKLSsgICMgRklYTUU6IGZpcnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQgdGhlIGRp cmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBpcyBpbgotKyAgc2hsaWJwYXRoX3Zhcj1QQVRICi0rICA7 OwotKwotK2RhcndpbiogfCByaGFwc29keSopCi0rICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3Mg ZHlsZCIKLSsgIHZlcnNpb25fdHlwZT1kYXJ3aW4KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg bmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHt2ZXJzdWZmaXh9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRz aGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICi0rICBzaHJl eHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGli YCcKLSsKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYyAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNy L2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsgIHZlcnNpb25f dHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk c2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsK LStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStmcmVlYnNkKiB8 IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lm IHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3Qg dGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0rICAgIG9iamZv cm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRob3N0X29zIGlu Ci0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICopIG9iamZvcm1h dD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpm b3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVsZiopCi0rICAg ICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKLSsgICAgICA7 OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFdKikKLSsg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxmMy5bMi05XSog fCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJlZWJzZDQuMS4x IHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8K LSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgKikgIyBmcm9tIDQuNiBv biwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0r ICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0r Z251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBu ZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStocHV4 OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25kaW5n IHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KLSsgICMgbGlu ayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVk X2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAkaG9zdF9jcHUgaW4K LSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCi0rICAgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n Ci0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCi0rICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIv aHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgotKyAgICBm aQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjCi0rICAgIDs7Ci0rICAgaHBwYSo2NCopCi0rICAgICBzaHJleHRfY21kcz0nLnNsJwotKyAg ICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29z IGRsZC5zbCIKLSsgICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRIICMgSG93IHNob3Vs ZCB3ZSBoYW5kbGUgU0hMSUJfUEFUSAotKyAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n Ci0rICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJwotKyAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91 c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYwotKyAgICAgOzsKLSsgICAqKQotKyAgICBzaHJleHRfY21k cz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxp YnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5v ICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n Ci0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVu bGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0YWxsX2NtZHM9 J2NobW9kIDU1NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4WzMtOV0qKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9 JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAo UEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg IDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OwotKyAgICAqKQot KwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rCQl2ZXJzaW9uX3R5 cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWlyaXgKLSsJZmkgOzsKLSsgIGVzYWMK LSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgY2FzZSAkaG9zdF9vcyBp bgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGlic3VmZj0gc2hsaWJzdWZmPQotKyAg ICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBv ZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwq Ii1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzIt Yml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBu MzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKLSsg ICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCi0rICAgICAgbGli c3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKLSsgICAgKikgbGlic3VmZj0g c2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsg IGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJz dWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0g L2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotKyMg Tm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KLSts aW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQotKyAgZHluYW1pY19saW5r ZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsq YnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwot KyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFU SD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgIyBU aGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1bmFjY2VwdGFibGUuCi0rICAj IFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZvciBmYXN0X2luc3RhbGwKLSsg ICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz Ci0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHts aWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCi0rICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IgotKwotKyAgIyBBcHBl bmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKLSsgIGlmIHRlc3QgLWYg L2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAv IHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFwkMikpOyBz a2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRjL2xk LnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWyAJXSpod2NhcFsgCV0vZDtzL1s6LAldLyAv ZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKLSsgICAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAk bHRfbGRfZXh0cmEiCi0rICBmaQotKwotKyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQu c28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCi0rICAjIHBvd2VycGMsIGJlY2F1 c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhlCi0rICAj IEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNv bXBpbGVycywKLSsgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBvcnQgZHluYW1pYyBs aW5raW5nIHRoZXNlIGRheXMgYW5kCi0rICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1z aGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKLSsgICMgYXNzdW1lIHRoZSBHTlUv TGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgotKyAgZHluYW1pY19saW5rZXI9J0dOVS9M aW51eCBsZC5zbycKLSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGlmIGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgICAgZmluaXNoX2NtZHM9 J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKLSsgICAgZHluYW1pY19s aW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJwotKyAgZWxzZQotKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9 JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVsZl9zbycKLSsgIGZpCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStuZXdzb3M2KQot KyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICA7 OwotKwotK250by1xbngqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK LSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg IyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVk IHZlcnNpb25lZCBsaWJzLgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBvcGVuYnNkMy4zIHwg b3BlbmJzZDMuMy4qKSBuZWVkX3ZlcnNpb249eWVzIDs7Ci0rICAgICopICAgICAgICAgICAgICAg ICAgICAgICAgIG5lZWRfdmVyc2lvbj1ubyAgOzsKLSsgIGVzYWMKLSsgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRI Oi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19F TEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBj IjsgdGhlbgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgb3BlbmJzZDIuWzg5XSB8IG9w ZW5ic2QyLls4OV0uKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rCTs7Ci0r ICAgICAgKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKwk7OwotKyAgICAg IGVzYWMKLSsgIGVsc2UKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAg ZmkKLSsgIDs7Ci0rCi0rb3MyKikKLSsgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCi0rICBzaHJleHRf Y21kcz0iLmRsbCIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVj PSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKLSsgIGR5bmFtaWNfbGlua2VyPSdP Uy8yIGxkLmV4ZScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAgOzsKLSsKLStvc2YzKiB8 IG9zZjQqIHwgb3NmNSopCi0rICB2ZXJzaW9uX3R5cGU9b3NmCi0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxp YiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGli IC92YXIvc2hsaWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYyIKLSsgIDs7Ci0rCi0rcmRvcyopCi0rICBkeW5hbWljX2xpbmtlcj1ubwot KyAgOzsKLSsKLStzb2xhcmlzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAjIGxkZCBjb21wbGFpbnMgdW5sZXNz IGxpYnJhcmllcyBhcmUgZXhlY3V0YWJsZQotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3gg JGxpYicKLSsgIDs7Ci0rCi0rc3Vub3M0KikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQ QVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAg aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIGZpCi0rICBuZWVkX3ZlcnNpb249eWVzCi0rICA7OwotKwotK3N5c3Y0IHwgc3lzdjQu MyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAgICBzbmkp Ci0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAgbmVlZF9saWJf cHJlZml4PW5vCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1CbGFyZ2Vk eW5zeW0nCi0rICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsgICAgICA7OwotKyAgICBz aWVtZW5zKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIDs7Ci0rICAgIG1vdG9y b2xhKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIG5lZWRfdmVyc2lvbj1ubwot KyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCi0rICAgICAgOzsKLSsg IGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjQqTVAqKQotKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhl bgotKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGli bmFtZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFy ZWRfZXh0fS4kbWFqb3InCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBm aQotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwg T3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0r ICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAvdXNy L2xpYiAvbGliJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGVsc2UK LSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCi0r ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgY2FzZSAkaG9zdF9vcyBp bgotKyAgICAgIHNjbzMuMnY1KikKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgotKwk7OwotKyAgICBlc2FjCi0rICBmaQot KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJwotKyAgOzsKLSsKLSt1dHM0 KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rKikKLSsgIGR5bmFtaWNfbGlua2VyPW5v Ci0rICA7OwotK2VzYWMKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZHlu YW1pY19saW5rZXIiID4mNQotKyRhc19lY2hvICIkZHluYW1pY19saW5rZXIiID4mNjsgfQotK3Rl c3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0raWYg dGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3Zfc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0rc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgot K2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3Zfc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKLStm aQotKwotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWMiCi0rCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEggJHNobGli cGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICB2 YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdD Q19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFUSCIKLStmaQotKwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBw YXRocyBpbnRvIHByb2dyYW1zIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gaGFy ZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uICIgPiY2OyB9Ci0raGFyZGNvZGVf YWN0aW9uPQotK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIiB8fCBcCi0r ICAgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiB8fCBcCi0rICAgdGVzdCAiWCRoYXJkY29kZV9hdXRv bWF0aWMiID0gIlh5ZXMiIDsgdGhlbgotKwotKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0 YW50IGRpcmVjdG9yaWVzLgotKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gbm8gJiYK LSsgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMgc2hs aWJwYXRoX3Zhciwgd2UKLSsgICAgICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBtaWdo dCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKLSsgICAgICMgd2hlbiB3ZSBzaG91bGQg YmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKLSsgICAgICMjIHRlc3Qg IiRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICkiICE9IG5vICYmCi0rICAg ICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgIT0gbm87IHRoZW4KLSsgICAgIyBMaW5raW5nIGFs d2F5cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KLSsgICAgaGFy ZGNvZGVfYWN0aW9uPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQg aGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgotKyAgICBo YXJkY29kZV9hY3Rpb249aW1tZWRpYXRlCi0rICBmaQotK2Vsc2UKLSsgICMgV2UgY2Fubm90IGhh cmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCi0r ICAjIGRpcmVjdG9yaWVzLgotKyAgaGFyZGNvZGVfYWN0aW9uPXVuc3VwcG9ydGVkCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZGNvZGVfYWN0aW9uIiA+JjUK LSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbiIgPiY2OyB9Ci0rCi0raWYgdGVzdCAiJGhhcmRj b2RlX2FjdGlvbiIgPSByZWxpbms7IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90 IHN1cHBvcnRlZAotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotK2VsaWYgdGVzdCAiJHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKLSsgICAgIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IG5vOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkK LSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKLStmaQotKwotK3N0cmlwbGliPQotK29s ZF9zdHJpcGxpYj0KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhl ciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUuLi4gIiA+JjY7IH0K LStpZiB0ZXN0IC1uICIkU1RSSVAiICYmICRTVFJJUCAtViAyPiYxIHwgZ3JlcCAiR05VIHN0cmlw IiA+L2Rldi9udWxsOyB0aGVuCi0rICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3Ry aXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgotKyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBz dHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotK2Vsc2UK LSsjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkg Z29vZCBlbm91Z2gKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICBkYXJ3aW4qKQotKyAgICAgICBp ZiB0ZXN0IC1uICIkU1RSSVAiIDsgdGhlbgotKyAgICAgICAgIHN0cmlwbGliPSIkU1RSSVAgLXgi Ci0rICAgICAgICAgb2xkX3N0cmlwbGliPSIkU1RSSVAgLVMiCi0rICAgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7 IH0KLSsgICAgICAgZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsgICAgICAgOzsKLSsgICAqKQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hv ICJubyIgPiY2OyB9Ci0rICAgIDs7Ci0rICBlc2FjCi0rZmkKLSsKLStpZiB0ZXN0ICJ4JGVuYWJs ZV9kbG9wZW4iICE9IHh5ZXM7IHRoZW4KLSsgIGVuYWJsZV9kbG9wZW49dW5rbm93bgotKyAgZW5h YmxlX2Rsb3Blbl9zZWxmPXVua25vd24KLSsgIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5r bm93bgotK2Vsc2UKLSsgIGx0X2N2X2Rsb3Blbj1ubwotKyAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0r Ci0rICBjYXNlICRob3N0X29zIGluCi0rICBiZW9zKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJsb2Fk X2FkZF9vbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgIGx0X2N2X2Rsb3Blbl9zZWxm PXllcwotKyAgICA7OwotKwotKyAgbWluZ3cqIHwgcHczMiopCi0rICAgIGx0X2N2X2Rsb3Blbj0i TG9hZExpYnJhcnkiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgIDs7Ci0rCi0rICBjeWd3 aW4qKQotKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9 Ci0rICAgOzsKLSsKLSsgIGRhcndpbiopCi0rICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3ZSBu ZWVkIHRvIGxpbmsgYWdhaW5zdCBpdAotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBm b3IgZGxvcGVuIGluIC1sZGwuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2xpYl9kbF9k bG9wZW4rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sZGwgICRMSUJT IgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwot K19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rLyogT3Zl cnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAg VXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0ND Ci0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs IGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0r Y2hhciBkbG9wZW4gKCk7Ci0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gZGxvcGVuICgpOwot KyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsg IHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3Rf eCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgYWNfY3ZfbGliX2RsX2Rs b3Blbj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2xp Yl9kbF9kbG9wZW49bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0 Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9 JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2xp Yl9kbF9kbG9wZW4iID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPSB4 IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0i LWxkbCIKLStlbHNlCi0rCi0rICAgIGx0X2N2X2Rsb3Blbj0iZHlsZCIKLSsgICAgbHRfY3ZfZGxv cGVuX2xpYnM9Ci0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcwotKwotK2ZpCi0rCi0rICAgOzsK LSsKLSsgICopCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig c2hsX2xvYWQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzaGxfbG9hZC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfZnVuY19zaGxfbG9hZCtzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKy8qIERlZmluZSBzaGxfbG9hZCB0byBhbiBpbm5v Y3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHNobF9sb2FkLgotKyAg IEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXku ICAqLwotKyNkZWZpbmUgc2hsX2xvYWQgaW5ub2N1b3VzX3NobF9sb2FkCi0rCi0rLyogU3lzdGVt IGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5 cGVzLAotKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHNobF9sb2FkICgpOyBiZWxv dy4KLSsgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBk ZWZpbmVkLCBzaW5jZQotKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGlu ZyBjb21waWxlcnMuICAqLwotKwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRz Lmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwotKyN1bmRlZiBz aGxfbG9hZAotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2 b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy ZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0 ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgc2hsX2xvYWQgKCk7Ci0rLyogVGhlIEdOVSBDIGxpYnJh cnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwotKyAgICB0 byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBu YW1lZAotKyAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1l IGlzIGFuIGFsaWFzLiAgKi8KLSsjaWYgZGVmaW5lZCBfX3N0dWJfc2hsX2xvYWQgfHwgZGVmaW5l ZCBfX3N0dWJfX19zaGxfbG9hZAotK2Nob2tlIG1lCi0rI2VuZGlmCi0rCi0raW50Ci0rbWFpbiAo KQotK3sKLStyZXR1cm4gc2hsX2xvYWQgKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7 IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xp bmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQg Y29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRh Y19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAg ICB9OyB0aGVuCi0rICBhY19jdl9mdW5jX3NobF9sb2FkPXllcwotK2Vsc2UKLSsgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfZnVuY19zaGxfbG9hZD1ubwotK2ZpCi0rCi0rcm0g LXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9mdW5j X3NobF9sb2FkIiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfc2hsX2xvYWQiID0geCIi eWVzOyB0aGVuCi0rICBsdF9jdl9kbG9wZW49InNobF9sb2FkIgotK2Vsc2UKLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzaGxfbG9hZCBpbiAtbGRsZC4uLiAiID4mNjsgfQot K2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCtzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9M SUJTPSRMSUJTCi0rTElCUz0iLWxkbGQgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBl bmQgY29uZmRlZnMuaC4gICovCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90 b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1 c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hhciBzaGxfbG9hZCAoKTsKLStpbnQKLStt YWluICgpCi0rewotK3JldHVybiBzaGxfbG9hZCAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot K2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3Nz X2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0r ICAgICAgIH07IHRoZW4KLSsgIGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQ9eWVzCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9saWJfZGxkX3NobF9sb2FkPW5vCi0r ZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2 ZV9MSUJTCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf bGliX2RsZF9zaGxfbG9hZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfZGxkX3NobF9sb2Fk IiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID0geCIieWVzOyB0 aGVuCi0rICBsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQi Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbG9w ZW4iID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4uLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2FjX2N2X2Z1bmNfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rLyogRGVmaW5lIGRsb3BlbiB0byBhbiBpbm5vY3VvdXMgdmFyaWFu dCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGRsb3Blbi4KLSsgICBGb3IgZXhhbXBsZSwg SFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KLSsjZGVmaW5l IGRsb3BlbiBpbm5vY3VvdXNfZGxvcGVuCi0rCi0rLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUg X19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAotKyAgICB3aGljaCBj YW4gY29uZmxpY3Qgd2l0aCBjaGFyIGRsb3BlbiAoKTsgYmVsb3cuCi0rICAgIFByZWZlciA8bGlt aXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICAg PGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KLSsK LSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNs dWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsKLSsjdW5kZWYgZGxvcGVuCi0rCi0rLyogT3ZlcnJp ZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAgVXNl IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0r ICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw cGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hh ciBkbG9wZW4gKCk7Ci0rLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5j dGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwotKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZ Uy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotKyAgICBzb21ldGhpbmcgc3Rh cnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KLSsjaWYg ZGVmaW5lZCBfX3N0dWJfZGxvcGVuIHx8IGRlZmluZWQgX19zdHViX19fZGxvcGVuCi0rY2hva2Ug bWUKLSsjZW5kaWYKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0r ICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0 ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94 IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9mdW5jX2Rsb3Bl bj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2Z1bmNf ZGxvcGVuPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBc Ci0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX2Rsb3BlbiIgPiY1Ci0r JGFzX2VjaG8gIiRhY19jdl9mdW5jX2Rsb3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9m dW5jX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgotK2Vs c2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGlu IC1sZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJf c2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbCAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFs IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBt aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVu IGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBf X2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIGRsb3BlbiAoKTsKLStpbnQK LSttYWluICgpCi0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9 Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQK LStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAi JGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0r ICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3Qg LXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9z c19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot KyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9saWJfZGxfZGxvcGVuPXllcwotK2Vsc2UKLSsgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfbGliX2RsX2Rsb3Blbj1ubwotK2ZpCi0r Ci0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElC UwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9k bF9kbG9wZW4iID4mNQotKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9Ci0r aWYgdGVzdCAieCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbgotKyAgbHRfY3Zf ZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIgotK2Vsc2UKLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3ZsZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbHN2bGQuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2FjX2N2X2xpYl9zdmxkX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9M SUJTPSRMSUJTCi0rTElCUz0iLWxzdmxkICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog ZW5kIGNvbmZkZWZzLmguICAqLwotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJv dG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0 IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3Bs dXNwbHVzCi0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgZGxvcGVuICgpOwotK2ludAotK21h aW4gKCkKLSt7Ci0rcmV0dXJuIGRsb3BlbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lm IHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf bGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNh dCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAi JGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAg ICAgIH07IHRoZW4KLSsgIGFjX2N2X2xpYl9zdmxkX2Rsb3Blbj15ZXMKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2xpYl9zdmxkX2Rsb3Blbj1ubwotK2ZpCi0r Ci0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElC UwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9z dmxkX2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID4mNjsg fQotK2lmIHRlc3QgIngkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA9IHgiInllczsgdGhlbgotKyAg bHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbHN2bGQiCi0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbGRfbGluayBpbiAt bGRsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsZF9saW5rIGluIC1sZGxkLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9saWJfZGxkX2RsZF9saW5rK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNr X2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbGRsZCAgJExJQlMiCi0rY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGlu dGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNl IGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFu ZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNp ZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIGRsZF9saW5rICgp OwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsZF9saW5rICgpOwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qk YWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRh Y19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgYWNfY3ZfbGliX2RsZF9kbGRfbGluaz15ZXMK LStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2xpYl9kbGRfZGxk X2xpbms9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwK LSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2No ZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2xpYl9k bGRfZGxkX2xpbmsiID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIg PSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Blbl9s aWJzPSItbGRsZCIKLStmaQotKwotKwotK2ZpCi0rCi0rCi0rZmkKLSsKLSsKLStmaQotKwotKwot K2ZpCi0rCi0rCi0rZmkKLSsKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRlc3QgIngkbHRf Y3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4KLSsgICAgZW5hYmxlX2Rsb3Blbj15ZXMKLSsgIGVsc2UK LSsgICAgZW5hYmxlX2Rsb3Blbj1ubwotKyAgZmkKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3BlbiBp bgotKyAgZGxvcGVuKQotKyAgICBzYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgIHRlc3Qg IngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQUEZMQUdTIC1E SEFWRV9ETEZDTl9IIgotKwotKyAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICB3bD0k bHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlY1wiCi0rCi0rICAgIHNhdmVfTElCUz0iJExJQlMiCi0rICAgIExJQlM9IiRs dF9jdl9kbG9wZW5fbGlicyAkTElCUyIKLSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZi4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfZGxvcGVuX3NlbGYrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jv c3MKLStlbHNlCi0rICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVk X3VzY29yZT0yCi0rICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgotKyAgY2F0ID4gY29uZnRlc3Qu JGFjX2V4dCA8PEVPRgotKyNsaW5lIDEwOTcxICJjb25maWd1cmUiCi0rI2luY2x1ZGUgImNvbmZk ZWZzLmgiCi0rCi0rI2lmIEhBVkVfRExGQ05fSAotKyNpbmNsdWRlIDxkbGZjbi5oPgotKyNlbmRp ZgotKwotKyNpbmNsdWRlIDxzdGRpby5oPgotKwotKyNpZmRlZiBSVExEX0dMT0JBTAotKyMgIGRl ZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwKLSsjZWxzZQotKyMgIGlmZGVmIERMX0dMT0JB TAotKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKLSsjICBlbHNlCi0rIyAgICBk ZWZpbmUgTFRfRExHTE9CQUwJCTAKLSsjICBlbmRpZgotKyNlbmRpZgotKwotKy8qIFdlIG1heSBo YXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UK LSsgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0uICovCi0rI2lm bmRlZiBMVF9ETExBWllfT1JfTk9XCi0rIyAgaWZkZWYgUlRMRF9MQVpZCi0rIyAgICBkZWZpbmUg TFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZCi0rIyAgZWxzZQotKyMgICAgaWZkZWYgRExfTEFa WQotKyMgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQotKyMgICAgZWxzZQot KyMgICAgICBpZmRlZiBSVExEX05PVwotKyMgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9X CVJUTERfTk9XCi0rIyAgICAgIGVsc2UKLSsjICAgICAgICBpZmRlZiBETF9OT1cKLSsjICAgICAg ICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCURMX05PVwotKyMgICAgICAgIGVsc2UKLSsjICAg ICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCTAKLSsjICAgICAgICBlbmRpZgotKyMgICAg ICBlbmRpZgotKyMgICAgZW5kaWYKLSsjICBlbmRpZgotKyNlbmRpZgotKwotKyNpZmRlZiBfX2Nw bHVzcGx1cwotK2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQpOwotKyNlbmRpZgotKwotK3ZvaWQg Zm5vcmQoKSB7IGludCBpPTQyO30KLStpbnQgbWFpbiAoKQotK3sKLSsgIHZvaWQgKnNlbGYgPSBk bG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cpOwotKyAgaW50IHN0YXR1cyA9 ICRsdF9kbHVua25vd247Ci0rCi0rICBpZiAoc2VsZikKLSsgICAgewotKyAgICAgIGlmIChkbHN5 bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOwotKyAgICAg IGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91c2Nv cmU7Ci0rICAgICAgLyogZGxjbG9zZSAoc2VsZik7ICovCi0rICAgIH0KLSsgIGVsc2UKLSsgICAg cHV0cyAoZGxlcnJvciAoKSk7Ci0rCi0rICAgIGV4aXQgKHN0YXR1cyk7Ci0rfQotK0VPRgotKyAg aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0rICAo ZXZhbCAkYWNfbGluaykgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICAo Li9jb25mdGVzdDsgZXhpdDsgKSA+JjUgMj4vZGV2L251bGwKLSsgICAgbHRfc3RhdHVzPSQ/Ci0r ICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KLSsgICAgICB4JGx0X2Rsbm9fdXNjb3JlKSBsdF9jdl9k bG9wZW5fc2VsZj15ZXMgOzsKLSsgICAgICB4JGx0X2RsbmVlZF91c2NvcmUpIGx0X2N2X2Rsb3Bl bl9zZWxmPXllcyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSBsdF9jdl9kbG9wZW5fc2Vs Zj1ubyA7OwotKyAgICBlc2FjCi0rICBlbHNlIDoKLSsgICAgIyBjb21waWxhdGlvbiBmYWlsZWQK LSsgICAgbHRfY3ZfZGxvcGVuX3NlbGY9bm8KLSsgIGZpCi0rZmkKLStybSAtZnIgY29uZnRlc3Qq Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3Zf ZGxvcGVuX3NlbGYiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGxvcGVuX3NlbGYiID4mNjsgfQot KwotKyAgICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KLSsgICAg ICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0X3By b2dfY29tcGlsZXJfc3RhdGljXCIKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBp dHNlbGYiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxp bmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHts dF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg PSB5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPWNyb3NzCi0rZWxzZQot KyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9Mgot KyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxF T0YKLSsjbGluZSAxMTA3MSAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotKwot KyNpZiBIQVZFX0RMRkNOX0gKLSsjaW5jbHVkZSA8ZGxmY24uaD4KLSsjZW5kaWYKLSsKLSsjaW5j bHVkZSA8c3RkaW8uaD4KLSsKLSsjaWZkZWYgUlRMRF9HTE9CQUwKLSsjICBkZWZpbmUgTFRfRExH TE9CQUwJCVJUTERfR0xPQkFMCi0rI2Vsc2UKLSsjICBpZmRlZiBETF9HTE9CQUwKLSsjICAgIGRl ZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCi0rIyAgZWxzZQotKyMgICAgZGVmaW5lIExUX0RM R0xPQkFMCQkwCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsvKiBXZSBtYXkgaGF2ZSB0byBkZWZp bmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCi0rICAgZmluZCBv dXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBsYXRmb3JtLiAqLwotKyNpZm5kZWYgTFRfRExM QVpZX09SX05PVwotKyMgIGlmZGVmIFJUTERfTEFaWQotKyMgICAgZGVmaW5lIExUX0RMTEFaWV9P Ul9OT1cJCVJUTERfTEFaWQotKyMgIGVsc2UKLSsjICAgIGlmZGVmIERMX0xBWlkKLSsjICAgICAg ZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCURMX0xBWlkKLSsjICAgIGVsc2UKLSsjICAgICAgaWZk ZWYgUlRMRF9OT1cKLSsjICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlSVExEX05PVwot KyMgICAgICBlbHNlCi0rIyAgICAgICAgaWZkZWYgRExfTk9XCi0rIyAgICAgICAgICBkZWZpbmUg TFRfRExMQVpZX09SX05PVwlETF9OT1cKLSsjICAgICAgICBlbHNlCi0rIyAgICAgICAgICBkZWZp bmUgTFRfRExMQVpZX09SX05PVwkwCi0rIyAgICAgICAgZW5kaWYKLSsjICAgICAgZW5kaWYKLSsj ICAgIGVuZGlmCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStl eHRlcm4gIkMiIHZvaWQgZXhpdCAoaW50KTsKLSsjZW5kaWYKLSsKLSt2b2lkIGZub3JkKCkgeyBp bnQgaT00Mjt9Ci0raW50IG1haW4gKCkKLSt7Ci0rICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBM VF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKLSsgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtu b3duOwotKwotKyAgaWYgKHNlbGYpCi0rICAgIHsKLSsgICAgICBpZiAoZGxzeW0gKHNlbGYsImZu b3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKLSsgICAgICBlbHNlIGlmIChk bHN5bSggc2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOwotKyAgICAg IC8qIGRsY2xvc2UgKHNlbGYpOyAqLwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHB1dHMgKGRsZXJy b3IgKCkpOwotKwotKyAgICBleGl0IChzdGF0dXMpOwotK30KLStFT0YKLSsgIGlmIHsgKGV2YWwg ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotKyAgKGV2YWwgJGFjX2xp bmspIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHRlc3QgLXMg Y29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KLSsgICAgKC4vY29uZnRlc3Q7 IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgk bHRfc3RhdHVzIGluCi0rICAgICAgeCRsdF9kbG5vX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZf c3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRfZGxuZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3Nl bGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSBsdF9jdl9kbG9wZW5f c2VsZl9zdGF0aWM9bm8gOzsKLSsgICAgZXNhYwotKyAgZWxzZSA6Ci0rICAgICMgY29tcGlsYXRp b24gZmFpbGVkCi0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubwotKyAgZmkKLStmaQot K3JtIC1mciBjb25mdGVzdCoKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMiID4mNQotKyRhc19lY2hvICIkbHRf Y3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+JjY7IH0KLSsgICAgZmkKLSsKLSsgICAgQ1BQRkxBR1M9 IiRzYXZlX0NQUEZMQUdTIgotKyAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKyAgICBMSUJT PSIkc2F2ZV9MSUJTIgotKyAgICA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVu X3NlbGYgaW4KLSsgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmPSRsdF9jdl9kbG9wZW5fc2Vs ZiA7OwotKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsKLSsgIGVzYWMKLSsKLSsg IGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgotKyAgeWVzfG5vKSBlbmFibGVfZGxv cGVuX3NlbGZfc3RhdGljPSRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgOzsKLSsgICopIGVuYWJs ZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93biA7OwotKyAgZXNhYwotK2ZpCi0rCi0rCi0rIyBS ZXBvcnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0Ci0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVk IGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0 cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGNhbl9idWlsZF9zaGFyZWQiID4mNQotKyRhc19lY2hvICIkY2FuX2J1aWxk X3NoYXJlZCIgPiY2OyB9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0rdGVz dCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCi0rCi0rIyBP biBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1l IG5hbWVzcGFjZSwgYW5kCi0rIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgotK2Nhc2UgJGhvc3Rf b3MgaW4KLSthaXgzKikKLSsgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVf c3RhdGljPW5vCi0rICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgICBhcmNoaXZlX2Nt ZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCi0rICAgIHBvc3RpbnN0YWxsX2NtZHM9 JyRSQU5MSUIgJGxpYicKLSsgIGZpCi0rICA7OwotKwotK2FpeFs0LTldKikKLSsgIGlmIHRlc3Qg IiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBu byA7IHRoZW4KLSsgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0 aWM9bm8KLSsgIGZpCi0rICAgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRlbmFibGVfc2hhcmVkIiA+JjUKLSskYXNfZWNobyAiJGVuYWJsZV9zaGFyZWQi ID4mNjsgfQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKyMgTWFrZSBzdXJl IGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgotK3Rlc3QgIiRl bmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcwotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRlbmFibGVfc3RhdGljIiA+JjUKLSskYXNfZWNobyAiJGVu YWJsZV9zdGF0aWMiID4mNjsgfQotKwotKyMgVGhlIGVsc2UgY2xhdXNlIHNob3VsZCBvbmx5IGZp cmUgd2hlbiBib290c3RyYXBwaW5nIHRoZQotKyMgbGlidG9vbCBkaXN0cmlidXRpb24sIG90aGVy d2lzZSB5b3UgZm9yZ290IHRvIHNoaXAgbHRtYWluLnNoCi0rIyB3aXRoIHlvdXIgcGFja2FnZSwg YW5kIHlvdSB3aWxsIGdldCBjb21wbGFpbnRzIHRoYXQgdGhlcmUgYXJlCi0rIyBubyBydWxlcyB0 byBnZW5lcmF0ZSBsdG1haW4uc2guCi0raWYgdGVzdCAtZiAiJGx0bWFpbiI7IHRoZW4KLSsgICMg U2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBh bGxvdyBvdXIgY29tbWFuZHMgdGhyb3VnaAotKyAgIyB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2Nh cGVzLgotKyAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KLSsgICAgc2V0 b3B0IE5PX0dMT0JfU1VCU1QKLSsgIGZpCi0rICAjIE5vdyBxdW90ZSBhbGwgdGhlIHRoaW5ncyB0 aGF0IG1heSBjb250YWluIG1ldGFjaGFyYWN0ZXJzIHdoaWxlIGJlaW5nCi0rICAjIGNhcmVmdWwg bm90IHRvIG92ZXJxdW90ZSB0aGUgQUNfU1VCU1RlZCB2YWx1ZXMuICBXZSB0YWtlIGNvcGllcyBv ZiB0aGUKLSsgICMgdmFyaWFibGVzIGFuZCBxdW90ZSB0aGUgY29waWVzIGZvciBnZW5lcmF0aW9u IG9mIHRoZSBsaWJ0b29sIHNjcmlwdC4KLSsgIGZvciB2YXIgaW4gZWNobyBvbGRfQ0Mgb2xkX0NG TEFHUyBBUiBBUl9GTEFHUyBFR1JFUCBSQU5MSUIgTE5fUyBMVENDIExUQ0ZMQUdTIE5NIFwKLSsg ICAgU0VEIFNIRUxMIFNUUklQIFwKLSsgICAgbGlibmFtZV9zcGVjIGxpYnJhcnlfbmFtZXNfc3Bl YyBzb25hbWVfc3BlYyBleHRyYWN0X2V4cHN5bXNfY21kcyBcCi0rICAgIG9sZF9zdHJpcGxpYiBz dHJpcGxpYiBmaWxlX21hZ2ljX2NtZCBmaW5pc2hfY21kcyBmaW5pc2hfZXZhbCBcCi0rICAgIGRl cGxpYnNfY2hlY2tfbWV0aG9kIHJlbG9hZF9mbGFnIHJlbG9hZF9jbWRzIG5lZWRfbG9ja3MgXAot KyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NkZWNsIFwKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJl c3MgXAotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWMgXAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyBvbGRfcG9zdHVuaW5zdGFsbF9jbWRz IFwKLSsgICAgY29tcGlsZXIgXAotKyAgICBDQyBcCi0rICAgIExEIFwKLSsgICAgbHRfcHJvZ19j b21waWxlcl93bCBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljIFwKLSsgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWMgXAotKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyBc Ci0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyBcCi0rICAgIHRocmVhZF9zYWZlX2ZsYWdf c3BlYyBcCi0rICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIFwKLSsgICAgZW5hYmxlX3NoYXJl ZF93aXRoX3N0YXRpY19ydW50aW1lcyBcCi0rICAgIG9sZF9hcmNoaXZlX2NtZHMgXAotKyAgICBv bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIFwKLSsgICAgcHJlZGVwX29iamVjdHMgXAotKyAgICBw b3N0ZGVwX29iamVjdHMgXAotKyAgICBwcmVkZXBzIFwKLSsgICAgcG9zdGRlcHMgXAotKyAgICBj b21waWxlcl9saWJfc2VhcmNoX3BhdGggXAotKyAgICBjb21waWxlcl9saWJfc2VhcmNoX2RpcnMg XAotKyAgICBhcmNoaXZlX2NtZHMgXAotKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzIFwKLSsgICAg cG9zdGluc3RhbGxfY21kcyBcCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcyBcCi0rICAgIG9sZF9h cmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIFwKLSsgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWcgXAot KyAgICBub191bmRlZmluZWRfZmxhZyBcCi0rICAgIGV4cG9ydF9zeW1ib2xzX2NtZHMgXAotKyAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIFwKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZCBcCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgXAotKyAgICBoYXJkY29k ZV9hdXRvbWF0aWMgXAotKyAgICBtb2R1bGVfY21kcyBcCi0rICAgIG1vZHVsZV9leHBzeW1fY21k cyBcCi0rICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIFwKLSsgICAgZml4X3NyY2ZpbGVfcGF0 aCBcCi0rICAgIGV4Y2x1ZGVfZXhwc3ltcyBcCi0rICAgIGluY2x1ZGVfZXhwc3ltczsgZG8KLSsK LSsgICAgY2FzZSAkdmFyIGluCi0rICAgIG9sZF9hcmNoaXZlX2NtZHMgfCBcCi0rICAgIG9sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHMgfCBcCi0rICAgIGFyY2hpdmVfY21kcyB8IFwKLSsgICAgYXJj aGl2ZV9leHBzeW1fY21kcyB8IFwKLSsgICAgbW9kdWxlX2NtZHMgfCBcCi0rICAgIG1vZHVsZV9l eHBzeW1fY21kcyB8IFwKLSsgICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMgfCBcCi0r ICAgIGV4cG9ydF9zeW1ib2xzX2NtZHMgfCBcCi0rICAgIGV4dHJhY3RfZXhwc3ltc19jbWRzIHwg cmVsb2FkX2NtZHMgfCBmaW5pc2hfY21kcyB8IFwKLSsgICAgcG9zdGluc3RhbGxfY21kcyB8IHBv c3R1bmluc3RhbGxfY21kcyB8IFwKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMgfCBvbGRfcG9z dHVuaW5zdGFsbF9jbWRzIHwgXAotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgfCBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYykKLSsgICAgICAjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZh bGVkIHN0cmluZ3MuCi0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFy XCIgfCBcJFhzZWQgLWUgXCJcJGRvdWJsZV9xdW90ZV9zdWJzdFwiIC1lIFwiXCRzZWRfcXVvdGVf c3Vic3RcIiAtZSBcIlwkZGVsYXlfdmFyaWFibGVfc3Vic3RcIlxgXFxcIiIKLSsgICAgICA7Owot KyAgICAqKQotKyAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwg XCRYc2VkIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3RcIlxgXFxcIiIKLSsgICAgICA7OwotKyAgICBl c2FjCi0rICBkb25lCi0rCi0rICBjYXNlICRsdF9lY2hvIGluCi0rICAqJ1wkMCAtLWZhbGxiYWNr LWVjaG8iJykKLSsgICAgbHRfZWNobz1gJGVjaG8gIlgkbHRfZWNobyIgfCAkWHNlZCAtZSAncy9c XFxcXFxcJDAgLS1mYWxsYmFjay1lY2hvIiQvJDAgLS1mYWxsYmFjay1lY2hvIi8nYAotKyAgICA7 OwotKyAgZXNhYwotKwotK2NmZ2ZpbGU9IiR7b2ZpbGV9VCIKLSsgIHRyYXAgIiRybSBcIiRjZmdm aWxlXCI7IGV4aXQgMSIgMSAyIDE1Ci0rICAkcm0gLWYgIiRjZmdmaWxlIgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRvZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogY3JlYXRpbmcgJG9maWxlIiA+JjY7fQotKwotKyAgY2F0IDw8X19FT0ZfXyA+PiAiJGNmZ2Zp bGUiCi0rIyEgJFNIRUxMCi0rCi0rIyBgJGVjaG8gIiRjZmdmaWxlIiB8IHNlZCAncyVeLiovJSUn YCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2Vz LgotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSAk VkVSU0lPTiRUSU1FU1RBTVApCi0rIyBOT1RFOiBDaGFuZ2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdp bGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCi0rIwotKyMgQ29weXJpZ2h0IChDKSAxOTk2 LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0r IyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbDoKLSsjIE9yaWdpbmFsbHkgYnkgR29y ZG9uIE1hdHppZ2tlaXQgPGdvcmRAZ251LmFpLm1pdC5lZHU+LCAxOTk2Ci0rIwotKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0rIyBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot KyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl ZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0 aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0rIwotKyMgQXMgYSBzcGVjaWFs IGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQotKyMg ZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBh Ci0rIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkg aW5jbHVkZSBpdCB1bmRlcgotKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91 IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgotKwotKyMgQSBzZWQgcHJvZ3JhbSB0 aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4KLStTRUQ9JGx0X1NFRAotKwotKyMgU2VkIHRo YXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNobygxKSBvcHRpb25z IGxpa2UgLW4uCi0rWHNlZD0iJFNFRCAtZSAxcy9eWC8vIgotKwotKyMgVGhlIEhQLVVYIGtzaCBh bmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0rIyBp ZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNl dCBDRFBBVEgKLSsKLSsjIFRoZSBuYW1lcyBvZiB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHN1 cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KLSthdmFpbGFibGVfdGFncz0KLSsKLSsjICMjIyBCRUdJ TiBMSUJUT09MIENPTkZJRwotKwotKyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAo aG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKLSsKLSsjIFNoZWxs IHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHMuCi0rU0hFTEw9JGx0X1NIRUxMCi0r Ci0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xp YnRvb2xfbGlicz0kZW5hYmxlX3NoYXJlZAotKwotKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQg c3RhdGljIGxpYnJhcmllcy4KLStidWlsZF9vbGRfbGlicz0kZW5hYmxlX3N0YXRpYwotKwotKyMg V2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4K LStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjCi0rCi0rIyBXaGV0 aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUg c3RhdGljCi0rYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRlbmFibGVf c2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBvcHRp bWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCi0rZmFzdF9pbnN0YWxsPSRlbmFibGVfZmFzdF9p bnN0YWxsCi0rCi0rIyBUaGUgaG9zdCBzeXN0ZW0uCi0raG9zdF9hbGlhcz0kaG9zdF9hbGlhcwot K2hvc3Q9JGhvc3QKLStob3N0X29zPSRob3N0X29zCi0rCi0rIyBUaGUgYnVpbGQgc3lzdGVtLgot K2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcwotK2J1aWxkPSRidWlsZAotK2J1aWxkX29zPSRidWls ZF9vcwotKwotKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tz bGFzaGVzLgotK2VjaG89JGx0X2VjaG8KLSsKLSsjIFRoZSBhcmNoaXZlci4KLStBUj0kbHRfQVIK LStBUl9GTEFHUz0kbHRfQVJfRkxBR1MKLSsKLSsjIEEgQyBjb21waWxlci4KLStMVENDPSRsdF9M VENDCi0rCi0rIyBMVENDIGNvbXBpbGVyIGZsYWdzLgotK0xUQ0ZMQUdTPSRsdF9MVENGTEFHUwot KwotKyMgQSBsYW5ndWFnZS1zcGVjaWZpYyBjb21waWxlci4KLStDQz0kbHRfY29tcGlsZXIKLSsK LSsjIElzIHRoZSBjb21waWxlciB0aGUgR05VIEMgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdDQwot KwotKyMgQW4gRVJFIG1hdGNoZXIuCi0rRUdSRVA9JGx0X0VHUkVQCi0rCi0rIyBUaGUgbGlua2Vy IHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgotK0xEPSRsdF9MRAotKwotKyMgV2hldGhlciB3ZSBu ZWVkIGhhcmQgb3Igc29mdCBsaW5rcy4KLStMTl9TPSRsdF9MTl9TCi0rCi0rIyBBIEJTRC1jb21w YXRpYmxlIG5tIHByb2dyYW0uCi0rTk09JGx0X05NCi0rCi0rIyBBIHN5bWJvbCBzdHJpcHBpbmcg cHJvZ3JhbQotK1NUUklQPSRsdF9TVFJJUAotKwotKyMgVXNlZCB0byBleGFtaW5lIGxpYnJhcmll cyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyAiZmlsZSIKLStNQUdJQ19DTUQ9JE1BR0lDX0NN RAotKwotKyMgVXNlZCBvbiBjeWd3aW46IERMTCBjcmVhdGlvbiBwcm9ncmFtLgotK0RMTFRPT0w9 IiRETExUT09MIgotKwotKyMgVXNlZCBvbiBjeWd3aW46IG9iamVjdCBkdW1wZXIuCi0rT0JKRFVN UD0iJE9CSkRVTVAiCi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogYXNzZW1ibGVyLgotK0FTPSIkQVMi Ci0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGVtcG9yYXJ5 IGxpYnRvb2wgZmlsZXMuCi0rb2JqZGlyPSRvYmpkaXIKLSsKLSsjIEhvdyB0byBjcmVhdGUgcmVs b2FkYWJsZSBvYmplY3QgZmlsZXMuCi0rcmVsb2FkX2ZsYWc9JGx0X3JlbG9hZF9mbGFnCi0rcmVs b2FkX2NtZHM9JGx0X3JlbG9hZF9jbWRzCi0rCi0rIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFn IHRocm91Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3dsCi0rCi0r IyBPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0rb2JqZXh0PSIkYWNfb2JqZXh0 IgotKwotKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgotK2xpYmV4dD0iJGxp YmV4dCIKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpLgotK3No cmV4dF9jbWRzPSckc2hyZXh0X2NtZHMnCi0rCi0rIyBFeGVjdXRhYmxlIGZpbGUgc3VmZml4IChu b3JtYWxseSAiIikuCi0rZXhlZXh0PSIkZXhlZXh0IgotKwotKyMgQWRkaXRpb25hbCBjb21waWxl ciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgotK3BpY19mbGFnPSRsdF9sdF9w cm9nX2NvbXBpbGVyX3BpYwotK3BpY19tb2RlPSRwaWNfbW9kZQotKwotKyMgV2hhdCBpcyB0aGUg bWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5kPwotK21heF9jbWRfbGVuPSRsdF9jdl9zeXNfbWF4 X2NtZF9sZW4KLSsKLSsjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBh bmQgLW8gb3B0aW9ucz8KLStjb21waWxlcl9jX289JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19v Ci0rCi0rIyBNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj8KLStuZWVk X2xvY2tzPSRsdF9uZWVkX2xvY2tzCi0rCi0rIyBEbyB3ZSBuZWVkIHRoZSBsaWIgcHJlZml4IGZv ciBtb2R1bGVzPwotK25lZWRfbGliX3ByZWZpeD0kbmVlZF9saWJfcHJlZml4Ci0rCi0rIyBEbyB3 ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzPwotK25lZWRfdmVyc2lvbj0kbmVlZF92ZXJz aW9uCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3N1cHBvcnQ9 JGVuYWJsZV9kbG9wZW4KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBv cnRlZC4KLStkbG9wZW5fc2VsZj0kZW5hYmxlX2Rsb3Blbl9zZWxmCi0rCi0rIyBXaGV0aGVyIGRs b3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVu X3NlbGZfc3RhdGljPSRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljCi0rCi0rIyBDb21waWxlciBm bGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgotK2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0 X3Byb2dfY29tcGlsZXJfc3RhdGljCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1 aWx0aW4gZnVuY3Rpb25zLgotK25vX2J1aWx0aW5fZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9u b19idWlsdGluX2ZsYWcKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRs b3BlbnMuCi0rZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFn X3NwZWMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGly ZWN0bHkgZnJvbSBhcmNoaXZlcy4KLSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFk LXNhZmUgb2JqZWN0cy4KLSt0aHJlYWRfc2FmZV9mbGFnX3NwZWM9JGx0X3RocmVhZF9zYWZlX2Zs YWdfc3BlYwotKwotKyMgTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGUuCi0rdmVyc2lvbl90eXBlPSR2 ZXJzaW9uX3R5cGUKLSsKLSsjIEZvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgotK2xpYm5h bWVfc3BlYz0kbHRfbGlibmFtZV9zcGVjCi0rCi0rIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBG aXJzdCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgotKyMgVGhlIGxh c3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRS4KLSts aWJyYXJ5X25hbWVzX3NwZWM9JGx0X2xpYnJhcnlfbmFtZXNfc3BlYwotKwotKyMgVGhlIGNvZGVk IG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUuCi0r c29uYW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVjCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxk IGFuZCBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgotK1JBTkxJQj0kbHRfUkFOTElCCi0r b2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kcwotK29sZF9wb3N0aW5zdGFsbF9j bWRzPSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9JGx0 X29sZF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2 ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRf b2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcwotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1z dHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9h cmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k cwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhIHNoYXJlZCBhcmNo aXZlLgotK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzCi0rYXJjaGl2ZV9leHBzeW1fY21k cz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kcwotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3RpbnN0 YWxsX2NtZHMKLStwb3N0dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcwotKwot KyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSAoYXNzdW1lZCBzYW1l IGFzIGFib3ZlIGlmIGVtcHR5KQotK21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kcwotK21vZHVs ZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRzCi0rCi0rIyBDb21tYW5kcyB0byBz dHJpcCBsaWJyYXJpZXMuCi0rb2xkX3N0cmlwbGliPSRsdF9vbGRfc3RyaXBsaWIKLStzdHJpcGxp Yj0kbHRfc3RyaXBsaWIKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9i amVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwcmVk ZXBfb2JqZWN0cz0kbHRfcHJlZGVwX29iamVjdHMKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFj ZSBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBs aWJyYXJ5LgotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzCi0rCi0rIyBEZXBl bmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVh dGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcHJlZGVwcz0kbHRfcHJlZGVwcwotKwotKyMgRGVw ZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVh dGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcG9zdGRlcHM9JGx0X3Bvc3RkZXBzCi0rCi0rIyBU aGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEg c2hhcmVkCi0rIyBsaWJyYXJ5Ci0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSRsdF9jb21waWxl cl9saWJfc2VhcmNoX2RpcnMKLSsKLSsjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50 ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCi0rIyBhIHNoYXJlZCBsaWJyYXJ5 LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRo Ci0rCi0rIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBz aGFyZWQgb2JqZWN0cy4KLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfZGVwbGlic19jaGVja19t ZXRob2QKLSsKLSsjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPT0g ZmlsZV9tYWdpYy4KLStmaWxlX21hZ2ljX2NtZD0kbHRfZmlsZV9tYWdpY19jbWQKLSsKLSsjIEZs YWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRv IGJlIGJ1aWx0LgotK2FsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9hbGxvd191bmRlZmluZWRfZmxh ZwotKwotKyMgRmxhZyB0aGF0IGZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4KLStub191bmRl ZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZpbmVkX2ZsYWcKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8g ZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeS4KLStm aW5pc2hfY21kcz0kbHRfZmluaXNoX2NtZHMKLSsKLSsjIFNhbWUgYXMgYWJvdmUsIGJ1dCBhIHNp bmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dCBub3Qgc2hvd24uCi0rZmluaXNo X2V2YWw9JGx0X2ZpbmlzaF9ldmFsCi0rCi0rIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHBy b2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzLgotK2dsb2JhbF9zeW1i b2xfcGlwZT0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZQotKwotKyMgVHJhbnNmb3Jt IHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbgotK2dsb2JhbF9zeW1i b2xfdG9fY2RlY2w9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCi0rCi0rIyBU cmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIKLStnbG9i YWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzcwotKwotKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcnVudGlt ZSBwYXRoIHZhcmlhYmxlLgotK3J1bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgotKwotKyMgVGhpcyBp cyB0aGUgc2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4KLStzaGxpYnBhdGhfdmFyPSRzaGxp YnBhdGhfdmFyCi0rCi0rIyBJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNv ZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKLSsKLSsjIEhvdyB0byBoYXJkY29kZSBhIHNoYXJl ZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgotK2hhcmRjb2RlX2FjdGlvbj0kaGFy ZGNvZGVfYWN0aW9uCi0rCi0rIyBXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBh dGhzIGludG8gbGlicmFyaWVzLgotK2hhcmRjb2RlX2ludG9fbGlicz0kaGFyZGNvZGVfaW50b19s aWJzCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5n IGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4 aXN0LgotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMKLSsKLSsjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2Rl IFwkbGliZGlyIGludG8KLSsjIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29y ayBldmVuIGlmIFwkbGliZGlyIGRvZXMKLSsjIG5vdCBleGlzdC4KLStoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkCi0rCi0rIyBXaGV0 aGVyIHdlIG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVu dC4KLStoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yCi0rCi0rIyBTZXQgdG8geWVzIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCi0rIyByZXN1bHRpbmcgYmluYXJ5 LgotK2hhcmRjb2RlX2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0Ci0rCi0rIyBTZXQgdG8geWVzIGlm IHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0 aGUKLSsjIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWlu dXNfTAotKwotKyMgU2V0IHRvIHllcyBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMgRElSIGludG8KLSsjIHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hh cmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3NobGlicGF0aF92YXIKLSsKLSsjIFNldCB0 byB5ZXMgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2Rl cyBESVIgaW50byB0aGUgbGlicmFyeQotKyMgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBh bmQgZXhlY3V0YWJsZXMgbGlua2VkIGFnYWluc3QgaXQuCi0raGFyZGNvZGVfYXV0b21hdGljPSRo YXJkY29kZV9hdXRvbWF0aWMKLSsKLSsjIFZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJl IHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAotKyMgcmVzdG9yZWQgYXQgcmVs aW5rIHRpbWUuCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRf Zm9yX3JlbGluayIKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFn YWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLStsaW5rX2FsbF9kZXBsaWJzPSRs aW5rX2FsbF9kZXBsaWJzCi0rCi0rIyBDb21waWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZv ciBsaWJyYXJpZXMKLStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfc2VhcmNo X3BhdGhfc3BlYwotKwotKyMgUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJp ZXMKLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWMKLSsKLSsjIEZpeCB0aGUgc2hlbGwgdmFyaWFibGUgXCRzcmNmaWxlIGZvciB0aGUgY29t cGlsZXIuCi0rZml4X3NyY2ZpbGVfcGF0aD0kbHRfZml4X3NyY2ZpbGVfcGF0aAotKwotKyMgU2V0 IHRvIHllcyBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4KLSthbHdheXNfZXhwb3J0 X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9scwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGxp c3QgZXhwb3J0ZWQgc3ltYm9scy4KLStleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBvcnRfc3lt Ym9sc19jbWRzCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3lt Ym9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRs dF9leHRyYWN0X2V4cHN5bXNfY21kcwotKwotKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUg bGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0X2V4 Y2x1ZGVfZXhwc3ltcwotKwotKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVk LgotK2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zCi0rCi0rIyAjIyMgRU5EIExJ QlRPT0wgQ09ORklHCi0rCi0rX19FT0ZfXwotKwotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAg YWl4MyopCi0rICAgIGNhdCA8PFxFT0YgPj4gIiRjZmdmaWxlIgotKwotKyMgQUlYIHNvbWV0aW1l cyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQot KyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFi bGUsIHRoZSBwcm9ibGVtcwotKyMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KLStpZiB0ZXN0 ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsgIENPTExFQ1RfTkFNRVM9 Ci0rICBleHBvcnQgQ09MTEVDVF9OQU1FUwotK2ZpCi0rRU9GCi0rICAgIDs7Ci0rICBlc2FjCi0r Ci0rICAjIFdlIHVzZSBzZWQgaW5zdGVhZCBvZiBjYXQgYmVjYXVzZSBiYXNoIG9uIERKR1BQIGdl dHMgY29uZnVzZWQgaWYKLSsgICMgaWYgZmluZHMgbWl4ZWQgQ1IvTEYgYW5kIExGLW9ubHkgbGlu ZXMuICBTaW5jZSBzZWQgb3BlcmF0ZXMgaW4KLSsgICMgdGV4dCBtb2RlLCBpdCBwcm9wZXJseSBj b252ZXJ0cyBsaW5lcyB0byBDUi9MRi4gIFRoaXMgYmFzaCBwcm9ibGVtCi0rICAjIGlzIHJlcG9y dGVkbHkgZml4ZWQsIGJ1dCB3aHkgbm90IHJ1biBvbiBvbGQgdmVyc2lvbnMgdG9vPwotKyAgc2Vk ICckcScgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQg MSkKLSsKLSsgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwgXAotKyAgICAocm0gLWYgIiRv ZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQotKyAg Y2htb2QgK3ggIiRvZmlsZSIKLSsKLStlbHNlCi0rICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxl IHlldCwgd2UgcmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRlCi0rICAjIGBjb25maWcuc3Rh dHVzIC0tcmVjaGVjaycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKLSsgICMg bGlidG9vbCBzY3JpcHQgdGhlbi4KLSsgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1l ICdzL1wuc2gkLy5pbi8nYAotKyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KLSsgICAg dGVzdCAtZiBNYWtlZmlsZSAmJiBtYWtlICIkbHRtYWluIgotKyAgZmkKLStmaQotKwotKwotK2Fj X2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0r Ci0rQ0M9IiRsdF9zYXZlX0NDIgotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtdGFncyB3 YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX3RhZ3Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdp dGh2YWw9JHdpdGhfdGFnczsgdGFnbmFtZXM9IiR3aXRodmFsIgotK2ZpCi0rCi0rCi0raWYgdGVz dCAtZiAiJGx0bWFpbiIgJiYgdGVzdCAtbiAiJHRhZ25hbWVzIjsgdGhlbgotKyAgaWYgdGVzdCAh IC1mICIke29maWxlfSI7IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6IG91dHB1dCBmaWxlIFxgJG9maWxlJyBkb2VzIG5vdCBleGlzdCIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogb3V0cHV0IGZpbGUgXGAkb2ZpbGUnIGRvZXMgbm90IGV4aXN0 IiA+JjI7fQotKyAgZmkKLSsKLSsgIGlmIHRlc3QgLXogIiRMVENDIjsgdGhlbgotKyAgICBldmFs ICJgJFNIRUxMICR7b2ZpbGV9IC0tY29uZmlnIHwgZ3JlcCAnXkxUQ0M9J2AiCi0rICAgIGlmIHRl c3QgLXogIiRMVENDIjsgdGhlbgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBX QVJOSU5HOiBvdXRwdXQgZmlsZSBcYCRvZmlsZScgZG9lcyBub3QgbG9vayBsaWtlIGEgbGlidG9v bCBzY3JpcHQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IG91dHB1dCBmaWxlIFxg JG9maWxlJyBkb2VzIG5vdCBsb29rIGxpa2UgYSBsaWJ0b29sIHNjcmlwdCIgPiYyO30KLSsgICAg ZWxzZQotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBc YExUQ0M9JExUQ0MnLCBleHRyYWN0ZWQgZnJvbSBcYCRvZmlsZSciID4mNQotKyRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IHVzaW5nIFxgTFRDQz0kTFRDQycsIGV4dHJhY3RlZCBmcm9tIFxgJG9m aWxlJyIgPiYyO30KLSsgICAgZmkKLSsgIGZpCi0rICBpZiB0ZXN0IC16ICIkTFRDRkxBR1MiOyB0 aGVuCi0rICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25maWcgfCBncmVwICdeTFRDRkxB R1M9J2AiCi0rICBmaQotKwotKyAgIyBFeHRyYWN0IGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ2dlZCBj b25maWd1cmF0aW9ucyBpbiAkb2ZpbGUuCi0rICAjIE5vdGUgdGhhdCB0aGlzIGFzc3VtZXMgdGhl IGVudGlyZSBsaXN0IGlzIG9uIG9uZSBsaW5lLgotKyAgYXZhaWxhYmxlX3RhZ3M9YGdyZXAgIl5h dmFpbGFibGVfdGFncz0iICIke29maWxlfSIgfCAkU0VEIC1lICdzL2F2YWlsYWJsZV90YWdzPVwo LiokXCkvXDEvJyAtZSAncy9cIi8vZydgCi0rCi0rICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0i JHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgIGZvciB0YWduYW1lIGluICR0YWduYW1lczsgZG8K LSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICMgQ2hlY2sgd2hldGhlciB0YWduYW1lIGNv bnRhaW5zIG9ubHkgdmFsaWQgY2hhcmFjdGVycwotKyAgICBjYXNlIGAkZWNobyAiWCR0YWduYW1l IiB8ICRYc2VkIC1lICdzOlstX0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamts bW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwLC9dOjpnJ2AgaW4KLSsgICAgIiIpIDs7Ci0rICAgICop ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB0YWcgbmFtZTog JHRhZ25hbWUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHRhZyBuYW1l OiAkdGFnbmFtZSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsJOzsKLSsg ICAgZXNhYwotKwotKyAgICBpZiBncmVwICJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklH OiAkdGFnbmFtZSQiIDwgIiR7b2ZpbGV9IiA+IC9kZXYvbnVsbAotKyAgICB0aGVuCi0rICAgICAg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHRhZyBuYW1lIFwiJHRhZ25hbWVc IiBhbHJlYWR5IGV4aXN0cyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHRhZyBuYW1l IFwiJHRhZ25hbWVcIiBhbHJlYWR5IGV4aXN0cyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KLSsgICAgZmkKLSsKLSsgICAgIyBVcGRhdGUgdGhlIGxpc3Qgb2YgYXZhaWxhYmxl IHRhZ3MuCi0rICAgIGlmIHRlc3QgLW4gIiR0YWduYW1lIjsgdGhlbgotKyAgICAgIGVjaG8gYXBw ZW5kaW5nIGNvbmZpZ3VyYXRpb24gdGFnIFwiJHRhZ25hbWVcIiB0byAkb2ZpbGUKLSsKLSsgICAg ICBjYXNlICR0YWduYW1lIGluCi0rICAgICAgQ1hYKQotKwlpZiB0ZXN0IC1uICIkQ1hYIiAmJiAo IHRlc3QgIlgkQ1hYIiAhPSAiWG5vIiAmJgotKwkgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysi ICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8Ci0rCSAgICAodGVzdCAiWCRDWFgiICE9 ICJYZysrIikpKSA7IHRoZW4KLSsJICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLSsKLSsKLSthcmNoaXZl X2NtZHNfbmVlZF9sY19DWFg9bm8KLSthbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Ci0rYWx3YXlz X2V4cG9ydF9zeW1ib2xzX0NYWD1ubwotK2FyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPQotK2V4cG9y dF9keW5hbWljX2ZsYWdfc3BlY19DWFg9Ci0raGFyZGNvZGVfZGlyZWN0X0NYWD1ubwotK2hhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPQotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRf Q1hYPQotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPQotK2hhcmRjb2RlX21pbnVzX0xf Q1hYPW5vCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9dW5zdXBwb3J0ZWQKLStoYXJkY29k ZV9hdXRvbWF0aWNfQ1hYPW5vCi0rbW9kdWxlX2NtZHNfQ1hYPQotK21vZHVsZV9leHBzeW1fY21k c19DWFg9Ci0rbGlua19hbGxfZGVwbGlic19DWFg9dW5rbm93bgotK29sZF9hcmNoaXZlX2NtZHNf Q1hYPSRvbGRfYXJjaGl2ZV9jbWRzCi0rbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPQotK3dob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjX0NYWD0KLStlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVz X0NYWD1ubwotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhl IG9iamVjdCBiZWluZyBsaW5rZWQ6Ci0rcHJlZGVwX29iamVjdHNfQ1hYPQotK3Bvc3RkZXBfb2Jq ZWN0c19DWFg9Ci0rcHJlZGVwc19DWFg9Ci0rcG9zdGRlcHNfQ1hYPQotK2NvbXBpbGVyX2xpYl9z ZWFyY2hfcGF0aF9DWFg9Ci0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD0KLSsKLSsjIFNv dXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNlcy4KLSthY19leHQ9Y3BwCi0r Ci0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMrKyB0ZXN0IHNvdXJjZXMu Ci0rb2JqZXh0PW8KLStvYmpleHRfQ1hYPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBp biBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50 IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGlu ayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oaW50LCBjaGFyICpb XSkgeyByZXR1cm4oMCk7IH0nCi0rCi0rIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2Vk IGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKwotKyMgSWYgbm8gQyBj b21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0r IyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xU Q0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0rCi0rIyBzYXZlIHdh cm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSthY19vdXRmaWxlPWNvbmZ0 ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29u ZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VE ICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9jb21waWxlcl9ib2lsZXJwbGF0 ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskcm0gY29uZnRlc3QqCi0rCi0rYWNfb3V0ZmlsZT1jb25m dGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0 ZXN0LiRhY19leHQKLStldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14k L2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKLStfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQg Y29uZnRlc3QuZXJyYAotKyRybSAtciBjb25mdGVzdCoKLSsKLSsKLSsjIEFsbG93IENDIHRvIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2x0X3NhdmVfQ0M9JENDCi0rbHRfc2F2 ZV9MRD0kTEQKLStsdF9zYXZlX0dDQz0kR0NDCi0rR0NDPSRHWFgKLStsdF9zYXZlX3dpdGhfZ251 X2xkPSR3aXRoX2dudV9sZAotK2x0X3NhdmVfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRAotK2lmIHRl c3QgLW4gIiR7bHRfY3ZfcHJvZ19nbnVfbGRjeHgrc2V0fSI7IHRoZW4KLSsgIGx0X2N2X3Byb2df Z251X2xkPSRsdF9jdl9wcm9nX2dudV9sZGN4eAotK2Vsc2UKLSsgICRhc191bnNldCBsdF9jdl9w cm9nX2dudV9sZAotK2ZpCi0raWYgdGVzdCAtbiAiJHtsdF9jdl9wYXRoX0xEQ1hYK3NldH0iOyB0 aGVuCi0rICBsdF9jdl9wYXRoX0xEPSRsdF9jdl9wYXRoX0xEQ1hYCi0rZWxzZQotKyAgJGFzX3Vu c2V0IGx0X2N2X3BhdGhfTEQKLStmaQotK3Rlc3QgLXogIiR7TERDWFgrc2V0fSIgfHwgTEQ9JExE Q1hYCi0rQ0M9JHtDWFgtImMrKyJ9Ci0rY29tcGlsZXI9JENDCi0rY29tcGlsZXJfQ1hYPSRDQwot K2ZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBpbgotKyAg ICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0r ICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7Ci0r ICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19iYXNlbmFt ZT1gJGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2Fs aWFzLSUlImAKLSsKLSsKLSsjIFdlIGRvbid0IHdhbnQgLWZuby1leGNlcHRpb24gd2VuIGNvbXBp bGluZyBDKysgY29kZSwgc28gc2V0IHRoZQotKyMgbm9fYnVpbHRpbl9mbGFnIHNlcGFyYXRlbHkK LStpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgbHRfcHJvZ19jb21waWxlcl9ub19idWls dGluX2ZsYWdfQ1hYPScgLWZuby1idWlsdGluJwotK2Vsc2UKLSsgIGx0X3Byb2dfY29tcGlsZXJf bm9fYnVpbHRpbl9mbGFnX0NYWD0KLStmaQotKwotK2lmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVu Ci0rICAjIFNldCB1cCBkZWZhdWx0IEdOVSBDKysgY29uZmlndXJhdGlvbgotKwotKwotKyMgQ2hl Y2sgd2hldGhlciAtLXdpdGgtZ251LWxkIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfZ251 X2xkK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX2dudV9sZDsgdGVzdCAiJHdp dGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9eWVzCi0rZWxzZQotKyAgd2l0aF9nbnVfbGQ9bm8K LStmaQotKwotK2FjX3Byb2c9bGQKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgIyBD aGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgbGQgdXNlZCBieSAkQ0MuLi4gIiA+JjY7IH0KLSsgIGNh c2UgJGhvc3QgaW4KLSsgICotKi1taW5ndyopCi0rICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5n IGNhcnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMgbWluZ3cKLSsgICAgYWNfcHJvZz1gKCRDQyAt cHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1IHwgdHIgLWQgJ1wwMTUnYCA7OwotKyAgKikKLSsgICAg YWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1YCA7OwotKyAgZXNhYwotKyAg Y2FzZSAkYWNfcHJvZyBpbgotKyAgICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KLSsgICAgW1xc L10qIHwgPzpbXFwvXSopCi0rICAgICAgcmVfZGlyZWx0PScvW14vXVteL10qL1wuXC4vJwotKyAg ICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAotKyAgICAgIGFjX3Byb2c9YGVj aG8gJGFjX3Byb2d8ICRTRUQgJ3MlXFxcXCUvJWcnYAotKyAgICAgIHdoaWxlIGVjaG8gJGFjX3By b2cgfCBncmVwICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbwotKwlhY19wcm9nPWBl Y2hvICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAotKyAgICAgIGRvbmUKLSsgICAg ICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKLSsgICAgICA7OwotKyAgIiIpCi0rICAg ICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgotKyAgICBh Y19wcm9nPWxkCi0rICAgIDs7Ci0rICAqKQotKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVu IHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCi0rICAgIHdpdGhfZ251X2xkPXVua25v d24KLSsgICAgOzsKLSsgIGVzYWMKLStlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgR05VIGxkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4uICIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBub24tR05VIGxkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igbm9uLUdOVSBsZC4uLiAiID4mNjsgfQotK2Zp Ci0raWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRMRCI7IHRoZW4KLSsg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgZm9yIGFjX2RpciBp biAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19k aXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ciIHx8IHRl c3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgotKyAgICAgIGx0X2N2X3Bh dGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIHBy b2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAotKyAgICAgICMgYnV0 IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBhY2NlcHQgLXYuCi0rICAg ICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhhdCB3ZSBwcmVm ZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwvZGV2L251bGxgIGlu Ci0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0g bm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHll cyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0i JGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rZmkKLStmaQotKwotK0xEPSIkbHRf Y3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkTEQiID4mNQotKyRhc19lY2hvICIkTEQiID4mNjsgfQotK2Vs c2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNf ZWNobyAibm8iID4mNjsgfQotK2ZpCi0rdGVzdCAteiAiJExEIiAmJiB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwk UEFUSCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2dudV9sZCtzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAjIEknZCByYXRoZXIg dXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2Nl cHQgLXYuCi0rY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICond2l0 aCBCRkQnKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRfY3Zf cHJvZ19nbnVfbGQ9bm8KLSsgIDs7Ci0rZXNhYwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251X2xkIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2 X3Byb2dfZ251X2xkIiA+JjY7IH0KLSt3aXRoX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGQKLSsK LSsKLSsKLSsgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBsZCBhcyB0aGUgdW5kZXJseWlu ZyBsaW5rZXIsIHNpbmNlIHRoZQotKyAgIyBhcmNoaXZpbmcgY29tbWFuZHMgYmVsb3cgYXNzdW1l IHRoYXQgR05VIGxkIGlzIGJlaW5nIHVzZWQuCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g eWVzOyB0aGVuCi0rICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKLSsKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9 LS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsKLSsgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBM RCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsgICAgIyBYWFggSSB0aGluayB3bGFy YyBjYW4gYmUgZWxpbWluYXRlZCBpbiBsdGNmLWN4eCwgYnV0IEkgbmVlZCB0bwotKyAgICAjICAg ICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1NKQotKyAgICB3bGFyYz0nJHt3 bH0nCi0rCi0rICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNo aXZlIGV0LiBhbC4KLSsgICAgaWYgZXZhbCAiYCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkYCAtLWhl bHAgMj4mMSIgfCBcCi0rCWdyZXAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVu Ci0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSIkd2xhcmMiJy0td2hvbGUtYXJj aGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAgICBlbHNl Ci0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQotKyAgICBmaQotKyAgZWxzZQot KyAgICB3aXRoX2dudV9sZD1ubwotKyAgICB3bGFyYz0KLSsKLSsgICAgIyBBIGdlbmVyaWMgYW5k IHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgY3JlYXRpb24KLSsgICAgIyBjb21t YW5kIGZvciBHTlUgQysrIGZvciB0aGUgY2FzZSB3aGVyZSBpdCB1c2VzIHRoZSBuYXRpdmUKLSsg ICAgIyBsaW5rZXIsIGluc3RlYWQgb2YgR05VIGxkLiAgSWYgcG9zc2libGUsIHRoaXMgc2V0dGlu ZyBzaG91bGQKLSsgICAgIyBvdmVycmlkZGVuIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBuYXRp dmUgbGlua2VyIGZlYXR1cmVzIG9uCi0rICAgICMgdGhlIHBsYXRmb3JtIGl0IGlzIGJlaW5nIHVz ZWQgb24uCi0rICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgLW8gJGxpYicKLSsgIGZpCi0rCi0rICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIg cHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rICAjIHdoYXQgImhpZGRlbiIgbGli cmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsgICMgbGlua2lu ZyBhIHNoYXJlZCBsaWJyYXJ5LgotKyAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hh cmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAiXC1MIicKLSsKLStl bHNlCi0rICBHWFg9bm8KLSsgIHdpdGhfZ251X2xkPW5vCi0rICB3bGFyYz0KLStmaQotKwotKyMg UE9SVE1FOiBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBDKysgbGluayBj aGFyYWN0ZXJpc3RpY3MKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVz IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2Vy ICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLStsZF9zaGxpYnNf Q1hYPXllcwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgIGFpeDMqKQotKyAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAg ICA7OwotKyAgYWl4WzQtOV0qKQotKyAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhl bgotKyAgICAgICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkg ZGVmYXVsdCwgc28gd2UgZG9uJ3QKLSsgICAgICAjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lh bC4KLSsgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rICAgICAgZXhwX3N5bV9mbGFn PSctQmV4cG9ydCcKLSsgICAgICBub19lbnRyeV9mbGFnPSIiCi0rICAgIGVsc2UKLSsgICAgICBh aXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCi0rICAgICAgIyBUZXN0IGlmIHdlIGFyZSB0cnlp bmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCi0rICAgICAgIyBBSVggc3R5bGUg bGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCi0rICAgICAgIyBu ZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KLSsgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQu WzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSopCi0rCWZvciBsZF9mbGFnIGluICRMREZMQUdTOyBk bwotKwkgIGNhc2UgJGxkX2ZsYWcgaW4KLSsJICAqLWJydGwqKQotKwkgICAgYWl4X3VzZV9ydW50 aW1lbGlua2luZz15ZXMKLSsJICAgIGJyZWFrCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJZG9uZQot Kwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICBleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKyAg ICAgIG5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKLSsgICAgZmkKLSsKLSsgICAgIyBXaGVuIGxh cmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgot KyAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYg bGlua2luZyBhIGxpYnJhcnkKLSsgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRP QyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgIyBDWFhGTEFHUy9DRkxBR1Mg Zm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKLSsgICAgIyBlbm91 Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCi0rCi0r ICAgIGFyY2hpdmVfY21kc19DWFg9JycKLSsgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKLSsg ICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9JzonCi0rICAgIGxpbmtfYWxsX2RlcGxp YnNfQ1hYPXllcwotKwotKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICAgIGNh c2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCi0rICAgICAgIyBXZSBvbmx5 IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCi0rICAgICAg IyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCi0rCWNv bGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKLSsJaWYgdGVzdCAt ZiAiJGNvbGxlY3QybmFtZSIgJiYgXAotKwkgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8IGdy ZXAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCi0rCXRoZW4KLSsJICAjIFdlIGhhdmUgcmV3 b3JrZWQgY29sbGVjdDIKLSsJICA6Ci0rCWVsc2UKLSsJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3Qy Ci0rCSAgaGFyZGNvZGVfZGlyZWN0X0NYWD11bnN1cHBvcnRlZAotKwkgICMgSXQgZmFpbHMgdG8g ZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsJICAjIHBh dGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNf TAotKwkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwotKwkgIGhhcmRjb2RlX21p bnVzX0xfQ1hYPXllcwotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctTCRsaWJk aXInCi0rCSAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9Ci0rCWZpCi0rCTs7Ci0rICAg ICAgZXNhYwotKyAgICAgIHNoYXJlZF9mbGFnPSctc2hhcmVkJwotKyAgICAgIGlmIHRlc3QgIiRh aXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwlzaGFyZWRfZmxhZz0iJHNoYXJl ZF9mbGFnICInJHt3bH0tRycKLSsgICAgICBmaQotKyAgICBlbHNlCi0rICAgICAgIyBub3QgdXNp bmcgZ2NjCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBWaXN1 YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVh c2UKLSsJIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoK LSsJc2hhcmVkX2ZsYWc9Jy1HJwotKyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGFpeF91c2VfcnVu dGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCWVs c2UKLSsJICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJwotKwlmaQotKyAgICAgIGZpCi0rICAg IGZpCi0rCi0rICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3lt Ym9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0 ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgotKyAgICBhbHdheXNf ZXhwb3J0X3N5bWJvbHNfQ1hYPXllcwotKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlu a2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBv dGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKLSsgICAgICAjIC1iZXJvayB3aWxs IGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCi0r ICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSctYmVyb2snCi0rICAgICAgIyBEZXRlcm1p bmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5 IGV4ZWN1dGFibGUuCi0rICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog Y29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQot K19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0r aWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRh Y19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9z c19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot KyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBG aWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwot KwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNf ZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0r IyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgot K2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1I WDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhf bGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAg IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9s aWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIk YWl4X2xpYnBhdGgiCi0rCi0rICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MiJyAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2Vu dHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9m bGFnfSIgIT0gIngiOyB0aGVuIGVjaG8gIiR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iOyBl bHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVk X2ZsYWciCi0rICAgICBlbHNlCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRo ZW4KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJGxpYmRpcjovdXNy L2xpYjovbGliJwotKwlhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Ii16IG5vZGVmcyIKLSsJYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNv bXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5 bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCi0rICAgICAgZWxzZQotKwkjIERldGVybWluZSB0aGUg ZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0 YWJsZS4KLSsJY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStp bnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5 PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5j b25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmci ID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0 aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3Mv LC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9 Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rl di9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3Ig YSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXog IiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQi YAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0r cm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhl biBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rCWhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfQ1hYPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkj IFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdz LAotKwkjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEg YnJva2VuIGxpYnJhcnkuCi0rCW5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWJlcm5vdG9r JwotKwlhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1iZXJvaycKLSsJIyBFeHBvcnRl ZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVz Ci0rCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJGNvbnZlbmllbmNlJwotKwlhcmNoaXZl X2NtZHNfbmVlZF9sY19DWFg9eWVzCi0rCSMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJh ZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rCWFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg JGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJF OiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0r ICAgICAgZmkKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGJlb3MqKQotKyAgICBpZiAkTEQgLS1o ZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7 IHRoZW4KLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9dW5zdXBwb3J0ZWQKLSsgICAg ICAjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMg b2YgZ2NjCi0rICAgICAgIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21l IGludmVzdGlnYXRpb24uICBGSVhNRQotKyAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtbm9z dGFydCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgLW8gJGxpYicKLSsgICAgZWxzZQotKyAgICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAg ZmkKLSsgICAgOzsKLSsKLSsgIGNob3J1cyopCi0rICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0r ICAgICAgKikKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0r CWxkX3NobGlic19DWFg9bm8KLSsJOzsKLSsgICAgZXNhYwotKyAgICA7OwotKwotKyAgY3lnd2lu KiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgICAjIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgQ1hYKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKLSsgICAgIyBhcyB0aGVy ZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9Jy1MJGxpYmRpcicKLSsgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPXVuc3Vw cG9ydGVkCi0rICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9bm8KLSsgICAgZW5hYmxlX3No YXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9eWVzCi0rCi0rICAgIGlmICRMRCAtLWhlbHAg Mj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIGFyY2hp dmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91 dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBm aWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rICAgICAgIyBpcyBFWFBPUlRT KSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KLSsgICAgICBhcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWD0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVY UE9SVFM7IHRoZW4KLSsJY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZGVmOwotKyAgICAgIGVsc2UKLSsJZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5kZWY7Ci0rCWNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWY7Ci0rICAgICAgZml+Ci0rICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9 LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAk bGliJwotKyAgICBlbHNlCi0rICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICBmaQotKyAgOzsK LSsgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xj X0NYWD1ubwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9bm8KLSsgICAgICBoYXJkY29kZV9h dXRvbWF0aWNfQ1hYPXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPXVuc3Vw cG9ydGVkCi0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScnCi0rICAgICAgbGlu a19hbGxfZGVwbGlic19DWFg9eWVzCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSIk X2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCi0rICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgOyB0 aGVuCi0rICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rICAgICAgYXJjaGl2 ZV9jbWRzX0NYWD0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwk bGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwk cnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11 dGlsfSIKLSsgICAgICBtb2R1bGVfY21kc19DWFg9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxh ZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7 X2x0X2RzeW11dGlsfSIKLSsgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ic2VkICdzLF4s XywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1i b2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRs aWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRy cGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJf ZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICAgIG1vZHVsZV9leHBzeW1fY21kc19D WFg9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIv XCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1v IFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRf ZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBpZiB0ZXN0ICIkbHRfY3Zf YXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KLSsgICAgICAgIGFyY2hpdmVfY21k c19DWFg9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9 LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2Zs YWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAt aW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0i Ci0rICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ic2VkICdzLF4sXywnIDwgXCRleHBv cnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5c JENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIu byBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwk bGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxf bmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7 X2x0X2RzeW11dGlsfSIKLSsgICAgICBmaQotKyAgICAgIGVsc2UKLSsgICAgICBjYXNlICRjY19i YXNlbmFtZSBpbgotKyAgICAgICAgeGxjKikKLSsgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0nZWNobycKLSsgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1xbWtzaHJvYmog JHt3bH0tc2luZ2xlX21vZHVsZSAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9YGVjaG8g JHJwYXRoLyRzb25hbWVgICR4bGN2ZXJzdHJpbmcnCi0rICAgICAgICAgIG1vZHVsZV9jbWRzX0NY WD0nJENDICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRl cGxpYnMkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgICAgICMgRG9uJ3QgZml4IHRoaXMgYnkgdXNp bmcgdGhlIGxkIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgZmxhZywgaXQgZG9lc24ndCBleGlzdCBp biBvbGRlciBkYXJ3aW4gbGRzCi0rICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdz ZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAk ZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3lt fiRDQyAtcW1rc2hyb2JqICR7d2x9LXNpbmdsZV9tb2R1bGUgJGFsbG93X3VuZGVmaW5lZF9mbGFn IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWluc3RhbGxf bmFtZSAke3dsfSRycGF0aC8kc29uYW1lICR4bGN2ZXJzdHJpbmd+bm1lZGl0IC1zICRvdXRwdXRf b2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JwotKyAgICAgICAgICBtb2R1 bGVfZXhwc3ltX2NtZHNfQ1hYPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1l ICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xp Ym5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgIC1vICRsaWIg LWJ1bmRsZSAkbGlib2JqcyAkZGVwbGlicyRjb21waWxlcl9mbGFnc35ubWVkaXQgLXMgJG91dHB1 dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCi0rICAgICAgICAgIDs7 Ci0rICAgICAgICopCi0rICAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICAgICAgICA7Owot KyAgICAgIGVzYWMKLSsgICAgICBmaQotKyAgICAgICAgOzsKLSsKLSsgIGRndXgqKQotKyAgICBj YXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGVjKysqKQotKwkjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJbGRfc2hsaWJzX0NYWD1ubwotKwk7OwotKyAgICAg IGdoY3gqKQotKwkjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJbGRfc2hsaWJzX0NYWD1ubwotKwk7OwotKyAg ICAgICopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwls ZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGZyZWVic2RbMTJd KikKLSsgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyByZXBvcnRlZCB0byBiZSBmYWlybHkgYnJv a2VuIGJlZm9yZSBzd2l0Y2ggdG8gRUxGCi0rICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgOzsK LSsgIGZyZWVic2QtZWxmKikKLSsgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rICAg IDs7Ci0rICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICMgRnJlZUJTRCAzIGFuZCBsYXRl ciB1c2UgR05VIEMrKyBhbmQgR05VIGxkIHdpdGggc3RhbmRhcmQgRUxGCi0rICAgICMgY29udmVu dGlvbnMKLSsgICAgbGRfc2hsaWJzX0NYWD15ZXMKLSsgICAgOzsKLSsgIGdudSopCi0rICAgIDs7 Ci0rICBocHV4OSopCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfSti ICR7d2x9JGxpYmRpcicKLSsgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKyAg ICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJwotKyAgICBoYXJkY29kZV9k aXJlY3RfQ1hYPXllcwotKyAgICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMgIyBOb3QgaW4gdGhl IHNlYXJjaCBQQVRILAotKwkJCQkjIGJ1dCBhcyB0aGUgZGVmYXVsdAotKwkJCQkjIGxvY2F0aW9u IG9mIHRoZSBsaWJyYXJ5LgotKwotKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICBDQyop Ci0rICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAg ICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICAgIDs7Ci0rICAgIGFDQyopCi0rICAgICAgYXJjaGl2 ZV9jbWRzX0NYWD0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1iICR7d2x9K2IgJHt3 bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVz dCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29u YW1lICRsaWInCi0rICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVy Ym9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKyAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKyAgICAgICMgbGlua2luZyBh IHNoYXJlZCBsaWJyYXJ5LgotKyAgICAgICMKLSsgICAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFy IHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rICAgICAgIyBleHBs aWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRo ZW0KLSsgICAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1 ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rICAgICAgIyBkZXBlbmRlbmNpZXMuCi0rICAgICAgb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3Qu JG9iamV4dCAyPiYxKSB8IGdyZXAgIlstXUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0 OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9i amV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3QnCi0rICAg ICAgOzsKLSsgICAgKikKLSsgICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFy ZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0g JGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgZWxzZQotKyAg ICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAg ICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAg IDs7Ci0rICBocHV4MTAqfGhwdXgxMSopCi0rICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87 IHRoZW4KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0rYiAke3ds fSRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKwotKyAg ICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCp8aWE2NCopIDs7Ci0rICAgICAg KikKLSsJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKLSsgICAgICAgIDs7 Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICBocHBh KjY0KnxpYTY0KikKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCi0rICAgICAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGhhcmRj b2RlX2RpcmVjdF9DWFg9eWVzCi0rICAgICAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVzICMgTm90 IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJCQkJCSAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0Ci0r CQkJCQkgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKyAgICAgIDs7Ci0rICAgIGVz YWMKLSsKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBDQyopCi0rCSMgRklYTUU6 IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwlsZF9zaGxpYnNfQ1hYPW5vCi0r CTs7Ci0rICAgICAgYUNDKikKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQotKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtYiAk e3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cycKLSsJICA7OwotKwkqKQotKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtYiAke3dsfStoICR7 d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz JwotKwkgIDs7Ci0rCWVzYWMKLSsJIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2Ug dmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBv YmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJIyBsaW5raW5nIGEgc2hhcmVk IGxpYnJhcnkuCi0rCSMKLSsJIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBw cmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0g b2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkjIGZyb20gdGhlIG91dHB1 dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSMgZGVw ZW5kZW5jaWVzLgotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIg JENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgZ3JlcCAiXC1MImA7IGxpc3Q9IiI7 IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0 PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25l OyBlY2hvICRsaXN0JwotKwk7OwotKyAgICAgICopCi0rCWlmIHRlc3QgIiRHWFgiID0geWVzOyB0 aGVuCi0rCSAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgotKwkgICAgY2FzZSAkaG9z dF9jcHUgaW4KLSsJICAgIGhwcGEqNjQqKQotKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgICAgIDs7Ci0rCSAgICBpYTY0KikKLSsJICAgICAgYXJjaGl2ZV9jbWRzX0NY WD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICA7OwotKwkgICAgKikK LSsJICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MnCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgZmkKLSsJZWxzZQotKwkgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgIGxkX3NobGlic19D WFg9bm8KLSsJZmkKLSsJOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgaW50ZXJpeFszLTldKikK LSsgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD1ubwotKyAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy X0NYWD1ubwotKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgs JGxpYmRpcicKLSsgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKLSsg ICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ug b2YgYSBicm9rZW4gZ2NjLgotKyAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxv YWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5Ci0rICAgICMgZGVmYXVsdCkgYW5k IHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkK LSsgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlz LCB3ZSBwaWNrIGEgcmFuZG9tLAotKyAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJl dHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0rICAgICMgdGltZS4gIE1v dmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgot KyAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxg ZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAk bGliJwotKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nc2VkICJzLF4sXywiICRleHBvcnRf c3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19m bGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3 bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3 bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsg MTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgOzsKLSsgIGlyaXg1KiB8IGlyaXg2KikKLSsgICAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBDQyopCi0rCSMgU0dJIEMrKwotKwlhcmNoaXZl X2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAk c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3Ry aW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs aWInCi0rCi0rCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUg Y3JlYXRlZCB1c2luZwotKwkjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMrKyBj b21waWxlci4gIFRoaXMgaXMKLSsJIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRl ZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSMgaW4gdGhlIGFyY2hpdmUuCi0rCW9sZF9hcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRvYmpzJwotKwk7Owot KyAgICAgICopCi0rCWlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rCSAgaWYgdGVzdCAiJHdp dGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAk e3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJwotKwkgIGVsc2UKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1u b3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgIC1vICRs aWInCi0rCSAgZmkKLSsJZmkKLSsJbGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rCTs7Ci0rICAg IGVzYWMKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7 d2x9JGxpYmRpcicKLSsgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKyAgICA7 OwotKyAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsg ICAgICBLQ0MqKQotKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBp bGVyCi0rCi0rCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUg b3V0cHV0IGZpbGUKLSsJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNv IHJlbmFtZSB0aGUgbGlicmFyeQotKwkjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9u KSBhZnRlciBsaW5raW5nLgotKwlhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFy ZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydg OyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7 ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxp YiAkbGliJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVk X2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsg dGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAk Q0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliICR7d2x9LXJldGFpbi1z eW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzOyBtdiBcJHRlbXBsaWIgJGxpYicKLSsJIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwot KwkjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1 c2VkIHdoZW4KLSsJIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSMKLSsJIyBUaGVyZSBk b2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQot KwkjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8g c3RyaXAgdGhlbQotKwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGlu Y2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSMgZGVwZW5kZW5jaWVzLgotKwlvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8g bGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxIHwgZ3JlcCAibGQiYDsgcm0gLWYgbGliY29uZnRl c3Qkc2hhcmVkX2V4dDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGlu IGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0 PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3QnCi0rCi0rCWhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPScke3dsfS0tcnBhdGgsJGxpYmRpcicKLSsJZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwotKwkjIEFyY2hpdmVzIGNv bnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJIyAiQ0Mg LUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBpbGVyLgotKwlvbGRfYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCTs7Ci0r ICAgICAgaWNwYyopCi0rCSMgSW50ZWwgQysrCi0rCXdpdGhfZ251X2xkPXllcwotKwkjIHZlcnNp b24gOC4wIGFuZCBhYm92ZSBvZiBpY3BjIGNob2tlIG9uIG11bHRpcGx5IGRlZmluZWQgc3ltYm9s cwotKwkjIGlmIHdlIGFkZCAkcHJlZGVwX29iamVjdHMgYW5kICRwb3N0ZGVwX29iamVjdHMsIGhv d2V2ZXIgNy4xIGFuZAotKwkjIGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0aGVtc2Vs dmVzLgotKwljYXNlIGAkQ0MgLVYgMj4mMWAgaW4KLSsJKiJWZXJzaW9uIDcuIiopCi0rICAJICBh cmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgLW8gJGxpYicKLSsgIAkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMt ZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICA7OwotKwkqKSAgIyBWZXJzaW9u IDguMCBvciBuZXdlcgotKwkgIHRtcF9pZHluPQotKwkgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAg ICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7Ci0rCSAgZXNhYwotKyAgCSAgYXJjaGl2 ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgIGFyY2hp dmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgOzsKLSsJZXNh YwotKwlhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCWV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNf Q1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJj aGl2ZScKLSsJOzsKLSsgICAgICBwZ0NDKiB8IHBnY3BwKikKLSsgICAgICAgICMgUG9ydGxhbmQg R3JvdXAgQysrIGNvbXBpbGVyCi0rCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNf ZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJwotKyAgCWFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRl eHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WD0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj X0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19D WFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRv IHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNl LCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hv bGUtYXJjaGl2ZScKLSsgICAgICAgIDs7Ci0rICAgICAgY3h4KikKLSsJIyBDb21wYXEgQysrCi0r CWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds JHNvbmFtZSAtbyAkbGliJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICAtbyAkbGliICR7d2x9LXJldGFpbi1z eW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzJwotKwotKwlydW5wYXRoX3Zhcj1MRF9SVU5f UEFUSAotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLXJwYXRoICRsaWJkaXInCi0r CWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJIyBDb21tYW5kcyB0byBtYWtl IGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkjIHdoYXQgImhp ZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJ IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSMKLSsJIyBUaGVyZSBkb2Vzbid0IGFwcGVh ciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkjIGV4cGxpY2l0 bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQot KwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRo ZSBsaWJyYXJ5Ci0rCSMgZGVwZW5kZW5jaWVzLgotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0n dGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwg Z3JlcCAibGQiYDsgdGVtcGxpc3Q9YGVjaG8gJHRlbXBsaXN0IHwgJFNFRCAicy9cKF4uKmxkLipc KVwoIC4qbGQgLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2Fz ZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsg KikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JwotKwk7OwotKyAgICAg ICopCi0rCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkqU3VuXCBDKikKLSsJICAj IFN1biBDKysgNS45Ci0rCSAgbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScgLXpkZWZzJwotKwkgIGFy Y2hpdmVfY21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAt byAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncycKLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1HJHth bGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJl dGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMnCi0rCSAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRpcicKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZvciBjb252IGlu ICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5j ZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmll bmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwotKwkgICMgTm90IHN1cmUgd2hldGhl ciBzb21ldGhpbmcgYmFzZWQgb24KLSsJICAjICRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpl eHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxCi0rCSAgIyB3b3VsZCBiZSBiZXR0ZXIu Ci0rCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rCi0rCSAgIyBBcmNoaXZlcyBj b250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgIyAi Q0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCi0r CSAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGlu Y2x1ZGVkCi0rCSAgIyBpbiB0aGUgYXJjaGl2ZS4KLSsJICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAg IGVzYWMKLSsgICAgOzsKLSsgIGx5bnhvcyopCi0rICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgIDs7Ci0rICBt ODhrKikKLSsgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0r ICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgOzsKLSsgIG12cyopCi0rICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rICAgICAgY3h4KikKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0Ci0rCWxkX3NobGlic19DWFg9bm8KLSsJOzsKLSsgICAgICAqKQotKwkjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJbGRfc2hsaWJzX0NYWD1u bwotKwk7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBuZXRic2QqKQotKyAgICBpZiBlY2hvIF9f RUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAg YXJjaGl2ZV9jbWRzX0NYWD0nJExEIC1Cc2hhcmVhYmxlICAtbyAkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRsaW5rZXJfZmxhZ3MnCi0rICAg ICAgd2xhcmM9Ci0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRp cicKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwotKyAgICAgIGhhcmRjb2RlX3NobGli cGF0aF92YXJfQ1hYPW5vCi0rICAgIGZpCi0rICAgICMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBw cmUtMS41IHRvb2xjaGFpbnMKLSsgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hh cmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCBjb25mdGVzdC4kb2Jq ZXh0IHwgJFNFRCAtZSAiczotbGdjYyAtbGMgLWxnY2M6OiInCi0rICAgIDs7Ci0rICBvcGVuYnNk MiopCi0rICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBicm9rZW4KLSsgICAg bGRfc2hsaWJzX0NYWD1ubwotKyAgICA7OwotKyAgb3BlbmJzZCopCi0rICAgIGlmIHRlc3QgLWYg L3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMK LSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKyAgICAgIGFyY2hpdmVfY21k c19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKLSsgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsgICAg ICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8 fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4K LSsJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJ ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKLSsJd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWNfQ1hYPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFy YyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAgICAgIGZpCi0rICAgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9J2VjaG8nCi0rICAgIGVsc2UKLSsgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAg IGZpCi0rICAgIDs7Ci0rICBvc2YzKikKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg ICBLQ0MqKQotKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVy Ci0rCi0rCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0 cHV0IGZpbGUKLSsJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJl bmFtZSB0aGUgbGlicmFyeQotKwkjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBh ZnRlciBsaW5raW5nLgotKwlhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRf ZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0 ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRD QyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAk bGliJwotKwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxp YmRpcicKLSsJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKwotKwkjIEFyY2hpdmVz IGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJIyAi Q0MgLUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBpbGVyLgotKwlvbGRf YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCi0r CTs7Ci0rICAgICAgUkNDKikKLSsJIyBSYXRpb25hbCBDKysgMi40LjEKLSsJIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGlic19DWFg9bm8KLSsJOzsK LSsgICAgICBjeHgqKQotKwlhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1leHBlY3Rf dW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHNvbmFtZSBgdGVzdCAt biAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0r CWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXIn Ci0rCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJIyBDb21tYW5kcyB0byBt YWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkjIHdoYXQg ImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4K LSsJIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSMKLSsJIyBUaGVyZSBkb2Vzbid0IGFw cGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkjIGV4cGxp Y2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhl bQotKwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGlu IHRoZSBsaWJyYXJ5Ci0rCSMgZGVwZW5kZW5jaWVzLgotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYx IHwgZ3JlcCAibGQiIHwgZ3JlcCAtdiAibGQ6ImA7IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlzdCB8 ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGlu ICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAk eiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRs aXN0JwotKwk7OwotKyAgICAgICopCi0rCWlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3 aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7 d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9 LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9 JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsKLSsJICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgIGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJICAjIENvbW1hbmRzIHRvIG1ha2UgY29t cGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAg IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9 JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAiXC1M IicKLSsKLSsJZWxzZQotKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAotKwkgIGxkX3NobGlic19DWFg9bm8KLSsJZmkKLSsJOzsKLSsgICAgZXNhYwotKyAgICA7 OwotKyAgb3NmNCogfCBvc2Y1KikKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBL Q0MqKQotKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCi0r Ci0rCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0 IGZpbGUKLSsJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFt ZSB0aGUgbGlicmFyeQotKwkjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRl ciBsaW5raW5nLgotKwlhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0 IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1w bGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGli JwotKwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRp cicKLSsJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKwotKwkjIEFyY2hpdmVzIGNv bnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJIyB0aGUg S0FJIEMrKyBjb21waWxlci4KLSsJb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtbyAkb2xkbGli ICRvbGRvYmpzJwotKwk7OwotKyAgICAgIFJDQyopCi0rCSMgUmF0aW9uYWwgQysrIDIuNC4xCi0r CSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwlsZF9zaGxpYnNf Q1hYPW5vCi0rCTs7Ci0rICAgICAgY3h4KikKLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScg LWV4cGVjdF91bnJlc29sdmVkIFwqJwotKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRh dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8g cHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9u ZX4KLSsJICBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhwfgotKwkgICRDQyAtc2hhcmVkJGFsbG93 X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgLVdsLC1pbnB1 dCAtV2wsJGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lv bgkkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWJ+Ci0rCSAgJHJtICRsaWIuZXhwJwotKwotKwloYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWD0nLXJwYXRoICRsaWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Jf Q1hYPToKLSsKLSsJIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBv dXRwdXQgdGhhdCBsaXN0cwotKwkjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmls ZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnku Ci0rCSMKLSsJIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRo aXMgY29tcGlsZXIgZnJvbQotKwkjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZp bGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0 IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSMgZGVwZW5kZW5jaWVz LgotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxB R1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAibGQiIHwgZ3JlcCAtdiAibGQ6ImA7 IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlzdCB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkLiok XCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25m dGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxp c3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JwotKwk7OwotKyAgICAgICopCi0rCWlmIHRl c3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkgIGFs bG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XCon Ci0rCSBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRl ZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFt ZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2 ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWInCi0rCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0NYWD06Ci0rCi0rCSAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9z ZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVj dCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgotKwkgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdT IC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgIlwtTCInCi0rCi0rCWVsc2UKLSsJICAj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICBsZF9zaGxpYnNf Q1hYPW5vCi0rCWZpCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIHBzb3MqKQotKyAgICAj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgbGRfc2hsaWJz X0NYWD1ubwotKyAgICA7OwotKyAgc3Vub3M0KikKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsgICAgICBDQyopCi0rCSMgU3VuIEMrKyA0LngKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGlic19DWFg9bm8KLSsJOzsKLSsgICAgICBsY2Mq KQotKwkjIEx1Y2lkCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAotKwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rICAgICAgKikKLSsJIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGlic19DWFg9bm8KLSsJOzsKLSsg ICAgZXNhYwotKyAgICA7OwotKyAgc29sYXJpcyopCi0rICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rICAgICAgQ0MqKQotKwkjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCi0r ICAgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCi0rCW5vX3VuZGVmaW5lZF9mbGFn X0NYWD0nIC16ZGVmcycKLSsJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1f Y21kc19DWFg9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9s cyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsg fTsiID4+ICRsaWIuZXhwfgotKwkkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAgJHt3bH0t TSAke3dsfSRsaWIuZXhwIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kcm0gJGxpYi5leHAn Ci0rCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctUiRsaWJkaXInCi0rCWhhcmRj b2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rCWNhc2UgJGhvc3Rfb3MgaW4KLSsJICBzb2xhcmlz Mi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rCSAgKikKLSsJICAgICMgVGhlIGNvbXBp bGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCi0rCSAg ICAjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLgotKwkgICAgIyBTdXBwb3J0ZWQg c2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKLSsJICAgIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjX0NYWD0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcK LSsJICAgIDs7Ci0rCWVzYWMKLSsJbGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rCi0rCW91dHB1 dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKwotKwkjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysr IG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJIyAiQ0MgLXhhciIsIHdoZXJl ICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCi0rCSMgbmVjZXNzYXJ5IHRv IG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkjIGluIHRo ZSBhcmNoaXZlLgotKwlvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC14YXIgLW8gJG9sZGxpYiAk b2xkb2JqcycKLSsJOzsKLSsgICAgICBnY3gqKQotKwkjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxl cgotKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wk c29uYW1lIC1vICRsaWInCi0rCi0rCSMgVGhlIEMrKyBjb21waWxlciBtdXN0IGJlIHVzZWQgdG8g Y3JlYXRlIHRoZSBhcmNoaXZlLgotKwlvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDICRMREZMQUdT IC1hcmNoaXZlIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCTs7Ci0rICAgICAgKikKLSsJIyBHTlUg QysrIGNvbXBpbGVyIHdpdGggU29sYXJpcyBsaW5rZXIKLSsJaWYgdGVzdCAiJEdYWCIgPSB5ZXMg JiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgbm9fdW5kZWZpbmVkX2ZsYWdf Q1hYPScgJHt3bH0teiAke3dsfWRlZnMnCi0rCSAgaWYgJENDIC0tdmVyc2lvbiB8IGdyZXAgLXYg J14yXC43JyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1z aGFyZWQgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8g JGxpYicKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckZWNobyAieyBnbG9iYWw6IiA+ ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+ PiAkbGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJCSRDQyAtc2hh cmVkIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRybSAk bGliLmV4cCcKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZl cmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0iJENDIC1zaGFy ZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwIFwiXC1MXCIiCi0rCSAg ZWxzZQotKwkgICAgIyBnKysgMi43IGFwcGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJl ZCcgb24gdGhpcwotKwkgICAgIyBwbGF0Zm9ybS4KLSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtRyAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAk bGliJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRlY2hvICJ7IGdsb2JhbDoiID4g JGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkJJENDIC1HIC1u b3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRybSAkbGliLmV4 cCcKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ug b3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVj dCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVk IGxpYnJhcnkuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0iJENDIC1HICRDRkxBR1Mg LXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCBcIlwtTFwiIgotKwkgIGZpCi0rCi0rCSAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJHdsJGxpYmRpcicKLSsJICBj YXNlICRob3N0X29zIGluCi0rCSAgc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7 OwotKwkgICopCi0rCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXogJHt3 bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKLSsJ ICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKwk7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBzeXN2 NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5p eHdhcmU3KiB8IHNjbzMuMnY1LjAuWzAyNF0qKQotKyAgICBub191bmRlZmluZWRfZmxhZ19DWFg9 JyR7d2x9LXosdGV4dCcKLSsgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rICAgIGhh cmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFU SCcKLSsKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBDQyopCi0rCWFyY2hpdmVf Y21kc19DWFg9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLUcgJHt3 bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7OwotKyAgICAgICopCi0rCWFyY2hpdmVf Y21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAt c2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJOzsKLSsgICAgZXNhYwot KyAgICA7OwotKyAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKLSsgICAgIyBOb3RlOiBX ZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBu b3QKLSsgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9s cyB1c2VkIGZyb20gbGliYyB0bwotKyAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBt ZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKLSsgICAgIyBldmVyIGxpbmsgY29ycmVj dGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAotKyAgICAjIHRo b3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2 eS1oYW5kZWQKLSsgICAgIyBhcyAteiBkZWZzLgotKyAgICAjIEZvciBzZWN1cml0eSByZWFzb25z LCBpdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3YXlzCi0rICAgICMgdXNlIGFi c29sdXRlIHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywgYW5kIGV4Y2x1ZGUgdGhl Ci0rICAgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAg QnV0IGRvaW5nIHNvCi0rICAgICMgcmVxdWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5n IHR3aWNlLCB3aGljaCBpcyBhIHBhaW4uCi0rICAgICMgU28gdGhhdCBiZWhhdmlvdXIgaXMgb25s eSBlbmFibGVkIGlmIFNDT0FCU1BBVEggaXMgc2V0IHRvIGEKLSsgICAgIyBub24tZW1wdHkgdmFs dWUgaW4gdGhlIGVudmlyb25tZW50LiAgTW9zdCBsaWtlbHkgb25seSB1c2VmdWwgZm9yCi0rICAg ICMgY3JlYXRpbmcgb2ZmaWNpYWwgZGlzdHJpYnV0aW9ucyBvZiBwYWNrYWdlcy4KLSsgICAgIyBU aGlzIGlzIGEgaGFjayB1bnRpbCBsaWJ0b29sIG9mZmljaWFsbHkgc3VwcG9ydHMgYWJzb2x1dGUg cGF0aAotKyAgICAjIG5hbWVzIGZvciBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBub191bmRlZmlu ZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4dCcKLSsgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hY PScke3dsfS16LG5vZGVmcycKLSsgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tUiwkbGliZGly YCcKLSsgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9JzonCi0rICAgIGxpbmtfYWxs X2RlcGxpYnNfQ1hYPXllcwotKyAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3ds fS1CZXhwb3J0JwotKyAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rICAgICAgQ0MqKQotKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUcg JHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21k c19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1ND T0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7OwotKyAgICAgICopCi0rCWFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0v fSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRf c3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7OwotKyAgICBl c2FjCi0rICAgIDs7Ci0rICB0YW5kZW0qKQotKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAg ICAgIE5DQyopCi0rCSMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJbGRfc2hsaWJzX0NYWD1ubwotKwk7OwotKyAgICAg ICopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwlsZF9z aGxpYnNfQ1hYPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIHZ4d29ya3MqKQotKyAg ICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgbGRfc2hs aWJzX0NYWD1ubwotKyAgICA7OwotKyAgKikKLSsgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0Ci0rICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgOzsKLStlc2Fj Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19DWFgiID4m NQotKyRhc19lY2hvICIkbGRfc2hsaWJzX0NYWCIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlic19D WFgiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotK0dDQ19DWFg9IiRHWFgiCi0rTERf Q1hYPSIkTEQiCi0rCi0rY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotK2NsYXNzIEZvbwot K3sKLStwdWJsaWM6Ci0rICBGb28gKHZvaWQpIHsgYSA9IDA7IH0KLStwcml2YXRlOgotKyAgaW50 IGE7Ci0rfTsKLStFT0YKLSsKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh Y19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0 dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgIyBQYXJzZSB0aGUgY29tcGlsZXIg b3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKLSsgICMgb2JqZWN0cywgbGlicmFyaWVz IGFuZCBsaWJyYXJ5IGZsYWdzLgotKwotKyAgIyBTZW50aW5lbCB1c2VkIHRvIGtlZXAgdHJhY2sg b2Ygd2hldGhlciBvciBub3Qgd2UgYXJlIGJlZm9yZQotKyAgIyB0aGUgY29uZnRlc3Qgb2JqZWN0 IGZpbGUuCi0rICBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPW5vCi0rCi0rICAjIFRoZSBgKicg aW4gdGhlIGNhc2UgbWF0Y2hlcyBmb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IHVzZSBgY2FzZScgaW4K LSsgICMgJG91dHB1dF92ZXJib3NlX2NtZCBjYW4gdHJpZ2dlciBnbG9iIGV4cGFuc2lvbiBkdXJp bmcgdGhlIGxvb3AKLSsgICMgZXZhbCB3aXRob3V0IHRoaXMgc3Vic3RpdHV0aW9uLgotKyAgb3V0 cHV0X3ZlcmJvc2VfbGlua19jbWQ9YCRlY2hvICJYJG91dHB1dF92ZXJib3NlX2xpbmtfY21kIiB8 ICRYc2VkIC1lICIkbm9fZ2xvYl9zdWJzdCJgCi0rCi0rICBmb3IgcCBpbiBgZXZhbCAkb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWRgOyBkbwotKyAgICBjYXNlICRwIGluCi0rCi0rICAgIC1MKiB8IC1S KiB8IC1sKikKLSsgICAgICAgIyBTb21lIGNvbXBpbGVycyBwbGFjZSBzcGFjZSBiZXR3ZWVuICIt e0wsUn0iIGFuZCB0aGUgcGF0aC4KLSsgICAgICAgIyBSZW1vdmUgdGhlIHNwYWNlLgotKyAgICAg ICBpZiB0ZXN0ICRwID0gIi1MIiBcCi0rCSAgfHwgdGVzdCAkcCA9ICItUiI7IHRoZW4KLSsJIHBy ZXY9JHAKLSsJIGNvbnRpbnVlCi0rICAgICAgIGVsc2UKLSsJIHByZXY9Ci0rICAgICAgIGZpCi0r Ci0rICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVu Ci0rCSBjYXNlICRwIGluCi0rCSAtTCogfCAtUiopCi0rCSAgICMgSW50ZXJuYWwgY29tcGlsZXIg bGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQotKwkgICAjIHByb3ZpZGVkIHRo ZSB1c2VyLiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBhZnRlciB0aGUKLSsJICAgIyB1c2Vy IHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0uCi0rCSAg IGlmIHRlc3QgLXogIiRjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIjsgdGhlbgotKwkgICAg IGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9IiR7cHJldn0ke3B9IgotKwkgICBlbHNlCi0r CSAgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0iJHtjb21waWxlcl9saWJfc2VhcmNo X3BhdGhfQ1hYfSAke3ByZXZ9JHtwfSIKLSsJICAgZmkKLSsJICAgOzsKLSsJICMgVGhlICItbCIg Y2FzZSB3b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCi0rCSAjIGxpbmtl ZCwgc28gZG9uJ3QgYm90aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4KLSsJIGVzYWMKLSsgICAgICAg ZWxzZQotKwkgaWYgdGVzdCAteiAiJHBvc3RkZXBzX0NYWCI7IHRoZW4KLSsJICAgcG9zdGRlcHNf Q1hYPSIke3ByZXZ9JHtwfSIKLSsJIGVsc2UKLSsJICAgcG9zdGRlcHNfQ1hYPSIke3Bvc3RkZXBz X0NYWH0gJHtwcmV2fSR7cH0iCi0rCSBmaQotKyAgICAgICBmaQotKyAgICAgICA7OwotKwotKyAg ICAqLiRvYmpleHQpCi0rICAgICAgICMgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRlc3Qgb2JqZWN0 IGZpbGUgb25seSBzaG93cyB1cAotKyAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91dHB1 dC4KLSsgICAgICAgaWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpleHQiOyB0aGVuCi0rCSBw cmVfdGVzdF9vYmplY3RfZGVwc19kb25lPXllcwotKwkgY29udGludWUKLSsgICAgICAgZmkKLSsK LSsgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4K LSsJIGlmIHRlc3QgLXogIiRwcmVkZXBfb2JqZWN0c19DWFgiOyB0aGVuCi0rCSAgIHByZWRlcF9v YmplY3RzX0NYWD0iJHAiCi0rCSBlbHNlCi0rCSAgIHByZWRlcF9vYmplY3RzX0NYWD0iJHByZWRl cF9vYmplY3RzX0NYWCAkcCIKLSsJIGZpCi0rICAgICAgIGVsc2UKLSsJIGlmIHRlc3QgLXogIiRw b3N0ZGVwX29iamVjdHNfQ1hYIjsgdGhlbgotKwkgICBwb3N0ZGVwX29iamVjdHNfQ1hYPSIkcCIK LSsJIGVsc2UKLSsJICAgcG9zdGRlcF9vYmplY3RzX0NYWD0iJHBvc3RkZXBfb2JqZWN0c19DWFgg JHAiCi0rCSBmaQotKyAgICAgICBmaQotKyAgICAgICA7OwotKwotKyAgICAqKSA7OyAjIElnbm9y ZSB0aGUgcmVzdC4KLSsKLSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAgIyBDbGVhbiB1cC4KLSsg IHJtIC1mIGEub3V0IGEuZXhlCi0rZWxzZQotKyAgZWNobyAibGlidG9vbC5tNDogZXJyb3I6IHBy b2JsZW0gY29tcGlsaW5nIENYWCB0ZXN0IHByb2dyYW0iCi0rZmkKLSsKLSskcm0gLWYgY29uZmVz dC4kb2JqZXh0Ci0rCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD0KLStpZiB0ZXN0IC1u ICIkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWCI7IHRoZW4KLSsgIGNvbXBpbGVyX2xpYl9z ZWFyY2hfZGlyc19DWFg9YGVjaG8gIiAke2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFh9IiB8 ICR7U0VEfSAtZSAncyEgLUwhICFnJyAtZSAncyFeICEhJ2AKLStmaQotKwotKyMgUE9SVE1FOiBv dmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMgYnJva2VuCi0rY2FzZSAk aG9zdF9vcyBpbgotK2ludGVyaXhbMy05XSopCi0rICAjIEludGVyaXggMy41IGluc3RhbGxzIGNv bXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJhdGhlciB0aGFuCi0rICAjIGhh Y2sgYWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAiZysrIiB0byBEVFJULgotKyAgcHJl ZGVwX29iamVjdHNfQ1hYPQotKyAgcG9zdGRlcF9vYmplY3RzX0NYWD0KLSsgIHBvc3RkZXBzX0NY WD0KLSsgIDs7Ci0rCi0rbGludXgqKQotKyAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGlu Ci0rICAqU3VuXCBDKikKLSsgICAgIyBTdW4gQysrIDUuOQotKyAgICAjCi0rICAgICMgVGhlIG1v cmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcwotKyAgICAjIGluY29t cGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKLSsgICAgIyBp dCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcwotKyAgICAjIC1saWJyYXJ5 PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCi0rICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGlu Ci0rICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQotKyAgICAgIHNvbGFyaXNfdXNlX3N0bHBv cnQ0PXllcwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNl X3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KLSsgICAgICBwb3N0ZGVwc19DWFg9Jy1saWJyYXJ5PUNz dGQgLWxpYnJhcnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0r c29sYXJpcyopCi0rICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgQ0MqKQotKyAgICAjIFRoZSBt b3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNv bXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMg aXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFy eT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBp bgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxw b3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgQWRkaW5nIHRoaXMgcmVx dWlyZXMgYSBrbm93bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCi0rICAgICMg U3VuIGNvbXBpbGVyIHZlcnNpb25zIGJlZm9yZSA1LjYsIGVsc2UgUElDIG9iamVjdHMgZnJvbSBh biBvbGQKLSsgICAgIyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVh ZGluZyB0byBzdWJ0bGUgYnVncy4KLSsgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0 IiAhPSB5ZXM7IHRoZW4KLSsgICAgICBwb3N0ZGVwc19DWFg9Jy1saWJyYXJ5PUNzdGQgLWxpYnJh cnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rZXNhYwotKwotK2Nh c2UgIiAkcG9zdGRlcHNfQ1hYICIgaW4KLSsqIiAtbGMgIiopIGFyY2hpdmVfY21kc19uZWVkX2xj X0NYWD1ubyA7OwotK2VzYWMKLSsKLStsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0KLStsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9Ci0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPQotKwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0 byBwcm9kdWNlIFBJQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBv cHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KLSsKLSsgICMgQysrIHNwZWNpZmljIGNh c2VzIGZvciBwaWMsIHN0YXRpYywgd2wsIGV0Yy4KLSsgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0 aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKyAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMnCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg ICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVzdCAi JGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9j ZXNzb3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsgICAgICBm aQotKyAgICAgIDs7Ci0rICAgIGFtaWdhb3MqKQotKyAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQg bGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAgICAj IGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRo aW5nIGJldHRlciwKLSsgICAgICAjIGxpa2UgYC1tNjgwNDAnLgotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0Jwot KyAgICAgIDs7Ci0rICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9z ZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhl c2UgT1Nlcy4KLSsgICAgICA7OwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgb3MyKiB8IHB3MzIq KQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxs IHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBk bGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgICMgQWx0 aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBv bGQtc3R5bGUKLSsgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcwotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLURETExfRVhQT1JUJwotKyAgICAgIDs7Ci0r ICAgIGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24g dGhpcyBwbGF0Zm9ybQotKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhf RFlMSUIgZmlsZXMKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mbm8tY29tbW9u JwotKyAgICAgIDs7Ci0rICAgICpkamdwcCopCi0rICAgICAgIyBESkdQUCBkb2VzIG5vdCBzdXBw b3J0IHNoYXJlZCBsaWJyYXJpZXMgYXQgYWxsCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPQotKyAgICAgIDs7Ci0rICAgIGludGVyaXhbMy05XSopCi0rICAgICAgIyBJbnRlcml4IDMu eCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAgICAj IEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsgICAg ICA7OwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgot KwlsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9LUtjb25mb3JtX3BpYwotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQg SFAtVVggYW5kIDY0LWJpdCBIUC1VWCwgYnV0Ci0rICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgot KyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCp8aWE2NCopCi0rCTs7Ci0r ICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKLSsJOzsKLSsgICAg ICBlc2FjCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFg9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICAgIGFpeFs0LTldKikKLSsJIyBBbGwgQUlYIGNvZGUgaXMgUElDLgotKwlp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICMgQUlYIDUgbm93IHN1cHBvcnRz IElBNjQgcHJvY2Vzc29yCi0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRp YycKLSsJZWxzZQotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLWJuc28gLWJJOi9s aWIvc3lzY2FsbHMuZXhwJwotKwlmaQotKwk7OwotKyAgICAgIGNob3J1cyopCi0rCWNhc2UgJGNj X2Jhc2VuYW1lIGluCi0rCWN4Y2g2OCopCi0rCSAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIK LSsJICAjIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsIENYWCk9Ii0tbm9f YXV0b19pbnN0YW50aWF0aW9uIC11IF9fbWFpbiAtdSBfX3ByZW1haW4gLXUgX2Fib3J0IC1yICRD T09MX0RJUi9saWIvbGliT3JiLmEgJE1WTUVfRElSL2xpYi9DQy9saWJDLmEgJE1WTUVfRElSL2xp Yi9jbGFzc2l4L2xpYmN4LnMuYSIKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgIGRhcndp biopCi0rICAgICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQotKyAg ICAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSsg ICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICAgeGxjKikKLSsgICAgICAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXFub2NvbW1vbicKLSsgICAgICAgICAgIGx0 X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKyAgICAgICAgICAgOzsKLSsgICAgICAgICBl c2FjCi0rICAgICAgIDs7Ci0rICAgICAgZGd1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0r CSAgZWMrKyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJwotKwkgICAg OzsKLSsJICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7 OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKwkjIEZyZWVC U0QgdXNlcyBHTlUgQysrCi0rCTs7Ci0rICAgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSop Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxl cl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9JyR7d2x9 LWEgJHt3bH1hcmNoaXZlJwotKwkgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVu Ci0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1onCi0rCSAgICBmaQotKwkgICAg OzsKLSsJICBhQ0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKwkg ICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgIGhwcGEqNjQqfGlhNjQqKQotKwkgICAgICAjICta IHRoZSBkZWZhdWx0Ci0rCSAgICAgIDs7Ci0rCSAgICAqKQotKwkgICAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9JytaJwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgOzsKLSsJICAq KQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGludGVyaXgqKQotKwkjIFRoaXMgaXMg Yzg5LCB3aGljaCBpcyBNUyBWaXN1YWwgQysrIChubyBzaGFyZWQgbGlicykKLSsJIyBBbnlvbmUg d2FudHMgdG8gZG8gYSBwb3J0PwotKwk7OwotKyAgICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0 b3B1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgbHRfcHJvZ19j b21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9 Jy1ub25fc2hhcmVkJwotKwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUgZGVmYXVsdC4K LSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBsaW51eCog fCBrKmJzZCotZ251KQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICAj IEtBSSBDKysgQ29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctLWJhY2tl bmQgLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCi0rCSAgICA7 OwotKwkgIGljcGMqIHwgZWNwYyopCi0rCSAgICAjIEludGVsIEMrKwotKwkgICAgbHRfcHJvZ19j b21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1L UElDJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctc3RhdGljJwotKwkgICAg OzsKLSsJICBwZ0NDKiB8IHBnY3BwKikKLSsJICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBp bGVyLgotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9Jy1mcGljJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf Q1hYPSctQnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMgQ29tcGFxIEMrKwot KwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0 IGFsbCBBbHBoYQotKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBh cmUgUElDLgotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQotKwkgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfQ1hYPSctbm9uX3NoYXJlZCcKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAg IGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkgICAgKlN1blwgQyopCi0rCSAgICAg ICMgU3VuIEMrKyA1LjkKLSsJICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycK LSsJICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJICAgICAg bHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1Rb3B0aW9uIGxkICcKLSsJICAgICAgOzsKLSsJICAg IGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBseW54b3MqKQotKwk7OwotKyAg ICAgIG04OGsqKQotKwk7OwotKyAgICAgIG12cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0r CSAgY3h4KikKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLVcgYyxleHBvcnRhbGwn Ci0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbmV0YnNk KikKLSsJOzsKLSsgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0rCSAgS0NDKikKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctLWJhY2tl bmQgLVdsLCcKLSsJICAgIDs7Ci0rCSAgUkNDKikKLSsJICAgICMgUmF0aW9uYWwgQysrIDIuNC4x Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCi0rCSAgICA7OwotKwkgIGN4 eCopCi0rCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMrKwotKwkgICAgbHRfcHJvZ19jb21waWxlcl93 bF9DWFg9Jy1XbCwnCi0rCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJ dCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCi0rCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQg VW5peCBvYmplY3RzIGFyZSBQSUMuCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0r CSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJwotKwkgICAgOzsK LSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHBzb3MqKQotKwk7OwotKyAg ICAgIHNvbGFyaXMqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAgICMg U3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKLSsJICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1C c3RhdGljJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1Rb3B0aW9uIGxkICcKLSsJ ICAgIDs7Ci0rCSAgZ2N4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1QSUMnCi0rCSAgICA7OwotKwkgICopCi0rCSAg ICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgc3Vub3M0KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUg aW4KLSsJICBDQyopCi0rCSAgICAjIFN1biBDKysgNC54Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVy X3BpY19DWFg9Jy1waWMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3Rh dGljJwotKwkgICAgOzsKLSsJICBsY2MqKQotKwkgICAgIyBMdWNpZAotKwkgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPSctcGljJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNh YwotKwk7OwotKyAgICAgIHRhbmRlbSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgTkND KikKLSsJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkgICAgbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYPSctS1BJQycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsK LSsgICAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVO SVgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAgIGx0X3Byb2dfY29t cGlsZXJfd2xfQ1hYPSctV2wsJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJ QycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICA7 OwotKwllc2FjCi0rCTs7Ci0rICAgICAgdnh3b3JrcyopCi0rCTs7Ci0rICAgICAgKikKLSsJbHRf cHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0NYWD1ubwotKwk7OwotKyAgICBlc2FjCi0r ICBmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY IiA+JjY7IH0KLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVh bGx5IHdvcmtzLgotKyMKLStpZiB0ZXN0IC1uICIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIjsg dGhlbgotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGls ZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCB3b3JrcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFggd29ya3MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJf cGljX3dvcmtzX0NYWCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFg9bm8KLSsg IGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9 IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggLURQSUMiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlv biBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgy KSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5k LgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJh Y2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlw aGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlv biBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0r ICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipG TEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBd KmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRf Y29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxMzQ4MDogJGx0X2Nv bXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0r ICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNf bWU6MTM0ODQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMp ICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2Fu IG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAg ICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBv dXRwdXQuCi0rICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQg LWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29u ZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIg fHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAg ICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYPXllcwotKyAgICAgZmkKLSsgICBm aQotKyAgICRybSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgiID4mNQotKyRhc19l Y2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA+JjY7IH0KLSsKLStpZiB0 ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCIgPSB4eWVzOyB0aGVuCi0r ICAgIGNhc2UgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCBpbgotKyAgICAgIiIgfCAiICIqKSA7 OwotKyAgICAgKikgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSIgJGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWCIgOzsKLSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWD0KLSsgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9DWFg9bm8KLStm aQotKwotK2ZpCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRv IG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAqKQotKyAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggLURQSUMiCi0rICAg IDs7Ci0rZXNhYwotKwotKyMKLSsjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcg YWN0dWFsbHkgd29ya3MuCi0rIwotK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWCBldmFsIGx0 X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFhcIgotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcg JGx0X3RtcF9zdGF0aWNfZmxhZyB3b3JrcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYg JGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCtzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBs dF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9bm8KLSsgICBzYXZlX0xERkxBR1M9 IiRMREZMQUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWciCi0r ICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0r ICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3Qk YWNfZXhlZXh0OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRo ZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsg ICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsgICAgICAgY2F0 IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgICRlY2hvICJYJF9sdF9saW5rZXJfYm9pbGVycGxh dGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQv ZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBj b25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9j dl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9eWVzCi0rICAgICAgIGZpCi0rICAgICBl bHNlCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD15ZXMKLSsg ICAgIGZpCi0rICAgZmkKLSsgICAkcm0gLXIgY29uZnRlc3QqCi0rICAgTERGTEFHUz0iJHNhdmVf TERGTEFHUyIKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4mNQotKyRhc19lY2hvICIkbHRf Y3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA+JjY7IH0KLSsKLStpZiB0ZXN0IHgi JGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPSB4eWVzOyB0aGVuCi0rICAg IDoKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0KLStmaQotKwotKwot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9y dHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAk Y29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21waWxl cl9jX29fQ1hYPW5vCi0rICAgJHJtIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtkaXIg Y29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVjaG8gIiRsdF9z aW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0X2Nv bXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAjIEluc2VydCB0 aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgot KyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0 IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNv bnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChu b3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAgbHRf Y29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31c ezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0 ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGls ZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxMzU4NDogJGx0X2NvbXBpbGVc IiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAg IGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRh c19tZToxMzU4ODogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1 cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKLSsgICB0aGVuCi0rICAgICAj IFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3Qg cmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAg ICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+ IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRl c3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0 LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxs OyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD15ZXMKLSsgICAgIGZp Ci0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1Ci0rICAgJHJtIGNvbmZ0ZXN0KgotKyAgICMg U0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IK LSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9paV9maWxlcyAm JiAkcm0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAgJHJtIG91dC8q ICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgcm1kaXIgY29uZnRlc3QKLSsgICAkcm0gY29u ZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRf Y3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29t cGlsZXJfY19vX0NYWCIgPiY2OyB9Ci0rCi0rCi0raGFyZF9saW5rcz0ibm90dGVzdGVkIgotK2lm IHRlc3QgIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID0gbm8gJiYgdGVzdCAiJG5lZWRf bG9ja3MiICE9IG5vOyB0aGVuCi0rICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5l ZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsg fQotKyAgaGFyZF9saW5rcz15ZXMKLSsgICRybSBjb25mdGVzdCoKLSsgIGxuIGNvbmZ0ZXN0LmEg Y29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB0b3VjaCBjb25mdGVz dC5hCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCi0r ICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubwot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQot KyRhc19lY2hvICIkaGFyZF9saW5rcyIgPiY2OyB9Ci0rICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIg PSBubzsgdGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGAk Q0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2Fm ZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBv cnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30KLSsgICAgbmVl ZF9sb2Nrcz13YXJuCi0rICBmaQotK2Vsc2UKLSsgIG5lZWRfbG9ja3M9bm8KLStmaQotKwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIg bGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hh cmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKwotKyAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9 JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAn XCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgIGFpeFs0LTldKikKLSsgICAgIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0s IHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rICAgICMgLUMgbWVhbnMgZGVt YW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsg ICAgaWYgJE5NIC1WIDI+JjEgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAg ZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 IGF3ayAnXCcneyBpZiAoKChcJDIgPT0gIlQiKSB8fCAoXCQyID09ICJEIikgfHwgKFwkMiA9PSAi QiIpKSAmJiAoc3Vic3RyKFwkMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQzIH0gfSdcJycgfCBz b3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBlbHNlCi0rICAgICAgZXhwb3J0X3N5bWJv bHNfY21kc19DWFg9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sg aWYgKCgoXCQyID09ICJUIikgfHwgKFwkMiA9PSAiRCIpIHx8IChcJDIgPT0gIkIiKSkgJiYgKHN1 YnN0cihcJDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRl eHBvcnRfc3ltYm9scycKLSsgICAgZmkKLSsgICAgOzsKLSsgIHB3MzIqKQotKyAgICBleHBvcnRf c3ltYm9sc19jbWRzX0NYWD0iJGx0ZGxsX2NtZHMiCi0rICA7OwotKyAgY3lnd2luKiB8IG1pbmd3 KikKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAkY29udmVuaWVu Y2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4q WyBdXChbXiBdKlwpL1wxIERBVEEvOy9eLipbIF1fX25tX18vcy9eLipbIF1fX25tX19cKFteIF0q XClbIF1bXiBdKi9cMSBEQVRBLzsvXklbIF0vZDsvXltBSVRXXVsgXS9zLy4qWyBdLy8nXCcnIHwg c29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICA7OwotKyAgKikKLSsgICAgZXhwb3J0 X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5 bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRf c3ltYm9scycKLSsgIDs7Ci0rICBlc2FjCi0rICBleGNsdWRlX2V4cHN5bXNfQ1hYPSdfR0xPQkFM X09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCi0rCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19DWFgiID4mNQotKyRhc19lY2hvICIkbGRfc2hs aWJzX0NYWCIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8gJiYgY2FuX2J1aWxk X3NoYXJlZD1ubwotKwotKyMKLSsjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/ Ci0rIwotK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiBpbgotK3h8eHllcykKLSsg ICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKLSsgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NY WD15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgotKyAgICBjYXNlICRhcmNoaXZlX2NtZHNfQ1hYIGluCi0rICAgIConficq KQotKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5k IHNlcXVlbmNlcy4KLSsgICAgICA7OwotKyAgICAnJENDICcqKQotKyAgICAgICMgVGVzdCB3aGV0 aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUK LSsgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBh bHJlYWR5IHBhc3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAt bGdjYy4KLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhl ciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4gIiA+ JjY7IH0KLSsgICAgICAkcm0gY29uZnRlc3QqCi0rICAgICAgZWNobyAiJGx0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAgICAgaWYgeyAoZXZhbCBl Y2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZhbCAkYWNf Y29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gMj5jb25m dGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIHNvbmFtZT1jb25mdGVzdAotKyAgICAgICAgbGliPWNv bmZ0ZXN0Ci0rICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKLSsgICAgICAgIGRl cGxpYnM9Ci0rICAgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bF9DWFgKLSsJcGljX2ZsYWc9 JGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWAotKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKLSsg ICAgICAgIGxpbmtlcl9mbGFncz0tdgotKyAgICAgICAgdmVyc3RyaW5nPQotKyAgICAgICAgb3V0 cHV0X29iamRpcj0uCi0rICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0Ci0rICAgICAgICBsdF9zYXZl X2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZ19DWFgKLSsgICAgICAg IGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0KLSsgICAgICAgIGlmIHsgKGV2YWwgZWNobyAiJGFz X21lOiRMSU5FTk86IFwiJGFyY2hpdmVfY21kc19DWFggMlw+XCYxIFx8IGdyZXAgXCIgLWxjIFwi IFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1Ci0rICAoZXZhbCAkYXJjaGl2ZV9jbWRzX0NYWCAy XD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKSAyPiY1Ci0rICBhY19z dGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKyAgICAgICAgdGhlbgotKwkgIGFyY2hpdmVf Y21kc19uZWVkX2xjX0NYWD1ubwotKyAgICAgICAgZWxzZQotKwkgIGFyY2hpdmVfY21kc19uZWVk X2xjX0NYWD15ZXMKLSsgICAgICAgIGZpCi0rICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19D WFg9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAgICBlbHNlCi0rICAgICAgICBj YXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICBmaQotKyAgICAgICRybSBjb25mdGVzdCoKLSsg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXJjaGl2ZV9jbWRzX25l ZWRfbGNfQ1hYIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgPiY2 OyB9Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJp c3RpY3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3Rl cmlzdGljcy4uLiAiID4mNjsgfQotK2xpYnJhcnlfbmFtZXNfc3BlYz0KLStsaWJuYW1lX3NwZWM9 J2xpYiRuYW1lJwotK3NvbmFtZV9zcGVjPQotK3NocmV4dF9jbWRzPSIuc28iCi0rcG9zdGluc3Rh bGxfY21kcz0KLStwb3N0dW5pbnN0YWxsX2NtZHM9Ci0rZmluaXNoX2NtZHM9Ci0rZmluaXNoX2V2 YWw9Ci0rc2hsaWJwYXRoX3Zhcj0KLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93 bgotK3ZlcnNpb25fdHlwZT1ub25lCi0rZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgot K3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgotKwotK25lZWRfbGli X3ByZWZpeD11bmtub3duCi0raGFyZGNvZGVfaW50b19saWJzPW5vCi0rCi0rIyB3aGVuIHlvdSBz ZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92 ZXJzaW9uCi0rIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCi0rbmVlZF92ZXJz aW9uPXVua25vd24KLSsKLStjYXNlICRob3N0X29zIGluCi0rYWl4MyopCi0rICB2ZXJzaW9uX3R5 cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJwotKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRI Ci0rCi0rICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBh IG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgOzsKLSsKLSthaXhbNC05XSopCi0rICB2 ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9u PW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0g aWE2NDsgdGhlbgotKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKLSsgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0n Ci0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBlbHNlCi0rICAgICMgV2l0 aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUK LSsgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQg c3RhcnQgd2l0aAotKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhl IGdlbmVyYXRlZCBsaWJyYXJ5IHRvCi0rICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGlu dmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCi0rICAgICMgZGV2ZWxvcG1lbnQgc25h cHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAg ICBhaXg0IHwgYWl4NC5bMDFdIHwgYWl4NC5bMDFdLiopCi0rICAgICAgaWYgeyBlY2hvICcjaWYg X19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDk3KScK LSsJICAgZWNobyAnIHllcyAnCi0rCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwg Z3JlcCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KLSsJOgotKyAgICAgIGVsc2UKLSsJY2FuX2J1aWxk X3NoYXJlZD1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICAjIEFJWCAo b24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2Fu IG5vdCBoYXJkY29kZSBjb3JyZWN0Ci0rICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJv YmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KLSsgICAgIyBjb2xsZWN0Miwg c28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KLSsgICAgaWYgdGVz dCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rICAgICAgIyBJZiB1c2lu ZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNv Ci0rICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0 IHRoZXNlIGFyZSBub3QKLSsgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCi0r ICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIGVsc2UKLSsgICAgICAjIFdlIHByZXNlcnZlIC5hIGFz IGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgotKyAgICAgICMg YW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgotKyAgICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJwot KyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCi0rICAgIGZpCi0rICAgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAgZmkKLSsgIDs7Ci0r Ci0rYW1pZ2FvcyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAk bGlibmFtZS5hJwotKyAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGlu IC9zeXMvbGlicy4KLSsgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhs aWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1l ICdcJydzJV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJHJtIC9zeXMv bGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9T ICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGli ICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJwotKyAgOzsKLSsKLStiZW9z KikKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICBk eW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rICBzaGxpYnBhdGhfdmFyPUxJQlJBUllf UEFUSAotKyAgOzsKLSsKLStic2RpWzQ1XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5l ZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BBVEg9Ilwk UEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNy L1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGliIgotKyAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsg ICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9saWIg YW5kCi0rICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9YMTFS NiksIGJ1dCBsZXQgdXMgYWxsb3cKLSsgICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50 byBwcm9ncmFtcwotKyAgOzsKLSsKLStjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCi0rICB2ZXJz aW9uX3R5cGU9d2luZG93cwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBuZWVkX3ZlcnNpb249 bm8KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKwotKyAgY2FzZSAkR0NDLCRob3N0X29zIGluCi0r ICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiopCi0rICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCi0rICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxp YmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKLSsgICAgcG9zdGluc3RhbGxfY21kcz0n YmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+Ci0rICAgICAgZGxwYXRoPWAkU0hFTEwgMj4m MSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7ZWNobyBcJGRsbmFtZSdcJydg fgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0 IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRk aXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRs bmFtZScKLSsgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wn Jy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbHBhdGg9JGRpci9cJGRsZGxs fgotKyAgICAgICAkcm0gXCRkbHBhdGgnCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBjeWd3aW4qKQotKyAgICAgICMg Q3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwotKyAgICAgIHNv bmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydgYGVjaG8g JHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0 fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIC9saWIvdzMyYXBp IC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAgICAgOzsKLSsgICAgbWluZ3cqKQotKyAgICAgICMg TWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4Ci0rICAgICAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3Zl cnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1g JENDIC1wcmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMv XmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSsgICAgICBpZiBlY2hvICIkc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIiB8IGdyZXAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsOyB0aGVuCi0r ICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHByaW50 ZWQgYnkKLSsgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3lnd2lu LiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKLSsgICAgICAgICMgcGF0aCB3aXRoIDsgc2VwYXJhdG9y cywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRsZSB0aGUKLSsgICAgICAgICMg ZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28gbGVh dmUgdGhlbSwKLSsgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVzIGZv dW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKLSsgICAgICAgICMgd2hpY2ggd291bGRuJ3Qg dW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KLSsgICAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1l ICdzLzsvIC9nJ2AKLSsgICAgICBlbHNlCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9YGVjaG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhf U0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBwdzMyKikKLSsgICAg ICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBs aWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8n YGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hh cmVkX2V4dH0nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKwotKyAgKikKLSsgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUg J3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAg IDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwotKyAgIyBGSVhN RTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRh YmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJo YXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90 eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3ZlcnN1ZmZpeH0kc2hh cmVkX2V4dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1l fSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpv cn0kc2hhcmVkX2V4dCcKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIHNo bGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKLSsgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1v ZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJwotKwotKyAgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCi0rICA7Owot KwotK2RndXgqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8K LSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICA7OwotKwotK2ZyZWVic2QxKikKLSsgIGR5bmFtaWNfbGlua2VyPW5v Ci0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICMgRHJhZ29uRmx5IGRvZXMg bm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKLSsgICMgdmVyc2lv bmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgotKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpm b3JtYXQ7IHRoZW4KLSsgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCi0rICBlbHNl Ci0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgZnJlZWJzZFsxMjNdKikgb2JqZm9ybWF0PWFv dXQgOzsKLSsgICAgKikgb2JqZm9ybWF0PWVsZiA7OwotKyAgICBlc2FjCi0rICBmaQotKyAgdmVy c2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAotKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCi0r ICAgIGZyZWVic2QtZWxmKikKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgICBuZWVkX3ZlcnNpb249bm8K LSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7OwotKyAgICBmcmVlYnNkLSopCi0r ICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgICAgbmVl ZF92ZXJzaW9uPXllcwotKyAgICAgIDs7Ci0rICBlc2FjCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgZnJlZWJzZDIqKQotKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMDFdKiB8 IGZyZWVic2RlbGYzLlswMV0qKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz Ci0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGZyZWVic2QzLlsyLTld KiB8IGZyZWVic2RlbGYzLlsyLTldKiB8IFwKLSsgIGZyZWVic2Q0LlswLTVdIHwgZnJlZWJzZGVs ZjQuWzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCi0rICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAg IDs7Ci0rICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5Ci0rICAgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7 OwotKyAgZXNhYwotKyAgOzsKLSsKLStnbnUqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9 JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCi0rICA7OwotKwotK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQotKyAgIyBHaXZl IGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQu c2wgcmVmdXNlcyB0bwotKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCi0rICB2ZXJz aW9uX3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5v Ci0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgaWE2NCopCi0rICAgIHNocmV4dF9jbWRzPScuc28n Ci0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGRsZC5zbyIKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgICAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lm aWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9E RSIgPSBYMzI7IHRoZW4KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli L2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCi0rICAgIGVsc2UK LSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xv Y2FsL2xpYi9ocHV4NjQiCi0rICAgIGZpCi0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAgOzsKLSsgICBocHBhKjY0KikKLSsgICAg IHNocmV4dF9jbWRzPScuc2wnCi0rICAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgICBk eW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICi0rICAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZp ZWQuCi0rICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCi0rICAgICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgICA7Owot KyAgICopCi0rICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9z dF9vcyBkbGQuc2wiCi0rICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAotKyAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hMSUJf UEFUSAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgOzsKLSsgIGVzYWMKLSsgICMgSFAtVVgg cnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1 LgotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCi0rICA7OwotKwotK2ludGVy aXhbMy05XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwot KyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGR5bmFtaWNfbGlua2Vy PSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFy ZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25zdG9w dXgqKQotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9 bm9uc3RvcHV4IDs7Ci0rICAgICopCi0rCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5 ZXM7IHRoZW4KLSsJCXZlcnNpb25fdHlwZT1saW51eAotKwllbHNlCi0rCQl2ZXJzaW9uX3R5cGU9 aXJpeAotKwlmaSA7OwotKyAgZXNhYwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3Zl cnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICBjYXNlICRob3N0X29zIGluCi0rICBpcml4NSogfCBub25zdG9wdXgqKQotKyAgICBs aWJzdWZmPSBzaGxpYnN1ZmY9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBjYXNlICRMRCBpbiAjIGxp YnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECi0rICAgICotMzJ8 KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCi0rICAgICAgbGlic3VmZj0g c2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7OwotKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYz MmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQotKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZm PU4zMiBsaWJtYWdpYz1OMzI7OwotKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1l bGY2NGJtaXAgIikKLSsgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1i aXQ7OwotKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsK LSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ JHtzaGxpYnN1ZmZ9X1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3Vm Zn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKLSsgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKLSsgIDs7Ci0rCi0rIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9s ZGxkLCBhb3V0LCBvciBjb2ZmLgotK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgq Y29mZiopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLSsjIFRoaXMgbXVzdCBiZSBM aW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdudSkKLSsgIHZlcnNpb25fdHlwZT1saW51eAot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJk aXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCi0rICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNo IGlzIHVuYWNjZXB0YWJsZS4KLSsgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxs b3cgZm9yIGZhc3RfaW5zdGFsbAotKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KLSsg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIK LSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7 bGlic3VmZn0iCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFy Y2ggcGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgbHRfbGRf ZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVz IDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7 IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bIAld Kmh3Y2FwWyAJXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9k JyB8IHRyICdcbicgJyAnYAotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKLSsgIGZpCi0rCi0rICAjIFdlIHVz ZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMg b24KLSsgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBs aWJyYXJpZXMgd2l0aCB0aGUKLSsgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3 YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAotKyAgIyBtb3N0IHBvd2VycGMtbGludXgg Ym94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKLSsgICMgcGVvcGxl IGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3 ZQotKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCi0r ICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJwotKyAgOzsKLSsKLStuZXRic2QqKQot KyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVy c2lvbj1ubwotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9k ZXYvbnVsbDsgdGhlbgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4JwotKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAk bGliZGlyJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28nCi0rICBl bHNlCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0Qg bGQuZWxmX3NvJwotKyAgZmkKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz Ci0rICA7OwotKwotK25ld3NvczYpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKLSsgIDs7Ci0rCi0rbnRvLXFueCopCi0rICB2ZXJzaW9uX3R5cGU9 bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLStvcGVuYnNkKikKLSsgIHZlcnNpb25f dHlwZT1zdW5vcwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAo My4zIGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCi0rICBjYXNlICRob3N0X29z IGluCi0rICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopIG5lZWRfdmVyc2lvbj15ZXMgOzsK LSsgICAgKikgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZF92ZXJzaW9uPW5vICA7OwotKyAg ZXNhYwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZp bmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZf XyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1 IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg ICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQotKwlzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9bm8KLSsJOzsKLSsgICAgICAqKQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgZWxzZQotKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rICBmaQotKyAgOzsKLSsKLStvczIqKQotKyAgbGlibmFtZV9z cGVjPSckbmFtZScKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFtZS5h JwotKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJwotKyAgc2hsaWJwYXRoX3Zhcj1MSUJQ QVRICi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIHZlcnNpb25fdHlwZT1v c2YKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMvY2Mg L3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotKyAgOzsKLSsKLStyZG9zKikK LSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg ICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCi0rICBwb3N0 aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJwotKyAgOzsKLSsKLStzdW5vczQqKQotKyAgdmVy c2lvbl90eXBlPXN1bm9zCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcgJGxp YmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVu Ci0rICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgZmkKLSsgIG5lZWRfdmVyc2lvbj15ZXMKLSsg IDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhv c3RfdmVuZG9yIGluCi0rICAgIHNuaSkKLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBleHBvcnRfZHluYW1pY19m bGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKLSsgICAgICBydW5wYXRoX3Zhcj1MRF9SVU5f UEFUSAotKyAgICAgIDs7Ci0rICAgIHNpZW1lbnMpCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICAgICAgOzsKLSsgICAgbW90b3JvbGEpCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PW5vCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91c3Iv Y2NzL2xpYicKLSsgICAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStzeXN2NCpNUCopCi0rICBp ZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rICAgIHZlcnNpb25fdHlwZT1saW51eAotKyAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJu YW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25h bWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKLSsgICAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIGZpCi0rICA7OwotKwotK3N5c3Y1KiB8IHNjbzMuMnY1KiB8 IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQotKyAgdmVyc2lv bl90eXBlPWZyZWVic2QtZWxmCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lv bj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRo ZW4KLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2du dS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCi0rICAgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubwotKyAgZWxzZQotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91 c3IvY2NzL2xpYiAvdXNyL2xpYicKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgc2NvMy4ydjUqKQotKyAgICAgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIiCi0r CTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vz ci9saWInCi0rICA7OwotKwotK3V0czQqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLSsq KQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1Ci0rJGFzX2VjaG8gIiRkeW5h bWljX2xpbmtlciIgPiY2OyB9Ci0rdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9i dWlsZF9zaGFyZWQ9bm8KLSsKLStpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhf c3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICBsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMiCi0rZmkKLSsKLStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMiCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9 IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKLSsKLSt2YXJpYWJsZXNfc2F2ZWRf Zm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCi0raWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFi bGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFS WV9QQVRIIgotK2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhv dyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMu Li4gIiA+JjY7IH0KLStoYXJkY29kZV9hY3Rpb25fQ1hYPQotK2lmIHRlc3QgLW4gIiRoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWCIgfHwgXAotKyAgIHRlc3QgLW4gIiRydW5wYXRoX3Zhcl9D WFgiIHx8IFwKLSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpY19DWFgiID0gIlh5ZXMiIDsg dGhlbgotKwotKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0YW50IGRpcmVjdG9yaWVzLgot KyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9DWFgiICE9IG5vICYmCi0rICAgICAjIElmIHRo ZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdl Ci0rICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFu IGluc3RhbGxlZCBsaWJyYXJ5Ci0rICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0 aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCi0rICAgICAjIyB0ZXN0ICIkX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCBDWFgpIiAhPSBubyAmJgotKyAgICAgdGVzdCAiJGhh cmRjb2RlX21pbnVzX0xfQ1hYIiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtpbmcgYWx3YXlzIGhh cmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAgICBoYXJkY29kZV9h Y3Rpb25fQ1hYPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQgaGFy ZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgotKyAgICBoYXJk Y29kZV9hY3Rpb25fQ1hYPWltbWVkaWF0ZQotKyAgZmkKLStlbHNlCi0rICAjIFdlIGNhbm5vdCBo YXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGluZwot KyAgIyBkaXJlY3Rvcmllcy4KLSsgIGhhcmRjb2RlX2FjdGlvbl9DWFg9dW5zdXBwb3J0ZWQKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb25f Q1hYIiA+JjUKLSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9DWFgiID4mNjsgfQotKwotK2lm IHRlc3QgIiRoYXJkY29kZV9hY3Rpb25fQ1hYIiA9IHJlbGluazsgdGhlbgotKyAgIyBGYXN0IGlu c3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0r ZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAotKyAgICAg dGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24g aXMgbm90IG5lY2Vzc2FyeQotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcwotK2ZpCi0r Ci0rCi0rIyBUaGUgZWxzZSBjbGF1c2Ugc2hvdWxkIG9ubHkgZmlyZSB3aGVuIGJvb3RzdHJhcHBp bmcgdGhlCi0rIyBsaWJ0b29sIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIHlvdSBmb3Jnb3QgdG8g c2hpcCBsdG1haW4uc2gKLSsjIHdpdGggeW91ciBwYWNrYWdlLCBhbmQgeW91IHdpbGwgZ2V0IGNv bXBsYWludHMgdGhhdCB0aGVyZSBhcmUKLSsjIG5vIHJ1bGVzIHRvIGdlbmVyYXRlIGx0bWFpbi5z aC4KLStpZiB0ZXN0IC1mICIkbHRtYWluIjsgdGhlbgotKyAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5p bmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91ciBjb21tYW5kcyB0 aHJvdWdoCi0rICAjIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCi0rICBpZiB0ZXN0IC1u ICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAot KyAgZmkKLSsgICMgTm93IHF1b3RlIGFsbCB0aGUgdGhpbmdzIHRoYXQgbWF5IGNvbnRhaW4gbWV0 YWNoYXJhY3RlcnMgd2hpbGUgYmVpbmcKLSsgICMgY2FyZWZ1bCBub3QgdG8gb3ZlcnF1b3RlIHRo ZSBBQ19TVUJTVGVkIHZhbHVlcy4gIFdlIHRha2UgY29waWVzIG9mIHRoZQotKyAgIyB2YXJpYWJs ZXMgYW5kIHF1b3RlIHRoZSBjb3BpZXMgZm9yIGdlbmVyYXRpb24gb2YgdGhlIGxpYnRvb2wgc2Ny aXB0LgotKyAgZm9yIHZhciBpbiBlY2hvIG9sZF9DQyBvbGRfQ0ZMQUdTIEFSIEFSX0ZMQUdTIEVH UkVQIFJBTkxJQiBMTl9TIExUQ0MgTFRDRkxBR1MgTk0gXAotKyAgICBTRUQgU0hFTEwgU1RSSVAg XAotKyAgICBsaWJuYW1lX3NwZWMgbGlicmFyeV9uYW1lc19zcGVjIHNvbmFtZV9zcGVjIGV4dHJh Y3RfZXhwc3ltc19jbWRzIFwKLSsgICAgb2xkX3N0cmlwbGliIHN0cmlwbGliIGZpbGVfbWFnaWNf Y21kIGZpbmlzaF9jbWRzIGZpbmlzaF9ldmFsIFwKLSsgICAgZGVwbGlic19jaGVja19tZXRob2Qg cmVsb2FkX2ZsYWcgcmVsb2FkX2NtZHMgbmVlZF9sb2NrcyBcCi0rICAgIGx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3BpcGUgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wgXAotKyAgICBs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCi0rICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYyBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCi0rICAgIG9sZF9w b3N0aW5zdGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgXAotKyAgICBjb21waWxlcl9D WFggXAotKyAgICBDQ19DWFggXAotKyAgICBMRF9DWFggXAotKyAgICBsdF9wcm9nX2NvbXBpbGVy X3dsX0NYWCBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCBcCi0rICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0NYWCBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnX0NYWCBcCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFggXAotKyAgICB0aHJl YWRfc2FmZV9mbGFnX3NwZWNfQ1hYIFwKLSsgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hY IFwKLSsgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFggXAotKyAgICBv bGRfYXJjaGl2ZV9jbWRzX0NYWCBcCi0rICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hY IFwKLSsgICAgcHJlZGVwX29iamVjdHNfQ1hYIFwKLSsgICAgcG9zdGRlcF9vYmplY3RzX0NYWCBc Ci0rICAgIHByZWRlcHNfQ1hYIFwKLSsgICAgcG9zdGRlcHNfQ1hYIFwKLSsgICAgY29tcGlsZXJf bGliX3NlYXJjaF9wYXRoX0NYWCBcCi0rICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFgg XAotKyAgICBhcmNoaXZlX2NtZHNfQ1hYIFwKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFgg XAotKyAgICBwb3N0aW5zdGFsbF9jbWRzX0NYWCBcCi0rICAgIHBvc3R1bmluc3RhbGxfY21kc19D WFggXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFggXAotKyAgICBhbGxv d191bmRlZmluZWRfZmxhZ19DWFggXAotKyAgICBub191bmRlZmluZWRfZmxhZ19DWFggXAotKyAg ICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWCBcCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYIFwKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFggXAotKyAgICBo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWCBcCi0rICAgIGhhcmRjb2RlX2F1dG9tYXRpY19D WFggXAotKyAgICBtb2R1bGVfY21kc19DWFggXAotKyAgICBtb2R1bGVfZXhwc3ltX2NtZHNfQ1hY IFwKLSsgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIFwKLSsgICAgZml4X3NyY2ZpbGVf cGF0aF9DWFggXAotKyAgICBleGNsdWRlX2V4cHN5bXNfQ1hYIFwKLSsgICAgaW5jbHVkZV9leHBz eW1zX0NYWDsgZG8KLSsKLSsgICAgY2FzZSAkdmFyIGluCi0rICAgIG9sZF9hcmNoaXZlX2NtZHNf Q1hYIHwgXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWCB8IFwKLSsgICAgYXJj aGl2ZV9jbWRzX0NYWCB8IFwKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFggfCBcCi0rICAg IG1vZHVsZV9jbWRzX0NYWCB8IFwKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0NYWCB8IFwKLSsg ICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hYIHwgXAotKyAgICBleHBvcnRfc3lt Ym9sc19jbWRzX0NYWCB8IFwKLSsgICAgZXh0cmFjdF9leHBzeW1zX2NtZHMgfCByZWxvYWRfY21k cyB8IGZpbmlzaF9jbWRzIHwgXAotKyAgICBwb3N0aW5zdGFsbF9jbWRzIHwgcG9zdHVuaW5zdGFs bF9jbWRzIHwgXAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyB8IG9sZF9wb3N0dW5pbnN0YWxs X2NtZHMgfCBcCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyB8IHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjKQotKyAgICAgICMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5n cy4KLSsgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNobyBcIlhcJCR2YXJcIiB8IFwkWHNl ZCAtZSBcIlwkZG91YmxlX3F1b3RlX3N1YnN0XCIgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiIC1l IFwiXCRkZWxheV92YXJpYWJsZV9zdWJzdFwiXGBcXFwiIgotKyAgICAgIDs7Ci0rICAgICopCi0r ICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUg XCJcJHNlZF9xdW90ZV9zdWJzdFwiXGBcXFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGRv bmUKLSsKLSsgIGNhc2UgJGx0X2VjaG8gaW4KLSsgIConXCQwIC0tZmFsbGJhY2stZWNobyInKQot KyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8ICRYc2VkIC1lICdzL1xcXFxcXFwkMCAt LWZhbGxiYWNrLWVjaG8iJC8kMCAtLWZhbGxiYWNrLWVjaG8iLydgCi0rICAgIDs7Ci0rICBlc2Fj Ci0rCi0rY2ZnZmlsZT0iJG9maWxlIgotKwotKyAgY2F0IDw8X19FT0ZfXyA+PiAiJGNmZ2ZpbGUi Ci0rIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZQotKwotKyMgTGlidG9v bCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9u dWxsIHwgc2VkIDFxYDoKLSsKLSsjIFNoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNj cmlwdHMuCi0rU0hFTEw9JGx0X1NIRUxMCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBz aGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbGlicz0kZW5hYmxlX3NoYXJlZAotKwot KyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KLStidWlsZF9vbGRf bGlicz0kZW5hYmxlX3N0YXRpYwotKwotKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3Ig YnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hp dmVfY21kc19uZWVkX2xjX0NYWAotKwotKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hh cmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYwotK2FsbG93X2xpYnRvb2xfbGli c193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1l c19DWFgKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxh dGlvbi4KLStmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3RhbGwKLSsKLSsjIFRoZSBob3N0 IHN5c3RlbS4KLStob3N0X2FsaWFzPSRob3N0X2FsaWFzCi0raG9zdD0kaG9zdAotK2hvc3Rfb3M9 JGhvc3Rfb3MKLSsKLSsjIFRoZSBidWlsZCBzeXN0ZW0uCi0rYnVpbGRfYWxpYXM9JGJ1aWxkX2Fs aWFzCi0rYnVpbGQ9JGJ1aWxkCi0rYnVpbGRfb3M9JGJ1aWxkX29zCi0rCi0rIyBBbiBlY2hvIHBy b2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCi0rZWNobz0kbHRfZWNo bwotKwotKyMgVGhlIGFyY2hpdmVyLgotK0FSPSRsdF9BUgotK0FSX0ZMQUdTPSRsdF9BUl9GTEFH UwotKwotKyMgQSBDIGNvbXBpbGVyLgotK0xUQ0M9JGx0X0xUQ0MKLSsKLSsjIExUQ0MgY29tcGls ZXIgZmxhZ3MuCi0rTFRDRkxBR1M9JGx0X0xUQ0ZMQUdTCi0rCi0rIyBBIGxhbmd1YWdlLXNwZWNp ZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21waWxlcl9DWFgKLSsKLSsjIElzIHRoZSBjb21waWxl ciB0aGUgR05VIEMgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdDQ19DWFgKLSsKLSsjIEFuIEVSRSBt YXRjaGVyLgotK0VHUkVQPSRsdF9FR1JFUAotKwotKyMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxk IGxpYnJhcmllcy4KLStMRD0kbHRfTERfQ1hYCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgaGFyZCBv ciBzb2Z0IGxpbmtzLgotK0xOX1M9JGx0X0xOX1MKLSsKLSsjIEEgQlNELWNvbXBhdGlibGUgbm0g cHJvZ3JhbS4KLStOTT0kbHRfTk0KLSsKLSsjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtCi0r U1RSSVA9JGx0X1NUUklQCi0rCi0rIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmls ZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgotK01BR0lDX0NNRD0kTUFHSUNfQ01ECi0rCi0rIyBV c2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0uCi0rRExMVE9PTD0iJERMTFRPT0wi Ci0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KLStPQkpEVU1QPSIkT0JKRFVN UCIKLSsKLSsjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCi0rQVM9IiRBUyIKLSsKLSsjIFRo ZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBm aWxlcy4KLStvYmpkaXI9JG9iamRpcgotKwotKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9i amVjdCBmaWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKLStyZWxvYWRfY21kcz0k bHRfcmVsb2FkX2NtZHMKLSsKLSsjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0 aGUgY29tcGlsZXIuCi0rd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0rCi0rIyBPYmpl Y3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0rb2JqZXh0PSIkYWNfb2JqZXh0IgotKwot KyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgotK2xpYmV4dD0iJGxpYmV4dCIK LSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpLgotK3NocmV4dF9j bWRzPSckc2hyZXh0X2NtZHMnCi0rCi0rIyBFeGVjdXRhYmxlIGZpbGUgc3VmZml4IChub3JtYWxs eSAiIikuCi0rZXhlZXh0PSIkZXhlZXh0IgotKwotKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFn cyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgotK3BpY19mbGFnPSRsdF9sdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFgKLStwaWNfbW9kZT0kcGljX21vZGUKLSsKLSsjIFdoYXQgaXMgdGhlIG1h eGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KLSttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9j bWRfbGVuCi0rCi0rIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5k IC1vIG9wdGlvbnM/Ci0rY29tcGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19D WFgKLSsKLSsjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPwotK25l ZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKLSsKLSsjIERvIHdlIG5lZWQgdGhlIGxpYiBwcmVmaXgg Zm9yIG1vZHVsZXM/Ci0rbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgKLSsKLSsjIERv IHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/Ci0rbmVlZF92ZXJzaW9uPSRuZWVkX3Zl cnNpb24KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc3VwcG9y dD0kZW5hYmxlX2Rsb3BlbgotKwotKyMgV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3Vw cG9ydGVkLgotK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKLSsKLSsjIFdoZXRoZXIg ZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KLStkbG9w ZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKLSsKLSsjIENvbXBpbGVy IGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCi0rbGlua19zdGF0aWNfZmxhZz0kbHRf bHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIHR1cm4g b2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgotK25vX2J1aWx0aW5fZmxhZz0kbHRfbHRfcHJvZ19jb21w aWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJl ZmxleGl2ZSBkbG9wZW5zLgotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0kbHRfZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjX0NYWAotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFy ZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgotK3dob2xlX2FyY2hpdmVfZmxhZ19z cGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFgKLSsKLSsjIENvbXBpbGVyIGZsYWcg dG8gZ2VuZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0cy4KLSt0aHJlYWRfc2FmZV9mbGFnX3NwZWM9 JGx0X3RocmVhZF9zYWZlX2ZsYWdfc3BlY19DWFgKLSsKLSsjIExpYnJhcnkgdmVyc2lvbmluZyB0 eXBlLgotK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCi0rCi0rIyBGb3JtYXQgb2YgbGlicmFy eSBuYW1lIHByZWZpeC4KLStsaWJuYW1lX3NwZWM9JGx0X2xpYm5hbWVfc3BlYwotKwotKyMgTGlz dCBvZiBhcmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0 IGFyZSBsaW5rcy4KLSsjIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIg ZmluZHMgd2l0aCAtbE5BTUUuCi0rbGlicmFyeV9uYW1lc19zcGVjPSRsdF9saWJyYXJ5X25hbWVz X3NwZWMKLSsKLSsjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQg ZnJvbSB0aGUgcmVhbCBuYW1lLgotK3NvbmFtZV9zcGVjPSRsdF9zb25hbWVfc3BlYwotKwotKyMg Q29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4K LStSQU5MSUI9JGx0X1JBTkxJQgotK29sZF9hcmNoaXZlX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Nt ZHNfQ1hYCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCi0r b2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMg Q3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KLStvbGRf YXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWAot KwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVh ZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRs dF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFgKLSsKLSsjIENvbW1hbmRzIHVzZWQg dG8gYnVpbGQgYW5kIGluc3RhbGwgYSBzaGFyZWQgYXJjaGl2ZS4KLSthcmNoaXZlX2NtZHM9JGx0 X2FyY2hpdmVfY21kc19DWFgKLSthcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5 bV9jbWRzX0NYWAotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3RpbnN0YWxsX2NtZHMKLStwb3N0 dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgQ29tbWFuZHMgdXNl ZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSAoYXNzdW1lZCBzYW1lIGFzIGFib3ZlIGlmIGVt cHR5KQotK21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19DWFgKLSttb2R1bGVfZXhwc3ltX2Nt ZHM9JGx0X21vZHVsZV9leHBzeW1fY21kc19DWFgKLSsKLSsjIENvbW1hbmRzIHRvIHN0cmlwIGxp YnJhcmllcy4KLStvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgotK3N0cmlwbGliPSRsdF9z dHJpcGxpYgotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBi ZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcF9vYmpl Y3RzPSRsdF9wcmVkZXBfb2JqZWN0c19DWFgKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBh ZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBsaWJy YXJ5LgotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzX0NYWAotKwotKyMgRGVw ZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3Jl YXRlIGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcHM9JGx0X3ByZWRlcHNfQ1hYCi0rCi0r IyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRv IGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwb3N0ZGVwcz0kbHRfcG9zdGRlcHNfQ1hY Ci0rCi0rIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNy ZWF0aW5nIGEgc2hhcmVkCi0rIyBsaWJyYXJ5Ci0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSRs dF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYCi0rCi0rIyBUaGUgbGlicmFyeSBzZWFyY2gg cGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZwotKyMgYSBz aGFyZWQgbGlicmFyeS4KLStjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9JGx0X2NvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aF9DWFgKLSsKLSsjIE1ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVu dCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgotK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRs dF9kZXBsaWJzX2NoZWNrX21ldGhvZAotKwotKyMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJz X2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgotK2ZpbGVfbWFnaWNfY21kPSRsdF9maWxlX21h Z2ljX2NtZAotKwotKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5k ZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCi0rYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2Fs bG93X3VuZGVmaW5lZF9mbGFnX0NYWAotKwotKyMgRmxhZyB0aGF0IGZvcmNlcyBubyB1bmRlZmlu ZWQgc3ltYm9scy4KLStub191bmRlZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZpbmVkX2ZsYWdfQ1hY Ci0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRvb2wgbGlicmFyeSBpbnN0YWxs YXRpb24gaW4gYSBkaXJlY3RvcnkuCi0rZmluaXNoX2NtZHM9JGx0X2ZpbmlzaF9jbWRzCi0rCi0r IyBTYW1lIGFzIGFib3ZlLCBidXQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50IHRvIGJlIGV2YWxl ZCBidXQgbm90IHNob3duLgotK2ZpbmlzaF9ldmFsPSRsdF9maW5pc2hfZXZhbAotKwotKyMgVGFr ZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiByYXcgc3ltYm9scyBh bmQgQyBuYW1lcy4KLStnbG9iYWxfc3ltYm9sX3BpcGU9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGUKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgcHJvcGVyIEMg ZGVjbGFyYXRpb24KLStnbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSRsdF9sdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF90b19jZGVjbAotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBD IG5hbWUgYWRkcmVzcyBwYWlyCi0rZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0kbHRf bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MKLSsKLSsjIFRoaXMgaXMg dGhlIHNoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZS4KLStydW5wYXRoX3Zhcj0k cnVucGF0aF92YXIKLSsKLSsjIFRoaXMgaXMgdGhlIHNoYXJlZCBsaWJyYXJ5IHBhdGggdmFyaWFi bGUuCi0rc2hsaWJwYXRoX3Zhcj0kc2hsaWJwYXRoX3ZhcgotKwotKyMgSXMgc2hsaWJwYXRoIHNl YXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5IHNlYXJjaCBwYXRoPwotK3NobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD0kc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoCi0rCi0r IyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJs ZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbl9DWFgKLSsKLSsjIFdoZXRoZXIg d2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXMuCi0raGFyZGNv ZGVfaW50b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMKLSsKLSsjIEZsYWcgdG8gaGFyZGNvZGUg XCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KLSsjIFRoaXMgbXVzdCB3b3Jr IGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFgKLSsKLSsjIElmIGxkIGlzIHVz ZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8KLSsjIGEgYmlu YXJ5IGR1cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMK LSsjIG5vdCBleGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWAotKwotKyMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xl IC1ycGF0aCBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCi0raGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFgKLSsKLSsjIFNldCB0 byB5ZXMgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhh cmRjb2RlcyBESVIgaW50byB0aGUKLSsjIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfZGly ZWN0PSRoYXJkY29kZV9kaXJlY3RfQ1hYCi0rCi0rIyBTZXQgdG8geWVzIGlmIHVzaW5nIHRoZSAt TERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKLSsjIHJlc3Vs dGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTF9DWFgKLSsK LSsjIFNldCB0byB5ZXMgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcg aGFyZGNvZGVzIERJUiBpbnRvCi0rIyB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9z aGxpYnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWAotKwotKyMgU2V0IHRvIHll cyBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJ UiBpbnRvIHRoZSBsaWJyYXJ5Ci0rIyBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBl eGVjdXRhYmxlcyBsaW5rZWQgYWdhaW5zdCBpdC4KLStoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRj b2RlX2F1dG9tYXRpY19DWFgKLSsKLSsjIFZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJl IHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAotKyMgcmVzdG9yZWQgYXQgcmVs aW5rIHRpbWUuCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRf Zm9yX3JlbGluayIKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFn YWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLStsaW5rX2FsbF9kZXBsaWJzPSRs aW5rX2FsbF9kZXBsaWJzX0NYWAotKwotKyMgQ29tcGlsZS10aW1lIHN5c3RlbSBzZWFyY2ggcGF0 aCBmb3IgbGlicmFyaWVzCi0rc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMKLSsKLSsjIFJ1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGli cmFyaWVzCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjCi0rCi0rIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwkc3JjZmlsZSBmb3IgdGhl IGNvbXBpbGVyLgotK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3BhdGgKLSsKLSsj IFNldCB0byB5ZXMgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCi0rYWx3YXlzX2V4 cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYCi0rCi0rIyBUaGUgY29tbWFu ZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgotK2V4cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4 cG9ydF9zeW1ib2xzX2NtZHNfQ1hYCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUg ZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4dHJhY3RfZXhw c3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwotKwotKyMgU3ltYm9scyB0aGF0IHNo b3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRlX2V4 cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19DWFgKLSsKLSsjIFN5bWJvbHMgdGhhdCBtdXN0IGFs d2F5cyBiZSBleHBvcnRlZC4KLStpbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhwc3ltc19D WFgKLSsKLSsjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZQotKwotK19fRU9G X18KLSsKLSsKLStlbHNlCi0rICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxlIHlldCwgd2UgcmVs eSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRlCi0rICAjIGBjb25maWcuc3RhdHVzIC0tcmVjaGVj aycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKLSsgICMgbGlidG9vbCBzY3Jp cHQgdGhlbi4KLSsgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1lICdzL1wuc2gkLy5p bi8nYAotKyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KLSsgICAgdGVzdCAtZiBNYWtl ZmlsZSAmJiBtYWtlICIkbHRtYWluIgotKyAgZmkKLStmaQotKwotKwotK2FjX2V4dD1jCi0rYWNf Y3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rQ0M9JGx0X3Nh dmVfQ0MKLStMRENYWD0kTEQKLStMRD0kbHRfc2F2ZV9MRAotK0dDQz0kbHRfc2F2ZV9HQ0MKLSt3 aXRoX2dudV9sZGN4eD0kd2l0aF9nbnVfbGQKLSt3aXRoX2dudV9sZD0kbHRfc2F2ZV93aXRoX2du dV9sZAotK2x0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKLStsdF9jdl9wYXRoX0xEPSRs dF9zYXZlX3BhdGhfTEQKLStsdF9jdl9wcm9nX2dudV9sZGN4eD0kbHRfY3ZfcHJvZ19nbnVfbGQK LStsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotKwotKwllbHNlCi0rCSAg dGFnbmFtZT0iIgotKwlmaQotKwk7OwotKwotKyAgICAgIEY3NykKLSsJaWYgdGVzdCAtbiAiJEY3 NyIgJiYgdGVzdCAiWCRGNzciICE9ICJYbm8iOyB0aGVuCi0rCi0rYWNfZXh0PWYKLSthY19jb21w aWxlPSckRjc3IC1jICRGRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJEY3 NyAtbyBjb25mdGVzdCRhY19leGVleHQgJEZGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2Y3N19jb21waWxlcl9nbnUKLSsK LSsKLSthcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9bm8KLSthbGxvd191bmRlZmluZWRfZmxhZ19G Nzc9Ci0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0Y3Nz1ubwotK2FyY2hpdmVfZXhwc3ltX2NtZHNf Rjc3PQotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9Ci0raGFyZGNvZGVfZGlyZWN0X0Y3 Nz1ubwotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PQotK2hhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGRfRjc3PQotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3PQotK2hhcmRj b2RlX21pbnVzX0xfRjc3PW5vCi0raGFyZGNvZGVfYXV0b21hdGljX0Y3Nz1ubwotK21vZHVsZV9j bWRzX0Y3Nz0KLSttb2R1bGVfZXhwc3ltX2NtZHNfRjc3PQotK2xpbmtfYWxsX2RlcGxpYnNfRjc3 PXVua25vd24KLStvbGRfYXJjaGl2ZV9jbWRzX0Y3Nz0kb2xkX2FyY2hpdmVfY21kcwotK25vX3Vu ZGVmaW5lZF9mbGFnX0Y3Nz0KLSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9Ci0rZW5hYmxl X3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19GNzc9bm8KLSsKLSsjIFNvdXJjZSBmaWxlIGV4 dGVuc2lvbiBmb3IgZjc3IHRlc3Qgc291cmNlcy4KLSthY19leHQ9ZgotKwotKyMgT2JqZWN0IGZp bGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBmNzcgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0r b2JqZXh0X0Y3Nz0kb2JqZXh0Ci0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBp bGUgdGVzdHMKLStsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9IlwKLSsgICAgICBzdWJyb3V0 aW5lIHQKLSsgICAgICByZXR1cm4KLSsgICAgICBlbmQKLSsiCi0rCi0rIyBDb2RlIHRvIGJlIHVz ZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLStsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IlwKLSsg ICAgICBwcm9ncmFtIHQKLSsgICAgICBlbmQKLSsiCi0rCi0rIyBsdG1haW4gb25seSB1c2VzICRD QyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKwot KyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0Mt IiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2Ug Q0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0Mg dG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0r Ci0rIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSthY19v dXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2 L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9jb21waWxl cl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskcm0gY29uZnRlc3QqCi0rCi0rYWNf b3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3Rf Y29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxs IHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKLStfbHRfbGlua2VyX2JvaWxl cnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRybSAtciBjb25mdGVzdCoKLSsKLSsKLSsjIEFs bG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2x0X3NhdmVfQ0M9 IiRDQyIKLStDQz0ke0Y3Ny0iZjc3In0KLStjb21waWxlcj0kQ0MKLStjb21waWxlcl9GNzc9JEND Ci0rZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCi0rICBjYXNlICRjY190ZW1wIGluCi0r ICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkgOzsK LSsgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsK LSsgICAgXC0qKSA7OwotKyAgICAqKSBicmVhazs7Ci0rICBlc2FjCi0rZG9uZQotK2NjX2Jhc2Vu YW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3Rf YWxpYXMtJSUiYAotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBp ZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjYW5fYnVpbGRfc2hhcmVkIiA+ JjUKLSskYXNfZWNobyAiJGNhbl9idWlsZF9zaGFyZWQiID4mNjsgfQotKwotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJp ZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxp YnJhcmllcy4uLiAiID4mNjsgfQotK3Rlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYg ZW5hYmxlX3NoYXJlZD1ubwotKwotKyMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0 aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAotKyMgYXJlIGFsbCBidWls dCBmcm9tIFBJQy4KLStjYXNlICRob3N0X29zIGluCi0rYWl4MyopCi0rICB0ZXN0ICIkZW5hYmxl X3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgaWYgdGVzdCAtbiAiJFJBTkxJ QiI7IHRoZW4KLSsgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGli IgotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCi0rICBmaQotKyAgOzsKLSth aXhbNC05XSopCi0rICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91 c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCi0rICAgIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICBmaQotKyAgOzsKLStlc2FjCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGVuYWJsZV9zaGFyZWQiID4mNQotKyRhc19l Y2hvICIkZW5hYmxlX3NoYXJlZCIgPiY2OyB9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcyIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLi4uICIg PiY2OyB9Ci0rIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRp YyBpcyB5ZXMuCi0rdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9 eWVzCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGVuYWJsZV9zdGF0aWMi ID4mNQotKyRhc19lY2hvICIkZW5hYmxlX3N0YXRpYyIgPiY2OyB9Ci0rCi0rR0NDX0Y3Nz0iJEc3 NyIKLStMRF9GNzc9IiRMRCIKLSsKLStsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0KLStsdF9wcm9n X2NvbXBpbGVyX3BpY19GNzc9Ci0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PQotKwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0 byBwcm9kdWNlIFBJQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBv cHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KLSsKLSsgIGlmIHRlc3QgIiRHQ0MiID0g eWVzOyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2wsJwotKyAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1zdGF0aWMnCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsgICAgICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJ QTY0IHByb2Nlc3NvcgotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgIyBGSVhNRTog d2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1 dAotKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVp bGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAgICAgICMgbGlrZSBgLW02ODA0MCcuCi0rICAgICAg bHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJl c3RvcmUtYTQnCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBu b25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgICMgUElDIGlzIHRoZSBk ZWZhdWx0IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5Z3dp biogfCBwdzMyKiB8IG9zMiopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291 cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9y IGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBs ZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGls bCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9y dCkgbGlicmFyaWVzCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctRERMTF9FWFBP UlQnCi0rICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAjIFBJ QyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAgIyBDb21tb24gc3ltYm9s cyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf cGljX0Y3Nz0nLWZuby1jb21tb24nCi0rICAgICAgOzsKLSsKLSsgICAgaW50ZXJpeFszLTldKikK LSsgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJy b2tlbiBjb2RlLgotKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmll cyBhdCBydW50aW1lLgotKyAgICAgIDs7Ci0rCi0rICAgIG1zZG9zZGpncHAqKQotKyAgICAgICMg SnVzdCBiZWNhdXNlIHdlIHVzZSBHQ0MgZG9lc24ndCBtZWFuIHdlIHN1ZGRlbmx5IGdldCBzaGFy ZWQgbGlicmFyaWVzCi0rICAgICAgIyBvbiBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVt LgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9GNzc9bm8KLSsgICAg ICBlbmFibGVfc2hhcmVkPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQqTVAqKQotKyAgICAg IGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PS1L Y29uZm9ybV9waWMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXgqKQotKyAgICAg ICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1 dAotKyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4KLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgot KyAgICAgIGhwcGEqNjQqfGlhNjQqKQotKwkjICtaIHRoZSBkZWZhdWx0Ci0rCTs7Ci0rICAgICAg KikKLSsJbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctZlBJQycKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9 Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgIyBQT1JUTUUgQ2hl Y2sgZm9yIGZsYWcgdG8gcGFzcyBsaW5rZXIgZmxhZ3MgdGhyb3VnaCB0aGUgc3lzdGVtIGNvbXBp bGVyLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFpeCopCi0rICAgICAgbHRfcHJvZ19j b21waWxlcl93bF9GNzc9Jy1XbCwnCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7 IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfRjc3PSctQnN0YXRpYycKLSsgICAgICBlbHNlCi0rCWx0X3Byb2dfY29t cGlsZXJfc3RhdGljX0Y3Nz0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsgICAgICBkYXJ3aW4qKQotKyAgICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1 bHQgb24gdGhpcyBwbGF0Zm9ybQotKyAgICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dl ZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAg ICAgIHhsYyopCi0rICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctcW5vY29tbW9u JwotKyAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2wsJwotKyAgICAgICAgIDs7 Ci0rICAgICAgIGVzYWMKLSsgICAgICAgOzsKLSsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3 MzIqIHwgb3MyKikKLSsgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmls ZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCi0rICAgICAgIyBidWlsdCBmb3IgaW5jbHVz aW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1ERExMX0VYUE9SVCcKLSsgICAgICA7Owot KwotKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICAgICBsdF9wcm9nX2NvbXBp bGVyX3dsX0Y3Nz0nLVdsLCcKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBI UC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCi0r ICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0KnxpYTY0KikKLSsJIyArWiB0 aGUgZGVmYXVsdAotKwk7OwotKyAgICAgICopCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0n K1onCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJv Z19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPwotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0rICAg ICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKLSsgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMg dGhlIGRlZmF1bHQuCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctbm9uX3No YXJlZCcKLSsgICAgICA7OwotKwotKyAgICBuZXdzb3M2KQotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0Y3Nz0nLUtQSUMnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSct QnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBsaW51eCogfCBrKmJzZCotZ251KQotKyAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgaWNjKiB8IGVjYyopCi0rCWx0X3Byb2dfY29t cGlsZXJfd2xfRjc3PSctV2wsJwotKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1LUElDJwot KwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAg ICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQotKyAgICAgICAgIyBQb3J0bGFu ZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKLSsJIyB3 aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKLSsJbHRfcHJvZ19jb21waWxlcl93bF9G Nzc9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLWZwaWMnCi0rCWx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0Y3Nz0nLUJzdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgIGNjYyop Ci0rICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKLSsgICAgICAgICMgQWxs IEFscGhhIGNvZGUgaXMgUElDLgotKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3 PSctbm9uX3NoYXJlZCcKLSsgICAgICAgIDs7Ci0rICAgICAgKikKLSsgICAgICAgIGNhc2UgYCRD QyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkqU3VuXCBDKikKLSsJICAjIFN1biBDIDUuOQotKwkg IGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLUtQSUMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWNfRjc3PSctQnN0YXRpYycKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcK LSsJICA7OwotKwkqU3VuXCBGKikKLSsJICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVu cmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCi0rCSAgbHRfcHJvZ19jb21waWxlcl9waWNf Rjc3PSctS1BJQycKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJwot KwkgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PScnCi0rCSAgOzsKLSsJZXNhYwotKwk7OwotKyAg ICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICAg ICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCi0rICAgICAgIyBBbGwgT1NGLzEgY29k ZSBpcyBQSUMuCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctbm9uX3NoYXJl ZCcKLSsgICAgICA7OwotKwotKyAgICByZG9zKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19GNzc9Jy1ub25fc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLUtQSUMnCi0rICAgICAgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfRjc3PSctQnN0YXRpYycKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgot KyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKLSsJbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1R b3B0aW9uIGxkICc7OwotKyAgICAgICopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2ws Jzs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgbHRf cHJvZ19jb21waWxlcl93bF9GNzc9Jy1Rb3B0aW9uIGxkICcKLSsgICAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19GNzc9Jy1QSUMnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSct QnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQu MyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCi0rICAgICAgbHRfcHJv Z19jb21waWxlcl9waWNfRjc3PSctS1BJQycKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19GNzc9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBp ZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLUtj b25mb3JtX3BpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctQnN0YXRpYycKLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1 KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9 Jy1XbCwnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctS1BJQycKLSsgICAgICBs dF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAg IHVuaWNvcyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCi0rICAgICAg bHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0Y3Nz1ubwotKyAgICAgIDs7Ci0rCi0r ICAgIHV0czQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLXBpYycKLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0r ICAgICopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0Y3Nz1ubwot KyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyIgPiY1Ci0rJGFzX2VjaG8gIiRs dF9wcm9nX2NvbXBpbGVyX3BpY19GNzciID4mNjsgfQotKwotKyMKLSsjIENoZWNrIHRvIG1ha2Ug c3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCi0rIwotK2lmIHRlc3QgLW4gIiRsdF9w cm9nX2NvbXBpbGVyX3BpY19GNzciOyB0aGVuCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWNf Rjc3IHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZs YWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfRjc3K3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGls ZXJfcGljX3dvcmtzX0Y3Nz1ubwotKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0r ICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0 Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyIKLSsgICAj IEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlh YmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwg b3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRv ZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxh ciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHku Ci0rICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQg Y29uZnVzaW5nIHNlZC4KLSsgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VE IFwKLSsgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBc Ci0rICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAot KyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAiXCJcJGFz X21lOjE1MTY5OiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAy PmNvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgY29uZnRlc3QuZXJyID4m NQotKyAgIGVjaG8gIiRhc19tZToxNTE3MzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYg KGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCi0rICAgICAj IFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3Qg cmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVy IHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2ls ZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9e JC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYv bnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19GNzc9eWVz Ci0rICAgICBmaQotKyAgIGZpCi0rICAgJHJtIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtz X0Y3NyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19GNzci ID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfRjc3 IiA9IHh5ZXM7IHRoZW4KLSsgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWNfRjc3IGluCi0r ICAgICAiIiB8ICIgIiopIDs7Ci0rICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9IiAk bHRfcHJvZ19jb21waWxlcl9waWNfRjc3IiA7OwotKyAgICAgZXNhYwotK2Vsc2UKLSsgICAgbHRf cHJvZ19jb21waWxlcl9waWNfRjc3PQotKyAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRf c2hhcmVkX0Y3Nz1ubwotK2ZpCi0rCi0rZmkKLStjYXNlICRob3N0X29zIGluCi0rICAjIEZvciBw bGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoK LSsgICpkamdwcCopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0KLSsgICAgOzsKLSsg ICopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0iJGx0X3Byb2dfY29tcGlsZXJfcGlj X0Y3NyIKLSsgICAgOzsKLStlc2FjCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBz dGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0rd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xf Rjc3IGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3 N1wiCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBz dGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jr cy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29y a3NfRjc3K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0Y3Nz1ubwotKyAgIHNh dmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgTERGTEFHUz0iJExERkxBR1MgJGx0X3RtcF9zdGF0 aWNfZmxhZyIKLSsgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0 LiRhY19leHQKLSsgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAt cyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KLSsgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3 YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBz YXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVy cjsgdGhlbgotKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgot KyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICAgJGVjaG8gIlgkX2x0X2xpbmtl cl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCi0rICAgICAg ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAg ICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAg ICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0Y3Nz15ZXMKLSsgICAgICAg ZmkKLSsgICAgIGVsc2UKLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Nf Rjc3PXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRybSAtciBjb25mdGVzdCoKLSsgICBMREZM QUdTPSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0Y3NyIgPiY1Ci0rJGFz X2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19GNzciID4mNjsgfQotKwot K2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfRjc3IiA9IHh5ZXM7 IHRoZW4KLSsgICAgOgotK2Vsc2UKLSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PQot K2ZpCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21w aWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0Y3NytzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9w cm9nX2NvbXBpbGVyX2Nfb19GNzc9bm8KLSsgICAkcm0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwK LSsgICBta2RpciBjb25mdGVzdAotKyAgIGNkIGNvbmZ0ZXN0Ci0rICAgbWtkaXIgb3V0Ci0rICAg ZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0r Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgotKyAg ICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFy aWFibGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4i LCBvciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYg ZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9s bGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3Rs eS4KLSsgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKLSsgICAtZSAn czouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCi0rICAgLWUgJ3M6 IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAotKyAgIC1lICdzOiQ6 ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjE1MjczOiAk bHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVz dC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1Ci0r ICAgZWNobyAiJGFzX21lOjE1Mjc3OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhp dCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRo ZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0 aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2Fy bmluZ3MKLSsgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAt ZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2Qn IG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBv dXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIy ID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fRjc3PXll cwotKyAgICAgZmkKLSsgICBmaQotKyAgIGNobW9kIHUrdyAuIDI+JjUKLSsgICAkcm0gY29uZnRl c3QqCi0rICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlf ZmlsZXMvIGZvcgotKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgotKyAgIHRlc3QgLWQgb3V0 L2lpX2ZpbGVzICYmICRybSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKLSsg ICAkcm0gb3V0LyogJiYgcm1kaXIgb3V0Ci0rICAgY2QgLi4KLSsgICBybWRpciBjb25mdGVzdAot KyAgICRybSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19GNzciID4mNQotKyRhc19lY2hvICIkbHRf Y3ZfcHJvZ19jb21waWxlcl9jX29fRjc3IiA+JjY7IH0KLSsKLSsKLStoYXJkX2xpbmtzPSJub3R0 ZXN0ZWQiCi0raWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0Y3NyIgPSBubyAmJiB0 ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUg dmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcyIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtz Li4uICIgPiY2OyB9Ci0rICBoYXJkX2xpbmtzPXllcwotKyAgJHJtIGNvbmZ0ZXN0KgotKyAgbG4g Y29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsgIHRv dWNoIGNvbmZ0ZXN0LmEKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhhcmRf bGlua3M9bm8KLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJk X2xpbmtzPW5vCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZF9s aW5rcyIgPiY1Ci0rJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7IH0KLSsgIGlmIHRlc3QgIiRo YXJkX2xpbmtzIiA9IG5vOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBX QVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBt YXkgYmUgdW5zYWZlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycgZG9l cyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjI7 fQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwot K2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhl ICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBz dXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0rCi0rICBydW5wYXRoX3Zhcj0K LSsgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0KLSsgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0 aWNfcnVudGltZXNfRjc3PW5vCi0rICBhcmNoaXZlX2NtZHNfRjc3PQotKyAgYXJjaGl2ZV9leHBz eW1fY21kc19GNzc9Ci0rICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzX0Y3Nz0KLSsgIG9sZF9h cmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0Y3Nz0KLSsgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19GNzc9Ci0rICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9Ci0rICB0aHJlYWRfc2FmZV9m bGFnX3NwZWNfRjc3PQotKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Ci0rICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0Y3Nz0KLSsgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfRjc3PQotKyAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz1ubwotKyAgaGFyZGNvZGVfbWludXNfTF9G Nzc9bm8KLSsgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PXVuc3VwcG9ydGVkCi0rICBsaW5r X2FsbF9kZXBsaWJzX0Y3Nz11bmtub3duCi0rICBoYXJkY29kZV9hdXRvbWF0aWNfRjc3PW5vCi0r ICBtb2R1bGVfY21kc19GNzc9Ci0rICBtb2R1bGVfZXhwc3ltX2NtZHNfRjc3PQotKyAgYWx3YXlz X2V4cG9ydF9zeW1ib2xzX0Y3Nz1ubwotKyAgZXhwb3J0X3N5bWJvbHNfY21kc19GNzc9JyROTSAk bGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8u KiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgICMgaW5jbHVkZV9l eHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIHN5bWJvbHMgdG8gYmUg KmFsd2F5cyoKLSsgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBsaXN0Ci0rICBpbmNsdWRlX2V4 cHN5bXNfRjc3PQotKyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVkIHJlZ2V4 cCBvZiBzeW1ib2xzIHRvIGV4Y2x1ZGUKLSsgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcg YW5kIGApJCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcgb3IKLSsgICMgZW5kIG9m IGxpbmUuICBFeGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBh JyBhbmQgYGJjJywKLSsgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgYGQn LgotKyAgZXhjbHVkZV9leHBzeW1zX0Y3Nz0nX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxf X0ZbSURdXy4qJwotKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxp ZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0Ci0rICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGlu IFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKLSsgICMgdGhlIHN5 bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5v dAotKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBu ZXZlciBpbmNsdWRlIGl0IGluCi0rICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgotKyAgIyBF eGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xz LgotKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9Ci0rICAjIEp1c3QgYmVpbmcgcGFyYW5vaWQgYWJv dXQgZW5zdXJpbmcgdGhhdCBjY19iYXNlbmFtZSBpcyBzZXQuCi0rICBmb3IgY2NfdGVtcCBpbiAk Y29tcGlsZXIiIjsgZG8KLSsgIGNhc2UgJGNjX3RlbXAgaW4KLSsgICAgY29tcGlsZSB8ICpbXFwv XWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OwotKyAgICBkaXN0Y2MgfCAqW1xc L11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OwotKyAgICBcLSopIDs7Ci0rICAg ICopIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rY2NfYmFzZW5hbWU9YCRlY2hvICJYJGNjX3Rl bXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCi0rCi0rICBj YXNlICRob3N0X29zIGluCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCi0rICAgICMgRklY TUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUK LSsgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBh cmUgdXNpbmcKLSsgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsgICAgaWYgdGVzdCAiJEdD QyIgIT0geWVzOyB0aGVuCi0rICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgZmkKLSsgICAgOzsK LSsgIGludGVyaXgqKQotKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5k IG5vdCBjODkgKD0gTVNWQysrKQotKyAgICB3aXRoX2dudV9sZD15ZXMKLSsgICAgOzsKLSsgIG9w ZW5ic2QqKQotKyAgICB3aXRoX2dudV9sZD1ubwotKyAgICA7OwotKyAgZXNhYwotKwotKyAgbGRf c2hsaWJzX0Y3Nz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsg ICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1w dHkKLSsgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBH TlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQotKyAgICAjIGFyZSByZXNl dCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRo ZW0KLSsgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5 LgotKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0Y3Nz0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKyAgICAjIGFuY2llbnQg R05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCi0rICAgIGlmICRM RCAtLWhlbHAgMj4mMSB8IGdyZXAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVu Ci0rCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3Nz0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUk Y29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgICBlbHNlCi0r ICAJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PQotKyAgICBmaQotKyAgICBzdXBwb3J0c19h bm9uX3ZlcnNpb25pbmc9bm8KLSsgICAgY2FzZSBgJExEIC12IDI+L2Rldi9udWxsYCBpbgotKyAg ICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJz aW9ucyA8IDIuMTEKLSsgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJz aW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgotKyAgICAgICpcIDIuMTEuOTIuMC4xMlwgKikgc3Vw cG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KLSsgICAgICAq XCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucwotKyAgICAgICopIHN1cHBvcnRzX2Fu b25fdmVyc2lvbmluZz15ZXMgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIFNlZSBpZiBHTlUgbGQg c3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBh aXhbMy05XSopCi0rICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJy b2tlbgotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgotKwlsZF9zaGxp YnNfRjc3PW5vCi0rCWNhdCA8PEVPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlu a2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAotKyoqKiB0byBi ZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gQUlYLgotKyoq KiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9y dC4gIElmIHlvdQotKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91IG1h eSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKLSsqKiogc28gdGhhdCBhIG5vbi1HTlUgbGlua2Vy IGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK0VPRgotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJHJtICRvdXRw dXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIg PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIExJQlJBUllf SUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBW RVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAi I2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5 LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1 dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0Y3Nz0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcwot KwotKyAgICAgICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5vcGVucHJvamVj dHMubmV0PiByZXBvcnRzCi0rICAgICAgIyB0aGF0IHRoZSBzZW1hbnRpY3Mgb2YgZHluYW1pYyBs aWJyYXJpZXMgb24gQW1pZ2FPUywgYXQgbGVhc3QgdXAKLSsgICAgICAjIHRvIHZlcnNpb24gNCwg aXMgdG8gc2hhcmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQKLSsgICAgICAj IHdpdGggdGhlIHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vzbid0IG1hdGNo IHRoZQotKyAgICAgICMgYmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJhcmllcyBvbiBvdGhlciBwbGF0 Zm9ybXMsIHdlIGNhbid0IHVzZQotKyAgICAgICMgdGhlbS4KLSsgICAgICBsZF9zaGxpYnNfRjc3 PW5vCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyopCi0rICAgICAgaWYgJExEIC0taGVscCAyPiYx IHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0r CWFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz11bnN1cHBvcnRlZAotKwkjIEpvc2VwaCBCZWNrZW5i YWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCi0rCSMgc3VwcG9y dCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUK LSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgIGVsc2UK LSsJbGRfc2hsaWJzX0Y3Nz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgY3lnd2lu KiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgICAgICMgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCBGNzcpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAotKyAgICAgICMgYXMg dGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19G Nzc9dW5zdXBwb3J0ZWQKLSsgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3PW5vCi0rICAg ICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19GNzc9eWVzCi0rICAgICAgZXhw b3J0X3N5bWJvbHNfY21kc19GNzc9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFs X3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwp L1wxIERBVEEvJ1wnJyAtZSAnXCcnL15bQUlUV11bIF0vcy8uKlsgXS8vJ1wnJyB8IHNvcnQgfCB1 bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKwotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdy ZXAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgYXJjaGl2ZV9jbWRz X0Y3Nz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5r ZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rCSMgSWYgdGhlIGV4cG9ydC1zeW1ib2xz IGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKLSsJIyBpcyBFWFBPUlRTKSwg dXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KLSsJYXJjaGl2ZV9leHBzeW1fY21k c19GNzc9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0 aGVuCi0rCSAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwot KwllbHNlCi0rCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0r CSAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJ Zml+Ci0rCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1l bmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGli JwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzX0Y3Nz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsK LSsKLSsgICAgaW50ZXJpeFszLTldKikKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PW5vCi0r ICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KLSsgICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsgICAgICBleHBvcnRfZHlu YW1pY19mbGFnX3NwZWNfRjc3PScke3dsfS1FJwotKyAgICAgICMgSGFjazogT24gSW50ZXJpeCAz LngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KLSsgICAg ICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNl ICgweDEwMDAwMDAwIGJ5Ci0rICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkg Y29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQotKyAgICAgICMgY29uc3VtaW5n IGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRv bSwKLSsgICAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAw MCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0rICAgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20g MHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCi0rICAgICAgYXJjaGl2 ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5E T00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAg ICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+ JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFp bi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdl LWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4 MGAgLW8gJGxpYicKLSsgICAgICA7OwotKwotKyAgICBnbnUqIHwgbGludXgqIHwgaypic2QqLWdu dSkKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRz Oi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJdG1wX2FkZGZsYWc9Ci0rCWNhc2UgJGNjX2Jh c2VuYW1lLCRob3N0X2NwdSBpbgotKwlwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBp bGVyCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PScke3dsfS0td2hvbGUtYXJjaGl2 ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYg bmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBc IiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgdG1wX2Fk ZGZsYWc9JyAkcGljX2ZsYWcnCi0rCSAgOzsKLSsJcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQkj IFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycwotKwkgIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmll bmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdf Y29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7 d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9t YWluJyA7OwotKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJCSMgSW50ZWwgQyBjb21waWxlciBv biBpYTY0Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OwotKwllZmMqLGlhNjQqIHwg aWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAotKwkgIHRtcF9h ZGRmbGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKLSsJaWZjKiB8IGlmb3J0KikJCQkj IEludGVsIEZvcnRyYW4gY29tcGlsZXIKLSsJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7 OwotKwllc2FjCi0rCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkqU3VuXCBDKikJ CQkjIFN1biBDIDUuOQotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tLXdo b2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJc IjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5p ZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5v LXdob2xlLWFyY2hpdmUnCi0rCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OwotKwkqU3VuXCBGKikJ CQkjIFN1biBGb3J0cmFuIDguMwotKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKLSsJKikKLSsJ ICB0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcgOzsKLSsJZXNhYwotKwlhcmNoaXZlX2NtZHNfRjc3 PSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwotKwlp ZiB0ZXN0ICRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmcgPSB5ZXM7IHRoZW4KLSsJICBhcmNoaXZl X2V4cHN5bV9jbWRzX0Y3Nz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGli bmFtZS52ZXJ+Ci0rICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsv IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rICAkZWNobyAibG9jYWw6ICo7IH07 IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgJENDICciJHRtcF9zaGFyZWRm bGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29i amRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJZmkKLSsgICAgICBlbHNlCi0rCWxkX3NobGli c19GNzc9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAg aWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhl bgotKwlhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncyAtbyAkbGliJwotKwl3bGFyYz0KLSsgICAgICBlbHNlCi0rCWFyY2hpdmVf Y21kc19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3 Nz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1i b2xzIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlzKikKLSsg ICAgICBpZiAkTEQgLXYgMj4mMSB8IGdyZXAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgot KwlsZF9zaGxpYnNfRjc3PW5vCi0rCWNhdCA8PEVPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFRo ZSByZWxlYXNlcyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKLSsqKiog Y3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBs aWJ0b29sCi0rKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1 cmdlIHlvdSB0byB1cGdyYWRlIEdOVQotKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9y IG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Ci0rKioqIHlvdXIgUEFUSCBvciBj b21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKLSsqKiog dXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStFT0YKLSsgICAgICBlbGlmICRMRCAtLWhlbHAg Mj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhl bgotKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJYXJjaGl2ZV9l eHBzeW1fY21kc19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3 bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzX0Y3Nz1u bwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2Nv NXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKLSsgICAgICBjYXNlIGAkTEQgLXYgMj4mMWAg aW4KLSsgICAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMVswLTVdLiopCi0r CWxkX3NobGlic19GNzc9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6 IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QK LSsqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBU aGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3Vw cG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVh c2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsq KiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZl IGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsJ OzsKLSsJKikKLSsJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJn ZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfRjc3PSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tcnBhdGgsJGxp YmRpcmAnCi0rCSAgICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFs bF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWInCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3 Nz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSwtcmV0YWluLXN5 bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICBlbHNlCi0rCSAgICBsZF9z aGxpYnNfRjc3PW5vCi0rCSAgZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsg ICAgc3Vub3M0KikKLSsgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLWFzc2VydCBwdXJlLXRl eHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwot KyAgICAgIHdsYXJjPQotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9GNzc9eWVzCi0rICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAg IGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+ IC9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxp YicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4t c3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJ bGRfc2hsaWJzX0Y3Nz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAg ICBpZiB0ZXN0ICIkbGRfc2hsaWJzX0Y3NyIgPSBubzsgdGhlbgotKyAgICAgIHJ1bnBhdGhfdmFy PQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PQotKyAgICAgIGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlY19GNzc9Ci0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3 PQotKyAgICBmaQotKyAgZWxzZQotKyAgICAjIFBPUlRNRSBmaWxsIGluIGEgZGVzY3JpcHRpb24g b2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQpCi0rICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgYWl4MyopCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PXVuc3VwcG9y dGVkCi0rICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0Y3Nz15ZXMKLSsgICAgICBhcmNoaXZl X2V4cHN5bV9jbWRzX0Y3Nz0nJExEIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEyIC1INTEyIC1i TTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rICAgICAg IyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEgg aWYgdGhlcmUKLSsgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgLUwuCi0r ICAgICAgaGFyZGNvZGVfbWludXNfTF9GNzc9eWVzCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsgdGhlbgotKwkjIE5laXRo ZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRo IGEKLSsJIyBicm9rZW4gY29sbGVjdDIuCi0rCWhhcmRjb2RlX2RpcmVjdF9GNzc9dW5zdXBwb3J0 ZWQKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFpeFs0LTldKikKLSsgICAgICBpZiB0 ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9l cyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0Ci0rCSMgaGF2ZSB0byBk byBhbnl0aGluZyBzcGVjaWFsLgotKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCWV4cF9z eW1fZmxhZz0nLUJleHBvcnQnCi0rCW5vX2VudHJ5X2ZsYWc9IiIKLSsgICAgICBlbHNlCi0rCSMg SWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9u LgotKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFu Z2xlIHdpdGggR05VIG5tCi0rCWlmICROTSAtViAyPiYxIHwgZ3JlcCAnR05VJyA+IC9kZXYvbnVs bDsgdGhlbgotKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHNfRjc3PSckTk0gLUJwZyAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQyID09ICJUIikgfHwgKFwkMiA9PSAiRCIp IHx8IChcJDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwk MyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsJZWxzZQotKwkgIGV4cG9y dF9zeW1ib2xzX2NtZHNfRjc3PSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdr ICdcJyd7IGlmICgoKFwkMiA9PSAiVCIpIHx8IChcJDIgPT0gIkQiKSB8fCAoXCQyID09ICJCIikp ICYmIChzdWJzdHIoXCQzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJDMgfSB9J1wnJyB8IHNvcnQg LXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCWZpCi0rCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8K LSsKLSsJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Ig bm9ybWFsCi0rCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBM REZMQUdTLCB3ZQotKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgotKwljYXNlICRob3N0 X29zIGluIGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSopCi0rCSAgZm9yIGxkX2ZsYWcg aW4gJExERkxBR1M7IGRvCi0rICAJICBpZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwgdGVz dCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgotKyAgCSAgICBhaXhfdXNlX3J1bnRpbWVs aW5raW5nPXllcwotKyAgCSAgICBicmVhawotKyAgCSAgZmkKLSsJICBkb25lCi0rCSAgOzsKLSsJ ZXNhYwotKwotKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKwlub19lbnRyeV9mbGFnPSctYm5v ZW50cnknCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Ig c2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0rICAgICAgIyBoYXZlIHByb2Js ZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5 Ci0rICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRk IC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4g IEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAgICAgICMgZW5vdWdoIHRvIGZpeCB0 aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwotKyAgICAgIGFyY2hp dmVfY21kc19GNzc9JycKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcwotKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3PSc6JwotKyAgICAgIGxpbmtfYWxsX2RlcGxpYnNf Rjc3PXllcwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWNhc2UgJGhv c3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCi0rCSMgV2Ugb25seSB3YW50IHRvIGRv IHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawotKwkjIGJlbG93IGZvciBicm9r ZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5hbWU9YCR7 Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3Qy bmFtZSIgJiYgXAotKyAgCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZl X2xpYl9uYW1lID4vZGV2L251bGwKLSsJICB0aGVuCi0rICAJICAjIFdlIGhhdmUgcmV3b3JrZWQg Y29sbGVjdDIKLSsgIAkgIDoKLSsJICBlbHNlCi0rICAJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3Qy Ci0rICAJICBoYXJkY29kZV9kaXJlY3RfRjc3PXVuc3VwcG9ydGVkCi0rICAJICAjIEl0IGZhaWxz IHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCi0rICAJ ICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVf bWludXNfTAotKyAgCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCi0rICAJICBo YXJkY29kZV9taW51c19MX0Y3Nz15ZXMKLSsgIAkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Rjc3PSctTCRsaWJkaXInCi0rICAJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz0KLSsJ ICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCWlmIHRlc3Qg IiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkgIHNoYXJlZF9mbGFnPSIk c2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKwlmaQotKyAgICAgIGVsc2UKLSsJIyBub3QgdXNpbmcg Z2NjCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAJIyBWaXN1YWxBZ2Ug QysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKLSsg IAkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgotKwkg IHNoYXJlZF9mbGFnPSctRycKLSsJZWxzZQotKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVs aW5raW5nIiA9IHllczsgdGhlbgotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgZWxz ZQotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKLSsJICBmaQotKwlmaQotKyAgICAg IGZpCi0rCi0rICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBz eW1ib2xzIGJlZ2lubmluZyB3aXRoCi0rICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMg YmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4KLSsgICAgICBh bHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3PXllcwotKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1 bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRo ZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKLSsJIyAtYmVyb2sgd2lsbCBs aW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwlh bGxvd191bmRlZmluZWRfZmxhZ19GNzc9Jy1iZXJvaycKLSsgICAgICAgIyBEZXRlcm1pbmUgdGhl IGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1 dGFibGUuCi0rICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKyAgICAgIHBy b2dyYW0gbWFpbgotKwotKyAgICAgIGVuZAotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFj X3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK LSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfZjc3X3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNf ZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNf dGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xp YnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsK LSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xp YnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAt ZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlm IHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRo ZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYv bnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vz ci9saWI6L2xpYiI7IGZpCi0rCi0rICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3 PScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwlhcmNoaXZlX2V4cHN5 bV9jbWRzX0Y3Nz0iXCRDQyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRl cGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAi eCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gZWNobyAiJHt3bH0ke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4 cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKLSsgICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PSck e3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKLSsJICBhbGxvd191bmRlZmluZWRfZmxhZ19G Nzc9Ii16IG5vZGVmcyIKLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0iXCRDQyAkc2hhcmVk X2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7 d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKLSsJZWxzZQot KwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVk IGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsgICAgICBwcm9ncmFtIG1haW4KLSsKLSsgICAgICBlbmQKLStfQUNFT0YKLStybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFj X2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Y3N193ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll cyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgot KwotK2x0X2FpeF9saWJwYXRoX3NlZD0nCi0rICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQv IHsKLSsJL14wLyB7Ci0rCSAgICBzL14wICAqXCguKlwpJC9cMS8KLSsJICAgIHAKLSsJfQotKyAg ICB9JwotK2FpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVs bCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyMgQ2hlY2sgZm9yIGEgNjQt Yml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KLStpZiB0ZXN0IC16ICIkYWl4 X2xpYnBhdGgiOyB0aGVuCi0rICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19l eGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLStm aQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQot K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1y ZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVl eHQgY29uZnRlc3QuJGFjX2V4dAotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4 X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQotKwotKwkgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19GNzc9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0rCSAgIyBX YXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywK LSsJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEg YnJva2VuIGxpYnJhcnkuCi0rCSAgbm9fdW5kZWZpbmVkX2ZsYWdfRjc3PScgJHt3bH0tYmVybm90 b2snCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScgJHt3bH0tYmVyb2snCi0rCSAgIyBF eHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFy Y2hpdmVzCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PSckY29udmVuaWVuY2UnCi0r CSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfRjc3PXllcwotKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRv IGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rCSAg YXJjaGl2ZV9leHBzeW1fY21kc19GNzc9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFS ICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpk aXIvJHNvbmFtZScKLSsJZmkKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3Mq KQotKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRybSAkb3V0cHV0X29iamRpci9hMml4bGlicmFy eS5kYXRhfiRlY2hvICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJp eGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2Jq ZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRv dXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgUkVWSVNJT04gJHJl dmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1Mg JGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJy YXJ5IC0zMiknCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRp cicKLSsgICAgICBoYXJkY29kZV9taW51c19MX0Y3Nz15ZXMKLSsgICAgICAjIHNlZSBjb21tZW50 IGFib3V0IGRpZmZlcmVudCBzZW1hbnRpY3Mgb24gdGhlIEdOVSBsZCBzZWN0aW9uCi0rICAgICAg bGRfc2hsaWJzX0Y3Nz1ubwotKyAgICAgIDs7Ci0rCi0rICAgIGJzZGlbNDVdKikKLSsgICAgICBl eHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3PS1yZHluYW1pYwotKyAgICAgIDs7Ci0rCi0rICAg IGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywg d2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZwotKyAgICAgICMgTWljcm9zb2Z0 IFZpc3VhbCBDKysuCi0rICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVh bGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwotKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9y IERMTHMuCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyAnCi0rICAgICAg YWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PXVuc3VwcG9ydGVkCi0rICAgICAgIyBUZWxsIGx0bWFp biB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KLSsgICAgICBsaWJleHQ9bGliCi0r ICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCi0r ICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICAgICAgIyBGSVhNRTogU2V0dGluZyBsaW5rbmFt ZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgotKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAtbyAk bGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgZWNobyAiJGRlcGxpYnMiIHwgJFNFRCAtZSAn XCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotKyAgICAgICMgVGhlIGxp bmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBE TEwuCi0rICAgICAgb2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kc19GNzc9J3RydWUnCi0rICAgICAg IyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KLSsg ICAgICBvbGRfYXJjaGl2ZV9jbWRzX0Y3Nz0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9k ZXBsaWJzJwotKyAgICAgIGZpeF9zcmNmaWxlX3BhdGhfRjc3PSdgY3lncGF0aCAtdyAiJHNyY2Zp bGUiYCcKLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0Y3Nz15ZXMK LSsgICAgICA7OwotKwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgICAgICAgIHJoYXBzb2R5KiB8IGRhcndpbjEuWzAxMl0pCi0rICAgICAgICAg YWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycK LSsgICAgICAgICA7OwotKyAgICAgICAqKSAjIERhcndpbiAxLjMgb24KLSsgICAgICAgICBpZiB0 ZXN0IC16ICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfSA7IHRoZW4KLSsgICAgICAgICAgIGFs bG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZp bmVkICR7d2x9c3VwcHJlc3MnCi0rICAgICAgICAgZWxzZQotKyAgICAgICAgICAgY2FzZSAke01B Q09TWF9ERVBMT1lNRU5UX1RBUkdFVH0gaW4KLSsgICAgICAgICAgICAgMTAuWzAxMl0pCi0rICAg ICAgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScke3dsfS1mbGF0X25hbWVzcGFj ZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycKLSsgICAgICAgICAgICAgICA7OwotKyAg ICAgICAgICAgICAxMC4qKQotKyAgICAgICAgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3 Nz0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnCi0rICAgICAgICAgICAgICAg OzsKLSsgICAgICAgICAgIGVzYWMKLSsgICAgICAgICBmaQotKyAgICAgICAgIDs7Ci0rICAgICAg ZXNhYwotKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3Nz1ubwotKyAgICAgIGhhcmRjb2Rl X2RpcmVjdF9GNzc9bm8KLSsgICAgICBoYXJkY29kZV9hdXRvbWF0aWNfRjc3PXllcwotKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PXVuc3VwcG9ydGVkCi0rICAgICAgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWNfRjc3PScnCi0rICAgICAgbGlua19hbGxfZGVwbGlic19GNzc9eWVzCi0r ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIDsgdGhlbgotKyAgICAJb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9J2VjaG8nCi0rICAgICAgICBhcmNoaXZlX2NtZHNfRjc3PSJcJENDIC1keW5hbWljbGli IFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNv bXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAk X2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgotKyAgICAgICAgbW9kdWxlX2NtZHNf Rjc3PSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9i anMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCi0rICAgICAgICBh cmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+ IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWlj bGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBc JGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmlu ZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0 aWx9IgotKyAgICAgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0Y3Nz0ic2VkIC1lICdzLF4sXywnIDwg XCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4 cHN5bX5cJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9i anMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRf ZHN5bXV0aWx9IgotKyAgICBlbHNlCi0rICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg ICAgIHhsYyopCi0rICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rICAg ICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1xbWtzaHJvYmogJGFsbG93X3VuZGVmaW5lZF9m bGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWluc3Rh bGxfbmFtZSAke3dsfWBlY2hvICRycGF0aC8kc29uYW1lYCAkeGxjdmVyc3RyaW5nJwotKyAgICAg ICAgIG1vZHVsZV9jbWRzX0Y3Nz0nJENDICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliIC1i dW5kbGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgICAgICMgRG9u J3QgZml4IHRoaXMgYnkgdXNpbmcgdGhlIGxkIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgZmxhZywg aXQgZG9lc24ndCBleGlzdCBpbiBvbGRlciBkYXJ3aW4gbGRzCi0rICAgICAgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19GNzc9J3NlZCAtZSAicywjLiosLCIgLWUgInMsXlsgICAgXSosLCIgLWUgInMs XlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFt ZX0tc3ltYm9scy5leHBzeW1+JENDIC1xbWtzaHJvYmogJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWluc3RhbGxfbmFt ZSAke3dsfSRycGF0aC8kc29uYW1lICR4bGN2ZXJzdHJpbmd+bm1lZGl0IC1zICRvdXRwdXRfb2Jq ZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JwotKyAgICAgICAgICBtb2R1bGVf ZXhwc3ltX2NtZHNfRjc3PSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJz LF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5h bWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgIC1vICRsaWIgLWJ1 bmRsZSAkbGlib2JqcyAkZGVwbGlicyRjb21waWxlcl9mbGFnc35ubWVkaXQgLXMgJG91dHB1dF9v YmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCi0rICAgICAgICAgIDs7Ci0r ICAgICAgICopCi0rICAgICAgICAgbGRfc2hsaWJzX0Y3Nz1ubwotKyAgICAgICAgICA7OwotKyAg ICAgIGVzYWMKLSsgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBkZ3V4KikKLSsgICAgICBhcmNo aXZlX2NtZHNfRjc3PSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1M JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubwotKyAgICAgIDs7 Ci0rCi0rICAgIGZyZWVic2QxKikKLSsgICAgICBsZF9zaGxpYnNfRjc3PW5vCi0rICAgICAgOzsK LSsKLSsgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBhbGxvd3MgdXMgdG8gaW5jbHVkZSBjKytydDAu byB0byBnZXQgQysrIGNvbnN0cnVjdG9yCi0rICAgICMgc3VwcG9ydC4gIEZ1dHVyZSB2ZXJzaW9u cyBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCBhbiBleHBsaWNpdCBjKytydDAubwotKyAgICAj IGRvZXMgbm90IGJyZWFrIGFueXRoaW5nLCBhbmQgaGVscHMgc2lnbmlmaWNhbnRseSAoYXQgdGhl IGNvc3Qgb2YgYSBsaXR0bGUKLSsgICAgIyBleHRyYSBzcGFjZSkuCi0rICAgIGZyZWVic2QyLjIq KQotKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgL3Vzci9saWIvYysrcnQwLm8nCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9k aXJlY3RfRjc3PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCi0rICAg ICAgOzsKLSsKLSsgICAgIyBVbmZvcnR1bmF0ZWx5LCBvbGRlciB2ZXJzaW9ucyBvZiBGcmVlQlNE IDIgZG8gbm90IGhhdmUgdGhpcyBmZWF0dXJlLgotKyAgICBmcmVlYnNkMiopCi0rICAgICAgYXJj aGl2ZV9jbWRzX0Y3Nz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcwotKyAgICAgIGhh cmRjb2RlX21pbnVzX0xfRjc3PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3 PW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2Mg LXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBmcmVlYnNkKiB8IGRyYWdvbmZs eSopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19GNzc9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcwotKyAg ICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCi0rICAgICAgOzsKLSsKLSsgICAgaHB1 eDkqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kc19G Nzc9JyRybSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2Ig JHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxp YiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgZWxzZQotKwlhcmNo aXZlX2NtZHNfRjc3PSckcm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kTEQgLWIgK2IgJGluc3Rh bGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfRjc3PScke3dsfStiICR7d2x9JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yX0Y3Nz06Ci0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz15ZXMKLSsK LSsgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRI LAotKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5Lgot KyAgICAgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcwotKyAgICAgIGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlY19GNzc9JyR7d2x9LUUnCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDEwKikKLSsgICAg ICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWFy Y2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7 d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHNfRjc3PSckTEQgLWIgK2gg JHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5v OyB0aGVuCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfStiICR7d2x9JGxp YmRpcicKLSsJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9GNzc9OgotKwotKwloYXJkY29kZV9k aXJlY3RfRjc3PXllcwotKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3PScke3dsfS1FJwot KwotKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAot KwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsJaGFyZGNv ZGVfbWludXNfTF9GNzc9eWVzCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBocHV4MTEq KQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRo ZW4KLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAgYXJjaGl2ZV9jbWRzX0Y3 Nz0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCopCi0rCSAgYXJjaGl2ZV9jbWRz X0Y3Nz0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBh dGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJ KikKLSsJICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9 JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBlbHNlCi0rCWNh c2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQqKQotKwkgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAt YiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLWIg JHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2Nt ZHNfRjc3PSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxs X2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7 OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87 IHRoZW4KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9K2IgJHt3bH0kbGli ZGlyJwotKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz06Ci0rCi0rCWNhc2UgJGhvc3Rf Y3B1IGluCi0rCWhwcGEqNjQqfGlhNjQqKQotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf bGRfRjc3PScrYiAkbGliZGlyJwotKwkgIGhhcmRjb2RlX2RpcmVjdF9GNzc9bm8KLSsJICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubwotKwkgIDs7Ci0rCSopCi0rCSAgaGFyZGNvZGVfZGly ZWN0X0Y3Nz15ZXMKLSsJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3PScke3dsfS1FJwot KwotKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgs Ci0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCSAg aGFyZGNvZGVfbWludXNfTF9GNzc9eWVzCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFt ZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2 ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHNfRjc3PSckTEQg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVw ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0Y3Nz0nLXJwYXRoICRsaWJkaXInCi0rICAgICAg ZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tcnBhdGggJHt3 bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3PToKLSsgICAg ICBsaW5rX2FsbF9kZXBsaWJzX0Y3Nz15ZXMKLSsgICAgICA7OwotKwotKyAgICBuZXRic2QqKQot KyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4vZGV2L251 bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQKLSsgICAgICBlbHNlCi0rCWFy Y2hpdmVfY21kc19GNzc9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19GNzc9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PXll cwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCi0rICAgICAgOzsKLSsKLSsg ICAgbmV3c29zNikKLSsgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUcgLWggJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNvZGVf ZGlyZWN0X0Y3Nz15ZXMKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nJHt3 bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Jf Rjc3PToKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubwotKyAgICAgIDs7Ci0r Ci0rICAgIG9wZW5ic2QqKQotKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0 aGVuCi0rCWhhcmRjb2RlX2RpcmVjdF9GNzc9eWVzCi0rCWhhcmRjb2RlX3NobGlicGF0aF92YXJf Rjc3PW5vCi0rCWlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19F TEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBj IjsgdGhlbgotKwkgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICBhcmNoaXZlX2V4cHN5 bV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1i b2xzJwotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfS1ycGF0aCwkbGli ZGlyJwotKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9JyR7d2x9LUUnCi0rCWVsc2UK LSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgIG9wZW5ic2RbMDFdLiogfCBvcGVuYnNkMi5bMC03 XSB8IG9wZW5ic2QyLlswLTddLiopCi0rCSAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1Cc2hh cmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGlyJwotKwkgICAgIDs7Ci0rCSAg ICopCi0rCSAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgIDs7Ci0rCSAg ZXNhYwotKyAgICAgICAgZmkKLSsgICAgICBlbHNlCi0rCWxkX3NobGlic19GNzc9bm8KLSsgICAg ICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG9zMiopCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9taW51c19MX0Y3Nz15ZXMK LSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9dW5zdXBwb3J0ZWQKLSsgICAgICBhcmNo aXZlX2NtZHNfRjc3PSckZWNobyAiTElCUkFSWSAkbGlibmFtZSBJTklUSU5TVEFOQ0UiID4gJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvICJERVNDUklQVElPTiBcIiRsaWJuYW1lXCIi ID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyBEQVRBID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiIFNJTkdMRSBOT05TSEFSRUQiID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmRlZn4kZWNobyBFWFBPUlRTID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRDQyAt WmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk b3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAgICAgb2xkX2FyY2hpdmVfRnJvbV9uZXdf Y21kc19GNzc9J2VteGltcCAtbyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5hICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICA7OwotKwotKyAgICBvc2YzKikKLSsgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9JyAke3ds fS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNo YXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBl Y2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lz dHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsgICAgICBl bHNlCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicK LSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdp c3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGZpCi0r ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9LXJwYXRoICR7d2x9JGxp YmRpcicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz06Ci0rICAgICAgOzsK LSsKLSsgICAgb3NmNCogfCBvc2Y1KikJIyBhcyBvc2YzKiB3aXRoIHRoZSBhZGRpdGlvbiBvZiAt bXN5bSBmbGFnCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYWxsb3dfdW5k ZWZpbmVkX2ZsYWdfRjc3PScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJYXJj aGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7 d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGly fS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9 JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBlbHNlCi0rCWFsbG93X3VuZGVmaW5l ZF9mbGFnX0Y3Nz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJYXJjaGl2ZV9jbWRzX0Y3Nz0n JExEIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYg ZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9v YmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0n Zm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhw b3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBlY2hvICItaGlkZGVuIj4+ICRs aWIuZXhwfgotKwkkTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1pbnB1dCAkbGli LmV4cCAkbGlua2VyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0 ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRybSAkbGli LmV4cCcKLSsKLSsJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBwb3J0IC1ycGF0aCBkaXJl Y3RseQotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLXJwYXRoICRsaWJkaXInCi0r ICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz06Ci0rICAgICAg OzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfRjc3PScgLXog dGV4dCcKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwl3bGFyYz0nJHt3bH0n Ci0rCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkICR7d2x9LWggJHt3bH0kc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5 bV9jbWRzX0Y3Nz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1i b2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAq OyB9OyIgPj4gJGxpYi5leHB+Ci0rCSAgJENDIC1zaGFyZWQgJHt3bH0tTSAke3dsfSRsaWIuZXhw ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzfiRybSAkbGliLmV4cCcKLSsgICAgICBlbHNlCi0rCXdsYXJjPScnCi0rCWFyY2hpdmVf Y21kc19GNzc9JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRz X0Y3Nz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwg JFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAqOyB9OyIg Pj4gJGxpYi5leHB+Ci0rICAJJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5l eHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+JHJt ICRsaWIuZXhwJwotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19G Nzc9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubwotKyAg ICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzb2xhcmlzMi5bMC01XSB8IHNvbGFyaXMyLlsw LTVdLiopIDs7Ci0rICAgICAgKikKLSsJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmlu ZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxp bmtlcl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRob3V0IGAkd2wnLAotKwkjIGJ1dCBpcyBj YXJlZnVsIGVub3VnaCBub3QgdG8gcmVvcmRlci4KLSsgCSMgU3VwcG9ydGVkIHNpbmNlIFNvbGFy aXMgMi42IChtYXliZSAyLjUuMT8pCi0rCWlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCSAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252 ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCWVsc2UKLSsJICB3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlY19GNzc9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVs dGV4dHJhY3QnCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIGxpbmtfYWxsX2RlcGxp YnNfRjc3PXllcwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgaWYgdGVzdCAi eCRob3N0X3ZlbmRvciIgPSB4c2VxdWVudDsgdGhlbgotKwkjIFVzZSAkQ0MgdG8gbGluayB1bmRl ciBzZXF1ZW50LCBiZWNhdXNlIGl0IHRocm93cyBpbiBzb21lIGV4dHJhIC5vCi0rCSMgZmlsZXMg dGhhdCBtYWtlIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyB3b3JrLgotKwlhcmNoaXZlX2NtZHNf Rjc3PSckQ0MgLUcgJHt3bH0taCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1hc3Nl cnQgcHVyZS10ZXh0IC1Cc3RhdGljIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PSct TCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz15ZXMKLSsgICAgICBoYXJkY29k ZV9taW51c19MX0Y3Nz15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubwot KyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0KQotKyAgICAgIGNhc2UgJGhvc3RfdmVuZG9yIGluCi0r CXNuaSkKLSsJICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz15 ZXMgIyBpcyB0aGlzIHJlYWxseSB0cnVlPz8/Ci0rCTs7Ci0rCXNpZW1lbnMpCi0rCSAgIyMgTEQg aXMgbGQgaXQgbWFrZXMgYSBQTEFNTElCCi0rCSAgIyMgQ0MganVzdCBtYWtlcyBhIEdyb3NzTW9k dWxlLgotKwkgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAtRyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgcmVsb2FkX2NtZHNfRjc3PSckQ0MgLXIgLW8gJG91dHB1 dCRyZWxvYWRfb2JqcycKLSsJICBoYXJkY29kZV9kaXJlY3RfRjc3PW5vCi0rICAgICAgICA7Owot Kwltb3Rvcm9sYSkKLSsJICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUcgLWggJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgaGFyZGNvZGVfZGlyZWN0 X0Y3Nz1ubyAjTW90b3JvbGEgbWFudWFsIHNheXMgeWVzLCBidXQgbXkgdGVzdHMgc2F5IHRoZXkg bGllCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcK LSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubwotKyAgICAgIDs7Ci0rCi0rICAg IHN5c3Y0LjMqKQotKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAtRyAtaCAkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9z aGxpYnBhdGhfdmFyX0Y3Nz1ubwotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9 Jy1CZXhwb3J0JwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0 IC1kIC91c3IvbmVjOyB0aGVuCi0rCWFyY2hpdmVfY21kc19GNzc9JyRMRCAtRyAtaCAkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9GNzc9bm8KLSsJcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJaGFyZGNvZGVf cnVucGF0aF92YXI9eWVzCi0rCWxkX3NobGlic19GNzc9eWVzCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5b MDFdLlsxMF0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuWzAyNF0qKQotKyAgICAgIG5vX3Vu ZGVmaW5lZF9mbGFnX0Y3Nz0nJHt3bH0teix0ZXh0JwotKyAgICAgIGFyY2hpdmVfY21kc19uZWVk X2xjX0Y3Nz1ubwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCi0rICAgICAg cnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBz eW1fY21kc19GNzc9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK LSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhw c3ltX2NtZHNfRjc3PSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0t aCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikK LSsgICAgICAjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJl LCBiZWNhdXNlIHdlIGRvIG5vdAotKyAgICAgICMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291 bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KLSsgICAgICAjIGFsd2F5cyBi ZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKLSsg ICAgICAjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdl IHVzZSAteiB0ZXh0Ci0rICAgICAgIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQg c3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rICAgICAgIyBhcyAteiBkZWZzLgot KyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0Y3Nz0nJHt3bH0teix0ZXh0JwotKyAgICAgIGFsbG93 X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nJHt3bH0teixub2RlZnMnCi0rICAgICAgYXJjaGl2ZV9jbWRz X25lZWRfbGNfRjc3PW5vCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KLSsg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nYHRlc3QgLXogIiRTQ09BQlNQQVRI IiAmJiBlY2hvICR7d2x9LVIsJGxpYmRpcmAnCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcl9GNzc9JzonCi0rICAgICAgbGlua19hbGxfZGVwbGlic19GNzc9eWVzCi0rICAgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tQmV4cG9ydCcKLSsgICAgICBydW5wYXRo X3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K LSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHt3bH0taCxcJHtTQ09BQlNQQVRIOisk e2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JyRDQyAtc2hhcmVkICR7d2x9 LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxs X2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLUcgJHt3bH0taCxcJHtT Q09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JyRDQyAt RyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7 aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgdXRzNCopCi0rICAgICAg YXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3 PSctTCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KLSsgICAg ICA7OwotKwotKyAgICAqKQotKyAgICAgIGxkX3NobGlic19GNzc9bm8KLSsgICAgICA7OwotKyAg ICBlc2FjCi0rICBmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs ZF9zaGxpYnNfRjc3IiA+JjUKLSskYXNfZWNobyAiJGxkX3NobGlic19GNzciID4mNjsgfQotK3Rl c3QgIiRsZF9zaGxpYnNfRjc3IiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSsjCi0r IyBEbyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgbGluayBsaWJjPwotKyMKLStjYXNlICJ4JGFyY2hp dmVfY21kc19uZWVkX2xjX0Y3NyIgaW4KLSt4fHh5ZXMpCi0rICAjIEFzc3VtZSAtbGMgc2hvdWxk IGJlIGFkZGVkCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9eWVzCi0rCi0rICBpZiB0ZXN0 ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAg Y2FzZSAkYXJjaGl2ZV9jbWRzX0Y3NyBpbgotKyAgICAqJ34nKikKLSsgICAgICAjIEZJWE1FOiB3 ZSBtYXkgaGF2ZSB0byBkZWFsIHdpdGggbXVsdGktY29tbWFuZCBzZXF1ZW5jZXMuCi0rICAgICAg OzsKLSsgICAgJyRDQyAnKikKLSsgICAgICAjIFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1w bGljaXRseSBsaW5rcyB3aXRoIC1sYyBzaW5jZSBvbiBzb21lCi0rICAgICAgIyBzeXN0ZW1zLCAt bGdjYyBoYXMgdG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCi0r ICAgICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1sYyBiZWZvcmUgLWxnY2MuCi0rICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBs aWNpdGx5IGxpbmtlZCBpbiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAtbGMg c2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluLi4uICIgPiY2OyB9Ci0rICAgICAgJHJtIGNv bmZ0ZXN0KgotKyAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29u ZnRlc3QuJGFjX2V4dAotKwotKyAgICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86 IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFj X3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9IDI+Y29uZnRlc3QuZXJyOyB0aGVuCi0rICAg ICAgICBzb25hbWU9Y29uZnRlc3QKLSsgICAgICAgIGxpYj1jb25mdGVzdAotKyAgICAgICAgbGli b2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgICAgICBkZXBsaWJzPQotKyAgICAgICAgd2w9 JGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3Ci0rCXBpY19mbGFnPSRsdF9wcm9nX2NvbXBpbGVyX3Bp Y19GNzcKLSsgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12Ci0rICAgICAgICBsaW5rZXJfZmxhZ3M9 LXYKLSsgICAgICAgIHZlcnN0cmluZz0KLSsgICAgICAgIG91dHB1dF9vYmpkaXI9LgotKyAgICAg ICAgbGlibmFtZT1jb25mdGVzdAotKyAgICAgICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxh Zz0kYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3Ci0rICAgICAgICBhbGxvd191bmRlZmluZWRfZmxh Z19GNzc9Ci0rICAgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhcmNo aXZlX2NtZHNfRjc3IDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFc IiIpID4mNQotKyAgKGV2YWwgJGFyY2hpdmVfY21kc19GNzcgMlw+XCYxIFx8IGdyZXAgXCIgLWxj IFwiIFw+L2Rldi9udWxsIDJcPlwmMSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0KLSsgICAgICAgIHRoZW4KLSsJICBhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9bm8K LSsgICAgICAgIGVsc2UKLSsJICBhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9eWVzCi0rICAgICAg ICBmaQotKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PSRsdF9zYXZlX2FsbG93X3Vu ZGVmaW5lZF9mbGFnCi0rICAgICAgZWxzZQotKyAgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1 Ci0rICAgICAgZmkKLSsgICAgICAkcm0gY29uZnRlc3QqCi0rICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3NyIgPiY1Ci0rJGFz X2VjaG8gIiRhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzciID4mNjsgfQotKyAgICAgIDs7Ci0rICAg IGVzYWMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4gIiA+JjY7IH0K LStsaWJyYXJ5X25hbWVzX3NwZWM9Ci0rbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLStzb25hbWVf c3BlYz0KLStzaHJleHRfY21kcz0iLnNvIgotK3Bvc3RpbnN0YWxsX2NtZHM9Ci0rcG9zdHVuaW5z dGFsbF9jbWRzPQotK2ZpbmlzaF9jbWRzPQotK2ZpbmlzaF9ldmFsPQotK3NobGlicGF0aF92YXI9 Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KLSt2ZXJzaW9uX3R5cGU9bm9u ZQotK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLStzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKLSsKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgotK2hh cmRjb2RlX2ludG9fbGlicz1ubwotKwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBu bywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3MgdG8g YmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0rY2Fz ZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JGxpYm5hbWUuYScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBoYXMg bm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRo ZSBuYW1lLgotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgIDs7Ci0rCi0rYWl4WzQtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBB SVggNSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwg Y29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVu Y2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0 aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0 bwotKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlz IHdhcyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3Ig dG8gMy4wLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuWzAxXSB8 IGFpeDQuWzAxXS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19H TlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMgJwot KwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8IGdyZXAgeWVzID4gL2Rldi9udWxs OyB0aGVuCi0rCToKLSsgICAgICBlbHNlCi0rCWNhbl9idWlsZF9zaGFyZWQ9bm8KLSsgICAgICBm aQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgIyBBSVggKG9uIFBvd2VyKikgaGFzIG5vIHZl cnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNvZGUgY29ycmVj dAotKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVy c2lvbmluZyBzdXBwb3J0IHRvCi0rICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3Mg Y2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCi0rICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVs aW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAo b24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbwotKyAgICAgICMgaW5zdGVhZCBv ZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUgbm90Ci0rICAg ICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgotKyAgICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgICBlbHNlCi0rICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24gZm9yIHNoYXJl ZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKLSsgICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFy ZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKLSsgICAgICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBmaQotKyAgICBz aGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIGZpCi0rICA7OwotKwotK2FtaWdhb3MqKQotKyAgbGli cmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICMgQ3Jl YXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMuCi0rICBmaW5p c2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7 IGRvIGxpYm5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbXi9dKlwp XC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRybSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxp YnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhs aWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFy eS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNk aVs0NV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmln ICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJp Yi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxkLnNv LmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gxMVI2 L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93 Ci0rICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0r Ci0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKLSsg IHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsKLSsgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5ZXMs bWluZ3cqIHwgeWVzLHB3MzIqKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLmRs bC5hJwotKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0 aW5zdGFsbF9jbWRzCi0rICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUg XCR7ZmlsZX1gfgotKyAgICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcn XCR7YmFzZV9maWxlfSdcJydpO2VjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbGRpcj0kZGVz dGRpci9gZGlybmFtZSBcJGRscGF0aGB+Ci0rICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGly IC1wIFwkZGxkaXJ+Ci0rICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8k ZGxuYW1lfgotKyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRkbG5hbWUnCi0rICAgIHBvc3R1bmlu c3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxu YW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJHJtIFwkZGxw YXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3ln JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHts aWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1l ICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGli IgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KikKLSsgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRp dGlvbmFsICdsaWInIHByZWZpeAotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8g JHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0 fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRp cnMgfCBncmVwICJebGlicmFyaWVzOiIgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJz LD0vLC8sZyJgCi0rICAgICAgaWYgZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCBn cmVwICc7W2MtekMtWl06LycgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIyBJdCBpcyBtb3N0 IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0rICAgICAgICAjIG1p bmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2Vh cmNoCi0rICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxl dHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dp biBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0rICAgICAgICAj IGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3 IG9iamR1bXAsCi0rICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5p ZmllZCBwYXRoLiBBaGguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8g IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0rICAgICAg ZWxzZQotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsgICAgcHczMiopCi0rICAgICAgIyBwdzMyIERMTHMgdXNlICdw dycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdg ZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwg JFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3Vm Zml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJwotKyAgICA7OwotKyAgZXNhYwotKyAgZHlu YW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKLSsgICMgRklYTUU6IGZpcnN0IHdlIHNob3VsZCBz ZWFyY2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBpcyBpbgotKyAgc2hsaWJw YXRoX3Zhcj1QQVRICi0rICA7OwotKwotK2RhcndpbiogfCByaGFwc29keSopCi0rICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgZHlsZCIKLSsgIHZlcnNpb25fdHlwZT1kYXJ3aW4KLSsgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHt2ZXJzdWZmaXh9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFyPURZTERfTElC UkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8g LnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScv dXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsgIHZlcnNp b25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8K LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsK LSsKLStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStmcmVlYnNk KiB8IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVu L2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1 c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0rICAgIG9i amZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRob3N0X29z IGluCi0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICopIG9iamZv cm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRv Ympmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVsZiopCi0r ICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFt ZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKLSsgICAg ICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFdKikK LSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxmMy5bMi05 XSogfCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJlZWJzZDQu MS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgKikgIyBmcm9tIDQu NiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz Ci0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0r Ci0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSto cHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25k aW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KLSsgICMg bGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAkaG9zdF9jcHUg aW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCi0rICAgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCi0rICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9s aWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgotKyAg ICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjCi0rICAgIDs7Ci0rICAgaHBwYSo2NCopCi0rICAgICBzaHJleHRfY21kcz0nLnNsJwot KyAgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICAgZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGRsZC5zbCIKLSsgICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRIICMgSG93IHNo b3VsZCB3ZSBoYW5kbGUgU0hMSUJfUEFUSAotKyAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJwotKyAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0 IC91c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9 JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYwotKyAgICAgOzsKLSsgICAqKQotKyAgICBzaHJleHRf Y21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBz aGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5 IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0YWxsX2Nt ZHM9J2NobW9kIDU1NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4WzMtOV0qKQotKyAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5h bWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28u MSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OwotKyAgICAq KQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rCQl2ZXJzaW9u X3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWlyaXgKLSsJZmkgOzsKLSsgIGVz YWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgY2FzZSAkaG9zdF9v cyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGlic3VmZj0gc2hsaWJzdWZmPQot KyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9u ZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21p cHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9 MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJt aXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsK LSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCi0rICAgICAg bGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKLSsgICAgKikgbGlic3Vm Zj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICAgIGVzYWMKLSsgICAgOzsK LSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICi0r ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHts aWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3Vm Zn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwot KyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4K LStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQotKyAgZHluYW1pY19s aW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8 IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1u bwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0n UEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAg IyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1bmFjY2VwdGFibGUuCi0r ICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZvciBmYXN0X2luc3RhbGwK LSsgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGli JHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCi0rICBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IgotKwotKyAgIyBB cHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKLSsgIGlmIHRlc3Qg LWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVk ZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFwkMikp OyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRj L2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWyAJXSpod2NhcFsgCV0vZDtzL1s6LAld LyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKLSsg ICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl YyAkbHRfbGRfZXh0cmEiCi0rICBmaQotKwotKyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIv bGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCi0rICAjIHBvd2VycGMsIGJl Y2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhlCi0r ICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNyb3Nz IGNvbXBpbGVycywKLSsgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBvcnQgZHluYW1p YyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCi0rICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlzYWJs ZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKLSsgICMgYXNzdW1lIHRoZSBH TlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgotKyAgZHluYW1pY19saW5rZXI9J0dO VS9MaW51eCBsZC5zbycKLSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5v cwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGlmIGVjaG8g X19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgICAgZmluaXNoX2Nt ZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKLSsgICAgZHluYW1p Y19saW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJwotKyAgZWxzZQotKyAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9l eHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVsZl9zbycKLSsgIGZpCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStuZXdzb3M2 KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0r ICA7OwotKwotK250by1xbngqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwot KyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBu ZWVkIHZlcnNpb25lZCBsaWJzLgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBvcGVuYnNkMy4z IHwgb3BlbmJzZDMuMy4qKSBuZWVkX3ZlcnNpb249eWVzIDs7Ci0rICAgICopICAgICAgICAgICAg ICAgICAgICAgICAgIG5lZWRfdmVyc2lvbj1ubyAgOzsKLSsgIGVzYWMKLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQ QVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAg X19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dl cnBjIjsgdGhlbgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgb3BlbmJzZDIuWzg5XSB8 IG9wZW5ic2QyLls4OV0uKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rCTs7 Ci0rICAgICAgKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKwk7OwotKyAg ICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwot KyAgZmkKLSsgIDs7Ci0rCi0rb3MyKikKLSsgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCi0rICBzaHJl eHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbGlicmFyeV9uYW1lc19z cGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKLSsgIGR5bmFtaWNfbGlua2Vy PSdPUy8yIGxkLmV4ZScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAgOzsKLSsKLStvc2Yz KiB8IG9zZjQqIHwgb3NmNSopCi0rICB2ZXJzaW9uX3R5cGU9b3NmCi0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9z aGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwv bGliIC92YXIvc2hsaWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYyIKLSsgIDs7Ci0rCi0rcmRvcyopCi0rICBkeW5hbWljX2xpbmtlcj1u bwotKyAgOzsKLSsKLStzb2xhcmlzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAjIGxkZCBjb21wbGFpbnMgdW5s ZXNzIGxpYnJhcmllcyBhcmUgZXhlY3V0YWJsZQotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2Qg K3ggJGxpYicKLSsgIDs7Ci0rCi0rc3Vub3M0KikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRz PSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwot KyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIGZpCi0rICBuZWVkX3ZlcnNpb249eWVzCi0rICA7OwotKwotK3N5c3Y0IHwgc3lz djQuMyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAgICBz bmkpCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1CbGFy Z2VkeW5zeW0nCi0rICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsgICAgICA7OwotKyAg ICBzaWVtZW5zKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIDs7Ci0rICAgIG1v dG9yb2xhKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIG5lZWRfdmVyc2lvbj1u bwotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCi0rICAgICAgOzsK LSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjQqTVAqKQotKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7 dGhlbgotKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSck bGlibmFtZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtz aGFyZWRfZXh0fS4kbWFqb3InCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0r ICBmaQotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUq IHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz Ci0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAv dXNyL2xpYiAvbGliJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGVs c2UKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWIn Ci0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICAgIHNjbzMuMnY1KikKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgotKwk7OwotKyAgICBlc2FjCi0rICBm aQotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJwotKyAgOzsKLSsKLSt1 dHM0KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rKikKLSsgIGR5bmFtaWNfbGlua2Vy PW5vCi0rICA7OwotK2VzYWMKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk ZHluYW1pY19saW5rZXIiID4mNQotKyRhc19lY2hvICIkZHluYW1pY19saW5rZXIiID4mNjsgfQot K3Rlc3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0r aWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3Zfc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0r c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IgotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3Zf c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIK LStmaQotKwotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWMiCi0rCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEggJHNo bGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0r ICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5r IEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFUSCIKLStmaQotKwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFy eSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8g aGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uICIgPiY2OyB9Ci0raGFyZGNv ZGVfYWN0aW9uX0Y3Nz0KLStpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19G NzciIHx8IFwKLSsgICB0ZXN0IC1uICIkcnVucGF0aF92YXJfRjc3IiB8fCBcCi0rICAgdGVzdCAi WCRoYXJkY29kZV9hdXRvbWF0aWNfRjc3IiA9ICJYeWVzIiA7IHRoZW4KLSsKLSsgICMgV2UgY2Fu IGhhcmRjb2RlIG5vbi1leGlzdGFudCBkaXJlY3Rvcmllcy4KLSsgIGlmIHRlc3QgIiRoYXJkY29k ZV9kaXJlY3RfRjc3IiAhPSBubyAmJgotKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8g YXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQotKyAgICAgIyBoYXZlIHRvIHJl bGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQot KyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFs bGVkIG9uZQotKyAgICAgIyMgdGVzdCAiJF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgRjc3KSIgIT0gbm8gJiYKLSsgICAgIHRlc3QgIiRoYXJkY29kZV9taW51c19MX0Y3NyIg IT0gbm87IHRoZW4KLSsgICAgIyBMaW5raW5nIGFsd2F5cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFy eSBsaWJyYXJ5IGRpcmVjdG9yeS4KLSsgICAgaGFyZGNvZGVfYWN0aW9uX0Y3Nz1yZWxpbmsKLSsg IGVsc2UKLSsgICAgIyBXZSBjYW4gbGluayB3aXRob3V0IGhhcmRjb2RpbmcsIGFuZCB3ZSBjYW4g aGFyZGNvZGUgbm9uZXhpc3RpbmcgZGlycy4KLSsgICAgaGFyZGNvZGVfYWN0aW9uX0Y3Nz1pbW1l ZGlhdGUKLSsgIGZpCi0rZWxzZQotKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9y IGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcKLSsgICMgZGlyZWN0b3JpZXMuCi0r ICBoYXJkY29kZV9hY3Rpb25fRjc3PXVuc3VwcG9ydGVkCi0rZmkKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZGNvZGVfYWN0aW9uX0Y3NyIgPiY1Ci0rJGFzX2VjaG8g IiRoYXJkY29kZV9hY3Rpb25fRjc3IiA+JjY7IH0KLSsKLStpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0 aW9uX0Y3NyIgPSByZWxpbms7IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1 cHBvcnRlZAotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotK2VsaWYgdGVzdCAiJHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKLSsgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IG5vOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKLSsg IGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKLStmaQotKwotKwotKyMgVGhlIGVsc2UgY2xh dXNlIHNob3VsZCBvbmx5IGZpcmUgd2hlbiBib290c3RyYXBwaW5nIHRoZQotKyMgbGlidG9vbCBk aXN0cmlidXRpb24sIG90aGVyd2lzZSB5b3UgZm9yZ290IHRvIHNoaXAgbHRtYWluLnNoCi0rIyB3 aXRoIHlvdXIgcGFja2FnZSwgYW5kIHlvdSB3aWxsIGdldCBjb21wbGFpbnRzIHRoYXQgdGhlcmUg YXJlCi0rIyBubyBydWxlcyB0byBnZW5lcmF0ZSBsdG1haW4uc2guCi0raWYgdGVzdCAtZiAiJGx0 bWFpbiI7IHRoZW4KLSsgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0 aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIgY29tbWFuZHMgdGhyb3VnaAotKyAgIyB3aXRob3V0 IHJlbW92YWwgb2YgXCBlc2NhcGVzLgotKyAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9 IiA7IHRoZW4KLSsgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLSsgIGZpCi0rICAjIE5vdyBxdW90 ZSBhbGwgdGhlIHRoaW5ncyB0aGF0IG1heSBjb250YWluIG1ldGFjaGFyYWN0ZXJzIHdoaWxlIGJl aW5nCi0rICAjIGNhcmVmdWwgbm90IHRvIG92ZXJxdW90ZSB0aGUgQUNfU1VCU1RlZCB2YWx1ZXMu ICBXZSB0YWtlIGNvcGllcyBvZiB0aGUKLSsgICMgdmFyaWFibGVzIGFuZCBxdW90ZSB0aGUgY29w aWVzIGZvciBnZW5lcmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlwdC4KLSsgIGZvciB2YXIgaW4g ZWNobyBvbGRfQ0Mgb2xkX0NGTEFHUyBBUiBBUl9GTEFHUyBFR1JFUCBSQU5MSUIgTE5fUyBMVEND IExUQ0ZMQUdTIE5NIFwKLSsgICAgU0VEIFNIRUxMIFNUUklQIFwKLSsgICAgbGlibmFtZV9zcGVj IGxpYnJhcnlfbmFtZXNfc3BlYyBzb25hbWVfc3BlYyBleHRyYWN0X2V4cHN5bXNfY21kcyBcCi0r ICAgIG9sZF9zdHJpcGxpYiBzdHJpcGxpYiBmaWxlX21hZ2ljX2NtZCBmaW5pc2hfY21kcyBmaW5p c2hfZXZhbCBcCi0rICAgIGRlcGxpYnNfY2hlY2tfbWV0aG9kIHJlbG9hZF9mbGFnIHJlbG9hZF9j bWRzIG5lZWRfbG9ja3MgXAotKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIGx0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY19uYW1lX2FkZHJlc3MgXAotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgXAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyBvbGRf cG9zdHVuaW5zdGFsbF9jbWRzIFwKLSsgICAgY29tcGlsZXJfRjc3IFwKLSsgICAgQ0NfRjc3IFwK LSsgICAgTERfRjc3IFwKLSsgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzcgXAotKyAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19GNzcgXAotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzcg XAotKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19GNzcgXAotKyAgICBleHBv cnRfZHluYW1pY19mbGFnX3NwZWNfRjc3IFwKLSsgICAgdGhyZWFkX3NhZmVfZmxhZ19zcGVjX0Y3 NyBcCi0rICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3NyBcCi0rICAgIGVuYWJsZV9zaGFy ZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfRjc3IFwKLSsgICAgb2xkX2FyY2hpdmVfY21kc19GNzcg XAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0Y3NyBcCi0rICAgIHByZWRlcF9vYmpl Y3RzX0Y3NyBcCi0rICAgIHBvc3RkZXBfb2JqZWN0c19GNzcgXAotKyAgICBwcmVkZXBzX0Y3NyBc Ci0rICAgIHBvc3RkZXBzX0Y3NyBcCi0rICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9GNzcg XAotKyAgICBjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfRjc3IFwKLSsgICAgYXJjaGl2ZV9jbWRz X0Y3NyBcCi0rICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3IFwKLSsgICAgcG9zdGluc3RhbGxf Y21kc19GNzcgXAotKyAgICBwb3N0dW5pbnN0YWxsX2NtZHNfRjc3IFwKLSsgICAgb2xkX2FyY2hp dmVfZnJvbV9leHBzeW1zX2NtZHNfRjc3IFwKLSsgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3 IFwKLSsgICAgbm9fdW5kZWZpbmVkX2ZsYWdfRjc3IFwKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21k c19GNzcgXAotKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3NyBcCi0rICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfRjc3IFwKLSsgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcl9GNzcgXAotKyAgICBoYXJkY29kZV9hdXRvbWF0aWNfRjc3IFwKLSsgICAgbW9kdWxlX2Nt ZHNfRjc3IFwKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0Y3NyBcCi0rICAgIGx0X2N2X3Byb2df Y29tcGlsZXJfY19vX0Y3NyBcCi0rICAgIGZpeF9zcmNmaWxlX3BhdGhfRjc3IFwKLSsgICAgZXhj bHVkZV9leHBzeW1zX0Y3NyBcCi0rICAgIGluY2x1ZGVfZXhwc3ltc19GNzc7IGRvCi0rCi0rICAg IGNhc2UgJHZhciBpbgotKyAgICBvbGRfYXJjaGl2ZV9jbWRzX0Y3NyB8IFwKLSsgICAgb2xkX2Fy Y2hpdmVfZnJvbV9uZXdfY21kc19GNzcgfCBcCi0rICAgIGFyY2hpdmVfY21kc19GNzcgfCBcCi0r ICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3IHwgXAotKyAgICBtb2R1bGVfY21kc19GNzcgfCBc Ci0rICAgIG1vZHVsZV9leHBzeW1fY21kc19GNzcgfCBcCi0rICAgIG9sZF9hcmNoaXZlX2Zyb21f ZXhwc3ltc19jbWRzX0Y3NyB8IFwKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21kc19GNzcgfCBcCi0r ICAgIGV4dHJhY3RfZXhwc3ltc19jbWRzIHwgcmVsb2FkX2NtZHMgfCBmaW5pc2hfY21kcyB8IFwK LSsgICAgcG9zdGluc3RhbGxfY21kcyB8IHBvc3R1bmluc3RhbGxfY21kcyB8IFwKLSsgICAgb2xk X3Bvc3RpbnN0YWxsX2NtZHMgfCBvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAotKyAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMgfCBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYykKLSsgICAg ICAjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCi0rICAgICAgZXZhbCAibHRf JHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJGRvdWJsZV9xdW90 ZV9zdWJzdFwiIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3RcIiAtZSBcIlwkZGVsYXlfdmFyaWFibGVf c3Vic3RcIlxgXFxcIiIKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0XyR2YXI9 XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwgXCRYc2VkIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3Rc IlxgXFxcIiIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICBjYXNlICRsdF9l Y2hvIGluCi0rICAqJ1wkMCAtLWZhbGxiYWNrLWVjaG8iJykKLSsgICAgbHRfZWNobz1gJGVjaG8g IlgkbHRfZWNobyIgfCAkWHNlZCAtZSAncy9cXFxcXFxcJDAgLS1mYWxsYmFjay1lY2hvIiQvJDAg LS1mYWxsYmFjay1lY2hvIi8nYAotKyAgICA7OwotKyAgZXNhYwotKwotK2NmZ2ZpbGU9IiRvZmls ZSIKLSsKLSsgIGNhdCA8PF9fRU9GX18gPj4gIiRjZmdmaWxlIgotKyMgIyMjIEJFR0lOIExJQlRP T0wgVEFHIENPTkZJRzogJHRhZ25hbWUKLSsKLSsjIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24g aG9zdCBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6Ci0rCi0r IyBTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzLgotK1NIRUxMPSRsdF9T SEVMTAotKwotKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcy4KLSti dWlsZF9saWJ0b29sX2xpYnM9JGVuYWJsZV9zaGFyZWQKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRv IGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuCi0rYnVpbGRfb2xkX2xpYnM9JGVuYWJsZV9zdGF0aWMK LSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJy YXJpZXMuCi0rYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzcK LSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVudGlt ZSBsaWJzIGFyZSBzdGF0aWMKLSthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGlt ZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfRjc3Ci0rCi0rIyBXaGV0aGVy IG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCi0rZmFzdF9pbnN0YWxs PSRlbmFibGVfZmFzdF9pbnN0YWxsCi0rCi0rIyBUaGUgaG9zdCBzeXN0ZW0uCi0raG9zdF9hbGlh cz0kaG9zdF9hbGlhcwotK2hvc3Q9JGhvc3QKLStob3N0X29zPSRob3N0X29zCi0rCi0rIyBUaGUg YnVpbGQgc3lzdGVtLgotK2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcwotK2J1aWxkPSRidWlsZAot K2J1aWxkX29zPSRidWlsZF9vcwotKwotKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3Qg aW50ZXJwcmV0IGJhY2tzbGFzaGVzLgotK2VjaG89JGx0X2VjaG8KLSsKLSsjIFRoZSBhcmNoaXZl ci4KLStBUj0kbHRfQVIKLStBUl9GTEFHUz0kbHRfQVJfRkxBR1MKLSsKLSsjIEEgQyBjb21waWxl ci4KLStMVENDPSRsdF9MVENDCi0rCi0rIyBMVENDIGNvbXBpbGVyIGZsYWdzLgotK0xUQ0ZMQUdT PSRsdF9MVENGTEFHUwotKwotKyMgQSBsYW5ndWFnZS1zcGVjaWZpYyBjb21waWxlci4KLStDQz0k bHRfY29tcGlsZXJfRjc3Ci0rCi0rIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBDIGNvbXBpbGVy PwotK3dpdGhfZ2NjPSRHQ0NfRjc3Ci0rCi0rIyBBbiBFUkUgbWF0Y2hlci4KLStFR1JFUD0kbHRf RUdSRVAKLSsKLSsjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXMuCi0rTEQ9JGx0 X0xEX0Y3NwotKwotKyMgV2hldGhlciB3ZSBuZWVkIGhhcmQgb3Igc29mdCBsaW5rcy4KLStMTl9T PSRsdF9MTl9TCi0rCi0rIyBBIEJTRC1jb21wYXRpYmxlIG5tIHByb2dyYW0uCi0rTk09JGx0X05N Ci0rCi0rIyBBIHN5bWJvbCBzdHJpcHBpbmcgcHJvZ3JhbQotK1NUUklQPSRsdF9TVFJJUAotKwot KyMgVXNlZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyAi ZmlsZSIKLStNQUdJQ19DTUQ9JE1BR0lDX0NNRAotKwotKyMgVXNlZCBvbiBjeWd3aW46IERMTCBj cmVhdGlvbiBwcm9ncmFtLgotK0RMTFRPT0w9IiRETExUT09MIgotKwotKyMgVXNlZCBvbiBjeWd3 aW46IG9iamVjdCBkdW1wZXIuCi0rT0JKRFVNUD0iJE9CSkRVTVAiCi0rCi0rIyBVc2VkIG9uIGN5 Z3dpbjogYXNzZW1ibGVyLgotK0FTPSIkQVMiCi0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0 b3J5IHRoYXQgY29udGFpbnMgdGVtcG9yYXJ5IGxpYnRvb2wgZmlsZXMuCi0rb2JqZGlyPSRvYmpk aXIKLSsKLSsjIEhvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuCi0rcmVsb2Fk X2ZsYWc9JGx0X3JlbG9hZF9mbGFnCi0rcmVsb2FkX2NtZHM9JGx0X3JlbG9hZF9jbWRzCi0rCi0r IyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRs dF9sdF9wcm9nX2NvbXBpbGVyX3dsX0Y3NwotKwotKyMgT2JqZWN0IGZpbGUgc3VmZml4IChub3Jt YWxseSAibyIpLgotK29iamV4dD0iJGFjX29iamV4dCIKLSsKLSsjIE9sZCBhcmNoaXZlIHN1ZmZp eCAobm9ybWFsbHkgImEiKS4KLStsaWJleHQ9IiRsaWJleHQiCi0rCi0rIyBTaGFyZWQgbGlicmFy eSBzdWZmaXggKG5vcm1hbGx5ICIuc28iKS4KLStzaHJleHRfY21kcz0nJHNocmV4dF9jbWRzJwot KwotKyMgRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIiIpLgotK2V4ZWV4dD0iJGV4 ZWV4dCIKLSsKLSsjIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MgZm9yIGJ1aWxkaW5nIGxpYnJh cnkgb2JqZWN0cy4KLStwaWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9waWNfRjc3Ci0rcGlj X21vZGU9JHBpY19tb2RlCi0rCi0rIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNv bW1hbmQ/Ci0rbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgotKwotKyMgRG9lcyBj b21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwotK2NvbXBp bGVyX2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fRjc3Ci0rCi0rIyBNdXN0IHdlIGxv Y2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj8KLStuZWVkX2xvY2tzPSRsdF9uZWVkX2xv Y2tzCi0rCi0rIyBEbyB3ZSBuZWVkIHRoZSBsaWIgcHJlZml4IGZvciBtb2R1bGVzPwotK25lZWRf bGliX3ByZWZpeD0kbmVlZF9saWJfcHJlZml4Ci0rCi0rIyBEbyB3ZSBuZWVkIGEgdmVyc2lvbiBm b3IgbGlicmFyaWVzPwotK25lZWRfdmVyc2lvbj0kbmVlZF92ZXJzaW9uCi0rCi0rIyBXaGV0aGVy IGRsb3BlbiBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3N1cHBvcnQ9JGVuYWJsZV9kbG9wZW4KLSsK LSsjIFdoZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc2Vs Zj0kZW5hYmxlX2Rsb3Blbl9zZWxmCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5 IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3NlbGZfc3RhdGljPSRlbmFi bGVfZGxvcGVuX3NlbGZfc3RhdGljCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHlu YW1pYyBsaW5raW5nLgotK2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3Rh dGljX0Y3NwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9u cy4KLStub19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFn X0Y3NwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KLStl eHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzcK LSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkg ZnJvbSBhcmNoaXZlcy4KLSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNfRjc3Ci0rCi0rIyBDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHRocmVhZC1z YWZlIG9iamVjdHMuCi0rdGhyZWFkX3NhZmVfZmxhZ19zcGVjPSRsdF90aHJlYWRfc2FmZV9mbGFn X3NwZWNfRjc3Ci0rCi0rIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KLSt2ZXJzaW9uX3R5cGU9 JHZlcnNpb25fdHlwZQotKwotKyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXguCi0rbGli bmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKLSsKLSsjIExpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4g IEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCi0rIyBUaGUg bGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FLgot K2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCi0rCi0rIyBUaGUgY29k ZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4K LStzb25hbWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVp bGQgYW5kIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCi0rUkFOTElCPSRsdF9SQU5MSUIK LStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzX0Y3NwotK29sZF9wb3N0aW5z dGFsbF9jbWRzPSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcwotK29sZF9wb3N0dW5pbnN0YWxsX2Nt ZHM9JGx0X29sZF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUg YXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21k cz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19GNzcKLSsKLSsjIENyZWF0ZSBhIHRlbXBv cmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2 ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHNfRjc3Ci0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxs IGEgc2hhcmVkIGFyY2hpdmUuCi0rYXJjaGl2ZV9jbWRzPSRsdF9hcmNoaXZlX2NtZHNfRjc3Ci0r YXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kc19GNzcKLStwb3N0aW5z dGFsbF9jbWRzPSRsdF9wb3N0aW5zdGFsbF9jbWRzCi0rcG9zdHVuaW5zdGFsbF9jbWRzPSRsdF9w b3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJs ZSBtb2R1bGUgKGFzc3VtZWQgc2FtZSBhcyBhYm92ZSBpZiBlbXB0eSkKLSttb2R1bGVfY21kcz0k bHRfbW9kdWxlX2NtZHNfRjc3Ci0rbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3lt X2NtZHNfRjc3Ci0rCi0rIyBDb21tYW5kcyB0byBzdHJpcCBsaWJyYXJpZXMuCi0rb2xkX3N0cmlw bGliPSRsdF9vbGRfc3RyaXBsaWIKLStzdHJpcGxpYj0kbHRfc3RyaXBsaWIKLSsKLSsjIERlcGVu ZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0 ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwcmVkZXBfb2JqZWN0cz0kbHRfcHJlZGVwX29iamVj dHNfRjc3Ci0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVjdHMgYmVp bmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwb3N0ZGVwX29iamVj dHM9JGx0X3Bvc3RkZXBfb2JqZWN0c19GNzcKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBi ZWZvcmUgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGli cmFyeS4KLStwcmVkZXBzPSRsdF9wcmVkZXBzX0Y3NwotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBs YWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQotKyMgc2hhcmVk IGxpYnJhcnkuCi0rcG9zdGRlcHM9JGx0X3Bvc3RkZXBzX0Y3NwotKwotKyMgVGhlIGRpcmVjdG9y aWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZAotKyMg bGlicmFyeQotK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRfY29tcGlsZXJfbGliX3NlYXJj aF9kaXJzX0Y3NwotKwotKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5 IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsjIGEgc2hhcmVkIGxpYnJhcnkuCi0rY29t cGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX3BhdGhfRjc3Ci0r Ci0rIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFy ZWQgb2JqZWN0cy4KLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfZGVwbGlic19jaGVja19tZXRo b2QKLSsKLSsjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPT0gZmls ZV9tYWdpYy4KLStmaWxlX21hZ2ljX2NtZD0kbHRfZmlsZV9tYWdpY19jbWQKLSsKLSsjIEZsYWcg dGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJl IGJ1aWx0LgotK2FsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9hbGxvd191bmRlZmluZWRfZmxhZ19G NzcKLSsKLSsjIEZsYWcgdGhhdCBmb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCi0rbm9fdW5k ZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9mbGFnX0Y3NwotKwotKyMgQ29tbWFuZHMgdXNl ZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5 LgotK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21kcwotKwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0 IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0IG5vdCBzaG93bi4KLStm aW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKLSsKLSsjIFRha2UgdGhlIG91dHB1dCBvZiBubSBh bmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXMuCi0rZ2xvYmFs X3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlCi0rCi0rIyBUcmFu c2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9uCi0rZ2xvYmFs X3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wKLSsK LSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpcgot K2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NfbmFtZV9hZGRyZXNzCi0rCi0rIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBy dW50aW1lIHBhdGggdmFyaWFibGUuCi0rcnVucGF0aF92YXI9JHJ1bnBhdGhfdmFyCi0rCi0rIyBU aGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgotK3NobGlicGF0aF92YXI9 JHNobGlicGF0aF92YXIKLSsKLSsjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhh cmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8KLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aAotKwotKyMgSG93IHRvIGhhcmRjb2RlIGEg c2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCi0raGFyZGNvZGVfYWN0aW9u PSRoYXJkY29kZV9hY3Rpb25fRjc3Ci0rCi0rIyBXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBs aWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgotK2hhcmRjb2RlX2ludG9fbGlicz0kaGFyZGNv ZGVfaW50b19saWJzCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5h cnkgZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRv ZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfRjc3Ci0rCi0rIyBJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywgZmxh ZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvCi0rIyBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4g VGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzCi0rIyBub3QgZXhpc3QuCi0raGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19s ZF9GNzcKLSsKLSsjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAtcnBhdGggZmxhZyB3aXRoIGEg c2VwYXJhdGVkIGFyZ3VtZW50LgotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3Ci0rCi0rIyBTZXQgdG8geWVzIGlmIHVzaW5nIERJUi9s aWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhl Ci0rIyByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0 X0Y3NwotKwotKyMgU2V0IHRvIHllcyBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlu a2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCi0rIyByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRj b2RlX21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0xfRjc3Ci0rCi0rIyBTZXQgdG8geWVzIGlmIHVz aW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50bwot KyMgdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9GNzcKLSsKLSsjIFNldCB0byB5ZXMgaWYgYnVpbGRpbmcgYSBzaGFy ZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIgaW50byB0aGUgbGlicmFyeQot KyMgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkIGFn YWluc3QgaXQuCi0raGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWNfRjc3Ci0r Ci0rIyBWYXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdy YXBwZXIgc2NyaXB0cyBhbmQKLSsjIHJlc3RvcmVkIGF0IHJlbGluayB0aW1lLgotK3ZhcmlhYmxl c19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsiCi0rCi0rIyBX aGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5k ZW5jeSBsaWJyYXJpZXMuCi0rbGlua19hbGxfZGVwbGlicz0kbGlua19hbGxfZGVwbGlic19GNzcK LSsKLSsjIENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcwotK3N5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rCi0r IyBSdW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcwotK3N5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYwotKwotKyMgRml4 IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlci4KLStmaXhfc3Jj ZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCi0rCi0rIyBTZXQgdG8geWVzIGlmIGV4cG9y dGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgotK2Fsd2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlz X2V4cG9ydF9zeW1ib2xzX0Y3NwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQg c3ltYm9scy4KLStleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzX0Y3 NwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5bWJvbCBsaXN0 IGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KLStleHRyYWN0X2V4cHN5bXNfY21kcz0kbHRfZXh0cmFj dF9leHBzeW1zX2NtZHMKLSsKLSsjIFN5bWJvbHMgdGhhdCBzaG91bGQgbm90IGJlIGxpc3RlZCBp biB0aGUgcHJlbG9hZGVkIHN5bWJvbHMuCi0rZXhjbHVkZV9leHBzeW1zPSRsdF9leGNsdWRlX2V4 cHN5bXNfRjc3Ci0rCi0rIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCi0r aW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXNfRjc3Ci0rCi0rIyAjIyMgRU5EIExJ QlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWUKLSsKLStfX0VPRl9fCi0rCi0rCi0rZWxzZQotKyAg IyBJZiB0aGVyZSBpcyBubyBNYWtlZmlsZSB5ZXQsIHdlIHJlbHkgb24gYSBtYWtlIHJ1bGUgdG8g ZXhlY3V0ZQotKyAgIyBgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2snIHRvIHJlcnVuIHRoZXNlIHRl c3RzIGFuZCBjcmVhdGUgdGhlCi0rICAjIGxpYnRvb2wgc2NyaXB0IHRoZW4uCi0rICBsdG1haW5f aW49YGVjaG8gJGx0bWFpbiB8IHNlZCAtZSAncy9cLnNoJC8uaW4vJ2AKLSsgIGlmIHRlc3QgLWYg IiRsdG1haW5faW4iOyB0aGVuCi0rICAgIHRlc3QgLWYgTWFrZWZpbGUgJiYgbWFrZSAiJGx0bWFp biIKLSsgIGZpCi0rZmkKLSsKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotK0NDPSIkbHRfc2F2ZV9DQyIKLSsKLSsJZWxzZQot KwkgIHRhZ25hbWU9IiIKLSsJZmkKLSsJOzsKLSsKLSsgICAgICBHQ0opCi0rCWlmIHRlc3QgLW4g IiRHQ0oiICYmIHRlc3QgIlgkR0NKIiAhPSAiWG5vIjsgdGhlbgotKwotKwotKyMgU291cmNlIGZp bGUgZXh0ZW5zaW9uIGZvciBKYXZhIHRlc3Qgc291cmNlcy4KLSthY19leHQ9amF2YQotKwotKyMg T2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBKYXZhIHRlc3Qgc291cmNlcy4KLStv YmpleHQ9bwotK29iamV4dF9HQ0o9JG9iamV4dAotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNp bXBsZSBjb21waWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJjbGFzcyBm b28ge30iCi0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLStsdF9z aW1wbGVfbGlua190ZXN0X2NvZGU9J3B1YmxpYyBjbGFzcyBjb25mdGVzdCB7IHB1YmxpYyBzdGF0 aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3YpIHt9OyB9JwotKwotKyMgbHRtYWluIG9ubHkgdXNl cyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4K LSsKLSsjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgotK0xUQ0M9JHtM VENDLSIkQ0MifQotKwotKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwg dXNlIENGTEFHUy4KLStMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KLSsKLSsjIEFsbG93 IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2NvbXBpbGVyPSRDQwot KwotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0r YWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAiJGx0X3NpbXBsZV9jb21waWxl X3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFsICIkYWNfY29tcGlsZSIgMj4mMSA+ L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKLStfbHRfY29t cGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0rJHJtIGNvbmZ0ZXN0KgotKwot K2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfbGlua190 ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYv bnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2xpbmtlcl9i b2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskcm0gLXIgY29uZnRlc3QqCi0rCi0rCi0r IyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLStsdF9zYXZl X0NDPSIkQ0MiCi0rQ0M9JHtHQ0otImdjaiJ9Ci0rY29tcGlsZXI9JENDCi0rY29tcGlsZXJfR0NK PSRDQwotK2ZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBp bgotKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSAp IDs7Ci0rICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSAp IDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19i YXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRo b3N0X2FsaWFzLSUlImAKLSsKLSsKLSsjIEdDSiBkaWQgbm90IGV4aXN0IGF0IHRoZSB0aW1lIEdD QyBkaWRuJ3QgaW1wbGljaXRseSBsaW5rIGxpYmMgaW4uCi0rYXJjaGl2ZV9jbWRzX25lZWRfbGNf R0NKPW5vCi0rCi0rb2xkX2FyY2hpdmVfY21kc19HQ0o9JG9sZF9hcmNoaXZlX2NtZHMKLSsKLSsK LStsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19HQ0o9Ci0rCi0raWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KLSsgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0dDSj0n IC1mbm8tYnVpbHRpbicKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZu by1leGNlcHRpb25zLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVy X3J0dGlfZXhjZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz1u bwotKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgZWNobyAiJGx0X3NpbXBs ZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJf ZmxhZz0iLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9u IGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIp IGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQu Ci0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFj a3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBo ZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAgIyBUaGUgb3B0aW9u IGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KLSsg ICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKLSsgICAtZSAnczouKkZM QUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCi0rICAgLWUgJ3M6IFteIF0q Y29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAotKyAgIC1lICdzOiQ6ICRsdF9j b21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjE3NDkwOiAkbHRfY29t cGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsg ICBhY19zdGF0dXM9JD8KLSsgICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19t ZToxNzQ5NDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykg JiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4g b25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAg IyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91 dHB1dC4KLSsgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAt ZSAnL14kL2QnID5jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25m dGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8 fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAg ICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz15ZXMKLSsgICAgIGZpCi0rICAg ZmkKLSsgICAkcm0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMiID4mNQotKyRh c19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMiID4mNjsgfQotKwot K2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMiID0geHllczsg dGhlbgotKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19HQ0o9IiRsdF9wcm9n X2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19HQ0ogLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIK LStlbHNlCi0rICAgIDoKLStmaQotKwotK2ZpCi0rCi0rbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9 Ci0rbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPQotK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dD Sj0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRjb21waWxl ciBvcHRpb24gdG8gcHJvZHVjZSBQSUMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk Y29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uICIgPiY2OyB9Ci0rCi0rICBpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCcK LSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctc3RhdGljJwotKwotKyAgICBjYXNl ICRob3N0X29zIGluCi0rICAgICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMu Ci0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cg c3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSct QnN0YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAg ICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGli cmFyaWVzLCBidXQKLSsgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHBy ZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAgICAjIGxpa2UgYC1tNjgwNDAn LgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLW02ODAyMCAtcmVzaWRlbnQzMiAt bWFsd2F5cy1yZXN0b3JlLWE0JwotKyAgICAgIDs7Ci0rCi0rICAgIGJlb3MqIHwgaXJpeDUqIHwg aXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAjIFBJ QyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAgICA7OwotKwotKyAgICBtaW5n dyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRo YXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAj IGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMg Zm9yIGV4YW1wbGUpLgotKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAt ZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKLSsgICAgICAjICgtLWRpc2FibGUt YXV0by1pbXBvcnQpIGxpYnJhcmllcwotKwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndpbiogfCBy aGFwc29keSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQot KyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSsg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1mbm8tY29tbW9uJwotKyAgICAgIDs7Ci0r Ci0rICAgIGludGVyaXhbMy05XSopCi0rICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQ SUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAgICAjIEluc3RlYWQsIHdlIHJl bG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsgICAgICA7OwotKwotKyAgICBt c2Rvc2RqZ3BwKikKLSsgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVh biB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcwotKyAgICAgICMgb24gc3lzdGVtcyB0 aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWls ZF9zaGFyZWRfR0NKPW5vCi0rICAgICAgZW5hYmxlX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0r ICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCWx0X3By b2dfY29tcGlsZXJfcGljX0dDSj0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7Owot KwotKyAgICBocHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1V WCBhbmQgNjQtYml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCi0rICAg ICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0KnxpYTY0KikKLSsJIyArWiB0aGUg ZGVmYXVsdAotKwk7OwotKyAgICAgICopCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLWZQ SUMnCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAgbHRf cHJvZ19jb21waWxlcl9waWNfR0NKPSctZlBJQycKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBl bHNlCi0rICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRo cm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBh aXgqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJwotKyAgICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQg cHJvY2Vzc29yCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0aWMnCi0rICAg ICAgZWxzZQotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1ibnNvIC1iSTovbGliL3N5 c2NhbGxzLmV4cCcKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgICAgZGFyd2luKikKLSsgICAg ICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAgICMgQ29t bW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSsgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICB4bGMqKQotKyAgICAgICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0dDSj0nLXFub2NvbW1vbicKLSsgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0dD Sj0nLVdsLCcKLSsgICAgICAgICA7OwotKyAgICAgICBlc2FjCi0rICAgICAgIDs7Ci0rCi0rICAg IG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMg c28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAg ICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3lt Ym9scyBmb3IgZXhhbXBsZSkuCi0rCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDkqIHwgaHB1eDEw KiB8IGhwdXgxMSopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCi0rICAg ICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1VWCwg YnV0Ci0rICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGlu Ci0rICAgICAgaHBwYSo2NCp8aWE2NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQKLSsJOzsKLSsgICAg ICAqKQotKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9JytaJwotKwk7OwotKyAgICAgIGVzYWMK LSsgICAgICAjIElzIHRoZXJlIGEgYmV0dGVyIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIHRoYXQg d29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19HQ0o9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKyAgICAgIDs7Ci0rCi0rICAgIGlyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1X bCwnCi0rICAgICAgIyBQSUMgKHdpdGggLUtQSUMpIGlzIHRoZSBkZWZhdWx0LgotKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsg ICAgbmV3c29zNikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1LUElDJwotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsK LSsgICAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgot KyAgICAgIGljYyogfCBlY2MqKQotKwlsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCcKLSsJ bHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctS1BJQycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfR0NKPSctc3RhdGljJwotKyAgICAgICAgOzsKLSsgICAgICBwZ2NjKiB8IHBnZjc3KiB8IHBn ZjkwKiB8IHBnZjk1KikKLSsgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgY29tcGlsZXJzICgqbm90 KiB0aGUgUGVudGl1bSBnY2MgY29tcGlsZXIsCi0rCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBkZWFk IHByb2plY3QpCi0rCWx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJwotKwlsdF9wcm9nX2Nv bXBpbGVyX3BpY19HQ0o9Jy1mcGljJwotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1C c3RhdGljJwotKyAgICAgICAgOzsKLSsgICAgICBjY2MqKQotKyAgICAgICAgbHRfcHJvZ19jb21w aWxlcl93bF9HQ0o9Jy1XbCwnCi0rICAgICAgICAjIEFsbCBBbHBoYSBjb2RlIGlzIFBJQy4KLSsg ICAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLW5vbl9zaGFyZWQnCi0rICAgICAg ICA7OwotKyAgICAgICopCi0rICAgICAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4K LSsJKlN1blwgQyopCi0rCSAgIyBTdW4gQyA1LjkKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3BpY19H Q0o9Jy1LUElDJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0aWMnCi0r CSAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCi0rCSAgOzsKLSsJKlN1blwgRiopCi0r CSAgIyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29nbml6ZWQgZmxhZ3MgdG8gdGhl IGxpbmtlcgotKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLUtQSUMnCi0rCSAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3ds X0dDSj0nJwotKwkgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsK LSsgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xf R0NKPSctV2wsJwotKyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMgUElDLgotKyAgICAgIGx0X3By b2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAg cmRvcyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctbm9uX3NoYXJlZCcK LSsgICAgICA7OwotKwotKyAgICBzb2xhcmlzKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19HQ0o9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0 aWMnCi0rICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBmNzcqIHwgZjkwKiB8IGY5 NSopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctUW9wdGlvbiBsZCAnOzsKLSsgICAgICAq KQotKwlsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCc7OwotKyAgICAgIGVzYWMKLSsgICAg ICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSct UW9wdGlvbiBsZCAnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctUElDJwotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsK LSsgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfd2xfR0NKPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLUtQ SUMnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKLSsgICAg ICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhl bgotKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1LY29uZm9ybV9waWMnCi0rCWx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0aWMnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVOSVgq KQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJwotKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfcGljX0dDSj0nLUtQSUMnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf R0NKPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICB1bmljb3MqKQotKyAgICAgIGx0X3By b2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1 aWxkX3NoYXJlZF9HQ0o9bm8KLSsgICAgICA7OwotKwotKyAgICB1dHM0KikKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1waWMnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfR0NKPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9HQ0o9bm8KLSsgICAgICA7OwotKyAgICBlc2FjCi0r ICBmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9wcm9nX2Nv bXBpbGVyX3BpY19HQ0oiID4mNQotKyRhc19lY2hvICIkbHRfcHJvZ19jb21waWxlcl9waWNfR0NK IiA+JjY7IH0KLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVh bGx5IHdvcmtzLgotKyMKLStpZiB0ZXN0IC1uICIkbHRfcHJvZ19jb21waWxlcl9waWNfR0NKIjsg dGhlbgotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGls ZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiB3b3JrcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3Bp Y19HQ0ogd29ya3MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJf cGljX3dvcmtzX0dDSitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19HQ0o9bm8KLSsg IGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9 IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0oiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRo ZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZv cmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAg ICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFz aGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwg c28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyBy ZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRf Y29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31c ezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0 ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGls ZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNzc4MDogJGx0X2NvbXBpbGVc IiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0rICAgYWNf c3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6MTc3 ODQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRl c3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkg d2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28g c2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQu Ci0rICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9e JC9kJyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3Qu ZXJyID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlm ZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRf Y3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfR0NKPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAg ICRybSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19HQ0oiID4mNQotKyRhc19lY2hvICIk bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfR0NKIiA+JjY7IH0KLSsKLStpZiB0ZXN0IHgi JGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0dDSiIgPSB4eWVzOyB0aGVuCi0rICAgIGNh c2UgJGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiBpbgotKyAgICAgIiIgfCAiICIqKSA7OwotKyAg ICAgKikgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSIgJGx0X3Byb2dfY29tcGlsZXJfcGljX0dD SiIgOzsKLSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0K LSsgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9HQ0o9bm8KLStmaQotKwot K2ZpCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBz dXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAqKQotKyAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19HQ0o9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19HQ0o9IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0oiCi0rICAgIDs7Ci0rZXNhYwot KwotKyMKLSsjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29y a3MuCi0rIwotK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSiBldmFsIGx0X3RtcF9zdGF0aWNf ZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0pcIgotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0 aWNfZmxhZyB3b3JrcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0 YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSitzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2Nv bXBpbGVyX3N0YXRpY193b3Jrc19HQ0o9bm8KLSsgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgot KyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWciCi0rICAgZWNobyAiJGx0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgaWYgKGV2YWwg JGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0OyB0 aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRp b24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJu aW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIyBBcHBl bmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsgICAgICAgY2F0IGNvbmZ0ZXN0LmVy ciAxPiY1Ci0rICAgICAgICRlY2hvICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQg LWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcg Y29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAg Y29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9jdl9wcm9nX2NvbXBp bGVyX3N0YXRpY193b3Jrc19HQ0o9eWVzCi0rICAgICAgIGZpCi0rICAgICBlbHNlCi0rICAgICAg IGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSj15ZXMKLSsgICAgIGZpCi0rICAg ZmkKLSsgICAkcm0gLXIgY29uZnRlc3QqCi0rICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKLSsK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2Nv bXBpbGVyX3N0YXRpY193b3Jrc19HQ0oiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3NfR0NKIiA+JjY7IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3Byb2df Y29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSiIgPSB4eWVzOyB0aGVuCi0rICAgIDoKLStlbHNlCi0r ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0KLStmaQotKwotKwotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmls ZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3Vw cG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9j dl9wcm9nX2NvbXBpbGVyX2Nfb19HQ0orc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fR0NKPW5v Ci0rICAgJHJtIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtkaXIgY29uZnRlc3QKLSsg ICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGls ZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9 Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVp dGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJl Zm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0r ICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3Ns YXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4p LCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAgbHRfY29tcGlsZT1gZWNo byAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0 X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9j b21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAot KyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNzg4NDogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAg IChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0k PwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZToxNzg4ODog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAt cyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKLSsgICB0aGVuCi0rICAgICAjIFRoZSBjb21waWxl ciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAot KyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICAkZWNobyAiWCRf bHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IG91dC9jb25mdGVz dC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQv Y29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZm IG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAg ICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSj15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsg ICBjaG1vZCB1K3cgLiAyPiY1Ci0rICAgJHJtIGNvbmZ0ZXN0KgotKyAgICMgU0dJIEMrKyBjb21w aWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKLSsgICAjIHRlbXBs YXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkcm0gb3V0L2lp X2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAgJHJtIG91dC8qICYmIHJtZGlyIG91 dAotKyAgIGNkIC4uCi0rICAgcm1kaXIgY29uZnRlc3QKLSsgICAkcm0gY29uZnRlc3QqCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21w aWxlcl9jX29fR0NKIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dD SiIgPiY2OyB9Ci0rCi0rCi0raGFyZF9saW5rcz0ibm90dGVzdGVkIgotK2lmIHRlc3QgIiRsdF9j dl9wcm9nX2NvbXBpbGVyX2Nfb19HQ0oiID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5v OyB0aGVuCi0rICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJv dmlkZWQgYnkgdGhlIHVzZXIKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQotKyAgaGFyZF9s aW5rcz15ZXMKLSsgICRybSBjb25mdGVzdCoKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAy Pi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB0b3VjaCBjb25mdGVzdC5hCi0rICBsbiBj b25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCi0rICBsbiBjb25mdGVz dC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubwotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQotKyRhc19lY2hvICIk aGFyZF9saW5rcyIgPiY2OyB9Ci0rICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBubzsgdGhlbgot KyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90 IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycs IHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30KLSsgICAgbmVlZF9sb2Nrcz13YXJu Ci0rICBmaQotK2Vsc2UKLSsgIG5lZWRfbG9ja3M9bm8KLStmaQotKwotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQp IHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmll cy4uLiAiID4mNjsgfQotKwotKyAgcnVucGF0aF92YXI9Ci0rICBhbGxvd191bmRlZmluZWRfZmxh Z19HQ0o9Ci0rICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0dDSj1ubwotKyAg YXJjaGl2ZV9jbWRzX0dDSj0KLSsgIGFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPQotKyAgb2xkX2Fy Y2hpdmVfRnJvbV9uZXdfY21kc19HQ0o9Ci0rICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k c19HQ0o9Ci0rICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKPQotKyAgd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNfR0NKPQotKyAgdGhyZWFkX3NhZmVfZmxhZ19zcGVjX0dDSj0KLSsgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPQotKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19s ZF9HQ0o9Ci0rICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSj0KLSsgIGhhcmRjb2RlX2Rp cmVjdF9HQ0o9bm8KLSsgIGhhcmRjb2RlX21pbnVzX0xfR0NKPW5vCi0rICBoYXJkY29kZV9zaGxp YnBhdGhfdmFyX0dDSj11bnN1cHBvcnRlZAotKyAgbGlua19hbGxfZGVwbGlic19HQ0o9dW5rbm93 bgotKyAgaGFyZGNvZGVfYXV0b21hdGljX0dDSj1ubwotKyAgbW9kdWxlX2NtZHNfR0NKPQotKyAg bW9kdWxlX2V4cHN5bV9jbWRzX0dDSj0KLSsgIGFsd2F5c19leHBvcnRfc3ltYm9sc19HQ0o9bm8K LSsgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwg JGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEg PiAkZXhwb3J0X3N5bWJvbHMnCi0rICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0 IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCi0rICAjIGluY2x1ZGVk IGluIHRoZSBzeW1ib2wgbGlzdAotKyAgaW5jbHVkZV9leHBzeW1zX0dDSj0KLSsgICMgZXhjbHVk ZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9scyB0byBleGNsdWRl Ci0rICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBu b3QgbWF0Y2ggYmVnaW5uaW5nIG9yCi0rICAjIGVuZCBvZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8 LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5kIGBiYycsCi0rICAjIGFzIHdl bGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KLSsgIGV4Y2x1ZGVfZXhwc3ltc19H Q0o9J19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKicKLSsgICMgQWx0aG91 Z2ggX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIGEgdmFsaWQgc3ltYm9sIEMgbmFtZSwgbW9zdCBh Lm91dAotKyAgIyBwbGF0Zm9ybXMgKGFiKXVzZSBpdCBpbiBQSUMgY29kZSwgYnV0IHRoZWlyIGxp bmtlcnMgZ2V0IGNvbmZ1c2VkIGlmCi0rICAjIHRoZSBzeW1ib2wgaXMgZXhwbGljaXRseSByZWZl cmVuY2VkLiAgU2luY2UgcG9ydGFibGUgY29kZSBjYW5ub3QKLSsgICMgcmVseSBvbiB0aGlzIHN5 bWJvbCBuYW1lLCBpdCdzIHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgotKyAg IyBwcmVsb2FkZWQgc3ltYm9sIHRhYmxlcy4KLSsgICMgRXhjbHVkZSBzaGFyZWQgbGlicmFyeSBp bml0aWFsaXphdGlvbi9maW5hbGl6YXRpb24gc3ltYm9scy4KLSsgIGV4dHJhY3RfZXhwc3ltc19j bWRzPQotKyAgIyBKdXN0IGJlaW5nIHBhcmFub2lkIGFib3V0IGVuc3VyaW5nIHRoYXQgY2NfYmFz ZW5hbWUgaXMgc2V0LgotKyAgZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCi0rICBjYXNl ICRjY190ZW1wIGluCi0rICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltc XC9dY2NhY2hlICkgOzsKLSsgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltc XC9dcHVyaWZ5ICkgOzsKLSsgICAgXC0qKSA7OwotKyAgICAqKSBicmVhazs7Ci0rICBlc2FjCi0r ZG9uZQotK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUl JyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgY3ln d2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgICAjIEZJWE1FOiB0aGUgTVNWQysrIHBvcnQgaGFz bid0IGJlZW4gdGVzdGVkIGluIGEgbG9vb29uZyB0aW1lCi0rICAgICMgV2hlbiBub3QgdXNpbmcg Z2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICMgTWljcm9z b2Z0IFZpc3VhbCBDKysuCi0rICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgotKyAgICAg IHdpdGhfZ251X2xkPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBpbnRlcml4KikKLSsgICAgIyB3 ZSBqdXN0IGhvcGUvYXNzdW1lIHRoaXMgaXMgZ2NjIGFuZCBub3QgYzg5ICg9IE1TVkMrKykKLSsg ICAgd2l0aF9nbnVfbGQ9eWVzCi0rICAgIDs7Ci0rICBvcGVuYnNkKikKLSsgICAgd2l0aF9nbnVf bGQ9bm8KLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGxkX3NobGlic19HQ0o9eWVzCi0rICBpZiB0 ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1 bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5Ci0rICAgIHdsYXJjPScke3dsfScK LSsKLSsgICAgIyBTZXQgc29tZSBkZWZhdWx0cyBmb3IgR05VIGxkIHdpdGggc2hhcmVkIGxpYnJh cnkgc3VwcG9ydC4gVGhlc2UKLSsgICAgIyBhcmUgcmVzZXQgbGF0ZXIgaWYgc2hhcmVkIGxpYnJh cmllcyBhcmUgbm90IHN1cHBvcnRlZC4gUHV0dGluZyB0aGVtCi0rICAgICMgaGVyZSBhbGxvd3Mg dGhlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KLSsgICAgcnVucGF0aF92YXI9TERf UlVOX1BBVEgKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LS1ycGF0 aCAke3dsfSRsaWJkaXInCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HQ0o9JyR7d2x9 LS1leHBvcnQtZHluYW1pYycKLSsgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAt LXdob2xlLWFyY2hpdmUgZXQuIGFsLgotKyAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICdu by13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKwl3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlY19HQ0o9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIict LW5vLXdob2xlLWFyY2hpdmUnCi0rICAgICAgZWxzZQotKyAgCXdob2xlX2FyY2hpdmVfZmxhZ19z cGVjX0dDSj0KLSsgICAgZmkKLSsgICAgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPW5vCi0rICAg IGNhc2UgYCRMRCAtdiAyPi9kZXYvbnVsbGAgaW4KLSsgICAgICAqXCBbMDFdLiogfCAqXCAyLlsw LTldLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCi0rICAgICAgKlwg Mi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAu Li4KLSsgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15 ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCi0rICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIu MTEgdmVyc2lvbnMKLSsgICAgICAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0r ICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgR05VIGxkIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4WzMtOV0qKQotKyAgICAgICMgT24g QUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KLSsgICAgICBpZiB0ZXN0ICIk aG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSsJbGRfc2hsaWJzX0dDSj1ubwotKwljYXQgPDxFT0Yg MT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgR05VIGxpbmtlciwgYXQgbGVhc3QgdXAgdG8gcmVs ZWFzZSAyLjkuMSwgaXMgcmVwb3J0ZWQKLSsqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNy ZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KLSsqKiogVGhlcmVmb3JlLCBsaWJ0b29sIGlz IGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJZiB5b3UKLSsqKiogcmVhbGx5 IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0byBtb2RpZnkgeW91ciBQ QVRICi0rKioqIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVz dGFydC4KLSsKLStFT0YKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQot KyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRybSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRlY2hvICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxp YnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGly L2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRw dXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlz aW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxp YiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5 IC0zMiknCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9Jy1MJGxpYmRpcicK LSsgICAgICBoYXJkY29kZV9taW51c19MX0dDSj15ZXMKLSsKLSsgICAgICAjIFNhbXVlbCBBLiBG YWx2byBJSSA8a2M1dGphQGRvbHBoaW4ub3BlbnByb2plY3RzLm5ldD4gcmVwb3J0cwotKyAgICAg ICMgdGhhdCB0aGUgc2VtYW50aWNzIG9mIGR5bmFtaWMgbGlicmFyaWVzIG9uIEFtaWdhT1MsIGF0 IGxlYXN0IHVwCi0rICAgICAgIyB0byB2ZXJzaW9uIDQsIGlzIHRvIHNoYXJlIGRhdGEgYW1vbmcg bXVsdGlwbGUgcHJvZ3JhbXMgbGlua2VkCi0rICAgICAgIyB3aXRoIHRoZSBzYW1lIGR5bmFtaWMg bGlicmFyeS4gIFNpbmNlIHRoaXMgZG9lc24ndCBtYXRjaCB0aGUKLSsgICAgICAjIGJlaGF2aW9y IG9mIHNoYXJlZCBsaWJyYXJpZXMgb24gb3RoZXIgcGxhdGZvcm1zLCB3ZSBjYW4ndCB1c2UKLSsg ICAgICAjIHRoZW0uCi0rICAgICAgbGRfc2hsaWJzX0dDSj1ubwotKyAgICAgIDs7Ci0rCi0rICAg IGJlb3MqKQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRh cmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlhbGxvd191bmRlZmluZWRfZmxhZ19H Q0o9dW5zdXBwb3J0ZWQKLSsJIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5 cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKwkjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRl c2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCWFyY2hpdmVfY21kc19HQ0o9JyRD QyAtbm9zdGFydCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICBlbHNlCi0rCWxkX3NobGlic19HQ0o9bm8KLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsg ICAgICAjIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgR0NKKSBpcyBh Y3R1YWxseSBtZWFuaW5nbGVzcywKLSsgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRo IGZvciBETExzLgotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctTCRsaWJk aXInCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPXVuc3VwcG9ydGVkCi0rICAgICAg YWx3YXlzX2V4cG9ydF9zeW1ib2xzX0dDSj1ubwotKyAgICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXNfR0NKPXllcwotKyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKPSck Tk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUg J1wnJy9eW0JDREdSU11bIF0vcy8uKlsgXVwoW14gXSpcKS9cMSBEQVRBLydcJycgLWUgJ1wnJy9e W0FJVFddWyBdL3MvLipbIF0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycK LSsKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICdhdXRvLWltcG9ydCcgPiAvZGV2 L251bGw7IHRoZW4KLSsgICAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7 d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtl ciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVm IGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNl LCBwcmVwZW5kLi4uCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSdpZiB0ZXN0ICJ4YCRTRUQg MXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkgIGNwICRleHBvcnRfc3lt Ym9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZWxzZQotKwkgIGVjaG8gRVhQT1JU UyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMg Pj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCWZpfgotKwkkQ0MgLXNoYXJlZCAkb3V0 cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg LW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAt WGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAgICBlbHNlCi0rCWxkX3No bGlic19HQ0o9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGludGVyaXhbMy05XSop Ci0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj1ubwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXJfR0NKPW5vCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9 LXJwYXRoLCRsaWJkaXInCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3 bH0tRScKLSsgICAgICAjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQ SUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCi0rICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGli cmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKyAgICAg ICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNs b3cgdmVyeSBtZW1vcnkKLSsgICAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vz cy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCi0rICAgICAgIyAyNTYgS2lCLWFs aWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGlu awotKyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3Mg bW9yZSBzYnJrKDIpIHNwYWNlLgotKyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29u YW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2 MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19H Q0o9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRf b2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQk fSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rICAgICAgOzsK LSsKLSsgICAgZ251KiB8IGxpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICAgICAgaWYgJExEIC0taGVs cCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0 aGVuCi0rCXRtcF9hZGRmbGFnPQotKwljYXNlICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4KLSsJ cGdjYyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgotKwkgIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjX0dDSj0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmll bmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdf Y29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7 d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnJwotKwkg IDs7Ci0rCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91cCBmNzcgYW5k IGY5MCBjb21waWxlcnMKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LS13 aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwi JGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRv bmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScK LSsJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFpbicgOzsKLSsJZWNjKixpYTY0KiB8 IGljYyosaWE2NCopCQkjIEludGVsIEMgY29tcGlsZXIgb24gaWE2NAotKwkgIHRtcF9hZGRmbGFn PScgLWlfZHluYW1pYycgOzsKLSsJZWZjKixpYTY0KiB8IGlmb3J0KixpYTY0KikJIyBJbnRlbCBG b3J0cmFuIGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMgLW5v Zm9yX21haW4nIDs7Ci0rCWlmYyogfCBpZm9ydCopCQkJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVy Ci0rCSAgdG1wX2FkZGZsYWc9JyAtbm9mb3JfbWFpbicgOzsKLSsJZXNhYwotKwljYXNlIGAkQ0Mg LVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkKLSsJICB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5p ZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwi IHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVj aG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRt cF9zaGFyZWRmbGFnPSctRycgOzsKLSsJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMKLSsJ ICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7Ci0rCSopCi0rCSAgdG1wX3NoYXJlZGZsYWc9Jy1zaGFy ZWQnIDs7Ci0rCWVzYWMKLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJENDICciJHRtcF9zaGFyZWRmbGFn IiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsKLSsJaWYgdGVzdCAkc3VwcG9ydHNfYW5vbl92 ZXJzaW9uaW5nID0geWVzOyB0aGVuCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRlY2hv ICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKyAgY2F0ICRleHBv cnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUudmVyfgotKyAgJGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUudmVyfgotKwkgICRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7 d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRs aWInCi0rCWZpCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnNfR0NKPW5vCi0rICAgICAgZmkKLSsg ICAgICA7OwotKwotKyAgICBuZXRic2QqKQotKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAt RSAtIHwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0dDSj0n JExEIC1Cc2hhcmVhYmxlICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW8gJGxpYicK LSsJd2xhcmM9Ci0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgaWYgJExEIC12IDI+JjEgfCBn cmVwICdCRkQgMlwuOCcgPiAvZGV2L251bGw7IHRoZW4KLSsJbGRfc2hsaWJzX0dDSj1ubwotKwlj YXQgPDxFT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiBUaGUgcmVsZWFzZXMgMi44Liogb2YgdGhl IEdOVSBsaW5rZXIgY2Fubm90IHJlbGlhYmx5Ci0rKioqIGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVz IG9uIFNvbGFyaXMgc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAotKyoqKiBpcyBkaXNhYmxp bmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUK LSsqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjkuMSBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9u IGlzIHRvIG1vZGlmeQotKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBz byB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCi0rKioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQu Ci0rCi0rRU9GCi0rICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRl ZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0dDSj0n JENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckQ0MgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxp YicKLSsgICAgICBlbHNlCi0rCWxkX3NobGlic19HQ0o9bm8KLSsgICAgICBmaQotKyAgICAgIDs7 Ci0rCi0rICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVu VU5JWCopCi0rICAgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCi0rICAgICAgICAqXCBbMDFdLiog fCAqXCAyLlswLTldLiogfCAqXCAyLjFbMC01XS4qKQotKwlsZF9zaGxpYnNfR0NKPW5vCi0rCWNh dCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiBSZWxlYXNlcyBvZiB0aGUgR05VIGxp bmtlciBwcmlvciB0byAyLjE2LjkxLjAuMyBjYW4gbm90Ci0rKioqIHJlbGlhYmx5IGNyZWF0ZSBz aGFyZWQgbGlicmFyaWVzIG9uIFNDTyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCi0rKioq IGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1 cGdyYWRlIEdOVQotKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuMTYuOTEuMC4zIG9yIG5ld2Vy LiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Ci0rKioqIHlvdXIgUEFUSCBvciBjb21waWxl ciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKLSsqKiogdXNlZCwg YW5kIHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9GCi0rCTs7Ci0rCSopCi0rCSAgaWYgJExEIC0t aGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxs OyB0aGVuCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nYHRlc3QgLXogIiRT Q09BQlNQQVRIIiAmJiBlY2hvICR7d2x9LXJwYXRoLCRsaWJkaXJgJwotKwkgICAgYXJjaGl2ZV9j bWRzX0dDSj0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAk bGliJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUsXCR7U0NPQUJTUEFUSDorJHtp bnN0YWxsX2xpYmRpcn0vfSRzb25hbWUsLXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1i b2xzIC1vICRsaWInCi0rCSAgZWxzZQotKwkgICAgbGRfc2hsaWJzX0dDSj1ubwotKwkgIGZpCi0r CTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgYXJj aGl2ZV9jbWRzX0dDSj0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc2hhcmVhYmxlIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICB3bGFyYz0KLSsgICAgICBo YXJkY29kZV9kaXJlY3RfR0NKPXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NK PW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBn cmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJYXJj aGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2Nt ZHNfR0NKPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0 X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICBlbHNlCi0rCWxkX3NobGlic19HQ0o9bm8KLSsgICAg ICBmaQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgaWYgdGVzdCAiJGxkX3NobGlic19H Q0oiID0gbm87IHRoZW4KLSsgICAgICBydW5wYXRoX3Zhcj0KLSsgICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0dDSj0KLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKPQot KyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0KLSsgICAgZmkKLSsgIGVsc2UKLSsg ICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2Vy IChub3QgR05VIGxkKQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFpeDMqKQotKyAgICAg IGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj11bnN1cHBvcnRlZAotKyAgICAgIGFsd2F5c19leHBv cnRfc3ltYm9sc19HQ0o9eWVzCi0rICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRMRCAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mg LWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxBR1MgJGxp YiAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKyAgICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFy ZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCi0rICAgICAgIyBhcmUg bm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgotKyAgICAgIGhhcmRjb2RlX21pbnVzX0xf R0NKPXllcwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgLXogIiRsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KLSsJIyBOZWl0aGVyIGRpcmVjdCBoYXJkY29kaW5nIG5v ciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCi0rCSMgYnJva2VuIGNvbGxlY3Qy LgotKwloYXJkY29kZV9kaXJlY3RfR0NKPXVuc3VwcG9ydGVkCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICBhaXhbNC05XSopCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7 IHRoZW4KLSsJIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBk ZWZhdWx0LCBzbyB3ZSBkb24ndAotKwkjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSsJ YWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwlleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JwotKwlu b19lbnRyeV9mbGFnPSIiCi0rICAgICAgZWxzZQotKwkjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwg dGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KLSsJIyAtQyBtZWFucyBkZW1hbmds ZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQotKwlpZiAk Tk0gLVYgMj4mMSB8IGdyZXAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KLSsJICBleHBvcnRfc3lt Ym9sc19jbWRzX0dDSj0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7 IGlmICgoKFwkMiA9PSAiVCIpIHx8IChcJDIgPT0gIkQiKSB8fCAoXCQyID09ICJCIikpICYmIChz dWJzdHIoXCQzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAk ZXhwb3J0X3N5bWJvbHMnCi0rCWVsc2UKLSsJICBleHBvcnRfc3ltYm9sc19jbWRzX0dDSj0nJE5N IC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJDIgPT0gIlQi KSB8fCAoXCQyID09ICJEIikgfHwgKFwkMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkMywxLDEpICE9 ICIuIikpIHsgcHJpbnQgXCQzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwot KwlmaQotKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCi0rCSMgVGVzdCBpZiB3ZSBhcmUg dHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAotKwkjIEFJWCBzdHlsZSBs aW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKLSsJIyBuZWVkIHRv IGRvIHJ1bnRpbWUgbGlua2luZy4KLSsJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5b MjNdLip8YWl4WzUtOV0qKQotKwkgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbwotKyAgCSAg aWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRs Iik7IHRoZW4KLSsgIAkgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKLSsgIAkgICAgYnJl YWsKLSsgIAkgIGZpCi0rCSAgZG9uZQotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJZXhwX3N5bV9mbGFn PSctYmV4cG9ydCcKLSsJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JwotKyAgICAgIGZpCi0rCi0r ICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWls dCwgQUlYIGxkIGNhbgotKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUg b2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQotKyAgICAgICMgb3IgcHJvZ3JhbSBy ZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCi0rICAg ICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhh dCBpcyBub3QKLSsgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJi aWd0b2MgdG8gTERGTEFHUy4KLSsKLSsgICAgICBhcmNoaXZlX2NtZHNfR0NKPScnCi0rICAgICAg aGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0dDSj0nOicKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzX0dDSj15ZXMKLSsKLSsgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwljYXNlICRob3N0X29zIGluIGFpeDQuWzAxMl18YWl4 NC5bMDEyXS4qKQotKwkjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxv d2VyLCB0aGUgY2hlY2sKLSsJIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29y ayB1bmRlciA0LjMrCi0rCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNv bGxlY3QyYAotKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmIFwKLSsgIAkgICBzdHJp bmdzICIkY29sbGVjdDJuYW1lIiB8IGdyZXAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCi0r CSAgdGhlbgotKyAgCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCi0rICAJICA6Ci0rCSAg ZWxzZQotKyAgCSAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgotKyAgCSAgaGFyZGNvZGVfZGlyZWN0 X0dDSj11bnN1cHBvcnRlZAotKyAgCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxp YnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAotKyAgCSAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQg aW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKLSsgIAkgICMgdG8gdW5z dXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwotKyAgCSAgaGFyZGNvZGVfbWludXNfTF9HQ0o9eWVz Ci0rICAJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwkbGliZGlyJwotKyAgCSAg aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9Ci0rCSAgZmkKLSsJICA7OwotKwllc2FjCi0r CXNoYXJlZF9mbGFnPSctc2hhcmVkJwotKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2lu ZyIgPSB5ZXM7IHRoZW4KLSsJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycK LSsJZmkKLSsgICAgICBlbHNlCi0rCSMgbm90IHVzaW5nIGdjYwotKwlpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgotKyAgCSMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJ WCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCi0rICAJIyBjaG9rZXMgb24gLVdsLC1HLiBU aGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKLSsJICBzaGFyZWRfZmxhZz0nLUcnCi0rCWVs c2UKLSsJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJ ICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJwotKwkgIGVsc2UKLSsJICAgIHNoYXJlZF9mbGFnPSck e3dsfS1iTTpTUkUnCi0rCSAgZmkKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAgICMgSXQgc2Vl bXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAot KyAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxp c3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCi0rICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0dD Sj15ZXMKLSsgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRo ZW4KLSsJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5n IGZsYWdzICgtYnJ0bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQg bWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NK PSctYmVyb2snCi0rICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0 aGUgdmFsdWUgZW5jb2RlZCBpbiBhbiBlbXB0eSBleGVjdXRhYmxlLgotKyAgICAgICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7 Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNf ZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNf dGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xp YnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsK LSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xp YnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAt ZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlm IHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRo ZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYv bnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vz ci9saWI6L2xpYiI7IGZpCi0rCi0rICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NK PScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwlhcmNoaXZlX2V4cHN5 bV9jbWRzX0dDSj0iXCRDQyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRl cGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAi eCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gZWNobyAiJHt3bH0ke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4 cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKLSsgICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSck e3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKLSsJICBhbGxvd191bmRlZmluZWRfZmxhZ19H Q0o9Ii16IG5vZGVmcyIKLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0iXCRDQyAkc2hhcmVk X2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7 d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKLSsJZWxzZQot KwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVk IGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l eGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAo ZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3Qg IiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0lt cG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkk L1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRl c3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3Nl ZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRo aW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBk dW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRs dF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAot KyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAi JGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0r CSBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjon IiRhaXhfbGlicGF0aCIKLSsJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBy dW4gdGltZSBsb2FkaW5nIGZsYWdzLAotKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVy cm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJICBub191bmRlZmluZWRf ZmxhZ19HQ0o9JyAke3dsfS1iZXJub3RvaycKLSsJICBhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9 JyAke3dsfS1iZXJvaycKLSsJICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRv IHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y19HQ0o9JyRjb252ZW5pZW5jZScKLSsJICBhcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0o9eWVzCi0r CSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMg c2hhcmVkIGxpYnJhcmllcy4KLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0iXCRDQyAkc2hh cmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7 d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2Fs bG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l JHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlmaQotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJHJtICRv dXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTkFNRSAkbGlibmFt ZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIExJQlJB UllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmlu ZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNo byAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJy YXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91 dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsgICAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0dDSj0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfR0NKPXll cwotKyAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgZGlmZmVyZW50IHNlbWFudGljcyBvbiB0aGUg R05VIGxkIHNlY3Rpb24KLSsgICAgICBsZF9zaGxpYnNfR0NKPW5vCi0rICAgICAgOzsKLSsKLSsg ICAgYnNkaVs0NV0qKQotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HQ0o9LXJkeW5h bWljCi0rICAgICAgOzsKLSsKLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgICAg ICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVz aW5nCi0rICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsgICAgICAjIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCi0rICAg ICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0dDSj0nICcKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9dW5zdXBwb3J0 ZWQKLSsgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVz LgotKyAgICAgIGxpYmV4dD1saWIKLSsgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBm aWxlcywgbm90IC5zbyBmaWxlcy4KLSsgICAgICBzaHJleHRfY21kcz0iLmRsbCIKLSsgICAgICAj IEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCi0rICAgICAgYXJj aGl2ZV9jbWRzX0dDSj0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzIGBlY2hv ICIkZGVwbGlicyIgfCAkU0VEIC1lICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxsfmxpbmtu YW1lcz0nCi0rICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5s aWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KLSsgICAgICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19j bWRzX0dDSj0ndHJ1ZScKLSsgICAgICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2VyIHNwZWNp ZnkgdGhlIGxpYiBwcm9ncmFtLgotKyAgICAgIG9sZF9hcmNoaXZlX2NtZHNfR0NKPSdsaWIgLU9V VDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCi0rICAgICAgZml4X3NyY2ZpbGVfcGF0aF9H Q0o9J2BjeWdwYXRoIC13ICIkc3JjZmlsZSJgJwotKyAgICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXNfR0NKPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFw c29keSopCi0rICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgICAgcmhhcHNvZHkqIHwgZGFy d2luMS5bMDEyXSkKLSsgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9JyR7d2x9LXVu ZGVmaW5lZCAke3dsfXN1cHByZXNzJwotKyAgICAgICAgIDs7Ci0rICAgICAgICopICMgRGFyd2lu IDEuMyBvbgotKyAgICAgICAgIGlmIHRlc3QgLXogJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9 IDsgdGhlbgotKyAgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPScke3dsfS1mbGF0 X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycKLSsgICAgICAgICBlbHNl Ci0rICAgICAgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfSBpbgotKyAgICAg ICAgICAgICAxMC5bMDEyXSkKLSsgICAgICAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19H Q0o9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJwot KyAgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICAgIDEwLiopCi0rICAgICAgICAgICAgICAg YWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xv b2t1cCcKLSsgICAgICAgICAgICAgICA7OwotKyAgICAgICAgICAgZXNhYwotKyAgICAgICAgIGZp Ci0rICAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNf R0NKPW5vCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj1ubwotKyAgICAgIGhhcmRjb2RlX2F1 dG9tYXRpY19HQ0o9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9dW5zdXBw b3J0ZWQKLSsgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9JycKLSsgICAgICBsaW5r X2FsbF9kZXBsaWJzX0dDSj15ZXMKLSsgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgOyB0aGVuCi0r ICAgIAlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKLSsgICAgICAgIGFyY2hpdmVfY21k c19HQ0o9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBc JGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRo L1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0i Ci0rICAgICAgICBtb2R1bGVfY21kc19HQ0o9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAt byBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0 X2RzeW11dGlsfSIKLSsgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSJzZWQgJ3MsXixf LCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxp YiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJw YXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9l eHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAgICAgICBtb2R1bGVfZXhwc3ltX2NtZHNf R0NKPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGly L1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAt byBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0 X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAgIGVsc2UKLSsgICAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgeGxjKikKLSsgICAgICAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0nZWNobycKLSsgICAgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXFta3No cm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9YGVjaG8gJHJwYXRoLyRzb25hbWVg ICR4bGN2ZXJzdHJpbmcnCi0rICAgICAgICAgbW9kdWxlX2NtZHNfR0NKPSckQ0MgJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vICRsaWIgLWJ1bmRsZSAkbGlib2JqcyAkZGVwbGlicyRjb21waWxlcl9m bGFncycKLSsgICAgICAgICAgIyBEb24ndCBmaXggdGhpcyBieSB1c2luZyB0aGUgbGQgLWV4cG9y dGVkX3N5bWJvbHNfbGlzdCBmbGFnLCBpdCBkb2Vzbid0IGV4aXN0IGluIG9sZGVyIGRhcndpbiBs ZHMKLSsgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nc2VkIC1lICJzLCMuKiwsIiAt ZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4cG9ydF9zeW1ib2xzID4g JG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4kQ0MgLXFta3Nocm9iaiAk YWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9JHJwYXRoLyRzb25hbWUgJHhsY3ZlcnN0cmlu Z35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xp Yn0nCi0rICAgICAgICAgIG1vZHVsZV9leHBzeW1fY21kc19HQ0o9J3NlZCAtZSAicywjLiosLCIg LWUgInMsXlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDICRhbGxvd191bmRl ZmluZWRfZmxhZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVyX2Zs YWdzfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7 bGlifScKLSsgICAgICAgICAgOzsKLSsgICAgICAgKikKLSsgICAgICAgICBsZF9zaGxpYnNfR0NK PW5vCi0rICAgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgICAgIDs7Ci0rCi0r ICAgIGRndXgqKQotKyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRMRCAtRyAtaCAkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXJfR0NKPW5vCi0rICAgICAgOzsKLSsKLSsgICAgZnJlZWJzZDEqKQotKyAgICAgIGxkX3No bGlic19HQ0o9bm8KLSsgICAgICA7OwotKwotKyAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93 cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IKLSsgICAgIyBz dXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4 cGxpY2l0IGMrK3J0MC5vCi0rICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxw cyBzaWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQotKyAgICAjIGV4dHJhIHNw YWNlKS4KLSsgICAgZnJlZWJzZDIuMiopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1C c2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xp Yi9jKytydDAubycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLVIkbGli ZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9HQ0o9bm8KLSsgICAgICA7OwotKwotKyAgICAjIFVuZm9ydHVuYXRlbHksIG9s ZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUuCi0rICAg IGZyZWVic2QyKikKLSsgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUJzaGFyZWFibGUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhhcmRjb2RlX2Rp cmVjdF9HQ0o9eWVzCi0rICAgICAgaGFyZGNvZGVfbWludXNfTF9HQ0o9eWVzCi0rICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KLSsgICAgICA7OwotKwotKyAgICAjIEZyZWVCU0Qg MyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCi0r ICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckQ0Mg LXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRj b2RlX2RpcmVjdF9HQ0o9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8K LSsgICAgICA7OwotKwotKyAgICBocHV4OSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JEND IC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxp YicKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kc19HQ0o9JyRybSAkb3V0cHV0X29iamRpci8k c29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNv bmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgIGZp Ci0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9K2IgJHt3bH0kbGli ZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfR0NKPToKLSsgICAgICBoYXJk Y29kZV9kaXJlY3RfR0NKPXllcwotKwotKyAgICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJl YWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9j YXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rICAgICAgaGFyZGNvZGVfbWludXNfTF9HQ0o9eWVzCi0r ICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3bH0tRScKLSsgICAgICA7Owot KwotKyAgICBocHV4MTAqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9n bnVfbGQiID0gbm87IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgLWZQSUMg JHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCWFyY2hp dmVfY21kc19HQ0o9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICBpZiB0 ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19HQ0o9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0dDSj06Ci0rCi0rCWhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCi0rCWV4cG9ydF9keW5hbWljX2Zs YWdfc3BlY19HQ0o9JyR7d2x9LUUnCi0rCi0rCSMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxs eSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCSMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9m IHRoZSBsaWJyYXJ5LgotKwloYXJkY29kZV9taW51c19MX0dDSj15ZXMKLSsgICAgICBmaQotKyAg ICAgIDs7Ci0rCi0rICAgIGhwdXgxMSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEg IiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0 KikKLSsJICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwlp YTY0KikKLSsJICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNv bmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hh cmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJk aXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJ ZXNhYwotKyAgICAgIGVsc2UKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAg YXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQotKwkgIGFy Y2hpdmVfY21kc19HQ0o9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1 bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7 OwotKwkqKQotKwkgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFt ZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0dDSj0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Jf R0NKPToKLSsKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCp8aWE2NCopCi0rCSAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9HQ0o9JytiICRsaWJkaXInCi0rCSAgaGFyZGNvZGVf ZGlyZWN0X0dDSj1ubwotKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCi0rCSAgOzsK LSsJKikKLSsJICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcwotKwkgIGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlY19HQ0o9JyR7d2x9LUUnCi0rCi0rCSAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVh bGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlv biBvZiB0aGUgbGlicmFyeS4KLSsJICBoYXJkY29kZV9taW51c19MX0dDSj15ZXMKLSsJICA7Owot Kwllc2FjCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBpcml4NSogfCBpcml4NiogfCBu b25zdG9wdXgqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVf Y21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7 d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7 d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsgICAgICBlbHNlCi0r CWFyY2hpdmVfY21kc19HQ0o9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRf dmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWInCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfR0NKPSct cnBhdGggJGxpYmRpcicKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfR0NKPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcl9HQ0o9OgotKyAgICAgIGxpbmtfYWxsX2RlcGxpYnNfR0NKPXllcwotKyAgICAg IDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0g fCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHNfR0NKPSckTEQg LUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgIyBh Lm91dAotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1zaGFyZWQgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCi0rICAgICAgZmkK LSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLVIkbGliZGlyJwotKyAgICAg IGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9H Q0o9bm8KLSsgICAgICA7OwotKwotKyAgICBuZXdzb3M2KQotKyAgICAgIGFyY2hpdmVfY21kc19H Q0o9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcwotKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9OgotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXJfR0NKPW5vCi0rICAgICAgOzsKLSsKLSsgICAgb3BlbmJzZCopCi0rICAgICAgaWYgdGVzdCAt ZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KLSsJaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKLSsJ aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KLSsJaWYgdGVzdCAteiAiYGVjaG8gX19FTEZf XyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1 IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rCSAgYXJjaGl2ZV9jbWRzX0dDSj0nJEND IC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJwotKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5 bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMnCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19HQ0o9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj X0dDSj0nJHt3bH0tRScKLSsJZWxzZQotKwkgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJICAgb3BlbmJz ZFswMV0uKiB8IG9wZW5ic2QyLlswLTddIHwgb3BlbmJzZDIuWzAtN10uKikKLSsJICAgICBhcmNo aXZlX2NtZHNfR0NKPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctUiRs aWJkaXInCi0rCSAgICAgOzsKLSsJICAgKikKLSsJICAgICBhcmNoaXZlX2NtZHNfR0NKPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LXJwYXRoLCRs aWJkaXInCi0rCSAgICAgOzsKLSsJICBlc2FjCi0rICAgICAgICBmaQotKyAgICAgIGVsc2UKLSsJ bGRfc2hsaWJzX0dDSj1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgb3MyKikKLSsg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwkbGliZGlyJwotKyAgICAgIGhh cmRjb2RlX21pbnVzX0xfR0NKPXllcwotKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj11 bnN1cHBvcnRlZAotKyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRlY2hvICJMSUJSQVJZICRsaWJu YW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gIkRF U0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRl Y2hvIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvICIgU0lOR0xFIE5P TlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvIEVYUE9SVFMgPj4g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29i amRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAg ICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzX0dDSj0nZW14aW1wIC1vICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwotKyAgICAgIDs7Ci0rCi0r ICAgIG9zZjMqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFsbG93X3Vu ZGVmaW5lZF9mbGFnX0dDSj0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCWFy Y2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3Ry aW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0 aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPScg LWV4cGVjdF91bnJlc29sdmVkIFwqJwotKwlhcmNoaXZlX2NtZHNfR0NKPSckTEQgLXNoYXJlZCR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLXNv bmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAk dmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dD Sj0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3JfR0NKPToKLSsgICAgICA7OwotKwotKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMq IHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9 IHllczsgdGhlbgotKwlhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9JyAke3dsfS1leHBlY3RfdW5y ZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCR7YWxsb3df dW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1t c3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVj aG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0 cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwloYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAg IGVsc2UKLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPScgLWV4cGVjdF91bnJlc29sdmVkIFwq JwotKwlhcmNoaXZlX2NtZHNfR0NKPSckTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCWFy Y2hpdmVfZXhwc3ltX2NtZHNfR0NKPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRv IHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRv bmU7IGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+Ci0rCSRMRCAtc2hhcmVkJHthbGxvd191bmRl ZmluZWRfZmxhZ30gLWlucHV0ICRsaWIuZXhwICRsaW5rZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxp YnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVy c2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9j YXRpb25zIC1vICRsaWJ+JHJtICRsaWIuZXhwJwotKwotKwkjIEJvdGggYyBhbmQgY3h4IGNvbXBp bGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5Ci0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf R0NKPSctcnBhdGggJGxpYmRpcicKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3JfR0NKPToKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlzKikKLSsgICAgICBub191 bmRlZmluZWRfZmxhZ19HQ0o9JyAteiB0ZXh0JwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rCXdsYXJjPScke3dsfScKLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQg JHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckZWNobyAieyBnbG9iYWw6IiA+ICRs aWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAk bGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkQ0MgLXNoYXJl ZCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJwotKyAgICAgIGVsc2UK LSsJd2xhcmM9JycKLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1HJHthbGxvd191bmRlZmluZWRf ZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn Ci0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhw fmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4 cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsgIAkkTEQgLUcke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFnc34kcm0gJGxpYi5leHAnCi0rICAgICAgZmkKLSsgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX3No bGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIHNvbGFy aXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKLSsgICAgICAqKQotKwkjIFRoZSBjb21w aWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAotKwkj IGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhv dXQgYCR3bCcsCi0rCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgotKyAJ IyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKLSsJaWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9JyR7d2x9 LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFj dCcKLSsJZWxzZQotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0nLXogYWxsZXh0cmFj dCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJZmkKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgbGlua19hbGxfZGVwbGlic19HQ0o9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgc3Vu b3M0KikKLSsgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCi0r CSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNv bWUgZXh0cmEgLm8KLSsJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25z IHdvcmsuCi0rCWFyY2hpdmVfY21kc19HQ0o9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNo aXZlX2NtZHNfR0NKPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19HQ0o9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9kaXJlY3Rf R0NKPXllcwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfR0NKPXllcwotKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQpCi0rICAgICAg Y2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsJc25pKQotKwkgIGFyY2hpdmVfY21kc19HQ0o9JyRMRCAt RyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJ ICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KLSsJOzsK LSsJc2llbWVucykKLSsJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIKLSsJICAjIyBD QyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCi0rCSAgYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1H IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICByZWxvYWRfY21k c19HQ0o9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotKwkgIGhhcmRjb2RlX2RpcmVj dF9HQ0o9bm8KLSsgICAgICAgIDs7Ci0rCW1vdG9yb2xhKQotKwkgIGFyY2hpdmVfY21kc19HQ0o9 JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKLSsJICBoYXJkY29kZV9kaXJlY3RfR0NKPW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMs IGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgcnVu cGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NK PW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQuMyopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0dD Sj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nLUJleHBvcnQnCi0rICAgICAgOzsKLSsKLSsgICAgc3lz djQqTVAqKQotKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRz X0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJwotKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubwotKwlydW5wYXRoX3Zhcj1M RF9SVU5fUEFUSAotKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKLSsJbGRfc2hsaWJzX0dDSj15 ZXMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5V TklYKiB8IHN5c3Y1VW5peFdhcmU3LlswMV0uWzEwXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUu MC5bMDI0XSopCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfR0NKPScke3dsfS16LHRleHQnCi0r ICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKPW5vCi0rICAgICAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcl9HQ0o9bm8KLSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1z aGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJHt3bH0tQmV4 cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzX0dDSj0n JENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRDQyAtRyAke3dsfS1CZXhwb3J0 OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NSog fCBzY28zLjJ2NSogfCBzY281djYqKQotKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXog ZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rICAgICAgIyBsaW5r IHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGli YyB0bwotKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJv dXQgbm8gbGlicmFyeSB3b3VsZAotKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdl J3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsgICAgICAjIHRob3VnaCwgd2hp Y2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQK LSsgICAgICAjIGFzIC16IGRlZnMuCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfR0NKPScke3ds fS16LHRleHQnCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPScke3dsfS16LG5vZGVm cycKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0o9bm8KLSsgICAgICBoYXJkY29kZV9z aGxpYnBhdGhfdmFyX0dDSj1ubwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NK PSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tUiwkbGliZGlyYCcKLSsgICAg ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSj0nOicKLSsgICAgICBsaW5rX2FsbF9kZXBs aWJzX0dDSj15ZXMKLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKPScke3dsfS1C ZXhwb3J0JwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAk e3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRz X0dDSj0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCxc JHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kc19H Q0o9JyRDQyAtRyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZl X2V4cHN5bV9jbWRzX0dDSj0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7 d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7Owot KwotKyAgICB1dHM0KikKLSsgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUcgLWggJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9zaGxp YnBhdGhfdmFyX0dDSj1ubwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAgbGRfc2hsaWJz X0dDSj1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19HQ0oiID4mNQotKyRhc19lY2hvICIkbGRf c2hsaWJzX0dDSiIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlic19HQ0oiID0gbm8gJiYgY2FuX2J1 aWxkX3NoYXJlZD1ubwotKwotKyMKLSsjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxp YmM/Ci0rIwotK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKIiBpbgotK3h8eHllcykK LSsgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKLSsgIGFyY2hpdmVfY21kc19uZWVkX2xj X0dDSj15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRhcmNoaXZlX2NtZHNfR0NKIGluCi0rICAgICon ficqKQotKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21t YW5kIHNlcXVlbmNlcy4KLSsgICAgICA7OwotKyAgICAnJENDICcqKQotKyAgICAgICMgVGVzdCB3 aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNv bWUKLSsgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdj YyBhbHJlYWR5IHBhc3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9y ZSAtbGdjYy4KLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4g IiA+JjY7IH0KLSsgICAgICAkcm0gY29uZnRlc3QqCi0rICAgICAgZWNobyAiJGx0X3NpbXBsZV9j b21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAgICAgaWYgeyAoZXZh bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZhbCAk YWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gMj5j b25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIHNvbmFtZT1jb25mdGVzdAotKyAgICAgICAgbGli PWNvbmZ0ZXN0Ci0rICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKLSsgICAgICAg IGRlcGxpYnM9Ci0rICAgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bF9HQ0oKLSsJcGljX2Zs YWc9JGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSgotKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYK LSsgICAgICAgIGxpbmtlcl9mbGFncz0tdgotKyAgICAgICAgdmVyc3RyaW5nPQotKyAgICAgICAg b3V0cHV0X29iamRpcj0uCi0rICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0Ci0rICAgICAgICBsdF9z YXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZ19HQ0oKLSsgICAg ICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0KLSsgICAgICAgIGlmIHsgKGV2YWwgZWNobyAi JGFzX21lOiRMSU5FTk86IFwiJGFyY2hpdmVfY21kc19HQ0ogMlw+XCYxIFx8IGdyZXAgXCIgLWxj IFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1Ci0rICAoZXZhbCAkYXJjaGl2ZV9jbWRzX0dD SiAyXD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKSAyPiY1Ci0rICBh Y19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKyAgICAgICAgdGhlbgotKwkgIGFyY2hp dmVfY21kc19uZWVkX2xjX0dDSj1ubwotKyAgICAgICAgZWxzZQotKwkgIGFyY2hpdmVfY21kc19u ZWVkX2xjX0dDSj15ZXMKLSsgICAgICAgIGZpCi0rICAgICAgICBhbGxvd191bmRlZmluZWRfZmxh Z19HQ0o9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAgICBlbHNlCi0rICAgICAg ICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICBmaQotKyAgICAgICRybSBjb25mdGVzdCoK LSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXJjaGl2ZV9jbWRz X25lZWRfbGNfR0NKIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVfY21kc19uZWVkX2xjX0dDSiIg PiY2OyB9Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0 ZXJpc3RpY3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJh Y3RlcmlzdGljcy4uLiAiID4mNjsgfQotK2xpYnJhcnlfbmFtZXNfc3BlYz0KLStsaWJuYW1lX3Nw ZWM9J2xpYiRuYW1lJwotK3NvbmFtZV9zcGVjPQotK3NocmV4dF9jbWRzPSIuc28iCi0rcG9zdGlu c3RhbGxfY21kcz0KLStwb3N0dW5pbnN0YWxsX2NtZHM9Ci0rZmluaXNoX2NtZHM9Ci0rZmluaXNo X2V2YWw9Ci0rc2hsaWJwYXRoX3Zhcj0KLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5r bm93bgotK3ZlcnNpb25fdHlwZT1ub25lCi0rZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNv IgotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgotKwotK25lZWRf bGliX3ByZWZpeD11bmtub3duCi0raGFyZGNvZGVfaW50b19saWJzPW5vCi0rCi0rIyB3aGVuIHlv dSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNl dF92ZXJzaW9uCi0rIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCi0rbmVlZF92 ZXJzaW9uPXVua25vd24KLSsKLStjYXNlICRob3N0X29zIGluCi0rYWl4MyopCi0rICB2ZXJzaW9u X3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJwotKyAgc2hsaWJwYXRoX3Zhcj1MSUJQ QVRICi0rCi0rICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVu ZCBhIG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgOzsKLSsKLSthaXhbNC05XSopCi0r ICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJz aW9uPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0ICIkaG9zdF9jcHUi ID0gaWE2NDsgdGhlbgotKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBlbHNlCi0rICAgICMg V2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZp bGUKLSsgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291 bGQgc3RhcnQgd2l0aAotKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2Ug dGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCi0rICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFu IGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCi0rICAgICMgZGV2ZWxvcG1lbnQg c25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg ICAgICBhaXg0IHwgYWl4NC5bMDFdIHwgYWl4NC5bMDFdLiopCi0rICAgICAgaWYgeyBlY2hvICcj aWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDk3 KScKLSsJICAgZWNobyAnIHllcyAnCi0rCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAt IHwgZ3JlcCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KLSsJOgotKyAgICAgIGVsc2UKLSsJY2FuX2J1 aWxkX3NoYXJlZD1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICAjIEFJ WCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2Ug Y2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0Ci0rICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4g UHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KLSsgICAgIyBjb2xsZWN0 Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KLSsgICAgaWYg dGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rICAgICAgIyBJZiB1 c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+ LnNvCi0rICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0 aGF0IHRoZXNlIGFyZSBub3QKLSsgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMu Ci0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIGVsc2UKLSsgICAgICAjIFdlIHByZXNlcnZlIC5h IGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgotKyAgICAg ICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgotKyAg ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5h JwotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICAgIGZpCi0rICAgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAgZmkKLSsgIDs7 Ci0rCi0rYW1pZ2FvcyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFy eSAkbGlibmFtZS5hJwotKyAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVz IGluIC9zeXMvbGlicy4KLSsgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyou aXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJGVjaG8gIlgkbGliIiB8ICRYc2Vk IC1lICdcJydzJV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJHJtIC9z eXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRM Tl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAk bGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJwotKyAgOzsKLSsKLSti ZW9zKikKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0r ICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rICBzaGxpYnBhdGhfdmFyPUxJQlJB UllfUEFUSAotKyAgOzsKLSsKLStic2RpWzQ1XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BBVEg9 IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAv dXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGliIgotKyAgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIK LSsgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9s aWIgYW5kCi0rICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9Y MTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKLSsgICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2Ug aW50byBwcm9ncmFtcwotKyAgOzsKLSsKLStjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCi0rICB2 ZXJzaW9uX3R5cGU9d2luZG93cwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBuZWVkX3ZlcnNp b249bm8KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKwotKyAgY2FzZSAkR0NDLCRob3N0X29zIGlu Ci0rICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiopCi0rICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCi0rICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAk KGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKLSsgICAgcG9zdGluc3RhbGxfY21k cz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+Ci0rICAgICAgZGxwYXRoPWAkU0hFTEwg Mj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7ZWNobyBcJGRsbmFtZSdc JydgfgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0 ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9n ICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIv JGRsbmFtZScKLSsgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMg J1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbHBhdGg9JGRpci9cJGRs ZGxsfgotKyAgICAgICAkcm0gXCRkbHBhdGgnCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBjeWd3aW4qKQotKyAgICAg ICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwotKyAgICAg IHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydgYGVj aG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRf ZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIC9saWIvdzMy YXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAgICAgOzsKLSsgICAgbWluZ3cqKQotKyAgICAg ICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4Ci0rICAgICAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ak e3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUg InMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSsgICAgICBpZiBlY2hvICIkc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjIiB8IGdyZXAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsOyB0aGVu Ci0rICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHBy aW50ZWQgYnkKLSsgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3ln d2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKLSsgICAgICAgICMgcGF0aCB3aXRoIDsgc2VwYXJh dG9ycywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRsZSB0aGUKLSsgICAgICAg ICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28g bGVhdmUgdGhlbSwKLSsgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVz IGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKLSsgICAgICAgICMgd2hpY2ggd291bGRu J3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KLSsgICAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VE IC1lICdzLzsvIC9nJ2AKLSsgICAgICBlbHNlCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9YGVjaG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBB VEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBwdzMyKikKLSsg ICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9w dy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7 c2hhcmVkX2V4dH0nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKwotKyAgKikKLSsg ICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQg LWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0r ICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwotKyAgIyBG SVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVj dXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8 IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lv bl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8K LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3ZlcnN1ZmZpeH0k c2hhcmVkX2V4dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJu YW1lfSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtt YWpvcn0kc2hhcmVkX2V4dCcKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsg IHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKLSsgIHNocmV4dF9jbWRzPSdgdGVzdCAu JG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJwotKwotKyAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCi0rICA7 OwotKwotK2RndXgqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotK2ZyZWVic2QxKikKLSsgIGR5bmFtaWNfbGlua2Vy PW5vCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICMgRHJhZ29uRmx5IGRv ZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKLSsgICMgdmVy c2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgotKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9v Ympmb3JtYXQ7IHRoZW4KLSsgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCi0rICBl bHNlCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgZnJlZWJzZFsxMjNdKikgb2JqZm9ybWF0 PWFvdXQgOzsKLSsgICAgKikgb2JqZm9ybWF0PWVsZiA7OwotKyAgICBlc2FjCi0rICBmaQotKyAg dmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAotKyAgY2FzZSAkdmVyc2lvbl90eXBlIGlu Ci0rICAgIGZyZWVic2QtZWxmKikKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgICBuZWVkX3ZlcnNpb249 bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7OwotKyAgICBmcmVlYnNkLSop Ci0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgICAg bmVlZF92ZXJzaW9uPXllcwotKyAgICAgIDs7Ci0rICBlc2FjCi0rICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgZnJlZWJzZDIqKQotKyAgICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMDFd KiB8IGZyZWVic2RlbGYzLlswMV0qKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGZyZWVic2QzLlsy LTldKiB8IGZyZWVic2RlbGYzLlsyLTldKiB8IFwKLSsgIGZyZWVic2Q0LlswLTVdIHwgZnJlZWJz ZGVsZjQuWzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCi0rICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0r ICAgIDs7Ci0rICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5Ci0rICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAg ICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStnbnUqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9l eHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCi0rICA7OwotKwotK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQotKyAgIyBH aXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBk bGQuc2wgcmVmdXNlcyB0bwotKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCi0rICB2 ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9u PW5vCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgaWE2NCopCi0rICAgIHNocmV4dF9jbWRzPScu c28nCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgZHluYW1pY19saW5rZXI9IiRo b3N0X29zIGRsZC5zbyIKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgICAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3Bl Y2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRf TU9ERSIgPSBYMzI7IHRoZW4KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Iv bGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCi0rICAgIGVs c2UKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNy L2xvY2FsL2xpYi9ocHV4NjQiCi0rICAgIGZpCi0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAgOzsKLSsgICBocHBhKjY0KikKLSsg ICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAg ICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICi0rICAgICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVj aWZpZWQuCi0rICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCi0rICAgICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgICA7 OwotKyAgICopCi0rICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgIGR5bmFtaWNfbGlua2VyPSIk aG9zdF9vcyBkbGQuc2wiCi0rICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAotKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hM SUJfUEFUSAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgOzsKLSsgIGVzYWMKLSsgICMgSFAt VVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUg NTU1LgotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCi0rICA7OwotKwotK2lu dGVyaXhbMy05XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1u bwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGR5bmFtaWNfbGlu a2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAg aGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25z dG9wdXgqKQotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5 cGU9bm9uc3RvcHV4IDs7Ci0rICAgICopCi0rCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIg PSB5ZXM7IHRoZW4KLSsJCXZlcnNpb25fdHlwZT1saW51eAotKwllbHNlCi0rCQl2ZXJzaW9uX3R5 cGU9aXJpeAotKwlmaSA7OwotKyAgZXNhYwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVk X3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICBjYXNlICRob3N0X29zIGluCi0rICBpcml4NSogfCBub25zdG9wdXgqKQotKyAg ICBsaWJzdWZmPSBzaGxpYnN1ZmY9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBjYXNlICRMRCBpbiAj IGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECi0rICAgICot MzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCi0rICAgICAgbGlic3Vm Zj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7OwotKyAgICAqLW4zMnwqIi1uMzIgInwqLW1l bGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQotKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJz dWZmPU4zMiBsaWJtYWdpYz1OMzI7OwotKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoi LW1lbGY2NGJtaXAgIikKLSsgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02 NC1iaXQ7OwotKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNo OzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZJHtzaGxpYnN1ZmZ9X1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwot KyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGli c3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKLSsgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4 IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgotK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGlu dXgqY29mZiopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLSsjIFRoaXMgbXVzdCBi ZSBMaW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdudSkKLSsgIHZlcnNpb25fdHlwZT1saW51 eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRs aWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdo aWNoIGlzIHVuYWNjZXB0YWJsZS4KLSsgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8g YWxsb3cgZm9yIGZhc3RfaW5zdGFsbAotKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4K LSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZm fSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xp YiR7bGlic3VmZn0iCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBz ZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgbHRf bGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0 ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBc JDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15b IAldKmh3Y2FwWyAJXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9e JC9kJyB8IHRyICdcbicgJyAnYAotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKLSsgIGZpCi0rCi0rICAjIFdl IHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJp ZXMgb24KLSsgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJl ZCBsaWJyYXJpZXMgd2l0aCB0aGUKLSsgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhp cyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAotKyAgIyBtb3N0IHBvd2VycGMtbGlu dXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKLSsgICMgcGVv cGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFu ZCB3ZQotKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2Uu Ci0rICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJwotKyAgOzsKLSsKLStuZXRic2Qq KQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRf dmVyc2lvbj1ubwotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18g Pi9kZXYvbnVsbDsgdGhlbgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4JwotKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAt bSAkbGliZGlyJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28nCi0r ICBlbHNlCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRC U0QgbGQuZWxmX3NvJwotKyAgZmkKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0r ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCi0rICA7OwotKwotK25ld3NvczYpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIDs7Ci0rCi0rbnRvLXFueCopCi0rICB2ZXJzaW9uX3R5 cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLStvcGVuYnNkKikKLSsgIHZlcnNp b25fdHlwZT1zdW5vcwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJT RCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCi0rICBjYXNlICRob3N0 X29zIGluCi0rICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopIG5lZWRfdmVyc2lvbj15ZXMg OzsKLSsgICAgKikgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZF92ZXJzaW9uPW5vICA7Owot KyAgZXNhYwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsg IGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaWYgdGVzdCAteiAiYGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3Rf Y3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4K LSsgICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQotKwlzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9bm8KLSsJOzsKLSsgICAgICAqKQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgZWxzZQotKyAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBmaQotKyAgOzsKLSsKLStvczIqKQotKyAgbGlibmFt ZV9zcGVjPSckbmFtZScKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFt ZS5hJwotKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJwotKyAgc2hsaWJwYXRoX3Zhcj1M SUJQQVRICi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIHZlcnNpb25fdHlw ZT1vc2YKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMv Y2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKLSsgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotKyAgOzsKLSsKLStyZG9z KikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCi0rICBw b3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJwotKyAgOzsKLSsKLStzdW5vczQqKQotKyAg dmVyc2lvbl90eXBlPXN1bm9zCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcg JGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0 aGVuCi0rICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgZmkKLSsgIG5lZWRfdmVyc2lvbj15ZXMK LSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2Ug JGhvc3RfdmVuZG9yIGluCi0rICAgIHNuaSkKLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKLSsgICAgICBydW5wYXRoX3Zhcj1MRF9S VU5fUEFUSAotKyAgICAgIDs7Ci0rICAgIHNpZW1lbnMpCi0rICAgICAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICAgICAgOzsKLSsgICAgbW90b3JvbGEpCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91 c3IvY2NzL2xpYicKLSsgICAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStzeXN2NCpNUCopCi0r ICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rICAgIHZlcnNpb25fdHlwZT1saW51eAotKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRs aWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBz b25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKLSsgICAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGZpCi0rICA7OwotKwotK3N5c3Y1KiB8IHNjbzMuMnY1 KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQotKyAgdmVy c2lvbl90eXBlPWZyZWVic2QtZWxmCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVy c2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7 IHRoZW4KLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNy L2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCi0rICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubwotKyAgZWxzZQotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgc2NvMy4ydjUqKQotKyAgICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIi Ci0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0n L3Vzci9saWInCi0rICA7OwotKwotK3V0czQqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsK LSsqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1Ci0rJGFzX2VjaG8gIiRk eW5hbWljX2xpbmtlciIgPiY2OyB9Ci0rdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNh bl9idWlsZF9zaGFyZWQ9bm8KLSsKLStpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3Bh dGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMiCi0rZmkKLSsKLStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9z eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKLSsKLSt2YXJpYWJsZXNfc2F2 ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCi0raWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFy aWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElC UkFSWV9QQVRIIgotK2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3Jh bXMuLi4gIiA+JjY7IH0KLStoYXJkY29kZV9hY3Rpb25fR0NKPQotK2lmIHRlc3QgLW4gIiRoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSiIgfHwgXAotKyAgIHRlc3QgLW4gIiRydW5wYXRoX3Zh cl9HQ0oiIHx8IFwKLSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpY19HQ0oiID0gIlh5ZXMi IDsgdGhlbgotKwotKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0YW50IGRpcmVjdG9yaWVz LgotKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9HQ0oiICE9IG5vICYmCi0rICAgICAjIElm IHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIs IHdlCi0rICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRo IGFuIGluc3RhbGxlZCBsaWJyYXJ5Ci0rICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcg d2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCi0rICAgICAjIyB0ZXN0ICIkX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCBHQ0opIiAhPSBubyAmJgotKyAgICAgdGVzdCAi JGhhcmRjb2RlX21pbnVzX0xfR0NKIiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtpbmcgYWx3YXlz IGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAgICBoYXJkY29k ZV9hY3Rpb25fR0NKPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQg aGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgotKyAgICBo YXJkY29kZV9hY3Rpb25fR0NKPWltbWVkaWF0ZQotKyAgZmkKLStlbHNlCi0rICAjIFdlIGNhbm5v dCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGlu ZwotKyAgIyBkaXJlY3Rvcmllcy4KLSsgIGhhcmRjb2RlX2FjdGlvbl9HQ0o9dW5zdXBwb3J0ZWQK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rp b25fR0NKIiA+JjUKLSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9HQ0oiID4mNjsgfQotKwot K2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb25fR0NKIiA9IHJlbGluazsgdGhlbgotKyAgIyBGYXN0 IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5v Ci0rZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAotKyAg ICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRp b24gaXMgbm90IG5lY2Vzc2FyeQotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcwotK2Zp Ci0rCi0rCi0rIyBUaGUgZWxzZSBjbGF1c2Ugc2hvdWxkIG9ubHkgZmlyZSB3aGVuIGJvb3RzdHJh cHBpbmcgdGhlCi0rIyBsaWJ0b29sIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIHlvdSBmb3Jnb3Qg dG8gc2hpcCBsdG1haW4uc2gKLSsjIHdpdGggeW91ciBwYWNrYWdlLCBhbmQgeW91IHdpbGwgZ2V0 IGNvbXBsYWludHMgdGhhdCB0aGVyZSBhcmUKLSsjIG5vIHJ1bGVzIHRvIGdlbmVyYXRlIGx0bWFp bi5zaC4KLStpZiB0ZXN0IC1mICIkbHRtYWluIjsgdGhlbgotKyAgIyBTZWUgaWYgd2UgYXJlIHJ1 bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91ciBjb21tYW5k cyB0aHJvdWdoCi0rICAjIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCi0rICBpZiB0ZXN0 IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgICBzZXRvcHQgTk9fR0xPQl9TVUJT VAotKyAgZmkKLSsgICMgTm93IHF1b3RlIGFsbCB0aGUgdGhpbmdzIHRoYXQgbWF5IGNvbnRhaW4g bWV0YWNoYXJhY3RlcnMgd2hpbGUgYmVpbmcKLSsgICMgY2FyZWZ1bCBub3QgdG8gb3ZlcnF1b3Rl IHRoZSBBQ19TVUJTVGVkIHZhbHVlcy4gIFdlIHRha2UgY29waWVzIG9mIHRoZQotKyAgIyB2YXJp YWJsZXMgYW5kIHF1b3RlIHRoZSBjb3BpZXMgZm9yIGdlbmVyYXRpb24gb2YgdGhlIGxpYnRvb2wg c2NyaXB0LgotKyAgZm9yIHZhciBpbiBlY2hvIG9sZF9DQyBvbGRfQ0ZMQUdTIEFSIEFSX0ZMQUdT IEVHUkVQIFJBTkxJQiBMTl9TIExUQ0MgTFRDRkxBR1MgTk0gXAotKyAgICBTRUQgU0hFTEwgU1RS SVAgXAotKyAgICBsaWJuYW1lX3NwZWMgbGlicmFyeV9uYW1lc19zcGVjIHNvbmFtZV9zcGVjIGV4 dHJhY3RfZXhwc3ltc19jbWRzIFwKLSsgICAgb2xkX3N0cmlwbGliIHN0cmlwbGliIGZpbGVfbWFn aWNfY21kIGZpbmlzaF9jbWRzIGZpbmlzaF9ldmFsIFwKLSsgICAgZGVwbGlic19jaGVja19tZXRo b2QgcmVsb2FkX2ZsYWcgcmVsb2FkX2NtZHMgbmVlZF9sb2NrcyBcCi0rICAgIGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wgXAotKyAg ICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCi0rICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYyBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCi0rICAgIG9s ZF9wb3N0aW5zdGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgXAotKyAgICBjb21waWxl cl9HQ0ogXAotKyAgICBDQ19HQ0ogXAotKyAgICBMRF9HQ0ogXAotKyAgICBsdF9wcm9nX2NvbXBp bGVyX3dsX0dDSiBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiBcCi0rICAgIGx0X3By b2dfY29tcGlsZXJfc3RhdGljX0dDSiBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnX0dDSiBcCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HQ0ogXAotKyAgICB0 aHJlYWRfc2FmZV9mbGFnX3NwZWNfR0NKIFwKLSsgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNf R0NKIFwKLSsgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19HQ0ogXAotKyAg ICBvbGRfYXJjaGl2ZV9jbWRzX0dDSiBcCi0rICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNf R0NKIFwKLSsgICAgcHJlZGVwX29iamVjdHNfR0NKIFwKLSsgICAgcG9zdGRlcF9vYmplY3RzX0dD SiBcCi0rICAgIHByZWRlcHNfR0NKIFwKLSsgICAgcG9zdGRlcHNfR0NKIFwKLSsgICAgY29tcGls ZXJfbGliX3NlYXJjaF9wYXRoX0dDSiBcCi0rICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19H Q0ogXAotKyAgICBhcmNoaXZlX2NtZHNfR0NKIFwKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21kc19H Q0ogXAotKyAgICBwb3N0aW5zdGFsbF9jbWRzX0dDSiBcCi0rICAgIHBvc3R1bmluc3RhbGxfY21k c19HQ0ogXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19HQ0ogXAotKyAgICBh bGxvd191bmRlZmluZWRfZmxhZ19HQ0ogXAotKyAgICBub191bmRlZmluZWRfZmxhZ19HQ0ogXAot KyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0dDSiBcCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfR0NKIFwKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9HQ0ogXAotKyAg ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSiBcCi0rICAgIGhhcmRjb2RlX2F1dG9tYXRp Y19HQ0ogXAotKyAgICBtb2R1bGVfY21kc19HQ0ogXAotKyAgICBtb2R1bGVfZXhwc3ltX2NtZHNf R0NKIFwKLSsgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fR0NKIFwKLSsgICAgZml4X3NyY2Zp bGVfcGF0aF9HQ0ogXAotKyAgICBleGNsdWRlX2V4cHN5bXNfR0NKIFwKLSsgICAgaW5jbHVkZV9l eHBzeW1zX0dDSjsgZG8KLSsKLSsgICAgY2FzZSAkdmFyIGluCi0rICAgIG9sZF9hcmNoaXZlX2Nt ZHNfR0NKIHwgXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0dDSiB8IFwKLSsgICAg YXJjaGl2ZV9jbWRzX0dDSiB8IFwKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21kc19HQ0ogfCBcCi0r ICAgIG1vZHVsZV9jbWRzX0dDSiB8IFwKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0dDSiB8IFwK LSsgICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfR0NKIHwgXAotKyAgICBleHBvcnRf c3ltYm9sc19jbWRzX0dDSiB8IFwKLSsgICAgZXh0cmFjdF9leHBzeW1zX2NtZHMgfCByZWxvYWRf Y21kcyB8IGZpbmlzaF9jbWRzIHwgXAotKyAgICBwb3N0aW5zdGFsbF9jbWRzIHwgcG9zdHVuaW5z dGFsbF9jbWRzIHwgXAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyB8IG9sZF9wb3N0dW5pbnN0 YWxsX2NtZHMgfCBcCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyB8IHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjKQotKyAgICAgICMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3Ry aW5ncy4KLSsgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNobyBcIlhcJCR2YXJcIiB8IFwk WHNlZCAtZSBcIlwkZG91YmxlX3F1b3RlX3N1YnN0XCIgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwi IC1lIFwiXCRkZWxheV92YXJpYWJsZV9zdWJzdFwiXGBcXFwiIgotKyAgICAgIDs7Ci0rICAgICop Ci0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQg LWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiXGBcXFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsg IGRvbmUKLSsKLSsgIGNhc2UgJGx0X2VjaG8gaW4KLSsgIConXCQwIC0tZmFsbGJhY2stZWNobyIn KQotKyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8ICRYc2VkIC1lICdzL1xcXFxcXFwk MCAtLWZhbGxiYWNrLWVjaG8iJC8kMCAtLWZhbGxiYWNrLWVjaG8iLydgCi0rICAgIDs7Ci0rICBl c2FjCi0rCi0rY2ZnZmlsZT0iJG9maWxlIgotKwotKyAgY2F0IDw8X19FT0ZfXyA+PiAiJGNmZ2Zp bGUiCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZQotKwotKyMgTGli dG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rl di9udWxsIHwgc2VkIDFxYDoKLSsKLSsjIFNoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxs IHNjcmlwdHMuCi0rU0hFTEw9JGx0X1NIRUxMCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWls ZCBzaGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbGlicz0kZW5hYmxlX3NoYXJlZAot KwotKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KLStidWlsZF9v bGRfbGlicz0kZW5hYmxlX3N0YXRpYwotKwotKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBm b3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFy Y2hpdmVfY21kc19uZWVkX2xjX0dDSgotKwotKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cg c2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYwotK2FsbG93X2xpYnRvb2xf bGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lc19HQ0oKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3Rh bGxhdGlvbi4KLStmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3RhbGwKLSsKLSsjIFRoZSBo b3N0IHN5c3RlbS4KLStob3N0X2FsaWFzPSRob3N0X2FsaWFzCi0raG9zdD0kaG9zdAotK2hvc3Rf b3M9JGhvc3Rfb3MKLSsKLSsjIFRoZSBidWlsZCBzeXN0ZW0uCi0rYnVpbGRfYWxpYXM9JGJ1aWxk X2FsaWFzCi0rYnVpbGQ9JGJ1aWxkCi0rYnVpbGRfb3M9JGJ1aWxkX29zCi0rCi0rIyBBbiBlY2hv IHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCi0rZWNobz0kbHRf ZWNobwotKwotKyMgVGhlIGFyY2hpdmVyLgotK0FSPSRsdF9BUgotK0FSX0ZMQUdTPSRsdF9BUl9G TEFHUwotKwotKyMgQSBDIGNvbXBpbGVyLgotK0xUQ0M9JGx0X0xUQ0MKLSsKLSsjIExUQ0MgY29t cGlsZXIgZmxhZ3MuCi0rTFRDRkxBR1M9JGx0X0xUQ0ZMQUdTCi0rCi0rIyBBIGxhbmd1YWdlLXNw ZWNpZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21waWxlcl9HQ0oKLSsKLSsjIElzIHRoZSBjb21w aWxlciB0aGUgR05VIEMgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdDQ19HQ0oKLSsKLSsjIEFuIEVS RSBtYXRjaGVyLgotK0VHUkVQPSRsdF9FR1JFUAotKwotKyMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1 aWxkIGxpYnJhcmllcy4KLStMRD0kbHRfTERfR0NKCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgaGFy ZCBvciBzb2Z0IGxpbmtzLgotK0xOX1M9JGx0X0xOX1MKLSsKLSsjIEEgQlNELWNvbXBhdGlibGUg bm0gcHJvZ3JhbS4KLStOTT0kbHRfTk0KLSsKLSsjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFt Ci0rU1RSSVA9JGx0X1NUUklQCi0rCi0rIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4g ZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgotK01BR0lDX0NNRD0kTUFHSUNfQ01ECi0rCi0r IyBVc2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0uCi0rRExMVE9PTD0iJERMTFRP T0wiCi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KLStPQkpEVU1QPSIkT0JK RFVNUCIKLSsKLSsjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCi0rQVM9IiRBUyIKLSsKLSsj IFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9v bCBmaWxlcy4KLStvYmpkaXI9JG9iamRpcgotKwotKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxl IG9iamVjdCBmaWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKLStyZWxvYWRfY21k cz0kbHRfcmVsb2FkX2NtZHMKLSsKLSsjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3Vn aCB0aGUgY29tcGlsZXIuCi0rd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfR0NKCi0rCi0rIyBP YmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0rb2JqZXh0PSIkYWNfb2JqZXh0Igot KwotKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgotK2xpYmV4dD0iJGxpYmV4 dCIKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpLgotK3NocmV4 dF9jbWRzPSckc2hyZXh0X2NtZHMnCi0rCi0rIyBFeGVjdXRhYmxlIGZpbGUgc3VmZml4IChub3Jt YWxseSAiIikuCi0rZXhlZXh0PSIkZXhlZXh0IgotKwotKyMgQWRkaXRpb25hbCBjb21waWxlciBm bGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgotK3BpY19mbGFnPSRsdF9sdF9wcm9n X2NvbXBpbGVyX3BpY19HQ0oKLStwaWNfbW9kZT0kcGljX21vZGUKLSsKLSsjIFdoYXQgaXMgdGhl IG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KLSttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21h eF9jbWRfbGVuCi0rCi0rIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMg YW5kIC1vIG9wdGlvbnM/Ci0rY29tcGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2Nf b19HQ0oKLSsKLSsjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPwot K25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKLSsKLSsjIERvIHdlIG5lZWQgdGhlIGxpYiBwcmVm aXggZm9yIG1vZHVsZXM/Ci0rbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgKLSsKLSsj IERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/Ci0rbmVlZF92ZXJzaW9uPSRuZWVk X3ZlcnNpb24KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc3Vw cG9ydD0kZW5hYmxlX2Rsb3BlbgotKwotKyMgV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMg c3VwcG9ydGVkLgotK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKLSsKLSsjIFdoZXRo ZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KLStk bG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKLSsKLSsjIENvbXBp bGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCi0rbGlua19zdGF0aWNfZmxhZz0k bHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIHR1 cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgotK25vX2J1aWx0aW5fZmxhZz0kbHRfbHRfcHJvZ19j b21waWxlcl9ub19idWlsdGluX2ZsYWdfR0NKCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIGFsbG93 IHJlZmxleGl2ZSBkbG9wZW5zLgotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0kbHRfZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjX0dDSgotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBz aGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgotK3dob2xlX2FyY2hpdmVfZmxh Z19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0oKLSsKLSsjIENvbXBpbGVyIGZs YWcgdG8gZ2VuZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0cy4KLSt0aHJlYWRfc2FmZV9mbGFnX3Nw ZWM9JGx0X3RocmVhZF9zYWZlX2ZsYWdfc3BlY19HQ0oKLSsKLSsjIExpYnJhcnkgdmVyc2lvbmlu ZyB0eXBlLgotK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCi0rCi0rIyBGb3JtYXQgb2YgbGli cmFyeSBuYW1lIHByZWZpeC4KLStsaWJuYW1lX3NwZWM9JGx0X2xpYm5hbWVfc3BlYwotKwotKyMg TGlzdCBvZiBhcmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSBy ZXN0IGFyZSBsaW5rcy4KLSsjIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5r ZXIgZmluZHMgd2l0aCAtbE5BTUUuCi0rbGlicmFyeV9uYW1lc19zcGVjPSRsdF9saWJyYXJ5X25h bWVzX3NwZWMKLSsKLSsjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJl bnQgZnJvbSB0aGUgcmVhbCBuYW1lLgotK3NvbmFtZV9zcGVjPSRsdF9zb25hbWVfc3BlYwotKwot KyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhbiBvbGQtc3R5bGUgYXJjaGl2 ZS4KLStSQU5MSUI9JGx0X1JBTkxJQgotK29sZF9hcmNoaXZlX2NtZHM9JGx0X29sZF9hcmNoaXZl X2NtZHNfR0NKCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRz Ci0rb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcwotKwot KyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KLStv bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0dD SgotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5z dGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz PSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19HQ0oKLSsKLSsjIENvbW1hbmRzIHVz ZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwgYSBzaGFyZWQgYXJjaGl2ZS4KLSthcmNoaXZlX2NtZHM9 JGx0X2FyY2hpdmVfY21kc19HQ0oKLSthcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4 cHN5bV9jbWRzX0dDSgotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3RpbnN0YWxsX2NtZHMKLStw b3N0dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgQ29tbWFuZHMg dXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSAoYXNzdW1lZCBzYW1lIGFzIGFib3ZlIGlm IGVtcHR5KQotK21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19HQ0oKLSttb2R1bGVfZXhwc3lt X2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21kc19HQ0oKLSsKLSsjIENvbW1hbmRzIHRvIHN0cmlw IGxpYnJhcmllcy4KLStvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgotK3N0cmlwbGliPSRs dF9zdHJpcGxpYgotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0 cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcF9v YmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0c19HQ0oKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFj ZSBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBs aWJyYXJ5LgotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzX0dDSgotKwotKyMg RGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8g Y3JlYXRlIGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcHM9JGx0X3ByZWRlcHNfR0NKCi0r Ci0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2Vk IHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwb3N0ZGVwcz0kbHRfcG9zdGRlcHNf R0NKCi0rCi0rIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVu IGNyZWF0aW5nIGEgc2hhcmVkCi0rIyBsaWJyYXJ5Ci0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJz PSRsdF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnNfR0NKCi0rCi0rIyBUaGUgbGlicmFyeSBzZWFy Y2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZwotKyMg YSBzaGFyZWQgbGlicmFyeS4KLStjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9JGx0X2NvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aF9HQ0oKLSsKLSsjIE1ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVu ZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgotK2RlcGxpYnNfY2hlY2tfbWV0aG9k PSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAotKwotKyMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBs aWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgotK2ZpbGVfbWFnaWNfY21kPSRsdF9maWxl X21hZ2ljX2NtZAotKwotKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGgg dW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCi0rYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0 X2FsbG93X3VuZGVmaW5lZF9mbGFnX0dDSgotKwotKyMgRmxhZyB0aGF0IGZvcmNlcyBubyB1bmRl ZmluZWQgc3ltYm9scy4KLStub191bmRlZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZpbmVkX2ZsYWdf R0NKCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRvb2wgbGlicmFyeSBpbnN0 YWxsYXRpb24gaW4gYSBkaXJlY3RvcnkuCi0rZmluaXNoX2NtZHM9JGx0X2ZpbmlzaF9jbWRzCi0r Ci0rIyBTYW1lIGFzIGFib3ZlLCBidXQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50IHRvIGJlIGV2 YWxlZCBidXQgbm90IHNob3duLgotK2ZpbmlzaF9ldmFsPSRsdF9maW5pc2hfZXZhbAotKwotKyMg VGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiByYXcgc3ltYm9s cyBhbmQgQyBuYW1lcy4KLStnbG9iYWxfc3ltYm9sX3BpcGU9JGx0X2x0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGUKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgcHJvcGVy IEMgZGVjbGFyYXRpb24KLStnbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSRsdF9sdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF90b19jZGVjbAotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4g YSBDIG5hbWUgYWRkcmVzcyBwYWlyCi0rZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0k bHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MKLSsKLSsjIFRoaXMg aXMgdGhlIHNoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZS4KLStydW5wYXRoX3Zh cj0kcnVucGF0aF92YXIKLSsKLSsjIFRoaXMgaXMgdGhlIHNoYXJlZCBsaWJyYXJ5IHBhdGggdmFy aWFibGUuCi0rc2hsaWJwYXRoX3Zhcj0kc2hsaWJwYXRoX3ZhcgotKwotKyMgSXMgc2hsaWJwYXRo IHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5IHNlYXJjaCBwYXRoPwotK3No bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0kc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoCi0r Ci0rIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0 YWJsZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbl9HQ0oKLSsKLSsjIFdoZXRo ZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXMuCi0raGFy ZGNvZGVfaW50b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMKLSsKLSsjIEZsYWcgdG8gaGFyZGNv ZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KLSsjIFRoaXMgbXVzdCB3 b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCi0raGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0oKLSsKLSsjIElmIGxkIGlz IHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8KLSsjIGEg YmluYXJ5IGR1cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRv ZXMKLSsjIG5vdCBleGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0dDSgotKwotKyMgV2hldGhlciB3ZSBuZWVkIGEgc2lu Z2xlIC1ycGF0aCBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCi0raGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0oKLSsKLSsjIFNl dCB0byB5ZXMgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcyBESVIgaW50byB0aGUKLSsjIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVf ZGlyZWN0PSRoYXJkY29kZV9kaXJlY3RfR0NKCi0rCi0rIyBTZXQgdG8geWVzIGlmIHVzaW5nIHRo ZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKLSsjIHJl c3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTF9HQ0oK LSsKLSsjIFNldCB0byB5ZXMgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzIERJUiBpbnRvCi0rIyB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29k ZV9zaGxpYnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSgotKwotKyMgU2V0IHRv IHllcyBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVz IERJUiBpbnRvIHRoZSBsaWJyYXJ5Ci0rIyBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFu ZCBleGVjdXRhYmxlcyBsaW5rZWQgYWdhaW5zdCBpdC4KLStoYXJkY29kZV9hdXRvbWF0aWM9JGhh cmRjb2RlX2F1dG9tYXRpY19HQ0oKLSsKLSsjIFZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxk IGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAotKyMgcmVzdG9yZWQgYXQg cmVsaW5rIHRpbWUuCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2 ZWRfZm9yX3JlbGluayIKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFt IGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLStsaW5rX2FsbF9kZXBsaWJz PSRsaW5rX2FsbF9kZXBsaWJzX0dDSgotKwotKyMgQ29tcGlsZS10aW1lIHN5c3RlbSBzZWFyY2gg cGF0aCBmb3IgbGlicmFyaWVzCi0rc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMKLSsKLSsjIFJ1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3Ig bGlicmFyaWVzCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjCi0rCi0rIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwkc3JjZmlsZSBmb3Ig dGhlIGNvbXBpbGVyLgotK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3BhdGgKLSsK LSsjIFNldCB0byB5ZXMgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCi0rYWx3YXlz X2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHNfR0NKCi0rCi0rIyBUaGUgY29t bWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgotK2V4cG9ydF9zeW1ib2xzX2NtZHM9JGx0 X2V4cG9ydF9zeW1ib2xzX2NtZHNfR0NKCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0 aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4dHJhY3Rf ZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwotKwotKyMgU3ltYm9scyB0aGF0 IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRl X2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19HQ0oKLSsKLSsjIFN5bWJvbHMgdGhhdCBtdXN0 IGFsd2F5cyBiZSBleHBvcnRlZC4KLStpbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhwc3lt c19HQ0oKLSsKLSsjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZQotKwotK19f RU9GX18KLSsKLSsKLStlbHNlCi0rICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxlIHlldCwgd2Ug cmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRlCi0rICAjIGBjb25maWcuc3RhdHVzIC0tcmVj aGVjaycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKLSsgICMgbGlidG9vbCBz Y3JpcHQgdGhlbi4KLSsgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1lICdzL1wuc2gk Ly5pbi8nYAotKyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KLSsgICAgdGVzdCAtZiBN YWtlZmlsZSAmJiBtYWtlICIkbHRtYWluIgotKyAgZmkKLStmaQotKwotKwotK2FjX2V4dD1jCi0r YWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rQ0M9IiRs dF9zYXZlX0NDIgotKwotKwllbHNlCi0rCSAgdGFnbmFtZT0iIgotKwlmaQotKwk7OwotKwotKyAg ICAgIFJDKQotKwotKwotKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBSQyB0ZXN0IHNvdXJj ZXMuCi0rYWNfZXh0PXJjCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVk IFJDIHRlc3Qgc291cmNlcy4KLStvYmpleHQ9bwotK29iamV4dF9SQz0kb2JqZXh0Ci0rCi0rIyBD b2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLStsdF9zaW1wbGVfY29tcGls ZV90ZXN0X2NvZGU9J3NhbXBsZSBNRU5VIHsgTUVOVUlURU0gIiZTb3VwIiwgMTAwLCBDSEVDS0VE IH0nCi0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLStsdF9zaW1w bGVfbGlua190ZXN0X2NvZGU9IiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiCi0rCi0rIyBs dG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3Vy ZSAkQ0MgaXMgc2V0LgotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2Ug Q0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdl cmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1Mi fQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0r Y29tcGlsZXI9JENDCi0rCi0rCi0rIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBs ZSB0ZXN0IGNvZGUKLSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19j b21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0 LmVycgotK19sdF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskcm0g Y29uZnRlc3QqCi0rCi0rYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAiJGx0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFsICIkYWNfbGlu ayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIK LStfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRybSAtciBjb25m dGVzdCoKLSsKLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1l bnRzLgotK2x0X3NhdmVfQ0M9IiRDQyIKLStDQz0ke1JDLSJ3aW5kcmVzIn0KLStjb21waWxlcj0k Q0MKLStjb21waWxlcl9SQz0kQ0MKLStmb3IgY2NfdGVtcCBpbiAkY29tcGlsZXIiIjsgZG8KLSsg IGNhc2UgJGNjX3RlbXAgaW4KLSsgICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUgfCBjY2FjaGUg fCAqW1xcL11jY2FjaGUgKSA7OwotKyAgICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2MgfCBwdXJpZnkg fCAqW1xcL11wdXJpZnkgKSA7OwotKyAgICBcLSopIDs7Ci0rICAgICopIGJyZWFrOzsKLSsgIGVz YWMKLStkb25lCi0rY2NfYmFzZW5hbWU9YCRlY2hvICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3Ml LiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCi0rCi0rbHRfY3ZfcHJvZ19jb21waWxlcl9j X29fUkM9eWVzCi0rCi0rIyBUaGUgZWxzZSBjbGF1c2Ugc2hvdWxkIG9ubHkgZmlyZSB3aGVuIGJv b3RzdHJhcHBpbmcgdGhlCi0rIyBsaWJ0b29sIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIHlvdSBm b3Jnb3QgdG8gc2hpcCBsdG1haW4uc2gKLSsjIHdpdGggeW91ciBwYWNrYWdlLCBhbmQgeW91IHdp bGwgZ2V0IGNvbXBsYWludHMgdGhhdCB0aGVyZSBhcmUKLSsjIG5vIHJ1bGVzIHRvIGdlbmVyYXRl IGx0bWFpbi5zaC4KLStpZiB0ZXN0IC1mICIkbHRtYWluIjsgdGhlbgotKyAgIyBTZWUgaWYgd2Ug YXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91ciBj b21tYW5kcyB0aHJvdWdoCi0rICAjIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCi0rICBp ZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgICBzZXRvcHQgTk9fR0xP Ql9TVUJTVAotKyAgZmkKLSsgICMgTm93IHF1b3RlIGFsbCB0aGUgdGhpbmdzIHRoYXQgbWF5IGNv bnRhaW4gbWV0YWNoYXJhY3RlcnMgd2hpbGUgYmVpbmcKLSsgICMgY2FyZWZ1bCBub3QgdG8gb3Zl cnF1b3RlIHRoZSBBQ19TVUJTVGVkIHZhbHVlcy4gIFdlIHRha2UgY29waWVzIG9mIHRoZQotKyAg IyB2YXJpYWJsZXMgYW5kIHF1b3RlIHRoZSBjb3BpZXMgZm9yIGdlbmVyYXRpb24gb2YgdGhlIGxp YnRvb2wgc2NyaXB0LgotKyAgZm9yIHZhciBpbiBlY2hvIG9sZF9DQyBvbGRfQ0ZMQUdTIEFSIEFS X0ZMQUdTIEVHUkVQIFJBTkxJQiBMTl9TIExUQ0MgTFRDRkxBR1MgTk0gXAotKyAgICBTRUQgU0hF TEwgU1RSSVAgXAotKyAgICBsaWJuYW1lX3NwZWMgbGlicmFyeV9uYW1lc19zcGVjIHNvbmFtZV9z cGVjIGV4dHJhY3RfZXhwc3ltc19jbWRzIFwKLSsgICAgb2xkX3N0cmlwbGliIHN0cmlwbGliIGZp bGVfbWFnaWNfY21kIGZpbmlzaF9jbWRzIGZpbmlzaF9ldmFsIFwKLSsgICAgZGVwbGlic19jaGVj a19tZXRob2QgcmVsb2FkX2ZsYWcgcmVsb2FkX2NtZHMgbmVlZF9sb2NrcyBcCi0rICAgIGx0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wg XAotKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCi0rICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCi0r ICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgXAotKyAgICBj b21waWxlcl9SQyBcCi0rICAgIENDX1JDIFwKLSsgICAgTERfUkMgXAotKyAgICBsdF9wcm9nX2Nv bXBpbGVyX3dsX1JDIFwKLSsgICAgbHRfcHJvZ19jb21waWxlcl9waWNfUkMgXAotKyAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19SQyBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnX1JDIFwKLSsgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX1JDIFwKLSsgICAgdGhy ZWFkX3NhZmVfZmxhZ19zcGVjX1JDIFwKLSsgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfUkMg XAotKyAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX1JDIFwKLSsgICAgb2xk X2FyY2hpdmVfY21kc19SQyBcCi0rICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfUkMgXAot KyAgICBwcmVkZXBfb2JqZWN0c19SQyBcCi0rICAgIHBvc3RkZXBfb2JqZWN0c19SQyBcCi0rICAg IHByZWRlcHNfUkMgXAotKyAgICBwb3N0ZGVwc19SQyBcCi0rICAgIGNvbXBpbGVyX2xpYl9zZWFy Y2hfcGF0aF9SQyBcCi0rICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19SQyBcCi0rICAgIGFy Y2hpdmVfY21kc19SQyBcCi0rICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfUkMgXAotKyAgICBwb3N0 aW5zdGFsbF9jbWRzX1JDIFwKLSsgICAgcG9zdHVuaW5zdGFsbF9jbWRzX1JDIFwKLSsgICAgb2xk X2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfUkMgXAotKyAgICBhbGxvd191bmRlZmluZWRfZmxh Z19SQyBcCi0rICAgIG5vX3VuZGVmaW5lZF9mbGFnX1JDIFwKLSsgICAgZXhwb3J0X3N5bWJvbHNf Y21kc19SQyBcCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfUkMgXAotKyAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX1JDIFwKLSsgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcl9SQyBcCi0rICAgIGhhcmRjb2RlX2F1dG9tYXRpY19SQyBcCi0rICAgIG1vZHVsZV9jbWRz X1JDIFwKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX1JDIFwKLSsgICAgbHRfY3ZfcHJvZ19jb21w aWxlcl9jX29fUkMgXAotKyAgICBmaXhfc3JjZmlsZV9wYXRoX1JDIFwKLSsgICAgZXhjbHVkZV9l eHBzeW1zX1JDIFwKLSsgICAgaW5jbHVkZV9leHBzeW1zX1JDOyBkbwotKwotKyAgICBjYXNlICR2 YXIgaW4KLSsgICAgb2xkX2FyY2hpdmVfY21kc19SQyB8IFwKLSsgICAgb2xkX2FyY2hpdmVfZnJv bV9uZXdfY21kc19SQyB8IFwKLSsgICAgYXJjaGl2ZV9jbWRzX1JDIHwgXAotKyAgICBhcmNoaXZl X2V4cHN5bV9jbWRzX1JDIHwgXAotKyAgICBtb2R1bGVfY21kc19SQyB8IFwKLSsgICAgbW9kdWxl X2V4cHN5bV9jbWRzX1JDIHwgXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19S QyB8IFwKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21kc19SQyB8IFwKLSsgICAgZXh0cmFjdF9leHBz eW1zX2NtZHMgfCByZWxvYWRfY21kcyB8IGZpbmlzaF9jbWRzIHwgXAotKyAgICBwb3N0aW5zdGFs bF9jbWRzIHwgcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21k cyB8IG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgfCBcCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYyB8IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjKQotKyAgICAgICMgRG91YmxlLXF1b3Rl IGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KLSsgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNo byBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwkZG91YmxlX3F1b3RlX3N1YnN0XCIgLWUgXCJc JHNlZF9xdW90ZV9zdWJzdFwiIC1lIFwiXCRkZWxheV92YXJpYWJsZV9zdWJzdFwiXGBcXFwiIgot KyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJY XCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiXGBcXFwiIgotKyAgICAg IDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgIGNhc2UgJGx0X2VjaG8gaW4KLSsgIConXCQw IC0tZmFsbGJhY2stZWNobyInKQotKyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8ICRY c2VkIC1lICdzL1xcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8iJC8kMCAtLWZhbGxiYWNrLWVjaG8i LydgCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rY2ZnZmlsZT0iJG9maWxlIgotKwotKyAgY2F0IDw8 X19FT0ZfXyA+PiAiJGNmZ2ZpbGUiCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAk dGFnbmFtZQotKwotKyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUg fHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKLSsKLSsjIFNoZWxsIHRvIHVzZSB3 aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHMuCi0rU0hFTEw9JGx0X1NIRUxMCi0rCi0rIyBXaGV0 aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbGli cz0kZW5hYmxlX3NoYXJlZAotKwotKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxp YnJhcmllcy4KLStidWlsZF9vbGRfbGlicz0kZW5hYmxlX3N0YXRpYwotKwotKyMgV2hldGhlciBv ciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9s aWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjX1JDCi0rCi0rIyBXaGV0aGVyIG9y IG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGlj Ci0rYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRlbmFibGVfc2hhcmVk X3dpdGhfc3RhdGljX3J1bnRpbWVzX1JDCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6 ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCi0rZmFzdF9pbnN0YWxsPSRlbmFibGVfZmFzdF9pbnN0 YWxsCi0rCi0rIyBUaGUgaG9zdCBzeXN0ZW0uCi0raG9zdF9hbGlhcz0kaG9zdF9hbGlhcwotK2hv c3Q9JGhvc3QKLStob3N0X29zPSRob3N0X29zCi0rCi0rIyBUaGUgYnVpbGQgc3lzdGVtLgotK2J1 aWxkX2FsaWFzPSRidWlsZF9hbGlhcwotK2J1aWxkPSRidWlsZAotK2J1aWxkX29zPSRidWlsZF9v cwotKwotKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFz aGVzLgotK2VjaG89JGx0X2VjaG8KLSsKLSsjIFRoZSBhcmNoaXZlci4KLStBUj0kbHRfQVIKLStB Ul9GTEFHUz0kbHRfQVJfRkxBR1MKLSsKLSsjIEEgQyBjb21waWxlci4KLStMVENDPSRsdF9MVEND Ci0rCi0rIyBMVENDIGNvbXBpbGVyIGZsYWdzLgotK0xUQ0ZMQUdTPSRsdF9MVENGTEFHUwotKwot KyMgQSBsYW5ndWFnZS1zcGVjaWZpYyBjb21waWxlci4KLStDQz0kbHRfY29tcGlsZXJfUkMKLSsK LSsjIElzIHRoZSBjb21waWxlciB0aGUgR05VIEMgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdDQ19S QwotKwotKyMgQW4gRVJFIG1hdGNoZXIuCi0rRUdSRVA9JGx0X0VHUkVQCi0rCi0rIyBUaGUgbGlu a2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgotK0xEPSRsdF9MRF9SQwotKwotKyMgV2hldGhl ciB3ZSBuZWVkIGhhcmQgb3Igc29mdCBsaW5rcy4KLStMTl9TPSRsdF9MTl9TCi0rCi0rIyBBIEJT RC1jb21wYXRpYmxlIG5tIHByb2dyYW0uCi0rTk09JGx0X05NCi0rCi0rIyBBIHN5bWJvbCBzdHJp cHBpbmcgcHJvZ3JhbQotK1NUUklQPSRsdF9TVFJJUAotKwotKyMgVXNlZCB0byBleGFtaW5lIGxp YnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyAiZmlsZSIKLStNQUdJQ19DTUQ9JE1B R0lDX0NNRAotKwotKyMgVXNlZCBvbiBjeWd3aW46IERMTCBjcmVhdGlvbiBwcm9ncmFtLgotK0RM TFRPT0w9IiRETExUT09MIgotKwotKyMgVXNlZCBvbiBjeWd3aW46IG9iamVjdCBkdW1wZXIuCi0r T0JKRFVNUD0iJE9CSkRVTVAiCi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogYXNzZW1ibGVyLgotK0FT PSIkQVMiCi0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGVt cG9yYXJ5IGxpYnRvb2wgZmlsZXMuCi0rb2JqZGlyPSRvYmpkaXIKLSsKLSsjIEhvdyB0byBjcmVh dGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuCi0rcmVsb2FkX2ZsYWc9JGx0X3JlbG9hZF9mbGFn Ci0rcmVsb2FkX2NtZHM9JGx0X3JlbG9hZF9jbWRzCi0rCi0rIyBIb3cgdG8gcGFzcyBhIGxpbmtl ciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3ds X1JDCi0rCi0rIyBPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0rb2JqZXh0PSIk YWNfb2JqZXh0IgotKwotKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgotK2xp YmV4dD0iJGxpYmV4dCIKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5z byIpLgotK3NocmV4dF9jbWRzPSckc2hyZXh0X2NtZHMnCi0rCi0rIyBFeGVjdXRhYmxlIGZpbGUg c3VmZml4IChub3JtYWxseSAiIikuCi0rZXhlZXh0PSIkZXhlZXh0IgotKwotKyMgQWRkaXRpb25h bCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgotK3BpY19mbGFn PSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpY19SQwotK3BpY19tb2RlPSRwaWNfbW9kZQotKwotKyMg V2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5kPwotK21heF9jbWRfbGVuPSRs dF9jdl9zeXNfbWF4X2NtZF9sZW4KLSsKLSsjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkg c3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KLStjb21waWxlcl9jX289JGx0X2x0X2N2X3Byb2df Y29tcGlsZXJfY19vX1JDCi0rCi0rIyBNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21w aWxhdGlvbj8KLStuZWVkX2xvY2tzPSRsdF9uZWVkX2xvY2tzCi0rCi0rIyBEbyB3ZSBuZWVkIHRo ZSBsaWIgcHJlZml4IGZvciBtb2R1bGVzPwotK25lZWRfbGliX3ByZWZpeD0kbmVlZF9saWJfcHJl Zml4Ci0rCi0rIyBEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzPwotK25lZWRfdmVy c2lvbj0kbmVlZF92ZXJzaW9uCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQuCi0r ZGxvcGVuX3N1cHBvcnQ9JGVuYWJsZV9kbG9wZW4KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHBy b2dyYW1zIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc2VsZj0kZW5hYmxlX2Rsb3Blbl9zZWxmCi0r Ci0rIyBXaGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBw b3J0ZWQuCi0rZGxvcGVuX3NlbGZfc3RhdGljPSRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljCi0r Ci0rIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgotK2xpbmtfc3Rh dGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljX1JDCi0rCi0rIyBDb21waWxlciBm bGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgotK25vX2J1aWx0aW5fZmxhZz0kbHRf bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfUkMKLSsKLSsjIENvbXBpbGVyIGZsYWcg dG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCi0rZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRs dF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWNfUkMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2Vu ZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4KLSt3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfUkMKLSsKLSsjIENvbXBp bGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0cy4KLSt0aHJlYWRfc2FmZV9m bGFnX3NwZWM9JGx0X3RocmVhZF9zYWZlX2ZsYWdfc3BlY19SQwotKwotKyMgTGlicmFyeSB2ZXJz aW9uaW5nIHR5cGUuCi0rdmVyc2lvbl90eXBlPSR2ZXJzaW9uX3R5cGUKLSsKLSsjIEZvcm1hdCBv ZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgotK2xpYm5hbWVfc3BlYz0kbHRfbGlibmFtZV9zcGVjCi0r Ci0rIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJzdCBuYW1lIGlzIHRoZSByZWFsIG9uZSwg dGhlIHJlc3QgYXJlIGxpbmtzLgotKyMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhl IGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRS4KLStsaWJyYXJ5X25hbWVzX3NwZWM9JGx0X2xpYnJh cnlfbmFtZXNfc3BlYwotKwotKyMgVGhlIGNvZGVkIG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRp ZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUuCi0rc29uYW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVj Ci0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGFuIG9sZC1zdHlsZSBh cmNoaXZlLgotK1JBTkxJQj0kbHRfUkFOTElCCi0rb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2Fy Y2hpdmVfY21kc19SQwotK29sZF9wb3N0aW5zdGFsbF9jbWRzPSRsdF9vbGRfcG9zdGluc3RhbGxf Y21kcwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0dW5pbnN0YWxsX2NtZHMK LSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUu Ci0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21k c19SQwotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsg aW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19j bWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19SQwotKwotKyMgQ29tbWFuZHMg dXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhIHNoYXJlZCBhcmNoaXZlLgotK2FyY2hpdmVfY21k cz0kbHRfYXJjaGl2ZV9jbWRzX1JDCi0rYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9l eHBzeW1fY21kc19SQwotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3RpbnN0YWxsX2NtZHMKLStw b3N0dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgQ29tbWFuZHMg dXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSAoYXNzdW1lZCBzYW1lIGFzIGFib3ZlIGlm IGVtcHR5KQotK21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19SQwotK21vZHVsZV9leHBzeW1f Y21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRzX1JDCi0rCi0rIyBDb21tYW5kcyB0byBzdHJpcCBs aWJyYXJpZXMuCi0rb2xkX3N0cmlwbGliPSRsdF9vbGRfc3RyaXBsaWIKLStzdHJpcGxpYj0kbHRf c3RyaXBsaWIKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9iamVjdHMg YmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwcmVkZXBfb2Jq ZWN0cz0kbHRfcHJlZGVwX29iamVjdHNfUkMKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBh ZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBsaWJy YXJ5LgotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzX1JDCi0rCi0rIyBEZXBl bmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVh dGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcHJlZGVwcz0kbHRfcHJlZGVwc19SQwotKwotKyMg RGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBj cmVhdGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcG9zdGRlcHM9JGx0X3Bvc3RkZXBzX1JDCi0r Ci0rIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0 aW5nIGEgc2hhcmVkCi0rIyBsaWJyYXJ5Ci0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSRsdF9j b21waWxlcl9saWJfc2VhcmNoX2RpcnNfUkMKLSsKLSsjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRo IHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCi0rIyBhIHNoYXJl ZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoX1JDCi0rCi0rIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQgbGli cmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfZGVw bGlic19jaGVja19tZXRob2QKLSsKLSsjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVj a19tZXRob2QgPT0gZmlsZV9tYWdpYy4KLStmaWxlX21hZ2ljX2NtZD0kbHRfZmlsZV9tYWdpY19j bWQKLSsKLSsjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5l ZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgotK2FsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9hbGxvd191 bmRlZmluZWRfZmxhZ19SQwotKwotKyMgRmxhZyB0aGF0IGZvcmNlcyBubyB1bmRlZmluZWQgc3lt Ym9scy4KLStub191bmRlZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZpbmVkX2ZsYWdfUkMKLSsKLSsj IENvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBp biBhIGRpcmVjdG9yeS4KLStmaW5pc2hfY21kcz0kbHRfZmluaXNoX2NtZHMKLSsKLSsjIFNhbWUg YXMgYWJvdmUsIGJ1dCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dCBu b3Qgc2hvd24uCi0rZmluaXNoX2V2YWw9JGx0X2ZpbmlzaF9ldmFsCi0rCi0rIyBUYWtlIHRoZSBv dXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5h bWVzLgotK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlw ZQotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJh dGlvbgotK2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NkZWNsCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBh ZGRyZXNzIHBhaXIKLStnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSRsdF9sdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcwotKwotKyMgVGhpcyBpcyB0aGUgc2hh cmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxlLgotK3J1bnBhdGhfdmFyPSRydW5wYXRo X3ZhcgotKwotKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4KLStz aGxpYnBhdGhfdmFyPSRzaGxpYnBhdGhfdmFyCi0rCi0rIyBJcyBzaGxpYnBhdGggc2VhcmNoZWQg YmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/Ci0rc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKLSsKLSsjIEhvdyB0 byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgotK2hh cmRjb2RlX2FjdGlvbj0kaGFyZGNvZGVfYWN0aW9uX1JDCi0rCi0rIyBXaGV0aGVyIHdlIHNob3Vs ZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgotK2hhcmRjb2RlX2ludG9f bGlicz0kaGFyZGNvZGVfaW50b19saWJzCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGly IGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlm IFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0 X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfUkMKLSsKLSsjIElmIGxkIGlzIHVzZWQgd2hlbiBs aW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8KLSsjIGEgYmluYXJ5IGR1cmlu ZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMKLSsjIG5vdCBl eGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkX1JDCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZs YWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KLStoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y PSRsdF9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX1JDCi0rCi0rIyBTZXQgdG8geWVzIGlmIHVz aW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElS IGludG8gdGhlCi0rIyByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX2RpcmVjdD0kaGFyZGNv ZGVfZGlyZWN0X1JDCi0rCi0rIyBTZXQgdG8geWVzIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1 cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKLSsjIHJlc3VsdGluZyBiaW5hcnku Ci0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTF9SQwotKwotKyMgU2V0IHRvIHll cyBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElS IGludG8KLSsjIHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX3NobGlicGF0aF92YXI9 JGhhcmRjb2RlX3NobGlicGF0aF92YXJfUkMKLSsKLSsjIFNldCB0byB5ZXMgaWYgYnVpbGRpbmcg YSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIgaW50byB0aGUgbGli cmFyeQotKyMgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlu a2VkIGFnYWluc3QgaXQuCi0raGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWNf UkMKLSsKLSsjIFZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRv b2wgd3JhcHBlciBzY3JpcHRzIGFuZAotKyMgcmVzdG9yZWQgYXQgcmVsaW5rIHRpbWUuCi0rdmFy aWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayIKLSsK LSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBk ZXBlbmRlbmN5IGxpYnJhcmllcy4KLStsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJz X1JDCi0rCi0rIyBDb21waWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMK LStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYwot KwotKyMgUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKLStzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKLSsKLSsj IEZpeCB0aGUgc2hlbGwgdmFyaWFibGUgXCRzcmNmaWxlIGZvciB0aGUgY29tcGlsZXIuCi0rZml4 X3NyY2ZpbGVfcGF0aD0kbHRfZml4X3NyY2ZpbGVfcGF0aAotKwotKyMgU2V0IHRvIHllcyBpZiBl eHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4KLSthbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFs d2F5c19leHBvcnRfc3ltYm9sc19SQwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0 ZWQgc3ltYm9scy4KLStleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRz X1JDCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxp c3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRy YWN0X2V4cHN5bXNfY21kcwotKwotKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVk IGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVf ZXhwc3ltc19SQwotKwotKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgot K2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zX1JDCi0rCi0rIyAjIyMgRU5EIExJ QlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWUKLSsKLStfX0VPRl9fCi0rCi0rCi0rZWxzZQotKyAg IyBJZiB0aGVyZSBpcyBubyBNYWtlZmlsZSB5ZXQsIHdlIHJlbHkgb24gYSBtYWtlIHJ1bGUgdG8g ZXhlY3V0ZQotKyAgIyBgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2snIHRvIHJlcnVuIHRoZXNlIHRl c3RzIGFuZCBjcmVhdGUgdGhlCi0rICAjIGxpYnRvb2wgc2NyaXB0IHRoZW4uCi0rICBsdG1haW5f aW49YGVjaG8gJGx0bWFpbiB8IHNlZCAtZSAncy9cLnNoJC8uaW4vJ2AKLSsgIGlmIHRlc3QgLWYg IiRsdG1haW5faW4iOyB0aGVuCi0rICAgIHRlc3QgLWYgTWFrZWZpbGUgJiYgbWFrZSAiJGx0bWFp biIKLSsgIGZpCi0rZmkKLSsKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotK0NDPSIkbHRfc2F2ZV9DQyIKLSsKLSsJOzsKLSsK LSsgICAgICAqKQotKwl7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogVW5zdXBw b3J0ZWQgdGFnIG5hbWU6ICR0YWduYW1lIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog VW5zdXBwb3J0ZWQgdGFnIG5hbWU6ICR0YWduYW1lIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIEFwcGVuZCB0aGUgbmV3 IHRhZyBuYW1lIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdzLgotKyAgICAgIGlmIHRlc3Qg LW4gIiR0YWduYW1lIiA7IHRoZW4KLSsgICAgICBhdmFpbGFibGVfdGFncz0iJGF2YWlsYWJsZV90 YWdzICR0YWduYW1lIgotKyAgICBmaQotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2 ZV9pZnMiCi0rCi0rICAjIE5vdyBzdWJzdGl0dXRlIHRoZSB1cGRhdGVkIGxpc3Qgb2YgYXZhaWxh YmxlIHRhZ3MuCi0rICBpZiBldmFsICJzZWQgLWUgJ3MvXmF2YWlsYWJsZV90YWdzPS4qXCQvYXZh aWxhYmxlX3RhZ3M9XCIkYXZhaWxhYmxlX3RhZ3NcIi8nIFwiJG9maWxlXCIgPiBcIiR7b2ZpbGV9 VFwiIjsgdGhlbgotKyAgICBtdiAiJHtvZmlsZX1UIiAiJG9maWxlIgotKyAgICBjaG1vZCAreCAi JG9maWxlIgotKyAgZWxzZQotKyAgICBybSAtZiAiJHtvZmlsZX1UIgotKyAgICB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogdW5hYmxlIHRvIHVwZGF0ZSBsaXN0IG9mIGF2YWls YWJsZSB0YWdnZWQgY29uZmlndXJhdGlvbnMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogdW5hYmxlIHRvIHVwZGF0ZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdnZWQgY29uZmlndXJhdGlv bnMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZmkKLStmaQotKwot KwotKwotKyMgVGhpcyBjYW4gYmUgdXNlZCB0byByZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQK LStMSUJUT09MX0RFUFM9IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKLSsKLSsjIEFsd2F5cyB1c2Ug b3VyIG93biBsaWJ0b29sLgotK0xJQlRPT0w9JyQoU0hFTEwpICQodG9wX2J1aWxkZGlyKS9saWJ0 b29sJwotKwotKyMgUHJldmVudCBtdWx0aXBsZSBleHBhbnNpb24KLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3JrcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiAiID4mNjsgfQotK0xOX1M9JGFz X2xuX3MKLStpZiB0ZXN0ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQot K2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vLCB1c2luZyAk TE5fUyIgPiY1Ci0rJGFzX2VjaG8gIm5vLCB1c2luZyAkTE5fUyIgPiY2OyB9Ci0rZmkKLSsKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0g c2V0cyBcJChNQUtFKSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAke01BS0Ut bWFrZX0gc2V0cyBcJChNQUtFKS4uLiAiID4mNjsgfQotK3NldCB4ICR7TUFLRS1tYWtlfQotK2Fj X21ha2U9YCRhc19lY2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpBLVowLTlfXS9fL2cn YAotK2lmIHsgYXNfdmFyPWFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldDsgZXZhbCAidGVz dCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0Lm1ha2UgPDxcX0FDRU9GCi0rU0hF TEwgPSAvYmluL3NoCi0rYWxsOgotKwlAZWNobyAnQEBAJSUlPSQoTUFLRSk9QEBAJSUlJwotK19B Q0VPRgotKyMgR05VIG1ha2Ugc29tZXRpbWVzIHByaW50cyAibWFrZVsxXTogRW50ZXJpbmcuLi4i LCB3aGljaCB3b3VsZCBjb25mdXNlIHVzLgotK2Nhc2UgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVz dC5tYWtlIDI+L2Rldi9udWxsYCBpbgotKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQotKyAgICBldmFs IGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD15ZXM7OwotKyAgKikKLSsgICAgZXZhbCBh Y19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9bm87OwotK2VzYWMKLStybSAtZiBjb25mdGVz dC5tYWtlCi0rZmkKLStpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9z ZXQgPSB5ZXM7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHll cyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5v IiA+JjY7IH0KLSsgIFNFVF9NQUtFPSJNQUtFPSR7TUFLRS1tYWtlfSIKLStmaQotKwotKwotKyMg U2V0IGRlZmF1bHQgbGFuZ3VhZ2UgdG8gQysrCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQ UCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rIyBDaGVj ayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZXhjZXB0 aW9ucyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfZXhjZXB0aW9ucytzZXR9IiA9IHNl dDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfZXhjZXB0aW9uczsKLStjYXQgPj5jb25mZGVm cy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgU09DSV9FWENFUFRJT05TIDEKLStfQUNFT0YKLSsKLStm aQotKwotK3Rlc3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0 aW9ucz15ZXMKLSt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgIT0geG5vICYmIGVuYWJs ZV9leGNlcHRpb25zPXllcwotKwotKyMgQ2hlY2sgZm9yIGluZm8gcGFnZXMKLSsjIENoZWNrIHdo ZXRoZXIgLS1lbmFibGUtaW5mby1kb2Mgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2lu Zm9fZG9jK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9pbmZvX2RvYzsK LStmaQotKwotK3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm8gJiYgZW5hYmxlX2luZm9f ZG9jPXllcwotKwotKwotKyMgQ2hlY2sgZm9yIGh0bWwtZG9jIHN3aXRjaAotKyMgQ2hlY2sgd2hl dGhlciAtLWVuYWJsZS1odG1sLWRvYyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfaHRt bF9kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2h0bWxfZG9jOwot K2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubyAmJiBlbmFibGVfaHRtbF9k b2M9eWVzCi0rCi0rCi0rIyBQcm92aWRlIC0td2l0aC1kb2NkaXIKLSsKLSsjIENoZWNrIHdoZXRo ZXIgLS13aXRoLWRvY2RpciB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2RvY2RpcitzZXR9 IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9kb2NkaXI7IERPQ19ESVI9IiR3aXRodmFs IgotK2Vsc2UKLSsgIERPQ19ESVI9IiIKLStmaQotKwotK2lmIHRlc3QgIngkRE9DX0RJUiIgIT0g eDsgdGhlbgotKyAgZG9jZGlyPSIkRE9DX0RJUiIKLStlbHNlCi0rICBkb2NkaXI9IiR7ZGF0YWRp cn0vZG9jLyRQQUNLQUdFLSRWRVJTSU9OIgotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayBmb3IgYnVy cmllZCBoZWFkZXIgZmlsZXMgKGZvciBTT0NJIGl0c2VsZikKLSsjIENoZWNrIHdoZXRoZXIgLS1l bmFibGUtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9idXJy aWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2J1cnJp ZWRfaGVhZGVyczsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICBlbmFi bGVfYnVycmllZF9oZWFkZXJzPW5vCi0rICAgZWxzZQotKyAgICAgIGVuYWJsZV9idXJyaWVkX2hl YWRlcnM9eWVzCi0rICAgZmkKLStlbHNlCi0rICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubwot K2ZpCi0rCi0rIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStl bmFibGVfYnVycmllZF9oZWFkZXJzPXllcwotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hl YWRlcnMiID0geHllczsgdGhlbgotKyAgU09DSV9IRUFERVJTX0JVUklFRF9UUlVFPQotKyAgU09D SV9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKLStlbHNlCi0rICBTT0NJX0hFQURFUlNfQlVSSUVE X1RSVUU9JyMnCi0rICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQotK2ZpCi0rCi0rCi0raWYg dGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgICBDUFBGTEFH Uz0iLURTT0NJX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKLStmaQotKwotKyMgQ2hlY2sgZm9y IGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgTXlTUUwgY2xpZW50KQotKyMgQ2hlY2sgd2hldGhl ciAtLWVuYWJsZS1teXNxbC1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7 ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxl dmFsPSRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIg PSBubzsgdGhlbgotKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCi0rICAgZWxzZQot KwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyAgIGZpCi0rZWxzZQotKyAgIGVu YWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLStmaQotKwotKyMgVGVtcG9yYXJ5LCBmb3Ig dGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVy cz15ZXMKLSsgaWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7 IHRoZW4KLSsgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJVRT0KLSsgIFNPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURfRkFMU0U9JyMnCi0rZWxzZQotKyAgU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRF9UUlVFPScjJwotKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0KLStmaQot KwotKwotK2lmIHRlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0 aGVuCi0rICAgQ1BQRkxBR1M9Ii1EU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1Mi Ci0rZmkKLSsKLSsjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFBvc3RHcmVT UUwgY2xpZW50KQotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQt aGVhZGVycyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVk X2hlYWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3Bvc3RncmVz cWxfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKwll bmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rCWVuYWJsZV9w b3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaQotK2Vsc2UKLSsgICBlbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLStmaQotKwotKyMgVGVtcG9yYXJ5LCBmb3Ig dGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9o ZWFkZXJzPXllcwotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVy cyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRT0K LSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKLStlbHNlCi0rICBT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRT0nIycKLSsgIFNPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRF9GQUxTRT0KLStmaQotKwotKwotK2lmIHRlc3QgIngkZW5hYmxlX3Bv c3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgICBDUFBGTEFHUz0iLURT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgQm9vc3QgKFNUTCBFeHRlbnNpb25zOiBodHRwOi8vd3d3LmJvb3N0Lm9yZykKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0r Ci0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1ib29zdCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3 aXRoX2Jvb3N0K3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX2Jvb3N0OwotKyAg ICAgICAgICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rCQkgICAgICAg ICAgICB3YW50X2Jvb3N0PSJubyIKLSsgICAgICAgICAgICAgICAgZWxpZiB0ZXN0ICIkd2l0aHZh bCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgd2FudF9ib29zdD0ieWVzIgot KyAgICAgICAgICAgICAgICAgICAgYWNfYm9vc3RfcGF0aD0iIgotKyAgICAgICAgICAgICAgICBl bHNlCi0rCQkJICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCi0rICAgICAgICAgICAgCQlhY19ib29z dF9wYXRoPSIkd2l0aHZhbCIKLSsJCSAgICAgICAgZmkKLSsKLStlbHNlCi0rICB3YW50X2Jvb3N0 PSJ5ZXMiCi0rZmkKLSsKLSsKLSsjICAgIEFDX0NBTk9OSUNBTF9CVUlMRAotK0JPT1NUX01EV19W RVJTSU9OPSIxLTMzLTEiCi0rQk9PU1RMSUJfTURXX1ZFUlNJT049IjFfMzNfMSIKLSsKLSsJaWYg dGVzdCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsgdGhlbgotKwkJYm9vc3RfbGliX3ZlcnNpb25f cmVxPTEuMzMKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuPWBleHByICRib29zdF9s aWJfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcLlswLTldKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJz aW9uX3JlcV9tYWpvcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCkn YAotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRib29zdF9saWJfdmVyc2lv bl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9z dWJfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwu XChbMC05XSpcKSdgCi0rCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlu b3IiID0gIngiIDsgdGhlbgotKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9IjAi Ci0rICAgIAlmaQotKwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRib29zdF9saWJfdmVyc2lv bl9yZXFfbWFqb3IgXCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yIFwq IDEwMCBcKyAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAKLSsJCXsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYm9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJz aW9uX3JlcSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGJvb3N0bGliID49ICRib29z dF9saWJfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KLSsJCXN1Y2NlZWRlZD1ubwotKwotKwkJCQkJ CQkJCQlpZiB0ZXN0IC1kIC9saWI2NDsgdGhlbgotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0 IgotKwkJZWxzZQotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKLSsJCWZpCi0rCQlpZiB0ZXN0 ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElS VFlQRSIgPT0gImxpYjY0IjsgdGhlbgotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aC8k Qk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJ UlRZUEUiOyB0aGVuCi0rCSAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9w YXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQllbHNlCi0rICAgICAgICAgICAgICAgICAgICBC T09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQkJZmkKLSsJCQllbHNlCi0rCQkJ CUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJCWZpCi0rCQkJQk9PU1RfQ0ZM QUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCi0rCQllbHNlCi0rCQkJZm9yIGFjX2Jvb3N0 X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29scy9ib29zdCA7IGRvCi0r CQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IiAmJiB0ZXN0 IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCI7IHRoZW4KLSsJCQkJCUJPT1NU X0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQkJQk9P U1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgotKwkJCQkJYnJlYWs7Ci0r CQkJCWZpCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0 LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1w L2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IjsgdGhlbgotKwkJCQkJQk9P U1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCQlC T09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01E V19WRVJTSU9OIgotKwotKwkJCQkJCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAv bGliIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvbGliIiAmJiB0ZXN0ICEgLWQgIiRh Y19ib29zdF9wYXRoX3RtcC9saWI2NCI7IHRoZW4KLSsJCQkJCQlCT09TVF9MSUJTPSItTCRhY19i b29zdF9wYXRoX3RtcC9saWIiCi0rCQkJCQkJZWNobyAiSGFjazogJEJPT1NUX0xJQlMiCi0rCQkJ CQlmaQotKwkJCQkJYnJlYWs7Ci0rCQkJCWZpCi0rCQkJZG9uZQotKwkJZmkKLSsKLSsJCUNQUEZM QUdTX1NBVkVEPSIkQ1BQRkxBR1MiCi0rCQlDUFBGTEFHUz0iJENQUEZMQUdTICRCT09TVF9DRkxB R1MiCi0rCQlleHBvcnQgQ1BQRkxBR1MKLSsKLSsJCUxERkxBR1NfU0FWRUQ9IiRMREZMQUdTIgot KwkJTERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCi0rCQlleHBvcnQgTERGTEFHUwotKwot KyAgICAgCWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rI2lu Y2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rI2lm IEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgotKy8vIEV2ZXJ5dGhpbmcgaXMg b2theQotKyNlbHNlCi0rIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCi0rI2VuZGlm Ci0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7 IHRoZW4KLSsKLSsgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5 ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKwkJIHN1Y2NlZWRlZD15ZXMKLSsJCSBm b3VuZF9zeXN0ZW09eWVzCi0rICAgICAgICAgOgotKwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsKLSsKLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwotKwkJCQkJCWlmIHRlc3QgIngkc3Vj Y2VlZGVkIiAhPSAieHllcyI7IHRoZW4KLSsJCQlfdmVyc2lvbj0wCi0rCQkJaWYgdGVzdCAiJGFj X2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1M JGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19i b29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJCQkJCWZvciBp IGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBk bwotKwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMj IiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKLSsJCQkJCQlW X0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3Qg IiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAot KwkJCQkJCWZpCi0rCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNl ZCAncy9cLi9fLydgCi0rCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1 ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKLSsJCQkJCWRvbmUKLSsJCQkJZmkKLSsJCQll bHNlCi0rCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IDsgZG8K LSsJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3Rf cGF0aCI7IHRoZW4KLSsJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVk ZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KLSsJCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRp IHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8n IHwgc2VkICdzL18vLi8nYAotKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4g JF92ZXJzaW9uYAotKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJ CQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCi0rCQkJCQkJCQliZXN0X3BhdGg9JGFjX2Jvb3N0 X3BhdGgKLSsJCQkJCQkJZmkKLSsJCQkJCQlkb25lCi0rCQkJCQlmaQotKwkJCQlkb25lCi0rCi0r CQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAot KwkJCQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VO REVSU0NPUkUiCi0rCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQ RSIKLSsKLSsJICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4KLSsJCQkJ CWlmIHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7IHRoZW4K LSsJCQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipcKSdgCi0r CQkJCQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9vc3RfLy8n IHwgc2VkICdzL18vLi9nJ2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4cHIgJHN0 YWdlX3ZlcnNpb24gOiAnXChbMC05XSpcLlswLTldKlwpJ2AKLSsJCQkJCQlWX0NIRUNLPWBleHBy ICRzdGFnZV92ZXJzaW9uX3Nob3J0ZW4gXD5cPSAkX3ZlcnNpb25gCi0rCQkJCQkJaWYgdGVzdCAi JFZfQ0hFQ0siID0gIjEiIDsgdGhlbgotKwkJCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogV2Ugd2lsbCB1c2UgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSBmcm9tICRCT09TVF9ST09UIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5 IGZyb20gJEJPT1NUX1JPT1QiID4mNjt9Ci0rCQkJCQkJCUJPT1NUX0NGTEFHUz0iLUkkQk9PU1Rf Uk9PVCIKLSsJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9PU1RfUk9PVC9zdGFnZS8kQk9PU1RfTElC RElSVFlQRSIKLSsJCQkJCQlmaQotKwkJCQkJZmkKLSsJICAgIAkJZmkKLSsJCQlmaQotKwotKwkJ CUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKLSsJCQlleHBvcnQgQ1BQRkxBR1MK LSsJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJCQlleHBvcnQgTERGTEFHUwot KwotKyAgICAgCQljYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot KyNpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KLSsKLStpbnQKLSttYWluICgpCi0rewotKwot KyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJT04KLSsvLyBFdmVyeXRoaW5n IGlzIG9rYXkKLSsjZWxzZQotKyMgIGVycm9yIEJvb3N0IHZlcnNpb24gaXMgdG9vIG9sZAotKyNl bmRpZgotKwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCi0rCi0rICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogeWVzICgkX3ZlcnNpb24pIiA+JjUKLSskYXNfZWNobyAieWVzICgkX3ZlcnNpb24pIiA+JjY7 IH0KLSsJCSBzdWNjZWVkZWQ9eWVzCi0rICAgICAgICAgOgotKwotK2Vsc2UKLSsgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKLSsKLSsKLSsgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyAoJF92ZXJzaW9uKSIgPiY1Ci0rJGFzX2VjaG8gIm5vICgkX3ZlcnNpb24p IiA+JjY7IH0KLSsgICAgICAgICA6Ci0rCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCWZpCi0rCi0rCQlpZiB0 ZXN0ICIkc3VjY2VlZGVkIiAhPSAieWVzIiA7IHRoZW4KLSsJCQlpZiB0ZXN0ICIkX3ZlcnNpb24i ID0gIjAiIDsgdGhlbgotKwkJCQl7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog V2UgY291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9s aWJfdmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBi b29zdCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NU X1JPT1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0 aC1ib29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVk LCB0aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lv bi5ocHA+LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFdlIGNvdWxkIG5vdCBkZXRl Y3QgdGhlIGJvb3N0IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3No b3J0ZW4gb3IgaGlnaGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSAoc3Rp bGwgbm90IGluc3RhbGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09TVF9ST09UIGluIHlvdXIgZW52 aXJvbm1lbnQgYW5kIGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qgb3B0aW9uLiAg SWYgeW91IGFyZSBzdXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxlZCwgdGhlbiBjaGVjayB5b3Vy IHZlcnNpb24gbnVtYmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNpb24uaHBwPi4iID4mMjt9Ci0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCQkJZWxzZQotKwkJCQl7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogJ1lvdXIgYm9vc3QgbGlicmFyaWVzIHNlZW1zIHRvIG9s ZCAodmVyc2lvbiAkX3ZlcnNpb24pLiAgV2UgbmVlZCBhdCBsZWFzdCAkYm9vc3RfbGliX3ZlcnNp b25fc2hvcnRlbiciID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAnWW91ciBib29zdCBs aWJyYXJpZXMgc2VlbXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBXZSBuZWVkIGF0IGxl YXN0ICRib29zdF9saWJfdmVyc2lvbl9zaG9ydGVuJyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KLSsJCQlmaQotKwkJZWxzZQotKwotKwotKwotK2NhdCA+PmNvbmZkZWZzLmgg PDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUIC8qKi8KLStfQUNFT0YKLSsKLSsKLSsJCQl7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkZp bGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgdGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF9maWxlc3lzdGVtK3NldH0iID0gc2V0OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0 PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZk ZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAot K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rI2luY2x1ZGUgPGJvb3N0L2ZpbGVzeXN0ZW0vcGF0aC5ocHA+Ci0raW50Ci0rbWFpbiAoKQot K3sKLSt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmZpbGVzeXN0ZW07Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwYXRoIG15X3BhdGgoICJmb28vYmFyL2RhdGEudHh0IiApOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsg KGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jv b3N0X2ZpbGVzeXN0ZW09eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KwlheF9jdl9ib29zdF9maWxlc3lzdGVtPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCSAJCSAgICAgICAg CQkJYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0n JENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xp bms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9j eHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9i b29zdF9maWxlc3lzdGVtIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICIkYXhfY3ZfYm9vc3RfZmlsZXN5 c3RlbSIgPSAieWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2Rl ZmluZSBIQVZFX0JPT1NUX0ZJTEVTWVNURU0gLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29z dF9maWxlc3lzdGVtCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAk Qk4tbWd3LW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAk Qk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9 YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsg fQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1c IiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMi Ci0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQK LSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQot K19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0r aWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRh Y19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9z c19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot KyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLSty bSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0r ZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAi JGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAn YXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYg dGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9GSUxFU1lTVEVNX0xJQj0i LWwkYXhfbGliIiAgbGlua19maWxlc3lzdGVtPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua19m aWxlc3lzdGVtPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5r X2ZpbGVzeXN0ZW0iID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0r CQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhl ciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBs aWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rf cHJvZ3JhbV9vcHRpb25zK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19leHQ9Y3Bw Ci0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKLSsKLSsJCQkgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC9wcm9ncmFtX29wdGlvbnMuaHBwPgotK2ludAot K21haW4gKCkKLSt7Ci0rYm9vc3Q6OnByb2dyYW1fb3B0aW9uczo6b3B0aW9uc19kZXNjcmlwdGlv biBnZW5lcmljKCJHZW5lcmljIG9wdGlvbnMiKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9eWVzCi0r ZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9wcm9ncmFt X29wdGlvbnM9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSAgICAgICAgICAgICAgIGFjX2V4dD1jcHAK LSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2 X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9wcm9n cmFtX29wdGlvbnMiID4mNjsgfQotKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9wcm9ncmFtX29w dGlvbnMiID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVm aW5lIEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TIC8qKi8KLStfQUNFT0YKLSsKLSsJCQkJQk49 Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJO LSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJO LW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRC Ti1tZ3ctcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9P U1RMSUJfTURXX1ZFUlNJT047IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19j dl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFy PSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGli X3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewot K3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25m dGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVu Ci0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3Qu ZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0 LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2 YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0r JGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19h Y19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwi ID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCPSItbCRheF9saWIi ICBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfcHJvZ3Jh bV9vcHRpb25zPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5r X3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRh c19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQot KwkJCQlmaQotKwkJCWZpCi0rCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBp cyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3RocmVhZCtz ZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSth Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBDWFhGTEFHU19TQVZFPSRDWFhGTEFHUwotKwot KwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCi0rICAJCQkJIENY WEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgotKwkJCSBlbGlmIHRlc3QgIngkYnVpbGRfb3Mi ID0gInhtaW5nMzIiIDsgdGhlbgotKwkJCQkgQ1hYRkxBR1M9Ii1tdGhyZWFkcyAkQ1hYRkxBR1Mi Ci0rCQkJIGVsc2UKLSsJCQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRDWFhGTEFHUyIKLSsJCQkgZmkK LSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVk ZSA8Ym9vc3QvdGhyZWFkL3RocmVhZC5ocHA+Ci0raW50Ci0rbWFpbiAoKQotK3sKLStib29zdDo6 dGhyZWFkX2dyb3VwIHRocmRzOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNf dHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0r ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0 dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBy bSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X3RocmVhZD15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X3RocmVhZD1ubwotK2ZpCi0rCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r CQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRD WFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFH UyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMg PiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3RocmVh ZCIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF90aHJlYWQiID4mNjsgfQotKwkJCWlmIHRl c3QgIngkYXhfY3ZfYm9vc3RfdGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgotKyAgICAgICAgICAgICAg IGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRoZW4KLSsgCQkJCSAgQk9PU1Rf Q0ZMQUdTPSItcHRocmVhZHMgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBlbGlmIHRlc3QgIngkYnVp bGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgotKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1tdGhyZWFk cyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVsc2UKLSsJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhy ZWFkICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZmkKLSsKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5o IDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9USFJFQUQgLyoqLwotK19BQ0VPRgotKwot KwkJCQlCTj1ib29zdF90aHJlYWQKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4t JENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4t bWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJO LW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9P U1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNf Y3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zh cj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xp Yl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sK LStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0i JGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2Fj Ci0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgot KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29u ZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5l cnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJy b3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9 IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhl bgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0 LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBl dmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJ ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQot KyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNf YWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFs IiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfVEhSRUFEX0xJQj0iLWwkYXhfbGliIiAgbGlua190 aHJlYWQ9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsg IAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJ CQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAk YXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7YXhfY3ZfYm9vc3RfaW9zdHJlYW1zK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENY WENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0 L2lvc3RyZWFtcy9maWx0ZXJpbmdfc3RyZWFtLmhwcD4KLSsJCQkJCQkJCQkJCQkgI2luY2x1ZGUg PGJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcD4KLSsKLStpbnQKLSttYWluICgpCi0rewot K3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOwotKwkJCQkJCQkJCSBuYW1lc3Bh Y2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOwotKwkJCQkJCQkJCSBpbzo6ZmlsdGVyaW5nX2lzdHJl YW0gIGluKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7Ci0rCQkJCQkJCQkJIHJl dHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzCi0rZWxzZQotKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9pb3N0cmVhbXM9bm8KLStmaQotKwot K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9pb3N0cmVhbXMiID4mNQotKyRhc19lY2hvICIk YXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0 X2lvc3RyZWFtcyIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VP RgotKyNkZWZpbmUgSEFWRV9CT09TVF9JT1NUUkVBTVMgLyoqLwotK19BQ0VPRgotKwotKwkJCQlC Tj1ib29zdF9pb3N0cmVhbXMKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJEND LW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3 LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1n dy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3Zf bGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0k YXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9z YXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSty ZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFj X2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll cyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgot KyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFs ICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRh c19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNf TGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9 IHgiInllczsgdGhlbgotKyAgQk9PU1RfSU9TVFJFQU1TX0xJQj0iLWwkYXhfbGliIiAgbGlua190 aHJlYWQ9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsg IAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJ CQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAk YXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGli cmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhl IEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHtheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAot K2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxB R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29u ZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251 Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmgu ICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lu Y2x1ZGUgPGZzdHJlYW0+Ci0rCQkJCQkJCQkJCQkJICNpbmNsdWRlIDxib29zdC9hcmNoaXZlL3Rl eHRfb2FyY2hpdmUuaHBwPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZlLmhwcD4KLSsK LStpbnQKLSttYWluICgpCi0rewotK3N0ZDo6b2ZzdHJlYW0gb2ZzKCJmaWxlbmFtZSIpOwotKwkJ CQkJCQkJCWJvb3N0OjphcmNoaXZlOjp0ZXh0X29hcmNoaXZlIG9hKG9mcyk7Ci0rCQkJCQkJCQkJ IHJldHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNf b2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPXllcwotK2Vsc2UKLSsg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbj1u bwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID4m NQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPiY2OyB9Ci0rCQkJaWYg dGVzdCAieCRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA9ICJ4eWVzIjsgdGhlbgotKwotK2Nh dCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX1NFUklBTElaQVRJ T04gLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9uCi0rCQkJCWZv ciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1z IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIk Qk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJ ICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNf dHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGlu IC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhf bGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwk eyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwk YXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25m ZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK LStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAq LwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewot KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1u byIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xp Yl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQot KwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0r YXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192 YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX1NF UklBTElaQVRJT05fTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vs c2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJQk49Ym9v c3Rfd3NlcmlhbGl6YXRpb24KLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJEND LW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3 LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1n dy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3Zf bGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0k YXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9z YXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSty ZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFj X2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll cyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgot KyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFs ICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRh c19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNf TGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9 IHgiInllczsgdGhlbgotKyAgQk9PU1RfV1NFUklBTElaQVRJT05fTElCPSItbCRheF9saWIiICBs aW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQot KwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhl bgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWlu c3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCXsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFscyBsaWJy YXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUg Qm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2F4X2N2X2Jvb3N0X3NpZ25hbHMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hY Q1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVl eHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3Qv c2lnbmFsLmhwcD4KLSsKLStpbnQKLSttYWluICgpCi0rewotK2Jvb3N0OjpzaWduYWw8dm9pZCAo KT4gc2lnOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsK LSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwot KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNv bmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhl bgotKyAgYXhfY3ZfYm9vc3Rfc2lnbmFscz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X3NpZ25hbHM9bm8KLStmaQotKwotK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBh Y19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRheF9jdl9ib29zdF9zaWduYWxzIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3Np Z25hbHMiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPSAieHll cyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9C T09TVF9TSUdOQUxTIC8qKi8KLStfQUNFT0YKLSsKLSsJCQkJQk49Ym9vc3Rfc2lnbmFscwotKwkJ CQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0k Q0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0Mg bGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0r CQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwg JGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFp biBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1s JGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3Qg XCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9 Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog Y29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwot KyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190 cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0k PwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1m IGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYm IHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNv bmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXll cyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK LStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19M aWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0r ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVj a19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGli J30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsg fQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIk YXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09T VF9TSUdOQUxTX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNl Ci0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3Qg IngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZp Ci0rCQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlz IGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfZGF0ZV90aW1l K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29t cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwot K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3Jl Z29yaWFuX3R5cGVzLmhwcD4KLSsKLStpbnQKLSttYWluICgpCi0rewotK3VzaW5nIG5hbWVzcGFj ZSBib29zdDo6Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTApOwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwot K30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfZGF0ZV90 aW1lPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9v c3RfZGF0ZV90aW1lPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfZGF0 ZV90aW1lIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPiY2OyB9Ci0r CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCi0rCi0r Y2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfREFURV9USU1F IC8qKi8KLStfQUNFT0YKLSsKLSsJCQkJQk49Ym9vc3RfZGF0ZV90aW1lCi0rCQkJCWZvciBheF9s aWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJEND LW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli JEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFz X2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hg Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4 X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4u ICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192 YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGli ICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot KwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l eGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAo ZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVz dCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNf ZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStm aQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25m dGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZl X0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRh c19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFs PWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AK LSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX0RBVEVfVElN RV9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlu a190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtf dGhyZWFkIj0ibm8iID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0r CQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhl ciB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUu Li4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3JlZ2V4K3NldH0iID0gc2V0OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0 PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZk ZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAot K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rI2luY2x1ZGUgPGJvb3N0L3JlZ2V4LmhwcD4KLSsKLStpbnQKLSttYWluICgpCi0rewotK2Jv b3N0OjpyZWdleCByKCk7IHJldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VP RgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxl IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0 LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4m NQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2Zs YWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBj b25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9yZWdleD15ZXMKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X3JlZ2V4PW5vCi0r ZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfcmVnZXgiID4mNQotKyRhc19lY2hv ICIkYXhfY3ZfYm9vc3RfcmVnZXgiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rf cmVnZXgiID0gInh5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsj ZGVmaW5lIEhBVkVfQk9PU1RfUkVHRVggLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9y ZWdleAotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1t dC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxp YiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lP TiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicn X21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBt YWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2 YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElC UwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgp OwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFj X3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK LSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNf ZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNf dGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNf YWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwg IiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJT PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyck YXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19y ZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRh c19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVu Ci0rICBCT09TVF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFr Ci0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlp ZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRh c19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQot KwkJCQlmaQotKwkJCWZpCi0rCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWls YWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlVuaXRU ZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHtheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0r Ci0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1 ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD4KLStpbnQKLSttYWluICgpCi0rewotK3VzaW5n IGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0rCQkJCQkgICAgICAgICAgICAgICAgIHRl c3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiAp OyByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsg IHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29i amV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz15ZXMKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9m cmFtZXdvcms9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hY Q1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVl eHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF91bml0X3Rl c3RfZnJhbWV3b3JrIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFt ZXdvcmsiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1l d29yayIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNk ZWZpbmUgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLIC8qKi8KLStfQUNFT0YKLSsKLSsJ CQlCTj1ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrCi0rICAgIAkJc2F2ZWRfbGRmbGFncz0iJHtM REZMQUdTfSIKLSsJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRD Qy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGli JEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT04gOyBkbwotKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke0xERkxBR1N9 IC1sJGF4X2xpYiIKLSsgICAgCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1l d29yayBsaWJyYXJ5Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF91bml0X3Rl c3RfZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxB R1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29t cGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rICAgICAgICAgICAgICAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3Qv dGVzdC91bml0X3Rlc3QuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0rdXNpbmcgYm9vc3Q6OnVu aXRfdGVzdDo6dGVzdF9zdWl0ZTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7 IHJldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGlu ayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5l cjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8 Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBs aW5rX3RocmVhZD0ieWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJ bGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRl c3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0r CQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9 JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19s aW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQotKyRhc19lY2hv ICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9Ci0rICAgICAgICAgICAg ICAgIExERkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCi0rCQkJICAgIGlmIHRlc3QgIngkbGlua190 aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQj0iLWwkYXhfbGliIgotKwotKwkJCQkJYnJlYWsKLSsJCQkJZmkKLSsg ICAgICAgICAgICAgIGRvbmUKLSsJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5v IjsgdGhlbgotKwkJCQkgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJCWZpCi0rCQlmaQotKyAg ICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHU19TQVZFRCIKLSsgICAgICAgIExERkxBR1M9IiRMREZM QUdTX1NBVkVEIgotKwlmaQotKwotKwotKwotKwotKwotKwotKwotKwotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSsjIFN1cHBvcnQgZm9yIE15U1FMIGJhY2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0dHA6Ly93d3cu bXlzcWwub3JnCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNr ZW5kLW15c3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5kX215c3FsK3Nl dH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX215c3FsOyAgaWYg dGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfbXlz cWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9teXNxbD15ZXMKLSsgICAgICBm aQotK2Vsc2UKLSsgICBlbmFibGVfYmFja2VuZF9teXNxbD1ubwotKwotK2ZpCi0rCi0rCi0raWYg dGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBNWVNRTF9E SVJTPSJteXNxbCIKLSsgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCi0rCi0rCi0rIyBDaGVj ayB3aGV0aGVyIC0td2l0aC1teXNxbCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX215c3Fs K3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX215c3FsOwotKwlNWVNRTF9pbmNf Y2hlY2s9IiR3aXRoX215c3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIg PSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9teXNxbD0ibm8iCi0rICAgICAgICBlbGlm IHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9teXNxbD0i eWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHdhbnRfbXlzcWw9InllcyIKLSsgICAg ICAgICAgICBNWVNRTF9DT05GSUc9IiR3aXRodmFsIgotKyAgICAgICAgZmkKLSsKLStlbHNlCi0r ICB3YW50X215c3FsPSJ5ZXMiCi0rCU1ZU1FMX2luY19jaGVjaz0iL3Vzci9pbmNsdWRlIC91c3Iv bG9jYWwgL29wdCIKLSsKLStmaQotKwotKwotKyAgICBNWVNRTF9DRkxBR1M9IiIKLSsgICAgTVlT UUxfTERGTEFHUz0iIgotKyAgICBNWVNRTF9WRVJTSU9OPSIiCi0rCi0rCi0rICAgIGlmIHRlc3Qg IiR3YW50X215c3FsIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0IC16ICIkTVlT UUxfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCi0rICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJteXNxbF9jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSBteXNxbF9jb25maWc7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Bh dGhfTVlTUUxfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJE1ZU1FMX0NPTkZJRyBpbgotKyAgW1xcL10qIHwgPzpb XFwvXSopCi0rICBhY19jdl9wYXRoX01ZU1FMX0NPTkZJRz0iJE1ZU1FMX0NPTkZJRyIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsg IGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQ QVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYg JGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAg YWNfY3ZfcGF0aF9NWVNRTF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0r ICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFz X3NhdmVfSUZTCi0rCi0rICA7OwotK2VzYWMKLStmaQotK01ZU1FMX0NPTkZJRz0kYWNfY3ZfcGF0 aF9NWVNRTF9DT05GSUcKLStpZiB0ZXN0IC1uICIkTVlTUUxfQ09ORklHIjsgdGhlbgotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1ZU1FMX0NPTkZJRyIgPiY1Ci0rJGFz X2VjaG8gIiRNWVNRTF9DT05GSUciID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0r Ci0rCi0rICAgICAgICBmaQotKwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICEgLXggIiRNWVNR TF9DT05GSUciOyB0aGVuCi0rICAgICAgICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6ICRNWVNRTF9DT05GSUcgZG9lcyBub3QgZXhpc3Qgb3IgaXQgaXMgbm90IGFuIGV4 ZWN0dWFibGUgZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6ICRNWVNRTF9DT05G SUcgZG9lcyBub3QgZXhpc3Qgb3IgaXQgaXMgbm90IGFuIGV4ZWN0dWFibGUgZmlsZSIgPiYyO30K LSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgICAgICAgICBNWVNRTF9DT05GSUc9 Im5vIgotKyAgICAgICAgICAgIGZvdW5kX215c3FsPSJubyIKLSsgICAgICAgIGZpCi0rCi0rICAg ICAgICBpZiB0ZXN0ICIkTVlTUUxfQ09ORklHIiAhPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAg IwotKyAgICAgICAgICAgICMgTG9vayBmb3IgTXlTUUwgQyBBUEkgaGVhZGVycwotKyAgICAgICAg ICAgICMKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBm b3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KLSsgICAgICAgICAgICBNWVNR TF9pbmNkaXI9Ci0rICAgICAgICAgICAgZm9yIG15c3FsX2luY19kaXIgaW4gJE1ZU1FMX2luY19j aGVjawotKyAgICAgICAgICAgIGRvCi0rICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRteXNx bF9pbmNfZGlyIiBcCi0rICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRteXNxbF9pbmNfZGly L215c3FsL215c3FsLmgiCi0rICAgICAgICAgICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAg ICAgIE1ZU1FMX2luY2Rpcj0kbXlzcWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAgYnJl YWsKLSsgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAgICAg ICAgaWYgdGVzdCAteiAiJE1ZU1FMX2luY2RpciIKLSsgICAgICAgICAgICB0aGVuCi0rICAgICAg ICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBEaWRuJ3QgZmlu ZCB0aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGlyIGlu ICckTVlTUUxfaW5jX2NoZWNrJyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIGNhc2UgIiRNWVNRTF9pbmNkaXIiIGlu Ci0rICAgICAgICAgICAgICAgIC8qICkgOzsKLSsgICAgICAgICAgICAgICAgKiApICB7IHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5 ICgkTVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxfaW5j ZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTVlTUUxfaW5jZGlyIiA+JjUKLSskYXNfZWNo byAiJE1ZU1FMX2luY2RpciIgPiY2OyB9Ci0rCi0rICAgICAgICAgICAgaWYgdGVzdCAiJE1ZU1FM X2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgotKyAgICAgICAgICAgICAgTVlTUUxfQ0ZM QUdTPSIiCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgTVlTUUxfQ0ZMQUdTPSIt SSR7TVlTUUxfaW5jZGlyfSIKLSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIE1ZU1FM X0xERkxBR1M9ImAkTVlTUUxfQ09ORklHIC0tbGlic2AiCi0rCi0rICAgICAgICAgICAgTVlTUUxf VkVSU0lPTj1gJE1ZU1FMX0NPTkZJRyAtLXZlcnNpb25gCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMu aCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfTVlTUUwgMQotK19BQ0VPRgotKwotKwotKyAgICAg ICAgICAgIGZvdW5kX215c3FsPSJ5ZXMiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgZm91 bmRfbXlzcWw9Im5vIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsKLSsKLSsgICAgbXlzcWxf dmVyc2lvbl9yZXE9JE1ZU1FMX1JFUV9WRVJTSU9OCi0rCi0rICAgIGlmIHRlc3QgIiRmb3VuZF9t eXNxbCIgPSAieWVzIiAtYSAtbiAiJG15c3FsX3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIE15U1FMIHZlcnNpb24g aXMgPj0gJG15c3FsX3ZlcnNpb25fcmVxIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiBN eVNRTCB2ZXJzaW9uIGlzID49ICRteXNxbF92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQotKwotKyAg ICAgICAgICAgICAgICAgICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRteXNx bF92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKLSsgICAgICAgIG15c3FsX3ZlcnNpb25fcmVx X21pbm9yPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAot KyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVx IDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkbXlz cWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCi0rICAgICAgICAgICAgbXlzcWxfdmVy c2lvbl9yZXFfbWljcm89IjAiCi0rICAgICAgICBmaQotKwotKyAgICAgICAgbXlzcWxfdmVyc2lv bl9yZXFfbnVtYmVyPWBleHByICRteXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3Jl cV9taW5vciBcKiAxMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwr ICRteXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBt eXNxbF92ZXJzaW9uX21ham9yPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1woWzAtOV0qXCknYAot KyAgICAgICAgbXlzcWxfdmVyc2lvbl9taW5vcj1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbMC05 XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkTVlT UUxfVkVSU0lPTiA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCi0rICAgICAgICBpZiB0 ZXN0ICJ4JG15c3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVuCi0rICAgICAgICAgICAgbXlz cWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBteXNxbF92ZXJz aW9uX251bWJlcj1gZXhwciAkbXlzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX21pbm9yIFwq IDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3Zl cnNpb25fbWljcm9gCi0rCi0rICAgICAgICBteXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRteXNx bF92ZXJzaW9uX251bWJlciBcPlw9ICRteXNxbF92ZXJzaW9uX3JlcV9udW1iZXJgCi0rICAgICAg ICBpZiB0ZXN0ICIkbXlzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KLSsgICAgICAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hv ICJ5ZXMiID4mNjsgfQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKyAg ICAgICAgZmkKLSsgICAgZmkKLSsKLSsKLSsKLSsKLSsKLStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJs ZV9iYWNrZW5kX215c3FsIiA9IHh5ZXM7IHRoZW4KLSsgIEhBVkVfTVlTUUxfVFJVRT0KLSsgIEhB VkVfTVlTUUxfRkFMU0U9JyMnCi0rZWxzZQotKyAgSEFWRV9NWVNRTF9UUlVFPScjJwotKyAgSEFW RV9NWVNRTF9GQUxTRT0KLStmaQotKwotKyNNWVNRTF9ESVJTPSJteXNxbCIKLSsKLSsKLSsKLSsK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE9yYWNsZSBiYWNrZW5kCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlIHdhcyBnaXZlbi4K LStpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5kX29yYWNsZStzZXR9IiA9IHNldDsgdGhlbgotKyAg ZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9vcmFjbGU7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9 IG5vOyB0aGVuCi0rICAgICAgCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KLSsgICAgICBlbHNl Ci0rCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9eWVzCi0rICAgICAgZmkKLStlbHNlCi0rICAgZW5h YmxlX2JhY2tlbmRfb3JhY2xlPW5vCi0rCi0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9i YWNrZW5kX29yYWNsZSIgPSAieHllcyI7IHRoZW4KLSsgICBPUkFDTEVfRElSUz0ib3JhY2xlIgot KyAgIE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT049IjkuMCIKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRo ZXIgLS13aXRoLW9yYWNsZSB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX29yYWNsZStzZXR9 IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGU7Ci0rICAgICAgICBpZiB0ZXN0 ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFD TEVfSE9NRSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xF X0hPTUUiCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9k aXI9IiIKLSsgICAgICAgICAgICBmaQotKyAgICAgICAgZmkKLSsKLStlbHNlCi0rCi0rICAgICAg ICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2hv bWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb3JhY2xl X2hvbWVfZGlyPSIiCi0rICAgICAgICBmaQotKwotKwotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayB3 aGV0aGVyIC0td2l0aC1vcmFjbGUtaW5jbHVkZSB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRo X29yYWNsZV9pbmNsdWRlK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX29yYWNs ZV9pbmNsdWRlOyBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iJHdpdGh2YWwiCi0rZWxzZQotKyAg b3JhY2xlX2hvbWVfaW5jbHVkZV9kaXI9IiIKLSsKLStmaQotKwotKwotKyMgQ2hlY2sgd2hldGhl ciAtLXdpdGgtb3JhY2xlLWxpYiB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX29yYWNsZV9s aWIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfb3JhY2xlX2xpYjsgb3JhY2xl X2hvbWVfbGliX2Rpcj0iJHdpdGh2YWwiCi0rZWxzZQotKyAgb3JhY2xlX2hvbWVfbGliX2Rpcj0i IgotKwotK2ZpCi0rCi0rCi0rICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSIiCi0rICAgIE9SQUNMRV9P Q0lfTERGTEFHUz0iIgotKyAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiIKLSsKLSsgICAgICAgICAg ICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9Im5vIgotKwotKyAgICBpZiB0ZXN0IC1uICIk b3JhY2xlX2hvbWVfZGlyIjsgdGhlbgotKwotKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21l X2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2RpciIgIT0gInllcyI7IHRoZW4KLSsKLSsg ICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9k aXIvcmRibXMvcHVibGljIgotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9pbmNs dWRlX2RpcjI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvZGVtbyIKLSsKLSsgICAgICAgICAgICAg ICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9saWIiCi0rICAgICAg ICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAg ICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsKLSsgICAgZWxp ZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiIC1vIC1uICIkb3JhY2xlX2hvbWVf bGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRl X2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAieWVzIjsgdGhl bgotKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2luY2x1ZGVf ZGlyIgotKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiID0gInll cyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAg ICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAi bm8iIC1hICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInllcyI7IHRoZW4KLSsgICAgICAgICAg ICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9kaXIiCi0rICAgICAgICBlbGlmIHRl c3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2Fu dF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAg IGlmIHRlc3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIgPSAieWVzIjsgdGhlbgotKyAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlz IHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAotK1Bs ZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwK LSstLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBPcmFjbGUgc3VwcG9ydCBpcyByZXF1ZXN0 ZWQgYnV0IG5vIE9yYWNsZSBwYXRocyBoYXZlIGJlZW4gcHJvdmlkZWQuIFwKLStQbGVhc2UsIGxv Y2F0ZSBPcmFjbGUgZGlyZWN0b3JpZXMgdXNpbmcgLS13aXRoLW9yYWNsZSBvciBcCi0rLS13aXRo LW9yYWNsZS1pbmNsdWRlIGFuZCAtLXdpdGgtb3JhY2xlLWxpYiBvcHRpb25zLiIgPiYyO30KLSsg ICAgZmkKLSsKLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2Rp ciIgLWEgLW4gIiRvcmFjbGVfbGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIHNhdmVkX0NQUEZM QUdTPSIkQ1BQRkxBR1MiCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9p bmNsdWRlX2RpciIKLSsKLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNs dWRlX2RpcjIiOyB0aGVuCi0rICAgICAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFj bGVfaW5jbHVkZV9kaXIyIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgICMgRmlndXJlIG91dCBp ZiB3ZSBhcmUgYnVpbGRpbmcgb24gd2luMzIuCi0rICAgICAgICBjYXNlICRob3N0X29zIGluCi0r ICAgICAgICAgICAgKm1pbmd3MzIqICkgV0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKmN5Z3dp biogKSAgV0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKikgV0lOMzI9bm8gOzsKLSsgICAgICAg IGVzYWMKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRXSU4zMiIgPSAibm8iCi0rICAgICAgICB0aGVu Ci0rICAgICAgICAgICAgb2NpX2xpYnM9Ii1sY2xudHNoIC1sbm56MTEiCi0rICAgICAgICBlbHNl Ci0rICAgICAgICAgICAgb2NpX2xpYnM9Ii1sb2NpIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAg IHNhdmVkX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICAgICAgc2F2ZWRfTElCUz0iJExJQlMiCi0r ICAgICAgICBvY2lfbGRmbGFncz0iLUwkb3JhY2xlX2xpYl9kaXIiCi0rICAgICAgICBMREZMQUdT PSIkTERGTEFHUyAkb2NpX2xkZmxhZ3MiCi0rICAgICAgICBMSUJTPSIkTElCUyAkb2NpX2xpYnMi Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBpbiAkb3JhY2xlX2luY2x1 ZGVfZGlyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJz IGluICRvcmFjbGVfaW5jbHVkZV9kaXIuLi4gIiA+JjY7IH0KLSsKLSsgICAgICAgIGFjX2V4dD1j cHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENY WEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVy X2dudQotKwotKyAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rCi0rICAg ICAgICAgICAgLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sK LSsKLSsjaWYgZGVmaW5lZChPQ0lfTUFKT1JfVkVSU0lPTikKLSsjaWYgT0NJX01BSk9SX1ZFUlNJ T04gPT0gMTAgJiYgT0NJX01JTk9SX1ZFUlNJT04gPT0gMgotKy8vIE9yYWNsZSAxMC4yIGRldGVj dGVkCi0rI2VuZGlmCi0rI2VsaWYgZGVmaW5lZChPQ0lfVjdfU1lOVEFYKQotKy8vIE9LLCBvbGRl ciBPcmFjbGUgZGV0ZWN0ZWQKLSsvLyBUT0RPIC0gbWxvc2tvdDogZmluZCBiZXR0ZXIgbWFjcm8g dG8gY2hlY2sgZm9yIG9sZGVyIHZlcnNpb25zOwotKyNlbHNlCi0rIyAgZXJyb3IgT3JhY2xlIG9j aS5oIGhlYWRlciBub3QgZm91bmQKLSsjZW5kaWYKLSsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwot K30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKwotKyAgICAgICAgICAgIE9SQUNM RV9PQ0lfQ0ZMQUdTPSItSSRvcmFjbGVfaW5jbHVkZV9kaXIiCi0rCi0rICAgICAgICAgICAgaWYg dGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIE9S QUNMRV9PQ0lfQ0ZMQUdTPSIkT1JBQ0xFX09DSV9DRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGly MiIKLSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9Inll cyIKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMi ID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJubyIKLSsgICAg ICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub3QgZm91bmQiID4m NQotKyRhc19lY2hvICJub3QgZm91bmQiID4mNjsgfQotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAg ICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBPcmFjbGUgT0NJIGxp YnJhcmllcyBpbiAkb3JhY2xlX2xpYl9kaXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBPcmFjbGUgT0NJIGxpYnJhcmllcyBpbiAkb3JhY2xlX2xpYl9kaXIuLi4gIiA+JjY7IH0KLSsK LSsgICAgICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsKLSsgICAgICAgICAgICAgICAgLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVk ZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLStPQ0lFbnYqIGVudmggPSAwOwotK09D SUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAsIDApOwotK2lmIChl bnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9FTlYpOwotKwotKwotKyAgOwotKyAg cmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwot KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNv bmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsK LSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rICAgICAgICAgICAgICAgIE9SQUNM RV9PQ0lfTERGTEFHUz0iJG9jaV9sZGZsYWdzICRvY2lfbGlicyIKLSsgICAgICAgICAgICAgICAg b2NpX2xpYl9mb3VuZD0ieWVzIgotKyAgICAgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKwotK2Vs c2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLSsgICAgICAgICAgICAgICAgb2Np X2xpYl9mb3VuZD0ibm8iCi0rICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vdCBmb3VuZCIgPiY1Ci0rJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9 Ci0rCi0rCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0r ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAgICAgICBh Y19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKLSsKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBDUFBGTEFHUz0iJHNhdmVk X0NQUEZMQUdTIgotKyAgICAgICAgTERGTEFHUz0iJHNhdmVkX0xERkxBR1MiCi0rICAgICAgICBM SUJTPSIkc2F2ZWRfTElCUyIKLSsgICAgZmkKLSsKLSsgICAgICAgICAgICAgICAgb3JhY2xlX3Zl cnNpb25fcmVxPSRPUkFDTEVfT0NJX1JFUV9WRVJTSU9OCi0rCi0rICAgIGlmIHRlc3QgIiRvY2lf aGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiIC1hICIkb2NpX2xpYl9mb3VuZCIgPSAieWVzIiAtYSBcCi0r ICAgICAgICAtbiAiJG9yYWNsZV92ZXJzaW9uX3JlcSI7IHRoZW4KLSsKLSsgICAgICAgIG9yYWNs ZV92ZXJzaW9uX21ham9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NQUpPUl9WRVJTSU9O LionIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUg T0NJX01BSk9SX1ZFUlNJT04gICovLycgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKLSsKLSsgICAgICAgIG9yYWNsZV92ZXJzaW9u X21pbm9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NSU5PUl9WRVJTSU9OLionIFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01JTk9S X1ZFUlNJT04gICovLycgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUg J3MvICAqXC9cKi4qXCpcLy8vJ2AKLSsKLSsgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9u X3JlcSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlz ID49ICRvcmFjbGVfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KLSsKLSsgICAgICAgIGlmIHRlc3Qg LW4gIiRvcmFjbGVfdmVyc2lvbl9tYWpvciIgLWEgLW4gJCJvcmFjbGVfdmVyc2lvbl9taW5vciI7 IHRoZW4KLSsKLSsgICAgICAgICAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiRvcmFjbGVfdmVyc2lv bl9tYWpvci4kb3JhY2xlX3ZlcnNpb25fbWlub3IiCi0rCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRvcmFjbGVfdmVy c2lvbl9yZXEgOiAnXChbMC05XSpcKSdgCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVx X21pbm9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AK LSsKLSsgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRvcmFjbGVf dmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwYAotKwot KyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX251bWJlcj1gZXhwciAkb3Jh Y2xlX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9taW5vciBcKiAxMDAwYAotKwotKyAgICAgICAg ICAgIG9yYWNsZV92ZXJzaW9uX2NoZWNrPWBleHByICRvcmFjbGVfdmVyc2lvbl9udW1iZXIgXD5c PSAkb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgICAgICBpZiB0ZXN0ICIkb3Jh Y2xlX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAgICAgICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2 OyB9Ci0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfT1JBQ0xF IDEKLStfQUNFT0YKLSsKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4m NjsgfQotKyAgICAgICAgICAgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1aXJlZCB2ZXJzaW9u IGlzICRvcmFjbGVfdmVyc2lvbl9yZXEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBP cmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJlcXVpcmVkIHZlcnNpb24gaXMg JG9yYWNsZV92ZXJzaW9uX3JlcSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LSsgICAgICAgICAgICBmaQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIE9SQUNMRV9PQ0lf VkVSU0lPTj0iVU5LTk9XTiIKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogT3JhY2xlIHZlcnNpb24gdW5rbm93 biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IFdBUk5JTkc6IE9yYWNsZSB2ZXJzaW9uIHVua25vd24sIHByb2JhYmx5IE9D SSBvbGRlciB0aGFuIDEwLjIgaXMgYXZhaWxhYmxlIiA+JjI7fQotKyAgICAgICAgZmkKLSsgICAg ZmkKLSsKLSsKLSsKLSsKLSsKLStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNs ZSIgPSB4eWVzOyB0aGVuCi0rICBIQVZFX09SQUNMRV9UUlVFPQotKyAgSEFWRV9PUkFDTEVfRkFM U0U9JyMnCi0rZWxzZQotKyAgSEFWRV9PUkFDTEVfVFJVRT0nIycKLSsgIEhBVkVfT1JBQ0xFX0ZB TFNFPQotK2ZpCi0rCi0rI09SQUNMRV9ESVJTPSJvcmFjbGUiCi0rCi0rCi0rCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBTdXBwb3J0IGZvciBQb3N0Z3JlU1FMIGJhY2tlbmQKLSsjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg IGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbDsgIGlmIHRlc3QgIiRlbmFibGV2 YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KLSsg ICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPXllcwotKyAgICAgIGZpCi0r ZWxzZQotKyAgIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KLSsKLStmaQotKwotKwotK2lm IHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBQ T1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCi0rICAgUE9TVEdSRVNRTF9SRVFfVkVSU0lPTj0i Ny4xLjQiCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1wb3N0Z3Jlc3FsIHdhcyBnaXZl bi4KLStpZiB0ZXN0ICIke3dpdGhfcG9zdGdyZXNxbCtzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0 aHZhbD0kd2l0aF9wb3N0Z3Jlc3FsOwotKwlQT1NUR1JFU1FMX2luY19jaGVjaz0iJHdpdGhfcG9z dGdyZXNxbC9pbmNsdWRlIgotKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhl bgotKyAgICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBlbGlmIHRlc3Qg IiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5 ZXMiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0r ICAgICAgICAgICAgUEdfQ09ORklHPSIkd2l0aHZhbCIKLSsgICAgICAgIGZpCi0rCi0rZWxzZQot KyAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2lu Y2x1ZGUgL3Vzci9sb2NhbCAvb3B0IgotKwotK2ZpCi0rCi0rCi0rICAgIFBPU1RHUkVTUUxfQ0ZM QUdTPSIiCi0rICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX1BPU1RH UkVTUUw9IiIKLSsKLSsKLSsgICAgaWYgdGVzdCAiJHdhbnRfcG9zdGdyZXNxbCIgPSAieWVzIjsg dGhlbgotKwotKyAgICAgICAgaWYgdGVzdCAteiAiJFBHX0NPTkZJRyIgLW8gdGVzdDsgdGhlbgot KyAgICAgICAgICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGdfY29uZmlnIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgcGdfY29uZmln OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX1BHX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXNlICRQR19DT05GSUcg aW4KLSsgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgYWNfY3ZfcGF0aF9QR19DT05GSUc9IiRQR19D T05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAg OzsKLSsgICopCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9y IGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCi0rICAgIGFjX2N2X3BhdGhfUEdfQ09ORklHPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25l Ci0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgOzsKLStlc2FjCi0rZmkKLStQR19DT05GSUc9JGFj X2N2X3BhdGhfUEdfQ09ORklHCi0raWYgdGVzdCAtbiAiJFBHX0NPTkZJRyI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQR19DT05GSUciID4mNQotKyRhc19l Y2hvICIkUEdfQ09ORklHIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwot KyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgISAteCAiJFBHX0NPTkZJRyI7IHRoZW4K LSsgICAgICAgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJFBHX0NP TkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBp dCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRf cG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJFBHX0NP TkZJRyIgIT0gIm5vIjsgdGhlbgotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICAjIExvb2sg Zm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycwotKyAgICAgICAgICAgICMKLSsgICAgICAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIFBvc3RncmVzcWwgaW5j bHVkZSBkaXJlY3RvcnkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBQb3N0Z3Jlc3Fs IGluY2x1ZGUgZGlyZWN0b3J5Li4uICIgPiY2OyB9Ci0rICAgICAgICAgICAgUE9TVEdSRVNRTF9p bmNkaXI9Ci0rICAgICAgICAgICAgZm9yIHBvc3RncmVzcWxfaW5jX2RpciBpbiAkUE9TVEdSRVNR TF9pbmNfY2hlY2sKLSsgICAgICAgICAgICBkbwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1k ICIkcG9zdGdyZXNxbF9pbmNfZGlyIiBcCi0rICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRw b3N0Z3Jlc3FsX2luY19kaXIvcG9zdGdyZXNfZXh0LmgiCi0rICAgICAgICAgICAgICAgIHRoZW4K LSsgICAgICAgICAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGlyPSRwb3N0Z3Jlc3FsX2luY19k aXIKLSsgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0rICAgICAgICAgICAgICAgIGZpCi0rICAg ICAgICAgICAgZG9uZQotKwotKyAgICAgICAgICAgIGlmIHRlc3QgLXogIiRQT1NUR1JFU1FMX2lu Y2RpciIKLSsgICAgICAgICAgICB0aGVuCi0rICAgICAgICAgICAgICAgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBpbmNsdWRl IGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdS RVNRTF9pbmNfY2hlY2snIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAg ICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgY2FzZSAiJFBPU1RHUkVTUUxfaW5jZGlyIiBp bgotKyAgICAgICAgICAgICAgICAvKiApIDs7Ci0rICAgICAgICAgICAgICAgICogKSAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGly ZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBUaGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVj dG9yeSAoJFBPU1RHUkVTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7 fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsK LSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUE9TVEdS RVNRTF9pbmNkaXIiID4mNQotKyRhc19lY2hvICIkUE9TVEdSRVNRTF9pbmNkaXIiID4mNjsgfQot KwotKyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNs dWRlIjsgdGhlbgotKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKLSsgICAgICAg ICAgICBlbHNlCi0rICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVT UUxfaW5jZGlyfSIKLSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxf TERGTEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKLSsKLSsgICAgICAgICAgICBQ T1NUR1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3Rn cmVTUUwgIyMnYAotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBI QVZFX1BPU1RHUkVTUUwgMQotK19BQ0VPRgotKwotKwotKyAgICAgICAgICAgIGZvdW5kX3Bvc3Rn cmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3Fs PSJubyIKLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rCi0rCi0rICAgIHBvc3RncmVzcWxfdmVy c2lvbl9yZXE9JFBPU1RHUkVTUUxfUkVRX1ZFUlNJT04KLSsKLSsgICAgaWYgdGVzdCAiJGZvdW5k X3Bvc3RncmVzcWwiID0gInllcyIgLWEgLW4gIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIjsgdGhl bgotKwotKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIFBv c3RncmVTUUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3Fs X3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgcG9z dGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6 ICdcKFswLTldKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4 cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lv bl9yZXEgOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgaWYgdGVzdCAi eCRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCi0rICAgICAgICBmaQotKwotKyAgICAg ICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21p Y3JvYAotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpv cj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1woWzAtOV0qXCknYAotKyAgICAgICAgcG9z dGdyZXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0q XC5cKFswLTldKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAk UE9TVEdSRVNRTF9WRVJTSU9OIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAg ICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAg ICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0r ICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNp b25fbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKLSsKLSsg ICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9u X251bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgIGlm IHRlc3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNo byAieWVzIiA+JjY7IH0KLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsg ICAgICAgIGZpCi0rICAgIGZpCi0rCi0rCi0rCi0rCi0rCi0rZmkKLSsgaWYgdGVzdCAieCRlbmFi bGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9IHh5ZXM7IHRoZW4KLSsgIEhBVkVfUE9TVEdSRVNRTF9U UlVFPQotKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPScjJwotK2Vsc2UKLSsgIEhBVkVfUE9TVEdS RVNRTF9UUlVFPScjJwotKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPQotK2ZpCi0rCi0rI1BPU1RH UkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsKLSsKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1 cHBvcnQgZm9yIGRvY3VtZW50YXRpb24KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrcyBmb3IgZG9j dW1lbnRhdGlvbiBidWlsZCB0b29scwotKyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3Rl eGluZm9dLCBbeWVzXSwgW25vXSkKLSsjaWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhu bzsgdGhlbgotKyMgIHRlc3QgIngkdGV4aW5mb19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19k b2M9bm8KLSsjICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQotKyNmaQotKyBpZiB0 ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzOyB0aGVuCi0rICBJTkZPX0RPQ19UUlVFPQot KyAgSU5GT19ET0NfRkFMU0U9JyMnCi0rZWxzZQotKyAgSU5GT19ET0NfVFJVRT0nIycKLSsgIElO Rk9fRE9DX0ZBTFNFPQotK2ZpCi0rCi0rCi0rIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24gYnVp bGQgdG9vbHMKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRveHlnZW4iLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBkb3h5Z2VuOyBhY193 b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHthY19jdl9wcm9nX2RveHlnZW5fb2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGRveHlnZW5f b2siOyB0aGVuCi0rICBhY19jdl9wcm9nX2RveHlnZW5fb2s9IiRkb3h5Z2VuX29rIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2RveHlnZW5fb2s9 InllcyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQot K0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RveHlnZW5fb2si ICYmIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0ibm8iCi0rZmkKLStmaQotK2RveHlnZW5fb2s9JGFj X2N2X3Byb2dfZG94eWdlbl9vawotK2lmIHRlc3QgLW4gIiRkb3h5Z2VuX29rIjsgdGhlbgotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGRveHlnZW5fb2siID4mNQotKyRh c19lY2hvICIkZG94eWdlbl9vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsK LSsKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImxhdGV4Iiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgbGF0ZXg7IGFjX3dvcmQ9JDIKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfbGF0ZXhfb2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGxhdGV4X29rIjsgdGhlbgotKyAg YWNfY3ZfcHJvZ19sYXRleF9vaz0iJGxhdGV4X29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2xhdGV4X29rPSJ5ZXMiCi0rICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0r Ci0rICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19sYXRleF9vayIgJiYgYWNfY3ZfcHJvZ19sYXRleF9v az0ibm8iCi0rZmkKLStmaQotK2xhdGV4X29rPSRhY19jdl9wcm9nX2xhdGV4X29rCi0raWYgdGVz dCAtbiAiJGxhdGV4X29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGxhdGV4X29rIiA+JjUKLSskYXNfZWNobyAiJGxhdGV4X29rIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi ZHZpcHMiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1t eSBkdmlwczsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19kdmlwc19vaytzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1u ICIkZHZpcHNfb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX2R2aXBzX29rPSIkZHZpcHNfb2siICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9 JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRl c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfZHZpcHNf b2s9InllcyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9u ZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX2R2aXBzX29r IiAmJiBhY19jdl9wcm9nX2R2aXBzX29rPSJubyIKLStmaQotK2ZpCi0rZHZpcHNfb2s9JGFjX2N2 X3Byb2dfZHZpcHNfb2sKLStpZiB0ZXN0IC1uICIkZHZpcHNfb2siOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZHZpcHNfb2siID4mNQotKyRhc19lY2hvICIk ZHZpcHNfb2siID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICJncyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGdzOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2dzX29r K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGlmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZ3Nfb2s9IiRnc19v ayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZT PSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsg IElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlm IHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19n c19vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStk b25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZ3Nfb2si ICYmIGFjX2N2X3Byb2dfZ3Nfb2s9Im5vIgotK2ZpCi0rZmkKLStnc19vaz0kYWNfY3ZfcHJvZ19n c19vawotK2lmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRnc19vayIgPiY1Ci0rJGFzX2VjaG8gIiRnc19vayIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2Rv YyIgIT0geG5vOyB0aGVuCi0rICB0ZXN0ICJ4JGRveHlnZW5fb2siICE9IHh5ZXMgJiYgZW5hYmxl X2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGxhdGV4X29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1s X2RvYz1ubwotKyAgdGVzdCAieCRkdmlwc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9 bm8KLSsgIHRlc3QgIngkZ3Nfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICAj IEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInBlcmwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBwZXJsOyBhY193b3JkPSQyCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9w YXRoX1BFUkwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgY2FzZSAkUEVSTCBpbgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBhY19j dl9wYXRoX1BFUkw9IiRQRVJMIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRo IGEgcGF0aC4KLSsgIDs7Ci0rICAqKQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwot KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX1BFUkw9IiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9u ZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICA7OwotK2VzYWMKLStmaQotK1BFUkw9 JGFjX2N2X3BhdGhfUEVSTAotK2lmIHRlc3QgLW4gIiRQRVJMIjsgdGhlbgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFBFUkwiID4mNQotKyRhc19lY2hvICIkUEVSTCIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotKyBpZiB0ZXN0ICJ4 JGVuYWJsZV9odG1sX2RvYyIgPSB4eWVzOyB0aGVuCi0rICBIVE1MX0RPQ19UUlVFPQotKyAgSFRN TF9ET0NfRkFMU0U9JyMnCi0rZWxzZQotKyAgSFRNTF9ET0NfVFJVRT0nIycKLSsgIEhUTUxfRE9D X0ZBTFNFPQotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9y IHRlc3RzCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkaWZmIiwgc28gaXQgY2FuIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgZGlmZjsgYWNfd29yZD0kMgot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19kaWZmX29rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgotKyAg YWNfY3ZfcHJvZ19kaWZmX29rPSIkZGlmZl9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStm b3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19kaWZmX29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0r ICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0r ICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19kaWZmX29rIiAmJiBhY19jdl9wcm9nX2RpZmZfb2s9Im5v IgotK2ZpCi0rZmkKLStkaWZmX29rPSRhY19jdl9wcm9nX2RpZmZfb2sKLStpZiB0ZXN0IC1uICIk ZGlmZl9vayI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRk aWZmX29rIiA+JjUKLSskYXNfZWNobyAiJGRpZmZfb2siID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4m NjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzZWQiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBzZWQ7IGFjX3dv cmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfc2VkX29rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRzZWRfb2siOyB0aGVu Ci0rICBhY19jdl9wcm9nX3NlZF9vaz0iJHNlZF9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK LStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19zZWRfb2s9InllcyIKLSsgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK LSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsK LSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX3NlZF9vayIgJiYgYWNfY3ZfcHJvZ19zZWRfb2s9Im5v IgotK2ZpCi0rZmkKLStzZWRfb2s9JGFjX2N2X3Byb2dfc2VkX29rCi0raWYgdGVzdCAtbiAiJHNl ZF9vayI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRzZWRf b2siID4mNQotKyRhc19lY2hvICIkc2VkX29rIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0K LStmaQotKwotKwotK2VuYWJsZV90ZXN0cz15ZXMKLSt0ZXN0ICJ4JGRpZmZfb2siICE9IHh5ZXMg JiYgZW5hYmxlX3Rlc3RzPW5vCi0rdGVzdCAieCRzZWRfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rl c3RzPW5vCi0rIGlmIHRlc3QgIngkZW5hYmxlX3Rlc3RzIiA9IHh5ZXM7IHRoZW4KLSsgIFJVTl9U RVNUU19UUlVFPQotKyAgUlVOX1RFU1RTX0ZBTFNFPScjJwotK2Vsc2UKLSsgIFJVTl9URVNUU19U UlVFPScjJwotKyAgUlVOX1RFU1RTX0ZBTFNFPQotK2ZpCi0rCi0rCi0rCi0rIyBDaGVja3MgZm9y IGhlYWRlciBmaWxlcwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFO U0kgQyBoZWFkZXIgZmlsZXMuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9z dGRjK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1 ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDxzdGRhcmcuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+ Ci0rI2luY2x1ZGUgPGZsb2F0Lmg+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYg eyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRh Y19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQot KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0 IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgot KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3Zf aGVhZGVyX3N0ZGM9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlh Y19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0raWYgdGVzdCAkYWNfY3ZfaGVh ZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsgICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRl Y2xhcmUgbWVtKiwgY29udHJhcnkgdG8gQU5TSS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBl bmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwotK19BQ0VPRgotK2lm IChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSsgICRFR1JFUCAibWVt Y2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFkZXJf c3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19j dl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBu b3QgZGVjbGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgotKyAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rCi0rX0FDRU9G Ci0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotKyAgJEVHUkVQ ICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFk ZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRh Y19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUg Z2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNpLgotKyAgaWYgdGVz dCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxjdHlwZS5oPgot KyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaWYgKCgnICcgJiAweDBGRikgPT0gMHgwMjApCi0rIyBk ZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQotKyMgZGVmaW5lIFRP VVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKLSsjZWxzZQot KyMgZGVmaW5lIElTTE9XRVIoYykgXAotKwkJICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScp IFwKLSsJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAotKwkJICAgICB8fCAo J3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKLSsjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VS KGMpID8gKChjKSB8IDB4NDApIDogKGMpKQotKyNlbmRpZgotKwotKyNkZWZpbmUgWE9SKGUsIGYp ICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi0raW50Ci0rbWFpbiAoKQotK3sKLSsg IGludCBpOwotKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQotKyAgICBpZiAoWE9SIChpc2xv d2VyIChpKSwgSVNMT1dFUiAoaSkpCi0rCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQot KyAgICAgIHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSsgIHsgKGNhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwot KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQotKwotKyggZXhpdCAkYWNfc3RhdHVzICkKLSthY19jdl9oZWFkZXJf c3RkYz1ubwotK2ZpCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlICouY29yZSBj b3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotKwotK2ZpCi0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQot KyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQotK2lmIHRlc3QgJGFjX2N2X2hl YWRlcl9zdGRjID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsj ZGVmaW5lIFNURENfSEVBREVSUyAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5 IGJvdGggYmUgaW5jbHVkZWQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGlt ZS5oIGFuZCBzeXMvdGltZS5oIG1heSBib3RoIGJlIGluY2x1ZGVkLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHthY19jdl9oZWFkZXJfdGltZStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsjaW5jbHVkZSA8c3lzL3Rp bWUuaD4KLSsjaW5jbHVkZSA8dGltZS5oPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0raWYgKChz dHJ1Y3QgdG0gKikgMCkKLStyZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNF T0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls ZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfaGVhZGVyX3RpbWU9eWVzCi0rZWxz ZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9oZWFkZXJfdGltZT1ubwot K2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfaGVhZGVyX3RpbWUiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3RpbWUiID4m NjsgfQotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl90aW1lID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+ Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCi0rX0FD RU9GCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LStmb3IgYWNfaGVhZGVyIGluIGNtYXRoIFwKLSsgIGRlcXVlIFwKLSsgIGZzdHJlYW0gXAotKyAg aW9tYW5pcCBcCi0rICBpb3N0cmVhbSBcCi0rICBzc3RyZWFtIFwKLSsgIGxpbWl0cyBcCi0rICBs aXN0IFwKLSsgIHNldCBcCi0rICB2ZWN0b3IgXAotKyAgbWFwIFwKLSsgIHF1ZXVlIFwKLSsgIHN0 ZGV4Y2VwdCBcCi0rICBzdHJpbmcKLStkbwotK2FzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2 X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKLStpZiB7IGFzX3Zhcj0kYXNfYWNfSGVh ZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9Ci0raWYgeyBh c192YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0 IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStmaQotK2FjX3Jlcz1g ZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidg Ci0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+ JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rZWxzZQotKyAgIyBJcyB0aGUgaGVhZGVy IGNvbXBpbGFibGU/Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19o ZWFkZXIgdXNhYmlsaXR5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyAkYWNfaGVhZGVyIHVz YWJpbGl0eS4uLiAiID4mNjsgfQotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rJGFjX2luY2x1ZGVzX2RlZmF1bHQKLSsjaW5jbHVkZSA8JGFjX2hlYWRlcj4KLStf QUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25m dGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfaGVhZGVyX2NvbXBpbGVy PW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0LiRhY19leHQKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKLSskYXNfZWNobyAiJGFjX2hlYWRlcl9jb21waWxlciIg PiY2OyB9Ci0rCi0rIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/Ci0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UuLi4gIiA+JjY7IH0KLStjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDwkYWNfaGVhZGVyPgotK19B Q0VPRgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVz dC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19j eHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICBhY19oZWFkZXJfcHJlcHJvYz15ZXMK LStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICBhY19oZWFkZXJfcHJlcHJv Yz1ubwotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQot KyRhc19lY2hvICIkYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQotKwotKyMgU28/ICBXaGF0IGFi b3V0IHRoaXMgaGVhZGVyPwotK2Nhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3By ZXByb2M6JGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbgotKyAgeWVzOm5vOiApCi0rICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBi eSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGls ZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQotKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRo ZSBjb21waWxlcidzIHJlc3VsdCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFj X2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KLSsg ICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCi0rICAgIDs7Ci0rICBubzp5ZXM6KiApCi0rICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1 dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRh Y19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLSsgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBm b3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUg aGVhZGVycz8iID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H OiAkYWNfaGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1l bnRhdGlvbiIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVk XCIiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0 aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9Ci0rICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdp dGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1 bHQiID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNf aGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2Ui ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1 cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KLSsgICAgKCBjYXQg PDxcX0FTQk9YCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICMjCi0rIyMgUmVwb3J0IHRoaXMgdG8gbXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0 ICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMj Ci0rX0FTQk9YCi0rICAgICApIHwgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYy Ci0rICAgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJGFjX2hlYWRlciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIu Li4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7 JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGV2YWwgIiRhc19hY19IZWFkZXI9XCRhY19oZWFkZXJfcHJlcHJvYyIK LStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19l Y2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rCi0rZmkKLSth c192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KLSsJCSAkYXNfZWNobyAiJGFz X3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgY2F0ID4+ Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIi IHwgJGFzX3RyX2NwcGAgMQotK19BQ0VPRgotKwotK2ZpCi0rCi0rZG9uZQotKwotKwotKwotKyMg RGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMKLSthY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmls ZXMgTWFrZWZpbGUgc29jaS1jb25maWcgc29jaS5wYyBzb2NpLnNwZWMgc29jaS9NYWtlZmlsZSBz b2NpL2NvcmUvTWFrZWZpbGUgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9N YWtlZmlsZSBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUgc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZp bGUgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSBtYW4vTWFrZWZpbGUgZG9jL01h a2VmaWxlIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSBidWlsZC9NYWtlZmlsZSBidWlsZC91bml4L01h a2VmaWxlIGJ1aWxkL21zdmM4MC9NYWtlZmlsZSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIGJ1 aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiCi0rCi0rCi0rY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9G Ci0rIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMg b2YgY29uZmlndXJlCi0rIyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUg c2hhcmVkIGJldHdlZW4gY29uZmlndXJlCi0rIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucywg c2VlIGNvbmZpZ3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4KLSsjIEl0IGlzIG5vdCB1c2Vm dWwgb24gb3RoZXIgc3lzdGVtcy4gIElmIGl0IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0Ci0r IyB3YW50IHRvIGtlZXAsIHlvdSBtYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCi0rIwotKyMgY29uZmln LnN0YXR1cyBvbmx5IHBheXMgYXR0ZW50aW9uIHRvIHRoZSBjYWNoZSBmaWxlIGlmIHlvdSBnaXZl IGl0Ci0rIyB0aGUgLS1yZWNoZWNrIG9wdGlvbiB0byByZXJ1biBjb25maWd1cmUuCi0rIwotKyMg YGFjX2N2X2Vudl9mb28nIHZhcmlhYmxlcyAoc2V0IG9yIHVuc2V0KSB3aWxsIGJlIG92ZXJyaWRk ZW4gd2hlbgotKyMgbG9hZGluZyB0aGlzIGZpbGUsIG90aGVyICp1bnNldCogYGFjX2N2X2Zvbycg d2lsbCBiZSBhc3NpZ25lZCB0aGUKLSsjIGZvbGxvd2luZyB2YWx1ZXMuCi0rCi0rX0FDRU9GCi0r Ci0rIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5l d2xpbmVzIGluIHZhbHVlcywKLSsjIGJ1dCB3ZSBrbm93IG9mIG5vIHdvcmthcm91bmQgdGhhdCBp cyBzaW1wbGUsIHBvcnRhYmxlLCBhbmQgZWZmaWNpZW50LgotKyMgU28sIHdlIGtpbGwgdmFyaWFi bGVzIGNvbnRhaW5pbmcgbmV3bGluZXMuCi0rIyBVbHRyaXggc2ggc2V0IHdyaXRlcyB0byBzdGRl cnIgYW5kIGNhbid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0bHksCi0rIyBhbmQgc2V0cyB0aGUgaGln aCBiaXQgaW4gdGhlIGNhY2hlIGZpbGUgdW5sZXNzIHdlIGFzc2lnbiB0byB0aGUgdmFycy4KLSso Ci0rICBmb3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwgc2VkIC1uICdzL15cKFthLXpBLVpfXVth LXpBLVowLTlfXSpcKT0uKi9cMS9wJ2A7IGRvCi0rICAgIGV2YWwgYWNfdmFsPVwkJGFjX3Zhcgot KyAgICBjYXNlICRhY192YWwgaW4gIygKLSsgICAgKiR7YXNfbmx9KikKLSsgICAgICBjYXNlICRh Y192YXIgaW4gIygKLSsgICAgICAqX2N2XyopIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBX QVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlu cyBhIG5ld2xpbmUiID4mMjt9IDs7Ci0rICAgICAgZXNhYwotKyAgICAgIGNhc2UgJGFjX3ZhciBp biAjKAotKyAgICAgIF8gfCBJRlMgfCBhc19ubCkgOzsgIygKLSsgICAgICBCQVNIX0FSR1YgfCBC QVNIX1NPVVJDRSkgZXZhbCAkYWNfdmFyPSA7OyAjKAotKyAgICAgICopICRhc191bnNldCAkYWNf dmFyIDs7Ci0rICAgICAgZXNhYyA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICAoc2V0KSAy PiYxIHwKLSsgICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPScgJzsgc2V0KSAyPiYxYCBpbiAjKAot KyAgICAqJHthc19ubH1hY19zcGFjZT1cICopCi0rICAgICAgIyBgc2V0JyBkb2VzIG5vdCBxdW90 ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90ZXMgKGRvdWJsZS1xdW90ZQotKyAgICAgICMgc3Vic3Rp dHV0aW9uIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0dXJucyBcXCBpbnRvIFwpLgotKyAg ICAgIHNlZCAtbiBcCi0rCSJzLycvJ1xcXFwnJy9nOwotKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVt XSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1xcMicvcCIKLSsgICAgICA7 OyAjKAotKyAgICAqKQotKyAgICAgICMgYHNldCcgcXVvdGVzIGNvcnJlY3RseSBhcyByZXF1aXJl ZCBieSBQT1NJWCwgc28gZG8gbm90IGFkZCBxdW90ZXMuCi0rICAgICAgc2VkIC1uICIvXltfJGFz X2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKLSsgICAgICA7OwotKyAgICBlc2Fj IHwKLSsgICAgc29ydAotKykgfAotKyAgc2VkICcKLSsgICAgIC9eYWNfY3ZfZW52Xy9iIGVuZAot KyAgICAgdCBjbGVhcgotKyAgICAgOmNsZWFyCi0rICAgICBzL15cKFtePV0qXCk9XCguKlt7fV0u KlwpJC90ZXN0ICIke1wxK3NldH0iID0gc2V0IHx8ICYvCi0rICAgICB0IGVuZAotKyAgICAgcy9e XChbXj1dKlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCi0rICAgICA6ZW5kJyA+PmNvbmZjYWNoZQot K2lmIGRpZmYgIiRjYWNoZV9maWxlIiBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7 IGVsc2UKLSsgIGlmIHRlc3QgLXcgIiRjYWNoZV9maWxlIjsgdGhlbgotKyAgICB0ZXN0ICJ4JGNh Y2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxsIiAmJgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogdXBkYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9Ci0rICAgIGNhdCBjb25mY2FjaGUg PiRjYWNoZV9maWxlCi0rICBlbHNlCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBu b3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogbm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9 Ci0rICBmaQotK2ZpCi0rcm0gLWYgY29uZmNhY2hlCi0rCi0rdGVzdCAieCRwcmVmaXgiID0geE5P TkUgJiYgcHJlZml4PSRhY19kZWZhdWx0X3ByZWZpeAotKyMgTGV0IG1ha2UgZXhwYW5kIGV4ZWNf cHJlZml4LgotK3Rlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7 cHJlZml4fScKLSsKLStERUZTPS1ESEFWRV9DT05GSUdfSAotKwotK2FjX2xpYm9ianM9Ci0rYWNf bHRsaWJvYmpzPQotK2ZvciBhY19pIGluIDogJExJQk9CSlM7IGRvIHRlc3QgIngkYWNfaSIgPSB4 OiAmJiBjb250aW51ZQotKyAgIyAxLiBSZW1vdmUgdGhlIGV4dGVuc2lvbiwgYW5kICRVIGlmIGFs cmVhZHkgaW5zdGFsbGVkLgotKyAgYWNfc2NyaXB0PSdzL1wkVVwuLy4vO3MvXC5vJC8vO3MvXC5v YmokLy8nCi0rICBhY19pPWAkYXNfZWNobyAiJGFjX2kiIHwgc2VkICIkYWNfc2NyaXB0ImAKLSsg ICMgMi4gUHJlcGVuZCBMSUJPQkpESVIuICBXaGVuIHVzZWQgd2l0aCBhdXRvbWFrZT49MS4xMCBM SUJPQkpESVIKLSsgICMgICAgd2lsbCBiZSBzZXQgdG8gdGhlIGRpcmVjdG9yeSB3aGVyZSBMSUJP QkpTIG9iamVjdHMgYXJlIGJ1aWx0LgotKyAgYWNfbGlib2Jqcz0iJGFjX2xpYm9ianMgXCR7TElC T0JKRElSfSRhY19pXCRVLiRhY19vYmpleHQiCi0rICBhY19sdGxpYm9ianM9IiRhY19sdGxpYm9i anMgXCR7TElCT0JKRElSfSRhY19pIickVS5sbycKLStkb25lCi0rTElCT0JKUz0kYWNfbGlib2Jq cwotKwotK0xUTElCT0JKUz0kYWNfbHRsaWJvYmpzCi0rCi0rCi0raWYgdGVzdCAteiAiJHtIQVZF X0NQUFVOSVRfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9DUFBVTklUX0ZBTFNFfSI7IHRoZW4K LSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkhB VkVfQ1BQVU5JVFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUg bWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYg dGVzdCAteiAiJHtBTURFUF9UUlVFfSIgJiYgdGVzdCAteiAiJHtBTURFUF9GQUxTRX0iOyB0aGVu Ci0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJB TURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8g d2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNvbmRpdGlvbmFsIFwiQU1ERVBcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5 IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4m Mjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke2Ft X19mYXN0ZGVwQ1hYX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ1hYX0ZBTFNFfSI7 IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25h bCBcImFtX19mYXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1l YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENYWFwiIHdhcyBu ZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52 b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LStmaQotK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDQ19UUlVFfSIgJiYgdGVzdCAteiAiJHth bV9fZmFzdGRlcENDX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFt X19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhl IG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke1NPQ0lfSEVBREVSU19CVVJJ RURfVFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9IRUFERVJTX0JVUklFRF9GQUxTRX0iOyB0aGVu Ci0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJT T0NJX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1l YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX0hFQURFUlNfQlVSSUVEXCIg d2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25s eSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUV9 IiAmJiB0ZXN0IC16ICIke1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgot KyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhp cyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9NWVNRTF9IRUFERVJT X0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFj cm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7U09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFRF9GQUxTRX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY29uZGl0aW9uYWwgXCJTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2 ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9r ZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRp b25hbCBcIlNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVk LgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRp b25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRl c3QgLXogIiR7SEFWRV9NWVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX01ZU1FMX0ZBTFNF fSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRp b25hbCBcIkhBVkVfTVlTUUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVh bnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfTVlTUUxcIiB3YXMgbmV2ZXIg ZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQg Y29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkK LStpZiB0ZXN0IC16ICIke0hBVkVfT1JBQ0xFX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVfT1JB Q0xFX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjb25kaXRpb25hbCBcIkhBVkVfT1JBQ0xFXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxs eSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX09SQUNMRVwi IHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9u bHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7SEFWRV9QT1NUR1JFU1FMX1RSVUV9IiAmJiB0ZXN0 IC16ICIke0hBVkVfUE9TVEdSRVNRTF9GQUxTRX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX1BPU1RHUkVTUUxcIiB3YXMg bmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGlu dm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25k aXRpb25hbCBcIkhBVkVfUE9TVEdSRVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkg dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYy O30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7SU5G T19ET0NfVFJVRX0iICYmIHRlc3QgLXogIiR7SU5GT19ET0NfRkFMU0V9IjsgdGhlbgotKyAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSU5GT19ET0Nc IiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBv bmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBjb25kaXRpb25hbCBcIklORk9fRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0 aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7 fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtIVE1M X0RPQ19UUlVFfSIgJiYgdGVzdCAteiAiJHtIVE1MX0RPQ19GQUxTRX0iOyB0aGVuCi0rICB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIVE1MX0RPQ1wi IHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9u bHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGNvbmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRo aXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9 Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke1JVTl9U RVNUU19UUlVFfSIgJiYgdGVzdCAteiAiJHtSVU5fVEVTVFNfRkFMU0V9IjsgdGhlbgotKyAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiUlVOX1RFU1RT XCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMg b25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogY29uZGl0aW9uYWwgXCJSVU5fVEVTVFNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5 IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4m Mjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLSsKLSs6ICR7Q09ORklHX1NU QVRVUz0uL2NvbmZpZy5zdGF0dXN9Ci0rYWNfd3JpdGVfZmFpbD0wCi0rYWNfY2xlYW5fZmlsZXNf c2F2ZT0kYWNfY2xlYW5fZmlsZXMKLSthY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzICRD T05GSUdfU1RBVFVTIgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkQ09O RklHX1NUQVRVUyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJENPTkZJR19TVEFU VVMiID4mNjt9Ci0rY2F0ID4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKLSsjISAkU0hFTEwKLSsjIEdlbmVyYXRlZCBieSAkYXNfbWUuCi0rIyBSdW4gdGhpcyBmaWxl IHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCi0rIyBDb21waWxlciBvdXRw dXQgcHJvZHVjZWQgYnkgY29uZmlndXJlLCB1c2VmdWwgZm9yIGRlYnVnZ2luZwotKyMgY29uZmln dXJlLCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KLSsKLStkZWJ1Zz1mYWxzZQotK2Fj X2NzX3JlY2hlY2s9ZmFsc2UKLSthY19jc19zaWxlbnQ9ZmFsc2UKLStTSEVMTD1cJHtDT05GSUdf U0hFTEwtJFNIRUxMfQotK19BQ0VPRgotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBN NHNoIEluaXRpYWxpemF0aW9uLiAgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsK LSsjIEJlIG1vcmUgQm91cm5lIGNvbXBhdGlibGUKLStEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENB U0UgIyBmb3IgTUtTIHNoCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11 bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01E PToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsx KyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRo aXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5P X0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KLSsg ICpwb3NpeCopIHNldCAtbyBwb3NpeCA7OwotK2VzYWMKLSsKLStmaQotKwotKwotKwotKwotKyMg UEFUSCBuZWVkcyBDUgotKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4K LSthc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLSthc19jcl9MRVRU RVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKLSthc19jcl9MZXR0ZXJzPSRhc19jcl9s ZXR0ZXJzJGFzX2NyX0xFVFRFUlMKLSthc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCi0rYXNfY3Jf YWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCi0rCi0rYXNfbmw9JwotKycKLStleHBv cnQgYXNfbmwKLSsjIFByaW50aW5nIGEgbG9uZyBzdHJpbmcgY3Jhc2hlcyBTb2xhcmlzIDcgL3Vz ci9iaW4vcHJpbnRmLgotK2FzX2VjaG89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFwnCi0rYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNo byRhc19lY2hvCi0rYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19l Y2hvJGFzX2VjaG8KLStpZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2Vj aG8iKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfZWNobz0ncHJpbnRmICVzXG4nCi0rICBhc19l Y2hvX249J3ByaW50ZiAlcycKLStlbHNlCi0rICBpZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1u IC1uICRhc19lY2hvKSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNfZWNobyI7IHRoZW4KLSsgICAg YXNfZWNob19ib2R5PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQxJGFzX25sIicKLSsgICAgYXNf ZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJwotKyAgZWxzZQotKyAgICBhc19lY2hvX2JvZHk9J2V2 YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJwotKyAgICBhc19lY2hvX25fYm9keT0nZXZhbAot KyAgICAgIGFyZz0kMTsKLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAqIiRhc19ubCIqKQot KwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKLSsJYXJnPWBleHByICJYJGFyZyIg OiAiLiokYXNfbmxcXCguKlxcKSJgOzsKLSsgICAgICBlc2FjOwotKyAgICAgIGV4cHIgIlgkYXJn IiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKLSsgICAgJwotKyAgICBleHBvcnQgYXNf ZWNob19uX2JvZHkKLSsgICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNob19uX2JvZHkgYXNfZWNo bycKLSsgIGZpCi0rICBleHBvcnQgYXNfZWNob19ib2R5Ci0rICBhc19lY2hvPSdzaCAtYyAkYXNf ZWNob19ib2R5IGFzX2VjaG8nCi0rZmkKLSsKLSsjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4K LStpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotKyAgUEFUSF9T RVBBUkFUT1I9OgotKyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+ L2Rldi9udWxsIDI+JjEgJiYgewotKyAgICAoUEFUSD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7 IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8fAotKyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7Jwot KyAgfQotK2ZpCi0rCi0rIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUuCi0raWYgKCAoTUFJ TD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc191 bnNldD11bnNldAotK2Vsc2UKLSsgIGFzX3Vuc2V0PWZhbHNlCi0rZmkKLSsKLSsKLSsjIElGUwot KyMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3Jk ZXIuICBRdW90aW5nIGlzCi0rIyB0aGVyZSB0byBwcmV2ZW50IGVkaXRvcnMgZnJvbSBjb21wbGFp bmluZyBhYm91dCBzcGFjZS10YWIuCi0rIyAoSWYgX0FTX1BBVEhfV0FMSyB3ZXJlIGNhbGxlZCB3 aXRoIElGUyB1bnNldCwgaXQgd291bGQgZGlzYWJsZSB3b3JkCi0rIyBzcGxpdHRpbmcgYnkgc2V0 dGluZyBJRlMgdG8gZW1wdHkgdmFsdWUuKQotK0lGUz0iICIiCSRhc19ubCIKLSsKLSsjIEZpbmQg d2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkg c2VwYXJhdG9yLgotK2Nhc2UgJDAgaW4KLSsgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKLSsg ICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGlu ICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCi0rICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8k MCAmJiBicmVhawotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICAgICA7OwotK2VzYWMK LSsjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4g YXMgYHNoIENPTU1BTkQnCi0rIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQg aW4gdGhlIHBhdGguCi0raWYgdGVzdCAieCRhc19teXNlbGYiID0geDsgdGhlbgotKyAgYXNfbXlz ZWxmPSQwCi0rZmkKLStpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVuCi0rICAkYXNfZWNo byAiJGFzX215c2VsZjogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBh YnNvbHV0ZSBmaWxlIG5hbWUiID4mMgotKyAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rZmkKLSsK LSsjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KLStmb3IgYXNfdmFyIGlu IEVOViBNQUlMIE1BSUxQQVRICi0rZG8gKCRhc191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+ JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKLStkb25lCi0rUFMxPSckICcKLStQUzI9Jz4gJwotK1BT ND0nKyAnCi0rCi0rIyBOTFMgbnVpc2FuY2VzLgotK0xDX0FMTD1DCi0rZXhwb3J0IExDX0FMTAot K0xBTkdVQUdFPUMKLStleHBvcnQgTEFOR1VBR0UKLSsKLSsjIFJlcXVpcmVkIHRvIHVzZSBiYXNl bmFtZS4KLStpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgotKyAgIHRlc3Qg IlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCi0rICBhc19leHByPWV4 cHIKLStlbHNlCi0rICBhc19leHByPWZhbHNlCi0rZmkKLSsKLStpZiAoYmFzZW5hbWUgLS0gLykg Pi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0 aGVuCi0rICBhc19iYXNlbmFtZT1iYXNlbmFtZQotK2Vsc2UKLSsgIGFzX2Jhc2VuYW1lPWZhbHNl Ci0rZmkKLSsKLSsKLSsjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCi0rYXNfbWU9YCRhc19iYXNl bmFtZSAtLSAiJDAiIHx8Ci0rJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQn IFx8IFwKLSsJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiQwIiA6ICdYXCgvXCknIFx8 IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYLyIkMCIgfAotKyAgICBzZWQgJy9eLipcL1wo W14vXVteL10qXClcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhc L1woXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXC9cKFwv XCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0r Ci0rIyBDRFBBVEguCi0rJGFzX3Vuc2V0IENEUEFUSAotKwotKwotKwotKyAgYXNfbGluZW5vXzE9 JExJTkVOTwotKyAgYXNfbGluZW5vXzI9JExJTkVOTwotKyAgdGVzdCAieCRhc19saW5lbm9fMSIg IT0gIngkYXNfbGluZW5vXzIiICYmCi0rICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVub18xICsgMWAi ID0gIngkYXNfbGluZW5vXzIiIHx8IHsKLSsKLSsgICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMg YSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KLSsgICMgdW5pZm9ybWx5IHJl cGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRzIGEKLSsg ICMgbGluZS1udW1iZXIgbGluZSBhZnRlciBlYWNoIGxpbmUgdXNpbmcgJExJTkVOTzsgdGhlIHNl Y29uZCAnc2VkJwotKyAgIyBkb2VzIHRoZSByZWFsIHdvcmsuICBUaGUgc2Vjb25kIHNjcmlwdCB1 c2VzICdOJyB0byBwYWlyIGVhY2gKLSsgICMgbGluZS1udW1iZXIgbGluZSB3aXRoIHRoZSBsaW5l IGNvbnRhaW5pbmcgJExJTkVOTywgYW5kIGFwcGVuZHMKLSsgICMgdHJhaWxpbmcgJy0nIGR1cmlu ZyBzdWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNwZWNpYWwKLSsgICMgY2Fz ZSBhdCBsaW5lIGVuZC4KLSsgICMgKFJhamEgUiBIYXJpbmF0aCBzdWdnZXN0ZWQgc2VkICc9Jywg YW5kIFBhdWwgRWdnZXJ0IHdyb3RlIHRoZQotKyAgIyBzY3JpcHRzIHdpdGggb3B0aW1pemF0aW9u IGhlbHAgZnJvbSBQYW9sbyBCb256aW5pLiAgQmxhbWUgTGVlCi0rICAjIEUuIE1jTWFob24gKDE5 MzEtMTk4OSkgZm9yIHNlZCdzIHN5bnRheC4gIDotKQotKyAgc2VkIC1uICcKLSsgICAgcAotKyAg ICAvWyRdTElORU5PLz0KLSsgICcgPCRhc19teXNlbGYgfAotKyAgICBzZWQgJwotKyAgICAgIHMv WyRdTElORU5PLiovJi0vCi0rICAgICAgdCBsaW5lbm8KLSsgICAgICBiCi0rICAgICAgOmxpbmVu bwotKyAgICAgIE4KLSsgICAgICA6bG9vcAotKyAgICAgIHMvWyRdTElORU5PXChbXickYXNfY3Jf YWxudW0nX10uKlxuXClcKC4qXCkvXDJcMVwyLwotKyAgICAgIHQgbG9vcAotKyAgICAgIHMvLVxu LiovLwotKyAgICAnID4kYXNfbWUubGluZW5vICYmCi0rICBjaG1vZCAreCAiJGFzX21lLmxpbmVu byIgfHwKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNf bWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMgotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotKwotKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRb MF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKLSsgICMgKHRoZSBkaXJuYW1lIG9mICRb MF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotKyAgIyBvcmlnaW5h bCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpdGl2ZSB0byB0aGlzKS4K LSsgIC4gIi4vJGFzX21lLmxpbmVubyIKLSsgICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUg bGFzdCBjb21tYW5kLgotKyAgZXhpdAotK30KLSsKLSsKLStpZiAoYXNfZGlyPWBkaXJuYW1lIC0t IC9gICYmIHRlc3QgIlgkYXNfZGlyIiA9IFgvKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGFz X2Rpcm5hbWU9ZGlybmFtZQotK2Vsc2UKLSsgIGFzX2Rpcm5hbWU9ZmFsc2UKLStmaQotKwotK0VD SE9fQz0gRUNIT19OPSBFQ0hPX1Q9Ci0rY2FzZSBgZWNobyAtbiB4YCBpbgotKy1uKikKLSsgIGNh c2UgYGVjaG8gJ3hcYydgIGluCi0rICAqYyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBpcyBzaW5n bGUgdGFiIGNoYXJhY3Rlci4KLSsgICopICAgRUNIT19DPSdcYyc7OwotKyAgZXNhYzs7Ci0rKikK LSsgIEVDSE9fTj0nLW4nOzsKLStlc2FjCi0raWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxs IDI+JjEgJiYKLSsgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAwMTsg dGhlbgotKyAgYXNfZXhwcj1leHByCi0rZWxzZQotKyAgYXNfZXhwcj1mYWxzZQotK2ZpCi0rCi0r cm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKLStpZiB0ZXN0IC1kIGNvbmYkJC5k aXI7IHRoZW4KLSsgIHJtIC1mIGNvbmYkJC5kaXIvY29uZiQkLmZpbGUKLStlbHNlCi0rICBybSAt ZiBjb25mJCQuZGlyCi0rICBta2RpciBjb25mJCQuZGlyIDI+L2Rldi9udWxsCi0rZmkKLStpZiAo ZWNobyA+Y29uZiQkLmZpbGUpIDI+L2Rldi9udWxsOyB0aGVuCi0rICBpZiBsbiAtcyBjb25mJCQu ZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz0nbG4gLXMnCi0rICAg ICMgLi4uIGJ1dCB0aGVyZSBhcmUgdHdvIGdvdGNoYXM6Ci0rICAgICMgMSkgT24gTVNZUywgYm90 aCBgbG4gLXMgZmlsZSBkaXInIGFuZCBgbG4gZmlsZSBkaXInIGZhaWwuCi0rICAgICMgMikgREpH UFAgPCAyLjA0IGhhcyBubyBzeW1saW5rczsgYGxuIC1zJyBjcmVhdGVzIGEgd3JhcHBlciBleGVj dXRhYmxlLgotKyAgICAjIEluIGJvdGggY2FzZXMsIHdlIGhhdmUgdG8gZGVmYXVsdCB0byBgY3Ag LXAnLgotKyAgICBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQuZGlyIDI+L2Rldi9udWxsICYmIHRl c3QgISAtZiBjb25mJCQuZXhlIHx8Ci0rICAgICAgYXNfbG5fcz0nY3AgLXAnCi0rICBlbGlmIGxu IGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICBhc19sbl9zPWxuCi0r ICBlbHNlCi0rICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZmkKLStlbHNlCi0rICBhc19sbl9zPSdj cCAtcCcKLStmaQotK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5kaXIvY29uZiQkLmZp bGUgY29uZiQkLmZpbGUKLStybWRpciBjb25mJCQuZGlyIDI+L2Rldi9udWxsCi0rCi0raWYgbWtk aXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfbWtkaXJfcD06Ci0rZWxzZQotKyAgdGVz dCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKLSsgIGFzX21rZGlyX3A9ZmFsc2UKLStmaQotKwotK2lm IHRlc3QgLXggLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGFzX3Rlc3RfeD0ndGVzdCAteCcK LStlbHNlCi0rICBpZiBscyAtZEwgLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgYXNfbHNf TF9vcHRpb249TAotKyAgZWxzZQotKyAgICBhc19sc19MX29wdGlvbj0KLSsgIGZpCi0rICBhc190 ZXN0X3g9JwotKyAgICBldmFsIHNoIC1jICdcJycKLSsgICAgICBpZiB0ZXN0IC1kICIkMSI7IHRo ZW4KLSsJdGVzdCAtZCAiJDEvLiI7Ci0rICAgICAgZWxzZQotKwljYXNlICQxIGluCi0rCS0qKXNl dCAiLi8kMSI7OwotKwllc2FjOwotKwljYXNlIGBscyAtbGQnJGFzX2xzX0xfb3B0aW9uJyAiJDEi IDI+L2Rldi9udWxsYCBpbgotKwk/Pz9bc3hdKik6OzsqKWZhbHNlOztlc2FjO2ZpCi0rICAgICdc Jycgc2gKLSsgICcKLStmaQotK2FzX2V4ZWN1dGFibGVfcD0kYXNfdGVzdF94Ci0rCi0rIyBTZWQg ZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotK2FzX3Ry X2NwcD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8k YXNfY3JfYWxudW1dJV8lZyciCi0rCi0rIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcg b250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi0rYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBw JTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLSsKLSsKLStleGVjIDY+JjEKLSsKLSsjIFNhdmUg dGhlIGxvZyBtZXNzYWdlLCB0byBrZWVwICRbMF0gYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0 bwotKyMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0Yy4gaW5z dGVhZCBvZiB0aGVpcgotKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxpbmcuCi0rYWNfbG9n PSIKLStUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFNPQ0kgJGFzX21lIDMuMC4wLCB3aGljaCB3 YXMKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMuICBJbnZvY2F0aW9uIGNvbW1hbmQg bGluZSB3YXMKLSsKLSsgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklMRVMKLSsgIENPTkZJ R19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwotKyAgQ09ORklHX0xJTktTICAgID0gJENPTkZJ R19MSU5LUwotKyAgQ09ORklHX0NPTU1BTkRTID0gJENPTkZJR19DT01NQU5EUwotKyAgJCAkMCAk QAotKwotK29uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAot KyIKLSsKLStfQUNFT0YKLSsKLStjYXNlICRhY19jb25maWdfZmlsZXMgaW4gKiIKLSsiKikgc2V0 IHggJGFjX2NvbmZpZ19maWxlczsgc2hpZnQ7IGFjX2NvbmZpZ19maWxlcz0kKjs7Ci0rZXNhYwot KwotK2Nhc2UgJGFjX2NvbmZpZ19oZWFkZXJzIGluICoiCi0rIiopIHNldCB4ICRhY19jb25maWdf aGVhZGVyczsgc2hpZnQ7IGFjX2NvbmZpZ19oZWFkZXJzPSQqOzsKLStlc2FjCi0rCi0rCi0rY2F0 ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyBGaWxlcyB0 aGF0IGNvbmZpZy5zdGF0dXMgd2FzIG1hZGUgZm9yLgotK2NvbmZpZ19maWxlcz0iJGFjX2NvbmZp Z19maWxlcyIKLStjb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIgotK2NvbmZpZ19j b21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyIKLSsKLStfQUNFT0YKLSsKLStjYXQgPj4kQ09O RklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNfY3NfdXNhZ2U9IlwK LStcYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0 byB0aGUKLStjdXJyZW50IGNvbmZpZ3VyYXRpb24uCi0rCi0rVXNhZ2U6ICQwIFtPUFRJT05dLi4u IFtGSUxFXS4uLgotKwotKyAgLWgsIC0taGVscCAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4g ZXhpdAotKyAgLVYsIC0tdmVyc2lvbiAgICBwcmludCB2ZXJzaW9uIG51bWJlciBhbmQgY29uZmln dXJhdGlvbiBzZXR0aW5ncywgdGhlbiBleGl0Ci0rICAtcSwgLS1xdWlldCwgLS1zaWxlbnQKLSsg ICAgICAgICAgICAgICAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1lc3NhZ2VzCi0rICAtZCwg LS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKLSsgICAgICAtLXJlY2hl Y2sgICAgdXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3VyaW5nIGluIHRoZSBzYW1lIGNvbmRpdGlv bnMKLSsgICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0rICAgICAgICAgICAgICAgICAgIGlu c3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQotKyAgICAgIC0taGVhZGVyPUZJ TEVbOlRFTVBMQVRFXQotKyAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29uZmln dXJhdGlvbiBoZWFkZXIgRklMRQotKwotK0NvbmZpZ3VyYXRpb24gZmlsZXM6Ci0rJGNvbmZpZ19m aWxlcwotKwotK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoKLSskY29uZmlnX2hlYWRlcnMKLSsKLStD b25maWd1cmF0aW9uIGNvbW1hbmRzOgotKyRjb25maWdfY29tbWFuZHMKLSsKLStSZXBvcnQgYnVn cyB0byA8YnVnLWF1dG9jb25mQGdudS5vcmc+LiIKLSsKLStfQUNFT0YKLStjYXQgPj4kQ09ORklH X1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSthY19jc192ZXJzaW9uPSJcXAot K1NPQ0kgY29uZmlnLnN0YXR1cyAzLjAuMAotK2NvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBi eSBHTlUgQXV0b2NvbmYgMi42MywKLSsgIHdpdGggb3B0aW9ucyBcXCJgJGFzX2VjaG8gIiRhY19j b25maWd1cmVfYXJncyIgfCBzZWQgJ3MvXiAvLzsgcy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgot KwotK0NvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLStU aGlzIGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KLStnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0 cmlidXRlIGFuZCBtb2RpZnkgaXQuIgotKwotK2FjX3B3ZD0nJGFjX3B3ZCcKLStzcmNkaXI9JyRz cmNkaXInCi0rSU5TVEFMTD0nJElOU1RBTEwnCi0rTUtESVJfUD0nJE1LRElSX1AnCi0rQVdLPSck QVdLJwotK3Rlc3QgLW4gIlwkQVdLIiB8fCBBV0s9YXdrCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENP TkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyMgVGhlIGRlZmF1bHQg bGlzdHMgYXBwbHkgaWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgZmlsZS4KLSthY19u ZWVkX2RlZmF1bHRzPToKLSt3aGlsZSB0ZXN0ICQjICE9IDAKLStkbwotKyAgY2FzZSAkMSBpbgot KyAgLS0qPSopCi0rICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6ICdYXChbXj1dKlwpPSdgCi0r ICAgIGFjX29wdGFyZz1gZXhwciAiWCQxIiA6ICdYW149XSo9XCguKlwpJ2AKLSsgICAgYWNfc2hp ZnQ9OgotKyAgICA7OwotKyAgKikKLSsgICAgYWNfb3B0aW9uPSQxCi0rICAgIGFjX29wdGFyZz0k MgotKyAgICBhY19zaGlmdD1zaGlmdAotKyAgICA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAkYWNf b3B0aW9uIGluCi0rICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25zLgotKyAgLXJlY2hlY2sgfCAt LXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAt LXIpCi0rICAgIGFjX2NzX3JlY2hlY2s9OiA7OwotKyAgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAt LXZlcnNpIHwgLS12ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12IHwgLVYgKQotKyAgICAkYXNfZWNo byAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDs7Ci0rICAtLWRlYnVnIHwgLS1kZWJ1IHwgLS1kZWIg fCAtLWRlIHwgLS1kIHwgLWQgKQotKyAgICBkZWJ1Zz06IDs7Ci0rICAtLWZpbGUgfCAtLWZpbCB8 IC0tZmkgfCAtLWYgKQotKyAgICAkYWNfc2hpZnQKLSsgICAgY2FzZSAkYWNfb3B0YXJnIGluCi0r ICAgICpcJyopIGFjX29wdGFyZz1gJGFzX2VjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xc XFxcXFxcJycvZyJgIDs7Ci0rICAgIGVzYWMKLSsgICAgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTICckYWNfb3B0YXJnJyIKLSsgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7Ci0rICAtLWhl YWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCi0rICAgICRhY19zaGlmdAotKyAgICBj YXNlICRhY19vcHRhcmcgaW4KLSsgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNfZWNobyAiJGFjX29w dGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKLSsgICAgZXNhYwotKyAgICBDT05G SUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTICckYWNfb3B0YXJnJyIKLSsgICAgYWNfbmVlZF9k ZWZhdWx0cz1mYWxzZTs7Ci0rICAtLWhlIHwgLS1oKQotKyAgICAjIENvbmZsaWN0IGJldHdlZW4g LS1oZWxwIGFuZCAtLWhlYWRlcgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBhbWJp Z3VvdXMgb3B0aW9uOiAkMQotK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24u IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotKyAgLS1oZWxwIHwgLS1oZWwg fCAtaCApCi0rICAgICRhc19lY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDs7Ci0rICAtcSB8IC1x dWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotKyAgfCAtc2ls ZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwgfCAtLXNpIHwgLS1zKQot KyAgICBhY19jc19zaWxlbnQ9OiA7OwotKwotKyAgIyBUaGlzIGlzIGFuIGVycm9yLgotKyAgLSop IHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICQxCi0rVHJ5 IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMgotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfSA7OwotKwotKyAgKikgYWNfY29uZmlnX3RhcmdldHM9IiRhY19jb25maWdf dGFyZ2V0cyAkMSIKLSsgICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2UgOzsKLSsKLSsgIGVzYWMK LSsgIHNoaWZ0Ci0rZG9uZQotKwotK2FjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPQotKwotK2lmICRh Y19jc19zaWxlbnQ7IHRoZW4KLSsgIGV4ZWMgNj4vZGV2L251bGwKLSsgIGFjX2NvbmZpZ3VyZV9l eHRyYV9hcmdzPSIkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1zaWxlbnQiCi0rZmkKLSsKLStf QUNFT0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEK LStpZiBcJGFjX2NzX3JlY2hlY2s7IHRoZW4KLSsgIHNldCBYICckU0hFTEwnICckMCcgJGFjX2Nv bmZpZ3VyZV9hcmdzIFwkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1uby1jcmVhdGUgLS1uby1y ZWN1cnNpb24KLSsgIHNoaWZ0Ci0rICBcJGFzX2VjaG8gInJ1bm5pbmcgQ09ORklHX1NIRUxMPSRT SEVMTCBcJCoiID4mNgotKyAgQ09ORklHX1NIRUxMPSckU0hFTEwnCi0rICBleHBvcnQgQ09ORklH X1NIRUxMCi0rICBleGVjICJcJEAiCi0rZmkKLSsKLStfQUNFT0YKLStjYXQgPj4kQ09ORklHX1NU QVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rZXhlYyA1Pj5jb25maWcubG9nCi0r ewotKyAgZWNobwotKyAgc2VkICdoO3MvLi8tL2c7cy9eLi4uLyMjIC87cy8uLi4kLyAjIy87cDt4 O3A7eCcgPDxfQVNCT1gKLSsjIyBSdW5uaW5nICRhc19tZS4gIyMKLStfQVNCT1gKLSsgICRhc19l Y2hvICIkYWNfbG9nIgotK30gPiY1Ci0rCi0rX0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMg PDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIwotKyMgSU5JVC1DT01NQU5EUwotKyMKLStB TURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFjX2F1eF9kaXIiCi0rCi0rX0FD RU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9 MQotKwotKyMgSGFuZGxpbmcgb2YgYXJndW1lbnRzLgotK2ZvciBhY19jb25maWdfdGFyZ2V0IGlu ICRhY19jb25maWdfdGFyZ2V0cwotK2RvCi0rICBjYXNlICRhY19jb25maWdfdGFyZ2V0IGluCi0r ICAgICJzb2NpL2NvbmZpZy5oIikgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBzb2Np L2NvbmZpZy5oIiA7OwotKyAgICAiZGVwZmlsZXMiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdf Q09NTUFORFMgZGVwZmlsZXMiIDs7Ci0rICAgICJNYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENP TkZJR19GSUxFUyBNYWtlZmlsZSIgOzsKLSsgICAgInNvY2ktY29uZmlnIikgQ09ORklHX0ZJTEVT PSIkQ09ORklHX0ZJTEVTIHNvY2ktY29uZmlnIiA7OwotKyAgICAic29jaS5wYyIpIENPTkZJR19G SUxFUz0iJENPTkZJR19GSUxFUyBzb2NpLnBjIiA7OwotKyAgICAic29jaS5zcGVjIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kuc3BlYyIgOzsKLSsgICAgInNvY2kvTWFrZWZpbGUi KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9NYWtlZmlsZSIgOzsKLSsgICAgInNv Y2kvY29yZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2NvcmUv TWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kv YmFja2VuZHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNr ZW5kcy9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUiKSBD T05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZSIg OzsKLSsgICAgInNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUiIDs7Ci0r ICAgICJzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRD T05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlIiA7OwotKyAgICAi c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRD T05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUiIDs7Ci0r ICAgICJzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgIm1hbi9NYWtlZmls ZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtYW4vTWFrZWZpbGUiIDs7Ci0rICAgICJk b2MvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZG9jL01ha2VmaWxlIiA7 OwotKyAgICAiZG9jL2JhY2tlbmRzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL01ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQv dW5peC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC91bml4L01h a2VmaWxlIiA7OwotKyAgICAiYnVpbGQvbXN2YzgwL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIGJ1aWxkL21zdmM4MC9NYWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL21zdmM4 MC9kbGwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2Yzgw L2RsbC9NYWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIgOzsKLSsK LSsgICopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIGFyZ3Vt ZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu dmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfTs7Ci0rICBlc2FjCi0rZG9uZQotKwotKwotKyMgSWYgdGhlIHVzZXIgZGlk IG5vdCB1c2UgdGhlIGFyZ3VtZW50cyB0byBzcGVjaWZ5IHRoZSBpdGVtcyB0byBpbnN0YW50aWF0 ZSwKLSsjIHRoZW4gdGhlIGVudnZhciBpbnRlcmZhY2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3Nl IHRoYXQgYXJlIG5vdC4KLSsjIFdlIHVzZSB0aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBh c3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5Ci0rIyBiaXphcnJlIGJ1ZyBvbiBTdW5P UyA0LjEuMy4KLStpZiAkYWNfbmVlZF9kZWZhdWx0czsgdGhlbgotKyAgdGVzdCAiJHtDT05GSUdf RklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRjb25maWdfZmlsZXMKLSsgIHRlc3Qg IiR7Q09ORklHX0hFQURFUlMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0hFQURFUlM9JGNvbmZpZ19o ZWFkZXJzCi0rICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdf Q09NTUFORFM9JGNvbmZpZ19jb21tYW5kcwotK2ZpCi0rCi0rIyBIYXZlIGEgdGVtcG9yYXJ5IGRp cmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCi0rIyBz aW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gYWdhaW5zdCBoYXZpbmcgaXQgaGVyZSwg YW5kIGluIGFkZGl0aW9uLAotKyMgY3JlYXRpbmcgYW5kIG1vdmluZyBmaWxlcyBmcm9tIC90bXAg Y2FuIHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcy4KLSsjIEhvb2sgZm9yIGl0cyByZW1vdmFsIHVu bGVzcyBkZWJ1Z2dpbmcuCi0rIyBOb3RlIHRoYXQgdGhlcmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4g d2hpY2ggdGhlIGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBjbGVhbmVkOgotKyMgYWZ0ZXIgaXRzIGNy ZWF0aW9uIGJ1dCBiZWZvcmUgaXRzIG5hbWUgaGFzIGJlZW4gYXNzaWduZWQgdG8gYCR0bXAnLgot KyRkZWJ1ZyB8fAotK3sKLSsgIHRtcD0KLSsgIHRyYXAgJ2V4aXRfc3RhdHVzPSQ/Ci0rICB7IHRl c3QgLXogIiR0bXAiIHx8IHRlc3QgISAtZCAiJHRtcCIgfHwgcm0gLWZyICIkdG1wIjsgfSAmJiBl eGl0ICRleGl0X3N0YXR1cwotKycgMAotKyAgdHJhcCAneyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAx IDIgMTMgMTUKLSt9Ci0rIyBDcmVhdGUgYSAoc2VjdXJlKSB0bXAgZGlyZWN0b3J5IGZvciB0bXAg ZmlsZXMuCi0rCi0rewotKyAgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAiLi9jb25mWFhY WFhYIikgMj4vZGV2L251bGxgICYmCi0rICB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1w IgotK30gIHx8Ci0rewotKyAgdG1wPS4vY29uZiQkLSRSQU5ET00KLSsgICh1bWFzayAwNzcgJiYg bWtkaXIgIiR0bXAiKQotK30gfHwKLSt7Ci0rICAgJGFzX2VjaG8gIiRhc19tZTogY2Fubm90IGNy ZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9Ci0rfQotKwotKyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfRklMRVMgc2Vj dGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklH X0ZJTEVTLgotKyMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aXRoIGAuL2NvbmZpZy5zdGF0 dXMgY29uZmlnLmgnLgotK2lmIHRlc3QgLW4gIiRDT05GSUdfRklMRVMiOyB0aGVuCi0rCi0rCi0r YWNfY3I9Jw0nCi0rYWNfY3NfYXdrX2NyPWAkQVdLICdCRUdJTiB7IHByaW50ICJhXHJiIiB9JyA8 L2Rldi9udWxsIDI+L2Rldi9udWxsYAotK2lmIHRlc3QgIiRhY19jc19hd2tfY3IiID0gImEke2Fj X2NyfWIiOyB0aGVuCi0rICBhY19jc19hd2tfY3I9J1xccicKLStlbHNlCi0rICBhY19jc19hd2tf Y3I9JGFjX2NyCi0rZmkKLSsKLStlY2hvICdCRUdJTiB7JyA+IiR0bXAvc3ViczEuYXdrIiAmJgot K19BQ0VPRgotKwotKwotK3sKLSsgIGVjaG8gImNhdCA+Y29uZiQkc3Vicy5hd2sgPDxfQUNFT0Yi ICYmCi0rICBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBzZWQgJ3MvLiovJiEkJiRhY19kZWxpbS8n ICYmCi0rICBlY2hvICJfQUNFT0YiCi0rfSA+Y29uZiQkc3Vicy5zaCB8fAotKyAgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVT IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19T VEFUVVMiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rYWNfZGVsaW1fbnVt PWBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBncmVwIC1jICckJ2AKLSthY19kZWxpbT0nJSFfISMg JwotK2ZvciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSBmYWxzZSBmYWxzZSBmYWxzZSA6OyBk bwotKyAgLiAuL2NvbmYkJHN1YnMuc2ggfHwKLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mMjt9Ci0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCi0rICBhY19kZWxpbV9uPWBzZWQgLW4gInMv LiokYWNfZGVsaW1cJC9YL3AiIGNvbmYkJHN1YnMuYXdrIHwgZ3JlcCAtYyBYYAotKyAgaWYgdGVz dCAkYWNfZGVsaW1fbiA9ICRhY19kZWxpbV9udW07IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsaWYg JGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjI7fQotKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZWxzZQotKyAgICBhY19kZWxpbT0iJGFjX2RlbGltISRh Y19kZWxpbSBfJGFjX2RlbGltISEgIgotKyAgZmkKLStkb25lCi0rcm0gLWYgY29uZiQkc3Vicy5z aAotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQot K2NhdCA+PiJcJHRtcC9zdWJzMS5hd2siIDw8XFxfQUNBV0sgJiYKLStfQUNFT0YKLStzZWQgLW4g JwotK2gKLStzL14vU1siLzsgcy8hLiovIl09LwotK3AKLStnCi0rcy9eW14hXSohLy8KLSs6cmVw bAotK3QgcmVwbAotK3MvJyIkYWNfZGVsaW0iJyQvLwotK3QgZGVsaW0KLSs6bmwKLStoCi0rcy9c KC5cezE0OFx9XCkuKi9cMS8KLSt0IG1vcmUxCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQv XFxuIlxcLwotK3AKLStuCi0rYiByZXBsCi0rOm1vcmUxCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIv OyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsxNDhcfS8vCi0rdCBubAotKzpkZWxpbQotK2gKLStz L1woLlx7MTQ4XH1cKS4qL1wxLwotK3QgbW9yZTIKLStzL1siXFxdL1xcJi9nOyBzL14vIi87IHMv JC8iLwotK3AKLStiCi0rOm1vcmUyCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLwot K3AKLStnCi0rcy8uXHsxNDhcfS8vCi0rdCBkZWxpbQotKycgPGNvbmYkJHN1YnMuYXdrIHwgc2Vk ICcKLSsvXlteIiJdL3sKLSsgIE4KLSsgIHMvXG4vLwotK30KLSsnID4+JENPTkZJR19TVEFUVVMg fHwgYWNfd3JpdGVfZmFpbD0xCi0rcm0gLWYgY29uZiQkc3Vicy5hd2sKLStjYXQgPj4kQ09ORklH X1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLStfQUNBV0sKLStjYXQgPj4iXCR0 bXAvc3ViczEuYXdrIiA8PF9BQ0FXSyAmJgotKyAgZm9yIChrZXkgaW4gUykgU19pc19zZXRba2V5 XSA9IDEKLSsgIEZTID0gIgciCi0rCi0rfQotK3sKLSsgIGxpbmUgPSAkIDAKLSsgIG5maWVsZHMg PSBzcGxpdChsaW5lLCBmaWVsZCwgIkAiKQotKyAgc3Vic3RlZCA9IDAKLSsgIGxlbiA9IGxlbmd0 aChmaWVsZFsxXSkKLSsgIGZvciAoaSA9IDI7IGkgPCBuZmllbGRzOyBpKyspIHsKLSsgICAga2V5 ID0gZmllbGRbaV0KLSsgICAga2V5bGVuID0gbGVuZ3RoKGtleSkKLSsgICAgaWYgKFNfaXNfc2V0 W2tleV0pIHsKLSsgICAgICB2YWx1ZSA9IFNba2V5XQotKyAgICAgIGxpbmUgPSBzdWJzdHIobGlu ZSwgMSwgbGVuKSAiIiB2YWx1ZSAiIiBzdWJzdHIobGluZSwgbGVuICsga2V5bGVuICsgMykKLSsg ICAgICBsZW4gKz0gbGVuZ3RoKHZhbHVlKSArIGxlbmd0aChmaWVsZFsrK2ldKQotKyAgICAgIHN1 YnN0ZWQgPSAxCi0rICAgIH0gZWxzZQotKyAgICAgIGxlbiArPSAxICsga2V5bGVuCi0rICB9Ci0r Ci0rICBwcmludCBsaW5lCi0rfQotKwotK19BQ0FXSwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdf U1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLStpZiBzZWQgInMvJGFjX2NyLy8i IDwgL2Rldi9udWxsID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIHNlZCAicy8kYWNfY3JcJC8v OyBzLyRhY19jci8kYWNfY3NfYXdrX2NyL2ciCi0rZWxzZQotKyAgY2F0Ci0rZmkgPCAiJHRtcC9z dWJzMS5hd2siID4gIiR0bXAvc3Vicy5hd2siIFwKLSsgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGZpbGVzIG1hY2hpbmVyeSIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgZmls ZXMgbWFjaGluZXJ5IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK19BQ0VP RgotKwotKyMgVlBBVEggbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBzb21lIG1ha2VzLCBzbyB3ZSBy ZW1vdmUgJChzcmNkaXIpLAotKyMgJHtzcmNkaXJ9IGFuZCBAc3JjZGlyQCBmcm9tIFZQQVRIIGlm IHNyY2RpciBpcyAiLiIsIHN0cmlwIGxlYWRpbmcgYW5kCi0rIyB0cmFpbGluZyBjb2xvbnMgYW5k IHRoZW4gcmVtb3ZlIHRoZSB3aG9sZSBsaW5lIGlmIFZQQVRIIGJlY29tZXMgZW1wdHkKLSsjIChh Y3R1YWxseSB3ZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIHRvIHByZXNlcnZlIGxpbmUgbnVtYmVycyku Ci0raWYgdGVzdCAieCRzcmNkaXIiID0geC47IHRoZW4KLSsgIGFjX3Zwc3ViPScvXlsJIF0qVlBB VEhbCSBdKj0vewotK3MvOipcJChzcmNkaXIpOiovOi8KLStzLzoqXCR7c3JjZGlyfToqLzovCi0r cy86KkBzcmNkaXJAOiovOi8KLStzL15cKFtePV0qPVsJIF0qXCk6Ki9cMS8KLStzLzoqJC8vCi0r cy9eW149XSo9WwkgXSokLy8KLSt9JwotK2ZpCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxc X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2ZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIK LSsKLSsjIFNldCB1cCB0aGUgc2NyaXB0cyBmb3IgQ09ORklHX0hFQURFUlMgc2VjdGlvbi4KLSsj IE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0hFQURFUlMu Ci0rIyBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIHdpdGggYC4vY29uZmlnLnN0YXR1cyBNYWtl ZmlsZScuCi0raWYgdGVzdCAtbiAiJENPTkZJR19IRUFERVJTIjsgdGhlbgotK2NhdCA+IiR0bXAv ZGVmaW5lcy5hd2siIDw8XF9BQ0FXSyB8fAotK0JFR0lOIHsKLStfQUNFT0YKLSsKLSsjIFRyYW5z Zm9ybSBjb25mZGVmcy5oIGludG8gYW4gYXdrIHNjcmlwdCBgZGVmaW5lcy5hd2snLCBlbWJlZGRl ZCBhcwotKyMgaGVyZS1kb2N1bWVudCBpbiBjb25maWcuc3RhdHVzLCB0aGF0IHN1YnN0aXR1dGVz IHRoZSBwcm9wZXIgdmFsdWVzIGludG8KLSsjIGNvbmZpZy5oLmluIHRvIHByb2R1Y2UgY29uZmln LmguCi0rCi0rIyBDcmVhdGUgYSBkZWxpbWl0ZXIgc3RyaW5nIHRoYXQgZG9lcyBub3QgZXhpc3Qg aW4gY29uZmRlZnMuaCwgdG8gZWFzZQotKyMgaGFuZGxpbmcgb2YgbG9uZyBsaW5lcy4KLSthY19k ZWxpbT0nJSFfISMgJwotK2ZvciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSA6OyBkbwotKyAg YWNfdD1gc2VkIC1uICIvJGFjX2RlbGltL3AiIGNvbmZkZWZzLmhgCi0rICBpZiB0ZXN0IC16ICIk YWNfdCI7IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09O RklHX0hFQURFUlMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFr ZSAkQ09ORklHX0hFQURFUlMiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0r ICBlbHNlCi0rICAgIGFjX2RlbGltPSIkYWNfZGVsaW0hJGFjX2RlbGltIF8kYWNfZGVsaW0hISAi Ci0rICBmaQotK2RvbmUKLSsKLSsjIEZvciB0aGUgYXdrIHNjcmlwdCwgRCBpcyBhbiBhcnJheSBv ZiBtYWNybyB2YWx1ZXMga2V5ZWQgYnkgbmFtZSwKLSsjIGxpa2V3aXNlIFAgY29udGFpbnMgbWFj cm8gcGFyYW1ldGVycyBpZiBhbnkuICBQcmVzZXJ2ZSBiYWNrc2xhc2gKLSsjIG5ld2xpbmUgc2Vx dWVuY2VzLgotKwotK2FjX3dvcmRfcmU9W18kYXNfY3JfTGV0dGVyc11bXyRhc19jcl9hbG51bV0q Ci0rc2VkIC1uICcKLStzLy5cezE0OFx9LyYnIiRhY19kZWxpbSInL2cKLSt0IHJzZXQKLSs6cnNl dAotK3MvXlsJIF0qI1sJIF0qZGVmaW5lWwkgXVsJIF0qLyAvCi0rdCBkZWYKLStkCi0rOmRlZgot K3MvXFwkLy8KLSt0IGJzbmwKLStzL1siXFxdL1xcJi9nCi0rcy9eIFwoJyIkYWNfd29yZF9yZSIn XClcKChbXigpXSopXClbCSBdKlwoLipcKS9QWyJcMSJdPSJcMiJcCi0rRFsiXDEiXT0iIFwzIi9w Ci0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClbCSBdKlwoLipcKS9EWyJcMSJdPSIgXDIiL3AKLStk Ci0rOmJzbmwKLStzL1siXFxdL1xcJi9nCi0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClcKChbXigp XSopXClbCSBdKlwoLipcKS9QWyJcMSJdPSJcMiJcCi0rRFsiXDEiXT0iIFwzXFxcXFxcbiJcXC9w Ci0rdCBjb250Ci0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClbCSBdKlwoLipcKS9EWyJcMSJdPSIg XDJcXFxcXFxuIlxcL3AKLSt0IGNvbnQKLStkCi0rOmNvbnQKLStuCi0rcy8uXHsxNDhcfS8mJyIk YWNfZGVsaW0iJy9nCi0rdCBjbGVhcgotKzpjbGVhcgotK3MvXFwkLy8KLSt0IGJzbmxjCi0rcy9b IlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIi9wCi0rZAotKzpic25sYwotK3MvWyJcXF0vXFwmL2c7 IHMvXi8iLzsgcy8kL1xcXFxcXG4iXFwvcAotK2IgY29udAotKycgPGNvbmZkZWZzLmggfCBzZWQg JwotK3MvJyIkYWNfZGVsaW0iJy8iXFxcCi0rIi9nJyA+PiRDT05GSUdfU1RBVFVTIHx8IGFjX3dy aXRlX2ZhaWw9MQotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRl X2ZhaWw9MQotKyAgZm9yIChrZXkgaW4gRCkgRF9pc19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgci Ci0rfQotKy9eW1x0IF0qI1tcdCBdKihkZWZpbmV8dW5kZWYpW1x0IF0rJGFjX3dvcmRfcmUoW1x0 IChdfFwkKS8gewotKyAgbGluZSA9IFwkIDAKLSsgIHNwbGl0KGxpbmUsIGFyZywgIiAiKQotKyAg aWYgKGFyZ1sxXSA9PSAiIyIpIHsKLSsgICAgZGVmdW5kZWYgPSBhcmdbMl0KLSsgICAgbWFjMSA9 IGFyZ1szXQotKyAgfSBlbHNlIHsKLSsgICAgZGVmdW5kZWYgPSBzdWJzdHIoYXJnWzFdLCAyKQot KyAgICBtYWMxID0gYXJnWzJdCi0rICB9Ci0rICBzcGxpdChtYWMxLCBtYWMyLCAiKCIpICMpCi0r ICBtYWNybyA9IG1hYzJbMV0KLSsgIHByZWZpeCA9IHN1YnN0cihsaW5lLCAxLCBpbmRleChsaW5l LCBkZWZ1bmRlZikgLSAxKQotKyAgaWYgKERfaXNfc2V0W21hY3JvXSkgewotKyAgICAjIFByZXNl cnZlIHRoZSB3aGl0ZSBzcGFjZSBzdXJyb3VuZGluZyB0aGUgIiMiLgotKyAgICBwcmludCBwcmVm aXggImRlZmluZSIsIG1hY3JvIFBbbWFjcm9dIERbbWFjcm9dCi0rICAgIG5leHQKLSsgIH0gZWxz ZSB7Ci0rICAgICMgUmVwbGFjZSAjdW5kZWYgd2l0aCBjb21tZW50cy4gIFRoaXMgaXMgbmVjZXNz YXJ5LCBmb3IgZXhhbXBsZSwKLSsgICAgIyBpbiB0aGUgY2FzZSBvZiBfUE9TSVhfU09VUkNFLCB3 aGljaCBpcyBwcmVkZWZpbmVkIGFuZCByZXF1aXJlZAotKyAgICAjIG9uIHNvbWUgc3lzdGVtcyB3 aGVyZSBjb25maWd1cmUgd2lsbCBub3QgZGVjaWRlIHRvIGRlZmluZSBpdC4KLSsgICAgaWYgKGRl ZnVuZGVmID09ICJ1bmRlZiIpIHsKLSsgICAgICBwcmludCAiLyoiLCBwcmVmaXggZGVmdW5kZWYs IG1hY3JvLCAiKi8iCi0rICAgICAgbmV4dAotKyAgICB9Ci0rICB9Ci0rfQotK3sgcHJpbnQgfQot K19BQ0FXSwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193 cml0ZV9mYWlsPTEKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3Vs ZCBub3Qgc2V0dXAgY29uZmlnIGhlYWRlcnMgbWFjaGluZXJ5IiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY291bGQgbm90IHNldHVwIGNvbmZpZyBoZWFkZXJzIG1hY2hpbmVyeSIgPiYy O30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaSAjIHRlc3QgLW4gIiRDT05GSUdf SEVBREVSUyIKLSsKLSsKLStldmFsIHNldCBYICIgIDpGICRDT05GSUdfRklMRVMgIDpIICRDT05G SUdfSEVBREVSUyAgICA6QyAkQ09ORklHX0NPTU1BTkRTIgotK3NoaWZ0Ci0rZm9yIGFjX3RhZwot K2RvCi0rICBjYXNlICRhY190YWcgaW4KLSsgIDpbRkhMQ10pIGFjX21vZGU9JGFjX3RhZzsgY29u dGludWU7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfbW9kZSRhY190YWcgaW4KLSsgIDpbRkhMXSo6 Kik7OwotKyAgOkwqIHwgOkMqOiopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBpbnZhbGlkIHRhZyAkYWNfdGFnIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52 YWxpZCB0YWcgJGFjX3RhZyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07Owot KyAgOltGSF0tKSBhY190YWc9LTotOzsKLSsgIDpbRkhdKikgYWNfdGFnPSRhY190YWc6JGFjX3Rh Zy5pbjs7Ci0rICBlc2FjCi0rICBhY19zYXZlX0lGUz0kSUZTCi0rICBJRlM9OgotKyAgc2V0IHgg JGFjX3RhZwotKyAgSUZTPSRhY19zYXZlX0lGUwotKyAgc2hpZnQKLSsgIGFjX2ZpbGU9JDEKLSsg IHNoaWZ0Ci0rCi0rICBjYXNlICRhY19tb2RlIGluCi0rICA6TCkgYWNfc291cmNlPSQxOzsKLSsg IDpbRkhdKQotKyAgICBhY19maWxlX2lucHV0cz0KLSsgICAgZm9yIGFjX2YKLSsgICAgZG8KLSsg ICAgICBjYXNlICRhY19mIGluCi0rICAgICAgLSkgYWNfZj0iJHRtcC9zdGRpbiI7OwotKyAgICAg ICopICMgTG9vayBmb3IgdGhlIGZpbGUgZmlyc3QgaW4gdGhlIGJ1aWxkIHRyZWUsIHRoZW4gaW4g dGhlIHNvdXJjZSB0cmVlCi0rCSAjIChpZiB0aGUgcGF0aCBpcyBub3QgYWJzb2x1dGUpLiAgVGhl IGFic29sdXRlIHBhdGggY2Fubm90IGJlIERPUy1zdHlsZSwKLSsJICMgYmVjYXVzZSAkYWNfZiBj YW5ub3QgY29udGFpbiBgOicuCi0rCSB0ZXN0IC1mICIkYWNfZiIgfHwKLSsJICAgY2FzZSAkYWNf ZiBpbgotKwkgICBbXFwvJF0qKSBmYWxzZTs7Ci0rCSAgICopIHRlc3QgLWYgIiRzcmNkaXIvJGFj X2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2YiOzsKLSsJICAgZXNhYyB8fAotKwkgICB7IHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGFj X2YiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxl OiAkYWNfZiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotKyAgICAgIGVz YWMKLSsgICAgICBjYXNlICRhY19mIGluICpcJyopIGFjX2Y9YCRhc19lY2hvICIkYWNfZiIgfCBz ZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyBlc2FjCi0rICAgICAgYWNfZmlsZV9pbnB1dHM9IiRh Y19maWxlX2lucHV0cyAnJGFjX2YnIgotKyAgICBkb25lCi0rCi0rICAgICMgTGV0J3Mgc3RpbGwg cHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0 Ci0rICAgICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoK LSsgICAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8K LSsgICAgY29uZmlndXJlX2lucHV0PSdHZW5lcmF0ZWQgZnJvbSAnYAotKwkgICRhc19lY2hvICIk KiIgfCBzZWQgJ3N8XlteOl0qL3x8O3N8OlteOl0qL3wsIHxnJwotKwlgJyBieSBjb25maWd1cmUu JwotKyAgICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0rICAgICAgY29uZmlndXJl X2lucHV0PSIkYWNfZmlsZS4gICRjb25maWd1cmVfaW5wdXQiCi0rICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBjcmVhdGluZyAkYWNfZmlsZSIgPiY2O30KLSsgICAgZmkKLSsgICAgIyBOZXV0cmFsaXplIHNw ZWNpYWwgY2hhcmFjdGVycyBpbnRlcnByZXRlZCBieSBzZWQgaW4gcmVwbGFjZW1lbnQgc3RyaW5n cy4KLSsgICAgY2FzZSAkY29uZmlndXJlX2lucHV0IGluICMoCi0rICAgICpcJiogfCAqXHwqIHwg KlxcKiApCi0rICAgICAgIGFjX3NlZF9jb25mX2lucHV0PWAkYXNfZWNobyAiJGNvbmZpZ3VyZV9p bnB1dCIgfAotKyAgICAgICBzZWQgJ3MvW1xcXFwmfF0vXFxcXCYvZydgOzsgIygKLSsgICAgKikg YWNfc2VkX2NvbmZfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dDs7Ci0rICAgIGVzYWMKLSsKLSsgICAg Y2FzZSAkYWNfdGFnIGluCi0rICAgICo6LToqIHwgKjotKSBjYXQgPiIkdG1wL3N0ZGluIiBcCi0r ICAgICAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBj cmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3Qg Y3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7Owot KyAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBhY19kaXI9YCRhc19kaXJuYW1lIC0t ICIkYWNfZmlsZSIgfHwKLSskYXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlte L11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJ IFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhY19maWxlIiA6ICdYXCgvXCkn IFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhY19maWxlIiB8Ci0rICAgIHNlZCAn L15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEK LSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0r CSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0r CSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiov Li87IHEnYAotKyAgeyBhc19kaXI9IiRhY19kaXIiCi0rICBjYXNlICRhc19kaXIgaW4gIygKLSsg IC0qKSBhc19kaXI9Li8kYXNfZGlyOzsKLSsgIGVzYWMKLSsgIHRlc3QgLWQgIiRhc19kaXIiIHx8 IHsgJGFzX21rZGlyX3AgJiYgbWtkaXIgLXAgIiRhc19kaXIiOyB9IHx8IHsKLSsgICAgYXNfZGly cz0KLSsgICAgd2hpbGUgOjsgZG8KLSsgICAgICBjYXNlICRhc19kaXIgaW4gIygKLSsgICAgICAq XCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9n ImA7OyAjJygKLSsgICAgICAqKSBhc19xZGlyPSRhc19kaXI7OwotKyAgICAgIGVzYWMKLSsgICAg ICBhc19kaXJzPSInJGFzX3FkaXInICRhc19kaXJzIgotKyAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5h bWUgLS0gIiRhc19kaXIiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8v KlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAot KwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCkn IFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19kaXIiIHwKLSsgICAgc2VkICcv XlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQot KwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8u LzsgcSdgCi0rICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKLSsgICAgZG9uZQotKyAg ICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMiCi0rICB9IHx8IHRl c3QgLWQgIiRhc19kaXIiIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj YW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH07IH0KLSsgIGFjX2J1aWxkZGlyPS4KLSsKLStjYXNlICIkYWNfZGly IiBpbgotKy4pIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVp bGRfcHJlZml4PSA7OwotKyopCi0rICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIi IHwgc2VkICdzfF5cLltcXC9dfHwnYAotKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGlu ICRhY19kaXJfc3VmZml4LgotKyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19k aXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98fCdgCi0rICBjYXNlICRhY190 b3BfYnVpbGRkaXJfc3ViIGluCi0rICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9i dWlsZF9wcmVmaXg9IDs7Ci0rICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxk ZGlyX3N1Yi8gOzsKLSsgIGVzYWMgOzsKLStlc2FjCi0rYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNf cHdkCi0rYWNfYWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAotKyMgZm9yIGJhY2t3 YXJkIGNvbXBhdGliaWxpdHk6Ci0rYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4 Ci0rCi0rY2FzZSAkc3JjZGlyIGluCi0rICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2Uu Ci0rICAgIGFjX3NyY2Rpcj0uCi0rICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9z dWIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OwotKyAgW1xcL10qIHwgPzpbXFwv XSogKSAgIyBBYnNvbHV0ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3Vm Zml4OwotKyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9 JHNyY2RpciA7OwotKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9JGFjX3Rv cF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsgICAgYWNfdG9wX3NyY2Rpcj0k YWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3 ZC8kc3JjZGlyIDs7Ci0rZXNhYwotK2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFj X2Rpcl9zdWZmaXgKLSsKLSsKLSsgIGNhc2UgJGFjX21vZGUgaW4KLSsgIDpGKQotKyAgIwotKyAg IyBDT05GSUdfRklMRQotKyAgIwotKwotKyAgY2FzZSAkSU5TVEFMTCBpbgotKyAgW1xcLyRdKiB8 ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OwotKyAgKikgYWNfSU5TVEFMTD0kYWNf dG9wX2J1aWxkX3ByZWZpeCRJTlNUQUxMIDs7Ci0rICBlc2FjCi0rICBhY19NS0RJUl9QPSRNS0RJ Ul9QCi0rICBjYXNlICRNS0RJUl9QIGluCi0rICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwotKyAg Ki8qKSBhY19NS0RJUl9QPSRhY190b3BfYnVpbGRfcHJlZml4JE1LRElSX1AgOzsKLSsgIGVzYWMK LStfQUNFT0YKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVf ZmFpbD0xCi0rIyBJZiB0aGUgdGVtcGxhdGUgZG9lcyBub3Qga25vdyBhYm91dCBkYXRhcm9vdGRp ciwgZXhwYW5kIGl0LgotKyMgRklYTUU6IFRoaXMgaGFjayBzaG91bGQgYmUgcmVtb3ZlZCBhIGZl dyB5ZWFycyBhZnRlciAyLjYwLgotK2FjX2RhdGFyb290ZGlyX2hhY2s9OyBhY19kYXRhcm9vdGRp cl9zZWVuPQotKwotK2FjX3NlZF9kYXRhcm9vdD0nCi0rL2RhdGFyb290ZGlyLyB7Ci0rICBwCi0r ICBxCi0rfQotKy9AZGF0YWRpckAvcAotKy9AZG9jZGlyQC9wCi0rL0BpbmZvZGlyQC9wCi0rL0Bs b2NhbGVkaXJAL3AKLSsvQG1hbmRpckAvcAotKycKLStjYXNlIGBldmFsICJzZWQgLW4gXCJcJGFj X3NlZF9kYXRhcm9vdFwiICRhY19maWxlX2lucHV0cyJgIGluCi0rKmRhdGFyb290ZGlyKikgYWNf ZGF0YXJvb3RkaXJfc2Vlbj15ZXM7OwotKypAZGF0YWRpckAqfCpAZG9jZGlyQCp8KkBpbmZvZGly QCp8KkBsb2NhbGVkaXJAKnwqQG1hbmRpckAqKQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0tZGF0YXJv b3RkaXIgc2V0dGluZyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2ZpbGVf aW5wdXRzIHNlZW1zIHRvIGlnbm9yZSB0aGUgLS1kYXRhcm9vdGRpciBzZXR0aW5nIiA+JjI7fQot K19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9 MQotKyAgYWNfZGF0YXJvb3RkaXJfaGFjaz0nCi0rICBzJkBkYXRhZGlyQCYkZGF0YWRpciZnCi0r ICBzJkBkb2NkaXJAJiRkb2NkaXImZwotKyAgcyZAaW5mb2RpckAmJGluZm9kaXImZwotKyAgcyZA bG9jYWxlZGlyQCYkbG9jYWxlZGlyJmcKLSsgIHMmQG1hbmRpckAmJG1hbmRpciZnCi0rICAgIHMm XFxcJHtkYXRhcm9vdGRpcn0mJGRhdGFyb290ZGlyJmcnIDs7Ci0rZXNhYwotK19BQ0VPRgotKwot KyMgTmV1dHJhbGl6ZSBWUEFUSCB3aGVuIGAkc3JjZGlyJyA9IGAuJy4KLSsjIFNoZWxsIGNvZGUg aW4gY29uZmlndXJlLmFjIG1pZ2h0IHNldCBleHRyYXN1Yi4KLSsjIEZJWE1FOiBkbyB3ZSByZWFs bHkgd2FudCB0byBtYWludGFpbiB0aGlzIGZlYXR1cmU/Ci0rY2F0ID4+JENPTkZJR19TVEFUVVMg PDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNfc2VkX2V4dHJhPSIkYWNfdnBzdWIKLSsk ZXh0cmFzdWIKLStfQUNFT0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNf d3JpdGVfZmFpbD0xCi0rOnQKLSsvQFthLXpBLVpfXVthLXpBLVpfMC05XSpALyFiCi0rc3xAY29u ZmlndXJlX2lucHV0QHwkYWNfc2VkX2NvbmZfaW5wdXR8O3QgdAotK3MmQHRvcF9idWlsZGRpckAm JGFjX3RvcF9idWlsZGRpcl9zdWImO3QgdAotK3MmQHRvcF9idWlsZF9wcmVmaXhAJiRhY190b3Bf YnVpbGRfcHJlZml4Jjt0IHQKLStzJkBzcmNkaXJAJiRhY19zcmNkaXImO3QgdAotK3MmQGFic19z cmNkaXJAJiRhY19hYnNfc3JjZGlyJjt0IHQKLStzJkB0b3Bfc3JjZGlyQCYkYWNfdG9wX3NyY2Rp ciY7dCB0Ci0rcyZAYWJzX3RvcF9zcmNkaXJAJiRhY19hYnNfdG9wX3NyY2RpciY7dCB0Ci0rcyZA YnVpbGRkaXJAJiRhY19idWlsZGRpciY7dCB0Ci0rcyZAYWJzX2J1aWxkZGlyQCYkYWNfYWJzX2J1 aWxkZGlyJjt0IHQKLStzJkBhYnNfdG9wX2J1aWxkZGlyQCYkYWNfYWJzX3RvcF9idWlsZGRpciY7 dCB0Ci0rcyZASU5TVEFMTEAmJGFjX0lOU1RBTEwmO3QgdAotK3MmQE1LRElSX1BAJiRhY19NS0RJ Ul9QJjt0IHQKLSskYWNfZGF0YXJvb3RkaXJfaGFjawotKyIKLStldmFsIHNlZCBcIlwkYWNfc2Vk X2V4dHJhXCIgIiRhY19maWxlX2lucHV0cyIgfCAkQVdLIC1mICIkdG1wL3N1YnMuYXdrIiA+JHRt cC9vdXQgXAotKyAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxk IG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3Vs ZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQotKwotK3Rlc3QgLXogIiRhY19kYXRhcm9vdGRpcl9oYWNrJGFjX2RhdGFyb290ZGlyX3NlZW4i ICYmCi0rICB7IGFjX291dD1gc2VkIC1uICcvXCR7ZGF0YXJvb3RkaXJ9L3AnICIkdG1wL291dCJg OyB0ZXN0IC1uICIkYWNfb3V0IjsgfSAmJgotKyAgeyBhY19vdXQ9YHNlZCAtbiAnL15bCSBdKmRh dGFyb290ZGlyWwkgXSo6Kj0vcCcgIiR0bXAvb3V0ImA7IHRlc3QgLXogIiRhY19vdXQiOyB9ICYm Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2ZpbGUgY29udGFp bnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCi0rd2hpY2ggc2Vl bXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkLiIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVu Y2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5k ZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkLiIgPiYyO30KLSsKLSsgIHJt IC1mICIkdG1wL3N0ZGluIgotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgLSkgY2F0ICIkdG1wL291 dCIgJiYgcm0gLWYgIiR0bXAvb3V0Ijs7Ci0rICAqKSBybSAtZiAiJGFjX2ZpbGUiICYmIG12ICIk dG1wL291dCIgIiRhY19maWxlIjs7Ci0rICBlc2FjIFwKLSsgIHx8IHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KLSsg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgOzsKLSsgIDpIKQotKyAgIwotKyAgIyBDT05G SUdfSEVBREVSCi0rICAjCi0rICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0rICAg IHsKLSsgICAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAgICAm JiBldmFsICckQVdLIC1mICIkdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIKLSsg ICAgfSA+IiR0bXAvY29uZmlnLmgiIFwKLSsgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9Ci0rICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgIGlmIGRpZmYgIiRhY19maWxlIiAiJHRtcC9jb25m aWcuaCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogJGFj X2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjY7fQotKyAgICBlbHNlCi0rICAgICAgcm0gLWYgIiRhY19m aWxlIgotKyAgICAgIG12ICIkdG1wL2NvbmZpZy5oIiAiJGFjX2ZpbGUiIFwKLSsJfHwgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxl IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICBmaQotKyAgZWxzZQot KyAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFs ICckQVdLIC1mICIkdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIgXAotKyAgICAg IHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRl IC0iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlIC0iID4m Mjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotKyMgQ29tcHV0ZSAiJGFj X2ZpbGUiJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgotK19hbV9hcmc9IiRhY19maWxlIgot K19hbV9zdGFtcF9jb3VudD0xCi0rZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7 IGRvCi0rICBjYXNlICRfYW1faGVhZGVyIGluCi0rICAgICRfYW1fYXJnIHwgJF9hbV9hcmc6KiAp Ci0rICAgICAgYnJlYWsgOzsKLSsgICAgKiApCi0rICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHBy ICRfYW1fc3RhbXBfY291bnQgKyAxYCA7OwotKyAgZXNhYwotK2RvbmUKLStlY2hvICJ0aW1lc3Rh bXAgZm9yICRfYW1fYXJnIiA+YCRhc19kaXJuYW1lIC0tICIkX2FtX2FyZyIgfHwKLSskYXNfZXhw ciBYIiRfYW1fYXJnIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIk X2FtX2FyZyIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJF9hbV9hcmciIDogJ1hcKC8vXCkk JyBcfCBcCi0rCSBYIiRfYW1fYXJnIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSsk YXNfZWNobyBYIiRfYW1fYXJnIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVte L10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClb Xi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97 Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAg cy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYC9zdGFtcC1oJF9hbV9zdGFt cF9jb3VudAotKyA7OwotKwotKyAgOkMpICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXhl Y3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBleGVjdXRp bmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNjt9Ci0rIDs7Ci0rICBlc2FjCi0rCi0rCi0rICBjYXNl ICRhY19maWxlJGFjX21vZGUgaW4KLSsgICAgImRlcGZpbGVzIjpDKSB0ZXN0IHgiJEFNREVQX1RS VUUiICE9IHgiIiB8fCBmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsgZG8KLSsgICMgU3RyaXAgTUYg c28gd2UgZW5kIHVwIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCi0rICBtZj1gZWNobyAiJG1m IiB8IHNlZCAtZSAncy86LiokLy8nYAotKyAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0 b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KLSsgICMgV2UgdXNlZCB0byBtYXRjaCBv bmx5IHRoZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKLSsgICMgc29tZSBwZW9wbGUg cmVuYW1lIHRoZW07IHNvIGluc3RlYWQgd2UgbG9vayBhdCB0aGUgZmlsZSBjb250ZW50LgotKyAg IyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0 LXByb2Nlc3MKLSsgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24gdG9w IG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCi0rICAjIEdyZXAnaW5nIHRoZSB3aG9sZSBmaWxlIGlz IG5vdCBnb29kIGVpdGhlcjogQUlYIGdyZXAgaGFzIGEgbGluZQotKyAgIyBsaW1pdCBvZiAyMDQ4 LCBidXQgYWxsIHNlZCdzIHdlIGtub3cgaGF2ZSB1bmRlcnN0YW5kIGF0IGxlYXN0IDQwMDAuCi0r ICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcgIiRtZiIgfCBn cmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgIGRpcnBhcnQ9YCRhc19kaXJuYW1lIC0t ICIkbWYiIHx8Ci0rJGFzX2V4cHIgWCIkbWYiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyok JyBcfCBcCi0rCSBYIiRtZiIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJG1mIiA6ICdYXCgv L1wpJCcgXHwgXAotKwkgWCIkbWYiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRh c19lY2hvIFgiJG1mIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8q JC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiov ewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAg ICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEv Ci0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAgZWxzZQotKyAgICBjb250aW51 ZQotKyAgZmkKLSsgICMgRXh0cmFjdCB0aGUgZGVmaW5pdGlvbiBvZiBERVBESVIsIGFtX19pbmNs dWRlLCBhbmQgYW1fX3F1b3RlCi0rICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmlu ZyBgbWFrZScuCi0rICBERVBESVI9YHNlZCAtbiAncy9eREVQRElSID0gLy9wJyA8ICIkbWYiYAot KyAgdGVzdCAteiAiJERFUERJUiIgJiYgY29udGludWUKLSsgIGFtX19pbmNsdWRlPWBzZWQgLW4g J3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAotKyAgdGVzdCAteiAiYW1fX2luY2x1ZGUi ICYmIGNvbnRpbnVlCi0rICBhbV9fcXVvdGU9YHNlZCAtbiAncy9eYW1fX3F1b3RlID0gLy9wJyA8 ICIkbWYiYAotKyAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1 bmRlcnNjb3JlOyBleHBhbmQgaXQKLSsgIFU9YHNlZCAtbiAncy9eVSA9IC8vcCcgPCAiJG1mImAK LSsgICMgRmluZCBhbGwgZGVwZW5kZW5jeSBvdXRwdXQgZmlsZXMsIHRoZXkgYXJlIGluY2x1ZGVk IGZpbGVzIHdpdGgKLSsgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNl ZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQotKyAgIyBzaW1wbGVzdCBhcHByb2FjaCB0byBjaGFu Z2luZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2YWx1ZSBpbiB0aGUKLSsgICMgZXhwYW5zaW9u LgotKyAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCi0rICAgIHMvXiRhbV9faW5jbHVkZSAkYW1fX3F1 b3RlXCguKihERVBESVIpLipcKSRhbV9fcXVvdGUiJyQvXDEvcCcgPCIkbWYiIHwgXAotKyAgICAg ICBzZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9nJyAtZSAncy9cJFUvJyIkVSInL2cn YDsgZG8KLSsgICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCi0rICAgIHRlc3Qg LWYgIiRkaXJwYXJ0LyRmaWxlIiAmJiBjb250aW51ZQotKyAgICBmZGlyPWAkYXNfZGlybmFtZSAt LSAiJGZpbGUiIHx8Ci0rJGFzX2V4cHIgWCIkZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14v XSovKiQnIFx8IFwKLSsJIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSBYIiRmaWxl IiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkZmlsZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9u dWxsIHx8Ci0rJGFzX2VjaG8gWCIkZmlsZSIgfAotKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wv KlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwo XC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwv XC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cKS4qL3sK LSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsgICAgeyBh c19kaXI9JGRpcnBhcnQvJGZkaXIKLSsgIGNhc2UgJGFzX2RpciBpbiAjKAotKyAgLSopIGFzX2Rp cj0uLyRhc19kaXI7OwotKyAgZXNhYwotKyAgdGVzdCAtZCAiJGFzX2RpciIgfHwgeyAkYXNfbWtk aXJfcCAmJiBta2RpciAtcCAiJGFzX2RpciI7IH0gfHwgewotKyAgICBhc19kaXJzPQotKyAgICB3 aGlsZSA6OyBkbwotKyAgICAgIGNhc2UgJGFzX2RpciBpbiAjKAotKyAgICAgICpcJyopIGFzX3Fk aXI9YCRhc19lY2hvICIkYXNfZGlyIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7ICMnKAot KyAgICAgICopIGFzX3FkaXI9JGFzX2Rpcjs7Ci0rICAgICAgZXNhYwotKyAgICAgIGFzX2RpcnM9 IickYXNfcWRpcicgJGFzX2RpcnMiCi0rICAgICAgYXNfZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFz X2RpciIgfHwKLSskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10q LyokJyBcfCBcCi0rCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSBYIiRhc19k aXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgLiAyPi9k ZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGFzX2RpciIgfAotKyAgICBzZWQgJy9eWFwoLipbXi9d XClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkg IC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAv XlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9c KS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsg ICAgICB0ZXN0IC1kICIkYXNfZGlyIiAmJiBicmVhawotKyAgICBkb25lCi0rICAgIHRlc3QgLXog IiRhc19kaXJzIiB8fCBldmFsICJta2RpciAkYXNfZGlycyIKLSsgIH0gfHwgdGVzdCAtZCAiJGFz X2RpciIgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVh dGUgZGlyZWN0b3J5ICRhc19kaXIiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5u b3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfTsgfQotKyAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxlIgotKyAgICBl Y2hvICcjIGR1bW15JyA+ICIkZGlycGFydC8kZmlsZSIKLSsgIGRvbmUKLStkb25lCi0rIDs7Ci0r Ci0rICBlc2FjCi0rZG9uZSAjIGZvciBhY190YWcKLSsKLSsKLSt7IChleGl0IDApOyBleGl0IDA7 IH0KLStfQUNFT0YKLStjaG1vZCAreCAkQ09ORklHX1NUQVRVUwotK2FjX2NsZWFuX2ZpbGVzPSRh Y19jbGVhbl9maWxlc19zYXZlCi0rCi0rdGVzdCAkYWNfd3JpdGVfZmFpbCA9IDAgfHwKLSsgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB3cml0ZSBmYWlsdXJlIGNyZWF0aW5n ICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogd3JpdGUgZmFp bHVyZSBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KLSsKLSsKLSsjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFu ZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCi0rIyBjb25maWcuc3RhdHVzIGRvZXMgaXRzIG93 biByZWRpcmVjdGlvbiwgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2cuCi0rIyBVbmZvcnR1bmF0ZWx5 LCBvbiBET1MgdGhpcyBmYWlscywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBrZXB0IG9wZW4KLSsj IGJ5IGNvbmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3b24ndCBiZSBhYmxlIHRvIHdyaXRlIHRv IGl0OyBpdHMKLSsjIG91dHB1dCBpcyBzaW1wbHkgZGlzY2FyZGVkLiAgU28gd2UgZXhlYyB0aGUg RkQgdG8gL2Rldi9udWxsLAotKyMgZWZmZWN0aXZlbHkgY2xvc2luZyBjb25maWcubG9nLCBzbyBp dCBjYW4gYmUgcHJvcGVybHkgKHJlKW9wZW5lZCBhbmQKLSsjIGFwcGVuZGVkIHRvIGJ5IGNvbmZp Zy5zdGF0dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZpZ3VyZSwgd2UKLSsjIG5lZWQgdG8g bWFrZSB0aGUgRkQgYXZhaWxhYmxlIGFnYWluLgotK2lmIHRlc3QgIiRub19jcmVhdGUiICE9IHll czsgdGhlbgotKyAgYWNfY3Nfc3VjY2Vzcz06Ci0rICBhY19jb25maWdfc3RhdHVzX2FyZ3M9Ci0r ICB0ZXN0ICIkc2lsZW50IiA9IHllcyAmJgotKyAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9IiRh Y19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKLSsgIGV4ZWMgNT4vZGV2L251bGwKLSsgICRT SEVMTCAkQ09ORklHX1NUQVRVUyAkYWNfY29uZmlnX3N0YXR1c19hcmdzIHx8IGFjX2NzX3N1Y2Nl c3M9ZmFsc2UKLSsgIGV4ZWMgNT4+Y29uZmlnLmxvZwotKyAgIyBVc2UgfHwsIG5vdCAmJiwgdG8g YXZvaWQgZXhpdGluZyBmcm9tIHRoZSBpZiB3aXRoICQ/ID0gMSwgd2hpY2gKLSsgICMgd291bGQg bWFrZSBjb25maWd1cmUgZmFpbCBpZiB0aGlzIGlzIHRoZSBsYXN0IGluc3RydWN0aW9uLgotKyAg JGFjX2NzX3N1Y2Nlc3MgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rZmkKLStpZiB0ZXN0IC1u ICIkYWNfdW5yZWNvZ25pemVkX29wdHMiICYmIHRlc3QgIiRlbmFibGVfb3B0aW9uX2NoZWNraW5n IiAhPSBubzsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVu cmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVk X29wdHMiID4mMjt9Ci0rZmkKLSsKLSsKLStlY2hvICIKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRpb246Ci0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rCi0rRGlyZWN0b3JpZXM6Ci0rICAtIHByZWZpeCAuLi4uLi4uLi4uLi4uLi4g OiAke3ByZWZpeH0KLSsgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4uLiA6ICR7ZXhlY19wcmVmaXh9 Ci0rICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1ZGVkaXJ9Ci0rICAtIGxpYmRp ciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0KLSsgIC0gZG9jZGlyIC4uLi4uLi4uLi4uLi4u LiA6ICR7ZG9jZGlyfQotKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4uLi4uIDogJHttYW5kaXJ9Ci0r ICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9Ci0rCi0rU3dpdGNoZXM6Ci0r ICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9leGNlcHRpb25zfQotKyAgLSBp bmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19kb2N9Ci0rICAtIGh0bWwtZG9j IC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KLSsgIC0gc2hhcmVkIC4uLi4uLi4u Li4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KLSsgIC0gc3RhdGljIC4uLi4uLi4uLi4uLi4uLiA6 ICR7ZW5hYmxlX3N0YXRpY30KLSsKLStEb2N1bWVudGF0aW9uIHRvb2xzOgotKyAgLSB0ZXhpbmZv IC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQotKyAgLSBkb3h5Z2VuIC4uLi4uLi4uLi4u Li4uIDogJHtkb3h5Z2VuX29rfQotKyAgLSBsYXRleCAuLi4uLi4uLi4uLi4uLi4uIDogJHtsYXRl eF9va30KLSsgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZHZpcHNfb2t9Ci0rICAtIGdo b3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQotKwotK1Rlc3RpbmcgdG9vbHM6Ci0rICAt IGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9Ci0rICAtIHNlZCAuLi4uLi4uLi4u Li4uLi4uLi4gOiAke3NlZF9va30KLSsKLStDb21waWxlci9saW5rZXIgZmxhZ3MvbGlicy9kZWZz OgotKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9Ci0rICAtIENYWEZMQUdTIC4u Li4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQotKyAgLSBDUFBGTEFHUyAuLi4uLi4uLi4uLi4uIDog JHtDUFBGTEFHU30KLSsgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4uLiA6ICR7TERGTEFHU30KLSsg IC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KLSsKLStCdXJyaWVkIGhlYWRlciBm aWxlczoKLSsgIC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4uIDogJHtlbmFibGVfYnVycmll ZF9oZWFkZXJzfQotKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAuLi4uLi4gOiAke2VuYWJsZV9t eXNxbF9idXJyaWVkX2hlYWRlcnN9Ci0rICAtIFBPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgLiA6 ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQotKwotK0V4dGVybmFsIGxpYnJh cmllczoKLSsgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQk9PU1RfVkVSU0lP TiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059Ci0rICAgIG8gQk9PU1RfQ0ZMQUdTIC4uLi4uLi4g OiAke0JPT1NUX0NGTEFHU30KLSsgICAgbyBCT09TVF9MSUJTIC4uLi4uLi4uLiA6ICR7Qk9PU1Rf TElCU30KLSsgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfREFURV9USU1FX0xJ Qn0KLSsgICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQn0KLSsKLSsgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRf bXlzcWx9Ci0rICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAke01ZU1FMX1ZFUlNJT059Ci0r ICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NGTEFHU30KLSsgICAgbyBNWVNR TF9MREZMQUdTIC4uLi4uLiA6ICR7TVlTUUxfTERGTEFHU30KLSsKLSsgIC0gUG9zdEdyZVNRTCBz dXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbH0KLSsgICAgbyBQT1NUR1JF U1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQotKyAgICBvIFBPU1RHUkVTUUxf Q0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KLSsgICAgbyBQT1NUR1JFU1FMX0xERkxB R1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfQotKwotKyAgLSBPcmFjbGUgc3VwcG9ydCAuLi4u Li4uIDogJHtlbmFibGVfYmFja2VuZF9vcmFjbGV9Ci0rICAgIG8gT1JBQ0xFX1ZFUlNJT04gLi4u Li4gOiAke09SQUNMRV9PQ0lfVkVSU0lPTn0KLSsgICAgbyBPUkFDTEVfQ0ZMQUdTIC4uLi4uLiA6 ICR7T1JBQ0xFX09DSV9DRkxBR1N9Ci0rICAgIG8gT1JBQ0xFX0xERkxBR1MgLi4uLi4gOiAke09S QUNMRV9PQ0lfTERGTEFHU30KLSsKLSsgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6Ci0rICAg IG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KLSsgICAgbyBDUFBV TklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9Ci0rICAgIG8gQ1BQVU5JVF9MSUJT IC4uLi4uLi4gOiAke0NQUFVOSVRfTElCU30KLSsKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStO b3cgdHlwZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNL QUdFLSRWRVJTSU9OIGxpYnJhcnkKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsiCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlLmFjIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25m aWd1cmUuYWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJl LmFjCTIwMDktMDUtMDYgMDE6MzA6MzAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDQwMCBA QAotKyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0byBwcm9kdWNlIGEgY29uZmln dXJlIHNjcmlwdAotKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfUFJFUkVRKDIuNTkpCi0rQUNfQ09QWVJJR0hU KFtDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSBNYWNpZWogU29iY3phayA8bXNvYmN6YWtAdXNlcnMu c291cmNlZm9yZ2UubmV0Pl0pCi0rQUNfSU5JVChbU09DSV0sWzMuMC4wXSxbbXNvYmN6YWtAdXNl cnMuc291cmNlZm9yZ2UubmV0XSxbc29jaV0pCi0rQUNfQ09ORklHX0hFQURFUihbc29jaS9jb25m aWcuaF0pCi0rQUNfQ09ORklHX1NSQ0RJUihbc29jaS9jb3JlL2Vycm9yLmNwcF0pCi0rQUNfQ09O RklHX0FVWF9ESVIoW2NvbmZpZ10pCi0rQU1fSU5JVF9BVVRPTUFLRQotK0FNX1BBVEhfQ1BQVU5J VCgxLjEwKQotK0FNX0NPTkRJVElPTkFMKFtIQVZFX0NQUFVOSVRdLCBbdGVzdCAieCRDUFBVTklU X0xJQlMiICE9IHhdKQotKwotKyMgUlBNIHJlbGVhc2UgbnVtYmVyCi0rUlBNX1JFTEVBU0U9IjEx IgotK0FDX1NVQlNUKFJQTV9SRUxFQVNFKQotKwotKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmlu ZwotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKLSsjICAgICAgICAgICAgICAgICAg ICAgICAgfCB8IHwKLSsjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0rCi0rIyAgICAg ICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2 aXNpb246YWdlCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAg ICAgICAgICAgIHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUg YmVlbiBhZGRlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8g emVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiAKLSsjICAgICAgICAgICAgICAgICB8ICAgICAg ICB8ICAgICAgICByZW1vdmVkIG9yIGNoYW5nZWQKLSsjICAgICAgICAgICAgICAgICB8ICAgICAg ICArLSBpbmNyZW1lbnQgaWYgc291cmNlIGNvZGUgaGFzIGNoYW5nZWQ7Ci0rIyAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgc2V0IHRvIHplcm8gaWYgY3VycmVudCBpcyBpbmNyZW1lbnRlZAot KyMgICAgICAgICAgICAgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBh ZGRlZCwgcmVtb3ZlZAotKyMgICAgICAgICAgICAgICAgICAgIG9yIGNoYW5nZWQKLStBQ19TVUJT VChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLSsjIFVwbG9hZCBjb21tYW5kIGZvciBTb3Vy Y2VGb3JnZQotK1VQTE9BRF9DT01NQU5EPSJuY2Z0cHB1dCAtdiB1cGxvYWQuc291cmNlZm9yZ2Uu bmV0IC9pbmNvbWluZyIKLStBQ19TVUJTVChVUExPQURfQ09NTUFORCkKLSsKLSsjIENoZWNrIGZv ciBob3N0IGFuZCBkaXNhYmxlIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgaW4gV2luZG93cwot K0FDX0NBTk9OSUNBTF9IT1NUCi0rY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1zZG9zKiB8ICotKi1n bzMyKiB8ICotKi1taW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0qLXdpbmRvd3MqKSAKLSsgICAg QUNfRElTQUJMRV9TSEFSRUQKLSsgICAgQUNfRU5BQkxFX1NUQVRJQwotKyAgICA7OwotKyAgKikg IAotKyAgICBBQ19FTkFCTEVfU0hBUkVECi0rICAgIEFDX0RJU0FCTEVfU1RBVElDCi0rICAgIDs7 Ci0rZXNhYwotKwotKyMgQ2hlY2tzIGZvciBwcm9ncmFtcwotK3NhdmVfQ1hYRkxBR1M9IiRDWFhG TEFHUyIKLStBQ19QUk9HX0NYWAotK0FDX1BST0dfQ1hYQ1BQCi0rQ1hYRkxBR1M9IiRzYXZlX0NY WEZMQUdTIgotK0FDX1BST0dfSU5TVEFMTAotK0FDX1BST0dfTElCVE9PTAotK0FDX1BST0dfTE5f UwotK0FDX1BST0dfTUFLRV9TRVQKLSsKLSsjIFNldCBkZWZhdWx0IGxhbmd1YWdlIHRvIEMrKwot K0FDX0xBTkcoW0MrK10pCi0rCi0rIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKLStBQ19B UkdfRU5BQkxFKGV4Y2VwdGlvbnMsCi0rICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0t ZW5hYmxlLWV4Y2VwdGlvbnNdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFi bGUgZXhjZXB0aW9ucyBoYW5kbGluZyBtZWNoYW5pc21dKV0sCi0rICAgICAgICAgICAgICBbQUNf REVGSU5FKFtTT0NJX0VYQ0VQVElPTlNdLCBbMV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAg IFtEZWZpbmUgaWYgeW91IHdhbnQgZXhjZXB0aW9ucyBoYW5kbGluZ10pXSkKLSt0ZXN0ICJ4JGVu YWJsZV9leGNlcHRpb25zIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCi0rdGVzdCAi eCRheF9jdl9ib29zdF9kYXRlX3RpbWUiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9ucz15ZXMK LSsKLSsjIENoZWNrIGZvciBpbmZvIHBhZ2VzCi0rQUNfQVJHX0VOQUJMRShpbmZvLWRvYywgCi0r ICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1pbmZvLWRvY10sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBJbmZvIGRvY3VtZW50 YXRpb25dKV0pCi0rdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBlbmFibGVfaW5m b19kb2M9eWVzCi0rCi0rCi0rIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCi0rQUNfQVJHX0VO QUJMRShodG1sLWRvYywgCi0rICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJs ZS1odG1sLWRvY10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5l cmF0ZSBIVE1MIGRvY3VtZW50YXRpb25dKV0pCi0rdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9 IHhubyAmJiBlbmFibGVfaHRtbF9kb2M9eWVzCi0rCi0rCi0rIyBQcm92aWRlIC0td2l0aC1kb2Nk aXIKLStBQ19BUkdfV0lUSChkb2NkaXIsCi0rICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFst LXdpdGgtZG9jZGlyPURJUl0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZXQgZG9j dW1lbnRhdGlvbiBkaXJlY3RvcnkgdG8gRElSXSldLAotKyAgICAgICAgICAgIFtET0NfRElSPSIk d2l0aHZhbCJdLAotKyAgICAgICAgICAgIFtET0NfRElSPSIiXSkKLStpZiB0ZXN0ICJ4JERPQ19E SVIiICE9IHg7IHRoZW4KLSsgIGRvY2Rpcj0iJERPQ19ESVIiCi0rZWxzZQotKyAgZG9jZGlyPSIk e2RhdGFkaXJ9L2RvYy8kUEFDS0FHRS0kVkVSU0lPTiIKLStmaQotK0FDX1NVQlNUKGRvY2RpcikK LSsKLSsKLSsjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRzZWxm KQotK0FDX0FSR19FTkFCTEUoYnVycmllZC1oZWFkZXJzLCAKLSsgQVNfSEVMUF9TVFJJTkcoWy0t ZW5hYmxlLWJ1cnJpZWQtaGVhZGVyc10sCi0rCQlbaW5jbHVkZSBoZWFkZXIgZmlsZXMgZnJvbSBh IGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKLSsgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0 aGVuCi0rICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsgICAgICBl bmFibGVfYnVycmllZF9oZWFkZXJzPXllcwotKyAgIGZpIF0sCi0rIFsgZW5hYmxlX2J1cnJpZWRf aGVhZGVycz1ubyBdKQotKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0 aW9uCi0rZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKLStBTV9DT05ESVRJT05BTChbU09DSV9I RUFERVJTX0JVUklFRF0sIFt0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllc10p Ci0rQUNfU1VCU1QoU09DSV9IRUFERVJTX0JVUklFRCkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9idXJy aWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19C VVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmls ZXMgKGZvciBNeVNRTCBjbGllbnQpCi0rQUNfQVJHX0VOQUJMRShteXNxbC1idXJyaWVkLWhlYWRl cnMsIAotKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzXSwK LSsJCVtpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVy ZV0pLAotKyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsJZW5hYmxlX215c3Fs X2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVh ZGVycz15ZXMKLSsgICBmaSBdLAotKyBbIGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8g XSkKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgotK2VuYWJs ZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rQU1fQ09ORElUSU9OQUwoW1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURdLAotKyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9teXNxbF9i dXJyaWVkX2hlYWRlcnMiID0geHllc10pCi0rQUNfU1VCU1QoU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRCkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsg dGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdT IgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBQb3N0R3Jl U1FMIGNsaWVudCkKLStBQ19BUkdfRU5BQkxFKHBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzLCAK LSsgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzXSwK LSsJCVtpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3Ry dWN0dXJlXSksCi0rIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKwllbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rCWVuYWJsZV9wb3N0Z3Jl c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaSBdLAotKyBbIGVuYWJsZV9wb3N0Z3Jlc3Fs X2J1cnJpZWRfaGVhZGVycz1ubyBdKQotKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdl cyBnZW5lcmF0aW9uCi0rZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwotK0FN X0NPTkRJVElPTkFMKFtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURdLAotKyAgICAgICAg ICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVz XSkKLStBQ19TVUJTVChTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQpCi0raWYgdGVzdCAi eCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQ UEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkK LSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qub3Jn KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLStBWF9CT09TVChbMS4zM10pCi0rQUNfU1VCU1QoQk9PU1RfVkVSU0lPTikKLStBQ19T VUJTVChCT09TVF9DRkxBR1MpCi0rQUNfU1VCU1QoQk9PU1RfTElCUykKLStBQ19TVUJTVChCT09T VF9EQVRFX1RJTUVfTElCKQotK0FDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpCi0r Ci0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFja2VuZCAoQyBjbGll bnQgQVBJKTogaHR0cDovL3d3dy5teXNxbC5vcmcKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfQVJHX0VO QUJMRShbYmFja2VuZC1teXNxbF0sCi0rICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNr ZW5kLW15c3FsXSwKLSsgICAgICAgIFtidWlsZC1pbiBNeVNRTCBiYWNrZW5kIHN1cHBvcnQgQDw6 QGRlZmF1bHQ9bm9AOj5AXQotKyAgICApLAotKyAgICBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0g bm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vCi0rICAgICAgZWxzZQot KwkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9eWVzCi0rICAgICAgZmkgXSwKLSsgICAgWyBlbmFibGVf YmFja2VuZF9teXNxbD1ubyBdCi0rKQotKwotK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlz cWwiID0gInh5ZXMiOyB0aGVuCi0rICAgTVlTUUxfRElSUz0ibXlzcWwiCi0rICAgTVlTUUxfUkVR X1ZFUlNJT049IjMuMC4wIgotKyAgIEFYX0xJQl9NWVNRTChbJE1ZU1FMX1JFUV9WRVJTSU9OXSkK LStmaQotK0FNX0NPTkRJVElPTkFMKFtIQVZFX01ZU1FMXSwgW3Rlc3QgIngkZW5hYmxlX2JhY2tl bmRfbXlzcWwiID0geHllc10pCi0rI01ZU1FMX0RJUlM9Im15c3FsIgotKwotK0FDX1NVQlNUKFtN WVNRTF9ESVJTXSkKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE9yYWNsZSBi YWNrZW5kCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfQVJHX0VOQUJMRShbYmFja2VuZC1vcmFjbGVdLAot KyAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1vcmFjbGVdLAotKwkJICAgW2J1 aWxkLWluIE9SQUNMRSBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9AOj5AXSksCi0rICAg IFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxlX2JhY2tl bmRfb3JhY2xlPW5vCi0rICAgICAgZWxzZQotKwkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPXllcwot KyAgICAgIGZpIF0sCi0rICAgIFsgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vIF0KLSspCi0rCi0r aWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMiOyB0aGVuCi0rICAgT1JB Q0xFX0RJUlM9Im9yYWNsZSIKLSsgICBPUkFDTEVfT0NJX1JFUV9WRVJTSU9OPSI5LjAiCi0rICAg QVhfTElCX09SQUNMRV9PQ0koJE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04pCi0rZmkKLStBTV9DT05E SVRJT05BTChbSEFWRV9PUkFDTEVdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0g eHllc10pCi0rI09SQUNMRV9ESVJTPSJvcmFjbGUiCi0rCi0rQUNfU1VCU1QoW09SQUNMRV9ESVJT XSkKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFja2VuZAot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtcG9zdGdyZXNxbF0sCi0rICAg IEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWxdLAotKyAgICAgICAg W2J1aWxkLWluIFBvc3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0K LSsgICAgKSwKLSsgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAg CSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vCi0rICAgICAgZWxzZQotKwkgZW5hYmxlX2Jh Y2tlbmRfcG9zdGdyZXNxbD15ZXMKLSsgICAgICBmaSBdLAotKyAgICBbIGVuYWJsZV9iYWNrZW5k X3Bvc3RncmVzcWw9bm8gXQotKykKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3Rn cmVzcWwiID0gInh5ZXMiOyB0aGVuCi0rICAgUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgot KyAgIFBPU1RHUkVTUUxfUkVRX1ZFUlNJT049IjcuMS40IgotKyAgIEFYX0xJQl9QT1NUR1JFU1FM KCRQT1NUR1JFU1FMX1JFUV9WRVJTSU9OKQotK2ZpCi0rQU1fQ09ORElUSU9OQUwoW0hBVkVfUE9T VEdSRVNRTF0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHllc10pCi0r I1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsKLStBQ19TVUJTVChbUE9TVEdSRVNRTF9E SVJTXSkKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIGRvY3VtZW50YXRpb24K LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scwot KyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25vXSkKLSsj aWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgotKyMgIHRlc3QgIngkdGV4 aW5mb19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KLSsjICBBQ19QQVRIX1BST0co W1BFUkxdLCBbcGVybF0sIFtdKQotKyNmaQotK0FNX0NPTkRJVElPTkFMKFtJTkZPX0RPQ10sIFt0 ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzXSkKLSsKLSsjIENoZWNrcyBmb3IgZG9jdW1l bnRhdGlvbiBidWlsZCB0b29scwotK0FDX0NIRUNLX1BST0coW2RveHlnZW5fb2tdLCBbZG94eWdl bl0sIFt5ZXNdLCBbbm9dKQotK0FDX0NIRUNLX1BST0coW2xhdGV4X29rXSwgW2xhdGV4XSwgW3ll c10sIFtub10pCi0rQUNfQ0hFQ0tfUFJPRyhbZHZpcHNfb2tdLCBbZHZpcHNdLCBbeWVzXSwgW25v XSkKLStBQ19DSEVDS19QUk9HKFtnc19va10sIFtnc10sIFt5ZXNdLCBbbm9dKQotK2lmIHRlc3Qg IngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KLSsgIHRlc3QgIngkZG94eWdlbl9vayIg IT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkbGF0ZXhfb2siICE9IHh5 ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGR2aXBzX29rIiAhPSB4eWVzICYm IGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAmJiBlbmFibGVf aHRtbF9kb2M9bm8KLSsgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCi0rZmkKLStB TV9DT05ESVRJT05BTChbSFRNTF9ET0NdLCBbdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiID0geHll c10pCi0rCi0rCi0rIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3RzCi0rQUNf Q0hFQ0tfUFJPRyhbZGlmZl9va10sIFtkaWZmXSwgW3llc10sIFtub10pCi0rQUNfQ0hFQ0tfUFJP Ryhbc2VkX29rXSwgW3NlZF0sIFt5ZXNdLCBbbm9dKQotK2VuYWJsZV90ZXN0cz15ZXMKLSt0ZXN0 ICJ4JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rdGVzdCAieCRzZWRfb2si ICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rQU1fQ09ORElUSU9OQUwoW1JVTl9URVNUU10s IFt0ZXN0ICJ4JGVuYWJsZV90ZXN0cyIgPSB4eWVzXSkKLSsKLSsKLSsjIENoZWNrcyBmb3IgaGVh ZGVyIGZpbGVzCi0rQUNfSEVBREVSX1NUREMKLStBQ19IRUFERVJfVElNRQotK0FDX0NIRUNLX0hF QURFUlMoW2NtYXRoIFwKLSsgIGRlcXVlIFwKLSsgIGZzdHJlYW0gXAotKyAgaW9tYW5pcCBcCi0r ICBpb3N0cmVhbSBcCi0rICBzc3RyZWFtIFwKLSsgIGxpbWl0cyBcCi0rICBsaXN0IFwKLSsgIHNl dCBcCi0rICB2ZWN0b3IgXAotKyAgbWFwIFwKLSsgIHF1ZXVlIFwKLSsgIHN0ZGV4Y2VwdCBcCi0r ICBzdHJpbmddKQotKwotKwotKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMKLStBQ19DT05GSUdf RklMRVMoCi0rCU1ha2VmaWxlCi0rCXNvY2ktY29uZmlnCi0rCXNvY2kucGMKLSsJc29jaS5zcGVj Ci0rCXNvY2kvTWFrZWZpbGUKLSsJc29jaS9jb3JlL01ha2VmaWxlCi0rCXNvY2kvY29yZS90ZXN0 L01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZQotKwlzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKLSsJc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlCi0rCXNvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUKLSsJbWFuL01ha2VmaWxlCi0rICAgICAgICBkb2Mv TWFrZWZpbGUKLSsgICAgICAgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZQotKwlidWlsZC9NYWtlZmls ZQotKwlidWlsZC91bml4L01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9NYWtlZmlsZQotKwlidWls ZC9tc3ZjODAvZGxsL01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUpCi0rCi0r QUNfT1VUUFVUCi0rCi0rZWNobyAiCi0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rJFBBQ0tBR0Ut JFZFUlNJT04gbGlicmFyeSBjb25maWd1cmF0aW9uOgotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KwotK0RpcmVjdG9yaWVzOgotKyAgLSBwcmVmaXggLi4uLi4uLi4uLi4uLi4uIDogJHtwcmVmaXh9 Ci0rICAtIGV4ZWNfcHJlZml4IC4uLi4uLi4uLi4gOiAke2V4ZWNfcHJlZml4fQotKyAgLSBpbmNs dWRlZGlyIC4uLi4uLi4uLi4uIDogJHtpbmNsdWRlZGlyfQotKyAgLSBsaWJkaXIgLi4uLi4uLi4u Li4uLi4uIDogJHtsaWJkaXJ9Ci0rICAtIGRvY2RpciAuLi4uLi4uLi4uLi4uLi4gOiAke2RvY2Rp cn0KLSsgIC0gbWFuZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bWFuZGlyfQotKyAgLSBpbmZvZGly IC4uLi4uLi4uLi4uLi4uIDogJHtpbmZvZGlyfQotKwotK1N3aXRjaGVzOgotKyAgLSBleGNlcHRp b25zIC4uLi4uLi4uLi4uIDogJHtlbmFibGVfZXhjZXB0aW9uc30KLSsgIC0gaW5mby1kb2MgLi4u Li4uLi4uLi4uLiA6ICR7ZW5hYmxlX2luZm9fZG9jfQotKyAgLSBodG1sLWRvYyAuLi4uLi4uLi4u Li4uIDogJHtlbmFibGVfaHRtbF9kb2N9Ci0rICAtIHNoYXJlZCAuLi4uLi4uLi4uLi4uLi4gOiAk e2VuYWJsZV9zaGFyZWR9Ci0rICAtIHN0YXRpYyAuLi4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9z dGF0aWN9Ci0rCi0rRG9jdW1lbnRhdGlvbiB0b29sczoKLSsgIC0gdGV4aW5mbyAuLi4uLi4uLi4u Li4uLiA6ICR7dGV4aW5mb19va30KLSsgIC0gZG94eWdlbiAuLi4uLi4uLi4uLi4uLiA6ICR7ZG94 eWdlbl9va30KLSsgIC0gbGF0ZXggLi4uLi4uLi4uLi4uLi4uLiA6ICR7bGF0ZXhfb2t9Ci0rICAt IGR2aXBzIC4uLi4uLi4uLi4uLi4uLi4gOiAke2R2aXBzX29rfQotKyAgLSBnaG9zdHNjcmlwdCAu Li4uLi4uLi4uIDogJHtnc19va30KLSsKLStUZXN0aW5nIHRvb2xzOgotKyAgLSBkaWZmIC4uLi4u Li4uLi4uLi4uLi4uIDogJHtkaWZmX29rfQotKyAgLSBzZWQgLi4uLi4uLi4uLi4uLi4uLi4uIDog JHtzZWRfb2t9Ci0rCi0rQ29tcGlsZXIvbGlua2VyIGZsYWdzL2xpYnMvZGVmczoKLSsgIC0gQ1hY IC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7Q1hYfQotKyAgLSBDWFhGTEFHUyAuLi4uLi4uLi4uLi4u IDogJHtDWFhGTEFHU30KLSsgIC0gQ1BQRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1BQRkxBR1N9 Ci0rICAtIExERkxBR1MgLi4uLi4uLi4uLi4uLi4gOiAke0xERkxBR1N9Ci0rICAtIExJQlMgLi4u Li4uLi4uLi4uLi4uLi4gOiAke0xJQlN9Ci0rCi0rQnVycmllZCBoZWFkZXIgZmlsZXM6Ci0rICAt IFNPQ0lfSEVBREVSU19CVVJJRUQgLi4uLi4uLiA6ICR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVyc30K LSsgIC0gTVlTUUxfSEVBREVSU19CVVJJRUQgLi4uLi4uIDogJHtlbmFibGVfbXlzcWxfYnVycmll ZF9oZWFkZXJzfQotKyAgLSBQT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEIC4gOiAke2VuYWJsZV9w b3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVyc30KLSsKLStFeHRlcm5hbCBsaWJyYXJpZXM6Ci0rICAt IEJvb3N0IC4uLi4uLi4uLi4uLi4uLi4gOgotKyAgICBvIEJPT1NUX1ZFUlNJT04gLi4uLi4uIDog JHtCT09TVF9WRVJTSU9OfQotKyAgICBvIEJPT1NUX0NGTEFHUyAuLi4uLi4uIDogJHtCT09TVF9D RkxBR1N9Ci0rICAgIG8gQk9PU1RfTElCUyAuLi4uLi4uLi4gOiAke0JPT1NUX0xJQlN9Ci0rICAg IG8gQk9PU1RfRFRfTElCIC4uLi4uLi4gOiAke0JPT1NUX0RBVEVfVElNRV9MSUJ9Ci0rICAgIG8g Qk9PU1RfUE9fTElCIC4uLi4uLi4gOiAke0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJ9Ci0rCi0r ICAtIE15U1FMIHN1cHBvcnQgLi4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX215c3FsfQotKyAg ICBvIE1ZU1FMX1ZFUlNJT04gLi4uLi4uIDogJHtNWVNRTF9WRVJTSU9OfQotKyAgICBvIE1ZU1FM X0NGTEFHUyAuLi4uLi4uIDogJHtNWVNRTF9DRkxBR1N9Ci0rICAgIG8gTVlTUUxfTERGTEFHUyAu Li4uLi4gOiAke01ZU1FMX0xERkxBR1N9Ci0rCi0rICAtIFBvc3RHcmVTUUwgc3VwcG9ydCAuLi4g OiAke2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWx9Ci0rICAgIG8gUE9TVEdSRVNRTF9WRVJTSU9O IC4gOiAke1BPU1RHUkVTUUxfVkVSU0lPTn0KLSsgICAgbyBQT1NUR1JFU1FMX0NGTEFHUyAuLiA6 ICR7UE9TVEdSRVNRTF9DRkxBR1N9Ci0rICAgIG8gUE9TVEdSRVNRTF9MREZMQUdTIC4gOiAke1BP U1RHUkVTUUxfTERGTEFHU30gCi0rCi0rICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAke2Vu YWJsZV9iYWNrZW5kX29yYWNsZX0KLSsgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JB Q0xFX09DSV9WRVJTSU9OfQotKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFDTEVf T0NJX0NGTEFHU30KLSsgICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9M REZMQUdTfSAKLSsKLSsgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQ1BQVU5J VF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KLSsgICAgbyBDUFBVTklUX0NGTEFH UyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9Ci0rICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4uLi4g OiAke0NQUFVOSVRfTElCU30KLSsKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStOb3cgdHlwZSAn bWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNLQUdFLSRWRVJT SU9OIGxpYnJhcnkKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsiCi1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svQ09QWUlORyBzb2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlORwotLS0tIHNvY2kt My4wLjBfNC1wYWNrL0NPUFlJTkcJMjAwOS0wNS0wNiAwMTozMjo0MC4wMDAwMDAwMDAgKzAyMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlORwkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAw MDAwMCArMDIwMAotQEAgLTIxLDMgKzIxLDQgQEAKLSBGT1IgQU5ZIERBTUFHRVMgT1IgT1RIRVIg TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKLSBBUklT SU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI RSBVU0UgT1IgT1RIRVIKLSBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0rCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJl cDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2Mv YmFja2VuZHMvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtCTIwMDktMDQt MTYgMTk6NTA6MzguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE2IEBACi0rIyMgZG9jL2Jh Y2tlbmRzIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotKyMjIFNvdXJjZSBkaXJlY3Rv cnkKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9 Ci0rCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jja19zb3Vy Y2VzKQotKyNmaXJlYmlyZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwgb3Jh Y2xlLmh0bWwgcG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAotKwotK0VYVFJBX0RJU1QgPSAk KEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSsKLSsjcGtnZGF0YWRpciA9ICQo aHRtbF9iY2tfc291cmNlcykKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2Vu ZHMvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5p bgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mv YmFja2VuZHMvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMTozMTo0OC4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsNTQ4IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0r IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0r Ci0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGly KS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVk ZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hf VkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQo aW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3No KSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVB REVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9u YW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFM TCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9V TklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBA aG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFr ZWZpbGUuaW4gXAotKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbgotK3N1YmRpciA9IGRvYy9iYWNrZW5kcwotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNk aXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5p dC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQo YW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNM T0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFE RVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9 Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1y ZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2 ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmkt cmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJz aXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5z dGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVj dXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJz aXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3Rs eWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2 ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0 YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01N T04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9 IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFV VE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFL RUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1Rf REFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1f TElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9P U1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JF R0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lH TkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC QAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9E RSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZM QUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQ UFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklU X0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hY QAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZM QUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZT QAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBF Q0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBA RUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3 N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExA Ci0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5T VEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RB TExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBM REZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9 IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01B S0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1Mg PSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxf RElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStN WVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpF WFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9C VUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklO RyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1F QAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1Ig PSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05G SUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNR TF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdS RVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05A Ci0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQg PSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lf SEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJ UCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9O ID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGly ID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAot K2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0ND QAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSth bV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRp bmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAot K2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBi dWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRf Y3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5k b3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFy b290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBA ZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAot K2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dz X29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNA Ci0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVu ZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0g QGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFs bF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4 ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3Rh dGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBA bWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBk ZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5k aXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRp ckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJn ZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxk X3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBA dG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3Jj ZGlyKQotK2h0bWxfYmNrX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9pbmRl eC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvZmlyZWJpcmQuaHRtbCBcCi0r CSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL215c3FsLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9iYWNrZW5kcy9vZGJjLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9v cmFjbGUuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3Bvc3RncmVzcWwuaHRt bCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3NxbGl0ZTMuaHRtbAotKwotK01BSU5U QUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gCi0rRVhUUkFfRElTVF9G T1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jja19zb3VyY2VzKQotKyNmaXJlYmlyZC5o dG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwgb3JhY2xlLmh0bWwgcG9zdGdyZXNx bC5odG1sIHNxbGl0ZTMuaHRtbAotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSkKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChz cmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBz KQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBz KScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAotKwkJJiYgZXhpdCAwOyBcCi0r CSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQo dG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSc7 IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIGRvYy9i YWNrZW5kcy9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNk aXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICck PycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJ ICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVz ICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19k ZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJ RVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2Rl cHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwot K21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoK LSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3Rv cmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5k IHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBj aGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcg TWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0 dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBN YWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikg b3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQg bGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJ Zm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9 KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAg ZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8 IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsg XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15 ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0r CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwg ZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJu byI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwg ZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxB R1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJ ICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAot Kwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFp bnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0 PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwK LSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwly ZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7 IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdl dCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAot KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxv Y2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQk ZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToK LSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVz dCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8 fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRv bmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQot KwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAot Kwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsg dGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8 IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtdHB5ID0gMTsgfSBcCi0rCSAg ICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0n YDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1y ZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0r CQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlp ZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9m aXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBl bXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHRhZ3M9IiQkdGFn cyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0r CWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19G SUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0 IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwK LSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAx OyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJp bnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1 ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVt cHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAk KEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBD VEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwK LSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBc Ci0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGki OyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25l IHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJ ICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsg fSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8 ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwK LSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQo dG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAm JiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwkt cm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6 ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3Mv W10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9z cmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNU RklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAk JGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJ ICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAot KwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRp c3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14v XSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUg aW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAk JGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQg JCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdz LC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRl c3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRm aWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAt cFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0r CSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZp bGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJ ZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0 IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3Rk aXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICAgIGRpc3RkaXI9YCQoYW1f X2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkg JCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgKGNkICQkc3ViZGlyICYmIFwKLSsJICAg ICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRv cF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCi0r CQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0r CSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlk b25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06 IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxk aXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0 YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl Ci0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFt Ci0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRh LWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1z dHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChT VFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSck KFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5l cmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNs ZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50 YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWly ZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFu LXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9z dGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1m IE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0 Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1s OiBodG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToK LSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vy c2l2ZQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRt bC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsK LStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06 Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJt IC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUK LSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0 b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1 cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlp bnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJF Q1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2st YW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVj dXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29s IGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZv IGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0 YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxs LWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlp bnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAot KwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAot KwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1j bGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVh bi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRh Z3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9N QUtFQAotKwotKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2VzKQotKyMgVGVsbCB2ZXJz aW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMu Ci0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUg ZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9i YWNrZW5kcy9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNl cy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2Rv Yy9iYWNrZW5kcy9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6NDc6NTMuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDcgQEAKLStodG1sX2Jja19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mv YmFja2VuZHMvaW5kZXguaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2ZpcmVi aXJkLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9teXNxbC5odG1sIFwKLSsJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9k b2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9w b3N0Z3Jlc3FsLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9zcWxpdGUzLmh0 bWwKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuYW0gc29jaS0zLjAu MF90cmVwMzAwL2RvYy9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtl ZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAyMDoxNzowNi4wMDAwMDAwMDAg KzAyMDAKLUBAIC0wLDAgKzEsNyBAQAotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9kb2Mvc291cmNl cy5tawotKwotK1NVQkRJUlMgPSBiYWNrZW5kcwotKwotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09N UEFUSUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3VyY2VzKQotKwotK0VYVFJBX0RJU1QgPSAkKEVY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9kb2MvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmlsZS5pbgot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuaW4J MjAwOS0wNS0wNiAwMTozMTo0Ny4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTQ3IEBACi0r IyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUu YW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1 LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAw NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0 Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJk aXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikv QFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBB UkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0 Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NS SVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEp Ci0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxM ID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNU QUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRf dHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9 ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9z cmNkaXIpL2RvYy9zb3VyY2VzLm1rCi0rc3ViZGlyID0gZG9jCi0rQUNMT0NBTF9NNCA9ICQodG9w X3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9j cHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBz ID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJ JChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklH X0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJ TEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0g YWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVj dXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxs LWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1y ZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2 ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVj ay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1y ZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0g bW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVj dXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rRVRBR1MgPSBldGFncwotK0NUQUdT ID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNU X0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xP Q0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYg PSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFV VE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStC T09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZ U1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9 IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09T VF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9P U1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09T VF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0r Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NE RVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0r Q1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NA Ci0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQ UFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9 IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0r Q1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0g QERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStFQ0hP ID0gQEVDSE9ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9f VCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGNzcg PSBARjc3QAotK0ZGTEFHUyA9IEBGRkxBR1NACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBA R0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5T VEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9 IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0r SU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMREZMQUdT ID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJU T09MID0gQExJQlRPT0xACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNA Ci0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NG TEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStN WVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdT QAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTUVESVQgPSBATk1FRElUQAot K09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xF X09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0g QE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9W RVJTSU9OQAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNL QUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0Vf U1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RB Uk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFS QVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBH X0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NU R1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQ T1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVS U0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAot K1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0r U09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAot K1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZF UlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19z cmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRk aXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNf Y3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9GNzcgPSBAYWNfY3RfRjc3 QAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9f bGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190 YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxk ID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBi dWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxk X3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0r ZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2Rp ciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlk aXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhA Ci0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9h bGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9z dF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVk aXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBp bnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0r bGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9j YWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJf cCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIg PSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9 IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBA c2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0 YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAot K3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3Bf YnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2Rp ciA9IEB0b3Bfc3JjZGlyQAotK2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9j L2JhY2tlbmRzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCi0rCSQo dG9wX3NyY2RpcikvZG9jL2JleW9uZC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYm9vc3Qu aHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwKLSsJJCh0b3Bfc3JjZGly KS9kb2MvZXhjaGFuZ2UuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwgXAot KwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRlcmZhY2VzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2Rv Yy9tdWx0aXRocmVhZGluZy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxlLmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCi0rCSQodG9wX3NyY2Rp cikvZG9jL3N0YXRlbWVudHMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5o dG1sCi0rCi0rU1VCRElSUyA9IGJhY2tlbmRzCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJ QklMSVRZID0gJChodG1sX2xvY2FsX3NvdXJjZXMpCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElT VF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZG SVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0 b3Bfc3JjZGlyKS9kb2Mvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBk ZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJ ICAgICokJGRlcCopIFwKLSsJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0 IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIp ICYmICQoQVVUT01BS0UpIC0tZ251ICBkb2MvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2Rp cikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBkb2MvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6 IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyop IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwot KwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChh bV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0g LWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLSsj IFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsg eW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhy b3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZh cmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFy aWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsj ICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdo ZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2 YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6 Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwK LSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikg ZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vl bj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1h a2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAi LiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7 IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwK LSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRm YWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAx JzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAot KwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7 IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAi IGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNU X1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBc Ci0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2Ijsg XAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVj aG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRv IFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQt YW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkg IGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9j YWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16 ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1y ZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VS Q0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXRweSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0r dGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRh Z3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAt LXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1l dGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVk ZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RB R1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRz dWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGlu ICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxz ZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sg ZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25l bXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16 ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3Qg LW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICAkKEVUQUdTKSAkKEVU QUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAkJHRhZ3Mg JCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZl ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FS R1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1f Q1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0r R1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAg JiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhl cmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdT WU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlw PWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0 b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBm b3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAi c3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlw L3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkg ICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9c Ly8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAg OzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlm IHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3Jj ZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGly PWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRl c3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAot KwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAx OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGly IHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmls ZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAg IHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlzdD0nJChESVNUX1NVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAu OyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAot KwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhp dCAxOyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0r CSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJ ICAgIChjZCAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwK LSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3Rk aXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJ YW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAg fHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVj azogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOiBpbnN0 YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJl Y3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwt ZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vy c2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykg aW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFs bGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5z dGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBf RkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNU QUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNs ZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoK LSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xF QU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBj b21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBk ZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIK LStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vy c2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVh bi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZp LWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUK LSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5z dGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRt bDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xl YW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNs ZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1v c3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0r Ci0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsu TUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5z dGFsbC1hbSBcCi0rCWluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1h bSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwlj dGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlz dGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAot KwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwK LSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhl YyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3Rh bGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0 YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGlu c3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1h bSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNs ZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYt YW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwt YW0KLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4 cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lz ViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9kb2Mvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL3NvdXJj ZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2Mvc291cmNlcy5tawkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mvc291cmNl cy5tawkyMDA5LTA0LTE2IDE5OjU0OjAwLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxMyBA QAotK2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzLmh0bWwg XAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9j L2JleW9uZC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYm9vc3QuaHRtbCBcCi0rCSQodG9w X3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvZXhjaGFuZ2Uu aHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9pbnRlcmZhY2VzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9tdWx0aXRocmVhZGlu Zy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxlLmh0bWwgXAotKwkkKHRvcF9z cmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0YXRlbWVu dHMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5odG1sCi1MZXMgZmljaGll cnMgYmluYWlyZXMgc29jaS0zLjAuMF80LXBhY2svZG9jL3N0cnVjdHVyZS5wbmcgZXQgc29jaS0z LjAuMF90cmVwMzAwL2RvYy9zdHJ1Y3R1cmUucG5nIHNvbnQgZGlmZsOpcmVudHMuCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svZG9jL3N0eWxlLmNzcyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9j L3N0eWxlLmNzcwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9zdHlsZS5jc3MJMjAwOS0wNS0w NiAwMTozMjo0MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL3N0 eWxlLmNzcwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsOTAgKzAs MCBAQAotLWJvZHkKLS17Ci0tICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLS0gIGNvbG9yOiBi bGFjazsKLS0gIG1hcmdpbi1sZWZ0OiAxMDBweDsKLS0gIG1hcmdpbi1yaWdodDogMTAwcHg7Ci0t ICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7Ci0tICBmb250LXNpemU6IHNtYWxsOwot LX0KLS0KLS1wLmJhbm5lcgotLXsKLS0gIGZvbnQtc2l6ZTogeC1sYXJnZTsKLS0gIGZvbnQtd2Vp Z2h0OiBib2xkOwotLSAgZm9udC1zdHJldGNoOiBleHBhbmRlZDsKLS0gIGJvcmRlci1ib3R0b20t Y29sb3I6IGJsYWNrOwotLSAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7Ci0tICBib3JkZXIt Ym90dG9tLXdpZHRoOiAxcHg7Ci0tICBwYWRkaW5nLWJvdHRvbTogNXB4OwotLX0KLS0KLS1kaXYu bmF2aWdhdGlvbiB7IH0KLS0KLS1kaXYubmF2aWdhdGlvbi1pbmRlbnRlZAotLXsKLS0gIG1hcmdp bi1sZWZ0OiA0MHB4OwotLX0KLS0KLS1kaXYuZGlhZ3JhbQotLXsKLS0gIHRleHQtYWxpZ246IGNl bnRlcjsKLS19Ci0tCi0tZGl2Lm5vdGUKLS17Ci0tICBib3JkZXItY29sb3I6IGJsYWNrOwotLSAg Ym9yZGVyLXN0eWxlOiBkb3R0ZWQ7Ci0tICBib3JkZXItd2lkdGg6IDFweDsKLS0gIG1hcmdpbi10 b3A6IDIwcHg7Ci0tICBwYWRkaW5nLWxlZnQ6IDIwcHg7Ci0tICBwYWRkaW5nLXJpZ2h0OiAyMHB4 OwotLX0KLS0KLS1zcGFuLm5vdGUKLS17Ci0tICBmb250LXNpemU6IGxhcmdlOwotLSAgZm9udC13 ZWlnaHQ6IGJvbGQ7Ci0tfQotLQotLWNvZGUKLS17Ci0tLyogICBmb250LXdlaWdodDogYm9sZDsg Ki8KLS0gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotLSAgY29sb3I6ICM4QjAwMDA7Ci0tLyog IGZvbnQtc2l6ZTogbGFyZ2U7ICovCi0tfQotLQotLXByZS5leGFtcGxlCi0tewotLSAgYmFja2dy b3VuZC1jb2xvcjogI0YwRjBGMDsKLS0gIGNvbG9yOiBibGFjazsKLS0gIGJvcmRlci13aWR0aDog MXB4OwotLSAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7Ci0tICBib3JkZXItY29sb3I6IGJsdWU7Ci0t ICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAxMHB4OwotLX0KLS0KLS10YWJsZS5mb290LWxpbmtz Ci0tewotLSAgd2lkdGg6IDEwMCU7Ci0tICBwYWRkaW5nLXRvcDogMjBweDsKLS19Ci0tCi0tdGQu Zm9vdC1saW5rLWxlZnQKLS17Ci0tICB0ZXh0LWFsaWduOiBsZWZ0OwotLX0KLS0KLS10ZC5mb290 LWxpbmstcmlnaHQKLS17Ci0tICB0ZXh0LWFsaWduOiByaWdodDsKLS19Ci0tCi0tcC5jb3B5cmln aHQKLS17Ci0tICBib3JkZXItdG9wLWNvbG9yOiBibGFjazsKLS0gIGJvcmRlci10b3Atc3R5bGU6 IHNvbGlkOwotLSAgYm9yZGVyLXRvcC13aWR0aDogMXB4OwotLSAgcGFkZGluZy10b3A6IDVweDsK LS19Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svSU5TVEFMTCBzb2NpLTMuMC4wX3RyZXAz MDAvSU5TVEFMTAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RBTEwJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFMTAkyMDA5 LTA1LTA2IDAxOjMxOjUwLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyMzcgQEAKLStJbnN0 YWxsYXRpb24gSW5zdHJ1Y3Rpb25zCi0rKioqKioqKioqKioqKioqKioqKioqKioqKgotKwotK0Nv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAw NCwgMjAwNSwKLSsyMDA2LCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwot K1RoaXMgZmlsZSBpcyBmcmVlIGRvY3VtZW50YXRpb247IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24gZ2l2ZXMKLSt1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFu ZCBtb2RpZnkgaXQuCi0rCi0rQmFzaWMgSW5zdGFsbGF0aW9uCi0rPT09PT09PT09PT09PT09PT09 Ci0rCi0rQnJpZWZseSwgdGhlIHNoZWxsIGNvbW1hbmRzIGAuL2NvbmZpZ3VyZTsgbWFrZTsgbWFr ZSBpbnN0YWxsJyBzaG91bGQKLStjb25maWd1cmUsIGJ1aWxkLCBhbmQgaW5zdGFsbCB0aGlzIHBh Y2thZ2UuICBUaGUgZm9sbG93aW5nCi0rbW9yZS1kZXRhaWxlZCBpbnN0cnVjdGlvbnMgYXJlIGdl bmVyaWM7IHNlZSB0aGUgYFJFQURNRScgZmlsZSBmb3IKLStpbnN0cnVjdGlvbnMgc3BlY2lmaWMg dG8gdGhpcyBwYWNrYWdlLgotKwotKyAgIFRoZSBgY29uZmlndXJlJyBzaGVsbCBzY3JpcHQgYXR0 ZW1wdHMgdG8gZ3Vlc3MgY29ycmVjdCB2YWx1ZXMgZm9yCi0rdmFyaW91cyBzeXN0ZW0tZGVwZW5k ZW50IHZhcmlhYmxlcyB1c2VkIGR1cmluZyBjb21waWxhdGlvbi4gIEl0IHVzZXMKLSt0aG9zZSB2 YWx1ZXMgdG8gY3JlYXRlIGEgYE1ha2VmaWxlJyBpbiBlYWNoIGRpcmVjdG9yeSBvZiB0aGUgcGFj a2FnZS4KLStJdCBtYXkgYWxzbyBjcmVhdGUgb25lIG9yIG1vcmUgYC5oJyBmaWxlcyBjb250YWlu aW5nIHN5c3RlbS1kZXBlbmRlbnQKLStkZWZpbml0aW9ucy4gIEZpbmFsbHksIGl0IGNyZWF0ZXMg YSBzaGVsbCBzY3JpcHQgYGNvbmZpZy5zdGF0dXMnIHRoYXQKLSt5b3UgY2FuIHJ1biBpbiB0aGUg ZnV0dXJlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIGFuZCBhCi0rZmls ZSBgY29uZmlnLmxvZycgY29udGFpbmluZyBjb21waWxlciBvdXRwdXQgKHVzZWZ1bCBtYWlubHkg Zm9yCi0rZGVidWdnaW5nIGBjb25maWd1cmUnKS4KLSsKLSsgICBJdCBjYW4gYWxzbyB1c2UgYW4g b3B0aW9uYWwgZmlsZSAodHlwaWNhbGx5IGNhbGxlZCBgY29uZmlnLmNhY2hlJwotK2FuZCBlbmFi bGVkIHdpdGggYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnIG9yIHNpbXBseSBgLUMnKSB0aGF0 IHNhdmVzCi0rdGhlIHJlc3VsdHMgb2YgaXRzIHRlc3RzIHRvIHNwZWVkIHVwIHJlY29uZmlndXJp bmcuICBDYWNoaW5nIGlzCi0rZGlzYWJsZWQgYnkgZGVmYXVsdCB0byBwcmV2ZW50IHByb2JsZW1z IHdpdGggYWNjaWRlbnRhbCB1c2Ugb2Ygc3RhbGUKLStjYWNoZSBmaWxlcy4KLSsKLSsgICBJZiB5 b3UgbmVlZCB0byBkbyB1bnVzdWFsIHRoaW5ncyB0byBjb21waWxlIHRoZSBwYWNrYWdlLCBwbGVh c2UgdHJ5Ci0rdG8gZmlndXJlIG91dCBob3cgYGNvbmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhl ciB0byBkbyB0aGVtLCBhbmQgbWFpbAotK2RpZmZzIG9yIGluc3RydWN0aW9ucyB0byB0aGUgYWRk cmVzcyBnaXZlbiBpbiB0aGUgYFJFQURNRScgc28gdGhleSBjYW4KLStiZSBjb25zaWRlcmVkIGZv ciB0aGUgbmV4dCByZWxlYXNlLiAgSWYgeW91IGFyZSB1c2luZyB0aGUgY2FjaGUsIGFuZCBhdAot K3NvbWUgcG9pbnQgYGNvbmZpZy5jYWNoZScgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2Fu dCB0byBrZWVwLCB5b3UKLSttYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCi0rCi0rICAgVGhlIGZpbGUg YGNvbmZpZ3VyZS5hYycgKG9yIGBjb25maWd1cmUuaW4nKSBpcyB1c2VkIHRvIGNyZWF0ZQotK2Bj b25maWd1cmUnIGJ5IGEgcHJvZ3JhbSBjYWxsZWQgYGF1dG9jb25mJy4gIFlvdSBuZWVkIGBjb25m aWd1cmUuYWMnIGlmCi0reW91IHdhbnQgdG8gY2hhbmdlIGl0IG9yIHJlZ2VuZXJhdGUgYGNvbmZp Z3VyZScgdXNpbmcgYSBuZXdlciB2ZXJzaW9uCi0rb2YgYGF1dG9jb25mJy4KLSsKLStUaGUgc2lt cGxlc3Qgd2F5IHRvIGNvbXBpbGUgdGhpcyBwYWNrYWdlIGlzOgotKwotKyAgMS4gYGNkJyB0byB0 aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBhbmQgdHlw ZQotKyAgICAgYC4vY29uZmlndXJlJyB0byBjb25maWd1cmUgdGhlIHBhY2thZ2UgZm9yIHlvdXIg c3lzdGVtLgotKwotKyAgICAgUnVubmluZyBgY29uZmlndXJlJyBtaWdodCB0YWtlIGEgd2hpbGUu ICBXaGlsZSBydW5uaW5nLCBpdCBwcmludHMKLSsgICAgIHNvbWUgbWVzc2FnZXMgdGVsbGluZyB3 aGljaCBmZWF0dXJlcyBpdCBpcyBjaGVja2luZyBmb3IuCi0rCi0rICAyLiBUeXBlIGBtYWtlJyB0 byBjb21waWxlIHRoZSBwYWNrYWdlLgotKwotKyAgMy4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBj aGVjaycgdG8gcnVuIGFueSBzZWxmLXRlc3RzIHRoYXQgY29tZSB3aXRoCi0rICAgICB0aGUgcGFj a2FnZS4KLSsKLSsgIDQuIFR5cGUgYG1ha2UgaW5zdGFsbCcgdG8gaW5zdGFsbCB0aGUgcHJvZ3Jh bXMgYW5kIGFueSBkYXRhIGZpbGVzIGFuZAotKyAgICAgZG9jdW1lbnRhdGlvbi4KLSsKLSsgIDUu IFlvdSBjYW4gcmVtb3ZlIHRoZSBwcm9ncmFtIGJpbmFyaWVzIGFuZCBvYmplY3QgZmlsZXMgZnJv bSB0aGUKLSsgICAgIHNvdXJjZSBjb2RlIGRpcmVjdG9yeSBieSB0eXBpbmcgYG1ha2UgY2xlYW4n LiAgVG8gYWxzbyByZW1vdmUgdGhlCi0rICAgICBmaWxlcyB0aGF0IGBjb25maWd1cmUnIGNyZWF0 ZWQgKHNvIHlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IKLSsgICAgIGEgZGlmZmVyZW50 IGtpbmQgb2YgY29tcHV0ZXIpLCB0eXBlIGBtYWtlIGRpc3RjbGVhbicuICBUaGVyZSBpcwotKyAg ICAgYWxzbyBhIGBtYWtlIG1haW50YWluZXItY2xlYW4nIHRhcmdldCwgYnV0IHRoYXQgaXMgaW50 ZW5kZWQgbWFpbmx5Ci0rICAgICBmb3IgdGhlIHBhY2thZ2UncyBkZXZlbG9wZXJzLiAgSWYgeW91 IHVzZSBpdCwgeW91IG1heSBoYXZlIHRvIGdldAotKyAgICAgYWxsIHNvcnRzIG9mIG90aGVyIHBy b2dyYW1zIGluIG9yZGVyIHRvIHJlZ2VuZXJhdGUgZmlsZXMgdGhhdCBjYW1lCi0rICAgICB3aXRo IHRoZSBkaXN0cmlidXRpb24uCi0rCi0rICA2LiBPZnRlbiwgeW91IGNhbiBhbHNvIHR5cGUgYG1h a2UgdW5pbnN0YWxsJyB0byByZW1vdmUgdGhlIGluc3RhbGxlZAotKyAgICAgZmlsZXMgYWdhaW4u Ci0rCi0rQ29tcGlsZXJzIGFuZCBPcHRpb25zCi0rPT09PT09PT09PT09PT09PT09PT09Ci0rCi0r U29tZSBzeXN0ZW1zIHJlcXVpcmUgdW51c3VhbCBvcHRpb25zIGZvciBjb21waWxhdGlvbiBvciBs aW5raW5nIHRoYXQgdGhlCi0rYGNvbmZpZ3VyZScgc2NyaXB0IGRvZXMgbm90IGtub3cgYWJvdXQu ICBSdW4gYC4vY29uZmlndXJlIC0taGVscCcgZm9yCi0rZGV0YWlscyBvbiBzb21lIG9mIHRoZSBw ZXJ0aW5lbnQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotKwotKyAgIFlvdSBjYW4gZ2l2ZSBgY29u ZmlndXJlJyBpbml0aWFsIHZhbHVlcyBmb3IgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCi0rYnkg c2V0dGluZyB2YXJpYWJsZXMgaW4gdGhlIGNvbW1hbmQgbGluZSBvciBpbiB0aGUgZW52aXJvbm1l bnQuICBIZXJlCi0raXMgYW4gZXhhbXBsZToKLSsKLSsgICAgIC4vY29uZmlndXJlIENDPWM5OSBD RkxBR1M9LWcgTElCUz0tbHBvc2l4Ci0rCi0rICAgKk5vdGUgRGVmaW5pbmcgVmFyaWFibGVzOjos IGZvciBtb3JlIGRldGFpbHMuCi0rCi0rQ29tcGlsaW5nIEZvciBNdWx0aXBsZSBBcmNoaXRlY3R1 cmVzCi0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0rCi0rWW91IGNhbiBj b21waWxlIHRoZSBwYWNrYWdlIGZvciBtb3JlIHRoYW4gb25lIGtpbmQgb2YgY29tcHV0ZXIgYXQg dGhlCi0rc2FtZSB0aW1lLCBieSBwbGFjaW5nIHRoZSBvYmplY3QgZmlsZXMgZm9yIGVhY2ggYXJj aGl0ZWN0dXJlIGluIHRoZWlyCi0rb3duIGRpcmVjdG9yeS4gIFRvIGRvIHRoaXMsIHlvdSBjYW4g dXNlIEdOVSBgbWFrZScuICBgY2QnIHRvIHRoZQotK2RpcmVjdG9yeSB3aGVyZSB5b3Ugd2FudCB0 aGUgb2JqZWN0IGZpbGVzIGFuZCBleGVjdXRhYmxlcyB0byBnbyBhbmQgcnVuCi0rdGhlIGBjb25m aWd1cmUnIHNjcmlwdC4gIGBjb25maWd1cmUnIGF1dG9tYXRpY2FsbHkgY2hlY2tzIGZvciB0aGUK LStzb3VyY2UgY29kZSBpbiB0aGUgZGlyZWN0b3J5IHRoYXQgYGNvbmZpZ3VyZScgaXMgaW4gYW5k IGluIGAuLicuCi0rCi0rICAgV2l0aCBhIG5vbi1HTlUgYG1ha2UnLCBpdCBpcyBzYWZlciB0byBj b21waWxlIHRoZSBwYWNrYWdlIGZvciBvbmUKLSthcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGluIHRo ZSBzb3VyY2UgY29kZSBkaXJlY3RvcnkuICBBZnRlciB5b3UgaGF2ZQotK2luc3RhbGxlZCB0aGUg cGFja2FnZSBmb3Igb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3Jl Ci0rcmVjb25maWd1cmluZyBmb3IgYW5vdGhlciBhcmNoaXRlY3R1cmUuCi0rCi0rSW5zdGFsbGF0 aW9uIE5hbWVzCi0rPT09PT09PT09PT09PT09PT09Ci0rCi0rQnkgZGVmYXVsdCwgYG1ha2UgaW5z dGFsbCcgaW5zdGFsbHMgdGhlIHBhY2thZ2UncyBjb21tYW5kcyB1bmRlcgotK2AvdXNyL2xvY2Fs L2JpbicsIGluY2x1ZGUgZmlsZXMgdW5kZXIgYC91c3IvbG9jYWwvaW5jbHVkZScsIGV0Yy4gIFlv dQotK2NhbiBzcGVjaWZ5IGFuIGluc3RhbGxhdGlvbiBwcmVmaXggb3RoZXIgdGhhbiBgL3Vzci9s b2NhbCcgYnkgZ2l2aW5nCi0rYGNvbmZpZ3VyZScgdGhlIG9wdGlvbiBgLS1wcmVmaXg9UFJFRklY Jy4KLSsKLSsgICBZb3UgY2FuIHNwZWNpZnkgc2VwYXJhdGUgaW5zdGFsbGF0aW9uIHByZWZpeGVz IGZvcgotK2FyY2hpdGVjdHVyZS1zcGVjaWZpYyBmaWxlcyBhbmQgYXJjaGl0ZWN0dXJlLWluZGVw ZW5kZW50IGZpbGVzLiAgSWYgeW91Ci0rcGFzcyB0aGUgb3B0aW9uIGAtLWV4ZWMtcHJlZml4PVBS RUZJWCcgdG8gYGNvbmZpZ3VyZScsIHRoZSBwYWNrYWdlIHVzZXMKLStQUkVGSVggYXMgdGhlIHBy ZWZpeCBmb3IgaW5zdGFsbGluZyBwcm9ncmFtcyBhbmQgbGlicmFyaWVzLgotK0RvY3VtZW50YXRp b24gYW5kIG90aGVyIGRhdGEgZmlsZXMgc3RpbGwgdXNlIHRoZSByZWd1bGFyIHByZWZpeC4KLSsK LSsgICBJbiBhZGRpdGlvbiwgaWYgeW91IHVzZSBhbiB1bnVzdWFsIGRpcmVjdG9yeSBsYXlvdXQg eW91IGNhbiBnaXZlCi0rb3B0aW9ucyBsaWtlIGAtLWJpbmRpcj1ESVInIHRvIHNwZWNpZnkgZGlm ZmVyZW50IHZhbHVlcyBmb3IgcGFydGljdWxhcgotK2tpbmRzIG9mIGZpbGVzLiAgUnVuIGBjb25m aWd1cmUgLS1oZWxwJyBmb3IgYSBsaXN0IG9mIHRoZSBkaXJlY3RvcmllcwotK3lvdSBjYW4gc2V0 IGFuZCB3aGF0IGtpbmRzIG9mIGZpbGVzIGdvIGluIHRoZW0uCi0rCi0rICAgSWYgdGhlIHBhY2th Z2Ugc3VwcG9ydHMgaXQsIHlvdSBjYW4gY2F1c2UgcHJvZ3JhbXMgdG8gYmUgaW5zdGFsbGVkCi0r d2l0aCBhbiBleHRyYSBwcmVmaXggb3Igc3VmZml4IG9uIHRoZWlyIG5hbWVzIGJ5IGdpdmluZyBg Y29uZmlndXJlJyB0aGUKLStvcHRpb24gYC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklYJyBvciBgLS1w cm9ncmFtLXN1ZmZpeD1TVUZGSVgnLgotKwotK09wdGlvbmFsIEZlYXR1cmVzCi0rPT09PT09PT09 PT09PT09PT0KLSsKLStTb21lIHBhY2thZ2VzIHBheSBhdHRlbnRpb24gdG8gYC0tZW5hYmxlLUZF QVRVUkUnIG9wdGlvbnMgdG8KLStgY29uZmlndXJlJywgd2hlcmUgRkVBVFVSRSBpbmRpY2F0ZXMg YW4gb3B0aW9uYWwgcGFydCBvZiB0aGUgcGFja2FnZS4KLStUaGV5IG1heSBhbHNvIHBheSBhdHRl bnRpb24gdG8gYC0td2l0aC1QQUNLQUdFJyBvcHRpb25zLCB3aGVyZSBQQUNLQUdFCi0raXMgc29t ZXRoaW5nIGxpa2UgYGdudS1hcycgb3IgYHgnIChmb3IgdGhlIFggV2luZG93IFN5c3RlbSkuICBU aGUKLStgUkVBRE1FJyBzaG91bGQgbWVudGlvbiBhbnkgYC0tZW5hYmxlLScgYW5kIGAtLXdpdGgt JyBvcHRpb25zIHRoYXQgdGhlCi0rcGFja2FnZSByZWNvZ25pemVzLgotKwotKyAgIEZvciBwYWNr YWdlcyB0aGF0IHVzZSB0aGUgWCBXaW5kb3cgU3lzdGVtLCBgY29uZmlndXJlJyBjYW4gdXN1YWxs eQotK2ZpbmQgdGhlIFggaW5jbHVkZSBhbmQgbGlicmFyeSBmaWxlcyBhdXRvbWF0aWNhbGx5LCBi dXQgaWYgaXQgZG9lc24ndCwKLSt5b3UgY2FuIHVzZSB0aGUgYGNvbmZpZ3VyZScgb3B0aW9ucyBg LS14LWluY2x1ZGVzPURJUicgYW5kCi0rYC0teC1saWJyYXJpZXM9RElSJyB0byBzcGVjaWZ5IHRo ZWlyIGxvY2F0aW9ucy4KLSsKLStTcGVjaWZ5aW5nIHRoZSBTeXN0ZW0gVHlwZQotKz09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0rCi0rVGhlcmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNvbmZp Z3VyZScgY2Fubm90IGZpZ3VyZSBvdXQgYXV0b21hdGljYWxseSwKLStidXQgbmVlZHMgdG8gZGV0 ZXJtaW5lIGJ5IHRoZSB0eXBlIG9mIG1hY2hpbmUgdGhlIHBhY2thZ2Ugd2lsbCBydW4gb24uCi0r VXN1YWxseSwgYXNzdW1pbmcgdGhlIHBhY2thZ2UgaXMgYnVpbHQgdG8gYmUgcnVuIG9uIHRoZSBf c2FtZV8KLSthcmNoaXRlY3R1cmVzLCBgY29uZmlndXJlJyBjYW4gZmlndXJlIHRoYXQgb3V0LCBi dXQgaWYgaXQgcHJpbnRzIGEKLSttZXNzYWdlIHNheWluZyBpdCBjYW5ub3QgZ3Vlc3MgdGhlIG1h Y2hpbmUgdHlwZSwgZ2l2ZSBpdCB0aGUKLStgLS1idWlsZD1UWVBFJyBvcHRpb24uICBUWVBFIGNh biBlaXRoZXIgYmUgYSBzaG9ydCBuYW1lIGZvciB0aGUgc3lzdGVtCi0rdHlwZSwgc3VjaCBhcyBg c3VuNCcsIG9yIGEgY2Fub25pY2FsIG5hbWUgd2hpY2ggaGFzIHRoZSBmb3JtOgotKwotKyAgICAg Q1BVLUNPTVBBTlktU1lTVEVNCi0rCi0rd2hlcmUgU1lTVEVNIGNhbiBoYXZlIG9uZSBvZiB0aGVz ZSBmb3JtczoKLSsKLSsgICAgIE9TIEtFUk5FTC1PUwotKwotKyAgIFNlZSB0aGUgZmlsZSBgY29u ZmlnLnN1YicgZm9yIHRoZSBwb3NzaWJsZSB2YWx1ZXMgb2YgZWFjaCBmaWVsZC4gIElmCi0rYGNv bmZpZy5zdWInIGlzbid0IGluY2x1ZGVkIGluIHRoaXMgcGFja2FnZSwgdGhlbiB0aGlzIHBhY2th Z2UgZG9lc24ndAotK25lZWQgdG8ga25vdyB0aGUgbWFjaGluZSB0eXBlLgotKwotKyAgIElmIHlv dSBhcmUgX2J1aWxkaW5nXyBjb21waWxlciB0b29scyBmb3IgY3Jvc3MtY29tcGlsaW5nLCB5b3Ug c2hvdWxkCi0rdXNlIHRoZSBvcHRpb24gYC0tdGFyZ2V0PVRZUEUnIHRvIHNlbGVjdCB0aGUgdHlw ZSBvZiBzeXN0ZW0gdGhleSB3aWxsCi0rcHJvZHVjZSBjb2RlIGZvci4KLSsKLSsgICBJZiB5b3Ug d2FudCB0byBfdXNlXyBhIGNyb3NzIGNvbXBpbGVyLCB0aGF0IGdlbmVyYXRlcyBjb2RlIGZvciBh Ci0rcGxhdGZvcm0gZGlmZmVyZW50IGZyb20gdGhlIGJ1aWxkIHBsYXRmb3JtLCB5b3Ugc2hvdWxk IHNwZWNpZnkgdGhlCi0rImhvc3QiIHBsYXRmb3JtIChpLmUuLCB0aGF0IG9uIHdoaWNoIHRoZSBn ZW5lcmF0ZWQgcHJvZ3JhbXMgd2lsbAotK2V2ZW50dWFsbHkgYmUgcnVuKSB3aXRoIGAtLWhvc3Q9 VFlQRScuCi0rCi0rU2hhcmluZyBEZWZhdWx0cwotKz09PT09PT09PT09PT09PT0KLSsKLStJZiB5 b3Ugd2FudCB0byBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGBjb25maWd1cmUnIHNjcmlwdHMgdG8g c2hhcmUsIHlvdQotK2NhbiBjcmVhdGUgYSBzaXRlIHNoZWxsIHNjcmlwdCBjYWxsZWQgYGNvbmZp Zy5zaXRlJyB0aGF0IGdpdmVzIGRlZmF1bHQKLSt2YWx1ZXMgZm9yIHZhcmlhYmxlcyBsaWtlIGBD QycsIGBjYWNoZV9maWxlJywgYW5kIGBwcmVmaXgnLgotK2Bjb25maWd1cmUnIGxvb2tzIGZvciBg UFJFRklYL3NoYXJlL2NvbmZpZy5zaXRlJyBpZiBpdCBleGlzdHMsIHRoZW4KLStgUFJFRklYL2V0 Yy9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLiAgT3IsIHlvdSBjYW4gc2V0IHRoZQotK2BDT05G SUdfU0lURScgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBzaXRl IHNjcmlwdC4KLStBIHdhcm5pbmc6IG5vdCBhbGwgYGNvbmZpZ3VyZScgc2NyaXB0cyBsb29rIGZv ciBhIHNpdGUgc2NyaXB0LgotKwotK0RlZmluaW5nIFZhcmlhYmxlcwotKz09PT09PT09PT09PT09 PT09PQotKwotK1ZhcmlhYmxlcyBub3QgZGVmaW5lZCBpbiBhIHNpdGUgc2hlbGwgc2NyaXB0IGNh biBiZSBzZXQgaW4gdGhlCi0rZW52aXJvbm1lbnQgcGFzc2VkIHRvIGBjb25maWd1cmUnLiAgSG93 ZXZlciwgc29tZSBwYWNrYWdlcyBtYXkgcnVuCi0rY29uZmlndXJlIGFnYWluIGR1cmluZyB0aGUg YnVpbGQsIGFuZCB0aGUgY3VzdG9taXplZCB2YWx1ZXMgb2YgdGhlc2UKLSt2YXJpYWJsZXMgbWF5 IGJlIGxvc3QuICBJbiBvcmRlciB0byBhdm9pZCB0aGlzIHByb2JsZW0sIHlvdSBzaG91bGQgc2V0 Ci0rdGhlbSBpbiB0aGUgYGNvbmZpZ3VyZScgY29tbWFuZCBsaW5lLCB1c2luZyBgVkFSPXZhbHVl Jy4gIEZvciBleGFtcGxlOgotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9L3Vzci9sb2NhbDIvYmlu L2djYwotKwotK2NhdXNlcyB0aGUgc3BlY2lmaWVkIGBnY2MnIHRvIGJlIHVzZWQgYXMgdGhlIEMg Y29tcGlsZXIgKHVubGVzcyBpdCBpcwotK292ZXJyaWRkZW4gaW4gdGhlIHNpdGUgc2hlbGwgc2Ny aXB0KS4KLSsKLStVbmZvcnR1bmF0ZWx5LCB0aGlzIHRlY2huaXF1ZSBkb2VzIG5vdCB3b3JrIGZv ciBgQ09ORklHX1NIRUxMJyBkdWUgdG8KLSthbiBBdXRvY29uZiBidWcuICBVbnRpbCB0aGUgYnVn IGlzIGZpeGVkIHlvdSBjYW4gdXNlIHRoaXMgd29ya2Fyb3VuZDoKLSsKLSsgICAgIENPTkZJR19T SEVMTD0vYmluL2Jhc2ggL2Jpbi9iYXNoIC4vY29uZmlndXJlIENPTkZJR19TSEVMTD0vYmluL2Jh c2gKLSsKLStgY29uZmlndXJlJyBJbnZvY2F0aW9uCi0rPT09PT09PT09PT09PT09PT09PT09PQot KwotK2Bjb25maWd1cmUnIHJlY29nbml6ZXMgdGhlIGZvbGxvd2luZyBvcHRpb25zIHRvIGNvbnRy b2wgaG93IGl0IG9wZXJhdGVzLgotKwotK2AtLWhlbHAnCi0rYC1oJwotKyAgICAgUHJpbnQgYSBz dW1tYXJ5IG9mIHRoZSBvcHRpb25zIHRvIGBjb25maWd1cmUnLCBhbmQgZXhpdC4KLSsKLStgLS12 ZXJzaW9uJwotK2AtVicKLSsgICAgIFByaW50IHRoZSB2ZXJzaW9uIG9mIEF1dG9jb25mIHVzZWQg dG8gZ2VuZXJhdGUgdGhlIGBjb25maWd1cmUnCi0rICAgICBzY3JpcHQsIGFuZCBleGl0LgotKwot K2AtLWNhY2hlLWZpbGU9RklMRScKLSsgICAgIEVuYWJsZSB0aGUgY2FjaGU6IHVzZSBhbmQgc2F2 ZSB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdHMgaW4gRklMRSwKLSsgICAgIHRyYWRpdGlvbmFsbHkg YGNvbmZpZy5jYWNoZScuICBGSUxFIGRlZmF1bHRzIHRvIGAvZGV2L251bGwnIHRvCi0rICAgICBk aXNhYmxlIGNhY2hpbmcuCi0rCi0rYC0tY29uZmlnLWNhY2hlJwotK2AtQycKLSsgICAgIEFsaWFz IGZvciBgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScuCi0rCi0rYC0tcXVpZXQnCi0rYC0tc2ls ZW50JwotK2AtcScKLSsgICAgIERvIG5vdCBwcmludCBtZXNzYWdlcyBzYXlpbmcgd2hpY2ggY2hl Y2tzIGFyZSBiZWluZyBtYWRlLiAgVG8KLSsgICAgIHN1cHByZXNzIGFsbCBub3JtYWwgb3V0cHV0 LCByZWRpcmVjdCBpdCB0byBgL2Rldi9udWxsJyAoYW55IGVycm9yCi0rICAgICBtZXNzYWdlcyB3 aWxsIHN0aWxsIGJlIHNob3duKS4KLSsKLStgLS1zcmNkaXI9RElSJwotKyAgICAgTG9vayBmb3Ig dGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBpbiBkaXJlY3RvcnkgRElSLiAgVXN1YWxseQotKyAg ICAgYGNvbmZpZ3VyZScgY2FuIGRldGVybWluZSB0aGF0IGRpcmVjdG9yeSBhdXRvbWF0aWNhbGx5 LgotKwotK2Bjb25maWd1cmUnIGFsc28gYWNjZXB0cyBzb21lIG90aGVyLCBub3Qgd2lkZWx5IHVz ZWZ1bCwgb3B0aW9ucy4gIFJ1bgotK2Bjb25maWd1cmUgLS1oZWxwJyBmb3IgbW9yZSBkZXRhaWxz LgotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlIHNvY2ktMy4wLjBfdHJl cDMwMC9NYWtlZmlsZQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlCTIwMDktMDUtMDYg MDE6MzI6NDAuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxl CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSwyMCArMCwwIEBACi0t YnVpbGRfbGlicyA6Ci0tCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBidWlsZC50Y2wg Y29yZSBjb3JlLXNvIG15c3FsIG15c3FsLXNvIHBvc3RncmVzcWwgcG9zdGdyZXNxbC1zbyBvcmFj bGUgb3JhY2xlLXNvCi0tCi0tdGVzdHMgOgotLQljZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3Rj bGAgYnVpbGQudGNsIG15c3FsLXRlc3Qgb3JhY2xlLXRlc3QgcG9zdGdyZXNxbC10ZXN0Ci0tCi0t aW5zdGFsbCA6Ci0tCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBpbnN0YWxsLnRjbAot LQotLXVuaW5zdGFsbCA6Ci0tCWNkIGJ1aWxkL3VuaXgvbG9jYWw7IC9iaW4vc2ggdW5pbnN0YWxs LnNoCi0tCi0tY2xlYW4gOgotLQlmaW5kIC4gLW5hbWUgJyoubycgfCB4YXJncyBybQotLQlmaW5k IC4gLW5hbWUgJyouYScgfCB4YXJncyBybQotLQlmaW5kIC4gLW5hbWUgJyouc28nIHwgeGFyZ3Mg cm0KLS0Jcm0gLWYgc3JjL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbAotLQlybSAtZiBz cmMvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUKLS0Jcm0gLWYgc3JjL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwKLS0Jcm0gLXJmIGJ1aWxkL3VuaXgvaW5j bHVkZSBidWlsZC91bml4L2xpYiBidWlsZC91bml4L3Rlc3RzCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmFtCi0tLS0g c29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuYW0JMjAwOS0wNS0wMyAw MDoxOTo0Mi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNjIgQEAKLSsjIyB0b3AgZGlyZWN0 b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotKwotK0FDTE9DQUxf QU1GTEFHUyA9IC1JIGNvbmZpZwotKwotK0FVVE9NQUtFX09QVElPTlMgPSBkaXN0LWJ6aXAyCi0r Ci0raWYgUlVOX1RFU1RTCi0rIyAgVEVTVF9ESVIgPSB0ZXN0Ci0rZW5kaWYKLSsKLStNQU5fRE9D X0RJUiA9IG1hbgotKwotKyMgTWFpbnRhaW5hbmNlIGZpbGVzCi0rTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSBcCi0rCQkJY29uZmlnLWguaW4g c2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAKLSsKLSsjRVhUUkFfRElTVF9GT1Jf U09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUgLl9NYWtlZmlsZSBjb250cmliCi0rRVhU UkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gY29udHJpYgotKwotK0VYVFJBX0RJU1Qg PSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpIEBQ QUNLQUdFQC5tNAotKwotKyMgQnVpbGQgaW4gdGhlc2UgZGlyZWN0b3JpZXM6Ci0rU1VCRElSUyA9 IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2MgJChURVNUX0RJUikKLSsKLSsKLSsj IENvbmZpZ3VyYXRpb24gaGVscGVycwotK2Jpbl9TQ1JJUFRTID0gQFBBQ0tBR0VALWNvbmZpZwot KwotK3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKLStwa2djb25maWdfREFUQSA9 IEBQQUNLQUdFQC5wYwotKwotK200ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNsb2NhbAotK200ZGF0 YV9EQVRBID0gQFBBQ0tBR0VALm00Ci0rCi0rIyBUYXJnZXRzCi0rdW5pbnN0YWxsLWxvY2FsOgot KwlybSAtcmYgJChERVNURElSKSQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rCi0rZGlzdC1odG1s OgotKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwKLSsKLSsKLStzbmFwc2hvdDogc25hcHNob3Qt c3JjIHNuYXBzaG90LWh0bWwKLSsKLSsKLStzbmFwc2hvdC1zcmM6Ci0rICAgICAgICAkKE1BS0Up IGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9UQVJOQU1FQC1gZGF0ZSArIiVZJW0lZCJgCi0rCi0rc25h cHNob3QtaHRtbDoKLSsJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sIGh0bWxfdGFybmFtZT1AUEFD S0FHRV9UQVJOQU1FQC1odG1sLWRvYy1gZGF0ZSArIiVZJW0lZCJgCi0rCi0rdXBsb2FkOiB1cGxv YWQtc3JjIHVwbG9hZC1odG1sCi0rCi0rdXBsb2FkLXNyYzogZGlzdAotKwlAVVBMT0FEX0NPTU1B TkRAIEBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuZ3ogXAotKwlAUEFDS0FHRV9UQVJO QU1FQC1AVkVSU0lPTkAudGFyLmJ6MgotKwotK3VwbG9hZC1odG1sOiBkaXN0LWh0bWwKLSsJQFVQ TE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAudGFyLmd6 IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5iejIKLSsKLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21tb24gc29jaS0zLjAuMF90cmVw MzAwL01ha2VmaWxlLmNvbW1vbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmNvbW1v bgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9NYWtlZmlsZS5jb21tb24JMjAwOS0wNC0xOCAxNzoyMDozMi4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsMiBAQAotK0BTRVRfTUFLRUAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVp bGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2Vm aWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmluCTIwMDktMDUtMDYgMDE6MzE6NTAuMDAwMDAw MDAwICswMjAwCi1AQCAtMCwwICsxLDc5NyBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5 IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAK LSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwg MjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBl eHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQ VVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLSsKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0 YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNL QUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9 IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0 YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JB TSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkg LWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9 IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNU QUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0r aG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSBSRUFETUUgJChhbV9fY29uZmln dXJlX2RlcHMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5p biAkKHNyY2Rpcikvc29jaS1jb25maWcuaW4gXAotKwkkKHNyY2Rpcikvc29jaS5wYy5pbiAkKHNy Y2Rpcikvc29jaS5zcGVjLmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUgQVVUSE9SUyBcCi0rCUNPUFlJTkcgQ2hhbmdlTG9nIElOU1RB TEwgTkVXUyBjb25maWcvY29uZmlnLmd1ZXNzIFwKLSsJY29uZmlnL2NvbmZpZy5zdWIgY29uZmln L2RlcGNvbXAgY29uZmlnL2luc3RhbGwtc2ggXAotKwljb25maWcvbHRtYWluLnNoIGNvbmZpZy9t aXNzaW5nCi0rc3ViZGlyID0gLgotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwu bTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3Qu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9w b3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxf bTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLSth bV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUyA9IGNvbmZpZy5zdGF0dXMgY29uZmlnLmNhY2hlIGNv bmZpZy5sb2cgXAotKyBjb25maWd1cmUubGluZW5vIGNvbmZpZy5zdGF0dXMubGluZW5vCi0rbWtp bnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVp bGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPSBzb2NpLWNvbmZpZyBz b2NpLnBjIHNvY2kuc3BlYwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChiaW5kaXIp IiAiJChERVNURElSKSQobTRkYXRhZGlyKSIgXAotKwkiJChERVNURElSKSQocGtnY29uZmlnZGly KSIKLStiaW5TQ1JJUFRfSU5TVEFMTCA9ICQoSU5TVEFMTF9TQ1JJUFQpCi0rU0NSSVBUUyA9ICQo YmluX1NDUklQVFMpCi0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFS R0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlo dG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJ aW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxs LWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1y ZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0 YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwK LSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLSthbV9fdnBhdGhfYWRqX3NldHVw ID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9f dnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRw IiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsg IGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsK LSttNGRhdGFEQVRBX0lOU1RBTEwgPSAkKElOU1RBTExfREFUQSkKLStwa2djb25maWdEQVRBX0lO U1RBTEwgPSAkKElOU1RBTExfREFUQSkKLStEQVRBID0gJChtNGRhdGFfREFUQSkgJChwa2djb25m aWdfREFUQSkKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2 ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNs ZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJE SVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VS Q0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rZGlzdGRpciA9ICQoUEFDS0FHRSktJChW RVJTSU9OKQotK3RvcF9kaXN0ZGlyID0gJChkaXN0ZGlyKQotK2FtX19yZW1vdmVfZGlzdGRpciA9 IFwKLSsgIHsgdGVzdCAhIC1kICQoZGlzdGRpcikgXAotKyAgICB8fCB7IGZpbmQgJChkaXN0ZGly KSAtdHlwZSBkICEgLXBlcm0gLTIwMCAtZXhlYyBjaG1vZCB1K3cge30gJzsnIFwKLSsgICAgICAg ICAmJiBybSAtZnIgJChkaXN0ZGlyKTsgfTsgfQotK0RJU1RfQVJDSElWRVMgPSAkKGRpc3RkaXIp LnRhci5neiAkKGRpc3RkaXIpLnRhci5iejIKLStHWklQX0VOViA9IC0tYmVzdAotK2Rpc3R1bmlu c3RhbGxjaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStkaXN0Y2xlYW5j aGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStBQ0xPQ0FMID0gQEFDTE9D QUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZA Ci0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FX SyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJ TUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBA Qk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NU UkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElC ID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9T RVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJ QkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9U RVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9P U1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9 IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQEND REVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBA Q1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9D T05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AK LStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hY Q1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBA Q1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQ RElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStFQ0hPID0gQEVDSE9ACi0r RUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RA Ci0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGNzcgPSBARjc3QAotK0ZG TEFHUyA9IEBGRkxBR1NACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJS QVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNU QUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BS T0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJ UF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMREZMQUdTID0gQExERkxBR1NA Ci0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRP T0xACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8g PSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNR TF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0g QE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZF UlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkVYVCA9IEBP QkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1Mg PSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lf TERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK1BB Q0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9S VEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBB Q0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFD S0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRI X1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQ T1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMg PSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xE RkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5M SUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURA Ci0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJT X0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNU UklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVS U0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJz X3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3Rv cF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNf Y3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9GNzcgPSBAYWNfY3RfRjc3QAotK2FtX19pbmNs dWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RA Ci0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3Vu dGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAot K2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0r YnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLSti dWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIg PSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJA Ci0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNf b2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBA Z3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0 X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBA aG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVk ZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAot K2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9 IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9 IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9w QAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAot K3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStz ZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3Ny Y2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlh cyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4 QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3Jj ZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0r QUNMT0NBTF9BTUZMQUdTID0gLUkgY29uZmlnCi0rQVVUT01BS0VfT1BUSU9OUyA9IGRpc3QtYnpp cDIKLSsKLSsjICBURVNUX0RJUiA9IHRlc3QKLStNQU5fRE9DX0RJUiA9IG1hbgotKwotKyMgTWFp bnRhaW5hbmNlIGZpbGVzCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbiBhY2xv Y2FsLm00IGNvbmZpZ3VyZSBcCi0rCQkJY29uZmlnLWguaW4gc2ljL3N0YW1wLWguaW4gYXV0b2dl bi5zaCBib290c3RyYXAKLSsKLSsKLSsjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZ ID0gLl9jb25maWd1cmUgLl9NYWtlZmlsZSBjb250cmliCi0rRVhUUkFfRElTVF9GT1JfU09DSV9D T01QQVRJQklMSVRZID0gY29udHJpYgotK0VYVFJBX0RJU1QgPSBNYWtlZmlsZS5jb21tb24gJChF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpIEBQQUNLQUdFQC5tNAotKwotKyMgQnVp bGQgaW4gdGhlc2UgZGlyZWN0b3JpZXM6Ci0rU1VCRElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1B Tl9ET0NfRElSKSBkb2MgJChURVNUX0RJUikKLSsKLSsjIENvbmZpZ3VyYXRpb24gaGVscGVycwot K2Jpbl9TQ1JJUFRTID0gQFBBQ0tBR0VALWNvbmZpZwotK3BrZ2NvbmZpZ2RpciA9ICQobGliZGly KS9wa2djb25maWcKLStwa2djb25maWdfREFUQSA9IEBQQUNLQUdFQC5wYwotK200ZGF0YWRpciA9 ICQoZGF0YWRpcikvYWNsb2NhbAotK200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00Ci0rYWxsOiBh bGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotK2FtLS1yZWZyZXNoOgotKwlAOgotKyQoc3Jj ZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRv IFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCop IFwKLSsJICAgICAgZWNobyAnIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAnOyBc Ci0rCSAgICAgIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgXAotKwkJJiYgZXhp dCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNo byAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIE1ha2VmaWxlJzsgXAot KwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAgTWFrZWZpbGUK LSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29u ZmlnLnN0YXR1cyopIFwKLSsJICAgIGVjaG8gJyAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMnOyBc Ci0rCSAgICAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXM7OyBcCi0rCSAgKikgXAotKwkgICAgZWNo byAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChh bV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7 Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmln dXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCSQoU0hFTEwpIC4vY29uZmlnLnN0 YXR1cyAtLXJlY2hlY2sKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQotKwljZCAkKHNyY2RpcikgJiYgJChBVVRPQ09ORikKLSskKEFDTE9DQUxfTTQp OiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHNyY2RpcikgJiYgJChBQ0xPQ0FMKSAk KEFDTE9DQUxfQU1GTEFHUykKLStzb2NpLWNvbmZpZzogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXMgJChzcmNkaXIpL3NvY2ktY29uZmlnLmluCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKLStzb2NpLnBjOiAkKHRvcF9idWlsZGRpcikvY29u ZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS5wYy5pbgotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACi0rc29jaS5zcGVjOiAkKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS5zcGVjLmluCi0rCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKLStpbnN0YWxsLWJpblNDUklQVFM6ICQo YmluX1NDUklQVFMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKGJpbmRpciki IHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGJpbmRpcikiCi0rCUBsaXN0PSckKGJpbl9TQ1JJ UFRTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4g ZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZiAkJGQkJHA7IHRo ZW4gXAotKwkgICAgZj1gZWNobyAiJCRwIiB8IHNlZCAnc3xeLiovfHw7JCh0cmFuc2Zvcm0pJ2A7 IFwKLSsJICAgIGVjaG8gIiAkKGJpblNDUklQVF9JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElS KSQoYmluZGlyKS8kJGYnIjsgXAotKwkgICAgJChiaW5TQ1JJUFRfSU5TVEFMTCkgIiQkZCQkcCIg IiQoREVTVERJUikkKGJpbmRpcikvJCRmIjsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJZG9uZQot KwotK3VuaW5zdGFsbC1iaW5TQ1JJUFRTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlz dD0nJChiaW5fU0NSSVBUUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBmPWBlY2hvICIk JHAiIHwgc2VkICdzfF4uKi98fDskKHRyYW5zZm9ybSknYDsgXAotKwkgIGVjaG8gIiBybSAtZiAn JChERVNURElSKSQoYmluZGlyKS8kJGYnIjsgXAotKwkgIHJtIC1mICIkKERFU1RESVIpJChiaW5k aXIpLyQkZiI7IFwKLSsJZG9uZQotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAq LmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotK2Rpc3Rj bGVhbi1saWJ0b29sOgotKwktcm0gLWYgbGlidG9vbAotK2luc3RhbGwtbTRkYXRhREFUQTogJCht NGRhdGFfREFUQSkKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobTRkYXRhZGly KSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobTRkYXRhZGlyKSIKLSsJQGxpc3Q9JyQobTRk YXRhX0RBVEEpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsg dGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBmPSQoYW1fX3N0cmlwX2Rp cikgXAotKwkgIGVjaG8gIiAkKG00ZGF0YURBVEFfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJ UikkKG00ZGF0YWRpcikvJCRmJyI7IFwKLSsJICAkKG00ZGF0YURBVEFfSU5TVEFMTCkgIiQkZCQk cCIgIiQoREVTVERJUikkKG00ZGF0YWRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxs LW00ZGF0YURBVEE6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKG00ZGF0YV9E QVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0r CSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiciOyBcCi0rCSAgcm0g LWYgIiQoREVTVERJUikkKG00ZGF0YWRpcikvJCRmIjsgXAotKwlkb25lCi0raW5zdGFsbC1wa2dj b25maWdEQVRBOiAkKHBrZ2NvbmZpZ19EQVRBKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVz dCAteiAiJChwa2djb25maWdkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2djb25m aWdkaXIpIgotKwlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBm aTsgXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQocGtnY29uZmlnREFU QV9JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnY29uZmlnZGlyKS8kJGYnIjsgXAot KwkgICQocGtnY29uZmlnREFUQV9JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnY29u ZmlnZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtnY29uZmlnREFUQToKLSsJ QCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtnY29uZmlnX0RBVEEpJzsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgcm0g LWYgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmJyI7IFwKLSsJICBybSAtZiAiJChERVNU RElSKSQocGtnY29uZmlnZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSsjIFRoaXMgZGlyZWN0b3J5 J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMg aW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2Vm aWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVh ZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGlu IGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2ls bCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFr ZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBt YWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdl eGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBp biBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15 ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkg ICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAot KwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAot KwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRk b3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0 YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBp biB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1b IWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBc Ci0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0 Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBc Ci0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0r CWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8t cmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0r CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFn cy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0 YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQo VEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9 IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwot K1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVO REVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9 YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2 L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBc Ci0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNs dWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0 aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAg ICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwK LSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAot KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1Mp JCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1f RVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJ ZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap Ci0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlx dWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChD VEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9 YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3Jj ZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xl YW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MK LSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCXRl c3QgLWQgJChkaXN0ZGlyKSB8fCBta2RpciAkKGRpc3RkaXIpCi0rCUBzcmNkaXJzdHJpcD1gZWNo byAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3Jj ZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwm L2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZp bGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQk c3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0 b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyop ICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7 c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwK LSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0 IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7 IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNo byAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1k ICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAg ICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAot KwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBl eGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAot KwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBl eGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhl biA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAg IHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsg XAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAg dG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICAo Y2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAg ICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIk JGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19z a2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4 aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJLWZpbmQgJChkaXN0ZGlyKSAtdHlwZSBkICEg LXBlcm0gLTc3NyAtZXhlYyBjaG1vZCBhK3J3eCB7fSBcOyAtbyBcCi0rCSAgISAtdHlwZSBkICEg LXBlcm0gLTQ0NCAtbGlua3MgMSAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAotKwkgICEgLXR5 cGUgZCAhIC1wZXJtIC00MDAgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKLSsJICAhIC10eXBl IGQgISAtcGVybSAtNDQ0IC1leGVjICQoaW5zdGFsbF9zaCkgLWMgLW0gYStyIHt9IHt9IFw7IFwK LSsJfHwgY2htb2QgLVIgYStyICQoZGlzdGRpcikKLStkaXN0LWd6aXA6IGRpc3RkaXIKLSsJdGFy ZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+ JChkaXN0ZGlyKS50YXIuZ3oKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rZGlzdC1iemlwMjog ZGlzdGRpcgotKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkgLWMg PiQoZGlzdGRpcikudGFyLmJ6MgotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0LWx6 bWE6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGx6bWEgLTkg LWMgPiQoZGlzdGRpcikudGFyLmx6bWEKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCi0rZGlz dC10YXJaOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBjb21w cmVzcyAtYyA+JChkaXN0ZGlyKS50YXIuWgotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStk aXN0LXNoYXI6IGRpc3RkaXIKLSsJc2hhciAkKGRpc3RkaXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBn emlwIC1jID4kKGRpc3RkaXIpLnNoYXIuZ3oKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCi0r ZGlzdC16aXA6IGRpc3RkaXIKLSsJLXJtIC1mICQoZGlzdGRpcikuemlwCi0rCXppcCAtcnEgJChk aXN0ZGlyKS56aXAgJChkaXN0ZGlyKQotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0 IGRpc3QtYWxsOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBH WklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6Ci0rCXRhcmRpcj0kKGRp c3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0ZGlyKS50YXIuYnoyCi0r CSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwotKyMgVGhpcyB0YXJnZXQgdW50YXJzIHRoZSBkaXN0 IGZpbGUgYW5kIHRyaWVzIGEgVlBBVEggY29uZmlndXJhdGlvbi4gIFRoZW4KLSsjIGl0IGd1YXJh bnRlZXMgdGhhdCB0aGUgZGlzdHJpYnV0aW9uIGlzIHNlbGYtY29udGFpbmVkIGJ5IG1ha2luZyBh bm90aGVyCi0rIyB0YXJmaWxlLgotK2Rpc3RjaGVjazogZGlzdAotKwljYXNlICckKERJU1RfQVJD SElWRVMpJyBpbiBcCi0rCSoudGFyLmd6KikgXAotKwkgIEdaSVA9JChHWklQX0VOVikgZ3Vuemlw IC1jICQoZGlzdGRpcikudGFyLmd6IHwgJChhbV9fdW50YXIpIDs7XAotKwkqLnRhci5iejIqKSBc Ci0rCSAgYnVuemlwMiAtYyAkKGRpc3RkaXIpLnRhci5iejIgfCAkKGFtX191bnRhcikgOztcCi0r CSoudGFyLmx6bWEqKSBcCi0rCSAgdW5sem1hIC1jICQoZGlzdGRpcikudGFyLmx6bWEgfCAkKGFt X191bnRhcikgOztcCi0rCSoudGFyLloqKSBcCi0rCSAgdW5jb21wcmVzcyAtYyAkKGRpc3RkaXIp LnRhci5aIHwgJChhbV9fdW50YXIpIDs7XAotKwkqLnNoYXIuZ3oqKSBcCi0rCSAgR1pJUD0kKEda SVBfRU5WKSBndW56aXAgLWMgJChkaXN0ZGlyKS5zaGFyLmd6IHwgdW5zaGFyIDs7XAotKwkqLnpp cCopIFwKLSsJICB1bnppcCAkKGRpc3RkaXIpLnppcCA7O1wKLSsJZXNhYwotKwljaG1vZCAtUiBh LXcgJChkaXN0ZGlyKTsgY2htb2QgYSt3ICQoZGlzdGRpcikKLSsJbWtkaXIgJChkaXN0ZGlyKS9f YnVpbGQKLSsJbWtkaXIgJChkaXN0ZGlyKS9faW5zdAotKwljaG1vZCBhLXcgJChkaXN0ZGlyKQot KwlkY19pbnN0YWxsX2Jhc2U9YCQoYW1fX2NkKSAkKGRpc3RkaXIpL19pbnN0ICYmIHB3ZCB8IHNl ZCAtZSAncyxeW146XFwvXTpbXFwvXSwvLCdgIFwKLSsJICAmJiBkY19kZXN0ZGlyPSIkJHtUTVBE SVItL3RtcH0vYW0tZGMtJCQkJC8iIFwKLSsJICAmJiBjZCAkKGRpc3RkaXIpL19idWlsZCBcCi0r CSAgJiYgLi4vY29uZmlndXJlIC0tc3JjZGlyPS4uIC0tcHJlZml4PSIkJGRjX2luc3RhbGxfYmFz ZSIgXAotKwkgICAgJChESVNUQ0hFQ0tfQ09ORklHVVJFX0ZMQUdTKSBcCi0rCSAgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGR2aSBc Ci0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY2hlY2sgXAotKwkgICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGluc3RhbGxjaGVjayBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdW5pbnN0YWxs IFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0dW5pbnN0YWxsY2hlY2tfZGly PSIkJGRjX2luc3RhbGxfYmFzZSIgXAotKwkgICAgICAgIGRpc3R1bmluc3RhbGxjaGVjayBcCi0r CSAgJiYgY2htb2QgLVIgYS13ICIkJGRjX2luc3RhbGxfYmFzZSIgXAotKwkgICYmICh7IFwKLSsJ ICAgICAgIChjZCAuLi8uLiAmJiB1bWFzayAwNzcgJiYgbWtkaXIgIiQkZGNfZGVzdGRpciIpIFwK LSsJICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRp ciIgaW5zdGFsbCBcCi0rCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElS PSIkJGRjX2Rlc3RkaXIiIHVuaW5zdGFsbCBcCi0rCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIFwKLSsJICAgICAgICAgICAgZGlzdHVuaW5z dGFsbGNoZWNrX2Rpcj0iJCRkY19kZXN0ZGlyIiBkaXN0dW5pbnN0YWxsY2hlY2s7IFwKLSsJICAg ICAgfSB8fCB7IHJtIC1yZiAiJCRkY19kZXN0ZGlyIjsgZXhpdCAxOyB9KSBcCi0rCSAgJiYgcm0g LXJmICIkJGRjX2Rlc3RkaXIiIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0 IFwKLSsJICAmJiBybSAtcmYgJChESVNUX0FSQ0hJVkVTKSBcCi0rCSAgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgZGlzdGNsZWFuY2hlY2sKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCUAo ZWNobyAiJChkaXN0ZGlyKSBhcmNoaXZlcyByZWFkeSBmb3IgZGlzdHJpYnV0aW9uOiAiOyBcCi0r CSAgbGlzdD0nJChESVNUX0FSQ0hJVkVTKSc7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAkJGk7 IGRvbmUpIHwgXAotKwkgIHNlZCAtZSAxaCAtZSAxcy8uLz0vZyAtZSAxcCAtZSAxeCAtZSAnJCRw JyAtZSAnJCR4JwotK2Rpc3R1bmluc3RhbGxjaGVjazoKLSsJQGNkICQoZGlzdHVuaW5zdGFsbGNo ZWNrX2RpcikgXAotKwkmJiB0ZXN0IGAkKGRpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIHwg d2MgLWxgIC1sZSAxIFwKLSsJICAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBhZnRlciB1 bmluc3RhbGw6IiA7IFwKLSsJICAgICAgICBpZiB0ZXN0IC1uICIkKERFU1RESVIpIjsgdGhlbiBc Ci0rCSAgICAgICAgICBlY2hvICIgIChjaGVjayBERVNURElSIHN1cHBvcnQpIjsgXAotKwkgICAg ICAgIGZpIDsgXAotKwkgICAgICAgICQoZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcykgOyBc Ci0rCSAgICAgICAgZXhpdCAxOyB9ID4mMgotK2Rpc3RjbGVhbmNoZWNrOiBkaXN0Y2xlYW4KLSsJ QGlmIHRlc3QgJyQoc3JjZGlyKScgPSAuIDsgdGhlbiBcCi0rCSAgZWNobyAiRVJST1I6IGRpc3Rj bGVhbmNoZWNrIGNhbiBvbmx5IHJ1biBmcm9tIGEgVlBBVEggYnVpbGQiIDsgXAotKwkgIGV4aXQg MSA7IFwKLSsJZmkKLSsJQHRlc3QgYCQoZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1s YCAtZXEgMCBcCi0rCSAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBpbiBidWlsZCBkaXJl Y3RvcnkgYWZ0ZXIgZGlzdGNsZWFuOiIgOyBcCi0rCSAgICAgICAkKGRpc3RjbGVhbmNoZWNrX2xp c3RmaWxlcykgOyBcCi0rCSAgICAgICBleGl0IDE7IH0gPiYyCi0rY2hlY2stYW06IGFsbC1hbQot K2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQoU0NSSVBUUykgJChE QVRBKQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1h bToKLSsJZm9yIGRpciBpbiAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKG00ZGF0 YWRpcikiICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQk ZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwt cmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFs bC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0 YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VG TEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBp bnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJ UF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklO U1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5 Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmlj OgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19D TEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlz IGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0 IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQu IgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRB SU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBj bGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46 IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklM RVMpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFu LWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTog ZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwot K2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06 IGluc3RhbGwtbTRkYXRhREFUQSBpbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKLSsKLStpbnN0YWxsLWR2 aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWJp blNDUklQVFMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsK LStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5z dGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1j bGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mICQoYW1fX0NPTkZJR19E SVNUQ0xFQU5fRklMRVMpCi0rCS1ybSAtcmYgJCh0b3Bfc3JjZGlyKS9hdXRvbTR0ZS5jYWNoZQot Kwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vy c2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu LWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBz LXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWJpblND UklQVFMgdW5pbnN0YWxsLWxvY2FsIFwKLSsJdW5pbnN0YWxsLW00ZGF0YURBVEEgdW5pbnN0YWxs LXBrZ2NvbmZpZ0RBVEEKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChS RUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtc3RyaXAKLSsKLSsuUEhP Tlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdT IEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBhbS0tcmVmcmVzaCBjaGVjayBjaGVjay1hbSBjbGVhbiBj bGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgZGlz dCBkaXN0LWFsbCBkaXN0LWJ6aXAyIFwKLSsJZGlzdC1nemlwIGRpc3QtbHptYSBkaXN0LXNoYXIg ZGlzdC10YXJaIGRpc3QtemlwIGRpc3RjaGVjayBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2Vu ZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBcCi0rCWRpc3RjbGVhbmNoZWNr IGRpc3RkaXIgZGlzdHVuaW5zdGFsbGNoZWNrIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0g aW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWJpblNDUklQVFMgXAotKwlp bnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwK LSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1s LWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW00ZGF0YURBVEEg aW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2Nv bmZpZ0RBVEEgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0 YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0g bWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVh biBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFt IHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFt IHVuaW5zdGFsbC1iaW5TQ1JJUFRTIHVuaW5zdGFsbC1sb2NhbCBcCi0rCXVuaW5zdGFsbC1tNGRh dGFEQVRBIHVuaW5zdGFsbC1wa2djb25maWdEQVRBCi0rCi0rQFNFVF9NQUtFQAotKwotKyMgVGFy Z2V0cwotK3VuaW5zdGFsbC1sb2NhbDoKLSsJcm0gLXJmICQoREVTVERJUikkKGluY2x1ZGVkaXIp L0BQQUNLQUdFQAotKwotK2Rpc3QtaHRtbDoKLSsJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sCi0r Ci0rc25hcHNob3Q6IHNuYXBzaG90LXNyYyBzbmFwc2hvdC1odG1sCi0rCi0rc25hcHNob3Qtc3Jj OgotKyAgICAgICAgJChNQUtFKSBkaXN0IGRpc3RkaXI9QFBBQ0tBR0VfVEFSTkFNRUAtYGRhdGUg KyIlWSVtJWQiYAotKwotK3NuYXBzaG90LWh0bWw6Ci0rCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRt bCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtYGRhdGUgKyIlWSVtJWQi YAotKwotK3VwbG9hZDogdXBsb2FkLXNyYyB1cGxvYWQtaHRtbAotKwotK3VwbG9hZC1zcmM6IGRp c3QKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmd6 IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5iejIKLSsKLSt1cGxvYWQtaHRt bDogZGlzdC1odG1sCi0rCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1k b2MtQFZFUlNJT05ALnRhci5neiBcCi0rCUBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJT SU9OQC50YXIuYnoyCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRv IG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAo Zm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9t YW4vTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv bWFuL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi1AQCAt MCwwICsxLDQgQEAKLSsjIE1hbiBwYWdlcwotK21hbl9NQU5TID0gc29jaS1jb25maWcuMQotKwot K0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21h bi9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmluCi0tLS0gc29j aS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5pbgkyMDA5LTA1 LTA2IDAxOjMxOjQ4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw0MzAgQEAKLSsjIE1ha2Vm aWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsj IEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRo aXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3Jj ZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQo bGliZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FH RUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUiki ICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0 YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAk KGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFu c2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0r UFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6 Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0 ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK3N1YmRpciA9IG1hbgotK0RJU1Rf Q09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbgotK0FD TE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBz ID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2ku bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2Ft X19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQ RU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxs X3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAot K0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLSttYW4x ZGlyID0gJChtYW5kaXIpL21hbjEKLSthbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobWFu MWRpcikiCi0rTlJPRkYgPSBucm9mZgotK01BTlMgPSAkKG1hbl9NQU5TKQotK0RJU1RGSUxFUyA9 ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1Qp Ci0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FV VE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFL RSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxB R1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NU X0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFN U19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNA Ci0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElC QAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIg PSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURf TElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9X U0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQEND QAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBA Q1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRf Q0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElC UyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAK LStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBN T0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0r REVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxA Ci0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAK LStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRA Ci0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJT SU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxM ID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BS T0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NS SVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0r TERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNA Ci0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRM SUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStN WVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05G SUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxf TERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5N RURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAot K09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERG TEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNM RV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQg PSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQ QUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFD S0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFU SF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJ RyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NA Ci0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxB R1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JF U1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVM RUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNI RUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09D SV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFO REAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAK LSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9w X2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0ND ID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFj X2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3Qg PSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9 IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAK LStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9j cHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9 IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRh ZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AK LStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIg PSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNf cHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0g QGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29z QAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStp bmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxf c2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGli ZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGly QAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAot K21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0r cGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3Jt X25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmlu ZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBz aGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29u ZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXgg PSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3Rv cF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLSsKLSsjIE1hbiBwYWdlcwotK21hbl9NQU5TID0gc29j aS1jb25maWcuMQotK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKQotK2FsbDogYWxsLWFtCi0rCi0r LlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5h bSAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2Fz ZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJ ZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAg bWFuL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtF KSAtLWdudSAgbWFuL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAk KHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNh c2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikg XAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5z dGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29u ZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVO REVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1 cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0 b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1tYW4xOiAkKG1hbjFfTUFOUykg JChtYW5fTUFOUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobWFuMWRpciki IHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjFkaXIpIgotKwlAbGlzdD0nJChtYW4xX01B TlMpICQoZGlzdF9tYW4xX01BTlMpICQobm9kaXN0X21hbjFfTUFOUyknOyBcCi0rCWwyPSckKG1h bl9NQU5TKSAkKGRpc3RfbWFuX01BTlMpICQobm9kaXN0X21hbl9NQU5TKSc7IFwKLSsJZm9yIGkg aW4gJCRsMjsgZG8gXAotKwkgIGNhc2UgIiQkaSIgaW4gXAotKwkgICAgKi4xKikgbGlzdD0iJCRs aXN0ICQkaSIgOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQoc3JjZGlyKS8kJGk7IHRoZW4gZmlsZT0kKHNyY2Rpcikv JCRpOyBcCi0rCSAgZWxzZSBmaWxlPSQkaTsgZmk7IFwKLSsJICBleHQ9YGVjaG8gJCRpIHwgc2Vk IC1lICdzL14uKlxcLi8vJ2A7IFwKLSsJICBjYXNlICIkJGV4dCIgaW4gXAotKwkgICAgMSopIDs7 IFwKLSsJICAgICopIGV4dD0nMScgOzsgXAotKwkgIGVzYWM7IFwKLSsJICBpbnN0PWBlY2hvICQk aSB8IHNlZCAtZSAncy9cXC5bMC05YS16XSokJC8vJ2A7IFwKLSsJICBpbnN0PWBlY2hvICQkaW5z dCB8IHNlZCAtZSAncy9eLipcLy8vJ2A7IFwKLSsJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAn JCh0cmFuc2Zvcm0pJ2AuJCRleHQ7IFwKLSsJICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZp bGUnICckKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAotKwkgICQoSU5TVEFMTF9EQVRB KSAiJCRmaWxlIiAiJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0IjsgXAotKwlkb25lCi0rdW5p bnN0YWxsLW1hbjE6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKG1hbjFfTUFO UykgJChkaXN0X21hbjFfTUFOUykgJChub2Rpc3RfbWFuMV9NQU5TKSc7IFwKLSsJbDI9JyQobWFu X01BTlMpICQoZGlzdF9tYW5fTUFOUykgJChub2Rpc3RfbWFuX01BTlMpJzsgXAotKwlmb3IgaSBp biAkJGwyOyBkbyBcCi0rCSAgY2FzZSAiJCRpIiBpbiBcCi0rCSAgICAqLjEqKSBsaXN0PSIkJGxp c3QgJCRpIiA7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgIGV4dD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXi4qXFwuLy8nYDsgXAotKwkgIGNh c2UgIiQkZXh0IiBpbiBcCi0rCSAgICAxKikgOzsgXAotKwkgICAgKikgZXh0PScxJyA7OyBcCi0r CSAgZXNhYzsgXAotKwkgIGluc3Q9YGVjaG8gJCRpIHwgc2VkIC1lICdzL1xcLlswLTlhLXpdKiQk Ly8nYDsgXAotKwkgIGluc3Q9YGVjaG8gJCRpbnN0IHwgc2VkIC1lICdzL14uKlwvLy8nYDsgXAot KwkgIGluc3Q9YGVjaG8gJCRpbnN0IHwgc2VkICckKHRyYW5zZm9ybSknYC4kJGV4dDsgXAotKwkg IGVjaG8gIiBybSAtZiAnJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0JyI7IFwKLSsJICBybSAt ZiAiJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0IjsgXAotKwlkb25lCi0rdGFnczogVEFHUwot K1RBR1M6Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlzdGRpcjogJChESVNU RklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQk XFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUykn OyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsg ZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAt ZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2Ug JCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxl cyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwn IHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRp c3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsg dGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRm aWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10q JCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQg IT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChk aXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQv JCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRl c3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRp c3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0r Y2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUgJChN QU5TKQotK2luc3RhbGxkaXJzOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChtYW4xZGlyKSI7 IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRv bmUKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0K LStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFt Ci0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hl Y2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxM X1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAot KwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFN X0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmlj OgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQot KwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBp bnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxl cyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rY2xlYW46IGNs ZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHlj bGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQot K2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2aS1h bQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raW5mbzogaW5mby1hbQotKwot K2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbgotKwotK2luc3RhbGwt ZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0 bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0r Ci0raW5zdGFsbC1tYW46IGluc3RhbGwtbWFuMQotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1hbQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsY2hlY2stYW06 Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFr ZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xl YW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjog cGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5z dGFsbC1hbTogdW5pbnN0YWxsLW1hbgotKwotK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW4x Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogYWxsIGFs bC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAot KwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBk dmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwt YW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwt ZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5z dGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1h biBpbnN0YWxsLW1hbjEgXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBz IGluc3RhbGwtcHMtYW0gXAotKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hl Y2stYW0gaW5zdGFsbGRpcnMgXAotKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYyBtb3N0bHljbGVhbiBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4t bGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1 bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsu Tk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEg c29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svbWFuL3NvY2ktY29uZmlnLjEJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL3NvY2ktY29uZmlnLjEJMjAwOS0wNC0xNiAxOToz NzowOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzkgQEAKLSsuVEggU09DSSAxICIyOCBN YXJjaCAyMDA5IgotKy5TSCBOQU1FCi0rc29jaS1jb25maWcgLSBzY3JpcHQgdG8gZ2V0IHZlcnNp b24gbnVtYmVyIGFuZCBjb21waWxlciBmbGFncyBvZiB0aGUgaW5zdGFsbGVkIFNPQ0kgbGlicmFy eQotKy5TSCBTWU5PUFNJUwotKy5CIHNvY2ktY29uZmlnCi0rW1wtXC1wcmVmaXhdICBbXC1cLXZl cnNpb25dIFtcLVwtbGlic10gW1wtXC1jZmxhZ3NdCi0rLlNIIERFU0NSSVBUSU9OCi0rLlBQCi0r XGZJc29jaS1jb25maWdcZlAgaXMgYSB0b29sIHRoYXQgaXMgdXNlZCB0byBjb25maWd1cmUgdG8g ZGV0ZXJtaW5lCi0rdGhlIGNvbXBpbGVyIGFuZCBsaW5rZXIgZmxhZ3MgdGhhdCBzaG91bGQgYmUg dXNlZCB0byBjb21waWxlCi0rYW5kIGxpbmsgcHJvZ3JhbXMgdGhhdCB1c2UgXGZJU09DSVxmUC4g SXQgaXMgYWxzbyB1c2VkIGludGVybmFsbHkKLSt0byB0aGUgLm00IG1hY3JvcyBmb3IgR05VIGF1 dG9jb25mIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggXGZJU09DSVxmUC4KLSsuCi0rLlNIIE9QVElP TlMKLSsubAotK1xmSXNvY2ktY29uZmlnXGZQIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25z OgotKy5UUCA4Ci0rLkIgIFwtXC12ZXJzaW9uCi0rUHJpbnQgdGhlIGN1cnJlbnRseSBpbnN0YWxs ZWQgdmVyc2lvbiBvZiBcZklTT0NJXGZQIG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQuCi0rLlRQIDgK LSsuQiAgXC1cLWxpYnMKLStQcmludCB0aGUgbGlua2VyIGZsYWdzIHRoYXQgYXJlIG5lY2Vzc2Fy eSB0byBsaW5rIGEgXGZJU09DSVxmUCBwcm9ncmFtLCB3aXRoIGNibGFzCi0rLlRQIDgKLSsuQiAg XC1cLWNmbGFncwotK1ByaW50IHRoZSBjb21waWxlciBmbGFncyB0aGF0IGFyZSBuZWNlc3Nhcnkg dG8gY29tcGlsZSBhIFxmSVNPQ0lcZlAgcHJvZ3JhbS4KLSsuVFAgOAotKy5CICBcLVwtcHJlZml4 Ci0rU2hvdyB0aGUgU09DSSBpbnN0YWxsYXRpb24gcHJlZml4LgotKy5TSCBTRUUgQUxTTwotKy5C UiBndGstY29uZmlnICgxKSwKLSsuQlIgZ25vbWUtY29uZmlnICgxKQotKy5TSCBDT1BZUklHSFQK LStDb3B5cmlnaHQgXChjbyAgMjAwOSBEZW5pcyBBcm5hdWQKLSsKLStQZXJtaXNzaW9uIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKLStk b2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBhbmQgd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdy YW50ZWQsCi0rcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIg aW4gYWxsIGNvcGllcyBhbmQgdGhhdAotK2JvdGggdGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbgotK3N1cHBvcnRpbmcgZG9jdW1lbnRhdGlv bi4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9ORVdTIHNvY2ktMy4wLjBfdHJlcDMwMC9O RVdTCi0tLS0gc29jaS0zLjAuMF80LXBhY2svTkVXUwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdTCTIwMDktMDQtMTYgMTk6Mzc6 MTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDMgQEAKLSsKLSsqIFdlZCBNYXIgMjYgMjAw OSBSUE0gcmVsZWFzZSBmb3IgdmVyc2lvbiAzLjAuMAotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0JMjAwOS0wNC0yOCAyMzox NToxNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsOSBAQAotK2luY2x1ZGUgJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLSsjIyBTb3VyY2UgZGlyZWN0b3J5Ci0rCi0rTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSBATVlTUUxfRElSU0Ag QFBPU1RHUkVTUUxfRElSU0AgQE9SQUNMRV9ESVJTQAotKwotK0VYVFJBX0RJU1QgPQotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4gc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4J MjAwOS0wNS0wNiAwMTozMTo0OC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTM2IEBACi0r IyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUu YW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1 LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAw NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0 Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJk aXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikv QFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBB UkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0 Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NS SVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEp Ci0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxM ID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNU QUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRf dHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9 ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMKLStBQ0xPQ0FM X000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQo dG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29u ZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVO Q0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkg LWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05G SUdfQ0xFQU5fRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rUkVDVVJTSVZF X1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwK LSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBc Ci0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1w ZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJ aW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2 ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRp c3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStFVEFHUyA9IGV0 YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklM RVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9E SVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAK LStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVU T01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1Rf Q0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStC T09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NU UkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9M SUJTQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNf TElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhS RUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9P U1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9 IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQ ID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBV TklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklU X0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJ T05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hY REVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9X QAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1V VElMQAotK0VDSE8gPSBARUNIT0AKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hP X05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhF RVhUQAotK0Y3NyA9IEBGNzdACi0rRkZMQUdTID0gQEZGTEFHU0AKLStHRU5FUklDX0xJQlJBUllf VkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5T VEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFM TF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxM X1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFN QAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBM SUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0g QExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BA Ci0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxf Q09ORklHQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1Z U1FMX0xERkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NRURJVCA9 IEBOTUVESVRACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElS U0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJ X0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBP UkFDTEVfT0NJX1ZFUlNJT05ACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQ T1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVA Ci0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0g QFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAot K1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19D T05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZM QUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9M REZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9T VEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBN X1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9 IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0r U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAot K1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NP TU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRk aXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJz X3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19j dF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0Y3NyA9 IEBhY19jdF9GNzdACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdf ZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190 YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5k aXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVp bGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5k b3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBA ZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZf b2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZp ZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBl eGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlh cyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9z dF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJA Ci0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0 YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0g QGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2Fs ZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRp ckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGly QAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0r c2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIg PSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5 c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJl Zml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAK LSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxk ZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu Ci0rU1VCRElSUyA9IEBNWVNRTF9ESVJTQCBAUE9TVEdSRVNRTF9ESVJTQCBAT1JBQ0xFX0RJUlNA Ci0rRVhUUkFfRElTVCA9IAotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsk KHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/ OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRk ZXAqKSBcCi0rCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAot KwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFV VE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3Jj ZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvTWFrZWZpbGUK LSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29u ZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChh bV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsg XAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9D QUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSttb3N0bHljbGVhbi1saWJ0 b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMg X2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBp bmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhv dXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMg b2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgx KSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmln LnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJl Z2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0 aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJ VkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtF RkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwK LSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsg XAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZl Ly9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2Nh bF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBc Ci0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsg dGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFp bGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2Fz ZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209 J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwK LSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikg bGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsg XAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3Vi ZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAot Kwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIg aW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBc Ci0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFy Z2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9u ZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4g fHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRv bmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVB REVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VT KSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklE ICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVS UykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRh Z3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVk ZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBc Ci0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlm aTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1m ICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlv bj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9 JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAot KwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2Ug XAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICAk KEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0r CSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3Rh Z3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16 ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdT RkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQk dW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYg cHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFH U19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RB R1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJ QHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwm L2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3Mv W10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBk aXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAot KwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRv cHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmls ZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJ CQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJ ICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsg ZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9Ljsg ZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4g XAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwK LSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rp cik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRk aXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChk aXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRp c3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRm aWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlzdD0nJChE SVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8k JHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAot KwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAm JiBwd2RgOyBcCi0rCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYm IHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAotKwkg ICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0 ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkgICAgICAgIGRpc3RkaXIp IFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBh bGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3Rh bGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxs OiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2 ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5p bnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFN X01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxj aGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xl YW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlA ZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0r CUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0 byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAt ZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStj bGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0r ZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3Rj bGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStk dmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUK LSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRh LWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1tYW46Ci0r Ci0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHM6IGlu c3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXIt Y2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21h aW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMK LSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4t YW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRm LXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06 Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT KSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1zdHJpcAotKwot Ky5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykg Q1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdl bmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4g ZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBk aXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwg aW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkg aW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwt aHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKLSsJaW5zdGFsbC1pbmZvLWFtIGlu c3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKLSsJaW5zdGFsbC1wcyBpbnN0 YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFt IGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFp bmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1v c3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZl IFwKLSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsjIFRlbGwgdmVy c2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVz LgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJl IGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvbXlzcWwvY29tbW9uLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTA2IDAxOjMyOjQxLjAwMDAwMDAwMCArMDIwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAJMjAwOS0w NC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC02LDcgKzYsMTMgQEAKLSAvLwotIAot ICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSAic29jaS1iYWNrZW5kLmgiCi0rLy8KLSsj aWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4K LSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNpbmNsdWRlIDxjc3RkbGliPgot ICNpbmNsdWRlIDxjdGltZT4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL215c3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCTIwMDktMDQt MTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI2IEBACi0rIyMgYmFja2Vu ZHMvbXlzcWwgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFO RklMRVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSAuIHRlc3QKLSsKLStpZiBIQVZFX01Z U1FMCi0rbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX215c3FsLmxhCi0rCi0rbGlic29jaV9teXNx bF9sYV9TT1VSQ0VTPSAkKGJja19teXNxbF9oX3NvdXJjZXMpICQoYmNrX215c3FsX2NjX3NvdXJj ZXMpIAotK2xpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MgPSAkKE1ZU1FMX0NGTEFHUykKLStsaWJz b2NpX215c3FsX2xhX0xJQkFERCA9Ci0rbGlic29jaV9teXNxbF9sYV9MREZMQUdTID0gXAotKwkk KEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElP TlNfTElCKSBcCi0rCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsK LStwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c29jaS1teXNxbC5oCi0rZW5kaWYKLStpZiBTT0NJX0hFQURFUlNfQlVSSUVECi0rc29jaV9pbmNs dWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9teXNxbAotK2Vsc2UKLStzb2Np X2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQo c29jaV9pbmNsdWRlX2RpcikKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL215c3FsL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L215c3FsL01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC9NYWtlZmlsZS5iYXNpYwkyMDA5LTA1LTA2IDAxOjMyOjQxLjAwMDAwMDAwMCArMDIw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJh c2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSw5NyArMCwwIEBA Ci0tIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5k IGFuZCB0aGVpciBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJv bm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLU1ZU1FMTElCRElS ID0gLUwvdXNyL2xpYi9teXNxbAotLU1ZU1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6Ci0tTVlT UUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlzcWwKLS0KLS0jIFRoZSByZXN0IG9mIHRo ZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQot LUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxv bmcKLS1DWFhGTEFHU1NPID0gJHtDWFhGTEFHU30gLWZQSUMKLS1JTkNMVURFRElSUyA9IC1JLi4v Li4vY29yZSAke01ZU1FMSU5DTFVERURJUn0KLS0KLS0KLS1PQkpFQ1RTID0gYmxvYi5vIGZhY3Rv cnkubyByb3ctaWQubyBzZXNzaW9uLm8gc3RhbmRhcmQtaW50by10eXBlLm8gXAotLQlzdGFuZGFy ZC11c2UtdHlwZS5vIHN0YXRlbWVudC5vIHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5 cGUubyBcCi0tCWNvbW1vbi5vCi0tCi0tCi0tT0JKRUNUU1NPID0gYmxvYi1zLm8gZmFjdG9yeS1z Lm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCi0tCXN0YW5kYXJkLWludG8tdHlwZS1zLm8gc3Rh bmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8gXAotLQl2ZWN0b3ItaW50by10eXBlLXMu byB2ZWN0b3ItdXNlLXR5cGUtcy5vIGNvbW1vbi1zLm8KLS0KLS0KLS1saWJzb2NpX215c3FsLmEg OiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQotLQotLWJsb2IubyA6IGJs b2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0tY29tbW9uLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQubyA6IHJvdy1p ZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0K LS1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50 by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQotLQotLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQu byA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KLS0KLS12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAot LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rv ci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQotLQkk e0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfbXlzcWwuc28gJHtPQkpFQ1RTU099Ci0tCXJt ICoubwotLQotLWJsb2Itcy5vIDogYmxvYi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLWNvbW1vbi1zLm8gOiBjb21tb24uY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K LS0KLS1mYWN0b3J5LXMubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQtcy5vIDogcm93LWlkLmNw cAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9 Ci0tCi0tc2Vzc2lvbi1zLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAk PyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLXMu byA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0 YW5kYXJkLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdT U099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKLS0J JHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQot LXZlY3Rvci1pbnRvLXR5cGUtcy5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11 c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1m IGxpYnNvY2lfbXlzcWwuYSBsaWJzb2NpX215c3FsLnNvCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtl ZmlsZS5pbgkyMDA5LTA1LTA2IDAxOjMxOjQ4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw3 OTYgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBN YWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7 IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VA Ci0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNL QUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9 IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9E QVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGlu c3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5T VEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJh bnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9T VF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoK LStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJp cGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChhbV9fcGtnaW5jbHVkZV9IRUFERVJTX0RJ U1QpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNy Y2Rpcikvc291cmNlcy5tayBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3Vi ZGlyID0gc29jaS9iYWNrZW5kcy9teXNxbAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2Fj bG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf Ym9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9N NCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rYW1f X3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdz fC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIp LyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAg KikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBgZWNobyAkJHAgfCBzZWQg LWUgJ3N8Xi4qL3x8J2A7Ci0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpciki ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLStsaWJMVExJQlJBUklFU19JTlNUQUxMID0g JChJTlNUQUxMKQotK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMpCi0rbGlic29jaV9t eXNxbF9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19saWJzb2NpX215c3FsX2xhX1NPVVJDRVNfRElT VCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBcCi0r CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggXAotKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAgXAotKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9yb3ctaWQuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Nlc3Npb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5k YXJkLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YXRlbWVudC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv dmVjdG9yLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdmVjdG9yLXVzZS10eXBlLmNwcAotK2FtX19vYmplY3RzXzEgPQotK2FtX19vYmplY3RzXzIg PSBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8gXAot KwlsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8g XAotKwlsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gXAotKwlsaWJzb2NpX215c3FsX2xhLXN0 YW5kYXJkLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5 cGUubG8gXAotKwlsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbyBcCi0rCWxpYnNvY2lfbXlz cWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLmxvCi0rQEhBVkVfTVlTUUxfVFJVRUBhbV9saWJzb2NpX215c3FsX2xhX09CSkVDVFMg PSAkKGFtX19vYmplY3RzXzEpIFwKLStASEFWRV9NWVNRTF9UUlVFQAkkKGFtX19vYmplY3RzXzIp Ci0rbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX215c3FsX2xhX09CSkVD VFMpCi0rbGlic29jaV9teXNxbF9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpIFwKLSsJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwK LSsJJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCi0rCSQobGlic29j aV9teXNxbF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rQEhBVkVfTVlTUUxfVFJVRUBh bV9saWJzb2NpX215c3FsX2xhX3JwYXRoID0gLXJwYXRoICQobGliZGlyKQotK0RFRkFVTFRfSU5D TFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBjb21wID0g JChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBmaWxlc19tYXli ZSA9IGRlcGZpbGVzCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9 ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFH UykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStDT01Q SUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09N UElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdT KSAkKENGTEFHUykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xE KSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1v ICRACi0rU09VUkNFUyA9ICQobGlic29jaV9teXNxbF9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNF UyA9ICQoYW1fX2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNUKQotK1JFQ1VSU0lWRV9UQVJH RVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0 bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlp bnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwt aHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJl Y3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3Rh bGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAot Kwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK2FtX19wa2dpbmNsdWRlX0hFQURF UlNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15 c3FsLmgKLStwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNUQUxMX0hFQURFUikKLStI RUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMg PSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1y ZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStFVEFHUyA9IGV0YWdzCi0rQ1RB R1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK3Br Z2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAot K0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBA QVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJ QiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NU X0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1T X0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBC T09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFM SVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0r Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZM QUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9 IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZM QUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9 IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9f QyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VH UkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1Mg PSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9W RVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9E QVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFN QAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJP R1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJ Qk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAot K0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1B S0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNR TF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9O ID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhU QAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9S QUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxB R1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdF ID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0r UEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdF X1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0Vf VkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBB UkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdS RVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBP U1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdT QAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0g QFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NF VF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAK LStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05A Ci0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNk aXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3Jj ZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NY WCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9 IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2Ft X19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9 IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWls ZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxk X29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRk aXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRh dGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2Rv eHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0g QGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29r QAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUg PSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3Rf dmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJA Ci0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRl eF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGli ZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9j YWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStv bGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVm aXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29r ID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIg PSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBA dGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0 b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAK LStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK2Jja19t eXNxbF9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3NvY2ktbXlzcWwuaAotKwotK2Jja19teXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAotK0BIQVZFX01ZU1FMX1RSVUVAbGli X0xUTElCUkFSSUVTID0gbGlic29jaV9teXNxbC5sYQotK0BIQVZFX01ZU1FMX1RSVUVAbGlic29j aV9teXNxbF9sYV9TT1VSQ0VTID0gJChiY2tfbXlzcWxfaF9zb3VyY2VzKSAkKGJja19teXNxbF9j Y19zb3VyY2VzKSAKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1Mg PSAkKE1ZU1FMX0NGTEFHUykKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfTElC QUREID0gCi0rQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX0xERkxBR1MgPSBcCi0r QEhBVkVfTVlTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQo Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotK0BIQVZFX01ZU1FMX1RSVUVACS12ZXJzaW9u LWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStASEFWRV9NWVNRTF9UUlVFQHBr Z2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2Np LW15c3FsLmgKLStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0g JChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2Rp ciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9teXNxbAotK2FsbDogYWxsLXJlY3Vyc2l2 ZQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2Rp cikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0r CUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBp biBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAg ICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bf c3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmls ZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNv Y2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZp bGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwot KwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJ ICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGly KS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNf REVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBz KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLStpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKLSsJQCQo Tk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChE RVNURElSKSQobGliZGlyKSIKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKLSsJICAgIGY9JChhbV9f c3RyaXBfZGlyKSBcCi0rCSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkg JChJTlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBc Ci0rCSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxB RykgIiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAotKwkgIGVsc2UgOjsgZmk7IFwK LSsJZG9uZQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKLSsJQCQoTk9STUFMX1VOSU5T VEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8g XAotKwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERF U1RESVIpJChsaWJkaXIpLyQkcCciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxp YmRpcikvJCRwIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0rCS10ZXN0 IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQotKwlA bGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGly PSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGly IiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2Nh dGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUK LStsaWJzb2NpX215c3FsLmxhOiAkKGxpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykgJChsaWJzb2Np X215c3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9teXNxbF9sYV9MSU5LKSAkKGFt X2xpYnNvY2lfbXlzcWxfbGFfcnBhdGgpICQobGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKSAkKGxp YnNvY2lfbXlzcWxfbGFfTElCQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToK LSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAq LnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1v bi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNx bF9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlBsb0BhbV9fcXVv dGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxf bGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQu UGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsb0BhbV9fcXVvdGVA Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAk KERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1m ICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSsuY3BwLm9iajoK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYg JChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBs aWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAg YCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAt byAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQo REVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29j aV9teXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9ibG9iLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9s YS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAnIG9iamVjdD0nbGlic29j aV9teXNxbF9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCi0rCi0rbGli c29jaV9teXNxbF9sYS1jb21tb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1jb21tb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxf bGEtY29tbW9uLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uUGxvCi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtY29t bW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCi0rCi0rbGlic29jaV9t eXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFj dG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfbXlzcWxfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNx bF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3Rvcnku Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xh LWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKLSsKLSts aWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlk LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNx bF9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5QbG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1y b3ctaWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKLSsKLStsaWJzb2Np X215c3FsX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z ZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lv bi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5QbG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxf bGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotKwot K2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRv LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWlu dG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8g JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215 c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1p bnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lf bXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBv IC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNl LXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVt ZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5U cG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0 ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5QbG8KLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1z dGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAK LSsKLStsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10 eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xp YnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWlu dG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBl LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNx bF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11 c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Zl Y3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8g JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xh LXZlY3Rvci11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5 cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1y bSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2lu c3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JN QUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVS UyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9 OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0r CSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJ UikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgJChwa2dpbmNsdWRlSEVBREVSU19JTlNU QUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAotKwlkb25l Ci0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxM KQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikk KHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgcm0gLWYgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3Rv cmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5k IHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBj aGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcg TWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0 dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBN YWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikg b3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQg bGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJ Zm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9 KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAg ZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8 IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsg XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15 ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0r CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwg ZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJu byI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwg ZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxB R1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJ ICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAot Kwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFp bnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0 PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwK LSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwly ZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7 IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdl dCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAot KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxv Y2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQk ZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToK LSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVz dCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8 fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRv bmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQot KwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAot Kwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsg dGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8 IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtdHB5ID0gMTsgfSBcCi0rCSAg ICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0n YDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1y ZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0r CQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlp ZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9m aXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBl bXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHRhZ3M9IiQkdGFn cyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0r CWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19G SUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0 IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwK LSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAx OyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJp bnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1 ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVt cHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAk KEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBD VEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwK LSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBc Ci0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGki OyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25l IHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJ ICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsg fSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8 ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwK LSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQo dG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAm JiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwkt cm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6 ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3Mv W10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9z cmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNU RklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAk JGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJ ICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAot KwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRp c3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14v XSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUg aW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAk JGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQg JCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdz LC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRl c3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRm aWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAt cFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0r CSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZp bGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJ ZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0 IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3Rk aXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICAgIGRpc3RkaXI9YCQoYW1f X2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkg JCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgKGNkICQkc3ViZGlyICYmIFwKLSsJICAg ICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRv cF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCi0r CQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0r CSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlk b25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06 IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKLStpbnN0YWxsZGlyczogaW5zdGFs bGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJ UikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0 IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBp bnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQot K2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0 YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01B S0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVj azogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc Ci0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAot K21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4t Z2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNo byAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBl Y2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byBy ZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAk KE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVh bi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIFwK LSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJ LXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNs ZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFu LXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRt bC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0r aW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0raW5zdGFsbC1k dmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1s aWJMVExJQlJBUklFUwotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQot KwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtbWFu OgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBz OiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFp bmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBE SVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1h bSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4t cmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1 cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwot K3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNs dWRlSEVBREVSUwotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTog JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RB R1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAot KwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2 ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0r CWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1s IFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0 YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxs LWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBp bnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBp bnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnaW5j bHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBp bnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMt YW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZl IHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5p bnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9u cyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0r IyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhj ZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L215c3FsL3NvY2ktbXlzcWwuaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvc29jaS1teXNxbC5oCTIwMDktMDUtMDYgMDE6MzI6NDEuMDAwMDAwMDAwICswMjAwCi0r Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCTIw MDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMjMsMTIgKzIzLDIzIEBACi0g I2lmbmRlZiBTT0NJX01ZU1FMX0RFQ0wKLSAjIGRlZmluZSBTT0NJX01ZU1FMX0RFQ0wKLSAjZW5k aWYKLS0KLS0jaW5jbHVkZSAic29jaS1iYWNrZW5kLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJ X0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2Vu ZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsvLwot ICNpZmRlZiBfV0lOMzIKLSAjaW5jbHVkZSA8d2luc29jay5oPiAvLyBTT0NLRVQKLSAjZW5kaWYg Ly8gX1dJTjMyCi0tI2luY2x1ZGUgPG15c3FsLmg+IC8vIE15U1FMIENsaWVudAotKy8vCi0rLy8g TXlTUUwgQ2xpZW50Ci0rI2lmIGRlZmluZWQoU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCkKLSsj ICAgICAgIGluY2x1ZGUgPG15c3FsL215c3FsLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPG15c3Fs Lmg+Ci0rI2VuZGlmCi0gI2luY2x1ZGUgPHZlY3Rvcj4KLSAKLSAKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Nv dXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEs MTQgQEAKLStiY2tfbXlzcWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLStiY2tfbXlzcWxfY2Nfc291cmNlcyA9IFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3Bw IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlw ZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAJMjAwOS0wNS0wNiAwMTozMjo0MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtOCw4ICs4LDE0IEBA Ci0gCi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgi Ci0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0rLy8K LSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29j aS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9y bS5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGNhc3Nl cnQ+Ci0gI2luY2x1ZGUgPGN0aW1lPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAg LTAsMCArMSwxOCBAQAotKyMjIGJhY2tlbmQvbXlzcWwvdGVzdCBzdWItZGlyZWN0b3J5Ci0raW5j bHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3Nv dXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0raWYg UlVOX1RFU1RTCi0rICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3FsCi0rZW5kaWYKLSsKLSt0 ZXN0X215c3FsX1NPVVJDRVMgPSAkKG15c3FsX3Rlc3RfY2Nfc291cmNlcykKLSt0ZXN0X215c3Fs X0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9teXNxbF9MREFERCA9Ci0rdGVzdF9t eXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEg LWxkbCBcCi0rCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9teXNxbC9saWJzb2NpX215 c3FsLmxhIFwKLSsJCSQoTVlTUUxfTERGTEFHUykKLSsKLSsjbm9kaXN0X3BrZ2luY2x1ZGVfSEVB REVSUyA9ICQobXlzcWxfdGVzdF9oX3NvdXJjZXMpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAwOS0w NS0wNiAwMTozMjo0MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCi1AQCAtMSwyMiArMCwwIEBACi0tIyBUaGUgZm9sbG93aW5nIHZhcmlh YmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0Ci0tIyB2 YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0 IGl0IGFjY29yZGluZ2x5LgotLQotLU1ZU1FMTElCRElSID0gLUwvdXNyL2xpYi9teXNxbAotLU1Z U1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6Ci0tTVlTUUxJTkNMVURFRElSID0gLUkvdXNyL2lu Y2x1ZGUvbXlzcWwKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVu dCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxB R1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1JTkNMVURFRElSUyA9IC1JLi4g LUkuLi8uLi8uLi9jb3JlICR7TVlTUUxJTkNMVURFRElSfQotLUxJQkRJUlMgPSAtTC4uIC1MLi4v Li4vLi4vY29yZSAke01ZU1FMTElCRElSfQotLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfbXlz cWwgLWxkbCAke01ZU1FMTElCU30KLS0KLS0KLS10ZXN0LW15c3FsIDogdGVzdC1teXNxbC5jcHAK LS0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJE SVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiB0ZXN0LW15c3FsCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmlu IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4K LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUu aW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCTIwMDktMDUtMDYgMDE6 MzE6NDguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDUxMyBAQAotKyMgTWFrZWZpbGUuaW4g Z2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZp Z3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5Nywg MTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYs IDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtl ZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0r IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMg UEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLStWUEFUSCA9IEBzcmNkaXJA Ci0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJk aXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAot K2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYg Y2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxf c2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5z dGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9y bSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVf SU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQ UkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBA YnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMu bWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStAUlVOX1RFU1RTX1RSVUVAbm9pbnN0 X1BST0dSQU1TID0gdGVzdF9teXNxbCQoRVhFRVhUKQotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMv bXlzcWwvdGVzdAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9f YWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3Fs Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykg JChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxk aXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rUFJPR1JBTVMgPSAkKG5vaW5z dF9QUk9HUkFNUykKLSthbV9fb2JqZWN0c18xID0gdGVzdF9teXNxbC10ZXN0LW15c3FsLiQoT0JK RVhUKQotK2FtX3Rlc3RfbXlzcWxfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkKLSt0ZXN0X215 c3FsX09CSkVDVFMgPSAkKGFtX3Rlc3RfbXlzcWxfT0JKRUNUUykKLSt0ZXN0X215c3FsX0RFUEVO REVOQ0lFUyA9Ci0rdGVzdF9teXNxbF9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpIFwKLSsJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpICQo dGVzdF9teXNxbF9DWFhGTEFHUykgXAotKwkkKENYWEZMQUdTKSAkKHRlc3RfbXlzcWxfTERGTEFH UykgJChMREZMQUdTKSAtbyAkQAotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1J JCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9j b25maWcvZGVwY29tcAotK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCi0rQ1hYQ09NUElM RSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xU Q1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChB TV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJ LS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZM QUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJCh0ZXN0X215c3FsX1NPVVJD RVMpCi0rRElTVF9TT1VSQ0VTID0gJCh0ZXN0X215c3FsX1NPVVJDRVMpCi0rRVRBR1MgPSBldGFn cwotK0NUQUdTID0gY3RhZ3MKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09V UkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStB TVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRP SEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFX S0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIg PSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9G SUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19M SUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9P U1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTEla QVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JP T1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJT SU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NU X1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RF QAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFH U0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9 IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVO SVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBA Q1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFH U0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBA REVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0VDSE8gPSBARUNIT0AKLStFQ0hPX0Mg PSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JF UCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0Y3NyA9IEBGNzdACi0rRkZMQUdTID0g QEZGTEFHU0AKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVS U0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFU QSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAK LStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dS QU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJP QkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStM Tl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtF SU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFH U0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01ZU1FMX0RJUlMgPSBATVlTUUxf RElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9 IEBNWVNRTF9WRVJTSU9OQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRVhUID0gQE9CSkVYVEAK LStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFD TEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdT QAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rUEFDS0FHRSA9 IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BB Q0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9T VFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZF UlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJB VE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVT UUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NU R1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AK LStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBS QU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRf TUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0r VVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAot K2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGly QAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2Rp ciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFgg PSBAYWNfY3RfQ1hYQAotK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACi0rYW1fX2luY2x1ZGUgPSBA YW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9f cXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBA YW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRf YWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9v cyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGly ID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRh cm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5 Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBk dmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AK LStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0g QGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3Zl bmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAot K2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhf b2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4 ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fs c3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xk aW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4 ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3Jt X25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9 IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0g QHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRh cmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9w X2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0r QU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStteXNxbF90 ZXN0X2hfc291cmNlcyA9IAotK215c3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0rTUFJTlRBSU5FUkNMRUFO RklMRVMgPSBNYWtlZmlsZS5pbgotK3Rlc3RfbXlzcWxfU09VUkNFUyA9ICQobXlzcWxfdGVzdF9j Y19zb3VyY2VzKQotK3Rlc3RfbXlzcWxfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykKLSt0ZXN0 X215c3FsX0xEQUREID0gCi0rdGVzdF9teXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3Nv Y2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCi0rCQkkKHRvcF9idWlsZGRpcikvc29jaS9i YWNrZW5kcy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwKLSsJCSQoTVlTUUxfTERGTEFHUykKLSsK LSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5v YmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmln dXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmln dXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCi0rCQkmJiBleGl0 IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hv ICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFV VE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlCi0rLlBSRUNJ T1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0 dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNh YzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGly KS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTog ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY2xlYW4tbm9pbnN0UFJPR1JBTVM6Ci0r CUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBm PWBlY2hvICQkcHxzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCi0rCSAgZWNobyAiIHJtIC1mICQk cCAkJGYiOyBcCi0rCSAgcm0gLWYgJCRwICQkZiA7IFwKLSsJZG9uZQotK3Rlc3RfbXlzcWwkKEVY RUVYVCk6ICQodGVzdF9teXNxbF9PQkpFQ1RTKSAkKHRlc3RfbXlzcWxfREVQRU5ERU5DSUVTKSAK LSsJQHJtIC1mIHRlc3RfbXlzcWwkKEVYRUVYVCkKLSsJJCh0ZXN0X215c3FsX0xJTkspICQodGVz dF9teXNxbF9PQkpFQ1RTKSAkKHRlc3RfbXlzcWxfTERBREQpICQoTElCUykKLSsKLSttb3N0bHlj bGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGls ZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlBvQGFtX19xdW90ZUAKLSsK LSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1N RCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9 bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwot Ky5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAt TUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikv JCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9i amVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxF KSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikv JCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS8kKi5UcG8gJChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rdGVzdF9teXNxbC10ZXN0 LW15c3FsLm86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlz cWwuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215 c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9teXNxbC10ZXN0LW15c3FsLm8gLU1E IC1NUCAtTUYgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gLWMgLW8gdGVzdF9t eXNxbC10ZXN0LW15c3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAkKERF UERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L3Rlc3QtbXlzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vJyBsaWJ0b29s PW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215c3Fs X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0rCi0rdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iajogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIC1NRCAtTVAgLU1GICQo REVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1t eXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykg JyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcCc7IGZpYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVz dF9teXNxbC10ZXN0LW15c3FsLlRwbyAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlBv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyBvYmplY3Q9J3Rlc3Rf bXlzcWwtdGVzdC1teXNxbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsg ZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGZpYAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6 Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGli cwotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0r CWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0r CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwg XAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkgPSAxOyB9IFwKLSsJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiAgJChIRUFE RVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAt eiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0 IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChF VEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdz ICQkdW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6ICAkKEhFQURFUlMpICQo U09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQ KQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5p cXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQo Q1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJl PWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNkICQodG9wX3Ny Y2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0rCi0rZGlzdGNs ZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdz Ci0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9 YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAot KwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRs aXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3Ry aXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRk aXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJf UCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlz dGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsg XAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmls ZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0r CSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmls ZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGly KS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBS ICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7 IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwK LSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwg Y3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwK LSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQot K2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBp bnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6 IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1h bTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxs LXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICck KFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9 JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdl bmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXIt Y2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFp bnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1 aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJD TEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xl YW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5v aW5zdFBST0dSQU1TIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVh bi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVh bi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlk aXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0 bWwtYW0KLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEt YW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1leGVjLWFt OgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFs bC1wZGYtYW0KLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbGNoZWNr LWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1y ZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBk aXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1v c3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9z dGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1h bQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwt YW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogQ1RB R1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwK LSsJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAot KwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBc Ci0rCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBp bmZvLWFtIFwKLSsJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEt YW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5z dGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0g aW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKLSsJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sg aW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKLSsJbWFpbnRhaW5lci1jbGVhbiBtYWludGFp bmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAotKwltb3N0bHljbGVhbi1jb21waWxlIG1v c3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCi0rCXBkZiBwZGYtYW0gcHMg cHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKwotKyNu b2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChteXNxbF90ZXN0X2hfc291cmNlcykKLSsjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAot QEAgLTAsMCArMSwyIEBACi0rbXlzcWxfdGVzdF9oX3NvdXJjZXMgPQotK215c3FsX3Rlc3RfY2Nf c291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlz cWwuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L3Rlc3QtbXlzcWwuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvdGVzdC1teXNxbC5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAJMjAwOS0wNS0wNiAwMTozMjo0MS4wMDAwMDAwMDAg KzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rl c3QtbXlzcWwuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtNiw5 ICs2LDE3IEBACi0gLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQotIC8v Ci0gCi0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1teXNxbC5oIgotLSNpbmNs dWRlICJ0ZXN0L2NvbW1vbi10ZXN0cy5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJT X0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+Ci0rIyAgICAgICBp bmNsdWRlIDxzb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaD4KLSsjICAgICAgIGluY2x1 ZGUgPHNvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxz b2NpLmg+Ci0rIwlpbmNsdWRlIDxzb2NpLW15c3FsLmg+Ci0rIyAgICAgICBpbmNsdWRlIDx0ZXN0 L2NvbW1vbi10ZXN0cy5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGlvc3RyZWFtPgotICNp bmNsdWRlIDxzc3RyZWFtPgotICNpbmNsdWRlIDxzdHJpbmc+Ci1AQCAtMTgsOCArMjYsMTQgQEAK LSAjaW5jbHVkZSA8Y3RpbWU+Ci0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGNzdGRs aWI+Ci0tI2luY2x1ZGUgPG15c3FsZF9lcnJvci5oPgotLSNpbmNsdWRlIDxlcnJtc2cuaD4KLSsv LyBNeVNRTCBDbGllbnQKLSsjaWYgZGVmaW5lZChTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEKQot KyMgICAgICAgaW5jbHVkZSA8bXlzcWwvbXlzcWxkX2Vycm9yLmg+Ci0rIyAgICAgICBpbmNsdWRl IDxteXNxbC9lcnJtc2cuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8bXlzcWxkX2Vycm9y Lmg+Ci0rIyAgICAgICBpbmNsdWRlIDxlcnJtc2cuaD4KLSsjZW5kaWYKLSAKLSB1c2luZyBuYW1l c3BhY2Ugc29jaTsKLSB1c2luZyBuYW1lc3BhY2Ugc29jaTo6dGVzdHM7Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNw cAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8t dHlwZS5jcHAJMjAwOS0wNS0wNiAwMTozMjo0MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5 LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTksNyArOSwxMyBAQAotICNkZWZp bmUgU09DSV9NWVNRTF9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1teXNxbC5oIgotICNpbmNsdWRl ICJjb21tb24uaCIKLS0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKy8vCi0rI2lmIGRlZmlu ZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2Np LXBsYXRmb3JtLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSsjZW5k aWYKLSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotIAotICNpZmRlZiBfTVNDX1ZFUgotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCTIwMDktMDUtMDYgMDE6MzI6 NDAuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Jsb2IuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAt Nyw3ICs3LDEzIEBACi0gCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0gI2luY2x1ZGUgImVy cm9yLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4K LSsjZWxzZQotKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVk ZSA8Y3N0cmluZz4KLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFt IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbQotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAw MDAwICswMjAwCi1AQCAtMCwwICsxLDI3IEBACi0rIyMgYmFja2VuZHMvb3JhY2xlIHN1Yi1kaXJl Y3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5jbHVkZSAk KHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KLSsKLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0raWYgSEFWRV9PUkFDTEUKLStsaWJfTFRMSUJS QVJJRVM9IGxpYnNvY2lfb3JhY2xlLmxhCi0rCi0rbGlic29jaV9vcmFjbGVfbGFfU09VUkNFUz0g JChiY2tfb3JhY2xlX2hfc291cmNlcykgJChiY2tfb3JhY2xlX2NjX3NvdXJjZXMpIAotK2xpYnNv Y2lfb3JhY2xlX2xhX0NYWEZMQUdTID0gJChPUkFDTEVfT0NJX0NGTEFHUykKLStsaWJzb2NpX29y YWNsZV9sYV9MSUJBREQgPQotK2xpYnNvY2lfb3JhY2xlX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9P U1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIpIFwKLSsJJChPUkFDTEVfT0NJX0xERkxBR1MpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OKQotKwotK25vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKLStlbmRpZgotK2lm IFNPQ0lfSEVBREVSU19CVVJJRUQKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZQotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRl ZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNp YyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMK LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNp YwkyMDA5LTA1LTA2IDAxOjMyOjQwLjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsOTUgKzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2 YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0Ci0tIyB2 YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0 IGl0IGFjY29yZGluZ2x5LgotLQotLU9SQUNMRUlOQ0xVREVESVIgPSAtSS91c3IvbGliL29yYWNs ZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9yZGJtcy9wdWJsaWMKLS0KLS0j IFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVu dmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50 aWMgLVduby1sb25nLWxvbmcKLS1DWFhGTEFHU1NPID0gJHtDWFhGTEFHU30gLWZQSUMKLS1JTkNM VURFRElSUyA9IC1JLi4vLi4vY29yZSAke09SQUNMRUlOQ0xVREVESVJ9Ci0tCi0tT0JKRUNUUyA9 IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5v IFwKLS0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8g dmVjdG9yLXVzZS10eXBlLm8gXAotLQllcnJvci5vCi0tCi0tT0JKRUNUU1NPID0gYmxvYi1zLm8g ZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCi0tCXN0YW5kYXJkLWludG8tdHlw ZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8gXAotLQl2ZWN0b3ItaW50 by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGVycm9yLXMubwotLQotLWxpYnNvY2lfb3Jh Y2xlLmEgOiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQotLXNvY2ktb3Jh Y2xlLm8gOiBzb2NpLW9yYWNsZS5jcHAgCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCQotLWJsb2IubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tZXJyb3IubyA6IGVycm9yLmNwcAot LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWZhY3Rv cnkubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9Ci0tCi0tcm93LWlkLm8gOiByb3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lvbi5vIDogc2Vzc2lvbi5jcHAK LS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFu ZGFyZC1pbnRvLXR5cGUubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0g LWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11c2UtdHlwZS5v IDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLWludG8t dHlwZS5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItdXNlLXR5cGUubyA6IHZlY3Rvci11c2Ut dHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K LS0KLS0KLS1zaGFyZWQgOiAke09CSkVDVFNTT30KLS0JJHtDT01QSUxFUn0gLXNoYXJlZCAtbyBs aWJzb2NpX29yYWNsZS5zbyAke09CSkVDVFNTT30KLS0Jcm0gKi5vCi0tCi0tYmxvYi1zLm8gOiBi bG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9Ci0tCi0tZXJyb3Itcy5vIDogZXJyb3IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1mYWN0b3J5LXMubyA6IGZhY3Rv cnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURF RElSU30KLS0KLS1yb3ctaWQtcy5vIDogcm93LWlkLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lvbi1zLm8gOiBzZXNz aW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLXMubyA6IHN0YW5kYXJkLWludG8tdHlwZS5j cHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQotLQotLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0t c3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci1pbnRvLXR5cGUtcy5vIDog dmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNl LXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mICoubyBsaWJzb2NpX29yYWNsZS5hIGxp YnNvY2lfb3JhY2xlLnNvCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9vcmFjbGUvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFj bGUvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4JMjAwOS0w NS0wNiAwMTozMTo0OC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsODAwIEBACi0rIyBNYWtl ZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCi0r IyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2 LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBU aGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJk aXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lP TisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFs bF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwot K2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0g JChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQot K05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoK LStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RB TEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAK LStESVNUX0NPTU1PTiA9ICQoYW1fX25vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkgXAot KwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNk aXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBz b2NpL2JhY2tlbmRzL29yYWNsZQotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwu bTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3Qu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9w b3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxf bTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStt a2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9i dWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rYW1fX3ZwYXRo X2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58Lnxn J2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9 YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0k JHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBgZWNobyAkJHAgfCBzZWQgLWUgJ3N8 Xi4qL3x8J2A7Ci0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERF U1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLStsaWJMVExJQlJBUklFU19JTlNUQUxMID0gJChJTlNU QUxMKQotK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMpCi0rbGlic29jaV9vcmFjbGVf bGFfREVQRU5ERU5DSUVTID0KLSthbV9fbGlic29jaV9vcmFjbGVfbGFfU09VUkNFU19ESVNUID0g IFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5oIFwKLSsJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oIFwKLSsJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvcm93LWlkLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc2Vzc2lvbi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc3RhdGVtZW50LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSthbV9fb2JqZWN0c18xID0KLSthbV9fb2Jq ZWN0c18yID0gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJv ci5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8gbGlic29jaV9vcmFjbGVfbGEt cm93LWlkLmxvIFwKLSsJbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBcCi0rCWxpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXN0 YW5kYXJkLXVzZS10eXBlLmxvIFwKLSsJbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIFwK LSsJbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfb3Jh Y2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbwotK0BIQVZFX09SQUNMRV9UUlVFQGFtX2xpYnNvY2lf b3JhY2xlX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpIFwKLStASEFWRV9PUkFDTEVfVFJV RUAJJChhbV9fb2JqZWN0c18yKQotK2xpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMgPSAkKGFtX2xp YnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpCi0rbGlic29jaV9vcmFjbGVfbGFfTElOSyA9ICQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAt LW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIFwKLSsJJChsaWJzb2NpX29yYWNsZV9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1v ICRACi0rQEhBVkVfT1JBQ0xFX1RSVUVAYW1fbGlic29jaV9vcmFjbGVfbGFfcnBhdGggPSAtcnBh dGggJChsaWJkaXIpCi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9i dWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9k ZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLStDWFhDT01QSUxFID0gJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01Q SUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZM QUdTKSAkKENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9 bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwK LSsJJChMREZMQUdTKSAtbyAkQAotK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkkKENQUEZMQUdTKSAkKEFN X0NGTEFHUykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDQykg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAkKENDKQotK0xJ TksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgXAotKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9M REZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJChsaWJzb2NpX29yYWNs ZV9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfb3JhY2xlX2xhX1NP VVJDRVNfRElTVCkKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVj dXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBp bnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwt ZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUg aW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJz LXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1 cnNpdmUKLSthbV9fbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0gIFwKLSsJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rbm9iYXNlX3BrZ2lu Y2x1ZGVIRUFERVJTX0lOU1RBTEwgPSAkKGluc3RhbGxfc2hfREFUQSkKLStIRUFERVJTID0gJChu b2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9z dGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJz aXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0g Y3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NP TU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStwa2dpbmNs dWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRB UiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVB REVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AK LStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBA Qk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxF U1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJA Ci0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIg PSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1Rf UkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJ T05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NU X1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9O ID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAot K0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AK LStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBD UFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRf VkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hY Q1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AK LStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQ RElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0VDSE8gPSBARUNIT0AKLStFQ0hPX0MgPSBA RUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9 IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0Y3NyA9IEBGNzdACi0rRkZMQUdTID0gQEZG TEFHU0AKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lP TkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9 IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJ TlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0g PSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpT ID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMTl9T ID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5G T0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AK LStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElS U0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9IEBN WVNRTF9WRVJTSU9OQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRVhUID0gQE9CSkVYVEAKLStP UkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVf T0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAot K09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rUEFDS0FHRSA9IEBQ QUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5M SUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFL RSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAot K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBA YWNfY3RfQ1hYQAotK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACi0rYW1fX2luY2x1ZGUgPSBAYW1f X2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVv dGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1f X3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxp YXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9 IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0g QGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9v dGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2Vu X29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlw c19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLSto b3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhv c3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRv ckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2lu Zm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sg PSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNk aXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3Rh dGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5j bHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0g QHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25h bWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBz ZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNy Y2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdl dF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1 aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1f Q1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStiY2tfb3JhY2xl X2hfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvZXJyb3IuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3NvY2ktb3JhY2xlLmgKLSsKLStiY2tfb3JhY2xlX2NjX3NvdXJjZXMgPSBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAgXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRh cmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK01BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gLiB0ZXN0Ci0rQEhBVkVfT1JBQ0xF X1RSVUVAbGliX0xUTElCUkFSSUVTID0gbGlic29jaV9vcmFjbGUubGEKLStASEFWRV9PUkFDTEVf VFJVRUBsaWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTID0gJChiY2tfb3JhY2xlX2hfc291cmNlcykg JChiY2tfb3JhY2xlX2NjX3NvdXJjZXMpIAotK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNvY2lfb3Jh Y2xlX2xhX0NYWEZMQUdTID0gJChPUkFDTEVfT0NJX0NGTEFHUykKLStASEFWRV9PUkFDTEVfVFJV RUBsaWJzb2NpX29yYWNsZV9sYV9MSUJBREQgPSAKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2Np X29yYWNsZV9sYV9MREZMQUdTID0gXAotK0BIQVZFX09SQUNMRV9UUlVFQAkkKEJPT1NUX0xJQlMp ICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCi0r QEhBVkVfT1JBQ0xFX1RSVUVACSQoT1JBQ0xFX09DSV9MREZMQUdTKSBcCi0rQEhBVkVfT1JBQ0xF X1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStASEFW RV9PUkFDTEVfVFJVRUBub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rQFNPQ0lfSEVBREVSU19CVVJJRURf RkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStAU09DSV9IRUFERVJTX0JV UklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlCi0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzog LmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5t ayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNl ICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo IFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlk b25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBz b2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBc Ci0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlCi0r LlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZp Zy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwK LSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGly KS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bf c3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FM X000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0raW5zdGFsbC1saWJMVExJQlJBUklF UzogJChsaWJfTFRMSUJSQVJJRVMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIk KGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCi0rCUBsaXN0PSck KGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1m ICQkcDsgdGhlbiBcCi0rCSAgICBmPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgICAgZWNobyAiICQo TElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFs bCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAnJCRwJyAn JChERVNURElSKSQobGliZGlyKS8kJGYnIjsgXAotKwkgICAgJChMSUJUT09MKSAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNf SU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICIkJHAiICIkKERFU1RESVIpJChsaWJkaXIp LyQkZiI7IFwKLSsJICBlbHNlIDo7IGZpOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtbGliTFRM SUJSQVJJRVM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJB UklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBwPSQoYW1fX3N0cmlwX2RpcikgXAot KwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJHAnIjsgXAotKwkg ICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5p bnN0YWxsIHJtIC1mICIkKERFU1RESVIpJChsaWJkaXIpLyQkcCI7IFwKLSsJZG9uZQotKwotK2Ns ZWFuLWxpYkxUTElCUkFSSUVTOgotKwktdGVzdCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBy bSAtZiAkKGxpYl9MVExJQlJBUklFUykKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZv ciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9d KiQkfHwnYCI7IFwKLSsJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKLSsJICBl Y2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCi0rCSAgcm0gLWYgIiQke2Rp cn0vc29fbG9jYXRpb25zIjsgXAotKwlkb25lCi0rbGlic29jaV9vcmFjbGUubGE6ICQobGlic29j aV9vcmFjbGVfbGFfT0JKRUNUUykgJChsaWJzb2NpX29yYWNsZV9sYV9ERVBFTkRFTkNJRVMpIAot KwkkKGxpYnNvY2lfb3JhY2xlX2xhX0xJTkspICQoYW1fbGlic29jaV9vcmFjbGVfbGFfcnBhdGgp ICQobGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUykgJChsaWJzb2NpX29yYWNsZV9sYV9MSUJBREQp ICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkK LSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt YmxvYi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5QbG9AYW1fX3F1b3RlQAotK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1mYWN0b3J5LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5QbG9AYW1f X3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0 YW5kYXJkLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2Ut dHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAK LStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12 ZWN0b3ItdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5U cG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQq LlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCou VHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cp ICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJ TEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBs bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0 PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUp IC1jIC1vICRAICQ8Ci0rCi0rbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xl X2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv YmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1i bG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lf b3JhY2xlX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCi0rCi0r bGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvZXJyb3IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLWVycm9yLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJy b3IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1lcnJvci5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlBsbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9s YS1lcnJvci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAKLSsKLStsaWJz b2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2ZhY3RvcnkuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtZmFjdG9y eS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5 LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LWZhY3RvcnkuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAnIG9iamVjdD0n bGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWZhY3Rvcnku bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvZmFjdG9yeS5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyAtTUQg LU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJz b2NpX29yYWNsZV9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlk LmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNs ZV9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXNl c3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24u VHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Np b24uVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlBsbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Np b24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwCi0rCi0rbGli c29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRv LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJk LWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBl LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJk LWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBl LlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGli c29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAot KwotK2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNs ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJk LXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFu ZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRh cmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUu VHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29j aV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3Jh Y2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFu ZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0rCi0rbGli c29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVf bGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0 YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lf b3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlRw byAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Zl Y3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92 ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50 by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS92ZWN0b3ItaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2Ut dHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xh LXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11 c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5Q bG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xp YnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9v cmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSsKLSttb3N0bHlj bGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAt cmYgLmxpYnMgX2xpYnMKLStpbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUzogJChub2Jh c2VfcGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAi JChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRp cikiCi0rCUAkKGFtX192cGF0aF9hZGpfc2V0dXApIFwKLSsJbGlzdD0nJChub2Jhc2VfcGtnaW5j bHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQk cCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgJChhbV9fdnBhdGhf YWRqKSBcCi0rCSAgZWNobyAiICQobm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICck JGQkJHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAotKwkgICQobm9iYXNl X3BrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICIkJGQkJHAiICIkKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVI RUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAJChhbV9fdnBhdGhfYWRqX3NldHVw KSBcCi0rCWxpc3Q9JyQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxp c3Q7IGRvIFwKLSsJICAkKGFtX192cGF0aF9hZGopIFwKLSsJICBlY2hvICIgcm0gLWYgJyQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgcm0gLWYgIiQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJk aXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRo ZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0r IyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVk aXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZp Zy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNl IHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0r IyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNv bW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7 IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJ ICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBc Ci0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNo byAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3Vi ZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rf c2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0r CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVu IiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1h bSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRN QUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7 IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9u ZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0q IHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAq KSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBl bHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsg XAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNp dmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAk JHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJ ICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBl dmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vy c2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIi ID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBc Ci0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAg ZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtdHB5ID0gMTsgfSBc Ci0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzog dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsg XAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBl bXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwK LSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHRhZ3M9 IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZp OyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3Mk JHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1 ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0 YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMp ICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFn cz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJ ICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAot KwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FS R1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9f Y2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwK LSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdz OgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0n JChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxl ICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2Rp cikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAg ICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQk ZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7 IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAg ICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIk KGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICAgIGRpc3RkaXI9 YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIHRvcF9kaXN0ZGlyPWAkKGFt X19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgKGNkICQkc3ViZGlyICYmIFwK LSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGly PSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGly IiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9 OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsg XAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSth bGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKLStpbnN0YWxsZGlyczog aW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQo REVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJ ICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0 YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vy c2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDog dW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAk KEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3Rh bGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dS QU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSki IElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0r CSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5z dGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0 Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0g LWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgot KwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2Ui Ci0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29s cyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBy bSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsK LStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0 b29sIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNp dmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4t YW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlz dGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRt bDogaHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06 Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUwot KwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWV4ZWMt YW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRt bC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsK LStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06 Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJt IC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFt OiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46 IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1j b21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0r cGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsK LStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyBcCi0r CXVuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKLSsKLSsuTUFLRTogJChSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWlu c3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVD VVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1h bSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGli dG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWNvbXBp bGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFn cyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3Rh bGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1k dmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKLSsJaW5zdGFsbC1pbmZvLWFt IGluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLW5vYmFzZV9w a2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwt cHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxj aGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJ bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUg XAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBw cyBwcy1hbSBcCi0rCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBc Ci0rCXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVI RUFERVJTCi0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBH TlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0 ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JU OgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2kt b3JhY2xlLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3Jh Y2xlLmgKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9y YWNsZS5oCTIwMDktMDUtMDYgMDE6MzI6NDAuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgJMjAwOS0wNC0xNiAx OTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yMiw5ICsyMiwxNCBAQAotICNpZm5kZWYgU09D SV9PUkFDTEVfREVDTAotICMgZGVmaW5lIFNPQ0lfT1JBQ0xFX0RFQ0wKLSAjZW5kaWYKLS0KLS0j aW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0tI2luY2x1ZGUgPG9jaS5oPiAvLyBPQ0kKLSsvLwot KyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvc29jaS1iYWNrZW5kLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5o PgotKyNlbmRpZgotKy8vCi0rI2luY2x1ZGUgPG9jaS5oPiAvLyBPQ0kgKE9yYWNsZSBjbGllbnQp Ci0gI2luY2x1ZGUgPHZlY3Rvcj4KLSAKLSAjaWZkZWYgX01TQ19WRVIKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1rIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAt MCwwICsxLDE0IEBACi0rYmNrX29yYWNsZV9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rYmNrX29yYWNsZV9jY19z b3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9i bG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vy cm9yLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Zh Y3RvcnkuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv cm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlw ZS5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA1LTA2IDAxOjMyOjQw LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAw ICswMjAwCi1AQCAtNywxMCArNywxOCBAQAotIAotICNkZWZpbmUgU09DSV9PUkFDTEVfU09VUkNF Ci0gI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0tI2luY2x1ZGUgImJsb2IuaCIKLSAjaW5jbHVk ZSAiZXJyb3IuaCIKLS0jaW5jbHVkZSAicm93aWQuaCIKLS0jaW5jbHVkZSAic3RhdGVtZW50Lmgi Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVk ZSA8c29jaS9jb3JlL2Jsb2IuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9yb3dpZC5o PgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVudC5oPgotKyNlbHNlCi0rIyAg ICAgICBpbmNsdWRlIDxibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxyb3dpZC5oPgotKyMgICAg ICAgaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2N0eXBl PgotICNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJpbmc+Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlw ZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFy ZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0wNiAwMTozMjo0MC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtNywxMCArNywxOCBA QAotIAotICNkZWZpbmUgc29jaV9PUkFDTEVfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xl LmgiCi0tI2luY2x1ZGUgImJsb2IuaCIKLSAjaW5jbHVkZSAiZXJyb3IuaCIKLS0jaW5jbHVkZSAi cm93aWQuaCIKLS0jaW5jbHVkZSAic3RhdGVtZW50LmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJ X0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jsb2IuaD4KLSsj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9yb3dpZC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29j aS9jb3JlL3N0YXRlbWVudC5oPgotKyNlbHNlCi0rIyAgICAgICBpbmNsdWRlIDxibG9iLmg+Ci0r IyAgICAgICBpbmNsdWRlIDxyb3dpZC5oPgotKyMgICAgICAgaW5jbHVkZSA8c3RhdGVtZW50Lmg+ Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2N0eXBlPgotICNpbmNsdWRlIDxjc3RkaW8+Ci0g I2luY2x1ZGUgPGNzdHJpbmc+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9vcmFjbGUvc3RhdGVtZW50LmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAJMjAwOS0wNS0wNiAwMTozMjo0MC4wMDAwMDAwMDAgKzAy MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50 LmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTksNyArOSwxMyBA QAotIAotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotICNpbmNsdWRlICJlcnJvci5oIgotLSNp bmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19C VVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+Ci0rI2Vs c2UKLSsjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUg PGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUu YW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUu YW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2Vm aWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0wNC0x NiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMjIgQEAKLSsjIyBjb3JlIHN1 Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5j bHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4KLSsKLStpZiBIQVZFX09SQUNMRQotKyAgVEVTVF9PUkFDTEUgPSB0ZXN0X29yYWNs ZQotKwotK2lmIFJVTl9URVNUUwotKyAgbm9pbnN0X1BST0dSQU1TID0gJChURVNUX09SQUNMRSkK LStlbmRpZgotKwotK3Rlc3Rfb3JhY2xlX1NPVVJDRVMgPSAkKG9yYWNsZV90ZXN0X2NjX3NvdXJj ZXMpCi0rdGVzdF9vcmFjbGVfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykgJChPUkFDTEVfT0NJ X0NGTEFHUykKLSt0ZXN0X29yYWNsZV9MREFERCA9Ci0rdGVzdF9vcmFjbGVfTERGTEFHUyA9ICQo dG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0b3Bf YnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2xpYnNvY2lfb3JhY2xlLmxhIFwKLSsJCSQo T1JBQ0xFX09DSV9MREZMQUdTKQotK2VuZGlmCi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURF UlMgPSAkKG9yYWNsZV90ZXN0X2hfc291cmNlcykKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYwkyMDA5 LTA1LTA2IDAxOjMyOjQxLjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSwyMyArMCwwIEBACi0tIyBUaGUgZm9sbG93aW5nIHZh cmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQgaXRzIGNvcnJlY3QKLS0jIHZh bHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQg aXQgYWNjb3JkaW5nbHkuCi0tCi0tT1JBQ0xFSU5DTFVERURJUiA9IC1JL3Vzci9saWIvb3JhY2xl L3hlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMC4yLjAvc2VydmVyL3JkYm1zL3B1YmxpYyAKLS1PUkFD TEVMSUJESVIgPSAtTC91c3IvbGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4w L3NlcnZlci9saWIgCi0tT1JBQ0xFTElCUyA9IC1sY2xudHNoIC1sbm56MTAKLS0KLS0jIFRoZSBy ZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25t ZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVdu by1sb25nLWxvbmcKLS1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlIC1JLi4vLi4v Li4vY29yZS90ZXN0ICR7T1JBQ0xFSU5DTFVERURJUn0KLS1MSUJESVJTID0gLUwuLiAtTC4uLy4u Ly4uL2NvcmUgJHtPUkFDTEVMSUJESVJ9Ci0tTElCUyA9IC1sc29jaV9jb3JlIC1sc29jaV9vcmFj bGUgLWxkbCAtbGJvb3N0X2RhdGVfdGltZSAke09SQUNMRUxJQlN9Ci0tCi0tCi0tdGVzdC1vcmFj bGUgOiB0ZXN0LW9yYWNsZS5jcHAgCi0tIy4uLy4uLy4uL2NvcmUvdGVzdC9jb21tb24tdGVzdHMu aAotLQkke0NPTVBJTEVSfSAtbyAkQCAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfSAke0xJ QkRJUlN9ICR7TElCU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mICoubyB0ZXN0LW9yYWNsZQot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFr ZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFr ZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuaW4JMjAw OS0wNS0wNiAwMTozMTo0OS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTE3IEBACi0rIyBN YWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0u Ci0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAx OTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwg MjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r IyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0r IyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJk aXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikv QFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBB UkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0 Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NS SVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEp Ci0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxM ID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNU QUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRf dHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9 ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHNyY2Rp cikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK0BIQVZFX09SQUNM RV9UUlVFQEBSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSAkKGFtX19FWEVFWFRfMSkK LStzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0Ci0rQUNMT0NBTF9NNCA9ICQodG9w X3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9j cHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBz ID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJ JChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklH X0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJ TEVTID0KLStASEFWRV9PUkFDTEVfVFJVRUBhbV9fRVhFRVhUXzEgPSB0ZXN0X29yYWNsZSQoRVhF RVhUKQotK1BST0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCi0rYW1fX3Rlc3Rfb3JhY2xlX1NP VVJDRVNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC90ZXN0LW9yYWNsZS5jcHAKLSthbV9fb2JqZWN0c18xID0gdGVzdF9vcmFjbGUtdGVzdC1vcmFj bGUuJChPQkpFWFQpCi0rQEhBVkVfT1JBQ0xFX1RSVUVAYW1fdGVzdF9vcmFjbGVfT0JKRUNUUyA9 ICQoYW1fX29iamVjdHNfMSkKLSt0ZXN0X29yYWNsZV9PQkpFQ1RTID0gJChhbV90ZXN0X29yYWNs ZV9PQkpFQ1RTKQotK3Rlc3Rfb3JhY2xlX0RFUEVOREVOQ0lFUyA9Ci0rdGVzdF9vcmFjbGVfTElO SyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9P TEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSBcCi0r CSQoQ1hYRkxBR1MpICQodGVzdF9vcmFjbGVfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0RF RkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStk ZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBm aWxlc19tYXliZSA9IGRlcGZpbGVzCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwK LSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykK LStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChB TV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8g JEAKLStTT1VSQ0VTID0gJCh0ZXN0X29yYWNsZV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQo YW1fX3Rlc3Rfb3JhY2xlX1NPVVJDRVNfRElTVCkKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBj dGFncwotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFS QAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVU T0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NG TEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRF X1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElC QAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9M SUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJA Ci0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0r Qk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJ QiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0g QEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1Rf VkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJ T05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0g QENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRf Q0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09O RklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0g QENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hY REVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhf VyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZ TVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0r RUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAot K0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dF TkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAg PSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExf REFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NS SVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxM X1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JK U0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AK LStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElS X1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NP TkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FM X0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJ T05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJT ID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdT QAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09D SV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0r UEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0g QFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNL QUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNL QUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9 IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBA UE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AK LStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxf VkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1f UkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9N QUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFE RVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFO RCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGly ID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9i dWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bf c3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhA Ci0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK LSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0r YmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29z QAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJA Ci0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2Rp ZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9z dEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0r aG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxk aXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBp bmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9v a0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStt YW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0g QG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAot K3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2Rp ciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStz aGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5 c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAot K3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBA dG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9 IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK29yYWNsZV90ZXN0X2hfc291cmNl cyA9IAotK29yYWNsZV90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgotK0BIQVZFX09SQUNMRV9UUlVFQFRFU1RfT1JBQ0xFID0gdGVzdF9vcmFjbGUK LStASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9TT1VSQ0VTID0gJChvcmFjbGVfdGVzdF9j Y19zb3VyY2VzKQotK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0NYWEZMQUdTID0gJChC T09TVF9DRkxBR1MpICQoT1JBQ0xFX09DSV9DRkxBR1MpCi0rQEhBVkVfT1JBQ0xFX1RSVUVAdGVz dF9vcmFjbGVfTERBREQgPSAKLStASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9MREZMQUdT ID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCi0rQEhB VkVfT1JBQ0xFX1RSVUVACQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvbGli c29jaV9vcmFjbGUubGEgXAotK0BIQVZFX09SQUNMRV9UUlVFQAkJJChPUkFDTEVfT0NJX0xERkxB R1MpCi0rCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5s byAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFt ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1f X2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAotKwkJ JiYgZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAot KwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxl Ci0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4g JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNv bmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7 IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xP Q0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY2xlYW4tbm9pbnN0UFJP R1JBTVM6Ci0rCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKLSsJICBmPWBlY2hvICQkcHxzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCi0rCSAgZWNobyAi IHJtIC1mICQkcCAkJGYiOyBcCi0rCSAgcm0gLWYgJCRwICQkZiA7IFwKLSsJZG9uZQotK3Rlc3Rf b3JhY2xlJChFWEVFWFQpOiAkKHRlc3Rfb3JhY2xlX09CSkVDVFMpICQodGVzdF9vcmFjbGVfREVQ RU5ERU5DSUVTKSAKLSsJQHJtIC1mIHRlc3Rfb3JhY2xlJChFWEVFWFQpCi0rCSQodGVzdF9vcmFj bGVfTElOSykgJCh0ZXN0X29yYWNsZV9PQkpFQ1RTKSAkKHRlc3Rfb3JhY2xlX0xEQUREKSAkKExJ QlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0r ZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xl LlBvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hY Q09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikv JCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9i amVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxF KSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENY WENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAk KENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNw cC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQg LU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0r Ci0rdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0 X29yYWNsZS10ZXN0LW9yYWNsZS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X29yYWNsZS10 ZXN0LW9yYWNsZS5UcG8gLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJ UikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0 LW9yYWNsZS5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBv YmplY3Q9J3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NM QVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVz dC1vcmFjbGUuY3BwCi0rCi0rdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiAtTUQgLU1QIC1NRiAkKERF UERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qt b3JhY2xlLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZR1BB VEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv dGVzdC1vcmFjbGUuY3BwJzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQ RElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRl c3Qtb3JhY2xlLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAn IG9iamVjdD0ndGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3Bw JzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAK LSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRv b2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAot KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtdHB5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdz OiBUQUdTCi0rCi0rVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3 ZGA7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJ ICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7 IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5 X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVU QUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFH UwotK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc Ci0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VT KSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkg aW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBl bHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAn eyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5v bmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXog IiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NG TEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1 bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBw d2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdT X0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFH UyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlA c3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRp c3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0r CSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9w c3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxl cyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJ CSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkg ICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBk byBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBl bHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBc Ci0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAot KwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGly KTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRp ciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRp c3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlz dGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZp bGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBh bGwtYW0KLStjaGVjazogY2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCi0r aW5zdGFsbGRpcnM6Ci0raW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3RhbGwtZXhlYzogaW5zdGFs bC1leGVjLWFtCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KLSt1bmluc3RhbGw6IHVu aW5zdGFsbC1hbQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VG TEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazog aW5zdGFsbGNoZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFH UykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0 YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9G TEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RB TExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xl YW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgot KwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVB Tl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNv bW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRl bGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgot KwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5F UkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVy aWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCi0rCW1vc3RseWNsZWFuLWFt Ci0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwkt cm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxl IGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1hbQot KwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raW5mbzogaW5mby1hbQotKwotK2lu Zm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2 aS1hbQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRt bC1hbQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1tYW46 Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wczogaW5zdGFs bC1wcy1hbQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWlu dGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxl Ci0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFt OiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVh bi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0r Ci0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3Rh bGwtc3RyaXAKLSsKLSsuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2st YW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJP R1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKLSsJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdl bmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBk dmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCi0rCWluc3RhbGwgaW5zdGFsbC1hbSBp bnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKLSsJaW5zdGFsbC1kdmkt YW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAotKwlpbnN0YWxs LWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCi0rCWlu c3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCi0rCWlu c3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCi0r CW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwK LSsJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxp YnRvb2wgXAotKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1h bQotKwotK0BTRVRfTUFLRUAKLSsKLSsjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQob3Jh Y2xlX3Rlc3RfaF9zb3VyY2VzKQotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUg bWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0g bGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291 cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3Vy Y2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9z b3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0 LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyIEBACi0rb3JhY2xlX3Rl c3RfaF9zb3VyY2VzID0KLStvcmFjbGVfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNw cAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1v cmFjbGUuY3BwCTIwMDktMDUtMDYgMDE6MzI6NDEuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCTIw MDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtNSw5ICs1LDE3IEBACi0gLy8g aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQotIC8vCi0gCi0tI2luY2x1ZGUg InNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKLS0jaW5jbHVkZSAiY29tbW9uLXRl c3RzLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvYmFja2Vu ZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVz dC9jb21tb24tdGVzdHMuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS5oPgotKyMJaW5jbHVk ZSA8c29jaS1vcmFjbGUuaD4KLSsjICAgICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+ Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8aW9zdHJlYW0+Ci0gI2luY2x1ZGUgPHN0cmluZz4K LSAjaW5jbHVkZSA8Y2Fzc2VydD4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5LTA1LTA2 IDAxOjMyOjQwLjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAw MDAwMDAwMCArMDIwMAotQEAgLTcsOCArNywxNCBAQAotIAotICNkZWZpbmUgc29jaV9PUkFDTEVf U09VUkNFCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5o IgotICNpbmNsdWRlICJlcnJvci5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JV UklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KLSsjZWxzZQot KyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2N0eXBl PgotICNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJpbmc+Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0KLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDUu MDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDMwIEBACi0rIyMgYmFja2VuZHMvcG9zdGdyZXNx bCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgot K2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9 IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAotKwotKyNFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCi0rCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotKwotK2lmIEhBVkVfUE9TVEdSRVNRTAotK2xp Yl9MVExJQlJBUklFUz0gbGlic29jaV9wb3N0Z3Jlc3FsLmxhCi0rCi0rbGlic29jaV9wb3N0Z3Jl c3FsX2xhX1NPVVJDRVM9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jl c3FsX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUyA9ICQoUE9T VEdSRVNRTF9DRkxBR1MpCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCA9Ci0rbGlic29j aV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRF X1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5m byAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0r ZW5kaWYKLStpZiBTT0NJX0hFQURFUlNfQlVSSUVECi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5j bHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCi0rZWxzZQotK3NvY2lfaW5jbHVkZV9k aXIgPSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1 ZGVfZGlyKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCTIwMDktMDUtMDYgMDE6MzI6NDEuMDAwMDAwMDAw ICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9N YWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEs OTUgKzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlz IGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIg ZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLVBHU1FM SU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZp bGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1DT01QSUxF UiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tQ1hY RkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCi0tSU5DTFVERURJUlMgPSAtSS4uLy4uL2NvcmUg JHtQR1NRTElOQ0xVREVESVJ9Ci0tCi0tCi0tT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93 LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5vIFwKLS0Jc3RhbmRhcmQtdXNlLXR5 cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8gXAot LQljb21tb24ubwotLQotLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1z Lm8gc2Vzc2lvbi1zLm8gXAotLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10 eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKLS0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9yLXVz ZS10eXBlLXMubyBjb21tb24tcy5vCi0tCi0tCi0tbGlic29jaV9wb3N0Z3Jlc3FsLmEgOiAke09C SkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQotLQotLWJsb2IubyA6IGJsb2IuY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tY29t bW9uLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9Ci0tCi0tZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQubyA6IHJvdy1pZC5jcHAK LS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zZXNz aW9uLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBl LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQot LXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQubyA6IHN0 YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KLS0KLS12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAotLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2Ut dHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQotLQotLQotLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQotLQkke0NP TVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfcG9zdGdyZXNxbC5zbyAke09CSkVDVFNTT30KLS0J cm0gKi5vCi0tCi0tYmxvYi1zLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAk PyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tY29tbW9uLXMubyA6IGNvbW1vbi5j cHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQotLQotLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAg JD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXJvdy1pZC1zLm8gOiByb3ctaWQu Y3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KLS0KLS1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUt cy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAk e0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDog c3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxB R1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAot LQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0t Ci0tdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAotLQkke0NPTVBJ TEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9y LXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLQotLWNsZWFuIDoKLS0Jcm0g LWYgbGlic29jaV9wb3N0Z3Jlc3FsLmEgbGlic29jaV9wb3N0Z3Jlc3FsLnNvCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4J MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluCTIwMDktMDUtMDYgMDE6MzE6 NDkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDgwMiBAQAotKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmls ZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAot KyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2Ug aXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFks IHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFS VElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLSsKLStWUEFUSCA9IEBzcmNkaXJA Ci0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJk aXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhf U0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1t IDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3No X1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9E QVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5T VEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VO SU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1 aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01N T04gPSAkKGFtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkgJChzcmNkaXIpL01ha2VmaWxlLmFt IFwKLSsJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwKLSsJJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9j YWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9v cmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09O RklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9 ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kv Y29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK2FtX192cGF0aF9hZGpfc2V0dXAgPSBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOwotK2FtX192cGF0 aF9hZGogPSBjYXNlICQkcCBpbiBcCi0rICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwg c2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCi0rICAgICopIGY9JCRwOzsgXAotKyAgZXNh YzsKLSthbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2Ft X19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5j bHVkZWRpcikiCi0rbGliTFRMSUJSQVJJRVNfSU5TVEFMTCA9ICQoSU5TVEFMTCkKLStMVExJQlJB UklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ERVBFTkRF TkNJRVMgPQotK2FtX19saWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFU19ESVNUID0gIFwKLSsJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAotKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCBcCi0r CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwIFwKLSsJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCi0rCSQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwIFwKLSsJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCBcCi0rCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0r CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBl LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVu dC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3It aW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3ZlY3Rvci11c2UtdHlwZS5jcHAKLSthbV9fb2JqZWN0c18xID0KLSthbV9fb2JqZWN0c18yID0g bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEt Y29tbW9uLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gXAotKwlsaWJz b2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNl c3Npb24ubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxv IFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIFwKLSsJbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbyBcCi0rCWxpYnNvY2lfcG9zdGdyZXNxbF9s YS12ZWN0b3ItaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11 c2UtdHlwZS5sbwotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBhbV9saWJzb2NpX3Bvc3RncmVzcWxf bGFfT0JKRUNUUyA9ICBcCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQAkkKGFtX19vYmplY3RzXzEp ICQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUyA9ICQoYW1f bGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJ TksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRP T0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKGxpYnNvY2lfcG9zdGdyZXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MREZM QUdTKSAkKExERkxBR1MpIC1vICRACi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGFtX2xpYnNvY2lf cG9zdGdyZXNxbF9sYV9ycGF0aCA9IC1ycGF0aCBcCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQAkk KGxpYmRpcikKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxk ZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNv bXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK0NYWENPTVBJTEUgPSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJTEUg PSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5r ICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkk KExERkxBR1MpIC1vICRACi0rQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCi0rCSQoQ1BQRkxBR1MpICQoQU1fQ0ZM QUdTKSAkKENGTEFHUykKLStMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rQ0NMRCA9ICQoQ0MpCi0rTElOSyA9 ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBc Ci0rCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxB R1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfcG9zdGdyZXNxbF9s YV9TT1VSQ0VTX0RJU1QpCi0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNr LXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNp dmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0 YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWlu Zm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJz aXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxs ZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwt cmVjdXJzaXZlCi0rYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0gIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLStwa2dpbmNs dWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNUQUxMX0hFQURFUikKLStIRUFERVJTID0gJChwa2dp bmNsdWRlX0hFQURFUlMpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1y ZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRh aW5lci1jbGVhbi1yZWN1cnNpdmUKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJ U1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJ U1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK3BrZ2luY2x1ZGVkaXIgPSAk KHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFS QAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVU T0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NG TEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRF X1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElC QAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9M SUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJA Ci0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0r Qk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJ QiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0g QEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1Rf VkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJ T05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0g QENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRf Q0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09O RklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0g QENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hY REVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhf VyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZ TVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0r RUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAot K0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dF TkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAg PSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExf REFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NS SVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxM X1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JK U0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AK LStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElS X1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NP TkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FM X0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJ T05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJT ID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdT QAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09D SV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0r UEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0g QFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNL QUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNL QUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9 IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBA UE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AK LStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxf VkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1f UkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9N QUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFE RVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFO RCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGly ID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9i dWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bf c3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhA Ci0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK LSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0r YmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29z QAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJA Ci0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2Rp ZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9z dEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0r aG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxk aXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBp bmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9v a0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStt YW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0g QG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAot K3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2Rp ciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStz aGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5 c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAot K3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBA dG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9 IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK2Jja19wb3N0Z3Jlc3FsX2hfc291 cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2NvbW1vbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0rCi0rYmNrX3Bvc3RncmVzcWxfY2Nfc291cmNlcyA9IFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1v bi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv ZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1l bnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSsKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAotKwotKyNFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJf TFRMSUJSQVJJRVMgPSBsaWJzb2NpX3Bvc3RncmVzcWwubGEKLStASEFWRV9QT1NUR1JFU1FMX1RS VUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVMgPSAkKGJja19wb3N0Z3Jlc3FsX2hfc291 cmNlcykgJChiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzKSAKLStASEFWRV9QT1NUR1JFU1FMX1RS VUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0gJChQT1NUR1JFU1FMX0NGTEFHUykK LStASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCA9IAot K0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTERGTEFHUyA9IFwK LStASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVf TElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLStASEFWRV9QT1NUR1JFU1FMX1RS VUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStASEFWRV9Q T1NUR1JFU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLStAU09DSV9IRUFERVJTX0JVUklF RF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNf QlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsCi0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotKy5TVUZG SVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGly KS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291 cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJ ICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJ ICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoIFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsg XAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0t Z251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3Ny Y2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9N YWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGlu IFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBl Y2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz OiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLStpbnN0YWxs LWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKLSsJQCQoTk9STUFMX0lOU1RBTEwp Ci0rCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobGliZGly KSIKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAot KwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKLSsJICAgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0r CSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQ X0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCi0rCSAgICAkKExJQlRP T0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChs aWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgIiQkcCIgIiQoREVT VERJUikkKGxpYmRpcikvJCRmIjsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJZG9uZQotKwotK3Vu aW5zdGFsbC1saWJMVExJQlJBUklFUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9 JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIHA9JChhbV9f c3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIp LyQkcCciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRwIjsgXAot Kwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0rCS10ZXN0IC16ICIkKGxpYl9MVExJ QlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQotKwlAbGlzdD0nJChsaWJfTFRM SUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBz ZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBk aXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJ ICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX3Bvc3Rn cmVzcWwubGE6ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpICQobGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJTksp ICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3JwYXRoKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9s YV9PQkpFQ1RTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MSUJBREQpICQoTElCUykKLSsKLStt b3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4t Y29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuUGxvQGFt X19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlBsb0Bh bV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1l bnQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFt X19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAot KwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAg LU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9v bD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0r Ci0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRA IC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwn YAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElS KS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcg b2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJ TEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLSsKLSsuY3BwLmxvOgotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElS KS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBE SVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLStsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv YmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxv Yi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxv Yi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9w b3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNv bW1vbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9u LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21t b24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAkKERFUERJUikvbGlic29jaV9w b3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9u LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAKLSsKLStsaWJzb2Np X3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9y eS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVz cWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2ZhY3RvcnkuY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxf bGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXJvdy1pZC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdy ZXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5UcG8gJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vz c2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nl c3Npb24uY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10 eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAt byBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRw byAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRh cmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlw ZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11 c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10 eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBl LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9i amVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVt ZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9s YS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBv ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlBsbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVt ZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92 ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQg LU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUu VHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10 eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRw byAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xp YnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9z dGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWlu dG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lf cG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11 c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0 b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlw ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK21vc3RseWNsZWFu LWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAu bGlicyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFE RVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIg fHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rCUBsaXN0PSckKHBr Z2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1m ICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGY9JChhbV9f c3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgJyQk ZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgJChwa2dpbmNs dWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikv JCRmIjsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgotKwlAJChO T1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgcm0g LWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgcm0gLWYgIiQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotKyMgVGhpcyBkaXJlY3Rv cnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0r IyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFr ZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0 ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQg aW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3 aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBt YWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUg YG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWxjb209 J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRm IGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWls PXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRh cmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0 IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0r CSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBc Ci0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBc Ci0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFy Z2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIk JGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIk JHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBm IGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAt LVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7 IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRp c3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7 IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsg dGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwK LSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBz Ly1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8g Ik1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBl bHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAo Y2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwK LSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0 YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJ bGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAi JCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg Y3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkg JChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtdHB5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0r Ci0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQ RU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVy ZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7 IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWlu Y2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47 IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAg ICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsg XAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJH UykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUi IHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChB TV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAot KwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAk KFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElT UCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVu aXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAk KENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVy ZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9z cmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3Rj bGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFn cwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3Jj ZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlw PWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwK LSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQk bGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0 cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxk ZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElS X1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRp c3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7 IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZp bGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAot KwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZp bGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2Rp cikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1w UiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZp OyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBc Ci0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8 IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBc Ci0rCSAgZmk7IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxz ZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1L RElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICAg IGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIHRvcF9kaXN0 ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgKGNkICQkc3Vi ZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRv cF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGly LyQkc3ViZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5n dGhfY2hlY2s9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwK LSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1 cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKLStpbnN0 YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBk aXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7 IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRv bmUKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1l eGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3Vu aW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlA JChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQot KwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6 Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NU UklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBf UFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVAp JyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJ UCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoK LSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVT KSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVy cyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3Bl Y2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklM RVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1 cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBj bGVhbi1saWJ0b29sIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVh bi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStk aXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmlj IFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06 Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwot K2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJT Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhl Yy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUwotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1o dG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQot KwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUK LSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGxjaGVjay1h bToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwkt cm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4t YW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVh bjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFu LWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wKLSsK LStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQot KwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVu aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1zdHJp cAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFS R0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNs ZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdz IGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xl YW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIg ZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxs LWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxs LWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGlu c3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1s aWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFt IGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMtYW0g aW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRp cnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4t Z2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xlYW4t Z2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdz IHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwtbGli TFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9NQUtFQAot KyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFs bCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxl YXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdy ZXNxbC5oCTIwMDktMDUtMDYgMDE6MzI6NDEuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAkyMDA5 LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTIyLDkgKzIyLDE0IEBACi0gI2lm bmRlZiBTT0NJX1BPU1RHUkVTUUxfREVDTAotICMgZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9ERUNM Ci0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotLSNpbmNsdWRlIDxsaWJw cS1mZS5oPgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAg IGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8 c29jaS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8bGlicHEtZmUuaD4gLy8g UG9zdEdyZVNRTCBjbGllbnQKLSAjaW5jbHVkZSA8dmVjdG9yPgotIAotICNpZmRlZiBfTVNDX1ZF UgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z b3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc291 cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z b3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCTIwMDktMDQt MTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE0IEBACi0rYmNrX3Bvc3Rn cmVzcWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLStiY2tfcG9zdGdyZXNxbF9jY19zb3Vy Y2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv YmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMDYgMDE6MzI6NDEuMDAwMDAw MDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICsw MjAwCi1AQCAtOCw5ICs4LDE2IEBACi0gI2RlZmluZSBTT0NJX1BPU1RHUkVTUUxfU09VUkNFCi0g I2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5j bHVkZSAicm93aWQuaCIKLS0jaW5jbHVkZSAiYmxvYi5oIgotLSNpbmNsdWRlIDxsaWJwcS9saWJw cS1mcy5oPiAvLyBsaWJwcQotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkK LSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvcm93aWQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMg ICAgICAgaW5jbHVkZSA8cm93aWQuaD4KLSsjZW5kaWYKLSsvLwotKyNpbmNsdWRlIDxsaWJwcS9s aWJwcS1mcy5oPiAvLyBsaWJwcSAoUG9zdEdyZVNRTCBjbGllbnQpCi0gI2luY2x1ZGUgPGNjdHlw ZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlw ZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMDYgMDE6MzI6NDEuMDAwMDAwMDAw ICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAK LUBAIC03LDggKzcsMTQgQEAKLSAKLSAjZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9TT1VSQ0UKLSAj aW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1 ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hF QURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+Ci0rI2Vs c2UKLSsjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8 bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQotICNpbmNsdWRl IDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtl ZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv TWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtl ZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwx OCBAQAotKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5F UkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK2lmIFJVTl9URVNUUwotKyAgbm9pbnN0X1BS T0dSQU1TID0gdGVzdF9wb3N0Z3Jlc3FsCi0rZW5kaWYKLSsKLSt0ZXN0X3Bvc3RncmVzcWxfU09V UkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0NY WEZMQUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0KLSt0ZXN0 X3Bvc3RncmVzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9j b3JlLmxhIC1sZGwgXAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9saWJzb2NpX3Bvc3RncmVzcWwubGEgXAotKwkJJChQT1NUR1JFU1FMX0xERkxBR1MpCi0rCi0r I25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMp Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0wNiAwMTozMjo0MS4w MDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLUBAIC0xLDIyICswLDAgQEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3Bl Y2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRl cGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmds eS4KLS0KLS1QR1NRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVkZQotLVBHU1FMTElCRElSID0g LUwvdXNyL2xpYgotLVBHU1FMTElCUyA9IC1scHEKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtl ZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJ TEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1J TkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlL3Rlc3QgLUkuLi8uLi8uLi9jb3JlICR7 UEdTUUxJTkNMVURFRElSfQotLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke1BHU1FM TElCRElSfQotLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfcG9zdGdyZXNxbCAtbGRsICR7UEdT UUxMSUJTfQotLQotLQotLXRlc3QtcG9zdGdyZXNxbCA6IHRlc3QtcG9zdGdyZXNxbC5jcHAKLS0J JHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJT fSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiB0ZXN0LXBvc3RncmVzcWwKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtl ZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv TWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtl ZmlsZS5pbgkyMDA5LTA1LTA2IDAxOjMxOjQ5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1 MTQgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBN YWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7 IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VA Ci0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdF QAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChp bmNsdWRlZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59 JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3No KSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5z dGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElO U1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9S TUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05P Uk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9 IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJ U1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBc Ci0rCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0r QFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfcG9zdGdyZXNxbCQoRVhFRVhU KQotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0Ci0rQUNMT0NBTF9NNCA9 ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215 c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3Vy ZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMp IFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0r Q09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NM RUFOX0ZJTEVTID0KLStQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dSQU1TKQotK2FtX19vYmplY3Rz XzEgPSB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLiQoT0JKRVhUKQotK2FtX3Rlc3Rf cG9zdGdyZXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQotK3Rlc3RfcG9zdGdyZXNxbF9P QkpFQ1RTID0gJChhbV90ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykKLSt0ZXN0X3Bvc3RncmVzcWxf REVQRU5ERU5DSUVTID0KLSt0ZXN0X3Bvc3RncmVzcWxfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAk KENYWExEKSBcCi0rCSQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCi0r CSQodGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKLStERUZBVUxUX0lO Q0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9 ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5 YmUgPSBkZXBmaWxlcwotK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9D WFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQg PSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxB R1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09V UkNFUyA9ICQodGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJCh0ZXN0 X3Bvc3RncmVzcWxfU09VUkNFUykKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJ U1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVY VFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0g QEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAK LStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBC T09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElC QAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NU X0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJP T1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lH TkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09T VF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAK LStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAot K0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AK LStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0g QENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQ UFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRf VkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9 IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQ QVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBA RFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0g QEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9 IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElC UkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAK LStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJ TlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElO U1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BS T0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJT ID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9C SlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtE SVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBN WVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1Mg PSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1F RElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNM RV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNM RV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9O ID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9C VUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0Vf TkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5B TUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJ T05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAot K1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNR TF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JF U1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9 IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9 IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NI RUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklF REAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExP QURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19i dWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9 IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAot K2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3Rf Rjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVh ZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0r YW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0g QGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AK LStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxk X3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRp ciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBA ZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AK LStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4 ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0 X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9 IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRt bGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAot K2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJk aXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBA bG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBA bWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1 ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1f dHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2Rp ckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0 ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIg PSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWls ZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxk ZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3Bf YnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMgPSAK LStwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotK01BSU5UQUlORVJDTEVBTkZJ TEVTID0gTWFrZWZpbGUuaW4KLSt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNx bF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9D RkxBR1MpCi0rdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0gCi0rdGVzdF9wb3N0Z3Jlc3FsX0xERkxB R1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLSsJ CSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0Z3Jl c3FsLmxhIFwKLSsJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQotKwotK2FsbDogYWxsLWFtCi0rCi0r LlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBk ZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJ ICAgICokJGRlcCopIFwKLSsJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0 IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIp ICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtl ZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUg IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtl ZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0r CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSsk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChD T05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY2xlYW4tbm9pbnN0UFJPR1JBTVM6Ci0rCUBsaXN0PSck KG5vaW5zdF9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBmPWBlY2hvICQk cHxzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCi0rCSAgZWNobyAiIHJtIC1mICQkcCAkJGYiOyBc Ci0rCSAgcm0gLWYgJCRwICQkZiA7IFwKLSsJZG9uZQotK3Rlc3RfcG9zdGdyZXNxbCQoRVhFRVhU KTogJCh0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykgJCh0ZXN0X3Bvc3RncmVzcWxfREVQRU5ERU5D SUVTKSAKLSsJQHJtIC1mIHRlc3RfcG9zdGdyZXNxbCQoRVhFRVhUKQotKwkkKHRlc3RfcG9zdGdy ZXNxbF9MSU5LKSAkKHRlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKSAkKHRlc3RfcG9zdGdyZXNxbF9M REFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLiQoT0JK RVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50YWIuYwotKwotK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X3Bvc3RncmVz cWwtdGVzdC1wb3N0Z3Jlc3FsLlBvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8k Ki5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikv JCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8g QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRI X1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQq LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2Jq ZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJ TEUpIC1jIC1vICRAICQ8Ci0rCi0rdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9z dGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBv c3RncmVzcWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9z dGdyZXNxbC5UcG8gLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9z dGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5U cG8gJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG8KLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyBvYmplY3Q9J3Rlc3Rf cG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jl c3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0rCi0rdGVzdF9wb3N0Z3Jlc3Fs LXRlc3QtcG9zdGdyZXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg dGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIp L3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvIC1jIC1vIHRlc3RfcG9zdGdyZXNx bC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFU SF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBv c3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBmaWAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10 ZXN0LXBvc3RncmVzcWwuVHBvICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jl c3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNw cCcgb2JqZWN0PSd0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9iaicgbGlidG9vbD1u byBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jl c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0 Z3Jlc3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNw cCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZmlgCi0rCi0rbW9zdGx5 Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0g LXJmIC5saWJzIF9saWJzCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQo VEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9 IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwot K1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJ CSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVs c2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJ ICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBc Ci0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzog ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FS R1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1f Q1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0r R1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAg JiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhl cmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdT WU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlw PWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0 b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBm b3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAi c3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlw L3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkg ICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9c Ly8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAg OzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlm IHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3Jj ZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGly PWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRl c3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAot KwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAx OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGly IHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmls ZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAg IHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hl Y2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQotK2luc3RhbGxkaXJz OgotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQot K2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0K LSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3Rh bGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVj ay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0r CSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1f RU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6 Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXog IiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0r Ci0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGlu dGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVz IHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXog IiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVT KQotK2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxp YnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAotKwltb3N0bHljbGVhbi1hbQotKwotK2Rpc3Rj bGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2Vm aWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4t Z2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06 Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwot K2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStp bnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsKLStp bnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3Rh bGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsK LStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVh bi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWlu ZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLStt b3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xl YW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbAot KwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgot KwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0r Ci0rLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNs ZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdz IGRpc3RjbGVhbiBcCi0rCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3Rj bGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwg aHRtbC1hbSBpbmZvIGluZm8tYW0gXAotKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRh IGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3RhbGwt ZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFtIGlu c3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBp bnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAotKwlpbnN0YWxsLXN0cmlw IGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAotKwltYWludGFpbmVy LWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCi0rCW1vc3RseWNs ZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKLSsJ cGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VU X01BS0VACi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHBvc3RncmVzcWxfdGVz dF9oX3NvdXJjZXMpCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRv IG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAo Zm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNl cy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291 cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5t awkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyIEBACi0r cG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcyA9Ci0rcG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMg PSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdy ZXNxbC5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0tLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNw cAkyMDA5LTA1LTA2IDAxOjMyOjQxLjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCTIw MDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtNSw5ICs1LDE3IEBACi0gLy8g aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQotIC8vCi0gCi0tI2luY2x1ZGUg InNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCi0tI2luY2x1ZGUgImNvbW1v bi10ZXN0cy5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAg ICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS5o PgotKyMJaW5jbHVkZSA8c29jaS1wb3N0Z3Jlc3FsLmg+Ci0rIyAgICAgICBpbmNsdWRlIDx0ZXN0 L2NvbW1vbi10ZXN0cy5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGlvc3RyZWFtPgotICNp bmNsdWRlIDxzc3RyZWFtPgotICNpbmNsdWRlIDxzdHJpbmc+Ci1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9jb25maWcuaC5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb25maWcu aC5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29uZmlnLmguaW4JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb25m aWcuaC5pbgkyMDA5LTA1LTA2IDAxOjMxOjQ2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwx NDIgQEAKLSsvKiBzb2NpL2NvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFj IGJ5IGF1dG9oZWFkZXIuICAqLwotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3QgbGlicmFyeSBp cyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVAotKwotKy8qIGRlZmluZSBpZiB0aGUg Qm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JP T1NUX0RBVEVfVElNRQotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OkZJTEVTWVNURU0gbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9GSUxFU1lTVEVNCi0rCi0r LyogZGVmaW5lIGlmIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlICov Ci0rI3VuZGVmIEhBVkVfQk9PU1RfSU9TVFJFQU1TCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29z dDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVf Qk9PU1RfUFJPR1JBTV9PUFRJT05TCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6UmVnZXgg bGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9SRUdFWAotKwotKy8q IGRlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUg Ki8KLSsjdW5kZWYgSEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OCi0rCi0rLyogZGVmaW5lIGlmIHRo ZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JP T1NUX1NJR05BTFMKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpUSFJFQUQgbGlicmFyeSBp cyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9USFJFQUQKLSsKLSsvKiBkZWZpbmUg aWYgdGhlIEJvb3N0OjpVbml0X3Rlc3RfZnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlICov Ci0rI3VuZGVmIEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SSwotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8Y21hdGg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZF X0NNQVRICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkZXF1ZT4gaGVhZGVy IGZpbGUuICovCi0rI3VuZGVmIEhBVkVfREVRVUUKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0RMRkNOX0gK LSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZzdHJlYW0+IGhlYWRlciBmaWxl LiAqLwotKyN1bmRlZiBIQVZFX0ZTVFJFQU0KLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0lOVFRZUEVT X0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvbWFuaXA+IGhlYWRlciBm aWxlLiAqLwotKyN1bmRlZiBIQVZFX0lPTUFOSVAKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgPGlvc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9JT1NUUkVB TQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGltaXRzPiBoZWFkZXIgZmls ZS4gKi8KLSsjdW5kZWYgSEFWRV9MSU1JVFMKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPGxpc3Q+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0xJU1QKLSsKLSsvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hcD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVm IEhBVkVfTUFQCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtZW1vcnkuaD4g aGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfTUVNT1JZX0gKLSsKLSsvKiBEZWZpbmUgdG8g MSBpZiBNeVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX01ZU1FM Ci0rCi0rLyogRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNsZSBPQ0kgbGlicmFyeSBpcyBhdmFpbGFi bGUgKi8KLSsjdW5kZWYgSEFWRV9PUkFDTEUKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiBQb3N0Z3Jl U1FMIGxpYnJhcmllcyBhcmUgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfUE9TVEdSRVNRTAot KwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cXVldWU+IGhlYWRlciBmaWxlLiAq LwotKyN1bmRlZiBIQVZFX1FVRVVFCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxzZXQ+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NFVAotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8c3N0cmVhbT4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhB VkVfU1NUUkVBTQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkZXhjZXB0 PiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVERFWENFUFQKLSsKLSsvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYg SEFWRV9TVERJTlRfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGli Lmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NURExJQl9ICi0rCi0rLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmc+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBI QVZFX1NUUklORwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5o PiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVFJJTkdTX0gKLSsKLSsvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYg SEFWRV9TVFJJTkdfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0 YXQuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1lTX1NUQVRfSAotKwotKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwot KyN1bmRlZiBIQVZFX1NZU19UWVBFU19ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfVU5JU1REX0gKLSsK LSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZlY3Rvcj4gaGVhZGVyIGZpbGUuICov Ci0rI3VuZGVmIEhBVkVfVkVDVE9SCi0rCi0rLyogTmFtZSBvZiBwYWNrYWdlICovCi0rI3VuZGVm IFBBQ0tBR0UKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMg Zm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KLSsjdW5kZWYgUEFDS0FHRV9CVUdS RVBPUlQKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICov Ci0rI3VuZGVmIFBBQ0tBR0VfTkFNRQotKwotKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFu ZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KLSsjdW5kZWYgUEFDS0FHRV9TVFJJTkcKLSsK LSsvKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2Uu ICovCi0rI3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQotKwotKy8qIERlZmluZSB0byB0aGUgdmVyc2lv biBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgotKwotKy8qIERl ZmluZSBpZiB5b3Ugd2FudCBleGNlcHRpb25zIGhhbmRsaW5nICovCi0rI3VuZGVmIFNPQ0lfRVhD RVBUSU9OUwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVy IGZpbGVzLiAqLwotKyN1bmRlZiBTVERDX0hFQURFUlMKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5 b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8K LSsjdW5kZWYgVElNRV9XSVRIX1NZU19USU1FCi0rCi0rLyogVmVyc2lvbiBudW1iZXIgb2YgcGFj a2FnZSAqLwotKyN1bmRlZiBWRVJTSU9OCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9jb3JlL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUu YW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYW0JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9j b3JlL01ha2VmaWxlLmFtCTIwMDktMDUtMDYgMDA6Mjg6MTAuMDAwMDAwMDAwICswMjAwCi1AQCAt MCwwICsxLDI5IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAot KwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2Np LXNpbXBsZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKLSsKLStFWFRS QV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rCi0rbGliX0xU TElCUkFSSUVTPSBsaWJzb2NpX2NvcmUubGEKLSsKLStsaWJzb2NpX2NvcmVfbGFfU09VUkNFUz0g JChjb3JlX2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfY29yZV9sYV9D WFhGTEFHUyA9Ci0rbGlic29jaV9jb3JlX2xhX0xJQkFERCA9Ci0rbGlic29jaV9jb3JlX2xhX0xE RkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFS WV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCi0r aWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIp L3NvY2kvY29yZQotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2Vu ZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLSsKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv Y29yZS9NYWtlZmlsZS5iYXNpYwkyMDA5LTA1LTA2IDAxOjMyOjQxLjAwMDAwMDAwMCArMDIwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDc2ICswLDAgQEAKLS1DT01QSUxFUiA9 IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVE RURJUlMgPSAKLS1PQkpTID0gIHNlc3Npb24ubyBzdGF0ZW1lbnQubyByb3cubyB2YWx1ZXMubyBc Ci0tCWludG8tdHlwZS5vIHVzZS10eXBlLm8gXAotLQlibG9iLm8gcm93aWQubyBwcm9jZWR1cmUu byByZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubyByZWYtY291bnRlZC1zdGF0ZW1lbnQubyBcCi0t CW9uY2UtdGVtcC10eXBlLm8gcHJlcGFyZS10ZW1wLXR5cGUubyBlcnJvci5vIHRyYW5zYWN0aW9u Lm8gYmFja2VuZC1sb2FkZXIubyBcCi0tCWNvbm5lY3Rpb24tcG9vbC5vIHNvY2ktc2ltcGxlLm8K LS0KLS0KLS1saWJzb2NpX2NvcmUuYSA6ICR7T0JKU30gCi0tCWFyIHJ2ICRAICQ/Ci0tCXJtICou bwotLQotLXNoYXJlZCA6ICR7T0JKU30gCi0tCSR7Q09NUElMRVJ9IC1mUElDIC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9j b3JlLnNvICR7T0JKU30gCi0tCXJtICoubwotLQotLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVt ZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7 SU5DTFVERURJUlN9Ci0tCi0tcm93Lm8gOiByb3cuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmFsdWVzLm8gOiB2YWx1ZXMuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0taW50by10eXBl Lm8gOiBpbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9Ci0tCi0tdXNlLXR5cGUubyA6IHVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQkKLS1ibG9iLm8gOiBibG9iLmNwcAot LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWVycm9y Lm8gOiBlcnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30KLS0KLS1yb3dpZC5vIDogcm93aWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcHJvY2VkdXJlLm8gOiBwcm9jZWR1cmUuY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNv dW50ZWQtcHJlcGFyZS1pbmZvLm8gOiByZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCi0tCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNvdW50 ZWQtc3RhdGVtZW50Lm8gOiByZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tb25jZS10ZW1wLXR5cGUubyA6 IG9uY2UtdGVtcC10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLXByZXBhcmUtdGVtcC10eXBlLm8gOiBwcmVwYXJlLXRlbXAtdHlwZS5j cHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS10 cmFuc2FjdGlvbi5vIDogdHJhbnNhY3Rpb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tYmFja2VuZC1sb2FkZXIubyA6IGJhY2tlbmQtbG9h ZGVyLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQot LQotLWNvbm5lY3Rpb24tcG9vbC5vIDogY29ubmVjdGlvbi1wb29sLmNwcAotLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNvY2ktc2ltcGxlLm8gOiBz b2NpLXNpbXBsZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lfY29yZS5hIGxpYnNvY2lfY29y ZS5zbwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5pbiBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5pbgkyMDA5 LTA1LTA2IDAxOjMxOjQ5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw4OTQgQEAKLSsjIE1h a2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5hbS4K LSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5 OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAy MDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsj IFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsj IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBB VEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xp YmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJT SU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0 YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1j Ci0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIg PSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUp Ci0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0g OgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5T VEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0 QAotK0RJU1RfQ09NTU9OID0gJChwa2dpbmNsdWRlX0hFQURFUlMpICQoc3JjZGlyKS9NYWtlZmls ZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCi0r CSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaS9jb3JlCi0rQUNM T0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMg PSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1f X2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBF TkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxf c2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0r Q09ORklHX0NMRUFOX0ZJTEVTID0KLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9 YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRqID0gY2Fz ZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRz cmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0 cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbGRp cnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgot K2xpYkxUTElCUkFSSUVTX0lOU1RBTEwgPSAkKElOU1RBTEwpCi0rTFRMSUJSQVJJRVMgPSAkKGxp Yl9MVExJQlJBUklFUykKLStsaWJzb2NpX2NvcmVfbGFfREVQRU5ERU5DSUVTID0KLSthbV9fb2Jq ZWN0c18xID0KLSthbV9fb2JqZWN0c18yID0gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVy LmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLWJsb2IubG8gbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rp b24tcG9vbC5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBsaWJzb2NpX2NvcmVfbGEt aW50by10eXBlLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIFwKLSsJ bGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIFwKLSsJbGlic29jaV9jb3JlX2xh LXByb2NlZHVyZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8ubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIFwKLSsJ bGlic29jaV9jb3JlX2xhLXJvdy5sbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gXAotKwlsaWJz b2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8gXAot KwlsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlv bi5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBsaWJzb2NpX2NvcmVfbGEtdmFs dWVzLmxvCi0rYW1fbGlic29jaV9jb3JlX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpICQo YW1fX29iamVjdHNfMikKLStsaWJzb2NpX2NvcmVfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9j b3JlX2xhX09CSkVDVFMpCi0rbGlic29jaV9jb3JlX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsg JChDWFhMRCkgXAotKwkkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAot KwkkKGxpYnNvY2lfY29yZV9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9J TkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAg PSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21h eWJlID0gZGVwZmlsZXMKLStDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1f Q1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExE ID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK0NP TVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgXAotKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rTFRD T01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxB R1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAkKENDKQotK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUND ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKEND TEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykg LW8gJEAKLStTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfbGFfU09VUkNFUykKLStESVNUX1NPVVJD RVMgPSAkKGxpYnNvY2lfY29yZV9sYV9TT1VSQ0VTKQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxs LXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJz aXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2 aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1 cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBp bnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1y ZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1 cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK3BrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwgPSAk KElOU1RBTExfSEVBREVSKQotK0hFQURFUlMgPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLStSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNp dmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQot K0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJT KQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9T KSAkKEVYVFJBX0RJU1QpCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLStB Q0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NP TkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0g QEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AK LStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklM RVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJ QiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStC T09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0r Qk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9O X0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBC T09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJA Ci0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJ QUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0r Q0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBA Ci0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxB R1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0g QENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NY WCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVA Ci0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZT ID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStF Q0hPID0gQEVDSE9ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VD SE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStG NzcgPSBARjc3QAotK0ZGTEFHUyA9IEBGRkxBR1NACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04g PSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBA SU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JB TSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRA Ci0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMREZM QUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStM SUJUT09MID0gQExJQlRPT0xACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9C SlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FM X0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AK LStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZM QUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTUVESVQgPSBATk1FRElU QAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JB Q0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdT ID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09D SV9WRVJTSU9OQAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQ QUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tB R0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdF X1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NF UEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0g QFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQ T1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9 IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxf VkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNF QAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExA Ci0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE QAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAot K1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fi c19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVp bGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBA YWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9GNzcgPSBAYWNfY3Rf Rjc3QAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBh bV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFt X190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1 aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9 IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1 aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJA Ci0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2Rv Y2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBk dmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVm aXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9z dF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0r aG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1 ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9 IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJA Ci0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0r bG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtk aXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZk aXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIg PSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJl ZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGly QAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0 b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3Ny Y2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkk KHRvcF9zcmNkaXIpCi0rY29yZV9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Jsb2IuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLWV4 Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZ3JlZ29y aWFuLWRhdGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1mdXNp b24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1vcHRpb25hbC5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LXR1cGxlLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmggXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9pbnRvLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50 by10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5 cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlw ZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5oIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVu dC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5nZS5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yb3dzZXQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1iYWNrZW5kLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1jb25maWcuaCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9zb2NpLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3Rh dGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24u aCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24uaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24tdHJhaXRz LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1ob2xkZXIuaCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLXB0ci5oIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3VzZS10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFs dWVzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLWV4Y2hhbmdl LmgKLSsKLStjb3JlX2NjX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlv bi1wb29sLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktc2ltcGxlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0 ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9u LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAotKwotK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0rI0VYVFJB X0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fcm93LmNwcCAuX3NvY2ktc2ltcGxlLmNw cCAuX3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhjaGFuZ2UuaAotK0VYVFJBX0RJU1QgPSAkKEVY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLStsaWJfTFRMSUJSQVJJRVMgPSBsaWJz b2NpX2NvcmUubGEKLStsaWJzb2NpX2NvcmVfbGFfU09VUkNFUyA9ICQoY29yZV9oX3NvdXJjZXMp ICQoY29yZV9jY19zb3VyY2VzKSAKLStsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MgPSAKLStsaWJz b2NpX2NvcmVfbGFfTElCQUREID0gCi0rbGlic29jaV9jb3JlX2xhX0xERkxBR1MgPSBcCi0rCSQo Qk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwot K3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCi0rQFNPQ0lfSEVBREVSU19C VVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStAU09DSV9IRUFE RVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvY29y ZQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAg LmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUu YW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChh bV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChh bV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCi0r CQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsg XAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9j b3JlL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtF KSAtLWdudSAgc29jaS9jb3JlL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2Vm aWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMK LSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0r CSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIp LyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVT X0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19j b25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVw cykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCi0raW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCi0rCUAk KE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQo REVTVERJUikkKGxpYmRpcikiCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBp biAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBcCi0rCSAgICBmPSQoYW1f X3N0cmlwX2RpcikgXAotKwkgICAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwp ICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAnJCRwJyAnJChERVNURElSKSQobGliZGlyKS8kJGYnIjsg XAotKwkgICAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZM QUcpICIkJHAiICIkKERFU1RESVIpJChsaWJkaXIpLyQkZiI7IFwKLSsJICBlbHNlIDo7IGZpOyBc Ci0rCWRvbmUKLSsKLSt1bmluc3RhbGwtbGliTFRMSUJSQVJJRVM6Ci0rCUAkKE5PUk1BTF9VTklO U1RBTEwpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKLSsJICBwPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChE RVNURElSKSQobGliZGlyKS8kJHAnIjsgXAotKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICIkKERFU1RESVIpJChs aWJkaXIpLyQkcCI7IFwKLSsJZG9uZQotKwotK2NsZWFuLWxpYkxUTElCUkFSSUVTOgotKwktdGVz dCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKGxpYl9MVExJQlJBUklFUykKLSsJ QGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGRp cj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwKLSsJICB0ZXN0ICIkJGRp ciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKLSsJICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9j YXRpb25zXCIiOyBcCi0rCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRpb25zIjsgXAotKwlkb25l Ci0rbGlic29jaV9jb3JlLmxhOiAkKGxpYnNvY2lfY29yZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lf Y29yZV9sYV9ERVBFTkRFTkNJRVMpIAotKwkkKGxpYnNvY2lfY29yZV9sYV9MSU5LKSAtcnBhdGgg JChsaWJkaXIpICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMpICQobGlic29jaV9jb3JlX2xhX0xJ QkFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLiQoT0JK RVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50YWIuYwotKwotK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtYmFja2VuZC1sb2FkZXIuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuUGxvQGFtX19x dW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt ZXJyb3IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByZXBhcmUt dGVtcC10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuUGxvQGFtX19xdW90 ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5QbG9AYW1fX3F1b3RlQAotK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cu UGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1z ZXNzaW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5QbG9AYW1fX3F1b3Rl QAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlv bi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXZhbHVlcy5QbG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAt YyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBv ICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8g LWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAt ZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8 J2AKLSsKLSsuY3BwLmxvOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkg LU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRA JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMg LW8gJEAgJDwKLSsKLStsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5UcG8gLWMg LW8gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlRw byAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlBsbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9iYWNrZW5kLWxvYWRlci5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9h ZGVyLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAKLSsKLStsaWJzb2Np X2NvcmVfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWJsb2Iu bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlRwbyAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Js b2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwCi0r Ci0rbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlRwbyAtYyAtbyBsaWJz b2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlRwbyAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG8KLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv Y29ubmVjdGlvbi1wb29sLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1w b29sLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKLSsKLStsaWJz b2NpX2NvcmVfbGEtZXJyb3IubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEt ZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5UcG8g LWMgLW8gbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Vycm9yLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLWVycm9yLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9y LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWVycm9y LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9lcnJvci5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29y ZV9sYS1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8t dHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2lu dG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10 eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9s YS1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9s YS1vbmNlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf Y29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLW9uY2UtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1w LXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10 ZW1wLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt b25jZS10ZW1wLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLW9uY2Ut dGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAt dHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29u Y2UtdGVtcC10eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1wcmVwYXJl LXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByZXBh cmUtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10 ZW1wLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtcHJlcGFyZS10ZW1wLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNw cCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9j b3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9s YS1wcm9jZWR1cmUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXBy b2NlZHVyZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVy ZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5UcG8gJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAn IG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJv Y2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUu Y3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcmVmLWNv dW50ZWQtcHJlcGFyZS1pbmZvLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVm LWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50 ZWQtcHJlcGFyZS1pbmZvLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVk LXByZXBhcmUtaW5mby5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNw cCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUt aW5mby5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yZWYtY291 bnRlZC1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1y ZWYtY291bnRlZC1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRl ZC1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3Vu dGVkLXN0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQuVHBv ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9s YS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0 YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQt c3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1yb3cubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJvdy5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJvdy5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5UcG8gJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1yb3cuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAnIG9iamVjdD0nbGli c29jaV9jb3JlX2xhLXJvdy5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1y b3dpZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5U cG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5QbG8KLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yb3dpZC5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93 aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCi0rCi0rbGli c29jaV9jb3JlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24u Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29y ZV9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc2Vz c2lvbi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtc2Vzc2lvbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAnIG9iamVjdD0n bGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lf Y29yZV9sYS1zb2NpLXNpbXBsZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1w bGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf Y29yZV9sYS1zb2NpLXNpbXBsZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXNvY2ktc2ltcGxlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29j aS1zaW1wbGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtc29jaS1z aW1wbGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAotKwotK2xpYnNvY2lfY29yZV9s YS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXN0 YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0YXRlbWVu dC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAn IG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc3Rh dGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQu Y3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS90cmFuc2FjdGlvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9s YS10cmFuc2FjdGlvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNh Y3Rpb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90 cmFuc2FjdGlvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10 cmFuc2FjdGlvbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyBvYmplY3Q9J2xpYnNv Y2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwCi0r Ci0rbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91 c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5UcG8g JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5 cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5 cGUuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdmFsdWVzLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtdmFsdWVzLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlRwbyAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKLSsKLSttb3N0bHlj bGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAt cmYgLmxpYnMgX2xpYnMKLStpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVf SEVBREVSUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQocGtnaW5jbHVkZWRp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotKwlAbGlzdD0n JChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVz dCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBmPSQo YW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8gIiAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwp ICckJGQkJHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAotKwkgICQocGtn aW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpLyQkZiI7IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKLSsJ QCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZv ciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAi IHJtIC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAotKwkgIHJtIC1mICIk KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSsjIFRoaXMgZGly ZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBj ZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlz IE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczog aW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMg c2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hp Y2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1 biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24g dGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWls Y29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNl ICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0n ZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAot Kwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRh cmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g XAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFt IjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBm aTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVz dCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwot KyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlm b3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0q IHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBl c2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJ ICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMp JyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0n JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAi LiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZp OyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBz ZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBl Y2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0r CSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0r CSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0 KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwi Ci0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6 Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRl c3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJ U1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkg JChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAg IGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRp OyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25l bXRweSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZp bGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFH UwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdT X0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0r CWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24p ID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNs dWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249 LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAot KwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFH UyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdT X0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5p cXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1Mp ICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7 IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVS UykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdz JCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFH UykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0r CWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0 b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStk aXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRI IHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIk KHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJz dHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBp biAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNk aXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9i dWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChN S0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58 JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwll c2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYg JCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7 IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIv JCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChz cmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBj cCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAg ICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQg MTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAg ICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQg MTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7 IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwg JChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0r CSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3Bf ZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAk JHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAg ICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlz dGRpci8kJHN1YmRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBf bGVuZ3RoX2NoZWNrPTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAx OyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2st cmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCi0r aW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotKwlm b3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRp cikiOyBkbyBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAot Kwlkb25lCi0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3Rh bGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUK LSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0K LSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEt YW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0 cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NU UklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNU UklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQo U1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVy aWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9G SUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xl YW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRh aW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJl IHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVB TkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4t cmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJ RVMgY2xlYW4tbGlidG9vbCBcCi0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0 Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxl Ci0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2Vu ZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZp LWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUK LSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVB REVSUwotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3Rh bGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNp dmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJz aXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hl Y2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUK LSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNs ZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5 Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHlj bGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29s Ci0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNp dmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklF UyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwt c3RyaXAKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZF X1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVh biBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBj dGFncyBjdGFncy1yZWN1cnNpdmUgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWNvbXBpbGUgZGlz dGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0 ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5z dGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5z dGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRt bCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKLSsJaW5zdGFsbC1pbmZvLWFtIGluc3Rh bGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAotKwlpbnN0YWxsLXBk Zi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcHMgXAotKwlpbnN0YWxsLXBz LWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBcCi0rCWluc3Rh bGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCi0rCW1vc3RseWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJ dGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKLSsJdW5pbnN0YWxs LWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK0BTRVRfTUFL RUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9y dCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBh dCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9j b3JlL3NvdXJjZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNlcy5t awkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2NvcmUvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSw1OCBAQAotK2NvcmVfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9ibG9iLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYmxvYi1leGNoYW5nZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jv b3N0LWdyZWdvcmlhbi1kYXRlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv Ym9vc3QtZnVzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3Qt b3B0aW9uYWwuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC10dXBs ZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXhjaGFuZ2UtdHJhaXRzLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2ludG8tdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29u Y2UtdGVtcC10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFy ZS10ZW1wLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1 cmUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVw YXJlLWluZm8uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRl ZC1zdGF0ZW1lbnQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3ctZXhjaGFuZ2UuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3Jvd2lkLWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcm93c2V0LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c2Vzc2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktYmFja2Vu ZC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktY29uZmlnLmggXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3N0YXRlbWVudC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Ry YW5zYWN0aW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252 ZXJzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJz aW9uLXRyYWl0cy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtaG9s ZGVyLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1wdHIuaCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3ZhbHVlcy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVl cy1leGNoYW5nZS5oCi0rY29yZV9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nv bm5lY3Rpb24tcG9vbC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJy b3IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50 LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFu c2FjdGlvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaCBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAkyMDA5LTA1LTA2IDAxOjMy OjQxLjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVz dC9jb21tb24tdGVzdHMuaAkyMDA5LTA1LTA2IDAwOjAyOjM2LjAwMDAwMDAwMCArMDIwMAotQEAg LTgsMTYgKzgsMzAgQEAKLSAjaWZuZGVmIFNPQ0lfQ09NTU9OX1RFU1RTX0hfSU5DTFVERUQKLSAj ZGVmaW5lIFNPQ0lfQ09NTU9OX1RFU1RTX0hfSU5DTFVERUQKLSAKLS0jaW5jbHVkZSAic29jaS5o IgotLSNpbmNsdWRlICJzb2NpLWNvbmZpZy5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+Ci0rIyAgICAg ICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1jb25maWcuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNv Y2kvY29yZS9ib29zdC1vcHRpb25hbC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jv b3N0LXR1cGxlLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYm9vc3QtZ3JlZ29yaWFu LWRhdGUuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8 c29jaS1jb25maWcuaD4KLSsjICAgICAgIGluY2x1ZGUgPGJvb3N0LW9wdGlvbmFsLmg+Ci0rIyAg ICAgICBpbmNsdWRlIDxib29zdC10dXBsZS5oPgotKyMgICAgICAgaW5jbHVkZSA8Ym9vc3QtZ3Jl Z29yaWFuLWRhdGUuaD4KLSsjZW5kaWYKLSsvLwotIAotIC8vIGV4cGxpY2l0bHkgcHVsbCBjb252 ZXJzaW9ucyBmb3IgQm9vc3QncyBvcHRpb25hbCwgdHVwbGUgYW5kIGZ1c2lvbjoKLSAjaW5jbHVk ZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Ci0tI2luY2x1ZGUgPGJvb3N0LW9wdGlvbmFsLmg+Ci0tI2lu Y2x1ZGUgPGJvb3N0LXR1cGxlLmg+Ci0tI2luY2x1ZGUgPGJvb3N0LWdyZWdvcmlhbi1kYXRlLmg+ Ci0gI2lmIGRlZmluZWQoQk9PU1RfVkVSU0lPTikgJiYgQk9PU1RfVkVSU0lPTiA+PSAxMDM1MDAK LSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyNpbmNsdWRlIDxzb2NpL2NvcmUv Ym9vc3QtZnVzaW9uLmg+Ci0rI2Vsc2UKLSAjaW5jbHVkZSA8Ym9vc3QtZnVzaW9uLmg+Ci0rI2Vu ZGlmCi0gI2VuZGlmIC8vIEJPT1NUX1ZFUlNJT04KLSAKLSAjaW5jbHVkZSA8YWxnb3JpdGhtPgot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01h a2VmaWxlLmFtCTIwMDktMDUtMDYgMDA6Mjk6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDI2IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01Q QVRJQklMSVRZID0KLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBB VElCSUxJVFkpCi0rCi0rbm9pbnN0X0xUTElCUkFSSUVTPSBsaWJzb2NpX2NvcmVfdGVzdC5sYQot KwotK2xpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVM9ICQoY29yZV90ZXN0X2hfc291cmNlcykK LStsaWJzb2NpX2NvcmVfdGVzdF9sYV9DWFhGTEFHUyA9Ci0rbGlic29jaV9jb3JlX3Rlc3RfbGFf TElCQUREID0KLSsjbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9IC12ZXJzaW9uLWluZm8g JChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdT ID0KLSsKLStwa2dpbmNsdWRlX0hFQURFUlMgPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCi0raWYg U09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3Nv Y2kvY29yZS90ZXN0Ci0rZWxzZQotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0r ZW5kaWYKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotKwotZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmlu CTIwMDktMDUtMDYgMDE6MzE6NTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDUwNSBAQAot KyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxl LmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5 NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91 dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLSsK LStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0r cGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNI X1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAk KGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9z aCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hF QURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RB TEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1Rf VU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0g QGhvc3RACi0rRElTVF9DT01NT04gPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykgJChzcmNkaXIpL01h a2VmaWxlLmFtIFwKLSsJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2VzLm1r IFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBzb2NpL2NvcmUv dGVzdAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2Nh bF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29y YWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05G SUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0g JChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9j b25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rTFRMSUJSQVJJRVMgPSAkKG5vaW5zdF9M VExJQlJBUklFUykKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19v YmplY3RzXzEgPQotK2FtX2xpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMgPSAkKGFtX19vYmpl Y3RzXzEpCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9jb3Jl X3Rlc3RfbGFfT0JKRUNUUykKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSU5LID0gJChMSUJUT09M KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKLSsJJChsaWJzb2NpX2NvcmVf dGVzdF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1J LkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK0NPTVBJTEUgPSAkKENDKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkk KENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09M KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2Rl PWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwK LSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0ND TEQgPSAkKENDKQotK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAk KENGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0g JChsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQobGlic29j aV9jb3JlX3Rlc3RfbGFfU09VUkNFUykKLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3Ry aXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRqID0g Y2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xe JCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0rYW1f X3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFs bGRpcnMgPSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rcGtnaW5jbHVkZUhFQURFUlNf SU5TVEFMTCA9ICQoSU5TVEFMTF9IRUFERVIpCi0rSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFE RVJTKQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVEZJTEVTID0gJChESVNU X0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStwa2dp bmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStB TVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRP SEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFX S0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIg PSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9G SUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19M SUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9P U1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTEla QVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JP T1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJT SU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NU X1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RF QAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFH U0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9 IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVO SVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBA Q1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFH U0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBA REVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0VDSE8gPSBARUNIT0AKLStFQ0hPX0Mg PSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JF UCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0Y3NyA9IEBGNzdACi0rRkZMQUdTID0g QEZGTEFHU0AKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVS U0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFU QSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAK LStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dS QU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJP QkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStM Tl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtF SU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFH U0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01ZU1FMX0RJUlMgPSBATVlTUUxf RElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9 IEBNWVNRTF9WRVJTSU9OQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRVhUID0gQE9CSkVYVEAK LStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFD TEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdT QAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rUEFDS0FHRSA9 IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BB Q0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9T VFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZF UlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJB VE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVT UUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NU R1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AK LStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBS QU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRf TUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0r VVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAot K2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGly QAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2Rp ciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFgg PSBAYWNfY3RfQ1hYQAotK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACi0rYW1fX2luY2x1ZGUgPSBA YW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9f cXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBA YW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRf YWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9v cyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGly ID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRh cm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5 Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBk dmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AK LStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0g QGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3Zl bmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAot K2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhf b2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4 ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fs c3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xk aW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4 ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3Jt X25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9 IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0g QHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRh cmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9w X2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0r QU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStjb3JlX3Rl c3RfaF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMu aAotK2NvcmVfdGVzdF9jY19zb3VyY2VzID0gCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtl ZmlsZS5pbgotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IAotK0VYVFJBX0RJ U1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLStub2luc3RfTFRMSUJS QVJJRVMgPSBsaWJzb2NpX2NvcmVfdGVzdC5sYQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJD RVMgPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfQ1hYRkxB R1MgPSAKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQgPSAKLSsjbGlic29jaV9jb3JlX3Rl c3RfbGFfTERGTEFHUyA9IC12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikK LStsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gCi0rcGtnaW5jbHVkZV9IRUFERVJTID0g JChjb3JlX3Rlc3RfaF9zb3VyY2VzKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lf aW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBz b2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUvdGVzdAotK2FsbDogYWxs LWFtCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9N YWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNl cy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBj YXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoIFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAot Kwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251 ICBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0r CSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvY29yZS90ZXN0L01ha2VmaWxlCi0rLlBSRUNJT1VT OiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMq KSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVz X21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsK LSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9j b25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQo YW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVM6Ci0r CS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobm9pbnN0X0xUTElC UkFSSUVTKQotKwlAbGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAot KwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwi JCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlv bnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX2NvcmVfdGVzdC5sYTogJChsaWJzb2NpX2NvcmVfdGVz dF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVOQ0lFUykgCi0rCSQo bGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSykgICQobGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNU UykgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVh bi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToK LSsJLXJtIC1mICoudGFiLmMKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5s bwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLStpbnN0YWxsLXBr Z2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQoTk9STUFMX0lOU1RB TEwpCi0rCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJ UikkKHBrZ2luY2x1ZGVkaXIpIgotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9y IHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBk PSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBmPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8g IiAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RESVIpJChwa2dp bmNsdWRlZGlyKS8kJGYnIjsgXAotKwkgICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQk ZCQkcCIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotK3Vu aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxp c3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGY9 JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKS8kJGYnIjsgXAotKwkgIHJtIC1mICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8k JGYiOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChU QUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc Ci0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtdHB5ID0g MTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0r VEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJbGlz dD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAot KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc Ci0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxz ZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkg ICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwK LSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiAg JChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1Nf RklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJH UykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9D VEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStH VEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAm JiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVy ZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZ TVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9 YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRv cHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZv ciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJz fF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAv fCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAg Ki8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wv LyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7 OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYg dGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNk aXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9 YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVz dCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0r CSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7 IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIg fHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxl IFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAg fHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVj azogY2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykK LStpbnN0YWxsZGlyczoKLSsJZm9yIGRpciBpbiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpciki OyBkbyBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAotKwlk b25lCi0raW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFt Ci0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1h bQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNo ZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFM TF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwK LSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JB TV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJp YzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykK LSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4t bGlidG9vbCBjbGVhbi1ub2luc3RMVExJQlJBUklFUyBcCi0rCW1vc3RseWNsZWFuLWFtCi0rCi0r ZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFt OiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3Rj bGVhbi10YWdzCi0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1h bQotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbTog aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1h bQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1h bQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1tYW46Ci0r Ci0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1w cy1hbQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFp bmVyLWNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRp c3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9z dGx5Y2xlYW4tYW0KLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0 bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFt Ci0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1h bTogdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5z dGFsbC1zdHJpcAotKwotKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVj ay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RM VExJQlJBUklFUyBjdGFncyBkaXN0Y2xlYW4gXAotKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xl YW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIg ZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKLSsJaW5zdGFsbCBpbnN0YWxs LWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxs LWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWlu c3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwK LSsJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBc Ci0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBc Ci0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAot Kwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBw cy1hbSBcCi0rCXRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtcGtnaW5jbHVk ZUhFQURFUlMKLSsKLStAU0VUX01BS0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9m IEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5 c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBP UlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qvc291cmNlcy5t ayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tawotLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3Qv c291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCAr MSwyIEBACi0rY29yZV90ZXN0X2hfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Rl c3QvY29tbW9uLXRlc3RzLmgKLStjb3JlX3Rlc3RfY2Nfc291cmNlcyA9Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9N YWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZpbGUuYW0JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSw5IEBACi0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotKwotKyMj IFNvdXJjZSBkaXJlY3RvcnkKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu Ci0rCi0rU1VCRElSUyA9IGNvcmUgYmFja2VuZHMKLSsKLStFWFRSQV9ESVNUID0KLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5pbgkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL01ha2VmaWxlLmluCTIwMDktMDUtMDYgMDE6MzE6NDguMDAwMDAwMDAwICswMjAwCi1A QCAtMCwwICsxLDU1NCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEu MTAuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHly aWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0 dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwot K0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikv QFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVk aXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZF UlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGlu c3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkg LWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURF UiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwg PSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5J TlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhv c3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2Vm aWxlLmluIFwKLSsJJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCi0rc3ViZGlyID0gc29jaQotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9j YWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9v c3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9j YWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkK LStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSBjb25m aWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0K LStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1y ZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEt cmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNp dmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAot KwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBw ZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNp dmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQot K0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJT KQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9T KSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAot K0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hF QURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFH UyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJ TUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAot K0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJT ID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9H UkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0r Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9P U1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENG TEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVU SUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNI T19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VY RUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dFTkVS SUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBA R1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFU QUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBU ID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NU UklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AK LStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AKLStM VExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1Ag PSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJ RyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xE RkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05A Ci0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0g QE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAot K09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9W RVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFD S0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBB Q0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdF X1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQ RVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVM RUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtF QAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJT X0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVS U19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9 IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0g QGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWls ZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3Jj ZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0r YWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSth bV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVv dGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmlu ZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9h bGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAot K2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0r ZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZf b2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdl bl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNf cHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAK LStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9z dF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIg PSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZv ZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AK LStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVk aXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5k aXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9s ZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3By b2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9 IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFy ZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2Nv bmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3Rv cF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9w X2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1J JCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KLStTVUJESVJTID0gY29yZSBiYWNrZW5kcwotK0VYVFJBX0RJU1QgPSAKLSth bGw6IGNvbmZpZy5oCi0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFsbC1yZWN1cnNpdmUKLSsK LSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxl LmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQot KwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScg aW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAotKwkJJiYgZXhpdCAwOyBcCi0rCSAg ICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9w X3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvTWFrZWZpbGUnOyBcCi0rCWNkICQo dG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL01ha2VmaWxlCi0r LlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZp Zy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwK LSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGly KS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bf c3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FM X000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY29uZmlnLmg6IHN0YW1wLWgx Ci0rCUBpZiB0ZXN0ICEgLWYgJEA7IHRoZW4gXAotKwkgIHJtIC1mIHN0YW1wLWgxOyBcCi0rCSAg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgc3RhbXAtaDE7IFwKLSsJZWxzZSA6OyBmaQotKwotK3N0 YW1wLWgxOiAkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMKLSsJQHJtIC1mIHN0YW1wLWgxCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgc29jaS9jb25maWcuaAotKyQoc3JjZGlyKS9jb25maWcuaC5pbjogICQo YW1fX2NvbmZpZ3VyZV9kZXBzKSAKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9IRUFERVIp Ci0rCXJtIC1mIHN0YW1wLWgxCi0rCXRvdWNoICRACi0rCi0rZGlzdGNsZWFuLWhkcjoKLSsJLXJt IC1mIGNvbmZpZy5oIHN0YW1wLWgxCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1m ICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBU aGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlv dSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91 Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJp YWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlh YmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAg ICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVu IHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFs dWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgot KwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0r CSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49 bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc Ci0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg JCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0r CWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFp bCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7 IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJ ICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBc Ci0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBp biBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9T VUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAot KwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwK LSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hv ICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBc Ci0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFt IjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBm aTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAi JCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVj dXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNF UykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW10cHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3Rh Z3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykg Y29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3Mt aW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9v cHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0r CSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsg XAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQk c3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0k JGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxFUyknOyBc Ci0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGki OyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25l IHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJ ICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsg fSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4g OjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsg XAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FS R1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NU QUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmluICQo VEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsg XAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlx dWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChD VEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9 YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3Jj ZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xl YW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MK LSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1g ZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0r CWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxp c3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJp cC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRp cikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9Q KSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0 ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBc Ci0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxl IHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJ ICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxl IiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIp LyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIg JChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsg XAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAot KwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBj cCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAot KwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2Ug XAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJ Ul9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgICBk aXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3BfZGlzdGRp cj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRp ciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3Bf ZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8k JHN1YmRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3Ro X2NoZWNrPTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0r CSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJz aXZlCi0rYWxsLWFtOiBNYWtlZmlsZSBjb25maWcuaAotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGly cy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2 ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTog aW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQot KwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFs bC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNr LXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElO U1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9z aF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0t cyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BS T0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdl bmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRl c3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklM RVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5k IGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVz IGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRl c3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVB TkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2Vu ZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xl YW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0g ZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWhkciBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTog ZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwot K2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06 Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhl Yy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStp bnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFs bC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVh bjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRh aW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwot K21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTog bW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVj dXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsK LSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQo UkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBI T05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFH UyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJp YyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0 Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1oZHIgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNs ZWFuLXRhZ3MgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1h bSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGlu c3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwt aW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3Rh bGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNrIGluc3Rh bGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBcCi0rCW1haW50YWluZXItY2xl YW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJbW9zdGx5Y2xlYW4t Z2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdz IHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0r IyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxs IHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVh c3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS1jb25maWcuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2ktY29uZmlnLmluCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS1jb25maWcuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS1jb25maWcuaW4JMjAw OS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNzYgQEAKLSsjIS9i aW4vc2gKLSsKLStwcmVmaXg9QHByZWZpeEAKLStleGVjX3ByZWZpeD0ke3ByZWZpeH0KLStsaWJk aXI9QGxpYmRpckAKLStpbmNsdWRlZGlyPUBpbmNsdWRlZGlyQAotKwotK3VzYWdlKCkKLSt7Ci0r ICBjYXQgPDxFT0YKLStVc2FnZTogQFBBQ0tBR0VALWNvbmZpZyBbT1BUSU9OXQotKwotK0tub3du IHZhbHVlcyBmb3IgT1BUSU9OIGFyZToKLSsKLSsgIC0tcHJlZml4ICAgICAgICBwcmludCBAUEFD S0FHRV9OQU1FQCBpbnN0YWxsYXRpb24gcHJlZml4Ci0rICAtLWxpYnMgICAgICAgICAgcHJpbnQg bGlicmFyeSBsaW5raW5nIGluZm9ybWF0aW9uCi0rICAtLWNmbGFncyAgICAgICAgcHJpbnQgcHJl LXByb2Nlc3NvciBhbmQgY29tcGlsZXIgZmxhZ3MKLSsgIC0taGVscCAgICAgICAgICBkaXNwbGF5 IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGlu Zm9ybWF0aW9uCi0rRU9GCi0rICBleGl0ICQxCi0rfQotKwotK2lmIHRlc3QgJCMgLWVxIDA7IHRo ZW4KLSsgIHVzYWdlIDEKLStmaQotKwotK2NmbGFncz1mYWxzZQotK2xpYnM9ZmFsc2UKLSsKLSt3 aGlsZSB0ZXN0ICQjIC1ndCAwOyBkbwotKyAgY2FzZSAiJDEiIGluCi0rICAtKj0qKSBvcHRhcmc9 YGVjaG8gIiQxIiB8IHNlZCAncy9bLV9hLXpBLVowLTldKj0vLydgIDs7Ci0rICAqKSBvcHRhcmc9 IDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICQxIGluCi0rICAgIC0tcHJlZml4PSopCi0rICAgICAg cHJlZml4PSRvcHRhcmcKLSsgICAgICA7OwotKwotKyAgICAtLXByZWZpeCkKLSsgICAgICBlY2hv ICRwcmVmaXgKLSsgICAgICA7OwotKwotKyAgICAtLXZlcnNpb24pCi0rICAgICAgZWNobyBAVkVS U0lPTkAKLSsgICAgICA7OwotKwotKyAgICAtLWhlbHApCi0rICAgICAgdXNhZ2UgMAotKyAgICAg IDs7Ci0rCi0rICAgIC0tY2ZsYWdzKQotKyAgICAgIGlmIFsgIiR7cHJlZml4fSIgIT0gIi91c3Ii IF07IHRoZW4KLSsgICAgICAgIGVjaG8gLUkke2luY2x1ZGVkaXJ9Ci0rICAgICAgZWxzZQotKyAg ICAgICAgZWNobwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgLS1saWJzKQotKyAgICAg IGlmIFsgIiR7cHJlZml4fSIgIT0gIi91c3IiIF07IHRoZW4KLSsgICAgICAgIGVjaG8gLUwke2xp YmRpcn0gLWxAUEFDS0FHRUAKLSsgICAgICBlbHNlCi0rICAgICAgICBlY2hvIC1sQFBBQ0tBR0VA Ci0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIHVzYWdlCi0rICAgICAg ZXhpdCAxCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0rZG9uZQotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kubTQgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kubTQKLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kubTQJMjAwOS0wNS0wMiAyMzo1OToxMy4w MDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTE4IEBACi0rZG5sIEBzeW5vcHNpcyBBWF9TT0NJ Ci0rZG5sIAotK2RubCBUaGlzIG1hY3JvIHRyaWVzIHRvIGZpbmQgU29jaSBDIEFQSSBoZWFkZXIg YW5kIGxpYnJhcnkgbG9jYXRpb25zLgotK2RubAotK2RubCBXZSBkZWZpbmUgdGhlIGZvbGxvd2lu ZyBjb25maWd1cmUgc2NyaXB0IGZsYWdzOgotK2RubAotK2RubAktLXdpdGgtc29jaTogR2l2ZSBw cmVmaXggZm9yIGJvdGggbGlicmFyeSBhbmQgaGVhZGVycywgYW5kIHRyeQotK2RubAkJICAgICB0 byBndWVzcyBzdWJkaXJlY3RvcnkgbmFtZXMgZm9yIGVhY2guICAoZS5nLiBhZGQgL2xpYiBhbmQK LStkbmwJCSAgICAgL2luY2x1ZGUgb250byBnaXZlbiBkaXIgbmFtZXMsIGFuZCBvdGhlciBjb21t b24gc2NoZW1lcy4pCi0rZG5sCi0rZG5sIEB2ZXJzaW9uIDEuMywgMjAwOS8wNS8wMgotK2RubCBA YXV0aG9yIERlbmlzIEFybmF1ZCA8ZGVuaXNfYXJuYXVkQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4K LStkbmwKLStkbmwgQHZlcnNpb24gMS4yLCAyMDA3LzAyLzIwCi0rZG5sIEBhdXRob3IgV2FycmVu IFlvdW5nIDxzb2NpcHBAZXRyLXVzYS5jb20+Ci0rCi0rQUNfREVGVU4oW0FYX1NPQ0ldLAotK1sK LSsjCi0rIyBTZXQgdXAgY29uZmlndXJlIHNjcmlwdCBtYWNyb3MKLSsjCi0rQUNfQVJHX1dJVEgo c29jaSwKLSsJWy0td2l0aC1zb2NpPTxwYXRoPiAgICAgcm9vdCBkaXJlY3RvcnkgcGF0aCBvZiBT b2NpIGluc3RhbGxhdGlvbl0sCi0rCVtTT0NJX2xpYl9jaGVjaz0iJHdpdGhfc29jaS9saWI2NC9z b2NpICR3aXRoX3NvY2kvbGliL3NvY2kgJHdpdGhfc29jaS9saWI2NCAkd2l0aF9zb2NpL2xpYiIK LSsJU09DSV9pbmNfY2hlY2s9IiR3aXRoX3NvY2kvaW5jbHVkZSAkd2l0aF9zb2NpL2luY2x1ZGUv c29jaSJdLAotKwlbU09DSV9saWJfY2hlY2s9Ii91c3IvbGliNjQgL3Vzci9saWIgL3Vzci9saWI2 NC9zb2NpIC91c3IvbGliL3NvY2kgL3Vzci9sb2NhbC9saWI2NCAvdXNyL2xvY2FsL2xpYiAvb3B0 L3NvY2kvbGliNjQgL29wdC9zb2NpL2xpYiAvdXNyL2xvY2FsL2xpYjY0L3NvY2kgL3Vzci9sb2Nh bC9saWIvc29jaSAvdXNyL2xvY2FsL3NvY2kvbGliNjQgL3Vzci9sb2NhbC9zb2NpL2xpYiAvb3B0 L3NvY2kvbGliNjQvc29jaSAvb3B0L3NvY2kvbGliL3NvY2kiCi0rCVNPQ0lfaW5jX2NoZWNrPSIv dXNyL2luY2x1ZGUgL3Vzci9pbmNsdWRlL3NvY2kgL3Vzci9sb2NhbC9pbmNsdWRlIC9vcHQvc29j aS9pbmNsdWRlIC91c3IvbG9jYWwvaW5jbHVkZS9zb2NpIC91c3IvbG9jYWwvc29jaS9pbmNsdWRl IC91c3IvbG9jYWwvc29jaS9pbmNsdWRlL3NvY2kgL29wdC9zb2NpL2luY2x1ZGUvc29jaSJdKQot KwotKyMgU09DSSBsaWJyYXJ5Ci0rU09DSV9DT1JFX0xJQj1zb2NpX2NvcmUKLStTT0NJX01ZU1FM X0xJQj1zb2NpX215c3FsCi0rCi0rIwotKyMgTG9vayBmb3IgU29jaSBDb3JlIEFQSSBsaWJyYXJ5 Ci0rIwotK0FDX01TR19DSEVDS0lORyhbZm9yIFNvY2kgbGlicmFyeSBkaXJlY3RvcnldKQotK1NP Q0lfbGliZGlyPQotK2ZvciBtIGluICRTT0NJX2xpYl9jaGVjawotK2RvCi0rCWlmIHRlc3QgLWQg IiRtIiAmJiBcCi0rCQkodGVzdCAtZiAiJG0vbGliJFNPQ0lfQ09SRV9MSUIuc28iIHx8IHRlc3Qg LWYgIiRtL2xpYiRTT0NJX0NPUkVfTElCLmEiKQotKwl0aGVuCi0rCQlTT0NJX2xpYmRpcj0kbQot KwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAiJFNPQ0lfbGliZGlyIgotK3Ro ZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCAkU09DSV9DT1JFX0xJQiBsaWJyYXJ5IGlu ICckU09DSV9saWJfY2hlY2snXSkKLStmaQotKwotK2Nhc2UgIiRTT0NJX2xpYmRpciIgaW4KLSsJ LyogKSA7OwotKwkqICkgIEFDX01TR19FUlJPUihbVGhlIFNvY2kgbGlicmFyeSBkaXJlY3Rvcnkg KCRTT0NJX2xpYmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rZXNhYwotKwot K0FDX01TR19SRVNVTFQoWyRTT0NJX2xpYmRpcl0pCi0rCi0rY2FzZSAiJFNPQ0lfbGliZGlyIiBp bgotKyAgL3Vzci9saWI2NCkgOzsKLSsgIC91c3IvbGliKSA7OwotKyAgKikgU09DSV9MSUJTPSIt TCR7U09DSV9saWJkaXJ9IiA7OwotK2VzYWMKLStMREZMQUdTPSIkTERGTEFHUyAke1NPQ0lfTElC U30iCi0rCi0rCi0rIwotKyMgTG9vayBmb3IgU29jaSBDb3JlIEFQSSBoZWFkZXJzCi0rIwotK0FD X01TR19DSEVDS0lORyhbZm9yIFNvY2kgaW5jbHVkZSBkaXJlY3RvcnldKQotK1NPQ0lfaW5jZGly PQotK2ZvciBtIGluICRTT0NJX2luY19jaGVjawotK2RvCi0rCWlmIHRlc3QgLWQgIiRtIiAmJiB0 ZXN0IC1mICIkbS9zb2NpL2NvcmUvc29jaS5oIgotKwl0aGVuCi0rCQlTT0NJX2luY2Rpcj0kbQot KwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAiJFNPQ0lfaW5jZGlyIgotK3Ro ZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgU29jaSBpbmNsdWRlIGRpciBpbiAn JFNPQ0lfaW5jX2NoZWNrJ10pCi0rZmkKLSsKLStjYXNlICIkU09DSV9pbmNkaXIiIGluCi0rCS8q ICkgOzsKLSsJKiApICBBQ19NU0dfRVJST1IoW1RoZSBTb2NpIGluY2x1ZGUgZGlyZWN0b3J5ICgk U09DSV9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OwotK2VzYWMKLSsKLStB Q19NU0dfUkVTVUxUKFskU09DSV9pbmNkaXJdKQotKwotK2Nhc2UgIiRTT0NJX2luY2RpciIgaW4K LSsgIC91c3IvaW5jbHVkZSkgOzsKLSsgICopIFNPQ0lfQ0ZMQUdTPSItSSR7U09DSV9pbmNkaXJ9 IiA7OwotK2VzYWMKLSsKLStTT0NJX0xJQlM9IiR7U09DSV9MSUJTfSAtbCR7U09DSV9DT1JFX0xJ Qn0gLWwke1NPQ0lfTVlTUUxfTElCfSAtbGRsIgotKwotK0FDX1NVQlNUKFNPQ0lfQ0ZMQUdTKQot K0FDX1NVQlNUKFNPQ0lfTElCUykKLSsKLSsjIFRlc3QgbGlua2luZyB3aXRoIHNvY2kgKG5vdGUg dGhhdCBpdCBuZWVkcyBNeVNRTCBjbGllbnQgdG8gaGF2ZSBiZWVuIGRlZmluZWQKLSsjIGJlZm9y ZSkKLStzYXZlX0xJQlM9IiRMSUJTIgotK2lmIHRlc3QgLXogIiRNWVNRTF9MSUJTIgotK3RoZW4K LSsJTVlTUUxfTElCUz0iLUwvdXNyL2xpYjY0L215c3FsIC1ML3Vzci9saWIvbXlzcWwgLWxteXNx bGNsaWVudCIKLStmaQotK0xJQlM9IiRMSUJTICRNWVNRTF9MSUJTICRTT0NJX0xJQlMiCi0rQUNf Q0hFQ0tfTElCKCRTT0NJX0NPUkVfTElCLCBzb2NpX2JlZ2luLAotKwkgICAgIFtdLCAKLSsgICAg ICAgICAgICAgW0FDX01TR19FUlJPUihbQ291bGQgbm90IGZpbmQgd29ya2luZyBTb2NpIGNsaWVu dCBsaWJyYXJ5IV0pXQotKwkgICAgICkKLStMSUJTPSIkc2F2ZV9MSUJTIgotK0FDX1NVQlNUKFNP Q0lfQ09SRV9MSUIpCi0rXSkgZG5sIEFYX1NPQ0kKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpLnBjLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBjLmluCi0tLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS5wYy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBjLmluCTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0rcHJlZml4PUBwcmVmaXhACi0rZXhlY19w cmVmaXg9QGV4ZWNfcHJlZml4QAotK2xpYmRpcj1AbGliZGlyQAotK2luY2x1ZGVkaXI9QGluY2x1 ZGVkaXJACi0rCi0rTmFtZTogQFBBQ0tBR0VfTkFNRUAKLStEZXNjcmlwdGlvbjogVGhlIGRhdGFi YXNlIGFjY2VzcyBsaWJyYXJ5IGZvciBDKysgcHJvZ3JhbW1lcnMKLStWZXJzaW9uOiBAUEFDS0FH RV9WRVJTSU9OQAotK1VSTDogaHR0cDovL0BQQUNLQUdFQC5zb3VyY2Vmb3JnZS5uZXQKLStMaWJz OiAtTCR7bGliZGlyfSAtbEBQQUNLQUdFQF9jb3JlIEBMREZMQUdTQCBATElCU0AKLStDZmxhZ3M6 IC1JJHtpbmNsdWRlZGlyfQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kuc3BlYy5p biBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5zcGVjLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS5zcGVjLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kuc3BlYy5pbgkyMDA5LTA1LTA2IDAxOjMxOjE4LjAwMDAwMDAw MCArMDIwMAotQEAgLTAsMCArMSwzMTEgQEAKLSsjCi0rIyMKLSsjIERlZmF1bHQgdmFsdWVzIGFy ZSAtLXdpdGggbXlzcWwgLS13aXRoIHBvc3RncmVzcWwgLS13aXRob3V0IG9yYWNsZSAKLSsjIE5v dGUgdGhhdCwgZm9yIE9yYWNsZSwgd2hlbiBlbmFibGVkLCB0aGUgZm9sbG93aW5nIG9wdGlvbnMg c2hvdWxkCi0rIyBhbHNvIGJlIGdpdmVuOgotKyMgLS13aXRoLW9yYWNsZS1pbmNsdWRlPS9vcHQv b3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJfMS9yZGJtcy9wdWJsaWMKLSsjIC0t d2l0aC1vcmFjbGUtbGliPS9vcHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJf MS9saWIKLSsjIElmIHRoZSBtYWNyb3MgYXJlIGRlZmluZWQsIHJlZGVmaW5lIHRoZW0gd2l0aCB0 aGUgY29ycmVjdCBjb21waWxhdGlvbiBmbGFncy4KLSslYmNvbmRfd2l0aG91dCBteXNxbAotKyVi Y29uZF93aXRob3V0IHBvc3RncmVzcWwKLSslYmNvbmRfd2l0aCBvcmFjbGUKLSsKLSslZGVmaW5l IF9kZWZhdWx0X29yYWNsZV9kaXIgL29wdC9vcmFjbGUvYXBwL29yYWNsZS9wcm9kdWN0LzExLjEu MC9kYl8xCi0rJXshP193aXRoX29yYWNsZV9pbmNkaXI6ICVkZWZpbmUgX3dpdGhfb3JhY2xlX2lu Y2RpciAtLXdpdGgtb3JhY2xlLWluY2x1ZGU9JXtfZGVmYXVsdF9vcmFjbGVfZGlyfS9yZGJtcy9w dWJsaWN9Ci0rJXshP193aXRoX29yYWNsZV9saWJkaXI6ICVkZWZpbmUgX3dpdGhfb3JhY2xlX2xp YmRpciAtLXdpdGgtb3JhY2xlLWxpYj0le19kZWZhdWx0X29yYWNsZV9kaXJ9L2xpYn0KLSsjCi0r IyMKLSsjCi0rTmFtZTogICAgICAgICAgIEBQQUNLQUdFQAotK1ZlcnNpb246ICAgICAgICBAVkVS U0lPTkAKLStSZWxlYXNlOiAgICAgICAgQFJQTV9SRUxFQVNFQCV7P2Rpc3R9Ci0rCi0rU3VtbWFy eTogICAgICAgIFRoZSBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSBmb3IgQysrIHByb2dyYW1tZXJz Ci0rCi0rR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKLStMaWNl bnNlOiAgICAgICAgQm9vc3QKLStVUkw6ICAgICAgICAgICAgaHR0cDovLyV7bmFtZX0uc291cmNl Zm9yZ2UubmV0Ci0rU291cmNlMDogICAgICAgIGh0dHA6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2Uu bmV0L3NvY2kvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negotKyMgVGhhdCBwYXRjaCB3aWxsIGJl IHN1Ym1pdHRlZCB1cHN0cmVhbQotK1BhdGNoMDogICAgICAgICAle25hbWV9LSV7dmVyc2lvbn0t Zml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0Y2gKLSsjIFRoYXQgcGF0Y2ggd2lsbCBiZSBzdWJt aXR0ZWQgdXBzdHJlYW0KLStQYXRjaDE6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LWZpeC1n bnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKLStCdWlsZFJvb3Q6ICAgICAgJXtfdG1w cGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikK LSsKLStCdWlsZFJlcXVpcmVzOiAgYm9vc3QtZGV2ZWwgPj0gMS4zNAotK0J1aWxkUmVxdWlyZXM6 ICBjcHB1bml0LWRldmVsID49IDEuMTAKLStCdWlsZFJlcXVpcmVzOiAgbGlidG9vbAotKyNSZXF1 aXJlczogICAgICAgCi0rCi0rJWRlc2NyaXB0aW9uCi0rQFBBQ0tBR0VfTkFNRUAgaXMgYSBDKysg ZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgdGhhdCBwcm92aWRlcyB0aGUKLStpbGx1c2lvbiBvZiBl bWJlZGRpbmcgU1FMIGluIHJlZ3VsYXIgQysrIGNvZGUsIHN0YXlpbmcgZW50aXJlbHkgd2l0aGlu Ci0rdGhlIEMrKyBzdGFuZGFyZC4KLSsKLSsKLSslez93aXRoX215c3FsOiVwYWNrYWdlICAgICAg ICBteXNxbAotK1N1bW1hcnk6ICAgICAgICBNeVNRTCBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3Jv dXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKLStSZXF1aXJlczogICAg ICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotK0J1aWxkUmVxdWlyZXM6ICBteXNx bC1kZXZlbCA+PSA1LjAKLSsKLSslZGVzY3JpcHRpb24gICAgbXlzcWwKLStUaGlzIHBhY2thZ2Ug Y29udGFpbnMgdGhlIE15U1FMIGJhY2tlbmQgZm9yIEBQQUNLQUdFX05BTUVALCBpLmUuLAotK2R5 bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUgTXlTUUwgZGF0YWJhc2UuIElmIHlvdSB3b3Vs ZCBsaWtlIHRvCi0rdXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBNeVNR TCwgeW91IHdpbGwgbmVlZCB0bwotK2luc3RhbGwgJXtuYW1lfS1teXNxbC59Ci0rCi0rJXs/d2l0 aF9wb3N0Z3Jlc3FsOiVwYWNrYWdlICAgICAgICBwb3N0Z3Jlc3FsCi0rU3VtbWFyeTogICAgICAg IFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgJXtuYW1lfQotK0dyb3VwOiAgICAgICAgICBTeXN0ZW0g RW52aXJvbm1lbnQvTGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNp b259LSV7cmVsZWFzZX0KLStCdWlsZFJlcXVpcmVzOiAgcG9zdGdyZXNxbC1kZXZlbCA+PSA3LjEK LSsKLSslZGVzY3JpcHRpb24gICAgcG9zdGdyZXNxbAotK1RoaXMgcGFja2FnZSBjb250YWlucyB0 aGUgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciBAUEFDS0FHRV9OQU1FQCwgaS5lLiwKLStkeW5hbWlj IGxpYnJhcnkgc3BlY2lmaWMgdG8gdGhlIFBvc3RHcmVTUUwgZGF0YWJhc2UuIElmIHlvdSB3b3Vs ZCBsaWtlCi0rdG8gdXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBQb3N0 R3JlU1FMLCB5b3Ugd2lsbCBuZWVkIHRvCi0raW5zdGFsbCAle25hbWV9LXBvc3RncmVzcWwufQot KwotKyV7P3dpdGhfb3JhY2xlOiVwYWNrYWdlICAgICAgICBvcmFjbGUKLStTdW1tYXJ5OiAgICAg ICAgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFtZX0KLStHcm91cDogICAgICAgICAgU3lzdGVtIEVu dmlyb25tZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9Ci0rCi0rJWRlc2NyaXB0aW9uICAgIG9yYWNsZQotK1RoaXMgcGFja2FnZSBj b250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9yIEBQQUNLQUdFX05BTUVALCBpLmUuLAotK2R5 bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUgT3JhY2xlIGRhdGFiYXNlLiBJZiB5b3Ugd291 bGQgbGlrZSB0bwotK3VzZSBAUEFDS0FHRV9OQU1FQCBpbiB5b3VyIHByb2dyYW1zIHdpdGggT3Jh Y2xlLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwKLSsle25hbWV9LW9yYWNsZS59Ci0rCi0rCi0r JXBhY2thZ2UgICAgICAgIGRldmVsCi0rU3VtbWFyeTogICAgICAgIEhlYWRlciBmaWxlcywgbGli cmFyaWVzIGFuZCBkZXZlbG9wbWVudCBkb2N1bWVudGF0aW9uIGZvciAle25hbWV9Ci0rR3JvdXA6 ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9 ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgIHBrZ2NvbmZpZwotKwot KyVkZXNjcmlwdGlvbiAgICBkZXZlbAotK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgaGVhZGVy IGZpbGVzLCBkeW5hbWljIGxpYnJhcmllcyBhbmQKLStkZXZlbG9wbWVudCBkb2N1bWVudGF0aW9u IGZvciAle25hbWV9LiBJZiB5b3Ugd291bGQgbGlrZSB0byBkZXZlbG9wCi0rcHJvZ3JhbXMgdXNp bmcgJXtuYW1lfSwgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsICV7bmFtZX0tZGV2ZWwuCi0rCi0r JXs/d2l0aF9teXNxbDolcGFja2FnZSAgICAgICAgbXlzcWwtZGV2ZWwKLStTdW1tYXJ5OiAgICAg ICAgTXlTUUwgYmFja2VuZCBmb3IgJXtuYW1lfQotK0dyb3VwOiAgICAgICAgICBEZXZlbG9wbWVu dC9MaWJyYXJpZXMKLStSZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lvbn0t JXtyZWxlYXNlfQotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LW15c3FsID0gJXt2ZXJzaW9ufS0l e3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgIG15c3FsLWRldmVsID49IDUuMAotKwotKyVkZXNj cmlwdGlvbiAgICBteXNxbC1kZXZlbAotK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgTXlTUUwg YmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCi0rZmlsZXMgYW5kIGR5bmFtaWMgbGli cmFyaWVzIHNwZWNpZmljIHRvIHRoZSBNeVNRTCBkYXRhYmFzZS4gSWYgeW91Ci0rd291bGQgbGlr ZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0gYW5kIE15U1FMLCB5b3Ugd2lsbCBu ZWVkCi0rdG8gaW5zdGFsbCAle25hbWV9LW15c3FsLn0KLSsKLSslez93aXRoX3Bvc3RncmVzcWw6 JXBhY2thZ2UgICAgICAgIHBvc3RncmVzcWwtZGV2ZWwKLStTdW1tYXJ5OiAgICAgICAgUG9zdEdy ZVNRTCBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xp YnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3Jl bGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tcG9zdGdyZXNxbCA9ICV7dmVyc2lvbn0t JXtyZWxlYXNlfQotK1JlcXVpcmVzOiAgICAgICBwb3N0Z3Jlc3FsLWRldmVsID49IDcuMQotKwot KyVkZXNjcmlwdGlvbiAgICBwb3N0Z3Jlc3FsLWRldmVsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5z IHRoZSBQb3N0R3JlU1FMIGJhY2tlbmQgZm9yICV7bmFtZX0sIGkuZS4sIGhlYWRlcgotK2ZpbGVz IGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZpYyB0byB0aGUgUG9zdEdyZVNRTCBkYXRhYmFz ZS4gSWYKLSt5b3Ugd291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0g YW5kIFBvc3RHcmVTUUwsIHlvdQotK3dpbGwgbmVlZCB0byBpbnN0YWxsICV7bmFtZX0tcG9zdGdy ZXNxbC59Ci0rCi0rJXs/d2l0aF9vcmFjbGU6JXBhY2thZ2UgICAgICAgIG9yYWNsZS1kZXZlbAot K1N1bW1hcnk6ICAgICAgICBPcmFjbGUgYmFja2VuZCBmb3IgJXtuYW1lfQotK0dyb3VwOiAgICAg ICAgICBEZXZlbG9wbWVudC9MaWJyYXJpZXMKLStSZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZl bCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LW9yYWNs ZSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotKwotKyVkZXNjcmlwdGlvbiAgICBvcmFjbGUtZGV2 ZWwKLStUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9 LCBpLmUuLCBoZWFkZXIKLStmaWxlcyBhbmQgZHluYW1pYyBsaWJyYXJpZXMgc3BlY2lmaWMgdG8g dGhlIE9yYWNsZSBkYXRhYmFzZS4gSWYgeW91Ci0rd291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dy YW1zIHVzaW5nICV7bmFtZX0gYW5kIE9yYWNsZSwgeW91IHdpbGwgbmVlZAotK3RvIGluc3RhbGwg JXtuYW1lfS1vcmFjbGUufQotKwotKwotKyVwYWNrYWdlIGRvYwotK1N1bW1hcnk6ICAgICAgICBI VE1MIGRvY3VtZW50YXRpb24gZm9yIHRoZSBAUEFDS0FHRV9OQU1FQCBsaWJyYXJ5Ci0rR3JvdXA6 ICAgICAgICAgIERvY3VtZW50YXRpb24KLStCdWlsZEFyY2g6ICAgICAgbm9hcmNoCi0rI0J1aWxk UmVxdWlyZXM6ICBkb3h5Z2VuLCB0ZXhsaXZlLWxhdGV4LCB0ZXhsaXZlLWR2aXBzLCBnaG9zdHNj cmlwdAotKwotKyVkZXNjcmlwdGlvbiBkb2MKLStUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIGRv Y3VtZW50YXRpb24gaW4gdGhlIEhUTUwgZm9ybWF0IG9mIHRoZSBAUEFDS0FHRV9OQU1FQAotK2xp YnJhcnkuIFRoZSBkb2N1bWVudGF0aW9uIGlzIHRoZSBzYW1lIGFzIGF0IHRoZSBAUEFDS0FHRV9O QU1FQCB3ZWIgcGFnZS4KLSsKLSsKLSslcHJlcAotKyVzZXR1cCAtcQotKyMgUmVuYW1lIGNoYW5n ZS1sb2cgYW5kIGxpY2Vuc2UgZmlsZSwgc28gdGhhdCB0aGV5IGNvbXBseSB3aXRoCi0rIyBwYWNr YWdpbmcgc3RhbmRhcmQKLSttdiBDSEFOR0VTIENoYW5nZUxvZwotK212IExJQ0VOU0VfMV8wLnR4 dCBDT1BZSU5HCi0rcm0gLWYgSU5TVEFMTAotKyMgQXBwbHkgdGhlIGcrKyA0LjMgY29tcGF0aWJp bGl0eSBwYXRjaAotKyVwYXRjaDAgLXAxCi0rIyBSZW1vdmUgTWFjT1NYIGNvbXBhdGliaWxpdHkg YnVpbGRpbmcgZmlsZXMKLStybSAtZiBidWlsZC91bml4Ly5fKi50Y2wKLStybSAtZiAuX01ha2Vm aWxlIC5fY29uZmlndXJlCi0rcm0gLWYgc29jaS9jb3JlLy5fKi5oIHNvY2kvY29yZS8uXyouY3Bw Ci0rcm0gLWYgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsLy5fKi5oCi0rcm0gLWYgZG9jLy5fKi5o dG1sCi0rIyBSZW5hbWUgdGhlIHNvdXJjZSBjb2RlIGRpcmVjdG9yeSwgc28gdGhhdCB0aGUgZmls ZXMgKGUuZywgaGVhZGVyCi0rIyBmaWxlcykgY2FuIGJlIGV4cG9ydGVkIGNvcnJlY3RseSBpbnRv IHtfc3RhbmRhcmRfZGlyfS8le25hbWV9Ci0rbXYgc3JjICV7bmFtZX0KLSsjIEFwcGx5IHRoZSBH TlUgQXV0b3Rvb2xzIGNvbXBhdGliaWxpdHkgcGF0Y2gKLSslcGF0Y2gxIC1wMQotKyMgRml4IHNv bWUgcGVybWlzc2lvbnMgYW5kIGZvcm1hdHMKLStmaW5kIC4vZG9jIC10eXBlIGYgLXBlcm0gNzU1 IC1leGVjIGNobW9kIDY0NCB7fSBcOwotK2NobW9kIC14IEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJ TkcgTkVXUyBSRUFETUUKLSsjIGZpbmQgLiAtdHlwZSBmIC1uYW1lICcqLltoY11wcCcgLWV4ZWMg Y2htb2QgNjQ0IHt9IFw7Ci0rCi0rCi0rJWJ1aWxkCi0rJWNvbmZpZ3VyZSAtLWRpc2FibGUtc3Rh dGljIFwKLSslez93aXRoX215c3FsOi0tZW5hYmxlLWJhY2tlbmQtbXlzcWx9IFwKLSslez93aXRo X3Bvc3RncmVzcWw6LS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsfSBcCi0rJXs/d2l0aF9vcmFj bGU6LS1lbmFibGUtYmFja2VuZC1vcmFjbGUgJXs/X3dpdGhfb3JhY2xlX2luY2Rpcn0gJXs/X3dp dGhfb3JhY2xlX2xpYmRpcn19Ci0rbWFrZSAlez9fc21wX21mbGFnc30KLSsKLSslaW5zdGFsbAot K3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKLSttYWtlIGluc3RhbGwgREVTVERJUj0kUlBNX0JVSUxE X1JPT1QKLSsjIwotKyMgIFJlbW92ZSB1bnBhY2thZ2VkIGZpbGVzIGZyb20gdGhlIGJ1aWxkcm9v dAotK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29uZmlnLmgK LStybSAtZiAkUlBNX0JVSUxEX1JPT1Qle19saWJkaXJ9L2xpYiV7bmFtZX1fKi5sYQotKyMjCi0r IyMKLSsjICBEdXBsaWNhdGUgdGhlIGhlYWRlciBmaWxlcywgc28gYXMgdG8ga2VlcCB0aGUgY29t cGF0aWJpbGl0eSwgZm9yCi0rIyAgZGV2ZWxvcGVycyB1c2luZyB0aGUgU09DSSBsaWJyYXJ5LCB3 aXRoIHRoZSBub24tcGFja2FnZWQgdmVyc2lvbiBvZgotKyMgIHRoYXQgbGlicmFyeS4KLStmb3Ig aGVhZGVyX2ZpbGUgaW4gJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3Jl LyouaDsgZG8KLSsgIGNwICR7aGVhZGVyX2ZpbGV9ICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVk aXJ9LyV7bmFtZX0KLStkb25lCi0rJXs/d2l0aF9teXNxbDpjcCAkUlBNX0JVSUxEX1JPT1Qle19p bmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCAkUlBNX0JVSUxE X1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9fQotKyV7P3dpdGhfcG9zdGdyZXNxbDpjcCAkUlBN X0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL3Bvc3RncmVzcWwvc29j aS1wb3N0Z3Jlc3FsLmggJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfX0KLSsl ez93aXRoX29yYWNsZTpjcCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2Jh Y2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9 LyV7bmFtZX19Ci0rCi0rCi0rJWNsZWFuCi0rcm0gLXJmICRSUE1fQlVJTERfUk9PVAotKwotKyVw b3N0IC1wIC9zYmluL2xkY29uZmlnCi0rCi0rJXBvc3R1biAtcCAvc2Jpbi9sZGNvbmZpZwotKwot KyV7P3dpdGhfbXlzcWw6JXBvc3QgbXlzcWwgLXAgL3NiaW4vbGRjb25maWcKLSsKLSslcG9zdHVu IG15c3FsIC1wIC9zYmluL2xkY29uZmlnfQotKwotKyV7P3dpdGhfcG9zdGdyZXNxbDolcG9zdCBw b3N0Z3Jlc3FsIC1wIC9zYmluL2xkY29uZmlnCi0rCi0rJXBvc3R1biBwb3N0Z3Jlc3FsIC1wIC9z YmluL2xkY29uZmlnfQotKwotKyV7P3dpdGhfb3JhY2xlOiVwb3N0IG9yYWNsZSAtcCAvc2Jpbi9s ZGNvbmZpZwotKwotKyVwb3N0dW4gb3JhY2xlIC1wIC9zYmluL2xkY29uZmlnfQotKwotKwotKwot KyVmaWxlcwotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENoYW5nZUxv ZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJXtfbGliZGlyfS9saWIle25hbWV9X2NvcmUuc28uKgot KwotKyV7P3dpdGhfbXlzcWw6JWZpbGVzIG15c3FsCi0rJWRlZmF0dHIoLSxyb290LHJvb3QsLSkK LSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKLSsle19saWJkaXJ9 L2xpYiV7bmFtZX1fbXlzcWwuc28uKn0KLSsKLSslez93aXRoX3Bvc3RncmVzcWw6JWZpbGVzIHBv c3RncmVzcWwKLSslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VM b2cgQ09QWUlORyBORVdTIFJFQURNRQotKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9wb3N0Z3Jlc3Fs LnNvLip9Ci0rCi0rJXs/d2l0aF9vcmFjbGU6JWZpbGVzIG9yYWNsZQotKyVkZWZhdHRyKC0scm9v dCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0r JXtfbGliZGlyfS9saWIle25hbWV9X29yYWNsZS5zby4qfQotKwotKwotKyVmaWxlcyBkZXZlbAot KyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5H IE5FV1MgUkVBRE1FCi0rJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9Ci0rJWRpciAle19pbmNs dWRlZGlyfS8le25hbWV9L2NvcmUKLSsle19pbmNsdWRlZGlyfS8le25hbWV9LyouaAotKyV7X2lu Y2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS8qLmgKLSsle19pbmNsdWRlZGlyfS8le25hbWV9L2NvcmUv dGVzdAotKyV7X2JpbmRpcn0vJXtuYW1lfS1jb25maWcKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1f Y29yZS5zbwotKyV7X2xpYmRpcn0vcGtnY29uZmlnLyV7bmFtZX0ucGMKLSsle19kYXRhZGlyfS9h Y2xvY2FsLyV7bmFtZX0ubTQKLSsle19tYW5kaXJ9L21hbjEvJXtuYW1lfS1jb25maWcuMS4qCi0r Ci0rJXs/d2l0aF9teXNxbDolZmlsZXMgbXlzcWwtZGV2ZWwKLSslZGVmYXR0cigtLHJvb3Qscm9v dCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQotKyVkaXIg JXtfaW5jbHVkZWRpcn0vJXtuYW1lfQotKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMv bXlzcWwKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1fbXlzcWwuc299Ci0rCi0rJXs/d2l0aF9wb3N0 Z3Jlc3FsOiVmaWxlcyBwb3N0Z3Jlc3FsLWRldmVsCi0rJWRlZmF0dHIoLSxyb290LHJvb3QsLSkK LSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKLSslZGlyICV7X2lu Y2x1ZGVkaXJ9LyV7bmFtZX0KLSsle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL3Bvc3Rn cmVzcWwKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1fcG9zdGdyZXNxbC5zb30KLSsKLSslez93aXRo X29yYWNsZTolZmlsZXMgb3JhY2xlLWRldmVsCi0rJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKLSsl ZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKLSslZGlyICV7X2luY2x1 ZGVkaXJ9LyV7bmFtZX0KLSsle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL29yYWNsZQot KyV7X2xpYmRpcn0vbGliJXtuYW1lfV9vcmFjbGUuc299Ci0rCi0rCi0rJWZpbGVzIGRvYwotKyVk ZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5F V1MgUkVBRE1FIGRvYwotKwotKwotKyVjaGFuZ2Vsb2cKLSsqIFR1ZSBNYXkgMDUgMjAwOSBEZW5p cyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMTEKLSstIFJlbW92 ZWQgdGhlIGRlcGVuZGVuY3kgb24gTGF0ZXggZm9yIGRvY3VtZW50YXRpb24gZGVsaXZlcnkKLSsK LSsqIFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4 Lm9yZz4gMy4wLjAtMTAKLSstIEJ1cnJpZWQgdGhlIEJvb3N0IEZ1c2lvbiBoZWFkZXIgaW5jbHVk ZSBmb3IgY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCi0rCi0rKiBUdWUgTWF5IDA1IDIwMDkgRGVu aXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTkKLSstIEFkZGVk IGEgbWlzc2luZyBjc3RkaW8gaGVhZGVyIGluY2x1ZGUgZm9yIGcrKy00LjQgY29tcGF0aWJpbGl0 eQotKwotKyogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9y YUBtNHgub3JnPiAzLjAuMC04Ci0rLSBBZGRlZCBtaXNzaW5nIGNzdGRpbyBoZWFkZXIgaW5jbHVk ZXMgZm9yIGcrKy00LjQgY29tcGF0aWJpbGl0eQotKwotKyogVHVlIE1heSAwNSAyMDA5IERlbmlz IEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC03Ci0rLSBBZGRlZCBh IG1pc3NpbmcgY3N0ZGlvIGhlYWRlciBpbmNsdWRlIGZvciBnKystNC40IGNvbXBhdGliaWxpdHkK LSsKLSsqIFNhdCBNYXkgMDIgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFA bTR4Lm9yZz4gMy4wLjAtNgotKy0gUmVtb3ZlZCB0aGUgdW51c2VkIGJ1aWxkIGNvbmRpdGlvbmFs cwotKwotKyogVHVlIEFwciAyOCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9y YUBtNHgub3JnPiAzLjAuMC01Ci0rLSBTaW1wbGlmaWVkIHRoZSBjb25kaXRpb25hbCBidWlsZCBy dWxlcyB3aXRoaW4gdGhlIFJQTSBzcGVjaWZpY2F0aW9uIGZpbGUKLSsKLSsqIFNhdCBBcHIgMTgg MjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNAot Ky0gRml4ZWQgYW4gaXNzdWUgYWJvdXQgT1BURkxBR1MgY29tcGlsYXRpb24KLSsKLSsqIFR1ZSBB cHIgMTQgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4w LjAtMwotKy0gUmVzdGFydGVkIGZyb20gcHJpc3RpbmUgdmVyc2lvbiAzLjAuMCBvZiB1cHN0cmVh bSAoU09DSSkgcHJvamVjdAotKwotKyogU2F0IEFwciAgNCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVu aXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0yCi0rLSBTcGVjaWZpYyBSUE0gZm9yIGVh Y2ggYmFja2VuZAotKwotKyogRnJpIE1hciAyNyAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJu YXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xCi0rLSBGaXJzdCBSUE0gcmVsZWFzZQoKZGlmZiAt LWdpdCBhL3NvY2kuc3BlYyBiL3NvY2kuc3BlYwppbmRleCAyZmYzMWRkLi40OGIwN2M2IDEwMDY0 NAotLS0gYS9zb2NpLnNwZWMKKysrIGIvc29jaS5zcGVjCkBAIC0xOCw3ICsxOCw3IEBACiAjCiBO YW1lOiAgICAgICAgICAgc29jaQogVmVyc2lvbjogICAgICAgIDMuMC4wCi1SZWxlYXNlOiAgICAg ICAgMTElez9kaXN0fQorUmVsZWFzZTogICAgICAgIDEzJXs/ZGlzdH0KIAogU3VtbWFyeTogICAg ICAgIFRoZSBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSBmb3IgQysrIHByb2dyYW1tZXJzCiAKQEAg LTI3LDEzICsyNywxMyBAQCBMaWNlbnNlOiAgICAgICAgQm9vc3QKIFVSTDogICAgICAgICAgICBo dHRwOi8vJXtuYW1lfS5zb3VyY2Vmb3JnZS5uZXQKIFNvdXJjZTA6ICAgICAgICBodHRwOi8vZG93 bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9zb2NpLyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKICMg VGhhdCBwYXRjaCB3aWxsIGJlIHN1Ym1pdHRlZCB1cHN0cmVhbQotUGF0Y2gwOiAgICAgICAgICV7 bmFtZX0tJXt2ZXJzaW9ufS1maXgtZ2NjNDMtY29tcGF0aWJpbGl0eS5wYXRjaAorUGF0Y2gwOiAg ICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS0xMy1maXgtZ2NjNDMtY29tcGF0aWJpbGl0eS5wYXRj aAogIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHVwc3RyZWFtCi1QYXRjaDE6ICAgICAg ICAgJXtuYW1lfS0le3ZlcnNpb259LWZpeC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0 Y2gKK1BhdGNoMTogICAgICAgICAle25hbWV9LSV7dmVyc2lvbn0tMTMtZml4LWdudS1hdXRvdG9v bHMtY29tcGF0aWJpbGl0eS5wYXRjaAogQnVpbGRSb290OiAgICAgICV7X3RtcHBhdGh9LyV7bmFt ZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0gLW4pCiAKLUJ1aWxkUmVx dWlyZXM6ICBib29zdC1kZXZlbCA+PSAxLjM0Ci1CdWlsZFJlcXVpcmVzOiAgY3BwdW5pdC1kZXZl bCA+PSAxLjEwCitCdWlsZFJlcXVpcmVzOiAgYm9vc3QtZGV2ZWwKKyNCdWlsZFJlcXVpcmVzOiAg Y3BwdW5pdC1kZXZlbCA+PSAxLjEwCiBCdWlsZFJlcXVpcmVzOiAgbGlidG9vbAogI1JlcXVpcmVz OiAgICAgICAKIApAQCAtMTMyLDggKzEzMiwxMiBAQCB0byBpbnN0YWxsICV7bmFtZX0tb3JhY2xl Ln0KICVwYWNrYWdlIGRvYwogU3VtbWFyeTogICAgICAgIEhUTUwgZG9jdW1lbnRhdGlvbiBmb3Ig dGhlIFNPQ0kgbGlicmFyeQogR3JvdXA6ICAgICAgICAgIERvY3VtZW50YXRpb24KKyVpZiAwJXs/ ZmVkb3JhfSA+PSAxMAogQnVpbGRBcmNoOiAgICAgIG5vYXJjaAotI0J1aWxkUmVxdWlyZXM6ICBk b3h5Z2VuLCB0ZXhsaXZlLWxhdGV4LCB0ZXhsaXZlLWR2aXBzLCBnaG9zdHNjcmlwdAorI0J1aWxk UmVxdWlyZXM6ICB0ZXhsaXZlLWxhdGV4LCB0ZXhsaXZlLWR2aXBzCislZW5kaWYKKyNCdWlsZFJl cXVpcmVzOiAgdGV0ZXgtbGF0ZXgsIHRldGV4LWR2aXBzCisjQnVpbGRSZXF1aXJlczogIGRveHln ZW4sIGdob3N0c2NyaXB0CiAKICVkZXNjcmlwdGlvbiBkb2MKIFRoaXMgcGFja2FnZSBjb250YWlu cyB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgSFRNTCBmb3JtYXQgb2YgdGhlIFNPQ0kKQEAgLTE0 MiwyNCArMTQ2LDMwIEBAIGxpYnJhcnkuIFRoZSBkb2N1bWVudGF0aW9uIGlzIHRoZSBzYW1lIGFz IGF0IHRoZSBTT0NJIHdlYiBwYWdlLgogCiAlcHJlcAogJXNldHVwIC1xCisKKyMgQXBwbHkgdGhl IGcrKyA0LjMgY29tcGF0aWJpbGl0eSBwYXRjaAorJXBhdGNoMCAtcDEKKwogIyBSZW5hbWUgY2hh bmdlLWxvZyBhbmQgbGljZW5zZSBmaWxlLCBzbyB0aGF0IHRoZXkgY29tcGx5IHdpdGgKICMgcGFj a2FnaW5nIHN0YW5kYXJkCiBtdiBDSEFOR0VTIENoYW5nZUxvZwogbXYgTElDRU5TRV8xXzAudHh0 IENPUFlJTkcKIHJtIC1mIElOU1RBTEwKLSMgQXBwbHkgdGhlIGcrKyA0LjMgY29tcGF0aWJpbGl0 eSBwYXRjaAotJXBhdGNoMCAtcDEKKwogIyBSZW1vdmUgTWFjT1NYIGNvbXBhdGliaWxpdHkgYnVp bGRpbmcgZmlsZXMKIHJtIC1mIGJ1aWxkL3VuaXgvLl8qLnRjbAogcm0gLWYgLl9NYWtlZmlsZSAu X2NvbmZpZ3VyZQotcm0gLWYgc29jaS9jb3JlLy5fKi5oIHNvY2kvY29yZS8uXyouY3BwCi1ybSAt ZiBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvLl8qLmgKK3JtIC1mIHNyYy9jb3JlLy5fKi5oIHNy Yy9jb3JlLy5fKi5jcHAKK3JtIC1mIHNyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLy5fKi5oCiBybSAt ZiBkb2MvLl8qLmh0bWwKKwogIyBSZW5hbWUgdGhlIHNvdXJjZSBjb2RlIGRpcmVjdG9yeSwgc28g dGhhdCB0aGUgZmlsZXMgKGUuZywgaGVhZGVyCiAjIGZpbGVzKSBjYW4gYmUgZXhwb3J0ZWQgY29y cmVjdGx5IGludG8ge19zdGFuZGFyZF9kaXJ9LyV7bmFtZX0KIG12IHNyYyAle25hbWV9CisKICMg QXBwbHkgdGhlIEdOVSBBdXRvdG9vbHMgY29tcGF0aWJpbGl0eSBwYXRjaAogJXBhdGNoMSAtcDEK KwogIyBGaXggc29tZSBwZXJtaXNzaW9ucyBhbmQgZm9ybWF0cwogZmluZCAuL2RvYyAtdHlwZSBm IC1wZXJtIDc1NSAtZXhlYyBjaG1vZCA2NDQge30gXDsKIGNobW9kIC14IEFVVEhPUlMgQ2hhbmdl TG9nIENPUFlJTkcgTkVXUyBSRUFETUUKQEAgLTI3Nyw2ICsyODcsMTIgQEAgcm0gLXJmICRSUE1f QlVJTERfUk9PVAogCiAKICVjaGFuZ2Vsb2cKKyogU2F0IE1heSAwOSAyMDA5IERlbmlzIEFybmF1 ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMworLSBJbnRyb2R1Y2VkIGRp c3RpbmN0IGRlcGVuZGVuY2llcyBmb3IgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbnMKKworKiBUdWUg TWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMu MC4wLTEyCistIFJlbW92ZWQgdGhlIGRlcGVuZGVuY3kgb24gdGhlIHZlcnNpb24gb2YgQm9vc3Qs IGFuZCBvbiBDUFBVbml0CisKICogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMu YXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMQogLSBSZW1vdmVkIHRoZSBkZXBlbmRlbmN5 IG9uIExhdGV4IGZvciBkb2N1bWVudGF0aW9uIGRlbGl2ZXJ5CiAK