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: Owen W. Taylor To: git-commits@fedoraproject.org Subject: [flatpaks/flatpak-runtime] f45: Move tools and data files into subdirectories Date: Fri, 11 Sep 2026 14:40:12 GMT Message-ID: <178913761293.1.7372116763432216545.flatpaks-flatpak-runtime-db33c7e13940@fedoraproject.org> List-ID: X-Git-Repo: flatpaks/flatpak-runtime X-Git-Branch: f45 X-Git-Rev: db33c7e1394080af25480222a6ac1bd16fb8a827 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IGZsYXRwYWtzL2ZsYXRwYWstcnVudGltZQogICAgICAgICAgICBCcmFuY2ggOiBmNDUK ICAgICAgICAgICAgQ29tbWl0IDogZGIzM2M3ZTEzOTQwODBhZjI1NDgwMjIyYTZhYzFiZDE2ZmI4 YTgyNwogICAgICAgICAgICBBdXRob3IgOiBPd2VuIFcuIFRheWxvciA8b3RheWxvckBmaXNoc291 cC5uZXQ+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTgtMDEtMzFUMTE6MjE6MDErMDE6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzI4MzkvLTI4MzUgaW4gMTggZmlsZShzKQogICAgICAgICAgICBV UkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9mbGF0cGFrcy9mbGF0cGFrLXJ1 bnRpbWUvYy9kYjMzYzdlMTM5NDA4MGFmMjU0ODAyMjJhNmFjMWJkMTZmYjhhODI3P2JyYW5jaD1m NDUKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgTW92ZSB0b29scyBhbmQgZGF0YSBmaWxl cyBpbnRvIHN1YmRpcmVjdG9yaWVzCgpEZWNsdXR0ZXIgdGhlIHRvcGxldmVsIGRpcmVjdG9yeSBp biBwcmVwYXJhdGlvbiBmb3IgbWVyZ2luZyB0aGlzIGNvZGUgaW50byB0aGUKZmxhdHBhay1ydW50 aW1lIGRpc3QtZ2l0LgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQpp bmRleCBkYWQ0ZTdkLi43M2Q3NzYzIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRp Z25vcmUKQEAgLTEsMyArMSw0IEBACiBvdXQvKgogY2FjaGUvKgogcmVwb3J0Lmh0bWwKK3Rvb2xz L19fcHljYWNoZV9fClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKZGlmZiAtLWdpdCBhL01h a2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggNmYyNWFlMS4uNjViOGNjMiAxMDA2NDQKLS0tIGEvTWFr ZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTE1LDE3ICsxNSwyMCBAQCBGSUxFX0xJU1RTID0gXAog CiBhbGw6IHJlcG9ydC5odG1sIGZsYXRwYWstcnVudGltZS55YW1sCiAKLXJlcG9ydC5odG1sICQo UFJPRklMRV9GSUxFUyk6ICQoUEFDS0FHRV9MSVNUUykgcGFja2FnZS1ub3Rlcy50eHQgZ2VuZXJh dGUtcmVwb3J0LnB5IHJlcG9ydC10ZW1wbGF0ZS5odG1sCi0JLi9nZW5lcmF0ZS1yZXBvcnQucHkK K3JlcG9ydC5odG1sICQoUFJPRklMRV9GSUxFUyk6ICQoUEFDS0FHRV9MSVNUUykgcGFja2FnZS1u b3Rlcy50eHQgdG9vbHMvZ2VuZXJhdGUtcmVwb3J0LnB5IHJlcG9ydC10ZW1wbGF0ZS5odG1sCisJ Li90b29scy9nZW5lcmF0ZS1yZXBvcnQucHkKIAotZmxhdHBhay1ydW50aW1lLnlhbWw6ICQoUFJP RklMRV9GSUxFUykgZmxhdHBhay1ydW50aW1lLmluLnlhbWwgZ2VuZXJhdGUtbW9kdWxlbWQucHkK LQkuL2dlbmVyYXRlLW1vZHVsZW1kLnB5CiskKEZJTEVfTElTVFMpOiB0b29scy9nZW5lcmF0ZS1m aWxlcy5zaCB0b29scy9saXN0LWZpbGVzLnB5CisJLi90b29scy9nZW5lcmF0ZS1maWxlcy5zaCAk QAogCi0kKEZJTEVfTElTVFMpOiAlLmZpbGVzOiBnZW5lcmF0ZS1maWxlcy5zaCBsaXN0LWZpbGVz LnB5Ci0JLi9nZW5lcmF0ZS1maWxlcy5zaCAkQAorJChQQUNLQUdFX0xJU1RTKTogdG9vbHMvcmVz b2x2ZS1maWxlcy5weSAkKEZJTEVfTElTVFMpCiAKLSUucGFja2FnZXM6ICUuZmlsZXMgcmVzb2x2 ZS1maWxlcy5weQotCS4vcmVzb2x2ZS1maWxlcy5weSAkPAorCWZvciBmIGluICQocGF0c3Vic3Qg JS5wYWNrYWdlcywlLmZpbGVzLCQoUEFDS0FHRV9MSVNUUykpIDsgZG8JXAorCQkuL3Rvb2xzL3Jl c29sdmUtZmlsZXMucHkgJCRmIDsJCVwKKwlkb25lCisKK2ZsYXRwYWstcnVudGltZS55YW1sOiAk KFBST0ZJTEVfRklMRVMpIGZsYXRwYWstcnVudGltZS5pbi55YW1sIHRvb2xzL2dlbmVyYXRlLW1v ZHVsZW1kLnB5CisJLi90b29scy9nZW5lcmF0ZS1tb2R1bGVtZC5weQogCiBjbGVhbjoKIAlybSAt ZiBvdXQvKgoKZGlmZiAtLWdpdCBhL2RhdGEvZjI2LWZsYXRwYWstcnVudGltZS5wYWNrYWdlcyBi L2RhdGEvZjI2LWZsYXRwYWstcnVudGltZS5wYWNrYWdlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi41MzhmZjI0Ci0tLSAvZGV2L251bGwKKysrIGIvZGF0YS9mMjYtZmxhdHBh ay1ydW50aW1lLnBhY2thZ2VzCkBAIC0wLDAgKzEsMjA0IEBACithYmF0dGlzLWNhbnRhcmVsbC1m b250cworYWNsCithZHdhaXRhLWN1cnNvci10aGVtZQorYWR3YWl0YS1ndGsyLXRoZW1lCithZHdh aXRhLWljb24tdGhlbWUKK2F0LXNwaTItYXRrCithdC1zcGkyLWNvcmUKK2F0aworYXVkaXQtbGli cworYXZhaGktbGlicworYmFzZXN5c3RlbQorYmFzaAorYnppcDItbGlicworY2EtY2VydGlmaWNh dGVzCitjYWlybworY2Fpcm8tZ29iamVjdAorY2hrY29uZmlnCitjb2xvcmQtbGlicworY29yZXV0 aWxzCitjb3JldXRpbHMtY29tbW9uCitjcmFja2xpYgorY3J5cHRvLXBvbGljaWVzCitjcnlwdHNl dHVwLWxpYnMKK2N1cHMtbGlicworZGJ1cworZGJ1cy1saWJzCitkZXZpY2UtbWFwcGVyCitkZXZp Y2UtbWFwcGVyLWxpYnMKK2VsZnV0aWxzLWRlZmF1bHQteWFtYS1zY29wZQorZWxmdXRpbHMtbGli ZWxmCitlbGZ1dGlscy1saWJzCitlbWFjcy1maWxlc3lzdGVtCitlbmNoYW50CitleHBhdAorZmVk b3JhLW1vZHVsYXItcmVsZWFzZQorZmVkb3JhLW1vZHVsYXItcmVwb3MKK2ZpbGVzeXN0ZW0KK2Zs YXRwYWstcnVudGltZS1jb25maWcKK2ZvbnRjb25maWcKK2ZvbnRwYWNrYWdlcy1maWxlc3lzdGVt CitmcmVldHlwZQorZ2F3aworZ2RibQorZ2RrLXBpeGJ1ZjIKK2dkay1waXhidWYyLW1vZHVsZXMK K2dsaWItbmV0d29ya2luZworZ2xpYjIKK2dsaWJjCitnbGliYy1hbGwtbGFuZ3BhY2tzCitnbGli Yy1jb21tb24KK2dtcAorZ25vbWUtZGVza3RvcDMKK2dub21lLXRoZW1lcy1zdGFuZGFyZAorZ251 dGxzCitnb2JqZWN0LWludHJvc3BlY3Rpb24KK2dyYXBoaXRlMgorZ3JlcAorZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcworZ3RrLXVwZGF0ZS1pY29uLWNhY2hlCitndGsyCitndGszCitndmZzLWNs aWVudAorZ3ppcAoraGFyZmJ1enoKK2hpY29sb3ItaWNvbi10aGVtZQoraHVuc3BlbGwKK2h1bnNw ZWxsLWVuLUdCCitodW5zcGVsbC1lbi1VUworaHdkYXRhCitpbmZvCitpcHRhYmxlcy1saWJzCitq YXNwZXItbGlicworamJpZ2tpdC1saWJzCitqc29uLWdsaWIKK2tleXV0aWxzLWxpYnMKK2ttb2Qt bGlicwora3JiNS1saWJzCitsY21zMgorbGliWDExCitsaWJYMTEtY29tbW9uCitsaWJYYXUKK2xp Ylhjb21wb3NpdGUKK2xpYlhjdXJzb3IKK2xpYlhkYW1hZ2UKK2xpYlhleHQKK2xpYlhmaXhlcwor bGliWGZ0CitsaWJYaQorbGliWGluZXJhbWEKK2xpYlhyYW5kcgorbGliWHJlbmRlcgorbGliWHRz dAorbGliWHhmODZ2bQorbGliYWNsCitsaWJhcHBzdHJlYW0tZ2xpYgorbGliYXJjaGl2ZQorbGli YXR0cgorbGliYmxraWQKK2xpYmNhcAorbGliY2FwLW5nCitsaWJjb21fZXJyCitsaWJjcm9jbwor bGliY3J5cHQKK2xpYmRhdHJpZQorbGliZGIKK2xpYmRybQorbGliZXBveHkKK2xpYmZkaXNrCits aWJmZmkKK2xpYmdjYWIxCitsaWJnY2MKK2xpYmdjcnlwdAorbGliZ2x2bmQKK2xpYmdsdm5kLWVn bAorbGliZ2x2bmQtZ2x4CitsaWJncGctZXJyb3IKK2xpYmd1c2IKK2xpYmlkbgorbGliaWRuMgor bGlianBlZy10dXJibworbGlibW9kbWFuCitsaWJtb3VudAorbGlibm90aWZ5CitsaWJwY2FwCits aWJwY2lhY2Nlc3MKK2xpYnBuZworbGlicHJveHkKK2xpYnB3cXVhbGl0eQorbGlicnN2ZzIKK2xp YnNlY2NvbXAKK2xpYnNlbGludXgKK2xpYnNlbWFuYWdlCitsaWJzZXBvbAorbGlic2lnc2Vndgor bGlic21hcnRjb2xzCitsaWJzb3VwCitsaWJzdGRjKysKK2xpYnN0ZW1tZXIKK2xpYnRhc24xCits aWJ0aGFpCitsaWJ0aWZmCitsaWJ1bmlzdHJpbmcKK2xpYnVzYngKK2xpYnV0ZW1wdGVyCitsaWJ1 dWlkCitsaWJ2ZXJ0bworbGlid2F5bGFuZC1jbGllbnQKK2xpYndheWxhbmQtY3Vyc29yCitsaWJ3 YXlsYW5kLXNlcnZlcgorbGlieGNiCitsaWJ4a2Jjb21tb24KK2xpYnhtbDIKK2xpYnhzaG1mZW5j ZQorbHo0LWxpYnMKK2x6bworbWVzYS1saWJFR0wKK21lc2EtbGliR0wKK21lc2EtbGliZ2JtCitt ZXNhLWxpYmdsYXBpCittZXNhLWxpYndheWxhbmQtZWdsCittcGZyCituY3Vyc2VzCituY3Vyc2Vz LWJhc2UKK25jdXJzZXMtbGlicworbmV0dGxlCitvcGVuc3NsLWxpYnMKK3AxMS1raXQKK3AxMS1r aXQtdHJ1c3QKK3BhbQorcGFuZ28KK3BjcmUKK3BpeG1hbgorcG9wdAorcHl0aG9uMworcHl0aG9u My1hcHBkaXJzCitweXRob24zLWNhaXJvCitweXRob24zLWdvYmplY3QKK3B5dGhvbjMtZ29iamVj dC1iYXNlCitweXRob24zLWxpYnMKK3B5dGhvbjMtcGFja2FnaW5nCitweXRob24zLXBpcAorcHl0 aG9uMy1weXBhcnNpbmcKK3B5dGhvbjMtc2V0dXB0b29scworcHl0aG9uMy1zaXgKK3FyZW5jb2Rl LWxpYnMKK3JlYWRsaW5lCityZXN0CitzZWQKK3NldHVwCitzaGFkb3ctdXRpbHMKK3NoYXJlZC1t aW1lLWluZm8KK3NxbGl0ZS1saWJzCitzeXN0ZW0tcHl0aG9uCitzeXN0ZW0tcHl0aG9uLWxpYnMK K3N5c3RlbWQKK3N5c3RlbWQtbGlicworc3lzdGVtZC1wYW0KK3R6ZGF0YQordXN0cgordXRpbC1s aW51eAoreGtleWJvYXJkLWNvbmZpZworeHotbGlicworemVuaXR5Cit6bGliCgpkaWZmIC0tZ2l0 IGEvZGF0YS9mMjctbGl2ZS5wYWNrYWdlcyBiL2RhdGEvZjI3LWxpdmUucGFja2FnZXMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyZjVlZgotLS0gL2Rldi9udWxsCisrKyBi L2RhdGEvZjI3LWxpdmUucGFja2FnZXMKQEAgLTAsMCArMSwxNTYxIEBACithYWpvaGFuLWNvbWZv cnRhYS1mb250cworYWJhdHRpcy1jYW50YXJlbGwtZm9udHMKK2FicnQKK2FicnQtYWRkb24tY2Nw cAorYWJydC1hZGRvbi1jb3JlZHVtcC1oZWxwZXIKK2FicnQtYWRkb24ta2VybmVsb29wcworYWJy dC1hZGRvbi1wc3RvcmVvb3BzCithYnJ0LWFkZG9uLXZtY29yZQorYWJydC1hZGRvbi14b3JnCith YnJ0LWNsaQorYWJydC1kYnVzCithYnJ0LWRlc2t0b3AKK2FicnQtZ3VpCithYnJ0LWd1aS1saWJz CithYnJ0LWphdmEtY29ubmVjdG9yCithYnJ0LWxpYnMKK2FicnQtcGx1Z2luLWJvZGhpCithYnJ0 LXJldHJhY2UtY2xpZW50CithYnJ0LXR1aQorYWNjb3VudHNzZXJ2aWNlCithY2NvdW50c3NlcnZp Y2UtbGlicworYWNsCithZGNsaQorYWRvYmUtc291cmNlLWhhbi1zYW5zLWNuLWZvbnRzCithZG9i ZS1zb3VyY2UtaGFuLXNhbnMtdHctZm9udHMKK2Fkb2JlLXNvdXJjZS1oYW4tc2VyaWYtY24tZm9u dHMKK2Fkb2JlLXNvdXJjZS1oYW4tc2VyaWYtdHctZm9udHMKK2Fkd2FpdGEtY3Vyc29yLXRoZW1l CithZHdhaXRhLWd0azItdGhlbWUKK2Fkd2FpdGEtaWNvbi10aGVtZQorYWR3YWl0YS1xdDQKK2Fk d2FpdGEtcXQ1CithbHNhLWxpYgorYWxzYS1wbHVnaW5zLXB1bHNlYXVkaW8KK2Fsc2EtdWNtCith bHNhLXV0aWxzCithbmFjb25kYQorYW5hY29uZGEtY29yZQorYW5hY29uZGEtZ3VpCithbmFjb25k YS10dWkKK2FuYWNvbmRhLXVzZXItaGVscAorYW5hY29uZGEtd2lkZ2V0cworYXBwc3RyZWFtLWRh dGEKK2FwcgorYXByLXV0aWwKK2FyZ3lsbGNtcworYXRrCithdGttbQorYXRtZWwtZmlybXdhcmUK K2F0LXNwaTItYXRrCithdC1zcGkyLWNvcmUKK2F0dHIKK2F1ZGl0CithdWRpdC1saWJzCithdWRp dC1saWJzLXB5dGhvbjMKK2F1Z2Vhcy1saWJzCithdXRoY29uZmlnCithdXRvY29yci1lbgorYXZh aGkKK2F2YWhpLWdsaWIKK2F2YWhpLWxpYnMKK2I0My1md2N1dHRlcgorYjQzLW9wZW5md3dmCiti YW9iYWIKK2Jhc2VzeXN0ZW0KK2Jhc2gKK2Jhc2gtY29tcGxldGlvbgorYmMKK2JjYWNoZS10b29s cworYmluZDk5LWxpYnMKK2JpbmQ5OS1saWNlbnNlCitiaW5kLWxpYnMKK2JpbmQtbGlicy1saXRl CitiaW5kLWxpY2Vuc2UKK2JpbmQtdXRpbHMKK2JsaXZldC1ndWktcnVudGltZQorYmx1ZXoKK2Js dWV6LWN1cHMKK2JsdWV6LWxpYnMKK2JsdWV6LW9iZXhkCitib29zdC1kYXRlLXRpbWUKK2Jvb3N0 LWZpbGVzeXN0ZW0KK2Jvb3N0LWlvc3RyZWFtcworYm9vc3Qtc3lzdGVtCiticmFzZXJvLWxpYnMK K2JyaWRnZS11dGlscworYnJsYXBpCiticmx0dHkKK2J0cmZzLXByb2dzCitidWJibGV3cmFwCiti emlwMgorYnppcDItbGlicworY2EtY2VydGlmaWNhdGVzCitjYWlybworY2Fpcm8tZ29iamVjdAor Y2Fpcm9tbQorYy1hcmVzCitjYXJpYm91CitjYXJpYm91LWd0azItbW9kdWxlCitjYXJpYm91LWd0 azMtbW9kdWxlCitjZHBhcmFub2lhLWxpYnMKK2NlbHQwNTEKK2NoZWNrcG9saWN5CitjaGVlc2UK K2NoZWVzZS1saWJzCitjaGtjb25maWcKK2Nocm9ueQorY2lmcy11dGlscworY2xkci1lbW9qaS1h bm5vdGF0aW9uCitjbHVjZW5lLWNvbnRyaWJzLWxpYgorY2x1Y2VuZS1jb3JlCitjbHV0dGVyCitj bHV0dGVyLWdzdDIKK2NsdXR0ZXItZ3N0MworY2x1dHRlci1ndGsKK2NvZ2wKK2NvbG9yZAorY29s b3JkLWd0aworY29sb3JkLWxpYnMKK2NvbG9yLWZpbGVzeXN0ZW0KK2NvbXBhdC1vcGVuc3NsMTAK K2NvbXBzLWV4dHJhcworY29udHJvbC1jZW50ZXIKK2NvbnRyb2wtY2VudGVyLWZpbGVzeXN0ZW0K K2NvcHktamRrLWNvbmZpZ3MKK2NvcmV1dGlscworY29yZXV0aWxzLWNvbW1vbgorY29yb3N5bmMK K2Nvcm9zeW5jbGliCitjcGlvCitjcmFja2xpYgorY3JhY2tsaWItZGljdHMKK2NyZGEKK2NyZWF0 ZXJlcG9fYworY3JlYXRlcmVwb19jLWxpYnMKK2Nyb25pZQorY3JvbmllLWFuYWNyb24KK2Nyb250 YWJzCitjcnlwdG8tcG9saWNpZXMKK2NyeXB0c2V0dXAKK2NyeXB0c2V0dXAtbGlicworY3Vwcwor Y3Vwcy1jbGllbnQKK2N1cHMtZmlsZXN5c3RlbQorY3Vwcy1maWx0ZXJzCitjdXBzLWZpbHRlcnMt bGlicworY3Vwcy1saWJzCitjdXBzLXBrLWhlbHBlcgorY3VybAorY3lydXMtc2FzbAorY3lydXMt c2FzbC1nc3NhcGkKK2N5cnVzLXNhc2wtbGliCitjeXJ1cy1zYXNsLXBsYWluCitkYnVzCitkYnVz LWdsaWIKK2RidXMtbGlicworZGJ1c21lbnUtcXQKK2RidXMteDExCitkYnh0b29sCitkY29uZgor ZGVqYXZ1LWZvbnRzLWNvbW1vbgorZGVqYXZ1LXNhbnMtZm9udHMKK2RlamF2dS1zYW5zLW1vbm8t Zm9udHMKK2RlamF2dS1zZXJpZi1mb250cworZGVsdGFycG0KK2Rlc2t0b3AtYmFja2dyb3VuZHMt Z25vbWUKK2Rlc2t0b3AtZmlsZS11dGlscworZGV2aWNlLW1hcHBlcgorZGV2aWNlLW1hcHBlci1l dmVudAorZGV2aWNlLW1hcHBlci1ldmVudC1saWJzCitkZXZpY2UtbWFwcGVyLWxpYnMKK2Rldmlj ZS1tYXBwZXItbXVsdGlwYXRoCitkZXZpY2UtbWFwcGVyLW11bHRpcGF0aC1saWJzCitkZXZpY2Ut bWFwcGVyLXBlcnNpc3RlbnQtZGF0YQorZGhjcC1jbGllbnQKK2RoY3AtY29tbW9uCitkaGNwLWxp YnMKK2RpZmZ1dGlscworZGp2dWxpYnJlLWxpYnMKK2RsZXluYS1jb25uZWN0b3ItZGJ1cworZGxl eW5hLWNvcmUKK2RsZXluYS1zZXJ2ZXIKK2RtaWRlY29kZQorZG1yYWlkCitkbXJhaWQtZXZlbnRz CitkbmYKK2RuZi1jb25mCitkbmYtcGx1Z2lucy1jb3JlCitkbmYteXVtCitkbnNtYXNxCitkb3My dW5peAorZG9zZnN0b29scworZG90Y29uZgorZHJhY3V0CitkcmFjdXQtY29uZmlnLXJlc2N1ZQor ZHJhY3V0LWxpdmUKK2RyYWN1dC1uZXR3b3JrCitkcnBtCitlMmZzcHJvZ3MKK2UyZnNwcm9ncy1s aWJzCitlYnRhYmxlcworZWRrMi1vdm1mCitlZmlib290bWdyCitlZml2YXIKK2VmaXZhci1saWJz CitlbGZ1dGlscworZWxmdXRpbHMtZGVmYXVsdC15YW1hLXNjb3BlCitlbGZ1dGlscy1saWJlbGYK K2VsZnV0aWxzLWxpYnMKK2VtYWNzLWZpbGVzeXN0ZW0KK2VuY2EKK2VuY2hhbnQKK2VvZworZXBp cGhhbnktcnVudGltZQorZXNwZWFrCitldGh0b29sCitldmluY2UKK2V2aW5jZS1kanZ1Citldmlu Y2UtbGlicworZXZpbmNlLW5hdXRpbHVzCitldm9sdXRpb24KK2V2b2x1dGlvbi1kYXRhLXNlcnZl cgorZXZvbHV0aW9uLWRhdGEtc2VydmVyLWxhbmdwYWNrcworZXZvbHV0aW9uLWV3cworZXZvbHV0 aW9uLWV3cy1sYW5ncGFja3MKK2V2b2x1dGlvbi1oZWxwCitldm9sdXRpb24tbGFuZ3BhY2tzCitl eGVtcGkKK2V4aXYyCitleGl2Mi1saWJzCitleHBhdAorZjI3LWJhY2tncm91bmRzLWJhc2UKK2Yy Ny1iYWNrZ3JvdW5kcy1nbm9tZQorZmNvZS11dGlscworZmVkb3JhLWJvb2ttYXJrcworZmVkb3Jh LWxvZ29zCitmZWRvcmEtbG9nb3MtaHR0cGQKK2ZlZG9yYS1wcm9kdWN0aW1nLXdvcmtzdGF0aW9u CitmZWRvcmEtcmVsZWFzZQorZmVkb3JhLXJlbGVhc2Utd29ya3N0YXRpb24KK2ZlZG9yYS1yZXBv cworZmVkb3JhLXJlcG9zLXJhd2hpZGUKK2ZlZG9yYS11c2VyLWFnZW50LWNocm9tZQorZmVkb3Jh LXdvcmtzdGF0aW9uLWJhY2tncm91bmRzCitmaWxlCitmaWxlLWxpYnMKK2ZpbGUtcm9sbGVyCitm aWxlLXJvbGxlci1uYXV0aWx1cworZmlsZXN5c3RlbQorZmluZHV0aWxzCitmaXBzY2hlY2sKK2Zp cHNjaGVjay1saWIKK2ZpcmVmb3gKK2ZpcmV3YWxsZAorZmlyZXdhbGxkLWZpbGVzeXN0ZW0KK2Zs YWMtbGlicworZmxhdHBhaworZmxhdHBhay1saWJzCitmb2xrcworZm9udGNvbmZpZworZm9udHBh Y2thZ2VzLWZpbGVzeXN0ZW0KK2Zvb21hdGljCitmb29tYXRpYy1kYgorZm9vbWF0aWMtZGItZmls ZXN5c3RlbQorZm9vbWF0aWMtZGItcHBkcworZnBhc3RlCitmcHJpbnRkCitmcHJpbnRkLXBhbQor ZnJlZXR5cGUKK2ZyZWkwci1wbHVnaW5zCitmcm9zCitmcm9zLWdub21lCitmdXNlCitmdXNlLWNv bW1vbgorZnVzZS1saWJzCitmd3VwZAorZnd1cGRhdGUtZWZpCitmd3VwZGF0ZS1saWJzCitmd3Vw ZC1sYWJlbHMKK2dhdmwKK2dhd2sKK2djCitHQ29uZjIKK2djcgorZ2QKK2dkYi1oZWFkbGVzcwor Z2RibQorZ2Rpc2sKK2dkay1waXhidWYyCitnZGstcGl4YnVmMi1tb2R1bGVzCitnZG0KK2dkb3Vy b3Mtc3ltYm9sYS1mb250cworZ2VkaXQKK2dlbmlzb2ltYWdlCitnZW9jbHVlMgorZ2VvY2x1ZTIt bGlicworZ2VvY29kZS1nbGliCitHZW9JUAorR2VvSVAtR2VvTGl0ZS1kYXRhCitnZXR0ZXh0Citn ZXR0ZXh0LWxpYnMKK2dmYmdyYXBoCitnaG9zdHNjcmlwdAorZ2hvc3RzY3JpcHQtY29yZQorZ2hv c3RzY3JpcHQtZm9udHMKK2dob3N0c2NyaXB0LXgxMQorZ2lmbGliCitnaXQKK2dpdC1jb3JlCitn aXQtY29yZS1kb2MKK2dqcworZ2xhZGUtbGlicworZ2xpYjIKK2dsaWJjCitnbGliYy1hbGwtbGFu Z3BhY2tzCitnbGliYy1jb21tb24KK2dsaWJjLWxhbmdwYWNrLWVuCitnbGlibW0yNAorZ2xpYi1u ZXR3b3JraW5nCitnbHVzdGVyZnMKK2dsdXN0ZXJmcy1hcGkKK2dsdXN0ZXJmcy1jbGkKK2dsdXN0 ZXJmcy1jbGllbnQteGxhdG9ycworZ2x1c3RlcmZzLWZ1c2UKK2dsdXN0ZXJmcy1saWJzCitnbHgt dXRpbHMKK2dtaW1lMzAKK2dtcAorZ25vbWUtYWJydAorZ25vbWUtYXV0b2FyCitnbm9tZS1iYWNr Z3JvdW5kcworZ25vbWUtYmx1ZXRvb3RoCitnbm9tZS1ibHVldG9vdGgtbGlicworZ25vbWUtYm94 ZXMKK2dub21lLWNhbGN1bGF0b3IKK2dub21lLWNhbGVuZGFyCitnbm9tZS1jaGFyYWN0ZXJzCitn bm9tZS1jbGFzc2ljLXNlc3Npb24KK2dub21lLWNsb2NrcworZ25vbWUtY29sb3ItbWFuYWdlcgor Z25vbWUtY29udGFjdHMKK2dub21lLWRlc2t0b3AzCitnbm9tZS1kaXNrLXV0aWxpdHkKK2dub21l LWRvY3VtZW50cworZ25vbWUtZG9jdW1lbnRzLWxpYnMKK2dub21lLWZvbnQtdmlld2VyCitnbm9t ZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcworZ25vbWUtaW5pdGlhbC1zZXR1cAorZ25vbWUta2V5cmlu ZworZ25vbWUta2V5cmluZy1wYW0KK2dub21lLWxvZ3MKK2dub21lLW1hcHMKK2dub21lLW1lbnVz Citnbm9tZS1vbmxpbmUtYWNjb3VudHMKK2dub21lLW9ubGluZS1taW5lcnMKK2dub21lLXNjcmVl bnNob3QKK2dub21lLXNlc3Npb24KK2dub21lLXNlc3Npb24td2F5bGFuZC1zZXNzaW9uCitnbm9t ZS1zZXNzaW9uLXhzZXNzaW9uCitnbm9tZS1zZXR0aW5ncy1kYWVtb24KK2dub21lLXNoZWxsCitn bm9tZS1zaGVsbC1leHRlbnNpb24tYWx0ZXJuYXRlLXRhYgorZ25vbWUtc2hlbGwtZXh0ZW5zaW9u LWFwcHMtbWVudQorZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJhY2tncm91bmQtbG9nbworZ25vbWUt c2hlbGwtZXh0ZW5zaW9uLWNvbW1vbgorZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxhdW5jaC1uZXct aW5zdGFuY2UKK2dub21lLXNoZWxsLWV4dGVuc2lvbi1wbGFjZXMtbWVudQorZ25vbWUtc2hlbGwt ZXh0ZW5zaW9uLXdpbmRvdy1saXN0Citnbm9tZS1zb2Z0d2FyZQorZ25vbWUtc3lzdGVtLW1vbml0 b3IKK2dub21lLXRlcm1pbmFsCitnbm9tZS10ZXJtaW5hbC1uYXV0aWx1cworZ25vbWUtdGhlbWVz LXN0YW5kYXJkCitnbm9tZS10b2RvCitnbm9tZS11c2VyLWRvY3MKK2dub21lLXVzZXItc2hhcmUK K2dub21lLXZpZGVvLWVmZmVjdHMKK2dub21lLXdlYXRoZXIKK2dudS1mcmVlLWZvbnRzLWNvbW1v bgorZ251LWZyZWUtbW9uby1mb250cworZ251LWZyZWUtc2Fucy1mb250cworZ251LWZyZWUtc2Vy aWYtZm9udHMKK2dudXBnCitnbnVwZzIKK2dudXBnMi1zbWltZQorZ251dGxzCitnb2JqZWN0LWlu dHJvc3BlY3Rpb24KK2dvbQorZ29vZ2xlLWFuZHJvaWQtZW1vamktZm9udHMKK2dvb2dsZS1jcm9z ZXh0cmEtY2FsYWRlYS1mb250cworZ29vZ2xlLWNyb3NleHRyYS1jYXJsaXRvLWZvbnRzCitnb29n bGUtbm90by1lbW9qaS1mb250cworZ29vZ2xlLW5vdG8tZm9udHMtY29tbW9uCitnb29nbGUtbm90 by1zYW5zLWxpc3UtZm9udHMKK2dvb2dsZS1ub3RvLXNhbnMtbWFuZGFpYy1mb250cworZ29vZ2xl LW5vdG8tc2Fucy1tZWV0ZWktbWF5ZWstZm9udHMKK2dvb2dsZS1ub3RvLXNhbnMtc2luaGFsYS1m b250cworZ29vZ2xlLW5vdG8tc2Fucy10YWdhbG9nLWZvbnRzCitnb29nbGUtbm90by1zYW5zLXRh aS10aGFtLWZvbnRzCitnb29nbGUtbm90by1zYW5zLXRhaS12aWV0LWZvbnRzCitncGVyZnRvb2xz LWxpYnMKK2dwZ21lCitncGdtZXBwCitncGctcHVia2V5CitncmFwaGl0ZTIKK2dyZXAKK2dyaWxv Citncmlsby1wbHVnaW5zCitncm9mZi1iYXNlCitncnViMi1jb21tb24KK2dydWIyLWVmaS1pYTMy CitncnViMi1lZmktaWEzMi1jZGJvb3QKK2dydWIyLWVmaS14NjQKK2dydWIyLWVmaS14NjQtY2Ri b290CitncnViMi1wYworZ3J1YjItcGMtbW9kdWxlcworZ3J1YjItdG9vbHMKK2dydWIyLXRvb2xz LWVmaQorZ3J1YjItdG9vbHMtZXh0cmEKK2dydWIyLXRvb2xzLW1pbmltYWwKK2dydWJieQorZ3Nl dHRpbmdzLWRlc2t0b3Atc2NoZW1hcworZ3NtCitnc291bmQKK2dzcGVsbAorZ3NzZHAKK2dzc3By b3h5Citnc3RyZWFtZXIxCitnc3RyZWFtZXIxLXBsdWdpbnMtYmFkLWZyZWUKK2dzdHJlYW1lcjEt cGx1Z2lucy1iYWQtZnJlZS1ndGsKK2dzdHJlYW1lcjEtcGx1Z2lucy1iYXNlCitnc3RyZWFtZXIx LXBsdWdpbnMtZ29vZAorZ3N0cmVhbWVyMS1wbHVnaW5zLXVnbHktZnJlZQorZ3RrMgorZ3RrMwor Z3RrbW0yNAorZ3RrbW0zMAorZ3Rrc291cmNldmlldzMKK2d0a3NwZWxsMworZ3RrLXVwZGF0ZS1p Y29uLWNhY2hlCitndGstdm5jMgorZ3VpbGUKK2d1cG5wCitndXBucC1hdgorZ3VwbnAtZGxuYQor Z3V0ZW5wcmludAorZ3V0ZW5wcmludC1jdXBzCitndXRlbnByaW50LWxpYnMKK2d2ZnMKK2d2ZnMt YWZjCitndmZzLWFmcAorZ3Zmcy1hcmNoaXZlCitndmZzLWNsaWVudAorZ3Zmcy1mdXNlCitndmZz LWdvYQorZ3Zmcy1ncGhvdG8yCitndmZzLW10cAorZ3Zmcy1zbWIKK2d2bmMKK2d6aXAKK2hhcmRs aW5rCitoYXJmYnV6egoraGFyZmJ1enotaWN1CitoZnNwbHVzLXRvb2xzCitoaWNvbG9yLWljb24t dGhlbWUKK2hpZ2hsaWdodAoraG9zdG5hbWUKK2hwbGlwCitocGxpcC1jb21tb24KK2hwbGlwLWxp YnMKK2h0dHBkCitodHRwZC1maWxlc3lzdGVtCitodHRwZC10b29scworaHR0cC1wYXJzZXIKK2h1 bnNwZWxsCitodW5zcGVsbC1lbgoraHVuc3BlbGwtZW4tR0IKK2h1bnNwZWxsLWVuLVVTCitod2Rh dGEKK2h5cGVydi1kYWVtb25zCitoeXBlcnYtZGFlbW9ucy1saWNlbnNlCitoeXBlcnZmY29weWQK K2h5cGVydmt2cGQKK2h5cGVydnZzc2QKK2h5cGhlbgoraHlwaGVuLWVuCitpYnVzCitpYnVzLWd0 azIKK2lidXMtZ3RrMworaWJ1cy1oYW5ndWwKK2lidXMta2tjCitpYnVzLWxpYnBpbnlpbgoraWJ1 cy1saWJzCitpYnVzLWxpYnpodXlpbgoraWJ1cy1tMTduCitpYnVzLXF0CitpYnVzLXJhd2NvZGUK K2lidXMtc2V0dXAKK2lidXMtdHlwaW5nLWJvb3N0ZXIKK2lidXMtd2F5bGFuZAoraWlvLXNlbnNv ci1wcm94eQoraW5mbworaW5pdHNjcmlwdHMKK2lwY2FsYworaXByb3V0ZQoraXByb3V0ZS10Ywor aXBzZXQKK2lwc2V0LWxpYnMKK2lwdGFibGVzCitpcHRhYmxlcy1saWJzCitpcHRzdGF0ZQoraXB1 dGlscworaXB3MjEwMC1maXJtd2FyZQoraXB3MjIwMC1maXJtd2FyZQoraXB4ZS1yb21zLXFlbXUK K2lzY3NpLWluaXRpYXRvci11dGlscworaXNjc2ktaW5pdGlhdG9yLXV0aWxzLWlzY3NpdWlvCitp c25zLXV0aWxzLWxpYnMKK2lzby1jb2RlcworaXNvbWQ1c3VtCitpdworaXdsMTAwMC1maXJtd2Fy ZQoraXdsMTAwLWZpcm13YXJlCitpd2wxMDUtZmlybXdhcmUKK2l3bDEzNS1maXJtd2FyZQoraXds MjAwMC1maXJtd2FyZQoraXdsMjAzMC1maXJtd2FyZQoraXdsMzE2MC1maXJtd2FyZQoraXdsMzk0 NS1maXJtd2FyZQoraXdsNDk2NS1maXJtd2FyZQoraXdsNTAwMC1maXJtd2FyZQoraXdsNTE1MC1m aXJtd2FyZQoraXdsNjAwMC1maXJtd2FyZQoraXdsNjAwMGcyYS1maXJtd2FyZQoraXdsNjAwMGcy Yi1maXJtd2FyZQoraXdsNjA1MC1maXJtd2FyZQoraXdsNzI2MC1maXJtd2FyZQoramFuc3Nvbgor amFzcGVyLWxpYnMKK2phdmEtMS44LjAtb3Blbmpkay1oZWFkbGVzcworamF2YXBhY2thZ2VzLXRv b2xzCitqYmlna2l0LWxpYnMKK2ppbXRjbAoram9tb2xoYXJpLWZvbnRzCitqcy1qcXVlcnkKK2pz b24tYworanNvbi1nbGliCitqdWxpZXRhdWxhLW1vbnRzZXJyYXQtZm9udHMKK2p3aG9pcwora2Jk CitrYmQtbGVnYWN5CitrYmQtbWlzYwora2VybmVsCitrZXJuZWwtY29yZQora2VybmVsLW1vZHVs ZXMKK2tlcm5lbC1tb2R1bGVzLWV4dHJhCitrZXhlYy10b29scwora2V4ZWMtdG9vbHMtYW5hY29u ZGEtYWRkb24KK2tleWJpbmRlcjMKK2tleXV0aWxzCitrZXl1dGlscy1saWJzCitraG1lcm9zLWJh c2UtZm9udHMKK2tobWVyb3MtZm9udHMtY29tbW9uCitrbW9kCitrbW9kLWxpYnMKK2twYXJ0eAor a3JiNS1saWJzCitreW90b2NhYmluZXQtbGlicworbGFtZS1saWJzCitsYW5ncGFja3MtZW4KK2xh bmd0YWJsZQorbGFuZ3RhYmxlLWRhdGEKK2xhbmd0YWJsZS1weXRob24zCitsY21zMgorbGVzcwor bGliYTUyCitsaWJhYncKK2xpYmFjbAorbGliYWlvCitsaWJhbworbGliYXBwc3RyZWFtLWdsaWIK K2xpYmFyY2hpdmUKK2xpYmFzc3VhbgorbGliYXN5bmNucworbGliYXRhc21hcnQKK2xpYmF0b21p Y19vcHMKK2xpYmF0dHIKK2xpYmF2YzEzOTQKK2xpYmJhYmVsdHJhY2UKK2xpYmJhc2ljb2JqZWN0 cworbGliYmxraWQKK2xpYmJsb2NrZGV2CitsaWJibG9ja2Rldi1idHJmcworbGliYmxvY2tkZXYt Y3J5cHRvCitsaWJibG9ja2Rldi1kbQorbGliYmxvY2tkZXYtZnMKK2xpYmJsb2NrZGV2LWtiZAor bGliYmxvY2tkZXYtbG9vcAorbGliYmxvY2tkZXYtbHZtCitsaWJibG9ja2Rldi1tZHJhaWQKK2xp YmJsb2NrZGV2LW1wYXRoCitsaWJibG9ja2Rldi1wYXJ0CitsaWJibG9ja2Rldi1wbHVnaW5zLWFs bAorbGliYmxvY2tkZXYtc3dhcAorbGliYmxvY2tkZXYtdXRpbHMKK2xpYmJsdXJheQorbGliYnl0 ZXNpemUKK2xpYmNhY2FyZAorbGliY2FuYmVycmEKK2xpYmNhbmJlcnJhLWd0azIKK2xpYmNhbmJl cnJhLWd0azMKK2xpYmNhcAorbGliY2FwLW5nCitsaWJjZGlvCitsaWJjZGlvLXBhcmFub2lhCits aWJjZHIKK2xpYmNncm91cAorbGliY2hhbXBsYWluCitsaWJjaGFtcGxhaW4tZ3RrCitsaWJjbWlz CitsaWJjb2xsZWN0aW9uCitsaWJjb21fZXJyCitsaWJjb21wcworbGliY29uZmlnCitsaWJjcm9j bworbGliY3J5cHQtbnNzCitsaWJjcnlwdHVpCitsaWJjdWUKK2xpYmN1cmwKK2xpYmRhZW1vbgor bGliZGF0cmllCitsaWJkYgorbGliZGItdXRpbHMKK2xpYmRmdQorbGliZGhhc2gKK2xpYmRtYXBz aGFyaW5nCitsaWJkbXgKK2xpYmRuZXQKK2xpYmRuZgorbGliZHJtCitsaWJkdgorbGliZHZkbmF2 CitsaWJkdmRyZWFkCitsaWJlLWJvb2sKK2xpYmVkaXQKK2xpYmVvdAorbGliZXBveHkKK2xpYmVy YXRpb24tZm9udHMtY29tbW9uCitsaWJlcmF0aW9uLW1vbm8tZm9udHMKK2xpYmVyYXRpb24tc2Fu cy1mb250cworbGliZXJhdGlvbi1zZXJpZi1mb250cworbGliZXJ0YXMtdXNiODM4OC1maXJtd2Fy ZQorbGliZXRvbnllaworbGliZXYKK2xpYmV2ZGV2CitsaWJldmVudAorbGliZXhpZgorbGliZXh0 dGV4dGNhdAorbGliZmRpc2sKK2xpYmZkdAorbGliZmZpCitsaWJmb250ZW5jCitsaWJmcHJpbnQK K2xpYmZyZWVoYW5kCitsaWJnY2FiMQorbGliZ2NjCitsaWJnY3J5cHQKK2xpYmdkYXRhCitsaWJn ZGl0aGVyCitsaWJnZWUKK2xpYmdlcHViCitsaWJnZXhpdjIKK2xpYmdsdGYKK2xpYmdsdm5kCits aWJnbHZuZC1lZ2wKK2xpYmdsdm5kLWdsZXMKK2xpYmdsdm5kLWdseAorbGliZ25vbWVrYmQKK2xp Ymdub21lLWtleXJpbmcKK2xpYmdvbXAKK2xpYmdvdmlydAorbGliZ3BnLWVycm9yCitsaWJncGhv dG8yCitsaWJncG9kCitsaWJncnNzCitsaWJnc2YKK2xpYmd0b3AyCitsaWJndWRldgorbGliZ3Vz YgorbGliZ3dlYXRoZXIKK2xpYmd4cHMKK2xpYmhhbmd1bAorbGliaWJ2ZXJicworbGliaWNhbAor bGliSUNFCitsaWJpY3UKK2xpYmlkbgorbGliaWRuMgorbGliaWVjNjE4ODMKK2xpYmllZWUxMjg0 CitsaWJpbWFnZXF1YW50CitsaWJpbW9iaWxlZGV2aWNlCitsaWJpbmlfY29uZmlnCitsaWJpbnB1 dAorbGliaXBhX2hiYWMKK2xpYmlwdAorbGliaXB0Y2RhdGEKK2xpYmlzY3NpCitsaWJqcGVnLXR1 cmJvCitsaWJrYWRtNQorbGlia2tjCitsaWJra2MtY29tbW9uCitsaWJra2MtZGF0YQorbGlia3Ni YQorbGlibGFuZ3RhZworbGlibGFuZ3RhZy1kYXRhCitsaWJsZGIKK2xpYmxvdWlzCitsaWJtYmlt CitsaWJtYmltLXV0aWxzCitsaWJtY3BwCitsaWJtZWRpYWFydAorbGlibWV0YWxpbmsKK2xpYm1u ZworbGlibW5sCitsaWJtb2RtYW4KK2xpYm1vdW50CitsaWJtcGMKK2xpYm1wY2RlYworbGlibXNw YWNrCitsaWJtc3B1YgorbGlibXRwCitsaWJtdXNpY2JyYWluejUKK2xpYm13YXcKK2xpYm14Cits aWJuZHAKK2xpYm5ldGZpbHRlcl9jb25udHJhY2sKK2xpYm5mbmV0bGluaworbGlibmZzCitsaWJu ZnNpZG1hcAorbGlibmdodHRwMgorbGlibmwzCitsaWJubDMtY2xpCitsaWJubWEKK2xpYm5tLWd0 aworbGlibm90aWZ5CitsaWJvYXV0aAorbGlib2RmZ2VuCitsaWJvZ2cKK2xpYm9yY3VzCitsaWJv c2luZm8KK2xpYnBhZ2VtYWtlcgorbGlicGF0aF91dGlscworbGlicGNhcAorbGlicGNpYWNjZXNz CitsaWJwZWFzCitsaWJwZWFzLWd0aworbGlicGVhcy1sb2FkZXItcHl0aG9uMworbGlicGhvZGF2 CitsaWJwaW55aW4KK2xpYnBpbnlpbi1kYXRhCitsaWJwaXBlbGluZQorbGlicGtnY29uZgorbGli cGxpc3QKK2xpYnBuZworbGlicHJveHkKK2xpYnByb3h5LW1vempzCitsaWJwc2tjCitsaWJwc2wK K2xpYnB3cXVhbGl0eQorbGlicWIKK2xpYnFtaQorbGlicW1pLXV0aWxzCitsaWJxdXZpCitsaWJx dXZpLXNjcmlwdHMKK2xpYnJhZG9zMgorTGliUmF3CitsaWJyYXcxMzk0CitsaWJyYmQxCitsaWJy ZG1hY20KK2xpYnJlZl9hcnJheQorbGlicmVvZmZpY2UtY2FsYworbGlicmVvZmZpY2UtY29yZQor bGlicmVvZmZpY2UtZGF0YQorbGlicmVvZmZpY2UtZHJhdworbGlicmVvZmZpY2UtZW1haWxtZXJn ZQorbGlicmVvZmZpY2UtZmlsdGVycworbGlicmVvZmZpY2UtZ3JhcGhpY2ZpbHRlcgorbGlicmVv ZmZpY2UtZ3RrMgorbGlicmVvZmZpY2UtZ3RrMworbGlicmVvZmZpY2UtaGVscC1lbgorbGlicmVv ZmZpY2UtaW1wcmVzcworbGlicmVvZmZpY2VraXQKK2xpYnJlb2ZmaWNlLWxhbmdwYWNrLWVuCits aWJyZW9mZmljZS1tYXRoCitsaWJyZW9mZmljZS1vcGVuc3ltYm9sLWZvbnRzCitsaWJyZW9mZmlj ZS1wZGZpbXBvcnQKK2xpYnJlb2ZmaWNlLXB5dW5vCitsaWJyZW9mZmljZS11cmUKK2xpYnJlb2Zm aWNlLXVyZS1jb21tb24KK2xpYnJlb2ZmaWNlLXdyaXRlcgorbGlicmVvZmZpY2UteDExCitsaWJy ZW9mZmljZS14c2x0ZmlsdGVyCitsaWJyZXBvCitsaWJyZXBvcnQKK2xpYnJlcG9ydC1hbmFjb25k YQorbGlicmVwb3J0LWNsaQorbGlicmVwb3J0LWZlZG9yYQorbGlicmVwb3J0LWZpbGVzeXN0ZW0K K2xpYnJlcG9ydC1ndGsKK2xpYnJlcG9ydC1wbHVnaW4tYnVnemlsbGEKK2xpYnJlcG9ydC1wbHVn aW4ta2VybmVsb29wcworbGlicmVwb3J0LXBsdWdpbi1sb2dnZXIKK2xpYnJlcG9ydC1wbHVnaW4t cmVwb3J0dXBsb2FkZXIKK2xpYnJlcG9ydC1wbHVnaW4tc3lzdGVtZC1qb3VybmFsCitsaWJyZXBv cnQtcGx1Z2luLXVyZXBvcnQKK2xpYnJlcG9ydC1weXRob24zCitsaWJyZXBvcnQtd2ViCitsaWJy ZXZlbmdlCitsaWJyc3ZnMgorbGlic2FtcGxlcmF0ZQorbGlic2FuZS1ocGFpbworbGlic2VjY29t cAorbGlic2VjcmV0CitsaWJzZWxpbnV4CitsaWJzZWxpbnV4LXB5dGhvbjMKK2xpYnNlbGludXgt dXRpbHMKK2xpYnNlbWFuYWdlCitsaWJzZW1hbmFnZS1weXRob24zCitsaWJzZXBvbAorbGlic2hv dXQKK2xpYnNpZ2MrKzIwCitsaWJzaWdzZWd2CitsaWJTTQorbGlic21hcnRjb2xzCitsaWJzbWJj bGllbnQKK2xpYnNtYmlvcworbGlic25kZmlsZQorbGlic29sdgorbGlic291cAorbGlic3BlY3Ry ZQorbGlic3J0cAorbGlic3MKK2xpYnNzaAorbGlic3NoMgorbGlic3NzX2F1dG9mcworbGlic3Nz X2NlcnRtYXAKK2xpYnNzc19pZG1hcAorbGlic3NzX25zc19pZG1hcAorbGlic3NzX3N1ZG8KK2xp YnN0YXJvZmZpY2UKK2xpYnN0ZGMrKworbGlic3RlbW1lcgorbGlic3lzZnMKK2xpYnRhbGxvYwor bGlidGFyCitsaWJ0YXNuMQorbGlidGRiCitsaWJ0ZWFtCitsaWJ0ZXZlbnQKK2xpYnRoYWkKK2xp YnRoZW9yYQorbGlidGlmZgorbGlidGltZXpvbmVtYXAKK2xpYnRpcnBjCitsaWJ0b29sLWx0ZGwK K2xpYnVkaXNrczIKK2xpYnVuaXN0cmluZworbGlidW53aW5kCitsaWJ1c2FsCitsaWJ1c2IKK2xp YnVzYm11eGQKK2xpYnVzYngKK2xpYnVzZXIKK2xpYnV0ZW1wdGVyCitsaWJ1dWlkCitsaWJ2NGwK K2xpYnZkcGF1CitsaWJ2ZXJ0bworbGlidmVydG8tbGliZXYKK2xpYnZpcnQtZGFlbW9uCitsaWJ2 aXJ0LWRhZW1vbi1jb25maWctbmV0d29yaworbGlidmlydC1kYWVtb24tZHJpdmVyLWludGVyZmFj ZQorbGlidmlydC1kYWVtb24tZHJpdmVyLW5ldHdvcmsKK2xpYnZpcnQtZGFlbW9uLWRyaXZlci1u b2RlZGV2CitsaWJ2aXJ0LWRhZW1vbi1kcml2ZXItbndmaWx0ZXIKK2xpYnZpcnQtZGFlbW9uLWRy aXZlci1xZW11CitsaWJ2aXJ0LWRhZW1vbi1kcml2ZXItc2VjcmV0CitsaWJ2aXJ0LWRhZW1vbi1k cml2ZXItc3RvcmFnZQorbGlidmlydC1kYWVtb24tZHJpdmVyLXN0b3JhZ2UtY29yZQorbGlidmly dC1kYWVtb24tZHJpdmVyLXN0b3JhZ2UtZGlzaworbGlidmlydC1kYWVtb24tZHJpdmVyLXN0b3Jh Z2UtZ2x1c3RlcgorbGlidmlydC1kYWVtb24tZHJpdmVyLXN0b3JhZ2UtaXNjc2kKK2xpYnZpcnQt ZGFlbW9uLWRyaXZlci1zdG9yYWdlLWxvZ2ljYWwKK2xpYnZpcnQtZGFlbW9uLWRyaXZlci1zdG9y YWdlLW1wYXRoCitsaWJ2aXJ0LWRhZW1vbi1kcml2ZXItc3RvcmFnZS1yYmQKK2xpYnZpcnQtZGFl bW9uLWRyaXZlci1zdG9yYWdlLXNjc2kKK2xpYnZpcnQtZGFlbW9uLWRyaXZlci1zdG9yYWdlLXNo ZWVwZG9nCitsaWJ2aXJ0LWRhZW1vbi1kcml2ZXItc3RvcmFnZS16ZnMKK2xpYnZpcnQtZGFlbW9u LWt2bQorbGlidmlydC1nY29uZmlnCitsaWJ2aXJ0LWdsaWIKK2xpYnZpcnQtZ29iamVjdAorbGli dmlydC1saWJzCitsaWJ2aXNpbworbGlidmlzdWFsCitsaWJ2b3JiaXMKK2xpYnZweAorbGlid2Fj b20KK2xpYndhY29tLWRhdGEKK2xpYndheWxhbmQtY2xpZW50CitsaWJ3YXlsYW5kLWN1cnNvcgor bGlid2F5bGFuZC1zZXJ2ZXIKK2xpYndiY2xpZW50CitsaWJ3ZWJwCitsaWJ3bmNrMworbGlid3Bk CitsaWJ3cGcKK2xpYndwcworbGlid3NtYW4xCitsaWJ3dnN0cmVhbXMKK2xpYlgxMQorbGliWDEx LWNvbW1vbgorbGliWDExLXhjYgorbGliWGF1CitsaWJ4Y2IKK2xpYlhjb21wb3NpdGUKK2xpYlhj dXJzb3IKK2xpYlhkYW1hZ2UKK2xpYlhkbWNwCitsaWJYZXh0CitsaWJYZml4ZXMKK2xpYlhmb250 CitsaWJYZm9udDIKK2xpYlhmdAorbGliWGkKK2xpYlhpbmVyYW1hCitsaWJ4a2Jjb21tb24KK2xp YnhrYmNvbW1vbi14MTEKK2xpYnhrYmZpbGUKK2xpYnhrbGF2aWVyCitsaWJ4bWwyCitsaWJYbXUK K2xpYlhwbQorbGliWHJhbmRyCitsaWJYcmVuZGVyCitsaWJYcmVzCitsaWJ4c2htZmVuY2UKK2xp YnhzbHQKK2xpYlh0CitsaWJYdHN0CitsaWJYdgorbGliWHZNQworbGliWHhmODZkZ2EKK2xpYlh4 Zjg2bWlzYworbGliWHhmODZ2bQorbGliemFwb2ppdAorbGliemh1eWluCitsaWJ6bWYKK2xpbnV4 LWF0bS1saWJzCitsaW51eC1maXJtd2FyZQorbGtzY3RwLXRvb2xzCitsbGRwYWQKK2xsdm0tbGli cworTG1vZAorbG9ja2RldgorbG9ncm90YXRlCitsb2hpdC1hc3NhbWVzZS1mb250cworbG9oaXQt YmVuZ2FsaS1mb250cworbG9oaXQtZGV2YW5hZ2FyaS1mb250cworbG9oaXQtZ3VqYXJhdGktZm9u dHMKK2xvaGl0LWd1cm11a2hpLWZvbnRzCitsb2hpdC1rYW5uYWRhLWZvbnRzCitsb2hpdC1vZGlh LWZvbnRzCitsb2hpdC10YW1pbC1mb250cworbG9oaXQtdGVsdWd1LWZvbnRzCitscHNvbHZlCits cnpzegorbHNvZgorbHR0bmctdXN0CitsdWEKK2x1YS1leHBhdAorbHVhLWZpbGVzeXN0ZW0KK2x1 YS1qc29uCitsdWEtbGlicworbHVhLWxwZWcKK2x1YS1wb3NpeAorbHVhLXNvY2tldAorbHVhLXRl cm0KK2x2bTIKK2x2bTItbGlicworbHhwb2xraXQKK2x6NAorbHo0LWxpYnMKK2x6bworbHpvcAor bTE3bi1kYgorbTE3bi1saWIKK21hY3RlbC1ib290CittYWlsY2FwCittYWtlCittYW4tZGIKK21h bi1wYWdlcworbWFyaXNhCittY2Vsb2cKK21jcHAKK21kYWRtCittZWRpYS1wbGF5ZXItaW5mbwor bWVtdGVzdDg2KworbWVzYS1kcmktZHJpdmVycworbWVzYS1maWxlc3lzdGVtCittZXNhLWxpYkVH TAorbWVzYS1saWJnYm0KK21lc2EtbGliR0wKK21lc2EtbGliZ2xhcGkKK21lc2EtbGlid2F5bGFu ZC1lZ2wKK21lc2EtbGlieGF0cmFja2VyCittaWNyb2NvZGVfY3RsCittbG9jYXRlCittb2JpbGUt YnJvYWRiYW5kLXByb3ZpZGVyLWluZm8KK21vZF9kbnNzZAorTW9kZW1NYW5hZ2VyCitNb2RlbU1h bmFnZXItZ2xpYgorbW9kX2h0dHAyCittb2t1dGlsCittb3VzZXR3ZWFrcworbW96aWxsYS1maWxl c3lzdGVtCittb3pqczE3Cittb3pqczM4Cittb3pqczUyCittcGFnZQorbXBmcgorbXBnMTIzLWxp YnMKK210ZGV2CittdG9vbHMKK210cgorbXV0dGVyCitteXRoZXMKK215dGhlcy1lbgorbmF1dGls dXMKK25hdXRpbHVzLWV4dGVuc2lvbnMKK25hdXRpbHVzLXNlbmR0bworbmF2ZXItbmFudW0tZm9u dHMtY29tbW9uCituYXZlci1uYW51bS1nb3RoaWMtZm9udHMKK25jdXJzZXMKK25jdXJzZXMtYmFz ZQorbmN1cnNlcy1saWJzCituZW9uCituZXRjZi1saWJzCituZXQtc25tcC1saWJzCituZXR0bGUK K25ldC10b29scworTmV0d29ya01hbmFnZXIKK05ldHdvcmtNYW5hZ2VyLWFkc2wKK05ldHdvcmtN YW5hZ2VyLWJsdWV0b290aAorTmV0d29ya01hbmFnZXItY29uZmlnLWNvbm5lY3Rpdml0eS1mZWRv cmEKK05ldHdvcmtNYW5hZ2VyLWdsaWIKK05ldHdvcmtNYW5hZ2VyLWxpYm5tCitOZXR3b3JrTWFu YWdlci1vcGVuY29ubmVjdAorTmV0d29ya01hbmFnZXItb3BlbmNvbm5lY3QtZ25vbWUKK05ldHdv cmtNYW5hZ2VyLW9wZW52cG4KK05ldHdvcmtNYW5hZ2VyLW9wZW52cG4tZ25vbWUKK05ldHdvcmtN YW5hZ2VyLXBwdHAKK05ldHdvcmtNYW5hZ2VyLXBwdHAtZ25vbWUKK05ldHdvcmtNYW5hZ2VyLXNz aAorTmV0d29ya01hbmFnZXItc3NoLWdub21lCitOZXR3b3JrTWFuYWdlci10ZWFtCitOZXR3b3Jr TWFuYWdlci12cG5jCitOZXR3b3JrTWFuYWdlci12cG5jLWdub21lCitOZXR3b3JrTWFuYWdlci13 aWZpCitOZXR3b3JrTWFuYWdlci13d2FuCituZXd0CituZnMtdXRpbHMKK25tYXAtbmNhdAorbm0t Y29ubmVjdGlvbi1lZGl0b3IKK25wdGgKK25zcHIKK25zcworbnNzLW1kbnMKK25zcy1wZW0KK25z cy1zb2Z0b2tuCituc3Mtc29mdG9rbi1mcmVlYmwKK25zcy1zeXNpbml0Cituc3MtdG9vbHMKK25z cy11dGlsCitudGZzLTNnCitudGZzcHJvZ3MKK251bWFjdGwtbGlicworbnVtYWQKK29wZW5jYwor b3BlbkNPTExBREEKK29wZW5jb25uZWN0CitvcGVuanBlZzIKK29wZW5sZGFwCitvcGVuc3NoCitv cGVuc3NoLWNsaWVudHMKK29wZW5zc2gtc2VydmVyCitvcGVuc3NsCitvcGVuc3NsLWxpYnMKK29w ZW4tdm0tdG9vbHMKK29wZW4tdm0tdG9vbHMtZGVza3RvcAorb3BlbnZwbgorb3B1cworb3JjCitv cmNhCitvc2luZm8tZGIKK29zaW5mby1kYi10b29scworb3MtcHJvYmVyCitvc3RyZWUKK29zdHJl ZS1saWJzCitwMTEta2l0CitwMTEta2l0LXRydXN0CitQYWNrYWdlS2l0CitQYWNrYWdlS2l0LWNv bW1hbmQtbm90LWZvdW5kCitQYWNrYWdlS2l0LWdsaWIKK1BhY2thZ2VLaXQtZ3N0cmVhbWVyLXBs dWdpbgorUGFja2FnZUtpdC1ndGszLW1vZHVsZQorcGFrY2hvaXMKK3Bha3R5cGUtbmFza2gtYmFz aWMtZm9udHMKK3BhbQorcGFtX2tyYjUKK3BhbmdvCitwYW5nb21tCitwYXBzCitwYXBzLWxpYnMK K3BhcmF0eXBlLXB0LXNhbnMtZm9udHMKK3BhcnRlZAorcGFzc3dkCitwYXNzd2RxYworcGFzc3dk cWMtbGliCitwY2l1dGlscworcGNpdXRpbHMtbGlicworcGNyZQorcGNyZTIKK3BjcmUyLXV0ZjE2 CitwY3NjLWxpdGUtbGlicworcGVybC1DYXJwCitwZXJsLWNvbnN0YW50CitwZXJsLURhdGEtRHVt cGVyCitwZXJsLUVuY29kZQorcGVybC1FcnJubworcGVybC1FcnJvcgorcGVybC1FeHBvcnRlcgor cGVybC1GaWxlLVBhdGgKK3BlcmwtRmlsZS1UZW1wCitwZXJsLUdldG9wdC1Mb25nCitwZXJsLUdp dAorcGVybC1IVFRQLVRpbnkKK3BlcmwtaW50ZXJwcmV0ZXIKK3BlcmwtSU8KK3BlcmwtSU8tU29j a2V0LUlQCitwZXJsLUlPLVNvY2tldC1TU0wKK3BlcmwtbGlibmV0CitwZXJsLWxpYnMKK3Blcmwt bWFjcm9zCitwZXJsLU1JTUUtQmFzZTY0CitwZXJsLU1vemlsbGEtQ0EKK3BlcmwtTmV0LVNTTGVh eQorcGVybC1wYXJlbnQKK3BlcmwtUGF0aFRvb2xzCitwZXJsLVBvZC1Fc2NhcGVzCitwZXJsLXBv ZGxhdG9ycworcGVybC1Qb2QtUGVybGRvYworcGVybC1Qb2QtU2ltcGxlCitwZXJsLVBvZC1Vc2Fn ZQorcGVybC1TY2FsYXItTGlzdC1VdGlscworcGVybC1Tb2NrZXQKK3BlcmwtU3RvcmFibGUKK3Bl cmwtVGVybS1BTlNJQ29sb3IKK3BlcmwtVGVybS1DYXAKK3BlcmwtVGVybVJlYWRLZXkKK3Blcmwt VGV4dC1QYXJzZVdvcmRzCitwZXJsLVRleHQtVGFicytXcmFwCitwZXJsLXRocmVhZHMKK3Blcmwt dGhyZWFkcy1zaGFyZWQKK3BlcmwtVGltZS1Mb2NhbAorcGVybC1Vbmljb2RlLU5vcm1hbGl6ZQor cGVybC1VUkkKK3BpZ3oKK3BpbmVudHJ5CitwaW5lbnRyeS1nbm9tZTMKK3BpbmVudHJ5LWd0awor cGluZm8KK3BpcGV3aXJlCitwaXBld2lyZS1saWJzCitwaXhtYW4KK3BrY3MxMS1oZWxwZXIKK3Br Z2NvbmYKK3BrZ2NvbmYtbTQKK3BrZ2NvbmYtcGtnLWNvbmZpZworcGx5bW91dGgKK3BseW1vdXRo LWNvcmUtbGlicworcGx5bW91dGgtZ3JhcGhpY3MtbGlicworcGx5bW91dGgtcGx1Z2luLWxhYmVs CitwbHltb3V0aC1wbHVnaW4tdHdvLXN0ZXAKK3BseW1vdXRoLXNjcmlwdHMKK3BseW1vdXRoLXN5 c3RlbS10aGVtZQorcGx5bW91dGgtdGhlbWUtY2hhcmdlCitwb2xpY3ljb3JldXRpbHMKK3BvbGlj eWNvcmV1dGlscy1weXRob24zCitwb2xpY3ljb3JldXRpbHMtcHl0aG9uLXV0aWxzCitwb2xraXQK K3BvbGtpdC1saWJzCitwb2xraXQtcGtsYS1jb21wYXQKK3BvcHBsZXIKK3BvcHBsZXItZGF0YQor cG9wcGxlci1nbGliCitwb3BwbGVyLXV0aWxzCitwb3B0CitwcHAKK3BwdHAKK3Byb2Nwcy1uZwor cHNhY2N0Citwc21pc2MKK3B1YmxpY3N1ZmZpeC1saXN0LWRhZnNhCitwdWxzZWF1ZGlvCitwdWxz ZWF1ZGlvLWdkbS1ob29rcworcHVsc2VhdWRpby1saWJzCitwdWxzZWF1ZGlvLWxpYnMtZ2xpYjIK K3B1bHNlYXVkaW8tbW9kdWxlLWJsdWV0b290aAorcHVsc2VhdWRpby1tb2R1bGUteDExCitwdWxz ZWF1ZGlvLXV0aWxzCitweXRob24yCitweXRob24yLWxpYnMKK3B5dGhvbjItcGlwCitweXRob24y LXNldHVwdG9vbHMKK3B5dGhvbjItdGFsbG9jCitweXRob24zCitweXRob24zLWFicnQKK3B5dGhv bjMtYWJydC1hZGRvbgorcHl0aG9uMy1hc24xY3J5cHRvCitweXRob24zLWF1Z2VhcworcHl0aG9u My1iZWFrZXIKK3B5dGhvbjMtYmluZAorcHl0aG9uMy1ibGl2ZXQKK3B5dGhvbjMtYmxvY2tkZXYK K3B5dGhvbjMtYnJsYXBpCitweXRob24zLWJ5dGVzaXplCitweXRob24zLWNhaXJvCitweXRob24z LWNhcmlib3UKK3B5dGhvbjMtY2ZmaQorcHl0aG9uMy1jaGFyZGV0CitweXRob24zLWNvdmVyYWdl CitweXRob24zLWNyeXB0b2dyYXBoeQorcHl0aG9uMy1jdXBzCitweXRob24zLWRidXMKK3B5dGhv bjMtZGVjb3JhdG9yCitweXRob24zLWRtaWRlY29kZQorcHl0aG9uMy1kbmYKK3B5dGhvbjMtZG5m LXBsdWdpbnMtY29yZQorcHl0aG9uMy1lbmNoYW50CitweXRob24zLWZpcmV3YWxsCitweXRob24z LWdvYmplY3QKK3B5dGhvbjMtZ29iamVjdC1iYXNlCitweXRob24zLWdwZworcHl0aG9uMy1oYXdr ZXkKK3B5dGhvbjMtaHVtYW5pemUKK3B5dGhvbjMtaWRuYQorcHl0aG9uMy1pbmlwYXJzZQorcHl0 aG9uMy1pbm90aWZ5CitweXRob24zLUlQeQorcHl0aG9uMy1pc2NzaS1pbml0aWF0b3ItdXRpbHMK K3B5dGhvbjMta2lja3N0YXJ0CitweXRob24zLWxpYmNvbXBzCitweXRob24zLWxpYnJlcG8KK3B5 dGhvbjMtbGlicworcHl0aG9uMy1saWJ4bWwyCitweXRob24zLWxvdWlzCitweXRob24zLW1ha28K K3B5dGhvbjMtbWFya3Vwc2FmZQorcHl0aG9uMy1tZWgKK3B5dGhvbjMtbWVoLWd1aQorcHl0aG9u My1udHBsaWIKK3B5dGhvbjMtb2xlZmlsZQorcHl0aG9uMy1vcmRlcmVkLXNldAorcHl0aG9uMy1w aWQKK3B5dGhvbjMtcGlsbG93CitweXRob24zLXBpcAorcHl0aG9uMy1wbHkKK3B5dGhvbjMtcHdx dWFsaXR5CitweXRob24zLXB5YXRzcGkKK3B5dGhvbjMtcHljcGFyc2VyCitweXRob24zLXB5Y3Vy bAorcHl0aG9uMy1weWRidXMKK3B5dGhvbjMtcHlPcGVuU1NMCitweXRob24zLXB5cGFydGVkCitw eXRob24zLXB5c29ja3MKK3B5dGhvbjMtcHl0egorcHl0aG9uMy1weXVkZXYKK3B5dGhvbjMtcHl4 ZGcKK3B5dGhvbjMtcmVxdWVzdHMKK3B5dGhvbjMtcmVxdWVzdHMtZmlsZQorcHl0aG9uMy1yZXF1 ZXN0cy1mdHAKK3B5dGhvbjMtcnBtCitweXRob24zLXNldHVwdG9vbHMKK3B5dGhvbjMtc2ltcGxl bGluZQorcHl0aG9uMy1zaXgKK3B5dGhvbjMtc2xpcAorcHl0aG9uMy1zbGlwLWRidXMKK3B5dGhv bjMtc3BlZWNoZAorcHl0aG9uMy1zc3NkY29uZmlnCitweXRob24zLXN5c3RlbWQKK3B5dGhvbjMt dXJsbGliMworcHl0aG9uMy13cmFwdAorcHl0aG9uLXN5c3RlbWQtZG9jCitxZW11LWJsb2NrLWN1 cmwKK3FlbXUtYmxvY2stZG1nCitxZW11LWJsb2NrLWdsdXN0ZXIKK3FlbXUtYmxvY2staXNjc2kK K3FlbXUtYmxvY2stbmZzCitxZW11LWJsb2NrLXJiZAorcWVtdS1ibG9jay1zc2gKK3FlbXUtY29t bW9uCitxZW11LWd1ZXN0LWFnZW50CitxZW11LWltZworcWVtdS1rdm0KK3FlbXUtc3lzdGVtLXg4 NgorcWVtdS1zeXN0ZW0teDg2LWNvcmUKK3Fnbm9tZXBsYXRmb3JtCitxcGRmLWxpYnMKK3FyZW5j b2RlLWxpYnMKK3F0CitxdDUtcXRiYXNlCitxdDUtcXRiYXNlLWNvbW1vbgorcXQ1LXF0YmFzZS1n dWkKK3F0NS1xdGRlY2xhcmF0aXZlCitxdDUtcXR4bWxwYXR0ZXJucworcXQtY29tbW9uCitxdC1z ZXR0aW5ncworcXQteDExCitxdW90YQorcXVvdGEtbmxzCityYWR2ZAorcmFwdG9yMgorcmFzcWFs CityZGlzdAorcmRtYS1jb3JlCityZWFkbGluZQorcmVhbG1kCityZWRoYXQtbWVudXMKK3JlZGxh bmQKK3Jlc3QKK3JoeXRobWJveAorcm5nLXRvb2xzCityb290ZmlsZXMKK3JwY2JpbmQKK3JwbQor cnBtLWJ1aWxkLWxpYnMKK3JwbS1saWJzCitycG0tcGx1Z2luLXNlbGludXgKK3JwbS1wbHVnaW4t c3lzdGVtZC1pbmhpYml0CitycC1wcHBvZQorcnN5bmMKK3J0a2l0CityeWdlbAorc2FtYmEtY2xp ZW50CitzYW1iYS1jbGllbnQtbGlicworc2FtYmEtY29tbW9uCitzYW1iYS1jb21tb24tbGlicwor c2FtYmEtZGMtbGlicworc2FtYmEtbGlicworc2FuZS1iYWNrZW5kcworc2FuZS1iYWNrZW5kcy1k cml2ZXJzLWNhbWVyYXMKK3NhbmUtYmFja2VuZHMtZHJpdmVycy1zY2FubmVycworc2FuZS1iYWNr ZW5kcy1saWJzCitzYXR5cgorc2JjCitzY2wtdXRpbHMKK1NETDIKK3NlYWJpb3MtYmluCitzZWF2 Z2FiaW9zLWJpbgorc2VkCitzZWxpbnV4LXBvbGljeQorc2VsaW51eC1wb2xpY3ktdGFyZ2V0ZWQK K3NldG9vbHMtcHl0aG9uMworc2V0cm91Ymxlc2hvb3QKK3NldHJvdWJsZXNob290LXBsdWdpbnMK K3NldHJvdWJsZXNob290LXNlcnZlcgorc2V0dXAKK3NldHVwdG9vbAorc2czX3V0aWxzLWxpYnMK K3NnYWJpb3MtYmluCitzZ3Bpbworc2hhZG93LXV0aWxzCitzaGFyZWQtbWltZS1pbmZvCitzaGVl cGRvZworc2hpbS1pYTMyCitzaGltLXg2NAorc2hvdHdlbGwKK3NpbC1hYnlzc2luaWNhLWZvbnRz CitzaWwtbWluZ3phdC1mb250cworc2lsLW51b3N1LWZvbnRzCitzaWwtcGFkYXVrLWZvbnRzCitz aW1wbGUtc2Nhbgorc2trZGljCitzbGFuZworc21jLWZvbnRzLWNvbW1vbgorc21jLW1lZXJhLWZv bnRzCitzbmFwcHkKK3NuaS1xdAorc29zCitzb3VuZC10aGVtZS1mcmVlZGVza3RvcAorc291bmR0 b3VjaAorc294cgorc3BlZWNoLWRpc3BhdGNoZXIKK3NwZWVjaC1kaXNwYXRjaGVyLWVzcGVhawor c3BlZXgKK3NwZWV4ZHNwCitzcGljZS1nbGliCitzcGljZS1ndGszCitzcGljZS1zZXJ2ZXIKK3Nw aWNlLXZkYWdlbnQKK3NxbGl0ZS1saWJzCitzc2hwYXNzCitzc3NkCitzc3NkLWFkCitzc3NkLWNs aWVudAorc3NzZC1jb21tb24KK3Nzc2QtY29tbW9uLXBhYworc3NzZC1pcGEKK3Nzc2Qta2NtCitz c3NkLWtyYjUKK3Nzc2Qta3JiNS1jb21tb24KK3Nzc2QtbGRhcAorc3NzZC1uZnMtaWRtYXAKK3Nz c2QtcHJveHkKK3N0YXJ0dXAtbm90aWZpY2F0aW9uCitzdGl4LWZvbnRzCitzdG9rZW4tbGlicwor c3Vkbworc3VzaGkKK3N3aXRjaGVyb28tY29udHJvbAorc3ltbGlua3MKK3N5c2xpbnV4CitzeXNs aW51eC1leHRsaW51eAorc3lzbGludXgtZXh0bGludXgtbm9ubGludXgKK3N5c2xpbnV4LW5vbmxp bnV4CitzeXN0ZW0tY29uZmlnLXByaW50ZXItbGlicworc3lzdGVtLWNvbmZpZy1wcmludGVyLXVk ZXYKK3N5c3RlbWQKK3N5c3RlbWQtYm9vdGNoYXJ0CitzeXN0ZW1kLWNvbnRhaW5lcgorc3lzdGVt ZC1saWJzCitzeXN0ZW1kLXBhbQorc3lzdGVtZC11ZGV2Cit0YWJpc2gtZWV5ZWstZm9udHMKK3Rh Z2xpYgordGFyCit0Y2wKK3RjcGR1bXAKK3RjcF93cmFwcGVycwordGNwX3dyYXBwZXJzLWxpYnMK K3RlYW1kCit0ZWxlcGF0aHktZmlsZXN5c3RlbQordGVsZXBhdGh5LWdsaWIKK3RlbGVwYXRoeS1s b2dnZXIKK3RlbG5ldAordGhhaS1zY2FsYWJsZS1mb250cy1jb21tb24KK3RoYWktc2NhbGFibGUt d2FyZWUtZm9udHMKK3RpZ2Vydm5jLWxpY2Vuc2UKK3RpZ2Vydm5jLXNlcnZlci1taW5pbWFsCit0 aW1lCit0aW1lZGF0ZXgKK3RvdGVtCit0b3RlbS1uYXV0aWx1cwordG90ZW0tcGwtcGFyc2VyCit0 cmFjZXJvdXRlCit0cmFja2VyCit0cmFja2VyLW1pbmVycwordHJlZQordHJvdXNlcnMKK3Ryb3Vz ZXJzLWxpYgordHpkYXRhCit0emRhdGEtamF2YQordWRpc2tzMgordW5pY29kZS11Y2QKK3VuaXF1 ZQordW5vY29udgordW56aXAKK3Vwb3dlcgordXJ3LWZvbnRzCit1c2JfbW9kZXN3aXRjaAordXNi X21vZGVzd2l0Y2gtZGF0YQordXNibXV4ZAordXNicmVkaXIKK3VzYnV0aWxzCit1c2VybW9kZQor dXNlcnNwYWNlLXJjdQordXRpbC1saW51eAordmNvbmZpZwordmltLW1pbmltYWwKK3Zpbm8KK3Zp cmdscmVuZGVyZXIKK3ZsZ290aGljLWZvbnRzCit2b2x1bWVfa2V5LWxpYnMKK3ZwbmMKK3ZwbmMt c2NyaXB0Cit2dGUyOTEKK3Z0ZS1wcm9maWxlCit3YXZwYWNrCit3ZWItYXNzZXRzLWZpbGVzeXN0 ZW0KK3dlYmtpdGd0azQKK3dlYmtpdGd0azQtanNjCit3ZWJraXRndGs0LXBsdWdpbi1wcm9jZXNz LWd0azIKK3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nCit3Z2V0Cit3aGljaAord2lyZWxlc3MtdG9v bHMKK3dvcmRzCit3cGFfc3VwcGxpY2FudAord3ZkaWFsCit4Y2ItdXRpbAoreGNiLXV0aWwtaW1h Z2UKK3hjYi11dGlsLWtleXN5bXMKK3hjYi11dGlsLXJlbmRlcnV0aWwKK3hjYi11dGlsLXdtCit4 ZGctZGVza3RvcC1wb3J0YWwKK3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsKK3hkZy11c2VyLWRpcnMK K3hkZy11c2VyLWRpcnMtZ3RrCit4ZGctdXRpbHMKK3hlbi1saWJzCit4ZW4tbGljZW5zZXMKK3hm c3Byb2dzCit4a2V5Ym9hcmQtY29uZmlnCit4bWwtY29tbW9uCit4bWxycGMtYworeG1scnBjLWMt Y2xpZW50Cit4bWxzZWMxCit4bWxzZWMxLW9wZW5zc2wKK3hvcmcteDExLWRydi1hdGkKK3hvcmct eDExLWRydi1ldmRldgoreG9yZy14MTEtZHJ2LWZiZGV2Cit4b3JnLXgxMS1kcnYtaW50ZWwKK3hv cmcteDExLWRydi1saWJpbnB1dAoreG9yZy14MTEtZHJ2LW5vdXZlYXUKK3hvcmcteDExLWRydi1v cGVuY2hyb21lCit4b3JnLXgxMS1kcnYtcXhsCit4b3JnLXgxMS1kcnYtdmVzYQoreG9yZy14MTEt ZHJ2LXZtd2FyZQoreG9yZy14MTEtZHJ2LXdhY29tCit4b3JnLXgxMS1mb250LXV0aWxzCit4b3Jn LXgxMS1zZXJ2ZXItY29tbW9uCit4b3JnLXgxMS1zZXJ2ZXItdXRpbHMKK3hvcmcteDExLXNlcnZl ci1Yb3JnCit4b3JnLXgxMS1zZXJ2ZXItWHdheWxhbmQKK3hvcmcteDExLXV0aWxzCit4b3JnLXgx MS14YXV0aAoreG9yZy14MTEteGluaXQKK3hvcmcteDExLXhrYi11dGlscworeHoKK3h6LWxpYnMK K3lhamwKK3llbHAKK3llbHAtbGlicworeWVscC14c2wKK3pkMTIxMS1maXJtd2FyZQoremVuaXR5 Cit6ZnMtZnVzZQoremlwCit6bGliCgpkaWZmIC0tZ2l0IGEvZjI2LWZsYXRwYWstcnVudGltZS5w YWNrYWdlcyBiL2YyNi1mbGF0cGFrLXJ1bnRpbWUucGFja2FnZXMKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDUzOGZmMjQuLjAwMDAwMDAKLS0tIGEvZjI2LWZsYXRwYWstcnVudGltZS5w YWNrYWdlcworKysgL2Rldi9udWxsCkBAIC0xLDIwNCArMCwwIEBACi1hYmF0dGlzLWNhbnRhcmVs bC1mb250cwotYWNsCi1hZHdhaXRhLWN1cnNvci10aGVtZQotYWR3YWl0YS1ndGsyLXRoZW1lCi1h ZHdhaXRhLWljb24tdGhlbWUKLWF0LXNwaTItYXRrCi1hdC1zcGkyLWNvcmUKLWF0awotYXVkaXQt bGlicwotYXZhaGktbGlicwotYmFzZXN5c3RlbQotYmFzaAotYnppcDItbGlicwotY2EtY2VydGlm aWNhdGVzCi1jYWlybwotY2Fpcm8tZ29iamVjdAotY2hrY29uZmlnCi1jb2xvcmQtbGlicwotY29y ZXV0aWxzCi1jb3JldXRpbHMtY29tbW9uCi1jcmFja2xpYgotY3J5cHRvLXBvbGljaWVzCi1jcnlw dHNldHVwLWxpYnMKLWN1cHMtbGlicwotZGJ1cwotZGJ1cy1saWJzCi1kZXZpY2UtbWFwcGVyCi1k ZXZpY2UtbWFwcGVyLWxpYnMKLWVsZnV0aWxzLWRlZmF1bHQteWFtYS1zY29wZQotZWxmdXRpbHMt bGliZWxmCi1lbGZ1dGlscy1saWJzCi1lbWFjcy1maWxlc3lzdGVtCi1lbmNoYW50Ci1leHBhdAot ZmVkb3JhLW1vZHVsYXItcmVsZWFzZQotZmVkb3JhLW1vZHVsYXItcmVwb3MKLWZpbGVzeXN0ZW0K LWZsYXRwYWstcnVudGltZS1jb25maWcKLWZvbnRjb25maWcKLWZvbnRwYWNrYWdlcy1maWxlc3lz dGVtCi1mcmVldHlwZQotZ2F3awotZ2RibQotZ2RrLXBpeGJ1ZjIKLWdkay1waXhidWYyLW1vZHVs ZXMKLWdsaWItbmV0d29ya2luZwotZ2xpYjIKLWdsaWJjCi1nbGliYy1hbGwtbGFuZ3BhY2tzCi1n bGliYy1jb21tb24KLWdtcAotZ25vbWUtZGVza3RvcDMKLWdub21lLXRoZW1lcy1zdGFuZGFyZAot Z251dGxzCi1nb2JqZWN0LWludHJvc3BlY3Rpb24KLWdyYXBoaXRlMgotZ3JlcAotZ3NldHRpbmdz LWRlc2t0b3Atc2NoZW1hcwotZ3RrLXVwZGF0ZS1pY29uLWNhY2hlCi1ndGsyCi1ndGszCi1ndmZz LWNsaWVudAotZ3ppcAotaGFyZmJ1enoKLWhpY29sb3ItaWNvbi10aGVtZQotaHVuc3BlbGwKLWh1 bnNwZWxsLWVuLUdCCi1odW5zcGVsbC1lbi1VUwotaHdkYXRhCi1pbmZvCi1pcHRhYmxlcy1saWJz Ci1qYXNwZXItbGlicwotamJpZ2tpdC1saWJzCi1qc29uLWdsaWIKLWtleXV0aWxzLWxpYnMKLWtt b2QtbGlicwota3JiNS1saWJzCi1sY21zMgotbGliWDExCi1saWJYMTEtY29tbW9uCi1saWJYYXUK LWxpYlhjb21wb3NpdGUKLWxpYlhjdXJzb3IKLWxpYlhkYW1hZ2UKLWxpYlhleHQKLWxpYlhmaXhl cwotbGliWGZ0Ci1saWJYaQotbGliWGluZXJhbWEKLWxpYlhyYW5kcgotbGliWHJlbmRlcgotbGli WHRzdAotbGliWHhmODZ2bQotbGliYWNsCi1saWJhcHBzdHJlYW0tZ2xpYgotbGliYXJjaGl2ZQot bGliYXR0cgotbGliYmxraWQKLWxpYmNhcAotbGliY2FwLW5nCi1saWJjb21fZXJyCi1saWJjcm9j bwotbGliY3J5cHQKLWxpYmRhdHJpZQotbGliZGIKLWxpYmRybQotbGliZXBveHkKLWxpYmZkaXNr Ci1saWJmZmkKLWxpYmdjYWIxCi1saWJnY2MKLWxpYmdjcnlwdAotbGliZ2x2bmQKLWxpYmdsdm5k LWVnbAotbGliZ2x2bmQtZ2x4Ci1saWJncGctZXJyb3IKLWxpYmd1c2IKLWxpYmlkbgotbGliaWRu MgotbGlianBlZy10dXJibwotbGlibW9kbWFuCi1saWJtb3VudAotbGlibm90aWZ5Ci1saWJwY2Fw Ci1saWJwY2lhY2Nlc3MKLWxpYnBuZwotbGlicHJveHkKLWxpYnB3cXVhbGl0eQotbGlicnN2ZzIK LWxpYnNlY2NvbXAKLWxpYnNlbGludXgKLWxpYnNlbWFuYWdlCi1saWJzZXBvbAotbGlic2lnc2Vn dgotbGlic21hcnRjb2xzCi1saWJzb3VwCi1saWJzdGRjKysKLWxpYnN0ZW1tZXIKLWxpYnRhc24x Ci1saWJ0aGFpCi1saWJ0aWZmCi1saWJ1bmlzdHJpbmcKLWxpYnVzYngKLWxpYnV0ZW1wdGVyCi1s aWJ1dWlkCi1saWJ2ZXJ0bwotbGlid2F5bGFuZC1jbGllbnQKLWxpYndheWxhbmQtY3Vyc29yCi1s aWJ3YXlsYW5kLXNlcnZlcgotbGlieGNiCi1saWJ4a2Jjb21tb24KLWxpYnhtbDIKLWxpYnhzaG1m ZW5jZQotbHo0LWxpYnMKLWx6bwotbWVzYS1saWJFR0wKLW1lc2EtbGliR0wKLW1lc2EtbGliZ2Jt Ci1tZXNhLWxpYmdsYXBpCi1tZXNhLWxpYndheWxhbmQtZWdsCi1tcGZyCi1uY3Vyc2VzCi1uY3Vy c2VzLWJhc2UKLW5jdXJzZXMtbGlicwotbmV0dGxlCi1vcGVuc3NsLWxpYnMKLXAxMS1raXQKLXAx MS1raXQtdHJ1c3QKLXBhbQotcGFuZ28KLXBjcmUKLXBpeG1hbgotcG9wdAotcHl0aG9uMwotcHl0 aG9uMy1hcHBkaXJzCi1weXRob24zLWNhaXJvCi1weXRob24zLWdvYmplY3QKLXB5dGhvbjMtZ29i amVjdC1iYXNlCi1weXRob24zLWxpYnMKLXB5dGhvbjMtcGFja2FnaW5nCi1weXRob24zLXBpcAot cHl0aG9uMy1weXBhcnNpbmcKLXB5dGhvbjMtc2V0dXB0b29scwotcHl0aG9uMy1zaXgKLXFyZW5j b2RlLWxpYnMKLXJlYWRsaW5lCi1yZXN0Ci1zZWQKLXNldHVwCi1zaGFkb3ctdXRpbHMKLXNoYXJl ZC1taW1lLWluZm8KLXNxbGl0ZS1saWJzCi1zeXN0ZW0tcHl0aG9uCi1zeXN0ZW0tcHl0aG9uLWxp YnMKLXN5c3RlbWQKLXN5c3RlbWQtbGlicwotc3lzdGVtZC1wYW0KLXR6ZGF0YQotdXN0cgotdXRp bC1saW51eAoteGtleWJvYXJkLWNvbmZpZwoteHotbGlicwotemVuaXR5Ci16bGliCgpkaWZmIC0t Z2l0IGEvZjI3LWxpdmUucGFja2FnZXMgYi9mMjctbGl2ZS5wYWNrYWdlcwpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMGQyZjVlZi4uMDAwMDAwMAotLS0gYS9mMjctbGl2ZS5wYWNrYWdl cworKysgL2Rldi9udWxsCkBAIC0xLDE1NjEgKzAsMCBAQAotYWFqb2hhbi1jb21mb3J0YWEtZm9u dHMKLWFiYXR0aXMtY2FudGFyZWxsLWZvbnRzCi1hYnJ0Ci1hYnJ0LWFkZG9uLWNjcHAKLWFicnQt YWRkb24tY29yZWR1bXAtaGVscGVyCi1hYnJ0LWFkZG9uLWtlcm5lbG9vcHMKLWFicnQtYWRkb24t cHN0b3Jlb29wcwotYWJydC1hZGRvbi12bWNvcmUKLWFicnQtYWRkb24teG9yZwotYWJydC1jbGkK LWFicnQtZGJ1cwotYWJydC1kZXNrdG9wCi1hYnJ0LWd1aQotYWJydC1ndWktbGlicwotYWJydC1q YXZhLWNvbm5lY3RvcgotYWJydC1saWJzCi1hYnJ0LXBsdWdpbi1ib2RoaQotYWJydC1yZXRyYWNl LWNsaWVudAotYWJydC10dWkKLWFjY291bnRzc2VydmljZQotYWNjb3VudHNzZXJ2aWNlLWxpYnMK LWFjbAotYWRjbGkKLWFkb2JlLXNvdXJjZS1oYW4tc2Fucy1jbi1mb250cwotYWRvYmUtc291cmNl LWhhbi1zYW5zLXR3LWZvbnRzCi1hZG9iZS1zb3VyY2UtaGFuLXNlcmlmLWNuLWZvbnRzCi1hZG9i ZS1zb3VyY2UtaGFuLXNlcmlmLXR3LWZvbnRzCi1hZHdhaXRhLWN1cnNvci10aGVtZQotYWR3YWl0 YS1ndGsyLXRoZW1lCi1hZHdhaXRhLWljb24tdGhlbWUKLWFkd2FpdGEtcXQ0Ci1hZHdhaXRhLXF0 NQotYWxzYS1saWIKLWFsc2EtcGx1Z2lucy1wdWxzZWF1ZGlvCi1hbHNhLXVjbQotYWxzYS11dGls cwotYW5hY29uZGEKLWFuYWNvbmRhLWNvcmUKLWFuYWNvbmRhLWd1aQotYW5hY29uZGEtdHVpCi1h bmFjb25kYS11c2VyLWhlbHAKLWFuYWNvbmRhLXdpZGdldHMKLWFwcHN0cmVhbS1kYXRhCi1hcHIK LWFwci11dGlsCi1hcmd5bGxjbXMKLWF0awotYXRrbW0KLWF0bWVsLWZpcm13YXJlCi1hdC1zcGky LWF0awotYXQtc3BpMi1jb3JlCi1hdHRyCi1hdWRpdAotYXVkaXQtbGlicwotYXVkaXQtbGlicy1w eXRob24zCi1hdWdlYXMtbGlicwotYXV0aGNvbmZpZwotYXV0b2NvcnItZW4KLWF2YWhpCi1hdmFo aS1nbGliCi1hdmFoaS1saWJzCi1iNDMtZndjdXR0ZXIKLWI0My1vcGVuZnd3ZgotYmFvYmFiCi1i YXNlc3lzdGVtCi1iYXNoCi1iYXNoLWNvbXBsZXRpb24KLWJjCi1iY2FjaGUtdG9vbHMKLWJpbmQ5 OS1saWJzCi1iaW5kOTktbGljZW5zZQotYmluZC1saWJzCi1iaW5kLWxpYnMtbGl0ZQotYmluZC1s aWNlbnNlCi1iaW5kLXV0aWxzCi1ibGl2ZXQtZ3VpLXJ1bnRpbWUKLWJsdWV6Ci1ibHVlei1jdXBz Ci1ibHVlei1saWJzCi1ibHVlei1vYmV4ZAotYm9vc3QtZGF0ZS10aW1lCi1ib29zdC1maWxlc3lz dGVtCi1ib29zdC1pb3N0cmVhbXMKLWJvb3N0LXN5c3RlbQotYnJhc2Vyby1saWJzCi1icmlkZ2Ut dXRpbHMKLWJybGFwaQotYnJsdHR5Ci1idHJmcy1wcm9ncwotYnViYmxld3JhcAotYnppcDIKLWJ6 aXAyLWxpYnMKLWNhLWNlcnRpZmljYXRlcwotY2Fpcm8KLWNhaXJvLWdvYmplY3QKLWNhaXJvbW0K LWMtYXJlcwotY2FyaWJvdQotY2FyaWJvdS1ndGsyLW1vZHVsZQotY2FyaWJvdS1ndGszLW1vZHVs ZQotY2RwYXJhbm9pYS1saWJzCi1jZWx0MDUxCi1jaGVja3BvbGljeQotY2hlZXNlCi1jaGVlc2Ut bGlicwotY2hrY29uZmlnCi1jaHJvbnkKLWNpZnMtdXRpbHMKLWNsZHItZW1vamktYW5ub3RhdGlv bgotY2x1Y2VuZS1jb250cmlicy1saWIKLWNsdWNlbmUtY29yZQotY2x1dHRlcgotY2x1dHRlci1n c3QyCi1jbHV0dGVyLWdzdDMKLWNsdXR0ZXItZ3RrCi1jb2dsCi1jb2xvcmQKLWNvbG9yZC1ndGsK LWNvbG9yZC1saWJzCi1jb2xvci1maWxlc3lzdGVtCi1jb21wYXQtb3BlbnNzbDEwCi1jb21wcy1l eHRyYXMKLWNvbnRyb2wtY2VudGVyCi1jb250cm9sLWNlbnRlci1maWxlc3lzdGVtCi1jb3B5LWpk ay1jb25maWdzCi1jb3JldXRpbHMKLWNvcmV1dGlscy1jb21tb24KLWNvcm9zeW5jCi1jb3Jvc3lu Y2xpYgotY3BpbwotY3JhY2tsaWIKLWNyYWNrbGliLWRpY3RzCi1jcmRhCi1jcmVhdGVyZXBvX2MK LWNyZWF0ZXJlcG9fYy1saWJzCi1jcm9uaWUKLWNyb25pZS1hbmFjcm9uCi1jcm9udGFicwotY3J5 cHRvLXBvbGljaWVzCi1jcnlwdHNldHVwCi1jcnlwdHNldHVwLWxpYnMKLWN1cHMKLWN1cHMtY2xp ZW50Ci1jdXBzLWZpbGVzeXN0ZW0KLWN1cHMtZmlsdGVycwotY3Vwcy1maWx0ZXJzLWxpYnMKLWN1 cHMtbGlicwotY3Vwcy1way1oZWxwZXIKLWN1cmwKLWN5cnVzLXNhc2wKLWN5cnVzLXNhc2wtZ3Nz YXBpCi1jeXJ1cy1zYXNsLWxpYgotY3lydXMtc2FzbC1wbGFpbgotZGJ1cwotZGJ1cy1nbGliCi1k YnVzLWxpYnMKLWRidXNtZW51LXF0Ci1kYnVzLXgxMQotZGJ4dG9vbAotZGNvbmYKLWRlamF2dS1m b250cy1jb21tb24KLWRlamF2dS1zYW5zLWZvbnRzCi1kZWphdnUtc2Fucy1tb25vLWZvbnRzCi1k ZWphdnUtc2VyaWYtZm9udHMKLWRlbHRhcnBtCi1kZXNrdG9wLWJhY2tncm91bmRzLWdub21lCi1k ZXNrdG9wLWZpbGUtdXRpbHMKLWRldmljZS1tYXBwZXIKLWRldmljZS1tYXBwZXItZXZlbnQKLWRl dmljZS1tYXBwZXItZXZlbnQtbGlicwotZGV2aWNlLW1hcHBlci1saWJzCi1kZXZpY2UtbWFwcGVy LW11bHRpcGF0aAotZGV2aWNlLW1hcHBlci1tdWx0aXBhdGgtbGlicwotZGV2aWNlLW1hcHBlci1w ZXJzaXN0ZW50LWRhdGEKLWRoY3AtY2xpZW50Ci1kaGNwLWNvbW1vbgotZGhjcC1saWJzCi1kaWZm dXRpbHMKLWRqdnVsaWJyZS1saWJzCi1kbGV5bmEtY29ubmVjdG9yLWRidXMKLWRsZXluYS1jb3Jl Ci1kbGV5bmEtc2VydmVyCi1kbWlkZWNvZGUKLWRtcmFpZAotZG1yYWlkLWV2ZW50cwotZG5mCi1k bmYtY29uZgotZG5mLXBsdWdpbnMtY29yZQotZG5mLXl1bQotZG5zbWFzcQotZG9zMnVuaXgKLWRv c2ZzdG9vbHMKLWRvdGNvbmYKLWRyYWN1dAotZHJhY3V0LWNvbmZpZy1yZXNjdWUKLWRyYWN1dC1s aXZlCi1kcmFjdXQtbmV0d29yawotZHJwbQotZTJmc3Byb2dzCi1lMmZzcHJvZ3MtbGlicwotZWJ0 YWJsZXMKLWVkazItb3ZtZgotZWZpYm9vdG1ncgotZWZpdmFyCi1lZml2YXItbGlicwotZWxmdXRp bHMKLWVsZnV0aWxzLWRlZmF1bHQteWFtYS1zY29wZQotZWxmdXRpbHMtbGliZWxmCi1lbGZ1dGls cy1saWJzCi1lbWFjcy1maWxlc3lzdGVtCi1lbmNhCi1lbmNoYW50Ci1lb2cKLWVwaXBoYW55LXJ1 bnRpbWUKLWVzcGVhawotZXRodG9vbAotZXZpbmNlCi1ldmluY2UtZGp2dQotZXZpbmNlLWxpYnMK LWV2aW5jZS1uYXV0aWx1cwotZXZvbHV0aW9uCi1ldm9sdXRpb24tZGF0YS1zZXJ2ZXIKLWV2b2x1 dGlvbi1kYXRhLXNlcnZlci1sYW5ncGFja3MKLWV2b2x1dGlvbi1ld3MKLWV2b2x1dGlvbi1ld3Mt bGFuZ3BhY2tzCi1ldm9sdXRpb24taGVscAotZXZvbHV0aW9uLWxhbmdwYWNrcwotZXhlbXBpCi1l eGl2MgotZXhpdjItbGlicwotZXhwYXQKLWYyNy1iYWNrZ3JvdW5kcy1iYXNlCi1mMjctYmFja2dy b3VuZHMtZ25vbWUKLWZjb2UtdXRpbHMKLWZlZG9yYS1ib29rbWFya3MKLWZlZG9yYS1sb2dvcwot ZmVkb3JhLWxvZ29zLWh0dHBkCi1mZWRvcmEtcHJvZHVjdGltZy13b3Jrc3RhdGlvbgotZmVkb3Jh LXJlbGVhc2UKLWZlZG9yYS1yZWxlYXNlLXdvcmtzdGF0aW9uCi1mZWRvcmEtcmVwb3MKLWZlZG9y YS1yZXBvcy1yYXdoaWRlCi1mZWRvcmEtdXNlci1hZ2VudC1jaHJvbWUKLWZlZG9yYS13b3Jrc3Rh dGlvbi1iYWNrZ3JvdW5kcwotZmlsZQotZmlsZS1saWJzCi1maWxlLXJvbGxlcgotZmlsZS1yb2xs ZXItbmF1dGlsdXMKLWZpbGVzeXN0ZW0KLWZpbmR1dGlscwotZmlwc2NoZWNrCi1maXBzY2hlY2st bGliCi1maXJlZm94Ci1maXJld2FsbGQKLWZpcmV3YWxsZC1maWxlc3lzdGVtCi1mbGFjLWxpYnMK LWZsYXRwYWsKLWZsYXRwYWstbGlicwotZm9sa3MKLWZvbnRjb25maWcKLWZvbnRwYWNrYWdlcy1m aWxlc3lzdGVtCi1mb29tYXRpYwotZm9vbWF0aWMtZGIKLWZvb21hdGljLWRiLWZpbGVzeXN0ZW0K LWZvb21hdGljLWRiLXBwZHMKLWZwYXN0ZQotZnByaW50ZAotZnByaW50ZC1wYW0KLWZyZWV0eXBl Ci1mcmVpMHItcGx1Z2lucwotZnJvcwotZnJvcy1nbm9tZQotZnVzZQotZnVzZS1jb21tb24KLWZ1 c2UtbGlicwotZnd1cGQKLWZ3dXBkYXRlLWVmaQotZnd1cGRhdGUtbGlicwotZnd1cGQtbGFiZWxz Ci1nYXZsCi1nYXdrCi1nYwotR0NvbmYyCi1nY3IKLWdkCi1nZGItaGVhZGxlc3MKLWdkYm0KLWdk aXNrCi1nZGstcGl4YnVmMgotZ2RrLXBpeGJ1ZjItbW9kdWxlcwotZ2RtCi1nZG91cm9zLXN5bWJv bGEtZm9udHMKLWdlZGl0Ci1nZW5pc29pbWFnZQotZ2VvY2x1ZTIKLWdlb2NsdWUyLWxpYnMKLWdl b2NvZGUtZ2xpYgotR2VvSVAKLUdlb0lQLUdlb0xpdGUtZGF0YQotZ2V0dGV4dAotZ2V0dGV4dC1s aWJzCi1nZmJncmFwaAotZ2hvc3RzY3JpcHQKLWdob3N0c2NyaXB0LWNvcmUKLWdob3N0c2NyaXB0 LWZvbnRzCi1naG9zdHNjcmlwdC14MTEKLWdpZmxpYgotZ2l0Ci1naXQtY29yZQotZ2l0LWNvcmUt ZG9jCi1nanMKLWdsYWRlLWxpYnMKLWdsaWIyCi1nbGliYwotZ2xpYmMtYWxsLWxhbmdwYWNrcwot Z2xpYmMtY29tbW9uCi1nbGliYy1sYW5ncGFjay1lbgotZ2xpYm1tMjQKLWdsaWItbmV0d29ya2lu ZwotZ2x1c3RlcmZzCi1nbHVzdGVyZnMtYXBpCi1nbHVzdGVyZnMtY2xpCi1nbHVzdGVyZnMtY2xp ZW50LXhsYXRvcnMKLWdsdXN0ZXJmcy1mdXNlCi1nbHVzdGVyZnMtbGlicwotZ2x4LXV0aWxzCi1n bWltZTMwCi1nbXAKLWdub21lLWFicnQKLWdub21lLWF1dG9hcgotZ25vbWUtYmFja2dyb3VuZHMK LWdub21lLWJsdWV0b290aAotZ25vbWUtYmx1ZXRvb3RoLWxpYnMKLWdub21lLWJveGVzCi1nbm9t ZS1jYWxjdWxhdG9yCi1nbm9tZS1jYWxlbmRhcgotZ25vbWUtY2hhcmFjdGVycwotZ25vbWUtY2xh c3NpYy1zZXNzaW9uCi1nbm9tZS1jbG9ja3MKLWdub21lLWNvbG9yLW1hbmFnZXIKLWdub21lLWNv bnRhY3RzCi1nbm9tZS1kZXNrdG9wMwotZ25vbWUtZGlzay11dGlsaXR5Ci1nbm9tZS1kb2N1bWVu dHMKLWdub21lLWRvY3VtZW50cy1saWJzCi1nbm9tZS1mb250LXZpZXdlcgotZ25vbWUtZ2V0dGlu Zy1zdGFydGVkLWRvY3MKLWdub21lLWluaXRpYWwtc2V0dXAKLWdub21lLWtleXJpbmcKLWdub21l LWtleXJpbmctcGFtCi1nbm9tZS1sb2dzCi1nbm9tZS1tYXBzCi1nbm9tZS1tZW51cwotZ25vbWUt b25saW5lLWFjY291bnRzCi1nbm9tZS1vbmxpbmUtbWluZXJzCi1nbm9tZS1zY3JlZW5zaG90Ci1n bm9tZS1zZXNzaW9uCi1nbm9tZS1zZXNzaW9uLXdheWxhbmQtc2Vzc2lvbgotZ25vbWUtc2Vzc2lv bi14c2Vzc2lvbgotZ25vbWUtc2V0dGluZ3MtZGFlbW9uCi1nbm9tZS1zaGVsbAotZ25vbWUtc2hl bGwtZXh0ZW5zaW9uLWFsdGVybmF0ZS10YWIKLWdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1l bnUKLWdub21lLXNoZWxsLWV4dGVuc2lvbi1iYWNrZ3JvdW5kLWxvZ28KLWdub21lLXNoZWxsLWV4 dGVuc2lvbi1jb21tb24KLWdub21lLXNoZWxsLWV4dGVuc2lvbi1sYXVuY2gtbmV3LWluc3RhbmNl Ci1nbm9tZS1zaGVsbC1leHRlbnNpb24tcGxhY2VzLW1lbnUKLWdub21lLXNoZWxsLWV4dGVuc2lv bi13aW5kb3ctbGlzdAotZ25vbWUtc29mdHdhcmUKLWdub21lLXN5c3RlbS1tb25pdG9yCi1nbm9t ZS10ZXJtaW5hbAotZ25vbWUtdGVybWluYWwtbmF1dGlsdXMKLWdub21lLXRoZW1lcy1zdGFuZGFy ZAotZ25vbWUtdG9kbwotZ25vbWUtdXNlci1kb2NzCi1nbm9tZS11c2VyLXNoYXJlCi1nbm9tZS12 aWRlby1lZmZlY3RzCi1nbm9tZS13ZWF0aGVyCi1nbnUtZnJlZS1mb250cy1jb21tb24KLWdudS1m cmVlLW1vbm8tZm9udHMKLWdudS1mcmVlLXNhbnMtZm9udHMKLWdudS1mcmVlLXNlcmlmLWZvbnRz Ci1nbnVwZwotZ251cGcyCi1nbnVwZzItc21pbWUKLWdudXRscwotZ29iamVjdC1pbnRyb3NwZWN0 aW9uCi1nb20KLWdvb2dsZS1hbmRyb2lkLWVtb2ppLWZvbnRzCi1nb29nbGUtY3Jvc2V4dHJhLWNh bGFkZWEtZm9udHMKLWdvb2dsZS1jcm9zZXh0cmEtY2FybGl0by1mb250cwotZ29vZ2xlLW5vdG8t ZW1vamktZm9udHMKLWdvb2dsZS1ub3RvLWZvbnRzLWNvbW1vbgotZ29vZ2xlLW5vdG8tc2Fucy1s aXN1LWZvbnRzCi1nb29nbGUtbm90by1zYW5zLW1hbmRhaWMtZm9udHMKLWdvb2dsZS1ub3RvLXNh bnMtbWVldGVpLW1heWVrLWZvbnRzCi1nb29nbGUtbm90by1zYW5zLXNpbmhhbGEtZm9udHMKLWdv b2dsZS1ub3RvLXNhbnMtdGFnYWxvZy1mb250cwotZ29vZ2xlLW5vdG8tc2Fucy10YWktdGhhbS1m b250cwotZ29vZ2xlLW5vdG8tc2Fucy10YWktdmlldC1mb250cwotZ3BlcmZ0b29scy1saWJzCi1n cGdtZQotZ3BnbWVwcAotZ3BnLXB1YmtleQotZ3JhcGhpdGUyCi1ncmVwCi1ncmlsbwotZ3JpbG8t cGx1Z2lucwotZ3JvZmYtYmFzZQotZ3J1YjItY29tbW9uCi1ncnViMi1lZmktaWEzMgotZ3J1YjIt ZWZpLWlhMzItY2Rib290Ci1ncnViMi1lZmkteDY0Ci1ncnViMi1lZmkteDY0LWNkYm9vdAotZ3J1 YjItcGMKLWdydWIyLXBjLW1vZHVsZXMKLWdydWIyLXRvb2xzCi1ncnViMi10b29scy1lZmkKLWdy dWIyLXRvb2xzLWV4dHJhCi1ncnViMi10b29scy1taW5pbWFsCi1ncnViYnkKLWdzZXR0aW5ncy1k ZXNrdG9wLXNjaGVtYXMKLWdzbQotZ3NvdW5kCi1nc3BlbGwKLWdzc2RwCi1nc3Nwcm94eQotZ3N0 cmVhbWVyMQotZ3N0cmVhbWVyMS1wbHVnaW5zLWJhZC1mcmVlCi1nc3RyZWFtZXIxLXBsdWdpbnMt YmFkLWZyZWUtZ3RrCi1nc3RyZWFtZXIxLXBsdWdpbnMtYmFzZQotZ3N0cmVhbWVyMS1wbHVnaW5z LWdvb2QKLWdzdHJlYW1lcjEtcGx1Z2lucy11Z2x5LWZyZWUKLWd0azIKLWd0azMKLWd0a21tMjQK LWd0a21tMzAKLWd0a3NvdXJjZXZpZXczCi1ndGtzcGVsbDMKLWd0ay11cGRhdGUtaWNvbi1jYWNo ZQotZ3RrLXZuYzIKLWd1aWxlCi1ndXBucAotZ3VwbnAtYXYKLWd1cG5wLWRsbmEKLWd1dGVucHJp bnQKLWd1dGVucHJpbnQtY3VwcwotZ3V0ZW5wcmludC1saWJzCi1ndmZzCi1ndmZzLWFmYwotZ3Zm cy1hZnAKLWd2ZnMtYXJjaGl2ZQotZ3Zmcy1jbGllbnQKLWd2ZnMtZnVzZQotZ3Zmcy1nb2EKLWd2 ZnMtZ3Bob3RvMgotZ3Zmcy1tdHAKLWd2ZnMtc21iCi1ndm5jCi1nemlwCi1oYXJkbGluawotaGFy ZmJ1enoKLWhhcmZidXp6LWljdQotaGZzcGx1cy10b29scwotaGljb2xvci1pY29uLXRoZW1lCi1o aWdobGlnaHQKLWhvc3RuYW1lCi1ocGxpcAotaHBsaXAtY29tbW9uCi1ocGxpcC1saWJzCi1odHRw ZAotaHR0cGQtZmlsZXN5c3RlbQotaHR0cGQtdG9vbHMKLWh0dHAtcGFyc2VyCi1odW5zcGVsbAot aHVuc3BlbGwtZW4KLWh1bnNwZWxsLWVuLUdCCi1odW5zcGVsbC1lbi1VUwotaHdkYXRhCi1oeXBl cnYtZGFlbW9ucwotaHlwZXJ2LWRhZW1vbnMtbGljZW5zZQotaHlwZXJ2ZmNvcHlkCi1oeXBlcnZr dnBkCi1oeXBlcnZ2c3NkCi1oeXBoZW4KLWh5cGhlbi1lbgotaWJ1cwotaWJ1cy1ndGsyCi1pYnVz LWd0azMKLWlidXMtaGFuZ3VsCi1pYnVzLWtrYwotaWJ1cy1saWJwaW55aW4KLWlidXMtbGlicwot aWJ1cy1saWJ6aHV5aW4KLWlidXMtbTE3bgotaWJ1cy1xdAotaWJ1cy1yYXdjb2RlCi1pYnVzLXNl dHVwCi1pYnVzLXR5cGluZy1ib29zdGVyCi1pYnVzLXdheWxhbmQKLWlpby1zZW5zb3ItcHJveHkK LWluZm8KLWluaXRzY3JpcHRzCi1pcGNhbGMKLWlwcm91dGUKLWlwcm91dGUtdGMKLWlwc2V0Ci1p cHNldC1saWJzCi1pcHRhYmxlcwotaXB0YWJsZXMtbGlicwotaXB0c3RhdGUKLWlwdXRpbHMKLWlw dzIxMDAtZmlybXdhcmUKLWlwdzIyMDAtZmlybXdhcmUKLWlweGUtcm9tcy1xZW11Ci1pc2NzaS1p bml0aWF0b3ItdXRpbHMKLWlzY3NpLWluaXRpYXRvci11dGlscy1pc2NzaXVpbwotaXNucy11dGls cy1saWJzCi1pc28tY29kZXMKLWlzb21kNXN1bQotaXcKLWl3bDEwMDAtZmlybXdhcmUKLWl3bDEw MC1maXJtd2FyZQotaXdsMTA1LWZpcm13YXJlCi1pd2wxMzUtZmlybXdhcmUKLWl3bDIwMDAtZmly bXdhcmUKLWl3bDIwMzAtZmlybXdhcmUKLWl3bDMxNjAtZmlybXdhcmUKLWl3bDM5NDUtZmlybXdh cmUKLWl3bDQ5NjUtZmlybXdhcmUKLWl3bDUwMDAtZmlybXdhcmUKLWl3bDUxNTAtZmlybXdhcmUK LWl3bDYwMDAtZmlybXdhcmUKLWl3bDYwMDBnMmEtZmlybXdhcmUKLWl3bDYwMDBnMmItZmlybXdh cmUKLWl3bDYwNTAtZmlybXdhcmUKLWl3bDcyNjAtZmlybXdhcmUKLWphbnNzb24KLWphc3Blci1s aWJzCi1qYXZhLTEuOC4wLW9wZW5qZGstaGVhZGxlc3MKLWphdmFwYWNrYWdlcy10b29scwotamJp Z2tpdC1saWJzCi1qaW10Y2wKLWpvbW9saGFyaS1mb250cwotanMtanF1ZXJ5Ci1qc29uLWMKLWpz b24tZ2xpYgotanVsaWV0YXVsYS1tb250c2VycmF0LWZvbnRzCi1qd2hvaXMKLWtiZAota2JkLWxl Z2FjeQota2JkLW1pc2MKLWtlcm5lbAota2VybmVsLWNvcmUKLWtlcm5lbC1tb2R1bGVzCi1rZXJu ZWwtbW9kdWxlcy1leHRyYQota2V4ZWMtdG9vbHMKLWtleGVjLXRvb2xzLWFuYWNvbmRhLWFkZG9u Ci1rZXliaW5kZXIzCi1rZXl1dGlscwota2V5dXRpbHMtbGlicwota2htZXJvcy1iYXNlLWZvbnRz Ci1raG1lcm9zLWZvbnRzLWNvbW1vbgota21vZAota21vZC1saWJzCi1rcGFydHgKLWtyYjUtbGli cwota3lvdG9jYWJpbmV0LWxpYnMKLWxhbWUtbGlicwotbGFuZ3BhY2tzLWVuCi1sYW5ndGFibGUK LWxhbmd0YWJsZS1kYXRhCi1sYW5ndGFibGUtcHl0aG9uMwotbGNtczIKLWxlc3MKLWxpYmE1Mgot bGliYWJ3Ci1saWJhY2wKLWxpYmFpbwotbGliYW8KLWxpYmFwcHN0cmVhbS1nbGliCi1saWJhcmNo aXZlCi1saWJhc3N1YW4KLWxpYmFzeW5jbnMKLWxpYmF0YXNtYXJ0Ci1saWJhdG9taWNfb3BzCi1s aWJhdHRyCi1saWJhdmMxMzk0Ci1saWJiYWJlbHRyYWNlCi1saWJiYXNpY29iamVjdHMKLWxpYmJs a2lkCi1saWJibG9ja2RldgotbGliYmxvY2tkZXYtYnRyZnMKLWxpYmJsb2NrZGV2LWNyeXB0bwot bGliYmxvY2tkZXYtZG0KLWxpYmJsb2NrZGV2LWZzCi1saWJibG9ja2Rldi1rYmQKLWxpYmJsb2Nr ZGV2LWxvb3AKLWxpYmJsb2NrZGV2LWx2bQotbGliYmxvY2tkZXYtbWRyYWlkCi1saWJibG9ja2Rl di1tcGF0aAotbGliYmxvY2tkZXYtcGFydAotbGliYmxvY2tkZXYtcGx1Z2lucy1hbGwKLWxpYmJs b2NrZGV2LXN3YXAKLWxpYmJsb2NrZGV2LXV0aWxzCi1saWJibHVyYXkKLWxpYmJ5dGVzaXplCi1s aWJjYWNhcmQKLWxpYmNhbmJlcnJhCi1saWJjYW5iZXJyYS1ndGsyCi1saWJjYW5iZXJyYS1ndGsz Ci1saWJjYXAKLWxpYmNhcC1uZwotbGliY2RpbwotbGliY2Rpby1wYXJhbm9pYQotbGliY2RyCi1s aWJjZ3JvdXAKLWxpYmNoYW1wbGFpbgotbGliY2hhbXBsYWluLWd0awotbGliY21pcwotbGliY29s bGVjdGlvbgotbGliY29tX2VycgotbGliY29tcHMKLWxpYmNvbmZpZwotbGliY3JvY28KLWxpYmNy eXB0LW5zcwotbGliY3J5cHR1aQotbGliY3VlCi1saWJjdXJsCi1saWJkYWVtb24KLWxpYmRhdHJp ZQotbGliZGIKLWxpYmRiLXV0aWxzCi1saWJkZnUKLWxpYmRoYXNoCi1saWJkbWFwc2hhcmluZwot bGliZG14Ci1saWJkbmV0Ci1saWJkbmYKLWxpYmRybQotbGliZHYKLWxpYmR2ZG5hdgotbGliZHZk cmVhZAotbGliZS1ib29rCi1saWJlZGl0Ci1saWJlb3QKLWxpYmVwb3h5Ci1saWJlcmF0aW9uLWZv bnRzLWNvbW1vbgotbGliZXJhdGlvbi1tb25vLWZvbnRzCi1saWJlcmF0aW9uLXNhbnMtZm9udHMK LWxpYmVyYXRpb24tc2VyaWYtZm9udHMKLWxpYmVydGFzLXVzYjgzODgtZmlybXdhcmUKLWxpYmV0 b255ZWsKLWxpYmV2Ci1saWJldmRldgotbGliZXZlbnQKLWxpYmV4aWYKLWxpYmV4dHRleHRjYXQK LWxpYmZkaXNrCi1saWJmZHQKLWxpYmZmaQotbGliZm9udGVuYwotbGliZnByaW50Ci1saWJmcmVl aGFuZAotbGliZ2NhYjEKLWxpYmdjYwotbGliZ2NyeXB0Ci1saWJnZGF0YQotbGliZ2RpdGhlcgot bGliZ2VlCi1saWJnZXB1YgotbGliZ2V4aXYyCi1saWJnbHRmCi1saWJnbHZuZAotbGliZ2x2bmQt ZWdsCi1saWJnbHZuZC1nbGVzCi1saWJnbHZuZC1nbHgKLWxpYmdub21la2JkCi1saWJnbm9tZS1r ZXlyaW5nCi1saWJnb21wCi1saWJnb3ZpcnQKLWxpYmdwZy1lcnJvcgotbGliZ3Bob3RvMgotbGli Z3BvZAotbGliZ3JzcwotbGliZ3NmCi1saWJndG9wMgotbGliZ3VkZXYKLWxpYmd1c2IKLWxpYmd3 ZWF0aGVyCi1saWJneHBzCi1saWJoYW5ndWwKLWxpYmlidmVyYnMKLWxpYmljYWwKLWxpYklDRQot bGliaWN1Ci1saWJpZG4KLWxpYmlkbjIKLWxpYmllYzYxODgzCi1saWJpZWVlMTI4NAotbGliaW1h Z2VxdWFudAotbGliaW1vYmlsZWRldmljZQotbGliaW5pX2NvbmZpZwotbGliaW5wdXQKLWxpYmlw YV9oYmFjCi1saWJpcHQKLWxpYmlwdGNkYXRhCi1saWJpc2NzaQotbGlianBlZy10dXJibwotbGli a2FkbTUKLWxpYmtrYwotbGlia2tjLWNvbW1vbgotbGlia2tjLWRhdGEKLWxpYmtzYmEKLWxpYmxh bmd0YWcKLWxpYmxhbmd0YWctZGF0YQotbGlibGRiCi1saWJsb3VpcwotbGlibWJpbQotbGlibWJp bS11dGlscwotbGlibWNwcAotbGlibWVkaWFhcnQKLWxpYm1ldGFsaW5rCi1saWJtbmcKLWxpYm1u bAotbGlibW9kbWFuCi1saWJtb3VudAotbGlibXBjCi1saWJtcGNkZWMKLWxpYm1zcGFjawotbGli bXNwdWIKLWxpYm10cAotbGlibXVzaWNicmFpbno1Ci1saWJtd2F3Ci1saWJteAotbGlibmRwCi1s aWJuZXRmaWx0ZXJfY29ubnRyYWNrCi1saWJuZm5ldGxpbmsKLWxpYm5mcwotbGlibmZzaWRtYXAK LWxpYm5naHR0cDIKLWxpYm5sMwotbGlibmwzLWNsaQotbGlibm1hCi1saWJubS1ndGsKLWxpYm5v dGlmeQotbGlib2F1dGgKLWxpYm9kZmdlbgotbGlib2dnCi1saWJvcmN1cwotbGlib3NpbmZvCi1s aWJwYWdlbWFrZXIKLWxpYnBhdGhfdXRpbHMKLWxpYnBjYXAKLWxpYnBjaWFjY2VzcwotbGlicGVh cwotbGlicGVhcy1ndGsKLWxpYnBlYXMtbG9hZGVyLXB5dGhvbjMKLWxpYnBob2RhdgotbGlicGlu eWluCi1saWJwaW55aW4tZGF0YQotbGlicGlwZWxpbmUKLWxpYnBrZ2NvbmYKLWxpYnBsaXN0Ci1s aWJwbmcKLWxpYnByb3h5Ci1saWJwcm94eS1tb3pqcwotbGlicHNrYwotbGlicHNsCi1saWJwd3F1 YWxpdHkKLWxpYnFiCi1saWJxbWkKLWxpYnFtaS11dGlscwotbGlicXV2aQotbGlicXV2aS1zY3Jp cHRzCi1saWJyYWRvczIKLUxpYlJhdwotbGlicmF3MTM5NAotbGlicmJkMQotbGlicmRtYWNtCi1s aWJyZWZfYXJyYXkKLWxpYnJlb2ZmaWNlLWNhbGMKLWxpYnJlb2ZmaWNlLWNvcmUKLWxpYnJlb2Zm aWNlLWRhdGEKLWxpYnJlb2ZmaWNlLWRyYXcKLWxpYnJlb2ZmaWNlLWVtYWlsbWVyZ2UKLWxpYnJl b2ZmaWNlLWZpbHRlcnMKLWxpYnJlb2ZmaWNlLWdyYXBoaWNmaWx0ZXIKLWxpYnJlb2ZmaWNlLWd0 azIKLWxpYnJlb2ZmaWNlLWd0azMKLWxpYnJlb2ZmaWNlLWhlbHAtZW4KLWxpYnJlb2ZmaWNlLWlt cHJlc3MKLWxpYnJlb2ZmaWNla2l0Ci1saWJyZW9mZmljZS1sYW5ncGFjay1lbgotbGlicmVvZmZp Y2UtbWF0aAotbGlicmVvZmZpY2Utb3BlbnN5bWJvbC1mb250cwotbGlicmVvZmZpY2UtcGRmaW1w b3J0Ci1saWJyZW9mZmljZS1weXVubwotbGlicmVvZmZpY2UtdXJlCi1saWJyZW9mZmljZS11cmUt Y29tbW9uCi1saWJyZW9mZmljZS13cml0ZXIKLWxpYnJlb2ZmaWNlLXgxMQotbGlicmVvZmZpY2Ut eHNsdGZpbHRlcgotbGlicmVwbwotbGlicmVwb3J0Ci1saWJyZXBvcnQtYW5hY29uZGEKLWxpYnJl cG9ydC1jbGkKLWxpYnJlcG9ydC1mZWRvcmEKLWxpYnJlcG9ydC1maWxlc3lzdGVtCi1saWJyZXBv cnQtZ3RrCi1saWJyZXBvcnQtcGx1Z2luLWJ1Z3ppbGxhCi1saWJyZXBvcnQtcGx1Z2luLWtlcm5l bG9vcHMKLWxpYnJlcG9ydC1wbHVnaW4tbG9nZ2VyCi1saWJyZXBvcnQtcGx1Z2luLXJlcG9ydHVw bG9hZGVyCi1saWJyZXBvcnQtcGx1Z2luLXN5c3RlbWQtam91cm5hbAotbGlicmVwb3J0LXBsdWdp bi11cmVwb3J0Ci1saWJyZXBvcnQtcHl0aG9uMwotbGlicmVwb3J0LXdlYgotbGlicmV2ZW5nZQot bGlicnN2ZzIKLWxpYnNhbXBsZXJhdGUKLWxpYnNhbmUtaHBhaW8KLWxpYnNlY2NvbXAKLWxpYnNl Y3JldAotbGlic2VsaW51eAotbGlic2VsaW51eC1weXRob24zCi1saWJzZWxpbnV4LXV0aWxzCi1s aWJzZW1hbmFnZQotbGlic2VtYW5hZ2UtcHl0aG9uMwotbGlic2Vwb2wKLWxpYnNob3V0Ci1saWJz aWdjKysyMAotbGlic2lnc2VndgotbGliU00KLWxpYnNtYXJ0Y29scwotbGlic21iY2xpZW50Ci1s aWJzbWJpb3MKLWxpYnNuZGZpbGUKLWxpYnNvbHYKLWxpYnNvdXAKLWxpYnNwZWN0cmUKLWxpYnNy dHAKLWxpYnNzCi1saWJzc2gKLWxpYnNzaDIKLWxpYnNzc19hdXRvZnMKLWxpYnNzc19jZXJ0bWFw Ci1saWJzc3NfaWRtYXAKLWxpYnNzc19uc3NfaWRtYXAKLWxpYnNzc19zdWRvCi1saWJzdGFyb2Zm aWNlCi1saWJzdGRjKysKLWxpYnN0ZW1tZXIKLWxpYnN5c2ZzCi1saWJ0YWxsb2MKLWxpYnRhcgot bGlidGFzbjEKLWxpYnRkYgotbGlidGVhbQotbGlidGV2ZW50Ci1saWJ0aGFpCi1saWJ0aGVvcmEK LWxpYnRpZmYKLWxpYnRpbWV6b25lbWFwCi1saWJ0aXJwYwotbGlidG9vbC1sdGRsCi1saWJ1ZGlz a3MyCi1saWJ1bmlzdHJpbmcKLWxpYnVud2luZAotbGlidXNhbAotbGlidXNiCi1saWJ1c2JtdXhk Ci1saWJ1c2J4Ci1saWJ1c2VyCi1saWJ1dGVtcHRlcgotbGlidXVpZAotbGlidjRsCi1saWJ2ZHBh dQotbGlidmVydG8KLWxpYnZlcnRvLWxpYmV2Ci1saWJ2aXJ0LWRhZW1vbgotbGlidmlydC1kYWVt b24tY29uZmlnLW5ldHdvcmsKLWxpYnZpcnQtZGFlbW9uLWRyaXZlci1pbnRlcmZhY2UKLWxpYnZp cnQtZGFlbW9uLWRyaXZlci1uZXR3b3JrCi1saWJ2aXJ0LWRhZW1vbi1kcml2ZXItbm9kZWRldgot bGlidmlydC1kYWVtb24tZHJpdmVyLW53ZmlsdGVyCi1saWJ2aXJ0LWRhZW1vbi1kcml2ZXItcWVt dQotbGlidmlydC1kYWVtb24tZHJpdmVyLXNlY3JldAotbGlidmlydC1kYWVtb24tZHJpdmVyLXN0 b3JhZ2UKLWxpYnZpcnQtZGFlbW9uLWRyaXZlci1zdG9yYWdlLWNvcmUKLWxpYnZpcnQtZGFlbW9u LWRyaXZlci1zdG9yYWdlLWRpc2sKLWxpYnZpcnQtZGFlbW9uLWRyaXZlci1zdG9yYWdlLWdsdXN0 ZXIKLWxpYnZpcnQtZGFlbW9uLWRyaXZlci1zdG9yYWdlLWlzY3NpCi1saWJ2aXJ0LWRhZW1vbi1k cml2ZXItc3RvcmFnZS1sb2dpY2FsCi1saWJ2aXJ0LWRhZW1vbi1kcml2ZXItc3RvcmFnZS1tcGF0 aAotbGlidmlydC1kYWVtb24tZHJpdmVyLXN0b3JhZ2UtcmJkCi1saWJ2aXJ0LWRhZW1vbi1kcml2 ZXItc3RvcmFnZS1zY3NpCi1saWJ2aXJ0LWRhZW1vbi1kcml2ZXItc3RvcmFnZS1zaGVlcGRvZwot bGlidmlydC1kYWVtb24tZHJpdmVyLXN0b3JhZ2UtemZzCi1saWJ2aXJ0LWRhZW1vbi1rdm0KLWxp YnZpcnQtZ2NvbmZpZwotbGlidmlydC1nbGliCi1saWJ2aXJ0LWdvYmplY3QKLWxpYnZpcnQtbGli cwotbGlidmlzaW8KLWxpYnZpc3VhbAotbGlidm9yYmlzCi1saWJ2cHgKLWxpYndhY29tCi1saWJ3 YWNvbS1kYXRhCi1saWJ3YXlsYW5kLWNsaWVudAotbGlid2F5bGFuZC1jdXJzb3IKLWxpYndheWxh bmQtc2VydmVyCi1saWJ3YmNsaWVudAotbGlid2VicAotbGlid25jazMKLWxpYndwZAotbGlid3Bn Ci1saWJ3cHMKLWxpYndzbWFuMQotbGlid3ZzdHJlYW1zCi1saWJYMTEKLWxpYlgxMS1jb21tb24K LWxpYlgxMS14Y2IKLWxpYlhhdQotbGlieGNiCi1saWJYY29tcG9zaXRlCi1saWJYY3Vyc29yCi1s aWJYZGFtYWdlCi1saWJYZG1jcAotbGliWGV4dAotbGliWGZpeGVzCi1saWJYZm9udAotbGliWGZv bnQyCi1saWJYZnQKLWxpYlhpCi1saWJYaW5lcmFtYQotbGlieGtiY29tbW9uCi1saWJ4a2Jjb21t b24teDExCi1saWJ4a2JmaWxlCi1saWJ4a2xhdmllcgotbGlieG1sMgotbGliWG11Ci1saWJYcG0K LWxpYlhyYW5kcgotbGliWHJlbmRlcgotbGliWHJlcwotbGlieHNobWZlbmNlCi1saWJ4c2x0Ci1s aWJYdAotbGliWHRzdAotbGliWHYKLWxpYlh2TUMKLWxpYlh4Zjg2ZGdhCi1saWJYeGY4Nm1pc2MK LWxpYlh4Zjg2dm0KLWxpYnphcG9qaXQKLWxpYnpodXlpbgotbGliem1mCi1saW51eC1hdG0tbGli cwotbGludXgtZmlybXdhcmUKLWxrc2N0cC10b29scwotbGxkcGFkCi1sbHZtLWxpYnMKLUxtb2QK LWxvY2tkZXYKLWxvZ3JvdGF0ZQotbG9oaXQtYXNzYW1lc2UtZm9udHMKLWxvaGl0LWJlbmdhbGkt Zm9udHMKLWxvaGl0LWRldmFuYWdhcmktZm9udHMKLWxvaGl0LWd1amFyYXRpLWZvbnRzCi1sb2hp dC1ndXJtdWtoaS1mb250cwotbG9oaXQta2FubmFkYS1mb250cwotbG9oaXQtb2RpYS1mb250cwot bG9oaXQtdGFtaWwtZm9udHMKLWxvaGl0LXRlbHVndS1mb250cwotbHBzb2x2ZQotbHJ6c3oKLWxz b2YKLWx0dG5nLXVzdAotbHVhCi1sdWEtZXhwYXQKLWx1YS1maWxlc3lzdGVtCi1sdWEtanNvbgot bHVhLWxpYnMKLWx1YS1scGVnCi1sdWEtcG9zaXgKLWx1YS1zb2NrZXQKLWx1YS10ZXJtCi1sdm0y Ci1sdm0yLWxpYnMKLWx4cG9sa2l0Ci1sejQKLWx6NC1saWJzCi1sem8KLWx6b3AKLW0xN24tZGIK LW0xN24tbGliCi1tYWN0ZWwtYm9vdAotbWFpbGNhcAotbWFrZQotbWFuLWRiCi1tYW4tcGFnZXMK LW1hcmlzYQotbWNlbG9nCi1tY3BwCi1tZGFkbQotbWVkaWEtcGxheWVyLWluZm8KLW1lbXRlc3Q4 NisKLW1lc2EtZHJpLWRyaXZlcnMKLW1lc2EtZmlsZXN5c3RlbQotbWVzYS1saWJFR0wKLW1lc2Et bGliZ2JtCi1tZXNhLWxpYkdMCi1tZXNhLWxpYmdsYXBpCi1tZXNhLWxpYndheWxhbmQtZWdsCi1t ZXNhLWxpYnhhdHJhY2tlcgotbWljcm9jb2RlX2N0bAotbWxvY2F0ZQotbW9iaWxlLWJyb2FkYmFu ZC1wcm92aWRlci1pbmZvCi1tb2RfZG5zc2QKLU1vZGVtTWFuYWdlcgotTW9kZW1NYW5hZ2VyLWds aWIKLW1vZF9odHRwMgotbW9rdXRpbAotbW91c2V0d2Vha3MKLW1vemlsbGEtZmlsZXN5c3RlbQot bW96anMxNwotbW96anMzOAotbW96anM1MgotbXBhZ2UKLW1wZnIKLW1wZzEyMy1saWJzCi1tdGRl dgotbXRvb2xzCi1tdHIKLW11dHRlcgotbXl0aGVzCi1teXRoZXMtZW4KLW5hdXRpbHVzCi1uYXV0 aWx1cy1leHRlbnNpb25zCi1uYXV0aWx1cy1zZW5kdG8KLW5hdmVyLW5hbnVtLWZvbnRzLWNvbW1v bgotbmF2ZXItbmFudW0tZ290aGljLWZvbnRzCi1uY3Vyc2VzCi1uY3Vyc2VzLWJhc2UKLW5jdXJz ZXMtbGlicwotbmVvbgotbmV0Y2YtbGlicwotbmV0LXNubXAtbGlicwotbmV0dGxlCi1uZXQtdG9v bHMKLU5ldHdvcmtNYW5hZ2VyCi1OZXR3b3JrTWFuYWdlci1hZHNsCi1OZXR3b3JrTWFuYWdlci1i bHVldG9vdGgKLU5ldHdvcmtNYW5hZ2VyLWNvbmZpZy1jb25uZWN0aXZpdHktZmVkb3JhCi1OZXR3 b3JrTWFuYWdlci1nbGliCi1OZXR3b3JrTWFuYWdlci1saWJubQotTmV0d29ya01hbmFnZXItb3Bl bmNvbm5lY3QKLU5ldHdvcmtNYW5hZ2VyLW9wZW5jb25uZWN0LWdub21lCi1OZXR3b3JrTWFuYWdl ci1vcGVudnBuCi1OZXR3b3JrTWFuYWdlci1vcGVudnBuLWdub21lCi1OZXR3b3JrTWFuYWdlci1w cHRwCi1OZXR3b3JrTWFuYWdlci1wcHRwLWdub21lCi1OZXR3b3JrTWFuYWdlci1zc2gKLU5ldHdv cmtNYW5hZ2VyLXNzaC1nbm9tZQotTmV0d29ya01hbmFnZXItdGVhbQotTmV0d29ya01hbmFnZXIt dnBuYwotTmV0d29ya01hbmFnZXItdnBuYy1nbm9tZQotTmV0d29ya01hbmFnZXItd2lmaQotTmV0 d29ya01hbmFnZXItd3dhbgotbmV3dAotbmZzLXV0aWxzCi1ubWFwLW5jYXQKLW5tLWNvbm5lY3Rp b24tZWRpdG9yCi1ucHRoCi1uc3ByCi1uc3MKLW5zcy1tZG5zCi1uc3MtcGVtCi1uc3Mtc29mdG9r bgotbnNzLXNvZnRva24tZnJlZWJsCi1uc3Mtc3lzaW5pdAotbnNzLXRvb2xzCi1uc3MtdXRpbAot bnRmcy0zZwotbnRmc3Byb2dzCi1udW1hY3RsLWxpYnMKLW51bWFkCi1vcGVuY2MKLW9wZW5DT0xM QURBCi1vcGVuY29ubmVjdAotb3BlbmpwZWcyCi1vcGVubGRhcAotb3BlbnNzaAotb3BlbnNzaC1j bGllbnRzCi1vcGVuc3NoLXNlcnZlcgotb3BlbnNzbAotb3BlbnNzbC1saWJzCi1vcGVuLXZtLXRv b2xzCi1vcGVuLXZtLXRvb2xzLWRlc2t0b3AKLW9wZW52cG4KLW9wdXMKLW9yYwotb3JjYQotb3Np bmZvLWRiCi1vc2luZm8tZGItdG9vbHMKLW9zLXByb2Jlcgotb3N0cmVlCi1vc3RyZWUtbGlicwot cDExLWtpdAotcDExLWtpdC10cnVzdAotUGFja2FnZUtpdAotUGFja2FnZUtpdC1jb21tYW5kLW5v dC1mb3VuZAotUGFja2FnZUtpdC1nbGliCi1QYWNrYWdlS2l0LWdzdHJlYW1lci1wbHVnaW4KLVBh Y2thZ2VLaXQtZ3RrMy1tb2R1bGUKLXBha2Nob2lzCi1wYWt0eXBlLW5hc2toLWJhc2ljLWZvbnRz Ci1wYW0KLXBhbV9rcmI1Ci1wYW5nbwotcGFuZ29tbQotcGFwcwotcGFwcy1saWJzCi1wYXJhdHlw ZS1wdC1zYW5zLWZvbnRzCi1wYXJ0ZWQKLXBhc3N3ZAotcGFzc3dkcWMKLXBhc3N3ZHFjLWxpYgot cGNpdXRpbHMKLXBjaXV0aWxzLWxpYnMKLXBjcmUKLXBjcmUyCi1wY3JlMi11dGYxNgotcGNzYy1s aXRlLWxpYnMKLXBlcmwtQ2FycAotcGVybC1jb25zdGFudAotcGVybC1EYXRhLUR1bXBlcgotcGVy bC1FbmNvZGUKLXBlcmwtRXJybm8KLXBlcmwtRXJyb3IKLXBlcmwtRXhwb3J0ZXIKLXBlcmwtRmls ZS1QYXRoCi1wZXJsLUZpbGUtVGVtcAotcGVybC1HZXRvcHQtTG9uZwotcGVybC1HaXQKLXBlcmwt SFRUUC1UaW55Ci1wZXJsLWludGVycHJldGVyCi1wZXJsLUlPCi1wZXJsLUlPLVNvY2tldC1JUAot cGVybC1JTy1Tb2NrZXQtU1NMCi1wZXJsLWxpYm5ldAotcGVybC1saWJzCi1wZXJsLW1hY3Jvcwot cGVybC1NSU1FLUJhc2U2NAotcGVybC1Nb3ppbGxhLUNBCi1wZXJsLU5ldC1TU0xlYXkKLXBlcmwt cGFyZW50Ci1wZXJsLVBhdGhUb29scwotcGVybC1Qb2QtRXNjYXBlcwotcGVybC1wb2RsYXRvcnMK LXBlcmwtUG9kLVBlcmxkb2MKLXBlcmwtUG9kLVNpbXBsZQotcGVybC1Qb2QtVXNhZ2UKLXBlcmwt U2NhbGFyLUxpc3QtVXRpbHMKLXBlcmwtU29ja2V0Ci1wZXJsLVN0b3JhYmxlCi1wZXJsLVRlcm0t QU5TSUNvbG9yCi1wZXJsLVRlcm0tQ2FwCi1wZXJsLVRlcm1SZWFkS2V5Ci1wZXJsLVRleHQtUGFy c2VXb3JkcwotcGVybC1UZXh0LVRhYnMrV3JhcAotcGVybC10aHJlYWRzCi1wZXJsLXRocmVhZHMt c2hhcmVkCi1wZXJsLVRpbWUtTG9jYWwKLXBlcmwtVW5pY29kZS1Ob3JtYWxpemUKLXBlcmwtVVJJ Ci1waWd6Ci1waW5lbnRyeQotcGluZW50cnktZ25vbWUzCi1waW5lbnRyeS1ndGsKLXBpbmZvCi1w aXBld2lyZQotcGlwZXdpcmUtbGlicwotcGl4bWFuCi1wa2NzMTEtaGVscGVyCi1wa2djb25mCi1w a2djb25mLW00Ci1wa2djb25mLXBrZy1jb25maWcKLXBseW1vdXRoCi1wbHltb3V0aC1jb3JlLWxp YnMKLXBseW1vdXRoLWdyYXBoaWNzLWxpYnMKLXBseW1vdXRoLXBsdWdpbi1sYWJlbAotcGx5bW91 dGgtcGx1Z2luLXR3by1zdGVwCi1wbHltb3V0aC1zY3JpcHRzCi1wbHltb3V0aC1zeXN0ZW0tdGhl bWUKLXBseW1vdXRoLXRoZW1lLWNoYXJnZQotcG9saWN5Y29yZXV0aWxzCi1wb2xpY3ljb3JldXRp bHMtcHl0aG9uMwotcG9saWN5Y29yZXV0aWxzLXB5dGhvbi11dGlscwotcG9sa2l0Ci1wb2xraXQt bGlicwotcG9sa2l0LXBrbGEtY29tcGF0Ci1wb3BwbGVyCi1wb3BwbGVyLWRhdGEKLXBvcHBsZXIt Z2xpYgotcG9wcGxlci11dGlscwotcG9wdAotcHBwCi1wcHRwCi1wcm9jcHMtbmcKLXBzYWNjdAot cHNtaXNjCi1wdWJsaWNzdWZmaXgtbGlzdC1kYWZzYQotcHVsc2VhdWRpbwotcHVsc2VhdWRpby1n ZG0taG9va3MKLXB1bHNlYXVkaW8tbGlicwotcHVsc2VhdWRpby1saWJzLWdsaWIyCi1wdWxzZWF1 ZGlvLW1vZHVsZS1ibHVldG9vdGgKLXB1bHNlYXVkaW8tbW9kdWxlLXgxMQotcHVsc2VhdWRpby11 dGlscwotcHl0aG9uMgotcHl0aG9uMi1saWJzCi1weXRob24yLXBpcAotcHl0aG9uMi1zZXR1cHRv b2xzCi1weXRob24yLXRhbGxvYwotcHl0aG9uMwotcHl0aG9uMy1hYnJ0Ci1weXRob24zLWFicnQt YWRkb24KLXB5dGhvbjMtYXNuMWNyeXB0bwotcHl0aG9uMy1hdWdlYXMKLXB5dGhvbjMtYmVha2Vy Ci1weXRob24zLWJpbmQKLXB5dGhvbjMtYmxpdmV0Ci1weXRob24zLWJsb2NrZGV2Ci1weXRob24z LWJybGFwaQotcHl0aG9uMy1ieXRlc2l6ZQotcHl0aG9uMy1jYWlybwotcHl0aG9uMy1jYXJpYm91 Ci1weXRob24zLWNmZmkKLXB5dGhvbjMtY2hhcmRldAotcHl0aG9uMy1jb3ZlcmFnZQotcHl0aG9u My1jcnlwdG9ncmFwaHkKLXB5dGhvbjMtY3VwcwotcHl0aG9uMy1kYnVzCi1weXRob24zLWRlY29y YXRvcgotcHl0aG9uMy1kbWlkZWNvZGUKLXB5dGhvbjMtZG5mCi1weXRob24zLWRuZi1wbHVnaW5z LWNvcmUKLXB5dGhvbjMtZW5jaGFudAotcHl0aG9uMy1maXJld2FsbAotcHl0aG9uMy1nb2JqZWN0 Ci1weXRob24zLWdvYmplY3QtYmFzZQotcHl0aG9uMy1ncGcKLXB5dGhvbjMtaGF3a2V5Ci1weXRo b24zLWh1bWFuaXplCi1weXRob24zLWlkbmEKLXB5dGhvbjMtaW5pcGFyc2UKLXB5dGhvbjMtaW5v dGlmeQotcHl0aG9uMy1JUHkKLXB5dGhvbjMtaXNjc2ktaW5pdGlhdG9yLXV0aWxzCi1weXRob24z LWtpY2tzdGFydAotcHl0aG9uMy1saWJjb21wcwotcHl0aG9uMy1saWJyZXBvCi1weXRob24zLWxp YnMKLXB5dGhvbjMtbGlieG1sMgotcHl0aG9uMy1sb3VpcwotcHl0aG9uMy1tYWtvCi1weXRob24z LW1hcmt1cHNhZmUKLXB5dGhvbjMtbWVoCi1weXRob24zLW1laC1ndWkKLXB5dGhvbjMtbnRwbGli Ci1weXRob24zLW9sZWZpbGUKLXB5dGhvbjMtb3JkZXJlZC1zZXQKLXB5dGhvbjMtcGlkCi1weXRo b24zLXBpbGxvdwotcHl0aG9uMy1waXAKLXB5dGhvbjMtcGx5Ci1weXRob24zLXB3cXVhbGl0eQot cHl0aG9uMy1weWF0c3BpCi1weXRob24zLXB5Y3BhcnNlcgotcHl0aG9uMy1weWN1cmwKLXB5dGhv bjMtcHlkYnVzCi1weXRob24zLXB5T3BlblNTTAotcHl0aG9uMy1weXBhcnRlZAotcHl0aG9uMy1w eXNvY2tzCi1weXRob24zLXB5dHoKLXB5dGhvbjMtcHl1ZGV2Ci1weXRob24zLXB5eGRnCi1weXRo b24zLXJlcXVlc3RzCi1weXRob24zLXJlcXVlc3RzLWZpbGUKLXB5dGhvbjMtcmVxdWVzdHMtZnRw Ci1weXRob24zLXJwbQotcHl0aG9uMy1zZXR1cHRvb2xzCi1weXRob24zLXNpbXBsZWxpbmUKLXB5 dGhvbjMtc2l4Ci1weXRob24zLXNsaXAKLXB5dGhvbjMtc2xpcC1kYnVzCi1weXRob24zLXNwZWVj aGQKLXB5dGhvbjMtc3NzZGNvbmZpZwotcHl0aG9uMy1zeXN0ZW1kCi1weXRob24zLXVybGxpYjMK LXB5dGhvbjMtd3JhcHQKLXB5dGhvbi1zeXN0ZW1kLWRvYwotcWVtdS1ibG9jay1jdXJsCi1xZW11 LWJsb2NrLWRtZwotcWVtdS1ibG9jay1nbHVzdGVyCi1xZW11LWJsb2NrLWlzY3NpCi1xZW11LWJs b2NrLW5mcwotcWVtdS1ibG9jay1yYmQKLXFlbXUtYmxvY2stc3NoCi1xZW11LWNvbW1vbgotcWVt dS1ndWVzdC1hZ2VudAotcWVtdS1pbWcKLXFlbXUta3ZtCi1xZW11LXN5c3RlbS14ODYKLXFlbXUt c3lzdGVtLXg4Ni1jb3JlCi1xZ25vbWVwbGF0Zm9ybQotcXBkZi1saWJzCi1xcmVuY29kZS1saWJz Ci1xdAotcXQ1LXF0YmFzZQotcXQ1LXF0YmFzZS1jb21tb24KLXF0NS1xdGJhc2UtZ3VpCi1xdDUt cXRkZWNsYXJhdGl2ZQotcXQ1LXF0eG1scGF0dGVybnMKLXF0LWNvbW1vbgotcXQtc2V0dGluZ3MK LXF0LXgxMQotcXVvdGEKLXF1b3RhLW5scwotcmFkdmQKLXJhcHRvcjIKLXJhc3FhbAotcmRpc3QK LXJkbWEtY29yZQotcmVhZGxpbmUKLXJlYWxtZAotcmVkaGF0LW1lbnVzCi1yZWRsYW5kCi1yZXN0 Ci1yaHl0aG1ib3gKLXJuZy10b29scwotcm9vdGZpbGVzCi1ycGNiaW5kCi1ycG0KLXJwbS1idWls ZC1saWJzCi1ycG0tbGlicwotcnBtLXBsdWdpbi1zZWxpbnV4Ci1ycG0tcGx1Z2luLXN5c3RlbWQt aW5oaWJpdAotcnAtcHBwb2UKLXJzeW5jCi1ydGtpdAotcnlnZWwKLXNhbWJhLWNsaWVudAotc2Ft YmEtY2xpZW50LWxpYnMKLXNhbWJhLWNvbW1vbgotc2FtYmEtY29tbW9uLWxpYnMKLXNhbWJhLWRj LWxpYnMKLXNhbWJhLWxpYnMKLXNhbmUtYmFja2VuZHMKLXNhbmUtYmFja2VuZHMtZHJpdmVycy1j YW1lcmFzCi1zYW5lLWJhY2tlbmRzLWRyaXZlcnMtc2Nhbm5lcnMKLXNhbmUtYmFja2VuZHMtbGli cwotc2F0eXIKLXNiYwotc2NsLXV0aWxzCi1TREwyCi1zZWFiaW9zLWJpbgotc2VhdmdhYmlvcy1i aW4KLXNlZAotc2VsaW51eC1wb2xpY3kKLXNlbGludXgtcG9saWN5LXRhcmdldGVkCi1zZXRvb2xz LXB5dGhvbjMKLXNldHJvdWJsZXNob290Ci1zZXRyb3VibGVzaG9vdC1wbHVnaW5zCi1zZXRyb3Vi bGVzaG9vdC1zZXJ2ZXIKLXNldHVwCi1zZXR1cHRvb2wKLXNnM191dGlscy1saWJzCi1zZ2FiaW9z LWJpbgotc2dwaW8KLXNoYWRvdy11dGlscwotc2hhcmVkLW1pbWUtaW5mbwotc2hlZXBkb2cKLXNo aW0taWEzMgotc2hpbS14NjQKLXNob3R3ZWxsCi1zaWwtYWJ5c3NpbmljYS1mb250cwotc2lsLW1p bmd6YXQtZm9udHMKLXNpbC1udW9zdS1mb250cwotc2lsLXBhZGF1ay1mb250cwotc2ltcGxlLXNj YW4KLXNra2RpYwotc2xhbmcKLXNtYy1mb250cy1jb21tb24KLXNtYy1tZWVyYS1mb250cwotc25h cHB5Ci1zbmktcXQKLXNvcwotc291bmQtdGhlbWUtZnJlZWRlc2t0b3AKLXNvdW5kdG91Y2gKLXNv eHIKLXNwZWVjaC1kaXNwYXRjaGVyCi1zcGVlY2gtZGlzcGF0Y2hlci1lc3BlYWsKLXNwZWV4Ci1z cGVleGRzcAotc3BpY2UtZ2xpYgotc3BpY2UtZ3RrMwotc3BpY2Utc2VydmVyCi1zcGljZS12ZGFn ZW50Ci1zcWxpdGUtbGlicwotc3NocGFzcwotc3NzZAotc3NzZC1hZAotc3NzZC1jbGllbnQKLXNz c2QtY29tbW9uCi1zc3NkLWNvbW1vbi1wYWMKLXNzc2QtaXBhCi1zc3NkLWtjbQotc3NzZC1rcmI1 Ci1zc3NkLWtyYjUtY29tbW9uCi1zc3NkLWxkYXAKLXNzc2QtbmZzLWlkbWFwCi1zc3NkLXByb3h5 Ci1zdGFydHVwLW5vdGlmaWNhdGlvbgotc3RpeC1mb250cwotc3Rva2VuLWxpYnMKLXN1ZG8KLXN1 c2hpCi1zd2l0Y2hlcm9vLWNvbnRyb2wKLXN5bWxpbmtzCi1zeXNsaW51eAotc3lzbGludXgtZXh0 bGludXgKLXN5c2xpbnV4LWV4dGxpbnV4LW5vbmxpbnV4Ci1zeXNsaW51eC1ub25saW51eAotc3lz dGVtLWNvbmZpZy1wcmludGVyLWxpYnMKLXN5c3RlbS1jb25maWctcHJpbnRlci11ZGV2Ci1zeXN0 ZW1kCi1zeXN0ZW1kLWJvb3RjaGFydAotc3lzdGVtZC1jb250YWluZXIKLXN5c3RlbWQtbGlicwot c3lzdGVtZC1wYW0KLXN5c3RlbWQtdWRldgotdGFiaXNoLWVleWVrLWZvbnRzCi10YWdsaWIKLXRh cgotdGNsCi10Y3BkdW1wCi10Y3Bfd3JhcHBlcnMKLXRjcF93cmFwcGVycy1saWJzCi10ZWFtZAot dGVsZXBhdGh5LWZpbGVzeXN0ZW0KLXRlbGVwYXRoeS1nbGliCi10ZWxlcGF0aHktbG9nZ2VyCi10 ZWxuZXQKLXRoYWktc2NhbGFibGUtZm9udHMtY29tbW9uCi10aGFpLXNjYWxhYmxlLXdhcmVlLWZv bnRzCi10aWdlcnZuYy1saWNlbnNlCi10aWdlcnZuYy1zZXJ2ZXItbWluaW1hbAotdGltZQotdGlt ZWRhdGV4Ci10b3RlbQotdG90ZW0tbmF1dGlsdXMKLXRvdGVtLXBsLXBhcnNlcgotdHJhY2Vyb3V0 ZQotdHJhY2tlcgotdHJhY2tlci1taW5lcnMKLXRyZWUKLXRyb3VzZXJzCi10cm91c2Vycy1saWIK LXR6ZGF0YQotdHpkYXRhLWphdmEKLXVkaXNrczIKLXVuaWNvZGUtdWNkCi11bmlxdWUKLXVub2Nv bnYKLXVuemlwCi11cG93ZXIKLXVydy1mb250cwotdXNiX21vZGVzd2l0Y2gKLXVzYl9tb2Rlc3dp dGNoLWRhdGEKLXVzYm11eGQKLXVzYnJlZGlyCi11c2J1dGlscwotdXNlcm1vZGUKLXVzZXJzcGFj ZS1yY3UKLXV0aWwtbGludXgKLXZjb25maWcKLXZpbS1taW5pbWFsCi12aW5vCi12aXJnbHJlbmRl cmVyCi12bGdvdGhpYy1mb250cwotdm9sdW1lX2tleS1saWJzCi12cG5jCi12cG5jLXNjcmlwdAot dnRlMjkxCi12dGUtcHJvZmlsZQotd2F2cGFjawotd2ViLWFzc2V0cy1maWxlc3lzdGVtCi13ZWJr aXRndGs0Ci13ZWJraXRndGs0LWpzYwotd2Via2l0Z3RrNC1wbHVnaW4tcHJvY2Vzcy1ndGsyCi13 ZWJydGMtYXVkaW8tcHJvY2Vzc2luZwotd2dldAotd2hpY2gKLXdpcmVsZXNzLXRvb2xzCi13b3Jk cwotd3BhX3N1cHBsaWNhbnQKLXd2ZGlhbAoteGNiLXV0aWwKLXhjYi11dGlsLWltYWdlCi14Y2It dXRpbC1rZXlzeW1zCi14Y2ItdXRpbC1yZW5kZXJ1dGlsCi14Y2ItdXRpbC13bQoteGRnLWRlc2t0 b3AtcG9ydGFsCi14ZGctZGVza3RvcC1wb3J0YWwtZ3RrCi14ZGctdXNlci1kaXJzCi14ZGctdXNl ci1kaXJzLWd0awoteGRnLXV0aWxzCi14ZW4tbGlicwoteGVuLWxpY2Vuc2VzCi14ZnNwcm9ncwot eGtleWJvYXJkLWNvbmZpZwoteG1sLWNvbW1vbgoteG1scnBjLWMKLXhtbHJwYy1jLWNsaWVudAot eG1sc2VjMQoteG1sc2VjMS1vcGVuc3NsCi14b3JnLXgxMS1kcnYtYXRpCi14b3JnLXgxMS1kcnYt ZXZkZXYKLXhvcmcteDExLWRydi1mYmRldgoteG9yZy14MTEtZHJ2LWludGVsCi14b3JnLXgxMS1k cnYtbGliaW5wdXQKLXhvcmcteDExLWRydi1ub3V2ZWF1Ci14b3JnLXgxMS1kcnYtb3BlbmNocm9t ZQoteG9yZy14MTEtZHJ2LXF4bAoteG9yZy14MTEtZHJ2LXZlc2EKLXhvcmcteDExLWRydi12bXdh cmUKLXhvcmcteDExLWRydi13YWNvbQoteG9yZy14MTEtZm9udC11dGlscwoteG9yZy14MTEtc2Vy dmVyLWNvbW1vbgoteG9yZy14MTEtc2VydmVyLXV0aWxzCi14b3JnLXgxMS1zZXJ2ZXItWG9yZwot eG9yZy14MTEtc2VydmVyLVh3YXlsYW5kCi14b3JnLXgxMS11dGlscwoteG9yZy14MTEteGF1dGgK LXhvcmcteDExLXhpbml0Ci14b3JnLXgxMS14a2ItdXRpbHMKLXh6Ci14ei1saWJzCi15YWpsCi15 ZWxwCi15ZWxwLWxpYnMKLXllbHAteHNsCi16ZDEyMTEtZmlybXdhcmUKLXplbml0eQotemZzLWZ1 c2UKLXppcAotemxpYgoKZGlmZiAtLWdpdCBhL2dlbmVyYXRlLWZpbGVzLnNoIGIvZ2VuZXJhdGUt ZmlsZXMuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAyMTlhNjEuLjAwMDAwMDAK LS0tIGEvZ2VuZXJhdGUtZmlsZXMuc2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0j IS9iaW4vYmFzaAotCi1vdXQ9JDEKLWJhc2U9JChiYXNlbmFtZSAkb3V0KQotCi1jYXNlICRiYXNl IGluCi0gICAgZnJlZWRlc2t0b3AtKikKLQlucz1vcmcuZnJlZWRlc2t0b3AKLQl2ZXJzaW9uPTEu NgotCTs7Ci0gICAgZ25vbWUtKikKLQlucz1vcmcuZ25vbWUKLQl2ZXJzaW9uPTMuMjYKLQk7Owot ICAgICopCi0JZWNobyAxPiYyICJDYW4ndCBpZGVudGlmeSBydW50aW1lIGZvciAkYmFzZSIKLQll eGl0IDEKLQk7OwotZXNhYwotCi1jYXNlICRiYXNlIGluCi0gICAgKi1QbGF0Zm9ybS5maWxlcykK LQlzZGs9Ci0JdHlwZT1QbGF0Zm9ybQotCTs7Ci0gICAgKi1TZGsuZmlsZXMpCi0Jc2RrPS0tc2Rr Ci0JdHlwZT1TZGsKLQk7OwotICAgICopCi0JZWNobyAxPiYyICJDYW4ndCBpZGVudGlmeSB0eXBl IGZvciAkYmFzZSIKLQlleGl0IDEKLQk7OwotZXNhYwotCi1ydW50aW1lPSIkbnMuJHR5cGUveDg2 XzY0LyR2ZXJzaW9uIgotCi1lY2hvICIkYmFzZTogbGlzdGluZyBmaWxlcyBpbiAkcnVudGltZSIK LQotZmxhdHBhayBydW4gLS1maWxlLWZvcndhcmRpbmcgLS1jb21tYW5kPS91c3IvYmluL3B5dGhv bjMgJHJ1bnRpbWUgQEAgbGlzdC1maWxlcy5weSBAQCAkc2RrID4gJG91dAoKZGlmZiAtLWdpdCBh L2dlbmVyYXRlLW1vZHVsZW1kLnB5IGIvZ2VuZXJhdGUtbW9kdWxlbWQucHkKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNzU1CmluZGV4IGIzYmI0ZWYuLjAwMDAwMDAKLS0tIGEvZ2VuZXJhdGUtbW9kdWxl bWQucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0jIS91c3IvYmluL3B5dGhvbjMK LWltcG9ydCBzeXMKLWZyb20geWFtbF91dGlscyBpbXBvcnQgb3JkZXJlZF9sb2FkLCBvcmRlcmVk X2R1bXAKLQotd2l0aCBvcGVuKCdmbGF0cGFrLXJ1bnRpbWUuaW4ueWFtbCcpIGFzIGY6Ci0gICAg bW9kdWxlbWQgPSBvcmRlcmVkX2xvYWQoZikKLQotZGVmIHNldF9wcm9maWxlKHByb2ZpbGVfbmFt ZSwgbGlzdF9maWxlKToKLSAgICB3aXRoIG9wZW4obGlzdF9maWxlKSBhcyBmOgotICAgICAgICBw YWNrYWdlcyA9IFtsLnN0cmlwKCkgZm9yIGwgaW4gZl0KLSAgICBwcmludCgie306IHt9IHBhY2th Z2VzIi5mb3JtYXQocHJvZmlsZV9uYW1lLCBsZW4ocGFja2FnZXMpKSwgZmlsZT1zeXMuc3RkZXJy KQotICAgIG1vZHVsZW1kWydkYXRhJ11bJ3Byb2ZpbGVzJ11bcHJvZmlsZV9uYW1lXSA9IHBhY2th Z2VzCi0KLXNldF9wcm9maWxlKCdydW50aW1lJywgJ291dC9ydW50aW1lLnByb2ZpbGUnKQotc2V0 X3Byb2ZpbGUoJ3J1bnRpbWUtYmFzZScsICdvdXQvcnVudGltZS1iYXNlLnByb2ZpbGUnKQotc2V0 X3Byb2ZpbGUoJ3NkaycsICdvdXQvc2RrLnByb2ZpbGUnKQotc2V0X3Byb2ZpbGUoJ3Nkay1iYXNl JywgJ291dC9zZGstYmFzZS5wcm9maWxlJykKLQotd2l0aCBvcGVuKCdmbGF0cGFrLXJ1bnRpbWUu eWFtbCcsICd3JykgYXMgZjoKLSAgICBvcmRlcmVkX2R1bXAobW9kdWxlbWQsIHN0cmVhbT1mLCBk ZWZhdWx0X2Zsb3dfc3R5bGU9RmFsc2UsIGVuY29kaW5nPSJ1dGYtOCIpCgpkaWZmIC0tZ2l0IGEv Z2VuZXJhdGUtcmVwb3J0LnB5IGIvZ2VuZXJhdGUtcmVwb3J0LnB5CmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDc1NQppbmRleCBjNDA1ZDMwLi4wMDAwMDAwCi0tLSBhL2dlbmVyYXRlLXJlcG9ydC5weQor KysgL2Rldi9udWxsCkBAIC0xLDQwMSArMCwwIEBACi0jIS91c3IvYmluL3B5dGhvbjMKLQotZnJv bSBqaW5qYTIgaW1wb3J0IEVudmlyb25tZW50LCBGaWxlU3lzdGVtTG9hZGVyLCBzZWxlY3RfYXV0 b2VzY2FwZQotaW1wb3J0IGpzb24KLWltcG9ydCBsb2NhbGUKLWltcG9ydCBvcwotaW1wb3J0IHJl Ci1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHN5cwotCi1kZWYgc3RhcnQobXNnKToKLSAgICBw cmludCgie306IFwwMzNbOTBte30gLi4uIFwwMzNbMzltIi5mb3JtYXQob3MucGF0aC5iYXNlbmFt ZShzeXMuYXJndlswXSksIG1zZyksIGZpbGU9c3lzLnN0ZGVyciwgZW5kPSIiKQotICAgIHN5cy5z dGRlcnIuZmx1c2goKQotCi1kZWYgZG9uZSgpOgotICAgIHByaW50KCJcMDMzWzkwbWRvbmVcMDMz WzM5bSIsIGZpbGU9c3lzLnN0ZGVycikKLQotZGVmIHdhcm4obXNnKToKLSAgICBwcmludCgie306 IFwwMzNbMzFte31cMDMzWzM5bSIuZm9ybWF0KG9zLnBhdGguYmFzZW5hbWUoc3lzLmFyZ3ZbMF0p LCBtc2cpLCBmaWxlPXN5cy5zdGRlcnIpCi0KLWRlZiBmZWRtb2Rfb3V0cHV0KGFyZ3MpOgotICAg IHJldHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbJ3BpcGVudicsICdydW4nLCAnZmVkbW9k J10gKyBhcmdzLCBlbmNvZGluZz0ndXRmLTgnLCBjd2Q9Jy9ob21lL290YXlsb3IvU291cmNlL2Zl ZG1vZCcpCi0KLV9udnJfdG9fbmFtZV9yZSA9IHJlLmNvbXBpbGUoJ14oLiopLVteLV0qLVteLV0q JykKLWRlZiBudnJfdG9fbmFtZShudnIpOgotICAgIHJldHVybiBfbnZyX3RvX25hbWVfcmUubWF0 Y2gobnZyKS5ncm91cCgxKQotCi1jbGFzcyBQYWNrYWdlKG9iamVjdCk6Ci0gICAgZGVmIF9faW5p dF9fKHNlbGYsIG5hbWUpOgotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAgICAgIHNlbGYu ZnJlZWRlc2t0b3BfcGxhdGZvcm0gPSAwCi0gICAgICAgIHNlbGYuZnJlZWRlc2t0b3BfcGxhdGZv cm1fZmlsZXMgPSBOb25lCi0gICAgICAgIHNlbGYuZnJlZWRlc2t0b3BfcGxhdGZvcm1fcmVxdWly ZWRfYnkgPSBOb25lCi0gICAgICAgIHNlbGYuZ25vbWVfcGxhdGZvcm0gPSAwCi0gICAgICAgIHNl bGYuZ25vbWVfcGxhdGZvcm1fZmlsZXMgPSBOb25lCi0gICAgICAgIHNlbGYuZ25vbWVfcGxhdGZv cm1fcmVxdWlyZWRfYnkgPSBOb25lCi0gICAgICAgIHNlbGYuZnJlZWRlc2t0b3Bfc2RrID0gMAot ICAgICAgICBzZWxmLmZyZWVkZXNrdG9wX3Nka19maWxlcyA9IE5vbmUKLSAgICAgICAgc2VsZi5m cmVlZGVza3RvcF9zZGtfcmVxdWlyZWRfYnkgPSBOb25lCi0gICAgICAgIHNlbGYuZ25vbWVfc2Rr ID0gMAotICAgICAgICBzZWxmLmdub21lX3Nka19maWxlcyA9IE5vbmUKLSAgICAgICAgc2VsZi5n bm9tZV9zZGtfcmVxdWlyZWRfYnkgPSBOb25lCi0gICAgICAgIHNlbGYubGl2ZSA9IDAKLSAgICAg ICAgc2VsZi5yZjI2ID0gMAotICAgICAgICBzZWxmLnNvdXJjZV9wYWNrYWdlID0gTm9uZQotICAg ICAgICBzZWxmLmZsYWcgPSBOb25lCi0gICAgICAgIHNlbGYuX25vdGUgPSBOb25lCi0KLSAgICBA cHJvcGVydHkKLSAgICBkZWYgcnVudGltZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmZy ZWVkZXNrdG9wX3BsYXRmb3JtIG9yIHNlbGYuZ25vbWVfcGxhdGZvcm0gb3Igc2VsZi5mcmVlZGVz a3RvcF9zZGsgb3Igc2VsZi5nbm9tZV9zZGsKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBrbGFz cyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5mbGFnID09ICdGJzoKLSAgICAgICAgICAgIHJldHVy biAiZmxhZ2dlZCIKLSAgICAgICAgZWxpZiBzZWxmLmZsYWcgPT0gJ0Y/JzoKLSAgICAgICAgICAg IHJldHVybiAicXVlc3Rpb25hYmxlIgotICAgICAgICBlbGlmIHNlbGYuZmxhZyA9PSAnRkQnOgot ICAgICAgICAgICAgcmV0dXJuICJmbGFnZ2VkLWRlcCIKLSAgICAgICAgZWxpZiBzZWxmLmZsYWcg PT0gJ1cnOgotICAgICAgICAgICAgcmV0dXJuICJ3YWl2ZWQiCi0gICAgICAgIGVsaWYgc2VsZi5n bm9tZV9wbGF0Zm9ybSBhbmQgbm90IHNlbGYubGl2ZToKLSAgICAgICAgICAgIHJldHVybiAicXVl c3Rpb25hYmxlIgotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG1vZHVsZXMoc2VsZik6Ci0gICAg ICAgIHJldHVybiBwYWNrYWdlX3RvX21vZHVsZS5nZXQoc2VsZi5uYW1lLCAiIikKLQotICAgIEBw cm9wZXJ0eQotICAgIGRlZiBub3RlKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmdub21lX3BsYXRm b3JtIGFuZCBub3Qgc2VsZi5saXZlOgotICAgICAgICAgICAgcmV0dXJuICJwbGF0Zm9ybSBwYWNr YWdlIG5vdCBvbiBMaXZlIGltYWdlIgotICAgICAgICBlbGlmIHNlbGYuX25vdGU6Ci0gICAgICAg ICAgICByZXR1cm4gc2VsZi5fbm90ZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJu ICIiCi0KLSAgICBkZWYgd2h5KHNlbGYsIHdoaWNoKToKLSAgICAgICAgZmlsZXMgPSBnZXRhdHRy KHNlbGYsIHdoaWNoICsgJ19maWxlcycpCi0gICAgICAgIGlmIGZpbGVzIGlzIE5vbmU6Ci0gICAg ICAgICAgICBmaWxlc19zdHIgPSAnJwotICAgICAgICBlbGlmIGxlbihmaWxlcykgPD0gMzoKLSAg ICAgICAgICAgIGZpbGVzX3N0cj0gICdGaWxlczogJyArICcgJy5qb2luKGZpbGVzKQotICAgICAg ICBlbHNlOgotICAgICAgICAgICAgZmlsZXNfc3RyID0gJ0ZpbGVzOiAnICsgJyAnLmpvaW4oZmls ZXNbOjNdKSArICcgLi4uJwotCi0gICAgICAgIHJlcXVpcmVkX2J5ID0gZ2V0YXR0cihzZWxmLCB3 aGljaCArICdfcmVxdWlyZWRfYnknKQotICAgICAgICBpZiByZXF1aXJlZF9ieSBpcyBOb25lOgot ICAgICAgICAgICAgcmVxdWlyZWRfYnlfc3RyID0gJycKLSAgICAgICAgZWxzZToKLSAgICAgICAg ICAgIHJlcXVpcmVkX2J5X3N0ciA9ICdcbicuam9pbigne30gKHt9KScuZm9ybWF0KHJlcSwgcHJv dmlkZXIpIGZvciByZXEsIHByb3ZpZGVyIGluIHJlcXVpcmVkX2J5KQotCi0gICAgICAgIGlmIGZp bGVzX3N0ciBhbmQgcmVxdWlyZWRfYnlfc3RyOgotICAgICAgICAgICAgcmV0dXJuIGZpbGVzX3N0 ciArICdcbicgKyByZXF1aXJlZF9ieV9zdHIKLSAgICAgICAgZWxpZiBmaWxlc19zdHI6Ci0gICAg ICAgICAgICByZXR1cm4gZmlsZXNfc3RyCi0gICAgICAgIGVsaWYgcmVxdWlyZWRfYnlfc3RyOgot ICAgICAgICAgICAgcmV0dXJuIHJlcXVpcmVkX2J5X3N0cgotICAgICAgICBlbHNlOgotICAgICAg ICAgICAgcmV0dXJuICcnCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZnJlZWRlc2t0b3BfcGxh dGZvcm1fd2h5KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi53aHkoJ2ZyZWVkZXNrdG9wX3Bs YXRmb3JtJykKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBmcmVlZGVza3RvcF9zZGtfd2h5KHNl bGYpOgotICAgICAgICByZXR1cm4gc2VsZi53aHkoJ2ZyZWVkZXNrdG9wX3NkaycpCi0KLSAgICBA cHJvcGVydHkKLSAgICBkZWYgZ25vbWVfcGxhdGZvcm1fd2h5KHNlbGYpOgotICAgICAgICByZXR1 cm4gc2VsZi53aHkoJ2dub21lX3BsYXRmb3JtJykKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBn bm9tZV9zZGtfd2h5KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi53aHkoJ2dub21lX3Nkaycp Ci0KLSAgICBkZWYgaW5jbHVzaW9uKHNlbGYsIHdoaWNoKToKLSAgICAgICAgbGV2ZWwgPSBnZXRh dHRyKHNlbGYsIHdoaWNoKQotICAgICAgICBpZiBsZXZlbCA9PSAwOgotICAgICAgICAgICAgcmV0 dXJuICdhYnNlbnQnCi0gICAgICAgIGVsaWYgbGV2ZWwgPT0gMToKLSAgICAgICAgICAgIHJldHVy biAnZGVwJwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVxdWlyZWRfYnkgPSBnZXRhdHRy KHNlbGYsIHdoaWNoICsgJ19yZXF1aXJlZF9ieScsIEZhbHNlKQotICAgICAgICAgICAgaWYgcmVx dWlyZWRfYnkgaXMgRmFsc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdwcmVzZW50JwotICAg ICAgICAgICAgZWxpZiByZXF1aXJlZF9ieSBpcyBub3QgTm9uZSBhbmQgbGVuKHJlcXVpcmVkX2J5 KSA+IDA6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdmaWxlcycKLSAgICAgICAgICAgIGVsc2U6 Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdyb290JwotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVm IGZyZWVkZXNrdG9wX3BsYXRmb3JtX2luY2x1c2lvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl bGYuaW5jbHVzaW9uKCdmcmVlZGVza3RvcF9wbGF0Zm9ybScpCi0KLSAgICBAcHJvcGVydHkKLSAg ICBkZWYgZnJlZWRlc2t0b3Bfc2RrX2luY2x1c2lvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl bGYuaW5jbHVzaW9uKCdmcmVlZGVza3RvcF9zZGsnKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVm IGdub21lX3BsYXRmb3JtX2luY2x1c2lvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuaW5j bHVzaW9uKCdnbm9tZV9wbGF0Zm9ybScpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZ25vbWVf c2RrX2luY2x1c2lvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuaW5jbHVzaW9uKCdnbm9t ZV9zZGsnKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGxpdmVfaW5jbHVzaW9uKHNlbGYpOgot ICAgICAgICByZXR1cm4gc2VsZi5pbmNsdXNpb24oJ2xpdmUnKQotCi0gICAgQHByb3BlcnR5Ci0g ICAgZGVmIHJmMjZfaW5jbHVzaW9uKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5pbmNsdXNp b24oJ3JmMjYnKQotCi1jbGFzcyBTb3VyY2VQYWNrYWdlKG9iamVjdCk6Ci0gICAgZGVmIF9faW5p dF9fKHNlbGYsIG5hbWUpOgotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAgICAgIHNlbGYu cGFja2FnZXMgPSBbXQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG1vZHVsZXMoc2VsZik6Ci0g ICAgICAgIG9sZF9tb2R1bGVzID0gc2VsZi5wYWNrYWdlc1swXS5tb2R1bGVzCi0gICAgICAgIGts YXNzID0gc2VsZi5rbGFzcwotICAgICAgICBpZiBrbGFzcyA9PSAiYnVpbGQtcGxhdGZvcm0iOgot ICAgICAgICAgICAgbmV3X21vZHVsZSA9ICJkZXNrdG9wLXJ1bnRpbWUiCi0gICAgICAgIGVsaWYg a2xhc3MgPT0gImJ1aWxkLXNkayI6Ci0gICAgICAgICAgICBuZXdfbW9kdWxlID0gImZsYXRwYWst cnVudGltZSIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5ld19tb2R1bGUgPSBOb25lCi0K LSAgICAgICAgaWYgb2xkX21vZHVsZXMgYW5kIG5ld19tb2R1bGU6Ci0gICAgICAgICAgICByZXR1 cm4gb2xkX21vZHVsZXMgKyAiIOKHkiAiICsgbmV3X21vZHVsZQotICAgICAgICBlbGlmIG9sZF9t b2R1bGVzOgotICAgICAgICAgICAgcmV0dXJuIG9sZF9tb2R1bGVzCi0gICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICByZXR1cm4gbmV3X21vZHVsZQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHNk a19vbmx5KHNlbGYpOgotICAgICAgICByZXR1cm4gc2RrX29ubHkKLQotICAgIEBwcm9wZXJ0eQot ICAgIGRlZiBrbGFzcyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5wYWNrYWdlc1swXS5tb2R1bGVz IGluICgiIiwgImluc3RhbGxlciIpOgotICAgICAgICAgICAgc2RrX29ubHkgPSBUcnVlCi0gICAg ICAgICAgICBmb3IgcGFja2FnZSBpbiBzZWxmLnBhY2thZ2VzOgotICAgICAgICAgICAgICAgIGlm IHBhY2thZ2UuZnJlZWRlc2t0b3BfcGxhdGZvcm0gb3IgcGFja2FnZS5nbm9tZV9wbGF0Zm9ybToK LSAgICAgICAgICAgICAgICAgICAgc2RrX29ubHkgPSBGYWxzZQotICAgICAgICAgICAgaWYgc2Rr X29ubHk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJidWlsZC1zZGsiCi0gICAgICAgICAgICBl bHNlOgotICAgICAgICAgICAgICAgIHJldHVybiAiYnVpbGQtcGxhdGZvcm0iCi0gICAgICAgIGVs c2U6Ci0gICAgICAgICAgICByZXR1cm4gIiIKLQotY2xhc3MgTGV0dGVyKG9iamVjdCk6Ci0gICAg ZGVmIF9faW5pdF9fKHNlbGYsIGxldHRlcik6Ci0gICAgICAgIHNlbGYubGV0dGVyID0gbGV0dGVy Ci0gICAgICAgIHNlbGYucGFja2FnZXMgPSBbXQotCi0jCi0jIEdldCBpbmZvcm1hdGlvbiBhYm91 dCBwYWNrYWdlcwotIwotCi1wYWNrYWdlcyA9IGRpY3QoKQotZGVmIGFkZF9wYWNrYWdlKG5hbWUs IHdoaWNoLCBsZXZlbCwgb25seV9pZl9leGlzdHM9RmFsc2UsIHNvdXJjZV9wYWNrYWdlPU5vbmUp OgotICAgIHBrZyA9IHBhY2thZ2VzLmdldChuYW1lLCBOb25lKQotICAgIGlmIHBrZyBpcyBOb25l OgotICAgICAgICBpZiBvbmx5X2lmX2V4aXN0czoKLSAgICAgICAgICAgIHJldHVybgotICAgICAg ICBwa2cgPSBQYWNrYWdlKG5hbWUpCi0gICAgICAgIHBhY2thZ2VzW25hbWVdID0gcGtnCi0gICAg aWYgZ2V0YXR0cihwa2csIHdoaWNoKSA8IGxldmVsOgotICAgICAgICBzZXRhdHRyKHBrZywgd2hp Y2gsIGxldmVsKQotICAgIGlmIHNvdXJjZV9wYWNrYWdlIGlzIG5vdCBOb25lOgotICAgICAgICBw a2cuc291cmNlX3BhY2thZ2UgPSBzb3VyY2VfcGFja2FnZQotCi1kZWYgYWRkX3BhY2thZ2VzKGZp bGVuYW1lLCB3aGljaCwgcmVzb2x2ZV9kZXBzPUZhbHNlLCBvbmx5X2lmX2V4aXN0cz1GYWxzZSk6 Ci0gICAgc3RhcnQoIkFkZGluZyBwYWNrYWdlcyBmcm9tIHt9Ii5mb3JtYXQoZmlsZW5hbWUpKQot ICAgIHdpdGggb3BlbihmaWxlbmFtZSkgYXMgZjoKLSAgICAgICAgcGtncyA9IHNldChsaW5lLnN0 cmlwKCkgZm9yIGxpbmUgaW4gZikKLQotICAgIGlmIHJlc29sdmVfZGVwczoKLSAgICAgICAgcmVz b2x2ZWRfcGFja2FnZXMgPSBqc29uLmxvYWRzKGZlZG1vZF9vdXRwdXQoWydyZXNvbHZlLWRlcHMn LCAnLS1qc29uJ10gKyBsaXN0KHBrZ3MpKSkKLSAgICAgICAgZm9yIHBhY2thZ2UgaW4gcmVzb2x2 ZWRfcGFja2FnZXM6Ci0gICAgICAgICAgICBuYW1lID0gbnZyX3RvX25hbWUocGFja2FnZVsncnBt J10pCi0gICAgICAgICAgICBzcnBtX25hbWUgPSBudnJfdG9fbmFtZShwYWNrYWdlWydzcnBtJ10p Ci0gICAgICAgICAgICBhZGRfcGFja2FnZShuYW1lLCB3aGljaCwgbGV2ZWw9KDIgaWYgbmFtZSBp biBwa2dzIGVsc2UgMSksCi0gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfcGFja2FnZT1z cnBtX25hbWUsIG9ubHlfaWZfZXhpc3RzPW9ubHlfaWZfZXhpc3RzKQotCi0gICAgICAgIGZvciBw YWNrYWdlIGluIHJlc29sdmVkX3BhY2thZ2VzOgotICAgICAgICAgICAgZm9yIHJlcSwgcHJvdmlk ZXJzIGluIHBhY2thZ2VbJ3JlcXVpcmVzJ10uaXRlbXMoKToKLSAgICAgICAgICAgICAgICBwcm92 aWRlciA9IG52cl90b19uYW1lKHByb3ZpZGVyc1swXSkKLSAgICAgICAgICAgICAgICBwcm92aWRl cl9wYWNrYWdlID0gcGFja2FnZXMuZ2V0KHByb3ZpZGVyLCBOb25lKQotICAgICAgICAgICAgICAg IGlmIHByb3ZpZGVyX3BhY2thZ2UgaXMgTm9uZTogIyBmaWx0ZXJlZCBvdXQgb2YgdGhlIHJlc29s dmUtZGVwcyBvdXRwdXQgLSBlLmcuLCBmZWRvcmEtcmVsZWFzZQotICAgICAgICAgICAgICAgICAg ICBjb250aW51ZQotICAgICAgICAgICAgICAgIHJlcXVpcmVkX2J5ID0gZ2V0YXR0cihwcm92aWRl cl9wYWNrYWdlLCB3aGljaCArICdfcmVxdWlyZWRfYnknKQotICAgICAgICAgICAgICAgIGlmIHJl cXVpcmVkX2J5IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkX2J5ID0gW10K LSAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihwcm92aWRlcl9wYWNrYWdlLCB3aGljaCArICdf cmVxdWlyZWRfYnknLCByZXF1aXJlZF9ieSkKLSAgICAgICAgICAgICAgICByZXF1aXJlZF9ieS5h cHBlbmQoKG52cl90b19uYW1lKHBhY2thZ2VbJ3JwbSddKSwgcmVxKSkKLSAgICBlbHNlOgotICAg ICAgICBmb3IgcGFja2FnZSBpbiBwa2dzOgotICAgICAgICAgICAgYWRkX3BhY2thZ2UocGFja2Fn ZSwgd2hpY2gsIGxldmVsPTIsIG9ubHlfaWZfZXhpc3RzPW9ubHlfaWZfZXhpc3RzKQotCi0gICAg ZG9uZSgpCi0KLWRlZiBhZGRfcGFja2FnZV9maWxlcyhmaWxlbmFtZSwgd2hpY2gpOgotICAgIHdp dGggb3BlbihmaWxlbmFtZSkgYXMgZjoKLSAgICAgICAgZm9yIGxpbmUgaW4gZjoKLSAgICAgICAg ICAgIGYsIHAgPSBsaW5lLnN0cmlwKCkuc3BsaXQoKQotICAgICAgICAgICAgZiA9IGZbOi0xXSAj IHN0cmlwIHRyYWlsaW5nIDoKLSAgICAgICAgICAgIHBrZyA9IHBhY2thZ2VzW3BdCi0gICAgICAg ICAgICBvbGQgPSBnZXRhdHRyKHBrZywgd2hpY2ggKyAnX2ZpbGVzJykKLSAgICAgICAgICAgIGlm IG9sZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBvbGQuYXBwZW5kKGYpCi0gICAgICAg ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNldGF0dHIocGtnLCB3aGljaCArICdfZmlsZXMn LCBbZl0pCi0KLWFkZF9wYWNrYWdlcygnb3V0L2ZyZWVkZXNrdG9wLVBsYXRmb3JtLnBhY2thZ2Vz JywgJ2ZyZWVkZXNrdG9wX3BsYXRmb3JtJywgcmVzb2x2ZV9kZXBzPVRydWUpCi1hZGRfcGFja2Fn ZXMoJ291dC9mcmVlZGVza3RvcC1TZGsucGFja2FnZXMnLCAnZnJlZWRlc2t0b3Bfc2RrJywgcmVz b2x2ZV9kZXBzPVRydWUpCi1hZGRfcGFja2FnZXMoJ291dC9nbm9tZS1QbGF0Zm9ybS5wYWNrYWdl cycsICdnbm9tZV9wbGF0Zm9ybScsIHJlc29sdmVfZGVwcz1UcnVlKQotYWRkX3BhY2thZ2VzKCdv dXQvZ25vbWUtU2RrLnBhY2thZ2VzJywgJ2dub21lX3NkaycsIHJlc29sdmVfZGVwcz1UcnVlKQot YWRkX3BhY2thZ2VzKCdmMjctbGl2ZS5wYWNrYWdlcycsICdsaXZlJywgb25seV9pZl9leGlzdHM9 VHJ1ZSkKLWFkZF9wYWNrYWdlcygnZjI2LWZsYXRwYWstcnVudGltZS5wYWNrYWdlcycsICdyZjI2 Jywgb25seV9pZl9leGlzdHM9VHJ1ZSkKLQotYWRkX3BhY2thZ2VfZmlsZXMoJ291dC9mcmVlZGVz a3RvcC1QbGF0Zm9ybS5tYXRjaGVkJywgJ2ZyZWVkZXNrdG9wX3BsYXRmb3JtJykKLWFkZF9wYWNr YWdlX2ZpbGVzKCdvdXQvZnJlZWRlc2t0b3AtU2RrLm1hdGNoZWQnLCAnZnJlZWRlc2t0b3Bfc2Rr JykKLWFkZF9wYWNrYWdlX2ZpbGVzKCdvdXQvZ25vbWUtUGxhdGZvcm0ubWF0Y2hlZCcsICdnbm9t ZV9wbGF0Zm9ybScpCi1hZGRfcGFja2FnZV9maWxlcygnb3V0L2dub21lLVNkay5tYXRjaGVkJywg J2dub21lX3NkaycpCi0KLXNvdXJjZV9wYWNrYWdlcyA9IHt9Ci1mb3IgcGFja2FnZSBpbiBwYWNr YWdlcy52YWx1ZXMoKToKLSAgICBzb3VyY2VfcGFja2FnZSA9IHNvdXJjZV9wYWNrYWdlcy5nZXQo cGFja2FnZS5zb3VyY2VfcGFja2FnZSwgTm9uZSkKLSAgICBpZiBzb3VyY2VfcGFja2FnZSBpcyBO b25lOgotICAgICAgICBzb3VyY2VfcGFja2FnZSA9IFNvdXJjZVBhY2thZ2UocGFja2FnZS5zb3Vy Y2VfcGFja2FnZSkKLSAgICAgICAgc291cmNlX3BhY2thZ2VzW3NvdXJjZV9wYWNrYWdlLm5hbWVd ID0gc291cmNlX3BhY2thZ2UKLSAgICBzb3VyY2VfcGFja2FnZS5wYWNrYWdlcy5hcHBlbmQocGFj a2FnZSkKLQotbGV0dGVyc19tYXAgPSBkaWN0KCkKLWZvciBrLCB2IGluIHNvdXJjZV9wYWNrYWdl cy5pdGVtcygpOgotICAgIHYucGFja2FnZXMuc29ydChrZXk9bGFtYmRhIHA6IGxvY2FsZS5zdHJ4 ZnJtKHAubmFtZSkpCi0gICAgbCA9IHYubmFtZVswXS51cHBlcigpCi0gICAgbGV0dGVyID0gbGV0 dGVyc19tYXAuZ2V0KGwsIE5vbmUpCi0gICAgaWYgbGV0dGVyIGlzIE5vbmU6Ci0gICAgICAgIGxl dHRlciA9IExldHRlcihsKQotICAgICAgICBsZXR0ZXJzX21hcFtsXSA9IGxldHRlcgotICAgIGxl dHRlci5wYWNrYWdlcy5hcHBlbmQodikKLQotbGV0dGVycyA9IFtdCi1mb3IgayBpbiBzb3J0ZWQo bGV0dGVyc19tYXAua2V5cygpKToKLSAgICBsZXR0ZXIgPSBsZXR0ZXJzX21hcFtrXQotICAgIGxl dHRlci5wYWNrYWdlcy5zb3J0KGtleT1sYW1iZGEgcDogbG9jYWxlLnN0cnhmcm0ocC5uYW1lKSkK LSAgICBsZXR0ZXJzLmFwcGVuZChsZXR0ZXIpCi0KLXN0YXJ0KCJMb2FkaW5nIHBhY2thZ2UgdG8g bW9kdWxlIG1hcCIpCi1wYWNrYWdlX3RvX21vZHVsZSA9IGRpY3QoKQotCi1vdXRwdXQgPSBmZWRt b2Rfb3V0cHV0KFsnbGlzdC1ycG1zJywgJy0tbGlzdC1tb2R1bGVzJ10pCi1mb3IgbCBpbiBvdXRw dXQuc3BsaXQoJ1xuJyk6Ci0gICAgZmllbGRzID0gbC5zdHJpcCgpLnNwbGl0KCkKLSAgICBpZiBs ZW4oZmllbGRzKSAhPSAyOgotICAgICAgICBjb250aW51ZQotICAgIHBhY2thZ2VfdG9fbW9kdWxl W2ZpZWxkc1swXV0gPSBmaWVsZHNbMV1bMTotMV0KLWRvbmUoKQotCi1zdGFydCgiTG9hZGluZyBw YWNrYWdlIG5vdGVzIikKLWNvbW1lbnRfcmUgPSByZS5jb21waWxlKHInXHMqIy4qJykKLWZsYWdf cmUgPSByZS5jb21waWxlKHInW0EtWj9dKyQnKQotcGFja2FnZV9yZSA9IHJlLmNvbXBpbGUocidc UysnKQotCi13aXRoIG9wZW4oInBhY2thZ2Utbm90ZXMudHh0IikgYXMgZjoKLSAgICBmb3IgbGlu ZSBpbiBmOgotICAgICAgICBsaW5lID0gY29tbWVudF9yZS5zdWIoJycsIGxpbmUpCi0gICAgICAg IGxpbmUgPSBsaW5lLnN0cmlwKCkKLSAgICAgICAgaWYgbGluZSA9PSAnJzoKLSAgICAgICAgICAg IGNvbnRpbnVlCi0gICAgICAgIHBhcnRzID0gbGluZS5zcGxpdCgiOiIsIDIpCi0gICAgICAgIG5h bWUgPSBwYXJ0c1swXS5zdHJpcCgpCi0gICAgICAgIGlmIG5vdCByZS5tYXRjaChwYWNrYWdlX3Jl LCBuYW1lKToKLSAgICAgICAgICAgIHdhcm4oIkNhbid0IHBhcnNlIHBhY2thZ2Ugbm90ZToge30i LmZvcm1hdChsaW5lKSkKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGlmIGxlbihwYXJ0 cykgPT0gMToKLSAgICAgICAgICAgIGZsYWcgPSBub3RlID0gTm9uZQotICAgICAgICBlbGlmIGxl bihwYXJ0cykgPT0gMjoKLSAgICAgICAgICAgIHggPSBwYXJ0c1sxXS5zdHJpcCgpCi0gICAgICAg ICAgICBpZiBmbGFnX3JlLm1hdGNoKHgpOgotICAgICAgICAgICAgICAgIGZsYWcgPSB4Ci0gICAg ICAgICAgICAgICAgbm90ZSA9IE5vbmUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg ICAgbm90ZSA9IHgKLSAgICAgICAgICAgICAgICBmbGFnID0gTm9uZQotICAgICAgICBlbGlmIGxl bihwYXJ0cykgPT0gMzoKLSAgICAgICAgICAgIHggPSBwYXJ0c1sxXS5zdHJpcCgpCi0gICAgICAg ICAgICBpZiBmbGFnX3JlLm1hdGNoKHgpOgotICAgICAgICAgICAgICAgIGZsYWcgPSB4Ci0gICAg ICAgICAgICAgICAgbm90ZSA9IHBhcnRzWzJdLnN0cmlwKCkKLSAgICAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgICAgZmxhZyA9IE5vbmUKLSAgICAgICAgICAgICAgICBub3RlID0gcGFydHNb MV0gKyAnOicgKyBwYXJ0c1syXQotCi0gICAgICAgIHBrZyA9IHBhY2thZ2VzLmdldChuYW1lLCBO b25lKQotICAgICAgICBpZiBwa2cgaXMgTm9uZToKLSAgICAgICAgICAgIHdhcm4oIlBhY2thZ2Ug bm90ZSBmb3IgbWlzc2luZyBwYWNrYWdlOiB7fSIuZm9ybWF0KG5hbWUpKQotICAgICAgICAgICAg Y29udGludWUKLQotICAgICAgICBpZiBmbGFnIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcGtn LmZsYWcgPSBmbGFnCi0gICAgICAgIGlmIG5vdGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBw a2cuX25vdGUgPSBub3RlCi1kb25lKCkKLQotIwotIyBHZXQgc3VtbWFyeSBpbmZvcm1hdGlvbiBm b3IgdW5tYXRjaGVkIGZpbGVzCi0jCi0KLWRlZiBjb3VudF9saW5lcyhmbmFtZSk6Ci0gICAgd2l0 aCBvcGVuKGZuYW1lKSBhcyBmOgotICAgICAgICByZXR1cm4gbGVuKGxpc3QoZikpCi0KLXVubWF0 Y2hlZF9jb3VudHMgPSB7Ci0gICAgJ2ZyZWVkZXNrdG9wX3BsYXRmb3JtJzogY291bnRfbGluZXMo J291dC9mcmVlZGVza3RvcC1QbGF0Zm9ybS51bm1hdGNoZWQnKSwKLSAgICAnZ25vbWVfcGxhdGZv cm0nOiBjb3VudF9saW5lcygnb3V0L2dub21lLVBsYXRmb3JtLnVubWF0Y2hlZCcpLAotICAgICdm cmVlZGVza3RvcF9zZGsnOiBjb3VudF9saW5lcygnb3V0L2ZyZWVkZXNrdG9wLVNkay51bm1hdGNo ZWQnKSwKLSAgICAnZ25vbWVfc2RrJzogY291bnRfbGluZXMoJ291dC9nbm9tZS1TZGsudW5tYXRj aGVkJyksCi19Ci0KLSMKLSMgR2VuZXJhdGUgdGhlIHByb2ZpbGVzCi0jCi1kZWYgZ2VuZXJhdGVf cHJvZmlsZShvdXRmaWxlLCB3aGljaCk6Ci0gICAgd2l0aCBvcGVuKG91dGZpbGUsICd3JykgYXMg ZjoKLSAgICAgICAgZm9yIGxldHRlciBpbiBsZXR0ZXJzOgotICAgICAgICAgICAgZm9yIHNyYyBp biBsZXR0ZXIucGFja2FnZXM6Ci0gICAgICAgICAgICAgICAgZm9yIHBrZyBpbiBzcmMucGFja2Fn ZXM6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGdldGF0dHIocGtnLCB3aGljaCkgIT0gMDoKLSAg ICAgICAgICAgICAgICAgICAgICAgIHByaW50KHBrZy5uYW1lLCBmaWxlPWYpCi0KLWdlbmVyYXRl X3Byb2ZpbGUoJ291dC9ydW50aW1lLWJhc2UucHJvZmlsZScsICdmcmVlZGVza3RvcF9wbGF0Zm9y bScpCi1nZW5lcmF0ZV9wcm9maWxlKCdvdXQvc2RrLWJhc2UucHJvZmlsZScsICdmcmVlZGVza3Rv cF9zZGsnKQotZ2VuZXJhdGVfcHJvZmlsZSgnb3V0L3J1bnRpbWUucHJvZmlsZScsICdnbm9tZV9w bGF0Zm9ybScpCi1nZW5lcmF0ZV9wcm9maWxlKCdvdXQvc2RrLnByb2ZpbGUnLCAnZ25vbWVfc2Rr JykKLQotIwotIyBHZW5lcmF0ZSB0aGUgcmVwb3J0Ci0jCi0KLWVudiA9IEVudmlyb25tZW50KAot ICAgIGxvYWRlcj1GaWxlU3lzdGVtTG9hZGVyKCcuJyksCi0gICAgYXV0b2VzY2FwZT1zZWxlY3Rf YXV0b2VzY2FwZShbJ2h0bWwnLCAneG1sJ10pLAotICAgIHRyaW1fYmxvY2tzPVRydWUsCi0gICAg bHN0cmlwX2Jsb2Nrcz1UcnVlCi0pCi0KLXRlbXBsYXRlID0gZW52LmdldF90ZW1wbGF0ZSgncmVw b3J0LXRlbXBsYXRlLmh0bWwnKQotCi13aXRoIG9wZW4oJ3JlcG9ydC5odG1sJywgJ3cnKSBhcyBm OgotICAgIGYud3JpdGUodGVtcGxhdGUucmVuZGVyKGxldHRlcnM9bGV0dGVycywgdW5tYXRjaGVk PXVubWF0Y2hlZF9jb3VudHMsIHBhY2thZ2VfdG9fbW9kdWxlPXBhY2thZ2VfdG9fbW9kdWxlKSkK CmRpZmYgLS1naXQgYS9saXN0LWZpbGVzLnB5IGIvbGlzdC1maWxlcy5weQpkZWxldGVkIGZpbGUg bW9kZSAxMDA3NTUKaW5kZXggM2U5NTA1OC4uMDAwMDAwMAotLS0gYS9saXN0LWZpbGVzLnB5Cisr KyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24zCi0KLWltcG9y dCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi0KLXNkayA9IGxlbihzeXMuYXJndikgPiAxIGFu ZCBzeXMuYXJndlsxXSA9PSAnLS1zZGsnCi0KLWRlZiBvdXRwdXRfZGlyKGQpOgotICAgIGZvciBm IGluIHNvcnRlZChvcy5saXN0ZGlyKGQpKToKLSAgICAgICAgZnVsbCA9IG9zLnBhdGguam9pbihk LCBmKQotICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihmdWxsKToKLSAgICAgICAgICAgIHBy aW50KG9zLnBhdGguam9pbihkLCBmKSkKLQotZGVmIG91dHB1dF9kaXJfcmVjdXJzZShkKToKLSAg ICBmb3IgZGlyTmFtZSwgc3ViZGlycywgZmlsZXMgaW4gb3Mud2FsayhkKToKLSAgICAgICAgICAg IGZvciBmIGluIHNvcnRlZChmaWxlcyk6Ci0gICAgICAgICAgICAgIHByaW50KG9zLnBhdGguam9p bihkaXJOYW1lLCBmKSkKLQotb3V0cHV0X2RpcignL3Vzci9iaW4nKQotCi1mb3IgZiBpbiBvcy5s aXN0ZGlyKCcvdXNyL2xpYicpOgotICAgIGZ1bGwgPSBvcy5wYXRoLmpvaW4oJy91c3IvbGliJywg ZikKLSAgICBpZiAocmUubWF0Y2gocideLipcLnNvXC5cZCskJywgZikgaXMgbm90IE5vbmUgb3IK LSAgICAgICAgcmUubWF0Y2gocideLipcLnNvJCcsIGYpIGlzIG5vdCBOb25lIGFuZCBub3Qgb3Mu cGF0aC5pc2xpbmsoZnVsbCkpOgotICAgICAgICBwcmludChmdWxsKQotCi1vdXRwdXRfZGlyX3Jl Y3Vyc2UoJy91c3Ivc2hhcmUvZm9udHMnKQotCi1pZiBzZGs6Ci0gICAgb3V0cHV0X2Rpcl9yZWN1 cnNlKCcvdXNyL2luY2x1ZGUnKQotICAgIG91dHB1dF9kaXIoJy91c3IvbGliL3BrZ2NvbmZpZycp Ci0gICAgb3V0cHV0X2RpcignL3Vzci9zaGFyZS9wa2djb25maWcnKQotCi0jIGltcG9ydCBwa2d1 dGlsCi0jIGZvciBmIGluIHBrZ3V0aWwuaXRlcl9tb2R1bGVzKCk6Ci0jICAgICB0cnk6Ci0jICAg ICAgICAgcGF0aCA9IGZbMF0ucGF0aAotIyAgICAgICAgIGlmIHBhdGguZmluZCgnc2l0ZS1wYWNr YWdlcycpIDwgMDoKLSMgICAgICAgICAgICAgY29udGludWUKLSMgICAgIGV4Y2VwdCBBdHRyaWJ1 dGVFcnJvcjoKLSMgICAgICAgICBjb250aW51ZQotIyAgICAgaWYgbm90KGZbMV0uc3RhcnRzd2l0 aCgnXycpKToKLSMgICAgICAgICBwcmludChmLCAncHl0aG9uM2Rpc3Qoe30pJy5mb3JtYXQoZlsx XSkpCi0KCmRpZmYgLS1naXQgYS9yZXNvbHZlLWZpbGVzLnB5IGIvcmVzb2x2ZS1maWxlcy5weQpk ZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZGU1NjMxZi4uMDAwMDAwMAotLS0gYS9yZXNv bHZlLWZpbGVzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTMxICswLDAgQEAKLSMhL3Vzci9iaW4v cHl0aG9uMwotCi1mcm9tIGZ1bmN0b29scyBpbXBvcnQgY21wX3RvX2tleQotaW1wb3J0IGd6aXAK LWltcG9ydCBoYXNobGliCi1pbXBvcnQgb3MKLWltcG9ydCBwaWNrbGUKLWltcG9ydCByZQotaW1w b3J0IHJwbQotaW1wb3J0IHN5cwotaW1wb3J0IHhtbC5ldHJlZS5FbGVtZW50VHJlZSBhcyBFVAot aW1wb3J0IHhtbC5zYXgKLQotWERHX0NBQ0hFX0hPTUUgPSBvcy5lbnZpcm9uLmdldCgiWERHX0NB Q0hFX0hPTUUiKSBvciBvcy5wYXRoLmV4cGFuZHVzZXIoIn4vLmNhY2hlIikKLQotIyBUaGlzIG5l ZWRzIHRvIGJlIGluIHN5bmMgd2l0aCBmZWRtb2QKLVJFUE9TID0gWwotICAgICJmMjgtcGFja2Fn ZXMiCi1dCi0KLWlnbm9yZSA9IHNldCgpCi1yZW5hbWUgPSBkaWN0KCkKLQotYmluX2lnbm9yZSA9 IFsKLSAgICAjIEEgYnVuY2ggb2YgYmluYXJpZXMgYnVpbHQgYXMgcGFydCBvZiBuc3MuIEEgZmV3 IG9mIHRoZXNlIGFyZQotICAgICMgaW4gL3Vzci9saWI2NC9uc3MvdW5zdXBwb3J0ZWQtdG9vbHMv IGFzIHBhcnQgb2YgbnNzLXRvb2xzLCB0aGUgcmVzdCBhcmUgbm90IGNvbnNpZGVyZWQKLSAgICAj IHdvcnRoIGluc3RhbGxpbmcgYXQgYWxsICh0ZXN0IHV0aWxpdGllcywgZXRjLikKLSAgICAnYWRk YnVpbHRpbicsICdhdG9iJywgJ2JhZGRiZGlyJywgJ2JsdGVzdCcsICdidG9hJywgJ2NlcnRjZ2kn LCAnY2hrdGVzdCcsICdjb25mbGljdCcsCi0gICAgJ2NybWZ0ZXN0JywgJ2RidGVzdCcsICdkZXJk dW1wJywgJ2RlcnRpbWV0ZXN0JywgJ2RpZ2VzdCcsICdlY3BlcmYnLCAnZW5jb2RlaW50dGVzdCcs Ci0gICAgJ2ZpcHN0ZXN0JywgJ2h0dHBzZXJ2JywgJ2xpc3RzdWl0ZXMnLCAnbWFrZXBxZycsICdt YW5nbGUnLCAnbXVsdGluaXQnLCAnbm9uc3ByMTAnLAotICAgICdvY3NwY2xudCcsICdvY3NwcmVz cCcsICdvaWRjYWxjJywgJ3A3Y29udGVudCcsICdwN2VudicsICdwN3NpZ24nLCAncDd2ZXJpZnkn LAotICAgICdwazExZ2NtdGVzdCcsICdwazExbW9kZScsICdwazFzaWduJywgJ3BraXgtZXJyY29k ZXMnLCAncHAnLCAncHdkZWNyeXB0JywgJ3JlbXRlc3QnLAotICAgICdyc2FwZXJmJywgJ3NkcnRl c3QnLCAnc2VjbW9kdGVzdCcsICdzZWxmc2VydicsICdzaGxpYnNpZ24nLCAnc2lnbnRvb2wnLCAn c3Ryc2NsbnQnLAotICAgICdzeW1rZXl1dGlsJywgJ3RzdGNsbnQnLCAndmZ5Y2hhaW4nLCAndmZ5 c2VydicsCi0KLSAgICAjIFNjcmlwdCBhZGRlZCBpbnRvIG5zcyBieSBvcGVuZW1iZWRkZWQKLSAg ICAnc2lnbmxpYnMuc2gnLAotCi0gICAgIyAvdXNyL3NoYXJlL2RvYy9hc3BlbGwvYXNwZWxsLWlt cG9ydCBpbiBGZWRvcmEKLSAgICAnYXNwZWxsLWltcG9ydCcsCi0KLSAgICAjIFJlbW92ZWQgaW4g cGVybC01LjI3Ci0gICAgJ2MycGgnLAotCi0gICAgIyBSZW1vdmVkIC0gaHR0cHM6Ly9saXN0cy5m ZWRvcmFob3N0ZWQub3JnL2FyY2hpdmVzL2xpc3QvZWxmdXRpbHMtZGV2ZWxAbGlzdHMuZmVkb3Jh aG9zdGVkLm9yZy90aHJlYWQvMjJMSUlNWEk2RURHQ09JTzZRRlNCVU8yS0hFWElHU0ovCi0gICAg J2V1LWxkJywKLQotICAgICMgY29tcGF0aWJpbGl0eSBwZXJsIHNjcmlwdCBpbiB6ZW5pdHkgZm9y IHNvbWV0aGluZyBxdWl0ZSBvbGQsIG5vdCBwYWNrYWdlZCBpbiBmZWRvcmEKLSAgICAnZ2RpYWxv ZycsCi0KLSAgICAjIEFuIG9wZW5lbWJlZGRlZCB0aGluZwotICAgICMgIlRvb2wgdGhhdCBpbnN0 YWxscyB0aGUgR05VIGNvbmZpZy5ndWVzcyAvIGNvbmZpZy5zdWIgaW50byBhIGRpcmVjdG9yeSB0 cmVlIgotICAgICdnbnUtY29uZmlnaXplJywKLQotICAgICMgR1BHIHRlc3QgcHJvZ3JhbSAoaHR0 cHM6Ly9naXQuZ251cGcub3JnL2NnaS1iaW4vZ2l0d2ViLmNnaT9wPWdudXBnLmdpdDthPXRyZWU7 Zj10ZXN0cykKLSAgICAnZ3Bnc2NtJywKLQotICAgICMgQW4gaW1wbGVtZW50YXRpb24gb2YgdGFy IGZvciBjcm9zcy1wbGF0Zm9ybSBjb21wYXRpYmlsaXR5LCBkaXNhYmxlZCBpbiBnbnVwZzIuc3Bl YwotICAgICdncGd0YXInLAotCi0gICAgIyBSZW1vdmVkIGZyb20gZ3RrLWRvYwotICAgICMgaHR0 cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9ndGstZG9jL2NvbW1pdC8/aWQ9NDZkZjQzNTRhYmVk NTcyNDY5N2ZkNWUzOTYzMGM1YmJjNjYzN2NjNAotICAgICdndGtkb2MtbWt0bXBsJywKLQotICAg ICMgVmVyc2lvbmVkIHB5dGhvbi0zLjUgYmluYXJpZXMKLSAgICAnaWRsZTMuNScsICdweWRvYzMu NScsICdweXRob24zLjUnLCAncHl0aG9uMy41LWNvbmZpZycsICdweXRob24zLjVtJywgICdweXRo b24zLjVtLWNvbmZpZycsICcydG8zLTMuNScsCi0KLSAgICAjIGluc3RhbGxlZCBpbiBvcGVuZW1i ZWRkZWQgd2l0aCBhIGNvcmV1dGlscyBzdWZmaXggYWxvbmcgd2l0aCB0aGUgbW9yZSBub3JtYWwg dmVyc2lvbgotICAgICdraWxsLmNvcmV1dGlscycsICd1cHRpbWUuY29yZXV0aWxzJywKLQotICAg ICMgbmV0dGxlIHV0aWxpdGllcyBub3QgY3VycmVudGx5IHBhY2thZ2VkIGluIGZlZG9yYQotICAg ICMgKGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvbmV0dGxlL2MvMmVjMjA0ZTJk ZTE3MDA2YjU2NmM5ZmY3ZDkwZWM2NWNhMTY4MGVkNT9icmFuY2g9bWFzdGVyKQotICAgICduZXR0 bGUtaGFzaCcsICduZXR0bGUtbGZpYi1zdHJlYW0nLCAnbmV0dGxlLXBia2RmMicsICdwa2NzMS1j b252JywgJ3NleHAtY29udicsCi0KLSAgICAjIE5vdCBidWlsdCBieSBkZWZhdWx0IGFzIG9mIHV0 aWwtbGludXgtMi4yOQotICAgICcvdXNyL2Jpbi9wZycsCi0KLSAgICAjIFRoZXNlIGFyZSBpbnN0 YWxsZWQgYXMgPG5hbWU+LTY0IGluIEZlZG9yYSwgd2UganVzdCBpZ25vcmUgdGhlbSBiZWNhdXNl IHRoZXkgd2lsbCBiZQotICAgICMgcHVsbGVkIGluIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGxpYnJh cnkKLSAgICAnZ2RrLXBpeGJ1Zi1xdWVyeS1sb2FkZXJzJywgJ2d0ay1xdWVyeS1pbW1vZHVsZXMt Mi4wJywKLSAgICAnZ2lvLXF1ZXJ5bW9kdWxlcycsICdndGstcXVlcnktaW1tb2R1bGVzLTMuMCcs Ci0KLSAgICAjIFJlbW92ZWQgaW4ga3JiNS0xLjEzIChodHRwczovL3dlYi5taXQuZWR1L2tlcmJl cm9zL2tyYjUtMS4xMy9SRUFETUUtMS4xMy41LnR4dCkKLSAgICAna3JiNS1zZW5kLXByJywKLQot ICAgICMgUmVtb3ZlZCBpbiB1dGlsLWxpbnV4LTIuMzAnCi0gICAgJ3RhaWxmJywKLQotICAgICMg T3BlbkVtYmVkZGVkIHVzZXMgRGViaWFuJ3MgY2EtY2VydGlmaWNhdGVzLCBGZWRvcmEgaXMgZGlm ZmVyZW50Ci0gICAgJ3VwZGF0ZS1jYS1jZXJ0aWZpY2F0ZXMnLAotCi0gICAgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwotICAgICMgSW4gdGhlIGZyZWVkZXNrdG9wIHJ1bnRpbWUgZm9yIHNvbWUgcmVhc29uLCBk b2Vzbid0IHNlZW0gdXNlZnVsCi0gICAgJ2JzZGNhdCcsCi0KLSAgICAjIFNhbWUgYXMgJ29wZW5z c2wgcmVoYXNoJywgYnV0IGFzIGEgcGVybCBzY3JpcHQgKG9wZW5zc2wtcGVybCkKLSAgICAnY19y ZWhhc2gnLAotCi0gICAgIyBGcm9tIHB1bHNlYXVkaW8sIHdyYXBwZXIgc2NyaXB0IHRvIHN0YXJ0 IGEgcHVsc2VhdWRpbyBzZXJ2ZXIgYXMgaWYgaXQgd2FzIEVTRCAocHVsc2VhdWRpby1lc291bmQt Y29tcGF0KQotICAgICdlc2Rjb21wYXQnLAotCi0gICAgIyBKdXN0IG5lZWQgdGhlIGxpYnJhcnkg KGdjYWIpCi0gICAgJ2djYWInLAotCi0gICAgIyBQcm9iYWJseSBub3QgdXNlZnVsIGluIHRoZSBy dW50aW1lIG9yIHRoZSBTREsgKGdzdHJlYW1lci1wbHVnaW5zLWJhc2UtdG9vbHMpCi0gICAgJ2dz dC1kZXZpY2UtbW9uaXRvci0xLjAnLCAnZ3N0LWRpc2NvdmVyZXItMS4wJywgJ2dzdC1wbGF5LTEu MCcsCi0KLSAgICAjIFB5dGhvbiB1dGlsaXRpZXMgKHB5dGhvbjItdG9vbHMpCi0gICAgJ2lkbGUn LCAnc210cGQucHknLAotCi0gICAgIyBQeXRob24zIHV0aWxpdGllcyAocHl0aG9uMy10b29scykK LSAgICAnaWRsZTMnLCAnMnRvMycsCi0KLSAgICAjIEEgYmluYXJ5IGZyb20gY3Vwcywgd2UganVz dCBuZWVkIHRoZSBsaWJyYXJpZXMgKGN1cHMtbGlicykKLSAgICAnaXBwdG9vbCcsCi0KLSAgICAj IE1pbmltYWwgcHJvZmlsZXIgKGdsaWJjLXV0aWxzKQotICAgICdwY3Byb2ZpbGVkdW1wJywKLQot ICAgICMgKHBjcmUtdG9vbHMpCi0gICAgJ3BjcmUyZ3JlcCcsICdwY3JlMnRlc3QnLAotCi0gICAg IyBSYW5kb20gdGVzdCBwcm9ncmFtIGZyb20gbGlicHJveHkgKGxpYnByb3h5LWJpbikKLSAgICAn cHJveHknLAotCi0gICAgIyBUb29scyBmcm9tIGxpYnZweCAobGlidnB4LXV0aWxzKQotICAgICd2 cHhkZWMnLCAndnB4ZW5jJywKLV0KLWlnbm9yZS51cGRhdGUoJy91c3IvYmluLycgKyB4IGZvciB4 IGluIGJpbl9pZ25vcmUpCi0KLWJpbl9yZW5hbWUgPSB7Ci0gICAgIyBsY21zMiBjb21waWxlZCB3 aXRoIC0tcHJvZ3JhbS1zdWZmaXg9MiBpbiBGZWRvcmEsIGV2ZW4gdGhvdWdoIHRoZXJlIGFyZSBu byBhY3R1YWwKLSAgICAjIGNvbmZsaWN0cyBiZXR3ZWVuIGxjbXMgYW5kIGxjbXMyIC0ganBlZ2lj YyB3YXMgcmVuYW1lZCB0byBqcGdpY2MsIGV0Yy4KLSAgICAnanBnaWNjJzogJ2pwZ2ljYzInLAot ICAgICdsaW5raWNjJzogJ2xpbmtpY2MyJywKLSAgICAncHNpY2MnOiAncHNpY2MyJywKLSAgICAn dGlmaWNjJzogJ3RpZmljYzInLAotICAgICd0cmFuc2ljYyc6ICd0cmFuc2ljYzInLAotfQotcmVu YW1lLnVwZGF0ZSh7ICcvdXNyL2Jpbi8nICsgazogJy91c3IvYmluLycgKyB2IGZvciBrLCB2IGlu IGJpbl9yZW5hbWUuaXRlbXMoKSB9KQotCi1saWJfaWdub3JlID0gWwotICAgICMgU3ltbGluayBj cmVhdGVkIGluIGZyZWVkZXNrdG9wLm9yZyBmbGF0cGFrIHJ1bnRpbWUsIG5vdCBzdGFuZGFyZAot ICAgICdsaWJFR0xfaW5kaXJlY3Quc28uMCcsCi0KLSAgICAjIFJlbW92ZWQgaW4gZ3BnbWUtMS45 LjAKLSAgICAnbGliZ3BnbWUtcHRocmVhZC5zby4xMScsCi0KLSAgICAjIE5vdCBlbmFibGVkIGlu IGZlZG9yYSAoY29uc2lkZXIgZml4aW5nKQotICAgICdsaWJoYXJmYnV6ei1nb2JqZWN0LnNvLjAn LAotCi0gICAgIyBQYXJ0IG9mIGdsaWJjCi0gICAgJ2xpYnNzcC5zby4wJywKLV0KLWlnbm9yZS51 cGRhdGUoJy91c3IvbGliNjQvJyArIHggZm9yIHggaW4gbGliX2lnbm9yZSkKLQotZm9udHNfaWdu b3JlID0gewotICAgICMgQWRkZWQgaW4gMi4zNgotICAgICdkZWphdnUvRGVqYVZ1TWF0aFRlWEd5 cmUudHRmJywKLX0KLWlnbm9yZS51cGRhdGUoJy91c3Ivc2hhcmUvZm9udHMvJyArIHggZm9yIHgg aW4gZm9udHNfaWdub3JlKQotCi1saWJfcmVuYW1lID0gewotICAgICMgTmV3ZXIgaW4gRmVkb3Jh Ci0gICAgJ2xpYmh1bnNwZWxsLTEuMy5zby4wJzogJ2xpYmh1bnNwZWxsLTEuNS5zby4wJywKLSAg ICAnbGlid2VicC5zby42JzogJ2xpYndlYnAuc28uNycsCi0gICAgJ2xpYndlYnBtdXguc28uMic6 ICdsaWJ3ZWJwbXV4LnNvLjMnLAotICAgICdsaWJwY3JlMi1wb3NpeC5zby4xJzogJ2xpYnBjcmUy LXBvc2l4LnNvLjInLAotICAgICdsaWJ2cHguc28uMyc6ICdsaWJ2cHguc28uNCcsCi0gICAgJ2xp YmthZG01Y2xudF9taXQuc28uOSc6ICdsaWJrYWRtNWNsbnRfbWl0LnNvLjExJywKLSAgICAnbGli a2FkbTVzcnZfbWl0LnNvLjknOiAnbGlia2FkbTVzcnZfbWl0LnNvLjExJywKLQotICAgICMgTmV3 ZXIgaW4gRmxhdHBhayBydW50aW1lCi0gICAgJ2xpYnByb2Nwcy5zby42JzogJ2xpYnByb2Nwcy5z by40JywgIyBwcm9jcHMtMy4xMCB2cy4gcHJvY3BzLTMuMTIKLSAgICAnbGliZ2lmLnNvLjcnOiAn bGliZ2lmLnNvLjQnLCAjIGdpZmxpYiA0IHZzIGdpZmxpYi01IC0gaHR0cHM6Ly9idWd6aWxsYS5y ZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD04MjI4NDQKLQotICAgICMgRmVkb3JhIGFyY2gtaGFu ZGxpbmcKLSAgICAnbGQtbGludXguc28uMic6ICdsZC1saW51eC14ODYtNjQuc28uMicsCi19Ci1y ZW5hbWUudXBkYXRlKHsgJy91c3IvbGliNjQvJyArIGs6ICcvdXNyL2xpYjY0LycgKyB2IGZvciBr LCB2IGluIGxpYl9yZW5hbWUuaXRlbXMoKSB9KQotCi1pbmNsdWRlX2lnbm9yZSA9IHsKLSAgICAj IGh0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvYXQtc3BpMi1jb3JlL2NvbW1pdC8/aWQ9MWVi MjIzYmI0ODQ2NGQ3MDcyOTBlZjU0MDU4MWU5NzYzYjBjZWVlOAotICAgICdhdC1zcGktMi4wL2F0 c3BpL2F0c3BpLWdtYWluLmMnLAotCi0gICAgIyBSZW1vdmVkIGluIDcuNTUgaHR0cHM6Ly9naXRo dWIuY29tL2N1cmwvY3VybC9jb21taXQvNzNhMmZjZWEwYjRhZGVhNmJhMzQyY2Q3ZWQxMTQ5Nzgy YzIxNGFlMwotICAgICdjdXJsL2N1cmxidWlsZC02NC5oJywgJ2N1cmwvY3VybGJ1aWxkLmgnLCAn Y3VybC9jdXJscnVsZXMuaCcsCi0KLSAgICAjIE5vdCBlbmFibGVkIG9uIEZlZG9yYQotICAgICdo YXJmYnV6ei9oYi1nb2JqZWN0LWVudW1zLmgnLAotICAgICdoYXJmYnV6ei9oYi1nb2JqZWN0LXN0 cnVjdHMuaCcsCi0gICAgJ2hhcmZidXp6L2hiLWdvYmplY3QuaCcsCi0KLSAgICAjIGh0dHBzOi8v Z2l0aHViLmNvbS9odW5zcGVsbC9odW5zcGVsbC9jb21taXQvOTk2NzVlNzkxZDEyM2NiZTFiZTkx NGIxYTQ5ZGQ4MzA2MjEzNDMwMQotICAgICdodW5zcGVsbC9hZmZlbnRyeS5oeHgnLCAnaHVuc3Bl bGwvYWZmaXhtZ3IuaHh4JywgJ2h1bnNwZWxsL2Jhc2VhZmZpeC5oeHgnLCAnaHVuc3BlbGwvZGlj dG1nci5oeHgnLAotICAgICdodW5zcGVsbC9maWxlbWdyLmh4eCcsJ2h1bnNwZWxsL2hhc2htZ3Iu aHh4JywnaHVuc3BlbGwvaHVuemlwLmh4eCcsJ2h1bnNwZWxsL2xhbmdudW0uaHh4JywKLSAgICAn aHVuc3BlbGwvcGhvbmV0Lmh4eCcsJ2h1bnNwZWxsL3JlcGxpc3QuaHh4JywnaHVuc3BlbGwvc3Vn Z2VzdG1nci5oeHgnLAotCi0gICAgIyBSZW1vdmVkIGluIG9wZW5zc2wtMS4xCi0gICAgJ29wZW5z c2wvZGVzX29sZC5oJywgJ29wZW5zc2wvZHNvLmgnLCAnb3BlbnNzbC9rcmI1X2Fzbi5oJywgJ29w ZW5zc2wva3NzbC5oJywgJ29wZW5zc2wvcHF1ZXVlLmgnLAotICAgICdvcGVuc3NsL3NzbDIzLmgn LCAnb3BlbnNzbC91aV9jb21wYXQuaCcsCi19Ci1pZ25vcmUudXBkYXRlKCcvdXNyL2luY2x1ZGUv JyArIHggZm9yIHggaW4gaW5jbHVkZV9pZ25vcmUpCi0KLWluY2x1ZGVfcmVuYW1lID0gewotICAg ICdhc3N1YW4uaCc6ICdsaWJhc3N1YW4yL2Fzc3Vhbi5oJywKLSAgICAnbnNzMy9uc3Njay5hcGkn OiAnbnNzMy90ZW1wbGF0ZXMvbnNzY2suYXBpJywKLX0KLXJlbmFtZS51cGRhdGUoeyAnL3Vzci9p bmNsdWRlLycgKyBrOiAnL3Vzci9pbmNsdWRlLycgKyB2IGZvciBrLCB2IGluIGluY2x1ZGVfcmVu YW1lLml0ZW1zKCkgfSkKLQotbnNwcl9pbmNsdWRlID0gWwotICAgICduc3ByLmgnLCAncGxhcmVu YS5oJywgJ3BsYXJlbmFzLmgnLCAncGxiYXNlNjQuaCcsICdwbGVycm9yLmgnLCAncGxnZXRvcHQu aCcsICdwbGhhc2guaCcsCi0gICAgJ3Bsc3RyLmgnLCAncHJhdG9tLmgnLCAncHJiaXQuaCcsICdw cmNsaXN0LmgnLCAncHJjbW9uLmgnLCAncHJjb3VudHIuaCcsICdwcmNwdWNmZy5oJywKLSAgICAn cHJjdmFyLmgnLCAncHJkdG9hLmgnLCAncHJlbnYuaCcsICdwcmVyci5oJywgJ3ByZXJyb3IuaCcs ICdwcmluZXQuaCcsICdwcmluaXQuaCcsCi0gICAgJ3ByaW5ydmFsLmgnLCAncHJpby5oJywgJ3By aXBjc2VtLmgnLCAncHJpdmF0ZS9wcHJpby5oJywgJ3ByaXZhdGUvcHBydGhyZWQuaCcsICdwcml2 YXRlL3BycHJpdi5oJywKLSAgICAncHJsaW5rLmgnLCAncHJsb2NrLmgnLCAncHJsb2cuaCcsICdw cmxvbmcuaCcsICdwcm1lbS5oJywgJ3BybW9uLmgnLCAncHJtd2FpdC5oJywgJ3BybmV0ZGIuaCcs Ci0gICAgJ3Byb2xvY2suaCcsICdwcnBkY2UuaCcsICdwcnByZi5oJywgJ3BycHJvY2VzLmgnLCAn cHJybmcuaCcsICdwcnJ3bG9jay5oJywgJ3Byc2htLmgnLCAncHJzaG1hLmgnLAotICAgICdwcnN5 c3RlbS5oJywgJ3BydGhyZWFkLmgnLCAncHJ0aW1lLmgnLCAncHJ0cG9vbC5oJywgJ3BydHJhY2Uu aCcsICdwcnR5cGVzLmgnLCAncHJ2cnNpb24uaCcsCi0gICAgJ3Byd2luMTYuaCcsICdzdHJvcHRz LmgnLCAnb2Jzb2xldGUvcHJhbGFybS5oJywgJ29ic29sZXRlL3Byb2JzbGV0LmgnLCAnb2Jzb2xl dGUvcHJvdHlwZXMuaCcsICdvYnNvbGV0ZS9wcnNlbS5oJwotXQotcmVuYW1lLnVwZGF0ZSh7ICcv dXNyL2luY2x1ZGUvJyArIHg6ICcvdXNyL2luY2x1ZGUvbnNwcjQvJyArIHggZm9yIHggaW4gbnNw cl9pbmNsdWRlIH0pCi0KLXBjX2lnbm9yZSA9IHsKLSAgICAjIE5vdCBlbmFibGVkIG9uIEZlZG9y YQotICAgICdoYXJmYnV6ei1nb2JqZWN0LnBjJywKLQotICAgICMgaHR0cHM6Ly9naXRodWIuY29t L29zdHJvcHJvamVjdC9vc3Ryby1vcy9ibG9iL21hc3Rlci9tZXRhL3JlY2lwZXMtc3VwcG9ydC9s aWJhc3N1YW4vbGliYXNzdWFuL2xpYmFzc3Vhbi1hZGQtcGtnY29uZmlnLXN1cHBvcnQucGF0Y2gK LSAgICAnbGliYXNzdWFuLnBjJywKLQotICAgICMgaHR0cDovL2NnaXQub3BlbmVtYmVkZGVkLm9y Zy9vcGVuZW1iZWRkZWQtY29yZS90cmVlL21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmdwZy1lcnJv ci9saWJncGctZXJyb3IvcGtnY29uZmlnLnBhdGNoCi0gICAgJ2dwZy1lcnJvci5wYycsCi0KLSAg ICAjIGh0dHA6Ly9jZ2l0Lm9wZW5lbWJlZGRlZC5vcmcvb3BlbmVtYmVkZGVkLWNvcmUvdHJlZS9t ZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJnY3J5cHQvZmlsZXMvMDAwMS1BZGQtYW5kLXVzZS1wa2ct Y29uZmlnLWZvci1saWJnY3J5cHQtaW5zdGVhZC1vZi1jb25mLnBhdGNoCi0gICAgJ2xpYmdjcnlw dC5wYycsCi19Ci1pZ25vcmUudXBkYXRlKCcvdXNyL2xpYjY0L3BrZ2NvbmZpZy8nICsgeCBmb3Ig eCBpbiBwY19pZ25vcmUpCi0KLXBjX3JlbmFtZSA9IHsKLSAgICAncHl0aG9uLTMuNS5wYyc6ICdw eXRob24tMy42LnBjJywKLSAgICAncHl0aG9uLTMuNW0ucGMnOiAncHl0aG9uLTMuNm0ucGMnLAot fQotcmVuYW1lLnVwZGF0ZSh7ICcvdXNyL2xpYjY0L3BrZ2NvbmZpZy8nICsgazogJy91c3IvbGli NjQvcGtnY29uZmlnLycgKyB2IGZvciBrLCB2IGluIHBjX3JlbmFtZS5pdGVtcygpIH0pCi1yZW5h bWUudXBkYXRlKHsgJy91c3Ivc2hhcmUvcGtnY29uZmlnLycgKyBrOiAnL3Vzci9zaGFyZS9wa2dj b25maWcvJyArIHYgZm9yIGssIHYgaW4gcGNfcmVuYW1lLml0ZW1zKCkgfSkKLQotaWdub3JlX3Bh dHRlcm5zID0gWwotICAgICMgRmxhdHBhayBydW50aW1lIGhhcyBhIHZlcnNpb25lZCBnYXdrLTQu MS4zCi0gICAgcicvdXNyL2Jpbi9nYXdrLS4qJywKLQotICAgICMgQXJjaGl0ZWN0dXJlIHNwZWNp ZmljIGFsaWFzZXMgZm9yIGdjYywgYmludXRpbHMsIGV0YwotICAgIHInXi91c3IvYmluL3g4Nl82 NC11bmtub3duLWxpbnV4LS4qJywKLQotICAgICMgRnJvbSBOU1BSLCBpbnRlbnRpb25hbGx5IG5v dCBpbnN0YWxsZWQgb24gRmVkb3JhCi0gICAgcicvdXNyL2luY2x1ZGUvbWQvLionLAotCi0gICAg IyAuaW5zdGFsbCBmaWxlcyBsaXR0ZXIgdGhlIGluY2x1ZGUgZGlyZWN0b3JpZXMgb2Ygb3BlbmVt YmVkZGVkCi0gICAgcicuKi9cLmluc3RhbGwkJwotXQotaWdub3JlX2NvbXBpbGVkID0gW3JlLmNv bXBpbGUoeCkgZm9yIHggaW4gaWdub3JlX3BhdHRlcm5zXQotCi1yZW5hbWVfcGF0dGVybnMgPSBb Ci0gICAgKHInXi91c3IvaW5jbHVkZS9jXCtcKy82LjIuMC8oLiopJywgcicvdXNyL2luY2x1ZGUv YysrLzcvXDEnKSwKLSAgICAocideL3Vzci9pbmNsdWRlL2NcK1wrLzcveDg2XzY0LXVua25vd24t bGludXgvKC4qKScsIHInL3Vzci9pbmNsdWRlL2MrKy83L3g4Nl82NC1yZWRoYXQtbGludXgvXDEn KSwKLSAgICAocideL3Vzci9pbmNsdWRlL3B5dGhvbjMuNW0vKC4qKScsIHInL3Vzci9pbmNsdWRl L3B5dGhvbjMuNm0vXDEnKSwKLSAgICAocideL3Vzci9saWI2NC9wa2djb25maWcvKC4qcHJvdG8u cGMpJywgcicvdXNyL3NoYXJlL3BrZ2NvbmZpZy9cMScpLAotICAgIChyJ14vdXNyL3NoYXJlL2Zv bnRzL2xpYmVyYXRpb24tZm9udHMvKC4qKScsIHInL3Vzci9zaGFyZS9mb250cy9saWJlcmF0aW9u L1wxJyksCi1dCi1yZW5hbWVfY29tcGlsZWQgPSBbKHJlLmNvbXBpbGUoYSksIGIpIGZvciBhLCBi IGluIHJlbmFtZV9wYXR0ZXJuc10KLQotcGxhdGZvcm1fcGFja2FnZV9pZ25vcmVfcGF0dGVybnMg PSBbCi0gICAgIl4uKi1kZXZlbCQiLAotICAgICJebGliYXBwc3RyZWFtLWdsaWItYnVpbGRlciQi LCAjIG1heSBub3QgbmVlZCBpbiB0aGUgc2RrIGVpdGhlcgotICAgICJeZ3RrLWRvYyQiLAotICAg ICJeaWN1JCIsICMgbWF5IG5vdCBuZWVkIGluIHRoZSBzZGsgZWl0aGVyCi0gICAgJ15sbHZtJCcs Ci0gICAgJ15zcWxpdGUkJywKLV0KLXBsYXRmb3JtX3BhY2thZ2VfaWdub3JlX2NvbXBpbGVkID0g W3JlLmNvbXBpbGUocCkgZm9yIHAgaW4gcGxhdGZvcm1fcGFja2FnZV9pZ25vcmVfcGF0dGVybnNd Ci0KLQotIyBXZSBuZWVkIHRvIGxvb2sgdXAgYSBsb3Qgb2YgZmlsZSBkZXBlbmRlbmNpZXMuIGRu Zi9saWJzb2x2IGlzIG5vdCBmYXN0IGF0IGRvaW5nCi0jIHRoaXMgKGF0IGxlYXN0IHdoZW4gd2Ug bG9vayB1cCBmaWxlcyBvbmUtYnktb25lKSBzbyB3ZSBjcmVhdGUgYSBoYXNoIHRhYmxlIHRoYXQK LSMgbWFwcyBmcm9tICphbGwqIGZpbGVzIGluIHRoZSBkaXN0cmlidXRpb24gdG8gdGhlICJiZXN0 IiBwYWNrYWdlIHRoYXQgcHJvdmlkZXMKLSMgdGhlIGZpbGUuIFRvIGZ1cnRoZXIgc3BlZWQgdGhp cyB1cCwgd2UgcGlja2xlIHRoZSByZXN1bHQgYW5kIHN0b3JlIGl0LCBhbmQgb25seQotIyByZWNy ZWF0ZSBpdCB3aGVuIHRoZSBETkYgbWV0YWRhdGEgY2hhbmdlcy4gV2UgZ3ppcCB0aGUgcGlja2xl IHRvIHNhdmUgc3BhY2UKLSMgKDcwTSBpbnN0ZWFkIG9mIDcwME0pLCB0aGlzIHNsb3dzIHRoaW5n cyBkb3duIGJ5IGFib3V0IDIgc2Vjb25kcy4KLSMKLQotZGVmIHBhY2thZ2VfY21wKHAxLCBwMik6 Ci0gICAgbjEsIGUxLCB2MSwgcjEsIGExID0gcDEKLSAgICBuMiwgZTIsIHYyLCByMiwgYTIgPSBw MgotCi0gICAgaWYgYTEgPT0gJ2k2ODYnIGFuZCBhMiAhPSAnaTY4Nic6Ci0gICAgICAgIHJldHVy biAxCi0gICAgaWYgYTEgIT0gJ2k2ODYnIGFuZCBhMiA9PSAnaTY4Nic6Ci0gICAgICAgIHJldHVy biAtMQotCi0gICAgaWYgbjEuc3RhcnRzd2l0aCgnY29tcGF0LScpIGFuZCBub3QgbjIuc3RhcnRz d2l0aCgnY29tcGF0LScpOgotICAgICAgICByZXR1cm4gMQotICAgIGVsaWYgbjIuc3RhcnRzd2l0 aCgnY29tcGF0LScpIGFuZCBub3QgbjEuc3RhcnRzd2l0aCgnY29tcGF0LScpOgotICAgICAgICBy ZXR1cm4gLTEKLQotICAgIGlmIG4xIDwgbjI6Ci0gICAgICAgIHJldHVybiAtMQotICAgIGVsaWYg bjEgPiBuMjoKLSAgICAgICAgcmV0dXJuIDEKLQotICAgIGlmIGUxIGlzIE5vbmU6Ci0gICAgICAg IGUxID0gJzAnCi0gICAgaWYgZTIgaXMgTm9uZToKLSAgICAgICAgZTIgPSAnMCcKLQotICAgIHJl dHVybiAtIHJwbS5sYWJlbENvbXBhcmUoKGUxLCB2MSwgcjEpLCAoZTIsIHYyLCByMikpCi0KLWNs YXNzIEZpbGVzTWFwSGFuZGxlcih4bWwuc2F4LmhhbmRsZXIuQ29udGVudEhhbmRsZXIpOgotICAg IGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlc19tYXApOgotICAgICAgICBzZWxmLmZpbGVzX21hcCA9 IGZpbGVzX21hcAotICAgICAgICBzZWxmLm5hbWUgPSBOb25lCi0gICAgICAgIHNlbGYuYXJjaCA9 IE5vbmUKLSAgICAgICAgc2VsZi5lcG9jaCA9IE5vbmUKLSAgICAgICAgc2VsZi52ZXJzaW9uID0g Tm9uZQotICAgICAgICBzZWxmLnJlbGVhc2UgPSBOb25lCi0gICAgICAgIHNlbGYuZmlsZSA9IE5v bmUKLQotICAgIGRlZiBzdGFydEVsZW1lbnQoc2VsZiwgbmFtZSwgYXR0cnMpOgotICAgICAgICBp ZiBuYW1lID09ICdwYWNrYWdlJzoKLSAgICAgICAgICAgIHNlbGYubmFtZSA9IGF0dHJzWyduYW1l J10KLSAgICAgICAgICAgIHNlbGYuYXJjaCA9IGF0dHJzWydhcmNoJ10KLSAgICAgICAgZWxpZiBu YW1lID09ICd2ZXJzaW9uJzoKLSAgICAgICAgICAgIGlmIHNlbGYubmFtZSBpcyBub3QgTm9uZToK LSAgICAgICAgICAgICAgICBzZWxmLmVwb2NoID0gYXR0cnNbJ2Vwb2NoJ10KLSAgICAgICAgICAg ICAgICBzZWxmLnZlcnNpb24gPSBhdHRyc1sndmVyJ10KLSAgICAgICAgICAgICAgICBzZWxmLnJl bGVhc2UgPSBhdHRyc1sncmVsJ10KLSAgICAgICAgZWxpZiBuYW1lID09ICdmaWxlJzoKLSAgICAg ICAgICAgIHNlbGYuZmlsZSA9ICcnCi0KLSAgICBkZWYgZW5kRWxlbWVudChzZWxmLCBuYW1lKToK LSAgICAgICAgaWYgbmFtZSA9PSAncGFja2FnZSc6Ci0gICAgICAgICAgICBzZWxmLm5hbWUgPSBO b25lCi0gICAgICAgIGVsaWYgbmFtZSA9PSAnZmlsZSc6Ci0gICAgICAgICAgICBwYWNrYWdlID0g KHNlbGYubmFtZSwgc2VsZi5lcG9jaCwgc2VsZi52ZXJzaW9uLCBzZWxmLnJlbGVhc2UsIHNlbGYu YXJjaCkKLSAgICAgICAgICAgIG9sZCA9IHNlbGYuZmlsZXNfbWFwLmdldChzZWxmLmZpbGUpCi0g ICAgICAgICAgICBpZiBvbGQgaXMgTm9uZSBvciBwYWNrYWdlX2NtcChwYWNrYWdlLCBvbGQpIDwg MDoKLSAgICAgICAgICAgICAgICBzZWxmLmZpbGVzX21hcFtzZWxmLmZpbGVdID0gcGFja2FnZQot Ci0gICAgICAgICAgICBzZWxmLmZpbGUgPSBOb25lCi0KLSAgICBkZWYgY2hhcmFjdGVycyhzZWxm LCBjb250ZW50KToKLSAgICAgICAgaWYgc2VsZi5maWxlIGlzIG5vdCBOb25lOgotICAgICAgICAg ICAgc2VsZi5maWxlICs9IGNvbnRlbnQKLQotZGVmIHNjYW5fZmlsZWxpc3RzKGZpbGVsaXN0c19w YXRoLCBmaWxlc19tYXApOgotICAgIGhhbmRsZXIgPSBGaWxlc01hcEhhbmRsZXIoZmlsZXNfbWFw KQotICAgIHdpdGggZ3ppcC5vcGVuKGZpbGVsaXN0c19wYXRoLCAncmInKSBhcyBmOgotICAgICAg ICB4bWwuc2F4LnBhcnNlKGYsIGhhbmRsZXIpCi0KLQotZGVmIG1ha2VfZmlsZXNfbWFwKHJlcG9f aW5mbyk6Ci0gICAgZmlsZXNfbWFwID0ge30KLQotICAgIGZvciByZXBvIGluIFJFUE9TOgotICAg ICAgICBzdGFydCgiU2Nhbm5pbmcgZmlsZXMgZm9yIHt9Ii5mb3JtYXQocmVwbykpCi0gICAgICAg IHJlcG9fZGlyLCByZXBvbWRfY29udGVudHMgPSByZXBvX2luZm9bcmVwb10KLSAgICAgICAgcm9v dCA9IEVULmZyb21zdHJpbmcocmVwb21kX2NvbnRlbnRzKQotCi0gICAgICAgIG5zID0geydyZXBv JzogJ2h0dHA6Ly9saW51eC5kdWtlLmVkdS9tZXRhZGF0YS9yZXBvJ30KLSAgICAgICAgZmlsZWxp c3RzX2xvY2F0aW9uID0gcm9vdC5maW5kKCIuL3JlcG86ZGF0YVtAdHlwZT0nZmlsZWxpc3RzJ10v cmVwbzpsb2NhdGlvbiIsIG5zKS5hdHRyaWJbJ2hyZWYnXQotICAgICAgICBmaWxlbGlzdHNfcGF0 aCA9IG9zLnBhdGguam9pbihyZXBvX2RpciwgZmlsZWxpc3RzX2xvY2F0aW9uKQotICAgICAgICBp ZiBvcy5wYXRoLmNvbW1vbnByZWZpeChbZmlsZWxpc3RzX3BhdGgsIHJlcG9fZGlyXSkgIT0gcmVw b19kaXI6Ci0gICAgICAgICAgICBkb25lKCkKLSAgICAgICAgICAgIGVycm9yKCJ7fTogZmlsZWxp c3RzIGRpcmVjdG9yeSBpcyBvdXRzaWRlIG9mIHJlcG9zaXRvcnkiLmZvcm1hdChyZXBvX2Rpcikp Ci0KLSAgICAgICAgc2Nhbl9maWxlbGlzdHMoZmlsZWxpc3RzX3BhdGgsIGZpbGVzX21hcCkKLSAg ICAgICAgZG9uZSgpCi0KLSAgICBzdGFydCgiRmluYWxpemluZyBmaWxlcyBtYXAiKQotICAgIGZv ciBrIGluIGZpbGVzX21hcDoKLSAgICAgICAgZmlsZXNfbWFwW2tdID0gZmlsZXNfbWFwW2tdWzBd Ci0gICAgZG9uZSgpCi0KLSAgICByZXR1cm4gZmlsZXNfbWFwCi0KLQotZGVmIGdldF9maWxlc19t YXAoKToKLSAgICBoYXNoX3RleHQgPSAnJwotICAgIHJlcG9zX2RpciA9IG9zLnBhdGguam9pbihY REdfQ0FDSEVfSE9NRSwgImZlZG1vZC9yZXBvcyIpCi0gICAgcmVwb19pbmZvID0ge30KLSAgICBm b3IgcmVwbyBpbiBSRVBPUzoKLSAgICAgICAgcmVwb19kaXIgPSBvcy5wYXRoLmpvaW4ocmVwb3Nf ZGlyLCByZXBvLCAneDg2XzY0JykKLSAgICAgICAgcmVwb21kX3BhdGggPSBvcy5wYXRoLmpvaW4o cmVwb19kaXIsICdyZXBvZGF0YS9yZXBvbWQueG1sJykKLSAgICAgICAgdHJ5OgotICAgICAgICAg ICAgd2l0aCBvcGVuKHJlcG9tZF9wYXRoLCAncmInKSBhcyBmOgotICAgICAgICAgICAgICAgIHJl cG9tZF9jb250ZW50cyA9IGYucmVhZCgpCi0gICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgSU9FcnJv cik6Ci0gICAgICAgICAgICBwcmludCgiQ2Fubm90IHJlYWQge30sIHRyeSAnZmVkbW9kIGZldGNo LW1ldGFkYXRhJyIuZm9ybWF0KHJlcG9tZF9wYXRoKSwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAg ICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICByZXBvX2luZm9bcmVwb10gPSAocmVwb19kaXIs IHJlcG9tZF9jb250ZW50cykKLSAgICAgICAgaGFzaF90ZXh0ICs9ICd7fXx7fVxuJy5mb3JtYXQo cmVwbywgaGFzaGxpYi5zaGEyNTYocmVwb21kX2NvbnRlbnRzKS5oZXhkaWdlc3QoKSkKLQotICAg IHJlcG9faGFzaCA9IGhhc2hsaWIuc2hhMjU2KGhhc2hfdGV4dC5lbmNvZGUoIlVURi04IikpLmhl eGRpZ2VzdCgpCi0KLSAgICBmaWxlc19tYXBfcGF0aCA9IG9zLnBhdGguam9pbihYREdfQ0FDSEVf SE9NRSwgImZlZG1vZC9mbGF0cGFrLXJ1bnRpbWUtZmlsZXMtbWFwLmd6IikKLQotICAgIHRyeToK LSAgICAgICAgd2l0aCBnemlwLm9wZW4oZmlsZXNfbWFwX3BhdGgsICdyYicpIGFzIGY6Ci0gICAg ICAgICAgICBvbGRfcmVwb19oYXNoID0gZi5yZWFkKDY0KS5kZWNvZGUoJ3V0Zi04JykKLSAgICAg ICAgICAgIGlmIG9sZF9yZXBvX2hhc2ggPT0gcmVwb19oYXNoOgotICAgICAgICAgICAgICAgIHN0 YXJ0KCJSZWFkaW5nIGNhY2hlZCBmaWxlIG1hcCIpCi0gICAgICAgICAgICAgICAgZmlsZXNfbWFw ID0gcGlja2xlLmxvYWQoZikKLSAgICAgICAgICAgICAgICBkb25lKCkKLQotICAgICAgICAgICAg ICAgIHJldHVybiBmaWxlc19tYXAKLSAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6Ci0gICAg ICAgIHBhc3MKLQotICAgIGZpbGVzX21hcCA9IG1ha2VfZmlsZXNfbWFwKHJlcG9faW5mbykKLQot ICAgIHN0YXJ0KCJXcml0aW5nIGZpbGUgbWFwIHRvIGNhY2hlIikKLSAgICB3aXRoIGd6aXAub3Bl bihmaWxlc19tYXBfcGF0aCwgJ3diJykgYXMgZjoKLSAgICAgICAgZi53cml0ZShyZXBvX2hhc2gu ZW5jb2RlKCd1dGYtOCcpKQotICAgICAgICBwaWNrbGUuZHVtcChmaWxlc19tYXAsIGYpCi0gICAg ZG9uZSgpCi0KLSAgICByZXR1cm4gZmlsZXNfbWFwCi0KLWlmIGxlbihzeXMuYXJndikgIT0gMjoK LSAgICBwcmludCgiVXNhZ2U6IHJlc29sdmUtZmlsZXMucHkgSU5GSUxFIiwgZmlsZT1zeXMuc3Rk ZXJyKQotICAgIHN5cy5leGl0KDEpCi0KLWlucGF0aCA9IHN5cy5hcmd2WzFdCi1pZiBub3QgaW5w YXRoLmVuZHN3aXRoKCcuZmlsZXMnKToKLSAgICBwcmludCgiSU5GSUxFIG11c3QgaGF2ZSAuZmls ZXMgc3VmZml4IiwgZmlsZT1zeXMuc3RkZXJyKQotICAgIHN5cy5leGl0KDEpCi0KLWJhc2VfcGF0 aCA9IGlucGF0aFs6LWxlbignLmZpbGVzJyldCi1pc19wbGF0Zm9ybSA9ICItUGxhdGZvcm0iIGlu IGJhc2VfcGF0aAotaXNfc2RrID0gIi1TZGsiIGluIGJhc2VfcGF0aAotCi1kZWYgd2Fybihtc2cp OgotICAgIHByaW50KCJ7fTogXDAzM1szMW17fVwwMzNbMzltIi5mb3JtYXQoaW5wYXRoLCBtc2cp LCBmaWxlPXN5cy5zdGRlcnIpCi0KLWRlZiBlcnJvcihtc2cpOgotICAgIHByaW50KCJ7fTogXDAz M1szMW17fVwwMzNbMzltIi5mb3JtYXQoaW5wYXRoLCBtc2cpLCBmaWxlPXN5cy5zdGRlcnIpCi0g ICAgc3lzLmV4aXQoMSkKLQotZGVmIHN0YXJ0KG1zZyk6Ci0gICAgcHJpbnQoInt9OiBcMDMzWzkw bXt9IC4uLiBcMDMzWzM5bSIuZm9ybWF0KGlucGF0aCwgbXNnKSwgZmlsZT1zeXMuc3RkZXJyLCBl bmQ9IiIpCi0gICAgc3lzLnN0ZGVyci5mbHVzaCgpCi0KLWRlZiBkb25lKCk6Ci0gICAgcHJpbnQo IlwwMzNbOTBtZG9uZVwwMzNbMzltIiwgZmlsZT1zeXMuc3RkZXJyKQotCi1zdGFydCgiUmVhZGlu ZyBmaWxlIGxpc3QiKQotCi10b19yZXNvbHZlID0gW10KLXdpdGggb3BlbihpbnBhdGgpIGFzIGY6 Ci0gICAgZm9yIGwgaW4gZjoKLSAgICAgICAgciA9IGwucnN0cmlwKCkKLSAgICAgICAgaWYgci5z dGFydHN3aXRoKCcvdXNyL2xpYi8nKToKLSAgICAgICAgICAgIHIgPSAnL3Vzci9saWI2NC8nICsg cltsZW4oJy91c3IvbGliLycpOl0KLSAgICAgICAgdG9fcmVzb2x2ZS5hcHBlbmQocikKLQotdG9f cmVzb2x2ZS5zb3J0KCkKLQotZG9uZSgpCi0KLWZpbGVzX21hcCA9IGdldF9maWxlc19tYXAoKQot Zm91bmRfcGFja2FnZXMgPSBzZXQoKQotCi1zdGFydCgiUmVzb2x2aW5nIGZpbGVzIHRvIHBhY2th Z2VzIikKLQotbWF0Y2hlZF9maWxlID0gb3BlbihiYXNlX3BhdGggKyAnLm1hdGNoZWQnLCAndycp Ci11bm1hdGNoZWRfZmlsZSA9IG9wZW4oYmFzZV9wYXRoICsgJy51bm1hdGNoZWQnLCAndycpCi11 bm1hdGNoZWRfY291bnQgPSAwCi0KLWZvciByIGluIHRvX3Jlc29sdmU6Ci0gICAgaWYgciBpbiBp Z25vcmU6Ci0gICAgICAgIGNvbnRpbnVlCi0KLSAgICBza2lwID0gRmFsc2UKLSAgICBmb3IgcCBp biBpZ25vcmVfY29tcGlsZWQ6Ci0gICAgICAgIGlmIHAubWF0Y2gocikgaXMgbm90IE5vbmU6Ci0g ICAgICAgICAgICBza2lwID0gVHJ1ZQotICAgIGlmIHNraXA6Ci0gICAgICAgIGNvbnRpbnVlCi0K LSAgICBpZiByIGluIHJlbmFtZToKLSAgICAgICAgciA9IHJlbmFtZVtyXQotCi0gICAgZm9yIHAs IHJlcGxhY2VtZW50IGluIHJlbmFtZV9jb21waWxlZDoKLSAgICAgICAgaWYgcC5tYXRjaChyKSBp cyBub3QgTm9uZToKLSAgICAgICAgICAgIHIgPSBwLnN1YihyZXBsYWNlbWVudCwgcikKLQotICAg IGlmIHIuc3RhcnRzd2l0aCgnL3Vzci9saWI2NC8nKToKLSAgICAgICAgc2VhcmNoID0gW3IsICcv bGliNjQvJyArIG9zLnBhdGguYmFzZW5hbWUocildCi0gICAgZWxpZiByLnN0YXJ0c3dpdGgoJy91 c3IvYmluLycpOgotICAgICAgICBzZWFyY2ggPSBbciwgJy9iaW4vJyArIG9zLnBhdGguYmFzZW5h bWUociksICcvdXNyL3NiaW4vJyArIG9zLnBhdGguYmFzZW5hbWUociksICcvc2Jpbi8nICsgb3Mu cGF0aC5iYXNlbmFtZShyKV0KLSAgICBlbHNlOgotICAgICAgICBzZWFyY2ggPSBbcl0KLQotICAg IGlmIHIuc3RhcnRzd2l0aCgnL3Vzci9saWI2NC9saWJMTFZNJyk6Ci0gICAgICAgICMgZnJlZWRl c2t0b3AgU0RLIGJ1aWxkcyAic3BsaXQiIExMVk0gbGlicmFyaWVzCi0gICAgICAgIGZvdW5kX3Bh Y2thZ2VzLmFkZCgnbGx2bS1saWJzJykKLSAgICAgICAgY29udGludWUKLQotICAgIGZvciBzIGlu IHNlYXJjaDoKLSAgICAgICAgcHJvdmlkaW5nID0gZmlsZXNfbWFwLmdldChzLCBOb25lKQotICAg ICAgICBpZiBwcm92aWRpbmcgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBicmVhawotCi0gICAg aWYgcHJvdmlkaW5nIGlzIE5vbmU6Ci0gICAgICAgIHByaW50KHIsIGZpbGU9dW5tYXRjaGVkX2Zp bGUpCi0gICAgICAgIHVubWF0Y2hlZF9jb3VudCArPSAxCi0gICAgZWxzZToKLSAgICAgICAgaWYg aXNfcGxhdGZvcm0gYW5kIGFueShwLm1hdGNoKHByb3ZpZGluZykgaXMgbm90IE5vbmUgZm9yIHAg aW4gcGxhdGZvcm1fcGFja2FnZV9pZ25vcmVfY29tcGlsZWQpOgotICAgICAgICAgICAgY29udGlu dWUKLQotICAgICAgICBmb3VuZF9wYWNrYWdlcy5hZGQocHJvdmlkaW5nKQotICAgICAgICBwcmlu dCgie306IHt9Ii5mb3JtYXQociwgcHJvdmlkaW5nKSwgZmlsZT1tYXRjaGVkX2ZpbGUpCi0KLXVu bWF0Y2hlZF9maWxlLmNsb3NlKCkKLW1hdGNoZWRfZmlsZS5jbG9zZSgpCi0KLXdpdGggb3Blbihi YXNlX3BhdGggKyAnLnBhY2thZ2VzJywgJ3cnKSBhcyBmOgotICAgIGZvciBwIGluIHNvcnRlZChm b3VuZF9wYWNrYWdlcyk6Ci0gICAgICAgIHByaW50KHAsIGZpbGU9ZikKLQotZG9uZSgpCi0KLWlm IHVubWF0Y2hlZF9jb3VudCA+IDA6Ci0gICAgd2Fybigie30gdW5tYXRjaGVkIGZpbGVzLCBzZWUg e30iLmZvcm1hdCh1bm1hdGNoZWRfY291bnQsIGJhc2VfcGF0aCArICIudW5tYXRjaGVkIikpCgpk aWZmIC0tZ2l0IGEvdG9vbHMvZ2VuZXJhdGUtZmlsZXMuc2ggYi90b29scy9nZW5lcmF0ZS1maWxl cy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNGJlNGUzCi0tLSAvZGV2 L251bGwKKysrIGIvdG9vbHMvZ2VuZXJhdGUtZmlsZXMuc2gKQEAgLTAsMCArMSw0MCBAQAorIyEv YmluL2Jhc2gKKworb3V0PSQxCitiYXNlPSQoYmFzZW5hbWUgJG91dCkKKworY2FzZSAkYmFzZSBp bgorICAgIGZyZWVkZXNrdG9wLSopCisJbnM9b3JnLmZyZWVkZXNrdG9wCisJdmVyc2lvbj0xLjYK Kwk7OworICAgIGdub21lLSopCisJbnM9b3JnLmdub21lCisJdmVyc2lvbj0zLjI2CisJOzsKKyAg ICAqKQorCWVjaG8gMT4mMiAiQ2FuJ3QgaWRlbnRpZnkgcnVudGltZSBmb3IgJGJhc2UiCisJZXhp dCAxCisJOzsKK2VzYWMKKworY2FzZSAkYmFzZSBpbgorICAgICotUGxhdGZvcm0uZmlsZXMpCisJ c2RrPQorCXR5cGU9UGxhdGZvcm0KKwk7OworICAgICotU2RrLmZpbGVzKQorCXNkaz0tLXNkawor CXR5cGU9U2RrCisJOzsKKyAgICAqKQorCWVjaG8gMT4mMiAiQ2FuJ3QgaWRlbnRpZnkgdHlwZSBm b3IgJGJhc2UiCisJZXhpdCAxCisJOzsKK2VzYWMKKworcnVudGltZT0iJG5zLiR0eXBlL3g4Nl82 NC8kdmVyc2lvbiIKKworZWNobyAiJGJhc2U6IGxpc3RpbmcgZmlsZXMgaW4gJHJ1bnRpbWUiCisK K2ZsYXRwYWsgcnVuIC0tZmlsZS1mb3J3YXJkaW5nIC0tY29tbWFuZD0vdXNyL2Jpbi9weXRob24z ICRydW50aW1lIEBAIHRvb2xzL2xpc3QtZmlsZXMucHkgQEAgJHNkayA+ICRvdXQKCmRpZmYgLS1n aXQgYS90b29scy9nZW5lcmF0ZS1tb2R1bGVtZC5weSBiL3Rvb2xzL2dlbmVyYXRlLW1vZHVsZW1k LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIzYmI0ZWYKLS0tIC9kZXYv bnVsbAorKysgYi90b29scy9nZW5lcmF0ZS1tb2R1bGVtZC5weQpAQCAtMCwwICsxLDIwIEBACisj IS91c3IvYmluL3B5dGhvbjMKK2ltcG9ydCBzeXMKK2Zyb20geWFtbF91dGlscyBpbXBvcnQgb3Jk ZXJlZF9sb2FkLCBvcmRlcmVkX2R1bXAKKword2l0aCBvcGVuKCdmbGF0cGFrLXJ1bnRpbWUuaW4u eWFtbCcpIGFzIGY6CisgICAgbW9kdWxlbWQgPSBvcmRlcmVkX2xvYWQoZikKKworZGVmIHNldF9w cm9maWxlKHByb2ZpbGVfbmFtZSwgbGlzdF9maWxlKToKKyAgICB3aXRoIG9wZW4obGlzdF9maWxl KSBhcyBmOgorICAgICAgICBwYWNrYWdlcyA9IFtsLnN0cmlwKCkgZm9yIGwgaW4gZl0KKyAgICBw cmludCgie306IHt9IHBhY2thZ2VzIi5mb3JtYXQocHJvZmlsZV9uYW1lLCBsZW4ocGFja2FnZXMp KSwgZmlsZT1zeXMuc3RkZXJyKQorICAgIG1vZHVsZW1kWydkYXRhJ11bJ3Byb2ZpbGVzJ11bcHJv ZmlsZV9uYW1lXSA9IHBhY2thZ2VzCisKK3NldF9wcm9maWxlKCdydW50aW1lJywgJ291dC9ydW50 aW1lLnByb2ZpbGUnKQorc2V0X3Byb2ZpbGUoJ3J1bnRpbWUtYmFzZScsICdvdXQvcnVudGltZS1i YXNlLnByb2ZpbGUnKQorc2V0X3Byb2ZpbGUoJ3NkaycsICdvdXQvc2RrLnByb2ZpbGUnKQorc2V0 X3Byb2ZpbGUoJ3Nkay1iYXNlJywgJ291dC9zZGstYmFzZS5wcm9maWxlJykKKword2l0aCBvcGVu KCdmbGF0cGFrLXJ1bnRpbWUueWFtbCcsICd3JykgYXMgZjoKKyAgICBvcmRlcmVkX2R1bXAobW9k dWxlbWQsIHN0cmVhbT1mLCBkZWZhdWx0X2Zsb3dfc3R5bGU9RmFsc2UsIGVuY29kaW5nPSJ1dGYt OCIpCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZ2VuZXJhdGUtcmVwb3J0LnB5IGIvdG9vbHMvZ2VuZXJh dGUtcmVwb3J0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE2NGEwMDgK LS0tIC9kZXYvbnVsbAorKysgYi90b29scy9nZW5lcmF0ZS1yZXBvcnQucHkKQEAgLTAsMCArMSw0 MDEgQEAKKyMhL3Vzci9iaW4vcHl0aG9uMworCitmcm9tIGppbmphMiBpbXBvcnQgRW52aXJvbm1l bnQsIEZpbGVTeXN0ZW1Mb2FkZXIsIHNlbGVjdF9hdXRvZXNjYXBlCitpbXBvcnQganNvbgoraW1w b3J0IGxvY2FsZQoraW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBv cnQgc3lzCisKK2RlZiBzdGFydChtc2cpOgorICAgIHByaW50KCJ7fTogXDAzM1s5MG17fSAuLi4g XDAzM1szOW0iLmZvcm1hdChvcy5wYXRoLmJhc2VuYW1lKHN5cy5hcmd2WzBdKSwgbXNnKSwgZmls ZT1zeXMuc3RkZXJyLCBlbmQ9IiIpCisgICAgc3lzLnN0ZGVyci5mbHVzaCgpCisKK2RlZiBkb25l KCk6CisgICAgcHJpbnQoIlwwMzNbOTBtZG9uZVwwMzNbMzltIiwgZmlsZT1zeXMuc3RkZXJyKQor CitkZWYgd2Fybihtc2cpOgorICAgIHByaW50KCJ7fTogXDAzM1szMW17fVwwMzNbMzltIi5mb3Jt YXQob3MucGF0aC5iYXNlbmFtZShzeXMuYXJndlswXSksIG1zZyksIGZpbGU9c3lzLnN0ZGVycikK KworZGVmIGZlZG1vZF9vdXRwdXQoYXJncyk6CisgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tf b3V0cHV0KFsncGlwZW52JywgJ3J1bicsICdmZWRtb2QnXSArIGFyZ3MsIGVuY29kaW5nPSd1dGYt OCcsIGN3ZD0nL2hvbWUvb3RheWxvci9Tb3VyY2UvZmVkbW9kJykKKworX252cl90b19uYW1lX3Jl ID0gcmUuY29tcGlsZSgnXiguKiktW14tXSotW14tXSonKQorZGVmIG52cl90b19uYW1lKG52cik6 CisgICAgcmV0dXJuIF9udnJfdG9fbmFtZV9yZS5tYXRjaChudnIpLmdyb3VwKDEpCisKK2NsYXNz IFBhY2thZ2Uob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAg IHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5mcmVlZGVza3RvcF9wbGF0Zm9ybSA9IDAK KyAgICAgICAgc2VsZi5mcmVlZGVza3RvcF9wbGF0Zm9ybV9maWxlcyA9IE5vbmUKKyAgICAgICAg c2VsZi5mcmVlZGVza3RvcF9wbGF0Zm9ybV9yZXF1aXJlZF9ieSA9IE5vbmUKKyAgICAgICAgc2Vs Zi5nbm9tZV9wbGF0Zm9ybSA9IDAKKyAgICAgICAgc2VsZi5nbm9tZV9wbGF0Zm9ybV9maWxlcyA9 IE5vbmUKKyAgICAgICAgc2VsZi5nbm9tZV9wbGF0Zm9ybV9yZXF1aXJlZF9ieSA9IE5vbmUKKyAg ICAgICAgc2VsZi5mcmVlZGVza3RvcF9zZGsgPSAwCisgICAgICAgIHNlbGYuZnJlZWRlc2t0b3Bf c2RrX2ZpbGVzID0gTm9uZQorICAgICAgICBzZWxmLmZyZWVkZXNrdG9wX3Nka19yZXF1aXJlZF9i eSA9IE5vbmUKKyAgICAgICAgc2VsZi5nbm9tZV9zZGsgPSAwCisgICAgICAgIHNlbGYuZ25vbWVf c2RrX2ZpbGVzID0gTm9uZQorICAgICAgICBzZWxmLmdub21lX3Nka19yZXF1aXJlZF9ieSA9IE5v bmUKKyAgICAgICAgc2VsZi5saXZlID0gMAorICAgICAgICBzZWxmLnJmMjYgPSAwCisgICAgICAg IHNlbGYuc291cmNlX3BhY2thZ2UgPSBOb25lCisgICAgICAgIHNlbGYuZmxhZyA9IE5vbmUKKyAg ICAgICAgc2VsZi5fbm90ZSA9IE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBydW50aW1l cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZnJlZWRlc2t0b3BfcGxhdGZvcm0gb3Igc2Vs Zi5nbm9tZV9wbGF0Zm9ybSBvciBzZWxmLmZyZWVkZXNrdG9wX3NkayBvciBzZWxmLmdub21lX3Nk aworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGtsYXNzKHNlbGYpOgorICAgICAgICBpZiBzZWxm LmZsYWcgPT0gJ0YnOgorICAgICAgICAgICAgcmV0dXJuICJmbGFnZ2VkIgorICAgICAgICBlbGlm IHNlbGYuZmxhZyA9PSAnRj8nOgorICAgICAgICAgICAgcmV0dXJuICJxdWVzdGlvbmFibGUiCisg ICAgICAgIGVsaWYgc2VsZi5mbGFnID09ICdGRCc6CisgICAgICAgICAgICByZXR1cm4gImZsYWdn ZWQtZGVwIgorICAgICAgICBlbGlmIHNlbGYuZmxhZyA9PSAnVyc6CisgICAgICAgICAgICByZXR1 cm4gIndhaXZlZCIKKyAgICAgICAgZWxpZiBzZWxmLmdub21lX3BsYXRmb3JtIGFuZCBub3Qgc2Vs Zi5saXZlOgorICAgICAgICAgICAgcmV0dXJuICJxdWVzdGlvbmFibGUiCisKKyAgICBAcHJvcGVy dHkKKyAgICBkZWYgbW9kdWxlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHBhY2thZ2VfdG9fbW9k dWxlLmdldChzZWxmLm5hbWUsICIiKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5vdGUoc2Vs Zik6CisgICAgICAgIGlmIHNlbGYuZ25vbWVfcGxhdGZvcm0gYW5kIG5vdCBzZWxmLmxpdmU6Cisg ICAgICAgICAgICByZXR1cm4gInBsYXRmb3JtIHBhY2thZ2Ugbm90IG9uIExpdmUgaW1hZ2UiCisg ICAgICAgIGVsaWYgc2VsZi5fbm90ZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ub3RlCisg ICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gIiIKKworICAgIGRlZiB3aHkoc2VsZiwg d2hpY2gpOgorICAgICAgICBmaWxlcyA9IGdldGF0dHIoc2VsZiwgd2hpY2ggKyAnX2ZpbGVzJykK KyAgICAgICAgaWYgZmlsZXMgaXMgTm9uZToKKyAgICAgICAgICAgIGZpbGVzX3N0ciA9ICcnCisg ICAgICAgIGVsaWYgbGVuKGZpbGVzKSA8PSAzOgorICAgICAgICAgICAgZmlsZXNfc3RyPSAgJ0Zp bGVzOiAnICsgJyAnLmpvaW4oZmlsZXMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmaWxl c19zdHIgPSAnRmlsZXM6ICcgKyAnICcuam9pbihmaWxlc1s6M10pICsgJyAuLi4nCisKKyAgICAg ICAgcmVxdWlyZWRfYnkgPSBnZXRhdHRyKHNlbGYsIHdoaWNoICsgJ19yZXF1aXJlZF9ieScpCisg ICAgICAgIGlmIHJlcXVpcmVkX2J5IGlzIE5vbmU6CisgICAgICAgICAgICByZXF1aXJlZF9ieV9z dHIgPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVxdWlyZWRfYnlfc3RyID0gJ1xu Jy5qb2luKCd7fSAoe30pJy5mb3JtYXQocmVxLCBwcm92aWRlcikgZm9yIHJlcSwgcHJvdmlkZXIg aW4gcmVxdWlyZWRfYnkpCisKKyAgICAgICAgaWYgZmlsZXNfc3RyIGFuZCByZXF1aXJlZF9ieV9z dHI6CisgICAgICAgICAgICByZXR1cm4gZmlsZXNfc3RyICsgJ1xuJyArIHJlcXVpcmVkX2J5X3N0 cgorICAgICAgICBlbGlmIGZpbGVzX3N0cjoKKyAgICAgICAgICAgIHJldHVybiBmaWxlc19zdHIK KyAgICAgICAgZWxpZiByZXF1aXJlZF9ieV9zdHI6CisgICAgICAgICAgICByZXR1cm4gcmVxdWly ZWRfYnlfc3RyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gJycKKworICAgIEBw cm9wZXJ0eQorICAgIGRlZiBmcmVlZGVza3RvcF9wbGF0Zm9ybV93aHkoc2VsZik6CisgICAgICAg IHJldHVybiBzZWxmLndoeSgnZnJlZWRlc2t0b3BfcGxhdGZvcm0nKQorCisgICAgQHByb3BlcnR5 CisgICAgZGVmIGZyZWVkZXNrdG9wX3Nka193aHkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm LndoeSgnZnJlZWRlc2t0b3Bfc2RrJykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBnbm9tZV9w bGF0Zm9ybV93aHkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLndoeSgnZ25vbWVfcGxhdGZv cm0nKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGdub21lX3Nka193aHkoc2VsZik6CisgICAg ICAgIHJldHVybiBzZWxmLndoeSgnZ25vbWVfc2RrJykKKworICAgIGRlZiBpbmNsdXNpb24oc2Vs Ziwgd2hpY2gpOgorICAgICAgICBsZXZlbCA9IGdldGF0dHIoc2VsZiwgd2hpY2gpCisgICAgICAg IGlmIGxldmVsID09IDA6CisgICAgICAgICAgICByZXR1cm4gJ2Fic2VudCcKKyAgICAgICAgZWxp ZiBsZXZlbCA9PSAxOgorICAgICAgICAgICAgcmV0dXJuICdkZXAnCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICByZXF1aXJlZF9ieSA9IGdldGF0dHIoc2VsZiwgd2hpY2ggKyAnX3JlcXVpcmVk X2J5JywgRmFsc2UpCisgICAgICAgICAgICBpZiByZXF1aXJlZF9ieSBpcyBGYWxzZToKKyAgICAg ICAgICAgICAgICByZXR1cm4gJ3ByZXNlbnQnCisgICAgICAgICAgICBlbGlmIHJlcXVpcmVkX2J5 IGlzIG5vdCBOb25lIGFuZCBsZW4ocmVxdWlyZWRfYnkpID4gMDoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gJ2ZpbGVzJworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4g J3Jvb3QnCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnJlZWRlc2t0b3BfcGxhdGZvcm1faW5j bHVzaW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5pbmNsdXNpb24oJ2ZyZWVkZXNrdG9w X3BsYXRmb3JtJykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBmcmVlZGVza3RvcF9zZGtfaW5j bHVzaW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5pbmNsdXNpb24oJ2ZyZWVkZXNrdG9w X3NkaycpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZ25vbWVfcGxhdGZvcm1faW5jbHVzaW9u KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5pbmNsdXNpb24oJ2dub21lX3BsYXRmb3JtJykK KworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBnbm9tZV9zZGtfaW5jbHVzaW9uKHNlbGYpOgorICAg ICAgICByZXR1cm4gc2VsZi5pbmNsdXNpb24oJ2dub21lX3NkaycpCisKKyAgICBAcHJvcGVydHkK KyAgICBkZWYgbGl2ZV9pbmNsdXNpb24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmluY2x1 c2lvbignbGl2ZScpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmYyNl9pbmNsdXNpb24oc2Vs Zik6CisgICAgICAgIHJldHVybiBzZWxmLmluY2x1c2lvbigncmYyNicpCisKK2NsYXNzIFNvdXJj ZVBhY2thZ2Uob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAg IHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5wYWNrYWdlcyA9IFtdCisKKyAgICBAcHJv cGVydHkKKyAgICBkZWYgbW9kdWxlcyhzZWxmKToKKyAgICAgICAgb2xkX21vZHVsZXMgPSBzZWxm LnBhY2thZ2VzWzBdLm1vZHVsZXMKKyAgICAgICAga2xhc3MgPSBzZWxmLmtsYXNzCisgICAgICAg IGlmIGtsYXNzID09ICJidWlsZC1wbGF0Zm9ybSI6CisgICAgICAgICAgICBuZXdfbW9kdWxlID0g ImRlc2t0b3AtcnVudGltZSIKKyAgICAgICAgZWxpZiBrbGFzcyA9PSAiYnVpbGQtc2RrIjoKKyAg ICAgICAgICAgIG5ld19tb2R1bGUgPSAiZmxhdHBhay1ydW50aW1lIgorICAgICAgICBlbHNlOgor ICAgICAgICAgICAgbmV3X21vZHVsZSA9IE5vbmUKKworICAgICAgICBpZiBvbGRfbW9kdWxlcyBh bmQgbmV3X21vZHVsZToKKyAgICAgICAgICAgIHJldHVybiBvbGRfbW9kdWxlcyArICIg4oeSICIg KyBuZXdfbW9kdWxlCisgICAgICAgIGVsaWYgb2xkX21vZHVsZXM6CisgICAgICAgICAgICByZXR1 cm4gb2xkX21vZHVsZXMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBuZXdfbW9k dWxlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2RrX29ubHkoc2VsZik6CisgICAgICAgIHJl dHVybiBzZGtfb25seQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGtsYXNzKHNlbGYpOgorICAg ICAgICBpZiBzZWxmLnBhY2thZ2VzWzBdLm1vZHVsZXMgaW4gKCIiLCAiaW5zdGFsbGVyIik6Cisg ICAgICAgICAgICBzZGtfb25seSA9IFRydWUKKyAgICAgICAgICAgIGZvciBwYWNrYWdlIGluIHNl bGYucGFja2FnZXM6CisgICAgICAgICAgICAgICAgaWYgcGFja2FnZS5mcmVlZGVza3RvcF9wbGF0 Zm9ybSBvciBwYWNrYWdlLmdub21lX3BsYXRmb3JtOgorICAgICAgICAgICAgICAgICAgICBzZGtf b25seSA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZGtfb25seToKKyAgICAgICAgICAgICAgICBy ZXR1cm4gImJ1aWxkLXNkayIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0 dXJuICJidWlsZC1wbGF0Zm9ybSIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAi IgorCitjbGFzcyBMZXR0ZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbGV0dGVy KToKKyAgICAgICAgc2VsZi5sZXR0ZXIgPSBsZXR0ZXIKKyAgICAgICAgc2VsZi5wYWNrYWdlcyA9 IFtdCisKKyMKKyMgR2V0IGluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2VzCisjCisKK3BhY2thZ2Vz ID0gZGljdCgpCitkZWYgYWRkX3BhY2thZ2UobmFtZSwgd2hpY2gsIGxldmVsLCBvbmx5X2lmX2V4 aXN0cz1GYWxzZSwgc291cmNlX3BhY2thZ2U9Tm9uZSk6CisgICAgcGtnID0gcGFja2FnZXMuZ2V0 KG5hbWUsIE5vbmUpCisgICAgaWYgcGtnIGlzIE5vbmU6CisgICAgICAgIGlmIG9ubHlfaWZfZXhp c3RzOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHBrZyA9IFBhY2thZ2UobmFtZSkKKyAg ICAgICAgcGFja2FnZXNbbmFtZV0gPSBwa2cKKyAgICBpZiBnZXRhdHRyKHBrZywgd2hpY2gpIDwg bGV2ZWw6CisgICAgICAgIHNldGF0dHIocGtnLCB3aGljaCwgbGV2ZWwpCisgICAgaWYgc291cmNl X3BhY2thZ2UgaXMgbm90IE5vbmU6CisgICAgICAgIHBrZy5zb3VyY2VfcGFja2FnZSA9IHNvdXJj ZV9wYWNrYWdlCisKK2RlZiBhZGRfcGFja2FnZXMoZmlsZW5hbWUsIHdoaWNoLCByZXNvbHZlX2Rl cHM9RmFsc2UsIG9ubHlfaWZfZXhpc3RzPUZhbHNlKToKKyAgICBzdGFydCgiQWRkaW5nIHBhY2th Z2VzIGZyb20ge30iLmZvcm1hdChmaWxlbmFtZSkpCisgICAgd2l0aCBvcGVuKGZpbGVuYW1lKSBh cyBmOgorICAgICAgICBwa2dzID0gc2V0KGxpbmUuc3RyaXAoKSBmb3IgbGluZSBpbiBmKQorCisg ICAgaWYgcmVzb2x2ZV9kZXBzOgorICAgICAgICByZXNvbHZlZF9wYWNrYWdlcyA9IGpzb24ubG9h ZHMoZmVkbW9kX291dHB1dChbJ3Jlc29sdmUtZGVwcycsICctLWpzb24nXSArIGxpc3QocGtncykp KQorICAgICAgICBmb3IgcGFja2FnZSBpbiByZXNvbHZlZF9wYWNrYWdlczoKKyAgICAgICAgICAg IG5hbWUgPSBudnJfdG9fbmFtZShwYWNrYWdlWydycG0nXSkKKyAgICAgICAgICAgIHNycG1fbmFt ZSA9IG52cl90b19uYW1lKHBhY2thZ2VbJ3NycG0nXSkKKyAgICAgICAgICAgIGFkZF9wYWNrYWdl KG5hbWUsIHdoaWNoLCBsZXZlbD0oMiBpZiBuYW1lIGluIHBrZ3MgZWxzZSAxKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgIHNvdXJjZV9wYWNrYWdlPXNycG1fbmFtZSwgb25seV9pZl9leGlzdHM9 b25seV9pZl9leGlzdHMpCisKKyAgICAgICAgZm9yIHBhY2thZ2UgaW4gcmVzb2x2ZWRfcGFja2Fn ZXM6CisgICAgICAgICAgICBmb3IgcmVxLCBwcm92aWRlcnMgaW4gcGFja2FnZVsncmVxdWlyZXMn XS5pdGVtcygpOgorICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gbnZyX3RvX25hbWUocHJvdmlk ZXJzWzBdKQorICAgICAgICAgICAgICAgIHByb3ZpZGVyX3BhY2thZ2UgPSBwYWNrYWdlcy5nZXQo cHJvdmlkZXIsIE5vbmUpCisgICAgICAgICAgICAgICAgaWYgcHJvdmlkZXJfcGFja2FnZSBpcyBO b25lOiAjIGZpbHRlcmVkIG91dCBvZiB0aGUgcmVzb2x2ZS1kZXBzIG91dHB1dCAtIGUuZy4sIGZl ZG9yYS1yZWxlYXNlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAg ICAgcmVxdWlyZWRfYnkgPSBnZXRhdHRyKHByb3ZpZGVyX3BhY2thZ2UsIHdoaWNoICsgJ19yZXF1 aXJlZF9ieScpCisgICAgICAgICAgICAgICAgaWYgcmVxdWlyZWRfYnkgaXMgTm9uZToKKyAgICAg ICAgICAgICAgICAgICAgcmVxdWlyZWRfYnkgPSBbXQorICAgICAgICAgICAgICAgICAgICBzZXRh dHRyKHByb3ZpZGVyX3BhY2thZ2UsIHdoaWNoICsgJ19yZXF1aXJlZF9ieScsIHJlcXVpcmVkX2J5 KQorICAgICAgICAgICAgICAgIHJlcXVpcmVkX2J5LmFwcGVuZCgobnZyX3RvX25hbWUocGFja2Fn ZVsncnBtJ10pLCByZXEpKQorICAgIGVsc2U6CisgICAgICAgIGZvciBwYWNrYWdlIGluIHBrZ3M6 CisgICAgICAgICAgICBhZGRfcGFja2FnZShwYWNrYWdlLCB3aGljaCwgbGV2ZWw9Miwgb25seV9p Zl9leGlzdHM9b25seV9pZl9leGlzdHMpCisKKyAgICBkb25lKCkKKworZGVmIGFkZF9wYWNrYWdl X2ZpbGVzKGZpbGVuYW1lLCB3aGljaCk6CisgICAgd2l0aCBvcGVuKGZpbGVuYW1lKSBhcyBmOgor ICAgICAgICBmb3IgbGluZSBpbiBmOgorICAgICAgICAgICAgZiwgcCA9IGxpbmUuc3RyaXAoKS5z cGxpdCgpCisgICAgICAgICAgICBmID0gZls6LTFdICMgc3RyaXAgdHJhaWxpbmcgOgorICAgICAg ICAgICAgcGtnID0gcGFja2FnZXNbcF0KKyAgICAgICAgICAgIG9sZCA9IGdldGF0dHIocGtnLCB3 aGljaCArICdfZmlsZXMnKQorICAgICAgICAgICAgaWYgb2xkIGlzIG5vdCBOb25lOgorICAgICAg ICAgICAgICAgIG9sZC5hcHBlbmQoZikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgc2V0YXR0cihwa2csIHdoaWNoICsgJ19maWxlcycsIFtmXSkKKworYWRkX3BhY2thZ2VzKCdv dXQvZnJlZWRlc2t0b3AtUGxhdGZvcm0ucGFja2FnZXMnLCAnZnJlZWRlc2t0b3BfcGxhdGZvcm0n LCByZXNvbHZlX2RlcHM9VHJ1ZSkKK2FkZF9wYWNrYWdlcygnb3V0L2ZyZWVkZXNrdG9wLVNkay5w YWNrYWdlcycsICdmcmVlZGVza3RvcF9zZGsnLCByZXNvbHZlX2RlcHM9VHJ1ZSkKK2FkZF9wYWNr YWdlcygnb3V0L2dub21lLVBsYXRmb3JtLnBhY2thZ2VzJywgJ2dub21lX3BsYXRmb3JtJywgcmVz b2x2ZV9kZXBzPVRydWUpCithZGRfcGFja2FnZXMoJ291dC9nbm9tZS1TZGsucGFja2FnZXMnLCAn Z25vbWVfc2RrJywgcmVzb2x2ZV9kZXBzPVRydWUpCithZGRfcGFja2FnZXMoJ2RhdGEvZjI3LWxp dmUucGFja2FnZXMnLCAnbGl2ZScsIG9ubHlfaWZfZXhpc3RzPVRydWUpCithZGRfcGFja2FnZXMo J2RhdGEvZjI2LWZsYXRwYWstcnVudGltZS5wYWNrYWdlcycsICdyZjI2Jywgb25seV9pZl9leGlz dHM9VHJ1ZSkKKworYWRkX3BhY2thZ2VfZmlsZXMoJ291dC9mcmVlZGVza3RvcC1QbGF0Zm9ybS5t YXRjaGVkJywgJ2ZyZWVkZXNrdG9wX3BsYXRmb3JtJykKK2FkZF9wYWNrYWdlX2ZpbGVzKCdvdXQv ZnJlZWRlc2t0b3AtU2RrLm1hdGNoZWQnLCAnZnJlZWRlc2t0b3Bfc2RrJykKK2FkZF9wYWNrYWdl X2ZpbGVzKCdvdXQvZ25vbWUtUGxhdGZvcm0ubWF0Y2hlZCcsICdnbm9tZV9wbGF0Zm9ybScpCith ZGRfcGFja2FnZV9maWxlcygnb3V0L2dub21lLVNkay5tYXRjaGVkJywgJ2dub21lX3NkaycpCisK K3NvdXJjZV9wYWNrYWdlcyA9IHt9Citmb3IgcGFja2FnZSBpbiBwYWNrYWdlcy52YWx1ZXMoKToK KyAgICBzb3VyY2VfcGFja2FnZSA9IHNvdXJjZV9wYWNrYWdlcy5nZXQocGFja2FnZS5zb3VyY2Vf cGFja2FnZSwgTm9uZSkKKyAgICBpZiBzb3VyY2VfcGFja2FnZSBpcyBOb25lOgorICAgICAgICBz b3VyY2VfcGFja2FnZSA9IFNvdXJjZVBhY2thZ2UocGFja2FnZS5zb3VyY2VfcGFja2FnZSkKKyAg ICAgICAgc291cmNlX3BhY2thZ2VzW3NvdXJjZV9wYWNrYWdlLm5hbWVdID0gc291cmNlX3BhY2th Z2UKKyAgICBzb3VyY2VfcGFja2FnZS5wYWNrYWdlcy5hcHBlbmQocGFja2FnZSkKKworbGV0dGVy c19tYXAgPSBkaWN0KCkKK2ZvciBrLCB2IGluIHNvdXJjZV9wYWNrYWdlcy5pdGVtcygpOgorICAg IHYucGFja2FnZXMuc29ydChrZXk9bGFtYmRhIHA6IGxvY2FsZS5zdHJ4ZnJtKHAubmFtZSkpCisg ICAgbCA9IHYubmFtZVswXS51cHBlcigpCisgICAgbGV0dGVyID0gbGV0dGVyc19tYXAuZ2V0KGws IE5vbmUpCisgICAgaWYgbGV0dGVyIGlzIE5vbmU6CisgICAgICAgIGxldHRlciA9IExldHRlcihs KQorICAgICAgICBsZXR0ZXJzX21hcFtsXSA9IGxldHRlcgorICAgIGxldHRlci5wYWNrYWdlcy5h cHBlbmQodikKKworbGV0dGVycyA9IFtdCitmb3IgayBpbiBzb3J0ZWQobGV0dGVyc19tYXAua2V5 cygpKToKKyAgICBsZXR0ZXIgPSBsZXR0ZXJzX21hcFtrXQorICAgIGxldHRlci5wYWNrYWdlcy5z b3J0KGtleT1sYW1iZGEgcDogbG9jYWxlLnN0cnhmcm0ocC5uYW1lKSkKKyAgICBsZXR0ZXJzLmFw cGVuZChsZXR0ZXIpCisKK3N0YXJ0KCJMb2FkaW5nIHBhY2thZ2UgdG8gbW9kdWxlIG1hcCIpCitw YWNrYWdlX3RvX21vZHVsZSA9IGRpY3QoKQorCitvdXRwdXQgPSBmZWRtb2Rfb3V0cHV0KFsnbGlz dC1ycG1zJywgJy0tbGlzdC1tb2R1bGVzJ10pCitmb3IgbCBpbiBvdXRwdXQuc3BsaXQoJ1xuJyk6 CisgICAgZmllbGRzID0gbC5zdHJpcCgpLnNwbGl0KCkKKyAgICBpZiBsZW4oZmllbGRzKSAhPSAy OgorICAgICAgICBjb250aW51ZQorICAgIHBhY2thZ2VfdG9fbW9kdWxlW2ZpZWxkc1swXV0gPSBm aWVsZHNbMV1bMTotMV0KK2RvbmUoKQorCitzdGFydCgiTG9hZGluZyBwYWNrYWdlIG5vdGVzIikK K2NvbW1lbnRfcmUgPSByZS5jb21waWxlKHInXHMqIy4qJykKK2ZsYWdfcmUgPSByZS5jb21waWxl KHInW0EtWj9dKyQnKQorcGFja2FnZV9yZSA9IHJlLmNvbXBpbGUocidcUysnKQorCit3aXRoIG9w ZW4oInBhY2thZ2Utbm90ZXMudHh0IikgYXMgZjoKKyAgICBmb3IgbGluZSBpbiBmOgorICAgICAg ICBsaW5lID0gY29tbWVudF9yZS5zdWIoJycsIGxpbmUpCisgICAgICAgIGxpbmUgPSBsaW5lLnN0 cmlwKCkKKyAgICAgICAgaWYgbGluZSA9PSAnJzoKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAg ICAgIHBhcnRzID0gbGluZS5zcGxpdCgiOiIsIDIpCisgICAgICAgIG5hbWUgPSBwYXJ0c1swXS5z dHJpcCgpCisgICAgICAgIGlmIG5vdCByZS5tYXRjaChwYWNrYWdlX3JlLCBuYW1lKToKKyAgICAg ICAgICAgIHdhcm4oIkNhbid0IHBhcnNlIHBhY2thZ2Ugbm90ZToge30iLmZvcm1hdChsaW5lKSkK KyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIGxlbihwYXJ0cykgPT0gMToKKyAgICAg ICAgICAgIGZsYWcgPSBub3RlID0gTm9uZQorICAgICAgICBlbGlmIGxlbihwYXJ0cykgPT0gMjoK KyAgICAgICAgICAgIHggPSBwYXJ0c1sxXS5zdHJpcCgpCisgICAgICAgICAgICBpZiBmbGFnX3Jl Lm1hdGNoKHgpOgorICAgICAgICAgICAgICAgIGZsYWcgPSB4CisgICAgICAgICAgICAgICAgbm90 ZSA9IE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbm90ZSA9IHgKKyAg ICAgICAgICAgICAgICBmbGFnID0gTm9uZQorICAgICAgICBlbGlmIGxlbihwYXJ0cykgPT0gMzoK KyAgICAgICAgICAgIHggPSBwYXJ0c1sxXS5zdHJpcCgpCisgICAgICAgICAgICBpZiBmbGFnX3Jl Lm1hdGNoKHgpOgorICAgICAgICAgICAgICAgIGZsYWcgPSB4CisgICAgICAgICAgICAgICAgbm90 ZSA9IHBhcnRzWzJdLnN0cmlwKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg ZmxhZyA9IE5vbmUKKyAgICAgICAgICAgICAgICBub3RlID0gcGFydHNbMV0gKyAnOicgKyBwYXJ0 c1syXQorCisgICAgICAgIHBrZyA9IHBhY2thZ2VzLmdldChuYW1lLCBOb25lKQorICAgICAgICBp ZiBwa2cgaXMgTm9uZToKKyAgICAgICAgICAgIHdhcm4oIlBhY2thZ2Ugbm90ZSBmb3IgbWlzc2lu ZyBwYWNrYWdlOiB7fSIuZm9ybWF0KG5hbWUpKQorICAgICAgICAgICAgY29udGludWUKKworICAg ICAgICBpZiBmbGFnIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGtnLmZsYWcgPSBmbGFnCisg ICAgICAgIGlmIG5vdGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBwa2cuX25vdGUgPSBub3Rl Citkb25lKCkKKworIworIyBHZXQgc3VtbWFyeSBpbmZvcm1hdGlvbiBmb3IgdW5tYXRjaGVkIGZp bGVzCisjCisKK2RlZiBjb3VudF9saW5lcyhmbmFtZSk6CisgICAgd2l0aCBvcGVuKGZuYW1lKSBh cyBmOgorICAgICAgICByZXR1cm4gbGVuKGxpc3QoZikpCisKK3VubWF0Y2hlZF9jb3VudHMgPSB7 CisgICAgJ2ZyZWVkZXNrdG9wX3BsYXRmb3JtJzogY291bnRfbGluZXMoJ291dC9mcmVlZGVza3Rv cC1QbGF0Zm9ybS51bm1hdGNoZWQnKSwKKyAgICAnZ25vbWVfcGxhdGZvcm0nOiBjb3VudF9saW5l cygnb3V0L2dub21lLVBsYXRmb3JtLnVubWF0Y2hlZCcpLAorICAgICdmcmVlZGVza3RvcF9zZGsn OiBjb3VudF9saW5lcygnb3V0L2ZyZWVkZXNrdG9wLVNkay51bm1hdGNoZWQnKSwKKyAgICAnZ25v bWVfc2RrJzogY291bnRfbGluZXMoJ291dC9nbm9tZS1TZGsudW5tYXRjaGVkJyksCit9CisKKyMK KyMgR2VuZXJhdGUgdGhlIHByb2ZpbGVzCisjCitkZWYgZ2VuZXJhdGVfcHJvZmlsZShvdXRmaWxl LCB3aGljaCk6CisgICAgd2l0aCBvcGVuKG91dGZpbGUsICd3JykgYXMgZjoKKyAgICAgICAgZm9y IGxldHRlciBpbiBsZXR0ZXJzOgorICAgICAgICAgICAgZm9yIHNyYyBpbiBsZXR0ZXIucGFja2Fn ZXM6CisgICAgICAgICAgICAgICAgZm9yIHBrZyBpbiBzcmMucGFja2FnZXM6CisgICAgICAgICAg ICAgICAgICAgIGlmIGdldGF0dHIocGtnLCB3aGljaCkgIT0gMDoKKyAgICAgICAgICAgICAgICAg ICAgICAgIHByaW50KHBrZy5uYW1lLCBmaWxlPWYpCisKK2dlbmVyYXRlX3Byb2ZpbGUoJ291dC9y dW50aW1lLWJhc2UucHJvZmlsZScsICdmcmVlZGVza3RvcF9wbGF0Zm9ybScpCitnZW5lcmF0ZV9w cm9maWxlKCdvdXQvc2RrLWJhc2UucHJvZmlsZScsICdmcmVlZGVza3RvcF9zZGsnKQorZ2VuZXJh dGVfcHJvZmlsZSgnb3V0L3J1bnRpbWUucHJvZmlsZScsICdnbm9tZV9wbGF0Zm9ybScpCitnZW5l cmF0ZV9wcm9maWxlKCdvdXQvc2RrLnByb2ZpbGUnLCAnZ25vbWVfc2RrJykKKworIworIyBHZW5l cmF0ZSB0aGUgcmVwb3J0CisjCisKK2VudiA9IEVudmlyb25tZW50KAorICAgIGxvYWRlcj1GaWxl U3lzdGVtTG9hZGVyKCcuJyksCisgICAgYXV0b2VzY2FwZT1zZWxlY3RfYXV0b2VzY2FwZShbJ2h0 bWwnLCAneG1sJ10pLAorICAgIHRyaW1fYmxvY2tzPVRydWUsCisgICAgbHN0cmlwX2Jsb2Nrcz1U cnVlCispCisKK3RlbXBsYXRlID0gZW52LmdldF90ZW1wbGF0ZSgncmVwb3J0LXRlbXBsYXRlLmh0 bWwnKQorCit3aXRoIG9wZW4oJ3JlcG9ydC5odG1sJywgJ3cnKSBhcyBmOgorICAgIGYud3JpdGUo dGVtcGxhdGUucmVuZGVyKGxldHRlcnM9bGV0dGVycywgdW5tYXRjaGVkPXVubWF0Y2hlZF9jb3Vu dHMsIHBhY2thZ2VfdG9fbW9kdWxlPXBhY2thZ2VfdG9fbW9kdWxlKSkKCmRpZmYgLS1naXQgYS90 b29scy9saXN0LWZpbGVzLnB5IGIvdG9vbHMvbGlzdC1maWxlcy5weQpuZXcgZmlsZSBtb2RlIDEw MDc1NQppbmRleCAwMDAwMDAwLi4zZTk1MDU4Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvbGlz dC1maWxlcy5weQpAQCAtMCwwICsxLDQ1IEBACisjIS91c3IvYmluL3B5dGhvbjMKKworaW1wb3J0 IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKKworc2RrID0gbGVuKHN5cy5hcmd2KSA+IDEgYW5k IHN5cy5hcmd2WzFdID09ICctLXNkaycKKworZGVmIG91dHB1dF9kaXIoZCk6CisgICAgZm9yIGYg aW4gc29ydGVkKG9zLmxpc3RkaXIoZCkpOgorICAgICAgICBmdWxsID0gb3MucGF0aC5qb2luKGQs IGYpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKGZ1bGwpOgorICAgICAgICAgICAgcHJp bnQob3MucGF0aC5qb2luKGQsIGYpKQorCitkZWYgb3V0cHV0X2Rpcl9yZWN1cnNlKGQpOgorICAg IGZvciBkaXJOYW1lLCBzdWJkaXJzLCBmaWxlcyBpbiBvcy53YWxrKGQpOgorICAgICAgICAgICAg Zm9yIGYgaW4gc29ydGVkKGZpbGVzKToKKyAgICAgICAgICAgICAgcHJpbnQob3MucGF0aC5qb2lu KGRpck5hbWUsIGYpKQorCitvdXRwdXRfZGlyKCcvdXNyL2JpbicpCisKK2ZvciBmIGluIG9zLmxp c3RkaXIoJy91c3IvbGliJyk6CisgICAgZnVsbCA9IG9zLnBhdGguam9pbignL3Vzci9saWInLCBm KQorICAgIGlmIChyZS5tYXRjaChyJ14uKlwuc29cLlxkKyQnLCBmKSBpcyBub3QgTm9uZSBvcgor ICAgICAgICByZS5tYXRjaChyJ14uKlwuc28kJywgZikgaXMgbm90IE5vbmUgYW5kIG5vdCBvcy5w YXRoLmlzbGluayhmdWxsKSk6CisgICAgICAgIHByaW50KGZ1bGwpCisKK291dHB1dF9kaXJfcmVj dXJzZSgnL3Vzci9zaGFyZS9mb250cycpCisKK2lmIHNkazoKKyAgICBvdXRwdXRfZGlyX3JlY3Vy c2UoJy91c3IvaW5jbHVkZScpCisgICAgb3V0cHV0X2RpcignL3Vzci9saWIvcGtnY29uZmlnJykK KyAgICBvdXRwdXRfZGlyKCcvdXNyL3NoYXJlL3BrZ2NvbmZpZycpCisKKyMgaW1wb3J0IHBrZ3V0 aWwKKyMgZm9yIGYgaW4gcGtndXRpbC5pdGVyX21vZHVsZXMoKToKKyMgICAgIHRyeToKKyMgICAg ICAgICBwYXRoID0gZlswXS5wYXRoCisjICAgICAgICAgaWYgcGF0aC5maW5kKCdzaXRlLXBhY2th Z2VzJykgPCAwOgorIyAgICAgICAgICAgICBjb250aW51ZQorIyAgICAgZXhjZXB0IEF0dHJpYnV0 ZUVycm9yOgorIyAgICAgICAgIGNvbnRpbnVlCisjICAgICBpZiBub3QoZlsxXS5zdGFydHN3aXRo KCdfJykpOgorIyAgICAgICAgIHByaW50KGYsICdweXRob24zZGlzdCh7fSknLmZvcm1hdChmWzFd KSkKKwoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Jlc29sdmUtZmlsZXMucHkgYi90b29scy9yZXNvbHZl LWZpbGVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlNTYzMWYKLS0t IC9kZXYvbnVsbAorKysgYi90b29scy9yZXNvbHZlLWZpbGVzLnB5CkBAIC0wLDAgKzEsNTMxIEBA CisjIS91c3IvYmluL3B5dGhvbjMKKworZnJvbSBmdW5jdG9vbHMgaW1wb3J0IGNtcF90b19rZXkK K2ltcG9ydCBnemlwCitpbXBvcnQgaGFzaGxpYgoraW1wb3J0IG9zCitpbXBvcnQgcGlja2xlCitp bXBvcnQgcmUKK2ltcG9ydCBycG0KK2ltcG9ydCBzeXMKK2ltcG9ydCB4bWwuZXRyZWUuRWxlbWVu dFRyZWUgYXMgRVQKK2ltcG9ydCB4bWwuc2F4CisKK1hER19DQUNIRV9IT01FID0gb3MuZW52aXJv bi5nZXQoIlhER19DQUNIRV9IT01FIikgb3Igb3MucGF0aC5leHBhbmR1c2VyKCJ+Ly5jYWNoZSIp CisKKyMgVGhpcyBuZWVkcyB0byBiZSBpbiBzeW5jIHdpdGggZmVkbW9kCitSRVBPUyA9IFsKKyAg ICAiZjI4LXBhY2thZ2VzIgorXQorCitpZ25vcmUgPSBzZXQoKQorcmVuYW1lID0gZGljdCgpCisK K2Jpbl9pZ25vcmUgPSBbCisgICAgIyBBIGJ1bmNoIG9mIGJpbmFyaWVzIGJ1aWx0IGFzIHBhcnQg b2YgbnNzLiBBIGZldyBvZiB0aGVzZSBhcmUKKyAgICAjIGluIC91c3IvbGliNjQvbnNzL3Vuc3Vw cG9ydGVkLXRvb2xzLyBhcyBwYXJ0IG9mIG5zcy10b29scywgdGhlIHJlc3QgYXJlIG5vdCBjb25z aWRlcmVkCisgICAgIyB3b3J0aCBpbnN0YWxsaW5nIGF0IGFsbCAodGVzdCB1dGlsaXRpZXMsIGV0 Yy4pCisgICAgJ2FkZGJ1aWx0aW4nLCAnYXRvYicsICdiYWRkYmRpcicsICdibHRlc3QnLCAnYnRv YScsICdjZXJ0Y2dpJywgJ2Noa3Rlc3QnLCAnY29uZmxpY3QnLAorICAgICdjcm1mdGVzdCcsICdk YnRlc3QnLCAnZGVyZHVtcCcsICdkZXJ0aW1ldGVzdCcsICdkaWdlc3QnLCAnZWNwZXJmJywgJ2Vu Y29kZWludHRlc3QnLAorICAgICdmaXBzdGVzdCcsICdodHRwc2VydicsICdsaXN0c3VpdGVzJywg J21ha2VwcWcnLCAnbWFuZ2xlJywgJ211bHRpbml0JywgJ25vbnNwcjEwJywKKyAgICAnb2NzcGNs bnQnLCAnb2NzcHJlc3AnLCAnb2lkY2FsYycsICdwN2NvbnRlbnQnLCAncDdlbnYnLCAncDdzaWdu JywgJ3A3dmVyaWZ5JywKKyAgICAncGsxMWdjbXRlc3QnLCAncGsxMW1vZGUnLCAncGsxc2lnbics ICdwa2l4LWVycmNvZGVzJywgJ3BwJywgJ3B3ZGVjcnlwdCcsICdyZW10ZXN0JywKKyAgICAncnNh cGVyZicsICdzZHJ0ZXN0JywgJ3NlY21vZHRlc3QnLCAnc2VsZnNlcnYnLCAnc2hsaWJzaWduJywg J3NpZ250b29sJywgJ3N0cnNjbG50JywKKyAgICAnc3lta2V5dXRpbCcsICd0c3RjbG50JywgJ3Zm eWNoYWluJywgJ3ZmeXNlcnYnLAorCisgICAgIyBTY3JpcHQgYWRkZWQgaW50byBuc3MgYnkgb3Bl bmVtYmVkZGVkCisgICAgJ3NpZ25saWJzLnNoJywKKworICAgICMgL3Vzci9zaGFyZS9kb2MvYXNw ZWxsL2FzcGVsbC1pbXBvcnQgaW4gRmVkb3JhCisgICAgJ2FzcGVsbC1pbXBvcnQnLAorCisgICAg IyBSZW1vdmVkIGluIHBlcmwtNS4yNworICAgICdjMnBoJywKKworICAgICMgUmVtb3ZlZCAtIGh0 dHBzOi8vbGlzdHMuZmVkb3JhaG9zdGVkLm9yZy9hcmNoaXZlcy9saXN0L2VsZnV0aWxzLWRldmVs QGxpc3RzLmZlZG9yYWhvc3RlZC5vcmcvdGhyZWFkLzIyTElJTVhJNkVER0NPSU82UUZTQlVPMktI RVhJR1NKLworICAgICdldS1sZCcsCisKKyAgICAjIGNvbXBhdGliaWxpdHkgcGVybCBzY3JpcHQg aW4gemVuaXR5IGZvciBzb21ldGhpbmcgcXVpdGUgb2xkLCBub3QgcGFja2FnZWQgaW4gZmVkb3Jh CisgICAgJ2dkaWFsb2cnLAorCisgICAgIyBBbiBvcGVuZW1iZWRkZWQgdGhpbmcKKyAgICAjICJU b29sIHRoYXQgaW5zdGFsbHMgdGhlIEdOVSBjb25maWcuZ3Vlc3MgLyBjb25maWcuc3ViIGludG8g YSBkaXJlY3RvcnkgdHJlZSIKKyAgICAnZ251LWNvbmZpZ2l6ZScsCisKKyAgICAjIEdQRyB0ZXN0 IHByb2dyYW0gKGh0dHBzOi8vZ2l0LmdudXBnLm9yZy9jZ2ktYmluL2dpdHdlYi5jZ2k/cD1nbnVw Zy5naXQ7YT10cmVlO2Y9dGVzdHMpCisgICAgJ2dwZ3NjbScsCisKKyAgICAjIEFuIGltcGxlbWVu dGF0aW9uIG9mIHRhciBmb3IgY3Jvc3MtcGxhdGZvcm0gY29tcGF0aWJpbGl0eSwgZGlzYWJsZWQg aW4gZ251cGcyLnNwZWMKKyAgICAnZ3BndGFyJywKKworICAgICMgUmVtb3ZlZCBmcm9tIGd0ay1k b2MKKyAgICAjIGh0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvZ3RrLWRvYy9jb21taXQvP2lk PTQ2ZGY0MzU0YWJlZDU3MjQ2OTdmZDVlMzk2MzBjNWJiYzY2MzdjYzQKKyAgICAnZ3RrZG9jLW1r dG1wbCcsCisKKyAgICAjIFZlcnNpb25lZCBweXRob24tMy41IGJpbmFyaWVzCisgICAgJ2lkbGUz LjUnLCAncHlkb2MzLjUnLCAncHl0aG9uMy41JywgJ3B5dGhvbjMuNS1jb25maWcnLCAncHl0aG9u My41bScsICAncHl0aG9uMy41bS1jb25maWcnLCAnMnRvMy0zLjUnLAorCisgICAgIyBpbnN0YWxs ZWQgaW4gb3BlbmVtYmVkZGVkIHdpdGggYSBjb3JldXRpbHMgc3VmZml4IGFsb25nIHdpdGggdGhl IG1vcmUgbm9ybWFsIHZlcnNpb24KKyAgICAna2lsbC5jb3JldXRpbHMnLCAndXB0aW1lLmNvcmV1 dGlscycsCisKKyAgICAjIG5ldHRsZSB1dGlsaXRpZXMgbm90IGN1cnJlbnRseSBwYWNrYWdlZCBp biBmZWRvcmEKKyAgICAjIChodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL25ldHRs ZS9jLzJlYzIwNGUyZGUxNzAwNmI1NjZjOWZmN2Q5MGVjNjVjYTE2ODBlZDU/YnJhbmNoPW1hc3Rl cikKKyAgICAnbmV0dGxlLWhhc2gnLCAnbmV0dGxlLWxmaWItc3RyZWFtJywgJ25ldHRsZS1wYmtk ZjInLCAncGtjczEtY29udicsICdzZXhwLWNvbnYnLAorCisgICAgIyBOb3QgYnVpbHQgYnkgZGVm YXVsdCBhcyBvZiB1dGlsLWxpbnV4LTIuMjkKKyAgICAnL3Vzci9iaW4vcGcnLAorCisgICAgIyBU aGVzZSBhcmUgaW5zdGFsbGVkIGFzIDxuYW1lPi02NCBpbiBGZWRvcmEsIHdlIGp1c3QgaWdub3Jl IHRoZW0gYmVjYXVzZSB0aGV5IHdpbGwgYmUKKyAgICAjIHB1bGxlZCBpbiBieSB0aGUgY29ycmVz cG9uZGluZyBsaWJyYXJ5CisgICAgJ2dkay1waXhidWYtcXVlcnktbG9hZGVycycsICdndGstcXVl cnktaW1tb2R1bGVzLTIuMCcsCisgICAgJ2dpby1xdWVyeW1vZHVsZXMnLCAnZ3RrLXF1ZXJ5LWlt bW9kdWxlcy0zLjAnLAorCisgICAgIyBSZW1vdmVkIGluIGtyYjUtMS4xMyAoaHR0cHM6Ly93ZWIu bWl0LmVkdS9rZXJiZXJvcy9rcmI1LTEuMTMvUkVBRE1FLTEuMTMuNS50eHQpCisgICAgJ2tyYjUt c2VuZC1wcicsCisKKyAgICAjIFJlbW92ZWQgaW4gdXRpbC1saW51eC0yLjMwJworICAgICd0YWls ZicsCisKKyAgICAjIE9wZW5FbWJlZGRlZCB1c2VzIERlYmlhbidzIGNhLWNlcnRpZmljYXRlcywg RmVkb3JhIGlzIGRpZmZlcmVudAorICAgICd1cGRhdGUtY2EtY2VydGlmaWNhdGVzJywKKworICAg ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyAgICAjIEluIHRoZSBmcmVlZGVza3RvcCBydW50aW1lIGZvciBz b21lIHJlYXNvbiwgZG9lc24ndCBzZWVtIHVzZWZ1bAorICAgICdic2RjYXQnLAorCisgICAgIyBT YW1lIGFzICdvcGVuc3NsIHJlaGFzaCcsIGJ1dCBhcyBhIHBlcmwgc2NyaXB0IChvcGVuc3NsLXBl cmwpCisgICAgJ2NfcmVoYXNoJywKKworICAgICMgRnJvbSBwdWxzZWF1ZGlvLCB3cmFwcGVyIHNj cmlwdCB0byBzdGFydCBhIHB1bHNlYXVkaW8gc2VydmVyIGFzIGlmIGl0IHdhcyBFU0QgKHB1bHNl YXVkaW8tZXNvdW5kLWNvbXBhdCkKKyAgICAnZXNkY29tcGF0JywKKworICAgICMgSnVzdCBuZWVk IHRoZSBsaWJyYXJ5IChnY2FiKQorICAgICdnY2FiJywKKworICAgICMgUHJvYmFibHkgbm90IHVz ZWZ1bCBpbiB0aGUgcnVudGltZSBvciB0aGUgU0RLIChnc3RyZWFtZXItcGx1Z2lucy1iYXNlLXRv b2xzKQorICAgICdnc3QtZGV2aWNlLW1vbml0b3ItMS4wJywgJ2dzdC1kaXNjb3ZlcmVyLTEuMCcs ICdnc3QtcGxheS0xLjAnLAorCisgICAgIyBQeXRob24gdXRpbGl0aWVzIChweXRob24yLXRvb2xz KQorICAgICdpZGxlJywgJ3NtdHBkLnB5JywKKworICAgICMgUHl0aG9uMyB1dGlsaXRpZXMgKHB5 dGhvbjMtdG9vbHMpCisgICAgJ2lkbGUzJywgJzJ0bzMnLAorCisgICAgIyBBIGJpbmFyeSBmcm9t IGN1cHMsIHdlIGp1c3QgbmVlZCB0aGUgbGlicmFyaWVzIChjdXBzLWxpYnMpCisgICAgJ2lwcHRv b2wnLAorCisgICAgIyBNaW5pbWFsIHByb2ZpbGVyIChnbGliYy11dGlscykKKyAgICAncGNwcm9m aWxlZHVtcCcsCisKKyAgICAjIChwY3JlLXRvb2xzKQorICAgICdwY3JlMmdyZXAnLCAncGNyZTJ0 ZXN0JywKKworICAgICMgUmFuZG9tIHRlc3QgcHJvZ3JhbSBmcm9tIGxpYnByb3h5IChsaWJwcm94 eS1iaW4pCisgICAgJ3Byb3h5JywKKworICAgICMgVG9vbHMgZnJvbSBsaWJ2cHggKGxpYnZweC11 dGlscykKKyAgICAndnB4ZGVjJywgJ3ZweGVuYycsCitdCitpZ25vcmUudXBkYXRlKCcvdXNyL2Jp bi8nICsgeCBmb3IgeCBpbiBiaW5faWdub3JlKQorCitiaW5fcmVuYW1lID0geworICAgICMgbGNt czIgY29tcGlsZWQgd2l0aCAtLXByb2dyYW0tc3VmZml4PTIgaW4gRmVkb3JhLCBldmVuIHRob3Vn aCB0aGVyZSBhcmUgbm8gYWN0dWFsCisgICAgIyBjb25mbGljdHMgYmV0d2VlbiBsY21zIGFuZCBs Y21zMiAtIGpwZWdpY2Mgd2FzIHJlbmFtZWQgdG8ganBnaWNjLCBldGMuCisgICAgJ2pwZ2ljYyc6 ICdqcGdpY2MyJywKKyAgICAnbGlua2ljYyc6ICdsaW5raWNjMicsCisgICAgJ3BzaWNjJzogJ3Bz aWNjMicsCisgICAgJ3RpZmljYyc6ICd0aWZpY2MyJywKKyAgICAndHJhbnNpY2MnOiAndHJhbnNp Y2MyJywKK30KK3JlbmFtZS51cGRhdGUoeyAnL3Vzci9iaW4vJyArIGs6ICcvdXNyL2Jpbi8nICsg diBmb3IgaywgdiBpbiBiaW5fcmVuYW1lLml0ZW1zKCkgfSkKKworbGliX2lnbm9yZSA9IFsKKyAg ICAjIFN5bWxpbmsgY3JlYXRlZCBpbiBmcmVlZGVza3RvcC5vcmcgZmxhdHBhayBydW50aW1lLCBu b3Qgc3RhbmRhcmQKKyAgICAnbGliRUdMX2luZGlyZWN0LnNvLjAnLAorCisgICAgIyBSZW1vdmVk IGluIGdwZ21lLTEuOS4wCisgICAgJ2xpYmdwZ21lLXB0aHJlYWQuc28uMTEnLAorCisgICAgIyBO b3QgZW5hYmxlZCBpbiBmZWRvcmEgKGNvbnNpZGVyIGZpeGluZykKKyAgICAnbGliaGFyZmJ1enot Z29iamVjdC5zby4wJywKKworICAgICMgUGFydCBvZiBnbGliYworICAgICdsaWJzc3Auc28uMCcs CitdCitpZ25vcmUudXBkYXRlKCcvdXNyL2xpYjY0LycgKyB4IGZvciB4IGluIGxpYl9pZ25vcmUp CisKK2ZvbnRzX2lnbm9yZSA9IHsKKyAgICAjIEFkZGVkIGluIDIuMzYKKyAgICAnZGVqYXZ1L0Rl amFWdU1hdGhUZVhHeXJlLnR0ZicsCit9CitpZ25vcmUudXBkYXRlKCcvdXNyL3NoYXJlL2ZvbnRz LycgKyB4IGZvciB4IGluIGZvbnRzX2lnbm9yZSkKKworbGliX3JlbmFtZSA9IHsKKyAgICAjIE5l d2VyIGluIEZlZG9yYQorICAgICdsaWJodW5zcGVsbC0xLjMuc28uMCc6ICdsaWJodW5zcGVsbC0x LjUuc28uMCcsCisgICAgJ2xpYndlYnAuc28uNic6ICdsaWJ3ZWJwLnNvLjcnLAorICAgICdsaWJ3 ZWJwbXV4LnNvLjInOiAnbGlid2VicG11eC5zby4zJywKKyAgICAnbGlicGNyZTItcG9zaXguc28u MSc6ICdsaWJwY3JlMi1wb3NpeC5zby4yJywKKyAgICAnbGlidnB4LnNvLjMnOiAnbGlidnB4LnNv LjQnLAorICAgICdsaWJrYWRtNWNsbnRfbWl0LnNvLjknOiAnbGlia2FkbTVjbG50X21pdC5zby4x MScsCisgICAgJ2xpYmthZG01c3J2X21pdC5zby45JzogJ2xpYmthZG01c3J2X21pdC5zby4xMScs CisKKyAgICAjIE5ld2VyIGluIEZsYXRwYWsgcnVudGltZQorICAgICdsaWJwcm9jcHMuc28uNic6 ICdsaWJwcm9jcHMuc28uNCcsICMgcHJvY3BzLTMuMTAgdnMuIHByb2Nwcy0zLjEyCisgICAgJ2xp YmdpZi5zby43JzogJ2xpYmdpZi5zby40JywgIyBnaWZsaWIgNCB2cyBnaWZsaWItNSAtIGh0dHBz Oi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9ODIyODQ0CisKKyAgICAjIEZl ZG9yYSBhcmNoLWhhbmRsaW5nCisgICAgJ2xkLWxpbnV4LnNvLjInOiAnbGQtbGludXgteDg2LTY0 LnNvLjInLAorfQorcmVuYW1lLnVwZGF0ZSh7ICcvdXNyL2xpYjY0LycgKyBrOiAnL3Vzci9saWI2 NC8nICsgdiBmb3IgaywgdiBpbiBsaWJfcmVuYW1lLml0ZW1zKCkgfSkKKworaW5jbHVkZV9pZ25v cmUgPSB7CisgICAgIyBodHRwczovL2dpdC5nbm9tZS5vcmcvYnJvd3NlL2F0LXNwaTItY29yZS9j b21taXQvP2lkPTFlYjIyM2JiNDg0NjRkNzA3MjkwZWY1NDA1ODFlOTc2M2IwY2VlZTgKKyAgICAn YXQtc3BpLTIuMC9hdHNwaS9hdHNwaS1nbWFpbi5jJywKKworICAgICMgUmVtb3ZlZCBpbiA3LjU1 IGh0dHBzOi8vZ2l0aHViLmNvbS9jdXJsL2N1cmwvY29tbWl0LzczYTJmY2VhMGI0YWRlYTZiYTM0 MmNkN2VkMTE0OTc4MmMyMTRhZTMKKyAgICAnY3VybC9jdXJsYnVpbGQtNjQuaCcsICdjdXJsL2N1 cmxidWlsZC5oJywgJ2N1cmwvY3VybHJ1bGVzLmgnLAorCisgICAgIyBOb3QgZW5hYmxlZCBvbiBG ZWRvcmEKKyAgICAnaGFyZmJ1enovaGItZ29iamVjdC1lbnVtcy5oJywKKyAgICAnaGFyZmJ1enov aGItZ29iamVjdC1zdHJ1Y3RzLmgnLAorICAgICdoYXJmYnV6ei9oYi1nb2JqZWN0LmgnLAorCisg ICAgIyBodHRwczovL2dpdGh1Yi5jb20vaHVuc3BlbGwvaHVuc3BlbGwvY29tbWl0Lzk5Njc1ZTc5 MWQxMjNjYmUxYmU5MTRiMWE0OWRkODMwNjIxMzQzMDEKKyAgICAnaHVuc3BlbGwvYWZmZW50cnku aHh4JywgJ2h1bnNwZWxsL2FmZml4bWdyLmh4eCcsICdodW5zcGVsbC9iYXNlYWZmaXguaHh4Jywg J2h1bnNwZWxsL2RpY3RtZ3IuaHh4JywKKyAgICAnaHVuc3BlbGwvZmlsZW1nci5oeHgnLCdodW5z cGVsbC9oYXNobWdyLmh4eCcsJ2h1bnNwZWxsL2h1bnppcC5oeHgnLCdodW5zcGVsbC9sYW5nbnVt Lmh4eCcsCisgICAgJ2h1bnNwZWxsL3Bob25ldC5oeHgnLCdodW5zcGVsbC9yZXBsaXN0Lmh4eCcs J2h1bnNwZWxsL3N1Z2dlc3RtZ3IuaHh4JywKKworICAgICMgUmVtb3ZlZCBpbiBvcGVuc3NsLTEu MQorICAgICdvcGVuc3NsL2Rlc19vbGQuaCcsICdvcGVuc3NsL2Rzby5oJywgJ29wZW5zc2wva3Ji NV9hc24uaCcsICdvcGVuc3NsL2tzc2wuaCcsICdvcGVuc3NsL3BxdWV1ZS5oJywKKyAgICAnb3Bl bnNzbC9zc2wyMy5oJywgJ29wZW5zc2wvdWlfY29tcGF0LmgnLAorfQoraWdub3JlLnVwZGF0ZSgn L3Vzci9pbmNsdWRlLycgKyB4IGZvciB4IGluIGluY2x1ZGVfaWdub3JlKQorCitpbmNsdWRlX3Jl bmFtZSA9IHsKKyAgICAnYXNzdWFuLmgnOiAnbGliYXNzdWFuMi9hc3N1YW4uaCcsCisgICAgJ25z czMvbnNzY2suYXBpJzogJ25zczMvdGVtcGxhdGVzL25zc2NrLmFwaScsCit9CityZW5hbWUudXBk YXRlKHsgJy91c3IvaW5jbHVkZS8nICsgazogJy91c3IvaW5jbHVkZS8nICsgdiBmb3IgaywgdiBp biBpbmNsdWRlX3JlbmFtZS5pdGVtcygpIH0pCisKK25zcHJfaW5jbHVkZSA9IFsKKyAgICAnbnNw ci5oJywgJ3BsYXJlbmEuaCcsICdwbGFyZW5hcy5oJywgJ3BsYmFzZTY0LmgnLCAncGxlcnJvci5o JywgJ3BsZ2V0b3B0LmgnLCAncGxoYXNoLmgnLAorICAgICdwbHN0ci5oJywgJ3ByYXRvbS5oJywg J3ByYml0LmgnLCAncHJjbGlzdC5oJywgJ3ByY21vbi5oJywgJ3ByY291bnRyLmgnLCAncHJjcHVj ZmcuaCcsCisgICAgJ3ByY3Zhci5oJywgJ3ByZHRvYS5oJywgJ3ByZW52LmgnLCAncHJlcnIuaCcs ICdwcmVycm9yLmgnLCAncHJpbmV0LmgnLCAncHJpbml0LmgnLAorICAgICdwcmlucnZhbC5oJywg J3ByaW8uaCcsICdwcmlwY3NlbS5oJywgJ3ByaXZhdGUvcHByaW8uaCcsICdwcml2YXRlL3BwcnRo cmVkLmgnLCAncHJpdmF0ZS9wcnByaXYuaCcsCisgICAgJ3BybGluay5oJywgJ3BybG9jay5oJywg J3BybG9nLmgnLCAncHJsb25nLmgnLCAncHJtZW0uaCcsICdwcm1vbi5oJywgJ3BybXdhaXQuaCcs ICdwcm5ldGRiLmgnLAorICAgICdwcm9sb2NrLmgnLCAncHJwZGNlLmgnLCAncHJwcmYuaCcsICdw cnByb2Nlcy5oJywgJ3Bycm5nLmgnLCAncHJyd2xvY2suaCcsICdwcnNobS5oJywgJ3Byc2htYS5o JywKKyAgICAncHJzeXN0ZW0uaCcsICdwcnRocmVhZC5oJywgJ3BydGltZS5oJywgJ3BydHBvb2wu aCcsICdwcnRyYWNlLmgnLCAncHJ0eXBlcy5oJywgJ3BydnJzaW9uLmgnLAorICAgICdwcndpbjE2 LmgnLCAnc3Ryb3B0cy5oJywgJ29ic29sZXRlL3ByYWxhcm0uaCcsICdvYnNvbGV0ZS9wcm9ic2xl dC5oJywgJ29ic29sZXRlL3Byb3R5cGVzLmgnLCAnb2Jzb2xldGUvcHJzZW0uaCcKK10KK3JlbmFt ZS51cGRhdGUoeyAnL3Vzci9pbmNsdWRlLycgKyB4OiAnL3Vzci9pbmNsdWRlL25zcHI0LycgKyB4 IGZvciB4IGluIG5zcHJfaW5jbHVkZSB9KQorCitwY19pZ25vcmUgPSB7CisgICAgIyBOb3QgZW5h YmxlZCBvbiBGZWRvcmEKKyAgICAnaGFyZmJ1enotZ29iamVjdC5wYycsCisKKyAgICAjIGh0dHBz Oi8vZ2l0aHViLmNvbS9vc3Ryb3Byb2plY3Qvb3N0cm8tb3MvYmxvYi9tYXN0ZXIvbWV0YS9yZWNp cGVzLXN1cHBvcnQvbGliYXNzdWFuL2xpYmFzc3Vhbi9saWJhc3N1YW4tYWRkLXBrZ2NvbmZpZy1z dXBwb3J0LnBhdGNoCisgICAgJ2xpYmFzc3Vhbi5wYycsCisKKyAgICAjIGh0dHA6Ly9jZ2l0Lm9w ZW5lbWJlZGRlZC5vcmcvb3BlbmVtYmVkZGVkLWNvcmUvdHJlZS9tZXRhL3JlY2lwZXMtc3VwcG9y dC9saWJncGctZXJyb3IvbGliZ3BnLWVycm9yL3BrZ2NvbmZpZy5wYXRjaAorICAgICdncGctZXJy b3IucGMnLAorCisgICAgIyBodHRwOi8vY2dpdC5vcGVuZW1iZWRkZWQub3JnL29wZW5lbWJlZGRl ZC1jb3JlL3RyZWUvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGliZ2NyeXB0L2ZpbGVzLzAwMDEtQWRk LWFuZC11c2UtcGtnLWNvbmZpZy1mb3ItbGliZ2NyeXB0LWluc3RlYWQtb2YtY29uZi5wYXRjaAor ICAgICdsaWJnY3J5cHQucGMnLAorfQoraWdub3JlLnVwZGF0ZSgnL3Vzci9saWI2NC9wa2djb25m aWcvJyArIHggZm9yIHggaW4gcGNfaWdub3JlKQorCitwY19yZW5hbWUgPSB7CisgICAgJ3B5dGhv bi0zLjUucGMnOiAncHl0aG9uLTMuNi5wYycsCisgICAgJ3B5dGhvbi0zLjVtLnBjJzogJ3B5dGhv bi0zLjZtLnBjJywKK30KK3JlbmFtZS51cGRhdGUoeyAnL3Vzci9saWI2NC9wa2djb25maWcvJyAr IGs6ICcvdXNyL2xpYjY0L3BrZ2NvbmZpZy8nICsgdiBmb3IgaywgdiBpbiBwY19yZW5hbWUuaXRl bXMoKSB9KQorcmVuYW1lLnVwZGF0ZSh7ICcvdXNyL3NoYXJlL3BrZ2NvbmZpZy8nICsgazogJy91 c3Ivc2hhcmUvcGtnY29uZmlnLycgKyB2IGZvciBrLCB2IGluIHBjX3JlbmFtZS5pdGVtcygpIH0p CisKK2lnbm9yZV9wYXR0ZXJucyA9IFsKKyAgICAjIEZsYXRwYWsgcnVudGltZSBoYXMgYSB2ZXJz aW9uZWQgZ2F3ay00LjEuMworICAgIHInL3Vzci9iaW4vZ2F3ay0uKicsCisKKyAgICAjIEFyY2hp dGVjdHVyZSBzcGVjaWZpYyBhbGlhc2VzIGZvciBnY2MsIGJpbnV0aWxzLCBldGMKKyAgICByJ14v dXNyL2Jpbi94ODZfNjQtdW5rbm93bi1saW51eC0uKicsCisKKyAgICAjIEZyb20gTlNQUiwgaW50 ZW50aW9uYWxseSBub3QgaW5zdGFsbGVkIG9uIEZlZG9yYQorICAgIHInL3Vzci9pbmNsdWRlL21k Ly4qJywKKworICAgICMgLmluc3RhbGwgZmlsZXMgbGl0dGVyIHRoZSBpbmNsdWRlIGRpcmVjdG9y aWVzIG9mIG9wZW5lbWJlZGRlZAorICAgIHInLiovXC5pbnN0YWxsJCcKK10KK2lnbm9yZV9jb21w aWxlZCA9IFtyZS5jb21waWxlKHgpIGZvciB4IGluIGlnbm9yZV9wYXR0ZXJuc10KKworcmVuYW1l X3BhdHRlcm5zID0gWworICAgIChyJ14vdXNyL2luY2x1ZGUvY1wrXCsvNi4yLjAvKC4qKScsIHIn L3Vzci9pbmNsdWRlL2MrKy83L1wxJyksCisgICAgKHInXi91c3IvaW5jbHVkZS9jXCtcKy83L3g4 Nl82NC11bmtub3duLWxpbnV4LyguKiknLCByJy91c3IvaW5jbHVkZS9jKysvNy94ODZfNjQtcmVk aGF0LWxpbnV4L1wxJyksCisgICAgKHInXi91c3IvaW5jbHVkZS9weXRob24zLjVtLyguKiknLCBy Jy91c3IvaW5jbHVkZS9weXRob24zLjZtL1wxJyksCisgICAgKHInXi91c3IvbGliNjQvcGtnY29u ZmlnLyguKnByb3RvLnBjKScsIHInL3Vzci9zaGFyZS9wa2djb25maWcvXDEnKSwKKyAgICAocide L3Vzci9zaGFyZS9mb250cy9saWJlcmF0aW9uLWZvbnRzLyguKiknLCByJy91c3Ivc2hhcmUvZm9u dHMvbGliZXJhdGlvbi9cMScpLAorXQorcmVuYW1lX2NvbXBpbGVkID0gWyhyZS5jb21waWxlKGEp LCBiKSBmb3IgYSwgYiBpbiByZW5hbWVfcGF0dGVybnNdCisKK3BsYXRmb3JtX3BhY2thZ2VfaWdu b3JlX3BhdHRlcm5zID0gWworICAgICJeLiotZGV2ZWwkIiwKKyAgICAiXmxpYmFwcHN0cmVhbS1n bGliLWJ1aWxkZXIkIiwgIyBtYXkgbm90IG5lZWQgaW4gdGhlIHNkayBlaXRoZXIKKyAgICAiXmd0 ay1kb2MkIiwKKyAgICAiXmljdSQiLCAjIG1heSBub3QgbmVlZCBpbiB0aGUgc2RrIGVpdGhlcgor ICAgICdebGx2bSQnLAorICAgICdec3FsaXRlJCcsCitdCitwbGF0Zm9ybV9wYWNrYWdlX2lnbm9y ZV9jb21waWxlZCA9IFtyZS5jb21waWxlKHApIGZvciBwIGluIHBsYXRmb3JtX3BhY2thZ2VfaWdu b3JlX3BhdHRlcm5zXQorCisKKyMgV2UgbmVlZCB0byBsb29rIHVwIGEgbG90IG9mIGZpbGUgZGVw ZW5kZW5jaWVzLiBkbmYvbGlic29sdiBpcyBub3QgZmFzdCBhdCBkb2luZworIyB0aGlzIChhdCBs ZWFzdCB3aGVuIHdlIGxvb2sgdXAgZmlsZXMgb25lLWJ5LW9uZSkgc28gd2UgY3JlYXRlIGEgaGFz aCB0YWJsZSB0aGF0CisjIG1hcHMgZnJvbSAqYWxsKiBmaWxlcyBpbiB0aGUgZGlzdHJpYnV0aW9u IHRvIHRoZSAiYmVzdCIgcGFja2FnZSB0aGF0IHByb3ZpZGVzCisjIHRoZSBmaWxlLiBUbyBmdXJ0 aGVyIHNwZWVkIHRoaXMgdXAsIHdlIHBpY2tsZSB0aGUgcmVzdWx0IGFuZCBzdG9yZSBpdCwgYW5k IG9ubHkKKyMgcmVjcmVhdGUgaXQgd2hlbiB0aGUgRE5GIG1ldGFkYXRhIGNoYW5nZXMuIFdlIGd6 aXAgdGhlIHBpY2tsZSB0byBzYXZlIHNwYWNlCisjICg3ME0gaW5zdGVhZCBvZiA3MDBNKSwgdGhp cyBzbG93cyB0aGluZ3MgZG93biBieSBhYm91dCAyIHNlY29uZHMuCisjCisKK2RlZiBwYWNrYWdl X2NtcChwMSwgcDIpOgorICAgIG4xLCBlMSwgdjEsIHIxLCBhMSA9IHAxCisgICAgbjIsIGUyLCB2 MiwgcjIsIGEyID0gcDIKKworICAgIGlmIGExID09ICdpNjg2JyBhbmQgYTIgIT0gJ2k2ODYnOgor ICAgICAgICByZXR1cm4gMQorICAgIGlmIGExICE9ICdpNjg2JyBhbmQgYTIgPT0gJ2k2ODYnOgor ICAgICAgICByZXR1cm4gLTEKKworICAgIGlmIG4xLnN0YXJ0c3dpdGgoJ2NvbXBhdC0nKSBhbmQg bm90IG4yLnN0YXJ0c3dpdGgoJ2NvbXBhdC0nKToKKyAgICAgICAgcmV0dXJuIDEKKyAgICBlbGlm IG4yLnN0YXJ0c3dpdGgoJ2NvbXBhdC0nKSBhbmQgbm90IG4xLnN0YXJ0c3dpdGgoJ2NvbXBhdC0n KToKKyAgICAgICAgcmV0dXJuIC0xCisKKyAgICBpZiBuMSA8IG4yOgorICAgICAgICByZXR1cm4g LTEKKyAgICBlbGlmIG4xID4gbjI6CisgICAgICAgIHJldHVybiAxCisKKyAgICBpZiBlMSBpcyBO b25lOgorICAgICAgICBlMSA9ICcwJworICAgIGlmIGUyIGlzIE5vbmU6CisgICAgICAgIGUyID0g JzAnCisKKyAgICByZXR1cm4gLSBycG0ubGFiZWxDb21wYXJlKChlMSwgdjEsIHIxKSwgKGUyLCB2 MiwgcjIpKQorCitjbGFzcyBGaWxlc01hcEhhbmRsZXIoeG1sLnNheC5oYW5kbGVyLkNvbnRlbnRI YW5kbGVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZXNfbWFwKToKKyAgICAgICAgc2Vs Zi5maWxlc19tYXAgPSBmaWxlc19tYXAKKyAgICAgICAgc2VsZi5uYW1lID0gTm9uZQorICAgICAg ICBzZWxmLmFyY2ggPSBOb25lCisgICAgICAgIHNlbGYuZXBvY2ggPSBOb25lCisgICAgICAgIHNl bGYudmVyc2lvbiA9IE5vbmUKKyAgICAgICAgc2VsZi5yZWxlYXNlID0gTm9uZQorICAgICAgICBz ZWxmLmZpbGUgPSBOb25lCisKKyAgICBkZWYgc3RhcnRFbGVtZW50KHNlbGYsIG5hbWUsIGF0dHJz KToKKyAgICAgICAgaWYgbmFtZSA9PSAncGFja2FnZSc6CisgICAgICAgICAgICBzZWxmLm5hbWUg PSBhdHRyc1snbmFtZSddCisgICAgICAgICAgICBzZWxmLmFyY2ggPSBhdHRyc1snYXJjaCddCisg ICAgICAgIGVsaWYgbmFtZSA9PSAndmVyc2lvbic6CisgICAgICAgICAgICBpZiBzZWxmLm5hbWUg aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5lcG9jaCA9IGF0dHJzWydlcG9jaCdd CisgICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9uID0gYXR0cnNbJ3ZlciddCisgICAgICAgICAg ICAgICAgc2VsZi5yZWxlYXNlID0gYXR0cnNbJ3JlbCddCisgICAgICAgIGVsaWYgbmFtZSA9PSAn ZmlsZSc6CisgICAgICAgICAgICBzZWxmLmZpbGUgPSAnJworCisgICAgZGVmIGVuZEVsZW1lbnQo c2VsZiwgbmFtZSk6CisgICAgICAgIGlmIG5hbWUgPT0gJ3BhY2thZ2UnOgorICAgICAgICAgICAg c2VsZi5uYW1lID0gTm9uZQorICAgICAgICBlbGlmIG5hbWUgPT0gJ2ZpbGUnOgorICAgICAgICAg ICAgcGFja2FnZSA9IChzZWxmLm5hbWUsIHNlbGYuZXBvY2gsIHNlbGYudmVyc2lvbiwgc2VsZi5y ZWxlYXNlLCBzZWxmLmFyY2gpCisgICAgICAgICAgICBvbGQgPSBzZWxmLmZpbGVzX21hcC5nZXQo c2VsZi5maWxlKQorICAgICAgICAgICAgaWYgb2xkIGlzIE5vbmUgb3IgcGFja2FnZV9jbXAocGFj a2FnZSwgb2xkKSA8IDA6CisgICAgICAgICAgICAgICAgc2VsZi5maWxlc19tYXBbc2VsZi5maWxl XSA9IHBhY2thZ2UKKworICAgICAgICAgICAgc2VsZi5maWxlID0gTm9uZQorCisgICAgZGVmIGNo YXJhY3RlcnMoc2VsZiwgY29udGVudCk6CisgICAgICAgIGlmIHNlbGYuZmlsZSBpcyBub3QgTm9u ZToKKyAgICAgICAgICAgIHNlbGYuZmlsZSArPSBjb250ZW50CisKK2RlZiBzY2FuX2ZpbGVsaXN0 cyhmaWxlbGlzdHNfcGF0aCwgZmlsZXNfbWFwKToKKyAgICBoYW5kbGVyID0gRmlsZXNNYXBIYW5k bGVyKGZpbGVzX21hcCkKKyAgICB3aXRoIGd6aXAub3BlbihmaWxlbGlzdHNfcGF0aCwgJ3JiJykg YXMgZjoKKyAgICAgICAgeG1sLnNheC5wYXJzZShmLCBoYW5kbGVyKQorCisKK2RlZiBtYWtlX2Zp bGVzX21hcChyZXBvX2luZm8pOgorICAgIGZpbGVzX21hcCA9IHt9CisKKyAgICBmb3IgcmVwbyBp biBSRVBPUzoKKyAgICAgICAgc3RhcnQoIlNjYW5uaW5nIGZpbGVzIGZvciB7fSIuZm9ybWF0KHJl cG8pKQorICAgICAgICByZXBvX2RpciwgcmVwb21kX2NvbnRlbnRzID0gcmVwb19pbmZvW3JlcG9d CisgICAgICAgIHJvb3QgPSBFVC5mcm9tc3RyaW5nKHJlcG9tZF9jb250ZW50cykKKworICAgICAg ICBucyA9IHsncmVwbyc6ICdodHRwOi8vbGludXguZHVrZS5lZHUvbWV0YWRhdGEvcmVwbyd9Cisg ICAgICAgIGZpbGVsaXN0c19sb2NhdGlvbiA9IHJvb3QuZmluZCgiLi9yZXBvOmRhdGFbQHR5cGU9 J2ZpbGVsaXN0cyddL3JlcG86bG9jYXRpb24iLCBucykuYXR0cmliWydocmVmJ10KKyAgICAgICAg ZmlsZWxpc3RzX3BhdGggPSBvcy5wYXRoLmpvaW4ocmVwb19kaXIsIGZpbGVsaXN0c19sb2NhdGlv bikKKyAgICAgICAgaWYgb3MucGF0aC5jb21tb25wcmVmaXgoW2ZpbGVsaXN0c19wYXRoLCByZXBv X2Rpcl0pICE9IHJlcG9fZGlyOgorICAgICAgICAgICAgZG9uZSgpCisgICAgICAgICAgICBlcnJv cigie306IGZpbGVsaXN0cyBkaXJlY3RvcnkgaXMgb3V0c2lkZSBvZiByZXBvc2l0b3J5Ii5mb3Jt YXQocmVwb19kaXIpKQorCisgICAgICAgIHNjYW5fZmlsZWxpc3RzKGZpbGVsaXN0c19wYXRoLCBm aWxlc19tYXApCisgICAgICAgIGRvbmUoKQorCisgICAgc3RhcnQoIkZpbmFsaXppbmcgZmlsZXMg bWFwIikKKyAgICBmb3IgayBpbiBmaWxlc19tYXA6CisgICAgICAgIGZpbGVzX21hcFtrXSA9IGZp bGVzX21hcFtrXVswXQorICAgIGRvbmUoKQorCisgICAgcmV0dXJuIGZpbGVzX21hcAorCisKK2Rl ZiBnZXRfZmlsZXNfbWFwKCk6CisgICAgaGFzaF90ZXh0ID0gJycKKyAgICByZXBvc19kaXIgPSBv cy5wYXRoLmpvaW4oWERHX0NBQ0hFX0hPTUUsICJmZWRtb2QvcmVwb3MiKQorICAgIHJlcG9faW5m byA9IHt9CisgICAgZm9yIHJlcG8gaW4gUkVQT1M6CisgICAgICAgIHJlcG9fZGlyID0gb3MucGF0 aC5qb2luKHJlcG9zX2RpciwgcmVwbywgJ3g4Nl82NCcpCisgICAgICAgIHJlcG9tZF9wYXRoID0g b3MucGF0aC5qb2luKHJlcG9fZGlyLCAncmVwb2RhdGEvcmVwb21kLnhtbCcpCisgICAgICAgIHRy eToKKyAgICAgICAgICAgIHdpdGggb3BlbihyZXBvbWRfcGF0aCwgJ3JiJykgYXMgZjoKKyAgICAg ICAgICAgICAgICByZXBvbWRfY29udGVudHMgPSBmLnJlYWQoKQorICAgICAgICBleGNlcHQgKE9T RXJyb3IsIElPRXJyb3IpOgorICAgICAgICAgICAgcHJpbnQoIkNhbm5vdCByZWFkIHt9LCB0cnkg J2ZlZG1vZCBmZXRjaC1tZXRhZGF0YSciLmZvcm1hdChyZXBvbWRfcGF0aCksIGZpbGU9c3lzLnN0 ZGVycikKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICAgICAgcmVwb19pbmZvW3JlcG9d ID0gKHJlcG9fZGlyLCByZXBvbWRfY29udGVudHMpCisgICAgICAgIGhhc2hfdGV4dCArPSAne318 e31cbicuZm9ybWF0KHJlcG8sIGhhc2hsaWIuc2hhMjU2KHJlcG9tZF9jb250ZW50cykuaGV4ZGln ZXN0KCkpCisKKyAgICByZXBvX2hhc2ggPSBoYXNobGliLnNoYTI1NihoYXNoX3RleHQuZW5jb2Rl KCJVVEYtOCIpKS5oZXhkaWdlc3QoKQorCisgICAgZmlsZXNfbWFwX3BhdGggPSBvcy5wYXRoLmpv aW4oWERHX0NBQ0hFX0hPTUUsICJmZWRtb2QvZmxhdHBhay1ydW50aW1lLWZpbGVzLW1hcC5neiIp CisKKyAgICB0cnk6CisgICAgICAgIHdpdGggZ3ppcC5vcGVuKGZpbGVzX21hcF9wYXRoLCAncmIn KSBhcyBmOgorICAgICAgICAgICAgb2xkX3JlcG9faGFzaCA9IGYucmVhZCg2NCkuZGVjb2RlKCd1 dGYtOCcpCisgICAgICAgICAgICBpZiBvbGRfcmVwb19oYXNoID09IHJlcG9faGFzaDoKKyAgICAg ICAgICAgICAgICBzdGFydCgiUmVhZGluZyBjYWNoZWQgZmlsZSBtYXAiKQorICAgICAgICAgICAg ICAgIGZpbGVzX21hcCA9IHBpY2tsZS5sb2FkKGYpCisgICAgICAgICAgICAgICAgZG9uZSgpCisK KyAgICAgICAgICAgICAgICByZXR1cm4gZmlsZXNfbWFwCisgICAgZXhjZXB0IEZpbGVOb3RGb3Vu ZEVycm9yOgorICAgICAgICBwYXNzCisKKyAgICBmaWxlc19tYXAgPSBtYWtlX2ZpbGVzX21hcChy ZXBvX2luZm8pCisKKyAgICBzdGFydCgiV3JpdGluZyBmaWxlIG1hcCB0byBjYWNoZSIpCisgICAg d2l0aCBnemlwLm9wZW4oZmlsZXNfbWFwX3BhdGgsICd3YicpIGFzIGY6CisgICAgICAgIGYud3Jp dGUocmVwb19oYXNoLmVuY29kZSgndXRmLTgnKSkKKyAgICAgICAgcGlja2xlLmR1bXAoZmlsZXNf bWFwLCBmKQorICAgIGRvbmUoKQorCisgICAgcmV0dXJuIGZpbGVzX21hcAorCitpZiBsZW4oc3lz LmFyZ3YpICE9IDI6CisgICAgcHJpbnQoIlVzYWdlOiByZXNvbHZlLWZpbGVzLnB5IElORklMRSIs IGZpbGU9c3lzLnN0ZGVycikKKyAgICBzeXMuZXhpdCgxKQorCitpbnBhdGggPSBzeXMuYXJndlsx XQoraWYgbm90IGlucGF0aC5lbmRzd2l0aCgnLmZpbGVzJyk6CisgICAgcHJpbnQoIklORklMRSBt dXN0IGhhdmUgLmZpbGVzIHN1ZmZpeCIsIGZpbGU9c3lzLnN0ZGVycikKKyAgICBzeXMuZXhpdCgx KQorCitiYXNlX3BhdGggPSBpbnBhdGhbOi1sZW4oJy5maWxlcycpXQoraXNfcGxhdGZvcm0gPSAi LVBsYXRmb3JtIiBpbiBiYXNlX3BhdGgKK2lzX3NkayA9ICItU2RrIiBpbiBiYXNlX3BhdGgKKwor ZGVmIHdhcm4obXNnKToKKyAgICBwcmludCgie306IFwwMzNbMzFte31cMDMzWzM5bSIuZm9ybWF0 KGlucGF0aCwgbXNnKSwgZmlsZT1zeXMuc3RkZXJyKQorCitkZWYgZXJyb3IobXNnKToKKyAgICBw cmludCgie306IFwwMzNbMzFte31cMDMzWzM5bSIuZm9ybWF0KGlucGF0aCwgbXNnKSwgZmlsZT1z eXMuc3RkZXJyKQorICAgIHN5cy5leGl0KDEpCisKK2RlZiBzdGFydChtc2cpOgorICAgIHByaW50 KCJ7fTogXDAzM1s5MG17fSAuLi4gXDAzM1szOW0iLmZvcm1hdChpbnBhdGgsIG1zZyksIGZpbGU9 c3lzLnN0ZGVyciwgZW5kPSIiKQorICAgIHN5cy5zdGRlcnIuZmx1c2goKQorCitkZWYgZG9uZSgp OgorICAgIHByaW50KCJcMDMzWzkwbWRvbmVcMDMzWzM5bSIsIGZpbGU9c3lzLnN0ZGVycikKKwor c3RhcnQoIlJlYWRpbmcgZmlsZSBsaXN0IikKKwordG9fcmVzb2x2ZSA9IFtdCit3aXRoIG9wZW4o aW5wYXRoKSBhcyBmOgorICAgIGZvciBsIGluIGY6CisgICAgICAgIHIgPSBsLnJzdHJpcCgpCisg ICAgICAgIGlmIHIuc3RhcnRzd2l0aCgnL3Vzci9saWIvJyk6CisgICAgICAgICAgICByID0gJy91 c3IvbGliNjQvJyArIHJbbGVuKCcvdXNyL2xpYi8nKTpdCisgICAgICAgIHRvX3Jlc29sdmUuYXBw ZW5kKHIpCisKK3RvX3Jlc29sdmUuc29ydCgpCisKK2RvbmUoKQorCitmaWxlc19tYXAgPSBnZXRf ZmlsZXNfbWFwKCkKK2ZvdW5kX3BhY2thZ2VzID0gc2V0KCkKKworc3RhcnQoIlJlc29sdmluZyBm aWxlcyB0byBwYWNrYWdlcyIpCisKK21hdGNoZWRfZmlsZSA9IG9wZW4oYmFzZV9wYXRoICsgJy5t YXRjaGVkJywgJ3cnKQordW5tYXRjaGVkX2ZpbGUgPSBvcGVuKGJhc2VfcGF0aCArICcudW5tYXRj aGVkJywgJ3cnKQordW5tYXRjaGVkX2NvdW50ID0gMAorCitmb3IgciBpbiB0b19yZXNvbHZlOgor ICAgIGlmIHIgaW4gaWdub3JlOgorICAgICAgICBjb250aW51ZQorCisgICAgc2tpcCA9IEZhbHNl CisgICAgZm9yIHAgaW4gaWdub3JlX2NvbXBpbGVkOgorICAgICAgICBpZiBwLm1hdGNoKHIpIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgc2tpcCA9IFRydWUKKyAgICBpZiBza2lwOgorICAgICAg ICBjb250aW51ZQorCisgICAgaWYgciBpbiByZW5hbWU6CisgICAgICAgIHIgPSByZW5hbWVbcl0K KworICAgIGZvciBwLCByZXBsYWNlbWVudCBpbiByZW5hbWVfY29tcGlsZWQ6CisgICAgICAgIGlm IHAubWF0Y2gocikgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByID0gcC5zdWIocmVwbGFjZW1l bnQsIHIpCisKKyAgICBpZiByLnN0YXJ0c3dpdGgoJy91c3IvbGliNjQvJyk6CisgICAgICAgIHNl YXJjaCA9IFtyLCAnL2xpYjY0LycgKyBvcy5wYXRoLmJhc2VuYW1lKHIpXQorICAgIGVsaWYgci5z dGFydHN3aXRoKCcvdXNyL2Jpbi8nKToKKyAgICAgICAgc2VhcmNoID0gW3IsICcvYmluLycgKyBv cy5wYXRoLmJhc2VuYW1lKHIpLCAnL3Vzci9zYmluLycgKyBvcy5wYXRoLmJhc2VuYW1lKHIpLCAn L3NiaW4vJyArIG9zLnBhdGguYmFzZW5hbWUocildCisgICAgZWxzZToKKyAgICAgICAgc2VhcmNo ID0gW3JdCisKKyAgICBpZiByLnN0YXJ0c3dpdGgoJy91c3IvbGliNjQvbGliTExWTScpOgorICAg ICAgICAjIGZyZWVkZXNrdG9wIFNESyBidWlsZHMgInNwbGl0IiBMTFZNIGxpYnJhcmllcworICAg ICAgICBmb3VuZF9wYWNrYWdlcy5hZGQoJ2xsdm0tbGlicycpCisgICAgICAgIGNvbnRpbnVlCisK KyAgICBmb3IgcyBpbiBzZWFyY2g6CisgICAgICAgIHByb3ZpZGluZyA9IGZpbGVzX21hcC5nZXQo cywgTm9uZSkKKyAgICAgICAgaWYgcHJvdmlkaW5nIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg YnJlYWsKKworICAgIGlmIHByb3ZpZGluZyBpcyBOb25lOgorICAgICAgICBwcmludChyLCBmaWxl PXVubWF0Y2hlZF9maWxlKQorICAgICAgICB1bm1hdGNoZWRfY291bnQgKz0gMQorICAgIGVsc2U6 CisgICAgICAgIGlmIGlzX3BsYXRmb3JtIGFuZCBhbnkocC5tYXRjaChwcm92aWRpbmcpIGlzIG5v dCBOb25lIGZvciBwIGluIHBsYXRmb3JtX3BhY2thZ2VfaWdub3JlX2NvbXBpbGVkKToKKyAgICAg ICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgZm91bmRfcGFja2FnZXMuYWRkKHByb3ZpZGluZykK KyAgICAgICAgcHJpbnQoInt9OiB7fSIuZm9ybWF0KHIsIHByb3ZpZGluZyksIGZpbGU9bWF0Y2hl ZF9maWxlKQorCit1bm1hdGNoZWRfZmlsZS5jbG9zZSgpCittYXRjaGVkX2ZpbGUuY2xvc2UoKQor Cit3aXRoIG9wZW4oYmFzZV9wYXRoICsgJy5wYWNrYWdlcycsICd3JykgYXMgZjoKKyAgICBmb3Ig cCBpbiBzb3J0ZWQoZm91bmRfcGFja2FnZXMpOgorICAgICAgICBwcmludChwLCBmaWxlPWYpCisK K2RvbmUoKQorCitpZiB1bm1hdGNoZWRfY291bnQgPiAwOgorICAgIHdhcm4oInt9IHVubWF0Y2hl ZCBmaWxlcywgc2VlIHt9Ii5mb3JtYXQodW5tYXRjaGVkX2NvdW50LCBiYXNlX3BhdGggKyAiLnVu bWF0Y2hlZCIpKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3lhbWxfdXRpbHMucHkgYi90b29scy95YW1s X3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyNzI4MzYKLS0t IC9kZXYvbnVsbAorKysgYi90b29scy95YW1sX3V0aWxzLnB5CkBAIC0wLDAgKzEsMjUgQEAKK2lt cG9ydCB5YW1sCisjIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUxMjE5MzEv aW4tcHl0aG9uLWhvdy1jYW4teW91LWxvYWQteWFtbC1tYXBwaW5ncy1hcy1vcmRlcmVkZGljdHMK KworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKKworZGVmIG9yZGVyZWRfbG9h ZChzdHJlYW0sIExvYWRlcj15YW1sLkxvYWRlciwgb2JqZWN0X3BhaXJzX2hvb2s9T3JkZXJlZERp Y3QpOgorICAgIGNsYXNzIE9yZGVyZWRMb2FkZXIoTG9hZGVyKToKKyAgICAgICAgcGFzcworICAg IGRlZiBjb25zdHJ1Y3RfbWFwcGluZyhsb2FkZXIsIG5vZGUpOgorICAgICAgICBsb2FkZXIuZmxh dHRlbl9tYXBwaW5nKG5vZGUpCisgICAgICAgIHJldHVybiBvYmplY3RfcGFpcnNfaG9vayhsb2Fk ZXIuY29uc3RydWN0X3BhaXJzKG5vZGUpKQorICAgIE9yZGVyZWRMb2FkZXIuYWRkX2NvbnN0cnVj dG9yKAorICAgICAgICB5YW1sLnJlc29sdmVyLkJhc2VSZXNvbHZlci5ERUZBVUxUX01BUFBJTkdf VEFHLAorICAgICAgICBjb25zdHJ1Y3RfbWFwcGluZykKKyAgICByZXR1cm4geWFtbC5sb2FkKHN0 cmVhbSwgT3JkZXJlZExvYWRlcikKKworZGVmIG9yZGVyZWRfZHVtcChkYXRhLCBzdHJlYW09Tm9u ZSwgRHVtcGVyPXlhbWwuU2FmZUR1bXBlciwgKiprd2RzKToKKyAgICBjbGFzcyBPcmRlcmVkRHVt cGVyKER1bXBlcik6CisgICAgICAgIHBhc3MKKyAgICBkZWYgX2RpY3RfcmVwcmVzZW50ZXIoZHVt cGVyLCBkYXRhKToKKyAgICAgICAgcmV0dXJuIGR1bXBlci5yZXByZXNlbnRfbWFwcGluZygKKyAg ICAgICAgICAgIHlhbWwucmVzb2x2ZXIuQmFzZVJlc29sdmVyLkRFRkFVTFRfTUFQUElOR19UQUcs CisgICAgICAgICAgICBkYXRhLml0ZW1zKCkpCisgICAgT3JkZXJlZER1bXBlci5hZGRfcmVwcmVz ZW50ZXIoT3JkZXJlZERpY3QsIF9kaWN0X3JlcHJlc2VudGVyKQorICAgIHJldHVybiB5YW1sLmR1 bXAoZGF0YSwgc3RyZWFtLCBPcmRlcmVkRHVtcGVyLCAqKmt3ZHMpCgpkaWZmIC0tZ2l0IGEveWFt bF91dGlscy5weSBiL3lhbWxfdXRpbHMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDEyNzI4MzYuLjAwMDAwMDAKLS0tIGEveWFtbF91dGlscy5weQorKysgL2Rldi9udWxsCkBAIC0x LDI1ICswLDAgQEAKLWltcG9ydCB5YW1sCi0jIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVl c3Rpb25zLzUxMjE5MzEvaW4tcHl0aG9uLWhvdy1jYW4teW91LWxvYWQteWFtbC1tYXBwaW5ncy1h cy1vcmRlcmVkZGljdHMKLQotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKLQot ZGVmIG9yZGVyZWRfbG9hZChzdHJlYW0sIExvYWRlcj15YW1sLkxvYWRlciwgb2JqZWN0X3BhaXJz X2hvb2s9T3JkZXJlZERpY3QpOgotICAgIGNsYXNzIE9yZGVyZWRMb2FkZXIoTG9hZGVyKToKLSAg ICAgICAgcGFzcwotICAgIGRlZiBjb25zdHJ1Y3RfbWFwcGluZyhsb2FkZXIsIG5vZGUpOgotICAg ICAgICBsb2FkZXIuZmxhdHRlbl9tYXBwaW5nKG5vZGUpCi0gICAgICAgIHJldHVybiBvYmplY3Rf cGFpcnNfaG9vayhsb2FkZXIuY29uc3RydWN0X3BhaXJzKG5vZGUpKQotICAgIE9yZGVyZWRMb2Fk ZXIuYWRkX2NvbnN0cnVjdG9yKAotICAgICAgICB5YW1sLnJlc29sdmVyLkJhc2VSZXNvbHZlci5E RUZBVUxUX01BUFBJTkdfVEFHLAotICAgICAgICBjb25zdHJ1Y3RfbWFwcGluZykKLSAgICByZXR1 cm4geWFtbC5sb2FkKHN0cmVhbSwgT3JkZXJlZExvYWRlcikKLQotZGVmIG9yZGVyZWRfZHVtcChk YXRhLCBzdHJlYW09Tm9uZSwgRHVtcGVyPXlhbWwuU2FmZUR1bXBlciwgKiprd2RzKToKLSAgICBj bGFzcyBPcmRlcmVkRHVtcGVyKER1bXBlcik6Ci0gICAgICAgIHBhc3MKLSAgICBkZWYgX2RpY3Rf cmVwcmVzZW50ZXIoZHVtcGVyLCBkYXRhKToKLSAgICAgICAgcmV0dXJuIGR1bXBlci5yZXByZXNl bnRfbWFwcGluZygKLSAgICAgICAgICAgIHlhbWwucmVzb2x2ZXIuQmFzZVJlc29sdmVyLkRFRkFV TFRfTUFQUElOR19UQUcsCi0gICAgICAgICAgICBkYXRhLml0ZW1zKCkpCi0gICAgT3JkZXJlZER1 bXBlci5hZGRfcmVwcmVzZW50ZXIoT3JkZXJlZERpY3QsIF9kaWN0X3JlcHJlc2VudGVyKQotICAg IHJldHVybiB5YW1sLmR1bXAoZGF0YSwgc3RyZWFtLCBPcmRlcmVkRHVtcGVyLCAqKmt3ZHMpCg==