ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDUxMmEzNTAuLmI4ZmQ2ZWYgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMjMsNyArMjMsNiBAQAogKi5pbWwKICouaXByCiBvdXQvCi0hKiovcHVibGljL3RvcnJlbnRzLyoqL291dC8KICEqKi9zcmMvbWFpbi8qKi9vdXQvCiAhKiovc3JjL3Rlc3QvKiovb3V0LwogCkBAIC0zMywxNyArMzIsMyBAQAogL2Rpc3QvCiAvbmJkaXN0LwogLy5uYi1ncmFkbGUvCi0KLSMjIyBWUyBDb2RlICMjIwotLnZzY29kZS8KLQotL3B1YmxpYy90b3JyZW50cwotL2NvbmZpZwotL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1kYi10ZW5jZW50Y2xvdWQueW1sCi0vc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLWRiLXZ1bHRyLnltbAotL3B1YmxpYy8KLQotYXBwbGljYXRpb24qLnltbAotYXBwbGljYXRpb24ueW1sCi1hcHBsaWNhdGlvbi1jYWNoaW5nLnltbAotYXBwbGljYXRpb24tdGVzdC55bWwKZGlmZiAtLWdpdCBhL0RvY2tlcmZpbGUgYi9Eb2NrZXJmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMDc2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2NrZXJmaWxlCkBAIC0wLDAgKzEsMjIgQEAKKyMgQnVpbGQgc3RhZ2UKK0ZST00gcmVnaXN0cnkuY24taGFuZ3pob3UuYWxpeXVuY3MuY29tL2xpYnJhcnkvbWF2ZW46My44LjQtb3Blbmpkay0xNyBhcyBidWlsZAorV09SS0RJUiAvYXBwCisKKyMgQ3JlYXRlIC5tMiBkaXJlY3RvcnkgYW5kIGNvcHkgc2V0dGluZ3MueG1sCitSVU4gbWtkaXIgLXAgL3Jvb3QvLm0yCitDT1BZIHNldHRpbmdzLnhtbCAvcm9vdC8ubTIvc2V0dGluZ3MueG1sCisKKyMgQ2FjaGUgZGVwZW5kZW5jaWVzCitDT1BZIHBvbS54bWwgLgorUlVOIG12biBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgLUIKKworIyBCdWlsZCBhcHBsaWNhdGlvbgorQ09QWSBzcmMgLi9zcmMKK1JVTiBtdm4gY2xlYW4gcGFja2FnZSAtRHNraXBUZXN0cworCisjIFByb2R1Y3Rpb24gc3RhZ2UKK0ZST00gcmVnaXN0cnkuY24taGFuZ3pob3UuYWxpeXVuY3MuY29tL2xpYnJhcnkvb3BlbmpkazoxNy1zbGltCitXT1JLRElSIC9hcHAKK0NPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvdGFyZ2V0LyouamFyIGFwcC5qYXIKK0VYUE9TRSA4MDgwCitFTlRSWVBPSU5UIFsiamF2YSIsICItamFyIiwgImFwcC5qYXIiXSAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wb20ueG1sIGIvcG9tLnhtbAppbmRleCBhZTQ3NWFiLi5jMTkzYjExIDEwMDY0NAotLS0gYS9wb20ueG1sCisrKyBiL3BvbS54bWwKQEAgLTEsMjExICsxLDIxMSBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwczovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+Ci0gICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgotICAgIDxwYXJlbnQ+Ci0gICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KLSAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1wYXJlbnQ8L2FydGlmYWN0SWQ+Ci0gICAgICAgIDx2ZXJzaW9uPjMuMC4yPC92ZXJzaW9uPgotICAgICAgICA8cmVsYXRpdmVQYXRoLz4gPCEtLSBsb29rdXAgcGFyZW50IGZyb20gcmVwb3NpdG9yeSAtLT4KLSAgICA8L3BhcmVudD4KLSAgICA8Z3JvdXBJZD5jb20uZ2l0aHViLmJpdHNhcGxpbmc8L2dyb3VwSWQ+Ci0gICAgPGFydGlmYWN0SWQ+U2FwbGluZzwvYXJ0aWZhY3RJZD4KLSAgICA8dmVyc2lvbj4wLjAuMS1TTkFQU0hPVDwvdmVyc2lvbj4KLSAgICA8bmFtZT5TYXBsaW5nPC9uYW1lPgotICAgIDxkZXNjcmlwdGlvbj5TYXBsaW5nIHByb2plY3Q8L2Rlc2NyaXB0aW9uPgotCi0gICAgPHByb3BlcnRpZXM+Ci0gICAgICAgIDxqYXZhLnZlcnNpb24+MTc8L2phdmEudmVyc2lvbj4KLSAgICA8L3Byb3BlcnRpZXM+Ci0KLSAgICA8ZGVwZW5kZW5jaWVzPgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KLSAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItY2FjaGU8L2FydGlmYWN0SWQ+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtcmVkaXM8L2FydGlmYWN0SWQ+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtanBhPC9hcnRpZmFjdElkPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1tYWlsPC9hcnRpZmFjdElkPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1xdWFydHo8L2FydGlmYWN0SWQ+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLXZhbGlkYXRpb248L2FydGlmYWN0SWQ+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5jbi5kZXYzMzwvZ3JvdXBJZD4KLSAgICAgICAgICAgIDxhcnRpZmFjdElkPnNhLXRva2VuLXNwcmluZy1ib290My1zdGFydGVyPC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPHZlcnNpb24+MS4zNC4wPC92ZXJzaW9uPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+Y24uZGV2MzM8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5zYS10b2tlbi1kYW8tcmVkaXMtamFja3NvbjwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDx2ZXJzaW9uPjEuMzQuMDwvdmVyc2lvbj4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KLSAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItd2ViPC9hcnRpZmFjdElkPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1qc29uPC9hcnRpZmFjdElkPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci10b21jYXQ8L2FydGlmYWN0SWQ+Ci0gICAgICAgICAgICA8c2NvcGU+cnVudGltZTwvc2NvcGU+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5jb21tb25zLWlvPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1pbzwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDx2ZXJzaW9uPjIuMTEuMDwvdmVyc2lvbj4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPmNvbW1vbnMtY29kZWM8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWNvZGVjPC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPHZlcnNpb24+MS4xNTwvdmVyc2lvbj4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPmNvbW1vbnMtdmFsaWRhdG9yPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy12YWxpZGF0b3I8L2FydGlmYWN0SWQ+Ci0gICAgICAgICAgICA8dmVyc2lvbj4xLjc8L3ZlcnNpb24+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWxhbmczPC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPHZlcnNpb24+My4xMi4wPC92ZXJzaW9uPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5jb21tb25zPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy10ZXh0PC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPHZlcnNpb24+MS4xMC4wPC92ZXJzaW9uPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5jb21tb25zPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1jb21wcmVzczwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDx2ZXJzaW9uPjEuMjI8L3ZlcnNpb24+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5vcmcuamV0YnJhaW5zPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+YW5ub3RhdGlvbnM8L2FydGlmYWN0SWQ+Ci0gICAgICAgICAgICA8dmVyc2lvbj4yMy4xLjA8L3ZlcnNpb24+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5jb20uZ29vZ2xlLmd1YXZhPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+Z3VhdmE8L2FydGlmYWN0SWQ+Ci0gICAgICAgICAgICA8dmVyc2lvbj4zMS4xLWpyZTwvdmVyc2lvbj4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPmF0LmZhdnJlLmxpYjwvZ3JvdXBJZD4KLSAgICAgICAgICAgIDxhcnRpZmFjdElkPmJjcnlwdDwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDx2ZXJzaW9uPjAuOS4wPC92ZXJzaW9uPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmtvbmdocTwvZ3JvdXBJZD4KLSAgICAgICAgICAgIDxhcnRpZmFjdElkPnVuaXJlc3QtamF2YTwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDx2ZXJzaW9uPjMuMTQuMTwvdmVyc2lvbj4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPm1lLnRvbmdmZWk8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5wcm9ncmVzc2JhcjwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDx2ZXJzaW9uPjAuOS41PC92ZXJzaW9uPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmRhbXBjYWtlPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+YmVuY29kZTwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDx2ZXJzaW9uPjEuNDwvdmVyc2lvbj4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPmNvbS5teXNxbDwvZ3JvdXBJZD4KLSAgICAgICAgICAgIDxhcnRpZmFjdElkPm15c3FsLWNvbm5lY3Rvci1qPC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPHNjb3BlPnJ1bnRpbWU8L3Njb3BlPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmgyZGF0YWJhc2U8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5oMjwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDxzY29wZT5ydW50aW1lPC9zY29wZT4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPm9yZy5wcm9qZWN0bG9tYm9rPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+bG9tYm9rPC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPG9wdGlvbmFsPnRydWU8L29wdGlvbmFsPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3QtZGV2dG9vbHM8L2FydGlmYWN0SWQ+Ci0gICAgICAgICAgICA8c2NvcGU+cnVudGltZTwvc2NvcGU+Ci0gICAgICAgICAgICA8b3B0aW9uYWw+dHJ1ZTwvb3B0aW9uYWw+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLXRlc3Q8L2FydGlmYWN0SWQ+Ci0gICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5jb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YXR5cGU8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5qYWNrc29uLWRhdGF0eXBlLWpzcjMxMDwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDx2ZXJzaW9uPjIuMTQuMTwvdmVyc2lvbj4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPm9yZy5yZWRpc3NvbjwvZ3JvdXBJZD4KLSAgICAgICAgICAgIDxhcnRpZmFjdElkPnJlZGlzc29uLWhpYmVybmF0ZS02PC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPHZlcnNpb24+My4xOS4zPC92ZXJzaW9uPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmdvb2dsZWNvZGUub3dhc3AtamF2YS1odG1sLXNhbml0aXplcjwvZ3JvdXBJZD4KLSAgICAgICAgICAgIDxhcnRpZmFjdElkPm93YXNwLWphdmEtaHRtbC1zYW5pdGl6ZXI8L2FydGlmYWN0SWQ+Ci0gICAgICAgICAgICA8dmVyc2lvbj4yMDIyMDYwOC4xPC92ZXJzaW9uPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5jb21tb25zPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1wb29sMjwvYXJ0aWZhY3RJZD4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPmNvbS5yb21ldG9vbHM8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5yb21lPC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPHZlcnNpb24+MS4xOC4wPC92ZXJzaW9uPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmFsaWNwLmpldGNhY2hlPC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+amV0Y2FjaGUtc3RhcnRlci1yZWRpczwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgIDx2ZXJzaW9uPjIuNy4zPC92ZXJzaW9uPgotICAgICAgICA8L2RlcGVuZGVuY3k+Ci0gICAgICAgIDxkZXBlbmRlbmN5PgotICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmdyZWVucm9ib3Q8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5ldmVudGJ1cy1qYXZhPC9hcnRpZmFjdElkPgotICAgICAgICAgICAgPHZlcnNpb24+My4zLjE8L3ZlcnNpb24+Ci0gICAgICAgIDwvZGVwZW5kZW5jeT4KLSAgICAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+Ci0gICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLXdlYnNvY2tldDwvYXJ0aWZhY3RJZD4KLSAgICAgICAgPC9kZXBlbmRlbmN5PgotICAgIDwvZGVwZW5kZW5jaWVzPgotCi0gICAgPGJ1aWxkPgotICAgICAgICA8cGx1Z2lucz4KLSAgICAgICAgICAgIDxwbHVnaW4+Ci0gICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgotICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLSAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KLSAgICAgICAgICAgICAgICAgICAgPGV4Y2x1ZGVzPgotICAgICAgICAgICAgICAgICAgICAgICAgPGV4Y2x1ZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnByb2plY3Rsb21ib2s8L2dyb3VwSWQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bG9tYm9rPC9hcnRpZmFjdElkPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9leGNsdWRlPgotICAgICAgICAgICAgICAgICAgICA8L2V4Y2x1ZGVzPgotICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KLSAgICAgICAgICAgIDwvcGx1Z2luPgotICAgICAgICA8L3BsdWdpbnM+Ci0gICAgPC9idWlsZD4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSINCisgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwczovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+DQorICAgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4NCisgICAgPHBhcmVudD4NCisgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItcGFyZW50PC9hcnRpZmFjdElkPg0KKyAgICAgICAgPHZlcnNpb24+My4wLjI8L3ZlcnNpb24+DQorICAgICAgICA8cmVsYXRpdmVQYXRoLz4gPCEtLSBsb29rdXAgcGFyZW50IGZyb20gcmVwb3NpdG9yeSAtLT4NCisgICAgPC9wYXJlbnQ+DQorICAgIDxncm91cElkPmNvbS5naXRodWIuZXhhbXBsZS5wdDwvZ3JvdXBJZD4NCisgICAgPGFydGlmYWN0SWQ+cHQ8L2FydGlmYWN0SWQ+DQorICAgIDx2ZXJzaW9uPjAuMC4xLVNOQVBTSE9UPC92ZXJzaW9uPg0KKyAgICA8bmFtZT5jb20uZ2l0aHViLmV4YW1wbGUucHQ8L25hbWU+DQorICAgIDxkZXNjcmlwdGlvbj5QVDwvZGVzY3JpcHRpb24+DQorDQorICAgIDxwcm9wZXJ0aWVzPg0KKyAgICAgICAgPGphdmEudmVyc2lvbj4xNzwvamF2YS52ZXJzaW9uPg0KKyAgICA8L3Byb3BlcnRpZXM+DQorDQorICAgIDxkZXBlbmRlbmNpZXM+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1jYWNoZTwvYXJ0aWZhY3RJZD4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtcmVkaXM8L2FydGlmYWN0SWQ+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1kYXRhLWpwYTwvYXJ0aWZhY3RJZD4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLW1haWw8L2FydGlmYWN0SWQ+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1xdWFydHo8L2FydGlmYWN0SWQ+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci12YWxpZGF0aW9uPC9hcnRpZmFjdElkPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+Y24uZGV2MzM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c2EtdG9rZW4tc3ByaW5nLWJvb3QzLXN0YXJ0ZXI8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+MS4zNC4wPC92ZXJzaW9uPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+Y24uZGV2MzM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c2EtdG9rZW4tZGFvLXJlZGlzLWphY2tzb248L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+MS4zNC4wPC92ZXJzaW9uPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItd2ViPC9hcnRpZmFjdElkPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItanNvbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLXRvbWNhdDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8c2NvcGU+cnVudGltZTwvc2NvcGU+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5jb21tb25zLWlvPC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtaW88L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+Mi4xMS4wPC92ZXJzaW9uPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tbW9ucy1jb2RlYzwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWNvZGVjPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMTU8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5jb21tb25zLXZhbGlkYXRvcjwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLXZhbGlkYXRvcjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4xLjc8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1sYW5nMzwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4zLjEyLjA8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy10ZXh0PC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMTAuMDwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuY29tbW9uczwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWNvbXByZXNzPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMjI8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuamV0YnJhaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmFubm90YXRpb25zPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjIzLjEuMDwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmNvbS5nb29nbGUuZ3VhdmE8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+Z3VhdmE8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+MzEuMS1qcmU8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5hdC5mYXZyZS5saWI8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+YmNyeXB0PC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjAuOS4wPC92ZXJzaW9uPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmtvbmdocTwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD51bmlyZXN0LWphdmE8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+My4xNC4xPC92ZXJzaW9uPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+bWUudG9uZ2ZlaTwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5wcm9ncmVzc2JhcjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4wLjkuNTwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmNvbS5kYW1wY2FrZTwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5iZW5jb2RlPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuNDwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmNvbS5teXNxbDwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5teXNxbC1jb25uZWN0b3ItajwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8c2NvcGU+cnVudGltZTwvc2NvcGU+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5jb20uaDJkYXRhYmFzZTwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5oMjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8c2NvcGU+cnVudGltZTwvc2NvcGU+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcucHJvamVjdGxvbWJvazwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5sb21ib2s8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPG9wdGlvbmFsPnRydWU8L29wdGlvbmFsPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LWRldnRvb2xzPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDxzY29wZT5ydW50aW1lPC9zY29wZT4NCisgICAgICAgICAgICA8b3B0aW9uYWw+dHJ1ZTwvb3B0aW9uYWw+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci10ZXN0PC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5kYXRhdHlwZTwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qYWNrc29uLWRhdGF0eXBlLWpzcjMxMDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4yLjE0LjE8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcucmVkaXNzb248L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+cmVkaXNzb24taGliZXJuYXRlLTY8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+My4xOS4zPC92ZXJzaW9uPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmdvb2dsZWNvZGUub3dhc3AtamF2YS1odG1sLXNhbml0aXplcjwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5vd2FzcC1qYXZhLWh0bWwtc2FuaXRpemVyPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjIwMjIwNjA4LjE8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1wb29sMjwvYXJ0aWZhY3RJZD4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmNvbS5yb21ldG9vbHM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+cm9tZTwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4xLjE4LjA8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5jb20uYWxpY3AuamV0Y2FjaGU8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+amV0Y2FjaGUtc3RhcnRlci1yZWRpczwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4yLjcuMzwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5ncmVlbnJvYm90PC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmV2ZW50YnVzLWphdmE8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+My4zLjE8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci13ZWJzb2NrZXQ8L2FydGlmYWN0SWQ+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgIDwvZGVwZW5kZW5jaWVzPg0KKw0KKyAgICA8YnVpbGQ+DQorICAgICAgICA8cGx1Z2lucz4NCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1ib290LW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZXM+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGV4Y2x1ZGU+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5wcm9qZWN0bG9tYm9rPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5sb21ib2s8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9leGNsdWRlPg0KKyAgICAgICAgICAgICAgICAgICAgPC9leGNsdWRlcz4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgPC9wbHVnaW5zPg0KKyAgICA8L2J1aWxkPg0KIDwvcHJvamVjdD4gClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcHVibGljL3RvcnJlbnRzLzFhYzA0MzE2NDdiNjM5MTczM2QyYWQ0NzBlMzA3ZDU3ZDQxYjZkZDIudG9ycmVudCBiL3B1YmxpYy90b3JyZW50cy8xYWMwNDMxNjQ3YjYzOTE3MzNkMmFkNDcwZTMwN2Q1N2Q0MWI2ZGQyLnRvcnJlbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZjZGE0ZAotLS0gL2Rldi9udWxsCisrKyBiL3B1YmxpYy90b3JyZW50cy8xYWMwNDMxNjQ3YjYzOTE3MzNkMmFkNDcwZTMwN2Q1N2Q0MWI2ZGQyLnRvcnJlbnQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcHVibGljL3RvcnJlbnRzLzYyYjM3NjExNGU1ZmQ3NWQ4NjY5NmU0ZjcyYTlkODdlOTIzZDA4ZmEudG9ycmVudCBiL3B1YmxpYy90b3JyZW50cy82MmIzNzYxMTRlNWZkNzVkODY2OTZlNGY3MmE5ZDg3ZTkyM2QwOGZhLnRvcnJlbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWIzZmU2MAotLS0gL2Rldi9udWxsCisrKyBiL3B1YmxpYy90b3JyZW50cy82MmIzNzYxMTRlNWZkNzVkODY2OTZlNGY3MmE5ZDg3ZTkyM2QwOGZhLnRvcnJlbnQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcHVibGljL3RvcnJlbnRzLzg2YWJiMjFlNGQ4N2YyZWQ4YTQ3MzVkMDU5NTU1YjMxMjA5ZmI1ODgudG9ycmVudCBiL3B1YmxpYy90b3JyZW50cy84NmFiYjIxZTRkODdmMmVkOGE0NzM1ZDA1OTU1NWIzMTIwOWZiNTg4LnRvcnJlbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVhNDhlNgotLS0gL2Rldi9udWxsCisrKyBiL3B1YmxpYy90b3JyZW50cy84NmFiYjIxZTRkODdmMmVkOGE0NzM1ZDA1OTU1NWIzMTIwOWZiNTg4LnRvcnJlbnQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcHVibGljL3RvcnJlbnRzL2ViZDA2OGNkMDMwZWNhOGEwNDFmNTA5OWJmZGEzNzRiM2E2MDdjYTIudG9ycmVudCBiL3B1YmxpYy90b3JyZW50cy9lYmQwNjhjZDAzMGVjYThhMDQxZjUwOTliZmRhMzc0YjNhNjA3Y2EyLnRvcnJlbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThmZDgxZAotLS0gL2Rldi9udWxsCisrKyBiL3B1YmxpYy90b3JyZW50cy9lYmQwNjhjZDAzMGVjYThhMDQxZjUwOTliZmRhMzc0YjNhNjA3Y2EyLnRvcnJlbnQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcHVibGljL3RvcnJlbnRzL2Y0Y2E1MzQ5NWFjNWM3MjIyODA2YzRiMDI2NGRkYTJlNDJlMTM3ZDUudG9ycmVudCBiL3B1YmxpYy90b3JyZW50cy9mNGNhNTM0OTVhYzVjNzIyMjgwNmM0YjAyNjRkZGEyZTQyZTEzN2Q1LnRvcnJlbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRlYWM5NQotLS0gL2Rldi9udWxsCisrKyBiL3B1YmxpYy90b3JyZW50cy9mNGNhNTM0OTVhYzVjNzIyMjgwNmM0YjAyNjRkZGEyZTQyZTEzN2Q1LnRvcnJlbnQKQEAgLTAsMCArMSBAQAorZDg6YW5ub3VuY2UzMjpodHRwOi8vMTcyLjIxLjguOTQ6Njk2OS9hbm5vdW5jZTEwOmNyZWF0ZWQgYnkxODpxQml0dG9ycmVudCB2NS4xLjAxMzpjcmVhdGlvbiBkYXRlaTE3NDg5Mjc1NDVlNDppbmZvZDY6bGVuZ3RoaTEwMjg4MGU0Om5hbWUzMTpXZWl4aW4gSW1hZ2VfMjAyNDA0MTkwMDI5MzguanBnMTI6cGllY2UgbGVuZ3RoaTE2Mzg0ZTY6cGllY2VzMTQwOv5uw0mglW+FP9Az69gMRHeQzJdrxee8hx3Ipg/oPKpL0aAcAjUxx5j+rCxoDN63GAXZKH8TX1whwCaqWPPmrTKULZ9j46esS1sh/3k2CxqsqVczrikugXo5jIjl1KgCVPwlCZKecOpRYZg6Sn2JOdAwkYKcGL3BXE4oNYW9m1pSN0u5sKnGxsma1nfWNzpwcml2YXRlaTFlZTE1OnB1Ymxpc2gtd2Vic2l0ZTIwOkFub3RoZXIgU2FwbGluZyBTaXRlOTpwdWJsaXNoZXI1OmFkbWluMTM6cHVibGlzaGVyLXVybDMxOmh0dHA6Ly8xNzIuMjMuMTkyLjE6ODA4MS91c2VyLzJlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc2V0dGluZ3MueG1sIGIvc2V0dGluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkYWI3MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zZXR0aW5ncy54bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8c2V0dGluZ3MgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1NFVFRJTkdTLzEuMC4wIg0KKyAgICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIg0KKyAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1NFVFRJTkdTLzEuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9zZXR0aW5ncy0xLjAuMC54c2QiPg0KKyAgICA8bWlycm9ycz4NCisgICAgICAgIDxtaXJyb3I+DQorICAgICAgICAgICAgPGlkPmFsaXl1bm1hdmVuPC9pZD4NCisgICAgICAgICAgICA8bWlycm9yT2Y+KjwvbWlycm9yT2Y+DQorICAgICAgICAgICAgPG5hbWU+6Zi/6YeM5LqR5YWs5YWx5LuT5bqTPC9uYW1lPg0KKyAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9tYXZlbi5hbGl5dW4uY29tL3JlcG9zaXRvcnkvcHVibGljPC91cmw+DQorICAgICAgICA8L21pcnJvcj4NCisgICAgPC9taXJyb3JzPg0KKzwvc2V0dGluZ3M+IApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbmZpZy9BcGlQcmludGVyLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb25maWcvQXBpUHJpbnRlci5qYXZhCmluZGV4IDYwMTk1NzUuLmM1ZGNlMjMgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbmZpZy9BcGlQcmludGVyLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29uZmlnL0FwaVByaW50ZXIuamF2YQpAQCAtMSwyNCArMSwyNCBAQAotcGFja2FnZSBjb20uZ2l0aHViLmV4YW1wbGUucHQuY29uZmlnOwotCi1pbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5iZWFucy5mYWN0b3J5LmFubm90YXRpb24uQXV0b3dpcmVkOwotaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC5jb250ZXh0LmV2ZW50LkFwcGxpY2F0aW9uUmVhZHlFdmVudDsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmNvbnRleHQuQXBwbGljYXRpb25MaXN0ZW5lcjsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuQ29tcG9uZW50OwotaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLnNlcnZsZXQubXZjLm1ldGhvZC5hbm5vdGF0aW9uLlJlcXVlc3RNYXBwaW5nSGFuZGxlck1hcHBpbmc7Ci0KLUBDb21wb25lbnQKLXB1YmxpYyBjbGFzcyBBcGlQcmludGVyIGltcGxlbWVudHMgQXBwbGljYXRpb25MaXN0ZW5lcjxBcHBsaWNhdGlvblJlYWR5RXZlbnQ+IHsKLQotICAgIEBBdXRvd2lyZWQKLSAgICBwcml2YXRlIFJlcXVlc3RNYXBwaW5nSGFuZGxlck1hcHBpbmcgaGFuZGxlck1hcHBpbmc7Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBvbkFwcGxpY2F0aW9uRXZlbnQoQXBwbGljYXRpb25SZWFkeUV2ZW50IGV2ZW50KSB7Ci0gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPT09IOmhueebruWQr+WKqO+8jOW3suazqOWGjOeahCBBUEkg5o6l5Y+j5aaC5LiL77yaID09PSIpOwotICAgICAgICBoYW5kbGVyTWFwcGluZy5nZXRIYW5kbGVyTWV0aG9kcygpLmZvckVhY2goKG1hcHBpbmcsIG1ldGhvZCkgLT4gewotICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLmjqXlj6Pot6/lvoQ6ICIgKyBtYXBwaW5nICsgIiAtPiDmlrnms5U6ICIgKyBtZXRob2QuZ2V0TWV0aG9kKCkuZ2V0RGVjbGFyaW5nQ2xhc3MoKS5nZXRTaW1wbGVOYW1lKCkKLSAgICAgICAgICAgICAgICAgICAgKyAiLiIgKyBtZXRob2QuZ2V0TWV0aG9kKCkuZ2V0TmFtZSgpKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOwotICAgIH0KK3BhY2thZ2UgY29tLmdpdGh1Yi5leGFtcGxlLnB0LmNvbmZpZzsNCisNCitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5iZWFucy5mYWN0b3J5LmFubm90YXRpb24uQXV0b3dpcmVkOw0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3QuY29udGV4dC5ldmVudC5BcHBsaWNhdGlvblJlYWR5RXZlbnQ7DQoraW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuY29udGV4dC5BcHBsaWNhdGlvbkxpc3RlbmVyOw0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuQ29tcG9uZW50Ow0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5zZXJ2bGV0Lm12Yy5tZXRob2QuYW5ub3RhdGlvbi5SZXF1ZXN0TWFwcGluZ0hhbmRsZXJNYXBwaW5nOw0KKw0KK0BDb21wb25lbnQNCitwdWJsaWMgY2xhc3MgQXBpUHJpbnRlciBpbXBsZW1lbnRzIEFwcGxpY2F0aW9uTGlzdGVuZXI8QXBwbGljYXRpb25SZWFkeUV2ZW50PiB7DQorDQorICAgIEBBdXRvd2lyZWQNCisgICAgcHJpdmF0ZSBSZXF1ZXN0TWFwcGluZ0hhbmRsZXJNYXBwaW5nIGhhbmRsZXJNYXBwaW5nOw0KKw0KKyAgICBAT3ZlcnJpZGUNCisgICAgcHVibGljIHZvaWQgb25BcHBsaWNhdGlvbkV2ZW50KEFwcGxpY2F0aW9uUmVhZHlFdmVudCBldmVudCkgew0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9PT0g6aG555uu5ZCv5Yqo77yM5bey5rOo5YaM55qEIEFQSSDmjqXlj6PlpoLkuIvvvJogPT09Iik7DQorICAgICAgICBoYW5kbGVyTWFwcGluZy5nZXRIYW5kbGVyTWV0aG9kcygpLmZvckVhY2goKG1hcHBpbmcsIG1ldGhvZCkgLT4gew0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi5o6l5Y+j6Lev5b6EOiAiICsgbWFwcGluZyArICIgLT4g5pa55rOVOiAiICsgbWV0aG9kLmdldE1ldGhvZCgpLmdldERlY2xhcmluZ0NsYXNzKCkuZ2V0U2ltcGxlTmFtZSgpDQorICAgICAgICAgICAgICAgICAgICArICIuIiArIG1ldGhvZC5nZXRNZXRob2QoKS5nZXROYW1lKCkpOw0KKyAgICAgICAgfSk7DQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsNCisgICAgfQ0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb25maWcvU2FUb2tlbkhhbmRzaGFrZUludGVyY2VwdG9yLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb25maWcvU2FUb2tlbkhhbmRzaGFrZUludGVyY2VwdG9yLmphdmEKaW5kZXggNTgyNmM2ZC4uZWVkY2Q4NyAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29uZmlnL1NhVG9rZW5IYW5kc2hha2VJbnRlcmNlcHRvci5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbmZpZy9TYVRva2VuSGFuZHNoYWtlSW50ZXJjZXB0b3IuamF2YQpAQCAtMSwzNiArMSwzNiBAQAotcGFja2FnZSBjb20uZ2l0aHViLmV4YW1wbGUucHQuY29uZmlnOwotCi0KLWltcG9ydCBqYWthcnRhLnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7Ci1pbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5odHRwLnNlcnZlci5TZXJ2ZXJIdHRwUmVxdWVzdDsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuc2VydmVyLlNlcnZlckh0dHBSZXNwb25zZTsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuc2VydmVyLlNlcnZsZXRTZXJ2ZXJIdHRwUmVxdWVzdDsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5zb2NrZXQuV2ViU29ja2V0SGFuZGxlcjsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5zb2NrZXQuc2VydmVyLkhhbmRzaGFrZUludGVyY2VwdG9yOwotCi1pbXBvcnQgamF2YS51dGlsLk1hcDsKLQotcHVibGljIGNsYXNzIFNhVG9rZW5IYW5kc2hha2VJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEhhbmRzaGFrZUludGVyY2VwdG9yIHsKLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGJlZm9yZUhhbmRzaGFrZShTZXJ2ZXJIdHRwUmVxdWVzdCByZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2ZXJIdHRwUmVzcG9uc2UgcmVzcG9uc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlNvY2tldEhhbmRsZXIgd3NIYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGF0dHJpYnV0ZXMpIHsKLQotICAgICAgICBpZiAocmVxdWVzdCBpbnN0YW5jZW9mIFNlcnZsZXRTZXJ2ZXJIdHRwUmVxdWVzdCBzZXJ2bGV0UmVxdWVzdCkgewotICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IGh0dHBTZXJ2bGV0UmVxdWVzdCA9IHNlcnZsZXRSZXF1ZXN0LmdldFNlcnZsZXRSZXF1ZXN0KCk7Ci0gICAgICAgICAgICBTdHJpbmcgdG9rZW4gPSBodHRwU2VydmxldFJlcXVlc3QuZ2V0SGVhZGVyKCJzYXBsaW5nLXRva2VuIik7Ci0gICAgICAgICAgICBhdHRyaWJ1dGVzLnB1dCgic2FwbGluZy10b2tlbiIsIHRva2VuKTsgLy8g4pyFIOWtmOWFpSBzZXNzaW9uQXR0cmlidXRlcwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgYWZ0ZXJIYW5kc2hha2UoU2VydmVySHR0cFJlcXVlc3QgcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2ZXJIdHRwUmVzcG9uc2UgcmVzcG9uc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViU29ja2V0SGFuZGxlciB3c0hhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uIGV4Y2VwdGlvbikgewotICAgIH0KLX0KK3BhY2thZ2UgY29tLmdpdGh1Yi5leGFtcGxlLnB0LmNvbmZpZzsNCisNCisNCitpbXBvcnQgamFrYXJ0YS5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Ow0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuc2VydmVyLlNlcnZlckh0dHBSZXF1ZXN0Ow0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuc2VydmVyLlNlcnZlckh0dHBSZXNwb25zZTsNCitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5odHRwLnNlcnZlci5TZXJ2bGV0U2VydmVySHR0cFJlcXVlc3Q7DQoraW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLnNvY2tldC5XZWJTb2NrZXRIYW5kbGVyOw0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5zb2NrZXQuc2VydmVyLkhhbmRzaGFrZUludGVyY2VwdG9yOw0KKw0KK2ltcG9ydCBqYXZhLnV0aWwuTWFwOw0KKw0KK3B1YmxpYyBjbGFzcyBTYVRva2VuSGFuZHNoYWtlSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIYW5kc2hha2VJbnRlcmNlcHRvciB7DQorDQorICAgIEBPdmVycmlkZQ0KKyAgICBwdWJsaWMgYm9vbGVhbiBiZWZvcmVIYW5kc2hha2UoU2VydmVySHR0cFJlcXVlc3QgcmVxdWVzdCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZlckh0dHBSZXNwb25zZSByZXNwb25zZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlNvY2tldEhhbmRsZXIgd3NIYW5kbGVyLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBhdHRyaWJ1dGVzKSB7DQorDQorICAgICAgICBpZiAocmVxdWVzdCBpbnN0YW5jZW9mIFNlcnZsZXRTZXJ2ZXJIdHRwUmVxdWVzdCBzZXJ2bGV0UmVxdWVzdCkgew0KKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCBodHRwU2VydmxldFJlcXVlc3QgPSBzZXJ2bGV0UmVxdWVzdC5nZXRTZXJ2bGV0UmVxdWVzdCgpOw0KKyAgICAgICAgICAgIFN0cmluZyB0b2tlbiA9IGh0dHBTZXJ2bGV0UmVxdWVzdC5nZXRIZWFkZXIoInNhcGxpbmctdG9rZW4iKTsNCisgICAgICAgICAgICBhdHRyaWJ1dGVzLnB1dCgic2FwbGluZy10b2tlbiIsIHRva2VuKTsgLy8g4pyFIOWtmOWFpSBzZXNzaW9uQXR0cmlidXRlcw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgcmV0dXJuIHRydWU7DQorICAgIH0NCisNCisgICAgQE92ZXJyaWRlDQorICAgIHB1YmxpYyB2b2lkIGFmdGVySGFuZHNoYWtlKFNlcnZlckh0dHBSZXF1ZXN0IHJlcXVlc3QsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZlckh0dHBSZXNwb25zZSByZXNwb25zZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViU29ja2V0SGFuZGxlciB3c0hhbmRsZXIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvbiBleGNlcHRpb24pIHsNCisgICAgfQ0KK30NCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb250cm9sbGVyL2F1dGgvQXV0aENvbnRyb2xsZXIuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvYXV0aC9BdXRoQ29udHJvbGxlci5qYXZhCmluZGV4IDYxYzJlNzIuLjFhN2MyZWUgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvYXV0aC9BdXRoQ29udHJvbGxlci5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvYXV0aC9BdXRoQ29udHJvbGxlci5qYXZhCkBAIC0xOCw2ICsxOCw3IEBACiBpbXBvcnQgY29tLmdpdGh1Yi5leGFtcGxlLnB0LnV0aWwuSVBVdGlsOwogaW1wb3J0IGNvbS5naXRodWIuZXhhbXBsZS5wdC51dGlsLlBhc3N3b3JkSGFzaDsKIGltcG9ydCBqYWthcnRhLnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQga29uZy51bmlyZXN0Lkh0dHBTdGF0dXM7CiBpbXBvcnQgbG9tYm9rLmV4dGVybi5zbGY0ai5TbGY0ajsKIGltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubGFuZzMuU3RyaW5nVXRpbHM7CiBpbXBvcnQgb3JnLmpldGJyYWlucy5hbm5vdGF0aW9ucy5Ob3ROdWxsOwpAQCAtMTA3LDYgKzEwOCw5IEBACiAgICAgQFBvc3RNYXBwaW5nKCIvcmVnaXN0ZXIiKQogICAgIEBUcmFuc2FjdGlvbmFsCiAgICAgcHVibGljIFVzZXJTZXNzaW9uUmVzcG9uc2VEVE8gcmVnaXN0ZXIoQFJlcXVlc3RCb2R5IFJlZ2lzdGVyUmVxdWVzdERUTyByZWdpc3RlcikgeworICAgICAgICBpZih1c2VyU2VydmljZS5nZXRVc2VyQ291bnQoKT49MikgeworICAgICAgICAgICAgdGhyb3cgbmV3IEFQSUdlbmVyaWNFeGNlcHRpb24oQVVUSEVOVElDQVRJT05fRkFJTEVELCLlhoXmtYvnlKjmiLfmlbDph4/lt7Lmu6EiKTsKKyAgICAgICAgfQogICAgICAgICBsb2cuaW5mbygiUmVjZWl2ZWQgcmVnaXN0ZXIgcmVxdWVzdDoge30iLCByZWdpc3Rlci5nZXRFbWFpbCgpKTsKICAgICAgICAgbG9nLmluZm8oIui/memHjDExMTExMTExMTExMTExMTExMTExMTExMTExMSIpOwogICAgICAgICBpZiAoU3RyaW5nVXRpbHMuaXNFbXB0eShyZWdpc3Rlci5nZXRFbWFpbCgpKSkgewpAQCAtMTMxLDcgKzEzNSw3IEBACiAgICAgICAgICAgICAgICAgcmVnaXN0ZXIuZ2V0RW1haWwoKSwKICAgICAgICAgICAgICAgICBQYXNzd29yZEhhc2guaGFzaChyZWdpc3Rlci5nZXRQYXNzd29yZCgpKSwKICAgICAgICAgICAgICAgICByZWdpc3Rlci5nZXRVc2VybmFtZSgpLAotICAgICAgICAgICAgICAgIHVzZXJHcm91cFNlcnZpY2UuZ2V0RGVmYXVsdFVzZXJHcm91cCgpLAorICAgICAgICAgICAgICAgIHVzZXJHcm91cFNlcnZpY2UuZ2V0VXNlckdyb3VwKDEpLAogICAgICAgICAgICAgICAgIFVVSUQucmFuZG9tVVVJRCgpLnRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgVGltZXN0YW1wLmZyb20oSW5zdGFudC5ub3coKSksCiAgICAgICAgICAgICAgICAgInVwbG9hZHMvZmFjaXZvbi5pY28iLApkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9jaGF0L0NoYXRIaXN0b3J5Q29udHJvbGxlci5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9jaGF0L0NoYXRIaXN0b3J5Q29udHJvbGxlci5qYXZhCmluZGV4IDAwZjcxNGIuLjM5MGRlNDMgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvY2hhdC9DaGF0SGlzdG9yeUNvbnRyb2xsZXIuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb250cm9sbGVyL2NoYXQvQ2hhdEhpc3RvcnlDb250cm9sbGVyLmphdmEKQEAgLTEsNjkgKzEsNjkgQEAKLXBhY2thZ2UgY29tLmdpdGh1Yi5leGFtcGxlLnB0LmNvbnRyb2xsZXIuY2hhdDsKLQotaW1wb3J0IGNvbS5naXRodWIuZXhhbXBsZS5wdC5jb250cm9sbGVyLmNoYXQuZHRvLkNoYXRNZXNzYWdlRFRPOwotaW1wb3J0IGNvbS5naXRodWIuZXhhbXBsZS5wdC5lbnRpdHkuQ2hhdE1lc3NhZ2U7Ci1pbXBvcnQgY29tLmdpdGh1Yi5leGFtcGxlLnB0LmVudGl0eS5Vc2VyOwotaW1wb3J0IGNvbS5naXRodWIuZXhhbXBsZS5wdC5yZXBvc2l0b3J5LkNoYXRNZXNzYWdlUmVwb3NpdG9yeTsKLWltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuc2VydmljZS5Vc2VyU2VydmljZTsKLWltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOwotaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMuZmFjdG9yeS5hbm5vdGF0aW9uLkF1dG93aXJlZDsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuZG9tYWluLlBhZ2VSZXF1ZXN0OwotaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuZGF0YS5kb21haW4uUGFnZWFibGU7Ci1pbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5kYXRhLmRvbWFpbi5Tb3J0OwotaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmJpbmQuYW5ub3RhdGlvbi5HZXRNYXBwaW5nOwotaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmJpbmQuYW5ub3RhdGlvbi5SZXF1ZXN0TWFwcGluZzsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5iaW5kLmFubm90YXRpb24uUmVxdWVzdFBhcmFtOwotaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmJpbmQuYW5ub3RhdGlvbi5SZXN0Q29udHJvbGxlcjsKLQotaW1wb3J0IGphdmEudGltZS5ab25lSWQ7Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLnN0cmVhbS5Db2xsZWN0b3JzOwotCi1AUmVzdENvbnRyb2xsZXIKLUBSZXF1ZXN0TWFwcGluZygiL2NoYXQiKQotQFNsZjRqCi1wdWJsaWMgY2xhc3MgQ2hhdEhpc3RvcnlDb250cm9sbGVyIHsKLQotICAgIHByaXZhdGUgZmluYWwgQ2hhdE1lc3NhZ2VSZXBvc2l0b3J5IGNoYXRNZXNzYWdlUmVwb3NpdG9yeTsKLSAgICBwcml2YXRlIGZpbmFsIFVzZXJTZXJ2aWNlIHVzZXJTZXJ2aWNlOwotCi0gICAgQEF1dG93aXJlZAotICAgIHB1YmxpYyBDaGF0SGlzdG9yeUNvbnRyb2xsZXIoQ2hhdE1lc3NhZ2VSZXBvc2l0b3J5IGNoYXRNZXNzYWdlUmVwb3NpdG9yeSwgVXNlclNlcnZpY2UgdXNlclNlcnZpY2UpIHsKLSAgICAgICAgdGhpcy5jaGF0TWVzc2FnZVJlcG9zaXRvcnkgPSBjaGF0TWVzc2FnZVJlcG9zaXRvcnk7Ci0gICAgICAgIHRoaXMudXNlclNlcnZpY2UgPSB1c2VyU2VydmljZTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBHRVQgL2FwaS9jaGF0L2hpc3Rvcnk/cm9vbUlkPXtyb29tSWR9Ci0gICAgICog6L+U5Zue5oyH5a6aIHJvb21JZCDnmoTmiYDmnInljoblj7Lmtojmga/vvIzmjInml7bpl7TljYfluo/mjpLliJcKLSAgICAgKgotICAgICAqIEBwYXJhbSByb29tSWQg6IGK5aSp5a6kIElECi0gICAgICogQHJldHVybiBMaXN0PENoYXRNZXNzYWdlRFRPPgotICAgICAqLwotICAgIEBHZXRNYXBwaW5nKCIvaGlzdG9yeSIpCi0gICAgcHVibGljIExpc3Q8Q2hhdE1lc3NhZ2VEVE8+IGdldEhpc3RvcnkoCi0gICAgICAgICAgICBAUmVxdWVzdFBhcmFtIExvbmcgcm9vbUlkLAotICAgICAgICAgICAgQFJlcXVlc3RQYXJhbShkZWZhdWx0VmFsdWUgPSAiMCIpICBpbnQgcGFnZSwKLSAgICAgICAgICAgIEBSZXF1ZXN0UGFyYW0oZGVmYXVsdFZhbHVlID0gIjIwIikgaW50IHNpemUpIHsKLSAgICAgICAgUGFnZWFibGUgcGFnZWFibGUgPSBQYWdlUmVxdWVzdC5vZihwYWdlLCBzaXplLCBTb3J0LmJ5KCJjcmVhdGVkQXQiKS5hc2NlbmRpbmcoKSk7Ci0KLSAgICAgICAgTGlzdDxDaGF0TWVzc2FnZT4gbWVzc2FnZXMgPSBjaGF0TWVzc2FnZVJlcG9zaXRvcnkuZmluZEJ5Um9vbUlkT3JkZXJCeUNyZWF0ZWRBdEFzYyhyb29tSWQpOwotCi0gICAgICAgIHJldHVybiBtZXNzYWdlcy5zdHJlYW0oKS5tYXAobXNnIC0+IHsKLSAgICAgICAgICAgIENoYXRNZXNzYWdlRFRPIGR0byA9IG5ldyBDaGF0TWVzc2FnZURUTygpOwotICAgICAgICAgICAgZHRvLnNldFJvb21JZChtc2cuZ2V0Um9vbUlkKCkpOwotICAgICAgICAgICAgZHRvLnNldENvbnRlbnQobXNnLmdldENvbnRlbnQoKSk7Ci0KLSAgICAgICAgICAgIFVzZXIgdXNlciA9IHVzZXJTZXJ2aWNlLmdldFVzZXIobXNnLmdldFVzZXJJZCgpKTsKLSAgICAgICAgICAgIGR0by5zZXRVc2VybmFtZSh1c2VyIT1udWxsP3VzZXIuZ2V0VXNlcm5hbWUoKToiIHVua25vd24gIik7Ci0gICAgICAgICAgICAvLyDkuI3ov5Tlm57lpLTlg4/vvIzlpoLmnpzpnIDopoHlj6/ku6Xoh6rooYzmianlsZUKLSAgICAgICAgICAgIGR0by5zZXRBdmF0YXIobnVsbCk7Ci0gICAgICAgICAgICAvLyBMb2NhbERhdGVUaW1lIOKGkiDmr6vnp5Lml7bpl7TmiLMKLSAgICAgICAgICAgIGR0by5zZXRUaW1lc3RhbXAobXNnLmdldENyZWF0ZWRBdCgpCi0gICAgICAgICAgICAgICAgICAgIC5hdFpvbmUoWm9uZUlkLnN5c3RlbURlZmF1bHQoKSkKLSAgICAgICAgICAgICAgICAgICAgLnRvSW5zdGFudCgpCi0gICAgICAgICAgICAgICAgICAgIC50b0Vwb2NoTWlsbGkoKSk7Ci0gICAgICAgICAgICByZXR1cm4gZHRvOwotICAgICAgICB9KS5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpOwotICAgIH0KK3BhY2thZ2UgY29tLmdpdGh1Yi5leGFtcGxlLnB0LmNvbnRyb2xsZXIuY2hhdDsNCisNCitpbXBvcnQgY29tLmdpdGh1Yi5leGFtcGxlLnB0LmNvbnRyb2xsZXIuY2hhdC5kdG8uQ2hhdE1lc3NhZ2VEVE87DQoraW1wb3J0IGNvbS5naXRodWIuZXhhbXBsZS5wdC5lbnRpdHkuQ2hhdE1lc3NhZ2U7DQoraW1wb3J0IGNvbS5naXRodWIuZXhhbXBsZS5wdC5lbnRpdHkuVXNlcjsNCitpbXBvcnQgY29tLmdpdGh1Yi5leGFtcGxlLnB0LnJlcG9zaXRvcnkuQ2hhdE1lc3NhZ2VSZXBvc2l0b3J5Ow0KK2ltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuc2VydmljZS5Vc2VyU2VydmljZTsNCitpbXBvcnQgbG9tYm9rLmV4dGVybi5zbGY0ai5TbGY0ajsNCitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5iZWFucy5mYWN0b3J5LmFubm90YXRpb24uQXV0b3dpcmVkOw0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuZG9tYWluLlBhZ2VSZXF1ZXN0Ow0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuZG9tYWluLlBhZ2VhYmxlOw0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuZG9tYWluLlNvcnQ7DQoraW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmJpbmQuYW5ub3RhdGlvbi5HZXRNYXBwaW5nOw0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5iaW5kLmFubm90YXRpb24uUmVxdWVzdE1hcHBpbmc7DQoraW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmJpbmQuYW5ub3RhdGlvbi5SZXF1ZXN0UGFyYW07DQoraW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmJpbmQuYW5ub3RhdGlvbi5SZXN0Q29udHJvbGxlcjsNCisNCitpbXBvcnQgamF2YS50aW1lLlpvbmVJZDsNCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7DQoraW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsNCisNCitAUmVzdENvbnRyb2xsZXINCitAUmVxdWVzdE1hcHBpbmcoIi9jaGF0IikNCitAU2xmNGoNCitwdWJsaWMgY2xhc3MgQ2hhdEhpc3RvcnlDb250cm9sbGVyIHsNCisNCisgICAgcHJpdmF0ZSBmaW5hbCBDaGF0TWVzc2FnZVJlcG9zaXRvcnkgY2hhdE1lc3NhZ2VSZXBvc2l0b3J5Ow0KKyAgICBwcml2YXRlIGZpbmFsIFVzZXJTZXJ2aWNlIHVzZXJTZXJ2aWNlOw0KKw0KKyAgICBAQXV0b3dpcmVkDQorICAgIHB1YmxpYyBDaGF0SGlzdG9yeUNvbnRyb2xsZXIoQ2hhdE1lc3NhZ2VSZXBvc2l0b3J5IGNoYXRNZXNzYWdlUmVwb3NpdG9yeSwgVXNlclNlcnZpY2UgdXNlclNlcnZpY2UpIHsNCisgICAgICAgIHRoaXMuY2hhdE1lc3NhZ2VSZXBvc2l0b3J5ID0gY2hhdE1lc3NhZ2VSZXBvc2l0b3J5Ow0KKyAgICAgICAgdGhpcy51c2VyU2VydmljZSA9IHVzZXJTZXJ2aWNlOw0KKyAgICB9DQorDQorICAgIC8qKg0KKyAgICAgKiBHRVQgL2FwaS9jaGF0L2hpc3Rvcnk/cm9vbUlkPXtyb29tSWR9DQorICAgICAqIOi/lOWbnuaMh+WumiByb29tSWQg55qE5omA5pyJ5Y6G5Y+y5raI5oGv77yM5oyJ5pe26Ze05Y2H5bqP5o6S5YiXDQorICAgICAqDQorICAgICAqIEBwYXJhbSByb29tSWQg6IGK5aSp5a6kIElEDQorICAgICAqIEByZXR1cm4gTGlzdDxDaGF0TWVzc2FnZURUTz4NCisgICAgICovDQorICAgIEBHZXRNYXBwaW5nKCIvaGlzdG9yeSIpDQorICAgIHB1YmxpYyBMaXN0PENoYXRNZXNzYWdlRFRPPiBnZXRIaXN0b3J5KA0KKyAgICAgICAgICAgIEBSZXF1ZXN0UGFyYW0gTG9uZyByb29tSWQsDQorICAgICAgICAgICAgQFJlcXVlc3RQYXJhbShkZWZhdWx0VmFsdWUgPSAiMCIpICBpbnQgcGFnZSwNCisgICAgICAgICAgICBAUmVxdWVzdFBhcmFtKGRlZmF1bHRWYWx1ZSA9ICIyMCIpIGludCBzaXplKSB7DQorICAgICAgICBQYWdlYWJsZSBwYWdlYWJsZSA9IFBhZ2VSZXF1ZXN0Lm9mKHBhZ2UsIHNpemUsIFNvcnQuYnkoImNyZWF0ZWRBdCIpLmFzY2VuZGluZygpKTsNCisNCisgICAgICAgIExpc3Q8Q2hhdE1lc3NhZ2U+IG1lc3NhZ2VzID0gY2hhdE1lc3NhZ2VSZXBvc2l0b3J5LmZpbmRCeVJvb21JZE9yZGVyQnlDcmVhdGVkQXRBc2Mocm9vbUlkKTsNCisNCisgICAgICAgIHJldHVybiBtZXNzYWdlcy5zdHJlYW0oKS5tYXAobXNnIC0+IHsNCisgICAgICAgICAgICBDaGF0TWVzc2FnZURUTyBkdG8gPSBuZXcgQ2hhdE1lc3NhZ2VEVE8oKTsNCisgICAgICAgICAgICBkdG8uc2V0Um9vbUlkKG1zZy5nZXRSb29tSWQoKSk7DQorICAgICAgICAgICAgZHRvLnNldENvbnRlbnQobXNnLmdldENvbnRlbnQoKSk7DQorDQorICAgICAgICAgICAgVXNlciB1c2VyID0gdXNlclNlcnZpY2UuZ2V0VXNlcihtc2cuZ2V0VXNlcklkKCkpOw0KKyAgICAgICAgICAgIGR0by5zZXRVc2VybmFtZSh1c2VyIT1udWxsP3VzZXIuZ2V0VXNlcm5hbWUoKToiIHVua25vd24gIik7DQorICAgICAgICAgICAgLy8g5LiN6L+U5Zue5aS05YOP77yM5aaC5p6c6ZyA6KaB5Y+v5Lul6Ieq6KGM5omp5bGVDQorICAgICAgICAgICAgZHRvLnNldEF2YXRhcihudWxsKTsNCisgICAgICAgICAgICAvLyBMb2NhbERhdGVUaW1lIOKGkiDmr6vnp5Lml7bpl7TmiLMNCisgICAgICAgICAgICBkdG8uc2V0VGltZXN0YW1wKG1zZy5nZXRDcmVhdGVkQXQoKQ0KKyAgICAgICAgICAgICAgICAgICAgLmF0Wm9uZShab25lSWQuc3lzdGVtRGVmYXVsdCgpKQ0KKyAgICAgICAgICAgICAgICAgICAgLnRvSW5zdGFudCgpDQorICAgICAgICAgICAgICAgICAgICAudG9FcG9jaE1pbGxpKCkpOw0KKyAgICAgICAgICAgIHJldHVybiBkdG87DQorICAgICAgICB9KS5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpOw0KKyAgICB9DQogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvdG9ycmVudC9Ub3JyZW50Q29udHJvbGxlci5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci90b3JyZW50L1RvcnJlbnRDb250cm9sbGVyLmphdmEKaW5kZXggNGZmMTJmMC4uZTU4ODVhZCAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci90b3JyZW50L1RvcnJlbnRDb250cm9sbGVyLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci90b3JyZW50L1RvcnJlbnRDb250cm9sbGVyLmphdmEKQEAgLTQ4LDYgKzQ4LDcgQEAKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLmZhY3RvcnkuYW5ub3RhdGlvbi5BdXRvd2lyZWQ7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5iZWFucy5mYWN0b3J5LmFubm90YXRpb24uUXVhbGlmaWVyOwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuZGF0YS5kb21haW4uUGFnZTsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuZG9tYWluLlBhZ2VhYmxlOwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuaHR0cC5IdHRwRW50aXR5OwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuaHR0cC5IdHRwSGVhZGVyczsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuUmVzcG9uc2VFbnRpdHk7CkBAIC0xNzQsNiArMTc1LDI2IEBACiAgICAgICAgIHJldHVybiBuZXcgVG9ycmVudFNlYXJjaFJlc3VsdFJlc3BvbnNlRFRPKHRvcnJlbnRzLmdldFRvdGFsRWxlbWVudHMoKSwgdG9ycmVudHMuZ2V0VG90YWxQYWdlcygpLCB0b3JyZW50cy5nZXRDb250ZW50KCkpOwogICAgIH0KIAorICAgIEBHZXRNYXBwaW5nKCIvc2VhcmNoIikKKyAgICBwdWJsaWMgVG9ycmVudFNlYXJjaFJlc3VsdFJlc3BvbnNlRFRPIHNlYXJjaEJ5Q2F0ZWdvcnkoCisgICAgICAgIEBSZXF1ZXN0UGFyYW0obmFtZSA9ICJjYXRlZ29yeSIgLCByZXF1aXJlZCA9IGZhbHNlKSBTdHJpbmcgc2x1ZywKKyAgICAgICAgUGFnZWFibGUgcGFnZWFibGUpIHsKKworICAgICAgICBpZiAoc2x1ZyA9PSBudWxsIHx8IHNsdWcuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQVBJR2VuZXJpY0V4Y2VwdGlvbihNSVNTSU5HX1BBUkFNRVRFUlMsICLor7fovpPlhaXkvaDopoHmn6Xmib7nmoTnsbvlnosuIik7CisgICAgICAgIH0KKworICAgICAgICBMb25nIGNhdGVnb3J5SWQgPSBjYXRlZ29yeVNlcnZpY2UuZ2V0Q2F0ZWdvcnlJZEJ5U2x1ZyhzbHVnKTsKKworICAgICAgICBQYWdlPFRvcnJlbnQ+IHJlcyA9IHRvcnJlbnRTZXJ2aWNlLnNlYXJjaEJ5Q2F0ZWdvcnlJZChjYXRlZ29yeUlkLCBwYWdlYWJsZSk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBUb3JyZW50U2VhcmNoUmVzdWx0UmVzcG9uc2VEVE8oCisgICAgICAgICAgICByZXMuZ2V0VG90YWxFbGVtZW50cygpLAorICAgICAgICAgICAgcmVzLmdldFRvdGFsUGFnZXMoKSwKKyAgICAgICAgICAgIHJlcy5nZXRDb250ZW50KCkKKyAgICAgICAgKTsKKyAgICB9IAorCiAgICAgQEdldE1hcHBpbmcoIi92aWV3L3tpbmZvX2hhc2h9IikKICAgICBAU2FDaGVja1Blcm1pc3Npb24oInRvcnJlbnQ6dmlldyIpCiAgICAgcHVibGljIFRvcnJlbnRJbmZvUmVzcG9uc2VEVE8gdmlldyhAUGF0aFZhcmlhYmxlKCJpbmZvX2hhc2giKSBTdHJpbmcgaW5mb0hhc2gpIHsKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2VudGl0eS9DaGF0TWVzc2FnZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZW50aXR5L0NoYXRNZXNzYWdlLmphdmEKaW5kZXggOWI2OTBiYi4uYjgzODNmYSAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZW50aXR5L0NoYXRNZXNzYWdlLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZW50aXR5L0NoYXRNZXNzYWdlLmphdmEKQEAgLTEsNzcgKzEsNzcgQEAKLXBhY2thZ2UgY29tLmdpdGh1Yi5leGFtcGxlLnB0LmVudGl0eTsKLQotaW1wb3J0IGpha2FydGEucGVyc2lzdGVuY2UuKjsKLWltcG9ydCBqYXZhLnRpbWUuTG9jYWxEYXRlVGltZTsKLQotQEVudGl0eQotQFRhYmxlKG5hbWUgPSAiY2hhdF9tZXNzYWdlcyIpCi1wdWJsaWMgY2xhc3MgQ2hhdE1lc3NhZ2UgewotCi0KLSAgICBASWQKLSAgICBAR2VuZXJhdGVkVmFsdWUoc3RyYXRlZ3kgPSBHZW5lcmF0aW9uVHlwZS5JREVOVElUWSkKLSAgICBwcml2YXRlIExvbmcgaWQ7Ci0KLSAgICAvKiog6IGK5aSp5a6kIElEICovCi0gICAgQENvbHVtbihuYW1lID0gInJvb21faWQiLCBudWxsYWJsZSA9IGZhbHNlKQotICAgIHByaXZhdGUgTG9uZyByb29tSWQ7Ci0KLSAgICAvKiog5Y+R6YCB6ICF55So5oi3IElE77yI55SxIFNhLVRva2VuIGxvZ2luSWQg5o+Q5L6b77yJICovCi0gICAgQENvbHVtbihuYW1lID0gInVzZXJfaWQiLCBudWxsYWJsZSA9IGZhbHNlKQotICAgIHByaXZhdGUgTG9uZyB1c2VySWQ7Ci0KLSAgICAvKiog5raI5oGv5YaF5a65ICovCi0gICAgQENvbHVtbihuYW1lID0gImNvbnRlbnQiLCBudWxsYWJsZSA9IGZhbHNlLCBjb2x1bW5EZWZpbml0aW9uID0gIlRFWFQiKQotICAgIHByaXZhdGUgU3RyaW5nIGNvbnRlbnQ7Ci0KLSAgICAvKiog5Y+R6YCB5pe26Ze0ICovCi0gICAgQENvbHVtbihuYW1lID0gImNyZWF0ZWRfYXQiLCBudWxsYWJsZSA9IGZhbHNlKQotICAgIHByaXZhdGUgTG9jYWxEYXRlVGltZSBjcmVhdGVkQXQ7Ci0KLSAgICBwdWJsaWMgQ2hhdE1lc3NhZ2UoKSB7IH0KLQotICAgIHB1YmxpYyBDaGF0TWVzc2FnZShMb25nIHJvb21JZCwgTG9uZyB1c2VySWQsIFN0cmluZyBjb250ZW50LCBMb2NhbERhdGVUaW1lIGNyZWF0ZWRBdCkgewotICAgICAgICB0aGlzLnJvb21JZCA9IHJvb21JZDsKLSAgICAgICAgdGhpcy51c2VySWQgPSB1c2VySWQ7Ci0gICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7Ci0gICAgICAgIHRoaXMuY3JlYXRlZEF0ID0gY3JlYXRlZEF0OwotICAgIH0KLQotICAgIC8vIOecgeeVpSBnZXR0ZXIg5ZKMIHNldHRlcgotCi0gICAgcHVibGljIExvbmcgZ2V0SWQoKSB7Ci0gICAgICAgIHJldHVybiBpZDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgTG9uZyBnZXRSb29tSWQoKSB7Ci0gICAgICAgIHJldHVybiByb29tSWQ7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgc2V0Um9vbUlkKExvbmcgcm9vbUlkKSB7Ci0gICAgICAgIHRoaXMucm9vbUlkID0gcm9vbUlkOwotICAgIH0KLQotICAgIHB1YmxpYyBMb25nIGdldFVzZXJJZCgpIHsKLSAgICAgICAgcmV0dXJuIHVzZXJJZDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRVc2VySWQoTG9uZyB1c2VySWQpIHsKLSAgICAgICAgdGhpcy51c2VySWQgPSB1c2VySWQ7Ci0gICAgfQotCi0gICAgcHVibGljIFN0cmluZyBnZXRDb250ZW50KCkgewotICAgICAgICByZXR1cm4gY29udGVudDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRDb250ZW50KFN0cmluZyBjb250ZW50KSB7Ci0gICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7Ci0gICAgfQotCi0gICAgcHVibGljIExvY2FsRGF0ZVRpbWUgZ2V0Q3JlYXRlZEF0KCkgewotICAgICAgICByZXR1cm4gY3JlYXRlZEF0OwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHNldENyZWF0ZWRBdChMb2NhbERhdGVUaW1lIGNyZWF0ZWRBdCkgewotICAgICAgICB0aGlzLmNyZWF0ZWRBdCA9IGNyZWF0ZWRBdDsKLSAgICB9CitwYWNrYWdlIGNvbS5naXRodWIuZXhhbXBsZS5wdC5lbnRpdHk7DQorDQoraW1wb3J0IGpha2FydGEucGVyc2lzdGVuY2UuKjsNCitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7DQorDQorQEVudGl0eQ0KK0BUYWJsZShuYW1lID0gImNoYXRfbWVzc2FnZXMiKQ0KK3B1YmxpYyBjbGFzcyBDaGF0TWVzc2FnZSB7DQorDQorDQorICAgIEBJZA0KKyAgICBAR2VuZXJhdGVkVmFsdWUoc3RyYXRlZ3kgPSBHZW5lcmF0aW9uVHlwZS5JREVOVElUWSkNCisgICAgcHJpdmF0ZSBMb25nIGlkOw0KKw0KKyAgICAvKiog6IGK5aSp5a6kIElEICovDQorICAgIEBDb2x1bW4obmFtZSA9ICJyb29tX2lkIiwgbnVsbGFibGUgPSBmYWxzZSkNCisgICAgcHJpdmF0ZSBMb25nIHJvb21JZDsNCisNCisgICAgLyoqIOWPkemAgeiAheeUqOaItyBJRO+8iOeUsSBTYS1Ub2tlbiBsb2dpbklkIOaPkOS+m++8iSAqLw0KKyAgICBAQ29sdW1uKG5hbWUgPSAidXNlcl9pZCIsIG51bGxhYmxlID0gZmFsc2UpDQorICAgIHByaXZhdGUgTG9uZyB1c2VySWQ7DQorDQorICAgIC8qKiDmtojmga/lhoXlrrkgKi8NCisgICAgQENvbHVtbihuYW1lID0gImNvbnRlbnQiLCBudWxsYWJsZSA9IGZhbHNlLCBjb2x1bW5EZWZpbml0aW9uID0gIlRFWFQiKQ0KKyAgICBwcml2YXRlIFN0cmluZyBjb250ZW50Ow0KKw0KKyAgICAvKiog5Y+R6YCB5pe26Ze0ICovDQorICAgIEBDb2x1bW4obmFtZSA9ICJjcmVhdGVkX2F0IiwgbnVsbGFibGUgPSBmYWxzZSkNCisgICAgcHJpdmF0ZSBMb2NhbERhdGVUaW1lIGNyZWF0ZWRBdDsNCisNCisgICAgcHVibGljIENoYXRNZXNzYWdlKCkgeyB9DQorDQorICAgIHB1YmxpYyBDaGF0TWVzc2FnZShMb25nIHJvb21JZCwgTG9uZyB1c2VySWQsIFN0cmluZyBjb250ZW50LCBMb2NhbERhdGVUaW1lIGNyZWF0ZWRBdCkgew0KKyAgICAgICAgdGhpcy5yb29tSWQgPSByb29tSWQ7DQorICAgICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDsNCisgICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7DQorICAgICAgICB0aGlzLmNyZWF0ZWRBdCA9IGNyZWF0ZWRBdDsNCisgICAgfQ0KKw0KKyAgICAvLyDnnIHnlaUgZ2V0dGVyIOWSjCBzZXR0ZXINCisNCisgICAgcHVibGljIExvbmcgZ2V0SWQoKSB7DQorICAgICAgICByZXR1cm4gaWQ7DQorICAgIH0NCisNCisgICAgcHVibGljIExvbmcgZ2V0Um9vbUlkKCkgew0KKyAgICAgICAgcmV0dXJuIHJvb21JZDsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9pZCBzZXRSb29tSWQoTG9uZyByb29tSWQpIHsNCisgICAgICAgIHRoaXMucm9vbUlkID0gcm9vbUlkOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyBMb25nIGdldFVzZXJJZCgpIHsNCisgICAgICAgIHJldHVybiB1c2VySWQ7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgc2V0VXNlcklkKExvbmcgdXNlcklkKSB7DQorICAgICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGdldENvbnRlbnQoKSB7DQorICAgICAgICByZXR1cm4gY29udGVudDsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9pZCBzZXRDb250ZW50KFN0cmluZyBjb250ZW50KSB7DQorICAgICAgICB0aGlzLmNvbnRlbnQgPSBjb250ZW50Ow0KKyAgICB9DQorDQorICAgIHB1YmxpYyBMb2NhbERhdGVUaW1lIGdldENyZWF0ZWRBdCgpIHsNCisgICAgICAgIHJldHVybiBjcmVhdGVkQXQ7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgc2V0Q3JlYXRlZEF0KExvY2FsRGF0ZVRpbWUgY3JlYXRlZEF0KSB7DQorICAgICAgICB0aGlzLmNyZWF0ZWRBdCA9IGNyZWF0ZWRBdDsNCisgICAgfQ0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9yZXBvc2l0b3J5L0NoYXRNZXNzYWdlUmVwb3NpdG9yeS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvcmVwb3NpdG9yeS9DaGF0TWVzc2FnZVJlcG9zaXRvcnkuamF2YQppbmRleCBiMWVmNGQyLi41ZGM5NmFkIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9yZXBvc2l0b3J5L0NoYXRNZXNzYWdlUmVwb3NpdG9yeS5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3JlcG9zaXRvcnkvQ2hhdE1lc3NhZ2VSZXBvc2l0b3J5LmphdmEKQEAgLTEsMTYgKzEsMTYgQEAKLXBhY2thZ2UgY29tLmdpdGh1Yi5leGFtcGxlLnB0LnJlcG9zaXRvcnk7Ci0KLWltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuZW50aXR5LkNoYXRNZXNzYWdlOwotaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuZGF0YS5qcGEucmVwb3NpdG9yeS5KcGFSZXBvc2l0b3J5OwotaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5SZXBvc2l0b3J5OwotCi1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci0KLQotQFJlcG9zaXRvcnkKLXB1YmxpYyBpbnRlcmZhY2UgQ2hhdE1lc3NhZ2VSZXBvc2l0b3J5IGV4dGVuZHMgSnBhUmVwb3NpdG9yeTxDaGF0TWVzc2FnZSwgTG9uZz4gewotICAgIC8qKgotICAgICAqIOaMieaXtumXtOWNh+W6j+afpeivouafkOS4qiByb29tSWQg55qE5omA5pyJ5raI5oGvCi0gICAgICovCi0gICAgTGlzdDxDaGF0TWVzc2FnZT4gZmluZEJ5Um9vbUlkT3JkZXJCeUNyZWF0ZWRBdEFzYyhMb25nIHJvb21JZCk7Ci19CitwYWNrYWdlIGNvbS5naXRodWIuZXhhbXBsZS5wdC5yZXBvc2l0b3J5Ow0KKw0KK2ltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuZW50aXR5LkNoYXRNZXNzYWdlOw0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuanBhLnJlcG9zaXRvcnkuSnBhUmVwb3NpdG9yeTsNCitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zdGVyZW90eXBlLlJlcG9zaXRvcnk7DQorDQoraW1wb3J0IGphdmEudXRpbC5MaXN0Ow0KKw0KKw0KK0BSZXBvc2l0b3J5DQorcHVibGljIGludGVyZmFjZSBDaGF0TWVzc2FnZVJlcG9zaXRvcnkgZXh0ZW5kcyBKcGFSZXBvc2l0b3J5PENoYXRNZXNzYWdlLCBMb25nPiB7DQorICAgIC8qKg0KKyAgICAgKiDmjInml7bpl7TljYfluo/mn6Xor6Lmn5DkuKogcm9vbUlkIOeahOaJgOaciea2iOaBrw0KKyAgICAgKi8NCisgICAgTGlzdDxDaGF0TWVzc2FnZT4gZmluZEJ5Um9vbUlkT3JkZXJCeUNyZWF0ZWRBdEFzYyhMb25nIHJvb21JZCk7DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvQW5ub3VuY2VTZXJ2aWNlLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0Fubm91bmNlU2VydmljZS5qYXZhCmluZGV4IDhlNWY3ZTYuLmJhNThiYjAgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvQW5ub3VuY2VTZXJ2aWNlLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Bbm5vdW5jZVNlcnZpY2UuamF2YQpAQCAtMTUsNiArMTUsNyBAQAogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5TZXJ2aWNlOwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsudHJhbnNhY3Rpb24uYW5ub3RhdGlvbi5UcmFuc2FjdGlvbmFsOwogCitpbXBvcnQgamF2YS5tYXRoLkJpZ0RlY2ltYWw7CiBpbXBvcnQgamF2YS5zcWwuVGltZXN0YW1wOwogaW1wb3J0IGphdmEudGltZS5JbnN0YW50OwogaW1wb3J0IGphdmEudXRpbC5Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uOwpAQCAtOTcsNyArOTgsNyBAQAogICAgICAgICBwZWVyLnNldExlZnQodGFzay5sZWZ0KCkpOwogICAgICAgICBwZWVyLnNldFNlZWRlcih0YXNrLmxlZnQoKSA9PSAwKTsKICAgICAgICAgcGVlci5zZXRVcGRhdGVBdChUaW1lc3RhbXAuZnJvbShJbnN0YW50Lm5vdygpKSk7Ci0gICAgICAgIHBlZXIuc2V0U2VlZGluZ1RpbWUocGVlci5nZXRTZWVkaW5nVGltZSgpICsgKEluc3RhbnQubm93KCkudG9FcG9jaE1pbGxpKCkgLSBsYXN0VXBkYXRlQXQudG9JbnN0YW50KCkudG9FcG9jaE1pbGxpKCkpKTsKKyAgICAgICAgcGVlci5zZXRTZWVkaW5nVGltZSgocGVlci5nZXRTZWVkaW5nVGltZSgpICsgKEluc3RhbnQubm93KCkudG9FcG9jaE1pbGxpKCkgLSBsYXN0VXBkYXRlQXQudG9JbnN0YW50KCkudG9FcG9jaE1pbGxpKCkpKS84NjQwMCk7CiAgICAgICAgIHBlZXIuc2V0UGFydGlhbFNlZWRlcih0YXNrLmV2ZW50KCkgPT0gQW5ub3VuY2VFdmVudFR5cGUuUEFVU0VEKTsKICAgICAgICAgLy8gVXBkYXRlIHVzZXIgcGVlciBzcGVlZAogICAgICAgICBsb25nIGJ5dGVzUGVyU2Vjb25kVXBsb2FkaW5nID0gdXBsb2FkZWRPZmZzZXQgLyAoYW5ub3VuY2VJbnRlcnZhbCAvIDEwMDApOwpAQCAtMTA4LDYgKzEwOSwxNiBAQAogICAgICAgICAvLyBVcGRhdGUgcmVhbCB1c2VyIGRhdGEKICAgICAgICAgdXNlci5zZXRSZWFsRG93bmxvYWRlZCh1c2VyLmdldFJlYWxEb3dubG9hZGVkKCkgKyBsYXN0RG93bmxvYWQpOwogICAgICAgICB1c2VyLnNldFJlYWxVcGxvYWRlZCh1c2VyLmdldFJlYWxVcGxvYWRlZCgpICsgbGFzdFVwbG9hZGVkKTsKKworICAgICAgICAvL+iuoeeul+eUqOaIt+eahOWIhuS6q+eOhworCisgICAgICAgIGlmKHVzZXIuZ2V0UmVhbERvd25sb2FkZWQoKSArIGxhc3REb3dubG9hZD4wKXsKKyAgICAgICAgICAgIHVzZXIuc2V0S2FybWEobmV3IEJpZ0RlY2ltYWwoKHVzZXIuZ2V0UmVhbFVwbG9hZGVkKCkgKyBsYXN0VXBsb2FkZWQpIC8gKHVzZXIuZ2V0UmVhbERvd25sb2FkZWQoKSArIGxhc3REb3dubG9hZCkpKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICB1c2VyLnNldEthcm1hKEJpZ0RlY2ltYWwuWkVSTyk7CisgICAgICAgIH0KKyAgICAgICAKKwogICAgICAgICAvLyBBcHBseSB1c2VyIHByb21vdGlvbiBwb2xpY3kKICAgICAgICAgbG9uZyBwcm9tb3Rpb25VcGxvYWRPZmZzZXQgPSAobG9uZykgdXNlci5nZXRHcm91cCgpLmdldFByb21vdGlvblBvbGljeSgpLmFwcGx5VXBsb2FkUmF0aW8obGFzdERvd25sb2FkKTsKICAgICAgICAgbG9uZyBwcm9tb3Rpb25Eb3dubG9hZE9mZnNldCA9IChsb25nKSB1c2VyLmdldEdyb3VwKCkuZ2V0UHJvbW90aW9uUG9saWN5KCkuYXBwbHlEb3dubG9hZFJhdGlvKGxhc3RVcGxvYWRlZCk7CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0NhdGVnb3J5U2VydmljZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9DYXRlZ29yeVNlcnZpY2UuamF2YQppbmRleCBhYjljMDk3Li5lZmVhZjFhIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0NhdGVnb3J5U2VydmljZS5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvQ2F0ZWdvcnlTZXJ2aWNlLmphdmEKQEAgLTEsNiArMSw4IEBACiBwYWNrYWdlIGNvbS5naXRodWIuZXhhbXBsZS5wdC5zZXJ2aWNlOwogCiBpbXBvcnQgY29tLmdpdGh1Yi5leGFtcGxlLnB0LmVudGl0eS5DYXRlZ29yeTsKK2ltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuZXhjZXB0aW9uLkFQSUVycm9yQ29kZTsKK2ltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuZXhjZXB0aW9uLkFQSUdlbmVyaWNFeGNlcHRpb247CiBpbXBvcnQgY29tLmdpdGh1Yi5leGFtcGxlLnB0LnJlcG9zaXRvcnkuQ2F0ZWdvcnlSZXBvc2l0b3J5OwogaW1wb3J0IG9yZy5qZXRicmFpbnMuYW5ub3RhdGlvbnMuTm90TnVsbDsKIGltcG9ydCBvcmcuamV0YnJhaW5zLmFubm90YXRpb25zLk51bGxhYmxlOwpAQCAtOSw2ICsxMSw5IEBACiAKIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwogaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5PcHRpb25hbDsKKworaW1wb3J0IHN0YXRpYyBjbi5kZXYzMy5zYXRva2VuLlNhTWFuYWdlci5sb2c7CiAKIEBTZXJ2aWNlCiAKQEAgLTIyLDYgKzI3LDE5IEBACiAgICAgfQogCiAgICAgQE51bGxhYmxlCisgICAgcHVibGljIExvbmcgZ2V0Q2F0ZWdvcnlJZEJ5U2x1ZyhATm90TnVsbCBTdHJpbmcgc2x1ZykgeworICAgICAgICBPcHRpb25hbDxDYXRlZ29yeT4gY2F0ZWdvcnlPcHRpb25hbCA9IHJlcG9zaXRvcnkuZmluZEJ5U2x1ZyhzbHVnKTsKKyAgICAgICAgaWYoY2F0ZWdvcnlPcHRpb25hbC5pc1ByZXNlbnQoKSl7CisgICAgICAgICAgICBMb25nIGNhdGVnb3J5SWQgPSBjYXRlZ29yeU9wdGlvbmFsLmdldCgpLmdldElkKCk7CisgICAgICAgICAgICBsb2cuaW5mbygiQ2F0ZWdvcnkgd2l0aCBzbHVnICd7fScgaWQ6IHt9Iiwgc2x1ZyxjYXRlZ29yeUlkKTsKKyAgICAgICAgICAgIHJldHVybiBjYXRlZ29yeUlkOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGxvZy53YXJuKCJDYXRlZ29yeSB3aXRoIHNsdWcgJ3t9JyBub3QgZm91bmQiLCBzbHVnKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBBUElHZW5lcmljRXhjZXB0aW9uKEFQSUVycm9yQ29kZS5JTlZBTElEX0NBVEVHT1JZLCAiU3BlY2lmaWVkIGNhdGVnb3J5IG5vdCBleGlzdHMuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBATnVsbGFibGUKICAgICBwdWJsaWMgQ2F0ZWdvcnkgZ2V0Q2F0ZWdvcnkobG9uZyBpZCkgewogICAgICAgICByZXR1cm4gcmVwb3NpdG9yeS5maW5kQnlJZChpZCkub3JFbHNlKG51bGwpOwogICAgIH0KZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvVG9ycmVudFNlcnZpY2UuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvVG9ycmVudFNlcnZpY2UuamF2YQppbmRleCBlM2EwODg1Li4xN2ZhODQ3IDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Ub3JyZW50U2VydmljZS5qYXZhCkBAIC05NSw2ICs5NSwxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgLndpdGhQYWdlKHNlYXJjaFJlcXVlc3REVE8uZ2V0UGFnZSgpKSk7CiAgICAgfQogCisgICAgcHVibGljIFBhZ2U8VG9ycmVudD4gc2VhcmNoQnlDYXRlZ29yeUlkKExvbmcgY2F0ZWdvcnlJZCwgUGFnZWFibGUgcGFnZWFibGUpIHsKKyAgICByZXR1cm4gdG9ycmVudFJlcG9zaXRvcnkuZmluZEFsbCgocm9vdCwgcXVlcnksIGNiKSAtPiB7CisgICAgICAgIExpc3Q8UHJlZGljYXRlPiBwcmVkaWNhdGVzID0gbmV3IEFycmF5TGlzdDw+KCk7CisgICAgICAgIGlmIChjYXRlZ29yeUlkICE9IG51bGwpIHsKKyAgICAgICAgICAgIHByZWRpY2F0ZXMuYWRkKGNiLmVxdWFsKHJvb3QuZ2V0KCJjYXRlZ29yeSIpLmdldCgiaWQiKSwgY2F0ZWdvcnlJZCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjYi5hbmQocHJlZGljYXRlcy50b0FycmF5KG5ldyBQcmVkaWNhdGVbMF0pKTsKKyAgICB9LCBwYWdlYWJsZSk7Cit9CiAKICAgICBATm90TnVsbAogICAgIHB1YmxpYyBQYWdlPFRvcnJlbnQ+IHNlYXJjaChATm90TnVsbCBTdHJpbmcga2V5d29yZCwgQE5vdE51bGwgTGlzdDxTdHJpbmc+IGNhdGVnb3JpZXNSZXF1aXJlZCwgQE5vdE51bGwgTGlzdDxTdHJpbmc+IHByb21vdGlvblJlcXVpcmVkLCBATm90TnVsbCBMaXN0PFN0cmluZz4gdGFnUmVxdWlyZWQsIEBOb3ROdWxsIFBhZ2VhYmxlIHBhZ2VhYmxlKSB7CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1VzZXJTZXJ2aWNlLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1VzZXJTZXJ2aWNlLmphdmEKaW5kZXggNWRkNjYxZS4uODMwYzcxNyAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Vc2VyU2VydmljZS5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvVXNlclNlcnZpY2UuamF2YQpAQCAtNTAsNCArNTAsOCBAQAogICAgICAgICByZXR1cm4gcmVwb3NpdG9yeS5zYXZlKHVzZXIpOwogICAgIH0KIAorICAgIEBOb3ROdWxsCisgICAgcHVibGljIExvbmcgZ2V0VXNlckNvdW50KCkgeworICAgICAgICByZXR1cm4gcmVwb3NpdG9yeS5jb3VudCgpOworICAgIH0KIH0KZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3R5cGUvQW5ub3VuY2VFdmVudFR5cGVDb252ZXJ0ZXIuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3R5cGUvQW5ub3VuY2VFdmVudFR5cGVDb252ZXJ0ZXIuamF2YQppbmRleCBmMmIwMGUxLi4xZjY5MzY5IDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC90eXBlL0Fubm91bmNlRXZlbnRUeXBlQ29udmVydGVyLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvdHlwZS9Bbm5vdW5jZUV2ZW50VHlwZUNvbnZlcnRlci5qYXZhCkBAIC0xLDIxICsxLDIxIEBACi1wYWNrYWdlIGNvbS5naXRodWIuZXhhbXBsZS5wdC50eXBlOwotCi1pbXBvcnQgamFrYXJ0YS5wZXJzaXN0ZW5jZS5BdHRyaWJ1dGVDb252ZXJ0ZXI7Ci1pbXBvcnQgamFrYXJ0YS5wZXJzaXN0ZW5jZS5Db252ZXJ0ZXI7Ci0KLUBDb252ZXJ0ZXIoYXV0b0FwcGx5ID0gZmFsc2UpCi1wdWJsaWMgY2xhc3MgQW5ub3VuY2VFdmVudFR5cGVDb252ZXJ0ZXIgaW1wbGVtZW50cyBBdHRyaWJ1dGVDb252ZXJ0ZXI8QW5ub3VuY2VFdmVudFR5cGUsIFN0cmluZz4gewotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgY29udmVydFRvRGF0YWJhc2VDb2x1bW4oQW5ub3VuY2VFdmVudFR5cGUgYXR0cmlidXRlKSB7Ci0gICAgICAgIGlmIChhdHRyaWJ1dGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS5nZXRLZXkoKTsgIC8vIOavlOWmgiAiY29tcGxldGVkIgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBBbm5vdW5jZUV2ZW50VHlwZSBjb252ZXJ0VG9FbnRpdHlBdHRyaWJ1dGUoU3RyaW5nIGRiRGF0YSkgewotICAgICAgICByZXR1cm4gQW5ub3VuY2VFdmVudFR5cGUuZnJvbU5hbWUoZGJEYXRhKTsKLSAgICB9Ci19Ci0KK3BhY2thZ2UgY29tLmdpdGh1Yi5leGFtcGxlLnB0LnR5cGU7DQorDQoraW1wb3J0IGpha2FydGEucGVyc2lzdGVuY2UuQXR0cmlidXRlQ29udmVydGVyOw0KK2ltcG9ydCBqYWthcnRhLnBlcnNpc3RlbmNlLkNvbnZlcnRlcjsNCisNCitAQ29udmVydGVyKGF1dG9BcHBseSA9IGZhbHNlKQ0KK3B1YmxpYyBjbGFzcyBBbm5vdW5jZUV2ZW50VHlwZUNvbnZlcnRlciBpbXBsZW1lbnRzIEF0dHJpYnV0ZUNvbnZlcnRlcjxBbm5vdW5jZUV2ZW50VHlwZSwgU3RyaW5nPiB7DQorICAgIEBPdmVycmlkZQ0KKyAgICBwdWJsaWMgU3RyaW5nIGNvbnZlcnRUb0RhdGFiYXNlQ29sdW1uKEFubm91bmNlRXZlbnRUeXBlIGF0dHJpYnV0ZSkgew0KKyAgICAgICAgaWYgKGF0dHJpYnV0ZSA9PSBudWxsKSB7DQorICAgICAgICAgICAgcmV0dXJuIG51bGw7DQorICAgICAgICB9DQorICAgICAgICByZXR1cm4gYXR0cmlidXRlLmdldEtleSgpOyAgLy8g5q+U5aaCICJjb21wbGV0ZWQiDQorICAgIH0NCisNCisgICAgQE92ZXJyaWRlDQorICAgIHB1YmxpYyBBbm5vdW5jZUV2ZW50VHlwZSBjb252ZXJ0VG9FbnRpdHlBdHRyaWJ1dGUoU3RyaW5nIGRiRGF0YSkgew0KKyAgICAgICAgcmV0dXJuIEFubm91bmNlRXZlbnRUeXBlLmZyb21OYW1lKGRiRGF0YSk7DQorICAgIH0NCit9DQorDQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvd2Vic29ja2V0L0NoYXRSYXdXZWJTb2NrZXRIYW5kbGVyLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC93ZWJzb2NrZXQvQ2hhdFJhd1dlYlNvY2tldEhhbmRsZXIuamF2YQppbmRleCBmZmVkYzUzLi5hNTcwNDAyIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC93ZWJzb2NrZXQvQ2hhdFJhd1dlYlNvY2tldEhhbmRsZXIuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC93ZWJzb2NrZXQvQ2hhdFJhd1dlYlNvY2tldEhhbmRsZXIuamF2YQpAQCAtMSw5NiArMSw5NiBAQAotcGFja2FnZSBjb20uZ2l0aHViLmV4YW1wbGUucHQud2Vic29ja2V0OwotCi1pbXBvcnQgY24uZGV2MzMuc2F0b2tlbi5zdHAuU3RwVXRpbDsKLWltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YWJpbmQuT2JqZWN0TWFwcGVyOwotaW1wb3J0IGNvbS5naXRodWIuZXhhbXBsZS5wdC5lbnRpdHkuVXNlcjsKLWltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuc2VydmljZS5Vc2VyU2VydmljZTsKLWltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuY29udHJvbGxlci5jaGF0LmR0by5DaGF0TWVzc2FnZURUTzsKLWltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQucmVwb3NpdG9yeS5DaGF0TWVzc2FnZVJlcG9zaXRvcnk7Ci1pbXBvcnQgY29tLmdpdGh1Yi5leGFtcGxlLnB0LmVudGl0eS5DaGF0TWVzc2FnZTsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLmZhY3RvcnkuYW5ub3RhdGlvbi5BdXRvd2lyZWQ7Ci1pbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zdGVyZW90eXBlLkNvbXBvbmVudDsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5zb2NrZXQuKjsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5zb2NrZXQuaGFuZGxlci5UZXh0V2ViU29ja2V0SGFuZGxlcjsKLQotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7Ci1pbXBvcnQgamF2YS51dGlsLk1hcDsKLWltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC5Db25jdXJyZW50SGFzaE1hcDsKLQotQENvbXBvbmVudAotcHVibGljIGNsYXNzIENoYXRSYXdXZWJTb2NrZXRIYW5kbGVyIGV4dGVuZHMgVGV4dFdlYlNvY2tldEhhbmRsZXIgewotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE1hcDxMb25nLCBXZWJTb2NrZXRTZXNzaW9uPiBzZXNzaW9ucyA9IG5ldyBDb25jdXJyZW50SGFzaE1hcDw+KCk7Ci0gICAgQEF1dG93aXJlZAotICAgIHByaXZhdGUgVXNlclNlcnZpY2UgdXNlclNlcnZpY2U7Ci0gICAgQEF1dG93aXJlZAotICAgIHByaXZhdGUgQ2hhdE1lc3NhZ2VSZXBvc2l0b3J5IGNoYXRNZXNzYWdlUmVwb3NpdG9yeTsKLSAgICBwcml2YXRlIGZpbmFsIE9iamVjdE1hcHBlciBvYmplY3RNYXBwZXIgPSBuZXcgT2JqZWN0TWFwcGVyKCk7Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBhZnRlckNvbm5lY3Rpb25Fc3RhYmxpc2hlZChXZWJTb2NrZXRTZXNzaW9uIHNlc3Npb24pIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICAvLyDpibTmnYPvvJrku44gc2Vzc2lvbiBhdHRyaWJ1dGVzIOiOt+WPliB0b2tlbgotICAgICAgICBTdHJpbmcgdG9rZW4gPSAoU3RyaW5nKSBzZXNzaW9uLmdldEF0dHJpYnV0ZXMoKS5nZXQoInNhcGxpbmctdG9rZW4iKTsKLSAgICAgICAgaWYgKHRva2VuID09IG51bGwpIHsKLSAgICAgICAgICAgIHNlc3Npb24uY2xvc2UoQ2xvc2VTdGF0dXMuTk9UX0FDQ0VQVEFCTEUud2l0aFJlYXNvbigiTm8gdG9rZW4iKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgTG9uZyB1c2VySWQ7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB1c2VySWQgPSBMb25nLnZhbHVlT2YoU3RwVXRpbC5nZXRMb2dpbklkQnlUb2tlbih0b2tlbikudG9TdHJpbmcoKSk7Ci0gICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICBzZXNzaW9uLmNsb3NlKENsb3NlU3RhdHVzLk5PVF9BQ0NFUFRBQkxFLndpdGhSZWFzb24oIkludmFsaWQgdG9rZW4iKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgc2Vzc2lvbnMucHV0KHVzZXJJZCwgc2Vzc2lvbik7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVGV4dE1lc3NhZ2UoV2ViU29ja2V0U2Vzc2lvbiBzZXNzaW9uLCBUZXh0TWVzc2FnZSBtZXNzYWdlKSB0aHJvd3MgSU9FeGNlcHRpb24gewotICAgICAgICBTdHJpbmcgdG9rZW4gPSAoU3RyaW5nKSBzZXNzaW9uLmdldEF0dHJpYnV0ZXMoKS5nZXQoInNhcGxpbmctdG9rZW4iKTsKLSAgICAgICAgaWYgKHRva2VuID09IG51bGwpIHsKLSAgICAgICAgICAgIHNlc3Npb24uY2xvc2UoQ2xvc2VTdGF0dXMuTk9UX0FDQ0VQVEFCTEUud2l0aFJlYXNvbigiTm8gdG9rZW4iKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgTG9uZyB1c2VySWQ7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB1c2VySWQgPSBMb25nLnZhbHVlT2YoU3RwVXRpbC5nZXRMb2dpbklkQnlUb2tlbih0b2tlbikudG9TdHJpbmcoKSk7Ci0gICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICBzZXNzaW9uLmNsb3NlKENsb3NlU3RhdHVzLk5PVF9BQ0NFUFRBQkxFLndpdGhSZWFzb24oIkludmFsaWQgdG9rZW4iKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgVXNlciB1c2VyID0gdXNlclNlcnZpY2UuZ2V0VXNlcih1c2VySWQpOwotICAgICAgICBpZiAodXNlciA9PSBudWxsKSB7Ci0gICAgICAgICAgICBzZXNzaW9uLmNsb3NlKENsb3NlU3RhdHVzLk5PVF9BQ0NFUFRBQkxFLndpdGhSZWFzb24oIlVzZXIgbm90IGZvdW5kIikpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIC8vIOino+aekOWJjeerr+a2iOaBrwotICAgICAgICBDaGF0TWVzc2FnZURUTyBkdG8gPSBvYmplY3RNYXBwZXIucmVhZFZhbHVlKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBDaGF0TWVzc2FnZURUTy5jbGFzcyk7Ci0gICAgICAgIC8vIOaehOW7uuW5tuS/neWtmOa2iOaBr+WunuS9kwotICAgICAgICBDaGF0TWVzc2FnZSBjaGF0TWVzc2FnZSA9IG5ldyBDaGF0TWVzc2FnZSgpOwotICAgICAgICBjaGF0TWVzc2FnZS5zZXRSb29tSWQoZHRvLmdldFJvb21JZCgpICE9IG51bGwgPyBkdG8uZ2V0Um9vbUlkKCkgOiAxTCk7Ci0gICAgICAgIGNoYXRNZXNzYWdlLnNldFVzZXJJZCh1c2VySWQpOwotICAgICAgICBjaGF0TWVzc2FnZS5zZXRDb250ZW50KGR0by5nZXRDb250ZW50KCkpOwotICAgICAgICBjaGF0TWVzc2FnZS5zZXRDcmVhdGVkQXQoTG9jYWxEYXRlVGltZS5ub3coKSk7Ci0gICAgICAgIGNoYXRNZXNzYWdlUmVwb3NpdG9yeS5zYXZlKGNoYXRNZXNzYWdlKTsKLSAgICAgICAgLy8g5p6E5bu65bm/5pKtRFRPCi0gICAgICAgIENoYXRNZXNzYWdlRFRPIGJyb2FkY2FzdCA9IG5ldyBDaGF0TWVzc2FnZURUTygpOwotICAgICAgICBicm9hZGNhc3Quc2V0Um9vbUlkKGNoYXRNZXNzYWdlLmdldFJvb21JZCgpKTsKLSAgICAgICAgYnJvYWRjYXN0LnNldENvbnRlbnQoY2hhdE1lc3NhZ2UuZ2V0Q29udGVudCgpKTsKLSAgICAgICAgYnJvYWRjYXN0LnNldFVzZXJuYW1lKHVzZXIuZ2V0VXNlcm5hbWUoKSk7Ci0gICAgICAgIGJyb2FkY2FzdC5zZXRBdmF0YXIodXNlci5nZXRBdmF0YXIoKSk7Ci0gICAgICAgIGJyb2FkY2FzdC5zZXRUaW1lc3RhbXAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOwotICAgICAgICBTdHJpbmcganNvbiA9IG9iamVjdE1hcHBlci53cml0ZVZhbHVlQXNTdHJpbmcoYnJvYWRjYXN0KTsKLSAgICAgICAgLy8g5bm/5pKt5omA5pyJ5Zyo57q/55So5oi3Ci0gICAgICAgIGZvciAoV2ViU29ja2V0U2Vzc2lvbiB3cyA6IHNlc3Npb25zLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBpZiAod3MuaXNPcGVuKCkpIHsKLSAgICAgICAgICAgICAgICB3cy5zZW5kTWVzc2FnZShuZXcgVGV4dE1lc3NhZ2UoanNvbikpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgYWZ0ZXJDb25uZWN0aW9uQ2xvc2VkKFdlYlNvY2tldFNlc3Npb24gc2Vzc2lvbiwgQ2xvc2VTdGF0dXMgc3RhdHVzKSB7Ci0gICAgICAgIC8vIOenu+mZpOS8muivnQotICAgICAgICBzZXNzaW9ucy5lbnRyeVNldCgpLnJlbW92ZUlmKGUgLT4gZS5nZXRWYWx1ZSgpLmVxdWFscyhzZXNzaW9uKSk7Ci0gICAgfQorcGFja2FnZSBjb20uZ2l0aHViLmV4YW1wbGUucHQud2Vic29ja2V0Ow0KKw0KK2ltcG9ydCBjbi5kZXYzMy5zYXRva2VuLnN0cC5TdHBVdGlsOw0KK2ltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YWJpbmQuT2JqZWN0TWFwcGVyOw0KK2ltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuZW50aXR5LlVzZXI7DQoraW1wb3J0IGNvbS5naXRodWIuZXhhbXBsZS5wdC5zZXJ2aWNlLlVzZXJTZXJ2aWNlOw0KK2ltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuY29udHJvbGxlci5jaGF0LmR0by5DaGF0TWVzc2FnZURUTzsNCitpbXBvcnQgY29tLmdpdGh1Yi5leGFtcGxlLnB0LnJlcG9zaXRvcnkuQ2hhdE1lc3NhZ2VSZXBvc2l0b3J5Ow0KK2ltcG9ydCBjb20uZ2l0aHViLmV4YW1wbGUucHQuZW50aXR5LkNoYXRNZXNzYWdlOw0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLmZhY3RvcnkuYW5ub3RhdGlvbi5BdXRvd2lyZWQ7DQoraW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuc3RlcmVvdHlwZS5Db21wb25lbnQ7DQoraW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLnNvY2tldC4qOw0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5zb2NrZXQuaGFuZGxlci5UZXh0V2ViU29ja2V0SGFuZGxlcjsNCisNCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsNCitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7DQoraW1wb3J0IGphdmEudXRpbC5NYXA7DQoraW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LkNvbmN1cnJlbnRIYXNoTWFwOw0KKw0KK0BDb21wb25lbnQNCitwdWJsaWMgY2xhc3MgQ2hhdFJhd1dlYlNvY2tldEhhbmRsZXIgZXh0ZW5kcyBUZXh0V2ViU29ja2V0SGFuZGxlciB7DQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE1hcDxMb25nLCBXZWJTb2NrZXRTZXNzaW9uPiBzZXNzaW9ucyA9IG5ldyBDb25jdXJyZW50SGFzaE1hcDw+KCk7DQorICAgIEBBdXRvd2lyZWQNCisgICAgcHJpdmF0ZSBVc2VyU2VydmljZSB1c2VyU2VydmljZTsNCisgICAgQEF1dG93aXJlZA0KKyAgICBwcml2YXRlIENoYXRNZXNzYWdlUmVwb3NpdG9yeSBjaGF0TWVzc2FnZVJlcG9zaXRvcnk7DQorICAgIHByaXZhdGUgZmluYWwgT2JqZWN0TWFwcGVyIG9iamVjdE1hcHBlciA9IG5ldyBPYmplY3RNYXBwZXIoKTsNCisNCisgICAgQE92ZXJyaWRlDQorICAgIHB1YmxpYyB2b2lkIGFmdGVyQ29ubmVjdGlvbkVzdGFibGlzaGVkKFdlYlNvY2tldFNlc3Npb24gc2Vzc2lvbikgdGhyb3dzIEV4Y2VwdGlvbiB7DQorICAgICAgICAvLyDpibTmnYPvvJrku44gc2Vzc2lvbiBhdHRyaWJ1dGVzIOiOt+WPliB0b2tlbg0KKyAgICAgICAgU3RyaW5nIHRva2VuID0gKFN0cmluZykgc2Vzc2lvbi5nZXRBdHRyaWJ1dGVzKCkuZ2V0KCJzYXBsaW5nLXRva2VuIik7DQorICAgICAgICBpZiAodG9rZW4gPT0gbnVsbCkgew0KKyAgICAgICAgICAgIHNlc3Npb24uY2xvc2UoQ2xvc2VTdGF0dXMuTk9UX0FDQ0VQVEFCTEUud2l0aFJlYXNvbigiTm8gdG9rZW4iKSk7DQorICAgICAgICAgICAgcmV0dXJuOw0KKyAgICAgICAgfQ0KKyAgICAgICAgTG9uZyB1c2VySWQ7DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICAgIHVzZXJJZCA9IExvbmcudmFsdWVPZihTdHBVdGlsLmdldExvZ2luSWRCeVRva2VuKHRva2VuKS50b1N0cmluZygpKTsNCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQorICAgICAgICAgICAgc2Vzc2lvbi5jbG9zZShDbG9zZVN0YXR1cy5OT1RfQUNDRVBUQUJMRS53aXRoUmVhc29uKCJJbnZhbGlkIHRva2VuIikpOw0KKyAgICAgICAgICAgIHJldHVybjsNCisgICAgICAgIH0NCisgICAgICAgIHNlc3Npb25zLnB1dCh1c2VySWQsIHNlc3Npb24pOw0KKyAgICB9DQorDQorICAgIEBPdmVycmlkZQ0KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUZXh0TWVzc2FnZShXZWJTb2NrZXRTZXNzaW9uIHNlc3Npb24sIFRleHRNZXNzYWdlIG1lc3NhZ2UpIHRocm93cyBJT0V4Y2VwdGlvbiB7DQorICAgICAgICBTdHJpbmcgdG9rZW4gPSAoU3RyaW5nKSBzZXNzaW9uLmdldEF0dHJpYnV0ZXMoKS5nZXQoInNhcGxpbmctdG9rZW4iKTsNCisgICAgICAgIGlmICh0b2tlbiA9PSBudWxsKSB7DQorICAgICAgICAgICAgc2Vzc2lvbi5jbG9zZShDbG9zZVN0YXR1cy5OT1RfQUNDRVBUQUJMRS53aXRoUmVhc29uKCJObyB0b2tlbiIpKTsNCisgICAgICAgICAgICByZXR1cm47DQorICAgICAgICB9DQorICAgICAgICBMb25nIHVzZXJJZDsNCisgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgdXNlcklkID0gTG9uZy52YWx1ZU9mKFN0cFV0aWwuZ2V0TG9naW5JZEJ5VG9rZW4odG9rZW4pLnRvU3RyaW5nKCkpOw0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsNCisgICAgICAgICAgICBzZXNzaW9uLmNsb3NlKENsb3NlU3RhdHVzLk5PVF9BQ0NFUFRBQkxFLndpdGhSZWFzb24oIkludmFsaWQgdG9rZW4iKSk7DQorICAgICAgICAgICAgcmV0dXJuOw0KKyAgICAgICAgfQ0KKyAgICAgICAgVXNlciB1c2VyID0gdXNlclNlcnZpY2UuZ2V0VXNlcih1c2VySWQpOw0KKyAgICAgICAgaWYgKHVzZXIgPT0gbnVsbCkgew0KKyAgICAgICAgICAgIHNlc3Npb24uY2xvc2UoQ2xvc2VTdGF0dXMuTk9UX0FDQ0VQVEFCTEUud2l0aFJlYXNvbigiVXNlciBub3QgZm91bmQiKSk7DQorICAgICAgICAgICAgcmV0dXJuOw0KKyAgICAgICAgfQ0KKyAgICAgICAgLy8g6Kej5p6Q5YmN56uv5raI5oGvDQorICAgICAgICBDaGF0TWVzc2FnZURUTyBkdG8gPSBvYmplY3RNYXBwZXIucmVhZFZhbHVlKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBDaGF0TWVzc2FnZURUTy5jbGFzcyk7DQorICAgICAgICAvLyDmnoTlu7rlubbkv53lrZjmtojmga/lrp7kvZMNCisgICAgICAgIENoYXRNZXNzYWdlIGNoYXRNZXNzYWdlID0gbmV3IENoYXRNZXNzYWdlKCk7DQorICAgICAgICBjaGF0TWVzc2FnZS5zZXRSb29tSWQoZHRvLmdldFJvb21JZCgpICE9IG51bGwgPyBkdG8uZ2V0Um9vbUlkKCkgOiAxTCk7DQorICAgICAgICBjaGF0TWVzc2FnZS5zZXRVc2VySWQodXNlcklkKTsNCisgICAgICAgIGNoYXRNZXNzYWdlLnNldENvbnRlbnQoZHRvLmdldENvbnRlbnQoKSk7DQorICAgICAgICBjaGF0TWVzc2FnZS5zZXRDcmVhdGVkQXQoTG9jYWxEYXRlVGltZS5ub3coKSk7DQorICAgICAgICBjaGF0TWVzc2FnZVJlcG9zaXRvcnkuc2F2ZShjaGF0TWVzc2FnZSk7DQorICAgICAgICAvLyDmnoTlu7rlub/mkq1EVE8NCisgICAgICAgIENoYXRNZXNzYWdlRFRPIGJyb2FkY2FzdCA9IG5ldyBDaGF0TWVzc2FnZURUTygpOw0KKyAgICAgICAgYnJvYWRjYXN0LnNldFJvb21JZChjaGF0TWVzc2FnZS5nZXRSb29tSWQoKSk7DQorICAgICAgICBicm9hZGNhc3Quc2V0Q29udGVudChjaGF0TWVzc2FnZS5nZXRDb250ZW50KCkpOw0KKyAgICAgICAgYnJvYWRjYXN0LnNldFVzZXJuYW1lKHVzZXIuZ2V0VXNlcm5hbWUoKSk7DQorICAgICAgICBicm9hZGNhc3Quc2V0QXZhdGFyKHVzZXIuZ2V0QXZhdGFyKCkpOw0KKyAgICAgICAgYnJvYWRjYXN0LnNldFRpbWVzdGFtcChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7DQorICAgICAgICBTdHJpbmcganNvbiA9IG9iamVjdE1hcHBlci53cml0ZVZhbHVlQXNTdHJpbmcoYnJvYWRjYXN0KTsNCisgICAgICAgIC8vIOW5v+aSreaJgOacieWcqOe6v+eUqOaItw0KKyAgICAgICAgZm9yIChXZWJTb2NrZXRTZXNzaW9uIHdzIDogc2Vzc2lvbnMudmFsdWVzKCkpIHsNCisgICAgICAgICAgICBpZiAod3MuaXNPcGVuKCkpIHsNCisgICAgICAgICAgICAgICAgd3Muc2VuZE1lc3NhZ2UobmV3IFRleHRNZXNzYWdlKGpzb24pKTsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgQE92ZXJyaWRlDQorICAgIHB1YmxpYyB2b2lkIGFmdGVyQ29ubmVjdGlvbkNsb3NlZChXZWJTb2NrZXRTZXNzaW9uIHNlc3Npb24sIENsb3NlU3RhdHVzIHN0YXR1cykgew0KKyAgICAgICAgLy8g56e76Zmk5Lya6K+dDQorICAgICAgICBzZXNzaW9ucy5lbnRyeVNldCgpLnJlbW92ZUlmKGUgLT4gZS5nZXRWYWx1ZSgpLmVxdWFscyhzZXNzaW9uKSk7DQorICAgIH0NCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLWNhY2hpbmcueW1sIGIvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLWNhY2hpbmcueW1sCmluZGV4IDk3MmE2ODguLmQxNDI2YTkgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1jYWNoaW5nLnltbAorKysgYi9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24tY2FjaGluZy55bWwKQEAgLTYsOCArNiw4IEBACiAgICAgICAgIGNhY2hlOgogICAgICAgICAgIHJlZ2lvbjoKICAgICAgICAgICAgIGZhY3RvcnlfY2xhc3M6IG9yZy5yZWRpc3Nvbi5oaWJlcm5hdGUuUmVkaXNzb25SZWdpb25GYWN0b3J5Ci0gICAgICAgICAgdXNlX3NlY29uZF9sZXZlbF9jYWNoZTogdHJ1ZQotICAgICAgICAgIHVzZV9xdWVyeV9jYWNoZTogdHJ1ZQorICAgICAgICAgIHVzZV9zZWNvbmRfbGV2ZWxfY2FjaGU6IGZhbHNlCisgICAgICAgICAgdXNlX3F1ZXJ5X2NhY2hlOiBmYWxzZQogICAgICAgICAgIHJlZ2lvbl9wcmVmaXg6IHNhcGxpbmcKICAgICAgICAgICB1c2Vfc3RydWN0dXJlZF9lbnRyaWVzOiB0cnVlCiAgICAgICAgICAgcHJvdmlkZXJfY29uZmlndXJhdGlvbl9maWxlX3Jlc291cmNlX3BhdGg6IGNsYXNzcGF0aDpjb25mL2hpYmVybmF0ZS1yZWRpcy5wcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24tZGIueW1sIGIvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLWRiLnltbAppbmRleCBjM2MxOGM1Li5jY2NkNzk1IDEwMDY0NAotLS0gYS9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24tZGIueW1sCisrKyBiL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1kYi55bWwKQEAgLTEwLDQgKzEwLDQgQEAKICAgICBkYXRhYmFzZS1wbGF0Zm9ybTogb3JnLmhpYmVybmF0ZS5kaWFsZWN0Lk15U1FMOERpYWxlY3QNCiAgICAgc2hvdy1zcWw6IHRydWUNCiAgICAgcHJvcGVydGllczoNCi0gICAgICBoaWJlcm5hdGUuZm9ybWF0X3NxbDogdHJ1ZQ0KKyAgICAgIGhpYmVybmF0ZS5mb3JtYXRfc3FsOiB0cnVlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLXRlc3QueW1sIGIvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLXRlc3QueW1sCmluZGV4IGVjZTBiMzEuLjk2NTM2M2MgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi10ZXN0LnltbAorKysgYi9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24tdGVzdC55bWwKQEAgLTMsNiArMywzIEBACiBsb2dnaW5nOgogICBsZXZlbDoKICAgICBjb20uZ2l0aHViLmV4YW1wbGUucHQ6IGRlYnVnCi0jc3ByaW5nOgotIyAganBhOgotIyAgICBzaG93LXNxbDogdHJ1ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi55bWwgYi9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb24ueW1sCmluZGV4IDcwYTU2MmYuLmVhMjE2OWYgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbi55bWwKKysrIGIvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uLnltbApAQCAtNjgsNjMgKzY4LDMgQEAKICAgaXMtc2hhcmU6IGZhbHNlCiAgIHRva2VuLXN0eWxlOiByYW5kb20tMTI4CiAKLXNlY3VyaXR5OgotICByc2E6Ci0gICAgIyDmjIflrprmnI3liqHlmahSU0HlhazpkqXmlofku7bot6/lvoTvvIjmlK/mjIFjbGFzc3BhdGg65oiW5paH5Lu257O757uf6Lev5b6E77yJCi0gICAgc2VydmVyLXB1YmxpYy1rZXktZmlsZTogc3JjL21haW4vcmVzb3VyY2VzL2tleXMvcHVibGljX2tleS5wZW0KLSNzcHJpbmc6Ci0jICBwcm9maWxlczoKLSMgICAgYWN0aXZlOiB0ZXN0LGRiICAjIOenu+mZpCBjYWNoaW5nIOmFjee9rgotIwotIyAganBhOgotIyAgICBwcm9wZXJ0aWVzOgotIyAgICAgIGhpYmVybmF0ZToKLSMgICAgICAgIGRkbC1hdXRvOiB1cGRhdGUKLSMgICAgICAgIGhibTJkZGwuYXV0bzogdXBkYXRlCi0jICAgICAgICBjYWNoZToKLSMgICAgICAgICAgdXNlX3NlY29uZF9sZXZlbF9jYWNoZTogZmFsc2UKLSMgICAgICAgICAgdXNlX3F1ZXJ5X2NhY2hlOiBmYWxzZQotIwotIyAgcXVhcnR6OgotIyAgICBqb2Itc3RvcmUtdHlwZTogamRiYwotIyAgICB3YWl0LWZvci1qb2JzLXRvLWNvbXBsZXRlLW9uLXNodXRkb3duOiB0cnVlCi0jICAgIG92ZXJ3cml0ZS1leGlzdGluZy1qb2JzOiB0cnVlCi0jICAgIGpkYmM6Ci0jICAgICAgaW5pdGlhbGl6ZS1zY2hlbWE6IGFsd2F5cwotIyAgICBwcm9wZXJ0aWVzOgotIyAgICAgIG9yZzoKLSMgICAgICAgIHF1YXJ0ejoKLSMgICAgICAgICAgc2NoZWR1bGVyOgotIyAgICAgICAgICAgIGluc3RhbmNlTmFtZTogc2FwbGluZ19zY2hlZHVsZXIKLSMgICAgICAgICAgICBpbnN0YW5jZUlkOiBBVVRPCi0jICAgICAgICAgIGpvYlN0b3JlOgotIyAgICAgICAgICAgIGNsYXNzOiBvcmcuc3ByaW5nZnJhbWV3b3JrLnNjaGVkdWxpbmcucXVhcnR6LkxvY2FsRGF0YVNvdXJjZUpvYlN0b3JlCi0jICAgICAgICAgICAgZHJpdmVyRGVsZWdhdGVDbGFzczogb3JnLnF1YXJ0ei5pbXBsLmpkYmNqb2JzdG9yZS5TdGRKREJDRGVsZWdhdGUKLSMgICAgICAgICAgICB0YWJsZVByZWZpeDogUVJUWl8KLSMgICAgICAgICAgICB1c2VQcm9wZXJ0aWVzOiBmYWxzZQotIyAgICAgICAgICAgIGNsdXN0ZXJDaGVja2luSW50ZXJ2YWw6IDEwMDAwCi0jICAgICAgICAgICAgaXNDbHVzdGVyZWQ6IHRydWUKLSMgICAgICAgICAgdGhyZWFkUG9vbDoKLSMgICAgICAgICAgICBjbGFzczogb3JnLnF1YXJ0ei5zaW1wbC5TaW1wbGVUaHJlYWRQb29sCi0jICAgICAgICAgICAgdGhyZWFkQ291bnQ6IDEwCi0jICAgICAgICAgICAgdGhyZWFkUHJpb3JpdHk6IDUKLSMgICAgICAgICAgICB0aHJlYWRzSW5oZXJpdENvbnRleHRDbGFzc0xvYWRlck9mSW5pdGlhbGl6aW5nVGhyZWFkOiB0cnVlCi0jCi0jICBzZXJ2bGV0OgotIyAgICBtdWx0aXBhcnQ6Ci0jICAgICAgZW5hYmxlZDogdHJ1ZQotIyAgICAgIG1heC1yZXF1ZXN0LXNpemU6IDIwTUIKLSMgICAgICBtYXgtZmlsZS1zaXplOiAyME1CCi0jCi0jc2VydmVyOgotIyAgcG9ydDogODA4MQotIyAgc2VydmxldDoKLSMgICAgY29udGV4dC1wYXRoOiAvYXBpCi0jCi0jc2EtdG9rZW46Ci0jICB0b2tlbi1uYW1lOiBzYXBsaW5nLXRva2VuCi0jICB0aW1lb3V0OiAyNTkyMDAwCi0jICBhY3Rpdml0eS10aW1lb3V0OiAtMQotIyAgaXMtY29uY3VycmVudDogdHJ1ZQotIyAgaXMtc2hhcmU6IGZhbHNlCi0jICB0b2tlbi1zdHlsZTogcmFuZG9tLTEyOApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL3BwdC5zcWwgYi9zcmMvbWFpbi9yZXNvdXJjZXMvcHB0LnNxbAppbmRleCA2ZjcyNTc5Li41NGU3MWYwIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9yZXNvdXJjZXMvcHB0LnNxbAorKysgYi9zcmMvbWFpbi9yZXNvdXJjZXMvcHB0LnNxbApAQCAtMSw3NDEgKzEsNzQyIEBACi0vKgotTmF2aWNhdCBQcmVtaXVtIER1bXAgU1FMCi0KLSBTb3VyY2UgU2VydmVyICAgICAgICAgOiBmaXJzdAotIFNvdXJjZSBTZXJ2ZXIgVHlwZSAgICA6IE15U1FMCi0gU291cmNlIFNlcnZlciBWZXJzaW9uIDogODAwMzYgKDguMC4zNikKLSBTb3VyY2UgSG9zdCAgICAgICAgICAgOiBsb2NhbGhvc3Q6MzMwNgotIFNvdXJjZSBTY2hlbWEgICAgICAgICA6IHBwdAotCi0gVGFyZ2V0IFNlcnZlciBUeXBlICAgIDogTXlTUUwKLSBUYXJnZXQgU2VydmVyIFZlcnNpb24gOiA4MDAzNiAoOC4wLjM2KQotIEZpbGUgRW5jb2RpbmcgICAgICAgICA6IDY1MDAxCi0KLSBEYXRlOiAwNC8wNi8yMDI1IDE0OjMzOjQwCi0qLwotCi1TRVQgTkFNRVMgdXRmOG1iNDsKLVNFVCBGT1JFSUdOX0tFWV9DSEVDS1MgPSAwOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIGNhdGVnb3JpZXMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBjYXRlZ29yaWVzYDsKLUNSRUFURSBUQUJMRSBgY2F0ZWdvcmllc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc2x1Z2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmFtZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaWNvbmAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGB1a19jYXRlZ29yaWVzX3NsdWdgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUtvdWwxNGhvN2JjdGJlZnY4anl3cDV2M2kyYChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgaWR4X2NhdGVnb3JpZXNfc2x1Z2AoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWG91bDE0aG83YmN0YmVmdjhqeXdwNXYzaTJgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFCi0pIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBjYXRlZ29yaWVzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgY2F0ZWdvcmllc2AgVkFMVUVTICgxLCAnb3MnLCAn5pON5L2c57O757ufJywgJ29zLWljb24ucG5nJyk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgZXhhbV9wbGFucwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYGV4YW1fcGxhbnNgOwotQ1JFQVRFIFRBQkxFIGBleGFtX3BsYW5zYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBkaXNwbGF5X25hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGRvd25sb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZHVyYXRpb25gIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBga2FybWFgIGRvdWJsZSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc2VlZGluZ190aW1lYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNlZWRzYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNoYXJlX3JhdGlvYCBkb3VibGUgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNsdWdgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVwbG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUs3NGphZXBpZWFqMnVtc3dwcW4xNnl5M3g1YChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYNzRqYWVwaWVhajJ1bXN3cHFuMTZ5eTN4NWAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIGV4YW1fcGxhbnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBleGFtcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYGV4YW1zYDsKLUNSRUFURSBUQUJMRSBgZXhhbXNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICBgZW5kX2F0YCBkYXRldGltZSg2KSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGV4YW1fcGxhbl9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgdXNlcl9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUsyd2lpMGlnZDN2ZGZlY3kwMG9wMHVuNHF0YChgdXNlcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWDJ3aWkwaWdkM3ZkZmVjeTAwb3AwdW40cXRgKGB1c2VyX2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgRktsMGNpcHMxZ2FueTNjdXBweWZzN250cGFpYChgZXhhbV9wbGFuX2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBGS2k2M2NwbDF4a2d5MzJpcTY4cnU0eXBqbjRgIEZPUkVJR04gS0VZIChgdXNlcl9pZGApIFJFRkVSRU5DRVMgYHVzZXJzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgRktsMGNpcHMxZ2FueTNjdXBweWZzN250cGFpYCBGT1JFSUdOIEtFWSAoYGV4YW1fcGxhbl9pZGApIFJFRkVSRU5DRVMgYGV4YW1fcGxhbnNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUCi0pIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDEgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBleGFtcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIGxvZ2luX2hpc3RvcnkKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBsb2dpbl9oaXN0b3J5YDsKLUNSRUFURSBUQUJMRSBgbG9naW5faGlzdG9yeWAgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXNlcl9pZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB0aW1lYCB0aW1lc3RhbXAgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHR5cGVgIGVudW0oJ0FDQ09VTlQnLCdQQVNTS0VZJywnUEVSU09OQUxfQUNDRVNTVE9LRU4nLCdQUk9HUkFNX0lOVEVSTkFMJywnVFdPX1NURVBfVkVSSUZJQ0FUSU9OJykgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpcF9hZGRyZXNzYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1c2VyX2FnZW50YCB2YXJjaGFyKDUxMikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBsb2NhdGlvbmAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYGlkeF9sb2dpbl90aW1lYChgdGltZWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgZmtfbG9naW5oaXN0b3J5X3VzZXJgKGB1c2VyX2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFgzbGZ0NDRtYWtyeG9tbXhtNjNrN3hqNzdkYChgdGltZWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma19sb2dpbmhpc3RvcnlfdXNlcmAgRk9SRUlHTiBLRVkgKGB1c2VyX2lkYCkgUkVGRVJFTkNFUyBgdXNlcnNgIChgaWRgKSBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMzMgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBsb2dpbl9oaXN0b3J5Ci0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxLCAxLCAnMjAyNS0wNi0wMyAxMjoyNTozMycsICdBQ0NPVU5UJywgJzA6MDowOjA6MDowOjA6MScsICdQb3N0bWFuUnVudGltZS83LjQzLjQnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMiwgMSwgJzIwMjUtMDYtMDMgMTI6NTE6NDInLCAnQUNDT1VOVCcsICcwOjA6MDowOjA6MDowOjEnLCAnUG9zdG1hblJ1bnRpbWUvNy40My40JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDMsIDEsICcyMDI1LTA2LTAzIDEyOjUyOjU1JywgJ0FDQ09VTlQnLCAnMDowOjA6MDowOjA6MDoxJywgJ1Bvc3RtYW5SdW50aW1lLzcuNDMuNCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICg0LCAxLCAnMjAyNS0wNi0wMyAxNDoyMDo1NScsICdBQ0NPVU5UJywgJzA6MDowOjA6MDowOjA6MScsICdQb3N0bWFuUnVudGltZS83LjQzLjQnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoNSwgMSwgJzIwMjUtMDYtMDMgMTQ6MzE6MTMnLCAnQUNDT1VOVCcsICcwOjA6MDowOjA6MDowOjEnLCAnUG9zdG1hblJ1bnRpbWUvNy40My40JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDYsIDEsICcyMDI1LTA2LTA0IDAzOjQwOjEwJywgJ0FDQ09VTlQnLCAnMDowOjA6MDowOjA6MDoxJywgJ1Bvc3RtYW5SdW50aW1lLzcuNDQuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICg3LCAxLCAnMjAyNS0wNi0wNCAwMzo0MzowOScsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoOCwgMSwgJzIwMjUtMDYtMDQgMDM6NDQ6MjcnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDksIDEsICcyMDI1LTA2LTA0IDAzOjUxOjM1JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdxQml0dG9ycmVudC81LjEuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxMCwgMSwgJzIwMjUtMDYtMDQgMDM6NTI6MjInLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxMSwgMSwgJzIwMjUtMDYtMDQgMDM6NTI6NTMnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxMiwgMSwgJzIwMjUtMDYtMDQgMDM6NTM6MTInLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxMywgMSwgJzIwMjUtMDYtMDQgMDM6NTQ6NDYnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE0LCAxLCAnMjAyNS0wNi0wNCAwMzo1ODoxNCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE1LCAxLCAnMjAyNS0wNi0wNCAwNDoyMjozMCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE2LCAxLCAnMjAyNS0wNi0wNCAwNDo0MzoyOScsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE3LCAxLCAnMjAyNS0wNi0wNCAwNDo1NDowOScsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE4LCAxLCAnMjAyNS0wNi0wNCAwNDo1OToxMycsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE5LCAxLCAnMjAyNS0wNi0wNCAwNToxNzowNycsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjAsIDEsICcyMDI1LTA2LTA0IDA1OjE4OjI4JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdxQml0dG9ycmVudC81LjEuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyMSwgMSwgJzIwMjUtMDYtMDQgMDU6MjE6MjUnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDIyLCAxLCAnMjAyNS0wNi0wNCAwNToyMTo1OCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjMsIDEsICcyMDI1LTA2LTA0IDA1OjIyOjI0JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjQsIDEsICcyMDI1LTA2LTA0IDA1OjIyOjMwJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjUsIDEsICcyMDI1LTA2LTA0IDA1OjI3OjQ0JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjYsIDEsICcyMDI1LTA2LTA0IDA1OjI3OjUwJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjcsIDEsICcyMDI1LTA2LTA0IDA1OjMxOjQ1JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjgsIDEsICcyMDI1LTA2LTA0IDA1OjMzOjAwJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjksIDEsICcyMDI1LTA2LTA0IDA2OjExOjMxJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4yNTQuMScsICdxQml0dG9ycmVudC81LjEuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgzMCwgMSwgJzIwMjUtMDYtMDQgMDY6MTI6MTMnLCAnUEFTU0tFWScsICcxOTIuMTY4LjI1NC4xJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgzMSwgMSwgJzIwMjUtMDYtMDQgMDY6MTI6MjcnLCAnUEFTU0tFWScsICcxOTIuMTY4LjI1NC4xJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgzMiwgMSwgJzIwMjUtMDYtMDQgMDY6MTM6MjEnLCAnUEFTU0tFWScsICcxOTIuMTY4LjI1NC4xJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcGVlcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBwZWVyc2A7Ci1DUkVBVEUgVEFCTEUgYHBlZXJzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGlwYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgcG9ydGAgaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgaW5mb19oYXNoYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgcGVlcl9pZGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHVzZXJfYWdlbnRgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGB1cGxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgZG93bmxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgdG9fZ29gIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHNlZWRlcmAgdGlueWludCgxKSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHBhcnRpYWxfc2VlZGVyYCB0aW55aW50KDEpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgcGFzc2tleWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHVwZGF0ZV9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgc2VlZGluZ190aW1lYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGB1cGxvYWRfc3BlZWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGRvd25sb2FkX3NwZWVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGB1c2VyX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGB1a19wZWVyc19pcF9wb3J0X2luZm9oYXNoYChgaXBgIEFTQywgYHBvcnRgIEFTQywgYGluZm9faGFzaGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVS29hOGwzeHFkdnhyODk4bW9za3MzaHEzY2JgKGBpcGAgQVNDLCBgcG9ydGAgQVNDLCBgaW5mb19oYXNoYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgaWR4X3BlZXJzX3VwZGF0ZV9hdGAoYHVwZGF0ZV9hdGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYGZrX3BlZXJzX3VzZXJgKGB1c2VyX2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYbW12azMzbGl5N2o1dTllNHFoeHcyZDdoNWAoYHVwZGF0ZV9hdGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfcGVlcnNfdXNlcmAgRk9SRUlHTiBLRVkgKGB1c2VyX2lkYCkgUkVGRVJFTkNFUyBgdXNlcnNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUCi0pIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDcgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHBlcm1pc3Npb25zCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcGVybWlzc2lvbnNgOwotQ1JFQVRFIFRBQkxFIGBwZXJtaXNzaW9uc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBzbHVnYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZGVmYCB0aW55aW50KDEpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXNlcl9ncm91cF9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgdWtfcGVybWlzc2lvbnNfc2x1Z2AoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUtkdjZtd2lrcHRzdTcwaGNyanEwN3Nxc2Z5YChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYGZrX3Blcm1pc3Npb25zX3VzZXJfZ3JvdXBgKGB1c2VyX2dyb3VwX2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma19wZXJtaXNzaW9uc191c2VyX2dyb3VwYCBGT1JFSUdOIEtFWSAoYHVzZXJfZ3JvdXBfaWRgKSBSRUZFUkVOQ0VTIGB1c2VyX2dyb3Vwc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMTQgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBwZXJtaXNzaW9ucwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDEsICd0b3JyZW50OnVwbG9hZCcsIDEsIDEpOwotSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDIsICd0b3JyZW50OmRvd25sb2FkJywgMSwgMSk7Ci1JTlNFUlQgSU5UTyBgcGVybWlzc2lvbnNgIFZBTFVFUyAoMywgJ3RvcnJlbnQ6dmlldycsIDEsIDEpOwotSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDQsICd0b3JyZW50OnNlYXJjaCcsIDEsIDEpOwotSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDUsICdjb21tZW50OmNyZWF0ZScsIDEsIDEpOwotSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDYsICd1c2VyOm1hbmFnZScsIDEsIDEpOwotSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDcsICd0b3JyZW50OmFwcHJvdmUnLCAxLCAxKTsKLUlOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg4LCAndG9ycmVudDp0aGFua3MnLCAxLCAxKTsKLUlOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg5LCAncHJvbW90aW9uOmxpc3QnLCAxLCAxKTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBwcm9tb3Rpb25fcG9saWNpZXMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBwcm9tb3Rpb25fcG9saWNpZXNgOwotQ1JFQVRFIFRBQkxFIGBwcm9tb3Rpb25fcG9saWNpZXNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBzbHVnYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGRpc3BsYXlfbmFtZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cGxvYWRfcmF0aW9gIGRvdWJsZSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBkb3dubG9hZF9yYXRpb2AgZG91YmxlIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGB1a19wcm9tb3Rpb25fcG9saWNpZXNfc2x1Z2AoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLY2pxcGUxZzE1b3V0ZmMwdTZhanZwd3hvZWAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMyBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHByb21vdGlvbl9wb2xpY2llcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHByb21vdGlvbl9wb2xpY2llc2AgVkFMVUVTICgxLCAnZGVmYXVsdCcsICfpu5jorqTnrZbnlaUnLCAxLCAxKTsKLUlOU0VSVCBJTlRPIGBwcm9tb3Rpb25fcG9saWNpZXNgIFZBTFVFUyAoMiwgJ3ZpcCcsICfmtLvot4PnlKjmiLfnrZbnlaUnLCAxLCAxLjUpOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfYmxvYl90cmlnZ2VycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfYmxvYl90cmlnZ2Vyc2A7Ci1DUkVBVEUgVEFCTEUgYHFydHpfYmxvYl90cmlnZ2Vyc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRSSUdHRVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEJMT0JfREFUQWAgYmxvYiBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgU0NIRURfTkFNRWAoYFNDSEVEX05BTUVgIEFTQywgYFRSSUdHRVJfTkFNRWAgQVNDLCBgVFJJR0dFUl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYHFydHpfYmxvYl90cmlnZ2Vyc19pYmZrXzFgIEZPUkVJR04gS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFJFRkVSRU5DRVMgYHFydHpfdHJpZ2dlcnNgIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgcXJ0el9ibG9iX3RyaWdnZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9jYWxlbmRhcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X2NhbGVuZGFyc2A7Ci1DUkVBVEUgVEFCTEUgYHFydHpfY2FsZW5kYXJzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYENBTEVOREFSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDQUxFTkRBUmAgYmxvYiBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYENBTEVOREFSX05BTUVgKSBVU0lORyBCVFJFRQotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X2NhbGVuZGFycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfY3Jvbl90cmlnZ2VycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfY3Jvbl90cmlnZ2Vyc2A7Ci1DUkVBVEUgVEFCTEUgYHFydHpfY3Jvbl90cmlnZ2Vyc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRSSUdHRVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYENST05fRVhQUkVTU0lPTmAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUSU1FX1pPTkVfSURgIHZhcmNoYXIoODApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgcXJ0el9jcm9uX3RyaWdnZXJzX2liZmtfMWAgRk9SRUlHTiBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgUkVGRVJFTkNFUyBgcXJ0el90cmlnZ2Vyc2AgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X2Nyb25fdHJpZ2dlcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X2ZpcmVkX3RyaWdnZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9maXJlZF90cmlnZ2Vyc2A7Ci1DUkVBVEUgVEFCTEUgYHFydHpfZmlyZWRfdHJpZ2dlcnNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEVOVFJZX0lEYCB2YXJjaGFyKDk1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRSSUdHRVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSU5TVEFOQ0VfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgRklSRURfVElNRWAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTQ0hFRF9USU1FYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFBSSU9SSVRZYCBpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNUQVRFYCB2YXJjaGFyKDE2KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEpPQl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBKT0JfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYElTX05PTkNPTkNVUlJFTlRgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBSRVFVRVNUU19SRUNPVkVSWWAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYEVOVFJZX0lEYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX0ZUX1RSSUdfSU5TVF9OQU1FYChgU0NIRURfTkFNRWAgQVNDLCBgSU5TVEFOQ0VfTkFNRWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfRlRfSU5TVF9KT0JfUkVRX1JDVlJZYChgU0NIRURfTkFNRWAgQVNDLCBgSU5TVEFOQ0VfTkFNRWAgQVNDLCBgUkVRVUVTVFNfUkVDT1ZFUllgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX0ZUX0pfR2AoYFNDSEVEX05BTUVgIEFTQywgYEpPQl9OQU1FYCBBU0MsIGBKT0JfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX0ZUX0pHYChgU0NIRURfTkFNRWAgQVNDLCBgSk9CX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9GVF9UX0dgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX05BTUVgIEFTQywgYFRSSUdHRVJfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX0ZUX1RHYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRQotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X2ZpcmVkX3RyaWdnZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9qb2JfZGV0YWlscwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfam9iX2RldGFpbHNgOwotQ1JFQVRFIFRBQkxFIGBxcnR6X2pvYl9kZXRhaWxzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBKT0JfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSk9CX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBERVNDUklQVElPTmAgdmFyY2hhcigyNTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSk9CX0NMQVNTX05BTUVgIHZhcmNoYXIoMjUwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYElTX0RVUkFCTEVgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBJU19OT05DT05DVVJSRU5UYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSVNfVVBEQVRFX0RBVEFgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBSRVFVRVNUU19SRUNPVkVSWWAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEpPQl9EQVRBYCBibG9iIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYEpPQl9OQU1FYCwgYEpPQl9HUk9VUGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9KX1JFUV9SRUNPVkVSWWAoYFNDSEVEX05BTUVgIEFTQywgYFJFUVVFU1RTX1JFQ09WRVJZYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9KX0dSUGAoYFNDSEVEX05BTUVgIEFTQywgYEpPQl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRQotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X2pvYl9kZXRhaWxzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgcXJ0el9qb2JfZGV0YWlsc2AgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAncGVlcnNfY2xlYW51cCcsICdERUZBVUxUJywgJ1BlZXJzIENsZWFudXAnLCAnY29tLmdpdGh1Yi5leGFtcGxlLnB0LmNyb250YXNrLlBlZXJzQ2xlYW51cCcsICcxJywgJzAnLCAnMCcsICcwJywgMHhBQ0VEMDAwNTczNzIwMDE1NkY3MjY3MkU3MTc1NjE3Mjc0N0EyRTRBNkY2MjQ0NjE3NDYxNEQ2MTcwOUZCMDgzRThCRkE5QjBDQjAyMDAwMDc4NzIwMDI2NkY3MjY3MkU3MTc1NjE3Mjc0N0EyRTc1NzQ2OTZDNzMyRTUzNzQ3MjY5NkU2NzRCNjU3OTQ0Njk3Mjc0Nzk0NjZDNjE2NzRENjE3MDgyMDhFOEMzRkJDNTVEMjgwMjAwMDE1QTAwMTM2MTZDNkM2Rjc3NzM1NDcyNjE2RTczNjk2NTZFNzQ0NDYxNzQ2MTc4NzIwMDFENkY3MjY3MkU3MTc1NjE3Mjc0N0EyRTc1NzQ2OTZDNzMyRTQ0Njk3Mjc0Nzk0NjZDNjE2NzRENjE3MDEzRTYyRUFEMjg3NjBBQ0UwMjAwMDI1QTAwMDU2NDY5NzI3NDc5NEMwMDAzNkQ2MTcwNzQwMDBGNEM2QTYxNzY2MTJGNzU3NDY5NkMyRjRENjE3MDNCNzg3MDAwNzM3MjAwMTE2QTYxNzY2MTJFNzU3NDY5NkMyRTQ4NjE3MzY4NEQ2MTcwMDUwN0RBQzFDMzE2NjBEMTAzMDAwMjQ2MDAwQTZDNkY2MTY0NDY2MTYzNzQ2RjcyNDkwMDA5NzQ2ODcyNjU3MzY4NkY2QzY0Nzg3MDNGNDAwMDAwMDAwMDAwMTA3NzA4MDAwMDAwMTAwMDAwMDAwMDc4MDApOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfbG9ja3MKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X2xvY2tzYDsKLUNSRUFURSBUQUJMRSBgcXJ0el9sb2Nrc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgTE9DS19OQU1FYCB2YXJjaGFyKDQwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYExPQ0tfTkFNRWApIFVTSU5HIEJUUkVFCi0pIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHFydHpfbG9ja3MKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUlOU0VSVCBJTlRPIGBxcnR6X2xvY2tzYCBWQUxVRVMgKCdzYXBsaW5nX3NjaGVkdWxlcicsICdTVEFURV9BQ0NFU1MnKTsKLUlOU0VSVCBJTlRPIGBxcnR6X2xvY2tzYCBWQUxVRVMgKCdzYXBsaW5nX3NjaGVkdWxlcicsICdUUklHR0VSX0FDQ0VTUycpOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfcGF1c2VkX3RyaWdnZXJfZ3JwcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfcGF1c2VkX3RyaWdnZXJfZ3Jwc2A7Ci1DUkVBVEUgVEFCTEUgYHFydHpfcGF1c2VkX3RyaWdnZXJfZ3Jwc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRSSUdHRVJfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFVTSU5HIEJUUkVFCi0pIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHFydHpfcGF1c2VkX3RyaWdnZXJfZ3JwcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfc2NoZWR1bGVyX3N0YXRlCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9zY2hlZHVsZXJfc3RhdGVgOwotQ1JFQVRFIFRBQkxFIGBxcnR6X3NjaGVkdWxlcl9zdGF0ZWAgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBJTlNUQU5DRV9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgTEFTVF9DSEVDS0lOX1RJTUVgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYENIRUNLSU5fSU5URVJWQUxgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYElOU1RBTkNFX05BTUVgKSBVU0lORyBCVFJFRQotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X3NjaGVkdWxlcl9zdGF0ZQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHFydHpfc2NoZWR1bGVyX3N0YXRlYCBWQUxVRVMgKCdzYXBsaW5nX3NjaGVkdWxlcicsICdMQVBUT1AtVjI0SzVBNTUxNzQ5MDE4NDg5NTg4JywgMTc0OTAxODUxMDE4MiwgMTAwMDApOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfc2ltcGxlX3RyaWdnZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9zaW1wbGVfdHJpZ2dlcnNgOwotQ1JFQVRFIFRBQkxFIGBxcnR6X3NpbXBsZV90cmlnZ2Vyc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUkVQRUFUX0NPVU5UYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBSRVBFQVRfSU5URVJWQUxgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRJTUVTX1RSSUdHRVJFRGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgcXJ0el9zaW1wbGVfdHJpZ2dlcnNfaWJma18xYCBGT1JFSUdOIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBSRUZFUkVOQ0VTIGBxcnR6X3RyaWdnZXJzYCAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUCi0pIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHFydHpfc2ltcGxlX3RyaWdnZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgcXJ0el9zaW1wbGVfdHJpZ2dlcnNgIFZBTFVFUyAoJ3NhcGxpbmdfc2NoZWR1bGVyJywgJzZkYTY0YjViZDJlZS0zN2ZmYTgyYS1hNTk4LTQ4NWMtOTcxOC00MGVlOTBjMjZiYzQnLCAnREVGQVVMVCcsIC0xLCAxODAwMDAwLCAxKTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X3NpbXByb3BfdHJpZ2dlcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X3NpbXByb3BfdHJpZ2dlcnNgOwotQ1JFQVRFIFRBQkxFIGBxcnR6X3NpbXByb3BfdHJpZ2dlcnNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTVFJfUFJPUF8xYCB2YXJjaGFyKDUxMikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNUUl9QUk9QXzJgIHZhcmNoYXIoNTEyKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU1RSX1BST1BfM2AgdmFyY2hhcig1MTIpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBJTlRfUFJPUF8xYCBpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSU5UX1BST1BfMmAgaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYExPTkdfUFJPUF8xYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgTE9OR19QUk9QXzJgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBERUNfUFJPUF8xYCBkZWNpbWFsKDEzLCA0KSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBERUNfUFJPUF8yYCBkZWNpbWFsKDEzLCA0KSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBCT09MX1BST1BfMWAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQk9PTF9QUk9QXzJgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBxcnR6X3NpbXByb3BfdHJpZ2dlcnNfaWJma18xYCBGT1JFSUdOIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBSRUZFUkVOQ0VTIGBxcnR6X3RyaWdnZXJzYCAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUCi0pIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHFydHpfc2ltcHJvcF90cmlnZ2VycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfdHJpZ2dlcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X3RyaWdnZXJzYDsKLUNSRUFURSBUQUJMRSBgcXJ0el90cmlnZ2Vyc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBKT0JfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSk9CX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBERVNDUklQVElPTmAgdmFyY2hhcigyNTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgTkVYVF9GSVJFX1RJTUVgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUFJFVl9GSVJFX1RJTUVgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUFJJT1JJVFlgIGludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9TVEFURWAgdmFyY2hhcigxNikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX1RZUEVgIHZhcmNoYXIoOCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTVEFSVF9USU1FYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEVORF9USU1FYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYENBTEVOREFSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYE1JU0ZJUkVfSU5TVFJgIHNtYWxsaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBKT0JfREFUQWAgYmxvYiBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9UX0pgKGBTQ0hFRF9OQU1FYCBBU0MsIGBKT0JfTkFNRWAgQVNDLCBgSk9CX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9UX0pHYChgU0NIRURfTkFNRWAgQVNDLCBgSk9CX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9UX0NgKGBTQ0hFRF9OQU1FYCBBU0MsIGBDQUxFTkRBUl9OQU1FYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9UX0dgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9UX1NUQVRFYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9TVEFURWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9OX1NUQVRFYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9OQU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MsIGBUUklHR0VSX1NUQVRFYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9UX05fR19TVEFURWAoYFNDSEVEX05BTUVgIEFTQywgYFRSSUdHRVJfR1JPVVBgIEFTQywgYFRSSUdHRVJfU1RBVEVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX1RfTkVYVF9GSVJFX1RJTUVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBORVhUX0ZJUkVfVElNRWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9ORlRfU1RgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX1NUQVRFYCBBU0MsIGBORVhUX0ZJUkVfVElNRWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9ORlRfTUlTRklSRWAoYFNDSEVEX05BTUVgIEFTQywgYE1JU0ZJUkVfSU5TVFJgIEFTQywgYE5FWFRfRklSRV9USU1FYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9UX05GVF9TVF9NSVNGSVJFYChgU0NIRURfTkFNRWAgQVNDLCBgTUlTRklSRV9JTlNUUmAgQVNDLCBgTkVYVF9GSVJFX1RJTUVgIEFTQywgYFRSSUdHRVJfU1RBVEVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX1RfTkZUX1NUX01JU0ZJUkVfR1JQYChgU0NIRURfTkFNRWAgQVNDLCBgTUlTRklSRV9JTlNUUmAgQVNDLCBgTkVYVF9GSVJFX1RJTUVgIEFTQywgYFRSSUdHRVJfR1JPVVBgIEFTQywgYFRSSUdHRVJfU1RBVEVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgcXJ0el90cmlnZ2Vyc19pYmZrXzFgIEZPUkVJR04gS0VZIChgU0NIRURfTkFNRWAsIGBKT0JfTkFNRWAsIGBKT0JfR1JPVVBgKSBSRUZFUkVOQ0VTIGBxcnR6X2pvYl9kZXRhaWxzYCAoYFNDSEVEX05BTUVgLCBgSk9CX05BTUVgLCBgSk9CX0dST1VQYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X3RyaWdnZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgcXJ0el90cmlnZ2Vyc2AgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAnNmRhNjRiNWJkMmVlLTM3ZmZhODJhLWE1OTgtNDg1Yy05NzE4LTQwZWU5MGMyNmJjNCcsICdERUZBVUxUJywgJ3BlZXJzX2NsZWFudXAnLCAnREVGQVVMVCcsIE5VTEwsIDE3NDkwMjAyODg1MDUsIDE3NDkwMTg0ODg1MDUsIDUsICdXQUlUSU5HJywgJ1NJTVBMRScsIDE3NDkwMTg0ODg1MDUsIDAsIE5VTEwsIDAsICcnKTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBzZWVkYm94Ci0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgc2VlZGJveGA7Ci1DUkVBVEUgVEFCTEUgYHNlZWRib3hgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYGFkZHJlc3NgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYGRvd25sb2FkX211bHRpcGxpZXJfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXBsb2FkX211bHRpcGxpZXJfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVS2VjYmVoanRnM2JmcjRybXlpeHQxZ2N2ZnFgKGBhZGRyZXNzYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBGS3E2M3RxaHlrZ2w5Nmw0cmt3eTl3aWR5NWJgKGBkb3dubG9hZF9tdWx0aXBsaWVyX2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBGSzl4bDUxbmEzZG44azdvdThjeXY3czF3cmZgKGB1cGxvYWRfbXVsdGlwbGllcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBGSzl4bDUxbmEzZG44azdvdThjeXY3czF3cmZgIEZPUkVJR04gS0VZIChgdXBsb2FkX211bHRpcGxpZXJfaWRgKSBSRUZFUkVOQ0VTIGBwcm9tb3Rpb25fcG9saWNpZXNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYEZLcTYzdHFoeWtnbDk2bDRya3d5OXdpZHk1YmAgRk9SRUlHTiBLRVkgKGBkb3dubG9hZF9tdWx0aXBsaWVyX2lkYCkgUkVGRVJFTkNFUyBgcHJvbW90aW9uX3BvbGljaWVzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2Ygc2VlZGJveAotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHNldHRpbmdzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgc2V0dGluZ3NgOwotQ1JFQVRFIFRBQkxFIGBzZXR0aW5nc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBzZXR0aW5nX2tleWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNldHRpbmdfdmFsdWVgIG1lZGl1bXRleHQgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgdWtfc2V0dGluZ3Nfc2V0dGluZ19rZXlgKGBzZXR0aW5nX2tleWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVS3N3ZDA1ZHZqNHVrdnc1cTEzNWJwYmJmYWVgKGBzZXR0aW5nX2tleWAgQVNDKSBVU0lORyBCVFJFRQotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHRhZ3MKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGB0YWdzYDsKLUNSRUFURSBUQUJMRSBgdGFnc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBgbmFtZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGB1a190YWdzX25hbWVgKGBuYW1lYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUt0NDh4ZHE1NjBnczNnYXA5ZzdqZzM2a2djYChgbmFtZWAgQVNDKSBVU0lORyBCVFJFRQotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxMCBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHRhZ3MKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUlOU0VSVCBJTlRPIGB0YWdzYCBWQUxVRVMgKDksICdbXCJsaW51eFwiXScpOwotSU5TRVJUIElOVE8gYHRhZ3NgIFZBTFVFUyAoMywgJ2RlYmlhbicpOwotSU5TRVJUIElOVE8gYHRhZ3NgIFZBTFVFUyAoMSwgJ2xpbnV4Jyk7Ci1JTlNFUlQgSU5UTyBgdGFnc2AgVkFMVUVTICg1LCAnbWFjb3MnKTsKLUlOU0VSVCBJTlRPIGB0YWdzYCBWQUxVRVMgKDIsICd1YnVudHUnKTsKLUlOU0VSVCBJTlRPIGB0YWdzYCBWQUxVRVMgKDQsICd3aW5kb3dzJyk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdGhhbmtzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgdGhhbmtzYDsKLUNSRUFURSBUQUJMRSBgdGhhbmtzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBgdG9ycmVudF9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVzZXJfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUtydDlsZzBoNTNicmdwZjlpYXQ1aGNtZjZnYChgdXNlcl9pZGAgQVNDLCBgdG9ycmVudF9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBGS3Aza2doMjV0a280OHZxN3g2dTJ3M2R2cHBgKGB0b3JyZW50X2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgRksydDkwaDIxczVoeXg2aHluZXdzZGxrNDZqYCBGT1JFSUdOIEtFWSAoYHVzZXJfaWRgKSBSRUZFUkVOQ0VTIGB1c2Vyc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBGS3Aza2doMjV0a280OHZxN3g2dTJ3M2R2cHBgIEZPUkVJR04gS0VZIChgdG9ycmVudF9pZGApIFJFRkVSRU5DRVMgYHRvcnJlbnRzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgdGhhbmtzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdG9ycmVudHMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGB0b3JyZW50c2A7Ci1DUkVBVEUgVEFCTEUgYHRvcnJlbnRzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGluZm9faGFzaGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVzZXJfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHRpdGxlYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc3ViX3RpdGxlYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc2l6ZWAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgY3JlYXRlZF9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXBkYXRlZF9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdW5kZXJfcmV2aWV3YCB0aW55aW50KDEpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYW5vbnltb3VzYCB0aW55aW50KDEpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgY2F0ZWdvcnlfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHByb21vdGlvbl9wb2xpY3lfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGRlc2NyaXB0aW9uYCBtZWRpdW10ZXh0IENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYHVrX3RvcnJlbnRzX2luZm9faGFzaGAoYGluZm9faGFzaGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVS2hhZzJlajF2bzhzbnZpcmIxbHY0YjhyNHhgKGBpbmZvX2hhc2hgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBpZHhfdG9ycmVudHNfdGl0bGVgKGB0aXRsZWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYGlkeF90b3JyZW50c19zdWJfdGl0bGVgKGBzdWJfdGl0bGVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBpZHhfdG9ycmVudHNfcHJvbW90aW9uX3BvbGljeV9pZGAoYHByb21vdGlvbl9wb2xpY3lfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBma190b3JyZW50c191c2VyYChgdXNlcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYGZrX3RvcnJlbnRzX2NhdGVnb3J5YChgY2F0ZWdvcnlfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhkcGxrYWFwcXNsZWxuc2N1dW5mcG05ZWI2YChgdGl0bGVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFg2cjVraDZpNGF3cGRseXRqbW0wNnBrMjJrYChgc3ViX3RpdGxlYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYZDJqM2g4dGQ3NjgyY2N0a3Y1bzc3YjMzeWAoYHByb21vdGlvbl9wb2xpY3lfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYGZrX3RvcnJlbnRzX2NhdGVnb3J5YCBGT1JFSUdOIEtFWSAoYGNhdGVnb3J5X2lkYCkgUkVGRVJFTkNFUyBgY2F0ZWdvcmllc2AgKGBpZGApIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgUkVTVFJJQ1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYGZrX3RvcnJlbnRzX3Byb21vdGlvbl9wb2xpY3lgIEZPUkVJR04gS0VZIChgcHJvbW90aW9uX3BvbGljeV9pZGApIFJFRkVSRU5DRVMgYHByb21vdGlvbl9wb2xpY2llc2AgKGBpZGApIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgUkVTVFJJQ1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYGZrX3RvcnJlbnRzX3VzZXJgIEZPUkVJR04gS0VZIChgdXNlcl9pZGApIFJFRkVSRU5DRVMgYHVzZXJzYCAoYGlkYCkgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHRvcnJlbnRzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgdG9ycmVudHNgIFZBTFVFUyAoNywgJzQ5OWU5YzY5ZTkwYjk3NmM1Yzg0NTQyY2Y5Yjg4ZmFkMWUxMmVmMWMnLCAxLCAnZXhhbXBsZSB0b3JyZW50IHRpdGxlJywgJ3N1YnRpdGxlIGhlcmUnLCA2NjE5NCwgJzIwMjUtMDYtMDQgMDM6NDE6MjcnLCAnMjAyNS0wNi0wNCAwMzo0MToyNycsIDAsIDAsIDEsIDEsICfmvJTnpLrnp43lrZAnKTsKLUlOU0VSVCBJTlRPIGB0b3JyZW50c2AgVkFMVUVTICg4LCAnZjQ1Nzc1NTY0Yzg4YjVhMjc4MmEzMDFkMTYyZTFkNDgxMWIwYjZkNScsIDEsICdleGFtcGxlIHRvcnJlbnQgdGl0bGUnLCAnc3VidGl0bGUgaGVyZScsIDIzMTEwNSwgJzIwMjUtMDYtMDQgMDU6MjA6MzcnLCAnMjAyNS0wNi0wNCAwNToyMDozNycsIDAsIDAsIDEsIDEsICfmvJTnpLrnp43lrZAnKTsKLUlOU0VSVCBJTlRPIGB0b3JyZW50c2AgVkFMVUVTICg5LCAnOGUxMGM5ZGFhMWI1ZmIxOGRjNWIwZTczOTg4ODA4YmE5NTgzOTFmYScsIDEsICdleGFtcGxlIHRvcnJlbnQgdGl0bGUnLCAnc3VidGl0bGUgaGVyZScsIDQyNjE1NSwgJzIwMjUtMDYtMDQgMDY6MDM6NDknLCAnMjAyNS0wNi0wNCAwNjowMzo0OScsIDAsIDAsIDEsIDEsICfmvJTnpLrnp43lrZAnKTsKLUlOU0VSVCBJTlRPIGB0b3JyZW50c2AgVkFMVUVTICgxMCwgJzFlMzI3NWY1NGVjMDc0YWYyZDk5ODI4MzExZDRhODQ4OGViN2E0ODcnLCAxLCAnZXhhbXBsZSB0b3JyZW50IHRpdGxlJywgJ3N1YnRpdGxlIGhlcmUnLCAxMzg2MTY5NCwgJzIwMjUtMDYtMDQgMDY6MTA6MjMnLCAnMjAyNS0wNi0wNCAwNjoxMDoyMycsIDAsIDAsIDEsIDEsICfmvJTnpLrnp43lrZAnKTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciB0b3JyZW50c190YWcKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGB0b3JyZW50c190YWdgOwotQ1JFQVRFIFRBQkxFIGB0b3JyZW50c190YWdgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdG9ycmVudF9pZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHRhZ19pZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGB0b3JyZW50X2lkYCwgYHRhZ19pZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYGZrX3RvcnJlbnRzX3RhZ190YWdgKGB0YWdfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma190b3JyZW50c190YWdfdGFnYCBGT1JFSUdOIEtFWSAoYHRhZ19pZGApIFJFRkVSRU5DRVMgYHRhZ3NgIChgaWRgKSBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgUkVTVFJJQ1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma190b3JyZW50c190YWdfdG9ycmVudGAgRk9SRUlHTiBLRVkgKGB0b3JyZW50X2lkYCkgUkVGRVJFTkNFUyBgdG9ycmVudHNgIChgaWRgKSBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgdG9ycmVudHNfdGFnCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgdG9ycmVudHNfdGFnYCBWQUxVRVMgKDcsIDkpOwotSU5TRVJUIElOVE8gYHRvcnJlbnRzX3RhZ2AgVkFMVUVTICg4LCA5KTsKLUlOU0VSVCBJTlRPIGB0b3JyZW50c190YWdgIFZBTFVFUyAoOSwgOSk7Ci1JTlNFUlQgSU5UTyBgdG9ycmVudHNfdGFnYCBWQUxVRVMgKDEwLCA5KTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciB0cmFuc2Zlcl9oaXN0b3J5Ci0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgdHJhbnNmZXJfaGlzdG9yeWA7Ci1DUkVBVEUgVEFCTEUgYHRyYW5zZmVyX2hpc3RvcnlgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVzZXJfaWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdG9ycmVudF9pZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB0b19nb2AgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBzdGFydGVkX2F0YCB0aW1lc3RhbXAgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVwZGF0ZWRfYXRgIHRpbWVzdGFtcCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXBsb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZG93bmxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBhY3R1YWxfdXBsb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYWN0dWFsX2Rvd25sb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXBsb2FkX3NwZWVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGRvd25sb2FkX3NwZWVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGxhc3RfZXZlbnRgIGVudW0oJ3N0YXJ0ZWQnLCdjb21wbGV0ZWQnLCdzdG9wcGVkJywncGF1c2VkJywndW5rbm93bicpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaGF2ZV9jb21wbGV0ZV9oaXN0b3J5YCB0aW55aW50KDEpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYHVrX3VzZXJfdG9ycmVudGAoYHVzZXJfaWRgIEFTQywgYHRvcnJlbnRfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVS3JtNXA0eHYzcmIydm02cHNxbDVqZTk0amhgKGB1c2VyX2lkYCBBU0MsIGB0b3JyZW50X2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBma190cmFuc2Zlcl90b3JyZW50YChgdG9ycmVudF9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma190cmFuc2Zlcl90b3JyZW50YCBGT1JFSUdOIEtFWSAoYHRvcnJlbnRfaWRgKSBSRUZFUkVOQ0VTIGB0b3JyZW50c2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfdHJhbnNmZXJfdXNlcmAgRk9SRUlHTiBLRVkgKGB1c2VyX2lkYCkgUkVGRVJFTkNFUyBgdXNlcnNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUCi0pIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDMgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiB0cmFuc2Zlcl9oaXN0b3J5Ci0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgdHJhbnNmZXJfaGlzdG9yeWAgVkFMVUVTICgxLCAxLCA3LCA2NjE5NCwgJzIwMjUtMDYtMDQgMDQ6NDM6MzAnLCAnMjAyNS0wNi0wNCAwNToyMToyNScsIDAsIDAsIDAsIDAsIDAsIDAsICdjb21wbGV0ZWQnLCAxKTsKLUlOU0VSVCBJTlRPIGB0cmFuc2Zlcl9oaXN0b3J5YCBWQUxVRVMgKDIsIDEsIDEwLCAwLCAnMjAyNS0wNi0wNCAwNjoxMTozMScsICcyMDI1LTA2LTA0IDA2OjEzOjIxJywgMjc3MjMzODgsIDAsIDAsIDI3NzIzMzg4LCAwLCA3Nzg3NCwgJ3N0YXJ0ZWQnLCAxKTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciB1c2VyX2dyb3VwcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHVzZXJfZ3JvdXBzYDsKLUNSRUFURSBUQUJMRSBgdXNlcl9ncm91cHNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc2x1Z2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGRpc3BsYXlfbmFtZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHByb21vdGlvbl9wb2xpY3lfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYHVrX3VzZXJfZ3JvdXBzX3NsdWdgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLa2tqZTFqYm1ya2FtMWs3amJkMzlob213MGAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBma191c2VyX2dyb3Vwc19wcm9tb3Rpb25fcG9saWN5YChgcHJvbW90aW9uX3BvbGljeV9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfdXNlcl9ncm91cHNfcHJvbW90aW9uX3BvbGljeWAgRk9SRUlHTiBLRVkgKGBwcm9tb3Rpb25fcG9saWN5X2lkYCkgUkVGRVJFTkNFUyBgcHJvbW90aW9uX3BvbGljaWVzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAzIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgdXNlcl9ncm91cHMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUlOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc2AgVkFMVUVTICgxLCAnZGVmYXVsdCcsICfpu5jorqTnlKjmiLfnu4QnLCAxKTsKLUlOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc2AgVkFMVUVTICgyLCAndmlwJywgJ+a0u+i3g+eUqOaIt+e7hCcsIDIpOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYDsKLUNSRUFURSBUQUJMRSBgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXNlcl9ncm91cF9pZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBwZXJtaXNzaW9uX2VudGl0aWVzX2lkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGB1c2VyX2dyb3VwX2lkYCwgYHBlcm1pc3Npb25fZW50aXRpZXNfaWRgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLXzk1ajl1YXE5NmJ2ZDl5a24wc25neXdrczZgKGBwZXJtaXNzaW9uX2VudGl0aWVzX2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYGZrX3VncGVfcGVybWlzc2lvbmAgRk9SRUlHTiBLRVkgKGBwZXJtaXNzaW9uX2VudGl0aWVzX2lkYCkgUkVGRVJFTkNFUyBgcGVybWlzc2lvbnNgIChgaWRgKSBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgUkVTVFJJQ1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfdWdwZV91c2VyX2dyb3VwYCBGT1JFSUdOIEtFWSAoYHVzZXJfZ3JvdXBfaWRgKSBSRUZFUkVOQ0VTIGB1c2VyX2dyb3Vwc2AgKGBpZGApIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllc2AgVkFMVUVTICgxLCAxKTsKLUlOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDIpOwotSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgMyk7Ci1JTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllc2AgVkFMVUVTICgxLCA0KTsKLUlOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDUpOwotSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgNik7Ci1JTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllc2AgVkFMVUVTICgxLCA3KTsKLUlOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDgpOwotSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgOSk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdXNlcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGB1c2Vyc2A7Ci1DUkVBVEUgVEFCTEUgYHVzZXJzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGVtYWlsYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgcGFzc3dvcmRgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGB1c2VybmFtZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGdyb3VwX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBwYXNza2V5YCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgY3JlYXRlX2F0YCB0aW1lc3RhbXAgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBhdmF0YXJgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBjdXN0b21fdGl0bGVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBzaWduYXR1cmVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBsYW5ndWFnZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGRvd25sb2FkX2JhbmR3aWR0aGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHVwbG9hZF9iYW5kd2lkdGhgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBkb3dubG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGB1cGxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgcmVhbF9kb3dubG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGByZWFsX3VwbG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBpc3BgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBrYXJtYWAgZGVjaW1hbCgxOSwgMikgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBpbnZpdGVfc2xvdGAgaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgc2VlZGluZ190aW1lYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBwZXJzb25hbF9hY2Nlc3NfdG9rZW5gIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBwcml2YWN5X2xldmVsYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgdWtfdXNlcnNfdXNlcm5hbWVgKGB1c2VybmFtZWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGB1a191c2Vyc19lbWFpbGAoYGVtYWlsYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYHVrX3VzZXJzX3Bhc3NrZXlgKGBwYXNza2V5YCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLcjQzYWY5YXA0ZWRtNDNtbXRxMDFvZGRqNmAoYHVzZXJuYW1lYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLNmRvdGtvdHQya2pzcDh2dzRkMG0yNWZiN2AoYGVtYWlsYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLNDAyc3g2Y3FnazY2dXd0N2V5ZjU0dG1pamAoYHBhc3NrZXlgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBma191c2Vyc19ncm91cGAoYGdyb3VwX2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma191c2Vyc19ncm91cGAgRk9SRUlHTiBLRVkgKGBncm91cF9pZGApIFJFRkVSRU5DRVMgYHVzZXJfZ3JvdXBzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAyIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgdXNlcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUlOU0VSVCBJTlRPIGB1c2Vyc2AgVkFMVUVTICgxLCAndGVzdHVzZXJAZXhhbXBsZS5jb20nLCAnJDJhJDA2JEpxdkhwQzk0bW5OMjN1d21aWDBYSGV1eUZqM00yMklrdzhWQlpSb3BmcmxXYlBmQTRLUkV1JywgJ3Rlc3R1c2VyJywgMSwgJzQ3MDUwZThmLWYzZmQtNGE5Yy1hODI4LTBlMGRlNDU2NjkxZicsICcyMDI1LTA2LTAzIDExOjM0OjA4JywgJ2h0dHBzOi8vd3d3LmJhaWR1LmNvbS9mYWNpdm9uLmljbycsICfmtYvor5XnlKjmiLcnLCAn6L+Z5Liq55So5oi35b6I5oeS77yM6L+Y5rKh5pyJ5Liq5oCn562+5ZCNJywgJ3poLUNOJywgJzEwMG1icHMnLCAnMTAwbWJwcycsIDAsIDI3NzIzMzg4LCAyNzcyMzM4OCwgMCwgJ+acquefpScsIDAuMDAsIDAsIDMwNzkwMDY4LCAnOTQ4YzkxNDYtZmY1Zi00YWQ2LThiYTUtZDMyZTEyMDljYWZkJywgJzAnKTsKLQotU0VUIEZPUkVJR05fS0VZX0NIRUNLUyA9IDE7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgY2hhdF9tZXNzYWdlcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYGNoYXRfbWVzc2FnZXNgOwotQ1JFQVRFIFRBQkxFIGNoYXRfbWVzc2FnZXMgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkIEJJR0lOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb29tX2lkIEJJR0lOVCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2lkIEJJR0lOVCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IFRFWFQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9hdCBEQVRFVElNRSBOT1QgTlVMTAotKTsKKy8qDQorIE5hdmljYXQgUHJlbWl1bSBEdW1wIFNRTA0KKw0KKyBTb3VyY2UgU2VydmVyICAgICAgICAgOiBmaXJzdA0KKyBTb3VyY2UgU2VydmVyIFR5cGUgICAgOiBNeVNRTA0KKyBTb3VyY2UgU2VydmVyIFZlcnNpb24gOiA4MDAzNiAoOC4wLjM2KQ0KKyBTb3VyY2UgSG9zdCAgICAgICAgICAgOiBsb2NhbGhvc3Q6MzMwNg0KKyBTb3VyY2UgU2NoZW1hICAgICAgICAgOiBwcHQNCisNCisgVGFyZ2V0IFNlcnZlciBUeXBlICAgIDogTXlTUUwNCisgVGFyZ2V0IFNlcnZlciBWZXJzaW9uIDogODAwMzYgKDguMC4zNikNCisgRmlsZSBFbmNvZGluZyAgICAgICAgIDogNjUwMDENCisNCisgRGF0ZTogMDQvMDYvMjAyNSAxNDozMzo0MA0KKyovDQorDQorU0VUIE5BTUVTIHV0ZjhtYjQ7DQorU0VUIEZPUkVJR05fS0VZX0NIRUNLUyA9IDA7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgY2F0ZWdvcmllcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgY2F0ZWdvcmllc2A7DQorQ1JFQVRFIFRBQkxFIGBjYXRlZ29yaWVzYCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgc2x1Z2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBuYW1lYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGljb25gIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX2NhdGVnb3JpZXNfc2x1Z2AoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLb3VsMTRobzdiY3RiZWZ2OGp5d3A1djNpMmAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgaWR4X2NhdGVnb3JpZXNfc2x1Z2AoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYb3VsMTRobzdiY3RiZWZ2OGp5d3A1djNpMmAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiBjYXRlZ29yaWVzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGBjYXRlZ29yaWVzYCBWQUxVRVMgKDEsICdvcycsICfmk43kvZzns7vnu58nLCAnb3MtaWNvbi5wbmcnKTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBleGFtX3BsYW5zDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBleGFtX3BsYW5zYDsNCitDUkVBVEUgVEFCTEUgYGV4YW1fcGxhbnNgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGBkaXNwbGF5X25hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgZG93bmxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYGR1cmF0aW9uYCBiaWdpbnQgTk9UIE5VTEwsDQorICBga2FybWFgIGRvdWJsZSBOT1QgTlVMTCwNCisgIGBzZWVkaW5nX3RpbWVgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBzZWVkc2AgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHNoYXJlX3JhdGlvYCBkb3VibGUgTk9UIE5VTEwsDQorICBgc2x1Z2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGB1cGxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVSzc0amFlcGllYWoydW1zd3BxbjE2eXkzeDVgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWDc0amFlcGllYWoydW1zd3BxbjE2eXkzeDVgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgZXhhbV9wbGFucw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBleGFtcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgZXhhbXNgOw0KK0NSRUFURSBUQUJMRSBgZXhhbXNgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGBlbmRfYXRgIGRhdGV0aW1lKDYpIE5PVCBOVUxMLA0KKyAgYGV4YW1fcGxhbl9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYHVzZXJfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUsyd2lpMGlnZDN2ZGZlY3kwMG9wMHVuNHF0YChgdXNlcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFgyd2lpMGlnZDN2ZGZlY3kwMG9wMHVuNHF0YChgdXNlcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBGS2wwY2lwczFnYW55M2N1cHB5ZnM3bnRwYWlgKGBleGFtX3BsYW5faWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBGS2k2M2NwbDF4a2d5MzJpcTY4cnU0eXBqbjRgIEZPUkVJR04gS0VZIChgdXNlcl9pZGApIFJFRkVSRU5DRVMgYHVzZXJzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVCwNCisgIENPTlNUUkFJTlQgYEZLbDBjaXBzMWdhbnkzY3VwcHlmczdudHBhaWAgRk9SRUlHTiBLRVkgKGBleGFtX3BsYW5faWRgKSBSRUZFUkVOQ0VTIGBleGFtX3BsYW5zYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIGV4YW1zDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIGxvZ2luX2hpc3RvcnkNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYGxvZ2luX2hpc3RvcnlgOw0KK0NSRUFURSBUQUJMRSBgbG9naW5faGlzdG9yeWAgICgNCisgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULA0KKyAgYHVzZXJfaWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGB0aW1lYCB0aW1lc3RhbXAgTk9UIE5VTEwsDQorICBgdHlwZWAgZW51bSgnQUNDT1VOVCcsJ1BBU1NLRVknLCdQRVJTT05BTF9BQ0NFU1NUT0tFTicsJ1BST0dSQU1fSU5URVJOQUwnLCdUV09fU1RFUF9WRVJJRklDQVRJT04nKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgaXBfYWRkcmVzc2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGB1c2VyX2FnZW50YCB2YXJjaGFyKDUxMikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYGxvY2F0aW9uYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYGlkeF9sb2dpbl90aW1lYChgdGltZWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBma19sb2dpbmhpc3RvcnlfdXNlcmAoYHVzZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYM2xmdDQ0bWFrcnhvbW14bTYzazd4ajc3ZGAoYHRpbWVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBma19sb2dpbmhpc3RvcnlfdXNlcmAgRk9SRUlHTiBLRVkgKGB1c2VyX2lkYCkgUkVGRVJFTkNFUyBgdXNlcnNgIChgaWRgKSBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDMzIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgbG9naW5faGlzdG9yeQ0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxLCAxLCAnMjAyNS0wNi0wMyAxMjoyNTozMycsICdBQ0NPVU5UJywgJzA6MDowOjA6MDowOjA6MScsICdQb3N0bWFuUnVudGltZS83LjQzLjQnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDIsIDEsICcyMDI1LTA2LTAzIDEyOjUxOjQyJywgJ0FDQ09VTlQnLCAnMDowOjA6MDowOjA6MDoxJywgJ1Bvc3RtYW5SdW50aW1lLzcuNDMuNCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMywgMSwgJzIwMjUtMDYtMDMgMTI6NTI6NTUnLCAnQUNDT1VOVCcsICcwOjA6MDowOjA6MDowOjEnLCAnUG9zdG1hblJ1bnRpbWUvNy40My40JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICg0LCAxLCAnMjAyNS0wNi0wMyAxNDoyMDo1NScsICdBQ0NPVU5UJywgJzA6MDowOjA6MDowOjA6MScsICdQb3N0bWFuUnVudGltZS83LjQzLjQnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDUsIDEsICcyMDI1LTA2LTAzIDE0OjMxOjEzJywgJ0FDQ09VTlQnLCAnMDowOjA6MDowOjA6MDoxJywgJ1Bvc3RtYW5SdW50aW1lLzcuNDMuNCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoNiwgMSwgJzIwMjUtMDYtMDQgMDM6NDA6MTAnLCAnQUNDT1VOVCcsICcwOjA6MDowOjA6MDowOjEnLCAnUG9zdG1hblJ1bnRpbWUvNy40NC4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICg3LCAxLCAnMjAyNS0wNi0wNCAwMzo0MzowOScsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDgsIDEsICcyMDI1LTA2LTA0IDAzOjQ0OjI3JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdxQml0dG9ycmVudC81LjEuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoOSwgMSwgJzIwMjUtMDYtMDQgMDM6NTE6MzUnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxMCwgMSwgJzIwMjUtMDYtMDQgMDM6NTI6MjInLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTEsIDEsICcyMDI1LTA2LTA0IDAzOjUyOjUzJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDEyLCAxLCAnMjAyNS0wNi0wNCAwMzo1MzoxMicsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxMywgMSwgJzIwMjUtMDYtMDQgMDM6NTQ6NDYnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxNCwgMSwgJzIwMjUtMDYtMDQgMDM6NTg6MTQnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTUsIDEsICcyMDI1LTA2LTA0IDA0OjIyOjMwJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE2LCAxLCAnMjAyNS0wNi0wNCAwNDo0MzoyOScsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxNywgMSwgJzIwMjUtMDYtMDQgMDQ6NTQ6MDknLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTgsIDEsICcyMDI1LTA2LTA0IDA0OjU5OjEzJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE5LCAxLCAnMjAyNS0wNi0wNCAwNToxNzowNycsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDIwLCAxLCAnMjAyNS0wNi0wNCAwNToxODoyOCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDIxLCAxLCAnMjAyNS0wNi0wNCAwNToyMToyNScsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDIyLCAxLCAnMjAyNS0wNi0wNCAwNToyMTo1OCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDIzLCAxLCAnMjAyNS0wNi0wNCAwNToyMjoyNCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyNCwgMSwgJzIwMjUtMDYtMDQgMDU6MjI6MzAnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjUsIDEsICcyMDI1LTA2LTA0IDA1OjI3OjQ0JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI2LCAxLCAnMjAyNS0wNi0wNCAwNToyNzo1MCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyNywgMSwgJzIwMjUtMDYtMDQgMDU6MzE6NDUnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjgsIDEsICcyMDI1LTA2LTA0IDA1OjMzOjAwJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI5LCAxLCAnMjAyNS0wNi0wNCAwNjoxMTozMScsICdQQVNTS0VZJywgJzE5Mi4xNjguMjU0LjEnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDMwLCAxLCAnMjAyNS0wNi0wNCAwNjoxMjoxMycsICdQQVNTS0VZJywgJzE5Mi4xNjguMjU0LjEnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgzMSwgMSwgJzIwMjUtMDYtMDQgMDY6MTI6MjcnLCAnUEFTU0tFWScsICcxOTIuMTY4LjI1NC4xJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMzIsIDEsICcyMDI1LTA2LTA0IDA2OjEzOjIxJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4yNTQuMScsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHBlZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBwZWVyc2A7DQorQ1JFQVRFIFRBQkxFIGBwZWVyc2AgICgNCisgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULA0KKyAgYGlwYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHBvcnRgIGludCBOT1QgTlVMTCwNCisgIGBpbmZvX2hhc2hgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgcGVlcl9pZGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGB1c2VyX2FnZW50YCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHVwbG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgZG93bmxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHRvX2dvYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgc2VlZGVyYCB0aW55aW50KDEpIE5PVCBOVUxMLA0KKyAgYHBhcnRpYWxfc2VlZGVyYCB0aW55aW50KDEpIE5PVCBOVUxMLA0KKyAgYHBhc3NrZXlgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgdXBkYXRlX2F0YCB0aW1lc3RhbXAgTk9UIE5VTEwsDQorICBgc2VlZGluZ190aW1lYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgdXBsb2FkX3NwZWVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgZG93bmxvYWRfc3BlZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGB1c2VyX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3BlZXJzX2lwX3BvcnRfaW5mb2hhc2hgKGBpcGAgQVNDLCBgcG9ydGAgQVNDLCBgaW5mb19oYXNoYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS29hOGwzeHFkdnhyODk4bW9za3MzaHEzY2JgKGBpcGAgQVNDLCBgcG9ydGAgQVNDLCBgaW5mb19oYXNoYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYGlkeF9wZWVyc191cGRhdGVfYXRgKGB1cGRhdGVfYXRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgZmtfcGVlcnNfdXNlcmAoYHVzZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYbW12azMzbGl5N2o1dTllNHFoeHcyZDdoNWAoYHVwZGF0ZV9hdGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYGZrX3BlZXJzX3VzZXJgIEZPUkVJR04gS0VZIChgdXNlcl9pZGApIFJFRkVSRU5DRVMgYHVzZXJzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gNyBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHBlcm1pc3Npb25zDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBwZXJtaXNzaW9uc2A7DQorQ1JFQVRFIFRBQkxFIGBwZXJtaXNzaW9uc2AgICgNCisgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULA0KKyAgYHNsdWdgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgZGVmYCB0aW55aW50KDEpIE5PVCBOVUxMLA0KKyAgYHVzZXJfZ3JvdXBfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgdWtfcGVybWlzc2lvbnNfc2x1Z2AoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLZHY2bXdpa3B0c3U3MGhjcmpxMDdzcXNmeWAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgZmtfcGVybWlzc2lvbnNfdXNlcl9ncm91cGAoYHVzZXJfZ3JvdXBfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBma19wZXJtaXNzaW9uc191c2VyX2dyb3VwYCBGT1JFSUdOIEtFWSAoYHVzZXJfZ3JvdXBfaWRgKSBSRUZFUkVOQ0VTIGB1c2VyX2dyb3Vwc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDE0IENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcGVybWlzc2lvbnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDEsICd0b3JyZW50OnVwbG9hZCcsIDEsIDEpOw0KK0lOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICgyLCAndG9ycmVudDpkb3dubG9hZCcsIDEsIDEpOw0KK0lOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICgzLCAndG9ycmVudDp2aWV3JywgMSwgMSk7DQorSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDQsICd0b3JyZW50OnNlYXJjaCcsIDEsIDEpOw0KK0lOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg1LCAnY29tbWVudDpjcmVhdGUnLCAxLCAxKTsNCitJTlNFUlQgSU5UTyBgcGVybWlzc2lvbnNgIFZBTFVFUyAoNiwgJ3VzZXI6bWFuYWdlJywgMSwgMSk7DQorSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDcsICd0b3JyZW50OmFwcHJvdmUnLCAxLCAxKTsNCitJTlNFUlQgSU5UTyBgcGVybWlzc2lvbnNgIFZBTFVFUyAoOCwgJ3RvcnJlbnQ6dGhhbmtzJywgMSwgMSk7DQorSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDksICdwcm9tb3Rpb246bGlzdCcsIDEsIDEpOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHByb21vdGlvbl9wb2xpY2llcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgcHJvbW90aW9uX3BvbGljaWVzYDsNCitDUkVBVEUgVEFCTEUgYHByb21vdGlvbl9wb2xpY2llc2AgICgNCisgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULA0KKyAgYHNsdWdgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgZGlzcGxheV9uYW1lYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHVwbG9hZF9yYXRpb2AgZG91YmxlIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYGRvd25sb2FkX3JhdGlvYCBkb3VibGUgTlVMTCBERUZBVUxUIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3Byb21vdGlvbl9wb2xpY2llc19zbHVnYChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUtjanFwZTFnMTVvdXRmYzB1NmFqdnB3eG9lYChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRQ0KKykgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMyBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHByb21vdGlvbl9wb2xpY2llcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgcHJvbW90aW9uX3BvbGljaWVzYCBWQUxVRVMgKDEsICdkZWZhdWx0JywgJ+m7mOiupOetlueVpScsIDEsIDEpOw0KK0lOU0VSVCBJTlRPIGBwcm9tb3Rpb25fcG9saWNpZXNgIFZBTFVFUyAoMiwgJ3ZpcCcsICfmtLvot4PnlKjmiLfnrZbnlaUnLCAxLCAxLjUpOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfYmxvYl90cmlnZ2Vycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9ibG9iX3RyaWdnZXJzYDsNCitDUkVBVEUgVEFCTEUgYHFydHpfYmxvYl90cmlnZ2Vyc2AgICgNCisgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYEJMT0JfREFUQWAgYmxvYiBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgU0NIRURfTkFNRWAoYFNDSEVEX05BTUVgIEFTQywgYFRSSUdHRVJfTkFNRWAgQVNDLCBgVFJJR0dFUl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYHFydHpfYmxvYl90cmlnZ2Vyc19pYmZrXzFgIEZPUkVJR04gS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFJFRkVSRU5DRVMgYHFydHpfdHJpZ2dlcnNgIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHFydHpfYmxvYl90cmlnZ2Vycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X2NhbGVuZGFycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9jYWxlbmRhcnNgOw0KK0NSRUFURSBUQUJMRSBgcXJ0el9jYWxlbmRhcnNgICAoDQorICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBDQUxFTkRBUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYENBTEVOREFSYCBibG9iIE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYENBTEVOREFSX05BTUVgKSBVU0lORyBCVFJFRQ0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el9jYWxlbmRhcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9jcm9uX3RyaWdnZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X2Nyb25fdHJpZ2dlcnNgOw0KK0NSRUFURSBUQUJMRSBgcXJ0el9jcm9uX3RyaWdnZXJzYCAgKA0KKyAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgVFJJR0dFUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgQ1JPTl9FWFBSRVNTSU9OYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRJTUVfWk9ORV9JRGAgdmFyY2hhcig4MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBxcnR6X2Nyb25fdHJpZ2dlcnNfaWJma18xYCBGT1JFSUdOIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBSRUZFUkVOQ0VTIGBxcnR6X3RyaWdnZXJzYCAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiBxcnR6X2Nyb25fdHJpZ2dlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9maXJlZF90cmlnZ2Vycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9maXJlZF90cmlnZ2Vyc2A7DQorQ1JFQVRFIFRBQkxFIGBxcnR6X2ZpcmVkX3RyaWdnZXJzYCAgKA0KKyAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgRU5UUllfSURgIHZhcmNoYXIoOTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUUklHR0VSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBJTlNUQU5DRV9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYEZJUkVEX1RJTUVgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBTQ0hFRF9USU1FYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgUFJJT1JJVFlgIGludCBOT1QgTlVMTCwNCisgIGBTVEFURWAgdmFyY2hhcigxNikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYEpPQl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYEpPQl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBJU19OT05DT05DVVJSRU5UYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBSRVFVRVNUU19SRUNPVkVSWWAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgRU5UUllfSURgKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9GVF9UUklHX0lOU1RfTkFNRWAoYFNDSEVEX05BTUVgIEFTQywgYElOU1RBTkNFX05BTUVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfRlRfSU5TVF9KT0JfUkVRX1JDVlJZYChgU0NIRURfTkFNRWAgQVNDLCBgSU5TVEFOQ0VfTkFNRWAgQVNDLCBgUkVRVUVTVFNfUkVDT1ZFUllgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfRlRfSl9HYChgU0NIRURfTkFNRWAgQVNDLCBgSk9CX05BTUVgIEFTQywgYEpPQl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9GVF9KR2AoYFNDSEVEX05BTUVgIEFTQywgYEpPQl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9GVF9UX0dgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX05BTUVgIEFTQywgYFRSSUdHRVJfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfRlRfVEdgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFDQorKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiBxcnR6X2ZpcmVkX3RyaWdnZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfam9iX2RldGFpbHMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfam9iX2RldGFpbHNgOw0KK0NSRUFURSBUQUJMRSBgcXJ0el9qb2JfZGV0YWlsc2AgICgNCisgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYEpPQl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYEpPQl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBERVNDUklQVElPTmAgdmFyY2hhcigyNTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBKT0JfQ0xBU1NfTkFNRWAgdmFyY2hhcigyNTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBJU19EVVJBQkxFYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBJU19OT05DT05DVVJSRU5UYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBJU19VUERBVEVfREFUQWAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgUkVRVUVTVFNfUkVDT1ZFUllgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYEpPQl9EQVRBYCBibG9iIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgSk9CX05BTUVgLCBgSk9CX0dST1VQYCkgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfSl9SRVFfUkVDT1ZFUllgKGBTQ0hFRF9OQU1FYCBBU0MsIGBSRVFVRVNUU19SRUNPVkVSWWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9KX0dSUGAoYFNDSEVEX05BTUVgIEFTQywgYEpPQl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRQ0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el9qb2JfZGV0YWlscw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgcXJ0el9qb2JfZGV0YWlsc2AgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAncGVlcnNfY2xlYW51cCcsICdERUZBVUxUJywgJ1BlZXJzIENsZWFudXAnLCAnY29tLmdpdGh1Yi5leGFtcGxlLnB0LmNyb250YXNrLlBlZXJzQ2xlYW51cCcsICcxJywgJzAnLCAnMCcsICcwJywgMHhBQ0VEMDAwNTczNzIwMDE1NkY3MjY3MkU3MTc1NjE3Mjc0N0EyRTRBNkY2MjQ0NjE3NDYxNEQ2MTcwOUZCMDgzRThCRkE5QjBDQjAyMDAwMDc4NzIwMDI2NkY3MjY3MkU3MTc1NjE3Mjc0N0EyRTc1NzQ2OTZDNzMyRTUzNzQ3MjY5NkU2NzRCNjU3OTQ0Njk3Mjc0Nzk0NjZDNjE2NzRENjE3MDgyMDhFOEMzRkJDNTVEMjgwMjAwMDE1QTAwMTM2MTZDNkM2Rjc3NzM1NDcyNjE2RTczNjk2NTZFNzQ0NDYxNzQ2MTc4NzIwMDFENkY3MjY3MkU3MTc1NjE3Mjc0N0EyRTc1NzQ2OTZDNzMyRTQ0Njk3Mjc0Nzk0NjZDNjE2NzRENjE3MDEzRTYyRUFEMjg3NjBBQ0UwMjAwMDI1QTAwMDU2NDY5NzI3NDc5NEMwMDAzNkQ2MTcwNzQwMDBGNEM2QTYxNzY2MTJGNzU3NDY5NkMyRjRENjE3MDNCNzg3MDAwNzM3MjAwMTE2QTYxNzY2MTJFNzU3NDY5NkMyRTQ4NjE3MzY4NEQ2MTcwMDUwN0RBQzFDMzE2NjBEMTAzMDAwMjQ2MDAwQTZDNkY2MTY0NDY2MTYzNzQ2RjcyNDkwMDA5NzQ2ODcyNjU3MzY4NkY2QzY0Nzg3MDNGNDAwMDAwMDAwMDAwMTA3NzA4MDAwMDAwMTAwMDAwMDAwMDc4MDApOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfbG9ja3MNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfbG9ja3NgOw0KK0NSRUFURSBUQUJMRSBgcXJ0el9sb2Nrc2AgICgNCisgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYExPQ0tfTkFNRWAgdmFyY2hhcig0MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYExPQ0tfTkFNRWApIFVTSU5HIEJUUkVFDQorKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiBxcnR6X2xvY2tzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGBxcnR6X2xvY2tzYCBWQUxVRVMgKCdzYXBsaW5nX3NjaGVkdWxlcicsICdTVEFURV9BQ0NFU1MnKTsNCitJTlNFUlQgSU5UTyBgcXJ0el9sb2Nrc2AgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAnVFJJR0dFUl9BQ0NFU1MnKTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X3BhdXNlZF90cmlnZ2VyX2dycHMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfcGF1c2VkX3RyaWdnZXJfZ3Jwc2A7DQorQ1JFQVRFIFRBQkxFIGBxcnR6X3BhdXNlZF90cmlnZ2VyX2dycHNgICAoDQorICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBVU0lORyBCVFJFRQ0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el9wYXVzZWRfdHJpZ2dlcl9ncnBzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfc2NoZWR1bGVyX3N0YXRlDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X3NjaGVkdWxlcl9zdGF0ZWA7DQorQ1JFQVRFIFRBQkxFIGBxcnR6X3NjaGVkdWxlcl9zdGF0ZWAgICgNCisgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYElOU1RBTkNFX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgTEFTVF9DSEVDS0lOX1RJTUVgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBDSEVDS0lOX0lOVEVSVkFMYCBiaWdpbnQgTk9UIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgSU5TVEFOQ0VfTkFNRWApIFVTSU5HIEJUUkVFDQorKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiBxcnR6X3NjaGVkdWxlcl9zdGF0ZQ0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgcXJ0el9zY2hlZHVsZXJfc3RhdGVgIFZBTFVFUyAoJ3NhcGxpbmdfc2NoZWR1bGVyJywgJ0xBUFRPUC1WMjRLNUE1NTE3NDkwMTg0ODk1ODgnLCAxNzQ5MDE4NTEwMTgyLCAxMDAwMCk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9zaW1wbGVfdHJpZ2dlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfc2ltcGxlX3RyaWdnZXJzYDsNCitDUkVBVEUgVEFCTEUgYHFydHpfc2ltcGxlX3RyaWdnZXJzYCAgKA0KKyAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgVFJJR0dFUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgUkVQRUFUX0NPVU5UYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgUkVQRUFUX0lOVEVSVkFMYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgVElNRVNfVFJJR0dFUkVEYCBiaWdpbnQgTk9UIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYHFydHpfc2ltcGxlX3RyaWdnZXJzX2liZmtfMWAgRk9SRUlHTiBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgUkVGRVJFTkNFUyBgcXJ0el90cmlnZ2Vyc2AgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el9zaW1wbGVfdHJpZ2dlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHFydHpfc2ltcGxlX3RyaWdnZXJzYCBWQUxVRVMgKCdzYXBsaW5nX3NjaGVkdWxlcicsICc2ZGE2NGI1YmQyZWUtMzdmZmE4MmEtYTU5OC00ODVjLTk3MTgtNDBlZTkwYzI2YmM0JywgJ0RFRkFVTFQnLCAtMSwgMTgwMDAwMCwgMSk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9zaW1wcm9wX3RyaWdnZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X3NpbXByb3BfdHJpZ2dlcnNgOw0KK0NSRUFURSBUQUJMRSBgcXJ0el9zaW1wcm9wX3RyaWdnZXJzYCAgKA0KKyAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgVFJJR0dFUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgU1RSX1BST1BfMWAgdmFyY2hhcig1MTIpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBTVFJfUFJPUF8yYCB2YXJjaGFyKDUxMikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYFNUUl9QUk9QXzNgIHZhcmNoYXIoNTEyKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgSU5UX1BST1BfMWAgaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYElOVF9QUk9QXzJgIGludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBMT05HX1BST1BfMWAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYExPTkdfUFJPUF8yYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgREVDX1BST1BfMWAgZGVjaW1hbCgxMywgNCkgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgREVDX1BST1BfMmAgZGVjaW1hbCgxMywgNCkgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgQk9PTF9QUk9QXzFgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYEJPT0xfUFJPUF8yYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgcXJ0el9zaW1wcm9wX3RyaWdnZXJzX2liZmtfMWAgRk9SRUlHTiBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgUkVGRVJFTkNFUyBgcXJ0el90cmlnZ2Vyc2AgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el9zaW1wcm9wX3RyaWdnZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfdHJpZ2dlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfdHJpZ2dlcnNgOw0KK0NSRUFURSBUQUJMRSBgcXJ0el90cmlnZ2Vyc2AgICgNCisgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYEpPQl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYEpPQl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBERVNDUklQVElPTmAgdmFyY2hhcigyNTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBORVhUX0ZJUkVfVElNRWAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYFBSRVZfRklSRV9USU1FYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgUFJJT1JJVFlgIGludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBUUklHR0VSX1NUQVRFYCB2YXJjaGFyKDE2KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgVFJJR0dFUl9UWVBFYCB2YXJjaGFyKDgpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBTVEFSVF9USU1FYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgRU5EX1RJTUVgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBDQUxFTkRBUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYE1JU0ZJUkVfSU5TVFJgIHNtYWxsaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYEpPQl9EQVRBYCBibG9iIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9UX0pgKGBTQ0hFRF9OQU1FYCBBU0MsIGBKT0JfTkFNRWAgQVNDLCBgSk9CX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX1RfSkdgKGBTQ0hFRF9OQU1FYCBBU0MsIGBKT0JfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfVF9DYChgU0NIRURfTkFNRWAgQVNDLCBgQ0FMRU5EQVJfTkFNRWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9UX0dgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX1RfU1RBVEVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX1NUQVRFYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX1RfTl9TVEFURWAoYFNDSEVEX05BTUVgIEFTQywgYFRSSUdHRVJfTkFNRWAgQVNDLCBgVFJJR0dFUl9HUk9VUGAgQVNDLCBgVFJJR0dFUl9TVEFURWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9UX05fR19TVEFURWAoYFNDSEVEX05BTUVgIEFTQywgYFRSSUdHRVJfR1JPVVBgIEFTQywgYFRSSUdHRVJfU1RBVEVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfVF9ORVhUX0ZJUkVfVElNRWAoYFNDSEVEX05BTUVgIEFTQywgYE5FWFRfRklSRV9USU1FYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX1RfTkZUX1NUYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9TVEFURWAgQVNDLCBgTkVYVF9GSVJFX1RJTUVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfVF9ORlRfTUlTRklSRWAoYFNDSEVEX05BTUVgIEFTQywgYE1JU0ZJUkVfSU5TVFJgIEFTQywgYE5FWFRfRklSRV9USU1FYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX1RfTkZUX1NUX01JU0ZJUkVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBNSVNGSVJFX0lOU1RSYCBBU0MsIGBORVhUX0ZJUkVfVElNRWAgQVNDLCBgVFJJR0dFUl9TVEFURWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9UX05GVF9TVF9NSVNGSVJFX0dSUGAoYFNDSEVEX05BTUVgIEFTQywgYE1JU0ZJUkVfSU5TVFJgIEFTQywgYE5FWFRfRklSRV9USU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MsIGBUUklHR0VSX1NUQVRFYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgcXJ0el90cmlnZ2Vyc19pYmZrXzFgIEZPUkVJR04gS0VZIChgU0NIRURfTkFNRWAsIGBKT0JfTkFNRWAsIGBKT0JfR1JPVVBgKSBSRUZFUkVOQ0VTIGBxcnR6X2pvYl9kZXRhaWxzYCAoYFNDSEVEX05BTUVgLCBgSk9CX05BTUVgLCBgSk9CX0dST1VQYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el90cmlnZ2Vycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgcXJ0el90cmlnZ2Vyc2AgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAnNmRhNjRiNWJkMmVlLTM3ZmZhODJhLWE1OTgtNDg1Yy05NzE4LTQwZWU5MGMyNmJjNCcsICdERUZBVUxUJywgJ3BlZXJzX2NsZWFudXAnLCAnREVGQVVMVCcsIE5VTEwsIDE3NDkwMjAyODg1MDUsIDE3NDkwMTg0ODg1MDUsIDUsICdXQUlUSU5HJywgJ1NJTVBMRScsIDE3NDkwMTg0ODg1MDUsIDAsIE5VTEwsIDAsICcnKTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBzZWVkYm94DQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBzZWVkYm94YDsNCitDUkVBVEUgVEFCTEUgYHNlZWRib3hgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGBhZGRyZXNzYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGRvd25sb2FkX211bHRpcGxpZXJfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGB1cGxvYWRfbXVsdGlwbGllcl9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS2VjYmVoanRnM2JmcjRybXlpeHQxZ2N2ZnFgKGBhZGRyZXNzYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYEZLcTYzdHFoeWtnbDk2bDRya3d5OXdpZHk1YmAoYGRvd25sb2FkX211bHRpcGxpZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgRks5eGw1MW5hM2RuOGs3b3U4Y3l2N3Mxd3JmYChgdXBsb2FkX211bHRpcGxpZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBGSzl4bDUxbmEzZG44azdvdThjeXY3czF3cmZgIEZPUkVJR04gS0VZIChgdXBsb2FkX211bHRpcGxpZXJfaWRgKSBSRUZFUkVOQ0VTIGBwcm9tb3Rpb25fcG9saWNpZXNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNULA0KKyAgQ09OU1RSQUlOVCBgRktxNjN0cWh5a2dsOTZsNHJrd3k5d2lkeTViYCBGT1JFSUdOIEtFWSAoYGRvd25sb2FkX211bHRpcGxpZXJfaWRgKSBSRUZFUkVOQ0VTIGBwcm9tb3Rpb25fcG9saWNpZXNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2Ygc2VlZGJveA0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBzZXR0aW5ncw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgc2V0dGluZ3NgOw0KK0NSRUFURSBUQUJMRSBgc2V0dGluZ3NgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGBzZXR0aW5nX2tleWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBzZXR0aW5nX3ZhbHVlYCBtZWRpdW10ZXh0IENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgdWtfc2V0dGluZ3Nfc2V0dGluZ19rZXlgKGBzZXR0aW5nX2tleWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUtzd2QwNWR2ajR1a3Z3NXExMzVicGJiZmFlYChgc2V0dGluZ19rZXlgIEFTQykgVVNJTkcgQlRSRUUNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDExIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdGFncw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgdGFnc2A7DQorQ1JFQVRFIFRBQkxFIGB0YWdzYCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgbmFtZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgdWtfdGFnc19uYW1lYChgbmFtZWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUt0NDh4ZHE1NjBnczNnYXA5ZzdqZzM2a2djYChgbmFtZWAgQVNDKSBVU0lORyBCVFJFRQ0KKykgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMTAgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiB0YWdzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGB0YWdzYCBWQUxVRVMgKDksICdbXCJsaW51eFwiXScpOw0KK0lOU0VSVCBJTlRPIGB0YWdzYCBWQUxVRVMgKDMsICdkZWJpYW4nKTsNCitJTlNFUlQgSU5UTyBgdGFnc2AgVkFMVUVTICgxLCAnbGludXgnKTsNCitJTlNFUlQgSU5UTyBgdGFnc2AgVkFMVUVTICg1LCAnbWFjb3MnKTsNCitJTlNFUlQgSU5UTyBgdGFnc2AgVkFMVUVTICgyLCAndWJ1bnR1Jyk7DQorSU5TRVJUIElOVE8gYHRhZ3NgIFZBTFVFUyAoNCwgJ3dpbmRvd3MnKTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciB0aGFua3MNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHRoYW5rc2A7DQorQ1JFQVRFIFRBQkxFIGB0aGFua3NgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGB0b3JyZW50X2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgdXNlcl9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS3J0OWxnMGg1M2JyZ3BmOWlhdDVoY21mNmdgKGB1c2VyX2lkYCBBU0MsIGB0b3JyZW50X2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYEZLcDNrZ2gyNXRrbzQ4dnE3eDZ1MnczZHZwcGAoYHRvcnJlbnRfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBGSzJ0OTBoMjFzNWh5eDZoeW5ld3NkbGs0NmpgIEZPUkVJR04gS0VZIChgdXNlcl9pZGApIFJFRkVSRU5DRVMgYHVzZXJzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVCwNCisgIENPTlNUUkFJTlQgYEZLcDNrZ2gyNXRrbzQ4dnE3eDZ1MnczZHZwcGAgRk9SRUlHTiBLRVkgKGB0b3JyZW50X2lkYCkgUkVGRVJFTkNFUyBgdG9ycmVudHNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgdGhhbmtzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHRvcnJlbnRzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGB0b3JyZW50c2A7DQorQ1JFQVRFIFRBQkxFIGB0b3JyZW50c2AgICgNCisgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULA0KKyAgYGluZm9faGFzaGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGB1c2VyX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgdGl0bGVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgc3ViX3RpdGxlYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHNpemVgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBjcmVhdGVkX2F0YCB0aW1lc3RhbXAgTk9UIE5VTEwsDQorICBgdXBkYXRlZF9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLA0KKyAgYHVuZGVyX3Jldmlld2AgdGlueWludCgxKSBOT1QgTlVMTCwNCisgIGBhbm9ueW1vdXNgIHRpbnlpbnQoMSkgTk9UIE5VTEwsDQorICBgY2F0ZWdvcnlfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBwcm9tb3Rpb25fcG9saWN5X2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgZGVzY3JpcHRpb25gIG1lZGl1bXRleHQgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGB1a190b3JyZW50c19pbmZvX2hhc2hgKGBpbmZvX2hhc2hgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLaGFnMmVqMXZvOHNudmlyYjFsdjRiOHI0eGAoYGluZm9faGFzaGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBpZHhfdG9ycmVudHNfdGl0bGVgKGB0aXRsZWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBpZHhfdG9ycmVudHNfc3ViX3RpdGxlYChgc3ViX3RpdGxlYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYGlkeF90b3JyZW50c19wcm9tb3Rpb25fcG9saWN5X2lkYChgcHJvbW90aW9uX3BvbGljeV9pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBma190b3JyZW50c191c2VyYChgdXNlcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBma190b3JyZW50c19jYXRlZ29yeWAoYGNhdGVnb3J5X2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWGRwbGthYXBxc2xlbG5zY3V1bmZwbTllYjZgKGB0aXRsZWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFg2cjVraDZpNGF3cGRseXRqbW0wNnBrMjJrYChgc3ViX3RpdGxlYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWGQyajNoOHRkNzY4MmNjdGt2NW83N2IzM3lgKGBwcm9tb3Rpb25fcG9saWN5X2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgZmtfdG9ycmVudHNfY2F0ZWdvcnlgIEZPUkVJR04gS0VZIChgY2F0ZWdvcnlfaWRgKSBSRUZFUkVOQ0VTIGBjYXRlZ29yaWVzYCAoYGlkYCkgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBSRVNUUklDVCwNCisgIENPTlNUUkFJTlQgYGZrX3RvcnJlbnRzX3Byb21vdGlvbl9wb2xpY3lgIEZPUkVJR04gS0VZIChgcHJvbW90aW9uX3BvbGljeV9pZGApIFJFRkVSRU5DRVMgYHByb21vdGlvbl9wb2xpY2llc2AgKGBpZGApIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgUkVTVFJJQ1QsDQorICBDT05TVFJBSU5UIGBma190b3JyZW50c191c2VyYCBGT1JFSUdOIEtFWSAoYHVzZXJfaWRgKSBSRUZFUkVOQ0VTIGB1c2Vyc2AgKGBpZGApIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDExIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgdG9ycmVudHMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHRvcnJlbnRzYCBWQUxVRVMgKDcsICc0OTllOWM2OWU5MGI5NzZjNWM4NDU0MmNmOWI4OGZhZDFlMTJlZjFjJywgMSwgJ2V4YW1wbGUgdG9ycmVudCB0aXRsZScsICdzdWJ0aXRsZSBoZXJlJywgNjYxOTQsICcyMDI1LTA2LTA0IDAzOjQxOjI3JywgJzIwMjUtMDYtMDQgMDM6NDE6MjcnLCAwLCAwLCAxLCAxLCAn5ryU56S656eN5a2QJyk7DQorSU5TRVJUIElOVE8gYHRvcnJlbnRzYCBWQUxVRVMgKDgsICdmNDU3NzU1NjRjODhiNWEyNzgyYTMwMWQxNjJlMWQ0ODExYjBiNmQ1JywgMSwgJ2V4YW1wbGUgdG9ycmVudCB0aXRsZScsICdzdWJ0aXRsZSBoZXJlJywgMjMxMTA1LCAnMjAyNS0wNi0wNCAwNToyMDozNycsICcyMDI1LTA2LTA0IDA1OjIwOjM3JywgMCwgMCwgMSwgMSwgJ+a8lOekuuenjeWtkCcpOw0KK0lOU0VSVCBJTlRPIGB0b3JyZW50c2AgVkFMVUVTICg5LCAnOGUxMGM5ZGFhMWI1ZmIxOGRjNWIwZTczOTg4ODA4YmE5NTgzOTFmYScsIDEsICdleGFtcGxlIHRvcnJlbnQgdGl0bGUnLCAnc3VidGl0bGUgaGVyZScsIDQyNjE1NSwgJzIwMjUtMDYtMDQgMDY6MDM6NDknLCAnMjAyNS0wNi0wNCAwNjowMzo0OScsIDAsIDAsIDEsIDEsICfmvJTnpLrnp43lrZAnKTsNCitJTlNFUlQgSU5UTyBgdG9ycmVudHNgIFZBTFVFUyAoMTAsICcxZTMyNzVmNTRlYzA3NGFmMmQ5OTgyODMxMWQ0YTg0ODhlYjdhNDg3JywgMSwgJ2V4YW1wbGUgdG9ycmVudCB0aXRsZScsICdzdWJ0aXRsZSBoZXJlJywgMTM4NjE2OTQsICcyMDI1LTA2LTA0IDA2OjEwOjIzJywgJzIwMjUtMDYtMDQgMDY6MTA6MjMnLCAwLCAwLCAxLCAxLCAn5ryU56S656eN5a2QJyk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdG9ycmVudHNfdGFnDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGB0b3JyZW50c190YWdgOw0KK0NSRUFURSBUQUJMRSBgdG9ycmVudHNfdGFnYCAgKA0KKyAgYHRvcnJlbnRfaWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGB0YWdfaWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgdG9ycmVudF9pZGAsIGB0YWdfaWRgKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBma190b3JyZW50c190YWdfdGFnYChgdGFnX2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgZmtfdG9ycmVudHNfdGFnX3RhZ2AgRk9SRUlHTiBLRVkgKGB0YWdfaWRgKSBSRUZFUkVOQ0VTIGB0YWdzYCAoYGlkYCkgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIFJFU1RSSUNULA0KKyAgQ09OU1RSQUlOVCBgZmtfdG9ycmVudHNfdGFnX3RvcnJlbnRgIEZPUkVJR04gS0VZIChgdG9ycmVudF9pZGApIFJFRkVSRU5DRVMgYHRvcnJlbnRzYCAoYGlkYCkgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiB0b3JyZW50c190YWcNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHRvcnJlbnRzX3RhZ2AgVkFMVUVTICg3LCA5KTsNCitJTlNFUlQgSU5UTyBgdG9ycmVudHNfdGFnYCBWQUxVRVMgKDgsIDkpOw0KK0lOU0VSVCBJTlRPIGB0b3JyZW50c190YWdgIFZBTFVFUyAoOSwgOSk7DQorSU5TRVJUIElOVE8gYHRvcnJlbnRzX3RhZ2AgVkFMVUVTICgxMCwgOSk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdHJhbnNmZXJfaGlzdG9yeQ0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgdHJhbnNmZXJfaGlzdG9yeWA7DQorQ1JFQVRFIFRBQkxFIGB0cmFuc2Zlcl9oaXN0b3J5YCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgdXNlcl9pZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHRvcnJlbnRfaWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGB0b19nb2AgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHN0YXJ0ZWRfYXRgIHRpbWVzdGFtcCBOT1QgTlVMTCwNCisgIGB1cGRhdGVkX2F0YCB0aW1lc3RhbXAgTk9UIE5VTEwsDQorICBgdXBsb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBkb3dubG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgYWN0dWFsX3VwbG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgYWN0dWFsX2Rvd25sb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGB1cGxvYWRfc3BlZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBkb3dubG9hZF9zcGVlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYGxhc3RfZXZlbnRgIGVudW0oJ3N0YXJ0ZWQnLCdjb21wbGV0ZWQnLCdzdG9wcGVkJywncGF1c2VkJywndW5rbm93bicpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBoYXZlX2NvbXBsZXRlX2hpc3RvcnlgIHRpbnlpbnQoMSkgTk9UIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3VzZXJfdG9ycmVudGAoYHVzZXJfaWRgIEFTQywgYHRvcnJlbnRfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLcm01cDR4djNyYjJ2bTZwc3FsNWplOTRqaGAoYHVzZXJfaWRgIEFTQywgYHRvcnJlbnRfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgZmtfdHJhbnNmZXJfdG9ycmVudGAoYHRvcnJlbnRfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBma190cmFuc2Zlcl90b3JyZW50YCBGT1JFSUdOIEtFWSAoYHRvcnJlbnRfaWRgKSBSRUZFUkVOQ0VTIGB0b3JyZW50c2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QsDQorICBDT05TVFJBSU5UIGBma190cmFuc2Zlcl91c2VyYCBGT1JFSUdOIEtFWSAoYHVzZXJfaWRgKSBSRUZFUkVOQ0VTIGB1c2Vyc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDMgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiB0cmFuc2Zlcl9oaXN0b3J5DQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGB0cmFuc2Zlcl9oaXN0b3J5YCBWQUxVRVMgKDEsIDEsIDcsIDY2MTk0LCAnMjAyNS0wNi0wNCAwNDo0MzozMCcsICcyMDI1LTA2LTA0IDA1OjIxOjI1JywgMCwgMCwgMCwgMCwgMCwgMCwgJ2NvbXBsZXRlZCcsIDEpOw0KK0lOU0VSVCBJTlRPIGB0cmFuc2Zlcl9oaXN0b3J5YCBWQUxVRVMgKDIsIDEsIDEwLCAwLCAnMjAyNS0wNi0wNCAwNjoxMTozMScsICcyMDI1LTA2LTA0IDA2OjEzOjIxJywgMjc3MjMzODgsIDAsIDAsIDI3NzIzMzg4LCAwLCA3Nzg3NCwgJ3N0YXJ0ZWQnLCAxKTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciB1c2VyX2dyb3Vwcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgdXNlcl9ncm91cHNgOw0KK0NSRUFURSBUQUJMRSBgdXNlcl9ncm91cHNgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGBzbHVnYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGRpc3BsYXlfbmFtZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBwcm9tb3Rpb25fcG9saWN5X2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3VzZXJfZ3JvdXBzX3NsdWdgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS2tramUxamJtcmthbTFrN2piZDM5aG9tdzBgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYGZrX3VzZXJfZ3JvdXBzX3Byb21vdGlvbl9wb2xpY3lgKGBwcm9tb3Rpb25fcG9saWN5X2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgZmtfdXNlcl9ncm91cHNfcHJvbW90aW9uX3BvbGljeWAgRk9SRUlHTiBLRVkgKGBwcm9tb3Rpb25fcG9saWN5X2lkYCkgUkVGRVJFTkNFUyBgcHJvbW90aW9uX3BvbGljaWVzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMyBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHVzZXJfZ3JvdXBzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc2AgVkFMVUVTICgxLCAnZGVmYXVsdCcsICfpu5jorqTnlKjmiLfnu4QnLCAxKTsNCitJTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNgIFZBTFVFUyAoMiwgJ3ZpcCcsICfmtLvot4PnlKjmiLfnu4QnLCAyKTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYDsNCitDUkVBVEUgVEFCTEUgYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgICAoDQorICBgdXNlcl9ncm91cF9pZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHBlcm1pc3Npb25fZW50aXRpZXNfaWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgdXNlcl9ncm91cF9pZGAsIGBwZXJtaXNzaW9uX2VudGl0aWVzX2lkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLXzk1ajl1YXE5NmJ2ZDl5a24wc25neXdrczZgKGBwZXJtaXNzaW9uX2VudGl0aWVzX2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgZmtfdWdwZV9wZXJtaXNzaW9uYCBGT1JFSUdOIEtFWSAoYHBlcm1pc3Npb25fZW50aXRpZXNfaWRgKSBSRUZFUkVOQ0VTIGBwZXJtaXNzaW9uc2AgKGBpZGApIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBSRVNUUklDVCwNCisgIENPTlNUUkFJTlQgYGZrX3VncGVfdXNlcl9ncm91cGAgRk9SRUlHTiBLRVkgKGB1c2VyX2dyb3VwX2lkYCkgUkVGRVJFTkNFUyBgdXNlcl9ncm91cHNgIChgaWRgKSBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgMSk7DQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgMik7DQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgMyk7DQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgNCk7DQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgNSk7DQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgNik7DQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgNyk7DQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgOCk7DQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgOSk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdXNlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHVzZXJzYDsNCitDUkVBVEUgVEFCTEUgYHVzZXJzYCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgZW1haWxgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgcGFzc3dvcmRgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgdXNlcm5hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgZ3JvdXBfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBwYXNza2V5YCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGNyZWF0ZV9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLA0KKyAgYGF2YXRhcmAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBjdXN0b21fdGl0bGVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgc2lnbmF0dXJlYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGxhbmd1YWdlYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGRvd25sb2FkX2JhbmR3aWR0aGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGB1cGxvYWRfYmFuZHdpZHRoYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGRvd25sb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGB1cGxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHJlYWxfZG93bmxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHJlYWxfdXBsb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBpc3BgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBga2FybWFgIGRlY2ltYWwoMTksIDIpIE5PVCBOVUxMLA0KKyAgYGludml0ZV9zbG90YCBpbnQgTk9UIE5VTEwsDQorICBgc2VlZGluZ190aW1lYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgcGVyc29uYWxfYWNjZXNzX3Rva2VuYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHByaXZhY3lfbGV2ZWxgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3VzZXJzX3VzZXJuYW1lYChgdXNlcm5hbWVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3VzZXJzX2VtYWlsYChgZW1haWxgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3VzZXJzX3Bhc3NrZXlgKGBwYXNza2V5YCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS3I0M2FmOWFwNGVkbTQzbW10cTAxb2RkajZgKGB1c2VybmFtZWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUs2ZG90a290dDJranNwOHZ3NGQwbTI1ZmI3YChgZW1haWxgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLNDAyc3g2Y3FnazY2dXd0N2V5ZjU0dG1pamAoYHBhc3NrZXlgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgZmtfdXNlcnNfZ3JvdXBgKGBncm91cF9pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYGZrX3VzZXJzX2dyb3VwYCBGT1JFSUdOIEtFWSAoYGdyb3VwX2lkYCkgUkVGRVJFTkNFUyBgdXNlcl9ncm91cHNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAyIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgdXNlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHVzZXJzYCBWQUxVRVMgKDEsICd0ZXN0dXNlckBleGFtcGxlLmNvbScsICckMmEkMDYkSnF2SHBDOTRtbk4yM3V3bVpYMFhIZXV5RmozTTIySWt3OFZCWlJvcGZybFdiUGZBNEtSRXUnLCAndGVzdHVzZXInLCAxLCAnNDcwNTBlOGYtZjNmZC00YTljLWE4MjgtMGUwZGU0NTY2OTFmJywgJzIwMjUtMDYtMDMgMTE6MzQ6MDgnLCAnaHR0cHM6Ly93d3cuYmFpZHUuY29tL2ZhY2l2b24uaWNvJywgJ+a1i+ivleeUqOaItycsICfov5nkuKrnlKjmiLflvojmh5LvvIzov5jmsqHmnInkuKrmgKfnrb7lkI0nLCAnemgtQ04nLCAnMTAwbWJwcycsICcxMDBtYnBzJywgMCwgMjc3MjMzODgsIDI3NzIzMzg4LCAwLCAn5pyq55+lJywgMC4wMCwgMCwgMzA3OTAwNjgsICc5NDhjOTE0Ni1mZjVmLTRhZDYtOGJhNS1kMzJlMTIwOWNhZmQnLCAnMCcpOw0KKw0KK1NFVCBGT1JFSUdOX0tFWV9DSEVDS1MgPSAxOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIGNoYXRfbWVzc2FnZXMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYGNoYXRfbWVzc2FnZXNgOw0KK0NSRUFURSBUQUJMRSBjaGF0X21lc3NhZ2VzICgNCisgICAgaWQgQklHSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLA0KKyAgICByb29tX2lkIEJJR0lOVCBOT1QgTlVMTCwNCisgICAgdXNlcl9pZCBCSUdJTlQgTk9UIE5VTEwsDQorICAgIGNvbnRlbnQgVEVYVCBOT1QgTlVMTCwNCisgICAgY3JlYXRlZF9hdCBEQVRFVElNRSBOT1QgTlVMTA0KKyk7DQorDQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvamF2YS9jb20vZ2l0aHViL2V4YW1wbGUvcHQvcHRBcHBsaWNhdGlvblRlc3RzLmphdmEgYi9zcmMvdGVzdC9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9wdEFwcGxpY2F0aW9uVGVzdHMuamF2YQppbmRleCA0MTk1MzQ0Li5mNWRhMzViIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9wdEFwcGxpY2F0aW9uVGVzdHMuamF2YQorKysgYi9zcmMvdGVzdC9qYXZhL2NvbS9naXRodWIvZXhhbXBsZS9wdC9wdEFwcGxpY2F0aW9uVGVzdHMuamF2YQpAQCAtMSw0ICsxLDMgQEAKLQogcGFja2FnZSBjb20uZ2l0aHViLmV4YW1wbGUucHQ7CiBpbXBvcnQgb3JnLmp1bml0Lmp1cGl0ZXIuYXBpLlRlc3Q7CiBjbGFzcyBwdEFwcGxpY2F0aW9uVGVzdHMgewpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvYXBwbGljYXRpb24tY2FjaGluZy55bWwgYi90YXJnZXQvY2xhc3Nlcy9hcHBsaWNhdGlvbi1jYWNoaW5nLnltbAppbmRleCA5NzJhNjg4Li5kMTQyNmE5IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9hcHBsaWNhdGlvbi1jYWNoaW5nLnltbAorKysgYi90YXJnZXQvY2xhc3Nlcy9hcHBsaWNhdGlvbi1jYWNoaW5nLnltbApAQCAtNiw4ICs2LDggQEAKICAgICAgICAgY2FjaGU6CiAgICAgICAgICAgcmVnaW9uOgogICAgICAgICAgICAgZmFjdG9yeV9jbGFzczogb3JnLnJlZGlzc29uLmhpYmVybmF0ZS5SZWRpc3NvblJlZ2lvbkZhY3RvcnkKLSAgICAgICAgICB1c2Vfc2Vjb25kX2xldmVsX2NhY2hlOiB0cnVlCi0gICAgICAgICAgdXNlX3F1ZXJ5X2NhY2hlOiB0cnVlCisgICAgICAgICAgdXNlX3NlY29uZF9sZXZlbF9jYWNoZTogZmFsc2UKKyAgICAgICAgICB1c2VfcXVlcnlfY2FjaGU6IGZhbHNlCiAgICAgICAgICAgcmVnaW9uX3ByZWZpeDogc2FwbGluZwogICAgICAgICAgIHVzZV9zdHJ1Y3R1cmVkX2VudHJpZXM6IHRydWUKICAgICAgICAgICBwcm92aWRlcl9jb25maWd1cmF0aW9uX2ZpbGVfcmVzb3VyY2VfcGF0aDogY2xhc3NwYXRoOmNvbmYvaGliZXJuYXRlLXJlZGlzLnByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2FwcGxpY2F0aW9uLWRiLnltbCBiL3RhcmdldC9jbGFzc2VzL2FwcGxpY2F0aW9uLWRiLnltbAppbmRleCBjM2MxOGM1Li5jY2NkNzk1IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9hcHBsaWNhdGlvbi1kYi55bWwKKysrIGIvdGFyZ2V0L2NsYXNzZXMvYXBwbGljYXRpb24tZGIueW1sCkBAIC0xMCw0ICsxMCw0IEBACiAgICAgZGF0YWJhc2UtcGxhdGZvcm06IG9yZy5oaWJlcm5hdGUuZGlhbGVjdC5NeVNRTDhEaWFsZWN0DQogICAgIHNob3ctc3FsOiB0cnVlDQogICAgIHByb3BlcnRpZXM6DQotICAgICAgaGliZXJuYXRlLmZvcm1hdF9zcWw6IHRydWUNCisgICAgICBoaWJlcm5hdGUuZm9ybWF0X3NxbDogdHJ1ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2FwcGxpY2F0aW9uLXRlc3QueW1sIGIvdGFyZ2V0L2NsYXNzZXMvYXBwbGljYXRpb24tdGVzdC55bWwKaW5kZXggZWNlMGIzMS4uOTY1MzYzYyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvYXBwbGljYXRpb24tdGVzdC55bWwKKysrIGIvdGFyZ2V0L2NsYXNzZXMvYXBwbGljYXRpb24tdGVzdC55bWwKQEAgLTMsNiArMywzIEBACiBsb2dnaW5nOgogICBsZXZlbDoKICAgICBjb20uZ2l0aHViLmV4YW1wbGUucHQ6IGRlYnVnCi0jc3ByaW5nOgotIyAganBhOgotIyAgICBzaG93LXNxbDogdHJ1ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2FwcGxpY2F0aW9uLnltbCBiL3RhcmdldC9jbGFzc2VzL2FwcGxpY2F0aW9uLnltbAppbmRleCA3MGE1NjJmLi5lYTIxNjlmIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9hcHBsaWNhdGlvbi55bWwKKysrIGIvdGFyZ2V0L2NsYXNzZXMvYXBwbGljYXRpb24ueW1sCkBAIC02OCw2MyArNjgsMyBAQAogICBpcy1zaGFyZTogZmFsc2UKICAgdG9rZW4tc3R5bGU6IHJhbmRvbS0xMjgKIAotc2VjdXJpdHk6Ci0gIHJzYToKLSAgICAjIOaMh+WumuacjeWKoeWZqFJTQeWFrOmSpeaWh+S7tui3r+W+hO+8iOaUr+aMgWNsYXNzcGF0aDrmiJbmlofku7bns7vnu5/ot6/lvoTvvIkKLSAgICBzZXJ2ZXItcHVibGljLWtleS1maWxlOiBzcmMvbWFpbi9yZXNvdXJjZXMva2V5cy9wdWJsaWNfa2V5LnBlbQotI3NwcmluZzoKLSMgIHByb2ZpbGVzOgotIyAgICBhY3RpdmU6IHRlc3QsZGIgICMg56e76ZmkIGNhY2hpbmcg6YWN572uCi0jCi0jICBqcGE6Ci0jICAgIHByb3BlcnRpZXM6Ci0jICAgICAgaGliZXJuYXRlOgotIyAgICAgICAgZGRsLWF1dG86IHVwZGF0ZQotIyAgICAgICAgaGJtMmRkbC5hdXRvOiB1cGRhdGUKLSMgICAgICAgIGNhY2hlOgotIyAgICAgICAgICB1c2Vfc2Vjb25kX2xldmVsX2NhY2hlOiBmYWxzZQotIyAgICAgICAgICB1c2VfcXVlcnlfY2FjaGU6IGZhbHNlCi0jCi0jICBxdWFydHo6Ci0jICAgIGpvYi1zdG9yZS10eXBlOiBqZGJjCi0jICAgIHdhaXQtZm9yLWpvYnMtdG8tY29tcGxldGUtb24tc2h1dGRvd246IHRydWUKLSMgICAgb3ZlcndyaXRlLWV4aXN0aW5nLWpvYnM6IHRydWUKLSMgICAgamRiYzoKLSMgICAgICBpbml0aWFsaXplLXNjaGVtYTogYWx3YXlzCi0jICAgIHByb3BlcnRpZXM6Ci0jICAgICAgb3JnOgotIyAgICAgICAgcXVhcnR6OgotIyAgICAgICAgICBzY2hlZHVsZXI6Ci0jICAgICAgICAgICAgaW5zdGFuY2VOYW1lOiBzYXBsaW5nX3NjaGVkdWxlcgotIyAgICAgICAgICAgIGluc3RhbmNlSWQ6IEFVVE8KLSMgICAgICAgICAgam9iU3RvcmU6Ci0jICAgICAgICAgICAgY2xhc3M6IG9yZy5zcHJpbmdmcmFtZXdvcmsuc2NoZWR1bGluZy5xdWFydHouTG9jYWxEYXRhU291cmNlSm9iU3RvcmUKLSMgICAgICAgICAgICBkcml2ZXJEZWxlZ2F0ZUNsYXNzOiBvcmcucXVhcnR6LmltcGwuamRiY2pvYnN0b3JlLlN0ZEpEQkNEZWxlZ2F0ZQotIyAgICAgICAgICAgIHRhYmxlUHJlZml4OiBRUlRaXwotIyAgICAgICAgICAgIHVzZVByb3BlcnRpZXM6IGZhbHNlCi0jICAgICAgICAgICAgY2x1c3RlckNoZWNraW5JbnRlcnZhbDogMTAwMDAKLSMgICAgICAgICAgICBpc0NsdXN0ZXJlZDogdHJ1ZQotIyAgICAgICAgICB0aHJlYWRQb29sOgotIyAgICAgICAgICAgIGNsYXNzOiBvcmcucXVhcnR6LnNpbXBsLlNpbXBsZVRocmVhZFBvb2wKLSMgICAgICAgICAgICB0aHJlYWRDb3VudDogMTAKLSMgICAgICAgICAgICB0aHJlYWRQcmlvcml0eTogNQotIyAgICAgICAgICAgIHRocmVhZHNJbmhlcml0Q29udGV4dENsYXNzTG9hZGVyT2ZJbml0aWFsaXppbmdUaHJlYWQ6IHRydWUKLSMKLSMgIHNlcnZsZXQ6Ci0jICAgIG11bHRpcGFydDoKLSMgICAgICBlbmFibGVkOiB0cnVlCi0jICAgICAgbWF4LXJlcXVlc3Qtc2l6ZTogMjBNQgotIyAgICAgIG1heC1maWxlLXNpemU6IDIwTUIKLSMKLSNzZXJ2ZXI6Ci0jICBwb3J0OiA4MDgxCi0jICBzZXJ2bGV0OgotIyAgICBjb250ZXh0LXBhdGg6IC9hcGkKLSMKLSNzYS10b2tlbjoKLSMgIHRva2VuLW5hbWU6IHNhcGxpbmctdG9rZW4KLSMgIHRpbWVvdXQ6IDI1OTIwMDAKLSMgIGFjdGl2aXR5LXRpbWVvdXQ6IC0xCi0jICBpcy1jb25jdXJyZW50OiB0cnVlCi0jICBpcy1zaGFyZTogZmFsc2UKLSMgIHRva2VuLXN0eWxlOiByYW5kb20tMTI4CmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvYXV0b2NvbmZpZy9RdWFydHpDb25maWckQXV0b3dpcmluZ1NwcmluZ0JlYW5Kb2JGYWN0b3J5LmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2F1dG9jb25maWcvUXVhcnR6Q29uZmlnJEF1dG93aXJpbmdTcHJpbmdCZWFuSm9iRmFjdG9yeS5jbGFzcwppbmRleCAyOWY5MWViLi4zMzNkOGVkIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvYXV0b2NvbmZpZy9RdWFydHpDb25maWckQXV0b3dpcmluZ1NwcmluZ0JlYW5Kb2JGYWN0b3J5LmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9hdXRvY29uZmlnL1F1YXJ0ekNvbmZpZyRBdXRvd2lyaW5nU3ByaW5nQmVhbkpvYkZhY3RvcnkuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvYW5ub3VuY2UvQW5ub3VuY2VDb250cm9sbGVyJFBlZXJSZXN1bHQuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9hbm5vdW5jZS9Bbm5vdW5jZUNvbnRyb2xsZXIkUGVlclJlc3VsdC5jbGFzcwppbmRleCAzMmY0NzdiLi41ODNiZTM1IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9hbm5vdW5jZS9Bbm5vdW5jZUNvbnRyb2xsZXIkUGVlclJlc3VsdC5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9hbm5vdW5jZS9Bbm5vdW5jZUNvbnRyb2xsZXIkUGVlclJlc3VsdC5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9hbm5vdW5jZS9Bbm5vdW5jZUNvbnRyb2xsZXIuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9hbm5vdW5jZS9Bbm5vdW5jZUNvbnRyb2xsZXIuY2xhc3MKaW5kZXggNGM1ZTk1Mi4uOGViNDFmYiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvYW5ub3VuY2UvQW5ub3VuY2VDb250cm9sbGVyLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb250cm9sbGVyL2Fubm91bmNlL0Fubm91bmNlQ29udHJvbGxlci5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9hdXRoL0F1dGhDb250cm9sbGVyLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvYXV0aC9BdXRoQ29udHJvbGxlci5jbGFzcwppbmRleCAyZjg5YTkzLi5kNmQ1YzUxIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9hdXRoL0F1dGhDb250cm9sbGVyLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb250cm9sbGVyL2F1dGgvQXV0aENvbnRyb2xsZXIuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvZHRvL3Jlc3BvbnNlL0NhdGVnb3J5UmVzcG9uc2VEVE8uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvQ2F0ZWdvcnlSZXNwb25zZURUTy5jbGFzcwppbmRleCAwZjE3NDk3Li42MjRlZmVhIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvQ2F0ZWdvcnlSZXNwb25zZURUTy5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvQ2F0ZWdvcnlSZXNwb25zZURUTy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvVXNlckJhc2ljUmVzcG9uc2VEVE8uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvVXNlckJhc2ljUmVzcG9uc2VEVE8uY2xhc3MKaW5kZXggMGM0MzNmMi4uNTAxMTdlNyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvZHRvL3Jlc3BvbnNlL1VzZXJCYXNpY1Jlc3BvbnNlRFRPLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb250cm9sbGVyL2R0by9yZXNwb25zZS9Vc2VyQmFzaWNSZXNwb25zZURUTy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvVXNlckdyb3VwUmVzcG9uc2VEVE8uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvVXNlckdyb3VwUmVzcG9uc2VEVE8uY2xhc3MKaW5kZXggMjRiMzdiOC4uODkzOGJkNiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvZHRvL3Jlc3BvbnNlL1VzZXJHcm91cFJlc3BvbnNlRFRPLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb250cm9sbGVyL2R0by9yZXNwb25zZS9Vc2VyR3JvdXBSZXNwb25zZURUTy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvVXNlclJlc3BvbnNlRFRPLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvZHRvL3Jlc3BvbnNlL1VzZXJSZXNwb25zZURUTy5jbGFzcwppbmRleCA3MjIzMmQwLi5jOTgyYzQ0IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvVXNlclJlc3BvbnNlRFRPLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb250cm9sbGVyL2R0by9yZXNwb25zZS9Vc2VyUmVzcG9uc2VEVE8uY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvZHRvL3Jlc3BvbnNlL1VzZXJUaW55UmVzcG9uc2VEVE8uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvVXNlclRpbnlSZXNwb25zZURUTy5jbGFzcwppbmRleCBhOTI4MDkyLi4wYTQ3MTA4IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvVXNlclRpbnlSZXNwb25zZURUTy5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci9kdG8vcmVzcG9uc2UvVXNlclRpbnlSZXNwb25zZURUTy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci90b3JyZW50L1RvcnJlbnRDb250cm9sbGVyLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvdG9ycmVudC9Ub3JyZW50Q29udHJvbGxlci5jbGFzcwppbmRleCA3N2Y4NDM3Li5hY2UxM2ViIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci90b3JyZW50L1RvcnJlbnRDb250cm9sbGVyLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb250cm9sbGVyL3RvcnJlbnQvVG9ycmVudENvbnRyb2xsZXIuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvdG9ycmVudC9kdG8vcmVzcG9uc2UvVG9ycmVudFVwbG9hZFN1Y2Nlc3NSZXNwb25zZURUTy5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jb250cm9sbGVyL3RvcnJlbnQvZHRvL3Jlc3BvbnNlL1RvcnJlbnRVcGxvYWRTdWNjZXNzUmVzcG9uc2VEVE8uY2xhc3MKaW5kZXggMmYzM2JlZi4uZGY1ZDAwMiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2NvbnRyb2xsZXIvdG9ycmVudC9kdG8vcmVzcG9uc2UvVG9ycmVudFVwbG9hZFN1Y2Nlc3NSZXNwb25zZURUTy5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY29udHJvbGxlci90b3JyZW50L2R0by9yZXNwb25zZS9Ub3JyZW50VXBsb2FkU3VjY2Vzc1Jlc3BvbnNlRFRPLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jcm9udGFzay9QZWVyc0NsZWFudXAuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvY3JvbnRhc2svUGVlcnNDbGVhbnVwLmNsYXNzCmluZGV4IGM4MGQ5M2EuLjkyNGVkYTEgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9jcm9udGFzay9QZWVyc0NsZWFudXAuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2Nyb250YXNrL1BlZXJzQ2xlYW51cC5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZXhjZXB0aW9uL0FQSUdlbmVyaWNFeGNlcHRpb24uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZXhjZXB0aW9uL0FQSUdlbmVyaWNFeGNlcHRpb24uY2xhc3MKaW5kZXggNzk4NDdkNC4uZTI4NTZiOCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2V4Y2VwdGlvbi9BUElHZW5lcmljRXhjZXB0aW9uLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9leGNlcHRpb24vQVBJR2VuZXJpY0V4Y2VwdGlvbi5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZXhjZXB0aW9uL0ZpeGVkQW5ub3VuY2VFeGNlcHRpb24uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZXhjZXB0aW9uL0ZpeGVkQW5ub3VuY2VFeGNlcHRpb24uY2xhc3MKaW5kZXggMWI4YWI1Zi4uMzNjOWU3OSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2V4Y2VwdGlvbi9GaXhlZEFubm91bmNlRXhjZXB0aW9uLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9leGNlcHRpb24vRml4ZWRBbm5vdW5jZUV4Y2VwdGlvbi5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZXhjZXB0aW9uL0ludmFsaWRBbm5vdW5jZUV4Y2VwdGlvbi5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9leGNlcHRpb24vSW52YWxpZEFubm91bmNlRXhjZXB0aW9uLmNsYXNzCmluZGV4IDBkMTQ3YjIuLjhlOGE2OWEgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9leGNlcHRpb24vSW52YWxpZEFubm91bmNlRXhjZXB0aW9uLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9leGNlcHRpb24vSW52YWxpZEFubm91bmNlRXhjZXB0aW9uLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9leGNlcHRpb24vSW52YWxpZFRvcnJlbnRWZXJpZnlFeGNlcHRpb24uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZXhjZXB0aW9uL0ludmFsaWRUb3JyZW50VmVyaWZ5RXhjZXB0aW9uLmNsYXNzCmluZGV4IGU4ZjQ1ZDIuLjI3Nzc3NWYgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9leGNlcHRpb24vSW52YWxpZFRvcnJlbnRWZXJpZnlFeGNlcHRpb24uY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2V4Y2VwdGlvbi9JbnZhbGlkVG9ycmVudFZlcmlmeUV4Y2VwdGlvbi5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZXhjZXB0aW9uL1JldHJ5YWJsZUFubm91bmNlRXhjZXB0aW9uLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L2V4Y2VwdGlvbi9SZXRyeWFibGVBbm5vdW5jZUV4Y2VwdGlvbi5jbGFzcwppbmRleCBjNjRjMDYwLi42NTFiNmUyIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvZXhjZXB0aW9uL1JldHJ5YWJsZUFubm91bmNlRXhjZXB0aW9uLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9leGNlcHRpb24vUmV0cnlhYmxlQW5ub3VuY2VFeGNlcHRpb24uY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvQW5ub3VuY2VTZXJ2aWNlJEFubm91bmNlVGFzay5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0Fubm91bmNlU2VydmljZSRBbm5vdW5jZVRhc2suY2xhc3MKaW5kZXggMjA3ZDA5My4uNGI1NTQ5YiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvQW5ub3VuY2VTZXJ2aWNlJEFubm91bmNlVGFzay5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Bbm5vdW5jZVNlcnZpY2UkQW5ub3VuY2VUYXNrLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0Fubm91bmNlU2VydmljZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0Fubm91bmNlU2VydmljZS5jbGFzcwppbmRleCAzYzYxMWJjLi5lYWY3YWQxIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Bbm5vdW5jZVNlcnZpY2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvQW5ub3VuY2VTZXJ2aWNlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0F1dGhlbnRpY2F0aW9uU2VydmljZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0F1dGhlbnRpY2F0aW9uU2VydmljZS5jbGFzcwppbmRleCBkZWFlZjI4Li40YTM1MWEzIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9BdXRoZW50aWNhdGlvblNlcnZpY2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvQXV0aGVudGljYXRpb25TZXJ2aWNlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0JsYWNrbGlzdENsaWVudFNlcnZpY2UuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9CbGFja2xpc3RDbGllbnRTZXJ2aWNlLmNsYXNzCmluZGV4IDg1MTRjOTQuLmI1NTZlNzMgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0JsYWNrbGlzdENsaWVudFNlcnZpY2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvQmxhY2tsaXN0Q2xpZW50U2VydmljZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9DYXRlZ29yeVNlcnZpY2UuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9DYXRlZ29yeVNlcnZpY2UuY2xhc3MKaW5kZXggNzhmNTI2Ni4uZThiMmE4ZiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvQ2F0ZWdvcnlTZXJ2aWNlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0NhdGVnb3J5U2VydmljZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9FeGFtUGxhblNlcnZpY2UuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9FeGFtUGxhblNlcnZpY2UuY2xhc3MKaW5kZXggZjdkYzA4My4uNGJlZDhiYiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvRXhhbVBsYW5TZXJ2aWNlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0V4YW1QbGFuU2VydmljZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Mb2dpbkhpc3RvcnlTZXJ2aWNlLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvTG9naW5IaXN0b3J5U2VydmljZS5jbGFzcwppbmRleCBkMmNlZTNkLi5hZmIxNDFmIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Mb2dpbkhpc3RvcnlTZXJ2aWNlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL0xvZ2luSGlzdG9yeVNlcnZpY2UuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvUGVlclNlcnZpY2UuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9QZWVyU2VydmljZS5jbGFzcwppbmRleCA0MGU4ZmE3Li43Yzg3ZWI4IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9QZWVyU2VydmljZS5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9QZWVyU2VydmljZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9QZXJtaXNzaW9uU2VydmljZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1Blcm1pc3Npb25TZXJ2aWNlLmNsYXNzCmluZGV4IGE3ZDY4MjMuLmY1MzhjODYgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1Blcm1pc3Npb25TZXJ2aWNlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1Blcm1pc3Npb25TZXJ2aWNlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1Byb21vdGlvblNlcnZpY2UuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Qcm9tb3Rpb25TZXJ2aWNlLmNsYXNzCmluZGV4IDUxMmY0NTQuLmM4OGFlODggMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1Byb21vdGlvblNlcnZpY2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvUHJvbW90aW9uU2VydmljZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9TZXR0aW5nU2VydmljZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1NldHRpbmdTZXJ2aWNlLmNsYXNzCmluZGV4IDYyNTk1ZTQuLjYwZGZlMWQgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1NldHRpbmdTZXJ2aWNlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1NldHRpbmdTZXJ2aWNlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1RhZ1NlcnZpY2UuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9UYWdTZXJ2aWNlLmNsYXNzCmluZGV4IDI1MWFiNTAuLmJjNDhlYWYgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1RhZ1NlcnZpY2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvVGFnU2VydmljZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Ub3JyZW50U2VydmljZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmNsYXNzCmluZGV4IDJhNTEzMDAuLjQwOWVlZjkgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1RyYW5zZmVySGlzdG9yeVNlcnZpY2UuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9UcmFuc2Zlckhpc3RvcnlTZXJ2aWNlLmNsYXNzCmluZGV4IDA4ZGYwNTMuLjBjMDVlZTcgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1RyYW5zZmVySGlzdG9yeVNlcnZpY2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvVHJhbnNmZXJIaXN0b3J5U2VydmljZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Vc2VyR3JvdXBTZXJ2aWNlLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvVXNlckdyb3VwU2VydmljZS5jbGFzcwppbmRleCA2MGQ5OTZjLi5jMmI1Yjc3IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Vc2VyR3JvdXBTZXJ2aWNlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9zZXJ2aWNlL1VzZXJHcm91cFNlcnZpY2UuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3NlcnZpY2UvVXNlclNlcnZpY2UuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Vc2VyU2VydmljZS5jbGFzcwppbmRleCBhNDNkZmFmLi5jMGRmMmI3IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Vc2VyU2VydmljZS5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvc2VydmljZS9Vc2VyU2VydmljZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvdHlwZS9Bbm5vdW5jZUV2ZW50VHlwZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC90eXBlL0Fubm91bmNlRXZlbnRUeXBlLmNsYXNzCmluZGV4IDYyZGQ2MmUuLjFlOGRmNWUgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC90eXBlL0Fubm91bmNlRXZlbnRUeXBlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC90eXBlL0Fubm91bmNlRXZlbnRUeXBlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL0lQVXRpbC5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL0lQVXRpbC5jbGFzcwppbmRleCBkYWIyMjM2Li5hNjhiZTczIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvdXRpbC9JUFV0aWwuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3V0aWwvSVBVdGlsLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL0luZm9IYXNoVXRpbC5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL0luZm9IYXNoVXRpbC5jbGFzcwppbmRleCBiMThmOTc1Li45MTZjNzRkIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvdXRpbC9JbmZvSGFzaFV0aWwuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3V0aWwvSW5mb0hhc2hVdGlsLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL1Bhc3N3b3JkSGFzaC5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL1Bhc3N3b3JkSGFzaC5jbGFzcwppbmRleCA0YThkNjdhLi41NDQzYmFmIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvdXRpbC9QYXNzd29yZEhhc2guY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3V0aWwvUGFzc3dvcmRIYXNoLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL1JhbmRvbVV0aWwuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvdXRpbC9SYW5kb21VdGlsLmNsYXNzCmluZGV4IDk2OWFkMjcuLmI2YWMzZmUgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL1JhbmRvbVV0aWwuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3V0aWwvUmFuZG9tVXRpbC5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvdXRpbC9TYWZlVVVJRC5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL1NhZmVVVUlELmNsYXNzCmluZGV4IGEwNzBjMzEuLmEyMGM3YzYgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL1NhZmVVVUlELmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL1NhZmVVVUlELmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL1RvcnJlbnRQYXJzZXIuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvdXRpbC9Ub3JyZW50UGFyc2VyLmNsYXNzCmluZGV4IDRjYjdjYTkuLjMzZGZjYTQgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC91dGlsL1RvcnJlbnRQYXJzZXIuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3V0aWwvVG9ycmVudFBhcnNlci5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9wcHQuc3FsIGIvdGFyZ2V0L2NsYXNzZXMvcHB0LnNxbAppbmRleCA2ZjcyNTc5Li41NGU3MWYwIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9wcHQuc3FsCisrKyBiL3RhcmdldC9jbGFzc2VzL3BwdC5zcWwKQEAgLTEsNzQxICsxLDc0MiBAQAotLyoKLU5hdmljYXQgUHJlbWl1bSBEdW1wIFNRTAotCi0gU291cmNlIFNlcnZlciAgICAgICAgIDogZmlyc3QKLSBTb3VyY2UgU2VydmVyIFR5cGUgICAgOiBNeVNRTAotIFNvdXJjZSBTZXJ2ZXIgVmVyc2lvbiA6IDgwMDM2ICg4LjAuMzYpCi0gU291cmNlIEhvc3QgICAgICAgICAgIDogbG9jYWxob3N0OjMzMDYKLSBTb3VyY2UgU2NoZW1hICAgICAgICAgOiBwcHQKLQotIFRhcmdldCBTZXJ2ZXIgVHlwZSAgICA6IE15U1FMCi0gVGFyZ2V0IFNlcnZlciBWZXJzaW9uIDogODAwMzYgKDguMC4zNikKLSBGaWxlIEVuY29kaW5nICAgICAgICAgOiA2NTAwMQotCi0gRGF0ZTogMDQvMDYvMjAyNSAxNDozMzo0MAotKi8KLQotU0VUIE5BTUVTIHV0ZjhtYjQ7Ci1TRVQgRk9SRUlHTl9LRVlfQ0hFQ0tTID0gMDsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBjYXRlZ29yaWVzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgY2F0ZWdvcmllc2A7Ci1DUkVBVEUgVEFCTEUgYGNhdGVnb3JpZXNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNsdWdgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGljb25gIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgdWtfY2F0ZWdvcmllc19zbHVnYChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLb3VsMTRobzdiY3RiZWZ2OGp5d3A1djNpMmAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYGlkeF9jYXRlZ29yaWVzX3NsdWdgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhvdWwxNGhvN2JjdGJlZnY4anl3cDV2M2kyYChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRQotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAyIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgY2F0ZWdvcmllcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYGNhdGVnb3JpZXNgIFZBTFVFUyAoMSwgJ29zJywgJ+aTjeS9nOezu+e7nycsICdvcy1pY29uLnBuZycpOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIGV4YW1fcGxhbnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBleGFtX3BsYW5zYDsKLUNSRUFURSBUQUJMRSBgZXhhbV9wbGFuc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZGlzcGxheV9uYW1lYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBkb3dubG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGR1cmF0aW9uYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGthcm1hYCBkb3VibGUgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNlZWRpbmdfdGltZWAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBzZWVkc2AgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBzaGFyZV9yYXRpb2AgZG91YmxlIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBzbHVnYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cGxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLNzRqYWVwaWVhajJ1bXN3cHFuMTZ5eTN4NWAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWDc0amFlcGllYWoydW1zd3BxbjE2eXkzeDVgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFCi0pIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDEgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBleGFtX3BsYW5zCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgZXhhbXMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBleGFtc2A7Ci1DUkVBVEUgVEFCTEUgYGV4YW1zYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGVuZF9hdGAgZGF0ZXRpbWUoNikgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBleGFtX3BsYW5faWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHVzZXJfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLMndpaTBpZ2QzdmRmZWN5MDBvcDB1bjRxdGAoYHVzZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFgyd2lpMGlnZDN2ZGZlY3kwMG9wMHVuNHF0YChgdXNlcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYEZLbDBjaXBzMWdhbnkzY3VwcHlmczdudHBhaWAoYGV4YW1fcGxhbl9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgRktpNjNjcGwxeGtneTMyaXE2OHJ1NHlwam40YCBGT1JFSUdOIEtFWSAoYHVzZXJfaWRgKSBSRUZFUkVOQ0VTIGB1c2Vyc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYEZLbDBjaXBzMWdhbnkzY3VwcHlmczdudHBhaWAgRk9SRUlHTiBLRVkgKGBleGFtX3BsYW5faWRgKSBSRUZFUkVOQ0VTIGBleGFtX3BsYW5zYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgZXhhbXMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBsb2dpbl9oaXN0b3J5Ci0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgbG9naW5faGlzdG9yeWA7Ci1DUkVBVEUgVEFCTEUgYGxvZ2luX2hpc3RvcnlgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVzZXJfaWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdGltZWAgdGltZXN0YW1wIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB0eXBlYCBlbnVtKCdBQ0NPVU5UJywnUEFTU0tFWScsJ1BFUlNPTkFMX0FDQ0VTU1RPS0VOJywnUFJPR1JBTV9JTlRFUk5BTCcsJ1RXT19TVEVQX1ZFUklGSUNBVElPTicpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaXBfYWRkcmVzc2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXNlcl9hZ2VudGAgdmFyY2hhcig1MTIpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbG9jYXRpb25gIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBpZHhfbG9naW5fdGltZWAoYHRpbWVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYGZrX2xvZ2luaGlzdG9yeV91c2VyYChgdXNlcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYM2xmdDQ0bWFrcnhvbW14bTYzazd4ajc3ZGAoYHRpbWVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfbG9naW5oaXN0b3J5X3VzZXJgIEZPUkVJR04gS0VZIChgdXNlcl9pZGApIFJFRkVSRU5DRVMgYHVzZXJzYCAoYGlkYCkgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIFJFU1RSSUNUCi0pIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDMzIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgbG9naW5faGlzdG9yeQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMSwgMSwgJzIwMjUtMDYtMDMgMTI6MjU6MzMnLCAnQUNDT1VOVCcsICcwOjA6MDowOjA6MDowOjEnLCAnUG9zdG1hblJ1bnRpbWUvNy40My40JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDIsIDEsICcyMDI1LTA2LTAzIDEyOjUxOjQyJywgJ0FDQ09VTlQnLCAnMDowOjA6MDowOjA6MDoxJywgJ1Bvc3RtYW5SdW50aW1lLzcuNDMuNCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgzLCAxLCAnMjAyNS0wNi0wMyAxMjo1Mjo1NScsICdBQ0NPVU5UJywgJzA6MDowOjA6MDowOjA6MScsICdQb3N0bWFuUnVudGltZS83LjQzLjQnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoNCwgMSwgJzIwMjUtMDYtMDMgMTQ6MjA6NTUnLCAnQUNDT1VOVCcsICcwOjA6MDowOjA6MDowOjEnLCAnUG9zdG1hblJ1bnRpbWUvNy40My40JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDUsIDEsICcyMDI1LTA2LTAzIDE0OjMxOjEzJywgJ0FDQ09VTlQnLCAnMDowOjA6MDowOjA6MDoxJywgJ1Bvc3RtYW5SdW50aW1lLzcuNDMuNCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICg2LCAxLCAnMjAyNS0wNi0wNCAwMzo0MDoxMCcsICdBQ0NPVU5UJywgJzA6MDowOjA6MDowOjA6MScsICdQb3N0bWFuUnVudGltZS83LjQ0LjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoNywgMSwgJzIwMjUtMDYtMDQgMDM6NDM6MDknLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDgsIDEsICcyMDI1LTA2LTA0IDAzOjQ0OjI3JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdxQml0dG9ycmVudC81LjEuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICg5LCAxLCAnMjAyNS0wNi0wNCAwMzo1MTozNScsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTAsIDEsICcyMDI1LTA2LTA0IDAzOjUyOjIyJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTEsIDEsICcyMDI1LTA2LTA0IDAzOjUyOjUzJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTIsIDEsICcyMDI1LTA2LTA0IDAzOjUzOjEyJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTMsIDEsICcyMDI1LTA2LTA0IDAzOjU0OjQ2JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdxQml0dG9ycmVudC81LjEuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxNCwgMSwgJzIwMjUtMDYtMDQgMDM6NTg6MTQnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxNSwgMSwgJzIwMjUtMDYtMDQgMDQ6MjI6MzAnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxNiwgMSwgJzIwMjUtMDYtMDQgMDQ6NDM6MjknLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxNywgMSwgJzIwMjUtMDYtMDQgMDQ6NTQ6MDknLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxOCwgMSwgJzIwMjUtMDYtMDQgMDQ6NTk6MTMnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxOSwgMSwgJzIwMjUtMDYtMDQgMDU6MTc6MDcnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDIwLCAxLCAnMjAyNS0wNi0wNCAwNToxODoyOCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjEsIDEsICcyMDI1LTA2LTA0IDA1OjIxOjI1JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdxQml0dG9ycmVudC81LjEuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7Ci1JTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyMiwgMSwgJzIwMjUtMDYtMDQgMDU6MjE6NTgnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDIzLCAxLCAnMjAyNS0wNi0wNCAwNToyMjoyNCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI0LCAxLCAnMjAyNS0wNi0wNCAwNToyMjozMCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI1LCAxLCAnMjAyNS0wNi0wNCAwNToyNzo0NCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI2LCAxLCAnMjAyNS0wNi0wNCAwNToyNzo1MCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI3LCAxLCAnMjAyNS0wNi0wNCAwNTozMTo0NScsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI4LCAxLCAnMjAyNS0wNi0wNCAwNTozMzowMCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsKLUlOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI5LCAxLCAnMjAyNS0wNi0wNCAwNjoxMTozMScsICdQQVNTS0VZJywgJzE5Mi4xNjguMjU0LjEnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMzAsIDEsICcyMDI1LTA2LTA0IDA2OjEyOjEzJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4yNTQuMScsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMzEsIDEsICcyMDI1LTA2LTA0IDA2OjEyOjI3JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4yNTQuMScsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMzIsIDEsICcyMDI1LTA2LTA0IDA2OjEzOjIxJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4yNTQuMScsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHBlZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcGVlcnNgOwotQ1JFQVRFIFRBQkxFIGBwZWVyc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBpcGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHBvcnRgIGludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGluZm9faGFzaGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHBlZXJfaWRgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGB1c2VyX2FnZW50YCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgdXBsb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGRvd25sb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHRvX2dvYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBzZWVkZXJgIHRpbnlpbnQoMSkgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBwYXJ0aWFsX3NlZWRlcmAgdGlueWludCgxKSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHBhc3NrZXlgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGB1cGRhdGVfYXRgIHRpbWVzdGFtcCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHNlZWRpbmdfdGltZWAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgdXBsb2FkX3NwZWVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBkb3dubG9hZF9zcGVlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgdXNlcl9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgdWtfcGVlcnNfaXBfcG9ydF9pbmZvaGFzaGAoYGlwYCBBU0MsIGBwb3J0YCBBU0MsIGBpbmZvX2hhc2hgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUtvYThsM3hxZHZ4cjg5OG1vc2tzM2hxM2NiYChgaXBgIEFTQywgYHBvcnRgIEFTQywgYGluZm9faGFzaGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYGlkeF9wZWVyc191cGRhdGVfYXRgKGB1cGRhdGVfYXRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBma19wZWVyc191c2VyYChgdXNlcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWG1tdmszM2xpeTdqNXU5ZTRxaHh3MmQ3aDVgKGB1cGRhdGVfYXRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYGZrX3BlZXJzX3VzZXJgIEZPUkVJR04gS0VZIChgdXNlcl9pZGApIFJFRkVSRU5DRVMgYHVzZXJzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSA3IENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBwZXJtaXNzaW9ucwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHBlcm1pc3Npb25zYDsKLUNSRUFURSBUQUJMRSBgcGVybWlzc2lvbnNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc2x1Z2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGRlZmAgdGlueWludCgxKSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVzZXJfZ3JvdXBfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYHVrX3Blcm1pc3Npb25zX3NsdWdgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLZHY2bXdpa3B0c3U3MGhjcmpxMDdzcXNmeWAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBma19wZXJtaXNzaW9uc191c2VyX2dyb3VwYChgdXNlcl9ncm91cF9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfcGVybWlzc2lvbnNfdXNlcl9ncm91cGAgRk9SRUlHTiBLRVkgKGB1c2VyX2dyb3VwX2lkYCkgUkVGRVJFTkNFUyBgdXNlcl9ncm91cHNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUCi0pIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDE0IENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgcGVybWlzc2lvbnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUlOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICgxLCAndG9ycmVudDp1cGxvYWQnLCAxLCAxKTsKLUlOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICgyLCAndG9ycmVudDpkb3dubG9hZCcsIDEsIDEpOwotSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDMsICd0b3JyZW50OnZpZXcnLCAxLCAxKTsKLUlOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg0LCAndG9ycmVudDpzZWFyY2gnLCAxLCAxKTsKLUlOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg1LCAnY29tbWVudDpjcmVhdGUnLCAxLCAxKTsKLUlOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg2LCAndXNlcjptYW5hZ2UnLCAxLCAxKTsKLUlOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg3LCAndG9ycmVudDphcHByb3ZlJywgMSwgMSk7Ci1JTlNFUlQgSU5UTyBgcGVybWlzc2lvbnNgIFZBTFVFUyAoOCwgJ3RvcnJlbnQ6dGhhbmtzJywgMSwgMSk7Ci1JTlNFUlQgSU5UTyBgcGVybWlzc2lvbnNgIFZBTFVFUyAoOSwgJ3Byb21vdGlvbjpsaXN0JywgMSwgMSk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcHJvbW90aW9uX3BvbGljaWVzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcHJvbW90aW9uX3BvbGljaWVzYDsKLUNSRUFURSBUQUJMRSBgcHJvbW90aW9uX3BvbGljaWVzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc2x1Z2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBkaXNwbGF5X25hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXBsb2FkX3JhdGlvYCBkb3VibGUgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgZG93bmxvYWRfcmF0aW9gIGRvdWJsZSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgdWtfcHJvbW90aW9uX3BvbGljaWVzX3NsdWdgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVS2NqcXBlMWcxNW91dGZjMHU2YWp2cHd4b2VgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFCi0pIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDMgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBwcm9tb3Rpb25fcG9saWNpZXMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUlOU0VSVCBJTlRPIGBwcm9tb3Rpb25fcG9saWNpZXNgIFZBTFVFUyAoMSwgJ2RlZmF1bHQnLCAn6buY6K6k562W55WlJywgMSwgMSk7Ci1JTlNFUlQgSU5UTyBgcHJvbW90aW9uX3BvbGljaWVzYCBWQUxVRVMgKDIsICd2aXAnLCAn5rS76LeD55So5oi3562W55WlJywgMSwgMS41KTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X2Jsb2JfdHJpZ2dlcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X2Jsb2JfdHJpZ2dlcnNgOwotQ1JFQVRFIFRBQkxFIGBxcnR6X2Jsb2JfdHJpZ2dlcnNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBCTE9CX0RBVEFgIGJsb2IgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYFNDSEVEX05BTUVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX05BTUVgIEFTQywgYFRSSUdHRVJfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBxcnR6X2Jsb2JfdHJpZ2dlcnNfaWJma18xYCBGT1JFSUdOIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBSRUZFUkVOQ0VTIGBxcnR6X3RyaWdnZXJzYCAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUCi0pIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHFydHpfYmxvYl90cmlnZ2VycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfY2FsZW5kYXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9jYWxlbmRhcnNgOwotQ1JFQVRFIFRBQkxFIGBxcnR6X2NhbGVuZGFyc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDQUxFTkRBUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQ0FMRU5EQVJgIGJsb2IgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBDQUxFTkRBUl9OQU1FYCkgVVNJTkcgQlRSRUUKLSkgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgcXJ0el9jYWxlbmRhcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X2Nyb25fdHJpZ2dlcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X2Nyb25fdHJpZ2dlcnNgOwotQ1JFQVRFIFRBQkxFIGBxcnR6X2Nyb25fdHJpZ2dlcnNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDUk9OX0VYUFJFU1NJT05gIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVElNRV9aT05FX0lEYCB2YXJjaGFyKDgwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYHFydHpfY3Jvbl90cmlnZ2Vyc19pYmZrXzFgIEZPUkVJR04gS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFJFRkVSRU5DRVMgYHFydHpfdHJpZ2dlcnNgIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgcXJ0el9jcm9uX3RyaWdnZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9maXJlZF90cmlnZ2VycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfZmlyZWRfdHJpZ2dlcnNgOwotQ1JFQVRFIFRBQkxFIGBxcnR6X2ZpcmVkX3RyaWdnZXJzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBFTlRSWV9JRGAgdmFyY2hhcig5NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRSSUdHRVJfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYElOU1RBTkNFX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEZJUkVEX1RJTUVgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU0NIRURfVElNRWAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBQUklPUklUWWAgaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTVEFURWAgdmFyY2hhcigxNikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBKT0JfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSk9CX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBJU19OT05DT05DVVJSRU5UYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUkVRVUVTVFNfUkVDT1ZFUllgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBFTlRSWV9JRGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9GVF9UUklHX0lOU1RfTkFNRWAoYFNDSEVEX05BTUVgIEFTQywgYElOU1RBTkNFX05BTUVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX0ZUX0lOU1RfSk9CX1JFUV9SQ1ZSWWAoYFNDSEVEX05BTUVgIEFTQywgYElOU1RBTkNFX05BTUVgIEFTQywgYFJFUVVFU1RTX1JFQ09WRVJZYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9GVF9KX0dgKGBTQ0hFRF9OQU1FYCBBU0MsIGBKT0JfTkFNRWAgQVNDLCBgSk9CX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9GVF9KR2AoYFNDSEVEX05BTUVgIEFTQywgYEpPQl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfRlRfVF9HYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9OQU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9GVF9UR2AoYFNDSEVEX05BTUVgIEFTQywgYFRSSUdHRVJfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUKLSkgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgcXJ0el9maXJlZF90cmlnZ2VycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfam9iX2RldGFpbHMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X2pvYl9kZXRhaWxzYDsKLUNSRUFURSBUQUJMRSBgcXJ0el9qb2JfZGV0YWlsc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSk9CX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEpPQl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgREVTQ1JJUFRJT05gIHZhcmNoYXIoMjUwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEpPQl9DTEFTU19OQU1FYCB2YXJjaGFyKDI1MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBJU19EVVJBQkxFYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSVNfTk9OQ09OQ1VSUkVOVGAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYElTX1VQREFURV9EQVRBYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUkVRVUVTVFNfUkVDT1ZFUllgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBKT0JfREFUQWAgYmxvYiBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBKT0JfTkFNRWAsIGBKT0JfR1JPVVBgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfSl9SRVFfUkVDT1ZFUllgKGBTQ0hFRF9OQU1FYCBBU0MsIGBSRVFVRVNUU19SRUNPVkVSWWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfSl9HUlBgKGBTQ0hFRF9OQU1FYCBBU0MsIGBKT0JfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUKLSkgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgcXJ0el9qb2JfZGV0YWlscwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHFydHpfam9iX2RldGFpbHNgIFZBTFVFUyAoJ3NhcGxpbmdfc2NoZWR1bGVyJywgJ3BlZXJzX2NsZWFudXAnLCAnREVGQVVMVCcsICdQZWVycyBDbGVhbnVwJywgJ2NvbS5naXRodWIuZXhhbXBsZS5wdC5jcm9udGFzay5QZWVyc0NsZWFudXAnLCAnMScsICcwJywgJzAnLCAnMCcsIDB4QUNFRDAwMDU3MzcyMDAxNTZGNzI2NzJFNzE3NTYxNzI3NDdBMkU0QTZGNjI0NDYxNzQ2MTRENjE3MDlGQjA4M0U4QkZBOUIwQ0IwMjAwMDA3ODcyMDAyNjZGNzI2NzJFNzE3NTYxNzI3NDdBMkU3NTc0Njk2QzczMkU1Mzc0NzI2OTZFNjc0QjY1Nzk0NDY5NzI3NDc5NDY2QzYxNjc0RDYxNzA4MjA4RThDM0ZCQzU1RDI4MDIwMDAxNUEwMDEzNjE2QzZDNkY3NzczNTQ3MjYxNkU3MzY5NjU2RTc0NDQ2MTc0NjE3ODcyMDAxRDZGNzI2NzJFNzE3NTYxNzI3NDdBMkU3NTc0Njk2QzczMkU0NDY5NzI3NDc5NDY2QzYxNjc0RDYxNzAxM0U2MkVBRDI4NzYwQUNFMDIwMDAyNUEwMDA1NjQ2OTcyNzQ3OTRDMDAwMzZENjE3MDc0MDAwRjRDNkE2MTc2NjEyRjc1NzQ2OTZDMkY0RDYxNzAzQjc4NzAwMDczNzIwMDExNkE2MTc2NjEyRTc1NzQ2OTZDMkU0ODYxNzM2ODRENjE3MDA1MDdEQUMxQzMxNjYwRDEwMzAwMDI0NjAwMEE2QzZGNjE2NDQ2NjE2Mzc0NkY3MjQ5MDAwOTc0Njg3MjY1NzM2ODZGNkM2NDc4NzAzRjQwMDAwMDAwMDAwMDEwNzcwODAwMDAwMDEwMDAwMDAwMDA3ODAwKTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X2xvY2tzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9sb2Nrc2A7Ci1DUkVBVEUgVEFCTEUgYHFydHpfbG9ja3NgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYExPQ0tfTkFNRWAgdmFyY2hhcig0MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBMT0NLX05BTUVgKSBVU0lORyBCVFJFRQotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X2xvY2tzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgcXJ0el9sb2Nrc2AgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAnU1RBVEVfQUNDRVNTJyk7Ci1JTlNFUlQgSU5UTyBgcXJ0el9sb2Nrc2AgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAnVFJJR0dFUl9BQ0NFU1MnKTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X3BhdXNlZF90cmlnZ2VyX2dycHMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X3BhdXNlZF90cmlnZ2VyX2dycHNgOwotQ1JFQVRFIFRBQkxFIGBxcnR6X3BhdXNlZF90cmlnZ2VyX2dycHNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBVU0lORyBCVFJFRQotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X3BhdXNlZF90cmlnZ2VyX2dycHMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X3NjaGVkdWxlcl9zdGF0ZQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfc2NoZWR1bGVyX3N0YXRlYDsKLUNSRUFURSBUQUJMRSBgcXJ0el9zY2hlZHVsZXJfc3RhdGVgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSU5TVEFOQ0VfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYExBU1RfQ0hFQ0tJTl9USU1FYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDSEVDS0lOX0lOVEVSVkFMYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBJTlNUQU5DRV9OQU1FYCkgVVNJTkcgQlRSRUUKLSkgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgcXJ0el9zY2hlZHVsZXJfc3RhdGUKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUlOU0VSVCBJTlRPIGBxcnR6X3NjaGVkdWxlcl9zdGF0ZWAgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAnTEFQVE9QLVYyNEs1QTU1MTc0OTAxODQ4OTU4OCcsIDE3NDkwMTg1MTAxODIsIDEwMDAwKTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X3NpbXBsZV90cmlnZ2VycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfc2ltcGxlX3RyaWdnZXJzYDsKLUNSRUFURSBUQUJMRSBgcXJ0el9zaW1wbGVfdHJpZ2dlcnNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFJFUEVBVF9DT1VOVGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUkVQRUFUX0lOVEVSVkFMYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBUSU1FU19UUklHR0VSRURgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYHFydHpfc2ltcGxlX3RyaWdnZXJzX2liZmtfMWAgRk9SRUlHTiBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgUkVGRVJFTkNFUyBgcXJ0el90cmlnZ2Vyc2AgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X3NpbXBsZV90cmlnZ2VycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHFydHpfc2ltcGxlX3RyaWdnZXJzYCBWQUxVRVMgKCdzYXBsaW5nX3NjaGVkdWxlcicsICc2ZGE2NGI1YmQyZWUtMzdmZmE4MmEtYTU5OC00ODVjLTk3MTgtNDBlZTkwYzI2YmM0JywgJ0RFRkFVTFQnLCAtMSwgMTgwMDAwMCwgMSk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9zaW1wcm9wX3RyaWdnZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9zaW1wcm9wX3RyaWdnZXJzYDsKLUNSRUFURSBUQUJMRSBgcXJ0el9zaW1wcm9wX3RyaWdnZXJzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRSSUdHRVJfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU1RSX1BST1BfMWAgdmFyY2hhcig1MTIpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTVFJfUFJPUF8yYCB2YXJjaGFyKDUxMikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNUUl9QUk9QXzNgIHZhcmNoYXIoNTEyKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSU5UX1BST1BfMWAgaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYElOVF9QUk9QXzJgIGludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBMT05HX1BST1BfMWAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYExPTkdfUFJPUF8yYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgREVDX1BST1BfMWAgZGVjaW1hbCgxMywgNCkgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgREVDX1BST1BfMmAgZGVjaW1hbCgxMywgNCkgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQk9PTF9QUk9QXzFgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEJPT0xfUFJPUF8yYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgcXJ0el9zaW1wcm9wX3RyaWdnZXJzX2liZmtfMWAgRk9SRUlHTiBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgUkVGRVJFTkNFUyBgcXJ0el90cmlnZ2Vyc2AgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiBxcnR6X3NpbXByb3BfdHJpZ2dlcnMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X3RyaWdnZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el90cmlnZ2Vyc2A7Ci1DUkVBVEUgVEFCTEUgYHFydHpfdHJpZ2dlcnNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRSSUdHRVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSk9CX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEpPQl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgREVTQ1JJUFRJT05gIHZhcmNoYXIoMjUwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYE5FWFRfRklSRV9USU1FYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFBSRVZfRklSRV9USU1FYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFBSSU9SSVRZYCBpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRSSUdHRVJfU1RBVEVgIHZhcmNoYXIoMTYpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVFJJR0dFUl9UWVBFYCB2YXJjaGFyKDgpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgU1RBUlRfVElNRWAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBFTkRfVElNRWAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDQUxFTkRBUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBNSVNGSVJFX0lOU1RSYCBzbWFsbGludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSk9CX0RBVEFgIGJsb2IgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9KYChgU0NIRURfTkFNRWAgQVNDLCBgSk9CX05BTUVgIEFTQywgYEpPQl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9KR2AoYFNDSEVEX05BTUVgIEFTQywgYEpPQl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9DYChgU0NIRURfTkFNRWAgQVNDLCBgQ0FMRU5EQVJfTkFNRWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9HYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9TVEFURWAoYFNDSEVEX05BTUVgIEFTQywgYFRSSUdHRVJfU1RBVEVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX1RfTl9TVEFURWAoYFNDSEVEX05BTUVgIEFTQywgYFRSSUdHRVJfTkFNRWAgQVNDLCBgVFJJR0dFUl9HUk9VUGAgQVNDLCBgVFJJR0dFUl9TVEFURWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9OX0dfU1RBVEVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MsIGBUUklHR0VSX1NUQVRFYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9UX05FWFRfRklSRV9USU1FYChgU0NIRURfTkFNRWAgQVNDLCBgTkVYVF9GSVJFX1RJTUVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX1RfTkZUX1NUYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9TVEFURWAgQVNDLCBgTkVYVF9GSVJFX1RJTUVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWF9RUlRaX1RfTkZUX01JU0ZJUkVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBNSVNGSVJFX0lOU1RSYCBBU0MsIGBORVhUX0ZJUkVfVElNRWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYX1FSVFpfVF9ORlRfU1RfTUlTRklSRWAoYFNDSEVEX05BTUVgIEFTQywgYE1JU0ZJUkVfSU5TVFJgIEFTQywgYE5FWFRfRklSRV9USU1FYCBBU0MsIGBUUklHR0VSX1NUQVRFYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBJRFhfUVJUWl9UX05GVF9TVF9NSVNGSVJFX0dSUGAoYFNDSEVEX05BTUVgIEFTQywgYE1JU0ZJUkVfSU5TVFJgIEFTQywgYE5FWFRfRklSRV9USU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MsIGBUUklHR0VSX1NUQVRFYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYHFydHpfdHJpZ2dlcnNfaWJma18xYCBGT1JFSUdOIEtFWSAoYFNDSEVEX05BTUVgLCBgSk9CX05BTUVgLCBgSk9CX0dST1VQYCkgUkVGRVJFTkNFUyBgcXJ0el9qb2JfZGV0YWlsc2AgKGBTQ0hFRF9OQU1FYCwgYEpPQl9OQU1FYCwgYEpPQl9HUk9VUGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgcXJ0el90cmlnZ2VycwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHFydHpfdHJpZ2dlcnNgIFZBTFVFUyAoJ3NhcGxpbmdfc2NoZWR1bGVyJywgJzZkYTY0YjViZDJlZS0zN2ZmYTgyYS1hNTk4LTQ4NWMtOTcxOC00MGVlOTBjMjZiYzQnLCAnREVGQVVMVCcsICdwZWVyc19jbGVhbnVwJywgJ0RFRkFVTFQnLCBOVUxMLCAxNzQ5MDIwMjg4NTA1LCAxNzQ5MDE4NDg4NTA1LCA1LCAnV0FJVElORycsICdTSU1QTEUnLCAxNzQ5MDE4NDg4NTA1LCAwLCBOVUxMLCAwLCAnJyk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3Igc2VlZGJveAotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHNlZWRib3hgOwotQ1JFQVRFIFRBQkxFIGBzZWVkYm94YCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBhZGRyZXNzYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBkb3dubG9hZF9tdWx0aXBsaWVyX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVwbG9hZF9tdWx0aXBsaWVyX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUtlY2JlaGp0ZzNiZnI0cm15aXh0MWdjdmZxYChgYWRkcmVzc2AgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgRktxNjN0cWh5a2dsOTZsNHJrd3k5d2lkeTViYChgZG93bmxvYWRfbXVsdGlwbGllcl9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgRks5eGw1MW5hM2RuOGs3b3U4Y3l2N3Mxd3JmYChgdXBsb2FkX211bHRpcGxpZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgRks5eGw1MW5hM2RuOGs3b3U4Y3l2N3Mxd3JmYCBGT1JFSUdOIEtFWSAoYHVwbG9hZF9tdWx0aXBsaWVyX2lkYCkgUkVGRVJFTkNFUyBgcHJvbW90aW9uX3BvbGljaWVzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBGS3E2M3RxaHlrZ2w5Nmw0cmt3eTl3aWR5NWJgIEZPUkVJR04gS0VZIChgZG93bmxvYWRfbXVsdGlwbGllcl9pZGApIFJFRkVSRU5DRVMgYHByb21vdGlvbl9wb2xpY2llc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHNlZWRib3gKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciBzZXR0aW5ncwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHNldHRpbmdzYDsKLUNSRUFURSBUQUJMRSBgc2V0dGluZ3NgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc2V0dGluZ19rZXlgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBzZXR0aW5nX3ZhbHVlYCBtZWRpdW10ZXh0IENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYHVrX3NldHRpbmdzX3NldHRpbmdfa2V5YChgc2V0dGluZ19rZXlgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUtzd2QwNWR2ajR1a3Z3NXExMzVicGJiZmFlYChgc2V0dGluZ19rZXlgIEFTQykgVVNJTkcgQlRSRUUKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMTEgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciB0YWdzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgdGFnc2A7Ci1DUkVBVEUgVEFCTEUgYHRhZ3NgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgYG5hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgdWtfdGFnc19uYW1lYChgbmFtZWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLdDQ4eGRxNTYwZ3MzZ2FwOWc3amczNmtnY2AoYG5hbWVgIEFTQykgVVNJTkcgQlRSRUUKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMTAgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiB0YWdzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgdGFnc2AgVkFMVUVTICg5LCAnW1wibGludXhcIl0nKTsKLUlOU0VSVCBJTlRPIGB0YWdzYCBWQUxVRVMgKDMsICdkZWJpYW4nKTsKLUlOU0VSVCBJTlRPIGB0YWdzYCBWQUxVRVMgKDEsICdsaW51eCcpOwotSU5TRVJUIElOVE8gYHRhZ3NgIFZBTFVFUyAoNSwgJ21hY29zJyk7Ci1JTlNFUlQgSU5UTyBgdGFnc2AgVkFMVUVTICgyLCAndWJ1bnR1Jyk7Ci1JTlNFUlQgSU5UTyBgdGFnc2AgVkFMVUVTICg0LCAnd2luZG93cycpOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHRoYW5rcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHRoYW5rc2A7Ci1DUkVBVEUgVEFCTEUgYHRoYW5rc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYHRvcnJlbnRfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1c2VyX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYFVLcnQ5bGcwaDUzYnJncGY5aWF0NWhjbWY2Z2AoYHVzZXJfaWRgIEFTQywgYHRvcnJlbnRfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgRktwM2tnaDI1dGtvNDh2cTd4NnUydzNkdnBwYChgdG9ycmVudF9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYEZLMnQ5MGgyMXM1aHl4Nmh5bmV3c2RsazQ2amAgRk9SRUlHTiBLRVkgKGB1c2VyX2lkYCkgUkVGRVJFTkNFUyBgdXNlcnNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgRktwM2tnaDI1dGtvNDh2cTd4NnUydzNkdnBwYCBGT1JFSUdOIEtFWSAoYHRvcnJlbnRfaWRgKSBSRUZFUkVOQ0VTIGB0b3JyZW50c2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHRoYW5rcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHRvcnJlbnRzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgdG9ycmVudHNgOwotQ1JFQVRFIFRBQkxFIGB0b3JyZW50c2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpbmZvX2hhc2hgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1c2VyX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB0aXRsZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHN1Yl90aXRsZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNpemVgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGNyZWF0ZWRfYXRgIHRpbWVzdGFtcCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVwZGF0ZWRfYXRgIHRpbWVzdGFtcCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVuZGVyX3Jldmlld2AgdGlueWludCgxKSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGFub255bW91c2AgdGlueWludCgxKSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGNhdGVnb3J5X2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBwcm9tb3Rpb25fcG9saWN5X2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBkZXNjcmlwdGlvbmAgbWVkaXVtdGV4dCBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGB1a190b3JyZW50c19pbmZvX2hhc2hgKGBpbmZvX2hhc2hgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUtoYWcyZWoxdm84c252aXJiMWx2NGI4cjR4YChgaW5mb19oYXNoYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgaWR4X3RvcnJlbnRzX3RpdGxlYChgdGl0bGVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBpZHhfdG9ycmVudHNfc3ViX3RpdGxlYChgc3ViX3RpdGxlYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgaWR4X3RvcnJlbnRzX3Byb21vdGlvbl9wb2xpY3lfaWRgKGBwcm9tb3Rpb25fcG9saWN5X2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgZmtfdG9ycmVudHNfdXNlcmAoYHVzZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBma190b3JyZW50c19jYXRlZ29yeWAoYGNhdGVnb3J5X2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYZHBsa2FhcHFzbGVsbnNjdXVuZnBtOWViNmAoYHRpdGxlYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgSURYNnI1a2g2aTRhd3BkbHl0am1tMDZwazIya2AoYHN1Yl90aXRsZWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVggYElEWGQyajNoOHRkNzY4MmNjdGt2NW83N2IzM3lgKGBwcm9tb3Rpb25fcG9saWN5X2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma190b3JyZW50c19jYXRlZ29yeWAgRk9SRUlHTiBLRVkgKGBjYXRlZ29yeV9pZGApIFJFRkVSRU5DRVMgYGNhdGVnb3JpZXNgIChgaWRgKSBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFJFU1RSSUNULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma190b3JyZW50c19wcm9tb3Rpb25fcG9saWN5YCBGT1JFSUdOIEtFWSAoYHByb21vdGlvbl9wb2xpY3lfaWRgKSBSRUZFUkVOQ0VTIGBwcm9tb3Rpb25fcG9saWNpZXNgIChgaWRgKSBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFJFU1RSSUNULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma190b3JyZW50c191c2VyYCBGT1JFSUdOIEtFWSAoYHVzZXJfaWRgKSBSRUZFUkVOQ0VTIGB1c2Vyc2AgKGBpZGApIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMTEgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gUmVjb3JkcyBvZiB0b3JyZW50cwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHRvcnJlbnRzYCBWQUxVRVMgKDcsICc0OTllOWM2OWU5MGI5NzZjNWM4NDU0MmNmOWI4OGZhZDFlMTJlZjFjJywgMSwgJ2V4YW1wbGUgdG9ycmVudCB0aXRsZScsICdzdWJ0aXRsZSBoZXJlJywgNjYxOTQsICcyMDI1LTA2LTA0IDAzOjQxOjI3JywgJzIwMjUtMDYtMDQgMDM6NDE6MjcnLCAwLCAwLCAxLCAxLCAn5ryU56S656eN5a2QJyk7Ci1JTlNFUlQgSU5UTyBgdG9ycmVudHNgIFZBTFVFUyAoOCwgJ2Y0NTc3NTU2NGM4OGI1YTI3ODJhMzAxZDE2MmUxZDQ4MTFiMGI2ZDUnLCAxLCAnZXhhbXBsZSB0b3JyZW50IHRpdGxlJywgJ3N1YnRpdGxlIGhlcmUnLCAyMzExMDUsICcyMDI1LTA2LTA0IDA1OjIwOjM3JywgJzIwMjUtMDYtMDQgMDU6MjA6MzcnLCAwLCAwLCAxLCAxLCAn5ryU56S656eN5a2QJyk7Ci1JTlNFUlQgSU5UTyBgdG9ycmVudHNgIFZBTFVFUyAoOSwgJzhlMTBjOWRhYTFiNWZiMThkYzViMGU3Mzk4ODgwOGJhOTU4MzkxZmEnLCAxLCAnZXhhbXBsZSB0b3JyZW50IHRpdGxlJywgJ3N1YnRpdGxlIGhlcmUnLCA0MjYxNTUsICcyMDI1LTA2LTA0IDA2OjAzOjQ5JywgJzIwMjUtMDYtMDQgMDY6MDM6NDknLCAwLCAwLCAxLCAxLCAn5ryU56S656eN5a2QJyk7Ci1JTlNFUlQgSU5UTyBgdG9ycmVudHNgIFZBTFVFUyAoMTAsICcxZTMyNzVmNTRlYzA3NGFmMmQ5OTgyODMxMWQ0YTg0ODhlYjdhNDg3JywgMSwgJ2V4YW1wbGUgdG9ycmVudCB0aXRsZScsICdzdWJ0aXRsZSBoZXJlJywgMTM4NjE2OTQsICcyMDI1LTA2LTA0IDA2OjEwOjIzJywgJzIwMjUtMDYtMDQgMDY6MTA6MjMnLCAwLCAwLCAxLCAxLCAn5ryU56S656eN5a2QJyk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdG9ycmVudHNfdGFnCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgdG9ycmVudHNfdGFnYDsKLUNSRUFURSBUQUJMRSBgdG9ycmVudHNfdGFnYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHRvcnJlbnRfaWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB0YWdfaWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgdG9ycmVudF9pZGAsIGB0YWdfaWRgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYIGBma190b3JyZW50c190YWdfdGFnYChgdGFnX2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfdG9ycmVudHNfdGFnX3RhZ2AgRk9SRUlHTiBLRVkgKGB0YWdfaWRgKSBSRUZFUkVOQ0VTIGB0YWdzYCAoYGlkYCkgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIFJFU1RSSUNULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfdG9ycmVudHNfdGFnX3RvcnJlbnRgIEZPUkVJR04gS0VZIChgdG9ycmVudF9pZGApIFJFRkVSRU5DRVMgYHRvcnJlbnRzYCAoYGlkYCkgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIFJFU1RSSUNUCi0pIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHRvcnJlbnRzX3RhZwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHRvcnJlbnRzX3RhZ2AgVkFMVUVTICg3LCA5KTsKLUlOU0VSVCBJTlRPIGB0b3JyZW50c190YWdgIFZBTFVFUyAoOCwgOSk7Ci1JTlNFUlQgSU5UTyBgdG9ycmVudHNfdGFnYCBWQUxVRVMgKDksIDkpOwotSU5TRVJUIElOVE8gYHRvcnJlbnRzX3RhZ2AgVkFMVUVTICgxMCwgOSk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdHJhbnNmZXJfaGlzdG9yeQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRFJPUCBUQUJMRSBJRiBFWElTVFMgYHRyYW5zZmVyX2hpc3RvcnlgOwotQ1JFQVRFIFRBQkxFIGB0cmFuc2Zlcl9oaXN0b3J5YCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1c2VyX2lkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHRvcnJlbnRfaWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdG9fZ29gIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgc3RhcnRlZF9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cGRhdGVkX2F0YCB0aW1lc3RhbXAgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVwbG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGRvd25sb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYWN0dWFsX3VwbG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGFjdHVhbF9kb3dubG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVwbG9hZF9zcGVlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBkb3dubG9hZF9zcGVlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBsYXN0X2V2ZW50YCBlbnVtKCdzdGFydGVkJywnY29tcGxldGVkJywnc3RvcHBlZCcsJ3BhdXNlZCcsJ3Vua25vd24nKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGhhdmVfY29tcGxldGVfaGlzdG9yeWAgdGlueWludCgxKSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGB1a191c2VyX3RvcnJlbnRgKGB1c2VyX2lkYCBBU0MsIGB0b3JyZW50X2lkYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgVUtybTVwNHh2M3JiMnZtNnBzcWw1amU5NGpoYChgdXNlcl9pZGAgQVNDLCBgdG9ycmVudF9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgZmtfdHJhbnNmZXJfdG9ycmVudGAoYHRvcnJlbnRfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfdHJhbnNmZXJfdG9ycmVudGAgRk9SRUlHTiBLRVkgKGB0b3JyZW50X2lkYCkgUkVGRVJFTkNFUyBgdG9ycmVudHNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYGZrX3RyYW5zZmVyX3VzZXJgIEZPUkVJR04gS0VZIChgdXNlcl9pZGApIFJFRkVSRU5DRVMgYHVzZXJzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVAotKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAzIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgdHJhbnNmZXJfaGlzdG9yeQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHRyYW5zZmVyX2hpc3RvcnlgIFZBTFVFUyAoMSwgMSwgNywgNjYxOTQsICcyMDI1LTA2LTA0IDA0OjQzOjMwJywgJzIwMjUtMDYtMDQgMDU6MjE6MjUnLCAwLCAwLCAwLCAwLCAwLCAwLCAnY29tcGxldGVkJywgMSk7Ci1JTlNFUlQgSU5UTyBgdHJhbnNmZXJfaGlzdG9yeWAgVkFMVUVTICgyLCAxLCAxMCwgMCwgJzIwMjUtMDYtMDQgMDY6MTE6MzEnLCAnMjAyNS0wNi0wNCAwNjoxMzoyMScsIDI3NzIzMzg4LCAwLCAwLCAyNzcyMzM4OCwgMCwgNzc4NzQsICdzdGFydGVkJywgMSk7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdXNlcl9ncm91cHMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGB1c2VyX2dyb3Vwc2A7Ci1DUkVBVEUgVEFCTEUgYHVzZXJfZ3JvdXBzYCAgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNsdWdgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBkaXNwbGF5X25hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBwcm9tb3Rpb25fcG9saWN5X2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGB1a191c2VyX2dyb3Vwc19zbHVnYChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVS2tramUxamJtcmthbTFrN2piZDM5aG9tdzBgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgZmtfdXNlcl9ncm91cHNfcHJvbW90aW9uX3BvbGljeWAoYHByb21vdGlvbl9wb2xpY3lfaWRgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYGZrX3VzZXJfZ3JvdXBzX3Byb21vdGlvbl9wb2xpY3lgIEZPUkVJR04gS0VZIChgcHJvbW90aW9uX3BvbGljeV9pZGApIFJFRkVSRU5DRVMgYHByb21vdGlvbl9wb2xpY2llc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMyBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHVzZXJfZ3JvdXBzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNgIFZBTFVFUyAoMSwgJ2RlZmF1bHQnLCAn6buY6K6k55So5oi357uEJywgMSk7Ci1JTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNgIFZBTFVFUyAoMiwgJ3ZpcCcsICfmtLvot4PnlKjmiLfnu4QnLCAyKTsKLQotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gVGFibGUgc3RydWN0dXJlIGZvciB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllc2A7Ci1DUkVBVEUgVEFCTEUgYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVzZXJfZ3JvdXBfaWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgcGVybWlzc2lvbl9lbnRpdGllc19pZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChgdXNlcl9ncm91cF9pZGAsIGBwZXJtaXNzaW9uX2VudGl0aWVzX2lkYCkgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVS185NWo5dWFxOTZidmQ5eWtuMHNuZ3l3a3M2YChgcGVybWlzc2lvbl9lbnRpdGllc19pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVFJBSU5UIGBma191Z3BlX3Blcm1pc3Npb25gIEZPUkVJR04gS0VZIChgcGVybWlzc2lvbl9lbnRpdGllc19pZGApIFJFRkVSRU5DRVMgYHBlcm1pc3Npb25zYCAoYGlkYCkgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIFJFU1RSSUNULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgYGZrX3VncGVfdXNlcl9ncm91cGAgRk9SRUlHTiBLRVkgKGB1c2VyX2dyb3VwX2lkYCkgUkVGRVJFTkNFUyBgdXNlcl9ncm91cHNgIChgaWRgKSBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7Ci0KLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIFJlY29yZHMgb2YgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllcwotLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgMSk7Ci1JTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllc2AgVkFMVUVTICgxLCAyKTsKLUlOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDMpOwotSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgNCk7Ci1JTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllc2AgVkFMVUVTICgxLCA1KTsKLUlOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDYpOwotSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzX3Blcm1pc3Npb25fZW50aXRpZXNgIFZBTFVFUyAoMSwgNyk7Ci1JTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllc2AgVkFMVUVTICgxLCA4KTsKLUlOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDkpOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHVzZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EUk9QIFRBQkxFIElGIEVYSVNUUyBgdXNlcnNgOwotQ1JFQVRFIFRBQkxFIGB1c2Vyc2AgICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBlbWFpbGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHBhc3N3b3JkYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgdXNlcm5hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBncm91cF9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgcGFzc2tleWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYGNyZWF0ZV9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgYXZhdGFyYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgY3VzdG9tX3RpdGxlYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgc2lnbmF0dXJlYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgbGFuZ3VhZ2VgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGBkb3dubG9hZF9iYW5kd2lkdGhgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGB1cGxvYWRfYmFuZHdpZHRoYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgZG93bmxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgdXBsb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHJlYWxfZG93bmxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgcmVhbF91cGxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgaXNwYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBga2FybWFgIGRlY2ltYWwoMTksIDIpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgaW52aXRlX3Nsb3RgIGludCBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYHNlZWRpbmdfdGltZWAgYmlnaW50IE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgcGVyc29uYWxfYWNjZXNzX3Rva2VuYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICBgcHJpdmFjeV9sZXZlbGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBVTklRVUUgSU5ERVggYHVrX3VzZXJzX3VzZXJuYW1lYChgdXNlcm5hbWVgIEFTQykgVVNJTkcgQlRSRUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVFVRSBJTkRFWCBgdWtfdXNlcnNfZW1haWxgKGBlbWFpbGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGB1a191c2Vyc19wYXNza2V5YChgcGFzc2tleWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVS3I0M2FmOWFwNGVkbTQzbW10cTAxb2RkajZgKGB1c2VybmFtZWAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVSzZkb3Rrb3R0Mmtqc3A4dnc0ZDBtMjVmYjdgKGBlbWFpbGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JUVVFIElOREVYIGBVSzQwMnN4NmNxZ2s2NnV3dDdleWY1NHRtaWpgKGBwYXNza2V5YCBBU0MpIFVTSU5HIEJUUkVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWCBgZmtfdXNlcnNfZ3JvdXBgKGBncm91cF9pZGAgQVNDKSBVU0lORyBCVFJFRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBgZmtfdXNlcnNfZ3JvdXBgIEZPUkVJR04gS0VZIChgZ3JvdXBfaWRgKSBSRUZFUkVOQ0VTIGB1c2VyX2dyb3Vwc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QKLSkgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIHVzZXJzCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JTlNFUlQgSU5UTyBgdXNlcnNgIFZBTFVFUyAoMSwgJ3Rlc3R1c2VyQGV4YW1wbGUuY29tJywgJyQyYSQwNiRKcXZIcEM5NG1uTjIzdXdtWlgwWEhldXlGajNNMjJJa3c4VkJaUm9wZnJsV2JQZkE0S1JFdScsICd0ZXN0dXNlcicsIDEsICc0NzA1MGU4Zi1mM2ZkLTRhOWMtYTgyOC0wZTBkZTQ1NjY5MWYnLCAnMjAyNS0wNi0wMyAxMTozNDowOCcsICdodHRwczovL3d3dy5iYWlkdS5jb20vZmFjaXZvbi5pY28nLCAn5rWL6K+V55So5oi3JywgJ+i/meS4queUqOaIt+W+iOaHku+8jOi/mOayoeacieS4quaAp+etvuWQjScsICd6aC1DTicsICcxMDBtYnBzJywgJzEwMG1icHMnLCAwLCAyNzcyMzM4OCwgMjc3MjMzODgsIDAsICfmnKrnn6UnLCAwLjAwLCAwLCAzMDc5MDA2OCwgJzk0OGM5MTQ2LWZmNWYtNGFkNi04YmE1LWQzMmUxMjA5Y2FmZCcsICcwJyk7Ci0KLVNFVCBGT1JFSUdOX0tFWV9DSEVDS1MgPSAxOwotCi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBSZWNvcmRzIG9mIGNoYXRfbWVzc2FnZXMKLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLURST1AgVEFCTEUgSUYgRVhJU1RTIGBjaGF0X21lc3NhZ2VzYDsKLUNSRUFURSBUQUJMRSBjaGF0X21lc3NhZ2VzICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCBCSUdJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbV9pZCBCSUdJTlQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZCBCSUdJTlQgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCBURVhUIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgREFURVRJTUUgTk9UIE5VTEwKLSk7CisvKg0KKyBOYXZpY2F0IFByZW1pdW0gRHVtcCBTUUwNCisNCisgU291cmNlIFNlcnZlciAgICAgICAgIDogZmlyc3QNCisgU291cmNlIFNlcnZlciBUeXBlICAgIDogTXlTUUwNCisgU291cmNlIFNlcnZlciBWZXJzaW9uIDogODAwMzYgKDguMC4zNikNCisgU291cmNlIEhvc3QgICAgICAgICAgIDogbG9jYWxob3N0OjMzMDYNCisgU291cmNlIFNjaGVtYSAgICAgICAgIDogcHB0DQorDQorIFRhcmdldCBTZXJ2ZXIgVHlwZSAgICA6IE15U1FMDQorIFRhcmdldCBTZXJ2ZXIgVmVyc2lvbiA6IDgwMDM2ICg4LjAuMzYpDQorIEZpbGUgRW5jb2RpbmcgICAgICAgICA6IDY1MDAxDQorDQorIERhdGU6IDA0LzA2LzIwMjUgMTQ6MzM6NDANCisqLw0KKw0KK1NFVCBOQU1FUyB1dGY4bWI0Ow0KK1NFVCBGT1JFSUdOX0tFWV9DSEVDS1MgPSAwOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIGNhdGVnb3JpZXMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYGNhdGVnb3JpZXNgOw0KK0NSRUFURSBUQUJMRSBgY2F0ZWdvcmllc2AgICgNCisgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULA0KKyAgYHNsdWdgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgbmFtZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBpY29uYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGB1a19jYXRlZ29yaWVzX3NsdWdgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS291bDE0aG83YmN0YmVmdjhqeXdwNXYzaTJgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYGlkeF9jYXRlZ29yaWVzX3NsdWdgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWG91bDE0aG83YmN0YmVmdjhqeXdwNXYzaTJgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAyIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgY2F0ZWdvcmllcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgY2F0ZWdvcmllc2AgVkFMVUVTICgxLCAnb3MnLCAn5pON5L2c57O757ufJywgJ29zLWljb24ucG5nJyk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgZXhhbV9wbGFucw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgZXhhbV9wbGFuc2A7DQorQ1JFQVRFIFRBQkxFIGBleGFtX3BsYW5zYCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgZGlzcGxheV9uYW1lYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGRvd25sb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBkdXJhdGlvbmAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYGthcm1hYCBkb3VibGUgTk9UIE5VTEwsDQorICBgc2VlZGluZ190aW1lYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgc2VlZHNgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBzaGFyZV9yYXRpb2AgZG91YmxlIE5PVCBOVUxMLA0KKyAgYHNsdWdgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgdXBsb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUs3NGphZXBpZWFqMnVtc3dwcW4xNnl5M3g1YChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFg3NGphZXBpZWFqMnVtc3dwcW4xNnl5M3g1YChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRQ0KKykgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIGV4YW1fcGxhbnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgZXhhbXMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYGV4YW1zYDsNCitDUkVBVEUgVEFCTEUgYGV4YW1zYCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgZW5kX2F0YCBkYXRldGltZSg2KSBOT1QgTlVMTCwNCisgIGBleGFtX3BsYW5faWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGB1c2VyX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLMndpaTBpZ2QzdmRmZWN5MDBvcDB1bjRxdGAoYHVzZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYMndpaTBpZ2QzdmRmZWN5MDBvcDB1bjRxdGAoYHVzZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgRktsMGNpcHMxZ2FueTNjdXBweWZzN250cGFpYChgZXhhbV9wbGFuX2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgRktpNjNjcGwxeGtneTMyaXE2OHJ1NHlwam40YCBGT1JFSUdOIEtFWSAoYHVzZXJfaWRgKSBSRUZFUkVOQ0VTIGB1c2Vyc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QsDQorICBDT05TVFJBSU5UIGBGS2wwY2lwczFnYW55M2N1cHB5ZnM3bnRwYWlgIEZPUkVJR04gS0VZIChgZXhhbV9wbGFuX2lkYCkgUkVGRVJFTkNFUyBgZXhhbV9wbGFuc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDEgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiBleGFtcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBsb2dpbl9oaXN0b3J5DQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBsb2dpbl9oaXN0b3J5YDsNCitDUkVBVEUgVEFCTEUgYGxvZ2luX2hpc3RvcnlgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGB1c2VyX2lkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgdGltZWAgdGltZXN0YW1wIE5PVCBOVUxMLA0KKyAgYHR5cGVgIGVudW0oJ0FDQ09VTlQnLCdQQVNTS0VZJywnUEVSU09OQUxfQUNDRVNTVE9LRU4nLCdQUk9HUkFNX0lOVEVSTkFMJywnVFdPX1NURVBfVkVSSUZJQ0FUSU9OJykgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGlwX2FkZHJlc3NgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgdXNlcl9hZ2VudGAgdmFyY2hhcig1MTIpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBsb2NhdGlvbmAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBpZHhfbG9naW5fdGltZWAoYHRpbWVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgZmtfbG9naW5oaXN0b3J5X3VzZXJgKGB1c2VyX2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWDNsZnQ0NG1ha3J4b21teG02M2s3eGo3N2RgKGB0aW1lYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgZmtfbG9naW5oaXN0b3J5X3VzZXJgIEZPUkVJR04gS0VZIChgdXNlcl9pZGApIFJFRkVSRU5DRVMgYHVzZXJzYCAoYGlkYCkgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAzMyBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIGxvZ2luX2hpc3RvcnkNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMSwgMSwgJzIwMjUtMDYtMDMgMTI6MjU6MzMnLCAnQUNDT1VOVCcsICcwOjA6MDowOjA6MDowOjEnLCAnUG9zdG1hblJ1bnRpbWUvNy40My40JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyLCAxLCAnMjAyNS0wNi0wMyAxMjo1MTo0MicsICdBQ0NPVU5UJywgJzA6MDowOjA6MDowOjA6MScsICdQb3N0bWFuUnVudGltZS83LjQzLjQnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDMsIDEsICcyMDI1LTA2LTAzIDEyOjUyOjU1JywgJ0FDQ09VTlQnLCAnMDowOjA6MDowOjA6MDoxJywgJ1Bvc3RtYW5SdW50aW1lLzcuNDMuNCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoNCwgMSwgJzIwMjUtMDYtMDMgMTQ6MjA6NTUnLCAnQUNDT1VOVCcsICcwOjA6MDowOjA6MDowOjEnLCAnUG9zdG1hblJ1bnRpbWUvNy40My40JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICg1LCAxLCAnMjAyNS0wNi0wMyAxNDozMToxMycsICdBQ0NPVU5UJywgJzA6MDowOjA6MDowOjA6MScsICdQb3N0bWFuUnVudGltZS83LjQzLjQnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDYsIDEsICcyMDI1LTA2LTA0IDAzOjQwOjEwJywgJ0FDQ09VTlQnLCAnMDowOjA6MDowOjA6MDoxJywgJ1Bvc3RtYW5SdW50aW1lLzcuNDQuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoNywgMSwgJzIwMjUtMDYtMDQgMDM6NDM6MDknLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICg4LCAxLCAnMjAyNS0wNi0wNCAwMzo0NDoyNycsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAncUJpdHRvcnJlbnQvNS4xLjAnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDksIDEsICcyMDI1LTA2LTA0IDAzOjUxOjM1JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdxQml0dG9ycmVudC81LjEuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTAsIDEsICcyMDI1LTA2LTA0IDAzOjUyOjIyJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDExLCAxLCAnMjAyNS0wNi0wNCAwMzo1Mjo1MycsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxMiwgMSwgJzIwMjUtMDYtMDQgMDM6NTM6MTInLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTMsIDEsICcyMDI1LTA2LTA0IDAzOjU0OjQ2JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdxQml0dG9ycmVudC81LjEuMCcsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTQsIDEsICcyMDI1LTA2LTA0IDAzOjU4OjE0JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE1LCAxLCAnMjAyNS0wNi0wNCAwNDoyMjozMCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxNiwgMSwgJzIwMjUtMDYtMDQgMDQ6NDM6MjknLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMTcsIDEsICcyMDI1LTA2LTA0IDA0OjU0OjA5JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDE4LCAxLCAnMjAyNS0wNi0wNCAwNDo1OToxMycsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgxOSwgMSwgJzIwMjUtMDYtMDQgMDU6MTc6MDcnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyMCwgMSwgJzIwMjUtMDYtMDQgMDU6MTg6MjgnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyMSwgMSwgJzIwMjUtMDYtMDQgMDU6MjE6MjUnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyMiwgMSwgJzIwMjUtMDYtMDQgMDU6MjE6NTgnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyMywgMSwgJzIwMjUtMDYtMDQgMDU6MjI6MjQnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjQsIDEsICcyMDI1LTA2LTA0IDA1OjIyOjMwJywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI1LCAxLCAnMjAyNS0wNi0wNCAwNToyNzo0NCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyNiwgMSwgJzIwMjUtMDYtMDQgMDU6Mjc6NTAnLCAnUEFTU0tFWScsICcxOTIuMTY4LjEwLjEwJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMjcsIDEsICcyMDI1LTA2LTA0IDA1OjMxOjQ1JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4xMC4xMCcsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDI4LCAxLCAnMjAyNS0wNi0wNCAwNTozMzowMCcsICdQQVNTS0VZJywgJzE5Mi4xNjguMTAuMTAnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgyOSwgMSwgJzIwMjUtMDYtMDQgMDY6MTE6MzEnLCAnUEFTU0tFWScsICcxOTIuMTY4LjI1NC4xJywgJ3FCaXR0b3JyZW50LzUuMS4wJywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCitJTlNFUlQgSU5UTyBgbG9naW5faGlzdG9yeWAgVkFMVUVTICgzMCwgMSwgJzIwMjUtMDYtMDQgMDY6MTI6MTMnLCAnUEFTU0tFWScsICcxOTIuMTY4LjI1NC4xJywgJ1RyYW5zbWlzc2lvbi80LjAuNicsICdVbmtub3duIC0gR2VvSVAgbm90IGluaXRpYWxpemVkJyk7DQorSU5TRVJUIElOVE8gYGxvZ2luX2hpc3RvcnlgIFZBTFVFUyAoMzEsIDEsICcyMDI1LTA2LTA0IDA2OjEyOjI3JywgJ1BBU1NLRVknLCAnMTkyLjE2OC4yNTQuMScsICdUcmFuc21pc3Npb24vNC4wLjYnLCAnVW5rbm93biAtIEdlb0lQIG5vdCBpbml0aWFsaXplZCcpOw0KK0lOU0VSVCBJTlRPIGBsb2dpbl9oaXN0b3J5YCBWQUxVRVMgKDMyLCAxLCAnMjAyNS0wNi0wNCAwNjoxMzoyMScsICdQQVNTS0VZJywgJzE5Mi4xNjguMjU0LjEnLCAnVHJhbnNtaXNzaW9uLzQuMC42JywgJ1Vua25vd24gLSBHZW9JUCBub3QgaW5pdGlhbGl6ZWQnKTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBwZWVycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgcGVlcnNgOw0KK0NSRUFURSBUQUJMRSBgcGVlcnNgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGBpcGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBwb3J0YCBpbnQgTk9UIE5VTEwsDQorICBgaW5mb19oYXNoYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHBlZXJfaWRgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgdXNlcl9hZ2VudGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGB1cGxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYGRvd25sb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGB0b19nb2AgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHNlZWRlcmAgdGlueWludCgxKSBOT1QgTlVMTCwNCisgIGBwYXJ0aWFsX3NlZWRlcmAgdGlueWludCgxKSBOT1QgTlVMTCwNCisgIGBwYXNza2V5YCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHVwZGF0ZV9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLA0KKyAgYHNlZWRpbmdfdGltZWAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHVwbG9hZF9zcGVlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYGRvd25sb2FkX3NwZWVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgdXNlcl9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGB1a19wZWVyc19pcF9wb3J0X2luZm9oYXNoYChgaXBgIEFTQywgYHBvcnRgIEFTQywgYGluZm9faGFzaGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUtvYThsM3hxZHZ4cjg5OG1vc2tzM2hxM2NiYChgaXBgIEFTQywgYHBvcnRgIEFTQywgYGluZm9faGFzaGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBpZHhfcGVlcnNfdXBkYXRlX2F0YChgdXBkYXRlX2F0YCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYGZrX3BlZXJzX3VzZXJgKGB1c2VyX2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWG1tdmszM2xpeTdqNXU5ZTRxaHh3MmQ3aDVgKGB1cGRhdGVfYXRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBma19wZWVyc191c2VyYCBGT1JFSUdOIEtFWSAoYHVzZXJfaWRgKSBSRUZFUkVOQ0VTIGB1c2Vyc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDcgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBwZXJtaXNzaW9ucw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgcGVybWlzc2lvbnNgOw0KK0NSRUFURSBUQUJMRSBgcGVybWlzc2lvbnNgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGBzbHVnYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGRlZmAgdGlueWludCgxKSBOT1QgTlVMTCwNCisgIGB1c2VyX2dyb3VwX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3Blcm1pc3Npb25zX3NsdWdgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS2R2Nm13aWtwdHN1NzBoY3JqcTA3c3FzZnlgKGBzbHVnYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYGZrX3Blcm1pc3Npb25zX3VzZXJfZ3JvdXBgKGB1c2VyX2dyb3VwX2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgZmtfcGVybWlzc2lvbnNfdXNlcl9ncm91cGAgRk9SRUlHTiBLRVkgKGB1c2VyX2dyb3VwX2lkYCkgUkVGRVJFTkNFUyBgdXNlcl9ncm91cHNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxNCBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHBlcm1pc3Npb25zDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICgxLCAndG9ycmVudDp1cGxvYWQnLCAxLCAxKTsNCitJTlNFUlQgSU5UTyBgcGVybWlzc2lvbnNgIFZBTFVFUyAoMiwgJ3RvcnJlbnQ6ZG93bmxvYWQnLCAxLCAxKTsNCitJTlNFUlQgSU5UTyBgcGVybWlzc2lvbnNgIFZBTFVFUyAoMywgJ3RvcnJlbnQ6dmlldycsIDEsIDEpOw0KK0lOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg0LCAndG9ycmVudDpzZWFyY2gnLCAxLCAxKTsNCitJTlNFUlQgSU5UTyBgcGVybWlzc2lvbnNgIFZBTFVFUyAoNSwgJ2NvbW1lbnQ6Y3JlYXRlJywgMSwgMSk7DQorSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDYsICd1c2VyOm1hbmFnZScsIDEsIDEpOw0KK0lOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg3LCAndG9ycmVudDphcHByb3ZlJywgMSwgMSk7DQorSU5TRVJUIElOVE8gYHBlcm1pc3Npb25zYCBWQUxVRVMgKDgsICd0b3JyZW50OnRoYW5rcycsIDEsIDEpOw0KK0lOU0VSVCBJTlRPIGBwZXJtaXNzaW9uc2AgVkFMVUVTICg5LCAncHJvbW90aW9uOmxpc3QnLCAxLCAxKTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBwcm9tb3Rpb25fcG9saWNpZXMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHByb21vdGlvbl9wb2xpY2llc2A7DQorQ1JFQVRFIFRBQkxFIGBwcm9tb3Rpb25fcG9saWNpZXNgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGBzbHVnYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGRpc3BsYXlfbmFtZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGB1cGxvYWRfcmF0aW9gIGRvdWJsZSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBkb3dubG9hZF9yYXRpb2AgZG91YmxlIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGB1a19wcm9tb3Rpb25fcG9saWNpZXNfc2x1Z2AoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLY2pxcGUxZzE1b3V0ZmMwdTZhanZwd3hvZWAoYHNsdWdgIEFTQykgVVNJTkcgQlRSRUUNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDMgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiBwcm9tb3Rpb25fcG9saWNpZXMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHByb21vdGlvbl9wb2xpY2llc2AgVkFMVUVTICgxLCAnZGVmYXVsdCcsICfpu5jorqTnrZbnlaUnLCAxLCAxKTsNCitJTlNFUlQgSU5UTyBgcHJvbW90aW9uX3BvbGljaWVzYCBWQUxVRVMgKDIsICd2aXAnLCAn5rS76LeD55So5oi3562W55WlJywgMSwgMS41KTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X2Jsb2JfdHJpZ2dlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfYmxvYl90cmlnZ2Vyc2A7DQorQ1JFQVRFIFRBQkxFIGBxcnR6X2Jsb2JfdHJpZ2dlcnNgICAoDQorICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUUklHR0VSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBCTE9CX0RBVEFgIGJsb2IgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYFNDSEVEX05BTUVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX05BTUVgIEFTQywgYFRSSUdHRVJfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBxcnR6X2Jsb2JfdHJpZ2dlcnNfaWJma18xYCBGT1JFSUdOIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBSRUZFUkVOQ0VTIGBxcnR6X3RyaWdnZXJzYCAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiBxcnR6X2Jsb2JfdHJpZ2dlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9jYWxlbmRhcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfY2FsZW5kYXJzYDsNCitDUkVBVEUgVEFCTEUgYHFydHpfY2FsZW5kYXJzYCAgKA0KKyAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgQ0FMRU5EQVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBDQUxFTkRBUmAgYmxvYiBOT1QgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBDQUxFTkRBUl9OQU1FYCkgVVNJTkcgQlRSRUUNCispIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHFydHpfY2FsZW5kYXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfY3Jvbl90cmlnZ2Vycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9jcm9uX3RyaWdnZXJzYDsNCitDUkVBVEUgVEFCTEUgYHFydHpfY3Jvbl90cmlnZ2Vyc2AgICgNCisgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYENST05fRVhQUkVTU0lPTmAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUSU1FX1pPTkVfSURgIHZhcmNoYXIoODApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgcXJ0el9jcm9uX3RyaWdnZXJzX2liZmtfMWAgRk9SRUlHTiBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgUkVGRVJFTkNFUyBgcXJ0el90cmlnZ2Vyc2AgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el9jcm9uX3RyaWdnZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfZmlyZWRfdHJpZ2dlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHFydHpfZmlyZWRfdHJpZ2dlcnNgOw0KK0NSRUFURSBUQUJMRSBgcXJ0el9maXJlZF90cmlnZ2Vyc2AgICgNCisgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYEVOVFJZX0lEYCB2YXJjaGFyKDk1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgVFJJR0dFUl9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgSU5TVEFOQ0VfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBGSVJFRF9USU1FYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgU0NIRURfVElNRWAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYFBSSU9SSVRZYCBpbnQgTk9UIE5VTEwsDQorICBgU1RBVEVgIHZhcmNoYXIoMTYpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBKT0JfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBKT0JfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgSVNfTk9OQ09OQ1VSUkVOVGAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgUkVRVUVTVFNfUkVDT1ZFUllgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYEVOVFJZX0lEYCkgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfRlRfVFJJR19JTlNUX05BTUVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBJTlNUQU5DRV9OQU1FYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX0ZUX0lOU1RfSk9CX1JFUV9SQ1ZSWWAoYFNDSEVEX05BTUVgIEFTQywgYElOU1RBTkNFX05BTUVgIEFTQywgYFJFUVVFU1RTX1JFQ09WRVJZYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX0ZUX0pfR2AoYFNDSEVEX05BTUVgIEFTQywgYEpPQl9OQU1FYCBBU0MsIGBKT0JfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfRlRfSkdgKGBTQ0hFRF9OQU1FYCBBU0MsIGBKT0JfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfRlRfVF9HYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9OQU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX0ZUX1RHYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRQ0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el9maXJlZF90cmlnZ2Vycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X2pvYl9kZXRhaWxzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X2pvYl9kZXRhaWxzYDsNCitDUkVBVEUgVEFCTEUgYHFydHpfam9iX2RldGFpbHNgICAoDQorICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBKT0JfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBKT0JfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgREVTQ1JJUFRJT05gIHZhcmNoYXIoMjUwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgSk9CX0NMQVNTX05BTUVgIHZhcmNoYXIoMjUwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgSVNfRFVSQUJMRWAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgSVNfTk9OQ09OQ1VSUkVOVGAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgSVNfVVBEQVRFX0RBVEFgIHZhcmNoYXIoMSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFJFUVVFU1RTX1JFQ09WRVJZYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBKT0JfREFUQWAgYmxvYiBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYEpPQl9OQU1FYCwgYEpPQl9HUk9VUGApIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX0pfUkVRX1JFQ09WRVJZYChgU0NIRURfTkFNRWAgQVNDLCBgUkVRVUVTVFNfUkVDT1ZFUllgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfSl9HUlBgKGBTQ0hFRF9OQU1FYCBBU0MsIGBKT0JfR1JPVVBgIEFTQykgVVNJTkcgQlRSRUUNCispIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHFydHpfam9iX2RldGFpbHMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHFydHpfam9iX2RldGFpbHNgIFZBTFVFUyAoJ3NhcGxpbmdfc2NoZWR1bGVyJywgJ3BlZXJzX2NsZWFudXAnLCAnREVGQVVMVCcsICdQZWVycyBDbGVhbnVwJywgJ2NvbS5naXRodWIuZXhhbXBsZS5wdC5jcm9udGFzay5QZWVyc0NsZWFudXAnLCAnMScsICcwJywgJzAnLCAnMCcsIDB4QUNFRDAwMDU3MzcyMDAxNTZGNzI2NzJFNzE3NTYxNzI3NDdBMkU0QTZGNjI0NDYxNzQ2MTRENjE3MDlGQjA4M0U4QkZBOUIwQ0IwMjAwMDA3ODcyMDAyNjZGNzI2NzJFNzE3NTYxNzI3NDdBMkU3NTc0Njk2QzczMkU1Mzc0NzI2OTZFNjc0QjY1Nzk0NDY5NzI3NDc5NDY2QzYxNjc0RDYxNzA4MjA4RThDM0ZCQzU1RDI4MDIwMDAxNUEwMDEzNjE2QzZDNkY3NzczNTQ3MjYxNkU3MzY5NjU2RTc0NDQ2MTc0NjE3ODcyMDAxRDZGNzI2NzJFNzE3NTYxNzI3NDdBMkU3NTc0Njk2QzczMkU0NDY5NzI3NDc5NDY2QzYxNjc0RDYxNzAxM0U2MkVBRDI4NzYwQUNFMDIwMDAyNUEwMDA1NjQ2OTcyNzQ3OTRDMDAwMzZENjE3MDc0MDAwRjRDNkE2MTc2NjEyRjc1NzQ2OTZDMkY0RDYxNzAzQjc4NzAwMDczNzIwMDExNkE2MTc2NjEyRTc1NzQ2OTZDMkU0ODYxNzM2ODRENjE3MDA1MDdEQUMxQzMxNjYwRDEwMzAwMDI0NjAwMEE2QzZGNjE2NDQ2NjE2Mzc0NkY3MjQ5MDAwOTc0Njg3MjY1NzM2ODZGNkM2NDc4NzAzRjQwMDAwMDAwMDAwMDEwNzcwODAwMDAwMDEwMDAwMDAwMDA3ODAwKTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X2xvY2tzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X2xvY2tzYDsNCitDUkVBVEUgVEFCTEUgYHFydHpfbG9ja3NgICAoDQorICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBMT0NLX05BTUVgIHZhcmNoYXIoNDApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBMT0NLX05BTUVgKSBVU0lORyBCVFJFRQ0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el9sb2Nrcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgcXJ0el9sb2Nrc2AgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAnU1RBVEVfQUNDRVNTJyk7DQorSU5TRVJUIElOVE8gYHFydHpfbG9ja3NgIFZBTFVFUyAoJ3NhcGxpbmdfc2NoZWR1bGVyJywgJ1RSSUdHRVJfQUNDRVNTJyk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgcXJ0el9wYXVzZWRfdHJpZ2dlcl9ncnBzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X3BhdXNlZF90cmlnZ2VyX2dycHNgOw0KK0NSRUFURSBUQUJMRSBgcXJ0el9wYXVzZWRfdHJpZ2dlcl9ncnBzYCAgKA0KKyAgYFNDSEVEX05BTUVgIHZhcmNoYXIoMTIwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgVVNJTkcgQlRSRUUNCispIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHFydHpfcGF1c2VkX3RyaWdnZXJfZ3Jwcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X3NjaGVkdWxlcl9zdGF0ZQ0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9zY2hlZHVsZXJfc3RhdGVgOw0KK0NSRUFURSBUQUJMRSBgcXJ0el9zY2hlZHVsZXJfc3RhdGVgICAoDQorICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBJTlNUQU5DRV9OQU1FYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYExBU1RfQ0hFQ0tJTl9USU1FYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgQ0hFQ0tJTl9JTlRFUlZBTGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYElOU1RBTkNFX05BTUVgKSBVU0lORyBCVFJFRQ0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgcXJ0el9zY2hlZHVsZXJfc3RhdGUNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHFydHpfc2NoZWR1bGVyX3N0YXRlYCBWQUxVRVMgKCdzYXBsaW5nX3NjaGVkdWxlcicsICdMQVBUT1AtVjI0SzVBNTUxNzQ5MDE4NDg5NTg4JywgMTc0OTAxODUxMDE4MiwgMTAwMDApOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfc2ltcGxlX3RyaWdnZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X3NpbXBsZV90cmlnZ2Vyc2A7DQorQ1JFQVRFIFRBQkxFIGBxcnR6X3NpbXBsZV90cmlnZ2Vyc2AgICgNCisgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFJFUEVBVF9DT1VOVGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYFJFUEVBVF9JTlRFUlZBTGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYFRJTUVTX1RSSUdHRVJFRGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBxcnR6X3NpbXBsZV90cmlnZ2Vyc19pYmZrXzFgIEZPUkVJR04gS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFJFRkVSRU5DRVMgYHFydHpfdHJpZ2dlcnNgIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHFydHpfc2ltcGxlX3RyaWdnZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGBxcnR6X3NpbXBsZV90cmlnZ2Vyc2AgVkFMVUVTICgnc2FwbGluZ19zY2hlZHVsZXInLCAnNmRhNjRiNWJkMmVlLTM3ZmZhODJhLWE1OTgtNDg1Yy05NzE4LTQwZWU5MGMyNmJjNCcsICdERUZBVUxUJywgLTEsIDE4MDAwMDAsIDEpOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHFydHpfc2ltcHJvcF90cmlnZ2Vycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgcXJ0el9zaW1wcm9wX3RyaWdnZXJzYDsNCitDUkVBVEUgVEFCTEUgYHFydHpfc2ltcHJvcF90cmlnZ2Vyc2AgICgNCisgIGBTQ0hFRF9OQU1FYCB2YXJjaGFyKDEyMCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUUklHR0VSX0dST1VQYCB2YXJjaGFyKDE5MCkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFNUUl9QUk9QXzFgIHZhcmNoYXIoNTEyKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgU1RSX1BST1BfMmAgdmFyY2hhcig1MTIpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBTVFJfUFJPUF8zYCB2YXJjaGFyKDUxMikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYElOVF9QUk9QXzFgIGludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBJTlRfUFJPUF8yYCBpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgTE9OR19QUk9QXzFgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBMT05HX1BST1BfMmAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYERFQ19QUk9QXzFgIGRlY2ltYWwoMTMsIDQpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYERFQ19QUk9QXzJgIGRlY2ltYWwoMTMsIDQpIE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYEJPT0xfUFJPUF8xYCB2YXJjaGFyKDEpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBCT09MX1BST1BfMmAgdmFyY2hhcigxKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYFNDSEVEX05BTUVgLCBgVFJJR0dFUl9OQU1FYCwgYFRSSUdHRVJfR1JPVVBgKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYHFydHpfc2ltcHJvcF90cmlnZ2Vyc19pYmZrXzFgIEZPUkVJR04gS0VZIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIFJFRkVSRU5DRVMgYHFydHpfdHJpZ2dlcnNgIChgU0NIRURfTkFNRWAsIGBUUklHR0VSX05BTUVgLCBgVFJJR0dFUl9HUk9VUGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHFydHpfc2ltcHJvcF90cmlnZ2Vycw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciBxcnR6X3RyaWdnZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBxcnR6X3RyaWdnZXJzYDsNCitDUkVBVEUgVEFCTEUgYHFydHpfdHJpZ2dlcnNgICAoDQorICBgU0NIRURfTkFNRWAgdmFyY2hhcigxMjApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBUUklHR0VSX05BTUVgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgVFJJR0dFUl9HUk9VUGAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBKT0JfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBKT0JfR1JPVVBgIHZhcmNoYXIoMTkwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgREVTQ1JJUFRJT05gIHZhcmNoYXIoMjUwKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgTkVYVF9GSVJFX1RJTUVgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBQUkVWX0ZJUkVfVElNRWAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYFBSSU9SSVRZYCBpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgVFJJR0dFUl9TVEFURWAgdmFyY2hhcigxNikgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYFRSSUdHRVJfVFlQRWAgdmFyY2hhcig4KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgU1RBUlRfVElNRWAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYEVORF9USU1FYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgQ0FMRU5EQVJfTkFNRWAgdmFyY2hhcigxOTApIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBNSVNGSVJFX0lOU1RSYCBzbWFsbGludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIGBKT0JfREFUQWAgYmxvYiBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBTQ0hFRF9OQU1FYCwgYFRSSUdHRVJfTkFNRWAsIGBUUklHR0VSX0dST1VQYCkgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfVF9KYChgU0NIRURfTkFNRWAgQVNDLCBgSk9CX05BTUVgIEFTQywgYEpPQl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9UX0pHYChgU0NIRURfTkFNRWAgQVNDLCBgSk9CX0dST1VQYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX1RfQ2AoYFNDSEVEX05BTUVgIEFTQywgYENBTEVOREFSX05BTUVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfVF9HYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9HUk9VUGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9UX1NUQVRFYChgU0NIRURfTkFNRWAgQVNDLCBgVFJJR0dFUl9TVEFURWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9UX05fU1RBVEVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX05BTUVgIEFTQywgYFRSSUdHRVJfR1JPVVBgIEFTQywgYFRSSUdHRVJfU1RBVEVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfVF9OX0dfU1RBVEVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBUUklHR0VSX0dST1VQYCBBU0MsIGBUUklHR0VSX1NUQVRFYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX1RfTkVYVF9GSVJFX1RJTUVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBORVhUX0ZJUkVfVElNRWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9UX05GVF9TVGAoYFNDSEVEX05BTUVgIEFTQywgYFRSSUdHRVJfU1RBVEVgIEFTQywgYE5FWFRfRklSRV9USU1FYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYElEWF9RUlRaX1RfTkZUX01JU0ZJUkVgKGBTQ0hFRF9OQU1FYCBBU0MsIGBNSVNGSVJFX0lOU1RSYCBBU0MsIGBORVhUX0ZJUkVfVElNRWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhfUVJUWl9UX05GVF9TVF9NSVNGSVJFYChgU0NIRURfTkFNRWAgQVNDLCBgTUlTRklSRV9JTlNUUmAgQVNDLCBgTkVYVF9GSVJFX1RJTUVgIEFTQywgYFRSSUdHRVJfU1RBVEVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYX1FSVFpfVF9ORlRfU1RfTUlTRklSRV9HUlBgKGBTQ0hFRF9OQU1FYCBBU0MsIGBNSVNGSVJFX0lOU1RSYCBBU0MsIGBORVhUX0ZJUkVfVElNRWAgQVNDLCBgVFJJR0dFUl9HUk9VUGAgQVNDLCBgVFJJR0dFUl9TVEFURWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYHFydHpfdHJpZ2dlcnNfaWJma18xYCBGT1JFSUdOIEtFWSAoYFNDSEVEX05BTUVgLCBgSk9CX05BTUVgLCBgSk9CX0dST1VQYCkgUkVGRVJFTkNFUyBgcXJ0el9qb2JfZGV0YWlsc2AgKGBTQ0hFRF9OQU1FYCwgYEpPQl9OQU1FYCwgYEpPQl9HUk9VUGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHFydHpfdHJpZ2dlcnMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorSU5TRVJUIElOVE8gYHFydHpfdHJpZ2dlcnNgIFZBTFVFUyAoJ3NhcGxpbmdfc2NoZWR1bGVyJywgJzZkYTY0YjViZDJlZS0zN2ZmYTgyYS1hNTk4LTQ4NWMtOTcxOC00MGVlOTBjMjZiYzQnLCAnREVGQVVMVCcsICdwZWVyc19jbGVhbnVwJywgJ0RFRkFVTFQnLCBOVUxMLCAxNzQ5MDIwMjg4NTA1LCAxNzQ5MDE4NDg4NTA1LCA1LCAnV0FJVElORycsICdTSU1QTEUnLCAxNzQ5MDE4NDg4NTA1LCAwLCBOVUxMLCAwLCAnJyk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3Igc2VlZGJveA0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgc2VlZGJveGA7DQorQ1JFQVRFIFRBQkxFIGBzZWVkYm94YCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgYWRkcmVzc2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBkb3dubG9hZF9tdWx0aXBsaWVyX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgdXBsb2FkX211bHRpcGxpZXJfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUtlY2JlaGp0ZzNiZnI0cm15aXh0MWdjdmZxYChgYWRkcmVzc2AgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBGS3E2M3RxaHlrZ2w5Nmw0cmt3eTl3aWR5NWJgKGBkb3dubG9hZF9tdWx0aXBsaWVyX2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYEZLOXhsNTFuYTNkbjhrN291OGN5djdzMXdyZmAoYHVwbG9hZF9tdWx0aXBsaWVyX2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgRks5eGw1MW5hM2RuOGs3b3U4Y3l2N3Mxd3JmYCBGT1JFSUdOIEtFWSAoYHVwbG9hZF9tdWx0aXBsaWVyX2lkYCkgUkVGRVJFTkNFUyBgcHJvbW90aW9uX3BvbGljaWVzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVCwNCisgIENPTlNUUkFJTlQgYEZLcTYzdHFoeWtnbDk2bDRya3d5OXdpZHk1YmAgRk9SRUlHTiBLRVkgKGBkb3dubG9hZF9tdWx0aXBsaWVyX2lkYCkgUkVGRVJFTkNFUyBgcHJvbW90aW9uX3BvbGljaWVzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHNlZWRib3gNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3Igc2V0dGluZ3MNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHNldHRpbmdzYDsNCitDUkVBVEUgVEFCTEUgYHNldHRpbmdzYCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgc2V0dGluZ19rZXlgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgc2V0dGluZ192YWx1ZWAgbWVkaXVtdGV4dCBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3NldHRpbmdzX3NldHRpbmdfa2V5YChgc2V0dGluZ19rZXlgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLc3dkMDVkdmo0dWt2dzVxMTM1YnBiYmZhZWAoYHNldHRpbmdfa2V5YCBBU0MpIFVTSU5HIEJUUkVFDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHRhZ3MNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHRhZ3NgOw0KK0NSRUFURSBUQUJMRSBgdGFnc2AgICgNCisgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULA0KKyAgYG5hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYGlkYCkgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYHVrX3RhZ3NfbmFtZWAoYG5hbWVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLdDQ4eGRxNTYwZ3MzZ2FwOWc3amczNmtnY2AoYG5hbWVgIEFTQykgVVNJTkcgQlRSRUUNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDEwIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgdGFncw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgdGFnc2AgVkFMVUVTICg5LCAnW1wibGludXhcIl0nKTsNCitJTlNFUlQgSU5UTyBgdGFnc2AgVkFMVUVTICgzLCAnZGViaWFuJyk7DQorSU5TRVJUIElOVE8gYHRhZ3NgIFZBTFVFUyAoMSwgJ2xpbnV4Jyk7DQorSU5TRVJUIElOVE8gYHRhZ3NgIFZBTFVFUyAoNSwgJ21hY29zJyk7DQorSU5TRVJUIElOVE8gYHRhZ3NgIFZBTFVFUyAoMiwgJ3VidW50dScpOw0KK0lOU0VSVCBJTlRPIGB0YWdzYCBWQUxVRVMgKDQsICd3aW5kb3dzJyk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdGhhbmtzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGB0aGFua3NgOw0KK0NSRUFURSBUQUJMRSBgdGhhbmtzYCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgdG9ycmVudF9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYHVzZXJfaWRgIGJpZ2ludCBOVUxMIERFRkFVTFQgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUtydDlsZzBoNTNicmdwZjlpYXQ1aGNtZjZnYChgdXNlcl9pZGAgQVNDLCBgdG9ycmVudF9pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBGS3Aza2doMjV0a280OHZxN3g2dTJ3M2R2cHBgKGB0b3JyZW50X2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgRksydDkwaDIxczVoeXg2aHluZXdzZGxrNDZqYCBGT1JFSUdOIEtFWSAoYHVzZXJfaWRgKSBSRUZFUkVOQ0VTIGB1c2Vyc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QsDQorICBDT05TVFJBSU5UIGBGS3Aza2doMjV0a280OHZxN3g2dTJ3M2R2cHBgIEZPUkVJR04gS0VZIChgdG9ycmVudF9pZGApIFJFRkVSRU5DRVMgYHRvcnJlbnRzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHRoYW5rcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gVGFibGUgc3RydWN0dXJlIGZvciB0b3JyZW50cw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgdG9ycmVudHNgOw0KK0NSRUFURSBUQUJMRSBgdG9ycmVudHNgICAoDQorICBgaWRgIGJpZ2ludCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwNCisgIGBpbmZvX2hhc2hgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgdXNlcl9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYHRpdGxlYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHN1Yl90aXRsZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBzaXplYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgY3JlYXRlZF9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLA0KKyAgYHVwZGF0ZWRfYXRgIHRpbWVzdGFtcCBOT1QgTlVMTCwNCisgIGB1bmRlcl9yZXZpZXdgIHRpbnlpbnQoMSkgTk9UIE5VTEwsDQorICBgYW5vbnltb3VzYCB0aW55aW50KDEpIE5PVCBOVUxMLA0KKyAgYGNhdGVnb3J5X2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgcHJvbW90aW9uX3BvbGljeV9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgYGRlc2NyaXB0aW9uYCBtZWRpdW10ZXh0IENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIFBSSU1BUlkgS0VZIChgaWRgKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgdWtfdG9ycmVudHNfaW5mb19oYXNoYChgaW5mb19oYXNoYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS2hhZzJlajF2bzhzbnZpcmIxbHY0YjhyNHhgKGBpbmZvX2hhc2hgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgaWR4X3RvcnJlbnRzX3RpdGxlYChgdGl0bGVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgaWR4X3RvcnJlbnRzX3N1Yl90aXRsZWAoYHN1Yl90aXRsZWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBpZHhfdG9ycmVudHNfcHJvbW90aW9uX3BvbGljeV9pZGAoYHByb21vdGlvbl9wb2xpY3lfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgZmtfdG9ycmVudHNfdXNlcmAoYHVzZXJfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgZmtfdG9ycmVudHNfY2F0ZWdvcnlgKGBjYXRlZ29yeV9pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhkcGxrYWFwcXNsZWxuc2N1dW5mcG05ZWI2YChgdGl0bGVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgSURYNnI1a2g2aTRhd3BkbHl0am1tMDZwazIya2AoYHN1Yl90aXRsZWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBJRFhkMmozaDh0ZDc2ODJjY3RrdjVvNzdiMzN5YChgcHJvbW90aW9uX3BvbGljeV9pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYGZrX3RvcnJlbnRzX2NhdGVnb3J5YCBGT1JFSUdOIEtFWSAoYGNhdGVnb3J5X2lkYCkgUkVGRVJFTkNFUyBgY2F0ZWdvcmllc2AgKGBpZGApIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgUkVTVFJJQ1QsDQorICBDT05TVFJBSU5UIGBma190b3JyZW50c19wcm9tb3Rpb25fcG9saWN5YCBGT1JFSUdOIEtFWSAoYHByb21vdGlvbl9wb2xpY3lfaWRgKSBSRUZFUkVOQ0VTIGBwcm9tb3Rpb25fcG9saWNpZXNgIChgaWRgKSBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFJFU1RSSUNULA0KKyAgQ09OU1RSQUlOVCBgZmtfdG9ycmVudHNfdXNlcmAgRk9SRUlHTiBLRVkgKGB1c2VyX2lkYCkgUkVGRVJFTkNFUyBgdXNlcnNgIChgaWRgKSBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAxMSBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHRvcnJlbnRzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGB0b3JyZW50c2AgVkFMVUVTICg3LCAnNDk5ZTljNjllOTBiOTc2YzVjODQ1NDJjZjliODhmYWQxZTEyZWYxYycsIDEsICdleGFtcGxlIHRvcnJlbnQgdGl0bGUnLCAnc3VidGl0bGUgaGVyZScsIDY2MTk0LCAnMjAyNS0wNi0wNCAwMzo0MToyNycsICcyMDI1LTA2LTA0IDAzOjQxOjI3JywgMCwgMCwgMSwgMSwgJ+a8lOekuuenjeWtkCcpOw0KK0lOU0VSVCBJTlRPIGB0b3JyZW50c2AgVkFMVUVTICg4LCAnZjQ1Nzc1NTY0Yzg4YjVhMjc4MmEzMDFkMTYyZTFkNDgxMWIwYjZkNScsIDEsICdleGFtcGxlIHRvcnJlbnQgdGl0bGUnLCAnc3VidGl0bGUgaGVyZScsIDIzMTEwNSwgJzIwMjUtMDYtMDQgMDU6MjA6MzcnLCAnMjAyNS0wNi0wNCAwNToyMDozNycsIDAsIDAsIDEsIDEsICfmvJTnpLrnp43lrZAnKTsNCitJTlNFUlQgSU5UTyBgdG9ycmVudHNgIFZBTFVFUyAoOSwgJzhlMTBjOWRhYTFiNWZiMThkYzViMGU3Mzk4ODgwOGJhOTU4MzkxZmEnLCAxLCAnZXhhbXBsZSB0b3JyZW50IHRpdGxlJywgJ3N1YnRpdGxlIGhlcmUnLCA0MjYxNTUsICcyMDI1LTA2LTA0IDA2OjAzOjQ5JywgJzIwMjUtMDYtMDQgMDY6MDM6NDknLCAwLCAwLCAxLCAxLCAn5ryU56S656eN5a2QJyk7DQorSU5TRVJUIElOVE8gYHRvcnJlbnRzYCBWQUxVRVMgKDEwLCAnMWUzMjc1ZjU0ZWMwNzRhZjJkOTk4MjgzMTFkNGE4NDg4ZWI3YTQ4NycsIDEsICdleGFtcGxlIHRvcnJlbnQgdGl0bGUnLCAnc3VidGl0bGUgaGVyZScsIDEzODYxNjk0LCAnMjAyNS0wNi0wNCAwNjoxMDoyMycsICcyMDI1LTA2LTA0IDA2OjEwOjIzJywgMCwgMCwgMSwgMSwgJ+a8lOekuuenjeWtkCcpOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHRvcnJlbnRzX3RhZw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgdG9ycmVudHNfdGFnYDsNCitDUkVBVEUgVEFCTEUgYHRvcnJlbnRzX3RhZ2AgICgNCisgIGB0b3JyZW50X2lkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgdGFnX2lkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYHRvcnJlbnRfaWRgLCBgdGFnX2lkYCkgVVNJTkcgQlRSRUUsDQorICBJTkRFWCBgZmtfdG9ycmVudHNfdGFnX3RhZ2AoYHRhZ19pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYGZrX3RvcnJlbnRzX3RhZ190YWdgIEZPUkVJR04gS0VZIChgdGFnX2lkYCkgUkVGRVJFTkNFUyBgdGFnc2AgKGBpZGApIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBSRVNUUklDVCwNCisgIENPTlNUUkFJTlQgYGZrX3RvcnJlbnRzX3RhZ190b3JyZW50YCBGT1JFSUdOIEtFWSAoYHRvcnJlbnRfaWRgKSBSRUZFUkVOQ0VTIGB0b3JyZW50c2AgKGBpZGApIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgdG9ycmVudHNfdGFnDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGB0b3JyZW50c190YWdgIFZBTFVFUyAoNywgOSk7DQorSU5TRVJUIElOVE8gYHRvcnJlbnRzX3RhZ2AgVkFMVUVTICg4LCA5KTsNCitJTlNFUlQgSU5UTyBgdG9ycmVudHNfdGFnYCBWQUxVRVMgKDksIDkpOw0KK0lOU0VSVCBJTlRPIGB0b3JyZW50c190YWdgIFZBTFVFUyAoMTAsIDkpOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHRyYW5zZmVyX2hpc3RvcnkNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHRyYW5zZmVyX2hpc3RvcnlgOw0KK0NSRUFURSBUQUJMRSBgdHJhbnNmZXJfaGlzdG9yeWAgICgNCisgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULA0KKyAgYHVzZXJfaWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGB0b3JyZW50X2lkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgdG9fZ29gIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBzdGFydGVkX2F0YCB0aW1lc3RhbXAgTk9UIE5VTEwsDQorICBgdXBkYXRlZF9hdGAgdGltZXN0YW1wIE5PVCBOVUxMLA0KKyAgYHVwbG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgZG93bmxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYGFjdHVhbF91cGxvYWRlZGAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYGFjdHVhbF9kb3dubG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgdXBsb2FkX3NwZWVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgZG93bmxvYWRfc3BlZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBsYXN0X2V2ZW50YCBlbnVtKCdzdGFydGVkJywnY29tcGxldGVkJywnc3RvcHBlZCcsJ3BhdXNlZCcsJ3Vua25vd24nKSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgaGF2ZV9jb21wbGV0ZV9oaXN0b3J5YCB0aW55aW50KDEpIE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGB1a191c2VyX3RvcnJlbnRgKGB1c2VyX2lkYCBBU0MsIGB0b3JyZW50X2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS3JtNXA0eHYzcmIydm02cHNxbDVqZTk0amhgKGB1c2VyX2lkYCBBU0MsIGB0b3JyZW50X2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYGZrX3RyYW5zZmVyX3RvcnJlbnRgKGB0b3JyZW50X2lkYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgQ09OU1RSQUlOVCBgZmtfdHJhbnNmZXJfdG9ycmVudGAgRk9SRUlHTiBLRVkgKGB0b3JyZW50X2lkYCkgUkVGRVJFTkNFUyBgdG9ycmVudHNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNULA0KKyAgQ09OU1RSQUlOVCBgZmtfdHJhbnNmZXJfdXNlcmAgRk9SRUlHTiBLRVkgKGB1c2VyX2lkYCkgUkVGRVJFTkNFUyBgdXNlcnNgIChgaWRgKSBPTiBERUxFVEUgUkVTVFJJQ1QgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQVVUT19JTkNSRU1FTlQgPSAzIENIQVJBQ1RFUiBTRVQgPSB1dGY4bWI0IENPTExBVEUgPSB1dGY4bWI0XzA5MDBfYWlfY2kgUk9XX0ZPUk1BVCA9IER5bmFtaWM7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFJlY29yZHMgb2YgdHJhbnNmZXJfaGlzdG9yeQ0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgdHJhbnNmZXJfaGlzdG9yeWAgVkFMVUVTICgxLCAxLCA3LCA2NjE5NCwgJzIwMjUtMDYtMDQgMDQ6NDM6MzAnLCAnMjAyNS0wNi0wNCAwNToyMToyNScsIDAsIDAsIDAsIDAsIDAsIDAsICdjb21wbGV0ZWQnLCAxKTsNCitJTlNFUlQgSU5UTyBgdHJhbnNmZXJfaGlzdG9yeWAgVkFMVUVTICgyLCAxLCAxMCwgMCwgJzIwMjUtMDYtMDQgMDY6MTE6MzEnLCAnMjAyNS0wNi0wNCAwNjoxMzoyMScsIDI3NzIzMzg4LCAwLCAwLCAyNzcyMzM4OCwgMCwgNzc4NzQsICdzdGFydGVkJywgMSk7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdXNlcl9ncm91cHMNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorRFJPUCBUQUJMRSBJRiBFWElTVFMgYHVzZXJfZ3JvdXBzYDsNCitDUkVBVEUgVEFCTEUgYHVzZXJfZ3JvdXBzYCAgKA0KKyAgYGlkYCBiaWdpbnQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQorICBgc2x1Z2AgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBkaXNwbGF5X25hbWVgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgcHJvbW90aW9uX3BvbGljeV9pZGAgYmlnaW50IE5VTEwgREVGQVVMVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGB1a191c2VyX2dyb3Vwc19zbHVnYChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUtra2plMWpibXJrYW0xazdqYmQzOWhvbXcwYChgc2x1Z2AgQVNDKSBVU0lORyBCVFJFRSwNCisgIElOREVYIGBma191c2VyX2dyb3Vwc19wcm9tb3Rpb25fcG9saWN5YChgcHJvbW90aW9uX3BvbGljeV9pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYGZrX3VzZXJfZ3JvdXBzX3Byb21vdGlvbl9wb2xpY3lgIEZPUkVJR04gS0VZIChgcHJvbW90aW9uX3BvbGljeV9pZGApIFJFRkVSRU5DRVMgYHByb21vdGlvbl9wb2xpY2llc2AgKGBpZGApIE9OIERFTEVURSBSRVNUUklDVCBPTiBVUERBVEUgUkVTVFJJQ1QNCispIEVOR0lORSA9IElubm9EQiBBVVRPX0lOQ1JFTUVOVCA9IDMgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiB1c2VyX2dyb3Vwcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitJTlNFUlQgSU5UTyBgdXNlcl9ncm91cHNgIFZBTFVFUyAoMSwgJ2RlZmF1bHQnLCAn6buY6K6k55So5oi357uEJywgMSk7DQorSU5TRVJUIElOVE8gYHVzZXJfZ3JvdXBzYCBWQUxVRVMgKDIsICd2aXAnLCAn5rS76LeD55So5oi357uEJywgMik7DQorDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllcw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitEUk9QIFRBQkxFIElGIEVYSVNUUyBgdXNlcl9ncm91cHNfcGVybWlzc2lvbl9lbnRpdGllc2A7DQorQ1JFQVRFIFRBQkxFIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCAgKA0KKyAgYHVzZXJfZ3JvdXBfaWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGBwZXJtaXNzaW9uX2VudGl0aWVzX2lkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBQUklNQVJZIEtFWSAoYHVzZXJfZ3JvdXBfaWRgLCBgcGVybWlzc2lvbl9lbnRpdGllc19pZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVS185NWo5dWFxOTZidmQ5eWtuMHNuZ3l3a3M2YChgcGVybWlzc2lvbl9lbnRpdGllc19pZGAgQVNDKSBVU0lORyBCVFJFRSwNCisgIENPTlNUUkFJTlQgYGZrX3VncGVfcGVybWlzc2lvbmAgRk9SRUlHTiBLRVkgKGBwZXJtaXNzaW9uX2VudGl0aWVzX2lkYCkgUkVGRVJFTkNFUyBgcGVybWlzc2lvbnNgIChgaWRgKSBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgUkVTVFJJQ1QsDQorICBDT05TVFJBSU5UIGBma191Z3BlX3VzZXJfZ3JvdXBgIEZPUkVJR04gS0VZIChgdXNlcl9ncm91cF9pZGApIFJFRkVSRU5DRVMgYHVzZXJfZ3JvdXBzYCAoYGlkYCkgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIFJFU1RSSUNUDQorKSBFTkdJTkUgPSBJbm5vREIgQ0hBUkFDVEVSIFNFVCA9IHV0ZjhtYjQgQ09MTEFURSA9IHV0ZjhtYjRfMDkwMF9haV9jaSBST1dfRk9STUFUID0gRHluYW1pYzsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDEpOw0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDIpOw0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDMpOw0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDQpOw0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDUpOw0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDYpOw0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDcpOw0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDgpOw0KK0lOU0VSVCBJTlRPIGB1c2VyX2dyb3Vwc19wZXJtaXNzaW9uX2VudGl0aWVzYCBWQUxVRVMgKDEsIDkpOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBUYWJsZSBzdHJ1Y3R1cmUgZm9yIHVzZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGB1c2Vyc2A7DQorQ1JFQVRFIFRBQkxFIGB1c2Vyc2AgICgNCisgIGBpZGAgYmlnaW50IE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULA0KKyAgYGVtYWlsYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHBhc3N3b3JkYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHVzZXJuYW1lYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGdyb3VwX2lkYCBiaWdpbnQgTlVMTCBERUZBVUxUIE5VTEwsDQorICBgcGFzc2tleWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBjcmVhdGVfYXRgIHRpbWVzdGFtcCBOT1QgTlVMTCwNCisgIGBhdmF0YXJgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgY3VzdG9tX3RpdGxlYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYHNpZ25hdHVyZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBsYW5ndWFnZWAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBkb3dubG9hZF9iYW5kd2lkdGhgIHZhcmNoYXIoMjU1KSBDSEFSQUNURVIgU0VUIHV0ZjhtYjQgQ09MTEFURSB1dGY4bWI0XzA5MDBfYWlfY2kgTk9UIE5VTEwsDQorICBgdXBsb2FkX2JhbmR3aWR0aGAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBkb3dubG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgdXBsb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGByZWFsX2Rvd25sb2FkZWRgIGJpZ2ludCBOT1QgTlVMTCwNCisgIGByZWFsX3VwbG9hZGVkYCBiaWdpbnQgTk9UIE5VTEwsDQorICBgaXNwYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgYGthcm1hYCBkZWNpbWFsKDE5LCAyKSBOT1QgTlVMTCwNCisgIGBpbnZpdGVfc2xvdGAgaW50IE5PVCBOVUxMLA0KKyAgYHNlZWRpbmdfdGltZWAgYmlnaW50IE5PVCBOVUxMLA0KKyAgYHBlcnNvbmFsX2FjY2Vzc190b2tlbmAgdmFyY2hhcigyNTUpIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfMDkwMF9haV9jaSBOT1QgTlVMTCwNCisgIGBwcml2YWN5X2xldmVsYCB2YXJjaGFyKDI1NSkgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF8wOTAwX2FpX2NpIE5PVCBOVUxMLA0KKyAgUFJJTUFSWSBLRVkgKGBpZGApIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGB1a191c2Vyc191c2VybmFtZWAoYHVzZXJuYW1lYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGB1a191c2Vyc19lbWFpbGAoYGVtYWlsYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGB1a191c2Vyc19wYXNza2V5YChgcGFzc2tleWAgQVNDKSBVU0lORyBCVFJFRSwNCisgIFVOSVFVRSBJTkRFWCBgVUtyNDNhZjlhcDRlZG00M21tdHEwMW9kZGo2YChgdXNlcm5hbWVgIEFTQykgVVNJTkcgQlRSRUUsDQorICBVTklRVUUgSU5ERVggYFVLNmRvdGtvdHQya2pzcDh2dzRkMG0yNWZiN2AoYGVtYWlsYCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgVU5JUVVFIElOREVYIGBVSzQwMnN4NmNxZ2s2NnV3dDdleWY1NHRtaWpgKGBwYXNza2V5YCBBU0MpIFVTSU5HIEJUUkVFLA0KKyAgSU5ERVggYGZrX3VzZXJzX2dyb3VwYChgZ3JvdXBfaWRgIEFTQykgVVNJTkcgQlRSRUUsDQorICBDT05TVFJBSU5UIGBma191c2Vyc19ncm91cGAgRk9SRUlHTiBLRVkgKGBncm91cF9pZGApIFJFRkVSRU5DRVMgYHVzZXJfZ3JvdXBzYCAoYGlkYCkgT04gREVMRVRFIFJFU1RSSUNUIE9OIFVQREFURSBSRVNUUklDVA0KKykgRU5HSU5FID0gSW5ub0RCIEFVVE9fSU5DUkVNRU5UID0gMiBDSEFSQUNURVIgU0VUID0gdXRmOG1iNCBDT0xMQVRFID0gdXRmOG1iNF8wOTAwX2FpX2NpIFJPV19GT1JNQVQgPSBEeW5hbWljOw0KKw0KKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLSBSZWNvcmRzIG9mIHVzZXJzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0lOU0VSVCBJTlRPIGB1c2Vyc2AgVkFMVUVTICgxLCAndGVzdHVzZXJAZXhhbXBsZS5jb20nLCAnJDJhJDA2JEpxdkhwQzk0bW5OMjN1d21aWDBYSGV1eUZqM00yMklrdzhWQlpSb3BmcmxXYlBmQTRLUkV1JywgJ3Rlc3R1c2VyJywgMSwgJzQ3MDUwZThmLWYzZmQtNGE5Yy1hODI4LTBlMGRlNDU2NjkxZicsICcyMDI1LTA2LTAzIDExOjM0OjA4JywgJ2h0dHBzOi8vd3d3LmJhaWR1LmNvbS9mYWNpdm9uLmljbycsICfmtYvor5XnlKjmiLcnLCAn6L+Z5Liq55So5oi35b6I5oeS77yM6L+Y5rKh5pyJ5Liq5oCn562+5ZCNJywgJ3poLUNOJywgJzEwMG1icHMnLCAnMTAwbWJwcycsIDAsIDI3NzIzMzg4LCAyNzcyMzM4OCwgMCwgJ+acquefpScsIDAuMDAsIDAsIDMwNzkwMDY4LCAnOTQ4YzkxNDYtZmY1Zi00YWQ2LThiYTUtZDMyZTEyMDljYWZkJywgJzAnKTsNCisNCitTRVQgRk9SRUlHTl9LRVlfQ0hFQ0tTID0gMTsNCisNCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0gUmVjb3JkcyBvZiBjaGF0X21lc3NhZ2VzDQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGBjaGF0X21lc3NhZ2VzYDsNCitDUkVBVEUgVEFCTEUgY2hhdF9tZXNzYWdlcyAoDQorICAgIGlkIEJJR0lOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwNCisgICAgcm9vbV9pZCBCSUdJTlQgTk9UIE5VTEwsDQorICAgIHVzZXJfaWQgQklHSU5UIE5PVCBOVUxMLA0KKyAgICBjb250ZW50IFRFWFQgTk9UIE5VTEwsDQorICAgIGNyZWF0ZWRfYXQgREFURVRJTUUgTk9UIE5VTEwNCispOw0KKw0KZGlmZiAtLWdpdCBhL3RhcmdldC9tYXZlbi1zdGF0dXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luL2NvbXBpbGUvZGVmYXVsdC1jb21waWxlL2NyZWF0ZWRGaWxlcy5sc3QgYi90YXJnZXQvbWF2ZW4tc3RhdHVzL21hdmVuLWNvbXBpbGVyLXBsdWdpbi9jb21waWxlL2RlZmF1bHQtY29tcGlsZS9jcmVhdGVkRmlsZXMubHN0CmluZGV4IGU2OWRlMjkuLjdhZjlmYjIgMTAwNjQ0Ci0tLSBhL3RhcmdldC9tYXZlbi1zdGF0dXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luL2NvbXBpbGUvZGVmYXVsdC1jb21waWxlL2NyZWF0ZWRGaWxlcy5sc3QKKysrIGIvdGFyZ2V0L21hdmVuLXN0YXR1cy9tYXZlbi1jb21waWxlci1wbHVnaW4vY29tcGlsZS9kZWZhdWx0LWNvbXBpbGUvY3JlYXRlZEZpbGVzLmxzdApAQCAtMCwwICsxLDE1MCBAQAorY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQmxhY2tsaXN0Q2xpZW50U2VydmljZS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcUHJvbW90aW9uUG9saWN5UmVwb3NpdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQW5ub3VuY2VQZXJmb3JtYW5jZU1vbml0b3JTZXJ2aWNlLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxUb3JyZW50UmVwb3NpdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcU2V0dGluZ1NlcnZpY2UuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXGVkYXpkYXJldmljXGNvbW1vbnNcbmV0XENJRFJVdGlsLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFRyYW5zZmVySGlzdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxCcm93c2VyUmVhZGFibGVBbm5vdW5jZUV4Y2VwdGlvbi5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxVc2VyR3JvdXAuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxQcm9tb3Rpb25SZXNwb25zZURUTy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcVHJhbnNmZXJIaXN0b3J5UmVwb3NpdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcRGVidWdDb250cm9sbGVyJERlYnVnVG9ycmVudC5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcQ2xhc3NVdGlsLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxUb3JyZW50UGFyc2VyLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxDaGF0TWVzc2FnZVJlcG9zaXRvcnkuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGFubm91bmNlXEFubm91bmNlQ29udHJvbGxlci5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcdG9ycmVudFxkdG9ccmVxdWVzdFxUb3JyZW50U2NyYXBlUmVxdWVzdERUTy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxQZWVyLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVXNlckdyb3VwUmVzcG9uc2VEVE8uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXEV4YW1TZXJ2aWNlLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXFJFU1RFeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cSW52YWxpZEFubm91bmNlRXhjZXB0aW9uLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRccmVkaXNyZXBvc2l0b3J5XFJlZGlzTG9naW5BdHRlbXB0UmVwb3NpdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcdG9ycmVudFxUb3JyZW50Q29udHJvbGxlci5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcY2hhdFxDaGF0SGlzdG9yeUNvbnRyb2xsZXIuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcU2V0dGluZ0VudGl0eS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxBUElFcnJvckNvZGUuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFRhZ1JlcG9zaXRvcnkuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxVc2VyQmFzaWNSZXNwb25zZURUTy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHR5cGVcUHJpdmFjeUxldmVsLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxTZXR0aW5nUmVwb3NpdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGxpc3RlbmVyXFNhVG9rZW5FdmVudExpc3RlbmVyLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxVUkxFbmNvZGVVdGlsLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XEV4YW0uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGF1dGhcZHRvXHJlcXVlc3RcTG9naW5SZXF1ZXN0RFRPLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcdHlwZVxHdWVzdEFjY2Vzc0Jsb2NrZXIuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cUmV0cnlhYmxlQW5ub3VuY2VFeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcV2ViU29ja2V0Q29uZmlnLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxFeGFtUGxhblJlcG9zaXRvcnkuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcQXBpUHJpbnRlci5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxFeGFtUGxhbi5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQXV0aGVudGljYXRpb25TZXJ2aWNlLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcU2NyYXBlQ29udGFpbmVyRFRPLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxQcm9tb3Rpb25TZXJ2aWNlLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcY29uZmlnXFNlY3VyaXR5Q29uZmlnLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcdHlwZVxMb2dpblR5cGUuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXFRhZ1NlcnZpY2UuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxwdEFwcGxpY2F0aW9uLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVXNlclRpbnlSZXNwb25zZURUTy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcQmVuY29kZVV0aWwuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxhdXRvY29uZmlnXFNhZmVIVE1MQ29uZmlnLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxMb2dpbkhpc3RvcnlSZXBvc2l0b3J5LmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxJUFV0aWwuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGNhdGVnb3J5XENhdGVnb3J5Q29udHJvbGxlci5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxGaXhlZEFubm91bmNlRXhjZXB0aW9uLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxTYWZlVVVJRC5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQ2F0ZWdvcnlTZXJ2aWNlLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxQYWNrVXRpbC5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcY2hhdFxkdG9cQ2hhdE1lc3NhZ2VEVE8uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcU2FUb2tlbkhhbmRzaGFrZUludGVyY2VwdG9yLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxVc2VyUmVwb3NpdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcUGVybWlzc2lvblNlcnZpY2UuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFx0eXBlXEFubm91bmNlRXZlbnRUeXBlQ29udmVydGVyLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxJbmZvSGFzaFV0aWwuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxMb2dpblN0YXR1c1Jlc3BvbnNlRFRPLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXFRvcnJlbnRFeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XENhdGVnb3J5UmVwb3NpdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxJbnZhbGlkVG9ycmVudFZlcnNpb25FeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFVzZXJHcm91cFJlcG9zaXRvcnkuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHByb21vdGlvblxQcm9tb3Rpb25Db250cm9sbGVyLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxFeGFtUGxhblNlcnZpY2UuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXERlYnVnQ29udHJvbGxlci5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHR5cGVcSVBGb3JtYXRSZXF1aXJlbWVudC5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcYXV0aFxBdXRoQ29udHJvbGxlci5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGF1dG9jb25maWdcUXVhcnR6Q29uZmlnJEF1dG93aXJpbmdTcHJpbmdCZWFuSm9iRmFjdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXFVzZXJTZXNzaW9uUmVzcG9uc2VEVE8uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcQ2hhdE1lc3NhZ2UuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXExvZ2luSGlzdG9yeVNlcnZpY2UuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXEV4ZWN1dG9yVXRpbC5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQW5ub3VuY2VTZXJ2aWNlLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclx0b3JyZW50XGR0b1xyZXNwb25zZVxUb3JyZW50U2NyYXBlUmVzcG9uc2VEVE8uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cSW52YWxpZFRvcnJlbnRQaWVjZXNFeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXFVzZXJHcm91cFNlcnZpY2UuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXFBhc3N3b3JkSGFzaC5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcVGhhbmtzU2VydmljZS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZmVlZFxGZWVkQ29udHJvbGxlci5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcTWlzY1V0aWwuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cSW52YWxpZFRvcnJlbnRWZXJpZnlFeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXFRyYW5zZmVySGlzdG9yeVNlcnZpY2UkUGVlclN0YXR1cy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcdG9ycmVudFxkdG9ccmVxdWVzdFxUaGFua3NSZXNwb25zZURUTy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxJbnZhbGlkVG9ycmVudEZpbGVFeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFBlcm1pc3Npb25SZXBvc2l0b3J5LmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxhZHZpY2VcR2xvYmFsQ29udHJvbGxlckFkdmljZS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxDYXRlZ29yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcRXhhbVJlcG9zaXRvcnkuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHRvcnJlbnRcZm9ybVxUb3JyZW50VXBsb2FkRm9ybS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxFbXB0eVRvcnJlbnRGaWxlRXhjZXB0aW9uLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxQZWVyU2VydmljZS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcQnl0ZVV0aWwuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcVXNlci5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxBbm5vdW5jZUV4Y2VwdGlvbi5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcUGVlcnNSZXBvc2l0b3J5LmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcYXV0b2NvbmZpZ1xKZXRjYWNoZUNvbmZpZy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcYXV0aFxkdG9ccmVxdWVzdFxSZWdpc3RlclJlcXVlc3REVE8uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXFJhbmRvbVV0aWwuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFx0eXBlXEFubm91bmNlRXZlbnRUeXBlLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxVc2VyU2VydmljZS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XG9iamVjdHNcUmVzcG9uc2VQb2pvLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcYXV0b2NvbmZpZ1xKYWNrc29uQ29uZmlnLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXFRyYWNrZXJFeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXElwVmFsaWRhdG9yLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFBlcm1pc3Npb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHRvcnJlbnRcZHRvXHJlc3BvbnNlXFRvcnJlbnRVcGxvYWRTdWNjZXNzUmVzcG9uc2VEVE8uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcTG9naW5IaXN0b3J5LmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxBbm5vdW5jZVNlcnZpY2UkQW5ub3VuY2VUYXNrLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxUb3JyZW50U2VydmljZS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxUaGFua3MuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcTWFpbENvbmZpZy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGF1dG9jb25maWdcV29ya0RpcmVjdG9yeUNvbmZpZy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXFRvcnJlbnRCYXNpY1Jlc3BvbnNlRFRPLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcYXV0b2NvbmZpZ1xSZWRpc0NvbmZpZy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcQm9vbGVhblV0aWwuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXERlYnVnQ29udHJvbGxlciREZWJ1Z1BlZXIuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cQVBJR2VuZXJpY0V4Y2VwdGlvbi5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxCYWRDb25maWdFeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFx0eXBlXEd1ZXN0QWNjZXNzUmVxdWlyZW1lbnQuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcVHJhY2tlckNvbmZpZy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcYW5ub3VuY2VcQW5ub3VuY2VDb250cm9sbGVyJFBlZXJSZXN1bHQuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcU2VlZEJveC5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcdG9ycmVudFxkdG9ccmVxdWVzdFxTZWFyY2hUb3JyZW50UmVxdWVzdERUTy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcVHJhbnNmZXJIaXN0b3J5U2VydmljZS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxBbm5vdW5jZUJ1c3lFeGNlcHRpb24uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjcm9udGFza1xQZWVyc0NsZWFudXAuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFx3ZWJzb2NrZXRcQ2hhdFJhd1dlYlNvY2tldEhhbmRsZXIuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxDYXRlZ29yeVJlc3BvbnNlRFRPLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFRhZy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcVGhhbmtzUmVwb3NpdG9yeS5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXFRyYW5zZmVySGlzdG9yeURUTy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcSGliZXJuYXRlU2Vzc2lvblV0aWwuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxQZWVySW5mb1Jlc3BvbnNlRFRPLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVG9ycmVudEluZm9SZXNwb25zZURUTy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxQcm9tb3Rpb25Qb2xpY3kuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxyZWRpc2VudGl0eVxSZWRpc0xvZ2luQXR0ZW1wdC5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGF1dG9jb25maWdcUXVhcnR6Q29uZmlnLmNsYXNzCitjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFRvcnJlbnQuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxVc2VyUmVzcG9uc2VEVE8uY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHRvcnJlbnRcZHRvXHJlc3BvbnNlXFRvcnJlbnRTZWFyY2hSZXN1bHRSZXNwb25zZURUTy5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbmZpZ1xTaXRlQmFzaWNDb25maWcuY2xhc3MKK2NvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXFNhVG9rZW5QZXJtSW1wbC5jbGFzcworY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcR3NvblV0aWwuY2xhc3MKZGlmZiAtLWdpdCBhL3RhcmdldC9tYXZlbi1zdGF0dXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luL2NvbXBpbGUvZGVmYXVsdC1jb21waWxlL2lucHV0RmlsZXMubHN0IGIvdGFyZ2V0L21hdmVuLXN0YXR1cy9tYXZlbi1jb21waWxlci1wbHVnaW4vY29tcGlsZS9kZWZhdWx0LWNvbXBpbGUvaW5wdXRGaWxlcy5sc3QKaW5kZXggOTc1YzVjMy4uZDAwMDUyNiAxMDA2NDQKLS0tIGEvdGFyZ2V0L21hdmVuLXN0YXR1cy9tYXZlbi1jb21waWxlci1wbHVnaW4vY29tcGlsZS9kZWZhdWx0LWNvbXBpbGUvaW5wdXRGaWxlcy5sc3QKKysrIGIvdGFyZ2V0L21hdmVuLXN0YXR1cy9tYXZlbi1jb21waWxlci1wbHVnaW4vY29tcGlsZS9kZWZhdWx0LWNvbXBpbGUvaW5wdXRGaWxlcy5sc3QKQEAgLTEsMTQ1ICsxLDE0NCBAQAotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQW5ub3VuY2VQZXJmb3JtYW5jZU1vbml0b3JTZXJ2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXEV4YW1TZXJ2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXEV4ZWN1dG9yVXRpbC5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVG9ycmVudEJhc2ljUmVzcG9uc2VEVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxBbm5vdW5jZUJ1c3lFeGNlcHRpb24uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGF1dG9jb25maWdcU2FUb2tlbkNvbmZpZy5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcUGVlckluZm9SZXNwb25zZURUTy5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxFeGFtUGxhblNlcnZpY2UuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHR5cGVcQW5ub3VuY2VFdmVudFR5cGUuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbmZpZ1xTZWN1cml0eUNvbmZpZy5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxQZXJtaXNzaW9uUmVwb3NpdG9yeS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxVc2VyUmVwb3NpdG9yeS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxhdXRoXGR0b1xyZXF1ZXN0XFJlZ2lzdGVyUmVxdWVzdERUTy5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFVzZXIuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcTWlzY1V0aWwuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGF1dG9jb25maWdcUXVhcnR6Q29uZmlnLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcQ2hhdE1lc3NhZ2UuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcVXNlckdyb3VwU2VydmljZS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxJbmZvSGFzaFV0aWwuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlZGlzZW50aXR5XFJlZGlzTG9naW5BdHRlbXB0LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXENsYXNzVXRpbC5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxlZGF6ZGFyZXZpY1xjb21tb25zXG5ldFxDSURSVXRpbC5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxSYW5kb21VdGlsLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHRvcnJlbnRcVG9ycmVudENvbnRyb2xsZXIuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxGaXhlZEFubm91bmNlRXhjZXB0aW9uLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXERlYnVnQ29udHJvbGxlci5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFByb21vdGlvblBvbGljeS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxhbm5vdW5jZVxBbm5vdW5jZUNvbnRyb2xsZXIuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcYXV0aFxkdG9ccmVxdWVzdFxMb2dpblJlcXVlc3REVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXENhdGVnb3J5UmVzcG9uc2VEVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxJbnZhbGlkVG9ycmVudFBpZWNlc0V4Y2VwdGlvbi5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxVc2VyU2VydmljZS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclx0b3JyZW50XGR0b1xyZXF1ZXN0XFRoYW5rc1Jlc3BvbnNlRFRPLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXFRvcnJlbnRTZXJ2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxhdXRvY29uZmlnXFdvcmtEaXJlY3RvcnlDb25maWcuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxTZXR0aW5nRW50aXR5LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHRvcnJlbnRcZHRvXHJlc3BvbnNlXFRvcnJlbnRVcGxvYWRTdWNjZXNzUmVzcG9uc2VEVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcTG9naW5IaXN0b3J5U2VydmljZS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxQcm9tb3Rpb25TZXJ2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXFVSTEVuY29kZVV0aWwuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcQ2hhdE1lc3NhZ2VSZXBvc2l0b3J5LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGF1dGhcQXV0aENvbnRyb2xsZXIuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcRXhhbVBsYW5SZXBvc2l0b3J5LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXFBlcm1pc3Npb25TZXJ2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxsaXN0ZW5lclxTYVRva2VuRXZlbnRMaXN0ZW5lci5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEVtcHR5VG9ycmVudEZpbGVFeGNlcHRpb24uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxUb3JyZW50LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxhdXRvY29uZmlnXFNhZmVIVE1MQ29uZmlnLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGZlZWRcRmVlZENvbnRyb2xsZXIuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxDYXRlZ29yeS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxJUFV0aWwuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxQZWVyLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcQXBpUHJpbnRlci5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFBlcm1pc3Npb24uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcQnl0ZVV0aWwuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXFByb21vdGlvblJlc3BvbnNlRFRPLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcRXhhbS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEFubm91bmNlRXhjZXB0aW9uLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFRhZ1JlcG9zaXRvcnkuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcUGFja1V0aWwuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcRXhhbVJlcG9zaXRvcnkuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcdG9ycmVudFxkdG9ccmVzcG9uc2VcVG9ycmVudFNjcmFwZVJlc3BvbnNlRFRPLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcVGFnLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxVc2VyVGlueVJlc3BvbnNlRFRPLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXENhdGVnb3J5U2VydmljZS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29uZmlnXE1haWxDb25maWcuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcVHJhbnNmZXJIaXN0b3J5UmVwb3NpdG9yeS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEFQSUVycm9yQ29kZS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEJyb3dzZXJSZWFkYWJsZUFubm91bmNlRXhjZXB0aW9uLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxhdXRvY29uZmlnXEpldGNhY2hlQ29uZmlnLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXEJvb2xlYW5VdGlsLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcVHJhbnNmZXJIaXN0b3J5LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cVG9ycmVudEV4Y2VwdGlvbi5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxUaGFua3NTZXJ2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGNoYXRcZHRvXENoYXRNZXNzYWdlRFRPLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXEJlbmNvZGVVdGlsLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxVc2VyQmFzaWNSZXNwb25zZURUTy5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXFRyYWNrZXJFeGNlcHRpb24uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcVG9ycmVudFJlcG9zaXRvcnkuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXFVzZXJSZXNwb25zZURUTy5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29uZmlnXFNpdGVCYXNpY0NvbmZpZy5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxIaWJlcm5hdGVTZXNzaW9uVXRpbC5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxHc29uVXRpbC5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxQYXNzd29yZEhhc2guamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHdlYnNvY2tldFxDaGF0UmF3V2ViU29ja2V0SGFuZGxlci5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdHlwZVxBbm5vdW5jZUV2ZW50VHlwZUNvbnZlcnRlci5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxjaGF0XENoYXRIaXN0b3J5Q29udHJvbGxlci5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxUYWdTZXJ2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx0eXBlXEd1ZXN0QWNjZXNzQmxvY2tlci5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclx0b3JyZW50XGR0b1xyZXF1ZXN0XFNlYXJjaFRvcnJlbnRSZXF1ZXN0RFRPLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHRvcnJlbnRcZm9ybVxUb3JyZW50VXBsb2FkRm9ybS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XExvZ2luSGlzdG9yeS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxDYXRlZ29yeVJlcG9zaXRvcnkuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxTZWVkQm94LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFRoYW5rc1JlcG9zaXRvcnkuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcU2FmZVVVSUQuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbmZpZ1xUcmFja2VyQ29uZmlnLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxUcmFuc2Zlckhpc3RvcnlEVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQXV0aGVudGljYXRpb25TZXJ2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGFkdmljZVxHbG9iYWxDb250cm9sbGVyQWR2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxhdXRvY29uZmlnXFJlZGlzQ29uZmlnLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHRvcnJlbnRcZHRvXHJlcXVlc3RcVG9ycmVudFNjcmFwZVJlcXVlc3REVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxVc2VyR3JvdXAuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXFRvcnJlbnRJbmZvUmVzcG9uc2VEVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxFeGFtUGxhbi5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEFQSUdlbmVyaWNFeGNlcHRpb24uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcVHJhbnNmZXJIaXN0b3J5U2VydmljZS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVXNlckdyb3VwUmVzcG9uc2VEVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcTG9naW5IaXN0b3J5UmVwb3NpdG9yeS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcYXV0b2NvbmZpZ1xKYWNrc29uQ29uZmlnLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFNldHRpbmdSZXBvc2l0b3J5LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjcm9udGFza1xQZWVyc0NsZWFudXAuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHB0QXBwbGljYXRpb24uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlZGlzcmVwb3NpdG9yeVxSZWRpc0xvZ2luQXR0ZW1wdFJlcG9zaXRvcnkuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXExvZ2luU3RhdHVzUmVzcG9uc2VEVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJccHJvbW90aW9uXFByb21vdGlvbkNvbnRyb2xsZXIuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxJbnZhbGlkVG9ycmVudEZpbGVFeGNlcHRpb24uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcU2V0dGluZ1NlcnZpY2UuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcUGVlcnNSZXBvc2l0b3J5LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcV2ViU29ja2V0Q29uZmlnLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxTY3JhcGVDb250YWluZXJEVE8uamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxJbnZhbGlkVG9ycmVudFZlcmlmeUV4Y2VwdGlvbi5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdHlwZVxHdWVzdEFjY2Vzc1JlcXVpcmVtZW50LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFByb21vdGlvblBvbGljeVJlcG9zaXRvcnkuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XG9iamVjdHNcUmVzcG9uc2VQb2pvLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cSW52YWxpZFRvcnJlbnRWZXJzaW9uRXhjZXB0aW9uLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cUkVTVEV4Y2VwdGlvbi5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxTYVRva2VuUGVybUltcGwuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcdG9ycmVudFxkdG9ccmVzcG9uc2VcVG9ycmVudFNlYXJjaFJlc3VsdFJlc3BvbnNlRFRPLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx0eXBlXFByaXZhY3lMZXZlbC5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxVc2VyR3JvdXBSZXBvc2l0b3J5LmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXElwVmFsaWRhdG9yLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcU2FUb2tlbkhhbmRzaGFrZUludGVyY2VwdG9yLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXEFubm91bmNlU2VydmljZS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEJhZENvbmZpZ0V4Y2VwdGlvbi5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVXNlclNlc3Npb25SZXNwb25zZURUTy5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxCbGFja2xpc3RDbGllbnRTZXJ2aWNlLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXFRvcnJlbnRQYXJzZXIuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcY2F0ZWdvcnlcQ2F0ZWdvcnlDb250cm9sbGVyLmphdmEKLUU6XGRlc2t0b3BcRVhcMDYwNkJcUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx0eXBlXElQRm9ybWF0UmVxdWlyZW1lbnQuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxUaGFua3MuamF2YQotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxSZXRyeWFibGVBbm5vdW5jZUV4Y2VwdGlvbi5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEludmFsaWRBbm5vdW5jZUV4Y2VwdGlvbi5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxQZWVyU2VydmljZS5qYXZhCi1FOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdHlwZVxMb2dpblR5cGUuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXExvZ2luSGlzdG9yeVNlcnZpY2UuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXFVzZXJTZXJ2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFRvcnJlbnQuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcQ2hhdE1lc3NhZ2UuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXENsYXNzVXRpbC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxUaGFua3MuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXEV4ZWN1dG9yVXRpbC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbmZpZ1xXZWJTb2NrZXRDb25maWcuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGNoYXRcZHRvXENoYXRNZXNzYWdlRFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxNaXNjVXRpbC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcU2V0dGluZ1NlcnZpY2UuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxVc2VyU2Vzc2lvblJlc3BvbnNlRFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEJhZENvbmZpZ0V4Y2VwdGlvbi5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGF1dG9jb25maWdcUXVhcnR6Q29uZmlnLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxTYVRva2VuUGVybUltcGwuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXFRyYW5zZmVySGlzdG9yeVNlcnZpY2UuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cSW52YWxpZFRvcnJlbnRQaWVjZXNFeGNlcHRpb24uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XENoYXRNZXNzYWdlUmVwb3NpdG9yeS5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGV4Y2VwdGlvblxJbnZhbGlkVG9ycmVudEZpbGVFeGNlcHRpb24uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cQW5ub3VuY2VCdXN5RXhjZXB0aW9uLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEVtcHR5VG9ycmVudEZpbGVFeGNlcHRpb24uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXElQVXRpbC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlZGlzZW50aXR5XFJlZGlzTG9naW5BdHRlbXB0LmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XENhdGVnb3J5LmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFBlZXIuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcQXBpUHJpbnRlci5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHR5cGVcUHJpdmFjeUxldmVsLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXFRvcnJlbnRFeGNlcHRpb24uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcU2FUb2tlbkhhbmRzaGFrZUludGVyY2VwdG9yLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVXNlckJhc2ljUmVzcG9uc2VEVE8uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGZlZWRcRmVlZENvbnRyb2xsZXIuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXEV4YW1TZXJ2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxQcm9tb3Rpb25TZXJ2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29uZmlnXE1haWxDb25maWcuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcTG9naW5IaXN0b3J5LmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEJyb3dzZXJSZWFkYWJsZUFubm91bmNlRXhjZXB0aW9uLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXEludmFsaWRUb3JyZW50VmVyc2lvbkV4Y2VwdGlvbi5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcUGVybWlzc2lvblNlcnZpY2UuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cSW52YWxpZFRvcnJlbnRWZXJpZnlFeGNlcHRpb24uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx0eXBlXEd1ZXN0QWNjZXNzQmxvY2tlci5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcdG9ycmVudFxkdG9ccmVzcG9uc2VcVG9ycmVudFNlYXJjaFJlc3VsdFJlc3BvbnNlRFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxJcFZhbGlkYXRvci5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxQcm9tb3Rpb25Qb2xpY3kuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXFNhZmVVVUlELmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclx0b3JyZW50XGZvcm1cVG9ycmVudFVwbG9hZEZvcm0uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cQVBJRXJyb3JDb2RlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdHlwZVxBbm5vdW5jZUV2ZW50VHlwZS5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcUGVybWlzc2lvblJlcG9zaXRvcnkuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGNoYXRcQ2hhdEhpc3RvcnlDb250cm9sbGVyLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdHlwZVxMb2dpblR5cGUuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXEV4YW1QbGFuU2VydmljZS5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxQZXJtaXNzaW9uLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXFRyYWNrZXJFeGNlcHRpb24uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFRyYW5zZmVySGlzdG9yeVJlcG9zaXRvcnkuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcVXNlckdyb3VwLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRccmVkaXNyZXBvc2l0b3J5XFJlZGlzTG9naW5BdHRlbXB0UmVwb3NpdG9yeS5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQ2F0ZWdvcnlTZXJ2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxJbmZvSGFzaFV0aWwuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXFVSTEVuY29kZVV0aWwuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxvYmplY3RzXFJlc3BvbnNlUG9qby5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNyb250YXNrXFBlZXJzQ2xlYW51cC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcYW5ub3VuY2VcQW5ub3VuY2VDb250cm9sbGVyLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVHJhbnNmZXJIaXN0b3J5RFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcd2Vic29ja2V0XENoYXRSYXdXZWJTb2NrZXRIYW5kbGVyLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVG9ycmVudEJhc2ljUmVzcG9uc2VEVE8uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cQW5ub3VuY2VFeGNlcHRpb24uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGF1dGhcZHRvXHJlcXVlc3RcTG9naW5SZXF1ZXN0RFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxUaGFua3NTZXJ2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxhdXRoXEF1dGhDb250cm9sbGVyLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxVc2VyR3JvdXBTZXJ2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxCbGFja2xpc3RDbGllbnRTZXJ2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxQYWNrVXRpbC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcRXhhbVBsYW5SZXBvc2l0b3J5LmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxCeXRlVXRpbC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGF1dG9jb25maWdcV29ya0RpcmVjdG9yeUNvbmZpZy5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQXV0aGVudGljYXRpb25TZXJ2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclx0b3JyZW50XFRvcnJlbnRDb250cm9sbGVyLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclx0b3JyZW50XGR0b1xyZXF1ZXN0XFNlYXJjaFRvcnJlbnRSZXF1ZXN0RFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcTG9naW5TdGF0dXNSZXNwb25zZURUTy5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxVc2VyLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXFJldHJ5YWJsZUFubm91bmNlRXhjZXB0aW9uLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxQYXNzd29yZEhhc2guamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxVc2VyUmVzcG9uc2VEVE8uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxQZWVySW5mb1Jlc3BvbnNlRFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29uZmlnXFRyYWNrZXJDb25maWcuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcU2VlZEJveC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXENhdGVnb3J5UmVzcG9uc2VEVE8uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx0eXBlXEFubm91bmNlRXZlbnRUeXBlQ29udmVydGVyLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxUb3JyZW50UGFyc2VyLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxIaWJlcm5hdGVTZXNzaW9uVXRpbC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbmZpZ1xTaXRlQmFzaWNDb25maWcuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcRXhhbS5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxUcmFuc2Zlckhpc3RvcnkuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XENhdGVnb3J5UmVwb3NpdG9yeS5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcVG9ycmVudFJlcG9zaXRvcnkuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGF1dGhcZHRvXHJlcXVlc3RcUmVnaXN0ZXJSZXF1ZXN0RFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxjYXRlZ29yeVxDYXRlZ29yeUNvbnRyb2xsZXIuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxlbnRpdHlcU2V0dGluZ0VudGl0eS5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcdG9ycmVudFxkdG9ccmVxdWVzdFxUb3JyZW50U2NyYXBlUmVxdWVzdERUTy5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHR5cGVcR3Vlc3RBY2Nlc3NSZXF1aXJlbWVudC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHV0aWxcZWRhemRhcmV2aWNcY29tbW9uc1xuZXRcQ0lEUlV0aWwuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXEdzb25VdGlsLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRccmVwb3NpdG9yeVxUYWdSZXBvc2l0b3J5LmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclx0b3JyZW50XGR0b1xyZXNwb25zZVxUb3JyZW50U2NyYXBlUmVzcG9uc2VEVE8uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cRml4ZWRBbm5vdW5jZUV4Y2VwdGlvbi5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcVG9ycmVudFNlcnZpY2UuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cQVBJR2VuZXJpY0V4Y2VwdGlvbi5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGVudGl0eVxFeGFtUGxhbi5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHB0QXBwbGljYXRpb24uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFRoYW5rc1JlcG9zaXRvcnkuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxUb3JyZW50SW5mb1Jlc3BvbnNlRFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcbGlzdGVuZXJcU2FUb2tlbkV2ZW50TGlzdGVuZXIuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxleGNlcHRpb25cSW52YWxpZEFubm91bmNlRXhjZXB0aW9uLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdHlwZVxJUEZvcm1hdFJlcXVpcmVtZW50LmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcVXNlclRpbnlSZXNwb25zZURUTy5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcRGVidWdDb250cm9sbGVyLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcY29udHJvbGxlclxkdG9ccmVzcG9uc2VcUHJvbW90aW9uUmVzcG9uc2VEVE8uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxhdXRvY29uZmlnXEphY2tzb25Db25maWcuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XEV4YW1SZXBvc2l0b3J5LmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxCb29sZWFuVXRpbC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHNlcnZpY2VcQW5ub3VuY2VQZXJmb3JtYW5jZU1vbml0b3JTZXJ2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZXhjZXB0aW9uXFJFU1RFeGNlcHRpb24uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGFkdmljZVxHbG9iYWxDb250cm9sbGVyQWR2aWNlLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcYXV0b2NvbmZpZ1xKZXRjYWNoZUNvbmZpZy5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJccHJvbW90aW9uXFByb21vdGlvbkNvbnRyb2xsZXIuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFx1dGlsXFJhbmRvbVV0aWwuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb25maWdcU2VjdXJpdHlDb25maWcuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXGR0b1xyZXNwb25zZVxTY3JhcGVDb250YWluZXJEVE8uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHRvcnJlbnRcZHRvXHJlc3BvbnNlXFRvcnJlbnRVcGxvYWRTdWNjZXNzUmVzcG9uc2VEVE8uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxhdXRvY29uZmlnXFJlZGlzQ29uZmlnLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcdXRpbFxCZW5jb2RlVXRpbC5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcUGVlcnNSZXBvc2l0b3J5LmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcZW50aXR5XFRhZy5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XGNvbnRyb2xsZXJcZHRvXHJlc3BvbnNlXFVzZXJHcm91cFJlc3BvbnNlRFRPLmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxQZWVyU2VydmljZS5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1xtYWluXGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHJlcG9zaXRvcnlcVXNlclJlcG9zaXRvcnkuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFVzZXJHcm91cFJlcG9zaXRvcnkuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XExvZ2luSGlzdG9yeVJlcG9zaXRvcnkuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxjb250cm9sbGVyXHRvcnJlbnRcZHRvXHJlcXVlc3RcVGhhbmtzUmVzcG9uc2VEVE8uamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFNldHRpbmdSZXBvc2l0b3J5LmphdmEKK0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZ2l0aHViXGV4YW1wbGVccHRcc2VydmljZVxBbm5vdW5jZVNlcnZpY2UuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxzZXJ2aWNlXFRhZ1NlcnZpY2UuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxyZXBvc2l0b3J5XFByb21vdGlvblBvbGljeVJlcG9zaXRvcnkuamF2YQorQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxnaXRodWJcZXhhbXBsZVxwdFxhdXRvY29uZmlnXFNhZmVIVE1MQ29uZmlnLmphdmEKZGlmZiAtLWdpdCBhL3RhcmdldC9tYXZlbi1zdGF0dXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luL3Rlc3RDb21waWxlL2RlZmF1bHQtdGVzdENvbXBpbGUvaW5wdXRGaWxlcy5sc3QgYi90YXJnZXQvbWF2ZW4tc3RhdHVzL21hdmVuLWNvbXBpbGVyLXBsdWdpbi90ZXN0Q29tcGlsZS9kZWZhdWx0LXRlc3RDb21waWxlL2lucHV0RmlsZXMubHN0CmluZGV4IGY5NTY2MmUuLmU3MmQyOWQgMTAwNjQ0Ci0tLSBhL3RhcmdldC9tYXZlbi1zdGF0dXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luL3Rlc3RDb21waWxlL2RlZmF1bHQtdGVzdENvbXBpbGUvaW5wdXRGaWxlcy5sc3QKKysrIGIvdGFyZ2V0L21hdmVuLXN0YXR1cy9tYXZlbi1jb21waWxlci1wbHVnaW4vdGVzdENvbXBpbGUvZGVmYXVsdC10ZXN0Q29tcGlsZS9pbnB1dEZpbGVzLmxzdApAQCAtMSArMSBAQAotRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHNyY1x0ZXN0XGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHB0QXBwbGljYXRpb25UZXN0cy5qYXZhCitDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHNyY1x0ZXN0XGphdmFcY29tXGdpdGh1YlxleGFtcGxlXHB0XHB0QXBwbGljYXRpb25UZXN0cy5qYXZhCmRpZmYgLS1naXQgYS90YXJnZXQvc3VyZWZpcmUtcmVwb3J0cy8yMDI1LTA2LTA2VDEzLTUzLTQxXzE0Ny1qdm1SdW4xLmR1bXAgYi90YXJnZXQvc3VyZWZpcmUtcmVwb3J0cy8yMDI1LTA2LTA2VDEzLTUzLTQxXzE0Ny1qdm1SdW4xLmR1bXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYzNmJiOQotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9zdXJlZmlyZS1yZXBvcnRzLzIwMjUtMDYtMDZUMTMtNTMtNDFfMTQ3LWp2bVJ1bjEuZHVtcApAQCAtMCwwICsxLDE0IEBACisjIENyZWF0ZWQgYXQgMjAyNS0wNi0wNlQxMzo1Mzo0Mi44MjINCitTeXN0ZW0uZXhpdCgpIG9yIG5hdGl2ZSBjb21tYW5kIGVycm9yIGludGVycnVwdGVkIHByb2Nlc3MgY2hlY2tlci4NCitqYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uOiBDYW5ub3QgdXNlIFBQSUQgNTcwNCBwcm9jZXNzIGluZm9ybWF0aW9uLiBHb2luZyB0byB1c2UgTk9PUCBldmVudHMuDQorCWF0IG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUuYm9vdGVyLlBwaWRDaGVja2VyLmNoZWNrUHJvY2Vzc0luZm8oUHBpZENoZWNrZXIuamF2YToxNTUpDQorCWF0IG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUuYm9vdGVyLlBwaWRDaGVja2VyLmlzUHJvY2Vzc0FsaXZlKFBwaWRDaGVja2VyLmphdmE6MTE2KQ0KKwlhdCBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmJvb3Rlci5Gb3JrZWRCb290ZXIkMi5ydW4oRm9ya2VkQm9vdGVyLmphdmE6MjE0KQ0KKwlhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlci5jYWxsKEV4ZWN1dG9ycy5qYXZhOjUzOSkNCisJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuQW5kUmVzZXQoRnV0dXJlVGFzay5qYXZhOjMwNSkNCisJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRGdXR1cmVUYXNrLnJ1bihTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YTozMDUpDQorCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMzYpDQorCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MzUpDQorCWF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo4NDApDQorDQorDQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L3N1cmVmaXJlLXJlcG9ydHMvVEVTVC1jb20uZ2l0aHViLmV4YW1wbGUucHQucHRBcHBsaWNhdGlvblRlc3RzLnhtbCBiL3RhcmdldC9zdXJlZmlyZS1yZXBvcnRzL1RFU1QtY29tLmdpdGh1Yi5leGFtcGxlLnB0LnB0QXBwbGljYXRpb25UZXN0cy54bWwKaW5kZXggMWM5OWRhYy4uYmQ2ZDU5MCAxMDA2NDQKLS0tIGEvdGFyZ2V0L3N1cmVmaXJlLXJlcG9ydHMvVEVTVC1jb20uZ2l0aHViLmV4YW1wbGUucHQucHRBcHBsaWNhdGlvblRlc3RzLnhtbAorKysgYi90YXJnZXQvc3VyZWZpcmUtcmVwb3J0cy9URVNULWNvbS5naXRodWIuZXhhbXBsZS5wdC5wdEFwcGxpY2F0aW9uVGVzdHMueG1sCkBAIC0xLDYzICsxLDYxIEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KLTx0ZXN0c3VpdGUgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Imh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9zdXJlZmlyZS9tYXZlbi1zdXJlZmlyZS1wbHVnaW4veHNkL3N1cmVmaXJlLXRlc3QtcmVwb3J0LnhzZCIgbmFtZT0iY29tLmdpdGh1Yi5leGFtcGxlLnB0LnB0QXBwbGljYXRpb25UZXN0cyIgdGltZT0iMC4wMTkiIHRlc3RzPSIxIiBlcnJvcnM9IjAiIHNraXBwZWQ9IjAiIGZhaWx1cmVzPSIwIj4NCis8dGVzdHN1aXRlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJodHRwczovL21hdmVuLmFwYWNoZS5vcmcvc3VyZWZpcmUvbWF2ZW4tc3VyZWZpcmUtcGx1Z2luL3hzZC9zdXJlZmlyZS10ZXN0LXJlcG9ydC54c2QiIG5hbWU9ImNvbS5naXRodWIuZXhhbXBsZS5wdC5wdEFwcGxpY2F0aW9uVGVzdHMiIHRpbWU9IjExLjUwNSIgdGVzdHM9IjEiIGVycm9ycz0iMCIgc2tpcHBlZD0iMCIgZmFpbHVyZXM9IjAiPg0KICAgPHByb3BlcnRpZXM+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnNwZWNpZmljYXRpb24udmVyc2lvbiIgdmFsdWU9IjE3Ii8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJzdW4uY3B1LmlzYWxpc3QiIHZhbHVlPSJhbWQ2NCIvPg0KICAgICA8cHJvcGVydHkgbmFtZT0ic3VuLmpudS5lbmNvZGluZyIgdmFsdWU9IkdCSyIvPg0KLSAgICA8cHJvcGVydHkgbmFtZT0iamF2YS5jbGFzcy5wYXRoIiB2YWx1ZT0iRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHRhcmdldFx0ZXN0LWNsYXNzZXM7RTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kXHRhcmdldFxjbGFzc2VzO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1jYWNoZVwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWNhY2hlLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXJcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLWxvZ2dpbmdcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1sb2dnaW5nLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY2hccW9zXGxvZ2JhY2tcbG9nYmFjay1jbGFzc2ljXDEuNC41XGxvZ2JhY2stY2xhc3NpYy0xLjQuNS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNoXHFvc1xsb2diYWNrXGxvZ2JhY2stY29yZVwxLjQuNVxsb2diYWNrLWNvcmUtMS40LjUuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGxvZ2dpbmdcbG9nNGpcbG9nNGotdG8tc2xmNGpcMi4xOS4wXGxvZzRqLXRvLXNsZjRqLTIuMTkuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcbG9nZ2luZ1xsb2c0alxsb2c0ai1hcGlcMi4xOS4wXGxvZzRqLWFwaS0yLjE5LjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc2xmNGpcanVsLXRvLXNsZjRqXDIuMC42XGp1bC10by1zbGY0ai0yLjAuNi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1x5YW1sXHNuYWtleWFtbFwxLjMzXHNuYWtleWFtbC0xLjMzLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctY29udGV4dC1zdXBwb3J0XDYuMC40XHNwcmluZy1jb250ZXh0LXN1cHBvcnQtNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1iZWFuc1w2LjAuNFxzcHJpbmctYmVhbnMtNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1jb250ZXh0XDYuMC40XHNwcmluZy1jb250ZXh0LTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItZGF0YS1yZWRpc1wzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtcmVkaXMtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGRhdGFcc3ByaW5nLWRhdGEtcmVkaXNcMy4wLjFcc3ByaW5nLWRhdGEtcmVkaXMtMy4wLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGRhdGFcc3ByaW5nLWRhdGEta2V5dmFsdWVcMy4wLjFcc3ByaW5nLWRhdGEta2V5dmFsdWUtMy4wLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1veG1cNi4wLjRcc3ByaW5nLW94bS02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWFvcFw2LjAuNFxzcHJpbmctYW9wLTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcaW9cbGV0dHVjZVxsZXR0dWNlLWNvcmVcNi4yLjIuUkVMRUFTRVxsZXR0dWNlLWNvcmUtNi4yLjIuUkVMRUFTRS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LWNvbW1vblw0LjEuODcuRmluYWxcbmV0dHktY29tbW9uLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LWhhbmRsZXJcNC4xLjg3LkZpbmFsXG5ldHR5LWhhbmRsZXItNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktdHJhbnNwb3J0LW5hdGl2ZS11bml4LWNvbW1vblw0LjEuODcuRmluYWxcbmV0dHktdHJhbnNwb3J0LW5hdGl2ZS11bml4LWNvbW1vbi00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS10cmFuc3BvcnRcNC4xLjg3LkZpbmFsXG5ldHR5LXRyYW5zcG9ydC00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xwcm9qZWN0cmVhY3RvclxyZWFjdG9yLWNvcmVcMy41LjJccmVhY3Rvci1jb3JlLTMuNS4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItZGF0YS1qcGFcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1kYXRhLWpwYS0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLWFvcFwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWFvcC0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhc3BlY3RqXGFzcGVjdGp3ZWF2ZXJcMS45LjE5XGFzcGVjdGp3ZWF2ZXItMS45LjE5LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItamRiY1wzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWpkYmMtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cemF4eGVyXEhpa2FyaUNQXDUuMC4xXEhpa2FyaUNQLTUuMC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctamRiY1w2LjAuNFxzcHJpbmctamRiYy02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xoaWJlcm5hdGVcb3JtXGhpYmVybmF0ZS1jb3JlXDYuMS42LkZpbmFsXGhpYmVybmF0ZS1jb3JlLTYuMS42LkZpbmFsLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVxwZXJzaXN0ZW5jZVxqYWthcnRhLnBlcnNpc3RlbmNlLWFwaVwzLjEuMFxqYWthcnRhLnBlcnNpc3RlbmNlLWFwaS0zLjEuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGpha2FydGFcdHJhbnNhY3Rpb25camFrYXJ0YS50cmFuc2FjdGlvbi1hcGlcMi4wLjFcamFrYXJ0YS50cmFuc2FjdGlvbi1hcGktMi4wLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcamJvc3NcbG9nZ2luZ1xqYm9zcy1sb2dnaW5nXDMuNS4wLkZpbmFsXGpib3NzLWxvZ2dpbmctMy41LjAuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcaGliZXJuYXRlXGNvbW1vblxoaWJlcm5hdGUtY29tbW9ucy1hbm5vdGF0aW9uc1w2LjAuMi5GaW5hbFxoaWJlcm5hdGUtY29tbW9ucy1hbm5vdGF0aW9ucy02LjAuMi5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xqYm9zc1xqYW5kZXhcMi40LjIuRmluYWxcamFuZGV4LTIuNC4yLkZpbmFsLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxjbGFzc21hdGVcMS41LjFcY2xhc3NtYXRlLTEuNS4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcbmV0XGJ5dGVidWRkeVxieXRlLWJ1ZGR5XDEuMTIuMjJcYnl0ZS1idWRkeS0xLjEyLjIyLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGdsYXNzZmlzaFxqYXhiXGpheGItcnVudGltZVw0LjAuMVxqYXhiLXJ1bnRpbWUtNC4wLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcZ2xhc3NmaXNoXGpheGJcamF4Yi1jb3JlXDQuMC4xXGpheGItY29yZS00LjAuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xnbGFzc2Zpc2hcamF4Ylx0eHcyXDQuMC4xXHR4dzItNC4wLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cc3VuXGlzdGFja1xpc3RhY2stY29tbW9ucy1ydW50aW1lXDQuMS4xXGlzdGFjay1jb21tb25zLXJ1bnRpbWUtNC4xLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxqYWthcnRhXGluamVjdFxqYWthcnRhLmluamVjdC1hcGlcMi4wLjBcamFrYXJ0YS5pbmplY3QtYXBpLTIuMC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFudGxyXGFudGxyNC1ydW50aW1lXDQuMTAuMVxhbnRscjQtcnVudGltZS00LjEwLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGRhdGFcc3ByaW5nLWRhdGEtanBhXDMuMC4xXHNwcmluZy1kYXRhLWpwYS0zLjAuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcZGF0YVxzcHJpbmctZGF0YS1jb21tb25zXDMuMC4xXHNwcmluZy1kYXRhLWNvbW1vbnMtMy4wLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1vcm1cNi4wLjRcc3ByaW5nLW9ybS02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWFzcGVjdHNcNi4wLjRcc3ByaW5nLWFzcGVjdHMtNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1tYWlsXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItbWFpbC0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xlY2xpcHNlXGFuZ3VzXGpha2FydGEubWFpbFwxLjAuMFxqYWthcnRhLm1haWwtMS4wLjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxqYWthcnRhXGFjdGl2YXRpb25camFrYXJ0YS5hY3RpdmF0aW9uLWFwaVwyLjEuMVxqYWthcnRhLmFjdGl2YXRpb24tYXBpLTIuMS4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGVjbGlwc2VcYW5ndXNcYW5ndXMtYWN0aXZhdGlvblwxLjAuMFxhbmd1cy1hY3RpdmF0aW9uLTEuMC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItcXVhcnR6XDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItcXVhcnR6LTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctdHhcNi4wLjRcc3ByaW5nLXR4LTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHF1YXJ0ei1zY2hlZHVsZXJccXVhcnR6XDIuMy4yXHF1YXJ0ei0yLjMuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxtY2hhbmdlXG1jaGFuZ2UtY29tbW9ucy1qYXZhXDAuMi4xNVxtY2hhbmdlLWNvbW1vbnMtamF2YS0wLjIuMTUuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci12YWxpZGF0aW9uXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItdmFsaWRhdGlvbi0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcdG9tY2F0XGVtYmVkXHRvbWNhdC1lbWJlZC1lbFwxMC4xLjVcdG9tY2F0LWVtYmVkLWVsLTEwLjEuNS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xoaWJlcm5hdGVcdmFsaWRhdG9yXGhpYmVybmF0ZS12YWxpZGF0b3JcOC4wLjAuRmluYWxcaGliZXJuYXRlLXZhbGlkYXRvci04LjAuMC5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGpha2FydGFcdmFsaWRhdGlvblxqYWthcnRhLnZhbGlkYXRpb24tYXBpXDMuMC4yXGpha2FydGEudmFsaWRhdGlvbi1hcGktMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjblxkZXYzM1xzYS10b2tlbi1zcHJpbmctYm9vdDMtc3RhcnRlclwxLjM0LjBcc2EtdG9rZW4tc3ByaW5nLWJvb3QzLXN0YXJ0ZXItMS4zNC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY25cZGV2MzNcc2EtdG9rZW4tamFrYXJ0YS1zZXJ2bGV0XDEuMzQuMFxzYS10b2tlbi1qYWthcnRhLXNlcnZsZXQtMS4zNC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVxzZXJ2bGV0XGpha2FydGEuc2VydmxldC1hcGlcNi4wLjBcamFrYXJ0YS5zZXJ2bGV0LWFwaS02LjAuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNuXGRldjMzXHNhLXRva2VuLXNwcmluZy1ib290LWF1dG9jb25maWdcMS4zNC4wXHNhLXRva2VuLXNwcmluZy1ib290LWF1dG9jb25maWctMS4zNC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY25cZGV2MzNcc2EtdG9rZW4tZGFvLXJlZGlzLWphY2tzb25cMS4zNC4wXHNhLXRva2VuLWRhby1yZWRpcy1qYWNrc29uLTEuMzQuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNuXGRldjMzXHNhLXRva2VuLWNvcmVcMS4zNC4wXHNhLXRva2VuLWNvcmUtMS4zNC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItd2ViXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItd2ViLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctd2ViXDYuMC40XHNwcmluZy13ZWItNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xtaWNyb21ldGVyXG1pY3JvbWV0ZXItb2JzZXJ2YXRpb25cMS4xMC4zXG1pY3JvbWV0ZXItb2JzZXJ2YXRpb24tMS4xMC4zLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcaW9cbWljcm9tZXRlclxtaWNyb21ldGVyLWNvbW1vbnNcMS4xMC4zXG1pY3JvbWV0ZXItY29tbW9ucy0xLjEwLjMuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy13ZWJtdmNcNi4wLjRcc3ByaW5nLXdlYm12Yy02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWV4cHJlc3Npb25cNi4wLjRcc3ByaW5nLWV4cHJlc3Npb24tNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1qc29uXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItanNvbi0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxmYXN0ZXJ4bWxcamFja3Nvblxjb3JlXGphY2tzb24tZGF0YWJpbmRcMi4xNC4xXGphY2tzb24tZGF0YWJpbmQtMi4xNC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXGRhdGF0eXBlXGphY2tzb24tZGF0YXR5cGUtamRrOFwyLjE0LjFcamFja3Nvbi1kYXRhdHlwZS1qZGs4LTIuMTQuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxmYXN0ZXJ4bWxcamFja3Nvblxtb2R1bGVcamFja3Nvbi1tb2R1bGUtcGFyYW1ldGVyLW5hbWVzXDIuMTQuMVxqYWNrc29uLW1vZHVsZS1wYXJhbWV0ZXItbmFtZXMtMi4xNC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItdG9tY2F0XDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItdG9tY2F0LTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVxhbm5vdGF0aW9uXGpha2FydGEuYW5ub3RhdGlvbi1hcGlcMi4xLjFcamFrYXJ0YS5hbm5vdGF0aW9uLWFwaS0yLjEuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcdG9tY2F0XGVtYmVkXHRvbWNhdC1lbWJlZC1jb3JlXDEwLjEuNVx0b21jYXQtZW1iZWQtY29yZS0xMC4xLjUuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXHRvbWNhdFxlbWJlZFx0b21jYXQtZW1iZWQtd2Vic29ja2V0XDEwLjEuNVx0b21jYXQtZW1iZWQtd2Vic29ja2V0LTEwLjEuNS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtaW9cY29tbW9ucy1pb1wyLjExLjBcY29tbW9ucy1pby0yLjExLjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21tb25zLWNvZGVjXGNvbW1vbnMtY29kZWNcMS4xNVxjb21tb25zLWNvZGVjLTEuMTUuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21tb25zLXZhbGlkYXRvclxjb21tb25zLXZhbGlkYXRvclwxLjdcY29tbW9ucy12YWxpZGF0b3ItMS43LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1iZWFudXRpbHNcY29tbW9ucy1iZWFudXRpbHNcMS45LjRcY29tbW9ucy1iZWFudXRpbHMtMS45LjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21tb25zLWRpZ2VzdGVyXGNvbW1vbnMtZGlnZXN0ZXJcMi4xXGNvbW1vbnMtZGlnZXN0ZXItMi4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1sb2dnaW5nXGNvbW1vbnMtbG9nZ2luZ1wxLjJcY29tbW9ucy1sb2dnaW5nLTEuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtY29sbGVjdGlvbnNcY29tbW9ucy1jb2xsZWN0aW9uc1wzLjIuMlxjb21tb25zLWNvbGxlY3Rpb25zLTMuMi4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxjb21tb25zXGNvbW1vbnMtbGFuZzNcMy4xMi4wXGNvbW1vbnMtbGFuZzMtMy4xMi4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxjb21tb25zXGNvbW1vbnMtdGV4dFwxLjEwLjBcY29tbW9ucy10ZXh0LTEuMTAuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcY29tbW9uc1xjb21tb25zLWNvbXByZXNzXDEuMjJcY29tbW9ucy1jb21wcmVzcy0xLjIyLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGpldGJyYWluc1xhbm5vdGF0aW9uc1wyMy4xLjBcYW5ub3RhdGlvbnMtMjMuMS4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxndWF2YVxndWF2YVwzMS4xLWpyZVxndWF2YS0zMS4xLWpyZS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVcZ3VhdmFcZmFpbHVyZWFjY2Vzc1wxLjAuMVxmYWlsdXJlYWNjZXNzLTEuMC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxndWF2YVxsaXN0ZW5hYmxlZnV0dXJlXDk5OTkuMC1lbXB0eS10by1hdm9pZC1jb25mbGljdC13aXRoLWd1YXZhXGxpc3RlbmFibGVmdXR1cmUtOTk5OS4wLWVtcHR5LXRvLWF2b2lkLWNvbmZsaWN0LXdpdGgtZ3VhdmEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cZ29vZ2xlXGNvZGVcZmluZGJ1Z3NcanNyMzA1XDMuMC4yXGpzcjMwNS0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xjaGVja2VyZnJhbWV3b3JrXGNoZWNrZXItcXVhbFwzLjEyLjBcY2hlY2tlci1xdWFsLTMuMTIuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVcZXJyb3Jwcm9uZVxlcnJvcl9wcm9uZV9hbm5vdGF0aW9uc1wyLjExLjBcZXJyb3JfcHJvbmVfYW5ub3RhdGlvbnMtMi4xMS4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxqMm9iamNcajJvYmpjLWFubm90YXRpb25zXDEuM1xqMm9iamMtYW5ub3RhdGlvbnMtMS4zLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcYXRcZmF2cmVcbGliXGJjcnlwdFwwLjkuMFxiY3J5cHQtMC45LjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxhdFxmYXZyZVxsaWJcYnl0ZXNcMS4zLjBcYnl0ZXMtMS4zLjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21ca29uZ2hxXHVuaXJlc3QtamF2YVwzLjE0LjFcdW5pcmVzdC1qYXZhLTMuMTQuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcaHR0cGNvbXBvbmVudHNcaHR0cGNsaWVudFw0LjUuMTRcaHR0cGNsaWVudC00LjUuMTQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGh0dHBjb21wb25lbnRzXGh0dHBjb3JlXDQuNC4xNlxodHRwY29yZS00LjQuMTYuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGh0dHBjb21wb25lbnRzXGh0dHBtaW1lXDQuNS4xNFxodHRwbWltZS00LjUuMTQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGh0dHBjb21wb25lbnRzXGh0dHBjb3JlLW5pb1w0LjQuMTZcaHR0cGNvcmUtbmlvLTQuNC4xNi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcaHR0cGNvbXBvbmVudHNcaHR0cGFzeW5jY2xpZW50XDQuMS41XGh0dHBhc3luY2NsaWVudC00LjEuNS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVcY29kZVxnc29uXGdzb25cMi45LjFcZ3Nvbi0yLjkuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG1lXHRvbmdmZWlccHJvZ3Jlc3NiYXJcMC45LjVccHJvZ3Jlc3NiYXItMC45LjUuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcamxpbmVcamxpbmVcMy4yMS4wXGpsaW5lLTMuMjEuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxkYW1wY2FrZVxiZW5jb2RlXDEuNFxiZW5jb2RlLTEuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxteXNxbFxteXNxbC1jb25uZWN0b3Italw4LjAuMzJcbXlzcWwtY29ubmVjdG9yLWotOC4wLjMyLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGgyZGF0YWJhc2VcaDJcMi4xLjIxNFxoMi0yLjEuMjE0LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHByb2plY3Rsb21ib2tcbG9tYm9rXDEuMTguMjRcbG9tYm9rLTEuMTguMjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3QtZGV2dG9vbHNcMy4wLjJcc3ByaW5nLWJvb3QtZGV2dG9vbHMtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3RcMy4wLjJcc3ByaW5nLWJvb3QtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3QtYXV0b2NvbmZpZ3VyZVwzLjAuMlxzcHJpbmctYm9vdC1hdXRvY29uZmlndXJlLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItdGVzdFwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLXRlc3QtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3QtdGVzdFwzLjAuMlxzcHJpbmctYm9vdC10ZXN0LTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXRlc3QtYXV0b2NvbmZpZ3VyZVwzLjAuMlxzcHJpbmctYm9vdC10ZXN0LWF1dG9jb25maWd1cmUtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21camF5d2F5XGpzb25wYXRoXGpzb24tcGF0aFwyLjcuMFxqc29uLXBhdGgtMi43LjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxuZXRcbWluaWRldlxqc29uLXNtYXJ0XDIuNC44XGpzb24tc21hcnQtMi40LjguamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxuZXRcbWluaWRldlxhY2Nlc3NvcnMtc21hcnRcMi40LjhcYWNjZXNzb3JzLXNtYXJ0LTIuNC44LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXG93Mlxhc21cYXNtXDkuMVxhc20tOS4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVx4bWxcYmluZFxqYWthcnRhLnhtbC5iaW5kLWFwaVw0LjAuMFxqYWthcnRhLnhtbC5iaW5kLWFwaS00LjAuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhc3NlcnRqXGFzc2VydGotY29yZVwzLjIzLjFcYXNzZXJ0ai1jb3JlLTMuMjMuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xoYW1jcmVzdFxoYW1jcmVzdFwyLjJcaGFtY3Jlc3QtMi4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGp1bml0XGp1cGl0ZXJcanVuaXQtanVwaXRlclw1LjkuMlxqdW5pdC1qdXBpdGVyLTUuOS4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGp1bml0XGp1cGl0ZXJcanVuaXQtanVwaXRlci1hcGlcNS45LjJcanVuaXQtanVwaXRlci1hcGktNS45LjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcb3BlbnRlc3Q0alxvcGVudGVzdDRqXDEuMi4wXG9wZW50ZXN0NGotMS4yLjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcanVuaXRccGxhdGZvcm1canVuaXQtcGxhdGZvcm0tY29tbW9uc1wxLjkuMlxqdW5pdC1wbGF0Zm9ybS1jb21tb25zLTEuOS4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwaWd1YXJkaWFuXGFwaWd1YXJkaWFuLWFwaVwxLjEuMlxhcGlndWFyZGlhbi1hcGktMS4xLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcanVuaXRcanVwaXRlclxqdW5pdC1qdXBpdGVyLXBhcmFtc1w1LjkuMlxqdW5pdC1qdXBpdGVyLXBhcmFtcy01LjkuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xqdW5pdFxqdXBpdGVyXGp1bml0LWp1cGl0ZXItZW5naW5lXDUuOS4yXGp1bml0LWp1cGl0ZXItZW5naW5lLTUuOS4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGp1bml0XHBsYXRmb3JtXGp1bml0LXBsYXRmb3JtLWVuZ2luZVwxLjkuMlxqdW5pdC1wbGF0Zm9ybS1lbmdpbmUtMS45LjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcbW9ja2l0b1xtb2NraXRvLWNvcmVcNC44LjFcbW9ja2l0by1jb3JlLTQuOC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcbmV0XGJ5dGVidWRkeVxieXRlLWJ1ZGR5LWFnZW50XDEuMTIuMjJcYnl0ZS1idWRkeS1hZ2VudC0xLjEyLjIyLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXG9iamVuZXNpc1xvYmplbmVzaXNcMy4yXG9iamVuZXNpcy0zLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcbW9ja2l0b1xtb2NraXRvLWp1bml0LWp1cGl0ZXJcNC44LjFcbW9ja2l0by1qdW5pdC1qdXBpdGVyLTQuOC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNreXNjcmVhbWVyXGpzb25hc3NlcnRcMS41LjFcanNvbmFzc2VydC0xLjUuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVx2YWFkaW5cZXh0ZXJuYWxcZ29vZ2xlXGFuZHJvaWQtanNvblwwLjAuMjAxMzExMDgudmFhZGluMVxhbmRyb2lkLWpzb24tMC4wLjIwMTMxMTA4LnZhYWRpbjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1jb3JlXDYuMC40XHNwcmluZy1jb3JlLTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctamNsXDYuMC40XHNwcmluZy1qY2wtNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy10ZXN0XDYuMC40XHNwcmluZy10ZXN0LTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHhtbHVuaXRceG1sdW5pdC1jb3JlXDIuOS4xXHhtbHVuaXQtY29yZS0yLjkuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxmYXN0ZXJ4bWxcamFja3NvblxkYXRhdHlwZVxqYWNrc29uLWRhdGF0eXBlLWpzcjMxMFwyLjE0LjFcamFja3Nvbi1kYXRhdHlwZS1qc3IzMTAtMi4xNC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXGNvcmVcamFja3Nvbi1hbm5vdGF0aW9uc1wyLjE0LjFcamFja3Nvbi1hbm5vdGF0aW9ucy0yLjE0LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGphY2tzb25cY29yZVxqYWNrc29uLWNvcmVcMi4xNC4xXGphY2tzb24tY29yZS0yLjE0LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdccmVkaXNzb25ccmVkaXNzb24taGliZXJuYXRlLTZcMy4xOS4zXHJlZGlzc29uLWhpYmVybmF0ZS02LTMuMTkuMy5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xyZWRpc3NvblxyZWRpc3NvblwzLjE5LjNccmVkaXNzb24tMy4xOS4zLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktY29kZWNcNC4xLjg3LkZpbmFsXG5ldHR5LWNvZGVjLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LWJ1ZmZlclw0LjEuODcuRmluYWxcbmV0dHktYnVmZmVyLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LXJlc29sdmVyXDQuMS44Ny5GaW5hbFxuZXR0eS1yZXNvbHZlci00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS1yZXNvbHZlci1kbnNcNC4xLjg3LkZpbmFsXG5ldHR5LXJlc29sdmVyLWRucy00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS1jb2RlYy1kbnNcNC4xLjg3LkZpbmFsXG5ldHR5LWNvZGVjLWRucy00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxqYXZheFxjYWNoZVxjYWNoZS1hcGlcMS4xLjFcY2FjaGUtYXBpLTEuMS4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHJlYWN0aXZlc3RyZWFtc1xyZWFjdGl2ZS1zdHJlYW1zXDEuMC40XHJlYWN0aXZlLXN0cmVhbXMtMS4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xyZWFjdGl2ZXhccnhqYXZhM1xyeGphdmFcMy4xLjZccnhqYXZhLTMuMS42LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGpib3NzXG1hcnNoYWxsaW5nXGpib3NzLW1hcnNoYWxsaW5nXDIuMC4xMS5GaW5hbFxqYm9zcy1tYXJzaGFsbGluZy0yLjAuMTEuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcamJvc3NcbWFyc2hhbGxpbmdcamJvc3MtbWFyc2hhbGxpbmctcml2ZXJcMi4wLjExLkZpbmFsXGpib3NzLW1hcnNoYWxsaW5nLXJpdmVyLTIuMC4xMS5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxlc290ZXJpY3NvZnR3YXJlXGtyeW9cNS40LjBca3J5by01LjQuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxlc290ZXJpY3NvZnR3YXJlXHJlZmxlY3Rhc21cMS4xMS45XHJlZmxlY3Rhc20tMS4xMS45LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGVzb3Rlcmljc29mdHdhcmVcbWlubG9nXDEuMy4xXG1pbmxvZy0xLjMuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxmYXN0ZXJ4bWxcamFja3NvblxkYXRhZm9ybWF0XGphY2tzb24tZGF0YWZvcm1hdC15YW1sXDIuMTQuMVxqYWNrc29uLWRhdGFmb3JtYXQteWFtbC0yLjE0LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcam9kZFxqb2RkLWJlYW5cNS4xLjZcam9kZC1iZWFuLTUuMS42LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGpvZGRcam9kZC1jb3JlXDUuMS42XGpvZGQtY29yZS01LjEuNi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVjb2RlXG93YXNwLWphdmEtaHRtbC1zYW5pdGl6ZXJcb3dhc3AtamF2YS1odG1sLXNhbml0aXplclwyMDIyMDYwOC4xXG93YXNwLWphdmEtaHRtbC1zYW5pdGl6ZXItMjAyMjA2MDguMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcY29tbW9uc1xjb21tb25zLXBvb2wyXDIuMTEuMVxjb21tb25zLXBvb2wyLTIuMTEuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxyb21ldG9vbHNccm9tZVwxLjE4LjBccm9tZS0xLjE4LjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21ccm9tZXRvb2xzXHJvbWUtdXRpbHNcMS4xOC4wXHJvbWUtdXRpbHMtMS4xOC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGpkb21camRvbTJcMi4wLjYuMVxqZG9tMi0yLjAuNi4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNsZjRqXHNsZjRqLWFwaVwyLjAuNlxzbGY0ai1hcGktMi4wLjYuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cYWxpY3BcamV0Y2FjaGVcamV0Y2FjaGUtc3RhcnRlci1yZWRpc1wyLjcuM1xqZXRjYWNoZS1zdGFydGVyLXJlZGlzLTIuNy4zLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLWF1dG9jb25maWd1cmVcMi43LjNcamV0Y2FjaGUtYXV0b2NvbmZpZ3VyZS0yLjcuMy5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1hbm5vXDIuNy4zXGpldGNhY2hlLWFubm8tMi43LjMuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cYWxpY3BcamV0Y2FjaGVcamV0Y2FjaGUtY29yZVwyLjcuM1xqZXRjYWNoZS1jb3JlLTIuNy4zLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLWFubm8tYXBpXDIuNy4zXGpldGNhY2hlLWFubm8tYXBpLTIuNy4zLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWJhYmFcZmFzdGpzb24yXGZhc3Rqc29uMlwyLjAuMjFcZmFzdGpzb24yLTIuMC4yMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxnaXRodWJcYmVuLW1hbmVzXGNhZmZlaW5lXGNhZmZlaW5lXDMuMS4yXGNhZmZlaW5lLTMuMS4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcamF2YXhcYW5ub3RhdGlvblxqYXZheC5hbm5vdGF0aW9uLWFwaVwxLjMuMVxqYXZheC5hbm5vdGF0aW9uLWFwaS0xLjMuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1yZWRpc1wyLjcuM1xqZXRjYWNoZS1yZWRpcy0yLjcuMy5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XHJlZGlzXGNsaWVudHNcamVkaXNcNC4zLjFcamVkaXMtNC4zLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcanNvblxqc29uXDIwMjIwMzIwXGpzb24tMjAyMjAzMjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcZ3JlZW5yb2JvdFxldmVudGJ1cy1qYXZhXDMuMy4xXGV2ZW50YnVzLWphdmEtMy4zLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci13ZWJzb2NrZXRcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci13ZWJzb2NrZXQtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1tZXNzYWdpbmdcNi4wLjRcc3ByaW5nLW1lc3NhZ2luZy02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLXdlYnNvY2tldFw2LjAuNFxzcHJpbmctd2Vic29ja2V0LTYuMC40LmphcjsiLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9ImphdmEudm0udmVuZG9yIiB2YWx1ZT0iTWljcm9zb2Z0Ii8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLmNsYXNzLnBhdGgiIHZhbHVlPSJDOlxVc2Vyc1w3NTAwMVxEZXNrdG9wXFNhcGxpbmctbWFpblxQVF9TaXh0aF9CYWNrZW5kXHRhcmdldFx0ZXN0LWNsYXNzZXM7QzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFx0YXJnZXRcY2xhc3NlcztDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1jYWNoZVwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWNhY2hlLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlclwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1sb2dnaW5nXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItbG9nZ2luZy0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY2hccW9zXGxvZ2JhY2tcbG9nYmFjay1jbGFzc2ljXDEuNC41XGxvZ2JhY2stY2xhc3NpYy0xLjQuNS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY2hccW9zXGxvZ2JhY2tcbG9nYmFjay1jb3JlXDEuNC41XGxvZ2JhY2stY29yZS0xLjQuNS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxsb2dnaW5nXGxvZzRqXGxvZzRqLXRvLXNsZjRqXDIuMTkuMFxsb2c0ai10by1zbGY0ai0yLjE5LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcbG9nZ2luZ1xsb2c0alxsb2c0ai1hcGlcMi4xOS4wXGxvZzRqLWFwaS0yLjE5LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzbGY0alxqdWwtdG8tc2xmNGpcMi4wLjZcanVsLXRvLXNsZjRqLTIuMC42LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdceWFtbFxzbmFrZXlhbWxcMS4zM1xzbmFrZXlhbWwtMS4zMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctY29udGV4dC1zdXBwb3J0XDYuMC40XHNwcmluZy1jb250ZXh0LXN1cHBvcnQtNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWJlYW5zXDYuMC40XHNwcmluZy1iZWFucy02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctY29udGV4dFw2LjAuNFxzcHJpbmctY29udGV4dC02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItZGF0YS1yZWRpc1wzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtcmVkaXMtMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcZGF0YVxzcHJpbmctZGF0YS1yZWRpc1wzLjAuMVxzcHJpbmctZGF0YS1yZWRpcy0zLjAuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xkYXRhXHNwcmluZy1kYXRhLWtleXZhbHVlXDMuMC4xXHNwcmluZy1kYXRhLWtleXZhbHVlLTMuMC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1veG1cNi4wLjRcc3ByaW5nLW94bS02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctYW9wXDYuMC40XHNwcmluZy1hb3AtNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXGxldHR1Y2VcbGV0dHVjZS1jb3JlXDYuMi4yLlJFTEVBU0VcbGV0dHVjZS1jb3JlLTYuMi4yLlJFTEVBU0UuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LWNvbW1vblw0LjEuODcuRmluYWxcbmV0dHktY29tbW9uLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktaGFuZGxlclw0LjEuODcuRmluYWxcbmV0dHktaGFuZGxlci00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LXRyYW5zcG9ydC1uYXRpdmUtdW5peC1jb21tb25cNC4xLjg3LkZpbmFsXG5ldHR5LXRyYW5zcG9ydC1uYXRpdmUtdW5peC1jb21tb24tNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS10cmFuc3BvcnRcNC4xLjg3LkZpbmFsXG5ldHR5LXRyYW5zcG9ydC00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXHByb2plY3RyZWFjdG9yXHJlYWN0b3ItY29yZVwzLjUuMlxyZWFjdG9yLWNvcmUtMy41LjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtanBhXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItZGF0YS1qcGEtMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLWFvcFwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWFvcC0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFzcGVjdGpcYXNwZWN0andlYXZlclwxLjkuMTlcYXNwZWN0andlYXZlci0xLjkuMTkuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLWpkYmNcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1qZGJjLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cemF4eGVyXEhpa2FyaUNQXDUuMC4xXEhpa2FyaUNQLTUuMC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1qZGJjXDYuMC40XHNwcmluZy1qZGJjLTYuMC40LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcaGliZXJuYXRlXG9ybVxoaWJlcm5hdGUtY29yZVw2LjEuNi5GaW5hbFxoaWJlcm5hdGUtY29yZS02LjEuNi5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVxwZXJzaXN0ZW5jZVxqYWthcnRhLnBlcnNpc3RlbmNlLWFwaVwzLjEuMFxqYWthcnRhLnBlcnNpc3RlbmNlLWFwaS0zLjEuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVx0cmFuc2FjdGlvblxqYWthcnRhLnRyYW5zYWN0aW9uLWFwaVwyLjAuMVxqYWthcnRhLnRyYW5zYWN0aW9uLWFwaS0yLjAuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGpib3NzXGxvZ2dpbmdcamJvc3MtbG9nZ2luZ1wzLjUuMC5GaW5hbFxqYm9zcy1sb2dnaW5nLTMuNS4wLkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcaGliZXJuYXRlXGNvbW1vblxoaWJlcm5hdGUtY29tbW9ucy1hbm5vdGF0aW9uc1w2LjAuMi5GaW5hbFxoaWJlcm5hdGUtY29tbW9ucy1hbm5vdGF0aW9ucy02LjAuMi5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGpib3NzXGphbmRleFwyLjQuMi5GaW5hbFxqYW5kZXgtMi40LjIuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxmYXN0ZXJ4bWxcY2xhc3NtYXRlXDEuNS4xXGNsYXNzbWF0ZS0xLjUuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcbmV0XGJ5dGVidWRkeVxieXRlLWJ1ZGR5XDEuMTIuMjJcYnl0ZS1idWRkeS0xLjEyLjIyLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcZ2xhc3NmaXNoXGpheGJcamF4Yi1ydW50aW1lXDQuMC4xXGpheGItcnVudGltZS00LjAuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGdsYXNzZmlzaFxqYXhiXGpheGItY29yZVw0LjAuMVxqYXhiLWNvcmUtNC4wLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xnbGFzc2Zpc2hcamF4Ylx0eHcyXDQuMC4xXHR4dzItNC4wLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxzdW5caXN0YWNrXGlzdGFjay1jb21tb25zLXJ1bnRpbWVcNC4xLjFcaXN0YWNrLWNvbW1vbnMtcnVudGltZS00LjEuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVxpbmplY3RcamFrYXJ0YS5pbmplY3QtYXBpXDIuMC4wXGpha2FydGEuaW5qZWN0LWFwaS0yLjAuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFudGxyXGFudGxyNC1ydW50aW1lXDQuMTAuMVxhbnRscjQtcnVudGltZS00LjEwLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcZGF0YVxzcHJpbmctZGF0YS1qcGFcMy4wLjFcc3ByaW5nLWRhdGEtanBhLTMuMC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGRhdGFcc3ByaW5nLWRhdGEtY29tbW9uc1wzLjAuMVxzcHJpbmctZGF0YS1jb21tb25zLTMuMC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1vcm1cNi4wLjRcc3ByaW5nLW9ybS02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctYXNwZWN0c1w2LjAuNFxzcHJpbmctYXNwZWN0cy02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItbWFpbFwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLW1haWwtMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xlY2xpcHNlXGFuZ3VzXGpha2FydGEubWFpbFwxLjAuMFxqYWthcnRhLm1haWwtMS4wLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGpha2FydGFcYWN0aXZhdGlvblxqYWthcnRhLmFjdGl2YXRpb24tYXBpXDIuMS4xXGpha2FydGEuYWN0aXZhdGlvbi1hcGktMi4xLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xlY2xpcHNlXGFuZ3VzXGFuZ3VzLWFjdGl2YXRpb25cMS4wLjBcYW5ndXMtYWN0aXZhdGlvbi0xLjAuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItcXVhcnR6XDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItcXVhcnR6LTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy10eFw2LjAuNFxzcHJpbmctdHgtNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xxdWFydHotc2NoZWR1bGVyXHF1YXJ0elwyLjMuMlxxdWFydHotMi4zLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxtY2hhbmdlXG1jaGFuZ2UtY29tbW9ucy1qYXZhXDAuMi4xNVxtY2hhbmdlLWNvbW1vbnMtamF2YS0wLjIuMTUuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLXZhbGlkYXRpb25cMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci12YWxpZGF0aW9uLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXHRvbWNhdFxlbWJlZFx0b21jYXQtZW1iZWQtZWxcMTAuMS41XHRvbWNhdC1lbWJlZC1lbC0xMC4xLjUuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xoaWJlcm5hdGVcdmFsaWRhdG9yXGhpYmVybmF0ZS12YWxpZGF0b3JcOC4wLjAuRmluYWxcaGliZXJuYXRlLXZhbGlkYXRvci04LjAuMC5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVx2YWxpZGF0aW9uXGpha2FydGEudmFsaWRhdGlvbi1hcGlcMy4wLjJcamFrYXJ0YS52YWxpZGF0aW9uLWFwaS0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY25cZGV2MzNcc2EtdG9rZW4tc3ByaW5nLWJvb3QzLXN0YXJ0ZXJcMS4zNC4wXHNhLXRva2VuLXNwcmluZy1ib290My1zdGFydGVyLTEuMzQuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY25cZGV2MzNcc2EtdG9rZW4tamFrYXJ0YS1zZXJ2bGV0XDEuMzQuMFxzYS10b2tlbi1qYWthcnRhLXNlcnZsZXQtMS4zNC4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxqYWthcnRhXHNlcnZsZXRcamFrYXJ0YS5zZXJ2bGV0LWFwaVw2LjAuMFxqYWthcnRhLnNlcnZsZXQtYXBpLTYuMC4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjblxkZXYzM1xzYS10b2tlbi1zcHJpbmctYm9vdC1hdXRvY29uZmlnXDEuMzQuMFxzYS10b2tlbi1zcHJpbmctYm9vdC1hdXRvY29uZmlnLTEuMzQuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY25cZGV2MzNcc2EtdG9rZW4tZGFvLXJlZGlzLWphY2tzb25cMS4zNC4wXHNhLXRva2VuLWRhby1yZWRpcy1qYWNrc29uLTEuMzQuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY25cZGV2MzNcc2EtdG9rZW4tY29yZVwxLjM0LjBcc2EtdG9rZW4tY29yZS0xLjM0LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLXdlYlwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLXdlYi0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctd2ViXDYuMC40XHNwcmluZy13ZWItNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXG1pY3JvbWV0ZXJcbWljcm9tZXRlci1vYnNlcnZhdGlvblwxLjEwLjNcbWljcm9tZXRlci1vYnNlcnZhdGlvbi0xLjEwLjMuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXG1pY3JvbWV0ZXJcbWljcm9tZXRlci1jb21tb25zXDEuMTAuM1xtaWNyb21ldGVyLWNvbW1vbnMtMS4xMC4zLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy13ZWJtdmNcNi4wLjRcc3ByaW5nLXdlYm12Yy02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctZXhwcmVzc2lvblw2LjAuNFxzcHJpbmctZXhwcmVzc2lvbi02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItanNvblwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWpzb24tMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxmYXN0ZXJ4bWxcamFja3Nvblxjb3JlXGphY2tzb24tZGF0YWJpbmRcMi4xNC4xXGphY2tzb24tZGF0YWJpbmQtMi4xNC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGphY2tzb25cZGF0YXR5cGVcamFja3Nvbi1kYXRhdHlwZS1qZGs4XDIuMTQuMVxqYWNrc29uLWRhdGF0eXBlLWpkazgtMi4xNC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGphY2tzb25cbW9kdWxlXGphY2tzb24tbW9kdWxlLXBhcmFtZXRlci1uYW1lc1wyLjE0LjFcamFja3Nvbi1tb2R1bGUtcGFyYW1ldGVyLW5hbWVzLTIuMTQuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItdG9tY2F0XDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItdG9tY2F0LTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxqYWthcnRhXGFubm90YXRpb25camFrYXJ0YS5hbm5vdGF0aW9uLWFwaVwyLjEuMVxqYWthcnRhLmFubm90YXRpb24tYXBpLTIuMS4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXHRvbWNhdFxlbWJlZFx0b21jYXQtZW1iZWQtY29yZVwxMC4xLjVcdG9tY2F0LWVtYmVkLWNvcmUtMTAuMS41LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXHRvbWNhdFxlbWJlZFx0b21jYXQtZW1iZWQtd2Vic29ja2V0XDEwLjEuNVx0b21jYXQtZW1iZWQtd2Vic29ja2V0LTEwLjEuNS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1pb1xjb21tb25zLWlvXDIuMTEuMFxjb21tb25zLWlvLTIuMTEuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1jb2RlY1xjb21tb25zLWNvZGVjXDEuMTVcY29tbW9ucy1jb2RlYy0xLjE1LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21tb25zLXZhbGlkYXRvclxjb21tb25zLXZhbGlkYXRvclwxLjdcY29tbW9ucy12YWxpZGF0b3ItMS43LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21tb25zLWJlYW51dGlsc1xjb21tb25zLWJlYW51dGlsc1wxLjkuNFxjb21tb25zLWJlYW51dGlscy0xLjkuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1kaWdlc3Rlclxjb21tb25zLWRpZ2VzdGVyXDIuMVxjb21tb25zLWRpZ2VzdGVyLTIuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1sb2dnaW5nXGNvbW1vbnMtbG9nZ2luZ1wxLjJcY29tbW9ucy1sb2dnaW5nLTEuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1jb2xsZWN0aW9uc1xjb21tb25zLWNvbGxlY3Rpb25zXDMuMi4yXGNvbW1vbnMtY29sbGVjdGlvbnMtMy4yLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcY29tbW9uc1xjb21tb25zLWxhbmczXDMuMTIuMFxjb21tb25zLWxhbmczLTMuMTIuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxjb21tb25zXGNvbW1vbnMtdGV4dFwxLjEwLjBcY29tbW9ucy10ZXh0LTEuMTAuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxjb21tb25zXGNvbW1vbnMtY29tcHJlc3NcMS4yMlxjb21tb25zLWNvbXByZXNzLTEuMjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqZXRicmFpbnNcYW5ub3RhdGlvbnNcMjMuMS4wXGFubm90YXRpb25zLTIzLjEuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxndWF2YVxndWF2YVwzMS4xLWpyZVxndWF2YS0zMS4xLWpyZS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxndWF2YVxmYWlsdXJlYWNjZXNzXDEuMC4xXGZhaWx1cmVhY2Nlc3MtMS4wLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVcZ3VhdmFcbGlzdGVuYWJsZWZ1dHVyZVw5OTk5LjAtZW1wdHktdG8tYXZvaWQtY29uZmxpY3Qtd2l0aC1ndWF2YVxsaXN0ZW5hYmxlZnV0dXJlLTk5OTkuMC1lbXB0eS10by1hdm9pZC1jb25mbGljdC13aXRoLWd1YXZhLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZ29vZ2xlXGNvZGVcZmluZGJ1Z3NcanNyMzA1XDMuMC4yXGpzcjMwNS0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGNoZWNrZXJmcmFtZXdvcmtcY2hlY2tlci1xdWFsXDMuMTIuMFxjaGVja2VyLXF1YWwtMy4xMi4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZ29vZ2xlXGVycm9ycHJvbmVcZXJyb3JfcHJvbmVfYW5ub3RhdGlvbnNcMi4xMS4wXGVycm9yX3Byb25lX2Fubm90YXRpb25zLTIuMTEuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxqMm9iamNcajJvYmpjLWFubm90YXRpb25zXDEuM1xqMm9iamMtYW5ub3RhdGlvbnMtMS4zLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxhdFxmYXZyZVxsaWJcYmNyeXB0XDAuOS4wXGJjcnlwdC0wLjkuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcYXRcZmF2cmVcbGliXGJ5dGVzXDEuMy4wXGJ5dGVzLTEuMy4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21ca29uZ2hxXHVuaXJlc3QtamF2YVwzLjE0LjFcdW5pcmVzdC1qYXZhLTMuMTQuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxodHRwY29tcG9uZW50c1xodHRwY2xpZW50XDQuNS4xNFxodHRwY2xpZW50LTQuNS4xNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxodHRwY29tcG9uZW50c1xodHRwY29yZVw0LjQuMTZcaHR0cGNvcmUtNC40LjE2LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGh0dHBjb21wb25lbnRzXGh0dHBtaW1lXDQuNS4xNFxodHRwbWltZS00LjUuMTQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcaHR0cGNvbXBvbmVudHNcaHR0cGNvcmUtbmlvXDQuNC4xNlxodHRwY29yZS1uaW8tNC40LjE2LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGh0dHBjb21wb25lbnRzXGh0dHBhc3luY2NsaWVudFw0LjEuNVxodHRwYXN5bmNjbGllbnQtNC4xLjUuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVcY29kZVxnc29uXGdzb25cMi45LjFcZ3Nvbi0yLjkuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcbWVcdG9uZ2ZlaVxwcm9ncmVzc2JhclwwLjkuNVxwcm9ncmVzc2Jhci0wLjkuNS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGpsaW5lXGpsaW5lXDMuMjEuMFxqbGluZS0zLjIxLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxkYW1wY2FrZVxiZW5jb2RlXDEuNFxiZW5jb2RlLTEuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXG15c3FsXG15c3FsLWNvbm5lY3Rvci1qXDguMC4zMlxteXNxbC1jb25uZWN0b3Itai04LjAuMzIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxoMmRhdGFiYXNlXGgyXDIuMS4yMTRcaDItMi4xLjIxNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHByb2plY3Rsb21ib2tcbG9tYm9rXDEuMTguMjRcbG9tYm9rLTEuMTguMjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1kZXZ0b29sc1wzLjAuMlxzcHJpbmctYm9vdC1kZXZ0b29scy0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290XDMuMC4yXHNwcmluZy1ib290LTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3QtYXV0b2NvbmZpZ3VyZVwzLjAuMlxzcHJpbmctYm9vdC1hdXRvY29uZmlndXJlLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci10ZXN0XDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItdGVzdC0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXRlc3RcMy4wLjJcc3ByaW5nLWJvb3QtdGVzdC0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXRlc3QtYXV0b2NvbmZpZ3VyZVwzLjAuMlxzcHJpbmctYm9vdC10ZXN0LWF1dG9jb25maWd1cmUtMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxqYXl3YXlcanNvbnBhdGhcanNvbi1wYXRoXDIuNy4wXGpzb24tcGF0aC0yLjcuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcbmV0XG1pbmlkZXZcanNvbi1zbWFydFwyLjQuOFxqc29uLXNtYXJ0LTIuNC44LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxuZXRcbWluaWRldlxhY2Nlc3NvcnMtc21hcnRcMi40LjhcYWNjZXNzb3JzLXNtYXJ0LTIuNC44LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcb3cyXGFzbVxhc21cOS4xXGFzbS05LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGpha2FydGFceG1sXGJpbmRcamFrYXJ0YS54bWwuYmluZC1hcGlcNC4wLjBcamFrYXJ0YS54bWwuYmluZC1hcGktNC4wLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhc3NlcnRqXGFzc2VydGotY29yZVwzLjIzLjFcYXNzZXJ0ai1jb3JlLTMuMjMuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGhhbWNyZXN0XGhhbWNyZXN0XDIuMlxoYW1jcmVzdC0yLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqdW5pdFxqdXBpdGVyXGp1bml0LWp1cGl0ZXJcNS45LjJcanVuaXQtanVwaXRlci01LjkuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGp1bml0XGp1cGl0ZXJcanVuaXQtanVwaXRlci1hcGlcNS45LjJcanVuaXQtanVwaXRlci1hcGktNS45LjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xvcGVudGVzdDRqXG9wZW50ZXN0NGpcMS4yLjBcb3BlbnRlc3Q0ai0xLjIuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGp1bml0XHBsYXRmb3JtXGp1bml0LXBsYXRmb3JtLWNvbW1vbnNcMS45LjJcanVuaXQtcGxhdGZvcm0tY29tbW9ucy0xLjkuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwaWd1YXJkaWFuXGFwaWd1YXJkaWFuLWFwaVwxLjEuMlxhcGlndWFyZGlhbi1hcGktMS4xLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqdW5pdFxqdXBpdGVyXGp1bml0LWp1cGl0ZXItcGFyYW1zXDUuOS4yXGp1bml0LWp1cGl0ZXItcGFyYW1zLTUuOS4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcanVuaXRcanVwaXRlclxqdW5pdC1qdXBpdGVyLWVuZ2luZVw1LjkuMlxqdW5pdC1qdXBpdGVyLWVuZ2luZS01LjkuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGp1bml0XHBsYXRmb3JtXGp1bml0LXBsYXRmb3JtLWVuZ2luZVwxLjkuMlxqdW5pdC1wbGF0Zm9ybS1lbmdpbmUtMS45LjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xtb2NraXRvXG1vY2tpdG8tY29yZVw0LjguMVxtb2NraXRvLWNvcmUtNC44LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG5ldFxieXRlYnVkZHlcYnl0ZS1idWRkeS1hZ2VudFwxLjEyLjIyXGJ5dGUtYnVkZHktYWdlbnQtMS4xMi4yMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXG9iamVuZXNpc1xvYmplbmVzaXNcMy4yXG9iamVuZXNpcy0zLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xtb2NraXRvXG1vY2tpdG8tanVuaXQtanVwaXRlclw0LjguMVxtb2NraXRvLWp1bml0LWp1cGl0ZXItNC44LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xza3lzY3JlYW1lclxqc29uYXNzZXJ0XDEuNS4xXGpzb25hc3NlcnQtMS41LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVx2YWFkaW5cZXh0ZXJuYWxcZ29vZ2xlXGFuZHJvaWQtanNvblwwLjAuMjAxMzExMDgudmFhZGluMVxhbmRyb2lkLWpzb24tMC4wLjIwMTMxMTA4LnZhYWRpbjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWNvcmVcNi4wLjRcc3ByaW5nLWNvcmUtNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWpjbFw2LjAuNFxzcHJpbmctamNsLTYuMC40LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy10ZXN0XDYuMC40XHNwcmluZy10ZXN0LTYuMC40LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdceG1sdW5pdFx4bWx1bml0LWNvcmVcMi45LjFceG1sdW5pdC1jb3JlLTIuOS4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGphY2tzb25cZGF0YXR5cGVcamFja3Nvbi1kYXRhdHlwZS1qc3IzMTBcMi4xNC4xXGphY2tzb24tZGF0YXR5cGUtanNyMzEwLTIuMTQuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXGNvcmVcamFja3Nvbi1hbm5vdGF0aW9uc1wyLjE0LjFcamFja3Nvbi1hbm5vdGF0aW9ucy0yLjE0LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxmYXN0ZXJ4bWxcamFja3Nvblxjb3JlXGphY2tzb24tY29yZVwyLjE0LjFcamFja3Nvbi1jb3JlLTIuMTQuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHJlZGlzc29uXHJlZGlzc29uLWhpYmVybmF0ZS02XDMuMTkuM1xyZWRpc3Nvbi1oaWJlcm5hdGUtNi0zLjE5LjMuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xyZWRpc3NvblxyZWRpc3NvblwzLjE5LjNccmVkaXNzb24tMy4xOS4zLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS1jb2RlY1w0LjEuODcuRmluYWxcbmV0dHktY29kZWMtNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS1idWZmZXJcNC4xLjg3LkZpbmFsXG5ldHR5LWJ1ZmZlci00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LXJlc29sdmVyXDQuMS44Ny5GaW5hbFxuZXR0eS1yZXNvbHZlci00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LXJlc29sdmVyLWRuc1w0LjEuODcuRmluYWxcbmV0dHktcmVzb2x2ZXItZG5zLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktY29kZWMtZG5zXDQuMS44Ny5GaW5hbFxuZXR0eS1jb2RlYy1kbnMtNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxqYXZheFxjYWNoZVxjYWNoZS1hcGlcMS4xLjFcY2FjaGUtYXBpLTEuMS4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdccmVhY3RpdmVzdHJlYW1zXHJlYWN0aXZlLXN0cmVhbXNcMS4wLjRccmVhY3RpdmUtc3RyZWFtcy0xLjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcaW9ccmVhY3RpdmV4XHJ4amF2YTNccnhqYXZhXDMuMS42XHJ4amF2YS0zLjEuNi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGpib3NzXG1hcnNoYWxsaW5nXGpib3NzLW1hcnNoYWxsaW5nXDIuMC4xMS5GaW5hbFxqYm9zcy1tYXJzaGFsbGluZy0yLjAuMTEuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqYm9zc1xtYXJzaGFsbGluZ1xqYm9zcy1tYXJzaGFsbGluZy1yaXZlclwyLjAuMTEuRmluYWxcamJvc3MtbWFyc2hhbGxpbmctcml2ZXItMi4wLjExLkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZXNvdGVyaWNzb2Z0d2FyZVxrcnlvXDUuNC4wXGtyeW8tNS40LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxlc290ZXJpY3NvZnR3YXJlXHJlZmxlY3Rhc21cMS4xMS45XHJlZmxlY3Rhc20tMS4xMS45LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZXNvdGVyaWNzb2Z0d2FyZVxtaW5sb2dcMS4zLjFcbWlubG9nLTEuMy4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGphY2tzb25cZGF0YWZvcm1hdFxqYWNrc29uLWRhdGFmb3JtYXQteWFtbFwyLjE0LjFcamFja3Nvbi1kYXRhZm9ybWF0LXlhbWwtMi4xNC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcam9kZFxqb2RkLWJlYW5cNS4xLjZcam9kZC1iZWFuLTUuMS42LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcam9kZFxqb2RkLWNvcmVcNS4xLjZcam9kZC1jb3JlLTUuMS42LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZ29vZ2xlY29kZVxvd2FzcC1qYXZhLWh0bWwtc2FuaXRpemVyXG93YXNwLWphdmEtaHRtbC1zYW5pdGl6ZXJcMjAyMjA2MDguMVxvd2FzcC1qYXZhLWh0bWwtc2FuaXRpemVyLTIwMjIwNjA4LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcY29tbW9uc1xjb21tb25zLXBvb2wyXDIuMTEuMVxjb21tb25zLXBvb2wyLTIuMTEuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXHJvbWV0b29sc1xyb21lXDEuMTguMFxyb21lLTEuMTguMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXHJvbWV0b29sc1xyb21lLXV0aWxzXDEuMTguMFxyb21lLXV0aWxzLTEuMTguMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGpkb21camRvbTJcMi4wLjYuMVxqZG9tMi0yLjAuNi4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc2xmNGpcc2xmNGotYXBpXDIuMC42XHNsZjRqLWFwaS0yLjAuNi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLXN0YXJ0ZXItcmVkaXNcMi43LjNcamV0Y2FjaGUtc3RhcnRlci1yZWRpcy0yLjcuMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLWF1dG9jb25maWd1cmVcMi43LjNcamV0Y2FjaGUtYXV0b2NvbmZpZ3VyZS0yLjcuMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLWFubm9cMi43LjNcamV0Y2FjaGUtYW5uby0yLjcuMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLWNvcmVcMi43LjNcamV0Y2FjaGUtY29yZS0yLjcuMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLWFubm8tYXBpXDIuNy4zXGpldGNhY2hlLWFubm8tYXBpLTIuNy4zLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cYWxpYmFiYVxmYXN0anNvbjJcZmFzdGpzb24yXDIuMC4yMVxmYXN0anNvbjItMi4wLjIxLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZ2l0aHViXGJlbi1tYW5lc1xjYWZmZWluZVxjYWZmZWluZVwzLjEuMlxjYWZmZWluZS0zLjEuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcamF2YXhcYW5ub3RhdGlvblxqYXZheC5hbm5vdGF0aW9uLWFwaVwxLjMuMVxqYXZheC5hbm5vdGF0aW9uLWFwaS0xLjMuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLXJlZGlzXDIuNy4zXGpldGNhY2hlLXJlZGlzLTIuNy4zLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxyZWRpc1xjbGllbnRzXGplZGlzXDQuMy4xXGplZGlzLTQuMy4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcanNvblxqc29uXDIwMjIwMzIwXGpzb24tMjAyMjAzMjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xncmVlbnJvYm90XGV2ZW50YnVzLWphdmFcMy4zLjFcZXZlbnRidXMtamF2YS0zLjMuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItd2Vic29ja2V0XDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItd2Vic29ja2V0LTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1tZXNzYWdpbmdcNi4wLjRcc3ByaW5nLW1lc3NhZ2luZy02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctd2Vic29ja2V0XDYuMC40XHNwcmluZy13ZWJzb2NrZXQtNi4wLjQuamFyOyIvPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iamF2YS52bS52ZW5kb3IiIHZhbHVlPSJPcmFjbGUgQ29ycG9yYXRpb24iLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9InN1bi5hcmNoLmRhdGEubW9kZWwiIHZhbHVlPSI2NCIvPg0KICAgICA8cHJvcGVydHkgbmFtZT0idXNlci52YXJpYW50IiB2YWx1ZT0iIi8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZlbmRvci51cmwiIHZhbHVlPSJodHRwczovL3d3dy5taWNyb3NvZnQuY29tIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZlbmRvci51cmwiIHZhbHVlPSJodHRwczovL2phdmEub3JhY2xlLmNvbS8iLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9InVzZXIudGltZXpvbmUiIHZhbHVlPSJBc2lhL1NoYW5naGFpIi8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJvcy5uYW1lIiB2YWx1ZT0iV2luZG93cyAxMSIvPg0KICAgICA8cHJvcGVydHkgbmFtZT0iamF2YS52bS5zcGVjaWZpY2F0aW9uLnZlcnNpb24iIHZhbHVlPSIxNyIvPg0KICAgICA8cHJvcGVydHkgbmFtZT0ic3VuLmphdmEubGF1bmNoZXIiIHZhbHVlPSJTVU5fU1RBTkRBUkQiLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9InVzZXIuY291bnRyeSIgdmFsdWU9IkNOIi8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJzdW4uYm9vdC5saWJyYXJ5LnBhdGgiIHZhbHVlPSJDOlxVc2Vyc1zlvKDlrrbosapcLmpka3NcbXMtMTcuMC4xNVxiaW4iLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9InN1bi5qYXZhLmNvbW1hbmQiIHZhbHVlPSJDOlxXSU5ET1dTXFRFTVBcc3VyZWZpcmUxMzc3NzU3NTk3NTQ5NDc0MzU1NlxzdXJlZmlyZWJvb3RlcjE0NjAwMzM0ODI0NDk1MDMyOTM2LmphciBDOlxXaW5kb3dzXFRlbXBcc3VyZWZpcmUxMzc3NzU3NTk3NTQ5NDc0MzU1NiAyMDI1LTA2LTA2VDE2LTQxLTMzXzY3OC1qdm1SdW4xIHN1cmVmaXJlMjU0ODg1ODkzNTU1ODgyOTc5MnRtcCBzdXJlZmlyZV8wMTQ4NTE3NTMwNzkxMDU0NDUwNDN0bXAiLz4NCisgICAgPHByb3BlcnR5IG5hbWU9InN1bi5ib290LmxpYnJhcnkucGF0aCIgdmFsdWU9IkM6XFByb2dyYW0gRmlsZXNcSmF2YVxqZGstMTdcYmluIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJzdW4uamF2YS5jb21tYW5kIiB2YWx1ZT0iQzpcVXNlcnNcNzUwMDFcQXBwRGF0YVxMb2NhbFxUZW1wXHN1cmVmaXJlMzAzMDQyODM5MzA3NzMxMDA3NFxzdXJlZmlyZWJvb3Rlcjk0NzIxODU2MDE2MzEyMDIzMjIuamFyIEM6XFVzZXJzXDc1MDAxXEFwcERhdGFcTG9jYWxcVGVtcFxzdXJlZmlyZTMwMzA0MjgzOTMwNzczMTAwNzQgMjAyNS0wNi0wNlQxMC01MC00M18wNDItanZtUnVuMSBzdXJlZmlyZTgxNTM2Nzg2NDIyOTI0NDE5MTN0bXAgc3VyZWZpcmVfMDE3NzA0MTQxOTkzNDE5OTc3MzIydG1wIi8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJqZGsuZGVidWciIHZhbHVlPSJyZWxlYXNlIi8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJzdXJlZmlyZS50ZXN0LmNsYXNzLnBhdGgiIHZhbHVlPSJFOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcdGFyZ2V0XHRlc3QtY2xhc3NlcztFOlxkZXNrdG9wXEVYXDA2MDZCXFBUX1NpeHRoX0JhY2tlbmRcdGFyZ2V0XGNsYXNzZXM7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLWNhY2hlXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItY2FjaGUtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlclwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItbG9nZ2luZ1wzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWxvZ2dpbmctMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjaFxxb3NcbG9nYmFja1xsb2diYWNrLWNsYXNzaWNcMS40LjVcbG9nYmFjay1jbGFzc2ljLTEuNC41LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY2hccW9zXGxvZ2JhY2tcbG9nYmFjay1jb3JlXDEuNC41XGxvZ2JhY2stY29yZS0xLjQuNS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcbG9nZ2luZ1xsb2c0alxsb2c0ai10by1zbGY0alwyLjE5LjBcbG9nNGotdG8tc2xmNGotMi4xOS4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxsb2dnaW5nXGxvZzRqXGxvZzRqLWFwaVwyLjE5LjBcbG9nNGotYXBpLTIuMTkuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzbGY0alxqdWwtdG8tc2xmNGpcMi4wLjZcanVsLXRvLXNsZjRqLTIuMC42LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHlhbWxcc25ha2V5YW1sXDEuMzNcc25ha2V5YW1sLTEuMzMuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1jb250ZXh0LXN1cHBvcnRcNi4wLjRcc3ByaW5nLWNvbnRleHQtc3VwcG9ydC02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWJlYW5zXDYuMC40XHNwcmluZy1iZWFucy02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWNvbnRleHRcNi4wLjRcc3ByaW5nLWNvbnRleHQtNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1kYXRhLXJlZGlzXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItZGF0YS1yZWRpcy0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcZGF0YVxzcHJpbmctZGF0YS1yZWRpc1wzLjAuMVxzcHJpbmctZGF0YS1yZWRpcy0zLjAuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcZGF0YVxzcHJpbmctZGF0YS1rZXl2YWx1ZVwzLjAuMVxzcHJpbmctZGF0YS1rZXl2YWx1ZS0zLjAuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLW94bVw2LjAuNFxzcHJpbmctb3htLTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctYW9wXDYuMC40XHNwcmluZy1hb3AtNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xsZXR0dWNlXGxldHR1Y2UtY29yZVw2LjIuMi5SRUxFQVNFXGxldHR1Y2UtY29yZS02LjIuMi5SRUxFQVNFLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktY29tbW9uXDQuMS44Ny5GaW5hbFxuZXR0eS1jb21tb24tNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktaGFuZGxlclw0LjEuODcuRmluYWxcbmV0dHktaGFuZGxlci00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS10cmFuc3BvcnQtbmF0aXZlLXVuaXgtY29tbW9uXDQuMS44Ny5GaW5hbFxuZXR0eS10cmFuc3BvcnQtbmF0aXZlLXVuaXgtY29tbW9uLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LXRyYW5zcG9ydFw0LjEuODcuRmluYWxcbmV0dHktdHJhbnNwb3J0LTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXHByb2plY3RyZWFjdG9yXHJlYWN0b3ItY29yZVwzLjUuMlxyZWFjdG9yLWNvcmUtMy41LjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1kYXRhLWpwYVwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtanBhLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItYW9wXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItYW9wLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFzcGVjdGpcYXNwZWN0andlYXZlclwxLjkuMTlcYXNwZWN0andlYXZlci0xLjkuMTkuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1qZGJjXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItamRiYy0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVx6YXh4ZXJcSGlrYXJpQ1BcNS4wLjFcSGlrYXJpQ1AtNS4wLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1qZGJjXDYuMC40XHNwcmluZy1qZGJjLTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGhpYmVybmF0ZVxvcm1caGliZXJuYXRlLWNvcmVcNi4xLjYuRmluYWxcaGliZXJuYXRlLWNvcmUtNi4xLjYuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxqYWthcnRhXHBlcnNpc3RlbmNlXGpha2FydGEucGVyc2lzdGVuY2UtYXBpXDMuMS4wXGpha2FydGEucGVyc2lzdGVuY2UtYXBpLTMuMS4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVx0cmFuc2FjdGlvblxqYWthcnRhLnRyYW5zYWN0aW9uLWFwaVwyLjAuMVxqYWthcnRhLnRyYW5zYWN0aW9uLWFwaS0yLjAuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xqYm9zc1xsb2dnaW5nXGpib3NzLWxvZ2dpbmdcMy41LjAuRmluYWxcamJvc3MtbG9nZ2luZy0zLjUuMC5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xoaWJlcm5hdGVcY29tbW9uXGhpYmVybmF0ZS1jb21tb25zLWFubm90YXRpb25zXDYuMC4yLkZpbmFsXGhpYmVybmF0ZS1jb21tb25zLWFubm90YXRpb25zLTYuMC4yLkZpbmFsLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGpib3NzXGphbmRleFwyLjQuMi5GaW5hbFxqYW5kZXgtMi40LjIuRmluYWwuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGNsYXNzbWF0ZVwxLjUuMVxjbGFzc21hdGUtMS41LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxuZXRcYnl0ZWJ1ZGR5XGJ5dGUtYnVkZHlcMS4xMi4yMlxieXRlLWJ1ZGR5LTEuMTIuMjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcZ2xhc3NmaXNoXGpheGJcamF4Yi1ydW50aW1lXDQuMC4xXGpheGItcnVudGltZS00LjAuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xnbGFzc2Zpc2hcamF4YlxqYXhiLWNvcmVcNC4wLjFcamF4Yi1jb3JlLTQuMC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGdsYXNzZmlzaFxqYXhiXHR4dzJcNC4wLjFcdHh3Mi00LjAuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxzdW5caXN0YWNrXGlzdGFjay1jb21tb25zLXJ1bnRpbWVcNC4xLjFcaXN0YWNrLWNvbW1vbnMtcnVudGltZS00LjEuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGpha2FydGFcaW5qZWN0XGpha2FydGEuaW5qZWN0LWFwaVwyLjAuMFxqYWthcnRhLmluamVjdC1hcGktMi4wLjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcYW50bHJcYW50bHI0LXJ1bnRpbWVcNC4xMC4xXGFudGxyNC1ydW50aW1lLTQuMTAuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcZGF0YVxzcHJpbmctZGF0YS1qcGFcMy4wLjFcc3ByaW5nLWRhdGEtanBhLTMuMC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xkYXRhXHNwcmluZy1kYXRhLWNvbW1vbnNcMy4wLjFcc3ByaW5nLWRhdGEtY29tbW9ucy0zLjAuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLW9ybVw2LjAuNFxzcHJpbmctb3JtLTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctYXNwZWN0c1w2LjAuNFxzcHJpbmctYXNwZWN0cy02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLW1haWxcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1tYWlsLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGVjbGlwc2VcYW5ndXNcamFrYXJ0YS5tYWlsXDEuMC4wXGpha2FydGEubWFpbC0xLjAuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGpha2FydGFcYWN0aXZhdGlvblxqYWthcnRhLmFjdGl2YXRpb24tYXBpXDIuMS4xXGpha2FydGEuYWN0aXZhdGlvbi1hcGktMi4xLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcZWNsaXBzZVxhbmd1c1xhbmd1cy1hY3RpdmF0aW9uXDEuMC4wXGFuZ3VzLWFjdGl2YXRpb24tMS4wLjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1xdWFydHpcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1xdWFydHotMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy10eFw2LjAuNFxzcHJpbmctdHgtNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdccXVhcnR6LXNjaGVkdWxlclxxdWFydHpcMi4zLjJccXVhcnR6LTIuMy4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXG1jaGFuZ2VcbWNoYW5nZS1jb21tb25zLWphdmFcMC4yLjE1XG1jaGFuZ2UtY29tbW9ucy1qYXZhLTAuMi4xNS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLXZhbGlkYXRpb25cMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci12YWxpZGF0aW9uLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVx0b21jYXRcZW1iZWRcdG9tY2F0LWVtYmVkLWVsXDEwLjEuNVx0b21jYXQtZW1iZWQtZWwtMTAuMS41LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGhpYmVybmF0ZVx2YWxpZGF0b3JcaGliZXJuYXRlLXZhbGlkYXRvclw4LjAuMC5GaW5hbFxoaWJlcm5hdGUtdmFsaWRhdG9yLTguMC4wLkZpbmFsLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVx2YWxpZGF0aW9uXGpha2FydGEudmFsaWRhdGlvbi1hcGlcMy4wLjJcamFrYXJ0YS52YWxpZGF0aW9uLWFwaS0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNuXGRldjMzXHNhLXRva2VuLXNwcmluZy1ib290My1zdGFydGVyXDEuMzQuMFxzYS10b2tlbi1zcHJpbmctYm9vdDMtc3RhcnRlci0xLjM0LjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjblxkZXYzM1xzYS10b2tlbi1qYWthcnRhLXNlcnZsZXRcMS4zNC4wXHNhLXRva2VuLWpha2FydGEtc2VydmxldC0xLjM0LjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxqYWthcnRhXHNlcnZsZXRcamFrYXJ0YS5zZXJ2bGV0LWFwaVw2LjAuMFxqYWthcnRhLnNlcnZsZXQtYXBpLTYuMC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY25cZGV2MzNcc2EtdG9rZW4tc3ByaW5nLWJvb3QtYXV0b2NvbmZpZ1wxLjM0LjBcc2EtdG9rZW4tc3ByaW5nLWJvb3QtYXV0b2NvbmZpZy0xLjM0LjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjblxkZXYzM1xzYS10b2tlbi1kYW8tcmVkaXMtamFja3NvblwxLjM0LjBcc2EtdG9rZW4tZGFvLXJlZGlzLWphY2tzb24tMS4zNC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY25cZGV2MzNcc2EtdG9rZW4tY29yZVwxLjM0LjBcc2EtdG9rZW4tY29yZS0xLjM0LjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci13ZWJcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci13ZWItMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy13ZWJcNi4wLjRcc3ByaW5nLXdlYi02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXG1pY3JvbWV0ZXJcbWljcm9tZXRlci1vYnNlcnZhdGlvblwxLjEwLjNcbWljcm9tZXRlci1vYnNlcnZhdGlvbi0xLjEwLjMuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xtaWNyb21ldGVyXG1pY3JvbWV0ZXItY29tbW9uc1wxLjEwLjNcbWljcm9tZXRlci1jb21tb25zLTEuMTAuMy5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLXdlYm12Y1w2LjAuNFxzcHJpbmctd2VibXZjLTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctZXhwcmVzc2lvblw2LjAuNFxzcHJpbmctZXhwcmVzc2lvbi02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLWpzb25cMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1qc29uLTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXGNvcmVcamFja3Nvbi1kYXRhYmluZFwyLjE0LjFcamFja3Nvbi1kYXRhYmluZC0yLjE0LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGphY2tzb25cZGF0YXR5cGVcamFja3Nvbi1kYXRhdHlwZS1qZGs4XDIuMTQuMVxqYWNrc29uLWRhdGF0eXBlLWpkazgtMi4xNC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXG1vZHVsZVxqYWNrc29uLW1vZHVsZS1wYXJhbWV0ZXItbmFtZXNcMi4xNC4xXGphY2tzb24tbW9kdWxlLXBhcmFtZXRlci1uYW1lcy0yLjE0LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci10b21jYXRcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci10b21jYXQtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxqYWthcnRhXGFubm90YXRpb25camFrYXJ0YS5hbm5vdGF0aW9uLWFwaVwyLjEuMVxqYWthcnRhLmFubm90YXRpb24tYXBpLTIuMS4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVx0b21jYXRcZW1iZWRcdG9tY2F0LWVtYmVkLWNvcmVcMTAuMS41XHRvbWNhdC1lbWJlZC1jb3JlLTEwLjEuNS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcdG9tY2F0XGVtYmVkXHRvbWNhdC1lbWJlZC13ZWJzb2NrZXRcMTAuMS41XHRvbWNhdC1lbWJlZC13ZWJzb2NrZXQtMTAuMS41LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1pb1xjb21tb25zLWlvXDIuMTEuMFxjb21tb25zLWlvLTIuMTEuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtY29kZWNcY29tbW9ucy1jb2RlY1wxLjE1XGNvbW1vbnMtY29kZWMtMS4xNS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtdmFsaWRhdG9yXGNvbW1vbnMtdmFsaWRhdG9yXDEuN1xjb21tb25zLXZhbGlkYXRvci0xLjcuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21tb25zLWJlYW51dGlsc1xjb21tb25zLWJlYW51dGlsc1wxLjkuNFxjb21tb25zLWJlYW51dGlscy0xLjkuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtZGlnZXN0ZXJcY29tbW9ucy1kaWdlc3RlclwyLjFcY29tbW9ucy1kaWdlc3Rlci0yLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21tb25zLWxvZ2dpbmdcY29tbW9ucy1sb2dnaW5nXDEuMlxjb21tb25zLWxvZ2dpbmctMS4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1jb2xsZWN0aW9uc1xjb21tb25zLWNvbGxlY3Rpb25zXDMuMi4yXGNvbW1vbnMtY29sbGVjdGlvbnMtMy4yLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGNvbW1vbnNcY29tbW9ucy1sYW5nM1wzLjEyLjBcY29tbW9ucy1sYW5nMy0zLjEyLjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGNvbW1vbnNcY29tbW9ucy10ZXh0XDEuMTAuMFxjb21tb25zLXRleHQtMS4xMC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxjb21tb25zXGNvbW1vbnMtY29tcHJlc3NcMS4yMlxjb21tb25zLWNvbXByZXNzLTEuMjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcamV0YnJhaW5zXGFubm90YXRpb25zXDIzLjEuMFxhbm5vdGF0aW9ucy0yMy4xLjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cZ29vZ2xlXGd1YXZhXGd1YXZhXDMxLjEtanJlXGd1YXZhLTMxLjEtanJlLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxndWF2YVxmYWlsdXJlYWNjZXNzXDEuMC4xXGZhaWx1cmVhY2Nlc3MtMS4wLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cZ29vZ2xlXGd1YXZhXGxpc3RlbmFibGVmdXR1cmVcOTk5OS4wLWVtcHR5LXRvLWF2b2lkLWNvbmZsaWN0LXdpdGgtZ3VhdmFcbGlzdGVuYWJsZWZ1dHVyZS05OTk5LjAtZW1wdHktdG8tYXZvaWQtY29uZmxpY3Qtd2l0aC1ndWF2YS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVcY29kZVxmaW5kYnVnc1xqc3IzMDVcMy4wLjJcanNyMzA1LTMuMC4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGNoZWNrZXJmcmFtZXdvcmtcY2hlY2tlci1xdWFsXDMuMTIuMFxjaGVja2VyLXF1YWwtMy4xMi4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxlcnJvcnByb25lXGVycm9yX3Byb25lX2Fubm90YXRpb25zXDIuMTEuMFxlcnJvcl9wcm9uZV9hbm5vdGF0aW9ucy0yLjExLjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cZ29vZ2xlXGoyb2JqY1xqMm9iamMtYW5ub3RhdGlvbnNcMS4zXGoyb2JqYy1hbm5vdGF0aW9ucy0xLjMuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxhdFxmYXZyZVxsaWJcYmNyeXB0XDAuOS4wXGJjcnlwdC0wLjkuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGF0XGZhdnJlXGxpYlxieXRlc1wxLjMuMFxieXRlcy0xLjMuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxrb25naHFcdW5pcmVzdC1qYXZhXDMuMTQuMVx1bmlyZXN0LWphdmEtMy4xNC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxodHRwY29tcG9uZW50c1xodHRwY2xpZW50XDQuNS4xNFxodHRwY2xpZW50LTQuNS4xNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcaHR0cGNvbXBvbmVudHNcaHR0cGNvcmVcNC40LjE2XGh0dHBjb3JlLTQuNC4xNi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcaHR0cGNvbXBvbmVudHNcaHR0cG1pbWVcNC41LjE0XGh0dHBtaW1lLTQuNS4xNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcaHR0cGNvbXBvbmVudHNcaHR0cGNvcmUtbmlvXDQuNC4xNlxodHRwY29yZS1uaW8tNC40LjE2LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxodHRwY29tcG9uZW50c1xodHRwYXN5bmNjbGllbnRcNC4xLjVcaHR0cGFzeW5jY2xpZW50LTQuMS41LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxjb2RlXGdzb25cZ3NvblwyLjkuMVxnc29uLTIuOS4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcbWVcdG9uZ2ZlaVxwcm9ncmVzc2JhclwwLjkuNVxwcm9ncmVzc2Jhci0wLjkuNS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xqbGluZVxqbGluZVwzLjIxLjBcamxpbmUtMy4yMS4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGRhbXBjYWtlXGJlbmNvZGVcMS40XGJlbmNvZGUtMS40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXG15c3FsXG15c3FsLWNvbm5lY3Rvci1qXDguMC4zMlxteXNxbC1jb25uZWN0b3Itai04LjAuMzIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21caDJkYXRhYmFzZVxoMlwyLjEuMjE0XGgyLTIuMS4yMTQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdccHJvamVjdGxvbWJva1xsb21ib2tcMS4xOC4yNFxsb21ib2stMS4xOC4yNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1kZXZ0b29sc1wzLjAuMlxzcHJpbmctYm9vdC1kZXZ0b29scy0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdFwzLjAuMlxzcHJpbmctYm9vdC0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1hdXRvY29uZmlndXJlXDMuMC4yXHNwcmluZy1ib290LWF1dG9jb25maWd1cmUtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci10ZXN0XDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItdGVzdC0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC10ZXN0XDMuMC4yXHNwcmluZy1ib290LXRlc3QtMy4wLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3QtdGVzdC1hdXRvY29uZmlndXJlXDMuMC4yXHNwcmluZy1ib290LXRlc3QtYXV0b2NvbmZpZ3VyZS0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxqYXl3YXlcanNvbnBhdGhcanNvbi1wYXRoXDIuNy4wXGpzb24tcGF0aC0yLjcuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG5ldFxtaW5pZGV2XGpzb24tc21hcnRcMi40LjhcanNvbi1zbWFydC0yLjQuOC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG5ldFxtaW5pZGV2XGFjY2Vzc29ycy1zbWFydFwyLjQuOFxhY2Nlc3NvcnMtc21hcnQtMi40LjguamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcb3cyXGFzbVxhc21cOS4xXGFzbS05LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxqYWthcnRhXHhtbFxiaW5kXGpha2FydGEueG1sLmJpbmQtYXBpXDQuMC4wXGpha2FydGEueG1sLmJpbmQtYXBpLTQuMC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFzc2VydGpcYXNzZXJ0ai1jb3JlXDMuMjMuMVxhc3NlcnRqLWNvcmUtMy4yMy4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGhhbWNyZXN0XGhhbWNyZXN0XDIuMlxoYW1jcmVzdC0yLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcanVuaXRcanVwaXRlclxqdW5pdC1qdXBpdGVyXDUuOS4yXGp1bml0LWp1cGl0ZXItNS45LjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcanVuaXRcanVwaXRlclxqdW5pdC1qdXBpdGVyLWFwaVw1LjkuMlxqdW5pdC1qdXBpdGVyLWFwaS01LjkuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xvcGVudGVzdDRqXG9wZW50ZXN0NGpcMS4yLjBcb3BlbnRlc3Q0ai0xLjIuMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xqdW5pdFxwbGF0Zm9ybVxqdW5pdC1wbGF0Zm9ybS1jb21tb25zXDEuOS4yXGp1bml0LXBsYXRmb3JtLWNvbW1vbnMtMS45LjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcYXBpZ3VhcmRpYW5cYXBpZ3VhcmRpYW4tYXBpXDEuMS4yXGFwaWd1YXJkaWFuLWFwaS0xLjEuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xqdW5pdFxqdXBpdGVyXGp1bml0LWp1cGl0ZXItcGFyYW1zXDUuOS4yXGp1bml0LWp1cGl0ZXItcGFyYW1zLTUuOS4yLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGp1bml0XGp1cGl0ZXJcanVuaXQtanVwaXRlci1lbmdpbmVcNS45LjJcanVuaXQtanVwaXRlci1lbmdpbmUtNS45LjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcanVuaXRccGxhdGZvcm1canVuaXQtcGxhdGZvcm0tZW5naW5lXDEuOS4yXGp1bml0LXBsYXRmb3JtLWVuZ2luZS0xLjkuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xtb2NraXRvXG1vY2tpdG8tY29yZVw0LjguMVxtb2NraXRvLWNvcmUtNC44LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxuZXRcYnl0ZWJ1ZGR5XGJ5dGUtYnVkZHktYWdlbnRcMS4xMi4yMlxieXRlLWJ1ZGR5LWFnZW50LTEuMTIuMjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcb2JqZW5lc2lzXG9iamVuZXNpc1wzLjJcb2JqZW5lc2lzLTMuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xtb2NraXRvXG1vY2tpdG8tanVuaXQtanVwaXRlclw0LjguMVxtb2NraXRvLWp1bml0LWp1cGl0ZXItNC44LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc2t5c2NyZWFtZXJcanNvbmFzc2VydFwxLjUuMVxqc29uYXNzZXJ0LTEuNS4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXHZhYWRpblxleHRlcm5hbFxnb29nbGVcYW5kcm9pZC1qc29uXDAuMC4yMDEzMTEwOC52YWFkaW4xXGFuZHJvaWQtanNvbi0wLjAuMjAxMzExMDgudmFhZGluMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWNvcmVcNi4wLjRcc3ByaW5nLWNvcmUtNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1qY2xcNi4wLjRcc3ByaW5nLWpjbC02LjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLXRlc3RcNi4wLjRcc3ByaW5nLXRlc3QtNi4wLjQuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdceG1sdW5pdFx4bWx1bml0LWNvcmVcMi45LjFceG1sdW5pdC1jb3JlLTIuOS4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXGRhdGF0eXBlXGphY2tzb24tZGF0YXR5cGUtanNyMzEwXDIuMTQuMVxqYWNrc29uLWRhdGF0eXBlLWpzcjMxMC0yLjE0LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGphY2tzb25cY29yZVxqYWNrc29uLWFubm90YXRpb25zXDIuMTQuMVxqYWNrc29uLWFubm90YXRpb25zLTIuMTQuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxmYXN0ZXJ4bWxcamFja3Nvblxjb3JlXGphY2tzb24tY29yZVwyLjE0LjFcamFja3Nvbi1jb3JlLTIuMTQuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xyZWRpc3NvblxyZWRpc3Nvbi1oaWJlcm5hdGUtNlwzLjE5LjNccmVkaXNzb24taGliZXJuYXRlLTYtMy4xOS4zLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHJlZGlzc29uXHJlZGlzc29uXDMuMTkuM1xyZWRpc3Nvbi0zLjE5LjMuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS1jb2RlY1w0LjEuODcuRmluYWxcbmV0dHktY29kZWMtNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktYnVmZmVyXDQuMS44Ny5GaW5hbFxuZXR0eS1idWZmZXItNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktcmVzb2x2ZXJcNC4xLjg3LkZpbmFsXG5ldHR5LXJlc29sdmVyLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LXJlc29sdmVyLWRuc1w0LjEuODcuRmluYWxcbmV0dHktcmVzb2x2ZXItZG5zLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LWNvZGVjLWRuc1w0LjEuODcuRmluYWxcbmV0dHktY29kZWMtZG5zLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGphdmF4XGNhY2hlXGNhY2hlLWFwaVwxLjEuMVxjYWNoZS1hcGktMS4xLjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdccmVhY3RpdmVzdHJlYW1zXHJlYWN0aXZlLXN0cmVhbXNcMS4wLjRccmVhY3RpdmUtc3RyZWFtcy0xLjAuNC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGlvXHJlYWN0aXZleFxyeGphdmEzXHJ4amF2YVwzLjEuNlxyeGphdmEtMy4xLjYuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcamJvc3NcbWFyc2hhbGxpbmdcamJvc3MtbWFyc2hhbGxpbmdcMi4wLjExLkZpbmFsXGpib3NzLW1hcnNoYWxsaW5nLTIuMC4xMS5GaW5hbC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xqYm9zc1xtYXJzaGFsbGluZ1xqYm9zcy1tYXJzaGFsbGluZy1yaXZlclwyLjAuMTEuRmluYWxcamJvc3MtbWFyc2hhbGxpbmctcml2ZXItMi4wLjExLkZpbmFsLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGVzb3Rlcmljc29mdHdhcmVca3J5b1w1LjQuMFxrcnlvLTUuNC4wLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGVzb3Rlcmljc29mdHdhcmVccmVmbGVjdGFzbVwxLjExLjlccmVmbGVjdGFzbS0xLjExLjkuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cZXNvdGVyaWNzb2Z0d2FyZVxtaW5sb2dcMS4zLjFcbWlubG9nLTEuMy4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXGRhdGFmb3JtYXRcamFja3Nvbi1kYXRhZm9ybWF0LXlhbWxcMi4xNC4xXGphY2tzb24tZGF0YWZvcm1hdC15YW1sLTIuMTQuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xqb2RkXGpvZGQtYmVhblw1LjEuNlxqb2RkLWJlYW4tNS4xLjYuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcam9kZFxqb2RkLWNvcmVcNS4xLjZcam9kZC1jb3JlLTUuMS42LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZWNvZGVcb3dhc3AtamF2YS1odG1sLXNhbml0aXplclxvd2FzcC1qYXZhLWh0bWwtc2FuaXRpemVyXDIwMjIwNjA4LjFcb3dhc3AtamF2YS1odG1sLXNhbml0aXplci0yMDIyMDYwOC4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxjb21tb25zXGNvbW1vbnMtcG9vbDJcMi4xMS4xXGNvbW1vbnMtcG9vbDItMi4xMS4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXHJvbWV0b29sc1xyb21lXDEuMTguMFxyb21lLTEuMTguMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxyb21ldG9vbHNccm9tZS11dGlsc1wxLjE4LjBccm9tZS11dGlscy0xLjE4LjAuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcamRvbVxqZG9tMlwyLjAuNi4xXGpkb20yLTIuMC42LjEuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxvcmdcc2xmNGpcc2xmNGotYXBpXDIuMC42XHNsZjRqLWFwaS0yLjAuNi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1zdGFydGVyLXJlZGlzXDIuNy4zXGpldGNhY2hlLXN0YXJ0ZXItcmVkaXMtMi43LjMuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cYWxpY3BcamV0Y2FjaGVcamV0Y2FjaGUtYXV0b2NvbmZpZ3VyZVwyLjcuM1xqZXRjYWNoZS1hdXRvY29uZmlndXJlLTIuNy4zLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLWFubm9cMi43LjNcamV0Y2FjaGUtYW5uby0yLjcuMy5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1jb3JlXDIuNy4zXGpldGNhY2hlLWNvcmUtMi43LjMuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cYWxpY3BcamV0Y2FjaGVcamV0Y2FjaGUtYW5uby1hcGlcMi43LjNcamV0Y2FjaGUtYW5uby1hcGktMi43LjMuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxjb21cYWxpYmFiYVxmYXN0anNvbjJcZmFzdGpzb24yXDIuMC4yMVxmYXN0anNvbjItMi4wLjIxLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGdpdGh1YlxiZW4tbWFuZXNcY2FmZmVpbmVcY2FmZmVpbmVcMy4xLjJcY2FmZmVpbmUtMy4xLjIuamFyO0M6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeVxqYXZheFxhbm5vdGF0aW9uXGphdmF4LmFubm90YXRpb24tYXBpXDEuMy4xXGphdmF4LmFubm90YXRpb24tYXBpLTEuMy4xLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWNwXGpldGNhY2hlXGpldGNhY2hlLXJlZGlzXDIuNy4zXGpldGNhY2hlLXJlZGlzLTIuNy4zLmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlccmVkaXNcY2xpZW50c1xqZWRpc1w0LjMuMVxqZWRpcy00LjMuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xqc29uXGpzb25cMjAyMjAzMjBcanNvbi0yMDIyMDMyMC5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xncmVlbnJvYm90XGV2ZW50YnVzLWphdmFcMy4zLjFcZXZlbnRidXMtamF2YS0zLjMuMS5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLXdlYnNvY2tldFwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLXdlYnNvY2tldC0zLjAuMi5qYXI7QzpcVXNlcnNc5byg5a626LGqXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLW1lc3NhZ2luZ1w2LjAuNFxzcHJpbmctbWVzc2FnaW5nLTYuMC40LmphcjtDOlxVc2Vyc1zlvKDlrrbosapcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctd2Vic29ja2V0XDYuMC40XHNwcmluZy13ZWJzb2NrZXQtNi4wLjQuamFyOyIvPg0KKyAgICA8cHJvcGVydHkgbmFtZT0ic3VyZWZpcmUudGVzdC5jbGFzcy5wYXRoIiB2YWx1ZT0iQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZFx0YXJnZXRcdGVzdC1jbGFzc2VzO0M6XFVzZXJzXDc1MDAxXERlc2t0b3BcU2FwbGluZy1tYWluXFBUX1NpeHRoX0JhY2tlbmRcdGFyZ2V0XGNsYXNzZXM7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItY2FjaGVcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1jYWNoZS0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXJcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItbG9nZ2luZ1wzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWxvZ2dpbmctMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNoXHFvc1xsb2diYWNrXGxvZ2JhY2stY2xhc3NpY1wxLjQuNVxsb2diYWNrLWNsYXNzaWMtMS40LjUuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNoXHFvc1xsb2diYWNrXGxvZ2JhY2stY29yZVwxLjQuNVxsb2diYWNrLWNvcmUtMS40LjUuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcbG9nZ2luZ1xsb2c0alxsb2c0ai10by1zbGY0alwyLjE5LjBcbG9nNGotdG8tc2xmNGotMi4xOS4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGxvZ2dpbmdcbG9nNGpcbG9nNGotYXBpXDIuMTkuMFxsb2c0ai1hcGktMi4xOS4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc2xmNGpcanVsLXRvLXNsZjRqXDIuMC42XGp1bC10by1zbGY0ai0yLjAuNi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHlhbWxcc25ha2V5YW1sXDEuMzNcc25ha2V5YW1sLTEuMzMuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWNvbnRleHQtc3VwcG9ydFw2LjAuNFxzcHJpbmctY29udGV4dC1zdXBwb3J0LTYuMC40LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1iZWFuc1w2LjAuNFxzcHJpbmctYmVhbnMtNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWNvbnRleHRcNi4wLjRcc3ByaW5nLWNvbnRleHQtNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtcmVkaXNcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1kYXRhLXJlZGlzLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGRhdGFcc3ByaW5nLWRhdGEtcmVkaXNcMy4wLjFcc3ByaW5nLWRhdGEtcmVkaXMtMy4wLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcZGF0YVxzcHJpbmctZGF0YS1rZXl2YWx1ZVwzLjAuMVxzcHJpbmctZGF0YS1rZXl2YWx1ZS0zLjAuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctb3htXDYuMC40XHNwcmluZy1veG0tNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWFvcFw2LjAuNFxzcHJpbmctYW9wLTYuMC40LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xsZXR0dWNlXGxldHR1Y2UtY29yZVw2LjIuMi5SRUxFQVNFXGxldHR1Y2UtY29yZS02LjIuMi5SRUxFQVNFLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS1jb21tb25cNC4xLjg3LkZpbmFsXG5ldHR5LWNvbW1vbi00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LWhhbmRsZXJcNC4xLjg3LkZpbmFsXG5ldHR5LWhhbmRsZXItNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS10cmFuc3BvcnQtbmF0aXZlLXVuaXgtY29tbW9uXDQuMS44Ny5GaW5hbFxuZXR0eS10cmFuc3BvcnQtbmF0aXZlLXVuaXgtY29tbW9uLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktdHJhbnNwb3J0XDQuMS44Ny5GaW5hbFxuZXR0eS10cmFuc3BvcnQtNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xwcm9qZWN0cmVhY3RvclxyZWFjdG9yLWNvcmVcMy41LjJccmVhY3Rvci1jb3JlLTMuNS4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1kYXRhLWpwYVwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtanBhLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1hb3BcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1hb3AtMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhc3BlY3RqXGFzcGVjdGp3ZWF2ZXJcMS45LjE5XGFzcGVjdGp3ZWF2ZXItMS45LjE5LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci1qZGJjXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItamRiYy0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXHpheHhlclxIaWthcmlDUFw1LjAuMVxIaWthcmlDUC01LjAuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctamRiY1w2LjAuNFxzcHJpbmctamRiYy02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGhpYmVybmF0ZVxvcm1caGliZXJuYXRlLWNvcmVcNi4xLjYuRmluYWxcaGliZXJuYXRlLWNvcmUtNi4xLjYuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGpha2FydGFccGVyc2lzdGVuY2VcamFrYXJ0YS5wZXJzaXN0ZW5jZS1hcGlcMy4xLjBcamFrYXJ0YS5wZXJzaXN0ZW5jZS1hcGktMy4xLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGpha2FydGFcdHJhbnNhY3Rpb25camFrYXJ0YS50cmFuc2FjdGlvbi1hcGlcMi4wLjFcamFrYXJ0YS50cmFuc2FjdGlvbi1hcGktMi4wLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqYm9zc1xsb2dnaW5nXGpib3NzLWxvZ2dpbmdcMy41LjAuRmluYWxcamJvc3MtbG9nZ2luZy0zLjUuMC5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGhpYmVybmF0ZVxjb21tb25caGliZXJuYXRlLWNvbW1vbnMtYW5ub3RhdGlvbnNcNi4wLjIuRmluYWxcaGliZXJuYXRlLWNvbW1vbnMtYW5ub3RhdGlvbnMtNi4wLjIuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqYm9zc1xqYW5kZXhcMi40LjIuRmluYWxcamFuZGV4LTIuNC4yLkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGNsYXNzbWF0ZVwxLjUuMVxjbGFzc21hdGUtMS41LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG5ldFxieXRlYnVkZHlcYnl0ZS1idWRkeVwxLjEyLjIyXGJ5dGUtYnVkZHktMS4xMi4yMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGdsYXNzZmlzaFxqYXhiXGpheGItcnVudGltZVw0LjAuMVxqYXhiLXJ1bnRpbWUtNC4wLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xnbGFzc2Zpc2hcamF4YlxqYXhiLWNvcmVcNC4wLjFcamF4Yi1jb3JlLTQuMC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcZ2xhc3NmaXNoXGpheGJcdHh3Mlw0LjAuMVx0eHcyLTQuMC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cc3VuXGlzdGFja1xpc3RhY2stY29tbW9ucy1ydW50aW1lXDQuMS4xXGlzdGFjay1jb21tb25zLXJ1bnRpbWUtNC4xLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGpha2FydGFcaW5qZWN0XGpha2FydGEuaW5qZWN0LWFwaVwyLjAuMFxqYWthcnRhLmluamVjdC1hcGktMi4wLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhbnRsclxhbnRscjQtcnVudGltZVw0LjEwLjFcYW50bHI0LXJ1bnRpbWUtNC4xMC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGRhdGFcc3ByaW5nLWRhdGEtanBhXDMuMC4xXHNwcmluZy1kYXRhLWpwYS0zLjAuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xkYXRhXHNwcmluZy1kYXRhLWNvbW1vbnNcMy4wLjFcc3ByaW5nLWRhdGEtY29tbW9ucy0zLjAuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctb3JtXDYuMC40XHNwcmluZy1vcm0tNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWFzcGVjdHNcNi4wLjRcc3ByaW5nLWFzcGVjdHMtNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLW1haWxcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1tYWlsLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcZWNsaXBzZVxhbmd1c1xqYWthcnRhLm1haWxcMS4wLjBcamFrYXJ0YS5tYWlsLTEuMC4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxqYWthcnRhXGFjdGl2YXRpb25camFrYXJ0YS5hY3RpdmF0aW9uLWFwaVwyLjEuMVxqYWthcnRhLmFjdGl2YXRpb24tYXBpLTIuMS4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcZWNsaXBzZVxhbmd1c1xhbmd1cy1hY3RpdmF0aW9uXDEuMC4wXGFuZ3VzLWFjdGl2YXRpb24tMS4wLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLXF1YXJ0elwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLXF1YXJ0ei0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctdHhcNi4wLjRcc3ByaW5nLXR4LTYuMC40LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdccXVhcnR6LXNjaGVkdWxlclxxdWFydHpcMi4zLjJccXVhcnR6LTIuMy4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cbWNoYW5nZVxtY2hhbmdlLWNvbW1vbnMtamF2YVwwLjIuMTVcbWNoYW5nZS1jb21tb25zLWphdmEtMC4yLjE1LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci12YWxpZGF0aW9uXDMuMC4yXHNwcmluZy1ib290LXN0YXJ0ZXItdmFsaWRhdGlvbi0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVx0b21jYXRcZW1iZWRcdG9tY2F0LWVtYmVkLWVsXDEwLjEuNVx0b21jYXQtZW1iZWQtZWwtMTAuMS41LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcaGliZXJuYXRlXHZhbGlkYXRvclxoaWJlcm5hdGUtdmFsaWRhdG9yXDguMC4wLkZpbmFsXGhpYmVybmF0ZS12YWxpZGF0b3ItOC4wLjAuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGpha2FydGFcdmFsaWRhdGlvblxqYWthcnRhLnZhbGlkYXRpb24tYXBpXDMuMC4yXGpha2FydGEudmFsaWRhdGlvbi1hcGktMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNuXGRldjMzXHNhLXRva2VuLXNwcmluZy1ib290My1zdGFydGVyXDEuMzQuMFxzYS10b2tlbi1zcHJpbmctYm9vdDMtc3RhcnRlci0xLjM0LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNuXGRldjMzXHNhLXRva2VuLWpha2FydGEtc2VydmxldFwxLjM0LjBcc2EtdG9rZW4tamFrYXJ0YS1zZXJ2bGV0LTEuMzQuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVxzZXJ2bGV0XGpha2FydGEuc2VydmxldC1hcGlcNi4wLjBcamFrYXJ0YS5zZXJ2bGV0LWFwaS02LjAuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY25cZGV2MzNcc2EtdG9rZW4tc3ByaW5nLWJvb3QtYXV0b2NvbmZpZ1wxLjM0LjBcc2EtdG9rZW4tc3ByaW5nLWJvb3QtYXV0b2NvbmZpZy0xLjM0LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNuXGRldjMzXHNhLXRva2VuLWRhby1yZWRpcy1qYWNrc29uXDEuMzQuMFxzYS10b2tlbi1kYW8tcmVkaXMtamFja3Nvbi0xLjM0LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNuXGRldjMzXHNhLXRva2VuLWNvcmVcMS4zNC4wXHNhLXRva2VuLWNvcmUtMS4zNC4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3Qtc3RhcnRlci13ZWJcMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci13ZWItMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLXdlYlw2LjAuNFxzcHJpbmctd2ViLTYuMC40LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xtaWNyb21ldGVyXG1pY3JvbWV0ZXItb2JzZXJ2YXRpb25cMS4xMC4zXG1pY3JvbWV0ZXItb2JzZXJ2YXRpb24tMS4xMC4zLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xtaWNyb21ldGVyXG1pY3JvbWV0ZXItY29tbW9uc1wxLjEwLjNcbWljcm9tZXRlci1jb21tb25zLTEuMTAuMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctd2VibXZjXDYuMC40XHNwcmluZy13ZWJtdmMtNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLWV4cHJlc3Npb25cNi4wLjRcc3ByaW5nLWV4cHJlc3Npb24tNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLWpzb25cMy4wLjJcc3ByaW5nLWJvb3Qtc3RhcnRlci1qc29uLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGphY2tzb25cY29yZVxqYWNrc29uLWRhdGFiaW5kXDIuMTQuMVxqYWNrc29uLWRhdGFiaW5kLTIuMTQuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXGRhdGF0eXBlXGphY2tzb24tZGF0YXR5cGUtamRrOFwyLjE0LjFcamFja3Nvbi1kYXRhdHlwZS1qZGs4LTIuMTQuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXG1vZHVsZVxqYWNrc29uLW1vZHVsZS1wYXJhbWV0ZXItbmFtZXNcMi4xNC4xXGphY2tzb24tbW9kdWxlLXBhcmFtZXRlci1uYW1lcy0yLjE0LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLXRvbWNhdFwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLXRvbWNhdC0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcamFrYXJ0YVxhbm5vdGF0aW9uXGpha2FydGEuYW5ub3RhdGlvbi1hcGlcMi4xLjFcamFrYXJ0YS5hbm5vdGF0aW9uLWFwaS0yLjEuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVx0b21jYXRcZW1iZWRcdG9tY2F0LWVtYmVkLWNvcmVcMTAuMS41XHRvbWNhdC1lbWJlZC1jb3JlLTEwLjEuNS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVx0b21jYXRcZW1iZWRcdG9tY2F0LWVtYmVkLXdlYnNvY2tldFwxMC4xLjVcdG9tY2F0LWVtYmVkLXdlYnNvY2tldC0xMC4xLjUuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtaW9cY29tbW9ucy1pb1wyLjExLjBcY29tbW9ucy1pby0yLjExLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtY29kZWNcY29tbW9ucy1jb2RlY1wxLjE1XGNvbW1vbnMtY29kZWMtMS4xNS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy12YWxpZGF0b3JcY29tbW9ucy12YWxpZGF0b3JcMS43XGNvbW1vbnMtdmFsaWRhdG9yLTEuNy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tbW9ucy1iZWFudXRpbHNcY29tbW9ucy1iZWFudXRpbHNcMS45LjRcY29tbW9ucy1iZWFudXRpbHMtMS45LjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtZGlnZXN0ZXJcY29tbW9ucy1kaWdlc3RlclwyLjFcY29tbW9ucy1kaWdlc3Rlci0yLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtbG9nZ2luZ1xjb21tb25zLWxvZ2dpbmdcMS4yXGNvbW1vbnMtbG9nZ2luZy0xLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbW1vbnMtY29sbGVjdGlvbnNcY29tbW9ucy1jb2xsZWN0aW9uc1wzLjIuMlxjb21tb25zLWNvbGxlY3Rpb25zLTMuMi4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGNvbW1vbnNcY29tbW9ucy1sYW5nM1wzLjEyLjBcY29tbW9ucy1sYW5nMy0zLjEyLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcY29tbW9uc1xjb21tb25zLXRleHRcMS4xMC4wXGNvbW1vbnMtdGV4dC0xLjEwLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcY29tbW9uc1xjb21tb25zLWNvbXByZXNzXDEuMjJcY29tbW9ucy1jb21wcmVzcy0xLjIyLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcamV0YnJhaW5zXGFubm90YXRpb25zXDIzLjEuMFxhbm5vdGF0aW9ucy0yMy4xLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVcZ3VhdmFcZ3VhdmFcMzEuMS1qcmVcZ3VhdmEtMzEuMS1qcmUuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVcZ3VhdmFcZmFpbHVyZWFjY2Vzc1wxLjAuMVxmYWlsdXJlYWNjZXNzLTEuMC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZ29vZ2xlXGd1YXZhXGxpc3RlbmFibGVmdXR1cmVcOTk5OS4wLWVtcHR5LXRvLWF2b2lkLWNvbmZsaWN0LXdpdGgtZ3VhdmFcbGlzdGVuYWJsZWZ1dHVyZS05OTk5LjAtZW1wdHktdG8tYXZvaWQtY29uZmxpY3Qtd2l0aC1ndWF2YS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxjb2RlXGZpbmRidWdzXGpzcjMwNVwzLjAuMlxqc3IzMDUtMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xjaGVja2VyZnJhbWV3b3JrXGNoZWNrZXItcXVhbFwzLjEyLjBcY2hlY2tlci1xdWFsLTMuMTIuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZVxlcnJvcnByb25lXGVycm9yX3Byb25lX2Fubm90YXRpb25zXDIuMTEuMFxlcnJvcl9wcm9uZV9hbm5vdGF0aW9ucy0yLjExLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxnb29nbGVcajJvYmpjXGoyb2JqYy1hbm5vdGF0aW9uc1wxLjNcajJvYmpjLWFubm90YXRpb25zLTEuMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcYXRcZmF2cmVcbGliXGJjcnlwdFwwLjkuMFxiY3J5cHQtMC45LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGF0XGZhdnJlXGxpYlxieXRlc1wxLjMuMFxieXRlcy0xLjMuMC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGtvbmdocVx1bmlyZXN0LWphdmFcMy4xNC4xXHVuaXJlc3QtamF2YS0zLjE0LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcaHR0cGNvbXBvbmVudHNcaHR0cGNsaWVudFw0LjUuMTRcaHR0cGNsaWVudC00LjUuMTQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGFjaGVcaHR0cGNvbXBvbmVudHNcaHR0cGNvcmVcNC40LjE2XGh0dHBjb3JlLTQuNC4xNi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxodHRwY29tcG9uZW50c1xodHRwbWltZVw0LjUuMTRcaHR0cG1pbWUtNC41LjE0LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGh0dHBjb21wb25lbnRzXGh0dHBjb3JlLW5pb1w0LjQuMTZcaHR0cGNvcmUtbmlvLTQuNC4xNi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGFwYWNoZVxodHRwY29tcG9uZW50c1xodHRwYXN5bmNjbGllbnRcNC4xLjVcaHR0cGFzeW5jY2xpZW50LTQuMS41LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZ29vZ2xlXGNvZGVcZ3Nvblxnc29uXDIuOS4xXGdzb24tMi45LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG1lXHRvbmdmZWlccHJvZ3Jlc3NiYXJcMC45LjVccHJvZ3Jlc3NiYXItMC45LjUuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqbGluZVxqbGluZVwzLjIxLjBcamxpbmUtMy4yMS4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZGFtcGNha2VcYmVuY29kZVwxLjRcYmVuY29kZS0xLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxteXNxbFxteXNxbC1jb25uZWN0b3Italw4LjAuMzJcbXlzcWwtY29ubmVjdG9yLWotOC4wLjMyLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21caDJkYXRhYmFzZVxoMlwyLjEuMjE0XGgyLTIuMS4yMTQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xwcm9qZWN0bG9tYm9rXGxvbWJva1wxLjE4LjI0XGxvbWJvay0xLjE4LjI0LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXGJvb3Rcc3ByaW5nLWJvb3QtZGV2dG9vbHNcMy4wLjJcc3ByaW5nLWJvb3QtZGV2dG9vbHMtMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdFwzLjAuMlxzcHJpbmctYm9vdC0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LWF1dG9jb25maWd1cmVcMy4wLjJcc3ByaW5nLWJvb3QtYXV0b2NvbmZpZ3VyZS0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xib290XHNwcmluZy1ib290LXN0YXJ0ZXItdGVzdFwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLXRlc3QtMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC10ZXN0XDMuMC4yXHNwcmluZy1ib290LXRlc3QtMy4wLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC10ZXN0LWF1dG9jb25maWd1cmVcMy4wLjJcc3ByaW5nLWJvb3QtdGVzdC1hdXRvY29uZmlndXJlLTMuMC4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21camF5d2F5XGpzb25wYXRoXGpzb24tcGF0aFwyLjcuMFxqc29uLXBhdGgtMi43LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG5ldFxtaW5pZGV2XGpzb24tc21hcnRcMi40LjhcanNvbi1zbWFydC0yLjQuOC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcbmV0XG1pbmlkZXZcYWNjZXNzb3JzLXNtYXJ0XDIuNC44XGFjY2Vzc29ycy1zbWFydC0yLjQuOC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXG93Mlxhc21cYXNtXDkuMVxhc20tOS4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxqYWthcnRhXHhtbFxiaW5kXGpha2FydGEueG1sLmJpbmQtYXBpXDQuMC4wXGpha2FydGEueG1sLmJpbmQtYXBpLTQuMC4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXNzZXJ0alxhc3NlcnRqLWNvcmVcMy4yMy4xXGFzc2VydGotY29yZS0zLjIzLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xoYW1jcmVzdFxoYW1jcmVzdFwyLjJcaGFtY3Jlc3QtMi4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcanVuaXRcanVwaXRlclxqdW5pdC1qdXBpdGVyXDUuOS4yXGp1bml0LWp1cGl0ZXItNS45LjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqdW5pdFxqdXBpdGVyXGp1bml0LWp1cGl0ZXItYXBpXDUuOS4yXGp1bml0LWp1cGl0ZXItYXBpLTUuOS4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcb3BlbnRlc3Q0alxvcGVudGVzdDRqXDEuMi4wXG9wZW50ZXN0NGotMS4yLjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqdW5pdFxwbGF0Zm9ybVxqdW5pdC1wbGF0Zm9ybS1jb21tb25zXDEuOS4yXGp1bml0LXBsYXRmb3JtLWNvbW1vbnMtMS45LjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xhcGlndWFyZGlhblxhcGlndWFyZGlhbi1hcGlcMS4xLjJcYXBpZ3VhcmRpYW4tYXBpLTEuMS4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcanVuaXRcanVwaXRlclxqdW5pdC1qdXBpdGVyLXBhcmFtc1w1LjkuMlxqdW5pdC1qdXBpdGVyLXBhcmFtcy01LjkuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGp1bml0XGp1cGl0ZXJcanVuaXQtanVwaXRlci1lbmdpbmVcNS45LjJcanVuaXQtanVwaXRlci1lbmdpbmUtNS45LjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqdW5pdFxwbGF0Zm9ybVxqdW5pdC1wbGF0Zm9ybS1lbmdpbmVcMS45LjJcanVuaXQtcGxhdGZvcm0tZW5naW5lLTEuOS4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcbW9ja2l0b1xtb2NraXRvLWNvcmVcNC44LjFcbW9ja2l0by1jb3JlLTQuOC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxuZXRcYnl0ZWJ1ZGR5XGJ5dGUtYnVkZHktYWdlbnRcMS4xMi4yMlxieXRlLWJ1ZGR5LWFnZW50LTEuMTIuMjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xvYmplbmVzaXNcb2JqZW5lc2lzXDMuMlxvYmplbmVzaXMtMy4yLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcbW9ja2l0b1xtb2NraXRvLWp1bml0LWp1cGl0ZXJcNC44LjFcbW9ja2l0by1qdW5pdC1qdXBpdGVyLTQuOC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc2t5c2NyZWFtZXJcanNvbmFzc2VydFwxLjUuMVxqc29uYXNzZXJ0LTEuNS4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cdmFhZGluXGV4dGVybmFsXGdvb2dsZVxhbmRyb2lkLWpzb25cMC4wLjIwMTMxMTA4LnZhYWRpbjFcYW5kcm9pZC1qc29uLTAuMC4yMDEzMTEwOC52YWFkaW4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1jb3JlXDYuMC40XHNwcmluZy1jb3JlLTYuMC40LmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcc3ByaW5nZnJhbWV3b3JrXHNwcmluZy1qY2xcNi4wLjRcc3ByaW5nLWpjbC02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctdGVzdFw2LjAuNFxzcHJpbmctdGVzdC02LjAuNC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHhtbHVuaXRceG1sdW5pdC1jb3JlXDIuOS4xXHhtbHVuaXQtY29yZS0yLjkuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXGRhdGF0eXBlXGphY2tzb24tZGF0YXR5cGUtanNyMzEwXDIuMTQuMVxqYWNrc29uLWRhdGF0eXBlLWpzcjMxMC0yLjE0LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxmYXN0ZXJ4bWxcamFja3Nvblxjb3JlXGphY2tzb24tYW5ub3RhdGlvbnNcMi4xNC4xXGphY2tzb24tYW5ub3RhdGlvbnMtMi4xNC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZmFzdGVyeG1sXGphY2tzb25cY29yZVxqYWNrc29uLWNvcmVcMi4xNC4xXGphY2tzb24tY29yZS0yLjE0LjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xyZWRpc3NvblxyZWRpc3Nvbi1oaWJlcm5hdGUtNlwzLjE5LjNccmVkaXNzb24taGliZXJuYXRlLTYtMy4xOS4zLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdccmVkaXNzb25ccmVkaXNzb25cMy4xOS4zXHJlZGlzc29uLTMuMTkuMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktY29kZWNcNC4xLjg3LkZpbmFsXG5ldHR5LWNvZGVjLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcaW9cbmV0dHlcbmV0dHktYnVmZmVyXDQuMS44Ny5GaW5hbFxuZXR0eS1idWZmZXItNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS1yZXNvbHZlclw0LjEuODcuRmluYWxcbmV0dHktcmVzb2x2ZXItNC4xLjg3LkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxpb1xuZXR0eVxuZXR0eS1yZXNvbHZlci1kbnNcNC4xLjg3LkZpbmFsXG5ldHR5LXJlc29sdmVyLWRucy00LjEuODcuRmluYWwuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXG5ldHR5XG5ldHR5LWNvZGVjLWRuc1w0LjEuODcuRmluYWxcbmV0dHktY29kZWMtZG5zLTQuMS44Ny5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcamF2YXhcY2FjaGVcY2FjaGUtYXBpXDEuMS4xXGNhY2hlLWFwaS0xLjEuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHJlYWN0aXZlc3RyZWFtc1xyZWFjdGl2ZS1zdHJlYW1zXDEuMC40XHJlYWN0aXZlLXN0cmVhbXMtMS4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGlvXHJlYWN0aXZleFxyeGphdmEzXHJ4amF2YVwzLjEuNlxyeGphdmEtMy4xLjYuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqYm9zc1xtYXJzaGFsbGluZ1xqYm9zcy1tYXJzaGFsbGluZ1wyLjAuMTEuRmluYWxcamJvc3MtbWFyc2hhbGxpbmctMi4wLjExLkZpbmFsLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcamJvc3NcbWFyc2hhbGxpbmdcamJvc3MtbWFyc2hhbGxpbmctcml2ZXJcMi4wLjExLkZpbmFsXGpib3NzLW1hcnNoYWxsaW5nLXJpdmVyLTIuMC4xMS5GaW5hbC5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGVzb3Rlcmljc29mdHdhcmVca3J5b1w1LjQuMFxrcnlvLTUuNC4wLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxjb21cZXNvdGVyaWNzb2Z0d2FyZVxyZWZsZWN0YXNtXDEuMTEuOVxyZWZsZWN0YXNtLTEuMTEuOS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGVzb3Rlcmljc29mdHdhcmVcbWlubG9nXDEuMy4xXG1pbmxvZy0xLjMuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGZhc3RlcnhtbFxqYWNrc29uXGRhdGFmb3JtYXRcamFja3Nvbi1kYXRhZm9ybWF0LXlhbWxcMi4xNC4xXGphY2tzb24tZGF0YWZvcm1hdC15YW1sLTIuMTQuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGpvZGRcam9kZC1iZWFuXDUuMS42XGpvZGQtYmVhbi01LjEuNi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGpvZGRcam9kZC1jb3JlXDUuMS42XGpvZGQtY29yZS01LjEuNi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGdvb2dsZWNvZGVcb3dhc3AtamF2YS1odG1sLXNhbml0aXplclxvd2FzcC1qYXZhLWh0bWwtc2FuaXRpemVyXDIwMjIwNjA4LjFcb3dhc3AtamF2YS1odG1sLXNhbml0aXplci0yMDIyMDYwOC4xLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcYXBhY2hlXGNvbW1vbnNcY29tbW9ucy1wb29sMlwyLjExLjFcY29tbW9ucy1wb29sMi0yLjExLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxyb21ldG9vbHNccm9tZVwxLjE4LjBccm9tZS0xLjE4LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxyb21ldG9vbHNccm9tZS11dGlsc1wxLjE4LjBccm9tZS11dGlscy0xLjE4LjAuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xqZG9tXGpkb20yXDIuMC42LjFcamRvbTItMi4wLjYuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNsZjRqXHNsZjRqLWFwaVwyLjAuNlxzbGY0ai1hcGktMi4wLjYuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1zdGFydGVyLXJlZGlzXDIuNy4zXGpldGNhY2hlLXN0YXJ0ZXItcmVkaXMtMi43LjMuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1hdXRvY29uZmlndXJlXDIuNy4zXGpldGNhY2hlLWF1dG9jb25maWd1cmUtMi43LjMuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1hbm5vXDIuNy4zXGpldGNhY2hlLWFubm8tMi43LjMuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1jb3JlXDIuNy4zXGpldGNhY2hlLWNvcmUtMi43LjMuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1hbm5vLWFwaVwyLjcuM1xqZXRjYWNoZS1hbm5vLWFwaS0yLjcuMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGFsaWJhYmFcZmFzdGpzb24yXGZhc3Rqc29uMlwyLjAuMjFcZmFzdGpzb24yLTIuMC4yMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcY29tXGdpdGh1YlxiZW4tbWFuZXNcY2FmZmVpbmVcY2FmZmVpbmVcMy4xLjJcY2FmZmVpbmUtMy4xLjIuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGphdmF4XGFubm90YXRpb25camF2YXguYW5ub3RhdGlvbi1hcGlcMS4zLjFcamF2YXguYW5ub3RhdGlvbi1hcGktMS4zLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XGNvbVxhbGljcFxqZXRjYWNoZVxqZXRjYWNoZS1yZWRpc1wyLjcuM1xqZXRjYWNoZS1yZWRpcy0yLjcuMy5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlccmVkaXNcY2xpZW50c1xqZWRpc1w0LjMuMVxqZWRpcy00LjMuMS5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXGpzb25canNvblwyMDIyMDMyMFxqc29uLTIwMjIwMzIwLmphcjtDOlxVc2Vyc1w3NTAwMVwubTJccmVwb3NpdG9yeVxvcmdcZ3JlZW5yb2JvdFxldmVudGJ1cy1qYXZhXDMuMy4xXGV2ZW50YnVzLWphdmEtMy4zLjEuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcYm9vdFxzcHJpbmctYm9vdC1zdGFydGVyLXdlYnNvY2tldFwzLjAuMlxzcHJpbmctYm9vdC1zdGFydGVyLXdlYnNvY2tldC0zLjAuMi5qYXI7QzpcVXNlcnNcNzUwMDFcLm0yXHJlcG9zaXRvcnlcb3JnXHNwcmluZ2ZyYW1ld29ya1xzcHJpbmctbWVzc2FnaW5nXDYuMC40XHNwcmluZy1tZXNzYWdpbmctNi4wLjQuamFyO0M6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5XG9yZ1xzcHJpbmdmcmFtZXdvcmtcc3ByaW5nLXdlYnNvY2tldFw2LjAuNFxzcHJpbmctd2Vic29ja2V0LTYuMC40LmphcjsiLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9InN1bi5jcHUuZW5kaWFuIiB2YWx1ZT0ibGl0dGxlIi8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJ1c2VyLmhvbWUiIHZhbHVlPSJDOlxVc2Vyc1zlvKDlrrbosaoiLz4NCisgICAgPHByb3BlcnR5IG5hbWU9InVzZXIuaG9tZSIgdmFsdWU9IkM6XFVzZXJzXDc1MDAxIi8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJ1c2VyLmxhbmd1YWdlIiB2YWx1ZT0iemgiLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9ImphdmEuc3BlY2lmaWNhdGlvbi52ZW5kb3IiIHZhbHVlPSJPcmFjbGUgQ29ycG9yYXRpb24iLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9ImphdmEudmVyc2lvbi5kYXRlIiB2YWx1ZT0iMjAyNS0wNC0xNSIvPg0KLSAgICA8cHJvcGVydHkgbmFtZT0iamF2YS5ob21lIiB2YWx1ZT0iQzpcVXNlcnNc5byg5a626LGqXC5qZGtzXG1zLTE3LjAuMTUiLz4NCisgICAgPHByb3BlcnR5IG5hbWU9ImphdmEudmVyc2lvbi5kYXRlIiB2YWx1ZT0iMjAyMy0wMS0xNyIvPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iamF2YS5ob21lIiB2YWx1ZT0iQzpcUHJvZ3JhbSBGaWxlc1xKYXZhXGpkay0xNyIvPg0KICAgICA8cHJvcGVydHkgbmFtZT0iZmlsZS5zZXBhcmF0b3IiIHZhbHVlPSJcIi8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJiYXNlZGlyIiB2YWx1ZT0iRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJiYXNlZGlyIiB2YWx1ZT0iQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZCIvPg0KICAgICA8cHJvcGVydHkgbmFtZT0iamF2YS52bS5jb21wcmVzc2VkT29wc01vZGUiIHZhbHVlPSJaZXJvIGJhc2VkIi8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJsaW5lLnNlcGFyYXRvciIgdmFsdWU9IiYjMTA7Ii8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZtLnNwZWNpZmljYXRpb24udmVuZG9yIiB2YWx1ZT0iT3JhY2xlIENvcnBvcmF0aW9uIi8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnNwZWNpZmljYXRpb24ubmFtZSIgdmFsdWU9IkphdmEgUGxhdGZvcm0gQVBJIFNwZWNpZmljYXRpb24iLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9InN1cmVmaXJlLnJlYWwuY2xhc3MucGF0aCIgdmFsdWU9IkM6XFdJTkRPV1NcVEVNUFxzdXJlZmlyZTEzNzc3NTc1OTc1NDk0NzQzNTU2XHN1cmVmaXJlYm9vdGVyMTQ2MDAzMzQ4MjQ0OTUwMzI5MzYuamFyIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJzdXJlZmlyZS5yZWFsLmNsYXNzLnBhdGgiIHZhbHVlPSJDOlxVc2Vyc1w3NTAwMVxBcHBEYXRhXExvY2FsXFRlbXBcc3VyZWZpcmUzMDMwNDI4MzkzMDc3MzEwMDc0XHN1cmVmaXJlYm9vdGVyOTQ3MjE4NTYwMTYzMTIwMjMyMi5qYXIiLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9InVzZXIuc2NyaXB0IiB2YWx1ZT0iIi8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJzdW4ubWFuYWdlbWVudC5jb21waWxlciIgdmFsdWU9IkhvdFNwb3QgNjQtQml0IFRpZXJlZCBDb21waWxlcnMiLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9ImphdmEucnVudGltZS52ZXJzaW9uIiB2YWx1ZT0iMTcuMC4xNSs2LUxUUyIvPg0KLSAgICA8cHJvcGVydHkgbmFtZT0idXNlci5uYW1lIiB2YWx1ZT0i5byg5a626LGqIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnJ1bnRpbWUudmVyc2lvbiIgdmFsdWU9IjE3LjAuNis5LUxUUy0xOTAiLz4NCisgICAgPHByb3BlcnR5IG5hbWU9InVzZXIubmFtZSIgdmFsdWU9Ijc1MDAxIi8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJwYXRoLnNlcGFyYXRvciIgdmFsdWU9IjsiLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9Im9zLnZlcnNpb24iIHZhbHVlPSIxMC4wIi8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnJ1bnRpbWUubmFtZSIgdmFsdWU9Ik9wZW5KREsgUnVudGltZSBFbnZpcm9ubWVudCIvPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iamF2YS5ydW50aW1lLm5hbWUiIHZhbHVlPSJKYXZhKFRNKSBTRSBSdW50aW1lIEVudmlyb25tZW50Ii8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJmaWxlLmVuY29kaW5nIiB2YWx1ZT0iR0JLIi8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZtLm5hbWUiIHZhbHVlPSJPcGVuSkRLIDY0LUJpdCBTZXJ2ZXIgVk0iLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9ImphdmEudmVuZG9yLnZlcnNpb24iIHZhbHVlPSJNaWNyb3NvZnQtMTEzNjk4NjUiLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9ImxvY2FsUmVwb3NpdG9yeSIgdmFsdWU9IkM6XFVzZXJzXOW8oOWutuixqlwubTJccmVwb3NpdG9yeSIvPg0KLSAgICA8cHJvcGVydHkgbmFtZT0iamF2YS52ZW5kb3IudXJsLmJ1ZyIgdmFsdWU9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvb3Blbmpkay9pc3N1ZXMiLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9ImphdmEuaW8udG1wZGlyIiB2YWx1ZT0iQzpcV0lORE9XU1xURU1QXCIvPg0KLSAgICA8cHJvcGVydHkgbmFtZT0iaWRlYS52ZXJzaW9uIiB2YWx1ZT0iMjAyNC4yLjQiLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9ImphdmEudmVyc2lvbiIgdmFsdWU9IjE3LjAuMTUiLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9InVzZXIuZGlyIiB2YWx1ZT0iRTpcZGVza3RvcFxFWFwwNjA2QlxQVF9TaXh0aF9CYWNrZW5kIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZtLm5hbWUiIHZhbHVlPSJKYXZhIEhvdFNwb3QoVE0pIDY0LUJpdCBTZXJ2ZXIgVk0iLz4NCisgICAgPHByb3BlcnR5IG5hbWU9ImxvY2FsUmVwb3NpdG9yeSIgdmFsdWU9IkM6XFVzZXJzXDc1MDAxXC5tMlxyZXBvc2l0b3J5Ii8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZlbmRvci51cmwuYnVnIiB2YWx1ZT0iaHR0cHM6Ly9idWdyZXBvcnQuamF2YS5jb20vYnVncmVwb3J0LyIvPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iamF2YS5pby50bXBkaXIiIHZhbHVlPSJDOlxVc2Vyc1w3NTAwMVxBcHBEYXRhXExvY2FsXFRlbXBcIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJpZGVhLnZlcnNpb24iIHZhbHVlPSIyMDI1LjEuMS4xIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZlcnNpb24iIHZhbHVlPSIxNy4wLjYiLz4NCisgICAgPHByb3BlcnR5IG5hbWU9InVzZXIuZGlyIiB2YWx1ZT0iQzpcVXNlcnNcNzUwMDFcRGVza3RvcFxTYXBsaW5nLW1haW5cUFRfU2l4dGhfQmFja2VuZCIvPg0KICAgICA8cHJvcGVydHkgbmFtZT0ib3MuYXJjaCIgdmFsdWU9ImFtZDY0Ii8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZtLnNwZWNpZmljYXRpb24ubmFtZSIgdmFsdWU9IkphdmEgVmlydHVhbCBNYWNoaW5lIFNwZWNpZmljYXRpb24iLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9InN1bi5vcy5wYXRjaC5sZXZlbCIgdmFsdWU9IiIvPg0KICAgICA8cHJvcGVydHkgbmFtZT0ibmF0aXZlLmVuY29kaW5nIiB2YWx1ZT0iR0JLIi8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLmxpYnJhcnkucGF0aCIgdmFsdWU9IkM6XFVzZXJzXOW8oOWutuixqlwuamRrc1xtcy0xNy4wLjE1XGJpbjtDOlxXSU5ET1dTXFN1blxKYXZhXGJpbjtDOlxXSU5ET1dTXHN5c3RlbTMyO0M6XFdJTkRPV1M7RTpcUHJvZ3JhbURhdGFcYW5hY29uZGEzXGNvbmRhYmluO0U6XFByb2dyYW0gRmlsZXNcUHl0aG9uMzEyXFNjcmlwdHNcO0U6XFByb2dyYW0gRmlsZXNcUHl0aG9uMzEyXDtDOlxNaW5HV1xiaW47QzpcUHJvZ3JhbSBGaWxlc1xDb21tb24gRmlsZXNcT3JhY2xlXEphdmFcamF2YXBhdGg7QzpcV2luZG93c1xzeXN0ZW0zMjtDOlxXaW5kb3dzO0M6XFdpbmRvd3NcU3lzdGVtMzJcV2JlbTtDOlxXaW5kb3dzXFN5c3RlbTMyXFdpbmRvd3NQb3dlclNoZWxsXHYxLjBcO0M6XFdpbmRvd3NcU3lzdGVtMzJcT3BlblNTSFw7QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxOVklESUEgQ29ycG9yYXRpb25cUGh5c1hcQ29tbW9uO0M6XFByb2dyYW0gRmlsZXNcTlZJRElBIENvcnBvcmF0aW9uXE5WSURJQSBOdkRMSVNSO0M6XFdJTkRPV1Ncc3lzdGVtMzI7QzpcV0lORE9XUztDOlxXSU5ET1dTXFN5c3RlbTMyXFdiZW07QzpcV0lORE9XU1xTeXN0ZW0zMlxXaW5kb3dzUG93ZXJTaGVsbFx2MS4wXDtDOlxXSU5ET1dTXFN5c3RlbTMyXE9wZW5TU0hcO0U6XE1pbkdXXGJpbjtDOlxQcm9ncmFtIEZpbGVzICh4ODYpXFdpbmRvd3MgS2l0c1wxMFxXaW5kb3dzIFBlcmZvcm1hbmNlIFRvb2xraXRcO0M6XFByb2dyYW0gRmlsZXNcSmF2YVxqZGstMTlcYmluO0M6XFByb2dyYW0gRmlsZXNcSmF2YVxqZGstMTlcanJlXGJpbjtFOlxDb21wbGllckNvbXBsaWVyXEdudVdpbjMyXGJpbjtFOlxDb21wbGllckNvbXBsaWVyXE1pbkdXXGJpbjtFOlxQcm9ncmFtIEZpbGVzXG5vZGVqc1w7RTpcUHJvZ3JhbSBGaWxlc1xub2RlanNcbm9kZV9nbG9iYWxcbm9kZV9tb2R1bGVzO0U6XFByb2dyYW0gRmlsZXNcR2l0XGNtZDtFOlxQcm9ncmFtIEZpbGVzXFJlZGlzXDtFOlxQcm9ncmFtRGF0YVxhbmFjb25kYTM7RTpcUHJvZ3JhbURhdGFcYW5hY29uZGEzXFNjcmlwdHM7RTpcUHJvZ3JhbURhdGFcYW5hY29uZGEzXExpYnJhcnlcYmluO0U6XFByb2dyYW1EYXRhXGFuYWNvbmRhM1xMaWJyYXJ5XG1pbmd3LXc2NFxiaW47RTpcUHJvZ3JhbURhdGFcYW5hY29uZGEzXExpYnJhcnlcdXNyXGJpbjtFOlxQcm9ncmFtIEZpbGVzXGFwYWNoZS1tYXZlbi0zLjkuOVxiaW47RTpcZG9ja2VyXHJlc291cmNlc1xiaW47RTpcUHJvZ3JhbSBGaWxlc1xHaXQgTEZTO0M6XE1pbkdXXGJpbjtDOlxVc2Vyc1zlvKDlrrbosapcQXBwRGF0YVxMb2NhbFxNaWNyb3NvZnRcV2luZG93c0FwcHM7QzpcdGV4bGl2ZVwyMDIzXGJpblx3aW5kb3dzO0U6XFByb2dyYW0gRmlsZXNcSURFQVxJbnRlbGxpSiBJREVBIENvbW11bml0eSBFZGl0aW9uIDIwMjQuMVxiaW47O0U6XFRvbWNhdFxhcGFjaGUtdG9tY2F0LTEwLjEuMjBcYmluXDtFOlxQcm9ncmFtIEZpbGVzXFB5dGhvbuW3peWFt1xQeUNoYXJtIENvbW11bml0eSBFZGl0aW9uIDIwMjQuMS40XGJpbjs7RTpcUHJvZ3JhbSBGaWxlc1xub2RlanNcbm9kZV9nbG9iYWw7QzpcVXNlcnNc5byg5a626LGqXEFwcERhdGFcTG9jYWxcUHJvZ3JhbXNcTWljcm9zb2Z0IFZTIENvZGVcYmluOzsuIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLmxpYnJhcnkucGF0aCIgdmFsdWU9IkM6XFByb2dyYW0gRmlsZXNcSmF2YVxqZGstMTdcYmluO0M6XFdJTkRPV1NcU3VuXEphdmFcYmluO0M6XFdJTkRPV1Ncc3lzdGVtMzI7QzpcV0lORE9XUztEOlxWTXdhcmVcYmluXDtDOlxQcm9ncmFtIEZpbGVzXE5WSURJQSBHUFUgQ29tcHV0aW5nIFRvb2xraXRcQ1VEQVx2MTIuMVxiaW47QzpcUHJvZ3JhbSBGaWxlc1xOVklESUEgR1BVIENvbXB1dGluZyBUb29sa2l0XENVREFcdjEyLjFcbGlibnZ2cDtDOlxQcm9ncmFtIEZpbGVzXENvbW1vbiBGaWxlc1xPcmFjbGVcSmF2YVxqYXZhcGF0aDtDOlxXaW5kb3dzXHN5c3RlbTMyO0M6XFdpbmRvd3M7QzpcV2luZG93c1xTeXN0ZW0zMlxXYmVtO0M6XFdpbmRvd3NcU3lzdGVtMzJcV2luZG93c1Bvd2VyU2hlbGxcdjEuMFw7QzpcV2luZG93c1xTeXN0ZW0zMlxPcGVuU1NIXDtDOlxQcm9ncmFtIEZpbGVzICh4ODYpXE5WSURJQSBDb3Jwb3JhdGlvblxQaHlzWFxDb21tb247QzpcUHJvZ3JhbSBGaWxlc1xOVklESUEgQ29ycG9yYXRpb25cTlZJRElBIE52RExJU1I7RDpc5p2O5YGl5pifXERvY3VtZW50c1xNaW5HVygxKVxiaW47JVM7c3RlbVJvb3QlXHN5c3RlbTMyO0M6XFdJTkRPV1M7QzpcV0lORE9XU1xTeXN0ZW0zMlxXYmVtO0M6XFdJTkRPV1NcU3lzdGVtMzJcV2luZG93c1Bvd2VyU2hlbGxcdjEuMFw7QzpcV0lORE9XU1xTeXN0ZW0zMlxPcGVuU1NIXDtDOlxQcm9ncmFtIEZpbGVzXEphdmFcamRrLTE3XGJpbjtEOlxNeVNRTFxNeSBTUUwgU2VydmVyIDguMFxiaW47QzpcUHJvZ3JhbSBGaWxlc1xkb3RuZXRcO0M6XFByb2dyYW0gRmlsZXMgKHg4NilcV2luZG93cyBLaXRzXDEwXFdpbmRvd3MgUGVyZm9ybWFuY2UgVG9vbGtpdFw7QzpcUHJvZ3JhbSBGaWxlc1xNeVNRTFxNeVNRTCBTZXJ2ZXIgOC4wXGJpbjtEOlxKYXZhXDtEOlxhbmFjb25kYTtEOlxhbmFjb25kYVxMaWJyYXJ5XGJpbjtEOlxhbmFjb25kYVxTY3JpcHRzO0Q6XGFuYWNvbmRhXExpYnJhcnlcbWluZ3ctdzY0O0M6XFByb2dyYW0gRmlsZXNcTlZJRElBIENvcnBvcmF0aW9uXE5zaWdodCBDb21wdXRlIDIwMjMuMS4wXDtDOlxQcm9ncmFtIEZpbGVzXE5WSURJQSBHUFUgQ29tcHV0aW5nIFRvb2xraXRcQ1VEQVx2MTIuMVxpbmNsdWRlO0M6XFByb2dyYW0gRmlsZXNcTlZJRElBIEdQVSBDb21wdXRpbmcgVG9vbGtpdFxDVURBXHYxMi4xXGxpYlx4NjQ7QzpcUHJvZ3JhbURhdGFcY2hvY29sYXRleVxiaW47QzpcUHJvZ3JhbSBGaWxlc1xDTWFrZVxiaW47RDpcTWF2ZW5cYXBhY2hlLW1hdmVuLTMuOS45LWJpblxhcGFjaGUtbWF2ZW4tMy45LjlcYmluO0M6XFdJTkRPV1Ncc3lzdGVtMzI7QzpcV0lORE9XU1xzeXN0ZW0zMlxkb3dubGV2ZWw7RDpcR2l0XGNtZDtDOlxVc2Vyc1w3NTAwMVxBcHBEYXRhXFJvYW1pbmdcbnBtO0M6XFByb2dyYW0gRmlsZXNcRG9ja2VyXERvY2tlclxyZXNvdXJjZXNcYmluO0Q6XFJlZGlzO0M6XFVzZXJzXDc1MDAxXEFwcERhdGFcTG9jYWxcUHJvZ3JhbXNcUHl0aG9uXFB5dGhvbjMxMVxTY3JpcHRzXDtDOlxVc2Vyc1w3NTAwMVxBcHBEYXRhXExvY2FsXFByb2dyYW1zXFB5dGhvblxQeXRob24zMTFcO0M6XFVzZXJzXDc1MDAxXEFwcERhdGFcTG9jYWxcTWljcm9zb2Z0XFdpbmRvd3NBcHBzO0M6XFVzZXJzXDc1MDAxXEFwcERhdGFcTG9jYWxcUHJvZ3JhbXNcTWljcm9zb2Z0IFZTIENvZGVcYmluO0Q6XExpamlhbnhpbmdcUHlDaGFybSBDb21tdW5pdHkgRWRpdGlvbiAyMDI0LjEuM1xiaW47O0Q6XGpwTm90ZUJvb2tcY3Vyc29yXHJlc291cmNlc1xhcHBcYmluO0Q6XEZhblFpZUNsZWFuXEludGVsbGlKIElERUEgMjAyNS4xLjEuMVxiaW47O0M6XFVzZXJzXDc1MDAxXC5idW5cYmluOy4iLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9ImphdmEudm0uaW5mbyIgdmFsdWU9Im1peGVkIG1vZGUsIHNoYXJpbmciLz4NCi0gICAgPHByb3BlcnR5IG5hbWU9ImphdmEudmVuZG9yIiB2YWx1ZT0iTWljcm9zb2Z0Ii8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZtLnZlcnNpb24iIHZhbHVlPSIxNy4wLjE1KzYtTFRTIi8+DQotICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnNwZWNpZmljYXRpb24ubWFpbnRlbmFuY2UudmVyc2lvbiIgdmFsdWU9IjEiLz4NCisgICAgPHByb3BlcnR5IG5hbWU9ImphdmEudmVuZG9yIiB2YWx1ZT0iT3JhY2xlIENvcnBvcmF0aW9uIi8+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXZhLnZtLnZlcnNpb24iIHZhbHVlPSIxNy4wLjYrOS1MVFMtMTkwIi8+DQogICAgIDxwcm9wZXJ0eSBuYW1lPSJzdW4uaW8udW5pY29kZS5lbmNvZGluZyIgdmFsdWU9IlVuaWNvZGVMaXR0bGUiLz4NCiAgICAgPHByb3BlcnR5IG5hbWU9ImphdmEuY2xhc3MudmVyc2lvbiIgdmFsdWU9IjYxLjAiLz4NCiAgIDwvcHJvcGVydGllcz4NCi0gIDx0ZXN0Y2FzZSBuYW1lPSJjb250ZXh0TG9hZHMiIGNsYXNzbmFtZT0iY29tLmdpdGh1Yi5leGFtcGxlLnB0LnB0QXBwbGljYXRpb25UZXN0cyIgdGltZT0iMC4wMTMiLz4NCisgIDx0ZXN0Y2FzZSBuYW1lPSJjb250ZXh0TG9hZHMiIGNsYXNzbmFtZT0iY29tLmdpdGh1Yi5leGFtcGxlLnB0LnB0QXBwbGljYXRpb25UZXN0cyIgdGltZT0iMC4zMDIiLz4NCiA8L3Rlc3RzdWl0ZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90YXJnZXQvc3VyZWZpcmUtcmVwb3J0cy9jb20uZ2l0aHViLmV4YW1wbGUucHQucHRBcHBsaWNhdGlvblRlc3RzLnR4dCBiL3RhcmdldC9zdXJlZmlyZS1yZXBvcnRzL2NvbS5naXRodWIuZXhhbXBsZS5wdC5wdEFwcGxpY2F0aW9uVGVzdHMudHh0CmluZGV4IDgxMjgxNDguLmY3MmFkYjUgMTAwNjQ0Ci0tLSBhL3RhcmdldC9zdXJlZmlyZS1yZXBvcnRzL2NvbS5naXRodWIuZXhhbXBsZS5wdC5wdEFwcGxpY2F0aW9uVGVzdHMudHh0CisrKyBiL3RhcmdldC9zdXJlZmlyZS1yZXBvcnRzL2NvbS5naXRodWIuZXhhbXBsZS5wdC5wdEFwcGxpY2F0aW9uVGVzdHMudHh0CkBAIC0xLDQgKzEsNCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIFRlc3Qgc2V0OiBjb20uZ2l0aHViLmV4YW1wbGUucHQucHRBcHBsaWNhdGlvblRlc3RzDQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLVRlc3RzIHJ1bjogMSwgRmFpbHVyZXM6IDAsIEVycm9yczogMCwgU2tpcHBlZDogMCwgVGltZSBlbGFwc2VkOiAwLjAxOSBzIC0gaW4gY29tLmdpdGh1Yi5leGFtcGxlLnB0LnB0QXBwbGljYXRpb25UZXN0cw0KK1Rlc3RzIHJ1bjogMSwgRmFpbHVyZXM6IDAsIEVycm9yczogMCwgU2tpcHBlZDogMCwgVGltZSBlbGFwc2VkOiAxMS41MDUgcyAtIGluIGNvbS5naXRodWIuZXhhbXBsZS5wdC5wdEFwcGxpY2F0aW9uVGVzdHMNCmRpZmYgLS1naXQgYS90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9wdEFwcGxpY2F0aW9uVGVzdHMuY2xhc3MgYi90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9naXRodWIvZXhhbXBsZS9wdC9wdEFwcGxpY2F0aW9uVGVzdHMuY2xhc3MKaW5kZXggODhhY2FhZC4uNmFhZDA5OCAxMDA2NDQKLS0tIGEvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZ2l0aHViL2V4YW1wbGUvcHQvcHRBcHBsaWNhdGlvblRlc3RzLmNsYXNzCisrKyBiL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2dpdGh1Yi9leGFtcGxlL3B0L3B0QXBwbGljYXRpb25UZXN0cy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCg==