@libresign/pdf-elements 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/PDFElements.vue.d.ts +32 -0
- package/dist/index.css +1 -1
- package/dist/index.mjs +250 -225
- package/dist/{pdf-uHvE5neP.mjs → pdf-l6QfMa5e.mjs} +2232 -2176
- package/dist/pdf.worker.min-eBwwJm95.mjs +4 -0
- package/package.json +1 -1
- package/src/components/PDFElements.vue +45 -0
- package/dist/pdf.worker.min-DmO9Xdfo.mjs +0 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const Z = "data:text/javascript;base64,LyoqCiAqIEBsaWNzdGFydCBUaGUgZm9sbG93aW5nIGlzIHRoZSBlbnRpcmUgbGljZW5zZSBub3RpY2UgZm9yIHRoZQogKiBKYXZhU2NyaXB0IGNvZGUgaW4gdGhpcyBwYWdlCiAqCiAqIENvcHlyaWdodCAyMDI0IE1vemlsbGEgRm91bmRhdGlvbgogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICoKICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKgogKiBAbGljZW5kIFRoZSBhYm92ZSBpcyB0aGUgZW50aXJlIGxpY2Vuc2Ugbm90aWNlIGZvciB0aGUKICogSmF2YVNjcmlwdCBjb2RlIGluIHRoaXMgcGFnZQogKi8KLyoqCiAqIHBkZmpzVmVyc2lvbiA9IDUuNS4yMDcKICogcGRmanNCdWlsZCA9IDUyNzk2NDY5OAogKi9jb25zdCBlPSEoIm9iamVjdCIhPXR5cGVvZiBwcm9jZXNzfHxwcm9jZXNzKyIiIT0iW29iamVjdCBwcm9jZXNzXSJ8fHByb2Nlc3MudmVyc2lvbnMubnd8fHByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb24mJnByb2Nlc3MudHlwZSYmImJyb3dzZXIiIT09cHJvY2Vzcy50eXBlKSx0PVsuMDAxLDAsMCwuMDAxLDAsMF0sbj0xLjM1LGE9LjM1LHM9LjI1OTI1OTI1OTI1OTI1OTI0LHI9MSxpPTIsbz00LGw9OCxmPTE2LGM9NjQsaD0xMjgsdT0yNTYsbT0icGRmanNfaW50ZXJuYWxfZWRpdG9yXyIscD0zLGQ9OSxnPTEzLGI9MTUsdz0xMDEsaj17UFJJTlQ6NCxNT0RJRllfQ09OVEVOVFM6OCxDT1BZOjE2LE1PRElGWV9BTk5PVEFUSU9OUzozMixGSUxMX0lOVEVSQUNUSVZFX0ZPUk1TOjI1NixDT1BZX0ZPUl9BQ0NFU1NJQklMSVRZOjUxMixBU1NFTUJMRToxMDI0LFBSSU5UX0hJR0hfUVVBTElUWToyMDQ4fSxrPTEseT0yLHE9Myx2PTAsUz00LHg9MSxDPTIsRj0zLFQ9e1RFWFQ6MSxMSU5LOjIsRlJFRVRFWFQ6MyxMSU5FOjQsU1FVQVJFOjUsQ0lSQ0xFOjYsUE9MWUdPTjo3LFBPTFlMSU5FOjgsSElHSExJR0hUOjksVU5ERVJMSU5FOjEwLFNRVUlHR0xZOjExLFNUUklLRU9VVDoxMixTVEFNUDoxMyxDQVJFVDoxNCxJTks6MTUsUE9QVVA6MTYsRklMRUFUVEFDSE1FTlQ6MTcsU09VTkQ6MTgsTU9WSUU6MTksV0lER0VUOjIwLFNDUkVFTjoyMSxQUklOVEVSTUFSSzoyMixUUkFQTkVUOjIzLFdBVEVSTUFSSzoyNCxUSFJFRUQ6MjUsUkVEQUNUOjI2fSxIPSJHcm91cCIsTz0iUiIsUj0xLEQ9MixNPTQsRT0xNixOPTMyLHo9MTI4LEw9NTEyLFU9MSxfPTIsWD00MDk2LFc9ODE5MixLPTMyNzY4LEc9NjU1MzYsVj0xMzEwNzIsJD0xMDQ4NTc2LFk9MjA5NzE1MixKPTgzODg2MDgsUT0xNjc3NzIxNixaPTEsZWU9Mix0ZT0zLG5lPTQsYWU9NSxzZT17RToiTW91c2UgRW50ZXIiLFg6Ik1vdXNlIEV4aXQiLEQ6Ik1vdXNlIERvd24iLFU6Ik1vdXNlIFVwIixGbzoiRm9jdXMiLEJsOiJCbHVyIixQTzoiUGFnZU9wZW4iLFBDOiJQYWdlQ2xvc2UiLFBWOiJQYWdlVmlzaWJsZSIsUEk6IlBhZ2VJbnZpc2libGUiLEs6IktleXN0cm9rZSIsRjoiRm9ybWF0IixWOiJWYWxpZGF0ZSIsQzoiQ2FsY3VsYXRlIn0scmU9e1dDOiJXaWxsQ2xvc2UiLFdTOiJXaWxsU2F2ZSIsRFM6IkRpZFNhdmUiLFdQOiJXaWxsUHJpbnQiLERQOiJEaWRQcmludCJ9LGllPXtPOiJQYWdlT3BlbiIsQzoiUGFnZUNsb3NlIn0sb2U9MSxsZT01LGZlPTEsY2U9MixoZT0zLHVlPTQsbWU9NSxwZT02LGRlPTcsZ2U9OCxiZT05LHdlPTEwLGplPTExLGtlPTEyLHllPTEzLHFlPTE0LHZlPTE1LFNlPTE2LHhlPTE3LEFlPTE4LENlPTE5LEllPTIwLEZlPTIxLFRlPTIyLEhlPTIzLE9lPTI0LEJlPTI1LFJlPTI2LERlPTI3LE1lPTI4LFBlPTI5LEVlPTMwLE5lPTMxLHplPTMyLExlPTMzLFVlPTM0LF9lPTM1LFhlPTM2LFdlPTM3LEtlPTM4LEdlPTM5LFZlPTQwLCRlPTQxLFllPTQyLEplPTQzLFFlPTQ0LFplPTQ1LGV0PTQ2LHR0PTQ3LG50PTQ4LGF0PTQ5LHN0PTUwLHJ0PTUxLGl0PTUyLG90PTUzLGx0PTU0LGZ0PTU1LGN0PTU2LGh0PTU3LHV0PTU4LG10PTU5LHB0PTYwLGR0PTYxLGd0PTYyLGJ0PTYzLHd0PTY0LGp0PTY1LGt0PTY2LHl0PTY3LHF0PTY4LHZ0PTY5LFN0PTcwLHh0PTcxLEF0PTcyLEN0PTczLEl0PTc0LEZ0PTc1LFR0PTc2LEh0PTc3LE90PTgwLEJ0PTgxLFJ0PTgzLER0PTg0LE10PTg1LFB0PTg2LEV0PTg3LE50PTg4LHp0PTg5LEx0PTkwLFV0PTkxLF90PTkyLFh0PTkzLFd0PTk0LEt0PTAsR3Q9MSxWdD0yLCR0PTMsWXQ9NCxKdD0xLFF0PTI7bGV0IFp0PW9lO2Z1bmN0aW9uIGdldFZlcmJvc2l0eUxldmVsKCl7cmV0dXJuIFp0fWZ1bmN0aW9uIGluZm8oZSl7WnQ+PWxlJiZjb25zb2xlLmluZm8oYEluZm86ICR7ZX1gKX1mdW5jdGlvbiB3YXJuKGUpe1p0Pj1vZSYmY29uc29sZS53YXJuKGBXYXJuaW5nOiAke2V9YCl9ZnVuY3Rpb24gdW5yZWFjaGFibGUoZSl7dGhyb3cgbmV3IEVycm9yKGUpfWZ1bmN0aW9uIGFzc2VydChlLHQpe2V8fHVucmVhY2hhYmxlKHQpfWZ1bmN0aW9uIGNyZWF0ZVZhbGlkQWJzb2x1dGVVcmwoZSx0PW51bGwsbj1udWxsKXtpZighZSlyZXR1cm4gbnVsbDtpZihuJiYic3RyaW5nIj09dHlwZW9mIGUpe2lmKG4uYWRkRGVmYXVsdFByb3RvY29sJiZlLnN0YXJ0c1dpdGgoInd3dy4iKSl7Y29uc3QgdD1lLm1hdGNoKC9cLi9nKTt0Py5sZW5ndGg+PTImJihlPWBodHRwOi8vJHtlfWApfWlmKG4udHJ5Q29udmVydEVuY29kaW5nKXRyeXtlPXN0cmluZ1RvVVRGOFN0cmluZyhlKX1jYXRjaHt9fWNvbnN0IGE9dD9VUkwucGFyc2UoZSx0KTpVUkwucGFyc2UoZSk7cmV0dXJuIGZ1bmN0aW9uIF9pc1ZhbGlkUHJvdG9jb2woZSl7c3dpdGNoKGU/LnByb3RvY29sKXtjYXNlImh0dHA6IjpjYXNlImh0dHBzOiI6Y2FzZSJmdHA6IjpjYXNlIm1haWx0bzoiOmNhc2UidGVsOiI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19KGEpP2E6bnVsbH1mdW5jdGlvbiBzaGFkb3coZSx0LG4sYT0hMSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiFhLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMX0pO3JldHVybiBufWNvbnN0IGVuPWZ1bmN0aW9uIEJhc2VFeGNlcHRpb25DbG9zdXJlKCl7ZnVuY3Rpb24gQmFzZUV4Y2VwdGlvbihlLHQpe3RoaXMubWVzc2FnZT1lO3RoaXMubmFtZT10fUJhc2VFeGNlcHRpb24ucHJvdG90eXBlPW5ldyBFcnJvcjtCYXNlRXhjZXB0aW9uLmNvbnN0cnVjdG9yPUJhc2VFeGNlcHRpb247cmV0dXJuIEJhc2VFeGNlcHRpb259KCk7Y2xhc3MgUGFzc3dvcmRFeGNlcHRpb24gZXh0ZW5kcyBlbntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsIlBhc3N3b3JkRXhjZXB0aW9uIik7dGhpcy5jb2RlPXR9fWNsYXNzIFVua25vd25FcnJvckV4Y2VwdGlvbiBleHRlbmRzIGVue2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSwiVW5rbm93bkVycm9yRXhjZXB0aW9uIik7dGhpcy5kZXRhaWxzPXR9fWNsYXNzIEludmFsaWRQREZFeGNlcHRpb24gZXh0ZW5kcyBlbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJJbnZhbGlkUERGRXhjZXB0aW9uIil9fWNsYXNzIFJlc3BvbnNlRXhjZXB0aW9uIGV4dGVuZHMgZW57Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGUsIlJlc3BvbnNlRXhjZXB0aW9uIik7dGhpcy5zdGF0dXM9dDt0aGlzLm1pc3Npbmc9bn19Y2xhc3MgRm9ybWF0RXJyb3IgZXh0ZW5kcyBlbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJGb3JtYXRFcnJvciIpfX1jbGFzcyBBYm9ydEV4Y2VwdGlvbiBleHRlbmRzIGVue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkFib3J0RXhjZXB0aW9uIil9fWZ1bmN0aW9uIGJ5dGVzVG9TdHJpbmcoZSl7Im9iamVjdCI9PXR5cGVvZiBlJiZ2b2lkIDAhPT1lPy5sZW5ndGh8fHVucmVhY2hhYmxlKCJJbnZhbGlkIGFyZ3VtZW50IGZvciBieXRlc1RvU3RyaW5nIik7Y29uc3QgdD1lLmxlbmd0aCxuPTgxOTI7aWYodDxuKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsZSk7Y29uc3QgYT1bXTtmb3IobGV0IHM9MDtzPHQ7cys9bil7Y29uc3Qgcj1NYXRoLm1pbihzK24sdCksaT1lLnN1YmFycmF5KHMscik7YS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxpKSl9cmV0dXJuIGEuam9pbigiIil9ZnVuY3Rpb24gc3RyaW5nVG9CeXRlcyhlKXsic3RyaW5nIiE9dHlwZW9mIGUmJnVucmVhY2hhYmxlKCJJbnZhbGlkIGFyZ3VtZW50IGZvciBzdHJpbmdUb0J5dGVzIik7Y29uc3QgdD1lLmxlbmd0aCxuPW5ldyBVaW50OEFycmF5KHQpO2ZvcihsZXQgYT0wO2E8dDsrK2EpblthXT0yNTUmZS5jaGFyQ29kZUF0KGEpO3JldHVybiBufWZ1bmN0aW9uIHN0cmluZzMyKGUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmUpfWZ1bmN0aW9uIG9iamVjdFNpemUoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmxlbmd0aH1jbGFzcyBGZWF0dXJlVGVzdHtzdGF0aWMgZ2V0IGlzTGl0dGxlRW5kaWFuKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJpc0xpdHRsZUVuZGlhbiIsZnVuY3Rpb24gaXNMaXR0bGVFbmRpYW4oKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KDQpO2VbMF09MTtyZXR1cm4gMT09PW5ldyBVaW50MzJBcnJheShlLmJ1ZmZlciwwLDEpWzBdfSgpKX1zdGF0aWMgZ2V0IGlzRXZhbFN1cHBvcnRlZCgpe3JldHVybiBzaGFkb3codGhpcywiaXNFdmFsU3VwcG9ydGVkIixmdW5jdGlvbiBpc0V2YWxTdXBwb3J0ZWQoKXt0cnl7bmV3IEZ1bmN0aW9uKCIiKTtyZXR1cm4hMH1jYXRjaHtyZXR1cm4hMX19KCkpfXN0YXRpYyBnZXQgaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQoKXtyZXR1cm4gc2hhZG93KHRoaXMsImlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkIiwidW5kZWZpbmVkIiE9dHlwZW9mIE9mZnNjcmVlbkNhbnZhcyl9c3RhdGljIGdldCBpc0ltYWdlRGVjb2RlclN1cHBvcnRlZCgpe3JldHVybiBzaGFkb3codGhpcywiaXNJbWFnZURlY29kZXJTdXBwb3J0ZWQiLCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VEZWNvZGVyKX1zdGF0aWMgZ2V0IGlzRmxvYXQxNkFycmF5U3VwcG9ydGVkKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJpc0Zsb2F0MTZBcnJheVN1cHBvcnRlZCIsInVuZGVmaW5lZCIhPXR5cGVvZiBGbG9hdDE2QXJyYXkpfXN0YXRpYyBnZXQgaXNTYW5pdGl6ZXJTdXBwb3J0ZWQoKXtyZXR1cm4gc2hhZG93KHRoaXMsImlzU2FuaXRpemVyU3VwcG9ydGVkIiwidW5kZWZpbmVkIiE9dHlwZW9mIFNhbml0aXplcil9c3RhdGljIGdldCBwbGF0Zm9ybSgpe2NvbnN0e3BsYXRmb3JtOmUsdXNlckFnZW50OnR9PW5hdmlnYXRvcjtyZXR1cm4gc2hhZG93KHRoaXMsInBsYXRmb3JtIix7aXNBbmRyb2lkOnQuaW5jbHVkZXMoIkFuZHJvaWQiKSxpc0xpbnV4OmUuaW5jbHVkZXMoIkxpbnV4IiksaXNNYWM6ZS5pbmNsdWRlcygiTWFjIiksaXNXaW5kb3dzOmUuaW5jbHVkZXMoIldpbiIpLGlzRmlyZWZveDp0LmluY2x1ZGVzKCJGaXJlZm94Iil9KX1zdGF0aWMgZ2V0IGlzQ1NTUm91bmRTdXBwb3J0ZWQoKXtyZXR1cm4gc2hhZG93KHRoaXMsImlzQ1NTUm91bmRTdXBwb3J0ZWQiLGdsb2JhbFRoaXMuQ1NTPy5zdXBwb3J0cz8uKCJ3aWR0aDogcm91bmQoMS41cHgsIDFweCkiKSl9fWNvbnN0IHRuPUFycmF5LmZyb20oQXJyYXkoMjU2KS5rZXlzKCksZT0+ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKTtjbGFzcyBVdGlse3N0YXRpYyBtYWtlSGV4Q29sb3IoZSx0LG4pe3JldHVybmAjJHt0bltlXX0ke3RuW3RdfSR7dG5bbl19YH1zdGF0aWMgZG9tTWF0cml4VG9UcmFuc2Zvcm0oZSl7cmV0dXJuW2UuYSxlLmIsZS5jLGUuZCxlLmUsZS5mXX1zdGF0aWMgc2NhbGVNaW5NYXgoZSx0KXtsZXQgbjtpZihlWzBdKXtpZihlWzBdPDApe249dFswXTt0WzBdPXRbMl07dFsyXT1ufXRbMF0qPWVbMF07dFsyXSo9ZVswXTtpZihlWzNdPDApe249dFsxXTt0WzFdPXRbM107dFszXT1ufXRbMV0qPWVbM107dFszXSo9ZVszXX1lbHNle249dFswXTt0WzBdPXRbMV07dFsxXT1uO249dFsyXTt0WzJdPXRbM107dFszXT1uO2lmKGVbMV08MCl7bj10WzFdO3RbMV09dFszXTt0WzNdPW59dFsxXSo9ZVsxXTt0WzNdKj1lWzFdO2lmKGVbMl08MCl7bj10WzBdO3RbMF09dFsyXTt0WzJdPW59dFswXSo9ZVsyXTt0WzJdKj1lWzJdfXRbMF0rPWVbNF07dFsxXSs9ZVs1XTt0WzJdKz1lWzRdO3RbM10rPWVbNV19c3RhdGljIHRyYW5zZm9ybShlLHQpe3JldHVybltlWzBdKnRbMF0rZVsyXSp0WzFdLGVbMV0qdFswXStlWzNdKnRbMV0sZVswXSp0WzJdK2VbMl0qdFszXSxlWzFdKnRbMl0rZVszXSp0WzNdLGVbMF0qdFs0XStlWzJdKnRbNV0rZVs0XSxlWzFdKnRbNF0rZVszXSp0WzVdK2VbNV1dfXN0YXRpYyBtdWx0aXBseUJ5RE9NTWF0cml4KGUsdCl7cmV0dXJuW2VbMF0qdC5hK2VbMl0qdC5iLGVbMV0qdC5hK2VbM10qdC5iLGVbMF0qdC5jK2VbMl0qdC5kLGVbMV0qdC5jK2VbM10qdC5kLGVbMF0qdC5lK2VbMl0qdC5mK2VbNF0sZVsxXSp0LmUrZVszXSp0LmYrZVs1XV19c3RhdGljIGFwcGx5VHJhbnNmb3JtKGUsdCxuPTApe2NvbnN0IGE9ZVtuXSxzPWVbbisxXTtlW25dPWEqdFswXStzKnRbMl0rdFs0XTtlW24rMV09YSp0WzFdK3MqdFszXSt0WzVdfXN0YXRpYyBhcHBseVRyYW5zZm9ybVRvQmV6aWVyKGUsdCxuPTApe2NvbnN0IGE9dFswXSxzPXRbMV0scj10WzJdLGk9dFszXSxvPXRbNF0sbD10WzVdO2ZvcihsZXQgdD0wO3Q8Njt0Kz0yKXtjb25zdCBmPWVbbit0XSxjPWVbbit0KzFdO2Vbbit0XT1mKmErYypyK287ZVtuK3QrMV09ZipzK2MqaStsfX1zdGF0aWMgYXBwbHlJbnZlcnNlVHJhbnNmb3JtKGUsdCl7Y29uc3Qgbj1lWzBdLGE9ZVsxXSxzPXRbMF0qdFszXS10WzFdKnRbMl07ZVswXT0obip0WzNdLWEqdFsyXSt0WzJdKnRbNV0tdFs0XSp0WzNdKS9zO2VbMV09KC1uKnRbMV0rYSp0WzBdK3RbNF0qdFsxXS10WzVdKnRbMF0pL3N9c3RhdGljIGF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KGUsdCxuKXtjb25zdCBhPXRbMF0scz10WzFdLHI9dFsyXSxpPXRbM10sbz10WzRdLGw9dFs1XSxmPWVbMF0sYz1lWzFdLGg9ZVsyXSx1PWVbM107bGV0IG09YSpmK28scD1tLGQ9YSpoK28sZz1kLGI9aSpjK2wsdz1iLGo9aSp1K2wsaz1qO2lmKDAhPT1zfHwwIT09cil7Y29uc3QgZT1zKmYsdD1zKmgsbj1yKmMsYT1yKnU7bSs9bjtnKz1uO2QrPWE7cCs9YTtiKz1lO2srPWU7ais9dDt3Kz10fW5bMF09TWF0aC5taW4oblswXSxtLGQscCxnKTtuWzFdPU1hdGgubWluKG5bMV0sYixqLHcsayk7blsyXT1NYXRoLm1heChuWzJdLG0sZCxwLGcpO25bM109TWF0aC5tYXgoblszXSxiLGosdyxrKX1zdGF0aWMgaW52ZXJzZVRyYW5zZm9ybShlKXtjb25zdCB0PWVbMF0qZVszXS1lWzFdKmVbMl07cmV0dXJuW2VbM10vdCwtZVsxXS90LC1lWzJdL3QsZVswXS90LChlWzJdKmVbNV0tZVs0XSplWzNdKS90LChlWzRdKmVbMV0tZVs1XSplWzBdKS90XX1zdGF0aWMgc2luZ3VsYXJWYWx1ZURlY29tcG9zZTJkU2NhbGUoZSx0KXtjb25zdCBuPWVbMF0sYT1lWzFdLHM9ZVsyXSxyPWVbM10saT1uKioyK2EqKjIsbz1uKnMrYSpyLGw9cyoqMityKioyLGY9KGkrbCkvMixjPU1hdGguc3FydChmKioyLShpKmwtbyoqMikpO3RbMF09TWF0aC5zcXJ0KGYrY3x8MSk7dFsxXT1NYXRoLnNxcnQoZi1jfHwxKX1zdGF0aWMgbm9ybWFsaXplUmVjdChlKXtjb25zdCB0PWUuc2xpY2UoMCk7aWYoZVswXT5lWzJdKXt0WzBdPWVbMl07dFsyXT1lWzBdfWlmKGVbMV0+ZVszXSl7dFsxXT1lWzNdO3RbM109ZVsxXX1yZXR1cm4gdH1zdGF0aWMgaW50ZXJzZWN0KGUsdCl7Y29uc3Qgbj1NYXRoLm1heChNYXRoLm1pbihlWzBdLGVbMl0pLE1hdGgubWluKHRbMF0sdFsyXSkpLGE9TWF0aC5taW4oTWF0aC5tYXgoZVswXSxlWzJdKSxNYXRoLm1heCh0WzBdLHRbMl0pKTtpZihuPmEpcmV0dXJuIG51bGw7Y29uc3Qgcz1NYXRoLm1heChNYXRoLm1pbihlWzFdLGVbM10pLE1hdGgubWluKHRbMV0sdFszXSkpLHI9TWF0aC5taW4oTWF0aC5tYXgoZVsxXSxlWzNdKSxNYXRoLm1heCh0WzFdLHRbM10pKTtyZXR1cm4gcz5yP251bGw6W24scyxhLHJdfXN0YXRpYyBwb2ludEJvdW5kaW5nQm94KGUsdCxuKXtuWzBdPU1hdGgubWluKG5bMF0sZSk7blsxXT1NYXRoLm1pbihuWzFdLHQpO25bMl09TWF0aC5tYXgoblsyXSxlKTtuWzNdPU1hdGgubWF4KG5bM10sdCl9c3RhdGljIHJlY3RCb3VuZGluZ0JveChlLHQsbixhLHMpe3NbMF09TWF0aC5taW4oc1swXSxlLG4pO3NbMV09TWF0aC5taW4oc1sxXSx0LGEpO3NbMl09TWF0aC5tYXgoc1syXSxlLG4pO3NbM109TWF0aC5tYXgoc1szXSx0LGEpfXN0YXRpYyNlKGUsdCxuLGEscyxyLGksbyxsLGYpe2lmKGw8PTB8fGw+PTEpcmV0dXJuO2NvbnN0IGM9MS1sLGg9bCpsLHU9aCpsLG09YyooYyooYyplKzMqbCp0KSszKmgqbikrdSphLHA9YyooYyooYypzKzMqbCpyKSszKmgqaSkrdSpvO2ZbMF09TWF0aC5taW4oZlswXSxtKTtmWzFdPU1hdGgubWluKGZbMV0scCk7ZlsyXT1NYXRoLm1heChmWzJdLG0pO2ZbM109TWF0aC5tYXgoZlszXSxwKX1zdGF0aWMjdChlLHQsbixhLHMscixpLG8sbCxmLGMsaCl7aWYoTWF0aC5hYnMobCk8MWUtMTIpe01hdGguYWJzKGYpPj0xZS0xMiYmdGhpcy4jZShlLHQsbixhLHMscixpLG8sLWMvZixoKTtyZXR1cm59Y29uc3QgdT1mKioyLTQqYypsO2lmKHU8MClyZXR1cm47Y29uc3QgbT1NYXRoLnNxcnQodSkscD0yKmw7dGhpcy4jZShlLHQsbixhLHMscixpLG8sKC1mK20pL3AsaCk7dGhpcy4jZShlLHQsbixhLHMscixpLG8sKC1mLW0pL3AsaCl9c3RhdGljIGJlemllckJvdW5kaW5nQm94KGUsdCxuLGEscyxyLGksbyxsKXtsWzBdPU1hdGgubWluKGxbMF0sZSxpKTtsWzFdPU1hdGgubWluKGxbMV0sdCxvKTtsWzJdPU1hdGgubWF4KGxbMl0sZSxpKTtsWzNdPU1hdGgubWF4KGxbM10sdCxvKTt0aGlzLiN0KGUsbixzLGksdCxhLHIsbywzKigzKihuLXMpLWUraSksNiooZS0yKm4rcyksMyoobi1lKSxsKTt0aGlzLiN0KGUsbixzLGksdCxhLHIsbywzKigzKihhLXIpLXQrbyksNioodC0yKmErciksMyooYS10KSxsKX19Y29uc3Qgbm49WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDcyOCw3MTEsNzEwLDcyOSw3MzMsNzMxLDczMCw3MzIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODIyNiw4MjI0LDgyMjUsODIzMCw4MjEyLDgyMTEsNDAyLDgyNjAsODI0OSw4MjUwLDg3MjIsODI0MCw4MjIyLDgyMjAsODIyMSw4MjE2LDgyMTcsODIxOCw4NDgyLDY0MjU3LDY0MjU4LDMyMSwzMzgsMzUyLDM3NiwzODEsMzA1LDMyMiwzMzksMzUzLDM4MiwwLDgzNjRdO2Z1bmN0aW9uIHN0cmluZ1RvUERGU3RyaW5nKGUsdD0hMSl7aWYoZVswXT49IsOvIil7bGV0IG47aWYoIsO+Ij09PWVbMF0mJiLDvyI9PT1lWzFdKXtuPSJ1dGYtMTZiZSI7ZS5sZW5ndGglMj09MSYmKGU9ZS5zbGljZSgwLC0xKSl9ZWxzZSBpZigiw78iPT09ZVswXSYmIsO+Ij09PWVbMV0pe249InV0Zi0xNmxlIjtlLmxlbmd0aCUyPT0xJiYoZT1lLnNsaWNlKDAsLTEpKX1lbHNlIsOvIj09PWVbMF0mJiLCuyI9PT1lWzFdJiYiwr8iPT09ZVsyXSYmKG49InV0Zi04Iik7aWYobil0cnl7Y29uc3QgYT1uZXcgVGV4dERlY29kZXIobix7ZmF0YWw6ITB9KSxzPXN0cmluZ1RvQnl0ZXMoZSkscj1hLmRlY29kZShzKTtyZXR1cm4gdHx8IXIuaW5jbHVkZXMoIhsiKT9yOnIucmVwbGFjZUFsbCgvXHgxYlteXHgxYl0qKD86XHgxYnwkKS9nLCIiKX1jYXRjaChlKXt3YXJuKGBzdHJpbmdUb1BERlN0cmluZzogIiR7ZX0iLmApfX1jb25zdCBuPVtdO2ZvcihsZXQgYT0wLHM9ZS5sZW5ndGg7YTxzO2ErKyl7Y29uc3Qgcj1lLmNoYXJDb2RlQXQoYSk7aWYoIXQmJjI3PT09cil7Zm9yKDsrK2E8cyYmMjchPT1lLmNoYXJDb2RlQXQoYSk7KTtjb250aW51ZX1jb25zdCBpPW5uW3JdO24ucHVzaChpP1N0cmluZy5mcm9tQ2hhckNvZGUoaSk6ZS5jaGFyQXQoYSkpfXJldHVybiBuLmpvaW4oIiIpfWZ1bmN0aW9uIHN0cmluZ1RvVVRGOFN0cmluZyhlKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShlKSl9ZnVuY3Rpb24gdXRmOFN0cmluZ1RvU3RyaW5nKGUpe3JldHVybiB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZSkpfWZ1bmN0aW9uIGlzQXJyYXlFcXVhbChlLHQpe2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKWlmKGVbbl0hPT10W25dKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGdldE1vZGlmaWNhdGlvbkRhdGUoZT1uZXcgRGF0ZSl7ZSBpbnN0YW5jZW9mIERhdGV8fChlPW5ldyBEYXRlKGUpKTtyZXR1cm5bZS5nZXRVVENGdWxsWWVhcigpLnRvU3RyaW5nKCksKGUuZ2V0VVRDTW9udGgoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxlLmdldFVUQ0RhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxlLmdldFVUQ0hvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksZS5nZXRVVENNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksZS5nZXRVVENTZWNvbmRzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIildLmpvaW4oIiIpfWxldCBhbj1udWxsLHNuPW51bGw7Y29uc3QgbWFrZUFycj0oKT0+W10sbWFrZU1hcD0oKT0+bmV3IE1hcCxtYWtlT2JqPSgpPT5PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIE1hdGhDbGFtcChlLHQsbil7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGUsdCksbil9ImZ1bmN0aW9uIiE9dHlwZW9mIE1hdGguc3VtUHJlY2lzZSYmKE1hdGguc3VtUHJlY2lzZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZWR1Y2UoKGUsdCk9PmUrdCwwKX0pO2NvbnN0IHJuPVN5bWJvbCgiQ0lSQ1VMQVJfUkVGIiksb249U3ltYm9sKCJFT0YiKTtsZXQgbG49T2JqZWN0LmNyZWF0ZShudWxsKSxmbj1PYmplY3QuY3JlYXRlKG51bGwpLGNuPU9iamVjdC5jcmVhdGUobnVsbCk7Y2xhc3MgTmFtZXtjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9ZX1zdGF0aWMgZ2V0KGUpe3JldHVybiBmbltlXXx8PW5ldyBOYW1lKGUpfX1jbGFzcyBDbWR7Y29uc3RydWN0b3IoZSl7dGhpcy5jbWQ9ZX1zdGF0aWMgZ2V0KGUpe3JldHVybiBsbltlXXx8PW5ldyBDbWQoZSl9fWNvbnN0IGhuPWZ1bmN0aW9uIG5vblNlcmlhbGl6YWJsZUNsb3N1cmUoKXtyZXR1cm4gaG59O2NsYXNzIERpY3R7Y29uc3RydWN0b3IoZT1udWxsKXt0aGlzLl9tYXA9bmV3IE1hcDt0aGlzLnhyZWY9ZTt0aGlzLm9iaklkPW51bGw7dGhpcy5zdXBwcmVzc0VuY3J5cHRpb249ITE7dGhpcy5fX25vblNlcmlhbGl6YWJsZV9fPWhufWFzc2lnblhyZWYoZSl7dGhpcy54cmVmPWV9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5fbWFwLnNpemV9Z2V0KGUsdCxuKXtsZXQgYT10aGlzLl9tYXAuZ2V0KGUpO2lmKHZvaWQgMD09PWEmJnZvaWQgMCE9PXQpe2E9dGhpcy5fbWFwLmdldCh0KTt2b2lkIDA9PT1hJiZ2b2lkIDAhPT1uJiYoYT10aGlzLl9tYXAuZ2V0KG4pKX1yZXR1cm4gYSBpbnN0YW5jZW9mIFJlZiYmdGhpcy54cmVmP3RoaXMueHJlZi5mZXRjaChhLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKTphfWFzeW5jIGdldEFzeW5jKGUsdCxuKXtsZXQgYT10aGlzLl9tYXAuZ2V0KGUpO2lmKHZvaWQgMD09PWEmJnZvaWQgMCE9PXQpe2E9dGhpcy5fbWFwLmdldCh0KTt2b2lkIDA9PT1hJiZ2b2lkIDAhPT1uJiYoYT10aGlzLl9tYXAuZ2V0KG4pKX1yZXR1cm4gYSBpbnN0YW5jZW9mIFJlZiYmdGhpcy54cmVmP3RoaXMueHJlZi5mZXRjaEFzeW5jKGEsdGhpcy5zdXBwcmVzc0VuY3J5cHRpb24pOmF9Z2V0QXJyYXkoZSx0LG4pe2xldCBhPXRoaXMuX21hcC5nZXQoZSk7aWYodm9pZCAwPT09YSYmdm9pZCAwIT09dCl7YT10aGlzLl9tYXAuZ2V0KHQpO3ZvaWQgMD09PWEmJnZvaWQgMCE9PW4mJihhPXRoaXMuX21hcC5nZXQobikpfWEgaW5zdGFuY2VvZiBSZWYmJnRoaXMueHJlZiYmKGE9dGhpcy54cmVmLmZldGNoKGEsdGhpcy5zdXBwcmVzc0VuY3J5cHRpb24pKTtpZihBcnJheS5pc0FycmF5KGEpKXthPWEuc2xpY2UoKTtmb3IobGV0IGU9MCx0PWEubGVuZ3RoO2U8dDtlKyspYVtlXWluc3RhbmNlb2YgUmVmJiZ0aGlzLnhyZWYmJihhW2VdPXRoaXMueHJlZi5mZXRjaChhW2VdLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKSl9cmV0dXJuIGF9Z2V0UmF3KGUpe3JldHVybiB0aGlzLl9tYXAuZ2V0KGUpfWdldEtleXMoKXtyZXR1cm5bLi4udGhpcy5fbWFwLmtleXMoKV19Z2V0UmF3VmFsdWVzKCl7cmV0dXJuWy4uLnRoaXMuX21hcC52YWx1ZXMoKV19Z2V0UmF3RW50cmllcygpe3JldHVybiB0aGlzLl9tYXAuZW50cmllcygpfXNldChlLHQpe3RoaXMuX21hcC5zZXQoZSx0KX1zZXRJZk5vdEV4aXN0cyhlLHQpe3RoaXMuaGFzKGUpfHx0aGlzLnNldChlLHQpfXNldElmTnVtYmVyKGUsdCl7Im51bWJlciI9PXR5cGVvZiB0JiZ0aGlzLnNldChlLHQpfXNldElmQXJyYXkoZSx0KXsoQXJyYXkuaXNBcnJheSh0KXx8QXJyYXlCdWZmZXIuaXNWaWV3KHQpKSYmdGhpcy5zZXQoZSx0KX1zZXRJZkRlZmluZWQoZSx0KXtudWxsIT10JiZ0aGlzLnNldChlLHQpfXNldElmTmFtZShlLHQpeyJzdHJpbmciPT10eXBlb2YgdD90aGlzLnNldChlLE5hbWUuZ2V0KHQpKTp0IGluc3RhbmNlb2YgTmFtZSYmdGhpcy5zZXQoZSx0KX1zZXRJZkRpY3QoZSx0KXt0IGluc3RhbmNlb2YgRGljdCYmdGhpcy5zZXQoZSx0KX1oYXMoZSl7cmV0dXJuIHRoaXMuX21hcC5oYXMoZSl9KltTeW1ib2wuaXRlcmF0b3JdKCl7Zm9yKGNvbnN0W2UsdF1vZiB0aGlzLl9tYXApeWllbGRbZSx0IGluc3RhbmNlb2YgUmVmJiZ0aGlzLnhyZWY/dGhpcy54cmVmLmZldGNoKHQsdGhpcy5zdXBwcmVzc0VuY3J5cHRpb24pOnRdfXN0YXRpYyBnZXQgZW1wdHkoKXtjb25zdCBlPW5ldyBEaWN0KG51bGwpO2Uuc2V0PShlLHQpPT57dW5yZWFjaGFibGUoIlNob3VsZCBub3QgY2FsbCBgc2V0YCBvbiB0aGUgZW1wdHkgZGljdGlvbmFyeS4iKX07cmV0dXJuIHNoYWRvdyh0aGlzLCJlbXB0eSIsZSl9c3RhdGljIG1lcmdlKHt4cmVmOmUsZGljdEFycmF5OnQsbWVyZ2VTdWJEaWN0czpuPSExfSl7Y29uc3QgYT1uZXcgRGljdChlKSxzPW5ldyBNYXA7Zm9yKGNvbnN0IGUgb2YgdClpZihlIGluc3RhbmNlb2YgRGljdClmb3IoY29uc3RbdCxhXW9mIGUuX21hcCl7bGV0IGU9cy5nZXQodCk7aWYodm9pZCAwPT09ZSl7ZT1bXTtzLnNldCh0LGUpfWVsc2UgaWYoIShuJiZhIGluc3RhbmNlb2YgRGljdCkpY29udGludWU7ZS5wdXNoKGEpfWZvcihjb25zdFt0LG5db2Ygcyl7aWYoMT09PW4ubGVuZ3RofHwhKG5bMF1pbnN0YW5jZW9mIERpY3QpKXthLl9tYXAuc2V0KHQsblswXSk7Y29udGludWV9Y29uc3Qgcz1uZXcgRGljdChlKTtmb3IoY29uc3QgZSBvZiBuKWZvcihjb25zdFt0LG5db2YgZS5fbWFwKXMuX21hcC5oYXModCl8fHMuX21hcC5zZXQodCxuKTtzLnNpemU+MCYmYS5fbWFwLnNldCh0LHMpfXMuY2xlYXIoKTtyZXR1cm4gYS5zaXplPjA/YTpEaWN0LmVtcHR5fWNsb25lKCl7Y29uc3QgZT1uZXcgRGljdCh0aGlzLnhyZWYpO2Zvcihjb25zdCB0IG9mIHRoaXMuZ2V0S2V5cygpKWUuc2V0KHQsdGhpcy5nZXRSYXcodCkpO3JldHVybiBlfWRlbGV0ZShlKXt0aGlzLl9tYXAuZGVsZXRlKGUpfX1jbGFzcyBSZWZ7Y29uc3RydWN0b3IoZSx0KXt0aGlzLm51bT1lO3RoaXMuZ2VuPXR9dG9TdHJpbmcoKXtyZXR1cm4gMD09PXRoaXMuZ2VuP2Ake3RoaXMubnVtfVJgOmAke3RoaXMubnVtfVIke3RoaXMuZ2VufWB9c3RhdGljIGZyb21TdHJpbmcoZSl7Y29uc3QgdD1jbltlXTtpZih0KXJldHVybiB0O2NvbnN0IG49L14oXGQrKVIoXGQqKSQvLmV4ZWMoZSk7cmV0dXJuIG4mJiIwIiE9PW5bMV0/Y25bZV09bmV3IFJlZihwYXJzZUludChuWzFdKSxuWzJdP3BhcnNlSW50KG5bMl0pOjApOm51bGx9c3RhdGljIGdldChlLHQpe2NvbnN0IG49MD09PXQ/YCR7ZX1SYDpgJHtlfVIke3R9YDtyZXR1cm4gY25bbl18fD1uZXcgUmVmKGUsdCl9fWNsYXNzIFJlZlNldHtjb25zdHJ1Y3RvcihlPW51bGwpe3RoaXMuX3NldD1uZXcgU2V0KGU/Ll9zZXQpfWhhcyhlKXtyZXR1cm4gdGhpcy5fc2V0LmhhcyhlLnRvU3RyaW5nKCkpfXB1dChlKXt0aGlzLl9zZXQuYWRkKGUudG9TdHJpbmcoKSl9cmVtb3ZlKGUpe3RoaXMuX3NldC5kZWxldGUoZS50b1N0cmluZygpKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLl9zZXQudmFsdWVzKCl9Y2xlYXIoKXt0aGlzLl9zZXQuY2xlYXIoKX19Y2xhc3MgUmVmU2V0Q2FjaGV7X21hcD1uZXcgTWFwO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuX21hcC5zaXplfWdldChlKXtyZXR1cm4gdGhpcy5fbWFwLmdldChlLnRvU3RyaW5nKCkpfWhhcyhlKXtyZXR1cm4gdGhpcy5fbWFwLmhhcyhlLnRvU3RyaW5nKCkpfXB1dChlLHQpe3RoaXMuX21hcC5zZXQoZS50b1N0cmluZygpLHQpfXB1dEFsaWFzKGUsdCl7dGhpcy5fbWFwLnNldChlLnRvU3RyaW5nKCksdGhpcy5nZXQodCkpfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuX21hcC52YWx1ZXMoKX1jbGVhcigpe3RoaXMuX21hcC5jbGVhcigpfSp2YWx1ZXMoKXt5aWVsZCp0aGlzLl9tYXAudmFsdWVzKCl9Kml0ZW1zKCl7Zm9yKGNvbnN0W2UsdF1vZiB0aGlzLl9tYXApeWllbGRbUmVmLmZyb21TdHJpbmcoZSksdF19KmtleXMoKXtmb3IoY29uc3QgZSBvZiB0aGlzLl9tYXAua2V5cygpKXlpZWxkIFJlZi5mcm9tU3RyaW5nKGUpfX1mdW5jdGlvbiBpc05hbWUoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIE5hbWUmJih2b2lkIDA9PT10fHxlLm5hbWU9PT10KX1mdW5jdGlvbiBpc0NtZChlLHQpe3JldHVybiBlIGluc3RhbmNlb2YgQ21kJiYodm9pZCAwPT09dHx8ZS5jbWQ9PT10KX1mdW5jdGlvbiBpc0RpY3QoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIERpY3QmJih2b2lkIDA9PT10fHxpc05hbWUoZS5nZXQoIlR5cGUiKSx0KSl9ZnVuY3Rpb24gaXNSZWZzRXF1YWwoZSx0KXtyZXR1cm4gZS5udW09PT10Lm51bSYmZS5nZW49PT10Lmdlbn1jbGFzcyBCYXNlU3RyZWFte2dldCBsZW5ndGgoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgZ2V0dGVyIGBsZW5ndGhgIGFjY2Vzc2VkIil9Z2V0IGlzRW1wdHkoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgZ2V0dGVyIGBpc0VtcHR5YCBhY2Nlc3NlZCIpfWdldCBpc0RhdGFMb2FkZWQoKXtyZXR1cm4gc2hhZG93KHRoaXMsImlzRGF0YUxvYWRlZCIsITApfWdldEJ5dGUoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRCeXRlYCBjYWxsZWQiKX1nZXRCeXRlcyhlKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRCeXRlc2AgY2FsbGVkIil9YXN5bmMgZ2V0SW1hZ2VEYXRhKGUsdCl7cmV0dXJuIHRoaXMuZ2V0Qnl0ZXMoZSx0KX1hc3luYyBhc3luY0dldEJ5dGVzKCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgYXN5bmNHZXRCeXRlc2AgY2FsbGVkIil9Z2V0IGlzQXN5bmMoKXtyZXR1cm4hMX1nZXQgaXNBc3luY0RlY29kZXIoKXtyZXR1cm4hMX1nZXQgaXNJbWFnZVN0cmVhbSgpe3JldHVybiExfWdldCBjYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlcigpe3JldHVybiExfWFzeW5jIGdldFRyYW5zZmVyYWJsZUltYWdlKCl7cmV0dXJuIG51bGx9cGVla0J5dGUoKXtjb25zdCBlPXRoaXMuZ2V0Qnl0ZSgpOy0xIT09ZSYmdGhpcy5wb3MtLTtyZXR1cm4gZX1wZWVrQnl0ZXMoZSl7Y29uc3QgdD10aGlzLmdldEJ5dGVzKGUpO3RoaXMucG9zLT10Lmxlbmd0aDtyZXR1cm4gdH1nZXRVaW50MTYoKXtjb25zdCBlPXRoaXMuZ2V0Qnl0ZSgpLHQ9dGhpcy5nZXRCeXRlKCk7cmV0dXJuLTE9PT1lfHwtMT09PXQ/LTE6KGU8PDgpK3R9Z2V0SW50MzIoKXtyZXR1cm4odGhpcy5nZXRCeXRlKCk8PDI0KSsodGhpcy5nZXRCeXRlKCk8PDE2KSsodGhpcy5nZXRCeXRlKCk8PDgpK3RoaXMuZ2V0Qnl0ZSgpfWdldEJ5dGVSYW5nZShlLHQpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYGdldEJ5dGVSYW5nZWAgY2FsbGVkIil9Z2V0U3RyaW5nKGUpe3JldHVybiBieXRlc1RvU3RyaW5nKHRoaXMuZ2V0Qnl0ZXMoZSkpfXNraXAoZSl7dGhpcy5wb3MrPWV8fDF9cmVzZXQoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGByZXNldGAgY2FsbGVkIil9bW92ZVN0YXJ0KCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgbW92ZVN0YXJ0YCBjYWxsZWQiKX1tYWtlU3ViU3RyZWFtKGUsdCxuPW51bGwpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYG1ha2VTdWJTdHJlYW1gIGNhbGxlZCIpfWdldEJhc2VTdHJlYW1zKCl7cmV0dXJuIG51bGx9Z2V0T3JpZ2luYWxTdHJlYW0oKXtyZXR1cm4gdGhpcy5zdHJlYW0/LmdldE9yaWdpbmFsU3RyZWFtKCl8fHRoaXN9fWNvbnN0IHVuPS9eWzEtOV1cLlxkJC8sbW49MioqMzEtMSxwbj1bMSwwLDAsMSwwLDBdLGRuPVsiQ29sb3JTcGFjZSIsIkV4dEdTdGF0ZSIsIkZvbnQiLCJQYXR0ZXJuIiwiUHJvcGVydGllcyIsIlNoYWRpbmciLCJYT2JqZWN0Il0sZ249WyJFeHRHU3RhdGUiLCJGb250IiwiUHJvcGVydGllcyIsIlhPYmplY3QiXTtmdW5jdGlvbiBnZXRMb29rdXBUYWJsZUZhY3RvcnkoZSl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoZSl7dD1PYmplY3QuY3JlYXRlKG51bGwpO2UodCk7ZT1udWxsfXJldHVybiB0fX1jbGFzcyBNaXNzaW5nRGF0YUV4Y2VwdGlvbiBleHRlbmRzIGVue2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoYE1pc3NpbmcgZGF0YSBbJHtlfSwgJHt0fSlgLCJNaXNzaW5nRGF0YUV4Y2VwdGlvbiIpO3RoaXMuYmVnaW49ZTt0aGlzLmVuZD10fX1jbGFzcyBQYXJzZXJFT0ZFeGNlcHRpb24gZXh0ZW5kcyBlbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJQYXJzZXJFT0ZFeGNlcHRpb24iKX19Y2xhc3MgWFJlZkVudHJ5RXhjZXB0aW9uIGV4dGVuZHMgZW57Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiWFJlZkVudHJ5RXhjZXB0aW9uIil9fWNsYXNzIFhSZWZQYXJzZUV4Y2VwdGlvbiBleHRlbmRzIGVue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIlhSZWZQYXJzZUV4Y2VwdGlvbiIpfX1mdW5jdGlvbiBhcnJheUJ1ZmZlcnNUb0J5dGVzKGUpe2NvbnN0IHQ9ZS5sZW5ndGg7aWYoMD09PXQpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2lmKDE9PT10KXJldHVybiBuZXcgVWludDhBcnJheShlWzBdKTtsZXQgbj0wO2ZvcihsZXQgYT0wO2E8dDthKyspbis9ZVthXS5ieXRlTGVuZ3RoO2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkobik7bGV0IHM9MDtmb3IobGV0IG49MDtuPHQ7bisrKXtjb25zdCB0PW5ldyBVaW50OEFycmF5KGVbbl0pO2Euc2V0KHQscyk7cys9dC5ieXRlTGVuZ3RofXJldHVybiBhfWFzeW5jIGZ1bmN0aW9uIGZldGNoQmluYXJ5RGF0YShlKXtjb25zdCB0PWF3YWl0IGZldGNoKGUpO2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIGZpbGUgIiR7ZX0iIHdpdGggIiR7dC5zdGF0dXNUZXh0fSIuYCk7cmV0dXJuIHQuYnl0ZXMoKX1mdW5jdGlvbiBnZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OmUsa2V5OnQsZ2V0QXJyYXk6bj0hMSxzdG9wV2hlbkZvdW5kOmE9ITB9KXtsZXQgcztjb25zdCByPW5ldyBSZWZTZXQ7Zm9yKDtlIGluc3RhbmNlb2YgRGljdCYmKCFlLm9iaklkfHwhci5oYXMoZS5vYmpJZCkpOyl7ZS5vYmpJZCYmci5wdXQoZS5vYmpJZCk7Y29uc3QgaT1uP2UuZ2V0QXJyYXkodCk6ZS5nZXQodCk7aWYodm9pZCAwIT09aSl7aWYoYSlyZXR1cm4gaTsoc3x8PVtdKS5wdXNoKGkpfWU9ZS5nZXQoIlBhcmVudCIpfXJldHVybiBzfWNvbnN0IGJuPVsiIiwiQyIsIkNDIiwiQ0NDIiwiQ0QiLCJEIiwiREMiLCJEQ0MiLCJEQ0NDIiwiQ00iLCIiLCJYIiwiWFgiLCJYWFgiLCJYTCIsIkwiLCJMWCIsIkxYWCIsIkxYWFgiLCJYQyIsIiIsIkkiLCJJSSIsIklJSSIsIklWIiwiViIsIlZJIiwiVklJIiwiVklJSSIsIklYIl07ZnVuY3Rpb24gdG9Sb21hbk51bWVyYWxzKGUsdD0hMSl7YXNzZXJ0KE51bWJlci5pc0ludGVnZXIoZSkmJmU+MCwiVGhlIG51bWJlciBzaG91bGQgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLiIpO2NvbnN0IG49Ik0iLnJlcGVhdChlLzFlM3wwKStibltlJTFlMy8xMDB8MF0rYm5bMTArKGUlMTAwLzEwfDApXStiblsyMCtlJTEwXTtyZXR1cm4gdD9uLnRvTG93ZXJDYXNlKCk6bn1mdW5jdGlvbiBsb2cyKGUpe3JldHVybiBlPjA/TWF0aC5jZWlsKE1hdGgubG9nMihlKSk6MH1mdW5jdGlvbiByZWFkSW50OChlLHQpe3JldHVybiBlW3RdPDwyND4+MjR9ZnVuY3Rpb24gcmVhZEludDE2KGUsdCl7cmV0dXJuKGVbdF08PDI0fGVbdCsxXTw8MTYpPj4xNn1mdW5jdGlvbiByZWFkVWludDE2KGUsdCl7cmV0dXJuIGVbdF08PDh8ZVt0KzFdfWZ1bmN0aW9uIHJlYWRVaW50MzIoZSx0KXtyZXR1cm4oZVt0XTw8MjR8ZVt0KzFdPDwxNnxlW3QrMl08PDh8ZVt0KzNdKT4+PjB9ZnVuY3Rpb24gaXNXaGl0ZVNwYWNlKGUpe3JldHVybiAzMj09PWV8fDk9PT1lfHwxMz09PWV8fDEwPT09ZX1mdW5jdGlvbiBpc051bWJlckFycmF5KGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/KG51bGw9PT10fHxlLmxlbmd0aD09PXQpJiZlLmV2ZXJ5KGU9PiJudW1iZXIiPT10eXBlb2YgZSk6QXJyYXlCdWZmZXIuaXNWaWV3KGUpJiYhKGUgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxlIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpJiYobnVsbD09PXR8fGUubGVuZ3RoPT09dCl9ZnVuY3Rpb24gbG9va3VwTWF0cml4KGUsdCl7cmV0dXJuIGlzTnVtYmVyQXJyYXkoZSw2KT9lOnR9ZnVuY3Rpb24gbG9va3VwUmVjdChlLHQpe3JldHVybiBpc051bWJlckFycmF5KGUsNCk/ZTp0fWZ1bmN0aW9uIGxvb2t1cE5vcm1hbFJlY3QoZSx0KXtyZXR1cm4gaXNOdW1iZXJBcnJheShlLDQpP1V0aWwubm9ybWFsaXplUmVjdChlKTp0fWZ1bmN0aW9uIHBhcnNlWEZBUGF0aChlKXtjb25zdCB0PS8oLispXFsoXGQrKVxdJC87cmV0dXJuIGUuc3BsaXQoIi4iKS5tYXAoZT0+e2NvbnN0IG49ZS5tYXRjaCh0KTtyZXR1cm4gbj97bmFtZTpuWzFdLHBvczpwYXJzZUludChuWzJdLDEwKX06e25hbWU6ZSxwb3M6MH19KX1mdW5jdGlvbiBlc2NhcGVQREZOYW1lKGUpe2NvbnN0IHQ9W107bGV0IG49MDtmb3IobGV0IGE9MCxzPWUubGVuZ3RoO2E8czthKyspe2NvbnN0IHM9ZS5jaGFyQ29kZUF0KGEpO2lmKHM8MzN8fHM+MTI2fHwzNT09PXN8fDQwPT09c3x8NDE9PT1zfHw2MD09PXN8fDYyPT09c3x8OTE9PT1zfHw5Mz09PXN8fDEyMz09PXN8fDEyNT09PXN8fDQ3PT09c3x8Mzc9PT1zKXtuPGEmJnQucHVzaChlLnN1YnN0cmluZyhuLGEpKTt0LnB1c2goYCMke3MudG9TdHJpbmcoMTYpfWApO249YSsxfX1pZigwPT09dC5sZW5ndGgpcmV0dXJuIGU7bjxlLmxlbmd0aCYmdC5wdXNoKGUuc3Vic3RyaW5nKG4sZS5sZW5ndGgpKTtyZXR1cm4gdC5qb2luKCIiKX1mdW5jdGlvbiBlc2NhcGVTdHJpbmcoZSl7cmV0dXJuIGUucmVwbGFjZUFsbCgvKFsoKVxcXG5ccl0pL2csZT0+IlxuIj09PWU/IlxcbiI6IlxyIj09PWU/IlxcciI6YFxcJHtlfWApfWZ1bmN0aW9uIF9jb2xsZWN0SlMoZSx0LG4sYSl7aWYoIWUpcmV0dXJuO2xldCBzPW51bGw7aWYoZSBpbnN0YW5jZW9mIFJlZil7aWYoYS5oYXMoZSkpcmV0dXJuO3M9ZTthLnB1dChzKTtlPXQuZmV0Y2goZSl9aWYoQXJyYXkuaXNBcnJheShlKSlmb3IoY29uc3QgcyBvZiBlKV9jb2xsZWN0SlMocyx0LG4sYSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgRGljdCl7aWYoaXNOYW1lKGUuZ2V0KCJTIiksIkphdmFTY3JpcHQiKSl7Y29uc3QgdD1lLmdldCgiSlMiKTtsZXQgYTt0IGluc3RhbmNlb2YgQmFzZVN0cmVhbT9hPXQuZ2V0U3RyaW5nKCk6InN0cmluZyI9PXR5cGVvZiB0JiYoYT10KTthJiY9c3RyaW5nVG9QREZTdHJpbmcoYSwhMCkucmVwbGFjZUFsbCgiXDAiLCIiKTthJiZuLnB1c2goYS50cmltKCkpfV9jb2xsZWN0SlMoZS5nZXRSYXcoIk5leHQiKSx0LG4sYSl9cyYmYS5yZW1vdmUocyl9ZnVuY3Rpb24gY29sbGVjdEFjdGlvbnMoZSx0LG4pe2NvbnN0IGE9T2JqZWN0LmNyZWF0ZShudWxsKSxzPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IkFBIixzdG9wV2hlbkZvdW5kOiExfSk7aWYocylmb3IobGV0IHQ9cy5sZW5ndGgtMTt0Pj0wO3QtLSl7Y29uc3Qgcj1zW3RdO2lmKHIgaW5zdGFuY2VvZiBEaWN0KWZvcihjb25zdCB0IG9mIHIuZ2V0S2V5cygpKXtjb25zdCBzPW5bdF07aWYoIXMpY29udGludWU7Y29uc3QgaT1bXTtfY29sbGVjdEpTKHIuZ2V0UmF3KHQpLGUsaSxuZXcgUmVmU2V0KTtpLmxlbmd0aD4wJiYoYVtzXT1pKX19aWYodC5oYXMoIkEiKSl7Y29uc3Qgbj1bXTtfY29sbGVjdEpTKHQuZ2V0KCJBIiksZSxuLG5ldyBSZWZTZXQpO24ubGVuZ3RoPjAmJihhLkFjdGlvbj1uKX1yZXR1cm4gb2JqZWN0U2l6ZShhKT4wP2E6bnVsbH1jb25zdCB3bj17NjA6IiZsdDsiLDYyOiImZ3Q7IiwzODoiJmFtcDsiLDM0OiImcXVvdDsiLDM5OiImYXBvczsifTtmdW5jdGlvbipjb2RlUG9pbnRJdGVyKGUpe2ZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1lLmNvZGVQb2ludEF0KHQpO24+NTUyOTUmJihuPDU3MzQ0fHxuPjY1NTMzKSYmdCsrO3lpZWxkIG59fWZ1bmN0aW9uIGVuY29kZVRvWG1sU3RyaW5nKGUpe2NvbnN0IHQ9W107bGV0IG49MDtmb3IobGV0IGE9MCxzPWUubGVuZ3RoO2E8czthKyspe2NvbnN0IHM9ZS5jb2RlUG9pbnRBdChhKTtpZigzMjw9cyYmczw9MTI2KXtjb25zdCByPXduW3NdO2lmKHIpe248YSYmdC5wdXNoKGUuc3Vic3RyaW5nKG4sYSkpO3QucHVzaChyKTtuPWErMX19ZWxzZXtuPGEmJnQucHVzaChlLnN1YnN0cmluZyhuLGEpKTt0LnB1c2goYCYjeCR7cy50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX07YCk7cz41NTI5NSYmKHM8NTczNDR8fHM+NjU1MzMpJiZhKys7bj1hKzF9fWlmKDA9PT10Lmxlbmd0aClyZXR1cm4gZTtuPGUubGVuZ3RoJiZ0LnB1c2goZS5zdWJzdHJpbmcobixlLmxlbmd0aCkpO3JldHVybiB0LmpvaW4oIiIpfWZ1bmN0aW9uIHZhbGlkYXRlRm9udE5hbWUoZSx0PSExKXtjb25zdCBuPS9eKCJ8JykuKigifCcpJC8uZXhlYyhlKTtpZihuJiZuWzFdPT09blsyXSl7aWYobmV3IFJlZ0V4cChgW15cXFxcXSR7blsxXX1gKS50ZXN0KGUuc2xpY2UoMSwtMSkpKXt0JiZ3YXJuKGBGb250RmFtaWx5IGNvbnRhaW5zIHVuZXNjYXBlZCAke25bMV19OiAke2V9LmApO3JldHVybiExfX1lbHNlIGZvcihjb25zdCBuIG9mIGUuc3BsaXQoL1sgXHRdKy8pKWlmKC9eKFxkfCgtKFxkfC0pKSkvLnRlc3Qobil8fCEvXltcdy1cXF0rJC8udGVzdChuKSl7dCYmd2FybihgRm9udEZhbWlseSBjb250YWlucyBpbnZhbGlkIDxjdXN0b20taWRlbnQ+OiAke2V9LmApO3JldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIHZhbGlkYXRlQ1NTRm9udChlKXtjb25zdCB0PW5ldyBTZXQoWyIxMDAiLCIyMDAiLCIzMDAiLCI0MDAiLCI1MDAiLCI2MDAiLCI3MDAiLCI4MDAiLCI5MDAiLCIxMDAwIiwibm9ybWFsIiwiYm9sZCIsImJvbGRlciIsImxpZ2h0ZXIiXSkse2ZvbnRGYW1pbHk6bixmb250V2VpZ2h0OmEsaXRhbGljQW5nbGU6c309ZTtpZighdmFsaWRhdGVGb250TmFtZShuLCEwKSlyZXR1cm4hMTtjb25zdCByPWE/YS50b1N0cmluZygpOiIiO2UuZm9udFdlaWdodD10LmhhcyhyKT9yOiI0MDAiO2NvbnN0IGk9cGFyc2VGbG9hdChzKTtlLml0YWxpY0FuZ2xlPWlzTmFOKGkpfHxpPC05MHx8aT45MD8iMTQiOnMudG9TdHJpbmcoKTtyZXR1cm4hMH1mdW5jdGlvbiByZWNvdmVySnNVUkwoZSl7Y29uc3QgdD1uZXcgUmVnRXhwKCJeXFxzKigiK1siYXBwLmxhdW5jaFVSTCIsIndpbmRvdy5vcGVuIiwieGZhLmhvc3QuZ290b1VSTCJdLmpvaW4oInwiKS5yZXBsYWNlQWxsKCIuIiwiXFwuIikrIilcXCgoPzonfFwiKShbXidcIl0qKSg/Oid8XCIpKD86LFxccyooXFx3KylcXCl8XFwpKSIsImkiKS5leGVjKGUpO3JldHVybiB0Py5bMl0/e3VybDp0WzJdLG5ld1dpbmRvdzoiYXBwLmxhdW5jaFVSTCI9PT10WzFdJiYidHJ1ZSI9PT10WzNdfTpudWxsfWZ1bmN0aW9uIG51bWJlclRvU3RyaW5nKGUpe2lmKE51bWJlci5pc0ludGVnZXIoZSkpcmV0dXJuIGUudG9TdHJpbmcoKTtjb25zdCB0PU1hdGgucm91bmQoMTAwKmUpO3JldHVybiB0JTEwMD09MD8odC8xMDApLnRvU3RyaW5nKCk6dCUxMD09MD9lLnRvRml4ZWQoMSk6ZS50b0ZpeGVkKDIpfWZ1bmN0aW9uIGdldE5ld0Fubm90YXRpb25zTWFwKGUpe2lmKCFlKXJldHVybiBudWxsO2NvbnN0IHQ9bmV3IE1hcDtmb3IoY29uc3RbbixhXW9mIGUpbi5zdGFydHNXaXRoKG0pJiZ0LmdldE9ySW5zZXJ0Q29tcHV0ZWQoYS5wYWdlSW5kZXgsbWFrZUFycikucHVzaChhKTtyZXR1cm4gdC5zaXplPjA/dDpudWxsfWZ1bmN0aW9uIHN0cmluZ1RvQXNjaWlPclVURjE2QkUoZSl7cmV0dXJuIG51bGw9PWV8fGZ1bmN0aW9uIGlzQXNjaWkoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiExO3JldHVybiFlfHwvXltceDAwLVx4N0ZdKiQvLnRlc3QoZSl9KGUpP2U6c3RyaW5nVG9VVEYxNlN0cmluZyhlLCEwKX1mdW5jdGlvbiBzdHJpbmdUb1VURjE2SGV4U3RyaW5nKGUpe2NvbnN0IHQ9W107Zm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKXtjb25zdCBhPWUuY2hhckNvZGVBdChuKTt0LnB1c2godG5bYT4+OCYyNTVdLHRuWzI1NSZhXSl9cmV0dXJuIHQuam9pbigiIil9ZnVuY3Rpb24gc3RyaW5nVG9VVEYxNlN0cmluZyhlLHQ9ITEpe2NvbnN0IG49W107dCYmbi5wdXNoKCLDvsO/Iik7Zm9yKGxldCB0PTAsYT1lLmxlbmd0aDt0PGE7dCsrKXtjb25zdCBhPWUuY2hhckNvZGVBdCh0KTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShhPj44JjI1NSksU3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmYSkpfXJldHVybiBuLmpvaW4oIiIpfWZ1bmN0aW9uIGdldFJvdGF0aW9uTWF0cml4KGUsdCxuKXtzd2l0Y2goZSl7Y2FzZSA5MDpyZXR1cm5bMCwxLC0xLDAsdCwwXTtjYXNlIDE4MDpyZXR1cm5bLTEsMCwwLC0xLHQsbl07Y2FzZSAyNzA6cmV0dXJuWzAsLTEsMSwwLDAsbl07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcm90YXRpb24iKX19ZnVuY3Rpb24gZ2V0U2l6ZUluQnl0ZXMoZSl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmNlaWwoTWF0aC5sb2cyKDErZSkpLzgpfWNsYXNzIFFDTVN7c3RhdGljI249bnVsbDtzdGF0aWMgX21lbW9yeT1udWxsO3N0YXRpYyBfbXVzdEFkZEFscGhhPSExO3N0YXRpYyBfZGVzdEJ1ZmZlcj1udWxsO3N0YXRpYyBfZGVzdE9mZnNldD0wO3N0YXRpYyBfZGVzdExlbmd0aD0wO3N0YXRpYyBfY3NzQ29sb3I9IiI7c3RhdGljIF9tYWtlSGV4Q29sb3I9bnVsbDtzdGF0aWMgZ2V0IF9tZW1vcnlBcnJheSgpe2NvbnN0IGU9dGhpcy4jbjtyZXR1cm4gZT8uYnl0ZUxlbmd0aD9lOnRoaXMuI249bmV3IFVpbnQ4QXJyYXkodGhpcy5fbWVtb3J5LmJ1ZmZlcil9fWxldCBqbjtjb25zdCBrbj0idW5kZWZpbmVkIiE9dHlwZW9mIFRleHREZWNvZGVyP25ldyBUZXh0RGVjb2RlcigidXRmLTgiLHtpZ25vcmVCT006ITAsZmF0YWw6ITB9KTp7ZGVjb2RlOigpPT57dGhyb3cgRXJyb3IoIlRleHREZWNvZGVyIG5vdCBhdmFpbGFibGUiKX19OyJ1bmRlZmluZWQiIT10eXBlb2YgVGV4dERlY29kZXImJmtuLmRlY29kZSgpO2xldCB5bj1udWxsO2Z1bmN0aW9uIGdldFVpbnQ4QXJyYXlNZW1vcnkwKCl7bnVsbCE9PXluJiYwIT09eW4uYnl0ZUxlbmd0aHx8KHluPW5ldyBVaW50OEFycmF5KGpuLm1lbW9yeS5idWZmZXIpKTtyZXR1cm4geW59bGV0IHFuPTA7ZnVuY3Rpb24gcGFzc0FycmF5OFRvV2FzbTAoZSx0KXtjb25zdCBuPXQoMSplLmxlbmd0aCwxKT4+PjA7Z2V0VWludDhBcnJheU1lbW9yeTAoKS5zZXQoZSxuLzEpO3FuPWUubGVuZ3RoO3JldHVybiBufWNvbnN0IHZuPU9iamVjdC5mcmVlemUoe1JHQjg6MCwwOiJSR0I4IixSR0JBODoxLDE6IlJHQkE4IixCR1JBODoyLDI6IkJHUkE4IixHcmF5ODozLDM6IkdyYXk4IixHcmF5QTg6NCw0OiJHcmF5QTgiLENNWUs6NSw1OiJDTVlLIn0pLFNuPU9iamVjdC5mcmVlemUoe1BlcmNlcHR1YWw6MCwwOiJQZXJjZXB0dWFsIixSZWxhdGl2ZUNvbG9yaW1ldHJpYzoxLDE6IlJlbGF0aXZlQ29sb3JpbWV0cmljIixTYXR1cmF0aW9uOjIsMjoiU2F0dXJhdGlvbiIsQWJzb2x1dGVDb2xvcmltZXRyaWM6MywzOiJBYnNvbHV0ZUNvbG9yaW1ldHJpYyJ9KTtmdW5jdGlvbiBfX3diZ19nZXRfaW1wb3J0cygpe2NvbnN0IGU9e3diZzp7fX07ZS53YmcuX193YmdfY29weXJlc3VsdF9iMDhlZTdkMjczZjI5NWRkPWZ1bmN0aW9uKGUsdCl7IWZ1bmN0aW9uIGNvcHlfcmVzdWx0KGUsdCl7Y29uc3R7X211c3RBZGRBbHBoYTpuLF9kZXN0QnVmZmVyOmEsX2Rlc3RPZmZzZXQ6cyxfZGVzdExlbmd0aDpyLF9tZW1vcnlBcnJheTppfT1RQ01TO2lmKHQhPT1yKWlmKG4pZm9yKGxldCBuPWUscj1lK3Qsbz1zO248cjtuKz0zLG8rPTQpe2Fbb109aVtuXTthW28rMV09aVtuKzFdO2FbbysyXT1pW24rMl07YVtvKzNdPTI1NX1lbHNlIGZvcihsZXQgbj1lLHI9ZSt0LG89cztuPHI7bis9MyxvKz00KXthW29dPWlbbl07YVtvKzFdPWlbbisxXTthW28rMl09aVtuKzJdfWVsc2UgYS5zZXQoaS5zdWJhcnJheShlLGUrdCkscyl9KGU+Pj4wLHQ+Pj4wKX07ZS53YmcuX193YmdfY29weXJnYl9kNjBjZTE3YmIwNWQ5YjY3PWZ1bmN0aW9uKGUpeyFmdW5jdGlvbiBjb3B5X3JnYihlKXtjb25zdHtfZGVzdEJ1ZmZlcjp0LF9kZXN0T2Zmc2V0Om4sX21lbW9yeUFycmF5OmF9PVFDTVM7dFtuXT1hW2VdO3RbbisxXT1hW2UrMV07dFtuKzJdPWFbZSsyXX0oZT4+PjApfTtlLndiZy5fX3diZ19tYWtlY3NzUkdCXzg5M2JmMGNkOWZkYjMwMmQ9ZnVuY3Rpb24oZSl7IWZ1bmN0aW9uIG1ha2VfY3NzUkdCKGUpe2NvbnN0e19tZW1vcnlBcnJheTp0fT1RQ01TO1FDTVMuX2Nzc0NvbG9yPVFDTVMuX21ha2VIZXhDb2xvcih0W2VdLHRbZSsxXSx0W2UrMl0pfShlPj4+MCl9O2Uud2JnLl9fd2JpbmRnZW5faW5pdF9leHRlcm5yZWZfdGFibGU9ZnVuY3Rpb24oKXtjb25zdCBlPWpuLl9fd2JpbmRnZW5fZXhwb3J0XzAsdD1lLmdyb3coNCk7ZS5zZXQoMCx2b2lkIDApO2Uuc2V0KHQrMCx2b2lkIDApO2Uuc2V0KHQrMSxudWxsKTtlLnNldCh0KzIsITApO2Uuc2V0KHQrMywhMSl9O2Uud2JnLl9fd2JpbmRnZW5fdGhyb3c9ZnVuY3Rpb24oZSx0KXt0aHJvdyBuZXcgRXJyb3IoZnVuY3Rpb24gZ2V0U3RyaW5nRnJvbVdhc20wKGUsdCl7ZT4+Pj0wO3JldHVybiBrbi5kZWNvZGUoZ2V0VWludDhBcnJheU1lbW9yeTAoKS5zdWJhcnJheShlLGUrdCkpfShlLHQpKX07cmV0dXJuIGV9ZnVuY3Rpb24gX193YmdfZmluYWxpemVfaW5pdChlLHQpe2puPWUuZXhwb3J0cztfX3diZ19pbml0Ll9fd2JpbmRnZW5fd2FzbV9tb2R1bGU9dDt5bj1udWxsO2puLl9fd2JpbmRnZW5fc3RhcnQoKTtyZXR1cm4gam59YXN5bmMgZnVuY3Rpb24gX193YmdfaW5pdChlKXtpZih2b2lkIDAhPT1qbilyZXR1cm4gam47dm9pZCAwIT09ZSYmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PU9iamVjdC5wcm90b3R5cGU/KHttb2R1bGVfb3JfcGF0aDplfT1lKTpjb25zb2xlLndhcm4oInVzaW5nIGRlcHJlY2F0ZWQgcGFyYW1ldGVycyBmb3IgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uOyBwYXNzIGEgc2luZ2xlIG9iamVjdCBpbnN0ZWFkIikpO2NvbnN0IHQ9X193YmdfZ2V0X2ltcG9ydHMoKTsoInN0cmluZyI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgUmVxdWVzdCYmZSBpbnN0YW5jZW9mIFJlcXVlc3R8fCJmdW5jdGlvbiI9PXR5cGVvZiBVUkwmJmUgaW5zdGFuY2VvZiBVUkwpJiYoZT1mZXRjaChlKSk7Y29uc3R7aW5zdGFuY2U6bixtb2R1bGU6YX09YXdhaXQgYXN5bmMgZnVuY3Rpb24gX193YmdfbG9hZChlLHQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBSZXNwb25zZSYmZSBpbnN0YW5jZW9mIFJlc3BvbnNlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcpdHJ5e3JldHVybiBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhlLHQpfWNhdGNoKHQpe2lmKCJhcHBsaWNhdGlvbi93YXNtIj09ZS5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIikpdGhyb3cgdDtjb25zb2xlLndhcm4oImBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZ2AgZmFpbGVkIGJlY2F1c2UgeW91ciBzZXJ2ZXIgZG9lcyBub3Qgc2VydmUgV2FzbSB3aXRoIGBhcHBsaWNhdGlvbi93YXNtYCBNSU1FIHR5cGUuIEZhbGxpbmcgYmFjayB0byBgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVgIHdoaWNoIGlzIHNsb3dlci4gT3JpZ2luYWwgZXJyb3I6XG4iLHQpfWNvbnN0IG49YXdhaXQgZS5hcnJheUJ1ZmZlcigpO3JldHVybiBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShuLHQpfXtjb25zdCBuPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsdCk7cmV0dXJuIG4gaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5JbnN0YW5jZT97aW5zdGFuY2U6bixtb2R1bGU6ZX06bn19KGF3YWl0IGUsdCk7cmV0dXJuIF9fd2JnX2ZpbmFsaXplX2luaXQobixhKX1mdW5jdGlvbiBpc0RlZmF1bHREZWNvZGVIZWxwZXIoZSx0KXtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4hMDtjb25zdCBuPWUubGVuZ3RoO2lmKG48dCl7d2FybigiRGVjb2RlIG1hcCBsZW5ndGggaXMgdG9vIHNob3J0LiIpO3JldHVybiEwfWlmKG4+dCl7aW5mbygiVHJ1bmNhdGluZyB0b28gbG9uZyBkZWNvZGUgbWFwLiIpO2UubGVuZ3RoPXR9cmV0dXJuITF9Y2xhc3MgQ29sb3JTcGFjZXtzdGF0aWMjYT1uZXcgVWludDhDbGFtcGVkQXJyYXkoMyk7Y29uc3RydWN0b3IoZSx0KXt0aGlzLm5hbWU9ZTt0aGlzLm51bUNvbXBzPXR9Z2V0UmdiKGUsdCxuPW5ldyBVaW50OENsYW1wZWRBcnJheSgzKSl7dGhpcy5nZXRSZ2JJdGVtKGUsdCxuLDApO3JldHVybiBufWdldFJnYkhleChlLHQpe2NvbnN0IG49dGhpcy5nZXRSZ2IoZSx0LENvbG9yU3BhY2UuI2EpO3JldHVybiBVdGlsLm1ha2VIZXhDb2xvcihuWzBdLG5bMV0sblsyXSl9Z2V0UmdiSXRlbShlLHQsbixhKXt1bnJlYWNoYWJsZSgiU2hvdWxkIG5vdCBjYWxsIENvbG9yU3BhY2UuZ2V0UmdiSXRlbSIpfWdldFJnYkJ1ZmZlcihlLHQsbixhLHMscixpKXt1bnJlYWNoYWJsZSgiU2hvdWxkIG5vdCBjYWxsIENvbG9yU3BhY2UuZ2V0UmdiQnVmZmVyIil9Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7dW5yZWFjaGFibGUoIlNob3VsZCBub3QgY2FsbCBDb2xvclNwYWNlLmdldE91dHB1dExlbmd0aCIpfWlzUGFzc3Rocm91Z2goZSl7cmV0dXJuITF9aXNEZWZhdWx0RGVjb2RlKGUsdCl7cmV0dXJuIENvbG9yU3BhY2UuaXNEZWZhdWx0RGVjb2RlKGUsdGhpcy5udW1Db21wcyl9ZmlsbFJnYihlLHQsbixhLHMscixpLG8sbCl7Y29uc3QgZj10Km47bGV0IGM9bnVsbDtjb25zdCBoPTE8PGksdT1uIT09c3x8dCE9PWE7aWYodGhpcy5pc1Bhc3N0aHJvdWdoKGkpKWM9bztlbHNlIGlmKDE9PT10aGlzLm51bUNvbXBzJiZmPmgmJiJEZXZpY2VHcmF5IiE9PXRoaXMubmFtZSYmIkRldmljZVJHQiIhPT10aGlzLm5hbWUpe2NvbnN0IHQ9aTw9OD9uZXcgVWludDhBcnJheShoKTpuZXcgVWludDE2QXJyYXkoaCk7Zm9yKGxldCBlPTA7ZTxoO2UrKyl0W2VdPWU7Y29uc3Qgbj1uZXcgVWludDhDbGFtcGVkQXJyYXkoMypoKTt0aGlzLmdldFJnYkJ1ZmZlcih0LDAsaCxuLDAsaSwwKTtpZih1KXtjPW5ldyBVaW50OEFycmF5KDMqZik7bGV0IGU9MDtmb3IobGV0IHQ9MDt0PGY7Kyt0KXtjb25zdCBhPTMqb1t0XTtjW2UrK109blthXTtjW2UrK109blthKzFdO2NbZSsrXT1uW2ErMl19fWVsc2V7bGV0IHQ9MDtmb3IobGV0IGE9MDthPGY7KythKXtjb25zdCBzPTMqb1thXTtlW3QrK109bltzXTtlW3QrK109bltzKzFdO2VbdCsrXT1uW3MrMl07dCs9bH19fWVsc2UgaWYodSl7Yz1uZXcgVWludDhDbGFtcGVkQXJyYXkoMypmKTt0aGlzLmdldFJnYkJ1ZmZlcihvLDAsZixjLDAsaSwwKX1lbHNlIHRoaXMuZ2V0UmdiQnVmZmVyKG8sMCxhKnIsZSwwLGksbCk7aWYoYylpZih1KSFmdW5jdGlvbiByZXNpemVSZ2JJbWFnZShlLHQsbixhLHMscixpKXtpPTEhPT1pPzA6aTtjb25zdCBvPW4vcyxsPWEvcjtsZXQgZixjPTA7Y29uc3QgaD1uZXcgVWludDE2QXJyYXkocyksdT0zKm47Zm9yKGxldCBlPTA7ZTxzO2UrKyloW2VdPTMqTWF0aC5mbG9vcihlKm8pO2ZvcihsZXQgbj0wO248cjtuKyspe2NvbnN0IGE9TWF0aC5mbG9vcihuKmwpKnU7Zm9yKGxldCBuPTA7bjxzO24rKyl7Zj1hK2hbbl07dFtjKytdPWVbZisrXTt0W2MrK109ZVtmKytdO3RbYysrXT1lW2YrK107Yys9aX19fShjLGUsdCxuLGEscyxsKTtlbHNle2xldCB0PTAsbj0wO2ZvcihsZXQgcz0wLGk9YSpyO3M8aTtzKyspe2VbdCsrXT1jW24rK107ZVt0KytdPWNbbisrXTtlW3QrK109Y1tuKytdO3QrPWx9fX1nZXQgdXNlc1plcm9Ub09uZVJhbmdlKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJ1c2VzWmVyb1RvT25lUmFuZ2UiLCEwKX1zdGF0aWMgaXNEZWZhdWx0RGVjb2RlKGUsdCl7aWYoaXNEZWZhdWx0RGVjb2RlSGVscGVyKGUsMip0KSlyZXR1cm4hMDtmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3Q8bjt0Kz0yKWlmKDAhPT1lW3RdfHwxIT09ZVt0KzFdKXJldHVybiExO3JldHVybiEwfX1jbGFzcyBBbHRlcm5hdGVDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKCJBbHRlcm5hdGUiLGUpO3RoaXMuYmFzZT10O3RoaXMudGludEZuPW47dGhpcy50bXBCdWY9bmV3IEZsb2F0MzJBcnJheSh0Lm51bUNvbXBzKX1nZXRSZ2JJdGVtKGUsdCxuLGEpe2NvbnN0IHM9dGhpcy50bXBCdWY7dGhpcy50aW50Rm4oZSx0LHMsMCk7dGhpcy5iYXNlLmdldFJnYkl0ZW0ocywwLG4sYSl9Z2V0UmdiQnVmZmVyKGUsdCxuLGEscyxyLGkpe2NvbnN0IG89dGhpcy50aW50Rm4sbD10aGlzLmJhc2UsZj0xLygoMTw8ciktMSksYz1sLm51bUNvbXBzLGg9bC51c2VzWmVyb1RvT25lUmFuZ2UsdT0obC5pc1Bhc3N0aHJvdWdoKDgpfHwhaCkmJjA9PT1pO2xldCBtPXU/czowO2NvbnN0IHA9dT9hOm5ldyBVaW50OENsYW1wZWRBcnJheShjKm4pLGQ9dGhpcy5udW1Db21wcyxnPW5ldyBGbG9hdDMyQXJyYXkoZCksYj1uZXcgRmxvYXQzMkFycmF5KGMpO2xldCB3LGo7Zm9yKHc9MDt3PG47dysrKXtmb3Ioaj0wO2o8ZDtqKyspZ1tqXT1lW3QrK10qZjtvKGcsMCxiLDApO2lmKGgpZm9yKGo9MDtqPGM7aisrKXBbbSsrXT0yNTUqYltqXTtlbHNle2wuZ2V0UmdiSXRlbShiLDAscCxtKTttKz1jfX11fHxsLmdldFJnYkJ1ZmZlcihwLDAsbixhLHMsOCxpKX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gdGhpcy5iYXNlLmdldE91dHB1dExlbmd0aChlKnRoaXMuYmFzZS5udW1Db21wcy90aGlzLm51bUNvbXBzLHQpfX1jbGFzcyBQYXR0ZXJuQ1MgZXh0ZW5kcyBDb2xvclNwYWNle2NvbnN0cnVjdG9yKGUpe3N1cGVyKCJQYXR0ZXJuIixudWxsKTt0aGlzLmJhc2U9ZX1pc0RlZmF1bHREZWNvZGUoZSx0KXt1bnJlYWNoYWJsZSgiU2hvdWxkIG5vdCBjYWxsIFBhdHRlcm5DUy5pc0RlZmF1bHREZWNvZGUiKX19Y2xhc3MgSW5kZXhlZENTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIoIkluZGV4ZWQiLDEpO3RoaXMuYmFzZT1lO3RoaXMuaGlnaFZhbD10O2NvbnN0IGE9ZS5udW1Db21wcyoodCsxKTt0aGlzLmxvb2t1cD1uZXcgVWludDhBcnJheShhKTtpZihuIGluc3RhbmNlb2YgQmFzZVN0cmVhbSl7Y29uc3QgZT1uLmdldEJ5dGVzKGEpO3RoaXMubG9va3VwLnNldChlKX1lbHNle2lmKCJzdHJpbmciIT10eXBlb2Ygbil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEluZGV4ZWRDUyAtIHVucmVjb2duaXplZCBsb29rdXAgdGFibGU6ICR7bn1gKTtmb3IobGV0IGU9MDtlPGE7KytlKXRoaXMubG9va3VwW2VdPTI1NSZuLmNoYXJDb2RlQXQoZSl9fWdldFJnYkl0ZW0oZSx0LG4sYSl7Y29uc3R7YmFzZTpzLGhpZ2hWYWw6cixsb29rdXA6aX09dGhpcyxvPU1hdGhDbGFtcChNYXRoLnJvdW5kKGVbdF0pLDAscikqcy5udW1Db21wcztzLmdldFJnYkJ1ZmZlcihpLG8sMSxuLGEsOCwwKX1nZXRSZ2JCdWZmZXIoZSx0LG4sYSxzLHIsaSl7Y29uc3R7YmFzZTpvLGhpZ2hWYWw6bCxsb29rdXA6Zn09dGhpcyx7bnVtQ29tcHM6Y309byxoPW8uZ2V0T3V0cHV0TGVuZ3RoKGMsaSk7Zm9yKGxldCByPTA7cjxuOysrcil7Y29uc3Qgbj1NYXRoQ2xhbXAoTWF0aC5yb3VuZChlW3QrK10pLDAsbCkqYztvLmdldFJnYkJ1ZmZlcihmLG4sMSxhLHMsOCxpKTtzKz1ofX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gdGhpcy5iYXNlLmdldE91dHB1dExlbmd0aChlKnRoaXMuYmFzZS5udW1Db21wcyx0KX1pc0RlZmF1bHREZWNvZGUoZSx0KXtpZihpc0RlZmF1bHREZWNvZGVIZWxwZXIoZSwyKSlyZXR1cm4hMDtpZighTnVtYmVyLmlzSW50ZWdlcih0KXx8dDwxKXt3YXJuKCJCaXRzIHBlciBjb21wb25lbnQgaXMgbm90IGNvcnJlY3QiKTtyZXR1cm4hMH1yZXR1cm4gMD09PWVbMF0mJmVbMV09PT0oMTw8dCktMX19Y2xhc3MgRGV2aWNlR3JheUNTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJEZXZpY2VHcmF5IiwxKX1nZXRSZ2JJdGVtKGUsdCxuLGEpe2NvbnN0IHM9MjU1KmVbdF07blthXT1uW2ErMV09blthKzJdPXN9Z2V0UmdiQnVmZmVyKGUsdCxuLGEscyxyLGkpe2NvbnN0IG89MjU1LygoMTw8ciktMSk7bGV0IGw9dCxmPXM7Zm9yKGxldCB0PTA7dDxuOysrdCl7Y29uc3QgdD1vKmVbbCsrXTthW2YrK109dDthW2YrK109dDthW2YrK109dDtmKz1pfX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gZSooMyt0KX19Y2xhc3MgRGV2aWNlUmdiQ1MgZXh0ZW5kcyBDb2xvclNwYWNle2NvbnN0cnVjdG9yKCl7c3VwZXIoIkRldmljZVJHQiIsMyl9Z2V0UmdiSXRlbShlLHQsbixhKXtuW2FdPTI1NSplW3RdO25bYSsxXT0yNTUqZVt0KzFdO25bYSsyXT0yNTUqZVt0KzJdfWdldFJnYkJ1ZmZlcihlLHQsbixhLHMscixpKXtpZig4PT09ciYmMD09PWkpe2Euc2V0KGUuc3ViYXJyYXkodCx0KzMqbikscyk7cmV0dXJufWNvbnN0IG89MjU1LygoMTw8ciktMSk7bGV0IGw9dCxmPXM7Zm9yKGxldCB0PTA7dDxuOysrdCl7YVtmKytdPW8qZVtsKytdO2FbZisrXT1vKmVbbCsrXTthW2YrK109byplW2wrK107Zis9aX19Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIGUqKDMrdCkvM3wwfWlzUGFzc3Rocm91Z2goZSl7cmV0dXJuIDg9PT1lfX1jbGFzcyBEZXZpY2VSZ2JhQ1MgZXh0ZW5kcyBDb2xvclNwYWNle2NvbnN0cnVjdG9yKCl7c3VwZXIoIkRldmljZVJHQkEiLDQpfWdldE91dHB1dExlbmd0aChlLHQpe3JldHVybiA0KmV9aXNQYXNzdGhyb3VnaChlKXtyZXR1cm4gOD09PWV9ZmlsbFJnYihlLHQsbixhLHMscixpLG8sbCl7biE9PXN8fHQhPT1hP2Z1bmN0aW9uIHJlc2l6ZVJnYmFJbWFnZShlLHQsbixhLHMscixpKXtjb25zdCBvPW4vcyxsPWEvcjtsZXQgZj0wO2NvbnN0IGM9bmV3IFVpbnQxNkFycmF5KHMpO2lmKDE9PT1pKXtmb3IobGV0IGU9MDtlPHM7ZSsrKWNbZV09TWF0aC5mbG9vcihlKm8pO2NvbnN0IGE9bmV3IFVpbnQzMkFycmF5KGUuYnVmZmVyKSxpPW5ldyBVaW50MzJBcnJheSh0LmJ1ZmZlciksaD1GZWF0dXJlVGVzdC5pc0xpdHRsZUVuZGlhbj8xNjc3NzIxNTo0Mjk0OTY3MDQwO2ZvcihsZXQgZT0wO2U8cjtlKyspe2NvbnN0IHQ9YS5zdWJhcnJheShNYXRoLmZsb29yKGUqbCkqbik7Zm9yKGxldCBlPTA7ZTxzO2UrKylpW2YrK118PXRbY1tlXV0maH19ZWxzZXtjb25zdCBhPTQsaT1uKmE7Zm9yKGxldCBlPTA7ZTxzO2UrKyljW2VdPU1hdGguZmxvb3IoZSpvKSphO2ZvcihsZXQgbj0wO248cjtuKyspe2NvbnN0IGE9ZS5zdWJhcnJheShNYXRoLmZsb29yKG4qbCkqaSk7Zm9yKGxldCBlPTA7ZTxzO2UrKyl7Y29uc3Qgbj1jW2VdO3RbZisrXT1hW25dO3RbZisrXT1hW24rMV07dFtmKytdPWFbbisyXX19fX0obyxlLHQsbixhLHMsbCk6ZnVuY3Rpb24gY29weVJnYmFJbWFnZShlLHQsbil7aWYoMT09PW4pe2NvbnN0IG49bmV3IFVpbnQzMkFycmF5KGUuYnVmZmVyKSxhPW5ldyBVaW50MzJBcnJheSh0LmJ1ZmZlcikscz1GZWF0dXJlVGVzdC5pc0xpdHRsZUVuZGlhbj8xNjc3NzIxNTo0Mjk0OTY3MDQwO2ZvcihsZXQgZT0wLHQ9bi5sZW5ndGg7ZTx0O2UrKylhW2VdfD1uW2VdJnN9ZWxzZXtsZXQgbj0wO2ZvcihsZXQgYT0wLHM9ZS5sZW5ndGg7YTxzO2ErPTQpe3RbbisrXT1lW2FdO3RbbisrXT1lW2ErMV07dFtuKytdPWVbYSsyXX19fShvLGUsbCl9fWNsYXNzIERldmljZUNteWtDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoKXtzdXBlcigiRGV2aWNlQ01ZSyIsNCl9I3MoZSx0LG4sYSxzKXtjb25zdCByPWVbdF0qbixpPWVbdCsxXSpuLG89ZVt0KzJdKm4sbD1lW3QrM10qbjthW3NdPTI1NStyKigtNC4zODczMzIzODQ2MDk5ODgqcis1NC40ODYxNTE5NDE4OTE3NippKzE4LjgyMjkwNTAyMTY1MzAyKm8rMjEyLjI1NjYyNDUxNjM5NTg1KmwtMjg1LjIzMzEwMjYxMzcwMDQpK2kqKDEuNzE0OTc2MzQ3NzM2MjEzNCppLTUuNjA5NjczNjkwNDA0NzMxNSpvKy0xNy44NzM4NzA4NjE0MTU0NDQqbC01LjQ5NzAwNjQyNzE5NjM2NikrbyooLTIuNTIxNzM0MDEzMTY4MzAzMypvLTIxLjI0ODkyMzMzNzM1MzA3MypsKzE3LjUxMTkyNzA4NDE4MTMpK2wqKC0yMS44NjEyMjE0NzQ2MzYwNSpsLTE4OS40ODE4MDgzNTkyMjc0Nyk7YVtzKzFdPTI1NStyKig4Ljg0MTA0MTQyMjAzNjE0OSpyKzYwLjExODAyNzA0NTU5NzM2NippKzYuODcxNDI1NTkyMDQ5MDA3Km8rMzEuMTU5MTAwMTMwMDU1OTIyKmwtNzkuMjk3MDg0NDgxNjU0OCkraSooLTE1LjMxMDM2MTMwNjk2NzgxNyppKzE3LjU3NTI1MTI2MTEwOTQ4MipvKzEzMS4zNTI1MDkxMjQ5Mzk3NipsLTE5MC45NDUzMzAyNTg4OTUxKStvKig0LjQ0NDMzOTEwMjg1MjczOSpvKzkuODYzMjg2MTQ5MzQwNSpsLTI0Ljg2NzQxNTgyNTU1ODc4KStsKigtMjAuNzM3MzI1NDcxMTgxMDM0KmwtMTg3LjgwNDUzNzA5NzE5NTc4KTthW3MrMl09MjU1K3IqKC44ODQyNTIyNDMwMDAzMjk2KnIrOC4wNzg2Nzc1MDMxMTI5MjgqaSszMC44OTk3ODMwOTcwMzcyOSpvLS4yMzg4MzIzODY4OTE3ODkzNCpsLTE0LjE4MzU3Njc5OTY3MzI4NikraSooMTAuNDk1OTMyNzM0MzIwNzIqaSs2My4wMjM3ODQ5NDc1NDA1MipvKzUwLjYwNjk1NzY1NjM2MDczNCpsLTExMi4yMzg4NDI1MzcxOTI0OCkrbyooLjAzMjk2MDQxMTE0ODczMjE3Km8rMTE1LjYwMzg0NDQ5NjQ2NjQxKmwtMTkzLjU4MjA5MzU2ODYxNTA1KStsKigtMjIuMzM4MTY4MDczMDk4ODYqbC0xODAuMTI2MTM5NzQ3MDgzNjcpfWdldFJnYkl0ZW0oZSx0LG4sYSl7dGhpcy4jcyhlLHQsMSxuLGEpfWdldFJnYkJ1ZmZlcihlLHQsbixhLHMscixpKXtjb25zdCBvPTEvKCgxPDxyKS0xKTtmb3IobGV0IHI9MDtyPG47cisrKXt0aGlzLiNzKGUsdCxvLGEscyk7dCs9NDtzKz0zK2l9fWdldE91dHB1dExlbmd0aChlLHQpe3JldHVybiBlLzQqKDMrdCl8MH19Y2xhc3MgQ2FsR3JheUNTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIoIkNhbEdyYXkiLDEpO2lmKCFlKXRocm93IG5ldyBGb3JtYXRFcnJvcigiV2hpdGVQb2ludCBtaXNzaW5nIC0gcmVxdWlyZWQgZm9yIGNvbG9yIHNwYWNlIENhbEdyYXkiKTtbdGhpcy5YVyx0aGlzLllXLHRoaXMuWlddPWU7W3RoaXMuWEIsdGhpcy5ZQix0aGlzLlpCXT10fHxbMCwwLDBdO3RoaXMuRz1ufHwxO2lmKHRoaXMuWFc8MHx8dGhpcy5aVzwwfHwxIT09dGhpcy5ZVyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgV2hpdGVQb2ludCBjb21wb25lbnRzIGZvciAke3RoaXMubmFtZX0sIG5vIGZhbGxiYWNrIGF2YWlsYWJsZWApO2lmKHRoaXMuWEI8MHx8dGhpcy5ZQjwwfHx0aGlzLlpCPDApe2luZm8oYEludmFsaWQgQmxhY2tQb2ludCBmb3IgJHt0aGlzLm5hbWV9LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdC5gKTt0aGlzLlhCPXRoaXMuWUI9dGhpcy5aQj0wfTA9PT10aGlzLlhCJiYwPT09dGhpcy5ZQiYmMD09PXRoaXMuWkJ8fHdhcm4oYCR7dGhpcy5uYW1lfSwgQmxhY2tQb2ludDogWEI6ICR7dGhpcy5YQn0sIFlCOiAke3RoaXMuWUJ9LCBaQjogJHt0aGlzLlpCfSwgb25seSBkZWZhdWx0IHZhbHVlcyBhcmUgc3VwcG9ydGVkLmApO2lmKHRoaXMuRzwxKXtpbmZvKGBJbnZhbGlkIEdhbW1hOiAke3RoaXMuR30gZm9yICR7dGhpcy5uYW1lfSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHQuYCk7dGhpcy5HPTF9fSNzKGUsdCxuLGEscyl7Y29uc3Qgcj0oZVt0XSpzKSoqdGhpcy5HLGk9dGhpcy5ZVypyLG89TWF0aC5tYXgoMjk1LjgqaSoqLjMzMzMzMzMzMzMzMzMzMzMtNDAuOCwwKTtuW2FdPW87blthKzFdPW87blthKzJdPW99Z2V0UmdiSXRlbShlLHQsbixhKXt0aGlzLiNzKGUsdCxuLGEsMSl9Z2V0UmdiQnVmZmVyKGUsdCxuLGEscyxyLGkpe2NvbnN0IG89MS8oKDE8PHIpLTEpO2ZvcihsZXQgcj0wO3I8bjsrK3Ipe3RoaXMuI3MoZSx0LGEscyxvKTt0Kz0xO3MrPTMraX19Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIGUqKDMrdCl9fWNsYXNzIENhbFJHQkNTIGV4dGVuZHMgQ29sb3JTcGFjZXtzdGF0aWMjcj1uZXcgRmxvYXQzMkFycmF5KFsuODk1MSwuMjY2NCwtLjE2MTQsLS43NTAyLDEuNzEzNSwuMDM2NywuMDM4OSwtLjA2ODUsMS4wMjk2XSk7c3RhdGljI2k9bmV3IEZsb2F0MzJBcnJheShbLjk4Njk5MjksLS4xNDcwNTQzLC4xNTk5NjI3LC40MzIzMDUzLC41MTgzNjAzLC4wNDkyOTEyLC0uMDA4NTI4NywuMDQwMDQyOCwuOTY4NDg2N10pO3N0YXRpYyNvPW5ldyBGbG9hdDMyQXJyYXkoWzMuMjQwNDU0MiwtMS41MzcxMzg1LC0uNDk4NTMxNCwtLjk2OTI2NiwxLjg3NjAxMDgsLjA0MTU1NiwuMDU1NjQzNCwtLjIwNDAyNTksMS4wNTcyMjUyXSk7c3RhdGljI2w9bmV3IEZsb2F0MzJBcnJheShbMSwxLDFdKTtzdGF0aWMjZj1uZXcgRmxvYXQzMkFycmF5KDMpO3N0YXRpYyNjPW5ldyBGbG9hdDMyQXJyYXkoMyk7c3RhdGljI2g9bmV3IEZsb2F0MzJBcnJheSgzKTtzdGF0aWMjdT0oMjQvMTE2KSoqMy84O2NvbnN0cnVjdG9yKGUsdCxuLGEpe3N1cGVyKCJDYWxSR0IiLDMpO2lmKCFlKXRocm93IG5ldyBGb3JtYXRFcnJvcigiV2hpdGVQb2ludCBtaXNzaW5nIC0gcmVxdWlyZWQgZm9yIGNvbG9yIHNwYWNlIENhbFJHQiIpO2NvbnN0W3MscixpXT10aGlzLndoaXRlUG9pbnQ9ZSxbbyxsLGZdPXRoaXMuYmxhY2tQb2ludD10fHxuZXcgRmxvYXQzMkFycmF5KDMpO1t0aGlzLkdSLHRoaXMuR0csdGhpcy5HQl09bnx8bmV3IEZsb2F0MzJBcnJheShbMSwxLDFdKTtbdGhpcy5NWEEsdGhpcy5NWUEsdGhpcy5NWkEsdGhpcy5NWEIsdGhpcy5NWUIsdGhpcy5NWkIsdGhpcy5NWEMsdGhpcy5NWUMsdGhpcy5NWkNdPWF8fG5ldyBGbG9hdDMyQXJyYXkoWzEsMCwwLDAsMSwwLDAsMCwxXSk7aWYoczwwfHxpPDB8fDEhPT1yKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBXaGl0ZVBvaW50IGNvbXBvbmVudHMgZm9yICR7dGhpcy5uYW1lfSwgbm8gZmFsbGJhY2sgYXZhaWxhYmxlYCk7aWYobzwwfHxsPDB8fGY8MCl7aW5mbyhgSW52YWxpZCBCbGFja1BvaW50IGZvciAke3RoaXMubmFtZX0gWyR7b30sICR7bH0sICR7Zn1dLCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdC5gKTt0aGlzLmJsYWNrUG9pbnQ9bmV3IEZsb2F0MzJBcnJheSgzKX1pZih0aGlzLkdSPDB8fHRoaXMuR0c8MHx8dGhpcy5HQjwwKXtpbmZvKGBJbnZhbGlkIEdhbW1hIFske3RoaXMuR1J9LCAke3RoaXMuR0d9LCAke3RoaXMuR0J9XSBmb3IgJHt0aGlzLm5hbWV9LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdC5gKTt0aGlzLkdSPXRoaXMuR0c9dGhpcy5HQj0xfX0jbShlLHQsbil7blswXT1lWzBdKnRbMF0rZVsxXSp0WzFdK2VbMl0qdFsyXTtuWzFdPWVbM10qdFswXStlWzRdKnRbMV0rZVs1XSp0WzJdO25bMl09ZVs2XSp0WzBdK2VbN10qdFsxXStlWzhdKnRbMl19I3AoZSx0LG4pe25bMF09MSp0WzBdL2VbMF07blsxXT0xKnRbMV0vZVsxXTtuWzJdPTEqdFsyXS9lWzJdfSNkKGUsdCxuKXtuWzBdPS45NTA0Nyp0WzBdL2VbMF07blsxXT0xKnRbMV0vZVsxXTtuWzJdPTEuMDg4ODMqdFsyXS9lWzJdfSNnKGUpe3JldHVybiBlPD0uMDAzMTMwOD9NYXRoQ2xhbXAoMTIuOTIqZSwwLDEpOmU+PS45OTU1NDUyNT8xOk1hdGhDbGFtcCgxLjA1NSplKiooMS8yLjQpLS4wNTUsMCwxKX0jYihlKXtyZXR1cm4gZTwwPy10aGlzLiNiKC1lKTplPjg/KChlKzE2KS8xMTYpKiozOmUqQ2FsUkdCQ1MuI3V9I3coZSx0LG4pe2lmKDA9PT1lWzBdJiYwPT09ZVsxXSYmMD09PWVbMl0pe25bMF09dFswXTtuWzFdPXRbMV07blsyXT10WzJdO3JldHVybn1jb25zdCBhPXRoaXMuI2IoMCkscz0oMS1hKS8oMS10aGlzLiNiKGVbMF0pKSxyPTEtcyxpPSgxLWEpLygxLXRoaXMuI2IoZVsxXSkpLG89MS1pLGw9KDEtYSkvKDEtdGhpcy4jYihlWzJdKSksZj0xLWw7blswXT10WzBdKnMrcjtuWzFdPXRbMV0qaStvO25bMl09dFsyXSpsK2Z9I2ooZSx0LG4pe2lmKDE9PT1lWzBdJiYxPT09ZVsyXSl7blswXT10WzBdO25bMV09dFsxXTtuWzJdPXRbMl07cmV0dXJufWNvbnN0IGE9bjt0aGlzLiNtKENhbFJHQkNTLiNyLHQsYSk7Y29uc3Qgcz1DYWxSR0JDUy4jZjt0aGlzLiNwKGUsYSxzKTt0aGlzLiNtKENhbFJHQkNTLiNpLHMsbil9I2soZSx0LG4pe2NvbnN0IGE9bjt0aGlzLiNtKENhbFJHQkNTLiNyLHQsYSk7Y29uc3Qgcz1DYWxSR0JDUy4jZjt0aGlzLiNkKGUsYSxzKTt0aGlzLiNtKENhbFJHQkNTLiNpLHMsbil9I3MoZSx0LG4sYSxzKXtjb25zdCByPU1hdGhDbGFtcChlW3RdKnMsMCwxKSxpPU1hdGhDbGFtcChlW3QrMV0qcywwLDEpLG89TWF0aENsYW1wKGVbdCsyXSpzLDAsMSksbD0xPT09cj8xOnIqKnRoaXMuR1IsZj0xPT09aT8xOmkqKnRoaXMuR0csYz0xPT09bz8xOm8qKnRoaXMuR0IsaD10aGlzLk1YQSpsK3RoaXMuTVhCKmYrdGhpcy5NWEMqYyx1PXRoaXMuTVlBKmwrdGhpcy5NWUIqZit0aGlzLk1ZQypjLG09dGhpcy5NWkEqbCt0aGlzLk1aQipmK3RoaXMuTVpDKmMscD1DYWxSR0JDUy4jYztwWzBdPWg7cFsxXT11O3BbMl09bTtjb25zdCBkPUNhbFJHQkNTLiNoO3RoaXMuI2oodGhpcy53aGl0ZVBvaW50LHAsZCk7Y29uc3QgZz1DYWxSR0JDUy4jYzt0aGlzLiN3KHRoaXMuYmxhY2tQb2ludCxkLGcpO2NvbnN0IGI9Q2FsUkdCQ1MuI2g7dGhpcy4jayhDYWxSR0JDUy4jbCxnLGIpO2NvbnN0IHc9Q2FsUkdCQ1MuI2M7dGhpcy4jbShDYWxSR0JDUy4jbyxiLHcpO25bYV09MjU1KnRoaXMuI2cod1swXSk7blthKzFdPTI1NSp0aGlzLiNnKHdbMV0pO25bYSsyXT0yNTUqdGhpcy4jZyh3WzJdKX1nZXRSZ2JJdGVtKGUsdCxuLGEpe3RoaXMuI3MoZSx0LG4sYSwxKX1nZXRSZ2JCdWZmZXIoZSx0LG4sYSxzLHIsaSl7Y29uc3Qgbz0xLygoMTw8ciktMSk7Zm9yKGxldCByPTA7cjxuOysrcil7dGhpcy4jcyhlLHQsYSxzLG8pO3QrPTM7cys9MytpfX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gZSooMyt0KS8zfDB9fWNsYXNzIExhYkNTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIoIkxhYiIsMyk7aWYoIWUpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJXaGl0ZVBvaW50IG1pc3NpbmcgLSByZXF1aXJlZCBmb3IgY29sb3Igc3BhY2UgTGFiIik7W3RoaXMuWFcsdGhpcy5ZVyx0aGlzLlpXXT1lO1t0aGlzLmFtaW4sdGhpcy5hbWF4LHRoaXMuYm1pbix0aGlzLmJtYXhdPW58fFstMTAwLDEwMCwtMTAwLDEwMF07W3RoaXMuWEIsdGhpcy5ZQix0aGlzLlpCXT10fHxbMCwwLDBdO2lmKHRoaXMuWFc8MHx8dGhpcy5aVzwwfHwxIT09dGhpcy5ZVyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgV2hpdGVQb2ludCBjb21wb25lbnRzLCBubyBmYWxsYmFjayBhdmFpbGFibGUiKTtpZih0aGlzLlhCPDB8fHRoaXMuWUI8MHx8dGhpcy5aQjwwKXtpbmZvKCJJbnZhbGlkIEJsYWNrUG9pbnQsIGZhbGxpbmcgYmFjayB0byBkZWZhdWx0Iik7dGhpcy5YQj10aGlzLllCPXRoaXMuWkI9MH1pZih0aGlzLmFtaW4+dGhpcy5hbWF4fHx0aGlzLmJtaW4+dGhpcy5ibWF4KXtpbmZvKCJJbnZhbGlkIFJhbmdlLCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdHMiKTt0aGlzLmFtaW49LTEwMDt0aGlzLmFtYXg9MTAwO3RoaXMuYm1pbj0tMTAwO3RoaXMuYm1heD0xMDB9fSN5KGUpe3JldHVybiBlPj02LzI5P2UqKjM6MTA4Lzg0MSooZS00LzI5KX0jcShlLHQsbixhKXtyZXR1cm4gbitlKihhLW4pL3R9I3MoZSx0LG4sYSxzKXtsZXQgcj1lW3RdLGk9ZVt0KzFdLG89ZVt0KzJdO2lmKCExIT09bil7cj10aGlzLiNxKHIsbiwwLDEwMCk7aT10aGlzLiNxKGksbix0aGlzLmFtaW4sdGhpcy5hbWF4KTtvPXRoaXMuI3EobyxuLHRoaXMuYm1pbix0aGlzLmJtYXgpfWk+dGhpcy5hbWF4P2k9dGhpcy5hbWF4Omk8dGhpcy5hbWluJiYoaT10aGlzLmFtaW4pO28+dGhpcy5ibWF4P289dGhpcy5ibWF4Om88dGhpcy5ibWluJiYobz10aGlzLmJtaW4pO2NvbnN0IGw9KHIrMTYpLzExNixmPWwraS81MDAsYz1sLW8vMjAwLGg9dGhpcy5YVyp0aGlzLiN5KGYpLHU9dGhpcy5ZVyp0aGlzLiN5KGwpLG09dGhpcy5aVyp0aGlzLiN5KGMpO2xldCBwLGQsZztpZih0aGlzLlpXPDEpe3A9My4xMzM5KmgrLTEuNjE3KnUrLS40OTA2Km07ZD0tLjk3ODUqaCsxLjkxNip1Ky4wMzMzKm07Zz0uMDcyKmgrLS4yMjkqdSsxLjQwNTcqbX1lbHNle3A9My4yNDA2KmgrLTEuNTM3Mip1Ky0uNDk4NiptO2Q9LS45Njg5KmgrMS44NzU4KnUrLjA0MTUqbTtnPS4wNTU3KmgrLS4yMDQqdSsxLjA1NyptfWFbc109MjU1Kk1hdGguc3FydChwKTthW3MrMV09MjU1Kk1hdGguc3FydChkKTthW3MrMl09MjU1Kk1hdGguc3FydChnKX1nZXRSZ2JJdGVtKGUsdCxuLGEpe3RoaXMuI3MoZSx0LCExLG4sYSl9Z2V0UmdiQnVmZmVyKGUsdCxuLGEscyxyLGkpe2NvbnN0IG89KDE8PHIpLTE7Zm9yKGxldCByPTA7cjxuO3IrKyl7dGhpcy4jcyhlLHQsbyxhLHMpO3QrPTM7cys9MytpfX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gZSooMyt0KS8zfDB9aXNEZWZhdWx0RGVjb2RlKGUsdCl7cmV0dXJuITB9Z2V0IHVzZXNaZXJvVG9PbmVSYW5nZSgpe3JldHVybiBzaGFkb3codGhpcywidXNlc1plcm9Ub09uZVJhbmdlIiwhMSl9fWZ1bmN0aW9uIGZldGNoU3luYyhlKXtjb25zdCB0PW5ldyBYTUxIdHRwUmVxdWVzdDt0Lm9wZW4oIkdFVCIsZSwhMSk7dC5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIjt0LnNlbmQobnVsbCk7cmV0dXJuIHQucmVzcG9uc2V9Y2xhc3MgSWNjQ29sb3JTcGFjZSBleHRlbmRzIENvbG9yU3BhY2V7I3Y7I1M7c3RhdGljI3g9ITA7c3RhdGljI0E9bnVsbDtzdGF0aWMjQz1udWxsO2NvbnN0cnVjdG9yKGUsdCxuKXtpZighSWNjQ29sb3JTcGFjZS5pc1VzYWJsZSl0aHJvdyBuZXcgRXJyb3IoIk5vIElDQyBjb2xvciBzcGFjZSBzdXBwb3J0Iik7c3VwZXIodCxuKTtsZXQgYTtzd2l0Y2gobil7Y2FzZSAxOmE9dm4uR3JheTg7dGhpcy4jUz0oZSx0LG4pPT5mdW5jdGlvbiBxY21zX2NvbnZlcnRfb25lKGUsdCxuKXtqbi5xY21zX2NvbnZlcnRfb25lKGUsdCxuKX0odGhpcy4jdiwyNTUqZVt0XSxuKTticmVhaztjYXNlIDM6YT12bi5SR0I4O3RoaXMuI1M9KGUsdCxuKT0+ZnVuY3Rpb24gcWNtc19jb252ZXJ0X3RocmVlKGUsdCxuLGEscyl7am4ucWNtc19jb252ZXJ0X3RocmVlKGUsdCxuLGEscyl9KHRoaXMuI3YsMjU1KmVbdF0sMjU1KmVbdCsxXSwyNTUqZVt0KzJdLG4pO2JyZWFrO2Nhc2UgNDphPXZuLkNNWUs7dGhpcy4jUz0oZSx0LG4pPT5mdW5jdGlvbiBxY21zX2NvbnZlcnRfZm91cihlLHQsbixhLHMscil7am4ucWNtc19jb252ZXJ0X2ZvdXIoZSx0LG4sYSxzLHIpfSh0aGlzLiN2LDI1NSplW3RdLDI1NSplW3QrMV0sMjU1KmVbdCsyXSwyNTUqZVt0KzNdLG4pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBudW1iZXIgb2YgY29tcG9uZW50czogJHtufWApfXRoaXMuI3Y9ZnVuY3Rpb24gcWNtc190cmFuc2Zvcm1lcl9mcm9tX21lbW9yeShlLHQsbil7Y29uc3QgYT1wYXNzQXJyYXk4VG9XYXNtMChlLGpuLl9fd2JpbmRnZW5fbWFsbG9jKSxzPXFuO3JldHVybiBqbi5xY21zX3RyYW5zZm9ybWVyX2Zyb21fbWVtb3J5KGEscyx0LG4pPj4+MH0oZSxhLFNuLlBlcmNlcHR1YWwpO2lmKCF0aGlzLiN2KXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBJQ0MgY29sb3Igc3BhY2UiKTtJY2NDb2xvclNwYWNlLiNDfHw9bmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGU9PnshZnVuY3Rpb24gcWNtc19kcm9wX3RyYW5zZm9ybWVyKGUpe2puLnFjbXNfZHJvcF90cmFuc2Zvcm1lcihlKX0oZSl9KTtJY2NDb2xvclNwYWNlLiNDLnJlZ2lzdGVyKHRoaXMsdGhpcy4jdil9Z2V0UmdiSGV4KGUsdCl7dGhpcy4jUyhlLHQsITApO3JldHVybiBRQ01TLl9jc3NDb2xvcn1nZXRSZ2JJdGVtKGUsdCxuLGEpe1FDTVMuX2Rlc3RCdWZmZXI9bjtRQ01TLl9kZXN0T2Zmc2V0PWE7UUNNUy5fZGVzdExlbmd0aD0zO3RoaXMuI1MoZSx0LCExKTtRQ01TLl9kZXN0QnVmZmVyPW51bGx9Z2V0UmdiQnVmZmVyKGUsdCxuLGEscyxyLGkpe2U9ZS5zdWJhcnJheSh0LHQrbip0aGlzLm51bUNvbXBzKTtpZig4IT09cil7Y29uc3QgdD0yNTUvKCgxPDxyKS0xKTtmb3IobGV0IG49MCxhPWUubGVuZ3RoO248YTtuKyspZVtuXSo9dH1RQ01TLl9tdXN0QWRkQWxwaGE9aSYmYS5idWZmZXI9PT1lLmJ1ZmZlcjtRQ01TLl9kZXN0QnVmZmVyPWE7UUNNUy5fZGVzdE9mZnNldD1zO1FDTVMuX2Rlc3RMZW5ndGg9biooMytpKTshZnVuY3Rpb24gcWNtc19jb252ZXJ0X2FycmF5KGUsdCl7Y29uc3Qgbj1wYXNzQXJyYXk4VG9XYXNtMCh0LGpuLl9fd2JpbmRnZW5fbWFsbG9jKSxhPXFuO2puLnFjbXNfY29udmVydF9hcnJheShlLG4sYSl9KHRoaXMuI3YsZSk7UUNNUy5fbXVzdEFkZEFscGhhPSExO1FDTVMuX2Rlc3RCdWZmZXI9bnVsbH1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gZS90aGlzLm51bUNvbXBzKigzK3QpfDB9c3RhdGljIHNldE9wdGlvbnMoe3VzZVdhc206ZSx1c2VXb3JrZXJGZXRjaDp0LHdhc21Vcmw6bn0pe2lmKHQpe3RoaXMuI3g9ZTt0aGlzLiNBPW59ZWxzZSB0aGlzLiN4PSExfXN0YXRpYyBnZXQgaXNVc2FibGUoKXtsZXQgZT0hMTtpZih0aGlzLiN4KWlmKHRoaXMuI0EpdHJ5e3RoaXMuX21vZHVsZT1mdW5jdGlvbiBpbml0U3luYyhlKXtpZih2b2lkIDAhPT1qbilyZXR1cm4gam47dm9pZCAwIT09ZSYmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PU9iamVjdC5wcm90b3R5cGU/KHttb2R1bGU6ZX09ZSk6Y29uc29sZS53YXJuKCJ1c2luZyBkZXByZWNhdGVkIHBhcmFtZXRlcnMgZm9yIGBpbml0U3luYygpYDsgcGFzcyBhIHNpbmdsZSBvYmplY3QgaW5zdGVhZCIpKTtjb25zdCB0PV9fd2JnX2dldF9pbXBvcnRzKCk7ZSBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lk1vZHVsZXx8KGU9bmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShlKSk7cmV0dXJuIF9fd2JnX2ZpbmFsaXplX2luaXQobmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKGUsdCksZSl9KHttb2R1bGU6ZmV0Y2hTeW5jKGAke3RoaXMuI0F9cWNtc19iZy53YXNtYCl9KTtlPSEhdGhpcy5fbW9kdWxlO1FDTVMuX21lbW9yeT10aGlzLl9tb2R1bGUubWVtb3J5O1FDTVMuX21ha2VIZXhDb2xvcj1VdGlsLm1ha2VIZXhDb2xvcn1jYXRjaChlKXt3YXJuKGBJQ0NCYXNlZCBjb2xvciBzcGFjZTogIiR7ZX0iLmApfWVsc2Ugd2FybigiTm8gSUNDIGNvbG9yIHNwYWNlIHN1cHBvcnQgZHVlIHRvIG1pc3NpbmcgYHdhc21VcmxgIEFQSSBvcHRpb24iKTtyZXR1cm4gc2hhZG93KHRoaXMsImlzVXNhYmxlIixlKX19Y2xhc3MgQ215a0lDQ0Jhc2VkQ1MgZXh0ZW5kcyBJY2NDb2xvclNwYWNle3N0YXRpYyNJO2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IFVpbnQ4QXJyYXkoZmV0Y2hTeW5jKGAke0NteWtJQ0NCYXNlZENTLiNJfUNHQVRTMDAxQ29tcGF0LXYyLW1pY3JvLmljY2ApKSwiRGV2aWNlQ01ZSyIsNCl9c3RhdGljIHNldE9wdGlvbnMoe2ljY1VybDplfSl7dGhpcy4jST1lfXN0YXRpYyBnZXQgaXNVc2FibGUoKXtsZXQgZT0hMTtJY2NDb2xvclNwYWNlLmlzVXNhYmxlJiYodGhpcy4jST9lPSEwOndhcm4oIk5vIENNWUsgSUNDIHByb2ZpbGUgc3VwcG9ydCBkdWUgdG8gbWlzc2luZyBgaWNjVXJsYCBBUEkgb3B0aW9uIikpO3JldHVybiBzaGFkb3codGhpcywiaXNVc2FibGUiLGUpfX1jbGFzcyBTdHJlYW0gZXh0ZW5kcyBCYXNlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCxuLGEpe3N1cGVyKCk7dGhpcy5ieXRlcz1lIGluc3RhbmNlb2YgVWludDhBcnJheT9lOm5ldyBVaW50OEFycmF5KGUpO3RoaXMuc3RhcnQ9dHx8MDt0aGlzLnBvcz10aGlzLnN0YXJ0O3RoaXMuZW5kPXQrbnx8dGhpcy5ieXRlcy5sZW5ndGg7dGhpcy5kaWN0PWF9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmVuZC10aGlzLnN0YXJ0fWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLmxlbmd0aH1nZXRCeXRlKCl7cmV0dXJuIHRoaXMucG9zPj10aGlzLmVuZD8tMTp0aGlzLmJ5dGVzW3RoaXMucG9zKytdfWdldEJ5dGVzKGUpe2NvbnN0IHQ9dGhpcy5ieXRlcyxuPXRoaXMucG9zLGE9dGhpcy5lbmQ7aWYoIWUpe3RoaXMucG9zPWE7cmV0dXJuIHQuc3ViYXJyYXkobixhKX1sZXQgcz1uK2U7cz5hJiYocz1hKTt0aGlzLnBvcz1zO3JldHVybiB0LnN1YmFycmF5KG4scyl9Z2V0Qnl0ZVJhbmdlKGUsdCl7ZTwwJiYoZT0wKTt0PnRoaXMuZW5kJiYodD10aGlzLmVuZCk7cmV0dXJuIHRoaXMuYnl0ZXMuc3ViYXJyYXkoZSx0KX1yZXNldCgpe3RoaXMucG9zPXRoaXMuc3RhcnR9bW92ZVN0YXJ0KCl7dGhpcy5zdGFydD10aGlzLnBvc31tYWtlU3ViU3RyZWFtKGUsdCxuPW51bGwpe3JldHVybiBuZXcgU3RyZWFtKHRoaXMuYnl0ZXMuYnVmZmVyLGUsdCxuKX1jbG9uZSgpe3JldHVybiBuZXcgU3RyZWFtKHRoaXMuYnl0ZXMuYnVmZmVyLHRoaXMuc3RhcnQsdGhpcy5lbmQtdGhpcy5zdGFydCx0aGlzLmRpY3QuY2xvbmUoKSl9fWNsYXNzIFN0cmluZ1N0cmVhbSBleHRlbmRzIFN0cmVhbXtjb25zdHJ1Y3RvcihlKXtzdXBlcihzdHJpbmdUb0J5dGVzKGUpKX19Y2xhc3MgTnVsbFN0cmVhbSBleHRlbmRzIFN0cmVhbXtjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyBVaW50OEFycmF5KDApKX19Y2xhc3MgQ2h1bmtlZFN0cmVhbSBleHRlbmRzIFN0cmVhbXtwcm9ncmVzc2l2ZURhdGFMZW5ndGg9MDtfbGFzdFN1Y2Nlc3NmdWxFbnN1cmVCeXRlQ2h1bms9LTE7X2xvYWRlZENodW5rcz1uZXcgU2V0O2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcihuZXcgVWludDhBcnJheShlKSwwLGUsbnVsbCk7dGhpcy5jaHVua1NpemU9dDt0aGlzLm51bUNodW5rcz1NYXRoLmNlaWwoZS90KTt0aGlzLm1hbmFnZXI9bn1nZXRNaXNzaW5nQ2h1bmtzKCl7Y29uc3QgZT1bXTtmb3IobGV0IHQ9MCxuPXRoaXMubnVtQ2h1bmtzO3Q8bjsrK3QpdGhpcy5fbG9hZGVkQ2h1bmtzLmhhcyh0KXx8ZS5wdXNoKHQpO3JldHVybiBlfWdldCBudW1DaHVua3NMb2FkZWQoKXtyZXR1cm4gdGhpcy5fbG9hZGVkQ2h1bmtzLnNpemV9Z2V0IGlzRGF0YUxvYWRlZCgpe3JldHVybiB0aGlzLm51bUNodW5rc0xvYWRlZD09PXRoaXMubnVtQ2h1bmtzfW9uUmVjZWl2ZURhdGEoZSx0KXtjb25zdCBuPXRoaXMuY2h1bmtTaXplO2lmKGUlbiE9PTApdGhyb3cgbmV3IEVycm9yKGBCYWQgYmVnaW4gb2Zmc2V0OiAke2V9YCk7Y29uc3QgYT1lK3QuYnl0ZUxlbmd0aDtpZihhJW4hPT0wJiZhIT09dGhpcy5ieXRlcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBCYWQgZW5kIG9mZnNldDogJHthfWApO3RoaXMuYnl0ZXMuc2V0KG5ldyBVaW50OEFycmF5KHQpLGUpO2NvbnN0IHM9TWF0aC5mbG9vcihlL24pLHI9TWF0aC5mbG9vcigoYS0xKS9uKSsxO2ZvcihsZXQgZT1zO2U8cjsrK2UpdGhpcy5fbG9hZGVkQ2h1bmtzLmFkZChlKX1vblJlY2VpdmVQcm9ncmVzc2l2ZURhdGEoZSl7bGV0IHQ9dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGg7Y29uc3Qgbj1NYXRoLmZsb29yKHQvdGhpcy5jaHVua1NpemUpO3RoaXMuYnl0ZXMuc2V0KG5ldyBVaW50OEFycmF5KGUpLHQpO3QrPWUuYnl0ZUxlbmd0aDt0aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aD10O2NvbnN0IGE9dD49dGhpcy5lbmQ/dGhpcy5udW1DaHVua3M6TWF0aC5mbG9vcih0L3RoaXMuY2h1bmtTaXplKTtmb3IobGV0IGU9bjtlPGE7KytlKXRoaXMuX2xvYWRlZENodW5rcy5hZGQoZSl9ZW5zdXJlQnl0ZShlKXtpZihlPHRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoKXJldHVybjtjb25zdCB0PU1hdGguZmxvb3IoZS90aGlzLmNodW5rU2l6ZSk7aWYoISh0PnRoaXMubnVtQ2h1bmtzKSYmdCE9PXRoaXMuX2xhc3RTdWNjZXNzZnVsRW5zdXJlQnl0ZUNodW5rKXtpZighdGhpcy5fbG9hZGVkQ2h1bmtzLmhhcyh0KSl0aHJvdyBuZXcgTWlzc2luZ0RhdGFFeGNlcHRpb24oZSxlKzEpO3RoaXMuX2xhc3RTdWNjZXNzZnVsRW5zdXJlQnl0ZUNodW5rPXR9fWVuc3VyZVJhbmdlKGUsdCl7aWYoZT49dClyZXR1cm47aWYodDw9dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgpcmV0dXJuO2NvbnN0IG49TWF0aC5mbG9vcihlL3RoaXMuY2h1bmtTaXplKTtpZihuPnRoaXMubnVtQ2h1bmtzKXJldHVybjtjb25zdCBhPU1hdGgubWluKE1hdGguZmxvb3IoKHQtMSkvdGhpcy5jaHVua1NpemUpKzEsdGhpcy5udW1DaHVua3MpO2ZvcihsZXQgcz1uO3M8YTsrK3MpaWYoIXRoaXMuX2xvYWRlZENodW5rcy5oYXMocykpdGhyb3cgbmV3IE1pc3NpbmdEYXRhRXhjZXB0aW9uKGUsdCl9bmV4dEVtcHR5Q2h1bmsoZSl7Y29uc3QgdD10aGlzLm51bUNodW5rcztmb3IobGV0IG49MDtuPHQ7KytuKXtjb25zdCBhPShlK24pJXQ7aWYoIXRoaXMuX2xvYWRlZENodW5rcy5oYXMoYSkpcmV0dXJuIGF9cmV0dXJuIG51bGx9aGFzQ2h1bmsoZSl7cmV0dXJuIHRoaXMuX2xvYWRlZENodW5rcy5oYXMoZSl9Z2V0Qnl0ZSgpe2NvbnN0IGU9dGhpcy5wb3M7aWYoZT49dGhpcy5lbmQpcmV0dXJuLTE7ZT49dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlQnl0ZShlKTtyZXR1cm4gdGhpcy5ieXRlc1t0aGlzLnBvcysrXX1nZXRCeXRlcyhlKXtjb25zdCB0PXRoaXMuYnl0ZXMsbj10aGlzLnBvcyxhPXRoaXMuZW5kO2lmKCFlKXthPnRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoJiZ0aGlzLmVuc3VyZVJhbmdlKG4sYSk7cmV0dXJuIHQuc3ViYXJyYXkobixhKX1sZXQgcz1uK2U7cz5hJiYocz1hKTtzPnRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoJiZ0aGlzLmVuc3VyZVJhbmdlKG4scyk7dGhpcy5wb3M9cztyZXR1cm4gdC5zdWJhcnJheShuLHMpfWdldEJ5dGVSYW5nZShlLHQpe2U8MCYmKGU9MCk7dD50aGlzLmVuZCYmKHQ9dGhpcy5lbmQpO3Q+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UoZSx0KTtyZXR1cm4gdGhpcy5ieXRlcy5zdWJhcnJheShlLHQpfW1ha2VTdWJTdHJlYW0oZSx0LG49bnVsbCl7dD9lK3Q+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UoZSxlK3QpOmU+PXRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoJiZ0aGlzLmVuc3VyZUJ5dGUoZSk7ZnVuY3Rpb24gQ2h1bmtlZFN0cmVhbVN1YnN0cmVhbSgpe31DaHVua2VkU3RyZWFtU3Vic3RyZWFtLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHRoaXMpO0NodW5rZWRTdHJlYW1TdWJzdHJlYW0ucHJvdG90eXBlLmdldE1pc3NpbmdDaHVua3M9ZnVuY3Rpb24oKXtjb25zdCBlPXRoaXMuY2h1bmtTaXplLHQ9TWF0aC5mbG9vcih0aGlzLnN0YXJ0L2UpLG49TWF0aC5mbG9vcigodGhpcy5lbmQtMSkvZSkrMSxhPVtdO2ZvcihsZXQgZT10O2U8bjsrK2UpdGhpcy5fbG9hZGVkQ2h1bmtzLmhhcyhlKXx8YS5wdXNoKGUpO3JldHVybiBhfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoQ2h1bmtlZFN0cmVhbVN1YnN0cmVhbS5wcm90b3R5cGUsImlzRGF0YUxvYWRlZCIse2dldCgpe3JldHVybiB0aGlzLm51bUNodW5rc0xvYWRlZD09PXRoaXMubnVtQ2h1bmtzfHwwPT09dGhpcy5nZXRNaXNzaW5nQ2h1bmtzKCkubGVuZ3RofSxjb25maWd1cmFibGU6ITB9KTtjb25zdCBhPW5ldyBDaHVua2VkU3RyZWFtU3Vic3RyZWFtO2EucG9zPWEuc3RhcnQ9ZTthLmVuZD1lK3R8fHRoaXMuZW5kO2EuZGljdD1uO3JldHVybiBhfWdldEJhc2VTdHJlYW1zKCl7cmV0dXJuW3RoaXNdfX1jbGFzcyBDaHVua2VkU3RyZWFtTWFuYWdlcnthYm9ydGVkPSExO2N1cnJSZXF1ZXN0SWQ9MDtfY2h1bmtzTmVlZGVkQnlSZXF1ZXN0PW5ldyBNYXA7X2xvYWRlZFN0cmVhbUNhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7X3Byb21pc2VzQnlSZXF1ZXN0PW5ldyBNYXA7X3JlcXVlc3RzQnlDaHVuaz1uZXcgTWFwO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5sZW5ndGg9dC5sZW5ndGg7dGhpcy5jaHVua1NpemU9dC5yYW5nZUNodW5rU2l6ZTt0aGlzLnN0cmVhbT1uZXcgQ2h1bmtlZFN0cmVhbSh0aGlzLmxlbmd0aCx0aGlzLmNodW5rU2l6ZSx0aGlzKTt0aGlzLnBkZlN0cmVhbT1lO3RoaXMuZGlzYWJsZUF1dG9GZXRjaD10LmRpc2FibGVBdXRvRmV0Y2g7dGhpcy5tc2dIYW5kbGVyPXQubXNnSGFuZGxlcn1hc3luYyBzZW5kUmVxdWVzdChlLHQpe2NvbnN0IG49dGhpcy5wZGZTdHJlYW0uZ2V0UmFuZ2VSZWFkZXIoZSx0KTtsZXQgYT1bXTtmb3IoOzspe2NvbnN0e3ZhbHVlOmUsZG9uZTp0fT1hd2FpdCBuLnJlYWQoKTtpZih0aGlzLmFib3J0ZWQpe2E9bnVsbDtyZXR1cm59aWYodClicmVhazthLnB1c2goZSl9aWYoMD09PWEubGVuZ3RoJiZ0aGlzLmRpc2FibGVBdXRvRmV0Y2gpcmV0dXJuO2NvbnN0IHM9YXJyYXlCdWZmZXJzVG9CeXRlcyhhKTthPW51bGw7dGhpcy5vblJlY2VpdmVEYXRhKHtjaHVuazpzLmJ1ZmZlcixiZWdpbjplfSl9cmVxdWVzdEFsbENodW5rcyhlPSExKXtpZighZSl7Y29uc3QgZT10aGlzLnN0cmVhbS5nZXRNaXNzaW5nQ2h1bmtzKCk7dGhpcy5fcmVxdWVzdENodW5rcyhlKX1yZXR1cm4gdGhpcy5fbG9hZGVkU3RyZWFtQ2FwYWJpbGl0eS5wcm9taXNlfV9yZXF1ZXN0Q2h1bmtzKGUpe2NvbnN0IHQ9dGhpcy5jdXJyUmVxdWVzdElkKyssbj1uZXcgU2V0O3RoaXMuX2NodW5rc05lZWRlZEJ5UmVxdWVzdC5zZXQodCxuKTtmb3IoY29uc3QgdCBvZiBlKXRoaXMuc3RyZWFtLmhhc0NodW5rKHQpfHxuLmFkZCh0KTtpZigwPT09bi5zaXplKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTtjb25zdCBhPVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuX3Byb21pc2VzQnlSZXF1ZXN0LnNldCh0LGEpO2NvbnN0IHM9W107Zm9yKGNvbnN0IGUgb2Ygbil7bGV0IG49dGhpcy5fcmVxdWVzdHNCeUNodW5rLmdldChlKTtpZighbil7bj1bXTt0aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuc2V0KGUsbik7cy5wdXNoKGUpfW4ucHVzaCh0KX1pZihzLmxlbmd0aD4wKXtjb25zdCBlPXRoaXMuZ3JvdXBDaHVua3Mocyk7Zm9yKGNvbnN0IHQgb2YgZSl7Y29uc3QgZT10LmJlZ2luQ2h1bmsqdGhpcy5jaHVua1NpemUsbj1NYXRoLm1pbih0LmVuZENodW5rKnRoaXMuY2h1bmtTaXplLHRoaXMubGVuZ3RoKTt0aGlzLnNlbmRSZXF1ZXN0KGUsbikuY2F0Y2goYS5yZWplY3QpfX1yZXR1cm4gYS5wcm9taXNlLmNhdGNoKGU9PntpZighdGhpcy5hYm9ydGVkKXRocm93IGV9KX1nZXRTdHJlYW0oKXtyZXR1cm4gdGhpcy5zdHJlYW19cmVxdWVzdFJhbmdlKGUsdCl7dD1NYXRoLm1pbih0LHRoaXMubGVuZ3RoKTtjb25zdCBuPXRoaXMuZ2V0QmVnaW5DaHVuayhlKSxhPXRoaXMuZ2V0RW5kQ2h1bmsodCkscz1bXTtmb3IobGV0IGU9bjtlPGE7KytlKXMucHVzaChlKTtyZXR1cm4gdGhpcy5fcmVxdWVzdENodW5rcyhzKX1yZXF1ZXN0UmFuZ2VzKGU9W10pe2NvbnN0IHQ9W107Zm9yKGNvbnN0IG4gb2YgZSl7Y29uc3QgZT10aGlzLmdldEJlZ2luQ2h1bmsobi5iZWdpbiksYT10aGlzLmdldEVuZENodW5rKG4uZW5kKTtmb3IobGV0IG49ZTtuPGE7KytuKXQuaW5jbHVkZXMobil8fHQucHVzaChuKX10LnNvcnQoKGUsdCk9PmUtdCk7cmV0dXJuIHRoaXMuX3JlcXVlc3RDaHVua3ModCl9Z3JvdXBDaHVua3MoZSl7Y29uc3QgdD1bXTtsZXQgbj0tMSxhPS0xO2ZvcihsZXQgcz0wLHI9ZS5sZW5ndGg7czxyOysrcyl7Y29uc3Qgcj1lW3NdO248MCYmKG49cik7aWYoYT49MCYmYSsxIT09cil7dC5wdXNoKHtiZWdpbkNodW5rOm4sZW5kQ2h1bms6YSsxfSk7bj1yfXMrMT09PWUubGVuZ3RoJiZ0LnB1c2goe2JlZ2luQ2h1bms6bixlbmRDaHVuazpyKzF9KTthPXJ9cmV0dXJuIHR9b25SZWNlaXZlRGF0YShlKXtjb25zdHtjaHVua1NpemU6dCxsZW5ndGg6bixzdHJlYW06YX09dGhpcyxzPWUuY2h1bmsscj12b2lkIDA9PT1lLmJlZ2luLGk9cj9hLnByb2dyZXNzaXZlRGF0YUxlbmd0aDplLmJlZ2luLG89aStzLmJ5dGVMZW5ndGgsbD1NYXRoLmZsb29yKGkvdCksZj1vPG4/TWF0aC5mbG9vcihvL3QpOk1hdGguY2VpbChvL3QpO3I/YS5vblJlY2VpdmVQcm9ncmVzc2l2ZURhdGEocyk6YS5vblJlY2VpdmVEYXRhKGkscyk7YS5pc0RhdGFMb2FkZWQmJnRoaXMuX2xvYWRlZFN0cmVhbUNhcGFiaWxpdHkucmVzb2x2ZShhKTtjb25zdCBjPVtdO2ZvcihsZXQgZT1sO2U8ZjsrK2Upe2NvbnN0IHQ9dGhpcy5fcmVxdWVzdHNCeUNodW5rLmdldChlKTtpZih0KXt0aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuZGVsZXRlKGUpO2Zvcihjb25zdCBuIG9mIHQpe2NvbnN0IHQ9dGhpcy5fY2h1bmtzTmVlZGVkQnlSZXF1ZXN0LmdldChuKTt0LmhhcyhlKSYmdC5kZWxldGUoZSk7dC5zaXplPjB8fGMucHVzaChuKX19fWlmKCF0aGlzLmRpc2FibGVBdXRvRmV0Y2gmJjA9PT10aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuc2l6ZSl7bGV0IGU7aWYoMT09PWEubnVtQ2h1bmtzTG9hZGVkKXtjb25zdCB0PWEubnVtQ2h1bmtzLTE7YS5oYXNDaHVuayh0KXx8KGU9dCl9ZWxzZSBlPWEubmV4dEVtcHR5Q2h1bmsoZik7TnVtYmVyLmlzSW50ZWdlcihlKSYmdGhpcy5fcmVxdWVzdENodW5rcyhbZV0pfWZvcihjb25zdCBlIG9mIGMpe2NvbnN0IHQ9dGhpcy5fcHJvbWlzZXNCeVJlcXVlc3QuZ2V0KGUpO3RoaXMuX3Byb21pc2VzQnlSZXF1ZXN0LmRlbGV0ZShlKTt0LnJlc29sdmUoKX10aGlzLm1zZ0hhbmRsZXIuc2VuZCgiRG9jUHJvZ3Jlc3MiLHtsb2FkZWQ6TWF0aENsYW1wKGEubnVtQ2h1bmtzTG9hZGVkKnQsYS5wcm9ncmVzc2l2ZURhdGFMZW5ndGgsbiksdG90YWw6bn0pfW9uRXJyb3IoZSl7dGhpcy5fbG9hZGVkU3RyZWFtQ2FwYWJpbGl0eS5yZWplY3QoZSl9Z2V0QmVnaW5DaHVuayhlKXtyZXR1cm4gTWF0aC5mbG9vcihlL3RoaXMuY2h1bmtTaXplKX1nZXRFbmRDaHVuayhlKXtyZXR1cm4gTWF0aC5mbG9vcigoZS0xKS90aGlzLmNodW5rU2l6ZSkrMX1hYm9ydChlKXt0aGlzLmFib3J0ZWQ9ITA7dGhpcy5wZGZTdHJlYW0/LmNhbmNlbEFsbFJlcXVlc3RzKGUpO2Zvcihjb25zdCB0IG9mIHRoaXMuX3Byb21pc2VzQnlSZXF1ZXN0LnZhbHVlcygpKXQucmVqZWN0KGUpfX1mdW5jdGlvbiBjb252ZXJ0VG9SR0JBKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgeDpyZXR1cm4gY29udmVydEJsYWNrQW5kV2hpdGVUb1JHQkEoZSk7Y2FzZSBDOnJldHVybiBmdW5jdGlvbiBjb252ZXJ0UkdCVG9SR0JBKHtzcmM6ZSxzcmNQb3M6dD0wLGRlc3Q6bixkZXN0UG9zOmE9MCx3aWR0aDpzLGhlaWdodDpyfSl7bGV0IGk9MDtjb25zdCBvPXMqciozLGw9bz4+MixmPW5ldyBVaW50MzJBcnJheShlLmJ1ZmZlcix0LGwpLGM9RmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4/NDI3ODE5MDA4MDoyNTU7aWYoRmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4pe2Zvcig7aTxsLTI7aSs9MyxhKz00KXtjb25zdCBlPWZbaV0sdD1mW2krMV0scz1mW2krMl07blthXT1lfGM7blthKzFdPWU+Pj4yNHx0PDw4fGM7blthKzJdPXQ+Pj4xNnxzPDwxNnxjO25bYSszXT1zPj4+OHxjfWZvcihsZXQgcz00Kmkscj10K287czxyO3MrPTMpblthKytdPWVbc118ZVtzKzFdPDw4fGVbcysyXTw8MTZ8Y31lbHNle2Zvcig7aTxsLTI7aSs9MyxhKz00KXtjb25zdCBlPWZbaV0sdD1mW2krMV0scz1mW2krMl07blthXT1lfGM7blthKzFdPWU8PDI0fHQ+Pj44fGM7blthKzJdPXQ8PDE2fHM+Pj4xNnxjO25bYSszXT1zPDw4fGN9Zm9yKGxldCBzPTQqaSxyPXQrbztzPHI7cys9MyluW2ErK109ZVtzXTw8MjR8ZVtzKzFdPDwxNnxlW3MrMl08PDh8Y31yZXR1cm57c3JjUG9zOnQrbyxkZXN0UG9zOmF9fShlKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBjb252ZXJ0QmxhY2tBbmRXaGl0ZVRvUkdCQSh7c3JjOmUsc3JjUG9zOnQ9MCxkZXN0Om4sd2lkdGg6YSxoZWlnaHQ6cyxub25CbGFja0NvbG9yOnI9NDI5NDk2NzI5NSxpbnZlcnNlRGVjb2RlOmk9ITF9KXtjb25zdCBvPUZlYXR1cmVUZXN0LmlzTGl0dGxlRW5kaWFuPzQyNzgxOTAwODA6MjU1LFtsLGZdPWk/W3Isb106W28scl0sYz1hPj4zLGg9NyZhLHU9bF5mLG09ZS5sZW5ndGg7bj1uZXcgVWludDMyQXJyYXkobi5idWZmZXIpO2xldCBwPTA7Zm9yKGxldCBhPTA7YTxzOysrYSl7Zm9yKGNvbnN0IGE9dCtjO3Q8YTsrK3QscCs9OCl7Y29uc3QgYT1lW3RdO25bcF09bF4tKGE+PjcmMSkmdTtuW3ArMV09bF4tKGE+PjYmMSkmdTtuW3ArMl09bF4tKGE+PjUmMSkmdTtuW3ArM109bF4tKGE+PjQmMSkmdTtuW3ArNF09bF4tKGE+PjMmMSkmdTtuW3ArNV09bF4tKGE+PjImMSkmdTtuW3ArNl09bF4tKGE+PjEmMSkmdTtuW3ArN109bF4tKDEmYSkmdX1pZigwPT09aCljb250aW51ZTtjb25zdCBhPXQ8bT9lW3QrK106MjU1O2ZvcihsZXQgZT0wO2U8aDsrK2UsKytwKW5bcF09bF4tKGE+PjctZSYxKSZ1fXJldHVybntzcmNQb3M6dCxkZXN0UG9zOnB9fWNsYXNzIEltYWdlUmVzaXplcntzdGF0aWMjRj0yMDQ4O3N0YXRpYyNUPUZlYXR1cmVUZXN0LmlzSW1hZ2VEZWNvZGVyU3VwcG9ydGVkO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5faW1nRGF0YT1lO3RoaXMuX2lzTWFzaz10fXN0YXRpYyBnZXQgY2FuVXNlSW1hZ2VEZWNvZGVyKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJjYW5Vc2VJbWFnZURlY29kZXIiLHRoaXMuI1Q/SW1hZ2VEZWNvZGVyLmlzVHlwZVN1cHBvcnRlZCgiaW1hZ2UvYm1wIik6UHJvbWlzZS5yZXNvbHZlKCExKSl9c3RhdGljIG5lZWRzVG9CZVJlc2l6ZWQoZSx0KXtpZihlPD10aGlzLiNGJiZ0PD10aGlzLiNGKXJldHVybiExO2NvbnN0e01BWF9ESU06bn09dGhpcztpZihlPm58fHQ+bilyZXR1cm4hMDtjb25zdCBhPWUqdDtpZih0aGlzLl9oYXNNYXhBcmVhKXJldHVybiBhPnRoaXMuTUFYX0FSRUE7aWYoYTx0aGlzLiNGKioyKXJldHVybiExO2lmKHRoaXMuX2FyZUdvb2REaW1zKGUsdCkpe3RoaXMuI0Y9TWF0aC5tYXgodGhpcy4jRixNYXRoLmZsb29yKE1hdGguc3FydChlKnQpKSk7cmV0dXJuITF9dGhpcy4jRj10aGlzLl9ndWVzc01heCh0aGlzLiNGLG4sMTI4LDApO3JldHVybiBhPih0aGlzLk1BWF9BUkVBPXRoaXMuI0YqKjIpfXN0YXRpYyBnZXRSZWR1Y2VQb3dlckZvckpQWChlLHQsbil7Y29uc3QgYT1lKnQscz0yKiozMC8oNCpuKTtpZighdGhpcy5uZWVkc1RvQmVSZXNpemVkKGUsdCkpcmV0dXJuIGE+cz9NYXRoLmNlaWwoTWF0aC5sb2cyKGEvcykpOjA7Y29uc3R7TUFYX0RJTTpyLE1BWF9BUkVBOml9PXRoaXMsbz1NYXRoLm1heChlL3IsdC9yLE1hdGguc3FydChhL01hdGgubWluKHMsaSkpKTtyZXR1cm4gTWF0aC5jZWlsKE1hdGgubG9nMihvKSl9c3RhdGljIGdldCBNQVhfRElNKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJNQVhfRElNIix0aGlzLl9ndWVzc01heCgyMDQ4LDMyNzY4LDAsMSkpfXN0YXRpYyBnZXQgTUFYX0FSRUEoKXt0aGlzLl9oYXNNYXhBcmVhPSEwO3JldHVybiBzaGFkb3codGhpcywiTUFYX0FSRUEiLHRoaXMuX2d1ZXNzTWF4KHRoaXMuI0YsdGhpcy5NQVhfRElNLDEyOCwwKSoqMil9c3RhdGljIHNldCBNQVhfQVJFQShlKXtpZihlPj0wKXt0aGlzLl9oYXNNYXhBcmVhPSEwO3NoYWRvdyh0aGlzLCJNQVhfQVJFQSIsZSl9fXN0YXRpYyBzZXRPcHRpb25zKHtjYW52YXNNYXhBcmVhSW5CeXRlczplPS0xLGlzSW1hZ2VEZWNvZGVyU3VwcG9ydGVkOnQ9ITF9KXt0aGlzLl9oYXNNYXhBcmVhfHwodGhpcy5NQVhfQVJFQT1lPj4yKTt0aGlzLiNUPXR9c3RhdGljIF9hcmVHb29kRGltcyhlLHQpe3RyeXtjb25zdCBuPW5ldyBPZmZzY3JlZW5DYW52YXMoZSx0KSxhPW4uZ2V0Q29udGV4dCgiMmQiKTthLmZpbGxSZWN0KDAsMCwxLDEpO2NvbnN0IHM9YS5nZXRJbWFnZURhdGEoMCwwLDEsMSkuZGF0YVszXTtuLndpZHRoPW4uaGVpZ2h0PTE7cmV0dXJuIDAhPT1zfWNhdGNoe3JldHVybiExfX1zdGF0aWMgX2d1ZXNzTWF4KGUsdCxuLGEpe2Zvcig7ZStuKzE8dDspe2NvbnN0IG49TWF0aC5mbG9vcigoZSt0KS8yKSxzPWF8fG47dGhpcy5fYXJlR29vZERpbXMobixzKT9lPW46dD1ufXJldHVybiBlfXN0YXRpYyBhc3luYyBjcmVhdGVJbWFnZShlLHQ9ITEpe3JldHVybiBuZXcgSW1hZ2VSZXNpemVyKGUsdCkuX2NyZWF0ZUltYWdlKCl9YXN5bmMgX2NyZWF0ZUltYWdlKCl7Y29uc3R7X2ltZ0RhdGE6ZX09dGhpcyx7d2lkdGg6dCxoZWlnaHQ6bn09ZTtpZih0Km4qND5tbil7Y29uc3QgZT10aGlzLiNIKCk7aWYoZSlyZXR1cm4gZX1jb25zdCBhPXRoaXMuX2VuY29kZUJNUCgpO2xldCBzLHI7aWYoYXdhaXQgSW1hZ2VSZXNpemVyLmNhblVzZUltYWdlRGVjb2Rlcil7cz1uZXcgSW1hZ2VEZWNvZGVyKHtkYXRhOmEsdHlwZToiaW1hZ2UvYm1wIixwcmVmZXJBbmltYXRpb246ITEsdHJhbnNmZXI6W2EuYnVmZmVyXX0pO3I9cy5kZWNvZGUoKS5jYXRjaChlPT57d2FybihgQk1QIGltYWdlIGRlY29kaW5nIGZhaWxlZDogJHtlfWApO3JldHVybiBjcmVhdGVJbWFnZUJpdG1hcChuZXcgQmxvYihbdGhpcy5fZW5jb2RlQk1QKCkuYnVmZmVyXSx7dHlwZToiaW1hZ2UvYm1wIn0pKX0pLmZpbmFsbHkoKCk9PntzLmNsb3NlKCl9KX1lbHNlIHI9Y3JlYXRlSW1hZ2VCaXRtYXAobmV3IEJsb2IoW2EuYnVmZmVyXSx7dHlwZToiaW1hZ2UvYm1wIn0pKTtjb25zdHtNQVhfQVJFQTppLE1BWF9ESU06b309SW1hZ2VSZXNpemVyLGw9TWF0aC5tYXgodC9vLG4vbyxNYXRoLnNxcnQodCpuL2kpKSxmPU1hdGgubWF4KGwsMiksYz1NYXRoLnJvdW5kKDEwKihsKzEuMjUpKS8xMC9mLGg9TWF0aC5mbG9vcihNYXRoLmxvZzIoYykpLHU9bmV3IEFycmF5KGgrMikuZmlsbCgyKTt1WzBdPWY7dS5zcGxpY2UoLTEsMSxjLygxPDxoKSk7bGV0IG09dCxwPW47Y29uc3QgZD1hd2FpdCByO2xldCBnPWQuaW1hZ2V8fGQ7Zm9yKGNvbnN0IGUgb2YgdSl7Y29uc3QgdD1tLG49cDttPU1hdGguZmxvb3IobS9lKS0xO3A9TWF0aC5mbG9vcihwL2UpLTE7Y29uc3QgYT1uZXcgT2Zmc2NyZWVuQ2FudmFzKG0scCk7YS5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZShnLDAsMCx0LG4sMCwwLG0scCk7Zy5jbG9zZSgpO2c9YS50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKX1lLmRhdGE9bnVsbDtlLmJpdG1hcD1nO2Uud2lkdGg9bTtlLmhlaWdodD1wO3JldHVybiBlfSNIKCl7Y29uc3R7X2ltZ0RhdGE6ZX09dGhpcyx7ZGF0YTp0LHdpZHRoOm4saGVpZ2h0OmEsa2luZDpzfT1lLHI9biphKjQsaT1NYXRoLmNlaWwoTWF0aC5sb2cyKHIvbW4pKSxvPW4+PmksbD1hPj5pO2xldCBmLGM9YTt0cnl7Zj1uZXcgVWludDhBcnJheShyKX1jYXRjaHtsZXQgZT1NYXRoLmZsb29yKE1hdGgubG9nMihyKzEpKTtmb3IoOzspdHJ5e2Y9bmV3IFVpbnQ4QXJyYXkoMioqZS0xKTticmVha31jYXRjaHtlLT0xfWM9TWF0aC5mbG9vcigoMioqZS0xKS8oNCpuKSk7Y29uc3QgdD1uKmMqNDt0PGYubGVuZ3RoJiYoZj1uZXcgVWludDhBcnJheSh0KSl9Y29uc3QgaD1uZXcgVWludDMyQXJyYXkoZi5idWZmZXIpLHU9bmV3IFVpbnQzMkFycmF5KG8qbCk7bGV0IG09MCxwPTA7Y29uc3QgZD1NYXRoLmNlaWwoYS9jKSxnPWElYz09PTA/YTphJWM7Zm9yKGxldCBlPTA7ZTxkO2UrKyl7Y29uc3QgYT1lPGQtMT9jOmc7KHtzcmNQb3M6bX09Y29udmVydFRvUkdCQSh7a2luZDpzLHNyYzp0LGRlc3Q6aCx3aWR0aDpuLGhlaWdodDphLGludmVyc2VEZWNvZGU6dGhpcy5faXNNYXNrLHNyY1BvczptfSkpO2ZvcihsZXQgZT0wLHQ9YT4+aTtlPHQ7ZSsrKXtjb25zdCB0PWguc3ViYXJyYXkoKGU8PGkpKm4pO2ZvcihsZXQgZT0wO2U8bztlKyspdVtwKytdPXRbZTw8aV19fWlmKEltYWdlUmVzaXplci5uZWVkc1RvQmVSZXNpemVkKG8sbCkpe2UuZGF0YT11O2Uud2lkdGg9bztlLmhlaWdodD1sO2Uua2luZD1GO3JldHVybiBudWxsfWNvbnN0IGI9bmV3IE9mZnNjcmVlbkNhbnZhcyhvLGwpO2IuZ2V0Q29udGV4dCgiMmQiLHt3aWxsUmVhZEZyZXF1ZW50bHk6ITB9KS5wdXRJbWFnZURhdGEobmV3IEltYWdlRGF0YShuZXcgVWludDhDbGFtcGVkQXJyYXkodS5idWZmZXIpLG8sbCksMCwwKTtlLmRhdGE9bnVsbDtlLmJpdG1hcD1iLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpO2Uud2lkdGg9bztlLmhlaWdodD1sO3JldHVybiBlfV9lbmNvZGVCTVAoKXtjb25zdHt3aWR0aDplLGhlaWdodDp0LGtpbmQ6bn09dGhpcy5faW1nRGF0YTtsZXQgYSxzPXRoaXMuX2ltZ0RhdGEuZGF0YSxyPW5ldyBVaW50OEFycmF5KDApLGk9cixvPTA7c3dpdGNoKG4pe2Nhc2UgeDp7YT0xO3I9bmV3IFVpbnQ4QXJyYXkodGhpcy5faXNNYXNrP1syNTUsMjU1LDI1NSwyNTUsMCwwLDAsMF06WzAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1XSk7Y29uc3Qgbj1lKzc+PjMsaT1uKzMmLTQ7aWYobiE9PWkpe2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkoaSp0KTtsZXQgYT0wO2ZvcihsZXQgcj0wLG89dCpuO3I8bztyKz1uLGErPWkpZS5zZXQocy5zdWJhcnJheShyLHIrbiksYSk7cz1lfWJyZWFrfWNhc2UgQzphPTI0O2lmKDMmZSl7Y29uc3Qgbj0zKmUsYT1uKzMmLTQscj1hLW4saT1uZXcgVWludDhBcnJheShhKnQpO2xldCBvPTA7Zm9yKGxldCBlPTAsYT10Km47ZTxhO2UrPW4pe2NvbnN0IHQ9cy5zdWJhcnJheShlLGUrbik7Zm9yKGxldCBlPTA7ZTxuO2UrPTMpe2lbbysrXT10W2UrMl07aVtvKytdPXRbZSsxXTtpW28rK109dFtlXX1vKz1yfXM9aX1lbHNlIGZvcihsZXQgZT0wLHQ9cy5sZW5ndGg7ZTx0O2UrPTMpe2NvbnN0IHQ9c1tlXTtzW2VdPXNbZSsyXTtzW2UrMl09dH1icmVhaztjYXNlIEY6YT0zMjtvPTM7aT1uZXcgVWludDhBcnJheSg2OCk7Y29uc3Qgbj1uZXcgRGF0YVZpZXcoaS5idWZmZXIpO2lmKEZlYXR1cmVUZXN0LmlzTGl0dGxlRW5kaWFuKXtuLnNldFVpbnQzMigwLDI1NSwhMCk7bi5zZXRVaW50MzIoNCw2NTI4MCwhMCk7bi5zZXRVaW50MzIoOCwxNjcxMTY4MCwhMCk7bi5zZXRVaW50MzIoMTIsNDI3ODE5MDA4MCwhMCl9ZWxzZXtuLnNldFVpbnQzMigwLDQyNzgxOTAwODAsITApO24uc2V0VWludDMyKDQsMTY3MTE2ODAsITApO24uc2V0VWludDMyKDgsNjUyODAsITApO24uc2V0VWludDMyKDEyLDI1NSwhMCl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZm9ybWF0Iil9bGV0IGw9MDtjb25zdCBmPTQwK2kubGVuZ3RoLGM9MTQrZityLmxlbmd0aCtzLmxlbmd0aCxoPW5ldyBVaW50OEFycmF5KGMpLHU9bmV3IERhdGFWaWV3KGguYnVmZmVyKTt1LnNldFVpbnQxNihsLDE5Nzc4LCEwKTtsKz0yO3Uuc2V0VWludDMyKGwsYywhMCk7bCs9NDt1LnNldFVpbnQzMihsLDAsITApO2wrPTQ7dS5zZXRVaW50MzIobCwxNCtmK3IubGVuZ3RoLCEwKTtsKz00O3Uuc2V0VWludDMyKGwsZiwhMCk7bCs9NDt1LnNldEludDMyKGwsZSwhMCk7bCs9NDt1LnNldEludDMyKGwsLXQsITApO2wrPTQ7dS5zZXRVaW50MTYobCwxLCEwKTtsKz0yO3Uuc2V0VWludDE2KGwsYSwhMCk7bCs9Mjt1LnNldFVpbnQzMihsLG8sITApO2wrPTQ7dS5zZXRVaW50MzIobCwwLCEwKTtsKz00O3Uuc2V0SW50MzIobCwwLCEwKTtsKz00O3Uuc2V0SW50MzIobCwwLCEwKTtsKz00O3Uuc2V0VWludDMyKGwsci5sZW5ndGgvNCwhMCk7bCs9NDt1LnNldFVpbnQzMihsLDAsITApO2wrPTQ7aC5zZXQoaSxsKTtsKz1pLmxlbmd0aDtoLnNldChyLGwpO2wrPXIubGVuZ3RoO2guc2V0KHMsbCk7cmV0dXJuIGh9fWNvbnN0IHhuPWFzeW5jIGZ1bmN0aW9uIEpCaWcyKGU9e30pe3ZhciB0PWUscXVpdF89KGUsdCk9Pnt0aHJvdyB0fSxuPWltcG9ydC5tZXRhLnVybDt0cnl7bmV3IFVSTCgiLiIsbikuaHJlZn1jYXRjaHt9MDtjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3ZhciBhLHMscixpLG8sbD1jb25zb2xlLmVycm9yLmJpbmQoY29uc29sZSksZj0hMSxjPSExO2Z1bmN0aW9uIHVwZGF0ZU1lbW9yeVZpZXdzKCl7dmFyIGU9dS5idWZmZXI7aT1uZXcgSW50OEFycmF5KGUpO25ldyBJbnQxNkFycmF5KGUpO289bmV3IFVpbnQ4QXJyYXkoZSk7bmV3IFVpbnQxNkFycmF5KGUpO25ldyBJbnQzMkFycmF5KGUpO25ldyBVaW50MzJBcnJheShlKTtuZXcgRmxvYXQzMkFycmF5KGUpO25ldyBGbG9hdDY0QXJyYXkoZSk7bmV3IEJpZ0ludDY0QXJyYXkoZSk7bmV3IEJpZ1VpbnQ2NEFycmF5KGUpfWNsYXNzIEV4aXRTdGF0dXN7bmFtZT0iRXhpdFN0YXR1cyI7Y29uc3RydWN0b3IoZSl7dGhpcy5tZXNzYWdlPWBQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCR7ZX0pYDt0aGlzLnN0YXR1cz1lfX12YXIgaCx1LGNhbGxSdW50aW1lQ2FsbGJhY2tzPWU9Pntmb3IoO2UubGVuZ3RoPjA7KWUuc2hpZnQoKSh0KX0sbT1bXSxhZGRPblBvc3RSdW49ZT0+bS5wdXNoKGUpLHA9W10sYWRkT25QcmVSdW49ZT0+cC5wdXNoKGUpLGQ9ITAsZz0wLGI9e30saGFuZGxlRXhjZXB0aW9uPWU9PntpZihlIGluc3RhbmNlb2YgRXhpdFN0YXR1c3x8InVud2luZCI9PWUpcmV0dXJuIGE7cXVpdF8oMCxlKX0sa2VlcFJ1bnRpbWVBbGl2ZT0oKT0+ZHx8Zz4wLF9wcm9jX2V4aXQ9ZT0+e2E9ZTtpZigha2VlcFJ1bnRpbWVBbGl2ZSgpKXt0Lm9uRXhpdD8uKGUpO2Y9ITB9cXVpdF8oMCxuZXcgRXhpdFN0YXR1cyhlKSl9LF9leGl0PShlLHQpPT57YT1lO19wcm9jX2V4aXQoZSl9LGNhbGxVc2VyQ2FsbGJhY2s9ZT0+e2lmKCFmKXRyeXtyZXR1cm4gZSgpfWNhdGNoKGUpe2hhbmRsZUV4Y2VwdGlvbihlKX1maW5hbGx5eygoKT0+e2lmKCFrZWVwUnVudGltZUFsaXZlKCkpdHJ5e19leGl0KGEpfWNhdGNoKGUpe2hhbmRsZUV4Y2VwdGlvbihlKX19KSgpfX0sYWxpZ25NZW1vcnk9KGUsdCk9Pk1hdGguY2VpbChlL3QpKnQsZ3Jvd01lbW9yeT1lPT57dmFyIHQ9KGUtdS5idWZmZXIuYnl0ZUxlbmd0aCs2NTUzNSkvNjU1MzZ8MDt0cnl7dS5ncm93KHQpO3VwZGF0ZU1lbW9yeVZpZXdzKCk7cmV0dXJuIDF9Y2F0Y2goZSl7fX07dC5ub0V4aXRSdW50aW1lJiYoZD10Lm5vRXhpdFJ1bnRpbWUpO3QucHJpbnQmJnQucHJpbnQ7dC5wcmludEVyciYmKGw9dC5wcmludEVycik7dC53YXNtQmluYXJ5JiZ0Lndhc21CaW5hcnk7dC5hcmd1bWVudHMmJnQuYXJndW1lbnRzO3QudGhpc1Byb2dyYW0mJnQudGhpc1Byb2dyYW07aWYodC5wcmVJbml0KXsiZnVuY3Rpb24iPT10eXBlb2YgdC5wcmVJbml0JiYodC5wcmVJbml0PVt0LnByZUluaXRdKTtmb3IoO3QucHJlSW5pdC5sZW5ndGg+MDspdC5wcmVJbml0LnNoaWZ0KCkoKX10LndyaXRlQXJyYXlUb01lbW9yeT0oZSx0KT0+e2kuc2V0KGUsdCl9O3ZhciB3LGo9e2U6KCk9PmZ1bmN0aW9uIGFib3J0KGUpe3Qub25BYm9ydD8uKGUpO2woZT0iQWJvcnRlZCgiK2UrIikiKTtmPSEwO2UrPSIuIEJ1aWxkIHdpdGggLXNBU1NFUlRJT05TIGZvciBtb3JlIGluZm8uIjt2YXIgbj1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKGUpO3I/LihuKTt0aHJvdyBufSgiIiksYjooKT0+e2Q9ITE7Zz0wfSxjOihlLHQpPT57aWYoYltlXSl7Y2xlYXJUaW1lb3V0KGJbZV0uaWQpO2RlbGV0ZSBiW2VdfWlmKCF0KXJldHVybiAwO3ZhciBuPXNldFRpbWVvdXQoKCk9PntkZWxldGUgYltlXTtjYWxsVXNlckNhbGxiYWNrKCgpPT5oKGUscGVyZm9ybWFuY2Uubm93KCkpKX0sdCk7YltlXT17aWQ6bix0aW1lb3V0X21zOnR9O3JldHVybiAwfSxnOmZ1bmN0aW9uIF9jcmVhdGVJbWFnZURhdGEoZSl7dC5pbWFnZURhdGE9bmV3IFVpbnQ4QXJyYXkoZSl9LGQ6ZT0+e3ZhciB0PW8ubGVuZ3RoLG49MjE0NzQ4MzY0ODtpZigoZT4+Pj0wKT5uKXJldHVybiExO2Zvcih2YXIgYT0xO2E8PTQ7YSo9Mil7dmFyIHM9dCooMSsuMi9hKTtzPU1hdGgubWluKHMsZSsxMDA2NjMyOTYpO3ZhciByPU1hdGgubWluKG4sYWxpZ25NZW1vcnkoTWF0aC5tYXgoZSxzKSw2NTUzNikpO2lmKGdyb3dNZW1vcnkocikpcmV0dXJuITB9cmV0dXJuITF9LGE6X3Byb2NfZXhpdCxoOmZ1bmN0aW9uIF9zZXRJbWFnZURhdGEoZSxuLGEscyl7aWYoYT09PW4pe3QuaW1hZ2VEYXRhPW5ldyBVaW50OENsYW1wZWRBcnJheShvLnN1YmFycmF5KGUsZSthKnMpKTtyZXR1cm59Y29uc3Qgcj1uKnMsaT10LmltYWdlRGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkocik7Zm9yKGxldCB0PWUscz0wO3M8cjt0Kz1hLHMrPW4paS5zZXQoby5zdWJhcnJheSh0LHQrbikscyl9LGY6ZnVuY3Rpb24gX3NldExpbmVEYXRhKGUsbixhKXt0LmltYWdlRGF0YS5zZXQoby5zdWJhcnJheShlLGUrbiksYSl9fTt3PWF3YWl0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVdhc20oKXtmdW5jdGlvbiByZWNlaXZlSW5zdGFuY2UoZSxuKXshZnVuY3Rpb24gYXNzaWduV2FzbUV4cG9ydHMoZSl7dC5fbWFsbG9jPWUuazt0Ll9mcmVlPWUubDt0Ll9qYmlnMl9kZWNvZGU9ZS5tO3QuX2NjaXR0X2RlY29kZT1lLm47aD1lLm87dT1lLmk7ZS5fX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlfSh3PWUuZXhwb3J0cyk7dXBkYXRlTWVtb3J5Vmlld3MoKTtyZXR1cm4gd312YXIgZT1mdW5jdGlvbiBnZXRXYXNtSW1wb3J0cygpe3JldHVybnthOmp9fSgpO3JldHVybiBuZXcgUHJvbWlzZSgobixhKT0+e3QuaW5zdGFudGlhdGVXYXNtKGUsKGUsdCk9PntuKHJlY2VpdmVJbnN0YW5jZShlKSl9KX0pfSgpOyFmdW5jdGlvbiBydW4oKXshZnVuY3Rpb24gcHJlUnVuKCl7aWYodC5wcmVSdW4peyJmdW5jdGlvbiI9PXR5cGVvZiB0LnByZVJ1biYmKHQucHJlUnVuPVt0LnByZVJ1bl0pO2Zvcig7dC5wcmVSdW4ubGVuZ3RoOylhZGRPblByZVJ1bih0LnByZVJ1bi5zaGlmdCgpKX1jYWxsUnVudGltZUNhbGxiYWNrcyhwKX0oKTtmdW5jdGlvbiBkb1J1bigpe3QuY2FsbGVkUnVuPSEwO2lmKCFmKXshZnVuY3Rpb24gaW5pdFJ1bnRpbWUoKXtjPSEwO3cuaigpfSgpO3M/Lih0KTt0Lm9uUnVudGltZUluaXRpYWxpemVkPy4oKTshZnVuY3Rpb24gcG9zdFJ1bigpe2lmKHQucG9zdFJ1bil7ImZ1bmN0aW9uIj09dHlwZW9mIHQucG9zdFJ1biYmKHQucG9zdFJ1bj1bdC5wb3N0UnVuXSk7Zm9yKDt0LnBvc3RSdW4ubGVuZ3RoOylhZGRPblBvc3RSdW4odC5wb3N0UnVuLnNoaWZ0KCkpfWNhbGxSdW50aW1lQ2FsbGJhY2tzKG0pfSgpfX1pZih0LnNldFN0YXR1cyl7dC5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKTtzZXRUaW1lb3V0KCgpPT57c2V0VGltZW91dCgoKT0+dC5zZXRTdGF0dXMoIiIpLDEpO2RvUnVuKCl9LDEpfWVsc2UgZG9SdW4oKX0oKTtyZXR1cm4gYz90Om5ldyBQcm9taXNlKChlLHQpPT57cz1lO3I9dH0pfTtjbGFzcyBKQmlnMkVycm9yIGV4dGVuZHMgZW57Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiSmJpZzJFcnJvciIpfX1jbGFzcyBKQmlnMkNDSVRURmF4V2FzbUltYWdle3N0YXRpYyNPPW51bGw7c3RhdGljI0I9bnVsbDtzdGF0aWMjUj1udWxsO3N0YXRpYyN4PSEwO3N0YXRpYyNEPSEwO3N0YXRpYyNBPW51bGw7c3RhdGljIHNldE9wdGlvbnMoe2hhbmRsZXI6ZSx1c2VXYXNtOnQsdXNlV29ya2VyRmV0Y2g6bix3YXNtVXJsOmF9KXt0aGlzLiN4PXQ7dGhpcy4jRD1uO3RoaXMuI0E9YTtufHwodGhpcy4jQj1lKX1zdGF0aWMgYXN5bmMjTShlLHQsbil7Y29uc3QgYT0iamJpZzIud2FzbSI7dHJ5e3RoaXMuI098fCh0aGlzLiNEP3RoaXMuI089YXdhaXQgZmV0Y2hCaW5hcnlEYXRhKGAke3RoaXMuI0F9JHthfWApOnRoaXMuI089YXdhaXQgdGhpcy4jQi5zZW5kV2l0aFByb21pc2UoIkZldGNoQmluYXJ5RGF0YSIse3R5cGU6Indhc21GYWN0b3J5IixmaWxlbmFtZTphfSkpO3JldHVybiBuKChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0aGlzLiNPLHQpKS5pbnN0YW5jZSl9Y2F0Y2godCl7d2FybihgSkJpZzJJbWFnZSNpbnN0YW50aWF0ZVdhc206ICR7dH1gKTtyZXR1cm4gZShudWxsKX1maW5hbGx5e3RoaXMuI0I9bnVsbH19c3RhdGljIGFzeW5jIGRlY29kZShlLHQsbixhLHMpe2lmKCF0aGlzLiNSKXtjb25zdHtwcm9taXNlOmUscmVzb2x2ZTp0fT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSxuPVtlXTt0aGlzLiN4P24ucHVzaCh4bih7d2FybixpbnN0YW50aWF0ZVdhc206dGhpcy4jTS5iaW5kKHRoaXMsdCl9KSk6dChudWxsKTt0aGlzLiNSPVByb21pc2UucmFjZShuKX1jb25zdCByPWF3YWl0IHRoaXMuI1I7aWYoIXIpdGhyb3cgbmV3IEpCaWcyRXJyb3IoIkpCaWcyIGZhaWxlZCB0byBpbml0aWFsaXplIik7bGV0IGksbzt0cnl7Y29uc3QgbD1lLmxlbmd0aDtpPXIuX21hbGxvYyhsKTtyLndyaXRlQXJyYXlUb01lbW9yeShlLGkpO2lmKHMpci5fY2NpdHRfZGVjb2RlKGksbCx0LG4scy5LLHMuRW5kT2ZMaW5lPzE6MCxzLkVuY29kZWRCeXRlQWxpZ24/MTowLHMuQmxhY2tJczE/MTowLHMuQ29sdW1ucyxzLlJvd3MpO2Vsc2V7Y29uc3QgZT1hP2EubGVuZ3RoOjA7aWYoZT4wKXtvPXIuX21hbGxvYyhlKTtyLndyaXRlQXJyYXlUb01lbW9yeShhLG8pfXIuX2piaWcyX2RlY29kZShpLGwsdCxuLG8sZSl9aWYoIXIuaW1hZ2VEYXRhKXRocm93IG5ldyBKQmlnMkVycm9yKCJVbmtub3duIGVycm9yIik7Y29uc3R7aW1hZ2VEYXRhOmZ9PXI7ci5pbWFnZURhdGE9bnVsbDtyZXR1cm4gZn1maW5hbGx5e2kmJnIuX2ZyZWUoaSk7byYmci5fZnJlZShvKX19c3RhdGljIGNsZWFudXAoKXt0aGlzLiNSPW51bGx9fWNvbnN0IEFuPW5ldyBVaW50OEFycmF5KDApO2NsYXNzIERlY29kZVN0cmVhbSBleHRlbmRzIEJhc2VTdHJlYW17Y29uc3RydWN0b3IoZSl7c3VwZXIoKTt0aGlzLl9yYXdNaW5CdWZmZXJMZW5ndGg9ZXx8MDt0aGlzLnBvcz0wO3RoaXMuYnVmZmVyTGVuZ3RoPTA7dGhpcy5lb2Y9ITE7dGhpcy5idWZmZXI9QW47dGhpcy5taW5CdWZmZXJMZW5ndGg9NTEyO2lmKGUpZm9yKDt0aGlzLm1pbkJ1ZmZlckxlbmd0aDxlOyl0aGlzLm1pbkJ1ZmZlckxlbmd0aCo9Mn1nZXQgaXNFbXB0eSgpe2Zvcig7IXRoaXMuZW9mJiYwPT09dGhpcy5idWZmZXJMZW5ndGg7KXRoaXMucmVhZEJsb2NrKCk7cmV0dXJuIDA9PT10aGlzLmJ1ZmZlckxlbmd0aH1lbnN1cmVCdWZmZXIoZSl7Y29uc3QgdD10aGlzLmJ1ZmZlcjtpZihlPD10LmJ5dGVMZW5ndGgpcmV0dXJuIHQ7bGV0IG49dGhpcy5taW5CdWZmZXJMZW5ndGg7Zm9yKDtuPGU7KW4qPTI7Y29uc3QgYT1uZXcgVWludDhBcnJheShuKTthLnNldCh0KTtyZXR1cm4gdGhpcy5idWZmZXI9YX1nZXRCeXRlKCl7Y29uc3QgZT10aGlzLnBvcztmb3IoO3RoaXMuYnVmZmVyTGVuZ3RoPD1lOyl7aWYodGhpcy5lb2YpcmV0dXJuLTE7dGhpcy5yZWFkQmxvY2soKX1yZXR1cm4gdGhpcy5idWZmZXJbdGhpcy5wb3MrK119Z2V0Qnl0ZXMoZSx0PW51bGwpe2NvbnN0IG49dGhpcy5wb3M7bGV0IGE7aWYoZSl7dGhpcy5lbnN1cmVCdWZmZXIobitlKTthPW4rZTtmb3IoOyF0aGlzLmVvZiYmdGhpcy5idWZmZXJMZW5ndGg8YTspdGhpcy5yZWFkQmxvY2sodCk7Y29uc3Qgcz10aGlzLmJ1ZmZlckxlbmd0aDthPnMmJihhPXMpfWVsc2V7Zm9yKDshdGhpcy5lb2Y7KXRoaXMucmVhZEJsb2NrKHQpO2E9dGhpcy5idWZmZXJMZW5ndGh9dGhpcy5wb3M9YTtyZXR1cm4gdGhpcy5idWZmZXIuc3ViYXJyYXkobixhKX1hc3luYyBnZXRJbWFnZURhdGEoZSx0KXtpZighdGhpcy5jYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlcilyZXR1cm4gdGhpcy5pc0FzeW5jRGVjb2Rlcj90aGlzLmRlY29kZUltYWdlKG51bGwsZSx0KTp0aGlzLmdldEJ5dGVzKGUsdCk7Y29uc3Qgbj1hd2FpdCB0aGlzLnN0cmVhbS5hc3luY0dldEJ5dGVzKCk7cmV0dXJuIHRoaXMuZGVjb2RlSW1hZ2UobixlLHQpfWFzeW5jIGFzeW5jR2V0Qnl0ZXNGcm9tRGVjb21wcmVzc2lvblN0cmVhbShlKXt0aGlzLnN0cmVhbS5yZXNldCgpO2NvbnN0IHQ9dGhpcy5zdHJlYW0uaXNBc3luYz9hd2FpdCB0aGlzLnN0cmVhbS5hc3luY0dldEJ5dGVzKCk6dGhpcy5zdHJlYW0uZ2V0Qnl0ZXMoKTt0cnl7Y29uc3R7cmVhZGFibGU6bix3cml0YWJsZTphfT1uZXcgRGVjb21wcmVzc2lvblN0cmVhbShlKSxzPWEuZ2V0V3JpdGVyKCk7YXdhaXQgcy5yZWFkeTtzLndyaXRlKHQpLnRoZW4oYXN5bmMoKT0+e2F3YWl0IHMucmVhZHk7YXdhaXQgcy5jbG9zZSgpfSkuY2F0Y2goKCk9Pnt9KTtjb25zdCByPVtdO2xldCBpPTA7Zm9yIGF3YWl0KGNvbnN0IGUgb2Ygbil7ci5wdXNoKGUpO2krPWUuYnl0ZUxlbmd0aH1jb25zdCBvPW5ldyBVaW50OEFycmF5KGkpO2xldCBsPTA7Zm9yKGNvbnN0IGUgb2Ygcil7by5zZXQoZSxsKTtsKz1lLmJ5dGVMZW5ndGh9cmV0dXJue2RlY29tcHJlc3NlZDpvLGNvbXByZXNzZWQ6dH19Y2F0Y2h7cmV0dXJue2RlY29tcHJlc3NlZDpudWxsLGNvbXByZXNzZWQ6dH19fXJlc2V0KCl7dGhpcy5wb3M9MH1tYWtlU3ViU3RyZWFtKGUsdCxuPW51bGwpe2lmKHZvaWQgMD09PXQpZm9yKDshdGhpcy5lb2Y7KXRoaXMucmVhZEJsb2NrKCk7ZWxzZXtjb25zdCBuPWUrdDtmb3IoO3RoaXMuYnVmZmVyTGVuZ3RoPD1uJiYhdGhpcy5lb2Y7KXRoaXMucmVhZEJsb2NrKCl9cmV0dXJuIG5ldyBTdHJlYW0odGhpcy5idWZmZXIsZSx0LG4pfWdldEJhc2VTdHJlYW1zKCl7cmV0dXJuIHRoaXMuc3RyZWFtP3RoaXMuc3RyZWFtLmdldEJhc2VTdHJlYW1zKCk6bnVsbH1jbG9uZSgpe2Zvcig7IXRoaXMuZW9mOyl0aGlzLnJlYWRCbG9jaygpO3JldHVybiBuZXcgU3RyZWFtKHRoaXMuYnVmZmVyLHRoaXMuc3RhcnQsdGhpcy5lbmQtdGhpcy5zdGFydCx0aGlzLmRpY3QuY2xvbmUoKSl9fWNsYXNzIFN0cmVhbXNTZXF1ZW5jZVN0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQ9bnVsbCl7ZT1lLmZpbHRlcihlPT5lIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmIWUuaXNJbWFnZVN0cmVhbSk7bGV0IG49MDtmb3IoY29uc3QgdCBvZiBlKW4rPXQgaW5zdGFuY2VvZiBEZWNvZGVTdHJlYW0/dC5fcmF3TWluQnVmZmVyTGVuZ3RoOnQubGVuZ3RoO3N1cGVyKG4pO3RoaXMuc3RyZWFtcz1lO3RoaXMuX29uRXJyb3I9dH1yZWFkQmxvY2soKXtjb25zdCBlPXRoaXMuc3RyZWFtcztpZigwPT09ZS5sZW5ndGgpe3RoaXMuZW9mPSEwO3JldHVybn1jb25zdCB0PWUuc2hpZnQoKTtsZXQgbjt0cnl7bj10LmdldEJ5dGVzKCl9Y2F0Y2goZSl7aWYodGhpcy5fb25FcnJvcil7dGhpcy5fb25FcnJvcihlLHQuZGljdD8ub2JqSWQpO3JldHVybn10aHJvdyBlfWNvbnN0IGE9dGhpcy5idWZmZXJMZW5ndGgscz1hK24ubGVuZ3RoO3RoaXMuZW5zdXJlQnVmZmVyKHMpLnNldChuLGEpO3RoaXMuYnVmZmVyTGVuZ3RoPXN9Z2V0QmFzZVN0cmVhbXMoKXtjb25zdCBlPVtdO2Zvcihjb25zdCB0IG9mIHRoaXMuc3RyZWFtcyl7Y29uc3Qgbj10LmdldEJhc2VTdHJlYW1zKCk7biYmZS5wdXNoKC4uLm4pfXJldHVybiBlLmxlbmd0aD4wP2U6bnVsbH19Y2xhc3MgQ29sb3JTcGFjZVV0aWxze3N0YXRpYyBwYXJzZSh7Y3M6ZSx4cmVmOnQscmVzb3VyY2VzOm49bnVsbCxwZGZGdW5jdGlvbkZhY3Rvcnk6YSxnbG9iYWxDb2xvclNwYWNlQ2FjaGU6cyxsb2NhbENvbG9yU3BhY2VDYWNoZTpyLGFzeW5jSWZOb3RDYWNoZWQ6aT0hMX0pe2NvbnN0IG89e3hyZWY6dCxyZXNvdXJjZXM6bixwZGZGdW5jdGlvbkZhY3Rvcnk6YSxnbG9iYWxDb2xvclNwYWNlQ2FjaGU6cyxsb2NhbENvbG9yU3BhY2VDYWNoZTpyfTtsZXQgbCxmLGM7aWYoZSBpbnN0YW5jZW9mIFJlZil7Zj1lO2NvbnN0IG49cy5nZXRCeVJlZihmKXx8ci5nZXRCeVJlZihmKTtpZihuKXJldHVybiBuO2U9dC5mZXRjaChlKX1pZihlIGluc3RhbmNlb2YgTmFtZSl7bD1lLm5hbWU7Y29uc3QgdD1yLmdldEJ5TmFtZShsKTtpZih0KXJldHVybiB0fXRyeXtjPXRoaXMuI1AoZSxvKX1jYXRjaChlKXtpZihpJiYhKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbikpcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO3Rocm93IGV9aWYobHx8Zil7ci5zZXQobCxmLGMpO2YmJnMuc2V0KG51bGwsZixjKX1yZXR1cm4gaT9Qcm9taXNlLnJlc29sdmUoYyk6Y31zdGF0aWMjRShlLHQpe2NvbnN0e2dsb2JhbENvbG9yU3BhY2VDYWNoZTpufT10O2xldCBhO2lmKGUgaW5zdGFuY2VvZiBSZWYpe2E9ZTtjb25zdCB0PW4uZ2V0QnlSZWYoYSk7aWYodClyZXR1cm4gdH1jb25zdCBzPXRoaXMuI1AoZSx0KTthJiZuLnNldChudWxsLGEscyk7cmV0dXJuIHN9c3RhdGljI1AoZSx0KXtjb25zdHt4cmVmOm4scmVzb3VyY2VzOmEscGRmRnVuY3Rpb25GYWN0b3J5OnMsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnJ9PXQ7aWYoKGU9bi5mZXRjaElmUmVmKGUpKWluc3RhbmNlb2YgTmFtZSlzd2l0Y2goZS5uYW1lKXtjYXNlIkciOmNhc2UiRGV2aWNlR3JheSI6cmV0dXJuIHRoaXMuZ3JheTtjYXNlIlJHQiI6Y2FzZSJEZXZpY2VSR0IiOnJldHVybiB0aGlzLnJnYjtjYXNlIkRldmljZVJHQkEiOnJldHVybiB0aGlzLnJnYmE7Y2FzZSJDTVlLIjpjYXNlIkRldmljZUNNWUsiOnJldHVybiB0aGlzLmNteWs7Y2FzZSJQYXR0ZXJuIjpyZXR1cm4gbmV3IFBhdHRlcm5DUyhudWxsKTtkZWZhdWx0OmlmKGEgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBuPWEuZ2V0KCJDb2xvclNwYWNlIik7aWYobiBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGE9bi5nZXQoZS5uYW1lKTtpZihhKXtpZihhIGluc3RhbmNlb2YgTmFtZSlyZXR1cm4gdGhpcy4jUChhLHQpO2U9YTticmVha319fXdhcm4oYFVucmVjb2duaXplZCBDb2xvclNwYWNlOiAke2UubmFtZX1gKTtyZXR1cm4gdGhpcy5ncmF5fWlmKEFycmF5LmlzQXJyYXkoZSkpe2NvbnN0IGE9bi5mZXRjaElmUmVmKGVbMF0pLm5hbWU7bGV0IGksbyxsLGYsYyxoO3N3aXRjaChhKXtjYXNlIkciOmNhc2UiRGV2aWNlR3JheSI6cmV0dXJuIHRoaXMuZ3JheTtjYXNlIlJHQiI6Y2FzZSJEZXZpY2VSR0IiOnJldHVybiB0aGlzLnJnYjtjYXNlIkNNWUsiOmNhc2UiRGV2aWNlQ01ZSyI6cmV0dXJuIHRoaXMuY215aztjYXNlIkNhbEdyYXkiOmk9bi5mZXRjaElmUmVmKGVbMV0pO2Y9aS5nZXRBcnJheSgiV2hpdGVQb2ludCIpO2M9aS5nZXRBcnJheSgiQmxhY2tQb2ludCIpO2g9aS5nZXQoIkdhbW1hIik7cmV0dXJuIG5ldyBDYWxHcmF5Q1MoZixjLGgpO2Nhc2UiQ2FsUkdCIjppPW4uZmV0Y2hJZlJlZihlWzFdKTtmPWkuZ2V0QXJyYXkoIldoaXRlUG9pbnQiKTtjPWkuZ2V0QXJyYXkoIkJsYWNrUG9pbnQiKTtoPWkuZ2V0QXJyYXkoIkdhbW1hIik7Y29uc3QgdT1pLmdldEFycmF5KCJNYXRyaXgiKTtyZXR1cm4gbmV3IENhbFJHQkNTKGYsYyxoLHUpO2Nhc2UiSUNDQmFzZWQiOmNvbnN0IG09ZVsxXWluc3RhbmNlb2YgUmVmO2lmKG0pe2NvbnN0IHQ9ci5nZXRCeVJlZihlWzFdKTtpZih0KXJldHVybiB0fWNvbnN0IHA9bi5mZXRjaElmUmVmKGVbMV0pLGQ9cC5kaWN0O289ZC5nZXQoIk4iKTtpZihJY2NDb2xvclNwYWNlLmlzVXNhYmxlKXRyeXtjb25zdCB0PW5ldyBJY2NDb2xvclNwYWNlKHAuZ2V0Qnl0ZXMoKSwiSUNDQmFzZWQiLG8pO20mJnIuc2V0KG51bGwsZVsxXSx0KTtyZXR1cm4gdH1jYXRjaCh0KXtpZih0IGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgdDt3YXJuKGBJQ0NCYXNlZCBjb2xvciBzcGFjZSAoJHtlWzFdfSk6ICIke3R9Ii5gKX1jb25zdCBnPWQuZ2V0UmF3KCJBbHRlcm5hdGUiKTtpZihnKXtjb25zdCBlPXRoaXMuI0UoZyx0KTtpZihlLm51bUNvbXBzPT09bylyZXR1cm4gZTt3YXJuKCJJQ0NCYXNlZCBjb2xvciBzcGFjZTogSWdub3JpbmcgaW5jb3JyZWN0IC9BbHRlcm5hdGUgZW50cnkuIil9aWYoMT09PW8pcmV0dXJuIHRoaXMuZ3JheTtpZigzPT09bylyZXR1cm4gdGhpcy5yZ2I7aWYoND09PW8pcmV0dXJuIHRoaXMuY215azticmVhaztjYXNlIlBhdHRlcm4iOmw9ZVsxXXx8bnVsbDtsJiYobD10aGlzLiNFKGwsdCkpO3JldHVybiBuZXcgUGF0dGVybkNTKGwpO2Nhc2UiSSI6Y2FzZSJJbmRleGVkIjpsPXRoaXMuI0UoZVsxXSx0KTtjb25zdCBiPU1hdGhDbGFtcChuLmZldGNoSWZSZWYoZVsyXSksMCwyNTUpLHc9bi5mZXRjaElmUmVmKGVbM10pO3JldHVybiBuZXcgSW5kZXhlZENTKGwsYix3KTtjYXNlIlNlcGFyYXRpb24iOmNhc2UiRGV2aWNlTiI6Y29uc3Qgaj1uLmZldGNoSWZSZWYoZVsxXSk7bz1BcnJheS5pc0FycmF5KGopP2oubGVuZ3RoOjE7bD10aGlzLiNFKGVbMl0sdCk7Y29uc3Qgaz1zLmNyZWF0ZShlWzNdKTtyZXR1cm4gbmV3IEFsdGVybmF0ZUNTKG8sbCxrKTtjYXNlIkxhYiI6aT1uLmZldGNoSWZSZWYoZVsxXSk7Zj1pLmdldEFycmF5KCJXaGl0ZVBvaW50Iik7Yz1pLmdldEFycmF5KCJCbGFja1BvaW50Iik7Y29uc3QgeT1pLmdldEFycmF5KCJSYW5nZSIpO3JldHVybiBuZXcgTGFiQ1MoZixjLHkpO2RlZmF1bHQ6d2FybihgVW5pbXBsZW1lbnRlZCBDb2xvclNwYWNlIG9iamVjdDogJHthfWApO3JldHVybiB0aGlzLmdyYXl9fXdhcm4oYFVucmVjb2duaXplZCBDb2xvclNwYWNlIG9iamVjdDogJHtlfWApO3JldHVybiB0aGlzLmdyYXl9c3RhdGljIGdldCBncmF5KCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJncmF5IixuZXcgRGV2aWNlR3JheUNTKX1zdGF0aWMgZ2V0IHJnYigpe3JldHVybiBzaGFkb3codGhpcywicmdiIixuZXcgRGV2aWNlUmdiQ1MpfXN0YXRpYyBnZXQgcmdiYSgpe3JldHVybiBzaGFkb3codGhpcywicmdiYSIsbmV3IERldmljZVJnYmFDUyl9c3RhdGljIGdldCBjbXlrKCl7aWYoQ215a0lDQ0Jhc2VkQ1MuaXNVc2FibGUpdHJ5e3JldHVybiBzaGFkb3codGhpcywiY215ayIsbmV3IENteWtJQ0NCYXNlZENTKX1jYXRjaHt3YXJuKCJDTVlLIGZhbGxiYWNrOiBEZXZpY2VDTVlLIil9cmV0dXJuIHNoYWRvdyh0aGlzLCJjbXlrIixuZXcgRGV2aWNlQ215a0NTKX19Y2xhc3MgSnBlZ0Vycm9yIGV4dGVuZHMgZW57Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiSnBlZ0Vycm9yIil9fWNsYXNzIEROTE1hcmtlckVycm9yIGV4dGVuZHMgZW57Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLCJETkxNYXJrZXJFcnJvciIpO3RoaXMuc2NhbkxpbmVzPXR9fWNsYXNzIEVPSU1hcmtlckVycm9yIGV4dGVuZHMgZW57Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiRU9JTWFya2VyRXJyb3IiKX19Y29uc3QgQ249bmV3IFVpbnQ4QXJyYXkoWzAsMSw4LDE2LDksMiwzLDEwLDE3LDI0LDMyLDI1LDE4LDExLDQsNSwxMiwxOSwyNiwzMyw0MCw0OCw0MSwzNCwyNywyMCwxMyw2LDcsMTQsMjEsMjgsMzUsNDIsNDksNTYsNTcsNTAsNDMsMzYsMjksMjIsMTUsMjMsMzAsMzcsNDQsNTEsNTgsNTksNTIsNDUsMzgsMzEsMzksNDYsNTMsNjAsNjEsNTQsNDcsNTUsNjIsNjNdKSxJbj00MDE3LEZuPTc5OSxUbj0zNDA2LEhuPTIyNzYsT249MTU2NyxCbj0zNzg0LFJuPTU3OTMsRG49Mjg5NjtmdW5jdGlvbiBidWlsZEh1ZmZtYW5UYWJsZShlLHQpe2xldCBuLGEscz0wLHI9MTY7Zm9yKDtyPjAmJiFlW3ItMV07KXItLTtjb25zdCBpPVt7Y2hpbGRyZW46W10saW5kZXg6MH1dO2xldCBvLGw9aVswXTtmb3Iobj0wO248cjtuKyspe2ZvcihhPTA7YTxlW25dO2ErKyl7bD1pLnBvcCgpO2wuY2hpbGRyZW5bbC5pbmRleF09dFtzXTtmb3IoO2wuaW5kZXg+MDspbD1pLnBvcCgpO2wuaW5kZXgrKztpLnB1c2gobCk7Zm9yKDtpLmxlbmd0aDw9bjspe2kucHVzaChvPXtjaGlsZHJlbjpbXSxpbmRleDowfSk7bC5jaGlsZHJlbltsLmluZGV4XT1vLmNoaWxkcmVuO2w9b31zKyt9aWYobisxPHIpe2kucHVzaChvPXtjaGlsZHJlbjpbXSxpbmRleDowfSk7bC5jaGlsZHJlbltsLmluZGV4XT1vLmNoaWxkcmVuO2w9b319cmV0dXJuIGlbMF0uY2hpbGRyZW59ZnVuY3Rpb24gZ2V0QmxvY2tCdWZmZXJPZmZzZXQoZSx0LG4pe3JldHVybiA2NCooKGUuYmxvY2tzUGVyTGluZSsxKSp0K24pfWZ1bmN0aW9uIGRlY29kZVNjYW4oZSx0LG4sYSxzLHIsaSxvLGwsZj0hMSl7Y29uc3QgYz1uLm1jdXNQZXJMaW5lLGg9bi5wcm9ncmVzc2l2ZSx1PXQ7bGV0IG09MCxwPTA7ZnVuY3Rpb24gcmVhZEJpdCgpe2lmKHA+MCl7cC0tO3JldHVybiBtPj5wJjF9bT1lW3QrK107aWYoMjU1PT09bSl7Y29uc3QgYT1lW3QrK107aWYoYSl7aWYoMjIwPT09YSYmZil7Y29uc3QgYT1yZWFkVWludDE2KGUsdCs9Mik7dCs9MjtpZihhPjAmJmEhPT1uLnNjYW5MaW5lcyl0aHJvdyBuZXcgRE5MTWFya2VyRXJyb3IoIkZvdW5kIEROTCBtYXJrZXIgKDB4RkZEQykgd2hpbGUgcGFyc2luZyBzY2FuIGRhdGEiLGEpfWVsc2UgaWYoMjE3PT09YSl7aWYoZil7Y29uc3QgZT13Kig4PT09bi5wcmVjaXNpb24/ODowKTtpZihlPjAmJk1hdGgucm91bmQobi5zY2FuTGluZXMvZSk+PTUpdGhyb3cgbmV3IEROTE1hcmtlckVycm9yKCJGb3VuZCBFT0kgbWFya2VyICgweEZGRDkpIHdoaWxlIHBhcnNpbmcgc2NhbiBkYXRhLCBwb3NzaWJseSBjYXVzZWQgYnkgaW5jb3JyZWN0IGBzY2FuTGluZXNgIHBhcmFtZXRlciIsZSl9dGhyb3cgbmV3IEVPSU1hcmtlckVycm9yKCJGb3VuZCBFT0kgbWFya2VyICgweEZGRDkpIHdoaWxlIHBhcnNpbmcgc2NhbiBkYXRhIil9dGhyb3cgbmV3IEpwZWdFcnJvcihgdW5leHBlY3RlZCBtYXJrZXIgJHsobTw8OHxhKS50b1N0cmluZygxNil9YCl9fXA9NztyZXR1cm4gbT4+Pjd9ZnVuY3Rpb24gZGVjb2RlSHVmZm1hbihlKXtsZXQgdD1lO2Zvcig7Oyl7dD10W3JlYWRCaXQoKV07c3dpdGNoKHR5cGVvZiB0KXtjYXNlIm51bWJlciI6cmV0dXJuIHQ7Y2FzZSJvYmplY3QiOmNvbnRpbnVlfXRocm93IG5ldyBKcGVnRXJyb3IoImludmFsaWQgaHVmZm1hbiBzZXF1ZW5jZSIpfX1mdW5jdGlvbiByZWNlaXZlKGUpe2xldCB0PTA7Zm9yKDtlPjA7KXt0PXQ8PDF8cmVhZEJpdCgpO2UtLX1yZXR1cm4gdH1mdW5jdGlvbiByZWNlaXZlQW5kRXh0ZW5kKGUpe2lmKDE9PT1lKXJldHVybiAxPT09cmVhZEJpdCgpPzE6LTE7Y29uc3QgdD1yZWNlaXZlKGUpO3JldHVybiB0Pj0xPDxlLTE/dDp0KygtMTw8ZSkrMX1sZXQgZD0wO2xldCBnLGI9MDtsZXQgdz0wO2Z1bmN0aW9uIGRlY29kZU1jdShlLHQsbixhLHMpe2NvbnN0IHI9biVjO3c9KG4vY3wwKSplLnYrYTtjb25zdCBpPXIqZS5oK3M7dChlLGdldEJsb2NrQnVmZmVyT2Zmc2V0KGUsdyxpKSl9ZnVuY3Rpb24gZGVjb2RlQmxvY2soZSx0LG4pe3c9bi9lLmJsb2Nrc1BlckxpbmV8MDtjb25zdCBhPW4lZS5ibG9ja3NQZXJMaW5lO3QoZSxnZXRCbG9ja0J1ZmZlck9mZnNldChlLHcsYSkpfWNvbnN0IGo9YS5sZW5ndGg7bGV0IGsseSxxLHYsUyx4O3g9aD8wPT09cj8wPT09bz9mdW5jdGlvbiBkZWNvZGVEQ0ZpcnN0KGUsdCl7Y29uc3Qgbj1kZWNvZGVIdWZmbWFuKGUuaHVmZm1hblRhYmxlREMpLGE9MD09PW4/MDpyZWNlaXZlQW5kRXh0ZW5kKG4pPDxsO2UuYmxvY2tEYXRhW3RdPWUucHJlZCs9YX06ZnVuY3Rpb24gZGVjb2RlRENTdWNjZXNzaXZlKGUsdCl7ZS5ibG9ja0RhdGFbdF18PXJlYWRCaXQoKTw8bH06MD09PW8/ZnVuY3Rpb24gZGVjb2RlQUNGaXJzdChlLHQpe2lmKGQ+MCl7ZC0tO3JldHVybn1sZXQgbj1yO2NvbnN0IGE9aTtmb3IoO248PWE7KXtjb25zdCBhPWRlY29kZUh1ZmZtYW4oZS5odWZmbWFuVGFibGVBQykscz0xNSZhLHI9YT4+NDtpZigwPT09cyl7aWYocjwxNSl7ZD1yZWNlaXZlKHIpKygxPDxyKS0xO2JyZWFrfW4rPTE2O2NvbnRpbnVlfW4rPXI7Y29uc3QgaT1DbltuXTtlLmJsb2NrRGF0YVt0K2ldPXJlY2VpdmVBbmRFeHRlbmQocykqKDE8PGwpO24rK319OmZ1bmN0aW9uIGRlY29kZUFDU3VjY2Vzc2l2ZShlLHQpe2xldCBuPXI7Y29uc3QgYT1pO2xldCBzLG8sZj0wO2Zvcig7bjw9YTspe2NvbnN0IGE9dCtDbltuXSxyPWUuYmxvY2tEYXRhW2FdPDA/LTE6MTtzd2l0Y2goYil7Y2FzZSAwOm89ZGVjb2RlSHVmZm1hbihlLmh1ZmZtYW5UYWJsZUFDKTtzPTE1Jm87Zj1vPj40O2lmKDA9PT1zKWlmKGY8MTUpe2Q9cmVjZWl2ZShmKSsoMTw8Zik7Yj00fWVsc2V7Zj0xNjtiPTF9ZWxzZXtpZigxIT09cyl0aHJvdyBuZXcgSnBlZ0Vycm9yKCJpbnZhbGlkIEFDbiBlbmNvZGluZyIpO2c9cmVjZWl2ZUFuZEV4dGVuZChzKTtiPWY/MjozfWNvbnRpbnVlO2Nhc2UgMTpjYXNlIDI6aWYoZS5ibG9ja0RhdGFbYV0pZS5ibG9ja0RhdGFbYV0rPXIqKHJlYWRCaXQoKTw8bCk7ZWxzZXtmLS07MD09PWYmJihiPTI9PT1iPzM6MCl9YnJlYWs7Y2FzZSAzOmlmKGUuYmxvY2tEYXRhW2FdKWUuYmxvY2tEYXRhW2FdKz1yKihyZWFkQml0KCk8PGwpO2Vsc2V7ZS5ibG9ja0RhdGFbYV09Zzw8bDtiPTB9YnJlYWs7Y2FzZSA0OmUuYmxvY2tEYXRhW2FdJiYoZS5ibG9ja0RhdGFbYV0rPXIqKHJlYWRCaXQoKTw8bCkpfW4rK31pZig0PT09Yil7ZC0tOzA9PT1kJiYoYj0wKX19OmZ1bmN0aW9uIGRlY29kZUJhc2VsaW5lKGUsdCl7Y29uc3Qgbj1kZWNvZGVIdWZmbWFuKGUuaHVmZm1hblRhYmxlREMpLGE9MD09PW4/MDpyZWNlaXZlQW5kRXh0ZW5kKG4pO2UuYmxvY2tEYXRhW3RdPWUucHJlZCs9YTtsZXQgcz0xO2Zvcig7czw2NDspe2NvbnN0IG49ZGVjb2RlSHVmZm1hbihlLmh1ZmZtYW5UYWJsZUFDKSxhPTE1Jm4scj1uPj40O2lmKDA9PT1hKXtpZihyPDE1KWJyZWFrO3MrPTE2O2NvbnRpbnVlfXMrPXI7Y29uc3QgaT1DbltzXTtlLmJsb2NrRGF0YVt0K2ldPXJlY2VpdmVBbmRFeHRlbmQoYSk7cysrfX07bGV0IEMsRj0wO2NvbnN0IFQ9MT09PWo/YVswXS5ibG9ja3NQZXJMaW5lKmFbMF0uYmxvY2tzUGVyQ29sdW1uOmMqbi5tY3VzUGVyQ29sdW1uO2xldCBILE87Zm9yKDtGPD1UOyl7Y29uc3Qgbj1zP01hdGgubWluKFQtRixzKTpUO2lmKG4+MCl7Zm9yKHk9MDt5PGo7eSsrKWFbeV0ucHJlZD0wO2Q9MDtpZigxPT09ail7az1hWzBdO2ZvcihTPTA7UzxuO1MrKyl7ZGVjb2RlQmxvY2soayx4LEYpO0YrK319ZWxzZSBmb3IoUz0wO1M8bjtTKyspe2Zvcih5PTA7eTxqO3krKyl7az1hW3ldO0g9ay5oO089ay52O2ZvcihxPTA7cTxPO3ErKylmb3Iodj0wO3Y8SDt2KyspZGVjb2RlTWN1KGsseCxGLHEsdil9RisrfX1wPTA7Qz1maW5kTmV4dEZpbGVNYXJrZXIoZSx0KTtpZighQylicmVhaztpZihDLmludmFsaWQpe3dhcm4oYGRlY29kZVNjYW4gLSAke24+MD8idW5leHBlY3RlZCI6ImV4Y2Vzc2l2ZSJ9IE1DVSBkYXRhLCBjdXJyZW50IG1hcmtlciBpczogJHtDLmludmFsaWR9YCk7dD1DLm9mZnNldH1pZighKEMubWFya2VyPj02NTQ4OCYmQy5tYXJrZXI8PTY1NDk1KSlicmVhazt0Kz0yfXJldHVybiB0LXV9ZnVuY3Rpb24gcXVhbnRpemVBbmRJbnZlcnNlKGUsdCxuKXtjb25zdCBhPWUucXVhbnRpemF0aW9uVGFibGUscz1lLmJsb2NrRGF0YTtsZXQgcixpLG8sbCxmLGMsaCx1LG0scCxkLGcsYix3LGosayx5O2lmKCFhKXRocm93IG5ldyBKcGVnRXJyb3IoIm1pc3NpbmcgcmVxdWlyZWQgUXVhbnRpemF0aW9uIFRhYmxlLiIpO2ZvcihsZXQgZT0wO2U8NjQ7ZSs9OCl7bT1zW3QrZV07cD1zW3QrZSsxXTtkPXNbdCtlKzJdO2c9c1t0K2UrM107Yj1zW3QrZSs0XTt3PXNbdCtlKzVdO2o9c1t0K2UrNl07az1zW3QrZSs3XTttKj1hW2VdO2lmKDAhPT0ocHxkfGd8Ynx3fGp8aykpe3AqPWFbZSsxXTtkKj1hW2UrMl07Zyo9YVtlKzNdO2IqPWFbZSs0XTt3Kj1hW2UrNV07aio9YVtlKzZdO2sqPWFbZSs3XTtyPVJuKm0rMTI4Pj44O2k9Um4qYisxMjg+Pjg7bz1kO2w9ajtmPURuKihwLWspKzEyOD4+ODt1PURuKihwK2spKzEyOD4+ODtjPWc8PDQ7aD13PDw0O3I9citpKzE+PjE7aT1yLWk7eT1vKkJuK2wqT24rMTI4Pj44O289bypPbi1sKkJuKzEyOD4+ODtsPXk7Zj1mK2grMT4+MTtoPWYtaDt1PXUrYysxPj4xO2M9dS1jO3I9citsKzE+PjE7bD1yLWw7aT1pK28rMT4+MTtvPWktbzt5PWYqSG4rdSpUbisyMDQ4Pj4xMjtmPWYqVG4tdSpIbisyMDQ4Pj4xMjt1PXk7eT1jKkZuK2gqSW4rMjA0OD4+MTI7Yz1jKkluLWgqRm4rMjA0OD4+MTI7aD15O25bZV09cit1O25bZSs3XT1yLXU7bltlKzFdPWkraDtuW2UrNl09aS1oO25bZSsyXT1vK2M7bltlKzVdPW8tYztuW2UrM109bCtmO25bZSs0XT1sLWZ9ZWxzZXt5PVJuKm0rNTEyPj4xMDtuW2VdPXk7bltlKzFdPXk7bltlKzJdPXk7bltlKzNdPXk7bltlKzRdPXk7bltlKzVdPXk7bltlKzZdPXk7bltlKzddPXl9fWZvcihsZXQgZT0wO2U8ODsrK2Upe209bltlXTtwPW5bZSs4XTtkPW5bZSsxNl07Zz1uW2UrMjRdO2I9bltlKzMyXTt3PW5bZSs0MF07aj1uW2UrNDhdO2s9bltlKzU2XTtpZigwIT09KHB8ZHxnfGJ8d3xqfGspKXtyPVJuKm0rMjA0OD4+MTI7aT1SbipiKzIwNDg+PjEyO289ZDtsPWo7Zj1EbioocC1rKSsyMDQ4Pj4xMjt1PURuKihwK2spKzIwNDg+PjEyO2M9ZztoPXc7cj00MTEyKyhyK2krMT4+MSk7aT1yLWk7eT1vKkJuK2wqT24rMjA0OD4+MTI7bz1vKk9uLWwqQm4rMjA0OD4+MTI7bD15O2Y9ZitoKzE+PjE7aD1mLWg7dT11K2MrMT4+MTtjPXUtYztyPXIrbCsxPj4xO2w9ci1sO2k9aStvKzE+PjE7bz1pLW87eT1mKkhuK3UqVG4rMjA0OD4+MTI7Zj1mKlRuLXUqSG4rMjA0OD4+MTI7dT15O3k9YypGbitoKkluKzIwNDg+PjEyO2M9YypJbi1oKkZuKzIwNDg+PjEyO2g9eTttPXIrdTtrPXItdTtwPWkraDtqPWktaDtkPW8rYzt3PW8tYztnPWwrZjtiPWwtZjttPDE2P209MDptPj00MDgwP209MjU1Om0+Pj00O3A8MTY/cD0wOnA+PTQwODA/cD0yNTU6cD4+PTQ7ZDwxNj9kPTA6ZD49NDA4MD9kPTI1NTpkPj49NDtnPDE2P2c9MDpnPj00MDgwP2c9MjU1Omc+Pj00O2I8MTY/Yj0wOmI+PTQwODA/Yj0yNTU6Yj4+PTQ7dzwxNj93PTA6dz49NDA4MD93PTI1NTp3Pj49NDtqPDE2P2o9MDpqPj00MDgwP2o9MjU1Omo+Pj00O2s8MTY/az0wOms+PTQwODA/az0yNTU6az4+PTQ7c1t0K2VdPW07c1t0K2UrOF09cDtzW3QrZSsxNl09ZDtzW3QrZSsyNF09ZztzW3QrZSszMl09YjtzW3QrZSs0MF09dztzW3QrZSs0OF09ajtzW3QrZSs1Nl09a31lbHNle3k9Um4qbSs4MTkyPj4xNDt5PXk8LTIwNDA/MDp5Pj0yMDI0PzI1NTp5KzIwNTY+PjQ7c1t0K2VdPXk7c1t0K2UrOF09eTtzW3QrZSsxNl09eTtzW3QrZSsyNF09eTtzW3QrZSszMl09eTtzW3QrZSs0MF09eTtzW3QrZSs0OF09eTtzW3QrZSs1Nl09eX19fWZ1bmN0aW9uIGJ1aWxkQ29tcG9uZW50RGF0YShlLHQpe2NvbnN0IG49dC5ibG9ja3NQZXJMaW5lLGE9dC5ibG9ja3NQZXJDb2x1bW4scz1uZXcgSW50MTZBcnJheSg2NCk7Zm9yKGxldCBlPTA7ZTxhO2UrKylmb3IobGV0IGE9MDthPG47YSsrKXtxdWFudGl6ZUFuZEludmVyc2UodCxnZXRCbG9ja0J1ZmZlck9mZnNldCh0LGUsYSkscyl9cmV0dXJuIHQuYmxvY2tEYXRhfWZ1bmN0aW9uIGZpbmROZXh0RmlsZU1hcmtlcihlLHQsbj10KXtjb25zdCBhPWUubGVuZ3RoLTE7bGV0IHM9bjx0P246dDtpZih0Pj1hKXJldHVybiBudWxsO2NvbnN0IHI9cmVhZFVpbnQxNihlLHQpO2lmKHI+PTY1NDcyJiZyPD02NTUzNClyZXR1cm57aW52YWxpZDpudWxsLG1hcmtlcjpyLG9mZnNldDp0fTtsZXQgaT1yZWFkVWludDE2KGUscyk7Zm9yKDshKGk+PTY1NDcyJiZpPD02NTUzNCk7KXtpZigrK3M+PWEpcmV0dXJuIG51bGw7aT1yZWFkVWludDE2KGUscyl9cmV0dXJue2ludmFsaWQ6ci50b1N0cmluZygxNiksbWFya2VyOmksb2Zmc2V0OnN9fWZ1bmN0aW9uIHByZXBhcmVDb21wb25lbnRzKGUpe2NvbnN0IHQ9TWF0aC5jZWlsKGUuc2FtcGxlc1BlckxpbmUvOC9lLm1heEgpLG49TWF0aC5jZWlsKGUuc2NhbkxpbmVzLzgvZS5tYXhWKTtmb3IoY29uc3QgYSBvZiBlLmNvbXBvbmVudHMpe2NvbnN0IHM9TWF0aC5jZWlsKE1hdGguY2VpbChlLnNhbXBsZXNQZXJMaW5lLzgpKmEuaC9lLm1heEgpLHI9TWF0aC5jZWlsKE1hdGguY2VpbChlLnNjYW5MaW5lcy84KSphLnYvZS5tYXhWKSxpPXQqYS5oLG89NjQqKG4qYS52KSooaSsxKTthLmJsb2NrRGF0YT1uZXcgSW50MTZBcnJheShvKTthLmJsb2Nrc1BlckxpbmU9czthLmJsb2Nrc1BlckNvbHVtbj1yfWUubWN1c1BlckxpbmU9dDtlLm1jdXNQZXJDb2x1bW49bn1mdW5jdGlvbiByZWFkRGF0YUJsb2NrKGUsdCl7Y29uc3Qgbj1yZWFkVWludDE2KGUsdCk7bGV0IGE9KHQrPTIpK24tMjtjb25zdCBzPWZpbmROZXh0RmlsZU1hcmtlcihlLGEsdCk7aWYocz8uaW52YWxpZCl7d2FybigicmVhZERhdGFCbG9jayAtIGluY29ycmVjdCBsZW5ndGgsIGN1cnJlbnQgbWFya2VyIGlzOiAiK3MuaW52YWxpZCk7YT1zLm9mZnNldH1jb25zdCByPWUuc3ViYXJyYXkodCxhKTtyZXR1cm57YXBwRGF0YTpyLG9sZE9mZnNldDp0LG5ld09mZnNldDp0K3IubGVuZ3RofX1mdW5jdGlvbiBza2lwRGF0YShlLHQpe2NvbnN0IG49cmVhZFVpbnQxNihlLHQpLGE9KHQrPTIpK24tMixzPWZpbmROZXh0RmlsZU1hcmtlcihlLGEsdCk7cmV0dXJuIHM/LmludmFsaWQ/cy5vZmZzZXQ6YX1jbGFzcyBKcGVnSW1hZ2V7Y29uc3RydWN0b3Ioe2RlY29kZVRyYW5zZm9ybTplPW51bGwsY29sb3JUcmFuc2Zvcm06dD0tMX09e30pe3RoaXMuX2RlY29kZVRyYW5zZm9ybT1lO3RoaXMuX2NvbG9yVHJhbnNmb3JtPXR9c3RhdGljIGNhblVzZUltYWdlRGVjb2RlcihlLHQ9LTEpe2xldCBuPW51bGwsYT0wLHM9bnVsbCxyPXJlYWRVaW50MTYoZSxhKTthKz0yO2lmKDY1NDk2IT09cil0aHJvdyBuZXcgSnBlZ0Vycm9yKCJTT0kgbm90IGZvdW5kIik7cj1yZWFkVWludDE2KGUsYSk7YSs9MjtlOmZvcig7NjU0OTchPT1yOyl7c3dpdGNoKHIpe2Nhc2UgNjU1MDU6Y29uc3R7YXBwRGF0YTp0LG9sZE9mZnNldDppLG5ld09mZnNldDpvfT1yZWFkRGF0YUJsb2NrKGUsYSk7YT1vO2lmKDY5PT09dFswXSYmMTIwPT09dFsxXSYmMTA1PT09dFsyXSYmMTAyPT09dFszXSYmMD09PXRbNF0mJjA9PT10WzVdKXtpZihuKXRocm93IG5ldyBKcGVnRXJyb3IoIkR1cGxpY2F0ZSBFWElGLWJsb2NrcyBmb3VuZC4iKTtuPXtleGlmU3RhcnQ6aSs2LGV4aWZFbmQ6b319cj1yZWFkVWludDE2KGUsYSk7YSs9Mjtjb250aW51ZTtjYXNlIDY1NDcyOmNhc2UgNjU0NzM6Y2FzZSA2NTQ3NDpzPWVbYSs3XTticmVhayBlO2Nhc2UgNjU1MzU6MjU1IT09ZVthXSYmYS0tfWE9c2tpcERhdGEoZSxhKTtyPXJlYWRVaW50MTYoZSxhKTthKz0yfXJldHVybiA0PT09c3x8Mz09PXMmJjA9PT10P251bGw6bnx8e319cGFyc2UoZSx7ZG5sU2NhbkxpbmVzOnQ9bnVsbH09e30pe2xldCBuLGEscz0wLHI9bnVsbCxpPW51bGwsbz0wO2NvbnN0IGw9W10sZj1bXSxjPVtdO2xldCBoPXJlYWRVaW50MTYoZSxzKTtzKz0yO2lmKDY1NDk2IT09aCl0aHJvdyBuZXcgSnBlZ0Vycm9yKCJTT0kgbm90IGZvdW5kIik7aD1yZWFkVWludDE2KGUscyk7cys9MjtlOmZvcig7NjU0OTchPT1oOyl7bGV0IHUsbSxwO3N3aXRjaChoKXtjYXNlIDY1NTA0OmNhc2UgNjU1MDU6Y2FzZSA2NTUwNjpjYXNlIDY1NTA3OmNhc2UgNjU1MDg6Y2FzZSA2NTUwOTpjYXNlIDY1NTEwOmNhc2UgNjU1MTE6Y2FzZSA2NTUxMjpjYXNlIDY1NTEzOmNhc2UgNjU1MTQ6Y2FzZSA2NTUxNTpjYXNlIDY1NTE2OmNhc2UgNjU1MTc6Y2FzZSA2NTUxODpjYXNlIDY1NTE5OmNhc2UgNjU1MzQ6Y29uc3R7YXBwRGF0YTpkLG5ld09mZnNldDpnfT1yZWFkRGF0YUJsb2NrKGUscyk7cz1nOzY1NTA0PT09aCYmNzQ9PT1kWzBdJiY3MD09PWRbMV0mJjczPT09ZFsyXSYmNzA9PT1kWzNdJiYwPT09ZFs0XSYmKHI9e3ZlcnNpb246e21ham9yOmRbNV0sbWlub3I6ZFs2XX0sZGVuc2l0eVVuaXRzOmRbN10seERlbnNpdHk6ZFs4XTw8OHxkWzldLHlEZW5zaXR5OmRbMTBdPDw4fGRbMTFdLHRodW1iV2lkdGg6ZFsxMl0sdGh1bWJIZWlnaHQ6ZFsxM10sdGh1bWJEYXRhOmQuc3ViYXJyYXkoMTQsMTQrMypkWzEyXSpkWzEzXSl9KTs2NTUxOD09PWgmJjY1PT09ZFswXSYmMTAwPT09ZFsxXSYmMTExPT09ZFsyXSYmOTg9PT1kWzNdJiYxMDE9PT1kWzRdJiYoaT17dmVyc2lvbjpkWzVdPDw4fGRbNl0sZmxhZ3MwOmRbN108PDh8ZFs4XSxmbGFnczE6ZFs5XTw8OHxkWzEwXSx0cmFuc2Zvcm1Db2RlOmRbMTFdfSk7YnJlYWs7Y2FzZSA2NTQ5OTpjb25zdCBiPXJlYWRVaW50MTYoZSxzKTtzKz0yO2NvbnN0IHc9YitzLTI7bGV0IGo7Zm9yKDtzPHc7KXtjb25zdCB0PWVbcysrXSxuPW5ldyBVaW50MTZBcnJheSg2NCk7aWYodD4+NCl7aWYodD4+NCE9MSl0aHJvdyBuZXcgSnBlZ0Vycm9yKCJEUVQgLSBpbnZhbGlkIHRhYmxlIHNwZWMiKTtmb3IobT0wO208NjQ7bSsrKXtqPUNuW21dO25bal09cmVhZFVpbnQxNihlLHMpO3MrPTJ9fWVsc2UgZm9yKG09MDttPDY0O20rKyl7aj1DblttXTtuW2pdPWVbcysrXX1sWzE1JnRdPW59YnJlYWs7Y2FzZSA2NTQ3MjpjYXNlIDY1NDczOmNhc2UgNjU0NzQ6aWYobil0aHJvdyBuZXcgSnBlZ0Vycm9yKCJPbmx5IHNpbmdsZSBmcmFtZSBKUEVHcyBzdXBwb3J0ZWQiKTtzKz0yO249e307bi5leHRlbmRlZD02NTQ3Mz09PWg7bi5wcm9ncmVzc2l2ZT02NTQ3ND09PWg7bi5wcmVjaXNpb249ZVtzKytdO2NvbnN0IGs9cmVhZFVpbnQxNihlLHMpO3MrPTI7bi5zY2FuTGluZXM9dHx8aztuLnNhbXBsZXNQZXJMaW5lPXJlYWRVaW50MTYoZSxzKTtzKz0yO24uY29tcG9uZW50cz1bXTtuLmNvbXBvbmVudElkcz17fTtjb25zdCB5PWVbcysrXTtsZXQgcT0wLHY9MDtmb3IodT0wO3U8eTt1Kyspe2NvbnN0IHQ9ZVtzXSxhPWVbcysxXT4+NCxyPTE1JmVbcysxXTtxPGEmJihxPWEpO3Y8ciYmKHY9cik7Y29uc3QgaT1lW3MrMl07cD1uLmNvbXBvbmVudHMucHVzaCh7aDphLHY6cixxdWFudGl6YXRpb25JZDppLHF1YW50aXphdGlvblRhYmxlOm51bGx9KTtuLmNvbXBvbmVudElkc1t0XT1wLTE7cys9M31uLm1heEg9cTtuLm1heFY9djtwcmVwYXJlQ29tcG9uZW50cyhuKTticmVhaztjYXNlIDY1NDc2OmNvbnN0IFM9cmVhZFVpbnQxNihlLHMpO3MrPTI7Zm9yKHU9Mjt1PFM7KXtjb25zdCB0PWVbcysrXSxuPW5ldyBVaW50OEFycmF5KDE2KTtsZXQgYT0wO2ZvcihtPTA7bTwxNjttKysscysrKWErPW5bbV09ZVtzXTtjb25zdCByPW5ldyBVaW50OEFycmF5KGEpO2ZvcihtPTA7bTxhO20rKyxzKyspclttXT1lW3NdO3UrPTE3K2E7KHQ+PjQ/ZjpjKVsxNSZ0XT1idWlsZEh1ZmZtYW5UYWJsZShuLHIpfWJyZWFrO2Nhc2UgNjU1MDE6cys9MjthPXJlYWRVaW50MTYoZSxzKTtzKz0yO2JyZWFrO2Nhc2UgNjU0OTg6Y29uc3QgeD0xPT09KytvJiYhdDtzKz0yO2NvbnN0IEM9ZVtzKytdLEY9W107Zm9yKHU9MDt1PEM7dSsrKXtjb25zdCB0PWVbcysrXSxhPW4uY29tcG9uZW50SWRzW3RdLHI9bi5jb21wb25lbnRzW2FdO3IuaW5kZXg9dDtjb25zdCBpPWVbcysrXTtyLmh1ZmZtYW5UYWJsZURDPWNbaT4+NF07ci5odWZmbWFuVGFibGVBQz1mWzE1JmldO0YucHVzaChyKX1jb25zdCBUPWVbcysrXSxIPWVbcysrXSxPPWVbcysrXTt0cnl7cys9ZGVjb2RlU2NhbihlLHMsbixGLGEsVCxILE8+PjQsMTUmTyx4KX1jYXRjaCh0KXtpZih0IGluc3RhbmNlb2YgRE5MTWFya2VyRXJyb3Ipe3dhcm4oYCR7dC5tZXNzYWdlfSAtLSBhdHRlbXB0aW5nIHRvIHJlLXBhcnNlIHRoZSBKUEVHIGltYWdlLmApO3JldHVybiB0aGlzLnBhcnNlKGUse2RubFNjYW5MaW5lczp0LnNjYW5MaW5lc30pfWlmKHQgaW5zdGFuY2VvZiBFT0lNYXJrZXJFcnJvcil7d2FybihgJHt0Lm1lc3NhZ2V9IC0tIGlnbm9yaW5nIHRoZSByZXN0IG9mIHRoZSBpbWFnZSBkYXRhLmApO2JyZWFrIGV9dGhyb3cgdH1icmVhaztjYXNlIDY1NTAwOnMrPTQ7YnJlYWs7Y2FzZSA2NTUzNToyNTUhPT1lW3NdJiZzLS07YnJlYWs7ZGVmYXVsdDpjb25zdCBSPWZpbmROZXh0RmlsZU1hcmtlcihlLHMtMixzLTMpO2lmKFI/LmludmFsaWQpe3dhcm4oIkpwZWdJbWFnZS5wYXJzZSAtIHVuZXhwZWN0ZWQgZGF0YSwgY3VycmVudCBtYXJrZXIgaXM6ICIrUi5pbnZhbGlkKTtzPVIub2Zmc2V0O2JyZWFrfWlmKCFSfHxzPj1lLmxlbmd0aC0xKXt3YXJuKCJKcGVnSW1hZ2UucGFyc2UgLSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIGltYWdlIGRhdGEgd2l0aG91dCBmaW5kaW5nIGFuIEVPSSBtYXJrZXIgKDB4RkZEOSkuIik7YnJlYWsgZX10aHJvdyBuZXcgSnBlZ0Vycm9yKCJKcGVnSW1hZ2UucGFyc2UgLSB1bmtub3duIG1hcmtlcjogIitoLnRvU3RyaW5nKDE2KSl9aD1yZWFkVWludDE2KGUscyk7cys9Mn1pZighbil0aHJvdyBuZXcgSnBlZ0Vycm9yKCJKcGVnSW1hZ2UucGFyc2UgLSBubyBmcmFtZSBkYXRhIGZvdW5kLiIpO3RoaXMud2lkdGg9bi5zYW1wbGVzUGVyTGluZTt0aGlzLmhlaWdodD1uLnNjYW5MaW5lczt0aGlzLmpmaWY9cjt0aGlzLmFkb2JlPWk7dGhpcy5jb21wb25lbnRzPVtdO2Zvcihjb25zdCBlIG9mIG4uY29tcG9uZW50cyl7Y29uc3QgdD1sW2UucXVhbnRpemF0aW9uSWRdO3QmJihlLnF1YW50aXphdGlvblRhYmxlPXQpO3RoaXMuY29tcG9uZW50cy5wdXNoKHtpbmRleDplLmluZGV4LG91dHB1dDpidWlsZENvbXBvbmVudERhdGEoMCxlKSxzY2FsZVg6ZS5oL24ubWF4SCxzY2FsZVk6ZS52L24ubWF4VixibG9ja3NQZXJMaW5lOmUuYmxvY2tzUGVyTGluZSxibG9ja3NQZXJDb2x1bW46ZS5ibG9ja3NQZXJDb2x1bW59KX10aGlzLm51bUNvbXBvbmVudHM9dGhpcy5jb21wb25lbnRzLmxlbmd0aH1fZ2V0TGluZWFyaXplZEJsb2NrRGF0YShlLHQsbj0hMSl7Y29uc3QgYT10aGlzLndpZHRoL2Uscz10aGlzLmhlaWdodC90O2xldCByLGksbyxsLGYsYyxoLHUsbSxwLGQsZz0wO2NvbnN0IGI9dGhpcy5jb21wb25lbnRzLmxlbmd0aCx3PWUqdCpiLGo9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHcpLGs9bmV3IFVpbnQzMkFycmF5KGUpLHk9NDI5NDk2NzI4ODtsZXQgcTtmb3IoaD0wO2g8YjtoKyspe3I9dGhpcy5jb21wb25lbnRzW2hdO2k9ci5zY2FsZVgqYTtvPXIuc2NhbGVZKnM7Zz1oO2Q9ci5vdXRwdXQ7bD1yLmJsb2Nrc1BlckxpbmUrMTw8MztpZihpIT09cSl7Zm9yKGY9MDtmPGU7ZisrKXt1PTB8ZippO2tbZl09KHUmeSk8PDN8NyZ1fXE9aX1mb3IoYz0wO2M8dDtjKyspe3U9MHxjKm87cD1sKih1JnkpfCg3JnUpPDwzO2ZvcihmPTA7ZjxlO2YrKyl7altnXT1kW3Ara1tmXV07Zys9Yn19fWxldCB2PXRoaXMuX2RlY29kZVRyYW5zZm9ybTtufHw0IT09Ynx8dnx8KHY9bmV3IEludDMyQXJyYXkoWy0yNTYsMjU1LC0yNTYsMjU1LC0yNTYsMjU1LC0yNTYsMjU1XSkpO2lmKHYpZm9yKGg9MDtoPHc7KWZvcih1PTAsbT0wO3U8Yjt1KyssaCsrLG0rPTIpaltoXT0oaltoXSp2W21dPj44KSt2W20rMV07cmV0dXJuIGp9Z2V0IF9pc0NvbG9yQ29udmVyc2lvbk5lZWRlZCgpe3JldHVybiB0aGlzLmFkb2JlPyEhdGhpcy5hZG9iZS50cmFuc2Zvcm1Db2RlOjM9PT10aGlzLm51bUNvbXBvbmVudHM/MCE9PXRoaXMuX2NvbG9yVHJhbnNmb3JtJiYoODIhPT10aGlzLmNvbXBvbmVudHNbMF0uaW5kZXh8fDcxIT09dGhpcy5jb21wb25lbnRzWzFdLmluZGV4fHw2NiE9PXRoaXMuY29tcG9uZW50c1syXS5pbmRleCk6MT09PXRoaXMuX2NvbG9yVHJhbnNmb3JtfV9jb252ZXJ0WWNjVG9SZ2IoZSl7bGV0IHQsbixhO2ZvcihsZXQgcz0wLHI9ZS5sZW5ndGg7czxyO3MrPTMpe3Q9ZVtzXTtuPWVbcysxXTthPWVbcysyXTtlW3NdPXQtMTc5LjQ1NisxLjQwMiphO2VbcysxXT10KzEzNS40NTktLjM0NCpuLS43MTQqYTtlW3MrMl09dC0yMjYuODE2KzEuNzcyKm59cmV0dXJuIGV9X2NvbnZlcnRZY2NUb1JnYmEoZSx0KXtmb3IobGV0IG49MCxhPTAscz1lLmxlbmd0aDtuPHM7bis9MyxhKz00KXtjb25zdCBzPWVbbl0scj1lW24rMV0saT1lW24rMl07dFthXT1zLTE3OS40NTYrMS40MDIqaTt0W2ErMV09cysxMzUuNDU5LS4zNDQqci0uNzE0Kmk7dFthKzJdPXMtMjI2LjgxNisxLjc3MipyO3RbYSszXT0yNTV9cmV0dXJuIHR9X2NvbnZlcnRZY2NrVG9SZ2IoZSl7dGhpcy5fY29udmVydFljY2tUb0NteWsoZSk7cmV0dXJuIHRoaXMuX2NvbnZlcnRDbXlrVG9SZ2IoZSl9X2NvbnZlcnRZY2NrVG9SZ2JhKGUpe3RoaXMuX2NvbnZlcnRZY2NrVG9DbXlrKGUpO3JldHVybiB0aGlzLl9jb252ZXJ0Q215a1RvUmdiYShlKX1fY29udmVydFljY2tUb0NteWsoZSl7bGV0IHQsbixhO2ZvcihsZXQgcz0wLHI9ZS5sZW5ndGg7czxyO3MrPTQpe3Q9ZVtzXTtuPWVbcysxXTthPWVbcysyXTtlW3NdPTQzNC40NTYtdC0xLjQwMiphO2VbcysxXT0xMTkuNTQxLXQrLjM0NCpuKy43MTQqYTtlW3MrMl09NDgxLjgxNi10LTEuNzcyKm59cmV0dXJuIGV9X2NvbnZlcnRDbXlrVG9SZ2IoZSl7Y29uc3QgdD1lLmxlbmd0aC80O0NvbG9yU3BhY2VVdGlscy5jbXlrLmdldFJnYkJ1ZmZlcihlLDAsdCxlLDAsOCwwKTtyZXR1cm4gZS5zdWJhcnJheSgwLDMqdCl9X2NvbnZlcnRDbXlrVG9SZ2JhKGUpe0NvbG9yU3BhY2VVdGlscy5jbXlrLmdldFJnYkJ1ZmZlcihlLDAsZS5sZW5ndGgvNCxlLDAsOCwxKTtpZihDb2xvclNwYWNlVXRpbHMuY215ayBpbnN0YW5jZW9mIERldmljZUNteWtDUylmb3IobGV0IHQ9MyxuPWUubGVuZ3RoO3Q8bjt0Kz00KWVbdF09MjU1O3JldHVybiBlfWdldERhdGEoe3dpZHRoOmUsaGVpZ2h0OnQsZm9yY2VSR0JBOm49ITEsZm9yY2VSR0I6YT0hMSxpc1NvdXJjZVBERjpzPSExfSl7aWYodGhpcy5udW1Db21wb25lbnRzPjQpdGhyb3cgbmV3IEpwZWdFcnJvcigiVW5zdXBwb3J0ZWQgY29sb3IgbW9kZSIpO2NvbnN0IHI9dGhpcy5fZ2V0TGluZWFyaXplZEJsb2NrRGF0YShlLHQscyk7aWYoMT09PXRoaXMubnVtQ29tcG9uZW50cyYmKG58fGEpKXtjb25zdCBlPXIubGVuZ3RoKihuPzQ6MyksdD1uZXcgVWludDhDbGFtcGVkQXJyYXkoZSk7bGV0IGE9MDtpZihuKSFmdW5jdGlvbiBncmF5VG9SR0JBKGUsdCl7aWYoRmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4pZm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKXRbbl09NjU3OTMqZVtuXXw0Mjc4MTkwMDgwO2Vsc2UgZm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKXRbbl09MTY4NDMwMDgqZVtuXXwyNTV9KHIsbmV3IFVpbnQzMkFycmF5KHQuYnVmZmVyKSk7ZWxzZSBmb3IoY29uc3QgZSBvZiByKXt0W2ErK109ZTt0W2ErK109ZTt0W2ErK109ZX1yZXR1cm4gdH1pZigzPT09dGhpcy5udW1Db21wb25lbnRzJiZ0aGlzLl9pc0NvbG9yQ29udmVyc2lvbk5lZWRlZCl7aWYobil7Y29uc3QgZT1uZXcgVWludDhDbGFtcGVkQXJyYXkoci5sZW5ndGgvMyo0KTtyZXR1cm4gdGhpcy5fY29udmVydFljY1RvUmdiYShyLGUpfXJldHVybiB0aGlzLl9jb252ZXJ0WWNjVG9SZ2Iocil9aWYoND09PXRoaXMubnVtQ29tcG9uZW50cyl7aWYodGhpcy5faXNDb2xvckNvbnZlcnNpb25OZWVkZWQpcmV0dXJuIG4/dGhpcy5fY29udmVydFljY2tUb1JnYmEocik6YT90aGlzLl9jb252ZXJ0WWNja1RvUmdiKHIpOnRoaXMuX2NvbnZlcnRZY2NrVG9DbXlrKHIpO2lmKG4pcmV0dXJuIHRoaXMuX2NvbnZlcnRDbXlrVG9SZ2JhKHIpO2lmKGEpcmV0dXJuIHRoaXMuX2NvbnZlcnRDbXlrVG9SZ2Iocil9cmV0dXJuIHJ9fWNsYXNzIEpwZWdTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17c3RhdGljI1Q9RmVhdHVyZVRlc3QuaXNJbWFnZURlY29kZXJTdXBwb3J0ZWQ7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKHQpO3RoaXMuc3RyZWFtPWU7dGhpcy5kaWN0PWUuZGljdDt0aGlzLm1heWJlTGVuZ3RoPXQ7dGhpcy5wYXJhbXM9bn1zdGF0aWMgZ2V0IGNhblVzZUltYWdlRGVjb2Rlcigpe3JldHVybiBzaGFkb3codGhpcywiY2FuVXNlSW1hZ2VEZWNvZGVyIix0aGlzLiNUP0ltYWdlRGVjb2Rlci5pc1R5cGVTdXBwb3J0ZWQoImltYWdlL2pwZWciKTpQcm9taXNlLnJlc29sdmUoITEpKX1zdGF0aWMgc2V0T3B0aW9ucyh7aXNJbWFnZURlY29kZXJTdXBwb3J0ZWQ6ZT0hMX0pe3RoaXMuI1Q9ZX1nZXQgYnl0ZXMoKXtyZXR1cm4gc2hhZG93KHRoaXMsImJ5dGVzIix0aGlzLnN0cmVhbS5nZXRCeXRlcyh0aGlzLm1heWJlTGVuZ3RoKSl9ZW5zdXJlQnVmZmVyKGUpe31yZWFkQmxvY2soKXt0aGlzLmRlY29kZUltYWdlKCl9Z2V0IGpwZWdPcHRpb25zKCl7Y29uc3QgZT17ZGVjb2RlVHJhbnNmb3JtOnZvaWQgMCxjb2xvclRyYW5zZm9ybTp2b2lkIDB9LHQ9dGhpcy5kaWN0LmdldEFycmF5KCJEIiwiRGVjb2RlIik7aWYoKHRoaXMuZm9yY2VSR0JBfHx0aGlzLmZvcmNlUkdCKSYmQXJyYXkuaXNBcnJheSh0KSl7Y29uc3Qgbj10aGlzLmRpY3QuZ2V0KCJCUEMiLCJCaXRzUGVyQ29tcG9uZW50Iil8fDgsYT10Lmxlbmd0aCxzPW5ldyBJbnQzMkFycmF5KGEpO2xldCByPSExO2NvbnN0IGk9KDE8PG4pLTE7Zm9yKGxldCBlPTA7ZTxhO2UrPTIpe3NbZV09MjU2Kih0W2UrMV0tdFtlXSl8MDtzW2UrMV09dFtlXSppfDA7MjU2PT09c1tlXSYmMD09PXNbZSsxXXx8KHI9ITApfXImJihlLmRlY29kZVRyYW5zZm9ybT1zKX1pZih0aGlzLnBhcmFtcyBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IHQ9dGhpcy5wYXJhbXMuZ2V0KCJDb2xvclRyYW5zZm9ybSIpO051bWJlci5pc0ludGVnZXIodCkmJihlLmNvbG9yVHJhbnNmb3JtPXQpfXJldHVybiBzaGFkb3codGhpcywianBlZ09wdGlvbnMiLGUpfSNOKGUpe2ZvcihsZXQgdD0wLG49ZS5sZW5ndGgtMTt0PG47dCsrKWlmKDI1NT09PWVbdF0mJjIxNj09PWVbdCsxXSl7dD4wJiYoZT1lLnN1YmFycmF5KHQpKTticmVha31yZXR1cm4gZX1kZWNvZGVJbWFnZShlKXtpZih0aGlzLmVvZilyZXR1cm4gdGhpcy5idWZmZXI7ZT10aGlzLiNOKGV8fHRoaXMuYnl0ZXMpO2NvbnN0IHQ9bmV3IEpwZWdJbWFnZSh0aGlzLmpwZWdPcHRpb25zKTt0LnBhcnNlKGUpO2NvbnN0IG49dC5nZXREYXRhKHt3aWR0aDp0aGlzLmRyYXdXaWR0aCxoZWlnaHQ6dGhpcy5kcmF3SGVpZ2h0LGZvcmNlUkdCQTp0aGlzLmZvcmNlUkdCQSxmb3JjZVJHQjp0aGlzLmZvcmNlUkdCLGlzU291cmNlUERGOiEwfSk7dGhpcy5idWZmZXI9bjt0aGlzLmJ1ZmZlckxlbmd0aD1uLmxlbmd0aDt0aGlzLmVvZj0hMDtyZXR1cm4gdGhpcy5idWZmZXJ9Z2V0IGNhbkFzeW5jRGVjb2RlSW1hZ2VGcm9tQnVmZmVyKCl7cmV0dXJuIHRoaXMuc3RyZWFtLmlzQXN5bmN9YXN5bmMgZ2V0VHJhbnNmZXJhYmxlSW1hZ2UoKXtpZighYXdhaXQgSnBlZ1N0cmVhbS5jYW5Vc2VJbWFnZURlY29kZXIpcmV0dXJuIG51bGw7Y29uc3QgZT10aGlzLmpwZWdPcHRpb25zO2lmKGUuZGVjb2RlVHJhbnNmb3JtKXJldHVybiBudWxsO2xldCB0O3RyeXtjb25zdCBuPXRoaXMuY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXImJmF3YWl0IHRoaXMuc3RyZWFtLmFzeW5jR2V0Qnl0ZXMoKXx8dGhpcy5ieXRlcztpZighbilyZXR1cm4gbnVsbDtsZXQgYT10aGlzLiNOKG4pO2NvbnN0IHM9SnBlZ0ltYWdlLmNhblVzZUltYWdlRGVjb2RlcihhLGUuY29sb3JUcmFuc2Zvcm0pO2lmKCFzKXJldHVybiBudWxsO2lmKHMuZXhpZlN0YXJ0KXthPWEuc2xpY2UoKTthLmZpbGwoMCxzLmV4aWZTdGFydCxzLmV4aWZFbmQpfXQ9bmV3IEltYWdlRGVjb2Rlcih7ZGF0YTphLHR5cGU6ImltYWdlL2pwZWciLHByZWZlckFuaW1hdGlvbjohMX0pO3JldHVybihhd2FpdCB0LmRlY29kZSgpKS5pbWFnZX1jYXRjaChlKXt3YXJuKGBnZXRUcmFuc2ZlcmFibGVJbWFnZSAtIGZhaWxlZDogIiR7ZX0iLmApO3JldHVybiBudWxsfWZpbmFsbHl7dD8uY2xvc2UoKX19Z2V0IGlzSW1hZ2VTdHJlYW0oKXtyZXR1cm4hMH19Y29uc3QgTW49YXN5bmMgZnVuY3Rpb24gT3BlbkpQRUcoZT17fSl7dmFyIHQ9ZSxuPSIuL3RoaXMucHJvZ3JhbSIscXVpdF89KGUsdCk9Pnt0aHJvdyB0fSxhPWltcG9ydC5tZXRhLnVybDt0cnl7bmV3IFVSTCgiLiIsYSkuaHJlZn1jYXRjaHt9MDt2YXIgcyxyLGksbyxsLGYsYyxoLHU9Y29uc29sZS5sb2cuYmluZChjb25zb2xlKSxtPWNvbnNvbGUuZXJyb3IuYmluZChjb25zb2xlKSxwPSExLGQ9ITE7ZnVuY3Rpb24gdXBkYXRlTWVtb3J5Vmlld3MoKXt2YXIgZT1vLmJ1ZmZlcjtsPW5ldyBJbnQ4QXJyYXkoZSk7bmV3IEludDE2QXJyYXkoZSk7Zj1uZXcgVWludDhBcnJheShlKTtuZXcgVWludDE2QXJyYXkoZSk7Yz1uZXcgSW50MzJBcnJheShlKTtoPW5ldyBVaW50MzJBcnJheShlKTtuZXcgRmxvYXQzMkFycmF5KGUpO25ldyBGbG9hdDY0QXJyYXkoZSk7bmV3IEJpZ0ludDY0QXJyYXkoZSk7bmV3IEJpZ1VpbnQ2NEFycmF5KGUpfWNsYXNzIEV4aXRTdGF0dXN7bmFtZT0iRXhpdFN0YXR1cyI7Y29uc3RydWN0b3IoZSl7dGhpcy5tZXNzYWdlPWBQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCR7ZX0pYDt0aGlzLnN0YXR1cz1lfX12YXIgZyxjYWxsUnVudGltZUNhbGxiYWNrcz1lPT57Zm9yKDtlLmxlbmd0aD4wOyllLnNoaWZ0KCkodCl9LGI9W10sYWRkT25Qb3N0UnVuPWU9PmIucHVzaChlKSx3PVtdLGFkZE9uUHJlUnVuPWU9PncucHVzaChlKSxqPSEwLGs9MCx5PXt9LGhhbmRsZUV4Y2VwdGlvbj1lPT57aWYoZSBpbnN0YW5jZW9mIEV4aXRTdGF0dXN8fCJ1bndpbmQiPT1lKXJldHVybiBzO3F1aXRfKDAsZSl9LGtlZXBSdW50aW1lQWxpdmU9KCk9Pmp8fGs+MCxfcHJvY19leGl0PWU9PntzPWU7aWYoIWtlZXBSdW50aW1lQWxpdmUoKSl7dC5vbkV4aXQ/LihlKTtwPSEwfXF1aXRfKDAsbmV3IEV4aXRTdGF0dXMoZSkpfSxfZXhpdD0oZSx0KT0+e3M9ZTtfcHJvY19leGl0KGUpfSxjYWxsVXNlckNhbGxiYWNrPWU9PntpZighcCl0cnl7ZSgpOygoKT0+e2lmKCFrZWVwUnVudGltZUFsaXZlKCkpdHJ5e19leGl0KHMpfWNhdGNoKGUpe2hhbmRsZUV4Y2VwdGlvbihlKX19KSgpfWNhdGNoKGUpe2hhbmRsZUV4Y2VwdGlvbihlKX19LGFsaWduTWVtb3J5PShlLHQpPT5NYXRoLmNlaWwoZS90KSp0LGdyb3dNZW1vcnk9ZT0+e3ZhciB0PShlLW8uYnVmZmVyLmJ5dGVMZW5ndGgrNjU1MzUpLzY1NTM2fDA7dHJ5e28uZ3Jvdyh0KTt1cGRhdGVNZW1vcnlWaWV3cygpO3JldHVybiAxfWNhdGNoKGUpe319LHE9e30sZ2V0RW52U3RyaW5ncz0oKT0+e2lmKCFnZXRFbnZTdHJpbmdzLnN0cmluZ3Mpe3ZhciBlPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6KCJvYmplY3QiPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubGFuZ3VhZ2V8fCJDIikucmVwbGFjZSgiLSIsIl8iKSsiLlVURi04IixfOm58fCIuL3RoaXMucHJvZ3JhbSJ9O2Zvcih2YXIgdCBpbiBxKXZvaWQgMD09PXFbdF0/ZGVsZXRlIGVbdF06ZVt0XT1xW3RdO3ZhciBhPVtdO2Zvcih2YXIgdCBpbiBlKWEucHVzaChgJHt0fT0ke2VbdF19YCk7Z2V0RW52U3RyaW5ncy5zdHJpbmdzPWF9cmV0dXJuIGdldEVudlN0cmluZ3Muc3RyaW5nc30sc3RyaW5nVG9VVEY4PShlLHQsbik9PigoZSx0LG4sYSk9PntpZighKGE+MCkpcmV0dXJuIDA7Zm9yKHZhciBzPW4scj1uK2EtMSxpPTA7aTxlLmxlbmd0aDsrK2kpe3ZhciBvPWUuY29kZVBvaW50QXQoaSk7aWYobzw9MTI3KXtpZihuPj1yKWJyZWFrO3RbbisrXT1vfWVsc2UgaWYobzw9MjA0Nyl7aWYobisxPj1yKWJyZWFrO3RbbisrXT0xOTJ8bz4+Njt0W24rK109MTI4fDYzJm99ZWxzZSBpZihvPD02NTUzNSl7aWYobisyPj1yKWJyZWFrO3RbbisrXT0yMjR8bz4+MTI7dFtuKytdPTEyOHxvPj42JjYzO3RbbisrXT0xMjh8NjMmb31lbHNle2lmKG4rMz49cilicmVhazt0W24rK109MjQwfG8+PjE4O3RbbisrXT0xMjh8bz4+MTImNjM7dFtuKytdPTEyOHxvPj42JjYzO3RbbisrXT0xMjh8NjMmbztpKyt9fXRbbl09MDtyZXR1cm4gbi1zfSkoZSxmLHQsbiksbGVuZ3RoQnl0ZXNVVEY4PWU9Pntmb3IodmFyIHQ9MCxuPTA7bjxlLmxlbmd0aDsrK24pe3ZhciBhPWUuY2hhckNvZGVBdChuKTtpZihhPD0xMjcpdCsrO2Vsc2UgaWYoYTw9MjA0Nyl0Kz0yO2Vsc2UgaWYoYT49NTUyOTYmJmE8PTU3MzQzKXt0Kz00Oysrbn1lbHNlIHQrPTN9cmV0dXJuIHR9LHY9W251bGwsW10sW11dLFM9InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2Rlcj9uZXcgVGV4dERlY29kZXI6dm9pZCAwLFVURjhBcnJheVRvU3RyaW5nPShlLHQ9MCxuLGEpPT57dmFyIHM9KChlLHQsbixhKT0+e3ZhciBzPXQrbjtpZihhKXJldHVybiBzO2Zvcig7ZVt0XSYmISh0Pj1zKTspKyt0O3JldHVybiB0fSkoZSx0LG4sYSk7aWYocy10PjE2JiZlLmJ1ZmZlciYmUylyZXR1cm4gUy5kZWNvZGUoZS5zdWJhcnJheSh0LHMpKTtmb3IodmFyIHI9IiI7dDxzOyl7dmFyIGk9ZVt0KytdO2lmKDEyOCZpKXt2YXIgbz02MyZlW3QrK107aWYoMTkyIT0oMjI0JmkpKXt2YXIgbD02MyZlW3QrK107aWYoKGk9MjI0PT0oMjQwJmkpPygxNSZpKTw8MTJ8bzw8NnxsOig3JmkpPDwxOHxvPDwxMnxsPDw2fDYzJmVbdCsrXSk8NjU1MzYpcis9U3RyaW5nLmZyb21DaGFyQ29kZShpKTtlbHNle3ZhciBmPWktNjU1MzY7cis9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxmPj4xMCw1NjMyMHwxMDIzJmYpfX1lbHNlIHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMxJmkpPDw2fG8pfWVsc2Ugcis9U3RyaW5nLmZyb21DaGFyQ29kZShpKX1yZXR1cm4gcn0scHJpbnRDaGFyPShlLHQpPT57dmFyIG49dltlXTtpZigwPT09dHx8MTA9PT10KXsoMT09PWU/dTptKShVVEY4QXJyYXlUb1N0cmluZyhuKSk7bi5sZW5ndGg9MH1lbHNlIG4ucHVzaCh0KX0sVVRGOFRvU3RyaW5nPShlLHQsbik9PmU/VVRGOEFycmF5VG9TdHJpbmcoZixlLHQsbik6IiI7dC5ub0V4aXRSdW50aW1lJiYoaj10Lm5vRXhpdFJ1bnRpbWUpO3QucHJpbnQmJih1PXQucHJpbnQpO3QucHJpbnRFcnImJihtPXQucHJpbnRFcnIpO3Qud2FzbUJpbmFyeSYmdC53YXNtQmluYXJ5O3QuYXJndW1lbnRzJiZ0LmFyZ3VtZW50czt0LnRoaXNQcm9ncmFtJiYobj10LnRoaXNQcm9ncmFtKTtpZih0LnByZUluaXQpeyJmdW5jdGlvbiI9PXR5cGVvZiB0LnByZUluaXQmJih0LnByZUluaXQ9W3QucHJlSW5pdF0pO2Zvcig7dC5wcmVJbml0Lmxlbmd0aD4wOyl0LnByZUluaXQuc2hpZnQoKSgpfXQud3JpdGVBcnJheVRvTWVtb3J5PShlLHQpPT57bC5zZXQoZSx0KX07dmFyIHgsQz17azooKT0+ZnVuY3Rpb24gYWJvcnQoZSl7dC5vbkFib3J0Py4oZSk7bShlPSJBYm9ydGVkKCIrZSsiKSIpO3A9ITA7ZSs9Ii4gQnVpbGQgd2l0aCAtc0FTU0VSVElPTlMgZm9yIG1vcmUgaW5mby4iO3ZhciBuPW5ldyBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3IoZSk7aT8uKG4pO3Rocm93IG59KCIiKSxqOigpPT57aj0hMTtrPTB9LGw6KGUsdCk9PntpZih5W2VdKXtjbGVhclRpbWVvdXQoeVtlXS5pZCk7ZGVsZXRlIHlbZV19aWYoIXQpcmV0dXJuIDA7dmFyIG49c2V0VGltZW91dCgoKT0+e2RlbGV0ZSB5W2VdO2NhbGxVc2VyQ2FsbGJhY2soKCk9PmcoZSxwZXJmb3JtYW5jZS5ub3coKSkpfSx0KTt5W2VdPXtpZDpuLHRpbWVvdXRfbXM6dH07cmV0dXJuIDB9LGY6ZnVuY3Rpb24gX2NvcHlfcGl4ZWxzXzEoZSxuKXtlPj49Mjtjb25zdCBhPXQuaW1hZ2VEYXRhPW5ldyBVaW50OENsYW1wZWRBcnJheShuKSxzPWMuc3ViYXJyYXkoZSxlK24pO2Euc2V0KHMpfSxlOmZ1bmN0aW9uIF9jb3B5X3BpeGVsc18zKGUsbixhLHMpe2U+Pj0yO24+Pj0yO2E+Pj0yO2NvbnN0IHI9dC5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMqcyksaT1jLnN1YmFycmF5KGUsZStzKSxvPWMuc3ViYXJyYXkobixuK3MpLGw9Yy5zdWJhcnJheShhLGErcyk7Zm9yKGxldCBlPTA7ZTxzO2UrKyl7clszKmVdPWlbZV07clszKmUrMV09b1tlXTtyWzMqZSsyXT1sW2VdfX0sZDpmdW5jdGlvbiBfY29weV9waXhlbHNfNChlLG4sYSxzLHIpe2U+Pj0yO24+Pj0yO2E+Pj0yO3M+Pj0yO2NvbnN0IGk9dC5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqciksbz1jLnN1YmFycmF5KGUsZStyKSxsPWMuc3ViYXJyYXkobixuK3IpLGY9Yy5zdWJhcnJheShhLGErciksaD1jLnN1YmFycmF5KHMscytyKTtmb3IobGV0IGU9MDtlPHI7ZSsrKXtpWzQqZV09b1tlXTtpWzQqZSsxXT1sW2VdO2lbNCplKzJdPWZbZV07aVs0KmUrM109aFtlXX19LG06ZT0+e3ZhciB0PWYubGVuZ3RoLG49MjE0NzQ4MzY0ODtpZigoZT4+Pj0wKT5uKXJldHVybiExO2Zvcih2YXIgYT0xO2E8PTQ7YSo9Mil7dmFyIHM9dCooMSsuMi9hKTtzPU1hdGgubWluKHMsZSsxMDA2NjMyOTYpO3ZhciByPU1hdGgubWluKG4sYWxpZ25NZW1vcnkoTWF0aC5tYXgoZSxzKSw2NTUzNikpO2lmKGdyb3dNZW1vcnkocikpcmV0dXJuITB9cmV0dXJuITF9LG86KGUsdCk9Pnt2YXIgbj0wLGE9MDtmb3IodmFyIHMgb2YgZ2V0RW52U3RyaW5ncygpKXt2YXIgcj10K247aFtlK2E+PjJdPXI7bis9c3RyaW5nVG9VVEY4KHMsciwxLzApKzE7YSs9NH1yZXR1cm4gMH0scDooZSx0KT0+e3ZhciBuPWdldEVudlN0cmluZ3MoKTtoW2U+PjJdPW4ubGVuZ3RoO3ZhciBhPTA7Zm9yKHZhciBzIG9mIG4pYSs9bGVuZ3RoQnl0ZXNVVEY4KHMpKzE7aFt0Pj4yXT1hO3JldHVybiAwfSxuOmZ1bmN0aW9uIF9mZF9zZWVrKGUsdCxuLGEpe3Q9KHM9dCk8LTkwMDcxOTkyNTQ3NDA5OTJ8fHM+OTAwNzE5OTI1NDc0MDk5Mj9OYU46TnVtYmVyKHMpO3ZhciBzO3JldHVybiA3MH0sYjooZSx0LG4sYSk9Pntmb3IodmFyIHM9MCxyPTA7cjxuO3IrKyl7dmFyIGk9aFt0Pj4yXSxvPWhbdCs0Pj4yXTt0Kz04O2Zvcih2YXIgbD0wO2w8bztsKyspcHJpbnRDaGFyKGUsZltpK2xdKTtzKz1vfWhbYT4+Ml09cztyZXR1cm4gMH0scTpmdW5jdGlvbiBfZ3JheV90b19yZ2JhKGUsbil7ZT4+PTI7Y29uc3QgYT10LmltYWdlRGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkoNCpuKSxzPWMuc3ViYXJyYXkoZSxlK24pO2ZvcihsZXQgZT0wO2U8bjtlKyspe2FbNCplXT1hWzQqZSsxXT1hWzQqZSsyXT1zW2VdO2FbNCplKzNdPTI1NX19LGg6ZnVuY3Rpb24gX2dyYXlhX3RvX3JnYmEoZSxuLGEpe2U+Pj0yO24+Pj0yO2NvbnN0IHM9dC5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqYSkscj1jLnN1YmFycmF5KGUsZSthKSxpPWMuc3ViYXJyYXkobixuK2EpO2ZvcihsZXQgZT0wO2U8YTtlKyspe3NbNCplXT1zWzQqZSsxXT1zWzQqZSsyXT1yW2VdO3NbNCplKzNdPWlbZV19fSxjOmZ1bmN0aW9uIF9qc1ByaW50V2FybmluZyhlKXtjb25zdCBuPVVURjhUb1N0cmluZyhlKTsodC53YXJufHxjb25zb2xlLndhcm4pKGBPcGVuSlBFRzogJHtufWApfSxpOl9wcm9jX2V4aXQsZzpmdW5jdGlvbiBfcmdiX3RvX3JnYmEoZSxuLGEscyl7ZT4+PTI7bj4+PTI7YT4+PTI7Y29uc3Qgcj10LmltYWdlRGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkoNCpzKSxpPWMuc3ViYXJyYXkoZSxlK3MpLG89Yy5zdWJhcnJheShuLG4rcyksbD1jLnN1YmFycmF5KGEsYStzKTtmb3IobGV0IGU9MDtlPHM7ZSsrKXtyWzQqZV09aVtlXTtyWzQqZSsxXT1vW2VdO3JbNCplKzJdPWxbZV07cls0KmUrM109MjU1fX0sYTpmdW5jdGlvbiBfc3RvcmVFcnJvck1lc3NhZ2UoZSl7Y29uc3Qgbj1VVEY4VG9TdHJpbmcoZSk7dC5lcnJvck1lc3NhZ2VzP3QuZXJyb3JNZXNzYWdlcys9IlxuIituOnQuZXJyb3JNZXNzYWdlcz1ufX07eD1hd2FpdCBhc3luYyBmdW5jdGlvbiBjcmVhdGVXYXNtKCl7ZnVuY3Rpb24gcmVjZWl2ZUluc3RhbmNlKGUsbil7eD1lLmV4cG9ydHM7bz14LnI7dXBkYXRlTWVtb3J5Vmlld3MoKTshZnVuY3Rpb24gYXNzaWduV2FzbUV4cG9ydHMoZSl7dC5fbWFsbG9jPWUudDt0Ll9mcmVlPWUudTt0Ll9qcDJfZGVjb2RlPWUudjtnPWUud30oeCk7cmV0dXJuIHh9dmFyIGU9ZnVuY3Rpb24gZ2V0V2FzbUltcG9ydHMoKXtyZXR1cm57YTpDfX0oKTtyZXR1cm4gbmV3IFByb21pc2UoKG4sYSk9Pnt0Lmluc3RhbnRpYXRlV2FzbShlLChlLHQpPT57bihyZWNlaXZlSW5zdGFuY2UoZSkpfSl9KX0oKTshZnVuY3Rpb24gcnVuKCl7IWZ1bmN0aW9uIHByZVJ1bigpe2lmKHQucHJlUnVuKXsiZnVuY3Rpb24iPT10eXBlb2YgdC5wcmVSdW4mJih0LnByZVJ1bj1bdC5wcmVSdW5dKTtmb3IoO3QucHJlUnVuLmxlbmd0aDspYWRkT25QcmVSdW4odC5wcmVSdW4uc2hpZnQoKSl9Y2FsbFJ1bnRpbWVDYWxsYmFja3Modyl9KCk7ZnVuY3Rpb24gZG9SdW4oKXt0LmNhbGxlZFJ1bj0hMDtpZighcCl7IWZ1bmN0aW9uIGluaXRSdW50aW1lKCl7ZD0hMDt4LnMoKX0oKTtyPy4odCk7dC5vblJ1bnRpbWVJbml0aWFsaXplZD8uKCk7IWZ1bmN0aW9uIHBvc3RSdW4oKXtpZih0LnBvc3RSdW4peyJmdW5jdGlvbiI9PXR5cGVvZiB0LnBvc3RSdW4mJih0LnBvc3RSdW49W3QucG9zdFJ1bl0pO2Zvcig7dC5wb3N0UnVuLmxlbmd0aDspYWRkT25Qb3N0UnVuKHQucG9zdFJ1bi5zaGlmdCgpKX1jYWxsUnVudGltZUNhbGxiYWNrcyhiKX0oKX19aWYodC5zZXRTdGF0dXMpe3Quc2V0U3RhdHVzKCJSdW5uaW5nLi4uIik7c2V0VGltZW91dCgoKT0+e3NldFRpbWVvdXQoKCk9PnQuc2V0U3RhdHVzKCIiKSwxKTtkb1J1bigpfSwxKX1lbHNlIGRvUnVuKCl9KCk7cmV0dXJuIGQ/dDpuZXcgUHJvbWlzZSgoZSx0KT0+e3I9ZTtpPXR9KX07Y2xhc3MgSnB4RXJyb3IgZXh0ZW5kcyBlbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJKcHhFcnJvciIpfX1jbGFzcyBKcHhJbWFnZXtzdGF0aWMjTz1udWxsO3N0YXRpYyNCPW51bGw7c3RhdGljI1I9bnVsbDtzdGF0aWMjeD0hMDtzdGF0aWMjRD0hMDtzdGF0aWMjQT1udWxsO3N0YXRpYyBzZXRPcHRpb25zKHtoYW5kbGVyOmUsdXNlV2FzbTp0LHVzZVdvcmtlckZldGNoOm4sd2FzbVVybDphfSl7dGhpcy4jeD10O3RoaXMuI0Q9bjt0aGlzLiNBPWE7bnx8KHRoaXMuI0I9ZSl9c3RhdGljIGFzeW5jI3ooZSl7Y29uc3QgdD1gJHt0aGlzLiNBfW9wZW5qcGVnX25vd2FzbV9mYWxsYmFjay5qc2A7bGV0IG49bnVsbDt0cnl7bj0oYXdhaXQgaW1wb3J0KAovKndlYnBhY2tJZ25vcmU6IHRydWUqLwovKkB2aXRlLWlnbm9yZSovCnQpKS5kZWZhdWx0KCl9Y2F0Y2goZSl7d2FybihgSnB4SW1hZ2UjZ2V0SnNNb2R1bGU6ICR7ZX1gKX1lKG4pfXN0YXRpYyBhc3luYyNNKGUsdCxuKXtjb25zdCBhPSJvcGVuanBlZy53YXNtIjt0cnl7dGhpcy4jT3x8KHRoaXMuI0Q/dGhpcy4jTz1hd2FpdCBmZXRjaEJpbmFyeURhdGEoYCR7dGhpcy4jQX0ke2F9YCk6dGhpcy4jTz1hd2FpdCB0aGlzLiNCLnNlbmRXaXRoUHJvbWlzZSgiRmV0Y2hCaW5hcnlEYXRhIix7dHlwZToid2FzbUZhY3RvcnkiLGZpbGVuYW1lOmF9KSk7cmV0dXJuIG4oKGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHRoaXMuI08sdCkpLmluc3RhbmNlKX1jYXRjaCh0KXt3YXJuKGBKcHhJbWFnZSNpbnN0YW50aWF0ZVdhc206ICR7dH1gKTt0aGlzLiN6KGUpO3JldHVybiBudWxsfWZpbmFsbHl7dGhpcy4jQj1udWxsfX1zdGF0aWMgYXN5bmMgZGVjb2RlKGUse251bUNvbXBvbmVudHM6dD00LGlzSW5kZXhlZENvbG9ybWFwOm49ITEsc21hc2tJbkRhdGE6YT0hMSxyZWR1Y2VQb3dlcjpzPTB9PXt9KXtpZighdGhpcy4jUil7Y29uc3R7cHJvbWlzZTplLHJlc29sdmU6dH09UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksbj1bZV07dGhpcy4jeD9uLnB1c2goTW4oe3dhcm4saW5zdGFudGlhdGVXYXNtOnRoaXMuI00uYmluZCh0aGlzLHQpfSkpOnRoaXMuI3oodCk7dGhpcy4jUj1Qcm9taXNlLnJhY2Uobil9Y29uc3Qgcj1hd2FpdCB0aGlzLiNSO2lmKCFyKXRocm93IG5ldyBKcHhFcnJvcigiT3BlbkpQRUcgZmFpbGVkIHRvIGluaXRpYWxpemUiKTtsZXQgaTt0cnl7Y29uc3Qgbz1lLmxlbmd0aDtpPXIuX21hbGxvYyhvKTtyLndyaXRlQXJyYXlUb01lbW9yeShlLGkpO2lmKHIuX2pwMl9kZWNvZGUoaSxvLHQ+MD90OjAsISFuLCEhYSxzKSl7Y29uc3R7ZXJyb3JNZXNzYWdlczplfT1yO2lmKGUpe2RlbGV0ZSByLmVycm9yTWVzc2FnZXM7dGhyb3cgbmV3IEpweEVycm9yKGUpfXRocm93IG5ldyBKcHhFcnJvcigiVW5rbm93biBlcnJvciIpfWNvbnN0e2ltYWdlRGF0YTpsfT1yO3IuaW1hZ2VEYXRhPW51bGw7cmV0dXJuIGx9ZmluYWxseXtpJiZyLl9mcmVlKGkpfX1zdGF0aWMgY2xlYW51cCgpe3RoaXMuI1I9bnVsbH1zdGF0aWMgcGFyc2VJbWFnZVByb3BlcnRpZXMoZSl7bGV0IHQ9ZS5nZXRCeXRlKCk7Zm9yKDt0Pj0wOyl7Y29uc3Qgbj10O3Q9ZS5nZXRCeXRlKCk7aWYoNjUzNjE9PT0objw8OHx0KSl7ZS5za2lwKDQpO2NvbnN0IHQ9ZS5nZXRJbnQzMigpPj4+MCxuPWUuZ2V0SW50MzIoKT4+PjAsYT1lLmdldEludDMyKCk+Pj4wLHM9ZS5nZXRJbnQzMigpPj4+MDtlLnNraXAoMTYpO3JldHVybnt3aWR0aDp0LWEsaGVpZ2h0Om4tcyxiaXRzUGVyQ29tcG9uZW50OjgsY29tcG9uZW50c0NvdW50OmUuZ2V0VWludDE2KCl9fX10aHJvdyBuZXcgSnB4RXJyb3IoIk5vIHNpemUgbWFya2VyIGZvdW5kIGluIEpQWCBzdHJlYW0iKX19ZnVuY3Rpb24gYWRkU3RhdGUoZSx0LG4sYSxzKXtsZXQgcj1lO2ZvcihsZXQgZT0wLG49dC5sZW5ndGgtMTtlPG47ZSsrKXtjb25zdCBuPXRbZV07cj1yW25dfHw9W119clt0LmF0KC0xKV09e2NoZWNrRm46bixpdGVyYXRlRm46YSxwcm9jZXNzRm46c319Y29uc3QgUG49W107YWRkU3RhdGUoUG4sW3dlLGtlLFB0LGplXSxudWxsLGZ1bmN0aW9uIGl0ZXJhdGVJbmxpbmVJbWFnZUdyb3VwKGUsdCl7Y29uc3Qgbj1lLmZuQXJyYXksYT0odC0oZS5pQ3Vyci0zKSklNDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiBuW3RdPT09d2U7Y2FzZSAxOnJldHVybiBuW3RdPT09a2U7Y2FzZSAyOnJldHVybiBuW3RdPT09UHQ7Y2FzZSAzOnJldHVybiBuW3RdPT09amV9dGhyb3cgbmV3IEVycm9yKGBpdGVyYXRlSW5saW5lSW1hZ2VHcm91cCAtIGludmFsaWQgcG9zOiAke2F9YCl9LGZ1bmN0aW9uIGZvdW5kSW5saW5lSW1hZ2VHcm91cChlLHQpe2NvbnN0IG49ZS5mbkFycmF5LGE9ZS5hcmdzQXJyYXkscz1lLmlDdXJyLHI9cy0zLGk9cy0yLG89cy0xLGw9TWF0aC5taW4oTWF0aC5mbG9vcigodC1yKS80KSwyMDApO2lmKGw8MTApcmV0dXJuIHQtKHQtciklNDtsZXQgZj0wO2NvbnN0IGM9W107bGV0IGg9MCx1PTEsbT0xO2ZvcihsZXQgZT0wO2U8bDtlKyspe2NvbnN0IHQ9YVtpKyhlPDwyKV0sbj1hW28rKGU8PDIpXVswXTtpZih1K24ud2lkdGg+MWUzKXtmPU1hdGgubWF4KGYsdSk7bSs9aCsyO3U9MDtoPTB9Yy5wdXNoKHt0cmFuc2Zvcm06dCx4OnUseTptLHc6bi53aWR0aCxoOm4uaGVpZ2h0fSk7dSs9bi53aWR0aCsyO2g9TWF0aC5tYXgoaCxuLmhlaWdodCl9Y29uc3QgcD1NYXRoLm1heChmLHUpKzEsZD1tK2grMSxnPW5ldyBVaW50OEFycmF5KHAqZCo0KSxiPXA8PDI7Zm9yKGxldCBlPTA7ZTxsO2UrKyl7Y29uc3QgdD1hW28rKGU8PDIpXVswXS5kYXRhLG49Y1tlXS53PDwyO2xldCBzPTAscj1jW2VdLngrY1tlXS55KnA8PDI7Zy5zZXQodC5zdWJhcnJheSgwLG4pLHItYik7Zm9yKGxldCBhPTAsaT1jW2VdLmg7YTxpO2ErKyl7Zy5zZXQodC5zdWJhcnJheShzLHMrbikscik7cys9bjtyKz1ifWcuc2V0KHQuc3ViYXJyYXkocy1uLHMpLHIpO2Zvcig7cj49MDspe3Rbci00XT10W3JdO3Rbci0zXT10W3IrMV07dFtyLTJdPXRbcisyXTt0W3ItMV09dFtyKzNdO3RbcituXT10W3Irbi00XTt0W3IrbisxXT10W3Irbi0zXTt0W3IrbisyXT10W3Irbi0yXTt0W3IrbiszXT10W3Irbi0xXTtyLT1ifX1jb25zdCB3PXt3aWR0aDpwLGhlaWdodDpkfTtpZihlLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKXtjb25zdCBlPW5ldyBPZmZzY3JlZW5DYW52YXMocCxkKTtlLmdldENvbnRleHQoIjJkIikucHV0SW1hZ2VEYXRhKG5ldyBJbWFnZURhdGEobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGcuYnVmZmVyKSxwLGQpLDAsMCk7dy5iaXRtYXA9ZS50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTt3LmRhdGE9bnVsbH1lbHNle3cua2luZD1GO3cuZGF0YT1nfW4uc3BsaWNlKHIsNCpsLEV0KTthLnNwbGljZShyLDQqbCxbdyxjXSk7cmV0dXJuIHIrMX0pO2FkZFN0YXRlKFBuLFt3ZSxrZSxSdCxqZV0sbnVsbCxmdW5jdGlvbiBpdGVyYXRlSW1hZ2VNYXNrR3JvdXAoZSx0KXtjb25zdCBuPWUuZm5BcnJheSxhPSh0LShlLmlDdXJyLTMpKSU0O3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuIG5bdF09PT13ZTtjYXNlIDE6cmV0dXJuIG5bdF09PT1rZTtjYXNlIDI6cmV0dXJuIG5bdF09PT1SdDtjYXNlIDM6cmV0dXJuIG5bdF09PT1qZX10aHJvdyBuZXcgRXJyb3IoYGl0ZXJhdGVJbWFnZU1hc2tHcm91cCAtIGludmFsaWQgcG9zOiAke2F9YCl9LGZ1bmN0aW9uIGZvdW5kSW1hZ2VNYXNrR3JvdXAoZSx0KXtjb25zdCBuPWUuZm5BcnJheSxhPWUuYXJnc0FycmF5LHM9ZS5pQ3VycixyPXMtMyxpPXMtMixvPXMtMTtsZXQgbD1NYXRoLmZsb29yKCh0LXIpLzQpO2lmKGw8MTApcmV0dXJuIHQtKHQtciklNDtsZXQgZixjLGg9ITE7Y29uc3QgdT1hW29dWzBdLG09YVtpXVswXSxwPWFbaV1bMV0sZD1hW2ldWzJdLGc9YVtpXVszXTtpZihwPT09ZCl7aD0hMDtmPWkrNDtsZXQgZT1vKzQ7Zm9yKGxldCB0PTE7dDxsO3QrKyxmKz00LGUrPTQpe2M9YVtmXTtpZihhW2VdWzBdIT09dXx8Y1swXSE9PW18fGNbMV0hPT1wfHxjWzJdIT09ZHx8Y1szXSE9PWcpe3Q8MTA/aD0hMTpsPXQ7YnJlYWt9fX1pZihoKXtsPU1hdGgubWluKGwsMWUzKTtjb25zdCBlPW5ldyBGbG9hdDMyQXJyYXkoMipsKTtmPWk7Zm9yKGxldCB0PTA7dDxsO3QrKyxmKz00KXtjPWFbZl07ZVt0PDwxXT1jWzRdO2VbMSsodDw8MSldPWNbNV19bi5zcGxpY2Uociw0KmwsenQpO2Euc3BsaWNlKHIsNCpsLFt1LG0scCxkLGcsZV0pfWVsc2V7bD1NYXRoLm1pbihsLDEwMCk7Y29uc3QgZT1bXTtmb3IobGV0IHQ9MDt0PGw7dCsrKXtjPWFbaSsodDw8MildO2NvbnN0IG49YVtvKyh0PDwyKV1bMF07ZS5wdXNoKHtkYXRhOm4uZGF0YSx3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCxpbnRlcnBvbGF0ZTpuLmludGVycG9sYXRlLGNvdW50Om4uY291bnQsdHJhbnNmb3JtOmN9KX1uLnNwbGljZShyLDQqbCxEdCk7YS5zcGxpY2Uociw0KmwsW2VdKX1yZXR1cm4gcisxfSk7YWRkU3RhdGUoUG4sW3dlLGtlLE10LGplXSxmdW5jdGlvbihlKXtjb25zdCB0PWUuYXJnc0FycmF5LG49ZS5pQ3Vyci0yO3JldHVybiAwPT09dFtuXVsxXSYmMD09PXRbbl1bMl19LGZ1bmN0aW9uIGl0ZXJhdGVJbWFnZUdyb3VwKGUsdCl7Y29uc3Qgbj1lLmZuQXJyYXksYT1lLmFyZ3NBcnJheSxzPSh0LShlLmlDdXJyLTMpKSU0O3N3aXRjaChzKXtjYXNlIDA6cmV0dXJuIG5bdF09PT13ZTtjYXNlIDE6aWYoblt0XSE9PWtlKXJldHVybiExO2NvbnN0IHM9ZS5pQ3Vyci0yLHI9YVtzXVswXSxpPWFbc11bM107cmV0dXJuIGFbdF1bMF09PT1yJiYwPT09YVt0XVsxXSYmMD09PWFbdF1bMl0mJmFbdF1bM109PT1pO2Nhc2UgMjppZihuW3RdIT09TXQpcmV0dXJuITE7Y29uc3Qgbz1hW2UuaUN1cnItMV1bMF07cmV0dXJuIGFbdF1bMF09PT1vO2Nhc2UgMzpyZXR1cm4gblt0XT09PWplfXRocm93IG5ldyBFcnJvcihgaXRlcmF0ZUltYWdlR3JvdXAgLSBpbnZhbGlkIHBvczogJHtzfWApfSxmdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5mbkFycmF5LGE9ZS5hcmdzQXJyYXkscz1lLmlDdXJyLHI9cy0zLGk9cy0yLG89YVtzLTFdWzBdLGw9YVtpXVswXSxmPWFbaV1bM10sYz1NYXRoLm1pbihNYXRoLmZsb29yKCh0LXIpLzQpLDFlMyk7aWYoYzwzKXJldHVybiB0LSh0LXIpJTQ7Y29uc3QgaD1uZXcgRmxvYXQzMkFycmF5KDIqYyk7bGV0IHU9aTtmb3IobGV0IGU9MDtlPGM7ZSsrLHUrPTQpe2NvbnN0IHQ9YVt1XTtoW2U8PDFdPXRbNF07aFsxKyhlPDwxKV09dFs1XX1jb25zdCBtPVtvLGwsZixoXTtuLnNwbGljZShyLDQqYyxOdCk7YS5zcGxpY2Uociw0KmMsbSk7cmV0dXJuIHIrMX0pO2FkZFN0YXRlKFBuLFtOZSxXZSxZZSxRZSx6ZV0sbnVsbCxmdW5jdGlvbiBpdGVyYXRlU2hvd1RleHRHcm91cChlLHQpe2NvbnN0IG49ZS5mbkFycmF5LGE9ZS5hcmdzQXJyYXkscz0odC0oZS5pQ3Vyci00KSklNTtzd2l0Y2gocyl7Y2FzZSAwOnJldHVybiBuW3RdPT09TmU7Y2FzZSAxOnJldHVybiBuW3RdPT09V2U7Y2FzZSAyOnJldHVybiBuW3RdPT09WWU7Y2FzZSAzOmlmKG5bdF0hPT1RZSlyZXR1cm4hMTtjb25zdCBzPWUuaUN1cnItMyxyPWFbc11bMF0saT1hW3NdWzFdO3JldHVybiBhW3RdWzBdPT09ciYmYVt0XVsxXT09PWk7Y2FzZSA0OnJldHVybiBuW3RdPT09emV9dGhyb3cgbmV3IEVycm9yKGBpdGVyYXRlU2hvd1RleHRHcm91cCAtIGludmFsaWQgcG9zOiAke3N9YCl9LGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1lLmZuQXJyYXksYT1lLmFyZ3NBcnJheSxzPWUuaUN1cnIscj1zLTQsaT1zLTMsbz1zLTIsbD1zLTEsZj1zLGM9YVtpXVswXSxoPWFbaV1bMV07bGV0IHU9TWF0aC5taW4oTWF0aC5mbG9vcigodC1yKS81KSwxZTMpO2lmKHU8MylyZXR1cm4gdC0odC1yKSU1O2xldCBtPXI7aWYocj49NCYmbltyLTRdPT09bltpXSYmbltyLTNdPT09bltvXSYmbltyLTJdPT09bltsXSYmbltyLTFdPT09bltmXSYmYVtyLTRdWzBdPT09YyYmYVtyLTRdWzFdPT09aCl7dSsrO20tPTV9bGV0IHA9bSs0O2ZvcihsZXQgZT0xO2U8dTtlKyspe24uc3BsaWNlKHAsMyk7YS5zcGxpY2UocCwzKTtwKz0yfXJldHVybiBwKzF9KTthZGRTdGF0ZShQbixbd2Usa2UsVXQsamVdLGU9Pntjb25zdCB0PWUuYXJnc0FycmF5LG49dFtlLmlDdXJyLTFdWzBdO2lmKG4hPT1JZSYmbiE9PUZlJiZuIT09T2UmJm4hPT1CZSYmbiE9PVJlJiZuIT09RGUpcmV0dXJuITA7Y29uc3QgYT10W2UuaUN1cnItMl07cmV0dXJuIDE9PT1hWzBdJiYwPT09YVsxXSYmMD09PWFbMl0mJjE9PT1hWzNdfSwoKT0+ITEsKGUsdCk9Pntjb25zdHtmbkFycmF5Om4sYXJnc0FycmF5OmF9PWUscz1lLmlDdXJyLHI9cy0zLGk9cy0yLG89YVtzLTFdLGw9YVtpXSxbLFtmXSxjXT1vO2lmKGMpe1V0aWwuc2NhbGVNaW5NYXgobCxjKTtmb3IobGV0IGU9MCx0PWYubGVuZ3RoO2U8dDspc3dpdGNoKGZbZSsrXSl7Y2FzZSBLdDpjYXNlIEd0OlV0aWwuYXBwbHlUcmFuc2Zvcm0oZixsLGUpO2UrPTI7YnJlYWs7Y2FzZSBWdDpVdGlsLmFwcGx5VHJhbnNmb3JtVG9CZXppZXIoZixsLGUpO2UrPTZ9fW4uc3BsaWNlKHIsNCxVdCk7YS5zcGxpY2Uociw0LG8pO3JldHVybiByKzF9KTtjbGFzcyBOdWxsT3B0aW1pemVye2NvbnN0cnVjdG9yKGUpe3RoaXMucXVldWU9ZX1fb3B0aW1pemUoKXt9cHVzaChlLHQpe3RoaXMucXVldWUuZm5BcnJheS5wdXNoKGUpO3RoaXMucXVldWUuYXJnc0FycmF5LnB1c2godCk7dGhpcy5fb3B0aW1pemUoKX1mbHVzaCgpe31yZXNldCgpe319Y2xhc3MgUXVldWVPcHRpbWl6ZXIgZXh0ZW5kcyBOdWxsT3B0aW1pemVye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuc3RhdGU9bnVsbDt0aGlzLmNvbnRleHQ9e2lDdXJyOjAsZm5BcnJheTplLmZuQXJyYXksYXJnc0FycmF5OmUuYXJnc0FycmF5LGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOk9wZXJhdG9yTGlzdC5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZH07dGhpcy5tYXRjaD1udWxsO3RoaXMubGFzdFByb2Nlc3NlZD0wfV9vcHRpbWl6ZSgpe2NvbnN0IGU9dGhpcy5xdWV1ZS5mbkFycmF5O2xldCB0PXRoaXMubGFzdFByb2Nlc3NlZCxuPWUubGVuZ3RoLGE9dGhpcy5zdGF0ZSxzPXRoaXMubWF0Y2g7aWYoIWEmJiFzJiZ0KzE9PT1uJiYhUG5bZVt0XV0pe3RoaXMubGFzdFByb2Nlc3NlZD1uO3JldHVybn1jb25zdCByPXRoaXMuY29udGV4dDtmb3IoO3Q8bjspe2lmKHMpe2lmKCgwLHMuaXRlcmF0ZUZuKShyLHQpKXt0Kys7Y29udGludWV9dD0oMCxzLnByb2Nlc3NGbikocix0KzEpO249ZS5sZW5ndGg7cz1udWxsO2E9bnVsbDtpZih0Pj1uKWJyZWFrfWE9KGF8fFBuKVtlW3RdXTtpZihhJiYhQXJyYXkuaXNBcnJheShhKSl7ci5pQ3Vycj10O3QrKztpZighYS5jaGVja0ZufHwoMCxhLmNoZWNrRm4pKHIpKXtzPWE7YT1udWxsfWVsc2UgYT1udWxsfWVsc2UgdCsrfXRoaXMuc3RhdGU9YTt0aGlzLm1hdGNoPXM7dGhpcy5sYXN0UHJvY2Vzc2VkPXR9Zmx1c2goKXtmb3IoO3RoaXMubWF0Y2g7KXtjb25zdCBlPXRoaXMucXVldWUuZm5BcnJheS5sZW5ndGg7dGhpcy5sYXN0UHJvY2Vzc2VkPSgwLHRoaXMubWF0Y2gucHJvY2Vzc0ZuKSh0aGlzLmNvbnRleHQsZSk7dGhpcy5tYXRjaD1udWxsO3RoaXMuc3RhdGU9bnVsbDt0aGlzLl9vcHRpbWl6ZSgpfX1yZXNldCgpe3RoaXMuc3RhdGU9bnVsbDt0aGlzLm1hdGNoPW51bGw7dGhpcy5sYXN0UHJvY2Vzc2VkPTB9fWNsYXNzIE9wZXJhdG9yTGlzdHtzdGF0aWMgQ0hVTktfU0laRT0xZTM7c3RhdGljIENIVU5LX1NJWkVfQUJPVVQ9dGhpcy5DSFVOS19TSVpFLTU7c3RhdGljIGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPSExO2NvbnN0cnVjdG9yKGU9MCx0KXt0aGlzLl9zdHJlYW1TaW5rPXQ7dGhpcy5mbkFycmF5PVtdO3RoaXMuYXJnc0FycmF5PVtdO3RoaXMub3B0aW1pemVyPSF0fHxlJnU/bmV3IE51bGxPcHRpbWl6ZXIodGhpcyk6bmV3IFF1ZXVlT3B0aW1pemVyKHRoaXMpO3RoaXMuZGVwZW5kZW5jaWVzPW5ldyBTZXQ7dGhpcy5fdG90YWxMZW5ndGg9MDt0aGlzLndlaWdodD0wO3RoaXMuX3Jlc29sdmVkPXQ/bnVsbDpQcm9taXNlLnJlc29sdmUoKX1zdGF0aWMgc2V0T3B0aW9ucyh7aXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6ZX0pe3RoaXMuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ9ZX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuYXJnc0FycmF5Lmxlbmd0aH1nZXQgcmVhZHkoKXtyZXR1cm4gdGhpcy5fcmVzb2x2ZWR8fHRoaXMuX3N0cmVhbVNpbmsucmVhZHl9Z2V0IHRvdGFsTGVuZ3RoKCl7cmV0dXJuIHRoaXMuX3RvdGFsTGVuZ3RoK3RoaXMubGVuZ3RofWFkZE9wKGUsdCl7dGhpcy5vcHRpbWl6ZXIucHVzaChlLHQpO3RoaXMud2VpZ2h0Kys7dGhpcy5fc3RyZWFtU2luayYmKHRoaXMud2VpZ2h0Pj1PcGVyYXRvckxpc3QuQ0hVTktfU0laRXx8dGhpcy53ZWlnaHQ+PU9wZXJhdG9yTGlzdC5DSFVOS19TSVpFX0FCT1VUJiYoZT09PWplfHxlPT09emUpKSYmdGhpcy5mbHVzaCgpfWFkZEltYWdlT3BzKGUsdCxuLGE9ITEpe2lmKGEpe3RoaXMuYWRkT3Aod2UpO3RoaXMuYWRkT3AoYmUsW1tbIlNNYXNrIiwhMV1dXSl9dm9pZCAwIT09biYmdGhpcy5hZGRPcChTdCxbIk9DIixuXSk7dGhpcy5hZGRPcChlLHQpO3ZvaWQgMCE9PW4mJnRoaXMuYWRkT3AoeHQsW10pO2EmJnRoaXMuYWRkT3AoamUpfWFkZERlcGVuZGVuY3koZSl7aWYoIXRoaXMuZGVwZW5kZW5jaWVzLmhhcyhlKSl7dGhpcy5kZXBlbmRlbmNpZXMuYWRkKGUpO3RoaXMuYWRkT3AoZmUsW2VdKX19YWRkRGVwZW5kZW5jaWVzKGUpe2Zvcihjb25zdCB0IG9mIGUpdGhpcy5hZGREZXBlbmRlbmN5KHQpfWFkZE9wTGlzdChlKXtpZihlIGluc3RhbmNlb2YgT3BlcmF0b3JMaXN0KXtmb3IoY29uc3QgdCBvZiBlLmRlcGVuZGVuY2llcyl0aGlzLmRlcGVuZGVuY2llcy5hZGQodCk7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXRoaXMuYWRkT3AoZS5mbkFycmF5W3RdLGUuYXJnc0FycmF5W3RdKX1lbHNlIHdhcm4oJ2FkZE9wTGlzdCAtIGlnbm9yaW5nIGludmFsaWQgIm9wTGlzdCIgcGFyYW1ldGVyLicpfWdldElSKCl7cmV0dXJue2ZuQXJyYXk6dGhpcy5mbkFycmF5LGFyZ3NBcnJheTp0aGlzLmFyZ3NBcnJheSxsZW5ndGg6dGhpcy5sZW5ndGh9fWdldCBfdHJhbnNmZXJzKCl7Y29uc3QgZT1bXSx7Zm5BcnJheTp0LGFyZ3NBcnJheTpuLGxlbmd0aDphfT10aGlzO2ZvcihsZXQgcz0wO3M8YTtzKyspc3dpdGNoKHRbc10pe2Nhc2UgUHQ6Y2FzZSBFdDpjYXNlIFJ0Ontjb25zdHtiaXRtYXA6dCxkYXRhOmF9PW5bc11bMF07KHR8fGE/LmJ1ZmZlcikmJmUucHVzaCh0fHxhLmJ1ZmZlcik7YnJlYWt9Y2FzZSBVdDp7Y29uc3RbLFt0XSxhXT1uW3NdO3QmJmUucHVzaCh0LmJ1ZmZlcixhLmJ1ZmZlcik7YnJlYWt9Y2FzZSBJdDpjb25zdFt0LGFdPW5bc107dCYmZS5wdXNoKHQuYnVmZmVyKTthJiZlLnB1c2goYS5idWZmZXIpO2JyZWFrO2Nhc2UgWWU6ZS5wdXNoKG5bc11bMF0uYnVmZmVyKX1yZXR1cm4gZX1mbHVzaChlPSExLHQ9bnVsbCl7dGhpcy5vcHRpbWl6ZXIuZmx1c2goKTtjb25zdCBuPXRoaXMubGVuZ3RoO3RoaXMuX3RvdGFsTGVuZ3RoKz1uO3RoaXMuX3N0cmVhbVNpbmsuZW5xdWV1ZSh7Zm5BcnJheTp0aGlzLmZuQXJyYXksYXJnc0FycmF5OnRoaXMuYXJnc0FycmF5LGxhc3RDaHVuazplLHNlcGFyYXRlQW5ub3RzOnQsbGVuZ3RoOm59LDEsdGhpcy5fdHJhbnNmZXJzKTt0aGlzLmRlcGVuZGVuY2llcy5jbGVhcigpO3RoaXMuZm5BcnJheS5sZW5ndGg9MDt0aGlzLmFyZ3NBcnJheS5sZW5ndGg9MDt0aGlzLndlaWdodD0wO3RoaXMub3B0aW1pemVyLnJlc2V0KCl9fWZ1bmN0aW9uIGhleFRvSW50KGUsdCl7bGV0IG49MDtmb3IobGV0IGE9MDthPD10O2ErKyluPW48PDh8ZVthXTtyZXR1cm4gbj4+PjB9ZnVuY3Rpb24gaGV4VG9TdHIoZSx0KXtyZXR1cm4gMT09PXQ/U3RyaW5nLmZyb21DaGFyQ29kZShlWzBdLGVbMV0pOjM9PT10P1N0cmluZy5mcm9tQ2hhckNvZGUoZVswXSxlWzFdLGVbMl0sZVszXSk6U3RyaW5nLmZyb21DaGFyQ29kZSguLi5lLnN1YmFycmF5KDAsdCsxKSl9ZnVuY3Rpb24gYWRkSGV4KGUsdCxuKXtsZXQgYT0wO2ZvcihsZXQgcz1uO3M+PTA7cy0tKXthKz1lW3NdK3Rbc107ZVtzXT0yNTUmYTthPj49OH19ZnVuY3Rpb24gaW5jSGV4KGUsdCl7bGV0IG49MTtmb3IobGV0IGE9dDthPj0wJiZuPjA7YS0tKXtuKz1lW2FdO2VbYV09MjU1Jm47bj4+PTh9fWNvbnN0IEVuPTE2O2NsYXNzIEJpbmFyeUNNYXBTdHJlYW17Y29uc3RydWN0b3IoZSl7dGhpcy5idWZmZXI9ZTt0aGlzLnBvcz0wO3RoaXMuZW5kPWUubGVuZ3RoO3RoaXMudG1wQnVmPW5ldyBVaW50OEFycmF5KDE5KX1yZWFkQnl0ZSgpe3JldHVybiB0aGlzLnBvcz49dGhpcy5lbmQ/LTE6dGhpcy5idWZmZXJbdGhpcy5wb3MrK119cmVhZE51bWJlcigpe2xldCBlLHQ9MDtkb3tjb25zdCBuPXRoaXMucmVhZEJ5dGUoKTtpZihuPDApdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJ1bmV4cGVjdGVkIEVPRiBpbiBiY21hcCIpO2U9ISgxMjgmbik7dD10PDw3fDEyNyZufXdoaWxlKCFlKTtyZXR1cm4gdH1yZWFkU2lnbmVkKCl7Y29uc3QgZT10aGlzLnJlYWROdW1iZXIoKTtyZXR1cm4gMSZlP34oZT4+PjEpOmU+Pj4xfXJlYWRIZXgoZSx0KXtlLnNldCh0aGlzLmJ1ZmZlci5zdWJhcnJheSh0aGlzLnBvcyx0aGlzLnBvcyt0KzEpKTt0aGlzLnBvcys9dCsxfXJlYWRIZXhOdW1iZXIoZSx0KXtsZXQgbjtjb25zdCBhPXRoaXMudG1wQnVmO2xldCBzPTA7ZG97Y29uc3QgZT10aGlzLnJlYWRCeXRlKCk7aWYoZTwwKXRocm93IG5ldyBGb3JtYXRFcnJvcigidW5leHBlY3RlZCBFT0YgaW4gYmNtYXAiKTtuPSEoMTI4JmUpO2FbcysrXT0xMjcmZX13aGlsZSghbik7bGV0IHI9dCxpPTAsbz0wO2Zvcig7cj49MDspe2Zvcig7bzw4JiZhLmxlbmd0aD4wOyl7aXw9YVstLXNdPDxvO28rPTd9ZVtyXT0yNTUmaTtyLS07aT4+PTg7by09OH19cmVhZEhleFNpZ25lZChlLHQpe3RoaXMucmVhZEhleE51bWJlcihlLHQpO2NvbnN0IG49MSZlW3RdPzI1NTowO2xldCBhPTA7Zm9yKGxldCBzPTA7czw9dDtzKyspe2E9KDEmYSk8PDh8ZVtzXTtlW3NdPWE+PjFebn19cmVhZFN0cmluZygpe2NvbnN0IGU9dGhpcy5yZWFkTnVtYmVyKCksdD1uZXcgQXJyYXkoZSk7Zm9yKGxldCBuPTA7bjxlO24rKyl0W25dPXRoaXMucmVhZE51bWJlcigpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLnQpfX1jbGFzcyBCaW5hcnlDTWFwUmVhZGVye2FzeW5jIHByb2Nlc3MoZSx0LG4pe2NvbnN0IGE9bmV3IEJpbmFyeUNNYXBTdHJlYW0oZSkscz1hLnJlYWRCeXRlKCk7dC52ZXJ0aWNhbD0hISgxJnMpO2xldCByPW51bGw7Y29uc3QgaT1uZXcgVWludDhBcnJheShFbiksbz1uZXcgVWludDhBcnJheShFbiksbD1uZXcgVWludDhBcnJheShFbiksZj1uZXcgVWludDhBcnJheShFbiksYz1uZXcgVWludDhBcnJheShFbik7bGV0IGgsdTtmb3IoOyh1PWEucmVhZEJ5dGUoKSk+PTA7KXtjb25zdCBlPXU+PjU7aWYoNz09PWUpe3N3aXRjaCgzMSZ1KXtjYXNlIDA6YS5yZWFkU3RyaW5nKCk7YnJlYWs7Y2FzZSAxOnI9YS5yZWFkU3RyaW5nKCl9Y29udGludWV9Y29uc3Qgbj0hISgxNiZ1KSxzPTE1JnU7aWYocysxPkVuKXRocm93IG5ldyBFcnJvcigiQmluYXJ5Q01hcFJlYWRlci5wcm9jZXNzOiBJbnZhbGlkIGRhdGFTaXplLiIpO2NvbnN0IG09MSxwPWEucmVhZE51bWJlcigpO3N3aXRjaChlKXtjYXNlIDA6YS5yZWFkSGV4KGkscyk7YS5yZWFkSGV4TnVtYmVyKG8scyk7YWRkSGV4KG8saSxzKTt0LmFkZENvZGVzcGFjZVJhbmdlKHMrMSxoZXhUb0ludChpLHMpLGhleFRvSW50KG8scykpO2ZvcihsZXQgZT0xO2U8cDtlKyspe2luY0hleChvLHMpO2EucmVhZEhleE51bWJlcihpLHMpO2FkZEhleChpLG8scyk7YS5yZWFkSGV4TnVtYmVyKG8scyk7YWRkSGV4KG8saSxzKTt0LmFkZENvZGVzcGFjZVJhbmdlKHMrMSxoZXhUb0ludChpLHMpLGhleFRvSW50KG8scykpfWJyZWFrO2Nhc2UgMTphLnJlYWRIZXgoaSxzKTthLnJlYWRIZXhOdW1iZXIobyxzKTthZGRIZXgobyxpLHMpO2EucmVhZE51bWJlcigpO2ZvcihsZXQgZT0xO2U8cDtlKyspe2luY0hleChvLHMpO2EucmVhZEhleE51bWJlcihpLHMpO2FkZEhleChpLG8scyk7YS5yZWFkSGV4TnVtYmVyKG8scyk7YWRkSGV4KG8saSxzKTthLnJlYWROdW1iZXIoKX1icmVhaztjYXNlIDI6YS5yZWFkSGV4KGwscyk7aD1hLnJlYWROdW1iZXIoKTt0Lm1hcE9uZShoZXhUb0ludChsLHMpLGgpO2ZvcihsZXQgZT0xO2U8cDtlKyspe2luY0hleChsLHMpO2lmKCFuKXthLnJlYWRIZXhOdW1iZXIoYyxzKTthZGRIZXgobCxjLHMpfWg9YS5yZWFkU2lnbmVkKCkrKGgrMSk7dC5tYXBPbmUoaGV4VG9JbnQobCxzKSxoKX1icmVhaztjYXNlIDM6YS5yZWFkSGV4KGkscyk7YS5yZWFkSGV4TnVtYmVyKG8scyk7YWRkSGV4KG8saSxzKTtoPWEucmVhZE51bWJlcigpO3QubWFwQ2lkUmFuZ2UoaGV4VG9JbnQoaSxzKSxoZXhUb0ludChvLHMpLGgpO2ZvcihsZXQgZT0xO2U8cDtlKyspe2luY0hleChvLHMpO2lmKG4paS5zZXQobyk7ZWxzZXthLnJlYWRIZXhOdW1iZXIoaSxzKTthZGRIZXgoaSxvLHMpfWEucmVhZEhleE51bWJlcihvLHMpO2FkZEhleChvLGkscyk7aD1hLnJlYWROdW1iZXIoKTt0Lm1hcENpZFJhbmdlKGhleFRvSW50KGkscyksaGV4VG9JbnQobyxzKSxoKX1icmVhaztjYXNlIDQ6YS5yZWFkSGV4KGwsbSk7YS5yZWFkSGV4KGYscyk7dC5tYXBPbmUoaGV4VG9JbnQobCxtKSxoZXhUb1N0cihmLHMpKTtmb3IobGV0IGU9MTtlPHA7ZSsrKXtpbmNIZXgobCxtKTtpZighbil7YS5yZWFkSGV4TnVtYmVyKGMsbSk7YWRkSGV4KGwsYyxtKX1pbmNIZXgoZixzKTthLnJlYWRIZXhTaWduZWQoYyxzKTthZGRIZXgoZixjLHMpO3QubWFwT25lKGhleFRvSW50KGwsbSksaGV4VG9TdHIoZixzKSl9YnJlYWs7Y2FzZSA1OmEucmVhZEhleChpLG0pO2EucmVhZEhleE51bWJlcihvLG0pO2FkZEhleChvLGksbSk7YS5yZWFkSGV4KGYscyk7dC5tYXBCZlJhbmdlKGhleFRvSW50KGksbSksaGV4VG9JbnQobyxtKSxoZXhUb1N0cihmLHMpKTtmb3IobGV0IGU9MTtlPHA7ZSsrKXtpbmNIZXgobyxtKTtpZihuKWkuc2V0KG8pO2Vsc2V7YS5yZWFkSGV4TnVtYmVyKGksbSk7YWRkSGV4KGksbyxtKX1hLnJlYWRIZXhOdW1iZXIobyxtKTthZGRIZXgobyxpLG0pO2EucmVhZEhleChmLHMpO3QubWFwQmZSYW5nZShoZXhUb0ludChpLG0pLGhleFRvSW50KG8sbSksaGV4VG9TdHIoZixzKSl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEJpbmFyeUNNYXBSZWFkZXIucHJvY2VzcyAtIHVua25vd24gdHlwZTogJHtlfWApfX1yZXR1cm4gcj9uKHIpOnR9fWNsYXNzIEFzY2lpODVTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17Y29uc3RydWN0b3IoZSx0KXt0JiYodCo9LjgpO3N1cGVyKHQpO3RoaXMuc3RyZWFtPWU7dGhpcy5kaWN0PWUuZGljdDt0aGlzLmlucHV0PW5ldyBVaW50OEFycmF5KDUpfXJlYWRCbG9jaygpe2NvbnN0IGU9dGhpcy5zdHJlYW07bGV0IHQ9ZS5nZXRCeXRlKCk7Zm9yKDtpc1doaXRlU3BhY2UodCk7KXQ9ZS5nZXRCeXRlKCk7aWYoLTE9PT10fHwxMjY9PT10KXt0aGlzLmVvZj0hMDtyZXR1cm59Y29uc3Qgbj10aGlzLmJ1ZmZlckxlbmd0aDtsZXQgYSxzO2lmKDEyMj09PXQpe2E9dGhpcy5lbnN1cmVCdWZmZXIobis0KTtmb3Iocz0wO3M8NDsrK3MpYVtuK3NdPTA7dGhpcy5idWZmZXJMZW5ndGgrPTR9ZWxzZXtjb25zdCByPXRoaXMuaW5wdXQ7clswXT10O2ZvcihzPTE7czw1Oysrcyl7dD1lLmdldEJ5dGUoKTtmb3IoO2lzV2hpdGVTcGFjZSh0KTspdD1lLmdldEJ5dGUoKTtyW3NdPXQ7aWYoLTE9PT10fHwxMjY9PT10KWJyZWFrfWE9dGhpcy5lbnN1cmVCdWZmZXIobitzLTEpO3RoaXMuYnVmZmVyTGVuZ3RoKz1zLTE7aWYoczw1KXtmb3IoO3M8NTsrK3MpcltzXT0xMTc7dGhpcy5lb2Y9ITB9bGV0IGk9MDtmb3Iocz0wO3M8NTsrK3MpaT04NSppKyhyW3NdLTMzKTtmb3Iocz0zO3M+PTA7LS1zKXthW24rc109MjU1Jmk7aT4+PTh9fX19Y2xhc3MgQXNjaWlIZXhTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17Y29uc3RydWN0b3IoZSx0KXt0JiYodCo9LjUpO3N1cGVyKHQpO3RoaXMuc3RyZWFtPWU7dGhpcy5kaWN0PWUuZGljdDt0aGlzLmZpcnN0RGlnaXQ9LTF9cmVhZEJsb2NrKCl7Y29uc3QgZT10aGlzLnN0cmVhbS5nZXRCeXRlcyg4ZTMpO2lmKCFlLmxlbmd0aCl7dGhpcy5lb2Y9ITA7cmV0dXJufWNvbnN0IHQ9ZS5sZW5ndGgrMT4+MSxuPXRoaXMuZW5zdXJlQnVmZmVyKHRoaXMuYnVmZmVyTGVuZ3RoK3QpO2xldCBhPXRoaXMuYnVmZmVyTGVuZ3RoLHM9dGhpcy5maXJzdERpZ2l0O2Zvcihjb25zdCB0IG9mIGUpe2xldCBlO2lmKHQ+PTQ4JiZ0PD01NyllPTE1JnQ7ZWxzZXtpZighKHQ+PTY1JiZ0PD03MHx8dD49OTcmJnQ8PTEwMikpe2lmKDYyPT09dCl7dGhpcy5lb2Y9ITA7YnJlYWt9Y29udGludWV9ZT05KygxNSZ0KX1pZihzPDApcz1lO2Vsc2V7blthKytdPXM8PDR8ZTtzPS0xfX1pZihzPj0wJiZ0aGlzLmVvZil7blthKytdPXM8PDQ7cz0tMX10aGlzLmZpcnN0RGlnaXQ9czt0aGlzLmJ1ZmZlckxlbmd0aD1hfX1sZXQgTm49KCgpPT57Y29uc3QgZT1JbnQzMkFycmF5LmZyb20oWzI1Niw0MDIsNDM2LDQ2OCw1MDAsNTM0LDU2Niw1OTgsNjMwLDY2Miw2OTQsNzI2LDc1OCw3OTAsODIyLDg1NCw4ODYsOTIwLDk1Miw5ODQsMTAxNiwxMDQ4LDEwODBdKSx0PUludDMyQXJyYXkuZnJvbShbMSwyLDMsNCwwLDUsMTcsNiwxNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNV0pLG49SW50MzJBcnJheS5mcm9tKFswLDMsMiwxLDAsMCwwLDAsMCwwLDMsMywzLDMsMywzXSksYT1JbnQzMkFycmF5LmZyb20oWzAsMCwwLDAsLTEsMSwtMiwyLC0zLDMsLTEsMSwtMiwyLC0zLDNdKSxzPUludDMyQXJyYXkuZnJvbShbMTMxMDcyLDEzMTA3NiwxMzEwNzUsMTk2NjEwLDEzMTA3MiwxMzEwNzYsMTMxMDc1LDI2MjE0NSwxMzEwNzIsMTMxMDc2LDEzMTA3NSwxOTY2MTAsMTMxMDcyLDEzMTA3NiwxMzEwNzUsMjYyMTQ5XSkscj1JbnQzMkFycmF5LmZyb20oWzEsNSw5LDEzLDE3LDI1LDMzLDQxLDQ5LDY1LDgxLDk3LDExMywxNDUsMTc3LDIwOSwyNDEsMzA1LDM2OSw0OTcsNzUzLDEyNjUsMjI4OSw0MzM3LDg0MzMsMTY2MjVdKSxpPUludDMyQXJyYXkuZnJvbShbMiwyLDIsMiwzLDMsMywzLDQsNCw0LDQsNSw1LDUsNSw2LDYsNyw4LDksMTAsMTEsMTIsMTMsMjRdKSxvPUludDE2QXJyYXkuZnJvbShbMCwwLDAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDcsOCw5LDEwLDEyLDE0LDI0XSksbD1JbnQxNkFycmF5LmZyb20oWzAsMCwwLDAsMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNyw4LDksMTAsMjRdKSxmPW5ldyBJbnQxNkFycmF5KDI4MTYpOyFmdW5jdGlvbiB1bnBhY2tDb21tYW5kTG9va3VwVGFibGUoZSl7Y29uc3QgdD1uZXcgSW50MzJBcnJheSgyNCksbj1uZXcgSW50MzJBcnJheSgyNCk7blswXT0yO2ZvcihsZXQgZT0wO2U8MjM7KytlKXt0W2UrMV09dFtlXSsoMTw8b1tlXSk7bltlKzFdPW5bZV0rKDE8PGxbZV0pfWZvcihsZXQgYT0wO2E8NzA0OysrYSl7bGV0IHM9YT4+NixyPS00O2lmKHM+PTIpe3MtPTI7cj0wfWNvbnN0IGk9KDE3MDA2ND4+MipzJjMpPDwzfGE+PjMmNyxmPSgxNTYyMjg+PjIqcyYzKTw8M3w3JmEsYz1uW2ZdLGg9citNYXRoLm1pbihjLDUpLTIsdT00KmE7ZVt1XT1vW2ldfGxbZl08PDg7ZVt1KzFdPXRbaV07ZVt1KzJdPW5bZl07ZVt1KzNdPWh9fShmKTtmdW5jdGlvbiBsb2cyZmxvb3IoZSl7bGV0IHQ9LTEsbj0xNixhPWU7Zm9yKDtuPjA7KXtsZXQgZT1hPj5uO2lmKDAhPT1lKXt0Kz1uO2E9ZX1uPj49MX1yZXR1cm4gdCthfWZ1bmN0aW9uIGNhbGN1bGF0ZURpc3RhbmNlQWxwaGFiZXRTaXplKGUsdCxuKXtyZXR1cm4gMTYrdCsyKihuPDxlKX1mdW5jdGlvbiBjYWxjdWxhdGVEaXN0YW5jZUFscGhhYmV0TGltaXQoZSx0LG4sYSl7aWYodDxhKygyPDxuKSlyZXR1cm4gbWFrZUVycm9yKGUsLTIzKTtjb25zdCBzPTQrKHQtYT4+bikscj1sb2cyZmxvb3IocyktMTtyZXR1cm4oKHItMTw8MXxzPj5yJjEpLTE8PG4pKygxPDxuKSthKzE2fWZ1bmN0aW9uIGluaXRTdGF0ZShlKXtpZigwIT09ZS5ydW5uaW5nU3RhdGUpcmV0dXJuIG1ha2VFcnJvcihlLC0yNik7ZS5ibG9ja1RyZWVzPW5ldyBJbnQzMkFycmF5KDMwOTEpO2UuYmxvY2tUcmVlc1swXT03O2UuZGlzdFJiSWR4PTM7bGV0IHQ9Y2FsY3VsYXRlRGlzdGFuY2VBbHBoYWJldExpbWl0KGUsMjE0NzQ4MzY0NCwzLDEyMCk7aWYodDwwKXJldHVybiB0O2NvbnN0IG49dDtlLmRpc3RFeHRyYUJpdHM9bmV3IEludDhBcnJheShuKTtlLmRpc3RPZmZzZXQ9bmV3IEludDMyQXJyYXkobik7dD1mdW5jdGlvbiBpbml0Qml0UmVhZGVyKGUpe2UuYnl0ZUJ1ZmZlcj1uZXcgSW50OEFycmF5KDQxNjApO2UuYWNjdW11bGF0b3IzMj0wO2Uuc2hvcnRCdWZmZXI9bmV3IEludDE2QXJyYXkoMjA4MCk7ZS5iaXRPZmZzZXQ9MzI7ZS5oYWxmT2Zmc2V0PTIwNDg7ZS5lbmRPZlN0cmVhbVJlYWNoZWQ9MDtyZXR1cm4gcHJlcGFyZShlKX0oZSk7aWYodDwwKXJldHVybiB0O2UucnVubmluZ1N0YXRlPTE7cmV0dXJuIDB9ZnVuY3Rpb24gZGVjb2RlVmFyTGVuVW5zaWduZWRCeXRlKGUpe2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9aWYoMCE9PXJlYWRGZXdCaXRzKGUsMSkpe2NvbnN0IHQ9cmVhZEZld0JpdHMoZSwzKTtyZXR1cm4gMD09PXQ/MTpyZWFkRmV3Qml0cyhlLHQpKygxPDx0KX1yZXR1cm4gMH1mdW5jdGlvbiByZWFkU3ltYm9sKGUsdCxuKXtsZXQgYT1lW3RdO2NvbnN0IHM9bi5hY2N1bXVsYXRvcjMyPj4+bi5iaXRPZmZzZXQ7YSs9MjU1JnM7Y29uc3Qgcj1lW2FdPj4xNixpPTY1NTM1JmVbYV07aWYocjw9OCl7bi5iaXRPZmZzZXQrPXI7cmV0dXJuIGl9YSs9aTthKz0ocyYoMTw8ciktMSk+Pj44O24uYml0T2Zmc2V0Kz04KyhlW2FdPj4xNik7cmV0dXJuIDY1NTM1JmVbYV19ZnVuY3Rpb24gcmVhZEJsb2NrTGVuZ3RoKGUsdCxuKXtpZihuLmJpdE9mZnNldD49MTYpe24uYWNjdW11bGF0b3IzMj1uLnNob3J0QnVmZmVyW24uaGFsZk9mZnNldCsrXTw8MTZ8bi5hY2N1bXVsYXRvcjMyPj4+MTY7bi5iaXRPZmZzZXQtPTE2fWNvbnN0IGE9cmVhZFN5bWJvbChlLHQsbikscz1pW2FdO2lmKG4uYml0T2Zmc2V0Pj0xNil7bi5hY2N1bXVsYXRvcjMyPW4uc2hvcnRCdWZmZXJbbi5oYWxmT2Zmc2V0KytdPDwxNnxuLmFjY3VtdWxhdG9yMzI+Pj4xNjtuLmJpdE9mZnNldC09MTZ9cmV0dXJuIHJbYV0rKHM8PTE2P3JlYWRGZXdCaXRzKG4scyk6cmVhZE1hbnlCaXRzKG4scykpfWZ1bmN0aW9uIG1vdmVUb0Zyb250KGUsdCl7bGV0IG49dDtjb25zdCBhPWVbbl07Zm9yKDtuPjA7KXtlW25dPWVbbi0xXTtuLS19ZVswXT1hfWZ1bmN0aW9uIHJlYWRTaW1wbGVIdWZmbWFuQ29kZShlLHQsbixhLHMpe2NvbnN0IHI9bmV3IEludDMyQXJyYXkodCksaT1uZXcgSW50MzJBcnJheSg0KSxvPTErbG9nMmZsb29yKGUtMSksbD1yZWFkRmV3Qml0cyhzLDIpKzE7Zm9yKGxldCBlPTA7ZTxsOysrZSl7aWYocy5iaXRPZmZzZXQ+PTE2KXtzLmFjY3VtdWxhdG9yMzI9cy5zaG9ydEJ1ZmZlcltzLmhhbGZPZmZzZXQrK108PDE2fHMuYWNjdW11bGF0b3IzMj4+PjE2O3MuYml0T2Zmc2V0LT0xNn1jb25zdCBuPXJlYWRGZXdCaXRzKHMsbyk7aWYobj49dClyZXR1cm4gbWFrZUVycm9yKHMsLTE1KTtpW2VdPW59Y29uc3QgZj1mdW5jdGlvbiBjaGVja0R1cGVzKGUsdCxuKXtmb3IobGV0IGE9MDthPG4tMTsrK2EpZm9yKGxldCBzPWErMTtzPG47KytzKWlmKHRbYV09PT10W3NdKXJldHVybiBtYWtlRXJyb3IoZSwtNyk7cmV0dXJuIDB9KHMsaSxsKTtpZihmPDApcmV0dXJuIGY7bGV0IGM9bDs0PT09bCYmKGMrPXJlYWRGZXdCaXRzKHMsMSkpO3N3aXRjaChjKXtjYXNlIDE6cltpWzBdXT0xO2JyZWFrO2Nhc2UgMjpyW2lbMF1dPTE7cltpWzFdXT0xO2JyZWFrO2Nhc2UgMzpyW2lbMF1dPTE7cltpWzFdXT0yO3JbaVsyXV09MjticmVhaztjYXNlIDQ6cltpWzBdXT0yO3JbaVsxXV09MjtyW2lbMl1dPTI7cltpWzNdXT0yO2JyZWFrO2Nhc2UgNTpyW2lbMF1dPTE7cltpWzFdXT0yO3JbaVsyXV09MztyW2lbM11dPTN9cmV0dXJuIGJ1aWxkSHVmZm1hblRhYmxlKG4sYSw4LHIsdCl9ZnVuY3Rpb24gcmVhZENvbXBsZXhIdWZmbWFuQ29kZShlLG4sYSxyLGkpe2NvbnN0IG89bmV3IEludDMyQXJyYXkoZSksbD1uZXcgSW50MzJBcnJheSgxOCk7bGV0IGY9MzIsYz0wO2ZvcihsZXQgZT1uO2U8MTg7KytlKXtjb25zdCBuPXRbZV07aWYoaS5iaXRPZmZzZXQ+PTE2KXtpLmFjY3VtdWxhdG9yMzI9aS5zaG9ydEJ1ZmZlcltpLmhhbGZPZmZzZXQrK108PDE2fGkuYWNjdW11bGF0b3IzMj4+PjE2O2kuYml0T2Zmc2V0LT0xNn1jb25zdCBhPWkuYWNjdW11bGF0b3IzMj4+PmkuYml0T2Zmc2V0JjE1O2kuYml0T2Zmc2V0Kz1zW2FdPj4xNjtjb25zdCByPTY1NTM1JnNbYV07bFtuXT1yO2lmKDAhPT1yKXtmLT0zMj4+cjtjKys7aWYoZjw9MClicmVha319aWYoMCE9PWYmJjEhPT1jKXJldHVybiBtYWtlRXJyb3IoaSwtNCk7Y29uc3QgaD1mdW5jdGlvbiByZWFkSHVmZm1hbkNvZGVMZW5ndGhzKGUsdCxuLGEpe2xldCBzPTAscj04LGk9MCxvPTAsbD0zMjc2ODtjb25zdCBmPW5ldyBJbnQzMkFycmF5KDMzKTtidWlsZEh1ZmZtYW5UYWJsZShmLGYubGVuZ3RoLTEsNSxlLDE4KTtmb3IoO3M8dCYmbD4wOyl7aWYoYS5oYWxmT2Zmc2V0PjIwMzApe2NvbnN0IGU9cmVhZE1vcmVJbnB1dChhKTtpZihlPDApcmV0dXJuIGV9aWYoYS5iaXRPZmZzZXQ+PTE2KXthLmFjY3VtdWxhdG9yMzI9YS5zaG9ydEJ1ZmZlclthLmhhbGZPZmZzZXQrK108PDE2fGEuYWNjdW11bGF0b3IzMj4+PjE2O2EuYml0T2Zmc2V0LT0xNn1jb25zdCBlPWEuYWNjdW11bGF0b3IzMj4+PmEuYml0T2Zmc2V0JjMxO2EuYml0T2Zmc2V0Kz1mW2VdPj4xNjtjb25zdCBjPTY1NTM1JmZbZV07aWYoYzwxNil7aT0wO25bcysrXT1jO2lmKDAhPT1jKXtyPWM7bC09MzI3Njg+PmN9fWVsc2V7Y29uc3QgZT1jLTE0O2xldCBmPTA7MTY9PT1jJiYoZj1yKTtpZihvIT09Zil7aT0wO289Zn1jb25zdCBoPWk7aWYoaT4wKXtpLT0yO2k8PD1lfWlmKGEuYml0T2Zmc2V0Pj0xNil7YS5hY2N1bXVsYXRvcjMyPWEuc2hvcnRCdWZmZXJbYS5oYWxmT2Zmc2V0KytdPDwxNnxhLmFjY3VtdWxhdG9yMzI+Pj4xNjthLmJpdE9mZnNldC09MTZ9aSs9cmVhZEZld0JpdHMoYSxlKSszO2NvbnN0IHU9aS1oO2lmKHMrdT50KXJldHVybiBtYWtlRXJyb3IoYSwtMik7Zm9yKGxldCBlPTA7ZTx1OysrZSluW3MrK109bzswIT09byYmKGwtPXU8PDE1LW8pfX1pZigwIT09bClyZXR1cm4gbWFrZUVycm9yKGEsLTE4KTtuLmZpbGwoMCxzLHQpO3JldHVybiAwfShsLGUsbyxpKTtyZXR1cm4gaDwwP2g6YnVpbGRIdWZmbWFuVGFibGUoYSxyLDgsbyxlKX1mdW5jdGlvbiByZWFkSHVmZm1hbkNvZGUoZSx0LG4sYSxzKXtpZihzLmhhbGZPZmZzZXQ+MjAzMCl7Y29uc3QgZT1yZWFkTW9yZUlucHV0KHMpO2lmKGU8MClyZXR1cm4gZX1pZihzLmJpdE9mZnNldD49MTYpe3MuYWNjdW11bGF0b3IzMj1zLnNob3J0QnVmZmVyW3MuaGFsZk9mZnNldCsrXTw8MTZ8cy5hY2N1bXVsYXRvcjMyPj4+MTY7cy5iaXRPZmZzZXQtPTE2fWNvbnN0IHI9cmVhZEZld0JpdHMocywyKTtyZXR1cm4gMT09PXI/cmVhZFNpbXBsZUh1ZmZtYW5Db2RlKGUsdCxuLGEscyk6cmVhZENvbXBsZXhIdWZmbWFuQ29kZSh0LHIsbixhLHMpfWZ1bmN0aW9uIGRlY29kZUNvbnRleHRNYXAodCxuLGEpe2xldCBzO2lmKGEuaGFsZk9mZnNldD4yMDMwKXtzPXJlYWRNb3JlSW5wdXQoYSk7aWYoczwwKXJldHVybiBzfWNvbnN0IHI9ZGVjb2RlVmFyTGVuVW5zaWduZWRCeXRlKGEpKzE7aWYoMT09PXIpe24uZmlsbCgwLDAsdCk7cmV0dXJuIHJ9aWYoYS5iaXRPZmZzZXQ+PTE2KXthLmFjY3VtdWxhdG9yMzI9YS5zaG9ydEJ1ZmZlclthLmhhbGZPZmZzZXQrK108PDE2fGEuYWNjdW11bGF0b3IzMj4+PjE2O2EuYml0T2Zmc2V0LT0xNn1sZXQgaT0wOzAhPT1yZWFkRmV3Qml0cyhhLDEpJiYoaT1yZWFkRmV3Qml0cyhhLDQpKzEpO2NvbnN0IG89citpLGw9ZVtvKzMxPj41XSxmPW5ldyBJbnQzMkFycmF5KGwrMSksYz1mLmxlbmd0aC0xO3M9cmVhZEh1ZmZtYW5Db2RlKG8sbyxmLGMsYSk7aWYoczwwKXJldHVybiBzO2xldCBoPTA7Zm9yKDtoPHQ7KXtpZihhLmhhbGZPZmZzZXQ+MjAzMCl7cz1yZWFkTW9yZUlucHV0KGEpO2lmKHM8MClyZXR1cm4gc31pZihhLmJpdE9mZnNldD49MTYpe2EuYWNjdW11bGF0b3IzMj1hLnNob3J0QnVmZmVyW2EuaGFsZk9mZnNldCsrXTw8MTZ8YS5hY2N1bXVsYXRvcjMyPj4+MTY7YS5iaXRPZmZzZXQtPTE2fWNvbnN0IGU9cmVhZFN5bWJvbChmLGMsYSk7aWYoMD09PWUpe25baF09MDtoKyt9ZWxzZSBpZihlPD1pKXtpZihhLmJpdE9mZnNldD49MTYpe2EuYWNjdW11bGF0b3IzMj1hLnNob3J0QnVmZmVyW2EuaGFsZk9mZnNldCsrXTw8MTZ8YS5hY2N1bXVsYXRvcjMyPj4+MTY7YS5iaXRPZmZzZXQtPTE2fWxldCBzPSgxPDxlKStyZWFkRmV3Qml0cyhhLGUpO2Zvcig7MCE9PXM7KXtpZihoPj10KXJldHVybiBtYWtlRXJyb3IoYSwtMyk7bltoXT0wO2grKztzLS19fWVsc2V7bltoXT1lLWk7aCsrfX1pZihhLmJpdE9mZnNldD49MTYpe2EuYWNjdW11bGF0b3IzMj1hLnNob3J0QnVmZmVyW2EuaGFsZk9mZnNldCsrXTw8MTZ8YS5hY2N1bXVsYXRvcjMyPj4+MTY7YS5iaXRPZmZzZXQtPTE2fTE9PT1yZWFkRmV3Qml0cyhhLDEpJiZmdW5jdGlvbiBpbnZlcnNlTW92ZVRvRnJvbnRUcmFuc2Zvcm0oZSx0KXtjb25zdCBuPW5ldyBJbnQzMkFycmF5KDI1Nik7Zm9yKGxldCBlPTA7ZTwyNTY7KytlKW5bZV09ZTtmb3IobGV0IGE9MDthPHQ7KythKXtjb25zdCB0PTI1NSZlW2FdO2VbYV09blt0XTswIT09dCYmbW92ZVRvRnJvbnQobix0KX19KG4sdCk7cmV0dXJuIHJ9ZnVuY3Rpb24gZGVjb2RlQmxvY2tUeXBlQW5kTGVuZ3RoKGUsdCxuKXtjb25zdCBhPWUucmluZ3Mscz00KzIqdDtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fWxldCByPXJlYWRTeW1ib2woZS5ibG9ja1RyZWVzLDIqdCxlKTtjb25zdCBpPXJlYWRCbG9ja0xlbmd0aChlLmJsb2NrVHJlZXMsMip0KzEsZSk7MT09PXI/cj1hW3MrMV0rMTowPT09cj9yPWFbc106ci09MjtyPj1uJiYoci09bik7YVtzXT1hW3MrMV07YVtzKzFdPXI7cmV0dXJuIGl9ZnVuY3Rpb24gZGVjb2RlTGl0ZXJhbEJsb2NrU3dpdGNoKGUpe2UubGl0ZXJhbEJsb2NrTGVuZ3RoPWRlY29kZUJsb2NrVHlwZUFuZExlbmd0aChlLDAsZS5udW1MaXRlcmFsQmxvY2tUeXBlcyk7Y29uc3QgdD1lLnJpbmdzWzVdO2UuY29udGV4dE1hcFNsaWNlPXQ8PDY7ZS5saXRlcmFsVHJlZUlkeD0yNTUmZS5jb250ZXh0TWFwW2UuY29udGV4dE1hcFNsaWNlXTtjb25zdCBuPWUuY29udGV4dE1vZGVzW3RdO2UuY29udGV4dExvb2t1cE9mZnNldDE9bjw8OTtlLmNvbnRleHRMb29rdXBPZmZzZXQyPWUuY29udGV4dExvb2t1cE9mZnNldDErMjU2fWZ1bmN0aW9uIGRlY29kZUNvbW1hbmRCbG9ja1N3aXRjaChlKXtlLmNvbW1hbmRCbG9ja0xlbmd0aD1kZWNvZGVCbG9ja1R5cGVBbmRMZW5ndGgoZSwxLGUubnVtQ29tbWFuZEJsb2NrVHlwZXMpO2UuY29tbWFuZFRyZWVJZHg9ZS5yaW5nc1s3XX1mdW5jdGlvbiBkZWNvZGVEaXN0YW5jZUJsb2NrU3dpdGNoKGUpe2UuZGlzdGFuY2VCbG9ja0xlbmd0aD1kZWNvZGVCbG9ja1R5cGVBbmRMZW5ndGgoZSwyLGUubnVtRGlzdGFuY2VCbG9ja1R5cGVzKTtlLmRpc3RDb250ZXh0TWFwU2xpY2U9ZS5yaW5nc1s5XTw8Mn1mdW5jdGlvbiByZWFkTmV4dE1ldGFibG9ja0hlYWRlcihlKXtpZigwIT09ZS5pbnB1dEVuZCl7ZS5uZXh0UnVubmluZ1N0YXRlPTEwO2UucnVubmluZ1N0YXRlPTEyO3JldHVybiAwfWUubGl0ZXJhbFRyZWVHcm91cD1uZXcgSW50MzJBcnJheSgwKTtlLmNvbW1hbmRUcmVlR3JvdXA9bmV3IEludDMyQXJyYXkoMCk7ZS5kaXN0YW5jZVRyZWVHcm91cD1uZXcgSW50MzJBcnJheSgwKTtsZXQgdDtpZihlLmhhbGZPZmZzZXQ+MjAzMCl7dD1yZWFkTW9yZUlucHV0KGUpO2lmKHQ8MClyZXR1cm4gdH10PWZ1bmN0aW9uIGRlY29kZU1ldGFCbG9ja0xlbmd0aChlKXtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fWUuaW5wdXRFbmQ9cmVhZEZld0JpdHMoZSwxKTtlLm1ldGFCbG9ja0xlbmd0aD0wO2UuaXNVbmNvbXByZXNzZWQ9MDtlLmlzTWV0YWRhdGE9MDtpZigwIT09ZS5pbnB1dEVuZCYmMCE9PXJlYWRGZXdCaXRzKGUsMSkpcmV0dXJuIDA7Y29uc3QgdD1yZWFkRmV3Qml0cyhlLDIpKzQ7aWYoNz09PXQpe2UuaXNNZXRhZGF0YT0xO2lmKDAhPT1yZWFkRmV3Qml0cyhlLDEpKXJldHVybiBtYWtlRXJyb3IoZSwtNik7Y29uc3QgdD1yZWFkRmV3Qml0cyhlLDIpO2lmKDA9PT10KXJldHVybiAwO2ZvcihsZXQgbj0wO248dDsrK24pe2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9Y29uc3QgYT1yZWFkRmV3Qml0cyhlLDgpO2lmKDA9PT1hJiZuKzE9PT10JiZ0PjEpcmV0dXJuIG1ha2VFcnJvcihlLC04KTtlLm1ldGFCbG9ja0xlbmd0aCs9YTw8OCpufX1lbHNlIGZvcihsZXQgbj0wO248dDsrK24pe2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9Y29uc3QgYT1yZWFkRmV3Qml0cyhlLDQpO2lmKDA9PT1hJiZuKzE9PT10JiZ0PjQpcmV0dXJuIG1ha2VFcnJvcihlLC04KTtlLm1ldGFCbG9ja0xlbmd0aCs9YTw8NCpufWUubWV0YUJsb2NrTGVuZ3RoKys7MD09PWUuaW5wdXRFbmQmJihlLmlzVW5jb21wcmVzc2VkPXJlYWRGZXdCaXRzKGUsMSkpO3JldHVybiAwfShlKTtpZih0PDApcmV0dXJuIHQ7aWYoMD09PWUubWV0YUJsb2NrTGVuZ3RoJiYwPT09ZS5pc01ldGFkYXRhKXJldHVybiAwO2lmKDAhPT1lLmlzVW5jb21wcmVzc2VkfHwwIT09ZS5pc01ldGFkYXRhKXt0PWp1bXBUb0J5dGVCb3VuZGFyeShlKTtpZih0PDApcmV0dXJuIHQ7MD09PWUuaXNNZXRhZGF0YT9lLnJ1bm5pbmdTdGF0ZT02OmUucnVubmluZ1N0YXRlPTV9ZWxzZSBlLnJ1bm5pbmdTdGF0ZT0zO2lmKDAhPT1lLmlzTWV0YWRhdGEpcmV0dXJuIDA7ZS5leHBlY3RlZFRvdGFsU2l6ZSs9ZS5tZXRhQmxvY2tMZW5ndGg7ZS5leHBlY3RlZFRvdGFsU2l6ZT4xPDwzMCYmKGUuZXhwZWN0ZWRUb3RhbFNpemU9MTw8MzApO2UucmluZ0J1ZmZlclNpemU8ZS5tYXhSaW5nQnVmZmVyU2l6ZSYmZnVuY3Rpb24gbWF5YmVSZWFsbG9jYXRlUmluZ0J1ZmZlcihlKXtsZXQgdD1lLm1heFJpbmdCdWZmZXJTaXplO2lmKHQ+ZS5leHBlY3RlZFRvdGFsU2l6ZSl7Y29uc3Qgbj1lLmV4cGVjdGVkVG90YWxTaXplO2Zvcig7dD4+MT5uOyl0Pj49MTswPT09ZS5pbnB1dEVuZCYmdDwxNjM4NCYmZS5tYXhSaW5nQnVmZmVyU2l6ZT49MTYzODQmJih0PTE2Mzg0KX1pZih0PD1lLnJpbmdCdWZmZXJTaXplKXJldHVybjtjb25zdCBuPW5ldyBJbnQ4QXJyYXkodCszNyksYT1lLnJpbmdCdWZmZXI7MCE9PWEubGVuZ3RoJiZuLnNldChhLnN1YmFycmF5KDAsZS5yaW5nQnVmZmVyU2l6ZSksMCk7ZS5yaW5nQnVmZmVyPW47ZS5yaW5nQnVmZmVyU2l6ZT10fShlKTtyZXR1cm4gMH1mdW5jdGlvbiByZWFkTWV0YWJsb2NrUGFydGl0aW9uKGUsdCxuKXtsZXQgYT1lLmJsb2NrVHJlZXNbMip0XTtpZihuPD0xKXtlLmJsb2NrVHJlZXNbMip0KzFdPWE7ZS5ibG9ja1RyZWVzWzIqdCsyXT1hO3JldHVybiAxPDwyOH1jb25zdCBzPW4rMjtsZXQgcj1yZWFkSHVmZm1hbkNvZGUocyxzLGUuYmxvY2tUcmVlcywyKnQsZSk7aWYocjwwKXJldHVybiByO2ErPXI7ZS5ibG9ja1RyZWVzWzIqdCsxXT1hO3I9cmVhZEh1ZmZtYW5Db2RlKDI2LDI2LGUuYmxvY2tUcmVlcywyKnQrMSxlKTtpZihyPDApcmV0dXJuIHI7YSs9cjtlLmJsb2NrVHJlZXNbMip0KzJdPWE7cmV0dXJuIHJlYWRCbG9ja0xlbmd0aChlLmJsb2NrVHJlZXMsMip0KzEsZSl9ZnVuY3Rpb24gcmVhZE1ldGFibG9ja0h1ZmZtYW5Db2Rlc0FuZENvbnRleHRNYXBzKGUpe2UubnVtTGl0ZXJhbEJsb2NrVHlwZXM9ZGVjb2RlVmFyTGVuVW5zaWduZWRCeXRlKGUpKzE7bGV0IHQ9cmVhZE1ldGFibG9ja1BhcnRpdGlvbihlLDAsZS5udW1MaXRlcmFsQmxvY2tUeXBlcyk7aWYodDwwKXJldHVybiB0O2UubGl0ZXJhbEJsb2NrTGVuZ3RoPXQ7ZS5udW1Db21tYW5kQmxvY2tUeXBlcz1kZWNvZGVWYXJMZW5VbnNpZ25lZEJ5dGUoZSkrMTt0PXJlYWRNZXRhYmxvY2tQYXJ0aXRpb24oZSwxLGUubnVtQ29tbWFuZEJsb2NrVHlwZXMpO2lmKHQ8MClyZXR1cm4gdDtlLmNvbW1hbmRCbG9ja0xlbmd0aD10O2UubnVtRGlzdGFuY2VCbG9ja1R5cGVzPWRlY29kZVZhckxlblVuc2lnbmVkQnl0ZShlKSsxO3Q9cmVhZE1ldGFibG9ja1BhcnRpdGlvbihlLDIsZS5udW1EaXN0YW5jZUJsb2NrVHlwZXMpO2lmKHQ8MClyZXR1cm4gdDtlLmRpc3RhbmNlQmxvY2tMZW5ndGg9dDtpZihlLmhhbGZPZmZzZXQ+MjAzMCl7dD1yZWFkTW9yZUlucHV0KGUpO2lmKHQ8MClyZXR1cm4gdH1pZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fWUuZGlzdGFuY2VQb3N0Zml4Qml0cz1yZWFkRmV3Qml0cyhlLDIpO2UubnVtRGlyZWN0RGlzdGFuY2VDb2Rlcz1yZWFkRmV3Qml0cyhlLDQpPDxlLmRpc3RhbmNlUG9zdGZpeEJpdHM7ZS5jb250ZXh0TW9kZXM9bmV3IEludDhBcnJheShlLm51bUxpdGVyYWxCbG9ja1R5cGVzKTtsZXQgbj0wO2Zvcig7bjxlLm51bUxpdGVyYWxCbG9ja1R5cGVzOyl7Y29uc3QgYT1NYXRoLm1pbihuKzk2LGUubnVtTGl0ZXJhbEJsb2NrVHlwZXMpO2Zvcig7bjxhOyl7aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1lLmNvbnRleHRNb2Rlc1tuXT1yZWFkRmV3Qml0cyhlLDIpO24rK31pZihlLmhhbGZPZmZzZXQ+MjAzMCl7dD1yZWFkTW9yZUlucHV0KGUpO2lmKHQ8MClyZXR1cm4gdH19Y29uc3QgYT1lLm51bUxpdGVyYWxCbG9ja1R5cGVzPDw2O2UuY29udGV4dE1hcD1uZXcgSW50OEFycmF5KGEpO3Q9ZGVjb2RlQ29udGV4dE1hcChhLGUuY29udGV4dE1hcCxlKTtpZih0PDApcmV0dXJuIHQ7Y29uc3Qgcz10O2UudHJpdmlhbExpdGVyYWxDb250ZXh0PTE7Zm9yKGxldCB0PTA7dDxhOysrdClpZihlLmNvbnRleHRNYXBbdF0hPT10Pj42KXtlLnRyaXZpYWxMaXRlcmFsQ29udGV4dD0wO2JyZWFrfWUuZGlzdENvbnRleHRNYXA9bmV3IEludDhBcnJheShlLm51bURpc3RhbmNlQmxvY2tUeXBlczw8Mik7dD1kZWNvZGVDb250ZXh0TWFwKGUubnVtRGlzdGFuY2VCbG9ja1R5cGVzPDwyLGUuZGlzdENvbnRleHRNYXAsZSk7aWYodDwwKXJldHVybiB0O2NvbnN0IHI9dDtlLmxpdGVyYWxUcmVlR3JvdXA9bmV3IEludDMyQXJyYXkoaHVmZm1hblRyZWVHcm91cEFsbG9jU2l6ZSgyNTYscykpO3Q9ZGVjb2RlSHVmZm1hblRyZWVHcm91cCgyNTYsMjU2LHMsZSxlLmxpdGVyYWxUcmVlR3JvdXApO2lmKHQ8MClyZXR1cm4gdDtlLmNvbW1hbmRUcmVlR3JvdXA9bmV3IEludDMyQXJyYXkoaHVmZm1hblRyZWVHcm91cEFsbG9jU2l6ZSg3MDQsZS5udW1Db21tYW5kQmxvY2tUeXBlcykpO3Q9ZGVjb2RlSHVmZm1hblRyZWVHcm91cCg3MDQsNzA0LGUubnVtQ29tbWFuZEJsb2NrVHlwZXMsZSxlLmNvbW1hbmRUcmVlR3JvdXApO2lmKHQ8MClyZXR1cm4gdDtsZXQgaT1jYWxjdWxhdGVEaXN0YW5jZUFscGhhYmV0U2l6ZShlLmRpc3RhbmNlUG9zdGZpeEJpdHMsZS5udW1EaXJlY3REaXN0YW5jZUNvZGVzLDI0KSxvPWk7aWYoMT09PWUuaXNMYXJnZVdpbmRvdyl7aT1jYWxjdWxhdGVEaXN0YW5jZUFscGhhYmV0U2l6ZShlLmRpc3RhbmNlUG9zdGZpeEJpdHMsZS5udW1EaXJlY3REaXN0YW5jZUNvZGVzLDYyKTt0PWNhbGN1bGF0ZURpc3RhbmNlQWxwaGFiZXRMaW1pdChlLDIxNDc0ODM2NDQsZS5kaXN0YW5jZVBvc3RmaXhCaXRzLGUubnVtRGlyZWN0RGlzdGFuY2VDb2Rlcyk7aWYodDwwKXJldHVybiB0O289dH1lLmRpc3RhbmNlVHJlZUdyb3VwPW5ldyBJbnQzMkFycmF5KGh1ZmZtYW5UcmVlR3JvdXBBbGxvY1NpemUobyxyKSk7dD1kZWNvZGVIdWZmbWFuVHJlZUdyb3VwKGksbyxyLGUsZS5kaXN0YW5jZVRyZWVHcm91cCk7aWYodDwwKXJldHVybiB0OyFmdW5jdGlvbiBjYWxjdWxhdGVEaXN0YW5jZUx1dChlLHQpe2NvbnN0IG49ZS5kaXN0RXh0cmFCaXRzLGE9ZS5kaXN0T2Zmc2V0LHM9ZS5kaXN0YW5jZVBvc3RmaXhCaXRzLHI9ZS5udW1EaXJlY3REaXN0YW5jZUNvZGVzLGk9MTw8cztsZXQgbz0xLGw9MCxmPTE2O2ZvcihsZXQgZT0wO2U8cjsrK2Upe25bZl09MDthW2ZdPWUrMTsrK2Z9Zm9yKDtmPHQ7KXtjb25zdCBlPXIrKCgyK2w8PG8pLTQ8PHMpKzE7Zm9yKGxldCB0PTA7dDxpOysrdCl7bltmXT1vO2FbZl09ZSt0OysrZn1vKz1sO2xePTF9fShlLG8pO2UuY29udGV4dE1hcFNsaWNlPTA7ZS5kaXN0Q29udGV4dE1hcFNsaWNlPTA7ZS5jb250ZXh0TG9va3VwT2Zmc2V0MT01MTIqZS5jb250ZXh0TW9kZXNbMF07ZS5jb250ZXh0TG9va3VwT2Zmc2V0Mj1lLmNvbnRleHRMb29rdXBPZmZzZXQxKzI1NjtlLmxpdGVyYWxUcmVlSWR4PTA7ZS5jb21tYW5kVHJlZUlkeD0wO2UucmluZ3NbNF09MTtlLnJpbmdzWzVdPTA7ZS5yaW5nc1s2XT0xO2UucmluZ3NbN109MDtlLnJpbmdzWzhdPTE7ZS5yaW5nc1s5XT0wO3JldHVybiAwfWZ1bmN0aW9uIGNvcHlVbmNvbXByZXNzZWREYXRhKGUpe2NvbnN0IHQ9ZS5yaW5nQnVmZmVyO2xldCBuO2lmKGUubWV0YUJsb2NrTGVuZ3RoPD0wKXtuPXJlbG9hZChlKTtpZihuPDApcmV0dXJuIG47ZS5ydW5uaW5nU3RhdGU9MjtyZXR1cm4gMH1jb25zdCBhPU1hdGgubWluKGUucmluZ0J1ZmZlclNpemUtZS5wb3MsZS5tZXRhQmxvY2tMZW5ndGgpO249ZnVuY3Rpb24gY29weVJhd0J5dGVzKGUsdCxuLGEpe2xldCBzPW4scj1hO2lmKDcmZS5iaXRPZmZzZXQpcmV0dXJuIG1ha2VFcnJvcihlLC0zMCk7Zm9yKDszMiE9PWUuYml0T2Zmc2V0JiYwIT09cjspe3RbcysrXT1lLmFjY3VtdWxhdG9yMzI+Pj5lLmJpdE9mZnNldDtlLmJpdE9mZnNldCs9ODtyLS19aWYoMD09PXIpcmV0dXJuIDA7Y29uc3QgaT1NYXRoLm1pbihoYWxmQXZhaWxhYmxlKGUpLHI+PjEpO2lmKGk+MCl7Y29uc3Qgbj1lLmhhbGZPZmZzZXQ8PDEsYT1pPDwxO3Quc2V0KGUuYnl0ZUJ1ZmZlci5zdWJhcnJheShuLG4rYSkscyk7cys9YTtyLT1hO2UuaGFsZk9mZnNldCs9aX1pZigwPT09cilyZXR1cm4gMDtpZihoYWxmQXZhaWxhYmxlKGUpPjApe2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9Zm9yKDswIT09cjspe3RbcysrXT1lLmFjY3VtdWxhdG9yMzI+Pj5lLmJpdE9mZnNldDtlLmJpdE9mZnNldCs9ODtyLS19cmV0dXJuIGNoZWNrSGVhbHRoKGUsMCl9Zm9yKDtyPjA7KXtjb25zdCBuPXJlYWRJbnB1dChlLHQscyxyKTtpZihuPC0xKXJldHVybiBuO2lmKG48PTApcmV0dXJuIG1ha2VFcnJvcihlLC0xNik7cys9bjtyLT1ufXJldHVybiAwfShlLHQsZS5wb3MsYSk7aWYobjwwKXJldHVybiBuO2UubWV0YUJsb2NrTGVuZ3RoLT1hO2UucG9zKz1hO2lmKGUucG9zPT09ZS5yaW5nQnVmZmVyU2l6ZSl7ZS5uZXh0UnVubmluZ1N0YXRlPTY7ZS5ydW5uaW5nU3RhdGU9MTI7cmV0dXJuIDB9bj1yZWxvYWQoZSk7aWYobjwwKXJldHVybiBuO2UucnVubmluZ1N0YXRlPTI7cmV0dXJuIDB9ZnVuY3Rpb24gd3JpdGVSaW5nQnVmZmVyKGUpe2NvbnN0IHQ9TWF0aC5taW4oZS5vdXRwdXRMZW5ndGgtZS5vdXRwdXRVc2VkLGUucmluZ0J1ZmZlckJ5dGVzUmVhZHktZS5yaW5nQnVmZmVyQnl0ZXNXcml0dGVuKTtpZigwIT09dCl7ZS5vdXRwdXQuc2V0KGUucmluZ0J1ZmZlci5zdWJhcnJheShlLnJpbmdCdWZmZXJCeXRlc1dyaXR0ZW4sZS5yaW5nQnVmZmVyQnl0ZXNXcml0dGVuK3QpLGUub3V0cHV0T2Zmc2V0K2Uub3V0cHV0VXNlZCk7ZS5vdXRwdXRVc2VkKz10O2UucmluZ0J1ZmZlckJ5dGVzV3JpdHRlbis9dH1yZXR1cm4gZS5vdXRwdXRVc2VkPGUub3V0cHV0TGVuZ3RoPzA6Mn1mdW5jdGlvbiBodWZmbWFuVHJlZUdyb3VwQWxsb2NTaXplKHQsbil7cmV0dXJuIG4rbiplW3QrMzE+PjVdfWZ1bmN0aW9uIGRlY29kZUh1ZmZtYW5UcmVlR3JvdXAoZSx0LG4sYSxzKXtsZXQgcj1uO2ZvcihsZXQgaT0wO2k8bjsrK2kpe3NbaV09cjtjb25zdCBuPXJlYWRIdWZmbWFuQ29kZShlLHQscyxpLGEpO2lmKG48MClyZXR1cm4gbjtyKz1ufXJldHVybiAwfWZ1bmN0aW9uIGNhbGN1bGF0ZUZlbmNlKGUpe2xldCB0PWUucmluZ0J1ZmZlclNpemU7MCE9PWUuaXNFYWdlciYmKHQ9TWF0aC5taW4odCxlLnJpbmdCdWZmZXJCeXRlc1dyaXR0ZW4rZS5vdXRwdXRMZW5ndGgtZS5vdXRwdXRVc2VkKSk7cmV0dXJuIHR9ZnVuY3Rpb24gZG9Vc2VEaWN0aW9uYXJ5KGUsdCl7aWYoZS5kaXN0YW5jZT4yMTQ3NDgzNjQ0KXJldHVybiBtYWtlRXJyb3IoZSwtOSk7Y29uc3Qgbj1lLmRpc3RhbmNlLWUubWF4RGlzdGFuY2UtMS1lLmNkVG90YWxTaXplO2lmKG48MCl7Y29uc3QgdD1mdW5jdGlvbiBpbml0aWFsaXplQ29tcG91bmREaWN0aW9uYXJ5Q29weShlLHQsbil7LTE9PT1lLmNkQmxvY2tCaXRzJiZmdW5jdGlvbiBpbml0aWFsaXplQ29tcG91bmREaWN0aW9uYXJ5KGUpe2UuY2RCbG9ja01hcD1uZXcgSW50OEFycmF5KDI1Nik7bGV0IHQ9ODtmb3IoO2UuY2RUb3RhbFNpemUtMT4+dDspdCsrO3QtPTg7ZS5jZEJsb2NrQml0cz10O2xldCBuPTAsYT0wO2Zvcig7bjxlLmNkVG90YWxTaXplOyl7Zm9yKDtlLmNkQ2h1bmtPZmZzZXRzW2ErMV08bjspYSsrO2UuY2RCbG9ja01hcFtuPj50XT1hO24rPTE8PHR9fShlKTtsZXQgYT1lLmNkQmxvY2tNYXBbdD4+ZS5jZEJsb2NrQml0c107Zm9yKDt0Pj1lLmNkQ2h1bmtPZmZzZXRzW2ErMV07KWErKztpZihlLmNkVG90YWxTaXplPnQrbilyZXR1cm4gbWFrZUVycm9yKGUsLTkpO2UuZGlzdFJiSWR4PWUuZGlzdFJiSWR4KzEmMztlLnJpbmdzW2UuZGlzdFJiSWR4XT1lLmRpc3RhbmNlO2UubWV0YUJsb2NrTGVuZ3RoLT1uO2UuY2RCckluZGV4PWE7ZS5jZEJyT2Zmc2V0PXQtZS5jZENodW5rT2Zmc2V0c1thXTtlLmNkQnJMZW5ndGg9bjtlLmNkQnJDb3BpZWQ9MDtyZXR1cm4gMH0oZSwtbi0xLGUuY29weUxlbmd0aCk7aWYodDwwKXJldHVybiB0O2UucnVubmluZ1N0YXRlPTE0fWVsc2V7Y29uc3QgYT11LHM9ZS5jb3B5TGVuZ3RoO2lmKHM+MzEpcmV0dXJuIG1ha2VFcnJvcihlLC05KTtjb25zdCByPXBbc107aWYoMD09PXIpcmV0dXJuIG1ha2VFcnJvcihlLC05KTtsZXQgaT1tW3NdO2NvbnN0IG89bj4+cjtpKz0obiYoMTw8ciktMSkqcztjb25zdCBsPWM7aWYobz49bC5udW1UcmFuc2Zvcm1zKXJldHVybiBtYWtlRXJyb3IoZSwtOSk7Y29uc3QgZj1mdW5jdGlvbiB0cmFuc2Zvcm1EaWN0aW9uYXJ5V29yZChlLHQsbixhLHMscixpKXtsZXQgbz10O2NvbnN0IGw9ci50cmlwbGV0cyxmPXIucHJlZml4U3VmZml4U3RvcmFnZSxjPXIucHJlZml4U3VmZml4SGVhZHMsaD0zKmksdT1sW2hdLG09bFtoKzFdLHA9bFtoKzJdO2xldCBkPWNbdV07Y29uc3QgZz1jW3UrMV07bGV0IGI9Y1twXTtjb25zdCB3PWNbcCsxXTtsZXQgaj1tLTExLGs9bTsoajwxfHxqPjkpJiYoaj0wKTsoazwxfHxrPjkpJiYoaz0wKTtmb3IoO2QhPT1nOyllW28rK109ZltkKytdO2xldCB5PXM7aj55JiYoaj15KTtsZXQgcT1hK2o7eS09ajt5LT1rO2xldCB2PXk7Zm9yKDt2PjA7KXtlW28rK109bltxKytdO3YtLX1pZigxMD09PW18fDExPT09bSl7bGV0IHQ9by15OzEwPT09bSYmKHk9MSk7Zm9yKDt5PjA7KXtjb25zdCBuPTI1NSZlW3RdO2lmKG48MTkyKXtuPj05NyYmbjw9MTIyJiYoZVt0XT0zMl5lW3RdKTt0Kz0xO3ktPTF9ZWxzZSBpZihuPDIyNCl7ZVt0KzFdPTMyXmVbdCsxXTt0Kz0yO3ktPTJ9ZWxzZXtlW3QrMl09NV5lW3QrMl07dCs9Mzt5LT0zfX19ZWxzZSBpZigyMT09PW18fDIyPT09bSl7bGV0IHQ9by15O2NvbnN0IG49ci5wYXJhbXNbaV07bGV0IGE9MTY3NzcyMTYtKDMyNzY4Jm4pKygzMjc2NyZuKTtmb3IoO3k+MDspe2xldCBuPTE7Y29uc3Qgcz0yNTUmZVt0XTtpZihzPDEyOCl7YSs9cztlW3RdPTEyNyZhfWVsc2UgaWYoczwxOTIpO2Vsc2UgaWYoczwyMjQpaWYoeT49Mil7Y29uc3Qgcj1lW3QrMV07YSs9NjMmcnwoMzEmcyk8PDY7ZVt0XT0xOTJ8YT4+NiYzMTtlW3QrMV09MTkyJnJ8NjMmYTtuPTJ9ZWxzZSBuPXk7ZWxzZSBpZihzPDI0MClpZih5Pj0zKXtjb25zdCByPWVbdCsxXSxpPWVbdCsyXTthKz02MyZpfCg2MyZyKTw8NnwoMTUmcyk8PDEyO2VbdF09MjI0fGE+PjEyJjE1O2VbdCsxXT0xOTImcnxhPj42JjYzO2VbdCsyXT0xOTImaXw2MyZhO249M31lbHNlIG49eTtlbHNlIGlmKHM8MjQ4KWlmKHk+PTQpe2NvbnN0IHI9ZVt0KzFdLGk9ZVt0KzJdLG89ZVt0KzNdO2ErPTYzJm98KDYzJmkpPDw2fCg2MyZyKTw8MTJ8KDcmcyk8PDE4O2VbdF09MjQwfGE+PjE4Jjc7ZVt0KzFdPTE5MiZyfGE+PjEyJjYzO2VbdCsyXT0xOTImaXxhPj42JjYzO2VbdCszXT0xOTImb3w2MyZhO249NH1lbHNlIG49eTt0Kz1uO3ktPW47MjE9PT1tJiYoeT0wKX19Zm9yKDtiIT09dzspZVtvKytdPWZbYisrXTtyZXR1cm4gby10fShlLnJpbmdCdWZmZXIsZS5wb3MsYSxpLHMsbCxvKTtlLnBvcys9ZjtlLm1ldGFCbG9ja0xlbmd0aC09ZjtpZihlLnBvcz49dCl7ZS5uZXh0UnVubmluZ1N0YXRlPTQ7ZS5ydW5uaW5nU3RhdGU9MTI7cmV0dXJuIDB9ZS5ydW5uaW5nU3RhdGU9NH1yZXR1cm4gMH1mdW5jdGlvbiBjb3B5RnJvbUNvbXBvdW5kRGljdGlvbmFyeShlLHQpe2xldCBuPWUucG9zO2NvbnN0IGE9bjtmb3IoO2UuY2RCckxlbmd0aCE9PWUuY2RCckNvcGllZDspe2NvbnN0IGE9dC1uLHM9ZS5jZENodW5rT2Zmc2V0c1tlLmNkQnJJbmRleCsxXS1lLmNkQ2h1bmtPZmZzZXRzW2UuY2RCckluZGV4XS1lLmNkQnJPZmZzZXQ7bGV0IHI9ZS5jZEJyTGVuZ3RoLWUuY2RCckNvcGllZDtyPnMmJihyPXMpO3I+YSYmKHI9YSk7ZS5yaW5nQnVmZmVyLnNldChlLmNkQ2h1bmtzW2UuY2RCckluZGV4XS5zdWJhcnJheShlLmNkQnJPZmZzZXQsZS5jZEJyT2Zmc2V0K3IpLG4pO24rPXI7ZS5jZEJyT2Zmc2V0Kz1yO2UuY2RCckNvcGllZCs9cjtpZihyPT09cyl7ZS5jZEJySW5kZXgrKztlLmNkQnJPZmZzZXQ9MH1pZihuPj10KWJyZWFrfXJldHVybiBuLWF9ZnVuY3Rpb24gZGVjb21wcmVzcyhlKXtsZXQgdDtpZigwPT09ZS5ydW5uaW5nU3RhdGUpcmV0dXJuIG1ha2VFcnJvcihlLC0yNSk7aWYoZS5ydW5uaW5nU3RhdGU8MClyZXR1cm4gbWFrZUVycm9yKGUsLTI4KTtpZigxMT09PWUucnVubmluZ1N0YXRlKXJldHVybiBtYWtlRXJyb3IoZSwtMjIpO2lmKDE9PT1lLnJ1bm5pbmdTdGF0ZSl7Y29uc3QgdD1mdW5jdGlvbiBkZWNvZGVXaW5kb3dCaXRzKGUpe2NvbnN0IHQ9ZS5pc0xhcmdlV2luZG93O2UuaXNMYXJnZVdpbmRvdz0wO2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9aWYoMD09PXJlYWRGZXdCaXRzKGUsMSkpcmV0dXJuIDE2O2xldCBuPXJlYWRGZXdCaXRzKGUsMyk7aWYoMCE9PW4pcmV0dXJuIDE3K247bj1yZWFkRmV3Qml0cyhlLDMpO2lmKDAhPT1uKXtpZigxPT09bil7aWYoMD09PXQpcmV0dXJuLTE7ZS5pc0xhcmdlV2luZG93PTE7aWYoMT09PXJlYWRGZXdCaXRzKGUsMSkpcmV0dXJuLTE7bj1yZWFkRmV3Qml0cyhlLDYpO3JldHVybiBuPDEwfHxuPjMwPy0xOm59cmV0dXJuIDgrbn1yZXR1cm4gMTd9KGUpO2lmKC0xPT09dClyZXR1cm4gbWFrZUVycm9yKGUsLTExKTtlLm1heFJpbmdCdWZmZXJTaXplPTE8PHQ7ZS5tYXhCYWNrd2FyZERpc3RhbmNlPWUubWF4UmluZ0J1ZmZlclNpemUtMTY7ZS5ydW5uaW5nU3RhdGU9Mn1sZXQgcz1jYWxjdWxhdGVGZW5jZShlKSxyPWUucmluZ0J1ZmZlclNpemUtMSxpPWUucmluZ0J1ZmZlcjtmb3IoOzEwIT09ZS5ydW5uaW5nU3RhdGU7KXN3aXRjaChlLnJ1bm5pbmdTdGF0ZSl7Y2FzZSAyOmlmKGUubWV0YUJsb2NrTGVuZ3RoPDApcmV0dXJuIG1ha2VFcnJvcihlLC0xMCk7dD1yZWFkTmV4dE1ldGFibG9ja0hlYWRlcihlKTtpZih0PDApcmV0dXJuIHQ7cz1jYWxjdWxhdGVGZW5jZShlKTtyPWUucmluZ0J1ZmZlclNpemUtMTtpPWUucmluZ0J1ZmZlcjtjb250aW51ZTtjYXNlIDM6dD1yZWFkTWV0YWJsb2NrSHVmZm1hbkNvZGVzQW5kQ29udGV4dE1hcHMoZSk7aWYodDwwKXJldHVybiB0O2UucnVubmluZ1N0YXRlPTQ7Y29udGludWU7Y2FzZSA0OmlmKGUubWV0YUJsb2NrTGVuZ3RoPD0wKXtlLnJ1bm5pbmdTdGF0ZT0yO2NvbnRpbnVlfWlmKGUuaGFsZk9mZnNldD4yMDMwKXt0PXJlYWRNb3JlSW5wdXQoZSk7aWYodDwwKXJldHVybiB0fTA9PT1lLmNvbW1hbmRCbG9ja0xlbmd0aCYmZGVjb2RlQ29tbWFuZEJsb2NrU3dpdGNoKGUpO2UuY29tbWFuZEJsb2NrTGVuZ3RoLS07aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1jb25zdCBvPXJlYWRTeW1ib2woZS5jb21tYW5kVHJlZUdyb3VwLGUuY29tbWFuZFRyZWVJZHgsZSk8PDIsbD1mW29dLGM9ZltvKzFdLHU9ZltvKzJdO2UuZGlzdGFuY2VDb2RlPWZbbyszXTtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fWNvbnN0IG09MjU1Jmw7ZS5pbnNlcnRMZW5ndGg9YysobTw9MTY/cmVhZEZld0JpdHMoZSxtKTpyZWFkTWFueUJpdHMoZSxtKSk7aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1jb25zdCBwPWw+Pjg7ZS5jb3B5TGVuZ3RoPXUrKHA8PTE2P3JlYWRGZXdCaXRzKGUscCk6cmVhZE1hbnlCaXRzKGUscCkpO2Uuaj0wO2UucnVubmluZ1N0YXRlPTc7Y29udGludWU7Y2FzZSA3OmlmKDAhPT1lLnRyaXZpYWxMaXRlcmFsQ29udGV4dClmb3IoO2UuajxlLmluc2VydExlbmd0aDspe2lmKGUuaGFsZk9mZnNldD4yMDMwKXt0PXJlYWRNb3JlSW5wdXQoZSk7aWYodDwwKXJldHVybiB0fTA9PT1lLmxpdGVyYWxCbG9ja0xlbmd0aCYmZGVjb2RlTGl0ZXJhbEJsb2NrU3dpdGNoKGUpO2UubGl0ZXJhbEJsb2NrTGVuZ3RoLS07aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1pW2UucG9zXT1yZWFkU3ltYm9sKGUubGl0ZXJhbFRyZWVHcm91cCxlLmxpdGVyYWxUcmVlSWR4LGUpO2UucG9zKys7ZS5qKys7aWYoZS5wb3M+PXMpe2UubmV4dFJ1bm5pbmdTdGF0ZT03O2UucnVubmluZ1N0YXRlPTEyO2JyZWFrfX1lbHNle2xldCBuPTI1NSZpW2UucG9zLTEmcl0sYT0yNTUmaVtlLnBvcy0yJnJdO2Zvcig7ZS5qPGUuaW5zZXJ0TGVuZ3RoOyl7aWYoZS5oYWxmT2Zmc2V0PjIwMzApe3Q9cmVhZE1vcmVJbnB1dChlKTtpZih0PDApcmV0dXJuIHR9MD09PWUubGl0ZXJhbEJsb2NrTGVuZ3RoJiZkZWNvZGVMaXRlcmFsQmxvY2tTd2l0Y2goZSk7Y29uc3Qgcj1oW2UuY29udGV4dExvb2t1cE9mZnNldDErbl18aFtlLmNvbnRleHRMb29rdXBPZmZzZXQyK2FdLG89MjU1JmUuY29udGV4dE1hcFtlLmNvbnRleHRNYXBTbGljZStyXTtlLmxpdGVyYWxCbG9ja0xlbmd0aC0tO2E9bjtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fW49cmVhZFN5bWJvbChlLmxpdGVyYWxUcmVlR3JvdXAsbyxlKTtpW2UucG9zXT1uO2UucG9zKys7ZS5qKys7aWYoZS5wb3M+PXMpe2UubmV4dFJ1bm5pbmdTdGF0ZT03O2UucnVubmluZ1N0YXRlPTEyO2JyZWFrfX19aWYoNyE9PWUucnVubmluZ1N0YXRlKWNvbnRpbnVlO2UubWV0YUJsb2NrTGVuZ3RoLT1lLmluc2VydExlbmd0aDtpZihlLm1ldGFCbG9ja0xlbmd0aDw9MCl7ZS5ydW5uaW5nU3RhdGU9NDtjb250aW51ZX1sZXQgZD1lLmRpc3RhbmNlQ29kZTtpZihkPDApZS5kaXN0YW5jZT1lLnJpbmdzW2UuZGlzdFJiSWR4XTtlbHNle2lmKGUuaGFsZk9mZnNldD4yMDMwKXt0PXJlYWRNb3JlSW5wdXQoZSk7aWYodDwwKXJldHVybiB0fTA9PT1lLmRpc3RhbmNlQmxvY2tMZW5ndGgmJmRlY29kZURpc3RhbmNlQmxvY2tTd2l0Y2goZSk7ZS5kaXN0YW5jZUJsb2NrTGVuZ3RoLS07aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1jb25zdCBzPTI1NSZlLmRpc3RDb250ZXh0TWFwW2UuZGlzdENvbnRleHRNYXBTbGljZStkXTtkPXJlYWRTeW1ib2woZS5kaXN0YW5jZVRyZWVHcm91cCxzLGUpO2lmKGQ8MTYpe2NvbnN0IHQ9ZS5kaXN0UmJJZHgrbltkXSYzO2UuZGlzdGFuY2U9ZS5yaW5nc1t0XSthW2RdO2lmKGUuZGlzdGFuY2U8MClyZXR1cm4gbWFrZUVycm9yKGUsLTEyKX1lbHNle2NvbnN0IHQ9ZS5kaXN0RXh0cmFCaXRzW2RdO2xldCBuO2lmKGUuYml0T2Zmc2V0K3Q8PTMyKW49cmVhZEZld0JpdHMoZSx0KTtlbHNle2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9bj10PD0xNj9yZWFkRmV3Qml0cyhlLHQpOnJlYWRNYW55Qml0cyhlLHQpfWUuZGlzdGFuY2U9ZS5kaXN0T2Zmc2V0W2RdKyhuPDxlLmRpc3RhbmNlUG9zdGZpeEJpdHMpfX1lLm1heERpc3RhbmNlIT09ZS5tYXhCYWNrd2FyZERpc3RhbmNlJiZlLnBvczxlLm1heEJhY2t3YXJkRGlzdGFuY2U/ZS5tYXhEaXN0YW5jZT1lLnBvczplLm1heERpc3RhbmNlPWUubWF4QmFja3dhcmREaXN0YW5jZTtpZihlLmRpc3RhbmNlPmUubWF4RGlzdGFuY2Upe2UucnVubmluZ1N0YXRlPTk7Y29udGludWV9aWYoZD4wKXtlLmRpc3RSYklkeD1lLmRpc3RSYklkeCsxJjM7ZS5yaW5nc1tlLmRpc3RSYklkeF09ZS5kaXN0YW5jZX1pZihlLmNvcHlMZW5ndGg+ZS5tZXRhQmxvY2tMZW5ndGgpcmV0dXJuIG1ha2VFcnJvcihlLC05KTtlLmo9MDtlLnJ1bm5pbmdTdGF0ZT04O2NvbnRpbnVlO2Nhc2UgODpsZXQgZz1lLnBvcy1lLmRpc3RhbmNlJnIsYj1lLnBvcztjb25zdCB3PWUuY29weUxlbmd0aC1lLmosaj1nK3csaz1iK3c7aWYoajxyJiZrPHIpe2lmKHc8MTJ8fGo+YiYmaz5nKXtjb25zdCBlPXcrMz4+Mjtmb3IobGV0IHQ9MDt0PGU7Kyt0KXtpW2IrK109aVtnKytdO2lbYisrXT1pW2crK107aVtiKytdPWlbZysrXTtpW2IrK109aVtnKytdfX1lbHNlIGkuY29weVdpdGhpbihiLGcsaik7ZS5qKz13O2UubWV0YUJsb2NrTGVuZ3RoLT13O2UucG9zKz13fWVsc2UgZm9yKDtlLmo8ZS5jb3B5TGVuZ3RoOyl7aVtlLnBvc109aVtlLnBvcy1lLmRpc3RhbmNlJnJdO2UubWV0YUJsb2NrTGVuZ3RoLS07ZS5wb3MrKztlLmorKztpZihlLnBvcz49cyl7ZS5uZXh0UnVubmluZ1N0YXRlPTg7ZS5ydW5uaW5nU3RhdGU9MTI7YnJlYWt9fTg9PT1lLnJ1bm5pbmdTdGF0ZSYmKGUucnVubmluZ1N0YXRlPTQpO2NvbnRpbnVlO2Nhc2UgOTp0PWRvVXNlRGljdGlvbmFyeShlLHMpO2lmKHQ8MClyZXR1cm4gdDtjb250aW51ZTtjYXNlIDE0OmUucG9zKz1jb3B5RnJvbUNvbXBvdW5kRGljdGlvbmFyeShlLHMpO2lmKGUucG9zPj1zKXtlLm5leHRSdW5uaW5nU3RhdGU9MTQ7ZS5ydW5uaW5nU3RhdGU9MTI7cmV0dXJuIDJ9ZS5ydW5uaW5nU3RhdGU9NDtjb250aW51ZTtjYXNlIDU6Zm9yKDtlLm1ldGFCbG9ja0xlbmd0aD4wOyl7aWYoZS5oYWxmT2Zmc2V0PjIwMzApe3Q9cmVhZE1vcmVJbnB1dChlKTtpZih0PDApcmV0dXJuIHR9aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1yZWFkRmV3Qml0cyhlLDgpO2UubWV0YUJsb2NrTGVuZ3RoLS19ZS5ydW5uaW5nU3RhdGU9Mjtjb250aW51ZTtjYXNlIDY6dD1jb3B5VW5jb21wcmVzc2VkRGF0YShlKTtpZih0PDApcmV0dXJuIHQ7Y29udGludWU7Y2FzZSAxMjplLnJpbmdCdWZmZXJCeXRlc1JlYWR5PU1hdGgubWluKGUucG9zLGUucmluZ0J1ZmZlclNpemUpO2UucnVubmluZ1N0YXRlPTEzO2NvbnRpbnVlO2Nhc2UgMTM6dD13cml0ZVJpbmdCdWZmZXIoZSk7aWYoMCE9PXQpcmV0dXJuIHQ7ZS5wb3M+PWUubWF4QmFja3dhcmREaXN0YW5jZSYmKGUubWF4RGlzdGFuY2U9ZS5tYXhCYWNrd2FyZERpc3RhbmNlKTtpZihlLnBvcz49ZS5yaW5nQnVmZmVyU2l6ZSl7ZS5wb3M+ZS5yaW5nQnVmZmVyU2l6ZSYmaS5jb3B5V2l0aGluKDAsZS5yaW5nQnVmZmVyU2l6ZSxlLnBvcyk7ZS5wb3M9ZS5wb3MmcjtlLnJpbmdCdWZmZXJCeXRlc1dyaXR0ZW49MH1lLnJ1bm5pbmdTdGF0ZT1lLm5leHRSdW5uaW5nU3RhdGU7Y29udGludWU7ZGVmYXVsdDpyZXR1cm4gbWFrZUVycm9yKGUsLTI4KX1pZigxMCE9PWUucnVubmluZ1N0YXRlKXJldHVybiBtYWtlRXJyb3IoZSwtMjkpO2lmKGUubWV0YUJsb2NrTGVuZ3RoPDApcmV0dXJuIG1ha2VFcnJvcihlLC0xMCk7dD1qdW1wVG9CeXRlQm91bmRhcnkoZSk7aWYoMCE9PXQpcmV0dXJuIHQ7dD1jaGVja0hlYWx0aChlLDEpO3JldHVybiAwIT09dD90OjF9Y29uc3QgYz1uZXcgZnVuY3Rpb24gVHJhbnNmb3JtcyhlLHQsbil7dGhpcy5udW1UcmFuc2Zvcm1zPTA7dGhpcy50cmlwbGV0cz1uZXcgSW50MzJBcnJheSgwKTt0aGlzLnByZWZpeFN1ZmZpeFN0b3JhZ2U9bmV3IEludDhBcnJheSgwKTt0aGlzLnByZWZpeFN1ZmZpeEhlYWRzPW5ldyBJbnQzMkFycmF5KDApO3RoaXMucGFyYW1zPW5ldyBJbnQxNkFycmF5KDApO3RoaXMubnVtVHJhbnNmb3Jtcz1lO3RoaXMudHJpcGxldHM9bmV3IEludDMyQXJyYXkoMyplKTt0aGlzLnBhcmFtcz1uZXcgSW50MTZBcnJheShlKTt0aGlzLnByZWZpeFN1ZmZpeFN0b3JhZ2U9bmV3IEludDhBcnJheSh0KTt0aGlzLnByZWZpeFN1ZmZpeEhlYWRzPW5ldyBJbnQzMkFycmF5KG4rMSl9KDEyMSwxNjcsNTApOyFmdW5jdGlvbiB1bnBhY2tUcmFuc2Zvcm1zKGUsdCxuLGEscyl7Y29uc3Qgcj10b1V0ZjhSdW5lcyhhKSxpPXIubGVuZ3RoO2xldCBvPTEsbD0wO2ZvcihsZXQgbj0wO248aTsrK24pe2NvbnN0IGE9cltuXTszNT09PWE/dFtvKytdPWw6ZVtsKytdPWF9Zm9yKGxldCBlPTA7ZTwzNjM7KytlKW5bZV09cy5jaGFyQ29kZUF0KGUpLTMyfShjLnByZWZpeFN1ZmZpeFN0b3JhZ2UsYy5wcmVmaXhTdWZmaXhIZWFkcyxjLnRyaXBsZXRzLCcjICNzICMsICNlICMuIyB0aGUgIy5jb20vI8OCwqAjIG9mICMgYW5kICMgaW4gIyB0byAjIiMiPiNcbiNdIyBmb3IgIyBhICMgdGhhdCAjLiAjIHdpdGggI1wnIyBmcm9tICMgYnkgIy4gVGhlICMgb24gIyBhcyAjIGlzICNpbmcgI1xuXHQjOiNlZCAjKCMgYXQgI2x5ICM9IiMgb2YgdGhlICMuIFRoaXMgIywjIG5vdCAjZXIgI2FsICM9XCcjZnVsICNpdmUgI2xlc3MgI2VzdCAjaXplICNvdXMgIycsIiAgICAgISEgISAsICAqISAgJiEgIFwiICEgICkgKiAgICogLSAgISAjICEgICMhKiEgICsgICwkICEgIC0gICUgIC4gIC8gIyAgIDAgIDEgLiAgXCIgICAyICAzISogICA0JSAgISAjIC8gICA1ICA2ICA3ICA4IDAgIDEgJiAgICQgICA5ICsgICA6ICA7ICA8ICcgICE9ICA+ICA/ISA0ICBAIDQgIDIgICYgICBBICojICggICBCICBDJiApICUgICkgISojICotJSBBICshICouICBEISAlJyAgJiBFICo2ICBGICBHJSAhICpBIColICBIISBEICBJISshICBKISsgICBLICstICo0ISBBICBMISo0ICBNICBOICs2ICBPISolICsuISBLICpHICBQICslKCAgISBHICpEICtEICBRICsjICpLISpHIStEISsjICtHICtBICs0ISslICtLISs0ISpEIStLISpLIik7ZnVuY3Rpb24gZ2V0TmV4dEtleShlLHQpe2xldCBuPTE8PHQtMTtmb3IoOzAhPT0oZSZuKTspbj4+PTE7cmV0dXJuKGUmbi0xKStufWZ1bmN0aW9uIHJlcGxpY2F0ZVZhbHVlKGUsdCxuLGEscyl7bGV0IHI9YTtmb3IoO3I+MDspe3ItPW47ZVt0K3JdPXN9fWZ1bmN0aW9uIG5leHRUYWJsZUJpdFNpemUoZSx0LG4pe2xldCBhPXQscz0xPDxhLW47Zm9yKDthPDE1Oyl7cy09ZVthXTtpZihzPD0wKWJyZWFrO2ErKztzPDw9MX1yZXR1cm4gYS1ufWZ1bmN0aW9uIGJ1aWxkSHVmZm1hblRhYmxlKGUsdCxuLGEscyl7Y29uc3Qgcj1lW3RdLGk9bmV3IEludDMyQXJyYXkocyksbz1uZXcgSW50MzJBcnJheSgxNiksbD1uZXcgSW50MzJBcnJheSgxNik7Zm9yKGxldCBlPTA7ZTxzOysrZSlvW2FbZV1dKys7bFsxXT0wO2ZvcihsZXQgZT0xO2U8MTU7KytlKWxbZSsxXT1sW2VdK29bZV07Zm9yKGxldCBlPTA7ZTxzOysrZSkwIT09YVtlXSYmKGlbbFthW2VdXSsrXT1lKTtsZXQgZj1uLGM9MTw8ZixoPWM7aWYoMT09PWxbMTVdKXtmb3IobGV0IHQ9MDt0PGg7Kyt0KWVbcit0XT1pWzBdO3JldHVybiBofWxldCB1PTAsbT0wLHA9MTtmb3IobGV0IHQ9MTt0PD1uOysrdCl7cDw8PTE7Zm9yKDtvW3RdPjA7KXtyZXBsaWNhdGVWYWx1ZShlLHIrdSxwLGMsdDw8MTZ8aVttKytdKTt1PWdldE5leHRLZXkodSx0KTtvW3RdLS19fWNvbnN0IGQ9aC0xO2xldCBnPS0xLGI9cjtwPTE7Zm9yKGxldCB0PW4rMTt0PD0xNTsrK3Qpe3A8PD0xO2Zvcig7b1t0XT4wOyl7aWYoKHUmZCkhPT1nKXtiKz1jO2Y9bmV4dFRhYmxlQml0U2l6ZShvLHQsbik7Yz0xPDxmO2grPWM7Zz11JmQ7ZVtyK2ddPWYrbjw8MTZ8Yi1yLWd9cmVwbGljYXRlVmFsdWUoZSxiKyh1Pj5uKSxwLGMsdC1uPDwxNnxpW20rK10pO3U9Z2V0TmV4dEtleSh1LHQpO29bdF0tLX19cmV0dXJuIGh9ZnVuY3Rpb24gcmVhZE1vcmVJbnB1dChlKXtpZigwIT09ZS5lbmRPZlN0cmVhbVJlYWNoZWQpcmV0dXJuIGhhbGZBdmFpbGFibGUoZSk+PS0yPzA6bWFrZUVycm9yKGUsLTE2KTtjb25zdCB0PWUuaGFsZk9mZnNldDw8MTtsZXQgbj00MDk2LXQ7ZS5ieXRlQnVmZmVyLmNvcHlXaXRoaW4oMCx0LDQwOTYpO2UuaGFsZk9mZnNldD0wO2Zvcig7bjw0MDk2Oyl7Y29uc3QgdD00MDk2LW4sYT1yZWFkSW5wdXQoZSxlLmJ5dGVCdWZmZXIsbix0KTtpZihhPC0xKXJldHVybiBhO2lmKGE8PTApe2UuZW5kT2ZTdHJlYW1SZWFjaGVkPTE7ZS50YWlsQnl0ZXM9bjtuKz0xO2JyZWFrfW4rPWF9IWZ1bmN0aW9uIGJ5dGVzVG9OaWJibGVzKGUsdCl7Y29uc3Qgbj1lLmJ5dGVCdWZmZXIsYT10Pj4xLHM9ZS5zaG9ydEJ1ZmZlcjtmb3IobGV0IGU9MDtlPGE7KytlKXNbZV09MjU1Jm5bMiplXXwoMjU1Jm5bMiplKzFdKTw8OH0oZSxuKTtyZXR1cm4gMH1mdW5jdGlvbiBjaGVja0hlYWx0aChlLHQpe2lmKDA9PT1lLmVuZE9mU3RyZWFtUmVhY2hlZClyZXR1cm4gMDtjb25zdCBuPShlLmhhbGZPZmZzZXQ8PDEpKyhlLmJpdE9mZnNldCs3Pj4zKS00O3JldHVybiBuPmUudGFpbEJ5dGVzP21ha2VFcnJvcihlLC0xMyk6MCE9PXQmJm4hPT1lLnRhaWxCeXRlcz9tYWtlRXJyb3IoZSwtMTcpOjB9ZnVuY3Rpb24gcmVhZEZld0JpdHMoZSx0KXtjb25zdCBuPWUuYWNjdW11bGF0b3IzMj4+PmUuYml0T2Zmc2V0JigxPDx0KS0xO2UuYml0T2Zmc2V0Kz10O3JldHVybiBufWZ1bmN0aW9uIHJlYWRNYW55Qml0cyhlLHQpe2NvbnN0IG49cmVhZEZld0JpdHMoZSwxNik7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTY7cmV0dXJuIG58cmVhZEZld0JpdHMoZSx0LTE2KTw8MTZ9ZnVuY3Rpb24gcHJlcGFyZShlKXtpZihlLmhhbGZPZmZzZXQ+MjAzMCl7Y29uc3QgdD1yZWFkTW9yZUlucHV0KGUpO2lmKDAhPT10KXJldHVybiB0fWxldCB0PWNoZWNrSGVhbHRoKGUsMCk7aWYoMCE9PXQpcmV0dXJuIHQ7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTY7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTY7cmV0dXJuIDB9ZnVuY3Rpb24gcmVsb2FkKGUpe3JldHVybiAzMj09PWUuYml0T2Zmc2V0P3ByZXBhcmUoZSk6MH1mdW5jdGlvbiBqdW1wVG9CeXRlQm91bmRhcnkoZSl7Y29uc3QgdD0zMi1lLmJpdE9mZnNldCY3O2lmKDAhPT10KXtpZigwIT09cmVhZEZld0JpdHMoZSx0KSlyZXR1cm4gbWFrZUVycm9yKGUsLTUpfXJldHVybiAwfWZ1bmN0aW9uIGhhbGZBdmFpbGFibGUoZSl7bGV0IHQ9MjA0ODswIT09ZS5lbmRPZlN0cmVhbVJlYWNoZWQmJih0PWUudGFpbEJ5dGVzKzE+PjEpO3JldHVybiB0LWUuaGFsZk9mZnNldH1jb25zdCBoPW5ldyBJbnQzMkFycmF5KDIwNDgpOyFmdW5jdGlvbiB1bnBhY2tMb29rdXBUYWJsZShlLHQsbil7Zm9yKGxldCB0PTA7dDwyNTY7Kyt0KXtlW3RdPTYzJnQ7ZVs1MTIrdF09dD4+MjtlWzE3OTIrdF09MisodD4+Nil9Zm9yKGxldCBuPTA7bjwxMjg7KytuKWVbMTAyNCtuXT00Kih0LmNoYXJDb2RlQXQobiktMzIpO2ZvcihsZXQgdD0wO3Q8NjQ7Kyt0KXtlWzExNTIrdF09MSZ0O2VbMTIxNit0XT0yKygxJnQpfWxldCBhPTEyODA7Zm9yKGxldCB0PTA7dDwxOTsrK3Qpe2NvbnN0IHM9MyZ0LHI9bi5jaGFyQ29kZUF0KHQpLTMyO2ZvcihsZXQgdD0wO3Q8cjsrK3QpZVthKytdPXN9Zm9yKGxldCB0PTA7dDwxNjsrK3Qpe2VbMTc5Mit0XT0xO2VbMjAzMit0XT02fWVbMTc5Ml09MDtlWzIwNDddPTc7Zm9yKGxldCB0PTA7dDwyNTY7Kyt0KWVbMTUzNit0XT1lWzE3OTIrdF08PDN9KGgsIiAgICAgICAgICEhICAhICAgICAgICAgICAgICAgICAgXCIjJCMjJSMkJicjIygjKSMrKysrKysrKysrKCgmKicjIywtLS0sLS0tLC0tLS0tLC0tLS0tLC0tLS0tJiMnIyMjLi8vLy4vLy8uLy8vLy8uLy8vLy8uLy8vLy8mIycjICIsIkEvKiAgJzogICYgOiAkICDCgSBAIik7ZnVuY3Rpb24gU3RhdGUoKXt0aGlzLnJpbmdCdWZmZXI9bmV3IEludDhBcnJheSgwKTt0aGlzLmNvbnRleHRNb2Rlcz1uZXcgSW50OEFycmF5KDApO3RoaXMuY29udGV4dE1hcD1uZXcgSW50OEFycmF5KDApO3RoaXMuZGlzdENvbnRleHRNYXA9bmV3IEludDhBcnJheSgwKTt0aGlzLmRpc3RFeHRyYUJpdHM9bmV3IEludDhBcnJheSgwKTt0aGlzLm91dHB1dD1uZXcgSW50OEFycmF5KDApO3RoaXMuYnl0ZUJ1ZmZlcj1uZXcgSW50OEFycmF5KDApO3RoaXMuc2hvcnRCdWZmZXI9bmV3IEludDE2QXJyYXkoMCk7dGhpcy5pbnRCdWZmZXI9bmV3IEludDMyQXJyYXkoMCk7dGhpcy5yaW5ncz1uZXcgSW50MzJBcnJheSgwKTt0aGlzLmJsb2NrVHJlZXM9bmV3IEludDMyQXJyYXkoMCk7dGhpcy5saXRlcmFsVHJlZUdyb3VwPW5ldyBJbnQzMkFycmF5KDApO3RoaXMuY29tbWFuZFRyZWVHcm91cD1uZXcgSW50MzJBcnJheSgwKTt0aGlzLmRpc3RhbmNlVHJlZUdyb3VwPW5ldyBJbnQzMkFycmF5KDApO3RoaXMuZGlzdE9mZnNldD1uZXcgSW50MzJBcnJheSgwKTt0aGlzLmFjY3VtdWxhdG9yNjQ9MDt0aGlzLnJ1bm5pbmdTdGF0ZT0wO3RoaXMubmV4dFJ1bm5pbmdTdGF0ZT0wO3RoaXMuYWNjdW11bGF0b3IzMj0wO3RoaXMuYml0T2Zmc2V0PTA7dGhpcy5oYWxmT2Zmc2V0PTA7dGhpcy50YWlsQnl0ZXM9MDt0aGlzLmVuZE9mU3RyZWFtUmVhY2hlZD0wO3RoaXMubWV0YUJsb2NrTGVuZ3RoPTA7dGhpcy5pbnB1dEVuZD0wO3RoaXMuaXNVbmNvbXByZXNzZWQ9MDt0aGlzLmlzTWV0YWRhdGE9MDt0aGlzLmxpdGVyYWxCbG9ja0xlbmd0aD0wO3RoaXMubnVtTGl0ZXJhbEJsb2NrVHlwZXM9MDt0aGlzLmNvbW1hbmRCbG9ja0xlbmd0aD0wO3RoaXMubnVtQ29tbWFuZEJsb2NrVHlwZXM9MDt0aGlzLmRpc3RhbmNlQmxvY2tMZW5ndGg9MDt0aGlzLm51bURpc3RhbmNlQmxvY2tUeXBlcz0wO3RoaXMucG9zPTA7dGhpcy5tYXhEaXN0YW5jZT0wO3RoaXMuZGlzdFJiSWR4PTA7dGhpcy50cml2aWFsTGl0ZXJhbENvbnRleHQ9MDt0aGlzLmxpdGVyYWxUcmVlSWR4PTA7dGhpcy5jb21tYW5kVHJlZUlkeD0wO3RoaXMuaj0wO3RoaXMuaW5zZXJ0TGVuZ3RoPTA7dGhpcy5jb250ZXh0TWFwU2xpY2U9MDt0aGlzLmRpc3RDb250ZXh0TWFwU2xpY2U9MDt0aGlzLmNvbnRleHRMb29rdXBPZmZzZXQxPTA7dGhpcy5jb250ZXh0TG9va3VwT2Zmc2V0Mj0wO3RoaXMuZGlzdGFuY2VDb2RlPTA7dGhpcy5udW1EaXJlY3REaXN0YW5jZUNvZGVzPTA7dGhpcy5kaXN0YW5jZVBvc3RmaXhCaXRzPTA7dGhpcy5kaXN0YW5jZT0wO3RoaXMuY29weUxlbmd0aD0wO3RoaXMubWF4QmFja3dhcmREaXN0YW5jZT0wO3RoaXMubWF4UmluZ0J1ZmZlclNpemU9MDt0aGlzLnJpbmdCdWZmZXJTaXplPTA7dGhpcy5leHBlY3RlZFRvdGFsU2l6ZT0wO3RoaXMub3V0cHV0T2Zmc2V0PTA7dGhpcy5vdXRwdXRMZW5ndGg9MDt0aGlzLm91dHB1dFVzZWQ9MDt0aGlzLnJpbmdCdWZmZXJCeXRlc1dyaXR0ZW49MDt0aGlzLnJpbmdCdWZmZXJCeXRlc1JlYWR5PTA7dGhpcy5pc0VhZ2VyPTA7dGhpcy5pc0xhcmdlV2luZG93PTA7dGhpcy5jZE51bUNodW5rcz0wO3RoaXMuY2RUb3RhbFNpemU9MDt0aGlzLmNkQnJJbmRleD0wO3RoaXMuY2RCck9mZnNldD0wO3RoaXMuY2RCckxlbmd0aD0wO3RoaXMuY2RCckNvcGllZD0wO3RoaXMuY2RDaHVua3M9bmV3IEFycmF5KDApO3RoaXMuY2RDaHVua09mZnNldHM9bmV3IEludDMyQXJyYXkoMCk7dGhpcy5jZEJsb2NrQml0cz0wO3RoaXMuY2RCbG9ja01hcD1uZXcgSW50OEFycmF5KDApO3RoaXMuaW5wdXQ9bmV3IElucHV0U3RyZWFtKG5ldyBJbnQ4QXJyYXkoMCkpO3RoaXMucmluZ0J1ZmZlcj1uZXcgSW50OEFycmF5KDApO3RoaXMucmluZ3M9bmV3IEludDMyQXJyYXkoMTApO3RoaXMucmluZ3NbMF09MTY7dGhpcy5yaW5nc1sxXT0xNTt0aGlzLnJpbmdzWzJdPTExO3RoaXMucmluZ3NbM109NH1sZXQgdT1uZXcgSW50OEFycmF5KDApO2NvbnN0IG09bmV3IEludDMyQXJyYXkoMzIpLHA9bmV3IEludDMyQXJyYXkoMzIpO2NvbnN0IGQ9bmV3IEludDhBcnJheSgxMjI3ODQpLGc9bmV3IEludDMyQXJyYXkoMjUpOyFmdW5jdGlvbiB1bnBhY2tEaWN0aW9uYXJ5RGF0YShlLHQsbixhLHMscil7Y29uc3QgaT1mdW5jdGlvbiB0b1VzQXNjaWlCeXRlcyhlKXtjb25zdCB0PWUubGVuZ3RoLG49bmV3IEludDhBcnJheSh0KTtmb3IobGV0IGE9MDthPHQ7KythKW5bYV09ZS5jaGFyQ29kZUF0KGEpO3JldHVybiBufSh0K24pLG89dG9VdGY4UnVuZXMoYSk7bGV0IGw9MDtjb25zdCBmPW8ubGVuZ3RoPj4xO2ZvcihsZXQgZT0wO2U8ZjsrK2Upe2NvbnN0IHQ9b1syKmVdLTM2LG49b1syKmUrMV0tMzY7Zm9yKGxldCBlPTA7ZTx0OysrZSl7aVtsXT0zXmlbbF07bCsrfWZvcihsZXQgZT0wO2U8bjsrK2Upe2lbbF09MjM2XmlbbF07bCsrfX1mb3IobGV0IGU9MDtlPHIubGVuZ3RoOysrZSlzW2VdPXIuY2hhckNvZGVBdChlKS02NTtlLnNldChpKX0oZCwnd2puZmdsdG1vamVmb2Zld2FiYGhgbGdmZ2J3YnBrbHRsbW96cGp3ZmBqd3psc2ZtaXZwd29qaGZlcWZmdGxxaHdme3d6ZmJxbHVmcWFsZ3pvbHVmZWxxbmFsbGhzb2J6b2p1Zm9qbWZrZm9za2xuZnBqZ2ZubHFmdGxxZ29sbWR3a2ZudWpmdGVqbWdzYmRmZ2J6cGV2b29rZmJnd2ZxbmZiYGticWZiZXFsbndxdmZuYnFoYmFvZnZzbG1ramRrZ2J3Zm9ibWdtZnRwZnVmbW1me3dgYnBmYWx3a3NscHd2cGZnbmJnZmtibWdrZnFmdGtid21ibmZPam1oYW9sZHBqeWZhYnBma2ZvZ25iaGZuYmptdnBmcSQqIyhrbG9nZm1ncHRqd2tNZnRwcWZiZ3RmcWZwamRtd2JoZmtidWZkYm5mcGZmbWBib29zYndrdGZvb3NvdnBuZm12ZWpvbnNicXdpbGptd2tqcG9qcHdkbGxnbWZmZ3RienB0ZnB3aWxhcG5qbWdib3Bsb2xkbHFqYGt2cGZwb2Jwd3dmYm5icW56ZWxsZ2hqbWR0am9vZmJwd3RicWdhZnB3ZWpxZlNiZGZobWx0YnRiei1zbWRubHVmd2tibW9sYmdkanVmcGZvZW1sd2ZudmBrZWZmZ25ibXpxbGBoamBsbWxtYGZvbGxoa2pnZmdqZmdLbG5mcXZvZmtscHdiaWJ7am1lbGBvdmFvYnRwb2ZwcGtib2VwbG5mcHZga3lsbWYyMzMmbG1mcGBicWZXam5mcWJgZmFvdmZlbHZxdGZmaGViYGZrbHNmZGJ1ZmticWdvbHB3dGtmbXNicWhoZnN3c2JwcHBranNxbGxuS1dOT3NvYm1XenNmZ2xtZnBidWZoZmZzZW9iZG9qbWhwbG9nZWp1ZndsbGhxYndmd2x0bWl2bnN3a3ZwZ2JxaGBicWdlam9mZWZicXB3Ynpoam9vd2tid2Vib29idndsZnVmcS1gbG53Ym9ocGtsc3Vsd2ZnZmZzbmxnZnFmcHd3dnFtYWxxbWFibWdlZm9vcWxwZnZxbytwaGptcWxvZmBsbmZiYHdwYmRmcG5mZndkbG9nLWlzZGp3Zm51YnF6ZWZvd3drZm1wZm1nZ3Fsc1VqZnRgbHN6Mi0zIT8sYj1wd2xzZm9wZm9qZnB3bHZxc2JgaC1kamVzYnB3YHBwPGRxYnpuZmJtJWR3OHFqZ2Zwa2x3b2J3ZnBiamdxbGJndWJxI2VmZm9pbGttcWpgaHNscXdlYnB3JFZCLmdmYmc/LGE9c2xscWFqb293enNmVi1QLXRsbGdudnB3MXN7OEptZWxxYm1odGpnZnRibXd0Ym9vb2ZiZ1gzXjhzYnZvdGJ1ZnB2cWZcJyskIHRianduYnBwYnFucGRsZnBkYmptb2JtZHNiamciLi4jb2xgaHZtandxbGx3dGJvaGVqcW50amVme25vIXBsbWR3ZnB3MTNze2hqbWdxbHRwd2xsb2VsbXduYmpvcGJlZnB3YnFuYnNwYGxxZnFiam1lb2x0YWJhenBzYm1wYnpwN3N7ODVzezhicXdwZWxsd3FmYm90amhqa2Zid3B3ZnN3cWpzbHFkLG9iaGZ0ZmJod2xvZ0VscW5gYnB3ZWJtcGFibWh1ZnF6cXZtcGl2b3p3YnBoMnN7OGRsYm9kcWZ0cG9sdGZnZGZqZz4hcGZ3cDZzezgtaXA8NzNze2plIytwbGxtcGZid21sbWZ3dmFmeWZxbHBmbXdxZmZnZWJgd2ptd2xkamV3a2JxbjI7c3tgYm5ma2pvb2Fsb2d5bGxudWxqZ2ZicHpxam1kZWpvb3NmYmhqbWp3YGxwdzBzezhpYmBod2JkcGFqd3BxbG9vZmdqd2htZnRtZmJxPyIuLmRxbHRJUExNZ3Z3ek1ibmZwYm9memx2I29sd3BzYmptaWJ5eWBsb2dmemZwZWpwa3R0dC1xanBod2JhcHNxZnUyM3N7cWpwZjE2c3tBb3ZmZ2ptZDAzMy9hYm9vZWxxZ2ZicW10am9nYWx7LWVianFvYmBodWZxcHNianFpdm1md2Zga2plKyJzamBoZnVqb1wnKyEgdGJxbm9scWdnbGZwc3Zvby8zMzNqZ2ZiZ3FidGt2ZGZwc2x3ZXZtZ2F2cW1rcWZlYGZvb2hmenB3amBoa2x2cW9scHBldmZvMjFze3B2andnZmJvUVBQIWJkZmdkcWZ6REZXIWZicGZiam5wZGpxb2JqZ3A7c3s4bWJ1emRxamd3anNwIDo6OnRicXBvYmd6YGJxcCo4I35za3M8a2Zvb3dib290a2xueWs5XHQpLA5cdCMyMzNrYm9vLVx0XHRCNHN7OHN2cGtga2J3M3N7OGBxZnQpLD8sa2JwazQ2c3tlb2J3cWJxZiMlJSN3Zm9vYGJuc2xtd2xvYmpnbmpwcHBoanN3Zm13ZWptZm5ib2ZkZndwc29sdzczMy8OXHQOXHRgbGxvZWZmdy1za3M/YXE9ZnFqYG5scHdkdmpnYWZvb2dmcGBrYmpxbmJ3a2J3bG4sam5kJSA7MW92YGhgZm13MzMzOHdqbXpkbG1ma3dub3Bmb29ncXZkRVFGRm1sZ2ZtamBoPGpnPm9scGZtdm9vdWJwd3RqbWdRUFAjdGZicXFmb3phZmZtcGJuZmd2aGZtYnBiYGJzZnRqcGtkdm9lVzEwOWtqd3Bwb2x3ZGJ3ZmhqYGhhb3Zxd2tmejI2c3skJCo4KjghPW5wamZ0am1wYWpxZ3BscXdhZndicGZmaFcyOzlscWdwd3FmZm5ib281M3N7ZWJxbg5sdXBhbHpwWDNeLSQqOCFTTFBXYWZicWhqZ3AqOH5+bmJxendmbWcrVkgqcnZiZ3lrOVxuLnBqeS4uLi5zcWxzJCo4Dm9qZXdXMjo5dWpgZmJtZ3pnZmF3PVFQUHNsbG9tZmBoYW9sdFcyNTlnbGxxZnVib1cyNDlvZndwZWJqb2xxYm9zbG9vbWx1YmBsb3BkZm1mIw5seHBsZXdxbG5md2pvb3FscHA/azA9c2x2cWViZ2Zzam1oP3dxPW5qbWoqfyIrbmptZnlrOQRhYnFwa2ZicTMzKjhuam9oIy4uPWpxbG1lcWZnZ2pwaHRmbXdwbGpvc3Z3cCxpcCxrbG96VzExOUpQQU1XMTM5YmdibnBmZnA/azE9aXBsbSQvIyRgbG13VzEyOSNRUFBvbGxzYnBqYm5sbG0/LHM9cGx2b09KTUZlbHF3YGJxd1cyNzk/azI9OzNzeyIuLj86c3s4VzM3OW5qaGY5NzVZbWpgZmptYGtabHFocWpgZnlrOVxiJCoqOHN2cWZuYmRmc2JxYndsbWZhbG1nOTA0WVxcbGVcXCReKjgzMzMveWs5XHZ3Ym1oemJxZ2FsdG9hdnBrOTY1WUlidWIwM3N7XHR/flx0JkAwJjkwN1lpZmVlRltTSmBicGt1anBiZGxvZXBtbHR5azkFcnZmcS1gcHBwamBobmZid25qbS1ham1nZ2Zvb2tqcWZzamBwcWZtdzkwNVlLV1dTLjEzMmVsd2x0bG9lRk1HI3thbHs5NjdZQUxHWmdqYGg4XHR+XHRme2p3OTA2WXVicXBhZmJ3JH4qOGdqZnc6Ojo4Ym1tZn5+PyxYal4tT2JtZGhuLl50anFmd2x6cGJnZ3BwZmJvYm9mezhcdFxufmZga2xtam1mLWxxZDMzNip3bG16aWZ0cHBibWdvZmRwcWxsZTMzMyojMTMzdGptZmRmYnFnbGRwYWxsd2RicXpgdndwd3pvZndmbnN3amxtLXtub2BsYGhkYm1kXCcrJC02M3N7U2stR25qcGBib2Jtb2xibWdmcGhuam9mcXpibXZtantnanBgKjh+XHRndnB3YG9qcyotXHRcdDQzc3suMTMzR1VHcDRePT93YnNmZ2ZubGooKCp0YmRmZnZxbHNram9sc3dwa2xvZkVCUnBicGptLjE1V29iYXBzZndwVlFPI2F2b2hgbGxoOH4OXHRLRkJHWDNeKmJhYXFpdmJtKzI6O29mcGt3dGptPyxqPXBsbXpkdnpwZXZgaHNqc2Z/Llx0IjMzMSptZ2x0WDJeOFheOFx0T2xkI3Bib3cOXHRcblxuYWJtZHdxam5hYndrKngOXHQzM3N7XHR+KjhobDlcMGVmZnBiZz0OcDksLCNYXjh3bG9vc292ZCsqeFx0eA5cdCMtaXAkMTMzc2d2Ym9hbGJ3LUlTRCo4XHR+cnZsdyo4XHRcdCQqOFx0Dlx0fg4xMzI3MTMyNjEzMjUxMzI0MTMyOzEzMjoxMzEzMTMxMjEzMTExMzEwMTMxNzEzMTYxMzE1MTMxNDEzMTsxMzE6MTMwMzEzMDIxMzAxMTMwMDEzMDcxMzA2MTMwNTEzMDQxMzIwMTMyMTEzMjIxMzIzMTMzOjEzMzsxMzM0MTMzNTEzMzYxMzM3MTMzMDEzMzExMzMyMTMzMzI6OjoyOjo7Mjo6NDI6OjUyOjo2Mjo6NzI6OjAyOjoxMjo6MjI6OjMyOjs6Mjo7OzI6OzQyOjs1Mjo7NjI6OzcyOjswMjo7MTI6OzIyOjszMjo0OjI6NDsyOjQ0Mjo0NTI6NDYyOjQ3Mjo0MDI6NDEyOjQyMjo0MzI6NToyOjU7Mjo1NDI6NTUyOjU2Mjo1NzI6NTAyOjUxMjo1MjI6NTMyOjY6Mjo2OzI6NjQyOjY1Mjo2NjI6NjcyOjYwMjo2MTI6NjIyOjYzMjMzMzIzMTcyMDo3MzMzMzo6OjpgbG5sbi9NcGZwd2ZmcHdic2ZxbHdsZ2xrYmBmYGJnYmIvXWxhamZtZy9BYmJwL0F1amdiYGJwbGx3cWxlbHFscGxvbGx3cWJgdmJvZ2ppbHBqZ2xkcWJtd2pzbHdmbmJnZmFmYm9kbHJ2L0VmcHdsbWJnYndxZnBzbGBsYGJwYmFiaWx3bGdicGptbGJkdmJzdmZwdm1scGJtd2ZnamBmb3ZqcGZvb2JuYnpseWxtYmJubHFzanBsbGFxYmBvamBmb29sZ2pscGtscWJgYnBqPFs8XFw8UTxcXDxSPFA9bDxcXD1sPW89bjxcXDxRPFk8UzxSPFI9bjxUPFs8UTxSPFg8Uj1uPFI8WjxZPFI8UTxUPWk8cTxcXDxZPFk8XT1nPFA9Zzx+PWc9bTxSPF49ZzxePFI8cTxSPFI8XTxzPFI8VzxUPFE8VDxMPEg8cTxZPHA9Zz1uPWc8cjxRPFQ8UDxYPFxcPHs8XFw8eDxcXDxxPW88cjxdPW48WTx0PFs8WTxVPFE9bzxQPFA8Tj1nPW88WjVtNWY0TzVqNWk0SzVpNFU1bzVoNE81ZDRdNEM1ZjRLNW01ZTVrNWQ1aDVpNWg1bzRLNWQ1aDVrNEQ0XzRLNWg0STVqNWs1ZjRPNWY1bjRDNWs1aDRHNWk0RDVrNWg1ZDVoNWY0RDVoNEs1ZjRENW80WDVmNEs1aTRPNWk1ajRGNEQ1ZjVoNWo0QTRENWs1aTVpNFg1ZDRYZWpxcHd1amdmbG9qZGt3dGxxb2duZmdqYnRrandmYG9scGZhb2JgaHFqZGt3cG5ib29hbGxocHNvYmBmbnZwamBlamZvZ2xxZ2Zxc2xqbXd1Ym92Zm9mdWZvd2Jhb2ZhbGJxZ2tsdnBmZHFsdnN0bHFocHpmYnFwcHdid2Z3bGdienRid2ZxcHdicXdwd3pvZmdmYndrc2x0ZnFza2xtZm1qZGt3ZnFxbHFqbXN2d2JhbHZ3d2ZxbnB3andvZndsbG9wZnVmbXdvbGBib3dqbmZwb2JxZGZ0bHFncGRibmZwcGtscXdwc2JgZmVsYHZwYG9mYnFubGdmb2FvbGBoZHZqZ2ZxYmdqbHBrYnFmdGxuZm1iZGJqbW5sbWZ6am5iZGZtYm5mcHpsdm1kb2ptZnBvYndmcWBsb2xxZHFmZm1lcWxtdyVibnM4dGJ3YGtlbHFgZnNxamBmcXZvZnBhZmRqbWJld2ZxdWpwandqcHB2ZmJxZmJwYWZvbHRqbWdme3dsd2Jva2x2cXBvYmFmb3Nxam13c3FmcHBhdmpvd29qbWhwcHNmZmdwd3ZnendxYmdmZWx2bWdwZm1wZnZtZ2ZxcGtsdG1lbHFucHFibWRmYmdnZmdwd2pvb25sdWZnd2JoZm1iYWx1ZmVvYnBrZWp7ZmdsZXdmbWx3a2ZxdWpmdHBga2ZgaG9mZGJvcWp1ZnFqd2ZucHJ2amBocGtic2Zrdm5ibWZ7anB3ZGxqbWRubHVqZndranFnYWJwamBzZmJgZnB3YmRmdGpnd2tvbGRqbWpnZmJwdHFsd2ZzYmRmcHZwZnFwZ3FqdWZwd2xxZmFxZmJocGx2d2t1bGpgZnBqd2Zwbmxtd2t0a2ZxZmF2am9ndGtqYGtmYnF3a2VscXZud2txZmZwc2xxd3NicXd6QG9qYGhvbHRmcW9qdWZwYG9icHBvYnpmcWZtd3F6cHdscXp2cGJkZnBsdm1nYGx2cXd6bHZxI2FqcXdrc2xzdnN3enNmcGJzc296Sm5iZGZhZmptZHZzc2ZxbWx3ZnBmdWZxenBrbHRwbmZibXBme3dxYm5id2Brd3FiYGhobWx0bWZicW96YWZkYm1wdnNmcXNic2ZxbWxxd2tvZmJxbWRqdWZtbWJuZmdmbWdmZ1dmcW5wc2Jxd3BEcWx2c2FxYm1ndnBqbWR0bG5ibWVib3BmcWZiZ3pidmdqbHdiaGZwdGtqb2YtYGxuLG9qdWZnYGJwZnBnYmpvemBram9nZHFmYndpdmdkZndrbHBmdm1qd3BtZnVmcWFxbGJnYGxicHdgbHVmcWJzc29mZWpvZnBgemBvZnBgZm1mc29ibXBgb2pgaHRxandmcnZmZm1zamZgZmZuYmpvZXFibmZsb2dmcXNrbHdsb2puandgYmBrZmBqdWpvcGBib2ZmbXdmcXdrZm5md2tmcWZ3bHZga2Fsdm1ncWx6Ym9icGhmZ3RrbG9mcGptYGZwd2xgaCNtYm5mZWJqd2trZmJxd2Zuc3d6bGVlZnFwYGxzZmx0bWZnbmpka3dib2F2bndram1oYW9sbGdicXFiem5iaWxxd3F2cHdgYm1sbXZtamxtYGx2bXd1Ym9qZ3B3bG1mUHd6b2ZPbGRqbWtic3N6bGBgdnFvZmV3OWVxZnBrcnZqd2Zlam9ucGRxYmdmbWZmZ3B2cWFibWVqZGt3YWJwanBrbHVmcWJ2d2w4cWx2d2Yta3dub25qe2ZnZWptYm9abHZxI3Bvamdmd2xzamBhcWx0bWJvbG1mZ3FidG1wc29qd3FmYmBrUWpka3dnYndmcG5icWBrcnZsd2ZkbGxncE9qbWhwZ2x2YXdicHptYHdrdm5hYm9vbHRga2pmZXpsdndrbWx1Zm8yM3N7OHBmcXVmdm13am9rYm1ncEBrZmBoUHNiYGZydmZxemlibmZwZnJ2Ym93dGpgZjMvMzMzUHdicXdzYm1mb3BsbWRwcWx2bWdmamRrd3BramV3dGxxd2tzbHB3cG9mYmdwdGZmaHBidWxqZ3drZnBmbmpvZnBzb2JtZnBuYnF3Ym9za2Jzb2Jtd25icWhwcWJ3ZnBzb2J6cGBvYmpucGJvZnB3Znt3cHB3YnFwdHFsbWQ/LGswPXdram1kLWxxZCxudm93amtmYnFnU2x0ZnFwd2JtZ3dsaGZtcGxvamcrd2tqcGFxam1kcGtqc3Bwd2JlZXdxamZnYGJvb3Bldm9vemViYHdwYmRmbXdXa2pwIywsLi49Ymduam1mZHpzd0Z1Zm13MjZzezhGbmJqb3dxdmYhYHFscHBwc2Ztd2FvbGRwYWx7IT1tbHdmZ29mYnVmYGtqbWJwanlmcGR2ZnB3PyxrNz1xbGFsd2tmYnV6d3F2Zi9wZnVmbWRxYm1nYHFqbmZwamRtcGJ0YnFmZ2JtYGZza2JwZj0/Ii4uZm1cXFZQJSAwOjgxMzNze1xcbWJuZm9id2ptZm1pbHpiaWJ7LWJ3amxtcG5qd2tWLVAtI2tsb2dwc2Z3ZnFqbWdqYm1idSE9YGtiam1wYGxxZmBsbmZwZ2xqbWRzcWpscVBrYnFmMjo6M3BxbG5ibW9qcHdwaWJzYm1lYm9vcHdxamJvbHRtZnFiZHFmZj8sazE9YmF2cGZib2Zxd2xzZnFiIS4sLFRgYnFncGtqb29wd2ZibnBTa2x3bHdxdndrYG9mYm0tc2tzPHBiam13bmZ3Ym9vbHZqcG5mYm13c3FsbGVhcWpmZXFsdCE9ZGZtcWZ3cXZgaG9sbGhwVWJvdmZFcWJuZi1tZncsLi49XHQ/d3F6I3hcdHVicSNuYmhmcGBscHdwc29iam1iZ3Zvd3J2ZnB3d3Fiam1vYmFscWtmb3NwYGJ2cGZuYmRqYG5sd2xxd2tmanExNjNze29mYnB3cHdmc3BAbHZtd2Bsdm9nZG9icHBwamdmcGV2bWdwa2x3Zm9idGJxZ25sdndrbmx1ZnBzYnFqcGRqdWZwZ3Z3YGt3ZnticGVxdmp3bXZvby9/f1heOHdscyE9XHQ/Ii4uU0xQVyFsYGZibT9hcSw9ZW9sbHFwc2ZiaGdmc3drI3BqeWZhYm1ocGBid2BrYGticXcxM3N7OGJvamRtZ2Zib3B0bHZvZzYzc3s4dnFvPiFzYnFocG5sdnBmTmxwdyMtLS0/LGJubG1kYXFiam1hbGd6I21sbWY4YWJwZmdgYnFxemdxYmV3cWZlZnFzYmRmXFxrbG5mLW5md2ZxZ2ZvYnpncWZibnNxbHVmaWxqbXc/LHdxPWdxdmRwPyIuLiNic3Fqb2pnZmJvYm9vZm1me2Jgd2VscXdrYGxnZnBvbGRqYFVqZnQjcGZmbnBhb2JtaHNscXdwIysxMzNwYnVmZ1xcb2ptaGRsYm9wZHFibXdkcWZmaGtsbmZwcWptZHBxYndmZzAzc3s4dGtscGZzYnFwZisqOCEjQW9sYGhvam12e2lsbWZwc2p7Zm8kKjghPSo4amUrLm9mZXdnYnVqZ2tscXBmRWxgdnBxYmpwZmFse2ZwV3FiYGhmbmZtdz8sZm49YWJxIT0tcHFgPndsdGZxYm93PiFgYmFvZmtmbXF6MTdzezhwZnd2c2p3Ym96cGticXNuam1scXdicHdmdGJtd3B3a2pwLXFmcGZ3dGtmZm9kanFvcCxgcHAsMjMzJjhgb3ZhcHB3dmVlYWphb2Z1bHdmcCMyMzMzaGxxZmJ+KjgOXHRhYm1ncHJ2ZnZmPiN4fjg7M3N7OGBoam1keA5cdFxuXG5ia2ZiZ2BvbGBoanFqcGtvamhmI3Fid2pscHdid3BFbHFuIXpia2xsKlgzXjhCYWx2d2VqbWdwPyxrMj1nZmF2ZHdicGhwVlFPIz5gZm9vcH4qKyo4MjFzezhzcWpuZndmb29wd3ZxbXAzezUzMy1pc2QhcHNiam1hZmJga3die2ZwbmpgcWxibWRmby4uPT8sZGpld3Bwd2Z1Zi5vam1oYWxnei1+KjhcdFxubmx2bXcjKzI6OkVCUj8scWxkZnFlcWJtaEBvYnBwMTtzezhlZmZncD9rMj0/cGBsd3d3ZnB3cDExc3s4Z3FqbWgqI39/I29mdGpwcGtib28gMzA6OCNlbHEjb2x1Zmd0YnB3ZjMzc3s4aWI5D25wam5sbT9lbG13cWZzb3puZmZ3cHZtd2ZxYGtmYnN3amRrd0FxYm1nKiMiPiNncWZwcGBvanNwcWxsbnBsbWhmem5sYWpvbmJqbS1NYm5mI3NvYndmZXZtbXp3cWZmcGBsbiwhMi1pc2R0bmxnZnNicWJuUFdCUVdvZmV3I2pnZ2ZtLyMxMzIqOFx0flx0ZWxxbi11anF2cGBrYmpxd3FibXB0bHFwd1NiZGZwandqbG1zYndgaz8iLi5cdGwuYGJgZWpxbnB3bHZxcC8zMzMjYnBqYm1qKCgqeGJnbGFmJCpYM15qZz4yM2Fsd2s4bmZtdiMtMS1uai1zbWQhaGZ1am1gbGJga0Bram9nYXF2YGYxLWlzZFZRTyooLWlzZH9wdmp3ZnBvamBma2JxcXoyMTMhI3B0ZmZ3d3E9Dlx0bWJuZj5namZkbHNiZGYjcHRqcHAuLj1cdFx0IGVlZTghPU9sZC1gbG4hd3FmYndwa2ZmdyojJSUjMjdzezhwb2Zmc213Zm13ZWpvZmdpYjkPb2pnPiFgTWJuZiF0bHFwZnBrbHdwLmFsey5nZm93Ylx0JW93OGFmYnFwOTc7WT9nYndiLnF2cWJvPyxiPSNwc2ZtZ2FiaGZxcGtsc3A+IyEhOHNrcyE9YHdqbG0yMHN7OGFxamJta2Zvb2xwanlmPmw+JjFFI2lsam1uYnphZj9qbmQjam5kIT0vI2VpcGpuZCEjISpYM15OV2xzQVd6c2YhbWZ0b3pHYm1waGB5ZmBrd3Fiam9obWx0cD8sazY9ZWJyIT15ay5gbTIzKjhcdC4yISo4d3pzZj5hb3ZmcHdxdm96Z2J1anAtaXAkOD0OXHQ/InB3ZmZvI3psdiNrMT0OXHRlbHFuI2lmcHZwMjMzJiNuZm12LQ5cdFxuDlx0dGJvZnBxanBocHZuZm13Z2dqbWRhLm9qaHdmYmBrZGplISN1ZmRicGdibXBoZmZwd2pwa3Jqc3B2bG5qcGxhcWZnZnBnZmZtd3Fmd2xnbHBzdmZnZmIvXWxwZnB3L013amZtZmticHdibHdxbHBzYnF3ZmdsbWdmbXZmdWxrYmBmcWVscW5ibmpwbmxuZmlscW52bWdsYnJ2L0FnL0FicHAvX29sYnp2Z2JlZmBrYndsZ2Jwd2Jtd2xuZm1scGdid2xwbHdxYnBwandqbG52YGtsYmtscWJvdmRicW5iemxxZnB3bHBrbHFicHdmbWZxYm13ZnBlbHdscGZwd2Jwc2IvQXBtdmZ1YnBib3ZnZWxxbHBuZmdqbHJ2amZtbmZwZnBzbGdmcWBram9mcGZxL011ZmBmcGdmYGpxaWxwL0VmcHdicXVmbXdiZHF2c2xrZmBrbGZvb2xwd2ZtZGxibmpkbGBscGJwbWp1Zm9kZm13Zm5qcG5iYmpxZnBpdm9qbHdmbmJwa2JgamJlYnVscWl2bWpsb2phcWZzdm13bGF2Zm1sYnZ3bHFiYXFqb2F2Zm1id2Z7d2xuYnF5bHBiYWZxb2pwd2JvdmZkbGAvX25sZm1mcWxpdmZkbHNmcS9Wa2JhZnFmcHdsem12bWBibnZpZnF1Ym9scWV2ZnFib2phcWxkdnB3YmpkdmJvdWx3bHBgYnBscGR2L0Fic3ZmZ2xwbG5scGJ1anBsdnB3ZmdnZmFmbW1sYGtmYXZwYGJlYm93YmZ2cWxwcGZxamZnamBrbGB2cXBsYG9idWZgYnBicG9mL19tc29ieWxvYnFkbGxhcWJwdWpwd2Jic2x6bGl2bXdsd3Fid2J1anB3bGBxZmJxYGJuc2xrZm5scGBqbWBsYGJxZGxzanBscGxxZ2Zta2JgZm0vTXFmYmdqcGBsc2ZncWxgZnFgYnN2Zmdic2JzZm9uZm1scS9Wd2pvYG9icWxpbHFkZmBib29mc2xtZnF3YnFnZm1iZ2pmbmJxYGJwamR2ZmZvb2JwcGpkb2xgbGBrZm5sd2xwbmJncWZgb2JwZnFmcHdsbWovXWxydmZnYnNicGJxYWJtYGxramlscHVqYmlmc2Jhb2wvRXB3ZnVqZm1mcWZqbWxnZmlicWVsbWdsYGJtYm9tbHF3Zm9md3FiYGJ2cGJ3bG5icW5ibWxwb3ZtZnBidndscHVqb29idWZtZ2xzZnBicXdqc2xwd2ZtZGJuYnFgbG9vZnVic2JncWZ2bWpnbHVibmxweWxtYnBibmFscGFibWdibmJxamJiYXZwbG52YGticHZhanFxamxpYnVqdWpxZHFiZ2xga2pgYmJvby9BaWx1Zm1namBrYmZwd2Jtd2JvZnBwYm9qcXB2Zm9sc2ZwbHBlam1mcG9vYm5iYXZwYGwvRXB3Ym9vZmRibWZkcWxzb2J5Ymt2bmxxc2JkYnFpdm13YmdsYW9manBvYnBhbG9wYmFiL11sa2Jhb2JvdmBrYi9tcWZiZ2pgZm1pdmRicW1sd2JwdWJvb2Zib28vTWBicWRiZ2xvbHFiYWJpbGZwdy9FZHZwd2xuZm13Zm5icWpsZWpxbmJgbHB3bGVqYGtic29id2JrbGRicWJxd2Zwb2Z6ZnBicnZmb252cGZsYWJwZnBzbGBscG5qd2JnYGpmb2xga2pgbG5qZmdsZGJtYnFwYm13bGZ3YnNiZ2ZhZnBzb2J6YnFmZ2ZwcGpmd2ZgbHF3ZmBscWZiZ3ZnYnBnZnBmbHVqZmlsZ2ZwZmJiZHZicCVydmx3OGdsbmJqbWBsbm5sbXB3Ynd2cGZ1Zm13cG5icHdmcXB6cHdmbmJgd2psbWFibW1mcXFmbmx1ZnBgcWxvb3ZzZ2J3ZmRvbGFib25mZ2p2bmVqb3dmcW12bmFmcWBrYm1kZnFmcHZvd3N2YW9qYHBgcWZmbWBrbGxwZm1scW5ib3dxYnVmb2pwcHZmcHBsdnFgZndicWRmd3BzcWptZG5sZ3ZvZm5sYWpvZnB0andga3NrbHdscGFscWdmcXFmZGpsbWp3cGZvZXBsYGpib2Jgd2p1ZmBsb3ZubXFmYGxxZ2Vsb29sdHdqd29mPWZqd2tmcW9mbWR3a2VibmpvemVxamZtZ29iemx2d2J2d2tscWBxZmJ3ZnFmdWpmdHB2bm5mcXBmcXVmcXNvYnpmZ3NvYnpmcWZ7c2JtZ3Nsb2pgemVscW5id2dsdmFvZnNsam13cHBmcWpmcHNmcXBsbW9qdWptZGdmcGpkbW5sbXdrcGVscWBmcHZtanJ2ZnRmamRrd3NmbHNvZmZtZnFkem1id3ZxZnBmYnFga2VqZHZxZmtidWptZGB2cHdsbmxlZXBmd29md3dmcXRqbWdsdHB2YW5qd3FmbWdmcWRxbHZzcHZzb2xiZ2tmYm93a25md2tsZ3VqZ2ZscHBga2xsb2V2d3ZxZnBrYmdsdGdmYWJ3ZnVib3ZmcExhaWZgd2x3a2ZxcHFqZGt3cG9mYmR2ZmBrcWxuZnBqbnNvZm1sd2pgZnBrYnFmZ2ZtZ2ptZHBmYnBsbXFmc2xxd2xtb2ptZnBydmJxZmF2d3dsbWpuYmRmcGZtYmFvZm5sdWptZG9id2Zwd3RqbXdmcUVxYm1gZnNmcWpsZ3B3cWxtZHFmc2Zid09sbWdsbWdmd2Jqb2VscW5mZ2dmbmJtZ3BmYHZxZnNicHBmZ3dsZGRvZnNvYmBmcGdmdWpgZnB3YndqYGBqd2pmcHB3cWZibnpmb29sdGJ3d2JgaHB3cWZmd2VvamRrd2tqZ2dmbWptZWwhPWxzZm1mZ3ZwZmV2b3Vib29memBidnBmcG9mYmdmcXBmYHFmd3BmYGxtZ2dibmJkZnBzbHF3cGZ7YGZzd3Fid2ptZHBqZG1mZ3dram1kcGZlZWZgd2VqZm9ncHB3YndmcGxlZWpgZnVqcHZib2ZnandscXVsb3ZuZlFmc2xxd252cGZ2bm5sdWpmcHNicWZtd2JgYGZwcG5scHdvem5sd2tmcSEjamc+IW5icWhmd2RxbHZtZ2BrYm1gZnB2cXVmemFmZWxxZnB6bmFsb25sbmZtd3BzZmZga25sd2psbWptcGpnZm5id3dmcUBmbXdmcWxhaWZgd2Z7anB3cG5qZ2dvZkZ2cWxzZmRxbHR3a29mZGJgem5ibW1mcWZtbHZka2BicWZmcWJtcHRmcWxxamRqbXNscXdib2BvamZtd3Bmb2Zgd3FibWdsbmBvbHBmZ3dsc2pgcGBsbmptZGVid2tmcWxzd2psbXBqbnNvenFianBmZ2ZwYGJzZmBrbHBmbWBrdnFga2dmZWptZnFmYnBsbWBscW1mcWx2d3N2d25mbmxxemplcWJuZnNsb2pgZm5sZ2ZvcE12bmFmcWd2cWptZGxlZWZxcHB3em9mcGhqb29mZ29qcHdmZ2Bib29mZ3Bqb3VmcW5icWRqbWdmb2Z3ZmFmd3dmcWFxbHRwZm9qbmp3cERvbGFib3BqbWRvZnRqZ2Rmd2BmbXdmcWF2Z2Rmd21sdHFic2BxZmdqd2BvYmpucGZtZGptZnBiZWZ3emBrbGpgZnBzanFqdy5wd3pvZnBzcWZiZ25iaGptZG1mZmdmZ3F2cHBqYnNvZmJwZmZ7d2Ztd1BgcWpzd2FxbGhmbWJvb2x0cGBrYnFkZmdqdWpnZmViYHdscW5mbmFmcS5hYnBmZ3drZmxxemBsbWVqZGJxbHZtZ3RscWhmZ2tmb3NmZ0BrdnFga2puc2Jgd3BrbHZvZ2JvdGJ6cG9sZGwhI2Fsd3dsbm9qcHchPSp4dWJxI3NxZmVqe2xxYm1kZktmYmdmcS1zdnBrK2BsdnNvZmRicWdmbWFxamdkZm9idm1ga1FmdWpmdHdiaGptZHVqcGpsbW9qd3dvZmdid2ptZEF2d3dsbWFmYnZ3endrZm5mcGVscWRsd1BmYnFga2JtYGtscWJvbmxwd29sYmdmZ0BrYm1kZnFmd3ZxbXB3cWptZHFmb2xiZ05sYWpvZmptYGxuZnB2c3NvelBsdnFgZmxxZ2ZxcHVqZnRmZyVtYXBzOGBsdnFwZkJhbHZ3I2pwb2JtZz9rd25vI2BsbGhqZm1ibmY+IWJuYnlsbW5sZ2ZxbWJndWpgZmptPyxiPTkjV2tmI2dqYm9sZGtsdnBmcEFGREpNI05me2pgbHB3YnF3cGBmbXdxZmtmamRrd2JnZ2ptZEpwb2JtZ2JwcGZ3cEZuc2pxZlBga2xsb2ZlZWxxd2dqcWZgd21mYnFvem5ibXZib1Bmb2Zgdy1cdFx0TG1maWxqbWZnbmZtdiE9U2tqb2pzYnRicWdwa2JtZ29mam5zbHF3TGVlamBmcWZkYnFncGhqb29wbWJ3amxtUHNscXdwZ2ZkcWZmdGZmaG96IytmLWQtYWZram1nZ2xgd2xxb2xkZGZndm1qd2ZnPyxhPT8sYWZkam1wc29ibXdwYnBwanB3YnF3anB3anBwdmZnMDMzc3t/YGJtYmdiYmRmbWB6cGBrZm5mcWZuYmptQXFieWpvcGJuc29mb2xkbCE9YWZ6bG1nLnBgYm9mYmBgZnN3cGZxdWZnbmJxam1mRWxsd2ZxYGJuZnFiPyxrMj1cdFxcZWxxbiFvZmJ1ZnBwd3FmcHAhIyw9Dlx0LWRqZSEjbG1vbGJnb2xiZ2ZxTHtlbHFncGpwd2ZxcHZxdWp1b2pwd2ZtZWZuYm9mR2ZwamRtcGp5Zj4hYnNzZmJvd2Z7dyE9b2Z1Zm9wd2tibWhwa2pka2ZxZWxxYGZnYm1qbmJvYm16bG1mQmVxamBiYmRxZmZncWZgZm13U2Zsc29mP2FxIyw9dGxtZ2Zxc3FqYGZwd3ZxbWZnf38jeH44bmJqbSE9am1vam1mcHZtZ2J6dHFicyE9ZWJqb2ZnYGZtcHZwbmptdndmYWZiYGxtcnZsd2ZwMjYzc3t/ZnB3YndmcWZubHdmZm5iam8hb2ptaGZncWpka3c4cGpkbWJvZWxxbmJvMi1rd25vcGpkbXZzc3FqbWBmZW9sYnc5LXNtZCEjZWxxdm4tQmBgZnBwc2JzZnFwcGx2bWdwZnt3Zm1nS2ZqZGt3cG9qZ2ZxVldFLjshJWJuczgjQWZlbHFmLSNUandrcHd2Z2psbHRtZnFwbmJtYmRmc3FsZWp3aVJ2ZnF6Ym1tdmJvc2JxYm5wYWx2ZGt3ZWJubHZwZGxsZG9mb2xtZGZxaigoKiN4anBxYmZvcGJ6am1kZ2Zgamdma2xuZiE9a2ZiZ2ZxZm1wdnFmYXFibWBrc2pmYGZwYW9sYGg4cHdid2Znd2xzIT0/cWJgam1kcWZwanlmLi4lZHc4c2Jgand6cGZ7dmJvYXZxZmJ2LWlzZCEjMjMvMzMzbGF3Ymptd2p3b2ZwYm5sdm13LyNKbWAtYGxuZmd6bmZtdiEjb3pxamBwd2xnYnotam1nZmZnYGx2bXd6XFxvbGRsLUVibmpvem9sbGhmZ05icWhmd29wZiNqZVNvYnpmcXd2cWhmeio4dWJxI2VscWZwd2RqdWptZGZxcWxxcEdsbmJqbX5mb3BmeGptcGZxd0FvbGQ/LGVsbHdmcW9sZGptLWVicHdmcWJkZm13cD9hbGd6IzIzc3sjM3NxYmRuYmVxamdieml2bWpscWdsb29icXNvYmBmZ2BsdWZxcHNvdmRqbTYvMzMzI3NiZGYhPWFscHdsbS13ZnB3K2J1YndicXdmcHdmZ1xcYGx2bXdlbHF2bnBwYGtmbmJqbWdmey9lam9vZmdwa2JxZnBxZmJnZnFib2Zxdytic3NmYnFQdmFuandvam1mIT1hbGd6IT1cdCkjV2tmV2tsdmRrcGZmam1kaWZxcGZ6TWZ0cD8sdWZxamV6ZntzZnF3am1pdnF6dGpnd2s+QGxsaGpmUFdCUVcjYmBxbHBwXFxqbmJkZndrcWZiZ21id2p1ZnNsYGhmd2FseyE9XHRQenB3Zm4jR2J1amdgYm1gZnF3YmFvZnBzcWx1ZmdCc3FqbyNxZmJvb3pncWp1ZnFqd2ZuIT1ubHFmIT1hbGJxZ3BgbG9scXBgYm5zdnBlanFwdyN/fyNYXjhuZmdqYi1kdmp3YnFlam1qcGt0amd3azlwa2x0ZmdMd2tmcSMtc2tzISNicHB2bmZvYnpmcXB0am9wbG1wd2xxZnBxZm9qZmVwdGZnZm1AdnB3bG5mYnBqb3ojemx2cSNQd3FqbWRcdFx0VGtqb3diem9scWBvZmJxOXFmcGxxd2VxZm1ga3drbHZkayEqIygjIT9hbGd6PWF2emptZGFxYm1ncE5mbmFmcW1ibmYhPWxzc2ptZHBmYHdscTZzezghPXVwc2JgZnNscHdmcW5iaWxxI2BsZWVmZm5icXdqbW5id3ZxZmtic3NmbT8sbWJ1PWhibXBicG9qbWghPUpuYmRmcD5lYm9wZnRram9mI2twc2JgZjMlYm5zOCNcdFx0Sm0jI3NsdGZxU2xvcGhqLmBsb2xxaWxxZ2JtQWx3d2xuUHdicXcjLmBsdm13MS1rd25vbWZ0cCE9MzItaXNkTG1vam1mLnFqZGt3bmpvb2ZxcGZtamxxSlBBTSMzMy8zMzMjZHZqZ2ZwdWJvdmYqZmB3amxtcWZzYmpxLXtubyEjI3FqZGt3cC1rd25vLmFvbGBocWZkRntzOWtsdWZxdGp3a2ptdWpxZGptc2tsbWZwPyx3cT0OdnBqbWQjXHRcbnVicSM9JCo4XHRcbj8sd2c9XHQ/LHdxPVx0YWJrYnBiYXFicGpvZGJvZmRsbmJkemJxc2xvcGhqcHFzcGhqNF00QzVkXGJUQVxuemtcdkJsXGJRf1x2VW0FR3hcYlNNXG5tQ1xiVEFcdHdRXG5kfVxiV0BcYlRsXGJURlx0aUBcdGNUXHZCTVx2fGoEQlZcdHF3XHRjQ1xiV0lcbnBhXHRmTVxue1oFe1hcYlRGXGJWVlxiVktcdH9tBGtGXHRbXVxiUG1cYlR2XG5zSVx2cGdcdFtJXGJRcARteFx2X1dcbl5NXG5wZVx2UX1cdkd1XG5lbFxucGUEQ2gEQlZcYlRBXHRTb1xuemtcdkdMXHZ4RFxuZFsFSnoFTVlcYlFwBGxpXG5mbFxucEMFe0IFTnRcdndUXHRpX1xiVGcEUVFcbnxwXHZYTlxiUVNcdnhEBFFDXGJXWlx0cERcdlZTXGJUVwVOdARZaFxuenUES2oFTn1cdHdyXHRIYVxuX0RcdGpgXHZRfVx2V3BcbnhaBHtjXHRqaVx0QlVcbmJEBGF8XHRUblx0cFZcblpkXG5tQ1x2RVYFe1hcdGN9XHRUb1xiV2xcYlVkXHRJUVx0Y2dcdnhzXG5YV1x0d1JcdmVrXHRjfVx0XXlcdEpuXG5ycFxuZWdcbnBWXG56XFwFe1dcbnBsXG56XFxcbnpVXHRQY1x0YHtcYlZAXG5jfFxiUndcdGlfXGJWYlxud1hcdEh2BFN1XGJURlx2X1dcdldzXHZzSQVtf1xuVFRcbmRjXHRVU1x0fWZcdGlaXGJXelx0Y30ETURcdEJlXHRpRFx2QEBcYlRsXGJQdlx0fXQEU3cETWBcdm5VXHRrV1x2ZWRcbnFvXHZ4WVx0QXxcYlR6XHZ5YARCUgRCTVx0aWEEWFVcbnl1BG5eXHRmTFx0aUlcblhXXHRmRFxiV3pcYldAXHR5alx0f21cdGF2XHRCTlx2YlxcXHRwRFxiVGZcbllbXHRKblxiUXlcdFteXHZXY1x2eXUERGwEQ0pcdldqXHZIUlx0YFZcdnVXXHRReVxucEBcdkd1BXBsBEptXGJXW1xuTFBcbnhDXG5gbVx0d1EFdWkFf1JcbmJJXHR3UVx0QlpcdFdWBEJSXG5wZ1x0Y2cFdGkEQ1dcbl95XHRSZ1xiUWFcdlFCXHZXY1xuWWIFbGVcbmdFBFN1XG5MW1x0UX9cdGVhXHRkalx2XVdcbmJ+BE1gXHR3TFxiVFZcYlZIXG50f1xucGxcdHxiBXNfXGJVfFxiVGEEb1EFbHYEU2sETWBcYlR2XHZLfVxuZmxcdGNDBG9RBEJSXHRIa1x0fGRcYlFwXHRIS1x0QlpcdkhSXGJQdlx2THhcdkVaXGJUf1xiVHZcdGlEBW9EBU1VXHZ3QgRTdQVrYARTdFxudENcdFBsXHRLZ1xub2lcdGpZXHZ4WQRofVxuemtcYldaXHR/bVx2ZWBcdFRCXHRmRVxuemtcdGB6BFloXG5WfFx0SEtcdEFKXHRBSlxiVUxcdHBcXFx0cWxcblljBEtkXG5meQRZaFx0W0lcdkRnBEptXG5dblxubGJcYlVkXG57Wlx0bHVcdGZzBG9RXGJUVwRKbVx2d0JcdGVhBFloBEJDXHRzYlx0VG5cbnpVXG5feVx2eFlcdFFdXG5ndwRtdFx0T1xcXG50YlxiV1dcYlF5XHRtSVx0VltcbnlcXFxuYUJcdlJiXHR3UVxuXVEEUUpcYldnXHZXYVxiUWpcbnRDXGJWSFxuWW1cdnhzXGJWS1xuZWxcYldJXHZ4WQRDcVxudFJcdkhWXGJUbFxiVndcdGF5XGJRYVxiVlZcdH10XHRkalxucnxcdHBcXFx0d1JcbntpXG5UVFx0W0lcdGlbXHRBSlx2eHNcdl9XXHRke1x2UX1cdGNnXHRUelx0QXxcdENqXHZMbQVOfQVtf1xuYktcdGRaXHRwXFxcdGBWXHRzVlxucEBcdGlEXHR3UVx2UX1cYlRmBWthBEptXHZAQFxiVmBcdHpwXG5ATgRTd1x0aUlcdGNnXG5vaQRTdVxiVncEbG8EQ3lcdGN9XHZiXFxcdHNVBEJBXGJXSVxiVGZcbnhTXHRWcFxuZHxcYlRWXHZiQ1x0Tm8FSnVcblRDXHR8YFxue1pcdERdXGJVfFx0Y30FbG1cYlRsXHRCdlx0UGxcdGN9XGJRcFx0f21cbkxrXHRralxuQE4EU2IES09cdGpfXHRwXFxcbnpVXGJUbFxiVGdcYldJXHRjZgRYT1xiV1dcbmR6BGxpXHRCTlxuZFtcYldPBE1EXHZLQ1x0ZGpcdElfXGJWVlxueVxcXHZMbQV4bFx0eEJcdGtWXHZiXFxcdkpXXHZWU1x0VnhcdnhEXHRkewRNRFxiVGFcdHxgXHZQegRSfVx2V3MEQk1cbnNJBENOXGJUYQRKbVxucGVcdGlfXG5wVlxucmhcdFJkXHRIdlxufkFcbnhSXHZXaFx2V2tcbnhTXHZBelx2d1hcbmJJBG9RXHRmd1xucUlcblZ8XG51bgV6f1x2cGdcdGRcXFx2b0EFe0RcdGlfBXhCXGJUf1x0YFYFcXJcdFRUBGddBENBXHZ1Ulx0VkpcdFRgXG5wd1x2UmJcdElfXG5DeARSb1x2c0kEQ2oES2hcdEJ2XHRXVgRCQgVvRAV7RFxuaGMES21cdl5SXHRRRVxue0lcbnBAXG5jfAVHdFx0Y30ERGxcbnpVBXFOXHRzVgVrfVx0SGhcdnxqXG5xbwV1fFx0UV1cdmVrBX9aBE1gBFN0XG5wZVx0ZGpcYlZHXHZlRVx0f21cdldjBHxJXG5bV1x0ZkxcYlR/XHRCWgRTdVx2S2EEQ3EFTnQEWVtcbnFJXGJUdlx0Zk1cdGlAXHR9ZgRCXFxcdFF5XHZCbFxiV2cEWEQFa2NcdnhbXGJWVlx0UV1cdH9hXHRQeVx2eERcbmZJXHR9ZgVvRFx0ZGpcdFNHBWxzXHR+RARDTlxue1pcdFxcdlxuX0RcbmhjXHZ4XwRDW1x0QUpcbkxNXHRWeARDSVx0YmpcdGNeXHRjRlxudEMEU3hcdHdyBFhBXGJVXFxcdHxhXHZLXFxcYlRWXGJWalxuZHxcdGZzBENYXG50YlxiUndcdFZ4XHRBRVx0QXxcYlR/BU50XHZEZ1x0VmNcYlRsBGRAXG5wb1x0f01cdGNGXG5wZVx0aVpcdEJvXGJTcVxuZkgEbGBcYlR4XGJXZlx0SEVcdkZ7XHRjT1x0ZkRcbmxtXHZmWlxubG1cdmVVXHRkRwRCSFxiVFZcdFNpBU1XXG53WFxuelxcXHRcXGMEQ1hcbmR9XHRsfVxiUXBcYlRWXHRGflxiUX9cdGBpXG5nQAVuT1xiVWRcYlRsXG5MW1x0d1FcdGppXG50Q1x0fEpcbkxVXG5hQlx2eFkES2pcdEFKBXVOXHRpW1xucGUEU2tcdkRnXHZ4XVxiVmJcYlZWXG5lYVx0a1ZcbnFJXGJUYQRTa1xuQU9cdHBEXG50YlxudHNcbnlpXGJWZ1x0aV9cdl9XXG5MawVOdFx0eWpcdGZNBFJ/XHRpSVxiVGxcdndYXHRzVlx2TWxcbnl1XHRBSlxiVmoES09cdFdWXHZBfVx2V39cbnJwXHRpRFx2fG8FbHZcdnNJBEJNXHRkflx0Q1VcYlZiBGVWXG5wQ1x2d1RcdGpgXHRjfVx2eHNcdnBzXHZ2aFx0V1ZcdkdnXHZBZVx2Vktcdl1XXHRyZ1x2V2MFRmBcdEJyXHZiXFxcdGRaXGJRcFxucUkEa0ZcbkxrXHZBUlxiV0lcYlRnXHRic1x0ZHdcbntMXG5feVx0aVpcYlRBXHRsZ1xiVlZcYlRsXHRka1xuYGtcdGF7XHRpXwV7QQV3alx0d05cdkBAXGJUZVx0aV9cbl9EXHR3TFxuQUhcdmlLXHZla1xuW11cdHBfXHR5alxiVHZcdFVTXHRbclxue0lcbnBzBUd0XHZWS1xucGwEU31cdldQXHR8ZARNRFx2SFZcYlR/BFJ9BE1gXGJUVlxiVkgFbHYEQ2hcYldbBEtlXHRSe1x2XlJcdGFiXHRCWlx0VkFcdEJgXG5kfFxuaHMES2VcdEJlBE9pXHRSe1x0ZFxcBW5CXGJXWlx0ZFpcdFZKBU9zXHR/bQR1UVx2aFoEUUAEUVFcbmZJXGJXWwRCXFwEbGlcbnpVXG5NZARNYFxueFNcYlZWXG5cXH1cdnhEXHR/bVxiVHAESVNcbmN8XHRrVgVpflx0VntcdmhaXHR8YlxiV3RcbkBSXHZvQVx2blVcYldJXHRlYVx0QmBcdGlEXHRjfVx0VHoEQlJcdlFCBU5qXHRDUFx0W0lcYlR2XHRgVwV1Tlx2cGdcdnBnXHZXY1x0aVRcdGJzXHR3TFx0VV9cdGNcXFx0fGhcdkthXHROclx0ZkxcbnF8XG56dVxuelxcXHROclxiVWdcdHxiBG1gXGJUdlxueWRcbnJwXGJXZlx0VVgEQlZcbnprXG5kfVx0d1FcdH1mBENlXHZlZFxiVFdcYlNCXG54VVx0Y25cYlRiXG5lf1x0YVxcXHRTR1xiVXxcbnBWXG5OXFwES25cdm5VXHRBdFx0cERcdl5SXHZJcgRiW1x0UntcdGRFXHZ4RFx2V0tcdldBXGJRTFxiV0AEU3VcYlVkXG5ETVx0UGMEQ0EERGwEb1FcdEhzBXdpBHViXG5/YVxiUXAFT2JcbkxQXGJUbARZW1x2S31cdEFKXGJRfwRuXlx2c0FcYlNNXG5xTVxiV1pcbl5XXHZ6ewRTfFx0ZkRcYlZLXGJUdlxiUHYEQkJcdENQBGRGXHRpZFx2eHMEbXhcdndzXHRjQ1xudENcdHljBU1gXHZXf1xucmhcYlFwXHZ4RARcXG9cbnNJBF9rXG56dQRrRlx0ZkQEWHMEWE9cdGpwXGJUdgRCUwV7Qlx0QnJcbnpRXG5iSVx0Y3sEQkQEQlYFbk9cYlRGXHRjYQVKZFx0ZkxcdFBWXHRJX1xubEsEYG9cdHdYXG5wYVx0Z3VcYlB9BXteXGJXZlxue0lcdEJOXG5wYQRLbFx2cGdcdGNuXHRmTFx2dmgEQ3FcYlRsXHZuVVxiU3EEQ21cdHdSXGJVSlxucGVcbnlkXG5ZZwRDeVx2S1dcdGZEXG5lYQRvUVx0al9cdEJ2BG5NXHZJRFxiVGFcbnpBBXBsXG5dblxiVGFcdFJ7XHRmclxuX3lcYlVnBXtYBWtrXHZ4RAR8SQV4bFxuZnkEQ2VcdndCXG5Ma1x2ZF1cbm9pXG59aFx0UV1cbnBlXGJWdwRIawRPUVxuemtcdEFKXG5wVlxiUHZcbnlcXFx0QXsET2lcYlNCBFhBXHZlRVx0anBcbnF9XHRpRAVxTlx2XlJcdH9tXHRpWlx0QnJcYlZnXG5vaVxuXFxYXHRVX1xuY3xcdkhWXGJUZlx0VG4EXFxOBFxcTlxudUIFbHZcbnl1XHRUZFxiVGZcYlBMXHZdV1x0ZEdcbkFgXG53XlxuZ0lcbnBlXHRkd1xuelxcBWlhXGJXWlx0Y0YESm1cbntaXGJXTwRfawREZgRSUlx0ZFxcXGJWVlx2eHMEQk4FdGkEbG1cdFRkXHRdeVx2SFZcdFNvXHZ8agRYWFx0QXxcdlpeXHZHdVxiVFcFTWAEa0ZcdmhaXHZWS1x0ZEdcdkJsXHRheVxueFUFcUUFbk9cYlZ3XG5xSQRDWFxuZX9cdFBsXGJXT1x2TG1cdGRMBXVIBENtXHRkVARmblx2d0IFa2Fcdm5VXG5ATVxueVRcdEh2XHRcXH0ES2hcdGR+BFloBWt9XG5lUlx0ZFxcXGJXSVx0fGJcdEhLXHRpRFxiVFcFTVlcbnBsXGJRX1x0d3JcdkF4XHRIRVxiVGdcYlNxBXZwXHZiXFxcYldPXG5PbFxuc0lcbmZ5XHZJRFx0XFxjXG57WlxuXn5cbnBlXG5BT1x0VFRcdnh2BGtfXGJXT1x2fGpcdndCXHRReVx0aUBcdFBsXHRIYVx0ZFoFa30EcmFcdFVUXHZKY1x2ZWRcbnBAXHRRTlxuZHxcdGtqXHRIawRNYFxub2lcdHdyXHRkXFxcbmxxXG5vX1xubGJcbkxbXHRhYwRCQgRCSARDbVxucGxcdElRXGJWS1x2eHNcbmBlXHZpS1xucGEET2lcdFVTXGJUcFx0ZkRcblBHBWtrBFhBXG56XFxcbmVnXHZXaFx0d1IFcU5cbnFTXHRjbgRsb1xueFNcbl5XXHRCVVxudH9cdEhFXHRwXFxcdGZGXHRmd1xiVlZcYldAXHRha1x2VksFbHNcdFZKXGJWVlx2ZUUEXFxvXG55WFxuWW0ETWAFbExcbmR8XG56a1x0QXsFc0VcdHdRBFhUXG50f1x0UGxcdF15XHZ3VAV7cARNRFx2YlxcXHRRXQRLalx0Sm5cbkFIXHZSYlx0QlVcdEhLXHRcXGNcbmZJBW1/XG5xTVxuQFJcdFNvXG5vaQRCVFx0SHZcbl95BEtoXHRCWlx0XWlcYlVKXHRWewRTclxuYklcdkdnXHRhX1xiVFJcbmZJXG5mbFx0W0tcdElJBFN8XHZ1V1x0aUlcYldJXG5xSVx2fGoEQlZcYlZnXGJXWgRrRlx2eF1cYlRBXHRhYlx0ZnJcdGlAXHRKZFx0SmRcdnBzXG5BT1xiVGEFeHVcdGlEXG56a1x0fGRcdHxgXGJXW1x0bFBcdGRHXGJWVlx2d31cdnFPXHRpW1xiUX9cYlR6XHZWRlx0d04FdHNcdGR3XGJUdlxuZVNcbmdpXHROcgV5U1xucGVcYlZWXGJTcVxuYG1cdHlqXHRCWlx2V1hcYlNCXHRjXFxcblVSXHRbSlx0Y18Ebk1cYldRXHZBeFxuTWRcdEJyBXVpXHZ4WVxiU01cdldjXHZ8alx2eHNcdH1RXHRCT1xiUExcYldXXHRmTVxuQU9cdFBjXHZlVQRlXlxiVGdcbnFJXHRhY1xiUHZcdGNGBG9RXHRRf1x2aFoFa2FcbnpcXFx0aUtcdEJVXG5ga1x0Q1AEU3wETWBcbntJXHRTewRfT1x0QloEWmkEU2tcdHBzXHRwXFxcbll1XG5dc1xueENcYld0XG5iRFx0a1Zcdkd1BXlTXG5xQVx0W3JcbmVLBE1gXHRkWgVsTFxiVWdcYlRsXG5iRFx0VVNcdmJcXFx0cFZcbmNjBFNcXFx0Y3RcdGB6XGJQTFx2V3NcbkFgXG5lZ1xiU3EFdUUEQ1JcdkRnXHRgV1x2entcdldjBFNrBFNrXHRiV1xiVWdcdGVhXG54Wlx0aUlcdFVYXHRWSlxucW5cdFN7XHZSYlxiVFFcbnBsBUd0XHZ1VwV1alxucEZcbnFJXHRmTFx0W0lcdGlhBFhPXG55dVx2RGdcdmVkXHRxewRWR1xiUX8Fa2FcdFZqXHRrVlx0eEJcbmR8XG5wQFx0UU5cdFBjXHRwcwRdalx0a1ZcdG9VXGJUcFxuelUFbkJcdkJdXHRhe1xiVkBcbl1uBG1gXHRjelx0UnsEbWBcYlFhXHZ3VFxiU00FTVkFcU5cdGRqBX5zXHZRfQVNWVx2TUJcdEJ2XHR3UlxiUmdcdlF9XHRxbFx2S0NcbnJtBXh1BENDXHZ3Qlx2dmhcdEJxBFhxXG5wVlx0aV8FT2IFdUVcbmJkXG5xb1x2e2lcbkN+XHRCTFx2ZUUFdUhcYlZqBEV5BEd6XHZ6Ulx2e2lcdGNmXG57WlxuXW4EWEFcdkd1XHZuVVx0aFNcdkdJXG5DY1x0SEVcYlRBXHRIQgRCSARDalxuQ2NcYlRGXHRIRVxuWElcdEF7XGJRf1x0Y1xcXHZtT1x2V1hcbmZIXG5wQAVNWVxiVEZcbmxLXHRCdFxuelVcdFRUBEttXHZ3VFxucFZcbmR0XHZ5SVx0VnhcdFF/XHRSZ1x0VGRcbnpVXGJSU1xuTE1cdHdBBG5NXHRUblxuZFNcdF1nXG5MY1x2d0JcdH10XHRbSVx0Q1AEa1hcdkZtXHZoWgVtf1x0aVtcbnBAXHZRfVx2V39cdHxkXG5NT1xuTWRcdGZfXHRmRFx0Y0pcdEh6XHZSYlx0aW9cdFB5BFlbXG54VVx0Y3RcdkBAXHR3d1xiUHYEQk0ERkZcbnRiBXZ8XHZLbVx0QnFcdEJxBEtoBGBvXG5aZARYVVx0aV1cdHxgXHRTdARCXFxcYlF/XHZfV1x0VEpcbnFJXHR8YVx0QXtcdnVQBE1EXHRQbFxueFJcdGZMXHZ3c1x0Y3tcdGRcXFxiVmBcbmVnXHRISwVrY1xuZHxcYlZWXG55XFwFa2NcdGldXGJWR1x0YFZcdHNzXHRJX1x0QUVcdGJzXHRkdVxuZWxcdHBEXHZXf1xucXMFbHZcYlNNBFppXHZWSwVpYVx2UUJcdFF/XG57WlxiUHRcdktsXG5sS1xuaHNcbmRTXGJWSwVtZlxuZF5cdGtWXHRjT1xuY3xcYlZIXHRcXF1cYlR2XGJTcVx0bUlcdkRnXHRWSlx0Y25cbnlcXFxiVmdcYlR2XG55WFxiVEZcdF1dXGJUcFxub2lcbmhzXHZlVVxuQmZcdGRqBU1yXG58cFx0XFxnXHRdclxiVmIFe0RcbmRbBFhOXHRmTVx0T1xcBXNfXHRjZlx0aVoEWE5cdldjXHRxdlxuYG1cdFVeBW9EXG5kfFx2R2dcdGRFXHZ3ZgRsbwR1fVxuZHwFb1FcdGBpBE9pXHZ4RFxuZFpcbkN4BFl3XG56a1xudGJcbmd3XHR5alx0QmBcbnlYXHZwc1xudENcdnBQXHZxd1xiUHVcYlBYXHREbVxucHcFTmpcdHNzXHRhR1x2eHNcYlB0XG5vTARHelx0T2tcdGlAXHRpXQRlQ1x0SVFcdGlpXHRkalx2QEpcdHxkBXVoXGJXWlx2ZVVcdm5VXGJUYVx0Y0MEZ11cbnprBFloXGJWS1xuTFVcbnBAXG50YlxudFJcdENqXHZOUFx0aUBcYlB7XG5cXH1cbntjXG53WFx0ZkxcYlZHXHRje1x0fGBcdEFKXHR8Q1x0ZkQFbG5cdHxkXHRic1xucUkFe0JcdkF4XG5wQFxuemtcdlJiBU9zXHZXUwRlXlx2RF9cdEJ2XHZXZFxiVmJcdnhzXHZlRVxiUndcbl1uXG58cFx2Z3xcdGZ3BWtjXGJUSQVrYVxuXFxUBFNwXHRqdVx2cHNcbnBlBXV8XHZHclxiVmVcdENVBF1NBFhVXHZ4RFxiVGFcdElRXHZXcVx0Q1VcdGFtXHRkalxiU28EU3dcdm5VBENoXHRRXQVzX1xiUHRcdGZTXGJUYVx0XFx9XG5ATwRZY1x0VVpcYlR4XG5wZVx2blVcbnpVXHR8fVx0aURcbnpcXFxiU01cdnhEBEJSXG56UVx0UU4EXU0EWWhcbkxQXHZGbVx2TFgFdmNcdnFsBWthXHRIS1xiVmJcbnRDXG5DeVxiVHZcbnVWBG9RXHRgelx0W0lcdEJgXHZSYlx0eWpcdHNiXHZXc1xiVGxcdGtWXHZlZFxuZX8FbExcdnhOXHR/bVxuSm5cdGpZXHZ4RFxiVmJcYlNxXHZ5dVx0d0xcdlhMXGJUQVx0cGdcdEF0XHRuRARYWFx0d1JcbnBsXG5odwV5U1xucHNcdGNPXGJXW1x2fGoEWE5cdHNWXHRwXFxcdEJlXG5iflxuQUpcbl1lBWtgBXFOXHRkd1x0V1ZcdEhFXHZFVgVKelx0aWRcdEJgXHR6aAVFXVx0ZkRcYlRnBXFOXGJUYVx0amEEQ3ZcYlNNXG5oY1xiVWUFdF9cdGllBGddXHR3UVxuUG5cYlZCXHRqd1xiVmdcdmJFXHRCWlx2UkhcYlB7XHRqcFxuXFx9XHRhX1x0Y0NcdHxhXHZEXVx0QlpcdGlbXHRmRFx2eFdcbm9fXHRkXFxcbl9EXG50Ylx0XFxjXHRBSlxubEsEb1EEbG9cdkx4XHZNQFxiV1oES25cdnBnXG5UaVxuSXZcbnxyXHZAfQVKegVMbQVXaAVrfQVsblx2eERcbl1zBGdjXHZwc1x0QnJcYlRXXHZCTQV0WlxuQlkERFdcdGpmXHZTVwRDfVxucW9cdGRFXHRtdlx0SVFcYlBQXGJVYgVsdgRCQ1xuelFcdFtJXHZnbFxuaWdcYlVzBEJUXHZiQ1xiU3FcdHNVXHRpV1xuSm5cdFNZXHRIS1x0cmdcbnBWXHZJRFx2fGoES09cdGBTXHR8YWB2Ym1nbGZtdWpicW5iZ3FqZ2F2cGBicWptamBqbHdqZm5zbHNscXJ2ZmB2Zm13YmZwd2JnbHN2ZmdmbWl2ZmRscGBsbXdxYmZwdy9NbW1sbmFxZndqZm1mbXNmcWVqb25ibWZxYmJuamRscGBqdmdiZ2BmbXdxbGJ2bXJ2ZnN2ZmdmcGdmbXdxbHNxam5mcXNxZmBqbHBmZC9WbWF2Zm1scHVsb3VmcXN2bXdscHBmbmJtYmtiYS9BYmJkbHB3bG12ZnVscHZtamdscGBicW9scGZydmpzbG1qL11scG52YGtscGJvZHZtYmBscXFmbGpuYmRmbXNicXdqcWJxcWphYm5icS9BYmtsbmFxZmZuc29mbHVmcWdiZ2BibmFqbG52YGticGV2ZnFsbXNicGJnbG8vQW1mYnNicWZgZm12ZnVicGB2cXBscGZwd2JhYnJ2amZxbG9qYXFscGB2Ym13bGJgYGZwbG5qZHZmb3VicWpscGB2YndxbHdqZm1mcGRxdnNscHBmcS9NbWZ2cWxzYm5mZ2pscGVxZm13ZmJgZnFgYmdmbi9NcGxlZnF3YmBsYGtmcG5sZ2ZvbGp3Ym9qYm9md3FicGJvZC9WbWBsbnNxYmB2Ym9mcGZ7anB3ZmB2ZnFzbHBqZm1nbHNxZm1wYm9vZmRicXVqYmlmcGdqbWZxbG52cWBqYnNsZ3EvTXN2ZnB3bGdqYnFqbHN2ZmFvbHJ2amZxZm5ibXZmb3NxbHNqbGBxanBqcGBqZnF3bHBmZHZxbG52ZnF3ZmV2Zm13ZmBmcXFicWRxYm1nZmZlZmB3bHNicXdmcG5mZ2pnYnNxbHNqYmxlcWZgZndqZnFxYmYubmJqb3VicWpicGVscW5icGV2d3ZxbGxhaWZ3bHBmZHZqcXFqZnBkbG1scW5icG5qcG5scC9WbWpgbGBibmptbHBqd2pscHFieS9fbWdmYWpnbHNxdmZhYndsb2ZnbHdmbS9BYmlmcC9WcGZwc2ZxbGBsYGptYmxxamRmbXdqZm1nYmBqZm13bGAvTWdqeWtiYW9icXBmcS9BYm9id2ptYmV2ZnF5YmZwd2pvbGR2ZnFxYmZtd3FicS9Fe2p3bG8vX3NmeWJkZm1nYnUvQWdmbGZ1andicXNiZGptYm5md3FscGlidWpmcXNiZ3FmcGUvTWBqb2BiYWZ5Yi9NcWZicHBib2pnYmZtdS9BbGlicy9fbWJhdnBscGFqZm1mcHdme3dscG9vZnVicXN2ZmdibWV2ZnF3ZmBsbi9WbWBvYnBmcGt2bmJtbHdmbWpnbGFqb2FibHZtamdiZ2Zwdy9NcGZnandicWBxZmJnbDxYPFc9Yz1rPW48UjxWPFxcPFY8VDxXPFQ9YT1uPFI8Xj1tPFk8WTxfPFI8Uz1sPFQ9bjxcXDxWPFk9ZTxZPW88WjxZPHY8XFw8VjxdPFk8WzxdPWc8VzxSPFE8VDx+PW08WTxTPFI8WDxBPW48Uj1uPFI8UD1rPFk8UDxRPFk9bjxXPFk9bj1sPFxcPFs8UjxRPFxcPF88WDxZPFA8UTxZPHg8Vz1jPHM9bDxUPFE8XFw9bTxRPFQ9aT1uPFk8UDxWPW48UjxfPFI8WDxePFI9bj1uPFxcPFA8TTxEPHw8UDxcXD1jPEs9bjxSPF48XFw9bTxePFxcPFA8WTxQPW88TjxcXDxWPFg8XjxcXDxRPFxcPFA9YT1uPFQ9YT1uPW88fjxcXDxQPW48WT1pPFM9bDxSPW49bz1uPFE8XFw8WDxYPFE9Yzx+PFI9bj1uPWw8VDxRPFk8VTx+PFxcPW08UTxUPFA9bTxcXDxQPW48Uj1uPWw9bzxdPHI8UTxUPFA8VD1sPFE8WTxZPHI8cjxyPFc8VD1qPWE9bjxcXDxyPFE8XFw8UTxZPFA8WDxSPFA8UDxSPFU8WDxePFk8UjxRPFI9bT1vPFhcZkh5XGZJa1xmSFVcZklkXGZIeVxmSWxcZkhUXGZJa1xmSHlcZkhSXGZIeVxmSWdcZkh4XGZIXFxcZkhGXGZIXFxcZkhEXGZJa1xmSGNcZkh5XGZIeVxmSFNcZkhBXGZJbFxmSGtcZkhUXGZIeVxmSFxcXGZISFxmSWdcZkhVXGZJZ1xmSGpcZkhGXGZIVVxmSWxcZkhDXGZIVVxmSENcZkhSXGZISFxmSHlcZkhJXGZIUmliZHFibVxmSGpcZkhwXGZIcFxmSWdcZkhpXGZIQFxmSEpcZklnXGZIe1xmSGRcZkhwXGZIUlxmSHtcZkhjXGZIVVxmSEJcZkhrXGZIRFxmSFlcZkhVXGZIQ1xmSWtcZkhJXGZJa1xmSElcZklsXGZIdFxmSFxcXGZIcFxmSEBcZkhKXGZJbFxmSHlcZkhkXGZIcFxmSWxcZkhZXGZJa1xmSERcZkhkXGZIRFxmSGNcZkhVXGZIXFxcZkhlXGZIVFxmSEJcZklrXGZIeVxmSEJcZkhZXGZJZ1xmSF5cZklrXGZIVFxmSEBcZkhCXGZIZFxmSEpcZklrXGZIf1xmSFxcXGZIalxmSEJcZkhAXGZIVFxmSEFcZkhcXFxmSEBcZkhEXGZIdlxmSF5cZkhCXGZIRFxmSGpcZkh7XGZIVFxmSWxcZkheXGZJbDRVNWg1ZTRJNWg1ZTVrNFxcNEs0TjRCNF00VTRDNEM0SzVoNWU1azRcXDVrNFk1ZDRdNFY1ZjRdNW80SzVqNWQ1aDRLNEQ1ZjVqNFU0XTRaNFxcNWg1bzVrNWo0SzVmNWQ1aTVuNEs1aDRVNWg1ZjRLNWo0SzVoNW81ajRBNEY1ZTVuNEQ1aDVkNEE0RTRLNEI0XTVtNW40WzRVNEQ0QzRdNW81ajRJNFxcNEs1bzVpNEs0SzRBNEM0STVoNEs1bTVmNWs0RDRVNFo1bzVmNW00RDRBNEc1ZDVpNWo1ZDVrNWQ0TzVqNEs0QDRDNEs1aDVrNEs0XzVoNWk0VTVqNEM1aDVmNF80VTRENF00WTVoNWU1aTVqNFxcNEQ1azRLNE81ajVrNWk0RzVoNW81ajRGNEs1aDRLNEE1ZjRHNWk0WTRdNFg0XTRBNEE1ZDVoNWQ1bTVmNEs0XFw0SzVoNW81aDVpNF00RTRLNWo0RjRLNWg1bTRPNEQ1ZDRCNEs0WTRPNWo0RjRLNWo1azRLNWg1ZjRVNFo1ZDVkNW40QzRLNEQ1ajRCNWY0XTRENWo0RjVoNW81aTRYNEs0TTVkNWs1ZjRLNEQ1ZDVuNFk0WTVkNWk0SzRdNW41aTRPNEE0QzVqNEE1ajRVNEM1aTRdNE81ZjRLNEE0RTVvNEY0RDRDNWQ1ajVmNEA0RDVpNWo1azRGNEE0RjRANWs0RTRfNWo0RTVmNEY1aTVvNF00RTRWNF40RTVqNW00XzRENWY0RjVoNWg1azVoNWo0SzRGNWg1bzVuNWg0RDVoNWk0SzRVNWo1azRPNWQ1aDRYNWY0TTVqNWQ0XTRPNWk0SzVtNWY1bzRENW81aDRcXDRLNEY0XTRGNEQ0RDRPNWo1azVpNF80SzVqNW80RDVmNFU1bTVuNEM0QTRfNWo1aDVrNWk0WDRVNF00TzVrNWg0WDVrNF01bjRbNF00WzVoNERzcWxlam9mcGZxdWpgZmdmZWJ2b3dram5wZm9lZ2Z3YmpvcGBsbXdmbXdwdnNzbHF3cHdicXdmZ25mcHBiZGZwdmBgZnBwZWJwa2psbT93andvZj1gbHZtd3F6YmBgbHZtd2BxZmJ3Zmdwd2xxamZwcWZwdm93cHF2bW1qbWRzcWxgZnBwdHFqd2ptZGxhaWZgd3B1anBqYW9mdGZvYGxuZmJxd2pgb2Z2bWhtbHRtbWZ3dGxxaGBsbnNibXpnem1ibmpgYXFsdHBmcXNxanViYHpzcWxhb2ZuUGZxdWpgZnFmcHNmYHdnanBzb2J6cWZydmZwd3FmcGZxdWZ0ZmFwandma2pwd2xxemVxamZtZ3Bsc3dqbG1wdGxxaGptZHVmcXBqbG1uam9vamxtYGtibW1mb3RqbWdsdC1iZ2dxZnBwdWpwandmZ3RmYndrZnFgbHFxZmB3c3FsZ3Zgd2ZnanFmYHdlbHF0YnFnemx2I2BibXFmbmx1ZmdwdmFpZmB3YGxtd3Fsb2JxYGtqdWZgdnFxZm13cWZiZ2ptZG9qYXFicXpvam5qd2ZnbmJtYmRmcWV2cXdrZnFwdm5uYnF6bmJga2ptZm5qbXZ3ZnBzcWp1YndmYGxtd2Z7d3NxbGRxYm5wbGBqZnd6bXZuYWZxcHRxand3Zm1mbWJhb2Znd3FqZGRmcXBsdnFgZnBvbGJnam1kZm9mbmZtd3NicXdtZnFlam1ib296c2ZxZWZgd25mYm1qbWRwenB3Zm5waGZmc2ptZGB2b3d2cWYlcnZsdzgvaWx2cW1ib3NxbGlmYHdwdnFlYmBmcCVydmx3OGZ7c2pxZnBxZnVqZnRwYWJvYm1gZkZtZG9qcGtAbG13Zm13d2txbHZka1NvZmJwZiNsc2ptamxtYGxtd2Jgd2J1ZnFiZGZzcWpuYnF6dWpvb2JkZlBzYm1qcGtkYm9vZnF6Z2Zgb2ptZm5mZndqbWRuanBwamxtc2xzdm9icXJ2Ym9qd3puZmJwdnFmZGZtZnFib3BzZmBqZnBwZnBwamxtcGZgd2psbXRxandmcXBgbHZtd2Zxam1qd2pib3Fmc2xxd3BlamR2cWZwbmZuYWZxcGtsb2dqbWRnanBzdndmZmJxb2pmcWZ7c3FmcHBnamRqd2Jvc2pgd3ZxZkJtbHdrZnFuYnFxamZnd3FiZWVqYG9mYmdqbWRga2JtZGZnYGZtd3Fib3VqYHdscXpqbmJkZnAscWZicGxtcHB3dmdqZnBlZmJ3dnFmb2pwd2ptZG52cHcjYWZwYGtsbG9wVWZxcGpsbXZwdmJvb3pmc2pwbGdmc29iemptZGRxbHRqbWRsYXVqbHZwbHVmcW9ienNxZnBmbXdiYHdqbG1wPyx2bz0OXHR0cWJzc2ZxYm9xZmJnemBmcXdiam1xZmJvand6cHdscWJkZmJtbHdrZnFnZnBod2xzbGVlZnFmZ3Nid3dmcW12bXZwdmJvR2pkandib2Bic2p3Ym9UZmFwandmZWJqb3ZxZmBsbW1mYHdxZmd2YGZnQm1ncWxqZ2dmYGJnZnBxZmR2b2JxIyVibnM4I2Jtam5ib3BxZm9mYnBmQnZ3bG5id2Rmd3dqbWRuZndrbGdwbWx3a2ptZFNsc3ZvYnFgYnN3amxtb2Z3d2ZxcGBic3d2cWZwYGpmbWBmb2pgZm1wZmBrYm1kZnBGbWRvYm1nPjIlYm5zOEtqcHdscXojPiNtZnQjQGZtd3Fib3ZzZ2J3ZmdQc2ZgamJvTWZ3dGxxaHFmcnZqcWZgbG5uZm13dGJxbWptZEBsb29mZGZ3bGxvYWJxcWZuYmptcGFmYGJ2cGZmb2Zgd2ZnR2Z2d3Bga2VqbWJtYGZ0bHFoZnFwcnZqYGhvemFmd3RmZm1me2Jgd296cGZ3d2ptZGdqcGZicGZQbGBqZnd6dGZic2xtcGZ7a2phanclb3c4Ii4uQGxtd3Fsb2BvYnBwZnBgbHVmcWZnbHZ3b2ptZmJ3d2JgaHBnZnVqYGZwK3RqbWdsdHN2cXNscGZ3andvZj4hTmxham9mI2hqb29qbWRwa2x0am1kSndib2pibWdxbHNzZmdrZmJ1am96ZmVlZmB3cC4yJF4qOFx0YGxtZWpxbkB2cXFmbXdiZ3VibWBmcGticWptZGxzZm1qbWRncWJ0am1kYWpvb2psbWxxZ2ZxZmdEZnFuYm16cWZvYndmZz8sZWxxbj1qbWBvdmdmdGtmd2tmcWdmZWptZmdQYGpmbWBmYGJ3Ym9sZEJxd2pgb2Zhdnd3bG1wb2JxZGZwd3ZtamVscW5pbHZxbWZ6cGpnZmFicUBramBiZGxrbG9qZ2J6RGZtZnFib3NicHBiZGYvJXJ2bHc4Ym1qbmJ3ZmVmZm9qbWRicXFqdWZnc2JwcGptZG1id3ZxYm9xbHZka296LVx0XHRXa2YjYXZ3I21sd2dmbXBqd3pBcWp3YmptQGtqbWZwZm9iYGgjbGV3cWphdndmSnFmb2JtZyEjZ2J3Yi5lYmB3bHFwcWZgZmp1ZndrYncjanBPamFxYnF6a3ZwYWJtZ2ptI2ViYHdiZWVianFwQGticW9mcHFiZ2pgYm9hcWx2ZGt3ZWptZ2ptZG9ibWdqbWQ5b2JtZD4hcWZ3dnFtI29mYmdmcXBzb2JtbWZnc3Fmbmp2bnNiYGhiZGZCbmZxamBiRmdqd2psbV4lcnZsdzhOZnBwYmRmbWZmZyN3bHVib3ZmPiFgbG5zb2Z7b2xsaGptZHB3YndqbG1hZm9qZnVmcG5ib29mcS5ubGFqb2ZxZmBscWdwdGJtdyN3bGhqbWcjbGVFanFmZWx7emx2I2JxZnBqbmpvYnFwd3ZnamZnbmJ7am52bmtmYmdqbWRxYnNqZ296YG9qbmJ3ZmhqbWRnbG5mbmZxZGZnYm5sdm13cGVsdm1nZmdzamxtZmZxZWxxbnZvYmd6bWJwd3prbHQjd2wjUHZzc2xxd3FmdWZtdmZmYGxtbG56UWZwdm93cGFxbHdrZnFwbG9namZxb2JxZGZvemBib29qbWQtJXJ2bHc4QmBgbHZtd0ZndGJxZyNwZmRuZm13UWxhZnF3I2ZlZWxxd3BTYmBqZWpgb2ZicW1mZ3ZzI3Rqd2trZmpka3c5dGYja2J1ZkJtZGZvZnBtYndqbG1wXFxwZmJxYGtic3NvamZnYmBydmpxZm5icHBqdWZkcWJtd2ZnOSNlYm9wZndxZmJ3ZmdhamRkZnB3YWZtZmVqd2dxanVqbWRQd3ZnamZwbmptam52bnNmcWtic3BubHFtam1kcGZvb2ptZGpwI3ZwZmdxZnVmcXBmdWJxamJtdyNxbG9mPiFuanBwam1kYmBramZ1ZnNxbG5sd2Zwd3ZnZm13cGxuZmxtZmZ7d3FmbmZxZnB3bHFmYWx3d2xuOWZ1bG91Zmdib28jd2tmcGp3Zm5ic2ZtZG9qcGt0Ynojd2wjI0J2ZHZwd3B6bmFsb3BAbG5zYm16bmJ3d2ZxcG52cGpgYm9iZGJqbXB3cGZxdWptZH4qKyo4Dlx0c2J6bmZtd3dxbHZhb2ZgbG1gZnN3YGxuc2JxZnNicWZtd3Bzb2J6ZnFwcWZkamxtcG5sbWp3bHEjJCRXa2YjdGptbWptZGZ7c29scWZiZ2Jzd2ZnRGJvb2ZxenNxbGd2YGZiYWpvand6Zm1rYm1gZmBicWZmcXAqLSNXa2YjYGxvb2Zgd1BmYnFgayNibWBqZm13ZntqcHdmZ2VsbHdmcSNrYm1nb2Zxc3FqbXdmZ2BsbXBsb2ZGYnB3ZnFtZntzbHF3cHRqbWdsdHBAa2JtbWZvam9vZmRib21mdndxYm9wdmRkZnB3XFxrZmJnZnFwamRtam1kLWt3bm8hPXBmd3dvZmd0ZnB3ZnFtYGJ2cGptZC50ZmFoandgb2JqbmZnSXZwd2pgZmBrYnN3ZnF1amB3am5wV2tsbmJwI25seWpvb2JzcWxuanBmc2Jxd2pmcGZnandqbG1sdndwamdmOWVib3BmL2t2bWdxZmdMb3puc2pgXFxhdnd3bG1idndrbHFwcWZiYGtmZ2BrcWxtamBnZm5ibWdwcGZgbG1ncHNxbHdmYHdiZ2xzd2Znc3Fmc2JxZm1mandrZnFkcWZid296ZHFmYndmcWx1ZnFib29qbnNxbHVmYGxubmJtZ3BzZmBqYm9wZmJxYGstdGxxcGtqc2V2bWdqbWR3a2x2ZGt3a2pka2Zwd2ptcHdmYmd2d2pvand6cnZicXdmcUB2b3d2cWZ3ZnB3am1kYG9mYnFvemZ7c2xwZmdBcWx0cGZxb2phZnFib34jYGJ3YGtTcWxpZmB3ZntibnNvZmtqZ2YrKjhFb2xxamdiYm1wdGZxcGJvb2x0ZmdGbnNmcWxxZ2ZlZm1wZnBmcWpsdnBlcWZmZ2xuUGZ1ZnFiby5hdnd3bG1FdnF3a2ZxbHZ3I2xlIyI+I212b293cWJqbWZnR2ZtbmJxaHVsamcrMyosYm9vLWlwc3FmdWZtd1FmcnZmcHdQd2Zza2ZtXHRcdFRrZm0jbGFwZnF1Zj8sazE9Dlx0TmxnZnFtI3NxbHVqZ2YhI2Jvdz4hYWxxZ2ZxcC1cdFx0RWxxI1x0XHROYm16I2Jxd2pwd3BzbHRmcWZnc2ZxZWxxbmVqYHdqbG13enNmI2xlbmZnamBib3dqYGhmd3Bsc3NscGZnQGx2bWBqb3Rqd21mcHBpdnB3amBmRGZscWRmI0Fmb2Rqdm4tLS0/LGI9d3Rqd3dmcW1sd2Jhb3p0Ymp3am1kdGJxZWJxZiNMd2tmcSNxYm1oam1kc2txYnBmcG5mbXdqbG1wdnF1anVmcGBrbG9icT8scz0OXHQjQGx2bXdxempkbWxxZmdvbHBwI2xlaXZwdyNicERmbHFkamJwd3FibWRmP2tmYmc9P3B3bHNzZmcyJF4qOA5cdGpwb2JtZ3BtbHdiYW9mYWxxZ2ZxOW9qcHcjbGVgYnFxamZnMjMzLzMzMz8sazA9XHQjcGZ1ZnFib2FmYGxuZnBwZm9mYHcjdGZnZ2ptZDMzLWt3bm9ubG1icWBrbGVlI3drZndmYmBrZnFramRrb3ojYWpsb2xkem9qZWYjbGVscSNmdWZtcWpwZiNsZSVxYnJ2bDhzb3ZwbG1ma3Ztd2ptZCt3a2x2ZGtHbHZkb2JwaWxqbWptZGBqcWBvZnBFbHEjd2tmQm1gamZtd1VqZndtYm51ZmtqYG9mcHZgayNicGBxenB3Ym91Ym92ZiM+VGptZ2x0cGZtaWx6ZmdiI3BuYm9vYnBwdm5mZz9iI2pnPiFlbHFmamRtI0JvbyNxamtsdCN3a2ZHanBzb2J6cWZ3anFmZ2tsdGZ1ZnFramdnZm04YWJ3d29mcHBmZmhqbWRgYmFqbWZ3dGJwI21sd29sbGgjYndgbG1ndmB3ZGZ3I3drZklibXZicXprYnNzZm1wd3ZxbWptZGI5a2x1ZnFMbW9qbWYjRXFmbWBrI29iYGhqbWR3enNqYGJvZnt3cWJgd2ZtZm5qZnBmdWZtI2plZGZtZnFid2dmYGpnZmdicWYjbWx3LHBmYnFga2Fmb2pmZXAuam5iZGY5b2xgYndmZ3B3YndqYC1vbGRqbSE9YGxtdWZxd3VqbG9mbXdmbXdmcWZnZWpxcHchPWBqcWB2andFam1vYm1nYGtmbmpwd3BrZiN0YnAyM3N7OCE9YnAjcHZga2dqdWpnZmc/LHBzYm09dGpvbyNhZm9qbWYjbGViI2RxZmJ3bnpwd2ZxeixqbWdmey1lYm9vam1kZ3ZmI3dsI3Fiam90YnpgbG9vZmRmbmxtcHdmcWdmcGBmbXdqdyN0andrbXZgb2ZicUlmdGpwayNzcWx3ZnB3QXFqd2pwa2VvbHRmcXBzcWZnamB3cWZlbHFucGF2d3dsbSN0a2wjdGJwb2Zgd3ZxZmptcHdibXdwdmpgamdmZGZtZnFqYHNmcWpsZ3BuYnFoZndwUGxgamJvI2VqcGtqbWRgbG5ham1mZHFic2tqYHRqbW1mcXA/YXEjLD0/YXojd2tmI01id3ZxYm9TcWp1YmB6YGxsaGpmcGx2d2BsbmZxZnBsb3VmUHRmZ2pwa2FxamZlb3pTZnFwamJtcGwjbnZga0BmbXd2cXpnZnNqYHdwYGxvdm5tcGtsdnBqbWRwYHFqc3dwbWZ7dyN3bGFmYnFqbWRuYnNzam1kcWZ1anBmZ2lSdmZxeisudGpnd2s5d2p3b2YhPXdsbG93anNQZmB3amxtZ2ZwamRtcFd2cWhqcGt6bHZtZGZxLW5id2BrK34qKyo4XHRcdGF2cW1qbWRsc2ZxYndmZ2ZkcWZmcHBsdnFgZj5RamBrYnFnYG9scGZvenNvYnB3amBmbXdxamZwPyx3cT0OXHRgbG9scTkgdm8jamc+IXNscHBmcHBxbG9vam1kc2t6cGpgcGViam9qbWRme2ZgdndmYGxtd2Zwd29qbWgjd2xHZmVidm93P2FxIyw9XHQ5I3dxdmYvYGticXdmcXdsdnFqcG5gb2JwcGpgc3FsYGZmZ2Z7c29iam0/LGsyPQ5cdGxtb2ptZi08e25vI3Vma2Zvc2ptZGdqYm5sbWd2cGYjd2tmYmpxb2ptZmZtZyMuLj0qLWJ3d3ErcWZiZ2ZxcGtscHdqbWQgZWVlZWVlcWZib2p5ZlVqbWBmbXdwamRtYm9wI3BxYD4hLFNxbGd2YHdnZnBzandmZ2p1ZnFwZndmb29qbWRTdmFvamAja2ZvZyNqbUlscGZzayN3a2Zid3FmYmVlZmB3cD9wd3pvZj1iI29icWRmZ2xmcG0kd29id2ZxLyNGb2ZuZm13ZWJ1amBsbWBxZmJ3bHFLdm1kYnF6Qmpxc2xxd3BmZiN3a2ZwbCN3a2J3Tmpga2Jmb1B6cHdmbnBTcWxkcWJucC8jYm1nIyN0amd3az5mJXJ2bHc4d3FiZ2ptZG9mZXchPVx0c2ZxcGxtcERsb2dmbSNCZWVianFwZHFibm5icWVscW5qbWRnZnB3cWx6amdmYiNsZWBicGYjbGVsb2dmcHcjd2tqcCNqcC1wcWAjPiNgYnF3bGxtcWZkanB3cUBsbm5sbXBOdnBvam5wVGtidyNqcGptI25ibXpuYnFoam1kcWZ1ZmJvcEptZ2ZmZy9mcnZib296LHBrbHRcXGJsdndnbGxxZnBgYnNmK0J2cHdxamJkZm1md2pgcHpwd2ZuL0ptI3drZiNwand3am1kS2YjYm9wbEpwb2JtZ3BCYGJnZm56XHRcblxuPyIuLkdibWpmbyNham1nam1kYW9sYGghPWpuc2xwZmd2d2pvanlmQmFxYmtibitme2Bmc3d4dGpnd2s5c3Z3d2ptZCota3dubyt/fyNYXjhcdEdCV0JYIyloandga2Ztbmx2bXdmZ2Jgd3ZibyNnamJvZmB3bmJqbW96I1xcYW9ibWgkam1wd2Jvb2Z7c2Zxd3BqZSt3enNmSncjYm9wbCVgbHN6OCMhPVdmcW5wYWxxbSNqbUxzd2psbXBmYnB3ZnFtd2JvaGptZGBsbWBmcW1kYmptZmcjbG1kbGptZGl2cHdqZXpgcWp3amBwZWJgd2xxemp3cCNsdG1icHBidm93am11andmZ29icHdqbWRranAjbHRta3FmZT4hLCEjcWZvPiFnZnVmb2xzYGxtYGZxd2dqYmRxYm5nbG9vYnFwYG92cHdmcXNrczxqZz5ib2Bsa2xvKjh+KisqOHZwam1kI2I9P3BzYm09dWZwcGZvcHFmdWp1Ym9CZ2dxZnBwYm5id2Z2cWJtZ3Fsamdib29mZGZnam9vbWZwcHRib2hqbWRgZm13ZnFwcnZib2plem5id2BrZnB2bWplamZnZnt3am1gd0dmZWZtcGZnamZnI2ptXHRcbj8iLi4jYHZwd2xucG9qbWhqbWRPand3b2YjQWxsaCNsZWZ1Zm1qbWRuam0taXA8YnFmI3drZmhsbXdiaHd3bGdieiRwLWt3bm8hI3dicWRmdz50ZmJxam1kQm9vI1FqZDhcdH4qKyo4cWJqcGptZCNCb3BsLyNgcXZgamJvYmFsdnchPWdmYG9icWYuLj1cdD9wYGVqcWZlbHticCNudmBrYnNzb2pmcGptZ2Z7LyNwLyNhdncjd3pzZiM+I1x0Dlx0PyIuLndsdGJxZ3BRZmBscWdwU3FqdWJ3ZkVscWZqZG1TcWZuamZxYGtsamBmcFVqcXd2Ym9xZnd2cW1wQGxubmZtd1NsdGZxZmdqbW9qbWY4c2x1ZnF3emBrYm5hZnFPanVqbWQjdWxvdm5mcEJtd2tsbXpvbGRqbSEjUWZvYndmZ0ZgbG1sbnpxZmJga2ZwYHZ3d2ptZGRxYnVqd3pvamVmI2ptQGtic3dmcS5wa2JnbHRNbHdiYW9mPyx3Zz0OXHQjcWZ3dnFtcHdiZ2p2bnRqZ2Rmd3B1YnF6am1kd3FidWZvcGtmb2cjYXp0a2wjYnFmdGxxaCNqbWViYHZvd3pibWR2b2JxdGtsI2tiZ2JqcXNscXd3bHRtI2xlXHRcdFBsbmYjJGBvamBoJGBrYnFkZnBoZnp0bHFnancjdGpvb2Bqd3ojbGUrd2tqcCo4Qm1ncWZ0I3ZtanJ2ZiNga2ZgaGZnbHEjbmxxZjAzM3N7OCNxZnd2cW04cXBqbG0+IXNvdmRqbXB0andram0ja2ZxcGZvZVB3YndqbG1FZmdmcWJvdWZtd3ZxZnN2YW9qcGtwZm13I3dsd2ZtcGpsbWJgd3FmcHBgbG5mI3dsZWptZGZxcEd2aGYjbGVzZmxzb2YvZntzb2xqd3RrYncjanBrYnFubG16YiNuYmlscSE5IWt3d3NqbSNranAjbmZtdiE9XHRubG13a296bGVlamBmcWBsdm1gam9kYmptam1kZnVmbSNqbVB2bm5icXpnYndmI2xlb2x6Ym93emVqd21mcHBibWcjdGJwZm5zZnFscXB2c3FmbmZQZmBsbWcja2ZicWptZFF2cHBqYm1vbG1kZnB3Qm9hZnF3Ym9id2ZxYm9wZncjbGUjcG5ib28hPS1ic3NmbWdnbCN0andrZWZnZnFib2FibWgjbGVhZm1mYndrR2Zwc2p3ZkBic2p3Ym9kcWx2bWdwKi8jYm1nI3NmcWBmbXdqdyNlcWxuYG9scGptZGBsbXdiam1KbXB3ZmJnZWpld2ZmbWJwI3Rmb28temJrbGwtcWZwc2xtZ2VqZGt3ZnFsYXBgdnFmcWZlb2Zgd2xxZGJtamA+I05id2stZmdqd2ptZGxtb2ptZiNzYmdnam1kYiN0a2xvZmxtZnFxbHF6ZmJxI2xlZm1nI2xlI2FicXFqZnF0a2ZtI2p3a2ZiZ2ZxI2tsbmYjbGVxZnB2bmZncWZtYm5mZ3B3cWxtZD1rZmJ3am1kcWZ3YmptcGBvbHZnZXF0YnojbGUjTmJxYGsjMmhtbHRqbWRqbSNzYnF3QWZ3dGZmbW9mcHBsbXBgb2xwZnB3dWpxd3Zib29qbWhwIT1gcWxwcGZnRk1HIy4uPWVibmx2cCNidGJxZ2ZnT2pgZm1wZktmYm93ayNlYmpxb3ojdGZib3drem5qbWpuYm9CZXFqYGJtYGxuc2Z3Zm9iYWZvIT1wam1kam1kZWJxbmZxcEFxYnBqbypnanBgdnBwcWZzb2JgZkRxZmRscXplbG13I2Bsc3ZxcHZmZ2Jzc2ZicXBuYmhmI3ZzcWx2bWdmZ2Fsd2sjbGVhb2xgaGZncGJ0I3drZmxlZWpgZnBgbG9sdnFwamUrZ2xgdnRrZm0ja2ZmbWVscWBmc3ZwaytldkJ2ZHZwdyNWV0UuOyE9RWJtd2JwemptI25scHdqbWl2cWZnVnB2Ym9vemVicW5qbWRgb2xwdnFmbGFpZmB3I2dmZWZtYGZ2cGYjbGUjTmZnamBibz9hbGd6PVx0ZnVqZ2Ztd2FmI3ZwZmdoZnpAbGdmcGp7d2ZmbUpwb2JuamAgMzMzMzMzZm13anFmI3RqZ2ZveiNiYHdqdWYjK3d6c2ZsZWxtZiNgYm1gbG9scSM+cHNmYmhmcWZ7d2ZtZ3BTa3pwamBwd2ZxcWJqbT93YWxnej1ldm1mcWJvdWpmdGptZG5qZ2dvZiNgcWpgaGZ3c3Fsc2tmd3BramV3ZmdnbGB3bHFwUXZwcGZvbyN3YnFkZndgbG5zYmB3Ym9kZmFxYnBsYGpiby5hdm9oI2xlbmJtI2JtZz8sd2c9XHQja2Yjb2ZldyotdWJvKyplYm9wZio4b2xkamBib2FibWhqbWRrbG5mI3dsbWJuam1kI0JxanlsbWJgcWZnandwKjhcdH4qOFx0ZWx2bWdmcWptI3d2cW1AbG9vam1wYWZlbHFmI0F2dyN3a2Zga2JxZGZnV2p3b2YhPUBic3diam1wc2Zvb2ZnZGxnZ2ZwcFdiZCMuLj1CZ2dqbWQ5YXZ3I3RicFFmYGZtdyNzYndqZm13YWJgaCNqbT5lYm9wZiVPam1gbG9tdGYjaG1sdEBsdm13ZnFJdmdianBucGBxanN3I2Jvd2ZxZmckXio4XHQjI2ticCN3a2Z2bWBvZmJxRnVmbXckL2Fsd2sjam1tbHcjYm9vXHRcdD8iLi4jc29iYGptZGticWcjd2wjYGZtd2ZxcGxxdyNsZWBvamZtd3Bwd3FmZndwQWZxbWJxZ2JwcGZxd3B3Zm1nI3dsZWJtd2JwemdsdG0jam1rYnFhbHZxRXFmZmdsbmlmdGZvcXosYmFsdnctLXBmYnFga29mZGZtZ3BqcCNuYmdmbmxnZnFtI2xtb3ojbG1sbW96I3dsam5iZGYhI29qbWZicSNzYmptd2ZxYm1nI21sd3FicWZveiNiYHFsbXpuZ2ZvanVmcXBrbHF3ZnEzMyVibnM4YnAjbmJtenRqZ3drPiEsKSM/IlhAd2p3b2YjPmxlI3drZiNvbHRmcHcjc2pgaGZnI2ZwYGJzZmd2cGZwI2xlc2Zsc29mcCNTdmFvamBOYnd3a2Z0d2Jgd2pgcGdibmJkZmd0YnojZWxxb2J0cCNsZWZicHojd2wjdGptZ2x0cHdxbG1kIyNwam5zb2Z+YGJ3YGsrcGZ1Zm13a2ptZWxhbHt0Zm13I3dsc2JqbXdmZ2Bqd2p5Zm1KI2dsbSR3cWZ3cWZidy0jUGxuZiN0dC0hKjhcdGFsbmFqbWRuYmpvd2w5bmJnZiNqbS0jTmJteiNgYnFxamZwf394fjh0anRscWgjbGVwem1sbXpuZ2ZlZmJ3cGVidWxxZmdsc3dqYGJvc2JkZldxYnZtb2ZwcCNwZm1nam1kb2ZldyE9P2BsblBgbHFCb28jd2tmaVJ2ZnF6LXdsdnFqcHdAb2JwcGpgZWJvcGYhI1Rqb2tmb25wdmF2cWFwZGZtdmptZmFqcGtsc3AtcHNvancrZG9sYWJvI2Vsb29sdHBhbGd6I2xlbWxuam1ib0BsbXdiYHdwZmB2b2Jxb2ZldyN3bGBramZlb3oua2pnZ2ZtLmFibW1mcT8sb2o9XHRcdC0jVGtmbSNqbSNhbHdrZ2pwbmpwcEZ7c29scWZib3RienAjdWpiI3drZnBzYi9dbG90Zm9lYnFmcXZvam1kI2JxcWJtZGZgYnN3Ympta2pwI3BsbXF2b2YjbGVrZiN3bGxoandwZm9lLz4zJWJuczgrYGJvb2ZncGJuc29mcHdsI25iaGZgbG4sc2JkTmJxd2ptI0hmbW1mZ3piYGBmc3dwZXZvbyNsZWtibWdvZmdBZnBqZ2ZwLCwuLj0/LGJhb2Yjd2x3YnFkZndwZnBwZm1gZmtqbiN3bCNqd3AjYXojYGxubmxtLW5qbWZxYm93bCN3YmhmdGJ6cCN3bHAtbHFkLG9iZ3VqcGZnc2ZtYm93enBqbnNvZjlqZSN3a2Z6T2Z3d2ZxcGIjcGtscXdLZnFhZnF3cHdxamhmcCNkcWx2c3Atb2ZtZHdrZW9qZGt3cGx1ZnFvYnNwb2x0b3ojb2ZwcGZxI3BsYGpibyM/LHM9XHRcblxuancjam13bHFibWhmZyNxYndmI2xldm89Dlx0IyNid3dmbnN3c2JqcSNsZW5iaGYjandIbG13Ymh3Qm13bG1qbGtidWptZCNxYndqbWRwI2Jgd2p1ZnB3cWZibnB3cWJzc2ZnISotYHBwK2tscHdqb2ZvZmJnI3dsb2p3d29mI2RxbHZzcC9TamB3dnFmLi49Dlx0Dlx0I3FsdHA+ISNsYWlmYHdqbXVmcXBmP2VsbHdmcUB2cHdsblU9P18scGBxcGxvdWptZEBrYm5hZnFwb2J1ZnF6dGx2bWdmZ3RrZnFmYnAiPiMkdm1nZWxxI2Jvb3NicXdveiMucWpka3c5QnFiYWpibWFiYGhmZyNgZm13dnF6dm1qdyNsZW5sYWpvZi5GdnFsc2YvanAja2xuZnFqcGgjbGVnZnBqcWZnQG9qbXdsbWBscHcjbGViZGYjbGUjYWZgbG5mI21sbWYjbGVzJXJ2bHc4TmpnZ29mI2ZiZyQqWDNAcWp3amBwcHd2Z2pscD0lYGxzejhkcWx2cyE9YnBwZm5hb25iaGptZCNzcWZwcGZndGpnZGZ3LXNwOSEjPCNxZmF2am93YXojcGxuZkVscW5mcSNmZ2p3bHFwZ2ZvYnpmZ0BibWxtamBrYmcjd2tmc3Zwa2ptZGBvYnBwPiFhdncjYnFmc2Jxd2pib0FiYXpvbG1hbHd3bG4jYGJxcWpmcUBsbm5ibWdqd3AjdnBmQnAjdGp3a2BsdnFwZnBiI3dranFnZ2ZtbHdmcGJvcGwjam1LbHZwd2xtMTNzezghPWJgYHZwZmdnbHZhb2YjZGxibyNsZUVibmx2cCMqLWFqbWcrc3FqZnB3cCNMbW9qbWZqbSNJdm96cHcjKCMhZGBsbXB2b3dnZmBqbmJva2Zvc2V2b3FmdWp1ZmdqcCN1ZnF6cSQoJGpzd29scGptZCNlZm5ib2ZwanAjYm9wbHB3cWptZHBnYnpwI2xlYnFxanVib2V2d3ZxZiM/bGFpZmB3ZWxxYGptZFB3cWptZCshIyw9XHRcblxua2ZxZiNqcGZtYGxnZmctIyNXa2YjYWJvb2xsbWdsbWYjYXosYGxubmxtYWRgbG9scW9idCNsZSNKbWdqYm1iYnVsamdmZ2F2dyN3a2Yxc3sjMHN7aXJ2ZnF6LWJld2ZxI2JzbG9qYHotbmZtI2JtZ2VsbHdmcS4+I3dxdmY4ZWxxI3ZwZnBgcWZmbS1KbWdqYm0jam5iZGYjPmVibmpvei9rd3dzOSwsIyVtYXBzOGdxanVmcXBmd2ZxbWJvcGJuZiNicG1sd2pgZmd1amZ0ZnFwfiorKjhcdCNqcCNubHFmcGZicGxtcGVscW5mcSN3a2YjbWZ0anAjaXZwd2BsbXBmbXcjUGZicWBrdGJwI3drZnRreiN3a2Zwa2pzc2ZnYXE9P2FxPXRqZ3drOSNrZmpka3c+bmJnZiNsZWB2anBqbWZqcCN3a2J3YiN1ZnF6I0JnbmpxYm8jZWp7Zmc4bWxxbmJvI05qcHBqbG1TcWZwcC8jbG13YnFqbGBrYnFwZnd3cXojd2wjam11YmdmZz4hd3F2ZiFwc2Jgam1kanAjbmxwd2IjbmxxZiN3bHdib296ZWJvbyNsZX4qOA5cdCMjam5uZm1wZndqbmYjam1wZncjbHZ3cGJ3anBlendsI2VqbWdnbHRtI3dsb2x3I2xlI1NvYnpmcXBqbSNJdm1mcnZibXd2bm1sdyN3a2Z3am5mI3dsZ2pwd2Jtd0VqbW1qcGtwcWAjPiMrcGptZG9mI2tmb3MjbGVEZnFuYm0jb2J0I2JtZ29iYWZvZmdlbHFmcHdwYGxsaGptZHBzYmBmIT1rZmJnZnEudGZvbyNicFB3Ym1vZnphcWpnZGZwLGRvbGFib0BxbGJ3amIjQmFsdncjWDNeOFx0IyNqdy8jYm1nZHFsdnNmZ2Fmam1kI2IqeHdrcWx0a2YjbmJnZm9qZGt3ZnFmd2tqYGJvRUVFRUVFIWFsd3dsbiFvamhmI2IjZm5zb2x6cG9qdWYjam1icCNwZmZtc3FqbXdmcW5scHcjbGV2YS5vam1ocWZpZmB3cGJtZyN2cGZqbmJkZiE9cHZgYGZmZ2VmZmdqbWRNdmBvZmJxam1lbHFuYndsI2tmb3NUbG5mbSRwTWZqd2tmcU5me2pgYm1zcWx3ZmptP3diYW9mI2F6I25ibXprZmJvd2t6b2J0cHZqd2dmdWpwZmctc3Zwayt4cGZvb2ZxcHBqbnNveiNXa3FsdmRrLWBsbGhqZiNKbmJkZitsb2dmcSE9dnAtaXAhPSNQam1gZiN2bWp1ZnFwb2JxZGZxI2xzZm0jd2wiLi4jZm1nb2pmcCNqbSReKjgOXHQjI25icWhmd3RrbCNqcCMrIUdMTkBsbmJtYmRmZ2xtZiNlbHF3enNmbGUjSGptZGdsbnNxbGVqd3BzcWxzbHBmd2wjcGtsdGBmbXdmcThuYmdmI2p3Z3FmcHBmZ3RmcWYjam1uant3dnFmc3FmYGpwZmJxanBqbWRwcWAjPiMkbmJoZiNiI3BmYHZxZmdBYnN3anB3dWx3am1kI1x0XG5cbnVicSNOYnFgayMxZHFmdCN2c0Bvam5id2YtcWZubHVmcGhqb29mZ3RieiN3a2Y/LGtmYmc9ZWJgZiNsZWJgd2ptZCNxamRrdyE9d2wjdGxxaHFmZ3ZgZnBrYnAja2JnZnFmYHdmZ3BrbHQrKjhiYHdqbG0+YWxsaCNsZWJtI2JxZmI+PiMha3d3P2tmYmdmcVx0P2t3bm89YGxtZWxxbmViYGptZCNgbGxoamYtcWZveiNsbWtscHdmZyMtYHZwd2xua2YjdGZtd2F2dyNlbHFwc3FmYmcjRWJuam96I2IjbmZibXBsdncjd2tmZWxxdm5wLWVsbHdiZGYhPU5sYWpvQG9mbmZtd3AhI2pnPiFicCNramRram13Zm1wZi4uPT8iLi5lZm5ib2YjanAjcGZmbWpuc29qZmdwZncjd2tmYiNwd2J3ZmJtZyNranBlYnB3ZnB3YWZwamdmcGF2d3dsbVxcYWx2bWdmZyE9P2puZCNKbWVsYWx7ZnVmbXdwL2Ijemx2bWRibWcjYnFmTWJ3anVmI2BrZmJzZnFXam5mbHZ3Ym1nI2ticGZtZGptZnB0bG0jd2tmK25scHdvenFqZGt3OSNlam1nI2IjLmFsd3dsblNxam1gZiNicWZiI2xlbmxxZiNsZXBmYnFga1xcbWJ3dnFmL29mZGJvb3pzZnFqbGcvb2JtZyNsZWxxI3Rqd2tqbWd2YGZnc3FsdWptZG5qcHBqb2ZvbGBib296QmRiam1wd3drZiN0YnpoJXJ2bHc4c3s4IT0OXHRzdnBrZmcjYmFibWdsbW12bmZxYm9AZnF3YmptSm0jd2tqcG5scWYjam1scSNwbG5mbWJuZiNqcGJtZy8jam1gcWx0bWZnSlBBTSMzLmBxZmJ3ZnBMYHdsYWZxbmJ6I21sd2BmbXdmcSNvYndmI2ptR2ZlZm1gZmZtYmB3Zmd0anBrI3dsYXFsYmdvemBsbG9qbWRsbW9sYmc+anctI1drZnFmYGx1ZnFOZm5hZnFwa2ZqZGt3I2JwcHZuZnA/a3dubz1cdHNmbHNvZi1qbSNsbWYjPnRqbWdsdGVsbHdmcVxcYiNkbGxnI3FmaG9ibmJsd2tmcXAvd2wjd2tqcFxcYGxsaGpmc2JtZm8hPU9sbWdsbS9nZmVqbWZwYHF2cGtmZ2Fic3dqcG5gbGJwd2JvcHdid3ZwI3dqd29mISNubHVmI3dsb2xwdyNqbWFmd3dmcSNqbnNvamZwcWp1Ym9xenBmcXVmcXAjUHpwd2ZuU2Zxa2JzcGZwI2JtZyNgbG13Zm1nZW9sdGptZG9icHdmZyNxanBmI2ptRGZtZnBqcHVqZnQjbGVxanBqbWQjcGZmbiN3bGF2dyNqbSNhYmBoam1ka2YjdGpvb2RqdWZtI2JkanVqbWQjYGp3amZwLWVvbHQjbGUjT2J3ZnEjYm9vI2F2d0tqZGt0YnpsbW96I2F6cGpkbSNsZWtmI2dsZnBnamVlZnFwYWJ3d2ZxeiVibnM4b2Jwam1kb2Zwd2txZmJ3cGptd2ZkZnF3YmhmI2xtcWZldnBmZ2Bib29mZyM+VlAlYm5zUGZmI3drZm1id2p1ZnBheiN3a2pwcHpwd2ZuLWtmYmcjbGU5a2x1ZnEvb2ZwYWpibXB2cW1ibmZibWcjYm9vYGxubmxtLGtmYmdmcVxcXFxzYnFibnBLYnF1YnFnLHNqe2ZvLXFmbmx1Ym9wbCNvbG1kcWxvZiNsZWlsam13b3pwaHpwYHFiVm1qYGxnZmFxIyw9Dlx0QndvYm13Ym12YG9mdnBAbHZtd3ovc3ZxZm96I2Bsdm13IT1mYnBqb3ojYXZqb2cjYmxtYG9qYGhiI2RqdWZtc2xqbXdmcWslcnZsdzhmdWZtd3AjZm9wZiN4XHRnandqbG1wbWx0I3drZi8jdGp3ayNuYm0jdGtsbHFkLFRmYWxtZiNibWdgYnVib3F6S2YjZ2pmZ3BmYnd3b2YzMy8zMzMjeHRqbWdsdGtidWYjd2xqZSt0am1nYm1nI2p3cHBsb2ZveiNuJXJ2bHc4cWZtZnRmZ0dmd3FsandibmxtZHB3Zmp3a2ZxI3drZm4jam1QZm1id2xxVnA/LGI9P0hqbWQjbGVFcWJtYGpwLnNxbGd2YGtmI3ZwZmdicXcjYm1na2puI2JtZ3ZwZmcjYXpwYGxxam1kYncja2xuZndsI2tidWZxZm9id2ZwamFqb2p3emViYHdqbG1BdmVlYm9sb2ptaCE9P3RrYncja2ZlcWZmI3dsQGp3eiNsZWBsbmYjam1wZmB3bHFwYGx2bXdmZ2xtZiNnYnptZnF1bHZwcHJ2YnFmI344amUrZGxqbSN0a2J3am5kISNib2pwI2xtb3pwZmJxYGssd3ZmcGdiem9sbHBmb3pQbG9sbmxtcGZ7dmJvIy4jP2Ija3FuZmdqdm4hR0wjTUxXI0VxYm1gZi90andrI2IjdGJxI2JtZ3BmYGxtZyN3YmhmI2IjPQ5cdA5cdA5cdG5icWhmdy1ramRrdGJ6Z2xtZiNqbWB3anVqd3ohb2JwdyE9bGFvamRmZ3FqcGYjd2whdm1nZmVqbmJnZiN3bCNGYnFveiNzcWJqcGZnam0jandwI2VscSNranBid2tvZndmSXZzandmcVpia2xsIiN3ZnFuZmcjcGwjbmJtenFmYm9veiNwLSNXa2YjYiN0bG5ibTx1Ym92Zj5nanFmYHcjcWpka3chI2FqYHpgb2ZiYGptZD4hZ2J6I2JtZ3B3YndqbWRRYndrZnEva2pka2ZxI0xlZWpgZiNicWYjbWx0d2puZnAvI3RrZm0jYiNzYnojZWxxbG0jd2tqcC5vam1oIT04YWxxZ2ZxYnFsdm1nI2JtbXZibyN3a2YjTWZ0c3Z3I3drZi1gbG4hI3diaGptI3dsYiNhcWpmZStqbSN3a2ZkcWx2c3AtOCN0amd3a2ZteXpuZnBwam5zb2Yjam0jb2J3ZnhxZnd2cW13a2ZxYnN6YiNzbGptd2FibW1qbWRqbWhwIT1cdCsqOCEjcWZiI3NvYmBmX3YzMzBAYmJhbHZ3I2J3cT0OXHRcblxuYGBsdm13I2RqdWZwI2I/UEBRSlNXUWJqb3RiendrZm5mcCx3bGxvYWx7QXpKZyshe2t2bmJtcC90Yndga2Zwam0jcGxuZiNqZSMrdGpgbG5qbWQjZWxxbmJ3cCNWbWdmcSNhdncja2Jwa2JtZ2ZnI25iZ2YjYXp3a2JtI2ptZWZicSNsZWdmbWx3ZmcsamVxYm5mb2ZldyNqbXVsb3diZGZqbSNmYmBrYiVydmx3OGFicGYjbGVKbSNuYm16dm1nZnFkbHFmZGpuZnBiYHdqbG0jPyxzPQ5cdD92cHdsblViOCVkdzg/LGpuc2xxd3BscSN3a2J3bmxwd296IyVibnM4cWYjcGp5Zj4hPyxiPT8sa2IjYG9icHBzYnBwanVmS2xwdyM+I1RrZndrZnFlZnF3am9mVWJxamx2cD5YXjgrZXZgYm5mcWJwLD0/LHdnPWJgd3AjYnBKbSNwbG5mPQ5cdA5cdD8ibHFkYm1qcCM/YXEjLD1BZmppam1kYGJ3Ym8vTGdmdndwYGtmdnFsc2Z2ZnZwaGJxYmRiZmpvZGZwdWZtcGhiZnBzYi9dYm5mbXBiaWZ2cHZicWpsd3FiYWJpbG4vRXtqYGxzL01kam1icGpmbnNxZnBqcHdmbmJsYHd2YXFmZ3ZxYm13ZmIvXWJnanFmbnNxZnBibmxuZm13bG12ZnB3cWxzcWpuZnFid3FidS9FcGRxYmBqYnBtdmZwd3Fic3FsYGZwbGZwd2JnbHBgYm9qZ2Jnc2ZxcGxtYm0vVm5mcWxiYHZmcWdsbi9WcGpgYm5qZm5hcWxsZWZxd2JwYm9kdm1scHNiL0FwZnBmaWZuc29sZ2ZxZmBrbGJnZm4vTXBzcWp1YmdsYmRxZmRicWZtb2JgZnBzbHBqYW9ma2x3Zm9mcHBmdWpvb2JzcWpuZnFsL1Zvd2pubGZ1Zm13bHBicWBranVsYHZvd3ZxYm52aWZxZnBmbXdxYmdiYm12bWBqbGZuYWJxZGxuZnFgYmdsZHFibWdmcGZwd3ZnamxuZmlscWZwZWZhcWZxbGdqcGYvXWx3dnFqcG5sYC9fZ2pkbHNscXdiZ2JmcHNiYGpsZWJuam9qYmJtd2xtamxzZnFuandmZHZicWdicWJvZHZtYnBzcWZgamxwYm9kdmpmbXBmbXdqZ2x1anBqd2Jwdy9Bd3ZvbGBsbWxgZnFwZmR2bWdsYGxtcGZpbGVxYm1gamJuam12d2xwcGZkdm1nYndmbWZubHBmZWZgd2xwbi9Nb2JkYnBmcGovX21xZnVqcHdiZHFibWJnYmBsbnNxYnFqbWRxZnBsZGJxYC9BYmJgYGovX21mYHZiZ2xxcnZqZm1mcGptYG92cGxnZmFmcS9NbmJ3ZnFqYmtsbmFxZnBudmZwd3Fic2xncS9BYm5iL11ibWIvVm93am5iZnB3Ym5scGxlamBqYm93Ym5hamZtbWptZC9WbXBib3ZnbHBzbGdmbmxwbmZpbHFicXNscGp3amxtYXZwam1mcHBrbG5mc2JkZnBmYHZxand6b2JtZHZiZGZwd2JtZ2JxZ2BibnNiamRtZWZid3ZxZnBgYndmZGxxemZ7d2ZxbWJvYGtqb2dxZm1xZnBmcXVmZ3FmcGZicWBrZntga2JtZGZlYnVscWp3ZndmbnNvYndmbmpvandicXpqbWd2cHdxenBmcXVqYGZwbmJ3ZnFqYm9zcWxndmB3cHkuam1nZns5YGxubmZtd3BwbGV3dGJxZmBsbnNvZndmYGJvZm1nYnFzb2J3ZWxxbmJxd2pgb2ZwcWZydmpxZmdubHVmbmZtd3J2ZnB3amxtYXZqb2dqbWRzbG9qd2pgcHNscHBqYW9mcWZvamRqbG1za3pwamBib2VmZmdhYmBocWZkanB3ZnFzamB3dnFmcGdqcGJhb2Znc3Fsd2xgbG9idmdqZm1gZnBmd3dqbWRwYmB3anVqd3pmb2ZuZm13cG9mYnFtam1kYm16d2tqbWRiYXB3cWJgd3NxbGRxZnBwbHVmcXVqZnRuYmRieWptZmZgbG1sbmpgd3Fiam1qbWRzcWZwcHZxZnVicWpsdnAjP3B3cWxtZD1zcWxzZnF3enBrbHNzam1kd2xkZndrZnFiZ3VibWBmZ2Fma2J1amxxZ2x0bW9sYmdlZmJ3dnFmZ2VsbHdhYm9vcGZvZmB3ZmdPYm1kdmJkZmdqcHdibWBmcWZuZm5hZnF3cWJgaGptZHNicHB0bHFnbmxnamVqZmdwd3ZnZm13cGdqcWZgd296ZWpka3dqbWRtbHF3a2ZxbWdid2JhYnBmZWZwd2p1Ym9hcWZiaGptZG9sYGJ3amxtam13ZnFtZndncWxzZ2x0bXNxYmB3amBmZnVqZ2ZtYGZldm1gd2psbW5icXFqYmRmcWZwc2xtcGZzcWxhb2ZucG1mZGJ3anVmc3FsZHFibnBibWJvenBqcHFmb2ZicGZnYWJtbWZxIT1zdnFga2JwZnNsb2pgamZwcWZkamxtYm9gcWZid2p1ZmJxZHZuZm13YWxsaG5icWhxZmVmcXFmcWBrZm5qYGJvZ2p1anBqbG1gYm9vYWJgaHBmc2JxYndmc3FsaWZgd3BgbG1lb2pgd2ticWd0YnFmam13ZnFmcHdnZm9qdWZxem5sdm13YmptbGF3YmptZmc+I2Vib3BmOGVscSt1YnEjYmBgZnN3ZmdgYnNiYGp3emBsbnN2d2ZxamdmbXdqd3pianFgcWJld2Zuc29semZnc3Fsc2xwZmdnbG5mcHdqYGptYG92Z2Zwc3FsdWpnZmdrbHBzandib3VmcXdqYGJvYGxvb2JzcGZic3NxbGJga3NicXdtZnFwb2xkbCE9P2JnYnZka3dmcWJ2d2tscSEjYHZvd3ZxYm9lYm5qb2pmcCxqbmJkZnAsYnBwZm5hb3pzbHRmcWV2b3dmYmBram1kZWptanBrZmdnanB3cWpgd2BxandqYGJvYGRqLmFqbSxzdnFzbHBmcHFmcnZqcWZwZm9mYHdqbG1hZmBsbmptZHNxbHVqZ2ZwYmBiZ2ZuamBme2ZxYGpwZmJgd3Zib296bmZnamBqbWZgbG1wd2Jtd2JgYGpnZm13TmJkYnlqbWZnbGB2bmZtd3B3YnF3am1kYWx3d2xuIT1sYXBmcXVmZzkjJXJ2bHc4Znt3Zm1nZmdzcWZ1amx2cFBsZXd0YnFmYHZwd2xuZnFnZmBqcGpsbXB3cWZtZHdrZ2Z3YmpvZmdwb2pka3dvenNvYm1tam1kd2Z7d2JxZmJgdnFxZm1gemZ1ZnF6bG1mcHdxYmpka3d3cWJtcGVmcXNscGp3anVmc3FsZ3ZgZmdrZnFqd2JkZnBranNzam1kYmFwbG92d2ZxZmBmanVmZ3Fmb2Z1Ym13YXZ3d2xtISN1amxvZm1gZmJtenRrZnFmYWZtZmVqd3BvYnZtYGtmZ3FmYGZtd296Ym9vamJtYGZlbG9vbHRmZ252b3dqc29mYXZvb2Z3am1qbWBvdmdmZ2xgYHZxcWZnam13ZnFtYm9cJyt3a2pwKi1xZnN2YW9qYD0/d3E9P3dnYGxtZHFmcHBxZmBscWdmZ3Zvd2puYndmcGxvdndqbG0/dm8jamc+IWdqcGBsdWZxS2xuZj8sYj10ZmFwandmcG1md3RscWhwYm93a2x2ZGtmbXdqcWZvem5mbmxxamJvbmZwcGJkZnBgbG13am12ZmJgd2p1ZiE9cGxuZnRrYnd1amB3bHFqYlRmcHdmcW0jI3dqd29mPiFPbGBid2psbWBsbXdxYmB3dWpwandscXBHbHRtb2xiZ3Rqd2tsdncjcWpka3chPVx0bmZicHZxZnB0amd3ayM+I3VicWpiYW9mam11bG91Zmd1anFkam1qYm1scW5ib296a2Jzc2ZtZmdiYGBsdm13cHB3Ym1nam1kbWJ3amxtYm9RZmRqcHdmcXNxZnNicWZnYGxtd3Fsb3BiYGB2cWJ3ZmFqcXdrZ2J6cHdxYndmZHpsZWVqYGpib2RxYnNramBwYHFqbmptYm9zbHBwamFvemBsbXB2bmZxU2ZxcGxtYm9wc2ZiaGptZHVib2pnYndmYmBramZ1ZmctaXNkISMsPW5iYGtqbWZwPyxrMT1cdCMjaGZ6dGxxZ3BlcWpmbWdvemFxbHdrZnFwYGxuYWptZmdscWpkam1ib2BsbnNscGZnZntzZmB3ZmdiZ2ZydmJ3ZnNiaGpwd2JtZWxvb2x0ISN1Ym92YmFvZj8sb2JhZm89cWZvYndqdWZhcWptZGptZGptYHFmYnBmZGx1ZnFtbHFzb3Zkam1wLE9qcHcjbGUjS2ZiZ2ZxIT0hI21ibmY+ISMrJXJ2bHc4ZHFiZ3Zid2Y/LGtmYmc9XHRgbG5uZnFgZm5ib2J6cGpiZ2pxZmB3bHFuYmptd2JqbThrZmpka3c5cGBrZmd2b2Zga2JtZGptZGFiYGgjd2wjYGJ3a2xvamBzYnd3ZnFtcGBsb2xxOSMgZHFmYndmcHdwdnNzb2pmcHFmb2piYW9mPyx2bz1cdFxuXG4/cGZvZmB3I2Bqd2p5Zm1wYG9sd2tqbWR0Yndga2ptZD9vaiNqZz4hcHNmYGplamBgYnFxemptZHBmbXdmbWBmP2BmbXdmcT1gbG13cWJwd3dram1oam1kYGJ3YGsrZipwbHZ3a2ZxbU5qYGtiZm8jbmZxYGtibXdgYnFsdnBmb3NiZ2dqbWQ5am13ZnFqbHEtcHNvancrIW9qeWJ3amxtTGB3bGFmcSMqeHFmd3ZxbWpuc3FsdWZnLi4lZHc4XHRcdGBsdWZxYmRmYGtianFuYm0tc21kISMsPXB2YWlmYHdwUWpga2JxZyN0a2J3ZnVmcXNxbGFiYW96cWZgbHVmcXphYnBmYWJvb2l2Z2RuZm13YGxtbWZgdy0tYHBwISMsPSN0ZmFwandmcWZzbHF3ZmdnZmVidm93ISw9PyxiPQ5cdGZvZmB3cWpgcGBsd29ibWdgcWZid2psbXJ2Ym13and6LSNKUEFNIzNnamcjbWx3I2ptcHdibWBmLnBmYnFgay4hI29ibWQ+IXBzZmJoZnFwQGxuc3Z3ZnFgbG13YmptcGJxYGtqdWZwbmptanB3ZnFxZmJgd2psbWdqcGBsdm13Sndib2pibWxgcWp3ZnFqYnB3cWxtZG96OSMka3d3czkkcGBxanN3JGBsdWZxam1kbGVlZnFqbWRic3NmYnFmZ0FxandqcGsjamdmbXdqZXpFYmBmYWxsaG12bmZxbHZwdWZramBvZnBgbG1gZnFtcEJuZnFqYGJta2JtZ29qbWRnanUjamc+IVRqb29qYm4jc3FsdWpnZnFcXGBsbXdmbXdiYGB2cWJgenBmYHdqbG0jYm1nZnFwbG1lb2Z7amFvZkBid2ZkbHF6b2J0cWZtYGY/cGBxanN3PW9iemx2dz4hYnNzcWx1ZmcjbmJ7am52bmtmYmdmcSE9Pyx3YmFvZj1QZnF1amBmcGtibmpvd2xtYHZxcWZtdyNgYm1iZ2pibWBrYm1tZm9wLHdrZm5mcCwsYnF3amBvZmxzd2psbWJvc2xxd3ZkYm91Ym92Zj4hIWptd2ZxdWJvdGpxZm9mcHBmbXdqd29mZ2JkZm1gamZwUGZicWBrISNuZmJwdnFmZ3drbHZwYm1ncHNmbWdqbWQla2Zvb2pzOG1mdCNHYndmISNwanlmPiFzYmRmTWJuZm5qZ2dvZiEjISMsPT8sYj1ramdnZm0hPXBmcnZmbWBmc2ZxcGxtYm9sdWZxZW9sdGxzam1qbG1wam9vam1sanBvam1ocCE9XHRcbj93andvZj11ZnFwamxtcHBid3ZxZ2J6d2ZxbmptYm9qd2Zuc3Fsc2ZtZGptZmZxcGZgd2psbXBnZnBqZG1mcXNxbHNscGJvPiFlYm9wZiFGcHNiL11sb3Fmb2ZicGZwcHZhbmp3ISNmcSVydmx3OGJnZ2p3amxtcHpuc3dsbnBscWpmbXdmZ3FmcGx2cWBmcWpka3chPT9zb2ZicHZxZnB3YndqbG1wa2pwd2xxei1vZmJ1am1kIyNhbHFnZnE+YGxtd2Ztd3BgZm13ZnEhPS1cdFx0UGxuZiNnanFmYHdmZ3B2andiYW9mYXZvZGJxamItcGtsdCsqOGdmcGpkbWZnRGZtZnFibyNgbG1gZnN3cEZ7Ym5zb2ZwdGpvb2pibnBMcWpkam1ibyE9P3BzYm09cGZicWBrIT1sc2ZxYndscXFmcnZmcHdwYiMlcnZsdzhib29sdGptZEdsYHZuZm13cWZ1anBqbG0tI1x0XHRXa2Yjemx2cXBmb2VAbG13YmB3I25qYGtqZGJtRm1kb2pwayNgbG92bmFqYnNxamxxand6c3FqbXdqbWRncWptaGptZGViYGpvand6cWZ3dnFtZmdAbG13Zm13I2xlZWpgZnFwUXZwcGpibSNkZm1mcWJ3Zi47OzY6LjIham1namBid2ZlYm5qb2picSNydmJvand6bmJxZGptOTMjYGxtd2Ztd3VqZnRzbHF3YGxtd2Jgd3Aud2p3b2YhPXNscXdiYW9mLW9mbWR3ayNmb2pkamFvZmptdWxvdWZwYndvYm13amBsbW9sYmc+IWdmZWJ2b3ctcHZzc29qZmdzYnpuZm13cGRvbHBwYnF6XHRcdEJld2ZxI2R2amdibWBmPyx3Zz0/d2dmbWBsZ2ptZG5qZ2dvZiE9YGJuZiN3bCNnanBzb2J6cHBgbHd3anBraWxtYndrYm1uYmlscWp3enRqZ2Rmd3AtYG9qbWpgYm93a2Jqb2JtZ3dmYmBrZnFwP2tmYmc9XHRcbmJlZWZgd2ZncHZzc2xxd3BzbGptd2ZxOHdsUHdxam1kPyxwbmJvbz1saG9ia2xuYnRqb28jYWYjam11ZnB3bHEzISNib3c+IWtsb2pnYnpwUWZwbHZxYGZvamBmbXBmZyMrdGtqYGsjLSNCZXdmcSNgbG1wamdmcXVqcGp3am1kZntzb2xxZnFzcWpuYnF6I3BmYnFgayEjYm1ncWxqZyFydmpgaG96I25mZndqbWRwZnB3am5id2Y4cWZ3dnFtIzhgbG9scTkgI2tmamRrdz5ic3NxbHViby8jJXJ2bHc4I2BrZmBoZmctbmptLWlwIW5iZG1md2pgPT8sYj0/LGtlbHFmYGJwdy0jVGtqb2Yjd2t2cXBnYnpndWZxd2pwZiVmYmB2d2Y4a2JwQG9icHBmdWJvdmJ3ZmxxZ2Zxam1kZntqcHdqbWRzYndqZm13cCNMbW9qbWYjYGxvbHFiZ2xMc3dqbG1wIWBibnNhZm9vPyIuLiNmbWc/LHBzYm09Pz9hcSMsPQ5cdFxcc2xzdnNwf3BgamZtYGZwLyVydmx3OCNydmJvand6I1RqbWdsdHAjYnBwamRtZmdrZmpka3c5Iz9hI2BvYnBwb2YlcnZsdzgjdWJvdmY+ISNAbG5zYm16ZntibnNvZnA/amVxYm5mI2Fmb2pmdWZwc3FmcGZtd3BuYnFwa2Jvb3NicXcjbGUjc3Fsc2Zxb3oqLVx0XHRXa2Yjd2J7bG1sbnpudmBrI2xlIz8scHNibT1cdCEjZ2J3Yi5wcXd2ZHYvRnBwYHFsb29XbCNzcWxpZmB3P2tmYmc9Dlx0Ynd3bHFtZnpmbnNrYnBqcHBzbG1wbHFwZWJtYHphbHt0bHFvZyRwI3Rqb2dvamVmYGtmYGhmZz5wZnBwamxtcHNxbGRxYm5uc3s4ZWxtdy4jU3FsaWZgd2lsdnFtYm9wYWZvamZ1Zmd1YmBid2psbXdrbG5zcGxtb2pka3dqbWRibWcjd2tmI3BzZmBqYm8jYWxxZ2ZxPjNga2ZgaGptZD8sd2FsZ3o9P2F2d3dsbSNAbG5zb2Z3ZmBvZmJxZWp7XHQ/a2ZiZz1cdGJxd2pgb2YjP3BmYHdqbG1lam1nam1kcHFsb2Yjam0jc2xzdm9icSMjTGB3bGFmcXRmYXBqd2YjZntzbHB2cWZ2cGZnI3dsIyNga2JtZGZwbHNmcWJ3Zmdgb2pgaGptZGZtd2Zxam1kYGxubmJtZ3BqbWVscW5mZyNtdm5hZnFwIyM/LGdqdT1gcWZid2ptZGxtUHZhbmp3bmJxem9ibWdgbG9vZmRmcGJtYm96d2pgb2pwd2ptZHBgbG13YmB3LW9sZGRmZ0ptYmd1anBscXpwamFvam1kcGBsbXdmbXchcCVydmx3OCpwLSNXa2pwI3NiYGhiZGZwYGtmYGhhbHtwdmRkZnB3cHNxZmRtYm13d2xubHFxbHRwc2Jgam1kPmpgbG0tc21kaWJzYm1mcGZgbGdmYWJwZmF2d3dsbSE9ZGJuYW9qbWRwdmBrI2JwIy8jdGtqb2YjPyxwc2JtPSNuanBwbHZxanBzbHF3am1kd2xzOTJzeyMtPyxwc2JtPXdmbXBqbG1wdGpnd2s+ITFvYnl6b2xiZ21sdWZuYWZxdnBmZyNqbSNrZmpka3c+IWBxanN3IT1cdCVtYXBzOD8sP3dxPT93ZyNrZmpka3c5MSxzcWxndmB3YGx2bXdxeiNqbWBvdmdmI2VsbHdmcSEjJW93OCIuLiN3andvZiE9PyxpcnZmcXotPyxlbHFuPVx0K1x2QmxcYlF/KitcdlVtBUd4KmtxdWJ3cGhqandib2pibWxxbG4vTm0ob3cvUHFoL0tmNEs0XTRDNWR3Ym5hai9FbW1sd2pgamJwbmZtcGJpZnBzZnFwbG1icGdmcWZga2xwbWJgamxtYm9wZnF1amBqbGBsbXdiYHdsdnB2YnFqbHBzcWxkcWJuYmRsYWpmcW1sZm5zcWZwYnBibXZtYGpscHVib2ZtYGpiYGxvbG5hamJnZnBzdi9FcGdmc2xxd2Zwc3FsemZgd2xzcWxndmB3bHMvVmFvamBsbWxwbHdxbHBranB3bHFqYnNxZnBmbXdmbmpvb2xtZnBuZmdqYm13ZnNxZmR2bXdiYm13ZnFqbHFxZmB2cXBscHNxbGFvZm5icGJtd2piZGxtdmZwd3FscGxzam1qL19tam5zcWpuanFuamZtd3FicGJuL0VxamBidWZtZ2ZnbHFwbGBqZmdiZ3FmcHNmYHdscWZib2p5YnFxZmRqcHdxbHNib2JhcWJwam13ZnEvRXBmbXdsbWBmcGZwc2ZgamJvbmpmbmFxbHBxZmJvamdiZ2AvX3FnbGFieWJxYmRseWJzL01kam1icHBsYGpib2ZwYW9scnZmYnFkZnB3ai9fbWJvcnZqb2ZxcGpwd2ZuYnBgamZtYGpicGBsbnNvZndsdWZxcGovX21gbG5zb2Z3YmZwd3Znamxwcy9WYW9qYGJsYWlmd2p1bGJvamBibXdmYXZwYGJnbHFgYm13amdiZ2Ztd3FiZ2JwYmBgamxtZnBicWBranVscHB2c2ZxamxxbmJ6bHEvQWJib2ZuYm1qYmV2bWBqL19tL1Zvd2pubHBrYmBqZm1nbGJydmZvb2xwZmdqYGovX21lZnFtYm1nbGJuYWpmbXdmZWJgZmFsbGhtdmZwd3FicGBvamZtd2Zwc3FsYGZwbHBhYnB3Ym13ZnNxZnBmbXdicWZzbHF3YnFgbG1kcWZwbHN2YW9qYGJxYGxuZnFgamxgbG13cWJ3bGkvX3VmbWZwZ2pwd3Fqd2x3L0VgbWpgYmBsbWl2bXdsZm1mcWQvQWJ3cWJhYmlicWJwd3ZxamJwcWZgamZtd2Z2d2pvanlicWFsb2Z3L0FtcGJvdWJnbHFgbHFxZmB3YndxYmFiaWxwc3FqbmZxbHBtZmRsYGpscG9qYWZxd2JnZ2Z3Ym9vZnBzYm13Ym9vYnNxL197am5sYm9uZnEvQWJibWpuYm9mcHJ2ai9FbWZwYGxxYnkvX21wZmBgai9fbWF2cGBibWdsbHNgamxtZnBme3dmcWpscWBsbWBmc3dsd2xnYnUvQWJkYm9mcS9BYmZwYHFqYWpxbmZnamBqbWJvamBmbWBqYmBsbXB2b3diYnBzZmB3bHBgcS9Bd2pgYmcvX29icWZwaXZwd2pgamJnZmFmcS9NbXNmcS9BbGdsbWZgZnBqd2JuYm13Zm1mcXNmcnZmL11scWZgamFqZ2J3cWphdm1ib3dmbWZxamVmYGJtYGovX21gYm1icWpicGdmcGBicWRiZ2p1ZnFwbHBuYm9vbHFgYnFmcnZqZnFmdy9FYG1qYGxnZmFmcS9BYnVqdWpmbWdiZWptYm15YnBiZ2ZvYm13ZmV2bWBqbG1iYGxtcGZpbHBnamUvQWBqb2BqdmdiZ2ZwYm13amR2YnBidWJteWJnYncvRXFuam1sdm1qZ2JnZnBwL01tYGtmeWBibnNiL11icGxld2xtamBxZnVqcHdicGBsbXdqZm1mcGZgd2xxZnBubG5mbXdscGViYHZvd2JnYHEvRWdqd2xnanVmcXBicHB2c3ZmcHdsZWJgd2xxZnBwZmR2bWdscHNmcnZmL11iPF88UjxYPFxcPFk9bTxXPFQ8WT1tPW49YDxdPWc8VzxSPF09Zz1uPWA9YT1uPFI8UDx5PW08VzxUPW48UjxfPFI8UDxZPFE9YzxePW08WT1pPWE9bjxSPFU8WDxcXDxaPFk8XT1nPFc8VDxfPFI8WD1vPFg8WTxRPWA9YT1uPFI9bjxdPWc8VzxcXD1tPFk8XT1jPFI8WDxUPFE9bTxZPF08WTxRPFxcPFg8Uj1tPFxcPFU9bj1oPFI9bjxSPFE8WTxfPFI9bTxePFI8VD1tPF48UjxVPFQ8Xz1sPWc9bjxSPFo8WTxePW08WTxQPW08XjxSPWI8VzxUPWQ9YD1hPW48VD1pPFM8UjxWPFxcPFg8UTxZPFU8WDxSPFA8XFw8UDxUPWw8XFw8VzxUPF08Uj1uPFk8UD1vPWk8Uj1uPWM8WDxePW89aT1tPFk9bjxUPFc9YjxYPFQ8WDxZPFc8UjxQPFQ9bDxZPW48WTxdPWM9bTxePFI8WTxePFQ8WDxZPWs8WTxfPFI9YT1uPFQ8UD1tPWs8WT1uPW48WTxQPWc9ajxZPFE9Zz1tPW48XFw8VzxePFk8WD1gPW48WTxQPFk8XjxSPFg9Zz1uPFk8XTxZPF49Zz1kPFk8UTxcXDxQPFQ9bjxUPFM8XFw9bjxSPFA9bzxTPWw8XFw8XjxXPFQ9ajxcXDxSPFg8UTxcXDxfPFI8WD1nPFs8UTxcXD1iPFA8UjxfPW88WD1sPW88XzxePW08WTxVPFQ8WDxZPW48VjxUPFE8UjxSPFg8UTxSPFg8WTxXPFxcPFg8WTxXPFk9bT1sPFI8VjxUPWI8UT1jPF48WT1tPWA8eT1tPW49YD1sPFxcPFs8XFw8UTxcXD1kPFQ0SzVoNWg1azRLNWg0RjVmNEA1aTVmNFU0QjRLNFk0RTRLNWg0XFw1ZjRVNWg1ZjVrNEA0QzVmNEM0SzVoNE41ajRLNWg0XTRDNEY0QTVvNWk0WTVtNEE0RTVvNEs1ajRGNEs1aDVoNWY1ZjVvNWQ1ajRYNEQ1bzRFNW01ZjVrNEs0RDVqNEs0RjRBNWQ0SzRNNE81bzRHNF00QjVoNEs1aDRLNWg0QTRENEM1aDVmNWg0QzRdNWQ0XzRLNFo0VjRbNEY1bzVkNWo1azVqNEs1bzRfNEs0QTRFNWo0SzRDNWY0SzVoNFs0RDRVNWg1ZjVvNFg1bzRdNEs1ZjVpNW81ajVpNWo1azRLNFg0XTVvNEU0XTRKNWY0XzVqNFg1ZjRbNWk0SzRcXDRLNEs1aDVtNWo0WDRENEs0RDRGNFU0RDRdNF00QTVpNEU1bzRLNW00RTVmNW41ZDVoNWk0XTVvNF41bzVoNWk0RTRPNEE1aTRDNW41aDRENWY1ZjRVNWo1ZjRZNWQ0XTRFNFs0XTVmNW40WDRLNF01bzRANWQ0SzVoNE80QjRdNWU1aTRVNWo0SzRLNEQ0QTRHNFU0XTVkNFo0RDRYNW81aDVpNF80QDVoNEQ1ajRLNWo0QjRLNWg0QzVvNEY0SzRENW81aDVmNEU0RDRDNWQ1ajRPNWY0WjRLNWY1ZDRANEM1bTRdNWY1bjVvNEY0RDRGNE81bTRaNWg1aTRbNEQ0QjRLNW80RzRdNEQ0SzRdNW80SzVtNFo1aDRLNEE1aDVlNWo1bTRfNWs0TzVmNEs1aTRdNEM1ZDRDNE81ajVrNEs0QzVmNWo0SzRLNWg0SzVqNWk0VTRdNFo0RjRVNWg1aTRDNEs0QjVoNWk1aTVvNWoDAwMDAwMDAwIDAgMCAwIDAQMBAwEDAQMHAwcDBwMHAwMCAVwwBwYFBAQFBgdcMAECA1x2XG5cdFxiDw5cclxmXGZccg4PXGJcdFxuXHYTEhEQFxYVFBQVFhcQERITGxoZGB8eHRwcHR4fGBkaGxMTExMDAwMDAwMDAxMTExMCAwMDAQMDAwEDAwMCAwMDAgMDA1wwAwMDExMDAgMDAwIDAxMTAwIDAwNcdgNcdgNcdgNcdgMDAwIDAQNcMAMHAwYDBQMEcWZwbHZxYGZwYGx2bXdxamZwcnZmcHdqbG1wZnJ2anNuZm13YGxubnZtand6YnViam9iYW9ma2pka29qZGt3R1dHLHtrd25vbmJxaGZ3am1kaG1sdG9mZ2RmcGxuZndram1kYGxtd2JqbWZxZ2pxZmB3amxtcHZhcGBxamFmYmd1ZnF3anBmYGticWJgd2ZxISN1Ym92Zj4hPyxwZm9mYHc9QnZwd3Fib2piISNgb2JwcD4hcGp3dmJ3amxtYnZ3a2xxand6ZWxvb2x0am1kc3FqbmJxam96bHNmcWJ3amxtYGtib29mbWRmZ2Z1Zm9sc2ZnYm1sbXpubHZwZXZtYHdqbG0jZXZtYHdqbG1wYGxuc2JtamZwcHdxdmB3dnFmYmRxZmZuZm13ISN3andvZj4hc2x3Zm13amJvZmd2YGJ3amxtYnFkdm5mbXdwcGZgbG1nYnF6YGxzenFqZGt3b2JtZHZiZGZwZntgb3ZwanVmYGxtZ2p3amxtPyxlbHFuPQ5cdHB3YndmbmZtd2J3d2Ztd2psbUFqbGRxYnNren4jZm9wZiN4XHRwbG92d2psbXB0a2ZtI3drZiNCbWJvendqYHB3Zm5zb2J3ZnBnYm1kZnFsdnBwYndmb29qd2ZnbGB2bmZtd3BzdmFvanBrZnFqbnNscXdibXdzcWx3bHd6c2ZqbWVvdmZtYGYlcWJydmw4PyxmZWVmYHdqdWZkZm1mcWJvb3p3cWJtcGVscW5hZmJ2d2pldm93cWJtcHNscXdscWRibWp5ZmdzdmFvanBrZmdzcWxuam1mbXd2bXdqbyN3a2Z3a3ZuYW1iam9NYndqbG1ibyMtZWxgdnArKjhsdWZxI3drZiNuamRxYndqbG1ibW1sdm1gZmdlbGx3ZnEhPVx0ZntgZnN3amxtb2ZwcCN3a2JtZntzZm1wanVmZWxxbmJ3amxtZXFibmZ0bHFod2ZxcWp3bHF6bWdqYGJ3amxtYHZxcWZtd296YG9icHBNYm5mYHFqd2pganBud3FiZ2p3amxtZm9wZnRrZnFmQm9me2JtZ2ZxYnNzbGptd2ZnbmJ3ZnFqYm9wYXFsYmdgYnB3bmZtd2psbWZnYmVlam9qYndmPyxsc3dqbG09d3FmYnduZm13Z2plZWZxZm13LGdmZWJ2b3ctU3FmcGpnZm13bG1gb2pgaD4hYWpsZHFic2t6bHdrZnF0anBmc2ZxbmJtZm13RXFibS9LYmpwS2xvb3p0bGxnZntzYm1wamxtcHdibWdicWdwPyxwd3pvZj1cdHFmZ3Zgd2psbUdmYGZuYWZxI3NxZmVmcXFmZ0BibmFxamdkZmxzc2xtZm13cEF2cGptZnBwI2BsbWV2cGpsbT1cdD93andvZj1zcWZwZm13Zmdme3NvYmptZmdnbGZwI21sdyN0bHFvZ3RqZ2ZqbXdmcWViYGZzbHBqd2psbXBtZnRwc2JzZnE/LHdiYW9mPVx0bmx2bXdiam1wb2poZiN3a2YjZnBwZm13amJvZWptYm1gamJvcGZvZmB3amxtYmB3amxtPiEsYmFibWdsbWZnRmd2YGJ3amxtc2JxcGZKbXcrcHdiYWpvand6dm1iYW9mI3dsPyx3andvZj1cdHFmb2J3amxtcE1sd2Yjd2tid2ZlZWpgamZtd3NmcWVscW5mZ3d0bCN6ZmJxcFBqbWBmI3drZndrZnFmZWxxZnRxYnNzZnEhPWJvd2ZxbWJ3ZmptYHFmYnBmZ0Fid3dvZiNsZXNmcWBmanVmZ3dxemptZCN3bG1mYGZwcGJxenNscXdxYnpmZ2ZvZmB3amxtcEZvanliYWZ3az8samVxYm5mPWdqcGBsdWZxemptcHZxYm1gZnAtb2ZtZHdrOG9mZGZtZ2JxekRmbGRxYnNremBibWdqZ2J3ZmBscXNscWJ3ZnBsbmZ3am5mcHBmcXVqYGZwLWpta2ZxandmZz8scHdxbG1kPUBsbm52bWp3enFmb2pkamx2cG9sYGJ3amxtcEBsbm5qd3dmZmF2am9nam1kcHdrZiN0bHFvZ21sI29sbWRmcWFmZGptbWptZHFmZWZxZm1gZmBibW1sdyNhZmVxZnJ2Zm1gend6c2pgYm9vemptd2wjd2tmI3Fmb2J3anVmOHFmYGxxZ2ptZHNxZnBqZ2Ztd2ptandqYm9vendmYGttanJ2ZndrZiNsd2tmcWp3I2BibSNhZmZ7anB3Zm1gZnZtZ2Zxb2ptZndranAjd2puZndmb2Zza2xtZmp3Zm5wYGxzZnNxYmB3amBmcGJndWJtd2JkZio4cWZ3dnFtI0VscSNsd2tmcXNxbHVqZ2ptZGdmbmxgcWJgemFsd2sjd2tmI2Z7d2ZtcGp1ZnB2ZWVmcWptZHB2c3NscXdmZ2BsbnN2d2ZxcCNldm1gd2psbXNxYmB3amBib3Biamcjd2tid2p3I25ieiNhZkZtZG9qcGs/LGVxbG4jd2tmI3Bga2Zndm9mZ2dsdG1vbGJncD8sb2JhZm89XHRwdnBzZmB3ZmduYnFkam05IzNwc2pxand2Ym8/LGtmYmc9XHRcdG5qYHFscGxld2RxYmd2Ym9vemdqcGB2cHBmZ2tmI2FmYGJuZmZ7ZmB2d2p1ZmlydmZxei1pcGtsdnBma2xvZ2BsbWVqcW5mZ3N2cWBrYnBmZ29qd2ZxYm9vemdmcHdxbHpmZ3ZzI3dsI3drZnVicWpid2psbXFmbmJqbWptZGp3I2pwI21sd2BmbXd2cWpmcElic2JtZnBmI2JubG1kI3drZmBsbnNvZndmZ2JvZGxxandrbmptd2ZxZnB3cHFmYWZvb2psbXZtZ2Zlam1mZ2ZtYGx2cWJkZnFmcGp5YmFvZmptdWxvdWptZHBmbXBqd2p1ZnZtanVmcXBib3NxbHVqcGpsbStib3drbHZka2VmYnd2cWptZGBsbWd2YHdmZyovI3RramBrI2BsbXdqbXZmZy5rZmJnZnEhPUVmYXF2YnF6I212bmZxbHZwI2x1ZnFlb2x0OWBsbnNsbWZtd2VxYmRuZm13cGZ7YGZvb2Ztd2Bsb3BzYm0+IXdmYGttamBib21mYnEjd2tmI0JndWJtYGZnI3BsdnFgZiNsZWZ7c3FmcHBmZ0tsbWQjSGxtZCNFYmBmYWxsaG52b3dqc29mI25mYGtibWpwbmZvZnVid2psbWxlZWZtcGp1Zj8sZWxxbj1cdFxucHNsbXBscWZnZ2xgdm5mbXctbHEjJXJ2bHc4d2tmcWYjYnFmd2tscGYjdGtsbmx1Zm5mbXdwc3FsYGZwcGZwZ2plZWpgdm93cHZhbmp3d2ZncWZgbG5uZm1nYGxtdWptYGZnc3Fsbmx3am1kISN0amd3az4hLXFmc29iYGYrYG9icHBqYGJvYGxib2p3amxta2pwI2VqcXB3Z2ZganBqbG1wYnBwanB3Ym13am1namBid2ZnZnVsb3Z3amxtLnRxYnNzZnEhZm1sdmRrI3dsYm9sbWQjd2tmZ2ZvanVmcWZnLi49Dlx0PyIuLkJuZnFqYGJtI3NxbHdmYHdmZ01sdWZuYWZxIz8scHd6b2Y9P2V2cW1qd3ZxZkptd2ZxbWZ3IyNsbWFvdnE+IXB2cHNmbWdmZ3FmYGpzamZtd2FicGZnI2xtI05scWZsdWZxL2JhbG9qcGtmZ2Bsb29mYHdmZ3RmcWYjbmJnZmZubHdqbG1ib2ZuZnFkZm1gem1icXFid2p1ZmJndWxgYndmcHN7OGFscWdmcWBsbm5qd3dmZ2dqcT4hb3dxIWZuc29semZmcHFmcGZicWBrLSNwZm9mYHdmZ3B2YGBmcHBscWB2cHdsbmZxcGdqcHNvYnpmZ1Bmc3dmbmFmcWJnZ0BvYnBwK0ViYGZhbGxoI3B2ZGRmcHdmZ2JtZyNvYndmcWxzZnFid2ptZGZvYmFscWJ3ZlBsbmZ3am5mcEptcHdqd3Z3ZmBmcXdiam1vemptcHdib29mZ2Vsb29sdGZxcElmcXZwYm9mbndrZnoja2J1ZmBsbnN2d2ptZGRmbWZxYndmZ3NxbHVqbWBmcGR2YnFibXdmZmJxYWp3cWJxenFmYGxkbWp5ZnRibXdmZyN3bHN7OHRqZ3drOXdrZmxxeiNsZWFma2J1amx2cVRram9mI3drZmZwd2puYndmZ2FmZGJtI3dsI2p3I2FmYGJuZm5iZG1qd3ZnZm52cHcja2J1Zm5scWYjd2tibUdqcWZgd2xxemZ7d2ZtcGpsbXBmYHFmd2Jxem1id3ZxYm9vemxgYHZxcWptZHVicWpiYW9mcGRqdWZtI3drZnNvYndlbHFuLT8sb2JhZm89P2Viam9mZyN3bGBsbnNsdm1ncGhqbWdwI2xlI3BsYGpmd2pmcGJvbG1kcGpnZiMuLiVkdzhcdFx0cGx2d2t0ZnB3d2tmI3FqZGt3cWJnamJ3amxtbmJ6I2tidWYjdm1mcGBic2YrcHNsaGZtI2ptISNrcWZlPiEsc3FsZHFibm5mbG1veiN3a2YjYGxuZiNlcWxuZ2pxZmB3bHF6YXZxamZnI2ptYiNwam5qb2Jxd2tmeiN0ZnFmPyxlbG13PT8sTWxxdGZkamJtcHNmYGplamZnc3FsZ3Zgam1kc2JwcGZtZGZxK21mdCNHYndmd2Zuc2xxYnF6ZWpgd2psbWJvQmV3ZnEjd2tmZnJ2YndqbG1wZ2x0bW9sYmctcWZkdm9icW96Z2Z1Zm9sc2ZxYmFsdWYjd2tmb2ptaGZnI3dsc2tmbWxuZm1ic2ZxamxnI2xld2xsb3dqcyE9cHZhcHdibWBmYnZ3bG5id2pgYnBzZmB3I2xlQm5sbWQjd2tmYGxtbWZgd2ZnZnB3am5id2ZwQmpxI0VscWBmcHpwd2ZuI2xlbGFpZmB3anVmam5uZmdqYndmbmJoam1kI2p3c2JqbXdqbWRwYGxtcnZmcWZnYnFmI3B3am9vc3FsYGZndnFmZHFsdHdrI2xla2ZiZ2ZnI2F6RnZxbHNmYm0jZ2p1anBqbG1wbmxvZmB2b2ZwZXFibWBranBmam13Zm13amxtYnd3cWJgd2ZnYGtqb2drbGxnYm9wbCN2cGZnZ2ZnamBid2ZncGptZGJzbHFmZ2ZkcWZmI2xlZWJ3a2ZxI2xlYGxtZW9qYHdwPyxiPT8scz1cdGBibmYjZXFsbnRmcWYjdnBmZ21sd2Yjd2tid3FmYGZqdWptZEZ7ZmB2d2p1ZmZ1Zm0jbmxxZmJgYGZwcCN3bGBsbm5ibWdmcVNsb2p3amBib252cGpgamJtcGdmb2pgamx2cHNxanBsbWZxcGJndWZtdyNsZVZXRS47ISMsPT8iWEBHQldCWCE9QGxtd2Jgd1BsdndrZnFtI2FkYGxvbHE+IXBmcWpmcCNsZS0jSncjdGJwI2ptI0Z2cWxzZnNmcW5qd3dmZ3Vib2pnYndmLWJzc2ZicWptZGxlZWpgamJvcHBmcWpsdnBvei5vYm1kdmJkZmptandqYndmZ2Z7d2ZtZ2ptZG9sbWQud2ZxbmptZW9id2psbXB2YGsjd2tid2Rmd0BsbGhqZm5icWhmZyNhej8sYXZ3d2xtPWpuc29mbmZtd2F2dyNqdyNqcGptYHFmYnBmcGdsdG0jd2tmI3FmcnZqcWptZGdmc2ZtZ2Ztdy4uPVx0PyIuLiNqbXdmcXVqZnRUandrI3drZiNgbHNqZnAjbGVgbG1wZm1wdnB0YnAjYXZqb3dVZm1meXZmb2IrZWxxbmZxb3p3a2YjcHdid2ZzZnFwbG1tZm9wd3Fid2ZkamBlYnVsdnEjbGVqbXVmbXdqbG1Uamhqc2ZnamJgbG13am1mbXd1anF3dmJvb3p0a2pgayN0YnBzcWptYGpzb2ZAbG5zb2Z3ZiNqZ2Ztd2pgYm9wa2x0I3drYndzcWpuandqdWZidGJ6I2VxbG5ubG9mYHZvYnFzcWZganBmb3pnanBwbG91ZmdWbWdmcSN3a2Z1ZnFwamxtPiE9JW1hcHM4PyxKdyNqcCN3a2YjV2tqcCNqcCN0am9vI2tidWZscWRibWpwbnBwbG5mI3dqbmZFcWpmZ3FqYGt0YnAjZWpxcHd3a2YjbG1veiNlYmB3I3drYndlbHFuI2pnPiFzcWZgZmdqbWRXZmBrbWpgYm9za3pwamBqcHdsYGB2cXAjam1tYnVqZGJ3bHFwZmB3amxtIT1wc2JtI2pnPiFwbHZka3cjd2xhZm9sdCN3a2ZwdnF1anVqbWR+Pyxwd3pvZj1ranAjZ2Zid2ticCNqbSN3a2ZgYnZwZmcjYXpzYnF3amJvb3pme2pwd2ptZCN2cGptZCN3a2Z0YnAjZGp1Zm1iI29qcHcjbGVvZnVmb3AjbGVtbHdqbG0jbGVMZWVqYGpibyNnanBuanBwZmdwYGpmbXdqcHdxZnBmbmFvZnBndnNvamBid2Zme3NvbHBqdWZxZmBsdWZxZmdib28jbHdrZnFkYm9vZnFqZnB4c2JnZ2ptZDlzZmxzb2YjbGVxZmRqbG0jbGViZ2dxZnBwZnBicHBsYGpid2ZqbmQjYm93PiFqbSNubGdmcW1wa2x2b2cjYWZuZndrbGcjbGVxZnNscXdqbWR3am5mcHdibnNtZmZnZmcjd2x3a2YjRHFmYndxZmRicWdqbWRwZmZuZmcjd2x1amZ0ZmcjYnBqbnNiYHcjbG1qZ2ZiI3drYnd3a2YjVGxxb2drZmpka3cjbGVme3NibWdqbWRXa2ZwZiNicWZgdnFxZm13IT1gYnFmZXZvb3puYmptd2JqbXBga2JxZGYjbGVAb2JwcGpgYm9iZ2dxZnBwZmdzcWZnamB3ZmdsdG1mcXBranM/Z2p1I2pnPiFxamRrdyE9Dlx0cWZwamdmbWBmb2ZidWYjd2tmYGxtd2ZtdyE9YnFmI2xld2ZtIyN+KisqOA5cdHNxbGFiYW96I1NxbGVmcHBscS5hdnd3bG0hI3FmcHNsbWdmZ3BienAjd2tid2tiZyN3bCNhZnNvYmBmZyNqbUt2bWRicWpibXB3Ynd2cCNsZXBmcXVmcCNicFZtanVmcXBib2Z7ZmB2d2psbWJkZHFmZGJ3ZmVscSN0a2pga2ptZWZgd2psbWJkcWZmZyN3bGtsdGZ1ZnEvI3Nsc3ZvYnEhPXNvYmBmZyNsbWBsbXB3cXZgd2ZvZmB3bHFib3B6bmFsbyNsZWptYG92Z2ptZHFmd3ZxbSN3bGJxYGtqd2Zgd0BrcWpwd2pibXNxZnVqbHZwI29qdWptZCNqbWZicGpmcSN3bHNxbGVmcHBscVx0JW93OCIuLiNmZWVmYHcjbGVibWJvendqYHB0YnAjd2JoZm10a2ZxZiN3a2Z3bGxoI2x1ZnFhZm9qZmUjam1CZXFqaGJibXBicCNlYnEjYnBzcWZ1Zm13Zmd0bHFoI3Rqd2tiI3BzZmBqYm8/ZWpmb2dwZndAa3FqcHduYnBRZndxamZ1ZmdcdFx0Sm0jd2tmI2FiYGgjam13bG1scXdrZmJwd25iZGJ5am1mcD0/cHdxbG1kPWBsbm5qd3dmZmRsdWZxbWptZGRxbHZzcCNsZXB3bHFmZyNqbWZwd2Jhb2pwa2IjZGZtZnFib2p3cCNlanFwd3drZmpxI2x0bXNsc3ZvYndmZ2JtI2xhaWZgd0BicWphYWZibWJvb2x0I3drZmdqcHdxamB3cHRqcGBsbXBqbW9sYGJ3amxtLTgjdGpnd2s5I2pta2JhandmZ1BsYGpib2pwd0libXZicXojMj8sZWxsd2ZxPXBqbmpvYnFvemBrbGpgZiNsZXdrZiNwYm5mI3BzZmBqZWpgI2F2cGptZnBwI1drZiNlanFwdy1vZm1kd2s4I2dmcGpxZiN3bGdmYm8jdGp3a3BqbWBmI3drZnZwZnFCZGZtd2BsbWBmanVmZ2ptZ2Z7LXNrc2JwIyVydmx3OGZtZGJkZiNqbXFmYGZtd296L2VmdCN6ZmJxcHRmcWYjYm9wbFx0P2tmYmc9XHQ/Zmdqd2ZnI2F6YnFmI2htbHRtYGp3amZwI2ptYmBgZnBwaGZ6YGxtZ2ZubWZnYm9wbCNrYnVmcGZxdWpgZnAvZWJuam96I2xlUGBrbGxvI2xlYGxtdWZxd2ZnbWJ3dnFmI2xlI29ibWR2YmRmbmptanB3ZnFwPyxsYWlmYHc9d2tmcWYjanAjYiNzbHN2b2JxcGZydmZtYGZwYmd1bGBid2ZnV2tmeiN0ZnFmYm16I2x3a2Zxb2xgYndqbG0+Zm13ZnEjd2tmbnZgayNubHFmcWZlb2Zgd2ZndGJwI21ibmZnbHFqZGptYm8jYiN3enNqYGJvdGtmbSN3a2Z6Zm1kam1mZnFwYGx2b2cjbWx3cWZwamdmbXdwdGZnbWZwZ2J6d2tmI3dranFnI3NxbGd2YHdwSWJtdmJxeiMxdGtidyN3a2Z6YiNgZnF3YmptcWZiYHdqbG1wc3FsYGZwcGxxYmV3ZnEja2pwd2tmI29icHcjYGxtd2JqbWZnIT0/LGdqdT1cdD8sYj0/LHdnPWdmc2ZtZyNsbXBmYnFgayE9XHRzamZgZnAjbGVgbG5zZndqbWRRZmVmcWZtYGZ3Zm1tZnBwZmZ0a2pgayNrYnAjdWZxcGpsbT4/LHBzYm09Iz8/LGtmYmdmcT1kanVmcCN3a2ZranB3bHFqYm11Ym92Zj4hIT1zYmdnam1kOTN1amZ0I3drYnd3bGRmd2tmcS93a2YjbmxwdyN0YnAjZWx2bWdwdmFwZncjbGVid3diYGgjbG1ga2pvZ3FmbS9zbGptd3AjbGVzZnFwbG1ibyNzbHBqd2psbTlib29mZGZnb3pAb2Z1Zm9ibWd0YnAjb2J3ZnFibWcjYmV3ZnFicWYjZGp1Zm10YnAjcHdqb29wYHFsb29qbWRnZnBqZG0jbGVuYmhmcCN3a2ZudmBrI29mcHBCbmZxamBibXAtXHRcdEJld2ZxIy8jYXZ3I3drZk52cGZ2biNsZW9sdmpwamJtYitlcWxuI3drZm5qbW1mcGx3YnNicXdqYG9mcGIjc3FsYGZwcEdsbmptamBibXVsb3ZuZiNsZXFmd3ZxbWptZGdmZWZtcGp1ZjMzc3t/cWpka25iZ2YjZXFsbm5sdnBmbHVmcSEjcHd6b2Y+IXB3YndmcCNsZSt0a2pgayNqcGBsbXdqbXZmcEVxYm1ganBgbGF2am9nam1kI3Rqd2tsdncjYnRqd2sjcGxuZnRrbCN0bHZvZ2IjZWxxbiNsZWIjc2JxdyNsZWFmZWxxZiNqd2htbHRtI2JwIyNQZnF1amBmcG9sYGJ3amxtI2JtZyNsZXdmbW5mYnB2cWptZGJtZyNqdyNqcHNic2ZxYWJgaHVib3ZmcCNsZQ5cdD93andvZj0+I3RqbWdsdC1nZndmcW5qbWZmcSVydmx3OCNzb2J6ZmcjYXpibWcjZmJxb3o/LGBmbXdmcT1lcWxuI3dranB3a2Yjd2txZmZzbHRmcSNibWdsZSMlcnZsdzhqbW1mcUtXTk8/YiNrcWZlPiF6OWptb2ptZjhAa3ZxYGsjbGV3a2YjZnVmbXd1ZnF6I2tqZGtsZWVqYGpibyMua2ZqZGt3OSNgbG13Zm13PiEsYGRqLmFqbSx3bCNgcWZid2ZiZXFqaGJibXBmcHNmcWJtd2xlcWJtL0tianBvYnd1amYpTXZvamZ3dnVqKV8oYGYpTXdqbWIoYWYpTXdqbWJcZlVoXGZUe1xmVE5cbntJXG5wQARGclx2QmxcYlF/XHRBe1x2VW0FR3hcdEF7AXlwBllBXDB6WFxiVFZcYldsXGJVZARCTVx2QntcbnBWXHZAeARCXFxcbnBABERiBEd6XHRhbFxucGFcdGZNXHR1RFxiVn4EbXhcdlF9XG5kU1x0cFxcXGJWS1xiU11cYlV8BW9EXHRrVlx2ZWRcdkhSXG5ifgRNYFxuSnAFb0QEfFFcbkxQBFN3XGJUbFxuQUlcbnhDXGJXdFx0QnEFRmAEQ21cdkxtXHRLeFx0fXRcYlB2XG55XFxcbmFCXHRWf1xuWmQEWFUEbGlcdGZyXHRpQFx0QkgEQkQEQlZcdGBWXG5bXVx0cF9cdFRuXG5+QVxueFJcdHVEXHRge1xiVkBcdFRuXHRIS1x0QUpcdnhzBFpmXG5xSQRaZlx2Qk1cdnxqXHR9dFxiU01cbm1DXHZRfXBmcXVqYGpscGJxdy9BYHZvbGJxZGZtd2ptYmFicWBmb2xtYmB2Ym9ydmpmcXN2YW9qYGJnbHNxbGd2YHdscHNsby9Bd2pgYnFmcHN2ZnB3YnRqaGpzZmdqYnBqZHZqZm13ZmEvVnBydmZnYmBsbnZtamdiZ3BmZHZxamdiZ3Nxam1ganNib3NxZmR2bXdicGBsbXdmbWpnbHFmcHNsbWdmcXVmbWZ5dmZvYnNxbGFvZm5icGdqYGpmbmFxZnFmb2Jgai9fbW1sdWpmbmFxZnBqbmpvYnFmcHNxbHpmYHdscHNxbGRxYm5icGptcHdqd3Z3bGJgd2p1amdiZ2ZtYHZmbXdxYmZgbG1sbi9BYmpuL01kZm1mcGBsbXdiYHdicWdmcGBicWRicW1mYGZwYnFqbGJ3Zm1gai9fbXdmby9FZWxtbGBsbmpwai9fbWBibWBqbG1mcGBic2JgamdiZ2ZtYGxtd3FicWJtL01vanBqcGVidWxxandscHcvRXFuam1scHNxbHVqbWBqYmZ3anJ2ZndicGZvZm5mbXdscGV2bWBqbG1mcHFmcHZvd2JnbGBicS9NYHdmcXNxbHNqZmdiZ3Nxam1ganNqbG1mYGZwamdiZ252bWpganNib2BxZmJgai9fbWdmcGBicWRicHNxZnBmbWBqYmBsbmZxYGpib2xzam1qbG1mcGZpZnFgamBqbGZnandscWpib3Bib2JuYm1gYmRsbXkvTW9meWdsYHZuZm13bHNmby9BYHZvYnFmYGpmbXdmcGRmbWZxYm9mcHdicXFiZGxtYnNxL01gd2pgYm1sdWZnYmdmcHNxbHN2ZnB3YnNiYGpmbXdmcHcvRWBtamBicGxhaWZ3anVscGBsbXdiYHdscFxmSEJcZklrXGZIblxmSF5cZkhTXGZIY1xmSFVcZklkXGZIblxmSHtcZkhDXGZIUlxmSFRcZkhSXGZISVxmSGNcZkhZXGZIblxmSFxcXGZIVVxmSWtcZkh5XGZJZ1xmSGRcZkh5XGZJbVxmSHdcZkhcXFxmSFVcZkhSXGZIQFxmSFJcZkhKXGZIeVxmSFVcZkhSXGZIVFxmSEFcZklsXGZIVVxmSW1cZkhjXGZIXFxcZkhVXGZJbFxmSEJcZklkXGZIblxmSEpcZkhTXGZIRFxmSEBcZkhSXGZISGdqc29sZ2xgcFxmSFRcZkhCXGZIQ1xmSFxcXGZJblxmSEZcZkhEXGZIUlxmSEJcZkhGXGZISFxmSFJcZkhHXGZIU1xmSFxcXGZIeFxmSFRcZkhIXGZISFxmSFxcXGZIVVxmSF5cZklnXGZIe1xmSFVcZkltXGZIalxmSEBcZkhSXGZIXFxcZkhKXGZJa1xmSFpcZkhVXGZJbVxmSGRcZkh6XGZJa1xmSF5cZkhDXGZISlxmSFNcZkh5XGZIUlxmSEJcZkhZXGZJa1xmSEBcZkhIXGZJbFxmSERcZkhAXGZJbFxmSHZcZkhCXGZJYFxmSEhcZkhUXGZIUlxmSF5cZkheXGZJa1xmSHpcZkhwXGZJZVxmSEBcZkhCXGZISlxmSEpcZkhIXGZISVxmSFJcZkhEXGZIVVxmSWxcZkhaXGZIVVxmSFxcXGZIaVxmSF5cZkh7XGZIeVxmSEFcZklsXGZIRFxmSHtcZkhcXFxmSEZcZkhSXGZIVFxmSFxcXGZIUlxmSEhcZkh5XGZIU1xmSGNcZkhlXGZIVFxmSWtcZkh7XGZIQ1xmSWxcZkhVXGZJblxmSG1cZkhqXGZIe1xmSWtcZkhzXGZJbFxmSEJcZkh6XGZJZ1xmSHBcZkh5XGZIUlxmSFxcXGZIaVxmSEFcZklsXGZIe1xmSENcZklrXGZISFxmSW1cZkhCXGZIWVxmSWdcZkhzXGZISlxmSWtcZkhuXGZIaVxmSHtcZkhcXFxmSHxcZkhUXGZJa1xmSEJcZklrXGZIXlxmSF5cZkh7XGZIUlxmSFVcZkhSXGZIXlxmSGZcZkhGXGZIXFxcZkh2XGZIUlxmSFxcXGZIfFxmSFRcZkhSXGZISlxmSWtcZkhcXFxmSHBcZkhTXGZIVFxmSEpcZkhTXGZIXlxmSEBcZkhuXGZISlxmSEBcZkhEXGZIUlxmSFVcZkluXGZIblxmSF5cZkhSXGZIelxmSHBcZklsXGZISFxmSEBcZkhzXGZIRFxmSEJcZkhTXGZIXlxmSGtcZkhUXGZJa1xmSGpcZkhEXGZJa1xmSERcZkhDXGZIUlxmSHlcZkltXGZIXlxmSF5cZkllXGZIe1xmSEFcZkhSXGZIe1xmSFxcXGZJa1xmSF5cZkhwXGZIe1xmSFVcZkhcXFxmSFJcZkhCXGZIXlxmSHtcZklrXGZIRlxmSWtcZkhwXGZIVVxmSFJcZkhJXGZIa1xmSFRcZklsXGZIVFxmSFVcZklsXGZIeVxmSF5cZkhSXGZITFxmSWxcZkh5XGZIVVxmSFJcZkhtXGZISlxmSW5cZkhcXFxmSEhcZkhVXGZISFxmSFRcZkhSXGZISFxmSENcZkhSXGZISlxmSGpcZkhDXGZIUlxmSEZcZkhSXGZIeVxmSHlcZklgXGZIRFxmSFpcZkhSXGZIQlxmSEpcZklrXGZIelxmSENcZkhVXGZJbFxmSFxcXGZIUlxmSENcZkh6XGZJbVxmSEpcZkheXGZIe1xmSWxgYndmZGxxamZwZntzZnFqZm1gZj8sd2p3b2Y9Dlx0QGxzenFqZGt3I2lidWJwYHFqc3dgbG1nandqbG1wZnVmcXp3a2ptZD9zI2BvYnBwPiF3ZmBrbWxvbGR6YWJgaGRxbHZtZz9iI2BvYnBwPiFuYm1iZGZuZm13JWBsc3o4IzEzMmlidWJQYHFqc3dga2JxYmB3ZnFwYXFmYmdgcXZuYXdrZm5wZm91ZnBrbHFqeWxtd2JvZGx1ZnFtbmZtd0Bib2plbHFtamJiYHdqdWp3amZwZ2pwYGx1ZnFmZ01idWpkYndqbG13cWJtcGp3amxtYGxtbWZgd2psbW1idWpkYndqbG1ic3NmYnFibWBmPyx3andvZj0/bmBrZmBoYWx7ISN3ZmBrbWpydmZwc3Fsd2Zgd2psbWJzc2JxZm13b3picCN0Zm9vI2Jwdm13JC8jJFZCLnFmcGxvdndqbG1sc2ZxYndqbG1wd2ZvZnVqcGpsbXdxYm1wb2J3ZmdUYnBram1kd2xtbWJ1amRid2xxLSM+I3RqbWdsdC1qbnNxZnBwamxtJW93OGFxJWR3OG9qd2ZxYnd2cWZzbHN2b2J3amxtYWRgbG9scT4hIGZwc2ZgamJvb3ojYGxtd2Ztdz4hc3FsZ3Zgd2psbW1mdHBvZnd3ZnFzcWxzZnF3amZwZ2Zlam1qd2psbW9mYmdmcXBranNXZmBrbWxvbGR6U2Jxb2pibmZtd2BsbnNicWpwbG12byNgb2JwcD4hLWptZ2Z7TGUrIWBsbWBvdnBqbG1nanBgdnBwamxtYGxuc2xtZm13cGFqbG9sZGpgYm9RZnVsb3Z3amxtXFxgbG13YmptZnF2bWdmcXB3bGxnbWxwYHFqc3c9P3NmcW5qcHBqbG1mYmBrI2x3a2ZxYndubHBza2ZxZiNsbWVsYHZwPiE/ZWxxbiNqZz4hc3FsYGZwcGptZHdranAtdWJvdmZkZm1mcWJ3amxtQGxtZWZxZm1gZnB2YXBmcnZmbXd0Zm9vLmhtbHRtdWJxamJ3amxtcHFmc3Z3YndqbG1za2ZtbG5mbWxtZ2pwYGpzb2ptZm9sZGwtc21kISMrZ2xgdm5mbXcvYWx2bWdicWpmcGZ7c3FmcHBqbG1wZnd3b2ZuZm13QWJgaGRxbHZtZ2x2dyNsZSN3a2ZmbXdmcXNxanBmKyFrd3dzcDkhI3ZtZnBgYnNmKyFzYnBwdGxxZyEjZ2ZubGBxYndqYD9iI2txZmU+ISx0cWJzc2ZxIT1cdG5mbmFmcXBranNvam1kdmpwd2pgc3s4c2JnZ2ptZHNram9scGxza3picHBqcHdibWBmdm1qdWZxcGp3emViYGpvandqZnBxZmBsZG1qeWZnc3FmZWZxZm1gZmplIyt3enNmbGVuYmptd2JqbWZndWxgYmF2b2Jxemt6c2x3a2ZwanAtcHZhbmp3Kyo4JWJuczhtYXBzOGJtbWx3YndqbG1hZmtqbWcjd2tmRWx2bWdid2psbXN2YW9qcGtmcSFicHB2bnN3amxtam13cWxndmBmZ2BscXF2c3dqbG1wYGpmbXdqcHdwZntzb2pgandvemptcHdmYmcjbGVnam5mbXBqbG1wI2xtQG9qYGg+IWBsbXBqZ2ZxZmdnZnNicXduZm13bGBgdnNid2psbXBsbG0jYmV3ZnFqbXVmcHduZm13c3FsbWx2bWBmZ2pnZm13amVqZmdme3NmcWpuZm13TmJtYmRmbmZtd2RmbGRxYnNramAhI2tmamRrdz4hb2ptaCNxZm8+IS1xZnNvYmBmKyxnZnNxZnBwamxtYGxtZWZxZm1gZnN2bWpwa25mbXdmb2puam1id2ZncWZwanB3Ym1gZmJnYnN3YndqbG1sc3NscGp3amxtdGZvbyNobWx0bXB2c3NvZm5mbXdnZndmcW5qbWZnazIjYG9icHA+ITNzezhuYnFkam1uZmBrYm1qYGJvcHdid2pwd2pgcGBmb2ZhcWJ3ZmdEbHVmcW1uZm13XHRcdEd2cWptZCN3Z2Z1Zm9sc2ZxcGJxd2plamBqYm9mcnZqdWJvZm13bHFqZGptYndmZ0Bsbm5qcHBqbG1id3diYGtuZm13P3BzYm0jamc+IXdrZnFmI3RmcWZNZmdmcW9ibWdwYWZ6bG1nI3drZnFmZGpwd2ZxZmdpbHZxbWJvanB3ZXFmcnZmbXdvemJvbyNsZSN3a2ZvYm1kPiFmbSEjPyxwd3pvZj0OXHRiYXBsb3Z3ZjgjcHZzc2xxd2ptZGZ7d3FmbmZveiNuYmptcHdxZmJuPyxwd3FsbWQ9I3Nsc3ZvYnFqd3pmbnNvbHpuZm13Pyx3YmFvZj0OXHQjYGxvcHNibT4hPyxlbHFuPVx0IyNgbG11ZnFwamxtYmFsdncjd2tmIz8scz0/LGdqdT1qbXdmZHFid2ZnISNvYm1kPiFmbVNscXd2ZHZmcGZwdmFwd2p3dndmam1nanVqZ3Zib2puc2xwcGphb2Zudm93am5mZ2piYm9ubHB3I2Jvb3N7I3Bsb2pnIyBic2JxdyNlcWxucHZhaWZgdyN3bGptI0ZtZG9qcGtgcWp3amBqeWZnZntgZnN3I2VscWR2amdmb2ptZnBscWpkam1ib296cWZuYnFoYmFvZndrZiNwZmBsbWdrMSNgb2JwcD4hP2Ijd2p3b2Y+IStqbWBvdmdqbWRzYnFibmZ3ZnFwc3Fsa2phandmZz4jIWt3d3M5LCxnamB3amxtYnF6c2ZxYGZzd2psbXFmdWxvdndqbG1lbHZtZ2J3amxtc3s4a2ZqZGt3OXB2YGBmcHBldm9wdnNzbHF3ZnFwbmpvb2ZtbWp2bmtqcCNlYndrZnF3a2YjJXJ2bHc4bWwucWZzZmJ3OGBsbm5mcWBqYm9qbWd2cHdxamJvZm1gbHZxYmRmZ2JubHZtdyNsZSN2bWxlZWpgamJvZmVlamBqZm1gelFmZWZxZm1gZnBgbGxxZ2ptYndmZ2pwYG9iam5mcWZ7c2ZnandqbG1nZnVmb2xzam1kYGJvYHZvYndmZ3BqbnNvamVqZmdvZmRqd2puYndmcHZhcHdxam1kKzMhI2BvYnBwPiFgbG5zb2Z3Zm96am9vdnB3cWJ3ZmVqdWYjemZicXBqbXB3cXZuZm13U3Zhb2pwa2ptZDIhI2BvYnBwPiFzcHpga2xvbGR6YGxtZWpnZm1gZm12bmFmcSNsZSNiYXBmbWBmI2xlZWxgdnBmZyNsbWlsam1mZyN3a2Zwd3F2YHd2cWZwc3FmdWpsdnBvej0/LGplcWJuZj1sbWBmI2JkYmptYXZ3I3Fid2tmcWpubmpkcWJtd3BsZSNgbHZxcGYvYiNkcWx2cyNsZU9qd2ZxYnd2cWZWbW9qaGYjd2tmPyxiPSVtYXBzOFx0ZXZtYHdqbG0jancjdGJwI3drZkBsbXVmbXdqbG1idndsbmxham9mU3Fsd2Zwd2Jtd2JkZHFmcHBqdWZiZXdmcSN3a2YjUGpuam9icW96LyEjLD0/LGdqdT1gbG9vZmB3amxtDlx0ZXZtYHdqbG11anBqYWpvand6d2tmI3ZwZiNsZXVsb3Ztd2ZmcXBid3dxYmB3amxtdm1nZnEjd2tmI3drcWZid2ZtZmcpPyJYQEdCV0JYam5zbHF3Ym1gZmptI2RmbWZxYm93a2Yjb2J3d2ZxPyxlbHFuPVx0Pywtam1nZntMZSskaiM+IzM4I2ojP2dqZWVmcWZtYGZnZnVsd2ZnI3dsd3FiZ2p3amxtcHBmYnFgayNlbHF2b3dqbmJ3Zm96d2x2cW1ibmZtd2J3d3FqYXZ3ZnBwbC5gYm9vZmcjflx0Pyxwd3pvZj1mdWJvdmJ3amxtZm5za2JwanlmZ2JgYGZwcGphb2Y/LHBmYHdqbG09cHZgYGZwcGpsbWJvbG1kI3Rqd2tOZmJtdGtqb2Yvam1ndnB3cWpmcD8sYj0/YXEjLD1rYnAjYWZgbG5mYnBzZmB3cCNsZVdmb2Z1anBqbG1wdmVlamBqZm13YWJwaGZ3YWJvb2Fsd2sjcGpnZnBgbG13am12am1kYm0jYnF3amBvZj9qbmQjYm93PiFiZ3VmbXd2cWZwa2pwI25sd2tmcW5ibWBrZnB3ZnFzcWptYGpzb2Zwc2Jxd2pgdm9icWBsbm5mbXdicXpmZWVmYHdwI2xlZ2ZgamdmZyN3bCE9P3B3cWxtZD1zdmFvanBrZnFwSWx2cW1ibyNsZWdqZWVqYHZvd3plYmBqb2p3YndmYmBgZnN3YmFvZnB3em9mLWBwcCFcbmV2bWB3amxtI2ptbWx1YndqbG09QGxzenFqZGt3cGp3dmJ3amxtcHRsdm9nI2tidWZhdnBqbWZwcGZwR2pgd2psbWJxenB3YndmbmZtd3BsZXdmbSN2cGZnc2ZxcGpwd2Ztd2ptI0libXZicXpgbG5zcWpwam1kPyx3andvZj1cdFxuZ2pzb2xuYndqYGBsbXdiam1qbWRzZnFlbHFuam1kZnt3Zm1wamxtcG5ieiNtbHcjYWZgbG1gZnN3I2xlI2xtYG9qYGg+IUp3I2pwI2JvcGxlam1ibWBqYm8jbmJoam1kI3drZk92e2ZuYWx2cWRiZ2dqd2psbWJvYnFmI2Bib29mZ2ZtZGJkZmcjam0hcGBxanN3ISo4YXZ3I2p3I3RicGZvZmB3cWxtamBsbXB2YW5qdz4hXHQ/Ii4uI0ZtZyNmb2Zgd3FqYGJvbGVlamBqYm9venB2ZGRmcHdqbG13bHMjbGUjd2tmdm1vamhmI3drZkJ2cHdxYm9qYm1McWpkam1ib296cWZlZnFmbWBmcFx0PyxrZmJnPQ5cdHFmYGxkbWpwZmdqbWp3amJvanlmb2puandmZyN3bEJvZntibWdxamJxZndqcWZuZm13Qmd1Zm13dnFmcGVsdnEjemZicXBcdFx0JW93OCIuLiNqbWBxZmJwam1kZ2ZgbHFid2psbWswI2BvYnBwPiFscWpkam1wI2xlbGFvamRid2psbXFmZHZvYndqbG1gb2JwcGplamZnK2V2bWB3amxtK2JndWJtd2JkZnBhZmptZCN3a2Yja2pwd2xxamJtcD9hYnBmI2txZmVxZnNmYndmZ296dGpvb2ptZCN3bGBsbnNicWJhb2ZnZnBqZG1id2ZnbWxuam1id2psbWV2bWB3amxtYm9qbXBqZ2Yjd2tmcWZ1Zm9id2psbWZtZyNsZSN3a2ZwI2VscSN3a2YjYnZ3a2xxanlmZ3FmZXZwZmcjd2x3YmhmI3NvYmBmYnZ3bG1sbmx2cGBsbnNxbG5qcGZzbG9qd2pgYm8jcWZwd2J2cWJtd3d0bCNsZSN3a2ZFZmFxdmJxeiMxcnZib2p3eiNsZXB0ZWxhaWZgdy12bWdmcXB3Ym1nbWZicW96I2Jvb3Rxand3Zm0jYXpqbXdmcXVqZnRwISN0amd3az4hMnRqd2tncWJ0Ym9lb2xidzlvZmV3anAjdnB2Ym9vemBibWdqZ2J3ZnBtZnRwc2JzZnFwbnpwd2Zxamx2cEdmc2Jxd25mbXdhZnB3I2htbHRtc2Jxb2pibmZtd3B2c3NxZnBwZmdgbG11Zm1qZm13cWZuZm5hZnFmZ2dqZWVmcWZtdyNwenB3Zm5id2pga2JwI29mZyN3bHNxbHNiZGJtZ2JgbG13cWxvb2Znam1lb3ZmbWBmcGBmcWZubG1qYm9zcWxgb2JqbmZnU3Fsd2Zgd2psbW9qI2BvYnBwPiFQYGpmbXdqZWpgYG9icHA+IW1sLndxYmdmbmJxaHBubHFmI3drYm0jdGpnZnBzcWZiZ09qYWZxYndqbG13bGxoI3NvYmBmZ2J6I2xlI3drZmJwI29sbWQjYnBqbnNxanBsbWZnQmdnandqbG1ib1x0P2tmYmc9XHQ/bk9iYWxxYndscXpNbHVmbmFmcSMxZntgZnN3amxtcEptZ3Zwd3FqYm91YnFqZnd6I2xlZW9sYnc5I29mZUd2cWptZCN3a2ZicHBmcHBuZm13a2J1ZiNhZmZtI2dmYm9wI3Rqd2tQd2J3anB3amBwbGBgdnFxZm1gZix2bz0/LGdqdT1gb2ZicWVqeyE9d2tmI3N2YW9qYG5ibXojemZicXB0a2pgayN0ZnFmbHVmcSN3am5mL3B6bWxtem5sdnBgbG13Zm13IT1cdHNxZnB2bmJhb3pranAjZWJuam96dnBmcUJkZm13LXZtZntzZmB3ZmdqbWBvdmdqbWQjYGtib29mbWRmZ2IjbmptbHFqd3p2bWdmZWptZmchYWZvbG1kcCN3bHdiaGZtI2VxbG5qbSNMYHdsYWZxc2xwandqbG05I3Biamcjd2wjYWZxZm9qZGpsdnAjRWZnZnFid2psbSNxbHRwc2JtPiFsbW96I2IjZWZ0bmZibXcjd2tid29mZyN3bCN3a2YuLj0OXHQ/Z2p1Iz9lamZvZ3Bmdz1CcWBrYWpwa2xzI2BvYnBwPiFtbGFmam1kI3ZwZmdic3NxbGJga2Zwc3FqdWpvZmRmcG1scGBxanN3PVx0cWZwdm93cCNqbW5ieiNhZiN3a2ZGYnB3ZnEjZmRkbmZga2JtanBucHFmYnBsbWJhb2ZTbHN2b2J3amxtQGxvb2Zgd2psbXBmb2Zgd2ZnIT1tbHBgcWpzdz0OLGptZ2Z7LXNrc2JxcWp1Ym8jbGUuaXBwZ2gkKio4bmJtYmRmZyN3bGptYGxuc29md2ZgYnB2Ym93amZwYGxuc29md2psbUBrcWpwd2pibXBQZnN3Zm5hZnEjYnFqd2tuZndqYHNxbGBmZ3ZxZnBuamRrdyNrYnVmU3FsZ3Zgd2psbWp3I2Jzc2ZicXBTa2pvbHBsc2t6ZXFqZm1ncGtqc29mYmdqbWQjd2xkanVqbWQjd2tmd2x0YnFnI3drZmR2YnFibXdmZmdnbGB2bmZtd2ZnYGxvbHE5IDMzM3VqZ2ZsI2RibmZgbG5uanBwamxtcWZlb2Zgd2ptZGBrYm1kZiN3a2ZicHBsYGpid2ZncGJtcC5wZnFqZWxtaGZ6c3FmcHA4I3NiZ2dqbWQ5S2YjdGJwI3drZnZtZ2Zxb3pqbWR3enNqYGJvb3ojLyNibWcjd2tmI3BxYEZvZm5mbXdwdmBgZnBwanVmcGptYGYjd2tmI3BrbHZvZyNhZiNtZnd0bHFoam1kYmBgbHZtd2ptZHZwZiNsZSN3a2ZvbHRmcSN3a2JtcGtsdHAjd2tidz8scHNibT1cdFxuXG5gbG5zb2JqbXdwYGxtd2ptdmx2cHJ2Ym13andqZnBicHdxbG1sbmZxa2YjZ2pnI21sd2d2ZiN3bCNqd3Bic3NvamZnI3dsYm0jYnVmcWJkZmZlZWxxd3Ajd2x3a2YjZXZ3dnFmYnd3Zm5zdyN3bFdrZnFmZWxxZi9gYnNiYWpvand6UWZzdmFvamBibXRicCNlbHFuZmdGb2Zgd3FsbWpgaGpvbG5md2ZxcGBrYm9vZm1kZnBzdmFvanBram1kd2tmI2VscW5mcWptZ2pkZm1sdnBnanFmYHdqbG1wcHZhcGpnamJxemBsbXBzanFiYHpnZndiam9wI2xlYm1nI2ptI3drZmJlZWxxZ2Jhb2ZwdmFwd2JtYGZwcWZicGxtI2VscWBsbXVmbXdqbG1qd2Zud3pzZj4hYmFwbG92d2ZvenB2c3NscGZnb3pxZm5iam1mZyNiYnd3cWJgd2p1ZndxYnVmb29qbWRwZnNicWJ3Zm96ZWxgdnBmcCNsbWZvZm5mbXdicXpic3NvamBiYW9mZWx2bWcjd2tid3B3em9mcGtmZnduYm12cGBxanN3cHdibWdwI2VscSNtbC5xZnNmYncrcGxuZndqbmZwQGxubmZxYGpib2ptI0JuZnFqYGJ2bWdmcXdiaGZtcnZicXdmcSNsZWJtI2Z7Ym5zb2ZzZnFwbG1ib296am1nZnstc2tzPD8sYXZ3d2xtPVx0c2ZxYGZtd2JkZmFmcHcuaG1sdG1gcWZid2ptZCNiISNnanE+IW93cU9qZnZ3Zm1ibXdcdD9nanUjamc+IXdrZnojdGx2b2diYWpvand6I2xlbmJnZiN2cyNsZW1sd2ZnI3drYndgb2ZicSN3a2J3YnFkdmYjd2tid3dsI2JtbHdrZnFga2pvZ3FmbSRwc3Zxc2xwZiNsZWVscW52b2J3ZmdhYnBmZyN2c2xtd2tmI3FmZGpsbXB2YWlmYHcjbGVzYnBwZm1kZnFwc2xwcGZwcGpsbS1cdFx0Sm0jd2tmI0FmZWxxZiN3a2ZiZXdmcXRicWdwYHZxcWZtd296I2JgcWxwcCN3a2ZwYGpmbXdqZWpgYGxubnZtand6LWBic2p3Ym9qcG5qbSNEZnFuYm16cWpka3cudGptZHdrZiNwenB3Zm5QbGBqZnd6I2xlc2xvandqYGpibWdqcWZgd2psbTl0Zm13I2xtI3dscWZubHVibyNsZSNNZnQjWmxxaCNic2Jxd25mbXdwam1namBid2psbWd2cWptZCN3a2Z2bW9mcHAjd2tma2pwd2xxamBib2tiZyNhZmZtI2JnZmVqbWp3anVmam1kcWZnamZtd2J3d2ZtZ2JtYGZAZm13ZnEjZWxxc3FsbmptZm1gZnFmYmd6UHdid2Zwd3Fid2ZkamZwYXZ3I2ptI3drZmJwI3NicXcjbGVgbG1wd2p3dndmYG9iam4jd2tid29iYWxxYndscXpgbG5zYndqYW9mZWJqb3ZxZiNsZS8jcHZgayNicCNhZmRibSN0andrdnBqbWQjd2tmI3dsI3NxbHVqZ2ZlZmJ3dnFmI2xlZXFsbiN0a2pgaywhI2BvYnBwPiFkZmxvbGRqYGJvcGZ1ZnFibyNsZWdmb2phZnFid2ZqbnNscXdibXcja2xvZ3Ajd2tid2ptZCVydmx3OCN1Ym9qZG0+d2xzd2tmI0RmcW5ibWx2d3BqZ2YjbGVtZmRsd2pid2Zna2pwI2BicWZmcXBmc2JxYndqbG1qZz4hcGZicWBrdGJwI2Bib29mZ3drZiNlbHZxd2txZmBxZmJ3amxtbHdrZnEjd2tibXNxZnVmbXdqbG10a2pvZiN3a2YjZmd2YGJ3amxtL2BsbW1mYHdqbWRiYGB2cWJ3Zm96dGZxZiNhdmpvd3RicCNoam9vZmdiZHFmZm5mbXdwbnZgayNubHFmI0d2ZiN3bCN3a2Z0amd3azkjMjMzcGxuZiNsd2tmcUhqbWRnbG4jbGV3a2YjZm13anFmZWJubHZwI2VscXdsI2BsbW1mYHdsYWlmYHdqdWZwd2tmI0VxZm1ga3NmbHNvZiNibWdlZmJ3dnFmZyE9anAjcGJqZyN3bHB3cXZgd3ZxYm9xZmVmcWZtZ3ZubmxwdyNsZXdmbWIjcGZzYnFid2YuPVx0P2dqdSNqZyNMZWVqYGpibyN0bHFvZ3RqZ2YtYnFqYi5vYmFmb3drZiNzb2JtZndibWcjancjdGJwZyEjdWJvdmY+IW9sbGhqbWQjYndhZm1mZWpgamJvYnFmI2ptI3drZm5sbWp3bHFqbWRxZnNscXdmZ296d2tmI25sZ2ZxbXRscWhqbWQjbG1ib29sdGZnI3dsdGtmcWYjd2tmI2ptbWx1YndqdWY/LGI9PyxnanU9cGx2bWd3cWJgaHBmYnFga0VscW53Zm1nI3dsI2Fmam1zdncjamc+IWxzZm1qbWQjbGVxZnB3cWpgd2ZnYmdsc3dmZyNhemJnZ3FmcHBqbWR3a2Zsb2xkamJtbmZ3a2xncCNsZXVicWpibXcjbGVAa3FqcHdqYm0jdWZxeiNvYnFkZmJ2d2xubHdqdWZheiNlYnEjd2tmcWJtZGYjZXFsbnN2cXB2ancjbGVlbG9vbHQjd2tmYXFsdmRrdyN3bGptI0ZtZG9ibWdiZHFmZiN3a2J3YmBgdnBmZyNsZWBsbmZwI2VxbG5zcWZ1Zm13am1kZ2p1I3B3em9mPmtqcCNscSNrZnF3cWZuZm1nbHZwZXFmZmdsbiNsZWBsbWBmcW1qbWQzIzJmbiMyZm44QWJwaGZ3YWJvbyxwd3pvZi1gcHBibSNmYnFvamZxZnVmbSNiZXdmcSwhI3dqd29mPiEtYGxuLGptZ2Z7d2Joam1kI3drZnNqd3dwYXZxZGtgbG13Zm13IT0OP3BgcWpzdz0rZXd2cW1mZyNsdndrYnVqbWQjd2tmPyxwc2JtPQ5cdCNsYGBicGpsbWJvYWZgYnZwZiNqd3B3YnF3Zmcjd2xza3pwamBib296PT8sZ2p1PVx0IyNgcWZid2ZnI2F6QHZxcWZtd296LyNhZGBsb2xxPiF3YmFqbWdmez4hZ2pwYnB3cWx2cEJtYm96d2pgcCNib3BsI2ticCNiPT9nanUjamc+IT8scHd6b2Y9XHQ/YGJvb2ZnI2VscXBqbWRmcSNibWctcHFgIz4jISwsdWpsb2J3amxtcHdranAjc2xqbXdgbG1wd2Jtd296anAjb2xgYndmZ3FmYGxxZ2ptZHBnI2VxbG4jd2tmbWZnZnFvYm1ncHNscXd2ZHYvRnA7Tjt9O0Q7dTtGNW00SzRdNF83YGdmcGJxcWxvb2xgbG5mbXdicWpsZmd2YGJgai9fbXBmc3dqZm5hcWZxZmRqcHdxYmdsZ2pxZmBgai9fbXZhamBiYGovX21zdmFvamBqZ2JncWZwc3ZmcHdicHFmcHZvd2JnbHBqbnNscXdibXdmcWZwZnF1YmdscGJxdy9BYHZvbHBnamVmcWZtd2ZwcGpkdmpmbXdmcHFmcy9WYW9qYGJwand2YmBqL19tbmptanB3ZnFqbHNxanViYGpnYmdnanFmYHdscWpsZWxxbmJgai9fbXNsYW9iYGovX21zcWZwamdmbXdmYGxtdycsJ2ZtamdscGJgYGZwbHFqbHB3ZmBrbWxxYndqc2ZxcGxtYm9mcGBid2ZkbHEvQWJmcHNmYGpib2ZwZ2pwc2xtamFvZmJgd3Zib2pnYmdxZmVmcWZtYGpidWJvb2JnbG9qZ2FqYW9qbHdmYGJxZm9iYGpsbWZwYGJvZm1nYnFqbHNsby9Bd2pgYnBibXdmcWpscWZwZ2xgdm5mbXdscG1id3ZxYm9meWJuYndmcWpib2ZwZ2plZnFmbWBqYmZgbG0vX25qYGJ3cWJtcHNscXdmcWxncS9BZHZmeXNicXdqYGpzYnFmbWB2Zm13cWJtZ2pwYHZwai9fbWZwd3F2YHd2cWJldm1nYmBqL19tZXFmYHZmbXdmcHNmcW5ibWZtd2Z3bHdib25mbXdmPFA8UjxaPFE8UjxdPW88WDxZPW48UDxSPFo8WT1uPF49bDxZPFA9Yz1uPFxcPFY8WjxZPWs9bjxSPF09ZzxdPFI8VzxZPFk8Uj1rPFk8UT1gPWE9bjxSPF88UjxWPFI8XzxYPFxcPFM8Uj1tPFc8WTxePW08WTxfPFI9bTxcXDxVPW48WT1rPFk9bDxZPFs8UDxSPF89bz1uPW08XFw8VT1uPFxcPFo8VDxbPFE8VDxQPFk8WjxYPW88XT1vPFg9bz1uPHM8UjxUPW08VjxbPFg8WT1tPWA8XjxUPFg8WTxSPW08Xj1jPFs8VDxRPW88WjxRPFI9bTxePFI8WTxVPFc9YjxYPFk8VTxTPFI9bDxRPFI8UDxRPFI8XzxSPFg8WT1uPFk8VT1tPF48UjxUPWk8Uz1sPFxcPF48XFw9bjxcXDxWPFI8VTxQPFk9bT1uPFI8VDxQPFk8WT1uPFo8VDxbPFE9YDxSPFg8UTxSPFU8Vz1vPWs9ZDxZPFM8WT1sPFk8WD1rPFxcPW09bjxUPWs8XFw9bT1uPWA9bDxcXDxdPFI9bjxRPFI8Xj1nPWk8Uz1sPFxcPF48Uj1tPFI8XTxSPFU8UzxSPW48UjxQPFA8WTxRPFk8WT1rPFQ9bTxXPFk8UTxSPF49ZzxZPW89bTxXPW88XzxSPFY8UjxXPFI8UTxcXDxbPFxcPFg9bjxcXDxWPFI8WT1uPFI8XzxYPFxcPFM8Uj1rPW48VDxzPFI9bTxXPFk9bjxcXDxWPFQ8WTxRPFI8Xj1nPFU9bT1uPFI8VD1uPW48XFw8VjxUPWk9bT1sPFxcPFs9bzxNPFxcPFE8Vj1uPWg8Uj1sPW88UDx2PFI8XzxYPFxcPFY8UTxUPF88VD1tPFc8UjxePFxcPFE8XFw9ZDxZPFU8UTxcXDxVPW48VD1tPF48UjxUPFA9bTxePWM8Wz1gPFc9YjxdPFI8VT1rPFxcPW09bjxSPW09bDxZPFg8VDx2PWw8UjxQPFk8SDxSPWw9bzxQPWw9ZzxRPFY8WT1tPW48XFw8VzxUPFM8UjxUPW08Vj1uPWc9bT1jPWs8UDxZPW09Yz1qPWo8WTxRPW49bD1uPWw9bzxYPFxcPW08XFw8UD1nPWk9bD1nPFE8VjxcXDxxPFI8Xj1nPFU9azxcXD1tPFI8XjxQPFk9bT1uPFxcPWg8VDxXPWA8UDxQPFxcPWw9bjxcXD1tPW49bDxcXDxRPFA8WT1tPW48WT1uPFk8Vj1tPW48UTxcXD1kPFQ9aTxQPFQ8UT1vPW48VDxQPFk8UTxUPFQ8UDxZPWI9bjxRPFI8UDxZPWw8XzxSPWw8UjxYPW08XFw8UDxSPFA9YT1uPFI8UD1vPFY8UjxRPWo8WT1tPF48UjxZPFA8VjxcXDxWPFI8VTx8PWw9aTxUPF41aTVqNEY0QzVlNEk0XTRfNEs1aDRdNF80SzVoNEU0SzVoNFU0SzVpNW80RjRENWs0SzRENF00SzVpNEA0SzVoNWY1ZDVpNEs1aDRZNWQ0XTRANEM1ZjRDNEU0SzVoNFU0WjVkNEk0WjRLNW00RTRLNWg1bjRfNWk0SzVoNFU0SzRENEY0QTVpNWY1aDVpNWg1bTRLNEY1aTVoNEY1bjVlNEY0VTRDNWY1aDRLNWg0WDRVNF00TzRCNEQ0SzRdNEY0WzVkNWY0XTRVNWg1ZjVvNWk0STRdNW00SzVuNFs1aDRENEs0RjRLNWg1aDRWNEU0RjRdNEY1ZjRENEs1aDVqNEs0XzRLNWg0WDVmNEI1aTVqNEY0QzVmNEs1aDRVNF00RDRLNWg1bjRZNFk0SzVtNWg0SzVpNFU1aDVmNWs0SzRGNEE0QzVmNEc0SzVoNWg1azVpNEs1aDRVNWk1aDVpNW80RjRENEU1ZjVpNW81ajVvNEs1aDRbNW01aDVtNWY0QzVmNWQ0STRDNEs0XTRFNEY0SzRdNWY0QjRLNWg0WTRBNEU0RjRfNEA1ZjVoNEs1aDVkNW40RjRVNWo0QzVpNEs1aTRDNWY1ajRFNEY0WTVpNWY1aTRPNF00WDVmNW00SzVoNFxcNWY1ajRVNF00RDVmNEU0RDVkNEs0RDRFNE81aDRVNEs0RDRLNWg0XzVtNF01aTRYNEs1bzVoNEY0VTRLNWg1ZTRLNWg0TzVkNWg0SzVoNF81ajRFNEA0SzVpNFU0RTRLNWg0WTRBNW00SzVoNEM1ZjVqNW81aDVpNEs0RjRLNWg0QjRLNFk0SzVoNWk1aDVtNE80VTRaNEs0TTVvNEY0SzRENEU0SzVoNEI1ZjRdNF00XzRLNEo1aDRLNWg1bjVoNEQ0SzVoNE80QzRENWk1bjRLNFs0VTVpNF00SzRfNWg1aTVqNFs1bjRFNEs1aDVvNEY0RDRLNWg0XTRANWg0SzRYNEY0XTVvNEs1aDVuNEM1aTVmNFU0WzVmNW9wQXpXYmRNYm5mKy1pc2QhI2Jvdz4hMnN7I3Bsb2pnIyAtZGplISNib3c+IXdxYm1wc2JxZm13am1lbHFuYndqbG1ic3NvamBid2psbSEjbG1gb2pgaD4hZnB3YmFvanBrZmdiZ3VmcXdqcGptZC1zbWQhI2Jvdz4hZm11anFsbW5mbXdzZnFlbHFuYm1gZmJzc3Fsc3FqYndmJWJuczhuZ2Jwazhqbm5mZ2pid2Zvej8scHdxbG1kPT8scWJ3a2ZxI3drYm13Zm5zZnFid3ZxZmdmdWZvbHNuZm13YGxuc2Z3andqbG1zb2JgZmtsb2dmcXVqcGpham9qd3o5YGxzenFqZGt3IT0zISNrZmpka3c+IWZ1Zm0jd2tsdmRrcWZzb2JgZm5mbXdnZnB3am1id2psbUBscXNscWJ3amxtP3ZvI2BvYnBwPiFCcHBsYGpid2psbWptZ2p1amd2Ym9wc2ZxcHNmYHdqdWZwZndXam5mbHZ3K3Zxbytrd3dzOSwsbmJ3a2ZuYndqYHBuYnFkam0ud2xzOWZ1Zm13dmJvb3ojZ2ZwYHFqc3dqbG0qI21sLnFmc2Zid2Bsb29mYHdqbG1wLUlTRH93a3ZuYX9zYnF3amBqc2J3ZixrZmJnPT9hbGd6ZW9sYnc5b2Zldzg/b2ojYG9icHA+IWt2bWdxZmdwI2xlXHRcdEtsdGZ1ZnEvI2BsbnNscGp3amxtYG9mYnE5YWx3azhgbGxzZnFid2psbXRqd2tqbSN3a2Yjb2JhZm8jZWxxPiFhbHFnZnEud2xzOU1mdCNZZmJvYm1ncWZgbG5uZm1nZmdza2x3bGRxYnNremptd2ZxZnB3am1kJW93OHB2cyVkdzhgbG13cWx1ZnFwek1md2tmcW9ibWdwYm93ZnFtYndqdWZuYntvZm1kd2s+IXB0and5ZnFvYm1nR2Z1Zm9sc25mbXdmcHBmbXdqYm9velx0XHRCb3drbHZkayM/LHdme3dicWZiPXdrdm1nZnFhanFncWZzcWZwZm13ZmclYm5zOG1nYnBrOHBzZmB2b2J3amxtYGxubnZtandqZnBvZmRqcG9id2psbWZvZmB3cWxtamBwXHRcbj9nanUjamc+IWpvb3Zwd3Fid2ZnZm1kam1mZnFqbWR3ZnFxandscWpmcGJ2d2tscWp3amZwZ2pwd3FqYXZ3Zmc1ISNrZmpka3c+IXBibXAucGZxamU4YGJzYmFvZiNsZSNnanBic3NmYnFmZ2ptd2ZxYmB3anVmb2xsaGptZCNlbHFqdyN0bHZvZyNhZkJlZGtibWpwd2JtdGJwI2BxZmJ3ZmdOYndrLWVvbGxxK3B2cXFsdm1nam1kYGJtI2JvcGwjYWZsYXBmcXVid2psbW5iam13Zm1ibWBmZm1gbHZtd2ZxZmc/azEjYG9icHA+IW5scWYjcWZgZm13ancja2JwI2FmZm1qbXVicGpsbSNsZSotZGZ3V2puZisqZXZtZ2JuZm13Ym9HZnBzandmI3drZiE9P2dqdSNqZz4ham1wc2pxYndqbG1me2Juam1id2psbXNxZnNicWJ3amxtZntzb2JtYndqbG0/am1zdncjamc+IT8sYj0/LHBzYm09dWZxcGpsbXAjbGVqbXB3cXZuZm13cGFmZWxxZiN3a2YjIz4jJGt3d3M5LCxHZnBgcWpzd2psbXFmb2J3anVmb3ojLXB2YXB3cWptZCtmYmBrI2xlI3drZmZ7c2Zxam5mbXdwam1lb3ZmbXdqYm9qbXdmZHFid2psbW5ibXojc2Zsc29mZ3ZmI3dsI3drZiNgbG5ham1id2psbWdsI21sdyNrYnVmTmpnZ29mI0ZicHc/bWxwYHFqc3c9P2Bsc3pxamRrdyEjc2Zxa2JzcCN3a2ZqbXB3and2d2psbWptI0dmYGZuYWZxYnFxYm1kZm5mbXdubHB3I2Vibmx2cHNmcXBsbWJvand6YHFmYndqbG0jbGVvam5qd2J3amxtcGZ7YG92cGp1Zm96cGx1ZnFmamRtd3ouYGxtd2ZtdyE9XHQ/d2cjYG9icHA+IXZtZ2ZxZHFsdm1nc2JxYm9vZm8jd2xnbGB3cWptZiNsZWxgYHZzamZnI2F6d2ZxbmptbG9sZHpRZm1ianBwYm1gZmIjbXZuYWZxI2xlcHZzc2xxdyNlbHFme3NvbHFid2psbXFmYGxkbWp3amxtc3FmZ2ZgZnBwbHE/am5kI3BxYD4hLD9rMiNgb2JwcD4hc3Zhb2pgYndqbG1uYnojYm9wbCNhZnBzZmBqYm9qeWZnPyxlamZvZ3Bmdz1zcWxkcWZwcGp1Zm5qb29qbG1wI2xlcHdid2ZwI3drYndmbWVscWBmbmZtd2JxbHZtZyN3a2YjbG1mI2JtbHdrZnEtc2JxZm13TWxnZmJkcWpgdm93dnFmQm93ZnFtYndqdWZxZnBmYnFga2ZxcHdsdGJxZ3Ajd2tmTmxwdyNsZSN3a2ZuYm16I2x3a2ZxIytmcHNmYGpib296P3dnI3RqZ3drPiE4dGpnd2s5MjMzJmptZ2ZzZm1nZm13P2swI2BvYnBwPiEjbG1ga2JtZGY+ISotYmdnQG9icHAram13ZnFiYHdqbG1MbWYjbGUjd2tmI2didmRrd2ZxI2xlYmBgZnBwbHFqZnBhcWJtYGtmcCNsZQ5cdD9nanUjamc+IXdrZiNvYnFkZnB3Z2Zgb2JxYndqbG1xZmR2b2J3amxtcEptZWxxbmJ3amxtd3FibXBvYndqbG1nbGB2bmZtd2JxemptI2xxZ2ZxI3dsIT1cdD9rZmJnPVx0PyEja2ZqZGt3PiEyYmBxbHBwI3drZiNscWpmbXdid2psbSo4PyxwYHFqc3c9am5zb2ZuZm13ZmdgYm0jYWYjcGZmbXdrZnFmI3RicCNiZ2ZubG1wd3Fid2ZgbG13YmptZnEhPWBsbW1mYHdqbG1wd2tmI0FxandqcGt0YnAjdHFqd3dmbSJqbnNscXdibXc4c3s4I25icWRqbS5lbG9vbHRmZyNhemJham9qd3ojd2wjYGxuc29qYGJ3ZmdndnFqbWQjd2tmI2pubmpkcWJ3amxtYm9wbCNgYm9vZmc/azcjYG9icHA+IWdqcHdqbWB3amxtcWZzb2JgZmcjYXpkbHVmcW1uZm13cG9sYGJ3amxtI2xlam0jTWx1Zm5hZnF0a2Z3a2ZxI3drZj8scz1cdD8sZ2p1PWJgcnZqcGp3amxtYGJvb2ZnI3drZiNzZnFwZmB2d2psbWdmcGpkbWJ3amxteGVsbXcucGp5Zjlic3NmYnFmZyNqbWptdWZwd2pkYndmZntzZnFqZm1gZmdubHB3I29qaGZvenRqZ2ZveiN2cGZnZ2pwYHZwcGpsbXBzcWZwZm1gZiNsZSMrZ2xgdm5mbXctZnt3Zm1wanVmb3pKdyNrYnAjYWZmbWp3I2dsZnAjbWx3YGxtd3FicXojd2xqbWtiYWp3Ym13cGpuc3FsdWZuZm13cGBrbG9icXBranNgbG1wdm5zd2psbWptcHdxdmB3amxtZWxxI2Z7Ym5zb2ZsbWYjbHEjbmxxZnN7OCNzYmdnam1kd2tmI2B2cXFmbXdiI3BmcWpmcCNsZWJxZiN2cHZib296cWxvZiNqbSN3a2ZzcWZ1amx2cG96I2dmcWp1YndqdWZwZnVqZ2ZtYGYjbGVme3NmcWpmbWBmcGBsb2xxcGBrZm5mcHdid2ZnI3drYndgZnF3amVqYGJ3Zj8sYj0/LGdqdT1cdCNwZm9mYHdmZz4ha2pkayNwYGtsbG9xZnBzbG1wZiN3bGBsbmVscXdiYW9mYmdsc3dqbG0jbGV3a3FmZiN6ZmJxcHdrZiNgbHZtd3F6am0jRWZhcXZicXpwbCN3a2J3I3drZnNmbHNvZiN0a2wjc3FsdWpnZmcjYXo/c2JxYm4jbWJuZmJlZWZgd2ZnI2F6am0jd2ZxbnAjbGVic3Nsam13bmZtd0pQTC47OzY6LjIhdGJwI2FscW0jam1ranB3bHFqYGJvI3FmZGJxZ2ZnI2JwbmZicHZxZm5mbXdqcCNhYnBmZyNsbSNibWcjbHdrZnEjOSNldm1gd2psbStwamRtamVqYGJtd2Bmb2ZhcWJ3amxtd3FibXBuand3ZmcsaXAsaXJ2ZnF6LWpwI2htbHRtI2Jwd2tmbHFmd2pgYm8jd2Jham1nZns+IWp3I2Bsdm9nI2FmP21scGBxanN3PVx0a2J1am1kI2FmZm0OXHQ/a2ZiZz0OXHQ/IyVydmx3OFdrZiNgbG5zam9id2psbWtmI2tiZyNhZmZtc3FsZ3ZgZmcjYXpza2pvbHBsc2tmcWBsbXB3cXZgd2Znam13Zm1nZmcjd2xibmxtZCNsd2tmcWBsbnNicWZnI3dsd2wjcGJ6I3drYndGbWRqbWZmcWptZGIjZ2plZWZxZm13cWZlZnFxZmcjd2xnamVlZnFmbWBmcGFmb2pmZSN3a2J3c2tsd2xkcWJza3BqZ2Ztd2plemptZEtqcHdscXojbGUjUWZzdmFvamAjbGVtZmBmcHBicWpvenNxbGFiYWpvand6d2Zga21qYGJvb3pvZmJ1am1kI3drZnBzZmB3YmB2b2JxZXFiYHdqbG0jbGVmb2Zgd3FqYGp3emtmYmcjbGUjd2tmcWZwd2J2cWJtd3BzYnF3bWZxcGtqc2Zuc2ticGpwI2xtbmxwdyNxZmBmbXdwa2JxZiN0andrI3BiemptZCN3a2J3ZWpvb2ZnI3Rqd2tnZnBqZG1mZyN3bGp3I2pwI2xld2ZtIT0/LGplcWJuZj1icCNlbG9vbHRwOW5mcWRmZyN0andrd2txbHZkayN3a2ZgbG5uZnFgamJvI3Nsam13ZmcjbHZ3bHNzbHF3dm1qd3p1amZ0I2xlI3drZnFmcnZqcWZuZm13Z2p1anBqbG0jbGVzcWxkcWJubmptZGtmI3FmYGZqdWZncGZ3Sm13ZnF1Ym8hPT8scHNibT0/LGptI01mdCNabHFoYmdnandqbG1ibyNgbG5zcWZwcGpsbVx0XHQ/Z2p1I2pnPiFqbWBscXNscWJ3Zjg/LHBgcWpzdz0/Ynd3YmBrRnVmbXdhZmBibmYjd2tmIyEjd2JxZGZ3PiFcXGBicXFqZmcjbHZ3UGxuZiNsZSN3a2ZwYGpmbWBmI2JtZ3drZiN3am5mI2xlQGxtd2JqbWZxIT1uYmptd2JqbWptZEBrcWpwd2xza2ZxTnZgayNsZSN3a2Z0cWp3am1kcCNsZSEja2ZqZGt3PiExcGp5ZiNsZSN3a2Z1ZnFwamxtI2xlI25qe3d2cWYjbGUjYWZ3dGZmbSN3a2ZGe2Juc29mcCNsZWZndmBid2psbWJvYGxuc2Z3andqdWYjbG1wdmFuanc+IWdqcWZgd2xxI2xlZ2pwd2ptYHdqdWYsR1dHI1tLV05PI3Fmb2J3am1kI3dsd2ZtZ2ZtYHojd2xzcWx1am1gZiNsZXRramBrI3Rsdm9nZ2Zwc2p3ZiN3a2ZwYGpmbXdqZWpgI29mZGpwb2J3dnFmLWptbWZxS1dOTyNib29mZGJ3amxtcEJkcWpgdm93dnFmdGJwI3ZwZmcjam1ic3NxbGJgayN3bGptd2Zvb2pkZm13emZicXAjb2J3ZnEvcGJtcC5wZnFqZWdmd2Zxbmptam1kU2ZxZWxxbmJtYGZic3NmYnFibWBmcC8jdGtqYGsjanAjZWx2bWdid2psbXBiYWFxZnVqYndmZ2tqZGtmcSN3a2JtcCNlcWxuI3drZiNqbWdqdWpndmJvI2BsbnNscGZnI2xlcHZzc2xwZmcjd2xgb2JqbnAjd2tid2J3d3FqYXZ3amxtZWxtdy5wanlmOTJmb2ZuZm13cCNsZUtqcHdscWpgYm8ja2pwI2FxbHdrZnFidyN3a2Yjd2puZmJtbWp1ZnFwYnF6ZGx1ZnFtZmcjYXpxZm9id2ZnI3dsI3Zvd2puYndmb3ojam1tbHVid2psbXBqdyNqcCNwd2pvb2BibSNsbW96I2FmZ2Zlam1qd2psbXB3bEROV1B3cWptZEIjbXZuYWZxI2xlam5kI2BvYnBwPiFGdWZtd3Zib296L3RicCNga2JtZGZnbGBgdnFxZmcjam1tZmpka2FscWptZGdqcHdqbWR2anBrdGtmbSNrZiN0YnBqbXdxbGd2YGptZHdmcXFmcHdxamJvTmJteiNsZSN3a2ZicWR2ZnAjd2tid2JtI0JuZnFqYGJtYGxtcnZmcHcjbGV0amdmcHNxZmJnI3RmcWYjaGpvb2ZncGBxZmZtI2JtZyNKbSNscWdmcSN3bGZ7c2Zgd2ZnI3dsZ2ZwYGZtZ2Jtd3BicWYjb2xgYndmZ29mZGpwb2J3anVmZGZtZnFid2psbXAjYWJgaGRxbHZtZ25scHcjc2Zsc29memZicXAjYmV3ZnF3a2ZxZiNqcCNtbHdrZiNramRrZnB3ZXFmcnZmbXdveiN3a2Z6I2dsI21sd2JxZHZmZyN3a2J3cGtsdGZnI3drYndzcWZnbG5qbWJtd3drZmxvbGRqYGJvYXojd2tmI3dqbmZgbG1wamdmcWptZHBrbHF3Lm9qdWZnPyxwc2JtPT8sYj1gYm0jYWYjdnBmZ3VmcXojb2p3d29mbG1mI2xlI3drZiNrYmcjYm9xZmJnemptd2Zxc3Fmd2ZnYGxubnZtamBid2ZlZmJ3dnFmcCNsZWRsdWZxbW5mbXcvPyxtbHBgcWpzdz1mbXdmcWZnI3drZiEja2ZqZGt3PiEwSm1nZnNmbWdmbXdzbHN2b2J3amxtcG9icWRmLnBgYm9mLSNCb3drbHZkayN2cGZnI2ptI3drZmdmcHdxdmB3amxtc2xwcGpham9qd3pwd2Jxd2ptZCNqbXd0bCNscSNubHFmZntzcWZwcGpsbXBwdmFscWdqbWJ3Zm9icWRmcSN3a2Jta2pwd2xxeiNibWc/LGxzd2psbT0OXHRAbG13am1mbXdib2Zvam5qbWJ3am1kdGpvbyNtbHcjYWZzcWJgd2pgZiNsZWptI2VxbG13I2xlcGp3ZiNsZSN3a2ZmbXB2cWYjd2tid3dsI2BxZmJ3ZiNibmpwcGpwcGpzc2pzbHdmbXdqYm9vemx2d3B3Ym1nam1kYWZ3d2ZxI3drYm10a2J3I2pwI21sdHBqd3Zid2ZnI2ptbmZ3YiNtYm5mPiFXcWJnandqbG1ib3B2ZGRmcHdqbG1wV3FibXBvYndqbG13a2YjZWxxbiNsZWJ3bmxwc2tmcWpgamdmbG9sZGpgYm9mbXdmcXNxanBmcGBib2B2b2J3am1kZmJwdyNsZSN3a2ZxZm5tYm13cCNsZXNvdmRqbXBzYmRmLGptZ2Z7LXNrczxxZm5iam1mZyNqbXdxYm1wZWxxbmZnS2YjdGJwI2JvcGx0YnAjYm9xZmJnenB3YndqcHdqYGJvam0jZWJ1bHEjbGVOam1qcHdxeiNsZW5sdWZuZm13I2xlZWxxbnZvYndqbG1qcCNxZnJ2anFmZz9vam1oI3Fmbz4hV2tqcCNqcCN3a2YjP2Ija3FmZT4hLHNsc3ZvYnFqeWZnam11bG91Zmcjam1icWYjdnBmZyN3bGJtZyNwZnVmcWJvbmJnZiNheiN3a2ZwZmZucCN3bCNhZm9qaGZveiN3a2J3U2JvZnB3am1qYm1tYm5mZyNiZXdmcWp3I2tiZyNhZmZtbmxwdyNgbG5ubG13bCNxZmVmcSN3bGF2dyN3a2pwI2pwYGxtcGZgdndqdWZ3Zm5zbHFicWpvekptI2RmbWZxYm8vYGxtdWZtd2psbXB3YmhmcCNzb2JgZnB2YWdqdWpwamxtd2ZxcWp3bHFqYm9sc2ZxYndqbG1ib3NmcW5ibWZtd296dGJwI29icWRmb3psdndhcWZiaCNsZWptI3drZiNzYnB3ZWxvb2x0am1kI2Ije25vbXA5bGQ+IT0/YiNgb2JwcD4hYG9icHA+IXdme3dAbG11ZnFwamxtI25ieiNhZiN2cGZnbmJtdmViYHd2cWZiZXdmcSNhZmptZGBvZmJxZWp7IT1cdHJ2ZnB3amxtI2xldGJwI2ZvZmB3Zmd3bCNhZmBsbmYjYmFmYGJ2cGYjbGUjcGxuZiNzZmxzb2ZqbXBzanFmZyNhenB2YGBmcHBldm8jYiN3am5mI3RrZm1ubHFmI2Bsbm5sbWJubG1kcHcjd2tmYm0jbGVlamBqYm90amd3azkyMzMmOHdmYGttbG9sZHovdGJwI2JnbHN3Zmd3bCNoZmZzI3drZnBmd3dvZm5mbXdwb2p1ZiNhanF3a3BqbWdmey1rd25vIUBsbW1mYHdqYHZ3YnBwamRtZmcjd2wlYm5zOHdqbmZwOGJgYGx2bXcjZWxxYm9qZG0+cWpka3d3a2YjYGxuc2JtemJvdGJ6cCNhZmZtcWZ3dnFtZmcjd2xqbXVsb3VmbmZtd0FmYGJ2cGYjd2tmd2tqcCNzZnFqbGchI21ibmY+IXIhI2BsbWVqbWZnI3dsYiNxZnB2b3cjbGV1Ym92Zj4hISMsPWpwI2Jgd3Zib296Rm11anFsbW5mbXcOXHQ/LGtmYmc9Dlx0QGxtdWZxcGZvei89XHQ/Z2p1I2pnPiEzISN0amd3az4hMmpwI3NxbGFiYW96a2J1ZiNhZmBsbmZgbG13cWxvb2ptZHdrZiNzcWxhb2ZuYGp3anlmbXAjbGVzbG9qd2pgamJtcHFmYmBrZmcjd2tmYnAjZmJxb3ojYnA5bWxtZjgjbHVmcT93YmFvZiNgZm9vdWJvamdqd3ojbGVnanFmYHdveiN3bGxtbmx2cGZnbHRtdGtmcWYjancjanB0a2ZtI2p3I3RicG5mbmFmcXAjbGUjcWZvYndqbG0jd2xiYGBsbm5sZ2J3ZmJvbG1kI3Rqd2sjSm0jd2tmI29id2Z3a2YjRm1kb2pwa2dmb2pgamx2cCE9d2tqcCNqcCNtbHd3a2Yjc3FmcGZtd2plI3drZnojYnFmYm1nI2VqbWJvb3piI25id3dmcSNsZQ5cdFxuPyxnanU9Dlx0Dlx0PyxwYHFqc3c9ZWJwd2ZxI3drYm1uYmlscWp3eiNsZWJld2ZxI3RramBrYGxuc2JxYndqdWZ3bCNuYmptd2JqbWpuc3FsdWYjd2tmYnRicWdmZyN3a2ZmcSEjYG9icHA+IWVxYm5mYWxxZ2ZxcWZwd2xxYndqbG1qbSN3a2YjcGJuZmJtYm96cGpwI2xld2tmanEjZWpxcHdHdnFqbWQjd2tmI2BsbXdqbWZtd2JvcGZydmZtYGYjbGVldm1gd2psbSsqeGVsbXcucGp5ZjkjdGxxaCNsbSN3a2Y/LHBgcWpzdz1cdD9hZmRqbXAjdGp3a2lidWJwYHFqc3c5YGxtcHdqd3ZmbXd0YnAjZWx2bWdmZ2ZydmpvamFxanZuYnBwdm5mI3drYndqcCNkanVmbSNhem1mZmdwI3dsI2FmYGxscWdqbWJ3ZnB3a2YjdWJxamx2cGJxZiNzYnF3I2xlbG1veiNqbSN3a2ZwZmB3amxtcCNsZWpwI2IjYGxubmxtd2tmbHFqZnAjbGVnanBgbHVmcWpmcGJwcGxgamJ3amxtZmdkZiNsZSN3a2Zwd3FmbWR3ayNsZXNscGp3amxtI2ptc3FmcGZtdy5nYnp2bWp1ZnFwYm9vendsI2VscW4jd2tmYXZ3I2ptcHdmYmdgbHFzbHFid2psbWJ3d2Jga2ZnI3dsanAjYGxubmxtb3pxZmJwbG1wI2VscSMlcnZsdzh3a2YjYGJtI2FmI25iZ2Z0YnAjYmFvZiN3bHRramBrI25mYm1wYXZ3I2dqZyNtbHdsbU5sdnBmTHVmcWJwI3NscHBqYW9mbHNmcWJ3ZmcjYXpgbG5qbWQjZXFsbndrZiNzcWpuYnF6YmdnandqbG0jbGVlbHEjcGZ1ZnFib3dxYm1wZWZxcWZnYiNzZnFqbGcjbGVicWYjYmFvZiN3bGtsdGZ1ZnEvI2p3cGtsdm9nI2tidWZudmBrI29icWRmcVx0XG4/LHBgcWpzdz1iZ2xzd2ZnI3drZnNxbHNmcXd6I2xlZ2pxZmB3ZmcjYXpmZWVmYHdqdWZvenRicCNhcWx2ZGt3YGtqb2dxZm0jbGVTcWxkcWJubmptZG9sbWRmcSN3a2JtbmJtdnBgcWpzd3B0YnEjYmRiam1wd2F6I25mYm1wI2xlYm1nI25scHcjbGVwam5qb2JxI3dsI3NxbHNxamZ3YnF6bHFqZGptYndqbWRzcWZwd2pkamx2cGRxYm5uYndqYGJvZntzZnFqZm1gZi13bCNuYmhmI3drZkp3I3RicCNib3BsanAjZWx2bWcjam1gbG5zZndqd2xxcGptI3drZiNWLVAtcWZzb2JgZiN3a2ZhcWx2ZGt3I3drZmBib2B2b2J3amxtZWJvbyNsZSN3a2Z3a2YjZGZtZnFib3NxYmB3amBib296am0ja2xtbHEjbGVxZm9mYnBmZyNqbXFmcGpnZm13amJvYm1nI3BsbmYjbGVoam1kI2xlI3drZnFmYmB3amxtI3dsMnB3I0ZicW8jbGVgdm93dnFmI2JtZ3Nxam1ganNib296Pyx3andvZj1cdCMjd2tmeiNgYm0jYWZhYmBoI3dsI3drZnBsbmYjbGUja2pwZntzbHB2cWYjd2xicWYjcGpuam9icWVscW4jbGUjd2tmYmdnRWJ1bHFqd2ZgandqeWZtcGtqc3NicXcjam0jd2tmc2Zsc29mI3Rqd2tqbSNzcWJgd2pgZndsI2BsbXdqbXZmJWJuczhuam12cDhic3NxbHVmZyNheiN3a2YjZWpxcHcjYm9vbHRmZyN3a2ZibWcjZWxxI3drZmV2bWB3amxtam1kc29iemptZCN3a2ZwbG92d2psbSN3bGtmamRrdz4hMyEjam0ja2pwI2FsbGhubHFmI3drYm0jYmVsb29sdHAjd2tmYHFmYndmZyN3a2ZzcWZwZm1gZiNqbSVtYXBzOD8sd2c9bWJ3amxtYm9qcHd3a2YjamdmYiNsZWIjYGticWJgd2ZxdGZxZiNlbHFgZmcjYG9icHA+IWF3bWdienAjbGUjd2tmZWZid3ZxZmcjam1wa2x0am1kI3drZmptd2ZxZnB3I2ptam0jc29iYGYjbGV3dnFtI2xlI3drZndrZiNrZmJnI2xlT2xxZyNsZSN3a2ZzbG9qd2pgYm9vemticCNqd3AjbHRtRmd2YGJ3amxtYm9ic3NxbHVibyNsZXBsbmYjbGUjd2tmZmJgayNsd2tmcS9hZmtidWpscSNsZWJtZyNhZmBidnBmYm1nI2JtbHdrZnFic3NmYnFmZyNsbXFmYGxxZ2ZnI2ptYW9iYGglcnZsdzhuYnojam1gb3ZnZndrZiN0bHFvZyRwYGJtI29mYmcjd2xxZmVmcXAjd2wjYmFscWdmcT4hMyEjZGx1ZnFtbmZtdyN0am1tam1kI3drZnFmcHZvd2ZnI2ptI3Rram9mI3drZiNUYnBram1kd2xtL3drZiNwdmFpZmB3YGp3eiNqbSN3a2Y9PyxnanU9Dlx0XG5cbnFmZW9mYHcjd2tmd2wjYGxuc29md2ZhZmBibmYjbmxxZnFiZ2psYmB3anVmcWZpZmB3ZmcjYXp0andrbHZ3I2JtemtqcCNlYndrZnEvdGtqYGsjYGx2b2dgbHN6I2xlI3drZndsI2ptZ2pgYndmYiNzbG9qd2pgYm9iYGBsdm13cCNsZWBsbXB3and2d2ZwdGxxaGZnI3Rqd2tmcT8sYj0/LG9qPWxlI2tqcCNvamVmYmBgbG5zYm1qZmdgb2pmbXdUamd3a3NxZnVmbXcjd2tmT2ZkanBvYndqdWZnamVlZnFmbXdvendsZGZ3a2ZxI2pta2JwI3BmdWZxYm9lbHEjYm1sd2tmcXdme3cjbGUjd2tmZWx2bWdmZyN3a2ZmI3Rqd2sjd2tmI2pwI3ZwZmcjZWxxYGtibWRmZyN3a2Z2cHZib296I3drZnNvYmBmI3RrZnFmdGtmcWZicCN3a2Y9Iz9iI2txZmU+ISE9P2Ija3FmZT4hd2tmbnBmb3VmcC9ib3drbHZkayNrZndrYncjYGJtI2Fmd3FiZ2p3amxtYm9xbG9mI2xlI3drZmJwI2IjcWZwdm93cWZubHVmQGtqb2dnZnBqZG1mZyNhenRmcHcjbGUjd2tmUGxuZiNzZmxzb2ZzcWxndmB3amxtL3BqZ2YjbGUjd2tmbWZ0cG9md3dmcXB2cGZnI2F6I3drZmdsdG0jd2wjd2tmYmBgZnN3ZmcjYXpvanVmI2ptI3drZmJ3d2Zuc3dwI3dsbHZ3cGpnZiN3a2ZlcWZydmZtYGpmcEtsdGZ1ZnEvI2ptc3FsZHFibm5mcXBidyNvZmJwdyNqbWJzc3Fse2puYndmYm93a2x2ZGsjand0YnAjc2JxdyNsZWJtZyN1YnFqbHZwRGx1ZnFtbHEjbGV3a2YjYnF3amBvZnd2cW1mZyNqbXdsPT9iI2txZmU+ISx3a2YjZmBsbWxuempwI3drZiNubHB3bmxwdyN0amdmb3p0bHZvZyNvYndmcWJtZyNzZnFrYnNwcWpwZiN3bCN3a2ZsYGB2cXAjdGtmbXZtZ2ZxI3RramBrYGxtZ2p3amxtcC13a2YjdGZwd2ZxbXdrZmxxeiN3a2J3anAjc3FsZ3ZgZmd3a2YjYGp3eiNsZWptI3RramBrI2tmcGZmbSNqbSN3a2Z3a2YjYGZtd3Fib2F2am9nam1kI2xlbmJteiNsZSNranBicWZiI2xlI3drZmpwI3drZiNsbW96bmxwdyNsZSN3a2ZuYm16I2xlI3drZndrZiNUZnB3ZnFtV2tmcWYjanAjbWxme3dmbWdmZyN3bFB3YndqcHdqYGJvYGxvcHNibT4xI39wa2xxdyNwd2xxenNscHBqYW9mI3dsd2xzbG9sZGpgYm9gcWp3amBibyNsZXFmc2xxd2ZnI3dsYiNAa3FqcHdqYm1nZmBqcGpsbSN3bGpwI2ZydmJvI3dsc3FsYW9mbnAjbGVXa2pwI2BibSNhZm5mcWBrYm1nanBmZWxxI25scHcjbGVtbCNmdWpnZm1gZmZnandqbG1wI2xlZm9mbmZtd3Ajam0lcnZsdzgtI1drZmBsbixqbmJkZnAsdGtqYGsjbmJoZnB3a2Yjc3FsYGZwcHFmbmJqbXAjd2tmb2p3ZnFid3ZxZi9qcCNiI25mbmFmcXdrZiNzbHN2b2Jxd2tmI2JtYGpmbXdzcWxhb2ZucCNqbXdqbmYjbGUjd2tmZ2ZlZmJ3ZmcjYXphbGd6I2xlI3drZmIjZWZ0I3pmYnFwbnZgayNsZSN3a2Z3a2YjdGxxaCNsZUBib2plbHFtamIvcGZxdWZnI2JwI2JkbHVmcW1uZm13LWBsbWBmc3dwI2xlbmx1Zm5mbXcjam1cblxuP2dqdSNqZz4hanchI3Vib3ZmPiFvYm1kdmJkZiNsZWJwI3drZnojYnFmc3FsZ3ZgZmcjam1qcCN3a2J3I3drZmZ7c29iam0jd2tmZ2p1PT8sZ2p1PVx0S2x0ZnVmcSN3a2ZvZmJnI3dsI3drZlxuP2Ija3FmZT4hLHRicCNkcWJtd2Znc2Zsc29mI2tidWZgbG13am12Ym9venRicCNwZmZtI2JwYm1nI3Fmb2J3Zmd3a2YjcWxvZiNsZXNxbHNscGZnI2F6bGUjd2tmI2FmcHdmYmBrI2x3a2ZxLUBsbXB3Ym13am1mc2Zsc29mI2VxbG5namJvZmB3cCNsZXdsI3FmdWpwamxtdGJwI3FmbWJuZmdiI3BsdnFgZiNsZXdrZiNqbWp3amJvb2J2bWBrZmcjam1zcWx1amdmI3drZndsI3drZiN0ZnB3dGtmcWYjd2tmcWZibWcjcGpuam9icWFmd3RmZm0jd3RsanAjYm9wbCN3a2ZGbWRvanBrI2JtZ2BsbWdqd2psbXAvd2tidyNqdyN0YnBmbXdqd29mZyN3bHdrZm5wZm91ZnAtcnZibXdqd3ojbGVxYm1wc2JxZm1gendrZiNwYm5mI2Jwd2wjaWxqbSN3a2ZgbHZtd3F6I2JtZ3dranAjanAjd2tmV2tqcCNvZmcjd2xiI3B3YndmbmZtd2BsbXdxYnB3I3dsb2Jwd0ptZ2Z7TGV3a3FsdmRrI2tqcGpwI2dmcGpkbWZnd2tmI3dmcW4janBqcCNzcWx1amdmZ3NxbHdmYHcjd2tmbWQ/LGI9Pyxvaj1Xa2YjYHZxcWZtd3drZiNwandmI2xlcHZhcHdibXdqYm9me3NmcWpmbWBmL2ptI3drZiNUZnB3d2tmeiNwa2x2b2dwb2x1Zm0oYWptYmBsbmZtd2Jxamxwdm1qdWZxcGpnYmdgbG1namBqbG1mcGJgd2p1amdiZ2ZwZntzZnFqZm1gamJ3ZmBtbG9sZC9BYnNxbGd2YGBqL19tc3Ztd3ZiYGovX21ic29qYGJgai9fbWBsbXdxYnBmL11iYGJ3ZmRscS9BYnBxZmRqcHdxYnFwZnNxbGVmcGpsbWJvd3Fid2JuamZtd2xxZmQvQXB3cWJ3ZnBmYHFmd2JxL0Fic3FqbWBqc2JvZnBzcWx3ZmBgai9fbWpuc2xxd2Jtd2Zwam5zbHF3Ym1gamJzbHBqYWpvamdiZ2ptd2ZxZnBibXdmYHFmYGpuamZtd2xtZmBmcGpnYmdmcHB2cGBxamFqcXBmYnBsYGpiYGovX21nanBzbG1qYW9mcGZ1Ym92YmBqL19tZnB3dmdqYm13ZnBxZnBzbG1wYmFvZnFmcGxvdmBqL19tZHZiZ2JvYmlicWJxZmRqcHdxYmdscGxzbHF3dm1qZ2JnYGxuZnFgamJvZnBlbHdsZHFiZS9BYmJ2d2xxamdiZ2Zwam1kZm1qZnEvQWJ3Zm9mdWpwai9fbWBsbnNmd2ZtYGpibHNmcWJgamxtZnBmcHdiYW9mYGpnbHBqbnNvZm5mbXdmYmB3dmJvbmZtd2ZtYnVmZGJgai9fbWBsbWVscW5qZ2Jnb2ptZi5rZmpka3c5ZWxtdy5lYm5qb3o5ISM5IyFrd3dzOSwsYnNzb2pgYndqbG1wb2ptaCEja3FmZT4hcHNmYGplamBib296LCw/IlhAR0JXQlhcdExxZGJtanlid2psbWdqcHdxamF2d2psbTNzezgja2ZqZGt3OXFmb2J3amxtcGtqc2dmdWpgZi50amd3az9nanUjYG9icHA+IT9vYmFmbyNlbHE+IXFmZGpwd3Fid2psbT8sbWxwYHFqc3c9XHQsam1nZnsta3dubyF0am1nbHQtbHNmbSsjImpuc2xxd2Jtdzhic3NvamBid2psbSxqbWdmc2ZtZ2ZtYGYsLHR0dC1kbGxkb2ZscWRibWp5YndqbG1idndsYGxuc29md2ZxZnJ2anFmbmZtd3BgbG1wZnF1YndqdWY/ZWxxbiNtYm5mPiFqbXdmb29mYHd2Ym9uYnFkam0ub2ZldzkyO3drI2BmbXd2cXpibSNqbnNscXdibXdqbXB3and2d2psbXBiYWFxZnVqYndqbG0/am5kI2BvYnBwPiFscWRibWpwYndqbG1ganVqb2p5YndqbG0yOndrI2BmbXd2cXpicWBrandmYHd2cWZqbWBscXNscWJ3ZmcxM3drI2BmbXd2cXouYGxtd2JqbWZxIT1ubHB3I21sd2Jhb3osPT8sYj0/LGdqdT1tbHdqZWpgYndqbG0kdm1nZmVqbWZnJCpFdnF3a2ZxbmxxZi9hZm9qZnVmI3drYndqbW1mcUtXTk8jPiNzcWpscSN3bCN3a2ZncWJuYndqYGJvb3pxZmVmcXFqbWQjd2xtZmRsd2pid2psbXBrZmJncnZicXdmcXBQbHZ3ayNCZXFqYGJ2bXB2YGBmcHBldm9TZm1tcHpvdWJtamJCcCNiI3FmcHZvdy8/a3dubyNvYm1kPiElb3c4LHB2cyVkdzhnZmJvam1kI3Rqd2tza2pvYmdmb3NramJranB3bHFqYGJvb3oqOD8scGBxanN3PVx0c2JnZ2ptZC53bHM5ZntzZnFqbmZtd2JvZGZ3Qnd3cWphdndmam1wd3F2YHdqbG1wd2Zga21sb2xkamZwc2JxdyNsZSN3a2YjPmV2bWB3amxtKyp4cHZhcGBxanN3amxtby1nd2chPQ5cdD9rd2RmbGRxYnNramBib0BsbXB3and2d2psbSQvI2V2bWB3amxtK3B2c3NscXdmZyNhemJkcWpgdm93dnFib2BsbXB3cXZgd2psbXN2YW9qYGJ3amxtcGVsbXcucGp5ZjkjMmIjdWJxamZ3eiNsZT9nanUjcHd6b2Y+IUZtYHpgb2xzZmdqYmplcWJuZiNwcWA+IWdmbmxtcHdxYndmZ2JgYGxuc29qcGtmZ3ZtanVmcXBqd2pmcEdmbmxkcWJza2pgcCo4PyxwYHFqc3c9P2dmZ2pgYndmZyN3bGhtbHRvZmdkZiNsZXBid2pwZWJgd2psbXNicXdqYHZvYnFvej8sZ2p1PT8sZ2p1PUZtZG9qcGsjK1ZQKmJzc2ZtZ0Bram9nK3dxYm1wbmpwcGpsbXAtI0tsdGZ1ZnEvI2ptd2Zvb2pkZm1gZiEjd2Jham1nZns+IWVvbGJ3OXFqZGt3OEBsbm5sbXRmYm93a3FibWRqbWQjZXFsbmptI3RramBrI3drZmJ3I29mYnB3I2xtZnFmc3FsZ3Zgd2psbWZtYHpgb2xzZmdqYjhlbG13LnBqeWY5Mml2cWpwZ2pgd2psbWJ3I3drYncjd2puZiE9P2IjYG9icHA+IUptI2JnZ2p3amxtL2dmcGBxanN3amxtKGBsbXVmcXBid2psbWBsbXdiYHcjdGp3a2pwI2RmbWZxYm9venEhI2BsbXdmbXc+IXFmc3FmcGZtd2ptZCVvdzhuYndrJWR3OHNxZnBmbXdid2psbWxgYGJwamxtYm9vej9qbmQjdGpnd2s+IW1idWpkYndqbG0hPWBsbnNmbXBid2psbWBrYm5zamxtcGtqc25mZ2piPiFib28hI3VqbG9id2psbSNsZXFmZWZxZm1gZiN3bHFmd3ZxbSN3cXZmOFB3cWpgdywsRk0hI3dxYm1wYmB3amxtcGptd2ZxdWZtd2psbXVmcWplamBid2psbUptZWxxbmJ3amxtI2dqZWVqYHZvd2pmcEBrYm5zamxtcGtqc2Bic2Jham9qd2pmcD8iWGZtZ2plXi4uPX5cdD8scGBxanN3PVx0QGtxanB3amJtand6ZWxxI2Z7Ym5zb2YvU3FsZWZwcGpsbWJvcWZwd3FqYHdqbG1wcHZkZGZwdyN3a2J3dGJwI3Fmb2ZicGZnK3B2YGsjYnAjd2tmcWZubHVmQG9icHArdm1mbnNvbHpuZm13d2tmI0JuZnFqYGJtcHdxdmB3dnFmI2xlLGptZ2Z7LWt3bm8jc3Zhb2pwa2ZnI2ptcHNibSNgb2JwcD4hIT0/YiNrcWZlPiEsam13cWxndmB3amxtYWZvbG1kam1kI3dsYG9iam5mZyN3a2J3YGxtcGZydmZtYGZwP25md2IjbWJuZj4hRHZqZ2Yjd2wjd2tmbHVmcXRrZm9uam1kYmRiam1wdyN3a2YjYGxtYGZtd3Fid2ZnL1x0LW1sbXdsdmBrI2xhcGZxdWJ3amxtcD8sYj1cdD8sZ2p1PVx0ZSMrZ2xgdm5mbXctYWxxZ2ZxOSMyc3sjeGVsbXcucGp5Zjkyd3FmYnduZm13I2xlMyEja2ZqZGt3PiEybmxnamVqYGJ3amxtSm1nZnNmbWdmbWBmZ2p1amdmZyNqbXdsZHFmYndmcSN3a2JtYmBramZ1Zm5mbXdwZnB3YmFvanBram1kSWJ1YlBgcWpzdyEjbWZ1ZnF3a2ZvZnBwcGpkbWplamBibWBmQXFsYmdgYnB3am1kPSVtYXBzOD8sd2c9YGxtd2JqbWZxIT1cdHB2YGsjYnAjd2tmI2ptZW92Zm1gZiNsZWIjc2Jxd2pgdm9icXBxYD4ka3d3czksLG1idWpkYndqbG0hI2tib2UjbGUjd2tmI3B2YXB3Ym13amJvIyVtYXBzOD8sZ2p1PWJndWJtd2JkZiNsZWdqcGBsdWZxeiNsZWV2bWdibmZtd2JvI25md3Fsc2xvandibXdrZiNsc3NscGp3ZiEje25vOW9ibWQ+IWdmb2phZnFid2ZvemJvamRtPmBmbXdmcWZ1bG92d2psbSNsZXNxZnBmcXVid2psbWpuc3FsdWZuZm13cGFmZGptbWptZCNqbUlmcHZwI0BrcWpwd1N2YW9qYGJ3amxtcGdqcGJkcWZmbmZtd3dme3cuYm9qZG05cS8jZXZtYHdqbG0rKnBqbmpvYnFqd2pmcGFsZ3o9Pyxrd25vPWpwI2B2cXFmbXdvemJvc2tiYWZ3amBib2pwI3BsbmZ3am5mcHd6c2Y+IWpuYmRmLG5ibXojbGUjd2tmI2VvbHQ5a2pnZ2ZtOGJ1YmpvYmFvZiNqbWdmcGBxamFmI3drZmZ7anB3Zm1gZiNsZWJvbyNsdWZxI3drZndrZiNKbXdmcW1md1xuP3ZvI2BvYnBwPiFqbXB3Ym9vYndqbG1tZmpka2FscWtsbGdicW5mZyNlbHFgZnBxZmd2YGptZCN3a2ZgbG13am12ZnAjd2xNbG1md2tmb2ZwcC93Zm5zZnFid3ZxZnBcdFxuXG4/YiNrcWZlPiFgb2xwZiN3bCN3a2Zme2Juc29mcCNsZSNqcCNiYWx2dyN3a2YrcGZmI2Fmb2x0Ki0hI2pnPiFwZmJxYGtzcWxlZnBwamxtYm9qcCNidWJqb2Jhb2Z3a2YjbGVlamBqYm9cblxuPyxwYHFqc3c9XHRcdFxuXG4/Z2p1I2pnPiFiYGBmb2ZxYndqbG13a3FsdmRrI3drZiNLYm9vI2xlI0VibmZnZnBgcWpzd2psbXB3cWJtcG9id2psbXBqbXdmcWVmcWZtYGYjd3pzZj4kd2Z7dyxxZmBmbXcjemZicXBqbSN3a2YjdGxxb2d1ZnF6I3Nsc3ZvYnF4YWJgaGRxbHZtZzl3cWJnandqbG1ibyNwbG5mI2xlI3drZiNgbG1tZmB3Zmcjd2xme3NvbGp3YndqbG1mbmZxZGZtYGYjbGVgbG1wd2p3dndqbG1CI0tqcHdscXojbGVwamRtamVqYGJtdyNuYm12ZWJgd3ZxZmdme3NmYHdid2psbXA9P21scGBxanN3PT9gYm0jYWYjZWx2bWdhZmBidnBmI3drZiNrYnAjbWx3I2FmZm1tZmpka2FsdnFqbWR0andrbHZ3I3drZiNiZ2dmZyN3bCN3a2Zcbj9vaiNgb2JwcD4ham1wd3F2bmZtd2JvUGx1amZ3I1ZtamxtYmBobWx0b2ZnZGZndGtqYGsjYGJtI2FmbWJuZiNlbHEjd2tmYnd3Zm13amxtI3dsYnd3Zm5zd3Ajd2wjZ2Z1Zm9sc25mbXdwSm0jZWJgdy8jd2tmP29qI2BvYnBwPiFiam5zb2pgYndqbG1wcHZqd2Jhb2YjZWxxbnZgayNsZSN3a2YjYGxvbG1qeWJ3amxtc3FmcGpnZm13amJvYGJtYGZvQXZhYW9mI0ptZWxxbmJ3amxtbmxwdyNsZSN3a2YjanAjZ2ZwYHFqYWZncWZwdyNsZSN3a2YjbmxxZiNscSNvZnBwam0jUGZzd2ZuYWZxSm13Zm9vamRmbWBmcHFgPiFrd3dzOSwsc3s4I2tmamRrdzkjYnViam9iYW9mI3dsbmJtdmViYHd2cWZxa3ZuYm0jcWpka3dwb2ptaCNrcWZlPiEsYnViam9iYWpvand6c3Fsc2xxd2psbWJvbHZ3cGpnZiN3a2YjYnB3cWxtbG5qYGJva3ZuYm0jYWZqbWRwbWJuZiNsZSN3a2YjYnFmI2Vsdm1nI2ptYnFmI2FicGZnI2xtcG5ib29mcSN3a2JtYiNzZnFwbG0jdGtsZntzYm1wamxtI2xlYnFkdmptZCN3a2J3bWx0I2htbHRtI2JwSm0jd2tmI2ZicW96am13ZnFuZmdqYndmZ2ZxanVmZyNlcWxuUGBibWdqbWJ1amJtPyxiPT8sZ2p1PQ5cdGBsbXBqZ2ZxI3drZmJtI2Zwd2puYndmZ3drZiNNYndqbG1ibz9nanUjamc+IXNiZHFmcHZvd2ptZCNqbWBsbm5qcHBqbG1mZ2JtYm9sZGx2cCN3bGJxZiNxZnJ2anFmZyx2bz1cdD8sZ2p1PVx0dGJwI2FicGZnI2xtYm1nI2FmYGJuZiNiJW1hcHM4JW1hcHM4dyEjdWJvdmY+ISEjdGJwI2Bic3d2cWZnbWwjbmxxZiN3a2JtcWZwc2Zgd2p1Zm96YGxtd2ptdmYjd2wjPQ5cdD9rZmJnPQ5cdD90ZnFmI2BxZmJ3ZmdubHFmI2RmbWZxYm9qbWVscW5id2psbSN2cGZnI2VscSN3a2ZqbWdmc2ZtZ2ZtdyN3a2YjSm5zZnFqYm9gbG5zbG1mbXcjbGV3bCN3a2YjbWxxd2tqbWBvdmdmI3drZiNAbG1wd3F2YHdqbG1wamdmI2xlI3drZiN0bHZvZyNtbHcjYWZlbHEjam1wd2JtYGZqbXVmbXdqbG0jbGVubHFmI2BsbnNvZntgbG9vZmB3anVmb3phYmBoZHFsdm1nOSN3Znt3LmJvamRtOSNqd3AjbHFqZGptYm9qbXdsI2JgYGx2bXd3a2pwI3NxbGBmcHBibSNme3dmbXBqdWZrbHRmdWZxLyN3a2Z3a2Z6I2JxZiNtbHdxZmlmYHdmZyN3a2ZgcWp3amBqcG4jbGVndnFqbWQjdGtqYGtzcWxhYmFveiN3a2Z3a2pwI2Jxd2pgb2YrZXZtYHdqbG0rKnhKdyNwa2x2b2cjYWZibSNiZHFmZm5mbXdiYGBqZ2Ztd2Jvb3pnamVlZnFwI2VxbG5CcWBrandmYHd2cWZhZnd3ZnEjaG1sdG1icXFibWRmbmZtd3BqbWVvdmZtYGYjbG1id3dmbWdmZyN3a2ZqZ2Ztd2pgYm8jd2xwbHZ3ayNsZSN3a2ZzYnBwI3drcWx2ZGt7bm8hI3dqd29mPiF0Zmpka3c5YWxvZzhgcWZid2ptZCN3a2ZnanBzb2J6OW1sbWZxZnNvYmBmZyN3a2Y/am5kI3BxYD4hLGprd3dzcDksLHR0dC1UbHFvZyNUYnEjSkp3ZnB3am5sbWpib3BlbHZtZyNqbSN3a2ZxZnJ2anFmZyN3bCNibWcjd2tidyN3a2ZhZnd0ZmZtI3drZiN0YnAjZ2ZwamRtZmdgbG1wanB3cCNsZSNgbG1wamdmcWJhb3pzdmFvanBrZmcjYXp3a2Yjb2JtZHZiZGZAbG1wZnF1YndqbG1gbG1wanB3ZmcjbGVxZmVmcSN3bCN3a2ZhYmBoI3dsI3drZiNgcHAhI25mZ2piPiFTZmxzb2YjZXFsbiNidWJqb2Jhb2YjbG1zcWx1Zmcjd2wjYWZwdmRkZnB3amxtcCF0YnAjaG1sdG0jYnB1YnFqZndqZnAjbGVvamhmb3ojd2wjYWZgbG5zcWpwZmcjbGVwdnNzbHF3I3drZiNrYm1ncCNsZSN3a2ZgbHZzb2ZnI3Rqd2tgbG1tZmB3I2JtZyNhbHFnZnE5bWxtZjhzZnFlbHFuYm1gZnBhZmVscWYjYWZqbWRvYndmcSNhZmBibmZgYm9gdm9id2psbXBsZXdmbSNgYm9vZmdxZnBqZ2Ztd3AjbGVuZmJtam1kI3drYnc9P29qI2BvYnBwPiFmdWpnZm1gZiNlbHFme3NvYm1id2psbXBmbXVqcWxtbmZtd3AhPT8sYj0/LGdqdT10a2pgayNib29sdHBKbXdxbGd2YHdqbG1nZnVmb2xzZmcjYXpiI3RqZ2YjcWJtZGZsbSNhZmtib2UjbGV1Ym9qZG0+IXdscyFzcWptYGpzb2YjbGVidyN3a2Yjd2puZi8/LG1scGBxanN3PQ5wYmpnI3dsI2tidWZqbSN3a2YjZWpxcHd0a2pvZiNsd2tmcXBrenNsd2tmd2pgYm9za2pvbHBsc2tmcXBzbHRmcSNsZSN3a2ZgbG13YmptZmcjam1zZnFlbHFuZmcjYXpqbWJham9qd3ojd2x0ZnFmI3Rxand3Zm1wc2JtI3B3em9mPiFqbXN2dyNtYm5mPiF3a2YjcnZmcHdqbG1qbXdmbWdmZyNlbHFxZmlmYHdqbG0jbGVqbnNvamZwI3drYndqbXVmbXdmZyN3a2Z3a2YjcHdibWdicWd0YnAjc3FsYWJhb3pvam1oI2Fmd3RmZm1zcWxlZnBwbHEjbGVqbXdmcWJgd2psbXBga2JtZGptZCN3a2ZKbWdqYm0jTGBmYm0jYG9icHA+IW9icHd0bHFoam1kI3Rqd2ska3d3czksLHR0dC16ZmJxcCNhZmVscWZXa2pwI3RicCN3a2ZxZmBxZmJ3amxtYm9mbXdmcWptZCN3a2ZuZmJwdnFmbmZtd3BibSNme3dxZm5mb3p1Ym92ZiNsZSN3a2Zwd2JxdyNsZSN3a2ZcdD8scGBxanN3PVx0XHRibSNmZWVscXcjd2xqbWBxZmJwZiN3a2Z3bCN3a2YjcGx2d2twc2Jgam1kPiEzIT1wdmVlamBqZm13b3p3a2YjRnZxbHNmYm1gbG11ZnF3Zmcjd2xgb2ZicVdqbmZsdndnamcjbWx3I2tidWZgbG1wZnJ2Zm13b3plbHEjd2tmI21me3dme3dmbXBqbG0jbGVmYGxtbG5qYCNibWdib3drbHZkayN3a2ZicWYjc3FsZ3ZgZmdibWcjdGp3ayN3a2ZqbXB2ZWVqYGpmbXdkanVmbSNheiN3a2Zwd2J3am1kI3drYndme3NmbWdqd3ZxZnA/LHBzYm09PyxiPVx0d2tsdmRrdyN3a2J3bG0jd2tmI2FicGpwYGZvb3NiZ2dqbWQ+am5iZGYjbGUjd2tmcWZ3dnFtam1kI3dsam1lbHFuYndqbG0vcGZzYnFid2ZnI2F6YnBwYnBwam1id2ZncCEjYGxtd2Ztdz4hYnZ3a2xxand6I2xlbWxxd2t0ZnB3ZnFtPyxnanU9XHQ/Z2p1IyE9PyxnanU9Dlx0IyNgbG1wdm93YndqbG1gbG5udm1qd3ojbGV3a2YjbWJ3amxtYm9qdyNwa2x2b2cjYWZzYnF3amBqc2Jtd3AjYm9qZG0+IW9mZXd3a2YjZHFmYndmcHdwZm9mYHdqbG0jbGVwdnNmcW1id3ZxYm9nZnNmbWdmbXcjbG1qcCNuZm13amxtZmdib29sdGptZCN3a2Z0YnAjam11Zm13ZmdiYGBsbnNibXpqbWRranAjc2ZxcGxtYm9idWJqb2Jhb2YjYndwd3ZneiNsZSN3a2ZsbSN3a2YjbHdrZnFme2ZgdndqbG0jbGVLdm5ibSNRamRrd3B3ZnFucCNsZSN3a2ZicHBsYGpid2psbXBxZnBmYnFgayNibWdwdmBgZmZnZmcjYXpnZmVmYndmZyN3a2ZibWcjZXFsbiN3a2Zhdncjd2tmeiNicWZgbG5uYm1nZnEjbGVwd2J3ZiNsZSN3a2Z6ZmJxcCNsZSNiZGZ3a2YjcHd2Z3ojbGU/dm8jYG9icHA+IXBzb2JgZiNqbSN3a2Z0a2ZxZiNrZiN0YnA/b2ojYG9icHA+IWV3a2ZxZiNicWYjbWx0a2pgayNhZmBibmZrZiNzdmFvanBrZmdme3NxZnBwZmcjam13bCN0a2pgayN3a2ZgbG5uanBwamxtZnFlbG13LnRmamRrdzl3ZnFxandscXojbGVme3dmbXBqbG1wIT1RbG5ibSNGbnNqcWZmcnZibyN3bCN3a2ZKbSNgbG13cWJwdy9rbHRmdWZxLyNibWdqcCN3enNqYGJvb3pibWcja2pwI3RqZWYrYm9wbCNgYm9vZmc9P3ZvI2BvYnBwPiFmZWVmYHdqdWZveiNmdWxvdWZnI2ptd2xwZmZuI3dsI2tidWZ0a2pgayNqcCN3a2Z3a2ZxZiN0YnAjbWxibSNme2Bmb29mbXdib28jbGUjd2tmcGZnZnBgcWphZmcjYXpKbSNzcWJgd2pgZi9hcWxiZ2BicHdqbWRga2JxZGZnI3Rqd2txZmVvZmB3Zmcjam1wdmFpZmB3Zmcjd2xuam9qd2JxeiNibWd3bCN3a2Yjc2xqbXdmYGxtbG5qYGJvb3pwZndXYnFkZndqbWRicWYjYmB3dmJvb3p1amB3bHF6I2x1ZnErKjg/LHBgcWpzdz1gbG13am12bHZwb3pxZnJ2anFmZyNlbHFmdWxvdndqbG1icXpibSNmZWVmYHdqdWZtbHF3ayNsZSN3a2YvI3RramBrI3RicCNlcWxtdyNsZSN3a2ZscSNsd2tmcXRqcGZwbG5mI2VscW4jbGVrYmcjbWx3I2FmZm1kZm1mcWJ3ZmcjYXpqbWVscW5id2psbS1zZnFuand3Zmcjd2xqbWBvdmdmcCN3a2ZnZnVmb2xzbmZtdy9mbXdmcWZnI2ptd2x3a2Yjc3FmdWpsdnBgbG1wanB3Zm13b3picWYjaG1sdG0jYnB3a2YjZWpmb2cjbGV3a2pwI3d6c2YjbGVkanVmbSN3bCN3a2Z3a2Yjd2p3b2YjbGVgbG13YmptcCN3a2ZqbXB3Ym1gZnAjbGVqbSN3a2YjbWxxd2tndmYjd2wjd2tmanFicWYjZ2ZwamRtZmdgbHFzbHFid2psbXB0YnAjd2tidyN3a2ZsbWYjbGUjd2tmcGZubHFmI3Nsc3ZvYnFwdmBgZmZnZmcjam1wdnNzbHF3I2VxbG5qbSNnamVlZnFmbXdnbG5qbWJ3ZmcjYXpnZnBqZG1mZyNlbHFsdG1mcXBranMjbGVibWcjc2xwcGphb3pwd2JtZ2JxZ2p5ZmdxZnBzbG1wZldme3d0YnAjam13Zm1nZmdxZmBmanVmZyN3a2ZicHB2bmZnI3drYndicWZicCNsZSN3a2ZzcWpuYnFqb3ojam13a2YjYWJwanAjbGVqbSN3a2YjcGZtcGZiYGBsdm13cCNlbHFnZnB3cWx6ZmcjYXpidyNvZmJwdyN3dGx0YnAjZ2Zgb2JxZmdgbHZvZyNtbHcjYWZQZmBxZndicXojbGVic3NmYnEjd2wjYWZuYnFkam0ud2xzOTIsXV9wKH9fcChcJyxkZip4d2txbHQjZn44d2tmI3B3YnF3I2xld3RsI3Bmc2JxYndmb2JtZHZiZGYjYm1ndGtsI2tiZyNhZmZtbHNmcWJ3amxtI2xlZ2Zid2sjbGUjd2tmcWZibyNtdm5hZnFwXG4/b2ptaCNxZm8+IXNxbHVqZ2ZnI3drZndrZiNwd2xxeiNsZWBsbnNmd2p3amxtcGZtZG9qcGsjK1ZIKmZtZG9qcGsjK1ZQKjxwPFI8UTxfPFI8VzxNPWw8Uz1tPFY8VD1tPWw8Uz1tPFY8VD1tPWw8Uz1tPFY8UjVoNFU0XTRENWY0RVxuQU8FR3hcYlRBXG56a1x2QmxcYlF/XGJUQVxuemtcdlVtXGJRf1xiVEFcbnprXG5wZQV1fFx0aUBcdGNUXGJWVlxuXFx9XG54U1x0VnAFdFMFa2BcdFtYXHRbWFx2SFJcYlB2XGJUV1xiVWVcbn9hXGJRcFx2X1dcdldzXG54U1x2QXpcbl95BEtoam1lbHFuYmBqL19ta2ZxcWJuamZtd2JwZm9mYHdxL19tamBsZ2ZwYHFqc2BqL19tYG9icGplamBiZ2xwYGxtbGBqbmpmbXdsc3Zhb2pgYmBqL19tcWZvYmBqbG1iZ2Jwam1lbHFuL013amBicWZvYmBqbG1iZ2xwZ2ZzYnF3Ym5mbXdsd3FiYWJpYmdscWZwZ2pxZmB3Ym5mbXdmYnp2bXdibmpmbXdsbmZxYGJnbE9qYXFmYGxtdy9NYHdmbWxwa2JhandiYGpsbWZwYHZuc29qbmpmbXdscWZwd2J2cWJtd2ZwZ2pwc2xwamBqL19tYGxtcGZgdmZtYGpiZm9mYHdxL19tamBiYnNvamBiYGpsbWZwZ2ZwYGxtZmB3Ymdsam1wd2JvYmBqL19tcWZib2p5YmBqL19tdndqb2p5YmBqL19tZm1gamBvbHNmZ2piZm1lZnFuZmdiZ2Zwam1wd3F2bmZtd2xwZntzZnFqZm1gamJwam1wd2p3dmBqL19tc2Jxd2pgdm9icWZwcHZhYGJ3ZmRscWpiPW48UjxXPWA8VjxSPEw8Uj1tPW08VDxUPWw8XFw8XTxSPW49ZzxdPFI8Vz1gPWQ8WTxTPWw8Uj1tPW48UjxQPFI8WjxZPW48WTxYPWw9bzxfPFQ9aT1tPFc9bz1rPFxcPFk9bTxZPFU9azxcXD1tPF49bTxZPF88WDxcXDxMPFI9bT1tPFQ9YzxwPFI9bTxWPF48WTxYPWw9bzxfPFQ8WTxfPFI9bDxSPFg8XFw8XjxSPFM9bDxSPW08WDxcXDxRPFE9Zz1pPFg8UjxXPFo8UT1nPFQ8UDxZPFE8UTxSPHA8Uj1tPFY8Xj1nPWw9bzxdPFc8WTxVPHA8Uj1tPFY8XjxcXD1tPW49bDxcXDxRPWc8UTxUPWs8WTxfPFI9bDxcXDxdPFI9bjxZPFg8UjxXPFo8WTxRPW89bTxXPW88XzxUPW48WTxTPFk9bD1gPHI8WDxRPFxcPFY8UjxTPFI9bjxSPFA9bz1sPFxcPF08Uj1uPW88XFw8Uz1sPFk8Vz1jPF48UjxSPF09ZTxZPFI8WDxRPFI8XzxSPW08XjxSPFk8XzxSPW09bjxcXD1uPWA8VDxYPWw9bzxfPFI8VT1oPFI9bD1vPFA8WT1pPFI9bDxSPWQ8UjxTPWw8Uj1uPFQ8Xj1tPW09ZzxXPFY8XFw8VjxcXDxaPFg9ZzxVPF48VzxcXD1tPW48VDxfPWw9bzxTPFM9ZzxePFA8WT1tPW48WT1sPFxcPF08Uj1uPFxcPW08VjxcXDxbPFxcPFc8UzxZPWw8Xj1nPFU8WDxZPFc8XFw9bj1gPFg8WTxRPWA8XzxUPFM8WT1sPFQ8UjxYPF08VDxbPFE8WT1tPFI9bTxRPFI8XjxZPFA8UjxQPFk8UT1uPFY9bzxTPFQ9bj1gPFg8UjxXPFo8UTxcXD1sPFxcPFA8VjxcXD1pPFE8XFw9azxcXDxXPFI8TDxcXDxdPFI9bjxcXDxOPFI8Vz1gPFY8Uj1tPFI8Xj1tPFk8UDxePW48Uj1sPFI8VTxRPFxcPWs8XFw8VzxcXD1tPFM8VD1tPFI8Vj1tPFc9bzxaPF09Zz1tPFQ9bT1uPFk8UDxTPFk9azxcXD1uPFQ8UTxSPF48UjxfPFI8UzxSPFA8Uj1lPFQ9bTxcXDxVPW48UjxePFM8Uj1rPFk8UD1vPFM8UjxQPFI9ZT1gPFg8UjxXPFo8UTxSPW09bT1nPFc8VjxUPF09Zz1tPW49bDxSPFg8XFw8UTxRPWc8WTxQPFE8UjxfPFQ8WTxTPWw8UjxZPFY9bjxNPFk8VT1rPFxcPW08UDxSPFg8WTxXPFQ9bjxcXDxWPFI8XzxSPFI8UTxXPFxcPFU8UTxfPFI9bDxSPFg8WTxePFk9bD1tPFQ9Yz1tPW49bDxcXDxRPFk9aDxUPFc9YDxQPWc9bz1sPFI8XjxRPWM9bDxcXDxbPFE9Zz1pPFQ9bTxWPFxcPW49YDxRPFk8WDxZPFc9Yj1jPFE8XjxcXD1sPWM8UDxZPFE9YD1kPFk8UDxRPFI8XzxUPWk8WDxcXDxRPFE8UjxVPFs8UTxcXD1rPFQ9bjxRPFk8Vz1gPFs9Yz1oPFI9bD1vPFA8XFw8TjxZPFM8WT1sPWA8UDxZPW09Yz1qPFxcPFs8XFw9ZTxUPW49Zzx3PW89az1kPFQ8WVxmSERcZkhVXGZJbFxmSG5cZkh5XGZIXFxcZkhEXGZJa1xmSGlcZkhGXGZIRFxmSWtcZkh5XGZIU1xmSENcZkhSXGZIeVxmSFxcXGZJa1xmSG5cZkhpXGZIRFxmSWFcZkhDXGZIeVxmSWFcZkhDXGZIUlxmSHtcZkhSXGZIa1xmSE1cZkhAXGZIUlxmSFxcXGZJa1xmSHlcZkhTXGZIVFxmSWxcZkhKXGZIU1xmSENcZkhSXGZIRlxmSFVcZkheXGZJa1xmSFRcZkhTXGZIblxmSFVcZkhBXGZIUlxmSFxcXGZISFxmSGlcZkhGXGZIRFxmSWxcZkhZXGZIUlxmSF5cZklrXGZIVFxmSWtcZkhZXGZIUlxmSHlcZkhcXFxmSEhcZklrXGZIQlxmSWtcZkhcXFxmSWtcZkhVXGZJZ1xmSERcZklrXGZIVFxmSHlcZkhIXGZJa1xmSEBcZkhVXGZJbVxmSEhcZkhUXGZIUlxmSGtcZkhzXGZIVVxmSWdcZkh7XGZIUlxmSHBcZkhSXGZIRFxmSWtcZkhCXGZIU1xmSERcZkhzXGZIeVxmSFxcXGZISFxmSFJcZkh5XGZIXFxcZkhEXGZIUlxmSGVcZkhEXGZIeVxmSWtcZkhDXGZIVVxmSFJcZkhtXGZIVFxmSEBcZkhUXGZJa1xmSEFcZkhSXGZIW1xmSFJcZkhqXGZIRlxmSHlcZklrXGZIXlxmSFNcZkhDXGZJa1xmSFpcZkltXGZIXFxcZkluXGZIa1xmSFRcZkh5XGZJa1xmSHRcZkhuXGZIc1xmSWtcZkhCXGZJa1xmSFxcXGZJbFxmSFRcZkh5XGZISFxmSFJcZkhCXGZJa1xmSFxcXGZIUlxmSF5cZklrXGZIeVxmSFxcXGZIaVxmSEtcZkhTXGZIeVxmSGlcZkhGXGZIRFxmSFJcZkhUXGZIQlxmSFJcZkhwXGZIQlxmSW1cZkhxXGZJa1xmSHlcZkhSXGZIXFxcZkhPXGZIVVxmSWdcZkhIXGZIUlxmSHlcZkhNXGZIUFxmSWxcZkhDXGZIVVxmSFJcZkhuXGZIVVxmSWdcZkhzXGZIXlxmSFpcZkhAXGZJYVxmSEpcZkheXGZIU1xmSENcZkhSXGZIcFxmSWxcZkhZXGZIRFxmSHBcZkhSXGZISFxmSFJcZkh5XGZJZFxmSFRcZklrXGZIalxmSEZcZkh5XGZIUlxmSFlcZkhSXGZIXlxmSWxcZkhKXGZJa1xmSERcZklrXGZIRlxmSW5cZkhcXFxmSWxcZkhGXGZIUlxmSERcZklsXGZIZVxmSFRcZkh5XGZJa1xmSFVcZklnXGZIe1xmSWxcZkhAXGZJZFxmSExcZkh5XGZIalxmSEZcZkh5XGZJbFxmSFlcZkhcXFxmSWFcZkhbXGZIe1xmSFJcZkhuXGZIWVxmSGpcZkhGXGZIeVxmSWdcZkhwXGZIU1xmSF5cZkhSXGZIcFxmSFJcZkhEXGZIUlxmSFRcZkhVXGZIQlxmSEhcZkhVXGZIQlxmSWtcZkhuXGZIZVxmSERcZkh5XGZJbFxmSENcZkhSXGZIVVxmSW5cZkhKXGZIXFxcZklhXGZIcFxmSFRcZkluXGZIdlxmSWxcZkhGXGZIVFxmSG5cZkhKXGZIVFxmSFlcZkhSXGZIXlxmSFVcZklnXGZIRFxmSFJcZkhVXGZJZ1xmSEhcZklsXGZIcFxmSWRcZkhUXGZJa1xmSFlcZkhSXGZIRlxmSFRcZkhwXGZIRFxmSEhcZkhSXGZIRFxmSWtcZkhIXGZIUlxmSHBcZkhSXGZIXFxcZklsXGZIdFxmSFJcZkhDXGZIXlxmSHBcZkhTXGZIXlxmSWtcZkhEXGZJbFxmSHZcZklrXGZIcFxmSFJcZkhuXGZIdlxmSEZcZkhIXGZJYVxmSFxcXGZIe1xmSW5cZkh7XGZIXlxmSHBcZkhSXGZISFxmSWtcZkhAXGZIUlxmSFVcZkhcXFxmSGpcZkhGXGZIRFxmSWtcZkhZXGZIUlxmSFVcZkhEXGZIa1xmSFRcZkh5XGZIUlxmSFRcZkltXGZIQFxmSFVcZkhcXFxmSFVcZkhEXGZJa1xmSGtcZkhUXGZIVFxmSWtcZkhUXGZIVVxmSFNcZkhIXGZIQFxmSE1cZkhQXGZJa1xmSHRcZkhzXGZIRFxmSFJcZkhIXGZIXlxmSFJcZkhaXGZIRlxmSFJcZkhuXGZIdlxmSFpcZklhXGZIXFxcZklsXGZIQFxmSE1cZkhQXGZJbFxmSFVcZklnXGZISFxmSWtcZkhUXGZIUlxmSGRcZkhzXGZIWlxmSFJcZkhDXGZISlxmSFRcZkh5XGZISFxmSWxcZkhwXGZIUlxmSEhcZklsXGZIWVxmSFJcZkheXGZIUlxmSFVcZkhwXGZIUlxmSFxcXGZIRlxmSHNcZkhEXGZIUlxmSFxcXGZIelxmSERcZklrXGZIVFxmSE1cZkhQXGZIeVxmSEJcZkhTXGZIXlxmSFJcZkhlXGZIVFxmSHlcZklsXGZIeVxmSWtcZkhZXGZIXlxmSF5cZkh7XGZISFxmSFJcZkh6XGZIUlxmSERcZkhSXGZIaVxmSFxcXGZJYVxmSElcZkhwXGZIVVxmSFJcZkhuXGZISlxmSWtcZkh6XGZIUlxmSEZcZkhVXGZIXlxmSWxcZkhEXGZIU1xmSENcZkhCXGZIQFxmSFNcZkhEXGZIUlxmSEBcZklkXGZIblxmSHlcZkh5XGZIVVxmSWxcZkhuXGZIeVxmSFVcZkhEXGZIUlxmSEpcZklrXGZISFxmSFJcZkhVXGZIQlxmSF5cZklrXGZIeVxmSFJcZkhHXGZJbFxmSHBcZkhAXGZIeVxmSFNcZkhIXGZJbVxmSFxcXGZISFxmSEJcZkhSXGZIblxmSHtcZkhZXGZIVVxmSWxcZkhuXGZIXFxcZklnXGZIcFxmSFBcZkhCXGZIU1xmSF5cZklsXGZIalxmSFxcXGZJZ1xmSEZcZkhUXGZJa1xmSERcZkhSXGZIQ1xmSFJcZkhKXGZIWVxmSF5cZklrXGZIRFxmSWtcZkh6XGZIUlxmSEhcZkhSXGZIeVxmSFxcXGZJbFxmSEBcZkhlXGZIRFxmSHlcZkhSXGZIcFxmSFlcZkhSXGZIQFxmSEZcZkluXGZIXFxcZkhSXGZIQFxmSE1cZkhQXGZIUlxmSFRcZklgXGZISlxmSFJcZkhaXGZJa1xmSENcZkhcXFxmSHlcZkhTXGZIQ1xmSWtcZkh5XGZIVVxmSFJcZkhuXGZIaVxmSHlcZkhUXGZIXFxcZkhAXGZIRFxmSFJcZkhjXGZIWVxmSFVcZkhSXGZIblxmSFRcZklhXGZISVxmSF5cZkhCXGZIU1xmSF5cZklrXGZIXlxmSWtcZkh6XGZIeVxmSFlcZkhTXGZIW1xmSENcZkh5XGZJYVxmSFxcXGZIblxmSFRcZkhCXGZJblxmSFVcZkhJXGZIUlxmSERcZkhSNEY0XzRGNFs1ZjRVNWk0WDRLNF01bzRFNEQ1ZDRLNF80WzRFNEs1aDRZNW00QTRFNWk1ZDRLNFo1ZjRVNEs1aDRCNEs0WTRFNEs1aDVpNF41ZjRDNEs1aDRVNEs1aTRFNEs1aDVvNEs0RjRENEs1aDRdNEM1ZDRDNEQ0XTVqNEs1aTRANEs1aDRDNWQ1aDRFNEs1aDRVNEs1aDVpNEs1aDVpNWQ1bjRVNEs1aDRVNF00RDVmNEs1aDRfNF01ZjRVNEs1aDRANWQ0SzVoNEs1aDRcXDVrNEs0RDRLNWg0QTVmNEs0RTRLNWg0QTVuNWQ1bjRLNWg1bzRdNWY1aTRLNWg0VTRdNEs1bjVpNEE1bTVkNFQ0RTRLNWg0RzRLNWo1ZjVpNFg0SzVrNEM0RTRLNWg1aTRdNE80RTRLNWg1bjRdNE41ajRLNWg0WDRENEs0RDRLNWg0QTVkNEs0XTRLNWg0QDRDNWY0QzRLNWg0TzRfNF00RTRLNWg0VTVoNWQ1aTVpNEA1aTVkNFU0RTRLNWg0XTRBNWk1ajRLNWg1ajVuNEs0WzVtNWg0XzRbNWY1ajRLNWg1bzVkNWY0RjRLNWg0QzVqNWY0SzRENF01bzRLNEY1azRLNWg0XTVmNEs0WjRGNEE1ZjRLNEY1ZjRENEY1ZDVuNWY0RjRLNWg0TzVkNWg1ZTRLNWg0RDRdNWY0QzRLNWg1bzVoNEs1aTRLNWg0XTRLNEQ0WzRLNWg0WDRCNFk1ZjRfNWY0SzRdNEs0RjRLNWg0RzRLNWg0RzRLNWg0WTVoNEs0RTRLNWg0QTRDNWY0RzRLNWg0XjVkNEs0XTRLNWg0QjVoNWY0QDRLNWg0QDVpNWY0VTRLNWg0VTRLNWk1azRLNWg0QDVpNEs1aDRLNWg0XzRLNFU0RTVpNFg0SzVrNEM1azRLNWg0XTRKNWY0XzRLNWg0QzRCNWQ1aDRLNWg1bTVqNWY0RTRLNWg1bzRGNEs0RDRLNWg0QzVkNF01ZjRLNWg0QzRdNWQ0XzRLNF80RjRWNF01bjRGNFk0SzVpNWY1aTRLNWg0RDVqNEs0RjRLNWg0VTRUNWY1aWZtd2Zxd2JqbW5mbXd2bWdmcXB3Ym1nam1kIz4jZXZtYHdqbG0rKi1pc2QhI3RqZ3drPiFgbG1lamR2cWJ3amxtLXNtZCEjdGpnd2s+IT9hbGd6I2BvYnBwPiFOYndrLXFibWdsbisqYGxtd2Zuc2xxYnF6I1ZtandmZyNQd2J3ZnBganFgdm5wd2JtYGZwLWJzc2ZtZ0Bram9nK2xxZGJtanlid2psbXA/cHNibSNgb2JwcD4hIT0/am5kI3BxYD4hLGdqcHdqbWR2anBrZmd3a2x2cGJtZ3AjbGUjYGxubnZtamBid2psbWBvZmJxIT0/LGdqdT1qbXVmcHdqZGJ3amxtZWJ1amBsbS1qYGwhI25icWRqbS5xamRrdzlhYnBmZyNsbSN3a2YjTmJwcGJga3ZwZnd3cHdiYW9mI2FscWdmcT5qbXdmcW1id2psbWJvYm9wbCNobWx0bSNicHNxbG12bWBqYndqbG1hYmBoZHFsdm1nOSBlc2JnZ2ptZC5vZmV3OUVscSNme2Juc29mLyNuanBgZm9vYm1mbHZwJW93OCxuYndrJWR3OHNwemBrbG9sZGpgYm9qbSNzYnF3amB2b2JxZmJxYGshI3d6c2Y+IWVscW4jbmZ3a2xnPiFicCNsc3NscGZnI3dsUHZzcWZuZiNAbHZxd2xgYGJwamxtYm9veiNCZ2dqd2psbWJvb3ovTWxxd2sjQm5mcWpgYnN7OGFiYGhkcWx2bWdsc3NscXd2bWp3amZwRm13ZnF3YmptbmZtdy13bE9sdGZxQGJwZituYm12ZWJgd3Zxam1kc3FsZWZwcGpsbWJvI2BsbmFqbWZnI3Rqd2tFbHEjam1wd2JtYGYvYGxtcGpwd2ptZCNsZSEjbmJ7b2ZtZHdrPiFxZnd2cW0jZWJvcGY4YGxtcGBqbHZwbWZwcE5mZ2p3ZnFxYm1mYm1me3dxYmxxZ2ptYnF6YnBwYnBwam1id2psbXB2YXBmcnZmbXdveiNhdnd3bG0jd3pzZj4hd2tmI212bmFmcSNsZXdrZiNscWpkam1ibyNgbG5zcWZrZm1wanVmcWZlZnFwI3dsI3drZj8sdm89XHQ/LGdqdT1cdHNram9scGxza2pgYm9vbGBid2psbS1rcWZldGJwI3N2YW9qcGtmZ1BibSNFcWJtYGpwYGwrZXZtYHdqbG0rKnhcdD9nanUjamc+IW5iam1wbHNranB3amBid2ZnbmJ3a2ZuYndqYGJvIyxrZmJnPQ5cdD9hbGd6cHZkZGZwd3Ajd2tid2dsYHZuZm13YndqbG1gbG1gZm13cWJ3amxtcWZvYndqbG1wa2pzcG5ieiNrYnVmI2FmZm0rZWxxI2Z7Ym5zb2YvV2tqcCNicXdqYG9mI2ptI3BsbmYjYGJwZnBzYnF3cCNsZSN3a2YjZ2Zlam1qd2psbSNsZURxZmJ3I0Fxandiam0jYGZvb3NiZ2dqbWQ+ZnJ2anVib2ZtdyN3bHNvYmBma2xvZ2ZxPiE4I2VsbXcucGp5ZjkjaXZwd2plamBid2psbWFmb2pmdWZnI3drYndwdmVlZnFmZyNlcWxuYnd3Zm5zd2ZnI3dsI29mYmdmcSNsZSN3a2ZgcWpzdyEjcHFgPiEsK2V2bWB3amxtKyojeGJxZiNidWJqb2Jhb2ZcdFxuP29qbWgjcWZvPiEjcHFgPiRrd3dzOSwsam13ZnFmcHdmZyNqbWBsbXVmbXdqbG1ibyMhI2Jvdz4hISMsPT8sYnFmI2RmbWZxYm9vemticCNib3BsI2FmZm1ubHB3I3Nsc3ZvYnEjYGxxcWZwc2xtZ2ptZGBxZmdqd2ZnI3Rqd2t3em9mPiFhbHFnZnE5PyxiPT8scHNibT0/LC1kamUhI3RqZ3drPiE/amVxYm5mI3BxYD4hd2Jhb2YjYG9icHA+IWptb2ptZi5hb2xgaDhiYGBscWdqbWQjd2wjd2xkZndrZnEjdGp3a2Jzc3Fse2puYndmb3pzYnFvamJuZm13YnF6bmxxZiNibWcjbmxxZmdqcHNvYno5bWxtZjh3cWJnandqbG1ib296c3FmZ2xuam1ibXdveiVtYXBzOH8lbWFwczglbWFwczg/LHBzYm09I2Bmb29wc2Jgam1kPj9qbXN2dyNtYm5mPiFscSEjYGxtd2Ztdz4hYGxtd3FsdWZxcGpib3NxbHNmcXd6PiFsZDksey5wa2xgaHRidWYuZ2ZubG1wd3Fid2psbXB2cXFsdm1nZmcjYXpNZnVmcXdrZm9mcHAvdGJwI3drZiNlanFwd2BsbXBqZ2ZxYmFvZiNCb3drbHZkayN3a2YjYGxvb2JhbHFid2psbXBrbHZvZyNtbHcjYWZzcWxzbHF3amxtI2xlP3BzYm0jcHd6b2Y+IWhtbHRtI2JwI3drZiNwa2xxd296I2Jld2ZxZWxxI2ptcHdibWBmL2dmcGBxamFmZyNicCMsa2ZiZz1cdD9hbGd6I3B3YnF3am1kI3Rqd2tqbWBxZmJwam1kb3ojd2tmI2ViYHcjd2tid2dqcGB2cHBqbG0jbGVuamdnb2YjbGUjd2tmYm0jam1nanVqZ3Zib2dqZWVqYHZvdyN3bCNzbGptdyNsZSN1amZ0a2xubHBme3Zib2p3emJgYGZzd2JtYGYjbGU/LHBzYm09PyxnanU9bmJtdmViYHd2cWZxcGxxamRqbSNsZSN3a2ZgbG5ubG1veiN2cGZnam5zbHF3Ym1gZiNsZWdmbWxuam1id2psbXBhYmBoZHFsdm1nOSMgb2ZtZHdrI2xlI3drZmdmd2ZxbmptYndqbG1iI3BqZG1qZWpgYm13ISNhbHFnZnE+ITMhPXFmdWxvdndqbG1icXpzcWptYGpzb2ZwI2xlanAjYGxtcGpnZnFmZ3RicCNnZnVmb2xzZmdKbWdsLkZ2cWxzZmJtdXZvbWZxYmFvZiN3bHNxbHNsbWZtd3AjbGVicWYjcGxuZndqbmZwYG9scGZxI3dsI3drZk1mdCNabHFoI0Bqd3ojbWJuZj4hcGZicWBrYnd3cWphdndmZyN3bGBsdnFwZiNsZSN3a2ZuYndrZm5id2pgamJtYXojd2tmI2ZtZyNsZWJ3I3drZiNmbWcjbGUhI2FscWdmcT4hMyEjd2Zga21sb2xkamBiby1xZm5sdWZAb2JwcCthcWJtYGsjbGUjd2tmZnVqZ2ZtYGYjd2tidyJYZm1namVeLi49Dlx0Sm1wd2p3dndmI2xlI2ptd2wjYiNwam1kb2ZxZnBzZmB3anVmb3otYm1nI3drZnFmZWxxZnNxbHNmcXdqZnAjbGVqcCNvbGBid2ZnI2ptcGxuZiNsZSN0a2pga1drZnFmI2pwI2JvcGxgbG13am12Zmcjd2wjYnNzZmJxYm1gZiNsZSMlYm5zOG1nYnBrOCNnZnBgcWphZnAjd2tmYGxtcGpnZnFid2psbWJ2d2tscSNsZSN3a2ZqbWdmc2ZtZ2Ztd296ZnJ2anNzZmcjdGp3a2dsZnAjbWx3I2tidWY/LGI9P2Ija3FmZT4hYGxtZXZwZmcjdGp3az9vam1oI2txZmU+ISxidyN3a2YjYmRmI2xlYnNzZmJxI2ptI3drZldrZnBmI2ptYG92Z2ZxZmRicWdvZnBwI2xlYGx2b2cjYWYjdnBmZyNwd3pvZj4lcnZsdzhwZnVmcWJvI3dqbmZwcWZzcWZwZm13I3drZmFsZ3o9XHQ/LGt3bm89d2tsdmRrdyN3bCNhZnNsc3ZvYndqbG0jbGVzbHBwamFqb2p3amZwc2ZxYGZtd2JkZiNsZWJgYGZwcCN3bCN3a2ZibSNid3dmbnN3I3dsc3FsZ3Zgd2psbSNsZWlydmZxeixpcnZmcXp3dGwjZ2plZWZxZm13YWZvbG1kI3dsI3drZmZwd2Jhb2pwa25mbXdxZnNvYmBqbWQjd2tmZ2ZwYHFqc3dqbG0hI2dmd2ZxbmptZiN3a2ZidWJqb2Jhb2YjZWxxQmBgbHFnam1kI3dsI3RqZ2YjcWJtZGYjbGVcbj9nanUjYG9icHA+IW5scWYjYGxubmxtb3pscWRibWpwYndqbG1wZXZtYHdqbG1ib2p3enRicCNgbG5zb2Z3ZmcjJWJuczhuZ2Jwazgjc2Jxd2pganNid2psbXdrZiNga2JxYmB3ZnFibSNiZ2dqd2psbWJvYnNzZmJxcCN3bCNhZmViYHcjd2tidyN3a2ZibSNme2Juc29mI2xlcGpkbWplamBibXdvemxtbmx2cGZsdWZxPiFhZmBidnBmI3drZnojYnB6bWAjPiN3cXZmOHNxbGFvZm5wI3Rqd2twZmZucCN3bCNrYnVmd2tmI3FmcHZvdyNsZSNwcWA+IWt3d3M5LCxlYm5qb2picSN0andrc2xwcGZwcGpsbSNsZWV2bWB3amxtIysqI3h3bGxoI3NvYmBmI2ptYm1nI3BsbmZ3am5mcHB2YXB3Ym13amJvb3o/cHNibT0/LHBzYm09anAjbGV3Zm0jdnBmZ2ptI2JtI2J3d2Zuc3dkcWZidyNnZmJvI2xlRm11anFsbW5mbXdib3B2YGBmcHBldm9veiN1anF3dmJvb3ojYm9vMTN3ayNgZm13dnF6L3NxbGVmcHBqbG1ib3BtZmBmcHBicXojd2wjZ2Z3ZnFuam1mZyNhemBsbnNid2pham9qd3phZmBidnBmI2p3I2pwR2pgd2psbWJxeiNsZW5sZ2plamBid2psbXBXa2YjZWxvb2x0am1kbmJ6I3FmZWZxI3dsOUBsbXBmcnZmbXdvei9KbXdmcW1id2psbWJvYm93a2x2ZGsjcGxuZndrYncjdGx2b2cjYWZ0bHFvZyRwI2VqcXB3YG9icHBqZWpmZyNicGFsd3dsbiNsZSN3a2Yrc2Jxd2pgdm9icW96Ym9qZG0+IW9mZXchI25scHcjYGxubmxtb3phYnBqcCNlbHEjd2tmZWx2bWdid2psbSNsZWBsbXdxamF2d2psbXBzbHN2b2Jxand6I2xlYGZtd2ZxI2xlI3drZndsI3FmZ3ZgZiN3a2ZpdnFqcGdqYHdqbG1wYnNzcWx7am5id2psbSNsbW5sdnBmbHZ3PiFNZnQjV2Zwd2JuZm13YGxvb2Zgd2psbSNsZT8scHNibT0/LGI9PyxqbSN3a2YjVm1qd2ZnZWpvbiNnanFmYHdscS5wd3FqYHctZ3dnIT1rYnAjYWZmbSN2cGZncWZ3dnFtI3dsI3drZmJvd2tsdmRrI3dranBga2JtZGYjam0jd2tmcGZ1ZnFibyNsd2tmcWF2dyN3a2ZxZiNicWZ2bXNxZmBmZ2Ztd2ZnanAjcGpuam9icSN3bGZwc2ZgamJvb3ojam10Zmpka3c5I2Fsb2c4anAjYGJvb2ZnI3drZmBsbnN2d2J3amxtYm9qbWdqYGJ3ZiN3a2J3cWZwd3FqYHdmZyN3bFxuP25md2IjbWJuZj4hYnFmI3d6c2pgYm9vemBsbWVvamB3I3Rqd2tLbHRmdWZxLyN3a2YjQm0jZntibnNvZiNsZWBsbnNicWZnI3Rqd2tydmJtd2p3amZwI2xlcWJ3a2ZxI3drYm0jYmBsbXB3Zm9vYndqbG1tZmBmcHBicXojZWxxcWZzbHF3Zmcjd2tid3BzZmBqZWpgYndqbG1zbG9qd2pgYm8jYm1nJW1hcHM4JW1hcHM4P3FmZWZxZm1gZnAjd2x3a2YjcGJuZiN6ZmJxRGx1ZnFtbmZtdyNsZWRmbWZxYndqbG0jbGVrYnVmI21sdyNhZmZtcGZ1ZnFibyN6ZmJxcGBsbm5qd25mbXcjd2xcblxuP3ZvI2BvYnBwPiF1anB2Ym9qeWJ3amxtMjp3ayNgZm13dnF6L3NxYmB3andqbG1mcXB3a2J3I2tmI3Rsdm9nYm1nI2BsbXdqbXZmZ2xgYHZzYndqbG0jbGVqcCNnZmVqbWZnI2JwYGZtd3FmI2xlI3drZndrZiNibmx2bXcjbGU9P2dqdSNwd3pvZj4hZnJ2anVib2ZtdyNsZWdqZWVmcWZtd2pid2ZhcWx2ZGt3I2JhbHZ3bmJxZGptLm9mZXc5I2J2d2xuYndqYGJvb3p3a2x2ZGt3I2xlI2JwUGxuZiNsZSN3a2ZwZlx0P2dqdSNgb2JwcD4ham1zdncjYG9icHA+IXFmc29iYGZnI3Rqd2tqcCNsbWYjbGUjd2tmZmd2YGJ3amxtI2JtZ2ptZW92Zm1gZmcjYXpxZnN2d2J3amxtI2JwXHQ/bmZ3YiNtYm5mPiFiYGBsbm5sZ2J3amxtPyxnanU9XHQ/LGdqdT1vYnFkZiNzYnF3I2xlSm1wd2p3dndmI2VscXdrZiNwbC5gYm9vZmcjYmRiam1wdyN3a2YjSm0jd2tqcCNgYnBmL3RicCNic3Nsam13Zmdgb2JqbmZnI3dsI2FmS2x0ZnVmcS8jd2tqcEdmc2Jxd25mbXcjbGV3a2YjcWZuYmptam1kZmVlZmB3I2xtI3drZnNicXdqYHZvYnFveiNnZmJvI3Rqd2sjd2tmXHQ/Z2p1I3B3em9mPiFib25scHcjYm90YnpwYnFmI2B2cXFmbXdvemZ7c3FmcHBqbG0jbGVza2pvbHBsc2t6I2xlZWxxI25scWYjd2tibWBqdWpvanlid2psbXBsbSN3a2YjanBvYm1ncGZvZmB3ZmdKbWdme2BibSNxZnB2b3cjam0hI3Vib3ZmPiEhIyw9d2tmI3B3cXZgd3ZxZiMsPT8sYj0/LGdqdT1OYm16I2xlI3drZnBmYGJ2cGZnI2F6I3drZmxlI3drZiNWbWp3Zmdwc2JtI2BvYnBwPiFuYGJtI2FmI3dxYmBmZ2pwI3Fmb2J3Zmcjd2xhZmBibmYjbG1mI2xlanAjZXFmcnZmbXdvem9qdWptZCNqbSN3a2Z3a2ZscWZ3amBib296RWxvb2x0am1kI3drZlFmdWxvdndqbG1icXpkbHVmcW1uZm13I2ptanAjZ2Z3ZnFuam1mZ3drZiNzbG9qd2pgYm9qbXdxbGd2YGZnI2ptcHZlZWpgamZtdyN3bGdmcGBxanN3amxtIT1wa2xxdyNwd2xxamZwcGZzYnFid2psbSNsZWJwI3dsI3RrZndrZnFobWx0bSNlbHEjandwdGJwI2ptandqYm9vemdqcHNvYno5YW9sYGhqcCNibSNme2Juc29md2tmI3Nxam1ganNib2BsbXBqcHdwI2xlI2JxZmBsZG1qeWZnI2JwLGFsZ3o9Pyxrd25vPWIjcHZhcHdibXdqYm9xZmBsbXB3cXZgd2Zna2ZiZyNsZSNwd2J3ZnFmcGpwd2JtYGYjd2x2bWdmcWRxYmd2YndmV2tmcWYjYnFmI3d0bGRxYnVqd2J3amxtYm9icWYjZ2ZwYHFqYWZnam13Zm13amxtYm9venBmcXVmZyNicCN3a2Zgb2JwcD4ha2ZiZ2ZxbHNzbHBqd2psbSN3bGV2bWdibmZtd2Jvb3pnbG5qbWJ3Zmcjd2tmYm1nI3drZiNsd2tmcWJvb2pibWBmI3Rqd2t0YnAjZWxxYGZnI3dscWZwc2Zgd2p1Zm96L2JtZyNzbG9qd2pgYm9qbSNwdnNzbHF3I2xlc2Zsc29mI2ptI3drZjEzd2sjYGZtd3Zxei1ibWcjc3Zhb2pwa2Znb2xiZ0BrYnF3YWZid3dsI3ZtZ2ZxcHdibWduZm5hZnEjcHdid2ZwZm11anFsbW5mbXdib2VqcXB3I2tib2UjbGVgbHZtd3FqZnAjYm1nYnFga2p3ZmB3dnFib2FmI2BsbXBqZ2ZxZmdga2JxYmB3ZnFqeWZnYG9mYnFKbXdmcXVib2J2d2tscWp3YndqdWZFZmdmcWJ3amxtI2xldGJwI3B2YGBmZmdmZ2JtZyN3a2ZxZiNicWZiI2BsbXBmcnZmbWBmd2tmI1NxZnBqZ2Ztd2JvcGwjam1gb3ZnZmdlcWZmI3BsZXd0YnFmcHZgYGZwcGpsbSNsZWdmdWZvbHNmZyN3a2Z0YnAjZ2Zwd3FsemZnYnRieiNlcWxuI3drZjhcdD8scGBxanN3PVx0P2Jvd2tsdmRrI3drZnplbG9vbHRmZyNheiNibmxxZiNzbHRmcWV2b3FmcHZvd2ZnI2ptI2JWbWp1ZnFwand6I2xlS2x0ZnVmcS8jbmJtendrZiNzcWZwamdmbXdLbHRmdWZxLyNwbG5manAjd2tsdmRrdyN3bHZtd2pvI3drZiNmbWd0YnAjYm1tbHZtYGZnYnFmI2puc2xxd2Jtd2JvcGwjam1gb3ZnZnA9P2ptc3Z3I3d6c2Y+d2tmI2BmbXdmcSNsZSNHTCNNTFcjQk9XRlF2cGZnI3dsI3FmZWZxd2tmbmZwLDxwbHF3PndrYncja2JnI2FmZm13a2YjYWJwanAjZWxxa2JwI2dmdWZvbHNmZ2ptI3drZiNwdm5uZnFgbG5zYnFid2p1Zm96Z2ZwYHFqYWZnI3drZnB2YGsjYnAjd2tscGZ3a2YjcWZwdm93am1kanAjam5zbHBwamFvZnVicWpsdnAjbHdrZnFQbHZ3ayNCZXFqYGJta2J1ZiN3a2YjcGJuZmZlZWZgd2p1Zm1mcHBqbSN0a2pgayNgYnBmOCN3Znt3LmJvamRtOXB3cXZgd3ZxZiNibWc4I2FiYGhkcWx2bWc5cWZkYnFnam1kI3drZnB2c3NscXdmZyN3a2ZqcCNib3BsI2htbHRtcHd6b2Y+IW5icWRqbWptYG92Z2ptZCN3a2ZhYmticGIjTmZvYnp2bWxxcGgjYWxobi9Jb21scXBoI216bWxxcGhwb2x1Zm0pTShham1iam13ZnFtYmBqbG1ib2Bib2plamBiYGovX21gbG52bWpgYmBqL19tYGxtcHdxdmBgai9fbSE9P2dqdSNgb2JwcD4hZ2pwYm5hamR2YndqbG1HbG5iam1NYm5mJC8jJGJnbmptanB3cWJ3amxtcGpudm93Ym1mbHZwb3p3cWJtcHNscXdid2psbUptd2ZxbWJ3amxtYm8jbmJxZGptLmFsd3dsbjlxZnBzbG1wamFqb2p3ej8iWGZtZ2plXi4uPVx0Pyw9P25md2IjbWJuZj4ham5zb2ZuZm13YndqbG1qbWVxYnB3cXZgd3ZxZnFmc3FmcGZtd2J3amxtYWxxZ2ZxLmFsd3dsbjk/LGtmYmc9XHQ/YWxnej0+a3d3cyYwQiYxRSYxRT9lbHFuI25md2tsZz4hbmZ3a2xnPiFzbHB3ISMsZWJ1amBsbS1qYGwhI34qOFx0PyxwYHFqc3c9XHQtcGZ3Qnd3cWphdndmK0JnbmptanB3cWJ3amxtPiNtZnQjQnFxYnorKjg/IlhmbWdqZV4uLj0OXHRnanBzb2J6OWFvbGBoOFZtZWxxd3ZtYndmb3ovIT0lbWFwczg/LGdqdT0sZWJ1amBsbS1qYGwhPT4kcHd6b2Zwa2ZmdyQjamdmbXdqZWpgYndqbG0vI2VscSNme2Juc29mLz9vaj0/YiNrcWZlPiEsYm0jYm93ZnFtYndqdWZicCNiI3FmcHZvdyNsZXN3IT0/LHBgcWpzdz1cdHd6c2Y+IXB2YW5qdyEjXHQrZXZtYHdqbG0rKiN4cWZgbG5uZm1nYndqbG1lbHFuI2Jgd2psbT4hLHdxYm1wZWxxbmJ3amxtcWZgbG1wd3F2YHdqbG0tcHd6b2YtZ2pwc29ieiNCYGBscWdqbWQjd2wja2pnZ2ZtISNtYm5mPiFib2xtZCN0andrI3drZmdsYHZuZm13LWFsZ3otYnNzcWx7am5id2ZveiNAbG5udm1qYGJ3amxtcHNscHchI2Jgd2psbT4hbmZibWptZCMlcnZsdzguLj8iWGZtZ2plXi4uPVNxam5mI05qbWpwd2ZxYGticWJgd2ZxanB3amA/LGI9Iz9iI2BvYnBwPndrZiNranB3bHF6I2xlI2xtbmx2cGZsdWZxPiF3a2YjZGx1ZnFtbmZtd2txZmU+IWt3d3NwOSwsdGJwI2xxamRqbWJvb3p0YnAjam13cWxndmBmZ2BvYnBwamVqYGJ3amxtcWZzcWZwZm13YndqdWZicWYjYGxtcGpnZnFmZz8iWGZtZ2plXi4uPVx0XHRnZnNmbWdwI2xtI3drZlZtanVmcXBqd3ojbGUjam0jYGxtd3FicHcjd2wjc29iYGZrbG9nZnE+IWptI3drZiNgYnBmI2xlam13ZnFtYndqbG1ibyNgbG1wd2p3dndqbG1ib3B3em9mPiFhbHFnZnEuOSNldm1gd2psbSsqI3hBZmBidnBmI2xlI3drZi5wd3FqYHctZ3dnIT1cdD93YmFvZiNgb2JwcD4hYmBgbG5zYm1qZmcjYXpiYGBsdm13I2xlI3drZj9wYHFqc3cjcHFgPiEsbWJ3dnFmI2xlI3drZiN3a2Yjc2Zsc29mI2ptI2ptI2JnZ2p3amxtI3dscCo4I2lwLWpnIz4jamchI3RqZ3drPiEyMzMmIXFmZGJxZ2ptZCN3a2YjUWxuYm0jQGJ3a2xvamBibSNqbWdmc2ZtZ2Ztd2Vsb29sdGptZCN3a2YjLWRqZSEjdGpnd2s+ITJ3a2YjZWxvb2x0am1kI2dqcGBxam5qbWJ3amxtYnFga2JmbG9sZGpgYm9zcWpuZiNuam1qcHdmcS1pcCE9PyxwYHFqc3c9YGxuYWptYndqbG0jbGUjbmJxZGptdGpnd2s+IWBxZmJ3ZkZvZm5mbXcrdC1id3diYGtGdWZtdys/LGI9Pyx3Zz0/LHdxPXBxYD4ha3d3c3A5LCxiSm0jc2Jxd2pgdm9icS8jYm9qZG0+IW9mZXchI0B5ZmBrI1Fmc3Zhb2pgVm1qd2ZnI0hqbWRnbG5gbHFxZnBzbG1nZm1gZmBsbWBvdmdmZyN3a2J3LWt3bm8hI3dqd29mPiErZXZtYHdqbG0jKyojeGBsbmZwI2VxbG4jd2tmYnNzb2pgYndqbG0jbGU/cHNibSNgb2JwcD4hcGFmb2pmdWZnI3dsI2FmZm5mbXcrJHBgcWpzdyQ/LGI9XHQ/LG9qPVx0P29qdWZxeiNnamVlZnFmbXc9P3BzYm0jYG9icHA+IWxzd2psbSN1Ym92Zj4hK2JvcGwjaG1sdG0jYnBcbj9vaj0/YiNrcWZlPiE9P2ptc3Z3I21ibmY+IXBmc2JxYndmZyNlcWxucWZlZnFxZmcjd2wjYnAjdWJvamRtPiF3bHMhPWVsdm1nZnEjbGUjd2tmYnd3Zm5zd2ptZCN3bCNgYnFhbG0jZ2pse2pnZlx0XHQ/Z2p1I2BvYnBwPiFgb2JwcD4hcGZicWBrLixhbGd6PVx0Pyxrd25vPWxzc2xxd3Ztand6I3dsYGxubnZtamBid2psbXA/LGtmYmc9Dlx0P2FsZ3ojcHd6b2Y+IXRqZ3drOVdqXHJWU21kI1VqXHJXa3dga2JtZGZwI2ptI3drZmFscWdmcS5gbG9scTkgMyEjYWxxZ2ZxPiEzISM/LHBzYm09PyxnanU9P3RicCNnanBgbHVmcWZnISN3enNmPiF3Znt3ISMqOFx0PyxwYHFqc3c9XHRcdEdmc2Jxd25mbXcjbGUjZmBgb2ZwamJwd2pgYm93a2ZxZiNrYnAjYWZmbXFmcHZvd2ptZCNlcWxuPyxhbGd6PT8sa3dubz1rYnAjbWZ1ZnEjYWZmbXdrZiNlanFwdyN3am5mam0jcWZwc2xtcGYjd2xidndsbmJ3amBib296Iz8sZ2p1PVx0XHQ/Z2p1I2p0YnAjYGxtcGpnZnFmZ3NmcWBmbXcjbGUjd2tmISMsPT8sYj0/LGdqdT1gbG9vZmB3amxtI2xlI2dmcGBmbWdmZyNlcWxucGZgd2psbSNsZSN3a2ZiYGBmc3cuYGticXBmd3dsI2FmI2BsbWV2cGZnbmZuYWZxI2xlI3drZiNzYmdnam1kLnFqZGt3OXdxYm1wb2J3amxtI2xlam13ZnFzcWZ3YndqbG0ja3FmZT4ka3d3czksLHRrZndrZnEjbHEjbWx3V2tmcWYjYnFmI2JvcGx3a2ZxZiNicWYjbmJtemIjcG5ib28jbXZuYWZxbHdrZnEjc2Jxd3AjbGVqbnNscHBqYW9mI3dsIyNgb2JwcD4hYXZ3d2xtb2xgYndmZyNqbSN3a2YtI0tsdGZ1ZnEvI3drZmJtZyNmdWZtd3Zib296Qncjd2tmI2ZtZyNsZSNhZmBidnBmI2xlI2p3cHFmc3FmcGZtd3Ajd2tmP2VscW4jYmB3amxtPiEjbmZ3a2xnPiFzbHB3IWp3I2pwI3NscHBqYW9mbmxxZiNvamhmb3ojd2xibSNqbWBxZmJwZiNqbWtidWYjYm9wbCNhZmZtYGxxcWZwc2xtZ3Ajd2xibW1sdm1gZmcjd2tid2JvamRtPiFxamRrdyE9bmJteiNgbHZtd3FqZnBlbHEjbmJteiN6ZmJxcGZicW9qZnB3I2htbHRtYWZgYnZwZiNqdyN0YnBzdyE9PyxwYHFqc3c9DiN1Ym9qZG0+IXdscyEjam1rYmFqd2Jtd3AjbGVlbG9vbHRqbWQjemZicQ5cdD9nanUjYG9icHA+IW5qb29qbG0jc2Zsc29mYGxtd3FsdWZxcGpibyNgbG1gZnFtam1kI3drZmJxZHZmI3drYncjd2tmZGx1ZnFtbmZtdyNibWdiI3FmZWZxZm1gZiN3bHdxYm1wZWZxcWZnI3dsZ2ZwYHFqYWptZCN3a2YjcHd6b2Y+IWBsb2xxOWJvd2tsdmRrI3drZnFmYWZwdyNobWx0bSNlbHFwdmFuanchI21ibmY+IW52b3dqc29qYGJ3amxtbmxxZiN3a2JtI2xtZiNxZmBsZG1qd2psbSNsZUBsdm1gam8jbGUjd2tmZmdqd2psbSNsZSN3a2YjIz9uZndiI21ibmY+IUZtd2Zxd2JqbW5mbXcjYnRieiNlcWxuI3drZiM4bmJxZGptLnFqZGt3OWJ3I3drZiN3am5mI2xlam11ZnB3amRid2psbXBgbG1tZmB3ZmcjdGp3a2JtZyNuYm16I2x3a2ZxYm93a2x2ZGsjancjanBhZmRqbW1qbWQjdGp3ayM/cHNibSNgb2JwcD4hZ2ZwYGZtZ2Jtd3AjbGU/cHNibSNgb2JwcD4haiNib2pkbT4hcWpka3chPyxrZmJnPVx0P2FsZ3ojYnBzZmB3cCNsZSN3a2ZrYnAjcGptYGYjYWZmbUZ2cWxzZmJtI1ZtamxtcWZuam1qcGBmbXcjbGVubHFmI2dqZWVqYHZvd1VqYGYjU3FmcGpnZm13YGxuc2xwandqbG0jbGVzYnBwZmcjd2txbHZka25scWYjam5zbHF3Ym13ZWxtdy5wanlmOTIyc3tme3NvYm1id2psbSNsZXdrZiNgbG1gZnN3I2xldHFqd3dmbSNqbSN3a2Zcbj9wc2JtI2BvYnBwPiFqcCNsbWYjbGUjd2tmI3FmcGZuYW9ibWBmI3dsbG0jd2tmI2RxbHZtZ3B0a2pgayNgbG13YmptcGptYG92Z2ptZCN3a2YjZ2Zlam1mZyNheiN3a2ZzdmFvamBid2psbSNsZW5mYm1wI3drYncjd2tmbHZ3cGpnZiNsZSN3a2ZwdnNzbHF3I2xlI3drZj9qbXN2dyNgb2JwcD4hP3BzYm0jYG9icHA+IXcrTmJ3ay1xYm1nbG4rKm5scHcjc3FsbmptZm13Z2ZwYHFqc3dqbG0jbGVAbG1wd2Jtd2ptbHNvZnRmcWYjc3Zhb2pwa2ZnP2dqdSNgb2JwcD4hcGZic3NmYnFwI2ptI3drZjIhI2tmamRrdz4hMiEjbmxwdyNqbnNscXdibXd0a2pgayNqbWBvdmdmcHRramBrI2tiZyNhZmZtZ2Zwd3F2YHdqbG0jbGV3a2Yjc2xzdm9id2psbVx0XG4/Z2p1I2BvYnBwPiFzbHBwamFqb2p3eiNsZXBsbmZ3am5mcCN2cGZnYnNzZmJxI3dsI2tidWZwdmBgZnBwI2xlI3drZmptd2ZtZ2ZnI3dsI2Fmc3FmcGZtdyNqbSN3a2Zwd3pvZj4hYG9mYnE5YQ5cdD8scGBxanN3PQ5cdD90YnAjZWx2bWdmZyNqbWptd2ZxdWpmdCN0andrXFxqZyEjYGxtd2Ztdz4hYGJzandibyNsZSN3a2YOXHQ/b2ptaCNxZm8+IXBxZm9mYnBmI2xlI3drZnNsam13I2x2dyN3a2J3e05PS3d3c1FmcnZmcHdibWcjcHZhcGZydmZtd3BmYGxtZyNvYnFkZnB3dWZxeiNqbnNscXdibXdwc2ZgamVqYGJ3amxtcHB2cWViYGYjbGUjd2tmYnNzb2pmZyN3bCN3a2ZlbHFmamRtI3Nsb2pgelxccGZ3R2xuYmptTWJuZmZwd2Jhb2pwa2ZnI2ptanAjYWZvamZ1Zmcjd2xKbSNiZ2dqd2psbSN3bG5mYm1qbWQjbGUjd2tmanAjbWJuZmcjYmV3ZnF3bCNzcWx3ZmB3I3drZmpwI3Fmc3FmcGZtd2ZnR2Zgb2JxYndqbG0jbGVubHFmI2ZlZWpgamZtd0BvYnBwamVqYGJ3amxtbHdrZnEjZWxxbnAjbGVrZiNxZnd2cW1mZyN3bD9wc2JtI2BvYnBwPiFgc2ZxZWxxbmJtYGYjbGUrZXZtYHdqbG0rKiN4DmplI2JtZyNsbW96I2plcWZkamxtcCNsZSN3a2ZvZmJnam1kI3dsI3drZnFmb2J3amxtcCN0andrVm1qd2ZnI01id2psbXBwd3pvZj4ha2ZqZGt3OWx3a2ZxI3drYm0jd2tmenNmISNgbG13Zm13PiFCcHBsYGpid2psbSNsZVx0PyxrZmJnPVx0P2FsZ3pvbGBid2ZnI2xtI3drZmpwI3FmZWZxcWZnI3dsK2ptYG92Z2ptZCN3a2ZgbG1gZm13cWJ3amxtcHdrZiNqbWdqdWpndmJvYm5sbWQjd2tmI25scHd3a2JtI2JteiNsd2tmcSw9XHQ/b2ptaCNxZm8+ISNxZnd2cW0jZWJvcGY4d2tmI3N2cXNscGYjbGV3a2YjYmFqb2p3eiN3bDhgbG9scTkgZWVlflx0LVx0P3BzYm0jYG9icHA+IXdrZiNwdmFpZmB3I2xlZ2Zlam1qd2psbXAjbGU9Dlx0P29qbWgjcWZvPiFgb2JqbiN3a2J3I3drZmtidWYjZ2Z1Zm9sc2ZnP3diYW9mI3RqZ3drPiFgZm9mYXFid2psbSNsZUVsb29sdGptZCN3a2Yjd2wjZ2pwd2ptZHZqcGs/cHNibSNgb2JwcD4hYXdiaGZwI3NvYmBmI2ptdm1nZnEjd2tmI21ibmZtbHdmZyN3a2J3I3drZj0/IlhmbWdqZV4uLj1cdHB3em9mPiFuYnFkam0uam1wd2ZiZyNsZSN3a2ZqbXdxbGd2YGZnI3drZndrZiNzcWxgZnBwI2xlam1gcWZicGptZCN3a2ZnamVlZnFmbWBmcCNqbWZwd2puYndmZyN3a2J3ZnBzZmBqYm9veiN3a2YsZ2p1PT9nanUjamc+IXRicCNmdWZtd3Zib296d2txbHZka2x2dyNranB3a2YjZ2plZWZxZm1gZnBsbmZ3a2ptZCN3a2J3cHNibT0/LHBzYm09PyxwamRtamVqYGJtd296Iz0/LHBgcWpzdz0OXHQOXHRmbXVqcWxtbmZtd2JvI3dsI3NxZnVmbXcjd2tma2J1ZiNhZmZtI3ZwZmdmcHNmYGpib296I2VscXZtZ2ZxcHdibWcjd2tmanAjZnBwZm13amJvb3p0ZnFmI3drZiNlanFwd2pwI3drZiNvYnFkZnB3a2J1ZiNhZmZtI25iZ2YhI3BxYD4ha3d3czksLGptd2Zxc3Fmd2ZnI2JwcGZgbG1nI2tib2UjbGVgcWxvb2ptZD4hbWwhI2pwI2BsbnNscGZnI2xlSkovI0tsb3ojUWxuYm1qcCNme3NmYHdmZyN3bGtidWYjd2tmanEjbHRtZ2Zlam1mZyNicCN3a2Z3cWJnandqbG1ib296I2tidWYjZ2plZWZxZm13YnFmI2xld2ZtI3ZwZmd3bCNmbXB2cWYjd2tid2JkcWZmbmZtdyN0andrYGxtd2JqbWptZCN3a2ZicWYjZXFmcnZmbXdvemptZWxxbmJ3amxtI2xtZntibnNvZiNqcCN3a2ZxZnB2b3dqbWQjam0jYj8sYj0/LG9qPT8sdm89I2BvYnBwPiFlbGx3ZnFibWcjZnBzZmBqYm9vend6c2Y+IWF2d3dsbSEjPyxwc2JtPT8scHNibT10a2pgayNqbWBvdmdmZz1cdD9uZndiI21ibmY+IWBsbXBqZ2ZxZmcjd2tmYGJxcWpmZyNsdncjYXpLbHRmdWZxLyNqdyNqcGFmYGJuZiNzYnF3I2xlam0jcWZvYndqbG0jd2xzbHN2b2JxI2ptI3drZndrZiNgYnNqd2JvI2xldGJwI2xlZWpgamJvb3p0a2pgayNrYnAjYWZmbXdrZiNLanB3bHF6I2xlYm93ZnFtYndqdWYjd2xnamVlZnFmbXcjZXFsbndsI3B2c3NscXcjd2tmcHZkZGZwd2ZnI3drYndqbSN3a2Yjc3FsYGZwcCMjP2dqdSNgb2JwcD4hd2tmI2Vsdm1nYndqbG1hZmBidnBmI2xlI2tqcGBsbWBmcW1mZyN0andrd2tmI3ZtanVmcXBqd3psc3NscGZnI3dsI3drZndrZiNgbG13Znt3I2xlP3BzYm0jYG9icHA+IXN3Znt3ISNtYm5mPiFyIVxuXG4/Z2p1I2BvYnBwPiF3a2YjcGBqZm13amVqYHFmc3FmcGZtd2ZnI2F6bmJ3a2ZuYndqYGpibXBmb2Zgd2ZnI2F6I3drZndrYncja2J1ZiNhZmZtPT9nanUjYG9icHA+IWBnanUjamc+IWtmYmdmcWptI3NicXdqYHZvYnEvYGxtdWZxd2ZnI2ptd2wqOFx0PyxwYHFqc3c9XHQ/c2tqb2xwbHNramBibyNwcXNwaGxrcXVid3BoandqXHJWU21kI1VqXHJXa3c8TD1vPW09bTxWPFQ8VT1sPW89bT1tPFY8VDxVam11ZnB3amRiYGovX21zYnF3amBqc2Jgai9fbTxWPFI9bjxSPWw9ZzxZPFI8XTxXPFxcPW09bjxUPFY8Uj1uPFI9bD1nPFU9azxZPFc8UjxePFk8Vj1tPFQ9bT1uPFk8UD1nPHE8UjxePFI9bT1uPFQ8VjxSPW48Uj1sPWc9aTxSPF08VzxcXD1tPW49YDxePWw8WTxQPFk8UTxUPFY8Uj1uPFI9bDxcXD1jPW08WTxfPFI8WDxRPWM9bTxWPFxcPWs8XFw9bj1gPFE8UjxePFI9bT1uPFQ8TzxWPWw8XFw8VDxRPWc8XjxSPFM9bDxSPW09ZzxWPFI9bjxSPWw8UjxVPW08WDxZPFc8XFw9bj1gPFM8UjxQPFI9ZT1gPWI9bT1sPFk8WD1tPW48XjxSPF09bDxcXDxbPFI8UD1tPW48Uj1sPFI8UT1nPW89azxcXD1tPW48VDxZPW48WT1rPFk8UTxUPFk8fzxXPFxcPF48UTxcXD1jPFQ9bT1uPFI9bDxUPFQ9bTxUPW09bjxZPFA8XFw9bDxZPWQ8WTxRPFQ9YzxNPFY8XFw9azxcXD1uPWA8UzxSPWE9bjxSPFA9bz1tPFc8WTxYPW88WT1uPW08VjxcXDxbPFxcPW49YD1uPFI8XjxcXD1sPFI8XjxWPFI8UTxZPWs8UTxSPWw8WT1kPFk8UTxUPFk8VjxSPW48Uj1sPFI8WTxSPWw8XzxcXDxRPFI8XjxWPFI9bjxSPWw8UjxQPEw8WTxWPFc8XFw8UDxcXDRLNWg1aTVqNEY0QzVlNWk1ajRGNEM1ZjRLNEY0SzVoNWk1ZDRaNWQ0VTRLNWg0RDRdNEs1aTRANEs1aDVpNWQ0SzVuNFU0SzVoNF00XzRLNEo1aDVpNFg0SzRdNW80SzRGNEs1aDRPNFU0WjRLNE00SzVoNF01ZjRLNFo0RTRLNWg0RjRZNWk1ZjVpNEs1aDRLNFU0WjRLNE00SzVoNWo0RjRLNEo0QDRLNWg0TzVoNFU0SzRENEs1aDRGNF80QDVmNWg0SzVoNE81bjRfNEs1aTRLNWg0WjRWNFs0SzRGNEs1aDVtNWY0QzVmNWQ0SzVoNEY0XTRBNWY0RDRLNWg0QDRDNWY0QzRFNEs1aDRGNFU1aDVmNWk0SzVoNE80QjRENEs0XTRLNWg0SzVtNWg0SzVpNEs1aDRPNW01aDRLNWk0SzVoNEY0SzRdNWY0QjRLNWg0RjVuNWo1ZjRFNEs1aDRLNWg0VTRLNEQ0SzVoNEI1ZDRLNFs0XTRLNWg1aTRANEY1aTRVNEs1aDRDNWY1bzVkNF00SzVoNF81ZjRLNEE0RTRVNEQ0QzRLNWg1aDVrNEs1aDRGNF00RDVmNEU0SzVoNF01ZDRLNEQ0WzRLNWg0TzRDNEQ1ZjRFNEs1aDRLNEI0RDRLNF00SzVoNWk0RjRBNEM0RTRLNWg0SzRWNEs1ajVmYHZxcGxxOXNsam13ZnE4Pyx3andvZj1cdD9uZndiIyEja3FmZT4ha3d3czksLCE9P3BzYm0jYG9icHA+IW5mbmFmcXAjbGUjd2tmI3RqbWdsdC1vbGBid2psbXVmcXdqYGJvLmJvamRtOSxiPSN/Iz9iI2txZmU+IT8iZ2xgd3pzZiNrd25vPW5mZ2piPiFwYHFmZm0hIz9sc3dqbG0jdWJvdmY+IWVidWpgbG0tamBsISMsPVx0XG5cbj9nanUjYG9icHA+IWBrYnFiYHdmcWpwd2pgcCEjbmZ3a2xnPiFkZnchIyxhbGd6PVx0Pyxrd25vPVx0cGtscXdgdncjamBsbSEjZ2xgdm5mbXctdHFqd2Yrc2JnZ2ptZC5hbHd3bG45cWZzcWZwZm13YndqdWZwcHZhbmp3ISN1Ym92Zj4hYm9qZG0+IWBmbXdmcSEjd2txbHZka2x2dyN3a2YjcGBqZm1gZiNlamB3amxtXHQjIz9nanUjYG9icHA+IXB2YW5qdyEjYG9icHA+IWxtZiNsZSN3a2YjbmxwdyN1Ym9qZG0+IXdscyE9P3RicCNmcHdiYW9qcGtmZyo4Dlx0PyxwYHFqc3c9Dlx0cWZ3dnFtI2Vib3BmOCE9Ki1wd3pvZi1nanBzb2J6YWZgYnZwZiNsZSN3a2YjZ2xgdm5mbXctYGxsaGpmP2VscW4jYmB3amxtPiEsfmFsZ3p4bmJxZGptOTM4Rm1gemBvbHNmZ2piI2xldWZxcGpsbSNsZSN3a2YjLWBxZmJ3ZkZvZm5mbXcrbWJuZiEjYGxtd2Ztdz4hPyxnanU9XHQ/LGdqdT1cdFx0Ymduam1qcHdxYndqdWYjPyxhbGd6PVx0Pyxrd25vPWtqcHdscXojbGUjd2tmIyE9P2ptc3Z3I3d6c2Y+IXNscXdqbG0jbGUjd2tmI2JwI3NicXcjbGUjd2tmIyVtYXBzOD9iI2txZmU+IWx3a2ZxI2Bsdm13cWpmcCE9XHQ/Z2p1I2BvYnBwPiE/LHBzYm09Pyxwc2JtPT9KbSNsd2tmcSN0bHFncC9nanBzb2J6OSNhb2xgaDhgbG13cWxvI2xlI3drZiNqbXdxbGd2YHdqbG0jbGUsPVx0P25md2IjbWJuZj4hYnAjdGZvbyNicCN3a2Yjam0jcWZgZm13I3pmYnFwDlx0XG4/Z2p1I2BvYnBwPiE/LGdqdT1cdFxuPyxnanU9XHRqbXBzanFmZyNheiN3a2Z3a2YjZm1nI2xlI3drZiNgbG5zYndqYW9mI3Rqd2thZmBibmYjaG1sdG0jYnAjcHd6b2Y+IW5icWRqbTktaXAhPT8scGBxanN3PT8jSm13ZnFtYndqbG1ibyN3a2ZxZiNrYnVmI2FmZm1EZnFuYm0jb2JtZHZiZGYjcHd6b2Y+IWBsb2xxOSBAbG5udm1qcHcjU2Jxd3pgbG1wanB3Zm13I3Rqd2thbHFnZnE+ITMhI2Bmb28jbmJxZGpta2ZqZGt3PiF3a2YjbmJpbHFqd3ojbGUhI2JvamRtPiFgZm13ZnFxZm9id2ZnI3dsI3drZiNuYm16I2dqZWVmcWZtdyNMcXdrbGdseyNAa3ZxYGtwam5qb2JxI3dsI3drZiMsPVx0P29qbWgjcWZvPiFwdGJwI2xtZiNsZSN3a2Yjdm13am8ja2pwI2dmYndrfiorKjhcdD8scGBxanN3PWx3a2ZxI29ibWR2YmRmcGBsbnNicWZnI3dsI3drZnNscXdqbG1wI2xlI3drZndrZiNNZndrZnFvYm1ncHdrZiNubHB3I2Bsbm5sbWFiYGhkcWx2bWc5dnFvK2JxZHZmZyN3a2J3I3drZnBgcWxvb2ptZD4hbWwhI2ptYG92Z2ZnI2ptI3drZk1scXdrI0JuZnFqYGJtI3drZiNtYm5mI2xlI3drZmptd2Zxc3Fmd2J3amxtcHdrZiN3cWJnandqbG1ib2dmdWZvbHNuZm13I2xlI2VxZnJ2Zm13b3ojdnBmZ2IjYGxvb2Zgd2psbSNsZXVmcXojcGpuam9icSN3bHB2cXFsdm1nam1kI3drZmZ7Ym5zb2YjbGUjd2tqcGJvamRtPiFgZm13ZnEhPXRsdm9nI2tidWYjYWZmbWpuYmRmXFxgYnN3amxtIz5id3diYGtmZyN3bCN3a2ZwdmRkZnB3am1kI3drYndqbSN3a2YjZWxxbiNsZSNqbXVsb3VmZyNqbSN3a2ZqcCNnZnFqdWZnI2VxbG5tYm5mZyNiZXdmcSN3a2ZKbXdxbGd2YHdqbG0jd2xxZnB3cWpgd2psbXAjbG0jcHd6b2Y+IXRqZ3drOSNgYm0jYWYjdnBmZyN3bCN3a2YjYHFmYndqbG0jbGVubHB3I2puc2xxd2JtdyNqbWVscW5id2psbSNibWdxZnB2b3dmZyNqbSN3a2ZgbG9vYnNwZiNsZSN3a2ZXa2pwI25mYm1wI3drYndmb2ZuZm13cCNsZSN3a2Z0YnAjcWZzb2JgZmcjYXpibWJvenBqcCNsZSN3a2ZqbXBzanFid2psbSNlbHFxZmRicWdmZyNicCN3a2ZubHB3I3B2YGBmcHBldm9obWx0bSNicCMlcnZsdzhiI2BsbnNxZmtmbXBqdWZLanB3bHF6I2xlI3drZiN0ZnFmI2BsbXBqZ2ZxZmdxZnd2cW1mZyN3bCN3a2ZicWYjcWZlZnFxZmcjd2xWbXBsdnFgZmcjam5iZGY9XHRcbj9nanUjYG9icHA+IWBsbXBqcHdwI2xlI3drZnB3bHNTcWxzYmRid2psbWptd2ZxZnB3I2ptI3drZmJ1YmpvYmFqb2p3eiNsZWJzc2ZicXAjd2wja2J1ZmZvZmB3cWxuYmRtZndqYGZtYmFvZlBmcXVqYGZwK2V2bWB3amxtI2xlI3drZkp3I2pwI2puc2xxd2Jtdz8scGBxanN3PT8sZ2p1PWV2bWB3amxtKyp4dWJxI3Fmb2J3anVmI3dsI3drZmJwI2IjcWZwdm93I2xlI3drZiNzbHBqd2psbSNsZUVscSNme2Juc29mLyNqbSNuZndrbGc+IXNscHchI3RicCNlbG9vbHRmZyNheiVibnM4bmdicGs4I3drZndrZiNic3NvamBid2psbWlwIT0/LHBgcWpzdz0OXHR2bz0/LGdqdT0/LGdqdT1iZXdmcSN3a2YjZ2Zid2t0andrI3FmcHNmYHcjd2xwd3pvZj4hc2JnZ2ptZDlqcCNzYnF3amB2b2Jxb3pnanBzb2J6OWptb2ptZjgjd3pzZj4hcHZhbmp3ISNqcCNnanVqZ2ZnI2ptd2xcYlRBXG56ayMrXHZCbFxiUX8qcWZwc2xtcGJham9qZ2JnYmduam1qcHdxYmBqL19tam13ZnFtYmBqbG1ib2ZwYGxxcWZwc2xtZ2pmbXdmXGZIZVxmSEZcZkhDXGZJZ1xmSHtcZkhGXGZJblxmSFxcXGZJYVxmSFlcZkhVXGZIQlxmSFJcZkhcXFxmSWtcZkheXGZJZ1xmSHtcZklnXGZIblxmSHZcZkltXGZIRFxmSFJcZkhZXGZIXlxmSWtcZkh5XGZIU1xmSERcZkhUXGZIXFxcZkh5XGZIUlxmSFxcXGZIRlxmSW1cZkheXGZIU1xmSFRcZkh6XGZJZ1xmSHBcZklrXGZIblxmSHZcZkhSXGZIVVxmSFNcZkhjXGZIQVxmSWtcZkhwXGZJa1xmSG5cZkhaXGZIUlxmSEJcZkhTXGZIXlxmSFVcZkhCXGZIUlxmSFxcXGZJbFxmSHBcZkhSXGZIe1xmSFxcXGZIT1xmSEBcZkhEXGZIUlxmSERcZklrXGZIeVxmSW1cZkhCXGZIUlxmSFxcXGZIQFxmSWFcZkheXGZJZVxmSHtcZkhCXGZIUlxmSF5cZkhTXGZIeVxmSEJcZkhVXGZIU1xmSF5cZkhSXGZIRlxmSW9cZkhbXGZJYVxmSExcZkhAXGZITlxmSFBcZkhIXGZJa1xmSEFcZkhSXGZIcFxmSEZcZkhSXGZIeVxmSWFcZkheXGZIU1xmSHlcZkhzXGZJYVxmSFxcXGZJa1xmSERcZkh6XGZIU1xmSF5cZkhSXGZIR1xmSEpcZklgXGZIXFxcZkhSXGZIRFxmSEJcZkhSXGZIQlxmSF5cZklrXGZIQlxmSEhcZkhKXGZIUlxmSERcZkhAXGZIUlxmSHBcZkhSXGZIXFxcZkhZXGZIU1xmSHlcZkhSXGZIVFxmSHlcZklhXGZIQ1xmSWdcZkhuXGZIdlxmSFJcZkhVXGZISFxmSWtcZkhGXGZIVVxmSW1cZkhtXGZIdlxmSEBcZkhIXGZIUlxmSENcZkhSXGZIVFxmSG5cZkhZXGZIUlxmSEpcZkhKXGZJa1xmSHpcZkhEXGZJa1xmSEZcZkhTXGZId1xmSF5cZklrXGZIWVxmSFNcZkhaXGZJa1xmSFtcZkhcXFxmSFJcZkhwXGZJYVxmSENcZkhlXGZISFxmSWFcZkhIXGZIXFxcZkhCXGZJbVxmSG5cZkhAXGZIZFxmSEpcZklnXGZIRFxmSWdcZkhuXGZIZVxmSEZcZkh5XGZIXFxcZkhPXGZIRlxmSE5cZkhQXGZJa1xmSG5cZkhUXGZJYVxmSElcZkhTXGZISFxmSEdcZkhTXGZIXlxmSWFcZkhCXGZIQlxmSW1cZkh6XGZJYVxmSENcZkhpXGZIdlxmSWFcZkh3XGZIUlxmSHdcZkluXGZIc1xmSEhcZklsXGZIVFxmSG5cZkh7XGZJbFxmSEhcZkhwXGZIUlxmSGNcZkh7XGZIUlxmSFlcZkhTXGZIQVxmSFJcZkh7XGZIdFxmSE9cZklhXGZIc1xmSWtcZkhKXGZJblxmSFRcZkhcXFxmSWtcZkhKXGZIU1xmSERcZklnXGZIblxmSFVcZkhIXGZJYVxmSENcZkhSXGZIVFxmSWtcZkh5XGZJYVxmSFRcZkh7XGZIUlxmSG5cZkhLXGZJbFxmSFlcZkhTXGZIWlxmSWFcZkhZXGZIXFxcZkhSXGZISFxmSWtcZkhuXGZISlxmSWRcZkhzXGZJYVxmSFRcZkhEXGZIeVxmSWFcZkhaXGZIUlxmSFRcZkhSXGZIQlxmSERcZklrXGZIaVxmSEpcZkhSXGZIXlxmSEhcZkhAXGZIU1xmSHBcZkheXGZJbFxmSEZcZkltXGZIXFxcZkluXGZIW1xmSFVcZkhTXGZIblxmSEpcZklsXGZIQlxmSFNcZkhIXGZJYVxmSFxcXGZIeVxmSFlcZkhTXGZISFxmSFJcZkhcXFxmSW1cZkhGXGZIQ1xmSWtcZkhUXGZJYVxmSElcZkhSXGZIRFxmSHlcZkhcXFxmSWdcZkhNXGZIUFxmSEJcZkltXGZIeVxmSWFcZkhIXGZIQ1xmSWdcZkhwXGZIRFxmSFJcZkh5XGZJb1xmSEZcZkhDXGZIUlxmSEZcZklnXGZIVFxmSWFcZkhzXGZIdFxmSFxcXGZJa1xmSF5cZkluXGZIeVxmSFJcZkhcXFxmSWFcZkhDXGZIWVxmSFNcZkh2XGZIUlxmSFxcXGZIVFxmSW5cZkh2XGZIRFxmSFJcZkhCXGZJblxmSF5cZklhXGZIQ1xmSEpcZklrXGZIelxmSWtcZkhuXGZIVVxmSEJcZklrXGZIWlxmSFJcZkhUXGZJYVxmSHlcZkluXGZIXlxmSEJcZklkXGZIblxmSERcZklrXGZISFxmSWRcZkhDXGZIUlxmSFxcXGZIcFxmSFNcZkhUXGZIeVxmSWtxcHAoe25vISN3andvZj4hLnd6c2YhI2BsbXdmbXc+IXdqd29mISNgbG13Zm13PiFidyN3a2YjcGJuZiN3am5mLWlwIT0/LHBgcWpzdz1cdD8hI25md2tsZz4hc2xwdyEjPyxwc2JtPT8sYj0/LG9qPXVmcXdqYGJvLmJvamRtOXcsaXJ2ZnF6LW5qbS1pcCE9LWBvamBoK2V2bWB3amxtKyNwd3pvZj4hc2JnZ2ptZC5+KisqOFx0PyxwYHFqc3c9XHQ/LHBzYm09P2Ija3FmZT4hP2Ija3FmZT4ha3d3czksLCo4I3Fmd3ZxbSNlYm9wZjh3Znt3LmdmYGxxYndqbG05I3BgcWxvb2ptZD4hbWwhI2FscWdmcS5gbG9vYnNwZjlicHBsYGpid2ZnI3Rqd2sjQWJrYnBiI0ptZ2xtZnBqYkZtZG9qcGsjb2JtZHZiZGY/d2Z7dyN7bm85cHNiYGY+LWRqZSEjYWxxZ2ZxPiEzIT8sYWxnej1cdD8sa3dubz1cdGx1ZnFlb2x0OWtqZ2dmbThqbmQjcHFgPiFrd3dzOSwsYmdnRnVmbXdPanB3Zm1mcXFmcHNsbXBqYW9mI2VscSNwLWlwIT0/LHBgcWpzdz1cdCxlYnVqYGxtLWpgbCEjLD1sc2ZxYndqbWQjcHpwd2ZuISNwd3pvZj4hdGpnd2s5MndicWRmdz4hXFxhb2JtaCE9UHdid2YjVm1qdWZxcGp3endme3cuYm9qZG05b2ZldzhcdGdsYHZuZm13LXRxandmKy8jam1gb3Znam1kI3drZiNicWx2bWcjd2tmI3RscW9nKjgOXHQ/LHBgcWpzdz0OXHQ/ISNwd3pvZj4ha2ZqZGt3OThsdWZxZW9sdDlramdnZm1ubHFmI2ptZWxxbmJ3amxtYm0jam13ZnFtYndqbG1ib2IjbmZuYWZxI2xlI3drZiNsbWYjbGUjd2tmI2VqcXB3YGJtI2FmI2Vsdm1nI2ptIz8sZ2p1PVx0XG5cbj8sZ2p1PVx0Z2pwc29iejkjbWxtZjghPSEjLD1cdD9vam1oI3Fmbz4hXHQjIytldm1gd2psbSsqI3h3a2YjMjZ3ayNgZm13dnF6LXNxZnVmbXdHZmVidm93K29icWRmI212bmFmcSNsZSNBenlibXdqbWYjRm5zanFmLWlzZH93a3ZuYX9vZmV3f3VicHcjbmJpbHFqd3ojbGVuYmlscWp3eiNsZSN3a2YjI2JvamRtPiFgZm13ZnEhPVZtanVmcXBqd3ojU3FmcHBnbG5qbWJ3ZmcjYXojd2tmUGZgbG1nI1RscW9nI1RicWdqcHdxamF2d2psbSNsZSNwd3pvZj4hc2xwandqbG05d2tmI3FmcHcjbGUjd2tmI2BrYnFiYHdmcWp5ZmcjYXojcWZvPiFtbGVsb29sdCE9Z2ZxanVmcCNlcWxuI3drZnFid2tmcSN3a2JtI3drZiNiI2BsbmFqbWJ3amxtI2xlcHd6b2Y+IXRqZ3drOTIzM0ZtZG9qcGsucHNmYmhqbWRgbG5zdndmcSNwYGpmbWBmYWxxZ2ZxPiEzISNib3c+IXdrZiNme2pwd2ZtYGYjbGVHZm5sYHFid2pgI1NicXd6ISNwd3pvZj4hbmJxZGptLkVscSN3a2pwI3FmYnBsbS8taXAhPT8scGBxanN3PVx0XG5wQXpXYmRNYm5mK3AqWDNeaXAhPT8scGBxanN3PQ5cdD8taXAhPT8scGBxanN3PQ5cdG9qbWgjcWZvPiFqYGxtISMkI2Jvdz4kJCNgb2JwcD4kZWxxbmJ3amxtI2xlI3drZnVmcXBqbG1wI2xlI3drZiM/LGI9PyxnanU9PyxnanU9LHNiZGY9XHQjIz9zYmRmPVx0P2dqdSNgb2JwcD4hYGxtd2FmYGJuZiN3a2YjZWpxcHdhYmticGIjSm1nbG1mcGpiZm1kb2pwayMrcGpuc29mKiJ5IlciVyJbIlEiVSJWIkA9aT1sPF48XFw9bj1tPFY8VDxWPFI8UDxTPFxcPFE8VDxUPWM8XjxXPWM8WT1uPW09Yzx4PFI8XTxcXDxePFQ9bj1gPWs8WTxXPFI8XjxZPFY8XFw9bDxcXDxbPF48VD1uPFQ9Yzx0PFE9bjxZPWw8UTxZPW48cj1uPF48WT1uPFQ9bj1gPFE8XFw8Uz1sPFQ8UDxZPWw8VDxRPW48WT1sPFE8WT1uPFY8Uj1uPFI9bDxSPF88Uj1tPW49bDxcXDxRPFQ9aj1nPFY8XFw9azxZPW09bjxePFk9bz1tPFc8UjxePFQ9Yz1pPFM9bDxSPF08VzxZPFA9ZzxTPFI8Vz1vPWs8VD1uPWA9YzxePFc9Yz1iPW49bT1jPFE8XFw8VDxdPFI8VzxZPFk8VjxSPFA8UzxcXDxRPFQ9YzxePFE8VDxQPFxcPFE8VDxZPW09bDxZPFg9bT1uPF48XFw0SzVoNWk1ZDRLNFo1ZjRVNEs1aDRdNEo1ZjRfNWY0RTRLNWg0SzVqNEY1bjRLNWg1aTRYNEs0XTVvNEs0RjVvNEs1aDRfNWY0SzRdNEs0RjRLNWg1aTVvNEY1ZDRENEU0SzVoNF80VTVkNEM1ZjRFNEs0QTRZNEs0SjVmNEs0RjRLNWg0VTRLNWg1aTVmNEU0SzVoNFk1ZDRGNWY0SzRGNEs1aDRLNWo0RjRdNWo0RjRLNWg0RjRZNEs1aTVmNWk0SzVoNEk0XzVoNEs1aTVmNEs1aDVpNFg0SzRdNW80RTRLNWg1aTRdNEo1ZjRLNEZxbGFsd3AhI2BsbXdmbXc+IT9nanUjamc+IWVsbHdmcSE9d2tmI1ZtandmZyNQd2J3ZnA/am5kI3BxYD4ha3d3czksLC1pc2R/cWpka3d/d2t2bmF/LWlwIT0/LHBgcWpzdz0OXHQ/b2xgYndqbG0tc3Fsd2xgbG9lcWJuZmFscWdmcT4hMyEjcCEjLD1cdD9uZndiI21ibmY+IT8sYj0/LGdqdT0/LGdqdT0/ZWxtdy50Zmpka3c5YWxvZzglcnZsdzgjYm1nIyVydmx3OGdmc2ZtZ2ptZCNsbSN3a2YjbmJxZGptOTM4c2JnZ2ptZDkhI3Fmbz4hbWxlbG9vbHQhI1NxZnBqZ2ZtdyNsZSN3a2Yjd3RmbXdqZndrI2BmbXd2cXpmdWpwamxtPVx0IyM/LHNiZGZKbXdmcW1mdyNGe3NvbHFmcWItYnB6bWAjPiN3cXZmOA5cdGptZWxxbmJ3amxtI2JhbHZ3P2dqdSNqZz4ha2ZiZ2ZxIT0hI2Jgd2psbT4ha3d3czksLD9iI2txZmU+IWt3d3NwOSwsP2dqdSNqZz4hYGxtd2ZtdyE/LGdqdT0OXHQ/LGdqdT0OXHQ/Z2ZxanVmZyNlcWxuI3drZiM/am5kI3BxYD4ka3d3czksLGJgYGxxZ2ptZCN3bCN3a2YjXHQ/LGFsZ3o9XHQ/LGt3bm89XHRwd3pvZj4hZWxtdy5wanlmOXBgcWpzdyNvYm1kdmJkZj4hQnFqYm8vI0tmb3Vmd2pgYi8/LGI9P3BzYm0jYG9icHA+IT8scGBxanN3PT9wYHFqc3cjc2xvandqYGJvI3NicXdqZnB3Zz0/LHdxPT8sd2Jhb2Y9P2txZmU+IWt3d3M5LCx0dHQtam13ZnFzcWZ3YndqbG0jbGVxZm8+IXB3em9mcGtmZnchI2dsYHZuZm13LXRxandmKyQ/YGticXBmdz4hdndlLjshPVx0YWZkam1tam1kI2xlI3drZiNxZnVmYm9mZyN3a2J3I3drZndmb2Z1anBqbG0jcGZxamZwISNxZm8+IW1sZWxvb2x0IT0jd2JxZGZ3PiFcXGFvYm1oIT1gb2JqbmptZCN3a2J3I3drZmt3d3MmMEImMUUmMUV0dHQtbmJtamVmcHdid2psbXAjbGVTcWpuZiNOam1qcHdmcSNsZWptZW92Zm1gZmcjYXojd2tmYG9icHA+IWBvZmJxZWp7IT0sZ2p1PQ5cdD8sZ2p1PQ5cdA5cdHdrcWZmLmdqbmZtcGpsbWJvQGt2cWBrI2xlI0ZtZG9ibWdsZSNNbHF3ayNAYnFsb2ptYnBydmJxZiNoam9sbmZ3cWZwLWJnZ0Z1Zm13T2pwd2ZtZnFnanB3am1gdyNlcWxuI3drZmBsbm5sbW96I2htbHRtI2JwU2tsbWZ3amAjQm9za2JhZndnZmBvYnFmZyN3a2J3I3drZmBsbXdxbG9vZmcjYXojd2tmQWZtaWJuam0jRXFibWhvam1xbG9mLnNvYnpqbWQjZGJuZndrZiNWbWp1ZnFwand6I2xlam0jVGZwd2ZxbSNGdnFsc2ZzZnFwbG1ibyNgbG5zdndmcVNxbGlmYHcjRHZ3Zm1hZnFkcWZkYnFnb2ZwcCNsZSN3a2ZrYnAjYWZmbSNzcWxzbHBmZ3dsZGZ3a2ZxI3Rqd2sjd2tmPT8sb2o9P29qI2BvYnBwPiFqbSNwbG5mI2Bsdm13cWpmcG5qbS1pcCE9PyxwYHFqc3c9bGUjd2tmI3Nsc3ZvYndqbG1sZWVqYGpibyNvYm1kdmJkZj9qbmQjcHFgPiFqbmJkZnAsamdmbXdqZWpmZyNheiN3a2ZtYnd2cWJvI3FmcGx2cWBmcGBvYnBwamVqYGJ3amxtI2xlYGJtI2FmI2BsbXBqZ2ZxZmdydmJtd3ZuI25mYGtibWpgcE1mdWZxd2tmb2ZwcC8jd2tmbmpvb2psbSN6ZmJxcCNiZGw/LGFsZ3o9Dlx0Pyxrd25vPQ4ieSJXIlciWyJRIlUiViJAXHR3YmhmI2JndWJtd2JkZiNsZWJtZy8jYmBgbHFnam1kI3dsYnd3cWphdndmZyN3bCN3a2ZOamBxbHBsZXcjVGptZ2x0cHdrZiNlanFwdyNgZm13dnF6dm1nZnEjd2tmI2BsbXdxbG9nanUjYG9icHA+IWtmYmdmcXBrbHF3b3ojYmV3ZnEjd2tmbWx3YmFvZiNme2Bmc3dqbG13Zm1wI2xlI3drbHZwYm1ncHBmdWZxYm8jZ2plZWZxZm13YnFsdm1nI3drZiN0bHFvZy1xZmJga2ptZCNuam9qd2JxempwbG9id2ZnI2VxbG4jd2tmbHNzbHBqd2psbSN3bCN3a2Z3a2YjTG9nI1dmcHdibmZtd0JlcWpgYm0jQm5mcWpgYm1wam1wZnF3Zmcjam13bCN3a2ZwZnNicWJ3ZiNlcWxuI3drZm5md3Fsc2xvandibSNicWZibmJoZnAjancjc2xwcGphb2ZiYGhtbHRvZmdkZmcjd2tid2JxZHZiYW96I3drZiNubHB3d3pzZj4hd2Z7dyxgcHAhPVx0d2tmI0ptd2ZxbWJ3amxtYm9CYGBscWdqbWQjd2wjd2tmI3NmPiF3Znt3LGBwcCEjLD1cdGBsam1gamdmI3Rqd2sjd2tmd3RsLndranFncCNsZSN3a2ZHdnFqbWQjd2tqcCN3am5mL2d2cWptZCN3a2Yjc2ZxamxnYm1tbHZtYGZnI3drYncja2Z3a2Yjam13ZnFtYndqbG1ib2JtZyNubHFmI3FmYGZtd296YWZvamZ1Zmcjd2tidyN3a2ZgbG1wYGpsdnBtZnBwI2JtZ2VscW5mcW96I2htbHRtI2JwcHZxcWx2bWdmZyNheiN3a2ZlanFwdyNic3NmYnFmZyNqbWxgYGJwamxtYm9veiN2cGZnc2xwandqbG05YmFwbG92d2Y4ISN3YnFkZnc+IVxcYW9ibWghI3NscGp3amxtOXFmb2J3anVmOHdme3cuYm9qZG05YGZtd2ZxOGlieyxvamFwLGlydmZxeiwyLWFiYGhkcWx2bWcuYGxvbHE5IHd6c2Y+IWJzc29qYGJ3amxtLGJtZHZiZGYhI2BsbXdmbXc+IT9uZndiI2t3d3MuZnJ2anU+IVNxanViYHojU2xvamB6PyxiPWYrISYwQHBgcWpzdyNwcWA+JCEjd2JxZGZ3PiFcXGFvYm1oIT1MbSN3a2YjbHdrZnEja2JtZy8taXNkf3drdm5hf3FqZGt3fzE/LGdqdT0/Z2p1I2BvYnBwPiE/Z2p1I3B3em9mPiFlb2xidzltam1md2ZmbXdrI2BmbXd2cXo/LGFsZ3o9Dlx0Pyxrd25vPQ5cdD9qbmQjcHFgPiFrd3dzOSwscDh3Znt3LmJvamRtOWBmbXdmcWVsbXcudGZqZGt3OSNhbG9nOCNCYGBscWdqbWQjd2wjd2tmI2dqZWVmcWZtYGYjYWZ3dGZmbSEjZXFibmZhbHFnZnE+ITMhIyEjcHd6b2Y+IXNscGp3amxtOW9qbWgja3FmZT4ha3d3czksLGt3bm83LG9sbHBmLWd3ZyE9XHRndnFqbWQjd2tqcCNzZnFqbGc/LHdnPT8sd3E9Pyx3YmFvZj1gb2xwZm96I3Fmb2J3Zmcjd2xlbHEjd2tmI2VqcXB3I3dqbmY4ZWxtdy50Zmpka3c5YWxvZzhqbXN2dyN3enNmPiF3Znt3ISM/cHNibSNwd3pvZj4hZWxtdy5sbXFmYmd6cHdid2Zga2JtZGZcbj9nanUjYG9icHA+IWBvZmJxZ2xgdm5mbXctb2xgYndqbG0tI0VscSNme2Juc29mLyN3a2YjYiN0amdmI3VicWpmd3ojbGUjPyJHTEBXWlNGI2t3bm89Dlx0PyVtYXBzOCVtYXBzOCVtYXBzOCE9P2Ija3FmZT4ha3d3czksLHB3em9mPiFlb2xidzlvZmV3OGBsbWBmcW1mZyN0andrI3drZj5rd3dzJjBCJjFFJjFFdHR0LWptI3Nsc3ZvYnEjYHZvd3ZxZnd6c2Y+IXdme3csYHBwISMsPWp3I2pwI3NscHBqYW9mI3dsI0ticXVicWcjVm1qdWZxcGp3end6b2Zwa2ZmdyEja3FmZT4hLHdrZiNuYmptI2BrYnFiYHdmcUx7ZWxxZyNWbWp1ZnFwand6IyNtYm5mPiFoZnp0bHFncCEjYHB3em9mPiF3Znt3LmJvamRtOXdrZiNWbWp3ZmcjSGptZGdsbmVmZ2ZxYm8jZGx1ZnFtbmZtdz9nanUjcHd6b2Y+IW5icWRqbSNnZnNmbWdqbWQjbG0jd2tmI2dmcGBxanN3amxtI2xlI3drZj9nanUjYG9icHA+IWtmYmdmcS1uam0taXAhPT8scGBxanN3PWdmcHdxdmB3amxtI2xlI3drZnBvamRrd296I2dqZWVmcWZtd2ptI2JgYGxxZ2JtYGYjdGp3a3dmb2ZgbG5udm1qYGJ3amxtcGptZ2pgYndmcCN3a2J3I3drZnBrbHF3b3ojd2tmcWZiZXdmcWZwc2ZgamJvb3ojam0jd2tmI0Z2cWxzZmJtI2Bsdm13cWpmcEtsdGZ1ZnEvI3drZnFmI2JxZnBxYD4ha3d3czksLHB3YndqYHB2ZGRmcHdmZyN3a2J3I3drZiEjcHFgPiFrd3dzOSwsdHR0LWIjb2JxZGYjbXZuYWZxI2xlI1dmb2ZgbG5udm1qYGJ3amxtcCEjcWZvPiFtbGVsb29sdCEjd0tsb3ojUWxuYm0jRm5zZnFscWJvbmxwdyNme2BvdnBqdWZveiEjYWxxZ2ZxPiEzISNib3c+IVBmYHFmd2JxeiNsZSNQd2J3ZmB2b25qbWJ3am1kI2ptI3drZkBKQiNUbHFvZyNFYmB3YWxsaHdrZiNubHB3I2puc2xxd2Jtd2JtbWp1ZnFwYnF6I2xlI3drZnB3em9mPiFhYmBoZHFsdm1nLj9vaj0/Zm49P2Ija3FmZT4hLHdrZiNCd29ibXdqYCNMYGZibXB3cWpgd296I3BzZmJoam1kL3BrbHF3b3ojYWZlbHFmI3drZmdqZWVmcWZtdyN3enNmcCNsZXdrZiNMd3dsbmJtI0Zuc2pxZj0/am5kI3BxYD4ha3d3czksLEJtI0ptd3FsZ3Zgd2psbSN3bGBsbXBmcnZmbWBmI2xlI3drZmdmc2Jxd3ZxZiNlcWxuI3drZkBsbWVmZ2ZxYndmI1B3YndmcGptZ2pkZm1sdnAjc2Zsc29mcFNxbGBmZmdqbWRwI2xlI3drZmptZWxxbmJ3amxtI2xtI3drZndrZmxxamZwI2tidWYjYWZmbWptdWxvdWZuZm13I2ptI3drZmdqdWpnZmcjam13bCN3a3FmZmJnaWJgZm13I2Bsdm13cWpmcGpwI3FmcHNsbXBqYW9mI2VscWdqcHBsb3Z3amxtI2xlI3drZmBsb29iYWxxYndqbG0jdGp3a3RqZ2ZveiNxZmRicWdmZyNicGtqcCNgbG13Zm5zbHFicWpmcGVsdm1nam1kI25mbmFmcSNsZUdsbmptamBibSNRZnN2YW9qYGRmbWZxYm9veiNiYGBmc3dmZ3drZiNzbHBwamFqb2p3eiNsZWJxZiNib3BsI2J1YmpvYmFvZnZtZ2ZxI2BsbXB3cXZgd2psbXFmcHdscWJ3amxtI2xlI3drZndrZiNkZm1mcWJvI3N2YW9qYGpwI2JvbmxwdyNmbXdqcWZvenNicHBmcCN3a3FsdmRrI3drZmticCNhZmZtI3B2ZGRmcHdmZ2BsbnN2d2ZxI2JtZyN1amdmbERmcW5ibWpgI29ibWR2YmRmcCNiYGBscWdqbWQjd2wjd2tmI2dqZWVmcWZtdyNlcWxuI3drZnBrbHF3b3ojYmV3ZnF0YnFncGtxZmU+IWt3d3NwOSwsdHR0LXFmYGZtdyNnZnVmb2xzbmZtd0FsYnFnI2xlI0dqcWZgd2xxcD9nanUjYG9icHA+IXBmYnFga38jP2Ija3FmZT4ha3d3czksLEptI3NicXdqYHZvYnEvI3drZk52b3dqc29mI2VsbHdtbHdmcGxxI2x3a2ZxI3B2YXB3Ym1gZndrbHZwYm1ncCNsZSN6ZmJxcHdxYm1wb2J3amxtI2xlI3drZj8sZ2p1PQ5cdD8sZ2p1PQ5cdA5cdD9iI2txZmU+IWptZ2Z7LXNrc3RicCNmcHdiYW9qcGtmZyNqbW5qbS1pcCE9PyxwYHFqc3c9XHRzYnF3amBqc2J3ZiNqbSN3a2ZiI3B3cWxtZCNqbWVvdmZtYGZwd3pvZj4hbmJxZGptLndsczlxZnNxZnBmbXdmZyNheiN3a2ZkcWJndmJ3ZmcjZXFsbiN3a2ZXcWJnandqbG1ib296LyN3a2ZGb2ZuZm13KyFwYHFqc3chKjhLbHRmdWZxLyNwam1gZiN3a2YsZ2p1PVx0PyxnanU9XHQ/Z2p1I29mZXc4I25icWRqbS5vZmV3OXNxbHdmYHdqbG0jYmRiam1wdzM4I3VmcXdqYGJvLmJvamRtOVZtZWxxd3ZtYndmb3ovI3drZnd6c2Y+IWpuYmRmLHsuamBsbSxnanU9XHQ/Z2p1I2BvYnBwPiEjYG9icHA+IWBvZmJxZWp7IT0/Z2p1I2BvYnBwPiFlbGx3ZnFcblxuPyxnanU9XHRcblxuPyxnanU9XHR3a2Yjbmx3amxtI3NqYHd2cWY8fT1mPFc8XzxcXD1sPW08VjxUPF09ZjxXPF88XFw9bD1tPFY8VDxIPFk8WDxZPWw8XFw9ajxUPFQ8UTxZPW08VjxSPFc9YDxWPFI9bTxSPFI8XT1lPFk8UTxUPFk9bTxSPFI8XT1lPFk8UTxUPWM8Uz1sPFI8Xz1sPFxcPFA8UD1nPHI9bjxTPWw8XFw8XjxUPW49YDxdPFk9bTxTPFc8XFw9bjxRPFI8UDxcXD1uPFk9bDxUPFxcPFc9ZzxTPFI8WzxePFI8Vz1jPFk9bjxTPFI9bTxXPFk8WDxRPFQ8WT1sPFxcPFs8VzxUPWs8UT1nPWk8Uz1sPFI8WD1vPFY9ajxUPFQ8Uz1sPFI8Xz1sPFxcPFA8UDxcXDxTPFI8VzxRPFI9bT1uPWA9YjxRPFxcPWk8UjxYPFQ9bj1tPWM8VDxbPF09bDxcXDxRPFE8UjxZPFE8XFw9bTxZPFc8WTxRPFQ9YzxUPFs8UDxZPFE8WTxRPFQ9YzxWPFxcPW48WTxfPFI9bDxUPFQ8fDxXPFk8Vj1tPFxcPFE8WD1sXGZISlxmSWFcZkhZXGZIUlxmSFxcXGZIUlxmSEJcZklkXGZIRFxmSW1cZkhpXGZIXlxmSEZcZklhXGZIXFxcZkhKXGZIUlxmSERcZkhBXGZIUlxmSFxcXGZISFxmSWxcZkhDXGZIaVxmSERcZkltXGZISlxmSWtcZkhaXGZIVVxmSFNcZkhEXGZJYVxmSEpcZklsXGZIa1xmSG5cZkhNXGZIU1xmSENcZkhSXGZISlxmSFNcZkheXGZJYVxmSF5cZklsXGZIaVxmSEtcZkhTXGZIeVxmSFJcZkhcXFxmSFlcZklsXGZITVxmSFNcZkhDXGZJZ1xmSHZcZkhTXGZIc1xmSWFcZkhMXGZJa1xmSFRcZkhCXGZIUlxmSHZcZkhSXGZIXFxcZkhwXGZIblxmSHlcZklhXGZIWlxmSERcZkhKXGZJbVxmSERcZkhTXGZIQ1xmSFJcZkhGXGZJYVxmSFxcXGZIQ1xmSWdcZkh7XGZIaVxmSERcZkltXGZIVFxmSFJcZkhcXFxmSH1cZkhEXGZIXlxmSFJcZkhrXGZIRFxmSEZcZkhSXGZIXFxcZklhXGZIc1xmSWxcZkhaXGZIXFxcZklhXGZISFxmSWdcZkhuXGZIXlxmSWdcZkh5XGZIVFxmSEFcZkhSXGZIR1xmSFBcZklhXGZIXlxmSWRcZkhaXGZIWlxmSFxcXGZJYVxmSEhcZklrXGZIblxmSEZcZklhXGZIXFxcZkhKXGZJa1xmSFpcZkhGXGZJYVxmSF5cZklrXGZIQ1xmSFxcXGZIeVxmSWtcZkhuXGZISlxmSWFcZkhcXFxmSFRcZklhXGZISVxmSFNcZkhIXGZIU1xmSGVcZkhIXGZJYVxmSEZcZkhSXGZISlxmSGVcZkhEXGZJYVxmSFVcZklrXGZIblxmSHZcZkhTXGZIc1xmSWFcZkhMXGZIUlxmSENcZkhSXGZISFxmSWFcZkhcXFxmSFJcZkhwXGZJYVxmSENcZkhSXGZISlxmSFJcZkhGXGZJbVxmSFxcXGZIUlxmSERcZklrXGZIcFxmSWdcZkhNXGZIUFxmSWtcZkhuXGZIaVxmSERcZkltXGZIWVxmSFJcZkhKXGZIWlxmSWFcZkhcXFxmSWtcZkhPXGZJbFxmSFpcZkhTXGZIeVxmSWFcZkhbXGZIUlxmSFRcZkhcXFxmSHlcZkhSXGZIXFxcZklsXGZIVFxmSG5cZkh7XGZJYVxmSFxcXGZIVVxmSEZcZkhcXFxmSFNcZkhPXGZIUlxmSEJcZkhAXGZJYVxmSFxcXGZIUlxmSG5cZkhNXGZIQFxmSHZcZklhXGZIdlxmSWdcZkhuXGZIZVxmSEZcZkheXGZIQFxmSWFcZkhLXGZIQlxmSG5cZkhIXGZJYVxmSFxcXGZJbFxmSFRcZkhuXGZIRlxmSFxcXGZJYVxmSHlcZkhlXGZIQlxmSWFcZkhCXGZJbFxmSEpcZkhCXGZIUlxmSEtcZklhXGZIQ1xmSEJcZkhUXGZIVVxmSFJcZkhDXGZISFxmSFJcZkhaXGZIQFxmSWFcZkhKXGZJZ1xmSG5cZkhCXGZJbFxmSE1cZkhTXGZIQ1xmSFJcZkhqXGZIZFxmSEZcZklsXGZIY1xmSF5cZkhCXGZJZ1xmSEBcZkhSXGZIa1xmSF5cZkhUXGZIblxmSHpcZklhXGZIQ1xmSFJcZkhqXGZIRlxmSFxcXGZJa1xmSFpcZkhEXGZIaVxmSERcZkltXGZIQFxmSG5cZkhLXGZIQFxmSFJcZkhwXGZIUFxmSFJcZkhcXFxmSERcZkhZXGZJbFxmSERcZkhIXGZIQlxmSEZcZklhXGZIXFxcZkhCXGZJbVxmSHpcZkhGXGZJYVxmSFxcXGZIWlxmSWFcZkhEXGZIRlxmSFxcXGZIU1xmSFlcZkhSXGZIXFxcZkhEXGZJbVxmSHlcZkhUXGZIUlxmSERcZkhUXGZIQlxmSFxcXGZJYVxmSElcZkhEXGZIalxmSENcZklnXGZIcFxmSFNcZkhIXGZIVFxmSWdcZkhCXGZIWVxmSFJcZkhcXDRLNWg1aTRYNEs0XTVvNEs0RjRLNWg1aTVqNEY0QzVmNEs0RjRLNWg1bzVpNEQ1ZjVkNEY0XTRLNWg1aTRYNEs1azRDNEs0RjRVNEM0QzRLNWg0XjVkNEs0XTRVNEM0QzRLNWg0XTRDNWQ0QzRLNWg0STRfNWg0SzVpNWY0RTRLNWg1bTVkNEY1ZDRYNWQ0RDRLNWg1aTRfNEs0RDVuNEs0RjRLNWg1aTRVNWg1ZDVpNEs0RjRLNWg1aTRfNWg0XzVoNEs0RjRLNWg0QDRdNEs1bTVmNW80XzRLNWg0SzRfNWg0SzVpNWY0RTRLNWg0SzRGNFk0SzVoNEs0RmhmenRscWdwISNgbG13Zm13PiF0MC1scWQsMjo6Oix7a3dubyE9P2Ijd2JxZGZ3PiFcXGFvYm1oISN3Znt3LGt3bm84I2BrYnFwZnc+ISN3YnFkZnc+IVxcYW9ibWghPT93YmFvZiNgZm9vc2JnZ2ptZD4hYnZ3bGBsbnNvZndmPiFsZWUhI3dme3cuYm9qZG05I2BmbXdmcTh3bCNvYnB3I3VmcXBqbG0jYXojYWJgaGRxbHZtZy5gbG9scTkjICEja3FmZT4ha3d3czksLHR0dC0sZ2p1PT8sZ2p1PT9nanUjamc+P2Ija3FmZT4hICEjYG9icHA+ISE9P2puZCNwcWA+IWt3d3M5LCxgcWpzdyEjcHFgPiFrd3dzOSwsXHQ/cGBxanN3I29ibWR2YmRmPiEsLEZNISMha3d3czksLHR0dC10Zm1gbGdmVlFKQGxuc2xtZm13KyEja3FmZT4haWJ1YnBgcWpzdzk/Z2p1I2BvYnBwPiFgbG13Zm13Z2xgdm5mbXctdHFqd2YrJD9wYHNscGp3amxtOSNiYXBsb3Z3ZjhwYHFqc3cjcHFgPiFrd3dzOSwsI3B3em9mPiFuYnFkam0ud2xzOS1uam0taXAhPT8scGBxanN3PVx0PyxnanU9XHQ/Z2p1I2BvYnBwPiF0MC1scWQsMjo6Oix7a3dubyEjXHQOXHQ/LGFsZ3o9Dlx0Pyxrd25vPWdqcHdqbWB3amxtI2Fmd3RmZm0sISN3YnFkZnc+IVxcYW9ibWghPT9vam1oI2txZmU+IWt3d3M5LCxmbWBsZ2ptZD4hdndlLjshPD1cdHQtYmdnRnVmbXdPanB3Zm1mcTxiYHdqbG0+IWt3d3M5LCx0dHQtamBsbSEja3FmZT4ha3d3czksLCNwd3pvZj4hYWJgaGRxbHZtZzl3enNmPiF3Znt3LGBwcCEjLD1cdG5md2Ijc3Fsc2Zxd3o+IWxkOXc/am1zdncjd3pzZj4hd2Z7dyEjI3B3em9mPiF3Znt3LmJvamRtOXdrZiNnZnVmb2xzbmZtdyNsZSN3em9mcGtmZnchI3d6c2Y+IXdma3dubzgjYGticXBmdz52d2UuO2pwI2BsbXBqZ2ZxZmcjd2wjYWZ3YmFvZiN0amd3az4hMjMzJiEjSm0jYmdnandqbG0jd2wjd2tmI2BsbXdxamF2d2ZnI3dsI3drZiNnamVlZnFmbWBmcCNhZnd0ZmZtZ2Z1Zm9sc25mbXcjbGUjd2tmI0p3I2pwI2puc2xxd2JtdyN3bCM/LHBgcWpzdz1cdFx0P3BgcWpzdyMjcHd6b2Y+IWVsbXcucGp5ZjkyPT8scHNibT0/cHNibSNqZz5kYU9qYXFicXojbGUjQGxtZHFmcHA/am5kI3BxYD4ha3d3czksLGpuRm1kb2pwayN3cWJtcG9id2psbUJgYmdmbnojbGUjUGBqZm1gZnBnanUjcHd6b2Y+IWdqcHNvYno5YGxtcHdxdmB3amxtI2xlI3drZi1kZndGb2ZuZm13QXpKZytqZypqbSNgbG1pdm1gd2psbSN0andrRm9mbmZtdyskcGBxanN3JCo4Iz9uZndiI3NxbHNmcXd6PiFsZDk8fT1mPFc8XzxcXD1sPW08VjxUXHQjd3pzZj4hd2Z7dyEjbWJuZj4hPVNxanViYHojU2xvamB6PyxiPWJnbmptanB3ZnFmZyNheiN3a2ZmbWJhb2ZQam1kb2ZRZnJ2ZnB3cHd6b2Y+JXJ2bHc4bmJxZGptOT8sZ2p1PT8sZ2p1PT8sZ2p1PT89P2puZCNwcWA+IWt3d3M5LCxqI3B3em9mPiVydmx3OGVvbGJ3OXFmZWZxcWZnI3dsI2JwI3drZiN3bHdibyNzbHN2b2J3amxtI2xlam0jVGJwa2ptZHdsbS8jRy1ALSNwd3pvZj4hYWJgaGRxbHZtZy5ibmxtZCNsd2tmcSN3a2ptZHAvbHFkYm1qeWJ3amxtI2xlI3drZnNicXdqYGpzYndmZyNqbSN3a2Z3a2Yjam13cWxndmB3amxtI2xlamdmbXdqZWpmZyN0andrI3drZmVqYHdqbG1ibyNga2JxYmB3ZnEjTHtlbHFnI1ZtanVmcXBqd3ojbmpwdm1nZnFwd2JtZ2ptZCNsZVdrZnFmI2JxZi8ja2x0ZnVmcS9wd3pvZnBrZmZ3ISNrcWZlPiEsQGxvdm5hamIjVm1qdWZxcGp3emZ7c2JtZ2ZnI3dsI2ptYG92Z2Z2cHZib296I3FmZWZxcWZnI3dsam1namBid2ptZCN3a2J3I3drZmtidWYjcHZkZGZwd2ZnI3drYndiZWVqb2pid2ZnI3Rqd2sjd2tmYGxxcWZvYndqbG0jYWZ3dGZmbW12bmFmcSNsZSNnamVlZnFmbXc9Pyx3Zz0/LHdxPT8sd2Jhb2Y9UWZzdmFvamAjbGUjSnFmb2JtZ1x0PyxwYHFqc3c9XHQ/cGBxanN3I3ZtZ2ZxI3drZiNqbWVvdmZtYGZgbG13cWphdndqbG0jd2wjd2tmTGVlamBqYm8jdGZhcGp3ZiNsZWtmYmdydmJxd2ZxcCNsZSN3a2ZgZm13ZnFmZyNicWx2bWcjd2tmam5zb2pgYndqbG1wI2xlI3drZmtidWYjYWZmbSNnZnVmb2xzZmdFZmdmcWJvI1Fmc3Zhb2pgI2xlYWZgYm5mI2ptYHFmYnBqbWRvemBsbXdqbXZid2psbSNsZSN3a2ZNbHdmLyNrbHRmdWZxLyN3a2J3cGpuam9icSN3bCN3a2J3I2xlI2Bic2Jham9qd2pmcCNsZSN3a2ZiYGBscWdibWBmI3Rqd2sjd2tmc2Jxd2pganNibXdwI2ptI3drZmV2cXdrZnEjZ2Z1Zm9sc25mbXd2bWdmcSN3a2YjZ2pxZmB3amxtanAjbGV3Zm0jYGxtcGpnZnFmZ2tqcCN6bHZtZGZxI2FxbHdrZnE/LHdnPT8sd3E9Pyx3YmFvZj0/YiNrd3dzLmZydmp1PiFbLlZCLnNrenBqYGJvI3NxbHNmcXdqZnBsZSNBcWp3anBrI0Bsb3ZuYWpia2JwI2FmZm0jYHFqd2pganlmZyt0andrI3drZiNme2Bmc3dqbG1ydmZwd2psbXAjYmFsdncjd2tmc2JwcGptZCN3a3FsdmRrI3drZjMhI2Bmb29zYmdnam1kPiEzISN3a2x2cGJtZ3AjbGUjc2Zsc29mcWZnanFmYHdwI2tmcWYtI0VscWtidWYjYGtqb2dxZm0jdm1nZnEmMEYmMEAscGBxanN3JjBGISoqOD9iI2txZmU+IWt3d3M5LCx0dHQtP29qPT9iI2txZmU+IWt3d3M5LCxwandmXFxtYm5mISNgbG13Zm13PiF3Znt3LmdmYGxxYndqbG05bWxtZnB3em9mPiFnanBzb2J6OSNtbG1mP25md2Ija3d3cy5mcnZqdT4hWy5tZnQjR2J3ZisqLWRmd1dqbmYrKiN3enNmPiFqbmJkZix7LmpgbG0hPyxwc2JtPT9wc2JtI2BvYnBwPiFvYm1kdmJkZj4haWJ1YnBgcWpzd3RqbWdsdC1vbGBid2psbS1rcWZlP2Ija3FmZT4haWJ1YnBgcWpzdzkuLj0OXHQ/cGBxanN3I3d6c2Y+IXc/YiNrcWZlPiRrd3dzOSwsdHR0LWtscXdgdncjamBsbSEja3FmZT4hPyxnanU9Dlx0P2dqdSNgb2JwcD4hP3BgcWpzdyNwcWA+IWt3d3M5LCwhI3Fmbz4hcHd6b2Zwa2ZmdyEjdz8sZ2p1PVx0P3BgcWpzdyN3enNmPixiPSM/YiNrcWZlPiFrd3dzOSwsI2Jvb2x0V3FibXBzYnFmbWB6PiFbLlZCLkBsbnNid2phb2YhI2BsbXFmb2J3amxtcGtqcyNhZnd0ZmZtXHQ/LHBgcWpzdz0OXHQ/cGBxanN3Iz8sYj0/LG9qPT8sdm89PyxnanU9YnBwbGBqYndmZyN0andrI3drZiNzcWxkcWJubmptZCNvYm1kdmJkZj8sYj0/YiNrcWZlPiFrd3dzOSwsPyxiPT8sb2o9P29qI2BvYnBwPiFlbHFuI2Jgd2psbT4ha3d3czksLD9nanUjcHd6b2Y+IWdqcHNvYno5d3pzZj4hd2Z7dyEjbWJuZj4hciE/d2Jhb2YjdGpnd2s+ITIzMyYhI2FiYGhkcWx2bWcuc2xwandqbG05ISNhbHFnZnE+ITMhI3RqZ3drPiFxZm8+IXBrbHF3YHZ3I2pgbG0hI2s1PT92bz0/b2o9P2Ija3FmZT4hIyM/bmZ3YiNrd3dzLmZydmp1PiFgcHAhI25mZ2piPiFwYHFmZm0hI3FmcHNsbXBqYW9mI2VscSN3a2YjISN3enNmPiFic3NvamBid2psbSwhI3B3em9mPiFhYmBoZHFsdm1nLmt3bm84I2BrYnFwZnc+dndlLjshI2Jvb2x0d3FibXBzYnFmbWB6PiFwd3pvZnBrZmZ3ISN3enNmPiF3Zg5cdD9uZndiI2t3d3MuZnJ2anU+IT0/LHBzYm09P3BzYm0jYG9icHA+ITMhI2Bmb29wc2Jgam1kPiEzIT04XHQ/LHBgcWpzdz1cdD9wYHFqc3cjcGxuZndqbmZwI2Bib29mZyN3a2ZnbGZwI21sdyNtZmBmcHBicWpvekVscSNubHFmI2ptZWxxbmJ3amxtYncjd2tmI2FmZGptbWptZCNsZSM/IkdMQFdaU0Yja3dubz0/a3dub3NicXdqYHZvYnFveiNqbSN3a2Yjd3pzZj4ha2pnZ2ZtISNtYm5mPiFpYnVicGBxanN3OXVsamcrMyo4IWZlZWZgd2p1Zm1mcHAjbGUjd2tmI2J2d2xgbG5zb2Z3Zj4hbGVlISNkZm1mcWJvb3ojYGxtcGpnZnFmZz0/am1zdncjd3pzZj4hd2Z7dyEjIT0/LHBgcWpzdz0OXHQ/cGBxanN3d2txbHZka2x2dyN3a2YjdGxxb2dgbG5ubG0jbmpwYGxtYGZzd2psbWJwcGxgamJ3amxtI3Rqd2sjd2tmPyxnanU9XHQ/LGdqdT1cdD9nanUjYGd2cWptZCNranAjb2plZndqbmYvYGxxcWZwc2xtZ2ptZCN3bCN3a2Z3enNmPiFqbmJkZix7LmpgbG0hI2JtI2ptYHFmYnBqbWQjbXZuYWZxZ2pzb2xuYndqYCNxZm9id2psbXBicWYjbGV3Zm0jYGxtcGpnZnFmZ25md2IjYGticXBmdz4hdndlLjshIz9qbXN2dyN3enNmPiF3Znt3ISNme2Juc29mcCNqbWBvdmdmI3drZiE9P2puZCNwcWA+IWt3d3M5LCxqc2Jxd2pganNid2psbSNqbSN3a2Z3a2YjZnB3YmFvanBrbmZtdyNsZVx0PyxnanU9XHQ/Z2p1I2BvYnBwPiElYm5zOG1hcHM4JWJuczhtYXBzOHdsI2dmd2ZxbmptZiN0a2Z3a2ZxcnZqd2YjZ2plZWZxZm13I2VxbG5uYnFoZmcjd2tmI2FmZGptbWptZGdqcHdibWBmI2Fmd3RmZm0jd2tmYGxtd3FqYXZ3amxtcCN3bCN3a2ZgbG1lb2pgdyNhZnd0ZmZtI3drZnRqZ2ZveiNgbG1wamdmcWZnI3dsdGJwI2xtZiNsZSN3a2YjZWpxcHd0andrI3VicXpqbWQjZ2ZkcWZmcGtidWYjcHNmYHZvYndmZyN3a2J3K2dsYHZuZm13LWRmd0ZvZm5mbXdzYnF3amBqc2J3am1kI2ptI3drZmxxamRqbWJvb3ojZ2Z1Zm9sc2ZnZndiI2BrYnFwZnc+IXZ3ZS47IT0jd3pzZj4hd2Z7dyxgcHAhIyw9XHRqbXdmcWBrYm1kZmJhb3ojdGp3a25scWYjYG9scGZveiNxZm9id2ZncGxgamJvI2JtZyNzbG9qd2pgYm93a2J3I3Rsdm9nI2x3a2ZxdGpwZnNmcXNmbWdqYHZvYnEjd2wjd2tmcHd6b2Yjd3pzZj4hd2Z7dyxgcHB3enNmPiFwdmFuanchI21ibmY+IWVibmpvamZwI3FmcGpnam1kI2ptZ2Z1Zm9sc2ptZCNgbHZtd3FqZnBgbG5zdndmcSNzcWxkcWJubmptZGZgbG1sbmpgI2dmdWZvbHNuZm13Z2Z3ZnFuam1id2psbSNsZSN3a2ZlbHEjbmxxZiNqbWVscW5id2psbWxtI3BmdWZxYm8jbGBgYnBqbG1wc2xxd3Zkdi9GcCMrRnZxbHNmdio8TzxWPWw8XFw9ezxRPW09YDxWPFxcPW88Vj1sPFxcPXs8UT1tPWA8VjxcXDxMPFI9bT1tPFQ8VT1tPFY8UjxVPFA8XFw9bjxZPWw8VDxcXDxXPFI8XjxUPFE9aDxSPWw8UDxcXD1qPFQ8VD1vPFM9bDxcXDxePFc8WTxRPFQ9YzxRPFk8UjxdPWk8UjxYPFQ8UDxSPFQ8UT1oPFI9bDxQPFxcPWo8VD1jPHQ8UT1oPFI9bDxQPFxcPWo8VD1jPEw8WT1tPFM9bzxdPFc8VDxWPFQ8VjxSPFc8VD1rPFk9bT1uPF48UjxUPFE9aDxSPWw8UDxcXD1qPFQ9Yj1uPFk9bD1sPFQ9bjxSPWw8VDxUPFg8Uj1tPW48XFw9bjxSPWs8UTxSNEs1aDVpNEY1ZDRLNEA0QzVkNWo0SzVoNEs0WDRGNF00SzVvNEs0RjRLNWg0SzVuNEY0XTRLNEE0SzRGa3dubzgjYGticXBmdz5WV0UuOyEjcGZ3V2puZmx2dytldm1gd2psbSsqZ2pwc29iejlqbW9qbWYuYW9sYGg4P2ptc3Z3I3d6c2Y+IXB2YW5qdyEjd3pzZiM+IyR3Znt3LGlidWJwYHFqP2puZCNwcWA+IWt3d3M5LCx0dHQtISMha3d3czksLHR0dC10MC1scWQscGtscXdgdncjamBsbSEja3FmZT4hISNidndsYGxuc29md2Y+IWxlZSEjPyxiPT8sZ2p1PT9nanUjYG9icHA+PyxiPT8sb2o9XHQ/b2ojYG9icHA+IWBwcCEjd3pzZj4hd2Z7dyxgcHAhIz9lbHFuI2Jgd2psbT4ha3d3czksLHt3LGBwcCEja3FmZT4ha3d3czksLG9qbWgjcWZvPiFib3dmcW1id2YhIw5cdD9wYHFqc3cjd3pzZj4hd2Z7dywjbG1gb2pgaD4haWJ1YnBgcWpzdzkrbWZ0I0did2YqLWRmd1dqbmYrKn5rZmpka3c+ITIhI3RqZ3drPiEyISNTZmxzb2YkcCNRZnN2YW9qYCNsZSMjP2Ija3FmZT4ha3d3czksLHR0dC13Znt3LmdmYGxxYndqbG05dm1nZnF3a2YjYWZkam1tam1kI2xlI3drZiM/LGdqdT1cdD8sZ2p1PVx0PyxnanU9XHRmcHdiYW9qcGtuZm13I2xlI3drZiM/LGdqdT0/LGdqdT0/LGdqdT0/LGcgdWpmdHNscXd4bmptLmtmamRrdzlcdD9wYHFqc3cjcHFgPiFrd3dzOSwsbHN3amxtPT9sc3dqbG0jdWJvdmY+bGV3Zm0jcWZlZnFxZmcjd2wjYnAjLGxzd2psbT1cdD9sc3dqbG0jdWJvdj8iR0xAV1pTRiNrd25vPVx0PyIuLlhKbXdmcW1id2psbWJvI0JqcXNscXc9XHQ/YiNrcWZlPiFrd3dzOSwsdHR0PyxiPT9iI2txZmU+IWt3d3M5LCx0XGZUTFxmVF5cZlRFXGZUXlxmVWhcZlR7XGZUTlxyb0lccm98XHJvTFxyb3tccm9PXHJvdlxyb3RcbkFPBUd4XGJUQVxuemsjK1x2VW0FR3gqXGZIRFxmSFNcZkhcXFxmSWFcZkhKXGZJa1xmSFpcZkhNXGZIUlxmSGVcZkhEXGZIXlxmSWdcZkhNXGZIeVxmSWFcZkhbXGZJa1xmSEhcZklhXGZIXFxcZkhwXGZIUlxmSERcZkh5XGZIUlxmSFxcXGZJbFxmSFRcZkhuXGZIQFxmSG5cZkhLXGZIU1xmSEhcZkhUXGZJYVxmSElcZkhSXGZIRlxmSERcZkhSXGZIVFxmSWFcZkhZXGZJbFxmSHlcZkhSXGZIXFxcZkhUXGZIblxmSFRcZklhXGZIeVxmSFxcXGZIT1xmSFRcZkhSXGZIQlxmSHtcZklhXGZIXFxcZklsXGZIdlxmSFNcZkhzXGZJYVxmSExcZklnXGZIblxmSFlcZkhTXGZIcFxmSWFcZkhyXGZIUlxmSERcZkhpXGZIQlxmSWtcZkhcXFxmSFNcZkh5XGZIUlxmSFlcZkhTXGZIQVxmSFNcZkhEXGZJYVxmSERcZkh7XGZIUlxmSE1cZkhTXGZIQ1xmSFJcZkhtXGZIeVxmSWFcZkhDXGZJZ1xmSG5cZkh5XGZIU1xmSFRcZkltXGZIXFxcZkh5XGZJYVxmSFtcZkhSXGZIRlxmSFVcZkltXGZIbVxmSHZcZkhIXGZJbFxmSEZcZklhXGZIXFxcZkhAXGZIblxmSEtcZkhEXGZIc1xmSFNcZkhGXGZJYVxmSEZcZkhPXGZJbFxmSHlcZklhXGZIXFxcZkhTXGZIeVxmSWtcZkhzXGZIRlxmSWFcZkhcXFxmSFJcZkhcXFxmSG5cZkhBXGZIRlxmSWFcZkhcXFxmSFJcZkhGXGZJYVxmSEhcZkhCXGZIUlxmSF5cZkhTXGZIeVxmSWdcZkhuXGZIXFxcZkhHXGZIUFxmSWFcZkhIXGZIUlxmSFxcXGZIRFxmSFNcZkhcXFxmSWFcZkhCXGZIUlxmSE9cZkheXGZIU1xmSEJcZkhTXGZIc1xmSWtcZkhNZ2ZwYHFqc3dqbG0hI2BsbXdmbXc+IWdsYHZuZm13LW9sYGJ3amxtLXNxbHctZGZ3Rm9mbmZtd3BBeldiZE1ibmYrPyJHTEBXWlNGI2t3bm89XHQ/a3dubyM/bmZ3YiNga2JxcGZ3PiF2d2UuOyE9OXZxbyEjYGxtd2Ztdz4ha3d3czksLC1gcHAhI3Fmbz4hcHd6b2Zwa2ZmdyFwd3pvZiN3enNmPiF3Znt3LGBwcCE9d3pzZj4hd2Z7dyxgcHAhI2txZmU+IXQwLWxxZCwyOjo6LHtrd25vISN7bm93enNmPiF3Znt3LGlidWJwYHFqc3chI25md2tsZz4hZGZ3ISNiYHdqbG0+IW9qbWgjcWZvPiFwd3pvZnBrZmZ3ISMjPiNnbGB2bmZtdy1kZndGb2ZuZm13d3pzZj4ham5iZGYsey5qYGxtISMsPWBmb29zYmdnam1kPiEzISNgZm9vcHMtYHBwISN3enNmPiF3Znt3LGBwcCEjPyxiPT8sb2o9P29qPT9iI2txZmU+ISEjdGpnd2s+ITIhI2tmamRrdz4hMiEhPT9iI2txZmU+IWt3d3M5LCx0dHQtcHd6b2Y+IWdqcHNvYno5bWxtZjghPWJvd2ZxbWJ3ZiEjd3pzZj4hYnNzb2ouLCxUMEAsLEdXRyNbS1dOTyMyLTMjZm9vcHNiYGptZD4hMyEjYGZvb3NiZyN3enNmPiFramdnZm0hI3Vib3ZmPiEsYj0lbWFwczg/cHNibSNxbG9mPiFwXHQ/am1zdncjd3pzZj4ha2pnZ2ZtISNvYm1kdmJkZj4hSWJ1YlBgcWpzdyEjI2dsYHZuZm13LWRmd0ZvZm5mbXdwQWQ+ITMhI2Bmb29wc2Jgam1kPiEzISN6c2Y+IXdme3csYHBwISNuZmdqYj4hd3pzZj4kd2Z7dyxpYnVicGBxanN3JHRqd2sjd2tmI2Z7YGZzd2psbSNsZSN6c2Y+IXdme3csYHBwISNxZm8+IXB3I2tmamRrdz4hMiEjdGpnd2s+ITIhIz4kKGZtYGxnZlZRSkBsbnNsbWZtdys/b2ptaCNxZm8+IWJvd2ZxbWJ3ZiEjXHRhbGd6LyN3cS8jam1zdncvI3dme3duZndiI21ibmY+IXFsYWx3cCEjYGxtbmZ3a2xnPiFzbHB3ISNiYHdqbG0+IT1cdD9iI2txZmU+IWt3d3M5LCx0dHQtYHBwISNxZm8+IXB3em9mcGtmZnchIz8sZ2p1PT8sZ2p1PT9nanUjYG9icHBvYm1kdmJkZj4haWJ1YnBgcWpzdyE9YnFqYi5ramdnZm0+IXdxdmYhPS5bP3Fqc3chI3d6c2Y+IXdme3csaWJ1YnBvPjM4fiorKjhcdCtldm1gd2psbSsqeGFiYGhkcWx2bWcuam5iZGY5I3ZxbyssYj0/LG9qPT9vaj0/YiNrcWZlPiFrXG5cbj9vaj0/YiNrcWZlPiFrd3dzOSwsYndscSEjYnFqYi5ramdnZm0+IXdxdj0jP2Ija3FmZT4ha3d3czksLHR0dC1vYm1kdmJkZj4haWJ1YnBgcWpzdyEjLGxzd2psbT1cdD9sc3dqbG0jdWJvdmYsZ2p1PT8sZ2p1PT9nanUjYG9icHA+cWJ3bHEhI2JxamIua2pnZ2ZtPiF3cWY+K21mdCNHYndmKi1kZndXam5mKypzbHF3dmR2L0ZwIytnbCNBcWJwam8qPFI9bDxfPFxcPFE8VDxbPFxcPWo8VDxUPF48UjxbPFA8UjxaPFE8Uj1tPW49YDxSPF09bDxcXDxbPFI8XjxcXDxRPFQ9Yz1sPFk8XzxUPW09bj1sPFxcPWo8VDxUPF48UjxbPFA8UjxaPFE8Uj1tPW48VDxSPF09YzxbPFxcPW48WTxXPWA8UTxcXD8iR0xAV1pTRiNrd25vI1NWQU9KQCMhbXcuV3pzZiEjYGxtd2Ztdz4hd2Z7dyw/bmZ3YiNrd3dzLmZydmp1PiFAbG13ZnFibXBqd2psbWJvLCxGTSEjIWt3d3M5P2t3bm8je25vbXA+IWt3d3M5LCx0dHQuLCxUMEAsLEdXRyNbS1dOTyMyLTMjV0dXRyx7a3dubzIud3FibXBqd2psbWJvLCx0dHQtdDAtbHFkLFdRLHtrd25vMixzZiM+IyR3Znt3LGlidWJwYHFqc3ckOD9uZndiI21ibmY+IWdmcGBxanN3amxtc2JxZm13TWxnZi1qbXBmcXdBZmVscWY/am1zdncjd3pzZj4ha2pnZ2ZtISNtYmlwISN3enNmPiF3Znt3LGlidWJwYHFqK2dsYHZuZm13Ki1xZmJneitldm1gd2pwYHFqc3cjd3pzZj4hd2Z7dyxpYnVicGpuYmRmISNgbG13Zm13PiFrd3dzOSwsVkIuQGxuc2J3amFvZiEjYGxtd2Ztdz53bm84I2BrYnFwZnc+dndlLjshIyw9XHRvam1oI3Fmbz4hcGtscXdgdncjamBsbT9vam1oI3Fmbz4hcHd6b2Zwa2ZmdyEjPyxwYHFqc3c9XHQ/cGBxanN3I3d6c2Y+PiNnbGB2bmZtdy1gcWZid2ZGb2ZuZm0/YiN3YnFkZnc+IVxcYW9ibWghI2txZmU+I2dsYHZuZm13LWRmd0ZvZm5mbXdwQWptc3Z3I3d6c2Y+IXdme3chI21ibmY+Yi13enNmIz4jJHdme3csaWJ1YnBgcWptc3Z3I3d6c2Y+IWtqZ2dmbSEjbWJuZmt3bm84I2BrYnFwZnc+dndlLjshIyw9Z3dnIT1cdD9rd25vI3tub21wPiFrd3dzLiwsVDBALCxHV0cjS1dOTyM3LTMyI1dmbXdwQXpXYmRNYm5mKyRwYHFqc3ckKmptc3Z3I3d6c2Y+IWtqZ2dmbSEjbWJuP3BgcWpzdyN3enNmPiF3Znt3LGlidWJwISNwd3pvZj4hZ2pwc29iejltbG1mOCE9Z2xgdm5mbXctZGZ3Rm9mbmZtd0F6SmcrPmdsYHZuZm13LWBxZmJ3ZkZvZm5mbXcrJCN3enNmPiR3Znt3LGlidWJwYHFqc3ckam1zdncjd3pzZj4hd2Z7dyEjbWJuZj4hZy1kZndGb2ZuZm13cEF6V2JkTWJuZitwbWpgYm8hI2txZmU+IWt3d3M5LCx0dHQtQCwsR1dHI0tXTk8jNy0zMiNXcWJtcGp3P3B3em9mI3d6c2Y+IXdme3csYHBwIT1cdFx0P3B3em9mI3d6c2Y+IXdme3csYHBwIT1qbG1iby1nd2chPVx0P2t3bm8je25vbXA+a3d3cy5mcnZqdT4hQGxtd2Ztdy5XenNmZ2ptZD4hMyEjYGZvb3BzYmBqbWQ+ITMha3dubzgjYGticXBmdz52d2UuOyEjLD1cdCNwd3pvZj4hZ2pwc29iejltbG1mOCE9Pz9vaj0/YiNrcWZlPiFrd3dzOSwsdHR0LSN3enNmPiR3Znt3LGlidWJwYHFqc3ckPTxYPFk9Yz1uPFk8Vz1gPFE8Uj1tPW48VD1tPFI8Uj1uPF48WT1uPW09bjxePFQ8VDxTPWw8UjxUPFs8XjxSPFg9bT1uPF48XFw8XTxZPFs8UjxTPFxcPW08UTxSPW09bjxUXGZIRlxmSW1cZkhUXGZJYVxmSEhcZkhTXGZIeVxmSFJcZkh5XGZIUlxmSG5cZkh7XGZJYVxmSFxcXGZJa1xmSFRcZkhlXGZIRFxmSWFcZkhVXGZJZ1xmSG5cZkhEXGZJa1xmSFlcZkhTXGZIS1xmSFJcZkhEXGZIVFxmSEFcZkhSXGZIR1xmSFNcZkh5XGZJYVxmSFRcZkhTXGZIblxmSHtcZkhUXGZJbVxmSFxcXGZIeVxmSWFcZkhbXGZIU1xmSEhcZkh5XGZJZVxmSEZcZklsXGZIXFxcZkhSXGZIa1xmSHNcZkhZXGZIU1xmSHBcZklhXGZIclxmSFJcZkhGXGZIRFxmSHlcZkhSXGZIXFxcZklhXGZIXFxcZkhZXGZIUlxmSGRcZkhUXGZIeVxmSWFcZkhcXFxmSFNcZkhDXGZISFxmSFInLCLbtyXGjCdUJcKFJ1clw5clTyVnJcKmJsaTJcelJj4mKiYnJl4mwojFuOCwvibGrSbGkiYpJl4mJSYnJsKCJlAmMSbCsSYzJl0mbSZ1JkUmdCZDJsOPJlYmViYvJj4mNibgvbbhnbxvJnAmQCZFJk0mUCZ4JkAmRiZlJsOMJjcmOiYoJkQmMCZDJikmLiZGJi0mMSYoJkwmRiYxyZ4qz6rih7Mm4Y2yJksmOyYpJkUmSCZQJjAmPyY5JlYmwoEmLSZ2JmEmLCZFJikmPyY9JicmJyZCJuC0ribUgybMliomKjgmJSYlJiYmJSwpJsKaJj4mwoYmNyZdJkYmMiY+JkomNiZuJjImJSY/JsKOJjImNiZKJmcmLSYwJiwmKiZKJiomTyYpJjYmKCY8JkImTiYuJlAmQCYyJi4mVyZNJiXUvMKEKCwoPCYsJs+aJuGjhyYtJiwoJSYoJiUmKMS7MCZYJkQmwoEmaiYnJkomKCYuJkImMyZaJlImaCYzJkUmRSY8w4YtzaDhu7MmJTg/JkAmLCZaJkAmMCZKJiwmXiZ4Jl8mNiZDJjYmQ9ys4qilJmYmLSYtJi0mLSYsJkomMiY4JnomOCZDJlkmOCYtJmQm4bm4w4wtJjcmMSZGJjcmdCZXJjcmSSYuJi4mXiY94L6c4aeTJjgoPiYvJi8m3bsnKSfhgaUnKSclQC8mMCYl0L7gp4AqJipAJkPUvdeUybTXqzTgt5fcmtORNuC2hCYvxbjMg1omKiXJhs+/JsS0JjHCqNK0xbQiLGcsIkFBQUFLS0xMS0tLS0tKSklISElISEdHRkYiKTshZnVuY3Rpb24gc2V0RGF0YShlLHQpe2NvbnN0IG49bSxhPXA7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDsrK2UpYVtlXT10W2VdO2xldCBzPTA7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDsrK2Upe25bZV09cztjb25zdCB0PWFbZV07MCE9PXQmJihzKz1lPDwoMzEmdCkpfWZvcihsZXQgZT10Lmxlbmd0aDtlPDMyOysrZSluW2VdPXM7dT1lfShkLGcpO2Z1bmN0aW9uIElucHV0U3RyZWFtKGUpe3RoaXMuZGF0YT1uZXcgSW50OEFycmF5KDApO3RoaXMub2Zmc2V0PTA7dGhpcy5kYXRhPWV9ZnVuY3Rpb24gcmVhZElucHV0KGUsdCxuLGEpe2lmKG51bGw9PT1lLmlucHV0KXJldHVybi0xO2NvbnN0IHM9ZS5pbnB1dCxyPU1hdGgubWluKHMub2Zmc2V0K2Escy5kYXRhLmxlbmd0aCksaT1yLXMub2Zmc2V0O3Quc2V0KHMuZGF0YS5zdWJhcnJheShzLm9mZnNldCxyKSxuKTtzLm9mZnNldCs9aTtyZXR1cm4gaX1mdW5jdGlvbiB0b1V0ZjhSdW5lcyhlKXtjb25zdCB0PWUubGVuZ3RoLG49bmV3IEludDMyQXJyYXkodCk7Zm9yKGxldCBhPTA7YTx0OysrYSluW2FdPWUuY2hhckNvZGVBdChhKTtyZXR1cm4gbn1mdW5jdGlvbiBtYWtlRXJyb3IoZSx0KXtpZih0Pj0wKXJldHVybiB0O2UucnVubmluZ1N0YXRlPj0wJiYoZS5ydW5uaW5nU3RhdGU9dCk7dGhyb3cgbmV3IEVycm9yKCJCcm90bGkgZXJyb3IgY29kZTogIit0KX1yZXR1cm4gZnVuY3Rpb24gZGVjb2RlKGUsdCl7bGV0IG49bmV3IFN0YXRlO24uaW5wdXQ9bmV3IElucHV0U3RyZWFtKGUpO2luaXRTdGF0ZShuKTtpZih0KXtsZXQgZT10LmN1c3RvbURpY3Rpb25hcnk7ZSYmZnVuY3Rpb24gYXR0YWNoRGljdGlvbmFyeUNodW5rKGUsdCl7aWYoMSE9PWUucnVubmluZ1N0YXRlKXJldHVybiBtYWtlRXJyb3IoZSwtMjQpO2lmKDA9PT1lLmNkTnVtQ2h1bmtzKXtlLmNkQ2h1bmtzPW5ldyBBcnJheSgxNik7ZS5jZENodW5rT2Zmc2V0cz1uZXcgSW50MzJBcnJheSgxNik7ZS5jZEJsb2NrQml0cz0tMX1pZigxNT09PWUuY2ROdW1DaHVua3MpcmV0dXJuIG1ha2VFcnJvcihlLC0yNyk7ZS5jZENodW5rc1tlLmNkTnVtQ2h1bmtzXT10O2UuY2ROdW1DaHVua3MrKztlLmNkVG90YWxTaXplKz10Lmxlbmd0aDtlLmNkQ2h1bmtPZmZzZXRzW2UuY2ROdW1DaHVua3NdPWUuY2RUb3RhbFNpemU7cmV0dXJuIDB9KG4sZSl9bGV0IGE9MCxzPVtdO2Zvcig7Oyl7bGV0IGU9bmV3IEludDhBcnJheSgxNjM4NCk7cy5wdXNoKGUpO24ub3V0cHV0PWU7bi5vdXRwdXRPZmZzZXQ9MDtuLm91dHB1dExlbmd0aD0xNjM4NDtuLm91dHB1dFVzZWQ9MDtkZWNvbXByZXNzKG4pO2ErPW4ub3V0cHV0VXNlZDtpZihuLm91dHB1dFVzZWQ8MTYzODQpYnJlYWt9IWZ1bmN0aW9uIGNsb3NlKGUpe2lmKDA9PT1lLnJ1bm5pbmdTdGF0ZSlyZXR1cm4gbWFrZUVycm9yKGUsLTI1KTtlLnJ1bm5pbmdTdGF0ZT4wJiYoZS5ydW5uaW5nU3RhdGU9MTEpO3JldHVybiAwfShuKTshZnVuY3Rpb24gY2xvc2VJbnB1dChlKXtlLmlucHV0PW5ldyBJbnB1dFN0cmVhbShuZXcgSW50OEFycmF5KDApKX0obik7bGV0IHI9bmV3IEludDhBcnJheShhKSxpPTA7Zm9yKGxldCBlPTA7ZTxzLmxlbmd0aDsrK2Upe2xldCB0PXNbZV0sbj1NYXRoLm1pbihhLGkrMTYzODQpLWk7bjwxNjM4ND9yLnNldCh0LnN1YmFycmF5KDAsbiksaSk6ci5zZXQodCxpKTtpKz1ufXJldHVybiByfX0pKCk7Y2xhc3MgQnJvdGxpU3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFteyNMPSEwO2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIodCk7dGhpcy5zdHJlYW09ZTt0aGlzLmRpY3Q9ZS5kaWN0fXJlYWRCbG9jaygpe2NvbnN0IGU9dGhpcy5zdHJlYW0uZ2V0Qnl0ZXMoKSx0PU5uKG5ldyBJbnQ4QXJyYXkoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUubGVuZ3RoKSk7dGhpcy5idWZmZXI9bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQubGVuZ3RoKTt0aGlzLmJ1ZmZlckxlbmd0aD10aGlzLmJ1ZmZlci5sZW5ndGg7dGhpcy5lb2Y9ITB9YXN5bmMgZ2V0SW1hZ2VEYXRhKGUsdCl7Y29uc3Qgbj1hd2FpdCB0aGlzLmFzeW5jR2V0Qnl0ZXMoKTtyZXR1cm4gbj9uLmxlbmd0aDw9ZT9uOm4uc3ViYXJyYXkoMCxlKTp0aGlzLmdldEJ5dGVzKGUpfWFzeW5jIGFzeW5jR2V0Qnl0ZXMoKXtjb25zdHtkZWNvbXByZXNzZWQ6ZSxjb21wcmVzc2VkOnR9PWF3YWl0IHRoaXMuYXN5bmNHZXRCeXRlc0Zyb21EZWNvbXByZXNzaW9uU3RyZWFtKCJicm90bGkiKTtpZihlKXJldHVybiBlO3RoaXMuI0w9ITE7dGhpcy5zdHJlYW09bmV3IFN0cmVhbSh0LDAsdC5sZW5ndGgsdGhpcy5zdHJlYW0uZGljdCk7dGhpcy5yZXNldCgpO3JldHVybiBudWxsfWdldCBpc0FzeW5jKCl7cmV0dXJuIHRoaXMuI0x9fWNvbnN0IHpuPS0xLExuPVtbLTEsLTFdLFstMSwtMV0sWzcsOF0sWzcsN10sWzYsNl0sWzYsNl0sWzYsNV0sWzYsNV0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl1dLFVuPVtbLTEsLTFdLFsxMiwtMl0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFsxMSwxNzkyXSxbMTEsMTc5Ml0sWzEyLDE5ODRdLFsxMiwyMDQ4XSxbMTIsMjExMl0sWzEyLDIxNzZdLFsxMiwyMjQwXSxbMTIsMjMwNF0sWzExLDE4NTZdLFsxMSwxODU2XSxbMTEsMTkyMF0sWzExLDE5MjBdLFsxMiwyMzY4XSxbMTIsMjQzMl0sWzEyLDI0OTZdLFsxMiwyNTYwXV0sX249W1stMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWzgsMjldLFs4LDI5XSxbOCwzMF0sWzgsMzBdLFs4LDQ1XSxbOCw0NV0sWzgsNDZdLFs4LDQ2XSxbNywyMl0sWzcsMjJdLFs3LDIyXSxbNywyMl0sWzcsMjNdLFs3LDIzXSxbNywyM10sWzcsMjNdLFs4LDQ3XSxbOCw0N10sWzgsNDhdLFs4LDQ4XSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs3LDIwXSxbNywyMF0sWzcsMjBdLFs3LDIwXSxbOCwzM10sWzgsMzNdLFs4LDM0XSxbOCwzNF0sWzgsMzVdLFs4LDM1XSxbOCwzNl0sWzgsMzZdLFs4LDM3XSxbOCwzN10sWzgsMzhdLFs4LDM4XSxbNywxOV0sWzcsMTldLFs3LDE5XSxbNywxOV0sWzgsMzFdLFs4LDMxXSxbOCwzMl0sWzgsMzJdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzgsNTNdLFs4LDUzXSxbOCw1NF0sWzgsNTRdLFs3LDI2XSxbNywyNl0sWzcsMjZdLFs3LDI2XSxbOCwzOV0sWzgsMzldLFs4LDQwXSxbOCw0MF0sWzgsNDFdLFs4LDQxXSxbOCw0Ml0sWzgsNDJdLFs4LDQzXSxbOCw0M10sWzgsNDRdLFs4LDQ0XSxbNywyMV0sWzcsMjFdLFs3LDIxXSxbNywyMV0sWzcsMjhdLFs3LDI4XSxbNywyOF0sWzcsMjhdLFs4LDYxXSxbOCw2MV0sWzgsNjJdLFs4LDYyXSxbOCw2M10sWzgsNjNdLFs4LDBdLFs4LDBdLFs4LDMyMF0sWzgsMzIwXSxbOCwzODRdLFs4LDM4NF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNywyN10sWzcsMjddLFs3LDI3XSxbNywyN10sWzgsNTldLFs4LDU5XSxbOCw2MF0sWzgsNjBdLFs5LDE0NzJdLFs5LDE1MzZdLFs5LDE2MDBdLFs5LDE3MjhdLFs3LDE4XSxbNywxOF0sWzcsMThdLFs3LDE4XSxbNywyNF0sWzcsMjRdLFs3LDI0XSxbNywyNF0sWzgsNDldLFs4LDQ5XSxbOCw1MF0sWzgsNTBdLFs4LDUxXSxbOCw1MV0sWzgsNTJdLFs4LDUyXSxbNywyNV0sWzcsMjVdLFs3LDI1XSxbNywyNV0sWzgsNTVdLFs4LDU1XSxbOCw1Nl0sWzgsNTZdLFs4LDU3XSxbOCw1N10sWzgsNThdLFs4LDU4XSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzgsNDQ4XSxbOCw0NDhdLFs4LDUxMl0sWzgsNTEyXSxbOSw3MDRdLFs5LDc2OF0sWzgsNjQwXSxbOCw2NDBdLFs4LDU3Nl0sWzgsNTc2XSxbOSw4MzJdLFs5LDg5Nl0sWzksOTYwXSxbOSwxMDI0XSxbOSwxMDg4XSxbOSwxMTUyXSxbOSwxMjE2XSxbOSwxMjgwXSxbOSwxMzQ0XSxbOSwxNDA4XSxbNywyNTZdLFs3LDI1Nl0sWzcsMjU2XSxbNywyNTZdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNiwxN10sWzYsMTddLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN11dLFhuPVtbLTEsLTFdLFstMSwtMV0sWzEyLC0yXSxbMTIsLTJdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWzExLDE3OTJdLFsxMSwxNzkyXSxbMTEsMTc5Ml0sWzExLDE3OTJdLFsxMiwxOTg0XSxbMTIsMTk4NF0sWzEyLDIwNDhdLFsxMiwyMDQ4XSxbMTIsMjExMl0sWzEyLDIxMTJdLFsxMiwyMTc2XSxbMTIsMjE3Nl0sWzEyLDIyNDBdLFsxMiwyMjQwXSxbMTIsMjMwNF0sWzEyLDIzMDRdLFsxMSwxODU2XSxbMTEsMTg1Nl0sWzExLDE4NTZdLFsxMSwxODU2XSxbMTEsMTkyMF0sWzExLDE5MjBdLFsxMSwxOTIwXSxbMTEsMTkyMF0sWzEyLDIzNjhdLFsxMiwyMzY4XSxbMTIsMjQzMl0sWzEyLDI0MzJdLFsxMiwyNDk2XSxbMTIsMjQ5Nl0sWzEyLDI1NjBdLFsxMiwyNTYwXSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEyLDUyXSxbMTIsNTJdLFsxMyw2NDBdLFsxMyw3MDRdLFsxMyw3NjhdLFsxMyw4MzJdLFsxMiw1NV0sWzEyLDU1XSxbMTIsNTZdLFsxMiw1Nl0sWzEzLDEyODBdLFsxMywxMzQ0XSxbMTMsMTQwOF0sWzEzLDE0NzJdLFsxMiw1OV0sWzEyLDU5XSxbMTIsNjBdLFsxMiw2MF0sWzEzLDE1MzZdLFsxMywxNjAwXSxbMTEsMjRdLFsxMSwyNF0sWzExLDI0XSxbMTEsMjRdLFsxMSwyNV0sWzExLDI1XSxbMTEsMjVdLFsxMSwyNV0sWzEzLDE2NjRdLFsxMywxNzI4XSxbMTIsMzIwXSxbMTIsMzIwXSxbMTIsMzg0XSxbMTIsMzg0XSxbMTIsNDQ4XSxbMTIsNDQ4XSxbMTMsNTEyXSxbMTMsNTc2XSxbMTIsNTNdLFsxMiw1M10sWzEyLDU0XSxbMTIsNTRdLFsxMyw4OTZdLFsxMyw5NjBdLFsxMywxMDI0XSxbMTMsMTA4OF0sWzEzLDExNTJdLFsxMywxMjE2XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF1dLFduPVtbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzExLDIzXSxbMTEsMjNdLFsxMiw1MF0sWzEyLDUxXSxbMTIsNDRdLFsxMiw0NV0sWzEyLDQ2XSxbMTIsNDddLFsxMiw1N10sWzEyLDU4XSxbMTIsNjFdLFsxMiwyNTZdLFsxMCwxNl0sWzEwLDE2XSxbMTAsMTZdLFsxMCwxNl0sWzEwLDE3XSxbMTAsMTddLFsxMCwxN10sWzEwLDE3XSxbMTIsNDhdLFsxMiw0OV0sWzEyLDYyXSxbMTIsNjNdLFsxMiwzMF0sWzEyLDMxXSxbMTIsMzJdLFsxMiwzM10sWzEyLDQwXSxbMTIsNDFdLFsxMSwyMl0sWzExLDIyXSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzEyLDEyOF0sWzEyLDE5Ml0sWzEyLDI2XSxbMTIsMjddLFsxMiwyOF0sWzEyLDI5XSxbMTEsMTldLFsxMSwxOV0sWzExLDIwXSxbMTEsMjBdLFsxMiwzNF0sWzEyLDM1XSxbMTIsMzZdLFsxMiwzN10sWzEyLDM4XSxbMTIsMzldLFsxMSwyMV0sWzExLDIxXSxbMTIsNDJdLFsxMiw0M10sWzEwLDBdLFsxMCwwXSxbMTAsMF0sWzEwLDBdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl1dLEtuPVtbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFs2LDldLFs2LDhdLFs1LDddLFs1LDddLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdXTtjbGFzcyBDQ0lUVEZheERlY29kZXJ7Y29uc3RydWN0b3IoZSx0PXtLOjAsRW5kT2ZMaW5lOiExLEVuY29kZWRCeXRlQWxpZ246ITEsQ29sdW1uczoxNzI4LFJvd3M6MCxFbmRPZkJsb2NrOiEwLEJsYWNrSXMxOiExfSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGU/Lm5leHQpdGhyb3cgbmV3IEVycm9yKCdDQ0lUVEZheERlY29kZXIgLSBpbnZhbGlkICJzb3VyY2UiIHBhcmFtZXRlci4nKTt0aGlzLnNvdXJjZT1lO3RoaXMuZW9mPSExOyh7Szp0aGlzLmVuY29kaW5nLEVuZE9mTGluZTp0aGlzLmVvbGluZSxFbmNvZGVkQnl0ZUFsaWduOnRoaXMuYnl0ZUFsaWduLENvbHVtbnM6dGhpcy5jb2x1bW5zLFJvd3M6dGhpcy5yb3dzLEVuZE9mQmxvY2s6dGhpcy5lb2Jsb2NrLEJsYWNrSXMxOnRoaXMuYmxhY2t9PXQpO3RoaXMuY29kaW5nTGluZT1uZXcgVWludDMyQXJyYXkodGhpcy5jb2x1bW5zKzEpO3RoaXMucmVmTGluZT1uZXcgVWludDMyQXJyYXkodGhpcy5jb2x1bW5zKzIpO3RoaXMuY29kaW5nTGluZVswXT10aGlzLmNvbHVtbnM7dGhpcy5jb2RpbmdQb3M9MDt0aGlzLnJvdz0wO3RoaXMubmV4dExpbmUyRD10aGlzLmVuY29kaW5nPDA7dGhpcy5pbnB1dEJpdHM9MDt0aGlzLmlucHV0QnVmPTA7dGhpcy5vdXRwdXRCaXRzPTA7dGhpcy5yb3dzRG9uZT0hMTtsZXQgbjtmb3IoOzA9PT0obj10aGlzLl9sb29rQml0cygxMikpOyl0aGlzLl9lYXRCaXRzKDEpOzE9PT1uJiZ0aGlzLl9lYXRCaXRzKDEyKTtpZih0aGlzLmVuY29kaW5nPjApe3RoaXMubmV4dExpbmUyRD0hdGhpcy5fbG9va0JpdHMoMSk7dGhpcy5fZWF0Qml0cygxKX19cmVhZE5leHRDaGFyKCl7aWYodGhpcy5lb2YpcmV0dXJuLTE7Y29uc3QgZT10aGlzLnJlZkxpbmUsdD10aGlzLmNvZGluZ0xpbmUsbj10aGlzLmNvbHVtbnM7bGV0IGEscyxyLGksbztpZigwPT09dGhpcy5vdXRwdXRCaXRzKXt0aGlzLnJvd3NEb25lJiYodGhpcy5lb2Y9ITApO2lmKHRoaXMuZW9mKXJldHVybi0xO3RoaXMuZXJyPSExO2xldCByLG8sbDtpZih0aGlzLm5leHRMaW5lMkQpe2ZvcihpPTA7dFtpXTxuOysraSllW2ldPXRbaV07ZVtpKytdPW47ZVtpXT1uO3RbMF09MDt0aGlzLmNvZGluZ1Bvcz0wO2E9MDtzPTA7Zm9yKDt0W3RoaXMuY29kaW5nUG9zXTxuOyl7cj10aGlzLl9nZXRUd29EaW1Db2RlKCk7c3dpdGNoKHIpe2Nhc2UgMDp0aGlzLl9hZGRQaXhlbHMoZVthKzFdLHMpO2VbYSsxXTxuJiYoYSs9Mik7YnJlYWs7Y2FzZSAxOnI9bz0wO2lmKHMpe2Rve3IrPWw9dGhpcy5fZ2V0QmxhY2tDb2RlKCl9d2hpbGUobD49NjQpO2Rve28rPWw9dGhpcy5fZ2V0V2hpdGVDb2RlKCl9d2hpbGUobD49NjQpfWVsc2V7ZG97cis9bD10aGlzLl9nZXRXaGl0ZUNvZGUoKX13aGlsZShsPj02NCk7ZG97bys9bD10aGlzLl9nZXRCbGFja0NvZGUoKX13aGlsZShsPj02NCl9dGhpcy5fYWRkUGl4ZWxzKHRbdGhpcy5jb2RpbmdQb3NdK3Iscyk7dFt0aGlzLmNvZGluZ1Bvc108biYmdGhpcy5fYWRkUGl4ZWxzKHRbdGhpcy5jb2RpbmdQb3NdK28sMV5zKTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPG47KWErPTI7YnJlYWs7Y2FzZSA3OnRoaXMuX2FkZFBpeGVscyhlW2FdKzMscyk7c149MTtpZih0W3RoaXMuY29kaW5nUG9zXTxuKXsrK2E7Zm9yKDtlW2FdPD10W3RoaXMuY29kaW5nUG9zXSYmZVthXTxuOylhKz0yfWJyZWFrO2Nhc2UgNTp0aGlzLl9hZGRQaXhlbHMoZVthXSsyLHMpO3NePTE7aWYodFt0aGlzLmNvZGluZ1Bvc108bil7KythO2Zvcig7ZVthXTw9dFt0aGlzLmNvZGluZ1Bvc10mJmVbYV08bjspYSs9Mn1icmVhaztjYXNlIDM6dGhpcy5fYWRkUGl4ZWxzKGVbYV0rMSxzKTtzXj0xO2lmKHRbdGhpcy5jb2RpbmdQb3NdPG4peysrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPG47KWErPTJ9YnJlYWs7Y2FzZSAyOnRoaXMuX2FkZFBpeGVscyhlW2FdLHMpO3NePTE7aWYodFt0aGlzLmNvZGluZ1Bvc108bil7KythO2Zvcig7ZVthXTw9dFt0aGlzLmNvZGluZ1Bvc10mJmVbYV08bjspYSs9Mn1icmVhaztjYXNlIDg6dGhpcy5fYWRkUGl4ZWxzTmVnKGVbYV0tMyxzKTtzXj0xO2lmKHRbdGhpcy5jb2RpbmdQb3NdPG4pe2E+MD8tLWE6KythO2Zvcig7ZVthXTw9dFt0aGlzLmNvZGluZ1Bvc10mJmVbYV08bjspYSs9Mn1icmVhaztjYXNlIDY6dGhpcy5fYWRkUGl4ZWxzTmVnKGVbYV0tMixzKTtzXj0xO2lmKHRbdGhpcy5jb2RpbmdQb3NdPG4pe2E+MD8tLWE6KythO2Zvcig7ZVthXTw9dFt0aGlzLmNvZGluZ1Bvc10mJmVbYV08bjspYSs9Mn1icmVhaztjYXNlIDQ6dGhpcy5fYWRkUGl4ZWxzTmVnKGVbYV0tMSxzKTtzXj0xO2lmKHRbdGhpcy5jb2RpbmdQb3NdPG4pe2E+MD8tLWE6KythO2Zvcig7ZVthXTw9dFt0aGlzLmNvZGluZ1Bvc10mJmVbYV08bjspYSs9Mn1icmVhaztjYXNlIHpuOnRoaXMuX2FkZFBpeGVscyhuLDApO3RoaXMuZW9mPSEwO2JyZWFrO2RlZmF1bHQ6aW5mbygiYmFkIDJkIGNvZGUiKTt0aGlzLl9hZGRQaXhlbHMobiwwKTt0aGlzLmVycj0hMH19fWVsc2V7dFswXT0wO3RoaXMuY29kaW5nUG9zPTA7cz0wO2Zvcig7dFt0aGlzLmNvZGluZ1Bvc108bjspe3I9MDtpZihzKWRve3IrPWw9dGhpcy5fZ2V0QmxhY2tDb2RlKCl9d2hpbGUobD49NjQpO2Vsc2UgZG97cis9bD10aGlzLl9nZXRXaGl0ZUNvZGUoKX13aGlsZShsPj02NCk7dGhpcy5fYWRkUGl4ZWxzKHRbdGhpcy5jb2RpbmdQb3NdK3Iscyk7c149MX19bGV0IGY9ITE7dGhpcy5ieXRlQWxpZ24mJih0aGlzLmlucHV0Qml0cyY9LTgpO2lmKHRoaXMuZW9ibG9ja3x8dGhpcy5yb3chPT10aGlzLnJvd3MtMSl7cj10aGlzLl9sb29rQml0cygxMik7aWYodGhpcy5lb2xpbmUpZm9yKDtyIT09em4mJjEhPT1yOyl7dGhpcy5fZWF0Qml0cygxKTtyPXRoaXMuX2xvb2tCaXRzKDEyKX1lbHNlIGZvcig7MD09PXI7KXt0aGlzLl9lYXRCaXRzKDEpO3I9dGhpcy5fbG9va0JpdHMoMTIpfWlmKDE9PT1yKXt0aGlzLl9lYXRCaXRzKDEyKTtmPSEwfWVsc2Ugcj09PXpuJiYodGhpcy5lb2Y9ITApfWVsc2UgdGhpcy5yb3dzRG9uZT0hMDtpZighdGhpcy5lb2YmJnRoaXMuZW5jb2Rpbmc+MCYmIXRoaXMucm93c0RvbmUpe3RoaXMubmV4dExpbmUyRD0hdGhpcy5fbG9va0JpdHMoMSk7dGhpcy5fZWF0Qml0cygxKX1pZih0aGlzLmVvYmxvY2smJmYmJnRoaXMuYnl0ZUFsaWduKXtyPXRoaXMuX2xvb2tCaXRzKDEyKTtpZigxPT09cil7dGhpcy5fZWF0Qml0cygxMik7aWYodGhpcy5lbmNvZGluZz4wKXt0aGlzLl9sb29rQml0cygxKTt0aGlzLl9lYXRCaXRzKDEpfWlmKHRoaXMuZW5jb2Rpbmc+PTApZm9yKGk9MDtpPDQ7KytpKXtyPXRoaXMuX2xvb2tCaXRzKDEyKTsxIT09ciYmaW5mbygiYmFkIHJ0YyBjb2RlOiAiK3IpO3RoaXMuX2VhdEJpdHMoMTIpO2lmKHRoaXMuZW5jb2Rpbmc+MCl7dGhpcy5fbG9va0JpdHMoMSk7dGhpcy5fZWF0Qml0cygxKX19dGhpcy5lb2Y9ITB9fWVsc2UgaWYodGhpcy5lcnImJnRoaXMuZW9saW5lKXtmb3IoOzspe3I9dGhpcy5fbG9va0JpdHMoMTMpO2lmKHI9PT16bil7dGhpcy5lb2Y9ITA7cmV0dXJuLTF9aWYocj4+MT09MSlicmVhazt0aGlzLl9lYXRCaXRzKDEpfXRoaXMuX2VhdEJpdHMoMTIpO2lmKHRoaXMuZW5jb2Rpbmc+MCl7dGhpcy5fZWF0Qml0cygxKTt0aGlzLm5leHRMaW5lMkQ9ISgxJnIpfX10aGlzLm91dHB1dEJpdHM9dFswXT4wP3RbdGhpcy5jb2RpbmdQb3M9MF06dFt0aGlzLmNvZGluZ1Bvcz0xXTt0aGlzLnJvdysrfWlmKHRoaXMub3V0cHV0Qml0cz49OCl7bz0xJnRoaXMuY29kaW5nUG9zPzA6MjU1O3RoaXMub3V0cHV0Qml0cy09ODtpZigwPT09dGhpcy5vdXRwdXRCaXRzJiZ0W3RoaXMuY29kaW5nUG9zXTxuKXt0aGlzLmNvZGluZ1BvcysrO3RoaXMub3V0cHV0Qml0cz10W3RoaXMuY29kaW5nUG9zXS10W3RoaXMuY29kaW5nUG9zLTFdfX1lbHNle3I9ODtvPTA7ZG97aWYoIm51bWJlciIhPXR5cGVvZiB0aGlzLm91dHB1dEJpdHMpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCdJbnZhbGlkIC9DQ0lUVEZheERlY29kZSBkYXRhLCAib3V0cHV0Qml0cyIgbXVzdCBiZSBhIG51bWJlci4nKTtpZih0aGlzLm91dHB1dEJpdHM+cil7bzw8PXI7MSZ0aGlzLmNvZGluZ1Bvc3x8KG98PTI1NT4+OC1yKTt0aGlzLm91dHB1dEJpdHMtPXI7cj0wfWVsc2V7bzw8PXRoaXMub3V0cHV0Qml0czsxJnRoaXMuY29kaW5nUG9zfHwob3w9MjU1Pj44LXRoaXMub3V0cHV0Qml0cyk7ci09dGhpcy5vdXRwdXRCaXRzO3RoaXMub3V0cHV0Qml0cz0wO2lmKHRbdGhpcy5jb2RpbmdQb3NdPG4pe3RoaXMuY29kaW5nUG9zKys7dGhpcy5vdXRwdXRCaXRzPXRbdGhpcy5jb2RpbmdQb3NdLXRbdGhpcy5jb2RpbmdQb3MtMV19ZWxzZSBpZihyPjApe288PD1yO3I9MH19fXdoaWxlKHIpfXRoaXMuYmxhY2smJihvXj0yNTUpO3JldHVybiBvfV9hZGRQaXhlbHMoZSx0KXtjb25zdCBuPXRoaXMuY29kaW5nTGluZTtsZXQgYT10aGlzLmNvZGluZ1BvcztpZihlPm5bYV0pe2lmKGU+dGhpcy5jb2x1bW5zKXtpbmZvKCJyb3cgaXMgd3JvbmcgbGVuZ3RoIik7dGhpcy5lcnI9ITA7ZT10aGlzLmNvbHVtbnN9MSZhXnQmJisrYTtuW2FdPWV9dGhpcy5jb2RpbmdQb3M9YX1fYWRkUGl4ZWxzTmVnKGUsdCl7Y29uc3Qgbj10aGlzLmNvZGluZ0xpbmU7bGV0IGE9dGhpcy5jb2RpbmdQb3M7aWYoZT5uW2FdKXtpZihlPnRoaXMuY29sdW1ucyl7aW5mbygicm93IGlzIHdyb25nIGxlbmd0aCIpO3RoaXMuZXJyPSEwO2U9dGhpcy5jb2x1bW5zfTEmYV50JiYrK2E7blthXT1lfWVsc2UgaWYoZTxuW2FdKXtpZihlPDApe2luZm8oImludmFsaWQgY29kZSIpO3RoaXMuZXJyPSEwO2U9MH1mb3IoO2E+MCYmZTxuW2EtMV07KS0tYTtuW2FdPWV9dGhpcy5jb2RpbmdQb3M9YX1fZmluZFRhYmxlQ29kZShlLHQsbixhKXtjb25zdCBzPWF8fDA7Zm9yKGxldCBhPWU7YTw9dDsrK2Epe2xldCBlPXRoaXMuX2xvb2tCaXRzKGEpO2lmKGU9PT16bilyZXR1cm5bITAsMSwhMV07YTx0JiYoZTw8PXQtYSk7aWYoIXN8fGU+PXMpe2NvbnN0IHQ9bltlLXNdO2lmKHRbMF09PT1hKXt0aGlzLl9lYXRCaXRzKGEpO3JldHVyblshMCx0WzFdLCEwXX19fXJldHVyblshMSwwLCExXX1fZ2V0VHdvRGltQ29kZSgpe2xldCBlLHQ9MDtpZih0aGlzLmVvYmxvY2spe3Q9dGhpcy5fbG9va0JpdHMoNyk7ZT1Mblt0XTtpZihlPy5bMF0+MCl7dGhpcy5fZWF0Qml0cyhlWzBdKTtyZXR1cm4gZVsxXX19ZWxzZXtjb25zdCBlPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMSw3LExuKTtpZihlWzBdJiZlWzJdKXJldHVybiBlWzFdfWluZm8oIkJhZCB0d28gZGltIGNvZGUiKTtyZXR1cm4gem59X2dldFdoaXRlQ29kZSgpe2xldCBlLHQ9MDtpZih0aGlzLmVvYmxvY2spe3Q9dGhpcy5fbG9va0JpdHMoMTIpO2lmKHQ9PT16bilyZXR1cm4gMTtlPXQ+PjU/X25bdD4+M106VW5bdF07aWYoZVswXT4wKXt0aGlzLl9lYXRCaXRzKGVbMF0pO3JldHVybiBlWzFdfX1lbHNle2xldCBlPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMSw5LF9uKTtpZihlWzBdKXJldHVybiBlWzFdO2U9dGhpcy5fZmluZFRhYmxlQ29kZSgxMSwxMixVbik7aWYoZVswXSlyZXR1cm4gZVsxXX1pbmZvKCJiYWQgd2hpdGUgY29kZSIpO3RoaXMuX2VhdEJpdHMoMSk7cmV0dXJuIDF9X2dldEJsYWNrQ29kZSgpe2xldCBlLHQ7aWYodGhpcy5lb2Jsb2NrKXtlPXRoaXMuX2xvb2tCaXRzKDEzKTtpZihlPT09em4pcmV0dXJuIDE7dD1lPj43PyEoZT4+OSkmJmU+Pjc/V25bKGU+PjEpLTY0XTpLbltlPj43XTpYbltlXTtpZih0WzBdPjApe3RoaXMuX2VhdEJpdHModFswXSk7cmV0dXJuIHRbMV19fWVsc2V7bGV0IGU9dGhpcy5fZmluZFRhYmxlQ29kZSgyLDYsS24pO2lmKGVbMF0pcmV0dXJuIGVbMV07ZT10aGlzLl9maW5kVGFibGVDb2RlKDcsMTIsV24sNjQpO2lmKGVbMF0pcmV0dXJuIGVbMV07ZT10aGlzLl9maW5kVGFibGVDb2RlKDEwLDEzLFhuKTtpZihlWzBdKXJldHVybiBlWzFdfWluZm8oImJhZCBibGFjayBjb2RlIik7dGhpcy5fZWF0Qml0cygxKTtyZXR1cm4gMX1fbG9va0JpdHMoZSl7bGV0IHQ7Zm9yKDt0aGlzLmlucHV0Qml0czxlOyl7aWYoLTE9PT0odD10aGlzLnNvdXJjZS5uZXh0KCkpKXJldHVybiAwPT09dGhpcy5pbnB1dEJpdHM/em46dGhpcy5pbnB1dEJ1Zjw8ZS10aGlzLmlucHV0Qml0cyY2NTUzNT4+MTYtZTt0aGlzLmlucHV0QnVmPXRoaXMuaW5wdXRCdWY8PDh8dDt0aGlzLmlucHV0Qml0cys9OH1yZXR1cm4gdGhpcy5pbnB1dEJ1Zj4+dGhpcy5pbnB1dEJpdHMtZSY2NTUzNT4+MTYtZX1fZWF0Qml0cyhlKXsodGhpcy5pbnB1dEJpdHMtPWUpPDAmJih0aGlzLmlucHV0Qml0cz0wKX19Y2xhc3MgQ0NJVFRGYXhTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKHQpO3RoaXMuc3RyZWFtPWU7dGhpcy5tYXliZUxlbmd0aD10O3RoaXMuZGljdD1lLmRpY3Q7biBpbnN0YW5jZW9mIERpY3R8fChuPURpY3QuZW1wdHkpO3RoaXMucGFyYW1zPXtLOm4uZ2V0KCJLIil8fDAsRW5kT2ZMaW5lOiEhbi5nZXQoIkVuZE9mTGluZSIpLEVuY29kZWRCeXRlQWxpZ246ISFuLmdldCgiRW5jb2RlZEJ5dGVBbGlnbiIpLENvbHVtbnM6bi5nZXQoIkNvbHVtbnMiKXx8MTcyOCxSb3dzOm4uZ2V0KCJSb3dzIil8fDAsRW5kT2ZCbG9jazohIShuLmdldCgiRW5kT2ZCbG9jayIpPz8xKSxCbGFja0lzMTohIW4uZ2V0KCJCbGFja0lzMSIpfX1nZXQgYnl0ZXMoKXtyZXR1cm4gc2hhZG93KHRoaXMsImJ5dGVzIix0aGlzLnN0cmVhbS5nZXRCeXRlcyh0aGlzLm1heWJlTGVuZ3RoKSl9cmVhZEJsb2NrKCl7dGhpcy5kZWNvZGVJbWFnZUZhbGxiYWNrKCl9Z2V0IGlzSW1hZ2VTdHJlYW0oKXtyZXR1cm4hMH1nZXQgaXNBc3luY0RlY29kZXIoKXtyZXR1cm4hMH1hc3luYyBkZWNvZGVJbWFnZShlLHQsbil7aWYodGhpcy5lb2YpcmV0dXJuIHRoaXMuYnVmZmVyO2V8fChlPXRoaXMuc3RyZWFtLmlzQXN5bmMmJmF3YWl0IHRoaXMuc3RyZWFtLmFzeW5jR2V0Qnl0ZXMoKXx8dGhpcy5ieXRlcyk7dHJ5e3RoaXMuYnVmZmVyPWF3YWl0IEpCaWcyQ0NJVFRGYXhXYXNtSW1hZ2UuZGVjb2RlKGUsdGhpcy5kaWN0LmdldCgiVyIsIldpZHRoIiksdGhpcy5kaWN0LmdldCgiSCIsIkhlaWdodCIpLG51bGwsdGhpcy5wYXJhbXMpfWNhdGNoe3dhcm4oIkNDSVRURmF4U3RyZWFtOiBGYWxsaW5nIGJhY2sgdG8gSlMgQ0NJVFRGYXggZGVjb2Rlci4iKTtyZXR1cm4gdGhpcy5kZWNvZGVJbWFnZUZhbGxiYWNrKGUsdCl9dGhpcy5idWZmZXJMZW5ndGg9dGhpcy5idWZmZXIubGVuZ3RoO3RoaXMuZW9mPSEwO3JldHVybiB0aGlzLmJ1ZmZlcn1kZWNvZGVJbWFnZUZhbGxiYWNrKGUsdCl7aWYodGhpcy5lb2YpcmV0dXJuIHRoaXMuYnVmZmVyO2NvbnN0e3BhcmFtczpufT10aGlzO2lmKCFlKXt0aGlzLnN0cmVhbS5yZXNldCgpO2U9dGhpcy5ieXRlc31sZXQgYT0wO2NvbnN0IHM9e25leHQ6KCk9PmVbYSsrXT8/LTF9O3QmJnRoaXMuYnVmZmVyLmJ5dGVMZW5ndGg8dCYmKHRoaXMuYnVmZmVyPW5ldyBVaW50OEFycmF5KHQpKTt0aGlzLmNjaXR0RmF4RGVjb2Rlcj1uZXcgQ0NJVFRGYXhEZWNvZGVyKHMsbik7bGV0IHI9MDtmb3IoOyF0aGlzLmVvZjspe2NvbnN0IGU9dGhpcy5jY2l0dEZheERlY29kZXIucmVhZE5leHRDaGFyKCk7aWYoLTE9PT1lKXt0aGlzLmVvZj0hMDticmVha310fHx0aGlzLmVuc3VyZUJ1ZmZlcihyKzEpO3RoaXMuYnVmZmVyW3IrK109ZX10aGlzLmJ1ZmZlckxlbmd0aD10aGlzLmJ1ZmZlci5sZW5ndGg7cmV0dXJuIHRoaXMuYnVmZmVyLnN1YmFycmF5KDAsdHx8dGhpcy5idWZmZXJMZW5ndGgpfX1jb25zdCBHbj1uZXcgSW50MzJBcnJheShbMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0pLFZuPW5ldyBJbnQzMkFycmF5KFszLDQsNSw2LDcsOCw5LDEwLDY1NTQ3LDY1NTQ5LDY1NTUxLDY1NTUzLDEzMTA5MSwxMzEwOTUsMTMxMDk5LDEzMTEwMywxOTY2NDMsMTk2NjUxLDE5NjY1OSwxOTY2NjcsMjYyMjExLDI2MjIyNywyNjIyNDMsMjYyMjU5LDMyNzgxMSwzMjc4NDMsMzI3ODc1LDMyNzkwNywyNTgsMjU4LDI1OF0pLCRuPW5ldyBJbnQzMkFycmF5KFsxLDIsMyw0LDY1NTQxLDY1NTQzLDEzMTA4MSwxMzEwODUsMTk2NjI1LDE5NjYzMywyNjIxNzcsMjYyMTkzLDMyNzc0NSwzMjc3NzcsMzkzMzQ1LDM5MzQwOSw0NTkwMDksNDU5MTM3LDUyNDgwMSw1MjUwNTcsNTkwODQ5LDU5MTM2MSw2NTc0MDksNjU4NDMzLDcyNDk5Myw3MjcwNDEsNzk0NjI1LDc5ODcyMSw4NjgzNTMsODc2NTQ1XSksWW49W25ldyBJbnQzMkFycmF5KFs0NTkwMDgsNTI0MzY4LDUyNDMwNCw1MjQ1NjgsNDU5MDI0LDUyNDQwMCw1MjQzMzYsNTkwMDE2LDQ1OTAxNiw1MjQzODQsNTI0MzIwLDU4OTk4NCw1MjQyODgsNTI0NDE2LDUyNDM1Miw1OTAwNDgsNDU5MDEyLDUyNDM3Niw1MjQzMTIsNTg5OTY4LDQ1OTAyOCw1MjQ0MDgsNTI0MzQ0LDU5MDAzMiw0NTkwMjAsNTI0MzkyLDUyNDMyOCw1OWU0LDUyNDI5Niw1MjQ0MjQsNTI0MzYwLDU5MDA2NCw0NTkwMTAsNTI0MzcyLDUyNDMwOCw1MjQ1NzIsNDU5MDI2LDUyNDQwNCw1MjQzNDAsNTkwMDI0LDQ1OTAxOCw1MjQzODgsNTI0MzI0LDU4OTk5Miw1MjQyOTIsNTI0NDIwLDUyNDM1Niw1OTAwNTYsNDU5MDE0LDUyNDM4MCw1MjQzMTYsNTg5OTc2LDQ1OTAzMCw1MjQ0MTIsNTI0MzQ4LDU5MDA0MCw0NTkwMjIsNTI0Mzk2LDUyNDMzMiw1OTAwMDgsNTI0MzAwLDUyNDQyOCw1MjQzNjQsNTkwMDcyLDQ1OTAwOSw1MjQzNzAsNTI0MzA2LDUyNDU3MCw0NTkwMjUsNTI0NDAyLDUyNDMzOCw1OTAwMjAsNDU5MDE3LDUyNDM4Niw1MjQzMjIsNTg5OTg4LDUyNDI5MCw1MjQ0MTgsNTI0MzU0LDU5MDA1Miw0NTkwMTMsNTI0Mzc4LDUyNDMxNCw1ODk5NzIsNDU5MDI5LDUyNDQxMCw1MjQzNDYsNTkwMDM2LDQ1OTAyMSw1MjQzOTQsNTI0MzMwLDU5MDAwNCw1MjQyOTgsNTI0NDI2LDUyNDM2Miw1OTAwNjgsNDU5MDExLDUyNDM3NCw1MjQzMTAsNTI0NTc0LDQ1OTAyNyw1MjQ0MDYsNTI0MzQyLDU5MDAyOCw0NTkwMTksNTI0MzkwLDUyNDMyNiw1ODk5OTYsNTI0Mjk0LDUyNDQyMiw1MjQzNTgsNTkwMDYwLDQ1OTAxNSw1MjQzODIsNTI0MzE4LDU4OTk4MCw0NTkwMzEsNTI0NDE0LDUyNDM1MCw1OTAwNDQsNDU5MDIzLDUyNDM5OCw1MjQzMzQsNTkwMDEyLDUyNDMwMiw1MjQ0MzAsNTI0MzY2LDU5MDA3Niw0NTkwMDgsNTI0MzY5LDUyNDMwNSw1MjQ1NjksNDU5MDI0LDUyNDQwMSw1MjQzMzcsNTkwMDE4LDQ1OTAxNiw1MjQzODUsNTI0MzIxLDU4OTk4Niw1MjQyODksNTI0NDE3LDUyNDM1Myw1OTAwNTAsNDU5MDEyLDUyNDM3Nyw1MjQzMTMsNTg5OTcwLDQ1OTAyOCw1MjQ0MDksNTI0MzQ1LDU5MDAzNCw0NTkwMjAsNTI0MzkzLDUyNDMyOSw1OTAwMDIsNTI0Mjk3LDUyNDQyNSw1MjQzNjEsNTkwMDY2LDQ1OTAxMCw1MjQzNzMsNTI0MzA5LDUyNDU3Myw0NTkwMjYsNTI0NDA1LDUyNDM0MSw1OTAwMjYsNDU5MDE4LDUyNDM4OSw1MjQzMjUsNTg5OTk0LDUyNDI5Myw1MjQ0MjEsNTI0MzU3LDU5MDA1OCw0NTkwMTQsNTI0MzgxLDUyNDMxNyw1ODk5NzgsNDU5MDMwLDUyNDQxMyw1MjQzNDksNTkwMDQyLDQ1OTAyMiw1MjQzOTcsNTI0MzMzLDU5MDAxMCw1MjQzMDEsNTI0NDI5LDUyNDM2NSw1OTAwNzQsNDU5MDA5LDUyNDM3MSw1MjQzMDcsNTI0NTcxLDQ1OTAyNSw1MjQ0MDMsNTI0MzM5LDU5MDAyMiw0NTkwMTcsNTI0Mzg3LDUyNDMyMyw1ODk5OTAsNTI0MjkxLDUyNDQxOSw1MjQzNTUsNTkwMDU0LDQ1OTAxMyw1MjQzNzksNTI0MzE1LDU4OTk3NCw0NTkwMjksNTI0NDExLDUyNDM0Nyw1OTAwMzgsNDU5MDIxLDUyNDM5NSw1MjQzMzEsNTkwMDA2LDUyNDI5OSw1MjQ0MjcsNTI0MzYzLDU5MDA3MCw0NTkwMTEsNTI0Mzc1LDUyNDMxMSw1MjQ1NzUsNDU5MDI3LDUyNDQwNyw1MjQzNDMsNTkwMDMwLDQ1OTAxOSw1MjQzOTEsNTI0MzI3LDU4OTk5OCw1MjQyOTUsNTI0NDIzLDUyNDM1OSw1OTAwNjIsNDU5MDE1LDUyNDM4Myw1MjQzMTksNTg5OTgyLDQ1OTAzMSw1MjQ0MTUsNTI0MzUxLDU5MDA0Niw0NTkwMjMsNTI0Mzk5LDUyNDMzNSw1OTAwMTQsNTI0MzAzLDUyNDQzMSw1MjQzNjcsNTkwMDc4LDQ1OTAwOCw1MjQzNjgsNTI0MzA0LDUyNDU2OCw0NTkwMjQsNTI0NDAwLDUyNDMzNiw1OTAwMTcsNDU5MDE2LDUyNDM4NCw1MjQzMjAsNTg5OTg1LDUyNDI4OCw1MjQ0MTYsNTI0MzUyLDU5MDA0OSw0NTkwMTIsNTI0Mzc2LDUyNDMxMiw1ODk5NjksNDU5MDI4LDUyNDQwOCw1MjQzNDQsNTkwMDMzLDQ1OTAyMCw1MjQzOTIsNTI0MzI4LDU5MDAwMSw1MjQyOTYsNTI0NDI0LDUyNDM2MCw1OTAwNjUsNDU5MDEwLDUyNDM3Miw1MjQzMDgsNTI0NTcyLDQ1OTAyNiw1MjQ0MDQsNTI0MzQwLDU5MDAyNSw0NTkwMTgsNTI0Mzg4LDUyNDMyNCw1ODk5OTMsNTI0MjkyLDUyNDQyMCw1MjQzNTYsNTkwMDU3LDQ1OTAxNCw1MjQzODAsNTI0MzE2LDU4OTk3Nyw0NTkwMzAsNTI0NDEyLDUyNDM0OCw1OTAwNDEsNDU5MDIyLDUyNDM5Niw1MjQzMzIsNTkwMDA5LDUyNDMwMCw1MjQ0MjgsNTI0MzY0LDU5MDA3Myw0NTkwMDksNTI0MzcwLDUyNDMwNiw1MjQ1NzAsNDU5MDI1LDUyNDQwMiw1MjQzMzgsNTkwMDIxLDQ1OTAxNyw1MjQzODYsNTI0MzIyLDU4OTk4OSw1MjQyOTAsNTI0NDE4LDUyNDM1NCw1OTAwNTMsNDU5MDEzLDUyNDM3OCw1MjQzMTQsNTg5OTczLDQ1OTAyOSw1MjQ0MTAsNTI0MzQ2LDU5MDAzNyw0NTkwMjEsNTI0Mzk0LDUyNDMzMCw1OTAwMDUsNTI0Mjk4LDUyNDQyNiw1MjQzNjIsNTkwMDY5LDQ1OTAxMSw1MjQzNzQsNTI0MzEwLDUyNDU3NCw0NTkwMjcsNTI0NDA2LDUyNDM0Miw1OTAwMjksNDU5MDE5LDUyNDM5MCw1MjQzMjYsNTg5OTk3LDUyNDI5NCw1MjQ0MjIsNTI0MzU4LDU5MDA2MSw0NTkwMTUsNTI0MzgyLDUyNDMxOCw1ODk5ODEsNDU5MDMxLDUyNDQxNCw1MjQzNTAsNTkwMDQ1LDQ1OTAyMyw1MjQzOTgsNTI0MzM0LDU5MDAxMyw1MjQzMDIsNTI0NDMwLDUyNDM2Niw1OTAwNzcsNDU5MDA4LDUyNDM2OSw1MjQzMDUsNTI0NTY5LDQ1OTAyNCw1MjQ0MDEsNTI0MzM3LDU5MDAxOSw0NTkwMTYsNTI0Mzg1LDUyNDMyMSw1ODk5ODcsNTI0Mjg5LDUyNDQxNyw1MjQzNTMsNTkwMDUxLDQ1OTAxMiw1MjQzNzcsNTI0MzEzLDU4OTk3MSw0NTkwMjgsNTI0NDA5LDUyNDM0NSw1OTAwMzUsNDU5MDIwLDUyNDM5Myw1MjQzMjksNTkwMDAzLDUyNDI5Nyw1MjQ0MjUsNTI0MzYxLDU5MDA2Nyw0NTkwMTAsNTI0MzczLDUyNDMwOSw1MjQ1NzMsNDU5MDI2LDUyNDQwNSw1MjQzNDEsNTkwMDI3LDQ1OTAxOCw1MjQzODksNTI0MzI1LDU4OTk5NSw1MjQyOTMsNTI0NDIxLDUyNDM1Nyw1OTAwNTksNDU5MDE0LDUyNDM4MSw1MjQzMTcsNTg5OTc5LDQ1OTAzMCw1MjQ0MTMsNTI0MzQ5LDU5MDA0Myw0NTkwMjIsNTI0Mzk3LDUyNDMzMyw1OTAwMTEsNTI0MzAxLDUyNDQyOSw1MjQzNjUsNTkwMDc1LDQ1OTAwOSw1MjQzNzEsNTI0MzA3LDUyNDU3MSw0NTkwMjUsNTI0NDAzLDUyNDMzOSw1OTAwMjMsNDU5MDE3LDUyNDM4Nyw1MjQzMjMsNTg5OTkxLDUyNDI5MSw1MjQ0MTksNTI0MzU1LDU5MDA1NSw0NTkwMTMsNTI0Mzc5LDUyNDMxNSw1ODk5NzUsNDU5MDI5LDUyNDQxMSw1MjQzNDcsNTkwMDM5LDQ1OTAyMSw1MjQzOTUsNTI0MzMxLDU5MDAwNyw1MjQyOTksNTI0NDI3LDUyNDM2Myw1OTAwNzEsNDU5MDExLDUyNDM3NSw1MjQzMTEsNTI0NTc1LDQ1OTAyNyw1MjQ0MDcsNTI0MzQzLDU5MDAzMSw0NTkwMTksNTI0MzkxLDUyNDMyNyw1ODk5OTksNTI0Mjk1LDUyNDQyMyw1MjQzNTksNTkwMDYzLDQ1OTAxNSw1MjQzODMsNTI0MzE5LDU4OTk4Myw0NTkwMzEsNTI0NDE1LDUyNDM1MSw1OTAwNDcsNDU5MDIzLDUyNDM5OSw1MjQzMzUsNTkwMDE1LDUyNDMwMyw1MjQ0MzEsNTI0MzY3LDU5MDA3OV0pLDldLEpuPVtuZXcgSW50MzJBcnJheShbMzI3NjgwLDMyNzY5NiwzMjc2ODgsMzI3NzA0LDMyNzY4NCwzMjc3MDAsMzI3NjkyLDMyNzcwOCwzMjc2ODIsMzI3Njk4LDMyNzY5MCwzMjc3MDYsMzI3Njg2LDMyNzcwMiwzMjc2OTQsMCwzMjc2ODEsMzI3Njk3LDMyNzY4OSwzMjc3MDUsMzI3Njg1LDMyNzcwMSwzMjc2OTMsMzI3NzA5LDMyNzY4MywzMjc2OTksMzI3NjkxLDMyNzcwNywzMjc2ODcsMzI3NzAzLDMyNzY5NSwwXSksNV07Y2xhc3MgRmxhdGVTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17I0w9ITA7Y29uc3RydWN0b3IoZSx0KXtzdXBlcih0KTt0aGlzLnN0cmVhbT1lO3RoaXMuZGljdD1lLmRpY3Q7Y29uc3Qgbj1lLmdldEJ5dGUoKSxhPWUuZ2V0Qnl0ZSgpO2lmKC0xPT09bnx8LTE9PT1hKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBoZWFkZXIgaW4gZmxhdGUgc3RyZWFtOiAke259LCAke2F9YCk7aWYoOCE9KDE1Jm4pKXRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgaW4gZmxhdGUgc3RyZWFtOiAke259LCAke2F9YCk7aWYoKChuPDw4KSthKSUzMSE9MCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEJhZCBGQ0hFQ0sgaW4gZmxhdGUgc3RyZWFtOiAke259LCAke2F9YCk7aWYoMzImYSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEZESUNUIGJpdCBzZXQgaW4gZmxhdGUgc3RyZWFtOiAke259LCAke2F9YCk7dGhpcy5jb2RlU2l6ZT0wO3RoaXMuY29kZUJ1Zj0wfWFzeW5jIGdldEltYWdlRGF0YShlLHQpe2NvbnN0IG49YXdhaXQgdGhpcy5hc3luY0dldEJ5dGVzKCk7cmV0dXJuIG4/bi5sZW5ndGg8PWU/bjpuLnN1YmFycmF5KDAsZSk6dGhpcy5nZXRCeXRlcyhlKX1hc3luYyBhc3luY0dldEJ5dGVzKCl7Y29uc3R7ZGVjb21wcmVzc2VkOmUsY29tcHJlc3NlZDp0fT1hd2FpdCB0aGlzLmFzeW5jR2V0Qnl0ZXNGcm9tRGVjb21wcmVzc2lvblN0cmVhbSgiZGVmbGF0ZSIpO2lmKGUpcmV0dXJuIGU7dGhpcy4jTD0hMTt0aGlzLnN0cmVhbT1uZXcgU3RyZWFtKHQsMix0Lmxlbmd0aCx0aGlzLnN0cmVhbS5kaWN0KTt0aGlzLnJlc2V0KCk7cmV0dXJuIG51bGx9Z2V0IGlzQXN5bmMoKXtyZXR1cm4gdGhpcy4jTH1nZXRCaXRzKGUpe2NvbnN0IHQ9dGhpcy5zdHJlYW07bGV0IG4sYT10aGlzLmNvZGVTaXplLHM9dGhpcy5jb2RlQnVmO2Zvcig7YTxlOyl7aWYoLTE9PT0obj10LmdldEJ5dGUoKSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJCYWQgZW5jb2RpbmcgaW4gZmxhdGUgc3RyZWFtIik7c3w9bjw8YTthKz04fW49cyYoMTw8ZSktMTt0aGlzLmNvZGVCdWY9cz4+ZTt0aGlzLmNvZGVTaXplPWEtPWU7cmV0dXJuIG59Z2V0Q29kZShlKXtjb25zdCB0PXRoaXMuc3RyZWFtLG49ZVswXSxhPWVbMV07bGV0IHMscj10aGlzLmNvZGVTaXplLGk9dGhpcy5jb2RlQnVmO2Zvcig7cjxhJiYtMSE9PShzPXQuZ2V0Qnl0ZSgpKTspe2l8PXM8PHI7cis9OH1jb25zdCBvPW5baSYoMTw8YSktMV0sbD1vPj4xNixmPTY1NTM1Jm87aWYobDwxfHxyPGwpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJCYWQgZW5jb2RpbmcgaW4gZmxhdGUgc3RyZWFtIik7dGhpcy5jb2RlQnVmPWk+Pmw7dGhpcy5jb2RlU2l6ZT1yLWw7cmV0dXJuIGZ9Z2VuZXJhdGVIdWZmbWFuVGFibGUoZSl7Y29uc3QgdD1lLmxlbmd0aDtsZXQgbixhPTA7Zm9yKG49MDtuPHQ7KytuKWVbbl0+YSYmKGE9ZVtuXSk7Y29uc3Qgcz0xPDxhLHI9bmV3IEludDMyQXJyYXkocyk7Zm9yKGxldCBpPTEsbz0wLGw9MjtpPD1hOysraSxvPDw9MSxsPDw9MSlmb3IobGV0IGE9MDthPHQ7KythKWlmKGVbYV09PT1pKXtsZXQgZT0wLHQ9bztmb3Iobj0wO248aTsrK24pe2U9ZTw8MXwxJnQ7dD4+PTF9Zm9yKG49ZTtuPHM7bis9bClyW25dPWk8PDE2fGE7KytvfXJldHVybltyLGFdfSNVKGUpe2luZm8oZSk7dGhpcy5lb2Y9ITB9cmVhZEJsb2NrKCl7bGV0IGUsdCxuO2NvbnN0IGE9dGhpcy5zdHJlYW07dHJ5e3Q9dGhpcy5nZXRCaXRzKDMpfWNhdGNoKGUpe3RoaXMuI1UoZS5tZXNzYWdlKTtyZXR1cm59MSZ0JiYodGhpcy5lb2Y9ITApO3Q+Pj0xO2lmKDA9PT10KXtsZXQgdDtpZigtMT09PSh0PWEuZ2V0Qnl0ZSgpKSl7dGhpcy4jVSgiQmFkIGJsb2NrIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW0iKTtyZXR1cm59bGV0IG49dDtpZigtMT09PSh0PWEuZ2V0Qnl0ZSgpKSl7dGhpcy4jVSgiQmFkIGJsb2NrIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW0iKTtyZXR1cm59bnw9dDw8ODtpZigtMT09PSh0PWEuZ2V0Qnl0ZSgpKSl7dGhpcy4jVSgiQmFkIGJsb2NrIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW0iKTtyZXR1cm59bGV0IHM9dDtpZigtMT09PSh0PWEuZ2V0Qnl0ZSgpKSl7dGhpcy4jVSgiQmFkIGJsb2NrIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW0iKTtyZXR1cm59c3w9dDw8ODtpZihzIT09KDY1NTM1Jn5uKSYmKDAhPT1ufHwwIT09cykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJCYWQgdW5jb21wcmVzc2VkIGJsb2NrIGxlbmd0aCBpbiBmbGF0ZSBzdHJlYW0iKTt0aGlzLmNvZGVCdWY9MDt0aGlzLmNvZGVTaXplPTA7Y29uc3Qgcj10aGlzLmJ1ZmZlckxlbmd0aCxpPXIrbjtlPXRoaXMuZW5zdXJlQnVmZmVyKGkpO3RoaXMuYnVmZmVyTGVuZ3RoPWk7aWYoMD09PW4pLTE9PT1hLnBlZWtCeXRlKCkmJih0aGlzLmVvZj0hMCk7ZWxzZXtjb25zdCB0PWEuZ2V0Qnl0ZXMobik7ZS5zZXQodCxyKTt0Lmxlbmd0aDxuJiYodGhpcy5lb2Y9ITApfXJldHVybn1sZXQgcyxyO2lmKDE9PT10KXtzPVluO3I9Sm59ZWxzZXtpZigyIT09dCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gYmxvY2sgdHlwZSBpbiBmbGF0ZSBzdHJlYW0iKTt7Y29uc3QgZT10aGlzLmdldEJpdHMoNSkrMjU3LHQ9dGhpcy5nZXRCaXRzKDUpKzEsYT10aGlzLmdldEJpdHMoNCkrNCxpPW5ldyBVaW50OEFycmF5KEduLmxlbmd0aCk7bGV0IG87Zm9yKG89MDtvPGE7KytvKWlbR25bb11dPXRoaXMuZ2V0Qml0cygzKTtjb25zdCBsPXRoaXMuZ2VuZXJhdGVIdWZmbWFuVGFibGUoaSk7bj0wO289MDtjb25zdCBmPWUrdCxjPW5ldyBVaW50OEFycmF5KGYpO2xldCBoLHUsbTtmb3IoO288Zjspe2NvbnN0IGU9dGhpcy5nZXRDb2RlKGwpO2lmKDE2PT09ZSl7aD0yO3U9MzttPW59ZWxzZSBpZigxNz09PWUpe2g9Mzt1PTM7bT1uPTB9ZWxzZXtpZigxOCE9PWUpe2NbbysrXT1uPWU7Y29udGludWV9aD03O3U9MTE7bT1uPTB9bGV0IHQ9dGhpcy5nZXRCaXRzKGgpK3U7Zm9yKDt0LS0gPjA7KWNbbysrXT1tfXM9dGhpcy5nZW5lcmF0ZUh1ZmZtYW5UYWJsZShjLnN1YmFycmF5KDAsZSkpO3I9dGhpcy5nZW5lcmF0ZUh1ZmZtYW5UYWJsZShjLnN1YmFycmF5KGUsZikpfX1lPXRoaXMuYnVmZmVyO2xldCBpPWU/ZS5sZW5ndGg6MCxvPXRoaXMuYnVmZmVyTGVuZ3RoO2Zvcig7Oyl7bGV0IHQ9dGhpcy5nZXRDb2RlKHMpO2lmKHQ8MjU2KXtpZihvKzE+PWkpe2U9dGhpcy5lbnN1cmVCdWZmZXIobysxKTtpPWUubGVuZ3RofWVbbysrXT10O2NvbnRpbnVlfWlmKDI1Nj09PXQpe3RoaXMuYnVmZmVyTGVuZ3RoPW87cmV0dXJufXQtPTI1Nzt0PVZuW3RdO2xldCBhPXQ+PjE2O2E+MCYmKGE9dGhpcy5nZXRCaXRzKGEpKTtuPSg2NTUzNSZ0KSthO3Q9dGhpcy5nZXRDb2RlKHIpO3Q9JG5bdF07YT10Pj4xNjthPjAmJihhPXRoaXMuZ2V0Qml0cyhhKSk7Y29uc3QgbD0oNjU1MzUmdCkrYTtpZihvK24+PWkpe2U9dGhpcy5lbnN1cmVCdWZmZXIobytuKTtpPWUubGVuZ3RofWZvcihsZXQgdD0wO3Q8bjsrK3QsKytvKWVbb109ZVtvLWxdfX19Y29uc3QgUW49W3txZToyMjAxNyxubXBzOjEsbmxwczoxLHN3aXRjaEZsYWc6MX0se3FlOjEzMzEzLG5tcHM6MixubHBzOjYsc3dpdGNoRmxhZzowfSx7cWU6NjE0NSxubXBzOjMsbmxwczo5LHN3aXRjaEZsYWc6MH0se3FlOjI3NTMsbm1wczo0LG5scHM6MTIsc3dpdGNoRmxhZzowfSx7cWU6MTMxMyxubXBzOjUsbmxwczoyOSxzd2l0Y2hGbGFnOjB9LHtxZTo1NDUsbm1wczozOCxubHBzOjMzLHN3aXRjaEZsYWc6MH0se3FlOjIyMDE3LG5tcHM6NyxubHBzOjYsc3dpdGNoRmxhZzoxfSx7cWU6MjE1MDUsbm1wczo4LG5scHM6MTQsc3dpdGNoRmxhZzowfSx7cWU6MTg0MzMsbm1wczo5LG5scHM6MTQsc3dpdGNoRmxhZzowfSx7cWU6MTQzMzcsbm1wczoxMCxubHBzOjE0LHN3aXRjaEZsYWc6MH0se3FlOjEyMjg5LG5tcHM6MTEsbmxwczoxNyxzd2l0Y2hGbGFnOjB9LHtxZTo5MjE3LG5tcHM6MTIsbmxwczoxOCxzd2l0Y2hGbGFnOjB9LHtxZTo3MTY5LG5tcHM6MTMsbmxwczoyMCxzd2l0Y2hGbGFnOjB9LHtxZTo1NjMzLG5tcHM6MjksbmxwczoyMSxzd2l0Y2hGbGFnOjB9LHtxZToyMjAxNyxubXBzOjE1LG5scHM6MTQsc3dpdGNoRmxhZzoxfSx7cWU6MjE1MDUsbm1wczoxNixubHBzOjE0LHN3aXRjaEZsYWc6MH0se3FlOjIwNzM3LG5tcHM6MTcsbmxwczoxNSxzd2l0Y2hGbGFnOjB9LHtxZToxODQzMyxubXBzOjE4LG5scHM6MTYsc3dpdGNoRmxhZzowfSx7cWU6MTQzMzcsbm1wczoxOSxubHBzOjE3LHN3aXRjaEZsYWc6MH0se3FlOjEzMzEzLG5tcHM6MjAsbmxwczoxOCxzd2l0Y2hGbGFnOjB9LHtxZToxMjI4OSxubXBzOjIxLG5scHM6MTksc3dpdGNoRmxhZzowfSx7cWU6MTAyNDEsbm1wczoyMixubHBzOjE5LHN3aXRjaEZsYWc6MH0se3FlOjkyMTcsbm1wczoyMyxubHBzOjIwLHN3aXRjaEZsYWc6MH0se3FlOjg3MDUsbm1wczoyNCxubHBzOjIxLHN3aXRjaEZsYWc6MH0se3FlOjcxNjksbm1wczoyNSxubHBzOjIyLHN3aXRjaEZsYWc6MH0se3FlOjYxNDUsbm1wczoyNixubHBzOjIzLHN3aXRjaEZsYWc6MH0se3FlOjU2MzMsbm1wczoyNyxubHBzOjI0LHN3aXRjaEZsYWc6MH0se3FlOjUxMjEsbm1wczoyOCxubHBzOjI1LHN3aXRjaEZsYWc6MH0se3FlOjQ2MDksbm1wczoyOSxubHBzOjI2LHN3aXRjaEZsYWc6MH0se3FlOjQzNTMsbm1wczozMCxubHBzOjI3LHN3aXRjaEZsYWc6MH0se3FlOjI3NTMsbm1wczozMSxubHBzOjI4LHN3aXRjaEZsYWc6MH0se3FlOjI0OTcsbm1wczozMixubHBzOjI5LHN3aXRjaEZsYWc6MH0se3FlOjIyMDksbm1wczozMyxubHBzOjMwLHN3aXRjaEZsYWc6MH0se3FlOjEzMTMsbm1wczozNCxubHBzOjMxLHN3aXRjaEZsYWc6MH0se3FlOjEwODksbm1wczozNSxubHBzOjMyLHN3aXRjaEZsYWc6MH0se3FlOjY3MyxubXBzOjM2LG5scHM6MzMsc3dpdGNoRmxhZzowfSx7cWU6NTQ1LG5tcHM6MzcsbmxwczozNCxzd2l0Y2hGbGFnOjB9LHtxZTozMjEsbm1wczozOCxubHBzOjM1LHN3aXRjaEZsYWc6MH0se3FlOjI3MyxubXBzOjM5LG5scHM6MzYsc3dpdGNoRmxhZzowfSx7cWU6MTMzLG5tcHM6NDAsbmxwczozNyxzd2l0Y2hGbGFnOjB9LHtxZTo3MyxubXBzOjQxLG5scHM6Mzgsc3dpdGNoRmxhZzowfSx7cWU6Mzcsbm1wczo0MixubHBzOjM5LHN3aXRjaEZsYWc6MH0se3FlOjIxLG5tcHM6NDMsbmxwczo0MCxzd2l0Y2hGbGFnOjB9LHtxZTo5LG5tcHM6NDQsbmxwczo0MSxzd2l0Y2hGbGFnOjB9LHtxZTo1LG5tcHM6NDUsbmxwczo0Mixzd2l0Y2hGbGFnOjB9LHtxZToxLG5tcHM6NDUsbmxwczo0Myxzd2l0Y2hGbGFnOjB9LHtxZToyMjAxNyxubXBzOjQ2LG5scHM6NDYsc3dpdGNoRmxhZzowfV07Y2xhc3MgQXJpdGhtZXRpY0RlY29kZXJ7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuZGF0YT1lO3RoaXMuYnA9dDt0aGlzLmRhdGFFbmQ9bjt0aGlzLmNoaWdoPWVbdF07dGhpcy5jbG93PTA7dGhpcy5ieXRlSW4oKTt0aGlzLmNoaWdoPXRoaXMuY2hpZ2g8PDcmNjU1MzV8dGhpcy5jbG93Pj45JjEyNzt0aGlzLmNsb3c9dGhpcy5jbG93PDw3JjY1NTM1O3RoaXMuY3QtPTc7dGhpcy5hPTMyNzY4fWJ5dGVJbigpe2NvbnN0IGU9dGhpcy5kYXRhO2xldCB0PXRoaXMuYnA7aWYoMjU1PT09ZVt0XSlpZihlW3QrMV0+MTQzKXt0aGlzLmNsb3crPTY1MjgwO3RoaXMuY3Q9OH1lbHNle3QrKzt0aGlzLmNsb3crPWVbdF08PDk7dGhpcy5jdD03O3RoaXMuYnA9dH1lbHNle3QrKzt0aGlzLmNsb3crPXQ8dGhpcy5kYXRhRW5kP2VbdF08PDg6NjUyODA7dGhpcy5jdD04O3RoaXMuYnA9dH1pZih0aGlzLmNsb3c+NjU1MzUpe3RoaXMuY2hpZ2grPXRoaXMuY2xvdz4+MTY7dGhpcy5jbG93Jj02NTUzNX19cmVhZEJpdChlLHQpe2xldCBuPWVbdF0+PjEsYT0xJmVbdF07Y29uc3Qgcz1RbltuXSxyPXMucWU7bGV0IGksbz10aGlzLmEtcjtpZih0aGlzLmNoaWdoPHIpaWYobzxyKXtvPXI7aT1hO249cy5ubXBzfWVsc2V7bz1yO2k9MV5hOzE9PT1zLnN3aXRjaEZsYWcmJihhPWkpO249cy5ubHBzfWVsc2V7dGhpcy5jaGlnaC09cjtpZigzMjc2OCZvKXt0aGlzLmE9bztyZXR1cm4gYX1pZihvPHIpe2k9MV5hOzE9PT1zLnN3aXRjaEZsYWcmJihhPWkpO249cy5ubHBzfWVsc2V7aT1hO249cy5ubXBzfX1kb3swPT09dGhpcy5jdCYmdGhpcy5ieXRlSW4oKTtvPDw9MTt0aGlzLmNoaWdoPXRoaXMuY2hpZ2g8PDEmNjU1MzV8dGhpcy5jbG93Pj4xNSYxO3RoaXMuY2xvdz10aGlzLmNsb3c8PDEmNjU1MzU7dGhpcy5jdC0tfXdoaWxlKCEoMzI3NjgmbykpO3RoaXMuYT1vO2VbdF09bjw8MXxhO3JldHVybiBpfX1jbGFzcyBKYmlnMkVycm9yIGV4dGVuZHMgZW57Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiSmJpZzJFcnJvciIpfX1jbGFzcyBDb250ZXh0Q2FjaGV7Z2V0Q29udGV4dHMoZSl7cmV0dXJuIGUgaW4gdGhpcz90aGlzW2VdOnRoaXNbZV09bmV3IEludDhBcnJheSg2NTUzNil9fWNsYXNzIERlY29kaW5nQ29udGV4dHtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5kYXRhPWU7dGhpcy5zdGFydD10O3RoaXMuZW5kPW59Z2V0IGRlY29kZXIoKXtyZXR1cm4gc2hhZG93KHRoaXMsImRlY29kZXIiLG5ldyBBcml0aG1ldGljRGVjb2Rlcih0aGlzLmRhdGEsdGhpcy5zdGFydCx0aGlzLmVuZCkpfWdldCBjb250ZXh0Q2FjaGUoKXtyZXR1cm4gc2hhZG93KHRoaXMsImNvbnRleHRDYWNoZSIsbmV3IENvbnRleHRDYWNoZSl9fWZ1bmN0aW9uIGRlY29kZUludGVnZXIoZSx0LG4pe2NvbnN0IGE9ZS5nZXRDb250ZXh0cyh0KTtsZXQgcz0xO2Z1bmN0aW9uIHJlYWRCaXRzKGUpe2xldCB0PTA7Zm9yKGxldCByPTA7cjxlO3IrKyl7Y29uc3QgZT1uLnJlYWRCaXQoYSxzKTtzPXM8MjU2P3M8PDF8ZTo1MTEmKHM8PDF8ZSl8MjU2O3Q9dDw8MXxlfXJldHVybiB0Pj4+MH1jb25zdCByPXJlYWRCaXRzKDEpLGk9cmVhZEJpdHMoMSk/cmVhZEJpdHMoMSk/cmVhZEJpdHMoMSk/cmVhZEJpdHMoMSk/cmVhZEJpdHMoMSk/cmVhZEJpdHMoMzIpKzQ0MzY6cmVhZEJpdHMoMTIpKzM0MDpyZWFkQml0cyg4KSs4NDpyZWFkQml0cyg2KSsyMDpyZWFkQml0cyg0KSs0OnJlYWRCaXRzKDIpO2xldCBvOzA9PT1yP289aTppPjAmJihvPS1pKTtyZXR1cm4gbz49LTIxNDc0ODM2NDgmJm88PW1uP286bnVsbH1mdW5jdGlvbiBkZWNvZGVJQUlEKGUsdCxuKXtjb25zdCBhPWUuZ2V0Q29udGV4dHMoIklBSUQiKTtsZXQgcz0xO2ZvcihsZXQgZT0wO2U8bjtlKyspe3M9czw8MXx0LnJlYWRCaXQoYSxzKX1yZXR1cm4gbjwzMT9zJigxPDxuKS0xOjIxNDc0ODM2NDcmc31jb25zdCBabj1bIlN5bWJvbERpY3Rpb25hcnkiLG51bGwsbnVsbCxudWxsLCJJbnRlcm1lZGlhdGVUZXh0UmVnaW9uIixudWxsLCJJbW1lZGlhdGVUZXh0UmVnaW9uIiwiSW1tZWRpYXRlTG9zc2xlc3NUZXh0UmVnaW9uIixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsIlBhdHRlcm5EaWN0aW9uYXJ5IixudWxsLG51bGwsbnVsbCwiSW50ZXJtZWRpYXRlSGFsZnRvbmVSZWdpb24iLG51bGwsIkltbWVkaWF0ZUhhbGZ0b25lUmVnaW9uIiwiSW1tZWRpYXRlTG9zc2xlc3NIYWxmdG9uZVJlZ2lvbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsIkludGVybWVkaWF0ZUdlbmVyaWNSZWdpb24iLG51bGwsIkltbWVkaWF0ZUdlbmVyaWNSZWdpb24iLCJJbW1lZGlhdGVMb3NzbGVzc0dlbmVyaWNSZWdpb24iLCJJbnRlcm1lZGlhdGVHZW5lcmljUmVmaW5lbWVudFJlZ2lvbiIsbnVsbCwiSW1tZWRpYXRlR2VuZXJpY1JlZmluZW1lbnRSZWdpb24iLCJJbW1lZGlhdGVMb3NzbGVzc0dlbmVyaWNSZWZpbmVtZW50UmVnaW9uIixudWxsLG51bGwsbnVsbCxudWxsLCJQYWdlSW5mb3JtYXRpb24iLCJFbmRPZlBhZ2UiLCJFbmRPZlN0cmlwZSIsIkVuZE9mRmlsZSIsIlByb2ZpbGVzIiwiVGFibGVzIixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsIkV4dGVuc2lvbiJdLGVhPVtbe3g6LTEseTotMn0se3g6MCx5Oi0yfSx7eDoxLHk6LTJ9LHt4Oi0yLHk6LTF9LHt4Oi0xLHk6LTF9LHt4OjAseTotMX0se3g6MSx5Oi0xfSx7eDoyLHk6LTF9LHt4Oi00LHk6MH0se3g6LTMseTowfSx7eDotMix5OjB9LHt4Oi0xLHk6MH1dLFt7eDotMSx5Oi0yfSx7eDowLHk6LTJ9LHt4OjEseTotMn0se3g6Mix5Oi0yfSx7eDotMix5Oi0xfSx7eDotMSx5Oi0xfSx7eDowLHk6LTF9LHt4OjEseTotMX0se3g6Mix5Oi0xfSx7eDotMyx5OjB9LHt4Oi0yLHk6MH0se3g6LTEseTowfV0sW3t4Oi0xLHk6LTJ9LHt4OjAseTotMn0se3g6MSx5Oi0yfSx7eDotMix5Oi0xfSx7eDotMSx5Oi0xfSx7eDowLHk6LTF9LHt4OjEseTotMX0se3g6LTIseTowfSx7eDotMSx5OjB9XSxbe3g6LTMseTotMX0se3g6LTIseTotMX0se3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4Oi00LHk6MH0se3g6LTMseTowfSx7eDotMix5OjB9LHt4Oi0xLHk6MH1dXSx0YT1be2NvZGluZzpbe3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4Oi0xLHk6MH1dLHJlZmVyZW5jZTpbe3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4Oi0xLHk6MH0se3g6MCx5OjB9LHt4OjEseTowfSx7eDotMSx5OjF9LHt4OjAseToxfSx7eDoxLHk6MX1dfSx7Y29kaW5nOlt7eDotMSx5Oi0xfSx7eDowLHk6LTF9LHt4OjEseTotMX0se3g6LTEseTowfV0scmVmZXJlbmNlOlt7eDowLHk6LTF9LHt4Oi0xLHk6MH0se3g6MCx5OjB9LHt4OjEseTowfSx7eDowLHk6MX0se3g6MSx5OjF9XX1dLG5hPVszOTcxNywxOTQxLDIyOSw0MDVdLGFhPVszMiw4XTtmdW5jdGlvbiBkZWNvZGVCaXRtYXAoZSx0LG4sYSxzLHIsaSxvKXtpZihlKXtyZXR1cm4gZGVjb2RlTU1SQml0bWFwKG5ldyBSZWFkZXIoby5kYXRhLG8uc3RhcnQsby5lbmQpLHQsbiwhMSl9aWYoMD09PWEmJiFyJiYhcyYmND09PWkubGVuZ3RoJiYzPT09aVswXS54JiYtMT09PWlbMF0ueSYmLTM9PT1pWzFdLngmJi0xPT09aVsxXS55JiYyPT09aVsyXS54JiYtMj09PWlbMl0ueSYmLTI9PT1pWzNdLngmJi0yPT09aVszXS55KXJldHVybiBmdW5jdGlvbiBkZWNvZGVCaXRtYXBUZW1wbGF0ZTAoZSx0LG4pe2NvbnN0IGE9bi5kZWNvZGVyLHM9bi5jb250ZXh0Q2FjaGUuZ2V0Q29udGV4dHMoIkdCIikscj1bXTtsZXQgaSxvLGwsZixjLGgsdTtmb3Iobz0wO288dDtvKyspe2M9cltvXT1uZXcgVWludDhBcnJheShlKTtoPW88MT9jOnJbby0xXTt1PW88Mj9jOnJbby0yXTtpPXVbMF08PDEzfHVbMV08PDEyfHVbMl08PDExfGhbMF08PDd8aFsxXTw8NnxoWzJdPDw1fGhbM108PDQ7Zm9yKGw9MDtsPGU7bCsrKXtjW2xdPWY9YS5yZWFkQml0KHMsaSk7aT0oMzE3MzUmaSk8PDF8KGwrMzxlP3VbbCszXTw8MTE6MCl8KGwrNDxlP2hbbCs0XTw8NDowKXxmfX1yZXR1cm4gcn0odCxuLG8pO2NvbnN0IGw9ISFyLGY9ZWFbYV0uY29uY2F0KGkpO2Yuc29ydCgoZSx0KT0+ZS55LXQueXx8ZS54LXQueCk7Y29uc3QgYz1mLmxlbmd0aCxoPW5ldyBJbnQ4QXJyYXkoYyksdT1uZXcgSW50OEFycmF5KGMpLG09W107bGV0IHAsZCxnPTAsYj0wLHc9MCxqPTA7Zm9yKGQ9MDtkPGM7ZCsrKXtoW2RdPWZbZF0ueDt1W2RdPWZbZF0ueTtiPU1hdGgubWluKGIsZltkXS54KTt3PU1hdGgubWF4KHcsZltkXS54KTtqPU1hdGgubWluKGosZltkXS55KTtkPGMtMSYmZltkXS55PT09ZltkKzFdLnkmJmZbZF0ueD09PWZbZCsxXS54LTE/Z3w9MTw8Yy0xLWQ6bS5wdXNoKGQpfWNvbnN0IGs9bS5sZW5ndGgseT1uZXcgSW50OEFycmF5KGspLHE9bmV3IEludDhBcnJheShrKSx2PW5ldyBVaW50MTZBcnJheShrKTtmb3IocD0wO3A8aztwKyspe2Q9bVtwXTt5W3BdPWZbZF0ueDtxW3BdPWZbZF0ueTt2W3BdPTE8PGMtMS1kfWNvbnN0IFM9LWIseD0taixDPXQtdyxGPW5hW2FdO2xldCBUPW5ldyBVaW50OEFycmF5KHQpO2NvbnN0IEg9W10sTz1vLmRlY29kZXIsUj1vLmNvbnRleHRDYWNoZS5nZXRDb250ZXh0cygiR0IiKTtsZXQgRCxNLEUsTix6LEw9MCxVPTA7Zm9yKGxldCBlPTA7ZTxuO2UrKyl7aWYocyl7TF49Ty5yZWFkQml0KFIsRik7aWYoTCl7SC5wdXNoKFQpO2NvbnRpbnVlfX1UPW5ldyBVaW50OEFycmF5KFQpO0gucHVzaChUKTtmb3IoRD0wO0Q8dDtEKyspe2lmKGwmJnJbZV1bRF0pe1RbRF09MDtjb250aW51ZX1pZihEPj1TJiZEPEMmJmU+PXgpe1U9VTw8MSZnO2ZvcihkPTA7ZDxrO2QrKyl7TT1lK3FbZF07RT1EK3lbZF07Tj1IW01dW0VdO2lmKE4pe049dltkXTtVfD1OfX19ZWxzZXtVPTA7ej1jLTE7Zm9yKGQ9MDtkPGM7ZCsrLHotLSl7RT1EK2hbZF07aWYoRT49MCYmRTx0KXtNPWUrdVtkXTtpZihNPj0wKXtOPUhbTV1bRV07TiYmKFV8PU48PHopfX19fWNvbnN0IG49Ty5yZWFkQml0KFIsVSk7VFtEXT1ufX1yZXR1cm4gSH1mdW5jdGlvbiBkZWNvZGVSZWZpbmVtZW50KGUsdCxuLGEscyxyLGksbyxsKXtsZXQgZj10YVtuXS5jb2Rpbmc7MD09PW4mJihmPWYuY29uY2F0KFtvWzBdXSkpO2NvbnN0IGM9Zi5sZW5ndGgsaD1uZXcgSW50MzJBcnJheShjKSx1PW5ldyBJbnQzMkFycmF5KGMpO2xldCBtO2ZvcihtPTA7bTxjO20rKyl7aFttXT1mW21dLng7dVttXT1mW21dLnl9bGV0IHA9dGFbbl0ucmVmZXJlbmNlOzA9PT1uJiYocD1wLmNvbmNhdChbb1sxXV0pKTtjb25zdCBkPXAubGVuZ3RoLGc9bmV3IEludDMyQXJyYXkoZCksYj1uZXcgSW50MzJBcnJheShkKTtmb3IobT0wO208ZDttKyspe2dbbV09cFttXS54O2JbbV09cFttXS55fWNvbnN0IHc9YVswXS5sZW5ndGgsaj1hLmxlbmd0aCxrPWFhW25dLHk9W10scT1sLmRlY29kZXIsdj1sLmNvbnRleHRDYWNoZS5nZXRDb250ZXh0cygiR1IiKTtsZXQgUz0wO2ZvcihsZXQgbj0wO248dDtuKyspe2lmKGkpe1NePXEucmVhZEJpdCh2LGspO2lmKFMpdGhyb3cgbmV3IEpiaWcyRXJyb3IoInByZWRpY3Rpb24gaXMgbm90IHN1cHBvcnRlZCIpfWNvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoZSk7eS5wdXNoKHQpO2ZvcihsZXQgaT0wO2k8ZTtpKyspe2xldCBvLGwsZj0wO2ZvcihtPTA7bTxjO20rKyl7bz1uK3VbbV07bD1pK2hbbV07bzwwfHxsPDB8fGw+PWU/Zjw8PTE6Zj1mPDwxfHlbb11bbF19Zm9yKG09MDttPGQ7bSsrKXtvPW4rYlttXS1yO2w9aStnW21dLXM7bzwwfHxvPj1qfHxsPDB8fGw+PXc/Zjw8PTE6Zj1mPDwxfGFbb11bbF19Y29uc3QgcD1xLnJlYWRCaXQodixmKTt0W2ldPXB9fXJldHVybiB5fWZ1bmN0aW9uIGRlY29kZVRleHRSZWdpb24oZSx0LG4sYSxzLHIsaSxvLGwsZixjLGgsdSxtLHAsZCxnLGIsdyl7aWYoZSYmdCl0aHJvdyBuZXcgSmJpZzJFcnJvcigicmVmaW5lbWVudCB3aXRoIEh1ZmZtYW4gaXMgbm90IHN1cHBvcnRlZCIpO2NvbnN0IGo9W107bGV0IGsseTtmb3Ioaz0wO2s8YTtrKyspe3k9bmV3IFVpbnQ4QXJyYXkobik7cyYmeS5maWxsKHMpO2oucHVzaCh5KX1jb25zdCBxPWcuZGVjb2Rlcix2PWcuY29udGV4dENhY2hlO2xldCBTPWU/LW0udGFibGVEZWx0YVQuZGVjb2RlKHcpOi1kZWNvZGVJbnRlZ2VyKHYsIklBRFQiLHEpLHg9MDtrPTA7Zm9yKDtrPHI7KXtTKz1lP20udGFibGVEZWx0YVQuZGVjb2RlKHcpOmRlY29kZUludGVnZXIodiwiSUFEVCIscSk7eCs9ZT9tLnRhYmxlRmlyc3RTLmRlY29kZSh3KTpkZWNvZGVJbnRlZ2VyKHYsIklBRlMiLHEpO2xldCBhPXg7Zm9yKDs7KXtsZXQgcz0wO2k+MSYmKHM9ZT93LnJlYWRCaXRzKGIpOmRlY29kZUludGVnZXIodiwiSUFJVCIscSkpO2NvbnN0IHI9aSpTK3MseD1lP20uc3ltYm9sSURUYWJsZS5kZWNvZGUodyk6ZGVjb2RlSUFJRCh2LHEsbCksQz10JiYoZT93LnJlYWRCaXQoKTpkZWNvZGVJbnRlZ2VyKHYsIklBUkkiLHEpKTtsZXQgRj1vW3hdLFQ9RlswXS5sZW5ndGgsSD1GLmxlbmd0aDtpZihDKXtjb25zdCBlPWRlY29kZUludGVnZXIodiwiSUFSRFciLHEpLHQ9ZGVjb2RlSW50ZWdlcih2LCJJQVJESCIscSk7VCs9ZTtIKz10O0Y9ZGVjb2RlUmVmaW5lbWVudChULEgscCxGLChlPj4xKStkZWNvZGVJbnRlZ2VyKHYsIklBUkRYIixxKSwodD4+MSkrZGVjb2RlSW50ZWdlcih2LCJJQVJEWSIscSksITEsZCxnKX1sZXQgTz0wO2Y/MSZoP089SC0xOmErPUgtMTpoPjE/YSs9VC0xOk89VC0xO2NvbnN0IFI9ci0oMSZoPzA6SC0xKSxEPWEtKDImaD9ULTE6MCk7bGV0IE0sRSxOO2lmKGYpZm9yKE09MDtNPEg7TSsrKXt5PWpbRCtNXTtpZigheSljb250aW51ZTtOPUZbTV07Y29uc3QgZT1NYXRoLm1pbihuLVIsVCk7c3dpdGNoKHUpe2Nhc2UgMDpmb3IoRT0wO0U8ZTtFKyspeVtSK0VdfD1OW0VdO2JyZWFrO2Nhc2UgMjpmb3IoRT0wO0U8ZTtFKyspeVtSK0VdXj1OW0VdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoYG9wZXJhdG9yICR7dX0gaXMgbm90IHN1cHBvcnRlZGApfX1lbHNlIGZvcihFPTA7RTxIO0UrKyl7eT1qW1IrRV07aWYoeSl7Tj1GW0VdO3N3aXRjaCh1KXtjYXNlIDA6Zm9yKE09MDtNPFQ7TSsrKXlbRCtNXXw9TltNXTticmVhaztjYXNlIDI6Zm9yKE09MDtNPFQ7TSsrKXlbRCtNXV49TltNXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKGBvcGVyYXRvciAke3V9IGlzIG5vdCBzdXBwb3J0ZWRgKX19fWsrKztjb25zdCB6PWU/bS50YWJsZURlbHRhUy5kZWNvZGUodyk6ZGVjb2RlSW50ZWdlcih2LCJJQURTIixxKTtpZihudWxsPT09eilicmVhazthKz1PK3orY319cmV0dXJuIGp9ZnVuY3Rpb24gcmVhZFNlZ21lbnRIZWFkZXIoZSx0KXtjb25zdCBuPXt9O24ubnVtYmVyPXJlYWRVaW50MzIoZSx0KTtjb25zdCBhPWVbdCs0XSxzPTYzJmE7aWYoIVpuW3NdKXRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIHNlZ21lbnQgdHlwZTogIitzKTtuLnR5cGU9cztuLnR5cGVOYW1lPVpuW3NdO24uZGVmZXJyZWROb25SZXRhaW49ISEoMTI4JmEpO2NvbnN0IHI9ISEoNjQmYSksaT1lW3QrNV07bGV0IG89aT4+NSY3O2NvbnN0IGw9WzMxJmldO2xldCBmPXQrNjtpZig3PT09byl7bz01MzY4NzA5MTEmcmVhZFVpbnQzMihlLGYtMSk7Zis9MztsZXQgdD1vKzg+PjM7bFswXT1lW2YrK107Zm9yKDstLXQ+MDspbC5wdXNoKGVbZisrXSl9ZWxzZSBpZig1PT09b3x8Nj09PW8pdGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgcmVmZXJyZWQtdG8gZmxhZ3MiKTtuLnJldGFpbkJpdHM9bDtsZXQgYz00O24ubnVtYmVyPD0yNTY/Yz0xOm4ubnVtYmVyPD02NTUzNiYmKGM9Mik7Y29uc3QgaD1bXTtsZXQgdSxtO2Zvcih1PTA7dTxvO3UrKyl7bGV0IHQ7dD0xPT09Yz9lW2ZdOjI9PT1jP3JlYWRVaW50MTYoZSxmKTpyZWFkVWludDMyKGUsZik7aC5wdXNoKHQpO2YrPWN9bi5yZWZlcnJlZFRvPWg7aWYocil7bi5wYWdlQXNzb2NpYXRpb249cmVhZFVpbnQzMihlLGYpO2YrPTR9ZWxzZSBuLnBhZ2VBc3NvY2lhdGlvbj1lW2YrK107bi5sZW5ndGg9cmVhZFVpbnQzMihlLGYpO2YrPTQ7aWYoNDI5NDk2NzI5NT09PW4ubGVuZ3RoKXtpZigzOCE9PXMpdGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgdW5rbm93biBzZWdtZW50IGxlbmd0aCIpO3tjb25zdCB0PXJlYWRSZWdpb25TZWdtZW50SW5mb3JtYXRpb24oZSxmKSxhPSEhKDEmZVtmK3NhXSkscz02LHI9bmV3IFVpbnQ4QXJyYXkocyk7aWYoIWEpe3JbMF09MjU1O3JbMV09MTcyfXJbMl09dC5oZWlnaHQ+Pj4yNCYyNTU7clszXT10LmhlaWdodD4+MTYmMjU1O3JbNF09dC5oZWlnaHQ+PjgmMjU1O3JbNV09MjU1JnQuaGVpZ2h0O2Zvcih1PWYsbT1lLmxlbmd0aDt1PG07dSsrKXtsZXQgdD0wO2Zvcig7dDxzJiZyW3RdPT09ZVt1K3RdOyl0Kys7aWYodD09PXMpe24ubGVuZ3RoPXUrczticmVha319aWYoNDI5NDk2NzI5NT09PW4ubGVuZ3RoKXRocm93IG5ldyBKYmlnMkVycm9yKCJzZWdtZW50IGVuZCB3YXMgbm90IGZvdW5kIil9fW4uaGVhZGVyRW5kPWY7cmV0dXJuIG59ZnVuY3Rpb24gcmVhZFNlZ21lbnRzKGUsdCxuLGEpe2NvbnN0IHM9W107bGV0IHI9bjtmb3IoO3I8YTspe2NvbnN0IG49cmVhZFNlZ21lbnRIZWFkZXIodCxyKTtyPW4uaGVhZGVyRW5kO2NvbnN0IGE9e2hlYWRlcjpuLGRhdGE6dH07aWYoIWUucmFuZG9tQWNjZXNzKXthLnN0YXJ0PXI7cis9bi5sZW5ndGg7YS5lbmQ9cn1zLnB1c2goYSk7aWYoNTE9PT1uLnR5cGUpYnJlYWt9aWYoZS5yYW5kb21BY2Nlc3MpZm9yKGxldCBlPTAsdD1zLmxlbmd0aDtlPHQ7ZSsrKXtzW2VdLnN0YXJ0PXI7cis9c1tlXS5oZWFkZXIubGVuZ3RoO3NbZV0uZW5kPXJ9cmV0dXJuIHN9ZnVuY3Rpb24gcmVhZFJlZ2lvblNlZ21lbnRJbmZvcm1hdGlvbihlLHQpe3JldHVybnt3aWR0aDpyZWFkVWludDMyKGUsdCksaGVpZ2h0OnJlYWRVaW50MzIoZSx0KzQpLHg6cmVhZFVpbnQzMihlLHQrOCkseTpyZWFkVWludDMyKGUsdCsxMiksY29tYmluYXRpb25PcGVyYXRvcjo3JmVbdCsxNl19fWNvbnN0IHNhPTE3O2Z1bmN0aW9uIHByb2Nlc3NTZWdtZW50KGUsdCl7Y29uc3Qgbj1lLmhlYWRlcixhPWUuZGF0YSxzPWUuZW5kO2xldCByLGksbyxsLGY9ZS5zdGFydDtzd2l0Y2gobi50eXBlKXtjYXNlIDA6Y29uc3QgZT17fSx0PXJlYWRVaW50MTYoYSxmKTtlLmh1ZmZtYW49ISEoMSZ0KTtlLnJlZmluZW1lbnQ9ISEoMiZ0KTtlLmh1ZmZtYW5ESFNlbGVjdG9yPXQ+PjImMztlLmh1ZmZtYW5EV1NlbGVjdG9yPXQ+PjQmMztlLmJpdG1hcFNpemVTZWxlY3Rvcj10Pj42JjE7ZS5hZ2dyZWdhdGlvbkluc3RhbmNlc1NlbGVjdG9yPXQ+PjcmMTtlLmJpdG1hcENvZGluZ0NvbnRleHRVc2VkPSEhKDI1NiZ0KTtlLmJpdG1hcENvZGluZ0NvbnRleHRSZXRhaW5lZD0hISg1MTImdCk7ZS50ZW1wbGF0ZT10Pj4xMCYzO2UucmVmaW5lbWVudFRlbXBsYXRlPXQ+PjEyJjE7Zis9MjtpZighZS5odWZmbWFuKXtsPTA9PT1lLnRlbXBsYXRlPzQ6MTtpPVtdO2ZvcihvPTA7bzxsO28rKyl7aS5wdXNoKHt4OnJlYWRJbnQ4KGEsZikseTpyZWFkSW50OChhLGYrMSl9KTtmKz0yfWUuYXQ9aX1pZihlLnJlZmluZW1lbnQmJiFlLnJlZmluZW1lbnRUZW1wbGF0ZSl7aT1bXTtmb3Iobz0wO288MjtvKyspe2kucHVzaCh7eDpyZWFkSW50OChhLGYpLHk6cmVhZEludDgoYSxmKzEpfSk7Zis9Mn1lLnJlZmluZW1lbnRBdD1pfWUubnVtYmVyT2ZFeHBvcnRlZFN5bWJvbHM9cmVhZFVpbnQzMihhLGYpO2YrPTQ7ZS5udW1iZXJPZk5ld1N5bWJvbHM9cmVhZFVpbnQzMihhLGYpO2YrPTQ7cj1bZSxuLm51bWJlcixuLnJlZmVycmVkVG8sYSxmLHNdO2JyZWFrO2Nhc2UgNjpjYXNlIDc6Y29uc3QgYz17fTtjLmluZm89cmVhZFJlZ2lvblNlZ21lbnRJbmZvcm1hdGlvbihhLGYpO2YrPXNhO2NvbnN0IGg9cmVhZFVpbnQxNihhLGYpO2YrPTI7Yy5odWZmbWFuPSEhKDEmaCk7Yy5yZWZpbmVtZW50PSEhKDImaCk7Yy5sb2dTdHJpcFNpemU9aD4+MiYzO2Muc3RyaXBTaXplPTE8PGMubG9nU3RyaXBTaXplO2MucmVmZXJlbmNlQ29ybmVyPWg+PjQmMztjLnRyYW5zcG9zZWQ9ISEoNjQmaCk7Yy5jb21iaW5hdGlvbk9wZXJhdG9yPWg+PjcmMztjLmRlZmF1bHRQaXhlbFZhbHVlPWg+PjkmMTtjLmRzT2Zmc2V0PWg8PDE3Pj4yNztjLnJlZmluZW1lbnRUZW1wbGF0ZT1oPj4xNSYxO2lmKGMuaHVmZm1hbil7Y29uc3QgZT1yZWFkVWludDE2KGEsZik7Zis9MjtjLmh1ZmZtYW5GUz0zJmU7Yy5odWZmbWFuRFM9ZT4+MiYzO2MuaHVmZm1hbkRUPWU+PjQmMztjLmh1ZmZtYW5SZWZpbmVtZW50RFc9ZT4+NiYzO2MuaHVmZm1hblJlZmluZW1lbnRESD1lPj44JjM7Yy5odWZmbWFuUmVmaW5lbWVudERYPWU+PjEwJjM7Yy5odWZmbWFuUmVmaW5lbWVudERZPWU+PjEyJjM7Yy5odWZmbWFuUmVmaW5lbWVudFNpemVTZWxlY3Rvcj0hISgxNjM4NCZlKX1pZihjLnJlZmluZW1lbnQmJiFjLnJlZmluZW1lbnRUZW1wbGF0ZSl7aT1bXTtmb3Iobz0wO288MjtvKyspe2kucHVzaCh7eDpyZWFkSW50OChhLGYpLHk6cmVhZEludDgoYSxmKzEpfSk7Zis9Mn1jLnJlZmluZW1lbnRBdD1pfWMubnVtYmVyT2ZTeW1ib2xJbnN0YW5jZXM9cmVhZFVpbnQzMihhLGYpO2YrPTQ7cj1bYyxuLnJlZmVycmVkVG8sYSxmLHNdO2JyZWFrO2Nhc2UgMTY6Y29uc3QgdT17fSxtPWFbZisrXTt1Lm1tcj0hISgxJm0pO3UudGVtcGxhdGU9bT4+MSYzO3UucGF0dGVybldpZHRoPWFbZisrXTt1LnBhdHRlcm5IZWlnaHQ9YVtmKytdO3UubWF4UGF0dGVybkluZGV4PXJlYWRVaW50MzIoYSxmKTtmKz00O3I9W3Usbi5udW1iZXIsYSxmLHNdO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpjb25zdCBwPXt9O3AuaW5mbz1yZWFkUmVnaW9uU2VnbWVudEluZm9ybWF0aW9uKGEsZik7Zis9c2E7Y29uc3QgZD1hW2YrK107cC5tbXI9ISEoMSZkKTtwLnRlbXBsYXRlPWQ+PjEmMztwLmVuYWJsZVNraXA9ISEoOCZkKTtwLmNvbWJpbmF0aW9uT3BlcmF0b3I9ZD4+NCY3O3AuZGVmYXVsdFBpeGVsVmFsdWU9ZD4+NyYxO3AuZ3JpZFdpZHRoPXJlYWRVaW50MzIoYSxmKTtmKz00O3AuZ3JpZEhlaWdodD1yZWFkVWludDMyKGEsZik7Zis9NDtwLmdyaWRPZmZzZXRYPTQyOTQ5NjcyOTUmcmVhZFVpbnQzMihhLGYpO2YrPTQ7cC5ncmlkT2Zmc2V0WT00Mjk0OTY3Mjk1JnJlYWRVaW50MzIoYSxmKTtmKz00O3AuZ3JpZFZlY3Rvclg9cmVhZFVpbnQxNihhLGYpO2YrPTI7cC5ncmlkVmVjdG9yWT1yZWFkVWludDE2KGEsZik7Zis9MjtyPVtwLG4ucmVmZXJyZWRUbyxhLGYsc107YnJlYWs7Y2FzZSAzODpjYXNlIDM5OmNvbnN0IGc9e307Zy5pbmZvPXJlYWRSZWdpb25TZWdtZW50SW5mb3JtYXRpb24oYSxmKTtmKz1zYTtjb25zdCBiPWFbZisrXTtnLm1tcj0hISgxJmIpO2cudGVtcGxhdGU9Yj4+MSYzO2cucHJlZGljdGlvbj0hISg4JmIpO2lmKCFnLm1tcil7bD0wPT09Zy50ZW1wbGF0ZT80OjE7aT1bXTtmb3Iobz0wO288bDtvKyspe2kucHVzaCh7eDpyZWFkSW50OChhLGYpLHk6cmVhZEludDgoYSxmKzEpfSk7Zis9Mn1nLmF0PWl9cj1bZyxhLGYsc107YnJlYWs7Y2FzZSA0ODpjb25zdCB3PXt3aWR0aDpyZWFkVWludDMyKGEsZiksaGVpZ2h0OnJlYWRVaW50MzIoYSxmKzQpLHJlc29sdXRpb25YOnJlYWRVaW50MzIoYSxmKzgpLHJlc29sdXRpb25ZOnJlYWRVaW50MzIoYSxmKzEyKX07NDI5NDk2NzI5NT09PXcuaGVpZ2h0JiZkZWxldGUgdy5oZWlnaHQ7Y29uc3Qgaj1hW2YrMTZdO3JlYWRVaW50MTYoYSxmKzE3KTt3Lmxvc3NsZXNzPSEhKDEmaik7dy5yZWZpbmVtZW50PSEhKDImaik7dy5kZWZhdWx0UGl4ZWxWYWx1ZT1qPj4yJjE7dy5jb21iaW5hdGlvbk9wZXJhdG9yPWo+PjMmMzt3LnJlcXVpcmVzQnVmZmVyPSEhKDMyJmopO3cuY29tYmluYXRpb25PcGVyYXRvck92ZXJyaWRlPSEhKDY0JmopO3I9W3ddO2JyZWFrO2Nhc2UgNDk6Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNjI6YnJlYWs7Y2FzZSA1MzpyPVtuLm51bWJlcixhLGYsc107YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcihgc2VnbWVudCB0eXBlICR7bi50eXBlTmFtZX0oJHtuLnR5cGV9KSBpcyBub3QgaW1wbGVtZW50ZWRgKX1jb25zdCBjPSJvbiIrbi50eXBlTmFtZTtjIGluIHQmJnRbY10uYXBwbHkodCxyKX1mdW5jdGlvbiBwcm9jZXNzU2VnbWVudHMoZSx0KXtmb3IobGV0IG49MCxhPWUubGVuZ3RoO248YTtuKyspcHJvY2Vzc1NlZ21lbnQoZVtuXSx0KX1jbGFzcyBTaW1wbGVTZWdtZW50VmlzaXRvcntvblBhZ2VJbmZvcm1hdGlvbihlKXt0aGlzLmN1cnJlbnRQYWdlSW5mbz1lO2NvbnN0IHQ9ZS53aWR0aCs3Pj4zLG49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHQqZS5oZWlnaHQpO2UuZGVmYXVsdFBpeGVsVmFsdWUmJm4uZmlsbCgyNTUpO3RoaXMuYnVmZmVyPW59ZHJhd0JpdG1hcChlLHQpe2NvbnN0IG49dGhpcy5jdXJyZW50UGFnZUluZm8sYT1lLndpZHRoLHM9ZS5oZWlnaHQscj1uLndpZHRoKzc+PjMsaT1uLmNvbWJpbmF0aW9uT3BlcmF0b3JPdmVycmlkZT9lLmNvbWJpbmF0aW9uT3BlcmF0b3I6bi5jb21iaW5hdGlvbk9wZXJhdG9yLG89dGhpcy5idWZmZXIsbD0xMjg+Pig3JmUueCk7bGV0IGYsYyxoLHUsbT1lLnkqcisoZS54Pj4zKTtzd2l0Y2goaSl7Y2FzZSAwOmZvcihmPTA7ZjxzO2YrKyl7aD1sO3U9bTtmb3IoYz0wO2M8YTtjKyspe3RbZl1bY10mJihvW3VdfD1oKTtoPj49MTtpZighaCl7aD0xMjg7dSsrfX1tKz1yfWJyZWFrO2Nhc2UgMjpmb3IoZj0wO2Y8cztmKyspe2g9bDt1PW07Zm9yKGM9MDtjPGE7YysrKXt0W2ZdW2NdJiYob1t1XV49aCk7aD4+PTE7aWYoIWgpe2g9MTI4O3UrK319bSs9cn1icmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKGBvcGVyYXRvciAke2l9IGlzIG5vdCBzdXBwb3J0ZWRgKX19b25JbW1lZGlhdGVHZW5lcmljUmVnaW9uKGUsdCxuLGEpe2NvbnN0IHM9ZS5pbmZvLHI9bmV3IERlY29kaW5nQ29udGV4dCh0LG4sYSksaT1kZWNvZGVCaXRtYXAoZS5tbXIscy53aWR0aCxzLmhlaWdodCxlLnRlbXBsYXRlLGUucHJlZGljdGlvbixudWxsLGUuYXQscik7dGhpcy5kcmF3Qml0bWFwKHMsaSl9b25JbW1lZGlhdGVMb3NzbGVzc0dlbmVyaWNSZWdpb24oKXt0aGlzLm9uSW1tZWRpYXRlR2VuZXJpY1JlZ2lvbiguLi5hcmd1bWVudHMpfW9uU3ltYm9sRGljdGlvbmFyeShlLHQsbixhLHMscil7bGV0IGksbztpZihlLmh1ZmZtYW4pe2k9ZnVuY3Rpb24gZ2V0U3ltYm9sRGljdGlvbmFyeUh1ZmZtYW5UYWJsZXMoZSx0LG4pe2xldCBhLHMscixpLG89MDtzd2l0Y2goZS5odWZmbWFuREhTZWxlY3Rvcil7Y2FzZSAwOmNhc2UgMTphPWdldFN0YW5kYXJkVGFibGUoZS5odWZmbWFuREhTZWxlY3Rvcis0KTticmVhaztjYXNlIDM6YT1nZXRDdXN0b21IdWZmbWFuVGFibGUobyx0LG4pO28rKzticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIEh1ZmZtYW4gREggc2VsZWN0b3IiKX1zd2l0Y2goZS5odWZmbWFuRFdTZWxlY3Rvcil7Y2FzZSAwOmNhc2UgMTpzPWdldFN0YW5kYXJkVGFibGUoZS5odWZmbWFuRFdTZWxlY3RvcisyKTticmVhaztjYXNlIDM6cz1nZXRDdXN0b21IdWZmbWFuVGFibGUobyx0LG4pO28rKzticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIEh1ZmZtYW4gRFcgc2VsZWN0b3IiKX1pZihlLmJpdG1hcFNpemVTZWxlY3Rvcil7cj1nZXRDdXN0b21IdWZmbWFuVGFibGUobyx0LG4pO28rK31lbHNlIHI9Z2V0U3RhbmRhcmRUYWJsZSgxKTtpPWUuYWdncmVnYXRpb25JbnN0YW5jZXNTZWxlY3Rvcj9nZXRDdXN0b21IdWZmbWFuVGFibGUobyx0LG4pOmdldFN0YW5kYXJkVGFibGUoMSk7cmV0dXJue3RhYmxlRGVsdGFIZWlnaHQ6YSx0YWJsZURlbHRhV2lkdGg6cyx0YWJsZUJpdG1hcFNpemU6cix0YWJsZUFnZ3JlZ2F0ZUluc3RhbmNlczppfX0oZSxuLHRoaXMuY3VzdG9tVGFibGVzKTtvPW5ldyBSZWFkZXIoYSxzLHIpfWxldCBsPXRoaXMuc3ltYm9scztsfHwodGhpcy5zeW1ib2xzPWw9e30pO2NvbnN0IGY9W107Zm9yKGNvbnN0IGUgb2Ygbil7Y29uc3QgdD1sW2VdO3QmJmYucHVzaCguLi50KX1jb25zdCBjPW5ldyBEZWNvZGluZ0NvbnRleHQoYSxzLHIpO2xbdF09ZnVuY3Rpb24gZGVjb2RlU3ltYm9sRGljdGlvbmFyeShlLHQsbixhLHMscixpLG8sbCxmLGMsaCl7aWYoZSYmdCl0aHJvdyBuZXcgSmJpZzJFcnJvcigic3ltYm9sIHJlZmluZW1lbnQgd2l0aCBIdWZmbWFuIGlzIG5vdCBzdXBwb3J0ZWQiKTtjb25zdCB1PVtdO2xldCBtPTAscD1sb2cyKG4ubGVuZ3RoK2EpO2NvbnN0IGQ9Yy5kZWNvZGVyLGc9Yy5jb250ZXh0Q2FjaGU7bGV0IGIsdztpZihlKXtiPWdldFN0YW5kYXJkVGFibGUoMSk7dz1bXTtwPU1hdGgubWF4KHAsMSl9Zm9yKDt1Lmxlbmd0aDxhOyl7bSs9ZT9yLnRhYmxlRGVsdGFIZWlnaHQuZGVjb2RlKGgpOmRlY29kZUludGVnZXIoZywiSUFESCIsZCk7bGV0IGE9MCxzPTA7Y29uc3QgYj1lP3cubGVuZ3RoOjA7Zm9yKDs7KXtjb25zdCBiPWU/ci50YWJsZURlbHRhV2lkdGguZGVjb2RlKGgpOmRlY29kZUludGVnZXIoZywiSUFEVyIsZCk7aWYobnVsbD09PWIpYnJlYWs7YSs9YjtzKz1hO2xldCBqO2lmKHQpe2NvbnN0IHM9ZGVjb2RlSW50ZWdlcihnLCJJQUFJIixkKTtpZihzPjEpaj1kZWNvZGVUZXh0UmVnaW9uKGUsdCxhLG0sMCxzLDEsbi5jb25jYXQodSkscCwwLDAsMSwwLHIsbCxmLGMsMCxoKTtlbHNle2NvbnN0IGU9ZGVjb2RlSUFJRChnLGQscCksdD1kZWNvZGVJbnRlZ2VyKGcsIklBUkRYIixkKSxzPWRlY29kZUludGVnZXIoZywiSUFSRFkiLGQpO2o9ZGVjb2RlUmVmaW5lbWVudChhLG0sbCxlPG4ubGVuZ3RoP25bZV06dVtlLW4ubGVuZ3RoXSx0LHMsITEsZixjKX11LnB1c2goail9ZWxzZSBpZihlKXcucHVzaChhKTtlbHNle2o9ZGVjb2RlQml0bWFwKCExLGEsbSxpLCExLG51bGwsbyxjKTt1LnB1c2goail9fWlmKGUmJiF0KXtjb25zdCBlPXIudGFibGVCaXRtYXBTaXplLmRlY29kZShoKTtoLmJ5dGVBbGlnbigpO2xldCB0O2lmKDA9PT1lKXQ9cmVhZFVuY29tcHJlc3NlZEJpdG1hcChoLHMsbSk7ZWxzZXtjb25zdCBuPWguZW5kLGE9aC5wb3NpdGlvbitlO2guZW5kPWE7dD1kZWNvZGVNTVJCaXRtYXAoaCxzLG0sITEpO2guZW5kPW47aC5wb3NpdGlvbj1hfWNvbnN0IG49dy5sZW5ndGg7aWYoYj09PW4tMSl1LnB1c2godCk7ZWxzZXtsZXQgZSxhLHMscixpLG89MDtmb3IoZT1iO2U8bjtlKyspe3I9d1tlXTtzPW8rcjtpPVtdO2ZvcihhPTA7YTxtO2ErKylpLnB1c2godFthXS5zdWJhcnJheShvLHMpKTt1LnB1c2goaSk7bz1zfX19fWNvbnN0IGo9W10saz1bXTtsZXQgeSxxLHY9ITE7Y29uc3QgUz1uLmxlbmd0aCthO2Zvcig7ay5sZW5ndGg8Uzspe2xldCB0PWU/Yi5kZWNvZGUoaCk6ZGVjb2RlSW50ZWdlcihnLCJJQUVYIixkKTtmb3IoO3QtLTspay5wdXNoKHYpO3Y9IXZ9Zm9yKHk9MCxxPW4ubGVuZ3RoO3k8cTt5Kyspa1t5XSYmai5wdXNoKG5beV0pO2ZvcihsZXQgZT0wO2U8YTt5KyssZSsrKWtbeV0mJmoucHVzaCh1W2VdKTtyZXR1cm4gan0oZS5odWZmbWFuLGUucmVmaW5lbWVudCxmLGUubnVtYmVyT2ZOZXdTeW1ib2xzLGUubnVtYmVyT2ZFeHBvcnRlZFN5bWJvbHMsaSxlLnRlbXBsYXRlLGUuYXQsZS5yZWZpbmVtZW50VGVtcGxhdGUsZS5yZWZpbmVtZW50QXQsYyxvKX1vbkltbWVkaWF0ZVRleHRSZWdpb24oZSx0LG4sYSxzKXtjb25zdCByPWUuaW5mbztsZXQgaSxvO2NvbnN0IGw9dGhpcy5zeW1ib2xzLGY9W107Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD1sW2VdO3QmJmYucHVzaCguLi50KX1jb25zdCBjPWxvZzIoZi5sZW5ndGgpO2lmKGUuaHVmZm1hbil7bz1uZXcgUmVhZGVyKG4sYSxzKTtpPWZ1bmN0aW9uIGdldFRleHRSZWdpb25IdWZmbWFuVGFibGVzKGUsdCxuLGEscyl7Y29uc3Qgcj1bXTtmb3IobGV0IGU9MDtlPD0zNDtlKyspe2NvbnN0IHQ9cy5yZWFkQml0cyg0KTtyLnB1c2gobmV3IEh1ZmZtYW5MaW5lKFtlLHQsMCwwXSkpfWNvbnN0IGk9bmV3IEh1ZmZtYW5UYWJsZShyLCExKTtyLmxlbmd0aD0wO2ZvcihsZXQgZT0wO2U8YTspe2NvbnN0IHQ9aS5kZWNvZGUocyk7aWYodD49MzIpe2xldCBuLGEsaTtzd2l0Y2godCl7Y2FzZSAzMjppZigwPT09ZSl0aHJvdyBuZXcgSmJpZzJFcnJvcigibm8gcHJldmlvdXMgdmFsdWUgaW4gc3ltYm9sIElEIHRhYmxlIik7YT1zLnJlYWRCaXRzKDIpKzM7bj1yW2UtMV0ucHJlZml4TGVuZ3RoO2JyZWFrO2Nhc2UgMzM6YT1zLnJlYWRCaXRzKDMpKzM7bj0wO2JyZWFrO2Nhc2UgMzQ6YT1zLnJlYWRCaXRzKDcpKzExO249MDticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIGNvZGUgbGVuZ3RoIGluIHN5bWJvbCBJRCB0YWJsZSIpfWZvcihpPTA7aTxhO2krKyl7ci5wdXNoKG5ldyBIdWZmbWFuTGluZShbZSxuLDAsMF0pKTtlKyt9fWVsc2V7ci5wdXNoKG5ldyBIdWZmbWFuTGluZShbZSx0LDAsMF0pKTtlKyt9fXMuYnl0ZUFsaWduKCk7Y29uc3Qgbz1uZXcgSHVmZm1hblRhYmxlKHIsITEpO2xldCBsLGYsYyxoPTA7c3dpdGNoKGUuaHVmZm1hbkZTKXtjYXNlIDA6Y2FzZSAxOmw9Z2V0U3RhbmRhcmRUYWJsZShlLmh1ZmZtYW5GUys2KTticmVhaztjYXNlIDM6bD1nZXRDdXN0b21IdWZmbWFuVGFibGUoaCx0LG4pO2grKzticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIEh1ZmZtYW4gRlMgc2VsZWN0b3IiKX1zd2l0Y2goZS5odWZmbWFuRFMpe2Nhc2UgMDpjYXNlIDE6Y2FzZSAyOmY9Z2V0U3RhbmRhcmRUYWJsZShlLmh1ZmZtYW5EUys4KTticmVhaztjYXNlIDM6Zj1nZXRDdXN0b21IdWZmbWFuVGFibGUoaCx0LG4pO2grKzticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIEh1ZmZtYW4gRFMgc2VsZWN0b3IiKX1zd2l0Y2goZS5odWZmbWFuRFQpe2Nhc2UgMDpjYXNlIDE6Y2FzZSAyOmM9Z2V0U3RhbmRhcmRUYWJsZShlLmh1ZmZtYW5EVCsxMSk7YnJlYWs7Y2FzZSAzOmM9Z2V0Q3VzdG9tSHVmZm1hblRhYmxlKGgsdCxuKTtoKys7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCBIdWZmbWFuIERUIHNlbGVjdG9yIil9aWYoZS5yZWZpbmVtZW50KXRocm93IG5ldyBKYmlnMkVycm9yKCJyZWZpbmVtZW50IHdpdGggSHVmZm1hbiBpcyBub3Qgc3VwcG9ydGVkIik7cmV0dXJue3N5bWJvbElEVGFibGU6byx0YWJsZUZpcnN0UzpsLHRhYmxlRGVsdGFTOmYsdGFibGVEZWx0YVQ6Y319KGUsdCx0aGlzLmN1c3RvbVRhYmxlcyxmLmxlbmd0aCxvKX1jb25zdCBoPW5ldyBEZWNvZGluZ0NvbnRleHQobixhLHMpLHU9ZGVjb2RlVGV4dFJlZ2lvbihlLmh1ZmZtYW4sZS5yZWZpbmVtZW50LHIud2lkdGgsci5oZWlnaHQsZS5kZWZhdWx0UGl4ZWxWYWx1ZSxlLm51bWJlck9mU3ltYm9sSW5zdGFuY2VzLGUuc3RyaXBTaXplLGYsYyxlLnRyYW5zcG9zZWQsZS5kc09mZnNldCxlLnJlZmVyZW5jZUNvcm5lcixlLmNvbWJpbmF0aW9uT3BlcmF0b3IsaSxlLnJlZmluZW1lbnRUZW1wbGF0ZSxlLnJlZmluZW1lbnRBdCxoLGUubG9nU3RyaXBTaXplLG8pO3RoaXMuZHJhd0JpdG1hcChyLHUpfW9uSW1tZWRpYXRlTG9zc2xlc3NUZXh0UmVnaW9uKCl7dGhpcy5vbkltbWVkaWF0ZVRleHRSZWdpb24oLi4uYXJndW1lbnRzKX1vblBhdHRlcm5EaWN0aW9uYXJ5KGUsdCxuLGEscyl7bGV0IHI9dGhpcy5wYXR0ZXJucztyfHwodGhpcy5wYXR0ZXJucz1yPXt9KTtjb25zdCBpPW5ldyBEZWNvZGluZ0NvbnRleHQobixhLHMpO3JbdF09ZnVuY3Rpb24gZGVjb2RlUGF0dGVybkRpY3Rpb25hcnkoZSx0LG4sYSxzLHIpe2NvbnN0IGk9W107aWYoIWUpe2kucHVzaCh7eDotdCx5OjB9KTswPT09cyYmaS5wdXNoKHt4Oi0zLHk6LTF9LHt4OjIseTotMn0se3g6LTIseTotMn0pfWNvbnN0IG89ZGVjb2RlQml0bWFwKGUsKGErMSkqdCxuLHMsITEsbnVsbCxpLHIpLGw9W107Zm9yKGxldCBlPTA7ZTw9YTtlKyspe2NvbnN0IGE9W10scz10KmUscj1zK3Q7Zm9yKGxldCBlPTA7ZTxuO2UrKylhLnB1c2gob1tlXS5zdWJhcnJheShzLHIpKTtsLnB1c2goYSl9cmV0dXJuIGx9KGUubW1yLGUucGF0dGVybldpZHRoLGUucGF0dGVybkhlaWdodCxlLm1heFBhdHRlcm5JbmRleCxlLnRlbXBsYXRlLGkpfW9uSW1tZWRpYXRlSGFsZnRvbmVSZWdpb24oZSx0LG4sYSxzKXtjb25zdCByPXRoaXMucGF0dGVybnNbdFswXV0saT1lLmluZm8sbz1uZXcgRGVjb2RpbmdDb250ZXh0KG4sYSxzKSxsPWZ1bmN0aW9uIGRlY29kZUhhbGZ0b25lUmVnaW9uKGUsdCxuLGEscyxyLGksbyxsLGYsYyxoLHUsbSxwKXtpZihpKXRocm93IG5ldyBKYmlnMkVycm9yKCJza2lwIGlzIG5vdCBzdXBwb3J0ZWQiKTtpZigwIT09byl0aHJvdyBuZXcgSmJpZzJFcnJvcihgb3BlcmF0b3IgIiR7b30iIGlzIG5vdCBzdXBwb3J0ZWQgaW4gaGFsZnRvbmUgcmVnaW9uYCk7Y29uc3QgZD1bXTtsZXQgZyxiLHc7Zm9yKGc9MDtnPHM7ZysrKXt3PW5ldyBVaW50OEFycmF5KGEpO3ImJncuZmlsbChyKTtkLnB1c2godyl9Y29uc3Qgaj10Lmxlbmd0aCxrPXRbMF0seT1rWzBdLmxlbmd0aCxxPWsubGVuZ3RoLHY9bG9nMihqKSxTPVtdO2lmKCFlKXtTLnB1c2goe3g6bjw9MT8zOjIseTotMX0pOzA9PT1uJiZTLnB1c2goe3g6LTMseTotMX0se3g6Mix5Oi0yfSx7eDotMix5Oi0yfSl9Y29uc3QgeD1bXTtsZXQgQyxGLFQsSCxPLFIsRCxNLEUsTix6O2UmJihDPW5ldyBSZWFkZXIocC5kYXRhLHAuc3RhcnQscC5lbmQpKTtmb3IoZz12LTE7Zz49MDtnLS0pe0Y9ZT9kZWNvZGVNTVJCaXRtYXAoQyxsLGYsITApOmRlY29kZUJpdG1hcCghMSxsLGYsbiwhMSxudWxsLFMscCk7eFtnXT1GfWZvcihUPTA7VDxmO1QrKylmb3IoSD0wO0g8bDtIKyspe089MDtSPTA7Zm9yKGI9di0xO2I+PTA7Yi0tKXtPXj14W2JdW1RdW0hdO1J8PU88PGJ9RD10W1JdO009YytUKm0rSCp1Pj44O0U9aCtUKnUtSCptPj44O2lmKE0+PTAmJk0reTw9YSYmRT49MCYmRStxPD1zKWZvcihnPTA7ZzxxO2crKyl7ej1kW0UrZ107Tj1EW2ddO2ZvcihiPTA7Yjx5O2IrKyl6W00rYl18PU5bYl19ZWxzZXtsZXQgZSx0O2ZvcihnPTA7ZzxxO2crKyl7dD1FK2c7aWYoISh0PDB8fHQ+PXMpKXt6PWRbdF07Tj1EW2ddO2ZvcihiPTA7Yjx5O2IrKyl7ZT1NK2I7ZT49MCYmZTxhJiYoeltlXXw9TltiXSl9fX19fXJldHVybiBkfShlLm1tcixyLGUudGVtcGxhdGUsaS53aWR0aCxpLmhlaWdodCxlLmRlZmF1bHRQaXhlbFZhbHVlLGUuZW5hYmxlU2tpcCxlLmNvbWJpbmF0aW9uT3BlcmF0b3IsZS5ncmlkV2lkdGgsZS5ncmlkSGVpZ2h0LGUuZ3JpZE9mZnNldFgsZS5ncmlkT2Zmc2V0WSxlLmdyaWRWZWN0b3JYLGUuZ3JpZFZlY3Rvclksbyk7dGhpcy5kcmF3Qml0bWFwKGksbCl9b25JbW1lZGlhdGVMb3NzbGVzc0hhbGZ0b25lUmVnaW9uKCl7dGhpcy5vbkltbWVkaWF0ZUhhbGZ0b25lUmVnaW9uKC4uLmFyZ3VtZW50cyl9b25UYWJsZXMoZSx0LG4sYSl7bGV0IHM9dGhpcy5jdXN0b21UYWJsZXM7c3x8KHRoaXMuY3VzdG9tVGFibGVzPXM9e30pO3NbZV09ZnVuY3Rpb24gZGVjb2RlVGFibGVzU2VnbWVudChlLHQsbil7Y29uc3QgYT1lW3RdLHM9NDI5NDk2NzI5NSZyZWFkVWludDMyKGUsdCsxKSxyPTQyOTQ5NjcyOTUmcmVhZFVpbnQzMihlLHQrNSksaT1uZXcgUmVhZGVyKGUsdCs5LG4pLG89MSsoYT4+MSY3KSxsPTErKGE+PjQmNyksZj1bXTtsZXQgYyxoLHU9cztkb3tjPWkucmVhZEJpdHMobyk7aD1pLnJlYWRCaXRzKGwpO2YucHVzaChuZXcgSHVmZm1hbkxpbmUoW3UsYyxoLDBdKSk7dSs9MTw8aH13aGlsZSh1PHIpO2M9aS5yZWFkQml0cyhvKTtmLnB1c2gobmV3IEh1ZmZtYW5MaW5lKFtzLTEsYywzMiwwLCJsb3dlciJdKSk7Yz1pLnJlYWRCaXRzKG8pO2YucHVzaChuZXcgSHVmZm1hbkxpbmUoW3IsYywzMiwwXSkpO2lmKDEmYSl7Yz1pLnJlYWRCaXRzKG8pO2YucHVzaChuZXcgSHVmZm1hbkxpbmUoW2MsMF0pKX1yZXR1cm4gbmV3IEh1ZmZtYW5UYWJsZShmLCExKX0odCxuLGEpfX1jbGFzcyBIdWZmbWFuTGluZXtjb25zdHJ1Y3RvcihlKXtpZigyPT09ZS5sZW5ndGgpe3RoaXMuaXNPT0I9ITA7dGhpcy5yYW5nZUxvdz0wO3RoaXMucHJlZml4TGVuZ3RoPWVbMF07dGhpcy5yYW5nZUxlbmd0aD0wO3RoaXMucHJlZml4Q29kZT1lWzFdO3RoaXMuaXNMb3dlclJhbmdlPSExfWVsc2V7dGhpcy5pc09PQj0hMTt0aGlzLnJhbmdlTG93PWVbMF07dGhpcy5wcmVmaXhMZW5ndGg9ZVsxXTt0aGlzLnJhbmdlTGVuZ3RoPWVbMl07dGhpcy5wcmVmaXhDb2RlPWVbM107dGhpcy5pc0xvd2VyUmFuZ2U9Imxvd2VyIj09PWVbNF19fX1jbGFzcyBIdWZmbWFuVHJlZU5vZGV7Y29uc3RydWN0b3IoZSl7dGhpcy5jaGlsZHJlbj1bXTtpZihlKXt0aGlzLmlzTGVhZj0hMDt0aGlzLnJhbmdlTGVuZ3RoPWUucmFuZ2VMZW5ndGg7dGhpcy5yYW5nZUxvdz1lLnJhbmdlTG93O3RoaXMuaXNMb3dlclJhbmdlPWUuaXNMb3dlclJhbmdlO3RoaXMuaXNPT0I9ZS5pc09PQn1lbHNlIHRoaXMuaXNMZWFmPSExfWJ1aWxkVHJlZShlLHQpe2NvbnN0IG49ZS5wcmVmaXhDb2RlPj50JjE7aWYodDw9MCl0aGlzLmNoaWxkcmVuW25dPW5ldyBIdWZmbWFuVHJlZU5vZGUoZSk7ZWxzZXtsZXQgYT10aGlzLmNoaWxkcmVuW25dO2F8fCh0aGlzLmNoaWxkcmVuW25dPWE9bmV3IEh1ZmZtYW5UcmVlTm9kZShudWxsKSk7YS5idWlsZFRyZWUoZSx0LTEpfX1kZWNvZGVOb2RlKGUpe2lmKHRoaXMuaXNMZWFmKXtpZih0aGlzLmlzT09CKXJldHVybiBudWxsO2NvbnN0IHQ9ZS5yZWFkQml0cyh0aGlzLnJhbmdlTGVuZ3RoKTtyZXR1cm4gdGhpcy5yYW5nZUxvdysodGhpcy5pc0xvd2VyUmFuZ2U/LXQ6dCl9Y29uc3QgdD10aGlzLmNoaWxkcmVuW2UucmVhZEJpdCgpXTtpZighdCl0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCBIdWZmbWFuIGRhdGEiKTtyZXR1cm4gdC5kZWNvZGVOb2RlKGUpfX1jbGFzcyBIdWZmbWFuVGFibGV7Y29uc3RydWN0b3IoZSx0KXt0fHx0aGlzLmFzc2lnblByZWZpeENvZGVzKGUpO3RoaXMucm9vdE5vZGU9bmV3IEh1ZmZtYW5UcmVlTm9kZShudWxsKTtmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49ZVt0XTtuLnByZWZpeExlbmd0aD4wJiZ0aGlzLnJvb3ROb2RlLmJ1aWxkVHJlZShuLG4ucHJlZml4TGVuZ3RoLTEpfX1kZWNvZGUoZSl7cmV0dXJuIHRoaXMucm9vdE5vZGUuZGVjb2RlTm9kZShlKX1hc3NpZ25QcmVmaXhDb2RlcyhlKXtjb25zdCB0PWUubGVuZ3RoO2xldCBuPTA7Zm9yKGxldCBhPTA7YTx0O2ErKyluPU1hdGgubWF4KG4sZVthXS5wcmVmaXhMZW5ndGgpO2NvbnN0IGE9bmV3IFVpbnQzMkFycmF5KG4rMSk7Zm9yKGxldCBuPTA7bjx0O24rKylhW2Vbbl0ucHJlZml4TGVuZ3RoXSsrO2xldCBzLHIsaSxvPTEsbD0wO2FbMF09MDtmb3IoO288PW47KXtsPWwrYVtvLTFdPDwxO3M9bDtyPTA7Zm9yKDtyPHQ7KXtpPWVbcl07aWYoaS5wcmVmaXhMZW5ndGg9PT1vKXtpLnByZWZpeENvZGU9cztzKyt9cisrfW8rK319fWNvbnN0IHJhPXt9O2Z1bmN0aW9uIGdldFN0YW5kYXJkVGFibGUoZSl7bGV0IHQsbj1yYVtlXTtpZihuKXJldHVybiBuO3N3aXRjaChlKXtjYXNlIDE6dD1bWzAsMSw0LDBdLFsxNiwyLDgsMl0sWzI3MiwzLDE2LDZdLFs2NTgwOCwzLDMyLDddXTticmVhaztjYXNlIDI6dD1bWzAsMSwwLDBdLFsxLDIsMCwyXSxbMiwzLDAsNl0sWzMsNCwzLDE0XSxbMTEsNSw2LDMwXSxbNzUsNiwzMiw2Ml0sWzYsNjNdXTticmVhaztjYXNlIDM6dD1bWy0yNTYsOCw4LDI1NF0sWzAsMSwwLDBdLFsxLDIsMCwyXSxbMiwzLDAsNl0sWzMsNCwzLDE0XSxbMTEsNSw2LDMwXSxbLTI1Nyw4LDMyLDI1NSwibG93ZXIiXSxbNzUsNywzMiwxMjZdLFs2LDYyXV07YnJlYWs7Y2FzZSA0OnQ9W1sxLDEsMCwwXSxbMiwyLDAsMl0sWzMsMywwLDZdLFs0LDQsMywxNF0sWzEyLDUsNiwzMF0sWzc2LDUsMzIsMzFdXTticmVhaztjYXNlIDU6dD1bWy0yNTUsNyw4LDEyNl0sWzEsMSwwLDBdLFsyLDIsMCwyXSxbMywzLDAsNl0sWzQsNCwzLDE0XSxbMTIsNSw2LDMwXSxbLTI1Niw3LDMyLDEyNywibG93ZXIiXSxbNzYsNiwzMiw2Ml1dO2JyZWFrO2Nhc2UgNjp0PVtbLTIwNDgsNSwxMCwyOF0sWy0xMDI0LDQsOSw4XSxbLTUxMiw0LDgsOV0sWy0yNTYsNCw3LDEwXSxbLTEyOCw1LDYsMjldLFstNjQsNSw1LDMwXSxbLTMyLDQsNSwxMV0sWzAsMiw3LDBdLFsxMjgsMyw3LDJdLFsyNTYsMyw4LDNdLFs1MTIsNCw5LDEyXSxbMTAyNCw0LDEwLDEzXSxbLTIwNDksNiwzMiw2MiwibG93ZXIiXSxbMjA0OCw2LDMyLDYzXV07YnJlYWs7Y2FzZSA3OnQ9W1stMTAyNCw0LDksOF0sWy01MTIsMyw4LDBdLFstMjU2LDQsNyw5XSxbLTEyOCw1LDYsMjZdLFstNjQsNSw1LDI3XSxbLTMyLDQsNSwxMF0sWzAsNCw1LDExXSxbMzIsNSw1LDI4XSxbNjQsNSw2LDI5XSxbMTI4LDQsNywxMl0sWzI1NiwzLDgsMV0sWzUxMiwzLDksMl0sWzEwMjQsMywxMCwzXSxbLTEwMjUsNSwzMiwzMCwibG93ZXIiXSxbMjA0OCw1LDMyLDMxXV07YnJlYWs7Y2FzZSA4OnQ9W1stMTUsOCwzLDI1Ml0sWy03LDksMSw1MDhdLFstNSw4LDEsMjUzXSxbLTMsOSwwLDUwOV0sWy0yLDcsMCwxMjRdLFstMSw0LDAsMTBdLFswLDIsMSwwXSxbMiw1LDAsMjZdLFszLDYsMCw1OF0sWzQsMyw0LDRdLFsyMCw2LDEsNTldLFsyMiw0LDQsMTFdLFszOCw0LDUsMTJdLFs3MCw1LDYsMjddLFsxMzQsNSw3LDI4XSxbMjYyLDYsNyw2MF0sWzM5MCw3LDgsMTI1XSxbNjQ2LDYsMTAsNjFdLFstMTYsOSwzMiw1MTAsImxvd2VyIl0sWzE2NzAsOSwzMiw1MTFdLFsyLDFdXTticmVhaztjYXNlIDk6dD1bWy0zMSw4LDQsMjUyXSxbLTE1LDksMiw1MDhdLFstMTEsOCwyLDI1M10sWy03LDksMSw1MDldLFstNSw3LDEsMTI0XSxbLTMsNCwxLDEwXSxbLTEsMywxLDJdLFsxLDMsMSwzXSxbMyw1LDEsMjZdLFs1LDYsMSw1OF0sWzcsMyw1LDRdLFszOSw2LDIsNTldLFs0Myw0LDUsMTFdLFs3NSw0LDYsMTJdLFsxMzksNSw3LDI3XSxbMjY3LDUsOCwyOF0sWzUyMyw2LDgsNjBdLFs3NzksNyw5LDEyNV0sWzEyOTEsNiwxMSw2MV0sWy0zMiw5LDMyLDUxMCwibG93ZXIiXSxbMzMzOSw5LDMyLDUxMV0sWzIsMF1dO2JyZWFrO2Nhc2UgMTA6dD1bWy0yMSw3LDQsMTIyXSxbLTUsOCwwLDI1Ml0sWy00LDcsMCwxMjNdLFstMyw1LDAsMjRdLFstMiwyLDIsMF0sWzIsNSwwLDI1XSxbMyw2LDAsNTRdLFs0LDcsMCwxMjRdLFs1LDgsMCwyNTNdLFs2LDIsNiwxXSxbNzAsNSw1LDI2XSxbMTAyLDYsNSw1NV0sWzEzNCw2LDYsNTZdLFsxOTgsNiw3LDU3XSxbMzI2LDYsOCw1OF0sWzU4Miw2LDksNTldLFsxMDk0LDYsMTAsNjBdLFsyMTE4LDcsMTEsMTI1XSxbLTIyLDgsMzIsMjU0LCJsb3dlciJdLFs0MTY2LDgsMzIsMjU1XSxbMiwyXV07YnJlYWs7Y2FzZSAxMTp0PVtbMSwxLDAsMF0sWzIsMiwxLDJdLFs0LDQsMCwxMl0sWzUsNCwxLDEzXSxbNyw1LDEsMjhdLFs5LDUsMiwyOV0sWzEzLDYsMiw2MF0sWzE3LDcsMiwxMjJdLFsyMSw3LDMsMTIzXSxbMjksNyw0LDEyNF0sWzQ1LDcsNSwxMjVdLFs3Nyw3LDYsMTI2XSxbMTQxLDcsMzIsMTI3XV07YnJlYWs7Y2FzZSAxMjp0PVtbMSwxLDAsMF0sWzIsMiwwLDJdLFszLDMsMSw2XSxbNSw1LDAsMjhdLFs2LDUsMSwyOV0sWzgsNiwxLDYwXSxbMTAsNywwLDEyMl0sWzExLDcsMSwxMjNdLFsxMyw3LDIsMTI0XSxbMTcsNywzLDEyNV0sWzI1LDcsNCwxMjZdLFs0MSw4LDUsMjU0XSxbNzMsOCwzMiwyNTVdXTticmVhaztjYXNlIDEzOnQ9W1sxLDEsMCwwXSxbMiwzLDAsNF0sWzMsNCwwLDEyXSxbNCw1LDAsMjhdLFs1LDQsMSwxM10sWzcsMywzLDVdLFsxNSw2LDEsNThdLFsxNyw2LDIsNTldLFsyMSw2LDMsNjBdLFsyOSw2LDQsNjFdLFs0NSw2LDUsNjJdLFs3Nyw3LDYsMTI2XSxbMTQxLDcsMzIsMTI3XV07YnJlYWs7Y2FzZSAxNDp0PVtbLTIsMywwLDRdLFstMSwzLDAsNV0sWzAsMSwwLDBdLFsxLDMsMCw2XSxbMiwzLDAsN11dO2JyZWFrO2Nhc2UgMTU6dD1bWy0yNCw3LDQsMTI0XSxbLTgsNiwyLDYwXSxbLTQsNSwxLDI4XSxbLTIsNCwwLDEyXSxbLTEsMywwLDRdLFswLDEsMCwwXSxbMSwzLDAsNV0sWzIsNCwwLDEzXSxbMyw1LDEsMjldLFs1LDYsMiw2MV0sWzksNyw0LDEyNV0sWy0yNSw3LDMyLDEyNiwibG93ZXIiXSxbMjUsNywzMiwxMjddXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKGBzdGFuZGFyZCB0YWJsZSBCLiR7ZX0gZG9lcyBub3QgZXhpc3RgKX1mb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspdFtlXT1uZXcgSHVmZm1hbkxpbmUodFtlXSk7bj1uZXcgSHVmZm1hblRhYmxlKHQsITApO3JhW2VdPW47cmV0dXJuIG59Y2xhc3MgUmVhZGVye2NvbnN0cnVjdG9yKGUsdCxuKXt0aGlzLmRhdGE9ZTt0aGlzLnN0YXJ0PXQ7dGhpcy5lbmQ9bjt0aGlzLnBvc2l0aW9uPXQ7dGhpcy5zaGlmdD0tMTt0aGlzLmN1cnJlbnRCeXRlPTB9cmVhZEJpdCgpe2lmKHRoaXMuc2hpZnQ8MCl7aWYodGhpcy5wb3NpdGlvbj49dGhpcy5lbmQpdGhyb3cgbmV3IEpiaWcyRXJyb3IoImVuZCBvZiBkYXRhIHdoaWxlIHJlYWRpbmcgYml0Iik7dGhpcy5jdXJyZW50Qnl0ZT10aGlzLmRhdGFbdGhpcy5wb3NpdGlvbisrXTt0aGlzLnNoaWZ0PTd9Y29uc3QgZT10aGlzLmN1cnJlbnRCeXRlPj50aGlzLnNoaWZ0JjE7dGhpcy5zaGlmdC0tO3JldHVybiBlfXJlYWRCaXRzKGUpe2xldCB0LG49MDtmb3IodD1lLTE7dD49MDt0LS0pbnw9dGhpcy5yZWFkQml0KCk8PHQ7cmV0dXJuIG59Ynl0ZUFsaWduKCl7dGhpcy5zaGlmdD0tMX1uZXh0KCl7cmV0dXJuIHRoaXMucG9zaXRpb24+PXRoaXMuZW5kPy0xOnRoaXMuZGF0YVt0aGlzLnBvc2l0aW9uKytdfX1mdW5jdGlvbiBnZXRDdXN0b21IdWZmbWFuVGFibGUoZSx0LG4pe2xldCBhPTA7Zm9yKGxldCBzPTAscj10Lmxlbmd0aDtzPHI7cysrKXtjb25zdCByPW5bdFtzXV07aWYocil7aWYoZT09PWEpcmV0dXJuIHI7YSsrfX10aHJvdyBuZXcgSmJpZzJFcnJvcigiY2FuJ3QgZmluZCBjdXN0b20gSHVmZm1hbiB0YWJsZSIpfWZ1bmN0aW9uIHJlYWRVbmNvbXByZXNzZWRCaXRtYXAoZSx0LG4pe2NvbnN0IGE9W107Zm9yKGxldCBzPTA7czxuO3MrKyl7Y29uc3Qgbj1uZXcgVWludDhBcnJheSh0KTthLnB1c2gobik7Zm9yKGxldCBhPTA7YTx0O2ErKyluW2FdPWUucmVhZEJpdCgpO2UuYnl0ZUFsaWduKCl9cmV0dXJuIGF9ZnVuY3Rpb24gZGVjb2RlTU1SQml0bWFwKGUsdCxuLGEpe2NvbnN0IHM9bmV3IENDSVRURmF4RGVjb2RlcihlLHtLOi0xLENvbHVtbnM6dCxSb3dzOm4sQmxhY2tJczE6ITAsRW5kT2ZCbG9jazphfSkscj1bXTtsZXQgaSxvPSExO2ZvcihsZXQgZT0wO2U8bjtlKyspe2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkodCk7ci5wdXNoKGUpO2xldCBuPS0xO2ZvcihsZXQgYT0wO2E8dDthKyspe2lmKG48MCl7aT1zLnJlYWROZXh0Q2hhcigpO2lmKC0xPT09aSl7aT0wO289ITB9bj03fWVbYV09aT4+biYxO24tLX19aWYoYSYmIW8pe2NvbnN0IGU9NTtmb3IobGV0IHQ9MDt0PGUmJi0xIT09cy5yZWFkTmV4dENoYXIoKTt0KyspO31yZXR1cm4gcn1jbGFzcyBKYmlnMkltYWdle3BhcnNlQ2h1bmtzKGUpe3JldHVybiBmdW5jdGlvbiBwYXJzZUpiaWcyQ2h1bmtzKGUpe2NvbnN0IHQ9bmV3IFNpbXBsZVNlZ21lbnRWaXNpdG9yO2ZvcihsZXQgbj0wLGE9ZS5sZW5ndGg7bjxhO24rKyl7Y29uc3QgYT1lW25dO3Byb2Nlc3NTZWdtZW50cyhyZWFkU2VnbWVudHMoe30sYS5kYXRhLGEuc3RhcnQsYS5lbmQpLHQpfXJldHVybiB0LmJ1ZmZlcn0oZSl9cGFyc2UoZSl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQ6IEpiaWcySW1hZ2UucGFyc2UiKX19Y2xhc3MgSmJpZzJTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKHQpO3RoaXMuc3RyZWFtPWU7dGhpcy5kaWN0PWUuZGljdDt0aGlzLm1heWJlTGVuZ3RoPXQ7dGhpcy5wYXJhbXM9bn1nZXQgYnl0ZXMoKXtyZXR1cm4gc2hhZG93KHRoaXMsImJ5dGVzIix0aGlzLnN0cmVhbS5nZXRCeXRlcyh0aGlzLm1heWJlTGVuZ3RoKSl9ZW5zdXJlQnVmZmVyKGUpe31yZWFkQmxvY2soKXt0aGlzLmRlY29kZUltYWdlRmFsbGJhY2soKX1nZXQgaXNBc3luY0RlY29kZXIoKXtyZXR1cm4hMH1nZXQgaXNJbWFnZVN0cmVhbSgpe3JldHVybiEwfWFzeW5jIGRlY29kZUltYWdlKGUsdCxuKXtpZih0aGlzLmVvZilyZXR1cm4gdGhpcy5idWZmZXI7ZXx8PXRoaXMuYnl0ZXM7dHJ5e2xldCB0PW51bGw7aWYodGhpcy5wYXJhbXMgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPXRoaXMucGFyYW1zLmdldCgiSkJJRzJHbG9iYWxzIik7ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJih0PWUuZ2V0Qnl0ZXMoKSl9dGhpcy5idWZmZXI9YXdhaXQgSkJpZzJDQ0lUVEZheFdhc21JbWFnZS5kZWNvZGUoZSx0aGlzLmRpY3QuZ2V0KCJXaWR0aCIpLHRoaXMuZGljdC5nZXQoIkhlaWdodCIpLHQpfWNhdGNoe3dhcm4oIkpiaWcyU3RyZWFtOiBGYWxsaW5nIGJhY2sgdG8gSlMgSkJJRzIgZGVjb2Rlci4iKTtyZXR1cm4gdGhpcy5kZWNvZGVJbWFnZUZhbGxiYWNrKGUsdCl9dGhpcy5idWZmZXJMZW5ndGg9dGhpcy5idWZmZXIubGVuZ3RoO3RoaXMuZW9mPSEwO3JldHVybiB0aGlzLmJ1ZmZlcn1kZWNvZGVJbWFnZUZhbGxiYWNrKGUsdCl7aWYodGhpcy5lb2YpcmV0dXJuIHRoaXMuYnVmZmVyO2V8fD10aGlzLmJ5dGVzO2NvbnN0IG49bmV3IEpiaWcySW1hZ2UsYT1bXTtpZih0aGlzLnBhcmFtcyBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9dGhpcy5wYXJhbXMuZ2V0KCJKQklHMkdsb2JhbHMiKTtpZihlIGluc3RhbmNlb2YgQmFzZVN0cmVhbSl7Y29uc3QgdD1lLmdldEJ5dGVzKCk7YS5wdXNoKHtkYXRhOnQsc3RhcnQ6MCxlbmQ6dC5sZW5ndGh9KX19YS5wdXNoKHtkYXRhOmUsc3RhcnQ6MCxlbmQ6ZS5sZW5ndGh9KTtjb25zdCBzPW4ucGFyc2VDaHVua3MoYSkscj1zLmxlbmd0aDtmb3IobGV0IGU9MDtlPHI7ZSsrKXNbZV1ePTI1NTt0aGlzLmJ1ZmZlcj1zO3RoaXMuYnVmZmVyTGVuZ3RoPXI7dGhpcy5lb2Y9ITA7cmV0dXJuIHRoaXMuYnVmZmVyfWdldCBjYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlcigpe3JldHVybiB0aGlzLnN0cmVhbS5pc0FzeW5jfX1jbGFzcyBKcHhTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKHQpO3RoaXMuc3RyZWFtPWU7dGhpcy5kaWN0PWUuZGljdDt0aGlzLm1heWJlTGVuZ3RoPXQ7dGhpcy5wYXJhbXM9bn1nZXQgYnl0ZXMoKXtyZXR1cm4gc2hhZG93KHRoaXMsImJ5dGVzIix0aGlzLnN0cmVhbS5nZXRCeXRlcyh0aGlzLm1heWJlTGVuZ3RoKSl9ZW5zdXJlQnVmZmVyKGUpe31yZWFkQmxvY2soZSl7dW5yZWFjaGFibGUoIkpweFN0cmVhbS5yZWFkQmxvY2siKX1nZXQgaXNBc3luY0RlY29kZXIoKXtyZXR1cm4hMH1hc3luYyBkZWNvZGVJbWFnZShlLHQsbil7aWYodGhpcy5lb2YpcmV0dXJuIHRoaXMuYnVmZmVyO2V8fD10aGlzLmJ5dGVzO3RoaXMuYnVmZmVyPWF3YWl0IEpweEltYWdlLmRlY29kZShlLG4pO3RoaXMuYnVmZmVyTGVuZ3RoPXRoaXMuYnVmZmVyLmxlbmd0aDt0aGlzLmVvZj0hMDtyZXR1cm4gdGhpcy5idWZmZXJ9Z2V0IGNhbkFzeW5jRGVjb2RlSW1hZ2VGcm9tQnVmZmVyKCl7cmV0dXJuIHRoaXMuc3RyZWFtLmlzQXN5bmN9Z2V0IGlzSW1hZ2VTdHJlYW0oKXtyZXR1cm4hMH19Y2xhc3MgTFpXU3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcih0KTt0aGlzLnN0cmVhbT1lO3RoaXMuZGljdD1lLmRpY3Q7dGhpcy5jYWNoZWREYXRhPTA7dGhpcy5iaXRzQ2FjaGVkPTA7Y29uc3QgYT00MDk2LHM9e2Vhcmx5Q2hhbmdlOm4sY29kZUxlbmd0aDo5LG5leHRDb2RlOjI1OCxkaWN0aW9uYXJ5VmFsdWVzOm5ldyBVaW50OEFycmF5KGEpLGRpY3Rpb25hcnlMZW5ndGhzOm5ldyBVaW50MTZBcnJheShhKSxkaWN0aW9uYXJ5UHJldkNvZGVzOm5ldyBVaW50MTZBcnJheShhKSxjdXJyZW50U2VxdWVuY2U6bmV3IFVpbnQ4QXJyYXkoYSksY3VycmVudFNlcXVlbmNlTGVuZ3RoOjB9O2ZvcihsZXQgZT0wO2U8MjU2OysrZSl7cy5kaWN0aW9uYXJ5VmFsdWVzW2VdPWU7cy5kaWN0aW9uYXJ5TGVuZ3Roc1tlXT0xfXRoaXMubHp3U3RhdGU9c31yZWFkQml0cyhlKXtsZXQgdD10aGlzLmJpdHNDYWNoZWQsbj10aGlzLmNhY2hlZERhdGE7Zm9yKDt0PGU7KXtjb25zdCBlPXRoaXMuc3RyZWFtLmdldEJ5dGUoKTtpZigtMT09PWUpe3RoaXMuZW9mPSEwO3JldHVybiBudWxsfW49bjw8OHxlO3QrPTh9dGhpcy5iaXRzQ2FjaGVkPXQtPWU7dGhpcy5jYWNoZWREYXRhPW47cmV0dXJuIG4+Pj50JigxPDxlKS0xfXJlYWRCbG9jaygpe2xldCBlLHQsbixhPTEwMjQ7Y29uc3Qgcz10aGlzLmx6d1N0YXRlO2lmKCFzKXJldHVybjtjb25zdCByPXMuZWFybHlDaGFuZ2U7bGV0IGk9cy5uZXh0Q29kZTtjb25zdCBvPXMuZGljdGlvbmFyeVZhbHVlcyxsPXMuZGljdGlvbmFyeUxlbmd0aHMsZj1zLmRpY3Rpb25hcnlQcmV2Q29kZXM7bGV0IGM9cy5jb2RlTGVuZ3RoLGg9cy5wcmV2Q29kZTtjb25zdCB1PXMuY3VycmVudFNlcXVlbmNlO2xldCBtPXMuY3VycmVudFNlcXVlbmNlTGVuZ3RoLHA9MCxkPXRoaXMuYnVmZmVyTGVuZ3RoLGc9dGhpcy5lbnN1cmVCdWZmZXIodGhpcy5idWZmZXJMZW5ndGgrYSk7Zm9yKGU9MDtlPDUxMjtlKyspe2NvbnN0IGU9dGhpcy5yZWFkQml0cyhjKSxzPW0+MDtpZihlPDI1Nil7dVswXT1lO209MX1lbHNle2lmKCEoZT49MjU4KSl7aWYoMjU2PT09ZSl7Yz05O2k9MjU4O209MDtjb250aW51ZX10aGlzLmVvZj0hMDtkZWxldGUgdGhpcy5sendTdGF0ZTticmVha31pZihlPGkpe209bFtlXTtmb3IodD1tLTEsbj1lO3Q+PTA7dC0tKXt1W3RdPW9bbl07bj1mW25dfX1lbHNlIHVbbSsrXT11WzBdfWlmKHMpe2ZbaV09aDtsW2ldPWxbaF0rMTtvW2ldPXVbMF07aSsrO2M9aStyJmkrci0xP2M6MHxNYXRoLm1pbihNYXRoLmxvZyhpK3IpLy42OTMxNDcxODA1NTk5NDUzKzEsMTIpfWg9ZTtwKz1tO2lmKGE8cCl7ZG97YSs9NTEyfXdoaWxlKGE8cCk7Zz10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCthKX1mb3IodD0wO3Q8bTt0KyspZ1tkKytdPXVbdF19cy5uZXh0Q29kZT1pO3MuY29kZUxlbmd0aD1jO3MucHJldkNvZGU9aDtzLmN1cnJlbnRTZXF1ZW5jZUxlbmd0aD1tO3RoaXMuYnVmZmVyTGVuZ3RoPWR9fWNsYXNzIFByZWRpY3RvclN0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIodCk7aWYoIShuIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIGU7Y29uc3QgYT10aGlzLnByZWRpY3Rvcj1uLmdldCgiUHJlZGljdG9yIil8fDE7aWYoYTw9MSlyZXR1cm4gZTtpZigyIT09YSYmKGE8MTB8fGE+MTUpKXRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5zdXBwb3J0ZWQgcHJlZGljdG9yOiAke2F9YCk7dGhpcy5yZWFkQmxvY2s9Mj09PWE/dGhpcy5yZWFkQmxvY2tUaWZmOnRoaXMucmVhZEJsb2NrUG5nO3RoaXMuc3RyZWFtPWU7dGhpcy5kaWN0PWUuZGljdDtjb25zdCBzPXRoaXMuY29sb3JzPW4uZ2V0KCJDb2xvcnMiKXx8MSxyPXRoaXMuYml0cz1uLmdldCgiQlBDIiwiQml0c1BlckNvbXBvbmVudCIpfHw4LGk9dGhpcy5jb2x1bW5zPW4uZ2V0KCJDb2x1bW5zIil8fDE7dGhpcy5waXhCeXRlcz1zKnIrNz4+Mzt0aGlzLnJvd0J5dGVzPWkqcypyKzc+PjM7cmV0dXJuIHRoaXN9cmVhZEJsb2NrVGlmZigpe2NvbnN0IGU9dGhpcy5yb3dCeXRlcyx0PXRoaXMuYnVmZmVyTGVuZ3RoLG49dGhpcy5lbnN1cmVCdWZmZXIodCtlKSxhPXRoaXMuYml0cyxzPXRoaXMuY29sb3JzLHI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZXMoZSk7dGhpcy5lb2Y9IXIubGVuZ3RoO2lmKHRoaXMuZW9mKXJldHVybjtsZXQgaSxvPTAsbD0wLGY9MCxjPTAsaD10O2lmKDE9PT1hJiYxPT09cylmb3IoaT0wO2k8ZTsrK2kpe2xldCBlPXJbaV1ebztlXj1lPj4xO2VePWU+PjI7ZV49ZT4+NDtvPSgxJmUpPDw3O25baCsrXT1lfWVsc2UgaWYoOD09PWEpe2ZvcihpPTA7aTxzOysraSluW2grK109cltpXTtmb3IoO2k8ZTsrK2kpe25baF09bltoLXNdK3JbaV07aCsrfX1lbHNlIGlmKDE2PT09YSl7Y29uc3QgdD0yKnM7Zm9yKGk9MDtpPHQ7KytpKW5baCsrXT1yW2ldO2Zvcig7aTxlO2krPTIpe2NvbnN0IGU9KCgyNTUmcltpXSk8PDgpKygyNTUmcltpKzFdKSsoKDI1NSZuW2gtdF0pPDw4KSsoMjU1Jm5baC10KzFdKTtuW2grK109ZT4+OCYyNTU7bltoKytdPTI1NSZlfX1lbHNle2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkocysxKSxoPSgxPDxhKS0xO2xldCB1PTAsbT10O2NvbnN0IHA9dGhpcy5jb2x1bW5zO2ZvcihpPTA7aTxwOysraSlmb3IobGV0IHQ9MDt0PHM7Kyt0KXtpZihmPGEpe289bzw8OHwyNTUmclt1KytdO2YrPTh9ZVt0XT1lW3RdKyhvPj5mLWEpJmg7Zi09YTtsPWw8PGF8ZVt0XTtjKz1hO2lmKGM+PTgpe25bbSsrXT1sPj5jLTgmMjU1O2MtPTh9fWM+MCYmKG5bbSsrXT0obDw8OC1jKSsobyYoMTw8OC1jKS0xKSl9dGhpcy5idWZmZXJMZW5ndGgrPWV9cmVhZEJsb2NrUG5nKCl7Y29uc3QgZT10aGlzLnJvd0J5dGVzLHQ9dGhpcy5waXhCeXRlcyxuPXRoaXMuc3RyZWFtLmdldEJ5dGUoKSxhPXRoaXMuc3RyZWFtLmdldEJ5dGVzKGUpO3RoaXMuZW9mPSFhLmxlbmd0aDtpZih0aGlzLmVvZilyZXR1cm47Y29uc3Qgcz10aGlzLmJ1ZmZlckxlbmd0aCxyPXRoaXMuZW5zdXJlQnVmZmVyKHMrZSk7bGV0IGk9ci5zdWJhcnJheShzLWUscyk7MD09PWkubGVuZ3RoJiYoaT1uZXcgVWludDhBcnJheShlKSk7bGV0IG8sbCxmLGM9cztzd2l0Y2gobil7Y2FzZSAwOmZvcihvPTA7bzxlOysrbylyW2MrK109YVtvXTticmVhaztjYXNlIDE6Zm9yKG89MDtvPHQ7KytvKXJbYysrXT1hW29dO2Zvcig7bzxlOysrbyl7cltjXT1yW2MtdF0rYVtvXSYyNTU7YysrfWJyZWFrO2Nhc2UgMjpmb3Iobz0wO288ZTsrK28pcltjKytdPWlbb10rYVtvXSYyNTU7YnJlYWs7Y2FzZSAzOmZvcihvPTA7bzx0OysrbylyW2MrK109KGlbb10+PjEpK2Fbb107Zm9yKDtvPGU7KytvKXtyW2NdPShpW29dK3JbYy10XT4+MSkrYVtvXSYyNTU7YysrfWJyZWFrO2Nhc2UgNDpmb3Iobz0wO288dDsrK28pe2w9aVtvXTtmPWFbb107cltjKytdPWwrZn1mb3IoO288ZTsrK28pe2w9aVtvXTtjb25zdCBlPWlbby10XSxuPXJbYy10XSxzPW4rbC1lO2xldCBoPXMtbjtoPDAmJihoPS1oKTtsZXQgdT1zLWw7dTwwJiYodT0tdSk7bGV0IG09cy1lO208MCYmKG09LW0pO2Y9YVtvXTtyW2MrK109aDw9dSYmaDw9bT9uK2Y6dTw9bT9sK2Y6ZStmfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBVbnN1cHBvcnRlZCBwcmVkaWN0b3I6ICR7bn1gKX10aGlzLmJ1ZmZlckxlbmd0aCs9ZX19Y2xhc3MgUnVuTGVuZ3RoU3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIodCk7dGhpcy5zdHJlYW09ZTt0aGlzLmRpY3Q9ZS5kaWN0fXJlYWRCbG9jaygpe2NvbnN0IGU9dGhpcy5zdHJlYW0uZ2V0Qnl0ZXMoMik7aWYoIWV8fGUubGVuZ3RoPDJ8fDEyOD09PWVbMF0pe3RoaXMuZW9mPSEwO3JldHVybn1sZXQgdCxuPXRoaXMuYnVmZmVyTGVuZ3RoLGE9ZVswXTtpZihhPDEyOCl7dD10aGlzLmVuc3VyZUJ1ZmZlcihuK2ErMSk7dFtuKytdPWVbMV07aWYoYT4wKXtjb25zdCBlPXRoaXMuc3RyZWFtLmdldEJ5dGVzKGEpO3Quc2V0KGUsbik7bis9YX19ZWxzZXthPTI1Ny1hO3Q9dGhpcy5lbnN1cmVCdWZmZXIobithKzEpO3QuZmlsbChlWzFdLG4sbithKTtuKz1hfXRoaXMuYnVmZmVyTGVuZ3RoPW59fWNsYXNzIFBhcnNlcntjb25zdHJ1Y3Rvcih7bGV4ZXI6ZSx4cmVmOnQsYWxsb3dTdHJlYW1zOm49ITEscmVjb3ZlcnlNb2RlOmE9ITF9KXt0aGlzLmxleGVyPWU7dGhpcy54cmVmPXQ7dGhpcy5hbGxvd1N0cmVhbXM9bjt0aGlzLnJlY292ZXJ5TW9kZT1hO3RoaXMuaW1hZ2VDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXMuX2ltYWdlSWQ9MDt0aGlzLnJlZmlsbCgpfXJlZmlsbCgpe3RoaXMuYnVmMT10aGlzLmxleGVyLmdldE9iaigpO3RoaXMuYnVmMj10aGlzLmxleGVyLmdldE9iaigpfXNoaWZ0KCl7aWYodGhpcy5idWYyIGluc3RhbmNlb2YgQ21kJiYiSUQiPT09dGhpcy5idWYyLmNtZCl7dGhpcy5idWYxPXRoaXMuYnVmMjt0aGlzLmJ1ZjI9bnVsbH1lbHNle3RoaXMuYnVmMT10aGlzLmJ1ZjI7dGhpcy5idWYyPXRoaXMubGV4ZXIuZ2V0T2JqKCl9fXRyeVNoaWZ0KCl7dHJ5e3RoaXMuc2hpZnQoKTtyZXR1cm4hMH1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTtyZXR1cm4hMX19Z2V0T2JqKGU9bnVsbCl7Y29uc3QgdD10aGlzLmJ1ZjE7dGhpcy5zaGlmdCgpO2lmKHQgaW5zdGFuY2VvZiBDbWQpc3dpdGNoKHQuY21kKXtjYXNlIkJJIjpyZXR1cm4gdGhpcy5tYWtlSW5saW5lSW1hZ2UoZSk7Y2FzZSJbIjpjb25zdCBuPVtdO2Zvcig7IWlzQ21kKHRoaXMuYnVmMSwiXSIpJiZ0aGlzLmJ1ZjEhPT1vbjspbi5wdXNoKHRoaXMuZ2V0T2JqKGUpKTtpZih0aGlzLmJ1ZjE9PT1vbil7aWYodGhpcy5yZWNvdmVyeU1vZGUpcmV0dXJuIG47dGhyb3cgbmV3IFBhcnNlckVPRkV4Y2VwdGlvbigiRW5kIG9mIGZpbGUgaW5zaWRlIGFycmF5LiIpfXRoaXMuc2hpZnQoKTtyZXR1cm4gbjtjYXNlIjw8Ijpjb25zdCBhPW5ldyBEaWN0KHRoaXMueHJlZik7Zm9yKDshaXNDbWQodGhpcy5idWYxLCI+PiIpJiZ0aGlzLmJ1ZjEhPT1vbjspe2lmKCEodGhpcy5idWYxIGluc3RhbmNlb2YgTmFtZSkpe2luZm8oIk1hbGZvcm1lZCBkaWN0aW9uYXJ5OiBrZXkgbXVzdCBiZSBhIG5hbWUgb2JqZWN0Iik7dGhpcy5zaGlmdCgpO2NvbnRpbnVlfWNvbnN0IHQ9dGhpcy5idWYxLm5hbWU7dGhpcy5zaGlmdCgpO2lmKHRoaXMuYnVmMT09PW9uKWJyZWFrO2Euc2V0KHQsdGhpcy5nZXRPYmooZSkpfWlmKHRoaXMuYnVmMT09PW9uKXtpZih0aGlzLnJlY292ZXJ5TW9kZSlyZXR1cm4gYTt0aHJvdyBuZXcgUGFyc2VyRU9GRXhjZXB0aW9uKCJFbmQgb2YgZmlsZSBpbnNpZGUgZGljdGlvbmFyeS4iKX1pZihpc0NtZCh0aGlzLmJ1ZjIsInN0cmVhbSIpKXJldHVybiB0aGlzLmFsbG93U3RyZWFtcz90aGlzLm1ha2VTdHJlYW0oYSxlKTphO3RoaXMuc2hpZnQoKTtyZXR1cm4gYTtkZWZhdWx0OnJldHVybiB0fWlmKE51bWJlci5pc0ludGVnZXIodCkpe2lmKE51bWJlci5pc0ludGVnZXIodGhpcy5idWYxKSYmaXNDbWQodGhpcy5idWYyLCJSIikpe2NvbnN0IGU9UmVmLmdldCh0LHRoaXMuYnVmMSk7dGhpcy5zaGlmdCgpO3RoaXMuc2hpZnQoKTtyZXR1cm4gZX1yZXR1cm4gdH1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJmU/ZS5kZWNyeXB0U3RyaW5nKHQpOnR9ZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQoZSl7Y29uc3R7a25vd25Db21tYW5kczp0fT10aGlzLmxleGVyLG49ZS5wb3M7bGV0IGEscyxyPTA7Zm9yKDstMSE9PShhPWUuZ2V0Qnl0ZSgpKTspaWYoMD09PXIpcj02OT09PWE/MTowO2Vsc2UgaWYoMT09PXIpcj03Mz09PWE/MjowO2Vsc2UgaWYoMzI9PT1hfHwxMD09PWF8fDEzPT09YSl7cz1lLnBvcztjb25zdCBuPWUucGVla0J5dGVzKDE1KSxpPW4ubGVuZ3RoO2lmKDA9PT1pKWJyZWFrO2ZvcihsZXQgZT0wO2U8aTtlKyspe2E9bltlXTtpZigoMCE9PWF8fDA9PT1uW2UrMV0pJiYoMTAhPT1hJiYxMyE9PWEmJihhPDMyfHxhPjEyNykpKXtyPTA7YnJlYWt9fWlmKDIhPT1yKWNvbnRpbnVlO2lmKCF0KXt3YXJuKCJmaW5kRGVmYXVsdElubGluZVN0cmVhbUVuZCAtIGBsZXhlci5rbm93bkNvbW1hbmRzYCBpcyB1bmRlZmluZWQuIik7Y29udGludWV9Y29uc3Qgbz1uZXcgTGV4ZXIobmV3IFN0cmVhbShlLnBlZWtCeXRlcyg3NSkpLHQpO28uX2hleFN0cmluZ1dhcm49KCk9Pnt9O2xldCBsPTA7Zm9yKDs7KXtjb25zdCBlPW8uZ2V0T2JqKCk7aWYoZT09PW9uKXtyPTA7YnJlYWt9aWYoZSBpbnN0YW5jZW9mIENtZCl7Y29uc3Qgbj10W2UuY21kXTtpZighbil7cj0wO2JyZWFrfWlmKG4udmFyaWFibGVBcmdzP2w8PW4ubnVtQXJnczpsPT09bi5udW1BcmdzKWJyZWFrO2w9MDtjb250aW51ZX1sKyt9aWYoMj09PXIpYnJlYWt9ZWxzZSByPTA7aWYoLTE9PT1hKXt3YXJuKCJmaW5kRGVmYXVsdElubGluZVN0cmVhbUVuZDogUmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aG91dCBmaW5kaW5nIGEgdmFsaWQgRUkgbWFya2VyIik7aWYocyl7d2FybignLi4uIHRyeWluZyB0byByZWNvdmVyIGJ5IHVzaW5nIHRoZSBsYXN0ICJFSSIgb2NjdXJyZW5jZS4nKTtlLnNraXAoLShlLnBvcy1zKSl9fWxldCBpPTQ7ZS5za2lwKC1pKTthPWUucGVla0J5dGUoKTtlLnNraXAoaSk7aXNXaGl0ZVNwYWNlKGEpfHxpLS07cmV0dXJuIGUucG9zLWktbn1maW5kRENURGVjb2RlSW5saW5lU3RyZWFtRW5kKGUpe2NvbnN0IHQ9ZS5wb3M7bGV0IG4sYSxzPSExO2Zvcig7LTEhPT0obj1lLmdldEJ5dGUoKSk7KWlmKDI1NT09PW4pe3N3aXRjaChlLmdldEJ5dGUoKSl7Y2FzZSAwOmJyZWFrO2Nhc2UgMjU1OmUuc2tpcCgtMSk7YnJlYWs7Y2FzZSAyMTc6cz0hMDticmVhaztjYXNlIDE5MjpjYXNlIDE5MzpjYXNlIDE5NDpjYXNlIDE5NTpjYXNlIDE5NzpjYXNlIDE5ODpjYXNlIDE5OTpjYXNlIDIwMTpjYXNlIDIwMjpjYXNlIDIwMzpjYXNlIDIwNTpjYXNlIDIwNjpjYXNlIDIwNzpjYXNlIDE5NjpjYXNlIDIwNDpjYXNlIDIxODpjYXNlIDIxOTpjYXNlIDIyMDpjYXNlIDIyMTpjYXNlIDIyMjpjYXNlIDIyMzpjYXNlIDIyNDpjYXNlIDIyNTpjYXNlIDIyNjpjYXNlIDIyNzpjYXNlIDIyODpjYXNlIDIyOTpjYXNlIDIzMDpjYXNlIDIzMTpjYXNlIDIzMjpjYXNlIDIzMzpjYXNlIDIzNDpjYXNlIDIzNTpjYXNlIDIzNjpjYXNlIDIzNzpjYXNlIDIzODpjYXNlIDIzOTpjYXNlIDI1NDphPWUuZ2V0VWludDE2KCk7YT4yP2Uuc2tpcChhLTIpOmUuc2tpcCgtMil9aWYocylicmVha31jb25zdCByPWUucG9zLXQ7aWYoLTE9PT1uKXt3YXJuKCJJbmxpbmUgRENURGVjb2RlIGltYWdlIHN0cmVhbTogRU9JIG1hcmtlciBub3QgZm91bmQsIHNlYXJjaGluZyBmb3IgL0VJLyBpbnN0ZWFkLiIpO2Uuc2tpcCgtcik7cmV0dXJuIHRoaXMuZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQoZSl9dGhpcy5pbmxpbmVTdHJlYW1Ta2lwRUkoZSk7cmV0dXJuIHJ9ZmluZEFTQ0lJODVEZWNvZGVJbmxpbmVTdHJlYW1FbmQoZSl7Y29uc3QgdD1lLnBvcztsZXQgbjtmb3IoOy0xIT09KG49ZS5nZXRCeXRlKCkpOylpZigxMjY9PT1uKXtjb25zdCB0PWUucG9zO249ZS5wZWVrQnl0ZSgpO2Zvcig7aXNXaGl0ZVNwYWNlKG4pOyl7ZS5za2lwKCk7bj1lLnBlZWtCeXRlKCl9aWYoNjI9PT1uKXtlLnNraXAoKTticmVha31pZihlLnBvcz50KXtjb25zdCB0PWUucGVla0J5dGVzKDIpO2lmKDY5PT09dFswXSYmNzM9PT10WzFdKWJyZWFrfX1jb25zdCBhPWUucG9zLXQ7aWYoLTE9PT1uKXt3YXJuKCJJbmxpbmUgQVNDSUk4NURlY29kZSBpbWFnZSBzdHJlYW06IEVPRCBtYXJrZXIgbm90IGZvdW5kLCBzZWFyY2hpbmcgZm9yIC9FSS8gaW5zdGVhZC4iKTtlLnNraXAoLWEpO3JldHVybiB0aGlzLmZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKGUpfXRoaXMuaW5saW5lU3RyZWFtU2tpcEVJKGUpO3JldHVybiBhfWZpbmRBU0NJSUhleERlY29kZUlubGluZVN0cmVhbUVuZChlKXtjb25zdCB0PWUucG9zO2xldCBuO2Zvcig7LTEhPT0obj1lLmdldEJ5dGUoKSkmJjYyIT09bjspO2NvbnN0IGE9ZS5wb3MtdDtpZigtMT09PW4pe3dhcm4oIklubGluZSBBU0NJSUhleERlY29kZSBpbWFnZSBzdHJlYW06IEVPRCBtYXJrZXIgbm90IGZvdW5kLCBzZWFyY2hpbmcgZm9yIC9FSS8gaW5zdGVhZC4iKTtlLnNraXAoLWEpO3JldHVybiB0aGlzLmZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKGUpfXRoaXMuaW5saW5lU3RyZWFtU2tpcEVJKGUpO3JldHVybiBhfWlubGluZVN0cmVhbVNraXBFSShlKXtsZXQgdCxuPTA7Zm9yKDstMSE9PSh0PWUuZ2V0Qnl0ZSgpKTspaWYoMD09PW4pbj02OT09PXQ/MTowO2Vsc2UgaWYoMT09PW4pbj03Mz09PXQ/MjowO2Vsc2UgaWYoMj09PW4pYnJlYWt9bWFrZUlubGluZUltYWdlKGUpe2NvbnN0IHQ9dGhpcy5sZXhlcixuPXQuc3RyZWFtLGE9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgcztmb3IoOyFpc0NtZCh0aGlzLmJ1ZjEsIklEIikmJnRoaXMuYnVmMSE9PW9uOyl7aWYoISh0aGlzLmJ1ZjEgaW5zdGFuY2VvZiBOYW1lKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkRpY3Rpb25hcnkga2V5IG11c3QgYmUgYSBuYW1lIG9iamVjdCIpO2NvbnN0IHQ9dGhpcy5idWYxLm5hbWU7dGhpcy5zaGlmdCgpO2lmKHRoaXMuYnVmMT09PW9uKWJyZWFrO2FbdF09dGhpcy5nZXRPYmooZSl9LTEhPT10LmJlZ2luSW5saW5lSW1hZ2VQb3MmJihzPW4ucG9zLXQuYmVnaW5JbmxpbmVJbWFnZVBvcyk7Y29uc3Qgcj10aGlzLnhyZWYuZmV0Y2hJZlJlZihhLkZ8fGEuRmlsdGVyKTtsZXQgaTtpZihyIGluc3RhbmNlb2YgTmFtZSlpPXIubmFtZTtlbHNlIGlmKEFycmF5LmlzQXJyYXkocikpe2NvbnN0IGU9dGhpcy54cmVmLmZldGNoSWZSZWYoclswXSk7ZSBpbnN0YW5jZW9mIE5hbWUmJihpPWUubmFtZSl9Y29uc3Qgbz1uLnBvcztsZXQgbCxmO3N3aXRjaChpKXtjYXNlIkRDVCI6Y2FzZSJEQ1REZWNvZGUiOmw9dGhpcy5maW5kRENURGVjb2RlSW5saW5lU3RyZWFtRW5kKG4pO2JyZWFrO2Nhc2UiQTg1IjpjYXNlIkFTQ0lJODVEZWNvZGUiOmw9dGhpcy5maW5kQVNDSUk4NURlY29kZUlubGluZVN0cmVhbUVuZChuKTticmVhaztjYXNlIkFIeCI6Y2FzZSJBU0NJSUhleERlY29kZSI6bD10aGlzLmZpbmRBU0NJSUhleERlY29kZUlubGluZVN0cmVhbUVuZChuKTticmVhaztkZWZhdWx0Omw9dGhpcy5maW5kRGVmYXVsdElubGluZVN0cmVhbUVuZChuKX1pZihsPDFlMyYmcz4wKXtjb25zdCBlPW4ucG9zO24ucG9zPXQuYmVnaW5JbmxpbmVJbWFnZVBvcztmPWZ1bmN0aW9uIGdldElubGluZUltYWdlQ2FjaGVLZXkoZSl7Y29uc3QgdD1bXSxuPWUubGVuZ3RoO2xldCBhPTA7Zm9yKDthPG4tMTspdC5wdXNoKGVbYSsrXTw8OHxlW2ErK10pO2E8biYmdC5wdXNoKGVbYV0pO3JldHVybiBuKyJfIitTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdCl9KG4uZ2V0Qnl0ZXMocytsKSk7bi5wb3M9ZTtjb25zdCBhPXRoaXMuaW1hZ2VDYWNoZVtmXTtpZih2b2lkIDAhPT1hKXt0aGlzLmJ1ZjI9Q21kLmdldCgiRUkiKTt0aGlzLnNoaWZ0KCk7YS5yZXNldCgpO3JldHVybiBhfX1jb25zdCBjPW5ldyBEaWN0KHRoaXMueHJlZik7Zm9yKGNvbnN0IGUgaW4gYSljLnNldChlLGFbZV0pO2xldCBoPW4ubWFrZVN1YlN0cmVhbShvLGwsYyk7ZSYmKGg9ZS5jcmVhdGVTdHJlYW0oaCxsKSk7aD10aGlzLmZpbHRlcihoLGMsbCk7aC5kaWN0PWM7aWYodm9pZCAwIT09Zil7aC5jYWNoZUtleT0iaW5saW5lX2ltZ18iKyArK3RoaXMuX2ltYWdlSWQ7dGhpcy5pbWFnZUNhY2hlW2ZdPWh9dGhpcy5idWYyPUNtZC5nZXQoIkVJIik7dGhpcy5zaGlmdCgpO3JldHVybiBofSNfKGUpe2NvbnN0e3N0cmVhbTp0fT10aGlzLmxleGVyO3QucG9zPWU7Y29uc3Qgbj1uZXcgVWludDhBcnJheShbMTAxLDExMCwxMDBdKSxhPW4ubGVuZ3RoLHM9W25ldyBVaW50OEFycmF5KFsxMTUsMTE2LDExNCwxMDEsOTcsMTA5XSksbmV3IFVpbnQ4QXJyYXkoWzExNSwxMTYsMTAxLDk3LDEwOV0pLG5ldyBVaW50OEFycmF5KFsxMTUsMTE2LDExNCwxMDEsOTddKV0scj05LWE7Zm9yKDt0LnBvczx0LmVuZDspe2NvbnN0IGk9dC5wZWVrQnl0ZXMoMjA0OCksbz1pLmxlbmd0aC05O2lmKG88PTApYnJlYWs7bGV0IGw9MDtmb3IoO2w8bzspe2xldCBvPTA7Zm9yKDtvPGEmJmlbbCtvXT09PW5bb107KW8rKztpZihvPj1hKXtsZXQgYT0hMTtmb3IoY29uc3QgZSBvZiBzKXtjb25zdCB0PWUubGVuZ3RoO2xldCBzPTA7Zm9yKDtzPHQmJmlbbCtvK3NdPT09ZVtzXTspcysrO2lmKHM+PXIpe2E9ITA7YnJlYWt9aWYocz49dCl7aWYoaXNXaGl0ZVNwYWNlKGlbbCtvK3NdKSl7aW5mbyhgRm91bmQgIiR7Ynl0ZXNUb1N0cmluZyhbLi4ubiwuLi5lXSl9IiB3aGVuIHNlYXJjaGluZyBmb3IgZW5kc3RyZWFtIGNvbW1hbmQuYCk7YT0hMH1icmVha319aWYoYSl7dC5wb3MrPWw7cmV0dXJuIHQucG9zLWV9fWwrK310LnBvcys9b31yZXR1cm4tMX1tYWtlU3RyZWFtKGUsdCl7Y29uc3Qgbj10aGlzLmxleGVyO2xldCBhPW4uc3RyZWFtO24uc2tpcFRvTmV4dExpbmUoKTtjb25zdCBzPWEucG9zLTE7bGV0IHI9ZS5nZXQoIkxlbmd0aCIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHIpKXtpbmZvKGBCYWQgbGVuZ3RoICIke3ImJnIudG9TdHJpbmcoKX0iIGluIHN0cmVhbS5gKTtyPTB9YS5wb3M9cytyO24ubmV4dENoYXIoKTtpZih0aGlzLnRyeVNoaWZ0KCkmJmlzQ21kKHRoaXMuYnVmMiwiZW5kc3RyZWFtIikpdGhpcy5zaGlmdCgpO2Vsc2V7cj10aGlzLiNfKHMpO2lmKHI8MCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk1pc3NpbmcgZW5kc3RyZWFtIGNvbW1hbmQuIik7bi5uZXh0Q2hhcigpO3RoaXMuc2hpZnQoKTt0aGlzLnNoaWZ0KCl9dGhpcy5zaGlmdCgpO2E9YS5tYWtlU3ViU3RyZWFtKHMscixlKTt0JiYoYT10LmNyZWF0ZVN0cmVhbShhLHIpKTthPXRoaXMuZmlsdGVyKGEsZSxyKTthLmRpY3Q9ZTtyZXR1cm4gYX1maWx0ZXIoZSx0LG4pe2xldCBhPXQuZ2V0KCJGIiwiRmlsdGVyIikscz10LmdldCgiRFAiLCJEZWNvZGVQYXJtcyIpO2lmKGEgaW5zdGFuY2VvZiBOYW1lKXtBcnJheS5pc0FycmF5KHMpJiZ3YXJuKCIvRGVjb2RlUGFybXMgc2hvdWxkIG5vdCBiZSBhbiBBcnJheSwgd2hlbiAvRmlsdGVyIGlzIGEgTmFtZS4iKTtyZXR1cm4gdGhpcy5tYWtlRmlsdGVyKGUsYS5uYW1lLG4scyl9bGV0IHI9bjtpZihBcnJheS5pc0FycmF5KGEpKXtjb25zdCB0PWEsbj1zO2ZvcihsZXQgaT0wLG89dC5sZW5ndGg7aTxvOysraSl7YT10aGlzLnhyZWYuZmV0Y2hJZlJlZih0W2ldKTtpZighKGEgaW5zdGFuY2VvZiBOYW1lKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEJhZCBmaWx0ZXIgbmFtZSAiJHthfSJgKTtzPW51bGw7QXJyYXkuaXNBcnJheShuKSYmaSBpbiBuJiYocz10aGlzLnhyZWYuZmV0Y2hJZlJlZihuW2ldKSk7ZT10aGlzLm1ha2VGaWx0ZXIoZSxhLm5hbWUscixzKTtyPW51bGx9fXJldHVybiBlfW1ha2VGaWx0ZXIoZSx0LG4sYSl7aWYoMD09PW4pe3dhcm4oYEVtcHR5ICIke3R9IiBzdHJlYW0uYCk7cmV0dXJuIG5ldyBOdWxsU3RyZWFtfXRyeXtzd2l0Y2godCl7Y2FzZSJGbCI6Y2FzZSJGbGF0ZURlY29kZSI6cmV0dXJuIGE/bmV3IFByZWRpY3RvclN0cmVhbShuZXcgRmxhdGVTdHJlYW0oZSxuKSxuLGEpOm5ldyBGbGF0ZVN0cmVhbShlLG4pO2Nhc2UiTFpXIjpjYXNlIkxaV0RlY29kZSI6bGV0IHQ9MTtpZihhKXthLmhhcygiRWFybHlDaGFuZ2UiKSYmKHQ9YS5nZXQoIkVhcmx5Q2hhbmdlIikpO3JldHVybiBuZXcgUHJlZGljdG9yU3RyZWFtKG5ldyBMWldTdHJlYW0oZSxuLHQpLG4sYSl9cmV0dXJuIG5ldyBMWldTdHJlYW0oZSxuLHQpO2Nhc2UiRENUIjpjYXNlIkRDVERlY29kZSI6cmV0dXJuIG5ldyBKcGVnU3RyZWFtKGUsbixhKTtjYXNlIkpQWCI6Y2FzZSJKUFhEZWNvZGUiOnJldHVybiBuZXcgSnB4U3RyZWFtKGUsbixhKTtjYXNlIkE4NSI6Y2FzZSJBU0NJSTg1RGVjb2RlIjpyZXR1cm4gbmV3IEFzY2lpODVTdHJlYW0oZSxuKTtjYXNlIkFIeCI6Y2FzZSJBU0NJSUhleERlY29kZSI6cmV0dXJuIG5ldyBBc2NpaUhleFN0cmVhbShlLG4pO2Nhc2UiQ0NGIjpjYXNlIkNDSVRURmF4RGVjb2RlIjpyZXR1cm4gbmV3IENDSVRURmF4U3RyZWFtKGUsbixhKTtjYXNlIlJMIjpjYXNlIlJ1bkxlbmd0aERlY29kZSI6cmV0dXJuIG5ldyBSdW5MZW5ndGhTdHJlYW0oZSxuKTtjYXNlIkpCSUcyRGVjb2RlIjpyZXR1cm4gbmV3IEpiaWcyU3RyZWFtKGUsbixhKTtjYXNlIkJyb3RsaURlY29kZSI6cmV0dXJuIG5ldyBCcm90bGlTdHJlYW0oZSxuKX13YXJuKGBGaWx0ZXIgIiR7dH0iIGlzIG5vdCBzdXBwb3J0ZWQuYCk7cmV0dXJuIGV9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybihgSW52YWxpZCBzdHJlYW06ICIke2V9ImApO3JldHVybiBuZXcgTnVsbFN0cmVhbX19fWNvbnN0IGlhPVsxLDAsMCwwLDAsMCwwLDAsMCwxLDEsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDIsMCwwLDIsMiwwLDAsMCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXTtmdW5jdGlvbiB0b0hleERpZ2l0KGUpe3JldHVybiBlPj00OCYmZTw9NTc/MTUmZTplPj02NSYmZTw9NzB8fGU+PTk3JiZlPD0xMDI/OSsoMTUmZSk6LTF9Y2xhc3MgTGV4ZXJ7Y29uc3RydWN0b3IoZSx0PW51bGwpe3RoaXMuc3RyZWFtPWU7dGhpcy5uZXh0Q2hhcigpO3RoaXMuc3RyQnVmPVtdO3RoaXMua25vd25Db21tYW5kcz10O3RoaXMuX2hleFN0cmluZ051bVdhcm49MDt0aGlzLmJlZ2luSW5saW5lSW1hZ2VQb3M9LTF9bmV4dENoYXIoKXtyZXR1cm4gdGhpcy5jdXJyZW50Q2hhcj10aGlzLnN0cmVhbS5nZXRCeXRlKCl9cGVla0NoYXIoKXtyZXR1cm4gdGhpcy5zdHJlYW0ucGVla0J5dGUoKX1nZXROdW1iZXIoKXtsZXQgZT10aGlzLmN1cnJlbnRDaGFyLHQ9MCxuPTE7aWYoNDU9PT1lKXtuPS0xO2U9dGhpcy5uZXh0Q2hhcigpOzQ1PT09ZSYmKGU9dGhpcy5uZXh0Q2hhcigpKX1lbHNlIDQzPT09ZSYmKGU9dGhpcy5uZXh0Q2hhcigpKTtpZigxMD09PWV8fDEzPT09ZSlkb3tlPXRoaXMubmV4dENoYXIoKX13aGlsZSgxMD09PWV8fDEzPT09ZSk7aWYoNDY9PT1lKXt0PTEwO2U9dGhpcy5uZXh0Q2hhcigpfWlmKGU8NDh8fGU+NTcpe2NvbnN0IHQ9YEludmFsaWQgbnVtYmVyOiAke1N0cmluZy5mcm9tQ2hhckNvZGUoZSl9IChjaGFyQ29kZSAke2V9KWA7aWYoaXNXaGl0ZVNwYWNlKGUpfHw0MD09PWV8fDYwPT09ZXx8LTE9PT1lKXtpbmZvKGBMZXhlci5nZXROdW1iZXIgLSAiJHt0fSIuYCk7cmV0dXJuIDB9dGhyb3cgbmV3IEZvcm1hdEVycm9yKHQpfWxldCBhPWUtNDg7Zm9yKDsoZT10aGlzLm5leHRDaGFyKCkpPj0wOylpZihlPj00OCYmZTw9NTcpezAhPT10JiYodCo9MTApO2E9MTAqYSsoZS00OCl9ZWxzZSBpZig0Nj09PWUpe2lmKDAhPT10KWJyZWFrO3Q9MX1lbHNle2lmKDQ1IT09ZSlicmVhazt3YXJuKCJCYWRseSBmb3JtYXR0ZWQgbnVtYmVyOiBtaW51cyBzaWduIGluIHRoZSBtaWRkbGUiKX0wIT09dCYmKGEvPXQpO3JldHVybiBuKmF9Z2V0U3RyaW5nKCl7bGV0IGU9MSx0PSExO2NvbnN0IG49dGhpcy5zdHJCdWY7bi5sZW5ndGg9MDtsZXQgYT10aGlzLm5leHRDaGFyKCk7Zm9yKDs7KXtsZXQgcz0hMTtzd2l0Y2goMHxhKXtjYXNlLTE6d2FybigiVW50ZXJtaW5hdGVkIHN0cmluZyIpO3Q9ITA7YnJlYWs7Y2FzZSA0MDorK2U7bi5wdXNoKCIoIik7YnJlYWs7Y2FzZSA0MTppZigwPT09LS1lKXt0aGlzLm5leHRDaGFyKCk7dD0hMH1lbHNlIG4ucHVzaCgiKSIpO2JyZWFrO2Nhc2UgOTI6YT10aGlzLm5leHRDaGFyKCk7c3dpdGNoKGEpe2Nhc2UtMTp3YXJuKCJVbnRlcm1pbmF0ZWQgc3RyaW5nIik7dD0hMDticmVhaztjYXNlIDExMDpuLnB1c2goIlxuIik7YnJlYWs7Y2FzZSAxMTQ6bi5wdXNoKCJcciIpO2JyZWFrO2Nhc2UgMTE2Om4ucHVzaCgiXHQiKTticmVhaztjYXNlIDk4Om4ucHVzaCgiXGIiKTticmVhaztjYXNlIDEwMjpuLnB1c2goIlxmIik7YnJlYWs7Y2FzZSA5MjpjYXNlIDQwOmNhc2UgNDE6bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpO2JyZWFrO2Nhc2UgNDg6Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTQ6Y2FzZSA1NTpsZXQgZT0xNSZhO2E9dGhpcy5uZXh0Q2hhcigpO3M9ITA7aWYoYT49NDgmJmE8PTU1KXtlPShlPDwzKSsoMTUmYSk7YT10aGlzLm5leHRDaGFyKCk7aWYoYT49NDgmJmE8PTU1KXtzPSExO2U9KGU8PDMpKygxNSZhKX19bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpO2JyZWFrO2Nhc2UgMTM6MTA9PT10aGlzLnBlZWtDaGFyKCkmJnRoaXMubmV4dENoYXIoKTticmVhaztjYXNlIDEwOmJyZWFrO2RlZmF1bHQ6bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpfWJyZWFrO2RlZmF1bHQ6bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpfWlmKHQpYnJlYWs7c3x8KGE9dGhpcy5uZXh0Q2hhcigpKX1yZXR1cm4gbi5qb2luKCIiKX1nZXROYW1lKCl7bGV0IGUsdDtjb25zdCBuPXRoaXMuc3RyQnVmO24ubGVuZ3RoPTA7Zm9yKDsoZT10aGlzLm5leHRDaGFyKCkpPj0wJiYhaWFbZV07KWlmKDM1PT09ZSl7ZT10aGlzLm5leHRDaGFyKCk7aWYoaWFbZV0pe3dhcm4oIkxleGVyX2dldE5hbWU6IE5VTUJFUiBTSUdOICgjKSBzaG91bGQgYmUgZm9sbG93ZWQgYnkgYSBoZXhhZGVjaW1hbCBudW1iZXIuIik7bi5wdXNoKCIjIik7YnJlYWt9Y29uc3QgYT10b0hleERpZ2l0KGUpO2lmKC0xIT09YSl7dD1lO2U9dGhpcy5uZXh0Q2hhcigpO2NvbnN0IHM9dG9IZXhEaWdpdChlKTtpZigtMT09PXMpe3dhcm4oYExleGVyX2dldE5hbWU6IElsbGVnYWwgZGlnaXQgKCR7U3RyaW5nLmZyb21DaGFyQ29kZShlKX0pIGluIGhleGFkZWNpbWFsIG51bWJlci5gKTtuLnB1c2goIiMiLFN0cmluZy5mcm9tQ2hhckNvZGUodCkpO2lmKGlhW2VdKWJyZWFrO24ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKTtjb250aW51ZX1uLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShhPDw0fHMpKX1lbHNlIG4ucHVzaCgiIyIsU3RyaW5nLmZyb21DaGFyQ29kZShlKSl9ZWxzZSBuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShlKSk7bi5sZW5ndGg+MTI3JiZ3YXJuKGBOYW1lIHRva2VuIGlzIGxvbmdlciB0aGFuIGFsbG93ZWQgYnkgdGhlIHNwZWM6ICR7bi5sZW5ndGh9YCk7cmV0dXJuIE5hbWUuZ2V0KG4uam9pbigiIikpfV9oZXhTdHJpbmdXYXJuKGUpezUhPT10aGlzLl9oZXhTdHJpbmdOdW1XYXJuKys/dGhpcy5faGV4U3RyaW5nTnVtV2Fybj41fHx3YXJuKGBnZXRIZXhTdHJpbmcgLSBpZ25vcmluZyBpbnZhbGlkIGNoYXJhY3RlcjogJHtlfWApOndhcm4oImdldEhleFN0cmluZyAtIGlnbm9yaW5nIGFkZGl0aW9uYWwgaW52YWxpZCBjaGFyYWN0ZXJzLiIpfWdldEhleFN0cmluZygpe2NvbnN0IGU9dGhpcy5zdHJCdWY7ZS5sZW5ndGg9MDtsZXQgdD10aGlzLmN1cnJlbnRDaGFyLG49LTEsYT0tMTt0aGlzLl9oZXhTdHJpbmdOdW1XYXJuPTA7Zm9yKDs7KXtpZih0PDApe3dhcm4oIlVudGVybWluYXRlZCBoZXggc3RyaW5nIik7YnJlYWt9aWYoNjI9PT10KXt0aGlzLm5leHRDaGFyKCk7YnJlYWt9aWYoMSE9PWlhW3RdKXthPXRvSGV4RGlnaXQodCk7aWYoLTE9PT1hKXRoaXMuX2hleFN0cmluZ1dhcm4odCk7ZWxzZSBpZigtMT09PW4pbj1hO2Vsc2V7ZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobjw8NHxhKSk7bj0tMX10PXRoaXMubmV4dENoYXIoKX1lbHNlIHQ9dGhpcy5uZXh0Q2hhcigpfS0xIT09biYmZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobjw8NCkpO3JldHVybiBlLmpvaW4oIiIpfWdldE9iaigpe2xldCBlPSExLHQ9dGhpcy5jdXJyZW50Q2hhcjtmb3IoOzspe2lmKHQ8MClyZXR1cm4gb247aWYoZSkxMCE9PXQmJjEzIT09dHx8KGU9ITEpO2Vsc2UgaWYoMzc9PT10KWU9ITA7ZWxzZSBpZigxIT09aWFbdF0pYnJlYWs7dD10aGlzLm5leHRDaGFyKCl9c3dpdGNoKDB8dCl7Y2FzZSA0ODpjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MTpjYXNlIDUyOmNhc2UgNTM6Y2FzZSA1NDpjYXNlIDU1OmNhc2UgNTY6Y2FzZSA1NzpjYXNlIDQzOmNhc2UgNDU6Y2FzZSA0NjpyZXR1cm4gdGhpcy5nZXROdW1iZXIoKTtjYXNlIDQwOnJldHVybiB0aGlzLmdldFN0cmluZygpO2Nhc2UgNDc6cmV0dXJuIHRoaXMuZ2V0TmFtZSgpO2Nhc2UgOTE6dGhpcy5uZXh0Q2hhcigpO3JldHVybiBDbWQuZ2V0KCJbIik7Y2FzZSA5Mzp0aGlzLm5leHRDaGFyKCk7cmV0dXJuIENtZC5nZXQoIl0iKTtjYXNlIDYwOnQ9dGhpcy5uZXh0Q2hhcigpO2lmKDYwPT09dCl7dGhpcy5uZXh0Q2hhcigpO3JldHVybiBDbWQuZ2V0KCI8PCIpfXJldHVybiB0aGlzLmdldEhleFN0cmluZygpO2Nhc2UgNjI6dD10aGlzLm5leHRDaGFyKCk7aWYoNjI9PT10KXt0aGlzLm5leHRDaGFyKCk7cmV0dXJuIENtZC5nZXQoIj4+Iil9cmV0dXJuIENtZC5nZXQoIj4iKTtjYXNlIDEyMzp0aGlzLm5leHRDaGFyKCk7cmV0dXJuIENtZC5nZXQoInsiKTtjYXNlIDEyNTp0aGlzLm5leHRDaGFyKCk7cmV0dXJuIENtZC5nZXQoIn0iKTtjYXNlIDQxOnRoaXMubmV4dENoYXIoKTt0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYElsbGVnYWwgY2hhcmFjdGVyOiAke3R9YCl9bGV0IG49U3RyaW5nLmZyb21DaGFyQ29kZSh0KTtpZih0PDMyfHx0PjEyNyl7Y29uc3QgZT10aGlzLnBlZWtDaGFyKCk7aWYoZT49MzImJmU8PTEyNyl7dGhpcy5uZXh0Q2hhcigpO3JldHVybiBDbWQuZ2V0KG4pfX1jb25zdCBhPXRoaXMua25vd25Db21tYW5kcztsZXQgcz12b2lkIDAhPT1hPy5bbl07Zm9yKDsodD10aGlzLm5leHRDaGFyKCkpPj0wJiYhaWFbdF07KXtjb25zdCBlPW4rU3RyaW5nLmZyb21DaGFyQ29kZSh0KTtpZihzJiZ2b2lkIDA9PT1hW2VdKWJyZWFrO2lmKDEyOD09PW4ubGVuZ3RoKXRocm93IG5ldyBGb3JtYXRFcnJvcihgQ29tbWFuZCB0b2tlbiB0b28gbG9uZzogJHtuLmxlbmd0aH1gKTtuPWU7cz12b2lkIDAhPT1hPy5bbl19aWYoInRydWUiPT09bilyZXR1cm4hMDtpZigiZmFsc2UiPT09bilyZXR1cm4hMTtpZigibnVsbCI9PT1uKXJldHVybiBudWxsOyJCSSI9PT1uJiYodGhpcy5iZWdpbklubGluZUltYWdlUG9zPXRoaXMuc3RyZWFtLnBvcyk7cmV0dXJuIENtZC5nZXQobil9c2tpcFRvTmV4dExpbmUoKXtsZXQgZT10aGlzLmN1cnJlbnRDaGFyO2Zvcig7ZT49MDspe2lmKDEzPT09ZSl7ZT10aGlzLm5leHRDaGFyKCk7MTA9PT1lJiZ0aGlzLm5leHRDaGFyKCk7YnJlYWt9aWYoMTA9PT1lKXt0aGlzLm5leHRDaGFyKCk7YnJlYWt9ZT10aGlzLm5leHRDaGFyKCl9fX1jbGFzcyBMaW5lYXJpemF0aW9ue3N0YXRpYyBjcmVhdGUoZSl7ZnVuY3Rpb24gZ2V0SW50KGUsdCxuPSExKXtjb25zdCBhPWUuZ2V0KHQpO2lmKE51bWJlci5pc0ludGVnZXIoYSkmJihuP2E+PTA6YT4wKSlyZXR1cm4gYTt0aHJvdyBuZXcgRXJyb3IoYFRoZSAiJHt0fSIgcGFyYW1ldGVyIGluIHRoZSBsaW5lYXJpemF0aW9uIGRpY3Rpb25hcnkgaXMgaW52YWxpZC5gKX1jb25zdCB0PW5ldyBQYXJzZXIoe2xleGVyOm5ldyBMZXhlcihlKSx4cmVmOm51bGx9KSxuPXQuZ2V0T2JqKCksYT10LmdldE9iaigpLHM9dC5nZXRPYmooKSxyPXQuZ2V0T2JqKCk7bGV0IGksbztpZighKE51bWJlci5pc0ludGVnZXIobikmJk51bWJlci5pc0ludGVnZXIoYSkmJmlzQ21kKHMsIm9iaiIpJiZyIGluc3RhbmNlb2YgRGljdCYmIm51bWJlciI9PXR5cGVvZihpPXIuZ2V0KCJMaW5lYXJpemVkIikpJiZpPjApKXJldHVybiBudWxsO2lmKChvPWdldEludChyLCJMIikpIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCdUaGUgIkwiIHBhcmFtZXRlciBpbiB0aGUgbGluZWFyaXphdGlvbiBkaWN0aW9uYXJ5IGRvZXMgbm90IGVxdWFsIHRoZSBzdHJlYW0gbGVuZ3RoLicpO3JldHVybntsZW5ndGg6byxoaW50czpmdW5jdGlvbiBnZXRIaW50cyhlKXtjb25zdCB0PWUuZ2V0KCJIIik7bGV0IG47aWYoQXJyYXkuaXNBcnJheSh0KSYmKDI9PT0obj10Lmxlbmd0aCl8fDQ9PT1uKSl7Zm9yKGxldCBlPTA7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdO2lmKCEoTnVtYmVyLmlzSW50ZWdlcihuKSYmbj4wKSl0aHJvdyBuZXcgRXJyb3IoYEhpbnQgKCR7ZX0pIGluIHRoZSBsaW5lYXJpemF0aW9uIGRpY3Rpb25hcnkgaXMgaW52YWxpZC5gKX1yZXR1cm4gdH10aHJvdyBuZXcgRXJyb3IoIkhpbnQgYXJyYXkgaW4gdGhlIGxpbmVhcml6YXRpb24gZGljdGlvbmFyeSBpcyBpbnZhbGlkLiIpfShyKSxvYmplY3ROdW1iZXJGaXJzdDpnZXRJbnQociwiTyIpLGVuZEZpcnN0OmdldEludChyLCJFIiksbnVtUGFnZXM6Z2V0SW50KHIsIk4iKSxtYWluWFJlZkVudHJpZXNPZmZzZXQ6Z2V0SW50KHIsIlQiKSxwYWdlRmlyc3Q6ci5oYXMoIlAiKT9nZXRJbnQociwiUCIsITApOjB9fX1jb25zdCBvYT1bIkFkb2JlLUdCMS1VQ1MyIiwiQWRvYmUtQ05TMS1VQ1MyIiwiQWRvYmUtSmFwYW4xLVVDUzIiLCJBZG9iZS1Lb3JlYTEtVUNTMiIsIjc4LUVVQy1IIiwiNzgtRVVDLVYiLCI3OC1IIiwiNzgtUktTSi1IIiwiNzgtUktTSi1WIiwiNzgtViIsIjc4bXMtUktTSi1IIiwiNzhtcy1SS1NKLVYiLCI4M3B2LVJLU0otSCIsIjkwbXMtUktTSi1IIiwiOTBtcy1SS1NKLVYiLCI5MG1zcC1SS1NKLUgiLCI5MG1zcC1SS1NKLVYiLCI5MHB2LVJLU0otSCIsIjkwcHYtUktTSi1WIiwiQWRkLUgiLCJBZGQtUktTSi1IIiwiQWRkLVJLU0otViIsIkFkZC1WIiwiQWRvYmUtQ05TMS0wIiwiQWRvYmUtQ05TMS0xIiwiQWRvYmUtQ05TMS0yIiwiQWRvYmUtQ05TMS0zIiwiQWRvYmUtQ05TMS00IiwiQWRvYmUtQ05TMS01IiwiQWRvYmUtQ05TMS02IiwiQWRvYmUtR0IxLTAiLCJBZG9iZS1HQjEtMSIsIkFkb2JlLUdCMS0yIiwiQWRvYmUtR0IxLTMiLCJBZG9iZS1HQjEtNCIsIkFkb2JlLUdCMS01IiwiQWRvYmUtSmFwYW4xLTAiLCJBZG9iZS1KYXBhbjEtMSIsIkFkb2JlLUphcGFuMS0yIiwiQWRvYmUtSmFwYW4xLTMiLCJBZG9iZS1KYXBhbjEtNCIsIkFkb2JlLUphcGFuMS01IiwiQWRvYmUtSmFwYW4xLTYiLCJBZG9iZS1Lb3JlYTEtMCIsIkFkb2JlLUtvcmVhMS0xIiwiQWRvYmUtS29yZWExLTIiLCJCNS1IIiwiQjUtViIsIkI1cGMtSCIsIkI1cGMtViIsIkNOUy1FVUMtSCIsIkNOUy1FVUMtViIsIkNOUzEtSCIsIkNOUzEtViIsIkNOUzItSCIsIkNOUzItViIsIkVUSEstQjUtSCIsIkVUSEstQjUtViIsIkVUZW4tQjUtSCIsIkVUZW4tQjUtViIsIkVUZW5tcy1CNS1IIiwiRVRlbm1zLUI1LVYiLCJFVUMtSCIsIkVVQy1WIiwiRXh0LUgiLCJFeHQtUktTSi1IIiwiRXh0LVJLU0otViIsIkV4dC1WIiwiR0ItRVVDLUgiLCJHQi1FVUMtViIsIkdCLUgiLCJHQi1WIiwiR0JLLUVVQy1IIiwiR0JLLUVVQy1WIiwiR0JLMkstSCIsIkdCSzJLLVYiLCJHQktwLUVVQy1IIiwiR0JLcC1FVUMtViIsIkdCVC1FVUMtSCIsIkdCVC1FVUMtViIsIkdCVC1IIiwiR0JULVYiLCJHQlRwYy1FVUMtSCIsIkdCVHBjLUVVQy1WIiwiR0JwYy1FVUMtSCIsIkdCcGMtRVVDLVYiLCJIIiwiSEtkbGEtQjUtSCIsIkhLZGxhLUI1LVYiLCJIS2RsYi1CNS1IIiwiSEtkbGItQjUtViIsIkhLZ2Njcy1CNS1IIiwiSEtnY2NzLUI1LVYiLCJIS20zMTQtQjUtSCIsIkhLbTMxNC1CNS1WIiwiSEttNDcxLUI1LUgiLCJIS200NzEtQjUtViIsIkhLc2NzLUI1LUgiLCJIS3Njcy1CNS1WIiwiSGFua2FrdSIsIkhpcmFnYW5hIiwiS1NDLUVVQy1IIiwiS1NDLUVVQy1WIiwiS1NDLUgiLCJLU0MtSm9oYWItSCIsIktTQy1Kb2hhYi1WIiwiS1NDLVYiLCJLU0Ntcy1VSEMtSCIsIktTQ21zLVVIQy1IVy1IIiwiS1NDbXMtVUhDLUhXLVYiLCJLU0Ntcy1VSEMtViIsIktTQ3BjLUVVQy1IIiwiS1NDcGMtRVVDLVYiLCJLYXRha2FuYSIsIk5XUC1IIiwiTldQLVYiLCJSS1NKLUgiLCJSS1NKLVYiLCJSb21hbiIsIlVuaUNOUy1VQ1MyLUgiLCJVbmlDTlMtVUNTMi1WIiwiVW5pQ05TLVVURjE2LUgiLCJVbmlDTlMtVVRGMTYtViIsIlVuaUNOUy1VVEYzMi1IIiwiVW5pQ05TLVVURjMyLVYiLCJVbmlDTlMtVVRGOC1IIiwiVW5pQ05TLVVURjgtViIsIlVuaUdCLVVDUzItSCIsIlVuaUdCLVVDUzItViIsIlVuaUdCLVVURjE2LUgiLCJVbmlHQi1VVEYxNi1WIiwiVW5pR0ItVVRGMzItSCIsIlVuaUdCLVVURjMyLVYiLCJVbmlHQi1VVEY4LUgiLCJVbmlHQi1VVEY4LVYiLCJVbmlKSVMtVUNTMi1IIiwiVW5pSklTLVVDUzItSFctSCIsIlVuaUpJUy1VQ1MyLUhXLVYiLCJVbmlKSVMtVUNTMi1WIiwiVW5pSklTLVVURjE2LUgiLCJVbmlKSVMtVVRGMTYtViIsIlVuaUpJUy1VVEYzMi1IIiwiVW5pSklTLVVURjMyLVYiLCJVbmlKSVMtVVRGOC1IIiwiVW5pSklTLVVURjgtViIsIlVuaUpJUzIwMDQtVVRGMTYtSCIsIlVuaUpJUzIwMDQtVVRGMTYtViIsIlVuaUpJUzIwMDQtVVRGMzItSCIsIlVuaUpJUzIwMDQtVVRGMzItViIsIlVuaUpJUzIwMDQtVVRGOC1IIiwiVW5pSklTMjAwNC1VVEY4LVYiLCJVbmlKSVNQcm8tVUNTMi1IVy1WIiwiVW5pSklTUHJvLVVDUzItViIsIlVuaUpJU1Byby1VVEY4LVYiLCJVbmlKSVNYMDIxMy1VVEYzMi1IIiwiVW5pSklTWDAyMTMtVVRGMzItViIsIlVuaUpJU1gwMjEzMjAwNC1VVEYzMi1IIiwiVW5pSklTWDAyMTMyMDA0LVVURjMyLVYiLCJVbmlLUy1VQ1MyLUgiLCJVbmlLUy1VQ1MyLVYiLCJVbmlLUy1VVEYxNi1IIiwiVW5pS1MtVVRGMTYtViIsIlVuaUtTLVVURjMyLUgiLCJVbmlLUy1VVEYzMi1WIiwiVW5pS1MtVVRGOC1IIiwiVW5pS1MtVVRGOC1WIiwiViIsIldQLVN5bWJvbCJdLGxhPTIqKjI0LTE7Y2xhc3MgQ01hcHtjb25zdHJ1Y3RvcihlPSExKXt0aGlzLmNvZGVzcGFjZVJhbmdlcz1bW10sW10sW10sW11dO3RoaXMubnVtQ29kZXNwYWNlUmFuZ2VzPTA7dGhpcy5fbWFwPVtdO3RoaXMubmFtZT0iIjt0aGlzLnZlcnRpY2FsPSExO3RoaXMudXNlQ01hcD1udWxsO3RoaXMuYnVpbHRJbkNNYXA9ZX1hZGRDb2Rlc3BhY2VSYW5nZShlLHQsbil7dGhpcy5jb2Rlc3BhY2VSYW5nZXNbZS0xXS5wdXNoKHQsbik7dGhpcy5udW1Db2Rlc3BhY2VSYW5nZXMrK31tYXBDaWRSYW5nZShlLHQsbil7aWYodC1lPmxhKXRocm93IG5ldyBFcnJvcigibWFwQ2lkUmFuZ2UgLSBpZ25vcmluZyBkYXRhIGFib3ZlIE1BWF9NQVBfUkFOR0UuIik7Zm9yKDtlPD10Oyl0aGlzLl9tYXBbZSsrXT1uKyt9bWFwQmZSYW5nZShlLHQsbil7aWYodC1lPmxhKXRocm93IG5ldyBFcnJvcigibWFwQmZSYW5nZSAtIGlnbm9yaW5nIGRhdGEgYWJvdmUgTUFYX01BUF9SQU5HRS4iKTtjb25zdCBhPW4ubGVuZ3RoLTE7Zm9yKDtlPD10Oyl7dGhpcy5fbWFwW2UrK109bjtjb25zdCB0PW4uY2hhckNvZGVBdChhKSsxO3Q+MjU1P249bi5zdWJzdHJpbmcoMCxhLTEpK1N0cmluZy5mcm9tQ2hhckNvZGUobi5jaGFyQ29kZUF0KGEtMSkrMSkrIlwwIjpuPW4uc3Vic3RyaW5nKDAsYSkrU3RyaW5nLmZyb21DaGFyQ29kZSh0KX19bWFwQmZSYW5nZVRvQXJyYXkoZSx0LG4pe2lmKHQtZT5sYSl0aHJvdyBuZXcgRXJyb3IoIm1hcEJmUmFuZ2VUb0FycmF5IC0gaWdub3JpbmcgZGF0YSBhYm92ZSBNQVhfTUFQX1JBTkdFLiIpO2NvbnN0IGE9bi5sZW5ndGg7bGV0IHM9MDtmb3IoO2U8PXQmJnM8YTspe3RoaXMuX21hcFtlXT1uW3MrK107KytlfX1tYXBPbmUoZSx0KXt0aGlzLl9tYXBbZV09dH1sb29rdXAoZSl7cmV0dXJuIHRoaXMuX21hcFtlXX1jb250YWlucyhlKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fbWFwW2VdfWZvckVhY2goZSl7Y29uc3QgdD10aGlzLl9tYXAsbj10Lmxlbmd0aDtpZihuPD02NTUzNilmb3IobGV0IGE9MDthPG47YSsrKXZvaWQgMCE9PXRbYV0mJmUoYSx0W2FdKTtlbHNlIGZvcihjb25zdCBuIGluIHQpZShuLHRbbl0pfWNoYXJDb2RlT2YoZSl7Y29uc3QgdD10aGlzLl9tYXA7aWYodC5sZW5ndGg8PTY1NTM2KXJldHVybiB0LmluZGV4T2YoZSk7Zm9yKGNvbnN0IG4gaW4gdClpZih0W25dPT09ZSlyZXR1cm4gMHxuO3JldHVybi0xfWdldE1hcCgpe3JldHVybiB0aGlzLl9tYXB9cmVhZENoYXJDb2RlKGUsdCxuKXtsZXQgYT0wO2NvbnN0IHM9dGhpcy5jb2Rlc3BhY2VSYW5nZXM7Zm9yKGxldCByPTAsaT1zLmxlbmd0aDtyPGk7cisrKXthPShhPDw4fGUuY2hhckNvZGVBdCh0K3IpKT4+PjA7Y29uc3QgaT1zW3JdO2ZvcihsZXQgZT0wLHQ9aS5sZW5ndGg7ZTx0Oyl7Y29uc3QgdD1pW2UrK10scz1pW2UrK107aWYoYT49dCYmYTw9cyl7bi5jaGFyY29kZT1hO24ubGVuZ3RoPXIrMTtyZXR1cm59fX1uLmNoYXJjb2RlPTA7bi5sZW5ndGg9MX1nZXRDaGFyQ29kZUxlbmd0aChlKXtjb25zdCB0PXRoaXMuY29kZXNwYWNlUmFuZ2VzO2ZvcihsZXQgbj0wLGE9dC5sZW5ndGg7bjxhO24rKyl7Y29uc3QgYT10W25dO2ZvcihsZXQgdD0wLHM9YS5sZW5ndGg7dDxzOyl7Y29uc3Qgcz1hW3QrK10scj1hW3QrK107aWYoZT49cyYmZTw9cilyZXR1cm4gbisxfX1yZXR1cm4gMX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX21hcC5sZW5ndGh9Z2V0IGlzSWRlbnRpdHlDTWFwKCl7aWYoIklkZW50aXR5LUgiIT09dGhpcy5uYW1lJiYiSWRlbnRpdHktViIhPT10aGlzLm5hbWUpcmV0dXJuITE7aWYoNjU1MzYhPT10aGlzLl9tYXAubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgZT0wO2U8NjU1MzY7ZSsrKWlmKHRoaXMuX21hcFtlXSE9PWUpcmV0dXJuITE7cmV0dXJuITB9fWNsYXNzIElkZW50aXR5Q01hcCBleHRlbmRzIENNYXB7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpO3RoaXMudmVydGljYWw9ZTt0aGlzLmFkZENvZGVzcGFjZVJhbmdlKHQsMCw2NTUzNSl9bWFwQ2lkUmFuZ2UoZSx0LG4pe3VucmVhY2hhYmxlKCJzaG91bGQgbm90IGNhbGwgbWFwQ2lkUmFuZ2UiKX1tYXBCZlJhbmdlKGUsdCxuKXt1bnJlYWNoYWJsZSgic2hvdWxkIG5vdCBjYWxsIG1hcEJmUmFuZ2UiKX1tYXBCZlJhbmdlVG9BcnJheShlLHQsbil7dW5yZWFjaGFibGUoInNob3VsZCBub3QgY2FsbCBtYXBCZlJhbmdlVG9BcnJheSIpfW1hcE9uZShlLHQpe3VucmVhY2hhYmxlKCJzaG91bGQgbm90IGNhbGwgbWFwQ2lkT25lIil9bG9va3VwKGUpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPD02NTUzNT9lOnZvaWQgMH1jb250YWlucyhlKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihlKSYmZTw9NjU1MzV9Zm9yRWFjaChlKXtmb3IobGV0IHQ9MDt0PD02NTUzNTt0KyspZSh0LHQpfWNoYXJDb2RlT2YoZSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZSkmJmU8PTY1NTM1P2U6LTF9Z2V0TWFwKCl7Y29uc3QgZT1uZXcgQXJyYXkoNjU1MzYpO2ZvcihsZXQgdD0wO3Q8PTY1NTM1O3QrKyllW3RdPXQ7cmV0dXJuIGV9Z2V0IGxlbmd0aCgpe3JldHVybiA2NTUzNn1nZXQgaXNJZGVudGl0eUNNYXAoKXt1bnJlYWNoYWJsZSgic2hvdWxkIG5vdCBhY2Nlc3MgLmlzSWRlbnRpdHlDTWFwIil9fWZ1bmN0aW9uIHN0clRvSW50KGUpe2xldCB0PTA7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdD10PDw4fGUuY2hhckNvZGVBdChuKTtyZXR1cm4gdD4+PjB9ZnVuY3Rpb24gZXhwZWN0U3RyaW5nKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk1hbGZvcm1lZCBDTWFwOiBleHBlY3RlZCBzdHJpbmcuIil9ZnVuY3Rpb24gZXhwZWN0SW50KGUpe2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTWFsZm9ybWVkIENNYXA6IGV4cGVjdGVkIGludC4iKX1mdW5jdGlvbiBwYXJzZUJmQ2hhcihlLHQpe2Zvcig7Oyl7bGV0IG49dC5nZXRPYmooKTtpZihuPT09b24pYnJlYWs7aWYoaXNDbWQobiwiZW5kYmZjaGFyIikpcmV0dXJuO2V4cGVjdFN0cmluZyhuKTtjb25zdCBhPXN0clRvSW50KG4pO249dC5nZXRPYmooKTtleHBlY3RTdHJpbmcobik7Y29uc3Qgcz1uO2UubWFwT25lKGEscyl9fWZ1bmN0aW9uIHBhcnNlQmZSYW5nZShlLHQpe2Zvcig7Oyl7bGV0IG49dC5nZXRPYmooKTtpZihuPT09b24pYnJlYWs7aWYoaXNDbWQobiwiZW5kYmZyYW5nZSIpKXJldHVybjtleHBlY3RTdHJpbmcobik7Y29uc3QgYT1zdHJUb0ludChuKTtuPXQuZ2V0T2JqKCk7ZXhwZWN0U3RyaW5nKG4pO2NvbnN0IHM9c3RyVG9JbnQobik7bj10LmdldE9iaigpO2lmKE51bWJlci5pc0ludGVnZXIobil8fCJzdHJpbmciPT10eXBlb2Ygbil7Y29uc3QgdD1OdW1iZXIuaXNJbnRlZ2VyKG4pP1N0cmluZy5mcm9tQ2hhckNvZGUobik6bjtlLm1hcEJmUmFuZ2UoYSxzLHQpfWVsc2V7aWYoIWlzQ21kKG4sIlsiKSlicmVhazt7bj10LmdldE9iaigpO2NvbnN0IHI9W107Zm9yKDshaXNDbWQobiwiXSIpJiZuIT09b247KXtyLnB1c2gobik7bj10LmdldE9iaigpfWUubWFwQmZSYW5nZVRvQXJyYXkoYSxzLHIpfX19dGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGJmIHJhbmdlLiIpfWZ1bmN0aW9uIHBhcnNlQ2lkQ2hhcihlLHQpe2Zvcig7Oyl7bGV0IG49dC5nZXRPYmooKTtpZihuPT09b24pYnJlYWs7aWYoaXNDbWQobiwiZW5kY2lkY2hhciIpKXJldHVybjtleHBlY3RTdHJpbmcobik7Y29uc3QgYT1zdHJUb0ludChuKTtuPXQuZ2V0T2JqKCk7ZXhwZWN0SW50KG4pO2NvbnN0IHM9bjtlLm1hcE9uZShhLHMpfX1mdW5jdGlvbiBwYXJzZUNpZFJhbmdlKGUsdCl7Zm9yKDs7KXtsZXQgbj10LmdldE9iaigpO2lmKG49PT1vbilicmVhaztpZihpc0NtZChuLCJlbmRjaWRyYW5nZSIpKXJldHVybjtleHBlY3RTdHJpbmcobik7Y29uc3QgYT1zdHJUb0ludChuKTtuPXQuZ2V0T2JqKCk7ZXhwZWN0U3RyaW5nKG4pO2NvbnN0IHM9c3RyVG9JbnQobik7bj10LmdldE9iaigpO2V4cGVjdEludChuKTtjb25zdCByPW47ZS5tYXBDaWRSYW5nZShhLHMscil9fWZ1bmN0aW9uIHBhcnNlQ29kZXNwYWNlUmFuZ2UoZSx0KXtmb3IoOzspe2xldCBuPXQuZ2V0T2JqKCk7aWYobj09PW9uKWJyZWFrO2lmKGlzQ21kKG4sImVuZGNvZGVzcGFjZXJhbmdlIikpcmV0dXJuO2lmKCJzdHJpbmciIT10eXBlb2YgbilicmVhaztjb25zdCBhPXN0clRvSW50KG4pO249dC5nZXRPYmooKTtpZigic3RyaW5nIiE9dHlwZW9mIG4pYnJlYWs7Y29uc3Qgcz1zdHJUb0ludChuKTtlLmFkZENvZGVzcGFjZVJhbmdlKG4ubGVuZ3RoLGEscyl9dGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGNvZGVzcGFjZSByYW5nZS4iKX1mdW5jdGlvbiBwYXJzZVdNb2RlKGUsdCl7Y29uc3Qgbj10LmdldE9iaigpO051bWJlci5pc0ludGVnZXIobikmJihlLnZlcnRpY2FsPSEhbil9ZnVuY3Rpb24gcGFyc2VDTWFwTmFtZShlLHQpe2NvbnN0IG49dC5nZXRPYmooKTtuIGluc3RhbmNlb2YgTmFtZSYmKGUubmFtZT1uLm5hbWUpfWFzeW5jIGZ1bmN0aW9uIHBhcnNlQ01hcChlLHQsbixhKXtsZXQgcyxyO2U6Zm9yKDs7KXRyeXtjb25zdCBuPXQuZ2V0T2JqKCk7aWYobj09PW9uKWJyZWFrO2lmKG4gaW5zdGFuY2VvZiBOYW1lKXsiV01vZGUiPT09bi5uYW1lP3BhcnNlV01vZGUoZSx0KToiQ01hcE5hbWUiPT09bi5uYW1lJiZwYXJzZUNNYXBOYW1lKGUsdCk7cz1ufWVsc2UgaWYobiBpbnN0YW5jZW9mIENtZClzd2l0Y2gobi5jbWQpe2Nhc2UiZW5kY21hcCI6YnJlYWsgZTtjYXNlInVzZWNtYXAiOnMgaW5zdGFuY2VvZiBOYW1lJiYocj1zLm5hbWUpO2JyZWFrO2Nhc2UiYmVnaW5jb2Rlc3BhY2VyYW5nZSI6cGFyc2VDb2Rlc3BhY2VSYW5nZShlLHQpO2JyZWFrO2Nhc2UiYmVnaW5iZmNoYXIiOnBhcnNlQmZDaGFyKGUsdCk7YnJlYWs7Y2FzZSJiZWdpbmNpZGNoYXIiOnBhcnNlQ2lkQ2hhcihlLHQpO2JyZWFrO2Nhc2UiYmVnaW5iZnJhbmdlIjpwYXJzZUJmUmFuZ2UoZSx0KTticmVhaztjYXNlImJlZ2luY2lkcmFuZ2UiOnBhcnNlQ2lkUmFuZ2UoZSx0KX19Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybigiSW52YWxpZCBjTWFwIGRhdGE6ICIrZSk7Y29udGludWV9IWEmJnImJihhPXIpO3JldHVybiBhP2V4dGVuZENNYXAoZSxuLGEpOmV9YXN5bmMgZnVuY3Rpb24gZXh0ZW5kQ01hcChlLHQsbil7ZS51c2VDTWFwPWF3YWl0IGNyZWF0ZUJ1aWx0SW5DTWFwKG4sdCk7aWYoMD09PWUubnVtQ29kZXNwYWNlUmFuZ2VzKXtjb25zdCB0PWUudXNlQ01hcC5jb2Rlc3BhY2VSYW5nZXM7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspZS5jb2Rlc3BhY2VSYW5nZXNbbl09dFtuXS5zbGljZSgpO2UubnVtQ29kZXNwYWNlUmFuZ2VzPWUudXNlQ01hcC5udW1Db2Rlc3BhY2VSYW5nZXN9ZS51c2VDTWFwLmZvckVhY2goZnVuY3Rpb24odCxuKXtlLmNvbnRhaW5zKHQpfHxlLm1hcE9uZSh0LG4pfSk7cmV0dXJuIGV9YXN5bmMgZnVuY3Rpb24gY3JlYXRlQnVpbHRJbkNNYXAoZSx0KXtpZigiSWRlbnRpdHktSCI9PT1lKXJldHVybiBuZXcgSWRlbnRpdHlDTWFwKCExLDIpO2lmKCJJZGVudGl0eS1WIj09PWUpcmV0dXJuIG5ldyBJZGVudGl0eUNNYXAoITAsMik7aWYoIW9hLmluY2x1ZGVzKGUpKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBDTWFwIG5hbWU6ICIrZSk7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJCdWlsdC1pbiBDTWFwIHBhcmFtZXRlcnMgYXJlIG5vdCBwcm92aWRlZC4iKTtjb25zdHtjTWFwRGF0YTpuLGlzQ29tcHJlc3NlZDphfT1hd2FpdCB0KGUpLHM9bmV3IENNYXAoITApO2lmKGEpcmV0dXJuKG5ldyBCaW5hcnlDTWFwUmVhZGVyKS5wcm9jZXNzKG4scyxlPT5leHRlbmRDTWFwKHMsdCxlKSk7Y29uc3Qgcj1uZXcgTGV4ZXIobmV3IFN0cmVhbShuKSk7cmV0dXJuIHBhcnNlQ01hcChzLHIsdCxudWxsKX1jbGFzcyBDTWFwRmFjdG9yeXtzdGF0aWMgYXN5bmMgY3JlYXRlKHtlbmNvZGluZzplLGZldGNoQnVpbHRJbkNNYXA6dCx1c2VDTWFwOm59KXtpZihlIGluc3RhbmNlb2YgTmFtZSlyZXR1cm4gY3JlYXRlQnVpbHRJbkNNYXAoZS5uYW1lLHQpO2lmKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKXtpZihlLmlzQXN5bmMpe2NvbnN0IHQ9YXdhaXQgZS5hc3luY0dldEJ5dGVzKCk7dCYmKGU9bmV3IFN0cmVhbSh0LDAsdC5sZW5ndGgsZS5kaWN0KSl9Y29uc3QgYT1hd2FpdCBwYXJzZUNNYXAobmV3IENNYXAsbmV3IExleGVyKGUpLHQsbik7cmV0dXJuIGEuaXNJZGVudGl0eUNNYXA/Y3JlYXRlQnVpbHRJbkNNYXAoYS5uYW1lLHQpOmF9dGhyb3cgbmV3IEVycm9yKCJFbmNvZGluZyByZXF1aXJlZC4iKX19Y29uc3QgZmE9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbXNtYWxsIiwiSHVuZ2FydW1sYXV0c21hbGwiLCIiLCJkb2xsYXJvbGRzdHlsZSIsImRvbGxhcnN1cGVyaW9yIiwiYW1wZXJzYW5kc21hbGwiLCJBY3V0ZXNtYWxsIiwicGFyZW5sZWZ0c3VwZXJpb3IiLCJwYXJlbnJpZ2h0c3VwZXJpb3IiLCJ0d29kb3RlbmxlYWRlciIsIm9uZWRvdGVubGVhZGVyIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJmcmFjdGlvbiIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbG9uIiwic2VtaWNvbG9uIiwiY29tbWFzdXBlcmlvciIsInRocmVlcXVhcnRlcnNlbWRhc2giLCJwZXJpb2RzdXBlcmlvciIsInF1ZXN0aW9uc21hbGwiLCIiLCJhc3VwZXJpb3IiLCJic3VwZXJpb3IiLCJjZW50c3VwZXJpb3IiLCJkc3VwZXJpb3IiLCJlc3VwZXJpb3IiLCIiLCIiLCIiLCJpc3VwZXJpb3IiLCIiLCIiLCJsc3VwZXJpb3IiLCJtc3VwZXJpb3IiLCJuc3VwZXJpb3IiLCJvc3VwZXJpb3IiLCIiLCIiLCJyc3VwZXJpb3IiLCJzc3VwZXJpb3IiLCJ0c3VwZXJpb3IiLCIiLCJmZiIsImZpIiwiZmwiLCJmZmkiLCJmZmwiLCJwYXJlbmxlZnRpbmZlcmlvciIsIiIsInBhcmVucmlnaHRpbmZlcmlvciIsIkNpcmN1bWZsZXhzbWFsbCIsImh5cGhlbnN1cGVyaW9yIiwiR3JhdmVzbWFsbCIsIkFzbWFsbCIsIkJzbWFsbCIsIkNzbWFsbCIsIkRzbWFsbCIsIkVzbWFsbCIsIkZzbWFsbCIsIkdzbWFsbCIsIkhzbWFsbCIsIklzbWFsbCIsIkpzbWFsbCIsIktzbWFsbCIsIkxzbWFsbCIsIk1zbWFsbCIsIk5zbWFsbCIsIk9zbWFsbCIsIlBzbWFsbCIsIlFzbWFsbCIsIlJzbWFsbCIsIlNzbWFsbCIsIlRzbWFsbCIsIlVzbWFsbCIsIlZzbWFsbCIsIldzbWFsbCIsIlhzbWFsbCIsIllzbWFsbCIsIlpzbWFsbCIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJUaWxkZXNtYWxsIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiZXhjbGFtZG93bnNtYWxsIiwiY2VudG9sZHN0eWxlIiwiTHNsYXNoc21hbGwiLCIiLCIiLCJTY2Fyb25zbWFsbCIsIlpjYXJvbnNtYWxsIiwiRGllcmVzaXNzbWFsbCIsIkJyZXZlc21hbGwiLCJDYXJvbnNtYWxsIiwiIiwiRG90YWNjZW50c21hbGwiLCIiLCIiLCJNYWNyb25zbWFsbCIsIiIsIiIsImZpZ3VyZWRhc2giLCJoeXBoZW5pbmZlcmlvciIsIiIsIiIsIk9nb25la3NtYWxsIiwiUmluZ3NtYWxsIiwiQ2VkaWxsYXNtYWxsIiwiIiwiIiwiIiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiIiwiIiwiemVyb3N1cGVyaW9yIiwib25lc3VwZXJpb3IiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJmb3Vyc3VwZXJpb3IiLCJmaXZlc3VwZXJpb3IiLCJzaXhzdXBlcmlvciIsInNldmVuc3VwZXJpb3IiLCJlaWdodHN1cGVyaW9yIiwibmluZXN1cGVyaW9yIiwiemVyb2luZmVyaW9yIiwib25laW5mZXJpb3IiLCJ0d29pbmZlcmlvciIsInRocmVlaW5mZXJpb3IiLCJmb3VyaW5mZXJpb3IiLCJmaXZlaW5mZXJpb3IiLCJzaXhpbmZlcmlvciIsInNldmVuaW5mZXJpb3IiLCJlaWdodGluZmVyaW9yIiwibmluZWluZmVyaW9yIiwiY2VudGluZmVyaW9yIiwiZG9sbGFyaW5mZXJpb3IiLCJwZXJpb2RpbmZlcmlvciIsImNvbW1haW5mZXJpb3IiLCJBZ3JhdmVzbWFsbCIsIkFhY3V0ZXNtYWxsIiwiQWNpcmN1bWZsZXhzbWFsbCIsIkF0aWxkZXNtYWxsIiwiQWRpZXJlc2lzc21hbGwiLCJBcmluZ3NtYWxsIiwiQUVzbWFsbCIsIkNjZWRpbGxhc21hbGwiLCJFZ3JhdmVzbWFsbCIsIkVhY3V0ZXNtYWxsIiwiRWNpcmN1bWZsZXhzbWFsbCIsIkVkaWVyZXNpc3NtYWxsIiwiSWdyYXZlc21hbGwiLCJJYWN1dGVzbWFsbCIsIkljaXJjdW1mbGV4c21hbGwiLCJJZGllcmVzaXNzbWFsbCIsIkV0aHNtYWxsIiwiTnRpbGRlc21hbGwiLCJPZ3JhdmVzbWFsbCIsIk9hY3V0ZXNtYWxsIiwiT2NpcmN1bWZsZXhzbWFsbCIsIk90aWxkZXNtYWxsIiwiT2RpZXJlc2lzc21hbGwiLCJPRXNtYWxsIiwiT3NsYXNoc21hbGwiLCJVZ3JhdmVzbWFsbCIsIlVhY3V0ZXNtYWxsIiwiVWNpcmN1bWZsZXhzbWFsbCIsIlVkaWVyZXNpc3NtYWxsIiwiWWFjdXRlc21hbGwiLCJUaG9ybnNtYWxsIiwiWWRpZXJlc2lzc21hbGwiXSxjYT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtc21hbGwiLCJIdW5nYXJ1bWxhdXRzbWFsbCIsImNlbnRvbGRzdHlsZSIsImRvbGxhcm9sZHN0eWxlIiwiZG9sbGFyc3VwZXJpb3IiLCJhbXBlcnNhbmRzbWFsbCIsIkFjdXRlc21hbGwiLCJwYXJlbmxlZnRzdXBlcmlvciIsInBhcmVucmlnaHRzdXBlcmlvciIsInR3b2RvdGVubGVhZGVyIiwib25lZG90ZW5sZWFkZXIiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsImZyYWN0aW9uIiwiemVyb29sZHN0eWxlIiwib25lb2xkc3R5bGUiLCJ0d29vbGRzdHlsZSIsInRocmVlb2xkc3R5bGUiLCJmb3Vyb2xkc3R5bGUiLCJmaXZlb2xkc3R5bGUiLCJzaXhvbGRzdHlsZSIsInNldmVub2xkc3R5bGUiLCJlaWdodG9sZHN0eWxlIiwibmluZW9sZHN0eWxlIiwiY29sb24iLCJzZW1pY29sb24iLCIiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwiIiwicXVlc3Rpb25zbWFsbCIsIiIsIiIsIiIsIiIsIkV0aHNtYWxsIiwiIiwiIiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsIiIsIiIsIiIsIiIsIiIsIiIsImZmIiwiZmkiLCJmbCIsImZmaSIsImZmbCIsInBhcmVubGVmdGluZmVyaW9yIiwiIiwicGFyZW5yaWdodGluZmVyaW9yIiwiQ2lyY3VtZmxleHNtYWxsIiwiaHlwaGVuaW5mZXJpb3IiLCJHcmF2ZXNtYWxsIiwiQXNtYWxsIiwiQnNtYWxsIiwiQ3NtYWxsIiwiRHNtYWxsIiwiRXNtYWxsIiwiRnNtYWxsIiwiR3NtYWxsIiwiSHNtYWxsIiwiSXNtYWxsIiwiSnNtYWxsIiwiS3NtYWxsIiwiTHNtYWxsIiwiTXNtYWxsIiwiTnNtYWxsIiwiT3NtYWxsIiwiUHNtYWxsIiwiUXNtYWxsIiwiUnNtYWxsIiwiU3NtYWxsIiwiVHNtYWxsIiwiVXNtYWxsIiwiVnNtYWxsIiwiV3NtYWxsIiwiWHNtYWxsIiwiWXNtYWxsIiwiWnNtYWxsIiwiY29sb25tb25ldGFyeSIsIm9uZWZpdHRlZCIsInJ1cGlhaCIsIlRpbGRlc21hbGwiLCIiLCIiLCJhc3VwZXJpb3IiLCJjZW50c3VwZXJpb3IiLCIiLCIiLCIiLCIiLCJBYWN1dGVzbWFsbCIsIkFncmF2ZXNtYWxsIiwiQWNpcmN1bWZsZXhzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXRpbGRlc21hbGwiLCJBcmluZ3NtYWxsIiwiQ2NlZGlsbGFzbWFsbCIsIkVhY3V0ZXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFY2lyY3VtZmxleHNtYWxsIiwiRWRpZXJlc2lzc21hbGwiLCJJYWN1dGVzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWNpcmN1bWZsZXhzbWFsbCIsIklkaWVyZXNpc3NtYWxsIiwiTnRpbGRlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9ncmF2ZXNtYWxsIiwiT2NpcmN1bWZsZXhzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT3RpbGRlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVncmF2ZXNtYWxsIiwiVWNpcmN1bWZsZXhzbWFsbCIsIlVkaWVyZXNpc3NtYWxsIiwiIiwiZWlnaHRzdXBlcmlvciIsImZvdXJpbmZlcmlvciIsInRocmVlaW5mZXJpb3IiLCJzaXhpbmZlcmlvciIsImVpZ2h0aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiU2Nhcm9uc21hbGwiLCIiLCJjZW50aW5mZXJpb3IiLCJ0d29pbmZlcmlvciIsIiIsIkRpZXJlc2lzc21hbGwiLCIiLCJDYXJvbnNtYWxsIiwib3N1cGVyaW9yIiwiZml2ZWluZmVyaW9yIiwiIiwiY29tbWFpbmZlcmlvciIsInBlcmlvZGluZmVyaW9yIiwiWWFjdXRlc21hbGwiLCIiLCJkb2xsYXJpbmZlcmlvciIsIiIsIiIsIlRob3Juc21hbGwiLCIiLCJuaW5laW5mZXJpb3IiLCJ6ZXJvaW5mZXJpb3IiLCJaY2Fyb25zbWFsbCIsIkFFc21hbGwiLCJPc2xhc2hzbWFsbCIsInF1ZXN0aW9uZG93bnNtYWxsIiwib25laW5mZXJpb3IiLCJMc2xhc2hzbWFsbCIsIiIsIiIsIiIsIiIsIiIsIiIsIkNlZGlsbGFzbWFsbCIsIiIsIiIsIiIsIiIsIiIsIk9Fc21hbGwiLCJmaWd1cmVkYXNoIiwiaHlwaGVuc3VwZXJpb3IiLCIiLCIiLCIiLCIiLCJleGNsYW1kb3duc21hbGwiLCIiLCJZZGllcmVzaXNzbWFsbCIsIiIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwibmluZXN1cGVyaW9yIiwiemVyb3N1cGVyaW9yIiwiIiwiZXN1cGVyaW9yIiwicnN1cGVyaW9yIiwidHN1cGVyaW9yIiwiIiwiIiwiaXN1cGVyaW9yIiwic3N1cGVyaW9yIiwiZHN1cGVyaW9yIiwiIiwiIiwiIiwiIiwiIiwibHN1cGVyaW9yIiwiT2dvbmVrc21hbGwiLCJCcmV2ZXNtYWxsIiwiTWFjcm9uc21hbGwiLCJic3VwZXJpb3IiLCJuc3VwZXJpb3IiLCJtc3VwZXJpb3IiLCJjb21tYXN1cGVyaW9yIiwicGVyaW9kc3VwZXJpb3IiLCJEb3RhY2NlbnRzbWFsbCIsIlJpbmdzbWFsbCIsIiIsIiIsIiIsIiJdLGhhPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVzaW5nbGUiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsImdyYXZlIiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsIiIsIkFkaWVyZXNpcyIsIkFyaW5nIiwiQ2NlZGlsbGEiLCJFYWN1dGUiLCJOdGlsZGUiLCJPZGllcmVzaXMiLCJVZGllcmVzaXMiLCJhYWN1dGUiLCJhZ3JhdmUiLCJhY2lyY3VtZmxleCIsImFkaWVyZXNpcyIsImF0aWxkZSIsImFyaW5nIiwiY2NlZGlsbGEiLCJlYWN1dGUiLCJlZ3JhdmUiLCJlY2lyY3VtZmxleCIsImVkaWVyZXNpcyIsImlhY3V0ZSIsImlncmF2ZSIsImljaXJjdW1mbGV4IiwiaWRpZXJlc2lzIiwibnRpbGRlIiwib2FjdXRlIiwib2dyYXZlIiwib2NpcmN1bWZsZXgiLCJvZGllcmVzaXMiLCJvdGlsZGUiLCJ1YWN1dGUiLCJ1Z3JhdmUiLCJ1Y2lyY3VtZmxleCIsInVkaWVyZXNpcyIsImRhZ2dlciIsImRlZ3JlZSIsImNlbnQiLCJzdGVybGluZyIsInNlY3Rpb24iLCJidWxsZXQiLCJwYXJhZ3JhcGgiLCJnZXJtYW5kYmxzIiwicmVnaXN0ZXJlZCIsImNvcHlyaWdodCIsInRyYWRlbWFyayIsImFjdXRlIiwiZGllcmVzaXMiLCJub3RlcXVhbCIsIkFFIiwiT3NsYXNoIiwiaW5maW5pdHkiLCJwbHVzbWludXMiLCJsZXNzZXF1YWwiLCJncmVhdGVyZXF1YWwiLCJ5ZW4iLCJtdSIsInBhcnRpYWxkaWZmIiwic3VtbWF0aW9uIiwicHJvZHVjdCIsInBpIiwiaW50ZWdyYWwiLCJvcmRmZW1pbmluZSIsIm9yZG1hc2N1bGluZSIsIk9tZWdhIiwiYWUiLCJvc2xhc2giLCJxdWVzdGlvbmRvd24iLCJleGNsYW1kb3duIiwibG9naWNhbG5vdCIsInJhZGljYWwiLCJmbG9yaW4iLCJhcHByb3hlcXVhbCIsIkRlbHRhIiwiZ3VpbGxlbW90bGVmdCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJzcGFjZSIsIkFncmF2ZSIsIkF0aWxkZSIsIk90aWxkZSIsIk9FIiwib2UiLCJlbmRhc2giLCJlbWRhc2giLCJxdW90ZWRibGxlZnQiLCJxdW90ZWRibHJpZ2h0IiwicXVvdGVsZWZ0IiwicXVvdGVyaWdodCIsImRpdmlkZSIsImxvemVuZ2UiLCJ5ZGllcmVzaXMiLCJZZGllcmVzaXMiLCJmcmFjdGlvbiIsImN1cnJlbmN5IiwiZ3VpbHNpbmdsbGVmdCIsImd1aWxzaW5nbHJpZ2h0IiwiZmkiLCJmbCIsImRhZ2dlcmRibCIsInBlcmlvZGNlbnRlcmVkIiwicXVvdGVzaW5nbGJhc2UiLCJxdW90ZWRibGJhc2UiLCJwZXJ0aG91c2FuZCIsIkFjaXJjdW1mbGV4IiwiRWNpcmN1bWZsZXgiLCJBYWN1dGUiLCJFZGllcmVzaXMiLCJFZ3JhdmUiLCJJYWN1dGUiLCJJY2lyY3VtZmxleCIsIklkaWVyZXNpcyIsIklncmF2ZSIsIk9hY3V0ZSIsIk9jaXJjdW1mbGV4IiwiYXBwbGUiLCJPZ3JhdmUiLCJVYWN1dGUiLCJVY2lyY3VtZmxleCIsIlVncmF2ZSIsImRvdGxlc3NpIiwiY2lyY3VtZmxleCIsInRpbGRlIiwibWFjcm9uIiwiYnJldmUiLCJkb3RhY2NlbnQiLCJyaW5nIiwiY2VkaWxsYSIsImh1bmdhcnVtbGF1dCIsIm9nb25layIsImNhcm9uIl0sdWE9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbSIsInF1b3RlZGJsIiwibnVtYmVyc2lnbiIsImRvbGxhciIsInBlcmNlbnQiLCJhbXBlcnNhbmQiLCJxdW90ZXJpZ2h0IiwicGFyZW5sZWZ0IiwicGFyZW5yaWdodCIsImFzdGVyaXNrIiwicGx1cyIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwic2xhc2giLCJ6ZXJvIiwib25lIiwidHdvIiwidGhyZWUiLCJmb3VyIiwiZml2ZSIsInNpeCIsInNldmVuIiwiZWlnaHQiLCJuaW5lIiwiY29sb24iLCJzZW1pY29sb24iLCJsZXNzIiwiZXF1YWwiLCJncmVhdGVyIiwicXVlc3Rpb24iLCJhdCIsIkEiLCJCIiwiQyIsIkQiLCJFIiwiRiIsIkciLCJIIiwiSSIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiTyIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJXIiwiWCIsIlkiLCJaIiwiYnJhY2tldGxlZnQiLCJiYWNrc2xhc2giLCJicmFja2V0cmlnaHQiLCJhc2NpaWNpcmN1bSIsInVuZGVyc2NvcmUiLCJxdW90ZWxlZnQiLCJhIiwiYiIsImMiLCJkIiwiZSIsImYiLCJnIiwiaCIsImkiLCJqIiwiayIsImwiLCJtIiwibiIsIm8iLCJwIiwicSIsInIiLCJzIiwidCIsInUiLCJ2IiwidyIsIngiLCJ5IiwieiIsImJyYWNlbGVmdCIsImJhciIsImJyYWNlcmlnaHQiLCJhc2NpaXRpbGRlIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiZXhjbGFtZG93biIsImNlbnQiLCJzdGVybGluZyIsImZyYWN0aW9uIiwieWVuIiwiZmxvcmluIiwic2VjdGlvbiIsImN1cnJlbmN5IiwicXVvdGVzaW5nbGUiLCJxdW90ZWRibGxlZnQiLCJndWlsbGVtb3RsZWZ0IiwiZ3VpbHNpbmdsbGVmdCIsImd1aWxzaW5nbHJpZ2h0IiwiZmkiLCJmbCIsIiIsImVuZGFzaCIsImRhZ2dlciIsImRhZ2dlcmRibCIsInBlcmlvZGNlbnRlcmVkIiwiIiwicGFyYWdyYXBoIiwiYnVsbGV0IiwicXVvdGVzaW5nbGJhc2UiLCJxdW90ZWRibGJhc2UiLCJxdW90ZWRibHJpZ2h0IiwiZ3VpbGxlbW90cmlnaHQiLCJlbGxpcHNpcyIsInBlcnRob3VzYW5kIiwiIiwicXVlc3Rpb25kb3duIiwiIiwiZ3JhdmUiLCJhY3V0ZSIsImNpcmN1bWZsZXgiLCJ0aWxkZSIsIm1hY3JvbiIsImJyZXZlIiwiZG90YWNjZW50IiwiZGllcmVzaXMiLCIiLCJyaW5nIiwiY2VkaWxsYSIsIiIsImh1bmdhcnVtbGF1dCIsIm9nb25layIsImNhcm9uIiwiZW1kYXNoIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiQUUiLCIiLCJvcmRmZW1pbmluZSIsIiIsIiIsIiIsIiIsIkxzbGFzaCIsIk9zbGFzaCIsIk9FIiwib3JkbWFzY3VsaW5lIiwiIiwiIiwiIiwiIiwiIiwiYWUiLCIiLCIiLCIiLCJkb3RsZXNzaSIsIiIsIiIsImxzbGFzaCIsIm9zbGFzaCIsIm9lIiwiZ2VybWFuZGJscyIsIiIsIiIsIiIsIiJdLG1hPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVzaW5nbGUiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsImdyYXZlIiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsImJ1bGxldCIsIkV1cm8iLCJidWxsZXQiLCJxdW90ZXNpbmdsYmFzZSIsImZsb3JpbiIsInF1b3RlZGJsYmFzZSIsImVsbGlwc2lzIiwiZGFnZ2VyIiwiZGFnZ2VyZGJsIiwiY2lyY3VtZmxleCIsInBlcnRob3VzYW5kIiwiU2Nhcm9uIiwiZ3VpbHNpbmdsbGVmdCIsIk9FIiwiYnVsbGV0IiwiWmNhcm9uIiwiYnVsbGV0IiwiYnVsbGV0IiwicXVvdGVsZWZ0IiwicXVvdGVyaWdodCIsInF1b3RlZGJsbGVmdCIsInF1b3RlZGJscmlnaHQiLCJidWxsZXQiLCJlbmRhc2giLCJlbWRhc2giLCJ0aWxkZSIsInRyYWRlbWFyayIsInNjYXJvbiIsImd1aWxzaW5nbHJpZ2h0Iiwib2UiLCJidWxsZXQiLCJ6Y2Fyb24iLCJZZGllcmVzaXMiLCJzcGFjZSIsImV4Y2xhbWRvd24iLCJjZW50Iiwic3RlcmxpbmciLCJjdXJyZW5jeSIsInllbiIsImJyb2tlbmJhciIsInNlY3Rpb24iLCJkaWVyZXNpcyIsImNvcHlyaWdodCIsIm9yZGZlbWluaW5lIiwiZ3VpbGxlbW90bGVmdCIsImxvZ2ljYWxub3QiLCJoeXBoZW4iLCJyZWdpc3RlcmVkIiwibWFjcm9uIiwiZGVncmVlIiwicGx1c21pbnVzIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiYWN1dGUiLCJtdSIsInBhcmFncmFwaCIsInBlcmlvZGNlbnRlcmVkIiwiY2VkaWxsYSIsIm9uZXN1cGVyaW9yIiwib3JkbWFzY3VsaW5lIiwiZ3VpbGxlbW90cmlnaHQiLCJvbmVxdWFydGVyIiwib25laGFsZiIsInRocmVlcXVhcnRlcnMiLCJxdWVzdGlvbmRvd24iLCJBZ3JhdmUiLCJBYWN1dGUiLCJBY2lyY3VtZmxleCIsIkF0aWxkZSIsIkFkaWVyZXNpcyIsIkFyaW5nIiwiQUUiLCJDY2VkaWxsYSIsIkVncmF2ZSIsIkVhY3V0ZSIsIkVjaXJjdW1mbGV4IiwiRWRpZXJlc2lzIiwiSWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJFdGgiLCJOdGlsZGUiLCJPZ3JhdmUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsIk90aWxkZSIsIk9kaWVyZXNpcyIsIm11bHRpcGx5IiwiT3NsYXNoIiwiVWdyYXZlIiwiVWFjdXRlIiwiVWNpcmN1bWZsZXgiLCJVZGllcmVzaXMiLCJZYWN1dGUiLCJUaG9ybiIsImdlcm1hbmRibHMiLCJhZ3JhdmUiLCJhYWN1dGUiLCJhY2lyY3VtZmxleCIsImF0aWxkZSIsImFkaWVyZXNpcyIsImFyaW5nIiwiYWUiLCJjY2VkaWxsYSIsImVncmF2ZSIsImVhY3V0ZSIsImVjaXJjdW1mbGV4IiwiZWRpZXJlc2lzIiwiaWdyYXZlIiwiaWFjdXRlIiwiaWNpcmN1bWZsZXgiLCJpZGllcmVzaXMiLCJldGgiLCJudGlsZGUiLCJvZ3JhdmUiLCJvYWN1dGUiLCJvY2lyY3VtZmxleCIsIm90aWxkZSIsIm9kaWVyZXNpcyIsImRpdmlkZSIsIm9zbGFzaCIsInVncmF2ZSIsInVhY3V0ZSIsInVjaXJjdW1mbGV4IiwidWRpZXJlc2lzIiwieWFjdXRlIiwidGhvcm4iLCJ5ZGllcmVzaXMiXSxwYT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtIiwidW5pdmVyc2FsIiwibnVtYmVyc2lnbiIsImV4aXN0ZW50aWFsIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInN1Y2h0aGF0IiwicGFyZW5sZWZ0IiwicGFyZW5yaWdodCIsImFzdGVyaXNrbWF0aCIsInBsdXMiLCJjb21tYSIsIm1pbnVzIiwicGVyaW9kIiwic2xhc2giLCJ6ZXJvIiwib25lIiwidHdvIiwidGhyZWUiLCJmb3VyIiwiZml2ZSIsInNpeCIsInNldmVuIiwiZWlnaHQiLCJuaW5lIiwiY29sb24iLCJzZW1pY29sb24iLCJsZXNzIiwiZXF1YWwiLCJncmVhdGVyIiwicXVlc3Rpb24iLCJjb25ncnVlbnQiLCJBbHBoYSIsIkJldGEiLCJDaGkiLCJEZWx0YSIsIkVwc2lsb24iLCJQaGkiLCJHYW1tYSIsIkV0YSIsIklvdGEiLCJ0aGV0YTEiLCJLYXBwYSIsIkxhbWJkYSIsIk11IiwiTnUiLCJPbWljcm9uIiwiUGkiLCJUaGV0YSIsIlJobyIsIlNpZ21hIiwiVGF1IiwiVXBzaWxvbiIsInNpZ21hMSIsIk9tZWdhIiwiWGkiLCJQc2kiLCJaZXRhIiwiYnJhY2tldGxlZnQiLCJ0aGVyZWZvcmUiLCJicmFja2V0cmlnaHQiLCJwZXJwZW5kaWN1bGFyIiwidW5kZXJzY29yZSIsInJhZGljYWxleCIsImFscGhhIiwiYmV0YSIsImNoaSIsImRlbHRhIiwiZXBzaWxvbiIsInBoaSIsImdhbW1hIiwiZXRhIiwiaW90YSIsInBoaTEiLCJrYXBwYSIsImxhbWJkYSIsIm11IiwibnUiLCJvbWljcm9uIiwicGkiLCJ0aGV0YSIsInJobyIsInNpZ21hIiwidGF1IiwidXBzaWxvbiIsIm9tZWdhMSIsIm9tZWdhIiwieGkiLCJwc2kiLCJ6ZXRhIiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsInNpbWlsYXIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJFdXJvIiwiVXBzaWxvbjEiLCJtaW51dGUiLCJsZXNzZXF1YWwiLCJmcmFjdGlvbiIsImluZmluaXR5IiwiZmxvcmluIiwiY2x1YiIsImRpYW1vbmQiLCJoZWFydCIsInNwYWRlIiwiYXJyb3dib3RoIiwiYXJyb3dsZWZ0IiwiYXJyb3d1cCIsImFycm93cmlnaHQiLCJhcnJvd2Rvd24iLCJkZWdyZWUiLCJwbHVzbWludXMiLCJzZWNvbmQiLCJncmVhdGVyZXF1YWwiLCJtdWx0aXBseSIsInByb3BvcnRpb25hbCIsInBhcnRpYWxkaWZmIiwiYnVsbGV0IiwiZGl2aWRlIiwibm90ZXF1YWwiLCJlcXVpdmFsZW5jZSIsImFwcHJveGVxdWFsIiwiZWxsaXBzaXMiLCJhcnJvd3ZlcnRleCIsImFycm93aG9yaXpleCIsImNhcnJpYWdlcmV0dXJuIiwiYWxlcGgiLCJJZnJha3R1ciIsIlJmcmFrdHVyIiwid2VpZXJzdHJhc3MiLCJjaXJjbGVtdWx0aXBseSIsImNpcmNsZXBsdXMiLCJlbXB0eXNldCIsImludGVyc2VjdGlvbiIsInVuaW9uIiwicHJvcGVyc3VwZXJzZXQiLCJyZWZsZXhzdXBlcnNldCIsIm5vdHN1YnNldCIsInByb3BlcnN1YnNldCIsInJlZmxleHN1YnNldCIsImVsZW1lbnQiLCJub3RlbGVtZW50IiwiYW5nbGUiLCJncmFkaWVudCIsInJlZ2lzdGVyc2VyaWYiLCJjb3B5cmlnaHRzZXJpZiIsInRyYWRlbWFya3NlcmlmIiwicHJvZHVjdCIsInJhZGljYWwiLCJkb3RtYXRoIiwibG9naWNhbG5vdCIsImxvZ2ljYWxhbmQiLCJsb2dpY2Fsb3IiLCJhcnJvd2RibGJvdGgiLCJhcnJvd2RibGxlZnQiLCJhcnJvd2RibHVwIiwiYXJyb3dkYmxyaWdodCIsImFycm93ZGJsZG93biIsImxvemVuZ2UiLCJhbmdsZWxlZnQiLCJyZWdpc3RlcnNhbnMiLCJjb3B5cmlnaHRzYW5zIiwidHJhZGVtYXJrc2FucyIsInN1bW1hdGlvbiIsInBhcmVubGVmdHRwIiwicGFyZW5sZWZ0ZXgiLCJwYXJlbmxlZnRidCIsImJyYWNrZXRsZWZ0dHAiLCJicmFja2V0bGVmdGV4IiwiYnJhY2tldGxlZnRidCIsImJyYWNlbGVmdHRwIiwiYnJhY2VsZWZ0bWlkIiwiYnJhY2VsZWZ0YnQiLCJicmFjZWV4IiwiIiwiYW5nbGVyaWdodCIsImludGVncmFsIiwiaW50ZWdyYWx0cCIsImludGVncmFsZXgiLCJpbnRlZ3JhbGJ0IiwicGFyZW5yaWdodHRwIiwicGFyZW5yaWdodGV4IiwicGFyZW5yaWdodGJ0IiwiYnJhY2tldHJpZ2h0dHAiLCJicmFja2V0cmlnaHRleCIsImJyYWNrZXRyaWdodGJ0IiwiYnJhY2VyaWdodHRwIiwiYnJhY2VyaWdodG1pZCIsImJyYWNlcmlnaHRidCIsIiJdLGRhPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJhMSIsImEyIiwiYTIwMiIsImEzIiwiYTQiLCJhNSIsImExMTkiLCJhMTE4IiwiYTExNyIsImExMSIsImExMiIsImExMyIsImExNCIsImExNSIsImExNiIsImExMDUiLCJhMTciLCJhMTgiLCJhMTkiLCJhMjAiLCJhMjEiLCJhMjIiLCJhMjMiLCJhMjQiLCJhMjUiLCJhMjYiLCJhMjciLCJhMjgiLCJhNiIsImE3IiwiYTgiLCJhOSIsImExMCIsImEyOSIsImEzMCIsImEzMSIsImEzMiIsImEzMyIsImEzNCIsImEzNSIsImEzNiIsImEzNyIsImEzOCIsImEzOSIsImE0MCIsImE0MSIsImE0MiIsImE0MyIsImE0NCIsImE0NSIsImE0NiIsImE0NyIsImE0OCIsImE0OSIsImE1MCIsImE1MSIsImE1MiIsImE1MyIsImE1NCIsImE1NSIsImE1NiIsImE1NyIsImE1OCIsImE1OSIsImE2MCIsImE2MSIsImE2MiIsImE2MyIsImE2NCIsImE2NSIsImE2NiIsImE2NyIsImE2OCIsImE2OSIsImE3MCIsImE3MSIsImE3MiIsImE3MyIsImE3NCIsImEyMDMiLCJhNzUiLCJhMjA0IiwiYTc2IiwiYTc3IiwiYTc4IiwiYTc5IiwiYTgxIiwiYTgyIiwiYTgzIiwiYTg0IiwiYTk3IiwiYTk4IiwiYTk5IiwiYTEwMCIsIiIsImE4OSIsImE5MCIsImE5MyIsImE5NCIsImE5MSIsImE5MiIsImEyMDUiLCJhODUiLCJhMjA2IiwiYTg2IiwiYTg3IiwiYTg4IiwiYTk1IiwiYTk2IiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiYTEwMSIsImExMDIiLCJhMTAzIiwiYTEwNCIsImExMDYiLCJhMTA3IiwiYTEwOCIsImExMTIiLCJhMTExIiwiYTExMCIsImExMDkiLCJhMTIwIiwiYTEyMSIsImExMjIiLCJhMTIzIiwiYTEyNCIsImExMjUiLCJhMTI2IiwiYTEyNyIsImExMjgiLCJhMTI5IiwiYTEzMCIsImExMzEiLCJhMTMyIiwiYTEzMyIsImExMzQiLCJhMTM1IiwiYTEzNiIsImExMzciLCJhMTM4IiwiYTEzOSIsImExNDAiLCJhMTQxIiwiYTE0MiIsImExNDMiLCJhMTQ0IiwiYTE0NSIsImExNDYiLCJhMTQ3IiwiYTE0OCIsImExNDkiLCJhMTUwIiwiYTE1MSIsImExNTIiLCJhMTUzIiwiYTE1NCIsImExNTUiLCJhMTU2IiwiYTE1NyIsImExNTgiLCJhMTU5IiwiYTE2MCIsImExNjEiLCJhMTYzIiwiYTE2NCIsImExOTYiLCJhMTY1IiwiYTE5MiIsImExNjYiLCJhMTY3IiwiYTE2OCIsImExNjkiLCJhMTcwIiwiYTE3MSIsImExNzIiLCJhMTczIiwiYTE2MiIsImExNzQiLCJhMTc1IiwiYTE3NiIsImExNzciLCJhMTc4IiwiYTE3OSIsImExOTMiLCJhMTgwIiwiYTE5OSIsImExODEiLCJhMjAwIiwiYTE4MiIsIiIsImEyMDEiLCJhMTgzIiwiYTE4NCIsImExOTciLCJhMTg1IiwiYTE5NCIsImExOTgiLCJhMTg2IiwiYTE5NSIsImExODciLCJhMTg4IiwiYTE4OSIsImExOTAiLCJhMTkxIiwiIl07ZnVuY3Rpb24gZ2V0RW5jb2RpbmcoZSl7c3dpdGNoKGUpe2Nhc2UiV2luQW5zaUVuY29kaW5nIjpyZXR1cm4gbWE7Y2FzZSJTdGFuZGFyZEVuY29kaW5nIjpyZXR1cm4gdWE7Y2FzZSJNYWNSb21hbkVuY29kaW5nIjpyZXR1cm4gaGE7Y2FzZSJTeW1ib2xTZXRFbmNvZGluZyI6cmV0dXJuIHBhO2Nhc2UiWmFwZkRpbmdiYXRzRW5jb2RpbmciOnJldHVybiBkYTtjYXNlIkV4cGVydEVuY29kaW5nIjpyZXR1cm4gZmE7Y2FzZSJNYWNFeHBlcnRFbmNvZGluZyI6cmV0dXJuIGNhO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWNvbnN0IGdhPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlLkE9NjU7ZS5BRT0xOTg7ZS5BRWFjdXRlPTUwODtlLkFFbWFjcm9uPTQ4MjtlLkFFc21hbGw9NjM0NjI7ZS5BYWN1dGU9MTkzO2UuQWFjdXRlc21hbGw9NjM0NTc7ZS5BYnJldmU9MjU4O2UuQWJyZXZlYWN1dGU9Nzg1NDtlLkFicmV2ZWN5cmlsbGljPTEyMzI7ZS5BYnJldmVkb3RiZWxvdz03ODYyO2UuQWJyZXZlZ3JhdmU9Nzg1NjtlLkFicmV2ZWhvb2thYm92ZT03ODU4O2UuQWJyZXZldGlsZGU9Nzg2MDtlLkFjYXJvbj00NjE7ZS5BY2lyY2xlPTkzOTg7ZS5BY2lyY3VtZmxleD0xOTQ7ZS5BY2lyY3VtZmxleGFjdXRlPTc4NDQ7ZS5BY2lyY3VtZmxleGRvdGJlbG93PTc4NTI7ZS5BY2lyY3VtZmxleGdyYXZlPTc4NDY7ZS5BY2lyY3VtZmxleGhvb2thYm92ZT03ODQ4O2UuQWNpcmN1bWZsZXhzbWFsbD02MzQ1ODtlLkFjaXJjdW1mbGV4dGlsZGU9Nzg1MDtlLkFjdXRlPTYzMTc3O2UuQWN1dGVzbWFsbD02MzQxMjtlLkFjeXJpbGxpYz0xMDQwO2UuQWRibGdyYXZlPTUxMjtlLkFkaWVyZXNpcz0xOTY7ZS5BZGllcmVzaXNjeXJpbGxpYz0xMjM0O2UuQWRpZXJlc2lzbWFjcm9uPTQ3ODtlLkFkaWVyZXNpc3NtYWxsPTYzNDYwO2UuQWRvdGJlbG93PTc4NDA7ZS5BZG90bWFjcm9uPTQ4MDtlLkFncmF2ZT0xOTI7ZS5BZ3JhdmVzbWFsbD02MzQ1NjtlLkFob29rYWJvdmU9Nzg0MjtlLkFpZWN5cmlsbGljPTEyMzY7ZS5BaW52ZXJ0ZWRicmV2ZT01MTQ7ZS5BbHBoYT05MTM7ZS5BbHBoYXRvbm9zPTkwMjtlLkFtYWNyb249MjU2O2UuQW1vbm9zcGFjZT02NTMxMztlLkFvZ29uZWs9MjYwO2UuQXJpbmc9MTk3O2UuQXJpbmdhY3V0ZT01MDY7ZS5BcmluZ2JlbG93PTc2ODA7ZS5BcmluZ3NtYWxsPTYzNDYxO2UuQXNtYWxsPTYzMzI5O2UuQXRpbGRlPTE5NTtlLkF0aWxkZXNtYWxsPTYzNDU5O2UuQXliYXJtZW5pYW49MTMyOTtlLkI9NjY7ZS5CY2lyY2xlPTkzOTk7ZS5CZG90YWNjZW50PTc2ODI7ZS5CZG90YmVsb3c9NzY4NDtlLkJlY3lyaWxsaWM9MTA0MTtlLkJlbmFybWVuaWFuPTEzMzA7ZS5CZXRhPTkxNDtlLkJob29rPTM4NTtlLkJsaW5lYmVsb3c9NzY4NjtlLkJtb25vc3BhY2U9NjUzMTQ7ZS5CcmV2ZXNtYWxsPTYzMjIwO2UuQnNtYWxsPTYzMzMwO2UuQnRvcGJhcj0zODY7ZS5DPTY3O2UuQ2Fhcm1lbmlhbj0xMzQyO2UuQ2FjdXRlPTI2MjtlLkNhcm9uPTYzMTc4O2UuQ2Fyb25zbWFsbD02MzIyMTtlLkNjYXJvbj0yNjg7ZS5DY2VkaWxsYT0xOTk7ZS5DY2VkaWxsYWFjdXRlPTc2ODg7ZS5DY2VkaWxsYXNtYWxsPTYzNDYzO2UuQ2NpcmNsZT05NDAwO2UuQ2NpcmN1bWZsZXg9MjY0O2UuQ2RvdD0yNjY7ZS5DZG90YWNjZW50PTI2NjtlLkNlZGlsbGFzbWFsbD02MzQxNjtlLkNoYWFybWVuaWFuPTEzNTM7ZS5DaGVhYmtoYXNpYW5jeXJpbGxpYz0xMjEyO2UuQ2hlY3lyaWxsaWM9MTA2MztlLkNoZWRlc2NlbmRlcmFia2hhc2lhbmN5cmlsbGljPTEyMTQ7ZS5DaGVkZXNjZW5kZXJjeXJpbGxpYz0xMjA2O2UuQ2hlZGllcmVzaXNjeXJpbGxpYz0xMjY4O2UuQ2hlaGFybWVuaWFuPTEzNDc7ZS5DaGVraGFrYXNzaWFuY3lyaWxsaWM9MTIyNztlLkNoZXZlcnRpY2Fsc3Ryb2tlY3lyaWxsaWM9MTIwODtlLkNoaT05MzU7ZS5DaG9vaz0zOTE7ZS5DaXJjdW1mbGV4c21hbGw9NjMyMjI7ZS5DbW9ub3NwYWNlPTY1MzE1O2UuQ29hcm1lbmlhbj0xMzYxO2UuQ3NtYWxsPTYzMzMxO2UuRD02ODtlLkRaPTQ5NztlLkRaY2Fyb249NDUyO2UuRGFhcm1lbmlhbj0xMzMyO2UuRGFmcmljYW49MzkzO2UuRGNhcm9uPTI3MDtlLkRjZWRpbGxhPTc2OTY7ZS5EY2lyY2xlPTk0MDE7ZS5EY2lyY3VtZmxleGJlbG93PTc2OTg7ZS5EY3JvYXQ9MjcyO2UuRGRvdGFjY2VudD03NjkwO2UuRGRvdGJlbG93PTc2OTI7ZS5EZWN5cmlsbGljPTEwNDQ7ZS5EZWljb3B0aWM9MTAwNjtlLkRlbHRhPTg3MTA7ZS5EZWx0YWdyZWVrPTkxNjtlLkRob29rPTM5NDtlLkRpZXJlc2lzPTYzMTc5O2UuRGllcmVzaXNBY3V0ZT02MzE4MDtlLkRpZXJlc2lzR3JhdmU9NjMxODE7ZS5EaWVyZXNpc3NtYWxsPTYzNDAwO2UuRGlnYW1tYWdyZWVrPTk4ODtlLkRqZWN5cmlsbGljPTEwMjY7ZS5EbGluZWJlbG93PTc2OTQ7ZS5EbW9ub3NwYWNlPTY1MzE2O2UuRG90YWNjZW50c21hbGw9NjMyMjM7ZS5Ec2xhc2g9MjcyO2UuRHNtYWxsPTYzMzMyO2UuRHRvcGJhcj0zOTU7ZS5Eej00OTg7ZS5EemNhcm9uPTQ1MztlLkR6ZWFia2hhc2lhbmN5cmlsbGljPTEyNDg7ZS5EemVjeXJpbGxpYz0xMDI5O2UuRHpoZWN5cmlsbGljPTEwMzk7ZS5FPTY5O2UuRWFjdXRlPTIwMTtlLkVhY3V0ZXNtYWxsPTYzNDY1O2UuRWJyZXZlPTI3NjtlLkVjYXJvbj0yODI7ZS5FY2VkaWxsYWJyZXZlPTc3MDg7ZS5FY2hhcm1lbmlhbj0xMzMzO2UuRWNpcmNsZT05NDAyO2UuRWNpcmN1bWZsZXg9MjAyO2UuRWNpcmN1bWZsZXhhY3V0ZT03ODcwO2UuRWNpcmN1bWZsZXhiZWxvdz03NzA0O2UuRWNpcmN1bWZsZXhkb3RiZWxvdz03ODc4O2UuRWNpcmN1bWZsZXhncmF2ZT03ODcyO2UuRWNpcmN1bWZsZXhob29rYWJvdmU9Nzg3NDtlLkVjaXJjdW1mbGV4c21hbGw9NjM0NjY7ZS5FY2lyY3VtZmxleHRpbGRlPTc4NzY7ZS5FY3lyaWxsaWM9MTAyODtlLkVkYmxncmF2ZT01MTY7ZS5FZGllcmVzaXM9MjAzO2UuRWRpZXJlc2lzc21hbGw9NjM0Njc7ZS5FZG90PTI3ODtlLkVkb3RhY2NlbnQ9Mjc4O2UuRWRvdGJlbG93PTc4NjQ7ZS5FZmN5cmlsbGljPTEwNjA7ZS5FZ3JhdmU9MjAwO2UuRWdyYXZlc21hbGw9NjM0NjQ7ZS5FaGFybWVuaWFuPTEzMzU7ZS5FaG9va2Fib3ZlPTc4NjY7ZS5FaWdodHJvbWFuPTg1NTE7ZS5FaW52ZXJ0ZWRicmV2ZT01MTg7ZS5FaW90aWZpZWRjeXJpbGxpYz0xMTI0O2UuRWxjeXJpbGxpYz0xMDUxO2UuRWxldmVucm9tYW49ODU1NDtlLkVtYWNyb249Mjc0O2UuRW1hY3JvbmFjdXRlPTc3MDI7ZS5FbWFjcm9uZ3JhdmU9NzcwMDtlLkVtY3lyaWxsaWM9MTA1MjtlLkVtb25vc3BhY2U9NjUzMTc7ZS5FbmN5cmlsbGljPTEwNTM7ZS5FbmRlc2NlbmRlcmN5cmlsbGljPTExODY7ZS5Fbmc9MzMwO2UuRW5naGVjeXJpbGxpYz0xMTg4O2UuRW5ob29rY3lyaWxsaWM9MTIyMztlLkVvZ29uZWs9MjgwO2UuRW9wZW49NDAwO2UuRXBzaWxvbj05MTc7ZS5FcHNpbG9udG9ub3M9OTA0O2UuRXJjeXJpbGxpYz0xMDU2O2UuRXJldmVyc2VkPTM5ODtlLkVyZXZlcnNlZGN5cmlsbGljPTEwNjk7ZS5Fc2N5cmlsbGljPTEwNTc7ZS5Fc2Rlc2NlbmRlcmN5cmlsbGljPTExOTQ7ZS5Fc2g9NDI1O2UuRXNtYWxsPTYzMzMzO2UuRXRhPTkxOTtlLkV0YXJtZW5pYW49MTMzNjtlLkV0YXRvbm9zPTkwNTtlLkV0aD0yMDg7ZS5FdGhzbWFsbD02MzQ3MjtlLkV0aWxkZT03ODY4O2UuRXRpbGRlYmVsb3c9NzcwNjtlLkV1cm89ODM2NDtlLkV6aD00Mzk7ZS5FemhjYXJvbj00OTQ7ZS5FemhyZXZlcnNlZD00NDA7ZS5GPTcwO2UuRmNpcmNsZT05NDAzO2UuRmRvdGFjY2VudD03NzEwO2UuRmVoYXJtZW5pYW49MTM2NjtlLkZlaWNvcHRpYz05OTY7ZS5GaG9vaz00MDE7ZS5GaXRhY3lyaWxsaWM9MTEzODtlLkZpdmVyb21hbj04NTQ4O2UuRm1vbm9zcGFjZT02NTMxODtlLkZvdXJyb21hbj04NTQ3O2UuRnNtYWxsPTYzMzM0O2UuRz03MTtlLkdCc3F1YXJlPTEzMTkxO2UuR2FjdXRlPTUwMDtlLkdhbW1hPTkxNTtlLkdhbW1hYWZyaWNhbj00MDQ7ZS5HYW5naWFjb3B0aWM9MTAwMjtlLkdicmV2ZT0yODY7ZS5HY2Fyb249NDg2O2UuR2NlZGlsbGE9MjkwO2UuR2NpcmNsZT05NDA0O2UuR2NpcmN1bWZsZXg9Mjg0O2UuR2NvbW1hYWNjZW50PTI5MDtlLkdkb3Q9Mjg4O2UuR2RvdGFjY2VudD0yODg7ZS5HZWN5cmlsbGljPTEwNDM7ZS5HaGFkYXJtZW5pYW49MTM0NjtlLkdoZW1pZGRsZWhvb2tjeXJpbGxpYz0xMTcyO2UuR2hlc3Ryb2tlY3lyaWxsaWM9MTE3MDtlLkdoZXVwdHVybmN5cmlsbGljPTExNjg7ZS5HaG9vaz00MDM7ZS5HaW1hcm1lbmlhbj0xMzMxO2UuR2plY3lyaWxsaWM9MTAyNztlLkdtYWNyb249NzcxMjtlLkdtb25vc3BhY2U9NjUzMTk7ZS5HcmF2ZT02MzE4MjtlLkdyYXZlc21hbGw9NjMzMjg7ZS5Hc21hbGw9NjMzMzU7ZS5Hc21hbGxob29rPTY2NztlLkdzdHJva2U9NDg0O2UuSD03MjtlLkgxODUzMz05Njc5O2UuSDE4NTQzPTk2NDI7ZS5IMTg1NTE9OTY0MztlLkgyMjA3Mz05NjMzO2UuSFBzcXVhcmU9MTMyNTk7ZS5IYWFia2hhc2lhbmN5cmlsbGljPTExOTI7ZS5IYWRlc2NlbmRlcmN5cmlsbGljPTEyMDI7ZS5IYXJkc2lnbmN5cmlsbGljPTEwNjY7ZS5IYmFyPTI5NDtlLkhicmV2ZWJlbG93PTc3MjI7ZS5IY2VkaWxsYT03NzIwO2UuSGNpcmNsZT05NDA1O2UuSGNpcmN1bWZsZXg9MjkyO2UuSGRpZXJlc2lzPTc3MTg7ZS5IZG90YWNjZW50PTc3MTQ7ZS5IZG90YmVsb3c9NzcxNjtlLkhtb25vc3BhY2U9NjUzMjA7ZS5Ib2FybWVuaWFuPTEzNDQ7ZS5Ib3JpY29wdGljPTFlMztlLkhzbWFsbD02MzMzNjtlLkh1bmdhcnVtbGF1dD02MzE4MztlLkh1bmdhcnVtbGF1dHNtYWxsPTYzMjI0O2UuSHpzcXVhcmU9MTMyMDA7ZS5JPTczO2UuSUFjeXJpbGxpYz0xMDcxO2UuSUo9MzA2O2UuSVVjeXJpbGxpYz0xMDcwO2UuSWFjdXRlPTIwNTtlLklhY3V0ZXNtYWxsPTYzNDY5O2UuSWJyZXZlPTMwMDtlLkljYXJvbj00NjM7ZS5JY2lyY2xlPTk0MDY7ZS5JY2lyY3VtZmxleD0yMDY7ZS5JY2lyY3VtZmxleHNtYWxsPTYzNDcwO2UuSWN5cmlsbGljPTEwMzA7ZS5JZGJsZ3JhdmU9NTIwO2UuSWRpZXJlc2lzPTIwNztlLklkaWVyZXNpc2FjdXRlPTc3MjY7ZS5JZGllcmVzaXNjeXJpbGxpYz0xMjUyO2UuSWRpZXJlc2lzc21hbGw9NjM0NzE7ZS5JZG90PTMwNDtlLklkb3RhY2NlbnQ9MzA0O2UuSWRvdGJlbG93PTc4ODI7ZS5JZWJyZXZlY3lyaWxsaWM9MTIzODtlLkllY3lyaWxsaWM9MTA0NTtlLklmcmFrdHVyPTg0NjU7ZS5JZ3JhdmU9MjA0O2UuSWdyYXZlc21hbGw9NjM0Njg7ZS5JaG9va2Fib3ZlPTc4ODA7ZS5JaWN5cmlsbGljPTEwNDg7ZS5JaW52ZXJ0ZWRicmV2ZT01MjI7ZS5JaXNob3J0Y3lyaWxsaWM9MTA0OTtlLkltYWNyb249Mjk4O2UuSW1hY3JvbmN5cmlsbGljPTEyNTA7ZS5JbW9ub3NwYWNlPTY1MzIxO2UuSW5pYXJtZW5pYW49MTMzOTtlLklvY3lyaWxsaWM9MTAyNTtlLklvZ29uZWs9MzAyO2UuSW90YT05MjE7ZS5Jb3RhYWZyaWNhbj00MDY7ZS5Jb3RhZGllcmVzaXM9OTM4O2UuSW90YXRvbm9zPTkwNjtlLklzbWFsbD02MzMzNztlLklzdHJva2U9NDA3O2UuSXRpbGRlPTI5NjtlLkl0aWxkZWJlbG93PTc3MjQ7ZS5JemhpdHNhY3lyaWxsaWM9MTE0MDtlLkl6aGl0c2FkYmxncmF2ZWN5cmlsbGljPTExNDI7ZS5KPTc0O2UuSmFhcm1lbmlhbj0xMzQ1O2UuSmNpcmNsZT05NDA3O2UuSmNpcmN1bWZsZXg9MzA4O2UuSmVjeXJpbGxpYz0xMDMyO2UuSmhlaGFybWVuaWFuPTEzNTU7ZS5KbW9ub3NwYWNlPTY1MzIyO2UuSnNtYWxsPTYzMzM4O2UuSz03NTtlLktCc3F1YXJlPTEzMTg5O2UuS0tzcXVhcmU9MTMyNjE7ZS5LYWJhc2hraXJjeXJpbGxpYz0xMTg0O2UuS2FjdXRlPTc3Mjg7ZS5LYWN5cmlsbGljPTEwNTA7ZS5LYWRlc2NlbmRlcmN5cmlsbGljPTExNzg7ZS5LYWhvb2tjeXJpbGxpYz0xMjE5O2UuS2FwcGE9OTIyO2UuS2FzdHJva2VjeXJpbGxpYz0xMTgyO2UuS2F2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljPTExODA7ZS5LY2Fyb249NDg4O2UuS2NlZGlsbGE9MzEwO2UuS2NpcmNsZT05NDA4O2UuS2NvbW1hYWNjZW50PTMxMDtlLktkb3RiZWxvdz03NzMwO2UuS2VoYXJtZW5pYW49MTM2NDtlLktlbmFybWVuaWFuPTEzNDM7ZS5LaGFjeXJpbGxpYz0xMDYxO2UuS2hlaWNvcHRpYz05OTg7ZS5LaG9vaz00MDg7ZS5LamVjeXJpbGxpYz0xMDM2O2UuS2xpbmViZWxvdz03NzMyO2UuS21vbm9zcGFjZT02NTMyMztlLktvcHBhY3lyaWxsaWM9MTE1MjtlLktvcHBhZ3JlZWs9OTkwO2UuS3NpY3lyaWxsaWM9MTEzNDtlLktzbWFsbD02MzMzOTtlLkw9NzY7ZS5MSj00NTU7ZS5MTD02MzE2NztlLkxhY3V0ZT0zMTM7ZS5MYW1iZGE9OTIzO2UuTGNhcm9uPTMxNztlLkxjZWRpbGxhPTMxNTtlLkxjaXJjbGU9OTQwOTtlLkxjaXJjdW1mbGV4YmVsb3c9Nzc0MDtlLkxjb21tYWFjY2VudD0zMTU7ZS5MZG90PTMxOTtlLkxkb3RhY2NlbnQ9MzE5O2UuTGRvdGJlbG93PTc3MzQ7ZS5MZG90YmVsb3dtYWNyb249NzczNjtlLkxpd25hcm1lbmlhbj0xMzQwO2UuTGo9NDU2O2UuTGplY3lyaWxsaWM9MTAzMztlLkxsaW5lYmVsb3c9NzczODtlLkxtb25vc3BhY2U9NjUzMjQ7ZS5Mc2xhc2g9MzIxO2UuTHNsYXNoc21hbGw9NjMyMjU7ZS5Mc21hbGw9NjMzNDA7ZS5NPTc3O2UuTUJzcXVhcmU9MTMxOTA7ZS5NYWNyb249NjMxODQ7ZS5NYWNyb25zbWFsbD02MzQwNztlLk1hY3V0ZT03NzQyO2UuTWNpcmNsZT05NDEwO2UuTWRvdGFjY2VudD03NzQ0O2UuTWRvdGJlbG93PTc3NDY7ZS5NZW5hcm1lbmlhbj0xMzQ4O2UuTW1vbm9zcGFjZT02NTMyNTtlLk1zbWFsbD02MzM0MTtlLk10dXJuZWQ9NDEyO2UuTXU9OTI0O2UuTj03ODtlLk5KPTQ1ODtlLk5hY3V0ZT0zMjM7ZS5OY2Fyb249MzI3O2UuTmNlZGlsbGE9MzI1O2UuTmNpcmNsZT05NDExO2UuTmNpcmN1bWZsZXhiZWxvdz03NzU0O2UuTmNvbW1hYWNjZW50PTMyNTtlLk5kb3RhY2NlbnQ9Nzc0ODtlLk5kb3RiZWxvdz03NzUwO2UuTmhvb2tsZWZ0PTQxMztlLk5pbmVyb21hbj04NTUyO2UuTmo9NDU5O2UuTmplY3lyaWxsaWM9MTAzNDtlLk5saW5lYmVsb3c9Nzc1MjtlLk5tb25vc3BhY2U9NjUzMjY7ZS5Ob3dhcm1lbmlhbj0xMzUwO2UuTnNtYWxsPTYzMzQyO2UuTnRpbGRlPTIwOTtlLk50aWxkZXNtYWxsPTYzNDczO2UuTnU9OTI1O2UuTz03OTtlLk9FPTMzODtlLk9Fc21hbGw9NjMyMjY7ZS5PYWN1dGU9MjExO2UuT2FjdXRlc21hbGw9NjM0NzU7ZS5PYmFycmVkY3lyaWxsaWM9MTI1NjtlLk9iYXJyZWRkaWVyZXNpc2N5cmlsbGljPTEyNTg7ZS5PYnJldmU9MzM0O2UuT2Nhcm9uPTQ2NTtlLk9jZW50ZXJlZHRpbGRlPTQxNTtlLk9jaXJjbGU9OTQxMjtlLk9jaXJjdW1mbGV4PTIxMjtlLk9jaXJjdW1mbGV4YWN1dGU9Nzg4ODtlLk9jaXJjdW1mbGV4ZG90YmVsb3c9Nzg5NjtlLk9jaXJjdW1mbGV4Z3JhdmU9Nzg5MDtlLk9jaXJjdW1mbGV4aG9va2Fib3ZlPTc4OTI7ZS5PY2lyY3VtZmxleHNtYWxsPTYzNDc2O2UuT2NpcmN1bWZsZXh0aWxkZT03ODk0O2UuT2N5cmlsbGljPTEwNTQ7ZS5PZGJsYWN1dGU9MzM2O2UuT2RibGdyYXZlPTUyNDtlLk9kaWVyZXNpcz0yMTQ7ZS5PZGllcmVzaXNjeXJpbGxpYz0xMjU0O2UuT2RpZXJlc2lzc21hbGw9NjM0Nzg7ZS5PZG90YmVsb3c9Nzg4NDtlLk9nb25la3NtYWxsPTYzMjI3O2UuT2dyYXZlPTIxMDtlLk9ncmF2ZXNtYWxsPTYzNDc0O2UuT2hhcm1lbmlhbj0xMzY1O2UuT2htPTg0ODY7ZS5PaG9va2Fib3ZlPTc4ODY7ZS5PaG9ybj00MTY7ZS5PaG9ybmFjdXRlPTc4OTg7ZS5PaG9ybmRvdGJlbG93PTc5MDY7ZS5PaG9ybmdyYXZlPTc5MDA7ZS5PaG9ybmhvb2thYm92ZT03OTAyO2UuT2hvcm50aWxkZT03OTA0O2UuT2h1bmdhcnVtbGF1dD0zMzY7ZS5PaT00MTg7ZS5PaW52ZXJ0ZWRicmV2ZT01MjY7ZS5PbWFjcm9uPTMzMjtlLk9tYWNyb25hY3V0ZT03NzYyO2UuT21hY3JvbmdyYXZlPTc3NjA7ZS5PbWVnYT04NDg2O2UuT21lZ2FjeXJpbGxpYz0xMTIwO2UuT21lZ2FncmVlaz05Mzc7ZS5PbWVnYXJvdW5kY3lyaWxsaWM9MTE0NjtlLk9tZWdhdGl0bG9jeXJpbGxpYz0xMTQ4O2UuT21lZ2F0b25vcz05MTE7ZS5PbWljcm9uPTkyNztlLk9taWNyb250b25vcz05MDg7ZS5PbW9ub3NwYWNlPTY1MzI3O2UuT25lcm9tYW49ODU0NDtlLk9vZ29uZWs9NDkwO2UuT29nb25la21hY3Jvbj00OTI7ZS5Pb3Blbj0zOTA7ZS5Pc2xhc2g9MjE2O2UuT3NsYXNoYWN1dGU9NTEwO2UuT3NsYXNoc21hbGw9NjM0ODA7ZS5Pc21hbGw9NjMzNDM7ZS5Pc3Ryb2tlYWN1dGU9NTEwO2UuT3RjeXJpbGxpYz0xMTUwO2UuT3RpbGRlPTIxMztlLk90aWxkZWFjdXRlPTc3NTY7ZS5PdGlsZGVkaWVyZXNpcz03NzU4O2UuT3RpbGRlc21hbGw9NjM0Nzc7ZS5QPTgwO2UuUGFjdXRlPTc3NjQ7ZS5QY2lyY2xlPTk0MTM7ZS5QZG90YWNjZW50PTc3NjY7ZS5QZWN5cmlsbGljPTEwNTU7ZS5QZWhhcm1lbmlhbj0xMzU0O2UuUGVtaWRkbGVob29rY3lyaWxsaWM9MTE5MDtlLlBoaT05MzQ7ZS5QaG9vaz00MjA7ZS5QaT05Mjg7ZS5QaXdyYXJtZW5pYW49MTM2MztlLlBtb25vc3BhY2U9NjUzMjg7ZS5Qc2k9OTM2O2UuUHNpY3lyaWxsaWM9MTEzNjtlLlBzbWFsbD02MzM0NDtlLlE9ODE7ZS5RY2lyY2xlPTk0MTQ7ZS5RbW9ub3NwYWNlPTY1MzI5O2UuUXNtYWxsPTYzMzQ1O2UuUj04MjtlLlJhYXJtZW5pYW49MTM1NjtlLlJhY3V0ZT0zNDA7ZS5SY2Fyb249MzQ0O2UuUmNlZGlsbGE9MzQyO2UuUmNpcmNsZT05NDE1O2UuUmNvbW1hYWNjZW50PTM0MjtlLlJkYmxncmF2ZT01Mjg7ZS5SZG90YWNjZW50PTc3Njg7ZS5SZG90YmVsb3c9Nzc3MDtlLlJkb3RiZWxvd21hY3Jvbj03NzcyO2UuUmVoYXJtZW5pYW49MTM2MDtlLlJmcmFrdHVyPTg0NzY7ZS5SaG89OTI5O2UuUmluZ3NtYWxsPTYzMjI4O2UuUmludmVydGVkYnJldmU9NTMwO2UuUmxpbmViZWxvdz03Nzc0O2UuUm1vbm9zcGFjZT02NTMzMDtlLlJzbWFsbD02MzM0NjtlLlJzbWFsbGludmVydGVkPTY0MTtlLlJzbWFsbGludmVydGVkc3VwZXJpb3I9Njk0O2UuUz04MztlLlNGMDEwMDAwPTk0ODQ7ZS5TRjAyMDAwMD05NDkyO2UuU0YwMzAwMDA9OTQ4ODtlLlNGMDQwMDAwPTk0OTY7ZS5TRjA1MDAwMD05NTMyO2UuU0YwNjAwMDA9OTUxNjtlLlNGMDcwMDAwPTk1MjQ7ZS5TRjA4MDAwMD05NTAwO2UuU0YwOTAwMDA9OTUwODtlLlNGMTAwMDAwPTk0NzI7ZS5TRjExMDAwMD05NDc0O2UuU0YxOTAwMDA9OTU2OTtlLlNGMjAwMDAwPTk1NzA7ZS5TRjIxMDAwMD05NTU4O2UuU0YyMjAwMDA9OTU1NztlLlNGMjMwMDAwPTk1NzE7ZS5TRjI0MDAwMD05NTUzO2UuU0YyNTAwMDA9OTU1OTtlLlNGMjYwMDAwPTk1NjU7ZS5TRjI3MDAwMD05NTY0O2UuU0YyODAwMDA9OTU2MztlLlNGMzYwMDAwPTk1NjY7ZS5TRjM3MDAwMD05NTY3O2UuU0YzODAwMDA9OTU2MjtlLlNGMzkwMDAwPTk1NTY7ZS5TRjQwMDAwMD05NTc3O2UuU0Y0MTAwMDA9OTU3NDtlLlNGNDIwMDAwPTk1Njg7ZS5TRjQzMDAwMD05NTUyO2UuU0Y0NDAwMDA9OTU4MDtlLlNGNDUwMDAwPTk1NzU7ZS5TRjQ2MDAwMD05NTc2O2UuU0Y0NzAwMDA9OTU3MjtlLlNGNDgwMDAwPTk1NzM7ZS5TRjQ5MDAwMD05NTYxO2UuU0Y1MDAwMDA9OTU2MDtlLlNGNTEwMDAwPTk1NTQ7ZS5TRjUyMDAwMD05NTU1O2UuU0Y1MzAwMDA9OTU3OTtlLlNGNTQwMDAwPTk1Nzg7ZS5TYWN1dGU9MzQ2O2UuU2FjdXRlZG90YWNjZW50PTc3ODA7ZS5TYW1waWdyZWVrPTk5MjtlLlNjYXJvbj0zNTI7ZS5TY2Fyb25kb3RhY2NlbnQ9Nzc4MjtlLlNjYXJvbnNtYWxsPTYzMjI5O2UuU2NlZGlsbGE9MzUwO2UuU2Nod2E9Mzk5O2UuU2Nod2FjeXJpbGxpYz0xMjQwO2UuU2Nod2FkaWVyZXNpc2N5cmlsbGljPTEyNDI7ZS5TY2lyY2xlPTk0MTY7ZS5TY2lyY3VtZmxleD0zNDg7ZS5TY29tbWFhY2NlbnQ9NTM2O2UuU2RvdGFjY2VudD03Nzc2O2UuU2RvdGJlbG93PTc3Nzg7ZS5TZG90YmVsb3dkb3RhY2NlbnQ9Nzc4NDtlLlNlaGFybWVuaWFuPTEzNTc7ZS5TZXZlbnJvbWFuPTg1NTA7ZS5TaGFhcm1lbmlhbj0xMzUxO2UuU2hhY3lyaWxsaWM9MTA2NDtlLlNoY2hhY3lyaWxsaWM9MTA2NTtlLlNoZWljb3B0aWM9OTk0O2UuU2hoYWN5cmlsbGljPTEyMTA7ZS5TaGltYWNvcHRpYz0xMDA0O2UuU2lnbWE9OTMxO2UuU2l4cm9tYW49ODU0OTtlLlNtb25vc3BhY2U9NjUzMzE7ZS5Tb2Z0c2lnbmN5cmlsbGljPTEwNjg7ZS5Tc21hbGw9NjMzNDc7ZS5TdGlnbWFncmVlaz05ODY7ZS5UPTg0O2UuVGF1PTkzMjtlLlRiYXI9MzU4O2UuVGNhcm9uPTM1NjtlLlRjZWRpbGxhPTM1NDtlLlRjaXJjbGU9OTQxNztlLlRjaXJjdW1mbGV4YmVsb3c9Nzc5MjtlLlRjb21tYWFjY2VudD0zNTQ7ZS5UZG90YWNjZW50PTc3ODY7ZS5UZG90YmVsb3c9Nzc4ODtlLlRlY3lyaWxsaWM9MTA1ODtlLlRlZGVzY2VuZGVyY3lyaWxsaWM9MTE5NjtlLlRlbnJvbWFuPTg1NTM7ZS5UZXRzZWN5cmlsbGljPTEyMDQ7ZS5UaGV0YT05MjA7ZS5UaG9vaz00Mjg7ZS5UaG9ybj0yMjI7ZS5UaG9ybnNtYWxsPTYzNDg2O2UuVGhyZWVyb21hbj04NTQ2O2UuVGlsZGVzbWFsbD02MzIzMDtlLlRpd25hcm1lbmlhbj0xMzU5O2UuVGxpbmViZWxvdz03NzkwO2UuVG1vbm9zcGFjZT02NTMzMjtlLlRvYXJtZW5pYW49MTMzNztlLlRvbmVmaXZlPTQ0NDtlLlRvbmVzaXg9Mzg4O2UuVG9uZXR3bz00MjM7ZS5UcmV0cm9mbGV4aG9vaz00MzA7ZS5Uc2VjeXJpbGxpYz0xMDYyO2UuVHNoZWN5cmlsbGljPTEwMzU7ZS5Uc21hbGw9NjMzNDg7ZS5Ud2VsdmVyb21hbj04NTU1O2UuVHdvcm9tYW49ODU0NTtlLlU9ODU7ZS5VYWN1dGU9MjE4O2UuVWFjdXRlc21hbGw9NjM0ODI7ZS5VYnJldmU9MzY0O2UuVWNhcm9uPTQ2NztlLlVjaXJjbGU9OTQxODtlLlVjaXJjdW1mbGV4PTIxOTtlLlVjaXJjdW1mbGV4YmVsb3c9Nzc5ODtlLlVjaXJjdW1mbGV4c21hbGw9NjM0ODM7ZS5VY3lyaWxsaWM9MTA1OTtlLlVkYmxhY3V0ZT0zNjg7ZS5VZGJsZ3JhdmU9NTMyO2UuVWRpZXJlc2lzPTIyMDtlLlVkaWVyZXNpc2FjdXRlPTQ3MTtlLlVkaWVyZXNpc2JlbG93PTc3OTQ7ZS5VZGllcmVzaXNjYXJvbj00NzM7ZS5VZGllcmVzaXNjeXJpbGxpYz0xMjY0O2UuVWRpZXJlc2lzZ3JhdmU9NDc1O2UuVWRpZXJlc2lzbWFjcm9uPTQ2OTtlLlVkaWVyZXNpc3NtYWxsPTYzNDg0O2UuVWRvdGJlbG93PTc5MDg7ZS5VZ3JhdmU9MjE3O2UuVWdyYXZlc21hbGw9NjM0ODE7ZS5VaG9va2Fib3ZlPTc5MTA7ZS5VaG9ybj00MzE7ZS5VaG9ybmFjdXRlPTc5MTI7ZS5VaG9ybmRvdGJlbG93PTc5MjA7ZS5VaG9ybmdyYXZlPTc5MTQ7ZS5VaG9ybmhvb2thYm92ZT03OTE2O2UuVWhvcm50aWxkZT03OTE4O2UuVWh1bmdhcnVtbGF1dD0zNjg7ZS5VaHVuZ2FydW1sYXV0Y3lyaWxsaWM9MTI2NjtlLlVpbnZlcnRlZGJyZXZlPTUzNDtlLlVrY3lyaWxsaWM9MTE0NDtlLlVtYWNyb249MzYyO2UuVW1hY3JvbmN5cmlsbGljPTEyNjI7ZS5VbWFjcm9uZGllcmVzaXM9NzgwMjtlLlVtb25vc3BhY2U9NjUzMzM7ZS5Vb2dvbmVrPTM3MDtlLlVwc2lsb249OTMzO2UuVXBzaWxvbjE9OTc4O2UuVXBzaWxvbmFjdXRlaG9va3N5bWJvbGdyZWVrPTk3OTtlLlVwc2lsb25hZnJpY2FuPTQzMztlLlVwc2lsb25kaWVyZXNpcz05Mzk7ZS5VcHNpbG9uZGllcmVzaXNob29rc3ltYm9sZ3JlZWs9OTgwO2UuVXBzaWxvbmhvb2tzeW1ib2w9OTc4O2UuVXBzaWxvbnRvbm9zPTkxMDtlLlVyaW5nPTM2NjtlLlVzaG9ydGN5cmlsbGljPTEwMzg7ZS5Vc21hbGw9NjMzNDk7ZS5Vc3RyYWlnaHRjeXJpbGxpYz0xMTk4O2UuVXN0cmFpZ2h0c3Ryb2tlY3lyaWxsaWM9MTIwMDtlLlV0aWxkZT0zNjA7ZS5VdGlsZGVhY3V0ZT03ODAwO2UuVXRpbGRlYmVsb3c9Nzc5NjtlLlY9ODY7ZS5WY2lyY2xlPTk0MTk7ZS5WZG90YmVsb3c9NzgwNjtlLlZlY3lyaWxsaWM9MTA0MjtlLlZld2FybWVuaWFuPTEzNTg7ZS5WaG9vaz00MzQ7ZS5WbW9ub3NwYWNlPTY1MzM0O2UuVm9hcm1lbmlhbj0xMzUyO2UuVnNtYWxsPTYzMzUwO2UuVnRpbGRlPTc4MDQ7ZS5XPTg3O2UuV2FjdXRlPTc4MTA7ZS5XY2lyY2xlPTk0MjA7ZS5XY2lyY3VtZmxleD0zNzI7ZS5XZGllcmVzaXM9NzgxMjtlLldkb3RhY2NlbnQ9NzgxNDtlLldkb3RiZWxvdz03ODE2O2UuV2dyYXZlPTc4MDg7ZS5XbW9ub3NwYWNlPTY1MzM1O2UuV3NtYWxsPTYzMzUxO2UuWD04ODtlLlhjaXJjbGU9OTQyMTtlLlhkaWVyZXNpcz03ODIwO2UuWGRvdGFjY2VudD03ODE4O2UuWGVoYXJtZW5pYW49MTM0MTtlLlhpPTkyNjtlLlhtb25vc3BhY2U9NjUzMzY7ZS5Yc21hbGw9NjMzNTI7ZS5ZPTg5O2UuWWFjdXRlPTIyMTtlLllhY3V0ZXNtYWxsPTYzNDg1O2UuWWF0Y3lyaWxsaWM9MTEyMjtlLlljaXJjbGU9OTQyMjtlLlljaXJjdW1mbGV4PTM3NDtlLllkaWVyZXNpcz0zNzY7ZS5ZZGllcmVzaXNzbWFsbD02MzQ4NztlLllkb3RhY2NlbnQ9NzgyMjtlLllkb3RiZWxvdz03OTI0O2UuWWVyaWN5cmlsbGljPTEwNjc7ZS5ZZXJ1ZGllcmVzaXNjeXJpbGxpYz0xMjcyO2UuWWdyYXZlPTc5MjI7ZS5ZaG9vaz00MzU7ZS5ZaG9va2Fib3ZlPTc5MjY7ZS5ZaWFybWVuaWFuPTEzNDk7ZS5ZaWN5cmlsbGljPTEwMzE7ZS5ZaXduYXJtZW5pYW49MTM2MjtlLlltb25vc3BhY2U9NjUzMzc7ZS5Zc21hbGw9NjMzNTM7ZS5ZdGlsZGU9NzkyODtlLll1c2JpZ2N5cmlsbGljPTExMzA7ZS5ZdXNiaWdpb3RpZmllZGN5cmlsbGljPTExMzI7ZS5ZdXNsaXR0bGVjeXJpbGxpYz0xMTI2O2UuWXVzbGl0dGxlaW90aWZpZWRjeXJpbGxpYz0xMTI4O2UuWj05MDtlLlphYXJtZW5pYW49MTMzNDtlLlphY3V0ZT0zNzc7ZS5aY2Fyb249MzgxO2UuWmNhcm9uc21hbGw9NjMyMzE7ZS5aY2lyY2xlPTk0MjM7ZS5aY2lyY3VtZmxleD03ODI0O2UuWmRvdD0zNzk7ZS5aZG90YWNjZW50PTM3OTtlLlpkb3RiZWxvdz03ODI2O2UuWmVjeXJpbGxpYz0xMDQ3O2UuWmVkZXNjZW5kZXJjeXJpbGxpYz0xMTc2O2UuWmVkaWVyZXNpc2N5cmlsbGljPTEyNDY7ZS5aZXRhPTkxODtlLlpoZWFybWVuaWFuPTEzMzg7ZS5aaGVicmV2ZWN5cmlsbGljPTEyMTc7ZS5aaGVjeXJpbGxpYz0xMDQ2O2UuWmhlZGVzY2VuZGVyY3lyaWxsaWM9MTE3NDtlLlpoZWRpZXJlc2lzY3lyaWxsaWM9MTI0NDtlLlpsaW5lYmVsb3c9NzgyODtlLlptb25vc3BhY2U9NjUzMzg7ZS5ac21hbGw9NjMzNTQ7ZS5ac3Ryb2tlPTQzNztlLmE9OTc7ZS5hYWJlbmdhbGk9MjQzODtlLmFhY3V0ZT0yMjU7ZS5hYWRldmE9MjMxMDtlLmFhZ3VqYXJhdGk9MjY5NDtlLmFhZ3VybXVraGk9MjU2NjtlLmFhbWF0cmFndXJtdWtoaT0yNjIyO2UuYWFydXNxdWFyZT0xMzA1OTtlLmFhdm93ZWxzaWduYmVuZ2FsaT0yNDk0O2UuYWF2b3dlbHNpZ25kZXZhPTIzNjY7ZS5hYXZvd2Vsc2lnbmd1amFyYXRpPTI3NTA7ZS5hYmJyZXZpYXRpb25tYXJrYXJtZW5pYW49MTM3NTtlLmFiYnJldmlhdGlvbnNpZ25kZXZhPTI0MTY7ZS5hYmVuZ2FsaT0yNDM3O2UuYWJvcG9tb2ZvPTEyNTcwO2UuYWJyZXZlPTI1OTtlLmFicmV2ZWFjdXRlPTc4NTU7ZS5hYnJldmVjeXJpbGxpYz0xMjMzO2UuYWJyZXZlZG90YmVsb3c9Nzg2MztlLmFicmV2ZWdyYXZlPTc4NTc7ZS5hYnJldmVob29rYWJvdmU9Nzg1OTtlLmFicmV2ZXRpbGRlPTc4NjE7ZS5hY2Fyb249NDYyO2UuYWNpcmNsZT05NDI0O2UuYWNpcmN1bWZsZXg9MjI2O2UuYWNpcmN1bWZsZXhhY3V0ZT03ODQ1O2UuYWNpcmN1bWZsZXhkb3RiZWxvdz03ODUzO2UuYWNpcmN1bWZsZXhncmF2ZT03ODQ3O2UuYWNpcmN1bWZsZXhob29rYWJvdmU9Nzg0OTtlLmFjaXJjdW1mbGV4dGlsZGU9Nzg1MTtlLmFjdXRlPTE4MDtlLmFjdXRlYmVsb3djbWI9NzkxO2UuYWN1dGVjbWI9NzY5O2UuYWN1dGVjb21iPTc2OTtlLmFjdXRlZGV2YT0yMzg4O2UuYWN1dGVsb3dtb2Q9NzE5O2UuYWN1dGV0b25lY21iPTgzMztlLmFjeXJpbGxpYz0xMDcyO2UuYWRibGdyYXZlPTUxMztlLmFkZGFrZ3VybXVraGk9MjY3MztlLmFkZXZhPTIzMDk7ZS5hZGllcmVzaXM9MjI4O2UuYWRpZXJlc2lzY3lyaWxsaWM9MTIzNTtlLmFkaWVyZXNpc21hY3Jvbj00Nzk7ZS5hZG90YmVsb3c9Nzg0MTtlLmFkb3RtYWNyb249NDgxO2UuYWU9MjMwO2UuYWVhY3V0ZT01MDk7ZS5hZWtvcmVhbj0xMjYyNDtlLmFlbWFjcm9uPTQ4MztlLmFmaWkwMDIwOD04MjEzO2UuYWZpaTA4OTQxPTgzNTY7ZS5hZmlpMTAwMTc9MTA0MDtlLmFmaWkxMDAxOD0xMDQxO2UuYWZpaTEwMDE5PTEwNDI7ZS5hZmlpMTAwMjA9MTA0MztlLmFmaWkxMDAyMT0xMDQ0O2UuYWZpaTEwMDIyPTEwNDU7ZS5hZmlpMTAwMjM9MTAyNTtlLmFmaWkxMDAyND0xMDQ2O2UuYWZpaTEwMDI1PTEwNDc7ZS5hZmlpMTAwMjY9MTA0ODtlLmFmaWkxMDAyNz0xMDQ5O2UuYWZpaTEwMDI4PTEwNTA7ZS5hZmlpMTAwMjk9MTA1MTtlLmFmaWkxMDAzMD0xMDUyO2UuYWZpaTEwMDMxPTEwNTM7ZS5hZmlpMTAwMzI9MTA1NDtlLmFmaWkxMDAzMz0xMDU1O2UuYWZpaTEwMDM0PTEwNTY7ZS5hZmlpMTAwMzU9MTA1NztlLmFmaWkxMDAzNj0xMDU4O2UuYWZpaTEwMDM3PTEwNTk7ZS5hZmlpMTAwMzg9MTA2MDtlLmFmaWkxMDAzOT0xMDYxO2UuYWZpaTEwMDQwPTEwNjI7ZS5hZmlpMTAwNDE9MTA2MztlLmFmaWkxMDA0Mj0xMDY0O2UuYWZpaTEwMDQzPTEwNjU7ZS5hZmlpMTAwNDQ9MTA2NjtlLmFmaWkxMDA0NT0xMDY3O2UuYWZpaTEwMDQ2PTEwNjg7ZS5hZmlpMTAwNDc9MTA2OTtlLmFmaWkxMDA0OD0xMDcwO2UuYWZpaTEwMDQ5PTEwNzE7ZS5hZmlpMTAwNTA9MTE2ODtlLmFmaWkxMDA1MT0xMDI2O2UuYWZpaTEwMDUyPTEwMjc7ZS5hZmlpMTAwNTM9MTAyODtlLmFmaWkxMDA1ND0xMDI5O2UuYWZpaTEwMDU1PTEwMzA7ZS5hZmlpMTAwNTY9MTAzMTtlLmFmaWkxMDA1Nz0xMDMyO2UuYWZpaTEwMDU4PTEwMzM7ZS5hZmlpMTAwNTk9MTAzNDtlLmFmaWkxMDA2MD0xMDM1O2UuYWZpaTEwMDYxPTEwMzY7ZS5hZmlpMTAwNjI9MTAzODtlLmFmaWkxMDA2Mz02MzE3MjtlLmFmaWkxMDA2ND02MzE3MztlLmFmaWkxMDA2NT0xMDcyO2UuYWZpaTEwMDY2PTEwNzM7ZS5hZmlpMTAwNjc9MTA3NDtlLmFmaWkxMDA2OD0xMDc1O2UuYWZpaTEwMDY5PTEwNzY7ZS5hZmlpMTAwNzA9MTA3NztlLmFmaWkxMDA3MT0xMTA1O2UuYWZpaTEwMDcyPTEwNzg7ZS5hZmlpMTAwNzM9MTA3OTtlLmFmaWkxMDA3ND0xMDgwO2UuYWZpaTEwMDc1PTEwODE7ZS5hZmlpMTAwNzY9MTA4MjtlLmFmaWkxMDA3Nz0xMDgzO2UuYWZpaTEwMDc4PTEwODQ7ZS5hZmlpMTAwNzk9MTA4NTtlLmFmaWkxMDA4MD0xMDg2O2UuYWZpaTEwMDgxPTEwODc7ZS5hZmlpMTAwODI9MTA4ODtlLmFmaWkxMDA4Mz0xMDg5O2UuYWZpaTEwMDg0PTEwOTA7ZS5hZmlpMTAwODU9MTA5MTtlLmFmaWkxMDA4Nj0xMDkyO2UuYWZpaTEwMDg3PTEwOTM7ZS5hZmlpMTAwODg9MTA5NDtlLmFmaWkxMDA4OT0xMDk1O2UuYWZpaTEwMDkwPTEwOTY7ZS5hZmlpMTAwOTE9MTA5NztlLmFmaWkxMDA5Mj0xMDk4O2UuYWZpaTEwMDkzPTEwOTk7ZS5hZmlpMTAwOTQ9MTEwMDtlLmFmaWkxMDA5NT0xMTAxO2UuYWZpaTEwMDk2PTExMDI7ZS5hZmlpMTAwOTc9MTEwMztlLmFmaWkxMDA5OD0xMTY5O2UuYWZpaTEwMDk5PTExMDY7ZS5hZmlpMTAxMDA9MTEwNztlLmFmaWkxMDEwMT0xMTA4O2UuYWZpaTEwMTAyPTExMDk7ZS5hZmlpMTAxMDM9MTExMDtlLmFmaWkxMDEwND0xMTExO2UuYWZpaTEwMTA1PTExMTI7ZS5hZmlpMTAxMDY9MTExMztlLmFmaWkxMDEwNz0xMTE0O2UuYWZpaTEwMTA4PTExMTU7ZS5hZmlpMTAxMDk9MTExNjtlLmFmaWkxMDExMD0xMTE4O2UuYWZpaTEwMTQ1PTEwMzk7ZS5hZmlpMTAxNDY9MTEyMjtlLmFmaWkxMDE0Nz0xMTM4O2UuYWZpaTEwMTQ4PTExNDA7ZS5hZmlpMTAxOTI9NjMxNzQ7ZS5hZmlpMTAxOTM9MTExOTtlLmFmaWkxMDE5ND0xMTIzO2UuYWZpaTEwMTk1PTExMzk7ZS5hZmlpMTAxOTY9MTE0MTtlLmFmaWkxMDgzMT02MzE3NTtlLmFmaWkxMDgzMj02MzE3NjtlLmFmaWkxMDg0Nj0xMjQxO2UuYWZpaTI5OT04MjA2O2UuYWZpaTMwMD04MjA3O2UuYWZpaTMwMT04MjA1O2UuYWZpaTU3MzgxPTE2NDI7ZS5hZmlpNTczODg9MTU0ODtlLmFmaWk1NzM5Mj0xNjMyO2UuYWZpaTU3MzkzPTE2MzM7ZS5hZmlpNTczOTQ9MTYzNDtlLmFmaWk1NzM5NT0xNjM1O2UuYWZpaTU3Mzk2PTE2MzY7ZS5hZmlpNTczOTc9MTYzNztlLmFmaWk1NzM5OD0xNjM4O2UuYWZpaTU3Mzk5PTE2Mzk7ZS5hZmlpNTc0MDA9MTY0MDtlLmFmaWk1NzQwMT0xNjQxO2UuYWZpaTU3NDAzPTE1NjM7ZS5hZmlpNTc0MDc9MTU2NztlLmFmaWk1NzQwOT0xNTY5O2UuYWZpaTU3NDEwPTE1NzA7ZS5hZmlpNTc0MTE9MTU3MTtlLmFmaWk1NzQxMj0xNTcyO2UuYWZpaTU3NDEzPTE1NzM7ZS5hZmlpNTc0MTQ9MTU3NDtlLmFmaWk1NzQxNT0xNTc1O2UuYWZpaTU3NDE2PTE1NzY7ZS5hZmlpNTc0MTc9MTU3NztlLmFmaWk1NzQxOD0xNTc4O2UuYWZpaTU3NDE5PTE1Nzk7ZS5hZmlpNTc0MjA9MTU4MDtlLmFmaWk1NzQyMT0xNTgxO2UuYWZpaTU3NDIyPTE1ODI7ZS5hZmlpNTc0MjM9MTU4MztlLmFmaWk1NzQyND0xNTg0O2UuYWZpaTU3NDI1PTE1ODU7ZS5hZmlpNTc0MjY9MTU4NjtlLmFmaWk1NzQyNz0xNTg3O2UuYWZpaTU3NDI4PTE1ODg7ZS5hZmlpNTc0Mjk9MTU4OTtlLmFmaWk1NzQzMD0xNTkwO2UuYWZpaTU3NDMxPTE1OTE7ZS5hZmlpNTc0MzI9MTU5MjtlLmFmaWk1NzQzMz0xNTkzO2UuYWZpaTU3NDM0PTE1OTQ7ZS5hZmlpNTc0NDA9MTYwMDtlLmFmaWk1NzQ0MT0xNjAxO2UuYWZpaTU3NDQyPTE2MDI7ZS5hZmlpNTc0NDM9MTYwMztlLmFmaWk1NzQ0ND0xNjA0O2UuYWZpaTU3NDQ1PTE2MDU7ZS5hZmlpNTc0NDY9MTYwNjtlLmFmaWk1NzQ0OD0xNjA4O2UuYWZpaTU3NDQ5PTE2MDk7ZS5hZmlpNTc0NTA9MTYxMDtlLmFmaWk1NzQ1MT0xNjExO2UuYWZpaTU3NDUyPTE2MTI7ZS5hZmlpNTc0NTM9MTYxMztlLmFmaWk1NzQ1ND0xNjE0O2UuYWZpaTU3NDU1PTE2MTU7ZS5hZmlpNTc0NTY9MTYxNjtlLmFmaWk1NzQ1Nz0xNjE3O2UuYWZpaTU3NDU4PTE2MTg7ZS5hZmlpNTc0NzA9MTYwNztlLmFmaWk1NzUwNT0xNzAwO2UuYWZpaTU3NTA2PTE2NjI7ZS5hZmlpNTc1MDc9MTY3MDtlLmFmaWk1NzUwOD0xNjg4O2UuYWZpaTU3NTA5PTE3MTE7ZS5hZmlpNTc1MTE9MTY1NztlLmFmaWk1NzUxMj0xNjcyO2UuYWZpaTU3NTEzPTE2ODE7ZS5hZmlpNTc1MTQ9MTcyMjtlLmFmaWk1NzUxOT0xNzQ2O2UuYWZpaTU3NTM0PTE3NDk7ZS5hZmlpNTc2MzY9ODM2MjtlLmFmaWk1NzY0NT0xNDcwO2UuYWZpaTU3NjU4PTE0NzU7ZS5hZmlpNTc2NjQ9MTQ4ODtlLmFmaWk1NzY2NT0xNDg5O2UuYWZpaTU3NjY2PTE0OTA7ZS5hZmlpNTc2Njc9MTQ5MTtlLmFmaWk1NzY2OD0xNDkyO2UuYWZpaTU3NjY5PTE0OTM7ZS5hZmlpNTc2NzA9MTQ5NDtlLmFmaWk1NzY3MT0xNDk1O2UuYWZpaTU3NjcyPTE0OTY7ZS5hZmlpNTc2NzM9MTQ5NztlLmFmaWk1NzY3ND0xNDk4O2UuYWZpaTU3Njc1PTE0OTk7ZS5hZmlpNTc2NzY9MTUwMDtlLmFmaWk1NzY3Nz0xNTAxO2UuYWZpaTU3Njc4PTE1MDI7ZS5hZmlpNTc2Nzk9MTUwMztlLmFmaWk1NzY4MD0xNTA0O2UuYWZpaTU3NjgxPTE1MDU7ZS5hZmlpNTc2ODI9MTUwNjtlLmFmaWk1NzY4Mz0xNTA3O2UuYWZpaTU3Njg0PTE1MDg7ZS5hZmlpNTc2ODU9MTUwOTtlLmFmaWk1NzY4Nj0xNTEwO2UuYWZpaTU3Njg3PTE1MTE7ZS5hZmlpNTc2ODg9MTUxMjtlLmFmaWk1NzY4OT0xNTEzO2UuYWZpaTU3NjkwPTE1MTQ7ZS5hZmlpNTc2OTQ9NjQyOTg7ZS5hZmlpNTc2OTU9NjQyOTk7ZS5hZmlpNTc3MDA9NjQzMzE7ZS5hZmlpNTc3MDU9NjQyODc7ZS5hZmlpNTc3MTY9MTUyMDtlLmFmaWk1NzcxNz0xNTIxO2UuYWZpaTU3NzE4PTE1MjI7ZS5hZmlpNTc3MjM9NjQzMDk7ZS5hZmlpNTc3OTM9MTQ2MDtlLmFmaWk1Nzc5ND0xNDYxO2UuYWZpaTU3Nzk1PTE0NjI7ZS5hZmlpNTc3OTY9MTQ2NztlLmFmaWk1Nzc5Nz0xNDY0O2UuYWZpaTU3Nzk4PTE0NjM7ZS5hZmlpNTc3OTk9MTQ1NjtlLmFmaWk1NzgwMD0xNDU4O2UuYWZpaTU3ODAxPTE0NTc7ZS5hZmlpNTc4MDI9MTQ1OTtlLmFmaWk1NzgwMz0xNDc0O2UuYWZpaTU3ODA0PTE0NzM7ZS5hZmlpNTc4MDY9MTQ2NTtlLmFmaWk1NzgwNz0xNDY4O2UuYWZpaTU3ODM5PTE0Njk7ZS5hZmlpNTc4NDE9MTQ3MTtlLmFmaWk1Nzg0Mj0xNDcyO2UuYWZpaTU3OTI5PTcwMDtlLmFmaWk2MTI0OD04NDUzO2UuYWZpaTYxMjg5PTg0Njc7ZS5hZmlpNjEzNTI9ODQ3MDtlLmFmaWk2MTU3Mz04MjM2O2UuYWZpaTYxNTc0PTgyMzc7ZS5hZmlpNjE1NzU9ODIzODtlLmFmaWk2MTY2ND04MjA0O2UuYWZpaTYzMTY3PTE2NDU7ZS5hZmlpNjQ5Mzc9NzAxO2UuYWdyYXZlPTIyNDtlLmFndWphcmF0aT0yNjkzO2UuYWd1cm11a2hpPTI1NjU7ZS5haGlyYWdhbmE9MTIzNTQ7ZS5haG9va2Fib3ZlPTc4NDM7ZS5haWJlbmdhbGk9MjQ0ODtlLmFpYm9wb21vZm89MTI1NzQ7ZS5haWRldmE9MjMyMDtlLmFpZWN5cmlsbGljPTEyMzc7ZS5haWd1amFyYXRpPTI3MDQ7ZS5haWd1cm11a2hpPTI1NzY7ZS5haW1hdHJhZ3VybXVraGk9MjYzMjtlLmFpbmFyYWJpYz0xNTkzO2UuYWluZmluYWxhcmFiaWM9NjUyMjY7ZS5haW5pbml0aWFsYXJhYmljPTY1MjI3O2UuYWlubWVkaWFsYXJhYmljPTY1MjI4O2UuYWludmVydGVkYnJldmU9NTE1O2UuYWl2b3dlbHNpZ25iZW5nYWxpPTI1MDQ7ZS5haXZvd2Vsc2lnbmRldmE9MjM3NjtlLmFpdm93ZWxzaWduZ3VqYXJhdGk9Mjc2MDtlLmFrYXRha2FuYT0xMjQ1MDtlLmFrYXRha2FuYWhhbGZ3aWR0aD02NTM5MztlLmFrb3JlYW49MTI2MjM7ZS5hbGVmPTE0ODg7ZS5hbGVmYXJhYmljPTE1NzU7ZS5hbGVmZGFnZXNoaGVicmV3PTY0MzA0O2UuYWxlZmZpbmFsYXJhYmljPTY1MTY2O2UuYWxlZmhhbXphYWJvdmVhcmFiaWM9MTU3MTtlLmFsZWZoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUxNTY7ZS5hbGVmaGFtemFiZWxvd2FyYWJpYz0xNTczO2UuYWxlZmhhbXphYmVsb3dmaW5hbGFyYWJpYz02NTE2MDtlLmFsZWZoZWJyZXc9MTQ4ODtlLmFsZWZsYW1lZGhlYnJldz02NDMzNTtlLmFsZWZtYWRkYWFib3ZlYXJhYmljPTE1NzA7ZS5hbGVmbWFkZGFhYm92ZWZpbmFsYXJhYmljPTY1MTU0O2UuYWxlZm1ha3N1cmFhcmFiaWM9MTYwOTtlLmFsZWZtYWtzdXJhZmluYWxhcmFiaWM9NjUyNjQ7ZS5hbGVmbWFrc3VyYWluaXRpYWxhcmFiaWM9NjUyNjc7ZS5hbGVmbWFrc3VyYW1lZGlhbGFyYWJpYz02NTI2ODtlLmFsZWZwYXRhaGhlYnJldz02NDMwMjtlLmFsZWZxYW1hdHNoZWJyZXc9NjQzMDM7ZS5hbGVwaD04NTAxO2UuYWxsZXF1YWw9ODc4MDtlLmFscGhhPTk0NTtlLmFscGhhdG9ub3M9OTQwO2UuYW1hY3Jvbj0yNTc7ZS5hbW9ub3NwYWNlPTY1MzQ1O2UuYW1wZXJzYW5kPTM4O2UuYW1wZXJzYW5kbW9ub3NwYWNlPTY1Mjg2O2UuYW1wZXJzYW5kc21hbGw9NjMyNzA7ZS5hbXNxdWFyZT0xMzI1MDtlLmFuYm9wb21vZm89MTI1Nzg7ZS5hbmdib3BvbW9mbz0xMjU4MDtlLmFuZ2JyYWNrZXRsZWZ0PTEyMjk2O2UuYW5nYnJhY2tldHJpZ2h0PTEyMjk3O2UuYW5na2hhbmtodXRoYWk9MzY3NDtlLmFuZ2xlPTg3MzY7ZS5hbmdsZWJyYWNrZXRsZWZ0PTEyMjk2O2UuYW5nbGVicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg3O2UuYW5nbGVicmFja2V0cmlnaHQ9MTIyOTc7ZS5hbmdsZWJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDg4O2UuYW5nbGVsZWZ0PTkwMDE7ZS5hbmdsZXJpZ2h0PTkwMDI7ZS5hbmdzdHJvbT04NDkxO2UuYW5vdGVsZWlhPTkwMztlLmFudWRhdHRhZGV2YT0yMzg2O2UuYW51c3ZhcmFiZW5nYWxpPTI0MzQ7ZS5hbnVzdmFyYWRldmE9MjMwNjtlLmFudXN2YXJhZ3VqYXJhdGk9MjY5MDtlLmFvZ29uZWs9MjYxO2UuYXBhYXRvc3F1YXJlPTEzMDU2O2UuYXBhcmVuPTkzNzI7ZS5hcG9zdHJvcGhlYXJtZW5pYW49MTM3MDtlLmFwb3N0cm9waGVtb2Q9NzAwO2UuYXBwbGU9NjM3NDM7ZS5hcHByb2FjaGVzPTg3ODQ7ZS5hcHByb3hlcXVhbD04Nzc2O2UuYXBwcm94ZXF1YWxvcmltYWdlPTg3ODY7ZS5hcHByb3hpbWF0ZWx5ZXF1YWw9ODc3MztlLmFyYWVhZWtvcmVhbj0xMjY4NjtlLmFyYWVha29yZWFuPTEyNjg1O2UuYXJjPTg5Nzg7ZS5hcmlnaHRoYWxmcmluZz03ODM0O2UuYXJpbmc9MjI5O2UuYXJpbmdhY3V0ZT01MDc7ZS5hcmluZ2JlbG93PTc2ODE7ZS5hcnJvd2JvdGg9ODU5NjtlLmFycm93ZGFzaGRvd249ODY3NTtlLmFycm93ZGFzaGxlZnQ9ODY3MjtlLmFycm93ZGFzaHJpZ2h0PTg2NzQ7ZS5hcnJvd2Rhc2h1cD04NjczO2UuYXJyb3dkYmxib3RoPTg2NjA7ZS5hcnJvd2RibGRvd249ODY1OTtlLmFycm93ZGJsbGVmdD04NjU2O2UuYXJyb3dkYmxyaWdodD04NjU4O2UuYXJyb3dkYmx1cD04NjU3O2UuYXJyb3dkb3duPTg1OTU7ZS5hcnJvd2Rvd25sZWZ0PTg2MDE7ZS5hcnJvd2Rvd25yaWdodD04NjAwO2UuYXJyb3dkb3dud2hpdGU9ODY4MTtlLmFycm93aGVhZGRvd25tb2Q9NzA5O2UuYXJyb3doZWFkbGVmdG1vZD03MDY7ZS5hcnJvd2hlYWRyaWdodG1vZD03MDc7ZS5hcnJvd2hlYWR1cG1vZD03MDg7ZS5hcnJvd2hvcml6ZXg9NjM3MTk7ZS5hcnJvd2xlZnQ9ODU5MjtlLmFycm93bGVmdGRibD04NjU2O2UuYXJyb3dsZWZ0ZGJsc3Ryb2tlPTg2NTM7ZS5hcnJvd2xlZnRvdmVycmlnaHQ9ODY0NjtlLmFycm93bGVmdHdoaXRlPTg2Nzg7ZS5hcnJvd3JpZ2h0PTg1OTQ7ZS5hcnJvd3JpZ2h0ZGJsc3Ryb2tlPTg2NTU7ZS5hcnJvd3JpZ2h0aGVhdnk9MTAxNDI7ZS5hcnJvd3JpZ2h0b3ZlcmxlZnQ9ODY0NDtlLmFycm93cmlnaHR3aGl0ZT04NjgwO2UuYXJyb3d0YWJsZWZ0PTg2NzY7ZS5hcnJvd3RhYnJpZ2h0PTg2Nzc7ZS5hcnJvd3VwPTg1OTM7ZS5hcnJvd3VwZG49ODU5NztlLmFycm93dXBkbmJzZT04NjE2O2UuYXJyb3d1cGRvd25iYXNlPTg2MTY7ZS5hcnJvd3VwbGVmdD04NTk4O2UuYXJyb3d1cGxlZnRvZmRvd249ODY0NTtlLmFycm93dXByaWdodD04NTk5O2UuYXJyb3d1cHdoaXRlPTg2Nzk7ZS5hcnJvd3ZlcnRleD02MzcxODtlLmFzY2lpY2lyY3VtPTk0O2UuYXNjaWljaXJjdW1tb25vc3BhY2U9NjUzNDI7ZS5hc2NpaXRpbGRlPTEyNjtlLmFzY2lpdGlsZGVtb25vc3BhY2U9NjUzNzQ7ZS5hc2NyaXB0PTU5MztlLmFzY3JpcHR0dXJuZWQ9NTk0O2UuYXNtYWxsaGlyYWdhbmE9MTIzNTM7ZS5hc21hbGxrYXRha2FuYT0xMjQ0OTtlLmFzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1MzgzO2UuYXN0ZXJpc2s9NDI7ZS5hc3Rlcmlza2FsdG9uZWFyYWJpYz0xNjQ1O2UuYXN0ZXJpc2thcmFiaWM9MTY0NTtlLmFzdGVyaXNrbWF0aD04NzI3O2UuYXN0ZXJpc2ttb25vc3BhY2U9NjUyOTA7ZS5hc3Rlcmlza3NtYWxsPTY1MTIxO2UuYXN0ZXJpc209ODI1ODtlLmFzdXBlcmlvcj02MzIwOTtlLmFzeW1wdG90aWNhbGx5ZXF1YWw9ODc3MTtlLmF0PTY0O2UuYXRpbGRlPTIyNztlLmF0bW9ub3NwYWNlPTY1MzEyO2UuYXRzbWFsbD02NTEzMTtlLmF0dXJuZWQ9NTkyO2UuYXViZW5nYWxpPTI0NTI7ZS5hdWJvcG9tb2ZvPTEyNTc2O2UuYXVkZXZhPTIzMjQ7ZS5hdWd1amFyYXRpPTI3MDg7ZS5hdWd1cm11a2hpPTI1ODA7ZS5hdWxlbmd0aG1hcmtiZW5nYWxpPTI1MTk7ZS5hdW1hdHJhZ3VybXVraGk9MjYzNjtlLmF1dm93ZWxzaWduYmVuZ2FsaT0yNTA4O2UuYXV2b3dlbHNpZ25kZXZhPTIzODA7ZS5hdXZvd2Vsc2lnbmd1amFyYXRpPTI3NjQ7ZS5hdmFncmFoYWRldmE9MjM2NTtlLmF5YmFybWVuaWFuPTEzNzc7ZS5heWluPTE1MDY7ZS5heWluYWx0b25laGVicmV3PTY0Mjg4O2UuYXlpbmhlYnJldz0xNTA2O2UuYj05ODtlLmJhYmVuZ2FsaT0yNDc2O2UuYmFja3NsYXNoPTkyO2UuYmFja3NsYXNobW9ub3NwYWNlPTY1MzQwO2UuYmFkZXZhPTIzNDg7ZS5iYWd1amFyYXRpPTI3MzI7ZS5iYWd1cm11a2hpPTI2MDQ7ZS5iYWhpcmFnYW5hPTEyNDAwO2UuYmFodHRoYWk9MzY0NztlLmJha2F0YWthbmE9MTI0OTY7ZS5iYXI9MTI0O2UuYmFybW9ub3NwYWNlPTY1MzcyO2UuYmJvcG9tb2ZvPTEyNTQ5O2UuYmNpcmNsZT05NDI1O2UuYmRvdGFjY2VudD03NjgzO2UuYmRvdGJlbG93PTc2ODU7ZS5iZWFtZWRzaXh0ZWVudGhub3Rlcz05ODM2O2UuYmVjYXVzZT04NzU3O2UuYmVjeXJpbGxpYz0xMDczO2UuYmVoYXJhYmljPTE1NzY7ZS5iZWhmaW5hbGFyYWJpYz02NTE2ODtlLmJlaGluaXRpYWxhcmFiaWM9NjUxNjk7ZS5iZWhpcmFnYW5hPTEyNDA5O2UuYmVobWVkaWFsYXJhYmljPTY1MTcwO2UuYmVobWVlbWluaXRpYWxhcmFiaWM9NjQ2NzE7ZS5iZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1MjA7ZS5iZWhub29uZmluYWxhcmFiaWM9NjQ2MjE7ZS5iZWthdGFrYW5hPTEyNTA1O2UuYmVuYXJtZW5pYW49MTM3ODtlLmJldD0xNDg5O2UuYmV0YT05NDY7ZS5iZXRhc3ltYm9sZ3JlZWs9OTc2O2UuYmV0ZGFnZXNoPTY0MzA1O2UuYmV0ZGFnZXNoaGVicmV3PTY0MzA1O2UuYmV0aGVicmV3PTE0ODk7ZS5iZXRyYWZlaGVicmV3PTY0MzMyO2UuYmhhYmVuZ2FsaT0yNDc3O2UuYmhhZGV2YT0yMzQ5O2UuYmhhZ3VqYXJhdGk9MjczMztlLmJoYWd1cm11a2hpPTI2MDU7ZS5iaG9vaz01OTU7ZS5iaWhpcmFnYW5hPTEyNDAzO2UuYmlrYXRha2FuYT0xMjQ5OTtlLmJpbGFiaWFsY2xpY2s9NjY0O2UuYmluZGlndXJtdWtoaT0yNTYyO2UuYmlydXNxdWFyZT0xMzEwNTtlLmJsYWNrY2lyY2xlPTk2Nzk7ZS5ibGFja2RpYW1vbmQ9OTY3MDtlLmJsYWNrZG93bnBvaW50aW5ndHJpYW5nbGU9OTY2MDtlLmJsYWNrbGVmdHBvaW50aW5ncG9pbnRlcj05NjY4O2UuYmxhY2tsZWZ0cG9pbnRpbmd0cmlhbmdsZT05NjY0O2UuYmxhY2tsZW50aWN1bGFyYnJhY2tldGxlZnQ9MTIzMDQ7ZS5ibGFja2xlbnRpY3VsYXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDgzO2UuYmxhY2tsZW50aWN1bGFyYnJhY2tldHJpZ2h0PTEyMzA1O2UuYmxhY2tsZW50aWN1bGFyYnJhY2tldHJpZ2h0dmVydGljYWw9NjUwODQ7ZS5ibGFja2xvd2VybGVmdHRyaWFuZ2xlPTk2OTk7ZS5ibGFja2xvd2VycmlnaHR0cmlhbmdsZT05Njk4O2UuYmxhY2tyZWN0YW5nbGU9OTY0NDtlLmJsYWNrcmlnaHRwb2ludGluZ3BvaW50ZXI9OTY1ODtlLmJsYWNrcmlnaHRwb2ludGluZ3RyaWFuZ2xlPTk2NTQ7ZS5ibGFja3NtYWxsc3F1YXJlPTk2NDI7ZS5ibGFja3NtaWxpbmdmYWNlPTk3ODc7ZS5ibGFja3NxdWFyZT05NjMyO2UuYmxhY2tzdGFyPTk3MzM7ZS5ibGFja3VwcGVybGVmdHRyaWFuZ2xlPTk3MDA7ZS5ibGFja3VwcGVycmlnaHR0cmlhbmdsZT05NzAxO2UuYmxhY2t1cHBvaW50aW5nc21hbGx0cmlhbmdsZT05NjUyO2UuYmxhY2t1cHBvaW50aW5ndHJpYW5nbGU9OTY1MDtlLmJsYW5rPTkyNTE7ZS5ibGluZWJlbG93PTc2ODc7ZS5ibG9jaz05NjA4O2UuYm1vbm9zcGFjZT02NTM0NjtlLmJvYmFpbWFpdGhhaT0zNjEwO2UuYm9oaXJhZ2FuYT0xMjQxMjtlLmJva2F0YWthbmE9MTI1MDg7ZS5icGFyZW49OTM3MztlLmJxc3F1YXJlPTEzMjUxO2UuYnJhY2VleD02MzczMjtlLmJyYWNlbGVmdD0xMjM7ZS5icmFjZWxlZnRidD02MzczMTtlLmJyYWNlbGVmdG1pZD02MzczMDtlLmJyYWNlbGVmdG1vbm9zcGFjZT02NTM3MTtlLmJyYWNlbGVmdHNtYWxsPTY1MTE1O2UuYnJhY2VsZWZ0dHA9NjM3Mjk7ZS5icmFjZWxlZnR2ZXJ0aWNhbD02NTA3OTtlLmJyYWNlcmlnaHQ9MTI1O2UuYnJhY2VyaWdodGJ0PTYzNzQyO2UuYnJhY2VyaWdodG1pZD02Mzc0MTtlLmJyYWNlcmlnaHRtb25vc3BhY2U9NjUzNzM7ZS5icmFjZXJpZ2h0c21hbGw9NjUxMTY7ZS5icmFjZXJpZ2h0dHA9NjM3NDA7ZS5icmFjZXJpZ2h0dmVydGljYWw9NjUwODA7ZS5icmFja2V0bGVmdD05MTtlLmJyYWNrZXRsZWZ0YnQ9NjM3Mjg7ZS5icmFja2V0bGVmdGV4PTYzNzI3O2UuYnJhY2tldGxlZnRtb25vc3BhY2U9NjUzMzk7ZS5icmFja2V0bGVmdHRwPTYzNzI2O2UuYnJhY2tldHJpZ2h0PTkzO2UuYnJhY2tldHJpZ2h0YnQ9NjM3Mzk7ZS5icmFja2V0cmlnaHRleD02MzczODtlLmJyYWNrZXRyaWdodG1vbm9zcGFjZT02NTM0MTtlLmJyYWNrZXRyaWdodHRwPTYzNzM3O2UuYnJldmU9NzI4O2UuYnJldmViZWxvd2NtYj04MTQ7ZS5icmV2ZWNtYj03NzQ7ZS5icmV2ZWludmVydGVkYmVsb3djbWI9ODE1O2UuYnJldmVpbnZlcnRlZGNtYj03ODU7ZS5icmV2ZWludmVydGVkZG91YmxlY21iPTg2NTtlLmJyaWRnZWJlbG93Y21iPTgxMDtlLmJyaWRnZWludmVydGVkYmVsb3djbWI9ODI2O2UuYnJva2VuYmFyPTE2NjtlLmJzdHJva2U9Mzg0O2UuYnN1cGVyaW9yPTYzMjEwO2UuYnRvcGJhcj0zODc7ZS5idWhpcmFnYW5hPTEyNDA2O2UuYnVrYXRha2FuYT0xMjUwMjtlLmJ1bGxldD04MjI2O2UuYnVsbGV0aW52ZXJzZT05Njg4O2UuYnVsbGV0b3BlcmF0b3I9ODcyOTtlLmJ1bGxzZXllPTk2Nzg7ZS5jPTk5O2UuY2Fhcm1lbmlhbj0xMzkwO2UuY2FiZW5nYWxpPTI0NTg7ZS5jYWN1dGU9MjYzO2UuY2FkZXZhPTIzMzA7ZS5jYWd1amFyYXRpPTI3MTQ7ZS5jYWd1cm11a2hpPTI1ODY7ZS5jYWxzcXVhcmU9MTMxOTI7ZS5jYW5kcmFiaW5kdWJlbmdhbGk9MjQzMztlLmNhbmRyYWJpbmR1Y21iPTc4NDtlLmNhbmRyYWJpbmR1ZGV2YT0yMzA1O2UuY2FuZHJhYmluZHVndWphcmF0aT0yNjg5O2UuY2Fwc2xvY2s9ODY4MjtlLmNhcmVvZj04NDUzO2UuY2Fyb249NzExO2UuY2Fyb25iZWxvd2NtYj04MTI7ZS5jYXJvbmNtYj03ODA7ZS5jYXJyaWFnZXJldHVybj04NjI5O2UuY2JvcG9tb2ZvPTEyNTY4O2UuY2Nhcm9uPTI2OTtlLmNjZWRpbGxhPTIzMTtlLmNjZWRpbGxhYWN1dGU9NzY4OTtlLmNjaXJjbGU9OTQyNjtlLmNjaXJjdW1mbGV4PTI2NTtlLmNjdXJsPTU5NztlLmNkb3Q9MjY3O2UuY2RvdGFjY2VudD0yNjc7ZS5jZHNxdWFyZT0xMzI1MztlLmNlZGlsbGE9MTg0O2UuY2VkaWxsYWNtYj04MDc7ZS5jZW50PTE2MjtlLmNlbnRpZ3JhZGU9ODQ1MTtlLmNlbnRpbmZlcmlvcj02MzE5OTtlLmNlbnRtb25vc3BhY2U9NjU1MDQ7ZS5jZW50b2xkc3R5bGU9NjMzOTQ7ZS5jZW50c3VwZXJpb3I9NjMyMDA7ZS5jaGFhcm1lbmlhbj0xNDAxO2UuY2hhYmVuZ2FsaT0yNDU5O2UuY2hhZGV2YT0yMzMxO2UuY2hhZ3VqYXJhdGk9MjcxNTtlLmNoYWd1cm11a2hpPTI1ODc7ZS5jaGJvcG9tb2ZvPTEyNTY0O2UuY2hlYWJraGFzaWFuY3lyaWxsaWM9MTIxMztlLmNoZWNrbWFyaz0xMDAwMztlLmNoZWN5cmlsbGljPTEwOTU7ZS5jaGVkZXNjZW5kZXJhYmtoYXNpYW5jeXJpbGxpYz0xMjE1O2UuY2hlZGVzY2VuZGVyY3lyaWxsaWM9MTIwNztlLmNoZWRpZXJlc2lzY3lyaWxsaWM9MTI2OTtlLmNoZWhhcm1lbmlhbj0xMzk1O2UuY2hla2hha2Fzc2lhbmN5cmlsbGljPTEyMjg7ZS5jaGV2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljPTEyMDk7ZS5jaGk9OTY3O2UuY2hpZXVjaGFjaXJjbGVrb3JlYW49MTI5MTk7ZS5jaGlldWNoYXBhcmVua29yZWFuPTEyODIzO2UuY2hpZXVjaGNpcmNsZWtvcmVhbj0xMjkwNTtlLmNoaWV1Y2hrb3JlYW49MTI2MTg7ZS5jaGlldWNocGFyZW5rb3JlYW49MTI4MDk7ZS5jaG9jaGFuZ3RoYWk9MzU5NDtlLmNob2NoYW50aGFpPTM1OTI7ZS5jaG9jaGluZ3RoYWk9MzU5MztlLmNob2Nob2V0aGFpPTM1OTY7ZS5jaG9vaz0zOTI7ZS5jaWV1Y2FjaXJjbGVrb3JlYW49MTI5MTg7ZS5jaWV1Y2FwYXJlbmtvcmVhbj0xMjgyMjtlLmNpZXVjY2lyY2xla29yZWFuPTEyOTA0O2UuY2lldWNrb3JlYW49MTI2MTY7ZS5jaWV1Y3BhcmVua29yZWFuPTEyODA4O2UuY2lldWN1cGFyZW5rb3JlYW49MTI4Mjg7ZS5jaXJjbGU9OTY3NTtlLmNpcmNsZWNvcHlydD0xNjk7ZS5jaXJjbGVtdWx0aXBseT04ODU1O2UuY2lyY2xlb3Q9ODg1NztlLmNpcmNsZXBsdXM9ODg1MztlLmNpcmNsZXBvc3RhbG1hcms9MTIzNDI7ZS5jaXJjbGV3aXRobGVmdGhhbGZibGFjaz05NjgwO2UuY2lyY2xld2l0aHJpZ2h0aGFsZmJsYWNrPTk2ODE7ZS5jaXJjdW1mbGV4PTcxMDtlLmNpcmN1bWZsZXhiZWxvd2NtYj04MTM7ZS5jaXJjdW1mbGV4Y21iPTc3MDtlLmNsZWFyPTg5OTk7ZS5jbGlja2FsdmVvbGFyPTQ1MDtlLmNsaWNrZGVudGFsPTQ0ODtlLmNsaWNrbGF0ZXJhbD00NDk7ZS5jbGlja3JldHJvZmxleD00NTE7ZS5jbHViPTk4Mjc7ZS5jbHVic3VpdGJsYWNrPTk4Mjc7ZS5jbHVic3VpdHdoaXRlPTk4MzE7ZS5jbWN1YmVkc3F1YXJlPTEzMjIwO2UuY21vbm9zcGFjZT02NTM0NztlLmNtc3F1YXJlZHNxdWFyZT0xMzIxNjtlLmNvYXJtZW5pYW49MTQwOTtlLmNvbG9uPTU4O2UuY29sb25tb25ldGFyeT04MzUzO2UuY29sb25tb25vc3BhY2U9NjUzMDY7ZS5jb2xvbnNpZ249ODM1MztlLmNvbG9uc21hbGw9NjUxMDk7ZS5jb2xvbnRyaWFuZ3VsYXJoYWxmbW9kPTcyMTtlLmNvbG9udHJpYW5ndWxhcm1vZD03MjA7ZS5jb21tYT00NDtlLmNvbW1hYWJvdmVjbWI9Nzg3O2UuY29tbWFhYm92ZXJpZ2h0Y21iPTc4OTtlLmNvbW1hYWNjZW50PTYzMTcxO2UuY29tbWFhcmFiaWM9MTU0ODtlLmNvbW1hYXJtZW5pYW49MTM3MztlLmNvbW1haW5mZXJpb3I9NjMyMDE7ZS5jb21tYW1vbm9zcGFjZT02NTI5MjtlLmNvbW1hcmV2ZXJzZWRhYm92ZWNtYj03ODg7ZS5jb21tYXJldmVyc2VkbW9kPTcwMTtlLmNvbW1hc21hbGw9NjUxMDQ7ZS5jb21tYXN1cGVyaW9yPTYzMjAyO2UuY29tbWF0dXJuZWRhYm92ZWNtYj03ODY7ZS5jb21tYXR1cm5lZG1vZD02OTk7ZS5jb21wYXNzPTk3ODg7ZS5jb25ncnVlbnQ9ODc3MztlLmNvbnRvdXJpbnRlZ3JhbD04NzUwO2UuY29udHJvbD04OTYzO2UuY29udHJvbEFDSz02O2UuY29udHJvbEJFTD03O2UuY29udHJvbEJTPTg7ZS5jb250cm9sQ0FOPTI0O2UuY29udHJvbENSPTEzO2UuY29udHJvbERDMT0xNztlLmNvbnRyb2xEQzI9MTg7ZS5jb250cm9sREMzPTE5O2UuY29udHJvbERDND0yMDtlLmNvbnRyb2xERUw9MTI3O2UuY29udHJvbERMRT0xNjtlLmNvbnRyb2xFTT0yNTtlLmNvbnRyb2xFTlE9NTtlLmNvbnRyb2xFT1Q9NDtlLmNvbnRyb2xFU0M9Mjc7ZS5jb250cm9sRVRCPTIzO2UuY29udHJvbEVUWD0zO2UuY29udHJvbEZGPTEyO2UuY29udHJvbEZTPTI4O2UuY29udHJvbEdTPTI5O2UuY29udHJvbEhUPTk7ZS5jb250cm9sTEY9MTA7ZS5jb250cm9sTkFLPTIxO2UuY29udHJvbE5VTEw9MDtlLmNvbnRyb2xSUz0zMDtlLmNvbnRyb2xTST0xNTtlLmNvbnRyb2xTTz0xNDtlLmNvbnRyb2xTT1Q9MjtlLmNvbnRyb2xTVFg9MTtlLmNvbnRyb2xTVUI9MjY7ZS5jb250cm9sU1lOPTIyO2UuY29udHJvbFVTPTMxO2UuY29udHJvbFZUPTExO2UuY29weXJpZ2h0PTE2OTtlLmNvcHlyaWdodHNhbnM9NjM3MjE7ZS5jb3B5cmlnaHRzZXJpZj02MzE5MztlLmNvcm5lcmJyYWNrZXRsZWZ0PTEyMzAwO2UuY29ybmVyYnJhY2tldGxlZnRoYWxmd2lkdGg9NjUzNzg7ZS5jb3JuZXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg5O2UuY29ybmVyYnJhY2tldHJpZ2h0PTEyMzAxO2UuY29ybmVyYnJhY2tldHJpZ2h0aGFsZndpZHRoPTY1Mzc5O2UuY29ybmVyYnJhY2tldHJpZ2h0dmVydGljYWw9NjUwOTA7ZS5jb3Jwb3JhdGlvbnNxdWFyZT0xMzE4MztlLmNvc3F1YXJlPTEzMjU1O2UuY292ZXJrZ3NxdWFyZT0xMzI1NDtlLmNwYXJlbj05Mzc0O2UuY3J1emVpcm89ODM1NDtlLmNzdHJldGNoZWQ9NjYzO2UuY3VybHlhbmQ9ODkxMTtlLmN1cmx5b3I9ODkxMDtlLmN1cnJlbmN5PTE2NDtlLmN5ckJyZXZlPTYzMTg1O2UuY3lyRmxleD02MzE4NjtlLmN5cmJyZXZlPTYzMTg4O2UuY3lyZmxleD02MzE4OTtlLmQ9MTAwO2UuZGFhcm1lbmlhbj0xMzgwO2UuZGFiZW5nYWxpPTI0NzA7ZS5kYWRhcmFiaWM9MTU5MDtlLmRhZGV2YT0yMzQyO2UuZGFkZmluYWxhcmFiaWM9NjUyMTQ7ZS5kYWRpbml0aWFsYXJhYmljPTY1MjE1O2UuZGFkbWVkaWFsYXJhYmljPTY1MjE2O2UuZGFnZXNoPTE0Njg7ZS5kYWdlc2hoZWJyZXc9MTQ2ODtlLmRhZ2dlcj04MjI0O2UuZGFnZ2VyZGJsPTgyMjU7ZS5kYWd1amFyYXRpPTI3MjY7ZS5kYWd1cm11a2hpPTI1OTg7ZS5kYWhpcmFnYW5hPTEyMzg0O2UuZGFrYXRha2FuYT0xMjQ4MDtlLmRhbGFyYWJpYz0xNTgzO2UuZGFsZXQ9MTQ5MTtlLmRhbGV0ZGFnZXNoPTY0MzA3O2UuZGFsZXRkYWdlc2hoZWJyZXc9NjQzMDc7ZS5kYWxldGhlYnJldz0xNDkxO2UuZGFsZmluYWxhcmFiaWM9NjUxOTQ7ZS5kYW1tYWFyYWJpYz0xNjE1O2UuZGFtbWFsb3dhcmFiaWM9MTYxNTtlLmRhbW1hdGFuYWx0b25lYXJhYmljPTE2MTI7ZS5kYW1tYXRhbmFyYWJpYz0xNjEyO2UuZGFuZGE9MjQwNDtlLmRhcmdhaGVicmV3PTE0NDc7ZS5kYXJnYWxlZnRoZWJyZXc9MTQ0NztlLmRhc2lhcG5ldW1hdGFjeXJpbGxpY2NtYj0xMTU3O2UuZGJsR3JhdmU9NjMxODc7ZS5kYmxhbmdsZWJyYWNrZXRsZWZ0PTEyMjk4O2UuZGJsYW5nbGVicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg1O2UuZGJsYW5nbGVicmFja2V0cmlnaHQ9MTIyOTk7ZS5kYmxhbmdsZWJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDg2O2UuZGJsYXJjaGludmVydGVkYmVsb3djbWI9ODExO2UuZGJsYXJyb3dsZWZ0PTg2NjA7ZS5kYmxhcnJvd3JpZ2h0PTg2NTg7ZS5kYmxkYW5kYT0yNDA1O2UuZGJsZ3JhdmU9NjMxOTA7ZS5kYmxncmF2ZWNtYj03ODM7ZS5kYmxpbnRlZ3JhbD04NzQ4O2UuZGJsbG93bGluZT04MjE1O2UuZGJsbG93bGluZWNtYj04MTk7ZS5kYmxvdmVybGluZWNtYj04MzE7ZS5kYmxwcmltZW1vZD02OTg7ZS5kYmx2ZXJ0aWNhbGJhcj04MjE0O2UuZGJsdmVydGljYWxsaW5lYWJvdmVjbWI9NzgyO2UuZGJvcG9tb2ZvPTEyNTUzO2UuZGJzcXVhcmU9MTMyNTY7ZS5kY2Fyb249MjcxO2UuZGNlZGlsbGE9NzY5NztlLmRjaXJjbGU9OTQyNztlLmRjaXJjdW1mbGV4YmVsb3c9NzY5OTtlLmRjcm9hdD0yNzM7ZS5kZGFiZW5nYWxpPTI0NjU7ZS5kZGFkZXZhPTIzMzc7ZS5kZGFndWphcmF0aT0yNzIxO2UuZGRhZ3VybXVraGk9MjU5MztlLmRkYWxhcmFiaWM9MTY3MjtlLmRkYWxmaW5hbGFyYWJpYz02NDM5MztlLmRkZGhhZGV2YT0yMzk2O2UuZGRoYWJlbmdhbGk9MjQ2NjtlLmRkaGFkZXZhPTIzMzg7ZS5kZGhhZ3VqYXJhdGk9MjcyMjtlLmRkaGFndXJtdWtoaT0yNTk0O2UuZGRvdGFjY2VudD03NjkxO2UuZGRvdGJlbG93PTc2OTM7ZS5kZWNpbWFsc2VwYXJhdG9yYXJhYmljPTE2NDM7ZS5kZWNpbWFsc2VwYXJhdG9ycGVyc2lhbj0xNjQzO2UuZGVjeXJpbGxpYz0xMDc2O2UuZGVncmVlPTE3NjtlLmRlaGloZWJyZXc9MTQ1MztlLmRlaGlyYWdhbmE9MTIzOTE7ZS5kZWljb3B0aWM9MTAwNztlLmRla2F0YWthbmE9MTI0ODc7ZS5kZWxldGVsZWZ0PTkwMDM7ZS5kZWxldGVyaWdodD04OTk4O2UuZGVsdGE9OTQ4O2UuZGVsdGF0dXJuZWQ9Mzk3O2UuZGVub21pbmF0b3JtaW51c29uZW51bWVyYXRvcmJlbmdhbGk9MjU1MjtlLmRlemg9Njc2O2UuZGhhYmVuZ2FsaT0yNDcxO2UuZGhhZGV2YT0yMzQzO2UuZGhhZ3VqYXJhdGk9MjcyNztlLmRoYWd1cm11a2hpPTI1OTk7ZS5kaG9vaz01OTk7ZS5kaWFseXRpa2F0b25vcz05MDE7ZS5kaWFseXRpa2F0b25vc2NtYj04MzY7ZS5kaWFtb25kPTk4MzA7ZS5kaWFtb25kc3VpdHdoaXRlPTk4MjY7ZS5kaWVyZXNpcz0xNjg7ZS5kaWVyZXNpc2FjdXRlPTYzMTkxO2UuZGllcmVzaXNiZWxvd2NtYj04MDQ7ZS5kaWVyZXNpc2NtYj03NzY7ZS5kaWVyZXNpc2dyYXZlPTYzMTkyO2UuZGllcmVzaXN0b25vcz05MDE7ZS5kaWhpcmFnYW5hPTEyMzg2O2UuZGlrYXRha2FuYT0xMjQ4MjtlLmRpdHRvbWFyaz0xMjI5MTtlLmRpdmlkZT0yNDc7ZS5kaXZpZGVzPTg3Mzk7ZS5kaXZpc2lvbnNsYXNoPTg3MjU7ZS5kamVjeXJpbGxpYz0xMTA2O2UuZGtzaGFkZT05NjE5O2UuZGxpbmViZWxvdz03Njk1O2UuZGxzcXVhcmU9MTMyMDc7ZS5kbWFjcm9uPTI3MztlLmRtb25vc3BhY2U9NjUzNDg7ZS5kbmJsb2NrPTk2MDQ7ZS5kb2NoYWRhdGhhaT0zNTk4O2UuZG9kZWt0aGFpPTM2MDQ7ZS5kb2hpcmFnYW5hPTEyMzkzO2UuZG9rYXRha2FuYT0xMjQ4OTtlLmRvbGxhcj0zNjtlLmRvbGxhcmluZmVyaW9yPTYzMjAzO2UuZG9sbGFybW9ub3NwYWNlPTY1Mjg0O2UuZG9sbGFyb2xkc3R5bGU9NjMyNjg7ZS5kb2xsYXJzbWFsbD02NTEyOTtlLmRvbGxhcnN1cGVyaW9yPTYzMjA0O2UuZG9uZz04MzYzO2UuZG9ydXNxdWFyZT0xMzA5NDtlLmRvdGFjY2VudD03Mjk7ZS5kb3RhY2NlbnRjbWI9Nzc1O2UuZG90YmVsb3djbWI9ODAzO2UuZG90YmVsb3djb21iPTgwMztlLmRvdGthdGFrYW5hPTEyNTM5O2UuZG90bGVzc2k9MzA1O2UuZG90bGVzc2o9NjMxNjY7ZS5kb3RsZXNzanN0cm9rZWhvb2s9NjQ0O2UuZG90bWF0aD04OTAxO2UuZG90dGVkY2lyY2xlPTk2NzY7ZS5kb3VibGV5b2RwYXRhaD02NDI4NztlLmRvdWJsZXlvZHBhdGFoaGVicmV3PTY0Mjg3O2UuZG93bnRhY2tiZWxvd2NtYj03OTg7ZS5kb3dudGFja21vZD03MjU7ZS5kcGFyZW49OTM3NTtlLmRzdXBlcmlvcj02MzIxMTtlLmR0YWlsPTU5ODtlLmR0b3BiYXI9Mzk2O2UuZHVoaXJhZ2FuYT0xMjM4OTtlLmR1a2F0YWthbmE9MTI0ODU7ZS5kej00OTk7ZS5kemFsdG9uZT02NzU7ZS5kemNhcm9uPTQ1NDtlLmR6Y3VybD02Nzc7ZS5kemVhYmtoYXNpYW5jeXJpbGxpYz0xMjQ5O2UuZHplY3lyaWxsaWM9MTEwOTtlLmR6aGVjeXJpbGxpYz0xMTE5O2UuZT0xMDE7ZS5lYWN1dGU9MjMzO2UuZWFydGg9OTc5MztlLmViZW5nYWxpPTI0NDc7ZS5lYm9wb21vZm89MTI1NzI7ZS5lYnJldmU9Mjc3O2UuZWNhbmRyYWRldmE9MjMxNztlLmVjYW5kcmFndWphcmF0aT0yNzAxO2UuZWNhbmRyYXZvd2Vsc2lnbmRldmE9MjM3MztlLmVjYW5kcmF2b3dlbHNpZ25ndWphcmF0aT0yNzU3O2UuZWNhcm9uPTI4MztlLmVjZWRpbGxhYnJldmU9NzcwOTtlLmVjaGFybWVuaWFuPTEzODE7ZS5lY2h5aXduYXJtZW5pYW49MTQxNTtlLmVjaXJjbGU9OTQyODtlLmVjaXJjdW1mbGV4PTIzNDtlLmVjaXJjdW1mbGV4YWN1dGU9Nzg3MTtlLmVjaXJjdW1mbGV4YmVsb3c9NzcwNTtlLmVjaXJjdW1mbGV4ZG90YmVsb3c9Nzg3OTtlLmVjaXJjdW1mbGV4Z3JhdmU9Nzg3MztlLmVjaXJjdW1mbGV4aG9va2Fib3ZlPTc4NzU7ZS5lY2lyY3VtZmxleHRpbGRlPTc4Nzc7ZS5lY3lyaWxsaWM9MTEwODtlLmVkYmxncmF2ZT01MTc7ZS5lZGV2YT0yMzE5O2UuZWRpZXJlc2lzPTIzNTtlLmVkb3Q9Mjc5O2UuZWRvdGFjY2VudD0yNzk7ZS5lZG90YmVsb3c9Nzg2NTtlLmVlZ3VybXVraGk9MjU3NTtlLmVlbWF0cmFndXJtdWtoaT0yNjMxO2UuZWZjeXJpbGxpYz0xMDkyO2UuZWdyYXZlPTIzMjtlLmVndWphcmF0aT0yNzAzO2UuZWhhcm1lbmlhbj0xMzgzO2UuZWhib3BvbW9mbz0xMjU3MztlLmVoaXJhZ2FuYT0xMjM2MDtlLmVob29rYWJvdmU9Nzg2NztlLmVpYm9wb21vZm89MTI1NzU7ZS5laWdodD01NjtlLmVpZ2h0YXJhYmljPTE2NDA7ZS5laWdodGJlbmdhbGk9MjU0MjtlLmVpZ2h0Y2lyY2xlPTkzMTk7ZS5laWdodGNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjk7ZS5laWdodGRldmE9MjQxNDtlLmVpZ2h0ZWVuY2lyY2xlPTkzMjk7ZS5laWdodGVlbnBhcmVuPTkzNDk7ZS5laWdodGVlbnBlcmlvZD05MzY5O2UuZWlnaHRndWphcmF0aT0yNzk4O2UuZWlnaHRndXJtdWtoaT0yNjcwO2UuZWlnaHRoYWNrYXJhYmljPTE2NDA7ZS5laWdodGhhbmd6aG91PTEyMzI4O2UuZWlnaHRobm90ZWJlYW1lZD05ODM1O2UuZWlnaHRpZGVvZ3JhcGhpY3BhcmVuPTEyODM5O2UuZWlnaHRpbmZlcmlvcj04MzI4O2UuZWlnaHRtb25vc3BhY2U9NjUzMDQ7ZS5laWdodG9sZHN0eWxlPTYzMjg4O2UuZWlnaHRwYXJlbj05MzM5O2UuZWlnaHRwZXJpb2Q9OTM1OTtlLmVpZ2h0cGVyc2lhbj0xNzg0O2UuZWlnaHRyb21hbj04NTY3O2UuZWlnaHRzdXBlcmlvcj04MzEyO2UuZWlnaHR0aGFpPTM2NzI7ZS5laW52ZXJ0ZWRicmV2ZT01MTk7ZS5laW90aWZpZWRjeXJpbGxpYz0xMTI1O2UuZWthdGFrYW5hPTEyNDU2O2UuZWthdGFrYW5haGFsZndpZHRoPTY1Mzk2O2UuZWtvbmthcmd1cm11a2hpPTI2NzY7ZS5la29yZWFuPTEyNjI4O2UuZWxjeXJpbGxpYz0xMDgzO2UuZWxlbWVudD04NzEyO2UuZWxldmVuY2lyY2xlPTkzMjI7ZS5lbGV2ZW5wYXJlbj05MzQyO2UuZWxldmVucGVyaW9kPTkzNjI7ZS5lbGV2ZW5yb21hbj04NTcwO2UuZWxsaXBzaXM9ODIzMDtlLmVsbGlwc2lzdmVydGljYWw9ODk0MjtlLmVtYWNyb249Mjc1O2UuZW1hY3JvbmFjdXRlPTc3MDM7ZS5lbWFjcm9uZ3JhdmU9NzcwMTtlLmVtY3lyaWxsaWM9MTA4NDtlLmVtZGFzaD04MjEyO2UuZW1kYXNodmVydGljYWw9NjUwNzM7ZS5lbW9ub3NwYWNlPTY1MzQ5O2UuZW1waGFzaXNtYXJrYXJtZW5pYW49MTM3MTtlLmVtcHR5c2V0PTg3MDk7ZS5lbmJvcG9tb2ZvPTEyNTc5O2UuZW5jeXJpbGxpYz0xMDg1O2UuZW5kYXNoPTgyMTE7ZS5lbmRhc2h2ZXJ0aWNhbD02NTA3NDtlLmVuZGVzY2VuZGVyY3lyaWxsaWM9MTE4NztlLmVuZz0zMzE7ZS5lbmdib3BvbW9mbz0xMjU4MTtlLmVuZ2hlY3lyaWxsaWM9MTE4OTtlLmVuaG9va2N5cmlsbGljPTEyMjQ7ZS5lbnNwYWNlPTgxOTQ7ZS5lb2dvbmVrPTI4MTtlLmVva29yZWFuPTEyNjI3O2UuZW9wZW49NjAzO2UuZW9wZW5jbG9zZWQ9NjY2O2UuZW9wZW5yZXZlcnNlZD02MDQ7ZS5lb3BlbnJldmVyc2VkY2xvc2VkPTYwNjtlLmVvcGVucmV2ZXJzZWRob29rPTYwNTtlLmVwYXJlbj05Mzc2O2UuZXBzaWxvbj05NDk7ZS5lcHNpbG9udG9ub3M9OTQxO2UuZXF1YWw9NjE7ZS5lcXVhbG1vbm9zcGFjZT02NTMwOTtlLmVxdWFsc21hbGw9NjUxMjY7ZS5lcXVhbHN1cGVyaW9yPTgzMTY7ZS5lcXVpdmFsZW5jZT04ODAxO2UuZXJib3BvbW9mbz0xMjU4MjtlLmVyY3lyaWxsaWM9MTA4ODtlLmVyZXZlcnNlZD02MDA7ZS5lcmV2ZXJzZWRjeXJpbGxpYz0xMTAxO2UuZXNjeXJpbGxpYz0xMDg5O2UuZXNkZXNjZW5kZXJjeXJpbGxpYz0xMTk1O2UuZXNoPTY0MztlLmVzaGN1cmw9NjQ2O2UuZXNob3J0ZGV2YT0yMzE4O2UuZXNob3J0dm93ZWxzaWduZGV2YT0yMzc0O2UuZXNocmV2ZXJzZWRsb29wPTQyNjtlLmVzaHNxdWF0cmV2ZXJzZWQ9NjQ1O2UuZXNtYWxsaGlyYWdhbmE9MTIzNTk7ZS5lc21hbGxrYXRha2FuYT0xMjQ1NTtlLmVzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg2O2UuZXN0aW1hdGVkPTg0OTQ7ZS5lc3VwZXJpb3I9NjMyMTI7ZS5ldGE9OTUxO2UuZXRhcm1lbmlhbj0xMzg0O2UuZXRhdG9ub3M9OTQyO2UuZXRoPTI0MDtlLmV0aWxkZT03ODY5O2UuZXRpbGRlYmVsb3c9NzcwNztlLmV0bmFodGFmb3VraGhlYnJldz0xNDI1O2UuZXRuYWh0YWZvdWtobGVmdGhlYnJldz0xNDI1O2UuZXRuYWh0YWhlYnJldz0xNDI1O2UuZXRuYWh0YWxlZnRoZWJyZXc9MTQyNTtlLmV0dXJuZWQ9NDc3O2UuZXVrb3JlYW49MTI2NDE7ZS5ldXJvPTgzNjQ7ZS5ldm93ZWxzaWduYmVuZ2FsaT0yNTAzO2UuZXZvd2Vsc2lnbmRldmE9MjM3NTtlLmV2b3dlbHNpZ25ndWphcmF0aT0yNzU5O2UuZXhjbGFtPTMzO2UuZXhjbGFtYXJtZW5pYW49MTM3MjtlLmV4Y2xhbWRibD04MjUyO2UuZXhjbGFtZG93bj0xNjE7ZS5leGNsYW1kb3duc21hbGw9NjMzOTM7ZS5leGNsYW1tb25vc3BhY2U9NjUyODE7ZS5leGNsYW1zbWFsbD02MzI2NTtlLmV4aXN0ZW50aWFsPTg3MDc7ZS5lemg9NjU4O2UuZXpoY2Fyb249NDk1O2UuZXpoY3VybD02NTk7ZS5lemhyZXZlcnNlZD00NDE7ZS5lemh0YWlsPTQ0MjtlLmY9MTAyO2UuZmFkZXZhPTIzOTg7ZS5mYWd1cm11a2hpPTI2NTQ7ZS5mYWhyZW5oZWl0PTg0NTc7ZS5mYXRoYWFyYWJpYz0xNjE0O2UuZmF0aGFsb3dhcmFiaWM9MTYxNDtlLmZhdGhhdGFuYXJhYmljPTE2MTE7ZS5mYm9wb21vZm89MTI1NTI7ZS5mY2lyY2xlPTk0Mjk7ZS5mZG90YWNjZW50PTc3MTE7ZS5mZWhhcmFiaWM9MTYwMTtlLmZlaGFybWVuaWFuPTE0MTQ7ZS5mZWhmaW5hbGFyYWJpYz02NTIzNDtlLmZlaGluaXRpYWxhcmFiaWM9NjUyMzU7ZS5mZWhtZWRpYWxhcmFiaWM9NjUyMzY7ZS5mZWljb3B0aWM9OTk3O2UuZmVtYWxlPTk3OTI7ZS5mZj02NDI1NjtlLmZfZj02NDI1NjtlLmZmaT02NDI1OTtlLmZfZl9pPTY0MjU5O2UuZmZsPTY0MjYwO2UuZl9mX2w9NjQyNjA7ZS5maT02NDI1NztlLmZfaT02NDI1NztlLmZpZnRlZW5jaXJjbGU9OTMyNjtlLmZpZnRlZW5wYXJlbj05MzQ2O2UuZmlmdGVlbnBlcmlvZD05MzY2O2UuZmlndXJlZGFzaD04MjEwO2UuZmlsbGVkYm94PTk2MzI7ZS5maWxsZWRyZWN0PTk2NDQ7ZS5maW5hbGthZj0xNDk4O2UuZmluYWxrYWZkYWdlc2g9NjQzMTQ7ZS5maW5hbGthZmRhZ2VzaGhlYnJldz02NDMxNDtlLmZpbmFsa2FmaGVicmV3PTE0OTg7ZS5maW5hbG1lbT0xNTAxO2UuZmluYWxtZW1oZWJyZXc9MTUwMTtlLmZpbmFsbnVuPTE1MDM7ZS5maW5hbG51bmhlYnJldz0xNTAzO2UuZmluYWxwZT0xNTA3O2UuZmluYWxwZWhlYnJldz0xNTA3O2UuZmluYWx0c2FkaT0xNTA5O2UuZmluYWx0c2FkaWhlYnJldz0xNTA5O2UuZmlyc3R0b25lY2hpbmVzZT03MTM7ZS5maXNoZXllPTk2NzM7ZS5maXRhY3lyaWxsaWM9MTEzOTtlLmZpdmU9NTM7ZS5maXZlYXJhYmljPTE2Mzc7ZS5maXZlYmVuZ2FsaT0yNTM5O2UuZml2ZWNpcmNsZT05MzE2O2UuZml2ZWNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjY7ZS5maXZlZGV2YT0yNDExO2UuZml2ZWVpZ2h0aHM9ODU0MTtlLmZpdmVndWphcmF0aT0yNzk1O2UuZml2ZWd1cm11a2hpPTI2Njc7ZS5maXZlaGFja2FyYWJpYz0xNjM3O2UuZml2ZWhhbmd6aG91PTEyMzI1O2UuZml2ZWlkZW9ncmFwaGljcGFyZW49MTI4MzY7ZS5maXZlaW5mZXJpb3I9ODMyNTtlLmZpdmVtb25vc3BhY2U9NjUzMDE7ZS5maXZlb2xkc3R5bGU9NjMyODU7ZS5maXZlcGFyZW49OTMzNjtlLmZpdmVwZXJpb2Q9OTM1NjtlLmZpdmVwZXJzaWFuPTE3ODE7ZS5maXZlcm9tYW49ODU2NDtlLmZpdmVzdXBlcmlvcj04MzA5O2UuZml2ZXRoYWk9MzY2OTtlLmZsPTY0MjU4O2UuZl9sPTY0MjU4O2UuZmxvcmluPTQwMjtlLmZtb25vc3BhY2U9NjUzNTA7ZS5mbXNxdWFyZT0xMzIwOTtlLmZvZmFudGhhaT0zNjE1O2UuZm9mYXRoYWk9MzYxMztlLmZvbmdtYW50aGFpPTM2NjM7ZS5mb3JhbGw9ODcwNDtlLmZvdXI9NTI7ZS5mb3VyYXJhYmljPTE2MzY7ZS5mb3VyYmVuZ2FsaT0yNTM4O2UuZm91cmNpcmNsZT05MzE1O2UuZm91cmNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjU7ZS5mb3VyZGV2YT0yNDEwO2UuZm91cmd1amFyYXRpPTI3OTQ7ZS5mb3VyZ3VybXVraGk9MjY2NjtlLmZvdXJoYWNrYXJhYmljPTE2MzY7ZS5mb3VyaGFuZ3pob3U9MTIzMjQ7ZS5mb3VyaWRlb2dyYXBoaWNwYXJlbj0xMjgzNTtlLmZvdXJpbmZlcmlvcj04MzI0O2UuZm91cm1vbm9zcGFjZT02NTMwMDtlLmZvdXJudW1lcmF0b3JiZW5nYWxpPTI1NTE7ZS5mb3Vyb2xkc3R5bGU9NjMyODQ7ZS5mb3VycGFyZW49OTMzNTtlLmZvdXJwZXJpb2Q9OTM1NTtlLmZvdXJwZXJzaWFuPTE3ODA7ZS5mb3Vycm9tYW49ODU2MztlLmZvdXJzdXBlcmlvcj04MzA4O2UuZm91cnRlZW5jaXJjbGU9OTMyNTtlLmZvdXJ0ZWVucGFyZW49OTM0NTtlLmZvdXJ0ZWVucGVyaW9kPTkzNjU7ZS5mb3VydGhhaT0zNjY4O2UuZm91cnRodG9uZWNoaW5lc2U9NzE1O2UuZnBhcmVuPTkzNzc7ZS5mcmFjdGlvbj04MjYwO2UuZnJhbmM9ODM1NTtlLmc9MTAzO2UuZ2FiZW5nYWxpPTI0NTU7ZS5nYWN1dGU9NTAxO2UuZ2FkZXZhPTIzMjc7ZS5nYWZhcmFiaWM9MTcxMTtlLmdhZmZpbmFsYXJhYmljPTY0NDAzO2UuZ2FmaW5pdGlhbGFyYWJpYz02NDQwNDtlLmdhZm1lZGlhbGFyYWJpYz02NDQwNTtlLmdhZ3VqYXJhdGk9MjcxMTtlLmdhZ3VybXVraGk9MjU4MztlLmdhaGlyYWdhbmE9MTIzNjQ7ZS5nYWthdGFrYW5hPTEyNDYwO2UuZ2FtbWE9OTQ3O2UuZ2FtbWFsYXRpbnNtYWxsPTYxMTtlLmdhbW1hc3VwZXJpb3I9NzM2O2UuZ2FuZ2lhY29wdGljPTEwMDM7ZS5nYm9wb21vZm89MTI1NTc7ZS5nYnJldmU9Mjg3O2UuZ2Nhcm9uPTQ4NztlLmdjZWRpbGxhPTI5MTtlLmdjaXJjbGU9OTQzMDtlLmdjaXJjdW1mbGV4PTI4NTtlLmdjb21tYWFjY2VudD0yOTE7ZS5nZG90PTI4OTtlLmdkb3RhY2NlbnQ9Mjg5O2UuZ2VjeXJpbGxpYz0xMDc1O2UuZ2VoaXJhZ2FuYT0xMjM3MDtlLmdla2F0YWthbmE9MTI0NjY7ZS5nZW9tZXRyaWNhbGx5ZXF1YWw9ODc4NTtlLmdlcmVzaGFjY2VudGhlYnJldz0xNDM2O2UuZ2VyZXNoaGVicmV3PTE1MjM7ZS5nZXJlc2htdXFkYW1oZWJyZXc9MTQzNztlLmdlcm1hbmRibHM9MjIzO2UuZ2Vyc2hheWltYWNjZW50aGVicmV3PTE0Mzg7ZS5nZXJzaGF5aW1oZWJyZXc9MTUyNDtlLmdldGFtYXJrPTEyMzA3O2UuZ2hhYmVuZ2FsaT0yNDU2O2UuZ2hhZGFybWVuaWFuPTEzOTQ7ZS5naGFkZXZhPTIzMjg7ZS5naGFndWphcmF0aT0yNzEyO2UuZ2hhZ3VybXVraGk9MjU4NDtlLmdoYWluYXJhYmljPTE1OTQ7ZS5naGFpbmZpbmFsYXJhYmljPTY1MjMwO2UuZ2hhaW5pbml0aWFsYXJhYmljPTY1MjMxO2UuZ2hhaW5tZWRpYWxhcmFiaWM9NjUyMzI7ZS5naGVtaWRkbGVob29rY3lyaWxsaWM9MTE3MztlLmdoZXN0cm9rZWN5cmlsbGljPTExNzE7ZS5naGV1cHR1cm5jeXJpbGxpYz0xMTY5O2UuZ2hoYWRldmE9MjM5NDtlLmdoaGFndXJtdWtoaT0yNjUwO2UuZ2hvb2s9NjA4O2UuZ2h6c3F1YXJlPTEzMjAzO2UuZ2loaXJhZ2FuYT0xMjM2NjtlLmdpa2F0YWthbmE9MTI0NjI7ZS5naW1hcm1lbmlhbj0xMzc5O2UuZ2ltZWw9MTQ5MDtlLmdpbWVsZGFnZXNoPTY0MzA2O2UuZ2ltZWxkYWdlc2hoZWJyZXc9NjQzMDY7ZS5naW1lbGhlYnJldz0xNDkwO2UuZ2plY3lyaWxsaWM9MTEwNztlLmdsb3R0YWxpbnZlcnRlZHN0cm9rZT00NDY7ZS5nbG90dGFsc3RvcD02NjA7ZS5nbG90dGFsc3RvcGludmVydGVkPTY2MjtlLmdsb3R0YWxzdG9wbW9kPTcwNDtlLmdsb3R0YWxzdG9wcmV2ZXJzZWQ9NjYxO2UuZ2xvdHRhbHN0b3ByZXZlcnNlZG1vZD03MDU7ZS5nbG90dGFsc3RvcHJldmVyc2Vkc3VwZXJpb3I9NzQwO2UuZ2xvdHRhbHN0b3BzdHJva2U9NjczO2UuZ2xvdHRhbHN0b3BzdHJva2VyZXZlcnNlZD02NzQ7ZS5nbWFjcm9uPTc3MTM7ZS5nbW9ub3NwYWNlPTY1MzUxO2UuZ29oaXJhZ2FuYT0xMjM3MjtlLmdva2F0YWthbmE9MTI0Njg7ZS5ncGFyZW49OTM3ODtlLmdwYXNxdWFyZT0xMzIyODtlLmdyYWRpZW50PTg3MTE7ZS5ncmF2ZT05NjtlLmdyYXZlYmVsb3djbWI9NzkwO2UuZ3JhdmVjbWI9NzY4O2UuZ3JhdmVjb21iPTc2ODtlLmdyYXZlZGV2YT0yMzg3O2UuZ3JhdmVsb3dtb2Q9NzE4O2UuZ3JhdmVtb25vc3BhY2U9NjUzNDQ7ZS5ncmF2ZXRvbmVjbWI9ODMyO2UuZ3JlYXRlcj02MjtlLmdyZWF0ZXJlcXVhbD04ODA1O2UuZ3JlYXRlcmVxdWFsb3JsZXNzPTg5MjM7ZS5ncmVhdGVybW9ub3NwYWNlPTY1MzEwO2UuZ3JlYXRlcm9yZXF1aXZhbGVudD04ODE5O2UuZ3JlYXRlcm9ybGVzcz04ODIzO2UuZ3JlYXRlcm92ZXJlcXVhbD04ODA3O2UuZ3JlYXRlcnNtYWxsPTY1MTI1O2UuZ3NjcmlwdD02MDk7ZS5nc3Ryb2tlPTQ4NTtlLmd1aGlyYWdhbmE9MTIzNjg7ZS5ndWlsbGVtb3RsZWZ0PTE3MTtlLmd1aWxsZW1vdHJpZ2h0PTE4NztlLmd1aWxzaW5nbGxlZnQ9ODI0OTtlLmd1aWxzaW5nbHJpZ2h0PTgyNTA7ZS5ndWthdGFrYW5hPTEyNDY0O2UuZ3VyYW11c3F1YXJlPTEzMDgwO2UuZ3lzcXVhcmU9MTMyNTc7ZS5oPTEwNDtlLmhhYWJraGFzaWFuY3lyaWxsaWM9MTE5MztlLmhhYWx0b25lYXJhYmljPTE3Mjk7ZS5oYWJlbmdhbGk9MjQ4OTtlLmhhZGVzY2VuZGVyY3lyaWxsaWM9MTIwMztlLmhhZGV2YT0yMzYxO2UuaGFndWphcmF0aT0yNzQ1O2UuaGFndXJtdWtoaT0yNjE3O2UuaGFoYXJhYmljPTE1ODE7ZS5oYWhmaW5hbGFyYWJpYz02NTE4NjtlLmhhaGluaXRpYWxhcmFiaWM9NjUxODc7ZS5oYWhpcmFnYW5hPTEyMzk5O2UuaGFobWVkaWFsYXJhYmljPTY1MTg4O2UuaGFpdHVzcXVhcmU9MTMwOTg7ZS5oYWthdGFrYW5hPTEyNDk1O2UuaGFrYXRha2FuYWhhbGZ3aWR0aD02NTQxODtlLmhhbGFudGd1cm11a2hpPTI2Mzc7ZS5oYW16YWFyYWJpYz0xNTY5O2UuaGFtemFsb3dhcmFiaWM9MTU2OTtlLmhhbmd1bGZpbGxlcj0xMjY0NDtlLmhhcmRzaWduY3lyaWxsaWM9MTA5ODtlLmhhcnBvb25sZWZ0YmFyYnVwPTg2MzY7ZS5oYXJwb29ucmlnaHRiYXJidXA9ODY0MDtlLmhhc3F1YXJlPTEzMjU4O2UuaGF0YWZwYXRhaD0xNDU4O2UuaGF0YWZwYXRhaDE2PTE0NTg7ZS5oYXRhZnBhdGFoMjM9MTQ1ODtlLmhhdGFmcGF0YWgyZj0xNDU4O2UuaGF0YWZwYXRhaGhlYnJldz0xNDU4O2UuaGF0YWZwYXRhaG5hcnJvd2hlYnJldz0xNDU4O2UuaGF0YWZwYXRhaHF1YXJ0ZXJoZWJyZXc9MTQ1ODtlLmhhdGFmcGF0YWh3aWRlaGVicmV3PTE0NTg7ZS5oYXRhZnFhbWF0cz0xNDU5O2UuaGF0YWZxYW1hdHMxYj0xNDU5O2UuaGF0YWZxYW1hdHMyOD0xNDU5O2UuaGF0YWZxYW1hdHMzND0xNDU5O2UuaGF0YWZxYW1hdHNoZWJyZXc9MTQ1OTtlLmhhdGFmcWFtYXRzbmFycm93aGVicmV3PTE0NTk7ZS5oYXRhZnFhbWF0c3F1YXJ0ZXJoZWJyZXc9MTQ1OTtlLmhhdGFmcWFtYXRzd2lkZWhlYnJldz0xNDU5O2UuaGF0YWZzZWdvbD0xNDU3O2UuaGF0YWZzZWdvbDE3PTE0NTc7ZS5oYXRhZnNlZ29sMjQ9MTQ1NztlLmhhdGFmc2Vnb2wzMD0xNDU3O2UuaGF0YWZzZWdvbGhlYnJldz0xNDU3O2UuaGF0YWZzZWdvbG5hcnJvd2hlYnJldz0xNDU3O2UuaGF0YWZzZWdvbHF1YXJ0ZXJoZWJyZXc9MTQ1NztlLmhhdGFmc2Vnb2x3aWRlaGVicmV3PTE0NTc7ZS5oYmFyPTI5NTtlLmhib3BvbW9mbz0xMjU1OTtlLmhicmV2ZWJlbG93PTc3MjM7ZS5oY2VkaWxsYT03NzIxO2UuaGNpcmNsZT05NDMxO2UuaGNpcmN1bWZsZXg9MjkzO2UuaGRpZXJlc2lzPTc3MTk7ZS5oZG90YWNjZW50PTc3MTU7ZS5oZG90YmVsb3c9NzcxNztlLmhlPTE0OTI7ZS5oZWFydD05ODI5O2UuaGVhcnRzdWl0YmxhY2s9OTgyOTtlLmhlYXJ0c3VpdHdoaXRlPTk4MjU7ZS5oZWRhZ2VzaD02NDMwODtlLmhlZGFnZXNoaGVicmV3PTY0MzA4O2UuaGVoYWx0b25lYXJhYmljPTE3Mjk7ZS5oZWhhcmFiaWM9MTYwNztlLmhlaGVicmV3PTE0OTI7ZS5oZWhmaW5hbGFsdG9uZWFyYWJpYz02NDQyMztlLmhlaGZpbmFsYWx0dHdvYXJhYmljPTY1MjU4O2UuaGVoZmluYWxhcmFiaWM9NjUyNTg7ZS5oZWhoYW16YWFib3ZlZmluYWxhcmFiaWM9NjQ0MjE7ZS5oZWhoYW16YWFib3ZlaXNvbGF0ZWRhcmFiaWM9NjQ0MjA7ZS5oZWhpbml0aWFsYWx0b25lYXJhYmljPTY0NDI0O2UuaGVoaW5pdGlhbGFyYWJpYz02NTI1OTtlLmhlaGlyYWdhbmE9MTI0MDg7ZS5oZWhtZWRpYWxhbHRvbmVhcmFiaWM9NjQ0MjU7ZS5oZWhtZWRpYWxhcmFiaWM9NjUyNjA7ZS5oZWlzZWllcmFzcXVhcmU9MTMxNzk7ZS5oZWthdGFrYW5hPTEyNTA0O2UuaGVrYXRha2FuYWhhbGZ3aWR0aD02NTQyMTtlLmhla3V0YWFydXNxdWFyZT0xMzExMDtlLmhlbmdob29rPTYxNTtlLmhlcnV0dXNxdWFyZT0xMzExMztlLmhldD0xNDk1O2UuaGV0aGVicmV3PTE0OTU7ZS5oaG9vaz02MTQ7ZS5oaG9va3N1cGVyaW9yPTY4OTtlLmhpZXVoYWNpcmNsZWtvcmVhbj0xMjkyMztlLmhpZXVoYXBhcmVua29yZWFuPTEyODI3O2UuaGlldWhjaXJjbGVrb3JlYW49MTI5MDk7ZS5oaWV1aGtvcmVhbj0xMjYyMjtlLmhpZXVocGFyZW5rb3JlYW49MTI4MTM7ZS5oaWhpcmFnYW5hPTEyNDAyO2UuaGlrYXRha2FuYT0xMjQ5ODtlLmhpa2F0YWthbmFoYWxmd2lkdGg9NjU0MTk7ZS5oaXJpcT0xNDYwO2UuaGlyaXExND0xNDYwO2UuaGlyaXEyMT0xNDYwO2UuaGlyaXEyZD0xNDYwO2UuaGlyaXFoZWJyZXc9MTQ2MDtlLmhpcmlxbmFycm93aGVicmV3PTE0NjA7ZS5oaXJpcXF1YXJ0ZXJoZWJyZXc9MTQ2MDtlLmhpcmlxd2lkZWhlYnJldz0xNDYwO2UuaGxpbmViZWxvdz03ODMwO2UuaG1vbm9zcGFjZT02NTM1MjtlLmhvYXJtZW5pYW49MTM5MjtlLmhvaGlwdGhhaT0zNjI3O2UuaG9oaXJhZ2FuYT0xMjQxMTtlLmhva2F0YWthbmE9MTI1MDc7ZS5ob2thdGFrYW5haGFsZndpZHRoPTY1NDIyO2UuaG9sYW09MTQ2NTtlLmhvbGFtMTk9MTQ2NTtlLmhvbGFtMjY9MTQ2NTtlLmhvbGFtMzI9MTQ2NTtlLmhvbGFtaGVicmV3PTE0NjU7ZS5ob2xhbW5hcnJvd2hlYnJldz0xNDY1O2UuaG9sYW1xdWFydGVyaGVicmV3PTE0NjU7ZS5ob2xhbXdpZGVoZWJyZXc9MTQ2NTtlLmhvbm9raHVrdGhhaT0zNjMwO2UuaG9va2Fib3ZlY29tYj03Nzc7ZS5ob29rY21iPTc3NztlLmhvb2twYWxhdGFsaXplZGJlbG93Y21iPTgwMTtlLmhvb2tyZXRyb2ZsZXhiZWxvd2NtYj04MDI7ZS5ob29uc3F1YXJlPTEzMTIyO2UuaG9yaWNvcHRpYz0xMDAxO2UuaG9yaXpvbnRhbGJhcj04MjEzO2UuaG9ybmNtYj03OTU7ZS5ob3RzcHJpbmdzPTk4MzI7ZS5ob3VzZT04OTYyO2UuaHBhcmVuPTkzNzk7ZS5oc3VwZXJpb3I9Njg4O2UuaHR1cm5lZD02MTM7ZS5odWhpcmFnYW5hPTEyNDA1O2UuaHVpaXRvc3F1YXJlPTEzMTA3O2UuaHVrYXRha2FuYT0xMjUwMTtlLmh1a2F0YWthbmFoYWxmd2lkdGg9NjU0MjA7ZS5odW5nYXJ1bWxhdXQ9NzMzO2UuaHVuZ2FydW1sYXV0Y21iPTc3OTtlLmh2PTQwNTtlLmh5cGhlbj00NTtlLmh5cGhlbmluZmVyaW9yPTYzMjA1O2UuaHlwaGVubW9ub3NwYWNlPTY1MjkzO2UuaHlwaGVuc21hbGw9NjUxMjM7ZS5oeXBoZW5zdXBlcmlvcj02MzIwNjtlLmh5cGhlbnR3bz04MjA4O2UuaT0xMDU7ZS5pYWN1dGU9MjM3O2UuaWFjeXJpbGxpYz0xMTAzO2UuaWJlbmdhbGk9MjQzOTtlLmlib3BvbW9mbz0xMjU4MztlLmlicmV2ZT0zMDE7ZS5pY2Fyb249NDY0O2UuaWNpcmNsZT05NDMyO2UuaWNpcmN1bWZsZXg9MjM4O2UuaWN5cmlsbGljPTExMTA7ZS5pZGJsZ3JhdmU9NTIxO2UuaWRlb2dyYXBoZWFydGhjaXJjbGU9MTI5NDM7ZS5pZGVvZ3JhcGhmaXJlY2lyY2xlPTEyOTM5O2UuaWRlb2dyYXBoaWNhbGxpYW5jZXBhcmVuPTEyODYzO2UuaWRlb2dyYXBoaWNjYWxscGFyZW49MTI4NTg7ZS5pZGVvZ3JhcGhpY2NlbnRyZWNpcmNsZT0xMjk2NTtlLmlkZW9ncmFwaGljY2xvc2U9MTIyOTQ7ZS5pZGVvZ3JhcGhpY2NvbW1hPTEyMjg5O2UuaWRlb2dyYXBoaWNjb21tYWxlZnQ9NjUzODA7ZS5pZGVvZ3JhcGhpY2NvbmdyYXR1bGF0aW9ucGFyZW49MTI4NTU7ZS5pZGVvZ3JhcGhpY2NvcnJlY3RjaXJjbGU9MTI5NjM7ZS5pZGVvZ3JhcGhpY2VhcnRocGFyZW49MTI4NDc7ZS5pZGVvZ3JhcGhpY2VudGVycHJpc2VwYXJlbj0xMjg2MTtlLmlkZW9ncmFwaGljZXhjZWxsZW50Y2lyY2xlPTEyOTU3O2UuaWRlb2dyYXBoaWNmZXN0aXZhbHBhcmVuPTEyODY0O2UuaWRlb2dyYXBoaWNmaW5hbmNpYWxjaXJjbGU9MTI5NTA7ZS5pZGVvZ3JhcGhpY2ZpbmFuY2lhbHBhcmVuPTEyODU0O2UuaWRlb2dyYXBoaWNmaXJlcGFyZW49MTI4NDM7ZS5pZGVvZ3JhcGhpY2hhdmVwYXJlbj0xMjg1MDtlLmlkZW9ncmFwaGljaGlnaGNpcmNsZT0xMjk2NDtlLmlkZW9ncmFwaGljaXRlcmF0aW9ubWFyaz0xMjI5MztlLmlkZW9ncmFwaGljbGFib3JjaXJjbGU9MTI5NTI7ZS5pZGVvZ3JhcGhpY2xhYm9ycGFyZW49MTI4NTY7ZS5pZGVvZ3JhcGhpY2xlZnRjaXJjbGU9MTI5Njc7ZS5pZGVvZ3JhcGhpY2xvd2NpcmNsZT0xMjk2NjtlLmlkZW9ncmFwaGljbWVkaWNpbmVjaXJjbGU9MTI5Njk7ZS5pZGVvZ3JhcGhpY21ldGFscGFyZW49MTI4NDY7ZS5pZGVvZ3JhcGhpY21vb25wYXJlbj0xMjg0MjtlLmlkZW9ncmFwaGljbmFtZXBhcmVuPTEyODUyO2UuaWRlb2dyYXBoaWNwZXJpb2Q9MTIyOTA7ZS5pZGVvZ3JhcGhpY3ByaW50Y2lyY2xlPTEyOTU4O2UuaWRlb2dyYXBoaWNyZWFjaHBhcmVuPTEyODY3O2UuaWRlb2dyYXBoaWNyZXByZXNlbnRwYXJlbj0xMjg1NztlLmlkZW9ncmFwaGljcmVzb3VyY2VwYXJlbj0xMjg2MjtlLmlkZW9ncmFwaGljcmlnaHRjaXJjbGU9MTI5Njg7ZS5pZGVvZ3JhcGhpY3NlY3JldGNpcmNsZT0xMjk1MztlLmlkZW9ncmFwaGljc2VsZnBhcmVuPTEyODY2O2UuaWRlb2dyYXBoaWNzb2NpZXR5cGFyZW49MTI4NTE7ZS5pZGVvZ3JhcGhpY3NwYWNlPTEyMjg4O2UuaWRlb2dyYXBoaWNzcGVjaWFscGFyZW49MTI4NTM7ZS5pZGVvZ3JhcGhpY3N0b2NrcGFyZW49MTI4NDk7ZS5pZGVvZ3JhcGhpY3N0dWR5cGFyZW49MTI4NTk7ZS5pZGVvZ3JhcGhpY3N1bnBhcmVuPTEyODQ4O2UuaWRlb2dyYXBoaWNzdXBlcnZpc2VwYXJlbj0xMjg2MDtlLmlkZW9ncmFwaGljd2F0ZXJwYXJlbj0xMjg0NDtlLmlkZW9ncmFwaGljd29vZHBhcmVuPTEyODQ1O2UuaWRlb2dyYXBoaWN6ZXJvPTEyMjk1O2UuaWRlb2dyYXBobWV0YWxjaXJjbGU9MTI5NDI7ZS5pZGVvZ3JhcGhtb29uY2lyY2xlPTEyOTM4O2UuaWRlb2dyYXBobmFtZWNpcmNsZT0xMjk0ODtlLmlkZW9ncmFwaHN1bmNpcmNsZT0xMjk0NDtlLmlkZW9ncmFwaHdhdGVyY2lyY2xlPTEyOTQwO2UuaWRlb2dyYXBod29vZGNpcmNsZT0xMjk0MTtlLmlkZXZhPTIzMTE7ZS5pZGllcmVzaXM9MjM5O2UuaWRpZXJlc2lzYWN1dGU9NzcyNztlLmlkaWVyZXNpc2N5cmlsbGljPTEyNTM7ZS5pZG90YmVsb3c9Nzg4MztlLmllYnJldmVjeXJpbGxpYz0xMjM5O2UuaWVjeXJpbGxpYz0xMDc3O2UuaWV1bmdhY2lyY2xla29yZWFuPTEyOTE3O2UuaWV1bmdhcGFyZW5rb3JlYW49MTI4MjE7ZS5pZXVuZ2NpcmNsZWtvcmVhbj0xMjkwMztlLmlldW5na29yZWFuPTEyNjE1O2UuaWV1bmdwYXJlbmtvcmVhbj0xMjgwNztlLmlncmF2ZT0yMzY7ZS5pZ3VqYXJhdGk9MjY5NTtlLmlndXJtdWtoaT0yNTY3O2UuaWhpcmFnYW5hPTEyMzU2O2UuaWhvb2thYm92ZT03ODgxO2UuaWliZW5nYWxpPTI0NDA7ZS5paWN5cmlsbGljPTEwODA7ZS5paWRldmE9MjMxMjtlLmlpZ3VqYXJhdGk9MjY5NjtlLmlpZ3VybXVraGk9MjU2ODtlLmlpbWF0cmFndXJtdWtoaT0yNjI0O2UuaWludmVydGVkYnJldmU9NTIzO2UuaWlzaG9ydGN5cmlsbGljPTEwODE7ZS5paXZvd2Vsc2lnbmJlbmdhbGk9MjQ5NjtlLmlpdm93ZWxzaWduZGV2YT0yMzY4O2UuaWl2b3dlbHNpZ25ndWphcmF0aT0yNzUyO2UuaWo9MzA3O2UuaWthdGFrYW5hPTEyNDUyO2UuaWthdGFrYW5haGFsZndpZHRoPTY1Mzk0O2UuaWtvcmVhbj0xMjY0MztlLmlsZGU9NzMyO2UuaWx1eWhlYnJldz0xNDUyO2UuaW1hY3Jvbj0yOTk7ZS5pbWFjcm9uY3lyaWxsaWM9MTI1MTtlLmltYWdlb3JhcHByb3hpbWF0ZWx5ZXF1YWw9ODc4NztlLmltYXRyYWd1cm11a2hpPTI2MjM7ZS5pbW9ub3NwYWNlPTY1MzUzO2UuaW5jcmVtZW50PTg3MTA7ZS5pbmZpbml0eT04NzM0O2UuaW5pYXJtZW5pYW49MTM4NztlLmludGVncmFsPTg3NDc7ZS5pbnRlZ3JhbGJvdHRvbT04OTkzO2UuaW50ZWdyYWxidD04OTkzO2UuaW50ZWdyYWxleD02MzczMztlLmludGVncmFsdG9wPTg5OTI7ZS5pbnRlZ3JhbHRwPTg5OTI7ZS5pbnRlcnNlY3Rpb249ODc0NTtlLmludGlzcXVhcmU9MTMwNjE7ZS5pbnZidWxsZXQ9OTY4ODtlLmludmNpcmNsZT05Njg5O2UuaW52c21pbGVmYWNlPTk3ODc7ZS5pb2N5cmlsbGljPTExMDU7ZS5pb2dvbmVrPTMwMztlLmlvdGE9OTUzO2UuaW90YWRpZXJlc2lzPTk3MDtlLmlvdGFkaWVyZXNpc3Rvbm9zPTkxMjtlLmlvdGFsYXRpbj02MTc7ZS5pb3RhdG9ub3M9OTQzO2UuaXBhcmVuPTkzODA7ZS5pcmlndXJtdWtoaT0yNjc0O2UuaXNtYWxsaGlyYWdhbmE9MTIzNTU7ZS5pc21hbGxrYXRha2FuYT0xMjQ1MTtlLmlzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg0O2UuaXNzaGFyYmVuZ2FsaT0yNTU0O2UuaXN0cm9rZT02MTY7ZS5pc3VwZXJpb3I9NjMyMTM7ZS5pdGVyYXRpb25oaXJhZ2FuYT0xMjQ0NTtlLml0ZXJhdGlvbmthdGFrYW5hPTEyNTQxO2UuaXRpbGRlPTI5NztlLml0aWxkZWJlbG93PTc3MjU7ZS5pdWJvcG9tb2ZvPTEyNTg1O2UuaXVjeXJpbGxpYz0xMTAyO2UuaXZvd2Vsc2lnbmJlbmdhbGk9MjQ5NTtlLml2b3dlbHNpZ25kZXZhPTIzNjc7ZS5pdm93ZWxzaWduZ3VqYXJhdGk9Mjc1MTtlLml6aGl0c2FjeXJpbGxpYz0xMTQxO2UuaXpoaXRzYWRibGdyYXZlY3lyaWxsaWM9MTE0MztlLmo9MTA2O2UuamFhcm1lbmlhbj0xMzkzO2UuamFiZW5nYWxpPTI0NjA7ZS5qYWRldmE9MjMzMjtlLmphZ3VqYXJhdGk9MjcxNjtlLmphZ3VybXVraGk9MjU4ODtlLmpib3BvbW9mbz0xMjU2MDtlLmpjYXJvbj00OTY7ZS5qY2lyY2xlPTk0MzM7ZS5qY2lyY3VtZmxleD0zMDk7ZS5qY3Jvc3NlZHRhaWw9NjY5O2UuamRvdGxlc3NzdHJva2U9NjA3O2UuamVjeXJpbGxpYz0xMTEyO2UuamVlbWFyYWJpYz0xNTgwO2UuamVlbWZpbmFsYXJhYmljPTY1MTgyO2UuamVlbWluaXRpYWxhcmFiaWM9NjUxODM7ZS5qZWVtbWVkaWFsYXJhYmljPTY1MTg0O2UuamVoYXJhYmljPTE2ODg7ZS5qZWhmaW5hbGFyYWJpYz02NDM5NTtlLmpoYWJlbmdhbGk9MjQ2MTtlLmpoYWRldmE9MjMzMztlLmpoYWd1amFyYXRpPTI3MTc7ZS5qaGFndXJtdWtoaT0yNTg5O2UuamhlaGFybWVuaWFuPTE0MDM7ZS5qaXM9MTIyOTI7ZS5qbW9ub3NwYWNlPTY1MzU0O2UuanBhcmVuPTkzODE7ZS5qc3VwZXJpb3I9NjkwO2Uuaz0xMDc7ZS5rYWJhc2hraXJjeXJpbGxpYz0xMTg1O2Uua2FiZW5nYWxpPTI0NTM7ZS5rYWN1dGU9NzcyOTtlLmthY3lyaWxsaWM9MTA4MjtlLmthZGVzY2VuZGVyY3lyaWxsaWM9MTE3OTtlLmthZGV2YT0yMzI1O2Uua2FmPTE0OTk7ZS5rYWZhcmFiaWM9MTYwMztlLmthZmRhZ2VzaD02NDMxNTtlLmthZmRhZ2VzaGhlYnJldz02NDMxNTtlLmthZmZpbmFsYXJhYmljPTY1MjQyO2Uua2FmaGVicmV3PTE0OTk7ZS5rYWZpbml0aWFsYXJhYmljPTY1MjQzO2Uua2FmbWVkaWFsYXJhYmljPTY1MjQ0O2Uua2FmcmFmZWhlYnJldz02NDMzMztlLmthZ3VqYXJhdGk9MjcwOTtlLmthZ3VybXVraGk9MjU4MTtlLmthaGlyYWdhbmE9MTIzNjM7ZS5rYWhvb2tjeXJpbGxpYz0xMjIwO2Uua2FrYXRha2FuYT0xMjQ1OTtlLmtha2F0YWthbmFoYWxmd2lkdGg9NjUzOTg7ZS5rYXBwYT05NTQ7ZS5rYXBwYXN5bWJvbGdyZWVrPTEwMDg7ZS5rYXB5ZW91bm1pZXVta29yZWFuPTEyNjU3O2Uua2FweWVvdW5waGlldXBoa29yZWFuPTEyNjc2O2Uua2FweWVvdW5waWV1cGtvcmVhbj0xMjY2NDtlLmthcHllb3Vuc3NhbmdwaWV1cGtvcmVhbj0xMjY2NTtlLmthcm9yaWlzcXVhcmU9MTMwNjk7ZS5rYXNoaWRhYXV0b2FyYWJpYz0xNjAwO2Uua2FzaGlkYWF1dG9ub3NpZGViZWFyaW5nYXJhYmljPTE2MDA7ZS5rYXNtYWxsa2F0YWthbmE9MTI1MzM7ZS5rYXNxdWFyZT0xMzE4ODtlLmthc3JhYXJhYmljPTE2MTY7ZS5rYXNyYXRhbmFyYWJpYz0xNjEzO2Uua2FzdHJva2VjeXJpbGxpYz0xMTgzO2Uua2F0YWhpcmFwcm9sb25nbWFya2hhbGZ3aWR0aD02NTM5MjtlLmthdmVydGljYWxzdHJva2VjeXJpbGxpYz0xMTgxO2Uua2JvcG9tb2ZvPTEyNTU4O2Uua2NhbHNxdWFyZT0xMzE5MztlLmtjYXJvbj00ODk7ZS5rY2VkaWxsYT0zMTE7ZS5rY2lyY2xlPTk0MzQ7ZS5rY29tbWFhY2NlbnQ9MzExO2Uua2RvdGJlbG93PTc3MzE7ZS5rZWhhcm1lbmlhbj0xNDEyO2Uua2VoaXJhZ2FuYT0xMjM2OTtlLmtla2F0YWthbmE9MTI0NjU7ZS5rZWthdGFrYW5haGFsZndpZHRoPTY1NDAxO2Uua2VuYXJtZW5pYW49MTM5MTtlLmtlc21hbGxrYXRha2FuYT0xMjUzNDtlLmtncmVlbmxhbmRpYz0zMTI7ZS5raGFiZW5nYWxpPTI0NTQ7ZS5raGFjeXJpbGxpYz0xMDkzO2Uua2hhZGV2YT0yMzI2O2Uua2hhZ3VqYXJhdGk9MjcxMDtlLmtoYWd1cm11a2hpPTI1ODI7ZS5raGFoYXJhYmljPTE1ODI7ZS5raGFoZmluYWxhcmFiaWM9NjUxOTA7ZS5raGFoaW5pdGlhbGFyYWJpYz02NTE5MTtlLmtoYWhtZWRpYWxhcmFiaWM9NjUxOTI7ZS5raGVpY29wdGljPTk5OTtlLmtoaGFkZXZhPTIzOTM7ZS5raGhhZ3VybXVraGk9MjY0OTtlLmtoaWV1a2hhY2lyY2xla29yZWFuPTEyOTIwO2Uua2hpZXVraGFwYXJlbmtvcmVhbj0xMjgyNDtlLmtoaWV1a2hjaXJjbGVrb3JlYW49MTI5MDY7ZS5raGlldWtoa29yZWFuPTEyNjE5O2Uua2hpZXVraHBhcmVua29yZWFuPTEyODEwO2Uua2hva2hhaXRoYWk9MzU4NjtlLmtob2tob250aGFpPTM1ODk7ZS5raG9raHVhdHRoYWk9MzU4NztlLmtob2tod2FpdGhhaT0zNTg4O2Uua2hvbXV0dGhhaT0zNjc1O2Uua2hvb2s9NDA5O2Uua2hvcmFraGFuZ3RoYWk9MzU5MDtlLmtoenNxdWFyZT0xMzIwMTtlLmtpaGlyYWdhbmE9MTIzNjU7ZS5raWthdGFrYW5hPTEyNDYxO2Uua2lrYXRha2FuYWhhbGZ3aWR0aD02NTM5OTtlLmtpcm9ndXJhbXVzcXVhcmU9MTMwNzc7ZS5raXJvbWVldG9ydXNxdWFyZT0xMzA3ODtlLmtpcm9zcXVhcmU9MTMwNzY7ZS5raXllb2thY2lyY2xla29yZWFuPTEyOTEwO2Uua2l5ZW9rYXBhcmVua29yZWFuPTEyODE0O2Uua2l5ZW9rY2lyY2xla29yZWFuPTEyODk2O2Uua2l5ZW9ra29yZWFuPTEyNTkzO2Uua2l5ZW9rcGFyZW5rb3JlYW49MTI4MDA7ZS5raXllb2tzaW9za29yZWFuPTEyNTk1O2Uua2plY3lyaWxsaWM9MTExNjtlLmtsaW5lYmVsb3c9NzczMztlLmtsc3F1YXJlPTEzMjA4O2Uua21jdWJlZHNxdWFyZT0xMzIyMjtlLmttb25vc3BhY2U9NjUzNTU7ZS5rbXNxdWFyZWRzcXVhcmU9MTMyMTg7ZS5rb2hpcmFnYW5hPTEyMzcxO2Uua29obXNxdWFyZT0xMzI0ODtlLmtva2FpdGhhaT0zNTg1O2Uua29rYXRha2FuYT0xMjQ2NztlLmtva2F0YWthbmFoYWxmd2lkdGg9NjU0MDI7ZS5rb29wb3NxdWFyZT0xMzA4NjtlLmtvcHBhY3lyaWxsaWM9MTE1MztlLmtvcmVhbnN0YW5kYXJkc3ltYm9sPTEyOTI3O2Uua29yb25pc2NtYj04MzU7ZS5rcGFyZW49OTM4MjtlLmtwYXNxdWFyZT0xMzIyNjtlLmtzaWN5cmlsbGljPTExMzU7ZS5rdHNxdWFyZT0xMzI2MztlLmt0dXJuZWQ9NjcwO2Uua3VoaXJhZ2FuYT0xMjM2NztlLmt1a2F0YWthbmE9MTI0NjM7ZS5rdWthdGFrYW5haGFsZndpZHRoPTY1NDAwO2Uua3ZzcXVhcmU9MTMyNDA7ZS5rd3NxdWFyZT0xMzI0NjtlLmw9MTA4O2UubGFiZW5nYWxpPTI0ODI7ZS5sYWN1dGU9MzE0O2UubGFkZXZhPTIzNTQ7ZS5sYWd1amFyYXRpPTI3Mzg7ZS5sYWd1cm11a2hpPTI2MTA7ZS5sYWtraGFuZ3lhb3RoYWk9MzY1MztlLmxhbWFsZWZmaW5hbGFyYWJpYz02NTI3NjtlLmxhbWFsZWZoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUyNzI7ZS5sYW1hbGVmaGFtemFhYm92ZWlzb2xhdGVkYXJhYmljPTY1MjcxO2UubGFtYWxlZmhhbXphYmVsb3dmaW5hbGFyYWJpYz02NTI3NDtlLmxhbWFsZWZoYW16YWJlbG93aXNvbGF0ZWRhcmFiaWM9NjUyNzM7ZS5sYW1hbGVmaXNvbGF0ZWRhcmFiaWM9NjUyNzU7ZS5sYW1hbGVmbWFkZGFhYm92ZWZpbmFsYXJhYmljPTY1MjcwO2UubGFtYWxlZm1hZGRhYWJvdmVpc29sYXRlZGFyYWJpYz02NTI2OTtlLmxhbWFyYWJpYz0xNjA0O2UubGFtYmRhPTk1NTtlLmxhbWJkYXN0cm9rZT00MTE7ZS5sYW1lZD0xNTAwO2UubGFtZWRkYWdlc2g9NjQzMTY7ZS5sYW1lZGRhZ2VzaGhlYnJldz02NDMxNjtlLmxhbWVkaGVicmV3PTE1MDA7ZS5sYW1maW5hbGFyYWJpYz02NTI0NjtlLmxhbWhhaGluaXRpYWxhcmFiaWM9NjQ3MTQ7ZS5sYW1pbml0aWFsYXJhYmljPTY1MjQ3O2UubGFtamVlbWluaXRpYWxhcmFiaWM9NjQ3MTM7ZS5sYW1raGFoaW5pdGlhbGFyYWJpYz02NDcxNTtlLmxhbWxhbWhlaGlzb2xhdGVkYXJhYmljPTY1MDEwO2UubGFtbWVkaWFsYXJhYmljPTY1MjQ4O2UubGFtbWVlbWhhaGluaXRpYWxhcmFiaWM9NjQ5MDQ7ZS5sYW1tZWVtaW5pdGlhbGFyYWJpYz02NDcxNjtlLmxhcmdlY2lyY2xlPTk3MTE7ZS5sYmFyPTQxMDtlLmxiZWx0PTYyMDtlLmxib3BvbW9mbz0xMjU1NjtlLmxjYXJvbj0zMTg7ZS5sY2VkaWxsYT0zMTY7ZS5sY2lyY2xlPTk0MzU7ZS5sY2lyY3VtZmxleGJlbG93PTc3NDE7ZS5sY29tbWFhY2NlbnQ9MzE2O2UubGRvdD0zMjA7ZS5sZG90YWNjZW50PTMyMDtlLmxkb3RiZWxvdz03NzM1O2UubGRvdGJlbG93bWFjcm9uPTc3Mzc7ZS5sZWZ0YW5nbGVhYm92ZWNtYj03OTQ7ZS5sZWZ0dGFja2JlbG93Y21iPTc5MjtlLmxlc3M9NjA7ZS5sZXNzZXF1YWw9ODgwNDtlLmxlc3NlcXVhbG9yZ3JlYXRlcj04OTIyO2UubGVzc21vbm9zcGFjZT02NTMwODtlLmxlc3NvcmVxdWl2YWxlbnQ9ODgxODtlLmxlc3NvcmdyZWF0ZXI9ODgyMjtlLmxlc3NvdmVyZXF1YWw9ODgwNjtlLmxlc3NzbWFsbD02NTEyNDtlLmxlemg9NjIyO2UubGZibG9jaz05NjEyO2UubGhvb2tyZXRyb2ZsZXg9NjIxO2UubGlyYT04MzU2O2UubGl3bmFybWVuaWFuPTEzODg7ZS5saj00NTc7ZS5samVjeXJpbGxpYz0xMTEzO2UubGw9NjMxNjg7ZS5sbGFkZXZhPTIzNTU7ZS5sbGFndWphcmF0aT0yNzM5O2UubGxpbmViZWxvdz03NzM5O2UubGxsYWRldmE9MjM1NjtlLmxsdm9jYWxpY2JlbmdhbGk9MjUyOTtlLmxsdm9jYWxpY2RldmE9MjQwMTtlLmxsdm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjUzMTtlLmxsdm9jYWxpY3Zvd2Vsc2lnbmRldmE9MjQwMztlLmxtaWRkbGV0aWxkZT02MTk7ZS5sbW9ub3NwYWNlPTY1MzU2O2UubG1zcXVhcmU9MTMyNjQ7ZS5sb2NodWxhdGhhaT0zNjI4O2UubG9naWNhbGFuZD04NzQzO2UubG9naWNhbG5vdD0xNzI7ZS5sb2dpY2Fsbm90cmV2ZXJzZWQ9ODk3NjtlLmxvZ2ljYWxvcj04NzQ0O2UubG9saW5ndGhhaT0zNjIxO2UubG9uZ3M9MzgzO2UubG93bGluZWNlbnRlcmxpbmU9NjUxMDI7ZS5sb3dsaW5lY21iPTgxODtlLmxvd2xpbmVkYXNoZWQ9NjUxMDE7ZS5sb3plbmdlPTk2NzQ7ZS5scGFyZW49OTM4MztlLmxzbGFzaD0zMjI7ZS5sc3F1YXJlPTg0Njc7ZS5sc3VwZXJpb3I9NjMyMTQ7ZS5sdHNoYWRlPTk2MTc7ZS5sdXRoYWk9MzYyMjtlLmx2b2NhbGljYmVuZ2FsaT0yNDQ0O2UubHZvY2FsaWNkZXZhPTIzMTY7ZS5sdm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjUzMDtlLmx2b2NhbGljdm93ZWxzaWduZGV2YT0yNDAyO2UubHhzcXVhcmU9MTMyNjc7ZS5tPTEwOTtlLm1hYmVuZ2FsaT0yNDc4O2UubWFjcm9uPTE3NTtlLm1hY3JvbmJlbG93Y21iPTgxNztlLm1hY3JvbmNtYj03NzI7ZS5tYWNyb25sb3dtb2Q9NzE3O2UubWFjcm9ubW9ub3NwYWNlPTY1NTA3O2UubWFjdXRlPTc3NDM7ZS5tYWRldmE9MjM1MDtlLm1hZ3VqYXJhdGk9MjczNDtlLm1hZ3VybXVraGk9MjYwNjtlLm1haGFwYWtoaGVicmV3PTE0NDQ7ZS5tYWhhcGFraGxlZnRoZWJyZXc9MTQ0NDtlLm1haGlyYWdhbmE9MTI0MTQ7ZS5tYWljaGF0dGF3YWxvd2xlZnR0aGFpPTYzNjM3O2UubWFpY2hhdHRhd2Fsb3dyaWdodHRoYWk9NjM2MzY7ZS5tYWljaGF0dGF3YXRoYWk9MzY1OTtlLm1haWNoYXR0YXdhdXBwZXJsZWZ0dGhhaT02MzYzNTtlLm1haWVrbG93bGVmdHRoYWk9NjM2Mjg7ZS5tYWlla2xvd3JpZ2h0dGhhaT02MzYyNztlLm1haWVrdGhhaT0zNjU2O2UubWFpZWt1cHBlcmxlZnR0aGFpPTYzNjI2O2UubWFpaGFuYWthdGxlZnR0aGFpPTYzNjIwO2UubWFpaGFuYWthdHRoYWk9MzYzMztlLm1haXRhaWtodWxlZnR0aGFpPTYzNjI1O2UubWFpdGFpa2h1dGhhaT0zNjU1O2UubWFpdGhvbG93bGVmdHRoYWk9NjM2MzE7ZS5tYWl0aG9sb3dyaWdodHRoYWk9NjM2MzA7ZS5tYWl0aG90aGFpPTM2NTc7ZS5tYWl0aG91cHBlcmxlZnR0aGFpPTYzNjI5O2UubWFpdHJpbG93bGVmdHRoYWk9NjM2MzQ7ZS5tYWl0cmlsb3dyaWdodHRoYWk9NjM2MzM7ZS5tYWl0cml0aGFpPTM2NTg7ZS5tYWl0cml1cHBlcmxlZnR0aGFpPTYzNjMyO2UubWFpeWFtb2t0aGFpPTM2NTQ7ZS5tYWthdGFrYW5hPTEyNTEwO2UubWFrYXRha2FuYWhhbGZ3aWR0aD02NTQyMztlLm1hbGU9OTc5NDtlLm1hbnN5b25zcXVhcmU9MTMxMjc7ZS5tYXFhZmhlYnJldz0xNDcwO2UubWFycz05Nzk0O2UubWFzb3JhY2lyY2xlaGVicmV3PTE0NTU7ZS5tYXNxdWFyZT0xMzE4NztlLm1ib3BvbW9mbz0xMjU1MTtlLm1ic3F1YXJlPTEzMjY4O2UubWNpcmNsZT05NDM2O2UubWN1YmVkc3F1YXJlPTEzMjIxO2UubWRvdGFjY2VudD03NzQ1O2UubWRvdGJlbG93PTc3NDc7ZS5tZWVtYXJhYmljPTE2MDU7ZS5tZWVtZmluYWxhcmFiaWM9NjUyNTA7ZS5tZWVtaW5pdGlhbGFyYWJpYz02NTI1MTtlLm1lZW1tZWRpYWxhcmFiaWM9NjUyNTI7ZS5tZWVtbWVlbWluaXRpYWxhcmFiaWM9NjQ3MjE7ZS5tZWVtbWVlbWlzb2xhdGVkYXJhYmljPTY0NTg0O2UubWVldG9ydXNxdWFyZT0xMzEzMztlLm1laGlyYWdhbmE9MTI0MTc7ZS5tZWl6aWVyYXNxdWFyZT0xMzE4MjtlLm1la2F0YWthbmE9MTI1MTM7ZS5tZWthdGFrYW5haGFsZndpZHRoPTY1NDI2O2UubWVtPTE1MDI7ZS5tZW1kYWdlc2g9NjQzMTg7ZS5tZW1kYWdlc2hoZWJyZXc9NjQzMTg7ZS5tZW1oZWJyZXc9MTUwMjtlLm1lbmFybWVuaWFuPTEzOTY7ZS5tZXJraGFoZWJyZXc9MTQ0NTtlLm1lcmtoYWtlZnVsYWhlYnJldz0xNDQ2O2UubWVya2hha2VmdWxhbGVmdGhlYnJldz0xNDQ2O2UubWVya2hhbGVmdGhlYnJldz0xNDQ1O2UubWhvb2s9NjI1O2UubWh6c3F1YXJlPTEzMjAyO2UubWlkZGxlZG90a2F0YWthbmFoYWxmd2lkdGg9NjUzODE7ZS5taWRkb3Q9MTgzO2UubWlldW1hY2lyY2xla29yZWFuPTEyOTE0O2UubWlldW1hcGFyZW5rb3JlYW49MTI4MTg7ZS5taWV1bWNpcmNsZWtvcmVhbj0xMjkwMDtlLm1pZXVta29yZWFuPTEyNjA5O2UubWlldW1wYW5zaW9za29yZWFuPTEyNjU2O2UubWlldW1wYXJlbmtvcmVhbj0xMjgwNDtlLm1pZXVtcGlldXBrb3JlYW49MTI2NTQ7ZS5taWV1bXNpb3Nrb3JlYW49MTI2NTU7ZS5taWhpcmFnYW5hPTEyNDE1O2UubWlrYXRha2FuYT0xMjUxMTtlLm1pa2F0YWthbmFoYWxmd2lkdGg9NjU0MjQ7ZS5taW51cz04NzIyO2UubWludXNiZWxvd2NtYj04MDA7ZS5taW51c2NpcmNsZT04ODU0O2UubWludXNtb2Q9NzI3O2UubWludXNwbHVzPTg3MjM7ZS5taW51dGU9ODI0MjtlLm1pcmliYWFydXNxdWFyZT0xMzEzMDtlLm1pcmlzcXVhcmU9MTMxMjk7ZS5tbG9uZ2xlZ3R1cm5lZD02MjQ7ZS5tbHNxdWFyZT0xMzIwNjtlLm1tY3ViZWRzcXVhcmU9MTMyMTk7ZS5tbW9ub3NwYWNlPTY1MzU3O2UubW1zcXVhcmVkc3F1YXJlPTEzMjE1O2UubW9oaXJhZ2FuYT0xMjQxODtlLm1vaG1zcXVhcmU9MTMyNDk7ZS5tb2thdGFrYW5hPTEyNTE0O2UubW9rYXRha2FuYWhhbGZ3aWR0aD02NTQyNztlLm1vbHNxdWFyZT0xMzI3MDtlLm1vbWF0aGFpPTM2MTc7ZS5tb3ZlcnNzcXVhcmU9MTMyMjM7ZS5tb3ZlcnNzcXVhcmVkc3F1YXJlPTEzMjI0O2UubXBhcmVuPTkzODQ7ZS5tcGFzcXVhcmU9MTMyMjc7ZS5tc3NxdWFyZT0xMzIzNTtlLm1zdXBlcmlvcj02MzIxNTtlLm10dXJuZWQ9NjIzO2UubXU9MTgxO2UubXUxPTE4MTtlLm11YXNxdWFyZT0xMzE4NjtlLm11Y2hncmVhdGVyPTg4MTE7ZS5tdWNobGVzcz04ODEwO2UubXVmc3F1YXJlPTEzMTk2O2UubXVncmVlaz05NTY7ZS5tdWdzcXVhcmU9MTMxOTc7ZS5tdWhpcmFnYW5hPTEyNDE2O2UubXVrYXRha2FuYT0xMjUxMjtlLm11a2F0YWthbmFoYWxmd2lkdGg9NjU0MjU7ZS5tdWxzcXVhcmU9MTMyMDU7ZS5tdWx0aXBseT0yMTU7ZS5tdW1zcXVhcmU9MTMyMTE7ZS5tdW5haGhlYnJldz0xNDQzO2UubXVuYWhsZWZ0aGVicmV3PTE0NDM7ZS5tdXNpY2Fsbm90ZT05ODM0O2UubXVzaWNhbG5vdGVkYmw9OTgzNTtlLm11c2ljZmxhdHNpZ249OTgzNztlLm11c2ljc2hhcnBzaWduPTk4Mzk7ZS5tdXNzcXVhcmU9MTMyMzQ7ZS5tdXZzcXVhcmU9MTMyMzg7ZS5tdXdzcXVhcmU9MTMyNDQ7ZS5tdm1lZ2FzcXVhcmU9MTMyNDE7ZS5tdnNxdWFyZT0xMzIzOTtlLm13bWVnYXNxdWFyZT0xMzI0NztlLm13c3F1YXJlPTEzMjQ1O2Uubj0xMTA7ZS5uYWJlbmdhbGk9MjQ3MjtlLm5hYmxhPTg3MTE7ZS5uYWN1dGU9MzI0O2UubmFkZXZhPTIzNDQ7ZS5uYWd1amFyYXRpPTI3Mjg7ZS5uYWd1cm11a2hpPTI2MDA7ZS5uYWhpcmFnYW5hPTEyMzk0O2UubmFrYXRha2FuYT0xMjQ5MDtlLm5ha2F0YWthbmFoYWxmd2lkdGg9NjU0MTM7ZS5uYXBvc3Ryb3BoZT0zMjk7ZS5uYXNxdWFyZT0xMzE4NTtlLm5ib3BvbW9mbz0xMjU1NTtlLm5ic3BhY2U9MTYwO2UubmNhcm9uPTMyODtlLm5jZWRpbGxhPTMyNjtlLm5jaXJjbGU9OTQzNztlLm5jaXJjdW1mbGV4YmVsb3c9Nzc1NTtlLm5jb21tYWFjY2VudD0zMjY7ZS5uZG90YWNjZW50PTc3NDk7ZS5uZG90YmVsb3c9Nzc1MTtlLm5laGlyYWdhbmE9MTIzOTc7ZS5uZWthdGFrYW5hPTEyNDkzO2UubmVrYXRha2FuYWhhbGZ3aWR0aD02NTQxNjtlLm5ld3NoZXFlbHNpZ249ODM2MjtlLm5mc3F1YXJlPTEzMTk1O2UubmdhYmVuZ2FsaT0yNDU3O2UubmdhZGV2YT0yMzI5O2UubmdhZ3VqYXJhdGk9MjcxMztlLm5nYWd1cm11a2hpPTI1ODU7ZS5uZ29uZ3V0aGFpPTM1OTE7ZS5uaGlyYWdhbmE9MTI0MzU7ZS5uaG9va2xlZnQ9NjI2O2Uubmhvb2tyZXRyb2ZsZXg9NjI3O2UubmlldW5hY2lyY2xla29yZWFuPTEyOTExO2UubmlldW5hcGFyZW5rb3JlYW49MTI4MTU7ZS5uaWV1bmNpZXVja29yZWFuPTEyNTk3O2UubmlldW5jaXJjbGVrb3JlYW49MTI4OTc7ZS5uaWV1bmhpZXVoa29yZWFuPTEyNTk4O2UubmlldW5rb3JlYW49MTI1OTY7ZS5uaWV1bnBhbnNpb3Nrb3JlYW49MTI2NDg7ZS5uaWV1bnBhcmVua29yZWFuPTEyODAxO2UubmlldW5zaW9za29yZWFuPTEyNjQ3O2UubmlldW50aWtldXRrb3JlYW49MTI2NDY7ZS5uaWhpcmFnYW5hPTEyMzk1O2UubmlrYXRha2FuYT0xMjQ5MTtlLm5pa2F0YWthbmFoYWxmd2lkdGg9NjU0MTQ7ZS5uaWtoYWhpdGxlZnR0aGFpPTYzNjQxO2UubmlraGFoaXR0aGFpPTM2NjE7ZS5uaW5lPTU3O2UubmluZWFyYWJpYz0xNjQxO2UubmluZWJlbmdhbGk9MjU0MztlLm5pbmVjaXJjbGU9OTMyMDtlLm5pbmVjaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTMwO2UubmluZWRldmE9MjQxNTtlLm5pbmVndWphcmF0aT0yNzk5O2UubmluZWd1cm11a2hpPTI2NzE7ZS5uaW5laGFja2FyYWJpYz0xNjQxO2UubmluZWhhbmd6aG91PTEyMzI5O2UubmluZWlkZW9ncmFwaGljcGFyZW49MTI4NDA7ZS5uaW5laW5mZXJpb3I9ODMyOTtlLm5pbmVtb25vc3BhY2U9NjUzMDU7ZS5uaW5lb2xkc3R5bGU9NjMyODk7ZS5uaW5lcGFyZW49OTM0MDtlLm5pbmVwZXJpb2Q9OTM2MDtlLm5pbmVwZXJzaWFuPTE3ODU7ZS5uaW5lcm9tYW49ODU2ODtlLm5pbmVzdXBlcmlvcj04MzEzO2UubmluZXRlZW5jaXJjbGU9OTMzMDtlLm5pbmV0ZWVucGFyZW49OTM1MDtlLm5pbmV0ZWVucGVyaW9kPTkzNzA7ZS5uaW5ldGhhaT0zNjczO2Uubmo9NDYwO2UubmplY3lyaWxsaWM9MTExNDtlLm5rYXRha2FuYT0xMjUzMTtlLm5rYXRha2FuYWhhbGZ3aWR0aD02NTQzNztlLm5sZWdyaWdodGxvbmc9NDE0O2UubmxpbmViZWxvdz03NzUzO2Uubm1vbm9zcGFjZT02NTM1ODtlLm5tc3F1YXJlPTEzMjEwO2Uubm5hYmVuZ2FsaT0yNDY3O2Uubm5hZGV2YT0yMzM5O2Uubm5hZ3VqYXJhdGk9MjcyMztlLm5uYWd1cm11a2hpPTI1OTU7ZS5ubm5hZGV2YT0yMzQ1O2Uubm9oaXJhZ2FuYT0xMjM5ODtlLm5va2F0YWthbmE9MTI0OTQ7ZS5ub2thdGFrYW5haGFsZndpZHRoPTY1NDE3O2Uubm9uYnJlYWtpbmdzcGFjZT0xNjA7ZS5ub25lbnRoYWk9MzYwMztlLm5vbnV0aGFpPTM2MDk7ZS5ub29uYXJhYmljPTE2MDY7ZS5ub29uZmluYWxhcmFiaWM9NjUyNTQ7ZS5ub29uZ2h1bm5hYXJhYmljPTE3MjI7ZS5ub29uZ2h1bm5hZmluYWxhcmFiaWM9NjQ0MTU7ZS5ub29uaW5pdGlhbGFyYWJpYz02NTI1NTtlLm5vb25qZWVtaW5pdGlhbGFyYWJpYz02NDcyMjtlLm5vb25qZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1ODc7ZS5ub29ubWVkaWFsYXJhYmljPTY1MjU2O2Uubm9vbm1lZW1pbml0aWFsYXJhYmljPTY0NzI1O2Uubm9vbm1lZW1pc29sYXRlZGFyYWJpYz02NDU5MDtlLm5vb25ub29uZmluYWxhcmFiaWM9NjQ2NTM7ZS5ub3Rjb250YWlucz04NzE2O2Uubm90ZWxlbWVudD04NzEzO2Uubm90ZWxlbWVudG9mPTg3MTM7ZS5ub3RlcXVhbD04ODAwO2Uubm90Z3JlYXRlcj04ODE1O2Uubm90Z3JlYXRlcm5vcmVxdWFsPTg4MTc7ZS5ub3RncmVhdGVybm9ybGVzcz04ODI1O2Uubm90aWRlbnRpY2FsPTg4MDI7ZS5ub3RsZXNzPTg4MTQ7ZS5ub3RsZXNzbm9yZXF1YWw9ODgxNjtlLm5vdHBhcmFsbGVsPTg3NDI7ZS5ub3RwcmVjZWRlcz04ODMyO2Uubm90c3Vic2V0PTg4MzY7ZS5ub3RzdWNjZWVkcz04ODMzO2Uubm90c3VwZXJzZXQ9ODgzNztlLm5vd2FybWVuaWFuPTEzOTg7ZS5ucGFyZW49OTM4NTtlLm5zc3F1YXJlPTEzMjMzO2UubnN1cGVyaW9yPTgzMTk7ZS5udGlsZGU9MjQxO2UubnU9OTU3O2UubnVoaXJhZ2FuYT0xMjM5NjtlLm51a2F0YWthbmE9MTI0OTI7ZS5udWthdGFrYW5haGFsZndpZHRoPTY1NDE1O2UubnVrdGFiZW5nYWxpPTI0OTI7ZS5udWt0YWRldmE9MjM2NDtlLm51a3RhZ3VqYXJhdGk9Mjc0ODtlLm51a3RhZ3VybXVraGk9MjYyMDtlLm51bWJlcnNpZ249MzU7ZS5udW1iZXJzaWdubW9ub3NwYWNlPTY1MjgzO2UubnVtYmVyc2lnbnNtYWxsPTY1MTE5O2UubnVtZXJhbHNpZ25ncmVlaz04ODQ7ZS5udW1lcmFsc2lnbmxvd2VyZ3JlZWs9ODg1O2UubnVtZXJvPTg0NzA7ZS5udW49MTUwNDtlLm51bmRhZ2VzaD02NDMyMDtlLm51bmRhZ2VzaGhlYnJldz02NDMyMDtlLm51bmhlYnJldz0xNTA0O2UubnZzcXVhcmU9MTMyMzc7ZS5ud3NxdWFyZT0xMzI0MztlLm55YWJlbmdhbGk9MjQ2MjtlLm55YWRldmE9MjMzNDtlLm55YWd1amFyYXRpPTI3MTg7ZS5ueWFndXJtdWtoaT0yNTkwO2Uubz0xMTE7ZS5vYWN1dGU9MjQzO2Uub2FuZ3RoYWk9MzYyOTtlLm9iYXJyZWQ9NjI5O2Uub2JhcnJlZGN5cmlsbGljPTEyNTc7ZS5vYmFycmVkZGllcmVzaXNjeXJpbGxpYz0xMjU5O2Uub2JlbmdhbGk9MjQ1MTtlLm9ib3BvbW9mbz0xMjU3MTtlLm9icmV2ZT0zMzU7ZS5vY2FuZHJhZGV2YT0yMzIxO2Uub2NhbmRyYWd1amFyYXRpPTI3MDU7ZS5vY2FuZHJhdm93ZWxzaWduZGV2YT0yMzc3O2Uub2NhbmRyYXZvd2Vsc2lnbmd1amFyYXRpPTI3NjE7ZS5vY2Fyb249NDY2O2Uub2NpcmNsZT05NDM4O2Uub2NpcmN1bWZsZXg9MjQ0O2Uub2NpcmN1bWZsZXhhY3V0ZT03ODg5O2Uub2NpcmN1bWZsZXhkb3RiZWxvdz03ODk3O2Uub2NpcmN1bWZsZXhncmF2ZT03ODkxO2Uub2NpcmN1bWZsZXhob29rYWJvdmU9Nzg5MztlLm9jaXJjdW1mbGV4dGlsZGU9Nzg5NTtlLm9jeXJpbGxpYz0xMDg2O2Uub2RibGFjdXRlPTMzNztlLm9kYmxncmF2ZT01MjU7ZS5vZGV2YT0yMzIzO2Uub2RpZXJlc2lzPTI0NjtlLm9kaWVyZXNpc2N5cmlsbGljPTEyNTU7ZS5vZG90YmVsb3c9Nzg4NTtlLm9lPTMzOTtlLm9la29yZWFuPTEyNjM0O2Uub2dvbmVrPTczMTtlLm9nb25la2NtYj04MDg7ZS5vZ3JhdmU9MjQyO2Uub2d1amFyYXRpPTI3MDc7ZS5vaGFybWVuaWFuPTE0MTM7ZS5vaGlyYWdhbmE9MTIzNjI7ZS5vaG9va2Fib3ZlPTc4ODc7ZS5vaG9ybj00MTc7ZS5vaG9ybmFjdXRlPTc4OTk7ZS5vaG9ybmRvdGJlbG93PTc5MDc7ZS5vaG9ybmdyYXZlPTc5MDE7ZS5vaG9ybmhvb2thYm92ZT03OTAzO2Uub2hvcm50aWxkZT03OTA1O2Uub2h1bmdhcnVtbGF1dD0zMzc7ZS5vaT00MTk7ZS5vaW52ZXJ0ZWRicmV2ZT01Mjc7ZS5va2F0YWthbmE9MTI0NTg7ZS5va2F0YWthbmFoYWxmd2lkdGg9NjUzOTc7ZS5va29yZWFuPTEyNjMxO2Uub2xlaGVicmV3PTE0NTE7ZS5vbWFjcm9uPTMzMztlLm9tYWNyb25hY3V0ZT03NzYzO2Uub21hY3JvbmdyYXZlPTc3NjE7ZS5vbWRldmE9MjM4NDtlLm9tZWdhPTk2OTtlLm9tZWdhMT05ODI7ZS5vbWVnYWN5cmlsbGljPTExMjE7ZS5vbWVnYWxhdGluY2xvc2VkPTYzMTtlLm9tZWdhcm91bmRjeXJpbGxpYz0xMTQ3O2Uub21lZ2F0aXRsb2N5cmlsbGljPTExNDk7ZS5vbWVnYXRvbm9zPTk3NDtlLm9tZ3VqYXJhdGk9Mjc2ODtlLm9taWNyb249OTU5O2Uub21pY3JvbnRvbm9zPTk3MjtlLm9tb25vc3BhY2U9NjUzNTk7ZS5vbmU9NDk7ZS5vbmVhcmFiaWM9MTYzMztlLm9uZWJlbmdhbGk9MjUzNTtlLm9uZWNpcmNsZT05MzEyO2Uub25lY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyMjtlLm9uZWRldmE9MjQwNztlLm9uZWRvdGVubGVhZGVyPTgyMjg7ZS5vbmVlaWdodGg9ODUzOTtlLm9uZWZpdHRlZD02MzE5NjtlLm9uZWd1amFyYXRpPTI3OTE7ZS5vbmVndXJtdWtoaT0yNjYzO2Uub25laGFja2FyYWJpYz0xNjMzO2Uub25laGFsZj0xODk7ZS5vbmVoYW5nemhvdT0xMjMyMTtlLm9uZWlkZW9ncmFwaGljcGFyZW49MTI4MzI7ZS5vbmVpbmZlcmlvcj04MzIxO2Uub25lbW9ub3NwYWNlPTY1Mjk3O2Uub25lbnVtZXJhdG9yYmVuZ2FsaT0yNTQ4O2Uub25lb2xkc3R5bGU9NjMyODE7ZS5vbmVwYXJlbj05MzMyO2Uub25lcGVyaW9kPTkzNTI7ZS5vbmVwZXJzaWFuPTE3Nzc7ZS5vbmVxdWFydGVyPTE4ODtlLm9uZXJvbWFuPTg1NjA7ZS5vbmVzdXBlcmlvcj0xODU7ZS5vbmV0aGFpPTM2NjU7ZS5vbmV0aGlyZD04NTMxO2Uub29nb25laz00OTE7ZS5vb2dvbmVrbWFjcm9uPTQ5MztlLm9vZ3VybXVraGk9MjU3OTtlLm9vbWF0cmFndXJtdWtoaT0yNjM1O2Uub29wZW49NTk2O2Uub3BhcmVuPTkzODY7ZS5vcGVuYnVsbGV0PTk3MDI7ZS5vcHRpb249ODk5NztlLm9yZGZlbWluaW5lPTE3MDtlLm9yZG1hc2N1bGluZT0xODY7ZS5vcnRob2dvbmFsPTg3MzU7ZS5vc2hvcnRkZXZhPTIzMjI7ZS5vc2hvcnR2b3dlbHNpZ25kZXZhPTIzNzg7ZS5vc2xhc2g9MjQ4O2Uub3NsYXNoYWN1dGU9NTExO2Uub3NtYWxsaGlyYWdhbmE9MTIzNjE7ZS5vc21hbGxrYXRha2FuYT0xMjQ1NztlLm9zbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg3O2Uub3N0cm9rZWFjdXRlPTUxMTtlLm9zdXBlcmlvcj02MzIxNjtlLm90Y3lyaWxsaWM9MTE1MTtlLm90aWxkZT0yNDU7ZS5vdGlsZGVhY3V0ZT03NzU3O2Uub3RpbGRlZGllcmVzaXM9Nzc1OTtlLm91Ym9wb21vZm89MTI1Nzc7ZS5vdmVybGluZT04MjU0O2Uub3ZlcmxpbmVjZW50ZXJsaW5lPTY1MDk4O2Uub3ZlcmxpbmVjbWI9NzczO2Uub3ZlcmxpbmVkYXNoZWQ9NjUwOTc7ZS5vdmVybGluZWRibHdhdnk9NjUxMDA7ZS5vdmVybGluZXdhdnk9NjUwOTk7ZS5vdmVyc2NvcmU9MTc1O2Uub3Zvd2Vsc2lnbmJlbmdhbGk9MjUwNztlLm92b3dlbHNpZ25kZXZhPTIzNzk7ZS5vdm93ZWxzaWduZ3VqYXJhdGk9Mjc2MztlLnA9MTEyO2UucGFhbXBzc3F1YXJlPTEzMTg0O2UucGFhc2VudG9zcXVhcmU9MTMwOTk7ZS5wYWJlbmdhbGk9MjQ3NDtlLnBhY3V0ZT03NzY1O2UucGFkZXZhPTIzNDY7ZS5wYWdlZG93bj04NjcxO2UucGFnZXVwPTg2NzA7ZS5wYWd1amFyYXRpPTI3MzA7ZS5wYWd1cm11a2hpPTI2MDI7ZS5wYWhpcmFnYW5hPTEyNDAxO2UucGFpeWFubm9pdGhhaT0zNjMxO2UucGFrYXRha2FuYT0xMjQ5NztlLnBhbGF0YWxpemF0aW9uY3lyaWxsaWNjbWI9MTE1NjtlLnBhbG9jaGthY3lyaWxsaWM9MTIxNjtlLnBhbnNpb3Nrb3JlYW49MTI2NzE7ZS5wYXJhZ3JhcGg9MTgyO2UucGFyYWxsZWw9ODc0MTtlLnBhcmVubGVmdD00MDtlLnBhcmVubGVmdGFsdG9uZWFyYWJpYz02NDgzMDtlLnBhcmVubGVmdGJ0PTYzNzI1O2UucGFyZW5sZWZ0ZXg9NjM3MjQ7ZS5wYXJlbmxlZnRpbmZlcmlvcj04MzMzO2UucGFyZW5sZWZ0bW9ub3NwYWNlPTY1Mjg4O2UucGFyZW5sZWZ0c21hbGw9NjUxMTM7ZS5wYXJlbmxlZnRzdXBlcmlvcj04MzE3O2UucGFyZW5sZWZ0dHA9NjM3MjM7ZS5wYXJlbmxlZnR2ZXJ0aWNhbD02NTA3NztlLnBhcmVucmlnaHQ9NDE7ZS5wYXJlbnJpZ2h0YWx0b25lYXJhYmljPTY0ODMxO2UucGFyZW5yaWdodGJ0PTYzNzM2O2UucGFyZW5yaWdodGV4PTYzNzM1O2UucGFyZW5yaWdodGluZmVyaW9yPTgzMzQ7ZS5wYXJlbnJpZ2h0bW9ub3NwYWNlPTY1Mjg5O2UucGFyZW5yaWdodHNtYWxsPTY1MTE0O2UucGFyZW5yaWdodHN1cGVyaW9yPTgzMTg7ZS5wYXJlbnJpZ2h0dHA9NjM3MzQ7ZS5wYXJlbnJpZ2h0dmVydGljYWw9NjUwNzg7ZS5wYXJ0aWFsZGlmZj04NzA2O2UucGFzZXFoZWJyZXc9MTQ3MjtlLnBhc2h0YWhlYnJldz0xNDMzO2UucGFzcXVhcmU9MTMyMjU7ZS5wYXRhaD0xNDYzO2UucGF0YWgxMT0xNDYzO2UucGF0YWgxZD0xNDYzO2UucGF0YWgyYT0xNDYzO2UucGF0YWhoZWJyZXc9MTQ2MztlLnBhdGFobmFycm93aGVicmV3PTE0NjM7ZS5wYXRhaHF1YXJ0ZXJoZWJyZXc9MTQ2MztlLnBhdGFod2lkZWhlYnJldz0xNDYzO2UucGF6ZXJoZWJyZXc9MTQ0MTtlLnBib3BvbW9mbz0xMjU1MDtlLnBjaXJjbGU9OTQzOTtlLnBkb3RhY2NlbnQ9Nzc2NztlLnBlPTE1MDg7ZS5wZWN5cmlsbGljPTEwODc7ZS5wZWRhZ2VzaD02NDMyNDtlLnBlZGFnZXNoaGVicmV3PTY0MzI0O2UucGVlemlzcXVhcmU9MTMxMTU7ZS5wZWZpbmFsZGFnZXNoaGVicmV3PTY0MzIzO2UucGVoYXJhYmljPTE2NjI7ZS5wZWhhcm1lbmlhbj0xNDAyO2UucGVoZWJyZXc9MTUwODtlLnBlaGZpbmFsYXJhYmljPTY0MzQzO2UucGVoaW5pdGlhbGFyYWJpYz02NDM0NDtlLnBlaGlyYWdhbmE9MTI0MTA7ZS5wZWhtZWRpYWxhcmFiaWM9NjQzNDU7ZS5wZWthdGFrYW5hPTEyNTA2O2UucGVtaWRkbGVob29rY3lyaWxsaWM9MTE5MTtlLnBlcmFmZWhlYnJldz02NDMzNDtlLnBlcmNlbnQ9Mzc7ZS5wZXJjZW50YXJhYmljPTE2NDI7ZS5wZXJjZW50bW9ub3NwYWNlPTY1Mjg1O2UucGVyY2VudHNtYWxsPTY1MTMwO2UucGVyaW9kPTQ2O2UucGVyaW9kYXJtZW5pYW49MTQxNztlLnBlcmlvZGNlbnRlcmVkPTE4MztlLnBlcmlvZGhhbGZ3aWR0aD02NTM3NztlLnBlcmlvZGluZmVyaW9yPTYzMjA3O2UucGVyaW9kbW9ub3NwYWNlPTY1Mjk0O2UucGVyaW9kc21hbGw9NjUxMDY7ZS5wZXJpb2RzdXBlcmlvcj02MzIwODtlLnBlcmlzcG9tZW5pZ3JlZWtjbWI9ODM0O2UucGVycGVuZGljdWxhcj04ODY5O2UucGVydGhvdXNhbmQ9ODI0MDtlLnBlc2V0YT04MzU5O2UucGZzcXVhcmU9MTMxOTQ7ZS5waGFiZW5nYWxpPTI0NzU7ZS5waGFkZXZhPTIzNDc7ZS5waGFndWphcmF0aT0yNzMxO2UucGhhZ3VybXVraGk9MjYwMztlLnBoaT05NjY7ZS5waGkxPTk4MTtlLnBoaWV1cGhhY2lyY2xla29yZWFuPTEyOTIyO2UucGhpZXVwaGFwYXJlbmtvcmVhbj0xMjgyNjtlLnBoaWV1cGhjaXJjbGVrb3JlYW49MTI5MDg7ZS5waGlldXBoa29yZWFuPTEyNjIxO2UucGhpZXVwaHBhcmVua29yZWFuPTEyODEyO2UucGhpbGF0aW49NjMyO2UucGhpbnRodXRoYWk9MzY0MjtlLnBoaXN5bWJvbGdyZWVrPTk4MTtlLnBob29rPTQyMTtlLnBob3BoYW50aGFpPTM2MTQ7ZS5waG9waHVuZ3RoYWk9MzYxMjtlLnBob3NhbXBoYW90aGFpPTM2MTY7ZS5waT05NjA7ZS5waWV1cGFjaXJjbGVrb3JlYW49MTI5MTU7ZS5waWV1cGFwYXJlbmtvcmVhbj0xMjgxOTtlLnBpZXVwY2lldWNrb3JlYW49MTI2NjI7ZS5waWV1cGNpcmNsZWtvcmVhbj0xMjkwMTtlLnBpZXVwa2l5ZW9ra29yZWFuPTEyNjU4O2UucGlldXBrb3JlYW49MTI2MTA7ZS5waWV1cHBhcmVua29yZWFuPTEyODA1O2UucGlldXBzaW9za2l5ZW9ra29yZWFuPTEyNjYwO2UucGlldXBzaW9za29yZWFuPTEyNjEyO2UucGlldXBzaW9zdGlrZXV0a29yZWFuPTEyNjYxO2UucGlldXB0aGlldXRoa29yZWFuPTEyNjYzO2UucGlldXB0aWtldXRrb3JlYW49MTI2NTk7ZS5waWhpcmFnYW5hPTEyNDA0O2UucGlrYXRha2FuYT0xMjUwMDtlLnBpc3ltYm9sZ3JlZWs9OTgyO2UucGl3cmFybWVuaWFuPTE0MTE7ZS5wbGFuY2tvdmVyMnBpPTg0NjM7ZS5wbGFuY2tvdmVyMnBpMT04NDYzO2UucGx1cz00MztlLnBsdXNiZWxvd2NtYj03OTk7ZS5wbHVzY2lyY2xlPTg4NTM7ZS5wbHVzbWludXM9MTc3O2UucGx1c21vZD03MjY7ZS5wbHVzbW9ub3NwYWNlPTY1MjkxO2UucGx1c3NtYWxsPTY1MTIyO2UucGx1c3N1cGVyaW9yPTgzMTQ7ZS5wbW9ub3NwYWNlPTY1MzYwO2UucG1zcXVhcmU9MTMyNzI7ZS5wb2hpcmFnYW5hPTEyNDEzO2UucG9pbnRpbmdpbmRleGRvd253aGl0ZT05NzU5O2UucG9pbnRpbmdpbmRleGxlZnR3aGl0ZT05NzU2O2UucG9pbnRpbmdpbmRleHJpZ2h0d2hpdGU9OTc1ODtlLnBvaW50aW5naW5kZXh1cHdoaXRlPTk3NTc7ZS5wb2thdGFrYW5hPTEyNTA5O2UucG9wbGF0aGFpPTM2MTE7ZS5wb3N0YWxtYXJrPTEyMzA2O2UucG9zdGFsbWFya2ZhY2U9MTIzMjA7ZS5wcGFyZW49OTM4NztlLnByZWNlZGVzPTg4MjY7ZS5wcmVzY3JpcHRpb249ODQ3ODtlLnByaW1lbW9kPTY5NztlLnByaW1lcmV2ZXJzZWQ9ODI0NTtlLnByb2R1Y3Q9ODcxOTtlLnByb2plY3RpdmU9ODk2NTtlLnByb2xvbmdlZGthbmE9MTI1NDA7ZS5wcm9wZWxsb3I9ODk4NDtlLnByb3BlcnN1YnNldD04ODM0O2UucHJvcGVyc3VwZXJzZXQ9ODgzNTtlLnByb3BvcnRpb249ODc1OTtlLnByb3BvcnRpb25hbD04NzMzO2UucHNpPTk2ODtlLnBzaWN5cmlsbGljPTExMzc7ZS5wc2lsaXBuZXVtYXRhY3lyaWxsaWNjbWI9MTE1ODtlLnBzc3F1YXJlPTEzMjMyO2UucHVoaXJhZ2FuYT0xMjQwNztlLnB1a2F0YWthbmE9MTI1MDM7ZS5wdnNxdWFyZT0xMzIzNjtlLnB3c3F1YXJlPTEzMjQyO2UucT0xMTM7ZS5xYWRldmE9MjM5MjtlLnFhZG1haGVicmV3PTE0NDg7ZS5xYWZhcmFiaWM9MTYwMjtlLnFhZmZpbmFsYXJhYmljPTY1MjM4O2UucWFmaW5pdGlhbGFyYWJpYz02NTIzOTtlLnFhZm1lZGlhbGFyYWJpYz02NTI0MDtlLnFhbWF0cz0xNDY0O2UucWFtYXRzMTA9MTQ2NDtlLnFhbWF0czFhPTE0NjQ7ZS5xYW1hdHMxYz0xNDY0O2UucWFtYXRzMjc9MTQ2NDtlLnFhbWF0czI5PTE0NjQ7ZS5xYW1hdHMzMz0xNDY0O2UucWFtYXRzZGU9MTQ2NDtlLnFhbWF0c2hlYnJldz0xNDY0O2UucWFtYXRzbmFycm93aGVicmV3PTE0NjQ7ZS5xYW1hdHNxYXRhbmhlYnJldz0xNDY0O2UucWFtYXRzcWF0YW5uYXJyb3doZWJyZXc9MTQ2NDtlLnFhbWF0c3FhdGFucXVhcnRlcmhlYnJldz0xNDY0O2UucWFtYXRzcWF0YW53aWRlaGVicmV3PTE0NjQ7ZS5xYW1hdHNxdWFydGVyaGVicmV3PTE0NjQ7ZS5xYW1hdHN3aWRlaGVicmV3PTE0NjQ7ZS5xYXJuZXlwYXJhaGVicmV3PTE0Mzk7ZS5xYm9wb21vZm89MTI1NjE7ZS5xY2lyY2xlPTk0NDA7ZS5xaG9vaz02NzI7ZS5xbW9ub3NwYWNlPTY1MzYxO2UucW9mPTE1MTE7ZS5xb2ZkYWdlc2g9NjQzMjc7ZS5xb2ZkYWdlc2hoZWJyZXc9NjQzMjc7ZS5xb2ZoZWJyZXc9MTUxMTtlLnFwYXJlbj05Mzg4O2UucXVhcnRlcm5vdGU9OTgzMztlLnF1YnV0cz0xNDY3O2UucXVidXRzMTg9MTQ2NztlLnF1YnV0czI1PTE0Njc7ZS5xdWJ1dHMzMT0xNDY3O2UucXVidXRzaGVicmV3PTE0Njc7ZS5xdWJ1dHNuYXJyb3doZWJyZXc9MTQ2NztlLnF1YnV0c3F1YXJ0ZXJoZWJyZXc9MTQ2NztlLnF1YnV0c3dpZGVoZWJyZXc9MTQ2NztlLnF1ZXN0aW9uPTYzO2UucXVlc3Rpb25hcmFiaWM9MTU2NztlLnF1ZXN0aW9uYXJtZW5pYW49MTM3NDtlLnF1ZXN0aW9uZG93bj0xOTE7ZS5xdWVzdGlvbmRvd25zbWFsbD02MzQyMztlLnF1ZXN0aW9uZ3JlZWs9ODk0O2UucXVlc3Rpb25tb25vc3BhY2U9NjUzMTE7ZS5xdWVzdGlvbnNtYWxsPTYzMjk1O2UucXVvdGVkYmw9MzQ7ZS5xdW90ZWRibGJhc2U9ODIyMjtlLnF1b3RlZGJsbGVmdD04MjIwO2UucXVvdGVkYmxtb25vc3BhY2U9NjUyODI7ZS5xdW90ZWRibHByaW1lPTEyMzE4O2UucXVvdGVkYmxwcmltZXJldmVyc2VkPTEyMzE3O2UucXVvdGVkYmxyaWdodD04MjIxO2UucXVvdGVsZWZ0PTgyMTY7ZS5xdW90ZWxlZnRyZXZlcnNlZD04MjE5O2UucXVvdGVyZXZlcnNlZD04MjE5O2UucXVvdGVyaWdodD04MjE3O2UucXVvdGVyaWdodG49MzI5O2UucXVvdGVzaW5nbGJhc2U9ODIxODtlLnF1b3Rlc2luZ2xlPTM5O2UucXVvdGVzaW5nbGVtb25vc3BhY2U9NjUyODc7ZS5yPTExNDtlLnJhYXJtZW5pYW49MTQwNDtlLnJhYmVuZ2FsaT0yNDgwO2UucmFjdXRlPTM0MTtlLnJhZGV2YT0yMzUyO2UucmFkaWNhbD04NzMwO2UucmFkaWNhbGV4PTYzNzE3O2UucmFkb3ZlcnNzcXVhcmU9MTMyMzA7ZS5yYWRvdmVyc3NxdWFyZWRzcXVhcmU9MTMyMzE7ZS5yYWRzcXVhcmU9MTMyMjk7ZS5yYWZlPTE0NzE7ZS5yYWZlaGVicmV3PTE0NzE7ZS5yYWd1amFyYXRpPTI3MzY7ZS5yYWd1cm11a2hpPTI2MDg7ZS5yYWhpcmFnYW5hPTEyNDI1O2UucmFrYXRha2FuYT0xMjUyMTtlLnJha2F0YWthbmFoYWxmd2lkdGg9NjU0MzE7ZS5yYWxvd2VyZGlhZ29uYWxiZW5nYWxpPTI1NDU7ZS5yYW1pZGRsZWRpYWdvbmFsYmVuZ2FsaT0yNTQ0O2UucmFtc2hvcm49NjEyO2UucmF0aW89ODc1ODtlLnJib3BvbW9mbz0xMjU2NjtlLnJjYXJvbj0zNDU7ZS5yY2VkaWxsYT0zNDM7ZS5yY2lyY2xlPTk0NDE7ZS5yY29tbWFhY2NlbnQ9MzQzO2UucmRibGdyYXZlPTUyOTtlLnJkb3RhY2NlbnQ9Nzc2OTtlLnJkb3RiZWxvdz03NzcxO2UucmRvdGJlbG93bWFjcm9uPTc3NzM7ZS5yZWZlcmVuY2VtYXJrPTgyNTE7ZS5yZWZsZXhzdWJzZXQ9ODgzODtlLnJlZmxleHN1cGVyc2V0PTg4Mzk7ZS5yZWdpc3RlcmVkPTE3NDtlLnJlZ2lzdGVyc2Fucz02MzcyMDtlLnJlZ2lzdGVyc2VyaWY9NjMxOTQ7ZS5yZWhhcmFiaWM9MTU4NTtlLnJlaGFybWVuaWFuPTE0MDg7ZS5yZWhmaW5hbGFyYWJpYz02NTE5ODtlLnJlaGlyYWdhbmE9MTI0Mjg7ZS5yZWthdGFrYW5hPTEyNTI0O2UucmVrYXRha2FuYWhhbGZ3aWR0aD02NTQzNDtlLnJlc2g9MTUxMjtlLnJlc2hkYWdlc2hoZWJyZXc9NjQzMjg7ZS5yZXNoaGVicmV3PTE1MTI7ZS5yZXZlcnNlZHRpbGRlPTg3NjU7ZS5yZXZpYWhlYnJldz0xNDMxO2UucmV2aWFtdWdyYXNoaGVicmV3PTE0MzE7ZS5yZXZsb2dpY2Fsbm90PTg5NzY7ZS5yZmlzaGhvb2s9NjM4O2UucmZpc2hob29rcmV2ZXJzZWQ9NjM5O2UucmhhYmVuZ2FsaT0yNTI1O2UucmhhZGV2YT0yMzk3O2UucmhvPTk2MTtlLnJob29rPTYzNztlLnJob29rdHVybmVkPTYzNTtlLnJob29rdHVybmVkc3VwZXJpb3I9NjkzO2Uucmhvc3ltYm9sZ3JlZWs9MTAwOTtlLnJob3RpY2hvb2ttb2Q9NzM0O2UucmlldWxhY2lyY2xla29yZWFuPTEyOTEzO2UucmlldWxhcGFyZW5rb3JlYW49MTI4MTc7ZS5yaWV1bGNpcmNsZWtvcmVhbj0xMjg5OTtlLnJpZXVsaGlldWhrb3JlYW49MTI2MDg7ZS5yaWV1bGtpeWVva2tvcmVhbj0xMjYwMjtlLnJpZXVsa2l5ZW9rc2lvc2tvcmVhbj0xMjY0OTtlLnJpZXVsa29yZWFuPTEyNjAxO2UucmlldWxtaWV1bWtvcmVhbj0xMjYwMztlLnJpZXVscGFuc2lvc2tvcmVhbj0xMjY1MjtlLnJpZXVscGFyZW5rb3JlYW49MTI4MDM7ZS5yaWV1bHBoaWV1cGhrb3JlYW49MTI2MDc7ZS5yaWV1bHBpZXVwa29yZWFuPTEyNjA0O2UucmlldWxwaWV1cHNpb3Nrb3JlYW49MTI2NTE7ZS5yaWV1bHNpb3Nrb3JlYW49MTI2MDU7ZS5yaWV1bHRoaWV1dGhrb3JlYW49MTI2MDY7ZS5yaWV1bHRpa2V1dGtvcmVhbj0xMjY1MDtlLnJpZXVseWVvcmluaGlldWhrb3JlYW49MTI2NTM7ZS5yaWdodGFuZ2xlPTg3MzU7ZS5yaWdodHRhY2tiZWxvd2NtYj03OTM7ZS5yaWdodHRyaWFuZ2xlPTg4OTU7ZS5yaWhpcmFnYW5hPTEyNDI2O2UucmlrYXRha2FuYT0xMjUyMjtlLnJpa2F0YWthbmFoYWxmd2lkdGg9NjU0MzI7ZS5yaW5nPTczMDtlLnJpbmdiZWxvd2NtYj04MDU7ZS5yaW5nY21iPTc3ODtlLnJpbmdoYWxmbGVmdD03MDM7ZS5yaW5naGFsZmxlZnRhcm1lbmlhbj0xMzY5O2UucmluZ2hhbGZsZWZ0YmVsb3djbWI9Nzk2O2UucmluZ2hhbGZsZWZ0Y2VudGVyZWQ9NzIzO2UucmluZ2hhbGZyaWdodD03MDI7ZS5yaW5naGFsZnJpZ2h0YmVsb3djbWI9ODI1O2UucmluZ2hhbGZyaWdodGNlbnRlcmVkPTcyMjtlLnJpbnZlcnRlZGJyZXZlPTUzMTtlLnJpdHRvcnVzcXVhcmU9MTMxMzc7ZS5ybGluZWJlbG93PTc3NzU7ZS5ybG9uZ2xlZz02MzY7ZS5ybG9uZ2xlZ3R1cm5lZD02MzQ7ZS5ybW9ub3NwYWNlPTY1MzYyO2Uucm9oaXJhZ2FuYT0xMjQyOTtlLnJva2F0YWthbmE9MTI1MjU7ZS5yb2thdGFrYW5haGFsZndpZHRoPTY1NDM1O2Uucm9ydWF0aGFpPTM2MTk7ZS5ycGFyZW49OTM4OTtlLnJyYWJlbmdhbGk9MjUyNDtlLnJyYWRldmE9MjM1MztlLnJyYWd1cm11a2hpPTI2NTI7ZS5ycmVoYXJhYmljPTE2ODE7ZS5ycmVoZmluYWxhcmFiaWM9NjQzOTc7ZS5ycnZvY2FsaWNiZW5nYWxpPTI1Mjg7ZS5ycnZvY2FsaWNkZXZhPTI0MDA7ZS5ycnZvY2FsaWNndWphcmF0aT0yNzg0O2UucnJ2b2NhbGljdm93ZWxzaWduYmVuZ2FsaT0yNTAwO2UucnJ2b2NhbGljdm93ZWxzaWduZGV2YT0yMzcyO2UucnJ2b2NhbGljdm93ZWxzaWduZ3VqYXJhdGk9Mjc1NjtlLnJzdXBlcmlvcj02MzIxNztlLnJ0YmxvY2s9OTYxNjtlLnJ0dXJuZWQ9NjMzO2UucnR1cm5lZHN1cGVyaW9yPTY5MjtlLnJ1aGlyYWdhbmE9MTI0Mjc7ZS5ydWthdGFrYW5hPTEyNTIzO2UucnVrYXRha2FuYWhhbGZ3aWR0aD02NTQzMztlLnJ1cGVlbWFya2JlbmdhbGk9MjU0NjtlLnJ1cGVlc2lnbmJlbmdhbGk9MjU0NztlLnJ1cGlhaD02MzE5NztlLnJ1dGhhaT0zNjIwO2UucnZvY2FsaWNiZW5nYWxpPTI0NDM7ZS5ydm9jYWxpY2RldmE9MjMxNTtlLnJ2b2NhbGljZ3VqYXJhdGk9MjY5OTtlLnJ2b2NhbGljdm93ZWxzaWduYmVuZ2FsaT0yNDk5O2UucnZvY2FsaWN2b3dlbHNpZ25kZXZhPTIzNzE7ZS5ydm9jYWxpY3Zvd2Vsc2lnbmd1amFyYXRpPTI3NTU7ZS5zPTExNTtlLnNhYmVuZ2FsaT0yNDg4O2Uuc2FjdXRlPTM0NztlLnNhY3V0ZWRvdGFjY2VudD03NzgxO2Uuc2FkYXJhYmljPTE1ODk7ZS5zYWRldmE9MjM2MDtlLnNhZGZpbmFsYXJhYmljPTY1MjEwO2Uuc2FkaW5pdGlhbGFyYWJpYz02NTIxMTtlLnNhZG1lZGlhbGFyYWJpYz02NTIxMjtlLnNhZ3VqYXJhdGk9Mjc0NDtlLnNhZ3VybXVraGk9MjYxNjtlLnNhaGlyYWdhbmE9MTIzNzM7ZS5zYWthdGFrYW5hPTEyNDY5O2Uuc2FrYXRha2FuYWhhbGZ3aWR0aD02NTQwMztlLnNhbGxhbGxhaG91YWxheWhld2FzYWxsYW1hcmFiaWM9NjUwMTg7ZS5zYW1la2g9MTUwNTtlLnNhbWVraGRhZ2VzaD02NDMyMTtlLnNhbWVraGRhZ2VzaGhlYnJldz02NDMyMTtlLnNhbWVraGhlYnJldz0xNTA1O2Uuc2FyYWFhdGhhaT0zNjM0O2Uuc2FyYWFldGhhaT0zNjQ5O2Uuc2FyYWFpbWFpbWFsYWl0aGFpPTM2NTI7ZS5zYXJhYWltYWltdWFudGhhaT0zNjUxO2Uuc2FyYWFtdGhhaT0zNjM1O2Uuc2FyYWF0aGFpPTM2MzI7ZS5zYXJhZXRoYWk9MzY0ODtlLnNhcmFpaWxlZnR0aGFpPTYzNjIyO2Uuc2FyYWlpdGhhaT0zNjM3O2Uuc2FyYWlsZWZ0dGhhaT02MzYyMTtlLnNhcmFpdGhhaT0zNjM2O2Uuc2FyYW90aGFpPTM2NTA7ZS5zYXJhdWVlbGVmdHRoYWk9NjM2MjQ7ZS5zYXJhdWVldGhhaT0zNjM5O2Uuc2FyYXVlbGVmdHRoYWk9NjM2MjM7ZS5zYXJhdWV0aGFpPTM2Mzg7ZS5zYXJhdXRoYWk9MzY0MDtlLnNhcmF1dXRoYWk9MzY0MTtlLnNib3BvbW9mbz0xMjU2OTtlLnNjYXJvbj0zNTM7ZS5zY2Fyb25kb3RhY2NlbnQ9Nzc4MztlLnNjZWRpbGxhPTM1MTtlLnNjaHdhPTYwMTtlLnNjaHdhY3lyaWxsaWM9MTI0MTtlLnNjaHdhZGllcmVzaXNjeXJpbGxpYz0xMjQzO2Uuc2Nod2Fob29rPTYwMjtlLnNjaXJjbGU9OTQ0MjtlLnNjaXJjdW1mbGV4PTM0OTtlLnNjb21tYWFjY2VudD01Mzc7ZS5zZG90YWNjZW50PTc3Nzc7ZS5zZG90YmVsb3c9Nzc3OTtlLnNkb3RiZWxvd2RvdGFjY2VudD03Nzg1O2Uuc2VhZ3VsbGJlbG93Y21iPTgyODtlLnNlY29uZD04MjQzO2Uuc2Vjb25kdG9uZWNoaW5lc2U9NzE0O2Uuc2VjdGlvbj0xNjc7ZS5zZWVuYXJhYmljPTE1ODc7ZS5zZWVuZmluYWxhcmFiaWM9NjUyMDI7ZS5zZWVuaW5pdGlhbGFyYWJpYz02NTIwMztlLnNlZW5tZWRpYWxhcmFiaWM9NjUyMDQ7ZS5zZWdvbD0xNDYyO2Uuc2Vnb2wxMz0xNDYyO2Uuc2Vnb2wxZj0xNDYyO2Uuc2Vnb2wyYz0xNDYyO2Uuc2Vnb2xoZWJyZXc9MTQ2MjtlLnNlZ29sbmFycm93aGVicmV3PTE0NjI7ZS5zZWdvbHF1YXJ0ZXJoZWJyZXc9MTQ2MjtlLnNlZ29sdGFoZWJyZXc9MTQyNjtlLnNlZ29sd2lkZWhlYnJldz0xNDYyO2Uuc2VoYXJtZW5pYW49MTQwNTtlLnNlaGlyYWdhbmE9MTIzNzk7ZS5zZWthdGFrYW5hPTEyNDc1O2Uuc2VrYXRha2FuYWhhbGZ3aWR0aD02NTQwNjtlLnNlbWljb2xvbj01OTtlLnNlbWljb2xvbmFyYWJpYz0xNTYzO2Uuc2VtaWNvbG9ubW9ub3NwYWNlPTY1MzA3O2Uuc2VtaWNvbG9uc21hbGw9NjUxMDg7ZS5zZW1pdm9pY2VkbWFya2thbmE9MTI0NDQ7ZS5zZW1pdm9pY2VkbWFya2thbmFoYWxmd2lkdGg9NjU0Mzk7ZS5zZW50aXNxdWFyZT0xMzA5MDtlLnNlbnRvc3F1YXJlPTEzMDkxO2Uuc2V2ZW49NTU7ZS5zZXZlbmFyYWJpYz0xNjM5O2Uuc2V2ZW5iZW5nYWxpPTI1NDE7ZS5zZXZlbmNpcmNsZT05MzE4O2Uuc2V2ZW5jaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTI4O2Uuc2V2ZW5kZXZhPTI0MTM7ZS5zZXZlbmVpZ2h0aHM9ODU0MjtlLnNldmVuZ3VqYXJhdGk9Mjc5NztlLnNldmVuZ3VybXVraGk9MjY2OTtlLnNldmVuaGFja2FyYWJpYz0xNjM5O2Uuc2V2ZW5oYW5nemhvdT0xMjMyNztlLnNldmVuaWRlb2dyYXBoaWNwYXJlbj0xMjgzODtlLnNldmVuaW5mZXJpb3I9ODMyNztlLnNldmVubW9ub3NwYWNlPTY1MzAzO2Uuc2V2ZW5vbGRzdHlsZT02MzI4NztlLnNldmVucGFyZW49OTMzODtlLnNldmVucGVyaW9kPTkzNTg7ZS5zZXZlbnBlcnNpYW49MTc4MztlLnNldmVucm9tYW49ODU2NjtlLnNldmVuc3VwZXJpb3I9ODMxMTtlLnNldmVudGVlbmNpcmNsZT05MzI4O2Uuc2V2ZW50ZWVucGFyZW49OTM0ODtlLnNldmVudGVlbnBlcmlvZD05MzY4O2Uuc2V2ZW50aGFpPTM2NzE7ZS5zZnRoeXBoZW49MTczO2Uuc2hhYXJtZW5pYW49MTM5OTtlLnNoYWJlbmdhbGk9MjQ4NjtlLnNoYWN5cmlsbGljPTEwOTY7ZS5zaGFkZGFhcmFiaWM9MTYxNztlLnNoYWRkYWRhbW1hYXJhYmljPTY0NjA5O2Uuc2hhZGRhZGFtbWF0YW5hcmFiaWM9NjQ2MDY7ZS5zaGFkZGFmYXRoYWFyYWJpYz02NDYwODtlLnNoYWRkYWthc3JhYXJhYmljPTY0NjEwO2Uuc2hhZGRha2FzcmF0YW5hcmFiaWM9NjQ2MDc7ZS5zaGFkZT05NjE4O2Uuc2hhZGVkYXJrPTk2MTk7ZS5zaGFkZWxpZ2h0PTk2MTc7ZS5zaGFkZW1lZGl1bT05NjE4O2Uuc2hhZGV2YT0yMzU4O2Uuc2hhZ3VqYXJhdGk9Mjc0MjtlLnNoYWd1cm11a2hpPTI2MTQ7ZS5zaGFsc2hlbGV0aGVicmV3PTE0Mjc7ZS5zaGJvcG9tb2ZvPTEyNTY1O2Uuc2hjaGFjeXJpbGxpYz0xMDk3O2Uuc2hlZW5hcmFiaWM9MTU4ODtlLnNoZWVuZmluYWxhcmFiaWM9NjUyMDY7ZS5zaGVlbmluaXRpYWxhcmFiaWM9NjUyMDc7ZS5zaGVlbm1lZGlhbGFyYWJpYz02NTIwODtlLnNoZWljb3B0aWM9OTk1O2Uuc2hlcWVsPTgzNjI7ZS5zaGVxZWxoZWJyZXc9ODM2MjtlLnNoZXZhPTE0NTY7ZS5zaGV2YTExNT0xNDU2O2Uuc2hldmExNT0xNDU2O2Uuc2hldmEyMj0xNDU2O2Uuc2hldmEyZT0xNDU2O2Uuc2hldmFoZWJyZXc9MTQ1NjtlLnNoZXZhbmFycm93aGVicmV3PTE0NTY7ZS5zaGV2YXF1YXJ0ZXJoZWJyZXc9MTQ1NjtlLnNoZXZhd2lkZWhlYnJldz0xNDU2O2Uuc2hoYWN5cmlsbGljPTEyMTE7ZS5zaGltYWNvcHRpYz0xMDA1O2Uuc2hpbj0xNTEzO2Uuc2hpbmRhZ2VzaD02NDMyOTtlLnNoaW5kYWdlc2hoZWJyZXc9NjQzMjk7ZS5zaGluZGFnZXNoc2hpbmRvdD02NDMwMDtlLnNoaW5kYWdlc2hzaGluZG90aGVicmV3PTY0MzAwO2Uuc2hpbmRhZ2VzaHNpbmRvdD02NDMwMTtlLnNoaW5kYWdlc2hzaW5kb3RoZWJyZXc9NjQzMDE7ZS5zaGluZG90aGVicmV3PTE0NzM7ZS5zaGluaGVicmV3PTE1MTM7ZS5zaGluc2hpbmRvdD02NDI5ODtlLnNoaW5zaGluZG90aGVicmV3PTY0Mjk4O2Uuc2hpbnNpbmRvdD02NDI5OTtlLnNoaW5zaW5kb3RoZWJyZXc9NjQyOTk7ZS5zaG9vaz02NDI7ZS5zaWdtYT05NjM7ZS5zaWdtYTE9OTYyO2Uuc2lnbWFmaW5hbD05NjI7ZS5zaWdtYWx1bmF0ZXN5bWJvbGdyZWVrPTEwMTA7ZS5zaWhpcmFnYW5hPTEyMzc1O2Uuc2lrYXRha2FuYT0xMjQ3MTtlLnNpa2F0YWthbmFoYWxmd2lkdGg9NjU0MDQ7ZS5zaWx1cWhlYnJldz0xNDY5O2Uuc2lsdXFsZWZ0aGVicmV3PTE0Njk7ZS5zaW1pbGFyPTg3NjQ7ZS5zaW5kb3RoZWJyZXc9MTQ3NDtlLnNpb3NhY2lyY2xla29yZWFuPTEyOTE2O2Uuc2lvc2FwYXJlbmtvcmVhbj0xMjgyMDtlLnNpb3NjaWV1Y2tvcmVhbj0xMjY3MDtlLnNpb3NjaXJjbGVrb3JlYW49MTI5MDI7ZS5zaW9za2l5ZW9ra29yZWFuPTEyNjY2O2Uuc2lvc2tvcmVhbj0xMjYxMztlLnNpb3NuaWV1bmtvcmVhbj0xMjY2NztlLnNpb3NwYXJlbmtvcmVhbj0xMjgwNjtlLnNpb3NwaWV1cGtvcmVhbj0xMjY2OTtlLnNpb3N0aWtldXRrb3JlYW49MTI2Njg7ZS5zaXg9NTQ7ZS5zaXhhcmFiaWM9MTYzODtlLnNpeGJlbmdhbGk9MjU0MDtlLnNpeGNpcmNsZT05MzE3O2Uuc2l4Y2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyNztlLnNpeGRldmE9MjQxMjtlLnNpeGd1amFyYXRpPTI3OTY7ZS5zaXhndXJtdWtoaT0yNjY4O2Uuc2l4aGFja2FyYWJpYz0xNjM4O2Uuc2l4aGFuZ3pob3U9MTIzMjY7ZS5zaXhpZGVvZ3JhcGhpY3BhcmVuPTEyODM3O2Uuc2l4aW5mZXJpb3I9ODMyNjtlLnNpeG1vbm9zcGFjZT02NTMwMjtlLnNpeG9sZHN0eWxlPTYzMjg2O2Uuc2l4cGFyZW49OTMzNztlLnNpeHBlcmlvZD05MzU3O2Uuc2l4cGVyc2lhbj0xNzgyO2Uuc2l4cm9tYW49ODU2NTtlLnNpeHN1cGVyaW9yPTgzMTA7ZS5zaXh0ZWVuY2lyY2xlPTkzMjc7ZS5zaXh0ZWVuY3VycmVuY3lkZW5vbWluYXRvcmJlbmdhbGk9MjU1MztlLnNpeHRlZW5wYXJlbj05MzQ3O2Uuc2l4dGVlbnBlcmlvZD05MzY3O2Uuc2l4dGhhaT0zNjcwO2Uuc2xhc2g9NDc7ZS5zbGFzaG1vbm9zcGFjZT02NTI5NTtlLnNsb25nPTM4MztlLnNsb25nZG90YWNjZW50PTc4MzU7ZS5zbWlsZWZhY2U9OTc4NjtlLnNtb25vc3BhY2U9NjUzNjM7ZS5zb2ZwYXN1cWhlYnJldz0xNDc1O2Uuc29mdGh5cGhlbj0xNzM7ZS5zb2Z0c2lnbmN5cmlsbGljPTExMDA7ZS5zb2hpcmFnYW5hPTEyMzgxO2Uuc29rYXRha2FuYT0xMjQ3NztlLnNva2F0YWthbmFoYWxmd2lkdGg9NjU0MDc7ZS5zb2xpZHVzbG9uZ292ZXJsYXljbWI9ODI0O2Uuc29saWR1c3Nob3J0b3ZlcmxheWNtYj04MjM7ZS5zb3J1c2l0aGFpPTM2MjU7ZS5zb3NhbGF0aGFpPTM2MjQ7ZS5zb3NvdGhhaT0zNTk1O2Uuc29zdWF0aGFpPTM2MjY7ZS5zcGFjZT0zMjtlLnNwYWNlaGFja2FyYWJpYz0zMjtlLnNwYWRlPTk4MjQ7ZS5zcGFkZXN1aXRibGFjaz05ODI0O2Uuc3BhZGVzdWl0d2hpdGU9OTgyODtlLnNwYXJlbj05MzkwO2Uuc3F1YXJlYmVsb3djbWI9ODI3O2Uuc3F1YXJlY2M9MTMyNTI7ZS5zcXVhcmVjbT0xMzIxMztlLnNxdWFyZWRpYWdvbmFsY3Jvc3NoYXRjaGZpbGw9OTY0MTtlLnNxdWFyZWhvcml6b250YWxmaWxsPTk2MzY7ZS5zcXVhcmVrZz0xMzE5OTtlLnNxdWFyZWttPTEzMjE0O2Uuc3F1YXJla21jYXBpdGFsPTEzMjYyO2Uuc3F1YXJlbG49MTMyNjU7ZS5zcXVhcmVsb2c9MTMyNjY7ZS5zcXVhcmVtZz0xMzE5ODtlLnNxdWFyZW1pbD0xMzI2OTtlLnNxdWFyZW1tPTEzMjEyO2Uuc3F1YXJlbXNxdWFyZWQ9MTMyMTc7ZS5zcXVhcmVvcnRob2dvbmFsY3Jvc3NoYXRjaGZpbGw9OTYzODtlLnNxdWFyZXVwcGVybGVmdHRvbG93ZXJyaWdodGZpbGw9OTYzOTtlLnNxdWFyZXVwcGVycmlnaHR0b2xvd2VybGVmdGZpbGw9OTY0MDtlLnNxdWFyZXZlcnRpY2FsZmlsbD05NjM3O2Uuc3F1YXJld2hpdGV3aXRoc21hbGxibGFjaz05NjM1O2Uuc3JzcXVhcmU9MTMyNzU7ZS5zc2FiZW5nYWxpPTI0ODc7ZS5zc2FkZXZhPTIzNTk7ZS5zc2FndWphcmF0aT0yNzQzO2Uuc3NhbmdjaWV1Y2tvcmVhbj0xMjYxNztlLnNzYW5naGlldWhrb3JlYW49MTI2Nzc7ZS5zc2FuZ2lldW5na29yZWFuPTEyNjcyO2Uuc3NhbmdraXllb2trb3JlYW49MTI1OTQ7ZS5zc2FuZ25pZXVua29yZWFuPTEyNjQ1O2Uuc3NhbmdwaWV1cGtvcmVhbj0xMjYxMTtlLnNzYW5nc2lvc2tvcmVhbj0xMjYxNDtlLnNzYW5ndGlrZXV0a29yZWFuPTEyNjAwO2Uuc3N1cGVyaW9yPTYzMjE4O2Uuc3Rlcmxpbmc9MTYzO2Uuc3Rlcmxpbmdtb25vc3BhY2U9NjU1MDU7ZS5zdHJva2Vsb25nb3ZlcmxheWNtYj04MjI7ZS5zdHJva2VzaG9ydG92ZXJsYXljbWI9ODIxO2Uuc3Vic2V0PTg4MzQ7ZS5zdWJzZXRub3RlcXVhbD04ODQyO2Uuc3Vic2V0b3JlcXVhbD04ODM4O2Uuc3VjY2VlZHM9ODgyNztlLnN1Y2h0aGF0PTg3MTU7ZS5zdWhpcmFnYW5hPTEyMzc3O2Uuc3VrYXRha2FuYT0xMjQ3MztlLnN1a2F0YWthbmFoYWxmd2lkdGg9NjU0MDU7ZS5zdWt1bmFyYWJpYz0xNjE4O2Uuc3VtbWF0aW9uPTg3MjE7ZS5zdW49OTc4ODtlLnN1cGVyc2V0PTg4MzU7ZS5zdXBlcnNldG5vdGVxdWFsPTg4NDM7ZS5zdXBlcnNldG9yZXF1YWw9ODgzOTtlLnN2c3F1YXJlPTEzMjc2O2Uuc3lvdXdhZXJhc3F1YXJlPTEzMTgwO2UudD0xMTY7ZS50YWJlbmdhbGk9MjQ2ODtlLnRhY2tkb3duPTg4Njg7ZS50YWNrbGVmdD04ODY3O2UudGFkZXZhPTIzNDA7ZS50YWd1amFyYXRpPTI3MjQ7ZS50YWd1cm11a2hpPTI1OTY7ZS50YWhhcmFiaWM9MTU5MTtlLnRhaGZpbmFsYXJhYmljPTY1MjE4O2UudGFoaW5pdGlhbGFyYWJpYz02NTIxOTtlLnRhaGlyYWdhbmE9MTIzODM7ZS50YWhtZWRpYWxhcmFiaWM9NjUyMjA7ZS50YWlzeW91ZXJhc3F1YXJlPTEzMTgxO2UudGFrYXRha2FuYT0xMjQ3OTtlLnRha2F0YWthbmFoYWxmd2lkdGg9NjU0MDg7ZS50YXR3ZWVsYXJhYmljPTE2MDA7ZS50YXU9OTY0O2UudGF2PTE1MTQ7ZS50YXZkYWdlcz02NDMzMDtlLnRhdmRhZ2VzaD02NDMzMDtlLnRhdmRhZ2VzaGhlYnJldz02NDMzMDtlLnRhdmhlYnJldz0xNTE0O2UudGJhcj0zNTk7ZS50Ym9wb21vZm89MTI1NTQ7ZS50Y2Fyb249MzU3O2UudGNjdXJsPTY4MDtlLnRjZWRpbGxhPTM1NTtlLnRjaGVoYXJhYmljPTE2NzA7ZS50Y2hlaGZpbmFsYXJhYmljPTY0Mzc5O2UudGNoZWhpbml0aWFsYXJhYmljPTY0MzgwO2UudGNoZWhtZWRpYWxhcmFiaWM9NjQzODE7ZS50Y2lyY2xlPTk0NDM7ZS50Y2lyY3VtZmxleGJlbG93PTc3OTM7ZS50Y29tbWFhY2NlbnQ9MzU1O2UudGRpZXJlc2lzPTc4MzE7ZS50ZG90YWNjZW50PTc3ODc7ZS50ZG90YmVsb3c9Nzc4OTtlLnRlY3lyaWxsaWM9MTA5MDtlLnRlZGVzY2VuZGVyY3lyaWxsaWM9MTE5NztlLnRlaGFyYWJpYz0xNTc4O2UudGVoZmluYWxhcmFiaWM9NjUxNzQ7ZS50ZWhoYWhpbml0aWFsYXJhYmljPTY0Njc0O2UudGVoaGFoaXNvbGF0ZWRhcmFiaWM9NjQ1MjQ7ZS50ZWhpbml0aWFsYXJhYmljPTY1MTc1O2UudGVoaXJhZ2FuYT0xMjM5MDtlLnRlaGplZW1pbml0aWFsYXJhYmljPTY0NjczO2UudGVoamVlbWlzb2xhdGVkYXJhYmljPTY0NTIzO2UudGVobWFyYnV0YWFyYWJpYz0xNTc3O2UudGVobWFyYnV0YWZpbmFsYXJhYmljPTY1MTcyO2UudGVobWVkaWFsYXJhYmljPTY1MTc2O2UudGVobWVlbWluaXRpYWxhcmFiaWM9NjQ2NzY7ZS50ZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1MjY7ZS50ZWhub29uZmluYWxhcmFiaWM9NjQ2Mjc7ZS50ZWthdGFrYW5hPTEyNDg2O2UudGVrYXRha2FuYWhhbGZ3aWR0aD02NTQxMTtlLnRlbGVwaG9uZT04NDgxO2UudGVsZXBob25lYmxhY2s9OTc0MjtlLnRlbGlzaGFnZWRvbGFoZWJyZXc9MTQ0MDtlLnRlbGlzaGFxZXRhbmFoZWJyZXc9MTQ0OTtlLnRlbmNpcmNsZT05MzIxO2UudGVuaWRlb2dyYXBoaWNwYXJlbj0xMjg0MTtlLnRlbnBhcmVuPTkzNDE7ZS50ZW5wZXJpb2Q9OTM2MTtlLnRlbnJvbWFuPTg1Njk7ZS50ZXNoPTY3OTtlLnRldD0xNDk2O2UudGV0ZGFnZXNoPTY0MzEyO2UudGV0ZGFnZXNoaGVicmV3PTY0MzEyO2UudGV0aGVicmV3PTE0OTY7ZS50ZXRzZWN5cmlsbGljPTEyMDU7ZS50ZXZpcmhlYnJldz0xNDM1O2UudGV2aXJsZWZ0aGVicmV3PTE0MzU7ZS50aGFiZW5nYWxpPTI0Njk7ZS50aGFkZXZhPTIzNDE7ZS50aGFndWphcmF0aT0yNzI1O2UudGhhZ3VybXVraGk9MjU5NztlLnRoYWxhcmFiaWM9MTU4NDtlLnRoYWxmaW5hbGFyYWJpYz02NTE5NjtlLnRoYW50aGFraGF0bG93bGVmdHRoYWk9NjM2NDA7ZS50aGFudGhha2hhdGxvd3JpZ2h0dGhhaT02MzYzOTtlLnRoYW50aGFraGF0dGhhaT0zNjYwO2UudGhhbnRoYWtoYXR1cHBlcmxlZnR0aGFpPTYzNjM4O2UudGhlaGFyYWJpYz0xNTc5O2UudGhlaGZpbmFsYXJhYmljPTY1MTc4O2UudGhlaGluaXRpYWxhcmFiaWM9NjUxNzk7ZS50aGVobWVkaWFsYXJhYmljPTY1MTgwO2UudGhlcmVleGlzdHM9ODcwNztlLnRoZXJlZm9yZT04NzU2O2UudGhldGE9OTUyO2UudGhldGExPTk3NztlLnRoZXRhc3ltYm9sZ3JlZWs9OTc3O2UudGhpZXV0aGFjaXJjbGVrb3JlYW49MTI5MjE7ZS50aGlldXRoYXBhcmVua29yZWFuPTEyODI1O2UudGhpZXV0aGNpcmNsZWtvcmVhbj0xMjkwNztlLnRoaWV1dGhrb3JlYW49MTI2MjA7ZS50aGlldXRocGFyZW5rb3JlYW49MTI4MTE7ZS50aGlydGVlbmNpcmNsZT05MzI0O2UudGhpcnRlZW5wYXJlbj05MzQ0O2UudGhpcnRlZW5wZXJpb2Q9OTM2NDtlLnRob25hbmdtb250aG90aGFpPTM2MDE7ZS50aG9vaz00Mjk7ZS50aG9waHV0aGFvdGhhaT0zNjAyO2UudGhvcm49MjU0O2UudGhvdGhhaGFudGhhaT0zNjA3O2UudGhvdGhhbnRoYWk9MzYwMDtlLnRob3Rob25ndGhhaT0zNjA4O2UudGhvdGh1bmd0aGFpPTM2MDY7ZS50aG91c2FuZGN5cmlsbGljPTExNTQ7ZS50aG91c2FuZHNzZXBhcmF0b3JhcmFiaWM9MTY0NDtlLnRob3VzYW5kc3NlcGFyYXRvcnBlcnNpYW49MTY0NDtlLnRocmVlPTUxO2UudGhyZWVhcmFiaWM9MTYzNTtlLnRocmVlYmVuZ2FsaT0yNTM3O2UudGhyZWVjaXJjbGU9OTMxNDtlLnRocmVlY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyNDtlLnRocmVlZGV2YT0yNDA5O2UudGhyZWVlaWdodGhzPTg1NDA7ZS50aHJlZWd1amFyYXRpPTI3OTM7ZS50aHJlZWd1cm11a2hpPTI2NjU7ZS50aHJlZWhhY2thcmFiaWM9MTYzNTtlLnRocmVlaGFuZ3pob3U9MTIzMjM7ZS50aHJlZWlkZW9ncmFwaGljcGFyZW49MTI4MzQ7ZS50aHJlZWluZmVyaW9yPTgzMjM7ZS50aHJlZW1vbm9zcGFjZT02NTI5OTtlLnRocmVlbnVtZXJhdG9yYmVuZ2FsaT0yNTUwO2UudGhyZWVvbGRzdHlsZT02MzI4MztlLnRocmVlcGFyZW49OTMzNDtlLnRocmVlcGVyaW9kPTkzNTQ7ZS50aHJlZXBlcnNpYW49MTc3OTtlLnRocmVlcXVhcnRlcnM9MTkwO2UudGhyZWVxdWFydGVyc2VtZGFzaD02MzE5ODtlLnRocmVlcm9tYW49ODU2MjtlLnRocmVlc3VwZXJpb3I9MTc5O2UudGhyZWV0aGFpPTM2Njc7ZS50aHpzcXVhcmU9MTMyMDQ7ZS50aWhpcmFnYW5hPTEyMzg1O2UudGlrYXRha2FuYT0xMjQ4MTtlLnRpa2F0YWthbmFoYWxmd2lkdGg9NjU0MDk7ZS50aWtldXRhY2lyY2xla29yZWFuPTEyOTEyO2UudGlrZXV0YXBhcmVua29yZWFuPTEyODE2O2UudGlrZXV0Y2lyY2xla29yZWFuPTEyODk4O2UudGlrZXV0a29yZWFuPTEyNTk5O2UudGlrZXV0cGFyZW5rb3JlYW49MTI4MDI7ZS50aWxkZT03MzI7ZS50aWxkZWJlbG93Y21iPTgxNjtlLnRpbGRlY21iPTc3MTtlLnRpbGRlY29tYj03NzE7ZS50aWxkZWRvdWJsZWNtYj04NjQ7ZS50aWxkZW9wZXJhdG9yPTg3NjQ7ZS50aWxkZW92ZXJsYXljbWI9ODIwO2UudGlsZGV2ZXJ0aWNhbGNtYj04MzA7ZS50aW1lc2NpcmNsZT04ODU1O2UudGlwZWhhaGVicmV3PTE0MzA7ZS50aXBlaGFsZWZ0aGVicmV3PTE0MzA7ZS50aXBwaWd1cm11a2hpPTI2NzI7ZS50aXRsb2N5cmlsbGljY21iPTExNTU7ZS50aXduYXJtZW5pYW49MTQwNztlLnRsaW5lYmVsb3c9Nzc5MTtlLnRtb25vc3BhY2U9NjUzNjQ7ZS50b2FybWVuaWFuPTEzODU7ZS50b2hpcmFnYW5hPTEyMzkyO2UudG9rYXRha2FuYT0xMjQ4ODtlLnRva2F0YWthbmFoYWxmd2lkdGg9NjU0MTI7ZS50b25lYmFyZXh0cmFoaWdobW9kPTc0MTtlLnRvbmViYXJleHRyYWxvd21vZD03NDU7ZS50b25lYmFyaGlnaG1vZD03NDI7ZS50b25lYmFybG93bW9kPTc0NDtlLnRvbmViYXJtaWRtb2Q9NzQzO2UudG9uZWZpdmU9NDQ1O2UudG9uZXNpeD0zODk7ZS50b25ldHdvPTQyNDtlLnRvbm9zPTkwMDtlLnRvbnNxdWFyZT0xMzA5NTtlLnRvcGF0YWt0aGFpPTM1OTk7ZS50b3J0b2lzZXNoZWxsYnJhY2tldGxlZnQ9MTIzMDg7ZS50b3J0b2lzZXNoZWxsYnJhY2tldGxlZnRzbWFsbD02NTExNztlLnRvcnRvaXNlc2hlbGxicmFja2V0bGVmdHZlcnRpY2FsPTY1MDgxO2UudG9ydG9pc2VzaGVsbGJyYWNrZXRyaWdodD0xMjMwOTtlLnRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHRzbWFsbD02NTExODtlLnRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHR2ZXJ0aWNhbD02NTA4MjtlLnRvdGFvdGhhaT0zNjA1O2UudHBhbGF0YWxob29rPTQyNztlLnRwYXJlbj05MzkxO2UudHJhZGVtYXJrPTg0ODI7ZS50cmFkZW1hcmtzYW5zPTYzNzIyO2UudHJhZGVtYXJrc2VyaWY9NjMxOTU7ZS50cmV0cm9mbGV4aG9vaz02NDg7ZS50cmlhZ2RuPTk2NjA7ZS50cmlhZ2xmPTk2Njg7ZS50cmlhZ3J0PTk2NTg7ZS50cmlhZ3VwPTk2NTA7ZS50cz02Nzg7ZS50c2FkaT0xNTEwO2UudHNhZGlkYWdlc2g9NjQzMjY7ZS50c2FkaWRhZ2VzaGhlYnJldz02NDMyNjtlLnRzYWRpaGVicmV3PTE1MTA7ZS50c2VjeXJpbGxpYz0xMDk0O2UudHNlcmU9MTQ2MTtlLnRzZXJlMTI9MTQ2MTtlLnRzZXJlMWU9MTQ2MTtlLnRzZXJlMmI9MTQ2MTtlLnRzZXJlaGVicmV3PTE0NjE7ZS50c2VyZW5hcnJvd2hlYnJldz0xNDYxO2UudHNlcmVxdWFydGVyaGVicmV3PTE0NjE7ZS50c2VyZXdpZGVoZWJyZXc9MTQ2MTtlLnRzaGVjeXJpbGxpYz0xMTE1O2UudHN1cGVyaW9yPTYzMjE5O2UudHRhYmVuZ2FsaT0yNDYzO2UudHRhZGV2YT0yMzM1O2UudHRhZ3VqYXJhdGk9MjcxOTtlLnR0YWd1cm11a2hpPTI1OTE7ZS50dGVoYXJhYmljPTE2NTc7ZS50dGVoZmluYWxhcmFiaWM9NjQzNTk7ZS50dGVoaW5pdGlhbGFyYWJpYz02NDM2MDtlLnR0ZWhtZWRpYWxhcmFiaWM9NjQzNjE7ZS50dGhhYmVuZ2FsaT0yNDY0O2UudHRoYWRldmE9MjMzNjtlLnR0aGFndWphcmF0aT0yNzIwO2UudHRoYWd1cm11a2hpPTI1OTI7ZS50dHVybmVkPTY0NztlLnR1aGlyYWdhbmE9MTIzODg7ZS50dWthdGFrYW5hPTEyNDg0O2UudHVrYXRha2FuYWhhbGZ3aWR0aD02NTQxMDtlLnR1c21hbGxoaXJhZ2FuYT0xMjM4NztlLnR1c21hbGxrYXRha2FuYT0xMjQ4MztlLnR1c21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM5MTtlLnR3ZWx2ZWNpcmNsZT05MzIzO2UudHdlbHZlcGFyZW49OTM0MztlLnR3ZWx2ZXBlcmlvZD05MzYzO2UudHdlbHZlcm9tYW49ODU3MTtlLnR3ZW50eWNpcmNsZT05MzMxO2UudHdlbnR5aGFuZ3pob3U9MjEzMTY7ZS50d2VudHlwYXJlbj05MzUxO2UudHdlbnR5cGVyaW9kPTkzNzE7ZS50d289NTA7ZS50d29hcmFiaWM9MTYzNDtlLnR3b2JlbmdhbGk9MjUzNjtlLnR3b2NpcmNsZT05MzEzO2UudHdvY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyMztlLnR3b2RldmE9MjQwODtlLnR3b2RvdGVubGVhZGVyPTgyMjk7ZS50d29kb3RsZWFkZXI9ODIyOTtlLnR3b2RvdGxlYWRlcnZlcnRpY2FsPTY1MDcyO2UudHdvZ3VqYXJhdGk9Mjc5MjtlLnR3b2d1cm11a2hpPTI2NjQ7ZS50d29oYWNrYXJhYmljPTE2MzQ7ZS50d29oYW5nemhvdT0xMjMyMjtlLnR3b2lkZW9ncmFwaGljcGFyZW49MTI4MzM7ZS50d29pbmZlcmlvcj04MzIyO2UudHdvbW9ub3NwYWNlPTY1Mjk4O2UudHdvbnVtZXJhdG9yYmVuZ2FsaT0yNTQ5O2UudHdvb2xkc3R5bGU9NjMyODI7ZS50d29wYXJlbj05MzMzO2UudHdvcGVyaW9kPTkzNTM7ZS50d29wZXJzaWFuPTE3Nzg7ZS50d29yb21hbj04NTYxO2UudHdvc3Ryb2tlPTQ0MztlLnR3b3N1cGVyaW9yPTE3ODtlLnR3b3RoYWk9MzY2NjtlLnR3b3RoaXJkcz04NTMyO2UudT0xMTc7ZS51YWN1dGU9MjUwO2UudWJhcj02NDk7ZS51YmVuZ2FsaT0yNDQxO2UudWJvcG9tb2ZvPTEyNTg0O2UudWJyZXZlPTM2NTtlLnVjYXJvbj00Njg7ZS51Y2lyY2xlPTk0NDQ7ZS51Y2lyY3VtZmxleD0yNTE7ZS51Y2lyY3VtZmxleGJlbG93PTc3OTk7ZS51Y3lyaWxsaWM9MTA5MTtlLnVkYXR0YWRldmE9MjM4NTtlLnVkYmxhY3V0ZT0zNjk7ZS51ZGJsZ3JhdmU9NTMzO2UudWRldmE9MjMxMztlLnVkaWVyZXNpcz0yNTI7ZS51ZGllcmVzaXNhY3V0ZT00NzI7ZS51ZGllcmVzaXNiZWxvdz03Nzk1O2UudWRpZXJlc2lzY2Fyb249NDc0O2UudWRpZXJlc2lzY3lyaWxsaWM9MTI2NTtlLnVkaWVyZXNpc2dyYXZlPTQ3NjtlLnVkaWVyZXNpc21hY3Jvbj00NzA7ZS51ZG90YmVsb3c9NzkwOTtlLnVncmF2ZT0yNDk7ZS51Z3VqYXJhdGk9MjY5NztlLnVndXJtdWtoaT0yNTY5O2UudWhpcmFnYW5hPTEyMzU4O2UudWhvb2thYm92ZT03OTExO2UudWhvcm49NDMyO2UudWhvcm5hY3V0ZT03OTEzO2UudWhvcm5kb3RiZWxvdz03OTIxO2UudWhvcm5ncmF2ZT03OTE1O2UudWhvcm5ob29rYWJvdmU9NzkxNztlLnVob3JudGlsZGU9NzkxOTtlLnVodW5nYXJ1bWxhdXQ9MzY5O2UudWh1bmdhcnVtbGF1dGN5cmlsbGljPTEyNjc7ZS51aW52ZXJ0ZWRicmV2ZT01MzU7ZS51a2F0YWthbmE9MTI0NTQ7ZS51a2F0YWthbmFoYWxmd2lkdGg9NjUzOTU7ZS51a2N5cmlsbGljPTExNDU7ZS51a29yZWFuPTEyNjM2O2UudW1hY3Jvbj0zNjM7ZS51bWFjcm9uY3lyaWxsaWM9MTI2MztlLnVtYWNyb25kaWVyZXNpcz03ODAzO2UudW1hdHJhZ3VybXVraGk9MjYyNTtlLnVtb25vc3BhY2U9NjUzNjU7ZS51bmRlcnNjb3JlPTk1O2UudW5kZXJzY29yZWRibD04MjE1O2UudW5kZXJzY29yZW1vbm9zcGFjZT02NTM0MztlLnVuZGVyc2NvcmV2ZXJ0aWNhbD02NTA3NTtlLnVuZGVyc2NvcmV3YXZ5PTY1MTAzO2UudW5pb249ODc0NjtlLnVuaXZlcnNhbD04NzA0O2UudW9nb25laz0zNzE7ZS51cGFyZW49OTM5MjtlLnVwYmxvY2s9OTYwMDtlLnVwcGVyZG90aGVicmV3PTE0NzY7ZS51cHNpbG9uPTk2NTtlLnVwc2lsb25kaWVyZXNpcz05NzE7ZS51cHNpbG9uZGllcmVzaXN0b25vcz05NDQ7ZS51cHNpbG9ubGF0aW49NjUwO2UudXBzaWxvbnRvbm9zPTk3MztlLnVwdGFja2JlbG93Y21iPTc5NztlLnVwdGFja21vZD03MjQ7ZS51cmFndXJtdWtoaT0yNjc1O2UudXJpbmc9MzY3O2UudXNob3J0Y3lyaWxsaWM9MTExODtlLnVzbWFsbGhpcmFnYW5hPTEyMzU3O2UudXNtYWxsa2F0YWthbmE9MTI0NTM7ZS51c21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM4NTtlLnVzdHJhaWdodGN5cmlsbGljPTExOTk7ZS51c3RyYWlnaHRzdHJva2VjeXJpbGxpYz0xMjAxO2UudXRpbGRlPTM2MTtlLnV0aWxkZWFjdXRlPTc4MDE7ZS51dGlsZGViZWxvdz03Nzk3O2UudXViZW5nYWxpPTI0NDI7ZS51dWRldmE9MjMxNDtlLnV1Z3VqYXJhdGk9MjY5ODtlLnV1Z3VybXVraGk9MjU3MDtlLnV1bWF0cmFndXJtdWtoaT0yNjI2O2UudXV2b3dlbHNpZ25iZW5nYWxpPTI0OTg7ZS51dXZvd2Vsc2lnbmRldmE9MjM3MDtlLnV1dm93ZWxzaWduZ3VqYXJhdGk9Mjc1NDtlLnV2b3dlbHNpZ25iZW5nYWxpPTI0OTc7ZS51dm93ZWxzaWduZGV2YT0yMzY5O2UudXZvd2Vsc2lnbmd1amFyYXRpPTI3NTM7ZS52PTExODtlLnZhZGV2YT0yMzU3O2UudmFndWphcmF0aT0yNzQxO2UudmFndXJtdWtoaT0yNjEzO2UudmFrYXRha2FuYT0xMjUzNTtlLnZhdj0xNDkzO2UudmF2ZGFnZXNoPTY0MzA5O2UudmF2ZGFnZXNoNjU9NjQzMDk7ZS52YXZkYWdlc2hoZWJyZXc9NjQzMDk7ZS52YXZoZWJyZXc9MTQ5MztlLnZhdmhvbGFtPTY0MzMxO2UudmF2aG9sYW1oZWJyZXc9NjQzMzE7ZS52YXZ2YXZoZWJyZXc9MTUyMDtlLnZhdnlvZGhlYnJldz0xNTIxO2UudmNpcmNsZT05NDQ1O2UudmRvdGJlbG93PTc4MDc7ZS52ZWN5cmlsbGljPTEwNzQ7ZS52ZWhhcmFiaWM9MTcwMDtlLnZlaGZpbmFsYXJhYmljPTY0MzYzO2UudmVoaW5pdGlhbGFyYWJpYz02NDM2NDtlLnZlaG1lZGlhbGFyYWJpYz02NDM2NTtlLnZla2F0YWthbmE9MTI1Mzc7ZS52ZW51cz05NzkyO2UudmVydGljYWxiYXI9MTI0O2UudmVydGljYWxsaW5lYWJvdmVjbWI9NzgxO2UudmVydGljYWxsaW5lYmVsb3djbWI9ODA5O2UudmVydGljYWxsaW5lbG93bW9kPTcxNjtlLnZlcnRpY2FsbGluZW1vZD03MTI7ZS52ZXdhcm1lbmlhbj0xNDA2O2Uudmhvb2s9NjUxO2UudmlrYXRha2FuYT0xMjUzNjtlLnZpcmFtYWJlbmdhbGk9MjUwOTtlLnZpcmFtYWRldmE9MjM4MTtlLnZpcmFtYWd1amFyYXRpPTI3NjU7ZS52aXNhcmdhYmVuZ2FsaT0yNDM1O2UudmlzYXJnYWRldmE9MjMwNztlLnZpc2FyZ2FndWphcmF0aT0yNjkxO2Uudm1vbm9zcGFjZT02NTM2NjtlLnZvYXJtZW5pYW49MTQwMDtlLnZvaWNlZGl0ZXJhdGlvbmhpcmFnYW5hPTEyNDQ2O2Uudm9pY2VkaXRlcmF0aW9ua2F0YWthbmE9MTI1NDI7ZS52b2ljZWRtYXJra2FuYT0xMjQ0MztlLnZvaWNlZG1hcmtrYW5haGFsZndpZHRoPTY1NDM4O2Uudm9rYXRha2FuYT0xMjUzODtlLnZwYXJlbj05MzkzO2UudnRpbGRlPTc4MDU7ZS52dHVybmVkPTY1MjtlLnZ1aGlyYWdhbmE9MTI0MzY7ZS52dWthdGFrYW5hPTEyNTMyO2Uudz0xMTk7ZS53YWN1dGU9NzgxMTtlLndhZWtvcmVhbj0xMjYzMztlLndhaGlyYWdhbmE9MTI0MzE7ZS53YWthdGFrYW5hPTEyNTI3O2Uud2FrYXRha2FuYWhhbGZ3aWR0aD02NTQzNjtlLndha29yZWFuPTEyNjMyO2Uud2FzbWFsbGhpcmFnYW5hPTEyNDMwO2Uud2FzbWFsbGthdGFrYW5hPTEyNTI2O2Uud2F0dG9zcXVhcmU9MTMxNDM7ZS53YXZlZGFzaD0xMjMxNjtlLndhdnl1bmRlcnNjb3JldmVydGljYWw9NjUwNzY7ZS53YXdhcmFiaWM9MTYwODtlLndhd2ZpbmFsYXJhYmljPTY1MjYyO2Uud2F3aGFtemFhYm92ZWFyYWJpYz0xNTcyO2Uud2F3aGFtemFhYm92ZWZpbmFsYXJhYmljPTY1MTU4O2Uud2JzcXVhcmU9MTMyNzc7ZS53Y2lyY2xlPTk0NDY7ZS53Y2lyY3VtZmxleD0zNzM7ZS53ZGllcmVzaXM9NzgxMztlLndkb3RhY2NlbnQ9NzgxNTtlLndkb3RiZWxvdz03ODE3O2Uud2VoaXJhZ2FuYT0xMjQzMztlLndlaWVyc3RyYXNzPTg0NzI7ZS53ZWthdGFrYW5hPTEyNTI5O2Uud2Vrb3JlYW49MTI2Mzg7ZS53ZW9rb3JlYW49MTI2Mzc7ZS53Z3JhdmU9NzgwOTtlLndoaXRlYnVsbGV0PTk3MDI7ZS53aGl0ZWNpcmNsZT05Njc1O2Uud2hpdGVjaXJjbGVpbnZlcnNlPTk2ODk7ZS53aGl0ZWNvcm5lcmJyYWNrZXRsZWZ0PTEyMzAyO2Uud2hpdGVjb3JuZXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDkxO2Uud2hpdGVjb3JuZXJicmFja2V0cmlnaHQ9MTIzMDM7ZS53aGl0ZWNvcm5lcmJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDkyO2Uud2hpdGVkaWFtb25kPTk2NzE7ZS53aGl0ZWRpYW1vbmRjb250YWluaW5nYmxhY2tzbWFsbGRpYW1vbmQ9OTY3MjtlLndoaXRlZG93bnBvaW50aW5nc21hbGx0cmlhbmdsZT05NjYzO2Uud2hpdGVkb3ducG9pbnRpbmd0cmlhbmdsZT05NjYxO2Uud2hpdGVsZWZ0cG9pbnRpbmdzbWFsbHRyaWFuZ2xlPTk2Njc7ZS53aGl0ZWxlZnRwb2ludGluZ3RyaWFuZ2xlPTk2NjU7ZS53aGl0ZWxlbnRpY3VsYXJicmFja2V0bGVmdD0xMjMxMDtlLndoaXRlbGVudGljdWxhcmJyYWNrZXRyaWdodD0xMjMxMTtlLndoaXRlcmlnaHRwb2ludGluZ3NtYWxsdHJpYW5nbGU9OTY1NztlLndoaXRlcmlnaHRwb2ludGluZ3RyaWFuZ2xlPTk2NTU7ZS53aGl0ZXNtYWxsc3F1YXJlPTk2NDM7ZS53aGl0ZXNtaWxpbmdmYWNlPTk3ODY7ZS53aGl0ZXNxdWFyZT05NjMzO2Uud2hpdGVzdGFyPTk3MzQ7ZS53aGl0ZXRlbGVwaG9uZT05NzQzO2Uud2hpdGV0b3J0b2lzZXNoZWxsYnJhY2tldGxlZnQ9MTIzMTI7ZS53aGl0ZXRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHQ9MTIzMTM7ZS53aGl0ZXVwcG9pbnRpbmdzbWFsbHRyaWFuZ2xlPTk2NTM7ZS53aGl0ZXVwcG9pbnRpbmd0cmlhbmdsZT05NjUxO2Uud2loaXJhZ2FuYT0xMjQzMjtlLndpa2F0YWthbmE9MTI1Mjg7ZS53aWtvcmVhbj0xMjYzOTtlLndtb25vc3BhY2U9NjUzNjc7ZS53b2hpcmFnYW5hPTEyNDM0O2Uud29rYXRha2FuYT0xMjUzMDtlLndva2F0YWthbmFoYWxmd2lkdGg9NjUzODI7ZS53b249ODM2MTtlLndvbm1vbm9zcGFjZT02NTUxMDtlLndvd2FlbnRoYWk9MzYyMztlLndwYXJlbj05Mzk0O2Uud3Jpbmc9NzgzMjtlLndzdXBlcmlvcj02OTU7ZS53dHVybmVkPTY1MztlLnd5bm49NDQ3O2UueD0xMjA7ZS54YWJvdmVjbWI9ODI5O2UueGJvcG9tb2ZvPTEyNTYyO2UueGNpcmNsZT05NDQ3O2UueGRpZXJlc2lzPTc4MjE7ZS54ZG90YWNjZW50PTc4MTk7ZS54ZWhhcm1lbmlhbj0xMzg5O2UueGk9OTU4O2UueG1vbm9zcGFjZT02NTM2ODtlLnhwYXJlbj05Mzk1O2UueHN1cGVyaW9yPTczOTtlLnk9MTIxO2UueWFhZG9zcXVhcmU9MTMxMzQ7ZS55YWJlbmdhbGk9MjQ3OTtlLnlhY3V0ZT0yNTM7ZS55YWRldmE9MjM1MTtlLnlhZWtvcmVhbj0xMjYyNjtlLnlhZ3VqYXJhdGk9MjczNTtlLnlhZ3VybXVraGk9MjYwNztlLnlhaGlyYWdhbmE9MTI0MjA7ZS55YWthdGFrYW5hPTEyNTE2O2UueWFrYXRha2FuYWhhbGZ3aWR0aD02NTQyODtlLnlha29yZWFuPTEyNjI1O2UueWFtYWtrYW50aGFpPTM2NjI7ZS55YXNtYWxsaGlyYWdhbmE9MTI0MTk7ZS55YXNtYWxsa2F0YWthbmE9MTI1MTU7ZS55YXNtYWxsa2F0YWthbmFoYWxmd2lkdGg9NjUzODg7ZS55YXRjeXJpbGxpYz0xMTIzO2UueWNpcmNsZT05NDQ4O2UueWNpcmN1bWZsZXg9Mzc1O2UueWRpZXJlc2lzPTI1NTtlLnlkb3RhY2NlbnQ9NzgyMztlLnlkb3RiZWxvdz03OTI1O2UueWVoYXJhYmljPTE2MTA7ZS55ZWhiYXJyZWVhcmFiaWM9MTc0NjtlLnllaGJhcnJlZWZpbmFsYXJhYmljPTY0NDMxO2UueWVoZmluYWxhcmFiaWM9NjUyNjY7ZS55ZWhoYW16YWFib3ZlYXJhYmljPTE1NzQ7ZS55ZWhoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUxNjI7ZS55ZWhoYW16YWFib3ZlaW5pdGlhbGFyYWJpYz02NTE2MztlLnllaGhhbXphYWJvdmVtZWRpYWxhcmFiaWM9NjUxNjQ7ZS55ZWhpbml0aWFsYXJhYmljPTY1MjY3O2UueWVobWVkaWFsYXJhYmljPTY1MjY4O2UueWVobWVlbWluaXRpYWxhcmFiaWM9NjQ3MzM7ZS55ZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ2MDA7ZS55ZWhub29uZmluYWxhcmFiaWM9NjQ2NjA7ZS55ZWh0aHJlZWRvdHNiZWxvd2FyYWJpYz0xNzQ1O2UueWVrb3JlYW49MTI2MzA7ZS55ZW49MTY1O2UueWVubW9ub3NwYWNlPTY1NTA5O2UueWVva29yZWFuPTEyNjI5O2UueWVvcmluaGlldWhrb3JlYW49MTI2Nzg7ZS55ZXJhaGJlbnlvbW9oZWJyZXc9MTQ1MDtlLnllcmFoYmVueW9tb2xlZnRoZWJyZXc9MTQ1MDtlLnllcmljeXJpbGxpYz0xMDk5O2UueWVydWRpZXJlc2lzY3lyaWxsaWM9MTI3MztlLnllc2lldW5na29yZWFuPTEyNjczO2UueWVzaWV1bmdwYW5zaW9za29yZWFuPTEyNjc1O2UueWVzaWV1bmdzaW9za29yZWFuPTEyNjc0O2UueWV0aXZoZWJyZXc9MTQzNDtlLnlncmF2ZT03OTIzO2UueWhvb2s9NDM2O2UueWhvb2thYm92ZT03OTI3O2UueWlhcm1lbmlhbj0xMzk3O2UueWljeXJpbGxpYz0xMTExO2UueWlrb3JlYW49MTI2NDI7ZS55aW55YW5nPTk3NzU7ZS55aXduYXJtZW5pYW49MTQxMDtlLnltb25vc3BhY2U9NjUzNjk7ZS55b2Q9MTQ5NztlLnlvZGRhZ2VzaD02NDMxMztlLnlvZGRhZ2VzaGhlYnJldz02NDMxMztlLnlvZGhlYnJldz0xNDk3O2UueW9keW9kaGVicmV3PTE1MjI7ZS55b2R5b2RwYXRhaGhlYnJldz02NDI4NztlLnlvaGlyYWdhbmE9MTI0MjQ7ZS55b2lrb3JlYW49MTI2ODE7ZS55b2thdGFrYW5hPTEyNTIwO2UueW9rYXRha2FuYWhhbGZ3aWR0aD02NTQzMDtlLnlva29yZWFuPTEyNjM1O2UueW9zbWFsbGhpcmFnYW5hPTEyNDIzO2UueW9zbWFsbGthdGFrYW5hPTEyNTE5O2UueW9zbWFsbGthdGFrYW5haGFsZndpZHRoPTY1MzkwO2UueW90Z3JlZWs9MTAxMTtlLnlveWFla29yZWFuPTEyNjgwO2UueW95YWtvcmVhbj0xMjY3OTtlLnlveWFrdGhhaT0zNjE4O2UueW95aW5ndGhhaT0zNTk3O2UueXBhcmVuPTkzOTY7ZS55cG9nZWdyYW1tZW5pPTg5MDtlLnlwb2dlZ3JhbW1lbmlncmVla2NtYj04Mzc7ZS55cj00MjI7ZS55cmluZz03ODMzO2UueXN1cGVyaW9yPTY5NjtlLnl0aWxkZT03OTI5O2UueXR1cm5lZD02NTQ7ZS55dWhpcmFnYW5hPTEyNDIyO2UueXVpa29yZWFuPTEyNjg0O2UueXVrYXRha2FuYT0xMjUxODtlLnl1a2F0YWthbmFoYWxmd2lkdGg9NjU0Mjk7ZS55dWtvcmVhbj0xMjY0MDtlLnl1c2JpZ2N5cmlsbGljPTExMzE7ZS55dXNiaWdpb3RpZmllZGN5cmlsbGljPTExMzM7ZS55dXNsaXR0bGVjeXJpbGxpYz0xMTI3O2UueXVzbGl0dGxlaW90aWZpZWRjeXJpbGxpYz0xMTI5O2UueXVzbWFsbGhpcmFnYW5hPTEyNDIxO2UueXVzbWFsbGthdGFrYW5hPTEyNTE3O2UueXVzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg5O2UueXV5ZWtvcmVhbj0xMjY4MztlLnl1eWVva29yZWFuPTEyNjgyO2UueXlhYmVuZ2FsaT0yNTI3O2UueXlhZGV2YT0yMzk5O2Uuej0xMjI7ZS56YWFybWVuaWFuPTEzODI7ZS56YWN1dGU9Mzc4O2UuemFkZXZhPTIzOTU7ZS56YWd1cm11a2hpPTI2NTE7ZS56YWhhcmFiaWM9MTU5MjtlLnphaGZpbmFsYXJhYmljPTY1MjIyO2UuemFoaW5pdGlhbGFyYWJpYz02NTIyMztlLnphaGlyYWdhbmE9MTIzNzQ7ZS56YWhtZWRpYWxhcmFiaWM9NjUyMjQ7ZS56YWluYXJhYmljPTE1ODY7ZS56YWluZmluYWxhcmFiaWM9NjUyMDA7ZS56YWthdGFrYW5hPTEyNDcwO2UuemFxZWZnYWRvbGhlYnJldz0xNDI5O2UuemFxZWZxYXRhbmhlYnJldz0xNDI4O2UuemFycWFoZWJyZXc9MTQzMjtlLnpheWluPTE0OTQ7ZS56YXlpbmRhZ2VzaD02NDMxMDtlLnpheWluZGFnZXNoaGVicmV3PTY0MzEwO2UuemF5aW5oZWJyZXc9MTQ5NDtlLnpib3BvbW9mbz0xMjU2NztlLnpjYXJvbj0zODI7ZS56Y2lyY2xlPTk0NDk7ZS56Y2lyY3VtZmxleD03ODI1O2UuemN1cmw9NjU3O2UuemRvdD0zODA7ZS56ZG90YWNjZW50PTM4MDtlLnpkb3RiZWxvdz03ODI3O2UuemVjeXJpbGxpYz0xMDc5O2UuemVkZXNjZW5kZXJjeXJpbGxpYz0xMTc3O2UuemVkaWVyZXNpc2N5cmlsbGljPTEyNDc7ZS56ZWhpcmFnYW5hPTEyMzgwO2UuemVrYXRha2FuYT0xMjQ3NjtlLnplcm89NDg7ZS56ZXJvYXJhYmljPTE2MzI7ZS56ZXJvYmVuZ2FsaT0yNTM0O2UuemVyb2RldmE9MjQwNjtlLnplcm9ndWphcmF0aT0yNzkwO2UuemVyb2d1cm11a2hpPTI2NjI7ZS56ZXJvaGFja2FyYWJpYz0xNjMyO2UuemVyb2luZmVyaW9yPTgzMjA7ZS56ZXJvbW9ub3NwYWNlPTY1Mjk2O2UuemVyb29sZHN0eWxlPTYzMjgwO2UuemVyb3BlcnNpYW49MTc3NjtlLnplcm9zdXBlcmlvcj04MzA0O2UuemVyb3RoYWk9MzY2NDtlLnplcm93aWR0aGpvaW5lcj02NTI3OTtlLnplcm93aWR0aG5vbmpvaW5lcj04MjA0O2UuemVyb3dpZHRoc3BhY2U9ODIwMztlLnpldGE9OTUwO2Uuemhib3BvbW9mbz0xMjU2MztlLnpoZWFybWVuaWFuPTEzODY7ZS56aGVicmV2ZWN5cmlsbGljPTEyMTg7ZS56aGVjeXJpbGxpYz0xMDc4O2UuemhlZGVzY2VuZGVyY3lyaWxsaWM9MTE3NTtlLnpoZWRpZXJlc2lzY3lyaWxsaWM9MTI0NTtlLnppaGlyYWdhbmE9MTIzNzY7ZS56aWthdGFrYW5hPTEyNDcyO2Uuemlub3JoZWJyZXc9MTQ1NDtlLnpsaW5lYmVsb3c9NzgyOTtlLnptb25vc3BhY2U9NjUzNzA7ZS56b2hpcmFnYW5hPTEyMzgyO2Uuem9rYXRha2FuYT0xMjQ3ODtlLnpwYXJlbj05Mzk3O2UuenJldHJvZmxleGhvb2s9NjU2O2UuenN0cm9rZT00Mzg7ZS56dWhpcmFnYW5hPTEyMzc4O2UuenVrYXRha2FuYT0xMjQ3NDtlWyIubm90ZGVmIl09MDtlLmFuZ2JyYWNrZXRsZWZ0YmlnPTkwMDE7ZS5hbmdicmFja2V0bGVmdEJpZz05MDAxO2UuYW5nYnJhY2tldGxlZnRiaWdnPTkwMDE7ZS5hbmdicmFja2V0bGVmdEJpZ2c9OTAwMTtlLmFuZ2JyYWNrZXRyaWdodEJpZz05MDAyO2UuYW5nYnJhY2tldHJpZ2h0YmlnPTkwMDI7ZS5hbmdicmFja2V0cmlnaHRCaWdnPTkwMDI7ZS5hbmdicmFja2V0cmlnaHRiaWdnPTkwMDI7ZS5hcnJvd2hvb2tsZWZ0PTg2MTg7ZS5hcnJvd2hvb2tyaWdodD04NjE3O2UuYXJyb3dsZWZ0dG9waGFsZj04NjM2O2UuYXJyb3dsZWZ0Ym90aGFsZj04NjM3O2UuYXJyb3dub3J0aGVhc3Q9ODU5OTtlLmFycm93bm9ydGh3ZXN0PTg1OTg7ZS5hcnJvd3JpZ2h0dG9waGFsZj04NjQwO2UuYXJyb3dyaWdodGJvdGhhbGY9ODY0MTtlLmFycm93c291dGhlYXN0PTg2MDA7ZS5hcnJvd3NvdXRod2VzdD04NjAxO2UuYmFja3NsYXNoYmlnPTg3MjY7ZS5iYWNrc2xhc2hCaWc9ODcyNjtlLmJhY2tzbGFzaEJpZ2c9ODcyNjtlLmJhY2tzbGFzaGJpZ2c9ODcyNjtlLmJhcmRibD04MjE0O2UuYnJhY2VodGlwZG93bmxlZnQ9NjUwNzk7ZS5icmFjZWh0aXBkb3ducmlnaHQ9NjUwNzk7ZS5icmFjZWh0aXB1cGxlZnQ9NjUwODA7ZS5icmFjZWh0aXB1cHJpZ2h0PTY1MDgwO2UuYnJhY2VsZWZ0QmlnPTEyMztlLmJyYWNlbGVmdGJpZz0xMjM7ZS5icmFjZWxlZnRiaWdnPTEyMztlLmJyYWNlbGVmdEJpZ2c9MTIzO2UuYnJhY2VyaWdodEJpZz0xMjU7ZS5icmFjZXJpZ2h0YmlnPTEyNTtlLmJyYWNlcmlnaHRiaWdnPTEyNTtlLmJyYWNlcmlnaHRCaWdnPTEyNTtlLmJyYWNrZXRsZWZ0YmlnPTkxO2UuYnJhY2tldGxlZnRCaWc9OTE7ZS5icmFja2V0bGVmdGJpZ2c9OTE7ZS5icmFja2V0bGVmdEJpZ2c9OTE7ZS5icmFja2V0cmlnaHRCaWc9OTM7ZS5icmFja2V0cmlnaHRiaWc9OTM7ZS5icmFja2V0cmlnaHRiaWdnPTkzO2UuYnJhY2tldHJpZ2h0QmlnZz05MztlLmNlaWxpbmdsZWZ0YmlnPTg5Njg7ZS5jZWlsaW5nbGVmdEJpZz04OTY4O2UuY2VpbGluZ2xlZnRCaWdnPTg5Njg7ZS5jZWlsaW5nbGVmdGJpZ2c9ODk2ODtlLmNlaWxpbmdyaWdodGJpZz04OTY5O2UuY2VpbGluZ3JpZ2h0QmlnPTg5Njk7ZS5jZWlsaW5ncmlnaHRiaWdnPTg5Njk7ZS5jZWlsaW5ncmlnaHRCaWdnPTg5Njk7ZS5jaXJjbGVkb3RkaXNwbGF5PTg4NTc7ZS5jaXJjbGVkb3R0ZXh0PTg4NTc7ZS5jaXJjbGVtdWx0aXBseWRpc3BsYXk9ODg1NTtlLmNpcmNsZW11bHRpcGx5dGV4dD04ODU1O2UuY2lyY2xlcGx1c2Rpc3BsYXk9ODg1MztlLmNpcmNsZXBsdXN0ZXh0PTg4NTM7ZS5jb250aW50ZWdyYWxkaXNwbGF5PTg3NTA7ZS5jb250aW50ZWdyYWx0ZXh0PTg3NTA7ZS5jb3Byb2R1Y3RkaXNwbGF5PTg3MjA7ZS5jb3Byb2R1Y3R0ZXh0PTg3MjA7ZS5mbG9vcmxlZnRCaWc9ODk3MDtlLmZsb29ybGVmdGJpZz04OTcwO2UuZmxvb3JsZWZ0YmlnZz04OTcwO2UuZmxvb3JsZWZ0QmlnZz04OTcwO2UuZmxvb3JyaWdodGJpZz04OTcxO2UuZmxvb3JyaWdodEJpZz04OTcxO2UuZmxvb3JyaWdodEJpZ2c9ODk3MTtlLmZsb29ycmlnaHRiaWdnPTg5NzE7ZS5oYXR3aWRlPTc3MDtlLmhhdHdpZGVyPTc3MDtlLmhhdHdpZGVzdD03NzA7ZS5pbnRlcmNhbD03NDg4O2UuaW50ZWdyYWxkaXNwbGF5PTg3NDc7ZS5pbnRlZ3JhbHRleHQ9ODc0NztlLmludGVyc2VjdGlvbmRpc3BsYXk9ODg5ODtlLmludGVyc2VjdGlvbnRleHQ9ODg5ODtlLmxvZ2ljYWxhbmRkaXNwbGF5PTg3NDM7ZS5sb2dpY2FsYW5kdGV4dD04NzQzO2UubG9naWNhbG9yZGlzcGxheT04NzQ0O2UubG9naWNhbG9ydGV4dD04NzQ0O2UucGFyZW5sZWZ0QmlnPTQwO2UucGFyZW5sZWZ0YmlnPTQwO2UucGFyZW5sZWZ0QmlnZz00MDtlLnBhcmVubGVmdGJpZ2c9NDA7ZS5wYXJlbnJpZ2h0QmlnPTQxO2UucGFyZW5yaWdodGJpZz00MTtlLnBhcmVucmlnaHRCaWdnPTQxO2UucGFyZW5yaWdodGJpZ2c9NDE7ZS5wcmltZT04MjQyO2UucHJvZHVjdGRpc3BsYXk9ODcxOTtlLnByb2R1Y3R0ZXh0PTg3MTk7ZS5yYWRpY2FsYmlnPTg3MzA7ZS5yYWRpY2FsQmlnPTg3MzA7ZS5yYWRpY2FsQmlnZz04NzMwO2UucmFkaWNhbGJpZ2c9ODczMDtlLnJhZGljYWxidD04NzMwO2UucmFkaWNhbHRwPTg3MzA7ZS5yYWRpY2FsdmVydGV4PTg3MzA7ZS5zbGFzaGJpZz00NztlLnNsYXNoQmlnPTQ3O2Uuc2xhc2hCaWdnPTQ3O2Uuc2xhc2hiaWdnPTQ3O2Uuc3VtbWF0aW9uZGlzcGxheT04NzIxO2Uuc3VtbWF0aW9udGV4dD04NzIxO2UudGlsZGV3aWRlPTczMjtlLnRpbGRld2lkZXI9NzMyO2UudGlsZGV3aWRlc3Q9NzMyO2UudW5pb25kaXNwbGF5PTg4OTk7ZS51bmlvbm11bHRpZGlzcGxheT04ODQ2O2UudW5pb25tdWx0aXRleHQ9ODg0NjtlLnVuaW9uc3FkaXNwbGF5PTg4NTI7ZS51bmlvbnNxdGV4dD04ODUyO2UudW5pb250ZXh0PTg4OTk7ZS52ZXh0ZW5kZG91YmxlPTg3NDE7ZS52ZXh0ZW5kc2luZ2xlPTg3Mzl9KSxiYT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0zMjtlLmExPTk5ODU7ZS5hMj05OTg2O2UuYTIwMj05OTg3O2UuYTM9OTk4ODtlLmE0PTk3NDI7ZS5hNT05OTkwO2UuYTExOT05OTkxO2UuYTExOD05OTkyO2UuYTExNz05OTkzO2UuYTExPTk3NTU7ZS5hMTI9OTc1ODtlLmExMz05OTk2O2UuYTE0PTk5OTc7ZS5hMTU9OTk5ODtlLmExNj05OTk5O2UuYTEwNT0xZTQ7ZS5hMTc9MTAwMDE7ZS5hMTg9MTAwMDI7ZS5hMTk9MTAwMDM7ZS5hMjA9MTAwMDQ7ZS5hMjE9MTAwMDU7ZS5hMjI9MTAwMDY7ZS5hMjM9MTAwMDc7ZS5hMjQ9MTAwMDg7ZS5hMjU9MTAwMDk7ZS5hMjY9MTAwMTA7ZS5hMjc9MTAwMTE7ZS5hMjg9MTAwMTI7ZS5hNj0xMDAxMztlLmE3PTEwMDE0O2UuYTg9MTAwMTU7ZS5hOT0xMDAxNjtlLmExMD0xMDAxNztlLmEyOT0xMDAxODtlLmEzMD0xMDAxOTtlLmEzMT0xMDAyMDtlLmEzMj0xMDAyMTtlLmEzMz0xMDAyMjtlLmEzND0xMDAyMztlLmEzNT05NzMzO2UuYTM2PTEwMDI1O2UuYTM3PTEwMDI2O2UuYTM4PTEwMDI3O2UuYTM5PTEwMDI4O2UuYTQwPTEwMDI5O2UuYTQxPTEwMDMwO2UuYTQyPTEwMDMxO2UuYTQzPTEwMDMyO2UuYTQ0PTEwMDMzO2UuYTQ1PTEwMDM0O2UuYTQ2PTEwMDM1O2UuYTQ3PTEwMDM2O2UuYTQ4PTEwMDM3O2UuYTQ5PTEwMDM4O2UuYTUwPTEwMDM5O2UuYTUxPTEwMDQwO2UuYTUyPTEwMDQxO2UuYTUzPTEwMDQyO2UuYTU0PTEwMDQzO2UuYTU1PTEwMDQ0O2UuYTU2PTEwMDQ1O2UuYTU3PTEwMDQ2O2UuYTU4PTEwMDQ3O2UuYTU5PTEwMDQ4O2UuYTYwPTEwMDQ5O2UuYTYxPTEwMDUwO2UuYTYyPTEwMDUxO2UuYTYzPTEwMDUyO2UuYTY0PTEwMDUzO2UuYTY1PTEwMDU0O2UuYTY2PTEwMDU1O2UuYTY3PTEwMDU2O2UuYTY4PTEwMDU3O2UuYTY5PTEwMDU4O2UuYTcwPTEwMDU5O2UuYTcxPTk2Nzk7ZS5hNzI9MTAwNjE7ZS5hNzM9OTYzMjtlLmE3ND0xMDA2MztlLmEyMDM9MTAwNjQ7ZS5hNzU9MTAwNjU7ZS5hMjA0PTEwMDY2O2UuYTc2PTk2NTA7ZS5hNzc9OTY2MDtlLmE3OD05NjcwO2UuYTc5PTEwMDcwO2UuYTgxPTk2ODc7ZS5hODI9MTAwNzI7ZS5hODM9MTAwNzM7ZS5hODQ9MTAwNzQ7ZS5hOTc9MTAwNzU7ZS5hOTg9MTAwNzY7ZS5hOTk9MTAwNzc7ZS5hMTAwPTEwMDc4O2UuYTEwMT0xMDA4MTtlLmExMDI9MTAwODI7ZS5hMTAzPTEwMDgzO2UuYTEwND0xMDA4NDtlLmExMDY9MTAwODU7ZS5hMTA3PTEwMDg2O2UuYTEwOD0xMDA4NztlLmExMTI9OTgyNztlLmExMTE9OTgzMDtlLmExMTA9OTgyOTtlLmExMDk9OTgyNDtlLmExMjA9OTMxMjtlLmExMjE9OTMxMztlLmExMjI9OTMxNDtlLmExMjM9OTMxNTtlLmExMjQ9OTMxNjtlLmExMjU9OTMxNztlLmExMjY9OTMxODtlLmExMjc9OTMxOTtlLmExMjg9OTMyMDtlLmExMjk9OTMyMTtlLmExMzA9MTAxMDI7ZS5hMTMxPTEwMTAzO2UuYTEzMj0xMDEwNDtlLmExMzM9MTAxMDU7ZS5hMTM0PTEwMTA2O2UuYTEzNT0xMDEwNztlLmExMzY9MTAxMDg7ZS5hMTM3PTEwMTA5O2UuYTEzOD0xMDExMDtlLmExMzk9MTAxMTE7ZS5hMTQwPTEwMTEyO2UuYTE0MT0xMDExMztlLmExNDI9MTAxMTQ7ZS5hMTQzPTEwMTE1O2UuYTE0ND0xMDExNjtlLmExNDU9MTAxMTc7ZS5hMTQ2PTEwMTE4O2UuYTE0Nz0xMDExOTtlLmExNDg9MTAxMjA7ZS5hMTQ5PTEwMTIxO2UuYTE1MD0xMDEyMjtlLmExNTE9MTAxMjM7ZS5hMTUyPTEwMTI0O2UuYTE1Mz0xMDEyNTtlLmExNTQ9MTAxMjY7ZS5hMTU1PTEwMTI3O2UuYTE1Nj0xMDEyODtlLmExNTc9MTAxMjk7ZS5hMTU4PTEwMTMwO2UuYTE1OT0xMDEzMTtlLmExNjA9MTAxMzI7ZS5hMTYxPTg1OTQ7ZS5hMTYzPTg1OTY7ZS5hMTY0PTg1OTc7ZS5hMTk2PTEwMTM2O2UuYTE2NT0xMDEzNztlLmExOTI9MTAxMzg7ZS5hMTY2PTEwMTM5O2UuYTE2Nz0xMDE0MDtlLmExNjg9MTAxNDE7ZS5hMTY5PTEwMTQyO2UuYTE3MD0xMDE0MztlLmExNzE9MTAxNDQ7ZS5hMTcyPTEwMTQ1O2UuYTE3Mz0xMDE0NjtlLmExNjI9MTAxNDc7ZS5hMTc0PTEwMTQ4O2UuYTE3NT0xMDE0OTtlLmExNzY9MTAxNTA7ZS5hMTc3PTEwMTUxO2UuYTE3OD0xMDE1MjtlLmExNzk9MTAxNTM7ZS5hMTkzPTEwMTU0O2UuYTE4MD0xMDE1NTtlLmExOTk9MTAxNTY7ZS5hMTgxPTEwMTU3O2UuYTIwMD0xMDE1ODtlLmExODI9MTAxNTk7ZS5hMjAxPTEwMTYxO2UuYTE4Mz0xMDE2MjtlLmExODQ9MTAxNjM7ZS5hMTk3PTEwMTY0O2UuYTE4NT0xMDE2NTtlLmExOTQ9MTAxNjY7ZS5hMTk4PTEwMTY3O2UuYTE4Nj0xMDE2ODtlLmExOTU9MTAxNjk7ZS5hMTg3PTEwMTcwO2UuYTE4OD0xMDE3MTtlLmExODk9MTAxNzI7ZS5hMTkwPTEwMTczO2UuYTE5MT0xMDE3NDtlLmE4OT0xMDA4ODtlLmE5MD0xMDA4OTtlLmE5Mz0xMDA5MDtlLmE5ND0xMDA5MTtlLmE5MT0xMDA5MjtlLmE5Mj0xMDA5MztlLmEyMDU9MTAwOTQ7ZS5hODU9MTAwOTU7ZS5hMjA2PTEwMDk2O2UuYTg2PTEwMDk3O2UuYTg3PTEwMDk4O2UuYTg4PTEwMDk5O2UuYTk1PTEwMTAwO2UuYTk2PTEwMTAxO2VbIi5ub3RkZWYiXT0wfSksd2E9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2VbNjM3MjFdPTE2OTtlWzYzMTkzXT0xNjk7ZVs2MzcyMF09MTc0O2VbNjMxOTRdPTE3NDtlWzYzNzIyXT04NDgyO2VbNjMxOTVdPTg0ODI7ZVs2MzcyOV09OTEyNztlWzYzNzMwXT05MTI4O2VbNjM3MzFdPTkxMjk7ZVs2Mzc0MF09OTEzMTtlWzYzNzQxXT05MTMyO2VbNjM3NDJdPTkxMzM7ZVs2MzcyNl09OTEyMTtlWzYzNzI3XT05MTIyO2VbNjM3MjhdPTkxMjM7ZVs2MzczN109OTEyNDtlWzYzNzM4XT05MTI1O2VbNjM3MzldPTkxMjY7ZVs2MzcyM109OTExNTtlWzYzNzI0XT05MTE2O2VbNjM3MjVdPTkxMTc7ZVs2MzczNF09OTExODtlWzYzNzM1XT05MTE5O2VbNjM3MzZdPTkxMjB9KTtmdW5jdGlvbiBnZXRVbmljb2RlRm9yR2x5cGgoZSx0KXtsZXQgbj10W2VdO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG47aWYoIWUpcmV0dXJuLTE7aWYoInUiPT09ZVswXSl7Y29uc3QgdD1lLmxlbmd0aDtsZXQgYTtpZig3PT09dCYmIm4iPT09ZVsxXSYmImkiPT09ZVsyXSlhPWUuc3Vic3RyaW5nKDMpO2Vsc2V7aWYoISh0Pj01JiZ0PD03KSlyZXR1cm4tMTthPWUuc3Vic3RyaW5nKDEpfWlmKGE9PT1hLnRvVXBwZXJDYXNlKCkpe249cGFyc2VJbnQoYSwxNik7aWYobj49MClyZXR1cm4gbn19cmV0dXJuLTF9Y29uc3QgamE9W1swLDEyN10sWzEyOCwyNTVdLFsyNTYsMzgzXSxbMzg0LDU5MV0sWzU5Miw2ODcsNzQyNCw3NTUxLDc1NTIsNzYxNV0sWzY4OCw3NjcsNDI3NTIsNDI3ODNdLFs3NjgsODc5LDc2MTYsNzY3OV0sWzg4MCwxMDIzXSxbMTEzOTIsMTE1MTldLFsxMDI0LDEyNzksMTI4MCwxMzI3LDExNzQ0LDExNzc1LDQyNTYwLDQyNjU1XSxbMTMyOCwxNDIzXSxbMTQyNCwxNTM1XSxbNDIyNDAsNDI1NTldLFsxNTM2LDE3OTEsMTg3MiwxOTE5XSxbMTk4NCwyMDQ3XSxbMjMwNCwyNDMxXSxbMjQzMiwyNTU5XSxbMjU2MCwyNjg3XSxbMjY4OCwyODE1XSxbMjgxNiwyOTQzXSxbMjk0NCwzMDcxXSxbMzA3MiwzMTk5XSxbMzIwMCwzMzI3XSxbMzMyOCwzNDU1XSxbMzU4NCwzNzExXSxbMzcxMiwzODM5XSxbNDI1Niw0MzUxLDExNTIwLDExNTY3XSxbNjkxMiw3MDM5XSxbNDM1Miw0NjA3XSxbNzY4MCw3OTM1LDExMzYwLDExMzkxLDQyNzg0LDQzMDA3XSxbNzkzNiw4MTkxXSxbODE5Miw4MzAzLDExNzc2LDExOTAzXSxbODMwNCw4MzUxXSxbODM1Miw4Mzk5XSxbODQwMCw4NDQ3XSxbODQ0OCw4NTI3XSxbODUyOCw4NTkxXSxbODU5Miw4NzAzLDEwMjI0LDEwMjM5LDEwNDk2LDEwNjIzLDExMDA4LDExMjYzXSxbODcwNCw4OTU5LDEwNzUyLDExMDA3LDEwMTc2LDEwMjIzLDEwNjI0LDEwNzUxXSxbODk2MCw5MjE1XSxbOTIxNiw5Mjc5XSxbOTI4MCw5MzExXSxbOTMxMiw5NDcxXSxbOTQ3Miw5NTk5XSxbOTYwMCw5NjMxXSxbOTYzMiw5NzI3XSxbOTcyOCw5OTgzXSxbOTk4NCwxMDE3NV0sWzEyMjg4LDEyMzUxXSxbMTIzNTIsMTI0NDddLFsxMjQ0OCwxMjU0MywxMjc4NCwxMjc5OV0sWzEyNTQ0LDEyNTkxLDEyNzA0LDEyNzM1XSxbMTI1OTIsMTI2ODddLFs0MzA3Miw0MzEzNV0sWzEyODAwLDEzMDU1XSxbMTMwNTYsMTMzMTFdLFs0NDAzMiw1NTIxNV0sWzU1Mjk2LDU3MzQzXSxbNjc4NDAsNjc4NzFdLFsxOTk2OCw0MDk1OSwxMTkwNCwxMjAzMSwxMjAzMiwxMjI1NSwxMjI3MiwxMjI4NywxMzMxMiwxOTkwMywxMzEwNzIsMTczNzkxLDEyNjg4LDEyNzAzXSxbNTczNDQsNjM3NDNdLFsxMjczNiwxMjc4Myw2Mzc0NCw2NDI1NSwxOTQ1NjAsMTk1MTAzXSxbNjQyNTYsNjQzMzVdLFs2NDMzNiw2NTAyM10sWzY1MDU2LDY1MDcxXSxbNjUwNDAsNjUwNTVdLFs2NTEwNCw2NTEzNV0sWzY1MTM2LDY1Mjc5XSxbNjUyODAsNjU1MTldLFs2NTUyMCw2NTUzNV0sWzM4NDAsNDA5NV0sWzE3OTIsMTg3MV0sWzE5MjAsMTk4M10sWzM0NTYsMzU4M10sWzQwOTYsNDI1NV0sWzQ2MDgsNDk5MSw0OTkyLDUwMjMsMTE2NDgsMTE3NDNdLFs1MDI0LDUxMTldLFs1MTIwLDU3NTldLFs1NzYwLDU3OTFdLFs1NzkyLDU4ODddLFs2MDE2LDYxNDNdLFs2MTQ0LDYzMTldLFsxMDI0MCwxMDQ5NV0sWzQwOTYwLDQyMTI3XSxbNTg4OCw1OTE5LDU5MjAsNTk1MSw1OTUyLDU5ODMsNTk4NCw2MDE1XSxbNjYzMDQsNjYzNTFdLFs2NjM1Miw2NjM4M10sWzY2NTYwLDY2NjM5XSxbMTE4Nzg0LDExOTAzOSwxMTkwNDAsMTE5Mjk1LDExOTI5NiwxMTkzNzVdLFsxMTk4MDgsMTIwODMxXSxbMTA0NDQ4MCwxMDQ4NTczXSxbNjUwMjQsNjUwMzksOTE3NzYwLDkxNzk5OV0sWzkxNzUwNCw5MTc2MzFdLFs2NDAwLDY0NzldLFs2NDgwLDY1MjddLFs2NTI4LDY2MjNdLFs2NjU2LDY2ODddLFsxMTI2NCwxMTM1OV0sWzExNTY4LDExNjQ3XSxbMTk5MDQsMTk5NjddLFs0MzAwOCw0MzA1NV0sWzY1NTM2LDY1NjYzLDY1NjY0LDY1NzkxLDY1NzkyLDY1ODU1XSxbNjU4NTYsNjU5MzVdLFs2NjQzMiw2NjQ2M10sWzY2NDY0LDY2NTI3XSxbNjY2NDAsNjY2ODddLFs2NjY4OCw2NjczNV0sWzY3NTg0LDY3NjQ3XSxbNjgwOTYsNjgxOTFdLFsxMTk1NTIsMTE5NjQ3XSxbNzM3MjgsNzQ3NTEsNzQ3NTIsNzQ4NzldLFsxMTk2NDgsMTE5Njc5XSxbNzA0MCw3MTAzXSxbNzE2OCw3MjQ3XSxbNzI0OCw3Mjk1XSxbNDMxMzYsNDMyMzFdLFs0MzI2NCw0MzMxMV0sWzQzMzEyLDQzMzU5XSxbNDM1MjAsNDM2MTVdLFs2NTkzNiw2NTk5OV0sWzY2ZTMsNjYwNDddLFs2NjIwOCw2NjI3MSw2NjE3Niw2NjIwNyw2Nzg3Miw2NzkwM10sWzEyNzAyNCwxMjcxMzUsMTI2OTc2LDEyNzAyM11dO2Z1bmN0aW9uIGdldFVuaWNvZGVSYW5nZUZvcihlLHQ9LTEpe2lmKC0xIT09dCl7Y29uc3Qgbj1qYVt0XTtmb3IobGV0IGE9MCxzPW4ubGVuZ3RoO2E8czthKz0yKWlmKGU+PW5bYV0mJmU8PW5bYSsxXSlyZXR1cm4gdH1mb3IobGV0IHQ9MCxuPWphLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPWphW3RdO2ZvcihsZXQgYT0wLHM9bi5sZW5ndGg7YTxzO2ErPTIpaWYoZT49blthXSYmZTw9blthKzFdKXJldHVybiB0fXJldHVybi0xfWNvbnN0IGthPW5ldyBSZWdFeHAoIl4oXFxzKXwoXFxwe01ufSl8KFxccHtDZn0pJCIsInUiKSx5YT1uZXcgTWFwO2NvbnN0IHFhPSEwLHZhPTEsU2E9Mix4YT00LEFhPTMyLENhPVsiLm5vdGRlZiIsIi5udWxsIiwibm9ubWFya2luZ3JldHVybiIsInNwYWNlIiwiZXhjbGFtIiwicXVvdGVkYmwiLCJudW1iZXJzaWduIiwiZG9sbGFyIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInF1b3Rlc2luZ2xlIiwicGFyZW5sZWZ0IiwicGFyZW5yaWdodCIsImFzdGVyaXNrIiwicGx1cyIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwic2xhc2giLCJ6ZXJvIiwib25lIiwidHdvIiwidGhyZWUiLCJmb3VyIiwiZml2ZSIsInNpeCIsInNldmVuIiwiZWlnaHQiLCJuaW5lIiwiY29sb24iLCJzZW1pY29sb24iLCJsZXNzIiwiZXF1YWwiLCJncmVhdGVyIiwicXVlc3Rpb24iLCJhdCIsIkEiLCJCIiwiQyIsIkQiLCJFIiwiRiIsIkciLCJIIiwiSSIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiTyIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJXIiwiWCIsIlkiLCJaIiwiYnJhY2tldGxlZnQiLCJiYWNrc2xhc2giLCJicmFja2V0cmlnaHQiLCJhc2NpaWNpcmN1bSIsInVuZGVyc2NvcmUiLCJncmF2ZSIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwiaSIsImoiLCJrIiwibCIsIm0iLCJuIiwibyIsInAiLCJxIiwiciIsInMiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsImFzY2lpdGlsZGUiLCJBZGllcmVzaXMiLCJBcmluZyIsIkNjZWRpbGxhIiwiRWFjdXRlIiwiTnRpbGRlIiwiT2RpZXJlc2lzIiwiVWRpZXJlc2lzIiwiYWFjdXRlIiwiYWdyYXZlIiwiYWNpcmN1bWZsZXgiLCJhZGllcmVzaXMiLCJhdGlsZGUiLCJhcmluZyIsImNjZWRpbGxhIiwiZWFjdXRlIiwiZWdyYXZlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJpYWN1dGUiLCJpZ3JhdmUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsIm50aWxkZSIsIm9hY3V0ZSIsIm9ncmF2ZSIsIm9jaXJjdW1mbGV4Iiwib2RpZXJlc2lzIiwib3RpbGRlIiwidWFjdXRlIiwidWdyYXZlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJkYWdnZXIiLCJkZWdyZWUiLCJjZW50Iiwic3RlcmxpbmciLCJzZWN0aW9uIiwiYnVsbGV0IiwicGFyYWdyYXBoIiwiZ2VybWFuZGJscyIsInJlZ2lzdGVyZWQiLCJjb3B5cmlnaHQiLCJ0cmFkZW1hcmsiLCJhY3V0ZSIsImRpZXJlc2lzIiwibm90ZXF1YWwiLCJBRSIsIk9zbGFzaCIsImluZmluaXR5IiwicGx1c21pbnVzIiwibGVzc2VxdWFsIiwiZ3JlYXRlcmVxdWFsIiwieWVuIiwibXUiLCJwYXJ0aWFsZGlmZiIsInN1bW1hdGlvbiIsInByb2R1Y3QiLCJwaSIsImludGVncmFsIiwib3JkZmVtaW5pbmUiLCJvcmRtYXNjdWxpbmUiLCJPbWVnYSIsImFlIiwib3NsYXNoIiwicXVlc3Rpb25kb3duIiwiZXhjbGFtZG93biIsImxvZ2ljYWxub3QiLCJyYWRpY2FsIiwiZmxvcmluIiwiYXBwcm94ZXF1YWwiLCJEZWx0YSIsImd1aWxsZW1vdGxlZnQiLCJndWlsbGVtb3RyaWdodCIsImVsbGlwc2lzIiwibm9uYnJlYWtpbmdzcGFjZSIsIkFncmF2ZSIsIkF0aWxkZSIsIk90aWxkZSIsIk9FIiwib2UiLCJlbmRhc2giLCJlbWRhc2giLCJxdW90ZWRibGxlZnQiLCJxdW90ZWRibHJpZ2h0IiwicXVvdGVsZWZ0IiwicXVvdGVyaWdodCIsImRpdmlkZSIsImxvemVuZ2UiLCJ5ZGllcmVzaXMiLCJZZGllcmVzaXMiLCJmcmFjdGlvbiIsImN1cnJlbmN5IiwiZ3VpbHNpbmdsbGVmdCIsImd1aWxzaW5nbHJpZ2h0IiwiZmkiLCJmbCIsImRhZ2dlcmRibCIsInBlcmlvZGNlbnRlcmVkIiwicXVvdGVzaW5nbGJhc2UiLCJxdW90ZWRibGJhc2UiLCJwZXJ0aG91c2FuZCIsIkFjaXJjdW1mbGV4IiwiRWNpcmN1bWZsZXgiLCJBYWN1dGUiLCJFZGllcmVzaXMiLCJFZ3JhdmUiLCJJYWN1dGUiLCJJY2lyY3VtZmxleCIsIklkaWVyZXNpcyIsIklncmF2ZSIsIk9hY3V0ZSIsIk9jaXJjdW1mbGV4IiwiYXBwbGUiLCJPZ3JhdmUiLCJVYWN1dGUiLCJVY2lyY3VtZmxleCIsIlVncmF2ZSIsImRvdGxlc3NpIiwiY2lyY3VtZmxleCIsInRpbGRlIiwibWFjcm9uIiwiYnJldmUiLCJkb3RhY2NlbnQiLCJyaW5nIiwiY2VkaWxsYSIsImh1bmdhcnVtbGF1dCIsIm9nb25layIsImNhcm9uIiwiTHNsYXNoIiwibHNsYXNoIiwiU2Nhcm9uIiwic2Nhcm9uIiwiWmNhcm9uIiwiemNhcm9uIiwiYnJva2VuYmFyIiwiRXRoIiwiZXRoIiwiWWFjdXRlIiwieWFjdXRlIiwiVGhvcm4iLCJ0aG9ybiIsIm1pbnVzIiwibXVsdGlwbHkiLCJvbmVzdXBlcmlvciIsInR3b3N1cGVyaW9yIiwidGhyZWVzdXBlcmlvciIsIm9uZWhhbGYiLCJvbmVxdWFydGVyIiwidGhyZWVxdWFydGVycyIsImZyYW5jIiwiR2JyZXZlIiwiZ2JyZXZlIiwiSWRvdGFjY2VudCIsIlNjZWRpbGxhIiwic2NlZGlsbGEiLCJDYWN1dGUiLCJjYWN1dGUiLCJDY2Fyb24iLCJjY2Fyb24iLCJkY3JvYXQiXTtmdW5jdGlvbiByZWNvdmVyR2x5cGhOYW1lKGUsdCl7aWYodm9pZCAwIT09dFtlXSlyZXR1cm4gZTtjb25zdCBuPWdldFVuaWNvZGVGb3JHbHlwaChlLHQpO2lmKC0xIT09bilmb3IoY29uc3QgZSBpbiB0KWlmKHRbZV09PT1uKXJldHVybiBlO2luZm8oIlVuYWJsZSB0byByZWNvdmVyIGEgc3RhbmRhcmQgZ2x5cGggbmFtZSBmb3I6ICIrZSk7cmV0dXJuIGV9ZnVuY3Rpb24gdHlwZTFGb250R2x5cGhNYXBwaW5nKGUsdCxuKXtjb25zdCBhPU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IHMscixpO2NvbnN0IG89ISEoZS5mbGFncyZ4YSk7aWYoZS5pc0ludGVybmFsRm9udCl7aT10O2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspe3M9bi5pbmRleE9mKGlbcl0pO2Fbcl09cz49MD9zOjB9fWVsc2UgaWYoZS5iYXNlRW5jb2RpbmdOYW1lKXtpPWdldEVuY29kaW5nKGUuYmFzZUVuY29kaW5nTmFtZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyl7cz1uLmluZGV4T2YoaVtyXSk7YVtyXT1zPj0wP3M6MH19ZWxzZSBpZihvKWZvcihyIGluIHQpYVtyXT10W3JdO2Vsc2V7aT11YTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKXtzPW4uaW5kZXhPZihpW3JdKTthW3JdPXM+PTA/czowfX1jb25zdCBsPWUuZGlmZmVyZW5jZXM7bGV0IGY7aWYobClmb3IociBpbiBsKXtjb25zdCBlPWxbcl07cz1uLmluZGV4T2YoZSk7aWYoLTE9PT1zKXtmfHwoZj1nYSgpKTtjb25zdCB0PXJlY292ZXJHbHlwaE5hbWUoZSxmKTt0IT09ZSYmKHM9bi5pbmRleE9mKHQpKX1hW3JdPXM+PTA/czowfXJldHVybiBhfWZ1bmN0aW9uIG5vcm1hbGl6ZUZvbnROYW1lKGUpe3JldHVybiBlLnJlcGxhY2VBbGwoL1ssX10vZywiLSIpLnJlcGxhY2VBbGwoL1xzL2csIiIpfWNvbnN0IElhPWdldExvb2t1cFRhYmxlRmFjdG9yeShlPT57ZVs4MjExXT02NTA3NDtlWzgyMTJdPTY1MDczO2VbODIyOV09NjUwNzI7ZVs4MjMwXT02NTA0OTtlWzEyMjg5XT02NTA0MTtlWzEyMjkwXT02NTA0MjtlWzEyMjk2XT02NTA4NztlWzEyMjk3XT02NTA4ODtlWzEyMjk4XT02NTA4NTtlWzEyMjk5XT02NTA4NjtlWzEyMzAwXT02NTA4OTtlWzEyMzAxXT02NTA5MDtlWzEyMzAyXT02NTA5MTtlWzEyMzAzXT02NTA5MjtlWzEyMzA0XT02NTA4MztlWzEyMzA1XT02NTA4NDtlWzEyMzA4XT02NTA4MTtlWzEyMzA5XT02NTA4MjtlWzEyMzEwXT02NTA0NztlWzEyMzExXT02NTA0ODtlWzY1MTAzXT02NTA3NjtlWzY1MjgxXT02NTA0NTtlWzY1Mjg4XT02NTA3NztlWzY1Mjg5XT02NTA3ODtlWzY1MjkyXT02NTA0MDtlWzY1MzA2XT02NTA0MztlWzY1MzA3XT02NTA0NDtlWzY1MzExXT02NTA0NjtlWzY1MzM5XT02NTA5NTtlWzY1MzQxXT02NTA5NjtlWzY1MzQzXT02NTA3NTtlWzY1MzcxXT02NTA3OTtlWzY1MzczXT02NTA4MH0pO2NvbnN0IEZhPVsiLm5vdGRlZiIsInNwYWNlIiwiZXhjbGFtIiwicXVvdGVkYmwiLCJudW1iZXJzaWduIiwiZG9sbGFyIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInF1b3RlcmlnaHQiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsInF1b3RlbGVmdCIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwiaSIsImoiLCJrIiwibCIsIm0iLCJuIiwibyIsInAiLCJxIiwiciIsInMiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsImFzY2lpdGlsZGUiLCJleGNsYW1kb3duIiwiY2VudCIsInN0ZXJsaW5nIiwiZnJhY3Rpb24iLCJ5ZW4iLCJmbG9yaW4iLCJzZWN0aW9uIiwiY3VycmVuY3kiLCJxdW90ZXNpbmdsZSIsInF1b3RlZGJsbGVmdCIsImd1aWxsZW1vdGxlZnQiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiZW5kYXNoIiwiZGFnZ2VyIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCJwYXJhZ3JhcGgiLCJidWxsZXQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInF1b3RlZGJscmlnaHQiLCJndWlsbGVtb3RyaWdodCIsImVsbGlwc2lzIiwicGVydGhvdXNhbmQiLCJxdWVzdGlvbmRvd24iLCJncmF2ZSIsImFjdXRlIiwiY2lyY3VtZmxleCIsInRpbGRlIiwibWFjcm9uIiwiYnJldmUiLCJkb3RhY2NlbnQiLCJkaWVyZXNpcyIsInJpbmciLCJjZWRpbGxhIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iLCJlbWRhc2giLCJBRSIsIm9yZGZlbWluaW5lIiwiTHNsYXNoIiwiT3NsYXNoIiwiT0UiLCJvcmRtYXNjdWxpbmUiLCJhZSIsImRvdGxlc3NpIiwibHNsYXNoIiwib3NsYXNoIiwib2UiLCJnZXJtYW5kYmxzIiwib25lc3VwZXJpb3IiLCJsb2dpY2Fsbm90IiwibXUiLCJ0cmFkZW1hcmsiLCJFdGgiLCJvbmVoYWxmIiwicGx1c21pbnVzIiwiVGhvcm4iLCJvbmVxdWFydGVyIiwiZGl2aWRlIiwiYnJva2VuYmFyIiwiZGVncmVlIiwidGhvcm4iLCJ0aHJlZXF1YXJ0ZXJzIiwidHdvc3VwZXJpb3IiLCJyZWdpc3RlcmVkIiwibWludXMiLCJldGgiLCJtdWx0aXBseSIsInRocmVlc3VwZXJpb3IiLCJjb3B5cmlnaHQiLCJBYWN1dGUiLCJBY2lyY3VtZmxleCIsIkFkaWVyZXNpcyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQ2NlZGlsbGEiLCJFYWN1dGUiLCJFY2lyY3VtZmxleCIsIkVkaWVyZXNpcyIsIkVncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiSWdyYXZlIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJPZGllcmVzaXMiLCJPZ3JhdmUiLCJPdGlsZGUiLCJTY2Fyb24iLCJVYWN1dGUiLCJVY2lyY3VtZmxleCIsIlVkaWVyZXNpcyIsIlVncmF2ZSIsIllhY3V0ZSIsIllkaWVyZXNpcyIsIlpjYXJvbiIsImFhY3V0ZSIsImFjaXJjdW1mbGV4IiwiYWRpZXJlc2lzIiwiYWdyYXZlIiwiYXJpbmciLCJhdGlsZGUiLCJjY2VkaWxsYSIsImVhY3V0ZSIsImVjaXJjdW1mbGV4IiwiZWRpZXJlc2lzIiwiZWdyYXZlIiwiaWFjdXRlIiwiaWNpcmN1bWZsZXgiLCJpZGllcmVzaXMiLCJpZ3JhdmUiLCJudGlsZGUiLCJvYWN1dGUiLCJvY2lyY3VtZmxleCIsIm9kaWVyZXNpcyIsIm9ncmF2ZSIsIm90aWxkZSIsInNjYXJvbiIsInVhY3V0ZSIsInVjaXJjdW1mbGV4IiwidWRpZXJlc2lzIiwidWdyYXZlIiwieWFjdXRlIiwieWRpZXJlc2lzIiwiemNhcm9uIl0sVGE9WyIubm90ZGVmIiwic3BhY2UiLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwiZnJhY3Rpb24iLCJ6ZXJvb2xkc3R5bGUiLCJvbmVvbGRzdHlsZSIsInR3b29sZHN0eWxlIiwidGhyZWVvbGRzdHlsZSIsImZvdXJvbGRzdHlsZSIsImZpdmVvbGRzdHlsZSIsInNpeG9sZHN0eWxlIiwic2V2ZW5vbGRzdHlsZSIsImVpZ2h0b2xkc3R5bGUiLCJuaW5lb2xkc3R5bGUiLCJjb2xvbiIsInNlbWljb2xvbiIsImNvbW1hc3VwZXJpb3IiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwicGVyaW9kc3VwZXJpb3IiLCJxdWVzdGlvbnNtYWxsIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiaXN1cGVyaW9yIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiZmYiLCJmaSIsImZsIiwiZmZpIiwiZmZsIiwicGFyZW5sZWZ0aW5mZXJpb3IiLCJwYXJlbnJpZ2h0aW5mZXJpb3IiLCJDaXJjdW1mbGV4c21hbGwiLCJoeXBoZW5zdXBlcmlvciIsIkdyYXZlc21hbGwiLCJBc21hbGwiLCJCc21hbGwiLCJDc21hbGwiLCJEc21hbGwiLCJFc21hbGwiLCJGc21hbGwiLCJHc21hbGwiLCJIc21hbGwiLCJJc21hbGwiLCJKc21hbGwiLCJLc21hbGwiLCJMc21hbGwiLCJNc21hbGwiLCJOc21hbGwiLCJPc21hbGwiLCJQc21hbGwiLCJRc21hbGwiLCJSc21hbGwiLCJTc21hbGwiLCJUc21hbGwiLCJVc21hbGwiLCJWc21hbGwiLCJXc21hbGwiLCJYc21hbGwiLCJZc21hbGwiLCJac21hbGwiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiVGlsZGVzbWFsbCIsImV4Y2xhbWRvd25zbWFsbCIsImNlbnRvbGRzdHlsZSIsIkxzbGFzaHNtYWxsIiwiU2Nhcm9uc21hbGwiLCJaY2Fyb25zbWFsbCIsIkRpZXJlc2lzc21hbGwiLCJCcmV2ZXNtYWxsIiwiQ2Fyb25zbWFsbCIsIkRvdGFjY2VudHNtYWxsIiwiTWFjcm9uc21hbGwiLCJmaWd1cmVkYXNoIiwiaHlwaGVuaW5mZXJpb3IiLCJPZ29uZWtzbWFsbCIsIlJpbmdzbWFsbCIsIkNlZGlsbGFzbWFsbCIsIm9uZXF1YXJ0ZXIiLCJvbmVoYWxmIiwidGhyZWVxdWFydGVycyIsInF1ZXN0aW9uZG93bnNtYWxsIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsInplcm9zdXBlcmlvciIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIiwiQWdyYXZlc21hbGwiLCJBYWN1dGVzbWFsbCIsIkFjaXJjdW1mbGV4c21hbGwiLCJBdGlsZGVzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXJpbmdzbWFsbCIsIkFFc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFYWN1dGVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWFjdXRlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJFdGhzbWFsbCIsIk50aWxkZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9jaXJjdW1mbGV4c21hbGwiLCJPdGlsZGVzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT0VzbWFsbCIsIk9zbGFzaHNtYWxsIiwiVWdyYXZlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVjaXJjdW1mbGV4c21hbGwiLCJVZGllcmVzaXNzbWFsbCIsIllhY3V0ZXNtYWxsIiwiVGhvcm5zbWFsbCIsIllkaWVyZXNpc3NtYWxsIl0sSGE9WyIubm90ZGVmIiwic3BhY2UiLCJkb2xsYXJvbGRzdHlsZSIsImRvbGxhcnN1cGVyaW9yIiwicGFyZW5sZWZ0c3VwZXJpb3IiLCJwYXJlbnJpZ2h0c3VwZXJpb3IiLCJ0d29kb3RlbmxlYWRlciIsIm9uZWRvdGVubGVhZGVyIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJmcmFjdGlvbiIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbG9uIiwic2VtaWNvbG9uIiwiY29tbWFzdXBlcmlvciIsInRocmVlcXVhcnRlcnNlbWRhc2giLCJwZXJpb2RzdXBlcmlvciIsImFzdXBlcmlvciIsImJzdXBlcmlvciIsImNlbnRzdXBlcmlvciIsImRzdXBlcmlvciIsImVzdXBlcmlvciIsImlzdXBlcmlvciIsImxzdXBlcmlvciIsIm1zdXBlcmlvciIsIm5zdXBlcmlvciIsIm9zdXBlcmlvciIsInJzdXBlcmlvciIsInNzdXBlcmlvciIsInRzdXBlcmlvciIsImZmIiwiZmkiLCJmbCIsImZmaSIsImZmbCIsInBhcmVubGVmdGluZmVyaW9yIiwicGFyZW5yaWdodGluZmVyaW9yIiwiaHlwaGVuc3VwZXJpb3IiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiY2VudG9sZHN0eWxlIiwiZmlndXJlZGFzaCIsImh5cGhlbmluZmVyaW9yIiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsInplcm9zdXBlcmlvciIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIl0sT2E9WyIubm90ZGVmIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVyaWdodCIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwicXVvdGVsZWZ0IiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsImV4Y2xhbWRvd24iLCJjZW50Iiwic3RlcmxpbmciLCJmcmFjdGlvbiIsInllbiIsImZsb3JpbiIsInNlY3Rpb24iLCJjdXJyZW5jeSIsInF1b3Rlc2luZ2xlIiwicXVvdGVkYmxsZWZ0IiwiZ3VpbGxlbW90bGVmdCIsImd1aWxzaW5nbGxlZnQiLCJndWlsc2luZ2xyaWdodCIsImZpIiwiZmwiLCJlbmRhc2giLCJkYWdnZXIiLCJkYWdnZXJkYmwiLCJwZXJpb2RjZW50ZXJlZCIsInBhcmFncmFwaCIsImJ1bGxldCIsInF1b3Rlc2luZ2xiYXNlIiwicXVvdGVkYmxiYXNlIiwicXVvdGVkYmxyaWdodCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJwZXJ0aG91c2FuZCIsInF1ZXN0aW9uZG93biIsImdyYXZlIiwiYWN1dGUiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsImRpZXJlc2lzIiwicmluZyIsImNlZGlsbGEiLCJodW5nYXJ1bWxhdXQiLCJvZ29uZWsiLCJjYXJvbiIsImVtZGFzaCIsIkFFIiwib3JkZmVtaW5pbmUiLCJMc2xhc2giLCJPc2xhc2giLCJPRSIsIm9yZG1hc2N1bGluZSIsImFlIiwiZG90bGVzc2kiLCJsc2xhc2giLCJvc2xhc2giLCJvZSIsImdlcm1hbmRibHMiLCJvbmVzdXBlcmlvciIsImxvZ2ljYWxub3QiLCJtdSIsInRyYWRlbWFyayIsIkV0aCIsIm9uZWhhbGYiLCJwbHVzbWludXMiLCJUaG9ybiIsIm9uZXF1YXJ0ZXIiLCJkaXZpZGUiLCJicm9rZW5iYXIiLCJkZWdyZWUiLCJ0aG9ybiIsInRocmVlcXVhcnRlcnMiLCJ0d29zdXBlcmlvciIsInJlZ2lzdGVyZWQiLCJtaW51cyIsImV0aCIsIm11bHRpcGx5IiwidGhyZWVzdXBlcmlvciIsImNvcHlyaWdodCIsIkFhY3V0ZSIsIkFjaXJjdW1mbGV4IiwiQWRpZXJlc2lzIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJDY2VkaWxsYSIsIkVhY3V0ZSIsIkVjaXJjdW1mbGV4IiwiRWRpZXJlc2lzIiwiRWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJJZ3JhdmUiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsIk9kaWVyZXNpcyIsIk9ncmF2ZSIsIk90aWxkZSIsIlNjYXJvbiIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWRpZXJlc2lzIiwiVWdyYXZlIiwiWWFjdXRlIiwiWWRpZXJlc2lzIiwiWmNhcm9uIiwiYWFjdXRlIiwiYWNpcmN1bWZsZXgiLCJhZGllcmVzaXMiLCJhZ3JhdmUiLCJhcmluZyIsImF0aWxkZSIsImNjZWRpbGxhIiwiZWFjdXRlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJlZ3JhdmUiLCJpYWN1dGUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsImlncmF2ZSIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjdW1mbGV4Iiwib2RpZXJlc2lzIiwib2dyYXZlIiwib3RpbGRlIiwic2Nhcm9uIiwidWFjdXRlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJ1Z3JhdmUiLCJ5YWN1dGUiLCJ5ZGllcmVzaXMiLCJ6Y2Fyb24iLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbW1hc3VwZXJpb3IiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwicGVyaW9kc3VwZXJpb3IiLCJxdWVzdGlvbnNtYWxsIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiaXN1cGVyaW9yIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiZmYiLCJmZmkiLCJmZmwiLCJwYXJlbmxlZnRpbmZlcmlvciIsInBhcmVucmlnaHRpbmZlcmlvciIsIkNpcmN1bWZsZXhzbWFsbCIsImh5cGhlbnN1cGVyaW9yIiwiR3JhdmVzbWFsbCIsIkFzbWFsbCIsIkJzbWFsbCIsIkNzbWFsbCIsIkRzbWFsbCIsIkVzbWFsbCIsIkZzbWFsbCIsIkdzbWFsbCIsIkhzbWFsbCIsIklzbWFsbCIsIkpzbWFsbCIsIktzbWFsbCIsIkxzbWFsbCIsIk1zbWFsbCIsIk5zbWFsbCIsIk9zbWFsbCIsIlBzbWFsbCIsIlFzbWFsbCIsIlJzbWFsbCIsIlNzbWFsbCIsIlRzbWFsbCIsIlVzbWFsbCIsIlZzbWFsbCIsIldzbWFsbCIsIlhzbWFsbCIsIllzbWFsbCIsIlpzbWFsbCIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJUaWxkZXNtYWxsIiwiZXhjbGFtZG93bnNtYWxsIiwiY2VudG9sZHN0eWxlIiwiTHNsYXNoc21hbGwiLCJTY2Fyb25zbWFsbCIsIlpjYXJvbnNtYWxsIiwiRGllcmVzaXNzbWFsbCIsIkJyZXZlc21hbGwiLCJDYXJvbnNtYWxsIiwiRG90YWNjZW50c21hbGwiLCJNYWNyb25zbWFsbCIsImZpZ3VyZWRhc2giLCJoeXBoZW5pbmZlcmlvciIsIk9nb25la3NtYWxsIiwiUmluZ3NtYWxsIiwiQ2VkaWxsYXNtYWxsIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiemVyb3N1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIiwiQWdyYXZlc21hbGwiLCJBYWN1dGVzbWFsbCIsIkFjaXJjdW1mbGV4c21hbGwiLCJBdGlsZGVzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXJpbmdzbWFsbCIsIkFFc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFYWN1dGVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWFjdXRlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJFdGhzbWFsbCIsIk50aWxkZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9jaXJjdW1mbGV4c21hbGwiLCJPdGlsZGVzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT0VzbWFsbCIsIk9zbGFzaHNtYWxsIiwiVWdyYXZlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVjaXJjdW1mbGV4c21hbGwiLCJVZGllcmVzaXNzbWFsbCIsIllhY3V0ZXNtYWxsIiwiVGhvcm5zbWFsbCIsIllkaWVyZXNpc3NtYWxsIiwiMDAxLjAwMCIsIjAwMS4wMDEiLCIwMDEuMDAyIiwiMDAxLjAwMyIsIkJsYWNrIiwiQm9sZCIsIkJvb2siLCJMaWdodCIsIk1lZGl1bSIsIlJlZ3VsYXIiLCJSb21hbiIsIlNlbWlib2xkIl0sQmE9MzkxLFJhPVtudWxsLHtpZDoiaHN0ZW0iLG1pbjoyLHN0YWNrQ2xlYXJpbmc6ITAsc3RlbTohMH0sbnVsbCx7aWQ6InZzdGVtIixtaW46MixzdGFja0NsZWFyaW5nOiEwLHN0ZW06ITB9LHtpZDoidm1vdmV0byIsbWluOjEsc3RhY2tDbGVhcmluZzohMH0se2lkOiJybGluZXRvIixtaW46MixyZXNldFN0YWNrOiEwfSx7aWQ6ImhsaW5ldG8iLG1pbjoxLHJlc2V0U3RhY2s6ITB9LHtpZDoidmxpbmV0byIsbWluOjEscmVzZXRTdGFjazohMH0se2lkOiJycmN1cnZldG8iLG1pbjo2LHJlc2V0U3RhY2s6ITB9LG51bGwse2lkOiJjYWxsc3ViciIsbWluOjF9LHtpZDoicmV0dXJuIixtaW46MH0sbnVsbCxudWxsLHtpZDoiZW5kY2hhciIsbWluOjAsc3RhY2tDbGVhcmluZzohMH0sbnVsbCxudWxsLG51bGwse2lkOiJoc3RlbWhtIixtaW46MixzdGFja0NsZWFyaW5nOiEwLHN0ZW06ITB9LHtpZDoiaGludG1hc2siLG1pbjowLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoiY250cm1hc2siLG1pbjowLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoicm1vdmV0byIsbWluOjIsc3RhY2tDbGVhcmluZzohMH0se2lkOiJobW92ZXRvIixtaW46MSxzdGFja0NsZWFyaW5nOiEwfSx7aWQ6InZzdGVtaG0iLG1pbjoyLHN0YWNrQ2xlYXJpbmc6ITAsc3RlbTohMH0se2lkOiJyY3VydmVsaW5lIixtaW46OCxyZXNldFN0YWNrOiEwfSx7aWQ6InJsaW5lY3VydmUiLG1pbjo4LHJlc2V0U3RhY2s6ITB9LHtpZDoidnZjdXJ2ZXRvIixtaW46NCxyZXNldFN0YWNrOiEwfSx7aWQ6ImhoY3VydmV0byIsbWluOjQscmVzZXRTdGFjazohMH0sbnVsbCx7aWQ6ImNhbGxnc3ViciIsbWluOjF9LHtpZDoidmhjdXJ2ZXRvIixtaW46NCxyZXNldFN0YWNrOiEwfSx7aWQ6Imh2Y3VydmV0byIsbWluOjQscmVzZXRTdGFjazohMH1dLERhPVtudWxsLG51bGwsbnVsbCx7aWQ6ImFuZCIsbWluOjIsc3RhY2tEZWx0YTotMX0se2lkOiJvciIsbWluOjIsc3RhY2tEZWx0YTotMX0se2lkOiJub3QiLG1pbjoxLHN0YWNrRGVsdGE6MH0sbnVsbCxudWxsLG51bGwse2lkOiJhYnMiLG1pbjoxLHN0YWNrRGVsdGE6MH0se2lkOiJhZGQiLG1pbjoyLHN0YWNrRGVsdGE6LTEsc3RhY2tGbihlLHQpe2VbdC0yXT1lW3QtMl0rZVt0LTFdfX0se2lkOiJzdWIiLG1pbjoyLHN0YWNrRGVsdGE6LTEsc3RhY2tGbihlLHQpe2VbdC0yXT1lW3QtMl0tZVt0LTFdfX0se2lkOiJkaXYiLG1pbjoyLHN0YWNrRGVsdGE6LTEsc3RhY2tGbihlLHQpe2VbdC0yXT1lW3QtMl0vZVt0LTFdfX0sbnVsbCx7aWQ6Im5lZyIsbWluOjEsc3RhY2tEZWx0YTowLHN0YWNrRm4oZSx0KXtlW3QtMV09LWVbdC0xXX19LHtpZDoiZXEiLG1pbjoyLHN0YWNrRGVsdGE6LTF9LG51bGwsbnVsbCx7aWQ6ImRyb3AiLG1pbjoxLHN0YWNrRGVsdGE6LTF9LG51bGwse2lkOiJwdXQiLG1pbjoyLHN0YWNrRGVsdGE6LTJ9LHtpZDoiZ2V0IixtaW46MSxzdGFja0RlbHRhOjB9LHtpZDoiaWZlbHNlIixtaW46NCxzdGFja0RlbHRhOi0zfSx7aWQ6InJhbmRvbSIsbWluOjAsc3RhY2tEZWx0YToxfSx7aWQ6Im11bCIsbWluOjIsc3RhY2tEZWx0YTotMSxzdGFja0ZuKGUsdCl7ZVt0LTJdPWVbdC0yXSplW3QtMV19fSxudWxsLHtpZDoic3FydCIsbWluOjEsc3RhY2tEZWx0YTowfSx7aWQ6ImR1cCIsbWluOjEsc3RhY2tEZWx0YToxfSx7aWQ6ImV4Y2giLG1pbjoyLHN0YWNrRGVsdGE6MH0se2lkOiJpbmRleCIsbWluOjIsc3RhY2tEZWx0YTowfSx7aWQ6InJvbGwiLG1pbjozLHN0YWNrRGVsdGE6LTJ9LG51bGwsbnVsbCxudWxsLHtpZDoiaGZsZXgiLG1pbjo3LHJlc2V0U3RhY2s6ITB9LHtpZDoiZmxleCIsbWluOjEzLHJlc2V0U3RhY2s6ITB9LHtpZDoiaGZsZXgxIixtaW46OSxyZXNldFN0YWNrOiEwfSx7aWQ6ImZsZXgxIixtaW46MTEscmVzZXRTdGFjazohMH1dO2NsYXNzIENGRlBhcnNlcntjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5ieXRlcz1lLmdldEJ5dGVzKCk7dGhpcy5wcm9wZXJ0aWVzPXQ7dGhpcy5zZWFjQW5hbHlzaXNFbmFibGVkPSEhbn1wYXJzZSgpe2NvbnN0IGU9dGhpcy5wcm9wZXJ0aWVzLHQ9bmV3IENGRjt0aGlzLmNmZj10O2NvbnN0IG49dGhpcy5wYXJzZUhlYWRlcigpLGE9dGhpcy5wYXJzZUluZGV4KG4uZW5kUG9zKSxzPXRoaXMucGFyc2VJbmRleChhLmVuZFBvcykscj10aGlzLnBhcnNlSW5kZXgocy5lbmRQb3MpLGk9dGhpcy5wYXJzZUluZGV4KHIuZW5kUG9zKSxvPXRoaXMucGFyc2VEaWN0KHMub2JqLmdldCgwKSksbD10aGlzLmNyZWF0ZURpY3QoQ0ZGVG9wRGljdCxvLHQuc3RyaW5ncyk7dC5oZWFkZXI9bi5vYmo7dC5uYW1lcz10aGlzLnBhcnNlTmFtZUluZGV4KGEub2JqKTt0LnN0cmluZ3M9dGhpcy5wYXJzZVN0cmluZ0luZGV4KHIub2JqKTt0LnRvcERpY3Q9bDt0Lmdsb2JhbFN1YnJJbmRleD1pLm9iajt0aGlzLnBhcnNlUHJpdmF0ZURpY3QodC50b3BEaWN0KTt0LmlzQ0lERm9udD1sLmhhc05hbWUoIlJPUyIpO2NvbnN0IGY9bC5nZXRCeU5hbWUoIkNoYXJTdHJpbmdzIiksYz10aGlzLnBhcnNlSW5kZXgoZikub2JqO3QuY2hhclN0cmluZ0NvdW50PWMuY291bnQ7Y29uc3QgaD1sLmdldEJ5TmFtZSgiRm9udE1hdHJpeCIpO2gmJihlLmZvbnRNYXRyaXg9aCk7Y29uc3QgdT1sLmdldEJ5TmFtZSgiRm9udEJCb3giKTtpZih1KXtlLmFzY2VudD1NYXRoLm1heCh1WzNdLHVbMV0pO2UuZGVzY2VudD1NYXRoLm1pbih1WzFdLHVbM10pO2UuYXNjZW50U2NhbGVkPSEwfWxldCBtLHA7aWYodC5pc0NJREZvbnQpe2NvbnN0IGU9dGhpcy5wYXJzZUluZGV4KGwuZ2V0QnlOYW1lKCJGREFycmF5IikpLm9iajtmb3IobGV0IG49MCxhPWUuY291bnQ7bjxhOysrbil7Y29uc3QgYT1lLmdldChuKSxzPXRoaXMuY3JlYXRlRGljdChDRkZUb3BEaWN0LHRoaXMucGFyc2VEaWN0KGEpLHQuc3RyaW5ncyk7dGhpcy5wYXJzZVByaXZhdGVEaWN0KHMpO3QuZmRBcnJheS5wdXNoKHMpfXA9bnVsbDttPXRoaXMucGFyc2VDaGFyc2V0cyhsLmdldEJ5TmFtZSgiY2hhcnNldCIpLGMuY291bnQsdC5zdHJpbmdzLCEwKTt0LmZkU2VsZWN0PXRoaXMucGFyc2VGRFNlbGVjdChsLmdldEJ5TmFtZSgiRkRTZWxlY3QiKSxjLmNvdW50KX1lbHNle209dGhpcy5wYXJzZUNoYXJzZXRzKGwuZ2V0QnlOYW1lKCJjaGFyc2V0IiksYy5jb3VudCx0LnN0cmluZ3MsITEpO3A9dGhpcy5wYXJzZUVuY29kaW5nKGwuZ2V0QnlOYW1lKCJFbmNvZGluZyIpLGUsdC5zdHJpbmdzLG0uY2hhcnNldCl9dC5jaGFyc2V0PW07dC5lbmNvZGluZz1wO2NvbnN0IGQ9dGhpcy5wYXJzZUNoYXJTdHJpbmdzKHtjaGFyU3RyaW5nczpjLGxvY2FsU3VickluZGV4OmwucHJpdmF0ZURpY3Quc3VicnNJbmRleCxnbG9iYWxTdWJySW5kZXg6aS5vYmosZmRTZWxlY3Q6dC5mZFNlbGVjdCxmZEFycmF5OnQuZmRBcnJheSxwcml2YXRlRGljdDpsLnByaXZhdGVEaWN0fSk7dC5jaGFyU3RyaW5ncz1kLmNoYXJTdHJpbmdzO3Quc2VhY3M9ZC5zZWFjczt0LndpZHRocz1kLndpZHRocztyZXR1cm4gdH1wYXJzZUhlYWRlcigpe2xldCBlPXRoaXMuYnl0ZXM7Y29uc3QgdD1lLmxlbmd0aDtsZXQgbj0wO2Zvcig7bjx0JiYxIT09ZVtuXTspKytuO2lmKG4+PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIENGRiBoZWFkZXIiKTtpZigwIT09bil7aW5mbygiY2ZmIGRhdGEgaXMgc2hpZnRlZCIpO2U9ZS5zdWJhcnJheShuKTt0aGlzLmJ5dGVzPWV9Y29uc3QgYT1lWzBdLHM9ZVsxXSxyPWVbMl0saT1lWzNdO3JldHVybntvYmo6bmV3IENGRkhlYWRlcihhLHMscixpKSxlbmRQb3M6cn19cGFyc2VEaWN0KGUpe2xldCB0PTA7ZnVuY3Rpb24gcGFyc2VPcGVyYW5kKCl7bGV0IG49ZVt0KytdO2lmKDMwPT09bilyZXR1cm4gZnVuY3Rpb24gcGFyc2VGbG9hdE9wZXJhbmQoKXtsZXQgbj0iIjtjb25zdCBhPTE1LHM9WyIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiLiIsIkUiLCJFLSIsbnVsbCwiLSJdLHI9ZS5sZW5ndGg7Zm9yKDt0PHI7KXtjb25zdCByPWVbdCsrXSxpPXI+PjQsbz0xNSZyO2lmKGk9PT1hKWJyZWFrO24rPXNbaV07aWYobz09PWEpYnJlYWs7bis9c1tvXX1yZXR1cm4gcGFyc2VGbG9hdChuKX0oKTtpZigyOD09PW4pe249cmVhZEludDE2KGUsdCk7dCs9MjtyZXR1cm4gbn1pZigyOT09PW4pe249ZVt0KytdO249bjw8OHxlW3QrK107bj1uPDw4fGVbdCsrXTtuPW48PDh8ZVt0KytdO3JldHVybiBufWlmKG4+PTMyJiZuPD0yNDYpcmV0dXJuIG4tMTM5O2lmKG4+PTI0NyYmbjw9MjUwKXJldHVybiAyNTYqKG4tMjQ3KStlW3QrK10rMTA4O2lmKG4+PTI1MSYmbjw9MjU0KXJldHVybi0yNTYqKG4tMjUxKS1lW3QrK10tMTA4O3dhcm4oJ0NGRlBhcnNlcl9wYXJzZURpY3Q6ICInK24rJyIgaXMgYSByZXNlcnZlZCBjb21tYW5kLicpO3JldHVybiBOYU59bGV0IG49W107Y29uc3QgYT1bXTt0PTA7Y29uc3Qgcz1lLmxlbmd0aDtmb3IoO3Q8czspe2xldCBzPWVbdF07aWYoczw9MjEpezEyPT09cyYmKHM9czw8OHxlWysrdF0pO2EucHVzaChbcyxuXSk7bj1bXTsrK3R9ZWxzZSBuLnB1c2gocGFyc2VPcGVyYW5kKCkpfXJldHVybiBhfXBhcnNlSW5kZXgoZSl7Y29uc3QgdD1uZXcgQ0ZGSW5kZXgsbj10aGlzLmJ5dGVzLGE9bltlKytdPDw4fG5bZSsrXSxzPVtdO2xldCByLGksbz1lO2lmKDAhPT1hKXtjb25zdCB0PW5bZSsrXSxsPWUrKGErMSkqdC0xO2ZvcihyPTAsaT1hKzE7cjxpOysrcil7bGV0IGE9MDtmb3IobGV0IHM9MDtzPHQ7KytzKXthPDw9ODthKz1uW2UrK119cy5wdXNoKGwrYSl9bz1zW2FdfWZvcihyPTAsaT1zLmxlbmd0aC0xO3I8aTsrK3Ipe2NvbnN0IGU9c1tyXSxhPXNbcisxXTt0LmFkZChuLnN1YmFycmF5KGUsYSkpfXJldHVybntvYmo6dCxlbmRQb3M6b319cGFyc2VOYW1lSW5kZXgoZSl7Y29uc3QgdD1bXTtmb3IobGV0IG49MCxhPWUuY291bnQ7bjxhOysrbil7Y29uc3QgYT1lLmdldChuKTt0LnB1c2goYnl0ZXNUb1N0cmluZyhhKSl9cmV0dXJuIHR9cGFyc2VTdHJpbmdJbmRleChlKXtjb25zdCB0PW5ldyBDRkZTdHJpbmdzO2ZvcihsZXQgbj0wLGE9ZS5jb3VudDtuPGE7KytuKXtjb25zdCBhPWUuZ2V0KG4pO3QuYWRkKGJ5dGVzVG9TdHJpbmcoYSkpfXJldHVybiB0fWNyZWF0ZURpY3QoZSx0LG4pe2NvbnN0IGE9bmV3IGUobik7Zm9yKGNvbnN0W2Usbl1vZiB0KWEuc2V0QnlLZXkoZSxuKTtyZXR1cm4gYX1wYXJzZUNoYXJTdHJpbmcoZSx0LG4sYSl7aWYoIXR8fGUuY2FsbERlcHRoPjEwKXJldHVybiExO2xldCBzPWUuc3RhY2tTaXplO2NvbnN0IHI9ZS5zdGFjaztsZXQgaT10Lmxlbmd0aDtmb3IobGV0IG89MDtvPGk7KXtjb25zdCBsPXRbbysrXTtsZXQgZj1udWxsO2lmKDEyPT09bCl7Y29uc3QgZT10W28rK107aWYoMD09PWUpe3Rbby0yXT0xMzk7dFtvLTFdPTIyO3M9MH1lbHNlIGY9RGFbZV19ZWxzZSBpZigyOD09PWwpe3Jbc109cmVhZEludDE2KHQsbyk7bys9MjtzKyt9ZWxzZSBpZigxND09PWwpe2lmKHM+PTQpe3MtPTQ7aWYodGhpcy5zZWFjQW5hbHlzaXNFbmFibGVkKXtlLnNlYWM9ci5zbGljZShzLHMrNCk7cmV0dXJuITF9fWY9UmFbbF19ZWxzZSBpZihsPj0zMiYmbDw9MjQ2KXtyW3NdPWwtMTM5O3MrK31lbHNlIGlmKGw+PTI0NyYmbDw9MjU0KXtyW3NdPWw8MjUxPyhsLTI0Nzw8OCkrdFtvXSsxMDg6LShsLTI1MTw8OCktdFtvXS0xMDg7bysrO3MrK31lbHNlIGlmKDI1NT09PWwpe3Jbc109KHRbb108PDI0fHRbbysxXTw8MTZ8dFtvKzJdPDw4fHRbbyszXSkvNjU1MzY7bys9NDtzKyt9ZWxzZSBpZigxOT09PWx8fDIwPT09bCl7ZS5oaW50cys9cz4+MTtpZigwPT09ZS5oaW50cyl7dC5jb3B5V2l0aGluKG8tMSxvLC0xKTtvLT0xO2ktPTE7Y29udGludWV9bys9ZS5oaW50cys3Pj4zO3MlPTI7Zj1SYVtsXX1lbHNle2lmKDEwPT09bHx8Mjk9PT1sKXtjb25zdCB0PTEwPT09bD9uOmE7aWYoIXQpe2Y9UmFbbF07d2FybigiTWlzc2luZyBzdWJyc0luZGV4IGZvciAiK2YuaWQpO3JldHVybiExfWxldCBpPTMyNzY4O3QuY291bnQ8MTI0MD9pPTEwNzp0LmNvdW50PDMzOTAwJiYoaT0xMTMxKTtjb25zdCBvPXJbLS1zXStpO2lmKG88MHx8bz49dC5jb3VudHx8aXNOYU4obykpe2Y9UmFbbF07d2FybigiT3V0IG9mIGJvdW5kcyBzdWJySW5kZXggZm9yICIrZi5pZCk7cmV0dXJuITF9ZS5zdGFja1NpemU9cztlLmNhbGxEZXB0aCsrO2lmKCF0aGlzLnBhcnNlQ2hhclN0cmluZyhlLHQuZ2V0KG8pLG4sYSkpcmV0dXJuITE7ZS5jYWxsRGVwdGgtLTtzPWUuc3RhY2tTaXplO2NvbnRpbnVlfWlmKDExPT09bCl7ZS5zdGFja1NpemU9cztyZXR1cm4hMH1pZigwPT09bCYmbz09PXQubGVuZ3RoKXt0W28tMV09MTQ7Zj1SYVsxNF19ZWxzZXtpZig5PT09bCl7dC5jb3B5V2l0aGluKG8tMSxvLC0xKTtvLT0xO2ktPTE7Y29udGludWV9Zj1SYVtsXX19aWYoZil7aWYoZi5zdGVtKXtlLmhpbnRzKz1zPj4xO2lmKDM9PT1sfHwyMz09PWwpZS5oYXNWU3RlbXM9ITA7ZWxzZSBpZihlLmhhc1ZTdGVtcyYmKDE9PT1sfHwxOD09PWwpKXt3YXJuKCJDRkYgc3RlbSBoaW50cyBhcmUgaW4gd3Jvbmcgb3JkZXIiKTt0W28tMV09MT09PWw/MzoyM319aWYoczxmLm1pbil7d2FybigiTm90IGVub3VnaCBwYXJhbWV0ZXJzIGZvciAiK2YuaWQrIjsgYWN0dWFsOiAiK3MrIiwgZXhwZWN0ZWQ6ICIrZi5taW4pO2lmKDA9PT1zKXt0W28tMV09MTQ7cmV0dXJuITB9cmV0dXJuITF9aWYoZS5maXJzdFN0YWNrQ2xlYXJpbmcmJmYuc3RhY2tDbGVhcmluZyl7ZS5maXJzdFN0YWNrQ2xlYXJpbmc9ITE7cy09Zi5taW47cz49MiYmZi5zdGVtP3MlPTI6cz4xJiZ3YXJuKCJGb3VuZCB0b28gbWFueSBwYXJhbWV0ZXJzIGZvciBzdGFjay1jbGVhcmluZyBjb21tYW5kIik7cz4wJiYoZS53aWR0aD1yW3MtMV0pfWlmKCJzdGFja0RlbHRhImluIGYpeyJzdGFja0ZuImluIGYmJmYuc3RhY2tGbihyLHMpO3MrPWYuc3RhY2tEZWx0YX1lbHNlKGYuc3RhY2tDbGVhcmluZ3x8Zi5yZXNldFN0YWNrKSYmKHM9MCl9fWk8dC5sZW5ndGgmJnQuZmlsbCgxNCxpKTtlLnN0YWNrU2l6ZT1zO3JldHVybiEwfXBhcnNlQ2hhclN0cmluZ3Moe2NoYXJTdHJpbmdzOmUsbG9jYWxTdWJySW5kZXg6dCxnbG9iYWxTdWJySW5kZXg6bixmZFNlbGVjdDphLGZkQXJyYXk6cyxwcml2YXRlRGljdDpyfSl7Y29uc3QgaT1bXSxvPVtdLGw9ZS5jb3VudDtmb3IobGV0IGY9MDtmPGw7ZisrKXtjb25zdCBsPWUuZ2V0KGYpLGM9e2NhbGxEZXB0aDowLHN0YWNrU2l6ZTowLHN0YWNrOltdLGhpbnRzOjAsZmlyc3RTdGFja0NsZWFyaW5nOiEwLHNlYWM6bnVsbCx3aWR0aDpudWxsLGhhc1ZTdGVtczohMX07bGV0IGg9ITAsdT1udWxsLG09cjtpZihhJiZzLmxlbmd0aCl7Y29uc3QgZT1hLmdldEZESW5kZXgoZik7aWYoLTE9PT1lKXt3YXJuKCJHbHlwaCBpbmRleCBpcyBub3QgaW4gZmQgc2VsZWN0LiIpO2g9ITF9aWYoZT49cy5sZW5ndGgpe3dhcm4oIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpO2g9ITF9aWYoaCl7bT1zW2VdLnByaXZhdGVEaWN0O3U9bS5zdWJyc0luZGV4fX1lbHNlIHQmJih1PXQpO2gmJihoPXRoaXMucGFyc2VDaGFyU3RyaW5nKGMsbCx1LG4pKTtpZihudWxsIT09Yy53aWR0aCl7Y29uc3QgZT1tLmdldEJ5TmFtZSgibm9taW5hbFdpZHRoWCIpO29bZl09ZStjLndpZHRofWVsc2V7Y29uc3QgZT1tLmdldEJ5TmFtZSgiZGVmYXVsdFdpZHRoWCIpO29bZl09ZX1udWxsIT09Yy5zZWFjJiYoaVtmXT1jLnNlYWMpO2h8fGUuc2V0KGYsbmV3IFVpbnQ4QXJyYXkoWzE0XSkpfXJldHVybntjaGFyU3RyaW5nczplLHNlYWNzOmksd2lkdGhzOm99fWVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoZSl7Y29uc3QgdD10aGlzLmNyZWF0ZURpY3QoQ0ZGUHJpdmF0ZURpY3QsW10sZS5zdHJpbmdzKTtlLnNldEJ5S2V5KDE4LFswLDBdKTtlLnByaXZhdGVEaWN0PXR9cGFyc2VQcml2YXRlRGljdChlKXtpZighZS5oYXNOYW1lKCJQcml2YXRlIikpe3RoaXMuZW1wdHlQcml2YXRlRGljdGlvbmFyeShlKTtyZXR1cm59Y29uc3QgdD1lLmdldEJ5TmFtZSgiUHJpdmF0ZSIpO2lmKCFBcnJheS5pc0FycmF5KHQpfHwyIT09dC5sZW5ndGgpe2UucmVtb3ZlQnlOYW1lKCJQcml2YXRlIik7cmV0dXJufWNvbnN0IG49dFswXSxhPXRbMV07aWYoMD09PW58fGE+PXRoaXMuYnl0ZXMubGVuZ3RoKXt0aGlzLmVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoZSk7cmV0dXJufWNvbnN0IHM9YStuLHI9dGhpcy5ieXRlcy5zdWJhcnJheShhLHMpLGk9dGhpcy5wYXJzZURpY3Qociksbz10aGlzLmNyZWF0ZURpY3QoQ0ZGUHJpdmF0ZURpY3QsaSxlLnN0cmluZ3MpO2UucHJpdmF0ZURpY3Q9bzswPT09by5nZXRCeU5hbWUoIkV4cGFuc2lvbkZhY3RvciIpJiZvLnNldEJ5TmFtZSgiRXhwYW5zaW9uRmFjdG9yIiwuMDYpO2lmKCFvLmdldEJ5TmFtZSgiU3VicnMiKSlyZXR1cm47Y29uc3QgbD1vLmdldEJ5TmFtZSgiU3VicnMiKSxmPWErbDtpZigwPT09bHx8Zj49dGhpcy5ieXRlcy5sZW5ndGgpe3RoaXMuZW1wdHlQcml2YXRlRGljdGlvbmFyeShlKTtyZXR1cm59Y29uc3QgYz10aGlzLnBhcnNlSW5kZXgoZik7by5zdWJyc0luZGV4PWMub2JqfXBhcnNlQ2hhcnNldHMoZSx0LG4sYSl7aWYoMD09PWUpcmV0dXJuIG5ldyBDRkZDaGFyc2V0KCEwLEVhLklTT19BRE9CRSxGYSk7aWYoMT09PWUpcmV0dXJuIG5ldyBDRkZDaGFyc2V0KCEwLEVhLkVYUEVSVCxUYSk7aWYoMj09PWUpcmV0dXJuIG5ldyBDRkZDaGFyc2V0KCEwLEVhLkVYUEVSVF9TVUJTRVQsSGEpO2NvbnN0IHM9dGhpcy5ieXRlcyxyPWUsaT1zW2UrK10sbz1bYT8wOiIubm90ZGVmIl07bGV0IGwsZixjO3QtPTE7c3dpdGNoKGkpe2Nhc2UgMDpmb3IoYz0wO2M8dDtjKyspe2w9c1tlKytdPDw4fHNbZSsrXTtvLnB1c2goYT9sOm4uZ2V0KGwpKX1icmVhaztjYXNlIDE6Zm9yKDtvLmxlbmd0aDw9dDspe2w9c1tlKytdPDw4fHNbZSsrXTtmPXNbZSsrXTtmb3IoYz0wO2M8PWY7YysrKW8ucHVzaChhP2wrKzpuLmdldChsKyspKX1icmVhaztjYXNlIDI6Zm9yKDtvLmxlbmd0aDw9dDspe2w9c1tlKytdPDw4fHNbZSsrXTtmPXNbZSsrXTw8OHxzW2UrK107Zm9yKGM9MDtjPD1mO2MrKylvLnB1c2goYT9sKys6bi5nZXQobCsrKSl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gY2hhcnNldCBmb3JtYXQiKX1jb25zdCBoPWUsdT1zLnN1YmFycmF5KHIsaCk7cmV0dXJuIG5ldyBDRkZDaGFyc2V0KCExLGksbyx1KX1wYXJzZUVuY29kaW5nKGUsdCxuLGEpe2NvbnN0IHM9T2JqZWN0LmNyZWF0ZShudWxsKSxyPXRoaXMuYnl0ZXM7bGV0IGksbyxsLGY9ITEsYz1udWxsO2lmKDA9PT1lfHwxPT09ZSl7Zj0hMDtpPWU7Y29uc3QgdD1lP2ZhOnVhO2ZvcihvPTAsbD1hLmxlbmd0aDtvPGw7bysrKXtjb25zdCBlPXQuaW5kZXhPZihhW29dKTstMSE9PWUmJihzW2VdPW8pfX1lbHNle2NvbnN0IHQ9ZTtpPXJbZSsrXTtzd2l0Y2goMTI3Jmkpe2Nhc2UgMDpjb25zdCB0PXJbZSsrXTtmb3Iobz0xO288PXQ7bysrKXNbcltlKytdXT1vO2JyZWFrO2Nhc2UgMTpjb25zdCBuPXJbZSsrXTtsZXQgYT0xO2ZvcihvPTA7bzxuO28rKyl7Y29uc3QgdD1yW2UrK10sbj1yW2UrK107Zm9yKGxldCBlPXQ7ZTw9dCtuO2UrKylzW2VdPWErK31icmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBlbmNvZGluZyBmb3JtYXQ6ICR7aX0gaW4gQ0ZGYCl9Y29uc3QgbD1lO2lmKDEyOCZpKXtyW3RdJj0xMjc7IWZ1bmN0aW9uIHJlYWRTdXBwbGVtZW50KCl7Y29uc3QgdD1yW2UrK107Zm9yKG89MDtvPHQ7bysrKXtjb25zdCB0PXJbZSsrXSxpPShyW2UrK108PDgpKygyNTUmcltlKytdKTtzW3RdPWEuaW5kZXhPZihuLmdldChpKSl9fSgpfWM9ci5zdWJhcnJheSh0LGwpfWkmPTEyNztyZXR1cm4gbmV3IENGRkVuY29kaW5nKGYsaSxzLGMpfXBhcnNlRkRTZWxlY3QoZSx0KXtjb25zdCBuPXRoaXMuYnl0ZXMsYT1uW2UrK10scz1bXTtsZXQgcjtzd2l0Y2goYSl7Y2FzZSAwOmZvcihyPTA7cjx0Oysrcil7Y29uc3QgdD1uW2UrK107cy5wdXNoKHQpfWJyZWFrO2Nhc2UgMzpjb25zdCBpPW5bZSsrXTw8OHxuW2UrK107Zm9yKHI9MDtyPGk7KytyKXtsZXQgdD1uW2UrK108PDh8bltlKytdO2lmKDA9PT1yJiYwIT09dCl7d2FybigicGFyc2VGRFNlbGVjdDogVGhlIGZpcnN0IHJhbmdlIG11c3QgaGF2ZSBhIGZpcnN0IEdJRCBvZiAwIC0tIHRyeWluZyB0byByZWNvdmVyLiIpO3Q9MH1jb25zdCBhPW5bZSsrXSxpPW5bZV08PDh8bltlKzFdO2ZvcihsZXQgZT10O2U8aTsrK2Upcy5wdXNoKGEpfWUrPTI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYHBhcnNlRkRTZWxlY3Q6IFVua25vd24gZm9ybWF0ICIke2F9Ii5gKX1pZihzLmxlbmd0aCE9PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJwYXJzZUZEU2VsZWN0OiBJbnZhbGlkIGZvbnQgZGF0YS4iKTtyZXR1cm4gbmV3IENGRkZEU2VsZWN0KGEscyl9fWNsYXNzIENGRntoZWFkZXI9bnVsbDtuYW1lcz1bXTt0b3BEaWN0PW51bGw7c3RyaW5ncz1uZXcgQ0ZGU3RyaW5ncztnbG9iYWxTdWJySW5kZXg9bnVsbDtlbmNvZGluZz1udWxsO2NoYXJzZXQ9bnVsbDtjaGFyU3RyaW5ncz1udWxsO2ZkQXJyYXk9W107ZmRTZWxlY3Q9bnVsbDtpc0NJREZvbnQ9ITE7Y2hhclN0cmluZ0NvdW50PTA7ZHVwbGljYXRlRmlyc3RHbHlwaCgpe2lmKHRoaXMuY2hhclN0cmluZ3MuY291bnQ+PTY1NTM1KXt3YXJuKCJOb3QgZW5vdWdoIHNwYWNlIGluIGNoYXJzdHJpbmdzIHRvIGR1cGxpY2F0ZSBmaXJzdCBnbHlwaC4iKTtyZXR1cm59Y29uc3QgZT10aGlzLmNoYXJTdHJpbmdzLmdldCgwKTt0aGlzLmNoYXJTdHJpbmdzLmFkZChlKTt0aGlzLmlzQ0lERm9udCYmdGhpcy5mZFNlbGVjdC5mZFNlbGVjdC5wdXNoKHRoaXMuZmRTZWxlY3QuZmRTZWxlY3RbMF0pfWhhc0dseXBoSWQoZSl7aWYoZTwwfHxlPj10aGlzLmNoYXJTdHJpbmdzLmNvdW50KXJldHVybiExO3JldHVybiB0aGlzLmNoYXJTdHJpbmdzLmdldChlKS5sZW5ndGg+MH19Y2xhc3MgQ0ZGSGVhZGVye2NvbnN0cnVjdG9yKGUsdCxuLGEpe3RoaXMubWFqb3I9ZTt0aGlzLm1pbm9yPXQ7dGhpcy5oZHJTaXplPW47dGhpcy5vZmZTaXplPWF9fWNsYXNzIENGRlN0cmluZ3N7c3RyaW5ncz1bXTtnZXQoZSl7cmV0dXJuIGU+PTAmJmU8PTM5MD9PYVtlXTplLUJhPD10aGlzLnN0cmluZ3MubGVuZ3RoP3RoaXMuc3RyaW5nc1tlLUJhXTpPYVswXX1nZXRTSUQoZSl7bGV0IHQ9T2EuaW5kZXhPZihlKTtpZigtMSE9PXQpcmV0dXJuIHQ7dD10aGlzLnN0cmluZ3MuaW5kZXhPZihlKTtyZXR1cm4tMSE9PXQ/dCtCYTotMX1hZGQoZSl7dGhpcy5zdHJpbmdzLnB1c2goZSl9Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuc3RyaW5ncy5sZW5ndGh9fWNsYXNzIENGRkluZGV4e29iamVjdHM9W107bGVuZ3RoPTA7YWRkKGUpe3RoaXMubGVuZ3RoKz1lLmxlbmd0aDt0aGlzLm9iamVjdHMucHVzaChlKX1zZXQoZSx0KXt0aGlzLmxlbmd0aCs9dC5sZW5ndGgtdGhpcy5vYmplY3RzW2VdLmxlbmd0aDt0aGlzLm9iamVjdHNbZV09dH1nZXQoZSl7cmV0dXJuIHRoaXMub2JqZWN0c1tlXX1nZXQgY291bnQoKXtyZXR1cm4gdGhpcy5vYmplY3RzLmxlbmd0aH19Y2xhc3MgQ0ZGRGljdHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMua2V5VG9OYW1lTWFwPWUua2V5VG9OYW1lTWFwO3RoaXMubmFtZVRvS2V5TWFwPWUubmFtZVRvS2V5TWFwO3RoaXMuZGVmYXVsdHM9ZS5kZWZhdWx0czt0aGlzLnR5cGVzPWUudHlwZXM7dGhpcy5vcGNvZGVzPWUub3Bjb2Rlczt0aGlzLm9yZGVyPWUub3JkZXI7dGhpcy5zdHJpbmdzPXQ7dGhpcy52YWx1ZXM9T2JqZWN0LmNyZWF0ZShudWxsKX1zZXRCeUtleShlLHQpe2lmKCEoZSBpbiB0aGlzLmtleVRvTmFtZU1hcCkpcmV0dXJuITE7aWYoMD09PXQubGVuZ3RoKXJldHVybiEwO2Zvcihjb25zdCBuIG9mIHQpaWYoaXNOYU4obikpe3dhcm4oYEludmFsaWQgQ0ZGRGljdCB2YWx1ZTogIiR7dH0iIGZvciBrZXkgIiR7ZX0iLmApO3JldHVybiEwfWNvbnN0IG49dGhpcy50eXBlc1tlXTsibnVtIiE9PW4mJiJzaWQiIT09biYmIm9mZnNldCIhPT1ufHwodD10WzBdKTt0aGlzLnZhbHVlc1tlXT10O3JldHVybiEwfXNldEJ5TmFtZShlLHQpe2lmKCEoZSBpbiB0aGlzLm5hbWVUb0tleU1hcCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIGRpY3Rpb25hcnkgbmFtZSAiJHtlfSJgKTt0aGlzLnZhbHVlc1t0aGlzLm5hbWVUb0tleU1hcFtlXV09dH1oYXNOYW1lKGUpe3JldHVybiB0aGlzLm5hbWVUb0tleU1hcFtlXWluIHRoaXMudmFsdWVzfWdldEJ5TmFtZShlKXtpZighKGUgaW4gdGhpcy5uYW1lVG9LZXlNYXApKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBkaWN0aW9uYXJ5IG5hbWUgJHtlfSJgKTtjb25zdCB0PXRoaXMubmFtZVRvS2V5TWFwW2VdO3JldHVybiB0IGluIHRoaXMudmFsdWVzP3RoaXMudmFsdWVzW3RdOnRoaXMuZGVmYXVsdHNbdF19cmVtb3ZlQnlOYW1lKGUpe2RlbGV0ZSB0aGlzLnZhbHVlc1t0aGlzLm5hbWVUb0tleU1hcFtlXV19c3RhdGljIGNyZWF0ZVRhYmxlcyhlKXtjb25zdCB0PXtrZXlUb05hbWVNYXA6e30sbmFtZVRvS2V5TWFwOnt9LGRlZmF1bHRzOnt9LHR5cGVzOnt9LG9wY29kZXM6e30sb3JkZXI6W119O2Zvcihjb25zdCBuIG9mIGUpe2NvbnN0IGU9QXJyYXkuaXNBcnJheShuWzBdKT8oblswXVswXTw8OCkrblswXVsxXTpuWzBdO3Qua2V5VG9OYW1lTWFwW2VdPW5bMV07dC5uYW1lVG9LZXlNYXBbblsxXV09ZTt0LnR5cGVzW2VdPW5bMl07dC5kZWZhdWx0c1tlXT1uWzNdO3Qub3Bjb2Rlc1tlXT1BcnJheS5pc0FycmF5KG5bMF0pP25bMF06W25bMF1dO3Qub3JkZXIucHVzaChlKX1yZXR1cm4gdH19Y29uc3QgTWE9W1tbMTIsMzBdLCJST1MiLFsic2lkIiwic2lkIiwibnVtIl0sbnVsbF0sW1sxMiwyMF0sIlN5bnRoZXRpY0Jhc2UiLCJudW0iLG51bGxdLFswLCJ2ZXJzaW9uIiwic2lkIixudWxsXSxbMSwiTm90aWNlIiwic2lkIixudWxsXSxbWzEyLDBdLCJDb3B5cmlnaHQiLCJzaWQiLG51bGxdLFsyLCJGdWxsTmFtZSIsInNpZCIsbnVsbF0sWzMsIkZhbWlseU5hbWUiLCJzaWQiLG51bGxdLFs0LCJXZWlnaHQiLCJzaWQiLG51bGxdLFtbMTIsMV0sImlzRml4ZWRQaXRjaCIsIm51bSIsMF0sW1sxMiwyXSwiSXRhbGljQW5nbGUiLCJudW0iLDBdLFtbMTIsM10sIlVuZGVybGluZVBvc2l0aW9uIiwibnVtIiwtMTAwXSxbWzEyLDRdLCJVbmRlcmxpbmVUaGlja25lc3MiLCJudW0iLDUwXSxbWzEyLDVdLCJQYWludFR5cGUiLCJudW0iLDBdLFtbMTIsNl0sIkNoYXJzdHJpbmdUeXBlIiwibnVtIiwyXSxbWzEyLDddLCJGb250TWF0cml4IixbIm51bSIsIm51bSIsIm51bSIsIm51bSIsIm51bSIsIm51bSJdLFsuMDAxLDAsMCwuMDAxLDAsMF1dLFsxMywiVW5pcXVlSUQiLCJudW0iLG51bGxdLFs1LCJGb250QkJveCIsWyJudW0iLCJudW0iLCJudW0iLCJudW0iXSxbMCwwLDAsMF1dLFtbMTIsOF0sIlN0cm9rZVdpZHRoIiwibnVtIiwwXSxbMTQsIlhVSUQiLCJhcnJheSIsbnVsbF0sWzE1LCJjaGFyc2V0Iiwib2Zmc2V0IiwwXSxbMTYsIkVuY29kaW5nIiwib2Zmc2V0IiwwXSxbMTcsIkNoYXJTdHJpbmdzIiwib2Zmc2V0IiwwXSxbMTgsIlByaXZhdGUiLFsib2Zmc2V0Iiwib2Zmc2V0Il0sbnVsbF0sW1sxMiwyMV0sIlBvc3RTY3JpcHQiLCJzaWQiLG51bGxdLFtbMTIsMjJdLCJCYXNlRm9udE5hbWUiLCJzaWQiLG51bGxdLFtbMTIsMjNdLCJCYXNlRm9udEJsZW5kIiwiZGVsdGEiLG51bGxdLFtbMTIsMzFdLCJDSURGb250VmVyc2lvbiIsIm51bSIsMF0sW1sxMiwzMl0sIkNJREZvbnRSZXZpc2lvbiIsIm51bSIsMF0sW1sxMiwzM10sIkNJREZvbnRUeXBlIiwibnVtIiwwXSxbWzEyLDM0XSwiQ0lEQ291bnQiLCJudW0iLDg3MjBdLFtbMTIsMzVdLCJVSURCYXNlIiwibnVtIixudWxsXSxbWzEyLDM3XSwiRkRTZWxlY3QiLCJvZmZzZXQiLG51bGxdLFtbMTIsMzZdLCJGREFycmF5Iiwib2Zmc2V0IixudWxsXSxbWzEyLDM4XSwiRm9udE5hbWUiLCJzaWQiLG51bGxdXTtjbGFzcyBDRkZUb3BEaWN0IGV4dGVuZHMgQ0ZGRGljdHtzdGF0aWMgZ2V0IHRhYmxlcygpe3JldHVybiBzaGFkb3codGhpcywidGFibGVzIix0aGlzLmNyZWF0ZVRhYmxlcyhNYSkpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKENGRlRvcERpY3QudGFibGVzLGUpO3RoaXMucHJpdmF0ZURpY3Q9bnVsbH19Y29uc3QgUGE9W1s2LCJCbHVlVmFsdWVzIiwiZGVsdGEiLG51bGxdLFs3LCJPdGhlckJsdWVzIiwiZGVsdGEiLG51bGxdLFs4LCJGYW1pbHlCbHVlcyIsImRlbHRhIixudWxsXSxbOSwiRmFtaWx5T3RoZXJCbHVlcyIsImRlbHRhIixudWxsXSxbWzEyLDldLCJCbHVlU2NhbGUiLCJudW0iLC4wMzk2MjVdLFtbMTIsMTBdLCJCbHVlU2hpZnQiLCJudW0iLDddLFtbMTIsMTFdLCJCbHVlRnV6eiIsIm51bSIsMV0sWzEwLCJTdGRIVyIsIm51bSIsbnVsbF0sWzExLCJTdGRWVyIsIm51bSIsbnVsbF0sW1sxMiwxMl0sIlN0ZW1TbmFwSCIsImRlbHRhIixudWxsXSxbWzEyLDEzXSwiU3RlbVNuYXBWIiwiZGVsdGEiLG51bGxdLFtbMTIsMTRdLCJGb3JjZUJvbGQiLCJudW0iLDBdLFtbMTIsMTddLCJMYW5ndWFnZUdyb3VwIiwibnVtIiwwXSxbWzEyLDE4XSwiRXhwYW5zaW9uRmFjdG9yIiwibnVtIiwuMDZdLFtbMTIsMTldLCJpbml0aWFsUmFuZG9tU2VlZCIsIm51bSIsMF0sWzIwLCJkZWZhdWx0V2lkdGhYIiwibnVtIiwwXSxbMjEsIm5vbWluYWxXaWR0aFgiLCJudW0iLDBdLFsxOSwiU3VicnMiLCJvZmZzZXQiLG51bGxdXTtjbGFzcyBDRkZQcml2YXRlRGljdCBleHRlbmRzIENGRkRpY3R7c3RhdGljIGdldCB0YWJsZXMoKXtyZXR1cm4gc2hhZG93KHRoaXMsInRhYmxlcyIsdGhpcy5jcmVhdGVUYWJsZXMoUGEpKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihDRkZQcml2YXRlRGljdC50YWJsZXMsZSk7dGhpcy5zdWJyc0luZGV4PW51bGx9fWNvbnN0IEVhPXtJU09fQURPQkU6MCxFWFBFUlQ6MSxFWFBFUlRfU1VCU0VUOjJ9O2NsYXNzIENGRkNoYXJzZXR7Y29uc3RydWN0b3IoZSx0LG4sYSl7dGhpcy5wcmVkZWZpbmVkPWU7dGhpcy5mb3JtYXQ9dDt0aGlzLmNoYXJzZXQ9bjt0aGlzLnJhdz1hfX1jbGFzcyBDRkZFbmNvZGluZ3tjb25zdHJ1Y3RvcihlLHQsbixhKXt0aGlzLnByZWRlZmluZWQ9ZTt0aGlzLmZvcm1hdD10O3RoaXMuZW5jb2Rpbmc9bjt0aGlzLnJhdz1hfX1jbGFzcyBDRkZGRFNlbGVjdHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuZm9ybWF0PWU7dGhpcy5mZFNlbGVjdD10fWdldEZESW5kZXgoZSl7cmV0dXJuIGU8MHx8ZT49dGhpcy5mZFNlbGVjdC5sZW5ndGg/LTE6dGhpcy5mZFNlbGVjdFtlXX19Y2xhc3MgQ0ZGT2Zmc2V0VHJhY2tlcntvZmZzZXRzPU9iamVjdC5jcmVhdGUobnVsbCk7aXNUcmFja2luZyhlKXtyZXR1cm4gZSBpbiB0aGlzLm9mZnNldHN9dHJhY2soZSx0KXtpZihlIGluIHRoaXMub2Zmc2V0cyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEFscmVhZHkgdHJhY2tpbmcgbG9jYXRpb24gb2YgJHtlfWApO3RoaXMub2Zmc2V0c1tlXT10fW9mZnNldChlKXtmb3IoY29uc3QgdCBpbiB0aGlzLm9mZnNldHMpdGhpcy5vZmZzZXRzW3RdKz1lfXNldEVudHJ5TG9jYXRpb24oZSx0LG4pe2lmKCEoZSBpbiB0aGlzLm9mZnNldHMpKXRocm93IG5ldyBGb3JtYXRFcnJvcihgTm90IHRyYWNraW5nIGxvY2F0aW9uIG9mICR7ZX1gKTtjb25zdCBhPW4uZGF0YSxzPXRoaXMub2Zmc2V0c1tlXTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjsrK2Upe2NvbnN0IG49NSplK3Mscj1uKzEsaT1uKzIsbz1uKzMsbD1uKzQ7aWYoMjkhPT1hW25dfHwwIT09YVtyXXx8MCE9PWFbaV18fDAhPT1hW29dfHwwIT09YVtsXSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIndyaXRpbmcgdG8gYW4gb2Zmc2V0IHRoYXQgaXMgbm90IGVtcHR5Iik7Y29uc3QgZj10W2VdO2Fbbl09Mjk7YVtyXT1mPj4yNCYyNTU7YVtpXT1mPj4xNiYyNTU7YVtvXT1mPj44JjI1NTthW2xdPTI1NSZmfX19Y2xhc3MgQ0ZGQ29tcGlsZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5jZmY9ZX1jb21waWxlKCl7Y29uc3QgZT10aGlzLmNmZix0PXtkYXRhOltdLGxlbmd0aDowLGFkZChlKXt0cnl7dGhpcy5kYXRhLnB1c2goLi4uZSl9Y2F0Y2h7dGhpcy5kYXRhPXRoaXMuZGF0YS5jb25jYXQoZSl9dGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aH19LG49dGhpcy5jb21waWxlSGVhZGVyKGUuaGVhZGVyKTt0LmFkZChuKTtjb25zdCBhPXRoaXMuY29tcGlsZU5hbWVJbmRleChlLm5hbWVzKTt0LmFkZChhKTtpZihlLmlzQ0lERm9udCYmZS50b3BEaWN0Lmhhc05hbWUoIkZvbnRNYXRyaXgiKSl7Y29uc3QgdD1lLnRvcERpY3QuZ2V0QnlOYW1lKCJGb250TWF0cml4Iik7ZS50b3BEaWN0LnJlbW92ZUJ5TmFtZSgiRm9udE1hdHJpeCIpO2Zvcihjb25zdCBuIG9mIGUuZmRBcnJheSl7bGV0IGU9dC5zbGljZSgwKTtuLmhhc05hbWUoIkZvbnRNYXRyaXgiKSYmKGU9VXRpbC50cmFuc2Zvcm0oZSxuLmdldEJ5TmFtZSgiRm9udE1hdHJpeCIpKSk7bi5zZXRCeU5hbWUoIkZvbnRNYXRyaXgiLGUpfX1jb25zdCBzPWUudG9wRGljdC5nZXRCeU5hbWUoIlhVSUQiKTtzPy5sZW5ndGg+MTYmJmUudG9wRGljdC5yZW1vdmVCeU5hbWUoIlhVSUQiKTtlLnRvcERpY3Quc2V0QnlOYW1lKCJjaGFyc2V0IiwwKTtsZXQgcj10aGlzLmNvbXBpbGVUb3BEaWN0cyhbZS50b3BEaWN0XSx0Lmxlbmd0aCxlLmlzQ0lERm9udCk7dC5hZGQoci5vdXRwdXQpO2NvbnN0IGk9ci50cmFja2Vyc1swXSxvPXRoaXMuY29tcGlsZVN0cmluZ0luZGV4KGUuc3RyaW5ncy5zdHJpbmdzKTt0LmFkZChvKTtjb25zdCBsPXRoaXMuY29tcGlsZUluZGV4KGUuZ2xvYmFsU3VickluZGV4KTt0LmFkZChsKTtpZihlLmVuY29kaW5nJiZlLnRvcERpY3QuaGFzTmFtZSgiRW5jb2RpbmciKSlpZihlLmVuY29kaW5nLnByZWRlZmluZWQpaS5zZXRFbnRyeUxvY2F0aW9uKCJFbmNvZGluZyIsW2UuZW5jb2RpbmcuZm9ybWF0XSx0KTtlbHNle2NvbnN0IG49dGhpcy5jb21waWxlRW5jb2RpbmcoZS5lbmNvZGluZyk7aS5zZXRFbnRyeUxvY2F0aW9uKCJFbmNvZGluZyIsW3QubGVuZ3RoXSx0KTt0LmFkZChuKX1jb25zdCBmPXRoaXMuY29tcGlsZUNoYXJzZXQoZS5jaGFyc2V0LGUuY2hhclN0cmluZ3MuY291bnQsZS5zdHJpbmdzLGUuaXNDSURGb250KTtpLnNldEVudHJ5TG9jYXRpb24oImNoYXJzZXQiLFt0Lmxlbmd0aF0sdCk7dC5hZGQoZik7Y29uc3QgYz10aGlzLmNvbXBpbGVDaGFyU3RyaW5ncyhlLmNoYXJTdHJpbmdzKTtpLnNldEVudHJ5TG9jYXRpb24oIkNoYXJTdHJpbmdzIixbdC5sZW5ndGhdLHQpO3QuYWRkKGMpO2lmKGUuaXNDSURGb250KXtpLnNldEVudHJ5TG9jYXRpb24oIkZEU2VsZWN0IixbdC5sZW5ndGhdLHQpO2NvbnN0IG49dGhpcy5jb21waWxlRkRTZWxlY3QoZS5mZFNlbGVjdCk7dC5hZGQobik7cj10aGlzLmNvbXBpbGVUb3BEaWN0cyhlLmZkQXJyYXksdC5sZW5ndGgsITApO2kuc2V0RW50cnlMb2NhdGlvbigiRkRBcnJheSIsW3QubGVuZ3RoXSx0KTt0LmFkZChyLm91dHB1dCk7Y29uc3QgYT1yLnRyYWNrZXJzO3RoaXMuY29tcGlsZVByaXZhdGVEaWN0cyhlLmZkQXJyYXksYSx0KX10aGlzLmNvbXBpbGVQcml2YXRlRGljdHMoW2UudG9wRGljdF0sW2ldLHQpO3QuYWRkKFswXSk7cmV0dXJuIHQuZGF0YX1lbmNvZGVOdW1iZXIoZSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZSk/dGhpcy5lbmNvZGVJbnRlZ2VyKGUpOnRoaXMuZW5jb2RlRmxvYXQoZSl9c3RhdGljIGdldCBFbmNvZGVGbG9hdFJlZ0V4cCgpe3JldHVybiBzaGFkb3codGhpcywiRW5jb2RlRmxvYXRSZWdFeHAiLC9cLihcZCo/KSg/Ojl7NSwyMH18MHs1LDIwfSlcZHswLDJ9KD86ZSguKyl8JCkvKX1lbmNvZGVGbG9hdChlKXtsZXQgdD1lLnRvU3RyaW5nKCk7Y29uc3Qgbj1DRkZDb21waWxlci5FbmNvZGVGbG9hdFJlZ0V4cC5leGVjKHQpO2lmKG4pe2NvbnN0IGE9cGFyc2VGbG9hdCgiMWUiKygoblsyXT8rblsyXTowKStuWzFdLmxlbmd0aCkpO3Q9KE1hdGgucm91bmQoZSphKS9hKS50b1N0cmluZygpfWxldCBhLHMscj0iIjtmb3IoYT0wLHM9dC5sZW5ndGg7YTxzOysrYSl7Y29uc3QgZT10W2FdO3IrPSJlIj09PWU/Ii0iPT09dFsrK2FdPyJjIjoiYiI6Ii4iPT09ZT8iYSI6Ii0iPT09ZT8iZSI6ZX1yKz0xJnIubGVuZ3RoPyJmIjoiZmYiO2NvbnN0IGk9WzMwXTtmb3IoYT0wLHM9ci5sZW5ndGg7YTxzO2ErPTIpaS5wdXNoKHBhcnNlSW50KHIuc3Vic3RyaW5nKGEsYSsyKSwxNikpO3JldHVybiBpfWVuY29kZUludGVnZXIoZSl7bGV0IHQ7dD1lPj0tMTA3JiZlPD0xMDc/W2UrMTM5XTplPj0xMDgmJmU8PTExMzE/WzI0NysoKGUtPTEwOCk+PjgpLDI1NSZlXTplPj0tMTEzMSYmZTw9LTEwOD9bMjUxKygoZT0tZS0xMDgpPj44KSwyNTUmZV06ZT49LTMyNzY4JiZlPD0zMjc2Nz9bMjgsZT4+OCYyNTUsMjU1JmVdOlsyOSxlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LDI1NSZlXTtyZXR1cm4gdH1jb21waWxlSGVhZGVyKGUpe3JldHVybltlLm1ham9yLGUubWlub3IsNCxlLm9mZlNpemVdfWNvbXBpbGVOYW1lSW5kZXgoZSl7Y29uc3QgdD1uZXcgQ0ZGSW5kZXg7Zm9yKGNvbnN0IG4gb2YgZSl7Y29uc3QgZT1NYXRoLm1pbihuLmxlbmd0aCwxMjcpO2xldCBhPW5ldyBBcnJheShlKTtmb3IobGV0IHQ9MDt0PGU7dCsrKXtsZXQgZT1uW3RdOyhlPCIhInx8ZT4ifiJ8fCJbIj09PWV8fCJdIj09PWV8fCIoIj09PWV8fCIpIj09PWV8fCJ7Ij09PWV8fCJ9Ij09PWV8fCI8Ij09PWV8fCI+Ij09PWV8fCIvIj09PWV8fCIlIj09PWUpJiYoZT0iXyIpO2FbdF09ZX1hPWEuam9pbigiIik7IiI9PT1hJiYoYT0iQmFkX0ZvbnRfTmFtZSIpO3QuYWRkKHN0cmluZ1RvQnl0ZXMoYSkpfXJldHVybiB0aGlzLmNvbXBpbGVJbmRleCh0KX1jb21waWxlVG9wRGljdHMoZSx0LG4pe2NvbnN0IGE9W107bGV0IHM9bmV3IENGRkluZGV4O2Zvcihjb25zdCByIG9mIGUpe2lmKG4pe3IucmVtb3ZlQnlOYW1lKCJDSURGb250VmVyc2lvbiIpO3IucmVtb3ZlQnlOYW1lKCJDSURGb250UmV2aXNpb24iKTtyLnJlbW92ZUJ5TmFtZSgiQ0lERm9udFR5cGUiKTtyLnJlbW92ZUJ5TmFtZSgiQ0lEQ291bnQiKTtyLnJlbW92ZUJ5TmFtZSgiVUlEQmFzZSIpfWNvbnN0IGU9bmV3IENGRk9mZnNldFRyYWNrZXIsaT10aGlzLmNvbXBpbGVEaWN0KHIsZSk7YS5wdXNoKGUpO3MuYWRkKGkpO2Uub2Zmc2V0KHQpfXM9dGhpcy5jb21waWxlSW5kZXgocyxhKTtyZXR1cm57dHJhY2tlcnM6YSxvdXRwdXQ6c319Y29tcGlsZVByaXZhdGVEaWN0cyhlLHQsbil7Zm9yKGxldCBhPTAscz1lLmxlbmd0aDthPHM7KythKXtjb25zdCBzPWVbYV0scj1zLnByaXZhdGVEaWN0O2lmKCFyfHwhcy5oYXNOYW1lKCJQcml2YXRlIikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJUaGVyZSBtdXN0IGJlIGEgcHJpdmF0ZSBkaWN0aW9uYXJ5LiIpO2NvbnN0IGk9bmV3IENGRk9mZnNldFRyYWNrZXIsbz10aGlzLmNvbXBpbGVEaWN0KHIsaSk7bGV0IGw9bi5sZW5ndGg7aS5vZmZzZXQobCk7by5sZW5ndGh8fChsPTApO3RbYV0uc2V0RW50cnlMb2NhdGlvbigiUHJpdmF0ZSIsW28ubGVuZ3RoLGxdLG4pO24uYWRkKG8pO2lmKHIuc3VicnNJbmRleCYmci5oYXNOYW1lKCJTdWJycyIpKXtjb25zdCBlPXRoaXMuY29tcGlsZUluZGV4KHIuc3VicnNJbmRleCk7aS5zZXRFbnRyeUxvY2F0aW9uKCJTdWJycyIsW28ubGVuZ3RoXSxuKTtuLmFkZChlKX19fWNvbXBpbGVEaWN0KGUsdCl7Y29uc3Qgbj1bXTtmb3IoY29uc3QgYSBvZiBlLm9yZGVyKXtpZighKGEgaW4gZS52YWx1ZXMpKWNvbnRpbnVlO2xldCBzPWUudmFsdWVzW2FdLHI9ZS50eXBlc1thXTtBcnJheS5pc0FycmF5KHIpfHwocj1bcl0pO0FycmF5LmlzQXJyYXkocyl8fChzPVtzXSk7aWYoMCE9PXMubGVuZ3RoKXtmb3IobGV0IGk9MCxvPXIubGVuZ3RoO2k8bzsrK2kpe2NvbnN0IG89cltpXSxsPXNbaV07c3dpdGNoKG8pe2Nhc2UibnVtIjpjYXNlInNpZCI6bi5wdXNoKC4uLnRoaXMuZW5jb2RlTnVtYmVyKGwpKTticmVhaztjYXNlIm9mZnNldCI6Y29uc3Qgcj1lLmtleVRvTmFtZU1hcFthXTt0LmlzVHJhY2tpbmcocil8fHQudHJhY2socixuLmxlbmd0aCk7bi5wdXNoKDI5LDAsMCwwLDApO2JyZWFrO2Nhc2UiYXJyYXkiOmNhc2UiZGVsdGEiOm4ucHVzaCguLi50aGlzLmVuY29kZU51bWJlcihsKSk7Zm9yKGxldCBlPTEsdD1zLmxlbmd0aDtlPHQ7KytlKW4ucHVzaCguLi50aGlzLmVuY29kZU51bWJlcihzW2VdKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVua25vd24gZGF0YSB0eXBlIG9mICR7b31gKX19bi5wdXNoKC4uLmUub3Bjb2Rlc1thXSl9fXJldHVybiBufWNvbXBpbGVTdHJpbmdJbmRleChlKXtjb25zdCB0PW5ldyBDRkZJbmRleDtmb3IoY29uc3QgbiBvZiBlKXQuYWRkKHN0cmluZ1RvQnl0ZXMobikpO3JldHVybiB0aGlzLmNvbXBpbGVJbmRleCh0KX1jb21waWxlQ2hhclN0cmluZ3MoZSl7Y29uc3QgdD1uZXcgQ0ZGSW5kZXg7Zm9yKGxldCBuPTA7bjxlLmNvdW50O24rKyl7Y29uc3QgYT1lLmdldChuKTswIT09YS5sZW5ndGg/dC5hZGQoYSk6dC5hZGQobmV3IFVpbnQ4QXJyYXkoWzEzOSwxNF0pKX1yZXR1cm4gdGhpcy5jb21waWxlSW5kZXgodCl9Y29tcGlsZUNoYXJzZXQoZSx0LG4sYSl7bGV0IHM7Y29uc3Qgcj10LTE7aWYoYSl7Y29uc3QgZT1yLTE7cz1uZXcgVWludDhBcnJheShbMiwwLDEsZT4+OCYyNTUsMjU1JmVdKX1lbHNle3M9bmV3IFVpbnQ4QXJyYXkoMSsyKnIpO3NbMF09MDtsZXQgdD0wO2NvbnN0IGE9ZS5jaGFyc2V0Lmxlbmd0aDtsZXQgaT0hMTtmb3IobGV0IHI9MTtyPHMubGVuZ3RoO3IrPTIpe2xldCBvPTA7aWYodDxhKXtjb25zdCBhPWUuY2hhcnNldFt0KytdO289bi5nZXRTSUQoYSk7aWYoLTE9PT1vKXtvPTA7aWYoIWkpe2k9ITA7d2FybihgQ291bGRuJ3QgZmluZCAke2F9IGluIENGRiBzdHJpbmdzYCl9fX1zW3JdPW8+PjgmMjU1O3NbcisxXT0yNTUmb319cmV0dXJuIHRoaXMuY29tcGlsZVR5cGVkQXJyYXkocyl9Y29tcGlsZUVuY29kaW5nKGUpe3JldHVybiB0aGlzLmNvbXBpbGVUeXBlZEFycmF5KGUucmF3KX1jb21waWxlRkRTZWxlY3QoZSl7Y29uc3QgdD1lLmZvcm1hdDtsZXQgbixhO3N3aXRjaCh0KXtjYXNlIDA6bj1uZXcgVWludDhBcnJheSgxK2UuZmRTZWxlY3QubGVuZ3RoKTtuWzBdPXQ7Zm9yKGE9MDthPGUuZmRTZWxlY3QubGVuZ3RoO2ErKyluW2ErMV09ZS5mZFNlbGVjdFthXTticmVhaztjYXNlIDM6Y29uc3Qgcz0wO2xldCByPWUuZmRTZWxlY3RbMF07Y29uc3QgaT1bdCwwLDAscz4+OCYyNTUsMjU1JnMscl07Zm9yKGE9MTthPGUuZmRTZWxlY3QubGVuZ3RoO2ErKyl7Y29uc3QgdD1lLmZkU2VsZWN0W2FdO2lmKHQhPT1yKXtpLnB1c2goYT4+OCYyNTUsMjU1JmEsdCk7cj10fX1jb25zdCBvPShpLmxlbmd0aC0zKS8zO2lbMV09bz4+OCYyNTU7aVsyXT0yNTUmbztpLnB1c2goYT4+OCYyNTUsMjU1JmEpO249bmV3IFVpbnQ4QXJyYXkoaSl9cmV0dXJuIHRoaXMuY29tcGlsZVR5cGVkQXJyYXkobil9Y29tcGlsZVR5cGVkQXJyYXkoZSl7cmV0dXJuIEFycmF5LmZyb20oZSl9Y29tcGlsZUluZGV4KGUsdD1bXSl7Y29uc3Qgbj1lLm9iamVjdHMsYT1uLmxlbmd0aDtpZigwPT09YSlyZXR1cm5bMCwwXTtjb25zdCBzPVthPj44JjI1NSwyNTUmYV07bGV0IHIsaSxvPTE7Zm9yKHI9MDtyPGE7KytyKW8rPW5bcl0ubGVuZ3RoO2k9bzwyNTY/MTpvPDY1NTM2PzI6bzwxNjc3NzIxNj8zOjQ7cy5wdXNoKGkpO2xldCBsPTE7Zm9yKHI9MDtyPGErMTtyKyspezE9PT1pP3MucHVzaCgyNTUmbCk6Mj09PWk/cy5wdXNoKGw+PjgmMjU1LDI1NSZsKTozPT09aT9zLnB1c2gobD4+MTYmMjU1LGw+PjgmMjU1LDI1NSZsKTpzLnB1c2gobD4+PjI0JjI1NSxsPj4xNiYyNTUsbD4+OCYyNTUsMjU1JmwpO25bcl0mJihsKz1uW3JdLmxlbmd0aCl9Zm9yKHI9MDtyPGE7cisrKXt0W3JdJiZ0W3JdLm9mZnNldChzLmxlbmd0aCk7cy5wdXNoKC4uLm5bcl0pfXJldHVybiBzfX1jb25zdCBOYT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZVsiVGltZXMtUm9tYW4iXT0iVGltZXMtUm9tYW4iO2UuSGVsdmV0aWNhPSJIZWx2ZXRpY2EiO2UuQ291cmllcj0iQ291cmllciI7ZS5TeW1ib2w9IlN5bWJvbCI7ZVsiVGltZXMtQm9sZCJdPSJUaW1lcy1Cb2xkIjtlWyJIZWx2ZXRpY2EtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiQ291cmllci1Cb2xkIl09IkNvdXJpZXItQm9sZCI7ZS5aYXBmRGluZ2JhdHM9IlphcGZEaW5nYmF0cyI7ZVsiVGltZXMtSXRhbGljIl09IlRpbWVzLUl0YWxpYyI7ZVsiSGVsdmV0aWNhLU9ibGlxdWUiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2VbIkNvdXJpZXItT2JsaXF1ZSJdPSJDb3VyaWVyLU9ibGlxdWUiO2VbIlRpbWVzLUJvbGRJdGFsaWMiXT0iVGltZXMtQm9sZEl0YWxpYyI7ZVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPSJDb3VyaWVyLUJvbGRPYmxpcXVlIjtlLkFyaWFsTmFycm93PSJIZWx2ZXRpY2EiO2VbIkFyaWFsTmFycm93LUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsTmFycm93LUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJBcmlhbE5hcnJvdy1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2UuQXJpYWxCbGFjaz0iSGVsdmV0aWNhIjtlWyJBcmlhbEJsYWNrLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsQmxhY2stQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkFyaWFsQmxhY2stSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlWyJBcmlhbC1CbGFjayJdPSJIZWx2ZXRpY2EiO2VbIkFyaWFsLUJsYWNrLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsLUJsYWNrLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJBcmlhbC1CbGFjay1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2UuQXJpYWw9IkhlbHZldGljYSI7ZVsiQXJpYWwtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiQXJpYWwtQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkFyaWFsLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZS5BcmlhbE1UPSJIZWx2ZXRpY2EiO2VbIkFyaWFsLUJvbGRJdGFsaWNNVCJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkFyaWFsLUJvbGRNVCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiQXJpYWwtSXRhbGljTVQiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2VbIkFyaWFsLUJvbGRJdGFsaWNNVC1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiQXJpYWwtQm9sZE1ULUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsLUl0YWxpY01ULUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZS5BcmlhbFVuaWNvZGVNUz0iSGVsdmV0aWNhIjtlWyJBcmlhbFVuaWNvZGVNUy1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIjtlWyJBcmlhbFVuaWNvZGVNUy1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiQXJpYWxVbmljb2RlTVMtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlWyJDb3VyaWVyLUJvbGRJdGFsaWMiXT0iQ291cmllci1Cb2xkT2JsaXF1ZSI7ZVsiQ291cmllci1JdGFsaWMiXT0iQ291cmllci1PYmxpcXVlIjtlLkNvdXJpZXJOZXc9IkNvdXJpZXIiO2VbIkNvdXJpZXJOZXctQm9sZCJdPSJDb3VyaWVyLUJvbGQiO2VbIkNvdXJpZXJOZXctQm9sZEl0YWxpYyJdPSJDb3VyaWVyLUJvbGRPYmxpcXVlIjtlWyJDb3VyaWVyTmV3LUl0YWxpYyJdPSJDb3VyaWVyLU9ibGlxdWUiO2VbIkNvdXJpZXJOZXdQUy1Cb2xkSXRhbGljTVQiXT0iQ291cmllci1Cb2xkT2JsaXF1ZSI7ZVsiQ291cmllck5ld1BTLUJvbGRNVCJdPSJDb3VyaWVyLUJvbGQiO2VbIkNvdXJpZXJOZXdQUy1JdGFsaWNNVCJdPSJDb3VyaWVyLU9ibGlxdWUiO2UuQ291cmllck5ld1BTTVQ9IkNvdXJpZXIiO2VbIkhlbHZldGljYS1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiSGVsdmV0aWNhLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZVsiSGVsdmV0aWNhTFRTdGQtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiU3ltYm9sLUJvbGQiXT0iU3ltYm9sIjtlWyJTeW1ib2wtQm9sZEl0YWxpYyJdPSJTeW1ib2wiO2VbIlN5bWJvbC1JdGFsaWMiXT0iU3ltYm9sIjtlLlRpbWVzTmV3Um9tYW49IlRpbWVzLVJvbWFuIjtlWyJUaW1lc05ld1JvbWFuLUJvbGQiXT0iVGltZXMtQm9sZCI7ZVsiVGltZXNOZXdSb21hbi1Cb2xkSXRhbGljIl09IlRpbWVzLUJvbGRJdGFsaWMiO2VbIlRpbWVzTmV3Um9tYW4tSXRhbGljIl09IlRpbWVzLUl0YWxpYyI7ZS5UaW1lc05ld1JvbWFuUFM9IlRpbWVzLVJvbWFuIjtlWyJUaW1lc05ld1JvbWFuUFMtQm9sZCJdPSJUaW1lcy1Cb2xkIjtlWyJUaW1lc05ld1JvbWFuUFMtQm9sZEl0YWxpYyJdPSJUaW1lcy1Cb2xkSXRhbGljIjtlWyJUaW1lc05ld1JvbWFuUFMtQm9sZEl0YWxpY01UIl09IlRpbWVzLUJvbGRJdGFsaWMiO2VbIlRpbWVzTmV3Um9tYW5QUy1Cb2xkTVQiXT0iVGltZXMtQm9sZCI7ZVsiVGltZXNOZXdSb21hblBTLUl0YWxpYyJdPSJUaW1lcy1JdGFsaWMiO2VbIlRpbWVzTmV3Um9tYW5QUy1JdGFsaWNNVCJdPSJUaW1lcy1JdGFsaWMiO2UuVGltZXNOZXdSb21hblBTTVQ9IlRpbWVzLVJvbWFuIjtlWyJUaW1lc05ld1JvbWFuUFNNVC1Cb2xkIl09IlRpbWVzLUJvbGQiO2VbIlRpbWVzTmV3Um9tYW5QU01ULUJvbGRJdGFsaWMiXT0iVGltZXMtQm9sZEl0YWxpYyI7ZVsiVGltZXNOZXdSb21hblBTTVQtSXRhbGljIl09IlRpbWVzLUl0YWxpYyJ9KSx6YT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5Db3VyaWVyPSJGb3hpdEZpeGVkLnBmYiI7ZVsiQ291cmllci1Cb2xkIl09IkZveGl0Rml4ZWRCb2xkLnBmYiI7ZVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPSJGb3hpdEZpeGVkQm9sZEl0YWxpYy5wZmIiO2VbIkNvdXJpZXItT2JsaXF1ZSJdPSJGb3hpdEZpeGVkSXRhbGljLnBmYiI7ZS5IZWx2ZXRpY2E9IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIudHRmIjtlWyJIZWx2ZXRpY2EtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiI7ZVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMudHRmIjtlWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPSJMaWJlcmF0aW9uU2Fucy1JdGFsaWMudHRmIjtlWyJUaW1lcy1Sb21hbiJdPSJGb3hpdFNlcmlmLnBmYiI7ZVsiVGltZXMtQm9sZCJdPSJGb3hpdFNlcmlmQm9sZC5wZmIiO2VbIlRpbWVzLUJvbGRJdGFsaWMiXT0iRm94aXRTZXJpZkJvbGRJdGFsaWMucGZiIjtlWyJUaW1lcy1JdGFsaWMiXT0iRm94aXRTZXJpZkl0YWxpYy5wZmIiO2UuU3ltYm9sPSJGb3hpdFN5bWJvbC5wZmIiO2UuWmFwZkRpbmdiYXRzPSJGb3hpdERpbmdiYXRzLnBmYiI7ZVsiTGliZXJhdGlvblNhbnMtUmVndWxhciJdPSJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyLnR0ZiI7ZVsiTGliZXJhdGlvblNhbnMtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiI7ZVsiTGliZXJhdGlvblNhbnMtSXRhbGljIl09IkxpYmVyYXRpb25TYW5zLUl0YWxpYy50dGYiO2VbIkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiXT0iTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYy50dGYifSksTGE9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2UuQ2FsaWJyaT0iSGVsdmV0aWNhIjtlWyJDYWxpYnJpLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkNhbGlicmktQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkNhbGlicmktSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlLkNlbnR1cnlHb3RoaWM9IkhlbHZldGljYSI7ZVsiQ2VudHVyeUdvdGhpYy1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIjtlWyJDZW50dXJ5R290aGljLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJDZW50dXJ5R290aGljLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZS5Db21pY1NhbnNNUz0iQ29taWMgU2FucyBNUyI7ZVsiQ29taWNTYW5zTVMtQm9sZCJdPSJDb21pYyBTYW5zIE1TLUJvbGQiO2VbIkNvbWljU2Fuc01TLUJvbGRJdGFsaWMiXT0iQ29taWMgU2FucyBNUy1Cb2xkSXRhbGljIjtlWyJDb21pY1NhbnNNUy1JdGFsaWMiXT0iQ29taWMgU2FucyBNUy1JdGFsaWMiO2UuR2lsbFNhbnNNVD0iSGVsdmV0aWNhIjtlWyJHaWxsU2Fuc01ULUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkdpbGxTYW5zTVQtQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkdpbGxTYW5zTVQtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlLkltcGFjdD0iSGVsdmV0aWNhIjtlWyJJdGNTeW1ib2wtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiSXRjU3ltYm9sLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJJdGNTeW1ib2wtQm9vayJdPSJIZWx2ZXRpY2EiO2VbIkl0Y1N5bWJvbC1Cb29rSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlWyJJdGNTeW1ib2wtTWVkaXVtIl09IkhlbHZldGljYSI7ZVsiSXRjU3ltYm9sLU1lZGl1bUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZS5MdWNpZGFDb25zb2xlPSJDb3VyaWVyIjtlWyJMdWNpZGFDb25zb2xlLUJvbGQiXT0iQ291cmllci1Cb2xkIjtlWyJMdWNpZGFDb25zb2xlLUJvbGRJdGFsaWMiXT0iQ291cmllci1Cb2xkT2JsaXF1ZSI7ZVsiTHVjaWRhQ29uc29sZS1JdGFsaWMiXT0iQ291cmllci1PYmxpcXVlIjtlWyJMdWNpZGFTYW5zLURlbWkiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIk1TLUdvdGhpYyJdPSJNUyBHb3RoaWMiO2VbIk1TLUdvdGhpYy1Cb2xkIl09Ik1TIEdvdGhpYy1Cb2xkIjtlWyJNUy1Hb3RoaWMtQm9sZEl0YWxpYyJdPSJNUyBHb3RoaWMtQm9sZEl0YWxpYyI7ZVsiTVMtR290aGljLUl0YWxpYyJdPSJNUyBHb3RoaWMtSXRhbGljIjtlWyJNUy1NaW5jaG8iXT0iTVMgTWluY2hvIjtlWyJNUy1NaW5jaG8tQm9sZCJdPSJNUyBNaW5jaG8tQm9sZCI7ZVsiTVMtTWluY2hvLUJvbGRJdGFsaWMiXT0iTVMgTWluY2hvLUJvbGRJdGFsaWMiO2VbIk1TLU1pbmNoby1JdGFsaWMiXT0iTVMgTWluY2hvLUl0YWxpYyI7ZVsiTVMtUEdvdGhpYyJdPSJNUyBQR290aGljIjtlWyJNUy1QR290aGljLUJvbGQiXT0iTVMgUEdvdGhpYy1Cb2xkIjtlWyJNUy1QR290aGljLUJvbGRJdGFsaWMiXT0iTVMgUEdvdGhpYy1Cb2xkSXRhbGljIjtlWyJNUy1QR290aGljLUl0YWxpYyJdPSJNUyBQR290aGljLUl0YWxpYyI7ZVsiTVMtUE1pbmNobyJdPSJNUyBQTWluY2hvIjtlWyJNUy1QTWluY2hvLUJvbGQiXT0iTVMgUE1pbmNoby1Cb2xkIjtlWyJNUy1QTWluY2hvLUJvbGRJdGFsaWMiXT0iTVMgUE1pbmNoby1Cb2xkSXRhbGljIjtlWyJNUy1QTWluY2hvLUl0YWxpYyJdPSJNUyBQTWluY2hvLUl0YWxpYyI7ZS5OdXB0aWFsU2NyaXB0PSJUaW1lcy1JdGFsaWMiO2UuU2Vnb2VVSVN5bWJvbD0iSGVsdmV0aWNhIn0pLFVhPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlWyJBZG9iZSBKZW5zb24iXT0hMDtlWyJBZG9iZSBUZXh0Il09ITA7ZS5BbGJlcnR1cz0hMDtlLkFsZHVzPSEwO2UuQWxleGFuZHJpYT0hMDtlLkFsZ2VyaWFuPSEwO2VbIkFtZXJpY2FuIFR5cGV3cml0ZXIiXT0hMDtlLkFudGlxdWE9ITA7ZS5BcGV4PSEwO2UuQXJubz0hMDtlLkFzdGVyPSEwO2UuQXVyb3JhPSEwO2UuQmFza2VydmlsbGU9ITA7ZS5CZWxsPSEwO2UuQmVtYm89ITA7ZVsiQmVtYm8gU2Nob29sYm9vayJdPSEwO2UuQmVuZ3VpYXQ9ITA7ZVsiQmVya2VsZXkgT2xkIFN0eWxlIl09ITA7ZVsiQmVybmhhcmQgTW9kZXJuIl09ITA7ZVsiQmVydGhvbGQgQ2l0eSJdPSEwO2UuQm9kb25pPSEwO2VbIkJhdWVyIEJvZG9uaSJdPSEwO2VbIkJvb2sgQW50aXF1YSJdPSEwO2UuQm9va21hbj0hMDtlWyJCb3JkZWF1eCBSb21hbiJdPSEwO2VbIkNhbGlmb3JuaWFuIEZCIl09ITA7ZS5DYWxpc3RvPSEwO2UuQ2FsdmVydD0hMDtlLkNhcGl0YWxzPSEwO2UuQ2FtYnJpYT0hMDtlLkNhcnRpZXI9ITA7ZS5DYXNsb249ITA7ZS5DYXR1bGw9ITA7ZS5DZW50YXVyPSEwO2VbIkNlbnR1cnkgT2xkIFN0eWxlIl09ITA7ZVsiQ2VudHVyeSBTY2hvb2xib29rIl09ITA7ZS5DaGFwYXJyYWw9ITA7ZVsiQ2hhcmlzIFNJTCJdPSEwO2UuQ2hlbHRlbmhhbT0hMDtlWyJDaG9sbGEgU2xhYiJdPSEwO2UuQ2xhcmVuZG9uPSEwO2UuQ2xlYXJmYWNlPSEwO2UuQ29jaGluPSEwO2UuQ29sb25uYT0hMDtlWyJDb21wdXRlciBNb2Rlcm4iXT0hMDtlWyJDb25jcmV0ZSBSb21hbiJdPSEwO2UuQ29uc3RhbnRpYT0hMDtlWyJDb29wZXIgQmxhY2siXT0hMDtlLkNvcm9uYT0hMDtlLkVjb3R5cGU9ITA7ZS5FZ3lwdGllbm5lPSEwO2UuRWxlcGhhbnQ9ITA7ZS5FeGNlbHNpb3I9ITA7ZS5GYWlyZmllbGQ9ITA7ZVsiRkYgU2NhbGEiXT0hMDtlLkZvbGthcmQ9ITA7ZS5Gb290bGlnaHQ9ITA7ZS5GcmVlU2VyaWY9ITA7ZVsiRnJpeiBRdWFkcmF0YSJdPSEwO2UuR2FyYW1vbmQ9ITA7ZS5HZW50aXVtPSEwO2UuR2VvcmdpYT0hMDtlLkdsb3VjZXN0ZXI9ITA7ZVsiR291ZHkgT2xkIFN0eWxlIl09ITA7ZVsiR291ZHkgU2Nob29sYm9vayJdPSEwO2VbIkdvdWR5IFBybyBGb250Il09ITA7ZS5HcmFuam9uPSEwO2VbIkd1YXJkaWFuIEVneXB0aWFuIl09ITA7ZS5IZWF0aGVyPSEwO2UuSGVyY3VsZXM9ITA7ZVsiSGlnaCBUb3dlciBUZXh0Il09ITA7ZS5IaXJvc2hpZ2U9ITA7ZVsiSG9lZmxlciBUZXh0Il09ITA7ZVsiSHVtYW5hIFNlcmlmIl09ITA7ZS5JbXByaW50PSEwO2VbIklvbmljIE5vLiA1Il09ITA7ZS5KYW5zb249ITA7ZS5Kb2FubmE9ITA7ZS5Lb3Jpbm5hPSEwO2UuTGV4aWNvbj0hMDtlLkxpYmVyYXRpb25TZXJpZj0hMDtlWyJMaWJlcmF0aW9uIFNlcmlmIl09ITA7ZVsiTGludXggTGliZXJ0aW5lIl09ITA7ZS5MaXRlcmF0dXJuYXlhPSEwO2UuTHVjaWRhPSEwO2VbIkx1Y2lkYSBCcmlnaHQiXT0hMDtlLk1lbGlvcj0hMDtlLk1lbXBoaXM9ITA7ZS5NaWxsZXI9ITA7ZS5NaW5pb249ITA7ZS5Nb2Rlcm49ITA7ZVsiTW9uYSBMaXNhIl09ITA7ZVsiTXJzIEVhdmVzIl09ITA7ZVsiTVMgU2VyaWYiXT0hMDtlWyJNdXNlbyBTbGFiIl09ITA7ZVsiTmV3IFlvcmsiXT0hMDtlWyJOaW1idXMgUm9tYW4iXT0hMDtlWyJOUFMgUmF3bGluc29uIFJvYWR3YXkiXT0hMDtlLk51cHRpYWxTY3JpcHQ9ITA7ZS5QYWxhdGlubz0hMDtlLlBlcnBldHVhPSEwO2UuUGxhbnRpbj0hMDtlWyJQbGFudGluIFNjaG9vbGJvb2siXT0hMDtlLlBsYXliaWxsPSEwO2VbIlBvb3IgUmljaGFyZCJdPSEwO2VbIlJhd2xpbnNvbiBSb2Fkd2F5Il09ITA7ZS5SZW5hdWx0PSEwO2UuUmVxdWllbT0hMDtlLlJvY2t3ZWxsPSEwO2UuUm9tYW49ITA7ZVsiUm90aXMgU2VyaWYiXT0hMDtlLlNhYm9uPSEwO2UuU2NhbGE9ITA7ZS5TZWFndWxsPSEwO2UuU2lzdGluYT0hMDtlLlNvdXZlbmlyPSEwO2UuU1RJWD0hMDtlWyJTdG9uZSBJbmZvcm1hbCJdPSEwO2VbIlN0b25lIFNlcmlmIl09ITA7ZS5TeWxmYWVuPSEwO2UuVGltZXM9ITA7ZS5UcmFqYW49ITA7ZVsiVHJpbml0w6kiXT0hMDtlWyJUcnVtcCBNZWRpYWV2YWwiXT0hMDtlLlV0b3BpYT0hMDtlWyJWYWxlIFR5cGUiXT0hMDtlWyJCaXRzdHJlYW0gVmVyYSJdPSEwO2VbIlZlcmEgU2VyaWYiXT0hMDtlLlZlcnNhaWxsZXM9ITA7ZS5XYW50ZWQ9ITA7ZS5XZWlzcz0hMDtlWyJXaWRlIExhdGluIl09ITA7ZS5XaW5kc29yPSEwO2UuWElUUz0hMH0pLF9hPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlLkRpbmdiYXRzPSEwO2UuU3ltYm9sPSEwO2UuWmFwZkRpbmdiYXRzPSEwO2UuV2luZ2RpbmdzPSEwO2VbIldpbmdkaW5ncy1Cb2xkIl09ITA7ZVsiV2luZ2RpbmdzLVJlZ3VsYXIiXT0hMH0pLFhhPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlWzJdPTEwO2VbM109MzI7ZVs0XT0zMztlWzVdPTM0O2VbNl09MzU7ZVs3XT0zNjtlWzhdPTM3O2VbOV09Mzg7ZVsxMF09Mzk7ZVsxMV09NDA7ZVsxMl09NDE7ZVsxM109NDI7ZVsxNF09NDM7ZVsxNV09NDQ7ZVsxNl09NDU7ZVsxN109NDY7ZVsxOF09NDc7ZVsxOV09NDg7ZVsyMF09NDk7ZVsyMV09NTA7ZVsyMl09NTE7ZVsyM109NTI7ZVsyNF09NTM7ZVsyNV09NTQ7ZVsyNl09NTU7ZVsyN109NTY7ZVsyOF09NTc7ZVsyOV09NTg7ZVszMF09ODk0O2VbMzFdPTYwO2VbMzJdPTYxO2VbMzNdPTYyO2VbMzRdPTYzO2VbMzVdPTY0O2VbMzZdPTY1O2VbMzddPTY2O2VbMzhdPTY3O2VbMzldPTY4O2VbNDBdPTY5O2VbNDFdPTcwO2VbNDJdPTcxO2VbNDNdPTcyO2VbNDRdPTczO2VbNDVdPTc0O2VbNDZdPTc1O2VbNDddPTc2O2VbNDhdPTc3O2VbNDldPTc4O2VbNTBdPTc5O2VbNTFdPTgwO2VbNTJdPTgxO2VbNTNdPTgyO2VbNTRdPTgzO2VbNTVdPTg0O2VbNTZdPTg1O2VbNTddPTg2O2VbNThdPTg3O2VbNTldPTg4O2VbNjBdPTg5O2VbNjFdPTkwO2VbNjJdPTkxO2VbNjNdPTkyO2VbNjRdPTkzO2VbNjVdPTk0O2VbNjZdPTk1O2VbNjddPTk2O2VbNjhdPTk3O2VbNjldPTk4O2VbNzBdPTk5O2VbNzFdPTEwMDtlWzcyXT0xMDE7ZVs3M109MTAyO2VbNzRdPTEwMztlWzc1XT0xMDQ7ZVs3Nl09MTA1O2VbNzddPTEwNjtlWzc4XT0xMDc7ZVs3OV09MTA4O2VbODBdPTEwOTtlWzgxXT0xMTA7ZVs4Ml09MTExO2VbODNdPTExMjtlWzg0XT0xMTM7ZVs4NV09MTE0O2VbODZdPTExNTtlWzg3XT0xMTY7ZVs4OF09MTE3O2VbODldPTExODtlWzkwXT0xMTk7ZVs5MV09MTIwO2VbOTJdPTEyMTtlWzkzXT0xMjI7ZVs5NF09MTIzO2VbOTVdPTEyNDtlWzk2XT0xMjU7ZVs5N109MTI2O2VbOThdPTE5NjtlWzk5XT0xOTc7ZVsxMDBdPTE5OTtlWzEwMV09MjAxO2VbMTAyXT0yMDk7ZVsxMDNdPTIxNDtlWzEwNF09MjIwO2VbMTA1XT0yMjU7ZVsxMDZdPTIyNDtlWzEwN109MjI2O2VbMTA4XT0yMjg7ZVsxMDldPTIyNztlWzExMF09MjI5O2VbMTExXT0yMzE7ZVsxMTJdPTIzMztlWzExM109MjMyO2VbMTE0XT0yMzQ7ZVsxMTVdPTIzNTtlWzExNl09MjM3O2VbMTE3XT0yMzY7ZVsxMThdPTIzODtlWzExOV09MjM5O2VbMTIwXT0yNDE7ZVsxMjFdPTI0MztlWzEyMl09MjQyO2VbMTIzXT0yNDQ7ZVsxMjRdPTI0NjtlWzEyNV09MjQ1O2VbMTI2XT0yNTA7ZVsxMjddPTI0OTtlWzEyOF09MjUxO2VbMTI5XT0yNTI7ZVsxMzBdPTgyMjQ7ZVsxMzFdPTE3NjtlWzEzMl09MTYyO2VbMTMzXT0xNjM7ZVsxMzRdPTE2NztlWzEzNV09ODIyNjtlWzEzNl09MTgyO2VbMTM3XT0yMjM7ZVsxMzhdPTE3NDtlWzEzOV09MTY5O2VbMTQwXT04NDgyO2VbMTQxXT0xODA7ZVsxNDJdPTE2ODtlWzE0M109ODgwMDtlWzE0NF09MTk4O2VbMTQ1XT0yMTY7ZVsxNDZdPTg3MzQ7ZVsxNDddPTE3NztlWzE0OF09ODgwNDtlWzE0OV09ODgwNTtlWzE1MF09MTY1O2VbMTUxXT0xODE7ZVsxNTJdPTg3MDY7ZVsxNTNdPTg3MjE7ZVsxNTRdPTg3MTk7ZVsxNTZdPTg3NDc7ZVsxNTddPTE3MDtlWzE1OF09MTg2O2VbMTU5XT04NDg2O2VbMTYwXT0yMzA7ZVsxNjFdPTI0ODtlWzE2Ml09MTkxO2VbMTYzXT0xNjE7ZVsxNjRdPTE3MjtlWzE2NV09ODczMDtlWzE2Nl09NDAyO2VbMTY3XT04Nzc2O2VbMTY4XT04NzEwO2VbMTY5XT0xNzE7ZVsxNzBdPTE4NztlWzE3MV09ODIzMDtlWzE3OV09ODIyMDtlWzE4MF09ODIyMTtlWzE4MV09ODIxNjtlWzE4Ml09ODIxNztlWzIwMF09MTkzO2VbMjAzXT0yMDU7ZVsyMDddPTIxMTtlWzIxMF09MjE4O2VbMjIzXT03MTE7ZVsyMjRdPTMyMTtlWzIyNV09MzIyO2VbMjI2XT0zNTI7ZVsyMjddPTM1MztlWzIyOF09MzgxO2VbMjI5XT0zODI7ZVsyMzNdPTIyMTtlWzIzNF09MjUzO2VbMjUyXT0yNjM7ZVsyNTNdPTI2ODtlWzI1NF09MjY5O2VbMjU4XT0yNTg7ZVsyNjBdPTI2MDtlWzI2MV09MjYxO2VbMjY1XT0yODA7ZVsyNjZdPTI4MTtlWzI2N109MjgyO2VbMjY4XT0yODM7ZVsyNjldPTMxMztlWzI3NV09MzIzO2VbMjc2XT0zMjQ7ZVsyNzhdPTMyODtlWzI4M109MzQ0O2VbMjg0XT0zNDU7ZVsyODVdPTM0NjtlWzI4Nl09MzQ3O2VbMjkyXT0zNjc7ZVsyOTVdPTM3NztlWzI5Nl09Mzc4O2VbMjk4XT0zODA7ZVszMDVdPTk2MztlWzMwNl09OTY0O2VbMzA3XT05NjY7ZVszMDhdPTgyMTU7ZVszMDldPTgyNTI7ZVszMTBdPTgzMTk7ZVszMTFdPTgzNTk7ZVszMTJdPTg1OTI7ZVszMTNdPTg1OTM7ZVszMzddPTk1NTI7ZVs0OTNdPTEwMzk7ZVs0OTRdPTEwNDA7ZVs1NzBdPTEwNDA7ZVs1NzFdPTEwNDE7ZVs1NzJdPTEwNDI7ZVs1NzNdPTEwNDM7ZVs1NzRdPTEwNDQ7ZVs1NzVdPTEwNDU7ZVs1NzZdPTEwNDY7ZVs1NzddPTEwNDc7ZVs1NzhdPTEwNDg7ZVs1NzldPTEwNDk7ZVs1ODBdPTEwNTA7ZVs1ODFdPTEwNTE7ZVs1ODJdPTEwNTI7ZVs1ODNdPTEwNTM7ZVs1ODRdPTEwNTQ7ZVs1ODVdPTEwNTU7ZVs1ODZdPTEwNTY7ZVs1ODddPTEwNTc7ZVs1ODhdPTEwNTg7ZVs1ODldPTEwNTk7ZVs1OTBdPTEwNjA7ZVs1OTFdPTEwNjE7ZVs1OTJdPTEwNjI7ZVs1OTNdPTEwNjM7ZVs1OTRdPTEwNjQ7ZVs1OTVdPTEwNjU7ZVs1OTZdPTEwNjY7ZVs1OTddPTEwNjc7ZVs1OThdPTEwNjg7ZVs1OTldPTEwNjk7ZVs2MDBdPTEwNzA7ZVs2MDFdPTEwNzE7ZVs2MDJdPTEwNzI7ZVs2MDNdPTEwNzM7ZVs2MDRdPTEwNzQ7ZVs2MDVdPTEwNzU7ZVs2MDZdPTEwNzY7ZVs2MDddPTEwNzc7ZVs2MDhdPTEwNzg7ZVs2MDldPTEwNzk7ZVs2MTBdPTEwODA7ZVs2MTFdPTEwODE7ZVs2MTJdPTEwODI7ZVs2MTNdPTEwODM7ZVs2MTRdPTEwODQ7ZVs2MTVdPTEwODU7ZVs2MTZdPTEwODY7ZVs2MTddPTEwODc7ZVs2MThdPTEwODg7ZVs2MTldPTEwODk7ZVs2MjBdPTEwOTA7ZVs2MjFdPTEwOTE7ZVs2MjJdPTEwOTI7ZVs2MjNdPTEwOTM7ZVs2MjRdPTEwOTQ7ZVs2MjVdPTEwOTU7ZVs2MjZdPTEwOTY7ZVs2MjddPTEwOTc7ZVs2MjhdPTEwOTg7ZVs2MjldPTEwOTk7ZVs2MzBdPTExMDA7ZVs2MzFdPTExMDE7ZVs2MzJdPTExMDI7ZVs2MzNdPTExMDM7ZVs2NzJdPTE0ODg7ZVs2NzNdPTE0ODk7ZVs2NzRdPTE0OTA7ZVs2NzVdPTE0OTE7ZVs2NzZdPTE0OTI7ZVs2NzddPTE0OTM7ZVs2NzhdPTE0OTQ7ZVs2NzldPTE0OTU7ZVs2ODBdPTE0OTY7ZVs2ODFdPTE0OTc7ZVs2ODJdPTE0OTg7ZVs2ODNdPTE0OTk7ZVs2ODRdPTE1MDA7ZVs2ODVdPTE1MDE7ZVs2ODZdPTE1MDI7ZVs2ODddPTE1MDM7ZVs2ODhdPTE1MDQ7ZVs2ODldPTE1MDU7ZVs2OTBdPTE1MDY7ZVs2OTFdPTE1MDc7ZVs2OTJdPTE1MDg7ZVs2OTNdPTE1MDk7ZVs2OTRdPTE1MTA7ZVs2OTVdPTE1MTE7ZVs2OTZdPTE1MTI7ZVs2OTddPTE1MTM7ZVs2OThdPTE1MTQ7ZVs3MDVdPTE1MjQ7ZVs3MDZdPTgzNjI7ZVs3MTBdPTY0Mjg4O2VbNzExXT02NDI5ODtlWzc1OV09MTYxNztlWzc2MV09MTc3NjtlWzc2M109MTc3ODtlWzc3NV09MTY1MjtlWzc3N109MTc2NDtlWzc3OF09MTc4MDtlWzc3OV09MTc4MTtlWzc4MF09MTc4MjtlWzc4Ml09NzcxO2VbNzgzXT02NDcyNjtlWzc4Nl09ODM2MztlWzc4OF09ODUzMjtlWzc5MF09NzY4O2VbNzkxXT03Njk7ZVs3OTJdPTc2ODtlWzc5NV09ODAzO2VbNzk3XT02NDMzNjtlWzc5OF09NjQzMzc7ZVs3OTldPTY0MzQyO2VbODAwXT02NDM0MztlWzgwMV09NjQzNDQ7ZVs4MDJdPTY0MzQ1O2VbODAzXT02NDM2MjtlWzgwNF09NjQzNjM7ZVs4MDVdPTY0MzY0O2VbMjQyNF09NzgyMTtlWzI0MjVdPTc4MjI7ZVsyNDI2XT03ODIzO2VbMjQyN109NzgyNDtlWzI0MjhdPTc4MjU7ZVsyNDI5XT03ODI2O2VbMjQzMF09NzgyNztlWzI0MzNdPTc2ODI7ZVsyNjc4XT04MDQ1O2VbMjY3OV09ODA0NjtlWzI4MzBdPTE1NTI7ZVsyODM4XT02ODY7ZVsyODQwXT03NTE7ZVsyODQyXT03NTM7ZVsyODQzXT03NTQ7ZVsyODQ0XT03NTU7ZVsyODQ2XT03NTc7ZVsyODU2XT03Njc7ZVsyODU3XT04NDg7ZVsyODU4XT04NDk7ZVsyODYyXT04NTM7ZVsyODYzXT04NTQ7ZVsyODY0XT04NTU7ZVsyODY1XT04NjE7ZVsyODY2XT04NjI7ZVsyOTA2XT03NDYwO2VbMjkwOF09NzQ2MjtlWzI5MDldPTc0NjM7ZVsyOTEwXT03NDY0O2VbMjkxMl09NzQ2NjtlWzI5MTNdPTc0Njc7ZVsyOTE0XT03NDY4O2VbMjkxNl09NzQ3MDtlWzI5MTddPTc0NzE7ZVsyOTE4XT03NDcyO2VbMjkyMF09NzQ3NDtlWzI5MjFdPTc0NzU7ZVsyOTIyXT03NDc2O2VbMjkyNF09NzQ3ODtlWzI5MjVdPTc0Nzk7ZVsyOTI2XT03NDgwO2VbMjkyOF09NzQ4MjtlWzI5MjldPTc0ODM7ZVsyOTMwXT03NDg0O2VbMjkzMl09NzQ4NjtlWzI5MzNdPTc0ODc7ZVsyOTM0XT03NDg4O2VbMjkzNl09NzQ5MDtlWzI5MzddPTc0OTE7ZVsyOTM4XT03NDkyO2VbMjk0MF09NzQ5NDtlWzI5NDFdPTc0OTU7ZVsyOTQyXT03NDk2O2VbMjk0NF09NzQ5ODtlWzI5NDZdPTc1MDA7ZVsyOTQ4XT03NTAyO2VbMjk1MF09NzUwNDtlWzI5NTFdPTc1MDU7ZVsyOTUyXT03NTA2O2VbMjk1NF09NzUwODtlWzI5NTVdPTc1MDk7ZVsyOTU2XT03NTEwO2VbMjk1OF09NzUxMjtlWzI5NTldPTc1MTM7ZVsyOTYwXT03NTE0O2VbMjk2Ml09NzUxNjtlWzI5NjNdPTc1MTc7ZVsyOTY0XT03NTE4O2VbMjk2Nl09NzUyMDtlWzI5NjddPTc1MjE7ZVsyOTY4XT03NTIyO2VbMjk3MF09NzUyNDtlWzI5NzFdPTc1MjU7ZVsyOTcyXT03NTI2O2VbMjk3NF09NzUyODtlWzI5NzVdPTc1Mjk7ZVsyOTc2XT03NTMwO2VbMjk3OF09MTUzNztlWzI5NzldPTE1Mzg7ZVsyOTgwXT0xNTM5O2VbMjk4Ml09MTU0OTtlWzI5ODNdPTE1NTE7ZVsyOTg0XT0xNTUyO2VbMjk4Nl09MTU1NDtlWzI5ODddPTE1NTU7ZVsyOTg4XT0xNTU2O2VbMjk5MF09MTYyMztlWzI5OTFdPTE2MjQ7ZVsyOTk1XT0xNzc1O2VbMjk5OV09MTc5MTtlWzMwMDJdPTY0MjkwO2VbMzAwM109NjQyOTE7ZVszMDA0XT02NDI5MjtlWzMwMDZdPTY0Mjk0O2VbMzAwN109NjQyOTU7ZVszMDA4XT02NDI5NjtlWzMwMTFdPTE5MDA7ZVszMDE0XT04MjIzO2VbMzAxNV09ODI0NDtlWzMwMTddPTc1MzI7ZVszMDE4XT03NTMzO2VbMzAxOV09NzUzNDtlWzMwNzVdPTc1OTA7ZVszMDc2XT03NTkxO2VbMzA3OV09NzU5NDtlWzMwODBdPTc1OTU7ZVszMDgzXT03NTk4O2VbMzA4NF09NzU5OTtlWzMwODddPTc2MDI7ZVszMDg4XT03NjAzO2VbMzA5MV09NzYwNjtlWzMwOTJdPTc2MDc7ZVszMDk1XT03NjEwO2VbMzA5Nl09NzYxMTtlWzMwOTldPTc2MTQ7ZVszMTAwXT03NjE1O2VbMzEwM109NzYxODtlWzMxMDRdPTc2MTk7ZVszMTA3XT04MzM3O2VbMzEwOF09ODMzODtlWzMxMTZdPTE4ODQ7ZVszMTE5XT0xODg1O2VbMzEyMF09MTg4NTtlWzMxMjNdPTE4ODY7ZVszMTI0XT0xODg2O2VbMzEyN109MTg4NztlWzMxMjhdPTE4ODc7ZVszMTMxXT0xODg4O2VbMzEzMl09MTg4ODtlWzMxMzVdPTE4ODk7ZVszMTM2XT0xODg5O2VbMzEzOV09MTg5MDtlWzMxNDBdPTE4OTA7ZVszMTQzXT0xODkxO2VbMzE0NF09MTg5MTtlWzMxNDddPTE4OTI7ZVszMTQ4XT0xODkyO2VbMzE1M109NTgwO2VbMzE1NF09NTgxO2VbMzE1N109NTg0O2VbMzE1OF09NTg1O2VbMzE2MV09NTg4O2VbMzE2Ml09NTg5O2VbMzE2NV09ODkxO2VbMzE2Nl09ODkyO2VbMzE2OV09MTI3NDtlWzMxNzBdPTEyNzU7ZVszMTczXT0xMjc4O2VbMzE3NF09MTI3OTtlWzMxODFdPTc2MjI7ZVszMTgyXT03NjIzO2VbMzI4Ml09MTE3OTk7ZVszMzE2XT01Nzg7ZVszMzc5XT00Mjc4NTtlWzMzOTNdPTExNTk7ZVszNDE2XT04Mzc3fSksV2E9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2VbMjI3XT0zMjI7ZVsyNjRdPTI2MTtlWzI5MV09MzQ2fSksS2E9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2VbMV09MzI7ZVs0XT02NTtlWzVdPTE5MjtlWzZdPTE5MztlWzldPTE5NjtlWzE3XT02NjtlWzE4XT02NztlWzIxXT0yNjg7ZVsyNF09Njg7ZVsyOF09Njk7ZVsyOV09MjAwO2VbMzBdPTIwMTtlWzMyXT0yODI7ZVszOF09NzA7ZVszOV09NzE7ZVs0NF09NzI7ZVs0N109NzM7ZVs0OF09MjA0O2VbNDldPTIwNTtlWzU4XT03NDtlWzYwXT03NTtlWzYyXT03NjtlWzY4XT03NztlWzY5XT03ODtlWzc1XT03OTtlWzc2XT0yMTA7ZVs4MF09MjE0O2VbODddPTgwO2VbODldPTgxO2VbOTBdPTgyO2VbOTJdPTM0NDtlWzk0XT04MztlWzk3XT0zNTI7ZVsxMDBdPTg0O2VbMTA0XT04NTtlWzEwOV09MjIwO2VbMTE1XT04NjtlWzExNl09ODc7ZVsxMjFdPTg4O2VbMTIyXT04OTtlWzEyNF09MjIxO2VbMTI3XT05MDtlWzEyOV09MzgxO2VbMjU4XT05NztlWzI1OV09MjI0O2VbMjYwXT0yMjU7ZVsyNjNdPTIyODtlWzI2OF09MjYxO2VbMjcxXT05ODtlWzI3Ml09OTk7ZVsyNzNdPTI2MztlWzI3NV09MjY5O2VbMjgyXT0xMDA7ZVsyODZdPTEwMTtlWzI4N109MjMyO2VbMjg4XT0yMzM7ZVsyOTBdPTI4MztlWzI5NV09MjgxO2VbMjk2XT0xMDI7ZVszMzZdPTEwMztlWzM0Nl09MTA0O2VbMzQ5XT0xMDU7ZVszNTBdPTIzNjtlWzM1MV09MjM3O2VbMzYxXT0xMDY7ZVszNjRdPTEwNztlWzM2N109MTA4O2VbMzcxXT0zMjI7ZVszNzNdPTEwOTtlWzM3NF09MTEwO2VbMzgxXT0xMTE7ZVszODJdPTI0MjtlWzM4M109MjQzO2VbMzg2XT0yNDY7ZVszOTNdPTExMjtlWzM5NV09MTEzO2VbMzk2XT0xMTQ7ZVszOThdPTM0NTtlWzQwMF09MTE1O2VbNDAxXT0zNDc7ZVs0MDNdPTM1MztlWzQxMF09MTE2O2VbNDM3XT0xMTc7ZVs0NDJdPTI1MjtlWzQ0OF09MTE4O2VbNDQ5XT0xMTk7ZVs0NTRdPTEyMDtlWzQ1NV09MTIxO2VbNDU3XT0yNTM7ZVs0NjBdPTEyMjtlWzQ2Ml09MzgyO2VbNDYzXT0zODA7ZVs4NTNdPTQ0O2VbODU1XT01ODtlWzg1Nl09NDY7ZVs4NzZdPTQ3O2VbODc4XT00NTtlWzg4Ml09NDU7ZVs4OTRdPTQwO2VbODk1XT00MTtlWzg5Nl09OTE7ZVs4OTddPTkzO2VbOTIzXT02NDtlWzk0MF09MTYzO2VbMTAwNF09NDg7ZVsxMDA1XT00OTtlWzEwMDZdPTUwO2VbMTAwN109NTE7ZVsxMDA4XT01MjtlWzEwMDldPTUzO2VbMTAxMF09NTQ7ZVsxMDExXT01NTtlWzEwMTJdPTU2O2VbMTAxM109NTc7ZVsxMDgxXT0zNztlWzEwODVdPTQzO2VbMTA4Nl09NDV9KTtmdW5jdGlvbiBnZXRTdGFuZGFyZEZvbnROYW1lKGUpe2NvbnN0IHQ9bm9ybWFsaXplRm9udE5hbWUoZSk7cmV0dXJuIE5hKClbdF19ZnVuY3Rpb24gaXNLbm93bkZvbnROYW1lKGUpe2NvbnN0IHQ9bm9ybWFsaXplRm9udE5hbWUoZSk7cmV0dXJuISEoTmEoKVt0XXx8TGEoKVt0XXx8VWEoKVt0XXx8X2EoKVt0XSl9Y2xhc3MgVG9Vbmljb2RlTWFwe2NvbnN0cnVjdG9yKGU9W10pe3RoaXMuX21hcD1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5fbWFwLmxlbmd0aH1mb3JFYWNoKGUpe2Zvcihjb25zdCB0IGluIHRoaXMuX21hcCllKHQsdGhpcy5fbWFwW3RdLmNvZGVQb2ludEF0KDApKX1oYXMoZSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX21hcFtlXX1nZXQoZSl7cmV0dXJuIHRoaXMuX21hcFtlXX1jaGFyQ29kZU9mKGUpe2NvbnN0IHQ9dGhpcy5fbWFwO2lmKHQubGVuZ3RoPD02NTUzNilyZXR1cm4gdC5pbmRleE9mKGUpO2Zvcihjb25zdCBuIGluIHQpaWYodFtuXT09PWUpcmV0dXJuIDB8bjtyZXR1cm4tMX1hbWVuZChlKXtmb3IoY29uc3QgdCBpbiBlKXRoaXMuX21hcFt0XT1lW3RdfX1jbGFzcyBJZGVudGl0eVRvVW5pY29kZU1hcHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuZmlyc3RDaGFyPWU7dGhpcy5sYXN0Q2hhcj10fWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sYXN0Q2hhcisxLXRoaXMuZmlyc3RDaGFyfWZvckVhY2goZSl7Zm9yKGxldCB0PXRoaXMuZmlyc3RDaGFyLG49dGhpcy5sYXN0Q2hhcjt0PD1uO3QrKyllKHQsdCl9aGFzKGUpe3JldHVybiB0aGlzLmZpcnN0Q2hhcjw9ZSYmZTw9dGhpcy5sYXN0Q2hhcn1nZXQoZSl7aWYodGhpcy5maXJzdENoYXI8PWUmJmU8PXRoaXMubGFzdENoYXIpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZSl9Y2hhckNvZGVPZihlKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihlKSYmZT49dGhpcy5maXJzdENoYXImJmU8PXRoaXMubGFzdENoYXI/ZTotMX1hbWVuZChlKXt1bnJlYWNoYWJsZSgiU2hvdWxkIG5vdCBjYWxsIGFtZW5kKCkiKX19Y2xhc3MgQ0ZGRm9udHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMucHJvcGVydGllcz10O2NvbnN0IG49bmV3IENGRlBhcnNlcihlLHQscWEpO3RoaXMuY2ZmPW4ucGFyc2UoKTt0aGlzLmNmZi5kdXBsaWNhdGVGaXJzdEdseXBoKCk7Y29uc3QgYT1uZXcgQ0ZGQ29tcGlsZXIodGhpcy5jZmYpO3RoaXMuc2VhY3M9dGhpcy5jZmYuc2VhY3M7dHJ5e3RoaXMuZGF0YT1hLmNvbXBpbGUoKX1jYXRjaHt3YXJuKCJGYWlsZWQgdG8gY29tcGlsZSBmb250ICIrdC5sb2FkZWROYW1lKTt0aGlzLmRhdGE9ZX10aGlzLl9jcmVhdGVCdWlsdEluRW5jb2RpbmcoKX1nZXQgbnVtR2x5cGhzKCl7cmV0dXJuIHRoaXMuY2ZmLmNoYXJTdHJpbmdzLmNvdW50fWdldENoYXJzZXQoKXtyZXR1cm4gdGhpcy5jZmYuY2hhcnNldC5jaGFyc2V0fWdldEdseXBoTWFwcGluZygpe2NvbnN0IGU9dGhpcy5jZmYsdD10aGlzLnByb3BlcnRpZXMse2NpZFRvR2lkTWFwOm4sY01hcDphfT10LHM9ZS5jaGFyc2V0LmNoYXJzZXQ7bGV0IHIsaTtpZih0LmNvbXBvc2l0ZSl7bGV0IHQsbztpZihuPy5sZW5ndGg+MCl7dD1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgZT0wLGE9bi5sZW5ndGg7ZTxhO2UrKyl7Y29uc3QgYT1uW2VdO3ZvaWQgMCE9PWEmJih0W2FdPWUpfX1yPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoZS5pc0NJREZvbnQpZm9yKGk9MDtpPHMubGVuZ3RoO2krKyl7Y29uc3QgZT1zW2ldO289YS5jaGFyQ29kZU9mKGUpO3ZvaWQgMCE9PXQ/LltvXSYmKG89dFtvXSk7cltvXT1pfWVsc2UgZm9yKGk9MDtpPGUuY2hhclN0cmluZ3MuY291bnQ7aSsrKXtvPWEuY2hhckNvZGVPZihpKTtyW29dPWl9cmV0dXJuIHJ9bGV0IG89ZS5lbmNvZGluZz9lLmVuY29kaW5nLmVuY29kaW5nOm51bGw7dC5pc0ludGVybmFsRm9udCYmKG89dC5kZWZhdWx0RW5jb2RpbmcpO3I9dHlwZTFGb250R2x5cGhNYXBwaW5nKHQsbyxzKTtyZXR1cm4gcn1oYXNHbHlwaElkKGUpe3JldHVybiB0aGlzLmNmZi5oYXNHbHlwaElkKGUpfV9jcmVhdGVCdWlsdEluRW5jb2RpbmcoKXtjb25zdHtjaGFyc2V0OmUsZW5jb2Rpbmc6dH09dGhpcy5jZmY7aWYoIWV8fCF0KXJldHVybjtjb25zdCBuPWUuY2hhcnNldCxhPXQuZW5jb2Rpbmcscz1bXTtmb3IoY29uc3QgZSBpbiBhKXtjb25zdCB0PWFbZV07aWYodD49MCl7Y29uc3QgYT1uW3RdO2EmJihzW2VdPWEpfX1zLmxlbmd0aD4wJiYodGhpcy5wcm9wZXJ0aWVzLmJ1aWx0SW5FbmNvZGluZz1zKX19ZnVuY3Rpb24gZ2V0RmxvYXQyMTQoZSx0KXtyZXR1cm4gcmVhZEludDE2KGUsdCkvMTYzODR9ZnVuY3Rpb24gZ2V0U3Vicm91dGluZUJpYXMoZSl7Y29uc3QgdD1lLmxlbmd0aDtsZXQgbj0zMjc2ODt0PDEyNDA/bj0xMDc6dDwzMzkwMCYmKG49MTEzMSk7cmV0dXJuIG59ZnVuY3Rpb24gcGFyc2VDbWFwKGUsdCxuKXtjb25zdCBhPTE9PT1yZWFkVWludDE2KGUsdCsyKT9yZWFkVWludDMyKGUsdCs4KTpyZWFkVWludDMyKGUsdCsxNikscz1yZWFkVWludDE2KGUsdCthKTtsZXQgcixpLG87aWYoND09PXMpe3JlYWRVaW50MTYoZSx0K2ErMik7Y29uc3Qgbj1yZWFkVWludDE2KGUsdCthKzYpPj4xO2k9dCthKzE0O3I9W107Zm9yKG89MDtvPG47bysrLGkrPTIpcltvXT17ZW5kOnJlYWRVaW50MTYoZSxpKX07aSs9Mjtmb3Iobz0wO288bjtvKyssaSs9MilyW29dLnN0YXJ0PXJlYWRVaW50MTYoZSxpKTtmb3Iobz0wO288bjtvKyssaSs9MilyW29dLmlkRGVsdGE9cmVhZFVpbnQxNihlLGkpO2ZvcihvPTA7bzxuO28rKyxpKz0yKXtsZXQgdD1yZWFkVWludDE2KGUsaSk7aWYoMCE9PXQpe3Jbb10uaWRzPVtdO2ZvcihsZXQgbj0wLGE9cltvXS5lbmQtcltvXS5zdGFydCsxO248YTtuKyspe3Jbb10uaWRzW25dPXJlYWRVaW50MTYoZSxpK3QpO3QrPTJ9fX1yZXR1cm4gcn1pZigxMj09PXMpe2NvbnN0IG49cmVhZFVpbnQzMihlLHQrYSsxMik7aT10K2ErMTY7cj1bXTtmb3Iobz0wO288bjtvKyspe3Q9cmVhZFVpbnQzMihlLGkpO3IucHVzaCh7c3RhcnQ6dCxlbmQ6cmVhZFVpbnQzMihlLGkrNCksaWREZWx0YTpyZWFkVWludDMyKGUsaSs4KS10fSk7aSs9MTJ9cmV0dXJuIHJ9dGhyb3cgbmV3IEZvcm1hdEVycm9yKGB1bnN1cHBvcnRlZCBjbWFwOiAke3N9YCl9ZnVuY3Rpb24gcGFyc2VDZmYoZSx0LG4sYSl7Y29uc3Qgcz1uZXcgQ0ZGUGFyc2VyKG5ldyBTdHJlYW0oZSx0LG4tdCkse30sYSkucGFyc2UoKTtyZXR1cm57Z2x5cGhzOnMuY2hhclN0cmluZ3Mub2JqZWN0cyxzdWJyczpzLnRvcERpY3QucHJpdmF0ZURpY3Q/LnN1YnJzSW5kZXg/Lm9iamVjdHMsZ3N1YnJzOnMuZ2xvYmFsU3VickluZGV4Py5vYmplY3RzLGlzQ0ZGQ0lERm9udDpzLmlzQ0lERm9udCxmZFNlbGVjdDpzLmZkU2VsZWN0LGZkQXJyYXk6cy5mZEFycmF5fX1mdW5jdGlvbiBsb29rdXBDbWFwKGUsdCl7Y29uc3Qgbj10LmNvZGVQb2ludEF0KDApO2xldCBhPTAscz0wLHI9ZS5sZW5ndGgtMTtmb3IoO3M8cjspe2NvbnN0IHQ9cytyKzE+PjE7bjxlW3RdLnN0YXJ0P3I9dC0xOnM9dH1lW3NdLnN0YXJ0PD1uJiZuPD1lW3NdLmVuZCYmKGE9ZVtzXS5pZERlbHRhKyhlW3NdLmlkcz9lW3NdLmlkc1tuLWVbc10uc3RhcnRdOm4pJjY1NTM1KTtyZXR1cm57Y2hhckNvZGU6bixnbHlwaElkOmF9fWZ1bmN0aW9uIGNvbXBpbGVHbHlmKGUsdCxuKXtmdW5jdGlvbiBtb3ZlVG8oZSxuKXtpJiZ0LmFkZChHdCxpKTtpPVtlLG5dO3QuYWRkKEt0LFtlLG5dKX1mdW5jdGlvbiBsaW5lVG8oZSxuKXt0LmFkZChHdCxbZSxuXSl9ZnVuY3Rpb24gcXVhZHJhdGljQ3VydmVUbyhlLG4sYSxzKXt0LmFkZCgkdCxbZSxuLGEsc10pfWxldCBhPTA7Y29uc3Qgcz1yZWFkSW50MTYoZSxhKTtsZXQgcixpPW51bGwsbz0wLGw9MDthKz0xMDtpZihzPDApZG97cj1yZWFkVWludDE2KGUsYSk7Y29uc3Qgcz1yZWFkVWludDE2KGUsYSsyKTthKz00O2xldCBpLGY7aWYoMSZyKXtpZigyJnIpe2k9cmVhZEludDE2KGUsYSk7Zj1yZWFkSW50MTYoZSxhKzIpfWVsc2V7aT1yZWFkVWludDE2KGUsYSk7Zj1yZWFkVWludDE2KGUsYSsyKX1hKz00fWVsc2UgaWYoMiZyKXtpPXJlYWRJbnQ4KGUsYSsrKTtmPXJlYWRJbnQ4KGUsYSsrKX1lbHNle2k9ZVthKytdO2Y9ZVthKytdfWlmKDImcil7bz1pO2w9Zn1lbHNle289MDtsPTB9bGV0IGM9MSxoPTEsdT0wLG09MDtpZig4JnIpe2M9aD1nZXRGbG9hdDIxNChlLGEpO2ErPTJ9ZWxzZSBpZig2NCZyKXtjPWdldEZsb2F0MjE0KGUsYSk7aD1nZXRGbG9hdDIxNChlLGErMik7YSs9NH1lbHNlIGlmKDEyOCZyKXtjPWdldEZsb2F0MjE0KGUsYSk7dT1nZXRGbG9hdDIxNChlLGErMik7bT1nZXRGbG9hdDIxNChlLGErNCk7aD1nZXRGbG9hdDIxNChlLGErNik7YSs9OH1jb25zdCBwPW4uZ2x5cGhzW3NdO2lmKHApe3Quc2F2ZSgpO3QudHJhbnNmb3JtKFtjLHUsbSxoLG8sbF0pO2NvbXBpbGVHbHlmKHAsdCxuKTt0LnJlc3RvcmUoKX19d2hpbGUoMzImcik7ZWxzZXtjb25zdCB0PVtdO2xldCBuLGk7Zm9yKG49MDtuPHM7bisrKXt0LnB1c2gocmVhZFVpbnQxNihlLGEpKTthKz0yfWErPTIrcmVhZFVpbnQxNihlLGEpO2NvbnN0IGY9dC5hdCgtMSkrMSxjPVtdO2Zvcig7Yy5sZW5ndGg8Zjspe3I9ZVthKytdO2xldCB0PTE7OCZyJiYodCs9ZVthKytdKTtmb3IoO3QtLSA+MDspYy5wdXNoKHtmbGFnczpyfSl9Zm9yKG49MDtuPGY7bisrKXtzd2l0Y2goMTgmY1tuXS5mbGFncyl7Y2FzZSAwOm8rPXJlYWRJbnQxNihlLGEpO2ErPTI7YnJlYWs7Y2FzZSAyOm8tPWVbYSsrXTticmVhaztjYXNlIDE4Om8rPWVbYSsrXX1jW25dLng9b31mb3Iobj0wO248ZjtuKyspe3N3aXRjaCgzNiZjW25dLmZsYWdzKXtjYXNlIDA6bCs9cmVhZEludDE2KGUsYSk7YSs9MjticmVhaztjYXNlIDQ6bC09ZVthKytdO2JyZWFrO2Nhc2UgMzY6bCs9ZVthKytdfWNbbl0ueT1sfWxldCBoPTA7Zm9yKGE9MDthPHM7YSsrKXtjb25zdCBlPXRbYV0scz1jLnNsaWNlKGgsZSsxKTtpZigxJnNbMF0uZmxhZ3Mpcy5wdXNoKHNbMF0pO2Vsc2UgaWYoMSZzLmF0KC0xKS5mbGFncylzLnVuc2hpZnQocy5hdCgtMSkpO2Vsc2V7Y29uc3QgZT17ZmxhZ3M6MSx4OihzWzBdLngrcy5hdCgtMSkueCkvMix5OihzWzBdLnkrcy5hdCgtMSkueSkvMn07cy51bnNoaWZ0KGUpO3MucHVzaChlKX1tb3ZlVG8oc1swXS54LHNbMF0ueSk7Zm9yKG49MSxpPXMubGVuZ3RoO248aTtuKyspaWYoMSZzW25dLmZsYWdzKWxpbmVUbyhzW25dLngsc1tuXS55KTtlbHNlIGlmKDEmc1tuKzFdLmZsYWdzKXtxdWFkcmF0aWNDdXJ2ZVRvKHNbbl0ueCxzW25dLnksc1tuKzFdLngsc1tuKzFdLnkpO24rK31lbHNlIHF1YWRyYXRpY0N1cnZlVG8oc1tuXS54LHNbbl0ueSwoc1tuXS54K3NbbisxXS54KS8yLChzW25dLnkrc1tuKzFdLnkpLzIpO2g9ZSsxfX19ZnVuY3Rpb24gY29tcGlsZUNoYXJTdHJpbmcoZSx0LG4sYSl7ZnVuY3Rpb24gbW92ZVRvKGUsbil7bCYmdC5hZGQoR3QsbCk7bD1bZSxuXTt0LmFkZChLdCxbZSxuXSl9ZnVuY3Rpb24gbGluZVRvKGUsbil7dC5hZGQoR3QsW2Usbl0pfWZ1bmN0aW9uIGJlemllckN1cnZlVG8oZSxuLGEscyxyLGkpe3QuYWRkKFZ0LFtlLG4sYSxzLHIsaV0pfWNvbnN0IHM9W107bGV0IHI9MCxpPTAsbz0wLGw9bnVsbDshZnVuY3Rpb24gcGFyc2UoZSl7bGV0IGw9MDtmb3IoO2w8ZS5sZW5ndGg7KXtsZXQgZixjLGgsdSxtLHAsZCxnLGIsdz0hMSxqPWVbbCsrXTtzd2l0Y2goail7Y2FzZSAxOmNhc2UgMzpjYXNlIDE4OmNhc2UgMjM6bys9cy5sZW5ndGg+PjE7dz0hMDticmVhaztjYXNlIDQ6aSs9cy5wb3AoKTttb3ZlVG8ocixpKTt3PSEwO2JyZWFrO2Nhc2UgNTpmb3IoO3MubGVuZ3RoPjA7KXtyKz1zLnNoaWZ0KCk7aSs9cy5zaGlmdCgpO2xpbmVUbyhyLGkpfWJyZWFrO2Nhc2UgNjpmb3IoO3MubGVuZ3RoPjA7KXtyKz1zLnNoaWZ0KCk7bGluZVRvKHIsaSk7aWYoMD09PXMubGVuZ3RoKWJyZWFrO2krPXMuc2hpZnQoKTtsaW5lVG8ocixpKX1icmVhaztjYXNlIDc6Zm9yKDtzLmxlbmd0aD4wOyl7aSs9cy5zaGlmdCgpO2xpbmVUbyhyLGkpO2lmKDA9PT1zLmxlbmd0aClicmVhaztyKz1zLnNoaWZ0KCk7bGluZVRvKHIsaSl9YnJlYWs7Y2FzZSA4OmZvcig7cy5sZW5ndGg+MDspe2Y9citzLnNoaWZ0KCk7aD1pK3Muc2hpZnQoKTtjPWYrcy5zaGlmdCgpO3U9aCtzLnNoaWZ0KCk7cj1jK3Muc2hpZnQoKTtpPXUrcy5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxyLGkpfWJyZWFrO2Nhc2UgMTA6Zz1zLnBvcCgpO2I9bnVsbDtpZihuLmlzQ0ZGQ0lERm9udCl7Y29uc3QgZT1uLmZkU2VsZWN0LmdldEZESW5kZXgoYSk7aWYoZT49MCYmZTxuLmZkQXJyYXkubGVuZ3RoKXtjb25zdCB0PW4uZmRBcnJheVtlXTtsZXQgYTt0LnByaXZhdGVEaWN0Py5zdWJyc0luZGV4JiYoYT10LnByaXZhdGVEaWN0LnN1YnJzSW5kZXgub2JqZWN0cyk7aWYoYSl7Zys9Z2V0U3Vicm91dGluZUJpYXMoYSk7Yj1hW2ddfX1lbHNlIHdhcm4oIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpfWVsc2UgYj1uLnN1YnJzW2crbi5zdWJyc0JpYXNdO2ImJnBhcnNlKGIpO2JyZWFrO2Nhc2UgMTE6cmV0dXJuO2Nhc2UgMTI6aj1lW2wrK107c3dpdGNoKGope2Nhc2UgMzQ6Zj1yK3Muc2hpZnQoKTtjPWYrcy5zaGlmdCgpO209aStzLnNoaWZ0KCk7cj1jK3Muc2hpZnQoKTtiZXppZXJDdXJ2ZVRvKGYsaSxjLG0scixtKTtmPXIrcy5zaGlmdCgpO2M9ZitzLnNoaWZ0KCk7cj1jK3Muc2hpZnQoKTtiZXppZXJDdXJ2ZVRvKGYsbSxjLGkscixpKTticmVhaztjYXNlIDM1OmY9citzLnNoaWZ0KCk7aD1pK3Muc2hpZnQoKTtjPWYrcy5zaGlmdCgpO3U9aCtzLnNoaWZ0KCk7cj1jK3Muc2hpZnQoKTtpPXUrcy5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxyLGkpO2Y9citzLnNoaWZ0KCk7aD1pK3Muc2hpZnQoKTtjPWYrcy5zaGlmdCgpO3U9aCtzLnNoaWZ0KCk7cj1jK3Muc2hpZnQoKTtpPXUrcy5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxyLGkpO3MucG9wKCk7YnJlYWs7Y2FzZSAzNjpmPXIrcy5zaGlmdCgpO209aStzLnNoaWZ0KCk7Yz1mK3Muc2hpZnQoKTtwPW0rcy5zaGlmdCgpO3I9YytzLnNoaWZ0KCk7YmV6aWVyQ3VydmVUbyhmLG0sYyxwLHIscCk7Zj1yK3Muc2hpZnQoKTtjPWYrcy5zaGlmdCgpO2Q9cCtzLnNoaWZ0KCk7cj1jK3Muc2hpZnQoKTtiZXppZXJDdXJ2ZVRvKGYscCxjLGQscixpKTticmVhaztjYXNlIDM3OmNvbnN0IGU9cix0PWk7Zj1yK3Muc2hpZnQoKTtoPWkrcy5zaGlmdCgpO2M9ZitzLnNoaWZ0KCk7dT1oK3Muc2hpZnQoKTtyPWMrcy5zaGlmdCgpO2k9dStzLnNoaWZ0KCk7YmV6aWVyQ3VydmVUbyhmLGgsYyx1LHIsaSk7Zj1yK3Muc2hpZnQoKTtoPWkrcy5zaGlmdCgpO2M9ZitzLnNoaWZ0KCk7dT1oK3Muc2hpZnQoKTtyPWM7aT11O01hdGguYWJzKHItZSk+TWF0aC5hYnMoaS10KT9yKz1zLnNoaWZ0KCk6aSs9cy5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxyLGkpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEZvcm1hdEVycm9yKGB1bmtub3duIG9wZXJhdG9yOiAxMiAke2p9YCl9YnJlYWs7Y2FzZSAxNDppZihzLmxlbmd0aD49NCl7Y29uc3QgZT1zLnBvcCgpLGE9cy5wb3AoKTtpPXMucG9wKCk7cj1zLnBvcCgpO3Quc2F2ZSgpO3QudHJhbnNsYXRlKHIsaSk7bGV0IG89bG9va3VwQ21hcChuLmNtYXAsU3RyaW5nLmZyb21DaGFyQ29kZShuLmdseXBoTmFtZU1hcFt1YVtlXV0pKTtjb21waWxlQ2hhclN0cmluZyhuLmdseXBoc1tvLmdseXBoSWRdLHQsbixvLmdseXBoSWQpO3QucmVzdG9yZSgpO289bG9va3VwQ21hcChuLmNtYXAsU3RyaW5nLmZyb21DaGFyQ29kZShuLmdseXBoTmFtZU1hcFt1YVthXV0pKTtjb21waWxlQ2hhclN0cmluZyhuLmdseXBoc1tvLmdseXBoSWRdLHQsbixvLmdseXBoSWQpfXJldHVybjtjYXNlIDE5OmNhc2UgMjA6bys9cy5sZW5ndGg+PjE7bCs9bys3Pj4zO3c9ITA7YnJlYWs7Y2FzZSAyMTppKz1zLnBvcCgpO3IrPXMucG9wKCk7bW92ZVRvKHIsaSk7dz0hMDticmVhaztjYXNlIDIyOnIrPXMucG9wKCk7bW92ZVRvKHIsaSk7dz0hMDticmVhaztjYXNlIDI0OmZvcig7cy5sZW5ndGg+Mjspe2Y9citzLnNoaWZ0KCk7aD1pK3Muc2hpZnQoKTtjPWYrcy5zaGlmdCgpO3U9aCtzLnNoaWZ0KCk7cj1jK3Muc2hpZnQoKTtpPXUrcy5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxyLGkpfXIrPXMuc2hpZnQoKTtpKz1zLnNoaWZ0KCk7bGluZVRvKHIsaSk7YnJlYWs7Y2FzZSAyNTpmb3IoO3MubGVuZ3RoPjY7KXtyKz1zLnNoaWZ0KCk7aSs9cy5zaGlmdCgpO2xpbmVUbyhyLGkpfWY9citzLnNoaWZ0KCk7aD1pK3Muc2hpZnQoKTtjPWYrcy5zaGlmdCgpO3U9aCtzLnNoaWZ0KCk7cj1jK3Muc2hpZnQoKTtpPXUrcy5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxyLGkpO2JyZWFrO2Nhc2UgMjY6cy5sZW5ndGglMiYmKHIrPXMuc2hpZnQoKSk7Zm9yKDtzLmxlbmd0aD4wOyl7Zj1yO2g9aStzLnNoaWZ0KCk7Yz1mK3Muc2hpZnQoKTt1PWgrcy5zaGlmdCgpO3I9YztpPXUrcy5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxyLGkpfWJyZWFrO2Nhc2UgMjc6cy5sZW5ndGglMiYmKGkrPXMuc2hpZnQoKSk7Zm9yKDtzLmxlbmd0aD4wOyl7Zj1yK3Muc2hpZnQoKTtoPWk7Yz1mK3Muc2hpZnQoKTt1PWgrcy5zaGlmdCgpO3I9YytzLnNoaWZ0KCk7aT11O2JlemllckN1cnZlVG8oZixoLGMsdSxyLGkpfWJyZWFrO2Nhc2UgMjg6cy5wdXNoKHJlYWRJbnQxNihlLGwpKTtsKz0yO2JyZWFrO2Nhc2UgMjk6Zz1zLnBvcCgpK24uZ3N1YnJzQmlhcztiPW4uZ3N1YnJzW2ddO2ImJnBhcnNlKGIpO2JyZWFrO2Nhc2UgMzA6Zm9yKDtzLmxlbmd0aD4wOyl7Zj1yO2g9aStzLnNoaWZ0KCk7Yz1mK3Muc2hpZnQoKTt1PWgrcy5zaGlmdCgpO3I9YytzLnNoaWZ0KCk7aT11KygxPT09cy5sZW5ndGg/cy5zaGlmdCgpOjApO2JlemllckN1cnZlVG8oZixoLGMsdSxyLGkpO2lmKDA9PT1zLmxlbmd0aClicmVhaztmPXIrcy5zaGlmdCgpO2g9aTtjPWYrcy5zaGlmdCgpO3U9aCtzLnNoaWZ0KCk7aT11K3Muc2hpZnQoKTtyPWMrKDE9PT1zLmxlbmd0aD9zLnNoaWZ0KCk6MCk7YmV6aWVyQ3VydmVUbyhmLGgsYyx1LHIsaSl9YnJlYWs7Y2FzZSAzMTpmb3IoO3MubGVuZ3RoPjA7KXtmPXIrcy5zaGlmdCgpO2g9aTtjPWYrcy5zaGlmdCgpO3U9aCtzLnNoaWZ0KCk7aT11K3Muc2hpZnQoKTtyPWMrKDE9PT1zLmxlbmd0aD9zLnNoaWZ0KCk6MCk7YmV6aWVyQ3VydmVUbyhmLGgsYyx1LHIsaSk7aWYoMD09PXMubGVuZ3RoKWJyZWFrO2Y9cjtoPWkrcy5zaGlmdCgpO2M9ZitzLnNoaWZ0KCk7dT1oK3Muc2hpZnQoKTtyPWMrcy5zaGlmdCgpO2k9dSsoMT09PXMubGVuZ3RoP3Muc2hpZnQoKTowKTtiZXppZXJDdXJ2ZVRvKGYsaCxjLHUscixpKX1icmVhaztkZWZhdWx0OmlmKGo8MzIpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGB1bmtub3duIG9wZXJhdG9yOiAke2p9YCk7aWYoajwyNDcpcy5wdXNoKGotMTM5KTtlbHNlIGlmKGo8MjUxKXMucHVzaCgyNTYqKGotMjQ3KStlW2wrK10rMTA4KTtlbHNlIGlmKGo8MjU1KXMucHVzaCgyNTYqLShqLTI1MSktZVtsKytdLTEwOCk7ZWxzZXtzLnB1c2goKGVbbF08PDI0fGVbbCsxXTw8MTZ8ZVtsKzJdPDw4fGVbbCszXSkvNjU1MzYpO2wrPTR9fXcmJihzLmxlbmd0aD0wKX19KGUpfWNsYXNzIENvbW1hbmRze2NtZHM9W107dHJhbnNmb3JtU3RhY2s9W107Y3VycmVudFRyYW5zZm9ybT1bMSwwLDAsMSwwLDBdO2FkZChlLHQpe2lmKHQpe2NvbnN0e2N1cnJlbnRUcmFuc2Zvcm06bn09dGhpcztmb3IobGV0IGU9MCxhPXQubGVuZ3RoO2U8YTtlKz0yKVV0aWwuYXBwbHlUcmFuc2Zvcm0odCxuLGUpO3RoaXMuY21kcy5wdXNoKGUsLi4udCl9ZWxzZSB0aGlzLmNtZHMucHVzaChlKX10cmFuc2Zvcm0oZSl7dGhpcy5jdXJyZW50VHJhbnNmb3JtPVV0aWwudHJhbnNmb3JtKHRoaXMuY3VycmVudFRyYW5zZm9ybSxlKX10cmFuc2xhdGUoZSx0KXt0aGlzLnRyYW5zZm9ybShbMSwwLDAsMSxlLHRdKX1zYXZlKCl7dGhpcy50cmFuc2Zvcm1TdGFjay5wdXNoKHRoaXMuY3VycmVudFRyYW5zZm9ybS5zbGljZSgpKX1yZXN0b3JlKCl7dGhpcy5jdXJyZW50VHJhbnNmb3JtPXRoaXMudHJhbnNmb3JtU3RhY2sucG9wKCl8fFsxLDAsMCwxLDAsMF19Z2V0UGF0aCgpe3JldHVybiBuZXcoRmVhdHVyZVRlc3QuaXNGbG9hdDE2QXJyYXlTdXBwb3J0ZWQ/RmxvYXQxNkFycmF5OkZsb2F0MzJBcnJheSkodGhpcy5jbWRzKX19Y2xhc3MgQ29tcGlsZWRGb250e2NvbnN0cnVjdG9yKGUpe3RoaXMuZm9udE1hdHJpeD1lO3RoaXMuY29tcGlsZWRHbHlwaHM9T2JqZWN0LmNyZWF0ZShudWxsKTt0aGlzLmNvbXBpbGVkQ2hhckNvZGVUb0dseXBoSWQ9T2JqZWN0LmNyZWF0ZShudWxsKX1nZXRQYXRoSnMoZSl7Y29uc3R7Y2hhckNvZGU6dCxnbHlwaElkOm59PWxvb2t1cENtYXAodGhpcy5jbWFwLGUpO2xldCBhLHM9dGhpcy5jb21waWxlZEdseXBoc1tuXTtpZih2b2lkIDA9PT1zKXt0cnl7cz10aGlzLmNvbXBpbGVHbHlwaCh0aGlzLmdseXBoc1tuXSxuKX1jYXRjaChlKXtzPSIiO2E9ZX10aGlzLmNvbXBpbGVkR2x5cGhzW25dPXN9dGhpcy5jb21waWxlZENoYXJDb2RlVG9HbHlwaElkW3RdPz89bjtpZihhKXRocm93IGE7cmV0dXJuIHN9Y29tcGlsZUdseXBoKGUsbil7aWYoIWU/Lmxlbmd0aHx8MTQ9PT1lWzBdKXJldHVybiIiO2xldCBhPXRoaXMuZm9udE1hdHJpeDtpZih0aGlzLmlzQ0ZGQ0lERm9udCl7Y29uc3QgZT10aGlzLmZkU2VsZWN0LmdldEZESW5kZXgobik7aWYoZT49MCYmZTx0aGlzLmZkQXJyYXkubGVuZ3RoKXthPXRoaXMuZmRBcnJheVtlXS5nZXRCeU5hbWUoIkZvbnRNYXRyaXgiKXx8dH1lbHNlIHdhcm4oIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpfWFzc2VydChpc051bWJlckFycmF5KGEsNiksIkV4cGVjdGVkIGEgdmFsaWQgZm9udE1hdHJpeC4iKTtjb25zdCBzPW5ldyBDb21tYW5kcztzLnRyYW5zZm9ybShhLnNsaWNlKCkpO3RoaXMuY29tcGlsZUdseXBoSW1wbChlLHMsbik7cy5hZGQoWXQpO3JldHVybiBzLmdldFBhdGgoKX1jb21waWxlR2x5cGhJbXBsKCl7dW5yZWFjaGFibGUoIkNoaWxkcmVuIGNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB0aGlzLiIpfWhhc0J1aWx0UGF0aChlKXtjb25zdHtjaGFyQ29kZTp0LGdseXBoSWQ6bn09bG9va3VwQ21hcCh0aGlzLmNtYXAsZSk7cmV0dXJuIHZvaWQgMCE9PXRoaXMuY29tcGlsZWRHbHlwaHNbbl0mJnZvaWQgMCE9PXRoaXMuY29tcGlsZWRDaGFyQ29kZVRvR2x5cGhJZFt0XX19Y2xhc3MgVHJ1ZVR5cGVDb21waWxlZCBleHRlbmRzIENvbXBpbGVkRm9udHtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIobnx8WzQ4OGUtNiwwLDAsNDg4ZS02LDAsMF0pO3RoaXMuZ2x5cGhzPWU7dGhpcy5jbWFwPXR9Y29tcGlsZUdseXBoSW1wbChlLHQpe2NvbXBpbGVHbHlmKGUsdCx0aGlzKX19Y2xhc3MgVHlwZTJDb21waWxlZCBleHRlbmRzIENvbXBpbGVkRm9udHtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIobnx8Wy4wMDEsMCwwLC4wMDEsMCwwXSk7dGhpcy5nbHlwaHM9ZS5nbHlwaHM7dGhpcy5nc3VicnM9ZS5nc3VicnN8fFtdO3RoaXMuc3VicnM9ZS5zdWJyc3x8W107dGhpcy5jbWFwPXQ7dGhpcy5nbHlwaE5hbWVNYXA9Z2EoKTt0aGlzLmdzdWJyc0JpYXM9Z2V0U3Vicm91dGluZUJpYXModGhpcy5nc3VicnMpO3RoaXMuc3VicnNCaWFzPWdldFN1YnJvdXRpbmVCaWFzKHRoaXMuc3VicnMpO3RoaXMuaXNDRkZDSURGb250PWUuaXNDRkZDSURGb250O3RoaXMuZmRTZWxlY3Q9ZS5mZFNlbGVjdDt0aGlzLmZkQXJyYXk9ZS5mZEFycmF5fWNvbXBpbGVHbHlwaEltcGwoZSx0LG4pe2NvbXBpbGVDaGFyU3RyaW5nKGUsdCx0aGlzLG4pfX1jbGFzcyBGb250UmVuZGVyZXJGYWN0b3J5e3N0YXRpYyBjcmVhdGUoZSx0KXtjb25zdCBuPW5ldyBVaW50OEFycmF5KGUuZGF0YSk7bGV0IGEscyxyLGksbyxsO2NvbnN0IGY9cmVhZFVpbnQxNihuLDQpO2ZvcihsZXQgZT0wLGM9MTI7ZTxmO2UrKyxjKz0xNil7Y29uc3QgZT1ieXRlc1RvU3RyaW5nKG4uc3ViYXJyYXkoYyxjKzQpKSxmPXJlYWRVaW50MzIobixjKzgpLGg9cmVhZFVpbnQzMihuLGMrMTIpO3N3aXRjaChlKXtjYXNlImNtYXAiOmE9cGFyc2VDbWFwKG4sZik7YnJlYWs7Y2FzZSJnbHlmIjpzPW4uc3ViYXJyYXkoZixmK2gpO2JyZWFrO2Nhc2UibG9jYSI6cj1uLnN1YmFycmF5KGYsZitoKTticmVhaztjYXNlImhlYWQiOmw9cmVhZFVpbnQxNihuLGYrMTgpO289cmVhZFVpbnQxNihuLGYrNTApO2JyZWFrO2Nhc2UiQ0ZGICI6aT1wYXJzZUNmZihuLGYsZitoLHQpfX1pZihzKXtjb25zdCB0PWw/WzEvbCwwLDAsMS9sLDAsMF06ZS5mb250TWF0cml4O3JldHVybiBuZXcgVHJ1ZVR5cGVDb21waWxlZChmdW5jdGlvbiBwYXJzZUdseWZUYWJsZShlLHQsbil7bGV0IGEscztpZihuKXthPTQ7cz1yZWFkVWludDMyfWVsc2V7YT0yO3M9KGUsdCk9PjIqcmVhZFVpbnQxNihlLHQpfWNvbnN0IHI9W107bGV0IGk9cyh0LDApO2ZvcihsZXQgbj1hO248dC5sZW5ndGg7bis9YSl7Y29uc3QgYT1zKHQsbik7ci5wdXNoKGUuc3ViYXJyYXkoaSxhKSk7aT1hfXJldHVybiByfShzLHIsbyksYSx0KX1yZXR1cm4gbmV3IFR5cGUyQ29tcGlsZWQoaSxhLGUuZm9udE1hdHJpeCl9fWNvbnN0IEdhPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlLkNvdXJpZXI9NjAwO2VbIkNvdXJpZXItQm9sZCJdPTYwMDtlWyJDb3VyaWVyLUJvbGRPYmxpcXVlIl09NjAwO2VbIkNvdXJpZXItT2JsaXF1ZSJdPTYwMDtlLkhlbHZldGljYT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5leGNsYW09Mjc4O2UucXVvdGVkYmw9MzU1O2UubnVtYmVyc2lnbj01NTY7ZS5kb2xsYXI9NTU2O2UucGVyY2VudD04ODk7ZS5hbXBlcnNhbmQ9NjY3O2UucXVvdGVyaWdodD0yMjI7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz0zODk7ZS5wbHVzPTU4NDtlLmNvbW1hPTI3ODtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9Mjc4O2Uuc2xhc2g9Mjc4O2UuemVybz01NTY7ZS5vbmU9NTU2O2UudHdvPTU1NjtlLnRocmVlPTU1NjtlLmZvdXI9NTU2O2UuZml2ZT01NTY7ZS5zaXg9NTU2O2Uuc2V2ZW49NTU2O2UuZWlnaHQ9NTU2O2UubmluZT01NTY7ZS5jb2xvbj0yNzg7ZS5zZW1pY29sb249Mjc4O2UubGVzcz01ODQ7ZS5lcXVhbD01ODQ7ZS5ncmVhdGVyPTU4NDtlLnF1ZXN0aW9uPTU1NjtlLmF0PTEwMTU7ZS5BPTY2NztlLkI9NjY3O2UuQz03MjI7ZS5EPTcyMjtlLkU9NjY3O2UuRj02MTE7ZS5HPTc3ODtlLkg9NzIyO2UuST0yNzg7ZS5KPTUwMDtlLks9NjY3O2UuTD01NTY7ZS5NPTgzMztlLk49NzIyO2UuTz03Nzg7ZS5QPTY2NztlLlE9Nzc4O2UuUj03MjI7ZS5TPTY2NztlLlQ9NjExO2UuVT03MjI7ZS5WPTY2NztlLlc9OTQ0O2UuWD02Njc7ZS5ZPTY2NztlLlo9NjExO2UuYnJhY2tldGxlZnQ9Mjc4O2UuYmFja3NsYXNoPTI3ODtlLmJyYWNrZXRyaWdodD0yNzg7ZS5hc2NpaWNpcmN1bT00Njk7ZS51bmRlcnNjb3JlPTU1NjtlLnF1b3RlbGVmdD0yMjI7ZS5hPTU1NjtlLmI9NTU2O2UuYz01MDA7ZS5kPTU1NjtlLmU9NTU2O2UuZj0yNzg7ZS5nPTU1NjtlLmg9NTU2O2UuaT0yMjI7ZS5qPTIyMjtlLms9NTAwO2UubD0yMjI7ZS5tPTgzMztlLm49NTU2O2Uubz01NTY7ZS5wPTU1NjtlLnE9NTU2O2Uucj0zMzM7ZS5zPTUwMDtlLnQ9Mjc4O2UudT01NTY7ZS52PTUwMDtlLnc9NzIyO2UueD01MDA7ZS55PTUwMDtlLno9NTAwO2UuYnJhY2VsZWZ0PTMzNDtlLmJhcj0yNjA7ZS5icmFjZXJpZ2h0PTMzNDtlLmFzY2lpdGlsZGU9NTg0O2UuZXhjbGFtZG93bj0zMzM7ZS5jZW50PTU1NjtlLnN0ZXJsaW5nPTU1NjtlLmZyYWN0aW9uPTE2NztlLnllbj01NTY7ZS5mbG9yaW49NTU2O2Uuc2VjdGlvbj01NTY7ZS5jdXJyZW5jeT01NTY7ZS5xdW90ZXNpbmdsZT0xOTE7ZS5xdW90ZWRibGxlZnQ9MzMzO2UuZ3VpbGxlbW90bGVmdD01NTY7ZS5ndWlsc2luZ2xsZWZ0PTMzMztlLmd1aWxzaW5nbHJpZ2h0PTMzMztlLmZpPTUwMDtlLmZsPTUwMDtlLmVuZGFzaD01NTY7ZS5kYWdnZXI9NTU2O2UuZGFnZ2VyZGJsPTU1NjtlLnBlcmlvZGNlbnRlcmVkPTI3ODtlLnBhcmFncmFwaD01Mzc7ZS5idWxsZXQ9MzUwO2UucXVvdGVzaW5nbGJhc2U9MjIyO2UucXVvdGVkYmxiYXNlPTMzMztlLnF1b3RlZGJscmlnaHQ9MzMzO2UuZ3VpbGxlbW90cmlnaHQ9NTU2O2UuZWxsaXBzaXM9MWUzO2UucGVydGhvdXNhbmQ9MWUzO2UucXVlc3Rpb25kb3duPTYxMTtlLmdyYXZlPTMzMztlLmFjdXRlPTMzMztlLmNpcmN1bWZsZXg9MzMzO2UudGlsZGU9MzMzO2UubWFjcm9uPTMzMztlLmJyZXZlPTMzMztlLmRvdGFjY2VudD0zMzM7ZS5kaWVyZXNpcz0zMzM7ZS5yaW5nPTMzMztlLmNlZGlsbGE9MzMzO2UuaHVuZ2FydW1sYXV0PTMzMztlLm9nb25laz0zMzM7ZS5jYXJvbj0zMzM7ZS5lbWRhc2g9MWUzO2UuQUU9MWUzO2Uub3JkZmVtaW5pbmU9MzcwO2UuTHNsYXNoPTU1NjtlLk9zbGFzaD03Nzg7ZS5PRT0xZTM7ZS5vcmRtYXNjdWxpbmU9MzY1O2UuYWU9ODg5O2UuZG90bGVzc2k9Mjc4O2UubHNsYXNoPTIyMjtlLm9zbGFzaD02MTE7ZS5vZT05NDQ7ZS5nZXJtYW5kYmxzPTYxMTtlLklkaWVyZXNpcz0yNzg7ZS5lYWN1dGU9NTU2O2UuYWJyZXZlPTU1NjtlLnVodW5nYXJ1bWxhdXQ9NTU2O2UuZWNhcm9uPTU1NjtlLllkaWVyZXNpcz02Njc7ZS5kaXZpZGU9NTg0O2UuWWFjdXRlPTY2NztlLkFjaXJjdW1mbGV4PTY2NztlLmFhY3V0ZT01NTY7ZS5VY2lyY3VtZmxleD03MjI7ZS55YWN1dGU9NTAwO2Uuc2NvbW1hYWNjZW50PTUwMDtlLmVjaXJjdW1mbGV4PTU1NjtlLlVyaW5nPTcyMjtlLlVkaWVyZXNpcz03MjI7ZS5hb2dvbmVrPTU1NjtlLlVhY3V0ZT03MjI7ZS51b2dvbmVrPTU1NjtlLkVkaWVyZXNpcz02Njc7ZS5EY3JvYXQ9NzIyO2UuY29tbWFhY2NlbnQ9MjUwO2UuY29weXJpZ2h0PTczNztlLkVtYWNyb249NjY3O2UuY2Nhcm9uPTUwMDtlLmFyaW5nPTU1NjtlLk5jb21tYWFjY2VudD03MjI7ZS5sYWN1dGU9MjIyO2UuYWdyYXZlPTU1NjtlLlRjb21tYWFjY2VudD02MTE7ZS5DYWN1dGU9NzIyO2UuYXRpbGRlPTU1NjtlLkVkb3RhY2NlbnQ9NjY3O2Uuc2Nhcm9uPTUwMDtlLnNjZWRpbGxhPTUwMDtlLmlhY3V0ZT0yNzg7ZS5sb3plbmdlPTQ3MTtlLlJjYXJvbj03MjI7ZS5HY29tbWFhY2NlbnQ9Nzc4O2UudWNpcmN1bWZsZXg9NTU2O2UuYWNpcmN1bWZsZXg9NTU2O2UuQW1hY3Jvbj02Njc7ZS5yY2Fyb249MzMzO2UuY2NlZGlsbGE9NTAwO2UuWmRvdGFjY2VudD02MTE7ZS5UaG9ybj02Njc7ZS5PbWFjcm9uPTc3ODtlLlJhY3V0ZT03MjI7ZS5TYWN1dGU9NjY3O2UuZGNhcm9uPTY0MztlLlVtYWNyb249NzIyO2UudXJpbmc9NTU2O2UudGhyZWVzdXBlcmlvcj0zMzM7ZS5PZ3JhdmU9Nzc4O2UuQWdyYXZlPTY2NztlLkFicmV2ZT02Njc7ZS5tdWx0aXBseT01ODQ7ZS51YWN1dGU9NTU2O2UuVGNhcm9uPTYxMTtlLnBhcnRpYWxkaWZmPTQ3NjtlLnlkaWVyZXNpcz01MDA7ZS5OYWN1dGU9NzIyO2UuaWNpcmN1bWZsZXg9Mjc4O2UuRWNpcmN1bWZsZXg9NjY3O2UuYWRpZXJlc2lzPTU1NjtlLmVkaWVyZXNpcz01NTY7ZS5jYWN1dGU9NTAwO2UubmFjdXRlPTU1NjtlLnVtYWNyb249NTU2O2UuTmNhcm9uPTcyMjtlLklhY3V0ZT0yNzg7ZS5wbHVzbWludXM9NTg0O2UuYnJva2VuYmFyPTI2MDtlLnJlZ2lzdGVyZWQ9NzM3O2UuR2JyZXZlPTc3ODtlLklkb3RhY2NlbnQ9Mjc4O2Uuc3VtbWF0aW9uPTYwMDtlLkVncmF2ZT02Njc7ZS5yYWN1dGU9MzMzO2Uub21hY3Jvbj01NTY7ZS5aYWN1dGU9NjExO2UuWmNhcm9uPTYxMTtlLmdyZWF0ZXJlcXVhbD01NDk7ZS5FdGg9NzIyO2UuQ2NlZGlsbGE9NzIyO2UubGNvbW1hYWNjZW50PTIyMjtlLnRjYXJvbj0zMTc7ZS5lb2dvbmVrPTU1NjtlLlVvZ29uZWs9NzIyO2UuQWFjdXRlPTY2NztlLkFkaWVyZXNpcz02Njc7ZS5lZ3JhdmU9NTU2O2UuemFjdXRlPTUwMDtlLmlvZ29uZWs9MjIyO2UuT2FjdXRlPTc3ODtlLm9hY3V0ZT01NTY7ZS5hbWFjcm9uPTU1NjtlLnNhY3V0ZT01MDA7ZS5pZGllcmVzaXM9Mjc4O2UuT2NpcmN1bWZsZXg9Nzc4O2UuVWdyYXZlPTcyMjtlLkRlbHRhPTYxMjtlLnRob3JuPTU1NjtlLnR3b3N1cGVyaW9yPTMzMztlLk9kaWVyZXNpcz03Nzg7ZS5tdT01NTY7ZS5pZ3JhdmU9Mjc4O2Uub2h1bmdhcnVtbGF1dD01NTY7ZS5Fb2dvbmVrPTY2NztlLmRjcm9hdD01NTY7ZS50aHJlZXF1YXJ0ZXJzPTgzNDtlLlNjZWRpbGxhPTY2NztlLmxjYXJvbj0yOTk7ZS5LY29tbWFhY2NlbnQ9NjY3O2UuTGFjdXRlPTU1NjtlLnRyYWRlbWFyaz0xZTM7ZS5lZG90YWNjZW50PTU1NjtlLklncmF2ZT0yNzg7ZS5JbWFjcm9uPTI3ODtlLkxjYXJvbj01NTY7ZS5vbmVoYWxmPTgzNDtlLmxlc3NlcXVhbD01NDk7ZS5vY2lyY3VtZmxleD01NTY7ZS5udGlsZGU9NTU2O2UuVWh1bmdhcnVtbGF1dD03MjI7ZS5FYWN1dGU9NjY3O2UuZW1hY3Jvbj01NTY7ZS5nYnJldmU9NTU2O2Uub25lcXVhcnRlcj04MzQ7ZS5TY2Fyb249NjY3O2UuU2NvbW1hYWNjZW50PTY2NztlLk9odW5nYXJ1bWxhdXQ9Nzc4O2UuZGVncmVlPTQwMDtlLm9ncmF2ZT01NTY7ZS5DY2Fyb249NzIyO2UudWdyYXZlPTU1NjtlLnJhZGljYWw9NDUzO2UuRGNhcm9uPTcyMjtlLnJjb21tYWFjY2VudD0zMzM7ZS5OdGlsZGU9NzIyO2Uub3RpbGRlPTU1NjtlLlJjb21tYWFjY2VudD03MjI7ZS5MY29tbWFhY2NlbnQ9NTU2O2UuQXRpbGRlPTY2NztlLkFvZ29uZWs9NjY3O2UuQXJpbmc9NjY3O2UuT3RpbGRlPTc3ODtlLnpkb3RhY2NlbnQ9NTAwO2UuRWNhcm9uPTY2NztlLklvZ29uZWs9Mjc4O2Uua2NvbW1hYWNjZW50PTUwMDtlLm1pbnVzPTU4NDtlLkljaXJjdW1mbGV4PTI3ODtlLm5jYXJvbj01NTY7ZS50Y29tbWFhY2NlbnQ9Mjc4O2UubG9naWNhbG5vdD01ODQ7ZS5vZGllcmVzaXM9NTU2O2UudWRpZXJlc2lzPTU1NjtlLm5vdGVxdWFsPTU0OTtlLmdjb21tYWFjY2VudD01NTY7ZS5ldGg9NTU2O2UuemNhcm9uPTUwMDtlLm5jb21tYWFjY2VudD01NTY7ZS5vbmVzdXBlcmlvcj0zMzM7ZS5pbWFjcm9uPTI3ODtlLkV1cm89NTU2fSk7ZVsiSGVsdmV0aWNhLUJvbGQiXT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5leGNsYW09MzMzO2UucXVvdGVkYmw9NDc0O2UubnVtYmVyc2lnbj01NTY7ZS5kb2xsYXI9NTU2O2UucGVyY2VudD04ODk7ZS5hbXBlcnNhbmQ9NzIyO2UucXVvdGVyaWdodD0yNzg7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz0zODk7ZS5wbHVzPTU4NDtlLmNvbW1hPTI3ODtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9Mjc4O2Uuc2xhc2g9Mjc4O2UuemVybz01NTY7ZS5vbmU9NTU2O2UudHdvPTU1NjtlLnRocmVlPTU1NjtlLmZvdXI9NTU2O2UuZml2ZT01NTY7ZS5zaXg9NTU2O2Uuc2V2ZW49NTU2O2UuZWlnaHQ9NTU2O2UubmluZT01NTY7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz01ODQ7ZS5lcXVhbD01ODQ7ZS5ncmVhdGVyPTU4NDtlLnF1ZXN0aW9uPTYxMTtlLmF0PTk3NTtlLkE9NzIyO2UuQj03MjI7ZS5DPTcyMjtlLkQ9NzIyO2UuRT02Njc7ZS5GPTYxMTtlLkc9Nzc4O2UuSD03MjI7ZS5JPTI3ODtlLko9NTU2O2UuSz03MjI7ZS5MPTYxMTtlLk09ODMzO2UuTj03MjI7ZS5PPTc3ODtlLlA9NjY3O2UuUT03Nzg7ZS5SPTcyMjtlLlM9NjY3O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz05NDQ7ZS5YPTY2NztlLlk9NjY3O2UuWj02MTE7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTU4NDtlLnVuZGVyc2NvcmU9NTU2O2UucXVvdGVsZWZ0PTI3ODtlLmE9NTU2O2UuYj02MTE7ZS5jPTU1NjtlLmQ9NjExO2UuZT01NTY7ZS5mPTMzMztlLmc9NjExO2UuaD02MTE7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz01NTY7ZS5sPTI3ODtlLm09ODg5O2Uubj02MTE7ZS5vPTYxMTtlLnA9NjExO2UucT02MTE7ZS5yPTM4OTtlLnM9NTU2O2UudD0zMzM7ZS51PTYxMTtlLnY9NTU2O2Uudz03Nzg7ZS54PTU1NjtlLnk9NTU2O2Uuej01MDA7ZS5icmFjZWxlZnQ9Mzg5O2UuYmFyPTI4MDtlLmJyYWNlcmlnaHQ9Mzg5O2UuYXNjaWl0aWxkZT01ODQ7ZS5leGNsYW1kb3duPTMzMztlLmNlbnQ9NTU2O2Uuc3Rlcmxpbmc9NTU2O2UuZnJhY3Rpb249MTY3O2UueWVuPTU1NjtlLmZsb3Jpbj01NTY7ZS5zZWN0aW9uPTU1NjtlLmN1cnJlbmN5PTU1NjtlLnF1b3Rlc2luZ2xlPTIzODtlLnF1b3RlZGJsbGVmdD01MDA7ZS5ndWlsbGVtb3RsZWZ0PTU1NjtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NjExO2UuZmw9NjExO2UuZW5kYXNoPTU1NjtlLmRhZ2dlcj01NTY7ZS5kYWdnZXJkYmw9NTU2O2UucGVyaW9kY2VudGVyZWQ9Mjc4O2UucGFyYWdyYXBoPTU1NjtlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0yNzg7ZS5xdW90ZWRibGJhc2U9NTAwO2UucXVvdGVkYmxyaWdodD01MDA7ZS5ndWlsbGVtb3RyaWdodD01NTY7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NjExO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT0xZTM7ZS5vcmRmZW1pbmluZT0zNzA7ZS5Mc2xhc2g9NjExO2UuT3NsYXNoPTc3ODtlLk9FPTFlMztlLm9yZG1hc2N1bGluZT0zNjU7ZS5hZT04ODk7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTYxMTtlLm9lPTk0NDtlLmdlcm1hbmRibHM9NjExO2UuSWRpZXJlc2lzPTI3ODtlLmVhY3V0ZT01NTY7ZS5hYnJldmU9NTU2O2UudWh1bmdhcnVtbGF1dD02MTE7ZS5lY2Fyb249NTU2O2UuWWRpZXJlc2lzPTY2NztlLmRpdmlkZT01ODQ7ZS5ZYWN1dGU9NjY3O2UuQWNpcmN1bWZsZXg9NzIyO2UuYWFjdXRlPTU1NjtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT01NTY7ZS5zY29tbWFhY2NlbnQ9NTU2O2UuZWNpcmN1bWZsZXg9NTU2O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTU2O2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NjExO2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzM3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NTU2O2UuYXJpbmc9NTU2O2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTU2O2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT03MjI7ZS5hdGlsZGU9NTU2O2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249NTU2O2Uuc2NlZGlsbGE9NTU2O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDk0O2UuUmNhcm9uPTcyMjtlLkdjb21tYWFjY2VudD03Nzg7ZS51Y2lyY3VtZmxleD02MTE7ZS5hY2lyY3VtZmxleD01NTY7ZS5BbWFjcm9uPTcyMjtlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT01NTY7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTY2NztlLk9tYWNyb249Nzc4O2UuUmFjdXRlPTcyMjtlLlNhY3V0ZT02Njc7ZS5kY2Fyb249NzQzO2UuVW1hY3Jvbj03MjI7ZS51cmluZz02MTE7ZS50aHJlZXN1cGVyaW9yPTMzMztlLk9ncmF2ZT03Nzg7ZS5BZ3JhdmU9NzIyO2UuQWJyZXZlPTcyMjtlLm11bHRpcGx5PTU4NDtlLnVhY3V0ZT02MTE7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDk0O2UueWRpZXJlc2lzPTU1NjtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTU2O2UuZWRpZXJlc2lzPTU1NjtlLmNhY3V0ZT01NTY7ZS5uYWN1dGU9NjExO2UudW1hY3Jvbj02MTE7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTI3ODtlLnBsdXNtaW51cz01ODQ7ZS5icm9rZW5iYXI9MjgwO2UucmVnaXN0ZXJlZD03Mzc7ZS5HYnJldmU9Nzc4O2UuSWRvdGFjY2VudD0yNzg7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTYxMTtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT03MjI7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTM4OTtlLmVvZ29uZWs9NTU2O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NzIyO2UuQWRpZXJlc2lzPTcyMjtlLmVncmF2ZT01NTY7ZS56YWN1dGU9NTAwO2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9Nzc4O2Uub2FjdXRlPTYxMTtlLmFtYWNyb249NTU2O2Uuc2FjdXRlPTU1NjtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03Nzg7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NjExO2UudHdvc3VwZXJpb3I9MzMzO2UuT2RpZXJlc2lzPTc3ODtlLm11PTYxMTtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTYxMTtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTYxMTtlLnRocmVlcXVhcnRlcnM9ODM0O2UuU2NlZGlsbGE9NjY3O2UubGNhcm9uPTQwMDtlLktjb21tYWFjY2VudD03MjI7ZS5MYWN1dGU9NjExO2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NTU2O2UuSWdyYXZlPTI3ODtlLkltYWNyb249Mjc4O2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9ODM0O2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTYxMTtlLm50aWxkZT02MTE7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTU1NjtlLmdicmV2ZT02MTE7ZS5vbmVxdWFydGVyPTgzNDtlLlNjYXJvbj02Njc7ZS5TY29tbWFhY2NlbnQ9NjY3O2UuT2h1bmdhcnVtbGF1dD03Nzg7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTYxMTtlLkNjYXJvbj03MjI7ZS51Z3JhdmU9NjExO2UucmFkaWNhbD01NDk7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT03MjI7ZS5vdGlsZGU9NjExO2UuUmNvbW1hYWNjZW50PTcyMjtlLkxjb21tYWFjY2VudD02MTE7ZS5BdGlsZGU9NzIyO2UuQW9nb25laz03MjI7ZS5BcmluZz03MjI7ZS5PdGlsZGU9Nzc4O2UuemRvdGFjY2VudD01MDA7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0yNzg7ZS5rY29tbWFhY2NlbnQ9NTU2O2UubWludXM9NTg0O2UuSWNpcmN1bWZsZXg9Mjc4O2UubmNhcm9uPTYxMTtlLnRjb21tYWFjY2VudD0zMzM7ZS5sb2dpY2Fsbm90PTU4NDtlLm9kaWVyZXNpcz02MTE7ZS51ZGllcmVzaXM9NjExO2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTYxMTtlLmV0aD02MTE7ZS56Y2Fyb249NTAwO2UubmNvbW1hYWNjZW50PTYxMTtlLm9uZXN1cGVyaW9yPTMzMztlLmltYWNyb249Mjc4O2UuRXVybz01NTZ9KTtlWyJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiXT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5leGNsYW09MzMzO2UucXVvdGVkYmw9NDc0O2UubnVtYmVyc2lnbj01NTY7ZS5kb2xsYXI9NTU2O2UucGVyY2VudD04ODk7ZS5hbXBlcnNhbmQ9NzIyO2UucXVvdGVyaWdodD0yNzg7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz0zODk7ZS5wbHVzPTU4NDtlLmNvbW1hPTI3ODtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9Mjc4O2Uuc2xhc2g9Mjc4O2UuemVybz01NTY7ZS5vbmU9NTU2O2UudHdvPTU1NjtlLnRocmVlPTU1NjtlLmZvdXI9NTU2O2UuZml2ZT01NTY7ZS5zaXg9NTU2O2Uuc2V2ZW49NTU2O2UuZWlnaHQ9NTU2O2UubmluZT01NTY7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz01ODQ7ZS5lcXVhbD01ODQ7ZS5ncmVhdGVyPTU4NDtlLnF1ZXN0aW9uPTYxMTtlLmF0PTk3NTtlLkE9NzIyO2UuQj03MjI7ZS5DPTcyMjtlLkQ9NzIyO2UuRT02Njc7ZS5GPTYxMTtlLkc9Nzc4O2UuSD03MjI7ZS5JPTI3ODtlLko9NTU2O2UuSz03MjI7ZS5MPTYxMTtlLk09ODMzO2UuTj03MjI7ZS5PPTc3ODtlLlA9NjY3O2UuUT03Nzg7ZS5SPTcyMjtlLlM9NjY3O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz05NDQ7ZS5YPTY2NztlLlk9NjY3O2UuWj02MTE7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTU4NDtlLnVuZGVyc2NvcmU9NTU2O2UucXVvdGVsZWZ0PTI3ODtlLmE9NTU2O2UuYj02MTE7ZS5jPTU1NjtlLmQ9NjExO2UuZT01NTY7ZS5mPTMzMztlLmc9NjExO2UuaD02MTE7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz01NTY7ZS5sPTI3ODtlLm09ODg5O2Uubj02MTE7ZS5vPTYxMTtlLnA9NjExO2UucT02MTE7ZS5yPTM4OTtlLnM9NTU2O2UudD0zMzM7ZS51PTYxMTtlLnY9NTU2O2Uudz03Nzg7ZS54PTU1NjtlLnk9NTU2O2Uuej01MDA7ZS5icmFjZWxlZnQ9Mzg5O2UuYmFyPTI4MDtlLmJyYWNlcmlnaHQ9Mzg5O2UuYXNjaWl0aWxkZT01ODQ7ZS5leGNsYW1kb3duPTMzMztlLmNlbnQ9NTU2O2Uuc3Rlcmxpbmc9NTU2O2UuZnJhY3Rpb249MTY3O2UueWVuPTU1NjtlLmZsb3Jpbj01NTY7ZS5zZWN0aW9uPTU1NjtlLmN1cnJlbmN5PTU1NjtlLnF1b3Rlc2luZ2xlPTIzODtlLnF1b3RlZGJsbGVmdD01MDA7ZS5ndWlsbGVtb3RsZWZ0PTU1NjtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NjExO2UuZmw9NjExO2UuZW5kYXNoPTU1NjtlLmRhZ2dlcj01NTY7ZS5kYWdnZXJkYmw9NTU2O2UucGVyaW9kY2VudGVyZWQ9Mjc4O2UucGFyYWdyYXBoPTU1NjtlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0yNzg7ZS5xdW90ZWRibGJhc2U9NTAwO2UucXVvdGVkYmxyaWdodD01MDA7ZS5ndWlsbGVtb3RyaWdodD01NTY7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NjExO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT0xZTM7ZS5vcmRmZW1pbmluZT0zNzA7ZS5Mc2xhc2g9NjExO2UuT3NsYXNoPTc3ODtlLk9FPTFlMztlLm9yZG1hc2N1bGluZT0zNjU7ZS5hZT04ODk7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTYxMTtlLm9lPTk0NDtlLmdlcm1hbmRibHM9NjExO2UuSWRpZXJlc2lzPTI3ODtlLmVhY3V0ZT01NTY7ZS5hYnJldmU9NTU2O2UudWh1bmdhcnVtbGF1dD02MTE7ZS5lY2Fyb249NTU2O2UuWWRpZXJlc2lzPTY2NztlLmRpdmlkZT01ODQ7ZS5ZYWN1dGU9NjY3O2UuQWNpcmN1bWZsZXg9NzIyO2UuYWFjdXRlPTU1NjtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT01NTY7ZS5zY29tbWFhY2NlbnQ9NTU2O2UuZWNpcmN1bWZsZXg9NTU2O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTU2O2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NjExO2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzM3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NTU2O2UuYXJpbmc9NTU2O2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTU2O2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT03MjI7ZS5hdGlsZGU9NTU2O2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249NTU2O2Uuc2NlZGlsbGE9NTU2O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDk0O2UuUmNhcm9uPTcyMjtlLkdjb21tYWFjY2VudD03Nzg7ZS51Y2lyY3VtZmxleD02MTE7ZS5hY2lyY3VtZmxleD01NTY7ZS5BbWFjcm9uPTcyMjtlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT01NTY7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTY2NztlLk9tYWNyb249Nzc4O2UuUmFjdXRlPTcyMjtlLlNhY3V0ZT02Njc7ZS5kY2Fyb249NzQzO2UuVW1hY3Jvbj03MjI7ZS51cmluZz02MTE7ZS50aHJlZXN1cGVyaW9yPTMzMztlLk9ncmF2ZT03Nzg7ZS5BZ3JhdmU9NzIyO2UuQWJyZXZlPTcyMjtlLm11bHRpcGx5PTU4NDtlLnVhY3V0ZT02MTE7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDk0O2UueWRpZXJlc2lzPTU1NjtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTU2O2UuZWRpZXJlc2lzPTU1NjtlLmNhY3V0ZT01NTY7ZS5uYWN1dGU9NjExO2UudW1hY3Jvbj02MTE7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTI3ODtlLnBsdXNtaW51cz01ODQ7ZS5icm9rZW5iYXI9MjgwO2UucmVnaXN0ZXJlZD03Mzc7ZS5HYnJldmU9Nzc4O2UuSWRvdGFjY2VudD0yNzg7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTYxMTtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT03MjI7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTM4OTtlLmVvZ29uZWs9NTU2O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NzIyO2UuQWRpZXJlc2lzPTcyMjtlLmVncmF2ZT01NTY7ZS56YWN1dGU9NTAwO2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9Nzc4O2Uub2FjdXRlPTYxMTtlLmFtYWNyb249NTU2O2Uuc2FjdXRlPTU1NjtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03Nzg7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NjExO2UudHdvc3VwZXJpb3I9MzMzO2UuT2RpZXJlc2lzPTc3ODtlLm11PTYxMTtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTYxMTtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTYxMTtlLnRocmVlcXVhcnRlcnM9ODM0O2UuU2NlZGlsbGE9NjY3O2UubGNhcm9uPTQwMDtlLktjb21tYWFjY2VudD03MjI7ZS5MYWN1dGU9NjExO2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NTU2O2UuSWdyYXZlPTI3ODtlLkltYWNyb249Mjc4O2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9ODM0O2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTYxMTtlLm50aWxkZT02MTE7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTU1NjtlLmdicmV2ZT02MTE7ZS5vbmVxdWFydGVyPTgzNDtlLlNjYXJvbj02Njc7ZS5TY29tbWFhY2NlbnQ9NjY3O2UuT2h1bmdhcnVtbGF1dD03Nzg7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTYxMTtlLkNjYXJvbj03MjI7ZS51Z3JhdmU9NjExO2UucmFkaWNhbD01NDk7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT03MjI7ZS5vdGlsZGU9NjExO2UuUmNvbW1hYWNjZW50PTcyMjtlLkxjb21tYWFjY2VudD02MTE7ZS5BdGlsZGU9NzIyO2UuQW9nb25laz03MjI7ZS5BcmluZz03MjI7ZS5PdGlsZGU9Nzc4O2UuemRvdGFjY2VudD01MDA7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0yNzg7ZS5rY29tbWFhY2NlbnQ9NTU2O2UubWludXM9NTg0O2UuSWNpcmN1bWZsZXg9Mjc4O2UubmNhcm9uPTYxMTtlLnRjb21tYWFjY2VudD0zMzM7ZS5sb2dpY2Fsbm90PTU4NDtlLm9kaWVyZXNpcz02MTE7ZS51ZGllcmVzaXM9NjExO2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTYxMTtlLmV0aD02MTE7ZS56Y2Fyb249NTAwO2UubmNvbW1hYWNjZW50PTYxMTtlLm9uZXN1cGVyaW9yPTMzMztlLmltYWNyb249Mjc4O2UuRXVybz01NTZ9KTtlWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlLnNwYWNlPTI3ODtlLmV4Y2xhbT0yNzg7ZS5xdW90ZWRibD0zNTU7ZS5udW1iZXJzaWduPTU1NjtlLmRvbGxhcj01NTY7ZS5wZXJjZW50PTg4OTtlLmFtcGVyc2FuZD02Njc7ZS5xdW90ZXJpZ2h0PTIyMjtlLnBhcmVubGVmdD0zMzM7ZS5wYXJlbnJpZ2h0PTMzMztlLmFzdGVyaXNrPTM4OTtlLnBsdXM9NTg0O2UuY29tbWE9Mjc4O2UuaHlwaGVuPTMzMztlLnBlcmlvZD0yNzg7ZS5zbGFzaD0yNzg7ZS56ZXJvPTU1NjtlLm9uZT01NTY7ZS50d289NTU2O2UudGhyZWU9NTU2O2UuZm91cj01NTY7ZS5maXZlPTU1NjtlLnNpeD01NTY7ZS5zZXZlbj01NTY7ZS5laWdodD01NTY7ZS5uaW5lPTU1NjtlLmNvbG9uPTI3ODtlLnNlbWljb2xvbj0yNzg7ZS5sZXNzPTU4NDtlLmVxdWFsPTU4NDtlLmdyZWF0ZXI9NTg0O2UucXVlc3Rpb249NTU2O2UuYXQ9MTAxNTtlLkE9NjY3O2UuQj02Njc7ZS5DPTcyMjtlLkQ9NzIyO2UuRT02Njc7ZS5GPTYxMTtlLkc9Nzc4O2UuSD03MjI7ZS5JPTI3ODtlLko9NTAwO2UuSz02Njc7ZS5MPTU1NjtlLk09ODMzO2UuTj03MjI7ZS5PPTc3ODtlLlA9NjY3O2UuUT03Nzg7ZS5SPTcyMjtlLlM9NjY3O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz05NDQ7ZS5YPTY2NztlLlk9NjY3O2UuWj02MTE7ZS5icmFja2V0bGVmdD0yNzg7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTI3ODtlLmFzY2lpY2lyY3VtPTQ2OTtlLnVuZGVyc2NvcmU9NTU2O2UucXVvdGVsZWZ0PTIyMjtlLmE9NTU2O2UuYj01NTY7ZS5jPTUwMDtlLmQ9NTU2O2UuZT01NTY7ZS5mPTI3ODtlLmc9NTU2O2UuaD01NTY7ZS5pPTIyMjtlLmo9MjIyO2Uuaz01MDA7ZS5sPTIyMjtlLm09ODMzO2Uubj01NTY7ZS5vPTU1NjtlLnA9NTU2O2UucT01NTY7ZS5yPTMzMztlLnM9NTAwO2UudD0yNzg7ZS51PTU1NjtlLnY9NTAwO2Uudz03MjI7ZS54PTUwMDtlLnk9NTAwO2Uuej01MDA7ZS5icmFjZWxlZnQ9MzM0O2UuYmFyPTI2MDtlLmJyYWNlcmlnaHQ9MzM0O2UuYXNjaWl0aWxkZT01ODQ7ZS5leGNsYW1kb3duPTMzMztlLmNlbnQ9NTU2O2Uuc3Rlcmxpbmc9NTU2O2UuZnJhY3Rpb249MTY3O2UueWVuPTU1NjtlLmZsb3Jpbj01NTY7ZS5zZWN0aW9uPTU1NjtlLmN1cnJlbmN5PTU1NjtlLnF1b3Rlc2luZ2xlPTE5MTtlLnF1b3RlZGJsbGVmdD0zMzM7ZS5ndWlsbGVtb3RsZWZ0PTU1NjtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NTAwO2UuZmw9NTAwO2UuZW5kYXNoPTU1NjtlLmRhZ2dlcj01NTY7ZS5kYWdnZXJkYmw9NTU2O2UucGVyaW9kY2VudGVyZWQ9Mjc4O2UucGFyYWdyYXBoPTUzNztlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0yMjI7ZS5xdW90ZWRibGJhc2U9MzMzO2UucXVvdGVkYmxyaWdodD0zMzM7ZS5ndWlsbGVtb3RyaWdodD01NTY7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NjExO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT0xZTM7ZS5vcmRmZW1pbmluZT0zNzA7ZS5Mc2xhc2g9NTU2O2UuT3NsYXNoPTc3ODtlLk9FPTFlMztlLm9yZG1hc2N1bGluZT0zNjU7ZS5hZT04ODk7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9MjIyO2Uub3NsYXNoPTYxMTtlLm9lPTk0NDtlLmdlcm1hbmRibHM9NjExO2UuSWRpZXJlc2lzPTI3ODtlLmVhY3V0ZT01NTY7ZS5hYnJldmU9NTU2O2UudWh1bmdhcnVtbGF1dD01NTY7ZS5lY2Fyb249NTU2O2UuWWRpZXJlc2lzPTY2NztlLmRpdmlkZT01ODQ7ZS5ZYWN1dGU9NjY3O2UuQWNpcmN1bWZsZXg9NjY3O2UuYWFjdXRlPTU1NjtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT01MDA7ZS5zY29tbWFhY2NlbnQ9NTAwO2UuZWNpcmN1bWZsZXg9NTU2O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTU2O2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NTU2O2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzM3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NTAwO2UuYXJpbmc9NTU2O2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yMjI7ZS5hZ3JhdmU9NTU2O2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT03MjI7ZS5hdGlsZGU9NTU2O2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249NTAwO2Uuc2NlZGlsbGE9NTAwO2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDcxO2UuUmNhcm9uPTcyMjtlLkdjb21tYWFjY2VudD03Nzg7ZS51Y2lyY3VtZmxleD01NTY7ZS5hY2lyY3VtZmxleD01NTY7ZS5BbWFjcm9uPTY2NztlLnJjYXJvbj0zMzM7ZS5jY2VkaWxsYT01MDA7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTY2NztlLk9tYWNyb249Nzc4O2UuUmFjdXRlPTcyMjtlLlNhY3V0ZT02Njc7ZS5kY2Fyb249NjQzO2UuVW1hY3Jvbj03MjI7ZS51cmluZz01NTY7ZS50aHJlZXN1cGVyaW9yPTMzMztlLk9ncmF2ZT03Nzg7ZS5BZ3JhdmU9NjY3O2UuQWJyZXZlPTY2NztlLm11bHRpcGx5PTU4NDtlLnVhY3V0ZT01NTY7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDc2O2UueWRpZXJlc2lzPTUwMDtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTU2O2UuZWRpZXJlc2lzPTU1NjtlLmNhY3V0ZT01MDA7ZS5uYWN1dGU9NTU2O2UudW1hY3Jvbj01NTY7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTI3ODtlLnBsdXNtaW51cz01ODQ7ZS5icm9rZW5iYXI9MjYwO2UucmVnaXN0ZXJlZD03Mzc7ZS5HYnJldmU9Nzc4O2UuSWRvdGFjY2VudD0yNzg7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zMzM7ZS5vbWFjcm9uPTU1NjtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT03MjI7ZS5sY29tbWFhY2NlbnQ9MjIyO2UudGNhcm9uPTMxNztlLmVvZ29uZWs9NTU2O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NjY3O2UuQWRpZXJlc2lzPTY2NztlLmVncmF2ZT01NTY7ZS56YWN1dGU9NTAwO2UuaW9nb25laz0yMjI7ZS5PYWN1dGU9Nzc4O2Uub2FjdXRlPTU1NjtlLmFtYWNyb249NTU2O2Uuc2FjdXRlPTUwMDtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03Nzg7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NTU2O2UudHdvc3VwZXJpb3I9MzMzO2UuT2RpZXJlc2lzPTc3ODtlLm11PTU1NjtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTU1NjtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTU1NjtlLnRocmVlcXVhcnRlcnM9ODM0O2UuU2NlZGlsbGE9NjY3O2UubGNhcm9uPTI5OTtlLktjb21tYWFjY2VudD02Njc7ZS5MYWN1dGU9NTU2O2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NTU2O2UuSWdyYXZlPTI3ODtlLkltYWNyb249Mjc4O2UuTGNhcm9uPTU1NjtlLm9uZWhhbGY9ODM0O2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTU1NjtlLm50aWxkZT01NTY7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTU1NjtlLmdicmV2ZT01NTY7ZS5vbmVxdWFydGVyPTgzNDtlLlNjYXJvbj02Njc7ZS5TY29tbWFhY2NlbnQ9NjY3O2UuT2h1bmdhcnVtbGF1dD03Nzg7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTU1NjtlLkNjYXJvbj03MjI7ZS51Z3JhdmU9NTU2O2UucmFkaWNhbD00NTM7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTMzMztlLk50aWxkZT03MjI7ZS5vdGlsZGU9NTU2O2UuUmNvbW1hYWNjZW50PTcyMjtlLkxjb21tYWFjY2VudD01NTY7ZS5BdGlsZGU9NjY3O2UuQW9nb25laz02Njc7ZS5BcmluZz02Njc7ZS5PdGlsZGU9Nzc4O2UuemRvdGFjY2VudD01MDA7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0yNzg7ZS5rY29tbWFhY2NlbnQ9NTAwO2UubWludXM9NTg0O2UuSWNpcmN1bWZsZXg9Mjc4O2UubmNhcm9uPTU1NjtlLnRjb21tYWFjY2VudD0yNzg7ZS5sb2dpY2Fsbm90PTU4NDtlLm9kaWVyZXNpcz01NTY7ZS51ZGllcmVzaXM9NTU2O2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTU1NjtlLmV0aD01NTY7ZS56Y2Fyb249NTAwO2UubmNvbW1hYWNjZW50PTU1NjtlLm9uZXN1cGVyaW9yPTMzMztlLmltYWNyb249Mjc4O2UuRXVybz01NTZ9KTtlLlN5bWJvbD1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09MzMzO2UudW5pdmVyc2FsPTcxMztlLm51bWJlcnNpZ249NTAwO2UuZXhpc3RlbnRpYWw9NTQ5O2UucGVyY2VudD04MzM7ZS5hbXBlcnNhbmQ9Nzc4O2Uuc3VjaHRoYXQ9NDM5O2UucGFyZW5sZWZ0PTMzMztlLnBhcmVucmlnaHQ9MzMzO2UuYXN0ZXJpc2ttYXRoPTUwMDtlLnBsdXM9NTQ5O2UuY29tbWE9MjUwO2UubWludXM9NTQ5O2UucGVyaW9kPTI1MDtlLnNsYXNoPTI3ODtlLnplcm89NTAwO2Uub25lPTUwMDtlLnR3bz01MDA7ZS50aHJlZT01MDA7ZS5mb3VyPTUwMDtlLmZpdmU9NTAwO2Uuc2l4PTUwMDtlLnNldmVuPTUwMDtlLmVpZ2h0PTUwMDtlLm5pbmU9NTAwO2UuY29sb249Mjc4O2Uuc2VtaWNvbG9uPTI3ODtlLmxlc3M9NTQ5O2UuZXF1YWw9NTQ5O2UuZ3JlYXRlcj01NDk7ZS5xdWVzdGlvbj00NDQ7ZS5jb25ncnVlbnQ9NTQ5O2UuQWxwaGE9NzIyO2UuQmV0YT02Njc7ZS5DaGk9NzIyO2UuRGVsdGE9NjEyO2UuRXBzaWxvbj02MTE7ZS5QaGk9NzYzO2UuR2FtbWE9NjAzO2UuRXRhPTcyMjtlLklvdGE9MzMzO2UudGhldGExPTYzMTtlLkthcHBhPTcyMjtlLkxhbWJkYT02ODY7ZS5NdT04ODk7ZS5OdT03MjI7ZS5PbWljcm9uPTcyMjtlLlBpPTc2ODtlLlRoZXRhPTc0MTtlLlJobz01NTY7ZS5TaWdtYT01OTI7ZS5UYXU9NjExO2UuVXBzaWxvbj02OTA7ZS5zaWdtYTE9NDM5O2UuT21lZ2E9NzY4O2UuWGk9NjQ1O2UuUHNpPTc5NTtlLlpldGE9NjExO2UuYnJhY2tldGxlZnQ9MzMzO2UudGhlcmVmb3JlPTg2MztlLmJyYWNrZXRyaWdodD0zMzM7ZS5wZXJwZW5kaWN1bGFyPTY1ODtlLnVuZGVyc2NvcmU9NTAwO2UucmFkaWNhbGV4PTUwMDtlLmFscGhhPTYzMTtlLmJldGE9NTQ5O2UuY2hpPTU0OTtlLmRlbHRhPTQ5NDtlLmVwc2lsb249NDM5O2UucGhpPTUyMTtlLmdhbW1hPTQxMTtlLmV0YT02MDM7ZS5pb3RhPTMyOTtlLnBoaTE9NjAzO2Uua2FwcGE9NTQ5O2UubGFtYmRhPTU0OTtlLm11PTU3NjtlLm51PTUyMTtlLm9taWNyb249NTQ5O2UucGk9NTQ5O2UudGhldGE9NTIxO2UucmhvPTU0OTtlLnNpZ21hPTYwMztlLnRhdT00Mzk7ZS51cHNpbG9uPTU3NjtlLm9tZWdhMT03MTM7ZS5vbWVnYT02ODY7ZS54aT00OTM7ZS5wc2k9Njg2O2UuemV0YT00OTQ7ZS5icmFjZWxlZnQ9NDgwO2UuYmFyPTIwMDtlLmJyYWNlcmlnaHQ9NDgwO2Uuc2ltaWxhcj01NDk7ZS5FdXJvPTc1MDtlLlVwc2lsb24xPTYyMDtlLm1pbnV0ZT0yNDc7ZS5sZXNzZXF1YWw9NTQ5O2UuZnJhY3Rpb249MTY3O2UuaW5maW5pdHk9NzEzO2UuZmxvcmluPTUwMDtlLmNsdWI9NzUzO2UuZGlhbW9uZD03NTM7ZS5oZWFydD03NTM7ZS5zcGFkZT03NTM7ZS5hcnJvd2JvdGg9MTA0MjtlLmFycm93bGVmdD05ODc7ZS5hcnJvd3VwPTYwMztlLmFycm93cmlnaHQ9OTg3O2UuYXJyb3dkb3duPTYwMztlLmRlZ3JlZT00MDA7ZS5wbHVzbWludXM9NTQ5O2Uuc2Vjb25kPTQxMTtlLmdyZWF0ZXJlcXVhbD01NDk7ZS5tdWx0aXBseT01NDk7ZS5wcm9wb3J0aW9uYWw9NzEzO2UucGFydGlhbGRpZmY9NDk0O2UuYnVsbGV0PTQ2MDtlLmRpdmlkZT01NDk7ZS5ub3RlcXVhbD01NDk7ZS5lcXVpdmFsZW5jZT01NDk7ZS5hcHByb3hlcXVhbD01NDk7ZS5lbGxpcHNpcz0xZTM7ZS5hcnJvd3ZlcnRleD02MDM7ZS5hcnJvd2hvcml6ZXg9MWUzO2UuY2FycmlhZ2VyZXR1cm49NjU4O2UuYWxlcGg9ODIzO2UuSWZyYWt0dXI9Njg2O2UuUmZyYWt0dXI9Nzk1O2Uud2VpZXJzdHJhc3M9OTg3O2UuY2lyY2xlbXVsdGlwbHk9NzY4O2UuY2lyY2xlcGx1cz03Njg7ZS5lbXB0eXNldD04MjM7ZS5pbnRlcnNlY3Rpb249NzY4O2UudW5pb249NzY4O2UucHJvcGVyc3VwZXJzZXQ9NzEzO2UucmVmbGV4c3VwZXJzZXQ9NzEzO2Uubm90c3Vic2V0PTcxMztlLnByb3BlcnN1YnNldD03MTM7ZS5yZWZsZXhzdWJzZXQ9NzEzO2UuZWxlbWVudD03MTM7ZS5ub3RlbGVtZW50PTcxMztlLmFuZ2xlPTc2ODtlLmdyYWRpZW50PTcxMztlLnJlZ2lzdGVyc2VyaWY9NzkwO2UuY29weXJpZ2h0c2VyaWY9NzkwO2UudHJhZGVtYXJrc2VyaWY9ODkwO2UucHJvZHVjdD04MjM7ZS5yYWRpY2FsPTU0OTtlLmRvdG1hdGg9MjUwO2UubG9naWNhbG5vdD03MTM7ZS5sb2dpY2FsYW5kPTYwMztlLmxvZ2ljYWxvcj02MDM7ZS5hcnJvd2RibGJvdGg9MTA0MjtlLmFycm93ZGJsbGVmdD05ODc7ZS5hcnJvd2RibHVwPTYwMztlLmFycm93ZGJscmlnaHQ9OTg3O2UuYXJyb3dkYmxkb3duPTYwMztlLmxvemVuZ2U9NDk0O2UuYW5nbGVsZWZ0PTMyOTtlLnJlZ2lzdGVyc2Fucz03OTA7ZS5jb3B5cmlnaHRzYW5zPTc5MDtlLnRyYWRlbWFya3NhbnM9Nzg2O2Uuc3VtbWF0aW9uPTcxMztlLnBhcmVubGVmdHRwPTM4NDtlLnBhcmVubGVmdGV4PTM4NDtlLnBhcmVubGVmdGJ0PTM4NDtlLmJyYWNrZXRsZWZ0dHA9Mzg0O2UuYnJhY2tldGxlZnRleD0zODQ7ZS5icmFja2V0bGVmdGJ0PTM4NDtlLmJyYWNlbGVmdHRwPTQ5NDtlLmJyYWNlbGVmdG1pZD00OTQ7ZS5icmFjZWxlZnRidD00OTQ7ZS5icmFjZWV4PTQ5NDtlLmFuZ2xlcmlnaHQ9MzI5O2UuaW50ZWdyYWw9Mjc0O2UuaW50ZWdyYWx0cD02ODY7ZS5pbnRlZ3JhbGV4PTY4NjtlLmludGVncmFsYnQ9Njg2O2UucGFyZW5yaWdodHRwPTM4NDtlLnBhcmVucmlnaHRleD0zODQ7ZS5wYXJlbnJpZ2h0YnQ9Mzg0O2UuYnJhY2tldHJpZ2h0dHA9Mzg0O2UuYnJhY2tldHJpZ2h0ZXg9Mzg0O2UuYnJhY2tldHJpZ2h0YnQ9Mzg0O2UuYnJhY2VyaWdodHRwPTQ5NDtlLmJyYWNlcmlnaHRtaWQ9NDk0O2UuYnJhY2VyaWdodGJ0PTQ5NDtlLmFwcGxlPTc5MH0pO2VbIlRpbWVzLVJvbWFuIl09Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2Uuc3BhY2U9MjUwO2UuZXhjbGFtPTMzMztlLnF1b3RlZGJsPTQwODtlLm51bWJlcnNpZ249NTAwO2UuZG9sbGFyPTUwMDtlLnBlcmNlbnQ9ODMzO2UuYW1wZXJzYW5kPTc3ODtlLnF1b3RlcmlnaHQ9MzMzO2UucGFyZW5sZWZ0PTMzMztlLnBhcmVucmlnaHQ9MzMzO2UuYXN0ZXJpc2s9NTAwO2UucGx1cz01NjQ7ZS5jb21tYT0yNTA7ZS5oeXBoZW49MzMzO2UucGVyaW9kPTI1MDtlLnNsYXNoPTI3ODtlLnplcm89NTAwO2Uub25lPTUwMDtlLnR3bz01MDA7ZS50aHJlZT01MDA7ZS5mb3VyPTUwMDtlLmZpdmU9NTAwO2Uuc2l4PTUwMDtlLnNldmVuPTUwMDtlLmVpZ2h0PTUwMDtlLm5pbmU9NTAwO2UuY29sb249Mjc4O2Uuc2VtaWNvbG9uPTI3ODtlLmxlc3M9NTY0O2UuZXF1YWw9NTY0O2UuZ3JlYXRlcj01NjQ7ZS5xdWVzdGlvbj00NDQ7ZS5hdD05MjE7ZS5BPTcyMjtlLkI9NjY3O2UuQz02Njc7ZS5EPTcyMjtlLkU9NjExO2UuRj01NTY7ZS5HPTcyMjtlLkg9NzIyO2UuST0zMzM7ZS5KPTM4OTtlLks9NzIyO2UuTD02MTE7ZS5NPTg4OTtlLk49NzIyO2UuTz03MjI7ZS5QPTU1NjtlLlE9NzIyO2UuUj02Njc7ZS5TPTU1NjtlLlQ9NjExO2UuVT03MjI7ZS5WPTcyMjtlLlc9OTQ0O2UuWD03MjI7ZS5ZPTcyMjtlLlo9NjExO2UuYnJhY2tldGxlZnQ9MzMzO2UuYmFja3NsYXNoPTI3ODtlLmJyYWNrZXRyaWdodD0zMzM7ZS5hc2NpaWNpcmN1bT00Njk7ZS51bmRlcnNjb3JlPTUwMDtlLnF1b3RlbGVmdD0zMzM7ZS5hPTQ0NDtlLmI9NTAwO2UuYz00NDQ7ZS5kPTUwMDtlLmU9NDQ0O2UuZj0zMzM7ZS5nPTUwMDtlLmg9NTAwO2UuaT0yNzg7ZS5qPTI3ODtlLms9NTAwO2UubD0yNzg7ZS5tPTc3ODtlLm49NTAwO2Uubz01MDA7ZS5wPTUwMDtlLnE9NTAwO2Uucj0zMzM7ZS5zPTM4OTtlLnQ9Mjc4O2UudT01MDA7ZS52PTUwMDtlLnc9NzIyO2UueD01MDA7ZS55PTUwMDtlLno9NDQ0O2UuYnJhY2VsZWZ0PTQ4MDtlLmJhcj0yMDA7ZS5icmFjZXJpZ2h0PTQ4MDtlLmFzY2lpdGlsZGU9NTQxO2UuZXhjbGFtZG93bj0zMzM7ZS5jZW50PTUwMDtlLnN0ZXJsaW5nPTUwMDtlLmZyYWN0aW9uPTE2NztlLnllbj01MDA7ZS5mbG9yaW49NTAwO2Uuc2VjdGlvbj01MDA7ZS5jdXJyZW5jeT01MDA7ZS5xdW90ZXNpbmdsZT0xODA7ZS5xdW90ZWRibGxlZnQ9NDQ0O2UuZ3VpbGxlbW90bGVmdD01MDA7ZS5ndWlsc2luZ2xsZWZ0PTMzMztlLmd1aWxzaW5nbHJpZ2h0PTMzMztlLmZpPTU1NjtlLmZsPTU1NjtlLmVuZGFzaD01MDA7ZS5kYWdnZXI9NTAwO2UuZGFnZ2VyZGJsPTUwMDtlLnBlcmlvZGNlbnRlcmVkPTI1MDtlLnBhcmFncmFwaD00NTM7ZS5idWxsZXQ9MzUwO2UucXVvdGVzaW5nbGJhc2U9MzMzO2UucXVvdGVkYmxiYXNlPTQ0NDtlLnF1b3RlZGJscmlnaHQ9NDQ0O2UuZ3VpbGxlbW90cmlnaHQ9NTAwO2UuZWxsaXBzaXM9MWUzO2UucGVydGhvdXNhbmQ9MWUzO2UucXVlc3Rpb25kb3duPTQ0NDtlLmdyYXZlPTMzMztlLmFjdXRlPTMzMztlLmNpcmN1bWZsZXg9MzMzO2UudGlsZGU9MzMzO2UubWFjcm9uPTMzMztlLmJyZXZlPTMzMztlLmRvdGFjY2VudD0zMzM7ZS5kaWVyZXNpcz0zMzM7ZS5yaW5nPTMzMztlLmNlZGlsbGE9MzMzO2UuaHVuZ2FydW1sYXV0PTMzMztlLm9nb25laz0zMzM7ZS5jYXJvbj0zMzM7ZS5lbWRhc2g9MWUzO2UuQUU9ODg5O2Uub3JkZmVtaW5pbmU9Mjc2O2UuTHNsYXNoPTYxMTtlLk9zbGFzaD03MjI7ZS5PRT04ODk7ZS5vcmRtYXNjdWxpbmU9MzEwO2UuYWU9NjY3O2UuZG90bGVzc2k9Mjc4O2UubHNsYXNoPTI3ODtlLm9zbGFzaD01MDA7ZS5vZT03MjI7ZS5nZXJtYW5kYmxzPTUwMDtlLklkaWVyZXNpcz0zMzM7ZS5lYWN1dGU9NDQ0O2UuYWJyZXZlPTQ0NDtlLnVodW5nYXJ1bWxhdXQ9NTAwO2UuZWNhcm9uPTQ0NDtlLllkaWVyZXNpcz03MjI7ZS5kaXZpZGU9NTY0O2UuWWFjdXRlPTcyMjtlLkFjaXJjdW1mbGV4PTcyMjtlLmFhY3V0ZT00NDQ7ZS5VY2lyY3VtZmxleD03MjI7ZS55YWN1dGU9NTAwO2Uuc2NvbW1hYWNjZW50PTM4OTtlLmVjaXJjdW1mbGV4PTQ0NDtlLlVyaW5nPTcyMjtlLlVkaWVyZXNpcz03MjI7ZS5hb2dvbmVrPTQ0NDtlLlVhY3V0ZT03MjI7ZS51b2dvbmVrPTUwMDtlLkVkaWVyZXNpcz02MTE7ZS5EY3JvYXQ9NzIyO2UuY29tbWFhY2NlbnQ9MjUwO2UuY29weXJpZ2h0PTc2MDtlLkVtYWNyb249NjExO2UuY2Nhcm9uPTQ0NDtlLmFyaW5nPTQ0NDtlLk5jb21tYWFjY2VudD03MjI7ZS5sYWN1dGU9Mjc4O2UuYWdyYXZlPTQ0NDtlLlRjb21tYWFjY2VudD02MTE7ZS5DYWN1dGU9NjY3O2UuYXRpbGRlPTQ0NDtlLkVkb3RhY2NlbnQ9NjExO2Uuc2Nhcm9uPTM4OTtlLnNjZWRpbGxhPTM4OTtlLmlhY3V0ZT0yNzg7ZS5sb3plbmdlPTQ3MTtlLlJjYXJvbj02Njc7ZS5HY29tbWFhY2NlbnQ9NzIyO2UudWNpcmN1bWZsZXg9NTAwO2UuYWNpcmN1bWZsZXg9NDQ0O2UuQW1hY3Jvbj03MjI7ZS5yY2Fyb249MzMzO2UuY2NlZGlsbGE9NDQ0O2UuWmRvdGFjY2VudD02MTE7ZS5UaG9ybj01NTY7ZS5PbWFjcm9uPTcyMjtlLlJhY3V0ZT02Njc7ZS5TYWN1dGU9NTU2O2UuZGNhcm9uPTU4ODtlLlVtYWNyb249NzIyO2UudXJpbmc9NTAwO2UudGhyZWVzdXBlcmlvcj0zMDA7ZS5PZ3JhdmU9NzIyO2UuQWdyYXZlPTcyMjtlLkFicmV2ZT03MjI7ZS5tdWx0aXBseT01NjQ7ZS51YWN1dGU9NTAwO2UuVGNhcm9uPTYxMTtlLnBhcnRpYWxkaWZmPTQ3NjtlLnlkaWVyZXNpcz01MDA7ZS5OYWN1dGU9NzIyO2UuaWNpcmN1bWZsZXg9Mjc4O2UuRWNpcmN1bWZsZXg9NjExO2UuYWRpZXJlc2lzPTQ0NDtlLmVkaWVyZXNpcz00NDQ7ZS5jYWN1dGU9NDQ0O2UubmFjdXRlPTUwMDtlLnVtYWNyb249NTAwO2UuTmNhcm9uPTcyMjtlLklhY3V0ZT0zMzM7ZS5wbHVzbWludXM9NTY0O2UuYnJva2VuYmFyPTIwMDtlLnJlZ2lzdGVyZWQ9NzYwO2UuR2JyZXZlPTcyMjtlLklkb3RhY2NlbnQ9MzMzO2Uuc3VtbWF0aW9uPTYwMDtlLkVncmF2ZT02MTE7ZS5yYWN1dGU9MzMzO2Uub21hY3Jvbj01MDA7ZS5aYWN1dGU9NjExO2UuWmNhcm9uPTYxMTtlLmdyZWF0ZXJlcXVhbD01NDk7ZS5FdGg9NzIyO2UuQ2NlZGlsbGE9NjY3O2UubGNvbW1hYWNjZW50PTI3ODtlLnRjYXJvbj0zMjY7ZS5lb2dvbmVrPTQ0NDtlLlVvZ29uZWs9NzIyO2UuQWFjdXRlPTcyMjtlLkFkaWVyZXNpcz03MjI7ZS5lZ3JhdmU9NDQ0O2UuemFjdXRlPTQ0NDtlLmlvZ29uZWs9Mjc4O2UuT2FjdXRlPTcyMjtlLm9hY3V0ZT01MDA7ZS5hbWFjcm9uPTQ0NDtlLnNhY3V0ZT0zODk7ZS5pZGllcmVzaXM9Mjc4O2UuT2NpcmN1bWZsZXg9NzIyO2UuVWdyYXZlPTcyMjtlLkRlbHRhPTYxMjtlLnRob3JuPTUwMDtlLnR3b3N1cGVyaW9yPTMwMDtlLk9kaWVyZXNpcz03MjI7ZS5tdT01MDA7ZS5pZ3JhdmU9Mjc4O2Uub2h1bmdhcnVtbGF1dD01MDA7ZS5Fb2dvbmVrPTYxMTtlLmRjcm9hdD01MDA7ZS50aHJlZXF1YXJ0ZXJzPTc1MDtlLlNjZWRpbGxhPTU1NjtlLmxjYXJvbj0zNDQ7ZS5LY29tbWFhY2NlbnQ9NzIyO2UuTGFjdXRlPTYxMTtlLnRyYWRlbWFyaz05ODA7ZS5lZG90YWNjZW50PTQ0NDtlLklncmF2ZT0zMzM7ZS5JbWFjcm9uPTMzMztlLkxjYXJvbj02MTE7ZS5vbmVoYWxmPTc1MDtlLmxlc3NlcXVhbD01NDk7ZS5vY2lyY3VtZmxleD01MDA7ZS5udGlsZGU9NTAwO2UuVWh1bmdhcnVtbGF1dD03MjI7ZS5FYWN1dGU9NjExO2UuZW1hY3Jvbj00NDQ7ZS5nYnJldmU9NTAwO2Uub25lcXVhcnRlcj03NTA7ZS5TY2Fyb249NTU2O2UuU2NvbW1hYWNjZW50PTU1NjtlLk9odW5nYXJ1bWxhdXQ9NzIyO2UuZGVncmVlPTQwMDtlLm9ncmF2ZT01MDA7ZS5DY2Fyb249NjY3O2UudWdyYXZlPTUwMDtlLnJhZGljYWw9NDUzO2UuRGNhcm9uPTcyMjtlLnJjb21tYWFjY2VudD0zMzM7ZS5OdGlsZGU9NzIyO2Uub3RpbGRlPTUwMDtlLlJjb21tYWFjY2VudD02Njc7ZS5MY29tbWFhY2NlbnQ9NjExO2UuQXRpbGRlPTcyMjtlLkFvZ29uZWs9NzIyO2UuQXJpbmc9NzIyO2UuT3RpbGRlPTcyMjtlLnpkb3RhY2NlbnQ9NDQ0O2UuRWNhcm9uPTYxMTtlLklvZ29uZWs9MzMzO2Uua2NvbW1hYWNjZW50PTUwMDtlLm1pbnVzPTU2NDtlLkljaXJjdW1mbGV4PTMzMztlLm5jYXJvbj01MDA7ZS50Y29tbWFhY2NlbnQ9Mjc4O2UubG9naWNhbG5vdD01NjQ7ZS5vZGllcmVzaXM9NTAwO2UudWRpZXJlc2lzPTUwMDtlLm5vdGVxdWFsPTU0OTtlLmdjb21tYWFjY2VudD01MDA7ZS5ldGg9NTAwO2UuemNhcm9uPTQ0NDtlLm5jb21tYWFjY2VudD01MDA7ZS5vbmVzdXBlcmlvcj0zMDA7ZS5pbWFjcm9uPTI3ODtlLkV1cm89NTAwfSk7ZVsiVGltZXMtQm9sZCJdPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlLnNwYWNlPTI1MDtlLmV4Y2xhbT0zMzM7ZS5xdW90ZWRibD01NTU7ZS5udW1iZXJzaWduPTUwMDtlLmRvbGxhcj01MDA7ZS5wZXJjZW50PTFlMztlLmFtcGVyc2FuZD04MzM7ZS5xdW90ZXJpZ2h0PTMzMztlLnBhcmVubGVmdD0zMzM7ZS5wYXJlbnJpZ2h0PTMzMztlLmFzdGVyaXNrPTUwMDtlLnBsdXM9NTcwO2UuY29tbWE9MjUwO2UuaHlwaGVuPTMzMztlLnBlcmlvZD0yNTA7ZS5zbGFzaD0yNzg7ZS56ZXJvPTUwMDtlLm9uZT01MDA7ZS50d289NTAwO2UudGhyZWU9NTAwO2UuZm91cj01MDA7ZS5maXZlPTUwMDtlLnNpeD01MDA7ZS5zZXZlbj01MDA7ZS5laWdodD01MDA7ZS5uaW5lPTUwMDtlLmNvbG9uPTMzMztlLnNlbWljb2xvbj0zMzM7ZS5sZXNzPTU3MDtlLmVxdWFsPTU3MDtlLmdyZWF0ZXI9NTcwO2UucXVlc3Rpb249NTAwO2UuYXQ9OTMwO2UuQT03MjI7ZS5CPTY2NztlLkM9NzIyO2UuRD03MjI7ZS5FPTY2NztlLkY9NjExO2UuRz03Nzg7ZS5IPTc3ODtlLkk9Mzg5O2UuSj01MDA7ZS5LPTc3ODtlLkw9NjY3O2UuTT05NDQ7ZS5OPTcyMjtlLk89Nzc4O2UuUD02MTE7ZS5RPTc3ODtlLlI9NzIyO2UuUz01NTY7ZS5UPTY2NztlLlU9NzIyO2UuVj03MjI7ZS5XPTFlMztlLlg9NzIyO2UuWT03MjI7ZS5aPTY2NztlLmJyYWNrZXRsZWZ0PTMzMztlLmJhY2tzbGFzaD0yNzg7ZS5icmFja2V0cmlnaHQ9MzMzO2UuYXNjaWljaXJjdW09NTgxO2UudW5kZXJzY29yZT01MDA7ZS5xdW90ZWxlZnQ9MzMzO2UuYT01MDA7ZS5iPTU1NjtlLmM9NDQ0O2UuZD01NTY7ZS5lPTQ0NDtlLmY9MzMzO2UuZz01MDA7ZS5oPTU1NjtlLmk9Mjc4O2Uuaj0zMzM7ZS5rPTU1NjtlLmw9Mjc4O2UubT04MzM7ZS5uPTU1NjtlLm89NTAwO2UucD01NTY7ZS5xPTU1NjtlLnI9NDQ0O2Uucz0zODk7ZS50PTMzMztlLnU9NTU2O2Uudj01MDA7ZS53PTcyMjtlLng9NTAwO2UueT01MDA7ZS56PTQ0NDtlLmJyYWNlbGVmdD0zOTQ7ZS5iYXI9MjIwO2UuYnJhY2VyaWdodD0zOTQ7ZS5hc2NpaXRpbGRlPTUyMDtlLmV4Y2xhbWRvd249MzMzO2UuY2VudD01MDA7ZS5zdGVybGluZz01MDA7ZS5mcmFjdGlvbj0xNjc7ZS55ZW49NTAwO2UuZmxvcmluPTUwMDtlLnNlY3Rpb249NTAwO2UuY3VycmVuY3k9NTAwO2UucXVvdGVzaW5nbGU9Mjc4O2UucXVvdGVkYmxsZWZ0PTUwMDtlLmd1aWxsZW1vdGxlZnQ9NTAwO2UuZ3VpbHNpbmdsbGVmdD0zMzM7ZS5ndWlsc2luZ2xyaWdodD0zMzM7ZS5maT01NTY7ZS5mbD01NTY7ZS5lbmRhc2g9NTAwO2UuZGFnZ2VyPTUwMDtlLmRhZ2dlcmRibD01MDA7ZS5wZXJpb2RjZW50ZXJlZD0yNTA7ZS5wYXJhZ3JhcGg9NTQwO2UuYnVsbGV0PTM1MDtlLnF1b3Rlc2luZ2xiYXNlPTMzMztlLnF1b3RlZGJsYmFzZT01MDA7ZS5xdW90ZWRibHJpZ2h0PTUwMDtlLmd1aWxsZW1vdHJpZ2h0PTUwMDtlLmVsbGlwc2lzPTFlMztlLnBlcnRob3VzYW5kPTFlMztlLnF1ZXN0aW9uZG93bj01MDA7ZS5ncmF2ZT0zMzM7ZS5hY3V0ZT0zMzM7ZS5jaXJjdW1mbGV4PTMzMztlLnRpbGRlPTMzMztlLm1hY3Jvbj0zMzM7ZS5icmV2ZT0zMzM7ZS5kb3RhY2NlbnQ9MzMzO2UuZGllcmVzaXM9MzMzO2UucmluZz0zMzM7ZS5jZWRpbGxhPTMzMztlLmh1bmdhcnVtbGF1dD0zMzM7ZS5vZ29uZWs9MzMzO2UuY2Fyb249MzMzO2UuZW1kYXNoPTFlMztlLkFFPTFlMztlLm9yZGZlbWluaW5lPTMwMDtlLkxzbGFzaD02Njc7ZS5Pc2xhc2g9Nzc4O2UuT0U9MWUzO2Uub3JkbWFzY3VsaW5lPTMzMDtlLmFlPTcyMjtlLmRvdGxlc3NpPTI3ODtlLmxzbGFzaD0yNzg7ZS5vc2xhc2g9NTAwO2Uub2U9NzIyO2UuZ2VybWFuZGJscz01NTY7ZS5JZGllcmVzaXM9Mzg5O2UuZWFjdXRlPTQ0NDtlLmFicmV2ZT01MDA7ZS51aHVuZ2FydW1sYXV0PTU1NjtlLmVjYXJvbj00NDQ7ZS5ZZGllcmVzaXM9NzIyO2UuZGl2aWRlPTU3MDtlLllhY3V0ZT03MjI7ZS5BY2lyY3VtZmxleD03MjI7ZS5hYWN1dGU9NTAwO2UuVWNpcmN1bWZsZXg9NzIyO2UueWFjdXRlPTUwMDtlLnNjb21tYWFjY2VudD0zODk7ZS5lY2lyY3VtZmxleD00NDQ7ZS5VcmluZz03MjI7ZS5VZGllcmVzaXM9NzIyO2UuYW9nb25laz01MDA7ZS5VYWN1dGU9NzIyO2UudW9nb25laz01NTY7ZS5FZGllcmVzaXM9NjY3O2UuRGNyb2F0PTcyMjtlLmNvbW1hYWNjZW50PTI1MDtlLmNvcHlyaWdodD03NDc7ZS5FbWFjcm9uPTY2NztlLmNjYXJvbj00NDQ7ZS5hcmluZz01MDA7ZS5OY29tbWFhY2NlbnQ9NzIyO2UubGFjdXRlPTI3ODtlLmFncmF2ZT01MDA7ZS5UY29tbWFhY2NlbnQ9NjY3O2UuQ2FjdXRlPTcyMjtlLmF0aWxkZT01MDA7ZS5FZG90YWNjZW50PTY2NztlLnNjYXJvbj0zODk7ZS5zY2VkaWxsYT0zODk7ZS5pYWN1dGU9Mjc4O2UubG96ZW5nZT00OTQ7ZS5SY2Fyb249NzIyO2UuR2NvbW1hYWNjZW50PTc3ODtlLnVjaXJjdW1mbGV4PTU1NjtlLmFjaXJjdW1mbGV4PTUwMDtlLkFtYWNyb249NzIyO2UucmNhcm9uPTQ0NDtlLmNjZWRpbGxhPTQ0NDtlLlpkb3RhY2NlbnQ9NjY3O2UuVGhvcm49NjExO2UuT21hY3Jvbj03Nzg7ZS5SYWN1dGU9NzIyO2UuU2FjdXRlPTU1NjtlLmRjYXJvbj02NzI7ZS5VbWFjcm9uPTcyMjtlLnVyaW5nPTU1NjtlLnRocmVlc3VwZXJpb3I9MzAwO2UuT2dyYXZlPTc3ODtlLkFncmF2ZT03MjI7ZS5BYnJldmU9NzIyO2UubXVsdGlwbHk9NTcwO2UudWFjdXRlPTU1NjtlLlRjYXJvbj02Njc7ZS5wYXJ0aWFsZGlmZj00OTQ7ZS55ZGllcmVzaXM9NTAwO2UuTmFjdXRlPTcyMjtlLmljaXJjdW1mbGV4PTI3ODtlLkVjaXJjdW1mbGV4PTY2NztlLmFkaWVyZXNpcz01MDA7ZS5lZGllcmVzaXM9NDQ0O2UuY2FjdXRlPTQ0NDtlLm5hY3V0ZT01NTY7ZS51bWFjcm9uPTU1NjtlLk5jYXJvbj03MjI7ZS5JYWN1dGU9Mzg5O2UucGx1c21pbnVzPTU3MDtlLmJyb2tlbmJhcj0yMjA7ZS5yZWdpc3RlcmVkPTc0NztlLkdicmV2ZT03Nzg7ZS5JZG90YWNjZW50PTM4OTtlLnN1bW1hdGlvbj02MDA7ZS5FZ3JhdmU9NjY3O2UucmFjdXRlPTQ0NDtlLm9tYWNyb249NTAwO2UuWmFjdXRlPTY2NztlLlpjYXJvbj02Njc7ZS5ncmVhdGVyZXF1YWw9NTQ5O2UuRXRoPTcyMjtlLkNjZWRpbGxhPTcyMjtlLmxjb21tYWFjY2VudD0yNzg7ZS50Y2Fyb249NDE2O2UuZW9nb25laz00NDQ7ZS5Vb2dvbmVrPTcyMjtlLkFhY3V0ZT03MjI7ZS5BZGllcmVzaXM9NzIyO2UuZWdyYXZlPTQ0NDtlLnphY3V0ZT00NDQ7ZS5pb2dvbmVrPTI3ODtlLk9hY3V0ZT03Nzg7ZS5vYWN1dGU9NTAwO2UuYW1hY3Jvbj01MDA7ZS5zYWN1dGU9Mzg5O2UuaWRpZXJlc2lzPTI3ODtlLk9jaXJjdW1mbGV4PTc3ODtlLlVncmF2ZT03MjI7ZS5EZWx0YT02MTI7ZS50aG9ybj01NTY7ZS50d29zdXBlcmlvcj0zMDA7ZS5PZGllcmVzaXM9Nzc4O2UubXU9NTU2O2UuaWdyYXZlPTI3ODtlLm9odW5nYXJ1bWxhdXQ9NTAwO2UuRW9nb25laz02Njc7ZS5kY3JvYXQ9NTU2O2UudGhyZWVxdWFydGVycz03NTA7ZS5TY2VkaWxsYT01NTY7ZS5sY2Fyb249Mzk0O2UuS2NvbW1hYWNjZW50PTc3ODtlLkxhY3V0ZT02Njc7ZS50cmFkZW1hcms9MWUzO2UuZWRvdGFjY2VudD00NDQ7ZS5JZ3JhdmU9Mzg5O2UuSW1hY3Jvbj0zODk7ZS5MY2Fyb249NjY3O2Uub25laGFsZj03NTA7ZS5sZXNzZXF1YWw9NTQ5O2Uub2NpcmN1bWZsZXg9NTAwO2UubnRpbGRlPTU1NjtlLlVodW5nYXJ1bWxhdXQ9NzIyO2UuRWFjdXRlPTY2NztlLmVtYWNyb249NDQ0O2UuZ2JyZXZlPTUwMDtlLm9uZXF1YXJ0ZXI9NzUwO2UuU2Nhcm9uPTU1NjtlLlNjb21tYWFjY2VudD01NTY7ZS5PaHVuZ2FydW1sYXV0PTc3ODtlLmRlZ3JlZT00MDA7ZS5vZ3JhdmU9NTAwO2UuQ2Nhcm9uPTcyMjtlLnVncmF2ZT01NTY7ZS5yYWRpY2FsPTU0OTtlLkRjYXJvbj03MjI7ZS5yY29tbWFhY2NlbnQ9NDQ0O2UuTnRpbGRlPTcyMjtlLm90aWxkZT01MDA7ZS5SY29tbWFhY2NlbnQ9NzIyO2UuTGNvbW1hYWNjZW50PTY2NztlLkF0aWxkZT03MjI7ZS5Bb2dvbmVrPTcyMjtlLkFyaW5nPTcyMjtlLk90aWxkZT03Nzg7ZS56ZG90YWNjZW50PTQ0NDtlLkVjYXJvbj02Njc7ZS5Jb2dvbmVrPTM4OTtlLmtjb21tYWFjY2VudD01NTY7ZS5taW51cz01NzA7ZS5JY2lyY3VtZmxleD0zODk7ZS5uY2Fyb249NTU2O2UudGNvbW1hYWNjZW50PTMzMztlLmxvZ2ljYWxub3Q9NTcwO2Uub2RpZXJlc2lzPTUwMDtlLnVkaWVyZXNpcz01NTY7ZS5ub3RlcXVhbD01NDk7ZS5nY29tbWFhY2NlbnQ9NTAwO2UuZXRoPTUwMDtlLnpjYXJvbj00NDQ7ZS5uY29tbWFhY2NlbnQ9NTU2O2Uub25lc3VwZXJpb3I9MzAwO2UuaW1hY3Jvbj0yNzg7ZS5FdXJvPTUwMH0pO2VbIlRpbWVzLUJvbGRJdGFsaWMiXT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09Mzg5O2UucXVvdGVkYmw9NTU1O2UubnVtYmVyc2lnbj01MDA7ZS5kb2xsYXI9NTAwO2UucGVyY2VudD04MzM7ZS5hbXBlcnNhbmQ9Nzc4O2UucXVvdGVyaWdodD0zMzM7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz01MDA7ZS5wbHVzPTU3MDtlLmNvbW1hPTI1MDtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9MjUwO2Uuc2xhc2g9Mjc4O2UuemVybz01MDA7ZS5vbmU9NTAwO2UudHdvPTUwMDtlLnRocmVlPTUwMDtlLmZvdXI9NTAwO2UuZml2ZT01MDA7ZS5zaXg9NTAwO2Uuc2V2ZW49NTAwO2UuZWlnaHQ9NTAwO2UubmluZT01MDA7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz01NzA7ZS5lcXVhbD01NzA7ZS5ncmVhdGVyPTU3MDtlLnF1ZXN0aW9uPTUwMDtlLmF0PTgzMjtlLkE9NjY3O2UuQj02Njc7ZS5DPTY2NztlLkQ9NzIyO2UuRT02Njc7ZS5GPTY2NztlLkc9NzIyO2UuSD03Nzg7ZS5JPTM4OTtlLko9NTAwO2UuSz02Njc7ZS5MPTYxMTtlLk09ODg5O2UuTj03MjI7ZS5PPTcyMjtlLlA9NjExO2UuUT03MjI7ZS5SPTY2NztlLlM9NTU2O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz04ODk7ZS5YPTY2NztlLlk9NjExO2UuWj02MTE7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTU3MDtlLnVuZGVyc2NvcmU9NTAwO2UucXVvdGVsZWZ0PTMzMztlLmE9NTAwO2UuYj01MDA7ZS5jPTQ0NDtlLmQ9NTAwO2UuZT00NDQ7ZS5mPTMzMztlLmc9NTAwO2UuaD01NTY7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz01MDA7ZS5sPTI3ODtlLm09Nzc4O2Uubj01NTY7ZS5vPTUwMDtlLnA9NTAwO2UucT01MDA7ZS5yPTM4OTtlLnM9Mzg5O2UudD0yNzg7ZS51PTU1NjtlLnY9NDQ0O2Uudz02Njc7ZS54PTUwMDtlLnk9NDQ0O2Uuej0zODk7ZS5icmFjZWxlZnQ9MzQ4O2UuYmFyPTIyMDtlLmJyYWNlcmlnaHQ9MzQ4O2UuYXNjaWl0aWxkZT01NzA7ZS5leGNsYW1kb3duPTM4OTtlLmNlbnQ9NTAwO2Uuc3Rlcmxpbmc9NTAwO2UuZnJhY3Rpb249MTY3O2UueWVuPTUwMDtlLmZsb3Jpbj01MDA7ZS5zZWN0aW9uPTUwMDtlLmN1cnJlbmN5PTUwMDtlLnF1b3Rlc2luZ2xlPTI3ODtlLnF1b3RlZGJsbGVmdD01MDA7ZS5ndWlsbGVtb3RsZWZ0PTUwMDtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NTU2O2UuZmw9NTU2O2UuZW5kYXNoPTUwMDtlLmRhZ2dlcj01MDA7ZS5kYWdnZXJkYmw9NTAwO2UucGVyaW9kY2VudGVyZWQ9MjUwO2UucGFyYWdyYXBoPTUwMDtlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0zMzM7ZS5xdW90ZWRibGJhc2U9NTAwO2UucXVvdGVkYmxyaWdodD01MDA7ZS5ndWlsbGVtb3RyaWdodD01MDA7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NTAwO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT05NDQ7ZS5vcmRmZW1pbmluZT0yNjY7ZS5Mc2xhc2g9NjExO2UuT3NsYXNoPTcyMjtlLk9FPTk0NDtlLm9yZG1hc2N1bGluZT0zMDA7ZS5hZT03MjI7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTUwMDtlLm9lPTcyMjtlLmdlcm1hbmRibHM9NTAwO2UuSWRpZXJlc2lzPTM4OTtlLmVhY3V0ZT00NDQ7ZS5hYnJldmU9NTAwO2UudWh1bmdhcnVtbGF1dD01NTY7ZS5lY2Fyb249NDQ0O2UuWWRpZXJlc2lzPTYxMTtlLmRpdmlkZT01NzA7ZS5ZYWN1dGU9NjExO2UuQWNpcmN1bWZsZXg9NjY3O2UuYWFjdXRlPTUwMDtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT00NDQ7ZS5zY29tbWFhY2NlbnQ9Mzg5O2UuZWNpcmN1bWZsZXg9NDQ0O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTAwO2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NTU2O2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzQ3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NDQ0O2UuYXJpbmc9NTAwO2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTAwO2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT02Njc7ZS5hdGlsZGU9NTAwO2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249Mzg5O2Uuc2NlZGlsbGE9Mzg5O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDk0O2UuUmNhcm9uPTY2NztlLkdjb21tYWFjY2VudD03MjI7ZS51Y2lyY3VtZmxleD01NTY7ZS5hY2lyY3VtZmxleD01MDA7ZS5BbWFjcm9uPTY2NztlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT00NDQ7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTYxMTtlLk9tYWNyb249NzIyO2UuUmFjdXRlPTY2NztlLlNhY3V0ZT01NTY7ZS5kY2Fyb249NjA4O2UuVW1hY3Jvbj03MjI7ZS51cmluZz01NTY7ZS50aHJlZXN1cGVyaW9yPTMwMDtlLk9ncmF2ZT03MjI7ZS5BZ3JhdmU9NjY3O2UuQWJyZXZlPTY2NztlLm11bHRpcGx5PTU3MDtlLnVhY3V0ZT01NTY7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDk0O2UueWRpZXJlc2lzPTQ0NDtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTAwO2UuZWRpZXJlc2lzPTQ0NDtlLmNhY3V0ZT00NDQ7ZS5uYWN1dGU9NTU2O2UudW1hY3Jvbj01NTY7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTM4OTtlLnBsdXNtaW51cz01NzA7ZS5icm9rZW5iYXI9MjIwO2UucmVnaXN0ZXJlZD03NDc7ZS5HYnJldmU9NzIyO2UuSWRvdGFjY2VudD0zODk7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTUwMDtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT02Njc7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTM2NjtlLmVvZ29uZWs9NDQ0O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NjY3O2UuQWRpZXJlc2lzPTY2NztlLmVncmF2ZT00NDQ7ZS56YWN1dGU9Mzg5O2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9NzIyO2Uub2FjdXRlPTUwMDtlLmFtYWNyb249NTAwO2Uuc2FjdXRlPTM4OTtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03MjI7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NTAwO2UudHdvc3VwZXJpb3I9MzAwO2UuT2RpZXJlc2lzPTcyMjtlLm11PTU3NjtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTUwMDtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTUwMDtlLnRocmVlcXVhcnRlcnM9NzUwO2UuU2NlZGlsbGE9NTU2O2UubGNhcm9uPTM4MjtlLktjb21tYWFjY2VudD02Njc7ZS5MYWN1dGU9NjExO2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NDQ0O2UuSWdyYXZlPTM4OTtlLkltYWNyb249Mzg5O2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9NzUwO2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTUwMDtlLm50aWxkZT01NTY7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTQ0NDtlLmdicmV2ZT01MDA7ZS5vbmVxdWFydGVyPTc1MDtlLlNjYXJvbj01NTY7ZS5TY29tbWFhY2NlbnQ9NTU2O2UuT2h1bmdhcnVtbGF1dD03MjI7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTUwMDtlLkNjYXJvbj02Njc7ZS51Z3JhdmU9NTU2O2UucmFkaWNhbD01NDk7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT03MjI7ZS5vdGlsZGU9NTAwO2UuUmNvbW1hYWNjZW50PTY2NztlLkxjb21tYWFjY2VudD02MTE7ZS5BdGlsZGU9NjY3O2UuQW9nb25laz02Njc7ZS5BcmluZz02Njc7ZS5PdGlsZGU9NzIyO2UuemRvdGFjY2VudD0zODk7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0zODk7ZS5rY29tbWFhY2NlbnQ9NTAwO2UubWludXM9NjA2O2UuSWNpcmN1bWZsZXg9Mzg5O2UubmNhcm9uPTU1NjtlLnRjb21tYWFjY2VudD0yNzg7ZS5sb2dpY2Fsbm90PTYwNjtlLm9kaWVyZXNpcz01MDA7ZS51ZGllcmVzaXM9NTU2O2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTUwMDtlLmV0aD01MDA7ZS56Y2Fyb249Mzg5O2UubmNvbW1hYWNjZW50PTU1NjtlLm9uZXN1cGVyaW9yPTMwMDtlLmltYWNyb249Mjc4O2UuRXVybz01MDB9KTtlWyJUaW1lcy1JdGFsaWMiXT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09MzMzO2UucXVvdGVkYmw9NDIwO2UubnVtYmVyc2lnbj01MDA7ZS5kb2xsYXI9NTAwO2UucGVyY2VudD04MzM7ZS5hbXBlcnNhbmQ9Nzc4O2UucXVvdGVyaWdodD0zMzM7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz01MDA7ZS5wbHVzPTY3NTtlLmNvbW1hPTI1MDtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9MjUwO2Uuc2xhc2g9Mjc4O2UuemVybz01MDA7ZS5vbmU9NTAwO2UudHdvPTUwMDtlLnRocmVlPTUwMDtlLmZvdXI9NTAwO2UuZml2ZT01MDA7ZS5zaXg9NTAwO2Uuc2V2ZW49NTAwO2UuZWlnaHQ9NTAwO2UubmluZT01MDA7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz02NzU7ZS5lcXVhbD02NzU7ZS5ncmVhdGVyPTY3NTtlLnF1ZXN0aW9uPTUwMDtlLmF0PTkyMDtlLkE9NjExO2UuQj02MTE7ZS5DPTY2NztlLkQ9NzIyO2UuRT02MTE7ZS5GPTYxMTtlLkc9NzIyO2UuSD03MjI7ZS5JPTMzMztlLko9NDQ0O2UuSz02Njc7ZS5MPTU1NjtlLk09ODMzO2UuTj02Njc7ZS5PPTcyMjtlLlA9NjExO2UuUT03MjI7ZS5SPTYxMTtlLlM9NTAwO2UuVD01NTY7ZS5VPTcyMjtlLlY9NjExO2UuVz04MzM7ZS5YPTYxMTtlLlk9NTU2O2UuWj01NTY7ZS5icmFja2V0bGVmdD0zODk7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTM4OTtlLmFzY2lpY2lyY3VtPTQyMjtlLnVuZGVyc2NvcmU9NTAwO2UucXVvdGVsZWZ0PTMzMztlLmE9NTAwO2UuYj01MDA7ZS5jPTQ0NDtlLmQ9NTAwO2UuZT00NDQ7ZS5mPTI3ODtlLmc9NTAwO2UuaD01MDA7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz00NDQ7ZS5sPTI3ODtlLm09NzIyO2Uubj01MDA7ZS5vPTUwMDtlLnA9NTAwO2UucT01MDA7ZS5yPTM4OTtlLnM9Mzg5O2UudD0yNzg7ZS51PTUwMDtlLnY9NDQ0O2Uudz02Njc7ZS54PTQ0NDtlLnk9NDQ0O2Uuej0zODk7ZS5icmFjZWxlZnQ9NDAwO2UuYmFyPTI3NTtlLmJyYWNlcmlnaHQ9NDAwO2UuYXNjaWl0aWxkZT01NDE7ZS5leGNsYW1kb3duPTM4OTtlLmNlbnQ9NTAwO2Uuc3Rlcmxpbmc9NTAwO2UuZnJhY3Rpb249MTY3O2UueWVuPTUwMDtlLmZsb3Jpbj01MDA7ZS5zZWN0aW9uPTUwMDtlLmN1cnJlbmN5PTUwMDtlLnF1b3Rlc2luZ2xlPTIxNDtlLnF1b3RlZGJsbGVmdD01NTY7ZS5ndWlsbGVtb3RsZWZ0PTUwMDtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NTAwO2UuZmw9NTAwO2UuZW5kYXNoPTUwMDtlLmRhZ2dlcj01MDA7ZS5kYWdnZXJkYmw9NTAwO2UucGVyaW9kY2VudGVyZWQ9MjUwO2UucGFyYWdyYXBoPTUyMztlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0zMzM7ZS5xdW90ZWRibGJhc2U9NTU2O2UucXVvdGVkYmxyaWdodD01NTY7ZS5ndWlsbGVtb3RyaWdodD01MDA7ZS5lbGxpcHNpcz04ODk7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NTAwO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD04ODk7ZS5BRT04ODk7ZS5vcmRmZW1pbmluZT0yNzY7ZS5Mc2xhc2g9NTU2O2UuT3NsYXNoPTcyMjtlLk9FPTk0NDtlLm9yZG1hc2N1bGluZT0zMTA7ZS5hZT02Njc7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTUwMDtlLm9lPTY2NztlLmdlcm1hbmRibHM9NTAwO2UuSWRpZXJlc2lzPTMzMztlLmVhY3V0ZT00NDQ7ZS5hYnJldmU9NTAwO2UudWh1bmdhcnVtbGF1dD01MDA7ZS5lY2Fyb249NDQ0O2UuWWRpZXJlc2lzPTU1NjtlLmRpdmlkZT02NzU7ZS5ZYWN1dGU9NTU2O2UuQWNpcmN1bWZsZXg9NjExO2UuYWFjdXRlPTUwMDtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT00NDQ7ZS5zY29tbWFhY2NlbnQ9Mzg5O2UuZWNpcmN1bWZsZXg9NDQ0O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTAwO2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NTAwO2UuRWRpZXJlc2lzPTYxMTtlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzYwO2UuRW1hY3Jvbj02MTE7ZS5jY2Fyb249NDQ0O2UuYXJpbmc9NTAwO2UuTmNvbW1hYWNjZW50PTY2NztlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTAwO2UuVGNvbW1hYWNjZW50PTU1NjtlLkNhY3V0ZT02Njc7ZS5hdGlsZGU9NTAwO2UuRWRvdGFjY2VudD02MTE7ZS5zY2Fyb249Mzg5O2Uuc2NlZGlsbGE9Mzg5O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDcxO2UuUmNhcm9uPTYxMTtlLkdjb21tYWFjY2VudD03MjI7ZS51Y2lyY3VtZmxleD01MDA7ZS5hY2lyY3VtZmxleD01MDA7ZS5BbWFjcm9uPTYxMTtlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT00NDQ7ZS5aZG90YWNjZW50PTU1NjtlLlRob3JuPTYxMTtlLk9tYWNyb249NzIyO2UuUmFjdXRlPTYxMTtlLlNhY3V0ZT01MDA7ZS5kY2Fyb249NTQ0O2UuVW1hY3Jvbj03MjI7ZS51cmluZz01MDA7ZS50aHJlZXN1cGVyaW9yPTMwMDtlLk9ncmF2ZT03MjI7ZS5BZ3JhdmU9NjExO2UuQWJyZXZlPTYxMTtlLm11bHRpcGx5PTY3NTtlLnVhY3V0ZT01MDA7ZS5UY2Fyb249NTU2O2UucGFydGlhbGRpZmY9NDc2O2UueWRpZXJlc2lzPTQ0NDtlLk5hY3V0ZT02Njc7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02MTE7ZS5hZGllcmVzaXM9NTAwO2UuZWRpZXJlc2lzPTQ0NDtlLmNhY3V0ZT00NDQ7ZS5uYWN1dGU9NTAwO2UudW1hY3Jvbj01MDA7ZS5OY2Fyb249NjY3O2UuSWFjdXRlPTMzMztlLnBsdXNtaW51cz02NzU7ZS5icm9rZW5iYXI9Mjc1O2UucmVnaXN0ZXJlZD03NjA7ZS5HYnJldmU9NzIyO2UuSWRvdGFjY2VudD0zMzM7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTYxMTtlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTUwMDtlLlphY3V0ZT01NTY7ZS5aY2Fyb249NTU2O2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT02Njc7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTMwMDtlLmVvZ29uZWs9NDQ0O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NjExO2UuQWRpZXJlc2lzPTYxMTtlLmVncmF2ZT00NDQ7ZS56YWN1dGU9Mzg5O2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9NzIyO2Uub2FjdXRlPTUwMDtlLmFtYWNyb249NTAwO2Uuc2FjdXRlPTM4OTtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03MjI7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NTAwO2UudHdvc3VwZXJpb3I9MzAwO2UuT2RpZXJlc2lzPTcyMjtlLm11PTUwMDtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTUwMDtlLkVvZ29uZWs9NjExO2UuZGNyb2F0PTUwMDtlLnRocmVlcXVhcnRlcnM9NzUwO2UuU2NlZGlsbGE9NTAwO2UubGNhcm9uPTMwMDtlLktjb21tYWFjY2VudD02Njc7ZS5MYWN1dGU9NTU2O2UudHJhZGVtYXJrPTk4MDtlLmVkb3RhY2NlbnQ9NDQ0O2UuSWdyYXZlPTMzMztlLkltYWNyb249MzMzO2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9NzUwO2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTUwMDtlLm50aWxkZT01MDA7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02MTE7ZS5lbWFjcm9uPTQ0NDtlLmdicmV2ZT01MDA7ZS5vbmVxdWFydGVyPTc1MDtlLlNjYXJvbj01MDA7ZS5TY29tbWFhY2NlbnQ9NTAwO2UuT2h1bmdhcnVtbGF1dD03MjI7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTUwMDtlLkNjYXJvbj02Njc7ZS51Z3JhdmU9NTAwO2UucmFkaWNhbD00NTM7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT02Njc7ZS5vdGlsZGU9NTAwO2UuUmNvbW1hYWNjZW50PTYxMTtlLkxjb21tYWFjY2VudD01NTY7ZS5BdGlsZGU9NjExO2UuQW9nb25laz02MTE7ZS5BcmluZz02MTE7ZS5PdGlsZGU9NzIyO2UuemRvdGFjY2VudD0zODk7ZS5FY2Fyb249NjExO2UuSW9nb25laz0zMzM7ZS5rY29tbWFhY2NlbnQ9NDQ0O2UubWludXM9Njc1O2UuSWNpcmN1bWZsZXg9MzMzO2UubmNhcm9uPTUwMDtlLnRjb21tYWFjY2VudD0yNzg7ZS5sb2dpY2Fsbm90PTY3NTtlLm9kaWVyZXNpcz01MDA7ZS51ZGllcmVzaXM9NTAwO2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTUwMDtlLmV0aD01MDA7ZS56Y2Fyb249Mzg5O2UubmNvbW1hYWNjZW50PTUwMDtlLm9uZXN1cGVyaW9yPTMwMDtlLmltYWNyb249Mjc4O2UuRXVybz01MDB9KTtlLlphcGZEaW5nYmF0cz1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5hMT05NzQ7ZS5hMj05NjE7ZS5hMjAyPTk3NDtlLmEzPTk4MDtlLmE0PTcxOTtlLmE1PTc4OTtlLmExMTk9NzkwO2UuYTExOD03OTE7ZS5hMTE3PTY5MDtlLmExMT05NjA7ZS5hMTI9OTM5O2UuYTEzPTU0OTtlLmExND04NTU7ZS5hMTU9OTExO2UuYTE2PTkzMztlLmExMDU9OTExO2UuYTE3PTk0NTtlLmExOD05NzQ7ZS5hMTk9NzU1O2UuYTIwPTg0NjtlLmEyMT03NjI7ZS5hMjI9NzYxO2UuYTIzPTU3MTtlLmEyND02Nzc7ZS5hMjU9NzYzO2UuYTI2PTc2MDtlLmEyNz03NTk7ZS5hMjg9NzU0O2UuYTY9NDk0O2UuYTc9NTUyO2UuYTg9NTM3O2UuYTk9NTc3O2UuYTEwPTY5MjtlLmEyOT03ODY7ZS5hMzA9Nzg4O2UuYTMxPTc4ODtlLmEzMj03OTA7ZS5hMzM9NzkzO2UuYTM0PTc5NDtlLmEzNT04MTY7ZS5hMzY9ODIzO2UuYTM3PTc4OTtlLmEzOD04NDE7ZS5hMzk9ODIzO2UuYTQwPTgzMztlLmE0MT04MTY7ZS5hNDI9ODMxO2UuYTQzPTkyMztlLmE0ND03NDQ7ZS5hNDU9NzIzO2UuYTQ2PTc0OTtlLmE0Nz03OTA7ZS5hNDg9NzkyO2UuYTQ5PTY5NTtlLmE1MD03NzY7ZS5hNTE9NzY4O2UuYTUyPTc5MjtlLmE1Mz03NTk7ZS5hNTQ9NzA3O2UuYTU1PTcwODtlLmE1Nj02ODI7ZS5hNTc9NzAxO2UuYTU4PTgyNjtlLmE1OT04MTU7ZS5hNjA9Nzg5O2UuYTYxPTc4OTtlLmE2Mj03MDc7ZS5hNjM9Njg3O2UuYTY0PTY5NjtlLmE2NT02ODk7ZS5hNjY9Nzg2O2UuYTY3PTc4NztlLmE2OD03MTM7ZS5hNjk9NzkxO2UuYTcwPTc4NTtlLmE3MT03OTE7ZS5hNzI9ODczO2UuYTczPTc2MTtlLmE3ND03NjI7ZS5hMjAzPTc2MjtlLmE3NT03NTk7ZS5hMjA0PTc1OTtlLmE3Nj04OTI7ZS5hNzc9ODkyO2UuYTc4PTc4ODtlLmE3OT03ODQ7ZS5hODE9NDM4O2UuYTgyPTEzODtlLmE4Mz0yNzc7ZS5hODQ9NDE1O2UuYTk3PTM5MjtlLmE5OD0zOTI7ZS5hOTk9NjY4O2UuYTEwMD02Njg7ZS5hODk9MzkwO2UuYTkwPTM5MDtlLmE5Mz0zMTc7ZS5hOTQ9MzE3O2UuYTkxPTI3NjtlLmE5Mj0yNzY7ZS5hMjA1PTUwOTtlLmE4NT01MDk7ZS5hMjA2PTQxMDtlLmE4Nj00MTA7ZS5hODc9MjM0O2UuYTg4PTIzNDtlLmE5NT0zMzQ7ZS5hOTY9MzM0O2UuYTEwMT03MzI7ZS5hMTAyPTU0NDtlLmExMDM9NTQ0O2UuYTEwND05MTA7ZS5hMTA2PTY2NztlLmExMDc9NzYwO2UuYTEwOD03NjA7ZS5hMTEyPTc3NjtlLmExMTE9NTk1O2UuYTExMD02OTQ7ZS5hMTA5PTYyNjtlLmExMjA9Nzg4O2UuYTEyMT03ODg7ZS5hMTIyPTc4ODtlLmExMjM9Nzg4O2UuYTEyND03ODg7ZS5hMTI1PTc4ODtlLmExMjY9Nzg4O2UuYTEyNz03ODg7ZS5hMTI4PTc4ODtlLmExMjk9Nzg4O2UuYTEzMD03ODg7ZS5hMTMxPTc4ODtlLmExMzI9Nzg4O2UuYTEzMz03ODg7ZS5hMTM0PTc4ODtlLmExMzU9Nzg4O2UuYTEzNj03ODg7ZS5hMTM3PTc4ODtlLmExMzg9Nzg4O2UuYTEzOT03ODg7ZS5hMTQwPTc4ODtlLmExNDE9Nzg4O2UuYTE0Mj03ODg7ZS5hMTQzPTc4ODtlLmExNDQ9Nzg4O2UuYTE0NT03ODg7ZS5hMTQ2PTc4ODtlLmExNDc9Nzg4O2UuYTE0OD03ODg7ZS5hMTQ5PTc4ODtlLmExNTA9Nzg4O2UuYTE1MT03ODg7ZS5hMTUyPTc4ODtlLmExNTM9Nzg4O2UuYTE1ND03ODg7ZS5hMTU1PTc4ODtlLmExNTY9Nzg4O2UuYTE1Nz03ODg7ZS5hMTU4PTc4ODtlLmExNTk9Nzg4O2UuYTE2MD04OTQ7ZS5hMTYxPTgzODtlLmExNjM9MTAxNjtlLmExNjQ9NDU4O2UuYTE5Nj03NDg7ZS5hMTY1PTkyNDtlLmExOTI9NzQ4O2UuYTE2Nj05MTg7ZS5hMTY3PTkyNztlLmExNjg9OTI4O2UuYTE2OT05Mjg7ZS5hMTcwPTgzNDtlLmExNzE9ODczO2UuYTE3Mj04Mjg7ZS5hMTczPTkyNDtlLmExNjI9OTI0O2UuYTE3ND05MTc7ZS5hMTc1PTkzMDtlLmExNzY9OTMxO2UuYTE3Nz00NjM7ZS5hMTc4PTg4MztlLmExNzk9ODM2O2UuYTE5Mz04MzY7ZS5hMTgwPTg2NztlLmExOTk9ODY3O2UuYTE4MT02OTY7ZS5hMjAwPTY5NjtlLmExODI9ODc0O2UuYTIwMT04NzQ7ZS5hMTgzPTc2MDtlLmExODQ9OTQ2O2UuYTE5Nz03NzE7ZS5hMTg1PTg2NTtlLmExOTQ9NzcxO2UuYTE5OD04ODg7ZS5hMTg2PTk2NztlLmExOTU9ODg4O2UuYTE4Nz04MzE7ZS5hMTg4PTg3MztlLmExODk9OTI3O2UuYTE5MD05NzA7ZS5hMTkxPTkxOH0pfSksVmE9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2UuQ291cmllcj17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0Oi00MjZ9O2VbIkNvdXJpZXItQm9sZCJdPXthc2NlbnQ6NjI5LGRlc2NlbnQ6LTE1NyxjYXBIZWlnaHQ6NTYyLHhIZWlnaHQ6NDM5fTtlWyJDb3VyaWVyLU9ibGlxdWUiXT17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0OjQyNn07ZVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPXthc2NlbnQ6NjI5LGRlc2NlbnQ6LTE1NyxjYXBIZWlnaHQ6NTYyLHhIZWlnaHQ6NDI2fTtlLkhlbHZldGljYT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUyM307ZVsiSGVsdmV0aWNhLUJvbGQiXT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUzMn07ZVsiSGVsdmV0aWNhLU9ibGlxdWUiXT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUyM307ZVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09e2FzY2VudDo3MTgsZGVzY2VudDotMjA3LGNhcEhlaWdodDo3MTgseEhlaWdodDo1MzJ9O2VbIlRpbWVzLVJvbWFuIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NjIseEhlaWdodDo0NTB9O2VbIlRpbWVzLUJvbGQiXT17YXNjZW50OjY4MyxkZXNjZW50Oi0yMTcsY2FwSGVpZ2h0OjY3Nix4SGVpZ2h0OjQ2MX07ZVsiVGltZXMtSXRhbGljIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NTMseEhlaWdodDo0NDF9O2VbIlRpbWVzLUJvbGRJdGFsaWMiXT17YXNjZW50OjY4MyxkZXNjZW50Oi0yMTcsY2FwSGVpZ2h0OjY2OSx4SGVpZ2h0OjQ2Mn07ZS5TeW1ib2w9e2FzY2VudDpNYXRoLk5hTixkZXNjZW50Ok1hdGguTmFOLGNhcEhlaWdodDpNYXRoLk5hTix4SGVpZ2h0Ok1hdGguTmFOfTtlLlphcGZEaW5nYmF0cz17YXNjZW50Ok1hdGguTmFOLGRlc2NlbnQ6TWF0aC5OYU4sY2FwSGVpZ2h0Ok1hdGguTmFOLHhIZWlnaHQ6TWF0aC5OYU59fSk7Y2xhc3MgR2x5ZlRhYmxle2NvbnN0cnVjdG9yKHtnbHlmVGFibGU6ZSxpc0dseXBoTG9jYXRpb25zTG9uZzp0LGxvY2FUYWJsZTpuLG51bUdseXBoczphfSl7dGhpcy5nbHlwaHM9W107Y29uc3Qgcz1uZXcgRGF0YVZpZXcobi5idWZmZXIsbi5ieXRlT2Zmc2V0LG4uYnl0ZUxlbmd0aCkscj1uZXcgRGF0YVZpZXcoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCksaT10PzQ6MjtsZXQgbz10P3MuZ2V0VWludDMyKDApOjIqcy5nZXRVaW50MTYoMCksbD0wO2ZvcihsZXQgZT0wO2U8YTtlKyspe2wrPWk7Y29uc3QgZT10P3MuZ2V0VWludDMyKGwpOjIqcy5nZXRVaW50MTYobCk7aWYoZT09PW8pe3RoaXMuZ2x5cGhzLnB1c2gobmV3IEdseXBoKHt9KSk7Y29udGludWV9Y29uc3Qgbj1HbHlwaC5wYXJzZShvLHIpO3RoaXMuZ2x5cGhzLnB1c2gobik7bz1lfX1nZXRTaXplKCl7cmV0dXJuIE1hdGguc3VtUHJlY2lzZSh0aGlzLmdseXBocy5tYXAoZT0+ZS5nZXRTaXplKCkrMyYtNCkpfXdyaXRlKCl7Y29uc3QgZT10aGlzLmdldFNpemUoKSx0PW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoZSkpLG49ZT4xMzEwNzAsYT1uPzQ6MixzPW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoKHRoaXMuZ2x5cGhzLmxlbmd0aCsxKSphKSk7bj9zLnNldFVpbnQzMigwLDApOnMuc2V0VWludDE2KDAsMCk7bGV0IHI9MCxpPTA7Zm9yKGNvbnN0IGUgb2YgdGhpcy5nbHlwaHMpe3IrPWUud3JpdGUocix0KTtyPXIrMyYtNDtpKz1hO24/cy5zZXRVaW50MzIoaSxyKTpzLnNldFVpbnQxNihpLHI+PjEpfXJldHVybntpc0xvY2F0aW9uTG9uZzpuLGxvY2E6bmV3IFVpbnQ4QXJyYXkocy5idWZmZXIpLGdseWY6bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpfX1zY2FsZShlKXtmb3IobGV0IHQ9MCxuPXRoaXMuZ2x5cGhzLmxlbmd0aDt0PG47dCsrKXRoaXMuZ2x5cGhzW3RdLnNjYWxlKGVbdF0pfX1jbGFzcyBHbHlwaHtjb25zdHJ1Y3Rvcih7aGVhZGVyOmU9bnVsbCxzaW1wbGU6dD1udWxsLGNvbXBvc2l0ZXM6bj1udWxsfSl7dGhpcy5oZWFkZXI9ZTt0aGlzLnNpbXBsZT10O3RoaXMuY29tcG9zaXRlcz1ufXN0YXRpYyBwYXJzZShlLHQpe2NvbnN0W24sYV09R2x5cGhIZWFkZXIucGFyc2UoZSx0KTtlKz1uO2lmKGEubnVtYmVyT2ZDb250b3VyczwwKXtjb25zdCBuPVtdO2Zvcig7Oyl7Y29uc3RbYSxzXT1Db21wb3NpdGVHbHlwaC5wYXJzZShlLHQpO2UrPWE7bi5wdXNoKHMpO2lmKCEoMzImcy5mbGFncykpYnJlYWt9cmV0dXJuIG5ldyBHbHlwaCh7aGVhZGVyOmEsY29tcG9zaXRlczpufSl9Y29uc3Qgcz1TaW1wbGVHbHlwaC5wYXJzZShlLHQsYS5udW1iZXJPZkNvbnRvdXJzKTtyZXR1cm4gbmV3IEdseXBoKHtoZWFkZXI6YSxzaW1wbGU6c30pfWdldFNpemUoKXtpZighdGhpcy5oZWFkZXIpcmV0dXJuIDA7Y29uc3QgZT10aGlzLnNpbXBsZT90aGlzLnNpbXBsZS5nZXRTaXplKCk6TWF0aC5zdW1QcmVjaXNlKHRoaXMuY29tcG9zaXRlcy5tYXAoZT0+ZS5nZXRTaXplKCkpKTtyZXR1cm4gdGhpcy5oZWFkZXIuZ2V0U2l6ZSgpK2V9d3JpdGUoZSx0KXtpZighdGhpcy5oZWFkZXIpcmV0dXJuIDA7Y29uc3Qgbj1lO2UrPXRoaXMuaGVhZGVyLndyaXRlKGUsdCk7aWYodGhpcy5zaW1wbGUpZSs9dGhpcy5zaW1wbGUud3JpdGUoZSx0KTtlbHNlIGZvcihjb25zdCBuIG9mIHRoaXMuY29tcG9zaXRlcyllKz1uLndyaXRlKGUsdCk7cmV0dXJuIGUtbn1zY2FsZShlKXtpZighdGhpcy5oZWFkZXIpcmV0dXJuO2NvbnN0IHQ9KHRoaXMuaGVhZGVyLnhNaW4rdGhpcy5oZWFkZXIueE1heCkvMjt0aGlzLmhlYWRlci5zY2FsZSh0LGUpO2lmKHRoaXMuc2ltcGxlKXRoaXMuc2ltcGxlLnNjYWxlKHQsZSk7ZWxzZSBmb3IoY29uc3QgbiBvZiB0aGlzLmNvbXBvc2l0ZXMpbi5zY2FsZSh0LGUpfX1jbGFzcyBHbHlwaEhlYWRlcntjb25zdHJ1Y3Rvcih7bnVtYmVyT2ZDb250b3VyczplLHhNaW46dCx5TWluOm4seE1heDphLHlNYXg6c30pe3RoaXMubnVtYmVyT2ZDb250b3Vycz1lO3RoaXMueE1pbj10O3RoaXMueU1pbj1uO3RoaXMueE1heD1hO3RoaXMueU1heD1zfXN0YXRpYyBwYXJzZShlLHQpe3JldHVyblsxMCxuZXcgR2x5cGhIZWFkZXIoe251bWJlck9mQ29udG91cnM6dC5nZXRJbnQxNihlKSx4TWluOnQuZ2V0SW50MTYoZSsyKSx5TWluOnQuZ2V0SW50MTYoZSs0KSx4TWF4OnQuZ2V0SW50MTYoZSs2KSx5TWF4OnQuZ2V0SW50MTYoZSs4KX0pXX1nZXRTaXplKCl7cmV0dXJuIDEwfXdyaXRlKGUsdCl7dC5zZXRJbnQxNihlLHRoaXMubnVtYmVyT2ZDb250b3Vycyk7dC5zZXRJbnQxNihlKzIsdGhpcy54TWluKTt0LnNldEludDE2KGUrNCx0aGlzLnlNaW4pO3Quc2V0SW50MTYoZSs2LHRoaXMueE1heCk7dC5zZXRJbnQxNihlKzgsdGhpcy55TWF4KTtyZXR1cm4gMTB9c2NhbGUoZSx0KXt0aGlzLnhNaW49TWF0aC5yb3VuZChlKyh0aGlzLnhNaW4tZSkqdCk7dGhpcy54TWF4PU1hdGgucm91bmQoZSsodGhpcy54TWF4LWUpKnQpfX1jbGFzcyBDb250b3Vye2NvbnN0cnVjdG9yKHtmbGFnczplLHhDb29yZGluYXRlczp0LHlDb29yZGluYXRlczpufSl7dGhpcy54Q29vcmRpbmF0ZXM9dDt0aGlzLnlDb29yZGluYXRlcz1uO3RoaXMuZmxhZ3M9ZX19Y2xhc3MgU2ltcGxlR2x5cGh7Y29uc3RydWN0b3Ioe2NvbnRvdXJzOmUsaW5zdHJ1Y3Rpb25zOnR9KXt0aGlzLmNvbnRvdXJzPWU7dGhpcy5pbnN0cnVjdGlvbnM9dH1zdGF0aWMgcGFyc2UoZSx0LG4pe2NvbnN0IGE9W107Zm9yKGxldCBzPTA7czxuO3MrKyl7Y29uc3Qgbj10LmdldFVpbnQxNihlKTtlKz0yO2EucHVzaChuKX1jb25zdCBzPWFbbi0xXSsxLHI9dC5nZXRVaW50MTYoZSk7ZSs9Mjtjb25zdCBpPW5ldyBVaW50OEFycmF5KHQpLnNsaWNlKGUsZStyKTtlKz1yO2NvbnN0IG89W107Zm9yKGxldCBuPTA7bjxzO2UrKyxuKyspe2xldCBhPXQuZ2V0VWludDgoZSk7by5wdXNoKGEpO2lmKDgmYSl7Y29uc3Qgcz10LmdldFVpbnQ4KCsrZSk7YV49ODtmb3IobGV0IGU9MDtlPHM7ZSsrKW8ucHVzaChhKTtuKz1zfX1jb25zdCBsPVtdO2xldCBmPVtdLGM9W10saD1bXTtjb25zdCB1PVtdO2xldCBtPTAscD0wO2ZvcihsZXQgbj0wO248cztuKyspe2NvbnN0IHM9b1tuXTtpZigyJnMpe2NvbnN0IG49dC5nZXRVaW50OChlKyspO3ArPTE2JnM/bjotbjtmLnB1c2gocCl9ZWxzZSBpZigxNiZzKWYucHVzaChwKTtlbHNle3ArPXQuZ2V0SW50MTYoZSk7ZSs9MjtmLnB1c2gocCl9aWYoYVttXT09PW4pe20rKztsLnB1c2goZik7Zj1bXX19cD0wO209MDtmb3IobGV0IG49MDtuPHM7bisrKXtjb25zdCBzPW9bbl07aWYoNCZzKXtjb25zdCBuPXQuZ2V0VWludDgoZSsrKTtwKz0zMiZzP246LW47Yy5wdXNoKHApfWVsc2UgaWYoMzImcyljLnB1c2gocCk7ZWxzZXtwKz10LmdldEludDE2KGUpO2UrPTI7Yy5wdXNoKHApfWgucHVzaCgxJnN8NjQmcyk7aWYoYVttXT09PW4pe2Y9bFttXTttKys7dS5wdXNoKG5ldyBDb250b3VyKHtmbGFnczpoLHhDb29yZGluYXRlczpmLHlDb29yZGluYXRlczpjfSkpO2M9W107aD1bXX19cmV0dXJuIG5ldyBTaW1wbGVHbHlwaCh7Y29udG91cnM6dSxpbnN0cnVjdGlvbnM6aX0pfWdldFNpemUoKXtsZXQgZT0yKnRoaXMuY29udG91cnMubGVuZ3RoKzIrdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoLHQ9MCxuPTA7Zm9yKGNvbnN0IGEgb2YgdGhpcy5jb250b3Vycyl7ZSs9YS5mbGFncy5sZW5ndGg7Zm9yKGxldCBzPTAscj1hLnhDb29yZGluYXRlcy5sZW5ndGg7czxyO3MrKyl7Y29uc3Qgcj1hLnhDb29yZGluYXRlc1tzXSxpPWEueUNvb3JkaW5hdGVzW3NdO2xldCBvPU1hdGguYWJzKHItdCk7bz4yNTU/ZSs9MjpvPjAmJihlKz0xKTt0PXI7bz1NYXRoLmFicyhpLW4pO28+MjU1P2UrPTI6bz4wJiYoZSs9MSk7bj1pfX1yZXR1cm4gZX13cml0ZShlLHQpe2NvbnN0IG49ZSxhPVtdLHM9W10scj1bXTtsZXQgaT0wLG89MDtmb3IoY29uc3QgbiBvZiB0aGlzLmNvbnRvdXJzKXtmb3IobGV0IGU9MCx0PW4ueENvb3JkaW5hdGVzLmxlbmd0aDtlPHQ7ZSsrKXtsZXQgdD1uLmZsYWdzW2VdO2NvbnN0IGw9bi54Q29vcmRpbmF0ZXNbZV07bGV0IGY9bC1pO2lmKDA9PT1mKXt0fD0xNjthLnB1c2goMCl9ZWxzZXtjb25zdCBlPU1hdGguYWJzKGYpO2lmKGU8PTI1NSl7dHw9Zj49MD8xODoyO2EucHVzaChlKX1lbHNlIGEucHVzaChmKX1pPWw7Y29uc3QgYz1uLnlDb29yZGluYXRlc1tlXTtmPWMtbztpZigwPT09Zil7dHw9MzI7cy5wdXNoKDApfWVsc2V7Y29uc3QgZT1NYXRoLmFicyhmKTtpZihlPD0yNTUpe3R8PWY+PTA/MzY6NDtzLnB1c2goZSl9ZWxzZSBzLnB1c2goZil9bz1jO3IucHVzaCh0KX10LnNldFVpbnQxNihlLGEubGVuZ3RoLTEpO2UrPTJ9dC5zZXRVaW50MTYoZSx0aGlzLmluc3RydWN0aW9ucy5sZW5ndGgpO2UrPTI7aWYodGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKXtuZXcgVWludDhBcnJheSh0LmJ1ZmZlciwwLHQuYnVmZmVyLmJ5dGVMZW5ndGgpLnNldCh0aGlzLmluc3RydWN0aW9ucyxlKTtlKz10aGlzLmluc3RydWN0aW9ucy5sZW5ndGh9Zm9yKGNvbnN0IG4gb2Ygcil0LnNldFVpbnQ4KGUrKyxuKTtmb3IobGV0IG49MCxzPWEubGVuZ3RoO248cztuKyspe2NvbnN0IHM9YVtuXSxpPXJbbl07aWYoMiZpKXQuc2V0VWludDgoZSsrLHMpO2Vsc2UgaWYoISgxNiZpKSl7dC5zZXRJbnQxNihlLHMpO2UrPTJ9fWZvcihsZXQgbj0wLGE9cy5sZW5ndGg7bjxhO24rKyl7Y29uc3QgYT1zW25dLGk9cltuXTtpZig0JmkpdC5zZXRVaW50OChlKyssYSk7ZWxzZSBpZighKDMyJmkpKXt0LnNldEludDE2KGUsYSk7ZSs9Mn19cmV0dXJuIGUtbn1zY2FsZShlLHQpe2Zvcihjb25zdCBuIG9mIHRoaXMuY29udG91cnMpaWYoMCE9PW4ueENvb3JkaW5hdGVzLmxlbmd0aClmb3IobGV0IGE9MCxzPW4ueENvb3JkaW5hdGVzLmxlbmd0aDthPHM7YSsrKW4ueENvb3JkaW5hdGVzW2FdPU1hdGgucm91bmQoZSsobi54Q29vcmRpbmF0ZXNbYV0tZSkqdCl9fWNsYXNzIENvbXBvc2l0ZUdseXBoe2NvbnN0cnVjdG9yKHtmbGFnczplLGdseXBoSW5kZXg6dCxhcmd1bWVudDE6bixhcmd1bWVudDI6YSx0cmFuc2Y6cyxpbnN0cnVjdGlvbnM6cn0pe3RoaXMuZmxhZ3M9ZTt0aGlzLmdseXBoSW5kZXg9dDt0aGlzLmFyZ3VtZW50MT1uO3RoaXMuYXJndW1lbnQyPWE7dGhpcy50cmFuc2Y9czt0aGlzLmluc3RydWN0aW9ucz1yfXN0YXRpYyBwYXJzZShlLHQpe2NvbnN0IG49ZSxhPVtdO2xldCBzPXQuZ2V0VWludDE2KGUpO2NvbnN0IHI9dC5nZXRVaW50MTYoZSsyKTtlKz00O2xldCBpLG87aWYoMSZzKXtpZigyJnMpe2k9dC5nZXRJbnQxNihlKTtvPXQuZ2V0SW50MTYoZSsyKX1lbHNle2k9dC5nZXRVaW50MTYoZSk7bz10LmdldFVpbnQxNihlKzIpfWUrPTQ7c149MX1lbHNle2lmKDImcyl7aT10LmdldEludDgoZSk7bz10LmdldEludDgoZSsxKX1lbHNle2k9dC5nZXRVaW50OChlKTtvPXQuZ2V0VWludDgoZSsxKX1lKz0yfWlmKDgmcyl7YS5wdXNoKHQuZ2V0VWludDE2KGUpKTtlKz0yfWVsc2UgaWYoNjQmcyl7YS5wdXNoKHQuZ2V0VWludDE2KGUpLHQuZ2V0VWludDE2KGUrMikpO2UrPTR9ZWxzZSBpZigxMjgmcyl7YS5wdXNoKHQuZ2V0VWludDE2KGUpLHQuZ2V0VWludDE2KGUrMiksdC5nZXRVaW50MTYoZSs0KSx0LmdldFVpbnQxNihlKzYpKTtlKz04fWxldCBsPW51bGw7aWYoMjU2JnMpe2NvbnN0IG49dC5nZXRVaW50MTYoZSk7ZSs9MjtsPW5ldyBVaW50OEFycmF5KHQpLnNsaWNlKGUsZStuKTtlKz1ufXJldHVybltlLW4sbmV3IENvbXBvc2l0ZUdseXBoKHtmbGFnczpzLGdseXBoSW5kZXg6cixhcmd1bWVudDE6aSxhcmd1bWVudDI6byx0cmFuc2Y6YSxpbnN0cnVjdGlvbnM6bH0pXX1nZXRTaXplKCl7bGV0IGU9NCsyKnRoaXMudHJhbnNmLmxlbmd0aDsyNTYmdGhpcy5mbGFncyYmKGUrPTIrdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKTtlKz0yOzImdGhpcy5mbGFncz90aGlzLmFyZ3VtZW50MT49LTEyOCYmdGhpcy5hcmd1bWVudDE8PTEyNyYmdGhpcy5hcmd1bWVudDI+PS0xMjgmJnRoaXMuYXJndW1lbnQyPD0xMjd8fChlKz0yKTp0aGlzLmFyZ3VtZW50MT49MCYmdGhpcy5hcmd1bWVudDE8PTI1NSYmdGhpcy5hcmd1bWVudDI+PTAmJnRoaXMuYXJndW1lbnQyPD0yNTV8fChlKz0yKTtyZXR1cm4gZX13cml0ZShlLHQpe2NvbnN0IG49ZTsyJnRoaXMuZmxhZ3M/dGhpcy5hcmd1bWVudDE+PS0xMjgmJnRoaXMuYXJndW1lbnQxPD0xMjcmJnRoaXMuYXJndW1lbnQyPj0tMTI4JiZ0aGlzLmFyZ3VtZW50Mjw9MTI3fHwodGhpcy5mbGFnc3w9MSk6dGhpcy5hcmd1bWVudDE+PTAmJnRoaXMuYXJndW1lbnQxPD0yNTUmJnRoaXMuYXJndW1lbnQyPj0wJiZ0aGlzLmFyZ3VtZW50Mjw9MjU1fHwodGhpcy5mbGFnc3w9MSk7dC5zZXRVaW50MTYoZSx0aGlzLmZsYWdzKTt0LnNldFVpbnQxNihlKzIsdGhpcy5nbHlwaEluZGV4KTtlKz00O2lmKDEmdGhpcy5mbGFncyl7aWYoMiZ0aGlzLmZsYWdzKXt0LnNldEludDE2KGUsdGhpcy5hcmd1bWVudDEpO3Quc2V0SW50MTYoZSsyLHRoaXMuYXJndW1lbnQyKX1lbHNle3Quc2V0VWludDE2KGUsdGhpcy5hcmd1bWVudDEpO3Quc2V0VWludDE2KGUrMix0aGlzLmFyZ3VtZW50Mil9ZSs9NH1lbHNle3Quc2V0VWludDgoZSx0aGlzLmFyZ3VtZW50MSk7dC5zZXRVaW50OChlKzEsdGhpcy5hcmd1bWVudDIpO2UrPTJ9aWYoMjU2JnRoaXMuZmxhZ3Mpe3Quc2V0VWludDE2KGUsdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKTtlKz0yO2lmKHRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aCl7bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsMCx0LmJ1ZmZlci5ieXRlTGVuZ3RoKS5zZXQodGhpcy5pbnN0cnVjdGlvbnMsZSk7ZSs9dGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RofX1yZXR1cm4gZS1ufXNjYWxlKGUsdCl7fX1mdW5jdGlvbiB3cml0ZUludDE2KGUsdCxuKXtlW3RdPW4+PjgmMjU1O2VbdCsxXT0yNTUmbn1mdW5jdGlvbiB3cml0ZUludDMyKGUsdCxuKXtlW3RdPW4+PjI0JjI1NTtlW3QrMV09bj4+MTYmMjU1O2VbdCsyXT1uPj44JjI1NTtlW3QrM109MjU1Jm59ZnVuY3Rpb24gd3JpdGVEYXRhKGUsdCxuKXtpZihuIGluc3RhbmNlb2YgVWludDhBcnJheSllLnNldChuLHQpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBuKWZvcihsZXQgYT0wLHM9bi5sZW5ndGg7YTxzO2ErKyllW3QrK109MjU1Jm4uY2hhckNvZGVBdChhKTtlbHNlIGZvcihjb25zdCBhIG9mIG4pZVt0KytdPTI1NSZhfWNsYXNzIE9wZW5UeXBlRmlsZUJ1aWxkZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5zZm50PWU7dGhpcy50YWJsZXM9T2JqZWN0LmNyZWF0ZShudWxsKX1zdGF0aWMgZ2V0U2VhcmNoUGFyYW1zKGUsdCl7bGV0IG49MSxhPTA7Zm9yKDsobl5lKT5uOyl7bjw8PTE7YSsrfWNvbnN0IHM9bip0O3JldHVybntyYW5nZTpzLGVudHJ5OmEscmFuZ2VTaGlmdDp0KmUtc319dG9BcnJheSgpe2xldCBlPXRoaXMuc2ZudDtjb25zdCB0PXRoaXMudGFibGVzLG49T2JqZWN0LmtleXModCk7bi5zb3J0KCk7Y29uc3QgYT1uLmxlbmd0aDtsZXQgcyxyLGksbyxsLGY9MTIrMTYqYTtjb25zdCBjPVtmXTtmb3Iocz0wO3M8YTtzKyspe289dFtuW3NdXTtmKz0oby5sZW5ndGgrMyYtNCk+Pj4wO2MucHVzaChmKX1jb25zdCBoPW5ldyBVaW50OEFycmF5KGYpO2ZvcihzPTA7czxhO3MrKyl7bz10W25bc11dO3dyaXRlRGF0YShoLGNbc10sbyl9InRydWUiPT09ZSYmKGU9c3RyaW5nMzIoNjU1MzYpKTtoWzBdPTI1NSZlLmNoYXJDb2RlQXQoMCk7aFsxXT0yNTUmZS5jaGFyQ29kZUF0KDEpO2hbMl09MjU1JmUuY2hhckNvZGVBdCgyKTtoWzNdPTI1NSZlLmNoYXJDb2RlQXQoMyk7d3JpdGVJbnQxNihoLDQsYSk7Y29uc3QgdT1PcGVuVHlwZUZpbGVCdWlsZGVyLmdldFNlYXJjaFBhcmFtcyhhLDE2KTt3cml0ZUludDE2KGgsNix1LnJhbmdlKTt3cml0ZUludDE2KGgsOCx1LmVudHJ5KTt3cml0ZUludDE2KGgsMTAsdS5yYW5nZVNoaWZ0KTtmPTEyO2ZvcihzPTA7czxhO3MrKyl7bD1uW3NdO2hbZl09MjU1JmwuY2hhckNvZGVBdCgwKTtoW2YrMV09MjU1JmwuY2hhckNvZGVBdCgxKTtoW2YrMl09MjU1JmwuY2hhckNvZGVBdCgyKTtoW2YrM109MjU1JmwuY2hhckNvZGVBdCgzKTtsZXQgZT0wO2ZvcihyPWNbc10saT1jW3MrMV07cjxpO3IrPTQpe2U9ZStyZWFkVWludDMyKGgscik+Pj4wfXdyaXRlSW50MzIoaCxmKzQsZSk7d3JpdGVJbnQzMihoLGYrOCxjW3NdKTt3cml0ZUludDMyKGgsZisxMix0W2xdLmxlbmd0aCk7Zis9MTZ9cmV0dXJuIGh9YWRkVGFibGUoZSx0KXtpZihlIGluIHRoaXMudGFibGVzKXRocm93IG5ldyBFcnJvcigiVGFibGUgIitlKyIgYWxyZWFkeSBleGlzdHMiKTt0aGlzLnRhYmxlc1tlXT10fX1jb25zdCAkYT1bNF0sWWE9WzVdLEphPVs2XSxRYT1bN10sWmE9WzhdLGVzPVsxMiwzNV0sdHM9WzE0XSxucz1bMjFdLGFzPVsyMl0sc3M9WzMwXSxycz1bMzFdO2NsYXNzIFR5cGUxQ2hhclN0cmluZ3t3aWR0aD0wO2xzYj0wO2ZsZXhpbmc9ITE7b3V0cHV0PVtdO3N0YWNrPVtdO2NvbnZlcnQoZSx0LG4pe2NvbnN0IGE9ZS5sZW5ndGg7bGV0IHMscixpLG89ITE7Zm9yKGxldCBsPTA7bDxhO2wrKyl7bGV0IGE9ZVtsXTtpZihhPDMyKXsxMj09PWEmJihhPShhPDw4KStlWysrbF0pO3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAzOmNhc2UgOTpjYXNlIDMwNzI6Y2FzZSAzMDczOmNhc2UgMzA3NDpjYXNlIDMxMDU6dGhpcy5zdGFjaz1bXTticmVhaztjYXNlIDQ6aWYodGhpcy5mbGV4aW5nKXtpZih0aGlzLnN0YWNrLmxlbmd0aDwxKXtvPSEwO2JyZWFrfWNvbnN0IGU9dGhpcy5zdGFjay5wb3AoKTt0aGlzLnN0YWNrLnB1c2goMCxlKTticmVha31vPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMSwkYSk7YnJlYWs7Y2FzZSA1Om89dGhpcy5leGVjdXRlQ29tbWFuZCgyLFlhKTticmVhaztjYXNlIDY6bz10aGlzLmV4ZWN1dGVDb21tYW5kKDEsSmEpO2JyZWFrO2Nhc2UgNzpvPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMSxRYSk7YnJlYWs7Y2FzZSA4Om89dGhpcy5leGVjdXRlQ29tbWFuZCg2LFphKTticmVhaztjYXNlIDEwOmlmKHRoaXMuc3RhY2subGVuZ3RoPDEpe289ITA7YnJlYWt9aT10aGlzLnN0YWNrLnBvcCgpO2lmKCF0W2ldKXtvPSEwO2JyZWFrfW89dGhpcy5jb252ZXJ0KHRbaV0sdCxuKTticmVhaztjYXNlIDExOnJldHVybiBvO2Nhc2UgMTM6aWYodGhpcy5zdGFjay5sZW5ndGg8Mil7bz0hMDticmVha31zPXRoaXMuc3RhY2sucG9wKCk7cj10aGlzLnN0YWNrLnBvcCgpO3RoaXMubHNiPXI7dGhpcy53aWR0aD1zO3RoaXMuc3RhY2sucHVzaChzLHIpO289dGhpcy5leGVjdXRlQ29tbWFuZCgyLGFzKTticmVhaztjYXNlIDE0OnRoaXMub3V0cHV0LnB1c2godHNbMF0pO2JyZWFrO2Nhc2UgMjE6aWYodGhpcy5mbGV4aW5nKWJyZWFrO289dGhpcy5leGVjdXRlQ29tbWFuZCgyLG5zKTticmVhaztjYXNlIDIyOmlmKHRoaXMuZmxleGluZyl7dGhpcy5zdGFjay5wdXNoKDApO2JyZWFrfW89dGhpcy5leGVjdXRlQ29tbWFuZCgxLGFzKTticmVhaztjYXNlIDMwOm89dGhpcy5leGVjdXRlQ29tbWFuZCg0LHNzKTticmVhaztjYXNlIDMxOm89dGhpcy5leGVjdXRlQ29tbWFuZCg0LHJzKTticmVhaztjYXNlIDMwNzg6aWYobil7Y29uc3QgZT10aGlzLnN0YWNrLmF0KC01KTt0aGlzLnNlYWM9dGhpcy5zdGFjay5zcGxpY2UoLTQsNCk7dGhpcy5zZWFjWzBdKz10aGlzLmxzYi1lO289dGhpcy5leGVjdXRlQ29tbWFuZCgwLHRzKX1lbHNlIG89dGhpcy5leGVjdXRlQ29tbWFuZCg0LHRzKTticmVhaztjYXNlIDMwNzk6aWYodGhpcy5zdGFjay5sZW5ndGg8NCl7bz0hMDticmVha310aGlzLnN0YWNrLnBvcCgpO3M9dGhpcy5zdGFjay5wb3AoKTtjb25zdCBlPXRoaXMuc3RhY2sucG9wKCk7cj10aGlzLnN0YWNrLnBvcCgpO3RoaXMubHNiPXI7dGhpcy53aWR0aD1zO3RoaXMuc3RhY2sucHVzaChzLHIsZSk7bz10aGlzLmV4ZWN1dGVDb21tYW5kKDMsbnMpO2JyZWFrO2Nhc2UgMzA4NDppZih0aGlzLnN0YWNrLmxlbmd0aDwyKXtvPSEwO2JyZWFrfWNvbnN0IGw9dGhpcy5zdGFjay5wb3AoKSxmPXRoaXMuc3RhY2sucG9wKCk7dGhpcy5zdGFjay5wdXNoKGYvbCk7YnJlYWs7Y2FzZSAzMDg4OmlmKHRoaXMuc3RhY2subGVuZ3RoPDIpe289ITA7YnJlYWt9aT10aGlzLnN0YWNrLnBvcCgpO2NvbnN0IGM9dGhpcy5zdGFjay5wb3AoKTtpZigwPT09aSYmMz09PWMpe2NvbnN0IGU9dGhpcy5zdGFjay5zcGxpY2UoLTE3LDE3KTt0aGlzLnN0YWNrLnB1c2goZVsyXStlWzBdLGVbM10rZVsxXSxlWzRdLGVbNV0sZVs2XSxlWzddLGVbOF0sZVs5XSxlWzEwXSxlWzExXSxlWzEyXSxlWzEzXSxlWzE0XSk7bz10aGlzLmV4ZWN1dGVDb21tYW5kKDEzLGVzLCEwKTt0aGlzLmZsZXhpbmc9ITE7dGhpcy5zdGFjay5wdXNoKGVbMTVdLGVbMTZdKX1lbHNlIDE9PT1pJiYwPT09YyYmKHRoaXMuZmxleGluZz0hMCk7YnJlYWs7Y2FzZSAzMDg5OmJyZWFrO2RlZmF1bHQ6d2FybignVW5rbm93biB0eXBlIDEgY2hhcnN0cmluZyBjb21tYW5kIG9mICInK2ErJyInKX1pZihvKWJyZWFrfWVsc2V7YTw9MjQ2P2EtPTEzOTphPWE8PTI1MD8yNTYqKGEtMjQ3KStlWysrbF0rMTA4OmE8PTI1ND8tMjU2KihhLTI1MSktZVsrK2xdLTEwODooMjU1JmVbKytsXSk8PDI0fCgyNTUmZVsrK2xdKTw8MTZ8KDI1NSZlWysrbF0pPDw4fDI1NSZlWysrbF07dGhpcy5zdGFjay5wdXNoKGEpfX1yZXR1cm4gb31leGVjdXRlQ29tbWFuZChlLHQsbil7Y29uc3QgYT10aGlzLnN0YWNrLmxlbmd0aDtpZihlPmEpcmV0dXJuITA7Y29uc3Qgcz1hLWU7Zm9yKGxldCBlPXM7ZTxhO2UrKyl7bGV0IHQ9dGhpcy5zdGFja1tlXTtpZihOdW1iZXIuaXNJbnRlZ2VyKHQpKXRoaXMub3V0cHV0LnB1c2goMjgsdD4+OCYyNTUsMjU1JnQpO2Vsc2V7dD02NTUzNip0fDA7dGhpcy5vdXRwdXQucHVzaCgyNTUsdD4+MjQmMjU1LHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCl9fXRoaXMub3V0cHV0LnB1c2goLi4udCk7bj90aGlzLnN0YWNrLnNwbGljZShzLGUpOnRoaXMuc3RhY2subGVuZ3RoPTA7cmV0dXJuITF9fWZ1bmN0aW9uIGlzSGV4RGlnaXQoZSl7cmV0dXJuIGU+PTQ4JiZlPD01N3x8ZT49NjUmJmU8PTcwfHxlPj05NyYmZTw9MTAyfWZ1bmN0aW9uIGRlY3J5cHQoZSx0LG4pe2lmKG4+PWUubGVuZ3RoKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtsZXQgYSxzLHI9MHx0O2ZvcihhPTA7YTxuO2ErKylyPTUyODQ1KihlW2FdK3IpKzIyNzE5JjY1NTM1O2NvbnN0IGk9ZS5sZW5ndGgtbixvPW5ldyBVaW50OEFycmF5KGkpO2ZvcihhPW4scz0wO3M8aTthKysscysrKXtjb25zdCB0PWVbYV07b1tzXT10XnI+Pjg7cj01Mjg0NSoodCtyKSsyMjcxOSY2NTUzNX1yZXR1cm4gb31mdW5jdGlvbiBpc1NwZWNpYWwoZSl7cmV0dXJuIDQ3PT09ZXx8OTE9PT1lfHw5Mz09PWV8fDEyMz09PWV8fDEyNT09PWV8fDQwPT09ZXx8NDE9PT1lfWNsYXNzIFR5cGUxUGFyc2Vye2NvbnN0cnVjdG9yKGUsdCxuKXtpZih0KXtjb25zdCB0PWUuZ2V0Qnl0ZXMoKSxuPSEoKGlzSGV4RGlnaXQodFswXSl8fGlzV2hpdGVTcGFjZSh0WzBdKSkmJmlzSGV4RGlnaXQodFsxXSkmJmlzSGV4RGlnaXQodFsyXSkmJmlzSGV4RGlnaXQodFszXSkmJmlzSGV4RGlnaXQodFs0XSkmJmlzSGV4RGlnaXQodFs1XSkmJmlzSGV4RGlnaXQodFs2XSkmJmlzSGV4RGlnaXQodFs3XSkpO2U9bmV3IFN0cmVhbShuP2RlY3J5cHQodCw1NTY2NSw0KTpmdW5jdGlvbiBkZWNyeXB0QXNjaWkoZSx0LG4pe2xldCBhPTB8dDtjb25zdCBzPWUubGVuZ3RoLHI9bmV3IFVpbnQ4QXJyYXkocz4+PjEpO2xldCBpLG87Zm9yKGk9MCxvPTA7aTxzO2krKyl7Y29uc3QgdD1lW2ldO2lmKCFpc0hleERpZ2l0KHQpKWNvbnRpbnVlO2krKztsZXQgbjtmb3IoO2k8cyYmIWlzSGV4RGlnaXQobj1lW2ldKTspaSsrO2lmKGk8cyl7Y29uc3QgZT1wYXJzZUludChTdHJpbmcuZnJvbUNoYXJDb2RlKHQsbiksMTYpO3JbbysrXT1lXmE+Pjg7YT01Mjg0NSooZSthKSsyMjcxOSY2NTUzNX19cmV0dXJuIHIuc2xpY2UobixvKX0odCw1NTY2NSw0KSl9dGhpcy5zZWFjQW5hbHlzaXNFbmFibGVkPSEhbjt0aGlzLnN0cmVhbT1lO3RoaXMubmV4dENoYXIoKX1yZWFkTnVtYmVyQXJyYXkoKXt0aGlzLmdldFRva2VuKCk7Y29uc3QgZT1bXTtmb3IoOzspe2NvbnN0IHQ9dGhpcy5nZXRUb2tlbigpO2lmKG51bGw9PT10fHwiXSI9PT10fHwifSI9PT10KWJyZWFrO2UucHVzaChwYXJzZUZsb2F0KHR8fDApKX1yZXR1cm4gZX1yZWFkTnVtYmVyKCl7Y29uc3QgZT10aGlzLmdldFRva2VuKCk7cmV0dXJuIHBhcnNlRmxvYXQoZXx8MCl9cmVhZEludCgpe2NvbnN0IGU9dGhpcy5nZXRUb2tlbigpO3JldHVybiAwfHBhcnNlSW50KGV8fDAsMTApfXJlYWRCb29sZWFuKCl7cmV0dXJuInRydWUiPT09dGhpcy5nZXRUb2tlbigpPzE6MH1uZXh0Q2hhcigpe3JldHVybiB0aGlzLmN1cnJlbnRDaGFyPXRoaXMuc3RyZWFtLmdldEJ5dGUoKX1wcmV2Q2hhcigpe3RoaXMuc3RyZWFtLnNraXAoLTIpO3JldHVybiB0aGlzLmN1cnJlbnRDaGFyPXRoaXMuc3RyZWFtLmdldEJ5dGUoKX1nZXRUb2tlbigpe2xldCBlPSExLHQ9dGhpcy5jdXJyZW50Q2hhcjtmb3IoOzspe2lmKC0xPT09dClyZXR1cm4gbnVsbDtpZihlKTEwIT09dCYmMTMhPT10fHwoZT0hMSk7ZWxzZSBpZigzNz09PXQpZT0hMDtlbHNlIGlmKCFpc1doaXRlU3BhY2UodCkpYnJlYWs7dD10aGlzLm5leHRDaGFyKCl9aWYoaXNTcGVjaWFsKHQpKXt0aGlzLm5leHRDaGFyKCk7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodCl9bGV0IG49IiI7ZG97bis9U3RyaW5nLmZyb21DaGFyQ29kZSh0KTt0PXRoaXMubmV4dENoYXIoKX13aGlsZSh0Pj0wJiYhaXNXaGl0ZVNwYWNlKHQpJiYhaXNTcGVjaWFsKHQpKTtyZXR1cm4gbn1yZWFkQ2hhclN0cmluZ3MoZSx0KXtyZXR1cm4tMT09PXQ/ZTpkZWNyeXB0KGUsNDMzMCx0KX1leHRyYWN0Rm9udFByb2dyYW0oZSl7Y29uc3QgdD10aGlzLnN0cmVhbSxuPVtdLGE9W10scz1PYmplY3QuY3JlYXRlKG51bGwpO3MubGVuSVY9NDtjb25zdCByPXtzdWJyczpbXSxjaGFyc3RyaW5nczpbXSxwcm9wZXJ0aWVzOntwcml2YXRlRGF0YTpzfX07bGV0IGksbyxsLGY7Zm9yKDtudWxsIT09KGk9dGhpcy5nZXRUb2tlbigpKTspaWYoIi8iPT09aSl7aT10aGlzLmdldFRva2VuKCk7c3dpdGNoKGkpe2Nhc2UiQ2hhclN0cmluZ3MiOnRoaXMuZ2V0VG9rZW4oKTt0aGlzLmdldFRva2VuKCk7dGhpcy5nZXRUb2tlbigpO3RoaXMuZ2V0VG9rZW4oKTtmb3IoOzspe2k9dGhpcy5nZXRUb2tlbigpO2lmKG51bGw9PT1pfHwiZW5kIj09PWkpYnJlYWs7aWYoIi8iIT09aSljb250aW51ZTtjb25zdCBlPXRoaXMuZ2V0VG9rZW4oKTtvPXRoaXMucmVhZEludCgpO3RoaXMuZ2V0VG9rZW4oKTtsPW8+MD90LmdldEJ5dGVzKG8pOm5ldyBVaW50OEFycmF5KDApO2Y9ci5wcm9wZXJ0aWVzLnByaXZhdGVEYXRhLmxlbklWO2NvbnN0IG49dGhpcy5yZWFkQ2hhclN0cmluZ3MobCxmKTt0aGlzLm5leHRDaGFyKCk7aT10aGlzLmdldFRva2VuKCk7Im5vYWNjZXNzIj09PWk/dGhpcy5nZXRUb2tlbigpOiIvIj09PWkmJnRoaXMucHJldkNoYXIoKTthLnB1c2goe2dseXBoOmUsZW5jb2RlZDpufSl9YnJlYWs7Y2FzZSJTdWJycyI6dGhpcy5yZWFkSW50KCk7dGhpcy5nZXRUb2tlbigpO2Zvcig7ImR1cCI9PT10aGlzLmdldFRva2VuKCk7KXtjb25zdCBlPXRoaXMucmVhZEludCgpO289dGhpcy5yZWFkSW50KCk7dGhpcy5nZXRUb2tlbigpO2w9bz4wP3QuZ2V0Qnl0ZXMobyk6bmV3IFVpbnQ4QXJyYXkoMCk7Zj1yLnByb3BlcnRpZXMucHJpdmF0ZURhdGEubGVuSVY7Y29uc3QgYT10aGlzLnJlYWRDaGFyU3RyaW5ncyhsLGYpO3RoaXMubmV4dENoYXIoKTtpPXRoaXMuZ2V0VG9rZW4oKTsibm9hY2Nlc3MiPT09aSYmdGhpcy5nZXRUb2tlbigpO25bZV09YX1icmVhaztjYXNlIkJsdWVWYWx1ZXMiOmNhc2UiT3RoZXJCbHVlcyI6Y2FzZSJGYW1pbHlCbHVlcyI6Y2FzZSJGYW1pbHlPdGhlckJsdWVzIjpjb25zdCBlPXRoaXMucmVhZE51bWJlckFycmF5KCk7ZS5sZW5ndGg+MCYmZS5sZW5ndGgsMDticmVhaztjYXNlIlN0ZW1TbmFwSCI6Y2FzZSJTdGVtU25hcFYiOnIucHJvcGVydGllcy5wcml2YXRlRGF0YVtpXT10aGlzLnJlYWROdW1iZXJBcnJheSgpO2JyZWFrO2Nhc2UiU3RkSFciOmNhc2UiU3RkVlciOnIucHJvcGVydGllcy5wcml2YXRlRGF0YVtpXT10aGlzLnJlYWROdW1iZXJBcnJheSgpWzBdO2JyZWFrO2Nhc2UiQmx1ZVNoaWZ0IjpjYXNlImxlbklWIjpjYXNlIkJsdWVGdXp6IjpjYXNlIkJsdWVTY2FsZSI6Y2FzZSJMYW5ndWFnZUdyb3VwIjpyLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbaV09dGhpcy5yZWFkTnVtYmVyKCk7YnJlYWs7Y2FzZSJFeHBhbnNpb25GYWN0b3IiOnIucHJvcGVydGllcy5wcml2YXRlRGF0YVtpXT10aGlzLnJlYWROdW1iZXIoKXx8LjA2O2JyZWFrO2Nhc2UiRm9yY2VCb2xkIjpyLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbaV09dGhpcy5yZWFkQm9vbGVhbigpfX1mb3IoY29uc3R7ZW5jb2RlZDp0LGdseXBoOnN9b2YgYSl7Y29uc3QgYT1uZXcgVHlwZTFDaGFyU3RyaW5nLGk9YS5jb252ZXJ0KHQsbix0aGlzLnNlYWNBbmFseXNpc0VuYWJsZWQpO2xldCBvPWEub3V0cHV0O2kmJihvPVsxNF0pO2NvbnN0IGw9e2dseXBoTmFtZTpzLGNoYXJzdHJpbmc6byx3aWR0aDphLndpZHRoLGxzYjphLmxzYixzZWFjOmEuc2VhY307Ii5ub3RkZWYiPT09cz9yLmNoYXJzdHJpbmdzLnVuc2hpZnQobCk6ci5jaGFyc3RyaW5ncy5wdXNoKGwpO2lmKGUuYnVpbHRJbkVuY29kaW5nKXtjb25zdCB0PWUuYnVpbHRJbkVuY29kaW5nLmluZGV4T2Yocyk7dD4tMSYmdm9pZCAwPT09ZS53aWR0aHNbdF0mJnQ+PWUuZmlyc3RDaGFyJiZ0PD1lLmxhc3RDaGFyJiYoZS53aWR0aHNbdF09YS53aWR0aCl9fXJldHVybiByfWV4dHJhY3RGb250SGVhZGVyKGUpe2xldCB0O2Zvcig7bnVsbCE9PSh0PXRoaXMuZ2V0VG9rZW4oKSk7KWlmKCIvIj09PXQpe3Q9dGhpcy5nZXRUb2tlbigpO3N3aXRjaCh0KXtjYXNlIkZvbnRNYXRyaXgiOmNvbnN0IG49dGhpcy5yZWFkTnVtYmVyQXJyYXkoKTtlLmZvbnRNYXRyaXg9bjticmVhaztjYXNlIkVuY29kaW5nIjpjb25zdCBhPXRoaXMuZ2V0VG9rZW4oKTtsZXQgcztpZigvXlxkKyQvLnRlc3QoYSkpe3M9W107Y29uc3QgZT0wfHBhcnNlSW50KGEsMTApO3RoaXMuZ2V0VG9rZW4oKTtmb3IobGV0IG49MDtuPGU7bisrKXt0PXRoaXMuZ2V0VG9rZW4oKTtmb3IoOyJkdXAiIT09dCYmImRlZiIhPT10Oyl7dD10aGlzLmdldFRva2VuKCk7aWYobnVsbD09PXQpcmV0dXJufWlmKCJkZWYiPT09dClicmVhaztjb25zdCBlPXRoaXMucmVhZEludCgpO3RoaXMuZ2V0VG9rZW4oKTtjb25zdCBuPXRoaXMuZ2V0VG9rZW4oKTtzW2VdPW47dGhpcy5nZXRUb2tlbigpfX1lbHNlIHM9Z2V0RW5jb2RpbmcoYSk7ZS5idWlsdEluRW5jb2Rpbmc9czticmVhaztjYXNlIkZvbnRCQm94Ijpjb25zdCByPXRoaXMucmVhZE51bWJlckFycmF5KCk7ZS5hc2NlbnQ9TWF0aC5tYXgoclszXSxyWzFdKTtlLmRlc2NlbnQ9TWF0aC5taW4oclsxXSxyWzNdKTtlLmFzY2VudFNjYWxlZD0hMH19fX1mdW5jdGlvbiBmaW5kQmxvY2soZSx0LG4pe2NvbnN0IGE9ZS5sZW5ndGgscz10Lmxlbmd0aCxyPWEtcztsZXQgaT1uLG89ITE7Zm9yKDtpPHI7KXtsZXQgbj0wO2Zvcig7bjxzJiZlW2krbl09PT10W25dOyluKys7aWYobj49cyl7aSs9bjtmb3IoO2k8YSYmaXNXaGl0ZVNwYWNlKGVbaV0pOylpKys7bz0hMDticmVha31pKyt9cmV0dXJue2ZvdW5kOm8sbGVuZ3RoOml9fWNsYXNzIFR5cGUxRm9udHtjb25zdHJ1Y3RvcihlLHQsbil7bGV0IGE9bi5sZW5ndGgxLHM9bi5sZW5ndGgyLHI9dC5wZWVrQnl0ZXMoNik7Y29uc3QgaT0xMjg9PT1yWzBdJiYxPT09clsxXTtpZihpKXt0LnNraXAoNik7YT1yWzVdPDwyNHxyWzRdPDwxNnxyWzNdPDw4fHJbMl19Y29uc3Qgbz1mdW5jdGlvbiBnZXRIZWFkZXJCbG9jayhlLHQpe2NvbnN0IG49WzEwMSwxMDEsMTIwLDEwMSw5OV0sYT1lLnBvcztsZXQgcyxyLGksbzt0cnl7cz1lLmdldEJ5dGVzKHQpO3I9cy5sZW5ndGh9Y2F0Y2h7fWlmKHI9PT10KXtpPWZpbmRCbG9jayhzLG4sdC0yKm4ubGVuZ3RoKTtpZihpLmZvdW5kJiZpLmxlbmd0aD09PXQpcmV0dXJue3N0cmVhbTpuZXcgU3RyZWFtKHMpLGxlbmd0aDp0fX13YXJuKCdJbnZhbGlkICJMZW5ndGgxIiBwcm9wZXJ0eSBpbiBUeXBlMSBmb250IC0tIHRyeWluZyB0byByZWNvdmVyLicpO2UucG9zPWE7Zm9yKDs7KXtpPWZpbmRCbG9jayhlLnBlZWtCeXRlcygyMDQ4KSxuLDApO2lmKDA9PT1pLmxlbmd0aClicmVhaztlLnBvcys9aS5sZW5ndGg7aWYoaS5mb3VuZCl7bz1lLnBvcy1hO2JyZWFrfX1lLnBvcz1hO2lmKG8pcmV0dXJue3N0cmVhbTpuZXcgU3RyZWFtKGUuZ2V0Qnl0ZXMobykpLGxlbmd0aDpvfTt3YXJuKCdVbmFibGUgdG8gcmVjb3ZlciAiTGVuZ3RoMSIgcHJvcGVydHkgaW4gVHlwZTEgZm9udCAtLSB1c2luZyBhcyBpcy4nKTtyZXR1cm57c3RyZWFtOm5ldyBTdHJlYW0oZS5nZXRCeXRlcyh0KSksbGVuZ3RoOnR9fSh0LGEpO25ldyBUeXBlMVBhcnNlcihvLnN0cmVhbSwhMSxxYSkuZXh0cmFjdEZvbnRIZWFkZXIobik7aWYoaSl7cj10LmdldEJ5dGVzKDYpO3M9cls1XTw8MjR8cls0XTw8MTZ8clszXTw8OHxyWzJdfWNvbnN0IGw9ZnVuY3Rpb24gZ2V0RWV4ZWNCbG9jayhlLHQpe2NvbnN0IG49ZS5nZXRCeXRlcygpO2lmKDA9PT1uLmxlbmd0aCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoImdldEVleGVjQmxvY2sgLSBubyBmb250IHByb2dyYW0gZm91bmQuIik7cmV0dXJue3N0cmVhbTpuZXcgU3RyZWFtKG4pLGxlbmd0aDpuLmxlbmd0aH19KHQpLGY9bmV3IFR5cGUxUGFyc2VyKGwuc3RyZWFtLCEwLHFhKS5leHRyYWN0Rm9udFByb2dyYW0obik7Zm9yKGNvbnN0IGUgaW4gZi5wcm9wZXJ0aWVzKW5bZV09Zi5wcm9wZXJ0aWVzW2VdO2NvbnN0IGM9Zi5jaGFyc3RyaW5ncyxoPXRoaXMuZ2V0VHlwZTJDaGFyc3RyaW5ncyhjKSx1PXRoaXMuZ2V0VHlwZTJTdWJycyhmLnN1YnJzKTt0aGlzLmNoYXJzdHJpbmdzPWM7dGhpcy5kYXRhPXRoaXMud3JhcChlLGgsdGhpcy5jaGFyc3RyaW5ncyx1LG4pO3RoaXMuc2VhY3M9dGhpcy5nZXRTZWFjcyhmLmNoYXJzdHJpbmdzKX1nZXQgbnVtR2x5cGhzKCl7cmV0dXJuIHRoaXMuY2hhcnN0cmluZ3MubGVuZ3RoKzF9Z2V0Q2hhcnNldCgpe2NvbnN0IGU9WyIubm90ZGVmIl07Zm9yKGNvbnN0e2dseXBoTmFtZTp0fW9mIHRoaXMuY2hhcnN0cmluZ3MpZS5wdXNoKHQpO3JldHVybiBlfWdldEdseXBoTWFwcGluZyhlKXtjb25zdCB0PXRoaXMuY2hhcnN0cmluZ3M7aWYoZS5jb21wb3NpdGUpe2NvbnN0IG49T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGE9MCxzPXQubGVuZ3RoO2E8czthKyspe25bZS5jTWFwLmNoYXJDb2RlT2YoYSldPWErMX1yZXR1cm4gbn1jb25zdCBuPVsiLm5vdGRlZiJdO2xldCBhLHM7Zm9yKHM9MDtzPHQubGVuZ3RoO3MrKyluLnB1c2godFtzXS5nbHlwaE5hbWUpO2NvbnN0IHI9ZS5idWlsdEluRW5jb2Rpbmc7aWYocil7YT1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBlIGluIHIpe3M9bi5pbmRleE9mKHJbZV0pO3M+PTAmJihhW2VdPXMpfX1yZXR1cm4gdHlwZTFGb250R2x5cGhNYXBwaW5nKGUsYSxuKX1oYXNHbHlwaElkKGUpe2lmKGU8MHx8ZT49dGhpcy5udW1HbHlwaHMpcmV0dXJuITE7aWYoMD09PWUpcmV0dXJuITA7cmV0dXJuIHRoaXMuY2hhcnN0cmluZ3NbZS0xXS5jaGFyc3RyaW5nLmxlbmd0aD4wfWdldFNlYWNzKGUpe2NvbnN0IHQ9W107Zm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKXtjb25zdCBhPWVbbl07YS5zZWFjJiYodFtuKzFdPWEuc2VhYyl9cmV0dXJuIHR9Z2V0VHlwZTJDaGFyc3RyaW5ncyhlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIG9mIGUpdC5wdXNoKG4uY2hhcnN0cmluZyk7cmV0dXJuIHR9Z2V0VHlwZTJTdWJycyhlKXtsZXQgdD0wO2NvbnN0IG49ZS5sZW5ndGg7dD1uPDExMzM/MTA3Om48MzM3Njk/MTEzMTozMjc2ODtjb25zdCBhPVtdO2xldCBzO2ZvcihzPTA7czx0O3MrKylhLnB1c2goWzExXSk7Zm9yKHM9MDtzPG47cysrKWEucHVzaChlW3NdKTtyZXR1cm4gYX13cmFwKGUsdCxuLGEscyl7Y29uc3Qgcj1uZXcgQ0ZGO3IuaGVhZGVyPW5ldyBDRkZIZWFkZXIoMSwwLDQsNCk7ci5uYW1lcz1bZV07Y29uc3QgaT1uZXcgQ0ZGVG9wRGljdDtpLnNldEJ5TmFtZSgidmVyc2lvbiIsMzkxKTtpLnNldEJ5TmFtZSgiTm90aWNlIiwzOTIpO2kuc2V0QnlOYW1lKCJGdWxsTmFtZSIsMzkzKTtpLnNldEJ5TmFtZSgiRmFtaWx5TmFtZSIsMzk0KTtpLnNldEJ5TmFtZSgiV2VpZ2h0IiwzOTUpO2kuc2V0QnlOYW1lKCJFbmNvZGluZyIsbnVsbCk7aS5zZXRCeU5hbWUoIkZvbnRNYXRyaXgiLHMuZm9udE1hdHJpeCk7aS5zZXRCeU5hbWUoIkZvbnRCQm94IixzLmJib3gpO2kuc2V0QnlOYW1lKCJjaGFyc2V0IixudWxsKTtpLnNldEJ5TmFtZSgiQ2hhclN0cmluZ3MiLG51bGwpO2kuc2V0QnlOYW1lKCJQcml2YXRlIixudWxsKTtyLnRvcERpY3Q9aTtjb25zdCBvPW5ldyBDRkZTdHJpbmdzO28uYWRkKCJWZXJzaW9uIDAuMTEiKTtvLmFkZCgiU2VlIG9yaWdpbmFsIG5vdGljZSIpO28uYWRkKGUpO28uYWRkKGUpO28uYWRkKCJNZWRpdW0iKTtyLnN0cmluZ3M9bztyLmdsb2JhbFN1YnJJbmRleD1uZXcgQ0ZGSW5kZXg7Y29uc3QgbD10Lmxlbmd0aCxmPVsiLm5vdGRlZiJdO2xldCBjLGg7Zm9yKGM9MDtjPGw7YysrKXtjb25zdCBlPW5bY10uZ2x5cGhOYW1lOy0xPT09T2EuaW5kZXhPZihlKSYmby5hZGQoZSk7Zi5wdXNoKGUpfXIuY2hhcnNldD1uZXcgQ0ZGQ2hhcnNldCghMSwwLGYpO2NvbnN0IHU9bmV3IENGRkluZGV4O3UuYWRkKFsxMzksMTRdKTtmb3IoYz0wO2M8bDtjKyspdS5hZGQodFtjXSk7ci5jaGFyU3RyaW5ncz11O2NvbnN0IG09bmV3IENGRlByaXZhdGVEaWN0O20uc2V0QnlOYW1lKCJTdWJycyIsbnVsbCk7Y29uc3QgcD1bIkJsdWVWYWx1ZXMiLCJPdGhlckJsdWVzIiwiRmFtaWx5Qmx1ZXMiLCJGYW1pbHlPdGhlckJsdWVzIiwiU3RlbVNuYXBIIiwiU3RlbVNuYXBWIiwiQmx1ZVNoaWZ0IiwiQmx1ZUZ1enoiLCJCbHVlU2NhbGUiLCJMYW5ndWFnZUdyb3VwIiwiRXhwYW5zaW9uRmFjdG9yIiwiRm9yY2VCb2xkIiwiU3RkSFciLCJTdGRWVyJdO2ZvcihjPTAsaD1wLmxlbmd0aDtjPGg7YysrKXtjb25zdCBlPXBbY107aWYoIShlIGluIHMucHJpdmF0ZURhdGEpKWNvbnRpbnVlO2NvbnN0IHQ9cy5wcml2YXRlRGF0YVtlXTtpZihBcnJheS5pc0FycmF5KHQpKWZvcihsZXQgZT10Lmxlbmd0aC0xO2U+MDtlLS0pdFtlXS09dFtlLTFdO20uc2V0QnlOYW1lKGUsdCl9ci50b3BEaWN0LnByaXZhdGVEaWN0PW07Y29uc3QgZD1uZXcgQ0ZGSW5kZXg7Zm9yKGM9MCxoPWEubGVuZ3RoO2M8aDtjKyspZC5hZGQoYVtjXSk7bS5zdWJyc0luZGV4PWQ7cmV0dXJuIG5ldyBDRkZDb21waWxlcihyKS5jb21waWxlKCl9fWNvbnN0IGlzPVtbNTczNDQsNjM3NDNdLFsxMDQ4NTc2LDExMTQxMDldXSxvcz0xZTMsbHM9WyJhc2NlbnQiLCJiYm94IiwiYmxhY2siLCJib2xkIiwiY2hhclByb2NPcGVyYXRvckxpc3QiLCJjc3NGb250SW5mbyIsImRhdGEiLCJkZWZhdWx0Vk1ldHJpY3MiLCJkZWZhdWx0V2lkdGgiLCJkZXNjZW50IiwiZGlzYWJsZUZvbnRGYWNlIiwiZmFsbGJhY2tOYW1lIiwiZm9udEV4dHJhUHJvcGVydGllcyIsImZvbnRNYXRyaXgiLCJpc0ludmFsaWRQREZqc0ZvbnQiLCJpc1R5cGUzRm9udCIsIml0YWxpYyIsImxvYWRlZE5hbWUiLCJtaW1ldHlwZSIsIm1pc3NpbmdGaWxlIiwibmFtZSIsInJlbWVhc3VyZSIsInN5c3RlbUZvbnRJbmZvIiwidmVydGljYWwiXSxmcz1bImNNYXAiLCJjb21wb3NpdGUiLCJkZWZhdWx0RW5jb2RpbmciLCJkaWZmZXJlbmNlcyIsImlzTW9ub3NwYWNlIiwiaXNTZXJpZkZvbnQiLCJpc1N5bWJvbGljRm9udCIsInNlYWNNYXAiLCJzdWJ0eXBlIiwidG9Gb250Q2hhciIsInRvVW5pY29kZSIsInR5cGUiLCJ2bWV0cmljcyIsIndpZHRocyJdO2Z1bmN0aW9uIGFkanVzdFdpZHRocyhlKXtpZighZS5mb250TWF0cml4KXJldHVybjtpZihlLmZvbnRNYXRyaXhbMF09PT10WzBdKXJldHVybjtjb25zdCBuPS4wMDEvZS5mb250TWF0cml4WzBdLGE9ZS53aWR0aHM7Zm9yKGNvbnN0IGUgaW4gYSlhW2VdKj1uO2UuZGVmYXVsdFdpZHRoKj1ufWZ1bmN0aW9uIGFtZW5kRmFsbGJhY2tUb1VuaWNvZGUoZSl7aWYoIWUuZmFsbGJhY2tUb1VuaWNvZGUpcmV0dXJuO2lmKGUudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXApcmV0dXJuO2NvbnN0IHQ9W107Zm9yKGNvbnN0IG4gaW4gZS5mYWxsYmFja1RvVW5pY29kZSllLnRvVW5pY29kZS5oYXMobil8fCh0W25dPWUuZmFsbGJhY2tUb1VuaWNvZGVbbl0pO3QubGVuZ3RoPjAmJmUudG9Vbmljb2RlLmFtZW5kKHQpfWNsYXNzIGZvbnRzX0dseXBoe2NvbnN0cnVjdG9yKGUsdCxuLGEscyxyLGksbyxsKXt0aGlzLm9yaWdpbmFsQ2hhckNvZGU9ZTt0aGlzLmZvbnRDaGFyPXQ7dGhpcy51bmljb2RlPW47dGhpcy5hY2NlbnQ9YTt0aGlzLndpZHRoPXM7dGhpcy52bWV0cmljPXI7dGhpcy5vcGVyYXRvckxpc3RJZD1pO3RoaXMuaXNTcGFjZT1vO3RoaXMuaXNJbkZvbnQ9bH1nZXQgY2F0ZWdvcnkoKXtyZXR1cm4gc2hhZG93KHRoaXMsImNhdGVnb3J5IixmdW5jdGlvbiBnZXRDaGFyVW5pY29kZUNhdGVnb3J5KGUpe2NvbnN0IHQ9eWEuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7Y29uc3Qgbj1lLm1hdGNoKGthKSxhPXtpc1doaXRlc3BhY2U6ISFuPy5bMV0saXNaZXJvV2lkdGhEaWFjcml0aWM6ISFuPy5bMl0saXNJbnZpc2libGVGb3JtYXRNYXJrOiEhbj8uWzNdfTt5YS5zZXQoZSxhKTtyZXR1cm4gYX0odGhpcy51bmljb2RlKSwhMCl9fWZ1bmN0aW9uIGludDE2KGUsdCl7cmV0dXJuKGU8PDgpK3R9ZnVuY3Rpb24gd3JpdGVTaWduZWRJbnQxNihlLHQsbil7ZVt0KzFdPW47ZVt0XT1uPj4+OH1mdW5jdGlvbiBzaWduZWRJbnQxNihlLHQpe2NvbnN0IG49KGU8PDgpK3Q7cmV0dXJuIDMyNzY4Jm4/bi02NTUzNjpufWZ1bmN0aW9uIHN0cmluZzE2KGUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjgmMjU1LDI1NSZlKX1mdW5jdGlvbiBzYWZlU3RyaW5nMTYoZSl7ZT4zMjc2Nz9lPTMyNzY3OmU8LTMyNzY4JiYoZT0tMzI3NjgpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjgmMjU1LDI1NSZlKX1mdW5jdGlvbiBpc1RydWVUeXBlQ29sbGVjdGlvbkZpbGUoZSl7cmV0dXJuInR0Y2YiPT09Ynl0ZXNUb1N0cmluZyhlLnBlZWtCeXRlcyg0KSl9ZnVuY3Rpb24gZ2V0Rm9udEZpbGVUeXBlKGUse3R5cGU6dCxzdWJ0eXBlOm4sY29tcG9zaXRlOmF9KXtsZXQgcyxyO2lmKGZ1bmN0aW9uIGlzVHJ1ZVR5cGVGaWxlKGUpe2NvbnN0IHQ9ZS5wZWVrQnl0ZXMoNCk7cmV0dXJuIDY1NTM2PT09cmVhZFVpbnQzMih0LDApfHwidHJ1ZSI9PT1ieXRlc1RvU3RyaW5nKHQpfShlKXx8aXNUcnVlVHlwZUNvbGxlY3Rpb25GaWxlKGUpKXM9YT8iQ0lERm9udFR5cGUyIjoiVHJ1ZVR5cGUiO2Vsc2UgaWYoZnVuY3Rpb24gaXNPcGVuVHlwZUZpbGUoZSl7cmV0dXJuIk9UVE8iPT09Ynl0ZXNUb1N0cmluZyhlLnBlZWtCeXRlcyg0KSl9KGUpKXM9YT8iQ0lERm9udFR5cGUyIjoiT3BlblR5cGUiO2Vsc2UgaWYoZnVuY3Rpb24gaXNUeXBlMUZpbGUoZSl7Y29uc3QgdD1lLnBlZWtCeXRlcygyKTtyZXR1cm4gMzc9PT10WzBdJiYzMz09PXRbMV18fDEyOD09PXRbMF0mJjE9PT10WzFdfShlKSlzPWE/IkNJREZvbnRUeXBlMCI6Ik1NVHlwZTEiPT09dD8iTU1UeXBlMSI6IlR5cGUxIjtlbHNlIGlmKGZ1bmN0aW9uIGlzQ0ZGRmlsZShlKXtjb25zdCB0PWUucGVla0J5dGVzKDQpO3JldHVybiB0WzBdPj0xJiZ0WzNdPj0xJiZ0WzNdPD00fShlKSlpZihhKXtzPSJDSURGb250VHlwZTAiO3I9IkNJREZvbnRUeXBlMEMifWVsc2V7cz0iTU1UeXBlMSI9PT10PyJNTVR5cGUxIjoiVHlwZTEiO3I9IlR5cGUxQyJ9ZWxzZXt3YXJuKCJnZXRGb250RmlsZVR5cGU6IFVuYWJsZSB0byBkZXRlY3QgY29ycmVjdCBmb250IGZpbGUgVHlwZS9TdWJ0eXBlLiIpO3M9dDtyPW59cmV0dXJuW3Mscl19ZnVuY3Rpb24gYXBwbHlTdGFuZGFyZEZvbnRHbHlwaE1hcChlLHQpe2Zvcihjb25zdCBuIGluIHQpZVsrbl09dFtuXX1mdW5jdGlvbiBidWlsZFRvRm9udENoYXIoZSx0LG4pe2NvbnN0IGE9W107bGV0IHM7Zm9yKGxldCBuPTAscj1lLmxlbmd0aDtuPHI7bisrKXtzPWdldFVuaWNvZGVGb3JHbHlwaChlW25dLHQpOy0xIT09cyYmKGFbbl09cyl9Zm9yKGNvbnN0IGUgaW4gbil7cz1nZXRVbmljb2RlRm9yR2x5cGgobltlXSx0KTstMSE9PXMmJihhWytlXT1zKX1yZXR1cm4gYX1mdW5jdGlvbiBpc01hY05hbWVSZWNvcmQoZSl7cmV0dXJuIDE9PT1lLnBsYXRmb3JtJiYwPT09ZS5lbmNvZGluZyYmMD09PWUubGFuZ3VhZ2V9ZnVuY3Rpb24gaXNXaW5OYW1lUmVjb3JkKGUpe3JldHVybiAzPT09ZS5wbGF0Zm9ybSYmMT09PWUuZW5jb2RpbmcmJjEwMzM9PT1lLmxhbmd1YWdlfWZ1bmN0aW9uIGNvbnZlcnRDaWRTdHJpbmcoZSx0LG49ITEpe3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybiB0LmNoYXJDb2RlQXQoMCk7Y2FzZSAyOnJldHVybiB0LmNoYXJDb2RlQXQoMCk8PDh8dC5jaGFyQ29kZUF0KDEpfWNvbnN0IGE9YFVuc3VwcG9ydGVkIENJRCBzdHJpbmcgKGNoYXJDb2RlICR7ZX0pOiAiJHt0fSIuYDtpZihuKXRocm93IG5ldyBGb3JtYXRFcnJvcihhKTt3YXJuKGEpO3JldHVybiB0fWZ1bmN0aW9uIGFkanVzdE1hcHBpbmcoZSx0LG4sYSl7Y29uc3Qgcz1PYmplY3QuY3JlYXRlKG51bGwpLHI9bmV3IE1hcCxpPVtdLG89bmV3IFNldDtsZXQgbD0wO2xldCBmPWlzW2xdWzBdLGM9aXNbbF1bMV07Y29uc3QgaXNJblByaXZhdGVBcmVhPWU9PmlzWzBdWzBdPD1lJiZlPD1pc1swXVsxXXx8aXNbMV1bMF08PWUmJmU8PWlzWzFdWzFdO2xldCBoPW51bGw7Zm9yKGNvbnN0IHUgaW4gZSl7bGV0IG09ZVt1XTtpZighdChtKSljb250aW51ZTtpZihmPmMpe2wrKztpZihsPj1pcy5sZW5ndGgpe3dhcm4oIlJhbiBvdXQgb2Ygc3BhY2UgaW4gZm9udCBwcml2YXRlIHVzZSBhcmVhLiIpO2JyZWFrfWY9aXNbbF1bMF07Yz1pc1tsXVsxXX1jb25zdCBwPWYrKzswPT09bSYmKG09bik7bGV0IGQ9YS5nZXQodSk7aWYoInN0cmluZyI9PXR5cGVvZiBkKWlmKDE9PT1kLmxlbmd0aClkPWQuY29kZVBvaW50QXQoMCk7ZWxzZXtpZighaCl7aD1uZXcgTWFwO2ZvcihsZXQgZT02NDI1NjtlPD02NDMzNTtlKyspe2NvbnN0IHQ9U3RyaW5nLmZyb21DaGFyQ29kZShlKS5ub3JtYWxpemUoIk5GS0QiKTt0Lmxlbmd0aD4xJiZoLnNldCh0LGUpfX1kPWguZ2V0KGQpfHxkLmNvZGVQb2ludEF0KDApfWlmKGQmJiFpc0luUHJpdmF0ZUFyZWEoZCkmJiFvLmhhcyhtKSl7ci5zZXQoZCxtKTtvLmFkZChtKX1zW3BdPW07aVt1XT1wfXJldHVybnt0b0ZvbnRDaGFyOmksY2hhckNvZGVUb0dseXBoSWQ6cyx0b1VuaWNvZGVFeHRyYU1hcDpyLG5leHRBdmFpbGFibGVGb250Q2hhckNvZGU6Zn19ZnVuY3Rpb24gY3JlYXRlQ21hcFRhYmxlKGUsdCxuKXtjb25zdCBhPWZ1bmN0aW9uIGdldFJhbmdlcyhlLHQsbil7Y29uc3QgYT1bXTtmb3IoY29uc3QgdCBpbiBlKWVbdF0+PW58fGEucHVzaCh7Zm9udENoYXJDb2RlOjB8dCxnbHlwaElkOmVbdF19KTtpZih0KWZvcihjb25zdFtlLHNdb2YgdClzPj1ufHxhLnB1c2goe2ZvbnRDaGFyQ29kZTplLGdseXBoSWQ6c30pOzA9PT1hLmxlbmd0aCYmYS5wdXNoKHtmb250Q2hhckNvZGU6MCxnbHlwaElkOjB9KTthLnNvcnQoKGUsdCk9PmUuZm9udENoYXJDb2RlLXQuZm9udENoYXJDb2RlKTtjb25zdCBzPVtdLHI9YS5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxyOyl7Y29uc3QgdD1hW2VdLmZvbnRDaGFyQ29kZSxuPVthW2VdLmdseXBoSWRdOysrZTtsZXQgaT10O2Zvcig7ZTxyJiZpKzE9PT1hW2VdLmZvbnRDaGFyQ29kZTspe24ucHVzaChhW2VdLmdseXBoSWQpOysraTsrK2U7aWYoNjU1MzU9PT1pKWJyZWFrfXMucHVzaChbdCxpLG5dKX1yZXR1cm4gc30oZSx0LG4pLHM9YS5hdCgtMSlbMV0+NjU1MzU/MjoxO2xldCByLGksbyxsLGY9IlwwXDAiK3N0cmluZzE2KHMpKyJcMANcMAEiK3N0cmluZzMyKDQrOCpzKTtmb3Iocj1hLmxlbmd0aC0xO3I+PTAmJiEoYVtyXVswXTw9NjU1MzUpOy0tcik7Y29uc3QgYz1yKzE7YVtyXVswXTw2NTUzNSYmNjU1MzU9PT1hW3JdWzFdJiYoYVtyXVsxXT02NTUzNCk7Y29uc3QgaD1hW3JdWzFdPDY1NTM1PzE6MCx1PWMraCxtPU9wZW5UeXBlRmlsZUJ1aWxkZXIuZ2V0U2VhcmNoUGFyYW1zKHUsMik7bGV0IHAsZCxnLGIsdz0iIixqPSIiLGs9IiIseT0iIixxPSIiLHY9MDtmb3Iocj0wLGk9YztyPGk7cisrKXtwPWFbcl07ZD1wWzBdO2c9cFsxXTt3Kz1zdHJpbmcxNihkKTtqKz1zdHJpbmcxNihnKTtiPXBbMl07bGV0IGU9ITA7Zm9yKG89MSxsPWIubGVuZ3RoO288bDsrK28paWYoYltvXSE9PWJbby0xXSsxKXtlPSExO2JyZWFrfWlmKGUpe2srPXN0cmluZzE2KGJbMF0tZCY2NTUzNSk7eSs9c3RyaW5nMTYoMCl9ZWxzZXtjb25zdCBlPTIqKHUtcikrMip2O3YrPWctZCsxO2srPXN0cmluZzE2KDApO3krPXN0cmluZzE2KGUpO2ZvcihvPTAsbD1iLmxlbmd0aDtvPGw7KytvKXErPXN0cmluZzE2KGJbb10pfX1pZihoPjApe2orPSLDv8O/Ijt3Kz0iw7/DvyI7ays9IlwwASI7eSs9IlwwXDAifWNvbnN0IFM9IlwwXDAiK3N0cmluZzE2KDIqdSkrc3RyaW5nMTYobS5yYW5nZSkrc3RyaW5nMTYobS5lbnRyeSkrc3RyaW5nMTYobS5yYW5nZVNoaWZ0KStqKyJcMFwwIit3K2sreStxO2xldCB4PSIiLEM9IiI7aWYocz4xKXtmKz0iXDADXDBcbiIrc3RyaW5nMzIoNCs4KnMrNCtTLmxlbmd0aCk7eD0iIjtmb3Iocj0wLGk9YS5sZW5ndGg7cjxpO3IrKyl7cD1hW3JdO2Q9cFswXTtiPXBbMl07bGV0IGU9YlswXTtmb3Iobz0xLGw9Yi5sZW5ndGg7bzxsOysrbylpZihiW29dIT09YltvLTFdKzEpe2c9cFswXStvLTE7eCs9c3RyaW5nMzIoZCkrc3RyaW5nMzIoZykrc3RyaW5nMzIoZSk7ZD1nKzE7ZT1iW29dfXgrPXN0cmluZzMyKGQpK3N0cmluZzMyKHBbMV0pK3N0cmluZzMyKGUpfUM9IlwwXGZcMFwwIitzdHJpbmczMih4Lmxlbmd0aCsxNikrIlwwXDBcMFwwIitzdHJpbmczMih4Lmxlbmd0aC8xMil9cmV0dXJuIGYrIlwwBCIrc3RyaW5nMTYoUy5sZW5ndGgrNCkrUytDK3h9ZnVuY3Rpb24gY3JlYXRlT1MyVGFibGUoZSx0LG4pe258fD17dW5pdHNQZXJFbTowLHlNYXg6MCx5TWluOjAsYXNjZW50OjAsZGVzY2VudDowfTtsZXQgYT0wLHM9MCxyPTAsaT0wLG89bnVsbCxsPTAsZj0tMTtpZih0KXtmb3IobGV0IGUgaW4gdCl7ZXw9MDsobz5lfHwhbykmJihvPWUpO2w8ZSYmKGw9ZSk7Zj1nZXRVbmljb2RlUmFuZ2VGb3IoZSxmKTtpZihmPDMyKWF8PTE8PGY7ZWxzZSBpZihmPDY0KXN8PTE8PGYtMzI7ZWxzZSBpZihmPDk2KXJ8PTE8PGYtNjQ7ZWxzZXtpZighKGY8MTIzKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVuaWNvZGUgcmFuZ2VzIEJpdHMgPiAxMjMgYXJlIHJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2FnZSIpO2l8PTE8PGYtOTZ9fWw+NjU1MzUmJihsPTY1NTM1KX1lbHNle289MDtsPTI1NX1jb25zdCBjPWUuYmJveHx8WzAsMCwwLDBdLGg9bi51bml0c1BlckVtfHwoZS5mb250TWF0cml4PzEvTWF0aC5tYXgoLi4uZS5mb250TWF0cml4LnNsaWNlKDAsNCkubWFwKE1hdGguYWJzKSk6MWUzKSx1PWUuYXNjZW50U2NhbGVkPzE6aC9vcyxtPW4uYXNjZW50fHxNYXRoLnJvdW5kKHUqKGUuYXNjZW50fHxjWzNdKSk7bGV0IHA9bi5kZXNjZW50fHxNYXRoLnJvdW5kKHUqKGUuZGVzY2VudHx8Y1sxXSkpO3A+MCYmZS5kZXNjZW50PjAmJmNbMV08MCYmKHA9LXApO2NvbnN0IGQ9bi55TWF4fHxtLGc9LW4ueU1pbnx8LXA7cmV0dXJuIlwwAwIkAcO0XDAFXDBcMALCigLCu1wwXDBcMMKMAsKKAsK7XDBcMAHDn1x4MDAxAQJcMFwwXDBcMAYiK1N0cmluZy5mcm9tQ2hhckNvZGUoZS5maXhlZFBpdGNoPzk6MCkrIlwwXDBcMFwwXDBcMCIrc3RyaW5nMzIoYSkrc3RyaW5nMzIocykrc3RyaW5nMzIocikrc3RyaW5nMzIoaSkrIioyMSoiK3N0cmluZzE2KGUuaXRhbGljQW5nbGU/MTowKStzdHJpbmcxNihvfHxlLmZpcnN0Q2hhcikrc3RyaW5nMTYobHx8ZS5sYXN0Q2hhcikrc3RyaW5nMTYobSkrc3RyaW5nMTYocCkrIlwwZCIrc3RyaW5nMTYoZCkrc3RyaW5nMTYoZykrIlwwXDBcMFwwXDBcMFwwXDAiK3N0cmluZzE2KGUueEhlaWdodCkrc3RyaW5nMTYoZS5jYXBIZWlnaHQpK3N0cmluZzE2KDApK3N0cmluZzE2KG98fGUuZmlyc3RDaGFyKSsiXDADIn1mdW5jdGlvbiBjcmVhdGVQb3N0VGFibGUoZSl7cmV0dXJuIlwwA1wwXDAiK3N0cmluZzMyKE1hdGguZmxvb3IoNjU1MzYqZS5pdGFsaWNBbmdsZSkpKyJcMFwwXDBcMCIrc3RyaW5nMzIoZS5maXhlZFBpdGNoPzE6MCkrIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIn1mdW5jdGlvbiBjcmVhdGVQb3N0c2NyaXB0TmFtZShlKXtyZXR1cm4gZS5yZXBsYWNlQWxsKC9bXlx4MjEtXHg3RV18W1tcXSgpe308Pi8lXS9nLCIiKS5zbGljZSgwLDYzKX1mdW5jdGlvbiBjcmVhdGVOYW1lVGFibGUoZSx0KXt0fHwodD1bW10sW11dKTtjb25zdCBuPVt0WzBdWzBdfHwiT3JpZ2luYWwgbGljZW5jZSIsdFswXVsxXXx8ZSx0WzBdWzJdfHwiVW5rbm93biIsdFswXVszXXx8InVuaXF1ZUlEIix0WzBdWzRdfHxlLHRbMF1bNV18fCJWZXJzaW9uIDAuMTEiLHRbMF1bNl18fGNyZWF0ZVBvc3RzY3JpcHROYW1lKGUpLHRbMF1bN118fCJVbmtub3duIix0WzBdWzhdfHwiVW5rbm93biIsdFswXVs5XXx8IlVua25vd24iXSxhPVtdO2xldCBzLHIsaSxvLGw7Zm9yKHM9MCxyPW4ubGVuZ3RoO3M8cjtzKyspe2w9dFsxXVtzXXx8bltzXTtjb25zdCBlPVtdO2ZvcihpPTAsbz1sLmxlbmd0aDtpPG87aSsrKWUucHVzaChzdHJpbmcxNihsLmNoYXJDb2RlQXQoaSkpKTthLnB1c2goZS5qb2luKCIiKSl9Y29uc3QgZj1bbixhXSxjPVsiXDABIiwiXDADIl0saD1bIlwwXDAiLCJcMAEiXSx1PVsiXDBcMCIsIgRcdCJdLG09bi5sZW5ndGgqYy5sZW5ndGg7bGV0IHA9IlwwXDAiK3N0cmluZzE2KG0pK3N0cmluZzE2KDEyKm0rNiksZD0wO2ZvcihzPTAscj1jLmxlbmd0aDtzPHI7cysrKXtjb25zdCBlPWZbc107Zm9yKGk9MCxvPWUubGVuZ3RoO2k8bztpKyspe2w9ZVtpXTtwKz1jW3NdK2hbc10rdVtzXStzdHJpbmcxNihpKStzdHJpbmcxNihsLmxlbmd0aCkrc3RyaW5nMTYoZCk7ZCs9bC5sZW5ndGh9fXArPW4uam9pbigiIikrYS5qb2luKCIiKTtyZXR1cm4gcH1jbGFzcyBGb250e2NvbnN0cnVjdG9yKGUsdCxuLGEpe3RoaXMubmFtZT1lO3RoaXMucHNOYW1lPW51bGw7dGhpcy5taW1ldHlwZT1udWxsO3RoaXMuZGlzYWJsZUZvbnRGYWNlPWEuZGlzYWJsZUZvbnRGYWNlO3RoaXMuZm9udEV4dHJhUHJvcGVydGllcz1hLmZvbnRFeHRyYVByb3BlcnRpZXM7dGhpcy5sb2FkZWROYW1lPW4ubG9hZGVkTmFtZTt0aGlzLmlzVHlwZTNGb250PW4uaXNUeXBlM0ZvbnQ7dGhpcy5taXNzaW5nRmlsZT0hMTt0aGlzLmNzc0ZvbnRJbmZvPW4uY3NzRm9udEluZm87dGhpcy5fY2hhcnNDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXMuX2dseXBoQ2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgcz0hIShuLmZsYWdzJlNhKTtpZighcyYmIW4uaXNTaW11bGF0ZWRGbGFncyl7Y29uc3QgdD1OYSgpLG49TGEoKSxhPVVhKCk7Zm9yKGNvbnN0IHIgb2YgZS5zcGxpdCgiKyIpKXtsZXQgZT1ub3JtYWxpemVGb250TmFtZShyKTtlPXRbZV18fG5bZV18fGU7ZT1lLnNwbGl0KCItIiwxKVswXTtpZihhW2VdKXtzPSEwO2JyZWFrfX19dGhpcy5pc1NlcmlmRm9udD1zO3RoaXMuaXNTeW1ib2xpY0ZvbnQ9ISEobi5mbGFncyZ4YSk7dGhpcy5pc01vbm9zcGFjZT0hIShuLmZsYWdzJnZhKTtsZXR7dHlwZTpyLHN1YnR5cGU6aX09bjt0aGlzLnR5cGU9cjt0aGlzLnN1YnR5cGU9aTt0aGlzLnN5c3RlbUZvbnRJbmZvPW4uc3lzdGVtRm9udEluZm87Y29uc3Qgbz1lLm1hdGNoKC9eSW52YWxpZFBERmpzRm9udF8oLiopX1xkKyQvKTt0aGlzLmlzSW52YWxpZFBERmpzRm9udD0hIW87dGhpcy5pc0ludmFsaWRQREZqc0ZvbnQ/dGhpcy5mYWxsYmFja05hbWU9b1sxXTp0aGlzLmlzTW9ub3NwYWNlP3RoaXMuZmFsbGJhY2tOYW1lPSJtb25vc3BhY2UiOnRoaXMuaXNTZXJpZkZvbnQ/dGhpcy5mYWxsYmFja05hbWU9InNlcmlmIjp0aGlzLmZhbGxiYWNrTmFtZT0ic2Fucy1zZXJpZiI7aWYodGhpcy5zeXN0ZW1Gb250SW5mbz8uZ3Vlc3NGYWxsYmFjayl7dGhpcy5zeXN0ZW1Gb250SW5mby5ndWVzc0ZhbGxiYWNrPSExO3RoaXMuc3lzdGVtRm9udEluZm8uY3NzKz1gLCR7dGhpcy5mYWxsYmFja05hbWV9YH10aGlzLmRpZmZlcmVuY2VzPW4uZGlmZmVyZW5jZXM7dGhpcy53aWR0aHM9bi53aWR0aHM7dGhpcy5kZWZhdWx0V2lkdGg9bi5kZWZhdWx0V2lkdGg7dGhpcy5jb21wb3NpdGU9bi5jb21wb3NpdGU7dGhpcy5jTWFwPW4uY01hcDt0aGlzLmNhcEhlaWdodD1uLmNhcEhlaWdodC9vczt0aGlzLmFzY2VudD1uLmFzY2VudC9vczt0aGlzLmRlc2NlbnQ9bi5kZXNjZW50L29zO3RoaXMubGluZUhlaWdodD10aGlzLmFzY2VudC10aGlzLmRlc2NlbnQ7dGhpcy5mb250TWF0cml4PW4uZm9udE1hdHJpeDt0aGlzLmJib3g9bi5iYm94O3RoaXMuZGVmYXVsdEVuY29kaW5nPW4uZGVmYXVsdEVuY29kaW5nO3RoaXMudG9Vbmljb2RlPW4udG9Vbmljb2RlO3RoaXMudG9Gb250Q2hhcj1bXTtpZigiVHlwZTMiPT09bi50eXBlKXtmb3IobGV0IGU9MDtlPDI1NjtlKyspdGhpcy50b0ZvbnRDaGFyW2VdPXRoaXMuZGlmZmVyZW5jZXNbZV18fG4uZGVmYXVsdEVuY29kaW5nW2VdO3JldHVybn10aGlzLmNpZEVuY29kaW5nPW4uY2lkRW5jb2Rpbmd8fCIiO3RoaXMudmVydGljYWw9ISFuLnZlcnRpY2FsO2lmKHRoaXMudmVydGljYWwpe3RoaXMudm1ldHJpY3M9bi52bWV0cmljczt0aGlzLmRlZmF1bHRWTWV0cmljcz1uLmRlZmF1bHRWTWV0cmljc31pZighdHx8dC5pc0VtcHR5KXt0JiZ3YXJuKCdGb250IGZpbGUgaXMgZW1wdHkgaW4gIicrZSsnIiAoJyt0aGlzLmxvYWRlZE5hbWUrIikiKTt0aGlzLmZhbGxiYWNrVG9TeXN0ZW1Gb250KG4pO3JldHVybn1bcixpXT1nZXRGb250RmlsZVR5cGUodCxuKTtyPT09dGhpcy50eXBlJiZpPT09dGhpcy5zdWJ0eXBlfHxpbmZvKGBJbmNvbnNpc3RlbnQgZm9udCBmaWxlIFR5cGUvU3ViVHlwZSwgZXhwZWN0ZWQ6ICR7dGhpcy50eXBlfS8ke3RoaXMuc3VidHlwZX0gYnV0IGZvdW5kOiAke3J9LyR7aX0uYCk7bGV0IGw7dHJ5e3N3aXRjaChyKXtjYXNlIk1NVHlwZTEiOmluZm8oIk1NVHlwZTEgZm9udCAoIitlKyIpLCBmYWxsaW5nIGJhY2sgdG8gVHlwZTEuIik7Y2FzZSJUeXBlMSI6Y2FzZSJDSURGb250VHlwZTAiOnRoaXMubWltZXR5cGU9ImZvbnQvb3BlbnR5cGUiO2NvbnN0IGE9IlR5cGUxQyI9PT1pfHwiQ0lERm9udFR5cGUwQyI9PT1pP25ldyBDRkZGb250KHQsbik6bmV3IFR5cGUxRm9udChlLHQsbik7YWRqdXN0V2lkdGhzKG4pO2w9dGhpcy5jb252ZXJ0KGUsYSxuKTticmVhaztjYXNlIk9wZW5UeXBlIjpjYXNlIlRydWVUeXBlIjpjYXNlIkNJREZvbnRUeXBlMiI6dGhpcy5taW1ldHlwZT0iZm9udC9vcGVudHlwZSI7bD10aGlzLmNoZWNrQW5kUmVwYWlyKGUsdCxuKTthZGp1c3RXaWR0aHMobik7dGhpcy5pc09wZW5UeXBlJiYocj0iT3BlblR5cGUiKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgRm9udCAke3J9IGlzIG5vdCBzdXBwb3J0ZWRgKX19Y2F0Y2goZSl7d2FybihlKTt0aGlzLmZhbGxiYWNrVG9TeXN0ZW1Gb250KG4pO3JldHVybn1hbWVuZEZhbGxiYWNrVG9Vbmljb2RlKG4pO3RoaXMuZGF0YT1sO3RoaXMudHlwZT1yO3RoaXMuc3VidHlwZT1pO3RoaXMuZm9udE1hdHJpeD1uLmZvbnRNYXRyaXg7dGhpcy53aWR0aHM9bi53aWR0aHM7dGhpcy5kZWZhdWx0V2lkdGg9bi5kZWZhdWx0V2lkdGg7dGhpcy50b1VuaWNvZGU9bi50b1VuaWNvZGU7dGhpcy5zZWFjTWFwPW4uc2VhY01hcH1nZXQgcmVuZGVyZXIoKXtyZXR1cm4gc2hhZG93KHRoaXMsInJlbmRlcmVyIixGb250UmVuZGVyZXJGYWN0b3J5LmNyZWF0ZSh0aGlzLHFhKSl9ZXhwb3J0RGF0YSgpe2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgdCBvZiBscyl7Y29uc3Qgbj10aGlzW3RdO3ZvaWQgMCE9PW4mJihlW3RdPW4pfWlmKCF0aGlzLmZvbnRFeHRyYVByb3BlcnRpZXMpcmV0dXJue2RhdGE6ZX07Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBlIG9mIGZzKXtjb25zdCBuPXRoaXNbZV07dm9pZCAwIT09biYmKHRbZV09bil9cmV0dXJue2RhdGE6ZSxleHRyYTp0fX1mYWxsYmFja1RvU3lzdGVtRm9udChlKXt0aGlzLm1pc3NpbmdGaWxlPSEwO2NvbnN0e25hbWU6dCx0eXBlOm59PXRoaXM7bGV0IGE9bm9ybWFsaXplRm9udE5hbWUodCk7Y29uc3Qgcz1OYSgpLHI9TGEoKSxpPSEhc1thXSxvPSEoIXJbYV18fCFzW3JbYV1dKTthPXNbYV18fHJbYV18fGE7Y29uc3QgbD1WYSgpW2FdO2lmKGwpe2lzTmFOKHRoaXMuYXNjZW50KSYmKHRoaXMuYXNjZW50PWwuYXNjZW50L29zKTtpc05hTih0aGlzLmRlc2NlbnQpJiYodGhpcy5kZXNjZW50PWwuZGVzY2VudC9vcyk7aXNOYU4odGhpcy5jYXBIZWlnaHQpJiYodGhpcy5jYXBIZWlnaHQ9bC5jYXBIZWlnaHQvb3MpfXRoaXMuYm9sZD0vYm9sZC9naS50ZXN0KGEpO3RoaXMuaXRhbGljPS9vYmxpcXVlfGl0YWxpYy9naS50ZXN0KGEpO3RoaXMuYmxhY2s9L0JsYWNrL2cudGVzdCh0KTtjb25zdCBmPS9OYXJyb3cvZy50ZXN0KHQpO3RoaXMucmVtZWFzdXJlPSghaXx8ZikmJk9iamVjdC5rZXlzKHRoaXMud2lkdGhzKS5sZW5ndGg+MDtpZigoaXx8bykmJiJDSURGb250VHlwZTIiPT09biYmdGhpcy5jaWRFbmNvZGluZy5zdGFydHNXaXRoKCJJZGVudGl0eS0iKSl7Y29uc3Qgbj1lLmNpZFRvR2lkTWFwLGE9W107YXBwbHlTdGFuZGFyZEZvbnRHbHlwaE1hcChhLFhhKCkpOy9BcmlhbC0/QmxhY2svaS50ZXN0KHQpP2FwcGx5U3RhbmRhcmRGb250R2x5cGhNYXAoYSxXYSgpKTovQ2FsaWJyaS9pLnRlc3QodCkmJmFwcGx5U3RhbmRhcmRGb250R2x5cGhNYXAoYSxLYSgpKTtpZihuKXtmb3IoY29uc3QgZSBpbiBhKXtjb25zdCB0PWFbZV07dm9pZCAwIT09blt0XSYmKGFbK2VdPW5bdF0pfW4ubGVuZ3RoIT09dGhpcy50b1VuaWNvZGUubGVuZ3RoJiZlLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwJiZ0aGlzLnRvVW5pY29kZSBpbnN0YW5jZW9mIElkZW50aXR5VG9Vbmljb2RlTWFwJiZ0aGlzLnRvVW5pY29kZS5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgcz1hW2VdO3ZvaWQgMD09PW5bc10mJihhWytlXT10KX0pfXRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXB8fHRoaXMudG9Vbmljb2RlLmZvckVhY2goZnVuY3Rpb24oZSx0KXthWytlXT10fSk7dGhpcy50b0ZvbnRDaGFyPWE7dGhpcy50b1VuaWNvZGU9bmV3IFRvVW5pY29kZU1hcChhKX1lbHNlIGlmKC9TeW1ib2wvaS50ZXN0KGEpKXRoaXMudG9Gb250Q2hhcj1idWlsZFRvRm9udENoYXIocGEsZ2EoKSx0aGlzLmRpZmZlcmVuY2VzKTtlbHNlIGlmKC9EaW5nYmF0cy9pLnRlc3QoYSkpdGhpcy50b0ZvbnRDaGFyPWJ1aWxkVG9Gb250Q2hhcihkYSxiYSgpLHRoaXMuZGlmZmVyZW5jZXMpO2Vsc2UgaWYoaXx8byl7Y29uc3QgZT1idWlsZFRvRm9udENoYXIodGhpcy5kZWZhdWx0RW5jb2RpbmcsZ2EoKSx0aGlzLmRpZmZlcmVuY2VzKTsiQ0lERm9udFR5cGUyIiE9PW58fHRoaXMuY2lkRW5jb2Rpbmcuc3RhcnRzV2l0aCgiSWRlbnRpdHktIil8fHRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXB8fHRoaXMudG9Vbmljb2RlLmZvckVhY2goZnVuY3Rpb24odCxuKXtlWyt0XT1ufSk7dGhpcy50b0ZvbnRDaGFyPWV9ZWxzZXtjb25zdCBlPWdhKCksbj1bXTt0aGlzLnRvVW5pY29kZS5mb3JFYWNoKCh0LGEpPT57aWYoIXRoaXMuY29tcG9zaXRlKXtjb25zdCBuPWdldFVuaWNvZGVGb3JHbHlwaCh0aGlzLmRpZmZlcmVuY2VzW3RdfHx0aGlzLmRlZmF1bHRFbmNvZGluZ1t0XSxlKTstMSE9PW4mJihhPW4pfW5bK3RdPWF9KTt0aGlzLmNvbXBvc2l0ZSYmdGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcCYmL1RhaG9tYXxWZXJkYW5hL2kudGVzdCh0KSYmYXBwbHlTdGFuZGFyZEZvbnRHbHlwaE1hcChuLFhhKCkpO3RoaXMudG9Gb250Q2hhcj1ufWFtZW5kRmFsbGJhY2tUb1VuaWNvZGUoZSk7dGhpcy5sb2FkZWROYW1lPWEuc3BsaXQoIi0iLDEpWzBdfWNoZWNrQW5kUmVwYWlyKGUsdCxuKXtjb25zdCBhPVsiT1MvMiIsImNtYXAiLCJoZWFkIiwiaGhlYSIsImhtdHgiLCJtYXhwIiwibmFtZSIsInBvc3QiLCJsb2NhIiwiZ2x5ZiIsImZwZ20iLCJwcmVwIiwiY3Z0ICIsIkNGRiAiXTtmdW5jdGlvbiByZWFkVGFibGVzKGUsdCl7Y29uc3Qgbj1PYmplY3QuY3JlYXRlKG51bGwpO25bIk9TLzIiXT1udWxsO24uY21hcD1udWxsO24uaGVhZD1udWxsO24uaGhlYT1udWxsO24uaG10eD1udWxsO24ubWF4cD1udWxsO24ubmFtZT1udWxsO24ucG9zdD1udWxsO2ZvcihsZXQgcz0wO3M8dDtzKyspe2NvbnN0IHQ9cmVhZFRhYmxlRW50cnkoZSk7YS5pbmNsdWRlcyh0LnRhZykmJigwIT09dC5sZW5ndGgmJihuW3QudGFnXT10KSl9cmV0dXJuIG59ZnVuY3Rpb24gcmVhZFRhYmxlRW50cnkoZSl7Y29uc3QgdD1lLmdldFN0cmluZyg0KSxuPWUuZ2V0SW50MzIoKT4+PjAsYT1lLmdldEludDMyKCk+Pj4wLHM9ZS5nZXRJbnQzMigpPj4+MCxyPWUucG9zO2UucG9zPWUuc3RhcnR8fDA7ZS5za2lwKGEpO2NvbnN0IGk9ZS5nZXRCeXRlcyhzKTtlLnBvcz1yO2lmKCJoZWFkIj09PXQpe2lbOF09aVs5XT1pWzEwXT1pWzExXT0wO2lbMTddfD0zMn1yZXR1cm57dGFnOnQsY2hlY2tzdW06bixsZW5ndGg6cyxvZmZzZXQ6YSxkYXRhOml9fWZ1bmN0aW9uIHJlYWRPcGVuVHlwZUhlYWRlcihlKXtyZXR1cm57dmVyc2lvbjplLmdldFN0cmluZyg0KSxudW1UYWJsZXM6ZS5nZXRVaW50MTYoKSxzZWFyY2hSYW5nZTplLmdldFVpbnQxNigpLGVudHJ5U2VsZWN0b3I6ZS5nZXRVaW50MTYoKSxyYW5nZVNoaWZ0OmUuZ2V0VWludDE2KCl9fWZ1bmN0aW9uIHNhbml0aXplR2x5cGgoZSx0LG4sYSxzLHIpe2NvbnN0IGk9e2xlbmd0aDowLHNpemVPZkluc3RydWN0aW9uczowfTtpZih0PDB8fHQ+PWUubGVuZ3RofHxuPmUubGVuZ3RofHxuLXQ8PTEyKXJldHVybiBpO2NvbnN0IG89ZS5zdWJhcnJheSh0LG4pLGw9c2lnbmVkSW50MTYob1syXSxvWzNdKSxmPXNpZ25lZEludDE2KG9bNF0sb1s1XSksYz1zaWduZWRJbnQxNihvWzZdLG9bN10pLGg9c2lnbmVkSW50MTYob1s4XSxvWzldKTtpZihsPmMpe3dyaXRlU2lnbmVkSW50MTYobywyLGMpO3dyaXRlU2lnbmVkSW50MTYobyw2LGwpfWlmKGY+aCl7d3JpdGVTaWduZWRJbnQxNihvLDQsaCk7d3JpdGVTaWduZWRJbnQxNihvLDgsZil9Y29uc3QgdT1zaWduZWRJbnQxNihvWzBdLG9bMV0pO2lmKHU8MCl7aWYodTwtMSlyZXR1cm4gaTthLnNldChvLHMpO2kubGVuZ3RoPW8ubGVuZ3RoO3JldHVybiBpfWxldCBtLHA9MTAsZD0wO2ZvcihtPTA7bTx1O20rKyl7ZD0ob1twXTw8OHxvW3ArMV0pKzE7cCs9Mn1jb25zdCBnPXAsYj1vW3BdPDw4fG9bcCsxXTtpLnNpemVPZkluc3RydWN0aW9ucz1iO3ArPTIrYjtjb25zdCB3PXA7bGV0IGo9MDtmb3IobT0wO208ZDttKyspe2NvbnN0IGU9b1twKytdOzE5MiZlJiYob1twLTFdPTYzJmUpO2xldCB0PTI7MiZlP3Q9MToxNiZlJiYodD0wKTtsZXQgbj0yOzQmZT9uPTE6MzImZSYmKG49MCk7Y29uc3QgYT10K247ais9YTtpZig4JmUpe2NvbnN0IGU9b1twKytdOzA9PT1lJiYob1twLTFdXj04KTttKz1lO2orPWUqYX19aWYoMD09PWopcmV0dXJuIGk7bGV0IGs9cCtqO2lmKGs+by5sZW5ndGgpcmV0dXJuIGk7aWYoIXImJmI+MCl7YS5zZXQoby5zdWJhcnJheSgwLGcpLHMpO2Euc2V0KFswLDBdLHMrZyk7YS5zZXQoby5zdWJhcnJheSh3LGspLHMrZysyKTtrLT1iO28ubGVuZ3RoLWs+MyYmKGs9ayszJi00KTtpLmxlbmd0aD1rO3JldHVybiBpfWlmKG8ubGVuZ3RoLWs+Myl7az1rKzMmLTQ7YS5zZXQoby5zdWJhcnJheSgwLGspLHMpO2kubGVuZ3RoPWs7cmV0dXJuIGl9YS5zZXQobyxzKTtpLmxlbmd0aD1vLmxlbmd0aDtyZXR1cm4gaX1mdW5jdGlvbiByZWFkTmFtZVRhYmxlKGUpe2NvbnN0IG49KHQuc3RhcnR8fDApK2Uub2Zmc2V0O3QucG9zPW47Y29uc3QgYT1bW10sW11dLHM9W10scj1lLmxlbmd0aCxpPW4rcjtpZigwIT09dC5nZXRVaW50MTYoKXx8cjw2KXJldHVyblthLHNdO2NvbnN0IG89dC5nZXRVaW50MTYoKSxsPXQuZ2V0VWludDE2KCk7bGV0IGYsYztmb3IoZj0wO2Y8byYmdC5wb3MrMTI8PWk7ZisrKXtjb25zdCBlPXtwbGF0Zm9ybTp0LmdldFVpbnQxNigpLGVuY29kaW5nOnQuZ2V0VWludDE2KCksbGFuZ3VhZ2U6dC5nZXRVaW50MTYoKSxuYW1lOnQuZ2V0VWludDE2KCksbGVuZ3RoOnQuZ2V0VWludDE2KCksb2Zmc2V0OnQuZ2V0VWludDE2KCl9Oyhpc01hY05hbWVSZWNvcmQoZSl8fGlzV2luTmFtZVJlY29yZChlKSkmJnMucHVzaChlKX1mb3IoZj0wLGM9cy5sZW5ndGg7ZjxjO2YrKyl7Y29uc3QgZT1zW2ZdO2lmKGUubGVuZ3RoPD0wKWNvbnRpbnVlO2NvbnN0IHI9bitsK2Uub2Zmc2V0O2lmKHIrZS5sZW5ndGg+aSljb250aW51ZTt0LnBvcz1yO2NvbnN0IG89ZS5uYW1lO2lmKGUuZW5jb2Rpbmcpe2xldCBuPSIiO2ZvcihsZXQgYT0wLHM9ZS5sZW5ndGg7YTxzO2ErPTIpbis9U3RyaW5nLmZyb21DaGFyQ29kZSh0LmdldFVpbnQxNigpKTthWzFdW29dPW59ZWxzZSBhWzBdW29dPXQuZ2V0U3RyaW5nKGUubGVuZ3RoKX1yZXR1cm5bYSxzXX1jb25zdCBzPVswLDAsMCwwLDAsMCwwLDAsLTIsLTIsLTIsLTIsMCwwLC0yLC01LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDAsMCwtMSwwLC0xLC0xLC0xLC0xLDEsLTEsLTk5OSwwLDEsMCwtMSwtMiwwLC0xLC0yLC0xLC0xLDAsLTEsLTEsMCwwLC05OTksLTk5OSwtMSwtMSwtMSwtMSwtMiwtOTk5LC0yLC0yLC05OTksMCwtMiwtMiwwLDAsLTIsMCwtMiwwLDAsMCwtMiwtMSwtMSwxLDEsMCwwLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDAsMCwtMSwwLC0xLC0xLDAsLTk5OSwtMSwtMSwtMSwtMSwtMSwtMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwtMiwtOTk5LC05OTksLTk5OSwtOTk5LC05OTksLTEsLTEsLTIsLTIsMCwwLDAsMCwtMSwtMSwtOTk5LC0yLC0yLDAsMCwtMSwtMiwtMiwwLDAsMCwtMSwtMSwtMSwtMl07ZnVuY3Rpb24gc2FuaXRpemVUVFByb2dyYW0oZSx0KXtsZXQgbixhLHIsaSxvLGw9ZS5kYXRhLGY9MCxjPTAsaD0wO2NvbnN0IHU9W10sbT1bXSxwPVtdO2xldCBkPXQudG9vQ29tcGxleFRvRm9sbG93RnVuY3Rpb25zLGc9ITEsYj0wLHc9MDtmb3IobGV0IGU9bC5sZW5ndGg7ZjxlOyl7Y29uc3QgZT1sW2YrK107aWYoNjQ9PT1lKXthPWxbZisrXTtpZihnfHx3KWYrPWE7ZWxzZSBmb3Iobj0wO248YTtuKyspdS5wdXNoKGxbZisrXSl9ZWxzZSBpZig2NT09PWUpe2E9bFtmKytdO2lmKGd8fHcpZis9MiphO2Vsc2UgZm9yKG49MDtuPGE7bisrKXtyPWxbZisrXTt1LnB1c2gocjw8OHxsW2YrK10pfX1lbHNlIGlmKDE3Nj09KDI0OCZlKSl7YT1lLTE3NisxO2lmKGd8fHcpZis9YTtlbHNlIGZvcihuPTA7bjxhO24rKyl1LnB1c2gobFtmKytdKX1lbHNlIGlmKDE4ND09KDI0OCZlKSl7YT1lLTE4NCsxO2lmKGd8fHcpZis9MiphO2Vsc2UgZm9yKG49MDtuPGE7bisrKXtyPWxbZisrXTt1LnB1c2goc2lnbmVkSW50MTYocixsW2YrK10pKX19ZWxzZSBpZig0MyE9PWV8fGQpaWYoNDQhPT1lfHxkKXtpZig0NT09PWUpaWYoZyl7Zz0hMTtjPWZ9ZWxzZXtvPW0ucG9wKCk7aWYoIW8pe3dhcm4oIlRUOiBFTkRGIGJhZCBzdGFjayIpO3QuaGludHNWYWxpZD0hMTtyZXR1cm59aT1wLnBvcCgpO2w9by5kYXRhO2Y9by5pO3QuZnVuY3Rpb25zU3RhY2tEZWx0YXNbaV09dS5sZW5ndGgtby5zdGFja1RvcH1lbHNlIGlmKDEzNz09PWUpe2lmKGd8fHcpe3dhcm4oIlRUOiBuZXN0ZWQgSURFRnMgbm90IGFsbG93ZWQiKTtkPSEwfWc9ITA7aD1mfWVsc2UgaWYoODg9PT1lKSsrYjtlbHNlIGlmKDI3PT09ZSl3PWI7ZWxzZSBpZig4OT09PWUpe3c9PT1iJiYodz0wKTstLWJ9ZWxzZSBpZigyOD09PWUmJiFnJiYhdyl7Y29uc3QgZT11LmF0KC0xKTtlPjAmJihmKz1lLTEpfX1lbHNle2lmKGd8fHcpe3dhcm4oIlRUOiBuZXN0ZWQgRkRFRnMgbm90IGFsbG93ZWQiKTtkPSEwfWc9ITA7aD1mO2k9dS5wb3AoKTt0LmZ1bmN0aW9uc0RlZmluZWRbaV09e2RhdGE6bCxpOmZ9fWVsc2UgaWYoIWcmJiF3KXtpPXUuYXQoLTEpO2lmKGlzTmFOKGkpKWluZm8oIlRUOiBDQUxMIGVtcHR5IHN0YWNrIChvciBpbnZhbGlkIGVudHJ5KS4iKTtlbHNle3QuZnVuY3Rpb25zVXNlZFtpXT0hMDtpZihpIGluIHQuZnVuY3Rpb25zU3RhY2tEZWx0YXMpe2NvbnN0IGU9dS5sZW5ndGgrdC5mdW5jdGlvbnNTdGFja0RlbHRhc1tpXTtpZihlPDApe3dhcm4oIlRUOiBDQUxMIGludmFsaWQgZnVuY3Rpb25zIHN0YWNrIGRlbHRhLiIpO3QuaGludHNWYWxpZD0hMTtyZXR1cm59dS5sZW5ndGg9ZX1lbHNlIGlmKGkgaW4gdC5mdW5jdGlvbnNEZWZpbmVkJiYhcC5pbmNsdWRlcyhpKSl7bS5wdXNoKHtkYXRhOmwsaTpmLHN0YWNrVG9wOnUubGVuZ3RoLTF9KTtwLnB1c2goaSk7bz10LmZ1bmN0aW9uc0RlZmluZWRbaV07aWYoIW8pe3dhcm4oIlRUOiBDQUxMIG5vbi1leGlzdGVudCBmdW5jdGlvbiIpO3QuaGludHNWYWxpZD0hMTtyZXR1cm59bD1vLmRhdGE7Zj1vLml9fX1pZighZyYmIXcpe2xldCB0PTA7ZTw9MTQyP3Q9c1tlXTplPj0xOTImJmU8PTIyMz90PS0xOmU+PTIyNCYmKHQ9LTIpO2lmKGU+PTExMyYmZTw9MTE3KXthPXUucG9wKCk7aXNOYU4oYSl8fCh0PTIqLWEpfWZvcig7dDwwJiZ1Lmxlbmd0aD4wOyl7dS5wb3AoKTt0Kyt9Zm9yKDt0PjA7KXt1LnB1c2goTmFOKTt0LS19fX10LnRvb0NvbXBsZXhUb0ZvbGxvd0Z1bmN0aW9ucz1kO2NvbnN0IGo9W2xdO2Y+bC5sZW5ndGgmJmoucHVzaChuZXcgVWludDhBcnJheShmLWwubGVuZ3RoKSk7aWYoaD5jKXt3YXJuKCJUVDogY29tcGxlbWVudGluZyBhIG1pc3NpbmcgZnVuY3Rpb24gdGFpbCIpO2oucHVzaChuZXcgVWludDhBcnJheShbMzQsNDVdKSl9IWZ1bmN0aW9uIGZvbGRUVFRhYmxlKGUsdCl7aWYodC5sZW5ndGg+MSl7bGV0IG4sYSxzPTA7Zm9yKG49MCxhPXQubGVuZ3RoO248YTtuKyspcys9dFtuXS5sZW5ndGg7cz1zKzMmLTQ7Y29uc3Qgcj1uZXcgVWludDhBcnJheShzKTtsZXQgaT0wO2ZvcihuPTAsYT10Lmxlbmd0aDtuPGE7bisrKXtyLnNldCh0W25dLGkpO2krPXRbbl0ubGVuZ3RofWUuZGF0YT1yO2UubGVuZ3RoPXN9fShlLGopfWxldCByLGk7aWYoaXNUcnVlVHlwZUNvbGxlY3Rpb25GaWxlKHQ9bmV3IFN0cmVhbShuZXcgVWludDhBcnJheSh0LmdldEJ5dGVzKCkpKSkpe2NvbnN0IGU9ZnVuY3Rpb24gcmVhZFRydWVUeXBlQ29sbGVjdGlvbkRhdGEoZSx0KXtjb25zdHtudW1Gb250czpuLG9mZnNldFRhYmxlOmF9PWZ1bmN0aW9uIHJlYWRUcnVlVHlwZUNvbGxlY3Rpb25IZWFkZXIoZSl7Y29uc3QgdD1lLmdldFN0cmluZyg0KTthc3NlcnQoInR0Y2YiPT09dCwiTXVzdCBiZSBhIFRydWVUeXBlIENvbGxlY3Rpb24gZm9udC4iKTtjb25zdCBuPWUuZ2V0VWludDE2KCksYT1lLmdldFVpbnQxNigpLHM9ZS5nZXRJbnQzMigpPj4+MCxyPVtdO2ZvcihsZXQgdD0wO3Q8czt0Kyspci5wdXNoKGUuZ2V0SW50MzIoKT4+PjApO2NvbnN0IGk9e3R0Y1RhZzp0LG1ham9yVmVyc2lvbjpuLG1pbm9yVmVyc2lvbjphLG51bUZvbnRzOnMsb2Zmc2V0VGFibGU6cn07c3dpdGNoKG4pe2Nhc2UgMTpyZXR1cm4gaTtjYXNlIDI6aS5kc2lnVGFnPWUuZ2V0SW50MzIoKT4+PjA7aS5kc2lnTGVuZ3RoPWUuZ2V0SW50MzIoKT4+PjA7aS5kc2lnT2Zmc2V0PWUuZ2V0SW50MzIoKT4+PjA7cmV0dXJuIGl9dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIFRydWVUeXBlIENvbGxlY3Rpb24gbWFqb3JWZXJzaW9uOiAke259LmApfShlKSxzPXQuc3BsaXQoIisiKTtsZXQgcjtmb3IobGV0IGk9MDtpPG47aSsrKXtlLnBvcz0oZS5zdGFydHx8MCkrYVtpXTtjb25zdCBuPXJlYWRPcGVuVHlwZUhlYWRlcihlKSxvPXJlYWRUYWJsZXMoZSxuLm51bVRhYmxlcyk7aWYoIW8ubmFtZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoJ1RydWVUeXBlIENvbGxlY3Rpb24gZm9udCBtdXN0IGNvbnRhaW4gYSAibmFtZSIgdGFibGUuJyk7Y29uc3RbbF09cmVhZE5hbWVUYWJsZShvLm5hbWUpO2ZvcihsZXQgZT0wLGE9bC5sZW5ndGg7ZTxhO2UrKylmb3IobGV0IGE9MCxpPWxbZV0ubGVuZ3RoO2E8aTthKyspe2NvbnN0IGk9bFtlXVthXT8ucmVwbGFjZUFsbCgvXHMvZywiIik7aWYoaSl7aWYoaT09PXQpcmV0dXJue2hlYWRlcjpuLHRhYmxlczpvfTtpZighKHMubGVuZ3RoPDIpKWZvcihjb25zdCBlIG9mIHMpaT09PWUmJihyPXtuYW1lOmUsaGVhZGVyOm4sdGFibGVzOm99KX19fWlmKHIpe3dhcm4oYFRydWVUeXBlIENvbGxlY3Rpb24gZG9lcyBub3QgY29udGFpbiAiJHt0fSIgZm9udCwgZmFsbGluZyBiYWNrIHRvICIke3IubmFtZX0iIGZvbnQgaW5zdGVhZC5gKTtyZXR1cm57aGVhZGVyOnIuaGVhZGVyLHRhYmxlczpyLnRhYmxlc319dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBUcnVlVHlwZSBDb2xsZWN0aW9uIGRvZXMgbm90IGNvbnRhaW4gIiR7dH0iIGZvbnQuYCl9KHQsdGhpcy5uYW1lKTtyPWUuaGVhZGVyO2k9ZS50YWJsZXN9ZWxzZXtyPXJlYWRPcGVuVHlwZUhlYWRlcih0KTtpPXJlYWRUYWJsZXModCxyLm51bVRhYmxlcyl9Y29uc3Qgbz0haVsiQ0ZGICJdO2lmKG8pe2lmKCFpLmxvY2EpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCdSZXF1aXJlZCAibG9jYSIgdGFibGUgaXMgbm90IGZvdW5kJyk7aWYoIWkuZ2x5Zil7d2FybignUmVxdWlyZWQgImdseWYiIHRhYmxlIGlzIG5vdCBmb3VuZCAtLSB0cnlpbmcgdG8gcmVjb3Zlci4nKTtpLmdseWY9e3RhZzoiZ2x5ZiIsZGF0YTpuZXcgVWludDhBcnJheSgwKX19dGhpcy5pc09wZW5UeXBlPSExfWVsc2V7aWYoIk9UVE8iPT09ci52ZXJzaW9uJiYhbi5jb21wb3NpdGV8fCFpLmhlYWR8fCFpLmhoZWF8fCFpLm1heHB8fCFpLnBvc3QpcmV0dXJuIHRoaXMuY29udmVydChlLG5ldyBDRkZGb250KG5ldyBTdHJlYW0oaVsiQ0ZGICJdLmRhdGEpLG4pLG4pO2RlbGV0ZSBpLmdseWY7ZGVsZXRlIGkubG9jYTtkZWxldGUgaS5mcGdtO2RlbGV0ZSBpLnByZXA7ZGVsZXRlIGlbImN2dCAiXTt0aGlzLmlzT3BlblR5cGU9ITB9aWYoIWkubWF4cCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoJ1JlcXVpcmVkICJtYXhwIiB0YWJsZSBpcyBub3QgZm91bmQnKTtsZXQgbDtpZighbyl0cnl7Y29uc3QgZT1uZXcgQ0ZGUGFyc2VyKG5ldyBTdHJlYW0oaVsiQ0ZGICJdLmRhdGEpLG4scWEpLnBhcnNlKCk7ZS5kdXBsaWNhdGVGaXJzdEdseXBoKCk7Y29uc3QgdD1uZXcgQ0ZGQ29tcGlsZXIoZSk7aVsiQ0ZGICJdLmRhdGE9dC5jb21waWxlKCk7bD1lLmNoYXJTdHJpbmdDb3VudH1jYXRjaHt3YXJuKCJGYWlsZWQgdG8gY29tcGlsZSBmb250ICIrbi5sb2FkZWROYW1lKX10LnBvcz0odC5zdGFydHx8MCkraS5tYXhwLm9mZnNldDtsZXQgZj10LmdldEludDMyKCk7Y29uc3QgYz1sPz90LmdldFVpbnQxNigpO2lmKDIwNDgwPT09ZiYmNiE9PWkubWF4cC5sZW5ndGgpe2kubWF4cC5kYXRhPWkubWF4cC5kYXRhLnN1YmFycmF5KDAsNik7aS5tYXhwLmxlbmd0aD02fWlmKDY1NTM2IT09ZiYmMjA0ODAhPT1mKXtpZig2PT09aS5tYXhwLmxlbmd0aClmPTIwNDgwO2Vsc2V7aWYoIShpLm1heHAubGVuZ3RoPj0zMikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCcibWF4cCIgdGFibGUgaGFzIGEgd3JvbmcgdmVyc2lvbiBudW1iZXInKTtmPTY1NTM2fSFmdW5jdGlvbiB3cml0ZVVpbnQzMihlLHQsbil7ZVt0KzNdPTI1NSZuO2VbdCsyXT1uPj4+ODtlW3QrMV09bj4+PjE2O2VbdF09bj4+PjI0fShpLm1heHAuZGF0YSwwLGYpfWxldCBoPWludDE2KGkuaGVhZC5kYXRhWzUwXSxpLmhlYWQuZGF0YVs1MV0pO2lmKGkubG9jYSl7Y29uc3QgZT1oPzQqKGMrMSk6MiooYysxKTtpZihpLmxvY2EubGVuZ3RoIT09ZSl7d2FybigiSW5jb3JyZWN0ICdsb2NhJyB0YWJsZSBsZW5ndGggLS0gYXR0ZW1wdGluZyB0byBmaXggaXQuIik7Y29uc3Qgbj1PYmplY3QudmFsdWVzKGkpLmZpbHRlcihCb29sZWFuKS5zb3J0KChlLHQpPT5lLm9mZnNldC10Lm9mZnNldCksYT1uLmluZGV4T2YoaS5sb2NhKSxzPW5bYSsxXXx8bnVsbDtpZihzJiZpLmxvY2Eub2Zmc2V0K2U8cy5vZmZzZXQpe2NvbnN0IG49dC5wb3M7dC5wb3M9dC5zdGFydHx8MDt0LnNraXAoaS5sb2NhLm9mZnNldCk7aS5sb2NhLmRhdGE9dC5nZXRCeXRlcyhlKTtpLmxvY2EubGVuZ3RoPWU7dC5wb3M9bn19fWlmKG4uc2NhbGVGYWN0b3JzPy5sZW5ndGg9PT1jJiZvKXtjb25zdHtzY2FsZUZhY3RvcnM6ZX09bix0PW5ldyBHbHlmVGFibGUoe2dseWZUYWJsZTppLmdseWYuZGF0YSxpc0dseXBoTG9jYXRpb25zTG9uZzpoLGxvY2FUYWJsZTppLmxvY2EuZGF0YSxudW1HbHlwaHM6Y30pO3Quc2NhbGUoZSk7Y29uc3R7Z2x5ZjphLGxvY2E6cyxpc0xvY2F0aW9uTG9uZzpyfT10LndyaXRlKCk7aS5nbHlmLmRhdGE9YTtpLmxvY2EuZGF0YT1zO2lmKHIhPT0hIWgpe2kuaGVhZC5kYXRhWzUwXT0wO2g9aS5oZWFkLmRhdGFbNTFdPXI/MTowfWNvbnN0IG89aS5obXR4LmRhdGE7Zm9yKGxldCB0PTA7dDxjO3QrKyl7Y29uc3Qgbj00KnQsYT1NYXRoLnJvdW5kKGVbdF0qaW50MTYob1tuXSxvW24rMV0pKTtvW25dPWE+PjgmMjU1O29bbisxXT0yNTUmYTt3cml0ZVNpZ25lZEludDE2KG8sbisyLE1hdGgucm91bmQoZVt0XSpzaWduZWRJbnQxNihvW24rMl0sb1tuKzNdKSkpfX1sZXQgdT1jKzEsbT0hMDtpZih1PjY1NTM1KXttPSExO3U9Yzt3YXJuKCJOb3QgZW5vdWdoIHNwYWNlIGluIGdseWZzIHRvIGR1cGxpY2F0ZSBmaXJzdCBnbHlwaC4iKX1sZXQgcD0wLGQ9MDtpZihmPj02NTUzNiYmaS5tYXhwLmxlbmd0aD49MzIpe3QucG9zKz04O2lmKHQuZ2V0VWludDE2KCk+Mil7aS5tYXhwLmRhdGFbMTRdPTA7aS5tYXhwLmRhdGFbMTVdPTJ9dC5wb3MrPTQ7cD10LmdldFVpbnQxNigpO3QucG9zKz00O2Q9dC5nZXRVaW50MTYoKX1pLm1heHAuZGF0YVs0XT11Pj44O2kubWF4cC5kYXRhWzVdPTI1NSZ1O2NvbnN0IGc9ZnVuY3Rpb24gc2FuaXRpemVUVFByb2dyYW1zKGUsdCxuLGEpe2NvbnN0IHM9e2Z1bmN0aW9uc0RlZmluZWQ6W10sZnVuY3Rpb25zVXNlZDpbXSxmdW5jdGlvbnNTdGFja0RlbHRhczpbXSx0b29Db21wbGV4VG9Gb2xsb3dGdW5jdGlvbnM6ITEsaGludHNWYWxpZDohMH07ZSYmc2FuaXRpemVUVFByb2dyYW0oZSxzKTt0JiZzYW5pdGl6ZVRUUHJvZ3JhbSh0LHMpO2UmJmZ1bmN0aW9uIGNoZWNrSW52YWxpZEZ1bmN0aW9ucyhlLHQpe2lmKCFlLnRvb0NvbXBsZXhUb0ZvbGxvd0Z1bmN0aW9ucylpZihlLmZ1bmN0aW9uc0RlZmluZWQubGVuZ3RoPnQpe3dhcm4oIlRUOiBtb3JlIGZ1bmN0aW9ucyBkZWZpbmVkIHRoYW4gZXhwZWN0ZWQiKTtlLmhpbnRzVmFsaWQ9ITF9ZWxzZSBmb3IobGV0IG49MCxhPWUuZnVuY3Rpb25zVXNlZC5sZW5ndGg7bjxhO24rKyl7aWYobj50KXt3YXJuKCJUVDogaW52YWxpZCBmdW5jdGlvbiBpZDogIituKTtlLmhpbnRzVmFsaWQ9ITE7cmV0dXJufWlmKGUuZnVuY3Rpb25zVXNlZFtuXSYmIWUuZnVuY3Rpb25zRGVmaW5lZFtuXSl7d2FybigiVFQ6IHVuZGVmaW5lZCBmdW5jdGlvbjogIituKTtlLmhpbnRzVmFsaWQ9ITE7cmV0dXJufX19KHMsYSk7aWYobiYmMSZuLmxlbmd0aCl7Y29uc3QgZT1uZXcgVWludDhBcnJheShuLmxlbmd0aCsxKTtlLnNldChuLmRhdGEpO24uZGF0YT1lfXJldHVybiBzLmhpbnRzVmFsaWR9KGkuZnBnbSxpLnByZXAsaVsiY3Z0ICJdLHApO2lmKCFnKXtkZWxldGUgaS5mcGdtO2RlbGV0ZSBpLnByZXA7ZGVsZXRlIGlbImN2dCAiXX0hZnVuY3Rpb24gc2FuaXRpemVNZXRyaWNzKGUsdCxuLGEscyxyKXtpZighdCl7biYmKG4uZGF0YT1udWxsKTtyZXR1cm59ZS5wb3M9KGUuc3RhcnR8fDApK3Qub2Zmc2V0O2UucG9zKz00O2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2NvbnN0IGk9ZS5nZXRVaW50MTYoKTtlLnBvcys9ODtlLnBvcys9MjtsZXQgbz1lLmdldFVpbnQxNigpO2lmKDAhPT1pKXtpZighKDImaW50MTYoYS5kYXRhWzQ0XSxhLmRhdGFbNDVdKSkpe3QuZGF0YVsyMl09MDt0LmRhdGFbMjNdPTB9fWlmKG8+cyl7aW5mbyhgVGhlIG51bU9mTWV0cmljcyAoJHtvfSkgc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW4gdGhlIG51bUdseXBocyAoJHtzfSkuYCk7bz1zO3QuZGF0YVszNF09KDY1MjgwJm8pPj44O3QuZGF0YVszNV09MjU1Jm99Y29uc3QgbD1zLW8tKG4ubGVuZ3RoLTQqbz4+MSk7aWYobD4wKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KG4ubGVuZ3RoKzIqbCk7ZS5zZXQobi5kYXRhKTtpZihyKXtlW24ubGVuZ3RoXT1uLmRhdGFbMl07ZVtuLmxlbmd0aCsxXT1uLmRhdGFbM119bi5kYXRhPWV9fSh0LGkuaGhlYSxpLmhtdHgsaS5oZWFkLHUsbSk7aWYoIWkuaGVhZCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoJ1JlcXVpcmVkICJoZWFkIiB0YWJsZSBpcyBub3QgZm91bmQnKTshZnVuY3Rpb24gc2FuaXRpemVIZWFkKGUsdCxuKXtjb25zdCBhPWUuZGF0YSxzPWZ1bmN0aW9uIGludDMyKGUsdCxuLGEpe3JldHVybihlPDwyNCkrKHQ8PDE2KSsobjw8OCkrYX0oYVswXSxhWzFdLGFbMl0sYVszXSk7aWYocz4+MTYhPTEpe2luZm8oIkF0dGVtcHRpbmcgdG8gZml4IGludmFsaWQgdmVyc2lvbiBpbiBoZWFkIHRhYmxlOiAiK3MpO2FbMF09MDthWzFdPTE7YVsyXT0wO2FbM109MH1jb25zdCByPWludDE2KGFbNTBdLGFbNTFdKTtpZihyPDB8fHI+MSl7aW5mbygiQXR0ZW1wdGluZyB0byBmaXggaW52YWxpZCBpbmRleFRvTG9jRm9ybWF0IGluIGhlYWQgdGFibGU6ICIrcik7Y29uc3QgZT10KzE7aWYobj09PWU8PDEpe2FbNTBdPTA7YVs1MV09MH1lbHNle2lmKG4hPT1lPDwyKXRocm93IG5ldyBGb3JtYXRFcnJvcigiQ291bGQgbm90IGZpeCBpbmRleFRvTG9jRm9ybWF0OiAiK3IpO2FbNTBdPTA7YVs1MV09MX19fShpLmhlYWQsYyxvP2kubG9jYS5sZW5ndGg6MCk7bGV0IGI9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihvKXtjb25zdCBlPWZ1bmN0aW9uIHNhbml0aXplR2x5cGhMb2NhdGlvbnMoZSx0LG4sYSxzLHIsaSl7bGV0IG8sbCxmO2lmKGEpe289NDtsPWZ1bmN0aW9uIGZvbnRJdGVtRGVjb2RlTG9uZyhlLHQpe3JldHVybiBlW3RdPDwyNHxlW3QrMV08PDE2fGVbdCsyXTw8OHxlW3QrM119O2Y9ZnVuY3Rpb24gZm9udEl0ZW1FbmNvZGVMb25nKGUsdCxuKXtlW3RdPW4+Pj4yNCYyNTU7ZVt0KzFdPW4+PjE2JjI1NTtlW3QrMl09bj4+OCYyNTU7ZVt0KzNdPTI1NSZufX1lbHNle289MjtsPWZ1bmN0aW9uIGZvbnRJdGVtRGVjb2RlKGUsdCl7cmV0dXJuIGVbdF08PDl8ZVt0KzFdPDwxfTtmPWZ1bmN0aW9uIGZvbnRJdGVtRW5jb2RlKGUsdCxuKXtlW3RdPW4+PjkmMjU1O2VbdCsxXT1uPj4xJjI1NX19Y29uc3QgYz1yP24rMTpuLGg9byooMStjKSx1PW5ldyBVaW50OEFycmF5KGgpO3Uuc2V0KGUuZGF0YS5zdWJhcnJheSgwLGgpKTtlLmRhdGE9dTtjb25zdCBtPXQuZGF0YSxwPW0ubGVuZ3RoLGQ9bmV3IFVpbnQ4QXJyYXkocCk7bGV0IGcsYjtjb25zdCB3PVtdO2ZvcihnPTAsYj0wO2c8bisxO2crKyxiKz1vKXtsZXQgZT1sKHUsYik7ZT5wJiYoZT1wKTt3LnB1c2goe2luZGV4Omcsb2Zmc2V0OmUsZW5kT2Zmc2V0OjB9KX13LnNvcnQoKGUsdCk9PmUub2Zmc2V0LXQub2Zmc2V0KTtmb3IoZz0wO2c8bjtnKyspd1tnXS5lbmRPZmZzZXQ9d1tnKzFdLm9mZnNldDt3LnNvcnQoKGUsdCk9PmUuaW5kZXgtdC5pbmRleCk7Zm9yKGc9MDtnPG47ZysrKXtjb25zdHtvZmZzZXQ6ZSxlbmRPZmZzZXQ6dH09d1tnXTtpZigwIT09ZXx8MCE9PXQpYnJlYWs7Y29uc3Qgbj13W2crMV0ub2Zmc2V0O2lmKDAhPT1uKXt3W2ddLmVuZE9mZnNldD1uO2JyZWFrfX1jb25zdCBqPXcuYXQoLTIpOzAhPT1qLm9mZnNldCYmMD09PWouZW5kT2Zmc2V0JiYoai5lbmRPZmZzZXQ9cCk7Y29uc3Qgaz1PYmplY3QuY3JlYXRlKG51bGwpO2xldCB5PTA7Zih1LDAseSk7Zm9yKGc9MCxiPW87ZzxuO2crKyxiKz1vKXtjb25zdCBlPXNhbml0aXplR2x5cGgobSx3W2ddLm9mZnNldCx3W2ddLmVuZE9mZnNldCxkLHkscyksdD1lLmxlbmd0aDswPT09dCYmKGtbZ109ITApO2Uuc2l6ZU9mSW5zdHJ1Y3Rpb25zPmkmJihpPWUuc2l6ZU9mSW5zdHJ1Y3Rpb25zKTt5Kz10O2YodSxiLHkpfWlmKDA9PT15KXtjb25zdCBlPW5ldyBVaW50OEFycmF5KFswLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDksMF0pO2ZvcihnPTAsYj1vO2c8YztnKyssYis9bylmKHUsYixlLmxlbmd0aCk7dC5kYXRhPWV9ZWxzZSBpZihyKXtjb25zdCBuPWwodSxvKTtpZihkLmxlbmd0aD5uK3kpdC5kYXRhPWQuc3ViYXJyYXkoMCxuK3kpO2Vsc2V7dC5kYXRhPW5ldyBVaW50OEFycmF5KG4reSk7dC5kYXRhLnNldChkLnN1YmFycmF5KDAseSkpfXQuZGF0YS5zZXQoZC5zdWJhcnJheSgwLG4pLHkpO2YoZS5kYXRhLHUubGVuZ3RoLW8seStuKX1lbHNlIHQuZGF0YT1kLnN1YmFycmF5KDAseSk7cmV0dXJue21pc3NpbmdHbHlwaHM6ayxtYXhTaXplT2ZJbnN0cnVjdGlvbnM6aX19KGkubG9jYSxpLmdseWYsYyxoLGcsbSxkKTtiPWUubWlzc2luZ0dseXBocztpZihmPj02NTUzNiYmaS5tYXhwLmxlbmd0aD49MzIpe2kubWF4cC5kYXRhWzI2XT1lLm1heFNpemVPZkluc3RydWN0aW9ucz4+ODtpLm1heHAuZGF0YVsyN109MjU1JmUubWF4U2l6ZU9mSW5zdHJ1Y3Rpb25zfX1pZighaS5oaGVhKXRocm93IG5ldyBGb3JtYXRFcnJvcignUmVxdWlyZWQgImhoZWEiIHRhYmxlIGlzIG5vdCBmb3VuZCcpO2lmKDA9PT1pLmhoZWEuZGF0YVsxMF0mJjA9PT1pLmhoZWEuZGF0YVsxMV0pe2kuaGhlYS5kYXRhWzEwXT0yNTU7aS5oaGVhLmRhdGFbMTFdPTI1NX1jb25zdCB3PXt1bml0c1BlckVtOmludDE2KGkuaGVhZC5kYXRhWzE4XSxpLmhlYWQuZGF0YVsxOV0pLHlNYXg6c2lnbmVkSW50MTYoaS5oZWFkLmRhdGFbNDJdLGkuaGVhZC5kYXRhWzQzXSkseU1pbjpzaWduZWRJbnQxNihpLmhlYWQuZGF0YVszOF0saS5oZWFkLmRhdGFbMzldKSxhc2NlbnQ6c2lnbmVkSW50MTYoaS5oaGVhLmRhdGFbNF0saS5oaGVhLmRhdGFbNV0pLGRlc2NlbnQ6c2lnbmVkSW50MTYoaS5oaGVhLmRhdGFbNl0saS5oaGVhLmRhdGFbN10pLGxpbmVHYXA6c2lnbmVkSW50MTYoaS5oaGVhLmRhdGFbOF0saS5oaGVhLmRhdGFbOV0pfTt0aGlzLmFzY2VudD13LmFzY2VudC93LnVuaXRzUGVyRW07dGhpcy5kZXNjZW50PXcuZGVzY2VudC93LnVuaXRzUGVyRW07dGhpcy5saW5lR2FwPXcubGluZUdhcC93LnVuaXRzUGVyRW07aWYodGhpcy5jc3NGb250SW5mbz8ubGluZUhlaWdodCl7dGhpcy5saW5lSGVpZ2h0PXRoaXMuY3NzRm9udEluZm8ubWV0cmljcy5saW5lSGVpZ2h0O3RoaXMubGluZUdhcD10aGlzLmNzc0ZvbnRJbmZvLm1ldHJpY3MubGluZUdhcH1lbHNlIHRoaXMubGluZUhlaWdodD10aGlzLmFzY2VudC10aGlzLmRlc2NlbnQrdGhpcy5saW5lR2FwO2kucG9zdCYmZnVuY3Rpb24gcmVhZFBvc3RTY3JpcHRUYWJsZShlLG4sYSl7Y29uc3Qgcz0odC5zdGFydHx8MCkrZS5vZmZzZXQ7dC5wb3M9cztjb25zdCByPXMrZS5sZW5ndGgsaT10LmdldEludDMyKCk7dC5za2lwKDI4KTtsZXQgbyxsLGY9ITA7c3dpdGNoKGkpe2Nhc2UgNjU1MzY6bz1DYTticmVhaztjYXNlIDEzMTA3Mjpjb25zdCBlPXQuZ2V0VWludDE2KCk7aWYoZSE9PWEpe2Y9ITE7YnJlYWt9Y29uc3Qgcz1bXTtmb3IobD0wO2w8ZTsrK2wpe2NvbnN0IGU9dC5nZXRVaW50MTYoKTtpZihlPj0zMjc2OCl7Zj0hMTticmVha31zLnB1c2goZSl9aWYoIWYpYnJlYWs7Y29uc3QgYz1bXSxoPVtdO2Zvcig7dC5wb3M8cjspe2NvbnN0IGU9dC5nZXRCeXRlKCk7aC5sZW5ndGg9ZTtmb3IobD0wO2w8ZTsrK2wpaFtsXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHQuZ2V0Qnl0ZSgpKTtjLnB1c2goaC5qb2luKCIiKSl9bz1bXTtmb3IobD0wO2w8ZTsrK2wpe2NvbnN0IGU9c1tsXTtlPDI1OD9vLnB1c2goQ2FbZV0pOm8ucHVzaChjW2UtMjU4XSl9YnJlYWs7Y2FzZSAxOTY2MDg6YnJlYWs7ZGVmYXVsdDp3YXJuKCJVbmtub3duL3Vuc3VwcG9ydGVkIHBvc3QgdGFibGUgdmVyc2lvbiAiK2kpO2Y9ITE7bi5kZWZhdWx0RW5jb2RpbmcmJihvPW4uZGVmYXVsdEVuY29kaW5nKX1uLmdseXBoTmFtZXM9bztyZXR1cm4gZn0oaS5wb3N0LG4sYyk7aS5wb3N0PXt0YWc6InBvc3QiLGRhdGE6Y3JlYXRlUG9zdFRhYmxlKG4pfTtjb25zdCBqPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gaGFzR2x5cGgoZSl7cmV0dXJuIWJbZV19aWYobi5jb21wb3NpdGUpe2NvbnN0IGU9bi5jaWRUb0dpZE1hcHx8W10sdD0wPT09ZS5sZW5ndGg7bi5jTWFwLmZvckVhY2goZnVuY3Rpb24obixhKXsic3RyaW5nIj09dHlwZW9mIGEmJihhPWNvbnZlcnRDaWRTdHJpbmcobixhLCEwKSk7aWYoYT42NTUzNSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk1heCBzaXplIG9mIENJRCBpcyA2NSw1MzUiKTtsZXQgcz0tMTt0P3M9YTp2b2lkIDAhPT1lW2FdJiYocz1lW2FdKTtzPj0wJiZzPGMmJmhhc0dseXBoKHMpJiYoaltuXT1zKX0pfWVsc2V7Y29uc3QgZT1mdW5jdGlvbiByZWFkQ21hcFRhYmxlKGUsdCxuLGEpe2lmKCFlKXt3YXJuKCJObyBjbWFwIHRhYmxlIGF2YWlsYWJsZS4iKTtyZXR1cm57cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX19bGV0IHMscj0odC5zdGFydHx8MCkrZS5vZmZzZXQ7dC5wb3M9cjt0LnNraXAoMik7Y29uc3QgaT10LmdldFVpbnQxNigpO2xldCBvLGw9ITE7Zm9yKGxldCBlPTA7ZTxpO2UrKyl7Y29uc3Qgcz10LmdldFVpbnQxNigpLHI9dC5nZXRVaW50MTYoKSxmPXQuZ2V0SW50MzIoKT4+PjA7bGV0IGM9ITE7aWYobz8ucGxhdGZvcm1JZCE9PXN8fG8/LmVuY29kaW5nSWQhPT1yKXtpZigwIT09c3x8MCE9PXImJjEhPT1yJiYzIT09cilpZigxPT09cyYmMD09PXIpYz0hMDtlbHNlIGlmKDMhPT1zfHwxIT09cnx8IWEmJm8pe2lmKG4mJjM9PT1zJiYwPT09cil7Yz0hMDtsZXQgbj0hMDtpZihlPGktMSl7Y29uc3QgZT10LnBlZWtCeXRlcygyKTtpbnQxNihlWzBdLGVbMV0pPHMmJihuPSExKX1uJiYobD0hMCl9fWVsc2V7Yz0hMDtufHwobD0hMCl9ZWxzZSBjPSEwO2MmJihvPXtwbGF0Zm9ybUlkOnMsZW5jb2RpbmdJZDpyLG9mZnNldDpmfSk7aWYobClicmVha319byYmKHQucG9zPXIrby5vZmZzZXQpO2lmKCFvfHwtMT09PXQucGVla0J5dGUoKSl7d2FybigiQ291bGQgbm90IGZpbmQgYSBwcmVmZXJyZWQgY21hcCB0YWJsZS4iKTtyZXR1cm57cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX19Y29uc3QgZj10LmdldFVpbnQxNigpO2xldCBjPSExO2NvbnN0IGg9W107bGV0IHUsbTtpZigwPT09Zil7dC5za2lwKDQpO2Zvcih1PTA7dTwyNTY7dSsrKXtjb25zdCBlPXQuZ2V0Qnl0ZSgpO2UmJmgucHVzaCh7Y2hhckNvZGU6dSxnbHlwaElkOmV9KX1jPSEwfWVsc2UgaWYoMj09PWYpe3Quc2tpcCg0KTtjb25zdCBlPVtdO2xldCBuPTA7Zm9yKGxldCBhPTA7YTwyNTY7YSsrKXtjb25zdCBhPXQuZ2V0VWludDE2KCk+PjM7ZS5wdXNoKGEpO249TWF0aC5tYXgoYSxuKX1jb25zdCBhPVtdO2ZvcihsZXQgZT0wO2U8PW47ZSsrKWEucHVzaCh7Zmlyc3RDb2RlOnQuZ2V0VWludDE2KCksZW50cnlDb3VudDp0LmdldFVpbnQxNigpLGlkRGVsdGE6c2lnbmVkSW50MTYodC5nZXRCeXRlKCksdC5nZXRCeXRlKCkpLGlkUmFuZ2VQb3M6dC5wb3MrdC5nZXRVaW50MTYoKX0pO2ZvcihsZXQgbj0wO248MjU2O24rKylpZigwPT09ZVtuXSl7dC5wb3M9YVswXS5pZFJhbmdlUG9zKzIqbjttPXQuZ2V0VWludDE2KCk7aC5wdXNoKHtjaGFyQ29kZTpuLGdseXBoSWQ6bX0pfWVsc2V7Y29uc3Qgcz1hW2Vbbl1dO2Zvcih1PTA7dTxzLmVudHJ5Q291bnQ7dSsrKXtjb25zdCBlPShuPDw4KSt1K3MuZmlyc3RDb2RlO3QucG9zPXMuaWRSYW5nZVBvcysyKnU7bT10LmdldFVpbnQxNigpOzAhPT1tJiYobT0obStzLmlkRGVsdGEpJTY1NTM2KTtoLnB1c2goe2NoYXJDb2RlOmUsZ2x5cGhJZDptfSl9fX1lbHNlIGlmKDQ9PT1mKXt0LnNraXAoNCk7Y29uc3QgZT10LmdldFVpbnQxNigpPj4xO3Quc2tpcCg2KTtjb25zdCBuPVtdO2xldCBhO2ZvcihhPTA7YTxlO2ErKyluLnB1c2goe2VuZDp0LmdldFVpbnQxNigpfSk7dC5za2lwKDIpO2ZvcihhPTA7YTxlO2ErKyluW2FdLnN0YXJ0PXQuZ2V0VWludDE2KCk7Zm9yKGE9MDthPGU7YSsrKW5bYV0uZGVsdGE9dC5nZXRVaW50MTYoKTtsZXQgaSxvPTA7Zm9yKGE9MDthPGU7YSsrKXtzPW5bYV07Y29uc3Qgcj10LmdldFVpbnQxNigpO2lmKHIpe2k9KHI+PjEpLShlLWEpO3Mub2Zmc2V0SW5kZXg9aTtvPU1hdGgubWF4KG8saStzLmVuZC1zLnN0YXJ0KzEpfWVsc2Ugcy5vZmZzZXRJbmRleD0tMX1jb25zdCBsPVtdO2Zvcih1PTA7dTxvO3UrKylsLnB1c2godC5nZXRVaW50MTYoKSk7Zm9yKGE9MDthPGU7YSsrKXtzPW5bYV07cj1zLnN0YXJ0O2NvbnN0IGU9cy5lbmQsdD1zLmRlbHRhO2k9cy5vZmZzZXRJbmRleDtmb3IodT1yO3U8PWU7dSsrKWlmKDY1NTM1IT09dSl7bT1pPDA/dTpsW2krdS1yXTttPW0rdCY2NTUzNTtoLnB1c2goe2NoYXJDb2RlOnUsZ2x5cGhJZDptfSl9fX1lbHNlIGlmKDY9PT1mKXt0LnNraXAoNCk7Y29uc3QgZT10LmdldFVpbnQxNigpLG49dC5nZXRVaW50MTYoKTtmb3IodT0wO3U8bjt1Kyspe209dC5nZXRVaW50MTYoKTtjb25zdCBuPWUrdTtoLnB1c2goe2NoYXJDb2RlOm4sZ2x5cGhJZDptfSl9fWVsc2V7aWYoMTIhPT1mKXt3YXJuKCJjbWFwIHRhYmxlIGhhcyB1bnN1cHBvcnRlZCBmb3JtYXQ6ICIrZik7cmV0dXJue3BsYXRmb3JtSWQ6LTEsZW5jb2RpbmdJZDotMSxtYXBwaW5nczpbXSxoYXNTaG9ydENtYXA6ITF9fXt0LnNraXAoMTApO2NvbnN0IGU9dC5nZXRJbnQzMigpPj4+MDtmb3IodT0wO3U8ZTt1Kyspe2NvbnN0IGU9dC5nZXRJbnQzMigpPj4+MCxuPXQuZ2V0SW50MzIoKT4+PjA7bGV0IGE9dC5nZXRJbnQzMigpPj4+MDtmb3IobGV0IHQ9ZTt0PD1uO3QrKyloLnB1c2goe2NoYXJDb2RlOnQsZ2x5cGhJZDphKyt9KX19fWguc29ydCgoZSx0KT0+ZS5jaGFyQ29kZS10LmNoYXJDb2RlKTtjb25zdCBwPVtdLGQ9bmV3IFNldDtmb3IoY29uc3QgZSBvZiBoKXtjb25zdHtjaGFyQ29kZTp0fT1lO2lmKCFkLmhhcyh0KSl7ZC5hZGQodCk7cC5wdXNoKGUpfX1yZXR1cm57cGxhdGZvcm1JZDpvLnBsYXRmb3JtSWQsZW5jb2RpbmdJZDpvLmVuY29kaW5nSWQsbWFwcGluZ3M6cCxoYXNTaG9ydENtYXA6Y319KGkuY21hcCx0LHRoaXMuaXNTeW1ib2xpY0ZvbnQsbi5oYXNFbmNvZGluZyksYT1lLnBsYXRmb3JtSWQscz1lLmVuY29kaW5nSWQscj1lLm1hcHBpbmdzO2xldCBvPVtdLGw9ITE7IW4uaGFzRW5jb2Rpbmd8fCJNYWNSb21hbkVuY29kaW5nIiE9PW4uYmFzZUVuY29kaW5nTmFtZSYmIldpbkFuc2lFbmNvZGluZyIhPT1uLmJhc2VFbmNvZGluZ05hbWV8fChvPWdldEVuY29kaW5nKG4uYmFzZUVuY29kaW5nTmFtZSkpO2lmKG4uaGFzRW5jb2RpbmcmJiF0aGlzLmlzU3ltYm9saWNGb250JiYoMz09PWEmJjE9PT1zfHwxPT09YSYmMD09PXMpKXtjb25zdCBlPWdhKCk7Zm9yKGxldCB0PTA7dDwyNTY7dCsrKXtsZXQgaTtpPXZvaWQgMCE9PXRoaXMuZGlmZmVyZW5jZXNbdF0/dGhpcy5kaWZmZXJlbmNlc1t0XTpvLmxlbmd0aCYmIiIhPT1vW3RdP29bdF06dWFbdF07aWYoIWkpY29udGludWU7Y29uc3QgbD1yZWNvdmVyR2x5cGhOYW1lKGksZSk7bGV0IGY7Mz09PWEmJjE9PT1zP2Y9ZVtsXToxPT09YSYmMD09PXMmJihmPWhhLmluZGV4T2YobCkpO2lmKHZvaWQgMD09PWYpe2lmKCFuLmdseXBoTmFtZXMmJm4uaGFzSW5jbHVkZWRUb1VuaWNvZGVNYXAmJiEodGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcCkpe2NvbnN0IGU9dGhpcy50b1VuaWNvZGUuZ2V0KHQpO2UmJihmPWUuY29kZVBvaW50QXQoMCkpfWlmKHZvaWQgMD09PWYpY29udGludWV9Zm9yKGNvbnN0IGUgb2YgcilpZihlLmNoYXJDb2RlPT09Zil7alt0XT1lLmdseXBoSWQ7YnJlYWt9fX1lbHNlIGlmKDA9PT1hKXtmb3IoY29uc3QgZSBvZiByKWpbZS5jaGFyQ29kZV09ZS5nbHlwaElkO2w9ITB9ZWxzZSBpZigzPT09YSYmMD09PXMpZm9yKGNvbnN0IGUgb2Ygcil7bGV0IHQ9ZS5jaGFyQ29kZTt0Pj02MTQ0MCYmdDw9NjE2OTUmJih0Jj0yNTUpO2pbdF09ZS5nbHlwaElkfWVsc2UgZm9yKGNvbnN0IGUgb2YgcilqW2UuY2hhckNvZGVdPWUuZ2x5cGhJZDtpZihuLmdseXBoTmFtZXMmJihvLmxlbmd0aHx8dGhpcy5kaWZmZXJlbmNlcy5sZW5ndGgpKWZvcihsZXQgZT0wO2U8MjU2OysrZSl7aWYoIWwmJnZvaWQgMCE9PWpbZV0pY29udGludWU7Y29uc3QgdD10aGlzLmRpZmZlcmVuY2VzW2VdfHxvW2VdO2lmKCF0KWNvbnRpbnVlO2NvbnN0IGE9bi5nbHlwaE5hbWVzLmluZGV4T2YodCk7YT4wJiZoYXNHbHlwaChhKSYmKGpbZV09YSl9fTA9PT1qLmxlbmd0aCYmKGpbMF09MCk7bGV0IGs9dS0xO218fChrPTApO2lmKCFuLmNzc0ZvbnRJbmZvKXtjb25zdCBlPWFkanVzdE1hcHBpbmcoaixoYXNHbHlwaCxrLHRoaXMudG9Vbmljb2RlKTt0aGlzLnRvRm9udENoYXI9ZS50b0ZvbnRDaGFyO2kuY21hcD17dGFnOiJjbWFwIixkYXRhOmNyZWF0ZUNtYXBUYWJsZShlLmNoYXJDb2RlVG9HbHlwaElkLGUudG9Vbmljb2RlRXh0cmFNYXAsdSl9O2lbIk9TLzIiXSYmZnVuY3Rpb24gdmFsaWRhdGVPUzJUYWJsZShlLHQpe3QucG9zPSh0LnN0YXJ0fHwwKStlLm9mZnNldDtjb25zdCBuPXQuZ2V0VWludDE2KCk7dC5za2lwKDYwKTtjb25zdCBhPXQuZ2V0VWludDE2KCk7aWYobjw0JiY3NjgmYSlyZXR1cm4hMTtpZih0LmdldFVpbnQxNigpPnQuZ2V0VWludDE2KCkpcmV0dXJuITE7dC5za2lwKDYpO2lmKDA9PT10LmdldFVpbnQxNigpKXJldHVybiExO2UuZGF0YVs4XT1lLmRhdGFbOV09MDtyZXR1cm4hMH0oaVsiT1MvMiJdLHQpfHwoaVsiT1MvMiJdPXt0YWc6Ik9TLzIiLGRhdGE6Y3JlYXRlT1MyVGFibGUobixlLmNoYXJDb2RlVG9HbHlwaElkLHcpfSl9aWYoaS5uYW1lKXtjb25zdFt0LGFdPXJlYWROYW1lVGFibGUoaS5uYW1lKTtpLm5hbWUuZGF0YT1jcmVhdGVOYW1lVGFibGUoZSx0KTt0aGlzLnBzTmFtZT10WzBdWzZdfHxudWxsO24uY29tcG9zaXRlfHxmdW5jdGlvbiBhZGp1c3RUcnVlVHlwZVRvVW5pY29kZShlLHQsbil7aWYoZS5pc0ludGVybmFsRm9udClyZXR1cm47aWYoZS5oYXNJbmNsdWRlZFRvVW5pY29kZU1hcClyZXR1cm47aWYoZS5oYXNFbmNvZGluZylyZXR1cm47aWYoZS50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcClyZXR1cm47aWYoIXQpcmV0dXJuO2lmKDA9PT1uLmxlbmd0aClyZXR1cm47aWYoZS5kZWZhdWx0RW5jb2Rpbmc9PT1tYSlyZXR1cm47Zm9yKGNvbnN0IGUgb2YgbilpZighaXNXaW5OYW1lUmVjb3JkKGUpKXJldHVybjtjb25zdCBhPW1hLHM9W10scj1nYSgpO2Zvcihjb25zdCBlIGluIGEpe2NvbnN0IHQ9YVtlXTtpZigiIj09PXQpY29udGludWU7Y29uc3Qgbj1yW3RdO3ZvaWQgMCE9PW4mJihzW2VdPVN0cmluZy5mcm9tQ2hhckNvZGUobikpfXMubGVuZ3RoPjAmJmUudG9Vbmljb2RlLmFtZW5kKHMpfShuLHRoaXMuaXNTeW1ib2xpY0ZvbnQsYSl9ZWxzZSBpLm5hbWU9e3RhZzoibmFtZSIsZGF0YTpjcmVhdGVOYW1lVGFibGUodGhpcy5uYW1lKX07Y29uc3QgeT1uZXcgT3BlblR5cGVGaWxlQnVpbGRlcihyLnZlcnNpb24pO2Zvcihjb25zdCBlIGluIGkpeS5hZGRUYWJsZShlLGlbZV0uZGF0YSk7cmV0dXJuIHkudG9BcnJheSgpfWNvbnZlcnQoZSxuLGEpe2EuZml4ZWRQaXRjaD0hMTthLmJ1aWx0SW5FbmNvZGluZyYmZnVuY3Rpb24gYWRqdXN0VHlwZTFUb1VuaWNvZGUoZSx0KXtpZihlLmlzSW50ZXJuYWxGb250KXJldHVybjtpZihlLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwKXJldHVybjtpZih0PT09ZS5kZWZhdWx0RW5jb2RpbmcpcmV0dXJuO2lmKGUudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXApcmV0dXJuO2NvbnN0IG49W10sYT1nYSgpO2Zvcihjb25zdCBzIGluIHQpe2lmKGUuaGFzRW5jb2RpbmcmJihlLmJhc2VFbmNvZGluZ05hbWV8fHZvaWQgMCE9PWUuZGlmZmVyZW5jZXNbc10pKWNvbnRpbnVlO2NvbnN0IHI9Z2V0VW5pY29kZUZvckdseXBoKHRbc10sYSk7LTEhPT1yJiYobltzXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHIpKX1uLmxlbmd0aD4wJiZlLnRvVW5pY29kZS5hbWVuZChuKX0oYSxhLmJ1aWx0SW5FbmNvZGluZyk7bGV0IHM9MTtuIGluc3RhbmNlb2YgQ0ZGRm9udCYmKHM9bi5udW1HbHlwaHMtMSk7Y29uc3Qgcj1uLmdldEdseXBoTWFwcGluZyhhKTtsZXQgaT1udWxsLG89cixsPW51bGw7aWYoIWEuY3NzRm9udEluZm8pe2k9YWRqdXN0TWFwcGluZyhyLG4uaGFzR2x5cGhJZC5iaW5kKG4pLHMsdGhpcy50b1VuaWNvZGUpO3RoaXMudG9Gb250Q2hhcj1pLnRvRm9udENoYXI7bz1pLmNoYXJDb2RlVG9HbHlwaElkO2w9aS50b1VuaWNvZGVFeHRyYU1hcH1jb25zdCBmPW4ubnVtR2x5cGhzO2Z1bmN0aW9uIGdldENoYXJDb2RlcyhlLHQpe2xldCBuPW51bGw7Zm9yKGNvbnN0IGEgaW4gZSl0PT09ZVthXSYmKG58fD1bXSkucHVzaCgwfGEpO3JldHVybiBufWZ1bmN0aW9uIGNyZWF0ZUNoYXJDb2RlKGUsdCl7Zm9yKGNvbnN0IG4gaW4gZSlpZih0PT09ZVtuXSlyZXR1cm4gMHxuO2kuY2hhckNvZGVUb0dseXBoSWRbaS5uZXh0QXZhaWxhYmxlRm9udENoYXJDb2RlXT10O3JldHVybiBpLm5leHRBdmFpbGFibGVGb250Q2hhckNvZGUrK31jb25zdCBjPW4uc2VhY3M7aWYoaSYmYz8ubGVuZ3RoKXtjb25zdCBlPWEuZm9udE1hdHJpeHx8dCxzPW4uZ2V0Q2hhcnNldCgpLG89T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IHQgaW4gYyl7dHw9MDtjb25zdCBuPWNbdF0sYT11YVtuWzJdXSxsPXVhW25bM11dLGY9cy5pbmRleE9mKGEpLGg9cy5pbmRleE9mKGwpO2lmKGY8MHx8aDwwKWNvbnRpbnVlO2NvbnN0IHU9e3g6blswXSplWzBdK25bMV0qZVsyXStlWzRdLHk6blswXSplWzFdK25bMV0qZVszXStlWzVdfSxtPWdldENoYXJDb2RlcyhyLHQpO2lmKG0pZm9yKGNvbnN0IGUgb2YgbSl7Y29uc3QgdD1pLmNoYXJDb2RlVG9HbHlwaElkLG49Y3JlYXRlQ2hhckNvZGUodCxmKSxhPWNyZWF0ZUNoYXJDb2RlKHQsaCk7b1tlXT17YmFzZUZvbnRDaGFyQ29kZTpuLGFjY2VudEZvbnRDaGFyQ29kZTphLGFjY2VudE9mZnNldDp1fX19YS5zZWFjTWFwPW99Y29uc3QgaD1hLmZvbnRNYXRyaXg/MS9NYXRoLm1heCguLi5hLmZvbnRNYXRyaXguc2xpY2UoMCw0KS5tYXAoTWF0aC5hYnMpKToxZTMsdT1uZXcgT3BlblR5cGVGaWxlQnVpbGRlcigiT1RUTyIpO3UuYWRkVGFibGUoIkNGRiAiLG4uZGF0YSk7dS5hZGRUYWJsZSgiT1MvMiIsY3JlYXRlT1MyVGFibGUoYSxvKSk7dS5hZGRUYWJsZSgiY21hcCIsY3JlYXRlQ21hcFRhYmxlKG8sbCxmKSk7dS5hZGRUYWJsZSgiaGVhZCIsIlwwAVwwXDBcMFwwEFwwXDBcMFwwXDBfDzzDtVwwXDAiK3NhZmVTdHJpbmcxNihoKSsiXDBcMFwwXDDCnlx2fidcMFwwXDBcMMKeXHZ+J1wwXDAiK3NhZmVTdHJpbmcxNihhLmRlc2NlbnQpKyIPw78iK3NhZmVTdHJpbmcxNihhLmFzY2VudCkrc3RyaW5nMTYoYS5pdGFsaWNBbmdsZT8yOjApKyJcMBFcMFwwXDBcMFwwXDAiKTt1LmFkZFRhYmxlKCJoaGVhIiwiXDABXDBcMCIrc2FmZVN0cmluZzE2KGEuYXNjZW50KStzYWZlU3RyaW5nMTYoYS5kZXNjZW50KSsiXDBcMMO/w79cMFwwXDBcMFwwXDAiK3NhZmVTdHJpbmcxNihhLmNhcEhlaWdodCkrc2FmZVN0cmluZzE2KE1hdGgudGFuKGEuaXRhbGljQW5nbGUpKmEueEhlaWdodCkrIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIrc3RyaW5nMTYoZikpO3UuYWRkVGFibGUoImhtdHgiLGZ1bmN0aW9uIGZvbnRGaWVsZHNIbXR4KCl7Y29uc3QgZT1uLmNoYXJzdHJpbmdzLHQ9bi5jZmY/bi5jZmYud2lkdGhzOm51bGw7bGV0IGE9IlwwXDBcMFwwIjtmb3IobGV0IG49MSxzPWY7bjxzO24rKyl7bGV0IHM9MDtpZihlKXtjb25zdCB0PWVbbi0xXTtzPSJ3aWR0aCJpbiB0P3Qud2lkdGg6MH1lbHNlIHQmJihzPU1hdGguY2VpbCh0W25dfHwwKSk7YSs9c3RyaW5nMTYocykrc3RyaW5nMTYoMCl9cmV0dXJuIGF9KCkpO3UuYWRkVGFibGUoIm1heHAiLCJcMFwwUFwwIitzdHJpbmcxNihmKSk7dS5hZGRUYWJsZSgibmFtZSIsY3JlYXRlTmFtZVRhYmxlKGUpKTt1LmFkZFRhYmxlKCJwb3N0IixjcmVhdGVQb3N0VGFibGUoYSkpO3JldHVybiB1LnRvQXJyYXkoKX1nZXQgX3NwYWNlV2lkdGgoKXtjb25zdCBlPVsic3BhY2UiLCJtaW51cyIsIm9uZSIsImkiLCJJIl07bGV0IHQ7Zm9yKGNvbnN0IG4gb2YgZSl7aWYobiBpbiB0aGlzLndpZHRocyl7dD10aGlzLndpZHRoc1tuXTticmVha31jb25zdCBlPWdhKClbbl07bGV0IGE9MDtpZih0aGlzLmNvbXBvc2l0ZSYmdGhpcy5jTWFwLmNvbnRhaW5zKGUpKXthPXRoaXMuY01hcC5sb29rdXAoZSk7InN0cmluZyI9PXR5cGVvZiBhJiYoYT1jb252ZXJ0Q2lkU3RyaW5nKGUsYSkpfSFhJiZ0aGlzLnRvVW5pY29kZSYmKGE9dGhpcy50b1VuaWNvZGUuY2hhckNvZGVPZihlKSk7YTw9MCYmKGE9ZSk7dD10aGlzLndpZHRoc1thXTtpZih0KWJyZWFrfXJldHVybiBzaGFkb3codGhpcywiX3NwYWNlV2lkdGgiLHR8fHRoaXMuZGVmYXVsdFdpZHRoKX1fY2hhclRvR2x5cGgoZSx0PSExKXtsZXQgbixhLHMscj10aGlzLl9nbHlwaENhY2hlW2VdO2lmKHI/LmlzU3BhY2U9PT10KXJldHVybiByO2xldCBpPWU7aWYodGhpcy5jTWFwPy5jb250YWlucyhlKSl7aT10aGlzLmNNYXAubG9va3VwKGUpOyJzdHJpbmciPT10eXBlb2YgaSYmKGk9Y29udmVydENpZFN0cmluZyhlLGkpKX1hPXRoaXMud2lkdGhzW2ldOyJudW1iZXIiIT10eXBlb2YgYSYmKGE9dGhpcy5kZWZhdWx0V2lkdGgpO2NvbnN0IG89dGhpcy52bWV0cmljcz8uW2ldO2xldCBsPXRoaXMudG9Vbmljb2RlLmdldChlKXx8ZTsibnVtYmVyIj09dHlwZW9mIGwmJihsPVN0cmluZy5mcm9tQ2hhckNvZGUobCkpO2xldCBmPXZvaWQgMCE9PXRoaXMudG9Gb250Q2hhcltlXTtuPXRoaXMudG9Gb250Q2hhcltlXXx8ZTtpZih0aGlzLm1pc3NpbmdGaWxlKXtjb25zdCB0PXRoaXMuZGlmZmVyZW5jZXNbZV18fHRoaXMuZGVmYXVsdEVuY29kaW5nW2VdO2lmKCgiLm5vdGRlZiI9PT10fHwiIj09PXQpJiYiVHlwZTEiPT09dGhpcy50eXBlKXtuPTMyO2lmKCIiPT09dCl7YXx8PXRoaXMuX3NwYWNlV2lkdGg7bD1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pfX1uPWZ1bmN0aW9uIG1hcFNwZWNpYWxVbmljb2RlVmFsdWVzKGUpe3JldHVybiBlPj02NTUyMCYmZTw9NjU1MzU/MDplPj02Mjk3NiYmZTw9NjM3NDM/d2EoKVtlXXx8ZToxNzM9PT1lPzQ1OmV9KG4pfXRoaXMuaXNUeXBlM0ZvbnQmJihzPW4pO2xldCBjPW51bGw7aWYodGhpcy5zZWFjTWFwPy5bZV0pe2Y9ITA7Y29uc3QgdD10aGlzLnNlYWNNYXBbZV07bj10LmJhc2VGb250Q2hhckNvZGU7Yz17Zm9udENoYXI6U3RyaW5nLmZyb21Db2RlUG9pbnQodC5hY2NlbnRGb250Q2hhckNvZGUpLG9mZnNldDp0LmFjY2VudE9mZnNldH19bGV0IGg9IiI7Im51bWJlciI9PXR5cGVvZiBuJiYobjw9MTExNDExMT9oPVN0cmluZy5mcm9tQ29kZVBvaW50KG4pOndhcm4oYGNoYXJUb0dseXBoIC0gaW52YWxpZCBmb250Q2hhckNvZGU6ICR7bn1gKSk7aWYodGhpcy5taXNzaW5nRmlsZSYmdGhpcy52ZXJ0aWNhbCYmMT09PWgubGVuZ3RoKXtjb25zdCBlPUlhKClbaC5jaGFyQ29kZUF0KDApXTtlJiYoaD1sPVN0cmluZy5mcm9tQ2hhckNvZGUoZSkpfXI9bmV3IGZvbnRzX0dseXBoKGUsaCxsLGMsYSxvLHMsdCxmKTtyZXR1cm4gdGhpcy5fZ2x5cGhDYWNoZVtlXT1yfWNoYXJzVG9HbHlwaHMoZSl7bGV0IHQ9dGhpcy5fY2hhcnNDYWNoZVtlXTtpZih0KXJldHVybiB0O3Q9W107aWYodGhpcy5jTWFwKXtjb25zdCBuPU9iamVjdC5jcmVhdGUobnVsbCksYT1lLmxlbmd0aDtsZXQgcz0wO2Zvcig7czxhOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShlLHMsbik7Y29uc3R7Y2hhcmNvZGU6YSxsZW5ndGg6cn09bjtzKz1yO2NvbnN0IGk9dGhpcy5fY2hhclRvR2x5cGgoYSwxPT09ciYmMzI9PT1lLmNoYXJDb2RlQXQocy0xKSk7dC5wdXNoKGkpfX1lbHNlIGZvcihsZXQgbj0wLGE9ZS5sZW5ndGg7bjxhOysrbil7Y29uc3QgYT1lLmNoYXJDb2RlQXQobikscz10aGlzLl9jaGFyVG9HbHlwaChhLDMyPT09YSk7dC5wdXNoKHMpfXJldHVybiB0aGlzLl9jaGFyc0NhY2hlW2VdPXR9Z2V0Q2hhclBvc2l0aW9ucyhlKXtjb25zdCB0PVtdO2lmKHRoaXMuY01hcCl7Y29uc3Qgbj1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhPTA7Zm9yKDthPGUubGVuZ3RoOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShlLGEsbik7Y29uc3Qgcz1uLmxlbmd0aDt0LnB1c2goW2EsYStzXSk7YSs9c319ZWxzZSBmb3IobGV0IG49MCxhPWUubGVuZ3RoO248YTsrK24pdC5wdXNoKFtuLG4rMV0pO3JldHVybiB0fWdldCBnbHlwaENhY2hlVmFsdWVzKCl7cmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fZ2x5cGhDYWNoZSl9ZW5jb2RlU3RyaW5nKGUpe2NvbnN0IHQ9W10sbj1bXSxoYXNDdXJyZW50QnVmRXJyb3JzPSgpPT50Lmxlbmd0aCUyPT0xLGE9dGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcD9lPT50aGlzLnRvVW5pY29kZS5jaGFyQ29kZU9mKGUpOmU9PnRoaXMudG9Vbmljb2RlLmNoYXJDb2RlT2YoU3RyaW5nLmZyb21Db2RlUG9pbnQoZSkpO2ZvcihsZXQgcz0wLHI9ZS5sZW5ndGg7czxyO3MrKyl7Y29uc3Qgcj1lLmNvZGVQb2ludEF0KHMpO3I+NTUyOTUmJihyPDU3MzQ0fHxyPjY1NTMzKSYmcysrO2lmKHRoaXMudG9Vbmljb2RlKXtjb25zdCBlPWEocik7aWYoLTEhPT1lKXtpZihoYXNDdXJyZW50QnVmRXJyb3JzKCkpe3QucHVzaChuLmpvaW4oIiIpKTtuLmxlbmd0aD0wfWZvcihsZXQgdD0odGhpcy5jTWFwP3RoaXMuY01hcC5nZXRDaGFyQ29kZUxlbmd0aChlKToxKS0xO3Q+PTA7dC0tKW4ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjgqdCYyNTUpKTtjb250aW51ZX19aWYoIWhhc0N1cnJlbnRCdWZFcnJvcnMoKSl7dC5wdXNoKG4uam9pbigiIikpO24ubGVuZ3RoPTB9bi5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KHIpKX10LnB1c2gobi5qb2luKCIiKSk7cmV0dXJuIHR9fWNsYXNzIEVycm9yRm9udHtjb25zdHJ1Y3RvcihlKXt0aGlzLmVycm9yPWU7dGhpcy5sb2FkZWROYW1lPSJnX2ZvbnRfZXJyb3IiO3RoaXMubWlzc2luZ0ZpbGU9ITB9Y2hhcnNUb0dseXBocygpe3JldHVybltdfWVuY29kZVN0cmluZyhlKXtyZXR1cm5bZV19ZXhwb3J0RGF0YSgpe3JldHVybntlcnJvcjp0aGlzLmVycm9yfX19Y2xhc3MgQ3NzRm9udEluZm97I087I1g7I1c7c3RhdGljIHN0cmluZ3M9WyJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIml0YWxpY0FuZ2xlIl07c3RhdGljIHdyaXRlKGUpe2NvbnN0IHQ9bmV3IFRleHRFbmNvZGVyLG49e307bGV0IGE9MDtmb3IoY29uc3QgcyBvZiBDc3NGb250SW5mby5zdHJpbmdzKXtjb25zdCByPXQuZW5jb2RlKGVbc10pO25bc109cjthKz00K3IubGVuZ3RofWNvbnN0IHM9bmV3IEFycmF5QnVmZmVyKGEpLHI9bmV3IFVpbnQ4QXJyYXkocyksaT1uZXcgRGF0YVZpZXcocyk7bGV0IG89MDtmb3IoY29uc3QgZSBvZiBDc3NGb250SW5mby5zdHJpbmdzKXtjb25zdCB0PW5bZV0sYT10Lmxlbmd0aDtpLnNldFVpbnQzMihvLGEpO3Iuc2V0KHQsbys0KTtvKz00K2F9YXNzZXJ0KG89PT1zLmJ5dGVMZW5ndGgsIkNzc0ZvbnRJbmZvLndyaXRlOiBCdWZmZXIgb3ZlcmZsb3ciKTtyZXR1cm4gc31jb25zdHJ1Y3RvcihlKXt0aGlzLiNPPWU7dGhpcy4jWD1uZXcgRGF0YVZpZXcodGhpcy4jTyk7dGhpcy4jVz1uZXcgVGV4dERlY29kZXJ9I0soZSl7YXNzZXJ0KGU8Q3NzRm9udEluZm8uc3RyaW5ncy5sZW5ndGgsIkludmFsaWQgc3RyaW5nIGluZGV4Iik7bGV0IHQ9MDtmb3IobGV0IG49MDtuPGU7bisrKXQrPXRoaXMuI1guZ2V0VWludDMyKHQpKzQ7Y29uc3Qgbj10aGlzLiNYLmdldFVpbnQzMih0KTtyZXR1cm4gdGhpcy4jVy5kZWNvZGUobmV3IFVpbnQ4QXJyYXkodGhpcy4jTyx0KzQsbikpfWdldCBmb250RmFtaWx5KCl7cmV0dXJuIHRoaXMuI0soMCl9Z2V0IGZvbnRXZWlnaHQoKXtyZXR1cm4gdGhpcy4jSygxKX1nZXQgaXRhbGljQW5nbGUoKXtyZXR1cm4gdGhpcy4jSygyKX19Y2xhc3MgU3lzdGVtRm9udEluZm97I087I1g7I1c7c3RhdGljIHN0cmluZ3M9WyJjc3MiLCJsb2FkZWROYW1lIiwiYmFzZUZvbnROYW1lIiwic3JjIl07c3RhdGljIHdyaXRlKGUpe2NvbnN0IHQ9bmV3IFRleHRFbmNvZGVyLG49e307bGV0IGE9MDtmb3IoY29uc3QgcyBvZiBTeXN0ZW1Gb250SW5mby5zdHJpbmdzKXtjb25zdCByPXQuZW5jb2RlKGVbc10pO25bc109cjthKz00K3IubGVuZ3RofWErPTQ7bGV0IHMscixpPTErYTtpZihlLnN0eWxlKXtzPXQuZW5jb2RlKGUuc3R5bGUuc3R5bGUpO3I9dC5lbmNvZGUoZS5zdHlsZS53ZWlnaHQpO2krPTQrcy5sZW5ndGgrNCtyLmxlbmd0aH1jb25zdCBvPW5ldyBBcnJheUJ1ZmZlcihpKSxsPW5ldyBVaW50OEFycmF5KG8pLGY9bmV3IERhdGFWaWV3KG8pO2xldCBjPTA7Zi5zZXRVaW50OChjKyssZS5ndWVzc0ZhbGxiYWNrPzE6MCk7Zi5zZXRVaW50MzIoYywwKTtjKz00O2E9MDtmb3IoY29uc3QgZSBvZiBTeXN0ZW1Gb250SW5mby5zdHJpbmdzKXtjb25zdCB0PW5bZV0scz10Lmxlbmd0aDthKz00K3M7Zi5zZXRVaW50MzIoYyxzKTtsLnNldCh0LGMrNCk7Yys9NCtzfWYuc2V0VWludDMyKGMtYS00LGEpO2lmKGUuc3R5bGUpe2Yuc2V0VWludDMyKGMscy5sZW5ndGgpO2wuc2V0KHMsYys0KTtjKz00K3MubGVuZ3RoO2Yuc2V0VWludDMyKGMsci5sZW5ndGgpO2wuc2V0KHIsYys0KTtjKz00K3IubGVuZ3RofWFzc2VydChjPD1vLmJ5dGVMZW5ndGgsIlN1YnN0aXRpb25JbmZvLndyaXRlOiBCdWZmZXIgb3ZlcmZsb3ciKTtyZXR1cm4gby50cmFuc2ZlclRvRml4ZWRMZW5ndGgoYyl9Y29uc3RydWN0b3IoZSl7dGhpcy4jTz1lO3RoaXMuI1g9bmV3IERhdGFWaWV3KHRoaXMuI08pO3RoaXMuI1c9bmV3IFRleHREZWNvZGVyfWdldCBndWVzc0ZhbGxiYWNrKCl7cmV0dXJuIDAhPT10aGlzLiNYLmdldFVpbnQ4KDApfSNLKGUpe2Fzc2VydChlPFN5c3RlbUZvbnRJbmZvLnN0cmluZ3MubGVuZ3RoLCJJbnZhbGlkIHN0cmluZyBpbmRleCIpO2xldCB0PTU7Zm9yKGxldCBuPTA7bjxlO24rKyl0Kz10aGlzLiNYLmdldFVpbnQzMih0KSs0O2NvbnN0IG49dGhpcy4jWC5nZXRVaW50MzIodCk7cmV0dXJuIHRoaXMuI1cuZGVjb2RlKG5ldyBVaW50OEFycmF5KHRoaXMuI08sdCs0LG4pKX1nZXQgY3NzKCl7cmV0dXJuIHRoaXMuI0soMCl9Z2V0IGxvYWRlZE5hbWUoKXtyZXR1cm4gdGhpcy4jSygxKX1nZXQgYmFzZUZvbnROYW1lKCl7cmV0dXJuIHRoaXMuI0soMil9Z2V0IHNyYygpe3JldHVybiB0aGlzLiNLKDMpfWdldCBzdHlsZSgpe2xldCBlPTE7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtjb25zdCB0PXRoaXMuI1guZ2V0VWludDMyKGUpLG49dGhpcy4jVy5kZWNvZGUobmV3IFVpbnQ4QXJyYXkodGhpcy4jTyxlKzQsdCkpO2UrPTQrdDtjb25zdCBhPXRoaXMuI1guZ2V0VWludDMyKGUpO3JldHVybntzdHlsZTpuLHdlaWdodDp0aGlzLiNXLmRlY29kZShuZXcgVWludDhBcnJheSh0aGlzLiNPLGUrNCxhKSl9fX1jbGFzcyBGb250SW5mb3tzdGF0aWMgYm9vbHM9WyJibGFjayIsImJvbGQiLCJkaXNhYmxlRm9udEZhY2UiLCJmb250RXh0cmFQcm9wZXJ0aWVzIiwiaXNJbnZhbGlkUERGanNGb250IiwiaXNUeXBlM0ZvbnQiLCJpdGFsaWMiLCJtaXNzaW5nRmlsZSIsInJlbWVhc3VyZSIsInZlcnRpY2FsIl07c3RhdGljIG51bWJlcnM9WyJhc2NlbnQiLCJkZWZhdWx0V2lkdGgiLCJkZXNjZW50Il07c3RhdGljIHN0cmluZ3M9WyJmYWxsYmFja05hbWUiLCJsb2FkZWROYW1lIiwibWltZXR5cGUiLCJuYW1lIl07c3RhdGljI0c9TWF0aC5jZWlsKDIqdGhpcy5ib29scy5sZW5ndGgvOCk7c3RhdGljI1Y9dGhpcy4jRys4KnRoaXMubnVtYmVycy5sZW5ndGg7c3RhdGljIyQ9dGhpcy4jVisxKzg7c3RhdGljI1k9dGhpcy4jJCsxKzQ4O3N0YXRpYyNKPXRoaXMuI1krMSs2OyNPOyNXOyNYO2NvbnN0cnVjdG9yKHtkYXRhOmUsZXh0cmE6dH0pe3RoaXMuI089ZTt0aGlzLiNXPW5ldyBUZXh0RGVjb2Rlcjt0aGlzLiNYPW5ldyBEYXRhVmlldyh0aGlzLiNPKTt0JiZPYmplY3QuYXNzaWduKHRoaXMsdCl9I1EoZSl7YXNzZXJ0KGU8Rm9udEluZm8uYm9vbHMubGVuZ3RoLCJJbnZhbGlkIGJvb2xlYW4gaW5kZXgiKTtjb25zdCB0PU1hdGguZmxvb3IoZS80KSxuPTIqZSU4LGE9dGhpcy4jWC5nZXRVaW50OCh0KT4+biYzO3JldHVybiAwPT09YT92b2lkIDA6Mj09PWF9Z2V0IGJsYWNrKCl7cmV0dXJuIHRoaXMuI1EoMCl9Z2V0IGJvbGQoKXtyZXR1cm4gdGhpcy4jUSgxKX1nZXQgZGlzYWJsZUZvbnRGYWNlKCl7cmV0dXJuIHRoaXMuI1EoMil9Z2V0IGZvbnRFeHRyYVByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy4jUSgzKX1nZXQgaXNJbnZhbGlkUERGanNGb250KCl7cmV0dXJuIHRoaXMuI1EoNCl9Z2V0IGlzVHlwZTNGb250KCl7cmV0dXJuIHRoaXMuI1EoNSl9Z2V0IGl0YWxpYygpe3JldHVybiB0aGlzLiNRKDYpfWdldCBtaXNzaW5nRmlsZSgpe3JldHVybiB0aGlzLiNRKDcpfWdldCByZW1lYXN1cmUoKXtyZXR1cm4gdGhpcy4jUSg4KX1nZXQgdmVydGljYWwoKXtyZXR1cm4gdGhpcy4jUSg5KX0jWihlKXthc3NlcnQoZTxGb250SW5mby5udW1iZXJzLmxlbmd0aCwiSW52YWxpZCBudW1iZXIgaW5kZXgiKTtyZXR1cm4gdGhpcy4jWC5nZXRGbG9hdDY0KEZvbnRJbmZvLiNHKzgqZSl9Z2V0IGFzY2VudCgpe3JldHVybiB0aGlzLiNaKDApfWdldCBkZWZhdWx0V2lkdGgoKXtyZXR1cm4gdGhpcy4jWigxKX1nZXQgZGVzY2VudCgpe3JldHVybiB0aGlzLiNaKDIpfWdldCBiYm94KCl7bGV0IGU9Rm9udEluZm8uI1Y7aWYoMD09PXRoaXMuI1guZ2V0VWludDgoZSkpcmV0dXJuO2UrPTE7Y29uc3QgdD1bXTtmb3IobGV0IG49MDtuPDQ7bisrKXt0LnB1c2godGhpcy4jWC5nZXRJbnQxNihlLCEwKSk7ZSs9Mn1yZXR1cm4gdH1nZXQgZm9udE1hdHJpeCgpe2xldCBlPUZvbnRJbmZvLiMkO2lmKDA9PT10aGlzLiNYLmdldFVpbnQ4KGUpKXJldHVybjtlKz0xO2NvbnN0IHQ9W107Zm9yKGxldCBuPTA7bjw2O24rKyl7dC5wdXNoKHRoaXMuI1guZ2V0RmxvYXQ2NChlLCEwKSk7ZSs9OH1yZXR1cm4gdH1nZXQgZGVmYXVsdFZNZXRyaWNzKCl7bGV0IGU9Rm9udEluZm8uI1k7aWYoMD09PXRoaXMuI1guZ2V0VWludDgoZSkpcmV0dXJuO2UrPTE7Y29uc3QgdD1bXTtmb3IobGV0IG49MDtuPDM7bisrKXt0LnB1c2godGhpcy4jWC5nZXRJbnQxNihlLCEwKSk7ZSs9Mn1yZXR1cm4gdH0jSyhlKXthc3NlcnQoZTxGb250SW5mby5zdHJpbmdzLmxlbmd0aCwiSW52YWxpZCBzdHJpbmcgaW5kZXgiKTtsZXQgdD1Gb250SW5mby4jSis0O2ZvcihsZXQgbj0wO248ZTtuKyspdCs9dGhpcy4jWC5nZXRVaW50MzIodCkrNDtjb25zdCBuPXRoaXMuI1guZ2V0VWludDMyKHQpLGE9bmV3IFVpbnQ4QXJyYXkobik7YS5zZXQobmV3IFVpbnQ4QXJyYXkodGhpcy4jTyx0KzQsbikpO3JldHVybiB0aGlzLiNXLmRlY29kZShhKX1nZXQgZmFsbGJhY2tOYW1lKCl7cmV0dXJuIHRoaXMuI0soMCl9Z2V0IGxvYWRlZE5hbWUoKXtyZXR1cm4gdGhpcy4jSygxKX1nZXQgbWltZXR5cGUoKXtyZXR1cm4gdGhpcy4jSygyKX1nZXQgbmFtZSgpe3JldHVybiB0aGlzLiNLKDMpfWdldCBkYXRhKCl7bGV0IGU9Rm9udEluZm8uI0o7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtlKz00K3RoaXMuI1guZ2V0VWludDMyKGUpO2UrPTQrdGhpcy4jWC5nZXRVaW50MzIoZSk7Y29uc3QgdD10aGlzLiNYLmdldFVpbnQzMihlKTtpZigwIT09dClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodGhpcy4jTyxlKzQsdCl9Y2xlYXJEYXRhKCl7bGV0IGU9Rm9udEluZm8uI0o7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtlKz00K3RoaXMuI1guZ2V0VWludDMyKGUpO2UrPTQrdGhpcy4jWC5nZXRVaW50MzIoZSk7Y29uc3QgdD10aGlzLiNYLmdldFVpbnQzMihlKTtuZXcgVWludDhBcnJheSh0aGlzLiNPLGUrNCx0KS5maWxsKDApO3RoaXMuI1guc2V0VWludDMyKGUsMCl9Z2V0IGNzc0ZvbnRJbmZvKCl7bGV0IGU9Rm9udEluZm8uI0o7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtlKz00K3RoaXMuI1guZ2V0VWludDMyKGUpO2NvbnN0IHQ9dGhpcy4jWC5nZXRVaW50MzIoZSk7aWYoMD09PXQpcmV0dXJuIG51bGw7Y29uc3Qgbj1uZXcgVWludDhBcnJheSh0KTtuLnNldChuZXcgVWludDhBcnJheSh0aGlzLiNPLGUrNCx0KSk7cmV0dXJuIG5ldyBDc3NGb250SW5mbyhuLmJ1ZmZlcil9Z2V0IHN5c3RlbUZvbnRJbmZvKCl7bGV0IGU9Rm9udEluZm8uI0o7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtjb25zdCB0PXRoaXMuI1guZ2V0VWludDMyKGUpO2lmKDA9PT10KXJldHVybiBudWxsO2NvbnN0IG49bmV3IFVpbnQ4QXJyYXkodCk7bi5zZXQobmV3IFVpbnQ4QXJyYXkodGhpcy4jTyxlKzQsdCkpO3JldHVybiBuZXcgU3lzdGVtRm9udEluZm8obi5idWZmZXIpfXN0YXRpYyB3cml0ZShlKXtjb25zdCB0PWUuc3lzdGVtRm9udEluZm8/U3lzdGVtRm9udEluZm8ud3JpdGUoZS5zeXN0ZW1Gb250SW5mbyk6bnVsbCxuPWUuY3NzRm9udEluZm8/Q3NzRm9udEluZm8ud3JpdGUoZS5jc3NGb250SW5mbyk6bnVsbCxhPW5ldyBUZXh0RW5jb2RlcixzPXt9O2xldCByPTA7Zm9yKGNvbnN0IHQgb2YgRm9udEluZm8uc3RyaW5ncyl7c1t0XT1hLmVuY29kZShlW3RdKTtyKz00K3NbdF0ubGVuZ3RofWNvbnN0IGk9Rm9udEluZm8uI0orNCtyKzQrKHQ/dC5ieXRlTGVuZ3RoOjApKzQrKG4/bi5ieXRlTGVuZ3RoOjApKzQrKGUuZGF0YT9lLmRhdGEubGVuZ3RoOjApLG89bmV3IEFycmF5QnVmZmVyKGkpLGw9bmV3IFVpbnQ4QXJyYXkobyksZj1uZXcgRGF0YVZpZXcobyk7bGV0IGM9MDtjb25zdCBoPUZvbnRJbmZvLmJvb2xzLmxlbmd0aDtsZXQgdT0wLG09MDtmb3IobGV0IHQ9MDt0PGg7dCsrKXtjb25zdCBuPWVbRm9udEluZm8uYm9vbHNbdF1dO3V8PSh2b2lkIDA9PT1uPzA6bj8yOjEpPDxtO20rPTI7aWYoOD09PW18fHQ9PT1oLTEpe2Yuc2V0VWludDgoYysrLHUpO3U9MDttPTB9fWFzc2VydChjPT09Rm9udEluZm8uI0csIkZvbnRJbmZvLndyaXRlOiBCb29sZWFuIHByb3BlcnRpZXMgb2Zmc2V0IG1pc21hdGNoIik7Zm9yKGNvbnN0IHQgb2YgRm9udEluZm8ubnVtYmVycyl7Zi5zZXRGbG9hdDY0KGMsZVt0XSk7Yys9OH1hc3NlcnQoYz09PUZvbnRJbmZvLiNWLCJGb250SW5mby53cml0ZTogTnVtYmVyIHByb3BlcnRpZXMgb2Zmc2V0IG1pc21hdGNoIik7aWYoZS5iYm94KXtmLnNldFVpbnQ4KGMrKyw0KTtmb3IoY29uc3QgdCBvZiBlLmJib3gpe2Yuc2V0SW50MTYoYyx0LCEwKTtjKz0yfX1lbHNle2Yuc2V0VWludDgoYysrLDApO2MrPTh9YXNzZXJ0KGM9PT1Gb250SW5mby4jJCwiRm9udEluZm8ud3JpdGU6IEJCb3ggcHJvcGVydGllcyBvZmZzZXQgbWlzbWF0Y2giKTtpZihlLmZvbnRNYXRyaXgpe2Yuc2V0VWludDgoYysrLDYpO2Zvcihjb25zdCB0IG9mIGUuZm9udE1hdHJpeCl7Zi5zZXRGbG9hdDY0KGMsdCwhMCk7Yys9OH19ZWxzZXtmLnNldFVpbnQ4KGMrKywwKTtjKz00OH1hc3NlcnQoYz09PUZvbnRJbmZvLiNZLCJGb250SW5mby53cml0ZTogRm9udE1hdHJpeCBwcm9wZXJ0aWVzIG9mZnNldCBtaXNtYXRjaCIpO2lmKGUuZGVmYXVsdFZNZXRyaWNzKXtmLnNldFVpbnQ4KGMrKywxKTtmb3IoY29uc3QgdCBvZiBlLmRlZmF1bHRWTWV0cmljcyl7Zi5zZXRJbnQxNihjLHQsITApO2MrPTJ9fWVsc2V7Zi5zZXRVaW50OChjKyssMCk7Yys9Nn1hc3NlcnQoYz09PUZvbnRJbmZvLiNKLCJGb250SW5mby53cml0ZTogRGVmYXVsdFZNZXRyaWNzIHByb3BlcnRpZXMgb2Zmc2V0IG1pc21hdGNoIik7Zi5zZXRVaW50MzIoRm9udEluZm8uI0osMCk7Yys9NDtmb3IoY29uc3QgZSBvZiBGb250SW5mby5zdHJpbmdzKXtjb25zdCB0PXNbZV0sbj10Lmxlbmd0aDtmLnNldFVpbnQzMihjLG4pO2wuc2V0KHQsYys0KTtjKz00K259Zi5zZXRVaW50MzIoRm9udEluZm8uI0osYy1Gb250SW5mby4jSi00KTtpZih0KXtjb25zdCBlPXQuYnl0ZUxlbmd0aDtmLnNldFVpbnQzMihjLGUpO2Fzc2VydChjKzQrZTw9by5ieXRlTGVuZ3RoLCJGb250SW5mby53cml0ZTogQnVmZmVyIG92ZXJmbG93IGF0IHN5c3RlbUZvbnRJbmZvIik7bC5zZXQobmV3IFVpbnQ4QXJyYXkodCksYys0KTtjKz00K2V9ZWxzZXtmLnNldFVpbnQzMihjLDApO2MrPTR9aWYobil7Y29uc3QgZT1uLmJ5dGVMZW5ndGg7Zi5zZXRVaW50MzIoYyxlKTthc3NlcnQoYys0K2U8PW8uYnl0ZUxlbmd0aCwiRm9udEluZm8ud3JpdGU6IEJ1ZmZlciBvdmVyZmxvdyBhdCBjc3NGb250SW5mbyIpO2wuc2V0KG5ldyBVaW50OEFycmF5KG4pLGMrNCk7Yys9NCtlfWVsc2V7Zi5zZXRVaW50MzIoYywwKTtjKz00fWlmKHZvaWQgMD09PWUuZGF0YSl7Zi5zZXRVaW50MzIoYywwKTtjKz00fWVsc2V7Zi5zZXRVaW50MzIoYyxlLmRhdGEubGVuZ3RoKTtsLnNldChlLmRhdGEsYys0KTtjKz00K2UuZGF0YS5sZW5ndGh9YXNzZXJ0KGM8PW8uYnl0ZUxlbmd0aCwiRm9udEluZm8ud3JpdGU6IEJ1ZmZlciBvdmVyZmxvdyIpO3JldHVybiBvLnRyYW5zZmVyVG9GaXhlZExlbmd0aChjKX19Y2xhc3MgUGF0dGVybkluZm97c3RhdGljI2VlPTA7c3RhdGljI3RlPTE7c3RhdGljI25lPTI7c3RhdGljI2FlPTM7c3RhdGljI3NlPTQ7c3RhdGljI3JlPTg7c3RhdGljI2llPTEyO3N0YXRpYyNvZT0xNjtjb25zdHJ1Y3RvcihlKXt0aGlzLmJ1ZmZlcj1lO3RoaXMudmlldz1uZXcgRGF0YVZpZXcoZSk7dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KGUpfXN0YXRpYyB3cml0ZShlKXtsZXQgdCxuPW51bGwsYT1bXSxzPVtdLHI9W10saT1bXSxvPW51bGwsbD1udWxsO3N3aXRjaChlWzBdKXtjYXNlIlJhZGlhbEF4aWFsIjp0PSJheGlhbCI9PT1lWzFdPzE6MjtuPWVbMl07cj1lWzNdOzE9PT10P2EucHVzaCguLi5lWzRdLC4uLmVbNV0pOmEucHVzaChlWzRdWzBdLGVbNF1bMV0sZVs2XSxlWzVdWzBdLGVbNV1bMV0sZVs3XSk7YnJlYWs7Y2FzZSJNZXNoIjp0PTM7bz1lWzFdO2E9ZVsyXTtzPWVbM107aT1lWzRdfHxbXTtuPWVbNl07bD1lWzddO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBwYXR0ZXJuIHR5cGU6ICR7ZVswXX1gKX1jb25zdCBmPU1hdGguZmxvb3IoYS5sZW5ndGgvMiksYz1NYXRoLmZsb29yKHMubGVuZ3RoLzMpLGg9ci5sZW5ndGgsdT1pLmxlbmd0aDtsZXQgbT0wO2Zvcihjb25zdCBlIG9mIGkpe20rPTE7bT00Kk1hdGguY2VpbChtLzQpO20rPTQrNCplLmNvb3Jkcy5sZW5ndGg7bSs9NCs0KmUuY29sb3JzLmxlbmd0aDt2b2lkIDAhPT1lLnZlcnRpY2VzUGVyUm93JiYobSs9NCl9Y29uc3QgcD1uZXcgQXJyYXlCdWZmZXIoMjArOCpmKzMqYys4KmgrKG4/MTY6MCkrKGw/MzowKSttKSxkPW5ldyBEYXRhVmlldyhwKSxnPW5ldyBVaW50OEFycmF5KHApO2Quc2V0VWludDgoUGF0dGVybkluZm8uI2VlLHQpO2Quc2V0VWludDgoUGF0dGVybkluZm8uI3RlLG4/MTowKTtkLnNldFVpbnQ4KFBhdHRlcm5JbmZvLiNuZSxsPzE6MCk7ZC5zZXRVaW50OChQYXR0ZXJuSW5mby4jYWUsbyk7ZC5zZXRVaW50MzIoUGF0dGVybkluZm8uI3NlLGYsITApO2Quc2V0VWludDMyKFBhdHRlcm5JbmZvLiNyZSxjLCEwKTtkLnNldFVpbnQzMihQYXR0ZXJuSW5mby4jaWUsaCwhMCk7ZC5zZXRVaW50MzIoUGF0dGVybkluZm8uI29lLHUsITApO2xldCBiPTIwO25ldyBGbG9hdDMyQXJyYXkocCxiLDIqZikuc2V0KGEpO2IrPTgqZjtnLnNldChzLGIpO2IrPTMqYztmb3IoY29uc3RbZSx0XW9mIHIpe2Quc2V0RmxvYXQzMihiLGUsITApO2IrPTQ7ZC5zZXRVaW50MzIoYixwYXJzZUludCh0LnNsaWNlKDEpLDE2KSwhMCk7Yis9NH1pZihuKWZvcihjb25zdCBlIG9mIG4pe2Quc2V0RmxvYXQzMihiLGUsITApO2IrPTR9aWYobCl7Zy5zZXQobCxiKTtiKz0zfWZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXtjb25zdCB0PWlbZV07ZC5zZXRVaW50OChiLHQudHlwZSk7Yis9MTtiPTQqTWF0aC5jZWlsKGIvNCk7ZC5zZXRVaW50MzIoYix0LmNvb3Jkcy5sZW5ndGgsITApO2IrPTQ7bmV3IEludDMyQXJyYXkocCxiLHQuY29vcmRzLmxlbmd0aCkuc2V0KHQuY29vcmRzKTtiKz00KnQuY29vcmRzLmxlbmd0aDtkLnNldFVpbnQzMihiLHQuY29sb3JzLmxlbmd0aCwhMCk7Yis9NDtuZXcgSW50MzJBcnJheShwLGIsdC5jb2xvcnMubGVuZ3RoKS5zZXQodC5jb2xvcnMpO2IrPTQqdC5jb2xvcnMubGVuZ3RoO2lmKHZvaWQgMCE9PXQudmVydGljZXNQZXJSb3cpe2Quc2V0VWludDMyKGIsdC52ZXJ0aWNlc1BlclJvdywhMCk7Yis9NH19cmV0dXJuIHB9Z2V0SVIoKXtjb25zdCBlPXRoaXMudmlldyx0PXRoaXMuZGF0YVtQYXR0ZXJuSW5mby4jZWVdLG49ISF0aGlzLmRhdGFbUGF0dGVybkluZm8uI3RlXSxhPSEhdGhpcy5kYXRhW1BhdHRlcm5JbmZvLiNuZV0scz1lLmdldFVpbnQzMihQYXR0ZXJuSW5mby4jc2UsITApLHI9ZS5nZXRVaW50MzIoUGF0dGVybkluZm8uI3JlLCEwKSxpPWUuZ2V0VWludDMyKFBhdHRlcm5JbmZvLiNpZSwhMCksbz1lLmdldFVpbnQzMihQYXR0ZXJuSW5mby4jb2UsITApO2xldCBsPTIwO2NvbnN0IGY9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmJ1ZmZlcixsLDIqcyk7bCs9OCpzO2NvbnN0IGM9bmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsbCwzKnIpO2wrPTMqcjtjb25zdCBoPVtdO2ZvcihsZXQgdD0wO3Q8aTsrK3Qpe2NvbnN0IHQ9ZS5nZXRGbG9hdDMyKGwsITApO2wrPTQ7Y29uc3Qgbj1lLmdldFVpbnQzMihsLCEwKTtsKz00O2gucHVzaChbdCxgIyR7bi50b1N0cmluZygxNikucGFkU3RhcnQoNiwiMCIpfWBdKX1sZXQgdT1udWxsO2lmKG4pe3U9W107Zm9yKGxldCB0PTA7dDw0OysrdCl7dS5wdXNoKGUuZ2V0RmxvYXQzMihsLCEwKSk7bCs9NH19bGV0IG09bnVsbDtpZihhKXttPW5ldyBVaW50OEFycmF5KHRoaXMuYnVmZmVyLGwsMyk7bCs9M31jb25zdCBwPVtdO2ZvcihsZXQgdD0wO3Q8bzsrK3Qpe2NvbnN0IHQ9ZS5nZXRVaW50OChsKTtsKz0xO2w9NCpNYXRoLmNlaWwobC80KTtjb25zdCBuPWUuZ2V0VWludDMyKGwsITApO2wrPTQ7Y29uc3QgYT1uZXcgSW50MzJBcnJheSh0aGlzLmJ1ZmZlcixsLG4pO2wrPTQqbjtjb25zdCBzPWUuZ2V0VWludDMyKGwsITApO2wrPTQ7Y29uc3Qgcj1uZXcgSW50MzJBcnJheSh0aGlzLmJ1ZmZlcixsLHMpO2wrPTQqcztjb25zdCBpPXt0eXBlOnQsY29vcmRzOmEsY29sb3JzOnJ9O2lmKHQ9PT15KXtpLnZlcnRpY2VzUGVyUm93PWUuZ2V0VWludDMyKGwsITApO2wrPTR9cC5wdXNoKGkpfWlmKDE9PT10KXJldHVyblsiUmFkaWFsQXhpYWwiLCJheGlhbCIsdSxoLEFycmF5LmZyb20oZi5zbGljZSgwLDIpKSxBcnJheS5mcm9tKGYuc2xpY2UoMiw0KSksbnVsbCxudWxsXTtpZigyPT09dClyZXR1cm5bIlJhZGlhbEF4aWFsIiwicmFkaWFsIix1LGgsW2ZbMF0sZlsxXV0sW2ZbM10sZls0XV0sZlsyXSxmWzVdXTtpZigzPT09dCl7Y29uc3QgZT10aGlzLmRhdGFbUGF0dGVybkluZm8uI2FlXTtsZXQgdD1udWxsO2lmKGYubGVuZ3RoPjApe2xldCBlPWZbMF0sbj1mWzBdLGE9ZlsxXSxzPWZbMV07Zm9yKGxldCB0PTA7dDxmLmxlbmd0aDt0Kz0yKXtjb25zdCByPWZbdF0saT1mW3QrMV07ZT1lPnI/cjplO2E9YT5pP2k6YTtuPW48cj9yOm47cz1zPGk/aTpzfXQ9W2UsYSxuLHNdfXJldHVyblsiTWVzaCIsZSxmLGMscCx0LHUsbV19dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBwYXR0ZXJuIGtpbmQ6ICR7dH1gKX19Y2xhc3MgRm9udFBhdGhJbmZve3N0YXRpYyB3cml0ZShlKXtsZXQgdCxuO2lmKEZlYXR1cmVUZXN0LmlzRmxvYXQxNkFycmF5U3VwcG9ydGVkKXtuPW5ldyBBcnJheUJ1ZmZlcigyKmUubGVuZ3RoKTt0PW5ldyBGbG9hdDE2QXJyYXkobil9ZWxzZXtuPW5ldyBBcnJheUJ1ZmZlcig0KmUubGVuZ3RoKTt0PW5ldyBGbG9hdDMyQXJyYXkobil9dC5zZXQoZSk7cmV0dXJuIG59I087Y29uc3RydWN0b3IoZSl7dGhpcy4jTz1lfWdldCBwYXRoKCl7cmV0dXJuIEZlYXR1cmVUZXN0LmlzRmxvYXQxNkFycmF5U3VwcG9ydGVkP25ldyBGbG9hdDE2QXJyYXkodGhpcy4jTyk6bmV3IEZsb2F0MzJBcnJheSh0aGlzLiNPKX19Y29uc3QgY3M9Mixocz0zLHVzPTQsbXM9NSxwcz02LGRzPTc7Y2xhc3MgUGF0dGVybntjb25zdHJ1Y3Rvcigpe3VucmVhY2hhYmxlKCJDYW5ub3QgaW5pdGlhbGl6ZSBQYXR0ZXJuLiIpfXN0YXRpYyBwYXJzZVNoYWRpbmcoZSx0LG4sYSxzLHIpe2NvbnN0IGk9ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/ZS5kaWN0OmUsbz1pLmdldCgiU2hhZGluZ1R5cGUiKTt0cnl7c3dpdGNoKG8pe2Nhc2UgY3M6Y2FzZSBoczpyZXR1cm4gbmV3IFJhZGlhbEF4aWFsU2hhZGluZyhpLHQsbixhLHMscik7Y2FzZSB1czpjYXNlIG1zOmNhc2UgcHM6Y2FzZSBkczpyZXR1cm4gbmV3IE1lc2hTaGFkaW5nKGUsdCxuLGEscyxyKTtkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcigiVW5zdXBwb3J0ZWQgU2hhZGluZ1R5cGU6ICIrbyl9fWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oZSk7cmV0dXJuIG5ldyBEdW1teVNoYWRpbmd9fX1jbGFzcyBCYXNlU2hhZGluZ3tzdGF0aWMgU01BTExfTlVNQkVSPTFlLTY7Z2V0SVIoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRJUmAgY2FsbGVkLiIpfX1jbGFzcyBSYWRpYWxBeGlhbFNoYWRpbmcgZXh0ZW5kcyBCYXNlU2hhZGluZ3tjb25zdHJ1Y3RvcihlLHQsbixhLHMscil7c3VwZXIoKTt0aGlzLnNoYWRpbmdUeXBlPWUuZ2V0KCJTaGFkaW5nVHlwZSIpO2xldCBpPTA7dGhpcy5zaGFkaW5nVHlwZT09PWNzP2k9NDp0aGlzLnNoYWRpbmdUeXBlPT09aHMmJihpPTYpO3RoaXMuY29vcmRzQXJyPWUuZ2V0QXJyYXkoIkNvb3JkcyIpO2lmKCFpc051bWJlckFycmF5KHRoaXMuY29vcmRzQXJyLGkpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiUmFkaWFsQXhpYWxTaGFkaW5nOiBJbnZhbGlkIC9Db29yZHMgYXJyYXkuIik7Y29uc3Qgbz1Db2xvclNwYWNlVXRpbHMucGFyc2Uoe2NzOmUuZ2V0UmF3KCJDUyIpfHxlLmdldFJhdygiQ29sb3JTcGFjZSIpLHhyZWY6dCxyZXNvdXJjZXM6bixwZGZGdW5jdGlvbkZhY3Rvcnk6YSxnbG9iYWxDb2xvclNwYWNlQ2FjaGU6cyxsb2NhbENvbG9yU3BhY2VDYWNoZTpyfSk7dGhpcy5iYm94PWxvb2t1cE5vcm1hbFJlY3QoZS5nZXRBcnJheSgiQkJveCIpLG51bGwpO2xldCBsPTAsZj0xO2NvbnN0IGM9ZS5nZXRBcnJheSgiRG9tYWluIik7aXNOdW1iZXJBcnJheShjLDIpJiYoW2wsZl09Yyk7bGV0IGg9ITEsdT0hMTtjb25zdCBtPWUuZ2V0QXJyYXkoIkV4dGVuZCIpOyhmdW5jdGlvbiBpc0Jvb2xlYW5BcnJheShlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpJiYobnVsbD09PXR8fGUubGVuZ3RoPT09dCkmJmUuZXZlcnkoZT0+ImJvb2xlYW4iPT10eXBlb2YgZSl9KShtLDIpJiYoW2gsdV09bSk7aWYoISh0aGlzLnNoYWRpbmdUeXBlIT09aHN8fGgmJnUpKXtjb25zdFtlLHQsbixhLHMscl09dGhpcy5jb29yZHNBcnIsaT1NYXRoLmh5cG90KGUtYSx0LXMpO248PXIraSYmcjw9bitpJiZ3YXJuKCJVbnN1cHBvcnRlZCByYWRpYWwgZ3JhZGllbnQuIil9dGhpcy5leHRlbmRTdGFydD1oO3RoaXMuZXh0ZW5kRW5kPXU7Y29uc3QgcD1lLmdldFJhdygiRnVuY3Rpb24iKSxkPWEuY3JlYXRlKHAsITApLGc9KGYtbCkvODQwLGI9dGhpcy5jb2xvclN0b3BzPVtdO2lmKGw+PWZ8fGc8PTApe2luZm8oIkJhZCBzaGFkaW5nIGRvbWFpbi4iKTtyZXR1cm59Y29uc3Qgdz1uZXcgRmxvYXQzMkFycmF5KG8ubnVtQ29tcHMpLGo9bmV3IEZsb2F0MzJBcnJheSgxKTtsZXQgaz0wO2pbMF09bDtkKGosMCx3LDApO2NvbnN0IHk9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpO28uZ2V0UmdiKHcsMCx5KTtsZXRbcSx2LFNdPXk7Yi5wdXNoKFswLFV0aWwubWFrZUhleENvbG9yKHEsdixTKV0pO2xldCB4PTE7alswXT1sK2c7ZChqLDAsdywwKTtvLmdldFJnYih3LDAseSk7bGV0W0MsRixUXT15LEg9Qy1xKzEsTz1GLXYrMSxSPVQtUysxLEQ9Qy1xLTEsTT1GLXYtMSxFPVQtUy0xO2ZvcihsZXQgZT0yO2U8ODQwO2UrKyl7alswXT1sK2UqZztkKGosMCx3LDApO28uZ2V0UmdiKHcsMCx5KTtjb25zdFt0LG4sYV09eSxzPWUtaztIPU1hdGgubWluKEgsKHQtcSsxKS9zKTtPPU1hdGgubWluKE8sKG4tdisxKS9zKTtSPU1hdGgubWluKFIsKGEtUysxKS9zKTtEPU1hdGgubWF4KEQsKHQtcS0xKS9zKTtNPU1hdGgubWF4KE0sKG4tdi0xKS9zKTtFPU1hdGgubWF4KEUsKGEtUy0xKS9zKTtpZighKEQ8PUgmJk08PU8mJkU8PVIpKXtjb25zdCBlPVV0aWwubWFrZUhleENvbG9yKEMsRixUKTtiLnB1c2goW3gvODQwLGVdKTtIPXQtQysxO089bi1GKzE7Uj1hLVQrMTtEPXQtQy0xO009bi1GLTE7RT1hLVQtMTtrPXg7cT1DO3Y9RjtTPVR9eD1lO0M9dDtGPW47VD1hfWIucHVzaChbMSxVdGlsLm1ha2VIZXhDb2xvcihDLEYsVCldKTtsZXQgTj0idHJhbnNwYXJlbnQiO2UuaGFzKCJCYWNrZ3JvdW5kIikmJihOPW8uZ2V0UmdiSGV4KGUuZ2V0KCJCYWNrZ3JvdW5kIiksMCkpO2lmKCFoKXtiLnVuc2hpZnQoWzAsTl0pO2JbMV1bMF0rPUJhc2VTaGFkaW5nLlNNQUxMX05VTUJFUn1pZighdSl7Yi5hdCgtMSlbMF0tPUJhc2VTaGFkaW5nLlNNQUxMX05VTUJFUjtiLnB1c2goWzEsTl0pfXRoaXMuY29sb3JTdG9wcz1ifWdldElSKCl7Y29uc3R7Y29vcmRzQXJyOmUsc2hhZGluZ1R5cGU6dH09dGhpcztsZXQgbixhLHMscixpO2lmKHQ9PT1jcyl7YT1bZVswXSxlWzFdXTtzPVtlWzJdLGVbM11dO3I9bnVsbDtpPW51bGw7bj0iYXhpYWwifWVsc2UgaWYodD09PWhzKXthPVtlWzBdLGVbMV1dO3M9W2VbM10sZVs0XV07cj1lWzJdO2k9ZVs1XTtuPSJyYWRpYWwifWVsc2UgdW5yZWFjaGFibGUoYGdldFBhdHRlcm4gdHlwZSB1bmtub3duOiAke3R9YCk7cmV0dXJuWyJSYWRpYWxBeGlhbCIsbix0aGlzLmJib3gsdGhpcy5jb2xvclN0b3BzLGEscyxyLGldfX1jbGFzcyBNZXNoU3RyZWFtUmVhZGVye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdHJlYW09ZTt0aGlzLmNvbnRleHQ9dDt0aGlzLmJ1ZmZlcj0wO3RoaXMuYnVmZmVyTGVuZ3RoPTA7Y29uc3Qgbj10Lm51bUNvbXBzO3RoaXMudG1wQ29tcHNCdWY9bmV3IEZsb2F0MzJBcnJheShuKTtjb25zdCBhPXQuY29sb3JTcGFjZS5udW1Db21wczt0aGlzLnRtcENzQ29tcHNCdWY9dC5jb2xvckZuP25ldyBGbG9hdDMyQXJyYXkoYSk6dGhpcy50bXBDb21wc0J1Zn1nZXQgaGFzRGF0YSgpe2lmKHRoaXMuc3RyZWFtLmVuZClyZXR1cm4gdGhpcy5zdHJlYW0ucG9zPHRoaXMuc3RyZWFtLmVuZDtpZih0aGlzLmJ1ZmZlckxlbmd0aD4wKXJldHVybiEwO2NvbnN0IGU9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO2lmKGU8MClyZXR1cm4hMTt0aGlzLmJ1ZmZlcj1lO3RoaXMuYnVmZmVyTGVuZ3RoPTg7cmV0dXJuITB9cmVhZEJpdHMoZSl7Y29uc3R7c3RyZWFtOnR9PXRoaXM7bGV0e2J1ZmZlcjpuLGJ1ZmZlckxlbmd0aDphfT10aGlzO2lmKDMyPT09ZSl7aWYoMD09PWEpcmV0dXJuIHQuZ2V0SW50MzIoKT4+PjA7bj1uPDwyNHx0LmdldEJ5dGUoKTw8MTZ8dC5nZXRCeXRlKCk8PDh8dC5nZXRCeXRlKCk7Y29uc3QgZT10LmdldEJ5dGUoKTt0aGlzLmJ1ZmZlcj1lJigxPDxhKS0xO3JldHVybihuPDw4LWF8KDI1NSZlKT4+YSk+Pj4wfWlmKDg9PT1lJiYwPT09YSlyZXR1cm4gdC5nZXRCeXRlKCk7Zm9yKDthPGU7KXtuPW48PDh8dC5nZXRCeXRlKCk7YSs9OH1hLT1lO3RoaXMuYnVmZmVyTGVuZ3RoPWE7dGhpcy5idWZmZXI9biYoMTw8YSktMTtyZXR1cm4gbj4+YX1hbGlnbigpe3RoaXMuYnVmZmVyPTA7dGhpcy5idWZmZXJMZW5ndGg9MH1yZWFkRmxhZygpe3JldHVybiB0aGlzLnJlYWRCaXRzKHRoaXMuY29udGV4dC5iaXRzUGVyRmxhZyl9cmVhZENvb3JkaW5hdGUoKXtjb25zdHtiaXRzUGVyQ29vcmRpbmF0ZTplLGRlY29kZTp0fT10aGlzLmNvbnRleHQsbj10aGlzLnJlYWRCaXRzKGUpLGE9dGhpcy5yZWFkQml0cyhlKSxzPWU8MzI/MS8oKDE8PGUpLTEpOjIuMzI4MzA2NDM2NTM4Njk2M2UtMTA7cmV0dXJuW24qcyoodFsxXS10WzBdKSt0WzBdLGEqcyoodFszXS10WzJdKSt0WzJdXX1yZWFkQ29tcG9uZW50cygpe2NvbnN0e2JpdHNQZXJDb21wb25lbnQ6ZSxjb2xvckZuOnQsY29sb3JTcGFjZTpuLGRlY29kZTphLG51bUNvbXBzOnN9PXRoaXMuY29udGV4dCxyPWU8MzI/MS8oKDE8PGUpLTEpOjIuMzI4MzA2NDM2NTM4Njk2M2UtMTAsaT10aGlzLnRtcENvbXBzQnVmO2ZvcihsZXQgdD0wLG49NDt0PHM7dCsrLG4rPTIpe2NvbnN0IHM9dGhpcy5yZWFkQml0cyhlKTtpW3RdPXMqciooYVtuKzFdLWFbbl0pK2Fbbl19Y29uc3Qgbz10aGlzLnRtcENzQ29tcHNCdWY7dD8uKGksMCxvLDApO3JldHVybiBuLmdldFJnYihvLDApfX1sZXQgZ3M9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBnZXRCKGUpe3JldHVybiBnc1tlXXx8PWZ1bmN0aW9uIGJ1aWxkQihlKXtjb25zdCB0PVtdO2ZvcihsZXQgbj0wO248PWU7bisrKXtjb25zdCBhPW4vZSxzPTEtYTt0LnB1c2gobmV3IEZsb2F0MzJBcnJheShbcyoqMywzKmEqcyoqMiwzKmEqKjIqcyxhKiozXSkpfXJldHVybiB0fShlKX1jbGFzcyBNZXNoU2hhZGluZyBleHRlbmRzIEJhc2VTaGFkaW5ne3N0YXRpYyBNSU5fU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVD0zO3N0YXRpYyBNQVhfU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVD0yMDtzdGF0aWMgVFJJQU5HTEVfREVOU0lUWT0yMDtjb25zdHJ1Y3RvcihlLHQsbixhLHMscil7c3VwZXIoKTtpZighKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk1lc2ggZGF0YSBpcyBub3QgYSBzdHJlYW0iKTtjb25zdCBpPWUuZGljdDt0aGlzLnNoYWRpbmdUeXBlPWkuZ2V0KCJTaGFkaW5nVHlwZSIpO3RoaXMuYmJveD1sb29rdXBOb3JtYWxSZWN0KGkuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtjb25zdCBvPUNvbG9yU3BhY2VVdGlscy5wYXJzZSh7Y3M6aS5nZXRSYXcoIkNTIil8fGkuZ2V0UmF3KCJDb2xvclNwYWNlIikseHJlZjp0LHJlc291cmNlczpuLHBkZkZ1bmN0aW9uRmFjdG9yeTphLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpzLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnJ9KTt0aGlzLmJhY2tncm91bmQ9aS5oYXMoIkJhY2tncm91bmQiKT9vLmdldFJnYihpLmdldCgiQmFja2dyb3VuZCIpLDApOm51bGw7Y29uc3QgbD1pLmdldFJhdygiRnVuY3Rpb24iKSxmPWw/YS5jcmVhdGUobCwhMCk6bnVsbDt0aGlzLmNvb3Jkcz1bXTt0aGlzLmNvbG9ycz1bXTt0aGlzLmZpZ3VyZXM9W107Y29uc3QgYz17Yml0c1BlckNvb3JkaW5hdGU6aS5nZXQoIkJpdHNQZXJDb29yZGluYXRlIiksYml0c1BlckNvbXBvbmVudDppLmdldCgiQml0c1BlckNvbXBvbmVudCIpLGJpdHNQZXJGbGFnOmkuZ2V0KCJCaXRzUGVyRmxhZyIpLGRlY29kZTppLmdldEFycmF5KCJEZWNvZGUiKSxjb2xvckZuOmYsY29sb3JTcGFjZTpvLG51bUNvbXBzOmY/MTpvLm51bUNvbXBzfSxoPW5ldyBNZXNoU3RyZWFtUmVhZGVyKGUsYyk7bGV0IHU9ITE7c3dpdGNoKHRoaXMuc2hhZGluZ1R5cGUpe2Nhc2UgdXM6dGhpcy5fZGVjb2RlVHlwZTRTaGFkaW5nKGgpO2JyZWFrO2Nhc2UgbXM6Y29uc3QgZT0wfGkuZ2V0KCJWZXJ0aWNlc1BlclJvdyIpO2lmKGU8Mil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgVmVydGljZXNQZXJSb3ciKTt0aGlzLl9kZWNvZGVUeXBlNVNoYWRpbmcoaCxlKTticmVhaztjYXNlIHBzOnRoaXMuX2RlY29kZVR5cGU2U2hhZGluZyhoKTt1PSEwO2JyZWFrO2Nhc2UgZHM6dGhpcy5fZGVjb2RlVHlwZTdTaGFkaW5nKGgpO3U9ITA7YnJlYWs7ZGVmYXVsdDp1bnJlYWNoYWJsZSgiVW5zdXBwb3J0ZWQgbWVzaCB0eXBlLiIpfWlmKHUpe3RoaXMuX3VwZGF0ZUJvdW5kcygpO2ZvcihsZXQgZT0wLHQ9dGhpcy5maWd1cmVzLmxlbmd0aDtlPHQ7ZSsrKXRoaXMuX2J1aWxkRmlndXJlRnJvbVBhdGNoKGUpfXRoaXMuX3VwZGF0ZUJvdW5kcygpO3RoaXMuX3BhY2tEYXRhKCl9X2RlY29kZVR5cGU0U2hhZGluZyhlKXtjb25zdCB0PXRoaXMuY29vcmRzLG49dGhpcy5jb2xvcnMsYT1bXSxzPVtdO2xldCByPTA7Zm9yKDtlLmhhc0RhdGE7KXtjb25zdCBpPWUucmVhZEZsYWcoKSxvPWUucmVhZENvb3JkaW5hdGUoKSxsPWUucmVhZENvbXBvbmVudHMoKTtpZigwPT09cil7aWYoISgwPD1pJiZpPD0yKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gdHlwZTQgZmxhZyIpO3N3aXRjaChpKXtjYXNlIDA6cj0zO2JyZWFrO2Nhc2UgMTpzLnB1c2gocy5hdCgtMikscy5hdCgtMSkpO3I9MTticmVhaztjYXNlIDI6cy5wdXNoKHMuYXQoLTMpLHMuYXQoLTEpKTtyPTF9YS5wdXNoKGkpfXMucHVzaCh0Lmxlbmd0aCk7dC5wdXNoKG8pO24ucHVzaChsKTtyLS07ZS5hbGlnbigpfXRoaXMuZmlndXJlcy5wdXNoKHt0eXBlOmssY29vcmRzOm5ldyBJbnQzMkFycmF5KHMpLGNvbG9yczpuZXcgSW50MzJBcnJheShzKX0pfV9kZWNvZGVUeXBlNVNoYWRpbmcoZSx0KXtjb25zdCBuPXRoaXMuY29vcmRzLGE9dGhpcy5jb2xvcnMscz1bXTtmb3IoO2UuaGFzRGF0YTspe2NvbnN0IHQ9ZS5yZWFkQ29vcmRpbmF0ZSgpLHI9ZS5yZWFkQ29tcG9uZW50cygpO3MucHVzaChuLmxlbmd0aCk7bi5wdXNoKHQpO2EucHVzaChyKX10aGlzLmZpZ3VyZXMucHVzaCh7dHlwZTp5LGNvb3JkczpuZXcgSW50MzJBcnJheShzKSxjb2xvcnM6bmV3IEludDMyQXJyYXkocyksdmVydGljZXNQZXJSb3c6dH0pfV9kZWNvZGVUeXBlNlNoYWRpbmcoZSl7Y29uc3QgdD10aGlzLmNvb3JkcyxuPXRoaXMuY29sb3JzLGE9bmV3IEludDMyQXJyYXkoMTYpLHM9bmV3IEludDMyQXJyYXkoNCk7Zm9yKDtlLmhhc0RhdGE7KXtjb25zdCByPWUucmVhZEZsYWcoKTtpZighKDA8PXImJnI8PTMpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiVW5rbm93biB0eXBlNiBmbGFnIik7Y29uc3QgaT10Lmxlbmd0aDtmb3IobGV0IG49MCxhPTAhPT1yPzg6MTI7bjxhO24rKyl0LnB1c2goZS5yZWFkQ29vcmRpbmF0ZSgpKTtjb25zdCBvPW4ubGVuZ3RoO2ZvcihsZXQgdD0wLGE9MCE9PXI/Mjo0O3Q8YTt0Kyspbi5wdXNoKGUucmVhZENvbXBvbmVudHMoKSk7bGV0IGwsZixjLGg7c3dpdGNoKHIpe2Nhc2UgMDphWzEyXT1pKzM7YVsxM109aSs0O2FbMTRdPWkrNTthWzE1XT1pKzY7YVs4XT1pKzI7YVsxMV09aSs3O2FbNF09aSsxO2FbN109aSs4O2FbMF09aTthWzFdPWkrMTE7YVsyXT1pKzEwO2FbM109aSs5O3NbMl09bysxO3NbM109bysyO3NbMF09bztzWzFdPW8rMzticmVhaztjYXNlIDE6bD1hWzEyXTtmPWFbMTNdO2M9YVsxNF07aD1hWzE1XTthWzEyXT1oO2FbMTNdPWkrMDthWzE0XT1pKzE7YVsxNV09aSsyO2FbOF09YzthWzExXT1pKzM7YVs0XT1mO2FbN109aSs0O2FbMF09bDthWzFdPWkrNzthWzJdPWkrNjthWzNdPWkrNTtsPXNbMl07Zj1zWzNdO3NbMl09ZjtzWzNdPW87c1swXT1sO3NbMV09bysxO2JyZWFrO2Nhc2UgMjpsPWFbMTVdO2Y9YVsxMV07YVsxMl09YVszXTthWzEzXT1pKzA7YVsxNF09aSsxO2FbMTVdPWkrMjthWzhdPWFbN107YVsxMV09aSszO2FbNF09ZjthWzddPWkrNDthWzBdPWw7YVsxXT1pKzc7YVsyXT1pKzY7YVszXT1pKzU7bD1zWzNdO3NbMl09c1sxXTtzWzNdPW87c1swXT1sO3NbMV09bysxO2JyZWFrO2Nhc2UgMzphWzEyXT1hWzBdO2FbMTNdPWkrMDthWzE0XT1pKzE7YVsxNV09aSsyO2FbOF09YVsxXTthWzExXT1pKzM7YVs0XT1hWzJdO2FbN109aSs0O2FbMF09YVszXTthWzFdPWkrNzthWzJdPWkrNjthWzNdPWkrNTtzWzJdPXNbMF07c1szXT1vO3NbMF09c1sxXTtzWzFdPW8rMX1hWzVdPXQubGVuZ3RoO3QucHVzaChbKC00KnRbYVswXV1bMF0tdFthWzE1XV1bMF0rNioodFthWzRdXVswXSt0W2FbMV1dWzBdKS0yKih0W2FbMTJdXVswXSt0W2FbM11dWzBdKSszKih0W2FbMTNdXVswXSt0W2FbN11dWzBdKSkvOSwoLTQqdFthWzBdXVsxXS10W2FbMTVdXVsxXSs2Kih0W2FbNF1dWzFdK3RbYVsxXV1bMV0pLTIqKHRbYVsxMl1dWzFdK3RbYVszXV1bMV0pKzMqKHRbYVsxM11dWzFdK3RbYVs3XV1bMV0pKS85XSk7YVs2XT10Lmxlbmd0aDt0LnB1c2goWygtNCp0W2FbM11dWzBdLXRbYVsxMl1dWzBdKzYqKHRbYVsyXV1bMF0rdFthWzddXVswXSktMioodFthWzBdXVswXSt0W2FbMTVdXVswXSkrMyoodFthWzRdXVswXSt0W2FbMTRdXVswXSkpLzksKC00KnRbYVszXV1bMV0tdFthWzEyXV1bMV0rNioodFthWzJdXVsxXSt0W2FbN11dWzFdKS0yKih0W2FbMF1dWzFdK3RbYVsxNV1dWzFdKSszKih0W2FbNF1dWzFdK3RbYVsxNF1dWzFdKSkvOV0pO2FbOV09dC5sZW5ndGg7dC5wdXNoKFsoLTQqdFthWzEyXV1bMF0tdFthWzNdXVswXSs2Kih0W2FbOF1dWzBdK3RbYVsxM11dWzBdKS0yKih0W2FbMF1dWzBdK3RbYVsxNV1dWzBdKSszKih0W2FbMTFdXVswXSt0W2FbMV1dWzBdKSkvOSwoLTQqdFthWzEyXV1bMV0tdFthWzNdXVsxXSs2Kih0W2FbOF1dWzFdK3RbYVsxM11dWzFdKS0yKih0W2FbMF1dWzFdK3RbYVsxNV1dWzFdKSszKih0W2FbMTFdXVsxXSt0W2FbMV1dWzFdKSkvOV0pO2FbMTBdPXQubGVuZ3RoO3QucHVzaChbKC00KnRbYVsxNV1dWzBdLXRbYVswXV1bMF0rNioodFthWzExXV1bMF0rdFthWzE0XV1bMF0pLTIqKHRbYVsxMl1dWzBdK3RbYVszXV1bMF0pKzMqKHRbYVsyXV1bMF0rdFthWzhdXVswXSkpLzksKC00KnRbYVsxNV1dWzFdLXRbYVswXV1bMV0rNioodFthWzExXV1bMV0rdFthWzE0XV1bMV0pLTIqKHRbYVsxMl1dWzFdK3RbYVszXV1bMV0pKzMqKHRbYVsyXV1bMV0rdFthWzhdXVsxXSkpLzldKTt0aGlzLmZpZ3VyZXMucHVzaCh7dHlwZTpxLGNvb3JkczpuZXcgSW50MzJBcnJheShhKSxjb2xvcnM6bmV3IEludDMyQXJyYXkocyl9KX19X2RlY29kZVR5cGU3U2hhZGluZyhlKXtjb25zdCB0PXRoaXMuY29vcmRzLG49dGhpcy5jb2xvcnMsYT1uZXcgSW50MzJBcnJheSgxNikscz1uZXcgSW50MzJBcnJheSg0KTtmb3IoO2UuaGFzRGF0YTspe2NvbnN0IHI9ZS5yZWFkRmxhZygpO2lmKCEoMDw9ciYmcjw9MykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJVbmtub3duIHR5cGU3IGZsYWciKTtjb25zdCBpPXQubGVuZ3RoO2ZvcihsZXQgbj0wLGE9MCE9PXI/MTI6MTY7bjxhO24rKyl0LnB1c2goZS5yZWFkQ29vcmRpbmF0ZSgpKTtjb25zdCBvPW4ubGVuZ3RoO2ZvcihsZXQgdD0wLGE9MCE9PXI/Mjo0O3Q8YTt0Kyspbi5wdXNoKGUucmVhZENvbXBvbmVudHMoKSk7bGV0IGwsZixjLGg7c3dpdGNoKHIpe2Nhc2UgMDphWzEyXT1pKzM7YVsxM109aSs0O2FbMTRdPWkrNTthWzE1XT1pKzY7YVs4XT1pKzI7YVs5XT1pKzEzO2FbMTBdPWkrMTQ7YVsxMV09aSs3O2FbNF09aSsxO2FbNV09aSsxMjthWzZdPWkrMTU7YVs3XT1pKzg7YVswXT1pO2FbMV09aSsxMTthWzJdPWkrMTA7YVszXT1pKzk7c1syXT1vKzE7c1szXT1vKzI7c1swXT1vO3NbMV09byszO2JyZWFrO2Nhc2UgMTpsPWFbMTJdO2Y9YVsxM107Yz1hWzE0XTtoPWFbMTVdO2FbMTJdPWg7YVsxM109aSswO2FbMTRdPWkrMTthWzE1XT1pKzI7YVs4XT1jO2FbOV09aSs5O2FbMTBdPWkrMTA7YVsxMV09aSszO2FbNF09ZjthWzVdPWkrODthWzZdPWkrMTE7YVs3XT1pKzQ7YVswXT1sO2FbMV09aSs3O2FbMl09aSs2O2FbM109aSs1O2w9c1syXTtmPXNbM107c1syXT1mO3NbM109bztzWzBdPWw7c1sxXT1vKzE7YnJlYWs7Y2FzZSAyOmw9YVsxNV07Zj1hWzExXTthWzEyXT1hWzNdO2FbMTNdPWkrMDthWzE0XT1pKzE7YVsxNV09aSsyO2FbOF09YVs3XTthWzldPWkrOTthWzEwXT1pKzEwO2FbMTFdPWkrMzthWzRdPWY7YVs1XT1pKzg7YVs2XT1pKzExO2FbN109aSs0O2FbMF09bDthWzFdPWkrNzthWzJdPWkrNjthWzNdPWkrNTtsPXNbM107c1syXT1zWzFdO3NbM109bztzWzBdPWw7c1sxXT1vKzE7YnJlYWs7Y2FzZSAzOmFbMTJdPWFbMF07YVsxM109aSswO2FbMTRdPWkrMTthWzE1XT1pKzI7YVs4XT1hWzFdO2FbOV09aSs5O2FbMTBdPWkrMTA7YVsxMV09aSszO2FbNF09YVsyXTthWzVdPWkrODthWzZdPWkrMTE7YVs3XT1pKzQ7YVswXT1hWzNdO2FbMV09aSs3O2FbMl09aSs2O2FbM109aSs1O3NbMl09c1swXTtzWzNdPW87c1swXT1zWzFdO3NbMV09bysxfXRoaXMuZmlndXJlcy5wdXNoKHt0eXBlOnEsY29vcmRzOm5ldyBJbnQzMkFycmF5KGEpLGNvbG9yczpuZXcgSW50MzJBcnJheShzKX0pfX1fYnVpbGRGaWd1cmVGcm9tUGF0Y2goZSl7Y29uc3QgdD10aGlzLmZpZ3VyZXNbZV07YXNzZXJ0KHQudHlwZT09PXEsIlVuZXhwZWN0ZWQgcGF0Y2ggbWVzaCBmaWd1cmUiKTtjb25zdCBuPXRoaXMuY29vcmRzLGE9dGhpcy5jb2xvcnMscz10LmNvb3JkcyxyPXQuY29sb3JzLGk9TWF0aC5taW4obltzWzBdXVswXSxuW3NbM11dWzBdLG5bc1sxMl1dWzBdLG5bc1sxNV1dWzBdKSxvPU1hdGgubWluKG5bc1swXV1bMV0sbltzWzNdXVsxXSxuW3NbMTJdXVsxXSxuW3NbMTVdXVsxXSksbD1NYXRoLm1heChuW3NbMF1dWzBdLG5bc1szXV1bMF0sbltzWzEyXV1bMF0sbltzWzE1XV1bMF0pLGY9TWF0aC5tYXgobltzWzBdXVsxXSxuW3NbM11dWzFdLG5bc1sxMl1dWzFdLG5bc1sxNV1dWzFdKTtsZXQgYz1NYXRoLmNlaWwoKGwtaSkqTWVzaFNoYWRpbmcuVFJJQU5HTEVfREVOU0lUWS8odGhpcy5ib3VuZHNbMl0tdGhpcy5ib3VuZHNbMF0pKTtjPU1hdGhDbGFtcChjLE1lc2hTaGFkaW5nLk1JTl9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5ULE1lc2hTaGFkaW5nLk1BWF9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5UKTtsZXQgaD1NYXRoLmNlaWwoKGYtbykqTWVzaFNoYWRpbmcuVFJJQU5HTEVfREVOU0lUWS8odGhpcy5ib3VuZHNbM10tdGhpcy5ib3VuZHNbMV0pKTtoPU1hdGhDbGFtcChoLE1lc2hTaGFkaW5nLk1JTl9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5ULE1lc2hTaGFkaW5nLk1BWF9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5UKTtjb25zdCB1PWMrMSxtPW5ldyBJbnQzMkFycmF5KChoKzEpKnUpLHA9bmV3IEludDMyQXJyYXkoKGgrMSkqdSk7bGV0IGQ9MDtjb25zdCBnPW5ldyBVaW50OEFycmF5KDMpLGI9bmV3IFVpbnQ4QXJyYXkoMyksdz1hW3JbMF1dLGo9YVtyWzFdXSxrPWFbclsyXV0sdj1hW3JbM11dLFM9Z2V0QihoKSx4PWdldEIoYyk7Zm9yKGxldCBlPTA7ZTw9aDtlKyspe2dbMF09KHdbMF0qKGgtZSkra1swXSplKS9ofDA7Z1sxXT0od1sxXSooaC1lKStrWzFdKmUpL2h8MDtnWzJdPSh3WzJdKihoLWUpK2tbMl0qZSkvaHwwO2JbMF09KGpbMF0qKGgtZSkrdlswXSplKS9ofDA7YlsxXT0oalsxXSooaC1lKSt2WzFdKmUpL2h8MDtiWzJdPShqWzJdKihoLWUpK3ZbMl0qZSkvaHwwO2ZvcihsZXQgdD0wO3Q8PWM7dCsrLGQrKyl7aWYoISgwIT09ZSYmZSE9PWh8fDAhPT10JiZ0IT09YykpY29udGludWU7bGV0IHI9MCxpPTAsbz0wO2ZvcihsZXQgYT0wO2E8PTM7YSsrKWZvcihsZXQgbD0wO2w8PTM7bCsrLG8rKyl7Y29uc3QgZj1TW2VdW2FdKnhbdF1bbF07cis9bltzW29dXVswXSpmO2krPW5bc1tvXV1bMV0qZn1tW2RdPW4ubGVuZ3RoO24ucHVzaChbcixpXSk7cFtkXT1hLmxlbmd0aDtjb25zdCBsPW5ldyBVaW50OEFycmF5KDMpO2xbMF09KGdbMF0qKGMtdCkrYlswXSp0KS9jfDA7bFsxXT0oZ1sxXSooYy10KStiWzFdKnQpL2N8MDtsWzJdPShnWzJdKihjLXQpK2JbMl0qdCkvY3wwO2EucHVzaChsKX19bVswXT1zWzBdO3BbMF09clswXTttW2NdPXNbM107cFtjXT1yWzFdO21bdSpoXT1zWzEyXTtwW3UqaF09clsyXTttW3UqaCtjXT1zWzE1XTtwW3UqaCtjXT1yWzNdO3RoaXMuZmlndXJlc1tlXT17dHlwZTp5LGNvb3JkczptLGNvbG9yczpwLHZlcnRpY2VzUGVyUm93OnV9fV91cGRhdGVCb3VuZHMoKXtsZXQgZT10aGlzLmNvb3Jkc1swXVswXSx0PXRoaXMuY29vcmRzWzBdWzFdLG49ZSxhPXQ7Zm9yKGxldCBzPTEscj10aGlzLmNvb3Jkcy5sZW5ndGg7czxyO3MrKyl7Y29uc3Qgcj10aGlzLmNvb3Jkc1tzXVswXSxpPXRoaXMuY29vcmRzW3NdWzFdO2U9ZT5yP3I6ZTt0PXQ+aT9pOnQ7bj1uPHI/cjpuO2E9YTxpP2k6YX10aGlzLmJvdW5kcz1bZSx0LG4sYV19X3BhY2tEYXRhKCl7bGV0IGUsdCxuLGE7Y29uc3Qgcz10aGlzLmNvb3JkcyxyPW5ldyBGbG9hdDMyQXJyYXkoMipzLmxlbmd0aCk7Zm9yKGU9MCxuPTAsdD1zLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PXNbZV07cltuKytdPXRbMF07cltuKytdPXRbMV19dGhpcy5jb29yZHM9cjtjb25zdCBpPXRoaXMuY29sb3JzLG89bmV3IFVpbnQ4QXJyYXkoMyppLmxlbmd0aCk7Zm9yKGU9MCxuPTAsdD1pLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PWlbZV07b1tuKytdPXRbMF07b1tuKytdPXRbMV07b1tuKytdPXRbMl19dGhpcy5jb2xvcnM9bztjb25zdCBsPXRoaXMuZmlndXJlcztmb3IoZT0wLHQ9bC5sZW5ndGg7ZTx0O2UrKyl7Y29uc3QgdD1sW2VdLHM9dC5jb29yZHMscj10LmNvbG9ycztmb3Iobj0wLGE9cy5sZW5ndGg7bjxhO24rKyl7c1tuXSo9MjtyW25dKj0zfX19Z2V0SVIoKXtjb25zdHtib3VuZHM6ZX09dGhpcztpZihlWzJdLWVbMF09PT0wfHxlWzNdLWVbMV09PT0wKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBNZXNoU2hhZGluZyBib3VuZHM6IFske2V9XS5gKTtyZXR1cm5bIk1lc2giLHRoaXMuc2hhZGluZ1R5cGUsdGhpcy5jb29yZHMsdGhpcy5jb2xvcnMsdGhpcy5maWd1cmVzLGUsdGhpcy5iYm94LHRoaXMuYmFja2dyb3VuZF19fWNsYXNzIER1bW15U2hhZGluZyBleHRlbmRzIEJhc2VTaGFkaW5ne2dldElSKCl7cmV0dXJuWyJEdW1teSJdfX1mdW5jdGlvbiBnZXRUaWxpbmdQYXR0ZXJuSVIoZSx0LG4pe2NvbnN0IGE9bG9va3VwTWF0cml4KHQuZ2V0QXJyYXkoIk1hdHJpeCIpLHBuKSxzPWxvb2t1cE5vcm1hbFJlY3QodC5nZXRBcnJheSgiQkJveCIpLG51bGwpO2lmKCFzfHxzWzJdLXNbMF09PT0wfHxzWzNdLXNbMV09PT0wKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBnZXRUaWxpbmdQYXR0ZXJuSVIgL0JCb3ggYXJyYXkuIik7Y29uc3Qgcj10LmdldCgiWFN0ZXAiKTtpZigibnVtYmVyIiE9dHlwZW9mIHIpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvWFN0ZXAgdmFsdWUuIik7Y29uc3QgaT10LmdldCgiWVN0ZXAiKTtpZigibnVtYmVyIiE9dHlwZW9mIGkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvWVN0ZXAgdmFsdWUuIik7Y29uc3Qgbz10LmdldCgiUGFpbnRUeXBlIik7aWYoIU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvUGFpbnRUeXBlIHZhbHVlLiIpO2NvbnN0IGw9dC5nZXQoIlRpbGluZ1R5cGUiKTtpZighTnVtYmVyLmlzSW50ZWdlcihsKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgZ2V0VGlsaW5nUGF0dGVybklSIC9UaWxpbmdUeXBlIHZhbHVlLiIpO3JldHVyblsiVGlsaW5nUGF0dGVybiIsbixlLGEscyxyLGksbyxsXX1jb25zdCBicz1bMS4zODc3LDEsMSwxLC45NzgwMSwuOTI0ODIsLjg5NTUyLC45MTEzMywuODE5ODgsLjk3NTY2LC45ODE1MiwuOTM1NDgsLjkzNTQ4LDEuMjc5OCwuODUyODQsLjkyNzk0LDEsLjk2MTM0LDEuNTQ2NTcsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC44Mjg0NSwuODI4NDUsLjg1Mjg0LC44NTI4NCwuODUyODQsLjc1ODU5LC45MjEzOCwuODM5MDgsLjc3NjIsLjczMjkzLC44NzI4OSwuNzMxMzMsLjc1MTQsLjgxOTIxLC44NzM1NiwuOTU5NTgsLjU5NTI2LC43NTcyNywuNjkyMjUsMS4wNDkyNCwuOTEyMSwuODY5NDMsLjc5Nzk1LC44ODE5OCwuNzc5NTgsLjcwODY0LC44MTA1NSwuOTAzOTksLjg4NjUzLC45NjAxNywuODI1NzcsLjc3ODkyLC43ODI1NywuOTc1MDcsMS41NDY1NywuOTc1MDcsLjg1Mjg0LC44OTU1MiwuOTAxNzYsLjg4NzYyLC44Nzg1LC43NTI0MSwuODc4NSwuOTA1MTgsLjk1MDE1LC43NzYxOCwuODc4NSwuODg0MDEsLjkxOTE2LC44NjMwNCwuODg0MDEsLjkxNDg4LC44Nzg1LC44ODAxLC44Nzg1LC44Nzg1LC45MTM0MywuNzE3MywxLjA0MTA2LC44Nzg1LC44NTA3NSwuOTU3OTQsLjgyNjE2LC44NTE2MiwuNzk0OTIsLjg4MzMxLDEuNjk4MDgsLjg4MzMxLC44NTI4NCwuOTc4MDEsLjg5NTUyLC45MTEzMywuODk1NTIsLjkxMTMzLDEuNzgwMSwuODk1NTIsMS4yNDQ4NywxLjEzMjU0LDEuMTI0MDEsLjk2ODM5LC44NTI4NCwuNjg3ODcsLjcwNjQ1LC44NTU5MiwuOTA3NDcsMS4wMTQ2NiwxLjAwODgsLjkwMzIzLDEsMS4wNzQ2MywxLC45MTA1NiwuNzU4MDYsMS4xOTExOCwuOTY4MzksLjc4ODY0LC44Mjg0NSwuODQxMzMsLjc1ODU5LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC43NzUzOSwuNzMyOTMsLjczMTMzLC43MzEzMywuNzMxMzMsLjczMTMzLC45NTk1OCwuOTU5NTgsLjk1OTU4LC45NTk1OCwuODg1MDYsLjkxMjEsLjg2OTQzLC44Njk0MywuODY5NDMsLjg2OTQzLC44Njk0MywuODUyODQsLjg3NTA4LC45MDM5OSwuOTAzOTksLjkwMzk5LC45MDM5OSwuNzc4OTIsLjc5Nzk1LC45MDgwNywuODg3NjIsLjg4NzYyLC44ODc2MiwuODg3NjIsLjg4NzYyLC44ODc2MiwuODcxNSwuNzUyNDEsLjkwNTE4LC45MDUxOCwuOTA1MTgsLjkwNTE4LC44ODQwMSwuODg0MDEsLjg4NDAxLC44ODQwMSwuODc4NSwuODc4NSwuODgwMSwuODgwMSwuODgwMSwuODgwMSwuODgwMSwuOTA3NDcsLjg5MDQ5LC44Nzg1LC44Nzg1LC44Nzg1LC44Nzg1LC44NTE2MiwuODc4NSwuODUxNjIsLjgzOTA4LC44ODc2MiwuODM5MDgsLjg4NzYyLC44MzkwOCwuODg3NjIsLjczMjkzLC43NTI0MSwuNzMyOTMsLjc1MjQxLC43MzI5MywuNzUyNDEsLjczMjkzLC43NTI0MSwuODcyODksLjgzMDE2LC44ODUwNiwuOTMxMjUsLjczMTMzLC45MDUxOCwuNzMxMzMsLjkwNTE4LC43MzEzMywuOTA1MTgsLjczMTMzLC45MDUxOCwuNzMxMzMsLjkwNTE4LC44MTkyMSwuNzc2MTgsLjgxOTIxLC43NzYxOCwuODE5MjEsLjc3NjE4LDEsMSwuODczNTYsLjg3ODUsLjkxMDc1LC44OTYwOCwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjc2MjI5LC45MDE2NywuNTk1MjYsLjkxOTE2LDEsMSwuODYzMDQsLjY5MjI1LC44ODQwMSwxLDEsLjcwNDI0LC43OTQ2OCwuOTE5MjYsLjg4MTc1LC43MDgyMywuOTQ5MDMsLjkxMjEsLjg3ODUsMSwxLC45MTIxLC44Nzg1LC44NzgwMiwuODg2NTYsLjg3ODUsLjg2OTQzLC44ODAxLC44Njk0MywuODgwMSwuODY5NDMsLjg4MDEsLjg3NDAyLC44OTI5MSwuNzc5NTgsLjkxMzQzLDEsMSwuNzc5NTgsLjkxMzQzLC43MDg2NCwuNzE3MywuNzA4NjQsLjcxNzMsLjcwODY0LC43MTczLC43MDg2NCwuNzE3MywxLDEsLjgxMDU1LC43NTg0MSwuODEwNTUsMS4wNjQ1MiwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45MDM5OSwuODc4NSwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45MDM5OSwuODc4NSwuOTYwMTcsLjk1Nzk0LC43Nzg5MiwuODUxNjIsLjc3ODkyLC43ODI1NywuNzk0OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC45Mjk3LC41Njg5MiwuODM5MDgsLjg4NzYyLC43NzUzOSwuODcxNSwuODc1MDgsLjg5MDQ5LDEsMSwuODEwNTUsMS4wNDEwNiwxLjIwNTI4LDEuMjA1MjgsMSwxLjE1NTQzLC43MDY3NCwuOTgzODcsLjk0NzIxLDEuMzM0MzEsMS40NTg5NCwuOTUxNjEsMS4wNjMwMywuODM5MDgsLjgwMzUyLC41NzE4NCwuNjk2NSwuNTYyODksLjgyMDAxLC41NjAyOSwuODEyMzUsMS4wMjk4OCwuODM5MDgsLjc3NjIsLjY4MTU2LC44MDM2NywuNzMxMzMsLjc4MjU3LC44NzM1NiwuODY5NDMsLjk1OTU4LC43NTcyNywuODkwMTksMS4wNDkyNCwuOTEyMSwuNzY0OCwuODY5NDMsLjg3MzU2LC43OTc5NSwuNzgyNzUsLjgxMDU1LC43Nzg5MiwuOTc2MiwuODI1NzcsLjk5ODE5LC44NDg5NiwuOTU5NTgsLjc3ODkyLC45NjEwOCwxLjAxNDA3LC44OTA0OSwxLjAyOTg4LC45NDIxMSwuOTYxMDgsLjg5MzYsLjg0MDIxLC44Nzg0MiwuOTYzOTksLjc5MTA5LC44OTA0OSwxLjAwODEzLDEuMDI5ODgsLjg2MDc3LC44NzQ0NSwuOTIwOTksLjg0NzIzLC44NjUxMywuODgwMSwuNzU2MzgsLjg1NzE0LC43ODIxNiwuNzk1ODYsLjg3OTY1LC45NDIxMSwuOTc3NDcsLjc4Mjg3LC45NzkyNiwuODQ5NzEsMS4wMjk4OCwuOTQyMTEsLjg4MDEsLjk0MjExLC44NDk3MSwuNzMxMzMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwMjY0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45MDUxOCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA1NDgsMSwxLDEsMSwxLDEsLjk2MDE3LC45NTc5NCwuOTYwMTcsLjk1Nzk0LC45NjAxNywuOTU3OTQsLjc3ODkyLC44NTE2MiwxLDEsLjg5NTUyLC45MDUyNywxLC45MDM2MywuOTI3OTQsLjkyNzk0LC45Mjc5NCwuOTI3OTQsLjg3MDEyLC44NzAxMiwuODcwMTIsLjg5NTUyLC44OTU1MiwxLjQyMjU5LC43MTE0MywxLjA2MTUyLDEsMSwxLjAzMzcyLDEuMDMzNzIsLjk3MTcxLDEuNDk1NiwyLjI4MDcsLjkzODM1LC44MzQwNiwuOTExMzMsLjg0MTA3LC45MTEzMywxLDEsMSwuNzIwMjEsMSwxLjIzMTA4LC44MzQ4OSwuODg1MjUsLjg4NTI1LC44MTQ5OSwuOTA1MjcsMS44MTA1NSwuOTA1MjcsMS44MTA1NSwxLjMxMDA2LDEuNTM3MTEsLjk0NDM0LDEuMDg2OTYsMSwuOTUwMTgsLjc3MTkyLC44NTI4NCwuOTA3NDcsMS4xNzUzNCwuNjk4MjUsLjk3MTYsMS4zNzA3NywuOTA3NDcsLjkwNzQ3LC44NTM1NiwuOTA3NDcsLjkwNzQ3LDEuNDQ5NDcsLjg1Mjg0LC44OTQxLC44OTQxLC43MDU3MiwuOCwuNzA1NzIsLjcwNTcyLC43MDU3MiwuNzA1NzIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45OTg2MiwuOTk4NjIsMSwxLDEsMSwxLDEuMDgwMDQsLjkxMDI3LDEsMSwxLC45OTg2MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA3MjcsLjkwNzI3LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSx3cz17bGluZUhlaWdodDoxLjIyMDcsbGluZUdhcDouMjIwN30sanM9WzEuMzg3NywxLDEsMSwuOTc4MDEsLjkyNDgyLC44OTU1MiwuOTExMzMsLjgxOTg4LC45NzU2NiwuOTgxNTIsLjkzNTQ4LC45MzU0OCwxLjI3OTgsLjg1Mjg0LC45Mjc5NCwxLC45NjEzNCwxLjU2MjM5LC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuODI4NDUsLjgyODQ1LC44NTI4NCwuODUyODQsLjg1Mjg0LC43NTg1OSwuOTIxMzgsLjgzOTA4LC43NzYyLC43MTgwNSwuODcyODksLjczMTMzLC43NTE0LC44MTkyMSwuODczNTYsLjk1OTU4LC41OTUyNiwuNzU3MjcsLjY5MjI1LDEuMDQ5MjQsLjkwODcyLC44NTkzOCwuNzk3OTUsLjg3MDY4LC43Nzk1OCwuNjk3NjYsLjgxMDU1LC45MDM5OSwuODg2NTMsLjk2MDY4LC44MjU3NywuNzc4OTIsLjc4MjU3LC45NzUwNywxLjUyOSwuOTc1MDcsLjg1Mjg0LC44OTU1MiwuOTAxNzYsLjk0OTA4LC44NjQxMSwuNzQwMTIsLjg2NDExLC44ODMyMywuOTUwMTUsLjg2NDExLC44NjMzMSwuODg0MDEsLjkxOTE2LC44NjMwNCwuODg0MDEsLjkwMzksLjg2MzMxLC44NjMzMSwuODY0MTEsLjg2NDExLC45MDQ2NCwuNzA4NTIsMS4wNDEwNiwuODYzMzEsLjg0MzcyLC45NTc5NCwuODI2MTYsLjg0NTQ4LC43OTQ5MiwuODgzMzEsMS42OTgwOCwuODgzMzEsLjg1Mjg0LC45NzgwMSwuODk1NTIsLjkxMTMzLC44OTU1MiwuOTExMzMsMS43ODAxLC44OTU1MiwxLjI0NDg3LDEuMTMyNTQsMS4xOTEyOSwuOTY4MzksLjg1Mjg0LC42ODc4NywuNzA2NDUsLjg1NTkyLC45MDc0NywxLjAxNDY2LDEuMDA4OCwuOTAzMjMsMSwxLjA3NDYzLDEsLjkxMDU2LC43NTgwNiwxLjE5MTE4LC45NjgzOSwuNzg4NjQsLjgyODQ1LC44NDEzMywuNzU4NTksLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjc3NTM5LC43MTgwNSwuNzMxMzMsLjczMTMzLC43MzEzMywuNzMxMzMsLjk1OTU4LC45NTk1OCwuOTU5NTgsLjk1OTU4LC44ODUwNiwuOTA4NzIsLjg1OTM4LC44NTkzOCwuODU5MzgsLjg1OTM4LC44NTkzOCwuODUyODQsLjg3MDY4LC45MDM5OSwuOTAzOTksLjkwMzk5LC45MDM5OSwuNzc4OTIsLjc5Nzk1LC45MDgwNywuOTQ5MDgsLjk0OTA4LC45NDkwOCwuOTQ5MDgsLjk0OTA4LC45NDkwOCwuODU4ODcsLjc0MDEyLC44ODMyMywuODgzMjMsLjg4MzIzLC44ODMyMywuODg0MDEsLjg4NDAxLC44ODQwMSwuODg0MDEsLjg3ODUsLjg2MzMxLC44NjMzMSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODYzMzEsLjkwNzQ3LC44OTA0OSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODYzMzEsLjg0NTQ4LC44NjQxMSwuODQ1NDgsLjgzOTA4LC45NDkwOCwuODM5MDgsLjk0OTA4LC44MzkwOCwuOTQ5MDgsLjcxODA1LC43NDAxMiwuNzE4MDUsLjc0MDEyLC43MTgwNSwuNzQwMTIsLjcxODA1LC43NDAxMiwuODcyODksLjc5NTM4LC44ODUwNiwuOTI3MjYsLjczMTMzLC44ODMyMywuNzMxMzMsLjg4MzIzLC43MzEzMywuODgzMjMsLjczMTMzLC44ODMyMywuNzMxMzMsLjg4MzIzLC44MTkyMSwuODY0MTEsLjgxOTIxLC44NjQxMSwuODE5MjEsLjg2NDExLDEsMSwuODczNTYsLjg2MzMxLC45MTA3NSwuODc3NywuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjc2NDY3LC45MDE2NywuNTk1MjYsLjkxOTE2LDEsMSwuODYzMDQsLjY5MjI1LC44ODQwMSwxLDEsLjcwNDI0LC43NzMxMiwuOTE5MjYsLjg4MTc1LC43MDgyMywuOTQ5MDMsLjkwODcyLC44NjMzMSwxLDEsLjkwODcyLC44NjMzMSwuODY5MDYsLjg4MTE2LC44NjMzMSwuODU5MzgsLjg2MzMxLC44NTkzOCwuODYzMzEsLjg1OTM4LC44NjMzMSwuODc0MDIsLjg2NTQ5LC43Nzk1OCwuOTA0NjQsMSwxLC43Nzk1OCwuOTA0NjQsLjY5NzY2LC43MDg1MiwuNjk3NjYsLjcwODUyLC42OTc2NiwuNzA4NTIsLjY5NzY2LC43MDg1MiwxLDEsLjgxMDU1LC43NTg0MSwuODEwNTUsMS4wNjQ1MiwuOTAzOTksLjg2MzMxLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTAzOTksLjg2MzMxLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTYwNjgsLjk1Nzk0LC43Nzg5MiwuODQ1NDgsLjc3ODkyLC43ODI1NywuNzk0OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC45Mjk3LC41Njg5MiwuODM5MDgsLjk0OTA4LC43NzUzOSwuODU4ODcsLjg3MDY4LC44OTA0OSwxLDEsLjgxMDU1LDEuMDQxMDYsMS4yMDUyOCwxLjIwNTI4LDEsMS4xNTU0MywuNzAwODgsLjk4Mzg3LC45NDcyMSwxLjMzNDMxLDEuNDU4OTQsLjk1MTYxLDEuNDgzODcsLjgzOTA4LC44MDM1MiwuNTcxMTgsLjY5NjUsLjU2MzQ3LC43OTE3OSwuNTU4NTMsLjgwMzQ2LDEuMDI5ODgsLjgzOTA4LC43NzYyLC42NzE3NCwuODYwMzYsLjczMTMzLC43ODI1NywuODczNTYsLjg2NDQxLC45NTk1OCwuNzU3MjcsLjg5MDE5LDEuMDQ5MjQsLjkwODcyLC43NDg4OSwuODU5MzgsLjg3ODkxLC43OTc5NSwuNzk1NywuODEwNTUsLjc3ODkyLC45NzQ0NywuODI1NzcsLjk3NDY2LC44NzE3OSwuOTU5NTgsLjc3ODkyLC45NDI1MiwuOTU2MTIsLjg3NTMsMS4wMjk4OCwuOTI3MzMsLjk0MjUyLC44NzQxMSwuODQwMjEsLjg3MjgsLjk1NjEyLC43NDA4MSwuODc1MywxLjAyMTg5LDEuMDI5ODgsLjg0ODE0LC44NzQ0NSwuOTE4MjIsLjg0NzIzLC44NTY2OCwuODYzMzEsLjgxMzQ0LC44NzU4MSwuNzY0MjIsLjgyMDQ2LC45NjA1NywuOTI3MzMsLjk5Mzc1LC43ODAyMiwuOTU0NTIsLjg2MDE1LDEuMDI5ODgsLjkyNzMzLC44NjMzMSwuOTI3MzMsLjg2MDE1LC43MzEzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA2MzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg4MzIzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44NTE3NCwxLDEsMSwxLDEsMSwuOTYwNjgsLjk1Nzk0LC45NjA2OCwuOTU3OTQsLjk2MDY4LC45NTc5NCwuNzc4OTIsLjg0NTQ4LDEsMSwuODk1NTIsLjkwNTI3LDEsLjkwMzYzLC45Mjc5NCwuOTI3OTQsLjkyNzk0LC44OTgwNywuODcwMTIsLjg3MDEyLC44NzAxMiwuODk1NTIsLjg5NTUyLDEuNDIyNTksLjcxMDk0LDEuMDYxNTIsMSwxLDEuMDMzNzIsMS4wMzM3MiwuOTcxNzEsMS40OTU2LDIuMjgwNywuOTI5NzIsLjgzNDA2LC45MTEzMywuODMzMjYsLjkxMTMzLDEsMSwxLC43MjAyMSwxLDEuMjMxMDgsLjgzNDg5LC44ODUyNSwuODg1MjUsLjgxNDk5LC45MDYxNiwxLjgxMDU1LC45MDUyNywxLjgxMDU1LDEuMzEwNywxLjUzNzExLC45NDQzNCwxLjA4Njk2LDEsLjk1MDE4LC43NzE5MiwuODUyODQsLjkwNzQ3LDEuMTc1MzQsLjY5ODI1LC45NzE2LDEuMzcwNzcsLjkwNzQ3LC45MDc0NywuODUzNTYsLjkwNzQ3LC45MDc0NywxLjQ0OTQ3LC44NTI4NCwuODk0MSwuODk0MSwuNzA1NzIsLjgsLjcwNTcyLC43MDU3MiwuNzA1NzIsLjcwNTcyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTk4NjIsLjk5ODYyLDEsMSwxLDEsMSwxLjA4MDA0LC45MTAyNywxLDEsMSwuOTk4NjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwNzI3LC45MDcyNywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sa3M9e2xpbmVIZWlnaHQ6MS4yMjA3LGxpbmVHYXA6LjIyMDd9LHlzPVsxLjM4NzcsMSwxLDEsMS4xNzIyMywxLjEyOTMsLjg5NTUyLC45MTEzMywuODAzOTUsMS4wMjI2OSwxLjE1NjAxLC45MTA1NiwuOTEwNTYsMS4yNzk4LC44NTI4NCwuODk4MDcsMSwuOTA4NjEsMS4zOTU0MywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjk2MzA5LC45NjMwOSwuODUyODQsLjg1Mjg0LC44NTI4NCwuODMzMTksLjg4MDcxLC44Njc1LC44MTU1MiwuNzIzNDYsLjg1MTkzLC43MzIwNiwuNzUyMiwuODExMDUsLjg2Mjc1LC45MDY4NSwuNjM3NywuNzc4OTIsLjc1NTkzLDEuMDI2MzgsLjg5MjQ5LC44NDExOCwuNzc0NTIsLjg1Mzc0LC43NTE4NiwuNjc3ODksLjc5Nzc2LC44ODg0NCwuODUwNjYsLjk0MzA5LC43NzgxOCwuNzMwNiwuNzY2NTksMS4xMDM2OSwxLjM4MzEzLDEuMTAzNjksMS4wNjEzOSwuODk1NTIsLjg3MzksLjkyNDUsLjkyNDUsLjgzMjAzLC45MjQ1LC44NTg2NSwxLjA5ODQyLC45MjQ1LC45MjQ1LDEuMDMyOTcsMS4wNzY5MiwuOTA5MTgsMS4wMzI5NywuOTQ5NTksLjkyNDUsLjkyMjc0LC45MjQ1LC45MjQ1LDEuMDI5MzMsLjc3ODMyLDEuMjA1NjIsLjkyNDUsLjg5MTYsLjk4OTg2LC44NjYyMSwuODk0NTMsLjc5MDA0LC45NDE1MiwxLjc3MjU2LC45NDE1MiwuODUyODQsLjk3ODAxLC44OTU1MiwuOTExMzMsLjg5NTUyLC45MTEzMywxLjkxNzI5LC44OTU1MiwxLjE3ODg5LDEuMTMyNTQsMS4xNjM1OSwuOTIwOTgsLjg1Mjg0LC42ODc4NywuNzEzNTMsLjg0NzM3LC45MDc0NywxLjAwODgsMS4wMDQ0LC44NzY4MywxLDEuMDkwOTEsMSwuOTIyMjksLjczOSwxLjE1NjQyLC45MjA5OCwuNzYyODgsLjgwNTA0LC44MDk3MiwuNzU4NTksLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjc2MzE4LC43MjM0NiwuNzMyMDYsLjczMjA2LC43MzIwNiwuNzMyMDYsLjkwNjg1LC45MDY4NSwuOTA2ODUsLjkwNjg1LC44NjQ3NywuODkyNDksLjg0MTE4LC44NDExOCwuODQxMTgsLjg0MTE4LC44NDExOCwuODUyODQsLjg0NTU3LC44ODg0NCwuODg4NDQsLjg4ODQ0LC44ODg0NCwuNzMwNiwuNzc0NTIsLjg2MzMxLC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC44NDg0MywuODMyMDMsLjg1ODY1LC44NTg2NSwuODU4NjUsLjg1ODY1LC44MjYwMSwuODI2MDEsLjgyNjAxLC44MjYwMSwuOTQ0NjksLjkyNDUsLjkyMjc0LC45MjI3NCwuOTIyNzQsLjkyMjc0LC45MjI3NCwuOTA3NDcsLjg2NjUxLC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC44OTQ1MywuOTI0NSwuODk0NTMsLjg2NzUsLjkyNDUsLjg2NzUsLjkyNDUsLjg2NzUsLjkyNDUsLjcyMzQ2LC44MzIwMywuNzIzNDYsLjgzMjAzLC43MjM0NiwuODMyMDMsLjcyMzQ2LC44MzIwMywuODUxOTMsLjg4NzUsLjg2NDc3LC45OTAzNCwuNzMyMDYsLjg1ODY1LC43MzIwNiwuODU4NjUsLjczMjA2LC44NTg2NSwuNzMyMDYsLjg1ODY1LC43MzIwNiwuODU4NjUsLjgxMTA1LC45MjQ1LC44MTEwNSwuOTI0NSwuODExMDUsLjkyNDUsMSwxLC44NjI3NSwuOTI0NSwuOTA4NzIsLjkzNTkxLC45MDY4NSwuODI2MDEsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwxLjAzMjk3LC45MDY4NSwuODI2MDEsLjc3ODk2LDEuMDU2MTEsLjYzNzcsMS4wNzY5MiwxLDEsLjkwOTE4LC43NTU5MywxLjAzMjk3LDEsMSwuNzYwMzIsLjkzNzUsLjk4MTU2LC45MzQwNywuNzcyNjEsMS4xMTQyOSwuODkyNDksLjkyNDUsMSwxLC44OTI0OSwuOTI0NSwuOTI1MzQsLjg2Njk4LC45MjQ1LC44NDExOCwuOTIyNzQsLjg0MTE4LC45MjI3NCwuODQxMTgsLjkyMjc0LC44NjY3LC44NjI5MSwuNzUxODYsMS4wMjkzMywxLDEsLjc1MTg2LDEuMDI5MzMsLjY3Nzg5LC43NzgzMiwuNjc3ODksLjc3ODMyLC42Nzc4OSwuNzc4MzIsLjY3Nzg5LC43NzgzMiwxLDEsLjc5Nzc2LC45NzY1NSwuNzk3NzYsMS4yMzAyMywuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC44ODg0NCwuOTI0NSwuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC44ODg0NCwuOTI0NSwuOTQzMDksLjk4OTg2LC43MzA2LC44OTQ1MywuNzMwNiwuNzY2NTksLjc5MDA0LC43NjY1OSwuNzkwMDQsLjc2NjU5LC43OTAwNCwxLjA5MjMxLC41NDg3MywuODY3NSwuOTI0NSwuNzYzMTgsLjg0ODQzLC44NDU1NywuODY2NTEsMSwxLC43OTc3NiwxLjIwNTYyLDEuMTg2MjIsMS4xODYyMiwxLDEuMTQzNywuNjcwMDksLjk2MzM0LC45MzY5NSwxLjM1MTkxLDEuNDA5MDksLjk1MTYxLDEuNDgzODcsLjg2NzUsLjkwODYxLC42MTkyLC43MzYzLC42NDgyNCwuODI0MTEsLjU2MzIxLC44NTY5NiwxLjIzNTE2LC44Njc1LC44MTU1MiwuNzI4NiwuODQxMzQsLjczMjA2LC43NjY1OSwuODYyNzUsLjg0MzY5LC45MDY4NSwuNzc4OTIsLjg1ODcxLDEuMDI2MzgsLjg5MjQ5LC43NTgyOCwuODQxMTgsLjg1OTg0LC43NzQ1MiwuNzY0NjYsLjc5Nzc2LC43MzA2LC45MDc4MiwuNzc4MTgsLjkwMywuODcyOTEsLjkwNjg1LC43MzA2LC45OTA1OCwxLjAzNjY3LC45NDYzNSwxLjIzNTE2LC45ODQ5LC45OTA1OCwuOTIzOTMsLjg5MTYsLjk0MiwxLjAzNjY3LC43NTAyNiwuOTQ2MzUsMS4wMjk3LDEuMjM1MTYsLjkwOTE4LC45NDA0OCwuOTgyMTcsLjg5NzQ2LC44NDE1MywuOTIyNzQsLjgyNTA3LC44ODgzMiwuODQ0MzgsLjg4MTc4LDEuMDM1MjUsLjk4NDksMS4wMDIyNSwuNzgwODYsLjk3MjQ4LC44OTQwNCwxLjIzNTE2LC45ODQ5LC45MjI3NCwuOTg0OSwuODk0MDQsLjczMjA2LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44OTY5MywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODU4NjUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwOTMzLDEsMSwxLDEsMSwxLC45NDMwOSwuOTg5ODYsLjk0MzA5LC45ODk4NiwuOTQzMDksLjk4OTg2LC43MzA2LC44OTQ1MywxLDEsLjg5NTUyLC45MDUyNywxLC45MDE4NiwxLjEyMzA4LDEuMTIzMDgsMS4xMjMwOCwxLjEyMzA4LDEuMjU2NiwxLjI1NjYsMS4yNTY2LC44OTU1MiwuODk1NTIsMS40MjI1OSwuNjg5OTQsMS4wMzgwOSwxLDEsMS4wMTc2LDEuMDE3NiwxLjExNTIzLDEuNDk1NiwyLjAxNDYyLC45Nzg1OCwuODI2MTYsLjkxMTMzLC44MzQzNywuOTExMzMsMSwxLDEsLjcwNTA4LDEsMS4yMzEwOCwuNzk4MDEsLjg0NDI2LC44NDQyNiwuNzc0LC45MDU3MiwxLjgxMDU1LC45MDc0OSwxLjgxMDU1LDEuMjg4MDksMS41NTQ2OSwuOTQ0MzQsMS4wNzgwNiwxLC45NzA5NCwuNzU4OSwuODUyODQsLjkwNzQ3LDEuMTk2NTgsLjY5ODI1LC45NzYyMiwxLjMzNTEyLC45MDc0NywuOTA3NDcsLjg1Mjg0LC45MDc0NywuOTA3NDcsMS40NDk0NywuODUyODQsLjg5NDEsLjg5NDEsLjcwNTcyLC44LC43MDU3MiwuNzA1NzIsLjcwNTcyLC43MDU3MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk5ODYyLC45OTg2MiwxLDEsMSwxLDEsMS4wMzM2LC45MTAyNywxLDEsMSwuOTk4NjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNTg1OSwxLjA1ODU5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxxcz17bGluZUhlaWdodDoxLjIyMDcsbGluZUdhcDouMjIwN30sdnM9WzEuMzg3NywxLDEsMSwxLjE3MjIzLDEuMTI5MywuODk1NTIsLjkxMTMzLC44MDM5NSwxLjAyMjY5LDEuMTU2MDEsLjkxMDU2LC45MTA1NiwxLjI3OTgsLjg1Mjg0LC44OTgwNywxLC45MDg2MSwxLjM5MDE2LC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTYzMDksLjk2MzA5LC44NTI4NCwuODUyODQsLjg1Mjg0LC44MzMxOSwuODgwNzEsLjg2NzUsLjgxNTUyLC43MzgzNCwuODUxOTMsLjczMjA2LC43NTIyLC44MTEwNSwuODYyNzUsLjkwNjg1LC42Mzc3LC43Nzg5MiwuNzU1OTMsMS4wMjYzOCwuODkzODUsLjg1MTIyLC43NzQ1MiwuODY1MDMsLjc1MTg2LC42ODg4NywuNzk3NzYsLjg4ODQ0LC44NTA2NiwuOTQyNTgsLjc3ODE4LC43MzA2LC43NjY1OSwxLjEwMzY5LDEuMzkwMTYsMS4xMDM2OSwxLjA2MTM5LC44OTU1MiwuODczOSwuODYxMjgsLjk0NDY5LC44NDU3LC45NDQ2OSwuODk0NjQsMS4wOTg0MiwuODQ2MzYsLjk0NDY5LDEuMDMyOTcsMS4wNzY5MiwuOTA5MTgsMS4wMzI5NywuOTU4OTcsLjk0NDY5LC45NDgyLC45NDQ2OSwuOTQ0NjksMS4wNDY5MiwuNzgyMjMsMS4yMDU2MiwuOTQ0NjksLjkwMzMyLC45ODk4NiwuODY2MjEsLjkwNTI3LC43OTAwNCwuOTQxNTIsMS43NzI1NiwuOTQxNTIsLjg1Mjg0LC45NzgwMSwuODk1NTIsLjkxMTMzLC44OTU1MiwuOTExMzMsMS45MTcyOSwuODk1NTIsMS4xNzg4OSwxLjEzMjU0LDEuMDg3MDcsLjkyMDk4LC44NTI4NCwuNjg3ODcsLjcxMzUzLC44NDczNywuOTA3NDcsMS4wMDg4LDEuMDA0NCwuODc2ODMsMSwxLjA5MDkxLDEsLjkyMjI5LC43MzksMS4xNTY0MiwuOTIwOTgsLjc2Mjg4LC44MDUwNCwuODA5NzIsLjc1ODU5LC44Njc1LC44Njc1LC44Njc1LC44Njc1LC44Njc1LC44Njc1LC43NjMxOCwuNzM4MzQsLjczMjA2LC43MzIwNiwuNzMyMDYsLjczMjA2LC45MDY4NSwuOTA2ODUsLjkwNjg1LC45MDY4NSwuODY0NzcsLjg5Mzg1LC44NTEyMiwuODUxMjIsLjg1MTIyLC44NTEyMiwuODUxMjIsLjg1Mjg0LC44NTMxMSwuODg4NDQsLjg4ODQ0LC44ODg0NCwuODg4NDQsLjczMDYsLjc3NDUyLC44NjMzMSwuODYxMjgsLjg2MTI4LC44NjEyOCwuODYxMjgsLjg2MTI4LC44NjEyOCwuODY5MywuODQ1NywuODk0NjQsLjg5NDY0LC44OTQ2NCwuODk0NjQsLjgyNjAxLC44MjYwMSwuODI2MDEsLjgyNjAxLC45NDQ2OSwuOTQ0NjksLjk0ODIsLjk0ODIsLjk0ODIsLjk0ODIsLjk0ODIsLjkwNzQ3LC44NjY1MSwuOTQ0NjksLjk0NDY5LC45NDQ2OSwuOTQ0NjksLjkwNTI3LC45NDQ2OSwuOTA1MjcsLjg2NzUsLjg2MTI4LC44Njc1LC44NjEyOCwuODY3NSwuODYxMjgsLjczODM0LC44NDU3LC43MzgzNCwuODQ1NywuNzM4MzQsLjg0NTcsLjczODM0LC44NDU3LC44NTE5MywuOTI0NTQsLjg2NDc3LC45OTIxLC43MzIwNiwuODk0NjQsLjczMjA2LC44OTQ2NCwuNzMyMDYsLjg5NDY0LC43MzIwNiwuODk0NjQsLjczMjA2LC44OTQ2NCwuODExMDUsLjg0NjM2LC44MTEwNSwuODQ2MzYsLjgxMTA1LC44NDYzNiwxLDEsLjg2Mjc1LC45NDQ2OSwuOTA4NzIsLjk1Nzg2LC45MDY4NSwuODI2MDEsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwxLjAzMjk3LC45MDY4NSwuODI2MDEsLjc3NzQxLDEuMDU2MTEsLjYzNzcsMS4wNzY5MiwxLDEsLjkwOTE4LC43NTU5MywxLjAzMjk3LDEsMSwuNzYwMzIsLjkwNDUyLC45ODE1NiwxLjExODQyLC43NzI2MSwxLjExNDI5LC44OTM4NSwuOTQ0NjksMSwxLC44OTM4NSwuOTQ0NjksLjk1ODc3LC44NjkwMSwuOTQ0NjksLjg1MTIyLC45NDgyLC44NTEyMiwuOTQ4MiwuODUxMjIsLjk0ODIsLjg2NjcsLjkwMDE2LC43NTE4NiwxLjA0NjkyLDEsMSwuNzUxODYsMS4wNDY5MiwuNjg4ODcsLjc4MjIzLC42ODg4NywuNzgyMjMsLjY4ODg3LC43ODIyMywuNjg4ODcsLjc4MjIzLDEsMSwuNzk3NzYsLjkyMTg4LC43OTc3NiwxLjIzMDIzLC44ODg0NCwuOTQ0NjksLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC44ODg0NCwuOTQ0NjksLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC45NDI1OCwuOTg5ODYsLjczMDYsLjkwNTI3LC43MzA2LC43NjY1OSwuNzkwMDQsLjc2NjU5LC43OTAwNCwuNzY2NTksLjc5MDA0LDEuMDkyMzEsLjU0ODczLC44Njc1LC44NjEyOCwuNzYzMTgsLjg2OTMsLjg1MzExLC44NjY1MSwxLDEsLjc5Nzc2LDEuMjA1NjIsMS4xODYyMiwxLjE4NjIyLDEsMS4xNDM3LC42Nzc0MiwuOTYzMzQsLjkzNjk1LDEuMzUxOTEsMS40MDkwOSwuOTUxNjEsMS40ODM4NywuODY2ODYsLjkwODYxLC42MjI2NywuNzQzNTksLjY1NjQ5LC44NTQ5OCwuNTY5NjMsLjg4MjU0LDEuMjM1MTYsLjg2NzUsLjgxNTUyLC43NTQ0MywuODQ1MDMsLjczMjA2LC43NjY1OSwuODYyNzUsLjg1MTIyLC45MDY4NSwuNzc4OTIsLjg1NzQ2LDEuMDI2MzgsLjg5Mzg1LC43NTY1NywuODUxMjIsLjg2Mjc1LC43NzQ1MiwuNzQxNzEsLjc5Nzc2LC43MzA2LC45NTE2NSwuNzc4MTgsLjg5NzcyLC44ODgzMSwuOTA2ODUsLjczMDYsLjk4MTQyLDEuMDIxOTEsLjk2NTc2LDEuMjM1MTYsLjk5MDE4LC45ODE0MiwuOTIzNiwuODkyNTgsLjk0MDM1LDEuMDIxOTEsLjc4ODQ4LC45NjU3NiwuOTU2MSwxLjIzNTE2LC45MDkxOCwuOTI1NzgsLjk1NDI0LC44OTc0NiwuODM5NjksLjk0ODIsLjgwMTEzLC44OTQ0MiwuODUyMDgsLjg2MTU1LC45ODAyMiwuOTkwMTgsMS4wMDQ1MiwuODEyMDksLjk5MjQ3LC44OTE4MSwxLjIzNTE2LC45OTAxOCwuOTQ4MiwuOTkwMTgsLjg5MTgxLC43MzIwNiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODg4NDQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg5NDY0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45Njc2NiwxLDEsMSwxLDEsMSwuOTQyNTgsLjk4OTg2LC45NDI1OCwuOTg5ODYsLjk0MjU4LC45ODk4NiwuNzMwNiwuOTA1MjcsMSwxLC44OTU1MiwuOTA1MjcsMSwuOTAxODYsMS4xMjMwOCwxLjEyMzA4LDEuMTIzMDgsMS4xMjMwOCwxLjI1NjYsMS4yNTY2LDEuMjU2NiwuODk1NTIsLjg5NTUyLDEuNDIyNTksLjY5MDQzLDEuMDM4MDksMSwxLDEuMDE3NiwxLjAxNzYsMS4xMTUyMywxLjQ5NTYsMi4wMTQ2MiwuOTkzMzEsLjgyNjE2LC45MTEzMywuODQyODYsLjkxMTMzLDEsMSwxLC43MDUwOCwxLDEuMjMxMDgsLjc5ODAxLC44NDQyNiwuODQ0MjYsLjc3NCwuOTA1MjcsMS44MTA1NSwuOTA1MjcsMS44MTA1NSwxLjI4ODA5LDEuNTU0NjksLjk0NDM0LDEuMDc4MDYsMSwuOTcwOTQsLjc1ODksLjg1Mjg0LC45MDc0NywxLjE5NjU4LC42OTgyNSwuOTc2MjIsMS4zMzUxMiwuOTA3NDcsLjkwNzQ3LC44NTM1NiwuOTA3NDcsLjkwNzQ3LDEuNDQ5NDcsLjg1Mjg0LC44OTQxLC44OTQxLC43MDU3MiwuOCwuNzA1NzIsLjcwNTcyLC43MDU3MiwuNzA1NzIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45OTg2MiwuOTk4NjIsMSwxLDEsMSwxLDEuMDMzNiwuOTEwMjcsMSwxLDEsLjk5ODYyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDU4NTksMS4wNTg1OSwxLDEsMSwxLjA3MTg1LC45OTQxMywuOTYzMzQsMS4wODA2NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLFNzPXtsaW5lSGVpZ2h0OjEuMjIwNyxsaW5lR2FwOi4yMjA3fSx4cz1bLjc2MTE2LDEsMSwxLjAwMDYsLjk5OTk4LC45OTk3NCwuOTk5NzMsLjk5OTczLC45OTk4MiwuOTk5NzcsMS4wMDA4NywuOTk5OTgsLjk5OTk4LC45OTk1OSwxLjAwMDAzLDEuMDAwNiwuOTk5OTgsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDAwMywxLjAwMDAzLDEuMDAwMDMsMS4wMDAyNiwuOTk5OSwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LDEuMDAwMjIsLjk5OTc3LDEuMDAwNiwuOTk5NzMsLjk5OTc3LDEuMDAwMjYsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMDEsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDAxLDEuMDAwMTYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTk4LDEuMDAwNiwuOTk5OTgsMS4wMDAwMywuOTk5NzMsLjk5OTk4LC45OTk3MywxLjAwMDI2LC45OTk3MywxLjAwMDI2LC45OTk3MywuOTk5OTgsMS4wMDAyNiwxLjAwMDI2LDEuMDAwNiwxLjAwMDYsLjk5OTczLDEuMDAwNiwuOTk5ODIsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NTksLjk5OTczLC45OTk5OCwxLjAwMDI2LC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzMsMSwuOTk5NTksMS4wMDA3NywuOTk5NTksMS4wMDAwMywuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNzcsLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk3MywxLjAwMDYsLjk5OTk4LDEsLjk5OTM2LC45OTk3MywxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDI2LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LDEsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMDMsMS4wMDAyMiwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wNjQwOSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LDEuMDMzNzQsLjk5OTc3LDEuMDAwMjYsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDQyLC45OTk3MywuOTk5NzMsMS4wMDA2LC45OTk3NywuOTk5NzMsLjk5OTczLDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMzgyOCwxLjAwMDI2LC45OTk5OSwxLjAwMDI2LDEuMDAwNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5MywuOTk5OCwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEsMS4wMDAxNiwuOTk5NzcsLjk5OTU5LC45OTk3NywuOTk5NTksLjk5OTc3LC45OTk1OSwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDI2LC45OTk5OCwxLjAwMDI2LC44MTIxLDEuMDAwMjYsLjk5OTk4LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLDEuMDAwMjYsMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwNiwuOTk5NzMsLjk5OTc3LC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEuMDAwMzQsLjk5OTc3LDEsLjk5OTk3LDEuMDAwMjYsMS4wMDA3OCwxLjAwMDM2LC45OTk3MywxLjAwMDEzLDEuMDAwNiwuOTk5NzcsLjk5OTc3LC45OTk4OCwuODUxNDgsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwuOTk5NzcsMS4wMDAwMSwuOTk5OTksLjk5OTc3LDEuMDAwNjksMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwuOTk5ODQsMS4wMDAyNiwxLjAwMDAxLDEuMDAwMjQsMS4wMDAwMSwuOTk5OSwxLDEuMDAwNiwxLjAwMDAxLDEuMDAwNDEsLjk5OTYyLDEuMDAwMjYsMS4wMDA2LC45OTk5NSwxLjAwMDQxLC45OTk0MiwuOTk5NzMsLjk5OTI3LDEuMDAwODIsLjk5OTAyLDEuMDAwMjYsMS4wMDA4NywxLjAwMDYsMS4wMDA2OSwuOTk5NzMsLjk5ODY3LC45OTk3MywuOTk5MywxLjAwMDI2LDEuMDAwNDksMS4wMDA1NiwxLC45OTk4OCwuOTk5MzUsLjk5OTk1LC45OTk1NCwxLjAwMDU1LC45OTk0NSwxLjAwMDMyLDEuMDAwNiwuOTk5OTUsMS4wMDAyNiwuOTk5OTUsMS4wMDAzMiwxLjAwMDAxLDEuMDAwMDgsLjk5OTcxLDEuMDAwMTksLjk5OTQsMS4wMDAwMSwxLjAwMDYsMS4wMDA0NCwuOTk5NzMsMS4wMDAyMywxLjAwMDQ3LDEsLjk5OTQyLC45OTU2MSwuOTk5ODksMS4wMDAzNSwuOTk5NzcsMS4wMDAzNSwuOTk5NzcsMS4wMDAxOSwuOTk5NDQsMS4wMDAwMSwxLjAwMDIxLC45OTkyNiwxLjAwMDM1LDEuMDAwMzUsLjk5OTQyLDEuMDAwNDgsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMzUsMS4wMDAwMSwuOTk5NzcsMS4wMDAyNiwuOTk5ODksMS4wMDA1NywxLjAwMDAxLC45OTkzNiwxLjAwMDUyLDEuMDAwMTIsLjk5OTk2LDEuMDAwNDMsMSwxLjAwMDM1LC45OTk0LC45OTk3NiwxLjAwMDM1LC45OTk3MywxLjAwMDUyLDEuMDAwNDEsMS4wMDExOSwxLjAwMDM3LC45OTk3MywxLjAwMDAyLC45OTk4NiwxLjAwMDQxLDEuMDAwNDEsLjk5OTAyLC45OTk2LDEuMDAwMzQsLjk5OTk5LDEuMDAwMjYsLjk5OTk5LDEuMDAwMjYsLjk5OTczLDEuMDAwNTIsLjk5OTczLDEsLjk5OTczLDEuMDAwNDEsMS4wMDA3NSwuOTk5NCwxLjAwMDMsLjk5OTk5LDEsMS4wMDA0MSwuOTk5NTUsMSwuOTk5MTUsLjk5OTczLC45OTk3MywxLjAwMDI2LDEuMDAxMTksLjk5OTU1LC45OTk3MywxLjAwMDYsLjk5OTExLDEuMDAwNiwxLjAwMDI2LC45OTk3MiwxLjAwMDI2LC45OTkwMiwxLjAwMDQxLC45OTk3MywuOTk5OTksMSwxLDEuMDAwMzgsMS4wMDA1LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMDEsLjk5OTczLDEsMSwuOTk5NzMsMSwxLC45OTk1NSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMSwxLDEsLjk5OTczLC45OTk3MywuOTk5NzIsMSwxLDEuMDAxMDYsLjk5OTk5LC45OTk5OCwuOTk5OTgsLjk5OTk5LC45OTk5OCwxLjY2NDc1LDEsLjk5OTczLC45OTk3MywxLjAwMDIzLC45OTk3MywuOTk5NzEsMS4wMDA0NywxLjAwMDIzLDEsLjk5OTkxLC45OTk4NCwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEsMSwxLDEsMSwxLDEsLjk5OTcyLDEsMS4yMDk4NSwxLjM5NzEzLDEuMDAwMDMsMS4wMDAzMSwxLjAwMDE1LDEsLjk5NTYxLDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLC45OTkxNSwxLjAwMDMxLDEuMDAwMzEsLjk5OTk5LDEuMDAwMDMsLjk5OTk5LC45OTk5OSwxLjQxMTQ0LDEuNiwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDA1NzksMS40MDU3OSwxLjM2NjI1LC45OTk5OSwxLC45OTg2MSwuOTk4NjEsMSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk3MiwuOTk5OTksLjk5OTk5LC45OTk5OSwuOTk5OTksMS40MDQ4MywxLC45OTk3NywxLjAwMDU0LDEsMSwuOTk5NTMsLjk5OTYyLDEuMDAwNDIsLjk5OTUsMSwxLDEsMSwxLDEsMSwxLC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLEFzPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxDcz1bLjc2MTE2LDEsMSwxLjAwMDYsLjk5OTk4LC45OTk3NCwuOTk5NzMsLjk5OTczLC45OTk4MiwuOTk5NzcsMS4wMDA4NywuOTk5OTgsLjk5OTk4LC45OTk1OSwxLjAwMDAzLDEuMDAwNiwuOTk5OTgsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDAwMywxLjAwMDAzLDEuMDAwMDMsMS4wMDAyNiwuOTk5OSwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LDEuMDAwMjIsLjk5OTc3LDEuMDAwNiwuOTk5NzMsLjk5OTc3LDEuMDAwMjYsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMDEsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDAxLDEuMDAwMTYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTk4LDEuMDAwNiwuOTk5OTgsMS4wMDAwMywuOTk5NzMsLjk5OTk4LC45OTk3MywxLjAwMDI2LC45OTk3MywxLjAwMDI2LC45OTk3MywuOTk5OTgsMS4wMDAyNiwxLjAwMDI2LDEuMDAwNiwxLjAwMDYsLjk5OTczLDEuMDAwNiwuOTk5ODIsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NTksLjk5OTczLC45OTk5OCwxLjAwMDI2LC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzMsMSwuOTk5NTksMS4wMDA3NywuOTk5NTksMS4wMDAwMywuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNzcsLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk3MywxLjAwMDYsLjk5OTk4LDEsLjk5OTM2LC45OTk3MywxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDI2LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LDEsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMDMsMS4wMDAyMiwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wNjQwOSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LDEuMDA0NCwuOTk5NzcsMS4wMDAyNiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3MSwuOTk5NzMsLjk5OTczLDEuMDAwNiwuOTk5NzcsLjk5OTczLC45OTk3MywxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LDEuMDEwMTEsMS4wMDAyNiwuOTk5OTksMS4wMDAyNiwxLjAwMDYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTMsLjk5OTgsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLDEuMDAwMTYsLjk5OTc3LC45OTk1OSwuOTk5NzcsLjk5OTU5LC45OTk3NywuOTk5NTksMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwuOTk5OTgsMS4wMDAyNiwuODEyMSwxLjAwMDI2LC45OTk5OCwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDYsLjk5OTczLC45OTk3NywuOTk5NzMsMSwuOTk5ODIsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMDEsLjk5OTczLDEuMDAwMjYsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTc3LDEsMSwxLjAwMDI2LC45OTk2OSwuOTk5NzIsLjk5OTgxLC45OTk4LDEuMDAwNiwuOTk5NzcsLjk5OTc3LDEuMDAwMjIsLjkxMTU1LDEuMDAwMDEsMS4wMDAyNiwuOTk5NzcsMS4wMDAyMiwxLjAwMDYsLjk5OTc3LDEuMDAwMDEsLjk5OTk5LC45OTk3NywuOTk5NjYsMS4wMDAyMiwxLjAwMDMyLDEuMDAwMDEsLjk5OTQ0LDEuMDAwMjYsMS4wMDAwMSwuOTk5NjgsMS4wMDAwMSwxLjAwMDQ3LDEsMS4wMDA2LDEuMDAwMDEsLjk5OTgxLDEuMDAxMDEsMS4wMDAyNiwxLjAwMDYsLjk5OTQ4LC45OTk4MSwxLjAwMDY0LC45OTk3MywuOTk5NDIsMS4wMDEwMSwxLjAwMDYxLDEuMDAwMjYsMS4wMDA2OSwxLjAwMDYsMS4wMDAxNCwuOTk5NzMsMS4wMTMyMiwuOTk5NzMsMS4wMDA2NSwxLjAwMDI2LDEuMDAwMTIsLjk5OTIzLDEsMS4wMDA2NCwxLjAwMDc2LC45OTk0OCwxLjAwMDU1LDEuMDAwNjMsMS4wMDAwNywuOTk5NDMsMS4wMDA2LC45OTk0OCwxLjAwMDI2LC45OTk0OCwuOTk5NDMsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjksMS4wMDAzOCwxLjAwMDM1LDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTc4LDEuMDAwMDEsMS4wMDA1NywuOTk5ODksLjk5OTY3LC45OTk2NCwuOTk5NjcsLjk5OTc3LC45OTk5OSwuOTk5NzcsMS4wMDAzOCwuOTk5NzcsMS4wMDAwMSwuOTk5NzMsMS4wMDA2NiwuOTk5NjcsLjk5OTY3LDEuMDAwNDEsLjk5OTk4LC45OTk5OSwuOTk5NzcsMS4wMDAyMiwuOTk5NjcsMS4wMDAwMSwuOTk5NzcsMS4wMDAyNiwuOTk5NjQsMS4wMDAzMSwxLjAwMDAxLC45OTk5OSwuOTk5OTksMSwxLjAwMDIzLDEsMSwuOTk5OTksMS4wMDAzNSwxLjAwMDAxLC45OTk5OSwuOTk5NzMsLjk5OTc3LC45OTk5OSwxLjAwMDU4LC45OTk3MywuOTk5NzMsLjk5OTU1LC45OTk1LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDMyLC45OTk4OSwxLjAwMDM0LC45OTk5OSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NzMsLjQ1OTk4LC45OTk3MywxLjAwMDI2LC45OTk3MywxLjAwMDAxLC45OTk5OSwuOTk5ODIsLjk5OTk0LC45OTk5NiwxLDEuMDAwNDIsMS4wMDA0NCwxLjAwMDI5LDEuMDAwMjMsLjk5OTczLC45OTk3MywxLjAwMDI2LC45OTk0OSwxLjAwMDAyLC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NzUsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMzIsLjk4Njg1LC45OTk3MywxLjAwMDI2LDEsMSwuOTk5NjYsMS4wMDA0NCwxLjAwMDE2LDEuMDAwMjIsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMTYsMS4wMDAyMiwxLjAwMDAxLC45OTk3MywxLDEsLjk5OTczLDEsMSwuOTk5NTUsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEsMSwxLC45OTk3MywuOTk5NzMsLjk5OTcyLDEsMSwxLjAwMTA2LC45OTk5OSwuOTk5OTgsLjk5OTk4LC45OTk5OSwuOTk5OTgsMS42NjQ3NSwxLC45OTk3MywuOTk5NzMsMSwuOTk5NzMsLjk5OTcxLC45OTk3OCwxLDEsLjk5OTkxLC45OTk4NCwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwOTgsMSwxLDEsMS4wMDA0OSwxLDEsLjk5OTcyLDEsMS4yMDk4NSwxLjM5NzEzLDEuMDAwMDMsMS4wMDAzMSwxLjAwMDE1LDEsLjk5NTYxLDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLC45OTkxNSwxLjAwMDMxLDEuMDAwMzEsLjk5OTk5LDEuMDAwMDMsLjk5OTk5LC45OTk5OSwxLjQxMTQ0LDEuNiwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDA1NzksMS40MDU3OSwxLjM2NjI1LC45OTk5OSwxLC45OTg2MSwuOTk4NjEsMSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk3MiwuOTk5OTksLjk5OTk5LC45OTk5OSwuOTk5OTksMS40MDQ4MywxLC45OTk3NywxLjAwMDU0LDEsMSwuOTk5NTMsLjk5OTYyLDEuMDAwNDIsLjk5OTUsMSwxLDEsMSwxLDEsMSwxLC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLElzPXtsaW5lSGVpZ2h0OjEuMzUsbGluZUdhcDouMn0sRnM9Wy43NjExNiwxLDEsMS4wMDA2LDEuMDAwNiwxLjAwMDA2LC45OTk3MywuOTk5NzMsLjk5OTgyLDEuMDAwMDEsMS4wMDA0MywuOTk5OTgsLjk5OTk4LC45OTk1OSwxLjAwMDAzLDEuMDAwNiwuOTk5OTgsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEsMS4wMDAwMywxLjAwMDAzLDEuMDAwMDMsLjk5OTczLC45OTk4NywxLjAwMDAxLDEuMDAwMDEsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMjYsMS4wMDAyMiwuOTk5NzcsMS4wMDA2LDEsMS4wMDAwMSwuOTk5NzMsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMDEsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDAxLDEuMDAwMTYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTQ5LC45OTk3MywuOTk5OTgsLjk5OTczLC45OTk3MywxLC45OTk3MywuOTk5NzMsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTI0LC45OTkyNCwxLC45OTkyNCwuOTk5OTksLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk5OCwxLDEuMDAwNiwuOTk5NzMsMSwuOTk5NzcsMSwxLDEsMS4wMDAwNSwxLjAwMDksMS4wMDAwNSwxLjAwMDAzLC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA5LC45OTk3MywuOTk5OTgsMS4wMDAyNSwuOTk5NjgsLjk5OTczLDEuMDAwMDMsMS4wMDAyNSwuNjAyOTksMS4wMDAyNCwxLjA2NDA5LDEsMSwuOTk5OTgsMSwuOTk5OCwxLjAwMDYsLjk5OTk4LDEsLjk5OTM2LC45OTk3MywxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDI2LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMDMsMS4wMDAyMiwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTgyLDEsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wNjQwOSwxLjAwMDI2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLC45OTk3MywxLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLC45OTk3NywxLC45OTk3NywxLC45OTk3NywxLC45OTk3NywxLC45OTk3NywxLjAyODgsLjk5OTc3LC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTkyNCwxLjAwMDYsMS4wMDA2LC45OTk0NiwxLjAwMDM0LDEsLjk5OTI0LDEuMDAwMDEsMSwxLC45OTk3MywuOTk5MjQsLjk5OTczLC45OTkyNCwuOTk5NzMsMS4wNjMxMSwuOTk5NzMsMS4wMDAyNCwuOTk5NzMsLjk5OTI0LC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLDEuMDAwNDEsLjk5OTgsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEsMS4wMDAxNiwuOTk5NzcsLjk5OTk4LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwuODk1NDcsMS4wMDAyNiwxLjAwMDYsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDAxNiwuOTk5NzcsMS4wMDAwMSwxLDEuMDAwMDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDI2LDEsLjk5OTI0LC45OTk3MywxLjAwMDAxLC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwxLDEuMDAwMjYsMS4wMDA2LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsMS4wMDAwMSwxLDEuMDAwNTQsLjk5OTc3LDEuMDAwODQsMS4wMDAwNywuOTk5NzMsMS4wMDAxMywuOTk5MjQsMS4wMDAwMSwxLjAwMDAxLC45OTk0NSwuOTEyMjEsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwxLjAwMDAxLDEuMDAwMDEsLjk5OTk5LC45OTk3NywuOTk5MzMsMS4wMDAyMiwxLjAwMDU0LDEuMDAwMDEsMS4wMDA2NSwxLjAwMDI2LDEuMDAwMDEsMS4wMDAxLDEuMDAwMDEsMS4wMDA1MiwxLDEuMDAwNiwxLjAwMDAxLC45OTk0NSwuOTk4OTcsLjk5OTY4LC45OTkyNCwxLjAwMDM2LC45OTk0NSwuOTk5NDksMSwxLjAwMDYsLjk5ODk3LC45OTkxOCwuOTk5NjgsLjk5OTExLC45OTkyNCwxLC45OTk2MiwxLjAxNDg3LDEsMS4wMDA1LC45OTk3MywxLjAwMDEyLDEuMDAwNDMsMSwuOTk5OTUsLjk5OTk0LDEuMDAwMzYsLjk5OTQ3LDEuMDAwMTksMS4wMDA2MywxLjAwMDI1LC45OTkyNCwxLjAwMDM2LC45OTk3MywxLjAwMDM2LDEuMDAwMjUsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjcsMS4wMDAxLDEuMDAwNjgsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEsMS4wMDAwOCwuOTk5NTcsLjk5OTcyLC45OTk0LC45OTk1NCwuOTk5NzUsMS4wMDA1MSwxLjAwMDAxLDEuMDAwMTksMS4wMDAwMSwxLjAwMDEsLjk5OTg2LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDM4LC45OTk1NCwuOTk5NTQsLjk5OTQsMS4wMDA2NiwuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDA1NCwxLjAwMDAxLC45OTk3NywxLjAwMDI2LC45OTk3NSwxLjAwMDEsMS4wMDAwMSwuOTk5OTMsLjk5OTUsLjk5OTU1LDEuMDAwMTYsLjk5OTc4LC45OTk3NCwxLjAwMDE5LDEuMDAwMjIsLjk5OTU1LDEuMDAwNTMsLjk5OTczLDEuMDAwODksMS4wMDAwNSwuOTk5NjcsMS4wMDA0OCwuOTk5NzMsMS4wMDAwMiwxLjAwMDM0LC45OTk3MywuOTk5NzMsLjk5OTY0LDEuMDAwMDYsMS4wMDA2NiwuOTk5NDcsLjk5OTczLC45ODg5NCwuOTk5NzMsMSwuNDQ4OTgsMSwuOTk5NDYsMSwxLjAwMDM5LDEuMDAwODIsLjk5OTkxLC45OTk5MSwuOTk5ODUsMS4wMDAyMiwxLjAwMDIzLDEuMDAwNjEsMS4wMDAwNiwuOTk5NjYsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDAxOSwxLjAwMDgsMSwuOTk5MjQsLjk5OTI0LC45OTkyNCwuOTk5ODMsMS4wMDA0NCwuOTk5NzMsLjk5OTY0LC45ODMzMiwxLC45OTk3MywxLDEsLjk5OTYyLC45OTg5NSwxLjAwMDE2LC45OTk3NywxLjAwMDE2LC45OTk3NywxLjAwMDE2LC45OTk3NywxLjAwMDAxLDEsMSwxLC45OTk3MywxLDEsLjk5OTU1LC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTkyNCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MiwxLDEsMS4wMDI2NywuOTk5OTksLjk5OTk4LC45OTk5OCwxLC45OTk5OCwxLjY2NDc1LDEsLjk5OTczLC45OTk3MywxLjAwMDIzLC45OTk3MywxLjAwNDIzLC45OTkyNSwuOTk5OTksMSwuOTk5OTEsLjk5OTg0LDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDA0OSwxLDEuMDAyNDUsMSwxLDEsMSwuOTYzMjksMSwxLjIwOTg1LDEuMzk3MTMsMS4wMDAwMywuODI1NCwxLjAwMDE1LDEsMS4wMDAzNSwxLjAwMDI3LDEuMDAwMzEsMS4wMDAzMSwxLjAwMDAzLDEuMDAwMzEsMS4wMDAzMSwuOTk5OTksMS4wMDAwMywuOTk5OTksLjk5OTk5LDEuNDExNDQsMS42LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MDU3OSwxLjQwNTc5LDEuMzY2MjUsLjk5OTk5LDEsLjk5ODYxLC45OTg2MSwxLDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk1MzE3LC45OTk5OSwuOTk5OTksLjk5OTk5LC45OTk5OSwxLjQwNDgzLDEsLjk5OTc3LDEuMDAwNTQsMSwxLC45OTk1MywuOTk5NjIsMS4wMDA0MiwuOTk5NSwxLDEsMSwxLDEsMSwxLDEsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sVHM9e2xpbmVIZWlnaHQ6MS4zNSxsaW5lR2FwOi4yfSxIcz1bLjc2MTE2LDEsMSwxLjAwMDYsMS4wMDA2LDEuMDAwMDYsLjk5OTczLC45OTk3MywuOTk5ODIsMS4wMDAwMSwxLjAwMDQzLC45OTk5OCwuOTk5OTgsLjk5OTU5LDEuMDAwMDMsMS4wMDA2LC45OTk5OCwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMSwxLjAwMDAzLDEuMDAwMDMsMS4wMDAwMywuOTk5NzMsLjk5OTg3LDEuMDAwMDEsMS4wMDAwMSwuOTk5NzcsLjk5OTc3LDEuMDAwMDEsMS4wMDAyNiwxLjAwMDIyLC45OTk3NywxLjAwMDYsMSwxLjAwMDAxLC45OTk3MywuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAwMSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMDEsMS4wMDAxNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NDksLjk5OTczLC45OTk5OCwuOTk5NzMsLjk5OTczLDEsLjk5OTczLC45OTk3MywxLjAwMDYsLjk5OTczLC45OTk3MywuOTk5MjQsLjk5OTI0LDEsLjk5OTI0LC45OTk5OSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDA2LC45OTk3MywxLC45OTk3NywxLDEsMSwxLjAwMDA1LDEuMDAwOSwxLjAwMDA1LDEuMDAwMDMsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDksLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk4LDEuMDAwNiwuOTk5OTgsMSwuOTk5MzYsLjk5OTczLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMjYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMSwuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTc3LC45OTk3NywxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAwMywxLjAwMDIyLC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5ODIsMSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjA2NDA5LDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEsLjk5OTczLDEsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEuMDQ1OTYsLjk5OTc3LC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTkyNCwxLjAwMDYsMS4wMDA2LDEuMDAwMTksMS4wMDAzNCwxLC45OTkyNCwxLjAwMDAxLDEsMSwuOTk5NzMsLjk5OTI0LC45OTk3MywuOTk5MjQsLjk5OTczLDEuMDI1NzIsLjk5OTczLDEuMDAwMDUsLjk5OTczLC45OTkyNCwuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5OTksLjk5OTgsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEsMS4wMDAxNiwuOTk5NzcsLjk5OTk4LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwuODQ1MzMsMS4wMDAyNiwxLjAwMDYsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDAxNiwuOTk5NzcsMS4wMDAwMSwxLDEuMDAwMDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDI2LDEsLjk5OTI0LC45OTk3MywxLjAwMDAxLC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwxLDEuMDAwMjYsMS4wMDA2LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTI4LDEsLjk5OTc3LDEuMDAwMTMsMS4wMDA1NSwuOTk5NDcsLjk5OTQ1LC45OTk0MSwuOTk5MjQsMS4wMDAwMSwxLjAwMDAxLDEuMDAwNCwuOTE2MjEsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwxLjAwMDAxLDEuMDAwMDUsLjk5OTk5LC45OTk3NywxLjAwMDE1LDEuMDAwMjIsLjk5OTc3LDEuMDAwMDEsLjk5OTczLDEuMDAwMjYsMS4wMDAwMSwxLjAwMDE5LDEuMDAwMDEsLjk5OTQ2LDEsMS4wMDA2LDEuMDAwMDEsLjk5OTc4LDEuMDAwNDUsLjk5OTczLC45OTkyNCwxLjAwMDIzLC45OTk3OCwuOTk5NjYsMSwxLjAwMDY1LDEuMDAwNDUsMS4wMDAxOSwuOTk5NzMsLjk5OTczLC45OTkyNCwxLDEsLjk2NDk5LDEsMS4wMDA1NSwuOTk5NzMsMS4wMDAwOCwxLjAwMDI3LDEsLjk5OTcsLjk5OTk1LDEuMDAwMjMsLjk5OTMzLDEuMDAwMTksMS4wMDAxNSwxLjAwMDMxLC45OTkyNCwxLjAwMDIzLC45OTk3MywxLjAwMDIzLDEuMDAwMzEsMS4wMDAwMSwuOTk5MjgsMS4wMDAyOSwxLjAwMDkyLDEuMDAwMzUsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEsLjk5OTg4LC45OTk3NSwxLDEuMDAwODIsLjk5NTYxLC45OTk2LDEuMDAwMzUsMS4wMDAwMSwuOTk5NjIsMS4wMDAwMSwxLjAwMDkyLC45OTk2NCwxLjAwMDAxLC45OTk2MywuOTk5OTksMS4wMDAzNSwxLjAwMDM1LDEuMDAwODIsLjk5OTYyLC45OTk5OSwuOTk5NzcsMS4wMDAyMiwxLjAwMDM1LDEuMDAwMDEsLjk5OTc3LDEuMDAwMjYsLjk5OTYsLjk5OTY3LDEuMDAwMDEsMS4wMDAzNCwxLjAwMDc0LDEuMDAwNTQsMS4wMDA1MywxLjAwMDYzLC45OTk3MSwuOTk5NjIsMS4wMDAzNSwuOTk5NzUsLjk5OTc3LC45OTk3MywxLjAwMDQzLC45OTk1MywxLjAwMDcsLjk5OTE1LC45OTk3MywxLjAwMDA4LC45OTg5MiwxLjAwMDczLDEuMDAwNzMsMS4wMDExNCwuOTk5MTUsMS4wMDA3MywuOTk5NTUsLjk5OTczLDEuMDAwOTIsLjk5OTczLDEsLjk5OTk4LDEsMS4wMDAzLDEsMS4wMDA0MywxLjAwMDAxLC45OTk2OSwxLjAwMDMsMSwxLjAwMDM1LDEuMDAwMDEsLjk5OTUsMSwxLjAwMDkyLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNywuOTk5NSwxLC45OTkyNCwxLjAwMDYsLjk5OTI0LC45OTk3MiwxLjAwMDYyLC45OTk3MywxLjAwMTE0LDEuMDAwNzMsMSwuOTk5NTUsMSwxLDEuMDAwNDcsLjk5OTY4LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMDEsMSwxLDEsLjk5OTczLDEsMSwuOTk5NTUsLjk5OTI0LC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTcyLDEsMSwxLjAwMjY3LC45OTk5OSwuOTk5OTgsLjk5OTk4LDEsLjk5OTk4LDEuNjY0NzUsMSwuOTk5NzMsLjk5OTczLDEuMDAwMjMsLjk5OTczLC45OTk3MSwuOTk5MjUsMS4wMDAyMywxLC45OTk5MSwuOTk5ODQsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLDEsMSwxLDEsMSwxLC45NjMyOSwxLDEuMjA5ODUsMS4zOTcxMywxLjAwMDAzLC44MjU0LDEuMDAwMTUsMSwxLjAwMDM1LDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLC45OTkxNSwxLjAwMDMxLDEuMDAwMzEsLjk5OTk5LDEuMDAwMDMsLjk5OTk5LC45OTk5OSwxLjQxMTQ0LDEuNiwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDA1NzksMS40MDU3OSwxLjM2NjI1LC45OTk5OSwxLC45OTg2MSwuOTk4NjEsMSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45NTMxNywuOTk5OTksLjk5OTk5LC45OTk5OSwuOTk5OTksMS40MDQ4MywxLC45OTk3NywxLjAwMDU0LDEsMSwuOTk5NTMsLjk5OTYyLDEuMDAwNDIsLjk5OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxPcz17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0sQnM9WzM2NSwwLDMzMywyNzgsMzMzLDQ3NCw1NTYsNTU2LDg4OSw3MjIsMjM4LDMzMywzMzMsMzg5LDU4NCwyNzgsMzMzLDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDMzMywzMzMsNTg0LDU4NCw1ODQsNjExLDk3NSw3MjIsNzIyLDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1NTYsNzIyLDYxMSw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDMzMywyNzgsMzMzLDU4NCw1NTYsMzMzLDU1Niw2MTEsNTU2LDYxMSw1NTYsMzMzLDYxMSw2MTEsMjc4LDI3OCw1NTYsMjc4LDg4OSw2MTEsNjExLDYxMSw2MTEsMzg5LDU1NiwzMzMsNjExLDU1Niw3NzgsNTU2LDU1Niw1MDAsMzg5LDI4MCwzODksNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjgwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTU2LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDcyMiw3MjIsNzIyLDcyMiw3MjIsNzIyLDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDYxMSw2MTEsNjExLDYxMSw2MTEsNjExLDYxMSw1NDksNjExLDYxMSw2MTEsNjExLDYxMSw1NTYsNjExLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw3MTksNzIyLDYxMSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsNzc4LDYxMSw3MjIsNjExLDcyMiw2MTEsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDc4NSw1NTYsNTU2LDI3OCw3MjIsNTU2LDU1Niw2MTEsMjc4LDYxMSwyNzgsNjExLDM4NSw2MTEsNDc5LDYxMSwyNzgsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzA4LDcyMyw2MTEsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsMWUzLDk0NCw3MjIsMzg5LDcyMiwzODksNzIyLDM4OSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDYxMSwzMzMsNjExLDQ3OSw2MTEsMzMzLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDk0NCw3NzgsNjY3LDU1Niw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjc4LDU1Niw3MjIsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTU2LDYxMSwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDQ2NSw3MjIsMzMzLDg1Myw5MDYsNDc0LDgyNSw5MjcsODM4LDI3OCw3MjIsNzIyLDYwMSw3MTksNjY3LDYxMSw3MjIsNzc4LDI3OCw3MjIsNjY3LDgzMyw3MjIsNjQ0LDc3OCw3MjIsNjY3LDYwMCw2MTEsNjY3LDgyMSw2NjcsODA5LDgwMiwyNzgsNjY3LDYxNSw0NTEsNjExLDI3OCw1ODIsNjE1LDYxMCw1NTYsNjA2LDQ3NSw0NjAsNjExLDU0MSwyNzgsNTU4LDU1Niw2MTIsNTU2LDQ0NSw2MTEsNzY2LDYxOSw1MjAsNjg0LDQ0Niw1ODIsNzE1LDU3Niw3NTMsODQ1LDI3OCw1ODIsNjExLDU4Miw4NDUsNjY3LDY2OSw4ODUsNTY3LDcxMSw2NjcsMjc4LDI3Niw1NTYsMTA5NCwxMDYyLDg3NSw2MTAsNzIyLDYyMiw3MTksNzIyLDcxOSw3MjIsNTY3LDcxMiw2NjcsOTA0LDYyNiw3MTksNzE5LDYxMCw3MDIsODMzLDcyMiw3NzgsNzE5LDY2Nyw3MjIsNjExLDYyMiw4NTQsNjY3LDczMCw3MDMsMTAwNSwxMDE5LDg3MCw5NzksNzE5LDcxMSwxMDMxLDcxOSw1NTYsNjE4LDYxNSw0MTcsNjM1LDU1Niw3MDksNDk3LDYxNSw2MTUsNTAwLDYzNSw3NDAsNjA0LDYxMSw2MDQsNjExLDU1Niw0OTAsNTU2LDg3NSw1NTYsNjE1LDU4MSw4MzMsODQ0LDcyOSw4NTQsNjE1LDU1Miw4NTQsNTgzLDU1Niw1NTYsNjExLDQxNyw1NTIsNTU2LDI3OCwyODEsMjc4LDk2OSw5MDYsNjExLDUwMCw2MTUsNTU2LDYwNCw3NzgsNjExLDQ4Nyw0NDcsOTQ0LDc3OCw5NDQsNzc4LDk0NCw3NzgsNjY3LDU1NiwzMzMsMzMzLDU1NiwxZTMsMWUzLDU1MiwyNzgsMjc4LDI3OCwyNzgsNTAwLDUwMCw1MDAsNTU2LDU1NiwzNTAsMWUzLDFlMywyNDAsNDc5LDMzMywzMzMsNjA0LDMzMywxNjcsMzk2LDU1Niw1NTYsMTA5NCw1NTYsODg1LDQ4OSwxMTE1LDFlMyw3NjgsNjAwLDgzNCw4MzQsODM0LDgzNCwxZTMsNTAwLDFlMyw1MDAsMWUzLDUwMCw1MDAsNDk0LDYxMiw4MjMsNzEzLDU4NCw1NDksNzEzLDk3OSw3MjIsMjc0LDU0OSw1NDksNTgzLDU0OSw1NDksNjA0LDU4NCw2MDQsNjA0LDcwOCw2MjUsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzI5LDYwNCw2MDQsMzU0LDM1NCwxZTMsOTkwLDk5MCw5OTAsOTkwLDQ5NCw2MDQsNjA0LDYwNCw2MDQsMzU0LDEwMjEsMTA1Miw5MTcsNzUwLDc1MCw1MzEsNjU2LDU5NCw1MTAsNTAwLDc1MCw3NTAsNjExLDYxMSwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDIyMiwyMjIsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzM10sUnM9Wy0xLC0xLC0xLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NSwyNTYsMjU3LDI1OCwyNTksMjYwLDI2MSwyNjIsMjYzLDI2NCwyNjUsMjY2LDI2NywyNjgsMjY5LDI3MCwyNzEsMjcyLDI3MywyNzQsMjc1LDI3NiwyNzcsMjc4LDI3OSwyODAsMjgxLDI4MiwyODMsMjg0LDI4NSwyODYsMjg3LDI4OCwyODksMjkwLDI5MSwyOTIsMjkzLDI5NCwyOTUsMjk2LDI5NywyOTgsMjk5LDMwMCwzMDEsMzAyLDMwMywzMDQsMzA1LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzE0LDMxNSwzMTYsMzE3LDMxOCwzMTksMzIwLDMyMSwzMjIsMzIzLDMyNCwzMjUsMzI2LDMyNywzMjgsMzI5LDMzMCwzMzEsMzMyLDMzMywzMzQsMzM1LDMzNiwzMzcsMzM4LDMzOSwzNDAsMzQxLDM0MiwzNDMsMzQ0LDM0NSwzNDYsMzQ3LDM0OCwzNDksMzUwLDM1MSwzNTIsMzUzLDM1NCwzNTUsMzU2LDM1NywzNTgsMzU5LDM2MCwzNjEsMzYyLDM2MywzNjQsMzY1LDM2NiwzNjcsMzY4LDM2OSwzNzAsMzcxLDM3MiwzNzMsMzc0LDM3NSwzNzYsMzc3LDM3OCwzNzksMzgwLDM4MSwzODIsMzgzLDQwMiw1MDYsNTA3LDUwOCw1MDksNTEwLDUxMSw1MzYsNTM3LDUzOCw1MzksNzEwLDcxMSw3MTMsNzI4LDcyOSw3MzAsNzMxLDczMiw3MzMsOTAwLDkwMSw5MDIsOTAzLDkwNCw5MDUsOTA2LDkwOCw5MTAsOTExLDkxMiw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsMTAyNCwxMDI1LDEwMjYsMTAyNywxMDI4LDEwMjksMTAzMCwxMDMxLDEwMzIsMTAzMywxMDM0LDEwMzUsMTAzNiwxMDM3LDEwMzgsMTAzOSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDExMDQsMTEwNSwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTExNywxMTE4LDExMTksMTEzOCwxMTM5LDExNjgsMTE2OSw3ODA4LDc4MDksNzgxMCw3ODExLDc4MTIsNzgxMyw3OTIyLDc5MjMsODIwOCw4MjA5LDgyMTEsODIxMiw4MjEzLDgyMTUsODIxNiw4MjE3LDgyMTgsODIxOSw4MjIwLDgyMjEsODIyMiw4MjI0LDgyMjUsODIyNiw4MjMwLDgyNDAsODI0Miw4MjQzLDgyNDksODI1MCw4MjUyLDgyNTQsODI2MCw4MzE5LDgzNTUsODM1Niw4MzU5LDgzNjQsODQ1Myw4NDY3LDg0NzAsODQ4Miw4NDg2LDg0OTQsODUzOSw4NTQwLDg1NDEsODU0Miw4NTkyLDg1OTMsODU5NCw4NTk1LDg1OTYsODU5Nyw4NjE2LDg3MDYsODcxMCw4NzE5LDg3MjEsODcyMiw4NzMwLDg3MzQsODczNSw4NzQ1LDg3NDcsODc3Niw4ODAwLDg4MDEsODgwNCw4ODA1LDg5NjIsODk3Niw4OTkyLDg5OTMsOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDkyLDk0OTYsOTUwMCw5NTA4LDk1MTYsOTUyNCw5NTMyLDk1NTIsOTU1Myw5NTU0LDk1NTUsOTU1Niw5NTU3LDk1NTgsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDk1NjQsOTU2NSw5NTY2LDk1NjcsOTU2OCw5NTY5LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksOTYzMiw5NjMzLDk2NDIsOTY0Myw5NjQ0LDk2NTAsOTY1OCw5NjYwLDk2NjgsOTY3NCw5Njc1LDk2NzksOTY4OCw5Njg5LDk3MDIsOTc4Niw5Nzg3LDk3ODgsOTc5Miw5Nzk0LDk4MjQsOTgyNyw5ODI5LDk4MzAsOTgzNCw5ODM1LDk4MzYsNjE0NDEsNjE0NDIsNjE0NDUsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTFdLERzPVszNjUsMCwzMzMsMjc4LDMzMyw0NzQsNTU2LDU1Niw4ODksNzIyLDIzOCwzMzMsMzMzLDM4OSw1ODQsMjc4LDMzMywyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1NiwzMzMsMzMzLDU4NCw1ODQsNTg0LDYxMSw5NzUsNzIyLDcyMiw3MjIsNzIyLDY2Nyw2MTEsNzc4LDcyMiwyNzgsNTU2LDcyMiw2MTEsODMzLDcyMiw3NzgsNjY3LDc3OCw3MjIsNjY3LDYxMSw3MjIsNjY3LDk0NCw2NjcsNjY3LDYxMSwzMzMsMjc4LDMzMyw1ODQsNTU2LDMzMyw1NTYsNjExLDU1Niw2MTEsNTU2LDMzMyw2MTEsNjExLDI3OCwyNzgsNTU2LDI3OCw4ODksNjExLDYxMSw2MTEsNjExLDM4OSw1NTYsMzMzLDYxMSw1NTYsNzc4LDU1Niw1NTYsNTAwLDM4OSwyODAsMzg5LDU4NCwzMzMsNTU2LDU1Niw1NTYsNTU2LDI4MCw1NTYsMzMzLDczNywzNzAsNTU2LDU4NCw3MzcsNTUyLDQwMCw1NDksMzMzLDMzMywzMzMsNTc2LDU1NiwyNzgsMzMzLDMzMywzNjUsNTU2LDgzNCw4MzQsODM0LDYxMSw3MjIsNzIyLDcyMiw3MjIsNzIyLDcyMiwxZTMsNzIyLDY2Nyw2NjcsNjY3LDY2NywyNzgsMjc4LDI3OCwyNzgsNzIyLDcyMiw3NzgsNzc4LDc3OCw3NzgsNzc4LDU4NCw3NzgsNzIyLDcyMiw3MjIsNzIyLDY2Nyw2NjcsNjExLDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDg4OSw1NTYsNTU2LDU1Niw1NTYsNTU2LDI3OCwyNzgsMjc4LDI3OCw2MTEsNjExLDYxMSw2MTEsNjExLDYxMSw2MTEsNTQ5LDYxMSw2MTEsNjExLDYxMSw2MTEsNTU2LDYxMSw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNzQwLDcyMiw2MTEsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDc3OCw2MTEsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsNzIyLDYxMSw3MjIsNjExLDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCw3ODIsNTU2LDU1NiwyNzgsNzIyLDU1Niw1NTYsNjExLDI3OCw2MTEsMjc4LDYxMSwzOTYsNjExLDQ3OSw2MTEsMjc4LDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcwOCw3MjMsNjExLDc3OCw2MTEsNzc4LDYxMSw3NzgsNjExLDFlMyw5NDQsNzIyLDM4OSw3MjIsMzg5LDcyMiwzODksNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2MTEsMzMzLDYxMSw0NzksNjExLDMzMyw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw5NDQsNzc4LDY2Nyw1NTYsNjY3LDYxMSw1MDAsNjExLDUwMCw2MTEsNTAwLDI3OCw1NTYsNzIyLDU1NiwxZTMsODg5LDc3OCw2MTEsNjY3LDU1Niw2MTEsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsNzIyLDMzMyw4NTQsOTA2LDQ3Myw4NDQsOTMwLDg0NywyNzgsNzIyLDcyMiw2MTAsNjcxLDY2Nyw2MTEsNzIyLDc3OCwyNzgsNzIyLDY2Nyw4MzMsNzIyLDY1Nyw3NzgsNzE4LDY2Nyw1OTAsNjExLDY2Nyw4MjIsNjY3LDgyOSw3ODEsMjc4LDY2Nyw2MjAsNDc5LDYxMSwyNzgsNTkxLDYyMCw2MjEsNTU2LDYxMCw0NzksNDkyLDYxMSw1NTgsMjc4LDU2Niw1NTYsNjAzLDU1Niw0NTAsNjExLDcxMiw2MDUsNTMyLDY2NCw0MDksNTkxLDcwNCw1NzgsNzczLDgzNCwyNzgsNTkxLDYxMSw1OTEsODM0LDY2Nyw2NjcsODg2LDYxNCw3MTksNjY3LDI3OCwyNzgsNTU2LDEwOTQsMTA0Miw4NTQsNjIyLDcxOSw2NzcsNzE5LDcyMiw3MDgsNzIyLDYxNCw3MjIsNjY3LDkyNyw2NDMsNzE5LDcxOSw2MTUsNjg3LDgzMyw3MjIsNzc4LDcxOSw2NjcsNzIyLDYxMSw2NzcsNzgxLDY2Nyw3MjksNzA4LDk3OSw5ODksODU0LDFlMyw3MDgsNzE5LDEwNDIsNzI5LDU1Niw2MTksNjA0LDUzNCw2MTgsNTU2LDczNiw1MTAsNjExLDYxMSw1MDcsNjIyLDc0MCw2MDQsNjExLDYxMSw2MTEsNTU2LDg4OSw1NTYsODg1LDU1Niw2NDYsNTgzLDg4OSw5MzUsNzA3LDg1NCw1OTQsNTUyLDg2NSw1ODksNTU2LDU1Niw2MTEsNDY5LDU2Myw1NTYsMjc4LDI3OCwyNzgsOTY5LDkwNiw2MTEsNTA3LDYxOSw1NTYsNjExLDc3OCw2MTEsNTc1LDQ2Nyw5NDQsNzc4LDk0NCw3NzgsOTQ0LDc3OCw2NjcsNTU2LDMzMywzMzMsNTU2LDFlMywxZTMsNTUyLDI3OCwyNzgsMjc4LDI3OCw1MDAsNTAwLDUwMCw1NTYsNTU2LDM1MCwxZTMsMWUzLDI0MCw0NzksMzMzLDMzMyw2MDQsMzMzLDE2NywzOTYsNTU2LDU1NiwxMTA0LDU1Niw4ODUsNTE2LDExNDYsMWUzLDc2OCw2MDAsODM0LDgzNCw4MzQsODM0LDk5OSw1MDAsMWUzLDUwMCwxZTMsNTAwLDUwMCw0OTQsNjEyLDgyMyw3MTMsNTg0LDU0OSw3MTMsOTc5LDcyMiwyNzQsNTQ5LDU0OSw1ODMsNTQ5LDU0OSw2MDQsNTg0LDYwNCw2MDQsNzA4LDYyNSw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MjksNjA0LDYwNCwzNTQsMzU0LDFlMyw5OTAsOTkwLDk5MCw5OTAsNDk0LDYwNCw2MDQsNjA0LDYwNCwzNTQsMTAyMSwxMDUyLDkxNyw3NTAsNzUwLDUzMSw2NTYsNTk0LDUxMCw1MDAsNzUwLDc1MCw2MTEsNjExLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMjIyLDIyMiwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzXSxNcz1bLTEsLTEsLTEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1LDI1NiwyNTcsMjU4LDI1OSwyNjAsMjYxLDI2MiwyNjMsMjY0LDI2NSwyNjYsMjY3LDI2OCwyNjksMjcwLDI3MSwyNzIsMjczLDI3NCwyNzUsMjc2LDI3NywyNzgsMjc5LDI4MCwyODEsMjgyLDI4MywyODQsMjg1LDI4NiwyODcsMjg4LDI4OSwyOTAsMjkxLDI5MiwyOTMsMjk0LDI5NSwyOTYsMjk3LDI5OCwyOTksMzAwLDMwMSwzMDIsMzAzLDMwNCwzMDUsMzA2LDMwNywzMDgsMzA5LDMxMCwzMTEsMzEyLDMxMywzMTQsMzE1LDMxNiwzMTcsMzE4LDMxOSwzMjAsMzIxLDMyMiwzMjMsMzI0LDMyNSwzMjYsMzI3LDMyOCwzMjksMzMwLDMzMSwzMzIsMzMzLDMzNCwzMzUsMzM2LDMzNywzMzgsMzM5LDM0MCwzNDEsMzQyLDM0MywzNDQsMzQ1LDM0NiwzNDcsMzQ4LDM0OSwzNTAsMzUxLDM1MiwzNTMsMzU0LDM1NSwzNTYsMzU3LDM1OCwzNTksMzYwLDM2MSwzNjIsMzYzLDM2NCwzNjUsMzY2LDM2NywzNjgsMzY5LDM3MCwzNzEsMzcyLDM3MywzNzQsMzc1LDM3NiwzNzcsMzc4LDM3OSwzODAsMzgxLDM4MiwzODMsNDAyLDUwNiw1MDcsNTA4LDUwOSw1MTAsNTExLDUzNiw1MzcsNTM4LDUzOSw3MTAsNzExLDcxMyw3MjgsNzI5LDczMCw3MzEsNzMyLDczMyw5MDAsOTAxLDkwMiw5MDMsOTA0LDkwNSw5MDYsOTA4LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LDkzOCw5MzksOTQwLDk0MSw5NDIsOTQzLDk0NCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Miw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksOTcwLDk3MSw5NzIsOTczLDk3NCwxMDI0LDEwMjUsMTAyNiwxMDI3LDEwMjgsMTAyOSwxMDMwLDEwMzEsMTAzMiwxMDMzLDEwMzQsMTAzNSwxMDM2LDEwMzcsMTAzOCwxMDM5LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDMsMTEwNCwxMTA1LDExMDYsMTEwNywxMTA4LDExMDksMTExMCwxMTExLDExMTIsMTExMywxMTE0LDExMTUsMTExNiwxMTE3LDExMTgsMTExOSwxMTM4LDExMzksMTE2OCwxMTY5LDc4MDgsNzgwOSw3ODEwLDc4MTEsNzgxMiw3ODEzLDc5MjIsNzkyMyw4MjA4LDgyMDksODIxMSw4MjEyLDgyMTMsODIxNSw4MjE2LDgyMTcsODIxOCw4MjE5LDgyMjAsODIyMSw4MjIyLDgyMjQsODIyNSw4MjI2LDgyMzAsODI0MCw4MjQyLDgyNDMsODI0OSw4MjUwLDgyNTIsODI1NCw4MjYwLDgzMTksODM1NSw4MzU2LDgzNTksODM2NCw4NDUzLDg0NjcsODQ3MCw4NDgyLDg0ODYsODQ5NCw4NTM5LDg1NDAsODU0MSw4NTQyLDg1OTIsODU5Myw4NTk0LDg1OTUsODU5Niw4NTk3LDg2MTYsODcwNiw4NzEwLDg3MTksODcyMSw4NzIyLDg3MzAsODczNCw4NzM1LDg3NDUsODc0Nyw4Nzc2LDg4MDAsODgwMSw4ODA0LDg4MDUsODk2Miw4OTc2LDg5OTIsODk5Myw5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTIsOTQ5Niw5NTAwLDk1MDgsOTUxNiw5NTI0LDk1MzIsOTU1Miw5NTUzLDk1NTQsOTU1NSw5NTU2LDk1NTcsOTU1OCw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsOTU2NCw5NTY1LDk1NjYsOTU2Nyw5NTY4LDk1NjksOTU3MCw5NTcxLDk1NzIsOTU3Myw5NTc0LDk1NzUsOTU3Niw5NTc3LDk1NzgsOTU3OSw5NTgwLDk2MDAsOTYwNCw5NjA4LDk2MTIsOTYxNiw5NjE3LDk2MTgsOTYxOSw5NjMyLDk2MzMsOTY0Miw5NjQzLDk2NDQsOTY1MCw5NjU4LDk2NjAsOTY2OCw5Njc0LDk2NzUsOTY3OSw5Njg4LDk2ODksOTcwMiw5Nzg2LDk3ODcsOTc4OCw5NzkyLDk3OTQsOTgyNCw5ODI3LDk4MjksOTgzMCw5ODM0LDk4MzUsOTgzNiw2MTQ0MSw2MTQ0Miw2MTQ0NSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMV0sRXM9WzM2NSwwLDMzMywyNzgsMjc4LDM1NSw1NTYsNTU2LDg4OSw2NjcsMTkxLDMzMywzMzMsMzg5LDU4NCwyNzgsMzMzLDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDI3OCwyNzgsNTg0LDU4NCw1ODQsNTU2LDEwMTUsNjY3LDY2Nyw3MjIsNzIyLDY2Nyw2MTEsNzc4LDcyMiwyNzgsNTAwLDY2Nyw1NTYsODMzLDcyMiw3NzgsNjY3LDc3OCw3MjIsNjY3LDYxMSw3MjIsNjY3LDk0NCw2NjcsNjY3LDYxMSwyNzgsMjc4LDI3OCw0NjksNTU2LDMzMyw1NTYsNTU2LDUwMCw1NTYsNTU2LDI3OCw1NTYsNTU2LDIyMiwyMjIsNTAwLDIyMiw4MzMsNTU2LDU1Niw1NTYsNTU2LDMzMyw1MDAsMjc4LDU1Niw1MDAsNzIyLDUwMCw1MDAsNTAwLDMzNCwyNjAsMzM0LDU4NCwzMzMsNTU2LDU1Niw1NTYsNTU2LDI2MCw1NTYsMzMzLDczNywzNzAsNTU2LDU4NCw3MzcsNTUyLDQwMCw1NDksMzMzLDMzMywzMzMsNTc2LDUzNywyNzgsMzMzLDMzMywzNjUsNTU2LDgzNCw4MzQsODM0LDYxMSw2NjcsNjY3LDY2Nyw2NjcsNjY3LDY2NywxZTMsNzIyLDY2Nyw2NjcsNjY3LDY2NywyNzgsMjc4LDI3OCwyNzgsNzIyLDcyMiw3NzgsNzc4LDc3OCw3NzgsNzc4LDU4NCw3NzgsNzIyLDcyMiw3MjIsNzIyLDY2Nyw2NjcsNjExLDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDg4OSw1MDAsNTU2LDU1Niw1NTYsNTU2LDI3OCwyNzgsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTQ5LDYxMSw1NTYsNTU2LDU1Niw1NTYsNTAwLDU1Niw1MDAsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzIyLDUwMCw3MjIsNTAwLDcyMiw1MDAsNzIyLDUwMCw3MjIsNjI1LDcyMiw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDc3OCw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzIyLDU1Niw3MjIsNTU2LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyMjIsMjc4LDI3OCw3MzMsNDQ0LDUwMCwyMjIsNjY3LDUwMCw1MDAsNTU2LDIyMiw1NTYsMjIyLDU1NiwyODEsNTU2LDQwMCw1NTYsMjIyLDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDYxNSw3MjMsNTU2LDc3OCw1NTYsNzc4LDU1Niw3NzgsNTU2LDFlMyw5NDQsNzIyLDMzMyw3MjIsMzMzLDcyMiwzMzMsNjY3LDUwMCw2NjcsNTAwLDY2Nyw1MDAsNjY3LDUwMCw2MTEsMjc4LDYxMSwzNTQsNjExLDI3OCw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw5NDQsNzIyLDY2Nyw1MDAsNjY3LDYxMSw1MDAsNjExLDUwMCw2MTEsNTAwLDIyMiw1NTYsNjY3LDU1NiwxZTMsODg5LDc3OCw2MTEsNjY3LDUwMCw2MTEsMjc4LDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsNjY3LDI3OCw3ODksODQ2LDM4OSw3OTQsODY1LDc3NSwyMjIsNjY3LDY2Nyw1NzAsNjcxLDY2Nyw2MTEsNzIyLDc3OCwyNzgsNjY3LDY2Nyw4MzMsNzIyLDY0OCw3NzgsNzI1LDY2Nyw2MDAsNjExLDY2Nyw4MzcsNjY3LDgzMSw3NjEsMjc4LDY2Nyw1NzAsNDM5LDU1NSwyMjIsNTUwLDU3MCw1NzEsNTAwLDU1Niw0MzksNDYzLDU1NSw1NDIsMjIyLDUwMCw0OTIsNTQ4LDUwMCw0NDcsNTU2LDY3MCw1NzMsNDg2LDYwMywzNzQsNTUwLDY1Miw1NDYsNzI4LDc3OSwyMjIsNTUwLDU1Niw1NTAsNzc5LDY2Nyw2NjcsODQzLDU0NCw3MDgsNjY3LDI3OCwyNzgsNTAwLDEwNjYsOTgyLDg0NCw1ODksNzE1LDYzOSw3MjQsNjY3LDY1MSw2NjcsNTQ0LDcwNCw2NjcsOTE3LDYxNCw3MTUsNzE1LDU4OSw2ODYsODMzLDcyMiw3NzgsNzI1LDY2Nyw3MjIsNjExLDYzOSw3OTUsNjY3LDcyNyw2NzMsOTIwLDkyMyw4MDUsODg2LDY1MSw2OTQsMTAyMiw2ODIsNTU2LDU2Miw1MjIsNDkzLDU1Myw1NTYsNjg4LDQ2NSw1NTYsNTU2LDQ3Miw1NjQsNjg2LDU1MCw1NTYsNTU2LDU1Niw1MDAsODMzLDUwMCw4MzUsNTAwLDU3Miw1MTgsODMwLDg1MSw2MjEsNzM2LDUyNiw0OTIsNzUyLDUzNCw1NTYsNTU2LDU1NiwzNzgsNDk2LDUwMCwyMjIsMjIyLDIyMiw5MTAsODI4LDU1Niw0NzIsNTY1LDUwMCw1NTYsNzc4LDU1Niw0OTIsMzM5LDk0NCw3MjIsOTQ0LDcyMiw5NDQsNzIyLDY2Nyw1MDAsMzMzLDMzMyw1NTYsMWUzLDFlMyw1NTIsMjIyLDIyMiwyMjIsMjIyLDMzMywzMzMsMzMzLDU1Niw1NTYsMzUwLDFlMywxZTMsMTg4LDM1NCwzMzMsMzMzLDUwMCwzMzMsMTY3LDM2NSw1NTYsNTU2LDEwOTQsNTU2LDg4NSwzMjMsMTA4MywxZTMsNzY4LDYwMCw4MzQsODM0LDgzNCw4MzQsMWUzLDUwMCw5OTgsNTAwLDFlMyw1MDAsNTAwLDQ5NCw2MTIsODIzLDcxMyw1ODQsNTQ5LDcxMyw5NzksNzE5LDI3NCw1NDksNTQ5LDU4NCw1NDksNTQ5LDYwNCw1ODQsNjA0LDYwNCw3MDgsNjI1LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcyOSw2MDQsNjA0LDM1NCwzNTQsMWUzLDk5MCw5OTAsOTkwLDk5MCw0OTQsNjA0LDYwNCw2MDQsNjA0LDM1NCwxMDIxLDEwNTIsOTE3LDc1MCw3NTAsNTMxLDY1Niw1OTQsNTEwLDUwMCw3NTAsNzUwLDUwMCw1MDAsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywyMjIsMjIyLDI5NCwyOTQsMzI0LDMyNCwzMTYsMzI4LDM5OCwyODVdLE5zPVstMSwtMSwtMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2MywyNjQsMjY1LDI2NiwyNjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3LDI3OCwyNzksMjgwLDI4MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEsMjkyLDI5MywyOTQsMjk1LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMyMCwzMjEsMzIyLDMyMywzMjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0LDMzNSwzMzYsMzM3LDMzOCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgsMzQ5LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2MiwzNjMsMzY0LDM2NSwzNjYsMzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3NywzNzgsMzc5LDM4MCwzODEsMzgyLDM4Myw0MDIsNTA2LDUwNyw1MDgsNTA5LDUxMCw1MTEsNTM2LDUzNyw1MzgsNTM5LDcxMCw3MTEsNzEzLDcyOCw3MjksNzMwLDczMSw3MzIsNzMzLDkwMCw5MDEsOTAyLDkwMyw5MDQsOTA1LDkwNiw5MDgsOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LDEwMjQsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTAzNywxMDM4LDEwMzksMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMywxMTA0LDExMDUsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTcsMTExOCwxMTE5LDExMzgsMTEzOSwxMTY4LDExNjksNzgwOCw3ODA5LDc4MTAsNzgxMSw3ODEyLDc4MTMsNzkyMiw3OTIzLDgyMDgsODIwOSw4MjExLDgyMTIsODIxMyw4MjE1LDgyMTYsODIxNyw4MjE4LDgyMTksODIyMCw4MjIxLDgyMjIsODIyNCw4MjI1LDgyMjYsODIzMCw4MjQwLDgyNDIsODI0Myw4MjQ5LDgyNTAsODI1Miw4MjU0LDgyNjAsODMxOSw4MzU1LDgzNTYsODM1OSw4MzY0LDg0NTMsODQ2Nyw4NDcwLDg0ODIsODQ4Niw4NDk0LDg1MzksODU0MCw4NTQxLDg1NDIsODU5Miw4NTkzLDg1OTQsODU5NSw4NTk2LDg1OTcsODYxNiw4NzA2LDg3MTAsODcxOSw4NzIxLDg3MjIsODczMCw4NzM0LDg3MzUsODc0NSw4NzQ3LDg3NzYsODgwMCw4ODAxLDg4MDQsODgwNSw4OTYyLDg5NzYsODk5Miw4OTkzLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NTUyLDk1NTMsOTU1NCw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDk2MzIsOTYzMyw5NjQyLDk2NDMsOTY0NCw5NjUwLDk2NTgsOTY2MCw5NjY4LDk2NzQsOTY3NSw5Njc5LDk2ODgsOTY4OSw5NzAyLDk3ODYsOTc4Nyw5Nzg4LDk3OTIsOTc5NCw5ODI0LDk4MjcsOTgyOSw5ODMwLDk4MzQsOTgzNSw5ODM2LDYxNDQxLDYxNDQyLDYxNDQ1LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xXSx6cz1bMzY1LDAsMzMzLDI3OCwyNzgsMzU1LDU1Niw1NTYsODg5LDY2NywxOTEsMzMzLDMzMywzODksNTg0LDI3OCwzMzMsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCw1ODQsNTg0LDU4NCw1NTYsMTAxNSw2NjcsNjY3LDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1MDAsNjY3LDU1Niw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDI3OCwyNzgsMjc4LDQ2OSw1NTYsMzMzLDU1Niw1NTYsNTAwLDU1Niw1NTYsMjc4LDU1Niw1NTYsMjIyLDIyMiw1MDAsMjIyLDgzMyw1NTYsNTU2LDU1Niw1NTYsMzMzLDUwMCwyNzgsNTU2LDUwMCw3MjIsNTAwLDUwMCw1MDAsMzM0LDI2MCwzMzQsNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjYwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTM3LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDY2Nyw2NjcsNjY3LDY2Nyw2NjcsNjY3LDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDUwMCw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NDksNjExLDU1Niw1NTYsNTU2LDU1Niw1MDAsNTU2LDUwMCw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw3MjIsNTAwLDcyMiw1MDAsNzIyLDUwMCw3MjIsNTAwLDcyMiw2MTUsNzIyLDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzc4LDU1Niw3MjIsNTU2LDcyMiw1NTYsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDIyMiwyNzgsMjc4LDczNSw0NDQsNTAwLDIyMiw2NjcsNTAwLDUwMCw1NTYsMjIyLDU1NiwyMjIsNTU2LDI5Miw1NTYsMzM0LDU1NiwyMjIsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNjA0LDcyMyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsMWUzLDk0NCw3MjIsMzMzLDcyMiwzMzMsNzIyLDMzMyw2NjcsNTAwLDY2Nyw1MDAsNjY3LDUwMCw2NjcsNTAwLDYxMSwyNzgsNjExLDM3NSw2MTEsMjc4LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDk0NCw3MjIsNjY3LDUwMCw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjIyLDU1Niw2NjcsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTAwLDYxMSwyNzgsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMyw2NjcsMjc4LDc4NCw4MzgsMzg0LDc3NCw4NTUsNzUyLDIyMiw2NjcsNjY3LDU1MSw2NjgsNjY3LDYxMSw3MjIsNzc4LDI3OCw2NjcsNjY4LDgzMyw3MjIsNjUwLDc3OCw3MjIsNjY3LDYxOCw2MTEsNjY3LDc5OCw2NjcsODM1LDc0OCwyNzgsNjY3LDU3OCw0NDYsNTU2LDIyMiw1NDcsNTc4LDU3NSw1MDAsNTU3LDQ0Niw0NDEsNTU2LDU1NiwyMjIsNTAwLDUwMCw1NzYsNTAwLDQ0OCw1NTYsNjkwLDU2OSw0ODIsNjE3LDM5NSw1NDcsNjQ4LDUyNSw3MTMsNzgxLDIyMiw1NDcsNTU2LDU0Nyw3ODEsNjY3LDY2Nyw4NjUsNTQyLDcxOSw2NjcsMjc4LDI3OCw1MDAsMTA1NywxMDEwLDg1NCw1ODMsNzIyLDYzNSw3MTksNjY3LDY1Niw2NjcsNTQyLDY3Nyw2NjcsOTIzLDYwNCw3MTksNzE5LDU4Myw2NTYsODMzLDcyMiw3NzgsNzE5LDY2Nyw3MjIsNjExLDYzNSw3NjAsNjY3LDc0MCw2NjcsOTE3LDkzOCw3OTIsODg1LDY1Niw3MTksMTAxMCw3MjIsNTU2LDU3Myw1MzEsMzY1LDU4Myw1NTYsNjY5LDQ1OCw1NTksNTU5LDQzOCw1ODMsNjg4LDU1Miw1NTYsNTQyLDU1Niw1MDAsNDU4LDUwMCw4MjMsNTAwLDU3Myw1MjEsODAyLDgyMyw2MjUsNzE5LDUyMSw1MTAsNzUwLDU0Miw1NTYsNTU2LDU1NiwzNjUsNTEwLDUwMCwyMjIsMjc4LDIyMiw5MDYsODEyLDU1Niw0MzgsNTU5LDUwMCw1NTIsNzc4LDU1Niw0ODksNDExLDk0NCw3MjIsOTQ0LDcyMiw5NDQsNzIyLDY2Nyw1MDAsMzMzLDMzMyw1NTYsMWUzLDFlMyw1NTIsMjIyLDIyMiwyMjIsMjIyLDMzMywzMzMsMzMzLDU1Niw1NTYsMzUwLDFlMywxZTMsMTg4LDM1NCwzMzMsMzMzLDUwMCwzMzMsMTY3LDM2NSw1NTYsNTU2LDEwOTQsNTU2LDg4NSwzMjMsMTA3MywxZTMsNzY4LDYwMCw4MzQsODM0LDgzNCw4MzQsMWUzLDUwMCwxZTMsNTAwLDFlMyw1MDAsNTAwLDQ5NCw2MTIsODIzLDcxMyw1ODQsNTQ5LDcxMyw5NzksNzE5LDI3NCw1NDksNTQ5LDU4Myw1NDksNTQ5LDYwNCw1ODQsNjA0LDYwNCw3MDgsNjI1LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcyOSw2MDQsNjA0LDM1NCwzNTQsMWUzLDk5MCw5OTAsOTkwLDk5MCw0OTQsNjA0LDYwNCw2MDQsNjA0LDM1NCwxMDIxLDEwNTIsOTE3LDc1MCw3NTAsNTMxLDY1Niw1OTQsNTEwLDUwMCw3NTAsNzUwLDUwMCw1MDAsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywyMjIsMjIyLDI5NCwyOTQsMzI0LDMyNCwzMTYsMzI4LDM5OCwyODVdLExzPVstMSwtMSwtMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2MywyNjQsMjY1LDI2NiwyNjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3LDI3OCwyNzksMjgwLDI4MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEsMjkyLDI5MywyOTQsMjk1LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMyMCwzMjEsMzIyLDMyMywzMjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0LDMzNSwzMzYsMzM3LDMzOCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgsMzQ5LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2MiwzNjMsMzY0LDM2NSwzNjYsMzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3NywzNzgsMzc5LDM4MCwzODEsMzgyLDM4Myw0MDIsNTA2LDUwNyw1MDgsNTA5LDUxMCw1MTEsNTM2LDUzNyw1MzgsNTM5LDcxMCw3MTEsNzEzLDcyOCw3MjksNzMwLDczMSw3MzIsNzMzLDkwMCw5MDEsOTAyLDkwMyw5MDQsOTA1LDkwNiw5MDgsOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LDEwMjQsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTAzNywxMDM4LDEwMzksMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMywxMTA0LDExMDUsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTcsMTExOCwxMTE5LDExMzgsMTEzOSwxMTY4LDExNjksNzgwOCw3ODA5LDc4MTAsNzgxMSw3ODEyLDc4MTMsNzkyMiw3OTIzLDgyMDgsODIwOSw4MjExLDgyMTIsODIxMyw4MjE1LDgyMTYsODIxNyw4MjE4LDgyMTksODIyMCw4MjIxLDgyMjIsODIyNCw4MjI1LDgyMjYsODIzMCw4MjQwLDgyNDIsODI0Myw4MjQ5LDgyNTAsODI1Miw4MjU0LDgyNjAsODMxOSw4MzU1LDgzNTYsODM1OSw4MzY0LDg0NTMsODQ2Nyw4NDcwLDg0ODIsODQ4Niw4NDk0LDg1MzksODU0MCw4NTQxLDg1NDIsODU5Miw4NTkzLDg1OTQsODU5NSw4NTk2LDg1OTcsODYxNiw4NzA2LDg3MTAsODcxOSw4NzIxLDg3MjIsODczMCw4NzM0LDg3MzUsODc0NSw4NzQ3LDg3NzYsODgwMCw4ODAxLDg4MDQsODgwNSw4OTYyLDg5NzYsODk5Miw4OTkzLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NTUyLDk1NTMsOTU1NCw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDk2MzIsOTYzMyw5NjQyLDk2NDMsOTY0NCw5NjUwLDk2NTgsOTY2MCw5NjY4LDk2NzQsOTY3NSw5Njc5LDk2ODgsOTY4OSw5NzAyLDk3ODYsOTc4Nyw5Nzg4LDk3OTIsOTc5NCw5ODI0LDk4MjcsOTgyOSw5ODMwLDk4MzQsOTgzNSw5ODM2LDYxNDQxLDYxNDQyLDYxNDQ1LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xXSxVcz1bMS4zNjg5OCwxLDEsLjcyNzA2LC44MDQ3OSwuODM3MzQsLjk4ODk0LC45OTc5MywuOTg5NywuOTM4ODQsLjg2MjA5LC45NDI5MiwuOTQyOTIsMS4xNjY2MSwxLjAyMDU4LC45MzU4MiwuOTY2OTQsLjkzNTgyLDEuMTkxMzcsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC43ODA3NiwuNzgwNzYsMS4wMjA1OCwxLjAyMDU4LDEuMDIwNTgsLjcyODUxLC43ODk2NiwuOTA4MzgsLjgzNjM3LC44MjM5MSwuOTYzNzYsLjgwMDYxLC44NjI3NSwuODc2OCwuOTU0MDcsMS4wMjU4LC43MzkwMSwuODUwMjIsLjgzNjU1LDEuMDE1NiwuOTU1NDYsLjkyMTc5LC44NzEwNywuOTIxNzksLjgyMTE0LC44MDk2LC44OTcxMywuOTQ0MzgsLjk1MzUzLC45NDA4MywuOTE5MDUsLjkwNDA2LC45NDQ2LC45NDI5MiwxLjE4Nzc3LC45NDI5MiwxLjAyMDU4LC44OTkwMywuOTAwODgsLjk0OTM4LC45Nzg5OCwuODEwOTMsLjk3NTcxLC45NDkzOCwxLjAyNCwuOTU3NywuOTU5MzMsLjk4NjIxLDEuMDQ3NCwuOTc0NTUsLjk4OTgxLC45NjcyLC45NTkzMywuOTQ0NiwuOTc4OTgsLjk3NDA3LC45NzY0NiwuNzgwMzYsMS4xMDIwOCwuOTU0NDIsLjk1Mjk4LC45NzU3OSwuOTMzMiwuOTQwMzksLjkzOCwuODA2ODcsMS4wMTE0OSwuODA2ODcsMS4wMjA1OCwuODA0NzksLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLDEuMDExNDksMS4wMDg3MiwuOTAwODgsLjkxODgyLDEuMDIxMywuODM2MSwxLjAyMDU4LC42MjI5NSwuNTQzMjQsLjg5MDIyLDEuMDg1OTUsMSwxLC45MDA4OCwxLC45NzQ1NSwuOTM1ODIsLjkwMDg4LDEsMS4wNTY4NiwuODM2MSwuOTk2NDIsLjk5NjQyLC45OTY0MiwuNzI4NTEsLjkwODM4LC45MDgzOCwuOTA4MzgsLjkwODM4LC45MDgzOCwuOTA4MzgsLjg2OCwuODIzOTEsLjgwMDYxLC44MDA2MSwuODAwNjEsLjgwMDYxLDEuMDI1OCwxLjAyNTgsMS4wMjU4LDEuMDI1OCwuOTc0ODQsLjk1NTQ2LC45MjE3OSwuOTIxNzksLjkyMTc5LC45MjE3OSwuOTIxNzksMS4wMjA1OCwuOTIxNzksLjk0NDM4LC45NDQzOCwuOTQ0MzgsLjk0NDM4LC45MDQwNiwuODY5NTgsLjk4MjI1LC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45MDMxLC44MTA5MywuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjk4NjIxLC45ODYyMSwuOTg2MjEsLjk4NjIxLC45Mzk2OSwuOTU5MzMsLjk0NDYsLjk0NDYsLjk0NDYsLjk0NDYsLjk0NDYsMS4wODU5NSwuOTQ0NiwuOTU0NDIsLjk1NDQyLC45NTQ0MiwuOTU0NDIsLjk0MDM5LC45Nzg5OCwuOTQwMzksLjkwODM4LC45NDkzOCwuOTA4MzgsLjk0OTM4LC45MDgzOCwuOTQ5MzgsLjgyMzkxLC44MTA5MywuODIzOTEsLjgxMDkzLC44MjM5MSwuODEwOTMsLjgyMzkxLC44MTA5MywuOTYzNzYsLjg0MzEzLC45NzQ4NCwuOTc1NzEsLjgwMDYxLC45NDkzOCwuODAwNjEsLjk0OTM4LC44MDA2MSwuOTQ5MzgsLjgwMDYxLC45NDkzOCwuODAwNjEsLjk0OTM4LC44NzY4LC45NTc3LC44NzY4LC45NTc3LC44NzY4LC45NTc3LDEsMSwuOTU0MDcsLjk1OTMzLC45NzA2OSwuOTU5MzMsMS4wMjU4LC45ODYyMSwxLjAyNTgsLjk4NjIxLDEuMDI1OCwuOTg2MjEsMS4wMjU4LC45ODYyMSwxLjAyNTgsLjk4NjIxLC44ODcsMS4wMTU5MSwuNzM5MDEsMS4wNDc0LDEsMSwuOTc0NTUsLjgzNjU1LC45ODk4MSwxLDEsLjgzNjU1LC43Mzk3NywuODM2NTUsLjczOTAzLC44NDYzOCwxLjAzMywuOTU1NDYsLjk1OTMzLDEsMSwuOTU1NDYsLjk1OTMzLC44MjcxLC45NTQxNywuOTU5MzMsLjkyMTc5LC45NDQ2LC45MjE3OSwuOTQ0NiwuOTIxNzksLjk0NDYsLjkzNiwuOTE5NjQsLjgyMTE0LC45NzY0NiwxLDEsLjgyMTE0LC45NzY0NiwuODA5NiwuNzgwMzYsLjgwOTYsLjc4MDM2LDEsMSwuODA5NiwuNzgwMzYsMSwxLC44OTcxMywuNzc0NTIsLjg5NzEzLDEuMTAyMDgsLjk0NDM4LC45NTQ0MiwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0NDM4LC45NTQ0MiwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0MDgzLC45NzU3OSwuOTA0MDYsLjk0MDM5LC45MDQwNiwuOTQ0NiwuOTM4LC45NDQ2LC45MzgsLjk0NDYsLjkzOCwxLC45OTc5MywuOTA4MzgsLjk0OTM4LC44NjgsLjkwMzEsLjkyMTc5LC45NDQ2LDEsMSwuODk3MTMsMS4xMDIwOCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTA5ODksLjkzNTgsLjkxOTQ1LC44MzE4MSwuNzUyNjEsLjg3OTkyLC44Mjk3NiwuOTYwMzQsLjgzNjg5LC45NzI2OCwxLjAwNzgsLjkwODM4LC44MzYzNywuODAxOSwuOTAxNTcsLjgwMDYxLC45NDQ2LC45NTQwNywuOTI0MzYsMS4wMjU4LC44NTAyMiwuOTcxNTMsMS4wMTU2LC45NTU0NiwuODkxOTIsLjkyMTc5LC45MjM2MSwuODcxMDcsLjk2MzE4LC44OTcxMywuOTM3MDQsLjk1NjM4LC45MTkwNSwuOTE3MDksLjkyNzk2LDEuMDI1OCwuOTM3MDQsLjk0ODM2LDEuMDM3MywuOTU5MzMsMS4wMDc4LC45NTg3MSwuOTQ4MzYsLjk2MTc0LC45MjYwMSwuOTQ5OCwuOTg2MDcsLjk1Nzc2LC45NTkzMywxLjA1NDUzLDEuMDA3OCwuOTgyNzUsLjkzMTQsLjk1NjE3LC45MTcwMSwxLjA1OTkzLC45NDQ2LC43ODM2NywuOTU1MywxLC44NjgzMiwxLjAxMjgsLjk1ODcxLC45OTM5NCwuODc1NDgsLjk2MzYxLC44Njc3NCwxLjAwNzgsLjk1ODcxLC45NDQ2LC45NTg3MSwuODY3NzQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTQwODMsLjk3NTc5LC45NDA4MywuOTc1NzksLjk0MDgzLC45NzU3OSwuOTA0MDYsLjk0MDM5LC45NjY5NCwxLC44OTkwMywxLDEsMSwuOTM1ODIsLjkzNTgyLC45MzU4MiwxLC45MDgsLjkwOCwuOTE4LC45NDIxOSwuOTQyMTksLjk2NTQ0LDEsMS4yODUsMSwxLC44MTA3OSwuODEwNzksMSwxLC43NDg1NCwxLDEsMSwxLC45OTc5MywxLDEsMSwuNjUsMSwxLjM2MTQ1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjE3MTczLDEsLjgwNTM1LC43NjE2OSwxLjAyMDU4LDEuMDczMiwxLjA1NDg2LDEsMSwxLjMwNjkyLDEuMDg1OTUsMS4wODU5NSwxLDEuMDg1OTUsMS4wODU5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMTYxNjEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sX3M9e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LFhzPVsxLjM2ODk4LDEsMSwuNjYyMjcsLjgwNzc5LC44MTYyNSwuOTcyNzYsLjk3Mjc2LC45NzczMywuOTIyMjIsLjgzMjY2LC45NDI5MiwuOTQyOTIsMS4xNjE0OCwxLjAyMDU4LC45MzU4MiwuOTY2OTQsLjkzNTgyLDEuMTczMzcsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC43ODA3NiwuNzgwNzYsMS4wMjA1OCwxLjAyMDU4LDEuMDIwNTgsLjcxNTQxLC43NjgxMywuODU1NzYsLjgwNTkxLC44MDcyOSwuOTQyOTksLjc3NTEyLC44MzY1NSwuODY1MjMsLjkyMjIyLC45ODYyMSwuNzE3NDMsLjgxNjk4LC43OTcyNiwuOTg1NTgsLjkyMjIyLC45MDYzNywuODM4MDksLjkwNjM3LC44MDcyOSwuNzY0NjMsLjg2Mjc1LC45MDY5OSwuOTE2MDUsLjkxNTQsLjg1MzA4LC44NTQ1OCwuOTA1MzEsLjk0MjkyLDEuMjEyOTYsLjk0MjkyLDEuMDIwNTgsLjg5OTAzLDEuMTg2MTYsLjk5NjEzLC45MTY3NywuNzgyMTYsLjkxNjc3LC45MDA4MywuOTg3OTYsLjkxMzUsLjkyMTY4LC45NTM4MSwuOTg5ODEsLjk1Mjk4LC45NTM4MSwuOTM0NTksLjkyMTY4LC45MTUxMywuOTIwMDQsLjkxNjc3LC45NTA3NywuNzQ4LDEuMDQ1MDIsLjkxNjc3LC45MjA2MSwuOTQyMzYsLjg5NTQ0LC44OTM2NCwuOSwuODA2ODcsLjg1NzgsLjgwNjg3LDEuMDIwNTgsLjgwNzc5LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuODU3OCwuOTk5NzMsMS4xODYxNiwuOTEzMzksMS4wODA3NCwuODI4OTEsMS4wMjA1OCwuNTU1MDksLjcxNTI2LC44OTAyMiwxLjA4NTk1LDEsMSwxLjE4NjE2LDEsLjk2NzM2LC45MzU4MiwxLjE4NjE2LDEsMS4wNDg2NCwuODI3MTEsLjk5MDQzLC45OTA0MywuOTkwNDMsLjcxNTQxLC44NTU3NiwuODU1NzYsLjg1NTc2LC44NTU3NiwuODU1NzYsLjg1NTc2LC44NDUsLjgwNzI5LC43NzUxMiwuNzc1MTIsLjc3NTEyLC43NzUxMiwuOTg2MjEsLjk4NjIxLC45ODYyMSwuOTg2MjEsLjk1OTYxLC45MjIyMiwuOTA2MzcsLjkwNjM3LC45MDYzNywuOTA2MzcsLjkwNjM3LDEuMDIwNTgsLjkwMjUxLC45MDY5OSwuOTA2OTksLjkwNjk5LC45MDY5OSwuODU0NTgsLjgzNjU5LC45NDk1MSwuOTk2MTMsLjk5NjEzLC45OTYxMywuOTk2MTMsLjk5NjEzLC45OTYxMywuODU4MTEsLjc4MjE2LC45MDA4MywuOTAwODMsLjkwMDgzLC45MDA4MywuOTUzODEsLjk1MzgxLC45NTM4MSwuOTUzODEsLjkxMzUsLjkyMTY4LC45MTUxMywuOTE1MTMsLjkxNTEzLC45MTUxMywuOTE1MTMsMS4wODU5NSwuOTE2NzcsLjkxNjc3LC45MTY3NywuOTE2NzcsLjkxNjc3LC44OTM2NCwuOTIzMzIsLjg5MzY0LC44NTU3NiwuOTk2MTMsLjg1NTc2LC45OTYxMywuODU1NzYsLjk5NjEzLC44MDcyOSwuNzgyMTYsLjgwNzI5LC43ODIxNiwuODA3MjksLjc4MjE2LC44MDcyOSwuNzgyMTYsLjk0Mjk5LC43Njc4MywuOTU5NjEsLjkxNjc3LC43NzUxMiwuOTAwODMsLjc3NTEyLC45MDA4MywuNzc1MTIsLjkwMDgzLC43NzUxMiwuOTAwODMsLjc3NTEyLC45MDA4MywuODY1MjMsLjkxMzUsLjg2NTIzLC45MTM1LC44NjUyMywuOTEzNSwxLDEsLjkyMjIyLC45MjE2OCwuOTIyMjIsLjkyMTY4LC45ODYyMSwuOTUzODEsLjk4NjIxLC45NTM4MSwuOTg2MjEsLjk1MzgxLC45ODYyMSwuOTUzODEsLjk4NjIxLC45NTM4MSwuODYwMzYsLjk3MDk2LC43MTc0MywuOTg5ODEsMSwxLC45NTI5OCwuNzk3MjYsLjk1MzgxLDEsMSwuNzk3MjYsLjY4OTQsLjc5NzI2LC43NDMyMSwuODE2OTEsMS4wMDA2LC45MjIyMiwuOTIxNjgsMSwxLC45MjIyMiwuOTIxNjgsLjc5NDY0LC45MjA5OCwuOTIxNjgsLjkwNjM3LC45MTUxMywuOTA2MzcsLjkxNTEzLC45MDYzNywuOTE1MTMsLjkwOSwuODc1MTQsLjgwNzI5LC45NTA3NywxLDEsLjgwNzI5LC45NTA3NywuNzY0NjMsLjc0OCwuNzY0NjMsLjc0OCwxLDEsLjc2NDYzLC43NDgsMSwxLC44NjI3NSwuNzI2NTEsLjg2Mjc1LDEuMDQ1MDIsLjkwNjk5LC45MTY3NywuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkwNjk5LC45MTY3NywuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkxNTQsLjk0MjM2LC44NTQ1OCwuODkzNjQsLjg1NDU4LC45MDUzMSwuOSwuOTA1MzEsLjksLjkwNTMxLC45LDEsLjk3Mjc2LC44NTU3NiwuOTk2MTMsLjg0NSwuODU4MTEsLjkwMjUxLC45MTY3NywxLDEsLjg2Mjc1LDEuMDQ1MDIsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4wMDg5OSwxLjMwNjI4LC44NTU3NiwuODAxNzgsLjY2ODYyLC43OTI3LC42OTMyMywuODgxMjcsLjcyNDU5LC44OTcxMSwuOTUzODEsLjg1NTc2LC44MDU5MSwuNzgwNSwuOTQ3MjksLjc3NTEyLC45MDUzMSwuOTIyMjIsLjkwNjM3LC45ODYyMSwuODE2OTgsLjkyNjU1LC45ODU1OCwuOTIyMjIsLjg1MzU5LC45MDYzNywuOTA5NzYsLjgzODA5LC45NDUyMywuODYyNzUsLjgzNTA5LC45MzE1NywuODUzMDgsLjgzMzkyLC45MjM0NiwuOTg2MjEsLjgzNTA5LC45Mjg4NiwuOTEzMjQsLjkyMTY4LC45NTM4MSwuOTA2NDYsLjkyODg2LC45MDU1NywuODY4NDcsLjkwMjc2LC45MTMyNCwuODY4NDIsLjkyMTY4LC45OTUzMSwuOTUzODEsLjkyMjQsLjg1NDA4LC45MjY5OSwuODY4NDcsMS4wMDUxLC45MTUxMywuODA0ODcsLjkzNDgxLDEsLjg4MTU5LDEuMDUyMTQsLjkwNjQ2LC45NzM1NSwuODE1MzksLjg5Mzk4LC44NTkyMywuOTUzODEsLjkwNjQ2LC45MTUxMywuOTA2NDYsLjg1OTIzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkxNTQsLjk0MjM2LC45MTU0LC45NDIzNiwuOTE1NCwuOTQyMzYsLjg1NDU4LC44OTM2NCwuOTY2OTQsMSwuODk5MDMsMSwxLDEsLjkxNzgyLC45MTc4MiwuOTE3ODIsMSwuODk2LC44OTYsLjg5NiwuOTMzMiwuOTMzMiwuOTU5NzMsMSwxLjI2LDEsMSwuODA0NzksLjgwMTc4LDEsMSwuODU2MzMsMSwxLDEsMSwuOTcyNzYsMSwxLDEsLjY5OCwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMTQ1NDIsMSwuNzkxOTksLjc4Njk0LDEuMDIwNTgsMS4wMzQ5MywxLjA1NDg2LDEsMSwxLjIzMDI2LDEuMDg1OTUsMS4wODU5NSwxLDEuMDg1OTUsMS4wODU5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMjAwMDYsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sV3M9e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LEtzPVsxLjM2ODk4LDEsMSwuNjU1MDcsLjg0OTQzLC44NTYzOSwuODg0NjUsLjg4NDY1LC44NjkzNiwuODgzMDcsLjg2OTQ4LC44NTI4MywuODUyODMsMS4wNjM4MywxLjAyMDU4LC43NTk0NSwuOTIxOSwuNzU5NDUsMS4xNzMzNywuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjc1OTQ1LC43NTk0NSwxLjAyMDU4LDEuMDIwNTgsMS4wMjA1OCwuNjkwNDYsLjcwOTI2LC44NTE1OCwuNzc4MTIsLjc2ODUyLC44OTU5MSwuNzA0NjYsLjc2MTI1LC44MDA5NCwuODY4MjIsLjgzODY0LC43MjgsLjc3MjEyLC43OTQ3NSwuOTM2MzcsLjg3NTE0LC44NTg4LC43NjAxMywuODU4OCwuNzI0MjEsLjY5ODY2LC43NzU5OCwuODU5OTEsLjgwODExLC44NzgzMiwuNzgxMTIsLjc3NTEyLC44NTYyLDEuMDIyMiwxLjE4NDE3LDEuMDIyMiwxLjI3MDE0LC44OTkwMywxLjE1MDEyLC45Mzg1OSwuOTQzOTksLjg0NiwuOTQzOTksLjgxNDUzLDEuMDE4NiwuOTQyMTksLjk2MDE3LDEuMDMwNzUsMS4wMjE3NSwuOTEyLDEuMDMwNzUsLjk2OTk4LC45NjAxNywuOTM4NTksLjk0Mzk5LC45NDM5OSwuOTU0OTMsLjc0NiwxLjEyNjU4LC45NDU3OCwuOTEsLjk3OSwuODgyLC44ODIsLjgzLC44NTAzNCwuODM1MzcsLjg1MDM0LDEuMDIwNTgsLjcwODY5LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODM1MzcsLjkwMDgzLDEuMTUwMTIsLjkxNjEsLjk0NTY1LC43MzU0MSwxLjAyMDU4LC41MzYwOSwuNjkzNTMsLjc5NTE5LDEuMDg1OTUsMSwxLDEuMTUwMTIsMSwuOTE5NzQsLjc1OTQ1LDEuMTUwMTIsMSwuOTQ0NiwuNzMzNjEsLjkwMDUsLjkwMDUsLjkwMDUsLjYyODY0LC44NTE1OCwuODUxNTgsLjg1MTU4LC44NTE1OCwuODUxNTgsLjg1MTU4LC43NzMsLjc2ODUyLC43MDQ2NiwuNzA0NjYsLjcwNDY2LC43MDQ2NiwuODM4NjQsLjgzODY0LC44Mzg2NCwuODM4NjQsLjkwNTYxLC44NzUxNCwuODU4OCwuODU4OCwuODU4OCwuODU4OCwuODU4OCwxLjAyMDU4LC44NTc1MSwuODU5OTEsLjg1OTkxLC44NTk5MSwuODU5OTEsLjc3NTEyLC43NjAxMywuODgwNzUsLjkzODU5LC45Mzg1OSwuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksLjgwNzUsLjg0NiwuODE0NTMsLjgxNDUzLC44MTQ1MywuODE0NTMsLjgyNDI0LC44MjQyNCwuODI0MjQsLjgyNDI0LC45Mjc4LC45NjAxNywuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksLjkzODU5LDEuMDg1OTUsLjg1NjIsLjk0NTc4LC45NDU3OCwuOTQ1NzgsLjk0NTc4LC44ODIsLjk0NTc4LC44ODIsLjg1MTU4LC45Mzg1OSwuODUxNTgsLjkzODU5LC44NTE1OCwuOTM4NTksLjc2ODUyLC44NDYsLjc2ODUyLC44NDYsLjc2ODUyLC44NDYsLjc2ODUyLC44NDYsLjg5NTkxLC44NTQ0LC45MDU2MSwuOTQzOTksLjcwNDY2LC44MTQ1MywuNzA0NjYsLjgxNDUzLC43MDQ2NiwuODE0NTMsLjcwNDY2LC44MTQ1MywuNzA0NjYsLjgxNDUzLC44MDA5NCwuOTQyMTksLjgwMDk0LC45NDIxOSwuODAwOTQsLjk0MjE5LDEsMSwuODY4MjIsLjk2MDE3LC44NjgyMiwuOTYwMTcsLjgzODY0LC44MjQyNCwuODM4NjQsLjgyNDI0LC44Mzg2NCwuODI0MjQsLjgzODY0LDEuMDMwNzUsLjgzODY0LC44MjQyNCwuODE0MDIsMS4wMjczOCwuNzI4LDEuMDIxNzUsMSwxLC45MTIsLjc5NDc1LDEuMDMwNzUsMSwxLC43OTQ3NSwuODM5MTEsLjc5NDc1LC42NjI2NiwuODA1NTMsMS4wNjY3NiwuODc1MTQsLjk2MDE3LDEsMSwuODc1MTQsLjk2MDE3LC44Njg2NSwuODczOTYsLjk2MDE3LC44NTg4LC45Mzg1OSwuODU4OCwuOTM4NTksLjg1ODgsLjkzODU5LC44NjcsLjg0NzU5LC43MjQyMSwuOTU0OTMsMSwxLC43MjQyMSwuOTU0OTMsLjY5ODY2LC43NDYsLjY5ODY2LC43NDYsMSwxLC42OTg2NiwuNzQ2LDEsMSwuNzc1OTgsLjg4NDE3LC43NzU5OCwxLjEyNjU4LC44NTk5MSwuOTQ1NzgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NTk5MSwuOTQ1NzgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NzgzMiwuOTc5LC43NzUxMiwuODgyLC43NzUxMiwuODU2MiwuODMsLjg1NjIsLjgzLC44NTYyLC44MywxLC44ODQ2NSwuODUxNTgsLjkzODU5LC43NzMsLjgwNzUsLjg1NzUxLC44NTYyLDEsMSwuNzc1OTgsMS4xMjY1OCwxLjE1MDEyLDEuMTUwMTIsMS4xNTAxMiwxLjE1MDEyLDEuMTUwMTIsMS4xNTMxMywxLjE1MDEyLDEuMTUwMTIsMS4xNTAxMiwxLjA4MTA2LDEuMDM5MDEsLjg1MTU4LC43NzAyNSwuNjIyNjQsLjc2NDYsLjY1MzUxLC44NjAyNiwuNjk0NjEsLjg5OTQ3LDEuMDMwNzUsLjg1MTU4LC43NzgxMiwuNzY0NDksLjg4ODM2LC43MDQ2NiwuODU2MiwuODY4MjIsLjg1ODgsLjgzODY0LC43NzIxMiwuODUzMDgsLjkzNjM3LC44NzUxNCwuODIzNTIsLjg1ODgsLjg1NzAxLC43NjAxMywuODkwNTgsLjc3NTk4LC44MTU2LC44MjU2NSwuNzgxMTIsLjc3ODk5LC44OTM4NiwuODM4NjQsLjgxNTYsLjk0ODYsLjkyMzg4LC45NjE4NiwxLjAzMDc1LC45MTEyMywuOTQ4NiwuOTMyOTgsLjg3OCwuOTM5NDIsLjkyMzg4LC44NDU5NiwuOTYxODYsLjk1MTE5LDEuMDMwNzUsLjkyMiwuODg3ODcsLjk1ODI5LC44OCwuOTM1NTksLjkzODU5LC43ODgxNSwuOTM3NTgsMSwuODkyMTcsMS4wMzczNywuOTExMjMsLjkzOTY5LC43NzQ4NywuODU3NjksLjg2Nzk5LDEuMDMwNzUsLjkxMTIzLC45Mzg1OSwuOTExMjMsLjg2Nzk5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg3ODMyLC45NzksLjg3ODMyLC45NzksLjg3ODMyLC45NzksLjc3NTEyLC44ODIsLjkyMTksMSwuODk5MDMsMSwxLDEsLjg3MzIxLC44NzMyMSwuODczMjEsMSwxLjAyNywxLjAyNywxLjAyNywuODY4NDcsLjg2ODQ3LC43OTEyMSwxLDEuMTI0LDEsMSwuNzM1NzIsLjczNTcyLDEsMSwuODUwMzQsMSwxLDEsMSwuODg0NjUsMSwxLDEsLjY2OSwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDQ4MjgsMSwuNzQ5NDgsLjc1MTg3LDEuMDIwNTgsLjk4MzkxLDEuMDIxMTksMSwxLDEuMDYyMzMsMS4wODU5NSwxLjA4NTk1LDEsMS4wODU5NSwxLjA4NTk1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNTIzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxHcz17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0sVnM9WzEuMzY4OTgsMSwxLC43NjMwNSwuODI3ODQsLjk0OTM1LC44OTM2NCwuOTIyNDEsLjg5MDczLC45MDcwNiwuOTg0NzIsLjg1MjgzLC44NTI4MywxLjA2NjQsMS4wMjA1OCwuNzQ1MDUsLjkyMTksLjc0NTA1LDEuMjM0NTYsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC43NDUwNSwuNzQ1MDUsMS4wMjA1OCwxLjAyMDU4LDEuMDIwNTgsLjczMDAyLC43MjYwMSwuOTE3NTUsLjgxMjYsLjgwMzE0LC45MjIyMiwuNzM3NjQsLjc5NzI2LC44MzA1MSwuOTAyODQsLjg2MDIzLC43NCwuODEyNiwuODQ4NjksLjk2NTE4LC45MTExNSwuODg1OCwuNzk3NjEsLjg4NTgsLjc0NDk4LC43MzkxNCwuODEzNjMsLjg5NTkxLC44MzY1OSwuODk2MzMsLjg1NjA4LC44MTExLC45MDUzMSwxLjAyMjIsMS4yMjczNiwxLjAyMjIsMS4yNzAxNCwuODk5MDMsLjkwMDg4LC44NjY2NywxLjAyMzEsLjg5NiwxLjAxNDExLC45MDA4MywxLjA1MDk5LDEuMDA1MTIsLjk5NzkzLDEuMDUzMjYsMS4wOTM3NywuOTM4LDEuMDYyMjYsMS4wMDExOSwuOTk3OTMsLjk4NzE0LDEuMDIzMSwxLjAxMjMxLC45ODE5NiwuNzkyLDEuMTkxMzcsLjk5MDc0LC45NjIsMS4wMTkxNSwuOTI2LC45NDIsLjg1NiwuODUwMzQsLjkyMDA2LC44NTAzNCwxLjAyMDU4LC42OTA2NywuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMDA2LC45MzMyLC45MDA4OCwuOTE4ODIsLjkzNDg0LC43NTMzOSwxLjAyMDU4LC41Njg2NiwuNTQzMjQsLjc5NTE5LDEuMDg1OTUsMSwxLC45MDA4OCwxLC45NTMyNSwuNzQ1MDUsLjkwMDg4LDEsLjk3MTk4LC43NTMzOSwuOTEwMDksLjkxMDA5LC45MTAwOSwuNjY0NjYsLjkxNzU1LC45MTc1NSwuOTE3NTUsLjkxNzU1LC45MTc1NSwuOTE3NTUsLjc4OCwuODAzMTQsLjczNzY0LC43Mzc2NCwuNzM3NjQsLjczNzY0LC44NjAyMywuODYwMjMsLjg2MDIzLC44NjAyMywuOTI5MTUsLjkxMTE1LC44ODU4LC44ODU4LC44ODU4LC44ODU4LC44ODU4LDEuMDIwNTgsLjg4NTgsLjg5NTkxLC44OTU5MSwuODk1OTEsLjg5NTkxLC44MTExLC43OTYxMSwuODk3MTMsLjg2NjY3LC44NjY2NywuODY2NjcsLjg2NjY3LC44NjY2NywuODY2NjcsLjg2OTM2LC44OTYsLjkwMDgzLC45MDA4MywuOTAwODMsLjkwMDgzLC44NDIyNCwuODQyMjQsLjg0MjI0LC44NDIyNCwuOTcyNzYsLjk5NzkzLC45ODcxNCwuOTg3MTQsLjk4NzE0LC45ODcxNCwuOTg3MTQsMS4wODU5NSwuODk4NzYsLjk5MDc0LC45OTA3NCwuOTkwNzQsLjk5MDc0LC45NDIsMS4wMjMxLC45NDIsLjkxNzU1LC44NjY2NywuOTE3NTUsLjg2NjY3LC45MTc1NSwuODY2NjcsLjgwMzE0LC44OTYsLjgwMzE0LC44OTYsLjgwMzE0LC44OTYsLjgwMzE0LC44OTYsLjkyMjIyLC45MzM3MiwuOTI5MTUsMS4wMTQxMSwuNzM3NjQsLjkwMDgzLC43Mzc2NCwuOTAwODMsLjczNzY0LC45MDA4MywuNzM3NjQsLjkwMDgzLC43Mzc2NCwuOTAwODMsLjgzMDUxLDEuMDA1MTIsLjgzMDUxLDEuMDA1MTIsLjgzMDUxLDEuMDA1MTIsMSwxLC45MDI4NCwuOTk3OTMsLjkwOTc2LC45OTc5MywuODYwMjMsLjg0MjI0LC44NjAyMywuODQyMjQsLjg2MDIzLC44NDIyNCwuODYwMjMsMS4wNTMyNiwuODYwMjMsLjg0MjI0LC44Mjg3MywxLjA3NDY5LC43NCwxLjA5Mzc3LDEsMSwuOTM4LC44NDg2OSwxLjA2MjI2LDEsMSwuODQ4NjksLjgzNzA0LC44NDg2OSwuODE0NDEsLjg1NTg4LDEuMDg5MjcsLjkxMTE1LC45OTc5MywxLDEsLjkxMTE1LC45OTc5MywuOTE4ODcsLjkwOTkxLC45OTc5MywuODg1OCwuOTg3MTQsLjg4NTgsLjk4NzE0LC44ODU4LC45ODcxNCwuODk0LC45MTQzNCwuNzQ0OTgsLjk4MTk2LDEsMSwuNzQ0OTgsLjk4MTk2LC43MzkxNCwuNzkyLC43MzkxNCwuNzkyLDEsMSwuNzM5MTQsLjc5MiwxLDEsLjgxMzYzLC45MDQsLjgxMzYzLDEuMTkxMzcsLjg5NTkxLC45OTA3NCwuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NTkxLC45OTA3NCwuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NjMzLDEuMDE5MTUsLjgxMTEsLjk0MiwuODExMSwuOTA1MzEsLjg1NiwuOTA1MzEsLjg1NiwuOTA1MzEsLjg1NiwxLC45MjI0MSwuOTE3NTUsLjg2NjY3LC43ODgsLjg2OTM2LC44ODU4LC44OTg3NiwxLDEsLjgxMzYzLDEuMTkxMzcsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMzg4LDEuMDM5MDEsLjkyMTM4LC43ODEwNSwuNzE1NCwuODYxNjksLjgwNTEzLC45NDAwNywuODI1MjgsLjk4NjEyLDEuMDYyMjYsLjkxNzU1LC44MTI2LC44MTg4NCwuOTI4MTksLjczNzY0LC45MDUzMSwuOTAyODQsLjg4NTgsLjg2MDIzLC44MTI2LC45MTE3MiwuOTY1MTgsLjkxMTE1LC44MzA4OSwuODg1OCwuODc3OTEsLjc5NzYxLC44OTI5NywuODEzNjMsLjg4MTU3LC44OTk5MiwuODU2MDgsLjgxOTkyLC45NDMwNywuODYwMjMsLjg4MTU3LC45NTMwOCwuOTg2OTksLjk5NzkzLDEuMDYyMjYsLjk1ODE3LC45NTMwOCwuOTczNTgsLjkyOCwuOTgwODgsLjk4Njk5LC45Mjc2MSwuOTk3OTMsLjk2MDE3LDEuMDYyMjYsLjk4NiwuOTQ0LC45NTk3OCwuOTM4LC45NjcwNSwuOTg3MTQsLjgwNDQyLC45ODk3MiwxLC44OTc2MiwxLjA0NTUyLC45NTgxNywuOTkwMDcsLjg3MDY0LC45MTg3OSwuODg4ODgsMS4wNjIyNiwuOTU4MTcsLjk4NzE0LC45NTgxNywuODg4ODgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODk2MzMsMS4wMTkxNSwuODk2MzMsMS4wMTkxNSwuODk2MzMsMS4wMTkxNSwuODExMSwuOTQyLC45MjE5LDEsLjg5OTAzLDEsMSwxLC45MzE3MywuOTMxNzMsLjkzMTczLDEsMS4wNjMwNCwxLjA2MzA0LDEuMDY5MDQsLjg5OTAzLC44OTkwMywuODA1NDksMSwxLjE1NiwxLDEsLjc2NTc1LC43NjU3NSwxLDEsLjcyNDU4LDEsMSwxLDEsLjkyMjQxLDEsMSwxLC42MTksMSwxLjM2MTQ1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA3MjU3LDEsLjc0NzA1LC43MTExOSwxLjAyMDU4LDEuMDI0LDEuMDIxMTksMSwxLDEuMTUzNiwxLjA4NTk1LDEuMDg1OTUsMSwxLjA4NTk1LDEuMDg1OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA1NjM4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLCRzPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxZcz1bMS43NjczOCwxLDEsLjk5Mjk3LC45ODI0LDEuMDQwMTYsMS4wNjQ5NywxLjAzNDI0LC45NzUyOSwxLjE3NjQ3LDEuMjMyMDMsMS4xMDg1LDEuMTA4NSwxLjE2OTM5LDEuMjEwNywuOTc1NCwxLjIxNDA4LC45NzU0LDEuNTk1NzgsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwuODEzNzgsLjgxMzc4LDEuMjEwNywxLjIxMDcsMS4yMTA3LC43MTcwMywuOTc4NDcsLjk3MzYzLC44ODc3NiwuODY0MSwxLjAyMDk2LC43OTc5NSwuODUxMzIsLjkxNCwxLjA2MDg1LDEuMTQwNiwuODAwNywuODk4NTgsLjgzNjkzLDEuMTQ4ODksMS4wOTM5OCwuOTc0ODksLjkyMDk0LC45NzQ4OSwuOTAzOTksLjg0MDQxLC45NTkyMywxLjAwMTM1LDEsMS4wNjQ2NywuOTgyNDMsLjkwOTk2LC45OTM2MSwxLjEwODUsMS41Njk0MiwxLjEwODUsMS4yMTA3LC43NDYyNywuOTQyODIsLjk2NzUyLDEuMDE1MTksLjg2MzA0LDEuMDEzNTksLjk3Mjc4LDEuMTUxMDMsMS4wMTM1OSwuOTg1NjEsMS4wMjI4NSwxLjAyMjg1LDEuMDA1MjcsMS4wMjI4NSwxLjAzMDIsLjk5MDQxLDEuMDAwOCwxLjAxNTE5LDEuMDEzNTksMS4wMjI1OCwuNzkxMDQsMS4xNjg2MiwuOTkwNDEsLjk3NDU0LDEuMDI1MTEsLjk5Mjk4LC45Njc1MiwuOTU4MDEsLjk0ODU2LDEuMTY1NzksLjk0ODU2LDEuMjEwNywuOTgyNCwxLjAzNDI0LDEuMDM0MjQsMSwxLjAzNDI0LDEuMTY1NzksLjg3MjcsMS4zODcxLDEuMTg2MjIsMS4xMDgxOCwxLjA0NDc4LDEuMjEwNywxLjE4NjIyLC43NTE1NSwuOTQ5OTQsMS4yODgyNiwxLjIxNDA4LDEuMjE0MDgsLjkxMDU2LDEsLjkxNTcyLC45NzU0LC42NDY2MywxLjE4MzI4LDEuMjQ4NjYsMS4wNDQ3OCwxLjE0MTY5LDEuMTU3NDksMS4xNzM4OSwuNzE3MDMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjkzNTA2LC44NjQxLC43OTc5NSwuNzk3OTUsLjc5Nzk1LC43OTc5NSwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjE0MDYsMS4wMjA5NiwxLjA5Mzk4LC45NzQyNiwuOTc0MjYsLjk3NDI2LC45NzQyNiwuOTc0MjYsMS4yMTA3LC45NzQ4OSwxLjAwMTM1LDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LC45MDk5NiwuOTIwOTQsMS4wMjc5OCwuOTY3NTIsLjk2NzUyLC45Njc1MiwuOTY3NTIsLjk2NzUyLC45Njc1MiwuOTMxMzYsLjg2MzA0LC45NzI3OCwuOTcyNzgsLjk3Mjc4LC45NzI3OCwxLjAyMjg1LDEuMDIyODUsMS4wMjI4NSwxLjAyMjg1LC45NzEyMiwuOTkwNDEsMSwxLDEsMSwxLDEuMjg4MjYsMS4wMDA4LC45OTA0MSwuOTkwNDEsLjk5MDQxLC45OTA0MSwuOTY3NTIsMS4wMTUxOSwuOTY3NTIsLjk3MzYzLC45Njc1MiwuOTczNjMsLjk2NzUyLC45NzM2MywuOTY3NTIsLjg2NDEsLjg2MzA0LC44NjQxLC44NjMwNCwuODY0MSwuODYzMDQsLjg2NDEsLjg2MzA0LDEuMDIwOTYsMS4wMzA1NywxLjAyMDk2LDEuMDM1MTcsLjc5Nzk1LC45NzI3OCwuNzk3OTUsLjk3Mjc4LC43OTc5NSwuOTcyNzgsLjc5Nzk1LC45NzI3OCwuNzk3OTUsLjk3Mjc4LC45MTQsMS4wMTM1OSwuOTE0LDEuMDEzNTksLjkxNCwxLjAxMzU5LDEsMSwxLjA2MDg1LC45ODU2MSwxLjA2MDg1LDEuMDA4NzksMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsLjk3MTM4LDEuMDg2OTIsLjgwMDcsMS4wMjI4NSwxLDEsMS4wMDUyNywuODM2OTMsMS4wMjI4NSwxLDEsLjgzNjkzLC45NDU1LC44MzY5MywuOTA0MTgsLjgzNjkzLDEuMTMwMDUsMS4wOTM5OCwuOTkwNDEsMSwxLDEuMDkzOTgsLjk5MDQxLC45NjY5MiwxLjA5MjUxLC45OTA0MSwuOTc0ODksMS4wMDA4LC45NzQ4OSwxLjAwMDgsLjk3NDg5LDEuMDAwOCwuOTM5OTQsLjk3OTMxLC45MDM5OSwxLjAyMjU4LDEsMSwuOTAzOTksMS4wMjI1OCwuODQwNDEsLjc5MTA0LC44NDA0MSwuNzkxMDQsLjg0MDQxLC43OTEwNCwuODQwNDEsLjc5MTA0LDEsMSwuOTU5MjMsMS4wNzAzNCwuOTU5MjMsMS4xNjg2MiwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjA2NDY3LDEuMDI1MTEsLjkwOTk2LC45Njc1MiwuOTA5OTYsLjk5MzYxLC45NTgwMSwuOTkzNjEsLjk1ODAxLC45OTM2MSwuOTU4MDEsMS4wNzczMywxLjAzNDI0LC45NzM2MywuOTY3NTIsLjkzNTA2LC45MzEzNiwuOTc0ODksMS4wMDA4LDEsMSwuOTU5MjMsMS4xNjg2MiwxLjE1MTAzLDEuMTUxMDMsMS4wMTE3MywxLjAzOTU5LC43NTk1MywuODEzNzgsLjc5OTEyLDEuMTUxMDMsMS4yMTk5NCwuOTUxNjEsLjg3ODE1LDEuMDExNDksLjgxNTI1LC43Njc2LC45ODE2NywxLjAxMTM0LDEuMDI1NDYsLjg0MDk3LDEuMDMwODksMS4xODEwMiwuOTczNjMsLjg4Nzc2LC44NTEzNCwuOTc4MjYsLjc5Nzk1LC45OTM2MSwxLjA2MDg1LC45NzQ4OSwxLjE0MDYsLjg5ODU4LDEuMDM4OCwxLjE0ODg5LDEuMDkzOTgsLjg2MDM5LC45NzQ4OSwxLjA1OTUsLjkyMDk0LC45NDc5MywuOTU5MjMsLjkwOTk2LC45OTM0NiwuOTgyNDMsMS4wMjExMiwuOTU0OTMsMS4xNDA2LC45MDk5NiwxLjAzNTc0LDEuMDI1OTcsMS4wMDA4LDEuMTgxMDIsMS4wNjYyOCwxLjAzNTc0LDEuMDE5MiwxLjAxOTMyLDEuMDA4ODYsLjk3NTMxLDEuMDEwNiwxLjAwMDgsMS4xMzE4OSwxLjE4MTAyLDEuMDIyNzcsLjk4NjgzLDEuMDAxNiwuOTk1NjEsMS4wNzIzNywxLjAwMDgsLjkwNDM0LC45OTkyMSwuOTM4MDMsLjg5NjUsMS4yMzA4NSwxLjA2NjI4LDEuMDQ5ODMsLjk2MjY4LDEuMDQ5OSwuOTg0MzksMS4xODEwMiwxLjA2NjI4LDEuMDAwOCwxLjA2NjI4LC45ODQzOSwuNzk3OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wOTQ2NiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTcyNzgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wMjA2NSwxLDEsMSwxLDEsMSwxLjA2NDY3LDEuMDI1MTEsMS4wNjQ2NywxLjAyNTExLDEuMDY0NjcsMS4wMjUxMSwuOTA5OTYsLjk2NzUyLDEsMS4yMTQwOCwuODk5MDMsMSwxLC43NTE1NSwxLjA0Mzk0LDEuMDQzOTQsMS4wNDM5NCwxLjA0Mzk0LC45ODYzMywuOTg2MzMsLjk4NjMzLC43MzA0NywuNzMwNDcsMS4yMDY0MiwuOTEyMTEsMS4yNTYzNSwxLjIyMiwxLjAyOTU2LDEuMDMzNzIsMS4wMzM3MiwuOTYwMzksMS4yNDYzMywxLDEuMTI0NTQsLjkzNTAzLDEuMDM0MjQsMS4xOTY4NywxLjAzNDI0LDEsMSwxLC43NzEsMSwxLDEuMTU3NDksMS4xNTc0OSwxLjE1NzQ5LDEuMTA5NDgsLjg2Mjc5LC45NDQzNCwuODYyNzksLjk0NDM0LC44NjE4MiwxLDEsMS4xNjg5NywxLC45NjA4NSwuOTAxMzcsMS4yMTA3LDEuMTg0MTYsMS4xMzk3MywuNjk4MjUsLjk3MTYsMi4xMDMzOSwxLjI5MDA0LDEuMjkwMDQsMS4yMTE3MiwxLjI5MDA0LDEuMjkwMDQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjQyNjAzLDEsLjk5ODYyLC45OTg2MiwxLC44NzAyNSwuODcwMjUsLjg3MDI1LC44NzAyNSwxLjE4ODc0LDEuNDI2MDMsMSwxLjQyNjAzLDEuNDI2MDMsLjk5ODYyLDEsMSwxLDEsMSwxLjI4ODYsMS4wNDMxNSwxLjE1Mjk2LDEuMzQxNjMsMSwxLDEsMS4wOTE5MywxLjA5MTkzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxKcz17bGluZUhlaWdodDoxLjMzMDA4LGxpbmVHYXA6MH0sUXM9WzEuNzY3MzgsMSwxLC45ODk0NiwxLjAzOTU5LDEuMDQwMTYsMS4wMjgwOSwxLjAzNiwuOTc2MzksMS4xMDk1MywxLjIzMjAzLDEuMTExNDQsMS4xMTE0NCwxLjE2OTM5LDEuMjEyMzcsLjk3NTQsMS4yMTI2MSwuOTc1NCwxLjU5NzU0LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LC44MTM3OCwuODEzNzgsMS4yMTIzNywxLjIxMjM3LDEuMjEyMzcsLjczNTQxLC45Nzg0NywuOTczNjMsLjg5NzIzLC44Nzg5NywxLjA0MjYsLjc5NDI5LC44NTI5MiwuOTExNDksMS4wNTgxNSwxLjE0MDYsLjc5NjMxLC45MDEyOCwuODM4NTMsMS4wNDM5NiwxLjEwNjE1LC45NzU1MiwuOTQ0MzYsLjk3NTUyLC44ODY0MSwuODA1MjcsLjk2MDgzLDEuMDAxMzUsMSwxLjA2Nzc3LC45ODE3LC45MTE0MiwuOTkzNjEsMS4xMTE0NCwxLjU3MjkzLDEuMTExNDQsMS4yMTIzNywuNzQ2MjcsMS4zMTgxOCwxLjA2NTg1LC45NzA0MiwuODMwNTUsLjk3MDQyLC45MzUwMywxLjEyNjEsLjk3MDQyLC45NzkyMiwxLjE0MjM2LC45NDU1MiwxLjAxMDU0LDEuMTQyMzYsMS4wMjQ3MSwuOTc5MjIsLjk0MTY1LC45NzA0MiwuOTcwNDIsMS4wMjc2LC43ODkyOSwxLjEyNjEsLjk3OTIyLC45NTg3NCwxLjAyMTk3LC45ODUwNywuOTY3NTIsLjk3MTY4LC45NTEwNywxLjE2NTc5LC45NTEwNywxLjIxMjM3LDEuMDM5NTksMS4wMzYsMS4wMzYsMSwxLjAzNiwxLjE2NTc5LC44NzM1NywxLjMxODE4LDEuMTg3NTQsMS4yNjc4MSwxLjA1MzU2LDEuMjEyMzcsMS4xODYyMiwuNzk0ODcsLjk0OTk0LDEuMjkwMDQsMS4yNDA0NywxLjI0MDQ3LDEuMzE4MTgsMSwuOTE0ODQsLjk3NTQsMS4zMTgxOCwxLjEzNDksMS4yNDg2NiwxLjA1MzU2LDEuMTM5MzQsMS4xNTU3NCwxLjE3Mzg5LC43MzU0MSwuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTQzODUsLjg3ODk3LC43OTQyOSwuNzk0MjksLjc5NDI5LC43OTQyOSwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjE0MDYsMS4wNDI2LDEuMTA2MTUsLjk3NTUyLC45NzU1MiwuOTc1NTIsLjk3NTUyLC45NzU1MiwxLjIxMjM3LC45NzU1MiwxLjAwMTM1LDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LC45MTE0MiwuOTQ0MzYsLjk4NzIxLDEuMDY1ODUsMS4wNjU4NSwxLjA2NTg1LDEuMDY1ODUsMS4wNjU4NSwxLjA2NTg1LC45NjcwNSwuODMwNTUsLjkzNTAzLC45MzUwMywuOTM1MDMsLjkzNTAzLDEuMTQyMzYsMS4xNDIzNiwxLjE0MjM2LDEuMTQyMzYsLjkzMTI1LC45NzkyMiwuOTQxNjUsLjk0MTY1LC45NDE2NSwuOTQxNjUsLjk0MTY1LDEuMjkwMDQsLjk0MTY1LC45NzkyMiwuOTc5MjIsLjk3OTIyLC45NzkyMiwuOTY3NTIsLjk3MDQyLC45Njc1MiwuOTczNjMsMS4wNjU4NSwuOTczNjMsMS4wNjU4NSwuOTczNjMsMS4wNjU4NSwuODc4OTcsLjgzMDU1LC44Nzg5NywuODMwNTUsLjg3ODk3LC44MzA1NSwuODc4OTcsLjgzMDU1LDEuMDQyNiwxLjAwMzMsMS4wNDI2LC45NzA0MiwuNzk0MjksLjkzNTAzLC43OTQyOSwuOTM1MDMsLjc5NDI5LC45MzUwMywuNzk0MjksLjkzNTAzLC43OTQyOSwuOTM1MDMsLjkxMTQ5LC45NzA0MiwuOTExNDksLjk3MDQyLC45MTE0OSwuOTcwNDIsMSwxLDEuMDU4MTUsLjk3OTIyLDEuMDU4MTUsLjk3OTIyLDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LC45NzQ0MSwxLjA0MzAyLC43OTYzMSwxLjAxNTgyLDEsMSwxLjAxMDU0LC44Mzg1MywxLjE0MjM2LDEsMSwuODM4NTMsMS4wOTEyNSwuODM4NTMsLjkwNDE4LC44Mzg1MywxLjE5NTA4LDEuMTA2MTUsLjk3OTIyLDEsMSwxLjEwNjE1LC45NzkyMiwxLjAxMDM0LDEuMTA0NjYsLjk3OTIyLC45NzU1MiwuOTQxNjUsLjk3NTUyLC45NDE2NSwuOTc1NTIsLjk0MTY1LC45MTYwMiwuOTE5ODEsLjg4NjQxLDEuMDI3NiwxLDEsLjg4NjQxLDEuMDI3NiwuODA1MjcsLjc4OTI5LC44MDUyNywuNzg5MjksLjgwNTI3LC43ODkyOSwuODA1MjcsLjc4OTI5LDEsMSwuOTYwODMsMS4wNTQwMywuOTU5MjMsMS4xNjg2MiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjA2Nzc3LDEuMDIxOTcsLjkxMTQyLC45Njc1MiwuOTExNDIsLjk5MzYxLC45NzE2OCwuOTkzNjEsLjk3MTY4LC45OTM2MSwuOTcxNjgsMS4yMzE5OSwxLjAzNiwuOTczNjMsMS4wNjU4NSwuOTQzODUsLjk2NzA1LC45NzU1MiwuOTQxNjUsMSwxLC45NjA4MywxLjEyNjEsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsLjk1MTYxLDEuMjcxMjYsMS4wMDgxMSwuODMyODQsLjc3NzAyLC45OTEzNywuOTUyNTMsMS4wMzQ3LC44NjE0MiwxLjA3MjA1LDEuMTQyMzYsLjk3MzYzLC44OTcyMywuODY4NjksMS4wOTgxOCwuNzk0MjksLjk5MzYxLDEuMDU4MTUsLjk3NTUyLDEuMTQwNiwuOTAxMjgsMS4wNjY2MiwxLjA0Mzk2LDEuMTA2MTUsLjg0OTE4LC45NzU1MiwxLjA0Njk0LC45NDQzNiwuOTgwMTUsLjk2MDgzLC45MTE0MiwxLjAwMzU2LC45ODE3LDEuMDE5NDUsLjk4OTk5LDEuMTQwNiwuOTExNDIsMS4wNDk2MSwuOTg5OCwxLjAwNjM5LDEuMTQyMzYsMS4wNzUxNCwxLjA0OTYxLC45OTYwNywxLjAyODk3LDEuMDA4LC45ODk4LC45NTEzNCwxLjAwNjM5LDEuMTExMjEsMS4xNDIzNiwxLjAwNTE4LC45Nzk4MSwxLjAyMTg2LDEsMS4wODU3OCwuOTQxNjUsLjk5MzE0LC45ODM4NywuOTMwMjgsLjkzMzc3LDEuMzUxMjUsMS4wNzUxNCwxLjEwNjg3LC45MzQ5MSwxLjA0MjMyLDEuMDAzNTEsMS4xNDIzNiwxLjA3NTE0LC45NDE2NSwxLjA3NTE0LDEuMDAzNTEsLjc5NDI5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDkwOTcsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkzNTAzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NjYwOSwxLDEsMSwxLDEsMSwxLjA2Nzc3LDEuMDIxOTcsMS4wNjc3NywxLjAyMTk3LDEuMDY3NzcsMS4wMjE5NywuOTExNDIsLjk2NzUyLDEsMS4yMTI2MSwuODk5MDMsMSwxLC43NTE1NSwxLjA0NzQ1LDEuMDQ3NDUsMS4wNDc0NSwxLjA0Mzk0LC45ODYzMywuOTg2MzMsLjk4NjMzLC43Mjk1OSwuNzI5NTksMS4yMDUwMiwuOTE0MDYsMS4yNjUxNCwxLjIyMiwxLjAyOTU2LDEuMDMzNzIsMS4wMzM3MiwuOTYwMzksMS4yNDYzMywxLDEuMDkxMjUsLjkzMzI3LDEuMDMzMzYsMS4xNjU0MSwxLjAzNiwxLDEsMSwuNzcxLDEsMSwxLjE1NTc0LDEuMTU1NzQsMS4xNTU3NCwxLjE1NTc0LC44NjM2NCwuOTQ0MzQsLjg2Mjc5LC45NDQzNCwuODYyMjQsMSwxLDEuMTY3OTgsMSwuOTYwODUsLjkwMDY4LDEuMjEyMzcsMS4xODQxNiwxLjEzOTA0LC42OTgyNSwuOTcxNiwyLjEwMzM5LDEuMjkwMDQsMS4yOTAwNCwxLjIxMzM5LDEuMjkwMDQsMS4yOTAwNCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuNDI2MDMsMSwuOTk4NjIsLjk5ODYyLDEsLjg3MDI1LC44NzAyNSwuODcwMjUsLjg3MDI1LDEuMTg3NzUsMS40MjYwMywxLDEuNDI2MDMsMS40MjYwMywuOTk4NjIsMSwxLDEsMSwxLDEuMjg4NiwxLjA0MzE1LDEuMTUyOTYsMS4zNDE2MywxLDEsMSwxLjEzMjY5LDEuMTMyNjksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLFpzPXtsaW5lSGVpZ2h0OjEuMzMwMDgsbGluZUdhcDowfSxlcj1bMS43NjczOCwxLDEsLjk4OTQ2LDEuMTQ3NjMsMS4wNTM2NSwxLjA2MjM0LC45NjkyNywuOTI1ODYsMS4xNTM3MywxLjE4NDE0LC45MTM0OSwuOTEzNDksMS4wNzQwMywxLjE3MzA4LC43ODM4MywxLjIwMDg4LC43ODM4MywxLjQyNTMxLC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuNzgzODMsLjc4MzgzLDEuMTczMDgsMS4xNzMwOCwxLjE3MzA4LC43NzM0OSwuOTQ1NjUsLjk0NzI5LC44NTk0NCwuODg1MDYsLjk4NTgsLjc0ODE3LC44MDAxNiwuODg0NDksLjk4MDM5LC45NTc4MiwuNjkyMzgsLjg5ODk4LC44MzIzMSwuOTgxODMsMS4wMzk4OSwuOTY5MjQsLjg2MjM3LC45NjkyNCwuODA1OTUsLjc0NTI0LC44NjA5MSwuOTU0MDIsLjk0MTQzLC45ODQ0OCwuODg1OCwuODMwODksLjkzMjg1LDEuMDk0OSwxLjM5MDE2LDEuMDk0OSwxLjQ1OTk0LC43NDYyNywxLjA0ODM5LC45NzQ1NCwuOTc0NTQsLjg3MjA3LC45NzQ1NCwuODc1MzMsMS4wNjE1MSwuOTc0NTQsMS4wMDE3NiwxLjE2NDg0LDEuMDgxMzIsLjk4MDQ3LDEuMTY0ODQsMS4wMjk4OSwxLjAxMDU0LC45NjIyNSwuOTc0NTQsLjk3NDU0LDEuMDY1OTgsLjc5MDA0LDEuMTYzNDQsMS4wMDM1MSwuOTQ2MjksLjk5NzMsLjkxMDE2LC45Njc3NywuOTA0MywuOTEwODIsLjkyNDgxLC45MTA4MiwxLjE3MzA4LC45NTc0OCwuOTY5MjcsLjk2OTI3LDEsLjk2OTI3LC45MjQ4MSwuODA1OTcsMS4wNDgzOSwxLjIzMzkzLDEuMTc4MSwuOTI0NSwxLjE3MzA4LDEuMjA4MDgsLjYzMjE4LC45NDI2MSwxLjI0ODIyLDEuMDk5NzEsMS4wOTk3MSwxLjA0ODM5LDEsLjg1MjczLC43ODAzMiwxLjA0ODM5LDEuMDk5NzEsMS4yMjMyNiwuOTI0NSwxLjA5ODM2LDEuMTM1MjUsMS4xNTIyMiwuNzA0MjQsLjk0NzI5LC45NDcyOSwuOTQ3MjksLjk0NzI5LC45NDcyOSwuOTQ3MjksLjg1NDk4LC44ODUwNiwuNzQ4MTcsLjc0ODE3LC43NDgxNywuNzQ4MTcsLjk1NzgyLC45NTc4MiwuOTU3ODIsLjk1NzgyLC45ODU4LDEuMDM5ODksLjk2OTI0LC45NjkyNCwuOTY5MjQsLjk2OTI0LC45NjkyNCwxLjE3MzA4LC45NjkyNCwuOTU0MDIsLjk1NDAyLC45NTQwMiwuOTU0MDIsLjgzMDg5LC44NjIzNywuODg0MDksLjk3NDU0LC45NzQ1NCwuOTc0NTQsLjk3NDU0LC45NzQ1NCwuOTc0NTQsLjkyOTE2LC44NzIwNywuODc1MzMsLjg3NTMzLC44NzUzMywuODc1MzMsLjkzMTQ2LC45MzE0NiwuOTMxNDYsLjkzMTQ2LC45Mzg1NCwxLjAxMDU0LC45NjIyNSwuOTYyMjUsLjk2MjI1LC45NjIyNSwuOTYyMjUsMS4yNDgyMiwuODc2MSwxLjAwMzUxLDEuMDAzNTEsMS4wMDM1MSwxLjAwMzUxLC45Njc3NywuOTc0NTQsLjk2Nzc3LC45NDcyOSwuOTc0NTQsLjk0NzI5LC45NzQ1NCwuOTQ3MjksLjk3NDU0LC44ODUwNiwuODcyMDcsLjg4NTA2LC44NzIwNywuODg1MDYsLjg3MjA3LC44ODUwNiwuODcyMDcsLjk4NTgsLjk1MzkxLC45ODU4LC45NzQ1NCwuNzQ4MTcsLjg3NTMzLC43NDgxNywuODc1MzMsLjc0ODE3LC44NzUzMywuNzQ4MTcsLjg3NTMzLC43NDgxNywuODc1MzMsLjg4NDQ5LC45NzQ1NCwuODg0NDksLjk3NDU0LC44ODQ0OSwuOTc0NTQsMSwxLC45ODAzOSwxLjAwMTc2LC45ODAzOSwxLjAwMTc2LC45NTc4MiwuOTMxNDYsLjk1NzgyLC45MzE0NiwuOTU3ODIsLjkzMTQ2LC45NTc4MiwxLjE2NDg0LC45NTc4MiwuOTMxNDYsLjg0NDIxLDEuMTI3NjEsLjY5MjM4LDEuMDgxMzIsMSwxLC45ODA0NywuODMyMzEsMS4xNjQ4NCwxLDEsLjg0NzIzLDEuMDQ4NjEsLjg0NzIzLC43ODc1NSwuODMyMzEsMS4yMzczNiwxLjAzOTg5LDEuMDEwNTQsMSwxLDEuMDM5ODksMS4wMTA1NCwuOTg1NywxLjAzODQ5LDEuMDEwNTQsLjk2OTI0LC45NjIyNSwuOTY5MjQsLjk2MjI1LC45NjkyNCwuOTYyMjUsLjkyMzgzLC45MDE3MSwuODA1OTUsMS4wNjU5OCwxLDEsLjgwNTk1LDEuMDY1OTgsLjc0NTI0LC43OTAwNCwuNzQ1MjQsLjc5MDA0LC43NDUyNCwuNzkwMDQsLjc0NTI0LC43OTAwNCwxLDEsLjg2MDkxLDEuMDI3NTksLjg1NzcxLDEuMTYzNDQsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk4NDQ4LC45OTczLC44MzA4OSwuOTY3NzcsLjgzMDg5LC45MzI4NSwuOTA0MywuOTMyODUsLjkwNDMsLjkzMjg1LC45MDQzLDEuMzE4NjgsLjk2OTI3LC45NDcyOSwuOTc0NTQsLjg1NDk4LC45MjkxNiwuOTY5MjQsLjg3NjEsMSwxLC44NjA5MSwxLjE2MzQ0LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LC44MTk2NSwuODE5NjUsLjk0NzI5LC43ODAzMiwuNzEwMjIsLjkwODgzLC44NDE3MSwuOTk4NzcsLjc3NTk2LDEuMDU3MzQsMS4yLC45NDcyOSwuODU5NDQsLjgyNzkxLC45NjA3LC43NDgxNywuOTMyODUsLjk4MDM5LC45NjkyNCwuOTU3ODIsLjg5ODk4LC45ODMxNiwuOTgxODMsMS4wMzk4OSwuNzg2MTQsLjk2OTI0LC45NzY0MiwuODYyMzcsLjg2MDc1LC44NjA5MSwuODMwODksLjkwMDgyLC44ODU4LC45NzI5NiwxLjAxMjg0LC45NTc4MiwuODMwODksMS4wOTc2LDEuMDQsMS4wMzM0MiwxLjIsMS4wNjc1LDEuMDk3NiwuOTgyMDUsMS4wMzgwOSwxLjA1MDk3LDEuMDQsLjk1MzY0LDEuMDMzNDIsMS4wNTQwMSwxLjIsMS4wMjE0OCwxLjAxMTksMS4wNDcyNCwxLjAxMjcsMS4wMjczMiwuOTYyMjUsLjg5NjUsLjk3NzgzLC45MzU3NCwuOTQ4MTgsMS4zMDY3OSwxLjA2NzUsMS4xMTgyNiwuOTk4MjEsMS4wNTU3LDEuMDMyNiwxLjIsMS4wNjc1LC45NjIyNSwxLjA2NzUsMS4wMzI2LC43NDgxNywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjAzNzU0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44NzUzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTg3MDUsMSwxLDEsMSwxLDEsLjk4NDQ4LC45OTczLC45ODQ0OCwuOTk3MywuOTg0NDgsLjk5NzMsLjgzMDg5LC45Njc3NywxLDEuMjAwODgsLjg5OTAzLDEsMSwuNzUxNTUsLjk0OTQ1LC45NDk0NSwuOTQ5NDUsLjk0OTQ1LDEuMTIzMTcsMS4xMjMxNywxLjEyMzE3LC42NzYwMywuNjc2MDMsMS4xNTYyMSwuNzM1ODQsMS4yMTE5MSwxLjIyMTM1LDEuMDY0ODMsLjk0ODY4LC45NDg2OCwuOTU5OTYsMS4yNDYzMywxLDEuMDc0OTcsLjg3NzA5LC45NjkyNywxLjAxNDczLC45NjkyNywxLDEsMSwuNzcyOTUsMSwxLDEuMDk4MzYsMS4wOTgzNiwxLjA5ODM2LDEuMDE1MjIsLjg2MzIxLC45NDQzNCwuODY0OSwuOTQ0MzQsLjg2MTgyLDEsMSwxLjA4MywxLC45MTU3OCwuODY0MzgsMS4xNzMwOCwxLjE4NDE2LDEuMTQ1ODksLjY5ODI1LC45NzYyMiwxLjk2NzkxLDEuMjQ4MjIsMS4yNDgyMiwxLjE3MzA4LDEuMjQ4MjIsMS4yNDgyMiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuNDI2MDMsMSwuOTk4NjIsLjk5ODYyLDEsLjg3MDI1LC44NzAyNSwuODcwMjUsLjg3MDI1LDEuMTc5ODQsMS40MjYwMywxLDEuNDI2MDMsMS40MjYwMywuOTk4NjIsMSwxLDEsMSwxLDEuMjg4NiwxLjA0MzE1LDEuMTUyOTYsMS4zNDE2MywxLDEsMSwxLjEwNzQyLDEuMTA3NDIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLHRyPXtsaW5lSGVpZ2h0OjEuMzMwMDgsbGluZUdhcDowfSxucj1bMS43NjczOCwxLDEsLjk4NTk0LDEuMDIyODUsMS4xMDQ1NCwxLjA2MjM0LC45NjkyNywuOTIwMzcsMS4xOTk4NSwxLjIwNDYsLjkwNjE2LC45MDYxNiwxLjA3MTUyLDEuMTcxNCwuNzgwMzIsMS4yMDA4OCwuNzgwMzIsMS40MDI0NiwuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjc4MDMyLC43ODAzMiwxLjE3MTQsMS4xNzE0LDEuMTcxNCwuODA1OTcsLjk0MDg0LC45NjcwNiwuODU5NDQsLjg1NzM0LC45NzA5MywuNzU4NDIsLjc5OTM2LC44ODE5OCwuOTgzMSwuOTU3ODIsLjcxMzg3LC44Njk2OSwuODQ2MzYsMS4wNzc5NiwxLjAzNTg0LC45NjkyNCwuODM5NjgsLjk2OTI0LC44MjgyNiwuNzk2NDksLjg1NzcxLC45NTEzMiwuOTMxMTksLjk4OTY1LC44ODQzMywuODI4NywuOTMzNjUsMS4wODYxMiwxLjM2MzgsMS4wODYxMiwxLjQ1Nzg2LC43NDYyNywuODA0OTksLjkxNDg0LDEuMDU3MDcsLjkyMzgzLDEuMDU4ODIsLjk0MDMsMS4xMjY1NCwxLjA1ODgyLDEuMDE3NTYsMS4wOTAxMSwxLjA5MDExLC45OTQxNCwxLjA5MDExLDEuMDM0LDEuMDE3NTYsMS4wNTM1NiwxLjA1NzA3LDEuMDU4ODIsMS4wNDM5OSwuODQ4NjMsMS4yMTk2OCwxLjAxNzU2LC45NTgwMSwxLjAwMDY4LC45MTc5NywuOTY3NzcsLjkwNDMsLjkwMzUxLC45MjEwNSwuOTAzNTEsMS4xNzE0LC44NTMzNywuOTY5MjcsLjk2OTI3LC45OTkxMiwuOTY5MjcsLjkyMTA1LC44MDU5NywxLjI0MzQsMS4yMDgwOCwxLjA1OTM3LC45MDk1NywxLjE3MTQsMS4yMDgwOCwuNzUxNTUsLjk0MjYxLDEuMjQ2NDQsMS4wOTk3MSwxLjA5OTcxLC44NDc1MSwxLC44NTI3MywuNzgwMzIsLjYxNTg0LDEuMDU0MjUsMS4xNzkxNCwuOTA5NTcsMS4wODY2NSwxLjExNTkzLDEuMTQxNjksLjczMzgxLC45NjcwNiwuOTY3MDYsLjk2NzA2LC45NjcwNiwuOTY3MDYsLjk2NzA2LC44NjAzNSwuODU3MzQsLjc1ODQyLC43NTg0MiwuNzU4NDIsLjc1ODQyLC45NTc4MiwuOTU3ODIsLjk1NzgyLC45NTc4MiwuOTcwOTMsMS4wMzU4NCwuOTY5MjQsLjk2OTI0LC45NjkyNCwuOTY5MjQsLjk2OTI0LDEuMTcxNCwuOTY5MjQsLjk1MTMyLC45NTEzMiwuOTUxMzIsLjk1MTMyLC44Mjg3LC44Mzk2OCwuODkwNDksLjkxNDg0LC45MTQ4NCwuOTE0ODQsLjkxNDg0LC45MTQ4NCwuOTE0ODQsLjkzNTc1LC45MjM4MywuOTQwMywuOTQwMywuOTQwMywuOTQwMywuODcxNywuODcxNywuODcxNywuODcxNywxLjAwNTI3LDEuMDE3NTYsMS4wNTM1NiwxLjA1MzU2LDEuMDUzNTYsMS4wNTM1NiwxLjA1MzU2LDEuMjQ2NDQsLjk1OTIzLDEuMDE3NTYsMS4wMTc1NiwxLjAxNzU2LDEuMDE3NTYsLjk2Nzc3LDEuMDU3MDcsLjk2Nzc3LC45NjcwNiwuOTE0ODQsLjk2NzA2LC45MTQ4NCwuOTY3MDYsLjkxNDg0LC44NTczNCwuOTIzODMsLjg1NzM0LC45MjM4MywuODU3MzQsLjkyMzgzLC44NTczNCwuOTIzODMsLjk3MDkzLDEuMDk2OSwuOTcwOTMsMS4wNTg4MiwuNzU4NDIsLjk0MDMsLjc1ODQyLC45NDAzLC43NTg0MiwuOTQwMywuNzU4NDIsLjk0MDMsLjc1ODQyLC45NDAzLC44ODE5OCwxLjA1ODgyLC44ODE5OCwxLjA1ODgyLC44ODE5OCwxLjA1ODgyLDEsMSwuOTgzMSwxLjAxNzU2LC45ODMxLDEuMDE3NTYsLjk1NzgyLC44NzE3LC45NTc4MiwuODcxNywuOTU3ODIsLjg3MTcsLjk1NzgyLDEuMDkwMTEsLjk1NzgyLC44NzE3LC44NDc4NCwxLjExNTUxLC43MTM4NywxLjA5MDExLDEsMSwuOTk0MTQsLjg0NjM2LDEuMDkwMTEsMSwxLC44NDYzNiwxLjA1MzYsLjg0NjM2LC45NDI5OCwuODQ2MzYsMS4yMzI5NywxLjAzNTg0LDEuMDE3NTYsMSwxLDEuMDM1ODQsMS4wMTc1NiwxLjAwMzIzLDEuMDM0NDQsMS4wMTc1NiwuOTY5MjQsMS4wNTM1NiwuOTY5MjQsMS4wNTM1NiwuOTY5MjQsMS4wNTM1NiwuOTMwNjYsLjk4MjkzLC44MjgyNiwxLjA0Mzk5LDEsMSwuODI4MjYsMS4wNDM5OSwuNzk2NDksLjg0ODYzLC43OTY0OSwuODQ4NjMsLjc5NjQ5LC44NDg2MywuNzk2NDksLjg0ODYzLDEsMSwuODU3NzEsMS4xNzMxOCwuODU3NzEsMS4yMTk2OCwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTg5NjUsMS4wMDA2OCwuODI4NywuOTY3NzcsLjgyODcsLjkzMzY1LC45MDQzLC45MzM2NSwuOTA0MywuOTMzNjUsLjkwNDMsMS4wODU3MSwuOTY5MjcsLjk2NzA2LC45MTQ4NCwuODYwMzUsLjkzNTc1LC45NjkyNCwuOTU5MjMsMSwxLC44NTc3MSwxLjIxOTY4LDEuMTE0MzcsMS4xMTQzNywuOTMxMDksLjkxMjAyLC42MDQxMSwuODQxNjQsLjU1NTcyLDEuMDExNzMsLjk3MzYxLC44MTgxOCwuODE4MTgsLjk2NjM1LC43ODAzMiwuNzI3MjcsLjkyMzY2LC45ODYwMSwxLjAzNDA1LC43Nzk2OCwxLjA5Nzk5LDEuMiwuOTY3MDYsLjg1OTQ0LC44NTYzOCwuOTY0OTEsLjc1ODQyLC45MzM2NSwuOTgzMSwuOTY5MjQsLjk1NzgyLC44Njk2OSwuOTQxNTIsMS4wNzc5NiwxLjAzNTg0LC43ODQzNywuOTY5MjQsLjk4NzE1LC44Mzk2OCwuODM0OTEsLjg1NzcxLC44Mjg3LC45NDQ5MiwuODg0MzMsLjkyODcsMS4wMDk4LC45NTc4MiwuODI4NywxLjA2MjUsLjk4MjQ4LDEuMDM0MjQsMS4yLDEuMDEwNzEsMS4wNjI1LC45NTI0NiwxLjAzODA5LDEuMDQ5MTIsLjk4MjQ4LDEuMDAyMjEsMS4wMzQyNCwxLjA1NDQzLDEuMiwxLjA0Nzg1LC45OTYwOSwxLjAwMTY5LDEuMDUxNzYsLjk5MzQ2LDEuMDUzNTYsLjkwODcsMS4wMzAwNCwuOTU1NDIsLjkzMTE3LDEuMjMzNjIsMS4wMTA3MSwxLjA3ODMxLDEuMDI1MTIsMS4wNTIwNSwxLjAzNTAyLDEuMiwxLjAxMDcxLDEuMDUzNTYsMS4wMTA3MSwxLjAzNTAyLC43NTg0MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjAzNzE5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NDAzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDQwMjEsMSwxLDEsMSwxLDEsLjk4OTY1LDEuMDAwNjgsLjk4OTY1LDEuMDAwNjgsLjk4OTY1LDEuMDAwNjgsLjgyODcsLjk2Nzc3LDEsMS4yMDA4OCwuODk5MDMsMSwxLC43NTE1NSwxLjAzMDc3LDEuMDMwNzcsMS4wMzA3NywxLjAzMDc3LDEuMTMxOTYsMS4xMzE5NiwxLjEzMTk2LC42NzQyOCwuNjc0MjgsMS4xNjAzOSwuNzMyOTEsMS4yMDk5NiwxLjIyMTM1LDEuMDY0ODMsLjk0ODY4LC45NDg2OCwuOTU5OTYsMS4yNDYzMywxLDEuMDc0OTcsLjg3Nzk2LC45NjkyNywxLjAxNTE4LC45NjkyNywxLDEsMSwuNzcyOTUsMSwxLDEuMTA1MzksMS4xMDUzOSwxLjExMzU4LDEuMDY5NjcsLjg2Mjc5LC45NDQzNCwuODYyNzksLjk0NDM0LC44NjE4MiwxLDEsMS4wODMsMSwuOTE1NzgsLjg2NTA3LDEuMTcxNCwxLjE4NDE2LDEuMTQ1ODksLjY5ODI1LC45NzYyMiwxLjk2OTcsMS4yNDgyMiwxLjI0ODIyLDEuMTcyMzgsMS4yNDgyMiwxLjI0ODIyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS40MjYwMywxLC45OTg2MiwuOTk4NjIsMSwuODcwMjUsLjg3MDI1LC44NzAyNSwuODcwMjUsMS4xODA4MywxLjQyNjAzLDEsMS40MjYwMywxLjQyNjAzLC45OTg2MiwxLDEsMSwxLDEsMS4yODg2LDEuMDQzMTUsMS4xNTI5NiwxLjM0MTYzLDEsMSwxLDEuMTA5MzgsMS4xMDkzOCwxLDEsMSwxLjA1NDI1LDEuMDk5NzEsMS4wOTk3MSwxLjA5OTcxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sYXI9e2xpbmVIZWlnaHQ6MS4zMzAwOCxsaW5lR2FwOjB9LHNyPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlWyJNeXJpYWRQcm8tUmVndWxhciJdPWVbIlBkZkpTLUZhbGxiYWNrLVJlZ3VsYXIiXT17bmFtZToiTGliZXJhdGlvblNhbnMtUmVndWxhciIsZmFjdG9yczpWcyxiYXNlV2lkdGhzOnpzLGJhc2VNYXBwaW5nOkxzLG1ldHJpY3M6JHN9O2VbIk15cmlhZFByby1Cb2xkIl09ZVsiUGRmSlMtRmFsbGJhY2stQm9sZCJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkIixmYWN0b3JzOlVzLGJhc2VXaWR0aHM6QnMsYmFzZU1hcHBpbmc6UnMsbWV0cmljczpfc307ZVsiTXlyaWFkUHJvLUl0Il09ZVsiTXlyaWFkUHJvLUl0YWxpYyJdPWVbIlBkZkpTLUZhbGxiYWNrLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGZhY3RvcnM6S3MsYmFzZVdpZHRoczpFcyxiYXNlTWFwcGluZzpOcyxtZXRyaWNzOkdzfTtlWyJNeXJpYWRQcm8tQm9sZEl0Il09ZVsiTXlyaWFkUHJvLUJvbGRJdGFsaWMiXT1lWyJQZGZKUy1GYWxsYmFjay1Cb2xkSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiLGZhY3RvcnM6WHMsYmFzZVdpZHRoczpEcyxiYXNlTWFwcGluZzpNcyxtZXRyaWNzOldzfTtlLkFyaWFsTVQ9ZS5BcmlhbD1lWyJBcmlhbC1SZWd1bGFyIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIiLGJhc2VXaWR0aHM6enMsYmFzZU1hcHBpbmc6THN9O2VbIkFyaWFsLUJvbGRNVCJdPWVbIkFyaWFsLUJvbGQiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZCIsYmFzZVdpZHRoczpCcyxiYXNlTWFwcGluZzpSc307ZVsiQXJpYWwtSXRhbGljTVQiXT1lWyJBcmlhbC1JdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtSXRhbGljIixiYXNlV2lkdGhzOkVzLGJhc2VNYXBwaW5nOk5zfTtlWyJBcmlhbC1Cb2xkSXRhbGljTVQiXT1lWyJBcmlhbC1Cb2xkSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiLGJhc2VXaWR0aHM6RHMsYmFzZU1hcHBpbmc6TXN9O2VbIkNhbGlicmktUmVndWxhciJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyIixmYWN0b3JzOnZzLGJhc2VXaWR0aHM6enMsYmFzZU1hcHBpbmc6THMsbWV0cmljczpTc307ZVsiQ2FsaWJyaS1Cb2xkIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGQiLGZhY3RvcnM6YnMsYmFzZVdpZHRoczpCcyxiYXNlTWFwcGluZzpScyxtZXRyaWNzOndzfTtlWyJDYWxpYnJpLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGZhY3RvcnM6eXMsYmFzZVdpZHRoczpFcyxiYXNlTWFwcGluZzpOcyxtZXRyaWNzOnFzfTtlWyJDYWxpYnJpLUJvbGRJdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYyIsZmFjdG9yczpqcyxiYXNlV2lkdGhzOkRzLGJhc2VNYXBwaW5nOk1zLG1ldHJpY3M6a3N9O2VbIlNlZ29ldWktUmVndWxhciJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyIixmYWN0b3JzOm5yLGJhc2VXaWR0aHM6enMsYmFzZU1hcHBpbmc6THMsbWV0cmljczphcn07ZVsiU2Vnb2V1aS1Cb2xkIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGQiLGZhY3RvcnM6WXMsYmFzZVdpZHRoczpCcyxiYXNlTWFwcGluZzpScyxtZXRyaWNzOkpzfTtlWyJTZWdvZXVpLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGZhY3RvcnM6ZXIsYmFzZVdpZHRoczpFcyxiYXNlTWFwcGluZzpOcyxtZXRyaWNzOnRyfTtlWyJTZWdvZXVpLUJvbGRJdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYyIsZmFjdG9yczpRcyxiYXNlV2lkdGhzOkRzLGJhc2VNYXBwaW5nOk1zLG1ldHJpY3M6WnN9O2VbIkhlbHZldGljYS1SZWd1bGFyIl09ZS5IZWx2ZXRpY2E9e25hbWU6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIiLGZhY3RvcnM6SHMsYmFzZVdpZHRoczp6cyxiYXNlTWFwcGluZzpMcyxtZXRyaWNzOk9zfTtlWyJIZWx2ZXRpY2EtQm9sZCJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkIixmYWN0b3JzOnhzLGJhc2VXaWR0aHM6QnMsYmFzZU1hcHBpbmc6UnMsbWV0cmljczpBc307ZVsiSGVsdmV0aWNhLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGZhY3RvcnM6RnMsYmFzZVdpZHRoczpFcyxiYXNlTWFwcGluZzpOcyxtZXRyaWNzOlRzfTtlWyJIZWx2ZXRpY2EtQm9sZEl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljIixmYWN0b3JzOkNzLGJhc2VXaWR0aHM6RHMsYmFzZU1hcHBpbmc6TXMsbWV0cmljczpJc319KTtmdW5jdGlvbiBnZXRYZmFGb250TmFtZShlKXtjb25zdCB0PW5vcm1hbGl6ZUZvbnROYW1lKGUpO3JldHVybiBzcigpW3RdfWZ1bmN0aW9uIGdldFhmYUZvbnREaWN0KGUpe2NvbnN0IHQ9ZnVuY3Rpb24gZ2V0WGZhRm9udFdpZHRocyhlKXtjb25zdCB0PWdldFhmYUZvbnROYW1lKGUpO2lmKCF0KXJldHVybiBudWxsO2NvbnN0e2Jhc2VXaWR0aHM6bixiYXNlTWFwcGluZzphLGZhY3RvcnM6c309dCxyPXM/bi5tYXAoKGUsdCk9PmUqc1t0XSk6bjtsZXQgaSxvPS0yO2NvbnN0IGw9W107Zm9yKGNvbnN0W2UsdF1vZiBhLm1hcCgoZSx0KT0+W2UsdF0pLnNvcnQoKFtlXSxbdF0pPT5lLXQpKWlmKC0xIT09ZSlpZihlPT09bysxKXtpLnB1c2goclt0XSk7bys9MX1lbHNle289ZTtpPVtyW3RdXTtsLnB1c2goZSxpKX1yZXR1cm4gbH0oZSksbj1uZXcgRGljdChudWxsKTtuLnNldCgiQmFzZUZvbnQiLE5hbWUuZ2V0KGUpKTtuLnNldCgiVHlwZSIsTmFtZS5nZXQoIkZvbnQiKSk7bi5zZXQoIlN1YnR5cGUiLE5hbWUuZ2V0KCJDSURGb250VHlwZTIiKSk7bi5zZXQoIkVuY29kaW5nIixOYW1lLmdldCgiSWRlbnRpdHktSCIpKTtuLnNldCgiQ0lEVG9HSURNYXAiLE5hbWUuZ2V0KCJJZGVudGl0eSIpKTtuLnNldCgiVyIsdCk7bi5zZXQoIkZpcnN0Q2hhciIsdFswXSk7bi5zZXQoIkxhc3RDaGFyIix0LmF0KC0yKSt0LmF0KC0xKS5sZW5ndGgtMSk7Y29uc3QgYT1uZXcgRGljdChudWxsKTtuLnNldCgiRm9udERlc2NyaXB0b3IiLGEpO2NvbnN0IHM9bmV3IERpY3QobnVsbCk7cy5zZXQoIk9yZGVyaW5nIiwiSWRlbnRpdHkiKTtzLnNldCgiUmVnaXN0cnkiLCJBZG9iZSIpO3Muc2V0KCJTdXBwbGVtZW50IiwwKTtuLnNldCgiQ0lEU3lzdGVtSW5mbyIscyk7cmV0dXJuIG59Y2xhc3MgUG9zdFNjcmlwdFBhcnNlcntjb25zdHJ1Y3RvcihlKXt0aGlzLmxleGVyPWU7dGhpcy5vcGVyYXRvcnM9W107dGhpcy50b2tlbj1udWxsO3RoaXMucHJldj1udWxsfW5leHRUb2tlbigpe3RoaXMucHJldj10aGlzLnRva2VuO3RoaXMudG9rZW49dGhpcy5sZXhlci5nZXRUb2tlbigpfWFjY2VwdChlKXtpZih0aGlzLnRva2VuLnR5cGU9PT1lKXt0aGlzLm5leHRUb2tlbigpO3JldHVybiEwfXJldHVybiExfWV4cGVjdChlKXtpZih0aGlzLmFjY2VwdChlKSlyZXR1cm4hMDt0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVuZXhwZWN0ZWQgc3ltYm9sOiBmb3VuZCAke3RoaXMudG9rZW4udHlwZX0gZXhwZWN0ZWQgJHtlfS5gKX1wYXJzZSgpe3RoaXMubmV4dFRva2VuKCk7dGhpcy5leHBlY3QocnIuTEJSQUNFKTt0aGlzLnBhcnNlQmxvY2soKTt0aGlzLmV4cGVjdChyci5SQlJBQ0UpO3JldHVybiB0aGlzLm9wZXJhdG9yc31wYXJzZUJsb2NrKCl7Zm9yKDs7KWlmKHRoaXMuYWNjZXB0KHJyLk5VTUJFUikpdGhpcy5vcGVyYXRvcnMucHVzaCh0aGlzLnByZXYudmFsdWUpO2Vsc2UgaWYodGhpcy5hY2NlcHQocnIuT1BFUkFUT1IpKXRoaXMub3BlcmF0b3JzLnB1c2godGhpcy5wcmV2LnZhbHVlKTtlbHNle2lmKCF0aGlzLmFjY2VwdChyci5MQlJBQ0UpKXJldHVybjt0aGlzLnBhcnNlQ29uZGl0aW9uKCl9fXBhcnNlQ29uZGl0aW9uKCl7Y29uc3QgZT10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5vcGVyYXRvcnMucHVzaChudWxsLG51bGwpO3RoaXMucGFyc2VCbG9jaygpO3RoaXMuZXhwZWN0KHJyLlJCUkFDRSk7aWYodGhpcy5hY2NlcHQocnIuSUYpKXt0aGlzLm9wZXJhdG9yc1tlXT10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5vcGVyYXRvcnNbZSsxXT0ianoifWVsc2V7aWYoIXRoaXMuYWNjZXB0KHJyLkxCUkFDRSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQUyBGdW5jdGlvbjogZXJyb3IgcGFyc2luZyBjb25kaXRpb25hbC4iKTt7Y29uc3QgdD10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5vcGVyYXRvcnMucHVzaChudWxsLG51bGwpO2NvbnN0IG49dGhpcy5vcGVyYXRvcnMubGVuZ3RoO3RoaXMucGFyc2VCbG9jaygpO3RoaXMuZXhwZWN0KHJyLlJCUkFDRSk7dGhpcy5leHBlY3QocnIuSUZFTFNFKTt0aGlzLm9wZXJhdG9yc1t0XT10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5vcGVyYXRvcnNbdCsxXT0iaiI7dGhpcy5vcGVyYXRvcnNbZV09bjt0aGlzLm9wZXJhdG9yc1tlKzFdPSJqeiJ9fX19Y29uc3QgcnI9e0xCUkFDRTowLFJCUkFDRToxLE5VTUJFUjoyLE9QRVJBVE9SOjMsSUY6NCxJRkVMU0U6NX07Y2xhc3MgUG9zdFNjcmlwdFRva2Vue3N0YXRpYyBnZXQgb3BDYWNoZSgpe3JldHVybiBzaGFkb3codGhpcywib3BDYWNoZSIsT2JqZWN0LmNyZWF0ZShudWxsKSl9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnR5cGU9ZTt0aGlzLnZhbHVlPXR9c3RhdGljIGdldE9wZXJhdG9yKGUpe3JldHVybiBQb3N0U2NyaXB0VG9rZW4ub3BDYWNoZVtlXXx8PW5ldyBQb3N0U2NyaXB0VG9rZW4ocnIuT1BFUkFUT1IsZSl9c3RhdGljIGdldCBMQlJBQ0UoKXtyZXR1cm4gc2hhZG93KHRoaXMsIkxCUkFDRSIsbmV3IFBvc3RTY3JpcHRUb2tlbihyci5MQlJBQ0UsInsiKSl9c3RhdGljIGdldCBSQlJBQ0UoKXtyZXR1cm4gc2hhZG93KHRoaXMsIlJCUkFDRSIsbmV3IFBvc3RTY3JpcHRUb2tlbihyci5SQlJBQ0UsIn0iKSl9c3RhdGljIGdldCBJRigpe3JldHVybiBzaGFkb3codGhpcywiSUYiLG5ldyBQb3N0U2NyaXB0VG9rZW4ocnIuSUYsIklGIikpfXN0YXRpYyBnZXQgSUZFTFNFKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJJRkVMU0UiLG5ldyBQb3N0U2NyaXB0VG9rZW4ocnIuSUZFTFNFLCJJRkVMU0UiKSl9fWNsYXNzIFBvc3RTY3JpcHRMZXhlcntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0cmVhbT1lO3RoaXMubmV4dENoYXIoKTt0aGlzLnN0ckJ1Zj1bXX1uZXh0Q2hhcigpe3JldHVybiB0aGlzLmN1cnJlbnRDaGFyPXRoaXMuc3RyZWFtLmdldEJ5dGUoKX1nZXRUb2tlbigpe2xldCBlPSExLHQ9dGhpcy5jdXJyZW50Q2hhcjtmb3IoOzspe2lmKHQ8MClyZXR1cm4gb247aWYoZSkxMCE9PXQmJjEzIT09dHx8KGU9ITEpO2Vsc2UgaWYoMzc9PT10KWU9ITA7ZWxzZSBpZighaXNXaGl0ZVNwYWNlKHQpKWJyZWFrO3Q9dGhpcy5uZXh0Q2hhcigpfXN3aXRjaCgwfHQpe2Nhc2UgNDg6Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTQ6Y2FzZSA1NTpjYXNlIDU2OmNhc2UgNTc6Y2FzZSA0MzpjYXNlIDQ1OmNhc2UgNDY6cmV0dXJuIG5ldyBQb3N0U2NyaXB0VG9rZW4ocnIuTlVNQkVSLHRoaXMuZ2V0TnVtYmVyKCkpO2Nhc2UgMTIzOnRoaXMubmV4dENoYXIoKTtyZXR1cm4gUG9zdFNjcmlwdFRva2VuLkxCUkFDRTtjYXNlIDEyNTp0aGlzLm5leHRDaGFyKCk7cmV0dXJuIFBvc3RTY3JpcHRUb2tlbi5SQlJBQ0V9Y29uc3Qgbj10aGlzLnN0ckJ1ZjtuLmxlbmd0aD0wO25bMF09U3RyaW5nLmZyb21DaGFyQ29kZSh0KTtmb3IoOyh0PXRoaXMubmV4dENoYXIoKSk+PTAmJih0Pj02NSYmdDw9OTB8fHQ+PTk3JiZ0PD0xMjIpOyluLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSh0KSk7Y29uc3QgYT1uLmpvaW4oIiIpO3N3aXRjaChhLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaWYiOnJldHVybiBQb3N0U2NyaXB0VG9rZW4uSUY7Y2FzZSJpZmVsc2UiOnJldHVybiBQb3N0U2NyaXB0VG9rZW4uSUZFTFNFO2RlZmF1bHQ6cmV0dXJuIFBvc3RTY3JpcHRUb2tlbi5nZXRPcGVyYXRvcihhKX19Z2V0TnVtYmVyKCl7bGV0IGU9dGhpcy5jdXJyZW50Q2hhcjtjb25zdCB0PXRoaXMuc3RyQnVmO3QubGVuZ3RoPTA7dFswXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpO2Zvcig7KGU9dGhpcy5uZXh0Q2hhcigpKT49MCYmKGU+PTQ4JiZlPD01N3x8NDU9PT1lfHw0Nj09PWUpOyl0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShlKSk7Y29uc3Qgbj1wYXJzZUZsb2F0KHQuam9pbigiIikpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBmbG9hdGluZyBwb2ludCBudW1iZXI6ICR7bn1gKTtyZXR1cm4gbn19Y2xhc3MgQmFzZUxvY2FsQ2FjaGV7Y29uc3RydWN0b3IoZSl7dGhpcy5fb25seVJlZnM9ITA9PT1lPy5vbmx5UmVmcztpZighdGhpcy5fb25seVJlZnMpe3RoaXMuX25hbWVSZWZNYXA9bmV3IE1hcDt0aGlzLl9pbWFnZU1hcD1uZXcgTWFwfXRoaXMuX2ltYWdlQ2FjaGU9bmV3IFJlZlNldENhY2hlfWdldEJ5TmFtZShlKXt0aGlzLl9vbmx5UmVmcyYmdW5yZWFjaGFibGUoIlNob3VsZCBub3QgY2FsbCBgZ2V0QnlOYW1lYCBtZXRob2QuIik7Y29uc3QgdD10aGlzLl9uYW1lUmVmTWFwLmdldChlKTtyZXR1cm4gdD90aGlzLmdldEJ5UmVmKHQpOnRoaXMuX2ltYWdlTWFwLmdldChlKXx8bnVsbH1nZXRCeVJlZihlKXtyZXR1cm4gdGhpcy5faW1hZ2VDYWNoZS5nZXQoZSl8fG51bGx9c2V0KGUsdCxuKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBzZXRgIGNhbGxlZC4iKX19Y2xhc3MgTG9jYWxJbWFnZUNhY2hlIGV4dGVuZHMgQmFzZUxvY2FsQ2FjaGV7c2V0KGUsdD1udWxsLG4pe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsSW1hZ2VDYWNoZS5zZXQgLSBleHBlY3RlZCAibmFtZSIgYXJndW1lbnQuJyk7aWYodCl7aWYodGhpcy5faW1hZ2VDYWNoZS5oYXModCkpcmV0dXJuO3RoaXMuX25hbWVSZWZNYXAuc2V0KGUsdCk7dGhpcy5faW1hZ2VDYWNoZS5wdXQodCxuKX1lbHNlIHRoaXMuX2ltYWdlTWFwLmhhcyhlKXx8dGhpcy5faW1hZ2VNYXAuc2V0KGUsbil9fWNsYXNzIExvY2FsQ29sb3JTcGFjZUNhY2hlIGV4dGVuZHMgQmFzZUxvY2FsQ2FjaGV7c2V0KGU9bnVsbCx0PW51bGwsbil7aWYoInN0cmluZyIhPXR5cGVvZiBlJiYhdCl0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsQ29sb3JTcGFjZUNhY2hlLnNldCAtIGV4cGVjdGVkICJuYW1lIiBhbmQvb3IgInJlZiIgYXJndW1lbnQuJyk7aWYodCl7aWYodGhpcy5faW1hZ2VDYWNoZS5oYXModCkpcmV0dXJuO251bGwhPT1lJiZ0aGlzLl9uYW1lUmVmTWFwLnNldChlLHQpO3RoaXMuX2ltYWdlQ2FjaGUucHV0KHQsbil9ZWxzZSB0aGlzLl9pbWFnZU1hcC5oYXMoZSl8fHRoaXMuX2ltYWdlTWFwLnNldChlLG4pfX1jbGFzcyBMb2NhbEZ1bmN0aW9uQ2FjaGUgZXh0ZW5kcyBCYXNlTG9jYWxDYWNoZXtjb25zdHJ1Y3RvcihlKXtzdXBlcih7b25seVJlZnM6ITB9KX1zZXQoZT1udWxsLHQsbil7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCdMb2NhbEZ1bmN0aW9uQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgInJlZiIgYXJndW1lbnQuJyk7dGhpcy5faW1hZ2VDYWNoZS5oYXModCl8fHRoaXMuX2ltYWdlQ2FjaGUucHV0KHQsbil9fWNsYXNzIExvY2FsR1N0YXRlQ2FjaGUgZXh0ZW5kcyBCYXNlTG9jYWxDYWNoZXtzZXQoZSx0PW51bGwsbil7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcignTG9jYWxHU3RhdGVDYWNoZS5zZXQgLSBleHBlY3RlZCAibmFtZSIgYXJndW1lbnQuJyk7aWYodCl7aWYodGhpcy5faW1hZ2VDYWNoZS5oYXModCkpcmV0dXJuO3RoaXMuX25hbWVSZWZNYXAuc2V0KGUsdCk7dGhpcy5faW1hZ2VDYWNoZS5wdXQodCxuKX1lbHNlIHRoaXMuX2ltYWdlTWFwLmhhcyhlKXx8dGhpcy5faW1hZ2VNYXAuc2V0KGUsbil9fWNsYXNzIExvY2FsVGlsaW5nUGF0dGVybkNhY2hlIGV4dGVuZHMgQmFzZUxvY2FsQ2FjaGV7Y29uc3RydWN0b3IoZSl7c3VwZXIoe29ubHlSZWZzOiEwfSl9c2V0KGU9bnVsbCx0LG4pe2lmKCF0KXRocm93IG5ldyBFcnJvcignTG9jYWxUaWxpbmdQYXR0ZXJuQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgInJlZiIgYXJndW1lbnQuJyk7dGhpcy5faW1hZ2VDYWNoZS5oYXModCl8fHRoaXMuX2ltYWdlQ2FjaGUucHV0KHQsbil9fWNsYXNzIFJlZ2lvbmFsSW1hZ2VDYWNoZSBleHRlbmRzIEJhc2VMb2NhbENhY2hle2NvbnN0cnVjdG9yKGUpe3N1cGVyKHtvbmx5UmVmczohMH0pfXNldChlPW51bGwsdCxuKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQgLSBleHBlY3RlZCAicmVmIiBhcmd1bWVudC4nKTt0aGlzLl9pbWFnZUNhY2hlLmhhcyh0KXx8dGhpcy5faW1hZ2VDYWNoZS5wdXQodCxuKX19Y2xhc3MgR2xvYmFsQ29sb3JTcGFjZUNhY2hlIGV4dGVuZHMgQmFzZUxvY2FsQ2FjaGV7Y29uc3RydWN0b3IoZSl7c3VwZXIoe29ubHlSZWZzOiEwfSl9c2V0KGU9bnVsbCx0LG4pe2lmKCF0KXRocm93IG5ldyBFcnJvcignR2xvYmFsQ29sb3JTcGFjZUNhY2hlLnNldCAtIGV4cGVjdGVkICJyZWYiIGFyZ3VtZW50LicpO3RoaXMuX2ltYWdlQ2FjaGUuaGFzKHQpfHx0aGlzLl9pbWFnZUNhY2hlLnB1dCh0LG4pfWNsZWFyKCl7dGhpcy5faW1hZ2VDYWNoZS5jbGVhcigpfX1jbGFzcyBHbG9iYWxJbWFnZUNhY2hle3N0YXRpYyBOVU1fUEFHRVNfVEhSRVNIT0xEPTI7c3RhdGljIE1JTl9JTUFHRVNfVE9fQ0FDSEU9MTA7c3RhdGljIE1BWF9CWVRFX1NJWkU9NWU3OyNsZT1uZXcgUmVmU2V0O2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVmQ2FjaGU9bmV3IFJlZlNldENhY2hlO3RoaXMuX2ltYWdlQ2FjaGU9bmV3IFJlZlNldENhY2hlfWdldCNmZSgpe2xldCBlPTA7Zm9yKGNvbnN0IHQgb2YgdGhpcy5faW1hZ2VDYWNoZSllKz10LmJ5dGVTaXplO3JldHVybiBlfWdldCNjZSgpe3JldHVybiEodGhpcy5faW1hZ2VDYWNoZS5zaXplPEdsb2JhbEltYWdlQ2FjaGUuTUlOX0lNQUdFU19UT19DQUNIRSkmJiEodGhpcy4jZmU8R2xvYmFsSW1hZ2VDYWNoZS5NQVhfQllURV9TSVpFKX1zaG91bGRDYWNoZShlLHQpe2xldCBuPXRoaXMuX3JlZkNhY2hlLmdldChlKTtpZighbil7bj1uZXcgU2V0O3RoaXMuX3JlZkNhY2hlLnB1dChlLG4pfW4uYWRkKHQpO3JldHVybiEobi5zaXplPEdsb2JhbEltYWdlQ2FjaGUuTlVNX1BBR0VTX1RIUkVTSE9MRCkmJiEoIXRoaXMuX2ltYWdlQ2FjaGUuaGFzKGUpJiZ0aGlzLiNjZSl9YWRkRGVjb2RlRmFpbGVkKGUpe3RoaXMuI2xlLnB1dChlKX1oYXNEZWNvZGVGYWlsZWQoZSl7cmV0dXJuIHRoaXMuI2xlLmhhcyhlKX1hZGRCeXRlU2l6ZShlLHQpe2NvbnN0IG49dGhpcy5faW1hZ2VDYWNoZS5nZXQoZSk7biYmKG4uYnl0ZVNpemV8fChuLmJ5dGVTaXplPXQpKX1nZXREYXRhKGUsdCl7Y29uc3Qgbj10aGlzLl9yZWZDYWNoZS5nZXQoZSk7aWYoIW4pcmV0dXJuIG51bGw7aWYobi5zaXplPEdsb2JhbEltYWdlQ2FjaGUuTlVNX1BBR0VTX1RIUkVTSE9MRClyZXR1cm4gbnVsbDtjb25zdCBhPXRoaXMuX2ltYWdlQ2FjaGUuZ2V0KGUpO2lmKCFhKXJldHVybiBudWxsO24uYWRkKHQpO3JldHVybiBhfXNldERhdGEoZSx0KXtpZighdGhpcy5fcmVmQ2FjaGUuaGFzKGUpKXRocm93IG5ldyBFcnJvcignR2xvYmFsSW1hZ2VDYWNoZS5zZXREYXRhIC0gZXhwZWN0ZWQgInNob3VsZENhY2hlIiB0byBoYXZlIGJlZW4gY2FsbGVkLicpO3RoaXMuX2ltYWdlQ2FjaGUuaGFzKGUpfHwodGhpcy4jY2U/d2FybigiR2xvYmFsSW1hZ2VDYWNoZS5zZXREYXRhIC0gY2FjaGUgbGltaXQgcmVhY2hlZC4iKTp0aGlzLl9pbWFnZUNhY2hlLnB1dChlLHQpKX1jbGVhcihlPSExKXtpZighZSl7dGhpcy4jbGUuY2xlYXIoKTt0aGlzLl9yZWZDYWNoZS5jbGVhcigpfXRoaXMuX2ltYWdlQ2FjaGUuY2xlYXIoKX19Y2xhc3MgUERGRnVuY3Rpb25GYWN0b3J5e2NvbnN0cnVjdG9yKHt4cmVmOmUsaXNFdmFsU3VwcG9ydGVkOnQ9ITB9KXt0aGlzLnhyZWY9ZTt0aGlzLmlzRXZhbFN1cHBvcnRlZD0hMSE9PXR9Y3JlYXRlKGUsdD0hMSl7bGV0IG4sYTtlIGluc3RhbmNlb2YgUmVmP249ZTplIGluc3RhbmNlb2YgRGljdD9uPWUub2JqSWQ6ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJihuPWUuZGljdD8ub2JqSWQpO2lmKG4pe2NvbnN0IGU9dGhpcy5fbG9jYWxGdW5jdGlvbkNhY2hlLmdldEJ5UmVmKG4pO2lmKGUpcmV0dXJuIGV9Y29uc3Qgcz10aGlzLnhyZWYuZmV0Y2hJZlJlZihlKTtpZihBcnJheS5pc0FycmF5KHMpKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoJ1BERkZ1bmN0aW9uRmFjdG9yeS5jcmVhdGUgLSBleHBlY3RlZCAicGFyc2VBcnJheSIgYXJndW1lbnQuJyk7YT1QREZGdW5jdGlvbi5wYXJzZUFycmF5KHRoaXMscyl9ZWxzZSBhPVBERkZ1bmN0aW9uLnBhcnNlKHRoaXMscyk7biYmdGhpcy5fbG9jYWxGdW5jdGlvbkNhY2hlLnNldChudWxsLG4sYSk7cmV0dXJuIGF9Z2V0IF9sb2NhbEZ1bmN0aW9uQ2FjaGUoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9sb2NhbEZ1bmN0aW9uQ2FjaGUiLG5ldyBMb2NhbEZ1bmN0aW9uQ2FjaGUpfX1mdW5jdGlvbiB0b051bWJlckFycmF5KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2lzTnVtYmVyQXJyYXkoZSxudWxsKT9lOmUubWFwKGU9PitlKTpudWxsfWNsYXNzIFBERkZ1bmN0aW9ue3N0YXRpYyBnZXRTYW1wbGVBcnJheShlLHQsbixhKXtsZXQgcz10O2Zvcihjb25zdCB0IG9mIGUpcyo9dDtjb25zdCByPW5ldyBBcnJheShzKTtsZXQgaT0wLG89MDtjb25zdCBsPTEvKDIqKm4tMSksZj1hLmdldEJ5dGVzKChzKm4rNykvOCk7bGV0IGM9MDtmb3IobGV0IGU9MDtlPHM7ZSsrKXtmb3IoO2k8bjspe288PD04O298PWZbYysrXTtpKz04fWktPW47cltlXT0obz4+aSkqbDtvJj0oMTw8aSktMX1yZXR1cm4gcn1zdGF0aWMgcGFyc2UoZSx0KXtjb25zdCBuPXQuZGljdHx8dDtzd2l0Y2gobi5nZXQoIkZ1bmN0aW9uVHlwZSIpKXtjYXNlIDA6cmV0dXJuIHRoaXMuY29uc3RydWN0U2FtcGxlZChlLHQsbik7Y2FzZSAxOmJyZWFrO2Nhc2UgMjpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RJbnRlcnBvbGF0ZWQoZSxuKTtjYXNlIDM6cmV0dXJuIHRoaXMuY29uc3RydWN0U3RpY2hlZChlLG4pO2Nhc2UgNDpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RQb3N0U2NyaXB0KGUsdCxuKX10aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gdHlwZSBvZiBmdW5jdGlvbiIpfXN0YXRpYyBwYXJzZUFycmF5KGUsdCl7Y29uc3R7eHJlZjpufT1lLGE9W107Zm9yKGNvbnN0IHMgb2YgdClhLnB1c2godGhpcy5wYXJzZShlLG4uZmV0Y2hJZlJlZihzKSkpO3JldHVybiBmdW5jdGlvbihlLHQsbixzKXtmb3IobGV0IHI9MCxpPWEubGVuZ3RoO3I8aTtyKyspYVtyXShlLHQsbixzK3IpfX1zdGF0aWMgY29uc3RydWN0U2FtcGxlZChlLHQsbil7ZnVuY3Rpb24gdG9NdWx0aUFycmF5KGUpe2NvbnN0IHQ9ZS5sZW5ndGgsbj1bXTtsZXQgYT0wO2ZvcihsZXQgcz0wO3M8dDtzKz0yKW5bYSsrXT1bZVtzXSxlW3MrMV1dO3JldHVybiBufWZ1bmN0aW9uIGludGVycG9sYXRlKGUsdCxuLGEscyl7cmV0dXJuIGErKHMtYSkvKG4tdCkqKGUtdCl9bGV0IGE9dG9OdW1iZXJBcnJheShuLmdldEFycmF5KCJEb21haW4iKSkscz10b051bWJlckFycmF5KG4uZ2V0QXJyYXkoIlJhbmdlIikpO2lmKCFhfHwhcyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIGRvbWFpbiBvciByYW5nZSIpO2NvbnN0IHI9YS5sZW5ndGgvMixpPXMubGVuZ3RoLzI7YT10b011bHRpQXJyYXkoYSk7cz10b011bHRpQXJyYXkocyk7Y29uc3Qgbz10b051bWJlckFycmF5KG4uZ2V0QXJyYXkoIlNpemUiKSksbD1uLmdldCgiQml0c1BlclNhbXBsZSIpLGY9bi5nZXQoIk9yZGVyIil8fDE7MSE9PWYmJmluZm8oIk5vIHN1cHBvcnQgZm9yIGN1YmljIHNwbGluZSBpbnRlcnBvbGF0aW9uOiAiK2YpO2xldCBjPXRvTnVtYmVyQXJyYXkobi5nZXRBcnJheSgiRW5jb2RlIikpO2lmKGMpYz10b011bHRpQXJyYXkoYyk7ZWxzZXtjPVtdO2ZvcihsZXQgZT0wO2U8cjsrK2UpYy5wdXNoKFswLG9bZV0tMV0pfWxldCBoPXRvTnVtYmVyQXJyYXkobi5nZXRBcnJheSgiRGVjb2RlIikpO2g9aD90b011bHRpQXJyYXkoaCk6cztjb25zdCB1PXRoaXMuZ2V0U2FtcGxlQXJyYXkobyxpLGwsdCk7cmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdFNhbXBsZWRGbihlLHQsbixsKXtjb25zdCBmPTE8PHIsbT1uZXcgRmxvYXQ2NEFycmF5KGYpLmZpbGwoMSkscD1uZXcgVWludDMyQXJyYXkoZik7bGV0IGQsZyxiPWksdz0xO2ZvcihkPTA7ZDxyOysrZCl7Y29uc3Qgbj1hW2RdWzBdLHM9YVtkXVsxXTtsZXQgcj1pbnRlcnBvbGF0ZShNYXRoQ2xhbXAoZVt0K2RdLG4scyksbixzLGNbZF1bMF0sY1tkXVsxXSk7Y29uc3QgaT1vW2RdO3I9TWF0aENsYW1wKHIsMCxpLTEpO2NvbnN0IGw9cjxpLTE/TWF0aC5mbG9vcihyKTpyLTEsaD1sKzEtcix1PXItbCxqPWwqYixrPWorYjtmb3IoZz0wO2c8ZjtnKyspaWYoZyZ3KXttW2ddKj11O3BbZ10rPWt9ZWxzZXttW2ddKj1oO3BbZ10rPWp9Yio9aTt3PDw9MX1mb3IoZz0wO2c8aTsrK2cpe2xldCBlPTA7Zm9yKGQ9MDtkPGY7ZCsrKWUrPXVbcFtkXStnXSptW2RdO2U9aW50ZXJwb2xhdGUoZSwwLDEsaFtnXVswXSxoW2ddWzFdKTtuW2wrZ109TWF0aENsYW1wKGUsc1tnXVswXSxzW2ddWzFdKX19fXN0YXRpYyBjb25zdHJ1Y3RJbnRlcnBvbGF0ZWQoZSx0KXtjb25zdCBuPXRvTnVtYmVyQXJyYXkodC5nZXRBcnJheSgiQzAiKSl8fFswXSxhPXRvTnVtYmVyQXJyYXkodC5nZXRBcnJheSgiQzEiKSl8fFsxXSxzPXQuZ2V0KCJOIikscj1bXTtmb3IobGV0IGU9MCx0PW4ubGVuZ3RoO2U8dDsrK2Upci5wdXNoKGFbZV0tbltlXSk7Y29uc3QgaT1yLmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24gY29uc3RydWN0SW50ZXJwb2xhdGVkRm4oZSx0LGEsbyl7Y29uc3QgbD0xPT09cz9lW3RdOmVbdF0qKnM7Zm9yKGxldCBlPTA7ZTxpOysrZSlhW28rZV09bltlXStsKnJbZV19fXN0YXRpYyBjb25zdHJ1Y3RTdGljaGVkKGUsdCl7Y29uc3Qgbj10b051bWJlckFycmF5KHQuZ2V0QXJyYXkoIkRvbWFpbiIpKTtpZighbil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIGRvbWFpbiIpO2lmKDEhPT1uLmxlbmd0aC8yKXRocm93IG5ldyBGb3JtYXRFcnJvcigiQmFkIGRvbWFpbiBmb3Igc3RpY2hlZCBmdW5jdGlvbiIpO2NvbnN0e3hyZWY6YX09ZSxzPVtdO2Zvcihjb25zdCBuIG9mIHQuZ2V0KCJGdW5jdGlvbnMiKSlzLnB1c2godGhpcy5wYXJzZShlLGEuZmV0Y2hJZlJlZihuKSkpO2NvbnN0IHI9dG9OdW1iZXJBcnJheSh0LmdldEFycmF5KCJCb3VuZHMiKSksaT10b051bWJlckFycmF5KHQuZ2V0QXJyYXkoIkVuY29kZSIpKSxvPW5ldyBGbG9hdDMyQXJyYXkoMSk7cmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdFN0aWNoZWRGbihlLHQsYSxsKXtjb25zdCBmPU1hdGhDbGFtcChlW3RdLG5bMF0sblsxXSksYz1yLmxlbmd0aDtsZXQgaDtmb3IoaD0wO2g8YyYmIShmPHJbaF0pOysraCk7Y29uc3QgdT1oPjA/cltoLTFdOm5bMF0sbT1oPGM/cltoXTpuWzFdLHA9aVsyKmhdLGQ9aVsyKmgrMV07b1swXT11PT09bT9wOnArKGYtdSkqKGQtcCkvKG0tdSk7c1toXShvLDAsYSxsKX19c3RhdGljIGNvbnN0cnVjdFBvc3RTY3JpcHQoZSx0LG4pe2NvbnN0IGE9dG9OdW1iZXJBcnJheShuLmdldEFycmF5KCJEb21haW4iKSkscz10b051bWJlckFycmF5KG4uZ2V0QXJyYXkoIlJhbmdlIikpO2lmKCFhKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTm8gZG9tYWluLiIpO2lmKCFzKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTm8gcmFuZ2UuIik7Y29uc3Qgcj1uZXcgUG9zdFNjcmlwdExleGVyKHQpLGk9bmV3IFBvc3RTY3JpcHRQYXJzZXIocikucGFyc2UoKTtpZihlLmlzRXZhbFN1cHBvcnRlZCYmRmVhdHVyZVRlc3QuaXNFdmFsU3VwcG9ydGVkKXtjb25zdCBlPShuZXcgUG9zdFNjcmlwdENvbXBpbGVyKS5jb21waWxlKGksYSxzKTtpZihlKXJldHVybiBuZXcgRnVuY3Rpb24oInNyYyIsInNyY09mZnNldCIsImRlc3QiLCJkZXN0T2Zmc2V0IixlKX1pbmZvKCJVbmFibGUgdG8gY29tcGlsZSBQUyBmdW5jdGlvbiIpO2NvbnN0IG89cy5sZW5ndGg+PjEsbD1hLmxlbmd0aD4+MSxmPW5ldyBQb3N0U2NyaXB0RXZhbHVhdG9yKGkpLGM9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgaD04MTkyO2NvbnN0IHU9bmV3IEZsb2F0MzJBcnJheShsKTtyZXR1cm4gZnVuY3Rpb24gY29uc3RydWN0UG9zdFNjcmlwdEZuKGUsdCxuLGEpe2xldCByLGksbT0iIjtjb25zdCBwPXU7Zm9yKHI9MDtyPGw7cisrKXtpPWVbdCtyXTtwW3JdPWk7bSs9aSsiXyJ9Y29uc3QgZD1jW21dO2lmKHZvaWQgMCE9PWQpe24uc2V0KGQsYSk7cmV0dXJufWNvbnN0IGc9bmV3IEZsb2F0MzJBcnJheShvKSxiPWYuZXhlY3V0ZShwKSx3PWIubGVuZ3RoLW87Zm9yKHI9MDtyPG87cisrKWdbcl09TWF0aENsYW1wKGJbdytyXSxzWzIqcl0sc1syKnIrMV0pO2lmKGg+MCl7aC0tO2NbbV09Z31uLnNldChnLGEpfX19ZnVuY3Rpb24gaXNQREZGdW5jdGlvbihlKXtsZXQgdDtpZihlIGluc3RhbmNlb2YgRGljdCl0PWU7ZWxzZXtpZighKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKSlyZXR1cm4hMTt0PWUuZGljdH1yZXR1cm4gdC5oYXMoIkZ1bmN0aW9uVHlwZSIpfWNsYXNzIFBvc3RTY3JpcHRTdGFja3tzdGF0aWMgTUFYX1NUQUNLX1NJWkU9MTAwO2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RhY2s9ZT9BcnJheS5mcm9tKGUpOltdfXB1c2goZSl7aWYodGhpcy5zdGFjay5sZW5ndGg+PVBvc3RTY3JpcHRTdGFjay5NQVhfU1RBQ0tfU0laRSl0aHJvdyBuZXcgRXJyb3IoIlBvc3RTY3JpcHQgZnVuY3Rpb24gc3RhY2sgb3ZlcmZsb3cuIik7dGhpcy5zdGFjay5wdXNoKGUpfXBvcCgpe2lmKHRoaXMuc3RhY2subGVuZ3RoPD0wKXRocm93IG5ldyBFcnJvcigiUG9zdFNjcmlwdCBmdW5jdGlvbiBzdGFjayB1bmRlcmZsb3cuIik7cmV0dXJuIHRoaXMuc3RhY2sucG9wKCl9Y29weShlKXtpZih0aGlzLnN0YWNrLmxlbmd0aCtlPj1Qb3N0U2NyaXB0U3RhY2suTUFYX1NUQUNLX1NJWkUpdGhyb3cgbmV3IEVycm9yKCJQb3N0U2NyaXB0IGZ1bmN0aW9uIHN0YWNrIG92ZXJmbG93LiIpO2NvbnN0IHQ9dGhpcy5zdGFjaztmb3IobGV0IG49dC5sZW5ndGgtZSxhPWUtMTthPj0wO2EtLSxuKyspdC5wdXNoKHRbbl0pfWluZGV4KGUpe3RoaXMucHVzaCh0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLWUtMV0pfXJvbGwoZSx0KXtjb25zdCBuPXRoaXMuc3RhY2ssYT1uLmxlbmd0aC1lLHM9bi5sZW5ndGgtMSxyPWErKHQtTWF0aC5mbG9vcih0L2UpKmUpO2ZvcihsZXQgZT1hLHQ9cztlPHQ7ZSsrLHQtLSl7Y29uc3QgYT1uW2VdO25bZV09blt0XTtuW3RdPWF9Zm9yKGxldCBlPWEsdD1yLTE7ZTx0O2UrKyx0LS0pe2NvbnN0IGE9bltlXTtuW2VdPW5bdF07blt0XT1hfWZvcihsZXQgZT1yLHQ9cztlPHQ7ZSsrLHQtLSl7Y29uc3QgYT1uW2VdO25bZV09blt0XTtuW3RdPWF9fX1jbGFzcyBQb3N0U2NyaXB0RXZhbHVhdG9ye2NvbnN0cnVjdG9yKGUpe3RoaXMub3BlcmF0b3JzPWV9ZXhlY3V0ZShlKXtjb25zdCB0PW5ldyBQb3N0U2NyaXB0U3RhY2soZSk7bGV0IG49MDtjb25zdCBhPXRoaXMub3BlcmF0b3JzLHM9YS5sZW5ndGg7bGV0IHIsaSxvO2Zvcig7bjxzOyl7cj1hW24rK107aWYoIm51bWJlciIhPXR5cGVvZiByKXN3aXRjaChyKXtjYXNlImp6IjpvPXQucG9wKCk7aT10LnBvcCgpO2l8fChuPW8pO2JyZWFrO2Nhc2UiaiI6aT10LnBvcCgpO249aTticmVhaztjYXNlImFicyI6aT10LnBvcCgpO3QucHVzaChNYXRoLmFicyhpKSk7YnJlYWs7Y2FzZSJhZGQiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5wdXNoKGkrbyk7YnJlYWs7Y2FzZSJhbmQiOm89dC5wb3AoKTtpPXQucG9wKCk7ImJvb2xlYW4iPT10eXBlb2YgaSYmImJvb2xlYW4iPT10eXBlb2Ygbz90LnB1c2goaSYmbyk6dC5wdXNoKGkmbyk7YnJlYWs7Y2FzZSJhdGFuIjpvPXQucG9wKCk7aT10LnBvcCgpO2k9TWF0aC5hdGFuMihpLG8pL01hdGguUEkqMTgwO2k8MCYmKGkrPTM2MCk7dC5wdXNoKGkpO2JyZWFrO2Nhc2UiYml0c2hpZnQiOm89dC5wb3AoKTtpPXQucG9wKCk7aT4wP3QucHVzaChpPDxvKTp0LnB1c2goaT4+byk7YnJlYWs7Y2FzZSJjZWlsaW5nIjppPXQucG9wKCk7dC5wdXNoKE1hdGguY2VpbChpKSk7YnJlYWs7Y2FzZSJjb3B5IjppPXQucG9wKCk7dC5jb3B5KGkpO2JyZWFrO2Nhc2UiY29zIjppPXQucG9wKCk7dC5wdXNoKE1hdGguY29zKGklMzYwLzE4MCpNYXRoLlBJKSk7YnJlYWs7Y2FzZSJjdmkiOmk9MHx0LnBvcCgpO3QucHVzaChpKTticmVhaztjYXNlImN2ciI6YnJlYWs7Y2FzZSJkaXYiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5wdXNoKGkvbyk7YnJlYWs7Y2FzZSJkdXAiOnQuY29weSgxKTticmVhaztjYXNlImVxIjpvPXQucG9wKCk7aT10LnBvcCgpO3QucHVzaChpPT09byk7YnJlYWs7Y2FzZSJleGNoIjp0LnJvbGwoMiwxKTticmVhaztjYXNlImV4cCI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaSoqbyk7YnJlYWs7Y2FzZSJmYWxzZSI6dC5wdXNoKCExKTticmVhaztjYXNlImZsb29yIjppPXQucG9wKCk7dC5wdXNoKE1hdGguZmxvb3IoaSkpO2JyZWFrO2Nhc2UiZ2UiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5wdXNoKGk+PW8pO2JyZWFrO2Nhc2UiZ3QiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5wdXNoKGk+byk7YnJlYWs7Y2FzZSJpZGl2IjpvPXQucG9wKCk7aT10LnBvcCgpO3QucHVzaChpL298MCk7YnJlYWs7Y2FzZSJpbmRleCI6aT10LnBvcCgpO3QuaW5kZXgoaSk7YnJlYWs7Y2FzZSJsZSI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaTw9byk7YnJlYWs7Y2FzZSJsbiI6aT10LnBvcCgpO3QucHVzaChNYXRoLmxvZyhpKSk7YnJlYWs7Y2FzZSJsb2ciOmk9dC5wb3AoKTt0LnB1c2goTWF0aC5sb2cxMChpKSk7YnJlYWs7Y2FzZSJsdCI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaTxvKTticmVhaztjYXNlIm1vZCI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaSVvKTticmVhaztjYXNlIm11bCI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaSpvKTticmVhaztjYXNlIm5lIjpvPXQucG9wKCk7aT10LnBvcCgpO3QucHVzaChpIT09byk7YnJlYWs7Y2FzZSJuZWciOmk9dC5wb3AoKTt0LnB1c2goLWkpO2JyZWFrO2Nhc2Uibm90IjppPXQucG9wKCk7ImJvb2xlYW4iPT10eXBlb2YgaT90LnB1c2goIWkpOnQucHVzaCh+aSk7YnJlYWs7Y2FzZSJvciI6bz10LnBvcCgpO2k9dC5wb3AoKTsiYm9vbGVhbiI9PXR5cGVvZiBpJiYiYm9vbGVhbiI9PXR5cGVvZiBvP3QucHVzaChpfHxvKTp0LnB1c2goaXxvKTticmVhaztjYXNlInBvcCI6dC5wb3AoKTticmVhaztjYXNlInJvbGwiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5yb2xsKGksbyk7YnJlYWs7Y2FzZSJyb3VuZCI6aT10LnBvcCgpO3QucHVzaChNYXRoLnJvdW5kKGkpKTticmVhaztjYXNlInNpbiI6aT10LnBvcCgpO3QucHVzaChNYXRoLnNpbihpJTM2MC8xODAqTWF0aC5QSSkpO2JyZWFrO2Nhc2Uic3FydCI6aT10LnBvcCgpO3QucHVzaChNYXRoLnNxcnQoaSkpO2JyZWFrO2Nhc2Uic3ViIjpvPXQucG9wKCk7aT10LnBvcCgpO3QucHVzaChpLW8pO2JyZWFrO2Nhc2UidHJ1ZSI6dC5wdXNoKCEwKTticmVhaztjYXNlInRydW5jYXRlIjppPXQucG9wKCk7aT1pPDA/TWF0aC5jZWlsKGkpOk1hdGguZmxvb3IoaSk7dC5wdXNoKGkpO2JyZWFrO2Nhc2UieG9yIjpvPXQucG9wKCk7aT10LnBvcCgpOyJib29sZWFuIj09dHlwZW9mIGkmJiJib29sZWFuIj09dHlwZW9mIG8/dC5wdXNoKGkhPT1vKTp0LnB1c2goaV5vKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBvcGVyYXRvciAke3J9YCl9ZWxzZSB0LnB1c2gocil9cmV0dXJuIHQuc3RhY2t9fWNsYXNzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSl7dGhpcy50eXBlPWV9dmlzaXQoZSl7dW5yZWFjaGFibGUoImFic3RyYWN0IG1ldGhvZCIpfX1jbGFzcyBBc3RBcmd1bWVudCBleHRlbmRzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKCJhcmdzIik7dGhpcy5pbmRleD1lO3RoaXMubWluPXQ7dGhpcy5tYXg9bn12aXNpdChlKXtlLnZpc2l0QXJndW1lbnQodGhpcyl9fWNsYXNzIEFzdExpdGVyYWwgZXh0ZW5kcyBBc3ROb2Rle2NvbnN0cnVjdG9yKGUpe3N1cGVyKCJsaXRlcmFsIik7dGhpcy5udW1iZXI9ZTt0aGlzLm1pbj1lO3RoaXMubWF4PWV9dmlzaXQoZSl7ZS52aXNpdExpdGVyYWwodGhpcyl9fWNsYXNzIEFzdEJpbmFyeU9wZXJhdGlvbiBleHRlbmRzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSx0LG4sYSxzKXtzdXBlcigiYmluYXJ5Iik7dGhpcy5vcD1lO3RoaXMuYXJnMT10O3RoaXMuYXJnMj1uO3RoaXMubWluPWE7dGhpcy5tYXg9c312aXNpdChlKXtlLnZpc2l0QmluYXJ5T3BlcmF0aW9uKHRoaXMpfX1jbGFzcyBBc3RNaW4gZXh0ZW5kcyBBc3ROb2Rle2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoIm1heCIpO3RoaXMuYXJnPWU7dGhpcy5taW49ZS5taW47dGhpcy5tYXg9dH12aXNpdChlKXtlLnZpc2l0TWluKHRoaXMpfX1jbGFzcyBBc3RWYXJpYWJsZSBleHRlbmRzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKCJ2YXIiKTt0aGlzLmluZGV4PWU7dGhpcy5taW49dDt0aGlzLm1heD1ufXZpc2l0KGUpe2UudmlzaXRWYXJpYWJsZSh0aGlzKX19Y2xhc3MgQXN0VmFyaWFibGVEZWZpbml0aW9uIGV4dGVuZHMgQXN0Tm9kZXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCJkZWZpbml0aW9uIik7dGhpcy52YXJpYWJsZT1lO3RoaXMuYXJnPXR9dmlzaXQoZSl7ZS52aXNpdFZhcmlhYmxlRGVmaW5pdGlvbih0aGlzKX19Y2xhc3MgRXhwcmVzc2lvbkJ1aWxkZXJWaXNpdG9ye3BhcnRzPVtdO3Zpc2l0QXJndW1lbnQoZSl7dGhpcy5wYXJ0cy5wdXNoKCJNYXRoLm1heCgiLGUubWluLCIsIE1hdGgubWluKCIsZS5tYXgsIiwgc3JjW3NyY09mZnNldCArICIsZS5pbmRleCwiXSkpIil9dmlzaXRWYXJpYWJsZShlKXt0aGlzLnBhcnRzLnB1c2goInYiLGUuaW5kZXgpfXZpc2l0TGl0ZXJhbChlKXt0aGlzLnBhcnRzLnB1c2goZS5udW1iZXIpfXZpc2l0QmluYXJ5T3BlcmF0aW9uKGUpe3RoaXMucGFydHMucHVzaCgiKCIpO2UuYXJnMS52aXNpdCh0aGlzKTt0aGlzLnBhcnRzLnB1c2goIiAiLGUub3AsIiAiKTtlLmFyZzIudmlzaXQodGhpcyk7dGhpcy5wYXJ0cy5wdXNoKCIpIil9dmlzaXRWYXJpYWJsZURlZmluaXRpb24oZSl7dGhpcy5wYXJ0cy5wdXNoKCJ2YXIgIik7ZS52YXJpYWJsZS52aXNpdCh0aGlzKTt0aGlzLnBhcnRzLnB1c2goIiA9ICIpO2UuYXJnLnZpc2l0KHRoaXMpO3RoaXMucGFydHMucHVzaCgiOyIpfXZpc2l0TWluKGUpe3RoaXMucGFydHMucHVzaCgiTWF0aC5taW4oIik7ZS5hcmcudmlzaXQodGhpcyk7dGhpcy5wYXJ0cy5wdXNoKCIsICIsZS5tYXgsIikiKX10b1N0cmluZygpe3JldHVybiB0aGlzLnBhcnRzLmpvaW4oIiIpfX1mdW5jdGlvbiBidWlsZEFkZE9wZXJhdGlvbihlLHQpe3JldHVybiJsaXRlcmFsIj09PXQudHlwZSYmMD09PXQubnVtYmVyP2U6ImxpdGVyYWwiPT09ZS50eXBlJiYwPT09ZS5udW1iZXI/dDoibGl0ZXJhbCI9PT10LnR5cGUmJiJsaXRlcmFsIj09PWUudHlwZT9uZXcgQXN0TGl0ZXJhbChlLm51bWJlcit0Lm51bWJlcik6bmV3IEFzdEJpbmFyeU9wZXJhdGlvbigiKyIsZSx0LGUubWluK3QubWluLGUubWF4K3QubWF4KX1mdW5jdGlvbiBidWlsZE11bE9wZXJhdGlvbihlLHQpe2lmKCJsaXRlcmFsIj09PXQudHlwZSl7aWYoMD09PXQubnVtYmVyKXJldHVybiBuZXcgQXN0TGl0ZXJhbCgwKTtpZigxPT09dC5udW1iZXIpcmV0dXJuIGU7aWYoImxpdGVyYWwiPT09ZS50eXBlKXJldHVybiBuZXcgQXN0TGl0ZXJhbChlLm51bWJlcip0Lm51bWJlcil9aWYoImxpdGVyYWwiPT09ZS50eXBlKXtpZigwPT09ZS5udW1iZXIpcmV0dXJuIG5ldyBBc3RMaXRlcmFsKDApO2lmKDE9PT1lLm51bWJlcilyZXR1cm4gdH1jb25zdCBuPU1hdGgubWluKGUubWluKnQubWluLGUubWluKnQubWF4LGUubWF4KnQubWluLGUubWF4KnQubWF4KSxhPU1hdGgubWF4KGUubWluKnQubWluLGUubWluKnQubWF4LGUubWF4KnQubWluLGUubWF4KnQubWF4KTtyZXR1cm4gbmV3IEFzdEJpbmFyeU9wZXJhdGlvbigiKiIsZSx0LG4sYSl9ZnVuY3Rpb24gYnVpbGRTdWJPcGVyYXRpb24oZSx0KXtpZigibGl0ZXJhbCI9PT10LnR5cGUpe2lmKDA9PT10Lm51bWJlcilyZXR1cm4gZTtpZigibGl0ZXJhbCI9PT1lLnR5cGUpcmV0dXJuIG5ldyBBc3RMaXRlcmFsKGUubnVtYmVyLXQubnVtYmVyKX1yZXR1cm4iYmluYXJ5Ij09PXQudHlwZSYmIi0iPT09dC5vcCYmImxpdGVyYWwiPT09ZS50eXBlJiYxPT09ZS5udW1iZXImJiJsaXRlcmFsIj09PXQuYXJnMS50eXBlJiYxPT09dC5hcmcxLm51bWJlcj90LmFyZzI6bmV3IEFzdEJpbmFyeU9wZXJhdGlvbigiLSIsZSx0LGUubWluLXQubWF4LGUubWF4LXQubWluKX1mdW5jdGlvbiBidWlsZE1pbk9wZXJhdGlvbihlLHQpe3JldHVybiBlLm1pbj49dD9uZXcgQXN0TGl0ZXJhbCh0KTplLm1heDw9dD9lOm5ldyBBc3RNaW4oZSx0KX1jbGFzcyBQb3N0U2NyaXB0Q29tcGlsZXJ7Y29tcGlsZShlLHQsbil7Y29uc3QgYT1bXSxzPVtdLHI9dC5sZW5ndGg+PjEsaT1uLmxlbmd0aD4+MTtsZXQgbyxsLGYsYyxoLHUsbSxwLGQ9MDtmb3IobGV0IGU9MDtlPHI7ZSsrKWEucHVzaChuZXcgQXN0QXJndW1lbnQoZSx0WzIqZV0sdFsyKmUrMV0pKTtmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3Q8bjt0Kyspe3A9ZVt0XTtpZigibnVtYmVyIiE9dHlwZW9mIHApc3dpdGNoKHApe2Nhc2UiYWRkIjppZihhLmxlbmd0aDwyKXJldHVybiBudWxsO2M9YS5wb3AoKTtmPWEucG9wKCk7YS5wdXNoKGJ1aWxkQWRkT3BlcmF0aW9uKGYsYykpO2JyZWFrO2Nhc2UiY3ZyIjppZihhLmxlbmd0aDwxKXJldHVybiBudWxsO2JyZWFrO2Nhc2UibXVsIjppZihhLmxlbmd0aDwyKXJldHVybiBudWxsO2M9YS5wb3AoKTtmPWEucG9wKCk7YS5wdXNoKGJ1aWxkTXVsT3BlcmF0aW9uKGYsYykpO2JyZWFrO2Nhc2Uic3ViIjppZihhLmxlbmd0aDwyKXJldHVybiBudWxsO2M9YS5wb3AoKTtmPWEucG9wKCk7YS5wdXNoKGJ1aWxkU3ViT3BlcmF0aW9uKGYsYykpO2JyZWFrO2Nhc2UiZXhjaCI6aWYoYS5sZW5ndGg8MilyZXR1cm4gbnVsbDtoPWEucG9wKCk7dT1hLnBvcCgpO2EucHVzaChoLHUpO2JyZWFrO2Nhc2UicG9wIjppZihhLmxlbmd0aDwxKXJldHVybiBudWxsO2EucG9wKCk7YnJlYWs7Y2FzZSJpbmRleCI6aWYoYS5sZW5ndGg8MSlyZXR1cm4gbnVsbDtmPWEucG9wKCk7aWYoImxpdGVyYWwiIT09Zi50eXBlKXJldHVybiBudWxsO289Zi5udW1iZXI7aWYobzwwfHwhTnVtYmVyLmlzSW50ZWdlcihvKXx8YS5sZW5ndGg8bylyZXR1cm4gbnVsbDtoPWFbYS5sZW5ndGgtby0xXTtpZigibGl0ZXJhbCI9PT1oLnR5cGV8fCJ2YXIiPT09aC50eXBlKXthLnB1c2goaCk7YnJlYWt9bT1uZXcgQXN0VmFyaWFibGUoZCsrLGgubWluLGgubWF4KTthW2EubGVuZ3RoLW8tMV09bTthLnB1c2gobSk7cy5wdXNoKG5ldyBBc3RWYXJpYWJsZURlZmluaXRpb24obSxoKSk7YnJlYWs7Y2FzZSJkdXAiOmlmKGEubGVuZ3RoPDEpcmV0dXJuIG51bGw7aWYoIm51bWJlciI9PXR5cGVvZiBlW3QrMV0mJiJndCI9PT1lW3QrMl0mJmVbdCszXT09PXQrNyYmImp6Ij09PWVbdCs0XSYmInBvcCI9PT1lW3QrNV0mJmVbdCs2XT09PWVbdCsxXSl7Zj1hLnBvcCgpO2EucHVzaChidWlsZE1pbk9wZXJhdGlvbihmLGVbdCsxXSkpO3QrPTY7YnJlYWt9aD1hLmF0KC0xKTtpZigibGl0ZXJhbCI9PT1oLnR5cGV8fCJ2YXIiPT09aC50eXBlKXthLnB1c2goaCk7YnJlYWt9bT1uZXcgQXN0VmFyaWFibGUoZCsrLGgubWluLGgubWF4KTthW2EubGVuZ3RoLTFdPW07YS5wdXNoKG0pO3MucHVzaChuZXcgQXN0VmFyaWFibGVEZWZpbml0aW9uKG0saCkpO2JyZWFrO2Nhc2Uicm9sbCI6aWYoYS5sZW5ndGg8MilyZXR1cm4gbnVsbDtjPWEucG9wKCk7Zj1hLnBvcCgpO2lmKCJsaXRlcmFsIiE9PWMudHlwZXx8ImxpdGVyYWwiIT09Zi50eXBlKXJldHVybiBudWxsO2w9Yy5udW1iZXI7bz1mLm51bWJlcjtpZihvPD0wfHwhTnVtYmVyLmlzSW50ZWdlcihvKXx8IU51bWJlci5pc0ludGVnZXIobCl8fGEubGVuZ3RoPG8pcmV0dXJuIG51bGw7bD0obCVvK28pJW87aWYoMD09PWwpYnJlYWs7YS5wdXNoKC4uLmEuc3BsaWNlKGEubGVuZ3RoLW8sby1sKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1lbHNlIGEucHVzaChuZXcgQXN0TGl0ZXJhbChwKSl9aWYoYS5sZW5ndGghPT1pKXJldHVybiBudWxsO2NvbnN0IGc9W107Zm9yKGNvbnN0IGUgb2Ygcyl7Y29uc3QgdD1uZXcgRXhwcmVzc2lvbkJ1aWxkZXJWaXNpdG9yO2UudmlzaXQodCk7Zy5wdXNoKHQudG9TdHJpbmcoKSl9Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PWFbZV0scz1uZXcgRXhwcmVzc2lvbkJ1aWxkZXJWaXNpdG9yO3QudmlzaXQocyk7Y29uc3Qgcj1uWzIqZV0saT1uWzIqZSsxXSxvPVtzLnRvU3RyaW5nKCldO2lmKHI+dC5taW4pe28udW5zaGlmdCgiTWF0aC5tYXgoIixyLCIsICIpO28ucHVzaCgiKSIpfWlmKGk8dC5tYXgpe28udW5zaGlmdCgiTWF0aC5taW4oIixpLCIsICIpO28ucHVzaCgiKSIpfW8udW5zaGlmdCgiZGVzdFtkZXN0T2Zmc2V0ICsgIixlLCJdID0gIik7by5wdXNoKCI7Iik7Zy5wdXNoKG8uam9pbigiIikpfXJldHVybiBnLmpvaW4oIlxuIil9fWNvbnN0IGlyPVsiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiUyIsIkIiLCJTIiwiV1MiLCJCIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkIiLCJCIiwiQiIsIlMiLCJXUyIsIk9OIiwiT04iLCJFVCIsIkVUIiwiRVQiLCJPTiIsIk9OIiwiT04iLCJPTiIsIk9OIiwiRVMiLCJDUyIsIkVTIiwiQ1MiLCJDUyIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiQ1MiLCJPTiIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJPTiIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiT04iLCJPTiIsIk9OIiwiT04iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkNTIiwiT04iLCJFVCIsIkVUIiwiRVQiLCJFVCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiTCIsIk9OIiwiT04iLCJCTiIsIk9OIiwiT04iLCJFVCIsIkVUIiwiRU4iLCJFTiIsIk9OIiwiTCIsIk9OIiwiT04iLCJPTiIsIkVOIiwiTCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIk9OIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIk9OIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiXSxvcj1bIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIk9OIiwiT04iLCJBTCIsIkVUIiwiRVQiLCJBTCIsIkNTIiwiQUwiLCJPTiIsIk9OIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiQUwiLCJBTCIsIiIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiRVQiLCJBTiIsIkFOIiwiQUwiLCJBTCIsIkFMIiwiTlNNIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFOIiwiT04iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJBTCIsIkFMIiwiTlNNIiwiTlNNIiwiT04iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJBTCIsIkFMIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiXTtmdW5jdGlvbiBpc09kZChlKXtyZXR1cm4hISgxJmUpfWZ1bmN0aW9uIGlzRXZlbihlKXtyZXR1cm4hKDEmZSl9ZnVuY3Rpb24gZmluZFVuZXF1YWwoZSx0LG4pe2xldCBhLHM7Zm9yKGE9dCxzPWUubGVuZ3RoO2E8czsrK2EpaWYoZVthXSE9PW4pcmV0dXJuIGE7cmV0dXJuIGF9ZnVuY3Rpb24gcmV2ZXJzZVZhbHVlcyhlLHQsbil7Zm9yKGxldCBhPXQscz1uLTE7YTxzOysrYSwtLXMpe2NvbnN0IHQ9ZVthXTtlW2FdPWVbc107ZVtzXT10fX1mdW5jdGlvbiBjcmVhdGVCaWRpVGV4dChlLHQsbj0hMSl7bGV0IGE9Imx0ciI7bj9hPSJ0dGIiOnR8fChhPSJydGwiKTtyZXR1cm57c3RyOmUsZGlyOmF9fWNvbnN0IGxyPVtdLGZyPVtdO2Z1bmN0aW9uIGJpZGkoZSx0PS0xLG49ITEpe2xldCBhPSEwO2NvbnN0IHM9ZS5sZW5ndGg7aWYoMD09PXN8fG4pcmV0dXJuIGNyZWF0ZUJpZGlUZXh0KGUsYSxuKTtsci5sZW5ndGg9cztmci5sZW5ndGg9cztsZXQgcixpLG89MDtmb3Iocj0wO3I8czsrK3Ipe2xyW3JdPWUuY2hhckF0KHIpO2NvbnN0IHQ9ZS5jaGFyQ29kZUF0KHIpO2xldCBuPSJMIjtpZih0PD0yNTUpbj1pclt0XTtlbHNlIGlmKDE0MjQ8PXQmJnQ8PTE1MjQpbj0iUiI7ZWxzZSBpZigxNTM2PD10JiZ0PD0xNzkxKXtuPW9yWzI1NSZ0XTtufHx3YXJuKCJCaWRpOiBpbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyICIrdC50b1N0cmluZygxNikpfWVsc2UoMTc5Mjw9dCYmdDw9MjIyMHx8NjQzMzY8PXQmJnQ8PTY1MDIzfHw2NTEzNjw9dCYmdDw9NjUyNzkpJiYobj0iQUwiKTsiUiIhPT1uJiYiQUwiIT09biYmIkFOIiE9PW58fG8rKztmcltyXT1ufWlmKDA9PT1vKXthPSEwO3JldHVybiBjcmVhdGVCaWRpVGV4dChlLGEpfWlmKC0xPT09dClpZihvL3M8LjMmJnM+NCl7YT0hMDt0PTB9ZWxzZXthPSExO3Q9MX1jb25zdCBsPVtdO2ZvcihyPTA7cjxzOysrcilsW3JdPXQ7Y29uc3QgZj1pc09kZCh0KT8iUiI6IkwiLGM9ZixoPWM7bGV0IHUsbT1jO2ZvcihyPTA7cjxzOysrcikiTlNNIj09PWZyW3JdP2ZyW3JdPW06bT1mcltyXTttPWM7Zm9yKHI9MDtyPHM7KytyKXt1PWZyW3JdOyJFTiI9PT11P2ZyW3JdPSJBTCI9PT1tPyJBTiI6IkVOIjoiUiIhPT11JiYiTCIhPT11JiYiQUwiIT09dXx8KG09dSl9Zm9yKHI9MDtyPHM7KytyKXt1PWZyW3JdOyJBTCI9PT11JiYoZnJbcl09IlIiKX1mb3Iocj0xO3I8cy0xOysrcil7IkVTIj09PWZyW3JdJiYiRU4iPT09ZnJbci0xXSYmIkVOIj09PWZyW3IrMV0mJihmcltyXT0iRU4iKTsiQ1MiIT09ZnJbcl18fCJFTiIhPT1mcltyLTFdJiYiQU4iIT09ZnJbci0xXXx8ZnJbcisxXSE9PWZyW3ItMV18fChmcltyXT1mcltyLTFdKX1mb3Iocj0wO3I8czsrK3IpaWYoIkVOIj09PWZyW3JdKXtmb3IobGV0IGU9ci0xO2U+PTAmJiJFVCI9PT1mcltlXTstLWUpZnJbZV09IkVOIjtmb3IobGV0IGU9cisxO2U8cyYmIkVUIj09PWZyW2VdOysrZSlmcltlXT0iRU4ifWZvcihyPTA7cjxzOysrcil7dT1mcltyXTsiV1MiIT09dSYmIkVTIiE9PXUmJiJFVCIhPT11JiYiQ1MiIT09dXx8KGZyW3JdPSJPTiIpfW09Yztmb3Iocj0wO3I8czsrK3Ipe3U9ZnJbcl07IkVOIj09PXU/ZnJbcl09IkwiPT09bT8iTCI6IkVOIjoiUiIhPT11JiYiTCIhPT11fHwobT11KX1mb3Iocj0wO3I8czsrK3IpaWYoIk9OIj09PWZyW3JdKXtjb25zdCBlPWZpbmRVbmVxdWFsKGZyLHIrMSwiT04iKTtsZXQgdD1jO3I+MCYmKHQ9ZnJbci0xXSk7bGV0IG49aDtlKzE8cyYmKG49ZnJbZSsxXSk7IkwiIT09dCYmKHQ9IlIiKTsiTCIhPT1uJiYobj0iUiIpO3Q9PT1uJiZmci5maWxsKHQscixlKTtyPWUtMX1mb3Iocj0wO3I8czsrK3IpIk9OIj09PWZyW3JdJiYoZnJbcl09Zik7Zm9yKHI9MDtyPHM7KytyKXt1PWZyW3JdO2lzRXZlbihsW3JdKT8iUiI9PT11P2xbcl0rPTE6IkFOIiE9PXUmJiJFTiIhPT11fHwobFtyXSs9Mik6IkwiIT09dSYmIkFOIiE9PXUmJiJFTiIhPT11fHwobFtyXSs9MSl9bGV0IHAsZD0tMSxnPTk5O2ZvcihyPTAsaT1sLmxlbmd0aDtyPGk7KytyKXtwPWxbcl07ZDxwJiYoZD1wKTtnPnAmJmlzT2RkKHApJiYoZz1wKX1mb3IocD1kO3A+PWc7LS1wKXtsZXQgZT0tMTtmb3Iocj0wLGk9bC5sZW5ndGg7cjxpOysrcilpZihsW3JdPHApe2lmKGU+PTApe3JldmVyc2VWYWx1ZXMobHIsZSxyKTtlPS0xfX1lbHNlIGU8MCYmKGU9cik7ZT49MCYmcmV2ZXJzZVZhbHVlcyhscixlLGwubGVuZ3RoKX1mb3Iocj0wLGk9bHIubGVuZ3RoO3I8aTsrK3Ipe2NvbnN0IGU9bHJbcl07IjwiIT09ZSYmIj4iIT09ZXx8KGxyW3JdPSIiKX1yZXR1cm4gY3JlYXRlQmlkaVRleHQobHIuam9pbigiIiksYSl9Y29uc3QgY3I9e3N0eWxlOiJub3JtYWwiLHdlaWdodDoibm9ybWFsIn0saHI9e3N0eWxlOiJub3JtYWwiLHdlaWdodDoiYm9sZCJ9LHVyPXtzdHlsZToiaXRhbGljIix3ZWlnaHQ6Im5vcm1hbCJ9LG1yPXtzdHlsZToiaXRhbGljIix3ZWlnaHQ6ImJvbGQifSxwcj1uZXcgTWFwKFtbIlRpbWVzLVJvbWFuIix7bG9jYWw6WyJUaW1lcyBOZXcgUm9tYW4iLCJUaW1lcy1Sb21hbiIsIlRpbWVzIiwiTGliZXJhdGlvbiBTZXJpZiIsIk5pbWJ1cyBSb21hbiIsIk5pbWJ1cyBSb21hbiBMIiwiVGlub3MiLCJUaG9ybmRhbGUiLCJUZVggR3lyZSBUZXJtZXMiLCJGcmVlU2VyaWYiLCJMaW51eCBMaWJlcnRpbmUgTyIsIkxpYmVydGludXMgU2VyaWYiLCJQVCBBc3RyYSBTZXJpZiIsIkRlamFWdSBTZXJpZiIsIkJpdHN0cmVhbSBWZXJhIFNlcmlmIiwiVWJ1bnR1Il0sc3R5bGU6Y3IsdWx0aW1hdGU6InNlcmlmIn1dLFsiVGltZXMtQm9sZCIse2FsaWFzOiJUaW1lcy1Sb21hbiIsc3R5bGU6aHIsdWx0aW1hdGU6InNlcmlmIn1dLFsiVGltZXMtSXRhbGljIix7YWxpYXM6IlRpbWVzLVJvbWFuIixzdHlsZTp1cix1bHRpbWF0ZToic2VyaWYifV0sWyJUaW1lcy1Cb2xkSXRhbGljIix7YWxpYXM6IlRpbWVzLVJvbWFuIixzdHlsZTptcix1bHRpbWF0ZToic2VyaWYifV0sWyJIZWx2ZXRpY2EiLHtsb2NhbDpbIkhlbHZldGljYSIsIkhlbHZldGljYSBOZXVlIiwiQXJpYWwiLCJBcmlhbCBOb3ZhIiwiTGliZXJhdGlvbiBTYW5zIiwiQXJpbW8iLCJOaW1idXMgU2FucyIsIk5pbWJ1cyBTYW5zIEwiLCJBMDMwIiwiVGVYIEd5cmUgSGVyb3MiLCJGcmVlU2FucyIsIkRlamFWdSBTYW5zIiwiQWxiYW55IiwiQml0c3RyZWFtIFZlcmEgU2FucyIsIkFyaWFsIFVuaWNvZGUgTVMiLCJNaWNyb3NvZnQgU2FucyBTZXJpZiIsIkFwcGxlIFN5bWJvbHMiLCJDYW50YXJlbGwiXSxwYXRoOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyLnR0ZiIsc3R5bGU6Y3IsdWx0aW1hdGU6InNhbnMtc2VyaWYifV0sWyJIZWx2ZXRpY2EtQm9sZCIse2FsaWFzOiJIZWx2ZXRpY2EiLHBhdGg6IkxpYmVyYXRpb25TYW5zLUJvbGQudHRmIixzdHlsZTpocix1bHRpbWF0ZToic2Fucy1zZXJpZiJ9XSxbIkhlbHZldGljYS1PYmxpcXVlIix7YWxpYXM6IkhlbHZldGljYSIscGF0aDoiTGliZXJhdGlvblNhbnMtSXRhbGljLnR0ZiIsc3R5bGU6dXIsdWx0aW1hdGU6InNhbnMtc2VyaWYifV0sWyJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiLHthbGlhczoiSGVsdmV0aWNhIixwYXRoOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljLnR0ZiIsc3R5bGU6bXIsdWx0aW1hdGU6InNhbnMtc2VyaWYifV0sWyJDb3VyaWVyIix7bG9jYWw6WyJDb3VyaWVyIiwiQ291cmllciBOZXciLCJMaWJlcmF0aW9uIE1vbm8iLCJOaW1idXMgTW9ubyIsIk5pbWJ1cyBNb25vIEwiLCJDb3VzaW5lIiwiQ3VtYmVybGFuZCIsIlRlWCBHeXJlIEN1cnNvciIsIkZyZWVNb25vIiwiTGludXggTGliZXJ0aW5lIE1vbm8gTyIsIkxpYmVydGludXMgTW9ubyJdLHN0eWxlOmNyLHVsdGltYXRlOiJtb25vc3BhY2UifV0sWyJDb3VyaWVyLUJvbGQiLHthbGlhczoiQ291cmllciIsc3R5bGU6aHIsdWx0aW1hdGU6Im1vbm9zcGFjZSJ9XSxbIkNvdXJpZXItT2JsaXF1ZSIse2FsaWFzOiJDb3VyaWVyIixzdHlsZTp1cix1bHRpbWF0ZToibW9ub3NwYWNlIn1dLFsiQ291cmllci1Cb2xkT2JsaXF1ZSIse2FsaWFzOiJDb3VyaWVyIixzdHlsZTptcix1bHRpbWF0ZToibW9ub3NwYWNlIn1dLFsiQXJpYWxCbGFjayIse2xvY2FsOlsiQXJpYWwgQmxhY2siXSxzdHlsZTp7c3R5bGU6Im5vcm1hbCIsd2VpZ2h0OiI5MDAifSxmYWxsYmFjazoiSGVsdmV0aWNhLUJvbGQifV0sWyJBcmlhbEJsYWNrLUJvbGQiLHthbGlhczoiQXJpYWxCbGFjayJ9XSxbIkFyaWFsQmxhY2stSXRhbGljIix7YWxpYXM6IkFyaWFsQmxhY2siLHN0eWxlOntzdHlsZToiaXRhbGljIix3ZWlnaHQ6IjkwMCJ9LGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUifV0sWyJBcmlhbEJsYWNrLUJvbGRJdGFsaWMiLHthbGlhczoiQXJpYWxCbGFjay1JdGFsaWMifV0sWyJBcmlhbE5hcnJvdyIse2xvY2FsOlsiQXJpYWwgTmFycm93IiwiTGliZXJhdGlvbiBTYW5zIE5hcnJvdyIsIkhlbHZldGljYSBDb25kZW5zZWQiLCJOaW1idXMgU2FucyBOYXJyb3ciLCJUZVggR3lyZSBIZXJvcyBDbiJdLHN0eWxlOmNyLGZhbGxiYWNrOiJIZWx2ZXRpY2EifV0sWyJBcmlhbE5hcnJvdy1Cb2xkIix7YWxpYXM6IkFyaWFsTmFycm93IixzdHlsZTpocixmYWxsYmFjazoiSGVsdmV0aWNhLUJvbGQifV0sWyJBcmlhbE5hcnJvdy1JdGFsaWMiLHthbGlhczoiQXJpYWxOYXJyb3ciLHN0eWxlOnVyLGZhbGxiYWNrOiJIZWx2ZXRpY2EtT2JsaXF1ZSJ9XSxbIkFyaWFsTmFycm93LUJvbGRJdGFsaWMiLHthbGlhczoiQXJpYWxOYXJyb3ciLHN0eWxlOm1yLGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUifV0sWyJDYWxpYnJpIix7bG9jYWw6WyJDYWxpYnJpIiwiQ2FybGl0byJdLHN0eWxlOmNyLGZhbGxiYWNrOiJIZWx2ZXRpY2EifV0sWyJDYWxpYnJpLUJvbGQiLHthbGlhczoiQ2FsaWJyaSIsc3R5bGU6aHIsZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkIn1dLFsiQ2FsaWJyaS1JdGFsaWMiLHthbGlhczoiQ2FsaWJyaSIsc3R5bGU6dXIsZmFsbGJhY2s6IkhlbHZldGljYS1PYmxpcXVlIn1dLFsiQ2FsaWJyaS1Cb2xkSXRhbGljIix7YWxpYXM6IkNhbGlicmkiLHN0eWxlOm1yLGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUifV0sWyJXaW5nZGluZ3MiLHtsb2NhbDpbIldpbmdkaW5ncyIsIlVSVyBEaW5nYmF0cyJdLHN0eWxlOmNyfV0sWyJXaW5nZGluZ3MtUmVndWxhciIse2FsaWFzOiJXaW5nZGluZ3MifV0sWyJXaW5nZGluZ3MtQm9sZCIse2FsaWFzOiJXaW5nZGluZ3MifV0sWyLDi8OOw4zDpSIse2xvY2FsOlsiU2ltU3VuIiwiU2ltU3VuIFJlZ3VsYXIiLCJOU2ltU3VuIl0sc3R5bGU6Y3IsdWx0aW1hdGU6InNlcmlmIn1dLFsiwrrDmsOMw6UiLHtsb2NhbDpbIlNpbUhlaSIsIlNpbUhlaSBSZWd1bGFyIl0sc3R5bGU6Y3IsdWx0aW1hdGU6InNhbnMtc2VyaWYifV0sWyLCv8Ksw4zDpSIse2xvY2FsOlsiS2FpVGkiLCJTaW1LYWkiLCJTaW1LYWkgUmVndWxhciJdLHN0eWxlOmNyLHVsdGltYXRlOiJzYW5zLXNlcmlmIn1dLFsiwrfDgsOLw44iLHtsb2NhbDpbIkZhbmdTb25nIiwiU2ltRmFuZyIsIlNpbUZhbmcgUmVndWxhciJdLHN0eWxlOmNyLHVsdGltYXRlOiJzZXJpZiJ9XSxbIsK/wqzDjMOlX0dCMjMxMiIse2FsaWFzOiLCv8Ksw4zDpSJ9XSxbIsK3w4LDi8OOX0dCMjMxMiIse2FsaWFzOiLCt8OCw4vDjiJ9XSxbIsOBwqXDisOpIix7bG9jYWw6WyJTaW1MaSIsIlNpbUxpIFJlZ3VsYXIiXSxzdHlsZTpjcix1bHRpbWF0ZToic2VyaWYifV0sWyLDkMOCw4vDjiIse2FsaWFzOiLDi8OOw4zDpSJ9XV0pLGRyPW5ldyBNYXAoW1siQXJpYWwtQmxhY2siLCJBcmlhbEJsYWNrIl1dKTtmdW5jdGlvbiBnZXRGYW1pbHlOYW1lKGUpe2NvbnN0IHQ9bmV3IFNldChbInRoaW4iLCJleHRyYWxpZ2h0IiwidWx0cmFsaWdodCIsImRlbWlsaWdodCIsInNlbWlsaWdodCIsImxpZ2h0IiwiYm9vayIsInJlZ3VsYXIiLCJub3JtYWwiLCJtZWRpdW0iLCJkZW1pYm9sZCIsInNlbWlib2xkIiwiYm9sZCIsImV4dHJhYm9sZCIsInVsdHJhYm9sZCIsImJsYWNrIiwiaGVhdnkiLCJleHRyYWJsYWNrIiwidWx0cmFibGFjayIsInJvbWFuIiwiaXRhbGljIiwib2JsaXF1ZSIsInVsdHJhY29uZGVuc2VkIiwiZXh0cmFjb25kZW5zZWQiLCJjb25kZW5zZWQiLCJzZW1pY29uZGVuc2VkIiwibm9ybWFsIiwic2VtaWV4cGFuZGVkIiwiZXhwYW5kZWQiLCJleHRyYWV4cGFuZGVkIiwidWx0cmFleHBhbmRlZCIsImJvbGRpdGFsaWMiXSk7cmV0dXJuIGUuc3BsaXQoL1stICwrXSsvZykuZmlsdGVyKGU9PiF0LmhhcyhlLnRvTG93ZXJDYXNlKCkpKS5qb2luKCIgIil9ZnVuY3Rpb24gZ2VuZXJhdGVGb250KHthbGlhczplLGxvY2FsOnQscGF0aDpuLGZhbGxiYWNrOmEsc3R5bGU6cyx1bHRpbWF0ZTpyfSxpLG8sbD0hMCxmPSEwLGM9IiIpe2NvbnN0IGg9e3N0eWxlOm51bGwsdWx0aW1hdGU6bnVsbH07aWYodCl7Y29uc3QgZT1jP2AgJHtjfWA6IiI7Zm9yKGNvbnN0IG4gb2YgdClpLnB1c2goYGxvY2FsKCR7bn0ke2V9KWApfWlmKGUpe2NvbnN0IHQ9cHIuZ2V0KGUpLHI9Y3x8ZnVuY3Rpb24gZ2V0U3R5bGVUb0FwcGVuZChlKXtzd2l0Y2goZSl7Y2FzZSBocjpyZXR1cm4iQm9sZCI7Y2FzZSB1cjpyZXR1cm4iSXRhbGljIjtjYXNlIG1yOnJldHVybiJCb2xkIEl0YWxpYyI7ZGVmYXVsdDppZigiYm9sZCI9PT1lPy53ZWlnaHQpcmV0dXJuIkJvbGQiO2lmKCJpdGFsaWMiPT09ZT8uc3R5bGUpcmV0dXJuIkl0YWxpYyJ9cmV0dXJuIiJ9KHMpO09iamVjdC5hc3NpZ24oaCxnZW5lcmF0ZUZvbnQodCxpLG8sbCYmIWEsZiYmIW4scikpfXMmJihoLnN0eWxlPXMpO3ImJihoLnVsdGltYXRlPXIpO2lmKGwmJmEpe2NvbnN0IGU9cHIuZ2V0KGEpLHt1bHRpbWF0ZTp0fT1nZW5lcmF0ZUZvbnQoZSxpLG8sbCxmJiYhbixjKTtoLnVsdGltYXRlfHw9dH1mJiZuJiZvJiZpLnB1c2goYHVybCgke299JHtufSlgKTtyZXR1cm4gaH1mdW5jdGlvbiBnZXRGb250U3Vic3RpdHV0aW9uKGUsdCxuLGEscyxyKXtpZihhLnN0YXJ0c1dpdGgoIkludmFsaWRQREZqc0ZvbnRfIikpcmV0dXJuIG51bGw7IlRydWVUeXBlIiE9PXImJiJUeXBlMSIhPT1yfHwhL15bQS1aXXs2fVwrLy50ZXN0KGEpfHwoYT1hLnNsaWNlKDcpKTtjb25zdCBpPWE9bm9ybWFsaXplRm9udE5hbWUoYSk7bGV0IG89ZS5nZXQoaSk7aWYobylyZXR1cm4gbztsZXQgbD1wci5nZXQoYSk7aWYoIWwpZm9yKGNvbnN0W2UsdF1vZiBkcilpZihhLnN0YXJ0c1dpdGgoZSkpe2E9YCR7dH0ke2Euc3Vic3RyaW5nKGUubGVuZ3RoKX1gO2w9cHIuZ2V0KGEpO2JyZWFrfWxldCBmPSExO2lmKCFsKXtsPXByLmdldChzKTtmPSEwfWNvbnN0IGM9YCR7dC5nZXREb2NJZCgpfV9zJHt0LmNyZWF0ZUZvbnRJZCgpfWA7aWYoIWwpe2lmKCF2YWxpZGF0ZUZvbnROYW1lKGEpKXt3YXJuKGBDYW5ub3Qgc3Vic3RpdHV0ZSB0aGUgZm9udCBiZWNhdXNlIG9mIGl0cyBuYW1lOiAke2F9YCk7ZS5zZXQoaSxudWxsKTtyZXR1cm4gbnVsbH1jb25zdCB0PS9ib2xkL2dpLnRlc3QoYSksbj0vb2JsaXF1ZXxpdGFsaWMvZ2kudGVzdChhKSxzPXQmJm4mJm1yfHx0JiZocnx8biYmdXJ8fGNyO289e2NzczpgIiR7Z2V0RmFtaWx5TmFtZShhKX0iLCR7Y31gLGd1ZXNzRmFsbGJhY2s6ITAsbG9hZGVkTmFtZTpjLGJhc2VGb250TmFtZTphLHNyYzpgbG9jYWwoJHthfSlgLHN0eWxlOnN9O2Uuc2V0KGksbyk7cmV0dXJuIG99Y29uc3QgaD1bXTtmJiZ2YWxpZGF0ZUZvbnROYW1lKGEpJiZoLnB1c2goYGxvY2FsKCR7YX0pYCk7Y29uc3R7c3R5bGU6dSx1bHRpbWF0ZTptfT1nZW5lcmF0ZUZvbnQobCxoLG4pLHA9bnVsbD09PW0sZD1wPyIiOmAsJHttfWA7bz17Y3NzOmAiJHtnZXRGYW1pbHlOYW1lKGEpfSIsJHtjfSR7ZH1gLGd1ZXNzRmFsbGJhY2s6cCxsb2FkZWROYW1lOmMsYmFzZUZvbnROYW1lOmEsc3JjOmguam9pbigiLCIpLHN0eWxlOnV9O2Uuc2V0KGksbyk7cmV0dXJuIG99Y29uc3QgZ3I9MzI4NTM3NzUyMCxicj00Mjk0OTAxNzYwLHdyPTY1NTM1O2NsYXNzIE11cm11ckhhc2gzXzY0e2NvbnN0cnVjdG9yKGUpe3RoaXMuaDE9ZT80Mjk0OTY3Mjk1JmU6Z3I7dGhpcy5oMj1lPzQyOTQ5NjcyOTUmZTpncn11cGRhdGUoZSl7bGV0IHQsbjtpZigic3RyaW5nIj09dHlwZW9mIGUpe3Q9bmV3IFVpbnQ4QXJyYXkoMiplLmxlbmd0aCk7bj0wO2ZvcihsZXQgYT0wLHM9ZS5sZW5ndGg7YTxzO2ErKyl7Y29uc3Qgcz1lLmNoYXJDb2RlQXQoYSk7aWYoczw9MjU1KXRbbisrXT1zO2Vsc2V7dFtuKytdPXM+Pj44O3RbbisrXT0yNTUmc319fWVsc2V7aWYoIUFycmF5QnVmZmVyLmlzVmlldyhlKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZGF0YSBmb3JtYXQsIG11c3QgYmUgYSBzdHJpbmcgb3IgVHlwZWRBcnJheS4iKTt0PWUuc2xpY2UoKTtuPXQuYnl0ZUxlbmd0aH1jb25zdCBhPW4+PjIscz1uLTQqYSxyPW5ldyBVaW50MzJBcnJheSh0LmJ1ZmZlciwwLGEpO2xldCBpPTAsbz0wLGw9dGhpcy5oMSxmPXRoaXMuaDI7Y29uc3QgYz0zNDMyOTE4MzUzLGg9NDYxODQ1OTA3LHU9MTE2MDEsbT0xMzcxNTtmb3IobGV0IGU9MDtlPGE7ZSsrKWlmKDEmZSl7aT1yW2VdO2k9aSpjJmJyfGkqdSZ3cjtpPWk8PDE1fGk+Pj4xNztpPWkqaCZicnxpKm0md3I7bF49aTtsPWw8PDEzfGw+Pj4xOTtsPTUqbCszODY0MjkyMTk2fWVsc2V7bz1yW2VdO289bypjJmJyfG8qdSZ3cjtvPW88PDE1fG8+Pj4xNztvPW8qaCZicnxvKm0md3I7Zl49bztmPWY8PDEzfGY+Pj4xOTtmPTUqZiszODY0MjkyMTk2fWk9MDtzd2l0Y2gocyl7Y2FzZSAzOmlePXRbNCphKzJdPDwxNjtjYXNlIDI6aV49dFs0KmErMV08PDg7Y2FzZSAxOmlePXRbNCphXTtpPWkqYyZicnxpKnUmd3I7aT1pPDwxNXxpPj4+MTc7aT1pKmgmYnJ8aSptJndyOzEmYT9sXj1pOmZePWl9dGhpcy5oMT1sO3RoaXMuaDI9Zn1oZXhkaWdlc3QoKXtsZXQgZT10aGlzLmgxLHQ9dGhpcy5oMjtlXj10Pj4+MTtlPTM5ODE4MDY3OTcqZSZicnwzNjA0NSplJndyO3Q9NDI4MzU0MzUxMSp0JmJyfCgyOTUwMTYzNzk3Kih0PDwxNnxlPj4+MTYpJmJyKT4+PjE2O2VePXQ+Pj4xO2U9NDQ0OTg0NDAzKmUmYnJ8NjA0OTkqZSZ3cjt0PTMzMDE4ODIzNjYqdCZicnwoMzEyMDQzNzg5MyoodDw8MTZ8ZT4+PjE2KSZicik+Pj4xNjtlXj10Pj4+MTtyZXR1cm4oZT4+PjApLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIikrKHQ+Pj4wKS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpfX1mdW5jdGlvbiByZXNpemVJbWFnZU1hc2soZSx0LG4sYSxzLHIpe2NvbnN0IGk9cypyO2xldCBvO289dDw9OD9uZXcgVWludDhBcnJheShpKTp0PD0xNj9uZXcgVWludDE2QXJyYXkoaSk6bmV3IFVpbnQzMkFycmF5KGkpO2NvbnN0IGw9bi9zLGY9YS9yO2xldCBjLGgsdSxtLHA9MDtjb25zdCBkPW5ldyBVaW50MTZBcnJheShzKSxnPW47Zm9yKGM9MDtjPHM7YysrKWRbY109TWF0aC5mbG9vcihjKmwpO2ZvcihjPTA7YzxyO2MrKyl7dT1NYXRoLmZsb29yKGMqZikqZztmb3IoaD0wO2g8cztoKyspe209dStkW2hdO29bcCsrXT1lW21dfX1yZXR1cm4gb31jbGFzcyBQREZJbWFnZXtjb25zdHJ1Y3Rvcih7eHJlZjplLHJlczp0LGltYWdlOm4saXNJbmxpbmU6YT0hMSxzbWFzazpzPW51bGwsbWFzazpyPW51bGwsaXNNYXNrOmk9ITEscGRmRnVuY3Rpb25GYWN0b3J5Om8sZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOmwsbG9jYWxDb2xvclNwYWNlQ2FjaGU6Zn0pe3RoaXMuaW1hZ2U9bjtjb25zdCBjPW4uZGljdCxoPWMuZ2V0KCJGIiwiRmlsdGVyIik7bGV0IHU7aWYoaCBpbnN0YW5jZW9mIE5hbWUpdT1oLm5hbWU7ZWxzZSBpZihBcnJheS5pc0FycmF5KGgpKXtjb25zdCB0PWUuZmV0Y2hJZlJlZihoWzBdKTt0IGluc3RhbmNlb2YgTmFtZSYmKHU9dC5uYW1lKX1zd2l0Y2godSl7Y2FzZSJKUFhEZWNvZGUiOih7d2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHQsY29tcG9uZW50c0NvdW50Om4ubnVtQ29tcHMsYml0c1BlckNvbXBvbmVudDpuLmJpdHNQZXJDb21wb25lbnR9PUpweEltYWdlLnBhcnNlSW1hZ2VQcm9wZXJ0aWVzKG4uc3RyZWFtKSk7bi5zdHJlYW0ucmVzZXQoKTtjb25zdCBlPUltYWdlUmVzaXplci5nZXRSZWR1Y2VQb3dlckZvckpQWChuLndpZHRoLG4uaGVpZ2h0LG4ubnVtQ29tcHMpO3RoaXMuanB4RGVjb2Rlck9wdGlvbnM9e251bUNvbXBvbmVudHM6MCxpc0luZGV4ZWRDb2xvcm1hcDohMSxzbWFza0luRGF0YTpjLmhhcygiU01hc2tJbkRhdGEiKSxyZWR1Y2VQb3dlcjplfTtpZihlKXtjb25zdCB0PTIqKmU7bi53aWR0aD1NYXRoLmNlaWwobi53aWR0aC90KTtuLmhlaWdodD1NYXRoLmNlaWwobi5oZWlnaHQvdCl9YnJlYWs7Y2FzZSJKQklHMkRlY29kZSI6bi5iaXRzUGVyQ29tcG9uZW50PTE7bi5udW1Db21wcz0xfWxldCBtPWMuZ2V0KCJXIiwiV2lkdGgiKSxwPWMuZ2V0KCJIIiwiSGVpZ2h0Iik7aWYoTnVtYmVyLmlzSW50ZWdlcihuLndpZHRoKSYmbi53aWR0aD4wJiZOdW1iZXIuaXNJbnRlZ2VyKG4uaGVpZ2h0KSYmbi5oZWlnaHQ+MCYmKG4ud2lkdGghPT1tfHxuLmhlaWdodCE9PXApKXt3YXJuKCJQREZJbWFnZSAtIHVzaW5nIHRoZSBXaWR0aC9IZWlnaHQgb2YgdGhlIGltYWdlIGRhdGEsIHJhdGhlciB0aGFuIHRoZSBpbWFnZSBkaWN0aW9uYXJ5LiIpO209bi53aWR0aDtwPW4uaGVpZ2h0fWVsc2V7Y29uc3QgZT0ibnVtYmVyIj09dHlwZW9mIG0mJm0+MCx0PSJudW1iZXIiPT10eXBlb2YgcCYmcD4wO2lmKCFlfHwhdCl7aWYoIW4uZmFsbGJhY2tEaW1zKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBpbWFnZSB3aWR0aDogJHttfSBvciBoZWlnaHQ6ICR7cH1gKTt3YXJuKCJQREZJbWFnZSAtIHVzaW5nIHRoZSBXaWR0aC9IZWlnaHQgb2YgdGhlIHBhcmVudCBpbWFnZSwgZm9yIFNNYXNrL01hc2sgZGF0YS4iKTtlfHwobT1uLmZhbGxiYWNrRGltcy53aWR0aCk7dHx8KHA9bi5mYWxsYmFja0RpbXMuaGVpZ2h0KX19dGhpcy53aWR0aD1tO3RoaXMuaGVpZ2h0PXA7dGhpcy5pbnRlcnBvbGF0ZT1jLmdldCgiSSIsIkludGVycG9sYXRlIik7dGhpcy5pbWFnZU1hc2s9Yy5nZXQoIklNIiwiSW1hZ2VNYXNrIil8fCExO3RoaXMubWF0dGU9Yy5nZXQoIk1hdHRlIil8fCExO2xldCBkPW4uYml0c1BlckNvbXBvbmVudDtpZighZCl7ZD1jLmdldCgiQlBDIiwiQml0c1BlckNvbXBvbmVudCIpO2lmKCFkKXtpZighdGhpcy5pbWFnZU1hc2spdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBCaXRzIHBlciBjb21wb25lbnQgbWlzc2luZyBpbiBpbWFnZTogJHt0aGlzLmltYWdlTWFza31gKTtkPTF9fXRoaXMuYnBjPWQ7aWYoIXRoaXMuaW1hZ2VNYXNrKXtsZXQgcz1jLmdldFJhdygiQ1MiKXx8Yy5nZXRSYXcoIkNvbG9yU3BhY2UiKTtjb25zdCByPSEhcztpZihyKXRoaXMuanB4RGVjb2Rlck9wdGlvbnM/LnNtYXNrSW5EYXRhJiYocz1OYW1lLmdldCgiRGV2aWNlUkdCQSIpKTtlbHNlIGlmKHRoaXMuanB4RGVjb2Rlck9wdGlvbnMpcz1OYW1lLmdldCgiRGV2aWNlUkdCQSIpO2Vsc2Ugc3dpdGNoKG4ubnVtQ29tcHMpe2Nhc2UgMTpzPU5hbWUuZ2V0KCJEZXZpY2VHcmF5Iik7YnJlYWs7Y2FzZSAzOnM9TmFtZS5nZXQoIkRldmljZVJHQiIpO2JyZWFrO2Nhc2UgNDpzPU5hbWUuZ2V0KCJEZXZpY2VDTVlLIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEltYWdlcyB3aXRoICR7bi5udW1Db21wc30gY29sb3IgY29tcG9uZW50cyBub3Qgc3VwcG9ydGVkLmApfXRoaXMuY29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMucGFyc2Uoe2NzOnMseHJlZjplLHJlc291cmNlczphP3Q6bnVsbCxwZGZGdW5jdGlvbkZhY3Rvcnk6byxnbG9iYWxDb2xvclNwYWNlQ2FjaGU6bCxsb2NhbENvbG9yU3BhY2VDYWNoZTpmfSk7dGhpcy5udW1Db21wcz10aGlzLmNvbG9yU3BhY2UubnVtQ29tcHM7aWYodGhpcy5qcHhEZWNvZGVyT3B0aW9ucyl7dGhpcy5qcHhEZWNvZGVyT3B0aW9ucy5udW1Db21wb25lbnRzPXI/dGhpcy5udW1Db21wczowO3RoaXMuanB4RGVjb2Rlck9wdGlvbnMuaXNJbmRleGVkQ29sb3JtYXA9IkluZGV4ZWQiPT09dGhpcy5jb2xvclNwYWNlLm5hbWV9fXRoaXMuZGVjb2RlPWMuZ2V0QXJyYXkoIkQiLCJEZWNvZGUiKTt0aGlzLm5lZWRzRGVjb2RlPSExO2lmKHRoaXMuZGVjb2RlJiYodGhpcy5jb2xvclNwYWNlJiYhdGhpcy5jb2xvclNwYWNlLmlzRGVmYXVsdERlY29kZSh0aGlzLmRlY29kZSxkKXx8aSYmIUNvbG9yU3BhY2UuaXNEZWZhdWx0RGVjb2RlKHRoaXMuZGVjb2RlLDEpKSl7dGhpcy5uZWVkc0RlY29kZT0hMDtjb25zdCBlPSgxPDxkKS0xO3RoaXMuZGVjb2RlQ29lZmZpY2llbnRzPVtdO3RoaXMuZGVjb2RlQWRkZW5kcz1bXTtjb25zdCB0PSJJbmRleGVkIj09PXRoaXMuY29sb3JTcGFjZT8ubmFtZTtmb3IobGV0IG49MCxhPTA7bjx0aGlzLmRlY29kZS5sZW5ndGg7bis9MiwrK2Epe2NvbnN0IHM9dGhpcy5kZWNvZGVbbl0scj10aGlzLmRlY29kZVtuKzFdO3RoaXMuZGVjb2RlQ29lZmZpY2llbnRzW2FdPXQ/KHItcykvZTpyLXM7dGhpcy5kZWNvZGVBZGRlbmRzW2FdPXQ/czplKnN9fWlmKHMpe3MuZmFsbGJhY2tEaW1zPz89e3dpZHRoOm0saGVpZ2h0OnB9O3RoaXMuc21hc2s9bmV3IFBERkltYWdlKHt4cmVmOmUscmVzOnQsaW1hZ2U6cyxpc0lubGluZTphLHBkZkZ1bmN0aW9uRmFjdG9yeTpvLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpsLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmZ9KX1lbHNlIGlmKHIpaWYociBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pe2lmKHIuZGljdC5nZXQoIklNIiwiSW1hZ2VNYXNrIikpe3IuZmFsbGJhY2tEaW1zPz89e3dpZHRoOm0saGVpZ2h0OnB9O3RoaXMubWFzaz1uZXcgUERGSW1hZ2Uoe3hyZWY6ZSxyZXM6dCxpbWFnZTpyLGlzSW5saW5lOmEsaXNNYXNrOiEwLHBkZkZ1bmN0aW9uRmFjdG9yeTpvLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpsLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmZ9KX1lbHNlIHdhcm4oIklnbm9yaW5nIC9NYXNrIGluIGltYWdlIHdpdGhvdXQgL0ltYWdlTWFzay4iKX1lbHNlIHRoaXMubWFzaz1yfXN0YXRpYyBhc3luYyBidWlsZEltYWdlKHt4cmVmOmUscmVzOnQsaW1hZ2U6bixpc0lubGluZTphPSExLHBkZkZ1bmN0aW9uRmFjdG9yeTpzLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpyLGxvY2FsQ29sb3JTcGFjZUNhY2hlOml9KXtjb25zdCBvPW47bGV0IGw9bnVsbCxmPW51bGw7Y29uc3QgYz1uLmRpY3QuZ2V0KCJTTWFzayIpLGg9bi5kaWN0LmdldCgiTWFzayIpO2M/YyBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/bD1jOndhcm4oIlVuc3VwcG9ydGVkIC9TTWFzayBmb3JtYXQuIik6aCYmKGggaW5zdGFuY2VvZiBCYXNlU3RyZWFtfHxBcnJheS5pc0FycmF5KGgpP2Y9aDp3YXJuKCJVbnN1cHBvcnRlZCAvTWFzayBmb3JtYXQuIikpO3JldHVybiBuZXcgUERGSW1hZ2Uoe3hyZWY6ZSxyZXM6dCxpbWFnZTpvLGlzSW5saW5lOmEsc21hc2s6bCxtYXNrOmYscGRmRnVuY3Rpb25GYWN0b3J5OnMsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnIsbG9jYWxDb2xvclNwYWNlQ2FjaGU6aX0pfXN0YXRpYyBhc3luYyBjcmVhdGVNYXNrKHtpbWFnZTplLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOnQ9ITF9KXtjb25zdHtkaWN0Om59PWUsYT1uLmdldCgiVyIsIldpZHRoIikscz1uLmdldCgiSCIsIkhlaWdodCIpLHI9bi5nZXQoIkkiLCJJbnRlcnBvbGF0ZSIpLGk9bi5nZXRBcnJheSgiRCIsIkRlY29kZSIpLG89aT8uWzBdPjAsbD0oYSs3Pj4zKSpzLGY9YXdhaXQgZS5nZXRJbWFnZURhdGEobCksYz0xPT09YSYmMT09PXMmJm89PT0oMD09PWYubGVuZ3RofHwhISgxMjgmZlswXSkpO2lmKGMpcmV0dXJue2lzU2luZ2xlT3BhcXVlUGl4ZWw6Y307aWYodCl7aWYoSW1hZ2VSZXNpemVyLm5lZWRzVG9CZVJlc2l6ZWQoYSxzKSl7Y29uc3QgZT1uZXcgVWludDhDbGFtcGVkQXJyYXkoYSpzKjQpO2NvbnZlcnRCbGFja0FuZFdoaXRlVG9SR0JBKHtzcmM6ZixkZXN0OmUsd2lkdGg6YSxoZWlnaHQ6cyxub25CbGFja0NvbG9yOjAsaW52ZXJzZURlY29kZTpvfSk7cmV0dXJuIEltYWdlUmVzaXplci5jcmVhdGVJbWFnZSh7a2luZDpGLGRhdGE6ZSx3aWR0aDphLGhlaWdodDpzLGludGVycG9sYXRlOnJ9KX1jb25zdCBlPW5ldyBPZmZzY3JlZW5DYW52YXMoYSxzKSx0PWUuZ2V0Q29udGV4dCgiMmQiKSxuPXQuY3JlYXRlSW1hZ2VEYXRhKGEscyk7Y29udmVydEJsYWNrQW5kV2hpdGVUb1JHQkEoe3NyYzpmLGRlc3Q6bi5kYXRhLHdpZHRoOmEsaGVpZ2h0OnMsbm9uQmxhY2tDb2xvcjowLGludmVyc2VEZWNvZGU6b30pO3QucHV0SW1hZ2VEYXRhKG4sMCwwKTtyZXR1cm57ZGF0YTpudWxsLHdpZHRoOmEsaGVpZ2h0OnMsaW50ZXJwb2xhdGU6cixiaXRtYXA6ZS50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKX19Y29uc3QgaD1mLmJ5dGVMZW5ndGg7bGV0IHU7aWYoZSBpbnN0YW5jZW9mIERlY29kZVN0cmVhbSYmKCFvfHxsPT09aCkpdT1mO2Vsc2UgaWYobyl7dT1uZXcgVWludDhBcnJheShsKTt1LnNldChmKTt1LmZpbGwoMjU1LGgpfWVsc2UgdT1uZXcgVWludDhBcnJheShmKTtpZihvKWZvcihsZXQgZT0wO2U8aDtlKyspdVtlXV49MjU1O3JldHVybntkYXRhOnUsd2lkdGg6YSxoZWlnaHQ6cyxpbnRlcnBvbGF0ZTpyfX1nZXQgZHJhd1dpZHRoKCl7cmV0dXJuIE1hdGgubWF4KHRoaXMud2lkdGgsdGhpcy5zbWFzaz8ud2lkdGh8fDAsdGhpcy5tYXNrPy53aWR0aHx8MCl9Z2V0IGRyYXdIZWlnaHQoKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5oZWlnaHQsdGhpcy5zbWFzaz8uaGVpZ2h0fHwwLHRoaXMubWFzaz8uaGVpZ2h0fHwwKX1kZWNvZGVCdWZmZXIoZSl7Y29uc3QgdD10aGlzLmJwYyxuPXRoaXMubnVtQ29tcHMsYT10aGlzLmRlY29kZUFkZGVuZHMscz10aGlzLmRlY29kZUNvZWZmaWNpZW50cyxyPSgxPDx0KS0xO2xldCBpLG87aWYoMT09PXQpe2ZvcihpPTAsbz1lLmxlbmd0aDtpPG87aSsrKWVbaV09KyFlW2ldO3JldHVybn1sZXQgbD0wO2ZvcihpPTAsbz10aGlzLndpZHRoKnRoaXMuaGVpZ2h0O2k8bztpKyspZm9yKGxldCB0PTA7dDxuO3QrKyl7ZVtsXT1NYXRoQ2xhbXAoYVt0XStlW2xdKnNbdF0sMCxyKTtsKyt9fWdldENvbXBvbmVudHMoZSl7Y29uc3QgdD10aGlzLmJwYztpZig4PT09dClyZXR1cm4gZTtjb25zdCBuPXRoaXMud2lkdGgsYT10aGlzLmhlaWdodCxzPXRoaXMubnVtQ29tcHMscj1uKmEqcztsZXQgaSxvPTA7aT10PD04P25ldyBVaW50OEFycmF5KHIpOnQ8PTE2P25ldyBVaW50MTZBcnJheShyKTpuZXcgVWludDMyQXJyYXkocik7Y29uc3QgbD1uKnMsZj0oMTw8dCktMTtsZXQgYyxoLHU9MDtpZigxPT09dCl7bGV0IHQsbixzO2ZvcihsZXQgcj0wO3I8YTtyKyspe249dSsoLTgmbCk7cz11K2w7Zm9yKDt1PG47KXtoPWVbbysrXTtpW3VdPWg+PjcmMTtpW3UrMV09aD4+NiYxO2lbdSsyXT1oPj41JjE7aVt1KzNdPWg+PjQmMTtpW3UrNF09aD4+MyYxO2lbdSs1XT1oPj4yJjE7aVt1KzZdPWg+PjEmMTtpW3UrN109MSZoO3UrPTh9aWYodTxzKXtoPWVbbysrXTt0PTEyODtmb3IoO3U8czspe2lbdSsrXT0rISEoaCZ0KTt0Pj49MX19fX1lbHNle2xldCBuPTA7aD0wO2Zvcih1PTAsYz1yO3U8YzsrK3Upe2lmKHUlbD09PTApe2g9MDtuPTB9Zm9yKDtuPHQ7KXtoPWg8PDh8ZVtvKytdO24rPTh9Y29uc3QgYT1uLXQ7bGV0IHM9aD4+YTtzPDA/cz0wOnM+ZiYmKHM9Zik7aVt1XT1zO2gmPSgxPDxhKS0xO249YX19cmV0dXJuIGl9YXN5bmMgZmlsbE9wYWNpdHkoZSx0LG4sYSxzKXtjb25zdCByPXRoaXMuc21hc2ssaT10aGlzLm1hc2s7bGV0IG8sbCxmLGMsaCx1O2lmKHIpe2w9ci53aWR0aDtmPXIuaGVpZ2h0O289bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGwqZik7YXdhaXQgci5maWxsR3JheUJ1ZmZlcihvKTtsPT09dCYmZj09PW58fChvPXJlc2l6ZUltYWdlTWFzayhvLHIuYnBjLGwsZix0LG4pKX1lbHNlIGlmKGkpaWYoaSBpbnN0YW5jZW9mIFBERkltYWdlKXtsPWkud2lkdGg7Zj1pLmhlaWdodDtvPW5ldyBVaW50OENsYW1wZWRBcnJheShsKmYpO2kubnVtQ29tcHM9MTthd2FpdCBpLmZpbGxHcmF5QnVmZmVyKG8pO2ZvcihjPTAsaD1sKmY7YzxoOysrYylvW2NdPTI1NS1vW2NdO2w9PT10JiZmPT09bnx8KG89cmVzaXplSW1hZ2VNYXNrKG8saS5icGMsbCxmLHQsbikpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkoaSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJVbmtub3duIG1hc2sgZm9ybWF0LiIpO3tvPW5ldyBVaW50OENsYW1wZWRBcnJheSh0Km4pO2NvbnN0IGU9dGhpcy5udW1Db21wcztmb3IoYz0wLGg9dCpuO2M8aDsrK2Mpe2xldCB0PTA7Y29uc3Qgbj1jKmU7Zm9yKHU9MDt1PGU7Kyt1KXtjb25zdCBlPXNbbit1XSxhPTIqdTtpZihlPGlbYV18fGU+aVthKzFdKXt0PTI1NTticmVha319b1tjXT10fX19aWYobylmb3IoYz0wLHU9MyxoPXQqYTtjPGg7KytjLHUrPTQpZVt1XT1vW2NdO2Vsc2UgZm9yKGM9MCx1PTMsaD10KmE7YzxoOysrYyx1Kz00KWVbdV09MjU1fXVuZG9QcmVibGVuZChlLHQsbil7Y29uc3QgYT10aGlzLnNtYXNrPy5tYXR0ZTtpZighYSlyZXR1cm47Y29uc3Qgcz10aGlzLmNvbG9yU3BhY2UuZ2V0UmdiKGEsMCkscj1zWzBdLGk9c1sxXSxvPXNbMl0sbD10Km4qNDtmb3IobGV0IHQ9MDt0PGw7dCs9NCl7Y29uc3Qgbj1lW3QrM107aWYoMD09PW4pe2VbdF09MjU1O2VbdCsxXT0yNTU7ZVt0KzJdPTI1NTtjb250aW51ZX1jb25zdCBhPTI1NS9uO2VbdF09KGVbdF0tcikqYStyO2VbdCsxXT0oZVt0KzFdLWkpKmEraTtlW3QrMl09KGVbdCsyXS1vKSphK299fWFzeW5jIGNyZWF0ZUltYWdlRGF0YShlPSExLHQ9ITEpe2NvbnN0IG49dGhpcy5kcmF3V2lkdGgsYT10aGlzLmRyYXdIZWlnaHQscz17d2lkdGg6bixoZWlnaHQ6YSxpbnRlcnBvbGF0ZTp0aGlzLmludGVycG9sYXRlLGtpbmQ6MCxkYXRhOm51bGx9LHI9dGhpcy5udW1Db21wcyxpPXRoaXMud2lkdGgsbz10aGlzLmhlaWdodCxsPXRoaXMuYnBjLGY9aSpyKmwrNz4+MyxjPXQmJkltYWdlUmVzaXplci5uZWVkc1RvQmVSZXNpemVkKG4sYSk7aWYoIXRoaXMuc21hc2smJiF0aGlzLm1hc2smJiJEZXZpY2VSR0JBIj09PXRoaXMuY29sb3JTcGFjZS5uYW1lKXtzLmtpbmQ9Rjtjb25zdCBlPXMuZGF0YT1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMobyppKjQse30pO3JldHVybiB0P2M/SW1hZ2VSZXNpemVyLmNyZWF0ZUltYWdlKHMsITEpOnRoaXMuY3JlYXRlQml0bWFwKEYsbixhLGUpOnN9aWYoIWUpe2xldCBlOyJEZXZpY2VHcmF5Ij09PXRoaXMuY29sb3JTcGFjZS5uYW1lJiYxPT09bD9lPXg6IkRldmljZVJHQiIhPT10aGlzLmNvbG9yU3BhY2UubmFtZXx8OCE9PWx8fHRoaXMubmVlZHNEZWNvZGV8fChlPUMpO2lmKGUmJiF0aGlzLnNtYXNrJiYhdGhpcy5tYXNrJiZuPT09aSYmYT09PW8pe2NvbnN0IHI9YXdhaXQgdGhpcy4jaGUoaSxvKTtpZihyKXJldHVybiByO2NvbnN0IGw9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKG8qZix7fSk7aWYodClyZXR1cm4gYz9JbWFnZVJlc2l6ZXIuY3JlYXRlSW1hZ2Uoe2RhdGE6bCxraW5kOmUsd2lkdGg6bixoZWlnaHQ6YSxpbnRlcnBvbGF0ZTp0aGlzLmludGVycG9sYXRlfSx0aGlzLm5lZWRzRGVjb2RlKTp0aGlzLmNyZWF0ZUJpdG1hcChlLGksbyxsKTtzLmtpbmQ9ZTtzLmRhdGE9bDtpZih0aGlzLm5lZWRzRGVjb2RlKXthc3NlcnQoZT09PXgsIlBERkltYWdlLmNyZWF0ZUltYWdlRGF0YTogVGhlIGltYWdlIG11c3QgYmUgZ3JheXNjYWxlLiIpO2NvbnN0IHQ9cy5kYXRhO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0W2VdXj0yNTV9cmV0dXJuIHN9aWYodGhpcy5pbWFnZSBpbnN0YW5jZW9mIEpwZWdTdHJlYW0mJiF0aGlzLnNtYXNrJiYhdGhpcy5tYXNrJiYhdGhpcy5uZWVkc0RlY29kZSl7bGV0IGU9bypmO2lmKHQmJiFjKXtsZXQgdD0hMTtzd2l0Y2godGhpcy5jb2xvclNwYWNlLm5hbWUpe2Nhc2UiRGV2aWNlR3JheSI6ZSo9NDt0PSEwO2JyZWFrO2Nhc2UiRGV2aWNlUkdCIjplPWUvMyo0O3Q9ITA7YnJlYWs7Y2FzZSJEZXZpY2VDTVlLIjp0PSEwfWlmKHQpe2NvbnN0IHQ9YXdhaXQgdGhpcy4jaGUobixhKTtpZih0KXJldHVybiB0O2NvbnN0IHM9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKGUse2RyYXdXaWR0aDpuLGRyYXdIZWlnaHQ6YSxmb3JjZVJHQkE6ITB9KTtyZXR1cm4gdGhpcy5jcmVhdGVCaXRtYXAoRixuLGEscyl9fWVsc2Ugc3dpdGNoKHRoaXMuY29sb3JTcGFjZS5uYW1lKXtjYXNlIkRldmljZUdyYXkiOmUqPTM7Y2FzZSJEZXZpY2VSR0IiOmNhc2UiRGV2aWNlQ01ZSyI6cy5raW5kPUM7cy5kYXRhPWF3YWl0IHRoaXMuZ2V0SW1hZ2VCeXRlcyhlLHtkcmF3V2lkdGg6bixkcmF3SGVpZ2h0OmEsZm9yY2VSR0I6ITB9KTtyZXR1cm4gYz9JbWFnZVJlc2l6ZXIuY3JlYXRlSW1hZ2Uocyk6c319fWNvbnN0IGg9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKG8qZix7aW50ZXJuYWw6ITB9KSx1PTB8aC5sZW5ndGgvZiphL28sbT10aGlzLmdldENvbXBvbmVudHMoaCk7bGV0IHAsZCxnLGIsdyxqO2lmKHQmJiFjKXtnPW5ldyBPZmZzY3JlZW5DYW52YXMobixhKTtiPWcuZ2V0Q29udGV4dCgiMmQiKTt3PWIuY3JlYXRlSW1hZ2VEYXRhKG4sYSk7aj13LmRhdGF9cy5raW5kPUY7aWYoZXx8dGhpcy5zbWFza3x8dGhpcy5tYXNrKXt0JiYhY3x8KGo9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KG4qYSo0KSk7cD0xO2Q9ITA7YXdhaXQgdGhpcy5maWxsT3BhY2l0eShqLG4sYSx1LG0pfWVsc2V7aWYoIXR8fGMpe3Mua2luZD1DO2o9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KG4qYSozKTtwPTB9ZWxzZXtuZXcgVWludDMyQXJyYXkoai5idWZmZXIpLmZpbGwoRmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4/NDI3ODE5MDA4MDoyNTUpO3A9MX1kPSExfXRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKG0pO3RoaXMuY29sb3JTcGFjZS5maWxsUmdiKGosaSxvLG4sYSx1LGwsbSxwKTtkJiZ0aGlzLnVuZG9QcmVibGVuZChqLG4sdSk7aWYodCYmIWMpe2IucHV0SW1hZ2VEYXRhKHcsMCwwKTtyZXR1cm57ZGF0YTpudWxsLHdpZHRoOm4saGVpZ2h0OmEsYml0bWFwOmcudHJhbnNmZXJUb0ltYWdlQml0bWFwKCksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX19cy5kYXRhPWo7cmV0dXJuIGM/SW1hZ2VSZXNpemVyLmNyZWF0ZUltYWdlKHMpOnN9YXN5bmMgZmlsbEdyYXlCdWZmZXIoZSl7Y29uc3QgdD10aGlzLm51bUNvbXBzO2lmKDEhPT10KXRocm93IG5ldyBGb3JtYXRFcnJvcihgUmVhZGluZyBncmF5IHNjYWxlIGZyb20gYSBjb2xvciBpbWFnZTogJHt0fWApO2NvbnN0IG49dGhpcy53aWR0aCxhPXRoaXMuaGVpZ2h0LHM9dGhpcy5icGMscj1uKnQqcys3Pj4zLGk9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKGEqcix7aW50ZXJuYWw6ITB9KSxvPXRoaXMuZ2V0Q29tcG9uZW50cyhpKTtsZXQgbCxmO2lmKDE9PT1zKXtmPW4qYTtpZih0aGlzLm5lZWRzRGVjb2RlKWZvcihsPTA7bDxmOysrbCllW2xdPW9bbF0tMSYyNTU7ZWxzZSBmb3IobD0wO2w8ZjsrK2wpZVtsXT0yNTUmLW9bbF07cmV0dXJufXRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKG8pO2Y9biphO2NvbnN0IGM9MjU1LygoMTw8cyktMSk7Zm9yKGw9MDtsPGY7KytsKWVbbF09YypvW2xdfWNyZWF0ZUJpdG1hcChlLHQsbixhKXtjb25zdCBzPW5ldyBPZmZzY3JlZW5DYW52YXModCxuKSxyPXMuZ2V0Q29udGV4dCgiMmQiKTtsZXQgaTtpZihlPT09RilpPW5ldyBJbWFnZURhdGEoYSx0LG4pO2Vsc2V7aT1yLmNyZWF0ZUltYWdlRGF0YSh0LG4pO2NvbnZlcnRUb1JHQkEoe2tpbmQ6ZSxzcmM6YSxkZXN0Om5ldyBVaW50MzJBcnJheShpLmRhdGEuYnVmZmVyKSx3aWR0aDp0LGhlaWdodDpuLGludmVyc2VEZWNvZGU6dGhpcy5uZWVkc0RlY29kZX0pfXIucHV0SW1hZ2VEYXRhKGksMCwwKTtyZXR1cm57ZGF0YTpudWxsLHdpZHRoOnQsaGVpZ2h0Om4sYml0bWFwOnMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX19YXN5bmMjaGUoZSx0KXtjb25zdCBuPWF3YWl0IHRoaXMuaW1hZ2UuZ2V0VHJhbnNmZXJhYmxlSW1hZ2UoKTtyZXR1cm4gbj97ZGF0YTpudWxsLHdpZHRoOmUsaGVpZ2h0OnQsYml0bWFwOm4saW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX06bnVsbH1hc3luYyBnZXRJbWFnZUJ5dGVzKGUse2RyYXdXaWR0aDp0LGRyYXdIZWlnaHQ6bixmb3JjZVJHQkE6YT0hMSxmb3JjZVJHQjpzPSExLGludGVybmFsOnI9ITF9KXt0aGlzLmltYWdlLnJlc2V0KCk7dGhpcy5pbWFnZS5kcmF3V2lkdGg9dHx8dGhpcy53aWR0aDt0aGlzLmltYWdlLmRyYXdIZWlnaHQ9bnx8dGhpcy5oZWlnaHQ7dGhpcy5pbWFnZS5mb3JjZVJHQkE9ISFhO3RoaXMuaW1hZ2UuZm9yY2VSR0I9ISFzO2NvbnN0IGk9YXdhaXQgdGhpcy5pbWFnZS5nZXRJbWFnZURhdGEoZSx0aGlzLmpweERlY29kZXJPcHRpb25zKTtpZihyfHx0aGlzLmltYWdlIGluc3RhbmNlb2YgRGVjb2RlU3RyZWFtKXJldHVybiBpO2Fzc2VydChpIGluc3RhbmNlb2YgVWludDhBcnJheSwnUERGSW1hZ2UuZ2V0SW1hZ2VCeXRlczogVW5zdXBwb3J0ZWQgImltYWdlQnl0ZXMiIHR5cGUuJyk7cmV0dXJuIG5ldyBVaW50OEFycmF5KGkpfX1jb25zdCBqcj1PYmplY3QuZnJlZXplKHttYXhJbWFnZVNpemU6LTEsZGlzYWJsZUZvbnRGYWNlOiExLGlnbm9yZUVycm9yczohMSxpc0V2YWxTdXBwb3J0ZWQ6ITAsaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6ITEsaXNJbWFnZURlY29kZXJTdXBwb3J0ZWQ6ITEsY2FudmFzTWF4QXJlYUluQnl0ZXM6LTEsZm9udEV4dHJhUHJvcGVydGllczohMSx1c2VTeXN0ZW1Gb250czohMCx1c2VXYXNtOiEwLHVzZVdvcmtlckZldGNoOiEwLGNNYXBVcmw6bnVsbCxpY2NVcmw6bnVsbCxzdGFuZGFyZEZvbnREYXRhVXJsOm51bGwsd2FzbVVybDpudWxsfSksa3I9MSx5cj0yLHFyPVByb21pc2UucmVzb2x2ZSgpO2Z1bmN0aW9uIG5vcm1hbGl6ZUJsZW5kTW9kZShlLHQ9ITEpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9bm9ybWFsaXplQmxlbmRNb2RlKHQsITApO2lmKGUpcmV0dXJuIGV9d2FybihgVW5zdXBwb3J0ZWQgYmxlbmQgbW9kZSBBcnJheTogJHtlfWApO3JldHVybiJzb3VyY2Utb3ZlciJ9aWYoIShlIGluc3RhbmNlb2YgTmFtZSkpcmV0dXJuIHQ/bnVsbDoic291cmNlLW92ZXIiO3N3aXRjaChlLm5hbWUpe2Nhc2UiTm9ybWFsIjpjYXNlIkNvbXBhdGlibGUiOnJldHVybiJzb3VyY2Utb3ZlciI7Y2FzZSJNdWx0aXBseSI6cmV0dXJuIm11bHRpcGx5IjtjYXNlIlNjcmVlbiI6cmV0dXJuInNjcmVlbiI7Y2FzZSJPdmVybGF5IjpyZXR1cm4ib3ZlcmxheSI7Y2FzZSJEYXJrZW4iOnJldHVybiJkYXJrZW4iO2Nhc2UiTGlnaHRlbiI6cmV0dXJuImxpZ2h0ZW4iO2Nhc2UiQ29sb3JEb2RnZSI6cmV0dXJuImNvbG9yLWRvZGdlIjtjYXNlIkNvbG9yQnVybiI6cmV0dXJuImNvbG9yLWJ1cm4iO2Nhc2UiSGFyZExpZ2h0IjpyZXR1cm4iaGFyZC1saWdodCI7Y2FzZSJTb2Z0TGlnaHQiOnJldHVybiJzb2Z0LWxpZ2h0IjtjYXNlIkRpZmZlcmVuY2UiOnJldHVybiJkaWZmZXJlbmNlIjtjYXNlIkV4Y2x1c2lvbiI6cmV0dXJuImV4Y2x1c2lvbiI7Y2FzZSJIdWUiOnJldHVybiJodWUiO2Nhc2UiU2F0dXJhdGlvbiI6cmV0dXJuInNhdHVyYXRpb24iO2Nhc2UiQ29sb3IiOnJldHVybiJjb2xvciI7Y2FzZSJMdW1pbm9zaXR5IjpyZXR1cm4ibHVtaW5vc2l0eSJ9aWYodClyZXR1cm4gbnVsbDt3YXJuKGBVbnN1cHBvcnRlZCBibGVuZCBtb2RlOiAke2UubmFtZX1gKTtyZXR1cm4ic291cmNlLW92ZXIifWZ1bmN0aW9uIGFkZENhY2hlZEltYWdlT3BzKGUse29iaklkOnQsZm46bixhcmdzOmEsb3B0aW9uYWxDb250ZW50OnMsaGFzTWFzazpyfSl7dCYmZS5hZGREZXBlbmRlbmN5KHQpO2UuYWRkSW1hZ2VPcHMobixhLHMscik7bj09PVJ0JiZhWzBdPy5jb3VudD4wJiZhWzBdLmNvdW50Kyt9Y2xhc3MgVGltZVNsb3RNYW5hZ2Vye3N0YXRpYyBUSU1FX1NMT1RfRFVSQVRJT05fTVM9MjA7c3RhdGljIENIRUNLX1RJTUVfRVZFUlk9MTAwO2NvbnN0cnVjdG9yKCl7dGhpcy5yZXNldCgpfWNoZWNrKCl7aWYoKyt0aGlzLmNoZWNrZWQ8VGltZVNsb3RNYW5hZ2VyLkNIRUNLX1RJTUVfRVZFUlkpcmV0dXJuITE7dGhpcy5jaGVja2VkPTA7cmV0dXJuIHRoaXMuZW5kVGltZTw9RGF0ZS5ub3coKX1yZXNldCgpe3RoaXMuZW5kVGltZT1EYXRlLm5vdygpK1RpbWVTbG90TWFuYWdlci5USU1FX1NMT1RfRFVSQVRJT05fTVM7dGhpcy5jaGVja2VkPTB9fWNsYXNzIFBhcnRpYWxFdmFsdWF0b3J7Y29uc3RydWN0b3Ioe3hyZWY6ZSxoYW5kbGVyOnQscGFnZUluZGV4Om4saWRGYWN0b3J5OmEsZm9udENhY2hlOnMsYnVpbHRJbkNNYXBDYWNoZTpyLHN0YW5kYXJkRm9udERhdGFDYWNoZTppLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpvLGdsb2JhbEltYWdlQ2FjaGU6bCxzeXN0ZW1Gb250Q2FjaGU6ZixvcHRpb25zOmM9bnVsbH0pe3RoaXMueHJlZj1lO3RoaXMuaGFuZGxlcj10O3RoaXMucGFnZUluZGV4PW47dGhpcy5pZEZhY3Rvcnk9YTt0aGlzLmZvbnRDYWNoZT1zO3RoaXMuYnVpbHRJbkNNYXBDYWNoZT1yO3RoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlPWk7dGhpcy5nbG9iYWxDb2xvclNwYWNlQ2FjaGU9bzt0aGlzLmdsb2JhbEltYWdlQ2FjaGU9bDt0aGlzLnN5c3RlbUZvbnRDYWNoZT1mO3RoaXMub3B0aW9ucz1jfHxqcjt0aGlzLnR5cGUzRm9udFJlZnM9bnVsbDt0aGlzLl9yZWdpb25hbEltYWdlQ2FjaGU9bmV3IFJlZ2lvbmFsSW1hZ2VDYWNoZTt0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQ9dGhpcy5mZXRjaEJ1aWx0SW5DTWFwLmJpbmQodGhpcyl9Z2V0IF9wZGZGdW5jdGlvbkZhY3RvcnkoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9wZGZGdW5jdGlvbkZhY3RvcnkiLG5ldyBQREZGdW5jdGlvbkZhY3Rvcnkoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLm9wdGlvbnMuaXNFdmFsU3VwcG9ydGVkfSkpfWdldCBwYXJzaW5nVHlwZTNGb250KCl7cmV0dXJuISF0aGlzLnR5cGUzRm9udFJlZnN9Y2xvbmUoZT1udWxsKXtjb25zdCB0PU9iamVjdC5jcmVhdGUodGhpcyk7dC5vcHRpb25zPU9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLm9wdGlvbnMsZSk7cmV0dXJuIHR9aGFzQmxlbmRNb2RlcyhlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXJldHVybiExO2lmKGUub2JqSWQmJnQuaGFzKGUub2JqSWQpKXJldHVybiExO2NvbnN0IG49bmV3IFJlZlNldCh0KTtlLm9iaklkJiZuLnB1dChlLm9iaklkKTtjb25zdCBhPVtlXSxzPXRoaXMueHJlZjtmb3IoO2EubGVuZ3RoOyl7Y29uc3QgZT1hLnNoaWZ0KCksdD1lLmdldCgiRXh0R1N0YXRlIik7aWYodCBpbnN0YW5jZW9mIERpY3QpZm9yKGxldCBlIG9mIHQuZ2V0UmF3VmFsdWVzKCkpe2lmKGUgaW5zdGFuY2VvZiBSZWYpe2lmKG4uaGFzKGUpKWNvbnRpbnVlO3RyeXtlPXMuZmV0Y2goZSl9Y2F0Y2godCl7bi5wdXQoZSk7aW5mbyhgaGFzQmxlbmRNb2RlcyAtIGlnbm9yaW5nIEV4dEdTdGF0ZTogIiR7dH0iLmApO2NvbnRpbnVlfX1pZighKGUgaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtlLm9iaklkJiZuLnB1dChlLm9iaklkKTtjb25zdCB0PWUuZ2V0KCJCTSIpO2lmKHQgaW5zdGFuY2VvZiBOYW1lKXtpZigiTm9ybWFsIiE9PXQubmFtZSlyZXR1cm4hMH1lbHNlIGlmKHZvaWQgMCE9PXQmJkFycmF5LmlzQXJyYXkodCkpZm9yKGNvbnN0IGUgb2YgdClpZihlIGluc3RhbmNlb2YgTmFtZSYmIk5vcm1hbCIhPT1lLm5hbWUpcmV0dXJuITB9Y29uc3Qgcj1lLmdldCgiWE9iamVjdCIpO2lmKHIgaW5zdGFuY2VvZiBEaWN0KWZvcihsZXQgZSBvZiByLmdldFJhd1ZhbHVlcygpKXtpZihlIGluc3RhbmNlb2YgUmVmKXtpZihuLmhhcyhlKSljb250aW51ZTt0cnl7ZT1zLmZldGNoKGUpfWNhdGNoKHQpe24ucHV0KGUpO2luZm8oYGhhc0JsZW5kTW9kZXMgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHt0fSIuYCk7Y29udGludWV9fWlmKCEoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKWNvbnRpbnVlO2UuZGljdC5vYmpJZCYmbi5wdXQoZS5kaWN0Lm9iaklkKTtjb25zdCB0PWUuZGljdC5nZXQoIlJlc291cmNlcyIpO2lmKHQgaW5zdGFuY2VvZiBEaWN0JiYoIXQub2JqSWR8fCFuLmhhcyh0Lm9iaklkKSkpe2EucHVzaCh0KTt0Lm9iaklkJiZuLnB1dCh0Lm9iaklkKX19fWZvcihjb25zdCBlIG9mIG4pdC5wdXQoZSk7cmV0dXJuITF9YXN5bmMgZmV0Y2hCdWlsdEluQ01hcChlKXtjb25zdCB0PXRoaXMuYnVpbHRJbkNNYXBDYWNoZS5nZXQoZSk7aWYodClyZXR1cm4gdDtsZXQgbjtuPXRoaXMub3B0aW9ucy51c2VXb3JrZXJGZXRjaD97Y01hcERhdGE6YXdhaXQgZmV0Y2hCaW5hcnlEYXRhKGAke3RoaXMub3B0aW9ucy5jTWFwVXJsfSR7ZX0uYmNtYXBgKSxpc0NvbXByZXNzZWQ6ITB9OmF3YWl0IHRoaXMuaGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkZldGNoQmluYXJ5RGF0YSIse3R5cGU6ImNNYXBSZWFkZXJGYWN0b3J5IixuYW1lOmV9KTt0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUuc2V0KGUsbik7cmV0dXJuIG59YXN5bmMgZmV0Y2hTdGFuZGFyZEZvbnREYXRhKGUpe2NvbnN0IHQ9dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUuZ2V0KGUpO2lmKHQpcmV0dXJuIG5ldyBTdHJlYW0odCk7aWYodGhpcy5vcHRpb25zLnVzZVN5c3RlbUZvbnRzJiYiU3ltYm9sIiE9PWUmJiJaYXBmRGluZ2JhdHMiIT09ZSlyZXR1cm4gbnVsbDtjb25zdCBuPXphKClbZV07bGV0IGE7dHJ5e2E9dGhpcy5vcHRpb25zLnVzZVdvcmtlckZldGNoP2F3YWl0IGZldGNoQmluYXJ5RGF0YShgJHt0aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybH0ke259YCk6YXdhaXQgdGhpcy5oYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiRmV0Y2hCaW5hcnlEYXRhIix7dHlwZToic3RhbmRhcmRGb250RGF0YUZhY3RvcnkiLGZpbGVuYW1lOm59KX1jYXRjaChlKXt3YXJuKGUpO3JldHVybiBudWxsfXRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLnNldChlLGEpO3JldHVybiBuZXcgU3RyZWFtKGEpfWFzeW5jIGJ1aWxkRm9ybVhPYmplY3QoZSx0LG4sYSxzLHIsaSxvKXtjb25zdHtkaWN0Omx9PXQsZj1sb29rdXBNYXRyaXgobC5nZXRBcnJheSgiTWF0cml4IiksbnVsbCksYz1sb29rdXBOb3JtYWxSZWN0KGwuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtsZXQgaCx1O2wuaGFzKCJPQyIpJiYoaD1hd2FpdCB0aGlzLnBhcnNlTWFya2VkQ29udGVudFByb3BzKGwuZ2V0KCJPQyIpLGUpKTt2b2lkIDAhPT1oJiZhLmFkZE9wKFN0LFsiT0MiLGhdKTtjb25zdCBtPWwuZ2V0KCJHcm91cCIpO2lmKG0pe3U9e21hdHJpeDpmLGJib3g6YyxzbWFzazpuLGlzb2xhdGVkOiExLGtub2Nrb3V0OiExfTtsZXQgdD1udWxsO2lmKGlzTmFtZShtLmdldCgiUyIpLCJUcmFuc3BhcmVuY3kiKSl7dS5pc29sYXRlZD1tLmdldCgiSSIpfHwhMTt1Lmtub2Nrb3V0PW0uZ2V0KCJLIil8fCExO2lmKG0uaGFzKCJDUyIpKXtjb25zdCBuPXRoaXMuX2dldENvbG9yU3BhY2UobS5nZXRSYXcoIkNTIiksZSxpKTt0PW4gaW5zdGFuY2VvZiBDb2xvclNwYWNlP246YXdhaXQgdGhpcy5faGFuZGxlQ29sb3JTcGFjZShuKX19aWYobj8uYmFja2Ryb3Ape3R8fD1Db2xvclNwYWNlVXRpbHMucmdiO24uYmFja2Ryb3A9dC5nZXRSZ2JIZXgobi5iYWNrZHJvcCwwKX1hLmFkZE9wKFR0LFt1XSl9Y29uc3QgcD1bZiYmbmV3IEZsb2F0MzJBcnJheShmKSwhbSYmYyYmbmV3IEZsb2F0MzJBcnJheShjKXx8bnVsbF07YS5hZGRPcChJdCxwKTtjb25zdCBkPWwuZ2V0KCJSZXNvdXJjZXMiKTthd2FpdCB0aGlzLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOnQsdGFzazpzLHJlc291cmNlczpkIGluc3RhbmNlb2YgRGljdD9kOmUsb3BlcmF0b3JMaXN0OmEsaW5pdGlhbFN0YXRlOnIscHJldlJlZnM6b30pO2EuYWRkT3AoRnQsW10pO20mJmEuYWRkT3AoSHQsW3VdKTt2b2lkIDAhPT1oJiZhLmFkZE9wKHh0LFtdKX1fc2VuZEltZ0RhdGEoZSx0LG49ITEpe2NvbnN0IGE9dD9bdC5iaXRtYXB8fHQuZGF0YS5idWZmZXJdOm51bGw7cmV0dXJuIHRoaXMucGFyc2luZ1R5cGUzRm9udHx8bj90aGlzLmhhbmRsZXIuc2VuZCgiY29tbW9ub2JqIixbZSwiSW1hZ2UiLHRdLGEpOnRoaXMuaGFuZGxlci5zZW5kKCJvYmoiLFtlLHRoaXMucGFnZUluZGV4LCJJbWFnZSIsdF0sYSl9YXN5bmMgYnVpbGRQYWludEltYWdlWE9iamVjdCh7cmVzb3VyY2VzOmUsaW1hZ2U6dCxpc0lubGluZTpuPSExLG9wZXJhdG9yTGlzdDphLGNhY2hlS2V5OnMsbG9jYWxJbWFnZUNhY2hlOnIsbG9jYWxDb2xvclNwYWNlQ2FjaGU6aX0pe2NvbnN0e21heEltYWdlU2l6ZTpvLGlnbm9yZUVycm9yczpsLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmZ9PXRoaXMub3B0aW9ucyx7ZGljdDpjfT10LGg9Yy5vYmpJZCx1PWMuZ2V0KCJXIiwiV2lkdGgiKSxtPWMuZ2V0KCJIIiwiSGVpZ2h0Iik7aWYoIXV8fCJudW1iZXIiIT10eXBlb2YgdXx8IW18fCJudW1iZXIiIT10eXBlb2YgbSl7d2FybigiSW1hZ2UgZGltZW5zaW9ucyBhcmUgbWlzc2luZywgb3Igbm90IG51bWJlcnMuIik7cmV0dXJufWlmKC0xIT09byYmdSptPm8pe2NvbnN0IGU9IkltYWdlIGV4Y2VlZGVkIG1heGltdW0gYWxsb3dlZCBzaXplIGFuZCB3YXMgcmVtb3ZlZC4iO2lmKCFsKXRocm93IG5ldyBFcnJvcihlKTt3YXJuKGUpO3JldHVybn1sZXQgcDtjLmhhcygiT0MiKSYmKHA9YXdhaXQgdGhpcy5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyhjLmdldCgiT0MiKSxlKSk7bGV0IGQsZyxiO2lmKGMuZ2V0KCJJTSIsIkltYWdlTWFzayIpfHwhMSl7ZD1hd2FpdCBQREZJbWFnZS5jcmVhdGVNYXNrKHtpbWFnZTp0LGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmYmJiF0aGlzLnBhcnNpbmdUeXBlM0ZvbnR9KTtpZihkLmlzU2luZ2xlT3BhcXVlUGl4ZWwpe2c9THQ7Yj1bXTthLmFkZEltYWdlT3BzKGcsYixwKTtpZihzKXtjb25zdCBlPXtmbjpnLGFyZ3M6YixvcHRpb25hbENvbnRlbnQ6cH07ci5zZXQocyxoLGUpO2gmJnRoaXMuX3JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQobnVsbCxoLGUpfXJldHVybn1pZih0aGlzLnBhcnNpbmdUeXBlM0ZvbnQpe2I9ZnVuY3Rpb24gY29tcGlsZVR5cGUzR2x5cGgoe2RhdGE6ZSx3aWR0aDp0LGhlaWdodDpufSl7aWYodD4xZTN8fG4+MWUzKXJldHVybiBudWxsO2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoWzAsMiw0LDAsMSwwLDUsNCw4LDEwLDAsOCwwLDIsMSwwXSkscz10KzEscj1uZXcgVWludDhBcnJheShzKihuKzEpKTtsZXQgaSxvLGw7Y29uc3QgZj10KzcmLTgsYz1uZXcgVWludDhBcnJheShmKm4pO2xldCBoPTA7Zm9yKGNvbnN0IHQgb2YgZSl7bGV0IGU9MTI4O2Zvcig7ZT4wOyl7Y1toKytdPXQmZT8wOjI1NTtlPj49MX19bGV0IHU9MDtoPTA7aWYoMCE9PWNbaF0pe3JbMF09MTsrK3V9Zm9yKG89MTtvPHQ7bysrKXtpZihjW2hdIT09Y1toKzFdKXtyW29dPWNbaF0/MjoxOysrdX1oKyt9aWYoMCE9PWNbaF0pe3Jbb109MjsrK3V9Zm9yKGk9MTtpPG47aSsrKXtoPWkqZjtsPWkqcztpZihjW2gtZl0hPT1jW2hdKXtyW2xdPWNbaF0/MTo4OysrdX1sZXQgZT0oY1toXT80OjApKyhjW2gtZl0/ODowKTtmb3Iobz0xO288dDtvKyspe2U9KGU+PjIpKyhjW2grMV0/NDowKSsoY1toLWYrMV0/ODowKTtpZihhW2VdKXtyW2wrb109YVtlXTsrK3V9aCsrfWlmKGNbaC1mXSE9PWNbaF0pe3JbbCtvXT1jW2hdPzI6NDsrK3V9aWYodT4xZTMpcmV0dXJuIG51bGx9aD1mKihuLTEpO2w9aSpzO2lmKDAhPT1jW2hdKXtyW2xdPTg7Kyt1fWZvcihvPTE7bzx0O28rKyl7aWYoY1toXSE9PWNbaCsxXSl7cltsK29dPWNbaF0/NDo4OysrdX1oKyt9aWYoMCE9PWNbaF0pe3JbbCtvXT00OysrdX1pZih1PjFlMylyZXR1cm4gbnVsbDtjb25zdCBtPW5ldyBJbnQzMkFycmF5KFswLHMsLTEsMCwtcywwLDAsMCwxXSkscD1bXSx7YTpkLGI6ZyxjOmIsZDp3LGU6aixmOmt9PShuZXcgRE9NTWF0cml4KS5zY2FsZVNlbGYoMS90LC0xL24pLnRyYW5zbGF0ZVNlbGYoMCwtbik7Zm9yKGk9MDt1JiZpPD1uO2krKyl7bGV0IGU9aSpzO2NvbnN0IG49ZSt0O2Zvcig7ZTxuJiYhcltlXTspZSsrO2lmKGU9PT1uKWNvbnRpbnVlO2xldCBhPWUlcyxvPWk7cC5wdXNoKEt0LGQqYStiKm8raixnKmErdypvK2spO2NvbnN0IGw9ZTtsZXQgZj1yW2VdO2Rve2NvbnN0IHQ9bVtmXTtkb3tlKz10fXdoaWxlKCFyW2VdKTtjb25zdCBuPXJbZV07aWYoNSE9PW4mJjEwIT09bil7Zj1uO3JbZV09MH1lbHNle2Y9biY1MSpmPj40O3JbZV0mPWY+PjJ8Zjw8Mn1hPWUlcztvPWUvc3wwO3AucHVzaChHdCxkKmErYipvK2osZyphK3cqbytrKTtyW2VdfHwtLXV9d2hpbGUobCE9PWUpOy0taX1yZXR1cm5bV3QsW25ldyBGbG9hdDMyQXJyYXkocCldLG5ldyBGbG9hdDMyQXJyYXkoWzAsMCx0LG5dKV19KGQpO2lmKGIpe2EuYWRkSW1hZ2VPcHMoVXQsYixwKTtyZXR1cm59d2FybigiQ2Fubm90IGNvbXBpbGUgVHlwZTMgZ2x5cGguIik7YS5hZGRJbWFnZU9wcyhSdCxbZF0scCk7cmV0dXJufWNvbnN0IGU9YG1hc2tfJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWA7YS5hZGREZXBlbmRlbmN5KGUpO2QuZGF0YUxlbj1kLmJpdG1hcD9kLndpZHRoKmQuaGVpZ2h0KjQ6ZC5kYXRhLmxlbmd0aDt0aGlzLl9zZW5kSW1nRGF0YShlLGQpO2c9UnQ7Yj1be2RhdGE6ZSx3aWR0aDpkLndpZHRoLGhlaWdodDpkLmhlaWdodCxpbnRlcnBvbGF0ZTpkLmludGVycG9sYXRlLGNvdW50OjF9XTthLmFkZEltYWdlT3BzKGcsYixwKTtpZihzKXtjb25zdCB0PXtvYmpJZDplLGZuOmcsYXJnczpiLG9wdGlvbmFsQ29udGVudDpwfTtyLnNldChzLGgsdCk7aCYmdGhpcy5fcmVnaW9uYWxJbWFnZUNhY2hlLnNldChudWxsLGgsdCl9cmV0dXJufWNvbnN0IHc9Yy5oYXMoIlNNYXNrIil8fGMuaGFzKCJNYXNrIik7aWYobiYmdSttPDIwMCYmIXcpe3RyeXtjb25zdCBzPW5ldyBQREZJbWFnZSh7eHJlZjp0aGlzLnhyZWYscmVzOmUsaW1hZ2U6dCxpc0lubGluZTpuLHBkZkZ1bmN0aW9uRmFjdG9yeTp0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnRoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLGxvY2FsQ29sb3JTcGFjZUNhY2hlOml9KTtkPWF3YWl0IHMuY3JlYXRlSW1hZ2VEYXRhKCEwLCExKTthLmFkZEltYWdlT3BzKFB0LFtkXSxwKX1jYXRjaChlKXtjb25zdCB0PWBVbmFibGUgdG8gZGVjb2RlIGlubGluZSBpbWFnZTogIiR7ZX0iLmA7aWYoIWwpdGhyb3cgbmV3IEVycm9yKHQpO3dhcm4odCl9cmV0dXJufWxldCBqPWBpbWdfJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWAsaz0hMSx5PW51bGw7aWYodGhpcy5wYXJzaW5nVHlwZTNGb250KWo9YCR7dGhpcy5pZEZhY3RvcnkuZ2V0RG9jSWQoKX1fdHlwZTNfJHtqfWA7ZWxzZSBpZihzJiZoKXtrPXRoaXMuZ2xvYmFsSW1hZ2VDYWNoZS5zaG91bGRDYWNoZShoLHRoaXMucGFnZUluZGV4KTtpZihrKXthc3NlcnQoIW4sIkNhbm5vdCBjYWNoZSBhbiBpbmxpbmUgaW1hZ2UgZ2xvYmFsbHkuIik7aj1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV8ke2p9YH19YS5hZGREZXBlbmRlbmN5KGopO2c9TXQ7Yj1baix1LG1dO2EuYWRkSW1hZ2VPcHMoZyxiLHAsdyk7aWYoayl7eT17b2JqSWQ6aixmbjpnLGFyZ3M6YixvcHRpb25hbENvbnRlbnQ6cCxoYXNNYXNrOncsYnl0ZVNpemU6MH07aWYodGhpcy5nbG9iYWxJbWFnZUNhY2hlLmhhc0RlY29kZUZhaWxlZChoKSl7dGhpcy5nbG9iYWxJbWFnZUNhY2hlLnNldERhdGEoaCx5KTt0aGlzLl9zZW5kSW1nRGF0YShqLG51bGwsayk7cmV0dXJufWlmKHUqbT4yNWU0fHx3KXtjb25zdCBlPWF3YWl0IHRoaXMuaGFuZGxlci5zZW5kV2l0aFByb21pc2UoImNvbW1vbm9iaiIsW2osIkNvcHlMb2NhbEltYWdlIix7aW1hZ2VSZWY6aH1dKTtpZihlKXt0aGlzLmdsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YShoLHkpO3RoaXMuZ2xvYmFsSW1hZ2VDYWNoZS5hZGRCeXRlU2l6ZShoLGUpO3JldHVybn19fVBERkltYWdlLmJ1aWxkSW1hZ2Uoe3hyZWY6dGhpcy54cmVmLHJlczplLGltYWdlOnQsaXNJbmxpbmU6bixwZGZGdW5jdGlvbkZhY3Rvcnk6dGhpcy5fcGRmRnVuY3Rpb25GYWN0b3J5LGdsb2JhbENvbG9yU3BhY2VDYWNoZTp0aGlzLmdsb2JhbENvbG9yU3BhY2VDYWNoZSxsb2NhbENvbG9yU3BhY2VDYWNoZTppfSkudGhlbihhc3luYyBlPT57ZD1hd2FpdCBlLmNyZWF0ZUltYWdlRGF0YSghMSxmKTtkLmRhdGFMZW49ZC5iaXRtYXA/ZC53aWR0aCpkLmhlaWdodCo0OmQuZGF0YS5sZW5ndGg7ZC5yZWY9aDtrJiZ0aGlzLmdsb2JhbEltYWdlQ2FjaGUuYWRkQnl0ZVNpemUoaCxkLmRhdGFMZW4pO3JldHVybiB0aGlzLl9zZW5kSW1nRGF0YShqLGQsayl9KS5jYXRjaChlPT57d2FybihgVW5hYmxlIHRvIGRlY29kZSBpbWFnZSAiJHtqfSI6ICIke2V9Ii5gKTtoJiZ0aGlzLmdsb2JhbEltYWdlQ2FjaGUuYWRkRGVjb2RlRmFpbGVkKGgpO3JldHVybiB0aGlzLl9zZW5kSW1nRGF0YShqLG51bGwsayl9KTtpZihzKXtjb25zdCBlPXtvYmpJZDpqLGZuOmcsYXJnczpiLG9wdGlvbmFsQ29udGVudDpwLGhhc01hc2s6d307ci5zZXQocyxoLGUpO2lmKGgpe3RoaXMuX3JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQobnVsbCxoLGUpO2lmKGspe2Fzc2VydCh5LCJUaGUgZ2xvYmFsIGNhY2hlLWRhdGEgbXVzdCBiZSBhdmFpbGFibGUuIik7dGhpcy5nbG9iYWxJbWFnZUNhY2hlLnNldERhdGEoaCx5KX19fX1oYW5kbGVTTWFzayhlLHQsbixhLHMscixpKXtjb25zdCBvPWUuZ2V0KCJHIiksbD17c3VidHlwZTplLmdldCgiUyIpLm5hbWUsYmFja2Ryb3A6ZS5nZXQoIkJDIil9LGY9ZS5nZXQoIlRSIik7aWYoaXNQREZGdW5jdGlvbihmKSl7Y29uc3QgZT10aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnkuY3JlYXRlKGYpLHQ9bmV3IFVpbnQ4QXJyYXkoMjU2KSxuPW5ldyBGbG9hdDMyQXJyYXkoMSk7Zm9yKGxldCBhPTA7YTwyNTY7YSsrKXtuWzBdPWEvMjU1O2UobiwwLG4sMCk7dFthXT0yNTUqblswXXwwfWwudHJhbnNmZXJNYXA9dH1yZXR1cm4gdGhpcy5idWlsZEZvcm1YT2JqZWN0KHQsbyxsLG4sYSxzLnN0YXRlLmNsb25lKHtuZXdQYXRoOiEwfSkscixpKX1oYW5kbGVUcmFuc2ZlckZ1bmN0aW9uKGUpe2xldCB0O2lmKEFycmF5LmlzQXJyYXkoZSkpe3Q9ZTtlLmxlbmd0aD4xJiZlLmV2ZXJ5KHQ9PnQ9PT1lWzBdKSYmKHQ9W2VbMF1dKX1lbHNle2lmKCFpc1BERkZ1bmN0aW9uKGUpKXJldHVybiBudWxsO3Q9W2VdfWNvbnN0IG49W107bGV0IGE9MCxzPTA7Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD10aGlzLnhyZWYuZmV0Y2hJZlJlZihlKTthKys7aWYoaXNOYW1lKHQsIklkZW50aXR5Iikpe24ucHVzaChudWxsKTtjb250aW51ZX1pZighaXNQREZGdW5jdGlvbih0KSlyZXR1cm4gbnVsbDtjb25zdCByPXRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeS5jcmVhdGUodCksaT1uZXcgVWludDhBcnJheSgyNTYpLG89bmV3IEZsb2F0MzJBcnJheSgxKTtmb3IobGV0IGU9MDtlPDI1NjtlKyspe29bMF09ZS8yNTU7cihvLDAsbywwKTtpW2VdPTI1NSpvWzBdfDB9bi5wdXNoKGkpO3MrK31yZXR1cm4gMSE9PWEmJjQhPT1hfHwwPT09cz9udWxsOm59aGFuZGxlVGlsaW5nVHlwZShlLHQsbixhLHMscixpLG8pe2NvbnN0IGw9bmV3IE9wZXJhdG9yTGlzdCxmPURpY3QubWVyZ2Uoe3hyZWY6dGhpcy54cmVmLGRpY3RBcnJheTpbcy5nZXQoIlJlc291cmNlcyIpLG5dfSk7cmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06YSx0YXNrOmkscmVzb3VyY2VzOmYsb3BlcmF0b3JMaXN0Omx9KS50aGVuKGZ1bmN0aW9uKCl7Y29uc3Qgbj1sLmdldElSKCksYT1nZXRUaWxpbmdQYXR0ZXJuSVIobixzLHQpO3IuYWRkRGVwZW5kZW5jaWVzKGwuZGVwZW5kZW5jaWVzKTtyLmFkZE9wKGUsYSk7cy5vYmpJZCYmby5zZXQobnVsbCxzLm9iaklkLHtvcGVyYXRvckxpc3RJUjpuLGRpY3Q6c30pfSkuY2F0Y2goZT0+e2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBoYW5kbGVUaWxpbmdUeXBlIC0gaWdub3JpbmcgcGF0dGVybjogIiR7ZX0iLmApfX0pfWFzeW5jIGhhbmRsZVNldEZvbnQoZSx0LG4sYSxzLHIsaT1udWxsLG89bnVsbCl7Y29uc3QgbD10Py5bMF1pbnN0YW5jZW9mIE5hbWU/dFswXS5uYW1lOm51bGwsZj1hd2FpdCB0aGlzLmxvYWRGb250KGwsbixlLHMsaSxvKTtmLmZvbnQuaXNUeXBlM0ZvbnQmJmEuYWRkRGVwZW5kZW5jaWVzKGYudHlwZTNEZXBlbmRlbmNpZXMpO3IuZm9udD1mLmZvbnQ7Zi5zZW5kKHRoaXMuaGFuZGxlcik7cmV0dXJuIGYubG9hZGVkTmFtZX1oYW5kbGVUZXh0KGUsdCl7Y29uc3Qgbj10LmZvbnQsYT1uLmNoYXJzVG9HbHlwaHMoZSk7aWYobi5kYXRhKXsoISEodC50ZXh0UmVuZGVyaW5nTW9kZSZTKXx8IlBhdHRlcm4iPT09dC5maWxsQ29sb3JTcGFjZS5uYW1lfHwiUGF0dGVybiI9PT10LnN0cm9rZUNvbG9yU3BhY2UubmFtZXx8bi5kaXNhYmxlRm9udEZhY2UpJiZQYXJ0aWFsRXZhbHVhdG9yLmJ1aWxkRm9udFBhdGhzKG4sYSx0aGlzLmhhbmRsZXIsdGhpcy5vcHRpb25zKX1yZXR1cm4gYX1lbnN1cmVTdGF0ZUZvbnQoZSl7aWYoZS5mb250KXJldHVybjtjb25zdCB0PW5ldyBGb3JtYXRFcnJvcigiTWlzc2luZyBzZXRGb250IChUZikgb3BlcmF0b3IgYmVmb3JlIHRleHQgcmVuZGVyaW5nIG9wZXJhdG9yLiIpO2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IHQ7d2FybihgZW5zdXJlU3RhdGVGb250OiAiJHt0fSIuYCl9YXN5bmMgc2V0R1N0YXRlKHtyZXNvdXJjZXM6ZSxnU3RhdGU6dCxvcGVyYXRvckxpc3Q6bixjYWNoZUtleTphLHRhc2s6cyxzdGF0ZU1hbmFnZXI6cixsb2NhbEdTdGF0ZUNhY2hlOmksbG9jYWxDb2xvclNwYWNlQ2FjaGU6byxzZWVuUmVmczpsfSl7Y29uc3QgZj10Lm9iaklkO2xldCBjPSEwO2NvbnN0IGg9W107bGV0IHU9UHJvbWlzZS5yZXNvbHZlKCk7Zm9yKGNvbnN0W2EsaV1vZiB0KXN3aXRjaChhKXtjYXNlIlR5cGUiOmJyZWFrO2Nhc2UiTFciOmlmKCJudW1iZXIiIT10eXBlb2YgaSl7d2FybihgSW52YWxpZCBMVyAobGluZSB3aWR0aCk6ICR7aX1gKTticmVha31oLnB1c2goW2EsTWF0aC5hYnMoaSldKTticmVhaztjYXNlIkxDIjpjYXNlIkxKIjpjYXNlIk1MIjpjYXNlIkQiOmNhc2UiUkkiOmNhc2UiRkwiOmNhc2UiQ0EiOmNhc2UiY2EiOmgucHVzaChbYSxpXSk7YnJlYWs7Y2FzZSJGb250IjpjPSExO3U9dS50aGVuKCgpPT50aGlzLmhhbmRsZVNldEZvbnQoZSxudWxsLGlbMF0sbixzLHIuc3RhdGUpLnRoZW4oZnVuY3Rpb24oZSl7bi5hZGREZXBlbmRlbmN5KGUpO2gucHVzaChbYSxbZSxpWzFdXV0pfSkpO2JyZWFrO2Nhc2UiQk0iOmgucHVzaChbYSxub3JtYWxpemVCbGVuZE1vZGUoaSldKTticmVhaztjYXNlIlNNYXNrIjppZihpc05hbWUoaSwiTm9uZSIpKXtoLnB1c2goW2EsITFdKTticmVha31pZihpIGluc3RhbmNlb2YgRGljdCl7Yz0hMTt1PXUudGhlbigoKT0+dGhpcy5oYW5kbGVTTWFzayhpLGUsbixzLHIsbyxsKSk7aC5wdXNoKFthLCEwXSl9ZWxzZSB3YXJuKCJVbnN1cHBvcnRlZCBTTWFzayB0eXBlIik7YnJlYWs7Y2FzZSJUUiI6Y29uc3QgdD10aGlzLmhhbmRsZVRyYW5zZmVyRnVuY3Rpb24oaSk7aC5wdXNoKFthLHRdKTticmVhaztjYXNlIk9QIjpjYXNlIm9wIjpjYXNlIk9QTSI6Y2FzZSJCRyI6Y2FzZSJCRzIiOmNhc2UiVUNSIjpjYXNlIlVDUjIiOmNhc2UiVFIyIjpjYXNlIkhUIjpjYXNlIlNNIjpjYXNlIlNBIjpjYXNlIkFJUyI6Y2FzZSJUSyI6aW5mbygiZ3JhcGhpYyBzdGF0ZSBvcGVyYXRvciAiK2EpO2JyZWFrO2RlZmF1bHQ6aW5mbygiVW5rbm93biBncmFwaGljIHN0YXRlIG9wZXJhdG9yICIrYSl9YXdhaXQgdTtoLmxlbmd0aD4wJiZuLmFkZE9wKGJlLFtoXSk7YyYmaS5zZXQoYSxmLGgpfWxvYWRGb250KGUsdCxuLGEscz1udWxsLHI9bnVsbCl7Y29uc3QgZXJyb3JGb250PWFzeW5jKCk9Pm5ldyBUcmFuc2xhdGVkRm9udCh7bG9hZGVkTmFtZToiZ19mb250X2Vycm9yIixmb250Om5ldyBFcnJvckZvbnQoYEZvbnQgIiR7ZX0iIGlzIG5vdCBhdmFpbGFibGUuYCksZGljdDp0fSk7bGV0IGk7aWYodCl0IGluc3RhbmNlb2YgUmVmJiYoaT10KTtlbHNle2NvbnN0IHQ9bi5nZXQoIkZvbnQiKTt0JiYoaT10LmdldFJhdyhlKSl9aWYoaSl7aWYodGhpcy50eXBlM0ZvbnRSZWZzPy5oYXMoaSkpcmV0dXJuIGVycm9yRm9udCgpO2lmKHRoaXMuZm9udENhY2hlLmhhcyhpKSlyZXR1cm4gdGhpcy5mb250Q2FjaGUuZ2V0KGkpO3RyeXt0PXRoaXMueHJlZi5mZXRjaElmUmVmKGkpfWNhdGNoKGUpe3dhcm4oYGxvYWRGb250IC0gbG9va3VwIGZhaWxlZDogIiR7ZX0iLmApfX1pZighKHQgaW5zdGFuY2VvZiBEaWN0KSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMmJiF0aGlzLnBhcnNpbmdUeXBlM0ZvbnQpe3dhcm4oYEZvbnQgIiR7ZX0iIGlzIG5vdCBhdmFpbGFibGUuYCk7cmV0dXJuIGVycm9yRm9udCgpfXdhcm4oYEZvbnQgIiR7ZX0iIGlzIG5vdCBhdmFpbGFibGUgLS0gYXR0ZW1wdGluZyB0byBmYWxsYmFjayB0byBhIGRlZmF1bHQgZm9udC5gKTt0PXN8fFBhcnRpYWxFdmFsdWF0b3IuZmFsbGJhY2tGb250RGljdH1pZih0LmNhY2hlS2V5JiZ0aGlzLmZvbnRDYWNoZS5oYXModC5jYWNoZUtleSkpcmV0dXJuIHRoaXMuZm9udENhY2hlLmdldCh0LmNhY2hlS2V5KTtjb25zdHtwcm9taXNlOm8scmVzb2x2ZTpsfT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTtsZXQgZjt0cnl7Zj10aGlzLnByZUV2YWx1YXRlRm9udCh0KTtmLmNzc0ZvbnRJbmZvPXJ9Y2F0Y2goZSl7d2FybihgbG9hZEZvbnQgLSBwcmVFdmFsdWF0ZUZvbnQgZmFpbGVkOiAiJHtlfSIuYCk7cmV0dXJuIGVycm9yRm9udCgpfWNvbnN0e2Rlc2NyaXB0b3I6YyxoYXNoOmh9PWYsdT1pIGluc3RhbmNlb2YgUmVmO2xldCBtO2lmKGgmJmMgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPWMuZm9udEFsaWFzZXN8fD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGVbaF0pe2NvbnN0IHQ9ZVtoXS5hbGlhc1JlZjtpZih1JiZ0JiZ0aGlzLmZvbnRDYWNoZS5oYXModCkpe3RoaXMuZm9udENhY2hlLnB1dEFsaWFzKGksdCk7cmV0dXJuIHRoaXMuZm9udENhY2hlLmdldChpKX19ZWxzZSBlW2hdPXtmb250SUQ6dGhpcy5pZEZhY3RvcnkuY3JlYXRlRm9udElkKCl9O3UmJihlW2hdLmFsaWFzUmVmPWkpO209ZVtoXS5mb250SUR9ZWxzZSBtPXRoaXMuaWRGYWN0b3J5LmNyZWF0ZUZvbnRJZCgpO2Fzc2VydChtPy5zdGFydHNXaXRoKCJmIiksJ1RoZSAiZm9udElEIiBtdXN0IGJlIChjb3JyZWN0bHkpIGRlZmluZWQuJyk7aWYodSl0aGlzLmZvbnRDYWNoZS5wdXQoaSxvKTtlbHNle3QuY2FjaGVLZXk9YGNhY2hlS2V5XyR7bX1gO3RoaXMuZm9udENhY2hlLnB1dCh0LmNhY2hlS2V5LG8pfXQubG9hZGVkTmFtZT1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV8ke219YDt0aGlzLnRyYW5zbGF0ZUZvbnQoZikudGhlbihhc3luYyBlPT57Y29uc3Qgcz1uZXcgVHJhbnNsYXRlZEZvbnQoe2xvYWRlZE5hbWU6dC5sb2FkZWROYW1lLGZvbnQ6ZSxkaWN0OnR9KTtpZihlLmlzVHlwZTNGb250KXRyeXthd2FpdCBzLmxvYWRUeXBlM0RhdGEodGhpcyxuLGEpfWNhdGNoKGUpe3Rocm93IG5ldyBFcnJvcihgVHlwZTMgZm9udCBsb2FkIGVycm9yOiAke2V9YCl9bChzKX0pLmNhdGNoKGU9Pnt3YXJuKGBsb2FkRm9udCAtIHRyYW5zbGF0ZUZvbnQgZmFpbGVkOiAiJHtlfSIuYCk7bChuZXcgVHJhbnNsYXRlZEZvbnQoe2xvYWRlZE5hbWU6dC5sb2FkZWROYW1lLGZvbnQ6bmV3IEVycm9yRm9udChlPy5tZXNzYWdlKSxkaWN0OnR9KSl9KTtyZXR1cm4gb31idWlsZFBhdGgoZSx0LG4pe2NvbnN0e3BhdGhNaW5NYXg6YSxwYXRoQnVmZmVyOnN9PW47c3dpdGNoKDB8ZSl7Y2FzZSBDZTp7Y29uc3QgZT1uLmN1cnJlbnRQb2ludFg9dFswXSxyPW4uY3VycmVudFBvaW50WT10WzFdLGk9dFsyXSxvPXRbM10sbD1lK2ksZj1yK287MD09PWl8fDA9PT1vP3MucHVzaChLdCxlLHIsR3QsbCxmLFl0KTpzLnB1c2goS3QsZSxyLEd0LGwscixHdCxsLGYsR3QsZSxmLFl0KTtVdGlsLnJlY3RCb3VuZGluZ0JveChlLHIsbCxmLGEpO2JyZWFrfWNhc2UgeWU6e2NvbnN0IGU9bi5jdXJyZW50UG9pbnRYPXRbMF0scj1uLmN1cnJlbnRQb2ludFk9dFsxXTtzLnB1c2goS3QsZSxyKTtVdGlsLnBvaW50Qm91bmRpbmdCb3goZSxyLGEpO2JyZWFrfWNhc2UgcWU6e2NvbnN0IGU9bi5jdXJyZW50UG9pbnRYPXRbMF0scj1uLmN1cnJlbnRQb2ludFk9dFsxXTtzLnB1c2goR3QsZSxyKTtVdGlsLnBvaW50Qm91bmRpbmdCb3goZSxyLGEpO2JyZWFrfWNhc2UgdmU6e2NvbnN0IGU9bi5jdXJyZW50UG9pbnRYLHI9bi5jdXJyZW50UG9pbnRZLFtpLG8sbCxmLGMsaF09dDtuLmN1cnJlbnRQb2ludFg9YztuLmN1cnJlbnRQb2ludFk9aDtzLnB1c2goVnQsaSxvLGwsZixjLGgpO1V0aWwuYmV6aWVyQm91bmRpbmdCb3goZSxyLGksbyxsLGYsYyxoLGEpO2JyZWFrfWNhc2UgU2U6e2NvbnN0IGU9bi5jdXJyZW50UG9pbnRYLHI9bi5jdXJyZW50UG9pbnRZLFtpLG8sbCxmXT10O24uY3VycmVudFBvaW50WD1sO24uY3VycmVudFBvaW50WT1mO3MucHVzaChWdCxlLHIsaSxvLGwsZik7VXRpbC5iZXppZXJCb3VuZGluZ0JveChlLHIsZSxyLGksbyxsLGYsYSk7YnJlYWt9Y2FzZSB4ZTp7Y29uc3QgZT1uLmN1cnJlbnRQb2ludFgscj1uLmN1cnJlbnRQb2ludFksW2ksbyxsLGZdPXQ7bi5jdXJyZW50UG9pbnRYPWw7bi5jdXJyZW50UG9pbnRZPWY7cy5wdXNoKFZ0LGksbyxsLGYsbCxmKTtVdGlsLmJlemllckJvdW5kaW5nQm94KGUscixpLG8sbCxmLGwsZixhKTticmVha31jYXNlIEFlOnMucHVzaChZdCl9fV9nZXRDb2xvclNwYWNlKGUsdCxuKXtyZXR1cm4gQ29sb3JTcGFjZVV0aWxzLnBhcnNlKHtjczplLHhyZWY6dGhpcy54cmVmLHJlc291cmNlczp0LHBkZkZ1bmN0aW9uRmFjdG9yeTp0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnRoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLGxvY2FsQ29sb3JTcGFjZUNhY2hlOm4sYXN5bmNJZk5vdENhY2hlZDohMH0pfWFzeW5jIF9oYW5kbGVDb2xvclNwYWNlKGUpe3RyeXtyZXR1cm4gYXdhaXQgZX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb24pcmV0dXJuIG51bGw7aWYodGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyl7d2FybihgX2hhbmRsZUNvbG9yU3BhY2UgLSBpZ25vcmluZyBDb2xvclNwYWNlOiAiJHtlfSIuYCk7cmV0dXJuIG51bGx9dGhyb3cgZX19cGFyc2VTaGFkaW5nKHtzaGFkaW5nOmUscmVzb3VyY2VzOnQsbG9jYWxDb2xvclNwYWNlQ2FjaGU6bixsb2NhbFNoYWRpbmdQYXR0ZXJuQ2FjaGU6YX0pe2xldCBzLHI9YS5nZXQoZSk7aWYocilyZXR1cm4gcjt0cnl7cz1QYXR0ZXJuLnBhcnNlU2hhZGluZyhlLHRoaXMueHJlZix0LHRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeSx0aGlzLmdsb2JhbENvbG9yU3BhY2VDYWNoZSxuKS5nZXRJUigpfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbilyZXR1cm4gbnVsbDtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXt3YXJuKGBwYXJzZVNoYWRpbmcgLSBpZ25vcmluZyBzaGFkaW5nOiAiJHt0fSIuYCk7YS5zZXQoZSxudWxsKTtyZXR1cm4gbnVsbH10aHJvdyB0fXI9YHBhdHRlcm5fJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWA7dGhpcy5wYXJzaW5nVHlwZTNGb250JiYocj1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV90eXBlM18ke3J9YCk7YS5zZXQoZSxyKTtpZih0aGlzLnBhcnNpbmdUeXBlM0ZvbnQpe2NvbnN0IGU9W10sdD1QYXR0ZXJuSW5mby53cml0ZShzKTtlLnB1c2godCk7dGhpcy5oYW5kbGVyLnNlbmQoImNvbW1vbm9iaiIsW3IsIlBhdHRlcm4iLHRdLGUpfWVsc2UgdGhpcy5oYW5kbGVyLnNlbmQoIm9iaiIsW3IsdGhpcy5wYWdlSW5kZXgsIlBhdHRlcm4iLHNdKTtyZXR1cm4gcn1oYW5kbGVDb2xvck4oZSx0LG4sYSxzLHIsaSxvLGwsZil7Y29uc3QgYz1uLnBvcCgpO2lmKGMgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCBoPXMuZ2V0UmF3KGMubmFtZSksdT1oIGluc3RhbmNlb2YgUmVmJiZsLmdldEJ5UmVmKGgpO2lmKHUpdHJ5e2NvbnN0IHM9YS5iYXNlP2EuYmFzZS5nZXRSZ2JIZXgobiwwKTpudWxsLHI9Z2V0VGlsaW5nUGF0dGVybklSKHUub3BlcmF0b3JMaXN0SVIsdS5kaWN0LHMpO2UuYWRkT3AodCxyKTtyZXR1cm59Y2F0Y2h7fWNvbnN0IG09dGhpcy54cmVmLmZldGNoSWZSZWYoaCk7aWYobSl7Y29uc3Qgcz1tIGluc3RhbmNlb2YgQmFzZVN0cmVhbT9tLmRpY3Q6bSxjPXMuZ2V0KCJQYXR0ZXJuVHlwZSIpO2lmKGM9PT1rcil7Y29uc3Qgbz1hLmJhc2U/YS5iYXNlLmdldFJnYkhleChuLDApOm51bGw7cmV0dXJuIHRoaXMuaGFuZGxlVGlsaW5nVHlwZSh0LG8scixtLHMsZSxpLGwpfWlmKGM9PT15cil7Y29uc3Qgbj1zLmdldCgiU2hhZGluZyIpLGE9dGhpcy5wYXJzZVNoYWRpbmcoe3NoYWRpbmc6bixyZXNvdXJjZXM6cixsb2NhbENvbG9yU3BhY2VDYWNoZTpvLGxvY2FsU2hhZGluZ1BhdHRlcm5DYWNoZTpmfSk7aWYoYSl7Y29uc3Qgbj1sb29rdXBNYXRyaXgocy5nZXRBcnJheSgiTWF0cml4IiksbnVsbCk7ZS5hZGRPcCh0LFsiU2hhZGluZyIsYSxuXSl9cmV0dXJufXRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBQYXR0ZXJuVHlwZTogJHtjfWApfX10aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVua25vd24gUGF0dGVybk5hbWU6ICR7Y31gKX1fcGFyc2VWaXNpYmlsaXR5RXhwcmVzc2lvbihlLHQsbil7aWYoKyt0PjEwKXt3YXJuKCJWaXNpYmlsaXR5IGV4cHJlc3Npb24gaXMgdG9vIGRlZXBseSBuZXN0ZWQiKTtyZXR1cm59Y29uc3QgYT1lLmxlbmd0aCxzPXRoaXMueHJlZi5mZXRjaElmUmVmKGVbMF0pO2lmKCEoYTwyKSYmcyBpbnN0YW5jZW9mIE5hbWUpe3N3aXRjaChzLm5hbWUpe2Nhc2UiQW5kIjpjYXNlIk9yIjpjYXNlIk5vdCI6bi5wdXNoKHMubmFtZSk7YnJlYWs7ZGVmYXVsdDp3YXJuKGBJbnZhbGlkIG9wZXJhdG9yICR7cy5uYW1lfSBpbiB2aXNpYmlsaXR5IGV4cHJlc3Npb25gKTtyZXR1cm59Zm9yKGxldCBzPTE7czxhO3MrKyl7Y29uc3QgYT1lW3NdLHI9dGhpcy54cmVmLmZldGNoSWZSZWYoYSk7aWYoQXJyYXkuaXNBcnJheShyKSl7Y29uc3QgZT1bXTtuLnB1c2goZSk7dGhpcy5fcGFyc2VWaXNpYmlsaXR5RXhwcmVzc2lvbihyLHQsZSl9ZWxzZSBhIGluc3RhbmNlb2YgUmVmJiZuLnB1c2goYS50b1N0cmluZygpKX19ZWxzZSB3YXJuKCJJbnZhbGlkIHZpc2liaWxpdHkgZXhwcmVzc2lvbiIpfWFzeW5jIHBhcnNlTWFya2VkQ29udGVudFByb3BzKGUsdCl7bGV0IG47aWYoZSBpbnN0YW5jZW9mIE5hbWUpe249dC5nZXQoIlByb3BlcnRpZXMiKS5nZXQoZS5uYW1lKX1lbHNle2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiT3B0aW9uYWwgY29udGVudCBwcm9wZXJ0aWVzIG1hbGZvcm1lZC4iKTtuPWV9Y29uc3QgYT1uLmdldCgiVHlwZSIpPy5uYW1lO2lmKCJPQ0ciPT09YSlyZXR1cm57dHlwZTphLGlkOm4ub2JqSWR9O2lmKCJPQ01EIj09PWEpe2NvbnN0IGU9bi5nZXQoIlZFIik7aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3QgdD1bXTt0aGlzLl9wYXJzZVZpc2liaWxpdHlFeHByZXNzaW9uKGUsMCx0KTtpZih0Lmxlbmd0aD4wKXJldHVybnt0eXBlOiJPQ01EIixleHByZXNzaW9uOnR9fWNvbnN0IHQ9bi5nZXQoIk9DR3MiKTtpZihBcnJheS5pc0FycmF5KHQpfHx0IGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1bXTtpZihBcnJheS5pc0FycmF5KHQpKWZvcihjb25zdCBuIG9mIHQpZS5wdXNoKG4udG9TdHJpbmcoKSk7ZWxzZSBlLnB1c2godC5vYmpJZCk7cmV0dXJue3R5cGU6YSxpZHM6ZSxwb2xpY3k6bi5nZXQoIlAiKWluc3RhbmNlb2YgTmFtZT9uLmdldCgiUCIpLm5hbWU6bnVsbCxleHByZXNzaW9uOm51bGx9fWlmKHQgaW5zdGFuY2VvZiBSZWYpcmV0dXJue3R5cGU6YSxpZDp0LnRvU3RyaW5nKCl9fXJldHVybiBudWxsfWFzeW5jIGdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOmUsdGFzazp0LHJlc291cmNlczpuLG9wZXJhdG9yTGlzdDphLGluaXRpYWxTdGF0ZTpzPW51bGwsZmFsbGJhY2tGb250RGljdDpyPW51bGwscHJldlJlZnM6aT1udWxsfSl7aWYoZS5pc0FzeW5jKXtjb25zdCB0PWF3YWl0IGUuYXN5bmNHZXRCeXRlcygpO3QmJihlPW5ldyBTdHJlYW0odCwwLHQubGVuZ3RoLGUuZGljdCkpfWNvbnN0IG89ZS5kaWN0Py5vYmpJZCxsPW5ldyBSZWZTZXQoaSk7aWYobyl7aWYoaT8uaGFzKG8pKXRocm93IG5ldyBFcnJvcihgZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3JpbmcgY2lyY3VsYXIgcmVmZXJlbmNlOiAke299YCk7bC5wdXQobyl9bnx8PURpY3QuZW1wdHk7c3x8PW5ldyBFdmFsU3RhdGU7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCdnZXRPcGVyYXRvckxpc3Q6IG1pc3NpbmcgIm9wZXJhdG9yTGlzdCIgcGFyYW1ldGVyJyk7Y29uc3QgZj10aGlzLGM9dGhpcy54cmVmLGg9bmV3IExvY2FsSW1hZ2VDYWNoZSx1PW5ldyBMb2NhbENvbG9yU3BhY2VDYWNoZSxtPW5ldyBMb2NhbEdTdGF0ZUNhY2hlLHA9bmV3IExvY2FsVGlsaW5nUGF0dGVybkNhY2hlLGQ9bmV3IE1hcCxnPW4uZ2V0KCJYT2JqZWN0Iil8fERpY3QuZW1wdHksYj1uLmdldCgiUGF0dGVybiIpfHxEaWN0LmVtcHR5LHc9bmV3IFN0YXRlTWFuYWdlcihzKSxqPW5ldyBFdmFsdWF0b3JQcmVwcm9jZXNzb3IoZSxjLHcpLGs9bmV3IFRpbWVTbG90TWFuYWdlcjtmdW5jdGlvbiBjbG9zZVBlbmRpbmdSZXN0b3JlT1BTKGUpe2ZvcihsZXQgZT0wLHQ9ai5zYXZlZFN0YXRlc0RlcHRoO2U8dDtlKyspYS5hZGRPcChqZSxbXSl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIHByb21pc2VCb2R5KGUscyl7Y29uc3QgbmV4dD1mdW5jdGlvbih0KXtQcm9taXNlLmFsbChbdCxhLnJlYWR5XSkudGhlbihmdW5jdGlvbigpe3RyeXtwcm9taXNlQm9keShlLHMpfWNhdGNoKGUpe3MoZSl9fSxzKX07dC5lbnN1cmVOb3RUZXJtaW5hdGVkKCk7ay5yZXNldCgpO2NvbnN0IGk9e307bGV0IG8seSxxLHYsUyx4O2Zvcig7IShvPWsuY2hlY2soKSk7KXtpLmFyZ3M9bnVsbDtpZighai5yZWFkKGkpKWJyZWFrO2xldCBlPWkuYXJncyxzPWkuZm47c3dpdGNoKDB8cyl7Y2FzZSBrdDp4PWVbMF1pbnN0YW5jZW9mIE5hbWU7Uz1lWzBdLm5hbWU7aWYoeCl7Y29uc3QgdD1oLmdldEJ5TmFtZShTKTtpZih0KXthZGRDYWNoZWRJbWFnZU9wcyhhLHQpO2U9bnVsbDtjb250aW51ZX19bmV4dChuZXcgUHJvbWlzZShmdW5jdGlvbihlLHMpe2lmKCF4KXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBtdXN0IGJlIHJlZmVycmVkIHRvIGJ5IG5hbWUuIik7bGV0IHI9Zy5nZXRSYXcoUyk7aWYociBpbnN0YW5jZW9mIFJlZil7Y29uc3QgdD1oLmdldEJ5UmVmKHIpfHxmLl9yZWdpb25hbEltYWdlQ2FjaGUuZ2V0QnlSZWYocil8fGYuZ2xvYmFsSW1hZ2VDYWNoZS5nZXREYXRhKHIsZi5wYWdlSW5kZXgpO2lmKHQpe2FkZENhY2hlZEltYWdlT3BzKGEsdCk7ZSgpO3JldHVybn1yPWMuZmV0Y2gocil9aWYoIShyIGluc3RhbmNlb2YgQmFzZVN0cmVhbSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJYT2JqZWN0IHNob3VsZCBiZSBhIHN0cmVhbSIpO2NvbnN0IGk9ci5kaWN0LmdldCgiU3VidHlwZSIpO2lmKCEoaSBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBzaG91bGQgaGF2ZSBhIE5hbWUgc3VidHlwZSIpO2lmKCJGb3JtIiE9PWkubmFtZSlpZigiSW1hZ2UiIT09aS5uYW1lKXtpZigiUFMiIT09aS5uYW1lKXRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5oYW5kbGVkIFhPYmplY3Qgc3VidHlwZSAke2kubmFtZX1gKTtpbmZvKCJJZ25vcmVkIFhPYmplY3Qgc3VidHlwZSBQUyIpO2UoKX1lbHNlIGYuYnVpbGRQYWludEltYWdlWE9iamVjdCh7cmVzb3VyY2VzOm4saW1hZ2U6cixvcGVyYXRvckxpc3Q6YSxjYWNoZUtleTpTLGxvY2FsSW1hZ2VDYWNoZTpoLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnV9KS50aGVuKGUscyk7ZWxzZXt3LnNhdmUoKTtmLmJ1aWxkRm9ybVhPYmplY3QobixyLG51bGwsYSx0LHcuc3RhdGUuY2xvbmUoe25ld1BhdGg6ITB9KSx1LGwpLnRoZW4oZnVuY3Rpb24oKXt3LnJlc3RvcmUoKTtlKCl9LHMpfX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIWYub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHtlfSIuYCl9fSkpO3JldHVybjtjYXNlIFdlOmNvbnN0IGk9ZVsxXTtuZXh0KGYuaGFuZGxlU2V0Rm9udChuLGUsbnVsbCxhLHQsdy5zdGF0ZSxyKS50aGVuKGZ1bmN0aW9uKGUpe2EuYWRkRGVwZW5kZW5jeShlKTthLmFkZE9wKFdlLFtlLGldKX0pKTtyZXR1cm47Y2FzZSBqdDpjb25zdCBvPWVbMF0uY2FjaGVLZXk7aWYobyl7Y29uc3QgdD1oLmdldEJ5TmFtZShvKTtpZih0KXthZGRDYWNoZWRJbWFnZU9wcyhhLHQpO2U9bnVsbDtjb250aW51ZX19bmV4dChmLmJ1aWxkUGFpbnRJbWFnZVhPYmplY3Qoe3Jlc291cmNlczpuLGltYWdlOmVbMF0saXNJbmxpbmU6ITAsb3BlcmF0b3JMaXN0OmEsY2FjaGVLZXk6byxsb2NhbEltYWdlQ2FjaGU6aCxsb2NhbENvbG9yU3BhY2VDYWNoZTp1fSkpO3JldHVybjtjYXNlIFFlOmlmKCF3LnN0YXRlLmZvbnQpe2YuZW5zdXJlU3RhdGVGb250KHcuc3RhdGUpO2NvbnRpbnVlfWVbMF09Zi5oYW5kbGVUZXh0KGVbMF0sdy5zdGF0ZSk7YnJlYWs7Y2FzZSBaZTppZighdy5zdGF0ZS5mb250KXtmLmVuc3VyZVN0YXRlRm9udCh3LnN0YXRlKTtjb250aW51ZX1jb25zdCBqPVtdLGs9dy5zdGF0ZTtmb3IoY29uc3QgdCBvZiBlWzBdKSJzdHJpbmciPT10eXBlb2YgdD9qLnB1c2goLi4uZi5oYW5kbGVUZXh0KHQsaykpOiJudW1iZXIiPT10eXBlb2YgdCYmai5wdXNoKHQpO2VbMF09ajtzPVFlO2JyZWFrO2Nhc2UgZXQ6aWYoIXcuc3RhdGUuZm9udCl7Zi5lbnN1cmVTdGF0ZUZvbnQody5zdGF0ZSk7Y29udGludWV9YS5hZGRPcChKZSk7ZVswXT1mLmhhbmRsZVRleHQoZVswXSx3LnN0YXRlKTtzPVFlO2JyZWFrO2Nhc2UgdHQ6aWYoIXcuc3RhdGUuZm9udCl7Zi5lbnN1cmVTdGF0ZUZvbnQody5zdGF0ZSk7Y29udGludWV9YS5hZGRPcChKZSk7YS5hZGRPcChVZSxbZS5zaGlmdCgpXSk7YS5hZGRPcChMZSxbZS5zaGlmdCgpXSk7ZVswXT1mLmhhbmRsZVRleHQoZVswXSx3LnN0YXRlKTtzPVFlO2JyZWFrO2Nhc2UgS2U6dy5zdGF0ZS50ZXh0UmVuZGVyaW5nTW9kZT1lWzBdO2JyZWFrO2Nhc2UgcnQ6e2NvbnN0IHQ9Zi5fZ2V0Q29sb3JTcGFjZShlWzBdLG4sdSk7aWYodCBpbnN0YW5jZW9mIENvbG9yU3BhY2Upe3cuc3RhdGUuZmlsbENvbG9yU3BhY2U9dDtjb250aW51ZX1uZXh0KGYuX2hhbmRsZUNvbG9yU3BhY2UodCkudGhlbihlPT57dy5zdGF0ZS5maWxsQ29sb3JTcGFjZT1lfHxDb2xvclNwYWNlVXRpbHMuZ3JheX0pKTtyZXR1cm59Y2FzZSBzdDp7Y29uc3QgdD1mLl9nZXRDb2xvclNwYWNlKGVbMF0sbix1KTtpZih0IGluc3RhbmNlb2YgQ29sb3JTcGFjZSl7dy5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPXQ7Y29udGludWV9bmV4dChmLl9oYW5kbGVDb2xvclNwYWNlKHQpLnRoZW4oZT0+e3cuc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1lfHxDb2xvclNwYWNlVXRpbHMuZ3JheX0pKTtyZXR1cm59Y2FzZSBsdDp2PXcuc3RhdGUuZmlsbENvbG9yU3BhY2U7ZT1bdi5nZXRSZ2JIZXgoZSwwKV07cz1tdDticmVhaztjYXNlIGl0OnY9dy5zdGF0ZS5zdHJva2VDb2xvclNwYWNlO2U9W3YuZ2V0UmdiSGV4KGUsMCldO3M9dXQ7YnJlYWs7Y2FzZSBodDp3LnN0YXRlLmZpbGxDb2xvclNwYWNlPUNvbG9yU3BhY2VVdGlscy5ncmF5O2U9W0NvbG9yU3BhY2VVdGlscy5ncmF5LmdldFJnYkhleChlLDApXTtzPW10O2JyZWFrO2Nhc2UgY3Q6dy5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPUNvbG9yU3BhY2VVdGlscy5ncmF5O2U9W0NvbG9yU3BhY2VVdGlscy5ncmF5LmdldFJnYkhleChlLDApXTtzPXV0O2JyZWFrO2Nhc2UgZHQ6dy5zdGF0ZS5maWxsQ29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMuY215aztlPVtDb2xvclNwYWNlVXRpbHMuY215ay5nZXRSZ2JIZXgoZSwwKV07cz1tdDticmVhaztjYXNlIHB0Oncuc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMuY215aztlPVtDb2xvclNwYWNlVXRpbHMuY215ay5nZXRSZ2JIZXgoZSwwKV07cz11dDticmVhaztjYXNlIG10Oncuc3RhdGUuZmlsbENvbG9yU3BhY2U9Q29sb3JTcGFjZVV0aWxzLnJnYjtlPVtDb2xvclNwYWNlVXRpbHMucmdiLmdldFJnYkhleChlLDApXTticmVhaztjYXNlIHV0Oncuc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMucmdiO2U9W0NvbG9yU3BhY2VVdGlscy5yZ2IuZ2V0UmdiSGV4KGUsMCldO2JyZWFrO2Nhc2UgZnQ6dj13LnN0YXRlLnBhdHRlcm5GaWxsQ29sb3JTcGFjZTtpZighdil7aWYoaXNOdW1iZXJBcnJheShlLG51bGwpKXtlPVtDb2xvclNwYWNlVXRpbHMuZ3JheS5nZXRSZ2JIZXgoZSwwKV07cz1tdDticmVha31lPVtdO3M9WHQ7YnJlYWt9aWYoIlBhdHRlcm4iPT09di5uYW1lKXtuZXh0KGYuaGFuZGxlQ29sb3JOKGEsZnQsZSx2LGIsbix0LHUscCxkKSk7cmV0dXJufWU9W3YuZ2V0UmdiSGV4KGUsMCldO3M9bXQ7YnJlYWs7Y2FzZSBvdDp2PXcuc3RhdGUucGF0dGVyblN0cm9rZUNvbG9yU3BhY2U7aWYoIXYpe2lmKGlzTnVtYmVyQXJyYXkoZSxudWxsKSl7ZT1bQ29sb3JTcGFjZVV0aWxzLmdyYXkuZ2V0UmdiSGV4KGUsMCldO3M9dXQ7YnJlYWt9ZT1bXTtzPV90O2JyZWFrfWlmKCJQYXR0ZXJuIj09PXYubmFtZSl7bmV4dChmLmhhbmRsZUNvbG9yTihhLG90LGUsdixiLG4sdCx1LHAsZCkpO3JldHVybn1lPVt2LmdldFJnYkhleChlLDApXTtzPXV0O2JyZWFrO2Nhc2UgZ3Q6bGV0IEM7dHJ5e2NvbnN0IHQ9bi5nZXQoIlNoYWRpbmciKTtpZighdCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIHNoYWRpbmcgcmVzb3VyY2UgZm91bmQiKTtDPXQuZ2V0KGVbMF0ubmFtZSk7aWYoIUMpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJObyBzaGFkaW5nIG9iamVjdCBmb3VuZCIpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbiljb250aW51ZTtpZihmLm9wdGlvbnMuaWdub3JlRXJyb3JzKXt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBTaGFkaW5nOiAiJHtlfSIuYCk7Y29udGludWV9dGhyb3cgZX1jb25zdCBGPWYucGFyc2VTaGFkaW5nKHtzaGFkaW5nOkMscmVzb3VyY2VzOm4sbG9jYWxDb2xvclNwYWNlQ2FjaGU6dSxsb2NhbFNoYWRpbmdQYXR0ZXJuQ2FjaGU6ZH0pO2lmKCFGKWNvbnRpbnVlO2U9W0ZdO3M9Z3Q7YnJlYWs7Y2FzZSBiZTp4PWVbMF1pbnN0YW5jZW9mIE5hbWU7Uz1lWzBdLm5hbWU7aWYoeCl7Y29uc3QgdD1tLmdldEJ5TmFtZShTKTtpZih0KXt0Lmxlbmd0aD4wJiZhLmFkZE9wKGJlLFt0XSk7ZT1udWxsO2NvbnRpbnVlfX1uZXh0KG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUscyl7aWYoIXgpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJHU3RhdGUgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2NvbnN0IHI9bi5nZXQoIkV4dEdTdGF0ZSIpO2lmKCEociBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiRXh0R1N0YXRlIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkuIik7Y29uc3QgaT1yLmdldChTKTtpZighKGkgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkdTdGF0ZSBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5LiIpO2Yuc2V0R1N0YXRlKHtyZXNvdXJjZXM6bixnU3RhdGU6aSxvcGVyYXRvckxpc3Q6YSxjYWNoZUtleTpTLHRhc2s6dCxzdGF0ZU1hbmFnZXI6dyxsb2NhbEdTdGF0ZUNhY2hlOm0sbG9jYWxDb2xvclNwYWNlQ2FjaGU6dSxzZWVuUmVmczpsfSkudGhlbihlLHMpfSkuY2F0Y2goZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb24pKXtpZighZi5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBlO3dhcm4oYGdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIEV4dEdTdGF0ZTogIiR7ZX0iLmApfX0pKTtyZXR1cm47Y2FzZSBjZTp7Y29uc3RbdF09ZTtpZigibnVtYmVyIiE9dHlwZW9mIHQpe3dhcm4oYEludmFsaWQgc2V0TGluZVdpZHRoOiAke3R9YCk7Y29udGludWV9ZVswXT1NYXRoLmFicyh0KTticmVha31jYXNlIHBlOntjb25zdCB0PWVbMV07aWYoIm51bWJlciIhPXR5cGVvZiB0KXt3YXJuKGBJbnZhbGlkIHNldERhc2g6ICR7dH1gKTtjb250aW51ZX1jb25zdCBuPWVbMF07aWYoIUFycmF5LmlzQXJyYXkobikpe3dhcm4oYEludmFsaWQgc2V0RGFzaDogJHtufWApO2NvbnRpbnVlfW4uc29tZShlPT4ibnVtYmVyIiE9dHlwZW9mIGUpJiYoZVswXT1uLmZpbHRlcihlPT4ibnVtYmVyIj09dHlwZW9mIGUpKTticmVha31jYXNlIHllOmNhc2UgcWU6Y2FzZSB2ZTpjYXNlIFNlOmNhc2UgeGU6Y2FzZSBBZTpjYXNlIENlOmYuYnVpbGRQYXRoKHMsZSx3LnN0YXRlKTtjb250aW51ZTtjYXNlIEllOmNhc2UgRmU6Y2FzZSBUZTpjYXNlIEhlOmNhc2UgT2U6Y2FzZSBCZTpjYXNlIFJlOmNhc2UgRGU6Y2FzZSBNZTp7Y29uc3R7c3RhdGU6e3BhdGhCdWZmZXI6ZSxwYXRoTWluTWF4OnR9fT13O3MhPT1GZSYmcyE9PVJlJiZzIT09RGV8fGUucHVzaChZdCk7aWYoMD09PWUubGVuZ3RoKWEuYWRkT3AoVXQsW3MsW251bGxdLG51bGxdKTtlbHNle2EuYWRkT3AoVXQsW3MsW25ldyBGbG9hdDMyQXJyYXkoZSldLHQuc2xpY2UoKV0pO2UubGVuZ3RoPTA7dC5zZXQoWzEvMCwxLzAsLTEvMCwtMS8wXSwwKX1jb250aW51ZX1jYXNlIFllOmEuYWRkT3AocyxbbmV3IEZsb2F0MzJBcnJheShlKV0pO2NvbnRpbnVlO2Nhc2UgeXQ6Y2FzZSBxdDpjYXNlIEF0OmNhc2UgQ3Q6Y29udGludWU7Y2FzZSBTdDppZighKGVbMF1pbnN0YW5jZW9mIE5hbWUpKXt3YXJuKGBFeHBlY3RlZCBuYW1lIGZvciBiZWdpbk1hcmtlZENvbnRlbnRQcm9wcyBhcmcwPSR7ZVswXX1gKTthLmFkZE9wKFN0LFsiT0MiLG51bGxdKTtjb250aW51ZX1pZigiT0MiPT09ZVswXS5uYW1lKXtuZXh0KGYucGFyc2VNYXJrZWRDb250ZW50UHJvcHMoZVsxXSxuKS50aGVuKGU9PnthLmFkZE9wKFN0LFsiT0MiLGVdKX0pLmNhdGNoKGU9PntpZighKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbikpe2lmKCFmLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3JpbmcgYmVnaW5NYXJrZWRDb250ZW50UHJvcHM6ICIke2V9Ii5gKTthLmFkZE9wKFN0LFsiT0MiLG51bGxdKX19KSk7cmV0dXJufWU9W2VbMF0ubmFtZSxlWzFdaW5zdGFuY2VvZiBEaWN0P2VbMV0uZ2V0KCJNQ0lEIik6bnVsbF07YnJlYWs7ZGVmYXVsdDppZihudWxsIT09ZSl7Zm9yKHk9MCxxPWUubGVuZ3RoO3k8cSYmIShlW3ldaW5zdGFuY2VvZiBEaWN0KTt5KyspO2lmKHk8cSl7d2FybigiZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3Jpbmcgb3BlcmF0b3I6ICIrcyk7Y29udGludWV9fX1hLmFkZE9wKHMsZSl9aWYobyluZXh0KHFyKTtlbHNle2Nsb3NlUGVuZGluZ1Jlc3RvcmVPUFMoKTtlKCl9fSkuY2F0Y2goZT0+e2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBlcnJvcnMgZHVyaW5nICIke3QubmFtZX0iIHRhc2s6ICIke2V9Ii5gKTtjbG9zZVBlbmRpbmdSZXN0b3JlT1BTKCl9fSl9YXN5bmMgZ2V0VGV4dENvbnRlbnQoe3N0cmVhbTplLHRhc2s6bixyZXNvdXJjZXM6YSxzdGF0ZU1hbmFnZXI6cz1udWxsLGluY2x1ZGVNYXJrZWRDb250ZW50OnI9ITEsc2luazppLHNlZW5TdHlsZXM6bz1uZXcgU2V0LHZpZXdCb3g6bCxsYW5nOmY9bnVsbCxtYXJrZWRDb250ZW50RGF0YTpjPW51bGwsZGlzYWJsZU5vcm1hbGl6YXRpb246aD0hMSxrZWVwV2hpdGVTcGFjZTp1PSExLHByZXZSZWZzOm09bnVsbCxpbnRlcnNlY3RvcjpwPW51bGx9KXtpZihlLmlzQXN5bmMpe2NvbnN0IHQ9YXdhaXQgZS5hc3luY0dldEJ5dGVzKCk7dCYmKGU9bmV3IFN0cmVhbSh0LDAsdC5sZW5ndGgsZS5kaWN0KSl9Y29uc3QgZD1lLmRpY3Q/Lm9iaklkLGc9bmV3IFJlZlNldChtKTtpZihkKXtpZihtPy5oYXMoZCkpdGhyb3cgbmV3IEVycm9yKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIGNpcmN1bGFyIHJlZmVyZW5jZTogJHtkfWApO2cucHV0KGQpfWF8fD1EaWN0LmVtcHR5O3N8fD1uZXcgU3RhdGVNYW5hZ2VyKG5ldyBUZXh0U3RhdGUpO3ImJihjfHw9e2xldmVsOjB9KTtjb25zdCBiPXtpdGVtczpbXSxzdHlsZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxsYW5nOmZ9LHc9e2luaXRpYWxpemVkOiExLHN0cjpbXSx0b3RhbFdpZHRoOjAsdG90YWxIZWlnaHQ6MCx3aWR0aDowLGhlaWdodDowLHZlcnRpY2FsOiExLHByZXZUcmFuc2Zvcm06bnVsbCx0ZXh0QWR2YW5jZVNjYWxlOjAsc3BhY2VJbkZsb3dNaW46MCxzcGFjZUluRmxvd01heDowLHRyYWNraW5nU3BhY2VNaW46MS8wLG5lZ2F0aXZlU3BhY2VNYXg6LTEvMCxub3RBU3BhY2U6LTEvMCx0cmFuc2Zvcm06bnVsbCxmb250TmFtZTpudWxsLGhhc0VPTDohMX0saj1bIiAiLCIgIl07bGV0IGs9MDtmdW5jdGlvbiBzYXZlTGFzdENoYXIoZSl7Y29uc3QgdD0oaysxKSUyLG49IiAiIT09altrXSYmIiAiPT09alt0XTtqW2tdPWU7az10O3JldHVybiF1JiZufWZ1bmN0aW9uIHNob3VsZEFkZFdoaXRlcHNhY2UoKXtyZXR1cm4hdSYmIiAiIT09altrXSYmIiAiPT09alsoaysxKSUyXX1mdW5jdGlvbiByZXNldExhc3RDaGFycygpe2pbMF09alsxXT0iICI7az0wfWNvbnN0IHk9dGhpcyxxPXRoaXMueHJlZix2PVtdO2xldCBTPW51bGw7Y29uc3QgeD1uZXcgTG9jYWxJbWFnZUNhY2hlLEM9bmV3IExvY2FsR1N0YXRlQ2FjaGUsRj1uZXcgRXZhbHVhdG9yUHJlcHJvY2Vzc29yKGUscSxzKTtsZXQgVCxIO2Z1bmN0aW9uIHB1c2hXaGl0ZXNwYWNlKHt3aWR0aDplPTAsaGVpZ2h0OnQ9MCx0cmFuc2Zvcm06bj13LnByZXZUcmFuc2Zvcm0sZm9udE5hbWU6YT13LmZvbnROYW1lfSl7cD8uYWRkRXh0cmFDaGFyKCIgIik7Yi5pdGVtcy5wdXNoKHtzdHI6IiAiLGRpcjoibHRyIix3aWR0aDplLGhlaWdodDp0LHRyYW5zZm9ybTpuLGZvbnROYW1lOmEsaGFzRU9MOiExfSl9ZnVuY3Rpb24gZ2V0Q3VycmVudFRleHRUcmFuc2Zvcm0oKXtjb25zdCBlPVQuZm9udCxuPVtULmZvbnRTaXplKlQudGV4dEhTY2FsZSwwLDAsVC5mb250U2l6ZSwwLFQudGV4dFJpc2VdO2lmKGUuaXNUeXBlM0ZvbnQmJihULmZvbnRTaXplPD0xfHxlLmlzQ2hhckJCb3gpJiYhaXNBcnJheUVxdWFsKFQuZm9udE1hdHJpeCx0KSl7Y29uc3QgdD1lLmJib3hbM10tZS5iYm94WzFdO3Q+MCYmKG5bM10qPXQqVC5mb250TWF0cml4WzNdKX1yZXR1cm4gVXRpbC50cmFuc2Zvcm0oVC5jdG0sVXRpbC50cmFuc2Zvcm0oVC50ZXh0TWF0cml4LG4pKX1mdW5jdGlvbiBlbnN1cmVUZXh0Q29udGVudEl0ZW0oKXtpZih3LmluaXRpYWxpemVkKXJldHVybiB3O2NvbnN0e2ZvbnQ6ZSxsb2FkZWROYW1lOnR9PVQ7aWYoIW8uaGFzKHQpKXtvLmFkZCh0KTtiLnN0eWxlc1t0XT17Zm9udEZhbWlseTplLmZhbGxiYWNrTmFtZSxhc2NlbnQ6ZS5hc2NlbnQsZGVzY2VudDplLmRlc2NlbnQsdmVydGljYWw6ZS52ZXJ0aWNhbH07aWYoeS5vcHRpb25zLmZvbnRFeHRyYVByb3BlcnRpZXMmJmUuc3lzdGVtRm9udEluZm8pe2NvbnN0IG49Yi5zdHlsZXNbdF07bi5mb250U3Vic3RpdHV0aW9uPWUuc3lzdGVtRm9udEluZm8uY3NzO24uZm9udFN1YnN0aXR1dGlvbkxvYWRlZE5hbWU9ZS5zeXN0ZW1Gb250SW5mby5sb2FkZWROYW1lfX13LmZvbnROYW1lPXQ7Y29uc3Qgbj13LnRyYW5zZm9ybT1nZXRDdXJyZW50VGV4dFRyYW5zZm9ybSgpO2lmKGUudmVydGljYWwpe3cud2lkdGg9dy50b3RhbFdpZHRoPU1hdGguaHlwb3QoblswXSxuWzFdKTt3LmhlaWdodD13LnRvdGFsSGVpZ2h0PTA7dy52ZXJ0aWNhbD0hMH1lbHNle3cud2lkdGg9dy50b3RhbFdpZHRoPTA7dy5oZWlnaHQ9dy50b3RhbEhlaWdodD1NYXRoLmh5cG90KG5bMl0sblszXSk7dy52ZXJ0aWNhbD0hMX1jb25zdCBhPU1hdGguaHlwb3QoVC50ZXh0TGluZU1hdHJpeFswXSxULnRleHRMaW5lTWF0cml4WzFdKSxzPU1hdGguaHlwb3QoVC5jdG1bMF0sVC5jdG1bMV0pO3cudGV4dEFkdmFuY2VTY2FsZT1zKmE7Y29uc3R7Zm9udFNpemU6cn09VDt3LnRyYWNraW5nU3BhY2VNaW49LjEwMipyO3cubm90QVNwYWNlPS4wMypyO3cubmVnYXRpdmVTcGFjZU1heD0tLjIqcjt3LnNwYWNlSW5GbG93TWluPS4xMDIqcjt3LnNwYWNlSW5GbG93TWF4PS42KnI7dy5oYXNFT0w9ITE7dy5pbml0aWFsaXplZD0hMDtyZXR1cm4gd31mdW5jdGlvbiB1cGRhdGVBZHZhbmNlU2NhbGUoKXtpZighdy5pbml0aWFsaXplZClyZXR1cm47Y29uc3QgZT1NYXRoLmh5cG90KFQudGV4dExpbmVNYXRyaXhbMF0sVC50ZXh0TGluZU1hdHJpeFsxXSksdD1NYXRoLmh5cG90KFQuY3RtWzBdLFQuY3RtWzFdKSplO2lmKHQhPT13LnRleHRBZHZhbmNlU2NhbGUpe2lmKHcudmVydGljYWwpe3cudG90YWxIZWlnaHQrPXcuaGVpZ2h0KncudGV4dEFkdmFuY2VTY2FsZTt3LmhlaWdodD0wfWVsc2V7dy50b3RhbFdpZHRoKz13LndpZHRoKncudGV4dEFkdmFuY2VTY2FsZTt3LndpZHRoPTB9dy50ZXh0QWR2YW5jZVNjYWxlPXR9fWZ1bmN0aW9uIHJ1bkJpZGlUcmFuc2Zvcm0oZSl7bGV0IHQ9ZS5zdHIuam9pbigiIik7aHx8KHQ9ZnVuY3Rpb24gbm9ybWFsaXplVW5pY29kZShlKXtpZighYW4pe2FuPS8oW1x1MDBhMFx1MDBiNVx1MDM3ZVx1MGViM1x1MjAwMC1cdTIwMGFcdTIwMmZcdTIxMjZcdWZiMDAtXHVmYjA0XHVmYjA2XHVmYjIwLVx1ZmIzNlx1ZmIzOC1cdWZiM2NcdWZiM2VcdWZiNDAtXHVmYjQxXHVmYjQzLVx1ZmI0NFx1ZmI0Ni1cdWZiYTFcdWZiYTQtXHVmYmE5XHVmYmFlLVx1ZmJiMVx1ZmJkMy1cdWZiZGNcdWZiZGUtXHVmYmU3XHVmYmVhLVx1ZmJmOFx1ZmJmYy1cdWZiZmRcdWZjMDAtXHVmYzVkXHVmYzY0LVx1ZmNmMVx1ZmNmNS1cdWZkM2RcdWZkODhcdWZkZjRcdWZkZmEtXHVmZGZiXHVmZTcxXHVmZTc3XHVmZTc5XHVmZTdiXHVmZTdkXSspfChcdWZiMDUrKS9ndTtzbj1uZXcgTWFwKFtbIu+shSIsIsW/dCJdXSl9cmV0dXJuIGUucmVwbGFjZUFsbChhbiwoZSx0LG4pPT50P3Qubm9ybWFsaXplKCJORktDIik6c24uZ2V0KG4pKX0odCkpO2NvbnN0IG49YmlkaSh0LC0xLGUudmVydGljYWwpO3JldHVybntzdHI6bi5zdHIsZGlyOm4uZGlyLHdpZHRoOk1hdGguYWJzKGUudG90YWxXaWR0aCksaGVpZ2h0Ok1hdGguYWJzKGUudG90YWxIZWlnaHQpLHRyYW5zZm9ybTplLnRyYW5zZm9ybSxmb250TmFtZTplLmZvbnROYW1lLGhhc0VPTDplLmhhc0VPTH19YXN5bmMgZnVuY3Rpb24gaGFuZGxlU2V0Rm9udChlLHMpe2NvbnN0IHI9YXdhaXQgeS5sb2FkRm9udChlLHMsYSxuKTtULmxvYWRlZE5hbWU9ci5sb2FkZWROYW1lO1QuZm9udD1yLmZvbnQ7VC5mb250TWF0cml4PXIuZm9udC5mb250TWF0cml4fHx0fWZ1bmN0aW9uIGFwcGx5SW52ZXJzZVJvdGF0aW9uKGUsdCxuKXtjb25zdCBhPU1hdGguaHlwb3QoblswXSxuWzFdKTtyZXR1cm5bKG5bMF0qZStuWzFdKnQpL2EsKG5bMl0qZStuWzNdKnQpL2FdfWZ1bmN0aW9uIGNvbXBhcmVXaXRoTGFzdFBvc2l0aW9uKGUpe2NvbnN0IHQ9Z2V0Q3VycmVudFRleHRUcmFuc2Zvcm0oKTtsZXQgbj10WzRdLGE9dFs1XTtpZihULmZvbnQ/LnZlcnRpY2FsKXtpZihuPGxbMF18fG4+bFsyXXx8YStlPGxbMV18fGE+bFszXSlyZXR1cm4hMX1lbHNlIGlmKG4rZTxsWzBdfHxuPmxbMl18fGE8bFsxXXx8YT5sWzNdKXJldHVybiExO2lmKCFULmZvbnR8fCF3LnByZXZUcmFuc2Zvcm0pcmV0dXJuITA7bGV0IHM9dy5wcmV2VHJhbnNmb3JtWzRdLHI9dy5wcmV2VHJhbnNmb3JtWzVdO2lmKHM9PT1uJiZyPT09YSlyZXR1cm4hMDtsZXQgaT0tMTt0WzBdJiYwPT09dFsxXSYmMD09PXRbMl0/aT10WzBdPjA/MDoxODA6dFsxXSYmMD09PXRbMF0mJjA9PT10WzNdJiYoaT10WzFdPjA/OTA6MjcwKTtzd2l0Y2goaSl7Y2FzZSAwOmJyZWFrO2Nhc2UgOTA6W24sYV09W2Esbl07W3Mscl09W3Isc107YnJlYWs7Y2FzZSAxODA6W24sYSxzLHJdPVstbiwtYSwtcywtcl07YnJlYWs7Y2FzZSAyNzA6W24sYV09Wy1hLC1uXTtbcyxyXT1bLXIsLXNdO2JyZWFrO2RlZmF1bHQ6W24sYV09YXBwbHlJbnZlcnNlUm90YXRpb24obixhLHQpO1tzLHJdPWFwcGx5SW52ZXJzZVJvdGF0aW9uKHMscix3LnByZXZUcmFuc2Zvcm0pfWlmKFQuZm9udC52ZXJ0aWNhbCl7Y29uc3QgZT0oci1hKS93LnRleHRBZHZhbmNlU2NhbGUsdD1uLXMsaT1NYXRoLnNpZ24ody5oZWlnaHR8fHcudG90YWxIZWlnaHQpO2lmKGU8aSp3Lm5lZ2F0aXZlU3BhY2VNYXgpe2lmKE1hdGguYWJzKHQpPi41Kncud2lkdGgpe2FwcGVuZEVPTCgpO3JldHVybiEwfXJlc2V0TGFzdENoYXJzKCk7Zmx1c2hUZXh0Q29udGVudEl0ZW0oKTtyZXR1cm4hMH1pZihNYXRoLmFicyh0KT53LndpZHRoKXthcHBlbmRFT0woKTtyZXR1cm4hMH1lPD1pKncubm90QVNwYWNlJiZyZXNldExhc3RDaGFycygpO2lmKGU8PWkqdy50cmFja2luZ1NwYWNlTWluKWlmKHNob3VsZEFkZFdoaXRlcHNhY2UoKSl7cmVzZXRMYXN0Q2hhcnMoKTtmbHVzaFRleHRDb250ZW50SXRlbSgpO3B1c2hXaGl0ZXNwYWNlKHtoZWlnaHQ6TWF0aC5hYnMoZSl9KX1lbHNlIHcuaGVpZ2h0Kz1lO2Vsc2UgaWYoIWFkZEZha2VTcGFjZXMoZSx3LnByZXZUcmFuc2Zvcm0saSkpaWYoMD09PXcuc3RyLmxlbmd0aCl7cmVzZXRMYXN0Q2hhcnMoKTtwdXNoV2hpdGVzcGFjZSh7aGVpZ2h0Ok1hdGguYWJzKGUpfSl9ZWxzZSB3LmhlaWdodCs9ZTtNYXRoLmFicyh0KT4uMjUqdy53aWR0aCYmZmx1c2hUZXh0Q29udGVudEl0ZW0oKTtyZXR1cm4hMH1jb25zdCBvPShuLXMpL3cudGV4dEFkdmFuY2VTY2FsZSxmPWEtcixjPU1hdGguc2lnbih3LndpZHRofHx3LnRvdGFsV2lkdGgpO2lmKG88Yyp3Lm5lZ2F0aXZlU3BhY2VNYXgpe2lmKE1hdGguYWJzKGYpPi41KncuaGVpZ2h0KXthcHBlbmRFT0woKTtyZXR1cm4hMH1yZXNldExhc3RDaGFycygpO2ZsdXNoVGV4dENvbnRlbnRJdGVtKCk7cmV0dXJuITB9aWYoTWF0aC5hYnMoZik+dy5oZWlnaHQpe2FwcGVuZEVPTCgpO3JldHVybiEwfW88PWMqdy5ub3RBU3BhY2UmJnJlc2V0TGFzdENoYXJzKCk7aWYobzw9Yyp3LnRyYWNraW5nU3BhY2VNaW4paWYoc2hvdWxkQWRkV2hpdGVwc2FjZSgpKXtyZXNldExhc3RDaGFycygpO2ZsdXNoVGV4dENvbnRlbnRJdGVtKCk7cHVzaFdoaXRlc3BhY2Uoe3dpZHRoOk1hdGguYWJzKG8pfSl9ZWxzZSB3LndpZHRoKz1vO2Vsc2UgaWYoIWFkZEZha2VTcGFjZXMobyx3LnByZXZUcmFuc2Zvcm0sYykpaWYoMD09PXcuc3RyLmxlbmd0aCl7cmVzZXRMYXN0Q2hhcnMoKTtwdXNoV2hpdGVzcGFjZSh7d2lkdGg6TWF0aC5hYnMobyl9KX1lbHNlIHcud2lkdGgrPW87TWF0aC5hYnMoZik+LjI1KncuaGVpZ2h0JiZmbHVzaFRleHRDb250ZW50SXRlbSgpO3JldHVybiEwfWZ1bmN0aW9uIGJ1aWxkVGV4dENvbnRlbnRJdGVtKHtjaGFyczplLGV4dHJhU3BhY2luZzp0fSl7aWYoSCE9PVQmJihILmZvbnROYW1lIT09VC5mb250TmFtZXx8SC5mb250U2l6ZSE9PVQuZm9udFNpemUpKXtmbHVzaFRleHRDb250ZW50SXRlbSgpO0g9VC5jbG9uZSgpfWNvbnN0IG49VC5mb250O2lmKCFlKXtjb25zdCBlPVQuY2hhclNwYWNpbmcrdDtlJiYobi52ZXJ0aWNhbD9ULnRyYW5zbGF0ZVRleHRNYXRyaXgoMCwtZSk6VC50cmFuc2xhdGVUZXh0TWF0cml4KGUqVC50ZXh0SFNjYWxlLDApKTt1JiZjb21wYXJlV2l0aExhc3RQb3NpdGlvbigwKTtyZXR1cm59Y29uc3QgYT1uLmNoYXJzVG9HbHlwaHMoZSkscz1ULmZvbnRNYXRyaXhbMF0qVC5mb250U2l6ZTtmb3IobGV0IGU9MCxyPWEubGVuZ3RoO2U8cjtlKyspe2NvbnN0IGk9YVtlXSx7Y2F0ZWdvcnk6byxvcmlnaW5hbENoYXJDb2RlOmx9PWk7aWYoby5pc0ludmlzaWJsZUZvcm1hdE1hcmspY29udGludWU7bGV0IGY9VC5jaGFyU3BhY2luZysoZSsxPT09cj90OjApLGM9aS53aWR0aDtuLnZlcnRpY2FsJiYoYz1pLnZtZXRyaWM/aS52bWV0cmljWzBdOi1jKTtsZXQgaD1jKnM7MzI9PT1sJiYoZis9VC53b3JkU3BhY2luZyk7aWYoIXUmJm8uaXNXaGl0ZXNwYWNlKXtpZihuLnZlcnRpY2FsKXtmKz0taDtULnRyYW5zbGF0ZVRleHRNYXRyaXgoMCwtZil9ZWxzZXtmKz1oO1QudHJhbnNsYXRlVGV4dE1hdHJpeChmKlQudGV4dEhTY2FsZSwwKX1zYXZlTGFzdENoYXIoIiAiKTtjb250aW51ZX1pZighby5pc1plcm9XaWR0aERpYWNyaXRpYyYmIWNvbXBhcmVXaXRoTGFzdFBvc2l0aW9uKGgpKXtuLnZlcnRpY2FsP1QudHJhbnNsYXRlVGV4dE1hdHJpeCgwLGgpOlQudHJhbnNsYXRlVGV4dE1hdHJpeChoKlQudGV4dEhTY2FsZSwwKTtjb250aW51ZX1jb25zdCBtPWVuc3VyZVRleHRDb250ZW50SXRlbSgpO28uaXNaZXJvV2lkdGhEaWFjcml0aWMmJihoPTApO2lmKG4udmVydGljYWwpe3A/LmFkZEdseXBoKGdldEN1cnJlbnRUZXh0VHJhbnNmb3JtKCksMCxoLGkudW5pY29kZSk7VC50cmFuc2xhdGVUZXh0TWF0cml4KDAsaCk7aD1NYXRoLmFicyhoKTttLmhlaWdodCs9aH1lbHNle2gqPVQudGV4dEhTY2FsZTtwPy5hZGRHbHlwaChnZXRDdXJyZW50VGV4dFRyYW5zZm9ybSgpLGgsMCxpLnVuaWNvZGUpO1QudHJhbnNsYXRlVGV4dE1hdHJpeChoLDApO20ud2lkdGgrPWh9aCYmKG0ucHJldlRyYW5zZm9ybT1nZXRDdXJyZW50VGV4dFRyYW5zZm9ybSgpKTtjb25zdCBkPWkudW5pY29kZTtpZihzYXZlTGFzdENoYXIoZCkpe20uc3RyLnB1c2goIiAiKTtwPy5hZGRFeHRyYUNoYXIoIiAiKX1wfHxtLnN0ci5wdXNoKGQpO2YmJihuLnZlcnRpY2FsP1QudHJhbnNsYXRlVGV4dE1hdHJpeCgwLC1mKTpULnRyYW5zbGF0ZVRleHRNYXRyaXgoZipULnRleHRIU2NhbGUsMCkpfX1mdW5jdGlvbiBhcHBlbmRFT0woKXtwPy5hZGRFeHRyYUNoYXIoIlxuIik7cmVzZXRMYXN0Q2hhcnMoKTtpZih3LmluaXRpYWxpemVkKXt3Lmhhc0VPTD0hMDtmbHVzaFRleHRDb250ZW50SXRlbSgpfWVsc2UgYi5pdGVtcy5wdXNoKHtzdHI6IiIsZGlyOiJsdHIiLHdpZHRoOjAsaGVpZ2h0OjAsdHJhbnNmb3JtOmdldEN1cnJlbnRUZXh0VHJhbnNmb3JtKCksZm9udE5hbWU6VC5sb2FkZWROYW1lLGhhc0VPTDohMH0pfWZ1bmN0aW9uIGFkZEZha2VTcGFjZXMoZSx0LG4pe2lmKG4qdy5zcGFjZUluRmxvd01pbjw9ZSYmZTw9bip3LnNwYWNlSW5GbG93TWF4KXtpZih3LmluaXRpYWxpemVkKXtyZXNldExhc3RDaGFycygpO3cuc3RyLnB1c2goIiAiKTtwPy5hZGRFeHRyYUNoYXIoIiAiKX1yZXR1cm4hMX1jb25zdCBhPXcuZm9udE5hbWU7bGV0IHM9MDtpZih3LnZlcnRpY2FsKXtzPWU7ZT0wfWZsdXNoVGV4dENvbnRlbnRJdGVtKCk7cmVzZXRMYXN0Q2hhcnMoKTtwdXNoV2hpdGVzcGFjZSh7d2lkdGg6TWF0aC5hYnMoZSksaGVpZ2h0Ok1hdGguYWJzKHMpLHRyYW5zZm9ybTp0fHxnZXRDdXJyZW50VGV4dFRyYW5zZm9ybSgpLGZvbnROYW1lOmF9KTtyZXR1cm4hMH1mdW5jdGlvbiBmbHVzaFRleHRDb250ZW50SXRlbSgpe2lmKHcuaW5pdGlhbGl6ZWQmJncuc3RyKXt3LnZlcnRpY2FsP3cudG90YWxIZWlnaHQrPXcuaGVpZ2h0KncudGV4dEFkdmFuY2VTY2FsZTp3LnRvdGFsV2lkdGgrPXcud2lkdGgqdy50ZXh0QWR2YW5jZVNjYWxlO2IuaXRlbXMucHVzaChydW5CaWRpVHJhbnNmb3JtKHcpKTt3LmluaXRpYWxpemVkPSExO3cuc3RyLmxlbmd0aD0wfX1mdW5jdGlvbiBlbnF1ZXVlQ2h1bmsoZT0hMSl7Y29uc3QgdD1iLml0ZW1zLmxlbmd0aDtpZigwIT09dCYmIShlJiZ0PDEwKSl7aT8uZW5xdWV1ZShiLHQpO2IuaXRlbXM9W107Yi5zdHlsZXM9T2JqZWN0LmNyZWF0ZShudWxsKX19Y29uc3QgTz1uZXcgVGltZVNsb3RNYW5hZ2VyO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiBwcm9taXNlQm9keShlLHQpe2NvbnN0IG5leHQ9ZnVuY3Rpb24obil7ZW5xdWV1ZUNodW5rKCEwKTtQcm9taXNlLmFsbChbbixpPy5yZWFkeV0pLnRoZW4oZnVuY3Rpb24oKXt0cnl7cHJvbWlzZUJvZHkoZSx0KX1jYXRjaChlKXt0KGUpfX0sdCl9O24uZW5zdXJlTm90VGVybWluYXRlZCgpO08ucmVzZXQoKTtjb25zdCBtPXt9O2xldCBwLGQsdyxqPVtdO2Zvcig7IShwPU8uY2hlY2soKSk7KXtqLmxlbmd0aD0wO20uYXJncz1qO2lmKCFGLnJlYWQobSkpYnJlYWs7VD1zLnN0YXRlO0h8fD1ULmNsb25lKCk7Y29uc3QgZT1tLmZuO2o9bS5hcmdzO3N3aXRjaCgwfGUpe2Nhc2UgV2U6Y29uc3QgZT1qWzBdLm5hbWUsdD1qWzFdO2lmKFQuZm9udCYmZT09PVQuZm9udE5hbWUmJnQ9PT1ULmZvbnRTaXplKWJyZWFrO1QuZm9udE5hbWU9ZTtULmZvbnRTaXplPXQ7bmV4dChoYW5kbGVTZXRGb250KGUsbnVsbCkpO3JldHVybjtjYXNlIEdlOlQudGV4dFJpc2U9alswXTticmVhaztjYXNlIF9lOlQudGV4dEhTY2FsZT1qWzBdLzEwMDticmVhaztjYXNlIFhlOlQubGVhZGluZz1qWzBdO2JyZWFrO2Nhc2UgVmU6VC50cmFuc2xhdGVUZXh0TGluZU1hdHJpeChqWzBdLGpbMV0pO1QudGV4dE1hdHJpeD1ULnRleHRMaW5lTWF0cml4LnNsaWNlKCk7YnJlYWs7Y2FzZSAkZTpULmxlYWRpbmc9LWpbMV07VC50cmFuc2xhdGVUZXh0TGluZU1hdHJpeChqWzBdLGpbMV0pO1QudGV4dE1hdHJpeD1ULnRleHRMaW5lTWF0cml4LnNsaWNlKCk7YnJlYWs7Y2FzZSBKZTpULmNhcnJpYWdlUmV0dXJuKCk7YnJlYWs7Y2FzZSBZZTpULnNldFRleHRNYXRyaXgoalswXSxqWzFdLGpbMl0salszXSxqWzRdLGpbNV0pO1Quc2V0VGV4dExpbmVNYXRyaXgoalswXSxqWzFdLGpbMl0salszXSxqWzRdLGpbNV0pO3VwZGF0ZUFkdmFuY2VTY2FsZSgpO2JyZWFrO2Nhc2UgTGU6VC5jaGFyU3BhY2luZz1qWzBdO2JyZWFrO2Nhc2UgVWU6VC53b3JkU3BhY2luZz1qWzBdO2JyZWFrO2Nhc2UgTmU6VC50ZXh0TWF0cml4PXBuLnNsaWNlKCk7VC50ZXh0TGluZU1hdHJpeD1wbi5zbGljZSgpO2JyZWFrO2Nhc2UgWmU6aWYoIXMuc3RhdGUuZm9udCl7eS5lbnN1cmVTdGF0ZUZvbnQocy5zdGF0ZSk7Y29udGludWV9Y29uc3QgbT0oVC5mb250LnZlcnRpY2FsPzE6LTEpKlQuZm9udFNpemUvMWUzLHA9alswXTtmb3IobGV0IGU9MCx0PXAubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9cFtlXTtpZigic3RyaW5nIj09dHlwZW9mIHQpdi5wdXNoKHQpO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiB0JiYwIT09dCl7Y29uc3QgZT12LmpvaW4oIiIpO3YubGVuZ3RoPTA7YnVpbGRUZXh0Q29udGVudEl0ZW0oe2NoYXJzOmUsZXh0cmFTcGFjaW5nOnQqbX0pfX1pZih2Lmxlbmd0aD4wKXtjb25zdCBlPXYuam9pbigiIik7di5sZW5ndGg9MDtidWlsZFRleHRDb250ZW50SXRlbSh7Y2hhcnM6ZSxleHRyYVNwYWNpbmc6MH0pfWJyZWFrO2Nhc2UgUWU6aWYoIXMuc3RhdGUuZm9udCl7eS5lbnN1cmVTdGF0ZUZvbnQocy5zdGF0ZSk7Y29udGludWV9YnVpbGRUZXh0Q29udGVudEl0ZW0oe2NoYXJzOmpbMF0sZXh0cmFTcGFjaW5nOjB9KTticmVhaztjYXNlIGV0OmlmKCFzLnN0YXRlLmZvbnQpe3kuZW5zdXJlU3RhdGVGb250KHMuc3RhdGUpO2NvbnRpbnVlfVQuY2FycmlhZ2VSZXR1cm4oKTtidWlsZFRleHRDb250ZW50SXRlbSh7Y2hhcnM6alswXSxleHRyYVNwYWNpbmc6MH0pO2JyZWFrO2Nhc2UgdHQ6aWYoIXMuc3RhdGUuZm9udCl7eS5lbnN1cmVTdGF0ZUZvbnQocy5zdGF0ZSk7Y29udGludWV9VC53b3JkU3BhY2luZz1qWzBdO1QuY2hhclNwYWNpbmc9alsxXTtULmNhcnJpYWdlUmV0dXJuKCk7YnVpbGRUZXh0Q29udGVudEl0ZW0oe2NoYXJzOmpbMl0sZXh0cmFTcGFjaW5nOjB9KTticmVhaztjYXNlIGt0OmZsdXNoVGV4dENvbnRlbnRJdGVtKCk7Uz8/PWEuZ2V0KCJYT2JqZWN0Iil8fERpY3QuZW1wdHk7dz1qWzBdaW5zdGFuY2VvZiBOYW1lO2Q9alswXS5uYW1lO2lmKHcmJnguZ2V0QnlOYW1lKGQpKWJyZWFrO25leHQobmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtpZighdyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlhPYmplY3QgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2xldCBtPVMuZ2V0UmF3KGQpO2lmKG0gaW5zdGFuY2VvZiBSZWYpe2lmKHguZ2V0QnlSZWYobSkpe2UoKTtyZXR1cm59aWYoeS5nbG9iYWxJbWFnZUNhY2hlLmdldERhdGEobSx5LnBhZ2VJbmRleCkpe2UoKTtyZXR1cm59bT1xLmZldGNoKG0pfWlmKCEobSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBzaG91bGQgYmUgYSBzdHJlYW0iKTtjb25zdHtkaWN0OnB9PW0sYj1wLmdldCgiU3VidHlwZSIpO2lmKCEoYiBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBzaG91bGQgaGF2ZSBhIE5hbWUgc3VidHlwZSIpO2lmKCJGb3JtIiE9PWIubmFtZSl7eC5zZXQoZCxwLm9iaklkLCEwKTtlKCk7cmV0dXJufWNvbnN0IGo9cy5zdGF0ZS5jbG9uZSgpLGs9bmV3IFN0YXRlTWFuYWdlcihqKSx2PWxvb2t1cE1hdHJpeChwLmdldEFycmF5KCJNYXRyaXgiKSxudWxsKTt2JiZrLnRyYW5zZm9ybSh2KTtjb25zdCBDPXAuZ2V0KCJSZXNvdXJjZXMiKTtlbnF1ZXVlQ2h1bmsoKTtjb25zdCBGPXtlbnF1ZXVlSW52b2tlZDohMSxlbnF1ZXVlKGUsdCl7dGhpcy5lbnF1ZXVlSW52b2tlZD0hMDtpLmVucXVldWUoZSx0KX0sZ2V0IGRlc2lyZWRTaXplKCl7cmV0dXJuIGkuZGVzaXJlZFNpemU/PzB9LGdldCByZWFkeSgpe3JldHVybiBpLnJlYWR5fX07eS5nZXRUZXh0Q29udGVudCh7c3RyZWFtOm0sdGFzazpuLHJlc291cmNlczpDIGluc3RhbmNlb2YgRGljdD9DOmEsc3RhdGVNYW5hZ2VyOmssaW5jbHVkZU1hcmtlZENvbnRlbnQ6cixzaW5rOmkmJkYsc2VlblN0eWxlczpvLHZpZXdCb3g6bCxsYW5nOmYsbWFya2VkQ29udGVudERhdGE6YyxkaXNhYmxlTm9ybWFsaXphdGlvbjpoLGtlZXBXaGl0ZVNwYWNlOnUscHJldlJlZnM6Z30pLnRoZW4oZnVuY3Rpb24oKXtGLmVucXVldWVJbnZva2VkfHx4LnNldChkLHAub2JqSWQsITApO2UoKX0sdCl9KS5jYXRjaChmdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbikpe2lmKCF5Lm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgZ2V0VGV4dENvbnRlbnQgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHtlfSIuYCl9fSkpO3JldHVybjtjYXNlIGJlOnc9alswXWluc3RhbmNlb2YgTmFtZTtkPWpbMF0ubmFtZTtpZih3JiZDLmdldEJ5TmFtZShkKSlicmVhaztuZXh0KG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7aWYoIXcpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJHU3RhdGUgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2NvbnN0IG49YS5nZXQoIkV4dEdTdGF0ZSIpO2lmKCEobiBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiRXh0R1N0YXRlIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkuIik7Y29uc3Qgcz1uLmdldChkKTtpZighKHMgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkdTdGF0ZSBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5LiIpO2NvbnN0IHI9cy5nZXQoIkZvbnQiKTtpZihyKXtmbHVzaFRleHRDb250ZW50SXRlbSgpO1QuZm9udE5hbWU9bnVsbDtULmZvbnRTaXplPXJbMV07aGFuZGxlU2V0Rm9udChudWxsLHJbMF0pLnRoZW4oZSx0KX1lbHNle0Muc2V0KGQscy5vYmpJZCwhMCk7ZSgpfX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXkub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIEV4dEdTdGF0ZTogIiR7ZX0iLmApfX0pKTtyZXR1cm47Y2FzZSB2dDpmbHVzaFRleHRDb250ZW50SXRlbSgpO2lmKHIpe2MubGV2ZWwrKztiLml0ZW1zLnB1c2goe3R5cGU6ImJlZ2luTWFya2VkQ29udGVudCIsdGFnOmpbMF1pbnN0YW5jZW9mIE5hbWU/alswXS5uYW1lOm51bGx9KX1icmVhaztjYXNlIFN0OmZsdXNoVGV4dENvbnRlbnRJdGVtKCk7aWYocil7Yy5sZXZlbCsrO2xldCBlPW51bGw7alsxXWluc3RhbmNlb2YgRGljdCYmKGU9alsxXS5nZXQoIk1DSUQiKSk7Yi5pdGVtcy5wdXNoKHt0eXBlOiJiZWdpbk1hcmtlZENvbnRlbnRQcm9wcyIsaWQ6TnVtYmVyLmlzSW50ZWdlcihlKT9gJHt5LmlkRmFjdG9yeS5nZXRQYWdlT2JqSWQoKX1fbWMke2V9YDpudWxsLHRhZzpqWzBdaW5zdGFuY2VvZiBOYW1lP2pbMF0ubmFtZTpudWxsfSl9YnJlYWs7Y2FzZSB4dDpmbHVzaFRleHRDb250ZW50SXRlbSgpO2lmKHIpe2lmKDA9PT1jLmxldmVsKWJyZWFrO2MubGV2ZWwtLTtiLml0ZW1zLnB1c2goe3R5cGU6ImVuZE1hcmtlZENvbnRlbnQifSl9YnJlYWs7Y2FzZSBqZTpzLnJlc3RvcmUoKTticmVhaztjYXNlIHdlOnMuc2F2ZSgpfWlmKGIuaXRlbXMubGVuZ3RoPj0oaT8uZGVzaXJlZFNpemU/PzEpKXtwPSEwO2JyZWFrfX1pZihwKW5leHQocXIpO2Vsc2V7Zmx1c2hUZXh0Q29udGVudEl0ZW0oKTtlbnF1ZXVlQ2h1bmsoKTtlKCl9fSkuY2F0Y2goZT0+e2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIGVycm9ycyBkdXJpbmcgIiR7bi5uYW1lfSIgdGFzazogIiR7ZX0iLmApO2ZsdXNoVGV4dENvbnRlbnRJdGVtKCk7ZW5xdWV1ZUNodW5rKCl9fSl9YXN5bmMgZXh0cmFjdERhdGFTdHJ1Y3R1cmVzKGUsdCl7Y29uc3Qgbj10aGlzLnhyZWY7bGV0IGE7Y29uc3Qgcz10aGlzLnJlYWRUb1VuaWNvZGUodC50b1VuaWNvZGUpO2lmKHQuY29tcG9zaXRlKXtjb25zdCBuPWUuZ2V0KCJDSURTeXN0ZW1JbmZvIik7biBpbnN0YW5jZW9mIERpY3QmJiF0LmNpZFN5c3RlbUluZm8mJih0LmNpZFN5c3RlbUluZm89e3JlZ2lzdHJ5OnN0cmluZ1RvUERGU3RyaW5nKG4uZ2V0KCJSZWdpc3RyeSIpKSxvcmRlcmluZzpzdHJpbmdUb1BERlN0cmluZyhuLmdldCgiT3JkZXJpbmciKSksc3VwcGxlbWVudDpuLmdldCgiU3VwcGxlbWVudCIpfSk7dHJ5e2NvbnN0IHQ9ZS5nZXQoIkNJRFRvR0lETWFwIik7dCBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJihhPXQuZ2V0Qnl0ZXMoKSl9Y2F0Y2goZSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBleHRyYWN0RGF0YVN0cnVjdHVyZXMgLSBpZ25vcmluZyBDSURUb0dJRE1hcCBkYXRhOiAiJHtlfSIuYCl9fWNvbnN0IHI9W107bGV0IGksbz1udWxsO2lmKGUuaGFzKCJFbmNvZGluZyIpKXtpPWUuZ2V0KCJFbmNvZGluZyIpO2lmKGkgaW5zdGFuY2VvZiBEaWN0KXtvPWkuZ2V0KCJCYXNlRW5jb2RpbmciKTtvPW8gaW5zdGFuY2VvZiBOYW1lP28ubmFtZTpudWxsO2lmKGkuaGFzKCJEaWZmZXJlbmNlcyIpKXtjb25zdCBlPWkuZ2V0KCJEaWZmZXJlbmNlcyIpO2xldCB0PTA7Zm9yKGNvbnN0IGEgb2YgZSl7Y29uc3QgZT1uLmZldGNoSWZSZWYoYSk7aWYoIm51bWJlciI9PXR5cGVvZiBlKXQ9ZTtlbHNle2lmKCEoZSBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBlbnRyeSBpbiAnRGlmZmVyZW5jZXMnIGFycmF5OiAke2V9YCk7clt0KytdPWUubmFtZX19fX1lbHNlIGlmKGkgaW5zdGFuY2VvZiBOYW1lKW89aS5uYW1lO2Vsc2V7Y29uc3QgZT0iRW5jb2RpbmcgaXMgbm90IGEgTmFtZSBub3IgYSBEaWN0IjtpZighdGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoZSk7d2FybihlKX0iTWFjUm9tYW5FbmNvZGluZyIhPT1vJiYiTWFjRXhwZXJ0RW5jb2RpbmciIT09byYmIldpbkFuc2lFbmNvZGluZyIhPT1vJiYobz1udWxsKX1jb25zdCBsPSF0LmZpbGV8fHQuaXNJbnRlcm5hbEZvbnQsZj1fYSgpW3QubmFtZV07byYmbCYmZiYmKG89bnVsbCk7aWYoIldpbkFuc2lFbmNvZGluZyI9PT1vJiZsJiZ0Lm5hbWU/LmNoYXJDb2RlQXQoMCk+PTE4Myl7Y29uc3QgZT10Lm5hbWU7aWYoWyLDi8OOw4zDpSIsIsK6w5rDjMOlIiwiwr/CrMOMw6UiLCLCt8OCw4vDjiIsIsK/wqzDjMOlX0dCMjMxMiIsIsK3w4LDi8OOX0dCMjMxMiIsIsOBwqXDisOpIiwiw5DDgsOLw44iXS5pbmNsdWRlcyhlKSl7bz1udWxsO3QuZGVmYXVsdEVuY29kaW5nPSJBZG9iZS1HQjEtVUNTMiI7dC5jb21wb3NpdGU9ITA7dC5jaWRFbmNvZGluZz1OYW1lLmdldCgiR0JLLUVVQy1IIik7Y29uc3QgZT1hd2FpdCBDTWFwRmFjdG9yeS5jcmVhdGUoe2VuY29kaW5nOnQuY2lkRW5jb2RpbmcsZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSk7dC5jTWFwPWU7dC52ZXJ0aWNhbD10LmNNYXAudmVydGljYWw7dC5jaWRTeXN0ZW1JbmZvPXtyZWdpc3RyeToiQWRvYmUiLG9yZGVyaW5nOiJHQjEiLHN1cHBsZW1lbnQ6MH19fWlmKG8pdC5kZWZhdWx0RW5jb2Rpbmc9Z2V0RW5jb2Rpbmcobyk7ZWxzZXtsZXQgZT0hISh0LmZsYWdzJnhhKTtjb25zdCBuPSEhKHQuZmxhZ3MmQWEpO2lmKCJUcnVlVHlwZSI9PT10LnR5cGUmJmUmJm4mJjAhPT1yLmxlbmd0aCl7dC5mbGFncyY9fnhhO2U9ITF9aT11YTsiVHJ1ZVR5cGUiIT09dC50eXBlfHxufHwoaT1tYSk7aWYoZXx8Zil7aT1oYTtsJiYoL1N5bWJvbC9pLnRlc3QodC5uYW1lKT9pPXBhOi9EaW5nYmF0cy9pLnRlc3QodC5uYW1lKT9pPWRhOi9XaW5nZGluZ3MvaS50ZXN0KHQubmFtZSkmJihpPW1hKSl9dC5kZWZhdWx0RW5jb2Rpbmc9aX10LmRpZmZlcmVuY2VzPXI7dC5iYXNlRW5jb2RpbmdOYW1lPW87dC5oYXNFbmNvZGluZz0hIW98fHIubGVuZ3RoPjA7dC5kaWN0PWU7dC50b1VuaWNvZGU9YXdhaXQgcztjb25zdCBjPWF3YWl0IHRoaXMuYnVpbGRUb1VuaWNvZGUodCk7dC50b1VuaWNvZGU9YzthJiYodC5jaWRUb0dpZE1hcD10aGlzLnJlYWRDaWRUb0dpZE1hcChhLGMpKTtyZXR1cm4gdH1fc2ltcGxlRm9udFRvVW5pY29kZShlLHQ9ITEpe2Fzc2VydCghZS5jb21wb3NpdGUsIk11c3QgYmUgYSBzaW1wbGUgZm9udC4iKTtjb25zdCBuPVtdLGE9ZS5kZWZhdWx0RW5jb2Rpbmcuc2xpY2UoKSxzPWUuYmFzZUVuY29kaW5nTmFtZSxyPWUuZGlmZmVyZW5jZXM7Zm9yKGNvbnN0IGUgaW4gcil7Y29uc3QgdD1yW2VdOyIubm90ZGVmIiE9PXQmJihhW2VdPXQpfWNvbnN0IGk9Z2EoKTtmb3IoY29uc3QgciBpbiBhKXtsZXQgbz1hW3JdO2lmKCIiPT09byljb250aW51ZTtsZXQgbD1pW29dO2lmKHZvaWQgMCE9PWwpe25bcl09U3RyaW5nLmZyb21DaGFyQ29kZShsKTtjb250aW51ZX1sZXQgZj0wO3N3aXRjaChvWzBdKXtjYXNlIkciOjM9PT1vLmxlbmd0aCYmKGY9cGFyc2VJbnQoby5zdWJzdHJpbmcoMSksMTYpKTticmVhaztjYXNlImciOjU9PT1vLmxlbmd0aCYmKGY9cGFyc2VJbnQoby5zdWJzdHJpbmcoMSksMTYpKTticmVhaztjYXNlIkMiOmNhc2UiYyI6aWYoby5sZW5ndGg+PTMmJm8ubGVuZ3RoPD00KXtjb25zdCBuPW8uc3Vic3RyaW5nKDEpO2lmKHQpe2Y9cGFyc2VJbnQobiwxNik7YnJlYWt9Zj0rbjtpZihOdW1iZXIuaXNOYU4oZikmJk51bWJlci5pc0ludGVnZXIocGFyc2VJbnQobiwxNikpKXJldHVybiB0aGlzLl9zaW1wbGVGb250VG9Vbmljb2RlKGUsITApfWJyZWFrO2Nhc2UidSI6bD1nZXRVbmljb2RlRm9yR2x5cGgobyxpKTstMSE9PWwmJihmPWwpO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKG8pe2Nhc2UiZl9oIjpjYXNlImZfdCI6Y2FzZSJUX2giOm5bcl09by5yZXBsYWNlQWxsKCJfIiwiIik7Y29udGludWV9fWlmKGY+MCYmZjw9MTExNDExMSYmTnVtYmVyLmlzSW50ZWdlcihmKSl7aWYocyYmZj09PStyKXtjb25zdCBlPWdldEVuY29kaW5nKHMpO2lmKGUmJihvPWVbcl0pKXtuW3JdPVN0cmluZy5mcm9tQ2hhckNvZGUoaVtvXSk7Y29udGludWV9fW5bcl09U3RyaW5nLmZyb21Db2RlUG9pbnQoZil9fXJldHVybiBufWFzeW5jIGJ1aWxkVG9Vbmljb2RlKGUpe2UuaGFzSW5jbHVkZWRUb1VuaWNvZGVNYXA9ZS50b1VuaWNvZGU/Lmxlbmd0aD4wO2lmKGUuaGFzSW5jbHVkZWRUb1VuaWNvZGVNYXApeyFlLmNvbXBvc2l0ZSYmZS5oYXNFbmNvZGluZyYmKGUuZmFsbGJhY2tUb1VuaWNvZGU9dGhpcy5fc2ltcGxlRm9udFRvVW5pY29kZShlKSk7cmV0dXJuIGUudG9Vbmljb2RlfWlmKCFlLmNvbXBvc2l0ZSlyZXR1cm4gbmV3IFRvVW5pY29kZU1hcCh0aGlzLl9zaW1wbGVGb250VG9Vbmljb2RlKGUpKTtpZihlLmNvbXBvc2l0ZSYmKGUuY01hcC5idWlsdEluQ01hcCYmIShlLmNNYXAgaW5zdGFuY2VvZiBJZGVudGl0eUNNYXApfHwiQWRvYmUiPT09ZS5jaWRTeXN0ZW1JbmZvPy5yZWdpc3RyeSYmKCJHQjEiPT09ZS5jaWRTeXN0ZW1JbmZvLm9yZGVyaW5nfHwiQ05TMSI9PT1lLmNpZFN5c3RlbUluZm8ub3JkZXJpbmd8fCJKYXBhbjEiPT09ZS5jaWRTeXN0ZW1JbmZvLm9yZGVyaW5nfHwiS29yZWExIj09PWUuY2lkU3lzdGVtSW5mby5vcmRlcmluZykpKXtjb25zdHtyZWdpc3RyeTp0LG9yZGVyaW5nOm59PWUuY2lkU3lzdGVtSW5mbyxhPU5hbWUuZ2V0KGAke3R9LSR7bn0tVUNTMmApLHM9YXdhaXQgQ01hcEZhY3RvcnkuY3JlYXRlKHtlbmNvZGluZzphLGZldGNoQnVpbHRJbkNNYXA6dGhpcy5fZmV0Y2hCdWlsdEluQ01hcEJvdW5kLHVzZUNNYXA6bnVsbH0pLHI9W10saT1bXTtlLmNNYXAuZm9yRWFjaChmdW5jdGlvbihlLHQpe2lmKHQ+NjU1MzUpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJNYXggc2l6ZSBvZiBDSUQgaXMgNjUsNTM1Iik7Y29uc3Qgbj1zLmxvb2t1cCh0KTtpZihuKXtpLmxlbmd0aD0wO2ZvcihsZXQgZT0wLHQ9bi5sZW5ndGg7ZTx0O2UrPTIpaS5wdXNoKChuLmNoYXJDb2RlQXQoZSk8PDgpK24uY2hhckNvZGVBdChlKzEpKTtyW2VdPVN0cmluZy5mcm9tQ2hhckNvZGUoLi4uaSl9fSk7cmV0dXJuIG5ldyBUb1VuaWNvZGVNYXAocil9cmV0dXJuIG5ldyBJZGVudGl0eVRvVW5pY29kZU1hcChlLmZpcnN0Q2hhcixlLmxhc3RDaGFyKX1hc3luYyByZWFkVG9Vbmljb2RlKGUpe2lmKCFlKXJldHVybiBudWxsO2lmKGUgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCB0PWF3YWl0IENNYXBGYWN0b3J5LmNyZWF0ZSh7ZW5jb2Rpbmc6ZSxmZXRjaEJ1aWx0SW5DTWFwOnRoaXMuX2ZldGNoQnVpbHRJbkNNYXBCb3VuZCx1c2VDTWFwOm51bGx9KTtyZXR1cm4gdCBpbnN0YW5jZW9mIElkZW50aXR5Q01hcD9uZXcgSWRlbnRpdHlUb1VuaWNvZGVNYXAoMCw2NTUzNSk6bmV3IFRvVW5pY29kZU1hcCh0LmdldE1hcCgpKX1pZihlIGluc3RhbmNlb2YgQmFzZVN0cmVhbSl0cnl7Y29uc3QgdD1hd2FpdCBDTWFwRmFjdG9yeS5jcmVhdGUoe2VuY29kaW5nOmUsZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSk7aWYodCBpbnN0YW5jZW9mIElkZW50aXR5Q01hcClyZXR1cm4gbmV3IElkZW50aXR5VG9Vbmljb2RlTWFwKDAsNjU1MzUpO2NvbnN0IG49bmV3IEFycmF5KHQubGVuZ3RoKTt0LmZvckVhY2goZnVuY3Rpb24oZSx0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpe25bZV09U3RyaW5nLmZyb21Db2RlUG9pbnQodCk7cmV0dXJufXQubGVuZ3RoJTIhPTAmJih0PSJcMCIrdCk7Y29uc3QgYT1bXTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrPTIpe2NvbnN0IG49dC5jaGFyQ29kZUF0KGUpPDw4fHQuY2hhckNvZGVBdChlKzEpO2lmKDU1Mjk2IT0oNjM0ODgmbikpe2EucHVzaChuKTtjb250aW51ZX1lKz0yO2NvbnN0IHM9dC5jaGFyQ29kZUF0KGUpPDw4fHQuY2hhckNvZGVBdChlKzEpO2EucHVzaCgoKDEwMjMmbik8PDEwKSsoMTAyMyZzKSs2NTUzNil9bltlXT1TdHJpbmcuZnJvbUNvZGVQb2ludCguLi5hKX0pO3JldHVybiBuZXcgVG9Vbmljb2RlTWFwKG4pfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbilyZXR1cm4gbnVsbDtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXt3YXJuKGByZWFkVG9Vbmljb2RlIC0gaWdub3JpbmcgVG9Vbmljb2RlIGRhdGE6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH10aHJvdyBlfXJldHVybiBudWxsfXJlYWRDaWRUb0dpZE1hcChlLHQpe2NvbnN0IG49W107Zm9yKGxldCBhPTAscz1lLmxlbmd0aDthPHM7YSsrKXtjb25zdCBzPWVbYSsrXTw8OHxlW2FdLHI9YT4+MTsoMCE9PXN8fHQuaGFzKHIpKSYmKG5bcl09cyl9cmV0dXJuIG59ZXh0cmFjdFdpZHRocyhlLHQsbil7Y29uc3QgYT10aGlzLnhyZWY7bGV0IHM9W10scj0wO2NvbnN0IGk9W107bGV0IG87aWYobi5jb21wb3NpdGUpe2NvbnN0IHQ9ZS5nZXQoIkRXIik7cj0ibnVtYmVyIj09dHlwZW9mIHQ/TWF0aC5jZWlsKHQpOjFlMztjb25zdCBsPWUuZ2V0KCJXIik7aWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IGU9MCx0PWwubGVuZ3RoO2U8dDtlKyspe2xldCB0PWEuZmV0Y2hJZlJlZihsW2UrK10pO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpKWJyZWFrO2NvbnN0IG49YS5mZXRjaElmUmVmKGxbZV0pO2lmKEFycmF5LmlzQXJyYXkobikpZm9yKGNvbnN0IGUgb2Ygbil7Y29uc3Qgbj1hLmZldGNoSWZSZWYoZSk7Im51bWJlciI9PXR5cGVvZiBuJiYoc1t0XT1uKTt0Kyt9ZWxzZXtpZighTnVtYmVyLmlzSW50ZWdlcihuKSlicmVhazt7Y29uc3Qgcj1hLmZldGNoSWZSZWYobFsrK2VdKTtpZigibnVtYmVyIiE9dHlwZW9mIHIpY29udGludWU7Zm9yKGxldCBlPXQ7ZTw9bjtlKyspc1tlXT1yfX19aWYobi52ZXJ0aWNhbCl7Y29uc3QgdD1lLmdldEFycmF5KCJEVzIiKTtsZXQgbj1pc051bWJlckFycmF5KHQsMik/dDpbODgwLC0xZTNdO289W25bMV0sLjUqcixuWzBdXTtuPWUuZ2V0KCJXMiIpO2lmKEFycmF5LmlzQXJyYXkobikpZm9yKGxldCBlPTAsdD1uLmxlbmd0aDtlPHQ7ZSsrKXtsZXQgdD1hLmZldGNoSWZSZWYobltlKytdKTtpZighTnVtYmVyLmlzSW50ZWdlcih0KSlicmVhaztjb25zdCBzPWEuZmV0Y2hJZlJlZihuW2VdKTtpZihBcnJheS5pc0FycmF5KHMpKWZvcihsZXQgZT0wLG49cy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj1bYS5mZXRjaElmUmVmKHNbZSsrXSksYS5mZXRjaElmUmVmKHNbZSsrXSksYS5mZXRjaElmUmVmKHNbZV0pXTtpc051bWJlckFycmF5KG4sbnVsbCkmJihpW3RdPW4pO3QrK31lbHNle2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHMpKWJyZWFrO3tjb25zdCByPVthLmZldGNoSWZSZWYoblsrK2VdKSxhLmZldGNoSWZSZWYoblsrK2VdKSxhLmZldGNoSWZSZWYoblsrK2VdKV07aWYoIWlzTnVtYmVyQXJyYXkocixudWxsKSljb250aW51ZTtmb3IobGV0IGU9dDtlPD1zO2UrKylpW2VdPXJ9fX19fWVsc2V7Y29uc3QgaT1lLmdldCgiV2lkdGhzIik7aWYoQXJyYXkuaXNBcnJheShpKSl7bGV0IGU9bi5maXJzdENoYXI7Zm9yKGNvbnN0IHQgb2YgaSl7Y29uc3Qgbj1hLmZldGNoSWZSZWYodCk7Im51bWJlciI9PXR5cGVvZiBuJiYoc1tlXT1uKTtlKyt9Y29uc3Qgbz10LmdldCgiTWlzc2luZ1dpZHRoIik7cj0ibnVtYmVyIj09dHlwZW9mIG8/bzowfWVsc2V7Y29uc3QgdD1lLmdldCgiQmFzZUZvbnQiKTtpZih0IGluc3RhbmNlb2YgTmFtZSl7Y29uc3QgZT10aGlzLmdldEJhc2VGb250TWV0cmljcyh0Lm5hbWUpO3M9dGhpcy5idWlsZENoYXJDb2RlVG9XaWR0aChlLndpZHRocyxuKTtyPWUuZGVmYXVsdFdpZHRofX19bGV0IGw9ITAsZj1yO2Zvcihjb25zdCBlIGluIHMpe2NvbnN0IHQ9c1tlXTtpZih0KWlmKGYpe2lmKGYhPT10KXtsPSExO2JyZWFrfX1lbHNlIGY9dH1sP24uZmxhZ3N8PXZhOm4uZmxhZ3MmPX52YTtuLmRlZmF1bHRXaWR0aD1yO24ud2lkdGhzPXM7bi5kZWZhdWx0Vk1ldHJpY3M9bztuLnZtZXRyaWNzPWl9aXNTZXJpZkZvbnQoZSl7Y29uc3QgdD1lLnNwbGl0KCItIiwxKVswXTtyZXR1cm4gdCBpbiBVYSgpfHwvc2VyaWYvZ2kudGVzdCh0KX1nZXRCYXNlRm9udE1ldHJpY3MoZSl7bGV0IHQ9MCxuPU9iamVjdC5jcmVhdGUobnVsbCksYT0hMSxzPW5vcm1hbGl6ZUZvbnROYW1lKGUpO3M9TmEoKVtzXXx8cztjb25zdCByPUdhKCksaT1yW3NdPz9yW3RoaXMuaXNTZXJpZkZvbnQoZSk/IlRpbWVzLVJvbWFuIjoiSGVsdmV0aWNhIl07aWYoIm51bWJlciI9PXR5cGVvZiBpKXt0PWk7YT0hMH1lbHNlIG49aSgpO3JldHVybntkZWZhdWx0V2lkdGg6dCxtb25vc3BhY2U6YSx3aWR0aHM6bn19YnVpbGRDaGFyQ29kZVRvV2lkdGgoZSx0KXtjb25zdCBuPU9iamVjdC5jcmVhdGUobnVsbCksYT10LmRpZmZlcmVuY2VzLHM9dC5kZWZhdWx0RW5jb2Rpbmc7Zm9yKGxldCB0PTA7dDwyNTY7dCsrKXQgaW4gYSYmZVthW3RdXT9uW3RdPWVbYVt0XV06dCBpbiBzJiZlW3NbdF1dJiYoblt0XT1lW3NbdF1dKTtyZXR1cm4gbn1wcmVFdmFsdWF0ZUZvbnQoZSl7Y29uc3QgdD1lO2xldCBuPWUuZ2V0KCJTdWJ0eXBlIik7aWYoIShuIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJpbnZhbGlkIGZvbnQgU3VidHlwZSIpO2xldCBhLHM9ITE7aWYoIlR5cGUwIj09PW4ubmFtZSl7Y29uc3QgdD1lLmdldCgiRGVzY2VuZGFudEZvbnRzIik7aWYoIXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJEZXNjZW5kYW50IGZvbnRzIGFyZSBub3Qgc3BlY2lmaWVkIik7aWYoISgoZT1BcnJheS5pc0FycmF5KHQpP3RoaXMueHJlZi5mZXRjaElmUmVmKHRbMF0pOnQpaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkRlc2NlbmRhbnQgZm9udCBpcyBub3QgYSBkaWN0aW9uYXJ5LiIpO249ZS5nZXQoIlN1YnR5cGUiKTtpZighKG4gaW5zdGFuY2VvZiBOYW1lKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoImludmFsaWQgZm9udCBTdWJ0eXBlIik7cz0hMH1sZXQgcj1lLmdldCgiRmlyc3RDaGFyIik7TnVtYmVyLmlzSW50ZWdlcihyKXx8KHI9MCk7bGV0IGk9ZS5nZXQoIkxhc3RDaGFyIik7TnVtYmVyLmlzSW50ZWdlcihpKXx8KGk9cz82NTUzNToyNTUpO2NvbnN0IG89ZS5nZXQoIkZvbnREZXNjcmlwdG9yIiksbD1lLmdldCgiVG9Vbmljb2RlIil8fHQuZ2V0KCJUb1VuaWNvZGUiKTtpZihvKXthPW5ldyBNdXJtdXJIYXNoM182NDtjb25zdCBuPXQuZ2V0UmF3KCJFbmNvZGluZyIpO2lmKG4gaW5zdGFuY2VvZiBOYW1lKWEudXBkYXRlKG4ubmFtZSk7ZWxzZSBpZihuIGluc3RhbmNlb2YgUmVmKWEudXBkYXRlKG4udG9TdHJpbmcoKSk7ZWxzZSBpZihuIGluc3RhbmNlb2YgRGljdClmb3IoY29uc3QgZSBvZiBuLmdldFJhd1ZhbHVlcygpKWlmKGUgaW5zdGFuY2VvZiBOYW1lKWEudXBkYXRlKGUubmFtZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgUmVmKWEudXBkYXRlKGUudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCB0PWUubGVuZ3RoLG49bmV3IEFycmF5KHQpO2ZvcihsZXQgYT0wO2E8dDthKyspe2NvbnN0IHQ9ZVthXTt0IGluc3RhbmNlb2YgTmFtZT9uW2FdPXQubmFtZTooIm51bWJlciI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgUmVmKSYmKG5bYV09dC50b1N0cmluZygpKX1hLnVwZGF0ZShuLmpvaW4oKSl9YS51cGRhdGUoYCR7cn0tJHtpfWApO2lmKGwgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKXtjb25zdCBlPWwuc3RyZWFtfHxsLHQ9ZS5idWZmZXI/bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIuYnVmZmVyLDAsZS5idWZmZXJMZW5ndGgpOm5ldyBVaW50OEFycmF5KGUuYnl0ZXMuYnVmZmVyLGUuc3RhcnQsZS5lbmQtZS5zdGFydCk7YS51cGRhdGUodCl9ZWxzZSBsIGluc3RhbmNlb2YgTmFtZSYmYS51cGRhdGUobC5uYW1lKTtjb25zdCBvPWUuZ2V0KCJXaWR0aHMiKXx8dC5nZXQoIldpZHRocyIpO2lmKEFycmF5LmlzQXJyYXkobykpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgbykoIm51bWJlciI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgUmVmKSYmZS5wdXNoKHQudG9TdHJpbmcoKSk7YS51cGRhdGUoZS5qb2luKCkpfWlmKHMpe2EudXBkYXRlKCJjb21wb3NpdGVGb250Iik7Y29uc3Qgbj1lLmdldCgiVyIpfHx0LmdldCgiVyIpO2lmKEFycmF5LmlzQXJyYXkobikpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgbilpZigibnVtYmVyIj09dHlwZW9mIHR8fHQgaW5zdGFuY2VvZiBSZWYpZS5wdXNoKHQudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdCBuPVtdO2Zvcihjb25zdCBlIG9mIHQpKCJudW1iZXIiPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIFJlZikmJm4ucHVzaChlLnRvU3RyaW5nKCkpO2UucHVzaChgWyR7bi5qb2luKCl9XWApfWEudXBkYXRlKGUuam9pbigpKX1jb25zdCBzPWUuZ2V0UmF3KCJDSURUb0dJRE1hcCIpfHx0LmdldFJhdygiQ0lEVG9HSURNYXAiKTtzIGluc3RhbmNlb2YgTmFtZT9hLnVwZGF0ZShzLm5hbWUpOnMgaW5zdGFuY2VvZiBSZWY/YS51cGRhdGUocy50b1N0cmluZygpKTpzIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmYS51cGRhdGUocy5wZWVrQnl0ZXMoKSl9fXJldHVybntkZXNjcmlwdG9yOm8sZGljdDplLGJhc2VEaWN0OnQsY29tcG9zaXRlOnMsdHlwZTpuLm5hbWUsZmlyc3RDaGFyOnIsbGFzdENoYXI6aSx0b1VuaWNvZGU6bCxoYXNoOmE/YS5oZXhkaWdlc3QoKToiIn19YXN5bmMgdHJhbnNsYXRlRm9udCh7ZGVzY3JpcHRvcjplLGRpY3Q6bixiYXNlRGljdDphLGNvbXBvc2l0ZTpzLHR5cGU6cixmaXJzdENoYXI6aSxsYXN0Q2hhcjpvLHRvVW5pY29kZTpsLGNzc0ZvbnRJbmZvOmZ9KXtjb25zdCBjPSJUeXBlMyI9PT1yO2lmKCFlKXtpZighYyl7bGV0IGU9bi5nZXQoIkJhc2VGb250Iik7aWYoIShlIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJCYXNlIGZvbnQgaXMgbm90IHNwZWNpZmllZCIpO2U9bm9ybWFsaXplRm9udE5hbWUoZS5uYW1lKTtjb25zdCB0PXRoaXMuZ2V0QmFzZUZvbnRNZXRyaWNzKGUpLHM9ZS5zcGxpdCgiLSIsMSlbMF0sZj0odGhpcy5pc1NlcmlmRm9udChzKT9TYTowKXwodC5tb25vc3BhY2U/dmE6MCl8KF9hKClbc10/eGE6QWEpLGg9e3R5cGU6cixuYW1lOmUsbG9hZGVkTmFtZTphLmxvYWRlZE5hbWUsc3lzdGVtRm9udEluZm86bnVsbCx3aWR0aHM6dC53aWR0aHMsZGVmYXVsdFdpZHRoOnQuZGVmYXVsdFdpZHRoLGlzU2ltdWxhdGVkRmxhZ3M6ITAsZmxhZ3M6ZixmaXJzdENoYXI6aSxsYXN0Q2hhcjpvLHRvVW5pY29kZTpsLHhIZWlnaHQ6MCxjYXBIZWlnaHQ6MCxpdGFsaWNBbmdsZTowLGlzVHlwZTNGb250OmN9LHU9bi5nZXQoIldpZHRocyIpLG09Z2V0U3RhbmRhcmRGb250TmFtZShlKTtsZXQgcD1udWxsO2lmKG0pe3A9YXdhaXQgdGhpcy5mZXRjaFN0YW5kYXJkRm9udERhdGEobSk7aC5pc0ludGVybmFsRm9udD0hIXB9IWguaXNJbnRlcm5hbEZvbnQmJnRoaXMub3B0aW9ucy51c2VTeXN0ZW1Gb250cyYmKGguc3lzdGVtRm9udEluZm89Z2V0Rm9udFN1YnN0aXR1dGlvbih0aGlzLnN5c3RlbUZvbnRDYWNoZSx0aGlzLmlkRmFjdG9yeSx0aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybCxlLG0scikpO2NvbnN0IGQ9YXdhaXQgdGhpcy5leHRyYWN0RGF0YVN0cnVjdHVyZXMobixoKTtpZihBcnJheS5pc0FycmF5KHUpKXtjb25zdCBlPVtdO2xldCB0PWk7Zm9yKGNvbnN0IG4gb2YgdSl7Y29uc3QgYT10aGlzLnhyZWYuZmV0Y2hJZlJlZihuKTsibnVtYmVyIj09dHlwZW9mIGEmJihlW3RdPWEpO3QrK31kLndpZHRocz1lfWVsc2UgZC53aWR0aHM9dGhpcy5idWlsZENoYXJDb2RlVG9XaWR0aCh0LndpZHRocyxkKTtyZXR1cm4gbmV3IEZvbnQoZSxwLGQsdGhpcy5vcHRpb25zKX1lPURpY3QuZW1wdHl9bGV0IGg9ZS5nZXQoIkZvbnROYW1lIiksdT1uLmdldCgiQmFzZUZvbnQiKTsic3RyaW5nIj09dHlwZW9mIGgmJihoPU5hbWUuZ2V0KGgpKTsic3RyaW5nIj09dHlwZW9mIHUmJih1PU5hbWUuZ2V0KHUpKTtjb25zdCBtPWg/Lm5hbWUscD11Py5uYW1lO2lmKGMpbXx8KGg9TmFtZS5nZXQocikpO2Vsc2UgaWYobSE9PXApe2luZm8oYFRoZSBGb250RGVzY3JpcHRvcidzIEZvbnROYW1lIGlzICIke219IiBidXQgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBGb250J3MgQmFzZUZvbnQgIiR7cH0iLmApO20mJnAmJihwLnN0YXJ0c1dpdGgobSl8fCFpc0tub3duRm9udE5hbWUobSkmJmlzS25vd25Gb250TmFtZShwKSkmJihoPW51bGwpO2h8fD11fWlmKCEoaCBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiaW52YWxpZCBmb250IG5hbWUiKTtsZXQgZCxnLGIsdyxqO3RyeXtkPWUuZ2V0KCJGb250RmlsZSIsIkZvbnRGaWxlMiIsIkZvbnRGaWxlMyIpO2lmKGQpe2lmKCEoZCBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiRm9udEZpbGUgc2hvdWxkIGJlIGEgc3RyZWFtIik7aWYoZC5pc0FzeW5jKXtjb25zdCBlPWF3YWl0IGQuYXN5bmNHZXRCeXRlcygpO2UmJihkPW5ldyBTdHJlYW0oZSwwLGUubGVuZ3RoLGQuZGljdCkpfWlmKGQuaXNFbXB0eSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkZvbnRGaWxlIGlzIGVtcHR5Iil9fWNhdGNoKGUpe2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgdHJhbnNsYXRlRm9udCAtIGZldGNoaW5nICIke2gubmFtZX0iIGZvbnQgZmlsZTogIiR7ZX0iLmApO2Q9bnVsbH1sZXQgaz0hMSx5PW51bGwscT1udWxsO2lmKGQpe2lmKGQuZGljdCl7Y29uc3QgZT1kLmRpY3QuZ2V0KCJTdWJ0eXBlIik7ZSBpbnN0YW5jZW9mIE5hbWUmJihnPWUubmFtZSk7Yj1kLmRpY3QuZ2V0KCJMZW5ndGgxIik7dz1kLmRpY3QuZ2V0KCJMZW5ndGgyIik7aj1kLmRpY3QuZ2V0KCJMZW5ndGgzIil9fWVsc2UgaWYoZil7Y29uc3QgZT1nZXRYZmFGb250TmFtZShoLm5hbWUpO2lmKGUpe2YuZm9udEZhbWlseT1gJHtmLmZvbnRGYW1pbHl9LVBkZkpTLVhGQWA7Zi5tZXRyaWNzPWUubWV0cmljc3x8bnVsbDt5PWUuZmFjdG9yc3x8bnVsbDtkPWF3YWl0IHRoaXMuZmV0Y2hTdGFuZGFyZEZvbnREYXRhKGUubmFtZSk7az0hIWQ7YT1uPWdldFhmYUZvbnREaWN0KGgubmFtZSk7cz0hMH19ZWxzZSBpZighYyl7Y29uc3QgZT1nZXRTdGFuZGFyZEZvbnROYW1lKGgubmFtZSk7aWYoZSl7ZD1hd2FpdCB0aGlzLmZldGNoU3RhbmRhcmRGb250RGF0YShlKTtrPSEhZH0hayYmdGhpcy5vcHRpb25zLnVzZVN5c3RlbUZvbnRzJiYocT1nZXRGb250U3Vic3RpdHV0aW9uKHRoaXMuc3lzdGVtRm9udENhY2hlLHRoaXMuaWRGYWN0b3J5LHRoaXMub3B0aW9ucy5zdGFuZGFyZEZvbnREYXRhVXJsLGgubmFtZSxlLHIpKX1jb25zdCB2PWxvb2t1cE1hdHJpeChuLmdldEFycmF5KCJGb250TWF0cml4IiksdCksUz1sb29rdXBOb3JtYWxSZWN0KGUuZ2V0QXJyYXkoIkZvbnRCQm94Iil8fG4uZ2V0QXJyYXkoIkZvbnRCQm94IiksYz9bMCwwLDAsMF06dm9pZCAwKTtsZXQgeD1lLmdldCgiQXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiB4JiYoeD12b2lkIDApO2xldCBDPWUuZ2V0KCJEZXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiBDJiYoQz12b2lkIDApO2xldCBGPWUuZ2V0KCJYSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBGJiYoRj0wKTtsZXQgVD1lLmdldCgiQ2FwSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBUJiYoVD0wKTtsZXQgSD1lLmdldCgiRmxhZ3MiKTtOdW1iZXIuaXNJbnRlZ2VyKEgpfHwoSD0wKTtsZXQgTz1lLmdldCgiSXRhbGljQW5nbGUiKTsibnVtYmVyIiE9dHlwZW9mIE8mJihPPTApO2NvbnN0IFI9e3R5cGU6cixuYW1lOmgubmFtZSxzdWJ0eXBlOmcsZmlsZTpkLGxlbmd0aDE6YixsZW5ndGgyOncsbGVuZ3RoMzpqLGlzSW50ZXJuYWxGb250OmssbG9hZGVkTmFtZTphLmxvYWRlZE5hbWUsY29tcG9zaXRlOnMsZml4ZWRQaXRjaDohMSxmb250TWF0cml4OnYsZmlyc3RDaGFyOmksbGFzdENoYXI6byx0b1VuaWNvZGU6bCxiYm94OlMsYXNjZW50OngsZGVzY2VudDpDLHhIZWlnaHQ6RixjYXBIZWlnaHQ6VCxmbGFnczpILGl0YWxpY0FuZ2xlOk8saXNUeXBlM0ZvbnQ6Yyxjc3NGb250SW5mbzpmLHNjYWxlRmFjdG9yczp5LHN5c3RlbUZvbnRJbmZvOnF9O2lmKHMpe2NvbnN0IGU9YS5nZXQoIkVuY29kaW5nIik7ZSBpbnN0YW5jZW9mIE5hbWUmJihSLmNpZEVuY29kaW5nPWUubmFtZSk7Y29uc3QgdD1hd2FpdCBDTWFwRmFjdG9yeS5jcmVhdGUoe2VuY29kaW5nOmUsZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSk7Ui5jTWFwPXQ7Ui52ZXJ0aWNhbD1SLmNNYXAudmVydGljYWx9Y29uc3QgRD1hd2FpdCB0aGlzLmV4dHJhY3REYXRhU3RydWN0dXJlcyhuLFIpO3RoaXMuZXh0cmFjdFdpZHRocyhuLGUsRCk7cmV0dXJuIG5ldyBGb250KGgubmFtZSxkLEQsdGhpcy5vcHRpb25zKX1zdGF0aWMgYnVpbGRGb250UGF0aHMoZSx0LG4sYSl7ZnVuY3Rpb24gYnVpbGRQYXRoKHQpe2NvbnN0IHM9YCR7ZS5sb2FkZWROYW1lfV9wYXRoXyR7dH1gO3RyeXtpZihlLnJlbmRlcmVyLmhhc0J1aWx0UGF0aCh0KSlyZXR1cm47Y29uc3QgYT1Gb250UGF0aEluZm8ud3JpdGUoZS5yZW5kZXJlci5nZXRQYXRoSnModCkpO24uc2VuZCgiY29tbW9ub2JqIixbcywiRm9udFBhdGgiLGFdLFthXSl9Y2F0Y2goZSl7aWYoYS5pZ25vcmVFcnJvcnMpe3dhcm4oYGJ1aWxkRm9udFBhdGhzIC0gaWdub3JpbmcgJHtzfSBnbHlwaDogIiR7ZX0iLmApO3JldHVybn10aHJvdyBlfX1mb3IoY29uc3QgZSBvZiB0KXtidWlsZFBhdGgoZS5mb250Q2hhcik7Y29uc3QgdD1lLmFjY2VudDt0Py5mb250Q2hhciYmYnVpbGRQYXRoKHQuZm9udENoYXIpfX1zdGF0aWMgZ2V0IGZhbGxiYWNrRm9udERpY3QoKXtjb25zdCBlPW5ldyBEaWN0O2Uuc2V0KCJCYXNlRm9udCIsTmFtZS5nZXQoIkhlbHZldGljYSIpKTtlLnNldCgiVHlwZSIsTmFtZS5nZXQoIkZhbGxiYWNrVHlwZSIpKTtlLnNldCgiU3VidHlwZSIsTmFtZS5nZXQoIkZhbGxiYWNrVHlwZSIpKTtlLnNldCgiRW5jb2RpbmciLE5hbWUuZ2V0KCJXaW5BbnNpRW5jb2RpbmciKSk7cmV0dXJuIHNoYWRvdyh0aGlzLCJmYWxsYmFja0ZvbnREaWN0IixlKX19Y2xhc3MgVHJhbnNsYXRlZEZvbnR7I3VlPSExOyNtZT1udWxsO2NvbnN0cnVjdG9yKHtsb2FkZWROYW1lOmUsZm9udDp0LGRpY3Q6bn0pe3RoaXMubG9hZGVkTmFtZT1lO3RoaXMuZm9udD10O3RoaXMuZGljdD1uO3RoaXMudHlwZTNEZXBlbmRlbmNpZXM9dC5pc1R5cGUzRm9udD9uZXcgU2V0Om51bGx9c2VuZChlKXtpZih0aGlzLiN1ZSlyZXR1cm47dGhpcy4jdWU9ITA7Y29uc3QgdD10aGlzLmZvbnQuZXhwb3J0RGF0YSgpLG49W107aWYodC5kYXRhKXt0LmRhdGEuY2hhclByb2NPcGVyYXRvckxpc3QmJih0LmNoYXJQcm9jT3BlcmF0b3JMaXN0PXQuZGF0YS5jaGFyUHJvY09wZXJhdG9yTGlzdCk7dC5kYXRhPUZvbnRJbmZvLndyaXRlKHQuZGF0YSk7bi5wdXNoKHQuZGF0YSl9ZS5zZW5kKCJjb21tb25vYmoiLFt0aGlzLmxvYWRlZE5hbWUsIkZvbnQiLHRdLG4pfWZhbGxiYWNrKGUsdCl7aWYodGhpcy5mb250LmRhdGEpe3RoaXMuZm9udC5kaXNhYmxlRm9udEZhY2U9ITA7UGFydGlhbEV2YWx1YXRvci5idWlsZEZvbnRQYXRocyh0aGlzLmZvbnQsdGhpcy5mb250LmdseXBoQ2FjaGVWYWx1ZXMsZSx0KX19bG9hZFR5cGUzRGF0YShlLHQsbil7aWYodGhpcy4jbWUpcmV0dXJuIHRoaXMuI21lO2NvbnN0e2ZvbnQ6YSx0eXBlM0RlcGVuZGVuY2llczpzfT10aGlzO2Fzc2VydChhLmlzVHlwZTNGb250LCJNdXN0IGJlIGEgVHlwZTMgZm9udC4iKTtjb25zdCByPWUuY2xvbmUoe2lnbm9yZUVycm9yczohMX0pLGk9bmV3IFJlZlNldChlLnR5cGUzRm9udFJlZnMpO3RoaXMuZGljdC5vYmpJZCYmIWkuaGFzKHRoaXMuZGljdC5vYmpJZCkmJmkucHV0KHRoaXMuZGljdC5vYmpJZCk7ci50eXBlM0ZvbnRSZWZzPWk7bGV0IG89UHJvbWlzZS5yZXNvbHZlKCk7Y29uc3QgbD10aGlzLmRpY3QuZ2V0KCJDaGFyUHJvY3MiKSxmPXRoaXMuZGljdC5nZXQoIlJlc291cmNlcyIpfHx0LGM9T2JqZWN0LmNyZWF0ZShudWxsKSxbaCx1LG0scF09YS5iYm94LGQ9bS1oLGc9cC11LGI9TWF0aC5oeXBvdChkLGcpO2Zvcihjb25zdCBlIG9mIGwuZ2V0S2V5cygpKW89by50aGVuKCgpPT57Y29uc3QgdD1sLmdldChlKSxhPW5ldyBPcGVyYXRvckxpc3Q7cmV0dXJuIHIuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06dCx0YXNrOm4scmVzb3VyY2VzOmYsb3BlcmF0b3JMaXN0OmF9KS50aGVuKCgpPT57c3dpdGNoKGEuZm5BcnJheVswXSl7Y2FzZSBhdDp0aGlzLiNwZShhLGIpO2JyZWFrO2Nhc2UgbnQ6Ynx8dGhpcy4jZGUoYSl9Y1tlXT1hLmdldElSKCk7Zm9yKGNvbnN0IGUgb2YgYS5kZXBlbmRlbmNpZXMpcy5hZGQoZSl9KS5jYXRjaChmdW5jdGlvbih0KXt3YXJuKGBUeXBlMyBmb250IHJlc291cmNlICIke2V9IiBpcyBub3QgYXZhaWxhYmxlLmApO2NvbnN0IG49bmV3IE9wZXJhdG9yTGlzdDtjW2VdPW4uZ2V0SVIoKX0pfSk7dGhpcy4jbWU9by50aGVuKCgpPT57YS5jaGFyUHJvY09wZXJhdG9yTGlzdD1jO2lmKHRoaXMuX2Jib3gpe2EuaXNDaGFyQkJveD0hMDthLmJib3g9dGhpcy5fYmJveH19KTtyZXR1cm4gdGhpcy4jbWV9I3BlKGUsdD1OYU4pe2NvbnN0IG49VXRpbC5ub3JtYWxpemVSZWN0KGUuYXJnc0FycmF5WzBdLnNsaWNlKDIpKSxhPW5bMl0tblswXSxzPW5bM10tblsxXSxyPU1hdGguaHlwb3QoYSxzKTtpZigwPT09YXx8MD09PXMpe2UuZm5BcnJheS5zcGxpY2UoMCwxKTtlLmFyZ3NBcnJheS5zcGxpY2UoMCwxKX1lbHNlIGlmKDA9PT10fHxNYXRoLnJvdW5kKHIvdCk+PTEwKXt0aGlzLl9iYm94Pz89WzEvMCwxLzAsLTEvMCwtMS8wXTtVdGlsLnJlY3RCb3VuZGluZ0JveCguLi5uLHRoaXMuX2Jib3gpfWxldCBpPTAsbz1lLmxlbmd0aDtmb3IoO2k8bzspe3N3aXRjaChlLmZuQXJyYXlbaV0pe2Nhc2UgYXQ6YnJlYWs7Y2FzZSBzdDpjYXNlIHJ0OmNhc2UgaXQ6Y2FzZSBvdDpjYXNlIGx0OmNhc2UgZnQ6Y2FzZSBjdDpjYXNlIGh0OmNhc2UgdXQ6Y2FzZSBtdDpjYXNlIHB0OmNhc2UgZHQ6Y2FzZSBndDpjYXNlIGRlOmUuZm5BcnJheS5zcGxpY2UoaSwxKTtlLmFyZ3NBcnJheS5zcGxpY2UoaSwxKTtvLS07Y29udGludWU7Y2FzZSBiZTpjb25zdFt0XT1lLmFyZ3NBcnJheVtpXTtsZXQgbj0wLGE9dC5sZW5ndGg7Zm9yKDtuPGE7KXtjb25zdFtlXT10W25dO3N3aXRjaChlKXtjYXNlIlRSIjpjYXNlIlRSMiI6Y2FzZSJIVCI6Y2FzZSJCRyI6Y2FzZSJCRzIiOmNhc2UiVUNSIjpjYXNlIlVDUjIiOnQuc3BsaWNlKG4sMSk7YS0tO2NvbnRpbnVlfW4rK319aSsrfX0jZGUoZSl7bGV0IHQ9MTtjb25zdCBuPWUubGVuZ3RoO2Zvcig7dDxuOyl7aWYoZS5mbkFycmF5W3RdPT09VXQpe2NvbnN0IG49ZS5hcmdzQXJyYXlbdF1bMl07dGhpcy5fYmJveD8/PVsxLzAsMS8wLC0xLzAsLTEvMF07VXRpbC5yZWN0Qm91bmRpbmdCb3goLi4ubix0aGlzLl9iYm94KX10Kyt9fX1jbGFzcyBTdGF0ZU1hbmFnZXJ7Y29uc3RydWN0b3IoZT1uZXcgRXZhbFN0YXRlKXt0aGlzLnN0YXRlPWU7dGhpcy5zdGF0ZVN0YWNrPVtdfXNhdmUoKXtjb25zdCBlPXRoaXMuc3RhdGU7dGhpcy5zdGF0ZVN0YWNrLnB1c2godGhpcy5zdGF0ZSk7dGhpcy5zdGF0ZT1lLmNsb25lKCl9cmVzdG9yZSgpe2NvbnN0IGU9dGhpcy5zdGF0ZVN0YWNrLnBvcCgpO2UmJih0aGlzLnN0YXRlPWUpfXRyYW5zZm9ybShlKXt0aGlzLnN0YXRlLmN0bT1VdGlsLnRyYW5zZm9ybSh0aGlzLnN0YXRlLmN0bSxlKX19Y2xhc3MgVGV4dFN0YXRle2N0bT1uZXcgRmxvYXQzMkFycmF5KHBuKTtmb250TmFtZT1udWxsO2ZvbnRTaXplPTA7bG9hZGVkTmFtZT1udWxsO2ZvbnQ9bnVsbDtmb250TWF0cml4PXQ7dGV4dE1hdHJpeD1wbi5zbGljZSgpO3RleHRMaW5lTWF0cml4PXBuLnNsaWNlKCk7Y2hhclNwYWNpbmc9MDt3b3JkU3BhY2luZz0wO2xlYWRpbmc9MDt0ZXh0SFNjYWxlPTE7dGV4dFJpc2U9MDtzZXRUZXh0TWF0cml4KGUsdCxuLGEscyxyKXtjb25zdCBpPXRoaXMudGV4dE1hdHJpeDtpWzBdPWU7aVsxXT10O2lbMl09bjtpWzNdPWE7aVs0XT1zO2lbNV09cn1zZXRUZXh0TGluZU1hdHJpeChlLHQsbixhLHMscil7Y29uc3QgaT10aGlzLnRleHRMaW5lTWF0cml4O2lbMF09ZTtpWzFdPXQ7aVsyXT1uO2lbM109YTtpWzRdPXM7aVs1XT1yfXRyYW5zbGF0ZVRleHRNYXRyaXgoZSx0KXtjb25zdCBuPXRoaXMudGV4dE1hdHJpeDtuWzRdPW5bMF0qZStuWzJdKnQrbls0XTtuWzVdPW5bMV0qZStuWzNdKnQrbls1XX10cmFuc2xhdGVUZXh0TGluZU1hdHJpeChlLHQpe2NvbnN0IG49dGhpcy50ZXh0TGluZU1hdHJpeDtuWzRdPW5bMF0qZStuWzJdKnQrbls0XTtuWzVdPW5bMV0qZStuWzNdKnQrbls1XX1jYXJyaWFnZVJldHVybigpe3RoaXMudHJhbnNsYXRlVGV4dExpbmVNYXRyaXgoMCwtdGhpcy5sZWFkaW5nKTt0aGlzLnRleHRNYXRyaXg9dGhpcy50ZXh0TGluZU1hdHJpeC5zbGljZSgpfWNsb25lKCl7Y29uc3QgZT1PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUodGhpcyksdGhpcyk7ZS50ZXh0TWF0cml4PXRoaXMudGV4dE1hdHJpeC5zbGljZSgpO2UudGV4dExpbmVNYXRyaXg9dGhpcy50ZXh0TGluZU1hdHJpeC5zbGljZSgpO2UuZm9udE1hdHJpeD10aGlzLmZvbnRNYXRyaXguc2xpY2UoKTtyZXR1cm4gZX19Y2xhc3MgRXZhbFN0YXRle2N0bT1uZXcgRmxvYXQzMkFycmF5KHBuKTtmb250PW51bGw7dGV4dFJlbmRlcmluZ01vZGU9djtfZmlsbENvbG9yU3BhY2U9Q29sb3JTcGFjZVV0aWxzLmdyYXk7X3N0cm9rZUNvbG9yU3BhY2U9Q29sb3JTcGFjZVV0aWxzLmdyYXk7cGF0dGVybkZpbGxDb2xvclNwYWNlPW51bGw7cGF0dGVyblN0cm9rZUNvbG9yU3BhY2U9bnVsbDtjdXJyZW50UG9pbnRYPTA7Y3VycmVudFBvaW50WT0wO3BhdGhNaW5NYXg9bmV3IEZsb2F0MzJBcnJheShbMS8wLDEvMCwtMS8wLC0xLzBdKTtwYXRoQnVmZmVyPVtdO2dldCBmaWxsQ29sb3JTcGFjZSgpe3JldHVybiB0aGlzLl9maWxsQ29sb3JTcGFjZX1zZXQgZmlsbENvbG9yU3BhY2UoZSl7dGhpcy5fZmlsbENvbG9yU3BhY2U9dGhpcy5wYXR0ZXJuRmlsbENvbG9yU3BhY2U9ZX1nZXQgc3Ryb2tlQ29sb3JTcGFjZSgpe3JldHVybiB0aGlzLl9zdHJva2VDb2xvclNwYWNlfXNldCBzdHJva2VDb2xvclNwYWNlKGUpe3RoaXMuX3N0cm9rZUNvbG9yU3BhY2U9dGhpcy5wYXR0ZXJuU3Ryb2tlQ29sb3JTcGFjZT1lfWNsb25lKHtuZXdQYXRoOmU9ITF9PXt9KXtjb25zdCB0PU9iamVjdC5jcmVhdGUodGhpcyk7aWYoZSl7dC5wYXRoQnVmZmVyPVtdO3QucGF0aE1pbk1heD1uZXcgRmxvYXQzMkFycmF5KFsxLzAsMS8wLC0xLzAsLTEvMF0pfXJldHVybiB0fX1jbGFzcyBFdmFsdWF0b3JQcmVwcm9jZXNzb3J7c3RhdGljIGdldCBvcE1hcCgpe3JldHVybiBzaGFkb3codGhpcywib3BNYXAiLE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx7dzp7aWQ6Y2UsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sSjp7aWQ6aGUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sajp7aWQ6dWUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sTTp7aWQ6bWUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sZDp7aWQ6cGUsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0scmk6e2lkOmRlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGk6e2lkOmdlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGdzOntpZDpiZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxxOntpZDp3ZSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxROntpZDpqZSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxjbTp7aWQ6a2UsbnVtQXJnczo2LHZhcmlhYmxlQXJnczohMX0sbTp7aWQ6eWUsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sbDp7aWQ6cWUsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sYzp7aWQ6dmUsbnVtQXJnczo2LHZhcmlhYmxlQXJnczohMX0sdjp7aWQ6U2UsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0seTp7aWQ6eGUsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0saDp7aWQ6QWUsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0scmU6e2lkOkNlLG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITF9LFM6e2lkOkllLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LHM6e2lkOkZlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LGY6e2lkOlRlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEY6e2lkOlRlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJmKiI6e2lkOkhlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEI6e2lkOk9lLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJCKiI6e2lkOkJlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LGI6e2lkOlJlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJiKiI6e2lkOkRlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LG46e2lkOk1lLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFc6e2lkOlBlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJXKiI6e2lkOkVlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEJUOntpZDpOZSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxFVDp7aWQ6emUsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sVGM6e2lkOkxlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFR3OntpZDpVZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUejp7aWQ6X2UsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVEw6e2lkOlhlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRmOntpZDpXZSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxUcjp7aWQ6S2UsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVHM6e2lkOkdlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRkOntpZDpWZSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxURDp7aWQ6JGUsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sVG06e2lkOlllLG51bUFyZ3M6Nix2YXJpYWJsZUFyZ3M6ITF9LCJUKiI6e2lkOkplLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFRqOntpZDpRZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUSjp7aWQ6WmUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sIiciOntpZDpldCxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSwnIic6e2lkOnR0LG51bUFyZ3M6Myx2YXJpYWJsZUFyZ3M6ITF9LGQwOntpZDpudCxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxkMTp7aWQ6YXQsbnVtQXJnczo2LHZhcmlhYmxlQXJnczohMX0sQ1M6e2lkOnN0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGNzOntpZDpydCxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxTQzp7aWQ6aXQsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMH0sU0NOOntpZDpvdCxudW1BcmdzOjMzLHZhcmlhYmxlQXJnczohMH0sc2M6e2lkOmx0LG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITB9LHNjbjp7aWQ6ZnQsbnVtQXJnczozMyx2YXJpYWJsZUFyZ3M6ITB9LEc6e2lkOmN0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGc6e2lkOmh0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFJHOntpZDp1dCxudW1BcmdzOjMsdmFyaWFibGVBcmdzOiExfSxyZzp7aWQ6bXQsbnVtQXJnczozLHZhcmlhYmxlQXJnczohMX0sSzp7aWQ6cHQsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sazp7aWQ6ZHQsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sc2g6e2lkOmd0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LEJJOntpZDpidCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxJRDp7aWQ6d3QsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sRUk6e2lkOmp0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LERvOntpZDprdCxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxNUDp7aWQ6eXQsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sRFA6e2lkOnF0LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LEJNQzp7aWQ6dnQsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sQkRDOntpZDpTdCxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxFTUM6e2lkOnh0LG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEJYOntpZDpBdCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxFWDp7aWQ6Q3QsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sQk06bnVsbCxCRDpudWxsLHRydWU6bnVsbCxmYTpudWxsLGZhbDpudWxsLGZhbHM6bnVsbCxmYWxzZTpudWxsLG51Om51bGwsbnVsOm51bGwsbnVsbDpudWxsfSkpfXN0YXRpYyBNQVhfSU5WQUxJRF9QQVRIX09QUz0xMDtjb25zdHJ1Y3RvcihlLHQsbj1uZXcgU3RhdGVNYW5hZ2VyKXt0aGlzLnBhcnNlcj1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIoZSxFdmFsdWF0b3JQcmVwcm9jZXNzb3Iub3BNYXApLHhyZWY6dH0pO3RoaXMuc3RhdGVNYW5hZ2VyPW47dGhpcy5ub25Qcm9jZXNzZWRBcmdzPVtdO3RoaXMuX2lzUGF0aE9wPSExO3RoaXMuX251bUludmFsaWRQYXRoT1BTPTB9Z2V0IHNhdmVkU3RhdGVzRGVwdGgoKXtyZXR1cm4gdGhpcy5zdGF0ZU1hbmFnZXIuc3RhdGVTdGFjay5sZW5ndGh9cmVhZChlKXtsZXQgdD1lLmFyZ3M7Zm9yKDs7KXtjb25zdCBuPXRoaXMucGFyc2VyLmdldE9iaigpO2lmKG4gaW5zdGFuY2VvZiBDbWQpe2NvbnN0IGE9bi5jbWQscz1FdmFsdWF0b3JQcmVwcm9jZXNzb3Iub3BNYXBbYV07aWYoIXMpe3dhcm4oYFVua25vd24gY29tbWFuZCAiJHthfSIuYCk7Y29udGludWV9Y29uc3Qgcj1zLmlkLGk9cy5udW1BcmdzO2xldCBvPW51bGwhPT10P3QubGVuZ3RoOjA7dGhpcy5faXNQYXRoT3B8fCh0aGlzLl9udW1JbnZhbGlkUGF0aE9QUz0wKTt0aGlzLl9pc1BhdGhPcD1yPj15ZSYmcjw9TWU7aWYocy52YXJpYWJsZUFyZ3Mpbz5pJiZpbmZvKGBDb21tYW5kICR7YX06IGV4cGVjdGVkIFswLCAke2l9XSBhcmdzLCBidXQgcmVjZWl2ZWQgJHtvfSBhcmdzLmApO2Vsc2V7aWYobyE9PWkpe2NvbnN0IGU9dGhpcy5ub25Qcm9jZXNzZWRBcmdzO2Zvcig7bz5pOyl7ZS5wdXNoKHQuc2hpZnQoKSk7by0tfWZvcig7bzxpJiYwIT09ZS5sZW5ndGg7KXtudWxsPT09dCYmKHQ9W10pO3QudW5zaGlmdChlLnBvcCgpKTtvKyt9fWlmKG88aSl7Y29uc3QgZT1gY29tbWFuZCAke2F9OiBleHBlY3RlZCAke2l9IGFyZ3MsIGJ1dCByZWNlaXZlZCAke299IGFyZ3MuYDtpZih0aGlzLl9pc1BhdGhPcCYmKyt0aGlzLl9udW1JbnZhbGlkUGF0aE9QUz5FdmFsdWF0b3JQcmVwcm9jZXNzb3IuTUFYX0lOVkFMSURfUEFUSF9PUFMpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkICR7ZX1gKTt3YXJuKGBTa2lwcGluZyAke2V9YCk7bnVsbCE9PXQmJih0Lmxlbmd0aD0wKTtjb250aW51ZX19dGhpcy5wcmVwcm9jZXNzQ29tbWFuZChyLHQpO2UuZm49cjtlLmFyZ3M9dDtyZXR1cm4hMH1pZihuPT09b24pcmV0dXJuITE7aWYobnVsbCE9PW4pe251bGw9PT10JiYodD1bXSk7dC5wdXNoKG4pO2lmKHQubGVuZ3RoPjMzKXRocm93IG5ldyBGb3JtYXRFcnJvcigiVG9vIG1hbnkgYXJndW1lbnRzIil9fX1wcmVwcm9jZXNzQ29tbWFuZChlLHQpe3N3aXRjaCgwfGUpe2Nhc2Ugd2U6dGhpcy5zdGF0ZU1hbmFnZXIuc2F2ZSgpO2JyZWFrO2Nhc2UgamU6dGhpcy5zdGF0ZU1hbmFnZXIucmVzdG9yZSgpO2JyZWFrO2Nhc2Uga2U6dGhpcy5zdGF0ZU1hbmFnZXIudHJhbnNmb3JtKHQpfX19Y2xhc3MgRGVmYXVsdEFwcGVhcmFuY2VFdmFsdWF0b3IgZXh0ZW5kcyBFdmFsdWF0b3JQcmVwcm9jZXNzb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIobmV3IFN0cmluZ1N0cmVhbShlKSl9cGFyc2UoKXtjb25zdCBlPXtmbjowLGFyZ3M6W119LHQ9e2ZvbnRTaXplOjAsZm9udE5hbWU6IiIsZm9udENvbG9yOm5ldyBVaW50OENsYW1wZWRBcnJheSgzKX07dHJ5e2Zvcig7Oyl7ZS5hcmdzLmxlbmd0aD0wO2lmKCF0aGlzLnJlYWQoZSkpYnJlYWs7aWYoMCE9PXRoaXMuc2F2ZWRTdGF0ZXNEZXB0aCljb250aW51ZTtjb25zdHtmbjpuLGFyZ3M6YX09ZTtzd2l0Y2goMHxuKXtjYXNlIFdlOmNvbnN0W2Usbl09YTtlIGluc3RhbmNlb2YgTmFtZSYmKHQuZm9udE5hbWU9ZS5uYW1lKTsibnVtYmVyIj09dHlwZW9mIG4mJm4+MCYmKHQuZm9udFNpemU9bik7YnJlYWs7Y2FzZSBtdDpDb2xvclNwYWNlVXRpbHMucmdiLmdldFJnYkl0ZW0oYSwwLHQuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgaHQ6Q29sb3JTcGFjZVV0aWxzLmdyYXkuZ2V0UmdiSXRlbShhLDAsdC5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSBkdDpDb2xvclNwYWNlVXRpbHMuY215ay5nZXRSZ2JJdGVtKGEsMCx0LmZvbnRDb2xvciwwKX19fWNhdGNoKGUpe3dhcm4oYHBhcnNlRGVmYXVsdEFwcGVhcmFuY2UgLSBpZ25vcmluZyBlcnJvcnM6ICIke2V9Ii5gKX1yZXR1cm4gdH19ZnVuY3Rpb24gcGFyc2VEZWZhdWx0QXBwZWFyYW5jZShlKXtyZXR1cm4gbmV3IERlZmF1bHRBcHBlYXJhbmNlRXZhbHVhdG9yKGUpLnBhcnNlKCl9Y2xhc3MgQXBwZWFyYW5jZVN0cmVhbUV2YWx1YXRvciBleHRlbmRzIEV2YWx1YXRvclByZXByb2Nlc3Nvcntjb25zdHJ1Y3RvcihlLHQsbixhKXtzdXBlcihlKTt0aGlzLnN0cmVhbT1lO3RoaXMuZXZhbHVhdG9yT3B0aW9ucz10O3RoaXMueHJlZj1uO3RoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlPWE7dGhpcy5yZXNvdXJjZXM9ZS5kaWN0Py5nZXQoIlJlc291cmNlcyIpfXBhcnNlKCl7Y29uc3QgZT17Zm46MCxhcmdzOltdfTtsZXQgdD17c2NhbGVGYWN0b3I6MSxmb250U2l6ZTowLGZvbnROYW1lOiIiLGZvbnRDb2xvcjpuZXcgVWludDhDbGFtcGVkQXJyYXkoMyksZmlsbENvbG9yU3BhY2U6Q29sb3JTcGFjZVV0aWxzLmdyYXl9LG49ITE7Y29uc3QgYT1bXTt0cnl7Zm9yKDs7KXtlLmFyZ3MubGVuZ3RoPTA7aWYobnx8IXRoaXMucmVhZChlKSlicmVhaztjb25zdHtmbjpzLGFyZ3M6cn09ZTtzd2l0Y2goMHxzKXtjYXNlIHdlOmEucHVzaCh7c2NhbGVGYWN0b3I6dC5zY2FsZUZhY3Rvcixmb250U2l6ZTp0LmZvbnRTaXplLGZvbnROYW1lOnQuZm9udE5hbWUsZm9udENvbG9yOnQuZm9udENvbG9yLnNsaWNlKCksZmlsbENvbG9yU3BhY2U6dC5maWxsQ29sb3JTcGFjZX0pO2JyZWFrO2Nhc2UgamU6dD1hLnBvcCgpfHx0O2JyZWFrO2Nhc2UgWWU6dC5zY2FsZUZhY3Rvcio9TWF0aC5oeXBvdChyWzBdLHJbMV0pO2JyZWFrO2Nhc2UgV2U6Y29uc3RbZSxzXT1yO2UgaW5zdGFuY2VvZiBOYW1lJiYodC5mb250TmFtZT1lLm5hbWUpOyJudW1iZXIiPT10eXBlb2YgcyYmcz4wJiYodC5mb250U2l6ZT1zKnQuc2NhbGVGYWN0b3IpO2JyZWFrO2Nhc2UgcnQ6dC5maWxsQ29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMucGFyc2Uoe2NzOnJbMF0seHJlZjp0aGlzLnhyZWYscmVzb3VyY2VzOnRoaXMucmVzb3VyY2VzLHBkZkZ1bmN0aW9uRmFjdG9yeTp0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnRoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnRoaXMuX2xvY2FsQ29sb3JTcGFjZUNhY2hlfSk7YnJlYWs7Y2FzZSBsdDp0LmZpbGxDb2xvclNwYWNlLmdldFJnYkl0ZW0ociwwLHQuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgbXQ6Q29sb3JTcGFjZVV0aWxzLnJnYi5nZXRSZ2JJdGVtKHIsMCx0LmZvbnRDb2xvciwwKTticmVhaztjYXNlIGh0OkNvbG9yU3BhY2VVdGlscy5ncmF5LmdldFJnYkl0ZW0ociwwLHQuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgZHQ6Q29sb3JTcGFjZVV0aWxzLmNteWsuZ2V0UmdiSXRlbShyLDAsdC5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSBRZTpjYXNlIFplOmNhc2UgZXQ6Y2FzZSB0dDpuPSEwfX19Y2F0Y2goZSl7d2FybihgcGFyc2VBcHBlYXJhbmNlU3RyZWFtIC0gaWdub3JpbmcgZXJyb3JzOiAiJHtlfSIuYCl9dGhpcy5zdHJlYW0ucmVzZXQoKTtkZWxldGUgdC5zY2FsZUZhY3RvcjtkZWxldGUgdC5maWxsQ29sb3JTcGFjZTtyZXR1cm4gdH1nZXQgX2xvY2FsQ29sb3JTcGFjZUNhY2hlKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJfbG9jYWxDb2xvclNwYWNlQ2FjaGUiLG5ldyBMb2NhbENvbG9yU3BhY2VDYWNoZSl9Z2V0IF9wZGZGdW5jdGlvbkZhY3RvcnkoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9wZGZGdW5jdGlvbkZhY3RvcnkiLG5ldyBQREZGdW5jdGlvbkZhY3Rvcnkoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLmV2YWx1YXRvck9wdGlvbnMuaXNFdmFsU3VwcG9ydGVkfSkpfX1mdW5jdGlvbiBnZXRQZGZDb2xvcihlLHQpe2lmKGVbMF09PT1lWzFdJiZlWzFdPT09ZVsyXSl7cmV0dXJuYCR7bnVtYmVyVG9TdHJpbmcoZVswXS8yNTUpfSAke3Q/ImciOiJHIn1gfXJldHVybiBBcnJheS5mcm9tKGUsZT0+bnVtYmVyVG9TdHJpbmcoZS8yNTUpKS5qb2luKCIgIikrIiAiKyh0PyJyZyI6IlJHIil9Y2xhc3MgRmFrZVVuaWNvZGVGb250e2NvbnN0cnVjdG9yKGUsdCl7dGhpcy54cmVmPWU7dGhpcy53aWR0aHM9bnVsbDt0aGlzLmZpcnN0Q2hhcj0xLzA7dGhpcy5sYXN0Q2hhcj0tMS8wO3RoaXMuZm9udEZhbWlseT10O2NvbnN0IG49bmV3IE9mZnNjcmVlbkNhbnZhcygxLDEpO3RoaXMuY3R4TWVhc3VyZT1uLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSk7RmFrZVVuaWNvZGVGb250Ll9mb250TmFtZUlkfHwoRmFrZVVuaWNvZGVGb250Ll9mb250TmFtZUlkPTEpO3RoaXMuZm9udE5hbWU9TmFtZS5nZXQoYEludmFsaWRQREZqc0ZvbnRfJHt0fV8ke0Zha2VVbmljb2RlRm9udC5fZm9udE5hbWVJZCsrfWApfWdldCBmb250RGVzY3JpcHRvclJlZigpe2lmKCFGYWtlVW5pY29kZUZvbnQuX2ZvbnREZXNjcmlwdG9yUmVmKXtjb25zdCBlPW5ldyBEaWN0KHRoaXMueHJlZik7ZS5zZXRJZk5hbWUoIlR5cGUiLCJGb250RGVzY3JpcHRvciIpO2Uuc2V0KCJGb250TmFtZSIsdGhpcy5mb250TmFtZSk7ZS5zZXQoIkZvbnRGYW1pbHkiLCJNeXJpYWRQcm8gUmVndWxhciIpO2Uuc2V0KCJGb250QkJveCIsWzAsMCwwLDBdKTtlLnNldElmTmFtZSgiRm9udFN0cmV0Y2giLCJOb3JtYWwiKTtlLnNldCgiRm9udFdlaWdodCIsNDAwKTtlLnNldCgiSXRhbGljQW5nbGUiLDApO0Zha2VVbmljb2RlRm9udC5fZm9udERlc2NyaXB0b3JSZWY9dGhpcy54cmVmLmdldE5ld1BlcnNpc3RlbnRSZWYoZSl9cmV0dXJuIEZha2VVbmljb2RlRm9udC5fZm9udERlc2NyaXB0b3JSZWZ9Z2V0IGRlc2NlbmRhbnRGb250UmVmKCl7Y29uc3QgZT1uZXcgRGljdCh0aGlzLnhyZWYpO2Uuc2V0KCJCYXNlRm9udCIsdGhpcy5mb250TmFtZSk7ZS5zZXRJZk5hbWUoIlR5cGUiLCJGb250Iik7ZS5zZXRJZk5hbWUoIlN1YnR5cGUiLCJDSURGb250VHlwZTAiKTtlLnNldElmTmFtZSgiQ0lEVG9HSURNYXAiLCJJZGVudGl0eSIpO2Uuc2V0KCJGaXJzdENoYXIiLHRoaXMuZmlyc3RDaGFyKTtlLnNldCgiTGFzdENoYXIiLHRoaXMubGFzdENoYXIpO2Uuc2V0KCJGb250RGVzY3JpcHRvciIsdGhpcy5mb250RGVzY3JpcHRvclJlZik7ZS5zZXQoIkRXIiwxZTMpO2NvbnN0IHQ9W10sbj1bLi4udGhpcy53aWR0aHNdLnNvcnQoKTtsZXQgYT1udWxsLHM9bnVsbDtmb3IoY29uc3RbZSxyXW9mIG4paWYoYSlpZihlPT09YStzLmxlbmd0aClzLnB1c2gocik7ZWxzZXt0LnB1c2goYSxzKTthPWU7cz1bcl19ZWxzZXthPWU7cz1bcl19YSYmdC5wdXNoKGEscyk7ZS5zZXQoIlciLHQpO2NvbnN0IHI9bmV3IERpY3QodGhpcy54cmVmKTtyLnNldCgiT3JkZXJpbmciLCJJZGVudGl0eSIpO3Iuc2V0KCJSZWdpc3RyeSIsIkFkb2JlIik7ci5zZXQoIlN1cHBsZW1lbnQiLDApO2Uuc2V0KCJDSURTeXN0ZW1JbmZvIixyKTtyZXR1cm4gdGhpcy54cmVmLmdldE5ld1BlcnNpc3RlbnRSZWYoZSl9Z2V0IGJhc2VGb250UmVmKCl7Y29uc3QgZT1uZXcgRGljdCh0aGlzLnhyZWYpO2Uuc2V0KCJCYXNlRm9udCIsdGhpcy5mb250TmFtZSk7ZS5zZXRJZk5hbWUoIlR5cGUiLCJGb250Iik7ZS5zZXRJZk5hbWUoIlN1YnR5cGUiLCJUeXBlMCIpO2Uuc2V0SWZOYW1lKCJFbmNvZGluZyIsIklkZW50aXR5LUgiKTtlLnNldCgiRGVzY2VuZGFudEZvbnRzIixbdGhpcy5kZXNjZW5kYW50Rm9udFJlZl0pO2Uuc2V0SWZOYW1lKCJUb1VuaWNvZGUiLCJJZGVudGl0eS1IIik7cmV0dXJuIHRoaXMueHJlZi5nZXROZXdQZXJzaXN0ZW50UmVmKGUpfWdldCByZXNvdXJjZXMoKXtjb25zdCBlPW5ldyBEaWN0KHRoaXMueHJlZiksdD1uZXcgRGljdCh0aGlzLnhyZWYpO3Quc2V0KHRoaXMuZm9udE5hbWUubmFtZSx0aGlzLmJhc2VGb250UmVmKTtlLnNldCgiRm9udCIsdCk7cmV0dXJuIGV9X2NyZWF0ZUNvbnRleHQoKXt0aGlzLndpZHRocz1uZXcgTWFwO3RoaXMuY3R4TWVhc3VyZS5mb250PWAxMDAwcHggJHt0aGlzLmZvbnRGYW1pbHl9YDtyZXR1cm4gdGhpcy5jdHhNZWFzdXJlfWNyZWF0ZUZvbnRSZXNvdXJjZXMoZSl7Y29uc3QgdD10aGlzLl9jcmVhdGVDb250ZXh0KCk7Zm9yKGNvbnN0IG4gb2YgZS5zcGxpdCgvXHJcbj98XG4vKSlmb3IoY29uc3QgZSBvZiBuLnNwbGl0KCIiKSl7Y29uc3Qgbj1lLmNoYXJDb2RlQXQoMCk7aWYodGhpcy53aWR0aHMuaGFzKG4pKWNvbnRpbnVlO2NvbnN0IGE9dC5tZWFzdXJlVGV4dChlKSxzPU1hdGguY2VpbChhLndpZHRoKTt0aGlzLndpZHRocy5zZXQobixzKTt0aGlzLmZpcnN0Q2hhcj1NYXRoLm1pbihuLHRoaXMuZmlyc3RDaGFyKTt0aGlzLmxhc3RDaGFyPU1hdGgubWF4KG4sdGhpcy5sYXN0Q2hhcil9cmV0dXJuIHRoaXMucmVzb3VyY2VzfXN0YXRpYyBnZXRGaXJzdFBvc2l0aW9uSW5mbyhlLHQscyl7Y29uc3RbcixpLG8sbF09ZTtsZXQgZj1vLXIsYz1sLWk7dCUxODAhPTAmJihbZixjXT1bYyxmXSk7Y29uc3QgaD1uKnM7cmV0dXJue2Nvb3JkczpbMCxjK2Eqcy1oXSxiYm94OlswLDAsZixjXSxtYXRyaXg6MCE9PXQ/Z2V0Um90YXRpb25NYXRyaXgodCxjLGgpOnZvaWQgMH19Y3JlYXRlQXBwZWFyYW5jZShlLHQscyxyLGksbyl7Y29uc3QgbD10aGlzLl9jcmVhdGVDb250ZXh0KCksZj1bXTtsZXQgYz0tMS8wO2Zvcihjb25zdCB0IG9mIGUuc3BsaXQoL1xyXG4/fFxuLykpe2YucHVzaCh0KTtjb25zdCBlPWwubWVhc3VyZVRleHQodCkud2lkdGg7Yz1NYXRoLm1heChjLGUpO2Zvcihjb25zdCBlIG9mIGNvZGVQb2ludEl0ZXIodCkpe2NvbnN0IHQ9U3RyaW5nLmZyb21Db2RlUG9pbnQoZSk7bGV0IG49dGhpcy53aWR0aHMuZ2V0KGUpO2lmKHZvaWQgMD09PW4pe2NvbnN0IGE9bC5tZWFzdXJlVGV4dCh0KTtuPU1hdGguY2VpbChhLndpZHRoKTt0aGlzLndpZHRocy5zZXQoZSxuKTt0aGlzLmZpcnN0Q2hhcj1NYXRoLm1pbihlLHRoaXMuZmlyc3RDaGFyKTt0aGlzLmxhc3RDaGFyPU1hdGgubWF4KGUsdGhpcy5sYXN0Q2hhcil9fX1jKj1yLzFlMztjb25zdFtoLHUsbSxwXT10O2xldCBkPW0taCxnPXAtdTtzJTE4MCE9MCYmKFtkLGddPVtnLGRdKTtsZXQgYj0xO2M+ZCYmKGI9ZC9jKTtsZXQgdz0xO2NvbnN0IGo9bipyLGs9YSpyLHk9aipmLmxlbmd0aDt5PmcmJih3PWcveSk7Y29uc3QgcT1yKk1hdGgubWluKGIsdyksdj1bInEiLGAwIDAgJHtudW1iZXJUb1N0cmluZyhkKX0gJHtudW1iZXJUb1N0cmluZyhnKX0gcmUgVyBuYCwiQlQiLGAxIDAgMCAxIDAgJHtudW1iZXJUb1N0cmluZyhnK2spfSBUbSAwIFRjICR7Z2V0UGRmQ29sb3IoaSwhMCl9YCxgLyR7dGhpcy5mb250TmFtZS5uYW1lfSAke251bWJlclRvU3RyaW5nKHEpfSBUZmBdLHtyZXNvdXJjZXM6U309dGhpcztpZigxIT09KG89Im51bWJlciI9PXR5cGVvZiBvJiZvPj0wJiZvPD0xP286MSkpe3YucHVzaCgiL1IwIGdzIik7Y29uc3QgZT1uZXcgRGljdCh0aGlzLnhyZWYpLHQ9bmV3IERpY3QodGhpcy54cmVmKTt0LnNldCgiY2EiLG8pO3Quc2V0KCJDQSIsbyk7dC5zZXRJZk5hbWUoIlR5cGUiLCJFeHRHU3RhdGUiKTtlLnNldCgiUjAiLHQpO1Muc2V0KCJFeHRHU3RhdGUiLGUpfWNvbnN0IHg9bnVtYmVyVG9TdHJpbmcoaik7Zm9yKGNvbnN0IGUgb2YgZil2LnB1c2goYDAgLSR7eH0gVGQgPCR7c3RyaW5nVG9VVEYxNkhleFN0cmluZyhlKX0+IFRqYCk7di5wdXNoKCJFVCIsIlEiKTtjb25zdCBDPXYuam9pbigiXG4iKSxGPW5ldyBEaWN0KHRoaXMueHJlZik7Ri5zZXRJZk5hbWUoIlN1YnR5cGUiLCJGb3JtIik7Ri5zZXRJZk5hbWUoIlR5cGUiLCJYT2JqZWN0Iik7Ri5zZXQoIkJCb3giLFswLDAsZCxnXSk7Ri5zZXQoIkxlbmd0aCIsQy5sZW5ndGgpO0Yuc2V0KCJSZXNvdXJjZXMiLFMpO2lmKHMpe2NvbnN0IGU9Z2V0Um90YXRpb25NYXRyaXgocyxkLGcpO0Yuc2V0KCJNYXRyaXgiLGUpfWNvbnN0IFQ9bmV3IFN0cmluZ1N0cmVhbShDKTtULmRpY3Q9RjtyZXR1cm4gVH19Y29uc3QgdnI9WyJtL2QiLCJtL2QveXkiLCJtbS9kZC95eSIsIm1tL3l5IiwiZC1tbW0iLCJkLW1tbS15eSIsImRkLW1tbS15eSIsInl5LW1tLWRkIiwibW1tLXl5IiwibW1tbS15eSIsIm1tbSBkLCB5eXl5IiwibW1tbSBkLCB5eXl5IiwibS9kL3l5IGg6TU0gdHQiLCJtL2QveXkgSEg6TU0iXSxTcj1bIkhIOk1NIiwiaDpNTSB0dCIsIkhIOk1NOnNzIiwiaDpNTTpzcyB0dCJdO2NsYXNzIE5hbWVPck51bWJlclRyZWV7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMucm9vdD1lO3RoaXMueHJlZj10O3RoaXMuX3R5cGU9bn1nZXRBbGwoZT0hMSl7Y29uc3QgdD1uZXcgTWFwO2lmKCF0aGlzLnJvb3QpcmV0dXJuIHQ7Y29uc3Qgbj10aGlzLnhyZWYsYT1uZXcgUmVmU2V0O2EucHV0KHRoaXMucm9vdCk7Y29uc3Qgcz1bdGhpcy5yb290XTtmb3IoO3MubGVuZ3RoPjA7KXtjb25zdCByPW4uZmV0Y2hJZlJlZihzLnNoaWZ0KCkpO2lmKCEociBpbnN0YW5jZW9mIERpY3QpKWNvbnRpbnVlO2lmKHIuaGFzKCJLaWRzIikpe2NvbnN0IGU9ci5nZXQoIktpZHMiKTtpZighQXJyYXkuaXNBcnJheShlKSljb250aW51ZTtmb3IoY29uc3QgdCBvZiBlKXtpZihhLmhhcyh0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYER1cGxpY2F0ZSBlbnRyeSBpbiAiJHt0aGlzLl90eXBlfSIgdHJlZS5gKTtzLnB1c2godCk7YS5wdXQodCl9Y29udGludWV9Y29uc3QgaT1yLmdldCh0aGlzLl90eXBlKTtpZihBcnJheS5pc0FycmF5KGkpKWZvcihsZXQgYT0wLHM9aS5sZW5ndGg7YTxzO2ErPTIpdC5zZXQobi5mZXRjaElmUmVmKGlbYV0pLGU/aVthKzFdOm4uZmV0Y2hJZlJlZihpW2ErMV0pKX1yZXR1cm4gdH1nZXRSYXcoZSl7aWYoIXRoaXMucm9vdClyZXR1cm4gbnVsbDtjb25zdCB0PXRoaXMueHJlZjtsZXQgbj10LmZldGNoSWZSZWYodGhpcy5yb290KSxhPTA7Zm9yKDtuLmhhcygiS2lkcyIpOyl7aWYoKythPjEwKXt3YXJuKGBTZWFyY2ggZGVwdGggbGltaXQgcmVhY2hlZCBmb3IgIiR7dGhpcy5fdHlwZX0iIHRyZWUuYCk7cmV0dXJuIG51bGx9Y29uc3Qgcz1uLmdldCgiS2lkcyIpO2lmKCFBcnJheS5pc0FycmF5KHMpKXJldHVybiBudWxsO2xldCByPTAsaT1zLmxlbmd0aC0xO2Zvcig7cjw9aTspe2NvbnN0IGE9citpPj4xLG89dC5mZXRjaElmUmVmKHNbYV0pLGw9by5nZXQoIkxpbWl0cyIpO2lmKGU8dC5mZXRjaElmUmVmKGxbMF0pKWk9YS0xO2Vsc2V7aWYoIShlPnQuZmV0Y2hJZlJlZihsWzFdKSkpe249bzticmVha31yPWErMX19aWYocj5pKXJldHVybiBudWxsfWNvbnN0IHM9bi5nZXQodGhpcy5fdHlwZSk7aWYoQXJyYXkuaXNBcnJheShzKSl7bGV0IG49MCxhPXMubGVuZ3RoLTI7Zm9yKDtuPD1hOyl7Y29uc3Qgcj1uK2E+PjEsaT1yKygxJnIpLG89dC5mZXRjaElmUmVmKHNbaV0pO2lmKGU8bylhPWktMjtlbHNle2lmKCEoZT5vKSlyZXR1cm4gc1tpKzFdO249aSsyfX19cmV0dXJuIG51bGx9Z2V0KGUpe3JldHVybiB0aGlzLnhyZWYuZmV0Y2hJZlJlZih0aGlzLmdldFJhdyhlKSl9fWNsYXNzIE5hbWVUcmVlIGV4dGVuZHMgTmFtZU9yTnVtYmVyVHJlZXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCwiTmFtZXMiKX19Y2xhc3MgTnVtYmVyVHJlZSBleHRlbmRzIE5hbWVPck51bWJlclRyZWV7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQsIk51bXMiKX19ZnVuY3Rpb24gY2xlYXJHbG9iYWxDYWNoZXMoKXshZnVuY3Rpb24gY2xlYXJQYXR0ZXJuQ2FjaGVzKCl7Z3M9T2JqZWN0LmNyZWF0ZShudWxsKX0oKTshZnVuY3Rpb24gY2xlYXJQcmltaXRpdmVDYWNoZXMoKXtsbj1PYmplY3QuY3JlYXRlKG51bGwpO2ZuPU9iamVjdC5jcmVhdGUobnVsbCk7Y249T2JqZWN0LmNyZWF0ZShudWxsKX0oKTshZnVuY3Rpb24gY2xlYXJVbmljb2RlQ2FjaGVzKCl7eWEuY2xlYXIoKX0oKTtKcHhJbWFnZS5jbGVhbnVwKCl9ZnVuY3Rpb24gcGlja1BsYXRmb3JtSXRlbShlKXtpZihlIGluc3RhbmNlb2YgRGljdClmb3IoY29uc3QgdCBvZlsiVUYiLCJGIiwiVW5peCIsIk1hYyIsIkRPUyJdKWlmKGUuaGFzKHQpKXJldHVybiBlLmdldCh0KTtyZXR1cm4gbnVsbH1jbGFzcyBGaWxlU3BlY3sjZ2U9ITE7Y29uc3RydWN0b3IoZSx0PSExKXtpZihlIGluc3RhbmNlb2YgRGljdCl7dGhpcy5yb290PWU7ZS5oYXMoIkZTIikmJih0aGlzLmZzPWUuZ2V0KCJGUyIpKTtlLmhhcygiUkYiKSYmd2FybigiUmVsYXRlZCBmaWxlIHNwZWNpZmljYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIik7dHx8KGUuaGFzKCJFRiIpP3RoaXMuI2dlPSEwOndhcm4oIk5vbi1lbWJlZGRlZCBmaWxlIHNwZWNpZmljYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIikpfX1nZXQgZmlsZW5hbWUoKXtjb25zdCBlPXBpY2tQbGF0Zm9ybUl0ZW0odGhpcy5yb290KTtyZXR1cm4gZSYmInN0cmluZyI9PXR5cGVvZiBlP3N0cmluZ1RvUERGU3RyaW5nKGUsITApLnJlcGxhY2VBbGwoIlxcXFwiLCJcXCIpLnJlcGxhY2VBbGwoIlxcLyIsIi8iKS5yZXBsYWNlQWxsKCJcXCIsIi8iKToiIn1nZXQgY29udGVudCgpe2lmKCF0aGlzLiNnZSlyZXR1cm4gbnVsbDtjb25zdCBlPXBpY2tQbGF0Zm9ybUl0ZW0odGhpcy5yb290Py5nZXQoIkVGIikpO2lmKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKXJldHVybiBlLmdldEJ5dGVzKCk7d2FybigiRW1iZWRkZWQgZmlsZSBzcGVjaWZpY2F0aW9uIHBvaW50cyB0byBub24tZXhpc3RpbmcvaW52YWxpZCBjb250ZW50Iik7cmV0dXJuIG51bGx9Z2V0IGRlc2NyaXB0aW9uKCl7Y29uc3QgZT10aGlzLnJvb3Q/LmdldCgiRGVzYyIpO3JldHVybiBlJiYic3RyaW5nIj09dHlwZW9mIGU/c3RyaW5nVG9QREZTdHJpbmcoZSk6IiJ9Z2V0IHNlcmlhbGl6YWJsZSgpe2NvbnN0e2ZpbGVuYW1lOmUsY29udGVudDp0LGRlc2NyaXB0aW9uOm59PXRoaXM7cmV0dXJue3Jhd0ZpbGVuYW1lOmUsZmlsZW5hbWU6KGE9ZSxhLnN1YnN0cmluZyhhLmxhc3RJbmRleE9mKCIvIikrMSkpfHwidW5uYW1lZCIsY29udGVudDp0LGRlc2NyaXB0aW9uOm59O3ZhciBhfX1jb25zdCB4cj0wLEFyPS0yLENyPS0zLElyPS00LEZyPS01LFRyPS02LEhyPS05O2Z1bmN0aW9uIGlzV2hpdGVzcGFjZShlLHQpe2NvbnN0IG49ZVt0XTtyZXR1cm4iICI9PT1ufHwiXG4iPT09bnx8IlxyIj09PW58fCJcdCI9PT1ufWNsYXNzIFhNTFBhcnNlckJhc2V7X3Jlc29sdmVFbnRpdGllcyhlKXtyZXR1cm4gZS5yZXBsYWNlQWxsKC8mKFteO10rKTsvZywoZSx0KT0+e2lmKCIjeCI9PT10LnN1YnN0cmluZygwLDIpKXJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludCh0LnN1YnN0cmluZygyKSwxNikpO2lmKCIjIj09PXQuc3Vic3RyaW5nKDAsMSkpcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KHQuc3Vic3RyaW5nKDEpLDEwKSk7c3dpdGNoKHQpe2Nhc2UibHQiOnJldHVybiI8IjtjYXNlImd0IjpyZXR1cm4iPiI7Y2FzZSJhbXAiOnJldHVybiImIjtjYXNlInF1b3QiOnJldHVybiciJztjYXNlImFwb3MiOnJldHVybiInIn1yZXR1cm4gdGhpcy5vblJlc29sdmVFbnRpdHkodCl9KX1fcGFyc2VDb250ZW50KGUsdCl7Y29uc3Qgbj1bXTtsZXQgYT10O2Z1bmN0aW9uIHNraXBXcygpe2Zvcig7YTxlLmxlbmd0aCYmaXNXaGl0ZXNwYWNlKGUsYSk7KSsrYX1mb3IoO2E8ZS5sZW5ndGgmJiFpc1doaXRlc3BhY2UoZSxhKSYmIj4iIT09ZVthXSYmIi8iIT09ZVthXTspKythO2NvbnN0IHM9ZS5zdWJzdHJpbmcodCxhKTtza2lwV3MoKTtmb3IoO2E8ZS5sZW5ndGgmJiI+IiE9PWVbYV0mJiIvIiE9PWVbYV0mJiI/IiE9PWVbYV07KXtza2lwV3MoKTtsZXQgdD0iIixzPSIiO2Zvcig7YTxlLmxlbmd0aCYmIWlzV2hpdGVzcGFjZShlLGEpJiYiPSIhPT1lW2FdOyl7dCs9ZVthXTsrK2F9c2tpcFdzKCk7aWYoIj0iIT09ZVthXSlyZXR1cm4gbnVsbDsrK2E7c2tpcFdzKCk7Y29uc3Qgcj1lW2FdO2lmKCciJyE9PXImJiInIiE9PXIpcmV0dXJuIG51bGw7Y29uc3QgaT1lLmluZGV4T2YociwrK2EpO2lmKGk8MClyZXR1cm4gbnVsbDtzPWUuc3Vic3RyaW5nKGEsaSk7bi5wdXNoKHtuYW1lOnQsdmFsdWU6dGhpcy5fcmVzb2x2ZUVudGl0aWVzKHMpfSk7YT1pKzE7c2tpcFdzKCl9cmV0dXJue25hbWU6cyxhdHRyaWJ1dGVzOm4scGFyc2VkOmEtdH19X3BhcnNlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGUsdCl7bGV0IG49dDtmb3IoO248ZS5sZW5ndGgmJiFpc1doaXRlc3BhY2UoZSxuKSYmIj4iIT09ZVtuXSYmIj8iIT09ZVtuXSYmIi8iIT09ZVtuXTspKytuO2NvbnN0IGE9ZS5zdWJzdHJpbmcodCxuKTshZnVuY3Rpb24gc2tpcFdzKCl7Zm9yKDtuPGUubGVuZ3RoJiZpc1doaXRlc3BhY2UoZSxuKTspKytufSgpO2NvbnN0IHM9bjtmb3IoO248ZS5sZW5ndGgmJigiPyIhPT1lW25dfHwiPiIhPT1lW24rMV0pOykrK247cmV0dXJue25hbWU6YSx2YWx1ZTplLnN1YnN0cmluZyhzLG4pLHBhcnNlZDpuLXR9fXBhcnNlWG1sKGUpe2xldCB0PTA7Zm9yKDt0PGUubGVuZ3RoOyl7bGV0IG49dDtpZigiPCI9PT1lW3RdKXsrK247bGV0IHQ7c3dpdGNoKGVbbl0pe2Nhc2UiLyI6KytuO3Q9ZS5pbmRleE9mKCI+IixuKTtpZih0PDApe3RoaXMub25FcnJvcihIcik7cmV0dXJufXRoaXMub25FbmRFbGVtZW50KGUuc3Vic3RyaW5nKG4sdCkpO249dCsxO2JyZWFrO2Nhc2UiPyI6KytuO2NvbnN0IGE9dGhpcy5fcGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oZSxuKTtpZigiPz4iIT09ZS5zdWJzdHJpbmcobithLnBhcnNlZCxuK2EucGFyc2VkKzIpKXt0aGlzLm9uRXJyb3IoQ3IpO3JldHVybn10aGlzLm9uUGkoYS5uYW1lLGEudmFsdWUpO24rPWEucGFyc2VkKzI7YnJlYWs7Y2FzZSIhIjppZigiLS0iPT09ZS5zdWJzdHJpbmcobisxLG4rMykpe3Q9ZS5pbmRleE9mKCItLVx4M2UiLG4rMyk7aWYodDwwKXt0aGlzLm9uRXJyb3IoRnIpO3JldHVybn10aGlzLm9uQ29tbWVudChlLnN1YnN0cmluZyhuKzMsdCkpO249dCszfWVsc2UgaWYoIltDREFUQVsiPT09ZS5zdWJzdHJpbmcobisxLG4rOCkpe3Q9ZS5pbmRleE9mKCJdXT4iLG4rOCk7aWYodDwwKXt0aGlzLm9uRXJyb3IoQXIpO3JldHVybn10aGlzLm9uQ2RhdGEoZS5zdWJzdHJpbmcobis4LHQpKTtuPXQrM31lbHNle2lmKCJET0NUWVBFIiE9PWUuc3Vic3RyaW5nKG4rMSxuKzgpKXt0aGlzLm9uRXJyb3IoVHIpO3JldHVybn17Y29uc3QgYT1lLmluZGV4T2YoIlsiLG4rOCk7bGV0IHM9ITE7dD1lLmluZGV4T2YoIj4iLG4rOCk7aWYodDwwKXt0aGlzLm9uRXJyb3IoSXIpO3JldHVybn1pZihhPjAmJnQ+YSl7dD1lLmluZGV4T2YoIl0+IixuKzgpO2lmKHQ8MCl7dGhpcy5vbkVycm9yKElyKTtyZXR1cm59cz0hMH1jb25zdCByPWUuc3Vic3RyaW5nKG4rOCx0KyhzPzE6MCkpO3RoaXMub25Eb2N0eXBlKHIpO249dCsocz8yOjEpfX1icmVhaztkZWZhdWx0OmNvbnN0IHM9dGhpcy5fcGFyc2VDb250ZW50KGUsbik7aWYobnVsbD09PXMpe3RoaXMub25FcnJvcihUcik7cmV0dXJufWxldCByPSExO2lmKCIvPiI9PT1lLnN1YnN0cmluZyhuK3MucGFyc2VkLG4rcy5wYXJzZWQrMikpcj0hMDtlbHNlIGlmKCI+IiE9PWUuc3Vic3RyaW5nKG4rcy5wYXJzZWQsbitzLnBhcnNlZCsxKSl7dGhpcy5vbkVycm9yKEhyKTtyZXR1cm59dGhpcy5vbkJlZ2luRWxlbWVudChzLm5hbWUscy5hdHRyaWJ1dGVzLHIpO24rPXMucGFyc2VkKyhyPzI6MSl9fWVsc2V7Zm9yKDtuPGUubGVuZ3RoJiYiPCIhPT1lW25dOyluKys7Y29uc3QgYT1lLnN1YnN0cmluZyh0LG4pO3RoaXMub25UZXh0KHRoaXMuX3Jlc29sdmVFbnRpdGllcyhhKSl9dD1ufX1vblJlc29sdmVFbnRpdHkoZSl7cmV0dXJuYCYke2V9O2B9b25QaShlLHQpe31vbkNvbW1lbnQoZSl7fW9uQ2RhdGEoZSl7fW9uRG9jdHlwZShlKXt9b25UZXh0KGUpe31vbkJlZ2luRWxlbWVudChlLHQsbil7fW9uRW5kRWxlbWVudChlKXt9b25FcnJvcihlKXt9fWNsYXNzIFNpbXBsZURPTU5vZGV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLm5vZGVOYW1lPWU7dGhpcy5ub2RlVmFsdWU9dDtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywicGFyZW50Tm9kZSIse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLmNoaWxkTm9kZXM/LlswXX1nZXQgbmV4dFNpYmxpbmcoKXtjb25zdCBlPXRoaXMucGFyZW50Tm9kZS5jaGlsZE5vZGVzO2lmKCFlKXJldHVybjtjb25zdCB0PWUuaW5kZXhPZih0aGlzKTtyZXR1cm4tMSE9PXQ/ZVt0KzFdOnZvaWQgMH1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzP3RoaXMuY2hpbGROb2Rlcy5tYXAoZT0+ZS50ZXh0Q29udGVudCkuam9pbigiIik6dGhpcy5ub2RlVmFsdWV8fCIifWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLmNoaWxkTm9kZXN8fFtdfWhhc0NoaWxkTm9kZXMoKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzPy5sZW5ndGg+MH1zZWFyY2hOb2RlKGUsdCl7aWYodD49ZS5sZW5ndGgpcmV0dXJuIHRoaXM7Y29uc3Qgbj1lW3RdO2lmKG4ubmFtZS5zdGFydHNXaXRoKCIjIikmJnQ8ZS5sZW5ndGgtMSlyZXR1cm4gdGhpcy5zZWFyY2hOb2RlKGUsdCsxKTtjb25zdCBhPVtdO2xldCBzPXRoaXM7Zm9yKDs7KXtpZihuLm5hbWU9PT1zLm5vZGVOYW1lKXtpZigwIT09bi5wb3Mpe2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gbnVsbDt7Y29uc3Rbcl09YS5wb3AoKTtsZXQgaT0wO2Zvcihjb25zdCBhIG9mIHIuY2hpbGROb2RlcylpZihuLm5hbWU9PT1hLm5vZGVOYW1lKXtpZihpPT09bi5wb3MpcmV0dXJuIGEuc2VhcmNoTm9kZShlLHQrMSk7aSsrfXJldHVybiBzLnNlYXJjaE5vZGUoZSx0KzEpfX17Y29uc3Qgbj1zLnNlYXJjaE5vZGUoZSx0KzEpO2lmKG51bGwhPT1uKXJldHVybiBufX1pZihzLmNoaWxkTm9kZXM/Lmxlbmd0aD4wKXthLnB1c2goW3MsMF0pO3M9cy5jaGlsZE5vZGVzWzBdfWVsc2V7aWYoMD09PWEubGVuZ3RoKXJldHVybiBudWxsO2Zvcig7MCE9PWEubGVuZ3RoOyl7Y29uc3RbZSx0XT1hLnBvcCgpLG49dCsxO2lmKG48ZS5jaGlsZE5vZGVzLmxlbmd0aCl7YS5wdXNoKFtlLG5dKTtzPWUuY2hpbGROb2Rlc1tuXTticmVha319aWYoMD09PWEubGVuZ3RoKXJldHVybiBudWxsfX19ZHVtcChlKXtpZigiI3RleHQiIT09dGhpcy5ub2RlTmFtZSl7ZS5wdXNoKGA8JHt0aGlzLm5vZGVOYW1lfWApO2lmKHRoaXMuYXR0cmlidXRlcylmb3IoY29uc3QgdCBvZiB0aGlzLmF0dHJpYnV0ZXMpZS5wdXNoKGAgJHt0Lm5hbWV9PSIke2VuY29kZVRvWG1sU3RyaW5nKHQudmFsdWUpfSJgKTtpZih0aGlzLmhhc0NoaWxkTm9kZXMoKSl7ZS5wdXNoKCI+Iik7Zm9yKGNvbnN0IHQgb2YgdGhpcy5jaGlsZE5vZGVzKXQuZHVtcChlKTtlLnB1c2goYDwvJHt0aGlzLm5vZGVOYW1lfT5gKX1lbHNlIHRoaXMubm9kZVZhbHVlP2UucHVzaChgPiR7ZW5jb2RlVG9YbWxTdHJpbmcodGhpcy5ub2RlVmFsdWUpfTwvJHt0aGlzLm5vZGVOYW1lfT5gKTplLnB1c2goIi8+Iil9ZWxzZSBlLnB1c2goZW5jb2RlVG9YbWxTdHJpbmcodGhpcy5ub2RlVmFsdWUpKX19Y2xhc3MgU2ltcGxlWE1MUGFyc2VyIGV4dGVuZHMgWE1MUGFyc2VyQmFzZXtjb25zdHJ1Y3Rvcih7aGFzQXR0cmlidXRlczplPSExLGxvd2VyQ2FzZU5hbWU6dD0hMX0pe3N1cGVyKCk7dGhpcy5fY3VycmVudEZyYWdtZW50PW51bGw7dGhpcy5fc3RhY2s9bnVsbDt0aGlzLl9lcnJvckNvZGU9eHI7dGhpcy5faGFzQXR0cmlidXRlcz1lO3RoaXMuX2xvd2VyQ2FzZU5hbWU9dH1wYXJzZUZyb21TdHJpbmcoZSl7dGhpcy5fY3VycmVudEZyYWdtZW50PVtdO3RoaXMuX3N0YWNrPVtdO3RoaXMuX2Vycm9yQ29kZT14cjt0aGlzLnBhcnNlWG1sKGUpO2lmKHRoaXMuX2Vycm9yQ29kZSE9PXhyKXJldHVybjtjb25zdFt0XT10aGlzLl9jdXJyZW50RnJhZ21lbnQ7cmV0dXJuIHQ/e2RvY3VtZW50RWxlbWVudDp0fTp2b2lkIDB9b25UZXh0KGUpe2lmKGZ1bmN0aW9uIGlzV2hpdGVzcGFjZVN0cmluZyhlKXtmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3Q8bjt0KyspaWYoIWlzV2hpdGVzcGFjZShlLHQpKXJldHVybiExO3JldHVybiEwfShlKSlyZXR1cm47Y29uc3QgdD1uZXcgU2ltcGxlRE9NTm9kZSgiI3RleHQiLGUpO3RoaXMuX2N1cnJlbnRGcmFnbWVudC5wdXNoKHQpfW9uQ2RhdGEoZSl7Y29uc3QgdD1uZXcgU2ltcGxlRE9NTm9kZSgiI3RleHQiLGUpO3RoaXMuX2N1cnJlbnRGcmFnbWVudC5wdXNoKHQpfW9uQmVnaW5FbGVtZW50KGUsdCxuKXt0aGlzLl9sb3dlckNhc2VOYW1lJiYoZT1lLnRvTG93ZXJDYXNlKCkpO2NvbnN0IGE9bmV3IFNpbXBsZURPTU5vZGUoZSk7YS5jaGlsZE5vZGVzPVtdO3RoaXMuX2hhc0F0dHJpYnV0ZXMmJihhLmF0dHJpYnV0ZXM9dCk7dGhpcy5fY3VycmVudEZyYWdtZW50LnB1c2goYSk7aWYoIW4pe3RoaXMuX3N0YWNrLnB1c2godGhpcy5fY3VycmVudEZyYWdtZW50KTt0aGlzLl9jdXJyZW50RnJhZ21lbnQ9YS5jaGlsZE5vZGVzfX1vbkVuZEVsZW1lbnQoZSl7dGhpcy5fY3VycmVudEZyYWdtZW50PXRoaXMuX3N0YWNrLnBvcCgpfHxbXTtjb25zdCB0PXRoaXMuX2N1cnJlbnRGcmFnbWVudC5hdCgtMSk7aWYoIXQpcmV0dXJuIG51bGw7Zm9yKGNvbnN0IGUgb2YgdC5jaGlsZE5vZGVzKWUucGFyZW50Tm9kZT10O3JldHVybiB0fW9uRXJyb3IoZSl7dGhpcy5fZXJyb3JDb2RlPWV9fWNsYXNzIE1ldGFkYXRhUGFyc2Vye2NvbnN0cnVjdG9yKGUpe2U9dGhpcy5fcmVwYWlyKGUpO2NvbnN0IHQ9bmV3IFNpbXBsZVhNTFBhcnNlcih7bG93ZXJDYXNlTmFtZTohMH0pLnBhcnNlRnJvbVN0cmluZyhlKTt0aGlzLl9tZXRhZGF0YU1hcD1uZXcgTWFwO3RoaXMuX2RhdGE9ZTt0JiZ0aGlzLl9wYXJzZSh0KX1fcmVwYWlyKGUpe3JldHVybiBlLnJlcGxhY2UoL15bXjxdKy8sIiIpLnJlcGxhY2VBbGwoLz5cXDM3NlxcMzc3KFtePF0rKS9nLGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10LnJlcGxhY2VBbGwoL1xcKFswLTNdKShbMC03XSkoWzAtN10pL2csZnVuY3Rpb24oZSx0LG4sYSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoNjQqdCs4Km4rMSphKX0pLnJlcGxhY2VBbGwoLyYoYW1wfGFwb3N8Z3R8bHR8cXVvdCk7L2csZnVuY3Rpb24oZSx0KXtzd2l0Y2godCl7Y2FzZSJhbXAiOnJldHVybiImIjtjYXNlImFwb3MiOnJldHVybiInIjtjYXNlImd0IjpyZXR1cm4iPiI7Y2FzZSJsdCI6cmV0dXJuIjwiO2Nhc2UicXVvdCI6cmV0dXJuJyInfXRocm93IG5ldyBFcnJvcihgX3JlcGFpcjogJHt0fSBpc24ndCBkZWZpbmVkLmApfSksYT1bIj4iXTtmb3IobGV0IGU9MCx0PW4ubGVuZ3RoO2U8dDtlKz0yKXtjb25zdCB0PTI1NipuLmNoYXJDb2RlQXQoZSkrbi5jaGFyQ29kZUF0KGUrMSk7dD49MzImJnQ8MTI3JiY2MCE9PXQmJjYyIT09dCYmMzghPT10P2EucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKTphLnB1c2goIiYjeCIrKDY1NTM2K3QpLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSkrIjsiKX1yZXR1cm4gYS5qb2luKCIiKX0pfV9nZXRTZXF1ZW5jZShlKXtjb25zdCB0PWUubm9kZU5hbWU7cmV0dXJuInJkZjpiYWciIT09dCYmInJkZjpzZXEiIT09dCYmInJkZjphbHQiIT09dD9udWxsOmUuY2hpbGROb2Rlcy5maWx0ZXIoZT0+InJkZjpsaSI9PT1lLm5vZGVOYW1lKX1fcGFyc2VBcnJheShlKXtpZighZS5oYXNDaGlsZE5vZGVzKCkpcmV0dXJuO2NvbnN0W3RdPWUuY2hpbGROb2RlcyxuPXRoaXMuX2dldFNlcXVlbmNlKHQpfHxbXTt0aGlzLl9tZXRhZGF0YU1hcC5zZXQoZS5ub2RlTmFtZSxuLm1hcChlPT5lLnRleHRDb250ZW50LnRyaW0oKSkpfV9wYXJzZShlKXtsZXQgdD1lLmRvY3VtZW50RWxlbWVudDtpZigicmRmOnJkZiIhPT10Lm5vZGVOYW1lKXt0PXQuZmlyc3RDaGlsZDtmb3IoO3QmJiJyZGY6cmRmIiE9PXQubm9kZU5hbWU7KXQ9dC5uZXh0U2libGluZ31pZih0JiYicmRmOnJkZiI9PT10Lm5vZGVOYW1lJiZ0Lmhhc0NoaWxkTm9kZXMoKSlmb3IoY29uc3QgZSBvZiB0LmNoaWxkTm9kZXMpaWYoInJkZjpkZXNjcmlwdGlvbiI9PT1lLm5vZGVOYW1lKWZvcihjb25zdCB0IG9mIGUuY2hpbGROb2Rlcyl7Y29uc3QgZT10Lm5vZGVOYW1lO3N3aXRjaChlKXtjYXNlIiN0ZXh0Ijpjb250aW51ZTtjYXNlImRjOmNyZWF0b3IiOmNhc2UiZGM6c3ViamVjdCI6dGhpcy5fcGFyc2VBcnJheSh0KTtjb250aW51ZX10aGlzLl9tZXRhZGF0YU1hcC5zZXQoZSx0LnRleHRDb250ZW50LnRyaW0oKSl9fWdldCBzZXJpYWxpemFibGUoKXtyZXR1cm57cGFyc2VkRGF0YTp0aGlzLl9tZXRhZGF0YU1hcCxyYXdEYXRhOnRoaXMuX2RhdGF9fX1jb25zdCBPcj0xLFJyPTIsRHI9MyxNcj00LFByPTU7Y2xhc3MgU3RydWN0VHJlZVJvb3R7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMueHJlZj1lO3RoaXMuZGljdD10O3RoaXMucmVmPW4gaW5zdGFuY2VvZiBSZWY/bjpudWxsO3RoaXMucm9sZU1hcD1uZXcgTWFwO3RoaXMuc3RydWN0UGFyZW50SWRzPW51bGw7dGhpcy5raWRSZWZUb1Bvc2l0aW9uPXZvaWQgMDt0aGlzLnBhcmVudFRyZWU9bnVsbH1nZXRLaWRQb3NpdGlvbihlKXtpZih2b2lkIDA9PT10aGlzLmtpZFJlZlRvUG9zaXRpb24pe2NvbnN0IGU9dGhpcy5kaWN0LmdldCgiSyIpO2lmKEFycmF5LmlzQXJyYXkoZSkpe2NvbnN0IHQ9dGhpcy5raWRSZWZUb1Bvc2l0aW9uPW5ldyBNYXA7Zm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKXtjb25zdCBhPWVbbl07YSYmdC5zZXQoYS50b1N0cmluZygpLG4pfX1lbHNlIHRoaXMua2lkUmVmVG9Qb3NpdGlvbj1lIGluc3RhbmNlb2YgRGljdD9uZXcgTWFwKFtbZS5vYmpJZCwwXV0pOmU/bnVsbDpuZXcgTWFwfXJldHVybiB0aGlzLmtpZFJlZlRvUG9zaXRpb24/dGhpcy5raWRSZWZUb1Bvc2l0aW9uLmdldChlKT8/TmFOOi0xfWluaXQoKXt0aGlzLnJlYWRSb2xlTWFwKCk7Y29uc3QgZT10aGlzLmRpY3QuZ2V0KCJQYXJlbnRUcmVlIik7ZSYmKHRoaXMucGFyZW50VHJlZT1uZXcgTnVtYmVyVHJlZShlLHRoaXMueHJlZikpfSNiZShlLHQsbil7aWYoIShlIGluc3RhbmNlb2YgUmVmKXx8dDwwKXJldHVybjt0aGlzLnN0cnVjdFBhcmVudElkc3x8PW5ldyBSZWZTZXRDYWNoZTtsZXQgYT10aGlzLnN0cnVjdFBhcmVudElkcy5nZXQoZSk7aWYoIWEpe2E9W107dGhpcy5zdHJ1Y3RQYXJlbnRJZHMucHV0KGUsYSl9YS5wdXNoKFt0LG5dKX1hZGRBbm5vdGF0aW9uSWRUb1BhZ2UoZSx0KXt0aGlzLiNiZShlLHQsTXIpfXJlYWRSb2xlTWFwKCl7Y29uc3QgZT10aGlzLmRpY3QuZ2V0KCJSb2xlTWFwIik7aWYoZSBpbnN0YW5jZW9mIERpY3QpZm9yKGNvbnN0W3Qsbl1vZiBlKW4gaW5zdGFuY2VvZiBOYW1lJiZ0aGlzLnJvbGVNYXAuc2V0KHQsbi5uYW1lKX1zdGF0aWMgYXN5bmMgY2FuQ3JlYXRlU3RydWN0dXJlVHJlZSh7Y2F0YWxvZ1JlZjplLHBkZk1hbmFnZXI6dCxuZXdBbm5vdGF0aW9uc0J5UGFnZTpufSl7aWYoIShlIGluc3RhbmNlb2YgUmVmKSl7d2FybigiQ2Fubm90IHNhdmUgdGhlIHN0cnVjdCB0cmVlOiBubyBjYXRhbG9nIHJlZmVyZW5jZS4iKTtyZXR1cm4hMX1sZXQgYT0wLHM9ITA7Zm9yKGNvbnN0W2Uscl1vZiBuKXtjb25zdHtyZWY6bn09YXdhaXQgdC5nZXRQYWdlKGUpO2lmKCEobiBpbnN0YW5jZW9mIFJlZikpe3dhcm4oYENhbm5vdCBzYXZlIHRoZSBzdHJ1Y3QgdHJlZTogcGFnZSAke2V9IGhhcyBubyByZWYuYCk7cz0hMDticmVha31mb3IoY29uc3QgZSBvZiByKWlmKGUuYWNjZXNzaWJpbGl0eURhdGE/LnR5cGUpe2UucGFyZW50VHJlZUlkPWErKztzPSExfX1pZihzKXtmb3IoY29uc3QgZSBvZiBuLnZhbHVlcygpKWZvcihjb25zdCB0IG9mIGUpZGVsZXRlIHQucGFyZW50VHJlZUlkO3JldHVybiExfXJldHVybiEwfXN0YXRpYyBhc3luYyBjcmVhdGVTdHJ1Y3R1cmVUcmVlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTplLHhyZWY6dCxjYXRhbG9nUmVmOm4scGRmTWFuYWdlcjphLGNoYW5nZXM6c30pe2NvbnN0IHI9YXdhaXQgYS5lbnN1cmVDYXRhbG9nKCJjbG9uZURpY3QiKSxpPW5ldyBSZWZTZXRDYWNoZTtpLnB1dChuLHIpO2NvbnN0IG89dC5nZXROZXdUZW1wb3JhcnlSZWYoKTtyLnNldCgiU3RydWN0VHJlZVJvb3QiLG8pO2NvbnN0IGw9bmV3IERpY3QodCk7bC5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJTdHJ1Y3RUcmVlUm9vdCIpKTtjb25zdCBmPXQuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7bC5zZXQoIlBhcmVudFRyZWUiLGYpO2NvbnN0IGM9W107bC5zZXQoIksiLGMpO2kucHV0KG8sbCk7Y29uc3QgaD1uZXcgRGljdCh0KSx1PVtdO2guc2V0KCJOdW1zIix1KTtjb25zdCBtPWF3YWl0IHRoaXMuI3dlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTplLHN0cnVjdFRyZWVSb290UmVmOm8sc3RydWN0VHJlZVJvb3Q6bnVsbCxraWRzOmMsbnVtczp1LHhyZWY6dCxwZGZNYW5hZ2VyOmEsY2hhbmdlczpzLGNhY2hlOml9KTtsLnNldCgiUGFyZW50VHJlZU5leHRLZXkiLG0pO2kucHV0KGYsaCk7Zm9yKGNvbnN0W2UsdF1vZiBpLml0ZW1zKCkpcy5wdXQoZSx7ZGF0YTp0fSl9YXN5bmMgY2FuVXBkYXRlU3RydWN0VHJlZSh7cGRmTWFuYWdlcjplLG5ld0Fubm90YXRpb25zQnlQYWdlOnR9KXtpZighdGhpcy5yZWYpe3dhcm4oIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBubyByb290IHJlZmVyZW5jZS4iKTtyZXR1cm4hMX1sZXQgbj10aGlzLmRpY3QuZ2V0KCJQYXJlbnRUcmVlTmV4dEtleSIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKG4pfHxuPDApe3dhcm4oIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBpbnZhbGlkIG5leHQga2V5LiIpO3JldHVybiExfWNvbnN0IGE9dGhpcy5kaWN0LmdldCgiUGFyZW50VHJlZSIpO2lmKCEoYSBpbnN0YW5jZW9mIERpY3QpKXt3YXJuKCJDYW5ub3QgdXBkYXRlIHRoZSBzdHJ1Y3QgdHJlZTogUGFyZW50VHJlZSBpc24ndCBhIGRpY3QuIik7cmV0dXJuITF9Y29uc3Qgcz1hLmdldCgiTnVtcyIpO2lmKCFBcnJheS5pc0FycmF5KHMpKXt3YXJuKCJDYW5ub3QgdXBkYXRlIHRoZSBzdHJ1Y3QgdHJlZTogbnVtcyBpc24ndCBhbiBhcnJheS4iKTtyZXR1cm4hMX1jb25zdCByPW5ldyBOdW1iZXJUcmVlKGEsdGhpcy54cmVmKTtmb3IoY29uc3QgbiBvZiB0LmtleXMoKSl7Y29uc3R7cGFnZURpY3Q6dH09YXdhaXQgZS5nZXRQYWdlKG4pO2lmKCF0LmhhcygiU3RydWN0UGFyZW50cyIpKWNvbnRpbnVlO2NvbnN0IGE9dC5nZXQoIlN0cnVjdFBhcmVudHMiKTtpZighTnVtYmVyLmlzSW50ZWdlcihhKXx8IUFycmF5LmlzQXJyYXkoci5nZXQoYSkpKXt3YXJuKGBDYW5ub3Qgc2F2ZSB0aGUgc3RydWN0IHRyZWU6IHBhZ2UgJHtufSBoYXMgYSB3cm9uZyBpZC5gKTtyZXR1cm4hMX19bGV0IGk9ITA7Zm9yKGNvbnN0W2Esc11vZiB0KXtjb25zdHtwYWdlRGljdDp0fT1hd2FpdCBlLmdldFBhZ2UoYSk7U3RydWN0VHJlZVJvb3QuI2plKHtlbGVtZW50czpzLHhyZWY6dGhpcy54cmVmLHBhZ2VEaWN0OnQsbnVtYmVyVHJlZTpyfSk7Zm9yKGNvbnN0IGUgb2YgcylpZihlLmFjY2Vzc2liaWxpdHlEYXRhPy50eXBlKXtlLmFjY2Vzc2liaWxpdHlEYXRhLnN0cnVjdFBhcmVudD49MHx8KGUucGFyZW50VHJlZUlkPW4rKyk7aT0hMX19aWYoaSl7Zm9yKGNvbnN0IGUgb2YgdC52YWx1ZXMoKSlmb3IoY29uc3QgdCBvZiBlKXtkZWxldGUgdC5wYXJlbnRUcmVlSWQ7ZGVsZXRlIHQuc3RydWN0VHJlZVBhcmVudH1yZXR1cm4hMX1yZXR1cm4hMH1hc3luYyB1cGRhdGVTdHJ1Y3R1cmVUcmVlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTplLHBkZk1hbmFnZXI6dCxjaGFuZ2VzOm59KXtjb25zdHtyZWY6YSx4cmVmOnN9PXRoaXMscj10aGlzLmRpY3QuY2xvbmUoKSxpPW5ldyBSZWZTZXRDYWNoZTtpLnB1dChhLHIpO2xldCBvLGw9ci5nZXRSYXcoIlBhcmVudFRyZWUiKTtpZihsIGluc3RhbmNlb2YgUmVmKW89cy5mZXRjaChsKTtlbHNle289bDtsPXMuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7ci5zZXQoIlBhcmVudFRyZWUiLGwpfW89by5jbG9uZSgpO2kucHV0KGwsbyk7bGV0IGY9by5nZXRSYXcoIk51bXMiKSxjPW51bGw7aWYoZiBpbnN0YW5jZW9mIFJlZil7Yz1mO2Y9cy5mZXRjaChjKX1mPWYuc2xpY2UoKTtjfHxvLnNldCgiTnVtcyIsZik7Y29uc3QgaD1hd2FpdCBTdHJ1Y3RUcmVlUm9vdC4jd2Uoe25ld0Fubm90YXRpb25zQnlQYWdlOmUsc3RydWN0VHJlZVJvb3RSZWY6YSxzdHJ1Y3RUcmVlUm9vdDp0aGlzLGtpZHM6bnVsbCxudW1zOmYseHJlZjpzLHBkZk1hbmFnZXI6dCxjaGFuZ2VzOm4sY2FjaGU6aX0pO2lmKC0xIT09aCl7ci5zZXQoIlBhcmVudFRyZWVOZXh0S2V5IixoKTtjJiZpLnB1dChjLGYpO2Zvcihjb25zdFtlLHRdb2YgaS5pdGVtcygpKW4ucHV0KGUse2RhdGE6dH0pfX1zdGF0aWMgYXN5bmMjd2Uoe25ld0Fubm90YXRpb25zQnlQYWdlOmUsc3RydWN0VHJlZVJvb3RSZWY6dCxzdHJ1Y3RUcmVlUm9vdDpuLGtpZHM6YSxudW1zOnMseHJlZjpyLHBkZk1hbmFnZXI6aSxjaGFuZ2VzOm8sY2FjaGU6bH0pe2NvbnN0IGY9TmFtZS5nZXQoIk9CSlIiKTtsZXQgYyxoPS0xO2Zvcihjb25zdFt1LG1db2YgZSl7Y29uc3QgZT1hd2FpdCBpLmdldFBhZ2UodSkse3JlZjpwfT1lLGQ9cCBpbnN0YW5jZW9mIFJlZjtmb3IoY29uc3R7YWNjZXNzaWJpbGl0eURhdGE6aSxyZWY6ZyxwYXJlbnRUcmVlSWQ6YixzdHJ1Y3RUcmVlUGFyZW50Ond9b2YgbSl7aWYoIWk/LnR5cGUpY29udGludWU7Y29uc3R7c3RydWN0UGFyZW50Om19PWk7aWYobiYmTnVtYmVyLmlzSW50ZWdlcihtKSYmbT49MCl7bGV0IHQ9KGN8fD1uZXcgTWFwKS5nZXQodSk7aWYodm9pZCAwPT09dCl7dD1uZXcgU3RydWN0VHJlZVBhZ2UobixlLnBhZ2VEaWN0KS5jb2xsZWN0T2JqZWN0cyhwKTtjLnNldCh1LHQpfWNvbnN0IGE9dD8uZ2V0KG0pO2lmKGEpe2NvbnN0IGU9ci5mZXRjaChhKS5jbG9uZSgpO1N0cnVjdFRyZWVSb290LiNrZShlLGkpO28ucHV0KGEse2RhdGE6ZX0pO2NvbnRpbnVlfX1oPU1hdGgubWF4KGgsYik7Y29uc3Qgaj1yLmdldE5ld1RlbXBvcmFyeVJlZigpLGs9bmV3IERpY3Qocik7U3RydWN0VHJlZVJvb3QuI2tlKGssaSk7YXdhaXQgdGhpcy4jeWUoe3N0cnVjdFRyZWVQYXJlbnQ6dyx0YWdEaWN0OmssbmV3VGFnUmVmOmosc3RydWN0VHJlZVJvb3RSZWY6dCxmYWxsYmFja0tpZHM6YSx4cmVmOnIsY2FjaGU6bH0pO2NvbnN0IHk9bmV3IERpY3Qocik7ay5zZXQoIksiLHkpO3kuc2V0KCJUeXBlIixmKTtkJiZ5LnNldCgiUGciLHApO3kuc2V0KCJPYmoiLGcpO2wucHV0KGosayk7cy5wdXNoKGIsail9fXJldHVybiBoKzF9c3RhdGljI2tlKGUse3R5cGU6dCx0aXRsZTpuLGxhbmc6YSxhbHQ6cyxleHBhbmRlZDpyLGFjdHVhbFRleHQ6aX0pe2Uuc2V0KCJTIixOYW1lLmdldCh0KSk7biYmZS5zZXQoIlQiLHN0cmluZ1RvQXNjaWlPclVURjE2QkUobikpO2EmJmUuc2V0KCJMYW5nIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKGEpKTtzJiZlLnNldCgiQWx0IixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKHMpKTtyJiZlLnNldCgiRSIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShyKSk7aSYmZS5zZXQoIkFjdHVhbFRleHQiLHN0cmluZ1RvQXNjaWlPclVURjE2QkUoaSkpfXN0YXRpYyNqZSh7ZWxlbWVudHM6ZSx4cmVmOnQscGFnZURpY3Q6bixudW1iZXJUcmVlOmF9KXtjb25zdCBzPW5ldyBNYXA7Zm9yKGNvbnN0IHQgb2YgZSlpZih0LnN0cnVjdFRyZWVQYXJlbnRJZCl7Y29uc3QgZT1wYXJzZUludCh0LnN0cnVjdFRyZWVQYXJlbnRJZC5zcGxpdCgiX21jIilbMV0sMTApO3MuZ2V0T3JJbnNlcnRDb21wdXRlZChlLG1ha2VBcnIpLnB1c2godCl9Y29uc3Qgcj1uLmdldCgiU3RydWN0UGFyZW50cyIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHIpKXJldHVybjtjb25zdCBpPWEuZ2V0KHIpLHVwZGF0ZUVsZW1lbnQ9KGUsbixhKT0+e2NvbnN0IHI9cy5nZXQoZSk7aWYocil7Y29uc3QgZT1uLmdldFJhdygiUCIpLHM9dC5mZXRjaElmUmVmKGUpO2lmKGUgaW5zdGFuY2VvZiBSZWYmJnMgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPXtyZWY6YSxkaWN0Om59O2Zvcihjb25zdCB0IG9mIHIpdC5zdHJ1Y3RUcmVlUGFyZW50PWV9cmV0dXJuITB9cmV0dXJuITF9O2Zvcihjb25zdCBlIG9mIGkpe2lmKCEoZSBpbnN0YW5jZW9mIFJlZikpY29udGludWU7Y29uc3Qgbj10LmZldGNoKGUpLGE9bi5nZXQoIksiKTtpZihOdW1iZXIuaXNJbnRlZ2VyKGEpKXVwZGF0ZUVsZW1lbnQoYSxuLGUpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShhKSlmb3IobGV0IHMgb2YgYSl7cz10LmZldGNoSWZSZWYocyk7aWYoTnVtYmVyLmlzSW50ZWdlcihzKSYmdXBkYXRlRWxlbWVudChzLG4sZSkpYnJlYWs7aWYoIShzIGluc3RhbmNlb2YgRGljdCkpY29udGludWU7aWYoIWlzTmFtZShzLmdldCgiVHlwZSIpLCJNQ1IiKSlicmVhaztjb25zdCBhPXMuZ2V0KCJNQ0lEIik7aWYoTnVtYmVyLmlzSW50ZWdlcihhKSYmdXBkYXRlRWxlbWVudChhLG4sZSkpYnJlYWt9fX1zdGF0aWMgYXN5bmMjeWUoe3N0cnVjdFRyZWVQYXJlbnQ6ZSx0YWdEaWN0OnQsbmV3VGFnUmVmOm4sc3RydWN0VHJlZVJvb3RSZWY6YSxmYWxsYmFja0tpZHM6cyx4cmVmOnIsY2FjaGU6aX0pe2xldCBvLGw9bnVsbDtpZihlKXsoe3JlZjpsfT1lKTtvPWUuZGljdC5nZXRSYXcoIlAiKXx8YX1lbHNlIG89YTt0LnNldCgiUCIsbyk7Y29uc3QgZj1yLmZldGNoSWZSZWYobyk7aWYoIWYpe3MucHVzaChuKTtyZXR1cm59bGV0IGM9aS5nZXQobyk7aWYoIWMpe2M9Zi5jbG9uZSgpO2kucHV0KG8sYyl9Y29uc3QgaD1jLmdldFJhdygiSyIpO2xldCB1PWggaW5zdGFuY2VvZiBSZWY/aS5nZXQoaCk6bnVsbDtpZighdSl7dT1yLmZldGNoSWZSZWYoaCk7dT1BcnJheS5pc0FycmF5KHUpP3Uuc2xpY2UoKTpbaF07Y29uc3QgZT1yLmdldE5ld1RlbXBvcmFyeVJlZigpO2Muc2V0KCJLIixlKTtpLnB1dChlLHUpfWNvbnN0IG09dS5pbmRleE9mKGwpO3Uuc3BsaWNlKG0+PTA/bSsxOnUubGVuZ3RoLDAsbil9fWNsYXNzIFN0cnVjdEVsZW1lbnROb2Rle2NvbnN0cnVjdG9yKGUsdCl7dGhpcy50cmVlPWU7dGhpcy54cmVmPWUueHJlZjt0aGlzLmRpY3Q9dDt0aGlzLmtpZHM9W107dGhpcy5wYXJzZUtpZHMoKX1nZXQgcm9sZSgpe2NvbnN0IGU9dGhpcy5kaWN0LmdldCgiUyIpLHQ9ZSBpbnN0YW5jZW9mIE5hbWU/ZS5uYW1lOiIiLHtyb290Om59PXRoaXMudHJlZTtyZXR1cm4gbi5yb2xlTWFwLmdldCh0KT8/dH1nZXQgbWF0aE1MKCl7bGV0IGU9dGhpcy5kaWN0LmdldCgiQUYiKXx8W107QXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKTtmb3IobGV0IHQgb2YgZSl7dD10aGlzLnhyZWYuZmV0Y2hJZlJlZih0KTtpZighKHQgaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtpZighaXNOYW1lKHQuZ2V0KCJUeXBlIiksIkZpbGVzcGVjIikpY29udGludWU7aWYoIWlzTmFtZSh0LmdldCgiQUZSZWxhdGlvbnNoaXAiKSwiU3VwcGxlbWVudCIpKWNvbnRpbnVlO2NvbnN0IGU9dC5nZXQoIkVGIik7aWYoIShlIGluc3RhbmNlb2YgRGljdCkpY29udGludWU7Y29uc3Qgbj1lLmdldCgiVUYiKXx8ZS5nZXQoIkYiKTtpZihuIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmKGlzTmFtZShuLmRpY3QuZ2V0KCJUeXBlIiksIkVtYmVkZGVkRmlsZSIpJiZpc05hbWUobi5kaWN0LmdldCgiU3VidHlwZSIpLCJhcHBsaWNhdGlvbi9tYXRobWwreG1sIikpKXJldHVybiBzdHJpbmdUb1VURjhTdHJpbmcobi5nZXRTdHJpbmcoKSl9Y29uc3QgdD10aGlzLmRpY3QuZ2V0KCJBIik7aWYodCBpbnN0YW5jZW9mIERpY3Qpe2lmKGlzTmFtZSh0LmdldCgiTyIpLCJNU0ZUX09mZmljZSIpKXtjb25zdCBlPXQuZ2V0KCJNU0ZUX01hdGhNTCIpO3JldHVybiBlP3N0cmluZ1RvUERGU3RyaW5nKGUpOm51bGx9fXJldHVybiBudWxsfXBhcnNlS2lkcygpe2xldCBlPW51bGw7Y29uc3QgdD10aGlzLmRpY3QuZ2V0UmF3KCJQZyIpO3QgaW5zdGFuY2VvZiBSZWYmJihlPXQudG9TdHJpbmcoKSk7Y29uc3Qgbj10aGlzLmRpY3QuZ2V0KCJLIik7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IoY29uc3QgdCBvZiBuKXtjb25zdCBuPXRoaXMucGFyc2VLaWQoZSx0aGlzLnhyZWYuZmV0Y2hJZlJlZih0KSk7biYmdGhpcy5raWRzLnB1c2gobil9ZWxzZXtjb25zdCB0PXRoaXMucGFyc2VLaWQoZSxuKTt0JiZ0aGlzLmtpZHMucHVzaCh0KX19cGFyc2VLaWQoZSx0KXtpZihOdW1iZXIuaXNJbnRlZ2VyKHQpKXJldHVybiB0aGlzLnRyZWUucGFnZURpY3Qub2JqSWQhPT1lP251bGw6bmV3IFN0cnVjdEVsZW1lbnQoe3R5cGU6T3IsbWNpZDp0LHBhZ2VPYmpJZDplfSk7aWYoISh0IGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIG51bGw7Y29uc3Qgbj10LmdldFJhdygiUGciKTtuIGluc3RhbmNlb2YgUmVmJiYoZT1uLnRvU3RyaW5nKCkpO2NvbnN0IGE9dC5nZXQoIlR5cGUiKWluc3RhbmNlb2YgTmFtZT90LmdldCgiVHlwZSIpLm5hbWU6bnVsbDtpZigiTUNSIj09PWEpe2lmKHRoaXMudHJlZS5wYWdlRGljdC5vYmpJZCE9PWUpcmV0dXJuIG51bGw7Y29uc3Qgbj10LmdldFJhdygiU3RtIik7cmV0dXJuIG5ldyBTdHJ1Y3RFbGVtZW50KHt0eXBlOlJyLHJlZk9iaklkOm4gaW5zdGFuY2VvZiBSZWY/bi50b1N0cmluZygpOm51bGwscGFnZU9iaklkOmUsbWNpZDp0LmdldCgiTUNJRCIpfSl9aWYoIk9CSlIiPT09YSl7aWYodGhpcy50cmVlLnBhZ2VEaWN0Lm9iaklkIT09ZSlyZXR1cm4gbnVsbDtjb25zdCBuPXQuZ2V0UmF3KCJPYmoiKTtyZXR1cm4gbmV3IFN0cnVjdEVsZW1lbnQoe3R5cGU6RHIscmVmT2JqSWQ6biBpbnN0YW5jZW9mIFJlZj9uLnRvU3RyaW5nKCk6bnVsbCxwYWdlT2JqSWQ6ZX0pfXJldHVybiBuZXcgU3RydWN0RWxlbWVudCh7dHlwZTpQcixkaWN0OnR9KX19Y2xhc3MgU3RydWN0RWxlbWVudHtjb25zdHJ1Y3Rvcih7dHlwZTplLGRpY3Q6dD1udWxsLG1jaWQ6bj1udWxsLHBhZ2VPYmpJZDphPW51bGwscmVmT2JqSWQ6cz1udWxsfSl7dGhpcy50eXBlPWU7dGhpcy5kaWN0PXQ7dGhpcy5tY2lkPW47dGhpcy5wYWdlT2JqSWQ9YTt0aGlzLnJlZk9iaklkPXM7dGhpcy5wYXJlbnROb2RlPW51bGx9fWNsYXNzIFN0cnVjdFRyZWVQYWdle2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5yb290PWU7dGhpcy54cmVmPWU/LnhyZWY/P251bGw7dGhpcy5yb290RGljdD1lPy5kaWN0Pz9udWxsO3RoaXMucGFnZURpY3Q9dDt0aGlzLm5vZGVzPVtdfWNvbGxlY3RPYmplY3RzKGUpe2lmKCEodGhpcy5yb290JiZ0aGlzLnJvb3REaWN0JiZlIGluc3RhbmNlb2YgUmVmKSlyZXR1cm4gbnVsbDtjb25zdCB0PXRoaXMucm9vdERpY3QuZ2V0KCJQYXJlbnRUcmVlIik7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3Qgbj10aGlzLnJvb3Quc3RydWN0UGFyZW50SWRzPy5nZXQoZSk7aWYoIW4pcmV0dXJuIG51bGw7Y29uc3QgYT1uZXcgTWFwLHM9bmV3IE51bWJlclRyZWUodCx0aGlzLnhyZWYpO2Zvcihjb25zdFtlXW9mIG4pe2NvbnN0IHQ9cy5nZXRSYXcoZSk7dCBpbnN0YW5jZW9mIFJlZiYmYS5zZXQoZSx0KX1yZXR1cm4gYX1wYXJzZShlKXtpZighKHRoaXMucm9vdCYmdGhpcy5yb290RGljdCYmZSBpbnN0YW5jZW9mIFJlZikpcmV0dXJuO2NvbnN0e3BhcmVudFRyZWU6dH09dGhpcy5yb290O2lmKCF0KXJldHVybjtjb25zdCBuPXRoaXMucGFnZURpY3QuZ2V0KCJTdHJ1Y3RQYXJlbnRzIiksYT10aGlzLnJvb3Quc3RydWN0UGFyZW50SWRzPy5nZXQoZSk7aWYoIU51bWJlci5pc0ludGVnZXIobikmJiFhKXJldHVybjtjb25zdCBzPW5ldyBNYXA7aWYoTnVtYmVyLmlzSW50ZWdlcihuKSl7Y29uc3QgZT10LmdldChuKTtpZihBcnJheS5pc0FycmF5KGUpKWZvcihjb25zdCB0IG9mIGUpdCBpbnN0YW5jZW9mIFJlZiYmdGhpcy5hZGROb2RlKHRoaXMueHJlZi5mZXRjaCh0KSxzKX1pZihhKWZvcihjb25zdFtlLG5db2YgYSl7Y29uc3QgYT10LmdldChlKTtpZihhKXtjb25zdCBlPXRoaXMuYWRkTm9kZSh0aGlzLnhyZWYuZmV0Y2hJZlJlZihhKSxzKTsxPT09ZT8ua2lkcz8ubGVuZ3RoJiZlLmtpZHNbMF0udHlwZT09PURyJiYoZS5raWRzWzBdLnR5cGU9bil9fX1hZGROb2RlKGUsdCxuPTApe2lmKG4+NDApe3dhcm4oIlN0cnVjdFRyZWUgTUFYX0RFUFRIIHJlYWNoZWQuIik7cmV0dXJuIG51bGx9aWYoIShlIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIG51bGw7aWYodC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO2NvbnN0IGE9bmV3IFN0cnVjdEVsZW1lbnROb2RlKHRoaXMsZSk7dC5zZXQoZSxhKTtzd2l0Y2goYS5yb2xlKXtjYXNlIkwiOmNhc2UiTEJvZHkiOmNhc2UiTEkiOmNhc2UiVGFibGUiOmNhc2UiVEhlYWQiOmNhc2UiVEJvZHkiOmNhc2UiVEZvb3QiOmNhc2UiVFIiOmZvcihjb25zdCBlIG9mIGEua2lkcyllLnR5cGU9PT1QciYmdGhpcy5hZGROb2RlKGUuZGljdCx0LG4tMSl9Y29uc3Qgcz1lLmdldCgiUCIpO2lmKCEocyBpbnN0YW5jZW9mIERpY3QpfHxpc05hbWUocy5nZXQoIlR5cGUiKSwiU3RydWN0VHJlZVJvb3QiKSl7dGhpcy5hZGRUb3BMZXZlbE5vZGUoZSxhKXx8dC5kZWxldGUoZSk7cmV0dXJuIGF9Y29uc3Qgcj10aGlzLmFkZE5vZGUocyx0LG4rMSk7aWYoIXIpcmV0dXJuIGE7bGV0IGk9ITE7Zm9yKGNvbnN0IHQgb2Ygci5raWRzKWlmKHQudHlwZT09PVByJiZ0LmRpY3Q9PT1lKXt0LnBhcmVudE5vZGU9YTtpPSEwfWl8fHQuZGVsZXRlKGUpO3JldHVybiBhfWFkZFRvcExldmVsTm9kZShlLHQpe2NvbnN0IG49dGhpcy5yb290LmdldEtpZFBvc2l0aW9uKGUub2JqSWQpO2lmKGlzTmFOKG4pKXJldHVybiExOy0xIT09biYmKHRoaXMubm9kZXNbbl09dCk7cmV0dXJuITB9Z2V0IHNlcmlhbGl6YWJsZSgpe2Z1bmN0aW9uIG5vZGVUb1NlcmlhbGl6YWJsZShlLHQsbj0wKXtpZihuPjQwKXt3YXJuKCJTdHJ1Y3RUcmVlIHRvbyBkZWVwIHRvIGJlIGZ1bGx5IHNlcmlhbGl6ZWQuIik7cmV0dXJufWNvbnN0IGE9T2JqZWN0LmNyZWF0ZShudWxsKTthLnJvbGU9ZS5yb2xlO2EuY2hpbGRyZW49W107dC5jaGlsZHJlbi5wdXNoKGEpO2xldCBzPWUuZGljdC5nZXQoIkFsdCIpOyJzdHJpbmciIT10eXBlb2YgcyYmKHM9ZS5kaWN0LmdldCgiQWN0dWFsVGV4dCIpKTsic3RyaW5nIj09dHlwZW9mIHMmJihhLmFsdD1zdHJpbmdUb1BERlN0cmluZyhzKSk7aWYoIkZvcm11bGEiPT09YS5yb2xlKXtjb25zdHttYXRoTUw6dH09ZTt0JiYoYS5tYXRoTUw9dCl9Y29uc3Qgcj1lLmRpY3QuZ2V0KCJBIik7aWYociBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9bG9va3VwTm9ybWFsUmVjdChyLmdldEFycmF5KCJCQm94IiksbnVsbCk7aWYoZSlhLmJib3g9ZTtlbHNle2NvbnN0IGU9ci5nZXQoIldpZHRoIiksdD1yLmdldCgiSGVpZ2h0Iik7Im51bWJlciI9PXR5cGVvZiBlJiZlPjAmJiJudW1iZXIiPT10eXBlb2YgdCYmdD4wJiYoYS5iYm94PVswLDAsZSx0XSl9fWNvbnN0IGk9ZS5kaWN0LmdldCgiTGFuZyIpOyJzdHJpbmciPT10eXBlb2YgaSYmKGEubGFuZz1zdHJpbmdUb1BERlN0cmluZyhpKSk7Zm9yKGNvbnN0IHQgb2YgZS5raWRzKXtjb25zdCBlPXQudHlwZT09PVByP3QucGFyZW50Tm9kZTpudWxsO2U/bm9kZVRvU2VyaWFsaXphYmxlKGUsYSxuKzEpOnQudHlwZT09PU9yfHx0LnR5cGU9PT1Scj9hLmNoaWxkcmVuLnB1c2goe3R5cGU6ImNvbnRlbnQiLGlkOmBwJHt0LnBhZ2VPYmpJZH1fbWMke3QubWNpZH1gfSk6dC50eXBlPT09RHI/YS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJvYmplY3QiLGlkOnQucmVmT2JqSWR9KTp0LnR5cGU9PT1NciYmYS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJhbm5vdGF0aW9uIixpZDpgcGRmanNfaW50ZXJuYWxfaWRfJHt0LnJlZk9iaklkfWB9KX19Y29uc3QgZT1PYmplY3QuY3JlYXRlKG51bGwpO2UuY2hpbGRyZW49W107ZS5yb2xlPSJSb290Ijtmb3IoY29uc3QgdCBvZiB0aGlzLm5vZGVzKXQmJm5vZGVUb1NlcmlhbGl6YWJsZSh0LGUpO3JldHVybiBlfX1jb25zdCBFcj1mdW5jdGlvbiBfaXNWYWxpZEV4cGxpY2l0RGVzdChlLHQsbil7aWYoIUFycmF5LmlzQXJyYXkobil8fG4ubGVuZ3RoPDIpcmV0dXJuITE7Y29uc3RbYSxzLC4uLnJdPW47aWYoIWUoYSkmJiFOdW1iZXIuaXNJbnRlZ2VyKGEpKXJldHVybiExO2lmKCF0KHMpKXJldHVybiExO2NvbnN0IGk9ci5sZW5ndGg7bGV0IG89ITA7c3dpdGNoKHMubmFtZSl7Y2FzZSJYWVoiOmlmKGk8Mnx8aT4zKXJldHVybiExO2JyZWFrO2Nhc2UiRml0IjpjYXNlIkZpdEIiOnJldHVybiAwPT09aTtjYXNlIkZpdEgiOmNhc2UiRml0QkgiOmNhc2UiRml0ViI6Y2FzZSJGaXRCViI6aWYoaT4xKXJldHVybiExO2JyZWFrO2Nhc2UiRml0UiI6aWYoNCE9PWkpcmV0dXJuITE7bz0hMTticmVhaztkZWZhdWx0OnJldHVybiExfWZvcihjb25zdCBlIG9mIHIpaWYoISgibnVtYmVyIj09dHlwZW9mIGV8fG8mJm51bGw9PT1lKSlyZXR1cm4hMTtyZXR1cm4hMH0uYmluZChudWxsLGU9PmUgaW5zdGFuY2VvZiBSZWYsaXNOYW1lKTtmdW5jdGlvbiBmZXRjaERlc3QoZSl7ZSBpbnN0YW5jZW9mIERpY3QmJihlPWUuZ2V0KCJEIikpO3JldHVybiBFcihlKT9lOm51bGx9ZnVuY3Rpb24gZmV0Y2hSZW1vdGVEZXN0KGUpe2xldCB0PWUuZ2V0KCJEIik7aWYodCl7dCBpbnN0YW5jZW9mIE5hbWUmJih0PXQubmFtZSk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBzdHJpbmdUb1BERlN0cmluZyh0LCEwKTtpZihFcih0KSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9cmV0dXJuIG51bGx9Y2xhc3MgQ2F0YWxvZ3sjcWU9bnVsbDsjdmU9bnVsbDtidWlsdEluQ01hcENhY2hlPW5ldyBNYXA7Zm9udENhY2hlPW5ldyBSZWZTZXRDYWNoZTtnbG9iYWxDb2xvclNwYWNlQ2FjaGU9bmV3IEdsb2JhbENvbG9yU3BhY2VDYWNoZTtnbG9iYWxJbWFnZUNhY2hlPW5ldyBHbG9iYWxJbWFnZUNhY2hlO25vbkJsZW5kTW9kZXNTZXQ9bmV3IFJlZlNldDtwYWdlRGljdENhY2hlPW5ldyBSZWZTZXRDYWNoZTtwYWdlSW5kZXhDYWNoZT1uZXcgUmVmU2V0Q2FjaGU7cGFnZUtpZHNDb3VudENhY2hlPW5ldyBSZWZTZXRDYWNoZTtzdGFuZGFyZEZvbnREYXRhQ2FjaGU9bmV3IE1hcDtzeXN0ZW1Gb250Q2FjaGU9bmV3IE1hcDtjb25zdHJ1Y3RvcihlLHQpe3RoaXMucGRmTWFuYWdlcj1lO3RoaXMueHJlZj10O3RoaXMuI3ZlPXQuZ2V0Q2F0YWxvZ09iaigpO2lmKCEodGhpcy4jdmUgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkNhdGFsb2cgb2JqZWN0IGlzIG5vdCBhIGRpY3Rpb25hcnkuIik7dGhpcy50b3BsZXZlbFBhZ2VzRGljdH1jbG9uZURpY3QoKXtyZXR1cm4gdGhpcy4jdmUuY2xvbmUoKX1nZXQgdmVyc2lvbigpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJWZXJzaW9uIik7aWYoZSBpbnN0YW5jZW9mIE5hbWUpe2lmKHVuLnRlc3QoZS5uYW1lKSlyZXR1cm4gc2hhZG93KHRoaXMsInZlcnNpb24iLGUubmFtZSk7d2FybihgSW52YWxpZCBQREYgY2F0YWxvZyB2ZXJzaW9uOiAke2UubmFtZX1gKX1yZXR1cm4gc2hhZG93KHRoaXMsInZlcnNpb24iLG51bGwpfWdldCBsYW5nKCl7Y29uc3QgZT10aGlzLiN2ZS5nZXQoIkxhbmciKTtyZXR1cm4gc2hhZG93KHRoaXMsImxhbmciLGUmJiJzdHJpbmciPT10eXBlb2YgZT9zdHJpbmdUb1BERlN0cmluZyhlKTpudWxsKX1nZXQgbmVlZHNSZW5kZXJpbmcoKXtjb25zdCBlPXRoaXMuI3ZlLmdldCgiTmVlZHNSZW5kZXJpbmciKTtyZXR1cm4gc2hhZG93KHRoaXMsIm5lZWRzUmVuZGVyaW5nIiwiYm9vbGVhbiI9PXR5cGVvZiBlJiZlKX1nZXQgY29sbGVjdGlvbigpe2xldCBlPW51bGw7dHJ5e2NvbnN0IHQ9dGhpcy4jdmUuZ2V0KCJDb2xsZWN0aW9uIik7dCBpbnN0YW5jZW9mIERpY3QmJnQuc2l6ZT4wJiYoZT10KX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTtpbmZvKCJDYW5ub3QgZmV0Y2ggQ29sbGVjdGlvbiBlbnRyeTsgYXNzdW1pbmcgbm8gY29sbGVjdGlvbiBpcyBwcmVzZW50LiIpfXJldHVybiBzaGFkb3codGhpcywiY29sbGVjdGlvbiIsZSl9Z2V0IGFjcm9Gb3JtKCl7bGV0IGU9bnVsbDt0cnl7Y29uc3QgdD10aGlzLiN2ZS5nZXQoIkFjcm9Gb3JtIik7dCBpbnN0YW5jZW9mIERpY3QmJnQuc2l6ZT4wJiYoZT10KX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTtpbmZvKCJDYW5ub3QgZmV0Y2ggQWNyb0Zvcm0gZW50cnk7IGFzc3VtaW5nIG5vIGZvcm1zIGFyZSBwcmVzZW50LiIpfXJldHVybiBzaGFkb3codGhpcywiYWNyb0Zvcm0iLGUpfWdldCBhY3JvRm9ybVJlZigpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0UmF3KCJBY3JvRm9ybSIpO3JldHVybiBzaGFkb3codGhpcywiYWNyb0Zvcm1SZWYiLGUgaW5zdGFuY2VvZiBSZWY/ZTpudWxsKX1nZXQgbWV0YWRhdGEoKXtjb25zdCBlPXRoaXMuI3ZlLmdldFJhdygiTWV0YWRhdGEiKTtpZighKGUgaW5zdGFuY2VvZiBSZWYpKXJldHVybiBzaGFkb3codGhpcywibWV0YWRhdGEiLG51bGwpO2xldCB0PW51bGw7dHJ5e2NvbnN0IG49dGhpcy54cmVmLmZldGNoKGUsIXRoaXMueHJlZi5lbmNyeXB0Py5lbmNyeXB0TWV0YWRhdGEpO2lmKG4gaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiZuLmRpY3QgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPW4uZGljdC5nZXQoIlR5cGUiKSxhPW4uZGljdC5nZXQoIlN1YnR5cGUiKTtpZihpc05hbWUoZSwiTWV0YWRhdGEiKSYmaXNOYW1lKGEsIlhNTCIpKXtjb25zdCBlPXN0cmluZ1RvVVRGOFN0cmluZyhuLmdldFN0cmluZygpKTtlJiYodD1uZXcgTWV0YWRhdGFQYXJzZXIoZSkuc2VyaWFsaXphYmxlKX19fWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO2luZm8oYFNraXBwaW5nIGludmFsaWQgTWV0YWRhdGE6ICIke2V9Ii5gKX1yZXR1cm4gc2hhZG93KHRoaXMsIm1ldGFkYXRhIix0KX1nZXQgbWFya0luZm8oKXtsZXQgZT1udWxsO3RyeXtlPXRoaXMuI1NlKCl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybigiVW5hYmxlIHRvIHJlYWQgbWFyayBpbmZvLiIpfXJldHVybiBzaGFkb3codGhpcywibWFya0luZm8iLGUpfSNTZSgpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJNYXJrSW5mbyIpO2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXJldHVybiBudWxsO2NvbnN0IHQ9e01hcmtlZDohMSxVc2VyUHJvcGVydGllczohMSxTdXNwZWN0czohMX07Zm9yKGNvbnN0IG4gaW4gdCl7Y29uc3QgYT1lLmdldChuKTsiYm9vbGVhbiI9PXR5cGVvZiBhJiYodFtuXT1hKX1yZXR1cm4gdH1nZXQgaGFzU3RydWN0VHJlZSgpe3JldHVybiB0aGlzLiN2ZS5oYXMoIlN0cnVjdFRyZWVSb290Iil9Z2V0IHN0cnVjdFRyZWVSb290KCl7bGV0IGU9bnVsbDt0cnl7ZT10aGlzLiN4ZSgpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oIlVuYWJsZSByZWFkIHRvIHN0cnVjdFRyZWVSb290IGluZm8uIil9cmV0dXJuIHNoYWRvdyh0aGlzLCJzdHJ1Y3RUcmVlUm9vdCIsZSl9I3hlKCl7Y29uc3QgZT10aGlzLiN2ZS5nZXRSYXcoIlN0cnVjdFRyZWVSb290IiksdD10aGlzLnhyZWYuZmV0Y2hJZlJlZihlKTtpZighKHQgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4gbnVsbDtjb25zdCBuPW5ldyBTdHJ1Y3RUcmVlUm9vdCh0aGlzLnhyZWYsdCxlKTtuLmluaXQoKTtyZXR1cm4gbn1nZXQgdG9wbGV2ZWxQYWdlc0RpY3QoKXtjb25zdCBlPXRoaXMuI3ZlLmdldCgiUGFnZXMiKTtpZighKGUgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgdG9wLWxldmVsIHBhZ2VzIGRpY3Rpb25hcnkuIik7cmV0dXJuIHNoYWRvdyh0aGlzLCJ0b3BsZXZlbFBhZ2VzRGljdCIsZSl9Z2V0IGRvY3VtZW50T3V0bGluZSgpe2xldCBlPW51bGw7dHJ5e2U9dGhpcy4jQWUoKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKCJVbmFibGUgdG8gcmVhZCBkb2N1bWVudCBvdXRsaW5lLiIpfXJldHVybiBzaGFkb3codGhpcywiZG9jdW1lbnRPdXRsaW5lIixlKX0jQWUoKXtsZXQgZT10aGlzLiN2ZS5nZXQoIk91dGxpbmVzIik7aWYoIShlIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIG51bGw7ZT1lLmdldFJhdygiRmlyc3QiKTtpZighKGUgaW5zdGFuY2VvZiBSZWYpKXJldHVybiBudWxsO2NvbnN0IHQ9e2l0ZW1zOltdfSxuPVt7b2JqOmUscGFyZW50OnR9XSxhPW5ldyBSZWZTZXQ7YS5wdXQoZSk7Y29uc3Qgcz10aGlzLnhyZWYscj1uZXcgVWludDhDbGFtcGVkQXJyYXkoMyk7Zm9yKDtuLmxlbmd0aD4wOyl7Y29uc3QgdD1uLnNoaWZ0KCksaT1zLmZldGNoSWZSZWYodC5vYmopO2lmKG51bGw9PT1pKWNvbnRpbnVlO2kuaGFzKCJUaXRsZSIpfHx3YXJuKCJJbnZhbGlkIG91dGxpbmUgaXRlbSBlbmNvdW50ZXJlZC4iKTtjb25zdCBvPXt1cmw6bnVsbCxkZXN0Om51bGwsYWN0aW9uOm51bGx9O0NhdGFsb2cucGFyc2VEZXN0RGljdGlvbmFyeSh7ZGVzdERpY3Q6aSxyZXN1bHRPYmo6byxkb2NCYXNlVXJsOnRoaXMuYmFzZVVybCxkb2NBdHRhY2htZW50czp0aGlzLmF0dGFjaG1lbnRzfSk7Y29uc3QgbD1pLmdldCgiVGl0bGUiKSxmPWkuZ2V0KCJGIil8fDAsYz1pLmdldEFycmF5KCJDIiksaD1pLmdldCgiQ291bnQiKTtsZXQgdT1yOyFpc051bWJlckFycmF5KGMsMyl8fDA9PT1jWzBdJiYwPT09Y1sxXSYmMD09PWNbMl18fCh1PUNvbG9yU3BhY2VVdGlscy5yZ2IuZ2V0UmdiKGMsMCkpO2NvbnN0IG09e2FjdGlvbjpvLmFjdGlvbixhdHRhY2htZW50Om8uYXR0YWNobWVudCxkZXN0Om8uZGVzdCx1cmw6by51cmwsdW5zYWZlVXJsOm8udW5zYWZlVXJsLG5ld1dpbmRvdzpvLm5ld1dpbmRvdyxzZXRPQ0dTdGF0ZTpvLnNldE9DR1N0YXRlLHRpdGxlOiJzdHJpbmciPT10eXBlb2YgbD9zdHJpbmdUb1BERlN0cmluZyhsKToiIixjb2xvcjp1LGNvdW50Ok51bWJlci5pc0ludGVnZXIoaCk/aDp2b2lkIDAsYm9sZDohISgyJmYpLGl0YWxpYzohISgxJmYpLGl0ZW1zOltdfTt0LnBhcmVudC5pdGVtcy5wdXNoKG0pO2U9aS5nZXRSYXcoIkZpcnN0Iik7aWYoZSBpbnN0YW5jZW9mIFJlZiYmIWEuaGFzKGUpKXtuLnB1c2goe29iajplLHBhcmVudDptfSk7YS5wdXQoZSl9ZT1pLmdldFJhdygiTmV4dCIpO2lmKGUgaW5zdGFuY2VvZiBSZWYmJiFhLmhhcyhlKSl7bi5wdXNoKHtvYmo6ZSxwYXJlbnQ6dC5wYXJlbnR9KTthLnB1dChlKX19cmV0dXJuIHQuaXRlbXMubGVuZ3RoPjA/dC5pdGVtczpudWxsfWdldCBwZXJtaXNzaW9ucygpe2xldCBlPW51bGw7dHJ5e2U9dGhpcy4jQ2UoKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKCJVbmFibGUgdG8gcmVhZCBwZXJtaXNzaW9ucy4iKX1yZXR1cm4gc2hhZG93KHRoaXMsInBlcm1pc3Npb25zIixlKX0jQ2UoKXtjb25zdCBlPXRoaXMueHJlZi50cmFpbGVyLmdldCgiRW5jcnlwdCIpO2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXJldHVybiBudWxsO2xldCB0PWUuZ2V0KCJQIik7aWYoIm51bWJlciIhPXR5cGVvZiB0KXJldHVybiBudWxsO3QrPTIqKjMyO2NvbnN0IG49W107Zm9yKGNvbnN0IGUgaW4gail7Y29uc3QgYT1qW2VdO3QmYSYmbi5wdXNoKGEpfXJldHVybiBufWdldCBvcHRpb25hbENvbnRlbnRDb25maWcoKXtsZXQgZT1udWxsO3RyeXtjb25zdCB0PXRoaXMuI3ZlLmdldCgiT0NQcm9wZXJ0aWVzIik7aWYoIXQpcmV0dXJuIHNoYWRvdyh0aGlzLCJvcHRpb25hbENvbnRlbnRDb25maWciLG51bGwpO2NvbnN0IG49dC5nZXQoIkQiKTtpZighbilyZXR1cm4gc2hhZG93KHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsbnVsbCk7Y29uc3QgYT10LmdldCgiT0NHcyIpO2lmKCFBcnJheS5pc0FycmF5KGEpKXJldHVybiBzaGFkb3codGhpcywib3B0aW9uYWxDb250ZW50Q29uZmlnIixudWxsKTtjb25zdCBzPW5ldyBSZWZTZXRDYWNoZTtmb3IoY29uc3QgZSBvZiBhKWUgaW5zdGFuY2VvZiBSZWYmJiFzLmhhcyhlKSYmcy5wdXQoZSx0aGlzLiNJZShlKSk7ZT10aGlzLiNGZShuLHMpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oYFVuYWJsZSB0byByZWFkIG9wdGlvbmFsIGNvbnRlbnQgY29uZmlnOiAke2V9YCl9cmV0dXJuIHNoYWRvdyh0aGlzLCJvcHRpb25hbENvbnRlbnRDb25maWciLGUpfSNJZShlKXtjb25zdCB0PXRoaXMueHJlZi5mZXRjaChlKSxuPXtpZDplLnRvU3RyaW5nKCksbmFtZTpudWxsLGludGVudDpudWxsLHVzYWdlOntwcmludDpudWxsLHZpZXc6bnVsbH0scmJHcm91cHM6W119LGE9dC5nZXQoIk5hbWUiKTsic3RyaW5nIj09dHlwZW9mIGEmJihuLm5hbWU9c3RyaW5nVG9QREZTdHJpbmcoYSkpO2xldCBzPXQuZ2V0QXJyYXkoIkludGVudCIpO0FycmF5LmlzQXJyYXkocyl8fChzPVtzXSk7cy5ldmVyeShlPT5lIGluc3RhbmNlb2YgTmFtZSkmJihuLmludGVudD1zLm1hcChlPT5lLm5hbWUpKTtjb25zdCByPXQuZ2V0KCJVc2FnZSIpO2lmKCEociBpbnN0YW5jZW9mIERpY3QpKXJldHVybiBuO2NvbnN0IGk9bi51c2FnZSxvPXIuZ2V0KCJQcmludCIpO2lmKG8gaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPW8uZ2V0KCJQcmludFN0YXRlIik7aWYoZSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGUubmFtZSl7Y2FzZSJPTiI6Y2FzZSJPRkYiOmkucHJpbnQ9e3ByaW50U3RhdGU6ZS5uYW1lfX19Y29uc3QgbD1yLmdldCgiVmlldyIpO2lmKGwgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPWwuZ2V0KCJWaWV3U3RhdGUiKTtpZihlIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goZS5uYW1lKXtjYXNlIk9OIjpjYXNlIk9GRiI6aS52aWV3PXt2aWV3U3RhdGU6ZS5uYW1lfX19cmV0dXJuIG59I0ZlKGUsdCl7ZnVuY3Rpb24gcGFyc2VPbk9mZihlKXtjb25zdCBuPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGNvbnN0IGEgb2YgZSlhIGluc3RhbmNlb2YgUmVmJiZ0LmhhcyhhKSYmbi5wdXNoKGEudG9TdHJpbmcoKSk7cmV0dXJuIG59ZnVuY3Rpb24gcGFyc2VPcmRlcihlLG49MCl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIG51bGw7Y29uc3Qgcz1bXTtmb3IoY29uc3QgciBvZiBlKXtpZihyIGluc3RhbmNlb2YgUmVmJiZ0LmhhcyhyKSl7YS5wdXQocik7cy5wdXNoKHIudG9TdHJpbmcoKSk7Y29udGludWV9Y29uc3QgZT1wYXJzZU5lc3RlZE9yZGVyKHIsbik7ZSYmcy5wdXNoKGUpfWlmKG4+MClyZXR1cm4gcztjb25zdCByPVtdO2Zvcihjb25zdFtlXW9mIHQuaXRlbXMoKSlhLmhhcyhlKXx8ci5wdXNoKGUudG9TdHJpbmcoKSk7ci5sZW5ndGgmJnMucHVzaCh7bmFtZTpudWxsLG9yZGVyOnJ9KTtyZXR1cm4gc31mdW5jdGlvbiBwYXJzZU5lc3RlZE9yZGVyKGUsdCl7aWYoKyt0PnMpe3dhcm4oInBhcnNlTmVzdGVkT3JkZXIgLSByZWFjaGVkIE1BWF9ORVNURURfTEVWRUxTLiIpO3JldHVybiBudWxsfWNvbnN0IGE9bi5mZXRjaElmUmVmKGUpO2lmKCFBcnJheS5pc0FycmF5KGEpKXJldHVybiBudWxsO2NvbnN0IHI9bi5mZXRjaElmUmVmKGFbMF0pO2lmKCJzdHJpbmciIT10eXBlb2YgcilyZXR1cm4gbnVsbDtjb25zdCBpPXBhcnNlT3JkZXIoYS5zbGljZSgxKSx0KTtyZXR1cm4gaT8ubGVuZ3RoP3tuYW1lOnN0cmluZ1RvUERGU3RyaW5nKHIpLG9yZGVyOml9Om51bGx9Y29uc3Qgbj10aGlzLnhyZWYsYT1uZXcgUmVmU2V0LHM9MTA7IWZ1bmN0aW9uIHBhcnNlUkJHcm91cHMoZSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IoY29uc3QgYSBvZiBlKXtjb25zdCBlPW4uZmV0Y2hJZlJlZihhKTtpZighQXJyYXkuaXNBcnJheShlKXx8IWUubGVuZ3RoKWNvbnRpbnVlO2NvbnN0IHM9bmV3IFNldDtmb3IoY29uc3QgbiBvZiBlKWlmKG4gaW5zdGFuY2VvZiBSZWYmJnQuaGFzKG4pJiYhcy5oYXMobi50b1N0cmluZygpKSl7cy5hZGQobi50b1N0cmluZygpKTt0LmdldChuKS5yYkdyb3Vwcy5wdXNoKHMpfX19KGUuZ2V0KCJSQkdyb3VwcyIpKTtyZXR1cm57bmFtZToic3RyaW5nIj09dHlwZW9mIGUuZ2V0KCJOYW1lIik/c3RyaW5nVG9QREZTdHJpbmcoZS5nZXQoIk5hbWUiKSk6bnVsbCxjcmVhdG9yOiJzdHJpbmciPT10eXBlb2YgZS5nZXQoIkNyZWF0b3IiKT9zdHJpbmdUb1BERlN0cmluZyhlLmdldCgiQ3JlYXRvciIpKTpudWxsLGJhc2VTdGF0ZTplLmdldCgiQmFzZVN0YXRlIilpbnN0YW5jZW9mIE5hbWU/ZS5nZXQoIkJhc2VTdGF0ZSIpLm5hbWU6bnVsbCxvbjpwYXJzZU9uT2ZmKGUuZ2V0KCJPTiIpKSxvZmY6cGFyc2VPbk9mZihlLmdldCgiT0ZGIikpLG9yZGVyOnBhcnNlT3JkZXIoZS5nZXQoIk9yZGVyIikpLGdyb3VwczpbLi4udF19fXNldEFjdHVhbE51bVBhZ2VzKGU9bnVsbCl7dGhpcy4jcWU9ZX1nZXQgaGFzQWN0dWFsTnVtUGFnZXMoKXtyZXR1cm4gbnVsbCE9PXRoaXMuI3FlfWdldCBfcGFnZXNDb3VudCgpe2NvbnN0IGU9dGhpcy50b3BsZXZlbFBhZ2VzRGljdC5nZXQoIkNvdW50Iik7aWYoIU51bWJlci5pc0ludGVnZXIoZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYWdlIGNvdW50IGluIHRvcC1sZXZlbCBwYWdlcyBkaWN0aW9uYXJ5IGlzIG5vdCBhbiBpbnRlZ2VyLiIpO3JldHVybiBzaGFkb3codGhpcywiX3BhZ2VzQ291bnQiLGUpfWdldCBudW1QYWdlcygpe3JldHVybiB0aGlzLiNxZT8/dGhpcy5fcGFnZXNDb3VudH1nZXQgZGVzdGluYXRpb25zKCl7Y29uc3QgZT10aGlzLiNUZSgpLHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgbiBvZiBlKWlmKG4gaW5zdGFuY2VvZiBOYW1lVHJlZSlmb3IoY29uc3RbZSxhXW9mIG4uZ2V0QWxsKCkpe2NvbnN0IG49ZmV0Y2hEZXN0KGEpO24mJih0W3N0cmluZ1RvUERGU3RyaW5nKGUsITApXT1uKX1lbHNlIGlmKG4gaW5zdGFuY2VvZiBEaWN0KWZvcihjb25zdFtlLGFdb2Ygbil7Y29uc3Qgbj1mZXRjaERlc3QoYSk7biYmKHRbc3RyaW5nVG9QREZTdHJpbmcoZSwhMCldfHw9bil9cmV0dXJuIHNoYWRvdyh0aGlzLCJkZXN0aW5hdGlvbnMiLHQpfWdldERlc3RpbmF0aW9uKGUpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoImRlc3RpbmF0aW9ucyIpKXJldHVybiB0aGlzLmRlc3RpbmF0aW9uc1tlXT8/bnVsbDtjb25zdCB0PXRoaXMuI1RlKCk7Zm9yKGNvbnN0IG4gb2YgdClpZihuIGluc3RhbmNlb2YgTmFtZVRyZWV8fG4gaW5zdGFuY2VvZiBEaWN0KXtjb25zdCB0PWZldGNoRGVzdChuLmdldChlKSk7aWYodClyZXR1cm4gdH1pZih0Lmxlbmd0aCl7Y29uc3QgdD10aGlzLmRlc3RpbmF0aW9uc1tlXTtpZih0KXJldHVybiB0fXJldHVybiBudWxsfSNUZSgpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJOYW1lcyIpLHQ9W107ZT8uaGFzKCJEZXN0cyIpJiZ0LnB1c2gobmV3IE5hbWVUcmVlKGUuZ2V0UmF3KCJEZXN0cyIpLHRoaXMueHJlZikpO3RoaXMuI3ZlLmhhcygiRGVzdHMiKSYmdC5wdXNoKHRoaXMuI3ZlLmdldCgiRGVzdHMiKSk7cmV0dXJuIHR9Z2V0IHJhd1BhZ2VMYWJlbHMoKXtjb25zdCBlPXRoaXMuI3ZlLmdldFJhdygiUGFnZUxhYmVscyIpO2lmKCFlKXJldHVybiBudWxsO3JldHVybiBuZXcgTnVtYmVyVHJlZShlLHRoaXMueHJlZikuZ2V0QWxsKCl9Z2V0IHBhZ2VMYWJlbHMoKXtsZXQgZT1udWxsO3RyeXtlPXRoaXMuI0hlKCl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybigiVW5hYmxlIHRvIHJlYWQgcGFnZSBsYWJlbHMuIil9cmV0dXJuIHNoYWRvdyh0aGlzLCJwYWdlTGFiZWxzIixlKX0jSGUoKXtjb25zdCBlPXRoaXMucmF3UGFnZUxhYmVscztpZighZSlyZXR1cm4gbnVsbDtjb25zdCB0PW5ldyBBcnJheSh0aGlzLm51bVBhZ2VzKTtsZXQgbj1udWxsLGE9IiIscz0iIixyPTE7Zm9yKGxldCBpPTAsbz10aGlzLm51bVBhZ2VzO2k8bztpKyspe2NvbnN0IG89ZS5nZXQoaSk7aWYodm9pZCAwIT09byl7aWYoIShvIGluc3RhbmNlb2YgRGljdCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYWdlTGFiZWwgaXMgbm90IGEgZGljdGlvbmFyeS4iKTtpZihvLmhhcygiVHlwZSIpJiYhaXNOYW1lKG8uZ2V0KCJUeXBlIiksIlBhZ2VMYWJlbCIpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCB0eXBlIGluIFBhZ2VMYWJlbCBkaWN0aW9uYXJ5LiIpO2lmKG8uaGFzKCJTIikpe2NvbnN0IGU9by5nZXQoIlMiKTtpZighKGUgaW5zdGFuY2VvZiBOYW1lKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgc3R5bGUgaW4gUGFnZUxhYmVsIGRpY3Rpb25hcnkuIik7bj1lLm5hbWV9ZWxzZSBuPW51bGw7aWYoby5oYXMoIlAiKSl7Y29uc3QgZT1vLmdldCgiUCIpO2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgcHJlZml4IGluIFBhZ2VMYWJlbCBkaWN0aW9uYXJ5LiIpO2E9c3RyaW5nVG9QREZTdHJpbmcoZSl9ZWxzZSBhPSIiO2lmKG8uaGFzKCJTdCIpKXtjb25zdCBlPW8uZ2V0KCJTdCIpO2lmKCEoTnVtYmVyLmlzSW50ZWdlcihlKSYmZT49MSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIHN0YXJ0IGluIFBhZ2VMYWJlbCBkaWN0aW9uYXJ5LiIpO3I9ZX1lbHNlIHI9MX1zd2l0Y2gobil7Y2FzZSJEIjpzPXI7YnJlYWs7Y2FzZSJSIjpjYXNlInIiOnM9dG9Sb21hbk51bWVyYWxzKHIsInIiPT09bik7YnJlYWs7Y2FzZSJBIjpjYXNlImEiOmNvbnN0IGU9MjYsdD0iYSI9PT1uPzk3OjY1LGE9ci0xO3M9U3RyaW5nLmZyb21DaGFyQ29kZSh0K2ElZSkucmVwZWF0KE1hdGguZmxvb3IoYS9lKSsxKTticmVhaztkZWZhdWx0OmlmKG4pdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIHN0eWxlICIke259IiBpbiBQYWdlTGFiZWwgZGljdGlvbmFyeS5gKTtzPSIifXRbaV09YStzO3IrK31yZXR1cm4gdH1nZXQgcGFnZUxheW91dCgpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJQYWdlTGF5b3V0Iik7bGV0IHQ9IiI7aWYoZSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGUubmFtZSl7Y2FzZSJTaW5nbGVQYWdlIjpjYXNlIk9uZUNvbHVtbiI6Y2FzZSJUd29Db2x1bW5MZWZ0IjpjYXNlIlR3b0NvbHVtblJpZ2h0IjpjYXNlIlR3b1BhZ2VMZWZ0IjpjYXNlIlR3b1BhZ2VSaWdodCI6dD1lLm5hbWV9cmV0dXJuIHNoYWRvdyh0aGlzLCJwYWdlTGF5b3V0Iix0KX1nZXQgcGFnZU1vZGUoKXtjb25zdCBlPXRoaXMuI3ZlLmdldCgiUGFnZU1vZGUiKTtsZXQgdD0iVXNlTm9uZSI7aWYoZSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGUubmFtZSl7Y2FzZSJVc2VOb25lIjpjYXNlIlVzZU91dGxpbmVzIjpjYXNlIlVzZVRodW1icyI6Y2FzZSJGdWxsU2NyZWVuIjpjYXNlIlVzZU9DIjpjYXNlIlVzZUF0dGFjaG1lbnRzIjp0PWUubmFtZX1yZXR1cm4gc2hhZG93KHRoaXMsInBhZ2VNb2RlIix0KX1nZXQgdmlld2VyUHJlZmVyZW5jZXMoKXtjb25zdCBlPXRoaXMuI3ZlLmdldCgiVmlld2VyUHJlZmVyZW5jZXMiKTtpZighKGUgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4gc2hhZG93KHRoaXMsInZpZXdlclByZWZlcmVuY2VzIixudWxsKTtsZXQgdD1udWxsO2Zvcihjb25zdFtuLGFdb2YgZSl7bGV0IGU7c3dpdGNoKG4pe2Nhc2UiSGlkZVRvb2xiYXIiOmNhc2UiSGlkZU1lbnViYXIiOmNhc2UiSGlkZVdpbmRvd1VJIjpjYXNlIkZpdFdpbmRvdyI6Y2FzZSJDZW50ZXJXaW5kb3ciOmNhc2UiRGlzcGxheURvY1RpdGxlIjpjYXNlIlBpY2tUcmF5QnlQREZTaXplIjoiYm9vbGVhbiI9PXR5cGVvZiBhJiYoZT1hKTticmVhaztjYXNlIk5vbkZ1bGxTY3JlZW5QYWdlTW9kZSI6aWYoYSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGEubmFtZSl7Y2FzZSJVc2VOb25lIjpjYXNlIlVzZU91dGxpbmVzIjpjYXNlIlVzZVRodW1icyI6Y2FzZSJVc2VPQyI6ZT1hLm5hbWU7YnJlYWs7ZGVmYXVsdDplPSJVc2VOb25lIn1icmVhaztjYXNlIkRpcmVjdGlvbiI6aWYoYSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGEubmFtZSl7Y2FzZSJMMlIiOmNhc2UiUjJMIjplPWEubmFtZTticmVhaztkZWZhdWx0OmU9IkwyUiJ9YnJlYWs7Y2FzZSJWaWV3QXJlYSI6Y2FzZSJWaWV3Q2xpcCI6Y2FzZSJQcmludEFyZWEiOmNhc2UiUHJpbnRDbGlwIjppZihhIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goYS5uYW1lKXtjYXNlIk1lZGlhQm94IjpjYXNlIkNyb3BCb3giOmNhc2UiQmxlZWRCb3giOmNhc2UiVHJpbUJveCI6Y2FzZSJBcnRCb3giOmU9YS5uYW1lO2JyZWFrO2RlZmF1bHQ6ZT0iQ3JvcEJveCJ9YnJlYWs7Y2FzZSJQcmludFNjYWxpbmciOmlmKGEgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChhLm5hbWUpe2Nhc2UiTm9uZSI6Y2FzZSJBcHBEZWZhdWx0IjplPWEubmFtZTticmVhaztkZWZhdWx0OmU9IkFwcERlZmF1bHQifWJyZWFrO2Nhc2UiRHVwbGV4IjppZihhIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goYS5uYW1lKXtjYXNlIlNpbXBsZXgiOmNhc2UiRHVwbGV4RmxpcFNob3J0RWRnZSI6Y2FzZSJEdXBsZXhGbGlwTG9uZ0VkZ2UiOmU9YS5uYW1lO2JyZWFrO2RlZmF1bHQ6ZT0iTm9uZSJ9YnJlYWs7Y2FzZSJQcmludFBhZ2VSYW5nZSI6aWYoQXJyYXkuaXNBcnJheShhKSYmYS5sZW5ndGglMj09MCl7YS5ldmVyeSgoZSx0LG4pPT5OdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPjAmJigwPT09dHx8ZT49blt0LTFdKSYmZTw9dGhpcy5udW1QYWdlcykmJihlPWEpfWJyZWFrO2Nhc2UiTnVtQ29waWVzIjpOdW1iZXIuaXNJbnRlZ2VyKGEpJiZhPjAmJihlPWEpO2JyZWFrO2RlZmF1bHQ6d2FybihgSWdub3Jpbmcgbm9uLXN0YW5kYXJkIGtleSBpbiBWaWV3ZXJQcmVmZXJlbmNlczogJHtufS5gKTtjb250aW51ZX1pZih2b2lkIDAhPT1lKXt0Pz89T2JqZWN0LmNyZWF0ZShudWxsKTt0W25dPWV9ZWxzZSB3YXJuKGBCYWQgdmFsdWUsIGZvciBrZXkgIiR7bn0iLCBpbiBWaWV3ZXJQcmVmZXJlbmNlczogJHthfS5gKX1yZXR1cm4gc2hhZG93KHRoaXMsInZpZXdlclByZWZlcmVuY2VzIix0KX1nZXQgb3BlbkFjdGlvbigpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJPcGVuQWN0aW9uIiksdD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGUgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBuPW5ldyBEaWN0KHRoaXMueHJlZik7bi5zZXQoIkEiLGUpO2NvbnN0IGE9e3VybDpudWxsLGRlc3Q6bnVsbCxhY3Rpb246bnVsbH07Q2F0YWxvZy5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDpuLHJlc3VsdE9iajphfSk7QXJyYXkuaXNBcnJheShhLmRlc3QpP3QuZGVzdD1hLmRlc3Q6YS5hY3Rpb24mJih0LmFjdGlvbj1hLmFjdGlvbil9ZWxzZSBFcihlKSYmKHQuZGVzdD1lKTtyZXR1cm4gc2hhZG93KHRoaXMsIm9wZW5BY3Rpb24iLG9iamVjdFNpemUodCk+MD90Om51bGwpfWdldCBhdHRhY2htZW50cygpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJOYW1lcyIpO2xldCB0PW51bGw7aWYoZSBpbnN0YW5jZW9mIERpY3QmJmUuaGFzKCJFbWJlZGRlZEZpbGVzIikpe2NvbnN0IG49bmV3IE5hbWVUcmVlKGUuZ2V0UmF3KCJFbWJlZGRlZEZpbGVzIiksdGhpcy54cmVmKTtmb3IoY29uc3RbZSxhXW9mIG4uZ2V0QWxsKCkpe2NvbnN0IG49bmV3IEZpbGVTcGVjKGEpO3Q/Pz1PYmplY3QuY3JlYXRlKG51bGwpO3Rbc3RyaW5nVG9QREZTdHJpbmcoZSwhMCldPW4uc2VyaWFsaXphYmxlfX1yZXR1cm4gc2hhZG93KHRoaXMsImF0dGFjaG1lbnRzIix0KX1nZXQgeGZhSW1hZ2VzKCl7Y29uc3QgZT10aGlzLiN2ZS5nZXQoIk5hbWVzIik7bGV0IHQ9bnVsbDtpZihlIGluc3RhbmNlb2YgRGljdCYmZS5oYXMoIlhGQUltYWdlcyIpKXtjb25zdCBuPW5ldyBOYW1lVHJlZShlLmdldFJhdygiWEZBSW1hZ2VzIiksdGhpcy54cmVmKTtmb3IoY29uc3RbZSxhXW9mIG4uZ2V0QWxsKCkpaWYoYSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pe3Q/Pz1uZXcgTWFwO3Quc2V0KHN0cmluZ1RvUERGU3RyaW5nKGUsITApLGEuZ2V0Qnl0ZXMoKSl9fXJldHVybiBzaGFkb3codGhpcywieGZhSW1hZ2VzIix0KX0jT2UoKXtjb25zdCBlPXRoaXMuI3ZlLmdldCgiTmFtZXMiKTtsZXQgdD1udWxsO2Z1bmN0aW9uIGFwcGVuZElmSmF2YVNjcmlwdERpY3QoZSxuKXtpZighKG4gaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47aWYoIWlzTmFtZShuLmdldCgiUyIpLCJKYXZhU2NyaXB0IikpcmV0dXJuO2xldCBhPW4uZ2V0KCJKUyIpO2lmKGEgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKWE9YS5nZXRTdHJpbmcoKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm47YT1zdHJpbmdUb1BERlN0cmluZyhhLCEwKS5yZXBsYWNlQWxsKCJcMCIsIiIpO2EmJih0fHw9bmV3IE1hcCkuc2V0KGUsYSl9aWYoZSBpbnN0YW5jZW9mIERpY3QmJmUuaGFzKCJKYXZhU2NyaXB0Iikpe2NvbnN0IHQ9bmV3IE5hbWVUcmVlKGUuZ2V0UmF3KCJKYXZhU2NyaXB0IiksdGhpcy54cmVmKTtmb3IoY29uc3RbZSxuXW9mIHQuZ2V0QWxsKCkpYXBwZW5kSWZKYXZhU2NyaXB0RGljdChzdHJpbmdUb1BERlN0cmluZyhlLCEwKSxuKX1jb25zdCBuPXRoaXMuI3ZlLmdldCgiT3BlbkFjdGlvbiIpO24mJmFwcGVuZElmSmF2YVNjcmlwdERpY3QoIk9wZW5BY3Rpb24iLG4pO3JldHVybiB0fWdldCBqc0FjdGlvbnMoKXtjb25zdCBlPXRoaXMuI09lKCk7bGV0IHQ9Y29sbGVjdEFjdGlvbnModGhpcy54cmVmLHRoaXMuI3ZlLHJlKTtpZihlKXt0fHw9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3RbbixhXW9mIGUpbiBpbiB0P3Rbbl0ucHVzaChhKTp0W25dPVthXX1yZXR1cm4gc2hhZG93KHRoaXMsImpzQWN0aW9ucyIsdCl9YXN5bmMgY2xlYW51cChlPSExKXtjbGVhckdsb2JhbENhY2hlcygpO3RoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLmNsZWFyKCk7dGhpcy5nbG9iYWxJbWFnZUNhY2hlLmNsZWFyKGUpO3RoaXMucGFnZUtpZHNDb3VudENhY2hlLmNsZWFyKCk7dGhpcy5wYWdlSW5kZXhDYWNoZS5jbGVhcigpO3RoaXMucGFnZURpY3RDYWNoZS5jbGVhcigpO3RoaXMubm9uQmxlbmRNb2Rlc1NldC5jbGVhcigpO2Zvcihjb25zdHtkaWN0OmV9b2YgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5mb250Q2FjaGUpKWRlbGV0ZSBlLmNhY2hlS2V5O3RoaXMuZm9udENhY2hlLmNsZWFyKCk7dGhpcy5idWlsdEluQ01hcENhY2hlLmNsZWFyKCk7dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUuY2xlYXIoKTt0aGlzLnN5c3RlbUZvbnRDYWNoZS5jbGVhcigpfWFzeW5jIGdldFBhZ2VEaWN0KGUpe2NvbnN0IHQ9W3RoaXMudG9wbGV2ZWxQYWdlc0RpY3RdLG49bmV3IFJlZlNldCxhPXRoaXMuI3ZlLmdldFJhdygiUGFnZXMiKTthIGluc3RhbmNlb2YgUmVmJiZuLnB1dChhKTtjb25zdCBzPXRoaXMueHJlZixyPXRoaXMucGFnZUtpZHNDb3VudENhY2hlLGk9dGhpcy5wYWdlSW5kZXhDYWNoZSxvPXRoaXMucGFnZURpY3RDYWNoZTtsZXQgbD0wO2Zvcig7dC5sZW5ndGg7KXtjb25zdCBhPXQucG9wKCk7aWYoYSBpbnN0YW5jZW9mIFJlZil7Y29uc3QgZj1yLmdldChhKTtpZihmPj0wJiZsK2Y8PWUpe2wrPWY7Y29udGludWV9aWYobi5oYXMoYSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYWdlcyB0cmVlIGNvbnRhaW5zIGNpcmN1bGFyIHJlZmVyZW5jZS4iKTtuLnB1dChhKTtjb25zdCBjPWF3YWl0KG8uZ2V0KGEpfHxzLmZldGNoQXN5bmMoYSkpO2lmKGMgaW5zdGFuY2VvZiBEaWN0KXtsZXQgdD1jLmdldFJhdygiVHlwZSIpO3QgaW5zdGFuY2VvZiBSZWYmJih0PWF3YWl0IHMuZmV0Y2hBc3luYyh0KSk7aWYoaXNOYW1lKHQsIlBhZ2UiKXx8IWMuaGFzKCJLaWRzIikpe3IuaGFzKGEpfHxyLnB1dChhLDEpO2kuaGFzKGEpfHxpLnB1dChhLGwpO2lmKGw9PT1lKXJldHVybltjLGFdO2wrKztjb250aW51ZX19dC5wdXNoKGMpO2NvbnRpbnVlfWlmKCEoYSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiUGFnZSBkaWN0aW9uYXJ5IGtpZCByZWZlcmVuY2UgcG9pbnRzIHRvIHdyb25nIHR5cGUgb2Ygb2JqZWN0LiIpO2NvbnN0e29iaklkOmZ9PWE7bGV0IGM9YS5nZXRSYXcoIkNvdW50Iik7YyBpbnN0YW5jZW9mIFJlZiYmKGM9YXdhaXQgcy5mZXRjaEFzeW5jKGMpKTtpZihOdW1iZXIuaXNJbnRlZ2VyKGMpJiZjPj0wKXtmJiYhci5oYXMoZikmJnIucHV0KGYsYyk7aWYobCtjPD1lKXtsKz1jO2NvbnRpbnVlfX1sZXQgaD1hLmdldFJhdygiS2lkcyIpO2ggaW5zdGFuY2VvZiBSZWYmJihoPWF3YWl0IHMuZmV0Y2hBc3luYyhoKSk7aWYoIUFycmF5LmlzQXJyYXkoaCkpe2xldCB0PWEuZ2V0UmF3KCJUeXBlIik7dCBpbnN0YW5jZW9mIFJlZiYmKHQ9YXdhaXQgcy5mZXRjaEFzeW5jKHQpKTtpZihpc05hbWUodCwiUGFnZSIpfHwhYS5oYXMoIktpZHMiKSl7aWYobD09PWUpcmV0dXJuW2EsbnVsbF07bCsrO2NvbnRpbnVlfXRocm93IG5ldyBGb3JtYXRFcnJvcigiUGFnZSBkaWN0aW9uYXJ5IGtpZHMgb2JqZWN0IGlzIG5vdCBhbiBhcnJheS4iKX1mb3IobGV0IGU9aC5sZW5ndGgtMTtlPj0wO2UtLSl7Y29uc3Qgbj1oW2VdO3QucHVzaChuKTthPT09dGhpcy50b3BsZXZlbFBhZ2VzRGljdCYmbiBpbnN0YW5jZW9mIFJlZiYmIW8uaGFzKG4pJiZvLnB1dChuLHMuZmV0Y2hBc3luYyhuKSl9fXRocm93IG5ldyBFcnJvcihgUGFnZSBpbmRleCAke2V9IG5vdCBmb3VuZC5gKX1hc3luYyBnZXRBbGxQYWdlRGljdHMoZT0hMSl7Y29uc3R7aWdub3JlRXJyb3JzOnR9PXRoaXMucGRmTWFuYWdlci5ldmFsdWF0b3JPcHRpb25zLG49W3tjdXJyZW50Tm9kZTp0aGlzLnRvcGxldmVsUGFnZXNEaWN0LHBvc0luS2lkczowfV0sYT1uZXcgUmVmU2V0LHM9dGhpcy4jdmUuZ2V0UmF3KCJQYWdlcyIpO3MgaW5zdGFuY2VvZiBSZWYmJmEucHV0KHMpO2NvbnN0IHI9bmV3IE1hcCxpPXRoaXMueHJlZixvPXRoaXMucGFnZUluZGV4Q2FjaGU7bGV0IGw9MDtmdW5jdGlvbiBhZGRQYWdlRGljdChlLHQpe3QmJiFvLmhhcyh0KSYmby5wdXQodCxsKTtyLnNldChsKyssW2UsdF0pfWZ1bmN0aW9uIGFkZFBhZ2VFcnJvcihuKXtpZihuIGluc3RhbmNlb2YgWFJlZkVudHJ5RXhjZXB0aW9uJiYhZSl0aHJvdyBuO2lmKGUmJnQmJjA9PT1sKXt3YXJuKGBnZXRBbGxQYWdlRGljdHMgLSBTa2lwcGluZyBpbnZhbGlkIGZpcnN0IHBhZ2U6ICIke259Ii5gKTtuPURpY3QuZW1wdHl9ci5zZXQobCsrLFtuLG51bGxdKX1mb3IoO24ubGVuZ3RoPjA7KXtjb25zdCBlPW4uYXQoLTEpLHtjdXJyZW50Tm9kZTp0LHBvc0luS2lkczpzfT1lO2xldCByPXQuZ2V0UmF3KCJLaWRzIik7aWYociBpbnN0YW5jZW9mIFJlZil0cnl7cj1hd2FpdCBpLmZldGNoQXN5bmMocil9Y2F0Y2goZSl7YWRkUGFnZUVycm9yKGUpO2JyZWFrfWlmKCFBcnJheS5pc0FycmF5KHIpKXthZGRQYWdlRXJyb3IobmV3IEZvcm1hdEVycm9yKCJQYWdlIGRpY3Rpb25hcnkga2lkcyBvYmplY3QgaXMgbm90IGFuIGFycmF5LiIpKTticmVha31pZihzPj1yLmxlbmd0aCl7bi5wb3AoKTtjb250aW51ZX1jb25zdCBvPXJbc107bGV0IGw7aWYobyBpbnN0YW5jZW9mIFJlZil7aWYoYS5oYXMobykpe2FkZFBhZ2VFcnJvcihuZXcgRm9ybWF0RXJyb3IoIlBhZ2VzIHRyZWUgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlLiIpKTticmVha31hLnB1dChvKTt0cnl7bD1hd2FpdCBpLmZldGNoQXN5bmMobyl9Y2F0Y2goZSl7YWRkUGFnZUVycm9yKGUpO2JyZWFrfX1lbHNlIGw9bztpZighKGwgaW5zdGFuY2VvZiBEaWN0KSl7YWRkUGFnZUVycm9yKG5ldyBGb3JtYXRFcnJvcigiUGFnZSBkaWN0aW9uYXJ5IGtpZCByZWZlcmVuY2UgcG9pbnRzIHRvIHdyb25nIHR5cGUgb2Ygb2JqZWN0LiIpKTticmVha31sZXQgZj1sLmdldFJhdygiVHlwZSIpO2lmKGYgaW5zdGFuY2VvZiBSZWYpdHJ5e2Y9YXdhaXQgaS5mZXRjaEFzeW5jKGYpfWNhdGNoKGUpe2FkZFBhZ2VFcnJvcihlKTticmVha31pc05hbWUoZiwiUGFnZSIpfHwhbC5oYXMoIktpZHMiKT9hZGRQYWdlRGljdChsLG8gaW5zdGFuY2VvZiBSZWY/bzpudWxsKTpuLnB1c2goe2N1cnJlbnROb2RlOmwscG9zSW5LaWRzOjB9KTtlLnBvc0luS2lkcysrfXJldHVybiByfWdldFBhZ2VJbmRleChlKXtjb25zdCB0PXRoaXMucGFnZUluZGV4Q2FjaGUuZ2V0KGUpO2lmKHZvaWQgMCE9PXQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0KTtjb25zdCBuPXRoaXMueHJlZjtsZXQgYT0wO2NvbnN0IG5leHQ9dD0+ZnVuY3Rpb24gcGFnZXNCZWZvcmVSZWYodCl7bGV0IGEscz0wO3JldHVybiBuLmZldGNoQXN5bmModCkudGhlbihmdW5jdGlvbihuKXtpZihpc1JlZnNFcXVhbCh0LGUpJiYhaXNEaWN0KG4sIlBhZ2UiKSYmIShuIGluc3RhbmNlb2YgRGljdCYmIW4uaGFzKCJUeXBlIikmJm4uaGFzKCJDb250ZW50cyIpKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlRoZSByZWZlcmVuY2UgZG9lcyBub3QgcG9pbnQgdG8gYSAvUGFnZSBkaWN0aW9uYXJ5LiIpO2lmKCFuKXJldHVybiBudWxsO2lmKCEobiBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTm9kZSBtdXN0IGJlIGEgZGljdGlvbmFyeS4iKTthPW4uZ2V0UmF3KCJQYXJlbnQiKTtyZXR1cm4gbi5nZXRBc3luYygiUGFyZW50Iil9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBudWxsO2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiUGFyZW50IG11c3QgYmUgYSBkaWN0aW9uYXJ5LiIpO3JldHVybiBlLmdldEFzeW5jKCJLaWRzIil9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBudWxsO2NvbnN0IHI9W107bGV0IGk9ITE7Zm9yKGNvbnN0IGEgb2YgZSl7aWYoIShhIGluc3RhbmNlb2YgUmVmKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIktpZCBtdXN0IGJlIGEgcmVmZXJlbmNlLiIpO2lmKGlzUmVmc0VxdWFsKGEsdCkpe2k9ITA7YnJlYWt9ci5wdXNoKG4uZmV0Y2hBc3luYyhhKS50aGVuKGZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiS2lkIG5vZGUgbXVzdCBiZSBhIGRpY3Rpb25hcnkuIik7ZS5oYXMoIkNvdW50Iik/cys9ZS5nZXQoIkNvdW50Iik6cysrfSkpfWlmKCFpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiS2lkIHJlZmVyZW5jZSBub3QgZm91bmQgaW4gcGFyZW50J3Mga2lkcy4iKTtyZXR1cm4gUHJvbWlzZS5hbGwocikudGhlbigoKT0+W3MsYV0pfSl9KHQpLnRoZW4odD0+e2lmKCF0KXt0aGlzLnBhZ2VJbmRleENhY2hlLnB1dChlLGEpO3JldHVybiBhfWNvbnN0W24sc109dDthKz1uO3JldHVybiBuZXh0KHMpfSk7cmV0dXJuIG5leHQoZSl9Z2V0IGJhc2VVcmwoKXtjb25zdCBlPXRoaXMuI3ZlLmdldCgiVVJJIik7aWYoZSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IHQ9ZS5nZXQoIkJhc2UiKTtpZigic3RyaW5nIj09dHlwZW9mIHQpe2NvbnN0IGU9Y3JlYXRlVmFsaWRBYnNvbHV0ZVVybCh0LG51bGwse3RyeUNvbnZlcnRFbmNvZGluZzohMH0pO2lmKGUpcmV0dXJuIHNoYWRvdyh0aGlzLCJiYXNlVXJsIixlLmhyZWYpfX1yZXR1cm4gc2hhZG93KHRoaXMsImJhc2VVcmwiLHRoaXMucGRmTWFuYWdlci5kb2NCYXNlVXJsKX1zdGF0aWMgcGFyc2VEZXN0RGljdGlvbmFyeSh7ZGVzdERpY3Q6ZSxyZXN1bHRPYmo6dCxkb2NCYXNlVXJsOm49bnVsbCxkb2NBdHRhY2htZW50czphPW51bGx9KXtpZighKGUgaW5zdGFuY2VvZiBEaWN0KSl7d2FybigicGFyc2VEZXN0RGljdGlvbmFyeTogYGRlc3REaWN0YCBtdXN0IGJlIGEgZGljdGlvbmFyeS4iKTtyZXR1cm59bGV0IHMscixpPWUuZ2V0KCJBIik7aWYoIShpIGluc3RhbmNlb2YgRGljdCkpaWYoZS5oYXMoIkRlc3QiKSlpPWUuZ2V0KCJEZXN0Iik7ZWxzZXtpPWUuZ2V0KCJBQSIpO2kgaW5zdGFuY2VvZiBEaWN0JiYoaS5oYXMoIkQiKT9pPWkuZ2V0KCJEIik6aS5oYXMoIlUiKSYmKGk9aS5nZXQoIlUiKSkpfWlmKGkgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPWkuZ2V0KCJTIik7aWYoIShlIGluc3RhbmNlb2YgTmFtZSkpe3dhcm4oInBhcnNlRGVzdERpY3Rpb25hcnk6IEludmFsaWQgdHlwZSBpbiBBY3Rpb24gZGljdGlvbmFyeS4iKTtyZXR1cm59Y29uc3Qgbj1lLm5hbWU7c3dpdGNoKG4pe2Nhc2UiUmVzZXRGb3JtIjpjb25zdCBlPWkuZ2V0KCJGbGFncyIpLG89ISgxJigibnVtYmVyIj09dHlwZW9mIGU/ZTowKSksbD1bXSxmPVtdO2Zvcihjb25zdCBlIG9mIGkuZ2V0KCJGaWVsZHMiKXx8W10pZSBpbnN0YW5jZW9mIFJlZj9mLnB1c2goZS50b1N0cmluZygpKToic3RyaW5nIj09dHlwZW9mIGUmJmwucHVzaChzdHJpbmdUb1BERlN0cmluZyhlKSk7dC5yZXNldEZvcm09e2ZpZWxkczpsLHJlZnM6ZixpbmNsdWRlOm99O2JyZWFrO2Nhc2UiVVJJIjpzPWkuZ2V0KCJVUkkiKTtzIGluc3RhbmNlb2YgTmFtZSYmKHM9Ii8iK3MubmFtZSk7YnJlYWs7Y2FzZSJHb1RvIjpyPWkuZ2V0KCJEIik7YnJlYWs7Y2FzZSJMYXVuY2giOmNhc2UiR29Ub1IiOmNvbnN0IGM9aS5nZXQoIkYiKTtpZihjIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1uZXcgRmlsZVNwZWMoYywhMCk7KHtyYXdGaWxlbmFtZTpzfT1lLnNlcmlhbGl6YWJsZSl9ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGMpYnJlYWs7cz1jfWNvbnN0IGg9ZmV0Y2hSZW1vdGVEZXN0KGkpO2gmJihzPXMuc3BsaXQoIiMiLDEpWzBdKyIjIitoKTtjb25zdCB1PWkuZ2V0KCJOZXdXaW5kb3ciKTsiYm9vbGVhbiI9PXR5cGVvZiB1JiYodC5uZXdXaW5kb3c9dSk7YnJlYWs7Y2FzZSJHb1RvRSI6Y29uc3QgbT1pLmdldCgiVCIpO2xldCBwO2lmKGEmJm0gaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPW0uZ2V0KCJSIiksdD1tLmdldCgiTiIpO2lzTmFtZShlLCJDIikmJiJzdHJpbmciPT10eXBlb2YgdCYmKHA9YVtzdHJpbmdUb1BERlN0cmluZyh0LCEwKV0pfWlmKHApe3QuYXR0YWNobWVudD1wO2NvbnN0IGU9ZmV0Y2hSZW1vdGVEZXN0KGkpO2UmJih0LmF0dGFjaG1lbnREZXN0PWUpfWVsc2Ugd2FybigncGFyc2VEZXN0RGljdGlvbmFyeSAtIHVuaW1wbGVtZW50ZWQgIkdvVG9FIiBhY3Rpb24uJyk7YnJlYWs7Y2FzZSJOYW1lZCI6Y29uc3QgZD1pLmdldCgiTiIpO2QgaW5zdGFuY2VvZiBOYW1lJiYodC5hY3Rpb249ZC5uYW1lKTticmVhaztjYXNlIlNldE9DR1N0YXRlIjpjb25zdCBnPWkuZ2V0KCJTdGF0ZSIpLGI9aS5nZXQoIlByZXNlcnZlUkIiKTtpZighQXJyYXkuaXNBcnJheShnKXx8MD09PWcubGVuZ3RoKWJyZWFrO2NvbnN0IHc9W107Zm9yKGNvbnN0IGUgb2YgZylpZihlIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goZS5uYW1lKXtjYXNlIk9OIjpjYXNlIk9GRiI6Y2FzZSJUb2dnbGUiOncucHVzaChlLm5hbWUpfWVsc2UgZSBpbnN0YW5jZW9mIFJlZiYmdy5wdXNoKGUudG9TdHJpbmcoKSk7aWYody5sZW5ndGghPT1nLmxlbmd0aClicmVhazt0LnNldE9DR1N0YXRlPXtzdGF0ZTp3LHByZXNlcnZlUkI6ImJvb2xlYW4iIT10eXBlb2YgYnx8Yn07YnJlYWs7Y2FzZSJKYXZhU2NyaXB0Ijpjb25zdCBqPWkuZ2V0KCJKUyIpO2xldCBrO2ogaW5zdGFuY2VvZiBCYXNlU3RyZWFtP2s9ai5nZXRTdHJpbmcoKToic3RyaW5nIj09dHlwZW9mIGomJihrPWopO2NvbnN0IHk9ayYmcmVjb3ZlckpzVVJMKHN0cmluZ1RvUERGU3RyaW5nKGssITApKTtpZih5KXtzPXkudXJsO3QubmV3V2luZG93PXkubmV3V2luZG93O2JyZWFrfWRlZmF1bHQ6aWYoIkphdmFTY3JpcHQiPT09bnx8IlN1Ym1pdEZvcm0iPT09bilicmVhazt3YXJuKGBwYXJzZURlc3REaWN0aW9uYXJ5IC0gdW5zdXBwb3J0ZWQgYWN0aW9uOiAiJHtufSIuYCl9fWVsc2UgZS5oYXMoIkRlc3QiKSYmKHI9ZS5nZXQoIkRlc3QiKSk7aWYoInN0cmluZyI9PXR5cGVvZiBzKXtjb25zdCBlPWNyZWF0ZVZhbGlkQWJzb2x1dGVVcmwocyxuLHthZGREZWZhdWx0UHJvdG9jb2w6ITAsdHJ5Q29udmVydEVuY29kaW5nOiEwfSk7ZSYmKHQudXJsPWUuaHJlZik7dC51bnNhZmVVcmw9c31pZihyKXtyIGluc3RhbmNlb2YgTmFtZSYmKHI9ci5uYW1lKTsic3RyaW5nIj09dHlwZW9mIHI/dC5kZXN0PXN0cmluZ1RvUERGU3RyaW5nKHIsITApOkVyKHIpJiYodC5kZXN0PXIpfX19ZnVuY3Rpb24gbWF5SGF2ZUNoaWxkcmVuKGUpe3JldHVybiBlIGluc3RhbmNlb2YgUmVmfHxlIGluc3RhbmNlb2YgRGljdHx8ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW18fEFycmF5LmlzQXJyYXkoZSl9ZnVuY3Rpb24gYWRkQ2hpbGRyZW4oZSx0KXtpZihlIGluc3RhbmNlb2YgRGljdCllPWUuZ2V0UmF3VmFsdWVzKCk7ZWxzZSBpZihlIGluc3RhbmNlb2YgQmFzZVN0cmVhbSllPWUuZGljdC5nZXRSYXdWYWx1ZXMoKTtlbHNlIGlmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybjtmb3IoY29uc3QgbiBvZiBlKW1heUhhdmVDaGlsZHJlbihuKSYmdC5wdXNoKG4pfWNsYXNzIE9iamVjdExvYWRlcntyZWZTZXQ9bmV3IFJlZlNldDtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5kaWN0PWU7dGhpcy5rZXlzPXQ7dGhpcy54cmVmPW59YXN5bmMgbG9hZCgpe2NvbnN0e2tleXM6ZSxkaWN0OnR9PXRoaXMsbj1bXTtmb3IoY29uc3QgYSBvZiBlKXtjb25zdCBlPXQuZ2V0UmF3KGEpO3ZvaWQgMCE9PWUmJm4ucHVzaChlKX1hd2FpdCB0aGlzLiNCZShuKTt0aGlzLnJlZlNldD1udWxsfWFzeW5jI0JlKGUpe2NvbnN0IHQ9W10sbj1bXTtmb3IoO2UubGVuZ3RoOyl7bGV0IGE9ZS5wb3AoKTtpZihhIGluc3RhbmNlb2YgUmVmKXtpZih0aGlzLnJlZlNldC5oYXMoYSkpY29udGludWU7dHJ5e3RoaXMucmVmU2V0LnB1dChhKTthPXRoaXMueHJlZi5mZXRjaChhKX1jYXRjaChlKXtpZighKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbikpe3dhcm4oYE9iamVjdExvYWRlci4jd2FsayAtIHJlcXVlc3RpbmcgYWxsIGRhdGE6ICIke2V9Ii5gKTthd2FpdCB0aGlzLnhyZWYuc3RyZWFtLm1hbmFnZXIucmVxdWVzdEFsbENodW5rcygpO3JldHVybn10LnB1c2goYSk7bi5wdXNoKHtiZWdpbjplLmJlZ2luLGVuZDplLmVuZH0pfX1pZihhIGluc3RhbmNlb2YgQmFzZVN0cmVhbSl7Y29uc3QgZT1hLmdldEJhc2VTdHJlYW1zKCk7aWYoZSl7bGV0IHM9ITE7Zm9yKGNvbnN0IHQgb2YgZSlpZighdC5pc0RhdGFMb2FkZWQpe3M9ITA7bi5wdXNoKHtiZWdpbjp0LnN0YXJ0LGVuZDp0LmVuZH0pfXMmJnQucHVzaChhKX19YWRkQ2hpbGRyZW4oYSxlKX1pZihuLmxlbmd0aCl7YXdhaXQgdGhpcy54cmVmLnN0cmVhbS5tYW5hZ2VyLnJlcXVlc3RSYW5nZXMobik7Zm9yKGNvbnN0IGUgb2YgdCllIGluc3RhbmNlb2YgUmVmJiZ0aGlzLnJlZlNldC5yZW1vdmUoZSk7YXdhaXQgdGhpcy4jQmUodCl9fXN0YXRpYyBhc3luYyBsb2FkKGUsdCxuKXtpZihuLnN0cmVhbS5pc0RhdGFMb2FkZWQpcmV0dXJuO2NvbnN0IGE9bmV3IE9iamVjdExvYWRlcihlLHQsbik7YXdhaXQgYS5sb2FkKCl9fWNvbnN0IE5yPVN5bWJvbCgpLHpyPVN5bWJvbCgpLExyPVN5bWJvbCgpLFVyPVN5bWJvbCgpLF9yPVN5bWJvbCgpLFhyPVN5bWJvbCgpLFdyPVN5bWJvbCgpLEtyPVN5bWJvbCgpLEdyPVN5bWJvbCgpLFZyPVN5bWJvbCgiY29udGVudCIpLCRyPVN5bWJvbCgiZGF0YSIpLFlyPVN5bWJvbCgpLEpyPVN5bWJvbCgiZXh0cmEiKSxRcj1TeW1ib2woKSxacj1TeW1ib2woKSxlaT1TeW1ib2woKSx0aT1TeW1ib2woKSxuaT1TeW1ib2woKSxhaT1TeW1ib2woKSxzaT1TeW1ib2woKSxyaT1TeW1ib2woKSxpaT1TeW1ib2woKSxvaT1TeW1ib2woKSxsaT1TeW1ib2woKSxmaT1TeW1ib2woKSxjaT1TeW1ib2woKSxoaT1TeW1ib2woKSx1aT1TeW1ib2woKSxtaT1TeW1ib2woKSxwaT1TeW1ib2woKSxkaT1TeW1ib2woKSxnaT1TeW1ib2woKSxiaT1TeW1ib2woKSx3aT1TeW1ib2woKSxqaT1TeW1ib2woKSxraT1TeW1ib2woKSx5aT1TeW1ib2woKSxxaT1TeW1ib2woKSx2aT1TeW1ib2woKSxTaT1TeW1ib2woKSx4aT1TeW1ib2woKSxBaT1TeW1ib2woKSxDaT1TeW1ib2woKSxJaT1TeW1ib2woKSxGaT1TeW1ib2woKSxUaT1TeW1ib2woIm5hbWVzcGFjZUlkIiksSGk9U3ltYm9sKCJub2RlTmFtZSIpLE9pPVN5bWJvbCgpLEJpPVN5bWJvbCgpLFJpPVN5bWJvbCgpLERpPVN5bWJvbCgpLE1pPVN5bWJvbCgpLFBpPVN5bWJvbCgpLEVpPVN5bWJvbCgpLE5pPVN5bWJvbCgpLHppPVN5bWJvbCgicm9vdCIpLF9pPVN5bWJvbCgpLFhpPVN5bWJvbCgpLFdpPVN5bWJvbCgpLEtpPVN5bWJvbCgpLEdpPVN5bWJvbCgpLFZpPVN5bWJvbCgpLCRpPVN5bWJvbCgpLFlpPVN5bWJvbCgpLEppPVN5bWJvbCgpLFFpPVN5bWJvbCgpLFppPVN5bWJvbCgpLGVvPVN5bWJvbCgidWlkIiksdG89U3ltYm9sKCksbm89e2NvbmZpZzp7aWQ6MCxjaGVjazplPT5lLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGNpLyIpfSxjb25uZWN0aW9uU2V0OntpZDoxLGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtY29ubmVjdGlvbi1zZXQvIil9LGRhdGFzZXRzOntpZDoyLGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtZGF0YS8iKX0sZm9ybTp7aWQ6MyxjaGVjazplPT5lLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWZvcm0vIil9LGxvY2FsZVNldDp7aWQ6NCxjaGVjazplPT5lLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWxvY2FsZS1zZXQvIil9LHBkZjp7aWQ6NSxjaGVjazplPT4iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvcGRmLyI9PT1lfSxzaWduYXR1cmU6e2lkOjYsY2hlY2s6ZT0+Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPT09ZX0sc291cmNlU2V0OntpZDo3LGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtc291cmNlLXNldC8iKX0sc3R5bGVzaGVldDp7aWQ6OCxjaGVjazplPT4iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIj09PWV9LHRlbXBsYXRlOntpZDo5LGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvIil9LHhkYzp7aWQ6MTAsY2hlY2s6ZT0+ZS5zdGFydHNXaXRoKCJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hkYy8iKX0seGRwOntpZDoxMSxjaGVjazplPT4iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj09PWV9LHhmZGY6e2lkOjEyLGNoZWNrOmU9PiJodHRwOi8vbnMuYWRvYmUuY29tL3hmZGYvIj09PWV9LHhodG1sOntpZDoxMyxjaGVjazplPT4iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1lfSx4bXBtZXRhOntpZDoxNCxjaGVjazplPT4iaHR0cDovL25zLmFkb2JlLmNvbS94bXBtZXRhLyI9PT1lfX0sYW89e3B0OmU9PmUsY206ZT0+ZS8yLjU0KjcyLG1tOmU9PmUvMjUuNCo3MixpbjplPT43MiplLHB4OmU9PmV9LHNvPS8oWystXT9cZCtcLj9cZCopKC4qKS87ZnVuY3Rpb24gc3RyaXBRdW90ZXMoZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiJyIpfHxlLnN0YXJ0c1dpdGgoJyInKT9lLnNsaWNlKDEsLTEpOmV9ZnVuY3Rpb24gZ2V0SW50ZWdlcih7ZGF0YTplLGRlZmF1bHRWYWx1ZTp0LHZhbGlkYXRlOm59KXtpZighZSlyZXR1cm4gdDtlPWUudHJpbSgpO2NvbnN0IGE9cGFyc2VJbnQoZSwxMCk7cmV0dXJuIWlzTmFOKGEpJiZuKGEpP2E6dH1mdW5jdGlvbiBnZXRGbG9hdCh7ZGF0YTplLGRlZmF1bHRWYWx1ZTp0LHZhbGlkYXRlOm59KXtpZighZSlyZXR1cm4gdDtlPWUudHJpbSgpO2NvbnN0IGE9cGFyc2VGbG9hdChlKTtyZXR1cm4haXNOYU4oYSkmJm4oYSk/YTp0fWZ1bmN0aW9uIGdldEtleXdvcmQoe2RhdGE6ZSxkZWZhdWx0VmFsdWU6dCx2YWxpZGF0ZTpufSl7cmV0dXJuIGUmJm4oZT1lLnRyaW0oKSk/ZTp0fWZ1bmN0aW9uIGdldFN0cmluZ09wdGlvbihlLHQpe3JldHVybiBnZXRLZXl3b3JkKHtkYXRhOmUsZGVmYXVsdFZhbHVlOnRbMF0sdmFsaWRhdGU6ZT0+dC5pbmNsdWRlcyhlKX0pfWZ1bmN0aW9uIGdldE1lYXN1cmVtZW50KGUsdD0iMCIpe3R8fD0iMCI7aWYoIWUpcmV0dXJuIGdldE1lYXN1cmVtZW50KHQpO2NvbnN0IG49ZS50cmltKCkubWF0Y2goc28pO2lmKCFuKXJldHVybiBnZXRNZWFzdXJlbWVudCh0KTtjb25zdFssYSxzXT1uLHI9cGFyc2VGbG9hdChhKTtpZihpc05hTihyKSlyZXR1cm4gZ2V0TWVhc3VyZW1lbnQodCk7aWYoMD09PXIpcmV0dXJuIDA7Y29uc3QgaT1hb1tzXTtyZXR1cm4gaT9pKHIpOnJ9ZnVuY3Rpb24gZ2V0UmF0aW8oZSl7aWYoIWUpcmV0dXJue251bToxLGRlbjoxfTtjb25zdCB0PWUuc3BsaXQoIjoiLDIpLm1hcChlPT5wYXJzZUZsb2F0KGUudHJpbSgpKSkuZmlsdGVyKGU9PiFpc05hTihlKSk7MT09PXQubGVuZ3RoJiZ0LnB1c2goMSk7aWYoMD09PXQubGVuZ3RoKXJldHVybntudW06MSxkZW46MX07Y29uc3RbbixhXT10O3JldHVybntudW06bixkZW46YX19ZnVuY3Rpb24gZ2V0UmVsZXZhbnQoZSl7cmV0dXJuIGU/ZS50cmltKCkuc3BsaXQoL1xzKy8pLm1hcChlPT4oe2V4Y2x1ZGVkOiItIj09PWVbMF0sdmlld25hbWU6ZS5zdWJzdHJpbmcoMSl9KSk6W119Y2xhc3MgSFRNTFJlc3VsdHtzdGF0aWMgZ2V0IEZBSUxVUkUoKXtyZXR1cm4gc2hhZG93KHRoaXMsIkZBSUxVUkUiLG5ldyBIVE1MUmVzdWx0KCExLG51bGwsbnVsbCxudWxsKSl9c3RhdGljIGdldCBFTVBUWSgpe3JldHVybiBzaGFkb3codGhpcywiRU1QVFkiLG5ldyBIVE1MUmVzdWx0KCEwLG51bGwsbnVsbCxudWxsKSl9Y29uc3RydWN0b3IoZSx0LG4sYSl7dGhpcy5zdWNjZXNzPWU7dGhpcy5odG1sPXQ7dGhpcy5iYm94PW47dGhpcy5icmVha05vZGU9YX1pc0JyZWFrKCl7cmV0dXJuISF0aGlzLmJyZWFrTm9kZX1zdGF0aWMgYnJlYWtOb2RlKGUpe3JldHVybiBuZXcgSFRNTFJlc3VsdCghMSxudWxsLG51bGwsZSl9c3RhdGljIHN1Y2Nlc3MoZSx0PW51bGwpe3JldHVybiBuZXcgSFRNTFJlc3VsdCghMCxlLHQsbnVsbCl9fWNsYXNzIEZvbnRGaW5kZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5mb250cz1uZXcgTWFwO3RoaXMuY2FjaGU9bmV3IE1hcDt0aGlzLndhcm5lZD1uZXcgU2V0O3RoaXMuZGVmYXVsdEZvbnQ9bnVsbDt0aGlzLmFkZChlKX1hZGQoZSx0PW51bGwpe2Zvcihjb25zdCB0IG9mIGUpdGhpcy5hZGRQZGZGb250KHQpO2Zvcihjb25zdCBlIG9mIHRoaXMuZm9udHMudmFsdWVzKCkpZS5yZWd1bGFyfHwoZS5yZWd1bGFyPWUuaXRhbGljfHxlLmJvbGR8fGUuYm9sZGl0YWxpYyk7aWYoIXR8fDA9PT10LnNpemUpcmV0dXJuO2NvbnN0IG49dGhpcy5mb250cy5nZXQoIlBkZkpTLUZhbGxiYWNrLVBkZkpTLVhGQSIpO2Zvcihjb25zdCBlIG9mIHQpdGhpcy5mb250cy5zZXQoZSxuKX1hZGRQZGZGb250KGUpe2NvbnN0IHQ9ZS5jc3NGb250SW5mbyxuPXQuZm9udEZhbWlseSxhPXRoaXMuZm9udHMuZ2V0T3JJbnNlcnRDb21wdXRlZChuLG1ha2VPYmopO3RoaXMuZGVmYXVsdEZvbnQ/Pz1hO2xldCBzPSIiO2NvbnN0IHI9cGFyc2VGbG9hdCh0LmZvbnRXZWlnaHQpOzAhPT1wYXJzZUZsb2F0KHQuaXRhbGljQW5nbGUpP3M9cj49NzAwPyJib2xkaXRhbGljIjoiaXRhbGljIjpyPj03MDAmJihzPSJib2xkIik7aWYoIXMpeyhlLm5hbWUuaW5jbHVkZXMoIkJvbGQiKXx8ZS5wc05hbWU/LmluY2x1ZGVzKCJCb2xkIikpJiYocz0iYm9sZCIpOyhlLm5hbWUuaW5jbHVkZXMoIkl0YWxpYyIpfHxlLm5hbWUuZW5kc1dpdGgoIkl0Iil8fGUucHNOYW1lPy5pbmNsdWRlcygiSXRhbGljIil8fGUucHNOYW1lPy5lbmRzV2l0aCgiSXQiKSkmJihzKz0iaXRhbGljIil9c3x8KHM9InJlZ3VsYXIiKTthW3NdPWV9Z2V0RGVmYXVsdCgpe3JldHVybiB0aGlzLmRlZmF1bHRGb250fWZpbmQoZSx0PSEwKXtsZXQgbj10aGlzLmZvbnRzLmdldChlKXx8dGhpcy5jYWNoZS5nZXQoZSk7aWYobilyZXR1cm4gbjtjb25zdCBhPS8sfC18X3wgfGJvbGRpdGFsaWN8Ym9sZHxpdGFsaWN8cmVndWxhcnxpdC9naTtsZXQgcz1lLnJlcGxhY2VBbGwoYSwiIik7bj10aGlzLmZvbnRzLmdldChzKTtpZihuKXt0aGlzLmNhY2hlLnNldChlLG4pO3JldHVybiBufXM9cy50b0xvd2VyQ2FzZSgpO2NvbnN0IHI9W107Zm9yKGNvbnN0W2UsdF1vZiB0aGlzLmZvbnRzKWUucmVwbGFjZUFsbChhLCIiKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgocykmJnIucHVzaCh0KTtpZigwPT09ci5sZW5ndGgpZm9yKGNvbnN0IGUgb2YgdGhpcy5mb250cy52YWx1ZXMoKSllLnJlZ3VsYXIubmFtZT8ucmVwbGFjZUFsbChhLCIiKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgocykmJnIucHVzaChlKTtpZigwPT09ci5sZW5ndGgpe3M9cy5yZXBsYWNlQWxsKC9wc210fG10L2dpLCIiKTtmb3IoY29uc3RbZSx0XW9mIHRoaXMuZm9udHMpZS5yZXBsYWNlQWxsKGEsIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChzKSYmci5wdXNoKHQpfWlmKDA9PT1yLmxlbmd0aClmb3IoY29uc3QgZSBvZiB0aGlzLmZvbnRzLnZhbHVlcygpKWUucmVndWxhci5uYW1lPy5yZXBsYWNlQWxsKGEsIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChzKSYmci5wdXNoKGUpO2lmKHIubGVuZ3RoPj0xKXsxIT09ci5sZW5ndGgmJnQmJndhcm4oYFhGQSAtIFRvbyBtYW55IGNob2ljZXMgdG8gZ3Vlc3MgdGhlIGNvcnJlY3QgZm9udDogJHtlfWApO3RoaXMuY2FjaGUuc2V0KGUsclswXSk7cmV0dXJuIHJbMF19aWYodCYmIXRoaXMud2FybmVkLmhhcyhlKSl7dGhpcy53YXJuZWQuYWRkKGUpO3dhcm4oYFhGQSAtIENhbm5vdCBmaW5kIHRoZSBmb250OiAke2V9YCl9cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHNlbGVjdEZvbnQoZSx0KXtyZXR1cm4iaXRhbGljIj09PWUucG9zdHVyZT8iYm9sZCI9PT1lLndlaWdodD90LmJvbGRpdGFsaWM6dC5pdGFsaWM6ImJvbGQiPT09ZS53ZWlnaHQ/dC5ib2xkOnQucmVndWxhcn1jbGFzcyB0ZXh0X0ZvbnRJbmZve2NvbnN0cnVjdG9yKGUsdCxuLGEpe3RoaXMubGluZUhlaWdodD1uO3RoaXMucGFyYU1hcmdpbj10fHx7dG9wOjAsYm90dG9tOjAsbGVmdDowLHJpZ2h0OjB9O2lmKCFlKXtbdGhpcy5wZGZGb250LHRoaXMueGZhRm9udF09dGhpcy5kZWZhdWx0Rm9udChhKTtyZXR1cm59dGhpcy54ZmFGb250PXt0eXBlZmFjZTplLnR5cGVmYWNlLHBvc3R1cmU6ZS5wb3N0dXJlLHdlaWdodDplLndlaWdodCxzaXplOmUuc2l6ZSxsZXR0ZXJTcGFjaW5nOmUubGV0dGVyU3BhY2luZ307Y29uc3Qgcz1hLmZpbmQoZS50eXBlZmFjZSk7aWYocyl7dGhpcy5wZGZGb250PXNlbGVjdEZvbnQoZSxzKTt0aGlzLnBkZkZvbnR8fChbdGhpcy5wZGZGb250LHRoaXMueGZhRm9udF09dGhpcy5kZWZhdWx0Rm9udChhKSl9ZWxzZVt0aGlzLnBkZkZvbnQsdGhpcy54ZmFGb250XT10aGlzLmRlZmF1bHRGb250KGEpfWRlZmF1bHRGb250KGUpe2NvbnN0IHQ9ZS5maW5kKCJIZWx2ZXRpY2EiLCExKXx8ZS5maW5kKCJNeXJpYWQgUHJvIiwhMSl8fGUuZmluZCgiQXJpYWwiLCExKXx8ZS5nZXREZWZhdWx0KCk7aWYodD8ucmVndWxhcil7Y29uc3QgZT10LnJlZ3VsYXI7cmV0dXJuW2Use3R5cGVmYWNlOmUuY3NzRm9udEluZm8uZm9udEZhbWlseSxwb3N0dXJlOiJub3JtYWwiLHdlaWdodDoibm9ybWFsIixzaXplOjEwLGxldHRlclNwYWNpbmc6MH1dfXJldHVybltudWxsLHt0eXBlZmFjZToiQ291cmllciIscG9zdHVyZToibm9ybWFsIix3ZWlnaHQ6Im5vcm1hbCIsc2l6ZToxMCxsZXR0ZXJTcGFjaW5nOjB9XX19Y2xhc3MgRm9udFNlbGVjdG9ye2NvbnN0cnVjdG9yKGUsdCxuLGEpe3RoaXMuZm9udEZpbmRlcj1hO3RoaXMuc3RhY2s9W25ldyB0ZXh0X0ZvbnRJbmZvKGUsdCxuLGEpXX1wdXNoRGF0YShlLHQsbil7Y29uc3QgYT10aGlzLnN0YWNrLmF0KC0xKTtmb3IoY29uc3QgdCBvZlsidHlwZWZhY2UiLCJwb3N0dXJlIiwid2VpZ2h0Iiwic2l6ZSIsImxldHRlclNwYWNpbmciXSllW3RdfHwoZVt0XT1hLnhmYUZvbnRbdF0pO2Zvcihjb25zdCBlIG9mWyJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXSlpc05hTih0W2VdKSYmKHRbZV09YS5wYXJhTWFyZ2luW2VdKTtjb25zdCBzPW5ldyB0ZXh0X0ZvbnRJbmZvKGUsdCxufHxhLmxpbmVIZWlnaHQsdGhpcy5mb250RmluZGVyKTtzLnBkZkZvbnR8fChzLnBkZkZvbnQ9YS5wZGZGb250KTt0aGlzLnN0YWNrLnB1c2gocyl9cG9wRm9udCgpe3RoaXMuc3RhY2sucG9wKCl9dG9wRm9udCgpe3JldHVybiB0aGlzLnN0YWNrLmF0KC0xKX19Y2xhc3MgVGV4dE1lYXN1cmV7Y29uc3RydWN0b3IoZSx0LG4sYSl7dGhpcy5nbHlwaHM9W107dGhpcy5mb250U2VsZWN0b3I9bmV3IEZvbnRTZWxlY3RvcihlLHQsbixhKTt0aGlzLmV4dHJhSGVpZ2h0PTB9cHVzaERhdGEoZSx0LG4pe3RoaXMuZm9udFNlbGVjdG9yLnB1c2hEYXRhKGUsdCxuKX1wb3BGb250KGUpe3JldHVybiB0aGlzLmZvbnRTZWxlY3Rvci5wb3BGb250KCl9YWRkUGFyYSgpe2NvbnN0IGU9dGhpcy5mb250U2VsZWN0b3IudG9wRm9udCgpO3RoaXMuZXh0cmFIZWlnaHQrPWUucGFyYU1hcmdpbi50b3ArZS5wYXJhTWFyZ2luLmJvdHRvbX1hZGRTdHJpbmcoZSl7aWYoIWUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5mb250U2VsZWN0b3IudG9wRm9udCgpLG49dC54ZmFGb250LnNpemU7aWYodC5wZGZGb250KXtjb25zdCBhPXQueGZhRm9udC5sZXR0ZXJTcGFjaW5nLHM9dC5wZGZGb250LHI9cy5saW5lSGVpZ2h0fHwxLjIsaT10LmxpbmVIZWlnaHR8fE1hdGgubWF4KDEuMixyKSpuLG89ci0odm9pZCAwPT09cy5saW5lR2FwPy4yOnMubGluZUdhcCksbD1NYXRoLm1heCgxLG8pKm4sZj1uLzFlMyxjPXMuZGVmYXVsdFdpZHRofHxzLmNoYXJzVG9HbHlwaHMoIiAiKVswXS53aWR0aDtmb3IoY29uc3QgdCBvZiBlLnNwbGl0KC9bXHUyMDI5XG5dLykpe2NvbnN0IGU9cy5lbmNvZGVTdHJpbmcodCkuam9pbigiIiksbj1zLmNoYXJzVG9HbHlwaHMoZSk7Zm9yKGNvbnN0IGUgb2Ygbil7Y29uc3QgdD1lLndpZHRofHxjO3RoaXMuZ2x5cGhzLnB1c2goW3QqZithLGksbCxlLnVuaWNvZGUsITFdKX10aGlzLmdseXBocy5wdXNoKFswLDAsMCwiXG4iLCEwXSl9dGhpcy5nbHlwaHMucG9wKCk7cmV0dXJufWZvcihjb25zdCB0IG9mIGUuc3BsaXQoL1tcdTIwMjlcbl0vKSl7Zm9yKGNvbnN0IGUgb2YgdC5zcGxpdCgiIikpdGhpcy5nbHlwaHMucHVzaChbbiwxLjIqbixuLGUsITFdKTt0aGlzLmdseXBocy5wdXNoKFswLDAsMCwiXG4iLCEwXSl9dGhpcy5nbHlwaHMucG9wKCl9Y29tcHV0ZShlKXtsZXQgdD0tMSxuPTAsYT0wLHM9MCxyPTAsaT0wLG89ITEsbD0hMDtmb3IobGV0IGY9MCxjPXRoaXMuZ2x5cGhzLmxlbmd0aDtmPGM7ZisrKXtjb25zdFtjLGgsdSxtLHBdPXRoaXMuZ2x5cGhzW2ZdLGQ9IiAiPT09bSxnPWw/dTpoO2lmKHApe2E9TWF0aC5tYXgoYSxyKTtyPTA7cys9aTtpPWc7dD0tMTtuPTA7bD0hMX1lbHNlIGlmKGQpaWYocitjPmUpe2E9TWF0aC5tYXgoYSxyKTtyPTA7cys9aTtpPWc7dD0tMTtuPTA7bz0hMDtsPSExfWVsc2V7aT1NYXRoLm1heChnLGkpO249cjtyKz1jO3Q9Zn1lbHNlIGlmKHIrYz5lKXtzKz1pO2k9ZztpZigtMSE9PXQpe2Y9dDthPU1hdGgubWF4KGEsbik7cj0wO3Q9LTE7bj0wfWVsc2V7YT1NYXRoLm1heChhLHIpO3I9Y31vPSEwO2w9ITF9ZWxzZXtyKz1jO2k9TWF0aC5tYXgoZyxpKX19YT1NYXRoLm1heChhLHIpO3MrPWkrdGhpcy5leHRyYUhlaWdodDtyZXR1cm57d2lkdGg6MS4wMiphLGhlaWdodDpzLGlzQnJva2VuOm99fX1jb25zdCBybz0vXlteLltdKy8saW89L15bXlxdXSsvLG9vPTAsbG89MSxmbz0yLGNvPTMsaG89NCx1bz1uZXcgTWFwKFtbIiRkYXRhIiwoZSx0KT0+ZS5kYXRhc2V0cz9lLmRhdGFzZXRzLmRhdGE6ZV0sWyIkcmVjb3JkIiwoZSx0KT0+KGUuZGF0YXNldHM/ZS5kYXRhc2V0cy5kYXRhOmUpW2ZpXSgpWzBdXSxbIiR0ZW1wbGF0ZSIsKGUsdCk9PmUudGVtcGxhdGVdLFsiJGNvbm5lY3Rpb25TZXQiLChlLHQpPT5lLmNvbm5lY3Rpb25TZXRdLFsiJGZvcm0iLChlLHQpPT5lLmZvcm1dLFsiJGxheW91dCIsKGUsdCk9PmUubGF5b3V0XSxbIiRob3N0IiwoZSx0KT0+ZS5ob3N0XSxbIiRkYXRhV2luZG93IiwoZSx0KT0+ZS5kYXRhV2luZG93XSxbIiRldmVudCIsKGUsdCk9PmUuZXZlbnRdLFsiISIsKGUsdCk9PmUuZGF0YXNldHNdLFsiJHhmYSIsKGUsdCk9PmVdLFsieGZhIiwoZSx0KT0+ZV0sWyIkIiwoZSx0KT0+dF1dKSxtbz1uZXcgV2Vha01hcDtmdW5jdGlvbiBwYXJzZUluZGV4KGUpe3JldHVybiIqIj09PShlPWUudHJpbSgpKT8xLzA6cGFyc2VJbnQoZSwxMCl8fDB9ZnVuY3Rpb24gcGFyc2VFeHByZXNzaW9uKGUsdCxuPSEwKXtsZXQgYT1lLm1hdGNoKHJvKTtpZighYSlyZXR1cm4gbnVsbDtsZXRbc109YTtjb25zdCByPVt7bmFtZTpzLGNhY2hlTmFtZToiLiIrcyxpbmRleDowLGpzOm51bGwsZm9ybUNhbGM6bnVsbCxvcGVyYXRvcjpvb31dO2xldCBpPXMubGVuZ3RoO2Zvcig7aTxlLmxlbmd0aDspe2NvbnN0IG89aTtpZigiWyI9PT1lLmNoYXJBdChpKyspKXthPWUuc2xpY2UoaSkubWF0Y2goaW8pO2lmKCFhKXt3YXJuKCJYRkEgLSBJbnZhbGlkIGluZGV4IGluIFNPTSBleHByZXNzaW9uIik7cmV0dXJuIG51bGx9ci5hdCgtMSkuaW5kZXg9cGFyc2VJbmRleChhWzBdKTtpKz1hWzBdLmxlbmd0aCsxO2NvbnRpbnVlfWxldCBsO3N3aXRjaChlLmNoYXJBdChpKSl7Y2FzZSIuIjppZighdClyZXR1cm4gbnVsbDtpKys7bD1sbzticmVhaztjYXNlIiMiOmkrKztsPWZvO2JyZWFrO2Nhc2UiWyI6aWYobil7d2FybigiWEZBIC0gU09NIGV4cHJlc3Npb24gY29udGFpbnMgYSBGb3JtQ2FsYyBzdWJleHByZXNzaW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG5vdy4iKTtyZXR1cm4gbnVsbH1sPWNvO2JyZWFrO2Nhc2UiKCI6aWYobil7d2FybigiWEZBIC0gU09NIGV4cHJlc3Npb24gY29udGFpbnMgYSBKYXZhU2NyaXB0IHN1YmV4cHJlc3Npb24gd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBmb3Igbm93LiIpO3JldHVybiBudWxsfWw9aG87YnJlYWs7ZGVmYXVsdDpsPW9vfWE9ZS5zbGljZShpKS5tYXRjaChybyk7aWYoIWEpYnJlYWs7W3NdPWE7aSs9cy5sZW5ndGg7ci5wdXNoKHtuYW1lOnMsY2FjaGVOYW1lOmUuc2xpY2UobyxpKSxvcGVyYXRvcjpsLGluZGV4OjAsanM6bnVsbCxmb3JtQ2FsYzpudWxsfSl9cmV0dXJuIHJ9ZnVuY3Rpb24gc2VhcmNoTm9kZShlLHQsbixhPSEwLHM9ITApe2NvbnN0IHI9cGFyc2VFeHByZXNzaW9uKG4sYSk7aWYoIXIpcmV0dXJuIG51bGw7Y29uc3QgaT11by5nZXQoclswXS5uYW1lKTtsZXQgbyxsPTA7aWYoaSl7bz0hMDtlPVtpKGUsdCldO2w9MX1lbHNle289bnVsbD09PXQ7ZT1bdHx8ZV19Zm9yKGxldCBuPXIubGVuZ3RoO2w8bjtsKyspe2NvbnN0e25hbWU6bixjYWNoZU5hbWU6YSxvcGVyYXRvcjppLGluZGV4OmZ9PXJbbF0sYz1bXTtmb3IoY29uc3QgdCBvZiBlKXtpZighdC5pc1hGQU9iamVjdCljb250aW51ZTtsZXQgZSxyO2lmKHMpe3I9bW8uZ2V0T3JJbnNlcnRDb21wdXRlZCh0LG1ha2VNYXApO2U9ci5nZXQoYSl9aWYoIWUpe3N3aXRjaChpKXtjYXNlIG9vOmU9dFtzaV0obiwhMSk7YnJlYWs7Y2FzZSBsbzplPXRbc2ldKG4sITApO2JyZWFrO2Nhc2UgZm86ZT10W2FpXShuKTtlPWUuaXNYRkFPYmplY3RBcnJheT9lLmNoaWxkcmVuOltlXX1zJiZyLnNldChhLGUpfWUubGVuZ3RoPjAmJmMucHVzaChlKX1pZigwPT09Yy5sZW5ndGgmJiFvJiYwPT09bCl7Y29uc3Qgbj10W21pXSgpO2lmKCEodD1uKSlyZXR1cm4gbnVsbDtsPS0xO2U9W3RdO2NvbnRpbnVlfWU9aXNGaW5pdGUoZik/Yy5maWx0ZXIoZT0+ZjxlLmxlbmd0aCkubWFwKGU9PmVbZl0pOmMuZmxhdCgpfXJldHVybiAwPT09ZS5sZW5ndGg/bnVsbDplfWZ1bmN0aW9uIGNyZWF0ZURhdGFOb2RlKGUsdCxuKXtjb25zdCBhPXBhcnNlRXhwcmVzc2lvbihuKTtpZighYSlyZXR1cm4gbnVsbDtpZihhLnNvbWUoZT0+ZS5vcGVyYXRvcj09PWxvKSlyZXR1cm4gbnVsbDtjb25zdCBzPXVvLmdldChhWzBdLm5hbWUpO2xldCByPTA7aWYocyl7ZT1zKGUsdCk7cj0xfWVsc2UgZT10fHxlO2ZvcihsZXQgdD1hLmxlbmd0aDtyPHQ7cisrKXtjb25zdHtuYW1lOnQsb3BlcmF0b3I6bixpbmRleDpzfT1hW3JdO2lmKCFpc0Zpbml0ZShzKSl7YVtyXS5pbmRleD0wO3JldHVybiBlLmNyZWF0ZU5vZGVzKGEuc2xpY2UocikpfWxldCBpO3N3aXRjaChuKXtjYXNlIG9vOmk9ZVtzaV0odCwhMSk7YnJlYWs7Y2FzZSBsbzppPWVbc2ldKHQsITApO2JyZWFrO2Nhc2UgZm86aT1lW2FpXSh0KTtpPWkuaXNYRkFPYmplY3RBcnJheT9pLmNoaWxkcmVuOltpXX1pZigwPT09aS5sZW5ndGgpcmV0dXJuIGUuY3JlYXRlTm9kZXMoYS5zbGljZShyKSk7aWYoIShzPGkubGVuZ3RoKSl7YVtyXS5pbmRleD1zLWkubGVuZ3RoO3JldHVybiBlLmNyZWF0ZU5vZGVzKGEuc2xpY2UocikpfXtjb25zdCB0PWlbc107aWYoIXQuaXNYRkFPYmplY3Qpe3dhcm4oIlhGQSAtIENhbm5vdCBjcmVhdGUgYSBub2RlLiIpO3JldHVybiBudWxsfWU9dH19cmV0dXJuIG51bGx9Y29uc3QgcG89U3ltYm9sKCksZ289U3ltYm9sKCksYm89U3ltYm9sKCksd289U3ltYm9sKCJfY2hpbGRyZW4iKSxqbz1TeW1ib2woKSxrbz1TeW1ib2woKSx5bz1TeW1ib2woKSxxbz1TeW1ib2woKSx2bz1TeW1ib2woKSxTbz1TeW1ib2woKSx4bz1TeW1ib2woKSxBbz1TeW1ib2woKSxDbz1TeW1ib2woKSxJbz1TeW1ib2woInBhcmVudCIpLEZvPVN5bWJvbCgpLEhvPVN5bWJvbCgpLE9vPVN5bWJvbCgpO2xldCBCbz0wO2NvbnN0IFJvPW5vLmRhdGFzZXRzLmlkO2NsYXNzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlLHQsbj0hMSl7dGhpc1tUaV09ZTt0aGlzW0hpXT10O3RoaXNbeG9dPW47dGhpc1tJb109bnVsbDt0aGlzW3dvXT1bXTt0aGlzW2VvXT1gJHt0fSR7Qm8rK31gO3RoaXNbZGldPW51bGx9Z2V0IGlzWEZBT2JqZWN0KCl7cmV0dXJuITB9Z2V0IGlzWEZBT2JqZWN0QXJyYXkoKXtyZXR1cm4hMX1jcmVhdGVOb2RlcyhlKXtsZXQgdD10aGlzLG49bnVsbDtmb3IoY29uc3R7bmFtZTphLGluZGV4OnN9b2YgZSl7Zm9yKGxldCBlPTAscj1pc0Zpbml0ZShzKT9zOjA7ZTw9cjtlKyspe2NvbnN0IGU9dFtUaV09PT1Sbz8tMTp0W1RpXTtuPW5ldyBYbWxPYmplY3QoZSxhKTt0W0xyXShuKX10PW59cmV0dXJuIG59W0JpXShlKXtpZighdGhpc1t4b118fCF0aGlzW1JpXShlKSlyZXR1cm4hMTtjb25zdCB0PWVbSGldLG49dGhpc1t0XTtpZighKG4gaW5zdGFuY2VvZiBYRkFPYmplY3RBcnJheSkpe251bGwhPT1uJiZ0aGlzW05pXShuKTt0aGlzW3RdPWU7dGhpc1tMcl0oZSk7cmV0dXJuITB9aWYobi5wdXNoKGUpKXt0aGlzW0xyXShlKTtyZXR1cm4hMH1sZXQgYT0iIjt0aGlzLmlkP2E9YCAoaWQ6ICR7dGhpcy5pZH0pYDp0aGlzLm5hbWUmJihhPWAgKG5hbWU6ICR7dGhpcy5uYW1lfSAke3RoaXMuaC52YWx1ZX0pYCk7d2FybihgWEZBIC0gbm9kZSAiJHt0aGlzW0hpXX0iJHthfSBoYXMgYWxyZWFkeSBlbm91Z2ggIiR7dH0iIWApO3JldHVybiExfVtSaV0oZSl7cmV0dXJuIHRoaXMuaGFzT3duUHJvcGVydHkoZVtIaV0pJiZlW1RpXT09PXRoaXNbVGldfVtTaV0oKXtyZXR1cm4hMX1bTnJdKCl7cmV0dXJuITF9W2tpXSgpe3JldHVybiExfVt5aV0oKXtyZXR1cm4hMX1bUGldKCl7dGhpcy5wYXJhJiZ0aGlzW3BpXSgpW0pyXS5wYXJhU3RhY2sucG9wKCl9W0VpXSgpe3RoaXNbcGldKClbSnJdLnBhcmFTdGFjay5wdXNoKHRoaXMucGFyYSl9W1dpXShlKXt0aGlzLmlkJiZ0aGlzW1RpXT09PW5vLnRlbXBsYXRlLmlkJiZlLnNldCh0aGlzLmlkLHRoaXMpfVtwaV0oKXtyZXR1cm4gdGhpc1tkaV0udGVtcGxhdGV9W3hpXSgpe3JldHVybiExfVtBaV0oKXtyZXR1cm4hMX1bTHJdKGUpe2VbSW9dPXRoaXM7dGhpc1t3b10ucHVzaChlKTshZVtkaV0mJnRoaXNbZGldJiYoZVtkaV09dGhpc1tkaV0pfVtOaV0oZSl7Y29uc3QgdD10aGlzW3dvXS5pbmRleE9mKGUpO3RoaXNbd29dLnNwbGljZSh0LDEpfVtnaV0oKXtyZXR1cm4gdGhpcy5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKX1bR2ldKGUpe31bRGldKGUpe31bUXJdKCl7fVtfcl0oZSl7ZGVsZXRlIHRoaXNbeG9dO2lmKHRoaXNbV3JdKXtlLmNsZWFuKHRoaXNbV3JdKTtkZWxldGUgdGhpc1tXcl19fVt3aV0oZSl7cmV0dXJuIHRoaXNbd29dLmluZGV4T2YoZSl9W2ppXShlLHQpe3RbSW9dPXRoaXM7dGhpc1t3b10uc3BsaWNlKGUsMCx0KTshdFtkaV0mJnRoaXNbZGldJiYodFtkaV09dGhpc1tkaV0pfVtDaV0oKXtyZXR1cm4hdGhpcy5uYW1lfVtGaV0oKXtyZXR1cm4iIn1bJGldKCl7cmV0dXJuIDA9PT10aGlzW3dvXS5sZW5ndGg/dGhpc1tWcl06dGhpc1t3b10ubWFwKGU9PmVbJGldKCkpLmpvaW4oIiIpfWdldFtib10oKXtjb25zdCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtpZighZS5fYXR0cmlidXRlcyl7Y29uc3QgdD1lLl9hdHRyaWJ1dGVzPW5ldyBTZXQ7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKG51bGw9PT10aGlzW2VdfHx0aGlzW2VdaW5zdGFuY2VvZiBYRkFPYmplY3R8fHRoaXNbZV1pbnN0YW5jZW9mIFhGQU9iamVjdEFycmF5KWJyZWFrO3QuYWRkKGUpfX1yZXR1cm4gc2hhZG93KHRoaXMsYm8sZS5fYXR0cmlidXRlcyl9W3ZpXShlKXtsZXQgdD10aGlzO2Zvcig7dDspe2lmKHQ9PT1lKXJldHVybiEwO3Q9dFttaV0oKX1yZXR1cm4hMX1bbWldKCl7cmV0dXJuIHRoaXNbSW9dfVt1aV0oKXtyZXR1cm4gdGhpc1ttaV0oKX1bZmldKGU9bnVsbCl7cmV0dXJuIGU/dGhpc1tlXTp0aGlzW3dvXX1bWXJdKCl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXNbVnJdJiYoZS4kY29udGVudD10aGlzW1ZyXSk7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2NvbnN0IG49dGhpc1t0XTtudWxsIT09biYmKG4gaW5zdGFuY2VvZiBYRkFPYmplY3Q/ZVt0XT1uW1lyXSgpOm4gaW5zdGFuY2VvZiBYRkFPYmplY3RBcnJheT9uLmlzRW1wdHkoKXx8KGVbdF09bi5kdW1wKCkpOmVbdF09bil9cmV0dXJuIGV9W1ppXSgpe3JldHVybiBudWxsfVtKaV0oKXtyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWX0qW2NpXSgpe2Zvcihjb25zdCBlIG9mIHRoaXNbZmldKCkpeWllbGQgZX0qW3FvXShlLHQpe2Zvcihjb25zdCBuIG9mIHRoaXNbY2ldKCkpaWYoIWV8fHQ9PT1lLmhhcyhuW0hpXSkpe2NvbnN0IGU9dGhpc1tuaV0oKSx0PW5bSmldKGUpO3Quc3VjY2Vzc3x8KHRoaXNbSnJdLmZhaWxpbmdOb2RlPW4pO3lpZWxkIHR9fVtacl0oKXtyZXR1cm4gbnVsbH1benJdKGUsdCl7dGhpc1tKcl0uY2hpbGRyZW4ucHVzaChlKX1bbmldKCl7fVtVcl0oe2ZpbHRlcjplPW51bGwsaW5jbHVkZTp0PSEwfSl7aWYodGhpc1tKcl0uZ2VuZXJhdG9yKXtjb25zdCBlPXRoaXNbbmldKCksdD10aGlzW0pyXS5mYWlsaW5nTm9kZVtKaV0oZSk7aWYoIXQuc3VjY2VzcylyZXR1cm4gdDt0Lmh0bWwmJnRoaXNbenJdKHQuaHRtbCx0LmJib3gpO2RlbGV0ZSB0aGlzW0pyXS5mYWlsaW5nTm9kZX1lbHNlIHRoaXNbSnJdLmdlbmVyYXRvcj10aGlzW3FvXShlLHQpO2Zvcig7Oyl7Y29uc3QgZT10aGlzW0pyXS5nZW5lcmF0b3IubmV4dCgpO2lmKGUuZG9uZSlicmVhaztjb25zdCB0PWUudmFsdWU7aWYoIXQuc3VjY2VzcylyZXR1cm4gdDt0Lmh0bWwmJnRoaXNbenJdKHQuaHRtbCx0LmJib3gpfXRoaXNbSnJdLmdlbmVyYXRvcj1udWxsO3JldHVybiBIVE1MUmVzdWx0LkVNUFRZfVtLaV0oZSl7dGhpc1tIb109bmV3IFNldChPYmplY3Qua2V5cyhlKSl9W1NvXShlKXtjb25zdCB0PXRoaXNbYm9dLG49dGhpc1tIb107cmV0dXJuWy4uLmVdLmZpbHRlcihlPT50LmhhcyhlKSYmIW4uaGFzKGUpKX1bX2ldKGUsdD1uZXcgU2V0KXtmb3IoY29uc3QgbiBvZiB0aGlzW3dvXSluW0ZvXShlLHQpfVtGb10oZSx0KXtjb25zdCBuPXRoaXNbdm9dKGUsdCk7bj90aGlzW3BvXShuLGUsdCk6dGhpc1tfaV0oZSx0KX1bdm9dKGUsdCl7Y29uc3R7dXNlOm4sdXNlaHJlZjphfT10aGlzO2lmKCFuJiYhYSlyZXR1cm4gbnVsbDtsZXQgcz1udWxsLHI9bnVsbCxpPW51bGwsbz1uO2lmKGEpe289YTthLnN0YXJ0c1dpdGgoIiNzb20oIikmJmEuZW5kc1dpdGgoIikiKT9yPWEuc2xpY2UoNSwtMSk6YS5zdGFydHNXaXRoKCIuI3NvbSgiKSYmYS5lbmRzV2l0aCgiKSIpP3I9YS5zbGljZSg2LC0xKTphLnN0YXJ0c1dpdGgoIiMiKT9pPWEuc2xpY2UoMSk6YS5zdGFydHNXaXRoKCIuIyIpJiYoaT1hLnNsaWNlKDIpKX1lbHNlIG4uc3RhcnRzV2l0aCgiIyIpP2k9bi5zbGljZSgxKTpyPW47dGhpcy51c2U9dGhpcy51c2VocmVmPSIiO2lmKGkpcz1lLmdldChpKTtlbHNle3M9c2VhcmNoTm9kZShlLmdldCh6aSksdGhpcyxyLCEwLCExKTtzJiYocz1zWzBdKX1pZighcyl7d2FybihgWEZBIC0gSW52YWxpZCBwcm90b3R5cGUgcmVmZXJlbmNlOiAke299LmApO3JldHVybiBudWxsfWlmKHNbSGldIT09dGhpc1tIaV0pe3dhcm4oYFhGQSAtIEluY29tcGF0aWJsZSBwcm90b3R5cGU6ICR7c1tIaV19ICE9PSAke3RoaXNbSGldfS5gKTtyZXR1cm4gbnVsbH1pZih0LmhhcyhzKSl7d2FybigiWEZBIC0gQ3ljbGUgZGV0ZWN0ZWQgaW4gcHJvdG90eXBlcyB1c2UuIik7cmV0dXJuIG51bGx9dC5hZGQocyk7Y29uc3QgbD1zW3ZvXShlLHQpO2wmJnNbcG9dKGwsZSx0KTtzW19pXShlLHQpO3QuZGVsZXRlKHMpO3JldHVybiBzfVtwb10oZSx0LG4pe2lmKG4uaGFzKGUpKXt3YXJuKCJYRkEgLSBDeWNsZSBkZXRlY3RlZCBpbiBwcm90b3R5cGVzIHVzZS4iKTtyZXR1cm59IXRoaXNbVnJdJiZlW1ZyXSYmKHRoaXNbVnJdPWVbVnJdKTtuZXcgU2V0KG4pLmFkZChlKTtmb3IoY29uc3QgdCBvZiB0aGlzW1NvXShlW0hvXSkpe3RoaXNbdF09ZVt0XTt0aGlzW0hvXSYmdGhpc1tIb10uYWRkKHQpfWZvcihjb25zdCBhIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtpZih0aGlzW2JvXS5oYXMoYSkpY29udGludWU7Y29uc3Qgcz10aGlzW2FdLHI9ZVthXTtpZihzIGluc3RhbmNlb2YgWEZBT2JqZWN0QXJyYXkpe2Zvcihjb25zdCBlIG9mIHNbd29dKWVbRm9dKHQsbik7Zm9yKGxldCBhPXNbd29dLmxlbmd0aCxpPXJbd29dLmxlbmd0aDthPGk7YSsrKXtjb25zdCByPWVbd29dW2FdW0tyXSgpO2lmKCFzLnB1c2gocikpYnJlYWs7cltJb109dGhpczt0aGlzW3dvXS5wdXNoKHIpO3JbRm9dKHQsbil9fWVsc2UgaWYobnVsbD09PXMpe2lmKG51bGwhPT1yKXtjb25zdCBlPXJbS3JdKCk7ZVtJb109dGhpczt0aGlzW2FdPWU7dGhpc1t3b10ucHVzaChlKTtlW0ZvXSh0LG4pfX1lbHNle3NbX2ldKHQsbik7ciYmc1twb10ocix0LG4pfX19c3RhdGljW2pvXShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLm1hcChlPT5YRkFPYmplY3Rbam9dKGUpKToib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lP09iamVjdC5hc3NpZ24oe30sZSk6ZX1bS3JdKCl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSk7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0aGlzKSl0cnl7ZVt0XT10aGlzW3RdfWNhdGNoe3NoYWRvdyhlLHQsdGhpc1t0XSl9ZVtlb109YCR7ZVtIaV19JHtCbysrfWA7ZVt3b109W107Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKHRoaXNbYm9dLmhhcyh0KSl7ZVt0XT1YRkFPYmplY3Rbam9dKHRoaXNbdF0pO2NvbnRpbnVlfWNvbnN0IG49dGhpc1t0XTtlW3RdPW4gaW5zdGFuY2VvZiBYRkFPYmplY3RBcnJheT9uZXcgWEZBT2JqZWN0QXJyYXkobltBb10pOm51bGx9Zm9yKGNvbnN0IHQgb2YgdGhpc1t3b10pe2NvbnN0IG49dFtIaV0sYT10W0tyXSgpO2Vbd29dLnB1c2goYSk7YVtJb109ZTtudWxsPT09ZVtuXT9lW25dPWE6ZVtuXVt3b10ucHVzaChhKX1yZXR1cm4gZX1bZmldKGU9bnVsbCl7cmV0dXJuIGU/dGhpc1t3b10uZmlsdGVyKHQ9PnRbSGldPT09ZSk6dGhpc1t3b119W2FpXShlKXtyZXR1cm4gdGhpc1tlXX1bc2ldKGUsdCxuPSEwKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzW3JpXShlLHQsbikpfSpbcmldKGUsdCxuPSEwKXtpZigicGFyZW50IiE9PWUpe2Zvcihjb25zdCBuIG9mIHRoaXNbd29dKXtuW0hpXT09PWUmJih5aWVsZCBuKTtuLm5hbWU9PT1lJiYoeWllbGQgbik7KHR8fG5bQ2ldKCkpJiYoeWllbGQqbltyaV0oZSx0LCExKSl9biYmdGhpc1tib10uaGFzKGUpJiYoeWllbGQgbmV3IFhGQUF0dHJpYnV0ZSh0aGlzLGUsdGhpc1tlXSkpfWVsc2UgeWllbGQgdGhpc1tJb119fWNsYXNzIFhGQU9iamVjdEFycmF5e2NvbnN0cnVjdG9yKGU9MS8wKXt0aGlzW0FvXT1lO3RoaXNbd29dPVtdfWdldCBpc1hGQU9iamVjdCgpe3JldHVybiExfWdldCBpc1hGQU9iamVjdEFycmF5KCl7cmV0dXJuITB9cHVzaChlKXtpZih0aGlzW3dvXS5sZW5ndGg8PXRoaXNbQW9dKXt0aGlzW3dvXS5wdXNoKGUpO3JldHVybiEwfXdhcm4oYFhGQSAtIG5vZGUgIiR7ZVtIaV19IiBhY2NlcHRzIG5vIG1vcmUgdGhhbiAke3RoaXNbQW9dfSBjaGlsZHJlbmApO3JldHVybiExfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXNbd29dLmxlbmd0aH1kdW1wKCl7cmV0dXJuIDE9PT10aGlzW3dvXS5sZW5ndGg/dGhpc1t3b11bMF1bWXJdKCk6dGhpc1t3b10ubWFwKGU9PmVbWXJdKCkpfVtLcl0oKXtjb25zdCBlPW5ldyBYRkFPYmplY3RBcnJheSh0aGlzW0FvXSk7ZVt3b109dGhpc1t3b10ubWFwKGU9PmVbS3JdKCkpO3JldHVybiBlfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzW3dvXX1jbGVhcigpe3RoaXNbd29dLmxlbmd0aD0wfX1jbGFzcyBYRkFBdHRyaWJ1dGV7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXNbSW9dPWU7dGhpc1tIaV09dDt0aGlzW1ZyXT1uO3RoaXNbR3JdPSExO3RoaXNbZW9dPSJhdHRyaWJ1dGUiK0JvKyt9W21pXSgpe3JldHVybiB0aGlzW0lvXX1bcWldKCl7cmV0dXJuITB9W2lpXSgpe3JldHVybiB0aGlzW1ZyXS50cmltKCl9W0dpXShlKXtlPWUudmFsdWV8fCIiO3RoaXNbVnJdPWUudG9TdHJpbmcoKX1bJGldKCl7cmV0dXJuIHRoaXNbVnJdfVt2aV0oZSl7cmV0dXJuIHRoaXNbSW9dPT09ZXx8dGhpc1tJb11bdmldKGUpfX1jbGFzcyBYbWxPYmplY3QgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSx0LG49e30pe3N1cGVyKGUsdCk7dGhpc1tWcl09IiI7dGhpc1trb109bnVsbDtpZigiI3RleHQiIT09dCl7Y29uc3QgZT1uZXcgTWFwO3RoaXNbZ29dPWU7Zm9yKGNvbnN0W3QsYV1vZiBPYmplY3QuZW50cmllcyhuKSllLnNldCh0LG5ldyBYRkFBdHRyaWJ1dGUodGhpcyx0LGEpKTtpZihuLmhhc093blByb3BlcnR5KE9pKSl7Y29uc3QgZT1uW09pXS54ZmEuZGF0YU5vZGU7dm9pZCAwIT09ZSYmKCJkYXRhR3JvdXAiPT09ZT90aGlzW2tvXT0hMToiZGF0YVZhbHVlIj09PWUmJih0aGlzW2tvXT0hMCkpfX10aGlzW0dyXT0hMX1bUWldKGUpe2NvbnN0IHQ9dGhpc1tIaV07aWYoIiN0ZXh0Ij09PXQpe2UucHVzaChlbmNvZGVUb1htbFN0cmluZyh0aGlzW1ZyXSkpO3JldHVybn1jb25zdCBuPXV0ZjhTdHJpbmdUb1N0cmluZyh0KSxhPXRoaXNbVGldPT09Um8/InhmYToiOiIiO2UucHVzaChgPCR7YX0ke259YCk7Zm9yKGNvbnN0W3Qsbl1vZiB0aGlzW2dvXSl7Y29uc3QgYT11dGY4U3RyaW5nVG9TdHJpbmcodCk7ZS5wdXNoKGAgJHthfT0iJHtlbmNvZGVUb1htbFN0cmluZyhuW1ZyXSl9ImApfW51bGwhPT10aGlzW2tvXSYmKHRoaXNba29dP2UucHVzaCgnIHhmYTpkYXRhTm9kZT0iZGF0YVZhbHVlIicpOmUucHVzaCgnIHhmYTpkYXRhTm9kZT0iZGF0YUdyb3VwIicpKTtpZih0aGlzW1ZyXXx8MCE9PXRoaXNbd29dLmxlbmd0aCl7ZS5wdXNoKCI+Iik7aWYodGhpc1tWcl0pInN0cmluZyI9PXR5cGVvZiB0aGlzW1ZyXT9lLnB1c2goZW5jb2RlVG9YbWxTdHJpbmcodGhpc1tWcl0pKTp0aGlzW1ZyXVtRaV0oZSk7ZWxzZSBmb3IoY29uc3QgdCBvZiB0aGlzW3dvXSl0W1FpXShlKTtlLnB1c2goYDwvJHthfSR7bn0+YCl9ZWxzZSBlLnB1c2goIi8+Iil9W0JpXShlKXtpZih0aGlzW1ZyXSl7Y29uc3QgZT1uZXcgWG1sT2JqZWN0KHRoaXNbVGldLCIjdGV4dCIpO3RoaXNbTHJdKGUpO2VbVnJdPXRoaXNbVnJdO3RoaXNbVnJdPSIifXRoaXNbTHJdKGUpO3JldHVybiEwfVtEaV0oZSl7dGhpc1tWcl0rPWV9W1FyXSgpe2lmKHRoaXNbVnJdJiZ0aGlzW3dvXS5sZW5ndGg+MCl7Y29uc3QgZT1uZXcgWG1sT2JqZWN0KHRoaXNbVGldLCIjdGV4dCIpO3RoaXNbTHJdKGUpO2VbVnJdPXRoaXNbVnJdO2RlbGV0ZSB0aGlzW1ZyXX19W0ppXSgpe3JldHVybiIjdGV4dCI9PT10aGlzW0hpXT9IVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6IiN0ZXh0Iix2YWx1ZTp0aGlzW1ZyXX0pOkhUTUxSZXN1bHQuRU1QVFl9W2ZpXShlPW51bGwpe3JldHVybiBlP3RoaXNbd29dLmZpbHRlcih0PT50W0hpXT09PWUpOnRoaXNbd29dfVt0aV0oKXtyZXR1cm4gdGhpc1tnb119W2FpXShlKXtjb25zdCB0PXRoaXNbZ29dLmdldChlKTtyZXR1cm4gdm9pZCAwIT09dD90OnRoaXNbZmldKGUpfSpbcmldKGUsdCl7Y29uc3Qgbj10aGlzW2dvXS5nZXQoZSk7biYmKHlpZWxkIG4pO2Zvcihjb25zdCBuIG9mIHRoaXNbd29dKXtuW0hpXT09PWUmJih5aWVsZCBuKTt0JiYoeWllbGQqbltyaV0oZSx0KSl9fSpbZWldKGUsdCl7Y29uc3Qgbj10aGlzW2dvXS5nZXQoZSk7IW58fHQmJm5bR3JdfHwoeWllbGQgbik7Zm9yKGNvbnN0IG4gb2YgdGhpc1t3b10peWllbGQqbltlaV0oZSx0KX0qW2xpXShlLHQsbil7Zm9yKGNvbnN0IGEgb2YgdGhpc1t3b10pe2FbSGldIT09ZXx8biYmYVtHcl18fCh5aWVsZCBhKTt0JiYoeWllbGQqYVtsaV0oZSx0LG4pKX19W3FpXSgpe3JldHVybiBudWxsPT09dGhpc1trb10/MD09PXRoaXNbd29dLmxlbmd0aHx8dGhpc1t3b11bMF1bVGldPT09bm8ueGh0bWwuaWQ6dGhpc1trb119W2lpXSgpe3JldHVybiBudWxsPT09dGhpc1trb10/MD09PXRoaXNbd29dLmxlbmd0aD90aGlzW1ZyXS50cmltKCk6dGhpc1t3b11bMF1bVGldPT09bm8ueGh0bWwuaWQ/dGhpc1t3b11bMF1bJGldKCkudHJpbSgpOm51bGw6dGhpc1tWcl0udHJpbSgpfVtHaV0oZSl7ZT1lLnZhbHVlfHwiIjt0aGlzW1ZyXT1lLnRvU3RyaW5nKCl9W1lyXShlPSExKXtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCk7ZSYmKHQuJG5zPXRoaXNbVGldKTt0aGlzW1ZyXSYmKHQuJGNvbnRlbnQ9dGhpc1tWcl0pO3QuJG5hbWU9dGhpc1tIaV07dC5jaGlsZHJlbj1bXTtmb3IoY29uc3QgbiBvZiB0aGlzW3dvXSl0LmNoaWxkcmVuLnB1c2gobltZcl0oZSkpO3QuYXR0cmlidXRlcz1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdFtlLG5db2YgdGhpc1tnb10pdC5hdHRyaWJ1dGVzW2VdPW5bVnJdO3JldHVybiB0fX1jbGFzcyBDb250ZW50T2JqZWN0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTt0aGlzW1ZyXT0iIn1bRGldKGUpe3RoaXNbVnJdKz1lfVtRcl0oKXt9fWNsYXNzIE9wdGlvbk9iamVjdCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGUsdCk7dGhpc1tDb109bn1bUXJdKCl7dGhpc1tWcl09Z2V0S2V5d29yZCh7ZGF0YTp0aGlzW1ZyXSxkZWZhdWx0VmFsdWU6dGhpc1tDb11bMF0sdmFsaWRhdGU6ZT0+dGhpc1tDb10uaW5jbHVkZXMoZSl9KX1bX3JdKGUpe3N1cGVyW19yXShlKTtkZWxldGUgdGhpc1tDb119fWNsYXNzIFN0cmluZ09iamVjdCBleHRlbmRzIENvbnRlbnRPYmplY3R7W1FyXSgpe3RoaXNbVnJdPXRoaXNbVnJdLnRyaW0oKX19Y2xhc3MgSW50ZWdlck9iamVjdCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSx0LG4sYSl7c3VwZXIoZSx0KTt0aGlzW3lvXT1uO3RoaXNbT29dPWF9W1FyXSgpe3RoaXNbVnJdPWdldEludGVnZXIoe2RhdGE6dGhpc1tWcl0sZGVmYXVsdFZhbHVlOnRoaXNbeW9dLHZhbGlkYXRlOnRoaXNbT29dfSl9W19yXShlKXtzdXBlcltfcl0oZSk7ZGVsZXRlIHRoaXNbeW9dO2RlbGV0ZSB0aGlzW09vXX19Y2xhc3MgT3B0aW9uMDEgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0LDAsZT0+MT09PWUpfX1jbGFzcyBPcHRpb24xMCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQsMSxlPT4wPT09ZSl9fWZ1bmN0aW9uIG1lYXN1cmVUb1N0cmluZyhlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/IjBweCI6TnVtYmVyLmlzSW50ZWdlcihlKT9gJHtlfXB4YDpgJHtlLnRvRml4ZWQoMil9cHhgfWNvbnN0IERvPXthbmNob3JUeXBlKGUsdCl7Y29uc3Qgbj1lW3VpXSgpO2lmKG4mJighbi5sYXlvdXR8fCJwb3NpdGlvbiI9PT1uLmxheW91dCkpeyJ0cmFuc2Zvcm0iaW4gdHx8KHQudHJhbnNmb3JtPSIiKTtzd2l0Y2goZS5hbmNob3JUeXBlKXtjYXNlImJvdHRvbUNlbnRlciI6dC50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTUwJSwgLTEwMCUpIjticmVhaztjYXNlImJvdHRvbUxlZnQiOnQudHJhbnNmb3JtKz0idHJhbnNsYXRlKDAsLTEwMCUpIjticmVhaztjYXNlImJvdHRvbVJpZ2h0Ijp0LnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgtMTAwJSwtMTAwJSkiO2JyZWFrO2Nhc2UibWlkZGxlQ2VudGVyIjp0LnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgtNTAlLC01MCUpIjticmVhaztjYXNlIm1pZGRsZUxlZnQiOnQudHJhbnNmb3JtKz0idHJhbnNsYXRlKDAsLTUwJSkiO2JyZWFrO2Nhc2UibWlkZGxlUmlnaHQiOnQudHJhbnNmb3JtKz0idHJhbnNsYXRlKC0xMDAlLC01MCUpIjticmVhaztjYXNlInRvcENlbnRlciI6dC50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTUwJSwwKSI7YnJlYWs7Y2FzZSJ0b3BSaWdodCI6dC50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTEwMCUsMCkifX19LGRpbWVuc2lvbnMoZSx0KXtjb25zdCBuPWVbdWldKCk7bGV0IGE9ZS53O2NvbnN0IHM9ZS5oO2lmKG4ubGF5b3V0Py5pbmNsdWRlcygicm93Iikpe2NvbnN0IHQ9bltKcl0scz1lLmNvbFNwYW47bGV0IHI7aWYoLTE9PT1zKXtyPU1hdGguc3VtUHJlY2lzZSh0LmNvbHVtbldpZHRocy5zbGljZSh0LmN1cnJlbnRDb2x1bW4pKTt0LmN1cnJlbnRDb2x1bW49MH1lbHNle3I9TWF0aC5zdW1QcmVjaXNlKHQuY29sdW1uV2lkdGhzLnNsaWNlKHQuY3VycmVudENvbHVtbix0LmN1cnJlbnRDb2x1bW4rcykpO3QuY3VycmVudENvbHVtbj0odC5jdXJyZW50Q29sdW1uK2UuY29sU3BhbikldC5jb2x1bW5XaWR0aHMubGVuZ3RofWlzTmFOKHIpfHwoYT1lLnc9cil9dC53aWR0aD0iIiE9PWE/bWVhc3VyZVRvU3RyaW5nKGEpOiJhdXRvIjt0LmhlaWdodD0iIiE9PXM/bWVhc3VyZVRvU3RyaW5nKHMpOiJhdXRvIn0scG9zaXRpb24oZSx0KXtjb25zdCBuPWVbdWldKCk7aWYoIW4/LmxheW91dHx8InBvc2l0aW9uIj09PW4ubGF5b3V0KXt0LnBvc2l0aW9uPSJhYnNvbHV0ZSI7dC5sZWZ0PW1lYXN1cmVUb1N0cmluZyhlLngpO3QudG9wPW1lYXN1cmVUb1N0cmluZyhlLnkpfX0scm90YXRlKGUsdCl7aWYoZS5yb3RhdGUpeyJ0cmFuc2Zvcm0iaW4gdHx8KHQudHJhbnNmb3JtPSIiKTt0LnRyYW5zZm9ybSs9YHJvdGF0ZSgtJHtlLnJvdGF0ZX1kZWcpYDt0LnRyYW5zZm9ybU9yaWdpbj0idG9wIGxlZnQifX0scHJlc2VuY2UoZSx0KXtzd2l0Y2goZS5wcmVzZW5jZSl7Y2FzZSJpbnZpc2libGUiOnQudmlzaWJpbGl0eT0iaGlkZGVuIjticmVhaztjYXNlImhpZGRlbiI6Y2FzZSJpbmFjdGl2ZSI6dC5kaXNwbGF5PSJub25lIn19LGhBbGlnbihlLHQpe2lmKCJwYXJhIj09PWVbSGldKXN3aXRjaChlLmhBbGlnbil7Y2FzZSJqdXN0aWZ5QWxsIjp0LnRleHRBbGlnbj0ianVzdGlmeS1hbGwiO2JyZWFrO2Nhc2UicmFkaXgiOnQudGV4dEFsaWduPSJsZWZ0IjticmVhaztkZWZhdWx0OnQudGV4dEFsaWduPWUuaEFsaWdufWVsc2Ugc3dpdGNoKGUuaEFsaWduKXtjYXNlImxlZnQiOnQuYWxpZ25TZWxmPSJzdGFydCI7YnJlYWs7Y2FzZSJjZW50ZXIiOnQuYWxpZ25TZWxmPSJjZW50ZXIiO2JyZWFrO2Nhc2UicmlnaHQiOnQuYWxpZ25TZWxmPSJlbmQifX0sbWFyZ2luKGUsdCl7ZS5tYXJnaW4mJih0Lm1hcmdpbj1lLm1hcmdpbltaaV0oKS5tYXJnaW4pfX07ZnVuY3Rpb24gc2V0TWluTWF4RGltZW5zaW9ucyhlLHQpe2lmKCJwb3NpdGlvbiI9PT1lW3VpXSgpLmxheW91dCl7ZS5taW5XPjAmJih0Lm1pbldpZHRoPW1lYXN1cmVUb1N0cmluZyhlLm1pblcpKTtlLm1heFc+MCYmKHQubWF4V2lkdGg9bWVhc3VyZVRvU3RyaW5nKGUubWF4VykpO2UubWluSD4wJiYodC5taW5IZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKGUubWluSCkpO2UubWF4SD4wJiYodC5tYXhIZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKGUubWF4SCkpfX1mdW5jdGlvbiBsYXlvdXRUZXh0KGUsdCxuLGEscyxyKXtjb25zdCBpPW5ldyBUZXh0TWVhc3VyZSh0LG4sYSxzKTsic3RyaW5nIj09dHlwZW9mIGU/aS5hZGRTdHJpbmcoZSk6ZVtNaV0oaSk7cmV0dXJuIGkuY29tcHV0ZShyKX1mdW5jdGlvbiBsYXlvdXROb2RlKGUsdCl7bGV0IG49bnVsbCxhPW51bGwscz0hMTtpZigoIWUud3x8IWUuaCkmJmUudmFsdWUpe2xldCByPTAsaT0wO2lmKGUubWFyZ2luKXtyPWUubWFyZ2luLmxlZnRJbnNldCtlLm1hcmdpbi5yaWdodEluc2V0O2k9ZS5tYXJnaW4udG9wSW5zZXQrZS5tYXJnaW4uYm90dG9tSW5zZXR9bGV0IG89bnVsbCxsPW51bGw7aWYoZS5wYXJhKXtsPU9iamVjdC5jcmVhdGUobnVsbCk7bz0iIj09PWUucGFyYS5saW5lSGVpZ2h0P251bGw6ZS5wYXJhLmxpbmVIZWlnaHQ7bC50b3A9IiI9PT1lLnBhcmEuc3BhY2VBYm92ZT8wOmUucGFyYS5zcGFjZUFib3ZlO2wuYm90dG9tPSIiPT09ZS5wYXJhLnNwYWNlQmVsb3c/MDplLnBhcmEuc3BhY2VCZWxvdztsLmxlZnQ9IiI9PT1lLnBhcmEubWFyZ2luTGVmdD8wOmUucGFyYS5tYXJnaW5MZWZ0O2wucmlnaHQ9IiI9PT1lLnBhcmEubWFyZ2luUmlnaHQ/MDplLnBhcmEubWFyZ2luUmlnaHR9bGV0IGY9ZS5mb250O2lmKCFmKXtjb25zdCB0PWVbcGldKCk7bGV0IG49ZVttaV0oKTtmb3IoO24mJm4hPT10Oyl7aWYobi5mb250KXtmPW4uZm9udDticmVha31uPW5bbWldKCl9fWNvbnN0IGM9KGUud3x8dC53aWR0aCktcixoPWVbZGldLmZvbnRGaW5kZXI7aWYoZS52YWx1ZS5leERhdGEmJmUudmFsdWUuZXhEYXRhW1ZyXSYmInRleHQvaHRtbCI9PT1lLnZhbHVlLmV4RGF0YS5jb250ZW50VHlwZSl7Y29uc3QgdD1sYXlvdXRUZXh0KGUudmFsdWUuZXhEYXRhW1ZyXSxmLGwsbyxoLGMpO2E9dC53aWR0aDtuPXQuaGVpZ2h0O3M9dC5pc0Jyb2tlbn1lbHNle2NvbnN0IHQ9ZS52YWx1ZVskaV0oKTtpZih0KXtjb25zdCBlPWxheW91dFRleHQodCxmLGwsbyxoLGMpO2E9ZS53aWR0aDtuPWUuaGVpZ2h0O3M9ZS5pc0Jyb2tlbn19bnVsbD09PWF8fGUud3x8KGErPXIpO251bGw9PT1ufHxlLmh8fChuKz1pKX1yZXR1cm57dzphLGg6bixpc0Jyb2tlbjpzfX1mdW5jdGlvbiBjb21wdXRlQmJveChlLHQsbil7bGV0IGE7aWYoIiIhPT1lLncmJiIiIT09ZS5oKWE9W2UueCxlLnksZS53LGUuaF07ZWxzZXtpZighbilyZXR1cm4gbnVsbDtsZXQgcz1lLnc7aWYoIiI9PT1zKXtpZigwPT09ZS5tYXhXKXtjb25zdCB0PWVbdWldKCk7cz0icG9zaXRpb24iPT09dC5sYXlvdXQmJiIiIT09dC53PzA6ZS5taW5XfWVsc2Ugcz1NYXRoLm1pbihlLm1heFcsbi53aWR0aCk7dC5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoPW1lYXN1cmVUb1N0cmluZyhzKX1sZXQgcj1lLmg7aWYoIiI9PT1yKXtpZigwPT09ZS5tYXhIKXtjb25zdCB0PWVbdWldKCk7cj0icG9zaXRpb24iPT09dC5sYXlvdXQmJiIiIT09dC5oPzA6ZS5taW5IfWVsc2Ugcj1NYXRoLm1pbihlLm1heEgsbi5oZWlnaHQpO3QuYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKHIpfWE9W2UueCxlLnkscyxyXX1yZXR1cm4gYX1mdW5jdGlvbiBmaXhEaW1lbnNpb25zKGUpe2NvbnN0IHQ9ZVt1aV0oKTtpZih0LmxheW91dD8uaW5jbHVkZXMoInJvdyIpKXtjb25zdCBuPXRbSnJdLGE9ZS5jb2xTcGFuO2xldCBzO3M9LTE9PT1hP01hdGguc3VtUHJlY2lzZShuLmNvbHVtbldpZHRocy5zbGljZShuLmN1cnJlbnRDb2x1bW4pKTpNYXRoLnN1bVByZWNpc2Uobi5jb2x1bW5XaWR0aHMuc2xpY2Uobi5jdXJyZW50Q29sdW1uLG4uY3VycmVudENvbHVtbithKSk7aXNOYU4ocyl8fChlLnc9cyl9dC5sYXlvdXQmJiJwb3NpdGlvbiIhPT10LmxheW91dCYmKGUueD1lLnk9MCk7InRhYmxlIj09PWUubGF5b3V0JiYiIj09PWUudyYmQXJyYXkuaXNBcnJheShlLmNvbHVtbldpZHRocykmJihlLnc9TWF0aC5zdW1QcmVjaXNlKGUuY29sdW1uV2lkdGhzKSl9ZnVuY3Rpb24gbGF5b3V0Q2xhc3MoZSl7c3dpdGNoKGUubGF5b3V0KXtjYXNlInBvc2l0aW9uIjpkZWZhdWx0OnJldHVybiJ4ZmFQb3NpdGlvbiI7Y2FzZSJsci10YiI6cmV0dXJuInhmYUxyVGIiO2Nhc2Uicmwtcm93IjpyZXR1cm4ieGZhUmxSb3ciO2Nhc2UicmwtdGIiOnJldHVybiJ4ZmFSbFRiIjtjYXNlInJvdyI6cmV0dXJuInhmYVJvdyI7Y2FzZSJ0YWJsZSI6cmV0dXJuInhmYVRhYmxlIjtjYXNlInRiIjpyZXR1cm4ieGZhVGIifX1mdW5jdGlvbiB0b1N0eWxlKGUsLi4udCl7Y29uc3Qgbj1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBhIG9mIHQpe2NvbnN0IHQ9ZVthXTtpZihudWxsIT09dClpZihEby5oYXNPd25Qcm9wZXJ0eShhKSlEb1thXShlLG4pO2Vsc2UgaWYodCBpbnN0YW5jZW9mIFhGQU9iamVjdCl7Y29uc3QgZT10W1ppXSgpO2U/T2JqZWN0LmFzc2lnbihuLGUpOndhcm4oYChERUJVRykgLSBYRkEgLSBzdHlsZSBmb3IgJHthfSBub3QgaW1wbGVtZW50ZWQgeWV0YCl9fXJldHVybiBufWZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXIoZSx0KXtjb25zdHthdHRyaWJ1dGVzOm59PXQse3N0eWxlOmF9PW4scz17bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbInhmYVdyYXBwZXIiXSxzdHlsZTpPYmplY3QuY3JlYXRlKG51bGwpfSxjaGlsZHJlbjpbXX07bi5jbGFzcy5wdXNoKCJ4ZmFXcmFwcGVkIik7aWYoZS5ib3JkZXIpe2NvbnN0e3dpZHRoczpuLGluc2V0czpyfT1lLmJvcmRlcltKcl07bGV0IGksbyxsPXJbMF0sZj1yWzNdO2NvbnN0IGM9clswXStyWzJdLGg9clsxXStyWzNdO3N3aXRjaChlLmJvcmRlci5oYW5kKXtjYXNlImV2ZW4iOmwtPW5bMF0vMjtmLT1uWzNdLzI7aT1gY2FsYygxMDAlICsgJHsoblsxXStuWzNdKS8yLWh9cHgpYDtvPWBjYWxjKDEwMCUgKyAkeyhuWzBdK25bMl0pLzItY31weClgO2JyZWFrO2Nhc2UibGVmdCI6bC09blswXTtmLT1uWzNdO2k9YGNhbGMoMTAwJSArICR7blsxXStuWzNdLWh9cHgpYDtvPWBjYWxjKDEwMCUgKyAke25bMF0rblsyXS1jfXB4KWA7YnJlYWs7Y2FzZSJyaWdodCI6aT1oP2BjYWxjKDEwMCUgLSAke2h9cHgpYDoiMTAwJSI7bz1jP2BjYWxjKDEwMCUgLSAke2N9cHgpYDoiMTAwJSJ9Y29uc3QgdT1bInhmYUJvcmRlciJdO2lzUHJpbnRPbmx5KGUuYm9yZGVyKSYmdS5wdXNoKCJ4ZmFQcmludE9ubHkiKTtjb25zdCBtPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOnUsc3R5bGU6e3RvcDpgJHtsfXB4YCxsZWZ0OmAke2Z9cHhgLHdpZHRoOmksaGVpZ2h0Om99fSxjaGlsZHJlbjpbXX07Zm9yKGNvbnN0IGUgb2ZbImJvcmRlciIsImJvcmRlcldpZHRoIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJTdHlsZSJdKWlmKHZvaWQgMCE9PWFbZV0pe20uYXR0cmlidXRlcy5zdHlsZVtlXT1hW2VdO2RlbGV0ZSBhW2VdfXMuY2hpbGRyZW4ucHVzaChtLHQpfWVsc2Ugcy5jaGlsZHJlbi5wdXNoKHQpO2Zvcihjb25zdCBlIG9mWyJiYWNrZ3JvdW5kIiwiYmFja2dyb3VuZENsaXAiLCJ0b3AiLCJsZWZ0Iiwid2lkdGgiLCJoZWlnaHQiLCJtaW5XaWR0aCIsIm1pbkhlaWdodCIsIm1heFdpZHRoIiwibWF4SGVpZ2h0IiwidHJhbnNmb3JtIiwidHJhbnNmb3JtT3JpZ2luIiwidmlzaWJpbGl0eSJdKWlmKHZvaWQgMCE9PWFbZV0pe3MuYXR0cmlidXRlcy5zdHlsZVtlXT1hW2VdO2RlbGV0ZSBhW2VdfXMuYXR0cmlidXRlcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiPT09YS5wb3NpdGlvbj8iYWJzb2x1dGUiOiJyZWxhdGl2ZSI7ZGVsZXRlIGEucG9zaXRpb247aWYoYS5hbGlnblNlbGYpe3MuYXR0cmlidXRlcy5zdHlsZS5hbGlnblNlbGY9YS5hbGlnblNlbGY7ZGVsZXRlIGEuYWxpZ25TZWxmfXJldHVybiBzfWZ1bmN0aW9uIGZpeFRleHRJbmRlbnQoZSl7Y29uc3QgdD1nZXRNZWFzdXJlbWVudChlLnRleHRJbmRlbnQsIjBweCIpO2lmKHQ+PTApcmV0dXJuO2NvbnN0IG49InBhZGRpbmciKygibGVmdCI9PT0oInJpZ2h0Ij09PWUudGV4dEFsaWduPyJyaWdodCI6ImxlZnQiKT8iTGVmdCI6IlJpZ2h0IiksYT1nZXRNZWFzdXJlbWVudChlW25dLCIwcHgiKTtlW25dPWEtdCsicHgifWZ1bmN0aW9uIHNldEFjY2VzcyhlLHQpe3N3aXRjaChlLmFjY2Vzcyl7Y2FzZSJub25JbnRlcmFjdGl2ZSI6dC5wdXNoKCJ4ZmFOb25JbnRlcmFjdGl2ZSIpO2JyZWFrO2Nhc2UicmVhZE9ubHkiOnQucHVzaCgieGZhUmVhZE9ubHkiKTticmVhaztjYXNlInByb3RlY3RlZCI6dC5wdXNoKCJ4ZmFEaXNhYmxlZCIpfX1mdW5jdGlvbiBpc1ByaW50T25seShlKXtyZXR1cm4gZS5yZWxldmFudC5sZW5ndGg+MCYmIWUucmVsZXZhbnRbMF0uZXhjbHVkZWQmJiJwcmludCI9PT1lLnJlbGV2YW50WzBdLnZpZXduYW1lfWZ1bmN0aW9uIGdldEN1cnJlbnRQYXJhKGUpe2NvbnN0IHQ9ZVtwaV0oKVtKcl0ucGFyYVN0YWNrO3JldHVybiB0Lmxlbmd0aD90LmF0KC0xKTpudWxsfWZ1bmN0aW9uIHNldFBhcmEoZSx0LG4pe2lmKG4uYXR0cmlidXRlcy5jbGFzcz8uaW5jbHVkZXMoInhmYVJpY2giKSl7aWYodCl7IiI9PT1lLmgmJih0LmhlaWdodD0iYXV0byIpOyIiPT09ZS53JiYodC53aWR0aD0iYXV0byIpfWNvbnN0IGE9Z2V0Q3VycmVudFBhcmEoZSk7aWYoYSl7Y29uc3QgZT1uLmF0dHJpYnV0ZXMuc3R5bGU7ZS5kaXNwbGF5PSJmbGV4IjtlLmZsZXhEaXJlY3Rpb249ImNvbHVtbiI7c3dpdGNoKGEudkFsaWduKXtjYXNlInRvcCI6ZS5qdXN0aWZ5Q29udGVudD0ic3RhcnQiO2JyZWFrO2Nhc2UiYm90dG9tIjplLmp1c3RpZnlDb250ZW50PSJlbmQiO2JyZWFrO2Nhc2UibWlkZGxlIjplLmp1c3RpZnlDb250ZW50PSJjZW50ZXIifWNvbnN0IHQ9YVtaaV0oKTtmb3IoY29uc3RbbixhXW9mIE9iamVjdC5lbnRyaWVzKHQpKW4gaW4gZXx8KGVbbl09YSl9fX1mdW5jdGlvbiBzZXRGb250RmFtaWx5KGUsdCxuLGEpe2lmKCFuKXtkZWxldGUgYS5mb250RmFtaWx5O3JldHVybn1jb25zdCBzPXN0cmlwUXVvdGVzKGUudHlwZWZhY2UpO2EuZm9udEZhbWlseT1gIiR7c30iYDtjb25zdCByPW4uZmluZChzKTtpZihyKXtjb25zdHtmb250RmFtaWx5Om59PXIucmVndWxhci5jc3NGb250SW5mbztuIT09cyYmKGEuZm9udEZhbWlseT1gIiR7bn0iYCk7Y29uc3QgaT1nZXRDdXJyZW50UGFyYSh0KTtpZihpJiYiIiE9PWkubGluZUhlaWdodClyZXR1cm47aWYoYS5saW5lSGVpZ2h0KXJldHVybjtjb25zdCBvPXNlbGVjdEZvbnQoZSxyKTtvJiYoYS5saW5lSGVpZ2h0PU1hdGgubWF4KDEuMixvLmxpbmVIZWlnaHQpKX19ZnVuY3Rpb24gZml4VVJMKGUpe2NvbnN0IHQ9Y3JlYXRlVmFsaWRBYnNvbHV0ZVVybChlLG51bGwse2FkZERlZmF1bHRQcm90b2NvbDohMCx0cnlDb252ZXJ0RW5jb2Rpbmc6ITB9KTtyZXR1cm4gdD90LmhyZWY6bnVsbH1mdW5jdGlvbiBjcmVhdGVMaW5lKGUsdCl7cmV0dXJue25hbWU6ImRpdiIsYXR0cmlidXRlczp7Y2xhc3M6WyJsci10YiI9PT1lLmxheW91dD8ieGZhTHIiOiJ4ZmFSbCJdfSxjaGlsZHJlbjp0fX1mdW5jdGlvbiBmbHVzaEhUTUwoZSl7aWYoIWVbSnJdKXJldHVybiBudWxsO2NvbnN0IHQ9e25hbWU6ImRpdiIsYXR0cmlidXRlczplW0pyXS5hdHRyaWJ1dGVzLGNoaWxkcmVuOmVbSnJdLmNoaWxkcmVufTtpZihlW0pyXS5mYWlsaW5nTm9kZSl7Y29uc3Qgbj1lW0pyXS5mYWlsaW5nTm9kZVtacl0oKTtuJiYoZS5sYXlvdXQuZW5kc1dpdGgoIi10YiIpP3QuY2hpbGRyZW4ucHVzaChjcmVhdGVMaW5lKGUsW25dKSk6dC5jaGlsZHJlbi5wdXNoKG4pKX1yZXR1cm4gMD09PXQuY2hpbGRyZW4ubGVuZ3RoP251bGw6dH1mdW5jdGlvbiBhZGRIVE1MKGUsdCxuKXtjb25zdCBhPWVbSnJdLHM9YS5hdmFpbGFibGVTcGFjZSxbcixpLG8sbF09bjtzd2l0Y2goZS5sYXlvdXQpe2Nhc2UicG9zaXRpb24iOmEud2lkdGg9TWF0aC5tYXgoYS53aWR0aCxyK28pO2EuaGVpZ2h0PU1hdGgubWF4KGEuaGVpZ2h0LGkrbCk7YS5jaGlsZHJlbi5wdXNoKHQpO2JyZWFrO2Nhc2UibHItdGIiOmNhc2UicmwtdGIiOmlmKCFhLmxpbmV8fDE9PT1hLmF0dGVtcHQpe2EubGluZT1jcmVhdGVMaW5lKGUsW10pO2EuY2hpbGRyZW4ucHVzaChhLmxpbmUpO2EubnVtYmVySW5MaW5lPTB9YS5udW1iZXJJbkxpbmUrPTE7YS5saW5lLmNoaWxkcmVuLnB1c2godCk7aWYoMD09PWEuYXR0ZW1wdCl7YS5jdXJyZW50V2lkdGgrPW87YS5oZWlnaHQ9TWF0aC5tYXgoYS5oZWlnaHQsYS5wcmV2SGVpZ2h0K2wpfWVsc2V7YS5jdXJyZW50V2lkdGg9bzthLnByZXZIZWlnaHQ9YS5oZWlnaHQ7YS5oZWlnaHQrPWw7YS5hdHRlbXB0PTB9YS53aWR0aD1NYXRoLm1heChhLndpZHRoLGEuY3VycmVudFdpZHRoKTticmVhaztjYXNlInJsLXJvdyI6Y2FzZSJyb3ciOnthLmNoaWxkcmVuLnB1c2godCk7YS53aWR0aCs9bzthLmhlaWdodD1NYXRoLm1heChhLmhlaWdodCxsKTtjb25zdCBlPW1lYXN1cmVUb1N0cmluZyhhLmhlaWdodCk7Zm9yKGNvbnN0IHQgb2YgYS5jaGlsZHJlbil0LmF0dHJpYnV0ZXMuc3R5bGUuaGVpZ2h0PWU7YnJlYWt9Y2FzZSJ0YWJsZSI6Y2FzZSJ0YiI6YS53aWR0aD1NYXRoQ2xhbXAobyxhLndpZHRoLHMud2lkdGgpO2EuaGVpZ2h0Kz1sO2EuY2hpbGRyZW4ucHVzaCh0KX19ZnVuY3Rpb24gZ2V0QXZhaWxhYmxlU3BhY2UoZSl7Y29uc3QgdD1lW0pyXS5hdmFpbGFibGVTcGFjZSxuPWUubWFyZ2luP2UubWFyZ2luLnRvcEluc2V0K2UubWFyZ2luLmJvdHRvbUluc2V0OjAsYT1lLm1hcmdpbj9lLm1hcmdpbi5sZWZ0SW5zZXQrZS5tYXJnaW4ucmlnaHRJbnNldDowO3N3aXRjaChlLmxheW91dCl7Y2FzZSJsci10YiI6Y2FzZSJybC10YiI6cmV0dXJuIDA9PT1lW0pyXS5hdHRlbXB0P3t3aWR0aDp0LndpZHRoLWEtZVtKcl0uY3VycmVudFdpZHRoLGhlaWdodDp0LmhlaWdodC1uLWVbSnJdLnByZXZIZWlnaHR9Ont3aWR0aDp0LndpZHRoLWEsaGVpZ2h0OnQuaGVpZ2h0LW4tZVtKcl0uaGVpZ2h0fTtjYXNlInJsLXJvdyI6Y2FzZSJyb3ciOnJldHVybnt3aWR0aDpNYXRoLnN1bVByZWNpc2UoZVtKcl0uY29sdW1uV2lkdGhzLnNsaWNlKGVbSnJdLmN1cnJlbnRDb2x1bW4pKSxoZWlnaHQ6dC5oZWlnaHQtYX07Y2FzZSJ0YWJsZSI6Y2FzZSJ0YiI6cmV0dXJue3dpZHRoOnQud2lkdGgtYSxoZWlnaHQ6dC5oZWlnaHQtbi1lW0pyXS5oZWlnaHR9O2RlZmF1bHQ6cmV0dXJuIHR9fWZ1bmN0aW9uIGNoZWNrRGltZW5zaW9ucyhlLHQpe2lmKG51bGw9PT1lW3BpXSgpW0pyXS5maXJzdFVuc3BsaXR0YWJsZSlyZXR1cm4hMDtpZigwPT09ZS53fHwwPT09ZS5oKXJldHVybiEwO2NvbnN0IG49ZVt1aV0oKSxhPW5bSnJdPy5hdHRlbXB0fHwwLFsscyxyLGldPWZ1bmN0aW9uIGdldFRyYW5zZm9ybWVkQkJveChlKXtsZXQgdCxuLGE9IiI9PT1lLnc/TmFOOmUudyxzPSIiPT09ZS5oP05hTjplLmgsW3IsaV09WzAsMF07c3dpdGNoKGUuYW5jaG9yVHlwZXx8IiIpe2Nhc2UiYm90dG9tQ2VudGVyIjpbcixpXT1bYS8yLHNdO2JyZWFrO2Nhc2UiYm90dG9tTGVmdCI6W3IsaV09WzAsc107YnJlYWs7Y2FzZSJib3R0b21SaWdodCI6W3IsaV09W2Esc107YnJlYWs7Y2FzZSJtaWRkbGVDZW50ZXIiOltyLGldPVthLzIscy8yXTticmVhaztjYXNlIm1pZGRsZUxlZnQiOltyLGldPVswLHMvMl07YnJlYWs7Y2FzZSJtaWRkbGVSaWdodCI6W3IsaV09W2Escy8yXTticmVhaztjYXNlInRvcENlbnRlciI6W3IsaV09W2EvMiwwXTticmVhaztjYXNlInRvcFJpZ2h0IjpbcixpXT1bYSwwXX1zd2l0Y2goZS5yb3RhdGV8fDApe2Nhc2UgMDpbdCxuXT1bLXIsLWldO2JyZWFrO2Nhc2UgOTA6W3Qsbl09Wy1pLHJdO1thLHNdPVtzLC1hXTticmVhaztjYXNlIDE4MDpbdCxuXT1bcixpXTtbYSxzXT1bLWEsLXNdO2JyZWFrO2Nhc2UgMjcwOlt0LG5dPVtpLC1yXTtbYSxzXT1bLXMsYV19cmV0dXJuW2UueCt0K01hdGgubWluKDAsYSksZS55K24rTWF0aC5taW4oMCxzKSxNYXRoLmFicyhhKSxNYXRoLmFicyhzKV19KGUpO3N3aXRjaChuLmxheW91dCl7Y2FzZSJsci10YiI6Y2FzZSJybC10YiI6cmV0dXJuIDA9PT1hP2VbcGldKClbSnJdLm5vTGF5b3V0RmFpbHVyZT8iIiE9PWUudz9NYXRoLnJvdW5kKHItdC53aWR0aCk8PTI6dC53aWR0aD4yOiEoIiIhPT1lLmgmJk1hdGgucm91bmQoaS10LmhlaWdodCk+MikmJigiIiE9PWUudz9NYXRoLnJvdW5kKHItdC53aWR0aCk8PTJ8fDA9PT1uW0pyXS5udW1iZXJJbkxpbmUmJnQuaGVpZ2h0PjI6dC53aWR0aD4yKTohIWVbcGldKClbSnJdLm5vTGF5b3V0RmFpbHVyZXx8ISgiIiE9PWUuaCYmTWF0aC5yb3VuZChpLXQuaGVpZ2h0KT4yKSYmKCgiIj09PWUud3x8TWF0aC5yb3VuZChyLXQud2lkdGgpPD0yfHwhbltBaV0oKSkmJnQuaGVpZ2h0PjIpO2Nhc2UidGFibGUiOmNhc2UidGIiOnJldHVybiEhZVtwaV0oKVtKcl0ubm9MYXlvdXRGYWlsdXJlfHwoIiI9PT1lLmh8fGVbeGldKCk/KCIiPT09ZS53fHxNYXRoLnJvdW5kKHItdC53aWR0aCk8PTJ8fCFuW0FpXSgpKSYmdC5oZWlnaHQ+MjpNYXRoLnJvdW5kKGktdC5oZWlnaHQpPD0yKTtjYXNlInBvc2l0aW9uIjppZihlW3BpXSgpW0pyXS5ub0xheW91dEZhaWx1cmUpcmV0dXJuITA7aWYoIiI9PT1lLmh8fE1hdGgucm91bmQoaStzLXQuaGVpZ2h0KTw9MilyZXR1cm4hMDtyZXR1cm4gaStzPmVbcGldKClbSnJdLmN1cnJlbnRDb250ZW50QXJlYS5oO2Nhc2Uicmwtcm93IjpjYXNlInJvdyI6cmV0dXJuISFlW3BpXSgpW0pyXS5ub0xheW91dEZhaWx1cmV8fCgiIj09PWUuaHx8TWF0aC5yb3VuZChpLXQuaGVpZ2h0KTw9Mik7ZGVmYXVsdDpyZXR1cm4hMH19Y29uc3QgTW89bm8udGVtcGxhdGUuaWQsUG89Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixFbz0vXkgoXGQrKSQvLE5vPW5ldyBTZXQoWyJpbWFnZS9naWYiLCJpbWFnZS9qcGVnIiwiaW1hZ2UvanBnIiwiaW1hZ2UvcGpwZWciLCJpbWFnZS9wbmciLCJpbWFnZS9hcG5nIiwiaW1hZ2UveC1wbmciLCJpbWFnZS9ibXAiLCJpbWFnZS94LW1zLWJtcCIsImltYWdlL3RpZmYiLCJpbWFnZS90aWYiLCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iXSksem89W1tbNjYsNzddLCJpbWFnZS9ibXAiXSxbWzI1NSwyMTYsMjU1XSwiaW1hZ2UvanBlZyJdLFtbNzMsNzMsNDIsMF0sImltYWdlL3RpZmYiXSxbWzc3LDc3LDAsNDJdLCJpbWFnZS90aWZmIl0sW1s3MSw3Myw3MCw1Niw1Nyw5N10sImltYWdlL2dpZiJdLFtbMTM3LDgwLDc4LDcxLDEzLDEwLDI2LDEwXSwiaW1hZ2UvcG5nIl1dO2Z1bmN0aW9uIGdldEJvcmRlckRpbXMoZSl7aWYoIWV8fCFlLmJvcmRlcilyZXR1cm57dzowLGg6MH07Y29uc3QgdD1lLmJvcmRlcltvaV0oKTtyZXR1cm4gdD97dzp0LndpZHRoc1swXSt0LndpZHRoc1syXSt0Lmluc2V0c1swXSt0Lmluc2V0c1syXSxoOnQud2lkdGhzWzFdK3Qud2lkdGhzWzNdK3QuaW5zZXRzWzFdK3QuaW5zZXRzWzNdfTp7dzowLGg6MH19ZnVuY3Rpb24gaGFzTWFyZ2luKGUpe3JldHVybiBlLm1hcmdpbiYmKGUubWFyZ2luLnRvcEluc2V0fHxlLm1hcmdpbi5yaWdodEluc2V0fHxlLm1hcmdpbi5ib3R0b21JbnNldHx8ZS5tYXJnaW4ubGVmdEluc2V0KX1mdW5jdGlvbiBfc2V0VmFsdWUoZSx0KXtpZighZS52YWx1ZSl7Y29uc3QgdD1uZXcgVmFsdWUoe30pO2VbTHJdKHQpO2UudmFsdWU9dH1lLnZhbHVlW0dpXSh0KX1mdW5jdGlvbipnZXRDb250YWluZWRDaGlsZHJlbihlKXtmb3IoY29uc3QgdCBvZiBlW2ZpXSgpKXQgaW5zdGFuY2VvZiBTdWJmb3JtU2V0P3lpZWxkKnRbY2ldKCk6eWllbGQgdH1mdW5jdGlvbiBpc1JlcXVpcmVkKGUpe3JldHVybiJlcnJvciI9PT1lLnZhbGlkYXRlPy5udWxsVGVzdH1mdW5jdGlvbiBzZXRUYWJJbmRleChlKXtmb3IoO2U7KXtpZighZS50cmF2ZXJzYWwpe2VbVmldPWVbbWldKClbVmldO3JldHVybn1pZihlW1ZpXSlyZXR1cm47bGV0IHQ9bnVsbDtmb3IoY29uc3QgbiBvZiBlLnRyYXZlcnNhbFtmaV0oKSlpZigibmV4dCI9PT1uLm9wZXJhdGlvbil7dD1uO2JyZWFrfWlmKCF0fHwhdC5yZWYpe2VbVmldPWVbbWldKClbVmldO3JldHVybn1jb25zdCBuPWVbcGldKCk7ZVtWaV09KytuW1ZpXTtjb25zdCBhPW5bWGldKHQucmVmLGUpO2lmKCFhKXJldHVybjtlPWFbMF19fWZ1bmN0aW9uIGFwcGx5QXNzaXN0KGUsdCl7Y29uc3Qgbj1lLmFzc2lzdDtpZihuKXtjb25zdCBlPW5bSmldKCk7ZSYmKHQudGl0bGU9ZSk7Y29uc3QgYT1uLnJvbGUubWF0Y2goRW8pO2lmKGEpe2NvbnN0IGU9ImhlYWRpbmciLG49YVsxXTt0LnJvbGU9ZTt0WyJhcmlhLWxldmVsIl09bn19aWYoInRhYmxlIj09PWUubGF5b3V0KXQucm9sZT0idGFibGUiO2Vsc2UgaWYoInJvdyI9PT1lLmxheW91dCl0LnJvbGU9InJvdyI7ZWxzZXtjb25zdCBuPWVbbWldKCk7InJvdyI9PT1uLmxheW91dCYmKHQucm9sZT0iVEgiPT09bi5hc3Npc3Q/LnJvbGU/ImNvbHVtbmhlYWRlciI6ImNlbGwiKX19ZnVuY3Rpb24gYXJpYUxhYmVsKGUpe2lmKCFlLmFzc2lzdClyZXR1cm4gbnVsbDtjb25zdCB0PWUuYXNzaXN0O3JldHVybiB0LnNwZWFrJiYiIiE9PXQuc3BlYWtbVnJdP3Quc3BlYWtbVnJdOnQudG9vbFRpcD90LnRvb2xUaXBbVnJdOm51bGx9ZnVuY3Rpb24gdmFsdWVUb0h0bWwoZSl7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbInhmYVJpY2giXSxzdHlsZTpPYmplY3QuY3JlYXRlKG51bGwpfSxjaGlsZHJlbjpbe25hbWU6InNwYW4iLGF0dHJpYnV0ZXM6e3N0eWxlOk9iamVjdC5jcmVhdGUobnVsbCl9LHZhbHVlOmV9XX0pfWZ1bmN0aW9uIHNldEZpcnN0VW5zcGxpdHRhYmxlKGUpe2NvbnN0IHQ9ZVtwaV0oKTtpZihudWxsPT09dFtKcl0uZmlyc3RVbnNwbGl0dGFibGUpe3RbSnJdLmZpcnN0VW5zcGxpdHRhYmxlPWU7dFtKcl0ubm9MYXlvdXRGYWlsdXJlPSEwfX1mdW5jdGlvbiB1bnNldEZpcnN0VW5zcGxpdHRhYmxlKGUpe2NvbnN0IHQ9ZVtwaV0oKTt0W0pyXS5maXJzdFVuc3BsaXR0YWJsZT09PWUmJih0W0pyXS5ub0xheW91dEZhaWx1cmU9ITEpfWZ1bmN0aW9uIGhhbmRsZUJyZWFrKGUpe2lmKGVbSnJdKXJldHVybiExO2VbSnJdPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoImF1dG8iPT09ZS50YXJnZXRUeXBlKXJldHVybiExO2NvbnN0IHQ9ZVtwaV0oKTtsZXQgbj1udWxsO2lmKGUudGFyZ2V0KXtuPXRbWGldKGUudGFyZ2V0LGVbbWldKCkpO2lmKCFuKXJldHVybiExO249blswXX1jb25zdHtjdXJyZW50UGFnZUFyZWE6YSxjdXJyZW50Q29udGVudEFyZWE6c309dFtKcl07aWYoInBhZ2VBcmVhIj09PWUudGFyZ2V0VHlwZSl7biBpbnN0YW5jZW9mIFBhZ2VBcmVhfHwobj1udWxsKTtpZihlLnN0YXJ0TmV3KXtlW0pyXS50YXJnZXQ9bnx8YTtyZXR1cm4hMH1pZihuJiZuIT09YSl7ZVtKcl0udGFyZ2V0PW47cmV0dXJuITB9cmV0dXJuITF9biBpbnN0YW5jZW9mIENvbnRlbnRBcmVhfHwobj1udWxsKTtjb25zdCByPW4mJm5bbWldKCk7bGV0IGksbz1yO2lmKGUuc3RhcnROZXcpaWYobil7Y29uc3QgZT1yLmNvbnRlbnRBcmVhLmNoaWxkcmVuLHQ9ZS5pbmRleE9mKHMpLGE9ZS5pbmRleE9mKG4pOy0xIT09dCYmdDxhJiYobz1udWxsKTtpPWEtMX1lbHNlIGk9YS5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKHMpO2Vsc2V7aWYoIW58fG49PT1zKXJldHVybiExO2k9ci5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKG4pLTE7bz1yPT09YT9udWxsOnJ9ZVtKcl0udGFyZ2V0PW87ZVtKcl0uaW5kZXg9aTtyZXR1cm4hMH1mdW5jdGlvbiBoYW5kbGVPdmVyZmxvdyhlLHQsbil7Y29uc3QgYT1lW3BpXSgpLHM9YVtKcl0ubm9MYXlvdXRGYWlsdXJlLHI9dFt1aV07dFt1aV09KCk9PmU7YVtKcl0ubm9MYXlvdXRGYWlsdXJlPSEwO2NvbnN0IGk9dFtKaV0obik7ZVt6cl0oaS5odG1sLGkuYmJveCk7YVtKcl0ubm9MYXlvdXRGYWlsdXJlPXM7dFt1aV09cn1jbGFzcyBBcHBlYXJhbmNlRmlsdGVyIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJhcHBlYXJhbmNlRmlsdGVyIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBBcmMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImFyYyIsITApO3RoaXMuY2lyY3VsYXI9Z2V0SW50ZWdlcih7ZGF0YTplLmNpcmN1bGFyLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5oYW5kPWdldFN0cmluZ09wdGlvbihlLmhhbmQsWyJldmVuIiwibGVmdCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5zdGFydEFuZ2xlPWdldEZsb2F0KHtkYXRhOmUuc3RhcnRBbmdsZSxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4hMH0pO3RoaXMuc3dlZXBBbmdsZT1nZXRGbG9hdCh7ZGF0YTplLnN3ZWVwQW5nbGUsZGVmYXVsdFZhbHVlOjM2MCx2YWxpZGF0ZTplPT4hMH0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmVkZ2U9bnVsbDt0aGlzLmZpbGw9bnVsbH1bSmldKCl7Y29uc3QgZT10aGlzLmVkZ2V8fG5ldyBFZGdlKHt9KSx0PWVbWmldKCksbj1PYmplY3QuY3JlYXRlKG51bGwpOyJ2aXNpYmxlIj09PXRoaXMuZmlsbD8ucHJlc2VuY2U/T2JqZWN0LmFzc2lnbihuLHRoaXMuZmlsbFtaaV0oKSk6bi5maWxsPSJ0cmFuc3BhcmVudCI7bi5zdHJva2VXaWR0aD1tZWFzdXJlVG9TdHJpbmcoInZpc2libGUiPT09ZS5wcmVzZW5jZT9lLnRoaWNrbmVzczowKTtuLnN0cm9rZT10LmNvbG9yO2xldCBhO2NvbnN0IHM9e3htbG5zOlBvLHN0eWxlOnt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixvdmVyZmxvdzoidmlzaWJsZSJ9fTtpZigzNjA9PT10aGlzLnN3ZWVwQW5nbGUpYT17bmFtZToiZWxsaXBzZSIsYXR0cmlidXRlczp7eG1sbnM6UG8sY3g6IjUwJSIsY3k6IjUwJSIscng6IjUwJSIscnk6IjUwJSIsc3R5bGU6bn19O2Vsc2V7Y29uc3QgZT10aGlzLnN0YXJ0QW5nbGUqTWF0aC5QSS8xODAsdD10aGlzLnN3ZWVwQW5nbGUqTWF0aC5QSS8xODAscj10aGlzLnN3ZWVwQW5nbGU+MTgwPzE6MCxbaSxvLGwsZl09WzUwKigxK01hdGguY29zKGUpKSw1MCooMS1NYXRoLnNpbihlKSksNTAqKDErTWF0aC5jb3MoZSt0KSksNTAqKDEtTWF0aC5zaW4oZSt0KSldO2E9e25hbWU6InBhdGgiLGF0dHJpYnV0ZXM6e3htbG5zOlBvLGQ6YE0gJHtpfSAke299IEEgNTAgNTAgMCAke3J9IDAgJHtsfSAke2Z9YCx2ZWN0b3JFZmZlY3Q6Im5vbi1zY2FsaW5nLXN0cm9rZSIsc3R5bGU6bn19O09iamVjdC5hc3NpZ24ocyx7dmlld0JveDoiMCAwIDEwMCAxMDAiLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSl9Y29uc3Qgcj17bmFtZToic3ZnIixjaGlsZHJlbjpbYV0sYXR0cmlidXRlczpzfTtpZihoYXNNYXJnaW4odGhpc1ttaV0oKVttaV0oKSkpcmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixhdHRyaWJ1dGVzOntzdHlsZTp7ZGlzcGxheToiaW5saW5lIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn19LGNoaWxkcmVuOltyXX0pO3IuYXR0cmlidXRlcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Mocil9fWNsYXNzIEFyZWEgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImFyZWEiLCEwKTt0aGlzLmNvbFNwYW49Z2V0SW50ZWdlcih7ZGF0YTplLmNvbFNwYW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ZT49MXx8LTE9PT1lfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLng9Z2V0TWVhc3VyZW1lbnQoZS54LCIwcHQiKTt0aGlzLnk9Z2V0TWVhc3VyZW1lbnQoZS55LCIwcHQiKTt0aGlzLmRlc2M9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMuYXJlYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kcmF3PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4T2JqZWN0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4Y2xHcm91cD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5maWVsZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJmb3JtPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnN1YmZvcm1TZXQ9bmV3IFhGQU9iamVjdEFycmF5fSpbY2ldKCl7eWllbGQqZ2V0Q29udGFpbmVkQ2hpbGRyZW4odGhpcyl9W0NpXSgpe3JldHVybiEwfVt5aV0oKXtyZXR1cm4hMH1benJdKGUsdCl7Y29uc3RbbixhLHMscl09dDt0aGlzW0pyXS53aWR0aD1NYXRoLm1heCh0aGlzW0pyXS53aWR0aCxuK3MpO3RoaXNbSnJdLmhlaWdodD1NYXRoLm1heCh0aGlzW0pyXS5oZWlnaHQsYStyKTt0aGlzW0pyXS5jaGlsZHJlbi5wdXNoKGUpfVtuaV0oKXtyZXR1cm4gdGhpc1tKcl0uYXZhaWxhYmxlU3BhY2V9W0ppXShlKXtjb25zdCB0PXRvU3R5bGUodGhpcywicG9zaXRpb24iKSxuPXtzdHlsZTp0LGlkOnRoaXNbZW9dLGNsYXNzOlsieGZhQXJlYSJdfTtpc1ByaW50T25seSh0aGlzKSYmbi5jbGFzcy5wdXNoKCJ4ZmFQcmludE9ubHkiKTt0aGlzLm5hbWUmJihuLnhmYU5hbWU9dGhpcy5uYW1lKTtjb25zdCBhPVtdO3RoaXNbSnJdPXtjaGlsZHJlbjphLHdpZHRoOjAsaGVpZ2h0OjAsYXZhaWxhYmxlU3BhY2U6ZX07Y29uc3Qgcz10aGlzW1VyXSh7ZmlsdGVyOm5ldyBTZXQoWyJhcmVhIiwiZHJhdyIsImZpZWxkIiwiZXhjbEdyb3VwIiwic3ViZm9ybSIsInN1YmZvcm1TZXQiXSksaW5jbHVkZTohMH0pO2lmKCFzLnN1Y2Nlc3Mpe2lmKHMuaXNCcmVhaygpKXJldHVybiBzO2RlbGV0ZSB0aGlzW0pyXTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfXQud2lkdGg9bWVhc3VyZVRvU3RyaW5nKHRoaXNbSnJdLndpZHRoKTt0LmhlaWdodD1tZWFzdXJlVG9TdHJpbmcodGhpc1tKcl0uaGVpZ2h0KTtjb25zdCByPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6bixjaGlsZHJlbjphfSxpPVt0aGlzLngsdGhpcy55LHRoaXNbSnJdLndpZHRoLHRoaXNbSnJdLmhlaWdodF07ZGVsZXRlIHRoaXNbSnJdO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MocixpKX19Y2xhc3MgQXNzaXN0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJhc3Npc3QiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucm9sZT1lLnJvbGV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnNwZWFrPW51bGw7dGhpcy50b29sVGlwPW51bGx9W0ppXSgpe3JldHVybiB0aGlzLnRvb2xUaXA/LltWcl18fG51bGx9fWNsYXNzIEJhcmNvZGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImJhcmNvZGUiLCEwKTt0aGlzLmNoYXJFbmNvZGluZz1nZXRLZXl3b3JkKHtkYXRhOmUuY2hhckVuY29kaW5nP2UuY2hhckVuY29kaW5nLnRvTG93ZXJDYXNlKCk6IiIsZGVmYXVsdFZhbHVlOiIiLHZhbGlkYXRlOmU9PlsidXRmLTgiLCJiaWctZml2ZSIsImZvbnRzcGVjaWZpYyIsImdiayIsImdiLTE4MDMwIiwiZ2ItMjMxMiIsImtzYy01NjAxIiwibm9uZSIsInNoaWZ0LWppcyIsInVjcy0yIiwidXRmLTE2Il0uaW5jbHVkZXMoZSl8fGUubWF0Y2goL2lzby04ODU5LVxkezJ9Lyl9KTt0aGlzLmNoZWNrc3VtPWdldFN0cmluZ09wdGlvbihlLmNoZWNrc3VtLFsibm9uZSIsIjFtb2QxMCIsIjFtb2QxMF8xbW9kMTEiLCIybW9kMTAiLCJhdXRvIl0pO3RoaXMuZGF0YUNvbHVtbkNvdW50PWdldEludGVnZXIoe2RhdGE6ZS5kYXRhQ29sdW1uQ291bnQsZGVmYXVsdFZhbHVlOi0xLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLmRhdGFMZW5ndGg9Z2V0SW50ZWdlcih7ZGF0YTplLmRhdGFMZW5ndGgsZGVmYXVsdFZhbHVlOi0xLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLmRhdGFQcmVwPWdldFN0cmluZ09wdGlvbihlLmRhdGFQcmVwLFsibm9uZSIsImZsYXRlQ29tcHJlc3MiXSk7dGhpcy5kYXRhUm93Q291bnQ9Z2V0SW50ZWdlcih7ZGF0YTplLmRhdGFSb3dDb3VudCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6ZT0+ZT49MH0pO3RoaXMuZW5kQ2hhcj1lLmVuZENoYXJ8fCIiO3RoaXMuZXJyb3JDb3JyZWN0aW9uTGV2ZWw9Z2V0SW50ZWdlcih7ZGF0YTplLmVycm9yQ29ycmVjdGlvbkxldmVsLGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTplPT5lPj0wJiZlPD04fSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm1vZHVsZUhlaWdodD1nZXRNZWFzdXJlbWVudChlLm1vZHVsZUhlaWdodCwiNW1tIik7dGhpcy5tb2R1bGVXaWR0aD1nZXRNZWFzdXJlbWVudChlLm1vZHVsZVdpZHRoLCIwLjI1bW0iKTt0aGlzLnByaW50Q2hlY2tEaWdpdD1nZXRJbnRlZ2VyKHtkYXRhOmUucHJpbnRDaGVja0RpZ2l0LGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5yb3dDb2x1bW5SYXRpbz1nZXRSYXRpbyhlLnJvd0NvbHVtblJhdGlvKTt0aGlzLnN0YXJ0Q2hhcj1lLnN0YXJ0Q2hhcnx8IiI7dGhpcy50ZXh0TG9jYXRpb249Z2V0U3RyaW5nT3B0aW9uKGUudGV4dExvY2F0aW9uLFsiYmVsb3ciLCJhYm92ZSIsImFib3ZlRW1iZWRkZWQiLCJiZWxvd0VtYmVkZGVkIiwibm9uZSJdKTt0aGlzLnRydW5jYXRlPWdldEludGVnZXIoe2RhdGE6ZS50cnVuY2F0ZSxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlP2UudHlwZS50b0xvd2VyQ2FzZSgpOiIiLFsiYXp0ZWMiLCJjb2RhYmFyIiwiY29kZTJvZjVpbmR1c3RyaWFsIiwiY29kZTJvZjVpbnRlcmxlYXZlZCIsImNvZGUyb2Y1bWF0cml4IiwiY29kZTJvZjVzdGFuZGFyZCIsImNvZGUzb2Y5IiwiY29kZTNvZjlleHRlbmRlZCIsImNvZGUxMSIsImNvZGU0OSIsImNvZGU5MyIsImNvZGUxMjgiLCJjb2RlMTI4YSIsImNvZGUxMjhiIiwiY29kZTEyOGMiLCJjb2RlMTI4c3NjYyIsImRhdGFtYXRyaXgiLCJlYW44IiwiZWFuOGFkZDIiLCJlYW44YWRkNSIsImVhbjEzIiwiZWFuMTNhZGQyIiwiZWFuMTNhZGQ1IiwiZWFuMTNwd2NkIiwiZmltIiwibG9nbWFycyIsIm1heGljb2RlIiwibXNpIiwicGRmNDE3IiwicGRmNDE3bWFjcm8iLCJwbGVzc2V5IiwicG9zdGF1c2N1c3QyIiwicG9zdGF1c2N1c3QzIiwicG9zdGF1c3JlcGx5cGFpZCIsInBvc3RhdXNzdGFuZGFyZCIsInBvc3R1a3JtNHNjYyIsInBvc3R1c2RwYmMiLCJwb3N0dXNpbWIiLCJwb3N0dXNzdGFuZGFyZCIsInBvc3R1czV6aXAiLCJxcmNvZGUiLCJyZmlkIiwicnNzMTQiLCJyc3MxNGV4cGFuZGVkIiwicnNzMTRsaW1pdGVkIiwicnNzMTRzdGFja2VkIiwicnNzMTRzdGFja2Vkb21uaSIsInJzczE0dHJ1bmNhdGVkIiwidGVsZXBlbiIsInVjYzEyOCIsInVjYzEyOHJhbmRvbSIsInVjYzEyOHNzY2MiLCJ1cGNhIiwidXBjYWFkZDIiLCJ1cGNhYWRkNSIsInVwY2Fwd2NkIiwidXBjZSIsInVwY2VhZGQyIiwidXBjZWFkZDUiLCJ1cGNlYW4yIiwidXBjZWFuNSIsInVwc21heGljb2RlIl0pO3RoaXMudXBzTW9kZT1nZXRTdHJpbmdPcHRpb24oZS51cHNNb2RlLFsidXNDYXJyaWVyIiwiaW50ZXJuYXRpb25hbENhcnJpZXIiLCJzZWN1cmVTeW1ib2wiLCJzdGFuZGFyZFN5bWJvbCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy53aWRlTmFycm93UmF0aW89Z2V0UmF0aW8oZS53aWRlTmFycm93UmF0aW8pO3RoaXMuZW5jcnlwdD1udWxsO3RoaXMuZXh0cmFzPW51bGx9fWNsYXNzIEJpbmQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImJpbmQiLCEwKTt0aGlzLm1hdGNoPWdldFN0cmluZ09wdGlvbihlLm1hdGNoLFsib25jZSIsImRhdGFSZWYiLCJnbG9iYWwiLCJub25lIl0pO3RoaXMucmVmPWUucmVmfHwiIjt0aGlzLnBpY3R1cmU9bnVsbH19Y2xhc3MgQmluZEl0ZW1zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJiaW5kSXRlbXMiKTt0aGlzLmNvbm5lY3Rpb249ZS5jb25uZWN0aW9ufHwiIjt0aGlzLmxhYmVsUmVmPWUubGFiZWxSZWZ8fCIiO3RoaXMucmVmPWUucmVmfHwiIjt0aGlzLnZhbHVlUmVmPWUudmFsdWVSZWZ8fCIifX1jbGFzcyBCb29rZW5kIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJib29rZW5kIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy50cmFpbGVyPWUudHJhaWxlcnx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBCb29sZWFuRWxlbWVudCBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJib29sZWFuIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W0ppXShlKXtyZXR1cm4gdmFsdWVUb0h0bWwoMT09PXRoaXNbVnJdPyIxIjoiMCIpfX1jbGFzcyBCb3JkZXIgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImJvcmRlciIsITApO3RoaXMuYnJlYWs9Z2V0U3RyaW5nT3B0aW9uKGUuYnJlYWssWyJjbG9zZSIsIm9wZW4iXSk7dGhpcy5oYW5kPWdldFN0cmluZ09wdGlvbihlLmhhbmQsWyJldmVuIiwibGVmdCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmNvcm5lcj1uZXcgWEZBT2JqZWN0QXJyYXkoNCk7dGhpcy5lZGdlPW5ldyBYRkFPYmplY3RBcnJheSg0KTt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZmlsbD1udWxsO3RoaXMubWFyZ2luPW51bGx9W29pXSgpe2lmKCF0aGlzW0pyXSl7Y29uc3QgZT10aGlzLmVkZ2UuY2hpbGRyZW4uc2xpY2UoKTtpZihlLmxlbmd0aDw0KXtjb25zdCB0PWUuYXQoLTEpfHxuZXcgRWRnZSh7fSk7Zm9yKGxldCBuPWUubGVuZ3RoO248NDtuKyspZS5wdXNoKHQpfWNvbnN0IHQ9ZS5tYXAoZT0+ZS50aGlja25lc3MpLG49WzAsMCwwLDBdO2lmKHRoaXMubWFyZ2luKXtuWzBdPXRoaXMubWFyZ2luLnRvcEluc2V0O25bMV09dGhpcy5tYXJnaW4ucmlnaHRJbnNldDtuWzJdPXRoaXMubWFyZ2luLmJvdHRvbUluc2V0O25bM109dGhpcy5tYXJnaW4ubGVmdEluc2V0fXRoaXNbSnJdPXt3aWR0aHM6dCxpbnNldHM6bixlZGdlczplfX1yZXR1cm4gdGhpc1tKcl19W1ppXSgpe2NvbnN0e2VkZ2VzOmV9PXRoaXNbb2ldKCksdD1lLm1hcChlPT57Y29uc3QgdD1lW1ppXSgpO3QuY29sb3J8fD0iIzAwMDAwMCI7cmV0dXJuIHR9KSxuPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpcy5tYXJnaW4mJk9iamVjdC5hc3NpZ24obix0aGlzLm1hcmdpbltaaV0oKSk7InZpc2libGUiPT09dGhpcy5maWxsPy5wcmVzZW5jZSYmT2JqZWN0LmFzc2lnbihuLHRoaXMuZmlsbFtaaV0oKSk7aWYodGhpcy5jb3JuZXIuY2hpbGRyZW4uc29tZShlPT4wIT09ZS5yYWRpdXMpKXtjb25zdCBlPXRoaXMuY29ybmVyLmNoaWxkcmVuLm1hcChlPT5lW1ppXSgpKTtpZigyPT09ZS5sZW5ndGh8fDM9PT1lLmxlbmd0aCl7Y29uc3QgdD1lLmF0KC0xKTtmb3IobGV0IG49ZS5sZW5ndGg7bjw0O24rKyllLnB1c2godCl9bi5ib3JkZXJSYWRpdXM9ZS5tYXAoZT0+ZS5yYWRpdXMpLmpvaW4oIiAiKX1zd2l0Y2godGhpcy5wcmVzZW5jZSl7Y2FzZSJpbnZpc2libGUiOmNhc2UiaGlkZGVuIjpuLmJvcmRlclN0eWxlPSIiO2JyZWFrO2Nhc2UiaW5hY3RpdmUiOm4uYm9yZGVyU3R5bGU9Im5vbmUiO2JyZWFrO2RlZmF1bHQ6bi5ib3JkZXJTdHlsZT10Lm1hcChlPT5lLnN0eWxlKS5qb2luKCIgIil9bi5ib3JkZXJXaWR0aD10Lm1hcChlPT5lLndpZHRoKS5qb2luKCIgIik7bi5ib3JkZXJDb2xvcj10Lm1hcChlPT5lLmNvbG9yKS5qb2luKCIgIik7cmV0dXJuIG59fWNsYXNzIEJyZWFrIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJicmVhayIsITApO3RoaXMuYWZ0ZXI9Z2V0U3RyaW5nT3B0aW9uKGUuYWZ0ZXIsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSIsInBhZ2VFdmVuIiwicGFnZU9kZCJdKTt0aGlzLmFmdGVyVGFyZ2V0PWUuYWZ0ZXJUYXJnZXR8fCIiO3RoaXMuYmVmb3JlPWdldFN0cmluZ09wdGlvbihlLmJlZm9yZSxbImF1dG8iLCJjb250ZW50QXJlYSIsInBhZ2VBcmVhIiwicGFnZUV2ZW4iLCJwYWdlT2RkIl0pO3RoaXMuYmVmb3JlVGFyZ2V0PWUuYmVmb3JlVGFyZ2V0fHwiIjt0aGlzLmJvb2tlbmRMZWFkZXI9ZS5ib29rZW5kTGVhZGVyfHwiIjt0aGlzLmJvb2tlbmRUcmFpbGVyPWUuYm9va2VuZFRyYWlsZXJ8fCIiO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5vdmVyZmxvd0xlYWRlcj1lLm92ZXJmbG93TGVhZGVyfHwiIjt0aGlzLm92ZXJmbG93VGFyZ2V0PWUub3ZlcmZsb3dUYXJnZXR8fCIiO3RoaXMub3ZlcmZsb3dUcmFpbGVyPWUub3ZlcmZsb3dUcmFpbGVyfHwiIjt0aGlzLnN0YXJ0TmV3PWdldEludGVnZXIoe2RhdGE6ZS5zdGFydE5ldyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsfX1jbGFzcyBCcmVha0FmdGVyIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJicmVha0FmdGVyIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy5zdGFydE5ldz1nZXRJbnRlZ2VyKHtkYXRhOmUuc3RhcnROZXcsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnRhcmdldD1lLnRhcmdldHx8IiI7dGhpcy50YXJnZXRUeXBlPWdldFN0cmluZ09wdGlvbihlLnRhcmdldFR5cGUsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSJdKTt0aGlzLnRyYWlsZXI9ZS50cmFpbGVyfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5zY3JpcHQ9bnVsbH19Y2xhc3MgQnJlYWtCZWZvcmUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImJyZWFrQmVmb3JlIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy5zdGFydE5ldz1nZXRJbnRlZ2VyKHtkYXRhOmUuc3RhcnROZXcsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnRhcmdldD1lLnRhcmdldHx8IiI7dGhpcy50YXJnZXRUeXBlPWdldFN0cmluZ09wdGlvbihlLnRhcmdldFR5cGUsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSJdKTt0aGlzLnRyYWlsZXI9ZS50cmFpbGVyfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5zY3JpcHQ9bnVsbH1bSmldKGUpe3RoaXNbSnJdPXt9O3JldHVybiBIVE1MUmVzdWx0LkZBSUxVUkV9fWNsYXNzIEJ1dHRvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiYnV0dG9uIiwhMCk7dGhpcy5oaWdobGlnaHQ9Z2V0U3RyaW5nT3B0aW9uKGUuaGlnaGxpZ2h0LFsiaW52ZXJ0ZWQiLCJub25lIiwib3V0bGluZSIsInB1c2giXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH1bSmldKGUpe2NvbnN0IHQ9dGhpc1ttaV0oKVttaV0oKSxuPXtuYW1lOiJidXR0b24iLGF0dHJpYnV0ZXM6e2lkOnRoaXNbZW9dLGNsYXNzOlsieGZhQnV0dG9uIl0sc3R5bGU6e319LGNoaWxkcmVuOltdfTtmb3IoY29uc3QgZSBvZiB0LmV2ZW50LmNoaWxkcmVuKXtpZigiY2xpY2siIT09ZS5hY3Rpdml0eXx8IWUuc2NyaXB0KWNvbnRpbnVlO2NvbnN0IHQ9cmVjb3ZlckpzVVJMKGUuc2NyaXB0W1ZyXSk7aWYoIXQpY29udGludWU7Y29uc3QgYT1maXhVUkwodC51cmwpO2EmJm4uY2hpbGRyZW4ucHVzaCh7bmFtZToiYSIsYXR0cmlidXRlczp7aWQ6ImxpbmsiK3RoaXNbZW9dLGhyZWY6YSxuZXdXaW5kb3c6dC5uZXdXaW5kb3csY2xhc3M6WyJ4ZmFMaW5rIl0sc3R5bGU6e319LGNoaWxkcmVuOltdfSl9cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhuKX19Y2xhc3MgQ2FsY3VsYXRlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJjYWxjdWxhdGUiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMub3ZlcnJpZGU9Z2V0U3RyaW5nT3B0aW9uKGUub3ZlcnJpZGUsWyJkaXNhYmxlZCIsImVycm9yIiwiaWdub3JlIiwid2FybmluZyJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1lc3NhZ2U9bnVsbDt0aGlzLnNjcmlwdD1udWxsfX1jbGFzcyBDYXB0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJjYXB0aW9uIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnBsYWNlbWVudD1nZXRTdHJpbmdPcHRpb24oZS5wbGFjZW1lbnQsWyJsZWZ0IiwiYm90dG9tIiwiaW5saW5lIiwicmlnaHQiLCJ0b3AiXSk7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlc2VydmU9TWF0aC5jZWlsKGdldE1lYXN1cmVtZW50KGUucmVzZXJ2ZSkpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZm9udD1udWxsO3RoaXMubWFyZ2luPW51bGw7dGhpcy5wYXJhPW51bGw7dGhpcy52YWx1ZT1udWxsfVtHaV0oZSl7X3NldFZhbHVlKHRoaXMsZSl9W29pXShlKXtpZighdGhpc1tKcl0pe2xldHt3aWR0aDp0LGhlaWdodDpufT1lO3N3aXRjaCh0aGlzLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0IjpjYXNlImlubGluZSI6dD10aGlzLnJlc2VydmU8PTA/dDp0aGlzLnJlc2VydmU7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjpuPXRoaXMucmVzZXJ2ZTw9MD9uOnRoaXMucmVzZXJ2ZX10aGlzW0pyXT1sYXlvdXROb2RlKHRoaXMse3dpZHRoOnQsaGVpZ2h0Om59KX1yZXR1cm4gdGhpc1tKcl19W0ppXShlKXtpZighdGhpcy52YWx1ZSlyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTt0aGlzW0VpXSgpO2NvbnN0IHQ9dGhpcy52YWx1ZVtKaV0oZSkuaHRtbDtpZighdCl7dGhpc1tQaV0oKTtyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWX1jb25zdCBuPXRoaXMucmVzZXJ2ZTtpZih0aGlzLnJlc2VydmU8PTApe2NvbnN0e3c6dCxoOm59PXRoaXNbb2ldKGUpO3N3aXRjaCh0aGlzLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0IjpjYXNlImlubGluZSI6dGhpcy5yZXNlcnZlPXQ7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjp0aGlzLnJlc2VydmU9bn19Y29uc3QgYT1bXTsic3RyaW5nIj09dHlwZW9mIHQ/YS5wdXNoKHtuYW1lOiIjdGV4dCIsdmFsdWU6dH0pOmEucHVzaCh0KTtjb25zdCBzPXRvU3R5bGUodGhpcywiZm9udCIsIm1hcmdpbiIsInZpc2liaWxpdHkiKTtzd2l0Y2godGhpcy5wbGFjZW1lbnQpe2Nhc2UibGVmdCI6Y2FzZSJyaWdodCI6dGhpcy5yZXNlcnZlPjAmJihzLndpZHRoPW1lYXN1cmVUb1N0cmluZyh0aGlzLnJlc2VydmUpKTticmVhaztjYXNlInRvcCI6Y2FzZSJib3R0b20iOnRoaXMucmVzZXJ2ZT4wJiYocy5oZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKHRoaXMucmVzZXJ2ZSkpfXNldFBhcmEodGhpcyxudWxsLHQpO3RoaXNbUGldKCk7dGhpcy5yZXNlcnZlPW47cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixhdHRyaWJ1dGVzOntzdHlsZTpzLGNsYXNzOlsieGZhQ2FwdGlvbiJdfSxjaGlsZHJlbjphfSl9fWNsYXNzIENlcnRpZmljYXRlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJjZXJ0aWZpY2F0ZSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBDZXJ0aWZpY2F0ZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImNlcnRpZmljYXRlcyIsITApO3RoaXMuY3JlZGVudGlhbFNlcnZlclBvbGljeT1nZXRTdHJpbmdPcHRpb24oZS5jcmVkZW50aWFsU2VydmVyUG9saWN5LFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXJsPWUudXJsfHwiIjt0aGlzLnVybFBvbGljeT1lLnVybFBvbGljeXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZW5jcnlwdGlvbj1udWxsO3RoaXMuaXNzdWVycz1udWxsO3RoaXMua2V5VXNhZ2U9bnVsbDt0aGlzLm9pZHM9bnVsbDt0aGlzLnNpZ25pbmc9bnVsbDt0aGlzLnN1YmplY3RETnM9bnVsbH19Y2xhc3MgQ2hlY2tCdXR0b24gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImNoZWNrQnV0dG9uIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm1hcms9Z2V0U3RyaW5nT3B0aW9uKGUubWFyayxbImRlZmF1bHQiLCJjaGVjayIsImNpcmNsZSIsImNyb3NzIiwiZGlhbW9uZCIsInNxdWFyZSIsInN0YXIiXSk7dGhpcy5zaGFwZT1nZXRTdHJpbmdPcHRpb24oZS5zaGFwZSxbInNxdWFyZSIsInJvdW5kIl0pO3RoaXMuc2l6ZT1nZXRNZWFzdXJlbWVudChlLnNpemUsIjEwcHQiKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGx9W0ppXShlKXtjb25zdCB0PXRvU3R5bGUodGhpcywibWFyZ2luIiksbj1tZWFzdXJlVG9TdHJpbmcodGhpcy5zaXplKTt0LndpZHRoPXQuaGVpZ2h0PW47bGV0IGEscyxyO2NvbnN0IGk9dGhpc1ttaV0oKVttaV0oKSxvPWkuaXRlbXMuY2hpbGRyZW4ubGVuZ3RoJiZpLml0ZW1zLmNoaWxkcmVuWzBdW0ppXSgpLmh0bWx8fFtdLGw9e29uOih2b2lkIDAhPT1vWzBdP29bMF06Im9uIikudG9TdHJpbmcoKSxvZmY6KHZvaWQgMCE9PW9bMV0/b1sxXToib2ZmIikudG9TdHJpbmcoKX0sZj0oaS52YWx1ZT8uWyRpXSgpfHwib2ZmIik9PT1sLm9ufHx2b2lkIDAsYz1pW3VpXSgpLGg9aVtlb107bGV0IHU7aWYoYyBpbnN0YW5jZW9mIEV4Y2xHcm91cCl7cj1jW2VvXTthPSJyYWRpbyI7cz0ieGZhUmFkaW8iO3U9Y1skcl0/Lltlb118fGNbZW9dfWVsc2V7YT0iY2hlY2tib3giO3M9InhmYUNoZWNrYm94Ijt1PWlbJHJdPy5bZW9dfHxpW2VvXX1jb25zdCBtPXtuYW1lOiJpbnB1dCIsYXR0cmlidXRlczp7Y2xhc3M6W3NdLHN0eWxlOnQsZmllbGRJZDpoLGRhdGFJZDp1LHR5cGU6YSxjaGVja2VkOmYseGZhT246bC5vbix4ZmFPZmY6bC5vZmYsImFyaWEtbGFiZWwiOmFyaWFMYWJlbChpKSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtyJiYobS5hdHRyaWJ1dGVzLm5hbWU9cik7aWYoaXNSZXF1aXJlZChpKSl7bS5hdHRyaWJ1dGVzWyJhcmlhLXJlcXVpcmVkIl09ITA7bS5hdHRyaWJ1dGVzLnJlcXVpcmVkPSEwfXJldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOlttXX0pfX1jbGFzcyBDaG9pY2VMaXN0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJjaG9pY2VMaXN0IiwhMCk7dGhpcy5jb21taXRPbj1nZXRTdHJpbmdPcHRpb24oZS5jb21taXRPbixbInNlbGVjdCIsImV4aXQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm9wZW49Z2V0U3RyaW5nT3B0aW9uKGUub3BlbixbInVzZXJDb250cm9sIiwiYWx3YXlzIiwibXVsdGlTZWxlY3QiLCJvbkVudHJ5Il0pO3RoaXMudGV4dEVudHJ5PWdldEludGVnZXIoe2RhdGE6ZS50ZXh0RW50cnksZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGx9W0ppXShlKXtjb25zdCB0PXRvU3R5bGUodGhpcywiYm9yZGVyIiwibWFyZ2luIiksbj10aGlzW21pXSgpW21pXSgpLGE9e2ZvbnRTaXplOmBjYWxjKCR7bi5mb250Py5zaXplfHwxMH1weCAqIHZhcigtLXRvdGFsLXNjYWxlLWZhY3RvcikpYH0scz1bXTtpZihuLml0ZW1zLmNoaWxkcmVuLmxlbmd0aD4wKXtjb25zdCBlPW4uaXRlbXM7bGV0IHQ9MCxyPTA7aWYoMj09PWUuY2hpbGRyZW4ubGVuZ3RoKXt0PWUuY2hpbGRyZW5bMF0uc2F2ZTtyPTEtdH1jb25zdCBpPWUuY2hpbGRyZW5bdF1bSmldKCkuaHRtbCxvPWUuY2hpbGRyZW5bcl1bSmldKCkuaHRtbDtsZXQgbD0hMTtjb25zdCBmPW4udmFsdWU/LlskaV0oKXx8IiI7Zm9yKGxldCBlPTAsdD1pLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PXtuYW1lOiJvcHRpb24iLGF0dHJpYnV0ZXM6e3ZhbHVlOm9bZV18fGlbZV0sc3R5bGU6YX0sdmFsdWU6aVtlXX07b1tlXT09PWYmJih0LmF0dHJpYnV0ZXMuc2VsZWN0ZWQ9bD0hMCk7cy5wdXNoKHQpfWx8fHMuc3BsaWNlKDAsMCx7bmFtZToib3B0aW9uIixhdHRyaWJ1dGVzOntoaWRkZW46ITAsc2VsZWN0ZWQ6ITB9LHZhbHVlOiIgIn0pfWNvbnN0IHI9e2NsYXNzOlsieGZhU2VsZWN0Il0sZmllbGRJZDpuW2VvXSxkYXRhSWQ6blskcl0/Lltlb118fG5bZW9dLHN0eWxlOnQsImFyaWEtbGFiZWwiOmFyaWFMYWJlbChuKSwiYXJpYS1yZXF1aXJlZCI6ITF9O2lmKGlzUmVxdWlyZWQobikpe3JbImFyaWEtcmVxdWlyZWQiXT0hMDtyLnJlcXVpcmVkPSEwfSJtdWx0aVNlbGVjdCI9PT10aGlzLm9wZW4mJihyLm11bHRpcGxlPSEwKTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbe25hbWU6InNlbGVjdCIsY2hpbGRyZW46cyxhdHRyaWJ1dGVzOnJ9XX0pfX1jbGFzcyBDb2xvciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiY29sb3IiLCEwKTt0aGlzLmNTcGFjZT1nZXRTdHJpbmdPcHRpb24oZS5jU3BhY2UsWyJTUkdCIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudmFsdWU9ZS52YWx1ZT9mdW5jdGlvbiBnZXRDb2xvcihlLHQ9WzAsMCwwXSl7bGV0W24sYSxzXT10O2lmKCFlKXJldHVybntyOm4sZzphLGI6c307Y29uc3Qgcj1lLnNwbGl0KCIsIiwzKS5tYXAoZT0+TWF0aENsYW1wKHBhcnNlSW50KGUudHJpbSgpLDEwKSwwLDI1NSkpLm1hcChlPT5pc05hTihlKT8wOmUpO2lmKHIubGVuZ3RoPDMpcmV0dXJue3I6bixnOmEsYjpzfTtbbixhLHNdPXI7cmV0dXJue3I6bixnOmEsYjpzfX0oZS52YWx1ZSk6IiI7dGhpcy5leHRyYXM9bnVsbH1bZ2ldKCl7cmV0dXJuITF9W1ppXSgpe3JldHVybiB0aGlzLnZhbHVlP1V0aWwubWFrZUhleENvbG9yKHRoaXMudmFsdWUucix0aGlzLnZhbHVlLmcsdGhpcy52YWx1ZS5iKTpudWxsfX1jbGFzcyBDb21iIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJjb21iIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm51bWJlck9mQ2VsbHM9Z2V0SW50ZWdlcih7ZGF0YTplLm51bWJlck9mQ2VsbHMsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+ZT49MH0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgQ29ubmVjdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiY29ubmVjdCIsITApO3RoaXMuY29ubmVjdGlvbj1lLmNvbm5lY3Rpb258fCIiO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudXNhZ2U9Z2V0U3RyaW5nT3B0aW9uKGUudXNhZ2UsWyJleHBvcnRBbmRJbXBvcnQiLCJleHBvcnRPbmx5IiwiaW1wb3J0T25seSJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5waWN0dXJlPW51bGx9fWNsYXNzIENvbnRlbnRBcmVhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJjb250ZW50QXJlYSIsITApO3RoaXMuaD1nZXRNZWFzdXJlbWVudChlLmgpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy53PWdldE1lYXN1cmVtZW50KGUudyk7dGhpcy54PWdldE1lYXN1cmVtZW50KGUueCwiMHB0Iik7dGhpcy55PWdldE1lYXN1cmVtZW50KGUueSwiMHB0Iik7dGhpcy5kZXNjPW51bGw7dGhpcy5leHRyYXM9bnVsbH1bSmldKGUpe2NvbnN0IHQ9e2xlZnQ6bWVhc3VyZVRvU3RyaW5nKHRoaXMueCksdG9wOm1lYXN1cmVUb1N0cmluZyh0aGlzLnkpLHdpZHRoOm1lYXN1cmVUb1N0cmluZyh0aGlzLncpLGhlaWdodDptZWFzdXJlVG9TdHJpbmcodGhpcy5oKX0sbj1bInhmYUNvbnRlbnRhcmVhIl07aXNQcmludE9ubHkodGhpcykmJm4ucHVzaCgieGZhUHJpbnRPbmx5Iik7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOntzdHlsZTp0LGNsYXNzOm4saWQ6dGhpc1tlb119fSl9fWNsYXNzIENvcm5lciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiY29ybmVyIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmludmVydGVkPWdldEludGVnZXIoe2RhdGE6ZS5pbnZlcnRlZCxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMuam9pbj1nZXRTdHJpbmdPcHRpb24oZS5qb2luLFsic3F1YXJlIiwicm91bmQiXSk7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJhZGl1cz1nZXRNZWFzdXJlbWVudChlLnJhZGl1cyk7dGhpcy5zdHJva2U9Z2V0U3RyaW5nT3B0aW9uKGUuc3Ryb2tlLFsic29saWQiLCJkYXNoRG90IiwiZGFzaERvdERvdCIsImRhc2hlZCIsImRvdHRlZCIsImVtYm9zc2VkIiwiZXRjaGVkIiwibG93ZXJlZCIsInJhaXNlZCJdKTt0aGlzLnRoaWNrbmVzcz1nZXRNZWFzdXJlbWVudChlLnRoaWNrbmVzcywiMC41cHQiKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W1ppXSgpe2NvbnN0IGU9dG9TdHlsZSh0aGlzLCJ2aXNpYmlsaXR5Iik7ZS5yYWRpdXM9bWVhc3VyZVRvU3RyaW5nKCJzcXVhcmUiPT09dGhpcy5qb2luPzA6dGhpcy5yYWRpdXMpO3JldHVybiBlfX1jbGFzcyBEYXRlRWxlbWVudCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImRhdGUiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bUXJdKCl7Y29uc3QgZT10aGlzW1ZyXS50cmltKCk7dGhpc1tWcl09ZT9uZXcgRGF0ZShlKTpudWxsfVtKaV0oZSl7cmV0dXJuIHZhbHVlVG9IdG1sKHRoaXNbVnJdP3RoaXNbVnJdLnRvU3RyaW5nKCk6IiIpfX1jbGFzcyBEYXRlVGltZSBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImRhdGVUaW1lIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W1FyXSgpe2NvbnN0IGU9dGhpc1tWcl0udHJpbSgpO3RoaXNbVnJdPWU/bmV3IERhdGUoZSk6bnVsbH1bSmldKGUpe3JldHVybiB2YWx1ZVRvSHRtbCh0aGlzW1ZyXT90aGlzW1ZyXS50b1N0cmluZygpOiIiKX19Y2xhc3MgRGF0ZVRpbWVFZGl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJkYXRlVGltZUVkaXQiLCEwKTt0aGlzLmhTY3JvbGxQb2xpY3k9Z2V0U3RyaW5nT3B0aW9uKGUuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucGlja2VyPWdldFN0cmluZ09wdGlvbihlLnBpY2tlcixbImhvc3QiLCJub25lIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmJvcmRlcj1udWxsO3RoaXMuY29tYj1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5tYXJnaW49bnVsbH1bSmldKGUpe2NvbnN0IHQ9dG9TdHlsZSh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIiksbj10aGlzW21pXSgpW21pXSgpLGE9e25hbWU6ImlucHV0IixhdHRyaWJ1dGVzOnt0eXBlOiJ0ZXh0IixmaWVsZElkOm5bZW9dLGRhdGFJZDpuWyRyXT8uW2VvXXx8bltlb10sY2xhc3M6WyJ4ZmFUZXh0ZmllbGQiXSxzdHlsZTp0LCJhcmlhLWxhYmVsIjphcmlhTGFiZWwobiksImFyaWEtcmVxdWlyZWQiOiExfX07aWYoaXNSZXF1aXJlZChuKSl7YS5hdHRyaWJ1dGVzWyJhcmlhLXJlcXVpcmVkIl09ITA7YS5hdHRyaWJ1dGVzLnJlcXVpcmVkPSEwfXJldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOlthXX0pfX1jbGFzcyBEZWNpbWFsIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiZGVjaW1hbCIpO3RoaXMuZnJhY0RpZ2l0cz1nZXRJbnRlZ2VyKHtkYXRhOmUuZnJhY0RpZ2l0cyxkZWZhdWx0VmFsdWU6Mix2YWxpZGF0ZTplPT4hMH0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5sZWFkRGlnaXRzPWdldEludGVnZXIoe2RhdGE6ZS5sZWFkRGlnaXRzLGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTplPT4hMH0pO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bUXJdKCl7Y29uc3QgZT1wYXJzZUZsb2F0KHRoaXNbVnJdLnRyaW0oKSk7dGhpc1tWcl09aXNOYU4oZSk/bnVsbDplfVtKaV0oZSl7cmV0dXJuIHZhbHVlVG9IdG1sKG51bGwhPT10aGlzW1ZyXT90aGlzW1ZyXS50b1N0cmluZygpOiIiKX19Y2xhc3MgRGVmYXVsdFVpIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJkZWZhdWx0VWkiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsfX1jbGFzcyBEZXNjIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJkZXNjIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib29sZWFuPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGVjaW1hbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leERhdGE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmxvYXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW50ZWdlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50ZXh0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRpbWU9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBEaWdlc3RNZXRob2QgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImRpZ2VzdE1ldGhvZCIsWyIiLCJTSEExIiwiU0hBMjU2IiwiU0hBNTEyIiwiUklQRU1EMTYwIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBEaWdlc3RNZXRob2RzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJkaWdlc3RNZXRob2RzIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZGlnZXN0TWV0aG9kPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRHJhdyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiZHJhdyIsITApO3RoaXMuYW5jaG9yVHlwZT1nZXRTdHJpbmdPcHRpb24oZS5hbmNob3JUeXBlLFsidG9wTGVmdCIsImJvdHRvbUNlbnRlciIsImJvdHRvbUxlZnQiLCJib3R0b21SaWdodCIsIm1pZGRsZUNlbnRlciIsIm1pZGRsZUxlZnQiLCJtaWRkbGVSaWdodCIsInRvcENlbnRlciIsInRvcFJpZ2h0Il0pO3RoaXMuY29sU3Bhbj1nZXRJbnRlZ2VyKHtkYXRhOmUuY29sU3BhbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTplPT5lPj0xfHwtMT09PWV9KTt0aGlzLmg9ZS5oP2dldE1lYXN1cmVtZW50KGUuaCk6IiI7dGhpcy5oQWxpZ249Z2V0U3RyaW5nT3B0aW9uKGUuaEFsaWduLFsibGVmdCIsImNlbnRlciIsImp1c3RpZnkiLCJqdXN0aWZ5QWxsIiwicmFkaXgiLCJyaWdodCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubG9jYWxlPWUubG9jYWxlfHwiIjt0aGlzLm1heEg9Z2V0TWVhc3VyZW1lbnQoZS5tYXhILCIwcHQiKTt0aGlzLm1heFc9Z2V0TWVhc3VyZW1lbnQoZS5tYXhXLCIwcHQiKTt0aGlzLm1pbkg9Z2V0TWVhc3VyZW1lbnQoZS5taW5ILCIwcHQiKTt0aGlzLm1pblc9Z2V0TWVhc3VyZW1lbnQoZS5taW5XLCIwcHQiKTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnByZXNlbmNlPWdldFN0cmluZ09wdGlvbihlLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy5yb3RhdGU9Z2V0SW50ZWdlcih7ZGF0YTplLnJvdGF0ZSxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT5lJTkwPT0wfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudz1lLnc/Z2V0TWVhc3VyZW1lbnQoZS53KToiIjt0aGlzLng9Z2V0TWVhc3VyZW1lbnQoZS54LCIwcHQiKTt0aGlzLnk9Z2V0TWVhc3VyZW1lbnQoZS55LCIwcHQiKTt0aGlzLmFzc2lzdD1udWxsO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5jYXB0aW9uPW51bGw7dGhpcy5kZXNjPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLmZvbnQ9bnVsbDt0aGlzLmtlZXA9bnVsbDt0aGlzLm1hcmdpbj1udWxsO3RoaXMucGFyYT1udWxsO3RoaXMudHJhdmVyc2FsPW51bGw7dGhpcy51aT1udWxsO3RoaXMudmFsdWU9bnVsbDt0aGlzLnNldFByb3BlcnR5PW5ldyBYRkFPYmplY3RBcnJheX1bR2ldKGUpe19zZXRWYWx1ZSh0aGlzLGUpfVtKaV0oZSl7c2V0VGFiSW5kZXgodGhpcyk7aWYoImhpZGRlbiI9PT10aGlzLnByZXNlbmNlfHwiaW5hY3RpdmUiPT09dGhpcy5wcmVzZW5jZSlyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTtmaXhEaW1lbnNpb25zKHRoaXMpO3RoaXNbRWldKCk7Y29uc3QgdD10aGlzLncsbj10aGlzLmgse3c6YSxoOnMsaXNCcm9rZW46cn09bGF5b3V0Tm9kZSh0aGlzLGUpO2lmKGEmJiIiPT09dGhpcy53KXtpZihyJiZ0aGlzW3VpXSgpW0FpXSgpKXt0aGlzW1BpXSgpO3JldHVybiBIVE1MUmVzdWx0LkZBSUxVUkV9dGhpcy53PWF9cyYmIiI9PT10aGlzLmgmJih0aGlzLmg9cyk7c2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7aWYoIWNoZWNrRGltZW5zaW9ucyh0aGlzLGUpKXt0aGlzLnc9dDt0aGlzLmg9bjt0aGlzW1BpXSgpO3JldHVybiBIVE1MUmVzdWx0LkZBSUxVUkV9dW5zZXRGaXJzdFVuc3BsaXR0YWJsZSh0aGlzKTtjb25zdCBpPXRvU3R5bGUodGhpcywiZm9udCIsImhBbGlnbiIsImRpbWVuc2lvbnMiLCJwb3NpdGlvbiIsInByZXNlbmNlIiwicm90YXRlIiwiYW5jaG9yVHlwZSIsImJvcmRlciIsIm1hcmdpbiIpO3NldE1pbk1heERpbWVuc2lvbnModGhpcyxpKTtpZihpLm1hcmdpbil7aS5wYWRkaW5nPWkubWFyZ2luO2RlbGV0ZSBpLm1hcmdpbn1jb25zdCBvPVsieGZhRHJhdyJdO3RoaXMuZm9udCYmby5wdXNoKCJ4ZmFGb250Iik7aXNQcmludE9ubHkodGhpcykmJm8ucHVzaCgieGZhUHJpbnRPbmx5Iik7Y29uc3QgbD17c3R5bGU6aSxpZDp0aGlzW2VvXSxjbGFzczpvfTt0aGlzLm5hbWUmJihsLnhmYU5hbWU9dGhpcy5uYW1lKTtjb25zdCBmPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6bCxjaGlsZHJlbjpbXX07YXBwbHlBc3Npc3QodGhpcyxsKTtjb25zdCBjPWNvbXB1dGVCYm94KHRoaXMsZixlKSxoPXRoaXMudmFsdWU/dGhpcy52YWx1ZVtKaV0oZSkuaHRtbDpudWxsO2lmKG51bGw9PT1oKXt0aGlzLnc9dDt0aGlzLmg9bjt0aGlzW1BpXSgpO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MoY3JlYXRlV3JhcHBlcih0aGlzLGYpLGMpfWYuY2hpbGRyZW4ucHVzaChoKTtzZXRQYXJhKHRoaXMsaSxoKTt0aGlzLnc9dDt0aGlzLmg9bjt0aGlzW1BpXSgpO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MoY3JlYXRlV3JhcHBlcih0aGlzLGYpLGMpfX1jbGFzcyBFZGdlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJlZGdlIiwhMCk7dGhpcy5jYXA9Z2V0U3RyaW5nT3B0aW9uKGUuY2FwLFsic3F1YXJlIiwiYnV0dCIsInJvdW5kIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnN0cm9rZT1nZXRTdHJpbmdPcHRpb24oZS5zdHJva2UsWyJzb2xpZCIsImRhc2hEb3QiLCJkYXNoRG90RG90IiwiZGFzaGVkIiwiZG90dGVkIiwiZW1ib3NzZWQiLCJldGNoZWQiLCJsb3dlcmVkIiwicmFpc2VkIl0pO3RoaXMudGhpY2tuZXNzPWdldE1lYXN1cmVtZW50KGUudGhpY2tuZXNzLCIwLjVwdCIpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmNvbG9yPW51bGw7dGhpcy5leHRyYXM9bnVsbH1bWmldKCl7Y29uc3QgZT10b1N0eWxlKHRoaXMsInZpc2liaWxpdHkiKTtPYmplY3QuYXNzaWduKGUse2xpbmVjYXA6dGhpcy5jYXAsd2lkdGg6bWVhc3VyZVRvU3RyaW5nKHRoaXMudGhpY2tuZXNzKSxjb2xvcjp0aGlzLmNvbG9yP3RoaXMuY29sb3JbWmldKCk6IiMwMDAwMDAiLHN0eWxlOiIifSk7aWYoInZpc2libGUiIT09dGhpcy5wcmVzZW5jZSllLnN0eWxlPSJub25lIjtlbHNlIHN3aXRjaCh0aGlzLnN0cm9rZSl7Y2FzZSJzb2xpZCI6ZS5zdHlsZT0ic29saWQiO2JyZWFrO2Nhc2UiZGFzaERvdCI6Y2FzZSJkYXNoRG90RG90IjpjYXNlImRhc2hlZCI6ZS5zdHlsZT0iZGFzaGVkIjticmVhaztjYXNlImRvdHRlZCI6ZS5zdHlsZT0iZG90dGVkIjticmVhaztjYXNlImVtYm9zc2VkIjplLnN0eWxlPSJyaWRnZSI7YnJlYWs7Y2FzZSJldGNoZWQiOmUuc3R5bGU9Imdyb292ZSI7YnJlYWs7Y2FzZSJsb3dlcmVkIjplLnN0eWxlPSJpbnNldCI7YnJlYWs7Y2FzZSJyYWlzZWQiOmUuc3R5bGU9Im91dHNldCJ9cmV0dXJuIGV9fWNsYXNzIEVuY29kaW5nIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJlbmNvZGluZyIsWyJhZGJlLng1MDkucnNhX3NoYTEiLCJhZGJlLnBrY3M3LmRldGFjaGVkIiwiYWRiZS5wa2NzNy5zaGExIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBFbmNvZGluZ3MgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImVuY29kaW5ncyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmVuY29kaW5nPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRW5jcnlwdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiZW5jcnlwdCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY2VydGlmaWNhdGU9bnVsbH19Y2xhc3MgRW5jcnlwdERhdGEgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImVuY3J5cHREYXRhIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm9wZXJhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5vcGVyYXRpb24sWyJlbmNyeXB0IiwiZGVjcnlwdCJdKTt0aGlzLnRhcmdldD1lLnRhcmdldHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZmlsdGVyPW51bGw7dGhpcy5tYW5pZmVzdD1udWxsfX1jbGFzcyBFbmNyeXB0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJlbmNyeXB0aW9uIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY2VydGlmaWNhdGU9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBFbmNyeXB0aW9uTWV0aG9kIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJlbmNyeXB0aW9uTWV0aG9kIixbIiIsIkFFUzI1Ni1DQkMiLCJUUklQTEVERVMtQ0JDIiwiQUVTMTI4LUNCQyIsIkFFUzE5Mi1DQkMiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIEVuY3J5cHRpb25NZXRob2RzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJlbmNyeXB0aW9uTWV0aG9kcyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmVuY3J5cHRpb25NZXRob2Q9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBFdmVudCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiZXZlbnQiLCEwKTt0aGlzLmFjdGl2aXR5PWdldFN0cmluZ09wdGlvbihlLmFjdGl2aXR5LFsiY2xpY2siLCJjaGFuZ2UiLCJkb2NDbG9zZSIsImRvY1JlYWR5IiwiZW50ZXIiLCJleGl0IiwiZnVsbCIsImluZGV4Q2hhbmdlIiwiaW5pdGlhbGl6ZSIsIm1vdXNlRG93biIsIm1vdXNlRW50ZXIiLCJtb3VzZUV4aXQiLCJtb3VzZVVwIiwicG9zdEV4ZWN1dGUiLCJwb3N0T3BlbiIsInBvc3RQcmludCIsInBvc3RTYXZlIiwicG9zdFNpZ24iLCJwb3N0U3VibWl0IiwicHJlRXhlY3V0ZSIsInByZU9wZW4iLCJwcmVQcmludCIsInByZVNhdmUiLCJwcmVTaWduIiwicHJlU3VibWl0IiwicmVhZHkiLCJ2YWxpZGF0aW9uU3RhdGUiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxpc3Rlbj1nZXRTdHJpbmdPcHRpb24oZS5saXN0ZW4sWyJyZWZPbmx5IiwicmVmQW5kRGVzY2VuZGVudHMiXSk7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZW5jcnlwdERhdGE9bnVsbDt0aGlzLmV4ZWN1dGU9bnVsbDt0aGlzLnNjcmlwdD1udWxsO3RoaXMuc2lnbkRhdGE9bnVsbDt0aGlzLnN1Ym1pdD1udWxsfX1jbGFzcyBFeERhdGEgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJleERhdGEiKTt0aGlzLmNvbnRlbnRUeXBlPWUuY29udGVudFR5cGV8fCIiO3RoaXMuaHJlZj1lLmhyZWZ8fCIiO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5tYXhMZW5ndGg9Z2V0SW50ZWdlcih7ZGF0YTplLm1heExlbmd0aCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6ZT0+ZT49LTF9KTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnJpZD1lLnJpZHx8IiI7dGhpcy50cmFuc2ZlckVuY29kaW5nPWdldFN0cmluZ09wdGlvbihlLnRyYW5zZmVyRW5jb2RpbmcsWyJub25lIiwiYmFzZTY0IiwicGFja2FnZSJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W2tpXSgpe3JldHVybiJ0ZXh0L2h0bWwiPT09dGhpcy5jb250ZW50VHlwZX1bQmldKGUpe2lmKCJ0ZXh0L2h0bWwiPT09dGhpcy5jb250ZW50VHlwZSYmZVtUaV09PT1uby54aHRtbC5pZCl7dGhpc1tWcl09ZTtyZXR1cm4hMH1pZigidGV4dC94bWwiPT09dGhpcy5jb250ZW50VHlwZSl7dGhpc1tWcl09ZTtyZXR1cm4hMH1yZXR1cm4hMX1bSmldKGUpe3JldHVybiJ0ZXh0L2h0bWwiPT09dGhpcy5jb250ZW50VHlwZSYmdGhpc1tWcl0/dGhpc1tWcl1bSmldKGUpOkhUTUxSZXN1bHQuRU1QVFl9fWNsYXNzIEV4T2JqZWN0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJleE9iamVjdCIsITApO3RoaXMuYXJjaGl2ZT1lLmFyY2hpdmV8fCIiO3RoaXMuY2xhc3NJZD1lLmNsYXNzSWR8fCIiO3RoaXMuY29kZUJhc2U9ZS5jb2RlQmFzZXx8IiI7dGhpcy5jb2RlVHlwZT1lLmNvZGVUeXBlfHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMuYm9vbGVhbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGVUaW1lPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlY2ltYWw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhEYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4T2JqZWN0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZsb2F0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmltYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmludGVnZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRXhjbEdyb3VwIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJleGNsR3JvdXAiLCEwKTt0aGlzLmFjY2Vzcz1nZXRTdHJpbmdPcHRpb24oZS5hY2Nlc3MsWyJvcGVuIiwibm9uSW50ZXJhY3RpdmUiLCJwcm90ZWN0ZWQiLCJyZWFkT25seSJdKTt0aGlzLmFjY2Vzc0tleT1lLmFjY2Vzc0tleXx8IiI7dGhpcy5hbmNob3JUeXBlPWdldFN0cmluZ09wdGlvbihlLmFuY2hvclR5cGUsWyJ0b3BMZWZ0IiwiYm90dG9tQ2VudGVyIiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0IiwibWlkZGxlQ2VudGVyIiwibWlkZGxlTGVmdCIsIm1pZGRsZVJpZ2h0IiwidG9wQ2VudGVyIiwidG9wUmlnaHQiXSk7dGhpcy5jb2xTcGFuPWdldEludGVnZXIoe2RhdGE6ZS5jb2xTcGFuLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PmU+PTF8fC0xPT09ZX0pO3RoaXMuaD1lLmg/Z2V0TWVhc3VyZW1lbnQoZS5oKToiIjt0aGlzLmhBbGlnbj1nZXRTdHJpbmdPcHRpb24oZS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5sYXlvdXQ9Z2V0U3RyaW5nT3B0aW9uKGUubGF5b3V0LFsicG9zaXRpb24iLCJsci10YiIsInJsLXJvdyIsInJsLXRiIiwicm93IiwidGFibGUiLCJ0YiJdKTt0aGlzLm1heEg9Z2V0TWVhc3VyZW1lbnQoZS5tYXhILCIwcHQiKTt0aGlzLm1heFc9Z2V0TWVhc3VyZW1lbnQoZS5tYXhXLCIwcHQiKTt0aGlzLm1pbkg9Z2V0TWVhc3VyZW1lbnQoZS5taW5ILCIwcHQiKTt0aGlzLm1pblc9Z2V0TWVhc3VyZW1lbnQoZS5taW5XLCIwcHQiKTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnByZXNlbmNlPWdldFN0cmluZ09wdGlvbihlLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudz1lLnc/Z2V0TWVhc3VyZW1lbnQoZS53KToiIjt0aGlzLng9Z2V0TWVhc3VyZW1lbnQoZS54LCIwcHQiKTt0aGlzLnk9Z2V0TWVhc3VyZW1lbnQoZS55LCIwcHQiKTt0aGlzLmFzc2lzdD1udWxsO3RoaXMuYmluZD1udWxsO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5jYWxjdWxhdGU9bnVsbDt0aGlzLmNhcHRpb249bnVsbDt0aGlzLmRlc2M9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGw7dGhpcy5wYXJhPW51bGw7dGhpcy50cmF2ZXJzYWw9bnVsbDt0aGlzLnZhbGlkYXRlPW51bGw7dGhpcy5jb25uZWN0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV2ZW50PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpZWxkPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnNldFByb3BlcnR5PW5ldyBYRkFPYmplY3RBcnJheX1beWldKCl7cmV0dXJuITB9W2dpXSgpe3JldHVybiEwfVtHaV0oZSl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5maWVsZC5jaGlsZHJlbil7aWYoIXQudmFsdWUpe2NvbnN0IGU9bmV3IFZhbHVlKHt9KTt0W0xyXShlKTt0LnZhbHVlPWV9dC52YWx1ZVtHaV0oZSl9fVtBaV0oKXtyZXR1cm4gdGhpcy5sYXlvdXQuZW5kc1dpdGgoIi10YiIpJiYwPT09dGhpc1tKcl0uYXR0ZW1wdCYmdGhpc1tKcl0ubnVtYmVySW5MaW5lPjB8fHRoaXNbbWldKClbQWldKCl9W3hpXSgpe2NvbnN0IGU9dGhpc1t1aV0oKTtpZighZVt4aV0oKSlyZXR1cm4hMTtpZih2b2lkIDAhPT10aGlzW0pyXS5faXNTcGxpdHRhYmxlKXJldHVybiB0aGlzW0pyXS5faXNTcGxpdHRhYmxlO2lmKCJwb3NpdGlvbiI9PT10aGlzLmxheW91dHx8dGhpcy5sYXlvdXQuaW5jbHVkZXMoInJvdyIpKXt0aGlzW0pyXS5faXNTcGxpdHRhYmxlPSExO3JldHVybiExfWlmKGUubGF5b3V0Py5lbmRzV2l0aCgiLXRiIikmJjAhPT1lW0pyXS5udW1iZXJJbkxpbmUpcmV0dXJuITE7dGhpc1tKcl0uX2lzU3BsaXR0YWJsZT0hMDtyZXR1cm4hMH1bWnJdKCl7cmV0dXJuIGZsdXNoSFRNTCh0aGlzKX1benJdKGUsdCl7YWRkSFRNTCh0aGlzLGUsdCl9W25pXSgpe3JldHVybiBnZXRBdmFpbGFibGVTcGFjZSh0aGlzKX1bSmldKGUpe3NldFRhYkluZGV4KHRoaXMpO2lmKCJoaWRkZW4iPT09dGhpcy5wcmVzZW5jZXx8ImluYWN0aXZlIj09PXRoaXMucHJlc2VuY2V8fDA9PT10aGlzLmh8fDA9PT10aGlzLncpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7Zml4RGltZW5zaW9ucyh0aGlzKTtjb25zdCB0PVtdLG49e2lkOnRoaXNbZW9dLGNsYXNzOltdfTtzZXRBY2Nlc3ModGhpcyxuLmNsYXNzKTt0aGlzW0pyXXx8PU9iamVjdC5jcmVhdGUobnVsbCk7T2JqZWN0LmFzc2lnbih0aGlzW0pyXSx7Y2hpbGRyZW46dCxhdHRyaWJ1dGVzOm4sYXR0ZW1wdDowLGxpbmU6bnVsbCxudW1iZXJJbkxpbmU6MCxhdmFpbGFibGVTcGFjZTp7d2lkdGg6TWF0aC5taW4odGhpcy53fHwxLzAsZS53aWR0aCksaGVpZ2h0Ok1hdGgubWluKHRoaXMuaHx8MS8wLGUuaGVpZ2h0KX0sd2lkdGg6MCxoZWlnaHQ6MCxwcmV2SGVpZ2h0OjAsY3VycmVudFdpZHRoOjB9KTtjb25zdCBhPXRoaXNbeGldKCk7YXx8c2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7aWYoIWNoZWNrRGltZW5zaW9ucyh0aGlzLGUpKXJldHVybiBIVE1MUmVzdWx0LkZBSUxVUkU7Y29uc3Qgcz1uZXcgU2V0KFsiZmllbGQiXSk7aWYodGhpcy5sYXlvdXQuaW5jbHVkZXMoInJvdyIpKXtjb25zdCBlPXRoaXNbdWldKCkuY29sdW1uV2lkdGhzO2lmKEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPjApe3RoaXNbSnJdLmNvbHVtbldpZHRocz1lO3RoaXNbSnJdLmN1cnJlbnRDb2x1bW49MH19Y29uc3Qgcj10b1N0eWxlKHRoaXMsImFuY2hvclR5cGUiLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJwcmVzZW5jZSIsImJvcmRlciIsIm1hcmdpbiIsImhBbGlnbiIpLGk9WyJ4ZmFFeGNsZ3JvdXAiXSxvPWxheW91dENsYXNzKHRoaXMpO28mJmkucHVzaChvKTtpc1ByaW50T25seSh0aGlzKSYmaS5wdXNoKCJ4ZmFQcmludE9ubHkiKTtuLnN0eWxlPXI7bi5jbGFzcz1pO3RoaXMubmFtZSYmKG4ueGZhTmFtZT10aGlzLm5hbWUpO3RoaXNbRWldKCk7Y29uc3QgbD0ibHItdGIiPT09dGhpcy5sYXlvdXR8fCJybC10YiI9PT10aGlzLmxheW91dCxmPWw/MjoxO2Zvcig7dGhpc1tKcl0uYXR0ZW1wdDxmO3RoaXNbSnJdLmF0dGVtcHQrKyl7bCYmMT09PXRoaXNbSnJdLmF0dGVtcHQmJih0aGlzW0pyXS5udW1iZXJJbkxpbmU9MCk7Y29uc3QgZT10aGlzW1VyXSh7ZmlsdGVyOnMsaW5jbHVkZTohMH0pO2lmKGUuc3VjY2VzcylicmVhaztpZihlLmlzQnJlYWsoKSl7dGhpc1tQaV0oKTtyZXR1cm4gZX1pZihsJiYwPT09dGhpc1tKcl0uYXR0ZW1wdCYmMD09PXRoaXNbSnJdLm51bWJlckluTGluZSYmIXRoaXNbcGldKClbSnJdLm5vTGF5b3V0RmFpbHVyZSl7dGhpc1tKcl0uYXR0ZW1wdD1mO2JyZWFrfX10aGlzW1BpXSgpO2F8fHVuc2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7aWYodGhpc1tKcl0uYXR0ZW1wdD09PWYpe2F8fGRlbGV0ZSB0aGlzW0pyXTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfWxldCBjPTAsaD0wO2lmKHRoaXMubWFyZ2luKXtjPXRoaXMubWFyZ2luLmxlZnRJbnNldCt0aGlzLm1hcmdpbi5yaWdodEluc2V0O2g9dGhpcy5tYXJnaW4udG9wSW5zZXQrdGhpcy5tYXJnaW4uYm90dG9tSW5zZXR9Y29uc3QgdT1NYXRoLm1heCh0aGlzW0pyXS53aWR0aCtjLHRoaXMud3x8MCksbT1NYXRoLm1heCh0aGlzW0pyXS5oZWlnaHQraCx0aGlzLmh8fDApLHA9W3RoaXMueCx0aGlzLnksdSxtXTsiIj09PXRoaXMudyYmKHIud2lkdGg9bWVhc3VyZVRvU3RyaW5nKHUpKTsiIj09PXRoaXMuaCYmKHIuaGVpZ2h0PW1lYXN1cmVUb1N0cmluZyhtKSk7Y29uc3QgZD17bmFtZToiZGl2IixhdHRyaWJ1dGVzOm4sY2hpbGRyZW46dH07YXBwbHlBc3Npc3QodGhpcyxuKTtkZWxldGUgdGhpc1tKcl07cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhjcmVhdGVXcmFwcGVyKHRoaXMsZCkscCl9fWNsYXNzIEV4ZWN1dGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImV4ZWN1dGUiKTt0aGlzLmNvbm5lY3Rpb249ZS5jb25uZWN0aW9ufHwiIjt0aGlzLmV4ZWN1dGVUeXBlPWdldFN0cmluZ09wdGlvbihlLmV4ZWN1dGVUeXBlLFsiaW1wb3J0IiwicmVtZXJnZSJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucnVuQXQ9Z2V0U3RyaW5nT3B0aW9uKGUucnVuQXQsWyJjbGllbnQiLCJib3RoIiwic2VydmVyIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgRXh0cmFzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJleHRyYXMiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmJvb2xlYW49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlVGltZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kZWNpbWFsPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4RGF0YT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leHRyYXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmxvYXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW50ZWdlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50ZXh0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRpbWU9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBGaWVsZCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiZmllbGQiLCEwKTt0aGlzLmFjY2Vzcz1nZXRTdHJpbmdPcHRpb24oZS5hY2Nlc3MsWyJvcGVuIiwibm9uSW50ZXJhY3RpdmUiLCJwcm90ZWN0ZWQiLCJyZWFkT25seSJdKTt0aGlzLmFjY2Vzc0tleT1lLmFjY2Vzc0tleXx8IiI7dGhpcy5hbmNob3JUeXBlPWdldFN0cmluZ09wdGlvbihlLmFuY2hvclR5cGUsWyJ0b3BMZWZ0IiwiYm90dG9tQ2VudGVyIiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0IiwibWlkZGxlQ2VudGVyIiwibWlkZGxlTGVmdCIsIm1pZGRsZVJpZ2h0IiwidG9wQ2VudGVyIiwidG9wUmlnaHQiXSk7dGhpcy5jb2xTcGFuPWdldEludGVnZXIoe2RhdGE6ZS5jb2xTcGFuLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PmU+PTF8fC0xPT09ZX0pO3RoaXMuaD1lLmg/Z2V0TWVhc3VyZW1lbnQoZS5oKToiIjt0aGlzLmhBbGlnbj1nZXRTdHJpbmdPcHRpb24oZS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5sb2NhbGU9ZS5sb2NhbGV8fCIiO3RoaXMubWF4SD1nZXRNZWFzdXJlbWVudChlLm1heEgsIjBwdCIpO3RoaXMubWF4Vz1nZXRNZWFzdXJlbWVudChlLm1heFcsIjBwdCIpO3RoaXMubWluSD1nZXRNZWFzdXJlbWVudChlLm1pbkgsIjBwdCIpO3RoaXMubWluVz1nZXRNZWFzdXJlbWVudChlLm1pblcsIjBwdCIpO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucHJlc2VuY2U9Z2V0U3RyaW5nT3B0aW9uKGUucHJlc2VuY2UsWyJ2aXNpYmxlIiwiaGlkZGVuIiwiaW5hY3RpdmUiLCJpbnZpc2libGUiXSk7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnJvdGF0ZT1nZXRJbnRlZ2VyKHtkYXRhOmUucm90YXRlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PmUlOTA9PTB9KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy53PWUudz9nZXRNZWFzdXJlbWVudChlLncpOiIiO3RoaXMueD1nZXRNZWFzdXJlbWVudChlLngsIjBwdCIpO3RoaXMueT1nZXRNZWFzdXJlbWVudChlLnksIjBwdCIpO3RoaXMuYXNzaXN0PW51bGw7dGhpcy5iaW5kPW51bGw7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmNhbGN1bGF0ZT1udWxsO3RoaXMuY2FwdGlvbj1udWxsO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5mb250PW51bGw7dGhpcy5mb3JtYXQ9bnVsbDt0aGlzLml0ZW1zPW5ldyBYRkFPYmplY3RBcnJheSgyKTt0aGlzLmtlZXA9bnVsbDt0aGlzLm1hcmdpbj1udWxsO3RoaXMucGFyYT1udWxsO3RoaXMudHJhdmVyc2FsPW51bGw7dGhpcy51aT1udWxsO3RoaXMudmFsaWRhdGU9bnVsbDt0aGlzLnZhbHVlPW51bGw7dGhpcy5iaW5kSXRlbXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29ubmVjdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ldmVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zZXRQcm9wZXJ0eT1uZXcgWEZBT2JqZWN0QXJyYXl9W3lpXSgpe3JldHVybiEwfVtHaV0oZSl7X3NldFZhbHVlKHRoaXMsZSl9W0ppXShlKXtzZXRUYWJJbmRleCh0aGlzKTtpZighdGhpcy51aSl7dGhpcy51aT1uZXcgVWkoe30pO3RoaXMudWlbZGldPXRoaXNbZGldO3RoaXNbTHJdKHRoaXMudWkpO2xldCBlO3N3aXRjaCh0aGlzLml0ZW1zLmNoaWxkcmVuLmxlbmd0aCl7Y2FzZSAwOmU9bmV3IFRleHRFZGl0KHt9KTt0aGlzLnVpLnRleHRFZGl0PWU7YnJlYWs7Y2FzZSAxOmU9bmV3IENoZWNrQnV0dG9uKHt9KTt0aGlzLnVpLmNoZWNrQnV0dG9uPWU7YnJlYWs7Y2FzZSAyOmU9bmV3IENob2ljZUxpc3Qoe30pO3RoaXMudWkuY2hvaWNlTGlzdD1lfXRoaXMudWlbTHJdKGUpfWlmKCF0aGlzLnVpfHwiaGlkZGVuIj09PXRoaXMucHJlc2VuY2V8fCJpbmFjdGl2ZSI9PT10aGlzLnByZXNlbmNlfHwwPT09dGhpcy5ofHwwPT09dGhpcy53KXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO3RoaXMuY2FwdGlvbiYmZGVsZXRlIHRoaXMuY2FwdGlvbltKcl07dGhpc1tFaV0oKTtjb25zdCB0PXRoaXMuY2FwdGlvbj90aGlzLmNhcHRpb25bSmldKGUpLmh0bWw6bnVsbCxuPXRoaXMudyxhPXRoaXMuaDtsZXQgcz0wLHI9MDtpZih0aGlzLm1hcmdpbil7cz10aGlzLm1hcmdpbi5sZWZ0SW5zZXQrdGhpcy5tYXJnaW4ucmlnaHRJbnNldDtyPXRoaXMubWFyZ2luLnRvcEluc2V0K3RoaXMubWFyZ2luLmJvdHRvbUluc2V0fWxldCBpPW51bGw7aWYoIiI9PT10aGlzLnd8fCIiPT09dGhpcy5oKXtsZXQgdD1udWxsLG49bnVsbCxhPTAsbz0wO2lmKHRoaXMudWkuY2hlY2tCdXR0b24pYT1vPXRoaXMudWkuY2hlY2tCdXR0b24uc2l6ZTtlbHNle2NvbnN0e3c6dCxoOm59PWxheW91dE5vZGUodGhpcyxlKTtpZihudWxsIT09dCl7YT10O289bn1lbHNlIG89ZnVuY3Rpb24gZm9udHNfZ2V0TWV0cmljcyhlLHQ9ITEpe2xldCBuPW51bGw7aWYoZSl7Y29uc3QgdD1zdHJpcFF1b3RlcyhlLnR5cGVmYWNlKSxhPWVbZGldLmZvbnRGaW5kZXIuZmluZCh0KTtuPXNlbGVjdEZvbnQoZSxhKX1pZighbilyZXR1cm57bGluZUhlaWdodDoxMixsaW5lR2FwOjIsbGluZU5vR2FwOjEwfTtjb25zdCBhPWUuc2l6ZXx8MTAscz1uLmxpbmVIZWlnaHQ/TWF0aC5tYXgodD8wOjEuMixuLmxpbmVIZWlnaHQpOjEuMixyPXZvaWQgMD09PW4ubGluZUdhcD8uMjpuLmxpbmVHYXA7cmV0dXJue2xpbmVIZWlnaHQ6cyphLGxpbmVHYXA6ciphLGxpbmVOb0dhcDpNYXRoLm1heCgxLHMtcikqYX19KHRoaXMuZm9udCwhMCkubGluZU5vR2FwfWk9Z2V0Qm9yZGVyRGltcyh0aGlzLnVpW29pXSgpKTthKz1pLnc7bys9aS5oO2lmKHRoaXMuY2FwdGlvbil7Y29uc3R7dzpzLGg6cixpc0Jyb2tlbjppfT10aGlzLmNhcHRpb25bb2ldKGUpO2lmKGkmJnRoaXNbdWldKClbQWldKCkpe3RoaXNbUGldKCk7cmV0dXJuIEhUTUxSZXN1bHQuRkFJTFVSRX10PXM7bj1yO3N3aXRjaCh0aGlzLmNhcHRpb24ucGxhY2VtZW50KXtjYXNlImxlZnQiOmNhc2UicmlnaHQiOmNhc2UiaW5saW5lIjp0Kz1hO2JyZWFrO2Nhc2UidG9wIjpjYXNlImJvdHRvbSI6bis9b319ZWxzZXt0PWE7bj1vfWlmKHQmJiIiPT09dGhpcy53KXt0Kz1zO3RoaXMudz1NYXRoLm1pbih0aGlzLm1heFc8PTA/MS8wOnRoaXMubWF4Vyx0aGlzLm1pblcrMTx0P3Q6dGhpcy5taW5XKX1pZihuJiYiIj09PXRoaXMuaCl7bis9cjt0aGlzLmg9TWF0aC5taW4odGhpcy5tYXhIPD0wPzEvMDp0aGlzLm1heEgsdGhpcy5taW5IKzE8bj9uOnRoaXMubWluSCl9fXRoaXNbUGldKCk7Zml4RGltZW5zaW9ucyh0aGlzKTtzZXRGaXJzdFVuc3BsaXR0YWJsZSh0aGlzKTtpZighY2hlY2tEaW1lbnNpb25zKHRoaXMsZSkpe3RoaXMudz1uO3RoaXMuaD1hO3RoaXNbUGldKCk7cmV0dXJuIEhUTUxSZXN1bHQuRkFJTFVSRX11bnNldEZpcnN0VW5zcGxpdHRhYmxlKHRoaXMpO2NvbnN0IG89dG9TdHlsZSh0aGlzLCJmb250IiwiZGltZW5zaW9ucyIsInBvc2l0aW9uIiwicm90YXRlIiwiYW5jaG9yVHlwZSIsInByZXNlbmNlIiwibWFyZ2luIiwiaEFsaWduIik7c2V0TWluTWF4RGltZW5zaW9ucyh0aGlzLG8pO2NvbnN0IGw9WyJ4ZmFGaWVsZCJdO3RoaXMuZm9udCYmbC5wdXNoKCJ4ZmFGb250Iik7aXNQcmludE9ubHkodGhpcykmJmwucHVzaCgieGZhUHJpbnRPbmx5Iik7Y29uc3QgZj17c3R5bGU6byxpZDp0aGlzW2VvXSxjbGFzczpsfTtpZihvLm1hcmdpbil7by5wYWRkaW5nPW8ubWFyZ2luO2RlbGV0ZSBvLm1hcmdpbn1zZXRBY2Nlc3ModGhpcyxsKTt0aGlzLm5hbWUmJihmLnhmYU5hbWU9dGhpcy5uYW1lKTtjb25zdCBjPVtdLGg9e25hbWU6ImRpdiIsYXR0cmlidXRlczpmLGNoaWxkcmVuOmN9O2FwcGx5QXNzaXN0KHRoaXMsZik7Y29uc3QgdT10aGlzLmJvcmRlcj90aGlzLmJvcmRlcltaaV0oKTpudWxsLG09Y29tcHV0ZUJib3godGhpcyxoLGUpLHA9dGhpcy51aVtKaV0oKS5odG1sO2lmKCFwKXtPYmplY3QuYXNzaWduKG8sdSk7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhjcmVhdGVXcmFwcGVyKHRoaXMsaCksbSl9dGhpc1tWaV0mJihwLmNoaWxkcmVuPy5bMF0/cC5jaGlsZHJlblswXS5hdHRyaWJ1dGVzLnRhYmluZGV4PXRoaXNbVmldOnAuYXR0cmlidXRlcy50YWJpbmRleD10aGlzW1ZpXSk7cC5hdHRyaWJ1dGVzLnN0eWxlfHw9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgZD1udWxsO2lmKHRoaXMudWkuYnV0dG9uKXsxPT09cC5jaGlsZHJlbi5sZW5ndGgmJihbZF09cC5jaGlsZHJlbi5zcGxpY2UoMCwxKSk7T2JqZWN0LmFzc2lnbihwLmF0dHJpYnV0ZXMuc3R5bGUsdSl9ZWxzZSBPYmplY3QuYXNzaWduKG8sdSk7Yy5wdXNoKHApO2lmKHRoaXMudmFsdWUpaWYodGhpcy51aS5pbWFnZUVkaXQpcC5jaGlsZHJlbi5wdXNoKHRoaXMudmFsdWVbSmldKCkuaHRtbCk7ZWxzZSBpZighdGhpcy51aS5idXR0b24pe2xldCBlPSIiO2lmKHRoaXMudmFsdWUuZXhEYXRhKWU9dGhpcy52YWx1ZS5leERhdGFbJGldKCk7ZWxzZSBpZih0aGlzLnZhbHVlLnRleHQpZT10aGlzLnZhbHVlLnRleHRbb2ldKCk7ZWxzZXtjb25zdCB0PXRoaXMudmFsdWVbSmldKCkuaHRtbDtudWxsIT09dCYmKGU9dC5jaGlsZHJlblswXS52YWx1ZSl9dGhpcy51aS50ZXh0RWRpdCYmdGhpcy52YWx1ZS50ZXh0Py5tYXhDaGFycyYmKHAuY2hpbGRyZW5bMF0uYXR0cmlidXRlcy5tYXhMZW5ndGg9dGhpcy52YWx1ZS50ZXh0Lm1heENoYXJzKTtpZihlKXtpZih0aGlzLnVpLm51bWVyaWNFZGl0KXtlPXBhcnNlRmxvYXQoZSk7ZT1pc05hTihlKT8iIjplLnRvU3RyaW5nKCl9InRleHRhcmVhIj09PXAuY2hpbGRyZW5bMF0ubmFtZT9wLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudGV4dENvbnRlbnQ9ZTpwLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudmFsdWU9ZX19aWYoIXRoaXMudWkuaW1hZ2VFZGl0JiZwLmNoaWxkcmVuPy5bMF0mJnRoaXMuaCl7aT1pfHxnZXRCb3JkZXJEaW1zKHRoaXMudWlbb2ldKCkpO2xldCB0PTA7aWYodGhpcy5jYXB0aW9uJiZbInRvcCIsImJvdHRvbSJdLmluY2x1ZGVzKHRoaXMuY2FwdGlvbi5wbGFjZW1lbnQpKXt0PXRoaXMuY2FwdGlvbi5yZXNlcnZlO3Q8PTAmJih0PXRoaXMuY2FwdGlvbltvaV0oZSkuaCk7Y29uc3Qgbj10aGlzLmgtdC1yLWkuaDtwLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMuc3R5bGUuaGVpZ2h0PW1lYXN1cmVUb1N0cmluZyhuKX1lbHNlIHAuY2hpbGRyZW5bMF0uYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQ9IjEwMCUifWQmJnAuY2hpbGRyZW4ucHVzaChkKTtpZighdCl7cC5hdHRyaWJ1dGVzLmNsYXNzJiZwLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhTGVmdCIpO3RoaXMudz1uO3RoaXMuaD1hO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MoY3JlYXRlV3JhcHBlcih0aGlzLGgpLG0pfWlmKHRoaXMudWkuYnV0dG9uKXtvLnBhZGRpbmcmJmRlbGV0ZSBvLnBhZGRpbmc7ImRpdiI9PT10Lm5hbWUmJih0Lm5hbWU9InNwYW4iKTtwLmNoaWxkcmVuLnB1c2godCk7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhoLG0pfXRoaXMudWkuY2hlY2tCdXR0b24mJih0LmF0dHJpYnV0ZXMuY2xhc3NbMF09InhmYUNhcHRpb25Gb3JDaGVja0J1dHRvbiIpO3AuYXR0cmlidXRlcy5jbGFzc3x8PVtdO3AuY2hpbGRyZW4uc3BsaWNlKDAsMCx0KTtzd2l0Y2godGhpcy5jYXB0aW9uLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlImlubGluZSI6cC5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYUxlZnQiKTticmVhaztjYXNlInJpZ2h0IjpwLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhUmlnaHQiKTticmVhaztjYXNlInRvcCI6cC5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYVRvcCIpO2JyZWFrO2Nhc2UiYm90dG9tIjpwLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhQm90dG9tIil9dGhpcy53PW47dGhpcy5oPWE7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhjcmVhdGVXcmFwcGVyKHRoaXMsaCksbSl9fWNsYXNzIEZpbGwgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImZpbGwiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucHJlc2VuY2U9Z2V0U3RyaW5nT3B0aW9uKGUucHJlc2VuY2UsWyJ2aXNpYmxlIiwiaGlkZGVuIiwiaW5hY3RpdmUiLCJpbnZpc2libGUiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29sb3I9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubGluZWFyPW51bGw7dGhpcy5wYXR0ZXJuPW51bGw7dGhpcy5yYWRpYWw9bnVsbDt0aGlzLnNvbGlkPW51bGw7dGhpcy5zdGlwcGxlPW51bGx9W1ppXSgpe2NvbnN0IGU9dGhpc1ttaV0oKSx0PWVbbWldKClbbWldKCksbj1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhPSJjb2xvciIscz1hO2lmKGUgaW5zdGFuY2VvZiBCb3JkZXIpe2E9ImJhY2tncm91bmQtY29sb3IiO3M9ImJhY2tncm91bmQiO3QgaW5zdGFuY2VvZiBVaSYmKG4uYmFja2dyb3VuZENvbG9yPSJ3aGl0ZSIpfWlmKGUgaW5zdGFuY2VvZiBSZWN0YW5nbGV8fGUgaW5zdGFuY2VvZiBBcmMpe2E9cz0iZmlsbCI7bi5maWxsPSJ3aGl0ZSJ9Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKCJleHRyYXMiPT09ZXx8ImNvbG9yIj09PWUpY29udGludWU7Y29uc3QgdD10aGlzW2VdO2lmKCEodCBpbnN0YW5jZW9mIFhGQU9iamVjdCkpY29udGludWU7Y29uc3Qgcj10W1ppXSh0aGlzLmNvbG9yKTtyJiYobltyLnN0YXJ0c1dpdGgoIiMiKT9hOnNdPXIpO3JldHVybiBufWlmKHRoaXMuY29sb3I/LnZhbHVlKXtjb25zdCBlPXRoaXMuY29sb3JbWmldKCk7bltlLnN0YXJ0c1dpdGgoIiMiKT9hOnNdPWV9cmV0dXJuIG59fWNsYXNzIEZpbHRlciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiZmlsdGVyIiwhMCk7dGhpcy5hZGRSZXZvY2F0aW9uSW5mbz1nZXRTdHJpbmdPcHRpb24oZS5hZGRSZXZvY2F0aW9uSW5mbyxbIiIsInJlcXVpcmVkIiwib3B0aW9uYWwiLCJub25lIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudmVyc2lvbj1nZXRJbnRlZ2VyKHtkYXRhOnRoaXMudmVyc2lvbixkZWZhdWx0VmFsdWU6NSx2YWxpZGF0ZTplPT5lPj0xJiZlPD01fSk7dGhpcy5hcHBlYXJhbmNlRmlsdGVyPW51bGw7dGhpcy5jZXJ0aWZpY2F0ZXM9bnVsbDt0aGlzLmRpZ2VzdE1ldGhvZHM9bnVsbDt0aGlzLmVuY29kaW5ncz1udWxsO3RoaXMuZW5jcnlwdGlvbk1ldGhvZHM9bnVsbDt0aGlzLmhhbmRsZXI9bnVsbDt0aGlzLmxvY2tEb2N1bWVudD1udWxsO3RoaXMubWRwPW51bGw7dGhpcy5yZWFzb25zPW51bGw7dGhpcy50aW1lU3RhbXA9bnVsbH19Y2xhc3MgRmxvYXQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJmbG9hdCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtRcl0oKXtjb25zdCBlPXBhcnNlRmxvYXQodGhpc1tWcl0udHJpbSgpKTt0aGlzW1ZyXT1pc05hTihlKT9udWxsOmV9W0ppXShlKXtyZXR1cm4gdmFsdWVUb0h0bWwobnVsbCE9PXRoaXNbVnJdP3RoaXNbVnJdLnRvU3RyaW5nKCk6IiIpfX1jbGFzcyB0ZW1wbGF0ZV9Gb250IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJmb250IiwhMCk7dGhpcy5iYXNlbGluZVNoaWZ0PWdldE1lYXN1cmVtZW50KGUuYmFzZWxpbmVTaGlmdCk7dGhpcy5mb250SG9yaXpvbnRhbFNjYWxlPWdldEZsb2F0KHtkYXRhOmUuZm9udEhvcml6b250YWxTY2FsZSxkZWZhdWx0VmFsdWU6MTAwLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLmZvbnRWZXJ0aWNhbFNjYWxlPWdldEZsb2F0KHtkYXRhOmUuZm9udFZlcnRpY2FsU2NhbGUsZGVmYXVsdFZhbHVlOjEwMCx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmtlcm5pbmdNb2RlPWdldFN0cmluZ09wdGlvbihlLmtlcm5pbmdNb2RlLFsibm9uZSIsInBhaXIiXSk7dGhpcy5sZXR0ZXJTcGFjaW5nPWdldE1lYXN1cmVtZW50KGUubGV0dGVyU3BhY2luZywiMCIpO3RoaXMubGluZVRocm91Z2g9Z2V0SW50ZWdlcih7ZGF0YTplLmxpbmVUaHJvdWdoLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfHwyPT09ZX0pO3RoaXMubGluZVRocm91Z2hQZXJpb2Q9Z2V0U3RyaW5nT3B0aW9uKGUubGluZVRocm91Z2hQZXJpb2QsWyJhbGwiLCJ3b3JkIl0pO3RoaXMub3ZlcmxpbmU9Z2V0SW50ZWdlcih7ZGF0YTplLm92ZXJsaW5lLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfHwyPT09ZX0pO3RoaXMub3ZlcmxpbmVQZXJpb2Q9Z2V0U3RyaW5nT3B0aW9uKGUub3ZlcmxpbmVQZXJpb2QsWyJhbGwiLCJ3b3JkIl0pO3RoaXMucG9zdHVyZT1nZXRTdHJpbmdPcHRpb24oZS5wb3N0dXJlLFsibm9ybWFsIiwiaXRhbGljIl0pO3RoaXMuc2l6ZT1nZXRNZWFzdXJlbWVudChlLnNpemUsIjEwcHQiKTt0aGlzLnR5cGVmYWNlPWUudHlwZWZhY2V8fCJDb3VyaWVyIjt0aGlzLnVuZGVybGluZT1nZXRJbnRlZ2VyKHtkYXRhOmUudW5kZXJsaW5lLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfHwyPT09ZX0pO3RoaXMudW5kZXJsaW5lUGVyaW9kPWdldFN0cmluZ09wdGlvbihlLnVuZGVybGluZVBlcmlvZCxbImFsbCIsIndvcmQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMud2VpZ2h0PWdldFN0cmluZ09wdGlvbihlLndlaWdodCxbIm5vcm1hbCIsImJvbGQiXSk7dGhpcy5leHRyYXM9bnVsbDt0aGlzLmZpbGw9bnVsbH1bX3JdKGUpe3N1cGVyW19yXShlKTt0aGlzW2RpXS51c2VkVHlwZWZhY2VzLmFkZCh0aGlzLnR5cGVmYWNlKX1bWmldKCl7Y29uc3QgZT10b1N0eWxlKHRoaXMsImZpbGwiKSx0PWUuY29sb3I7aWYodClpZigiIzAwMDAwMCI9PT10KWRlbGV0ZSBlLmNvbG9yO2Vsc2UgaWYoIXQuc3RhcnRzV2l0aCgiIyIpKXtlLmJhY2tncm91bmQ9dDtlLmJhY2tncm91bmRDbGlwPSJ0ZXh0IjtlLmNvbG9yPSJ0cmFuc3BhcmVudCJ9dGhpcy5iYXNlbGluZVNoaWZ0JiYoZS52ZXJ0aWNhbEFsaWduPW1lYXN1cmVUb1N0cmluZyh0aGlzLmJhc2VsaW5lU2hpZnQpKTtlLmZvbnRLZXJuaW5nPSJub25lIj09PXRoaXMua2VybmluZ01vZGU/Im5vbmUiOiJub3JtYWwiO2UubGV0dGVyU3BhY2luZz1tZWFzdXJlVG9TdHJpbmcodGhpcy5sZXR0ZXJTcGFjaW5nKTtpZigwIT09dGhpcy5saW5lVGhyb3VnaCl7ZS50ZXh0RGVjb3JhdGlvbj0ibGluZS10aHJvdWdoIjsyPT09dGhpcy5saW5lVGhyb3VnaCYmKGUudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIil9aWYoMCE9PXRoaXMub3ZlcmxpbmUpe2UudGV4dERlY29yYXRpb249Im92ZXJsaW5lIjsyPT09dGhpcy5vdmVybGluZSYmKGUudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIil9ZS5mb250U3R5bGU9dGhpcy5wb3N0dXJlO2UuZm9udFNpemU9bWVhc3VyZVRvU3RyaW5nKC45OSp0aGlzLnNpemUpO3NldEZvbnRGYW1pbHkodGhpcyx0aGlzLHRoaXNbZGldLmZvbnRGaW5kZXIsZSk7aWYoMCE9PXRoaXMudW5kZXJsaW5lKXtlLnRleHREZWNvcmF0aW9uPSJ1bmRlcmxpbmUiOzI9PT10aGlzLnVuZGVybGluZSYmKGUudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIil9ZS5mb250V2VpZ2h0PXRoaXMud2VpZ2h0O3JldHVybiBlfX1jbGFzcyBGb3JtYXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImZvcm1hdCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5waWN0dXJlPW51bGx9fWNsYXNzIEhhbmRsZXIgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImhhbmRsZXIiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIEh5cGhlbmF0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJoeXBoZW5hdGlvbiIpO3RoaXMuZXhjbHVkZUFsbENhcHM9Z2V0SW50ZWdlcih7ZGF0YTplLmV4Y2x1ZGVBbGxDYXBzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5leGNsdWRlSW5pdGlhbENhcD1nZXRJbnRlZ2VyKHtkYXRhOmUuZXhjbHVkZUluaXRpYWxDYXAsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmh5cGhlbmF0ZT1nZXRJbnRlZ2VyKHtkYXRhOmUuaHlwaGVuYXRlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnB1c2hDaGFyYWN0ZXJDb3VudD1nZXRJbnRlZ2VyKHtkYXRhOmUucHVzaENoYXJhY3RlckNvdW50LGRlZmF1bHRWYWx1ZTozLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLnJlbWFpbkNoYXJhY3RlckNvdW50PWdldEludGVnZXIoe2RhdGE6ZS5yZW1haW5DaGFyYWN0ZXJDb3VudCxkZWZhdWx0VmFsdWU6Myx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMud29yZENoYXJhY3RlckNvdW50PWdldEludGVnZXIoe2RhdGE6ZS53b3JkQ2hhcmFjdGVyQ291bnQsZGVmYXVsdFZhbHVlOjcsdmFsaWRhdGU6ZT0+ZT49MH0pfX1jbGFzcyBJbWFnZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiaW1hZ2UiKTt0aGlzLmFzcGVjdD1nZXRTdHJpbmdPcHRpb24oZS5hc3BlY3QsWyJmaXQiLCJhY3R1YWwiLCJoZWlnaHQiLCJub25lIiwid2lkdGgiXSk7dGhpcy5jb250ZW50VHlwZT1lLmNvbnRlbnRUeXBlfHwiIjt0aGlzLmhyZWY9ZS5ocmVmfHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudHJhbnNmZXJFbmNvZGluZz1nZXRTdHJpbmdPcHRpb24oZS50cmFuc2ZlckVuY29kaW5nLFsiYmFzZTY0Iiwibm9uZSIsInBhY2thZ2UiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtKaV0oKXtpZih0aGlzLmNvbnRlbnRUeXBlJiYhTm8uaGFzKHRoaXMuY29udGVudFR5cGUudG9Mb3dlckNhc2UoKSkpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7bGV0IGU9dGhpc1tkaV0uaW1hZ2VzPy5nZXQodGhpcy5ocmVmKTtpZighZSYmKHRoaXMuaHJlZnx8IXRoaXNbVnJdKSlyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTtlfHwiYmFzZTY0IiE9PXRoaXMudHJhbnNmZXJFbmNvZGluZ3x8KGU9VWludDhBcnJheS5mcm9tQmFzZTY0KHRoaXNbVnJdKSk7aWYoIWUpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7aWYoIXRoaXMuY29udGVudFR5cGUpe2Zvcihjb25zdFt0LG5db2Ygem8paWYoZS5sZW5ndGg+dC5sZW5ndGgmJnQuZXZlcnkoKHQsbik9PnQ9PT1lW25dKSl7dGhpcy5jb250ZW50VHlwZT1uO2JyZWFrfWlmKCF0aGlzLmNvbnRlbnRUeXBlKXJldHVybiBIVE1MUmVzdWx0LkVNUFRZfWNvbnN0IHQ9bmV3IEJsb2IoW2VdLHt0eXBlOnRoaXMuY29udGVudFR5cGV9KTtsZXQgbjtzd2l0Y2godGhpcy5hc3BlY3Qpe2Nhc2UiZml0IjpjYXNlImFjdHVhbCI6YnJlYWs7Y2FzZSJoZWlnaHQiOm49e2hlaWdodDoiMTAwJSIsb2JqZWN0Rml0OiJmaWxsIn07YnJlYWs7Y2FzZSJub25lIjpuPXt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixvYmplY3RGaXQ6ImZpbGwifTticmVhaztjYXNlIndpZHRoIjpuPXt3aWR0aDoiMTAwJSIsb2JqZWN0Rml0OiJmaWxsIn19Y29uc3QgYT10aGlzW21pXSgpO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImltZyIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFJbWFnZSJdLHN0eWxlOm4sc3JjOlVSTC5jcmVhdGVPYmplY3RVUkwodCksYWx0OmE/YXJpYUxhYmVsKGFbbWldKCkpOm51bGx9fSl9fWNsYXNzIEltYWdlRWRpdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywiaW1hZ2VFZGl0IiwhMCk7dGhpcy5kYXRhPWdldFN0cmluZ09wdGlvbihlLmRhdGEsWyJsaW5rIiwiZW1iZWQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGx9W0ppXShlKXtyZXR1cm4iZW1iZWQiPT09dGhpcy5kYXRhP0hUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOnt9fSk6SFRNTFJlc3VsdC5FTVBUWX19Y2xhc3MgSW50ZWdlciBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImludGVnZXIiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bUXJdKCl7Y29uc3QgZT1wYXJzZUludCh0aGlzW1ZyXS50cmltKCksMTApO3RoaXNbVnJdPWlzTmFOKGUpP251bGw6ZX1bSmldKGUpe3JldHVybiB2YWx1ZVRvSHRtbChudWxsIT09dGhpc1tWcl0/dGhpc1tWcl0udG9TdHJpbmcoKToiIil9fWNsYXNzIElzc3VlcnMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImlzc3VlcnMiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jZXJ0aWZpY2F0ZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIEl0ZW1zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJpdGVtcyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlZj1lLnJlZnx8IiI7dGhpcy5zYXZlPWdldEludGVnZXIoe2RhdGE6ZS5zYXZlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9vbGVhbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGVUaW1lPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlY2ltYWw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhEYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZsb2F0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmltYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmludGVnZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheX1bSmldKCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiB0aGlzW2ZpXSgpKWUucHVzaCh0WyRpXSgpKTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKGUpfX1jbGFzcyBLZWVwIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJrZWVwIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjtjb25zdCB0PVsibm9uZSIsImNvbnRlbnRBcmVhIiwicGFnZUFyZWEiXTt0aGlzLmludGFjdD1nZXRTdHJpbmdPcHRpb24oZS5pbnRhY3QsdCk7dGhpcy5uZXh0PWdldFN0cmluZ09wdGlvbihlLm5leHQsdCk7dGhpcy5wcmV2aW91cz1nZXRTdHJpbmdPcHRpb24oZS5wcmV2aW91cyx0KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH19Y2xhc3MgS2V5VXNhZ2UgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImtleVVzYWdlIik7Y29uc3QgdD1bIiIsInllcyIsIm5vIl07dGhpcy5jcmxTaWduPWdldFN0cmluZ09wdGlvbihlLmNybFNpZ24sdCk7dGhpcy5kYXRhRW5jaXBoZXJtZW50PWdldFN0cmluZ09wdGlvbihlLmRhdGFFbmNpcGhlcm1lbnQsdCk7dGhpcy5kZWNpcGhlck9ubHk9Z2V0U3RyaW5nT3B0aW9uKGUuZGVjaXBoZXJPbmx5LHQpO3RoaXMuZGlnaXRhbFNpZ25hdHVyZT1nZXRTdHJpbmdPcHRpb24oZS5kaWdpdGFsU2lnbmF0dXJlLHQpO3RoaXMuZW5jaXBoZXJPbmx5PWdldFN0cmluZ09wdGlvbihlLmVuY2lwaGVyT25seSx0KTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMua2V5QWdyZWVtZW50PWdldFN0cmluZ09wdGlvbihlLmtleUFncmVlbWVudCx0KTt0aGlzLmtleUNlcnRTaWduPWdldFN0cmluZ09wdGlvbihlLmtleUNlcnRTaWduLHQpO3RoaXMua2V5RW5jaXBoZXJtZW50PWdldFN0cmluZ09wdGlvbihlLmtleUVuY2lwaGVybWVudCx0KTt0aGlzLm5vblJlcHVkaWF0aW9uPWdldFN0cmluZ09wdGlvbihlLm5vblJlcHVkaWF0aW9uLHQpO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIExpbmUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sImxpbmUiLCEwKTt0aGlzLmhhbmQ9Z2V0U3RyaW5nT3B0aW9uKGUuaGFuZCxbImV2ZW4iLCJsZWZ0IiwicmlnaHQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnNsb3BlPWdldFN0cmluZ09wdGlvbihlLnNsb3BlLFsiXFwiLCIvIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmVkZ2U9bnVsbH1bSmldKCl7Y29uc3QgZT10aGlzW21pXSgpW21pXSgpLHQ9dGhpcy5lZGdlfHxuZXcgRWRnZSh7fSksbj10W1ppXSgpLGE9T2JqZWN0LmNyZWF0ZShudWxsKSxzPSJ2aXNpYmxlIj09PXQucHJlc2VuY2U/dC50aGlja25lc3M6MDthLnN0cm9rZVdpZHRoPW1lYXN1cmVUb1N0cmluZyhzKTthLnN0cm9rZT1uLmNvbG9yO2xldCByLGksbyxsLGY9IjEwMCUiLGM9IjEwMCUiO2lmKGUudzw9cyl7W3IsaSxvLGxdPVsiNTAlIiwwLCI1MCUiLCIxMDAlIl07Zj1hLnN0cm9rZVdpZHRofWVsc2UgaWYoZS5oPD1zKXtbcixpLG8sbF09WzAsIjUwJSIsIjEwMCUiLCI1MCUiXTtjPWEuc3Ryb2tlV2lkdGh9ZWxzZSJcXCI9PT10aGlzLnNsb3BlP1tyLGksbyxsXT1bMCwwLCIxMDAlIiwiMTAwJSJdOltyLGksbyxsXT1bMCwiMTAwJSIsIjEwMCUiLDBdO2NvbnN0IGg9e25hbWU6InN2ZyIsY2hpbGRyZW46W3tuYW1lOiJsaW5lIixhdHRyaWJ1dGVzOnt4bWxuczpQbyx4MTpyLHkxOmkseDI6byx5MjpsLHN0eWxlOmF9fV0sYXR0cmlidXRlczp7eG1sbnM6UG8sd2lkdGg6ZixoZWlnaHQ6YyxzdHlsZTp7b3ZlcmZsb3c6InZpc2libGUifX19O2lmKGhhc01hcmdpbihlKSlyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W2hdfSk7aC5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhoKX19Y2xhc3MgTGluZWFyIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJsaW5lYXIiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsidG9SaWdodCIsInRvQm90dG9tIiwidG9MZWZ0IiwidG9Ub3AiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29sb3I9bnVsbDt0aGlzLmV4dHJhcz1udWxsfVtaaV0oZSl7ZT1lP2VbWmldKCk6IiNGRkZGRkYiO3JldHVybmBsaW5lYXItZ3JhZGllbnQoJHt0aGlzLnR5cGUucmVwbGFjZSgvKFtSQkxUXSkvLCIgJDEiKS50b0xvd2VyQ2FzZSgpfSwgJHtlfSwgJHt0aGlzLmNvbG9yP3RoaXMuY29sb3JbWmldKCk6IiMwMDAwMDAifSlgfX1jbGFzcyBMb2NrRG9jdW1lbnQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJsb2NrRG9jdW1lbnQiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W1FyXSgpe3RoaXNbVnJdPWdldFN0cmluZ09wdGlvbih0aGlzW1ZyXSxbImF1dG8iLCIwIiwiMSJdKX19Y2xhc3MgTWFuaWZlc3QgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sIm1hbmlmZXN0IiwhMCk7dGhpcy5hY3Rpb249Z2V0U3RyaW5nT3B0aW9uKGUuYWN0aW9uLFsiaW5jbHVkZSIsImFsbCIsImV4Y2x1ZGUiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbDt0aGlzLnJlZj1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIE1hcmdpbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywibWFyZ2luIiwhMCk7dGhpcy5ib3R0b21JbnNldD1nZXRNZWFzdXJlbWVudChlLmJvdHRvbUluc2V0LCIwIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlZnRJbnNldD1nZXRNZWFzdXJlbWVudChlLmxlZnRJbnNldCwiMCIpO3RoaXMucmlnaHRJbnNldD1nZXRNZWFzdXJlbWVudChlLnJpZ2h0SW5zZXQsIjAiKTt0aGlzLnRvcEluc2V0PWdldE1lYXN1cmVtZW50KGUudG9wSW5zZXQsIjAiKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH1bWmldKCl7cmV0dXJue21hcmdpbjptZWFzdXJlVG9TdHJpbmcodGhpcy50b3BJbnNldCkrIiAiK21lYXN1cmVUb1N0cmluZyh0aGlzLnJpZ2h0SW5zZXQpKyIgIittZWFzdXJlVG9TdHJpbmcodGhpcy5ib3R0b21JbnNldCkrIiAiK21lYXN1cmVUb1N0cmluZyh0aGlzLmxlZnRJbnNldCl9fX1jbGFzcyBNZHAgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sIm1kcCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5wZXJtaXNzaW9ucz1nZXRJbnRlZ2VyKHtkYXRhOmUucGVybWlzc2lvbnMsZGVmYXVsdFZhbHVlOjIsdmFsaWRhdGU6ZT0+MT09PWV8fDM9PT1lfSk7dGhpcy5zaWduYXR1cmVUeXBlPWdldFN0cmluZ09wdGlvbihlLnNpZ25hdHVyZVR5cGUsWyJmaWxsZXIiLCJhdXRob3IiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBNZWRpdW0gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sIm1lZGl1bSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5pbWFnaW5nQkJveD1mdW5jdGlvbiBnZXRCQm94KGUpe2NvbnN0IHQ9LTE7aWYoIWUpcmV0dXJue3g6dCx5OnQsd2lkdGg6dCxoZWlnaHQ6dH07Y29uc3Qgbj1lLnNwbGl0KCIsIiw0KS5tYXAoZT0+Z2V0TWVhc3VyZW1lbnQoZS50cmltKCksIi0xIikpO2lmKG4ubGVuZ3RoPDR8fG5bMl08MHx8blszXTwwKXJldHVybnt4OnQseTp0LHdpZHRoOnQsaGVpZ2h0OnR9O2NvbnN0W2EscyxyLGldPW47cmV0dXJue3g6YSx5OnMsd2lkdGg6cixoZWlnaHQ6aX19KGUuaW1hZ2luZ0JCb3gpO3RoaXMubG9uZz1nZXRNZWFzdXJlbWVudChlLmxvbmcpO3RoaXMub3JpZW50YXRpb249Z2V0U3RyaW5nT3B0aW9uKGUub3JpZW50YXRpb24sWyJwb3J0cmFpdCIsImxhbmRzY2FwZSJdKTt0aGlzLnNob3J0PWdldE1lYXN1cmVtZW50KGUuc2hvcnQpO3RoaXMuc3RvY2s9ZS5zdG9ja3x8IiI7dGhpcy50cmF5SW49Z2V0U3RyaW5nT3B0aW9uKGUudHJheUluLFsiYXV0byIsImRlbGVnYXRlIiwicGFnZUZyb250Il0pO3RoaXMudHJheU91dD1nZXRTdHJpbmdPcHRpb24oZS50cmF5T3V0LFsiYXV0byIsImRlbGVnYXRlIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgTWVzc2FnZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywibWVzc2FnZSIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIE51bWVyaWNFZGl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJudW1lcmljRWRpdCIsITApO3RoaXMuaFNjcm9sbFBvbGljeT1nZXRTdHJpbmdPcHRpb24oZS5oU2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5jb21iPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1hcmdpbj1udWxsfVtKaV0oZSl7Y29uc3QgdD10b1N0eWxlKHRoaXMsImJvcmRlciIsImZvbnQiLCJtYXJnaW4iKSxuPXRoaXNbbWldKClbbWldKCksYT17bmFtZToiaW5wdXQiLGF0dHJpYnV0ZXM6e3R5cGU6InRleHQiLGZpZWxkSWQ6bltlb10sZGF0YUlkOm5bJHJdPy5bZW9dfHxuW2VvXSxjbGFzczpbInhmYVRleHRmaWVsZCJdLHN0eWxlOnQsImFyaWEtbGFiZWwiOmFyaWFMYWJlbChuKSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtpZihpc1JlcXVpcmVkKG4pKXthLmF0dHJpYnV0ZXNbImFyaWEtcmVxdWlyZWQiXT0hMDthLmF0dHJpYnV0ZXMucmVxdWlyZWQ9ITB9cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToibGFiZWwiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhTGFiZWwiXX0sY2hpbGRyZW46W2FdfSl9fWNsYXNzIE9jY3VyIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJvY2N1ciIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5pbml0aWFsPSIiIT09ZS5pbml0aWFsP2dldEludGVnZXIoe2RhdGE6ZS5pbml0aWFsLGRlZmF1bHRWYWx1ZToiIix2YWxpZGF0ZTplPT4hMH0pOiIiO3RoaXMubWF4PSIiIT09ZS5tYXg/Z2V0SW50ZWdlcih7ZGF0YTplLm1heCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6ZT0+ITB9KToiIjt0aGlzLm1pbj0iIiE9PWUubWluP2dldEludGVnZXIoe2RhdGE6ZS5taW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ITB9KToiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH1bX3JdKCl7Y29uc3QgZT10aGlzW21pXSgpLHQ9dGhpcy5taW47IiI9PT10aGlzLm1pbiYmKHRoaXMubWluPWUgaW5zdGFuY2VvZiBQYWdlQXJlYXx8ZSBpbnN0YW5jZW9mIFBhZ2VTZXQ/MDoxKTsiIj09PXRoaXMubWF4JiYodGhpcy5tYXg9IiI9PT10P2UgaW5zdGFuY2VvZiBQYWdlQXJlYXx8ZSBpbnN0YW5jZW9mIFBhZ2VTZXQ/LTE6MTp0aGlzLm1pbik7LTEhPT10aGlzLm1heCYmdGhpcy5tYXg8dGhpcy5taW4mJih0aGlzLm1heD10aGlzLm1pbik7IiI9PT10aGlzLmluaXRpYWwmJih0aGlzLmluaXRpYWw9ZSBpbnN0YW5jZW9mIFRlbXBsYXRlPzE6dGhpcy5taW4pfX1jbGFzcyBPaWQgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sIm9pZCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBPaWRzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJvaWRzIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMub2lkPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgT3ZlcmZsb3cgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sIm92ZXJmbG93Iik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy50YXJnZXQ9ZS50YXJnZXR8fCIiO3RoaXMudHJhaWxlcj1lLnRyYWlsZXJ8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bb2ldKCl7aWYoIXRoaXNbSnJdKXtjb25zdCBlPXRoaXNbbWldKCksdD10aGlzW3BpXSgpLG49dFtYaV0odGhpcy50YXJnZXQsZSksYT10W1hpXSh0aGlzLmxlYWRlcixlKSxzPXRbWGldKHRoaXMudHJhaWxlcixlKTt0aGlzW0pyXT17dGFyZ2V0Om4/LlswXXx8bnVsbCxsZWFkZXI6YT8uWzBdfHxudWxsLHRyYWlsZXI6cz8uWzBdfHxudWxsLGFkZExlYWRlcjohMSxhZGRUcmFpbGVyOiExfX1yZXR1cm4gdGhpc1tKcl19fWNsYXNzIFBhZ2VBcmVhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJwYWdlQXJlYSIsITApO3RoaXMuYmxhbmtPck5vdEJsYW5rPWdldFN0cmluZ09wdGlvbihlLmJsYW5rT3JOb3RCbGFuayxbImFueSIsImJsYW5rIiwibm90QmxhbmsiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmluaXRpYWxOdW1iZXI9Z2V0SW50ZWdlcih7ZGF0YTplLmluaXRpYWxOdW1iZXIsZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ITB9KTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLm51bWJlcmVkPWdldEludGVnZXIoe2RhdGE6ZS5udW1iZXJlZCxkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTplPT4hMH0pO3RoaXMub2RkT3JFdmVuPWdldFN0cmluZ09wdGlvbihlLm9kZE9yRXZlbixbImFueSIsImV2ZW4iLCJvZGQiXSk7dGhpcy5wYWdlUG9zaXRpb249Z2V0U3RyaW5nT3B0aW9uKGUucGFnZVBvc2l0aW9uLFsiYW55IiwiZmlyc3QiLCJsYXN0Iiwib25seSIsInJlc3QiXSk7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5kZXNjPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1lZGl1bT1udWxsO3RoaXMub2NjdXI9bnVsbDt0aGlzLmFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29udGVudEFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZHJhdz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leGNsR3JvdXA9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmllbGQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybT1uZXcgWEZBT2JqZWN0QXJyYXl9W0lpXSgpe2lmKCF0aGlzW0pyXSl7dGhpc1tKcl09e251bWJlck9mVXNlOjB9O3JldHVybiEwfXJldHVybiF0aGlzLm9jY3VyfHwtMT09PXRoaXMub2NjdXIubWF4fHx0aGlzW0pyXS5udW1iZXJPZlVzZTx0aGlzLm9jY3VyLm1heH1bWHJdKCl7ZGVsZXRlIHRoaXNbSnJdfVtoaV0oKXt0aGlzW0pyXXx8PXtudW1iZXJPZlVzZTowfTtjb25zdCBlPXRoaXNbbWldKCk7aWYoIm9yZGVyZWRPY2N1cnJlbmNlIj09PWUucmVsYXRpb24mJnRoaXNbSWldKCkpe3RoaXNbSnJdLm51bWJlck9mVXNlKz0xO3JldHVybiB0aGlzfXJldHVybiBlW2hpXSgpfVtuaV0oKXtyZXR1cm4gdGhpc1tKcl0uc3BhY2V8fHt3aWR0aDowLGhlaWdodDowfX1bSmldKCl7dGhpc1tKcl18fD17bnVtYmVyT2ZVc2U6MX07Y29uc3QgZT1bXTt0aGlzW0pyXS5jaGlsZHJlbj1lO2NvbnN0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtpZih0aGlzLm1lZGl1bSYmdGhpcy5tZWRpdW0uc2hvcnQmJnRoaXMubWVkaXVtLmxvbmcpe3Qud2lkdGg9bWVhc3VyZVRvU3RyaW5nKHRoaXMubWVkaXVtLnNob3J0KTt0LmhlaWdodD1tZWFzdXJlVG9TdHJpbmcodGhpcy5tZWRpdW0ubG9uZyk7dGhpc1tKcl0uc3BhY2U9e3dpZHRoOnRoaXMubWVkaXVtLnNob3J0LGhlaWdodDp0aGlzLm1lZGl1bS5sb25nfTtpZigibGFuZHNjYXBlIj09PXRoaXMubWVkaXVtLm9yaWVudGF0aW9uKXtjb25zdCBlPXQud2lkdGg7dC53aWR0aD10LmhlaWdodDt0LmhlaWdodD1lO3RoaXNbSnJdLnNwYWNlPXt3aWR0aDp0aGlzLm1lZGl1bS5sb25nLGhlaWdodDp0aGlzLm1lZGl1bS5zaG9ydH19fWVsc2Ugd2FybigiWEZBIC0gTm8gbWVkaXVtIHNwZWNpZmllZCBpbiBwYWdlQXJlYTogcGxlYXNlIGZpbGUgYSBidWcuIik7dGhpc1tVcl0oe2ZpbHRlcjpuZXcgU2V0KFsiYXJlYSIsImRyYXciLCJmaWVsZCIsInN1YmZvcm0iXSksaW5jbHVkZTohMH0pO3RoaXNbVXJdKHtmaWx0ZXI6bmV3IFNldChbImNvbnRlbnRBcmVhIl0pLGluY2x1ZGU6ITB9KTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOmUsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFQYWdlIl0saWQ6dGhpc1tlb10sc3R5bGU6dCx4ZmFOYW1lOnRoaXMubmFtZX19KX19Y2xhc3MgUGFnZVNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywicGFnZVNldCIsITApO3RoaXMuZHVwbGV4SW1wb3NpdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5kdXBsZXhJbXBvc2l0aW9uLFsibG9uZ0VkZ2UiLCJzaG9ydEVkZ2UiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnJlbGF0aW9uPWdldFN0cmluZ09wdGlvbihlLnJlbGF0aW9uLFsib3JkZXJlZE9jY3VycmVuY2UiLCJkdXBsZXhQYWdpbmF0ZWQiLCJzaW1wbGV4UGFnaW5hdGVkIl0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5vY2N1cj1udWxsO3RoaXMucGFnZUFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGFnZVNldD1uZXcgWEZBT2JqZWN0QXJyYXl9W1hyXSgpe2Zvcihjb25zdCBlIG9mIHRoaXMucGFnZUFyZWEuY2hpbGRyZW4pZVtYcl0oKTtmb3IoY29uc3QgZSBvZiB0aGlzLnBhZ2VTZXQuY2hpbGRyZW4pZVtYcl0oKX1bSWldKCl7cmV0dXJuIXRoaXMub2NjdXJ8fC0xPT09dGhpcy5vY2N1ci5tYXh8fHRoaXNbSnJdLm51bWJlck9mVXNlPHRoaXMub2NjdXIubWF4fVtoaV0oKXt0aGlzW0pyXXx8PXtudW1iZXJPZlVzZToxLHBhZ2VJbmRleDotMSxwYWdlU2V0SW5kZXg6LTF9O2lmKCJvcmRlcmVkT2NjdXJyZW5jZSI9PT10aGlzLnJlbGF0aW9uKXtpZih0aGlzW0pyXS5wYWdlSW5kZXgrMTx0aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmxlbmd0aCl7dGhpc1tKcl0ucGFnZUluZGV4Kz0xO3JldHVybiB0aGlzLnBhZ2VBcmVhLmNoaWxkcmVuW3RoaXNbSnJdLnBhZ2VJbmRleF1baGldKCl9aWYodGhpc1tKcl0ucGFnZVNldEluZGV4KzE8dGhpcy5wYWdlU2V0LmNoaWxkcmVuLmxlbmd0aCl7dGhpc1tKcl0ucGFnZVNldEluZGV4Kz0xO3JldHVybiB0aGlzLnBhZ2VTZXQuY2hpbGRyZW5bdGhpc1tKcl0ucGFnZVNldEluZGV4XVtoaV0oKX1pZih0aGlzW0lpXSgpKXt0aGlzW0pyXS5udW1iZXJPZlVzZSs9MTt0aGlzW0pyXS5wYWdlSW5kZXg9LTE7dGhpc1tKcl0ucGFnZVNldEluZGV4PS0xO3JldHVybiB0aGlzW2hpXSgpfWNvbnN0IGU9dGhpc1ttaV0oKTtpZihlIGluc3RhbmNlb2YgUGFnZVNldClyZXR1cm4gZVtoaV0oKTt0aGlzW1hyXSgpO3JldHVybiB0aGlzW2hpXSgpfWNvbnN0IGU9dGhpc1twaV0oKVtKcl0ucGFnZU51bWJlcix0PWUlMj09MD8iZXZlbiI6Im9kZCIsbj0wPT09ZT8iZmlyc3QiOiJyZXN0IjtsZXQgYT10aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmZpbmQoZT0+ZS5vZGRPckV2ZW49PT10JiZlLnBhZ2VQb3NpdGlvbj09PW4pO2lmKGEpcmV0dXJuIGE7YT10aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmZpbmQoZT0+ImFueSI9PT1lLm9kZE9yRXZlbiYmZS5wYWdlUG9zaXRpb249PT1uKTtpZihhKXJldHVybiBhO2E9dGhpcy5wYWdlQXJlYS5jaGlsZHJlbi5maW5kKGU9PiJhbnkiPT09ZS5vZGRPckV2ZW4mJiJhbnkiPT09ZS5wYWdlUG9zaXRpb24pO3JldHVybiBhfHx0aGlzLnBhZ2VBcmVhLmNoaWxkcmVuWzBdfX1jbGFzcyBQYXJhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJwYXJhIiwhMCk7dGhpcy5oQWxpZ249Z2V0U3RyaW5nT3B0aW9uKGUuaEFsaWduLFsibGVmdCIsImNlbnRlciIsImp1c3RpZnkiLCJqdXN0aWZ5QWxsIiwicmFkaXgiLCJyaWdodCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubGluZUhlaWdodD1lLmxpbmVIZWlnaHQ/Z2V0TWVhc3VyZW1lbnQoZS5saW5lSGVpZ2h0LCIwcHQiKToiIjt0aGlzLm1hcmdpbkxlZnQ9ZS5tYXJnaW5MZWZ0P2dldE1lYXN1cmVtZW50KGUubWFyZ2luTGVmdCwiMHB0Iik6IiI7dGhpcy5tYXJnaW5SaWdodD1lLm1hcmdpblJpZ2h0P2dldE1lYXN1cmVtZW50KGUubWFyZ2luUmlnaHQsIjBwdCIpOiIiO3RoaXMub3JwaGFucz1nZXRJbnRlZ2VyKHtkYXRhOmUub3JwaGFucyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5wcmVzZXJ2ZT1lLnByZXNlcnZlfHwiIjt0aGlzLnJhZGl4T2Zmc2V0PWUucmFkaXhPZmZzZXQ/Z2V0TWVhc3VyZW1lbnQoZS5yYWRpeE9mZnNldCwiMHB0Iik6IiI7dGhpcy5zcGFjZUFib3ZlPWUuc3BhY2VBYm92ZT9nZXRNZWFzdXJlbWVudChlLnNwYWNlQWJvdmUsIjBwdCIpOiIiO3RoaXMuc3BhY2VCZWxvdz1lLnNwYWNlQmVsb3c/Z2V0TWVhc3VyZW1lbnQoZS5zcGFjZUJlbG93LCIwcHQiKToiIjt0aGlzLnRhYkRlZmF1bHQ9ZS50YWJEZWZhdWx0P2dldE1lYXN1cmVtZW50KHRoaXMudGFiRGVmYXVsdCk6IiI7dGhpcy50YWJTdG9wcz0oZS50YWJTdG9wc3x8IiIpLnRyaW0oKS5zcGxpdCgvXHMrLykubWFwKChlLHQpPT50JTI9PTE/Z2V0TWVhc3VyZW1lbnQoZSk6ZSk7dGhpcy50ZXh0SW5kZW50PWUudGV4dEluZGVudD9nZXRNZWFzdXJlbWVudChlLnRleHRJbmRlbnQsIjBwdCIpOiIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnZBbGlnbj1nZXRTdHJpbmdPcHRpb24oZS52QWxpZ24sWyJ0b3AiLCJib3R0b20iLCJtaWRkbGUiXSk7dGhpcy53aWRvd3M9Z2V0SW50ZWdlcih7ZGF0YTplLndpZG93cyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5oeXBoZW5hdGlvbj1udWxsfVtaaV0oKXtjb25zdCBlPXRvU3R5bGUodGhpcywiaEFsaWduIik7IiIhPT10aGlzLm1hcmdpbkxlZnQmJihlLnBhZGRpbmdMZWZ0PW1lYXN1cmVUb1N0cmluZyh0aGlzLm1hcmdpbkxlZnQpKTsiIiE9PXRoaXMubWFyZ2luUmlnaHQmJihlLnBhZGRpbmdSaWdodD1tZWFzdXJlVG9TdHJpbmcodGhpcy5tYXJnaW5SaWdodCkpOyIiIT09dGhpcy5zcGFjZUFib3ZlJiYoZS5wYWRkaW5nVG9wPW1lYXN1cmVUb1N0cmluZyh0aGlzLnNwYWNlQWJvdmUpKTsiIiE9PXRoaXMuc3BhY2VCZWxvdyYmKGUucGFkZGluZ0JvdHRvbT1tZWFzdXJlVG9TdHJpbmcodGhpcy5zcGFjZUJlbG93KSk7aWYoIiIhPT10aGlzLnRleHRJbmRlbnQpe2UudGV4dEluZGVudD1tZWFzdXJlVG9TdHJpbmcodGhpcy50ZXh0SW5kZW50KTtmaXhUZXh0SW5kZW50KGUpfXRoaXMubGluZUhlaWdodD4wJiYoZS5saW5lSGVpZ2h0PW1lYXN1cmVUb1N0cmluZyh0aGlzLmxpbmVIZWlnaHQpKTsiIiE9PXRoaXMudGFiRGVmYXVsdCYmKGUudGFiU2l6ZT1tZWFzdXJlVG9TdHJpbmcodGhpcy50YWJEZWZhdWx0KSk7dGhpcy50YWJTdG9wcy5sZW5ndGg7dGhpcy5oeXBoZW5hdGF0aW9uJiZPYmplY3QuYXNzaWduKGUsdGhpcy5oeXBoZW5hdGF0aW9uW1ppXSgpKTtyZXR1cm4gZX19Y2xhc3MgUGFzc3dvcmRFZGl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJwYXNzd29yZEVkaXQiLCEwKTt0aGlzLmhTY3JvbGxQb2xpY3k9Z2V0U3RyaW5nT3B0aW9uKGUuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucGFzc3dvcmRDaGFyPWUucGFzc3dvcmRDaGFyfHwiKiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1hcmdpbj1udWxsfX1jbGFzcyB0ZW1wbGF0ZV9QYXR0ZXJuIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJwYXR0ZXJuIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbImNyb3NzSGF0Y2giLCJjcm9zc0RpYWdvbmFsIiwiZGlhZ29uYWxMZWZ0IiwiZGlhZ29uYWxSaWdodCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W1ppXShlKXtlPWU/ZVtaaV0oKToiI0ZGRkZGRiI7Y29uc3QgdD10aGlzLmNvbG9yP3RoaXMuY29sb3JbWmldKCk6IiMwMDAwMDAiLG49InJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQiLGE9YCR7ZX0sJHtlfSA1cHgsJHt0fSA1cHgsJHt0fSAxMHB4YDtzd2l0Y2godGhpcy50eXBlKXtjYXNlImNyb3NzSGF0Y2giOnJldHVybmAke259KHRvIHRvcCwke2F9KSAke259KHRvIHJpZ2h0LCR7YX0pYDtjYXNlImNyb3NzRGlhZ29uYWwiOnJldHVybmAke259KDQ1ZGVnLCR7YX0pICR7bn0oLTQ1ZGVnLCR7YX0pYDtjYXNlImRpYWdvbmFsTGVmdCI6cmV0dXJuYCR7bn0oNDVkZWcsJHthfSlgO2Nhc2UiZGlhZ29uYWxSaWdodCI6cmV0dXJuYCR7bn0oLTQ1ZGVnLCR7YX0pYDtjYXNlImhvcml6b250YWwiOnJldHVybmAke259KHRvIHRvcCwke2F9KWA7Y2FzZSJ2ZXJ0aWNhbCI6cmV0dXJuYCR7bn0odG8gcmlnaHQsJHthfSlgfXJldHVybiIifX1jbGFzcyBQaWN0dXJlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJwaWN0dXJlIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFByb3RvIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJwcm90byIsITApO3RoaXMuYXBwZWFyYW5jZUZpbHRlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5hcmM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYXJlYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5hc3Npc3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYmFyY29kZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5iaW5kSXRlbXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYm9va2VuZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ib29sZWFuPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJvcmRlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5icmVhaz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5icmVha0FmdGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJyZWFrQmVmb3JlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJ1dHRvbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jYWxjdWxhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY2FwdGlvbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jZXJ0aWZpY2F0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jZXJ0aWZpY2F0ZXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY2hlY2tCdXR0b249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY2hvaWNlTGlzdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jb2xvcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jb21iPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmNvbm5lY3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29udGVudEFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29ybmVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWVFZGl0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlY2ltYWw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGVmYXVsdFVpPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlc2M9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGlnZXN0TWV0aG9kPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRpZ2VzdE1ldGhvZHM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZHJhdz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lZGdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY29kaW5nPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY29kaW5ncz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lbmNyeXB0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY3J5cHREYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY3J5cHRpb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZW5jcnlwdGlvbk1ldGhvZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lbmNyeXB0aW9uTWV0aG9kcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ldmVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leERhdGE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhPYmplY3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhjbEdyb3VwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4ZWN1dGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXh0cmFzPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpZWxkPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpbGw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmlsdGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZsb2F0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZvbnQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZm9ybWF0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmhhbmRsZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaHlwaGVuYXRpb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2VFZGl0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmludGVnZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaXNzdWVycz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5pdGVtcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5rZWVwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmtleVVzYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmxpbmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMubGluZWFyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmxvY2tEb2N1bWVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tYW5pZmVzdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tYXJnaW49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMubWRwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm1lZGl1bT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tZXNzYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm51bWVyaWNFZGl0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm9jY3VyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm9pZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5vaWRzPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm92ZXJmbG93PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnBhZ2VBcmVhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnBhZ2VTZXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGFyYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5wYXNzd29yZEVkaXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGF0dGVybj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5waWN0dXJlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnJhZGlhbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5yZWFzb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucmVhc29ucz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5yZWN0YW5nbGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucmVmPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnNjcmlwdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zZXRQcm9wZXJ0eT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zaWduRGF0YT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zaWduYXR1cmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc2lnbmluZz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zb2xpZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zcGVhaz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdGlwcGxlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnN1YmZvcm09bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybVNldD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJqZWN0RE49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViamVjdEROcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJtaXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50ZXh0RWRpdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRpbWVTdGFtcD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50b29sVGlwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRyYXZlcnNhbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50cmF2ZXJzZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy51aT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy52YWxpZGF0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy52YWx1ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy52YXJpYWJsZXM9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBSYWRpYWwgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sInJhZGlhbCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJ0b0VkZ2UiLCJ0b0NlbnRlciJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W1ppXShlKXtlPWU/ZVtaaV0oKToiI0ZGRkZGRiI7Y29uc3QgdD10aGlzLmNvbG9yP3RoaXMuY29sb3JbWmldKCk6IiMwMDAwMDAiO3JldHVybmByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGNlbnRlciwgJHsidG9FZGdlIj09PXRoaXMudHlwZT9gJHtlfSwke3R9YDpgJHt0fSwke2V9YH0pYH19Y2xhc3MgUmVhc29uIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJyZWFzb24iKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgUmVhc29ucyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywicmVhc29ucyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnJlYXNvbj1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFJlY3RhbmdsZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywicmVjdGFuZ2xlIiwhMCk7dGhpcy5oYW5kPWdldFN0cmluZ09wdGlvbihlLmhhbmQsWyJldmVuIiwibGVmdCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29ybmVyPW5ldyBYRkFPYmplY3RBcnJheSg0KTt0aGlzLmVkZ2U9bmV3IFhGQU9iamVjdEFycmF5KDQpO3RoaXMuZmlsbD1udWxsfVtKaV0oKXtjb25zdCBlPXRoaXMuZWRnZS5jaGlsZHJlbi5sZW5ndGg/dGhpcy5lZGdlLmNoaWxkcmVuWzBdOm5ldyBFZGdlKHt9KSx0PWVbWmldKCksbj1PYmplY3QuY3JlYXRlKG51bGwpOyJ2aXNpYmxlIj09PXRoaXMuZmlsbD8ucHJlc2VuY2U/T2JqZWN0LmFzc2lnbihuLHRoaXMuZmlsbFtaaV0oKSk6bi5maWxsPSJ0cmFuc3BhcmVudCI7bi5zdHJva2VXaWR0aD1tZWFzdXJlVG9TdHJpbmcoInZpc2libGUiPT09ZS5wcmVzZW5jZT9lLnRoaWNrbmVzczowKTtuLnN0cm9rZT10LmNvbG9yO2NvbnN0IGE9KHRoaXMuY29ybmVyLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNvcm5lci5jaGlsZHJlblswXTpuZXcgQ29ybmVyKHt9KSlbWmldKCkscz17bmFtZToic3ZnIixjaGlsZHJlbjpbe25hbWU6InJlY3QiLGF0dHJpYnV0ZXM6e3htbG5zOlBvLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHg6MCx5OjAscng6YS5yYWRpdXMscnk6YS5yYWRpdXMsc3R5bGU6bn19XSxhdHRyaWJ1dGVzOnt4bWxuczpQbyxzdHlsZTp7b3ZlcmZsb3c6InZpc2libGUifSx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn19O2lmKGhhc01hcmdpbih0aGlzW21pXSgpW21pXSgpKSlyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W3NdfSk7cy5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhzKX19Y2xhc3MgUmVmRWxlbWVudCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywicmVmIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFNjcmlwdCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywic2NyaXB0Iik7dGhpcy5iaW5kaW5nPWUuYmluZGluZ3x8IiI7dGhpcy5jb250ZW50VHlwZT1lLmNvbnRlbnRUeXBlfHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucnVuQXQ9Z2V0U3RyaW5nT3B0aW9uKGUucnVuQXQsWyJjbGllbnQiLCJib3RoIiwic2VydmVyIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgU2V0UHJvcGVydHkgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sInNldFByb3BlcnR5Iik7dGhpcy5jb25uZWN0aW9uPWUuY29ubmVjdGlvbnx8IiI7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudGFyZ2V0PWUudGFyZ2V0fHwiIn19Y2xhc3MgU2lnbkRhdGEgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sInNpZ25EYXRhIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm9wZXJhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5vcGVyYXRpb24sWyJzaWduIiwiY2xlYXIiLCJ2ZXJpZnkiXSk7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudGFyZ2V0PWUudGFyZ2V0fHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5maWx0ZXI9bnVsbDt0aGlzLm1hbmlmZXN0PW51bGx9fWNsYXNzIFNpZ25hdHVyZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywic2lnbmF0dXJlIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIlBERjEuMyIsIlBERjEuNiJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZmlsdGVyPW51bGw7dGhpcy5tYW5pZmVzdD1udWxsO3RoaXMubWFyZ2luPW51bGx9fWNsYXNzIFNpZ25pbmcgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sInNpZ25pbmciLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jZXJ0aWZpY2F0ZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFNvbGlkIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJzb2xpZCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGx9W1ppXShlKXtyZXR1cm4gZT9lW1ppXSgpOiIjRkZGRkZGIn19Y2xhc3MgU3BlYWsgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sInNwZWFrIik7dGhpcy5kaXNhYmxlPWdldEludGVnZXIoe2RhdGE6ZS5kaXNhYmxlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnByaW9yaXR5PWdldFN0cmluZ09wdGlvbihlLnByaW9yaXR5LFsiY3VzdG9tIiwiY2FwdGlvbiIsIm5hbWUiLCJ0b29sVGlwIl0pO3RoaXMucmlkPWUucmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFN0aXBwbGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sInN0aXBwbGUiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucmF0ZT1nZXRJbnRlZ2VyKHtkYXRhOmUucmF0ZSxkZWZhdWx0VmFsdWU6NTAsdmFsaWRhdGU6ZT0+ZT49MCYmZTw9MTAwfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29sb3I9bnVsbDt0aGlzLmV4dHJhcz1udWxsfVtaaV0oZSl7Y29uc3QgdD10aGlzLnJhdGUvMTAwO3JldHVybiBVdGlsLm1ha2VIZXhDb2xvcihNYXRoLnJvdW5kKGUudmFsdWUuciooMS10KSt0aGlzLnZhbHVlLnIqdCksTWF0aC5yb3VuZChlLnZhbHVlLmcqKDEtdCkrdGhpcy52YWx1ZS5nKnQpLE1hdGgucm91bmQoZS52YWx1ZS5iKigxLXQpK3RoaXMudmFsdWUuYip0KSl9fWNsYXNzIFN1YmZvcm0gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sInN1YmZvcm0iLCEwKTt0aGlzLmFjY2Vzcz1nZXRTdHJpbmdPcHRpb24oZS5hY2Nlc3MsWyJvcGVuIiwibm9uSW50ZXJhY3RpdmUiLCJwcm90ZWN0ZWQiLCJyZWFkT25seSJdKTt0aGlzLmFsbG93TWFjcm89Z2V0SW50ZWdlcih7ZGF0YTplLmFsbG93TWFjcm8sZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmFuY2hvclR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUuYW5jaG9yVHlwZSxbInRvcExlZnQiLCJib3R0b21DZW50ZXIiLCJib3R0b21MZWZ0IiwiYm90dG9tUmlnaHQiLCJtaWRkbGVDZW50ZXIiLCJtaWRkbGVMZWZ0IiwibWlkZGxlUmlnaHQiLCJ0b3BDZW50ZXIiLCJ0b3BSaWdodCJdKTt0aGlzLmNvbFNwYW49Z2V0SW50ZWdlcih7ZGF0YTplLmNvbFNwYW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ZT49MXx8LTE9PT1lfSk7dGhpcy5jb2x1bW5XaWR0aHM9KGUuY29sdW1uV2lkdGhzfHwiIikudHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoZT0+Ii0xIj09PWU/LTE6Z2V0TWVhc3VyZW1lbnQoZSkpO3RoaXMuaD1lLmg/Z2V0TWVhc3VyZW1lbnQoZS5oKToiIjt0aGlzLmhBbGlnbj1nZXRTdHJpbmdPcHRpb24oZS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5sYXlvdXQ9Z2V0U3RyaW5nT3B0aW9uKGUubGF5b3V0LFsicG9zaXRpb24iLCJsci10YiIsInJsLXJvdyIsInJsLXRiIiwicm93IiwidGFibGUiLCJ0YiJdKTt0aGlzLmxvY2FsZT1lLmxvY2FsZXx8IiI7dGhpcy5tYXhIPWdldE1lYXN1cmVtZW50KGUubWF4SCwiMHB0Iik7dGhpcy5tYXhXPWdldE1lYXN1cmVtZW50KGUubWF4VywiMHB0Iik7dGhpcy5tZXJnZU1vZGU9Z2V0U3RyaW5nT3B0aW9uKGUubWVyZ2VNb2RlLFsiY29uc3VtZURhdGEiLCJtYXRjaFRlbXBsYXRlIl0pO3RoaXMubWluSD1nZXRNZWFzdXJlbWVudChlLm1pbkgsIjBwdCIpO3RoaXMubWluVz1nZXRNZWFzdXJlbWVudChlLm1pblcsIjBwdCIpO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucHJlc2VuY2U9Z2V0U3RyaW5nT3B0aW9uKGUucHJlc2VuY2UsWyJ2aXNpYmxlIiwiaGlkZGVuIiwiaW5hY3RpdmUiLCJpbnZpc2libGUiXSk7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnJlc3RvcmVTdGF0ZT1nZXRTdHJpbmdPcHRpb24oZS5yZXN0b3JlU3RhdGUsWyJtYW51YWwiLCJhdXRvIl0pO3RoaXMuc2NvcGU9Z2V0U3RyaW5nT3B0aW9uKGUuc2NvcGUsWyJuYW1lIiwibm9uZSJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy53PWUudz9nZXRNZWFzdXJlbWVudChlLncpOiIiO3RoaXMueD1nZXRNZWFzdXJlbWVudChlLngsIjBwdCIpO3RoaXMueT1nZXRNZWFzdXJlbWVudChlLnksIjBwdCIpO3RoaXMuYXNzaXN0PW51bGw7dGhpcy5iaW5kPW51bGw7dGhpcy5ib29rZW5kPW51bGw7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmJyZWFrPW51bGw7dGhpcy5jYWxjdWxhdGU9bnVsbDt0aGlzLmRlc2M9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMua2VlcD1udWxsO3RoaXMubWFyZ2luPW51bGw7dGhpcy5vY2N1cj1udWxsO3RoaXMub3ZlcmZsb3c9bnVsbDt0aGlzLnBhZ2VTZXQ9bnVsbDt0aGlzLnBhcmE9bnVsbDt0aGlzLnRyYXZlcnNhbD1udWxsO3RoaXMudmFsaWRhdGU9bnVsbDt0aGlzLnZhcmlhYmxlcz1udWxsO3RoaXMuYXJlYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5icmVha0FmdGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJyZWFrQmVmb3JlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmNvbm5lY3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZHJhdz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ldmVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leE9iamVjdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leGNsR3JvdXA9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmllbGQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucHJvdG89bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc2V0UHJvcGVydHk9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJmb3JtU2V0PW5ldyBYRkFPYmplY3RBcnJheX1bdWldKCl7Y29uc3QgZT10aGlzW21pXSgpO3JldHVybiBlIGluc3RhbmNlb2YgU3ViZm9ybVNldD9lW3VpXSgpOmV9W3lpXSgpe3JldHVybiEwfVtBaV0oKXtyZXR1cm4gdGhpcy5sYXlvdXQuZW5kc1dpdGgoIi10YiIpJiYwPT09dGhpc1tKcl0uYXR0ZW1wdCYmdGhpc1tKcl0ubnVtYmVySW5MaW5lPjB8fHRoaXNbbWldKClbQWldKCl9KltjaV0oKXt5aWVsZCpnZXRDb250YWluZWRDaGlsZHJlbih0aGlzKX1bWnJdKCl7cmV0dXJuIGZsdXNoSFRNTCh0aGlzKX1benJdKGUsdCl7YWRkSFRNTCh0aGlzLGUsdCl9W25pXSgpe3JldHVybiBnZXRBdmFpbGFibGVTcGFjZSh0aGlzKX1beGldKCl7Y29uc3QgZT10aGlzW3VpXSgpO2lmKCFlW3hpXSgpKXJldHVybiExO2lmKHZvaWQgMCE9PXRoaXNbSnJdLl9pc1NwbGl0dGFibGUpcmV0dXJuIHRoaXNbSnJdLl9pc1NwbGl0dGFibGU7aWYoInBvc2l0aW9uIj09PXRoaXMubGF5b3V0fHx0aGlzLmxheW91dC5pbmNsdWRlcygicm93Iikpe3RoaXNbSnJdLl9pc1NwbGl0dGFibGU9ITE7cmV0dXJuITF9aWYodGhpcy5rZWVwJiYibm9uZSIhPT10aGlzLmtlZXAuaW50YWN0KXt0aGlzW0pyXS5faXNTcGxpdHRhYmxlPSExO3JldHVybiExfWlmKGUubGF5b3V0Py5lbmRzV2l0aCgiLXRiIikmJjAhPT1lW0pyXS5udW1iZXJJbkxpbmUpcmV0dXJuITE7dGhpc1tKcl0uX2lzU3BsaXR0YWJsZT0hMDtyZXR1cm4hMH1bSmldKGUpe3NldFRhYkluZGV4KHRoaXMpO2lmKHRoaXMuYnJlYWspe2lmKCJhdXRvIiE9PXRoaXMuYnJlYWsuYWZ0ZXJ8fCIiIT09dGhpcy5icmVhay5hZnRlclRhcmdldCl7Y29uc3QgZT1uZXcgQnJlYWtBZnRlcih7dGFyZ2V0VHlwZTp0aGlzLmJyZWFrLmFmdGVyLHRhcmdldDp0aGlzLmJyZWFrLmFmdGVyVGFyZ2V0LHN0YXJ0TmV3OnRoaXMuYnJlYWsuc3RhcnROZXcudG9TdHJpbmcoKX0pO2VbZGldPXRoaXNbZGldO3RoaXNbTHJdKGUpO3RoaXMuYnJlYWtBZnRlci5wdXNoKGUpfWlmKCJhdXRvIiE9PXRoaXMuYnJlYWsuYmVmb3JlfHwiIiE9PXRoaXMuYnJlYWsuYmVmb3JlVGFyZ2V0KXtjb25zdCBlPW5ldyBCcmVha0JlZm9yZSh7dGFyZ2V0VHlwZTp0aGlzLmJyZWFrLmJlZm9yZSx0YXJnZXQ6dGhpcy5icmVhay5iZWZvcmVUYXJnZXQsc3RhcnROZXc6dGhpcy5icmVhay5zdGFydE5ldy50b1N0cmluZygpfSk7ZVtkaV09dGhpc1tkaV07dGhpc1tMcl0oZSk7dGhpcy5icmVha0JlZm9yZS5wdXNoKGUpfWlmKCIiIT09dGhpcy5icmVhay5vdmVyZmxvd1RhcmdldCl7Y29uc3QgZT1uZXcgT3ZlcmZsb3coe3RhcmdldDp0aGlzLmJyZWFrLm92ZXJmbG93VGFyZ2V0LGxlYWRlcjp0aGlzLmJyZWFrLm92ZXJmbG93TGVhZGVyLHRyYWlsZXI6dGhpcy5icmVhay5vdmVyZmxvd1RyYWlsZXJ9KTtlW2RpXT10aGlzW2RpXTt0aGlzW0xyXShlKTt0aGlzLm92ZXJmbG93LnB1c2goZSl9dGhpc1tOaV0odGhpcy5icmVhayk7dGhpcy5icmVhaz1udWxsfWlmKCJoaWRkZW4iPT09dGhpcy5wcmVzZW5jZXx8ImluYWN0aXZlIj09PXRoaXMucHJlc2VuY2UpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7KHRoaXMuYnJlYWtCZWZvcmUuY2hpbGRyZW4ubGVuZ3RoPjF8fHRoaXMuYnJlYWtBZnRlci5jaGlsZHJlbi5sZW5ndGg+MSkmJndhcm4oIlhGQSAtIFNldmVyYWwgYnJlYWtCZWZvcmUgb3IgYnJlYWtBZnRlciBpbiBzdWJmb3JtczogcGxlYXNlIGZpbGUgYSBidWcuIik7aWYodGhpcy5icmVha0JlZm9yZS5jaGlsZHJlbi5sZW5ndGg+PTEpe2NvbnN0IGU9dGhpcy5icmVha0JlZm9yZS5jaGlsZHJlblswXTtpZihoYW5kbGVCcmVhayhlKSlyZXR1cm4gSFRNTFJlc3VsdC5icmVha05vZGUoZSl9aWYodGhpc1tKcl0/LmFmdGVyQnJlYWtBZnRlcilyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTtmaXhEaW1lbnNpb25zKHRoaXMpO2NvbnN0IHQ9W10sbj17aWQ6dGhpc1tlb10sY2xhc3M6W119O3NldEFjY2Vzcyh0aGlzLG4uY2xhc3MpO3RoaXNbSnJdfHw9T2JqZWN0LmNyZWF0ZShudWxsKTtPYmplY3QuYXNzaWduKHRoaXNbSnJdLHtjaGlsZHJlbjp0LGxpbmU6bnVsbCxhdHRyaWJ1dGVzOm4sYXR0ZW1wdDowLG51bWJlckluTGluZTowLGF2YWlsYWJsZVNwYWNlOnt3aWR0aDpNYXRoLm1pbih0aGlzLnd8fDEvMCxlLndpZHRoKSxoZWlnaHQ6TWF0aC5taW4odGhpcy5ofHwxLzAsZS5oZWlnaHQpfSx3aWR0aDowLGhlaWdodDowLHByZXZIZWlnaHQ6MCxjdXJyZW50V2lkdGg6MH0pO2NvbnN0IGE9dGhpc1twaV0oKSxzPWFbSnJdLm5vTGF5b3V0RmFpbHVyZSxyPXRoaXNbeGldKCk7cnx8c2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7aWYoIWNoZWNrRGltZW5zaW9ucyh0aGlzLGUpKXJldHVybiBIVE1MUmVzdWx0LkZBSUxVUkU7Y29uc3QgaT1uZXcgU2V0KFsiYXJlYSIsImRyYXciLCJleGNsR3JvdXAiLCJmaWVsZCIsInN1YmZvcm0iLCJzdWJmb3JtU2V0Il0pO2lmKHRoaXMubGF5b3V0LmluY2x1ZGVzKCJyb3ciKSl7Y29uc3QgZT10aGlzW3VpXSgpLmNvbHVtbldpZHRocztpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD4wKXt0aGlzW0pyXS5jb2x1bW5XaWR0aHM9ZTt0aGlzW0pyXS5jdXJyZW50Q29sdW1uPTB9fWNvbnN0IG89dG9TdHlsZSh0aGlzLCJhbmNob3JUeXBlIiwiZGltZW5zaW9ucyIsInBvc2l0aW9uIiwicHJlc2VuY2UiLCJib3JkZXIiLCJtYXJnaW4iLCJoQWxpZ24iKSxsPVsieGZhU3ViZm9ybSJdLGY9bGF5b3V0Q2xhc3ModGhpcyk7ZiYmbC5wdXNoKGYpO24uc3R5bGU9bztuLmNsYXNzPWw7dGhpcy5uYW1lJiYobi54ZmFOYW1lPXRoaXMubmFtZSk7aWYodGhpcy5vdmVyZmxvdyl7Y29uc3QgdD10aGlzLm92ZXJmbG93W29pXSgpO2lmKHQuYWRkTGVhZGVyKXt0LmFkZExlYWRlcj0hMTtoYW5kbGVPdmVyZmxvdyh0aGlzLHQubGVhZGVyLGUpfX10aGlzW0VpXSgpO2NvbnN0IGM9ImxyLXRiIj09PXRoaXMubGF5b3V0fHwicmwtdGIiPT09dGhpcy5sYXlvdXQsaD1jPzI6MTtmb3IoO3RoaXNbSnJdLmF0dGVtcHQ8aDt0aGlzW0pyXS5hdHRlbXB0Kyspe2MmJjE9PT10aGlzW0pyXS5hdHRlbXB0JiYodGhpc1tKcl0ubnVtYmVySW5MaW5lPTApO2NvbnN0IGU9dGhpc1tVcl0oe2ZpbHRlcjppLGluY2x1ZGU6ITB9KTtpZihlLnN1Y2Nlc3MpYnJlYWs7aWYoZS5pc0JyZWFrKCkpe3RoaXNbUGldKCk7cmV0dXJuIGV9aWYoYyYmMD09PXRoaXNbSnJdLmF0dGVtcHQmJjA9PT10aGlzW0pyXS5udW1iZXJJbkxpbmUmJiFhW0pyXS5ub0xheW91dEZhaWx1cmUpe3RoaXNbSnJdLmF0dGVtcHQ9aDticmVha319dGhpc1tQaV0oKTtyfHx1bnNldEZpcnN0VW5zcGxpdHRhYmxlKHRoaXMpO2FbSnJdLm5vTGF5b3V0RmFpbHVyZT1zO2lmKHRoaXNbSnJdLmF0dGVtcHQ9PT1oKXt0aGlzLm92ZXJmbG93JiYodGhpc1twaV0oKVtKcl0ub3ZlcmZsb3dOb2RlPXRoaXMub3ZlcmZsb3cpO3J8fGRlbGV0ZSB0aGlzW0pyXTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfWlmKHRoaXMub3ZlcmZsb3cpe2NvbnN0IHQ9dGhpcy5vdmVyZmxvd1tvaV0oKTtpZih0LmFkZFRyYWlsZXIpe3QuYWRkVHJhaWxlcj0hMTtoYW5kbGVPdmVyZmxvdyh0aGlzLHQudHJhaWxlcixlKX19bGV0IHU9MCxtPTA7aWYodGhpcy5tYXJnaW4pe3U9dGhpcy5tYXJnaW4ubGVmdEluc2V0K3RoaXMubWFyZ2luLnJpZ2h0SW5zZXQ7bT10aGlzLm1hcmdpbi50b3BJbnNldCt0aGlzLm1hcmdpbi5ib3R0b21JbnNldH1jb25zdCBwPU1hdGgubWF4KHRoaXNbSnJdLndpZHRoK3UsdGhpcy53fHwwKSxkPU1hdGgubWF4KHRoaXNbSnJdLmhlaWdodCttLHRoaXMuaHx8MCksZz1bdGhpcy54LHRoaXMueSxwLGRdOyIiPT09dGhpcy53JiYoby53aWR0aD1tZWFzdXJlVG9TdHJpbmcocCkpOyIiPT09dGhpcy5oJiYoby5oZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKGQpKTtpZigoIjBweCI9PT1vLndpZHRofHwiMHB4Ij09PW8uaGVpZ2h0KSYmMD09PXQubGVuZ3RoKXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO2NvbnN0IGI9e25hbWU6ImRpdiIsYXR0cmlidXRlczpuLGNoaWxkcmVuOnR9O2FwcGx5QXNzaXN0KHRoaXMsbik7Y29uc3Qgdz1IVE1MUmVzdWx0LnN1Y2Nlc3MoY3JlYXRlV3JhcHBlcih0aGlzLGIpLGcpO2lmKHRoaXMuYnJlYWtBZnRlci5jaGlsZHJlbi5sZW5ndGg+PTEpe2NvbnN0IGU9dGhpcy5icmVha0FmdGVyLmNoaWxkcmVuWzBdO2lmKGhhbmRsZUJyZWFrKGUpKXt0aGlzW0pyXS5hZnRlckJyZWFrQWZ0ZXI9dztyZXR1cm4gSFRNTFJlc3VsdC5icmVha05vZGUoZSl9fWRlbGV0ZSB0aGlzW0pyXTtyZXR1cm4gd319Y2xhc3MgU3ViZm9ybVNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywic3ViZm9ybVNldCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5yZWxhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5yZWxhdGlvbixbIm9yZGVyZWQiLCJjaG9pY2UiLCJ1bm9yZGVyZWQiXSk7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib29rZW5kPW51bGw7dGhpcy5icmVhaz1udWxsO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5vY2N1cj1udWxsO3RoaXMub3ZlcmZsb3c9bnVsbDt0aGlzLmJyZWFrQWZ0ZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYnJlYWtCZWZvcmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJmb3JtU2V0PW5ldyBYRkFPYmplY3RBcnJheX0qW2NpXSgpe3lpZWxkKmdldENvbnRhaW5lZENoaWxkcmVuKHRoaXMpfVt1aV0oKXtsZXQgZT10aGlzW21pXSgpO2Zvcig7IShlIGluc3RhbmNlb2YgU3ViZm9ybSk7KWU9ZVttaV0oKTtyZXR1cm4gZX1beWldKCl7cmV0dXJuITB9fWNsYXNzIFN1YmplY3RETiBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sInN1YmplY3RETiIpO3RoaXMuZGVsaW1pdGVyPWUuZGVsaW1pdGVyfHwiLCI7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W1FyXSgpe3RoaXNbVnJdPW5ldyBNYXAodGhpc1tWcl0uc3BsaXQodGhpcy5kZWxpbWl0ZXIpLm1hcChlPT57KGU9ZS5zcGxpdCgiPSIsMikpWzBdPWVbMF0udHJpbSgpO3JldHVybiBlfSkpfX1jbGFzcyBTdWJqZWN0RE5zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJzdWJqZWN0RE5zIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuc3ViamVjdEROPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgU3VibWl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJzdWJtaXQiLCEwKTt0aGlzLmVtYmVkUERGPWdldEludGVnZXIoe2RhdGE6ZS5lbWJlZFBERixkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMuZm9ybWF0PWdldFN0cmluZ09wdGlvbihlLmZvcm1hdCxbInhkcCIsImZvcm1kYXRhIiwicGRmIiwidXJsZW5jb2RlZCIsInhmZCIsInhtbCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudGFyZ2V0PWUudGFyZ2V0fHwiIjt0aGlzLnRleHRFbmNvZGluZz1nZXRLZXl3b3JkKHtkYXRhOmUudGV4dEVuY29kaW5nP2UudGV4dEVuY29kaW5nLnRvTG93ZXJDYXNlKCk6IiIsZGVmYXVsdFZhbHVlOiIiLHZhbGlkYXRlOmU9PlsidXRmLTgiLCJiaWctZml2ZSIsImZvbnRzcGVjaWZpYyIsImdiayIsImdiLTE4MDMwIiwiZ2ItMjMxMiIsImtzYy01NjAxIiwibm9uZSIsInNoaWZ0LWppcyIsInVjcy0yIiwidXRmLTE2Il0uaW5jbHVkZXMoZSl8fGUubWF0Y2goL2lzby04ODU5LVxkezJ9Lyl9KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy54ZHBDb250ZW50PWUueGRwQ29udGVudHx8IiI7dGhpcy5lbmNyeXB0PW51bGw7dGhpcy5lbmNyeXB0RGF0YT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zaWduRGF0YT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFRlbXBsYXRlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJ0ZW1wbGF0ZSIsITApO3RoaXMuYmFzZVByb2ZpbGU9Z2V0U3RyaW5nT3B0aW9uKGUuYmFzZVByb2ZpbGUsWyJmdWxsIiwiaW50ZXJhY3RpdmVGb3JtcyJdKTt0aGlzLmV4dHJhcz1udWxsO3RoaXMuc3ViZm9ybT1uZXcgWEZBT2JqZWN0QXJyYXl9W1FyXSgpezA9PT10aGlzLnN1YmZvcm0uY2hpbGRyZW4ubGVuZ3RoJiZ3YXJuKCJYRkEgLSBObyBzdWJmb3JtcyBpbiB0ZW1wbGF0ZSBub2RlLiIpO3RoaXMuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGg+PTImJndhcm4oIlhGQSAtIFNldmVyYWwgc3ViZm9ybXMgaW4gdGVtcGxhdGUgbm9kZTogcGxlYXNlIGZpbGUgYSBidWcuIik7dGhpc1tWaV09NWUzfVt4aV0oKXtyZXR1cm4hMH1bWGldKGUsdCl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiIyIpP1t0aGlzW2JpXS5nZXQoZS5zbGljZSgxKSldOnNlYXJjaE5vZGUodGhpcyx0LGUsITAsITApfSpbWWldKCl7aWYoIXRoaXMuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixjaGlsZHJlbjpbXX0pO3RoaXNbSnJdPXtvdmVyZmxvd05vZGU6bnVsbCxmaXJzdFVuc3BsaXR0YWJsZTpudWxsLGN1cnJlbnRDb250ZW50QXJlYTpudWxsLGN1cnJlbnRQYWdlQXJlYTpudWxsLG5vTGF5b3V0RmFpbHVyZTohMSxwYWdlTnVtYmVyOjEscGFnZVBvc2l0aW9uOiJmaXJzdCIsb2RkT3JFdmVuOiJvZGQiLGJsYW5rT3JOb3RCbGFuazoibm9uQmxhbmsiLHBhcmFTdGFjazpbXX07Y29uc3QgZT10aGlzLnN1YmZvcm0uY2hpbGRyZW5bMF07ZS5wYWdlU2V0W1hyXSgpO2NvbnN0IHQ9ZS5wYWdlU2V0LnBhZ2VBcmVhLmNoaWxkcmVuLG49e25hbWU6ImRpdiIsY2hpbGRyZW46W119O2xldCBhPW51bGwscz1udWxsLHI9bnVsbDtpZihlLmJyZWFrQmVmb3JlLmNoaWxkcmVuLmxlbmd0aD49MSl7cz1lLmJyZWFrQmVmb3JlLmNoaWxkcmVuWzBdO3I9cy50YXJnZXR9ZWxzZSBpZihlLnN1YmZvcm0uY2hpbGRyZW4ubGVuZ3RoPj0xJiZlLnN1YmZvcm0uY2hpbGRyZW5bMF0uYnJlYWtCZWZvcmUuY2hpbGRyZW4ubGVuZ3RoPj0xKXtzPWUuc3ViZm9ybS5jaGlsZHJlblswXS5icmVha0JlZm9yZS5jaGlsZHJlblswXTtyPXMudGFyZ2V0fWVsc2UgaWYoZS5icmVhaz8uYmVmb3JlVGFyZ2V0KXtzPWUuYnJlYWs7cj1zLmJlZm9yZVRhcmdldH1lbHNlIGlmKGUuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGg+PTEmJmUuc3ViZm9ybS5jaGlsZHJlblswXS5icmVhaz8uYmVmb3JlVGFyZ2V0KXtzPWUuc3ViZm9ybS5jaGlsZHJlblswXS5icmVhaztyPXMuYmVmb3JlVGFyZ2V0fWlmKHMpe2NvbnN0IGU9dGhpc1tYaV0ocixzW21pXSgpKTtpZihlIGluc3RhbmNlb2YgUGFnZUFyZWEpe2E9ZTtzW0pyXT17fX19YXx8PXRbMF07YVtKcl09e251bWJlck9mVXNlOjF9O2NvbnN0IGk9YVttaV0oKTtpW0pyXT17bnVtYmVyT2ZVc2U6MSxwYWdlSW5kZXg6aS5wYWdlQXJlYS5jaGlsZHJlbi5pbmRleE9mKGEpLHBhZ2VTZXRJbmRleDowfTtsZXQgbyxsPW51bGwsZj1udWxsLGM9ITAsaD0wLHU9MDtmb3IoOzspe2lmKGMpaD0wO2Vsc2V7bi5jaGlsZHJlbi5wb3AoKTtpZigzPT09KytoKXt3YXJuKCJYRkEgLSBTb21ldGhpbmcgZ29lcyB3cm9uZzogcGxlYXNlIGZpbGUgYSBidWcuIik7cmV0dXJuIG59fW89bnVsbDt0aGlzW0pyXS5jdXJyZW50UGFnZUFyZWE9YTtjb25zdCB0PWFbSmldKCkuaHRtbDtuLmNoaWxkcmVuLnB1c2godCk7aWYobCl7dGhpc1tKcl0ubm9MYXlvdXRGYWlsdXJlPSEwO3QuY2hpbGRyZW4ucHVzaChsW0ppXShhW0pyXS5zcGFjZSkuaHRtbCk7bD1udWxsfWlmKGYpe3RoaXNbSnJdLm5vTGF5b3V0RmFpbHVyZT0hMDt0LmNoaWxkcmVuLnB1c2goZltKaV0oYVtKcl0uc3BhY2UpLmh0bWwpO2Y9bnVsbH1jb25zdCBzPWEuY29udGVudEFyZWEuY2hpbGRyZW4scj10LmNoaWxkcmVuLmZpbHRlcihlPT5lLmF0dHJpYnV0ZXMuY2xhc3MuaW5jbHVkZXMoInhmYUNvbnRlbnRhcmVhIikpO2M9ITE7dGhpc1tKcl0uZmlyc3RVbnNwbGl0dGFibGU9bnVsbDt0aGlzW0pyXS5ub0xheW91dEZhaWx1cmU9ITE7Y29uc3QgZmx1c2g9dD0+e2NvbnN0IG49ZVtacl0oKTtpZihuKXtjfHw9bi5jaGlsZHJlbj8ubGVuZ3RoPjA7clt0XS5jaGlsZHJlbi5wdXNoKG4pfX07Zm9yKGxldCB0PXUsYT1zLmxlbmd0aDt0PGE7dCsrKXtjb25zdCBhPXRoaXNbSnJdLmN1cnJlbnRDb250ZW50QXJlYT1zW3RdLGk9e3dpZHRoOmEudyxoZWlnaHQ6YS5ofTt1PTA7aWYobCl7clt0XS5jaGlsZHJlbi5wdXNoKGxbSmldKGkpLmh0bWwpO2w9bnVsbH1pZihmKXtyW3RdLmNoaWxkcmVuLnB1c2goZltKaV0oaSkuaHRtbCk7Zj1udWxsfWNvbnN0IGg9ZVtKaV0oaSk7aWYoaC5zdWNjZXNzKXtpZihoLmh0bWwpe2N8fD1oLmh0bWwuY2hpbGRyZW4/Lmxlbmd0aD4wO3JbdF0uY2hpbGRyZW4ucHVzaChoLmh0bWwpfWVsc2UhYyYmbi5jaGlsZHJlbi5sZW5ndGg+MSYmbi5jaGlsZHJlbi5wb3AoKTtyZXR1cm4gbn1pZihoLmlzQnJlYWsoKSl7Y29uc3QgZT1oLmJyZWFrTm9kZTtmbHVzaCh0KTtpZigiYXV0byI9PT1lLnRhcmdldFR5cGUpY29udGludWU7aWYoZS5sZWFkZXIpe2w9dGhpc1tYaV0oZS5sZWFkZXIsZVttaV0oKSk7bD1sP2xbMF06bnVsbH1pZihlLnRyYWlsZXIpe2Y9dGhpc1tYaV0oZS50cmFpbGVyLGVbbWldKCkpO2Y9Zj9mWzBdOm51bGx9aWYoInBhZ2VBcmVhIj09PWUudGFyZ2V0VHlwZSl7bz1lW0pyXS50YXJnZXQ7dD0xLzB9ZWxzZSBpZihlW0pyXS50YXJnZXQpe289ZVtKcl0udGFyZ2V0O3U9ZVtKcl0uaW5kZXgrMTt0PTEvMH1lbHNlIHQ9ZVtKcl0uaW5kZXg7Y29udGludWV9aWYodGhpc1tKcl0ub3ZlcmZsb3dOb2RlKXtjb25zdCBlPXRoaXNbSnJdLm92ZXJmbG93Tm9kZTt0aGlzW0pyXS5vdmVyZmxvd05vZGU9bnVsbDtjb25zdCBuPWVbb2ldKCksYT1uLnRhcmdldDtuLmFkZExlYWRlcj1udWxsIT09bi5sZWFkZXI7bi5hZGRUcmFpbGVyPW51bGwhPT1uLnRyYWlsZXI7Zmx1c2godCk7Y29uc3Qgcj10O3Q9MS8wO2lmKGEgaW5zdGFuY2VvZiBQYWdlQXJlYSlvPWE7ZWxzZSBpZihhIGluc3RhbmNlb2YgQ29udGVudEFyZWEpe2NvbnN0IGU9cy5pbmRleE9mKGEpO2lmKC0xIT09ZSllPnI/dD1lLTE6dT1lO2Vsc2V7bz1hW21pXSgpO3U9by5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKGEpfX1jb250aW51ZX1mbHVzaCh0KX10aGlzW0pyXS5wYWdlTnVtYmVyKz0xO28mJihvW0lpXSgpP29bSnJdLm51bWJlck9mVXNlKz0xOm89bnVsbCk7YT1vfHxhW2hpXSgpO3lpZWxkIG51bGx9fX1jbGFzcyBUZXh0IGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywidGV4dCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5tYXhDaGFycz1nZXRJbnRlZ2VyKHtkYXRhOmUubWF4Q2hhcnMsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+ZT49MH0pO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucmlkPWUucmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W05yXSgpe3JldHVybiEwfVtCaV0oZSl7aWYoZVtUaV09PT1uby54aHRtbC5pZCl7dGhpc1tWcl09ZTtyZXR1cm4hMH13YXJuKGBYRkEgLSBJbnZhbGlkIGNvbnRlbnQgaW4gVGV4dDogJHtlW0hpXX0uYCk7cmV0dXJuITF9W0RpXShlKXt0aGlzW1ZyXWluc3RhbmNlb2YgWEZBT2JqZWN0fHxzdXBlcltEaV0oZSl9W1FyXSgpeyJzdHJpbmciPT10eXBlb2YgdGhpc1tWcl0mJih0aGlzW1ZyXT10aGlzW1ZyXS5yZXBsYWNlQWxsKCJcclxuIiwiXG4iKSl9W29pXSgpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdGhpc1tWcl0/dGhpc1tWcl0uc3BsaXQoL1tcdTIwMjlcdTIwMjhcbl0vKS5maWx0ZXIoZT0+ISFlKS5qb2luKCJcbiIpOnRoaXNbVnJdWyRpXSgpfVtKaV0oZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0aGlzW1ZyXSl7Y29uc3QgZT12YWx1ZVRvSHRtbCh0aGlzW1ZyXSkuaHRtbDtpZih0aGlzW1ZyXS5pbmNsdWRlcygiXHUyMDI5Iikpe2UubmFtZT0iZGl2IjtlLmNoaWxkcmVuPVtdO3RoaXNbVnJdLnNwbGl0KCJcdTIwMjkiKS5tYXAoZT0+ZS5zcGxpdCgvW1x1MjAyOFxuXS8pLmZsYXRNYXAoZT0+W3tuYW1lOiJzcGFuIix2YWx1ZTplfSx7bmFtZToiYnIifV0pKS5mb3JFYWNoKHQ9PntlLmNoaWxkcmVuLnB1c2goe25hbWU6InAiLGNoaWxkcmVuOnR9KX0pfWVsc2UgaWYoL1tcdTIwMjhcbl0vLnRlc3QodGhpc1tWcl0pKXtlLm5hbWU9ImRpdiI7ZS5jaGlsZHJlbj1bXTt0aGlzW1ZyXS5zcGxpdCgvW1x1MjAyOFxuXS8pLmZvckVhY2godD0+e2UuY2hpbGRyZW4ucHVzaCh7bmFtZToic3BhbiIsdmFsdWU6dH0se25hbWU6ImJyIn0pfSl9cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhlKX1yZXR1cm4gdGhpc1tWcl1bSmldKGUpfX1jbGFzcyBUZXh0RWRpdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywidGV4dEVkaXQiLCEwKTt0aGlzLmFsbG93UmljaFRleHQ9Z2V0SW50ZWdlcih7ZGF0YTplLmFsbG93UmljaFRleHQsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmhTY3JvbGxQb2xpY3k9Z2V0U3RyaW5nT3B0aW9uKGUuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubXVsdGlMaW5lPWdldEludGVnZXIoe2RhdGE6ZS5tdWx0aUxpbmUsZGVmYXVsdFZhbHVlOiIiLHZhbGlkYXRlOmU9PjA9PT1lfHwxPT09ZX0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnZTY3JvbGxQb2xpY3k9Z2V0U3RyaW5nT3B0aW9uKGUudlNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKTt0aGlzLmJvcmRlcj1udWxsO3RoaXMuY29tYj1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5tYXJnaW49bnVsbH1bSmldKGUpe2NvbnN0IHQ9dG9TdHlsZSh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIik7bGV0IG47Y29uc3QgYT10aGlzW21pXSgpW21pXSgpOyIiPT09dGhpcy5tdWx0aUxpbmUmJih0aGlzLm11bHRpTGluZT1hIGluc3RhbmNlb2YgRHJhdz8xOjApO249MT09PXRoaXMubXVsdGlMaW5lP3tuYW1lOiJ0ZXh0YXJlYSIsYXR0cmlidXRlczp7ZGF0YUlkOmFbJHJdPy5bZW9dfHxhW2VvXSxmaWVsZElkOmFbZW9dLGNsYXNzOlsieGZhVGV4dGZpZWxkIl0sc3R5bGU6dCwiYXJpYS1sYWJlbCI6YXJpYUxhYmVsKGEpLCJhcmlhLXJlcXVpcmVkIjohMX19OntuYW1lOiJpbnB1dCIsYXR0cmlidXRlczp7dHlwZToidGV4dCIsZGF0YUlkOmFbJHJdPy5bZW9dfHxhW2VvXSxmaWVsZElkOmFbZW9dLGNsYXNzOlsieGZhVGV4dGZpZWxkIl0sc3R5bGU6dCwiYXJpYS1sYWJlbCI6YXJpYUxhYmVsKGEpLCJhcmlhLXJlcXVpcmVkIjohMX19O2lmKGlzUmVxdWlyZWQoYSkpe24uYXR0cmlidXRlc1siYXJpYS1yZXF1aXJlZCJdPSEwO24uYXR0cmlidXRlcy5yZXF1aXJlZD0hMH1yZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbbl19KX19Y2xhc3MgVGltZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywidGltZSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtRcl0oKXtjb25zdCBlPXRoaXNbVnJdLnRyaW0oKTt0aGlzW1ZyXT1lP25ldyBEYXRlKGUpOm51bGx9W0ppXShlKXtyZXR1cm4gdmFsdWVUb0h0bWwodGhpc1tWcl0/dGhpc1tWcl0udG9TdHJpbmcoKToiIil9fWNsYXNzIFRpbWVTdGFtcCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywidGltZVN0YW1wIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnNlcnZlcj1lLnNlcnZlcnx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgVG9vbFRpcCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywidG9vbFRpcCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5yaWQ9ZS5yaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgVHJhdmVyc2FsIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJ0cmF2ZXJzYWwiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMudHJhdmVyc2U9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBUcmF2ZXJzZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywidHJhdmVyc2UiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMub3BlcmF0aW9uPWdldFN0cmluZ09wdGlvbihlLm9wZXJhdGlvbixbIm5leHQiLCJiYWNrIiwiZG93biIsImZpcnN0IiwibGVmdCIsInJpZ2h0IiwidXAiXSk7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMuc2NyaXB0PW51bGx9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5vcGVyYXRpb259W0NpXSgpe3JldHVybiExfX1jbGFzcyBVaSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywidWkiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMucGljdHVyZT1udWxsO3RoaXMuYmFyY29kZT1udWxsO3RoaXMuYnV0dG9uPW51bGw7dGhpcy5jaGVja0J1dHRvbj1udWxsO3RoaXMuY2hvaWNlTGlzdD1udWxsO3RoaXMuZGF0ZVRpbWVFZGl0PW51bGw7dGhpcy5kZWZhdWx0VWk9bnVsbDt0aGlzLmltYWdlRWRpdD1udWxsO3RoaXMubnVtZXJpY0VkaXQ9bnVsbDt0aGlzLnBhc3N3b3JkRWRpdD1udWxsO3RoaXMuc2lnbmF0dXJlPW51bGw7dGhpcy50ZXh0RWRpdD1udWxsfVtvaV0oKXtpZih2b2lkIDA9PT10aGlzW0pyXSl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKCJleHRyYXMiPT09ZXx8InBpY3R1cmUiPT09ZSljb250aW51ZTtjb25zdCB0PXRoaXNbZV07aWYodCBpbnN0YW5jZW9mIFhGQU9iamVjdCl7dGhpc1tKcl09dDtyZXR1cm4gdH19dGhpc1tKcl09bnVsbH1yZXR1cm4gdGhpc1tKcl19W0ppXShlKXtjb25zdCB0PXRoaXNbb2ldKCk7cmV0dXJuIHQ/dFtKaV0oZSk6SFRNTFJlc3VsdC5FTVBUWX19Y2xhc3MgVmFsaWRhdGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW8sInZhbGlkYXRlIiwhMCk7dGhpcy5mb3JtYXRUZXN0PWdldFN0cmluZ09wdGlvbihlLmZvcm1hdFRlc3QsWyJ3YXJuaW5nIiwiZGlzYWJsZWQiLCJlcnJvciJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubnVsbFRlc3Q9Z2V0U3RyaW5nT3B0aW9uKGUubnVsbFRlc3QsWyJkaXNhYmxlZCIsImVycm9yIiwid2FybmluZyJdKTt0aGlzLnNjcmlwdFRlc3Q9Z2V0U3RyaW5nT3B0aW9uKGUuc2NyaXB0VGVzdCxbImVycm9yIiwiZGlzYWJsZWQiLCJ3YXJuaW5nIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWVzc2FnZT1udWxsO3RoaXMucGljdHVyZT1udWxsO3RoaXMuc2NyaXB0PW51bGx9fWNsYXNzIFZhbHVlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1vLCJ2YWx1ZSIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5vdmVycmlkZT1nZXRJbnRlZ2VyKHtkYXRhOmUub3ZlcnJpZGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmFyYz1udWxsO3RoaXMuYm9vbGVhbj1udWxsO3RoaXMuZGF0ZT1udWxsO3RoaXMuZGF0ZVRpbWU9bnVsbDt0aGlzLmRlY2ltYWw9bnVsbDt0aGlzLmV4RGF0YT1udWxsO3RoaXMuZmxvYXQ9bnVsbDt0aGlzLmltYWdlPW51bGw7dGhpcy5pbnRlZ2VyPW51bGw7dGhpcy5saW5lPW51bGw7dGhpcy5yZWN0YW5nbGU9bnVsbDt0aGlzLnRleHQ9bnVsbDt0aGlzLnRpbWU9bnVsbH1bR2ldKGUpe2NvbnN0IHQ9dGhpc1ttaV0oKTtpZih0IGluc3RhbmNlb2YgRmllbGQmJnQudWk/LmltYWdlRWRpdCl7aWYoIXRoaXMuaW1hZ2Upe3RoaXMuaW1hZ2U9bmV3IEltYWdlKHt9KTt0aGlzW0xyXSh0aGlzLmltYWdlKX10aGlzLmltYWdlW1ZyXT1lW1ZyXTtyZXR1cm59Y29uc3Qgbj1lW0hpXTtpZihudWxsPT09dGhpc1tuXSl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2NvbnN0IHQ9dGhpc1tlXTtpZih0IGluc3RhbmNlb2YgWEZBT2JqZWN0KXt0aGlzW2VdPW51bGw7dGhpc1tOaV0odCl9fXRoaXNbZVtIaV1dPWU7dGhpc1tMcl0oZSl9ZWxzZSB0aGlzW25dW1ZyXT1lW1ZyXX1bJGldKCl7aWYodGhpcy5leERhdGEpcmV0dXJuInN0cmluZyI9PXR5cGVvZiB0aGlzLmV4RGF0YVtWcl0/dGhpcy5leERhdGFbVnJdLnRyaW0oKTp0aGlzLmV4RGF0YVtWcl1bJGldKCkudHJpbSgpO2Zvcihjb25zdCBlIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtpZigiaW1hZ2UiPT09ZSljb250aW51ZTtjb25zdCB0PXRoaXNbZV07aWYodCBpbnN0YW5jZW9mIFhGQU9iamVjdClyZXR1cm4odFtWcl18fCIiKS50b1N0cmluZygpLnRyaW0oKX1yZXR1cm4gbnVsbH1bSmldKGUpe2Zvcihjb25zdCB0IG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtjb25zdCBuPXRoaXNbdF07aWYobiBpbnN0YW5jZW9mIFhGQU9iamVjdClyZXR1cm4gbltKaV0oZSl9cmV0dXJuIEhUTUxSZXN1bHQuRU1QVFl9fWNsYXNzIFZhcmlhYmxlcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbywidmFyaWFibGVzIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib29sZWFuPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGVjaW1hbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leERhdGE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmxvYXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW50ZWdlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tYW5pZmVzdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zY3JpcHQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheX1bQ2ldKCl7cmV0dXJuITB9fWNsYXNzIFRlbXBsYXRlTmFtZXNwYWNle3N0YXRpY1t0b10oZSx0KXtpZihUZW1wbGF0ZU5hbWVzcGFjZS5oYXNPd25Qcm9wZXJ0eShlKSl7Y29uc3Qgbj1UZW1wbGF0ZU5hbWVzcGFjZVtlXSh0KTtuW0tpXSh0KTtyZXR1cm4gbn19c3RhdGljIGFwcGVhcmFuY2VGaWx0ZXIoZSl7cmV0dXJuIG5ldyBBcHBlYXJhbmNlRmlsdGVyKGUpfXN0YXRpYyBhcmMoZSl7cmV0dXJuIG5ldyBBcmMoZSl9c3RhdGljIGFyZWEoZSl7cmV0dXJuIG5ldyBBcmVhKGUpfXN0YXRpYyBhc3Npc3QoZSl7cmV0dXJuIG5ldyBBc3Npc3QoZSl9c3RhdGljIGJhcmNvZGUoZSl7cmV0dXJuIG5ldyBCYXJjb2RlKGUpfXN0YXRpYyBiaW5kKGUpe3JldHVybiBuZXcgQmluZChlKX1zdGF0aWMgYmluZEl0ZW1zKGUpe3JldHVybiBuZXcgQmluZEl0ZW1zKGUpfXN0YXRpYyBib29rZW5kKGUpe3JldHVybiBuZXcgQm9va2VuZChlKX1zdGF0aWMgYm9vbGVhbihlKXtyZXR1cm4gbmV3IEJvb2xlYW5FbGVtZW50KGUpfXN0YXRpYyBib3JkZXIoZSl7cmV0dXJuIG5ldyBCb3JkZXIoZSl9c3RhdGljIGJyZWFrKGUpe3JldHVybiBuZXcgQnJlYWsoZSl9c3RhdGljIGJyZWFrQWZ0ZXIoZSl7cmV0dXJuIG5ldyBCcmVha0FmdGVyKGUpfXN0YXRpYyBicmVha0JlZm9yZShlKXtyZXR1cm4gbmV3IEJyZWFrQmVmb3JlKGUpfXN0YXRpYyBidXR0b24oZSl7cmV0dXJuIG5ldyBCdXR0b24oZSl9c3RhdGljIGNhbGN1bGF0ZShlKXtyZXR1cm4gbmV3IENhbGN1bGF0ZShlKX1zdGF0aWMgY2FwdGlvbihlKXtyZXR1cm4gbmV3IENhcHRpb24oZSl9c3RhdGljIGNlcnRpZmljYXRlKGUpe3JldHVybiBuZXcgQ2VydGlmaWNhdGUoZSl9c3RhdGljIGNlcnRpZmljYXRlcyhlKXtyZXR1cm4gbmV3IENlcnRpZmljYXRlcyhlKX1zdGF0aWMgY2hlY2tCdXR0b24oZSl7cmV0dXJuIG5ldyBDaGVja0J1dHRvbihlKX1zdGF0aWMgY2hvaWNlTGlzdChlKXtyZXR1cm4gbmV3IENob2ljZUxpc3QoZSl9c3RhdGljIGNvbG9yKGUpe3JldHVybiBuZXcgQ29sb3IoZSl9c3RhdGljIGNvbWIoZSl7cmV0dXJuIG5ldyBDb21iKGUpfXN0YXRpYyBjb25uZWN0KGUpe3JldHVybiBuZXcgQ29ubmVjdChlKX1zdGF0aWMgY29udGVudEFyZWEoZSl7cmV0dXJuIG5ldyBDb250ZW50QXJlYShlKX1zdGF0aWMgY29ybmVyKGUpe3JldHVybiBuZXcgQ29ybmVyKGUpfXN0YXRpYyBkYXRlKGUpe3JldHVybiBuZXcgRGF0ZUVsZW1lbnQoZSl9c3RhdGljIGRhdGVUaW1lKGUpe3JldHVybiBuZXcgRGF0ZVRpbWUoZSl9c3RhdGljIGRhdGVUaW1lRWRpdChlKXtyZXR1cm4gbmV3IERhdGVUaW1lRWRpdChlKX1zdGF0aWMgZGVjaW1hbChlKXtyZXR1cm4gbmV3IERlY2ltYWwoZSl9c3RhdGljIGRlZmF1bHRVaShlKXtyZXR1cm4gbmV3IERlZmF1bHRVaShlKX1zdGF0aWMgZGVzYyhlKXtyZXR1cm4gbmV3IERlc2MoZSl9c3RhdGljIGRpZ2VzdE1ldGhvZChlKXtyZXR1cm4gbmV3IERpZ2VzdE1ldGhvZChlKX1zdGF0aWMgZGlnZXN0TWV0aG9kcyhlKXtyZXR1cm4gbmV3IERpZ2VzdE1ldGhvZHMoZSl9c3RhdGljIGRyYXcoZSl7cmV0dXJuIG5ldyBEcmF3KGUpfXN0YXRpYyBlZGdlKGUpe3JldHVybiBuZXcgRWRnZShlKX1zdGF0aWMgZW5jb2RpbmcoZSl7cmV0dXJuIG5ldyBFbmNvZGluZyhlKX1zdGF0aWMgZW5jb2RpbmdzKGUpe3JldHVybiBuZXcgRW5jb2RpbmdzKGUpfXN0YXRpYyBlbmNyeXB0KGUpe3JldHVybiBuZXcgRW5jcnlwdChlKX1zdGF0aWMgZW5jcnlwdERhdGEoZSl7cmV0dXJuIG5ldyBFbmNyeXB0RGF0YShlKX1zdGF0aWMgZW5jcnlwdGlvbihlKXtyZXR1cm4gbmV3IEVuY3J5cHRpb24oZSl9c3RhdGljIGVuY3J5cHRpb25NZXRob2QoZSl7cmV0dXJuIG5ldyBFbmNyeXB0aW9uTWV0aG9kKGUpfXN0YXRpYyBlbmNyeXB0aW9uTWV0aG9kcyhlKXtyZXR1cm4gbmV3IEVuY3J5cHRpb25NZXRob2RzKGUpfXN0YXRpYyBldmVudChlKXtyZXR1cm4gbmV3IEV2ZW50KGUpfXN0YXRpYyBleERhdGEoZSl7cmV0dXJuIG5ldyBFeERhdGEoZSl9c3RhdGljIGV4T2JqZWN0KGUpe3JldHVybiBuZXcgRXhPYmplY3QoZSl9c3RhdGljIGV4Y2xHcm91cChlKXtyZXR1cm4gbmV3IEV4Y2xHcm91cChlKX1zdGF0aWMgZXhlY3V0ZShlKXtyZXR1cm4gbmV3IEV4ZWN1dGUoZSl9c3RhdGljIGV4dHJhcyhlKXtyZXR1cm4gbmV3IEV4dHJhcyhlKX1zdGF0aWMgZmllbGQoZSl7cmV0dXJuIG5ldyBGaWVsZChlKX1zdGF0aWMgZmlsbChlKXtyZXR1cm4gbmV3IEZpbGwoZSl9c3RhdGljIGZpbHRlcihlKXtyZXR1cm4gbmV3IEZpbHRlcihlKX1zdGF0aWMgZmxvYXQoZSl7cmV0dXJuIG5ldyBGbG9hdChlKX1zdGF0aWMgZm9udChlKXtyZXR1cm4gbmV3IHRlbXBsYXRlX0ZvbnQoZSl9c3RhdGljIGZvcm1hdChlKXtyZXR1cm4gbmV3IEZvcm1hdChlKX1zdGF0aWMgaGFuZGxlcihlKXtyZXR1cm4gbmV3IEhhbmRsZXIoZSl9c3RhdGljIGh5cGhlbmF0aW9uKGUpe3JldHVybiBuZXcgSHlwaGVuYXRpb24oZSl9c3RhdGljIGltYWdlKGUpe3JldHVybiBuZXcgSW1hZ2UoZSl9c3RhdGljIGltYWdlRWRpdChlKXtyZXR1cm4gbmV3IEltYWdlRWRpdChlKX1zdGF0aWMgaW50ZWdlcihlKXtyZXR1cm4gbmV3IEludGVnZXIoZSl9c3RhdGljIGlzc3VlcnMoZSl7cmV0dXJuIG5ldyBJc3N1ZXJzKGUpfXN0YXRpYyBpdGVtcyhlKXtyZXR1cm4gbmV3IEl0ZW1zKGUpfXN0YXRpYyBrZWVwKGUpe3JldHVybiBuZXcgS2VlcChlKX1zdGF0aWMga2V5VXNhZ2UoZSl7cmV0dXJuIG5ldyBLZXlVc2FnZShlKX1zdGF0aWMgbGluZShlKXtyZXR1cm4gbmV3IExpbmUoZSl9c3RhdGljIGxpbmVhcihlKXtyZXR1cm4gbmV3IExpbmVhcihlKX1zdGF0aWMgbG9ja0RvY3VtZW50KGUpe3JldHVybiBuZXcgTG9ja0RvY3VtZW50KGUpfXN0YXRpYyBtYW5pZmVzdChlKXtyZXR1cm4gbmV3IE1hbmlmZXN0KGUpfXN0YXRpYyBtYXJnaW4oZSl7cmV0dXJuIG5ldyBNYXJnaW4oZSl9c3RhdGljIG1kcChlKXtyZXR1cm4gbmV3IE1kcChlKX1zdGF0aWMgbWVkaXVtKGUpe3JldHVybiBuZXcgTWVkaXVtKGUpfXN0YXRpYyBtZXNzYWdlKGUpe3JldHVybiBuZXcgTWVzc2FnZShlKX1zdGF0aWMgbnVtZXJpY0VkaXQoZSl7cmV0dXJuIG5ldyBOdW1lcmljRWRpdChlKX1zdGF0aWMgb2NjdXIoZSl7cmV0dXJuIG5ldyBPY2N1cihlKX1zdGF0aWMgb2lkKGUpe3JldHVybiBuZXcgT2lkKGUpfXN0YXRpYyBvaWRzKGUpe3JldHVybiBuZXcgT2lkcyhlKX1zdGF0aWMgb3ZlcmZsb3coZSl7cmV0dXJuIG5ldyBPdmVyZmxvdyhlKX1zdGF0aWMgcGFnZUFyZWEoZSl7cmV0dXJuIG5ldyBQYWdlQXJlYShlKX1zdGF0aWMgcGFnZVNldChlKXtyZXR1cm4gbmV3IFBhZ2VTZXQoZSl9c3RhdGljIHBhcmEoZSl7cmV0dXJuIG5ldyBQYXJhKGUpfXN0YXRpYyBwYXNzd29yZEVkaXQoZSl7cmV0dXJuIG5ldyBQYXNzd29yZEVkaXQoZSl9c3RhdGljIHBhdHRlcm4oZSl7cmV0dXJuIG5ldyB0ZW1wbGF0ZV9QYXR0ZXJuKGUpfXN0YXRpYyBwaWN0dXJlKGUpe3JldHVybiBuZXcgUGljdHVyZShlKX1zdGF0aWMgcHJvdG8oZSl7cmV0dXJuIG5ldyBQcm90byhlKX1zdGF0aWMgcmFkaWFsKGUpe3JldHVybiBuZXcgUmFkaWFsKGUpfXN0YXRpYyByZWFzb24oZSl7cmV0dXJuIG5ldyBSZWFzb24oZSl9c3RhdGljIHJlYXNvbnMoZSl7cmV0dXJuIG5ldyBSZWFzb25zKGUpfXN0YXRpYyByZWN0YW5nbGUoZSl7cmV0dXJuIG5ldyBSZWN0YW5nbGUoZSl9c3RhdGljIHJlZihlKXtyZXR1cm4gbmV3IFJlZkVsZW1lbnQoZSl9c3RhdGljIHNjcmlwdChlKXtyZXR1cm4gbmV3IFNjcmlwdChlKX1zdGF0aWMgc2V0UHJvcGVydHkoZSl7cmV0dXJuIG5ldyBTZXRQcm9wZXJ0eShlKX1zdGF0aWMgc2lnbkRhdGEoZSl7cmV0dXJuIG5ldyBTaWduRGF0YShlKX1zdGF0aWMgc2lnbmF0dXJlKGUpe3JldHVybiBuZXcgU2lnbmF0dXJlKGUpfXN0YXRpYyBzaWduaW5nKGUpe3JldHVybiBuZXcgU2lnbmluZyhlKX1zdGF0aWMgc29saWQoZSl7cmV0dXJuIG5ldyBTb2xpZChlKX1zdGF0aWMgc3BlYWsoZSl7cmV0dXJuIG5ldyBTcGVhayhlKX1zdGF0aWMgc3RpcHBsZShlKXtyZXR1cm4gbmV3IFN0aXBwbGUoZSl9c3RhdGljIHN1YmZvcm0oZSl7cmV0dXJuIG5ldyBTdWJmb3JtKGUpfXN0YXRpYyBzdWJmb3JtU2V0KGUpe3JldHVybiBuZXcgU3ViZm9ybVNldChlKX1zdGF0aWMgc3ViamVjdEROKGUpe3JldHVybiBuZXcgU3ViamVjdEROKGUpfXN0YXRpYyBzdWJqZWN0RE5zKGUpe3JldHVybiBuZXcgU3ViamVjdEROcyhlKX1zdGF0aWMgc3VibWl0KGUpe3JldHVybiBuZXcgU3VibWl0KGUpfXN0YXRpYyB0ZW1wbGF0ZShlKXtyZXR1cm4gbmV3IFRlbXBsYXRlKGUpfXN0YXRpYyB0ZXh0KGUpe3JldHVybiBuZXcgVGV4dChlKX1zdGF0aWMgdGV4dEVkaXQoZSl7cmV0dXJuIG5ldyBUZXh0RWRpdChlKX1zdGF0aWMgdGltZShlKXtyZXR1cm4gbmV3IFRpbWUoZSl9c3RhdGljIHRpbWVTdGFtcChlKXtyZXR1cm4gbmV3IFRpbWVTdGFtcChlKX1zdGF0aWMgdG9vbFRpcChlKXtyZXR1cm4gbmV3IFRvb2xUaXAoZSl9c3RhdGljIHRyYXZlcnNhbChlKXtyZXR1cm4gbmV3IFRyYXZlcnNhbChlKX1zdGF0aWMgdHJhdmVyc2UoZSl7cmV0dXJuIG5ldyBUcmF2ZXJzZShlKX1zdGF0aWMgdWkoZSl7cmV0dXJuIG5ldyBVaShlKX1zdGF0aWMgdmFsaWRhdGUoZSl7cmV0dXJuIG5ldyBWYWxpZGF0ZShlKX1zdGF0aWMgdmFsdWUoZSl7cmV0dXJuIG5ldyBWYWx1ZShlKX1zdGF0aWMgdmFyaWFibGVzKGUpe3JldHVybiBuZXcgVmFyaWFibGVzKGUpfX1jb25zdCBMbz1uby5kYXRhc2V0cy5pZDtmdW5jdGlvbiBjcmVhdGVUZXh0KGUpe2NvbnN0IHQ9bmV3IFRleHQoe30pO3RbVnJdPWU7cmV0dXJuIHR9Y2xhc3MgQmluZGVye2NvbnN0cnVjdG9yKGUpe3RoaXMucm9vdD1lO3RoaXMuZGF0YXNldHM9ZS5kYXRhc2V0czt0aGlzLmRhdGE9ZS5kYXRhc2V0cz8uZGF0YXx8bmV3IFhtbE9iamVjdChuby5kYXRhc2V0cy5pZCwiZGF0YSIpO3RoaXMuZW1wdHlNZXJnZT0wPT09dGhpcy5kYXRhW2ZpXSgpLmxlbmd0aDt0aGlzLnJvb3QuZm9ybT10aGlzLmZvcm09ZS50ZW1wbGF0ZVtLcl0oKX1faXNDb25zdW1lRGF0YSgpe3JldHVybiF0aGlzLmVtcHR5TWVyZ2UmJnRoaXMuX21lcmdlTW9kZX1faXNNYXRjaFRlbXBsYXRlKCl7cmV0dXJuIXRoaXMuX2lzQ29uc3VtZURhdGEoKX1iaW5kKCl7dGhpcy5fYmluZEVsZW1lbnQodGhpcy5mb3JtLHRoaXMuZGF0YSk7cmV0dXJuIHRoaXMuZm9ybX1nZXREYXRhKCl7cmV0dXJuIHRoaXMuZGF0YX1fYmluZFZhbHVlKGUsdCxuKXtlWyRyXT10O2lmKGVbZ2ldKCkpaWYodFtxaV0oKSl7Y29uc3Qgbj10W2lpXSgpO2VbR2ldKGNyZWF0ZVRleHQobikpfWVsc2UgaWYoZSBpbnN0YW5jZW9mIEZpZWxkJiYibXVsdGlTZWxlY3QiPT09ZS51aT8uY2hvaWNlTGlzdD8ub3Blbil7Y29uc3Qgbj10W2ZpXSgpLm1hcChlPT5lW1ZyXS50cmltKCkpLmpvaW4oIlxuIik7ZVtHaV0oY3JlYXRlVGV4dChuKSl9ZWxzZSB0aGlzLl9pc0NvbnN1bWVEYXRhKCkmJndhcm4oIlhGQSAtIE5vZGVzIGhhdmVuJ3QgdGhlIHNhbWUgdHlwZS4iKTtlbHNlIXRbcWldKCl8fHRoaXMuX2lzTWF0Y2hUZW1wbGF0ZSgpP3RoaXMuX2JpbmRFbGVtZW50KGUsdCk6d2FybigiWEZBIC0gTm9kZXMgaGF2ZW4ndCB0aGUgc2FtZSB0eXBlLiIpfV9maW5kRGF0YUJ5TmFtZVRvQ29uc3VtZShlLHQsbixhKXtpZighZSlyZXR1cm4gbnVsbDtsZXQgcyxyO2ZvcihsZXQgYT0wO2E8MzthKyspe3M9bltsaV0oZSwhMSwhMCk7Zm9yKDs7KXtyPXMubmV4dCgpLnZhbHVlO2lmKCFyKWJyZWFrO2lmKHQ9PT1yW3FpXSgpKXJldHVybiByfWlmKG5bVGldPT09bm8uZGF0YXNldHMuaWQmJiJkYXRhIj09PW5bSGldKWJyZWFrO249blttaV0oKX1pZighYSlyZXR1cm4gbnVsbDtzPXRoaXMuZGF0YVtsaV0oZSwhMCwhMSk7cj1zLm5leHQoKS52YWx1ZTtpZihyKXJldHVybiByO3M9dGhpcy5kYXRhW2VpXShlLCEwKTtyPXMubmV4dCgpLnZhbHVlO3JldHVybiByPy5bcWldKCk/cjpudWxsfV9zZXRQcm9wZXJ0aWVzKGUsdCl7aWYoZS5oYXNPd25Qcm9wZXJ0eSgic2V0UHJvcGVydHkiKSlmb3IoY29uc3R7cmVmOm4sdGFyZ2V0OmEsY29ubmVjdGlvbjpzfW9mIGUuc2V0UHJvcGVydHkuY2hpbGRyZW4pe2lmKHMpY29udGludWU7aWYoIW4pY29udGludWU7Y29uc3Qgcj1zZWFyY2hOb2RlKHRoaXMucm9vdCx0LG4sITEsITEpO2lmKCFyKXt3YXJuKGBYRkEgLSBJbnZhbGlkIHJlZmVyZW5jZTogJHtufS5gKTtjb250aW51ZX1jb25zdFtpXT1yO2lmKCFpW3ZpXSh0aGlzLmRhdGEpKXt3YXJuKCJYRkEgLSBJbnZhbGlkIG5vZGU6IG11c3QgYmUgYSBkYXRhIG5vZGUuIik7Y29udGludWV9Y29uc3Qgbz1zZWFyY2hOb2RlKHRoaXMucm9vdCxlLGEsITEsITEpO2lmKCFvKXt3YXJuKGBYRkEgLSBJbnZhbGlkIHRhcmdldDogJHthfS5gKTtjb250aW51ZX1jb25zdFtsXT1vO2lmKCFsW3ZpXShlKSl7d2FybigiWEZBIC0gSW52YWxpZCB0YXJnZXQ6IG11c3QgYmUgYSBwcm9wZXJ0eSBvciBzdWJwcm9wZXJ0eS4iKTtjb250aW51ZX1jb25zdCBmPWxbbWldKCk7aWYobCBpbnN0YW5jZW9mIFNldFByb3BlcnR5fHxmIGluc3RhbmNlb2YgU2V0UHJvcGVydHkpe3dhcm4oIlhGQSAtIEludmFsaWQgdGFyZ2V0OiBjYW5ub3QgYmUgYSBzZXRQcm9wZXJ0eSBvciBvbmUgb2YgaXRzIHByb3BlcnRpZXMuIik7Y29udGludWV9aWYobCBpbnN0YW5jZW9mIEJpbmRJdGVtc3x8ZiBpbnN0YW5jZW9mIEJpbmRJdGVtcyl7d2FybigiWEZBIC0gSW52YWxpZCB0YXJnZXQ6IGNhbm5vdCBiZSBhIGJpbmRJdGVtcyBvciBvbmUgb2YgaXRzIHByb3BlcnRpZXMuIik7Y29udGludWV9Y29uc3QgYz1pWyRpXSgpLGg9bFtIaV07aWYobCBpbnN0YW5jZW9mIFhGQUF0dHJpYnV0ZSl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKG51bGwpO2VbaF09Yztjb25zdCB0PVJlZmxlY3QuY29uc3RydWN0KE9iamVjdC5nZXRQcm90b3R5cGVPZihmKS5jb25zdHJ1Y3RvcixbZV0pO2ZbaF09dFtoXTtjb250aW51ZX1pZihsLmhhc093blByb3BlcnR5KFZyKSl7bFskcl09aTtsW1ZyXT1jO2xbUXJdKCl9ZWxzZSB3YXJuKCJYRkEgLSBJbnZhbGlkIG5vZGUgdG8gdXNlIGluIHNldFByb3BlcnR5Iil9fV9iaW5kSXRlbXMoZSx0KXtpZighZS5oYXNPd25Qcm9wZXJ0eSgiaXRlbXMiKXx8IWUuaGFzT3duUHJvcGVydHkoImJpbmRJdGVtcyIpfHxlLmJpbmRJdGVtcy5pc0VtcHR5KCkpcmV0dXJuO2Zvcihjb25zdCB0IG9mIGUuaXRlbXMuY2hpbGRyZW4pZVtOaV0odCk7ZS5pdGVtcy5jbGVhcigpO2NvbnN0IG49bmV3IEl0ZW1zKHt9KSxhPW5ldyBJdGVtcyh7fSk7ZVtMcl0obik7ZS5pdGVtcy5wdXNoKG4pO2VbTHJdKGEpO2UuaXRlbXMucHVzaChhKTtmb3IoY29uc3R7cmVmOnMsbGFiZWxSZWY6cix2YWx1ZVJlZjppLGNvbm5lY3Rpb246b31vZiBlLmJpbmRJdGVtcy5jaGlsZHJlbil7aWYobyljb250aW51ZTtpZighcyljb250aW51ZTtjb25zdCBlPXNlYXJjaE5vZGUodGhpcy5yb290LHQscywhMSwhMSk7aWYoZSlmb3IoY29uc3QgdCBvZiBlKXtpZighdFt2aV0odGhpcy5kYXRhc2V0cykpe3dhcm4oYFhGQSAtIEludmFsaWQgcmVmICgke3N9KTogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLmApO2NvbnRpbnVlfWNvbnN0IGU9c2VhcmNoTm9kZSh0aGlzLnJvb3QsdCxyLCEwLCExKTtpZighZSl7d2FybihgWEZBIC0gSW52YWxpZCBsYWJlbDogJHtyfS5gKTtjb250aW51ZX1jb25zdFtvXT1lO2lmKCFvW3ZpXSh0aGlzLmRhdGFzZXRzKSl7d2FybigiWEZBIC0gSW52YWxpZCBsYWJlbDogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLiIpO2NvbnRpbnVlfWNvbnN0IGw9c2VhcmNoTm9kZSh0aGlzLnJvb3QsdCxpLCEwLCExKTtpZighbCl7d2FybihgWEZBIC0gSW52YWxpZCB2YWx1ZTogJHtpfS5gKTtjb250aW51ZX1jb25zdFtmXT1sO2lmKCFmW3ZpXSh0aGlzLmRhdGFzZXRzKSl7d2FybigiWEZBIC0gSW52YWxpZCB2YWx1ZTogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLiIpO2NvbnRpbnVlfWNvbnN0IGM9Y3JlYXRlVGV4dChvWyRpXSgpKSxoPWNyZWF0ZVRleHQoZlskaV0oKSk7bltMcl0oYyk7bi50ZXh0LnB1c2goYyk7YVtMcl0oaCk7YS50ZXh0LnB1c2goaCl9ZWxzZSB3YXJuKGBYRkEgLSBJbnZhbGlkIHJlZmVyZW5jZTogJHtzfS5gKX19X2JpbmRPY2N1cnJlbmNlcyhlLHQsbil7bGV0IGE7aWYodC5sZW5ndGg+MSl7YT1lW0tyXSgpO2FbTmldKGEub2NjdXIpO2Eub2NjdXI9bnVsbH10aGlzLl9iaW5kVmFsdWUoZSx0WzBdLG4pO3RoaXMuX3NldFByb3BlcnRpZXMoZSx0WzBdKTt0aGlzLl9iaW5kSXRlbXMoZSx0WzBdKTtpZigxPT09dC5sZW5ndGgpcmV0dXJuO2NvbnN0IHM9ZVttaV0oKSxyPWVbSGldLGk9c1t3aV0oZSk7Zm9yKGxldCBlPTEsbz10Lmxlbmd0aDtlPG87ZSsrKXtjb25zdCBvPXRbZV0sbD1hW0tyXSgpO3Nbcl0ucHVzaChsKTtzW2ppXShpK2UsbCk7dGhpcy5fYmluZFZhbHVlKGwsbyxuKTt0aGlzLl9zZXRQcm9wZXJ0aWVzKGwsbyk7dGhpcy5fYmluZEl0ZW1zKGwsbyl9fV9jcmVhdGVPY2N1cnJlbmNlcyhlKXtpZighdGhpcy5lbXB0eU1lcmdlKXJldHVybjtjb25zdHtvY2N1cjp0fT1lO2lmKCF0fHx0LmluaXRpYWw8PTEpcmV0dXJuO2NvbnN0IG49ZVttaV0oKSxhPWVbSGldO2lmKCEoblthXWluc3RhbmNlb2YgWEZBT2JqZWN0QXJyYXkpKXJldHVybjtsZXQgcztzPWUubmFtZT9uW2FdLmNoaWxkcmVuLmZpbHRlcih0PT50Lm5hbWU9PT1lLm5hbWUpLmxlbmd0aDpuW2FdLmNoaWxkcmVuLmxlbmd0aDtjb25zdCByPW5bd2ldKGUpKzEsaT10LmluaXRpYWwtcztpZihpKXtjb25zdCB0PWVbS3JdKCk7dFtOaV0odC5vY2N1cik7dC5vY2N1cj1udWxsO25bYV0ucHVzaCh0KTtuW2ppXShyLHQpO2ZvcihsZXQgZT0xO2U8aTtlKyspe2NvbnN0IHM9dFtLcl0oKTtuW2FdLnB1c2gocyk7bltqaV0ocitlLHMpfX19X2dldE9jY3VySW5mbyhlKXtjb25zdHtuYW1lOnQsb2NjdXI6bn09ZTtpZighbnx8IXQpcmV0dXJuWzEsMV07Y29uc3QgYT0tMT09PW4ubWF4PzEvMDpuLm1heDtyZXR1cm5bbi5taW4sYV19X3NldEFuZEJpbmQoZSx0KXt0aGlzLl9zZXRQcm9wZXJ0aWVzKGUsdCk7dGhpcy5fYmluZEl0ZW1zKGUsdCk7dGhpcy5fYmluZEVsZW1lbnQoZSx0KX1fYmluZEVsZW1lbnQoZSx0KXtjb25zdCBuPVtdO3RoaXMuX2NyZWF0ZU9jY3VycmVuY2VzKGUpO2Zvcihjb25zdCBhIG9mIGVbZmldKCkpe2lmKGFbJHJdKWNvbnRpbnVlO2lmKHZvaWQgMD09PXRoaXMuX21lcmdlTW9kZSYmInN1YmZvcm0iPT09YVtIaV0pe3RoaXMuX21lcmdlTW9kZT0iY29uc3VtZURhdGEiPT09YS5tZXJnZU1vZGU7Y29uc3QgZT10W2ZpXSgpO2lmKGUubGVuZ3RoPjApdGhpcy5fYmluZE9jY3VycmVuY2VzKGEsW2VbMF1dLG51bGwpO2Vsc2UgaWYodGhpcy5lbXB0eU1lcmdlKXtjb25zdCBlPXRbVGldPT09TG8/LTE6dFtUaV0sbj1hWyRyXT1uZXcgWG1sT2JqZWN0KGUsYS5uYW1lfHwicm9vdCIpO3RbTHJdKG4pO3RoaXMuX2JpbmRFbGVtZW50KGEsbil9Y29udGludWV9aWYoIWFbeWldKCkpY29udGludWU7bGV0IGU9ITEscz1udWxsLHI9bnVsbCxpPW51bGw7aWYoYS5iaW5kKXtzd2l0Y2goYS5iaW5kLm1hdGNoKXtjYXNlIm5vbmUiOnRoaXMuX3NldEFuZEJpbmQoYSx0KTtjb250aW51ZTtjYXNlImdsb2JhbCI6ZT0hMDticmVhaztjYXNlImRhdGFSZWYiOmlmKCFhLmJpbmQucmVmKXt3YXJuKGBYRkEgLSByZWYgaXMgZW1wdHkgaW4gbm9kZSAke2FbSGldfS5gKTt0aGlzLl9zZXRBbmRCaW5kKGEsdCk7Y29udGludWV9cj1hLmJpbmQucmVmfWEuYmluZC5waWN0dXJlJiYocz1hLmJpbmQucGljdHVyZVtWcl0pfWNvbnN0W28sbF09dGhpcy5fZ2V0T2NjdXJJbmZvKGEpO2lmKHIpe2k9c2VhcmNoTm9kZSh0aGlzLnJvb3QsdCxyLCEwLCExKTtpZihudWxsPT09aSl7aT1jcmVhdGVEYXRhTm9kZSh0aGlzLmRhdGEsdCxyKTtpZighaSljb250aW51ZTt0aGlzLl9pc0NvbnN1bWVEYXRhKCkmJihpW0dyXT0hMCk7dGhpcy5fc2V0QW5kQmluZChhLGkpO2NvbnRpbnVlfXRoaXMuX2lzQ29uc3VtZURhdGEoKSYmKGk9aS5maWx0ZXIoZT0+IWVbR3JdKSk7aS5sZW5ndGg+bD9pPWkuc2xpY2UoMCxsKTowPT09aS5sZW5ndGgmJihpPW51bGwpO2kmJnRoaXMuX2lzQ29uc3VtZURhdGEoKSYmaS5mb3JFYWNoKGU9PntlW0dyXT0hMH0pfWVsc2V7aWYoIWEubmFtZSl7dGhpcy5fc2V0QW5kQmluZChhLHQpO2NvbnRpbnVlfWlmKHRoaXMuX2lzQ29uc3VtZURhdGEoKSl7Y29uc3Qgbj1bXTtmb3IoO24ubGVuZ3RoPGw7KXtjb25zdCBzPXRoaXMuX2ZpbmREYXRhQnlOYW1lVG9Db25zdW1lKGEubmFtZSxhW2dpXSgpLHQsZSk7aWYoIXMpYnJlYWs7c1tHcl09ITA7bi5wdXNoKHMpfWk9bi5sZW5ndGg+MD9uOm51bGx9ZWxzZXtpPXRbbGldKGEubmFtZSwhMSx0aGlzLmVtcHR5TWVyZ2UpLm5leHQoKS52YWx1ZTtpZighaSl7aWYoMD09PW8pe24ucHVzaChhKTtjb250aW51ZX1jb25zdCBlPXRbVGldPT09TG8/LTE6dFtUaV07aT1hWyRyXT1uZXcgWG1sT2JqZWN0KGUsYS5uYW1lKTt0aGlzLmVtcHR5TWVyZ2UmJihpW0dyXT0hMCk7dFtMcl0oaSk7dGhpcy5fc2V0QW5kQmluZChhLGkpO2NvbnRpbnVlfXRoaXMuZW1wdHlNZXJnZSYmKGlbR3JdPSEwKTtpPVtpXX19aT90aGlzLl9iaW5kT2NjdXJyZW5jZXMoYSxpLHMpOm8+MD90aGlzLl9zZXRBbmRCaW5kKGEsdCk6bi5wdXNoKGEpfW4uZm9yRWFjaChlPT5lW21pXSgpW05pXShlKSl9fWNsYXNzIERhdGFIYW5kbGVye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5kYXRhPXQ7dGhpcy5kYXRhc2V0PWUuZGF0YXNldHN8fG51bGx9c2VyaWFsaXplKGUpe2NvbnN0IHQ9W1stMSx0aGlzLmRhdGFbZmldKCldXTtmb3IoO3QubGVuZ3RoPjA7KXtjb25zdCBuPXQuYXQoLTEpLFthLHNdPW47aWYoYSsxPT09cy5sZW5ndGgpe3QucG9wKCk7Y29udGludWV9Y29uc3Qgcj1zWysrblswXV0saT1lLmdldChyW2VvXSk7aWYoaSlyW0dpXShpKTtlbHNle2NvbnN0IHQ9clt0aV0oKTtmb3IoY29uc3QgbiBvZiB0LnZhbHVlcygpKXtjb25zdCB0PWUuZ2V0KG5bZW9dKTtpZih0KXtuW0dpXSh0KTticmVha319fWNvbnN0IG89cltmaV0oKTtvLmxlbmd0aD4wJiZ0LnB1c2goWy0xLG9dKX1jb25zdCBuPVsnPHhmYTpkYXRhc2V0cyB4bWxuczp4ZmE9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWRhdGEvMS4wLyI+J107aWYodGhpcy5kYXRhc2V0KWZvcihjb25zdCBlIG9mIHRoaXMuZGF0YXNldFtmaV0oKSkiZGF0YSIhPT1lW0hpXSYmZVtRaV0obik7dGhpcy5kYXRhW1FpXShuKTtuLnB1c2goIjwveGZhOmRhdGFzZXRzPiIpO3JldHVybiBuLmpvaW4oIiIpfX1jb25zdCBVbz1uby5jb25maWcuaWQ7Y2xhc3MgQWNyb2JhdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiYWNyb2JhdCIsITApO3RoaXMuYWNyb2JhdDc9bnVsbDt0aGlzLmF1dG9TYXZlPW51bGw7dGhpcy5jb21tb249bnVsbDt0aGlzLnZhbGlkYXRlPW51bGw7dGhpcy52YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcz1udWxsO3RoaXMuc3VibWl0VXJsPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgQWNyb2JhdDcgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImFjcm9iYXQ3IiwhMCk7dGhpcy5keW5hbWljUmVuZGVyPW51bGx9fWNsYXNzIEFEQkVfSlNDb25zb2xlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJBREJFX0pTQ29uc29sZSIsWyJkZWxlZ2F0ZSIsIkVuYWJsZSIsIkRpc2FibGUiXSl9fWNsYXNzIEFEQkVfSlNEZWJ1Z2dlciBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiQURCRV9KU0RlYnVnZ2VyIixbImRlbGVnYXRlIiwiRW5hYmxlIiwiRGlzYWJsZSJdKX19Y2xhc3MgQWRkU2lsZW50UHJpbnQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiYWRkU2lsZW50UHJpbnQiKX19Y2xhc3MgQWRkVmlld2VyUHJlZmVyZW5jZXMgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiYWRkVmlld2VyUHJlZmVyZW5jZXMiKX19Y2xhc3MgQWRqdXN0RGF0YSBleHRlbmRzIE9wdGlvbjEwe2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJhZGp1c3REYXRhIil9fWNsYXNzIEFkb2JlRXh0ZW5zaW9uTGV2ZWwgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJhZG9iZUV4dGVuc2lvbkxldmVsIiwwLGU9PmU+PTEmJmU8PTgpfX1jbGFzcyBBZ2VudCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiYWdlbnQiLCEwKTt0aGlzLm5hbWU9ZS5uYW1lP2UubmFtZS50cmltKCk6IiI7dGhpcy5jb21tb249bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBBbHdheXNFbWJlZCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImFsd2F5c0VtYmVkIil9fWNsYXNzIEFtZCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiYW1kIil9fWNsYXNzIGNvbmZpZ19BcmVhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJhcmVhIik7dGhpcy5sZXZlbD1nZXRJbnRlZ2VyKHtkYXRhOmUubGV2ZWwsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+ZT49MSYmZTw9M30pO3RoaXMubmFtZT1nZXRTdHJpbmdPcHRpb24oZS5uYW1lLFsiIiwiYmFyY29kZSIsImNvcmVpbml0IiwiZGV2aWNlRHJpdmVyIiwiZm9udCIsImdlbmVyYWwiLCJsYXlvdXQiLCJtZXJnZSIsInNjcmlwdCIsInNpZ25hdHVyZSIsInNvdXJjZVNldCIsInRlbXBsYXRlQ2FjaGUiXSl9fWNsYXNzIEF0dHJpYnV0ZXMgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImF0dHJpYnV0ZXMiLFsicHJlc2VydmUiLCJkZWxlZ2F0ZSIsImlnbm9yZSJdKX19Y2xhc3MgQXV0b1NhdmUgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImF1dG9TYXZlIixbImRpc2FibGVkIiwiZW5hYmxlZCJdKX19Y2xhc3MgQmFzZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiYmFzZSIpfX1jbGFzcyBCYXRjaE91dHB1dCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiYmF0Y2hPdXRwdXQiKTt0aGlzLmZvcm1hdD1nZXRTdHJpbmdPcHRpb24oZS5mb3JtYXQsWyJub25lIiwiY29uY2F0IiwiemlwIiwiemlwQ29tcHJlc3MiXSl9fWNsYXNzIEJlaGF2aW9yT3ZlcnJpZGUgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJiZWhhdmlvck92ZXJyaWRlIil9W1FyXSgpe3RoaXNbVnJdPW5ldyBNYXAodGhpc1tWcl0udHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoZT0+ZS5pbmNsdWRlcygiOiIpKS5tYXAoZT0+ZS5zcGxpdCgiOiIsMikpKX19Y2xhc3MgQ2FjaGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImNhY2hlIiwhMCk7dGhpcy50ZW1wbGF0ZUNhY2hlPW51bGx9fWNsYXNzIENoYW5nZSBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJjaGFuZ2UiKX19Y2xhc3MgQ29tbW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJjb21tb24iLCEwKTt0aGlzLmRhdGE9bnVsbDt0aGlzLmxvY2FsZT1udWxsO3RoaXMubG9jYWxlU2V0PW51bGw7dGhpcy5tZXNzYWdpbmc9bnVsbDt0aGlzLnN1cHByZXNzQmFubmVyPW51bGw7dGhpcy50ZW1wbGF0ZT1udWxsO3RoaXMudmFsaWRhdGlvbk1lc3NhZ2luZz1udWxsO3RoaXMudmVyc2lvbkNvbnRyb2w9bnVsbDt0aGlzLmxvZz1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIENvbXByZXNzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJjb21wcmVzcyIpO3RoaXMuc2NvcGU9Z2V0U3RyaW5nT3B0aW9uKGUuc2NvcGUsWyJpbWFnZU9ubHkiLCJkb2N1bWVudCJdKX19Y2xhc3MgQ29tcHJlc3NMb2dpY2FsU3RydWN0dXJlIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImNvbXByZXNzTG9naWNhbFN0cnVjdHVyZSIpfX1jbGFzcyBDb21wcmVzc09iamVjdFN0cmVhbSBleHRlbmRzIE9wdGlvbjEwe2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJjb21wcmVzc09iamVjdFN0cmVhbSIpfX1jbGFzcyBDb21wcmVzc2lvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiY29tcHJlc3Npb24iLCEwKTt0aGlzLmNvbXByZXNzTG9naWNhbFN0cnVjdHVyZT1udWxsO3RoaXMuY29tcHJlc3NPYmplY3RTdHJlYW09bnVsbDt0aGlzLmxldmVsPW51bGw7dGhpcy50eXBlPW51bGx9fWNsYXNzIENvbmZpZyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiY29uZmlnIiwhMCk7dGhpcy5hY3JvYmF0PW51bGw7dGhpcy5wcmVzZW50PW51bGw7dGhpcy50cmFjZT1udWxsO3RoaXMuYWdlbnQ9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBDb25mb3JtYW5jZSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiY29uZm9ybWFuY2UiLFsiQSIsIkIiXSl9fWNsYXNzIENvbnRlbnRDb3B5IGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImNvbnRlbnRDb3B5Iil9fWNsYXNzIENvcGllcyBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImNvcGllcyIsMSxlPT5lPj0xKX19Y2xhc3MgQ3JlYXRvciBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiY3JlYXRvciIpfX1jbGFzcyBDdXJyZW50UGFnZSBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImN1cnJlbnRQYWdlIiwwLGU9PmU+PTApfX1jbGFzcyBEYXRhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJkYXRhIiwhMCk7dGhpcy5hZGp1c3REYXRhPW51bGw7dGhpcy5hdHRyaWJ1dGVzPW51bGw7dGhpcy5pbmNyZW1lbnRhbExvYWQ9bnVsbDt0aGlzLm91dHB1dFhTTD1udWxsO3RoaXMucmFuZ2U9bnVsbDt0aGlzLnJlY29yZD1udWxsO3RoaXMuc3RhcnROb2RlPW51bGw7dGhpcy51cmk9bnVsbDt0aGlzLndpbmRvdz1udWxsO3RoaXMueHNsPW51bGw7dGhpcy5leGNsdWRlTlM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudHJhbnNmb3JtPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRGVidWcgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImRlYnVnIiwhMCk7dGhpcy51cmk9bnVsbH19Y2xhc3MgRGVmYXVsdFR5cGVmYWNlIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiZGVmYXVsdFR5cGVmYWNlIik7dGhpcy53cml0aW5nU2NyaXB0PWdldFN0cmluZ09wdGlvbihlLndyaXRpbmdTY3JpcHQsWyIqIiwiQXJhYmljIiwiQ3lyaWxsaWMiLCJFYXN0RXVyb3BlYW5Sb21hbiIsIkdyZWVrIiwiSGVicmV3IiwiSmFwYW5lc2UiLCJLb3JlYW4iLCJSb21hbiIsIlNpbXBsaWZpZWRDaGluZXNlIiwiVGhhaSIsIlRyYWRpdGlvbmFsQ2hpbmVzZSIsIlZpZXRuYW1lc2UiXSl9fWNsYXNzIERlc3RpbmF0aW9uIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJkZXN0aW5hdGlvbiIsWyJwZGYiLCJwY2wiLCJwcyIsIndlYkNsaWVudCIsInpwbCJdKX19Y2xhc3MgRG9jdW1lbnRBc3NlbWJseSBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJkb2N1bWVudEFzc2VtYmx5Iil9fWNsYXNzIERyaXZlciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiZHJpdmVyIiwhMCk7dGhpcy5uYW1lPWUubmFtZT9lLm5hbWUudHJpbSgpOiIiO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLnhkYz1udWxsfX1jbGFzcyBEdXBsZXhPcHRpb24gZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImR1cGxleE9wdGlvbiIsWyJzaW1wbGV4IiwiZHVwbGV4RmxpcExvbmdFZGdlIiwiZHVwbGV4RmxpcFNob3J0RWRnZSJdKX19Y2xhc3MgRHluYW1pY1JlbmRlciBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiZHluYW1pY1JlbmRlciIsWyJmb3JiaWRkZW4iLCJyZXF1aXJlZCJdKX19Y2xhc3MgRW1iZWQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiZW1iZWQiKX19Y2xhc3MgY29uZmlnX0VuY3J5cHQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiZW5jcnlwdCIpfX1jbGFzcyBjb25maWdfRW5jcnlwdGlvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiZW5jcnlwdGlvbiIsITApO3RoaXMuZW5jcnlwdD1udWxsO3RoaXMuZW5jcnlwdGlvbkxldmVsPW51bGw7dGhpcy5wZXJtaXNzaW9ucz1udWxsfX1jbGFzcyBFbmNyeXB0aW9uTGV2ZWwgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImVuY3J5cHRpb25MZXZlbCIsWyI0MGJpdCIsIjEyOGJpdCJdKX19Y2xhc3MgRW5mb3JjZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiZW5mb3JjZSIpfX1jbGFzcyBFcXVhdGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImVxdWF0ZSIpO3RoaXMuZm9yY2U9Z2V0SW50ZWdlcih7ZGF0YTplLmZvcmNlLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PjA9PT1lfSk7dGhpcy5mcm9tPWUuZnJvbXx8IiI7dGhpcy50bz1lLnRvfHwiIn19Y2xhc3MgRXF1YXRlUmFuZ2UgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImVxdWF0ZVJhbmdlIik7dGhpcy5mcm9tPWUuZnJvbXx8IiI7dGhpcy50bz1lLnRvfHwiIjt0aGlzLl91bmljb2RlUmFuZ2U9ZS51bmljb2RlUmFuZ2V8fCIifWdldCB1bmljb2RlUmFuZ2UoKXtjb25zdCBlPVtdLHQ9L1VcKyhbMC05YS1mQS1GXSspLyxuPXRoaXMuX3VuaWNvZGVSYW5nZTtmb3IobGV0IGEgb2Ygbi5zcGxpdCgiLCIpLm1hcChlPT5lLnRyaW0oKSkuZmlsdGVyKGU9PiEhZSkpe2E9YS5zcGxpdCgiLSIsMikubWFwKGU9Pntjb25zdCBuPWUubWF0Y2godCk7cmV0dXJuIG4/cGFyc2VJbnQoblsxXSwxNik6MH0pOzE9PT1hLmxlbmd0aCYmYS5wdXNoKGFbMF0pO2UucHVzaChhKX1yZXR1cm4gc2hhZG93KHRoaXMsInVuaWNvZGVSYW5nZSIsZSl9fWNsYXNzIEV4Y2x1ZGUgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJleGNsdWRlIil9W1FyXSgpe3RoaXNbVnJdPXRoaXNbVnJdLnRyaW0oKS5zcGxpdCgvXHMrLykuZmlsdGVyKGU9PmUmJlsiY2FsY3VsYXRlIiwiY2xvc2UiLCJlbnRlciIsImV4aXQiLCJpbml0aWFsaXplIiwicmVhZHkiLCJ2YWxpZGF0ZSJdLmluY2x1ZGVzKGUpKX19Y2xhc3MgRXhjbHVkZU5TIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJleGNsdWRlTlMiKX19Y2xhc3MgRmxpcExhYmVsIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJmbGlwTGFiZWwiLFsidXNlUHJpbnRlclNldHRpbmciLCJvbiIsIm9mZiJdKX19Y2xhc3MgY29uZmlnX0ZvbnRJbmZvIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJmb250SW5mbyIsITApO3RoaXMuZW1iZWQ9bnVsbDt0aGlzLm1hcD1udWxsO3RoaXMuc3Vic2V0QmVsb3c9bnVsbDt0aGlzLmFsd2F5c0VtYmVkPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlZmF1bHRUeXBlZmFjZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5uZXZlckVtYmVkPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRm9ybUZpZWxkRmlsbGluZyBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJmb3JtRmllbGRGaWxsaW5nIil9fWNsYXNzIEdyb3VwUGFyZW50IGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJncm91cFBhcmVudCIpfX1jbGFzcyBJZkVtcHR5IGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJpZkVtcHR5IixbImRhdGFWYWx1ZSIsImRhdGFHcm91cCIsImlnbm9yZSIsInJlbW92ZSJdKX19Y2xhc3MgSW5jbHVkZVhEUENvbnRlbnQgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImluY2x1ZGVYRFBDb250ZW50Iil9fWNsYXNzIEluY3JlbWVudGFsTG9hZCBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiaW5jcmVtZW50YWxMb2FkIixbIm5vbmUiLCJmb3J3YXJkT25seSJdKX19Y2xhc3MgSW5jcmVtZW50YWxNZXJnZSBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJpbmNyZW1lbnRhbE1lcmdlIil9fWNsYXNzIEludGVyYWN0aXZlIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImludGVyYWN0aXZlIil9fWNsYXNzIEpvZyBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiam9nIixbInVzZVByaW50ZXJTZXR0aW5nIiwibm9uZSIsInBhZ2VTZXQiXSl9fWNsYXNzIExhYmVsUHJpbnRlciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywibGFiZWxQcmludGVyIiwhMCk7dGhpcy5uYW1lPWdldFN0cmluZ09wdGlvbihlLm5hbWUsWyJ6cGwiLCJkcGwiLCJpcGwiLCJ0Y3BsIl0pO3RoaXMuYmF0Y2hPdXRwdXQ9bnVsbDt0aGlzLmZsaXBMYWJlbD1udWxsO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLnhkYz1udWxsfX1jbGFzcyBMYXlvdXQgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImxheW91dCIsWyJwYWdpbmF0ZSIsInBhbmVsIl0pfX1jbGFzcyBMZXZlbCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImxldmVsIiwwLGU9PmU+MCl9fWNsYXNzIExpbmVhcml6ZWQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywibGluZWFyaXplZCIpfX1jbGFzcyBMb2NhbGUgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImxvY2FsZSIpfX1jbGFzcyBMb2NhbGVTZXQgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImxvY2FsZVNldCIpfX1jbGFzcyBMb2cgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sImxvZyIsITApO3RoaXMubW9kZT1udWxsO3RoaXMudGhyZXNob2xkPW51bGw7dGhpcy50bz1udWxsO3RoaXMudXJpPW51bGx9fWNsYXNzIE1hcEVsZW1lbnQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sIm1hcCIsITApO3RoaXMuZXF1YXRlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVxdWF0ZVJhbmdlPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgTWVkaXVtSW5mbyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywibWVkaXVtSW5mbyIsITApO3RoaXMubWFwPW51bGx9fWNsYXNzIGNvbmZpZ19NZXNzYWdlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJtZXNzYWdlIiwhMCk7dGhpcy5tc2dJZD1udWxsO3RoaXMuc2V2ZXJpdHk9bnVsbH19Y2xhc3MgTWVzc2FnaW5nIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJtZXNzYWdpbmciLCEwKTt0aGlzLm1lc3NhZ2U9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBNb2RlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJtb2RlIixbImFwcGVuZCIsIm92ZXJ3cml0ZSJdKX19Y2xhc3MgTW9kaWZ5QW5ub3RzIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sIm1vZGlmeUFubm90cyIpfX1jbGFzcyBNc2dJZCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sIm1zZ0lkIiwxLGU9PmU+PTEpfX1jbGFzcyBOYW1lQXR0ciBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywibmFtZUF0dHIiKX19Y2xhc3MgTmV2ZXJFbWJlZCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sIm5ldmVyRW1iZWQiKX19Y2xhc3MgTnVtYmVyT2ZDb3BpZXMgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJudW1iZXJPZkNvcGllcyIsbnVsbCxlPT5lPj0yJiZlPD01KX19Y2xhc3MgT3BlbkFjdGlvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywib3BlbkFjdGlvbiIsITApO3RoaXMuZGVzdGluYXRpb249bnVsbH19Y2xhc3MgT3V0cHV0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJvdXRwdXQiLCEwKTt0aGlzLnRvPW51bGw7dGhpcy50eXBlPW51bGw7dGhpcy51cmk9bnVsbH19Y2xhc3MgT3V0cHV0QmluIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJvdXRwdXRCaW4iKX19Y2xhc3MgT3V0cHV0WFNMIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJvdXRwdXRYU0wiLCEwKTt0aGlzLnVyaT1udWxsfX1jbGFzcyBPdmVycHJpbnQgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sIm92ZXJwcmludCIsWyJub25lIiwiYm90aCIsImRyYXciLCJmaWVsZCJdKX19Y2xhc3MgUGFja2V0cyBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywicGFja2V0cyIpfVtRcl0oKXsiKiIhPT10aGlzW1ZyXSYmKHRoaXNbVnJdPXRoaXNbVnJdLnRyaW0oKS5zcGxpdCgvXHMrLykuZmlsdGVyKGU9PlsiY29uZmlnIiwiZGF0YXNldHMiLCJ0ZW1wbGF0ZSIsInhmZGYiLCJ4c2x0Il0uaW5jbHVkZXMoZSkpKX19Y2xhc3MgUGFnZU9mZnNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywicGFnZU9mZnNldCIpO3RoaXMueD1nZXRJbnRlZ2VyKHtkYXRhOmUueCxkZWZhdWx0VmFsdWU6InVzZVhEQ1NldHRpbmciLHZhbGlkYXRlOmU9PiEwfSk7dGhpcy55PWdldEludGVnZXIoe2RhdGE6ZS55LGRlZmF1bHRWYWx1ZToidXNlWERDU2V0dGluZyIsdmFsaWRhdGU6ZT0+ITB9KX19Y2xhc3MgUGFnZVJhbmdlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJwYWdlUmFuZ2UiKX1bUXJdKCl7Y29uc3QgZT10aGlzW1ZyXS50cmltKCkuc3BsaXQoL1xzKy8pLm1hcChlPT5wYXJzZUludChlLDEwKSksdD1bXTtmb3IobGV0IG49MCxhPWUubGVuZ3RoO248YTtuKz0yKXQucHVzaChlLnNsaWNlKG4sbisyKSk7dGhpc1tWcl09dH19Y2xhc3MgUGFnaW5hdGlvbiBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywicGFnaW5hdGlvbiIsWyJzaW1wbGV4IiwiZHVwbGV4U2hvcnRFZGdlIiwiZHVwbGV4TG9uZ0VkZ2UiXSl9fWNsYXNzIFBhZ2luYXRpb25PdmVycmlkZSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywicGFnaW5hdGlvbk92ZXJyaWRlIixbIm5vbmUiLCJmb3JjZUR1cGxleCIsImZvcmNlRHVwbGV4TG9uZ0VkZ2UiLCJmb3JjZUR1cGxleFNob3J0RWRnZSIsImZvcmNlU2ltcGxleCJdKX19Y2xhc3MgUGFydCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInBhcnQiLDEsZT0+ITEpfX1jbGFzcyBQY2wgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInBjbCIsITApO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMuYmF0Y2hPdXRwdXQ9bnVsbDt0aGlzLmZvbnRJbmZvPW51bGw7dGhpcy5qb2c9bnVsbDt0aGlzLm1lZGl1bUluZm89bnVsbDt0aGlzLm91dHB1dEJpbj1udWxsO3RoaXMucGFnZU9mZnNldD1udWxsO3RoaXMuc3RhcGxlPW51bGw7dGhpcy54ZGM9bnVsbH19Y2xhc3MgUGRmIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJwZGYiLCEwKTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLmFkb2JlRXh0ZW5zaW9uTGV2ZWw9bnVsbDt0aGlzLmJhdGNoT3V0cHV0PW51bGw7dGhpcy5jb21wcmVzc2lvbj1udWxsO3RoaXMuY3JlYXRvcj1udWxsO3RoaXMuZW5jcnlwdGlvbj1udWxsO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLmludGVyYWN0aXZlPW51bGw7dGhpcy5saW5lYXJpemVkPW51bGw7dGhpcy5vcGVuQWN0aW9uPW51bGw7dGhpcy5wZGZhPW51bGw7dGhpcy5wcm9kdWNlcj1udWxsO3RoaXMucmVuZGVyUG9saWN5PW51bGw7dGhpcy5zY3JpcHRNb2RlbD1udWxsO3RoaXMuc2lsZW50UHJpbnQ9bnVsbDt0aGlzLnN1Ym1pdEZvcm1hdD1udWxsO3RoaXMudGFnZ2VkPW51bGw7dGhpcy52ZXJzaW9uPW51bGw7dGhpcy52aWV3ZXJQcmVmZXJlbmNlcz1udWxsO3RoaXMueGRjPW51bGx9fWNsYXNzIFBkZmEgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInBkZmEiLCEwKTt0aGlzLmFtZD1udWxsO3RoaXMuY29uZm9ybWFuY2U9bnVsbDt0aGlzLmluY2x1ZGVYRFBDb250ZW50PW51bGw7dGhpcy5wYXJ0PW51bGx9fWNsYXNzIFBlcm1pc3Npb25zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJwZXJtaXNzaW9ucyIsITApO3RoaXMuYWNjZXNzaWJsZUNvbnRlbnQ9bnVsbDt0aGlzLmNoYW5nZT1udWxsO3RoaXMuY29udGVudENvcHk9bnVsbDt0aGlzLmRvY3VtZW50QXNzZW1ibHk9bnVsbDt0aGlzLmZvcm1GaWVsZEZpbGxpbmc9bnVsbDt0aGlzLm1vZGlmeUFubm90cz1udWxsO3RoaXMucGxhaW50ZXh0TWV0YWRhdGE9bnVsbDt0aGlzLnByaW50PW51bGw7dGhpcy5wcmludEhpZ2hRdWFsaXR5PW51bGx9fWNsYXNzIFBpY2tUcmF5QnlQREZTaXplIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInBpY2tUcmF5QnlQREZTaXplIil9fWNsYXNzIGNvbmZpZ19QaWN0dXJlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJwaWN0dXJlIil9fWNsYXNzIFBsYWludGV4dE1ldGFkYXRhIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInBsYWludGV4dE1ldGFkYXRhIil9fWNsYXNzIFByZXNlbmNlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJwcmVzZW5jZSIsWyJwcmVzZXJ2ZSIsImRpc3NvbHZlIiwiZGlzc29sdmVTdHJ1Y3R1cmUiLCJpZ25vcmUiLCJyZW1vdmUiXSl9fWNsYXNzIFByZXNlbnQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInByZXNlbnQiLCEwKTt0aGlzLmJlaGF2aW9yT3ZlcnJpZGU9bnVsbDt0aGlzLmNhY2hlPW51bGw7dGhpcy5jb21tb249bnVsbDt0aGlzLmNvcGllcz1udWxsO3RoaXMuZGVzdGluYXRpb249bnVsbDt0aGlzLmluY3JlbWVudGFsTWVyZ2U9bnVsbDt0aGlzLmxheW91dD1udWxsO3RoaXMub3V0cHV0PW51bGw7dGhpcy5vdmVycHJpbnQ9bnVsbDt0aGlzLnBhZ2luYXRpb249bnVsbDt0aGlzLnBhZ2luYXRpb25PdmVycmlkZT1udWxsO3RoaXMuc2NyaXB0PW51bGw7dGhpcy52YWxpZGF0ZT1udWxsO3RoaXMueGRwPW51bGw7dGhpcy5kcml2ZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMubGFiZWxQcmludGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnBjbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5wZGY9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucHM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3VibWl0VXJsPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLndlYkNsaWVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy56cGw9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBQcmludCBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJwcmludCIpfX1jbGFzcyBQcmludEhpZ2hRdWFsaXR5IGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInByaW50SGlnaFF1YWxpdHkiKX19Y2xhc3MgUHJpbnRTY2FsaW5nIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJwcmludFNjYWxpbmciLFsiYXBwZGVmYXVsdCIsIm5vU2NhbGluZyJdKX19Y2xhc3MgUHJpbnRlck5hbWUgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInByaW50ZXJOYW1lIil9fWNsYXNzIFByb2R1Y2VyIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJwcm9kdWNlciIpfX1jbGFzcyBQcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywicHMiLCEwKTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLmJhdGNoT3V0cHV0PW51bGw7dGhpcy5mb250SW5mbz1udWxsO3RoaXMuam9nPW51bGw7dGhpcy5tZWRpdW1JbmZvPW51bGw7dGhpcy5vdXRwdXRCaW49bnVsbDt0aGlzLnN0YXBsZT1udWxsO3RoaXMueGRjPW51bGx9fWNsYXNzIFJhbmdlIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywicmFuZ2UiKX1bUXJdKCl7dGhpc1tWcl09dGhpc1tWcl0uc3BsaXQoIiwiLDIpLm1hcChlPT5lLnNwbGl0KCItIikubWFwKGU9PnBhcnNlSW50KGUudHJpbSgpLDEwKSkpLmZpbHRlcihlPT5lLmV2ZXJ5KGU9PiFpc05hTihlKSkpLm1hcChlPT57MT09PWUubGVuZ3RoJiZlLnB1c2goZVswXSk7cmV0dXJuIGV9KX19Y2xhc3MgUmVjb3JkIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywicmVjb3JkIil9W1FyXSgpe3RoaXNbVnJdPXRoaXNbVnJdLnRyaW0oKTtjb25zdCBlPXBhcnNlSW50KHRoaXNbVnJdLDEwKTshaXNOYU4oZSkmJmU+PTAmJih0aGlzW1ZyXT1lKX19Y2xhc3MgUmVsZXZhbnQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJyZWxldmFudCIpfVtRcl0oKXt0aGlzW1ZyXT10aGlzW1ZyXS50cmltKCkuc3BsaXQoL1xzKy8pfX1jbGFzcyBSZW5hbWUgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJyZW5hbWUiKX1bUXJdKCl7dGhpc1tWcl09dGhpc1tWcl0udHJpbSgpOyh0aGlzW1ZyXS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoInhtbCIpfHxuZXcgUmVnRXhwKCJbXFxwe0x9X11bXFxwe0x9XFxkLl9cXHB7TX0tXSoiLCJ1IikudGVzdCh0aGlzW1ZyXSkpJiZ3YXJuKCJYRkEgLSBSZW5hbWU6IGludmFsaWQgWEZBIG5hbWUiKX19Y2xhc3MgUmVuZGVyUG9saWN5IGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJyZW5kZXJQb2xpY3kiLFsic2VydmVyIiwiY2xpZW50Il0pfX1jbGFzcyBSdW5TY3JpcHRzIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJydW5TY3JpcHRzIixbImJvdGgiLCJjbGllbnQiLCJub25lIiwic2VydmVyIl0pfX1jbGFzcyBjb25maWdfU2NyaXB0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJzY3JpcHQiLCEwKTt0aGlzLmN1cnJlbnRQYWdlPW51bGw7dGhpcy5leGNsdWRlPW51bGw7dGhpcy5ydW5TY3JpcHRzPW51bGx9fWNsYXNzIFNjcmlwdE1vZGVsIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJzY3JpcHRNb2RlbCIsWyJYRkEiLCJub25lIl0pfX1jbGFzcyBTZXZlcml0eSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywic2V2ZXJpdHkiLFsiaWdub3JlIiwiZXJyb3IiLCJpbmZvcm1hdGlvbiIsInRyYWNlIiwid2FybmluZyJdKX19Y2xhc3MgU2lsZW50UHJpbnQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInNpbGVudFByaW50IiwhMCk7dGhpcy5hZGRTaWxlbnRQcmludD1udWxsO3RoaXMucHJpbnRlck5hbWU9bnVsbH19Y2xhc3MgU3RhcGxlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJzdGFwbGUiKTt0aGlzLm1vZGU9Z2V0U3RyaW5nT3B0aW9uKGUubW9kZSxbInVzZVByaW50ZXJTZXR0aW5nIiwib24iLCJvZmYiXSl9fWNsYXNzIFN0YXJ0Tm9kZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywic3RhcnROb2RlIil9fWNsYXNzIFN0YXJ0UGFnZSBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInN0YXJ0UGFnZSIsMCxlPT4hMCl9fWNsYXNzIFN1Ym1pdEZvcm1hdCBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywic3VibWl0Rm9ybWF0IixbImh0bWwiLCJkZWxlZ2F0ZSIsImZkZiIsInhtbCIsInBkZiJdKX19Y2xhc3MgU3VibWl0VXJsIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJzdWJtaXRVcmwiKX19Y2xhc3MgU3Vic2V0QmVsb3cgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJzdWJzZXRCZWxvdyIsMTAwLGU9PmU+PTAmJmU8PTEwMCl9fWNsYXNzIFN1cHByZXNzQmFubmVyIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInN1cHByZXNzQmFubmVyIil9fWNsYXNzIFRhZ2dlZCBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJ0YWdnZWQiKX19Y2xhc3MgY29uZmlnX1RlbXBsYXRlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJ0ZW1wbGF0ZSIsITApO3RoaXMuYmFzZT1udWxsO3RoaXMucmVsZXZhbnQ9bnVsbDt0aGlzLnN0YXJ0UGFnZT1udWxsO3RoaXMudXJpPW51bGw7dGhpcy54c2w9bnVsbH19Y2xhc3MgVGhyZXNob2xkIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJ0aHJlc2hvbGQiLFsidHJhY2UiLCJlcnJvciIsImluZm9ybWF0aW9uIiwid2FybmluZyJdKX19Y2xhc3MgVG8gZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInRvIixbIm51bGwiLCJtZW1vcnkiLCJzdGRlcnIiLCJzdGRvdXQiLCJzeXN0ZW0iLCJ1cmkiXSl9fWNsYXNzIFRlbXBsYXRlQ2FjaGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInRlbXBsYXRlQ2FjaGUiKTt0aGlzLm1heEVudHJpZXM9Z2V0SW50ZWdlcih7ZGF0YTplLm1heEVudHJpZXMsZGVmYXVsdFZhbHVlOjUsdmFsaWRhdGU6ZT0+ZT49MH0pfX1jbGFzcyBUcmFjZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywidHJhY2UiLCEwKTt0aGlzLmFyZWE9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBUcmFuc2Zvcm0gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInRyYW5zZm9ybSIsITApO3RoaXMuZ3JvdXBQYXJlbnQ9bnVsbDt0aGlzLmlmRW1wdHk9bnVsbDt0aGlzLm5hbWVBdHRyPW51bGw7dGhpcy5waWN0dXJlPW51bGw7dGhpcy5wcmVzZW5jZT1udWxsO3RoaXMucmVuYW1lPW51bGw7dGhpcy53aGl0ZXNwYWNlPW51bGx9fWNsYXNzIFR5cGUgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInR5cGUiLFsibm9uZSIsImFzY2lpODUiLCJhc2NpaUhleCIsImNjaXR0ZmF4IiwiZmxhdGUiLCJsenciLCJydW5MZW5ndGgiLCJuYXRpdmUiLCJ4ZHAiLCJtZXJnZWRYRFAiXSl9fWNsYXNzIFVyaSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywidXJpIil9fWNsYXNzIGNvbmZpZ19WYWxpZGF0ZSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywidmFsaWRhdGUiLFsicHJlU3VibWl0IiwicHJlUHJpbnQiLCJwcmVFeGVjdXRlIiwicHJlU2F2ZSJdKX19Y2xhc3MgVmFsaWRhdGVBcHByb3ZhbFNpZ25hdHVyZXMgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJ2YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcyIpfVtRcl0oKXt0aGlzW1ZyXT10aGlzW1ZyXS50cmltKCkuc3BsaXQoL1xzKy8pLmZpbHRlcihlPT5bImRvY1JlYWR5IiwicG9zdFNpZ24iXS5pbmNsdWRlcyhlKSl9fWNsYXNzIFZhbGlkYXRpb25NZXNzYWdpbmcgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInZhbGlkYXRpb25NZXNzYWdpbmciLFsiYWxsTWVzc2FnZXNJbmRpdmlkdWFsbHkiLCJhbGxNZXNzYWdlc1RvZ2V0aGVyIiwiZmlyc3RNZXNzYWdlT25seSIsIm5vTWVzc2FnZXMiXSl9fWNsYXNzIFZlcnNpb24gZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInZlcnNpb24iLFsiMS43IiwiMS42IiwiMS41IiwiMS40IiwiMS4zIiwiMS4yIl0pfX1jbGFzcyBWZXJzaW9uQ29udHJvbCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywiVmVyc2lvbkNvbnRyb2wiKTt0aGlzLm91dHB1dEJlbG93PWdldFN0cmluZ09wdGlvbihlLm91dHB1dEJlbG93LFsid2FybiIsImVycm9yIiwidXBkYXRlIl0pO3RoaXMuc291cmNlQWJvdmU9Z2V0U3RyaW5nT3B0aW9uKGUuc291cmNlQWJvdmUsWyJ3YXJuIiwiZXJyb3IiXSk7dGhpcy5zb3VyY2VCZWxvdz1nZXRTdHJpbmdPcHRpb24oZS5zb3VyY2VCZWxvdyxbInVwZGF0ZSIsIm1haW50YWluIl0pfX1jbGFzcyBWaWV3ZXJQcmVmZXJlbmNlcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywidmlld2VyUHJlZmVyZW5jZXMiLCEwKTt0aGlzLkFEQkVfSlNDb25zb2xlPW51bGw7dGhpcy5BREJFX0pTRGVidWdnZXI9bnVsbDt0aGlzLmFkZFZpZXdlclByZWZlcmVuY2VzPW51bGw7dGhpcy5kdXBsZXhPcHRpb249bnVsbDt0aGlzLmVuZm9yY2U9bnVsbDt0aGlzLm51bWJlck9mQ29waWVzPW51bGw7dGhpcy5wYWdlUmFuZ2U9bnVsbDt0aGlzLnBpY2tUcmF5QnlQREZTaXplPW51bGw7dGhpcy5wcmludFNjYWxpbmc9bnVsbH19Y2xhc3MgV2ViQ2xpZW50IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJ3ZWJDbGllbnQiLCEwKTt0aGlzLm5hbWU9ZS5uYW1lP2UubmFtZS50cmltKCk6IiI7dGhpcy5mb250SW5mbz1udWxsO3RoaXMueGRjPW51bGx9fWNsYXNzIFdoaXRlc3BhY2UgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sIndoaXRlc3BhY2UiLFsicHJlc2VydmUiLCJsdHJpbSIsIm5vcm1hbGl6ZSIsInJ0cmltIiwidHJpbSJdKX19Y2xhc3MgV2luZG93IGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihVbywid2luZG93Iil9W1FyXSgpe2NvbnN0IGU9dGhpc1tWcl0uc3BsaXQoIiwiLDIpLm1hcChlPT5wYXJzZUludChlLnRyaW0oKSwxMCkpO2lmKGUuc29tZShlPT5pc05hTihlKSkpdGhpc1tWcl09WzAsMF07ZWxzZXsxPT09ZS5sZW5ndGgmJmUucHVzaChlWzBdKTt0aGlzW1ZyXT1lfX19Y2xhc3MgWGRjIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFVvLCJ4ZGMiLCEwKTt0aGlzLnVyaT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy54c2w9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBYZHAgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInhkcCIsITApO3RoaXMucGFja2V0cz1udWxsfX1jbGFzcyBYc2wgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInhzbCIsITApO3RoaXMuZGVidWc9bnVsbDt0aGlzLnVyaT1udWxsfX1jbGFzcyBacGwgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVW8sInpwbCIsITApO3RoaXMubmFtZT1lLm5hbWU/ZS5uYW1lLnRyaW0oKToiIjt0aGlzLmJhdGNoT3V0cHV0PW51bGw7dGhpcy5mbGlwTGFiZWw9bnVsbDt0aGlzLmZvbnRJbmZvPW51bGw7dGhpcy54ZGM9bnVsbH19Y2xhc3MgQ29uZmlnTmFtZXNwYWNle3N0YXRpY1t0b10oZSx0KXtpZihDb25maWdOYW1lc3BhY2UuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIENvbmZpZ05hbWVzcGFjZVtlXSh0KX1zdGF0aWMgYWNyb2JhdChlKXtyZXR1cm4gbmV3IEFjcm9iYXQoZSl9c3RhdGljIGFjcm9iYXQ3KGUpe3JldHVybiBuZXcgQWNyb2JhdDcoZSl9c3RhdGljIEFEQkVfSlNDb25zb2xlKGUpe3JldHVybiBuZXcgQURCRV9KU0NvbnNvbGUoZSl9c3RhdGljIEFEQkVfSlNEZWJ1Z2dlcihlKXtyZXR1cm4gbmV3IEFEQkVfSlNEZWJ1Z2dlcihlKX1zdGF0aWMgYWRkU2lsZW50UHJpbnQoZSl7cmV0dXJuIG5ldyBBZGRTaWxlbnRQcmludChlKX1zdGF0aWMgYWRkVmlld2VyUHJlZmVyZW5jZXMoZSl7cmV0dXJuIG5ldyBBZGRWaWV3ZXJQcmVmZXJlbmNlcyhlKX1zdGF0aWMgYWRqdXN0RGF0YShlKXtyZXR1cm4gbmV3IEFkanVzdERhdGEoZSl9c3RhdGljIGFkb2JlRXh0ZW5zaW9uTGV2ZWwoZSl7cmV0dXJuIG5ldyBBZG9iZUV4dGVuc2lvbkxldmVsKGUpfXN0YXRpYyBhZ2VudChlKXtyZXR1cm4gbmV3IEFnZW50KGUpfXN0YXRpYyBhbHdheXNFbWJlZChlKXtyZXR1cm4gbmV3IEFsd2F5c0VtYmVkKGUpfXN0YXRpYyBhbWQoZSl7cmV0dXJuIG5ldyBBbWQoZSl9c3RhdGljIGFyZWEoZSl7cmV0dXJuIG5ldyBjb25maWdfQXJlYShlKX1zdGF0aWMgYXR0cmlidXRlcyhlKXtyZXR1cm4gbmV3IEF0dHJpYnV0ZXMoZSl9c3RhdGljIGF1dG9TYXZlKGUpe3JldHVybiBuZXcgQXV0b1NhdmUoZSl9c3RhdGljIGJhc2UoZSl7cmV0dXJuIG5ldyBCYXNlKGUpfXN0YXRpYyBiYXRjaE91dHB1dChlKXtyZXR1cm4gbmV3IEJhdGNoT3V0cHV0KGUpfXN0YXRpYyBiZWhhdmlvck92ZXJyaWRlKGUpe3JldHVybiBuZXcgQmVoYXZpb3JPdmVycmlkZShlKX1zdGF0aWMgY2FjaGUoZSl7cmV0dXJuIG5ldyBDYWNoZShlKX1zdGF0aWMgY2hhbmdlKGUpe3JldHVybiBuZXcgQ2hhbmdlKGUpfXN0YXRpYyBjb21tb24oZSl7cmV0dXJuIG5ldyBDb21tb24oZSl9c3RhdGljIGNvbXByZXNzKGUpe3JldHVybiBuZXcgQ29tcHJlc3MoZSl9c3RhdGljIGNvbXByZXNzTG9naWNhbFN0cnVjdHVyZShlKXtyZXR1cm4gbmV3IENvbXByZXNzTG9naWNhbFN0cnVjdHVyZShlKX1zdGF0aWMgY29tcHJlc3NPYmplY3RTdHJlYW0oZSl7cmV0dXJuIG5ldyBDb21wcmVzc09iamVjdFN0cmVhbShlKX1zdGF0aWMgY29tcHJlc3Npb24oZSl7cmV0dXJuIG5ldyBDb21wcmVzc2lvbihlKX1zdGF0aWMgY29uZmlnKGUpe3JldHVybiBuZXcgQ29uZmlnKGUpfXN0YXRpYyBjb25mb3JtYW5jZShlKXtyZXR1cm4gbmV3IENvbmZvcm1hbmNlKGUpfXN0YXRpYyBjb250ZW50Q29weShlKXtyZXR1cm4gbmV3IENvbnRlbnRDb3B5KGUpfXN0YXRpYyBjb3BpZXMoZSl7cmV0dXJuIG5ldyBDb3BpZXMoZSl9c3RhdGljIGNyZWF0b3IoZSl7cmV0dXJuIG5ldyBDcmVhdG9yKGUpfXN0YXRpYyBjdXJyZW50UGFnZShlKXtyZXR1cm4gbmV3IEN1cnJlbnRQYWdlKGUpfXN0YXRpYyBkYXRhKGUpe3JldHVybiBuZXcgRGF0YShlKX1zdGF0aWMgZGVidWcoZSl7cmV0dXJuIG5ldyBEZWJ1ZyhlKX1zdGF0aWMgZGVmYXVsdFR5cGVmYWNlKGUpe3JldHVybiBuZXcgRGVmYXVsdFR5cGVmYWNlKGUpfXN0YXRpYyBkZXN0aW5hdGlvbihlKXtyZXR1cm4gbmV3IERlc3RpbmF0aW9uKGUpfXN0YXRpYyBkb2N1bWVudEFzc2VtYmx5KGUpe3JldHVybiBuZXcgRG9jdW1lbnRBc3NlbWJseShlKX1zdGF0aWMgZHJpdmVyKGUpe3JldHVybiBuZXcgRHJpdmVyKGUpfXN0YXRpYyBkdXBsZXhPcHRpb24oZSl7cmV0dXJuIG5ldyBEdXBsZXhPcHRpb24oZSl9c3RhdGljIGR5bmFtaWNSZW5kZXIoZSl7cmV0dXJuIG5ldyBEeW5hbWljUmVuZGVyKGUpfXN0YXRpYyBlbWJlZChlKXtyZXR1cm4gbmV3IEVtYmVkKGUpfXN0YXRpYyBlbmNyeXB0KGUpe3JldHVybiBuZXcgY29uZmlnX0VuY3J5cHQoZSl9c3RhdGljIGVuY3J5cHRpb24oZSl7cmV0dXJuIG5ldyBjb25maWdfRW5jcnlwdGlvbihlKX1zdGF0aWMgZW5jcnlwdGlvbkxldmVsKGUpe3JldHVybiBuZXcgRW5jcnlwdGlvbkxldmVsKGUpfXN0YXRpYyBlbmZvcmNlKGUpe3JldHVybiBuZXcgRW5mb3JjZShlKX1zdGF0aWMgZXF1YXRlKGUpe3JldHVybiBuZXcgRXF1YXRlKGUpfXN0YXRpYyBlcXVhdGVSYW5nZShlKXtyZXR1cm4gbmV3IEVxdWF0ZVJhbmdlKGUpfXN0YXRpYyBleGNsdWRlKGUpe3JldHVybiBuZXcgRXhjbHVkZShlKX1zdGF0aWMgZXhjbHVkZU5TKGUpe3JldHVybiBuZXcgRXhjbHVkZU5TKGUpfXN0YXRpYyBmbGlwTGFiZWwoZSl7cmV0dXJuIG5ldyBGbGlwTGFiZWwoZSl9c3RhdGljIGZvbnRJbmZvKGUpe3JldHVybiBuZXcgY29uZmlnX0ZvbnRJbmZvKGUpfXN0YXRpYyBmb3JtRmllbGRGaWxsaW5nKGUpe3JldHVybiBuZXcgRm9ybUZpZWxkRmlsbGluZyhlKX1zdGF0aWMgZ3JvdXBQYXJlbnQoZSl7cmV0dXJuIG5ldyBHcm91cFBhcmVudChlKX1zdGF0aWMgaWZFbXB0eShlKXtyZXR1cm4gbmV3IElmRW1wdHkoZSl9c3RhdGljIGluY2x1ZGVYRFBDb250ZW50KGUpe3JldHVybiBuZXcgSW5jbHVkZVhEUENvbnRlbnQoZSl9c3RhdGljIGluY3JlbWVudGFsTG9hZChlKXtyZXR1cm4gbmV3IEluY3JlbWVudGFsTG9hZChlKX1zdGF0aWMgaW5jcmVtZW50YWxNZXJnZShlKXtyZXR1cm4gbmV3IEluY3JlbWVudGFsTWVyZ2UoZSl9c3RhdGljIGludGVyYWN0aXZlKGUpe3JldHVybiBuZXcgSW50ZXJhY3RpdmUoZSl9c3RhdGljIGpvZyhlKXtyZXR1cm4gbmV3IEpvZyhlKX1zdGF0aWMgbGFiZWxQcmludGVyKGUpe3JldHVybiBuZXcgTGFiZWxQcmludGVyKGUpfXN0YXRpYyBsYXlvdXQoZSl7cmV0dXJuIG5ldyBMYXlvdXQoZSl9c3RhdGljIGxldmVsKGUpe3JldHVybiBuZXcgTGV2ZWwoZSl9c3RhdGljIGxpbmVhcml6ZWQoZSl7cmV0dXJuIG5ldyBMaW5lYXJpemVkKGUpfXN0YXRpYyBsb2NhbGUoZSl7cmV0dXJuIG5ldyBMb2NhbGUoZSl9c3RhdGljIGxvY2FsZVNldChlKXtyZXR1cm4gbmV3IExvY2FsZVNldChlKX1zdGF0aWMgbG9nKGUpe3JldHVybiBuZXcgTG9nKGUpfXN0YXRpYyBtYXAoZSl7cmV0dXJuIG5ldyBNYXBFbGVtZW50KGUpfXN0YXRpYyBtZWRpdW1JbmZvKGUpe3JldHVybiBuZXcgTWVkaXVtSW5mbyhlKX1zdGF0aWMgbWVzc2FnZShlKXtyZXR1cm4gbmV3IGNvbmZpZ19NZXNzYWdlKGUpfXN0YXRpYyBtZXNzYWdpbmcoZSl7cmV0dXJuIG5ldyBNZXNzYWdpbmcoZSl9c3RhdGljIG1vZGUoZSl7cmV0dXJuIG5ldyBNb2RlKGUpfXN0YXRpYyBtb2RpZnlBbm5vdHMoZSl7cmV0dXJuIG5ldyBNb2RpZnlBbm5vdHMoZSl9c3RhdGljIG1zZ0lkKGUpe3JldHVybiBuZXcgTXNnSWQoZSl9c3RhdGljIG5hbWVBdHRyKGUpe3JldHVybiBuZXcgTmFtZUF0dHIoZSl9c3RhdGljIG5ldmVyRW1iZWQoZSl7cmV0dXJuIG5ldyBOZXZlckVtYmVkKGUpfXN0YXRpYyBudW1iZXJPZkNvcGllcyhlKXtyZXR1cm4gbmV3IE51bWJlck9mQ29waWVzKGUpfXN0YXRpYyBvcGVuQWN0aW9uKGUpe3JldHVybiBuZXcgT3BlbkFjdGlvbihlKX1zdGF0aWMgb3V0cHV0KGUpe3JldHVybiBuZXcgT3V0cHV0KGUpfXN0YXRpYyBvdXRwdXRCaW4oZSl7cmV0dXJuIG5ldyBPdXRwdXRCaW4oZSl9c3RhdGljIG91dHB1dFhTTChlKXtyZXR1cm4gbmV3IE91dHB1dFhTTChlKX1zdGF0aWMgb3ZlcnByaW50KGUpe3JldHVybiBuZXcgT3ZlcnByaW50KGUpfXN0YXRpYyBwYWNrZXRzKGUpe3JldHVybiBuZXcgUGFja2V0cyhlKX1zdGF0aWMgcGFnZU9mZnNldChlKXtyZXR1cm4gbmV3IFBhZ2VPZmZzZXQoZSl9c3RhdGljIHBhZ2VSYW5nZShlKXtyZXR1cm4gbmV3IFBhZ2VSYW5nZShlKX1zdGF0aWMgcGFnaW5hdGlvbihlKXtyZXR1cm4gbmV3IFBhZ2luYXRpb24oZSl9c3RhdGljIHBhZ2luYXRpb25PdmVycmlkZShlKXtyZXR1cm4gbmV3IFBhZ2luYXRpb25PdmVycmlkZShlKX1zdGF0aWMgcGFydChlKXtyZXR1cm4gbmV3IFBhcnQoZSl9c3RhdGljIHBjbChlKXtyZXR1cm4gbmV3IFBjbChlKX1zdGF0aWMgcGRmKGUpe3JldHVybiBuZXcgUGRmKGUpfXN0YXRpYyBwZGZhKGUpe3JldHVybiBuZXcgUGRmYShlKX1zdGF0aWMgcGVybWlzc2lvbnMoZSl7cmV0dXJuIG5ldyBQZXJtaXNzaW9ucyhlKX1zdGF0aWMgcGlja1RyYXlCeVBERlNpemUoZSl7cmV0dXJuIG5ldyBQaWNrVHJheUJ5UERGU2l6ZShlKX1zdGF0aWMgcGljdHVyZShlKXtyZXR1cm4gbmV3IGNvbmZpZ19QaWN0dXJlKGUpfXN0YXRpYyBwbGFpbnRleHRNZXRhZGF0YShlKXtyZXR1cm4gbmV3IFBsYWludGV4dE1ldGFkYXRhKGUpfXN0YXRpYyBwcmVzZW5jZShlKXtyZXR1cm4gbmV3IFByZXNlbmNlKGUpfXN0YXRpYyBwcmVzZW50KGUpe3JldHVybiBuZXcgUHJlc2VudChlKX1zdGF0aWMgcHJpbnQoZSl7cmV0dXJuIG5ldyBQcmludChlKX1zdGF0aWMgcHJpbnRIaWdoUXVhbGl0eShlKXtyZXR1cm4gbmV3IFByaW50SGlnaFF1YWxpdHkoZSl9c3RhdGljIHByaW50U2NhbGluZyhlKXtyZXR1cm4gbmV3IFByaW50U2NhbGluZyhlKX1zdGF0aWMgcHJpbnRlck5hbWUoZSl7cmV0dXJuIG5ldyBQcmludGVyTmFtZShlKX1zdGF0aWMgcHJvZHVjZXIoZSl7cmV0dXJuIG5ldyBQcm9kdWNlcihlKX1zdGF0aWMgcHMoZSl7cmV0dXJuIG5ldyBQcyhlKX1zdGF0aWMgcmFuZ2UoZSl7cmV0dXJuIG5ldyBSYW5nZShlKX1zdGF0aWMgcmVjb3JkKGUpe3JldHVybiBuZXcgUmVjb3JkKGUpfXN0YXRpYyByZWxldmFudChlKXtyZXR1cm4gbmV3IFJlbGV2YW50KGUpfXN0YXRpYyByZW5hbWUoZSl7cmV0dXJuIG5ldyBSZW5hbWUoZSl9c3RhdGljIHJlbmRlclBvbGljeShlKXtyZXR1cm4gbmV3IFJlbmRlclBvbGljeShlKX1zdGF0aWMgcnVuU2NyaXB0cyhlKXtyZXR1cm4gbmV3IFJ1blNjcmlwdHMoZSl9c3RhdGljIHNjcmlwdChlKXtyZXR1cm4gbmV3IGNvbmZpZ19TY3JpcHQoZSl9c3RhdGljIHNjcmlwdE1vZGVsKGUpe3JldHVybiBuZXcgU2NyaXB0TW9kZWwoZSl9c3RhdGljIHNldmVyaXR5KGUpe3JldHVybiBuZXcgU2V2ZXJpdHkoZSl9c3RhdGljIHNpbGVudFByaW50KGUpe3JldHVybiBuZXcgU2lsZW50UHJpbnQoZSl9c3RhdGljIHN0YXBsZShlKXtyZXR1cm4gbmV3IFN0YXBsZShlKX1zdGF0aWMgc3RhcnROb2RlKGUpe3JldHVybiBuZXcgU3RhcnROb2RlKGUpfXN0YXRpYyBzdGFydFBhZ2UoZSl7cmV0dXJuIG5ldyBTdGFydFBhZ2UoZSl9c3RhdGljIHN1Ym1pdEZvcm1hdChlKXtyZXR1cm4gbmV3IFN1Ym1pdEZvcm1hdChlKX1zdGF0aWMgc3VibWl0VXJsKGUpe3JldHVybiBuZXcgU3VibWl0VXJsKGUpfXN0YXRpYyBzdWJzZXRCZWxvdyhlKXtyZXR1cm4gbmV3IFN1YnNldEJlbG93KGUpfXN0YXRpYyBzdXBwcmVzc0Jhbm5lcihlKXtyZXR1cm4gbmV3IFN1cHByZXNzQmFubmVyKGUpfXN0YXRpYyB0YWdnZWQoZSl7cmV0dXJuIG5ldyBUYWdnZWQoZSl9c3RhdGljIHRlbXBsYXRlKGUpe3JldHVybiBuZXcgY29uZmlnX1RlbXBsYXRlKGUpfXN0YXRpYyB0ZW1wbGF0ZUNhY2hlKGUpe3JldHVybiBuZXcgVGVtcGxhdGVDYWNoZShlKX1zdGF0aWMgdGhyZXNob2xkKGUpe3JldHVybiBuZXcgVGhyZXNob2xkKGUpfXN0YXRpYyB0byhlKXtyZXR1cm4gbmV3IFRvKGUpfXN0YXRpYyB0cmFjZShlKXtyZXR1cm4gbmV3IFRyYWNlKGUpfXN0YXRpYyB0cmFuc2Zvcm0oZSl7cmV0dXJuIG5ldyBUcmFuc2Zvcm0oZSl9c3RhdGljIHR5cGUoZSl7cmV0dXJuIG5ldyBUeXBlKGUpfXN0YXRpYyB1cmkoZSl7cmV0dXJuIG5ldyBVcmkoZSl9c3RhdGljIHZhbGlkYXRlKGUpe3JldHVybiBuZXcgY29uZmlnX1ZhbGlkYXRlKGUpfXN0YXRpYyB2YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcyhlKXtyZXR1cm4gbmV3IFZhbGlkYXRlQXBwcm92YWxTaWduYXR1cmVzKGUpfXN0YXRpYyB2YWxpZGF0aW9uTWVzc2FnaW5nKGUpe3JldHVybiBuZXcgVmFsaWRhdGlvbk1lc3NhZ2luZyhlKX1zdGF0aWMgdmVyc2lvbihlKXtyZXR1cm4gbmV3IFZlcnNpb24oZSl9c3RhdGljIHZlcnNpb25Db250cm9sKGUpe3JldHVybiBuZXcgVmVyc2lvbkNvbnRyb2woZSl9c3RhdGljIHZpZXdlclByZWZlcmVuY2VzKGUpe3JldHVybiBuZXcgVmlld2VyUHJlZmVyZW5jZXMoZSl9c3RhdGljIHdlYkNsaWVudChlKXtyZXR1cm4gbmV3IFdlYkNsaWVudChlKX1zdGF0aWMgd2hpdGVzcGFjZShlKXtyZXR1cm4gbmV3IFdoaXRlc3BhY2UoZSl9c3RhdGljIHdpbmRvdyhlKXtyZXR1cm4gbmV3IFdpbmRvdyhlKX1zdGF0aWMgeGRjKGUpe3JldHVybiBuZXcgWGRjKGUpfXN0YXRpYyB4ZHAoZSl7cmV0dXJuIG5ldyBYZHAoZSl9c3RhdGljIHhzbChlKXtyZXR1cm4gbmV3IFhzbChlKX1zdGF0aWMgenBsKGUpe3JldHVybiBuZXcgWnBsKGUpfX1jb25zdCBfbz1uby5jb25uZWN0aW9uU2V0LmlkO2NsYXNzIENvbm5lY3Rpb25TZXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoX28sImNvbm5lY3Rpb25TZXQiLCEwKTt0aGlzLndzZGxDb25uZWN0aW9uPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnhtbENvbm5lY3Rpb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMueHNkQ29ubmVjdGlvbj1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIEVmZmVjdGl2ZUlucHV0UG9saWN5IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKF9vLCJlZmZlY3RpdmVJbnB1dFBvbGljeSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBFZmZlY3RpdmVPdXRwdXRQb2xpY3kgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoX28sImVmZmVjdGl2ZU91dHB1dFBvbGljeSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoX28sIm9wZXJhdGlvbiIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5pbnB1dD1lLmlucHV0fHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLm91dHB1dD1lLm91dHB1dHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBSb290RWxlbWVudCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihfbywicm9vdEVsZW1lbnQiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgU29hcEFjdGlvbiBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihfbywic29hcEFjdGlvbiIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBTb2FwQWRkcmVzcyBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihfbywic29hcEFkZHJlc3MiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgY29ubmVjdGlvbl9zZXRfVXJpIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKF9vLCJ1cmkiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgV3NkbEFkZHJlc3MgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoX28sIndzZGxBZGRyZXNzIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFdzZGxDb25uZWN0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKF9vLCJ3c2RsQ29ubmVjdGlvbiIsITApO3RoaXMuZGF0YURlc2NyaXB0aW9uPWUuZGF0YURlc2NyaXB0aW9ufHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLmVmZmVjdGl2ZUlucHV0UG9saWN5PW51bGw7dGhpcy5lZmZlY3RpdmVPdXRwdXRQb2xpY3k9bnVsbDt0aGlzLm9wZXJhdGlvbj1udWxsO3RoaXMuc29hcEFjdGlvbj1udWxsO3RoaXMuc29hcEFkZHJlc3M9bnVsbDt0aGlzLndzZGxBZGRyZXNzPW51bGx9fWNsYXNzIFhtbENvbm5lY3Rpb24gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoX28sInhtbENvbm5lY3Rpb24iLCEwKTt0aGlzLmRhdGFEZXNjcmlwdGlvbj1lLmRhdGFEZXNjcmlwdGlvbnx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51cmk9bnVsbH19Y2xhc3MgWHNkQ29ubmVjdGlvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihfbywieHNkQ29ubmVjdGlvbiIsITApO3RoaXMuZGF0YURlc2NyaXB0aW9uPWUuZGF0YURlc2NyaXB0aW9ufHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnJvb3RFbGVtZW50PW51bGw7dGhpcy51cmk9bnVsbH19Y2xhc3MgQ29ubmVjdGlvblNldE5hbWVzcGFjZXtzdGF0aWNbdG9dKGUsdCl7aWYoQ29ubmVjdGlvblNldE5hbWVzcGFjZS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gQ29ubmVjdGlvblNldE5hbWVzcGFjZVtlXSh0KX1zdGF0aWMgY29ubmVjdGlvblNldChlKXtyZXR1cm4gbmV3IENvbm5lY3Rpb25TZXQoZSl9c3RhdGljIGVmZmVjdGl2ZUlucHV0UG9saWN5KGUpe3JldHVybiBuZXcgRWZmZWN0aXZlSW5wdXRQb2xpY3koZSl9c3RhdGljIGVmZmVjdGl2ZU91dHB1dFBvbGljeShlKXtyZXR1cm4gbmV3IEVmZmVjdGl2ZU91dHB1dFBvbGljeShlKX1zdGF0aWMgb3BlcmF0aW9uKGUpe3JldHVybiBuZXcgT3BlcmF0aW9uKGUpfXN0YXRpYyByb290RWxlbWVudChlKXtyZXR1cm4gbmV3IFJvb3RFbGVtZW50KGUpfXN0YXRpYyBzb2FwQWN0aW9uKGUpe3JldHVybiBuZXcgU29hcEFjdGlvbihlKX1zdGF0aWMgc29hcEFkZHJlc3MoZSl7cmV0dXJuIG5ldyBTb2FwQWRkcmVzcyhlKX1zdGF0aWMgdXJpKGUpe3JldHVybiBuZXcgY29ubmVjdGlvbl9zZXRfVXJpKGUpfXN0YXRpYyB3c2RsQWRkcmVzcyhlKXtyZXR1cm4gbmV3IFdzZGxBZGRyZXNzKGUpfXN0YXRpYyB3c2RsQ29ubmVjdGlvbihlKXtyZXR1cm4gbmV3IFdzZGxDb25uZWN0aW9uKGUpfXN0YXRpYyB4bWxDb25uZWN0aW9uKGUpe3JldHVybiBuZXcgWG1sQ29ubmVjdGlvbihlKX1zdGF0aWMgeHNkQ29ubmVjdGlvbihlKXtyZXR1cm4gbmV3IFhzZENvbm5lY3Rpb24oZSl9fWNvbnN0IFhvPW5vLmRhdGFzZXRzLmlkO2NsYXNzIGRhdGFzZXRzX0RhdGEgZXh0ZW5kcyBYbWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoWG8sImRhdGEiLGUpfVtTaV0oKXtyZXR1cm4hMH19Y2xhc3MgRGF0YXNldHMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoWG8sImRhdGFzZXRzIiwhMCk7dGhpcy5kYXRhPW51bGw7dGhpcy5TaWduYXR1cmU9bnVsbH1bQmldKGUpe2NvbnN0IHQ9ZVtIaV07KCJkYXRhIj09PXQmJmVbVGldPT09WG98fCJTaWduYXR1cmUiPT09dCYmZVtUaV09PT1uby5zaWduYXR1cmUuaWQpJiYodGhpc1t0XT1lKTt0aGlzW0xyXShlKX19Y2xhc3MgRGF0YXNldHNOYW1lc3BhY2V7c3RhdGljW3RvXShlLHQpe2lmKERhdGFzZXRzTmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXJldHVybiBEYXRhc2V0c05hbWVzcGFjZVtlXSh0KX1zdGF0aWMgZGF0YXNldHMoZSl7cmV0dXJuIG5ldyBEYXRhc2V0cyhlKX1zdGF0aWMgZGF0YShlKXtyZXR1cm4gbmV3IGRhdGFzZXRzX0RhdGEoZSl9fWNvbnN0IFdvPW5vLmxvY2FsZVNldC5pZDtjbGFzcyBDYWxlbmRhclN5bWJvbHMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sImNhbGVuZGFyU3ltYm9scyIsITApO3RoaXMubmFtZT0iZ3JlZ29yaWFuIjt0aGlzLmRheU5hbWVzPW5ldyBYRkFPYmplY3RBcnJheSgyKTt0aGlzLmVyYU5hbWVzPW51bGw7dGhpcy5tZXJpZGllbU5hbWVzPW51bGw7dGhpcy5tb250aE5hbWVzPW5ldyBYRkFPYmplY3RBcnJheSgyKX19Y2xhc3MgQ3VycmVuY3lTeW1ib2wgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sImN1cnJlbmN5U3ltYm9sIik7dGhpcy5uYW1lPWdldFN0cmluZ09wdGlvbihlLm5hbWUsWyJzeW1ib2wiLCJpc29uYW1lIiwiZGVjaW1hbCJdKX19Y2xhc3MgQ3VycmVuY3lTeW1ib2xzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFdvLCJjdXJyZW5jeVN5bWJvbHMiLCEwKTt0aGlzLmN1cnJlbmN5U3ltYm9sPW5ldyBYRkFPYmplY3RBcnJheSgzKX19Y2xhc3MgRGF0ZVBhdHRlcm4gZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sImRhdGVQYXR0ZXJuIik7dGhpcy5uYW1lPWdldFN0cmluZ09wdGlvbihlLm5hbWUsWyJmdWxsIiwibG9uZyIsIm1lZCIsInNob3J0Il0pfX1jbGFzcyBEYXRlUGF0dGVybnMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sImRhdGVQYXR0ZXJucyIsITApO3RoaXMuZGF0ZVBhdHRlcm49bmV3IFhGQU9iamVjdEFycmF5KDQpfX1jbGFzcyBEYXRlVGltZVN5bWJvbHMgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFdvLCJkYXRlVGltZVN5bWJvbHMiKX19Y2xhc3MgRGF5IGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFdvLCJkYXkiKX19Y2xhc3MgRGF5TmFtZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sImRheU5hbWVzIiwhMCk7dGhpcy5hYmJyPWdldEludGVnZXIoe2RhdGE6ZS5hYmJyLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5kYXk9bmV3IFhGQU9iamVjdEFycmF5KDcpfX1jbGFzcyBFcmEgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sImVyYSIpfX1jbGFzcyBFcmFOYW1lcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihXbywiZXJhTmFtZXMiLCEwKTt0aGlzLmVyYT1uZXcgWEZBT2JqZWN0QXJyYXkoMil9fWNsYXNzIGxvY2FsZV9zZXRfTG9jYWxlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFdvLCJsb2NhbGUiLCEwKTt0aGlzLmRlc2M9ZS5kZXNjfHwiIjt0aGlzLm5hbWU9Imlzb25hbWUiO3RoaXMuY2FsZW5kYXJTeW1ib2xzPW51bGw7dGhpcy5jdXJyZW5jeVN5bWJvbHM9bnVsbDt0aGlzLmRhdGVQYXR0ZXJucz1udWxsO3RoaXMuZGF0ZVRpbWVTeW1ib2xzPW51bGw7dGhpcy5udW1iZXJQYXR0ZXJucz1udWxsO3RoaXMubnVtYmVyU3ltYm9scz1udWxsO3RoaXMudGltZVBhdHRlcm5zPW51bGw7dGhpcy50eXBlRmFjZXM9bnVsbH19Y2xhc3MgbG9jYWxlX3NldF9Mb2NhbGVTZXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sImxvY2FsZVNldCIsITApO3RoaXMubG9jYWxlPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgTWVyaWRpZW0gZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sIm1lcmlkaWVtIil9fWNsYXNzIE1lcmlkaWVtTmFtZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sIm1lcmlkaWVtTmFtZXMiLCEwKTt0aGlzLm1lcmlkaWVtPW5ldyBYRkFPYmplY3RBcnJheSgyKX19Y2xhc3MgTW9udGggZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sIm1vbnRoIil9fWNsYXNzIE1vbnRoTmFtZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sIm1vbnRoTmFtZXMiLCEwKTt0aGlzLmFiYnI9Z2V0SW50ZWdlcih7ZGF0YTplLmFiYnIsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLm1vbnRoPW5ldyBYRkFPYmplY3RBcnJheSgxMil9fWNsYXNzIE51bWJlclBhdHRlcm4gZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoV28sIm51bWJlclBhdHRlcm4iKTt0aGlzLm5hbWU9Z2V0U3RyaW5nT3B0aW9uKGUubmFtZSxbImZ1bGwiLCJsb25nIiwibWVkIiwic2hvcnQiXSl9fWNsYXNzIE51bWJlclBhdHRlcm5zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFdvLCJudW1iZXJQYXR0ZXJucyIsITApO3RoaXMubnVtYmVyUGF0dGVybj1uZXcgWEZBT2JqZWN0QXJyYXkoNCl9fWNsYXNzIE51bWJlclN5bWJvbCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihXbywibnVtYmVyU3ltYm9sIik7dGhpcy5uYW1lPWdldFN0cmluZ09wdGlvbihlLm5hbWUsWyJkZWNpbWFsIiwiZ3JvdXBpbmciLCJwZXJjZW50IiwibWludXMiLCJ6ZXJvIl0pfX1jbGFzcyBOdW1iZXJTeW1ib2xzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFdvLCJudW1iZXJTeW1ib2xzIiwhMCk7dGhpcy5udW1iZXJTeW1ib2w9bmV3IFhGQU9iamVjdEFycmF5KDUpfX1jbGFzcyBUaW1lUGF0dGVybiBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihXbywidGltZVBhdHRlcm4iKTt0aGlzLm5hbWU9Z2V0U3RyaW5nT3B0aW9uKGUubmFtZSxbImZ1bGwiLCJsb25nIiwibWVkIiwic2hvcnQiXSl9fWNsYXNzIFRpbWVQYXR0ZXJucyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihXbywidGltZVBhdHRlcm5zIiwhMCk7dGhpcy50aW1lUGF0dGVybj1uZXcgWEZBT2JqZWN0QXJyYXkoNCl9fWNsYXNzIFR5cGVGYWNlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFdvLCJ0eXBlRmFjZSIsITApO3RoaXMubmFtZT0iInxlLm5hbWV9fWNsYXNzIFR5cGVGYWNlcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihXbywidHlwZUZhY2VzIiwhMCk7dGhpcy50eXBlRmFjZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIExvY2FsZVNldE5hbWVzcGFjZXtzdGF0aWNbdG9dKGUsdCl7aWYoTG9jYWxlU2V0TmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXJldHVybiBMb2NhbGVTZXROYW1lc3BhY2VbZV0odCl9c3RhdGljIGNhbGVuZGFyU3ltYm9scyhlKXtyZXR1cm4gbmV3IENhbGVuZGFyU3ltYm9scyhlKX1zdGF0aWMgY3VycmVuY3lTeW1ib2woZSl7cmV0dXJuIG5ldyBDdXJyZW5jeVN5bWJvbChlKX1zdGF0aWMgY3VycmVuY3lTeW1ib2xzKGUpe3JldHVybiBuZXcgQ3VycmVuY3lTeW1ib2xzKGUpfXN0YXRpYyBkYXRlUGF0dGVybihlKXtyZXR1cm4gbmV3IERhdGVQYXR0ZXJuKGUpfXN0YXRpYyBkYXRlUGF0dGVybnMoZSl7cmV0dXJuIG5ldyBEYXRlUGF0dGVybnMoZSl9c3RhdGljIGRhdGVUaW1lU3ltYm9scyhlKXtyZXR1cm4gbmV3IERhdGVUaW1lU3ltYm9scyhlKX1zdGF0aWMgZGF5KGUpe3JldHVybiBuZXcgRGF5KGUpfXN0YXRpYyBkYXlOYW1lcyhlKXtyZXR1cm4gbmV3IERheU5hbWVzKGUpfXN0YXRpYyBlcmEoZSl7cmV0dXJuIG5ldyBFcmEoZSl9c3RhdGljIGVyYU5hbWVzKGUpe3JldHVybiBuZXcgRXJhTmFtZXMoZSl9c3RhdGljIGxvY2FsZShlKXtyZXR1cm4gbmV3IGxvY2FsZV9zZXRfTG9jYWxlKGUpfXN0YXRpYyBsb2NhbGVTZXQoZSl7cmV0dXJuIG5ldyBsb2NhbGVfc2V0X0xvY2FsZVNldChlKX1zdGF0aWMgbWVyaWRpZW0oZSl7cmV0dXJuIG5ldyBNZXJpZGllbShlKX1zdGF0aWMgbWVyaWRpZW1OYW1lcyhlKXtyZXR1cm4gbmV3IE1lcmlkaWVtTmFtZXMoZSl9c3RhdGljIG1vbnRoKGUpe3JldHVybiBuZXcgTW9udGgoZSl9c3RhdGljIG1vbnRoTmFtZXMoZSl7cmV0dXJuIG5ldyBNb250aE5hbWVzKGUpfXN0YXRpYyBudW1iZXJQYXR0ZXJuKGUpe3JldHVybiBuZXcgTnVtYmVyUGF0dGVybihlKX1zdGF0aWMgbnVtYmVyUGF0dGVybnMoZSl7cmV0dXJuIG5ldyBOdW1iZXJQYXR0ZXJucyhlKX1zdGF0aWMgbnVtYmVyU3ltYm9sKGUpe3JldHVybiBuZXcgTnVtYmVyU3ltYm9sKGUpfXN0YXRpYyBudW1iZXJTeW1ib2xzKGUpe3JldHVybiBuZXcgTnVtYmVyU3ltYm9scyhlKX1zdGF0aWMgdGltZVBhdHRlcm4oZSl7cmV0dXJuIG5ldyBUaW1lUGF0dGVybihlKX1zdGF0aWMgdGltZVBhdHRlcm5zKGUpe3JldHVybiBuZXcgVGltZVBhdHRlcm5zKGUpfXN0YXRpYyB0eXBlRmFjZShlKXtyZXR1cm4gbmV3IFR5cGVGYWNlKGUpfXN0YXRpYyB0eXBlRmFjZXMoZSl7cmV0dXJuIG5ldyBUeXBlRmFjZXMoZSl9fWNvbnN0IEtvPW5vLnNpZ25hdHVyZS5pZDtjbGFzcyBzaWduYXR1cmVfU2lnbmF0dXJlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJzaWduYXR1cmUiLCEwKX19Y2xhc3MgU2lnbmF0dXJlTmFtZXNwYWNle3N0YXRpY1t0b10oZSx0KXtpZihTaWduYXR1cmVOYW1lc3BhY2UuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIFNpZ25hdHVyZU5hbWVzcGFjZVtlXSh0KX1zdGF0aWMgc2lnbmF0dXJlKGUpe3JldHVybiBuZXcgc2lnbmF0dXJlX1NpZ25hdHVyZShlKX19Y29uc3QgR289bm8uc3R5bGVzaGVldC5pZDtjbGFzcyBTdHlsZXNoZWV0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEdvLCJzdHlsZXNoZWV0IiwhMCl9fWNsYXNzIFN0eWxlc2hlZXROYW1lc3BhY2V7c3RhdGljW3RvXShlLHQpe2lmKFN0eWxlc2hlZXROYW1lc3BhY2UuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIFN0eWxlc2hlZXROYW1lc3BhY2VbZV0odCl9c3RhdGljIHN0eWxlc2hlZXQoZSl7cmV0dXJuIG5ldyBTdHlsZXNoZWV0KGUpfX1jb25zdCBWbz1uby54ZHAuaWQ7Y2xhc3MgeGRwX1hkcCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihWbywieGRwIiwhMCk7dGhpcy51dWlkPWUudXVpZHx8IiI7dGhpcy50aW1lU3RhbXA9ZS50aW1lU3RhbXB8fCIiO3RoaXMuY29uZmlnPW51bGw7dGhpcy5jb25uZWN0aW9uU2V0PW51bGw7dGhpcy5kYXRhc2V0cz1udWxsO3RoaXMubG9jYWxlU2V0PW51bGw7dGhpcy5zdHlsZXNoZWV0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRlbXBsYXRlPW51bGx9W1JpXShlKXtjb25zdCB0PW5vW2VbSGldXTtyZXR1cm4gdCYmZVtUaV09PT10LmlkfX1jbGFzcyBYZHBOYW1lc3BhY2V7c3RhdGljW3RvXShlLHQpe2lmKFhkcE5hbWVzcGFjZS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gWGRwTmFtZXNwYWNlW2VdKHQpfXN0YXRpYyB4ZHAoZSl7cmV0dXJuIG5ldyB4ZHBfWGRwKGUpfX1jb25zdCAkbz1uby54aHRtbC5pZCxZbz1TeW1ib2woKSxKbz1uZXcgU2V0KFsiY29sb3IiLCJmb250IiwiZm9udC1mYW1pbHkiLCJmb250LXNpemUiLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC13ZWlnaHQiLCJtYXJnaW4iLCJtYXJnaW4tYm90dG9tIiwibWFyZ2luLWxlZnQiLCJtYXJnaW4tcmlnaHQiLCJtYXJnaW4tdG9wIiwibGV0dGVyLXNwYWNpbmciLCJsaW5lLWhlaWdodCIsIm9ycGhhbnMiLCJwYWdlLWJyZWFrLWFmdGVyIiwicGFnZS1icmVhay1iZWZvcmUiLCJwYWdlLWJyZWFrLWluc2lkZSIsInRhYi1pbnRlcnZhbCIsInRhYi1zdG9wIiwidGV4dC1hbGlnbiIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtaW5kZW50IiwidmVydGljYWwtYWxpZ24iLCJ3aWRvd3MiLCJrZXJuaW5nLW1vZGUiLCJ4ZmEtZm9udC1ob3Jpem9udGFsLXNjYWxlIiwieGZhLWZvbnQtdmVydGljYWwtc2NhbGUiLCJ4ZmEtc3BhY2VydW4iLCJ4ZmEtdGFiLXN0b3BzIl0pLFFvPW5ldyBNYXAoW1sicGFnZS1icmVhay1hZnRlciIsImJyZWFrQWZ0ZXIiXSxbInBhZ2UtYnJlYWstYmVmb3JlIiwiYnJlYWtCZWZvcmUiXSxbInBhZ2UtYnJlYWstaW5zaWRlIiwiYnJlYWtJbnNpZGUiXSxbImtlcm5pbmctbW9kZSIsZT0+Im5vbmUiPT09ZT8ibm9uZSI6Im5vcm1hbCJdLFsieGZhLWZvbnQtaG9yaXpvbnRhbC1zY2FsZSIsZT0+YHNjYWxlWCgke01hdGgubWF4KDAscGFyc2VJbnQoZSkvMTAwKS50b0ZpeGVkKDIpfSlgXSxbInhmYS1mb250LXZlcnRpY2FsLXNjYWxlIixlPT5gc2NhbGVZKCR7TWF0aC5tYXgoMCxwYXJzZUludChlKS8xMDApLnRvRml4ZWQoMil9KWBdLFsieGZhLXNwYWNlcnVuIiwiIl0sWyJ4ZmEtdGFiLXN0b3BzIiwiIl0sWyJmb250LXNpemUiLChlLHQpPT5tZWFzdXJlVG9TdHJpbmcoLjk5KihlPXQuZm9udFNpemU9TWF0aC5hYnMoZ2V0TWVhc3VyZW1lbnQoZSkpKSldLFsibGV0dGVyLXNwYWNpbmciLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsibGluZS1oZWlnaHQiLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsibWFyZ2luIixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbIm1hcmdpbi1ib3R0b20iLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsibWFyZ2luLWxlZnQiLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsibWFyZ2luLXJpZ2h0IixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbIm1hcmdpbi10b3AiLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsidGV4dC1pbmRlbnQiLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsiZm9udC1mYW1pbHkiLGU9PmVdLFsidmVydGljYWwtYWxpZ24iLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldXSksWm89L1xzKy9nLGVsPS9bXHJcbl0rL2csdGw9L1xyXG4/L2c7ZnVuY3Rpb24gbWFwU3R5bGUoZSx0LG4pe2NvbnN0IGE9T2JqZWN0LmNyZWF0ZShudWxsKTtpZighZSlyZXR1cm4gYTtjb25zdCBzPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W3Qsbl1vZiBlLnNwbGl0KCI7IikubWFwKGU9PmUuc3BsaXQoIjoiLDIpKSl7Y29uc3QgZT1Rby5nZXQodCk7aWYoIiI9PT1lKWNvbnRpbnVlO2xldCByPW47ZSYmKHI9InN0cmluZyI9PXR5cGVvZiBlP2U6ZShuLHMpKTt0LmVuZHNXaXRoKCJzY2FsZSIpP2EudHJhbnNmb3JtPWEudHJhbnNmb3JtP2Ake2FbdF19ICR7cn1gOnI6YVt0LnJlcGxhY2VBbGwoLy0oW2EtekEtWl0pL2csKGUsdCk9PnQudG9VcHBlckNhc2UoKSldPXJ9YS5mb250RmFtaWx5JiZzZXRGb250RmFtaWx5KHt0eXBlZmFjZTphLmZvbnRGYW1pbHksd2VpZ2h0OmEuZm9udFdlaWdodHx8Im5vcm1hbCIscG9zdHVyZTphLmZvbnRTdHlsZXx8Im5vcm1hbCIsc2l6ZTpzLmZvbnRTaXplfHwwfSx0LHRbZGldLmZvbnRGaW5kZXIsYSk7aWYobiYmYS52ZXJ0aWNhbEFsaWduJiYiMHB4IiE9PWEudmVydGljYWxBbGlnbiYmYS5mb250U2l6ZSl7Y29uc3QgZT0uNTgzLHQ9LjMzMyxuPWdldE1lYXN1cmVtZW50KGEuZm9udFNpemUpO2EuZm9udFNpemU9bWVhc3VyZVRvU3RyaW5nKG4qZSk7YS52ZXJ0aWNhbEFsaWduPW1lYXN1cmVUb1N0cmluZyhNYXRoLnNpZ24oZ2V0TWVhc3VyZW1lbnQoYS52ZXJ0aWNhbEFsaWduKSkqbip0KX1uJiZhLmZvbnRTaXplJiYoYS5mb250U2l6ZT1gY2FsYygke2EuZm9udFNpemV9ICogdmFyKC0tdG90YWwtc2NhbGUtZmFjdG9yKSlgKTtmaXhUZXh0SW5kZW50KGEpO3JldHVybiBhfWNvbnN0IG5sPW5ldyBTZXQoWyJib2R5IiwiaHRtbCJdKTtjbGFzcyBYaHRtbE9iamVjdCBleHRlbmRzIFhtbE9iamVjdHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCRvLHQpO3RoaXNbWW9dPSExO3RoaXMuc3R5bGU9ZS5zdHlsZXx8IiJ9W19yXShlKXtzdXBlcltfcl0oZSk7dGhpcy5zdHlsZT1mdW5jdGlvbiBjaGVja1N0eWxlKGUpe3JldHVybiBlLnN0eWxlP2Uuc3R5bGUuc3BsaXQoIjsiKS5maWx0ZXIoZT0+ISFlLnRyaW0oKSkubWFwKGU9PmUuc3BsaXQoIjoiLDIpLm1hcChlPT5lLnRyaW0oKSkpLmZpbHRlcigoW3Qsbl0pPT57ImZvbnQtZmFtaWx5Ij09PXQmJmVbZGldLnVzZWRUeXBlZmFjZXMuYWRkKG4pO3JldHVybiBKby5oYXModCl9KS5tYXAoZT0+ZS5qb2luKCI6IikpLmpvaW4oIjsiKToiIn0odGhpcyl9W05yXSgpe3JldHVybiFubC5oYXModGhpc1tIaV0pfVtEaV0oZSx0PSExKXtpZih0KXRoaXNbWW9dPSEwO2Vsc2V7ZT1lLnJlcGxhY2VBbGwoZWwsIiIpO3RoaXMuc3R5bGUuaW5jbHVkZXMoInhmYS1zcGFjZXJ1bjp5ZXMiKXx8KGU9ZS5yZXBsYWNlQWxsKFpvLCIgIikpfWUmJih0aGlzW1ZyXSs9ZSl9W01pXShlLHQ9ITApe2NvbnN0IG49T2JqZWN0LmNyZWF0ZShudWxsKSxhPXt0b3A6TmFOLGJvdHRvbTpOYU4sbGVmdDpOYU4scmlnaHQ6TmFOfTtsZXQgcz1udWxsO2Zvcihjb25zdFtlLHRdb2YgdGhpcy5zdHlsZS5zcGxpdCgiOyIpLm1hcChlPT5lLnNwbGl0KCI6IiwyKSkpc3dpdGNoKGUpe2Nhc2UiZm9udC1mYW1pbHkiOm4udHlwZWZhY2U9c3RyaXBRdW90ZXModCk7YnJlYWs7Y2FzZSJmb250LXNpemUiOm4uc2l6ZT1nZXRNZWFzdXJlbWVudCh0KTticmVhaztjYXNlImZvbnQtd2VpZ2h0IjpuLndlaWdodD10O2JyZWFrO2Nhc2UiZm9udC1zdHlsZSI6bi5wb3N0dXJlPXQ7YnJlYWs7Y2FzZSJsZXR0ZXItc3BhY2luZyI6bi5sZXR0ZXJTcGFjaW5nPWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibWFyZ2luIjpjb25zdCBlPXQuc3BsaXQoLyBcdC8pLm1hcChlPT5nZXRNZWFzdXJlbWVudChlKSk7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDE6YS50b3A9YS5ib3R0b209YS5sZWZ0PWEucmlnaHQ9ZVswXTticmVhaztjYXNlIDI6YS50b3A9YS5ib3R0b209ZVswXTthLmxlZnQ9YS5yaWdodD1lWzFdO2JyZWFrO2Nhc2UgMzphLnRvcD1lWzBdO2EuYm90dG9tPWVbMl07YS5sZWZ0PWEucmlnaHQ9ZVsxXTticmVhaztjYXNlIDQ6YS50b3A9ZVswXTthLmxlZnQ9ZVsxXTthLmJvdHRvbT1lWzJdO2EucmlnaHQ9ZVszXX1icmVhaztjYXNlIm1hcmdpbi10b3AiOmEudG9wPWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibWFyZ2luLWJvdHRvbSI6YS5ib3R0b209Z2V0TWVhc3VyZW1lbnQodCk7YnJlYWs7Y2FzZSJtYXJnaW4tbGVmdCI6YS5sZWZ0PWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibWFyZ2luLXJpZ2h0IjphLnJpZ2h0PWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibGluZS1oZWlnaHQiOnM9Z2V0TWVhc3VyZW1lbnQodCl9ZS5wdXNoRGF0YShuLGEscyk7aWYodGhpc1tWcl0pZS5hZGRTdHJpbmcodGhpc1tWcl0pO2Vsc2UgZm9yKGNvbnN0IHQgb2YgdGhpc1tmaV0oKSkiI3RleHQiIT09dFtIaV0/dFtNaV0oZSk6ZS5hZGRTdHJpbmcodFtWcl0pO3QmJmUucG9wRm9udCgpfVtKaV0oZSl7Y29uc3QgdD1bXTt0aGlzW0pyXT17Y2hpbGRyZW46dH07dGhpc1tVcl0oe30pO2lmKDA9PT10Lmxlbmd0aCYmIXRoaXNbVnJdKXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO2xldCBuO249dGhpc1tZb10/dGhpc1tWcl0/dGhpc1tWcl0ucmVwbGFjZUFsbCh0bCwiXG4iKTp2b2lkIDA6dGhpc1tWcl18fHZvaWQgMDtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOnRoaXNbSGldLGF0dHJpYnV0ZXM6e2hyZWY6dGhpcy5ocmVmLHN0eWxlOm1hcFN0eWxlKHRoaXMuc3R5bGUsdGhpcyx0aGlzW1lvXSl9LGNoaWxkcmVuOnQsdmFsdWU6bn0pfX1jbGFzcyBBIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiYSIpO3RoaXMuaHJlZj1maXhVUkwoZS5ocmVmKXx8IiJ9fWNsYXNzIEIgZXh0ZW5kcyBYaHRtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJiIil9W01pXShlKXtlLnB1c2hGb250KHt3ZWlnaHQ6ImJvbGQifSk7c3VwZXJbTWldKGUpO2UucG9wRm9udCgpfX1jbGFzcyBCb2R5IGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiYm9keSIpfVtKaV0oZSl7Y29uc3QgdD1zdXBlcltKaV0oZSkse2h0bWw6bn09dDtpZighbilyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTtuLm5hbWU9ImRpdiI7bi5hdHRyaWJ1dGVzLmNsYXNzPVsieGZhUmljaCJdO3JldHVybiB0fX1jbGFzcyBCciBleHRlbmRzIFhodG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsImJyIil9WyRpXSgpe3JldHVybiJcbiJ9W01pXShlKXtlLmFkZFN0cmluZygiXG4iKX1bSmldKGUpe3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImJyIn0pfX1jbGFzcyBIdG1sIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiaHRtbCIpfVtKaV0oZSl7Y29uc3QgdD1bXTt0aGlzW0pyXT17Y2hpbGRyZW46dH07dGhpc1tVcl0oe30pO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhUmljaCJdLHN0eWxlOnt9fSx2YWx1ZTp0aGlzW1ZyXXx8IiJ9KTtpZigxPT09dC5sZW5ndGgpe2NvbnN0IGU9dFswXTtpZihlLmF0dHJpYnV0ZXM/LmNsYXNzLmluY2x1ZGVzKCJ4ZmFSaWNoIikpcmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhlKX1yZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhUmljaCJdLHN0eWxlOnt9fSxjaGlsZHJlbjp0fSl9fWNsYXNzIEkgZXh0ZW5kcyBYaHRtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJpIil9W01pXShlKXtlLnB1c2hGb250KHtwb3N0dXJlOiJpdGFsaWMifSk7c3VwZXJbTWldKGUpO2UucG9wRm9udCgpfX1jbGFzcyBMaSBleHRlbmRzIFhodG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsImxpIil9fWNsYXNzIE9sIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwib2wiKX19Y2xhc3MgUCBleHRlbmRzIFhodG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsInAiKX1bTWldKGUpe3N1cGVyW01pXShlLCExKTtlLmFkZFN0cmluZygiXG4iKTtlLmFkZFBhcmEoKTtlLnBvcEZvbnQoKX1bJGldKCl7cmV0dXJuIHRoaXNbbWldKClbZmldKCkuYXQoLTEpPT09dGhpcz9zdXBlclskaV0oKTpzdXBlclskaV0oKSsiXG4ifX1jbGFzcyBTcGFuIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwic3BhbiIpfX1jbGFzcyBTdWIgZXh0ZW5kcyBYaHRtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJzdWIiKX19Y2xhc3MgU3VwIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwic3VwIil9fWNsYXNzIFVsIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwidWwiKX19Y2xhc3MgWGh0bWxOYW1lc3BhY2V7c3RhdGljW3RvXShlLHQpe2lmKFhodG1sTmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXJldHVybiBYaHRtbE5hbWVzcGFjZVtlXSh0KX1zdGF0aWMgYShlKXtyZXR1cm4gbmV3IEEoZSl9c3RhdGljIGIoZSl7cmV0dXJuIG5ldyBCKGUpfXN0YXRpYyBib2R5KGUpe3JldHVybiBuZXcgQm9keShlKX1zdGF0aWMgYnIoZSl7cmV0dXJuIG5ldyBCcihlKX1zdGF0aWMgaHRtbChlKXtyZXR1cm4gbmV3IEh0bWwoZSl9c3RhdGljIGkoZSl7cmV0dXJuIG5ldyBJKGUpfXN0YXRpYyBsaShlKXtyZXR1cm4gbmV3IExpKGUpfXN0YXRpYyBvbChlKXtyZXR1cm4gbmV3IE9sKGUpfXN0YXRpYyBwKGUpe3JldHVybiBuZXcgUChlKX1zdGF0aWMgc3BhbihlKXtyZXR1cm4gbmV3IFNwYW4oZSl9c3RhdGljIHN1YihlKXtyZXR1cm4gbmV3IFN1YihlKX1zdGF0aWMgc3VwKGUpe3JldHVybiBuZXcgU3VwKGUpfXN0YXRpYyB1bChlKXtyZXR1cm4gbmV3IFVsKGUpfX1jb25zdCBhbD17Y29uZmlnOkNvbmZpZ05hbWVzcGFjZSxjb25uZWN0aW9uOkNvbm5lY3Rpb25TZXROYW1lc3BhY2UsZGF0YXNldHM6RGF0YXNldHNOYW1lc3BhY2UsbG9jYWxlU2V0OkxvY2FsZVNldE5hbWVzcGFjZSxzaWduYXR1cmU6U2lnbmF0dXJlTmFtZXNwYWNlLHN0eWxlc2hlZXQ6U3R5bGVzaGVldE5hbWVzcGFjZSx0ZW1wbGF0ZTpUZW1wbGF0ZU5hbWVzcGFjZSx4ZHA6WGRwTmFtZXNwYWNlLHhodG1sOlhodG1sTmFtZXNwYWNlfTtjbGFzcyBVbmtub3duTmFtZXNwYWNle2NvbnN0cnVjdG9yKGUpe3RoaXMubmFtZXNwYWNlSWQ9ZX1bdG9dKGUsdCl7cmV0dXJuIG5ldyBYbWxPYmplY3QodGhpcy5uYW1lc3BhY2VJZCxlLHQpfX1jbGFzcyBSb290IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKC0xLCJyb290IixPYmplY3QuY3JlYXRlKG51bGwpKTt0aGlzLmVsZW1lbnQ9bnVsbDt0aGlzW2JpXT1lfVtCaV0oZSl7dGhpcy5lbGVtZW50PWU7cmV0dXJuITB9W1FyXSgpe3N1cGVyW1FyXSgpO2lmKHRoaXMuZWxlbWVudC50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlKXt0aGlzW2JpXS5zZXQoemksdGhpcy5lbGVtZW50KTt0aGlzLmVsZW1lbnQudGVtcGxhdGVbX2ldKHRoaXNbYmldKTt0aGlzLmVsZW1lbnQudGVtcGxhdGVbYmldPXRoaXNbYmldfX19Y2xhc3MgRW1wdHkgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoKXtzdXBlcigtMSwiIixPYmplY3QuY3JlYXRlKG51bGwpKX1bQmldKGUpe3JldHVybiExfX1jbGFzcyBCdWlsZGVye2NvbnN0cnVjdG9yKGU9bnVsbCl7dGhpcy5fbmFtZXNwYWNlU3RhY2s9W107dGhpcy5fbnNBZ25vc3RpY0xldmVsPTA7dGhpcy5fbmFtZXNwYWNlUHJlZml4ZXM9bmV3IE1hcDt0aGlzLl9uYW1lc3BhY2VzPW5ldyBNYXA7dGhpcy5fbmV4dE5zSWQ9TWF0aC5tYXgoLi4uT2JqZWN0LnZhbHVlcyhubykubWFwKCh7aWQ6ZX0pPT5lKSk7dGhpcy5fY3VycmVudE5hbWVzcGFjZT1lfHxuZXcgVW5rbm93bk5hbWVzcGFjZSgrK3RoaXMuX25leHROc0lkKX1idWlsZFJvb3QoZSl7cmV0dXJuIG5ldyBSb290KGUpfWJ1aWxkKHtuc1ByZWZpeDplLG5hbWU6dCxhdHRyaWJ1dGVzOm4sbmFtZXNwYWNlOmEscHJlZml4ZXM6c30pe2NvbnN0IHI9bnVsbCE9PWE7aWYocil7dGhpcy5fbmFtZXNwYWNlU3RhY2sucHVzaCh0aGlzLl9jdXJyZW50TmFtZXNwYWNlKTt0aGlzLl9jdXJyZW50TmFtZXNwYWNlPXRoaXMuX3NlYXJjaE5hbWVzcGFjZShhKX1zJiZ0aGlzLl9hZGROYW1lc3BhY2VQcmVmaXgocyk7aWYobi5oYXNPd25Qcm9wZXJ0eShPaSkpe2NvbnN0IGU9YWwuZGF0YXNldHMsdD1uW09pXTtsZXQgYT1udWxsO2Zvcihjb25zdFtuLHNdb2YgT2JqZWN0LmVudHJpZXModCkpe2lmKHRoaXMuX2dldE5hbWVzcGFjZVRvVXNlKG4pPT09ZSl7YT17eGZhOnN9O2JyZWFrfX1hP25bT2ldPWE6ZGVsZXRlIG5bT2ldfWNvbnN0IGk9dGhpcy5fZ2V0TmFtZXNwYWNlVG9Vc2UoZSksbz1pPy5bdG9dKHQsbil8fG5ldyBFbXB0eTtvW1NpXSgpJiZ0aGlzLl9uc0Fnbm9zdGljTGV2ZWwrKzsocnx8c3x8b1tTaV0oKSkmJihvW1dyXT17aGFzTmFtZXNwYWNlOnIscHJlZml4ZXM6cyxuc0Fnbm9zdGljOm9bU2ldKCl9KTtyZXR1cm4gb31pc05zQWdub3N0aWMoKXtyZXR1cm4gdGhpcy5fbnNBZ25vc3RpY0xldmVsPjB9X3NlYXJjaE5hbWVzcGFjZShlKXtsZXQgdD10aGlzLl9uYW1lc3BhY2VzLmdldChlKTtpZih0KXJldHVybiB0O2Zvcihjb25zdFtuLHtjaGVjazphfV1vZiBPYmplY3QuZW50cmllcyhubykpaWYoYShlKSl7dD1hbFtuXTtpZih0KXt0aGlzLl9uYW1lc3BhY2VzLnNldChlLHQpO3JldHVybiB0fWJyZWFrfXQ9bmV3IFVua25vd25OYW1lc3BhY2UoKyt0aGlzLl9uZXh0TnNJZCk7dGhpcy5fbmFtZXNwYWNlcy5zZXQoZSx0KTtyZXR1cm4gdH1fYWRkTmFtZXNwYWNlUHJlZml4KGUpe2Zvcihjb25zdHtwcmVmaXg6dCx2YWx1ZTpufW9mIGUpe2NvbnN0IGU9dGhpcy5fc2VhcmNoTmFtZXNwYWNlKG4pO3RoaXMuX25hbWVzcGFjZVByZWZpeGVzLmdldE9ySW5zZXJ0Q29tcHV0ZWQodCxtYWtlQXJyKS5wdXNoKGUpfX1fZ2V0TmFtZXNwYWNlVG9Vc2UoZSl7aWYoIWUpcmV0dXJuIHRoaXMuX2N1cnJlbnROYW1lc3BhY2U7Y29uc3QgdD10aGlzLl9uYW1lc3BhY2VQcmVmaXhlcy5nZXQoZSk7aWYodD8ubGVuZ3RoPjApcmV0dXJuIHQuYXQoLTEpO3dhcm4oYFVua25vd24gbmFtZXNwYWNlIHByZWZpeDogJHtlfS5gKTtyZXR1cm4gbnVsbH1jbGVhbihlKXtjb25zdHtoYXNOYW1lc3BhY2U6dCxwcmVmaXhlczpuLG5zQWdub3N0aWM6YX09ZTt0JiYodGhpcy5fY3VycmVudE5hbWVzcGFjZT10aGlzLl9uYW1lc3BhY2VTdGFjay5wb3AoKSk7biYmbi5mb3JFYWNoKCh7cHJlZml4OmV9KT0+e3RoaXMuX25hbWVzcGFjZVByZWZpeGVzLmdldChlKS5wb3AoKX0pO2EmJnRoaXMuX25zQWdub3N0aWNMZXZlbC0tfX1jbGFzcyBYRkFQYXJzZXIgZXh0ZW5kcyBYTUxQYXJzZXJCYXNle2NvbnN0cnVjdG9yKGU9bnVsbCx0PSExKXtzdXBlcigpO3RoaXMuX2J1aWxkZXI9bmV3IEJ1aWxkZXIoZSk7dGhpcy5fc3RhY2s9W107dGhpcy5fZ2xvYmFsRGF0YT17dXNlZFR5cGVmYWNlczpuZXcgU2V0fTt0aGlzLl9pZHM9bmV3IE1hcDt0aGlzLl9jdXJyZW50PXRoaXMuX2J1aWxkZXIuYnVpbGRSb290KHRoaXMuX2lkcyk7dGhpcy5fZXJyb3JDb2RlPXhyO3RoaXMuX3doaXRlUmVnZXg9L15ccyskLzt0aGlzLl9uYnNwcz0vXHhhMCsvZzt0aGlzLl9yaWNoVGV4dD10fXBhcnNlKGUpe3RoaXMucGFyc2VYbWwoZSk7aWYodGhpcy5fZXJyb3JDb2RlPT09eHIpe3RoaXMuX2N1cnJlbnRbUXJdKCk7cmV0dXJuIHRoaXMuX2N1cnJlbnQuZWxlbWVudH19b25UZXh0KGUpe2U9ZS5yZXBsYWNlKHRoaXMuX25ic3BzLGU9PmUuc2xpY2UoMSkrIiAiKTt0aGlzLl9yaWNoVGV4dHx8dGhpcy5fY3VycmVudFtOcl0oKT90aGlzLl9jdXJyZW50W0RpXShlLHRoaXMuX3JpY2hUZXh0KTp0aGlzLl93aGl0ZVJlZ2V4LnRlc3QoZSl8fHRoaXMuX2N1cnJlbnRbRGldKGUudHJpbSgpKX1vbkNkYXRhKGUpe3RoaXMuX2N1cnJlbnRbRGldKGUpfV9ta0F0dHJpYnV0ZXMoZSx0KXtsZXQgbj1udWxsLGE9bnVsbDtjb25zdCBzPU9iamVjdC5jcmVhdGUoe30pO2Zvcihjb25zdHtuYW1lOnIsdmFsdWU6aX1vZiBlKWlmKCJ4bWxucyI9PT1yKW4/d2FybihgWEZBIC0gbXVsdGlwbGUgbmFtZXNwYWNlIGRlZmluaXRpb24gaW4gPCR7dH0+YCk6bj1pO2Vsc2UgaWYoci5zdGFydHNXaXRoKCJ4bWxuczoiKSl7Y29uc3QgZT1yLnN1YnN0cmluZyg2KTthPz89W107YS5wdXNoKHtwcmVmaXg6ZSx2YWx1ZTppfSl9ZWxzZXtjb25zdCBlPXIuaW5kZXhPZigiOiIpO2lmKC0xPT09ZSlzW3JdPWk7ZWxzZXtjb25zdCB0PXNbT2ldPz89T2JqZWN0LmNyZWF0ZShudWxsKSxbbixhXT1bci5zbGljZSgwLGUpLHIuc2xpY2UoZSsxKV07KHRbbl18fD1PYmplY3QuY3JlYXRlKG51bGwpKVthXT1pfX1yZXR1cm5bbixhLHNdfV9nZXROYW1lQW5kUHJlZml4KGUsdCl7Y29uc3Qgbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4tMT09PW4/W2UsbnVsbF06W2Uuc3Vic3RyaW5nKG4rMSksdD8iIjplLnN1YnN0cmluZygwLG4pXX1vbkJlZ2luRWxlbWVudChlLHQsbil7Y29uc3RbYSxzLHJdPXRoaXMuX21rQXR0cmlidXRlcyh0LGUpLFtpLG9dPXRoaXMuX2dldE5hbWVBbmRQcmVmaXgoZSx0aGlzLl9idWlsZGVyLmlzTnNBZ25vc3RpYygpKSxsPXRoaXMuX2J1aWxkZXIuYnVpbGQoe25zUHJlZml4Om8sbmFtZTppLGF0dHJpYnV0ZXM6cixuYW1lc3BhY2U6YSxwcmVmaXhlczpzfSk7bFtkaV09dGhpcy5fZ2xvYmFsRGF0YTtpZihuKXtsW1FyXSgpO3RoaXMuX2N1cnJlbnRbQmldKGwpJiZsW1dpXSh0aGlzLl9pZHMpO2xbX3JdKHRoaXMuX2J1aWxkZXIpfWVsc2V7dGhpcy5fc3RhY2sucHVzaCh0aGlzLl9jdXJyZW50KTt0aGlzLl9jdXJyZW50PWx9fW9uRW5kRWxlbWVudChlKXtjb25zdCB0PXRoaXMuX2N1cnJlbnQ7aWYodFtraV0oKSYmInN0cmluZyI9PXR5cGVvZiB0W1ZyXSl7Y29uc3QgZT1uZXcgWEZBUGFyc2VyO2UuX2dsb2JhbERhdGE9dGhpcy5fZ2xvYmFsRGF0YTtjb25zdCBuPWUucGFyc2UodFtWcl0pO3RbVnJdPW51bGw7dFtCaV0obil9dFtRcl0oKTt0aGlzLl9jdXJyZW50PXRoaXMuX3N0YWNrLnBvcCgpO3RoaXMuX2N1cnJlbnRbQmldKHQpJiZ0W1dpXSh0aGlzLl9pZHMpO3RbX3JdKHRoaXMuX2J1aWxkZXIpfW9uRXJyb3IoZSl7dGhpcy5fZXJyb3JDb2RlPWV9fWNsYXNzIFhGQUZhY3Rvcnl7Y29uc3RydWN0b3IoZSl7dHJ5e3RoaXMucm9vdD0obmV3IFhGQVBhcnNlcikucGFyc2UoWEZBRmFjdG9yeS5fY3JlYXRlRG9jdW1lbnQoZSkpO2NvbnN0IHQ9bmV3IEJpbmRlcih0aGlzLnJvb3QpO3RoaXMuZm9ybT10LmJpbmQoKTt0aGlzLmRhdGFIYW5kbGVyPW5ldyBEYXRhSGFuZGxlcih0aGlzLnJvb3QsdC5nZXREYXRhKCkpO3RoaXMuZm9ybVtkaV0udGVtcGxhdGU9dGhpcy5mb3JtfWNhdGNoKGUpe3dhcm4oYFhGQSAtIGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBwYXJzaW5nIGFuZCBiaW5kaW5nOiAke2V9YCl9fWlzVmFsaWQoKXtyZXR1cm4hKCF0aGlzLnJvb3R8fCF0aGlzLmZvcm0pfV9jcmVhdGVQYWdlc0hlbHBlcigpe2NvbnN0IGU9dGhpcy5mb3JtW1lpXSgpO3JldHVybiBuZXcgUHJvbWlzZSgodCxuKT0+e2NvbnN0IG5leHRJdGVyYXRpb249KCk9Pnt0cnl7Y29uc3Qgbj1lLm5leHQoKTtuLmRvbmU/dChuLnZhbHVlKTpzZXRUaW1lb3V0KG5leHRJdGVyYXRpb24sMCl9Y2F0Y2goZSl7bihlKX19O3NldFRpbWVvdXQobmV4dEl0ZXJhdGlvbiwwKX0pfWFzeW5jIF9jcmVhdGVQYWdlcygpe3RyeXt0aGlzLnBhZ2VzPWF3YWl0IHRoaXMuX2NyZWF0ZVBhZ2VzSGVscGVyKCk7dGhpcy5kaW1zPXRoaXMucGFnZXMuY2hpbGRyZW4ubWFwKGU9Pntjb25zdHt3aWR0aDp0LGhlaWdodDpufT1lLmF0dHJpYnV0ZXMuc3R5bGU7cmV0dXJuWzAsMCxwYXJzZUludCh0KSxwYXJzZUludChuKV19KX1jYXRjaChlKXt3YXJuKGBYRkEgLSBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgbGF5b3V0OiAke2V9YCl9fWdldEJvdW5kaW5nQm94KGUpe3JldHVybiB0aGlzLmRpbXNbZV19YXN5bmMgZ2V0TnVtUGFnZXMoKXt0aGlzLnBhZ2VzfHxhd2FpdCB0aGlzLl9jcmVhdGVQYWdlcygpO3JldHVybiB0aGlzLmRpbXMubGVuZ3RofXNldEltYWdlcyhlKXt0aGlzLmZvcm1bZGldLmltYWdlcz1lfXNldEZvbnRzKGUpe3RoaXMuZm9ybVtkaV0uZm9udEZpbmRlcj1uZXcgRm9udEZpbmRlcihlKTtjb25zdCB0PVtdO2ZvcihsZXQgZSBvZiB0aGlzLmZvcm1bZGldLnVzZWRUeXBlZmFjZXMpe2U9c3RyaXBRdW90ZXMoZSk7dGhpcy5mb3JtW2RpXS5mb250RmluZGVyLmZpbmQoZSl8fHQucHVzaChlKX1yZXR1cm4gdC5sZW5ndGg+MD90Om51bGx9YXBwZW5kRm9udHMoZSx0KXt0aGlzLmZvcm1bZGldLmZvbnRGaW5kZXIuYWRkKGUsdCl9YXN5bmMgZ2V0UGFnZXMoKXt0aGlzLnBhZ2VzfHxhd2FpdCB0aGlzLl9jcmVhdGVQYWdlcygpO2NvbnN0IGU9dGhpcy5wYWdlczt0aGlzLnBhZ2VzPW51bGw7cmV0dXJuIGV9c2VyaWFsaXplRGF0YShlKXtyZXR1cm4gdGhpcy5kYXRhSGFuZGxlci5zZXJpYWxpemUoZSl9c3RhdGljIF9jcmVhdGVEb2N1bWVudChlKXtyZXR1cm4gZVsiL3hkcDp4ZHAiXT9PYmplY3QudmFsdWVzKGUpLmpvaW4oIiIpOmVbInhkcDp4ZHAiXX1zdGF0aWMgZ2V0UmljaFRleHRBc0h0bWwoZSl7aWYoIWV8fCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gbnVsbDt0cnl7bGV0IHQ9bmV3IFhGQVBhcnNlcihYaHRtbE5hbWVzcGFjZSwhMCkucGFyc2UoZSk7aWYoIVsiYm9keSIsInhodG1sIl0uaW5jbHVkZXModFtIaV0pKXtjb25zdCBlPVhodG1sTmFtZXNwYWNlLmJvZHkoe30pO2VbTHJdKHQpO3Q9ZX1jb25zdCBuPXRbSmldKCk7aWYoIW4uc3VjY2VzcylyZXR1cm4gbnVsbDtjb25zdHtodG1sOmF9PW4se2F0dHJpYnV0ZXM6c309YTtpZihzKXtzLmNsYXNzJiYocy5jbGFzcz1zLmNsYXNzLmZpbHRlcihlPT4hZS5zdGFydHNXaXRoKCJ4ZmEiKSkpO3MuZGlyPSJhdXRvIn1yZXR1cm57aHRtbDphLHN0cjp0WyRpXSgpfX1jYXRjaChlKXt3YXJuKGBYRkEgLSBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgcGFyc2luZyBvZiByaWNoIHRleHQ6ICR7ZX1gKX1yZXR1cm4gbnVsbH19Y2xhc3MgQW5ub3RhdGlvbkZhY3Rvcnl7c3RhdGljIGNyZWF0ZUdsb2JhbHMoZSl7cmV0dXJuIFByb21pc2UuYWxsKFtlLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIiksZS5lbnN1cmVEb2MoInhmYURhdGFzZXRzIiksZS5lbnN1cmVDYXRhbG9nKCJzdHJ1Y3RUcmVlUm9vdCIpLGUuZW5zdXJlQ2F0YWxvZygiYmFzZVVybCIpLGUuZW5zdXJlQ2F0YWxvZygiYXR0YWNobWVudHMiKSxlLmVuc3VyZUNhdGFsb2coImdsb2JhbENvbG9yU3BhY2VDYWNoZSIpXSkudGhlbigoW3QsbixhLHMscixpXSk9Pih7cGRmTWFuYWdlcjplLGFjcm9Gb3JtOnQgaW5zdGFuY2VvZiBEaWN0P3Q6RGljdC5lbXB0eSx4ZmFEYXRhc2V0czpuLHN0cnVjdFRyZWVSb290OmEsYmFzZVVybDpzLGF0dGFjaG1lbnRzOnIsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOml9KSxlPT57d2FybihgY3JlYXRlR2xvYmFsczogIiR7ZX0iLmApO3JldHVybiBudWxsfSl9c3RhdGljIGFzeW5jIGNyZWF0ZShlLHQsbixhLHMscixpLG8pe2NvbnN0IGw9cz9hd2FpdCB0aGlzLl9nZXRQYWdlSW5kZXgoZSx0LG4ucGRmTWFuYWdlcik6bnVsbDtyZXR1cm4gbi5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJfY3JlYXRlIixbZSx0LG4sYSxzLHIsaSxsLG9dKX1zdGF0aWMgX2NyZWF0ZShlLHQsbixhLHM9ITEscj1udWxsLGk9bnVsbCxvPW51bGwsbD1udWxsKXtjb25zdCBmPWUuZmV0Y2hJZlJlZih0KTtpZighKGYgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47bGV0IGM9Zi5nZXQoIlN1YnR5cGUiKTtjPWMgaW5zdGFuY2VvZiBOYW1lP2MubmFtZTpudWxsO2lmKGkmJiFpLmhhcyhUW2M/LnRvVXBwZXJDYXNlKCldKSlyZXR1cm4gbnVsbDtjb25zdHthY3JvRm9ybTpoLHBkZk1hbmFnZXI6dX09bixtPXQgaW5zdGFuY2VvZiBSZWY/dC50b1N0cmluZygpOmBhbm5vdF8ke2EuY3JlYXRlT2JqSWQoKX1gLHA9e3hyZWY6ZSxyZWY6dCxkaWN0OmYsc3VidHlwZTpjLGlkOm0sYW5ub3RhdGlvbkdsb2JhbHM6bixjb2xsZWN0RmllbGRzOnMsb3JwaGFuRmllbGRzOnIsbmVlZEFwcGVhcmFuY2VzOiFzJiYhMD09PWguZ2V0KCJOZWVkQXBwZWFyYW5jZXMiKSxwYWdlSW5kZXg6byxldmFsdWF0b3JPcHRpb25zOnUuZXZhbHVhdG9yT3B0aW9ucyxwYWdlUmVmOmx9O3N3aXRjaChjKXtjYXNlIkxpbmsiOnJldHVybiBuZXcgTGlua0Fubm90YXRpb24ocCk7Y2FzZSJUZXh0IjpyZXR1cm4gbmV3IFRleHRBbm5vdGF0aW9uKHApO2Nhc2UiV2lkZ2V0IjpsZXQgZT1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OmYsa2V5OiJGVCJ9KTtlPWUgaW5zdGFuY2VvZiBOYW1lP2UubmFtZTpudWxsO3N3aXRjaChlKXtjYXNlIlR4IjpyZXR1cm4gbmV3IFRleHRXaWRnZXRBbm5vdGF0aW9uKHApO2Nhc2UiQnRuIjpyZXR1cm4gbmV3IEJ1dHRvbldpZGdldEFubm90YXRpb24ocCk7Y2FzZSJDaCI6cmV0dXJuIG5ldyBDaG9pY2VXaWRnZXRBbm5vdGF0aW9uKHApO2Nhc2UiU2lnIjpyZXR1cm4gbmV3IFNpZ25hdHVyZVdpZGdldEFubm90YXRpb24ocCl9d2FybihgVW5pbXBsZW1lbnRlZCB3aWRnZXQgZmllbGQgdHlwZSAiJHtlfSIsIGZhbGxpbmcgYmFjayB0byBiYXNlIGZpZWxkIHR5cGUuYCk7cmV0dXJuIG5ldyBXaWRnZXRBbm5vdGF0aW9uKHApO2Nhc2UiUG9wdXAiOnJldHVybiBuZXcgUG9wdXBBbm5vdGF0aW9uKHApO2Nhc2UiRnJlZVRleHQiOnJldHVybiBuZXcgRnJlZVRleHRBbm5vdGF0aW9uKHApO2Nhc2UiTGluZSI6cmV0dXJuIG5ldyBMaW5lQW5ub3RhdGlvbihwKTtjYXNlIlNxdWFyZSI6cmV0dXJuIG5ldyBTcXVhcmVBbm5vdGF0aW9uKHApO2Nhc2UiQ2lyY2xlIjpyZXR1cm4gbmV3IENpcmNsZUFubm90YXRpb24ocCk7Y2FzZSJQb2x5TGluZSI6cmV0dXJuIG5ldyBQb2x5bGluZUFubm90YXRpb24ocCk7Y2FzZSJQb2x5Z29uIjpyZXR1cm4gbmV3IFBvbHlnb25Bbm5vdGF0aW9uKHApO2Nhc2UiQ2FyZXQiOnJldHVybiBuZXcgQ2FyZXRBbm5vdGF0aW9uKHApO2Nhc2UiSW5rIjpyZXR1cm4gbmV3IElua0Fubm90YXRpb24ocCk7Y2FzZSJIaWdobGlnaHQiOnJldHVybiBuZXcgSGlnaGxpZ2h0QW5ub3RhdGlvbihwKTtjYXNlIlVuZGVybGluZSI6cmV0dXJuIG5ldyBVbmRlcmxpbmVBbm5vdGF0aW9uKHApO2Nhc2UiU3F1aWdnbHkiOnJldHVybiBuZXcgU3F1aWdnbHlBbm5vdGF0aW9uKHApO2Nhc2UiU3RyaWtlT3V0IjpyZXR1cm4gbmV3IFN0cmlrZU91dEFubm90YXRpb24ocCk7Y2FzZSJTdGFtcCI6cmV0dXJuIG5ldyBTdGFtcEFubm90YXRpb24ocCk7Y2FzZSJGaWxlQXR0YWNobWVudCI6cmV0dXJuIG5ldyBGaWxlQXR0YWNobWVudEFubm90YXRpb24ocCk7ZGVmYXVsdDpzfHx3YXJuKGM/YFVuaW1wbGVtZW50ZWQgYW5ub3RhdGlvbiB0eXBlICIke2N9IiwgZmFsbGluZyBiYWNrIHRvIGJhc2UgYW5ub3RhdGlvbi5gOiJBbm5vdGF0aW9uIGlzIG1pc3NpbmcgdGhlIHJlcXVpcmVkIC9TdWJ0eXBlLiIpO3JldHVybiBuZXcgQW5ub3RhdGlvbihwKX19c3RhdGljIGFzeW5jIF9nZXRQYWdlSW5kZXgoZSx0LG4pe3RyeXtjb25zdCBhPWF3YWl0IGUuZmV0Y2hJZlJlZkFzeW5jKHQpO2lmKCEoYSBpbnN0YW5jZW9mIERpY3QpKXJldHVybi0xO2NvbnN0IHM9YS5nZXRSYXcoIlAiKTtpZihzIGluc3RhbmNlb2YgUmVmKXRyeXtyZXR1cm4gYXdhaXQgbi5lbnN1cmVDYXRhbG9nKCJnZXRQYWdlSW5kZXgiLFtzXSl9Y2F0Y2goZSl7aW5mbyhgX2dldFBhZ2VJbmRleCAtLSBub3QgYSB2YWxpZCBwYWdlIHJlZmVyZW5jZTogIiR7ZX0iLmApfWlmKGEuaGFzKCJLaWRzIikpcmV0dXJuLTE7Y29uc3Qgcj1hd2FpdCBuLmVuc3VyZURvYygibnVtUGFnZXMiKTtmb3IobGV0IGU9MDtlPHI7ZSsrKXtjb25zdCBhPWF3YWl0IG4uZ2V0UGFnZShlKSxzPWF3YWl0IG4uZW5zdXJlKGEsImFubm90YXRpb25zIik7Zm9yKGNvbnN0IG4gb2YgcylpZihuIGluc3RhbmNlb2YgUmVmJiZpc1JlZnNFcXVhbChuLHQpKXJldHVybiBlfX1jYXRjaChlKXt3YXJuKGBfZ2V0UGFnZUluZGV4OiAiJHtlfSIuYCl9cmV0dXJuLTF9c3RhdGljIGdlbmVyYXRlSW1hZ2VzKGUsdCxuKXtpZighbil7d2FybigiZ2VuZXJhdGVJbWFnZXM6IE9mZnNjcmVlbkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLCBjYW5ub3Qgc2F2ZSBvciBwcmludCBzb21lIGFubm90YXRpb25zIHdpdGggaW1hZ2VzLiIpO3JldHVybiBudWxsfWxldCBhO2Zvcihjb25zdHtiaXRtYXBJZDpuLGJpdG1hcDpzfW9mIGUpaWYocyl7YXx8PW5ldyBNYXA7YS5zZXQobixTdGFtcEFubm90YXRpb24uY3JlYXRlSW1hZ2Uocyx0KSl9cmV0dXJuIGF9c3RhdGljIGFzeW5jIHNhdmVOZXdBbm5vdGF0aW9ucyhlLHQsbixhLHMpe2NvbnN0IHI9ZS54cmVmO2xldCBpO2NvbnN0IG89W10se2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmx9PWUub3B0aW9ucztmb3IoY29uc3QgZiBvZiBuKWlmKCFmLmRlbGV0ZWQpc3dpdGNoKGYuYW5ub3RhdGlvblR5cGUpe2Nhc2UgcDppZighaSl7Y29uc3QgZT1uZXcgRGljdChyKTtlLnNldElmTmFtZSgiQmFzZUZvbnQiLCJIZWx2ZXRpY2EiKTtlLnNldElmTmFtZSgiVHlwZSIsIkZvbnQiKTtlLnNldElmTmFtZSgiU3VidHlwZSIsIlR5cGUxIik7ZS5zZXRJZk5hbWUoIkVuY29kaW5nIiwiV2luQW5zaUVuY29kaW5nIik7aT1yLmdldE5ld1RlbXBvcmFyeVJlZigpO3MucHV0KGkse2RhdGE6ZX0pfW8ucHVzaChGcmVlVGV4dEFubm90YXRpb24uY3JlYXRlTmV3QW5ub3RhdGlvbihyLGYscyx7ZXZhbHVhdG9yOmUsdGFzazp0LGJhc2VGb250UmVmOml9KSk7YnJlYWs7Y2FzZSBkOmYucXVhZFBvaW50cz9vLnB1c2goSGlnaGxpZ2h0QW5ub3RhdGlvbi5jcmVhdGVOZXdBbm5vdGF0aW9uKHIsZixzKSk6by5wdXNoKElua0Fubm90YXRpb24uY3JlYXRlTmV3QW5ub3RhdGlvbihyLGYscykpO2JyZWFrO2Nhc2UgYjpvLnB1c2goSW5rQW5ub3RhdGlvbi5jcmVhdGVOZXdBbm5vdGF0aW9uKHIsZixzKSk7YnJlYWs7Y2FzZSBnOmNvbnN0IG49bD9hd2FpdChhPy5nZXQoZi5iaXRtYXBJZCkpOm51bGw7aWYobj8uaW1hZ2VTdHJlYW0pe2NvbnN0e2ltYWdlU3RyZWFtOmUsc21hc2tTdHJlYW06dH09bjtpZih0KXtjb25zdCBuPXIuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7cy5wdXQobix7ZGF0YTp0fSk7ZS5kaWN0LnNldCgiU01hc2siLG4pfWNvbnN0IGE9bi5pbWFnZVJlZj1yLmdldE5ld1RlbXBvcmFyeVJlZigpO3MucHV0KGEse2RhdGE6ZX0pO24uaW1hZ2VTdHJlYW09bi5zbWFza1N0cmVhbT1udWxsfW8ucHVzaChTdGFtcEFubm90YXRpb24uY3JlYXRlTmV3QW5ub3RhdGlvbihyLGYscyx7aW1hZ2U6bn0pKTticmVhaztjYXNlIHc6by5wdXNoKFN0YW1wQW5ub3RhdGlvbi5jcmVhdGVOZXdBbm5vdGF0aW9uKHIsZixzLHt9KSl9cmV0dXJue2Fubm90YXRpb25zOihhd2FpdCBQcm9taXNlLmFsbChvKSkuZmxhdCgpfX1zdGF0aWMgYXN5bmMgcHJpbnROZXdBbm5vdGF0aW9ucyhlLHQsbixhLHMpe2lmKCFhKXJldHVybiBudWxsO2NvbnN0e29wdGlvbnM6cix4cmVmOml9PXQsbz1bXTtmb3IoY29uc3QgbCBvZiBhKWlmKCFsLmRlbGV0ZWQpc3dpdGNoKGwuYW5ub3RhdGlvblR5cGUpe2Nhc2UgcDpvLnB1c2goRnJlZVRleHRBbm5vdGF0aW9uLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLGksbCx7ZXZhbHVhdG9yOnQsdGFzazpuLGV2YWx1YXRvck9wdGlvbnM6cn0pKTticmVhaztjYXNlIGQ6bC5xdWFkUG9pbnRzP28ucHVzaChIaWdobGlnaHRBbm5vdGF0aW9uLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLGksbCx7ZXZhbHVhdG9yT3B0aW9uczpyfSkpOm8ucHVzaChJbmtBbm5vdGF0aW9uLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLGksbCx7ZXZhbHVhdG9yT3B0aW9uczpyfSkpO2JyZWFrO2Nhc2UgYjpvLnB1c2goSW5rQW5ub3RhdGlvbi5jcmVhdGVOZXdQcmludEFubm90YXRpb24oZSxpLGwse2V2YWx1YXRvck9wdGlvbnM6cn0pKTticmVhaztjYXNlIGc6Y29uc3QgYT1yLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkP2F3YWl0KHM/LmdldChsLmJpdG1hcElkKSk6bnVsbDtpZihhPy5pbWFnZVN0cmVhbSl7Y29uc3R7aW1hZ2VTdHJlYW06ZSxzbWFza1N0cmVhbTp0fT1hO3QmJmUuZGljdC5zZXQoIlNNYXNrIix0KTthLmltYWdlUmVmPW5ldyBKcGVnU3RyZWFtKGUsZS5sZW5ndGgpO2EuaW1hZ2VTdHJlYW09YS5zbWFza1N0cmVhbT1udWxsfW8ucHVzaChTdGFtcEFubm90YXRpb24uY3JlYXRlTmV3UHJpbnRBbm5vdGF0aW9uKGUsaSxsLHtpbWFnZTphLGV2YWx1YXRvck9wdGlvbnM6cn0pKTticmVhaztjYXNlIHc6by5wdXNoKFN0YW1wQW5ub3RhdGlvbi5jcmVhdGVOZXdQcmludEFubm90YXRpb24oZSxpLGwse2V2YWx1YXRvck9wdGlvbnM6cn0pKX1yZXR1cm4gUHJvbWlzZS5hbGwobyl9fWZ1bmN0aW9uIGdldFJnYkNvbG9yKGUsdD1uZXcgVWludDhDbGFtcGVkQXJyYXkoMykpe2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2NvbnN0IG49dHx8bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpO3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBudWxsO2Nhc2UgMTpDb2xvclNwYWNlVXRpbHMuZ3JheS5nZXRSZ2JJdGVtKGUsMCxuLDApO3JldHVybiBuO2Nhc2UgMzpDb2xvclNwYWNlVXRpbHMucmdiLmdldFJnYkl0ZW0oZSwwLG4sMCk7cmV0dXJuIG47Y2FzZSA0OkNvbG9yU3BhY2VVdGlscy5jbXlrLmdldFJnYkl0ZW0oZSwwLG4sMCk7cmV0dXJuIG47ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gZ2V0UGRmQ29sb3JBcnJheShlLHQ9bnVsbCl7cmV0dXJuIGUmJkFycmF5LmZyb20oZSxlPT5lLzI1NSl8fHR9ZnVuY3Rpb24gZ2V0UXVhZFBvaW50cyhlLHQpe2NvbnN0IG49ZS5nZXRBcnJheSgiUXVhZFBvaW50cyIpO2lmKCFpc051bWJlckFycmF5KG4sbnVsbCl8fDA9PT1uLmxlbmd0aHx8bi5sZW5ndGglOD4wKXJldHVybiBudWxsO2NvbnN0IGE9bmV3IEZsb2F0MzJBcnJheShuLmxlbmd0aCk7Zm9yKGxldCBlPTAscz1uLmxlbmd0aDtlPHM7ZSs9OCl7Y29uc3RbcyxyLGksbyxsLGYsYyxoXT1uLnNsaWNlKGUsZSs4KSx1PU1hdGgubWluKHMsaSxsLGMpLG09TWF0aC5tYXgocyxpLGwsYykscD1NYXRoLm1pbihyLG8sZixoKSxkPU1hdGgubWF4KHIsbyxmLGgpO2lmKG51bGwhPT10JiYodTx0WzBdfHxtPnRbMl18fHA8dFsxXXx8ZD50WzNdKSlyZXR1cm4gbnVsbDthLnNldChbdSxkLG0sZCx1LHAsbSxwXSxlKX1yZXR1cm4gYX1mdW5jdGlvbiBnZXRUcmFuc2Zvcm1NYXRyaXgoZSx0LG4pe2NvbnN0IGE9bmV3IEZsb2F0MzJBcnJheShbMS8wLDEvMCwtMS8wLC0xLzBdKTtVdGlsLmF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KHQsbixhKTtjb25zdFtzLHIsaSxvXT1hO2lmKHM9PT1pfHxyPT09bylyZXR1cm5bMSwwLDAsMSxlWzBdLGVbMV1dO2NvbnN0IGw9KGVbMl0tZVswXSkvKGktcyksZj0oZVszXS1lWzFdKS8oby1yKTtyZXR1cm5bbCwwLDAsZixlWzBdLXMqbCxlWzFdLXIqZl19Y2xhc3MgQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtjb25zdHthbm5vdGF0aW9uR2xvYmFsczp0LGRpY3Q6bixvcnBoYW5GaWVsZHM6YSxyZWY6cyxzdWJ0eXBlOnIseHJlZjppfT1lLG89YT8uZ2V0KHMpO28mJm4uc2V0KCJQYXJlbnQiLG8pO3RoaXMuc2V0VGl0bGUobi5nZXQoIlQiKSk7dGhpcy5zZXRDb250ZW50cyhuLmdldCgiQ29udGVudHMiKSk7dGhpcy5zZXRNb2RpZmljYXRpb25EYXRlKG4uZ2V0KCJNIikpO3RoaXMuc2V0RmxhZ3Mobi5nZXQoIkYiKSk7dGhpcy5zZXRSZWN0YW5nbGUobi5nZXRBcnJheSgiUmVjdCIpKTt0aGlzLnNldENvbG9yKG4uZ2V0QXJyYXkoIkMiKSk7dGhpcy5zZXRCb3JkZXJTdHlsZShuKTt0aGlzLnNldEFwcGVhcmFuY2Uobik7dGhpcy5zZXRPcHRpb25hbENvbnRlbnQobik7Y29uc3QgbD1uLmdldCgiTUsiKTt0aGlzLnNldEJvcmRlckFuZEJhY2tncm91bmRDb2xvcnMobCk7dGhpcy5zZXRSb3RhdGlvbihsLG4pO3RoaXMucmVmPWUucmVmIGluc3RhbmNlb2YgUmVmP2UucmVmOm51bGw7dGhpcy5fc3RyZWFtcz1bXTt0aGlzLmFwcGVhcmFuY2UmJnRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmFwcGVhcmFuY2UpO2NvbnN0IGY9ISEodGhpcy5mbGFncyZ6KSxjPSEhKHRoaXMuZmxhZ3MmTCk7dGhpcy5kYXRhPXthbm5vdGF0aW9uVHlwZTpUW3I/LnRvVXBwZXJDYXNlKCldLGFubm90YXRpb25GbGFnczp0aGlzLmZsYWdzLGJvcmRlclN0eWxlOnRoaXMuYm9yZGVyU3R5bGUsY29sb3I6dGhpcy5jb2xvcixiYWNrZ3JvdW5kQ29sb3I6dGhpcy5iYWNrZ3JvdW5kQ29sb3IsYm9yZGVyQ29sb3I6dGhpcy5ib3JkZXJDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLGNvbnRlbnRzT2JqOnRoaXMuX2NvbnRlbnRzLGhhc0FwcGVhcmFuY2U6ISF0aGlzLmFwcGVhcmFuY2UsaWQ6ZS5pZCxtb2RpZmljYXRpb25EYXRlOnRoaXMubW9kaWZpY2F0aW9uRGF0ZSxyZWN0OnRoaXMucmVjdGFuZ2xlLHN1YnR5cGU6cixoYXNPd25DYW52YXM6ITEsbm9Sb3RhdGU6ISEodGhpcy5mbGFncyZFKSxub0hUTUw6ZiYmYyxpc0VkaXRhYmxlOiExLHN0cnVjdFBhcmVudDotMX07aWYodC5zdHJ1Y3RUcmVlUm9vdCl7bGV0IGE9bi5nZXQoIlN0cnVjdFBhcmVudCIpO3RoaXMuZGF0YS5zdHJ1Y3RQYXJlbnQ9YT1OdW1iZXIuaXNJbnRlZ2VyKGEpJiZhPj0wP2E6LTE7dC5zdHJ1Y3RUcmVlUm9vdC5hZGRBbm5vdGF0aW9uSWRUb1BhZ2UoZS5wYWdlUmVmLGEpfWlmKGUuY29sbGVjdEZpZWxkcyl7Y29uc3QgdD1uLmdldCgiS2lkcyIpO2lmKEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IGU9W107Zm9yKGNvbnN0IG4gb2YgdCluIGluc3RhbmNlb2YgUmVmJiZlLnB1c2gobi50b1N0cmluZygpKTswIT09ZS5sZW5ndGgmJih0aGlzLmRhdGEua2lkSWRzPWUpfXRoaXMuZGF0YS5hY3Rpb25zPWNvbGxlY3RBY3Rpb25zKGksbixzZSk7dGhpcy5kYXRhLmZpZWxkTmFtZT10aGlzLl9jb25zdHJ1Y3RGaWVsZE5hbWUobik7dGhpcy5kYXRhLnBhZ2VJbmRleD1lLnBhZ2VJbmRleH1jb25zdCBoPW4uZ2V0KCJJVCIpO2ggaW5zdGFuY2VvZiBOYW1lJiYodGhpcy5kYXRhLml0PWgubmFtZSk7dGhpcy5faXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ9ZS5ldmFsdWF0b3JPcHRpb25zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkO3RoaXMuX2ZhbGxiYWNrRm9udERpY3Q9bnVsbDt0aGlzLl9uZWVkQXBwZWFyYW5jZXM9ITF9X2hhc0ZsYWcoZSx0KXtyZXR1cm4hIShlJnQpfV9idWlsZEZsYWdzKGUsdCl7bGV0e2ZsYWdzOm59PXRoaXM7aWYodm9pZCAwPT09ZSl7aWYodm9pZCAwPT09dClyZXR1cm47cmV0dXJuIHQ/biZ+TTpuJn5EfE19aWYoZSl7bnw9TTtyZXR1cm4gdD9uJn5OfEQ6biZ+RHxOfW4mPX4oRHxOKTtyZXR1cm4gdD9uJn5NOm58TX1faXNWaWV3YWJsZShlKXtyZXR1cm4hdGhpcy5faGFzRmxhZyhlLFIpJiYhdGhpcy5faGFzRmxhZyhlLE4pfV9pc1ByaW50YWJsZShlKXtyZXR1cm4gdGhpcy5faGFzRmxhZyhlLE0pJiYhdGhpcy5faGFzRmxhZyhlLEQpJiYhdGhpcy5faGFzRmxhZyhlLFIpfW11c3RCZVZpZXdlZChlLHQpe2NvbnN0IG49ZT8uZ2V0KHRoaXMuZGF0YS5pZCk/Lm5vVmlldztyZXR1cm4gdm9pZCAwIT09bj8hbjp0aGlzLnZpZXdhYmxlJiYhdGhpcy5faGFzRmxhZyh0aGlzLmZsYWdzLEQpfW11c3RCZVByaW50ZWQoZSl7Y29uc3QgdD1lPy5nZXQodGhpcy5kYXRhLmlkKT8ubm9QcmludDtyZXR1cm4gdm9pZCAwIT09dD8hdDp0aGlzLnByaW50YWJsZX1tdXN0QmVWaWV3ZWRXaGVuRWRpdGluZyhlLHQ9bnVsbCl7cmV0dXJuIGU/IXRoaXMuZGF0YS5pc0VkaXRhYmxlOiF0Py5oYXModGhpcy5kYXRhLmlkKX1nZXQgdmlld2FibGUoKXtyZXR1cm4gbnVsbCE9PXRoaXMuZGF0YS5xdWFkUG9pbnRzJiYoMD09PXRoaXMuZmxhZ3N8fHRoaXMuX2lzVmlld2FibGUodGhpcy5mbGFncykpfWdldCBwcmludGFibGUoKXtyZXR1cm4gbnVsbCE9PXRoaXMuZGF0YS5xdWFkUG9pbnRzJiYoMCE9PXRoaXMuZmxhZ3MmJnRoaXMuX2lzUHJpbnRhYmxlKHRoaXMuZmxhZ3MpKX1fcGFyc2VTdHJpbmdIZWxwZXIoZSl7Y29uc3QgdD0ic3RyaW5nIj09dHlwZW9mIGU/c3RyaW5nVG9QREZTdHJpbmcoZSk6IiI7cmV0dXJue3N0cjp0LGRpcjp0JiYicnRsIj09PWJpZGkodCkuZGlyPyJydGwiOiJsdHIifX1zZXREZWZhdWx0QXBwZWFyYW5jZShlKXtjb25zdHtkaWN0OnQsYW5ub3RhdGlvbkdsb2JhbHM6bn09ZSxhPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IkRBIn0pfHxuLmFjcm9Gb3JtLmdldCgiREEiKTt0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZT0ic3RyaW5nIj09dHlwZW9mIGE/YToiIjt0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhPXBhcnNlRGVmYXVsdEFwcGVhcmFuY2UodGhpcy5fZGVmYXVsdEFwcGVhcmFuY2UpfXNldFRpdGxlKGUpe3RoaXMuX3RpdGxlPXRoaXMuX3BhcnNlU3RyaW5nSGVscGVyKGUpfXNldENvbnRlbnRzKGUpe3RoaXMuX2NvbnRlbnRzPXRoaXMuX3BhcnNlU3RyaW5nSGVscGVyKGUpfXNldE1vZGlmaWNhdGlvbkRhdGUoZSl7dGhpcy5tb2RpZmljYXRpb25EYXRlPSJzdHJpbmciPT10eXBlb2YgZT9lOm51bGx9c2V0RmxhZ3MoZSl7dGhpcy5mbGFncz1OdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPjA/ZTowO3RoaXMuZmxhZ3MmUiYmIkFubm90YXRpb24iIT09dGhpcy5jb25zdHJ1Y3Rvci5uYW1lJiYodGhpcy5mbGFnc149Uil9aGFzRmxhZyhlKXtyZXR1cm4gdGhpcy5faGFzRmxhZyh0aGlzLmZsYWdzLGUpfXNldFJlY3RhbmdsZShlKXt0aGlzLnJlY3RhbmdsZT1sb29rdXBOb3JtYWxSZWN0KGUsWzAsMCwwLDBdKX1zZXRDb2xvcihlKXt0aGlzLmNvbG9yPWdldFJnYkNvbG9yKGUpfXNldExpbmVFbmRpbmdzKGUpe3RoaXMubGluZUVuZGluZ3M9WyJOb25lIiwiTm9uZSJdO2lmKEFycmF5LmlzQXJyYXkoZSkmJjI9PT1lLmxlbmd0aClmb3IobGV0IHQ9MDt0PDI7dCsrKXtjb25zdCBuPWVbdF07aWYobiBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKG4ubmFtZSl7Y2FzZSJOb25lIjpjb250aW51ZTtjYXNlIlNxdWFyZSI6Y2FzZSJDaXJjbGUiOmNhc2UiRGlhbW9uZCI6Y2FzZSJPcGVuQXJyb3ciOmNhc2UiQ2xvc2VkQXJyb3ciOmNhc2UiQnV0dCI6Y2FzZSJST3BlbkFycm93IjpjYXNlIlJDbG9zZWRBcnJvdyI6Y2FzZSJTbGFzaCI6dGhpcy5saW5lRW5kaW5nc1t0XT1uLm5hbWU7Y29udGludWV9d2FybihgSWdub3JpbmcgaW52YWxpZCBsaW5lRW5kaW5nOiAke259YCl9fXNldFJvdGF0aW9uKGUsdCl7dGhpcy5yb3RhdGlvbj0wO2xldCBuPWUgaW5zdGFuY2VvZiBEaWN0P2UuZ2V0KCJSIil8fDA6dC5nZXQoIlJvdGF0ZSIpfHwwO2lmKE51bWJlci5pc0ludGVnZXIobikmJjAhPT1uKXtuJT0zNjA7bjwwJiYobis9MzYwKTtuJTkwPT0wJiYodGhpcy5yb3RhdGlvbj1uKX19c2V0Qm9yZGVyQW5kQmFja2dyb3VuZENvbG9ycyhlKXtpZihlIGluc3RhbmNlb2YgRGljdCl7dGhpcy5ib3JkZXJDb2xvcj1nZXRSZ2JDb2xvcihlLmdldEFycmF5KCJCQyIpLG51bGwpO3RoaXMuYmFja2dyb3VuZENvbG9yPWdldFJnYkNvbG9yKGUuZ2V0QXJyYXkoIkJHIiksbnVsbCl9ZWxzZSB0aGlzLmJvcmRlckNvbG9yPXRoaXMuYmFja2dyb3VuZENvbG9yPW51bGx9c2V0Qm9yZGVyU3R5bGUoZSl7dGhpcy5ib3JkZXJTdHlsZT1uZXcgQW5ub3RhdGlvbkJvcmRlclN0eWxlO2lmKGUgaW5zdGFuY2VvZiBEaWN0KWlmKGUuaGFzKCJCUyIpKXtjb25zdCB0PWUuZ2V0KCJCUyIpO2lmKHQgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPXQuZ2V0KCJUeXBlIik7aWYoIWV8fGlzTmFtZShlLCJCb3JkZXIiKSl7dGhpcy5ib3JkZXJTdHlsZS5zZXRXaWR0aCh0LmdldCgiVyIpLHRoaXMucmVjdGFuZ2xlKTt0aGlzLmJvcmRlclN0eWxlLnNldFN0eWxlKHQuZ2V0KCJTIikpO3RoaXMuYm9yZGVyU3R5bGUuc2V0RGFzaEFycmF5KHQuZ2V0QXJyYXkoIkQiKSl9fX1lbHNlIGlmKGUuaGFzKCJCb3JkZXIiKSl7Y29uc3QgdD1lLmdldEFycmF5KCJCb3JkZXIiKTtpZihBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD49Myl7dGhpcy5ib3JkZXJTdHlsZS5zZXRIb3Jpem9udGFsQ29ybmVyUmFkaXVzKHRbMF0pO3RoaXMuYm9yZGVyU3R5bGUuc2V0VmVydGljYWxDb3JuZXJSYWRpdXModFsxXSk7dGhpcy5ib3JkZXJTdHlsZS5zZXRXaWR0aCh0WzJdLHRoaXMucmVjdGFuZ2xlKTs0PT09dC5sZW5ndGgmJnRoaXMuYm9yZGVyU3R5bGUuc2V0RGFzaEFycmF5KHRbM10sITApfX1lbHNlIHRoaXMuYm9yZGVyU3R5bGUuc2V0V2lkdGgoMCl9c2V0QXBwZWFyYW5jZShlKXt0aGlzLmFwcGVhcmFuY2U9bnVsbDtjb25zdCB0PWUuZ2V0KCJBUCIpO2lmKCEodCBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtjb25zdCBuPXQuZ2V0KCJOIik7aWYobiBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pe3RoaXMuYXBwZWFyYW5jZT1uO3JldHVybn1pZighKG4gaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47Y29uc3QgYT1lLmdldCgiQVMiKTtpZighKGEgaW5zdGFuY2VvZiBOYW1lJiZuLmhhcyhhLm5hbWUpKSlyZXR1cm47Y29uc3Qgcz1uLmdldChhLm5hbWUpO3MgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYodGhpcy5hcHBlYXJhbmNlPXMpfXNldE9wdGlvbmFsQ29udGVudChlKXt0aGlzLm9jPW51bGw7Y29uc3QgdD1lLmdldCgiT0MiKTt0IGluc3RhbmNlb2YgTmFtZT93YXJuKCJzZXRPcHRpb25hbENvbnRlbnQ6IFN1cHBvcnQgZm9yIC9OYW1lLWVudHJ5IGlzIG5vdCBpbXBsZW1lbnRlZC4iKTp0IGluc3RhbmNlb2YgRGljdCYmKHRoaXMub2M9dCl9YXN5bmMgbG9hZFJlc291cmNlcyhlLHQpe2NvbnN0IG49YXdhaXQgdC5kaWN0LmdldEFzeW5jKCJSZXNvdXJjZXMiKTtuJiZhd2FpdCBPYmplY3RMb2FkZXIubG9hZChuLGUsbi54cmVmKTtyZXR1cm4gbn1hc3luYyBnZXRPcGVyYXRvckxpc3QoZSx0LG4sYSl7Y29uc3R7aGFzT3duQ2FudmFzOnMsaWQ6cixyZWN0Om99PXRoaXMuZGF0YTtsZXQgbD10aGlzLmFwcGVhcmFuY2U7Y29uc3QgZj0hIShzJiZuJmkpO2lmKGYmJigwPT09dGhpcy53aWR0aHx8MD09PXRoaXMuaGVpZ2h0KSl7dGhpcy5kYXRhLmhhc093bkNhbnZhcz0hMTtyZXR1cm57b3BMaXN0Om5ldyBPcGVyYXRvckxpc3Qsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfX1pZighbCl7aWYoIWYpcmV0dXJue29wTGlzdDpuZXcgT3BlcmF0b3JMaXN0LHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczohMX07bD1uZXcgU3RyaW5nU3RyZWFtKCIiKTtsLmRpY3Q9bmV3IERpY3R9Y29uc3QgYz1sLmRpY3QsaD1hd2FpdCB0aGlzLmxvYWRSZXNvdXJjZXMoZG4sbCksdT1sb29rdXBSZWN0KGMuZ2V0QXJyYXkoIkJCb3giKSxbMCwwLDEsMV0pLG09bG9va3VwTWF0cml4KGMuZ2V0QXJyYXkoIk1hdHJpeCIpLHBuKSxwPWdldFRyYW5zZm9ybU1hdHJpeChvLHUsbSksZD1uZXcgT3BlcmF0b3JMaXN0O2xldCBnO3RoaXMub2MmJihnPWF3YWl0IGUucGFyc2VNYXJrZWRDb250ZW50UHJvcHModGhpcy5vYyxudWxsKSk7dm9pZCAwIT09ZyYmZC5hZGRPcChTdCxbIk9DIixnXSk7ZC5hZGRPcChPdCxbcixvLHAsbSxmXSk7YXdhaXQgZS5nZXRPcGVyYXRvckxpc3Qoe3N0cmVhbTpsLHRhc2s6dCxyZXNvdXJjZXM6aCxvcGVyYXRvckxpc3Q6ZCxmYWxsYmFja0ZvbnREaWN0OnRoaXMuX2ZhbGxiYWNrRm9udERpY3R9KTtkLmFkZE9wKEJ0LFtdKTt2b2lkIDAhPT1nJiZkLmFkZE9wKHh0LFtdKTt0aGlzLnJlc2V0KCk7cmV0dXJue29wTGlzdDpkLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczpmfX1hc3luYyBzYXZlKGUsdCxuLGEpe3JldHVybiBudWxsfWdldCBvdmVybGF5c1RleHRDb250ZW50KCl7cmV0dXJuITF9Z2V0IGhhc1RleHRDb250ZW50KCl7cmV0dXJuITF9YXN5bmMgZXh0cmFjdFRleHRDb250ZW50KGUsdCxuKXtpZighdGhpcy5hcHBlYXJhbmNlKXJldHVybjtjb25zdCBhPWF3YWl0IHRoaXMubG9hZFJlc291cmNlcyhnbix0aGlzLmFwcGVhcmFuY2UpLHM9W10scj1bXTtsZXQgaT1udWxsO2NvbnN0IG89e2Rlc2lyZWRTaXplOk1hdGguSW5maW5pdHkscmVhZHk6ITAsZW5xdWV1ZShlLHQpe2Zvcihjb25zdCB0IG9mIGUuaXRlbXMpaWYodm9pZCAwIT09dC5zdHIpe2l8fD10LnRyYW5zZm9ybS5zbGljZSgtMik7ci5wdXNoKHQuc3RyKTtpZih0Lmhhc0VPTCl7cy5wdXNoKHIuam9pbigiIikudHJpbUVuZCgpKTtyLmxlbmd0aD0wfX19fTthd2FpdCBlLmdldFRleHRDb250ZW50KHtzdHJlYW06dGhpcy5hcHBlYXJhbmNlLHRhc2s6dCxyZXNvdXJjZXM6YSxpbmNsdWRlTWFya2VkQ29udGVudDohMCxrZWVwV2hpdGVTcGFjZTohMCxzaW5rOm8sdmlld0JveDpufSk7dGhpcy5yZXNldCgpO3IubGVuZ3RoJiZzLnB1c2goci5qb2luKCIiKS50cmltRW5kKCkpO2lmKHMubGVuZ3RoPjF8fHNbMF0pe2NvbnN0IGU9dGhpcy5hcHBlYXJhbmNlLmRpY3QsdD1sb29rdXBSZWN0KGUuZ2V0QXJyYXkoIkJCb3giKSxudWxsKSxuPWxvb2t1cE1hdHJpeChlLmdldEFycmF5KCJNYXRyaXgiKSxudWxsKTt0aGlzLmRhdGEudGV4dFBvc2l0aW9uPXRoaXMuX3RyYW5zZm9ybVBvaW50KGksdCxuKTt0aGlzLmRhdGEudGV4dENvbnRlbnQ9c319X3RyYW5zZm9ybVBvaW50KGUsdCxuKXtjb25zdHtyZWN0OmF9PXRoaXMuZGF0YTt0fHw9WzAsMCwxLDFdO258fD1bMSwwLDAsMSwwLDBdO2NvbnN0IHM9Z2V0VHJhbnNmb3JtTWF0cml4KGEsdCxuKTtzWzRdLT1hWzBdO3NbNV0tPWFbMV07Y29uc3Qgcj1lLnNsaWNlKCk7VXRpbC5hcHBseVRyYW5zZm9ybShyLHMpO1V0aWwuYXBwbHlUcmFuc2Zvcm0ocixuKTtyZXR1cm4gcn1nZXRGaWVsZE9iamVjdCgpe3JldHVybiB0aGlzLmRhdGEua2lkSWRzP3tpZDp0aGlzLmRhdGEuaWQsYWN0aW9uczp0aGlzLmRhdGEuYWN0aW9ucyxuYW1lOnRoaXMuZGF0YS5maWVsZE5hbWUsc3Ryb2tlQ29sb3I6dGhpcy5kYXRhLmJvcmRlckNvbG9yLGZpbGxDb2xvcjp0aGlzLmRhdGEuYmFja2dyb3VuZENvbG9yLHR5cGU6IiIsa2lkSWRzOnRoaXMuZGF0YS5raWRJZHMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHJvdGF0aW9uOnRoaXMucm90YXRpb259Om51bGx9cmVzZXQoKXtmb3IoY29uc3QgZSBvZiB0aGlzLl9zdHJlYW1zKWUucmVzZXQoKX1fY29uc3RydWN0RmllbGROYW1lKGUpe2lmKCFlLmhhcygiVCIpJiYhZS5oYXMoIlBhcmVudCIpKXt3YXJuKCJVbmtub3duIGZpZWxkIG5hbWUsIGZhbGxpbmcgYmFjayB0byBlbXB0eSBmaWVsZCBuYW1lLiIpO3JldHVybiIifWlmKCFlLmhhcygiUGFyZW50IikpcmV0dXJuIHN0cmluZ1RvUERGU3RyaW5nKGUuZ2V0KCJUIikpO2NvbnN0IHQ9W107ZS5oYXMoIlQiKSYmdC51bnNoaWZ0KHN0cmluZ1RvUERGU3RyaW5nKGUuZ2V0KCJUIikpKTtsZXQgbj1lO2NvbnN0IGE9bmV3IFJlZlNldDtlLm9iaklkJiZhLnB1dChlLm9iaklkKTtmb3IoO24uaGFzKCJQYXJlbnQiKTspe249bi5nZXQoIlBhcmVudCIpO2lmKCEobiBpbnN0YW5jZW9mIERpY3QpfHxuLm9iaklkJiZhLmhhcyhuLm9iaklkKSlicmVhaztuLm9iaklkJiZhLnB1dChuLm9iaklkKTtuLmhhcygiVCIpJiZ0LnVuc2hpZnQoc3RyaW5nVG9QREZTdHJpbmcobi5nZXQoIlQiKSkpfXJldHVybiB0LmpvaW4oIi4iKX1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF19Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXX19Y2xhc3MgQW5ub3RhdGlvbkJvcmRlclN0eWxle3dpZHRoPTE7cmF3V2lkdGg9MTtzdHlsZT1aO2Rhc2hBcnJheT1bM107aG9yaXpvbnRhbENvcm5lclJhZGl1cz0wO3ZlcnRpY2FsQ29ybmVyUmFkaXVzPTA7c2V0V2lkdGgoZSx0PVswLDAsMCwwXSl7aWYoZSBpbnN0YW5jZW9mIE5hbWUpdGhpcy53aWR0aD0wO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBlKXtpZihlPjApe3RoaXMucmF3V2lkdGg9ZTtjb25zdCBuPSh0WzJdLXRbMF0pLzIsYT0odFszXS10WzFdKS8yO2lmKG4+MCYmYT4wJiYoZT5ufHxlPmEpKXt3YXJuKGBBbm5vdGF0aW9uQm9yZGVyU3R5bGUuc2V0V2lkdGggLSBpZ25vcmluZyB3aWR0aDogJHtlfWApO2U9MX19dGhpcy53aWR0aD1lfX1zZXRTdHlsZShlKXtpZihlIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goZS5uYW1lKXtjYXNlIlMiOnRoaXMuc3R5bGU9WjticmVhaztjYXNlIkQiOnRoaXMuc3R5bGU9ZWU7YnJlYWs7Y2FzZSJCIjp0aGlzLnN0eWxlPXRlO2JyZWFrO2Nhc2UiSSI6dGhpcy5zdHlsZT1uZTticmVhaztjYXNlIlUiOnRoaXMuc3R5bGU9YWV9fXNldERhc2hBcnJheShlLHQ9ITEpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBuPSEwLGE9ITA7Zm9yKGNvbnN0IHQgb2YgZSl7aWYoISgrdD49MCkpe249ITE7YnJlYWt9dD4wJiYoYT0hMSl9aWYoMD09PWUubGVuZ3RofHxuJiYhYSl7dGhpcy5kYXNoQXJyYXk9ZTt0JiZ0aGlzLnNldFN0eWxlKE5hbWUuZ2V0KCJEIikpfWVsc2UgdGhpcy53aWR0aD0wfWVsc2UgZSYmKHRoaXMud2lkdGg9MCl9c2V0SG9yaXpvbnRhbENvcm5lclJhZGl1cyhlKXtOdW1iZXIuaXNJbnRlZ2VyKGUpJiYodGhpcy5ob3Jpem9udGFsQ29ybmVyUmFkaXVzPWUpfXNldFZlcnRpY2FsQ29ybmVyUmFkaXVzKGUpe051bWJlci5pc0ludGVnZXIoZSkmJih0aGlzLnZlcnRpY2FsQ29ybmVyUmFkaXVzPWUpfX1jbGFzcyBNYXJrdXBBbm5vdGF0aW9uIGV4dGVuZHMgQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnR9PWU7aWYodC5oYXMoIklSVCIpKXtjb25zdCBlPXQuZ2V0UmF3KCJJUlQiKTt0aGlzLmRhdGEuaW5SZXBseVRvPWUgaW5zdGFuY2VvZiBSZWY/ZS50b1N0cmluZygpOm51bGw7Y29uc3Qgbj10LmdldCgiUlQiKTt0aGlzLmRhdGEucmVwbHlUeXBlPW4gaW5zdGFuY2VvZiBOYW1lP24ubmFtZTpPfWxldCBuPW51bGw7aWYodGhpcy5kYXRhLnJlcGx5VHlwZT09PUgpe2NvbnN0IGU9dC5nZXQoIklSVCIpO3RoaXMuc2V0VGl0bGUoZS5nZXQoIlQiKSk7dGhpcy5kYXRhLnRpdGxlT2JqPXRoaXMuX3RpdGxlO3RoaXMuc2V0Q29udGVudHMoZS5nZXQoIkNvbnRlbnRzIikpO3RoaXMuZGF0YS5jb250ZW50c09iaj10aGlzLl9jb250ZW50cztpZihlLmhhcygiQ3JlYXRpb25EYXRlIikpe3RoaXMuc2V0Q3JlYXRpb25EYXRlKGUuZ2V0KCJDcmVhdGlvbkRhdGUiKSk7dGhpcy5kYXRhLmNyZWF0aW9uRGF0ZT10aGlzLmNyZWF0aW9uRGF0ZX1lbHNlIHRoaXMuZGF0YS5jcmVhdGlvbkRhdGU9bnVsbDtpZihlLmhhcygiTSIpKXt0aGlzLnNldE1vZGlmaWNhdGlvbkRhdGUoZS5nZXQoIk0iKSk7dGhpcy5kYXRhLm1vZGlmaWNhdGlvbkRhdGU9dGhpcy5tb2RpZmljYXRpb25EYXRlfWVsc2UgdGhpcy5kYXRhLm1vZGlmaWNhdGlvbkRhdGU9bnVsbDtuPWUuZ2V0UmF3KCJQb3B1cCIpO2lmKGUuaGFzKCJDIikpe3RoaXMuc2V0Q29sb3IoZS5nZXRBcnJheSgiQyIpKTt0aGlzLmRhdGEuY29sb3I9dGhpcy5jb2xvcn1lbHNlIHRoaXMuZGF0YS5jb2xvcj1udWxsfWVsc2V7dGhpcy5kYXRhLnRpdGxlT2JqPXRoaXMuX3RpdGxlO3RoaXMuc2V0Q3JlYXRpb25EYXRlKHQuZ2V0KCJDcmVhdGlvbkRhdGUiKSk7dGhpcy5kYXRhLmNyZWF0aW9uRGF0ZT10aGlzLmNyZWF0aW9uRGF0ZTtuPXQuZ2V0UmF3KCJQb3B1cCIpO3QuaGFzKCJDIil8fCh0aGlzLmRhdGEuY29sb3I9bnVsbCl9dGhpcy5kYXRhLnBvcHVwUmVmPW4gaW5zdGFuY2VvZiBSZWY/bi50b1N0cmluZygpOm51bGw7dC5oYXMoIlJDIikmJih0aGlzLmRhdGEucmljaFRleHQ9WEZBRmFjdG9yeS5nZXRSaWNoVGV4dEFzSHRtbCh0LmdldCgiUkMiKSkpfXNldENyZWF0aW9uRGF0ZShlKXt0aGlzLmNyZWF0aW9uRGF0ZT0ic3RyaW5nIj09dHlwZW9mIGU/ZTpudWxsfV9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjplLGV4dHJhOnQsc3Ryb2tlQ29sb3I6bixmaWxsQ29sb3I6YSxibGVuZE1vZGU6cyxzdHJva2VBbHBoYTpyLGZpbGxBbHBoYTppLHBvaW50c0NhbGxiYWNrOm99KXtjb25zdCBsPXRoaXMuZGF0YS5yZWN0PVsxLzAsMS8wLC0xLzAsLTEvMF0sZj1bInEiXTt0JiZmLnB1c2godCk7biYmZi5wdXNoKGAke25bMF19ICR7blsxXX0gJHtuWzJdfSBSR2ApO2EmJmYucHVzaChgJHthWzBdfSAke2FbMV19ICR7YVsyXX0gcmdgKTtjb25zdCBjPXRoaXMuZGF0YS5xdWFkUG9pbnRzfHxGbG9hdDMyQXJyYXkuZnJvbShbdGhpcy5yZWN0YW5nbGVbMF0sdGhpcy5yZWN0YW5nbGVbM10sdGhpcy5yZWN0YW5nbGVbMl0sdGhpcy5yZWN0YW5nbGVbM10sdGhpcy5yZWN0YW5nbGVbMF0sdGhpcy5yZWN0YW5nbGVbMV0sdGhpcy5yZWN0YW5nbGVbMl0sdGhpcy5yZWN0YW5nbGVbMV1dKTtmb3IobGV0IGU9MCx0PWMubGVuZ3RoO2U8dDtlKz04KXtjb25zdCB0PW8oZixjLnN1YmFycmF5KGUsZSs4KSk7VXRpbC5yZWN0Qm91bmRpbmdCb3goLi4udCxsKX1mLnB1c2goIlEiKTtjb25zdCBoPW5ldyBEaWN0KGUpLHU9bmV3IERpY3QoZSk7dS5zZXRJZk5hbWUoIlN1YnR5cGUiLCJGb3JtIik7Y29uc3QgbT1uZXcgU3RyaW5nU3RyZWFtKGYuam9pbigiICIpKTttLmRpY3Q9dTtoLnNldCgiRm0wIixtKTtjb25zdCBwPW5ldyBEaWN0KGUpO3MmJnAuc2V0SWZOYW1lKCJCTSIscyk7cC5zZXRJZk51bWJlcigiQ0EiLHIpO3Auc2V0SWZOdW1iZXIoImNhIixpKTtjb25zdCBkPW5ldyBEaWN0KGUpO2Quc2V0KCJHUzAiLHApO2NvbnN0IGc9bmV3IERpY3QoZSk7Zy5zZXQoIkV4dEdTdGF0ZSIsZCk7Zy5zZXQoIlhPYmplY3QiLGgpO2NvbnN0IGI9bmV3IERpY3QoZSk7Yi5zZXQoIlJlc291cmNlcyIsZyk7Yi5zZXQoIkJCb3giLGwpO3RoaXMuYXBwZWFyYW5jZT1uZXcgU3RyaW5nU3RyZWFtKCIvR1MwIGdzIC9GbTAgRG8iKTt0aGlzLmFwcGVhcmFuY2UuZGljdD1iO3RoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmFwcGVhcmFuY2UsbSl9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0Fubm90YXRpb24oZSx0LG4sYSl7Y29uc3Qgcz10LnJlZnx8PWUuZ2V0TmV3VGVtcG9yYXJ5UmVmKCkscj1hd2FpdCB0aGlzLmNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0odCxlLGEpO2xldCBpO2lmKHIpe2NvbnN0IGE9ZS5nZXROZXdUZW1wb3JhcnlSZWYoKTtpPXRoaXMuY3JlYXRlTmV3RGljdCh0LGUse2FwUmVmOmF9KTtuLnB1dChhLHtkYXRhOnJ9KX1lbHNlIGk9dGhpcy5jcmVhdGVOZXdEaWN0KHQsZSx7fSk7TnVtYmVyLmlzSW50ZWdlcih0LnBhcmVudFRyZWVJZCkmJmkuc2V0KCJTdHJ1Y3RQYXJlbnQiLHQucGFyZW50VHJlZUlkKTtuLnB1dChzLHtkYXRhOml9KTtjb25zdCBvPXtyZWY6c30se3BvcHVwOmx9PXQ7aWYobCl7aWYobC5kZWxldGVkKXtpLmRlbGV0ZSgiUG9wdXAiKTtpLmRlbGV0ZSgiQ29udGVudHMiKTtpLmRlbGV0ZSgiUkMiKTtyZXR1cm4gb31jb25zdCB0PWwucmVmfHw9ZS5nZXROZXdUZW1wb3JhcnlSZWYoKTtsLnBhcmVudD1zO2NvbnN0IGE9UG9wdXBBbm5vdGF0aW9uLmNyZWF0ZU5ld0RpY3QobCxlKTtuLnB1dCh0LHtkYXRhOmF9KTtpLnNldElmRGVmaW5lZCgiQ29udGVudHMiLHN0cmluZ1RvQXNjaWlPclVURjE2QkUobC5jb250ZW50cykpO2kuc2V0KCJQb3B1cCIsdCk7cmV0dXJuW28se3JlZjp0fV19cmV0dXJuIG99c3RhdGljIGFzeW5jIGNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLHQsbixhKXtjb25zdCBzPWF3YWl0IHRoaXMuY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShuLHQsYSkscj10aGlzLmNyZWF0ZU5ld0RpY3Qobix0LHM/e2FwOnN9Ont9KSxpPW5ldyB0aGlzLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcih7ZGljdDpyLHhyZWY6dCxhbm5vdGF0aW9uR2xvYmFsczplLGV2YWx1YXRvck9wdGlvbnM6YS5ldmFsdWF0b3JPcHRpb25zfSk7bi5yZWYmJihpLnJlZj1pLnJlZlRvUmVwbGFjZT1uLnJlZik7cmV0dXJuIGl9fWNsYXNzIFdpZGdldEFubm90YXRpb24gZXh0ZW5kcyBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCx4cmVmOm4sYW5ub3RhdGlvbkdsb2JhbHM6YX09ZSxzPXRoaXMuZGF0YTt0aGlzLl9uZWVkQXBwZWFyYW5jZXM9ZS5uZWVkQXBwZWFyYW5jZXM7dm9pZCAwPT09cy5maWVsZE5hbWUmJihzLmZpZWxkTmFtZT10aGlzLl9jb25zdHJ1Y3RGaWVsZE5hbWUodCkpO3ZvaWQgMD09PXMuYWN0aW9ucyYmKHMuYWN0aW9ucz1jb2xsZWN0QWN0aW9ucyhuLHQsc2UpKTtsZXQgcj1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJWIixnZXRBcnJheTohMH0pO3MuZmllbGRWYWx1ZT10aGlzLl9kZWNvZGVGb3JtVmFsdWUocik7Y29uc3QgaT1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJEViIsZ2V0QXJyYXk6ITB9KTtzLmRlZmF1bHRGaWVsZFZhbHVlPXRoaXMuX2RlY29kZUZvcm1WYWx1ZShpKTtpZih2b2lkIDA9PT1yJiZhLnhmYURhdGFzZXRzKXtjb25zdCBlPXRoaXMuX3RpdGxlLnN0cjtpZihlKXt0aGlzLl9oYXNWYWx1ZUZyb21YRkE9ITA7cy5maWVsZFZhbHVlPXI9YS54ZmFEYXRhc2V0cy5nZXRWYWx1ZShlKX19dm9pZCAwPT09ciYmbnVsbCE9PXMuZGVmYXVsdEZpZWxkVmFsdWUmJihzLmZpZWxkVmFsdWU9cy5kZWZhdWx0RmllbGRWYWx1ZSk7cy5hbHRlcm5hdGl2ZVRleHQ9c3RyaW5nVG9QREZTdHJpbmcodC5nZXQoIlRVIil8fCIiKTt0aGlzLnNldERlZmF1bHRBcHBlYXJhbmNlKGUpO3MuaGFzQXBwZWFyYW5jZXx8PXRoaXMuX25lZWRBcHBlYXJhbmNlcyYmdm9pZCAwIT09cy5maWVsZFZhbHVlJiZudWxsIT09cy5maWVsZFZhbHVlO2NvbnN0IG89Z2V0SW5oZXJpdGFibGVQcm9wZXJ0eSh7ZGljdDp0LGtleToiRlQifSk7cy5maWVsZFR5cGU9byBpbnN0YW5jZW9mIE5hbWU/by5uYW1lOm51bGw7Y29uc3QgbD1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJEUiJ9KSxmPWEuYWNyb0Zvcm0uZ2V0KCJEUiIpLGM9dGhpcy5hcHBlYXJhbmNlPy5kaWN0LmdldCgiUmVzb3VyY2VzIik7dGhpcy5fZmllbGRSZXNvdXJjZXM9e2xvY2FsUmVzb3VyY2VzOmwsYWNyb0Zvcm1SZXNvdXJjZXM6ZixhcHBlYXJhbmNlUmVzb3VyY2VzOmMsbWVyZ2VkUmVzb3VyY2VzOkRpY3QubWVyZ2Uoe3hyZWY6bixkaWN0QXJyYXk6W2wsYyxmXSxtZXJnZVN1YkRpY3RzOiEwfSl9O3MuZmllbGRGbGFncz1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJGZiJ9KTsoIU51bWJlci5pc0ludGVnZXIocy5maWVsZEZsYWdzKXx8cy5maWVsZEZsYWdzPDApJiYocy5maWVsZEZsYWdzPTApO3MucGFzc3dvcmQ9dGhpcy5oYXNGaWVsZEZsYWcoVyk7cy5yZWFkT25seT10aGlzLmhhc0ZpZWxkRmxhZyhVKTtzLnJlcXVpcmVkPXRoaXMuaGFzRmllbGRGbGFnKF8pO3MuaGlkZGVuPXRoaXMuX2hhc0ZsYWcocy5hbm5vdGF0aW9uRmxhZ3MsRCl8fHRoaXMuX2hhc0ZsYWcocy5hbm5vdGF0aW9uRmxhZ3MsTil9X2RlY29kZUZvcm1WYWx1ZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLmZpbHRlcihlPT4ic3RyaW5nIj09dHlwZW9mIGUpLm1hcChlPT5zdHJpbmdUb1BERlN0cmluZyhlKSk6ZSBpbnN0YW5jZW9mIE5hbWU/c3RyaW5nVG9QREZTdHJpbmcoZS5uYW1lKToic3RyaW5nIj09dHlwZW9mIGU/c3RyaW5nVG9QREZTdHJpbmcoZSk6bnVsbH1oYXNGaWVsZEZsYWcoZSl7cmV0dXJuISEodGhpcy5kYXRhLmZpZWxkRmxhZ3MmZSl9X2lzVmlld2FibGUoZSl7cmV0dXJuITB9bXVzdEJlVmlld2VkKGUsdCl7cmV0dXJuIHQ/dGhpcy52aWV3YWJsZTpzdXBlci5tdXN0QmVWaWV3ZWQoZSx0KSYmIXRoaXMuX2hhc0ZsYWcodGhpcy5mbGFncyxOKX1nZXRSb3RhdGlvbk1hdHJpeChlKXtsZXQgdD1lPy5nZXQodGhpcy5kYXRhLmlkKT8ucm90YXRpb247dm9pZCAwPT09dCYmKHQ9dGhpcy5yb3RhdGlvbik7cmV0dXJuIDA9PT10P3BuOmdldFJvdGF0aW9uTWF0cml4KHQsdGhpcy53aWR0aCx0aGlzLmhlaWdodCl9Z2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKGUpe2xldCB0PWU/LmdldCh0aGlzLmRhdGEuaWQpPy5yb3RhdGlvbjt2b2lkIDA9PT10JiYodD10aGlzLnJvdGF0aW9uKTtpZighdGhpcy5iYWNrZ3JvdW5kQ29sb3ImJiF0aGlzLmJvcmRlckNvbG9yKXJldHVybiIiO2NvbnN0IG49MD09PXR8fDE4MD09PXQ/YDAgMCAke3RoaXMud2lkdGh9ICR7dGhpcy5oZWlnaHR9IHJlYDpgMCAwICR7dGhpcy5oZWlnaHR9ICR7dGhpcy53aWR0aH0gcmVgO2xldCBhPSIiO3RoaXMuYmFja2dyb3VuZENvbG9yJiYoYT1gJHtnZXRQZGZDb2xvcih0aGlzLmJhY2tncm91bmRDb2xvciwhMCl9ICR7bn0gZiBgKTtpZih0aGlzLmJvcmRlckNvbG9yKXthKz1gJHt0aGlzLmJvcmRlclN0eWxlLndpZHRofHwxfSB3ICR7Z2V0UGRmQ29sb3IodGhpcy5ib3JkZXJDb2xvciwhMSl9ICR7bn0gUyBgfXJldHVybiBhfWFzeW5jIGdldE9wZXJhdG9yTGlzdChlLHQsbixhKXtpZihuJmYmJiEodGhpcyBpbnN0YW5jZW9mIFNpZ25hdHVyZVdpZGdldEFubm90YXRpb24pJiYhdGhpcy5kYXRhLm5vSFRNTCYmIXRoaXMuZGF0YS5oYXNPd25DYW52YXMpcmV0dXJue29wTGlzdDpuZXcgT3BlcmF0b3JMaXN0LHNlcGFyYXRlRm9ybTohMCxzZXBhcmF0ZUNhbnZhczohMX07aWYoIXRoaXMuX2hhc1RleHQpcmV0dXJuIHN1cGVyLmdldE9wZXJhdG9yTGlzdChlLHQsbixhKTtjb25zdCBzPWF3YWl0IHRoaXMuX2dldEFwcGVhcmFuY2UoZSx0LG4sYSk7aWYodGhpcy5hcHBlYXJhbmNlJiZudWxsPT09cylyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KGUsdCxuLGEpO2NvbnN0IHI9bmV3IE9wZXJhdG9yTGlzdDtpZighdGhpcy5fZGVmYXVsdEFwcGVhcmFuY2V8fG51bGw9PT1zKXJldHVybntvcExpc3Q6cixzZXBhcmF0ZUZvcm06ITEsc2VwYXJhdGVDYW52YXM6ITF9O2NvbnN0IG89ISEodGhpcy5kYXRhLmhhc093bkNhbnZhcyYmbiZpKSxsPVswLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodF0sYz1nZXRUcmFuc2Zvcm1NYXRyaXgodGhpcy5kYXRhLnJlY3QsbCxbMSwwLDAsMSwwLDBdKTtsZXQgaDt0aGlzLm9jJiYoaD1hd2FpdCBlLnBhcnNlTWFya2VkQ29udGVudFByb3BzKHRoaXMub2MsbnVsbCkpO3ZvaWQgMCE9PWgmJnIuYWRkT3AoU3QsWyJPQyIsaF0pO3IuYWRkT3AoT3QsW3RoaXMuZGF0YS5pZCx0aGlzLmRhdGEucmVjdCxjLHRoaXMuZ2V0Um90YXRpb25NYXRyaXgoYSksb10pO2NvbnN0IHU9bmV3IFN0cmluZ1N0cmVhbShzKTthd2FpdCBlLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOnUsdGFzazp0LHJlc291cmNlczp0aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMsb3BlcmF0b3JMaXN0OnJ9KTtyLmFkZE9wKEJ0LFtdKTt2b2lkIDAhPT1oJiZyLmFkZE9wKHh0LFtdKTtyZXR1cm57b3BMaXN0OnIsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOm99fV9nZXRNS0RpY3QoZSl7Y29uc3QgdD1uZXcgRGljdChudWxsKTtlJiZ0LnNldCgiUiIsZSk7dC5zZXRJZkFycmF5KCJCQyIsZ2V0UGRmQ29sb3JBcnJheSh0aGlzLmJvcmRlckNvbG9yKSk7dC5zZXRJZkFycmF5KCJCRyIsZ2V0UGRmQ29sb3JBcnJheSh0aGlzLmJhY2tncm91bmRDb2xvcikpO3JldHVybiB0LnNpemU+MD90Om51bGx9YW1lbmRTYXZlZERpY3QoZSx0KXt9c2V0VmFsdWUoZSx0LG4sYSl7Y29uc3R7ZGljdDpzLHJlZjpyfT1mdW5jdGlvbiBnZXRQYXJlbnRUb1VwZGF0ZShlLHQsbil7Y29uc3QgYT1uZXcgUmVmU2V0LHM9ZSxyPXtkaWN0Om51bGwscmVmOm51bGx9O2Zvcig7ZSBpbnN0YW5jZW9mIERpY3QmJiFhLmhhcyh0KTspe2EucHV0KHQpO2lmKGUuaGFzKCJUIikpYnJlYWs7aWYoISgodD1lLmdldFJhdygiUGFyZW50IikpaW5zdGFuY2VvZiBSZWYpKXJldHVybiByO2U9bi5mZXRjaCh0KX1pZihlIGluc3RhbmNlb2YgRGljdCYmZSE9PXMpe3IuZGljdD1lO3IucmVmPXR9cmV0dXJuIHJ9KGUsdGhpcy5yZWYsbik7aWYocyl7aWYoIWEuaGFzKHIpKXtjb25zdCBlPXMuY2xvbmUoKTtlLnNldCgiViIsdCk7YS5wdXQocix7ZGF0YTplfSk7cmV0dXJuIGV9fWVsc2UgZS5zZXQoIlYiLHQpO3JldHVybiBudWxsfWFzeW5jIHNhdmUoZSx0LG4sYSl7Y29uc3Qgcz1uPy5nZXQodGhpcy5kYXRhLmlkKSxyPXRoaXMuX2J1aWxkRmxhZ3Mocz8ubm9WaWV3LHM/Lm5vUHJpbnQpO2xldCBpPXM/LnZhbHVlLG89cz8ucm90YXRpb247aWYoaT09PXRoaXMuZGF0YS5maWVsZFZhbHVlfHx2b2lkIDA9PT1pKXtpZighdGhpcy5faGFzVmFsdWVGcm9tWEZBJiZ2b2lkIDA9PT1vJiZ2b2lkIDA9PT1yKXJldHVybjtpfHw9dGhpcy5kYXRhLmZpZWxkVmFsdWV9aWYodm9pZCAwPT09byYmIXRoaXMuX2hhc1ZhbHVlRnJvbVhGQSYmQXJyYXkuaXNBcnJheShpKSYmQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuZmllbGRWYWx1ZSkmJmlzQXJyYXlFcXVhbChpLHRoaXMuZGF0YS5maWVsZFZhbHVlKSYmdm9pZCAwPT09cilyZXR1cm47dm9pZCAwPT09byYmKG89dGhpcy5yb3RhdGlvbik7bGV0IGY9bnVsbDtpZighdGhpcy5fbmVlZEFwcGVhcmFuY2VzKXtmPWF3YWl0IHRoaXMuX2dldEFwcGVhcmFuY2UoZSx0LGwsbik7aWYobnVsbD09PWYmJnZvaWQgMD09PXIpcmV0dXJufWxldCBjPSExO2lmKGY/Lm5lZWRBcHBlYXJhbmNlcyl7Yz0hMDtmPW51bGx9Y29uc3R7eHJlZjpofT1lLHU9aC5mZXRjaElmUmVmKHRoaXMucmVmKTtpZighKHUgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47Y29uc3QgbT1uZXcgRGljdChoKTtmb3IoY29uc3QgZSBvZiB1LmdldEtleXMoKSkiQVAiIT09ZSYmbS5zZXQoZSx1LmdldFJhdyhlKSk7aWYodm9pZCAwIT09cil7bS5zZXQoIkYiLHIpO2lmKG51bGw9PT1mJiYhYyl7Y29uc3QgZT11LmdldFJhdygiQVAiKTtlJiZtLnNldCgiQVAiLGUpfX1jb25zdCBwPXtwYXRoOnRoaXMuZGF0YS5maWVsZE5hbWUsdmFsdWU6aX0sZD10aGlzLnNldFZhbHVlKG0sQXJyYXkuaXNBcnJheShpKT9pLm1hcChzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKTpzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKGkpLGgsYSk7dGhpcy5hbWVuZFNhdmVkRGljdChuLGR8fG0pO2NvbnN0IGc9dGhpcy5fZ2V0TUtEaWN0KG8pO2cmJm0uc2V0KCJNSyIsZyk7YS5wdXQodGhpcy5yZWYse2RhdGE6bSx4ZmE6cCxuZWVkQXBwZWFyYW5jZXM6Y30pO2lmKG51bGwhPT1mKXtjb25zdCBlPWguZ2V0TmV3VGVtcG9yYXJ5UmVmKCksdD1uZXcgRGljdChoKTttLnNldCgiQVAiLHQpO3Quc2V0KCJOIixlKTtjb25zdCBzPXRoaXMuX2dldFNhdmVGaWVsZFJlc291cmNlcyhoKSxyPW5ldyBTdHJpbmdTdHJlYW0oZiksaT1yLmRpY3Q9bmV3IERpY3QoaCk7aS5zZXRJZk5hbWUoIlN1YnR5cGUiLCJGb3JtIik7aS5zZXQoIlJlc291cmNlcyIscyk7Y29uc3QgbD1vJTE4MD09MD9bMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHRdOlswLDAsdGhpcy5oZWlnaHQsdGhpcy53aWR0aF07aS5zZXQoIkJCb3giLGwpO2NvbnN0IGM9dGhpcy5nZXRSb3RhdGlvbk1hdHJpeChuKTtjIT09cG4mJmkuc2V0KCJNYXRyaXgiLGMpO2EucHV0KGUse2RhdGE6cix4ZmE6bnVsbCxuZWVkQXBwZWFyYW5jZXM6ITF9KX1tLnNldCgiTSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKCl9YCl9YXN5bmMgX2dldEFwcGVhcmFuY2UoZSx0LG4sYSl7aWYodGhpcy5kYXRhLnBhc3N3b3JkKXJldHVybiBudWxsO2NvbnN0IHI9YT8uZ2V0KHRoaXMuZGF0YS5pZCk7bGV0IGksbztpZihyKXtpPXIuZm9ybWF0dGVkVmFsdWV8fHIudmFsdWU7bz1yLnJvdGF0aW9ufWlmKHZvaWQgMD09PW8mJnZvaWQgMD09PWkmJiF0aGlzLl9uZWVkQXBwZWFyYW5jZXMmJighdGhpcy5faGFzVmFsdWVGcm9tWEZBfHx0aGlzLmFwcGVhcmFuY2UpKXJldHVybiBudWxsO2NvbnN0IGY9dGhpcy5nZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQXBwZWFyYW5jZXMoYSk7aWYodm9pZCAwPT09aSl7aT10aGlzLmRhdGEuZmllbGRWYWx1ZTtpZighaSlyZXR1cm5gL1R4IEJNQyBxICR7Zn1RIEVNQ2B9QXJyYXkuaXNBcnJheShpKSYmMT09PWkubGVuZ3RoJiYoaT1pWzBdKTthc3NlcnQoInN0cmluZyI9PXR5cGVvZiBpLCJFeHBlY3RlZCBgdmFsdWVgIHRvIGJlIGEgc3RyaW5nLiIpO2k9aS50cmltRW5kKCk7aWYodGhpcy5kYXRhLmNvbWJvKXtjb25zdCBlPXRoaXMuZGF0YS5vcHRpb25zLmZpbmQoKHtleHBvcnRWYWx1ZTplfSk9Pmk9PT1lKTtpPWU/LmRpc3BsYXlWYWx1ZXx8aX1pZigiIj09PWkpcmV0dXJuYC9UeCBCTUMgcSAke2Z9USBFTUNgO3ZvaWQgMD09PW8mJihvPXRoaXMucm90YXRpb24pO2xldCBjLGg9LTE7aWYodGhpcy5kYXRhLm11bHRpTGluZSl7Yz1pLnNwbGl0KC9cclxuP3xcbi8pLm1hcChlPT5lLm5vcm1hbGl6ZSgiTkZDIikpO2g9Yy5sZW5ndGh9ZWxzZSBjPVtpLnJlcGxhY2UoL1xyXG4/fFxuLywiIikubm9ybWFsaXplKCJORkMiKV07bGV0e3dpZHRoOnUsaGVpZ2h0Om19PXRoaXM7OTAhPT1vJiYyNzAhPT1vfHwoW3UsbV09W20sdV0pO3RoaXMuX2RlZmF1bHRBcHBlYXJhbmNlfHwodGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YT1wYXJzZURlZmF1bHRBcHBlYXJhbmNlKHRoaXMuX2RlZmF1bHRBcHBlYXJhbmNlPSIvSGVsdmV0aWNhIDAgVGYgMCBnIikpO2xldCBwLGQsZyxiPWF3YWl0IFdpZGdldEFubm90YXRpb24uX2dldEZvbnREYXRhKGUsdCx0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLHRoaXMuX2ZpZWxkUmVzb3VyY2VzLm1lcmdlZFJlc291cmNlcyk7Y29uc3Qgdz1bXTtsZXQgaj0hMTtmb3IoY29uc3QgZSBvZiBjKXtjb25zdCB0PWIuZW5jb2RlU3RyaW5nKGUpO3QubGVuZ3RoPjEmJihqPSEwKTt3LnB1c2godC5qb2luKCIiKSl9aWYoaiYmbiZsKXJldHVybntuZWVkQXBwZWFyYW5jZXM6ITB9O2lmKGomJnRoaXMuX2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKXtjb25zdCBuPXRoaXMuZGF0YS5jb21iPyJtb25vc3BhY2UiOiJzYW5zLXNlcmlmIixhPW5ldyBGYWtlVW5pY29kZUZvbnQoZS54cmVmLG4pLHM9YS5jcmVhdGVGb250UmVzb3VyY2VzKGMuam9pbigiIikpLHI9cy5nZXRSYXcoIkZvbnQiKTtpZih0aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMuaGFzKCJGb250Iikpe2NvbnN0IGU9dGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzLmdldCgiRm9udCIpO2Zvcihjb25zdCB0IG9mIHIuZ2V0S2V5cygpKWUuc2V0KHQsci5nZXRSYXcodCkpfWVsc2UgdGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzLnNldCgiRm9udCIscik7Y29uc3Qgbz1hLmZvbnROYW1lLm5hbWU7Yj1hd2FpdCBXaWRnZXRBbm5vdGF0aW9uLl9nZXRGb250RGF0YShlLHQse2ZvbnROYW1lOm8sZm9udFNpemU6MH0scyk7Zm9yKGxldCBlPTAsdD13Lmxlbmd0aDtlPHQ7ZSsrKXdbZV09c3RyaW5nVG9VVEYxNlN0cmluZyhjW2VdKTtjb25zdCBsPU9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhKTt0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLmZvbnRTaXplPTA7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250TmFtZT1vO1twLGQsZ109dGhpcy5fY29tcHV0ZUZvbnRTaXplKG0tMix1LTQsaSxiLGgpO3RoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE9bH1lbHNle3RoaXMuX2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkfHx3YXJuKCJfZ2V0QXBwZWFyYW5jZTogT2Zmc2NyZWVuQ2FudmFzIGlzIG5vdCBzdXBwb3J0ZWQsIGFubm90YXRpb24gbWF5IG5vdCByZW5kZXIgY29ycmVjdGx5LiIpO1twLGQsZ109dGhpcy5fY29tcHV0ZUZvbnRTaXplKG0tMix1LTQsaSxiLGgpfWxldCBrPWIuZGVzY2VudDtrPWlzTmFOKGspP3MqZzpNYXRoLm1heChzKmcsTWF0aC5hYnMoaykqZCk7Y29uc3QgeT1NYXRoLm1pbihNYXRoLmZsb29yKChtLWQpLzIpLDEpLHE9dGhpcy5kYXRhLnRleHRBbGlnbm1lbnQ7aWYodGhpcy5kYXRhLm11bHRpTGluZSlyZXR1cm4gdGhpcy5fZ2V0TXVsdGlsaW5lQXBwZWFyYW5jZShwLHcsYixkLHUsbSxxLDIseSxrLGcsYSk7aWYodGhpcy5kYXRhLmNvbWIpcmV0dXJuIHRoaXMuX2dldENvbWJBcHBlYXJhbmNlKHAsYix3WzBdLGQsdSxtLDIseSxrLGcsYSk7Y29uc3Qgdj15K2s7aWYoMD09PXF8fHE+MilyZXR1cm5gL1R4IEJNQyBxICR7Zn1CVCBgK3ArYCAxIDAgMCAxICR7bnVtYmVyVG9TdHJpbmcoMil9ICR7bnVtYmVyVG9TdHJpbmcodil9IFRtICgke2VzY2FwZVN0cmluZyh3WzBdKX0pIFRqIEVUIFEgRU1DYDtyZXR1cm5gL1R4IEJNQyBxICR7Zn1CVCBgK3ArYCAxIDAgMCAxIDAgMCBUbSAke3RoaXMuX3JlbmRlclRleHQod1swXSxiLGQsdSxxLHtzaGlmdDowfSwyLHYpfSBFVCBRIEVNQ2B9c3RhdGljIGFzeW5jIF9nZXRGb250RGF0YShlLHQsbixhKXtjb25zdCBzPW5ldyBPcGVyYXRvckxpc3Qscj17Zm9udDpudWxsLGNsb25lKCl7cmV0dXJuIHRoaXN9fSx7Zm9udE5hbWU6aSxmb250U2l6ZTpvfT1uO2F3YWl0IGUuaGFuZGxlU2V0Rm9udChhLFtpJiZOYW1lLmdldChpKSxvXSxudWxsLHMsdCxyLG51bGwpO3JldHVybiByLmZvbnR9X2dldFRleHRXaWR0aChlLHQpe3JldHVybiBNYXRoLnN1bVByZWNpc2UodC5jaGFyc1RvR2x5cGhzKGUpLm1hcChlPT5lLndpZHRoKSkvMWUzfV9jb21wdXRlRm9udFNpemUoZSx0LGEscyxyKXtsZXR7Zm9udFNpemU6aX09dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YSxvPShpfHwxMikqbixsPU1hdGgucm91bmQoZS9vKTtpZighaSl7Y29uc3Qgcm91bmRXaXRoVHdvRGlnaXRzPWU9Pk1hdGguZmxvb3IoMTAwKmUpLzEwMDtpZigtMT09PXIpe2NvbnN0IHI9dGhpcy5fZ2V0VGV4dFdpZHRoKGEscyk7aT1yb3VuZFdpdGhUd29EaWdpdHMoTWF0aC5taW4oZS9uLHQvcikpO2w9MX1lbHNle2NvbnN0IGY9YS5zcGxpdCgvXHJcbj98XG4vKSxjPVtdO2Zvcihjb25zdCBlIG9mIGYpe2NvbnN0IHQ9cy5lbmNvZGVTdHJpbmcoZSkuam9pbigiIiksbj1zLmNoYXJzVG9HbHlwaHModCksYT1zLmdldENoYXJQb3NpdGlvbnModCk7Yy5wdXNoKHtsaW5lOnQsZ2x5cGhzOm4scG9zaXRpb25zOmF9KX1jb25zdCBpc1Rvb0JpZz1uPT57bGV0IGE9MDtmb3IoY29uc3QgciBvZiBjKXthKz10aGlzLl9zcGxpdExpbmUobnVsbCxzLG4sdCxyKS5sZW5ndGgqbjtpZihhPmUpcmV0dXJuITB9cmV0dXJuITF9O2w9TWF0aC5tYXgobCxyKTtmb3IoOzspe289ZS9sO2k9cm91bmRXaXRoVHdvRGlnaXRzKG8vbik7aWYoIWlzVG9vQmlnKGkpKWJyZWFrO2wrK319Y29uc3R7Zm9udE5hbWU6Zixmb250Q29sb3I6Y309dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YTt0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZT1mdW5jdGlvbiBjcmVhdGVEZWZhdWx0QXBwZWFyYW5jZSh7Zm9udFNpemU6ZSxmb250TmFtZTp0LGZvbnRDb2xvcjpufSl7cmV0dXJuYC8ke2VzY2FwZVBERk5hbWUodCl9ICR7ZX0gVGYgJHtnZXRQZGZDb2xvcihuLCEwKX1gfSh7Zm9udFNpemU6aSxmb250TmFtZTpmLGZvbnRDb2xvcjpjfSl9cmV0dXJuW3RoaXMuX2RlZmF1bHRBcHBlYXJhbmNlLGksZS9sXX1fcmVuZGVyVGV4dChlLHQsbixhLHMscixpLG8pe2xldCBsO2lmKDE9PT1zKXtsPShhLXRoaXMuX2dldFRleHRXaWR0aChlLHQpKm4pLzJ9ZWxzZSBpZigyPT09cyl7bD1hLXRoaXMuX2dldFRleHRXaWR0aChlLHQpKm4taX1lbHNlIGw9aTtjb25zdCBmPW51bWJlclRvU3RyaW5nKGwtci5zaGlmdCk7ci5zaGlmdD1sO3JldHVybmAke2Z9ICR7bz1udW1iZXJUb1N0cmluZyhvKX0gVGQgKCR7ZXNjYXBlU3RyaW5nKGUpfSkgVGpgfV9nZXRTYXZlRmllbGRSZXNvdXJjZXMoZSl7Y29uc3R7bG9jYWxSZXNvdXJjZXM6dCxhcHBlYXJhbmNlUmVzb3VyY2VzOm4sYWNyb0Zvcm1SZXNvdXJjZXM6YX09dGhpcy5fZmllbGRSZXNvdXJjZXMscz10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhPy5mb250TmFtZTtpZighcylyZXR1cm4gdHx8RGljdC5lbXB0eTtmb3IoY29uc3QgZSBvZlt0LG5dKWlmKGUgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCB0PWUuZ2V0KCJGb250Iik7aWYodCBpbnN0YW5jZW9mIERpY3QmJnQuaGFzKHMpKXJldHVybiBlfWlmKGEgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBuPWEuZ2V0KCJGb250Iik7aWYobiBpbnN0YW5jZW9mIERpY3QmJm4uaGFzKHMpKXtjb25zdCBhPW5ldyBEaWN0KGUpO2Euc2V0KHMsbi5nZXRSYXcocykpO2NvbnN0IHI9bmV3IERpY3QoZSk7ci5zZXQoIkZvbnQiLGEpO3JldHVybiBEaWN0Lm1lcmdlKHt4cmVmOmUsZGljdEFycmF5OltyLHRdLG1lcmdlU3ViRGljdHM6ITB9KX19cmV0dXJuIHR8fERpY3QuZW1wdHl9Z2V0RmllbGRPYmplY3QoKXtyZXR1cm4gbnVsbH19Y2xhc3MgVGV4dFdpZGdldEFubm90YXRpb24gZXh0ZW5kcyBXaWRnZXRBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dH09ZTtpZih0LmhhcygiUE1EIikpe3RoaXMuZmxhZ3N8PUQ7dGhpcy5kYXRhLmhpZGRlbj0hMDt3YXJuKCJCYXJjb2RlcyBhcmUgbm90IHN1cHBvcnRlZCIpfXRoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLnJlYWRPbmx5JiYhdGhpcy5kYXRhLm5vSFRNTDt0aGlzLl9oYXNUZXh0PSEwOyJzdHJpbmciIT10eXBlb2YgdGhpcy5kYXRhLmZpZWxkVmFsdWUmJih0aGlzLmRhdGEuZmllbGRWYWx1ZT0iIik7bGV0IG49Z2V0SW5oZXJpdGFibGVQcm9wZXJ0eSh7ZGljdDp0LGtleToiUSJ9KTsoIU51bWJlci5pc0ludGVnZXIobil8fG48MHx8bj4yKSYmKG49bnVsbCk7dGhpcy5kYXRhLnRleHRBbGlnbm1lbnQ9bjtsZXQgYT1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJNYXhMZW4ifSk7KCFOdW1iZXIuaXNJbnRlZ2VyKGEpfHxhPDApJiYoYT0wKTt0aGlzLmRhdGEubWF4TGVuPWE7dGhpcy5kYXRhLm11bHRpTGluZT10aGlzLmhhc0ZpZWxkRmxhZyhYKTt0aGlzLmRhdGEuY29tYj10aGlzLmhhc0ZpZWxkRmxhZyhRKSYmIXRoaXMuZGF0YS5tdWx0aUxpbmUmJiF0aGlzLmRhdGEucGFzc3dvcmQmJiF0aGlzLmhhc0ZpZWxkRmxhZygkKSYmMCE9PXRoaXMuZGF0YS5tYXhMZW47dGhpcy5kYXRhLmRvTm90U2Nyb2xsPXRoaXMuaGFzRmllbGRGbGFnKEopO2NvbnN0e2RhdGE6e2FjdGlvbnM6c319PXRoaXM7aWYoIXMpcmV0dXJuO2NvbnN0IHI9L15BRihEYXRlfFRpbWUpXyg/OktleXN0cm9rZXxGb3JtYXQpKD86RXgpP1woWyciXT8oW14nIl0rKVsnIl0/XCk7JC87bGV0IGk9ITE7KDE9PT1zLkZvcm1hdD8ubGVuZ3RoJiYxPT09cy5LZXlzdHJva2U/Lmxlbmd0aCYmci50ZXN0KHMuRm9ybWF0WzBdKSYmci50ZXN0KHMuS2V5c3Ryb2tlWzBdKXx8MD09PXMuRm9ybWF0Py5sZW5ndGgmJjE9PT1zLktleXN0cm9rZT8ubGVuZ3RoJiZyLnRlc3Qocy5LZXlzdHJva2VbMF0pfHwwPT09cy5LZXlzdHJva2U/Lmxlbmd0aCYmMT09PXMuRm9ybWF0Py5sZW5ndGgmJnIudGVzdChzLkZvcm1hdFswXSkpJiYoaT0hMCk7Y29uc3Qgbz1bXTtzLkZvcm1hdCYmby5wdXNoKC4uLnMuRm9ybWF0KTtzLktleXN0cm9rZSYmby5wdXNoKC4uLnMuS2V5c3Ryb2tlKTtpZihpKXtkZWxldGUgcy5LZXlzdHJva2U7cy5Gb3JtYXQ9b31mb3IoY29uc3QgZSBvZiBvKXtjb25zdCB0PWUubWF0Y2gocik7aWYoIXQpY29udGludWU7Y29uc3Qgbj0iRGF0ZSI9PT10WzFdO2xldCBhPXRbMl07Y29uc3Qgcz1wYXJzZUludChhLDEwKTtpc05hTihzKXx8TWF0aC5mbG9vcihNYXRoLmxvZzEwKHMpKSsxIT09dFsyXS5sZW5ndGh8fChhPShuP3ZyOlNyKVtzXT8/YSk7dGhpcy5kYXRhLmRhdGV0aW1lRm9ybWF0PWE7aWYoIWkpYnJlYWs7aWYobil7aWYoL0hIfE1NfHNzfGgvLnRlc3QoYSkpe3RoaXMuZGF0YS5kYXRldGltZVR5cGU9ImRhdGV0aW1lLWxvY2FsIjt0aGlzLmRhdGEudGltZVN0ZXA9L3NzLy50ZXN0KGEpPzE6NjB9ZWxzZSB0aGlzLmRhdGEuZGF0ZXRpbWVUeXBlPSJkYXRlIjticmVha310aGlzLmRhdGEuZGF0ZXRpbWVUeXBlPSJ0aW1lIjt0aGlzLmRhdGEudGltZVN0ZXA9L3NzLy50ZXN0KGEpPzE6NjA7YnJlYWt9fWdldCBoYXNUZXh0Q29udGVudCgpe3JldHVybiEhdGhpcy5hcHBlYXJhbmNlJiYhdGhpcy5fbmVlZEFwcGVhcmFuY2VzfV9nZXRDb21iQXBwZWFyYW5jZShlLHQsbixhLHMscixpLG8sbCxmLGMpe2NvbnN0IGg9cy90aGlzLmRhdGEubWF4TGVuLHU9dGhpcy5nZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQXBwZWFyYW5jZXMoYyksbT1bXSxwPXQuZ2V0Q2hhclBvc2l0aW9ucyhuKTtmb3IoY29uc3RbZSx0XW9mIHApbS5wdXNoKGAoJHtlc2NhcGVTdHJpbmcobi5zdWJzdHJpbmcoZSx0KSl9KSBUamApO2NvbnN0IGQ9bS5qb2luKGAgJHtudW1iZXJUb1N0cmluZyhoKX0gMCBUZCBgKTtyZXR1cm5gL1R4IEJNQyBxICR7dX1CVCBgK2UrYCAxIDAgMCAxICR7bnVtYmVyVG9TdHJpbmcoaSl9ICR7bnVtYmVyVG9TdHJpbmcobytsKX0gVG0gJHtkfSBFVCBRIEVNQ2B9X2dldE11bHRpbGluZUFwcGVhcmFuY2UoZSx0LG4sYSxzLHIsaSxvLGwsZixjLGgpe2NvbnN0IHU9W10sbT1zLTIqbyxwPXtzaGlmdDowfTtmb3IobGV0IGU9MCxyPXQubGVuZ3RoO2U8cjtlKyspe2NvbnN0IHI9dFtlXSxoPXRoaXMuX3NwbGl0TGluZShyLG4sYSxtKTtmb3IobGV0IHQ9MCxyPWgubGVuZ3RoO3Q8cjt0Kyspe2NvbnN0IHI9aFt0XSxtPTA9PT1lJiYwPT09dD8tbC0oYy1mKTotYzt1LnB1c2godGhpcy5fcmVuZGVyVGV4dChyLG4sYSxzLGkscCxvLG0pKX19Y29uc3QgZD10aGlzLmdldEJvcmRlckFuZEJhY2tncm91bmRBcHBlYXJhbmNlcyhoKSxnPXUuam9pbigiXG4iKTtyZXR1cm5gL1R4IEJNQyBxICR7ZH1CVCBgK2UrYCAxIDAgMCAxIDAgJHtudW1iZXJUb1N0cmluZyhyKX0gVG0gJHtnfSBFVCBRIEVNQ2B9X3NwbGl0TGluZShlLHQsbixhLHM9e30pe2U9cy5saW5lfHxlO2NvbnN0IHI9cy5nbHlwaHN8fHQuY2hhcnNUb0dseXBocyhlKTtpZihyLmxlbmd0aDw9MSlyZXR1cm5bZV07Y29uc3QgaT1zLnBvc2l0aW9uc3x8dC5nZXRDaGFyUG9zaXRpb25zKGUpLG89bi8xZTMsbD1bXTtsZXQgZj0tMSxjPS0xLGg9LTEsdT0wLG09MDtmb3IobGV0IHQ9MCxuPXIubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0W24sc109aVt0XSxwPXJbdF0sZD1wLndpZHRoKm87aWYoIiAiPT09cC51bmljb2RlKWlmKG0rZD5hKXtsLnB1c2goZS5zdWJzdHJpbmcodSxuKSk7dT1uO209ZDtmPS0xO2g9LTF9ZWxzZXttKz1kO2Y9bjtjPXM7aD10fWVsc2UgaWYobStkPmEpaWYoLTEhPT1mKXtsLnB1c2goZS5zdWJzdHJpbmcodSxjKSk7dT1jO3Q9aCsxO2Y9LTE7bT0wfWVsc2V7bC5wdXNoKGUuc3Vic3RyaW5nKHUsbikpO3U9bjttPWR9ZWxzZSBtKz1kfXU8ZS5sZW5ndGgmJmwucHVzaChlLnN1YnN0cmluZyh1LGUubGVuZ3RoKSk7cmV0dXJuIGx9YXN5bmMgZXh0cmFjdFRleHRDb250ZW50KGUsdCxuKXthd2FpdCBzdXBlci5leHRyYWN0VGV4dENvbnRlbnQoZSx0LG4pO2NvbnN0IGE9dGhpcy5kYXRhLnRleHRDb250ZW50O2lmKCFhKXJldHVybjtjb25zdCBzPWEuam9pbigiXG4iKTtpZihzPT09dGhpcy5kYXRhLmZpZWxkVmFsdWUpcmV0dXJuO2NvbnN0IHI9cy5yZXBsYWNlQWxsKC8oWy4qKz9eJHt9KCl8W1xdXFxdKXwoXHMrKS9nLChlLHQpPT50P2BcXCR7dH1gOiJcXHMrIik7bmV3IFJlZ0V4cChgXlxccyoke3J9XFxzKiRgKS50ZXN0KHRoaXMuZGF0YS5maWVsZFZhbHVlKSYmKHRoaXMuZGF0YS50ZXh0Q29udGVudD10aGlzLmRhdGEuZmllbGRWYWx1ZS5zcGxpdCgiXG4iKSl9Z2V0RmllbGRPYmplY3QoKXtyZXR1cm57aWQ6dGhpcy5kYXRhLmlkLHZhbHVlOnRoaXMuZGF0YS5maWVsZFZhbHVlLGRlZmF1bHRWYWx1ZTp0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWV8fCIiLG11bHRpbGluZTp0aGlzLmRhdGEubXVsdGlMaW5lLHBhc3N3b3JkOnRoaXMuZGF0YS5wYXNzd29yZCxjaGFyTGltaXQ6dGhpcy5kYXRhLm1heExlbixjb21iOnRoaXMuZGF0YS5jb21iLGVkaXRhYmxlOiF0aGlzLmRhdGEucmVhZE9ubHksaGlkZGVuOnRoaXMuZGF0YS5oaWRkZW4sbmFtZTp0aGlzLmRhdGEuZmllbGROYW1lLHJlY3Q6dGhpcy5kYXRhLnJlY3QsYWN0aW9uczp0aGlzLmRhdGEuYWN0aW9ucyxwYWdlOnRoaXMuZGF0YS5wYWdlSW5kZXgsc3Ryb2tlQ29sb3I6dGhpcy5kYXRhLmJvcmRlckNvbG9yLGZpbGxDb2xvcjp0aGlzLmRhdGEuYmFja2dyb3VuZENvbG9yLHJvdGF0aW9uOnRoaXMucm90YXRpb24sZGF0ZXRpbWVGb3JtYXQ6dGhpcy5kYXRhLmRhdGV0aW1lRm9ybWF0LGhhc0RhdGV0aW1lSFRNTDohIXRoaXMuZGF0YS5kYXRldGltZVR5cGUsdHlwZToidGV4dCJ9fX1jbGFzcyBCdXR0b25XaWRnZXRBbm5vdGF0aW9uIGV4dGVuZHMgV2lkZ2V0QW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLmNoZWNrZWRBcHBlYXJhbmNlPW51bGw7dGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlPW51bGw7Y29uc3QgdD10aGlzLmhhc0ZpZWxkRmxhZyhLKSxuPXRoaXMuaGFzRmllbGRGbGFnKEcpO3RoaXMuZGF0YS5jaGVja0JveD0hdCYmIW47dGhpcy5kYXRhLnJhZGlvQnV0dG9uPXQmJiFuO3RoaXMuZGF0YS5wdXNoQnV0dG9uPW47dGhpcy5kYXRhLmlzVG9vbHRpcE9ubHk9ITE7aWYodGhpcy5kYXRhLmNoZWNrQm94KXRoaXMuX3Byb2Nlc3NDaGVja0JveChlKTtlbHNlIGlmKHRoaXMuZGF0YS5yYWRpb0J1dHRvbil0aGlzLl9wcm9jZXNzUmFkaW9CdXR0b24oZSk7ZWxzZSBpZih0aGlzLmRhdGEucHVzaEJ1dHRvbil7dGhpcy5kYXRhLmhhc093bkNhbnZhcz0hMDt0aGlzLmRhdGEubm9IVE1MPSExO3RoaXMuX3Byb2Nlc3NQdXNoQnV0dG9uKGUpfWVsc2Ugd2FybigiSW52YWxpZCBmaWVsZCBmbGFncyBmb3IgYnV0dG9uIHdpZGdldCBhbm5vdGF0aW9uIil9YXN5bmMgZ2V0T3BlcmF0b3JMaXN0KGUsdCxuLGEpe2lmKHRoaXMuZGF0YS5wdXNoQnV0dG9uKXJldHVybiBzdXBlci5nZXRPcGVyYXRvckxpc3QoZSx0LG4sITEsYSk7bGV0IHM9bnVsbCxyPW51bGw7aWYoYSl7Y29uc3QgZT1hLmdldCh0aGlzLmRhdGEuaWQpO3M9ZT9lLnZhbHVlOm51bGw7cj1lP2Uucm90YXRpb246bnVsbH1pZihudWxsPT09cyYmdGhpcy5hcHBlYXJhbmNlKXJldHVybiBzdXBlci5nZXRPcGVyYXRvckxpc3QoZSx0LG4sYSk7bnVsbD09cyYmKHM9dGhpcy5kYXRhLmNoZWNrQm94P3RoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmV4cG9ydFZhbHVlOnRoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmJ1dHRvblZhbHVlKTtjb25zdCBpPXM/dGhpcy5jaGVja2VkQXBwZWFyYW5jZTp0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2U7aWYoaSl7Y29uc3Qgcz10aGlzLmFwcGVhcmFuY2Usbz1sb29rdXBNYXRyaXgoaS5kaWN0LmdldEFycmF5KCJNYXRyaXgiKSxwbik7ciYmaS5kaWN0LnNldCgiTWF0cml4Iix0aGlzLmdldFJvdGF0aW9uTWF0cml4KGEpKTt0aGlzLmFwcGVhcmFuY2U9aTtjb25zdCBsPXN1cGVyLmdldE9wZXJhdG9yTGlzdChlLHQsbixhKTt0aGlzLmFwcGVhcmFuY2U9cztpLmRpY3Quc2V0KCJNYXRyaXgiLG8pO3JldHVybiBsfXJldHVybntvcExpc3Q6bmV3IE9wZXJhdG9yTGlzdCxzZXBhcmF0ZUZvcm06ITEsc2VwYXJhdGVDYW52YXM6ITF9fWFzeW5jIHNhdmUoZSx0LG4sYSl7dGhpcy5kYXRhLmNoZWNrQm94P3RoaXMuX3NhdmVDaGVja2JveChlLHQsbixhKTp0aGlzLmRhdGEucmFkaW9CdXR0b24mJnRoaXMuX3NhdmVSYWRpb0J1dHRvbihlLHQsbixhKX1hc3luYyBfc2F2ZUNoZWNrYm94KGUsdCxuLGEpe2lmKCFuKXJldHVybjtjb25zdCBzPW4uZ2V0KHRoaXMuZGF0YS5pZCkscj10aGlzLl9idWlsZEZsYWdzKHM/Lm5vVmlldyxzPy5ub1ByaW50KTtsZXQgaT1zPy5yb3RhdGlvbixvPXM/LnZhbHVlO2lmKHZvaWQgMD09PWkmJnZvaWQgMD09PXIpe2lmKHZvaWQgMD09PW8pcmV0dXJuO2lmKHRoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmV4cG9ydFZhbHVlPT09bylyZXR1cm59bGV0IGw9ZS54cmVmLmZldGNoSWZSZWYodGhpcy5yZWYpO2lmKCEobCBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtsPWwuY2xvbmUoKTt2b2lkIDA9PT1pJiYoaT10aGlzLnJvdGF0aW9uKTt2b2lkIDA9PT1vJiYobz10aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5leHBvcnRWYWx1ZSk7Y29uc3QgZj17cGF0aDp0aGlzLmRhdGEuZmllbGROYW1lLHZhbHVlOm8/dGhpcy5kYXRhLmV4cG9ydFZhbHVlOiIifSxjPU5hbWUuZ2V0KG8/dGhpcy5kYXRhLmV4cG9ydFZhbHVlOiJPZmYiKTt0aGlzLnNldFZhbHVlKGwsYyxlLnhyZWYsYSk7bC5zZXQoIkFTIixjKTtsLnNldCgiTSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKCl9YCk7dm9pZCAwIT09ciYmbC5zZXQoIkYiLHIpO2NvbnN0IGg9dGhpcy5fZ2V0TUtEaWN0KGkpO2gmJmwuc2V0KCJNSyIsaCk7YS5wdXQodGhpcy5yZWYse2RhdGE6bCx4ZmE6ZixuZWVkQXBwZWFyYW5jZXM6ITF9KX1hc3luYyBfc2F2ZVJhZGlvQnV0dG9uKGUsdCxuLGEpe2lmKCFuKXJldHVybjtjb25zdCBzPW4uZ2V0KHRoaXMuZGF0YS5pZCkscj10aGlzLl9idWlsZEZsYWdzKHM/Lm5vVmlldyxzPy5ub1ByaW50KTtsZXQgaT1zPy5yb3RhdGlvbixvPXM/LnZhbHVlO2lmKHZvaWQgMD09PWkmJnZvaWQgMD09PXIpe2lmKHZvaWQgMD09PW8pcmV0dXJuO2lmKHRoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmJ1dHRvblZhbHVlPT09bylyZXR1cm59bGV0IGw9ZS54cmVmLmZldGNoSWZSZWYodGhpcy5yZWYpO2lmKCEobCBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtsPWwuY2xvbmUoKTt2b2lkIDA9PT1vJiYobz10aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5idXR0b25WYWx1ZSk7dm9pZCAwPT09aSYmKGk9dGhpcy5yb3RhdGlvbik7Y29uc3QgZj17cGF0aDp0aGlzLmRhdGEuZmllbGROYW1lLHZhbHVlOm8/dGhpcy5kYXRhLmJ1dHRvblZhbHVlOiIifSxjPU5hbWUuZ2V0KG8/dGhpcy5kYXRhLmJ1dHRvblZhbHVlOiJPZmYiKTtvJiZ0aGlzLnNldFZhbHVlKGwsYyxlLnhyZWYsYSk7bC5zZXQoIkFTIixjKTtsLnNldCgiTSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKCl9YCk7dm9pZCAwIT09ciYmbC5zZXQoIkYiLHIpO2NvbnN0IGg9dGhpcy5fZ2V0TUtEaWN0KGkpO2gmJmwuc2V0KCJNSyIsaCk7YS5wdXQodGhpcy5yZWYse2RhdGE6bCx4ZmE6ZixuZWVkQXBwZWFyYW5jZXM6ITF9KX1fZ2V0RGVmYXVsdENoZWNrZWRBcHBlYXJhbmNlKGUsdCl7Y29uc3R7d2lkdGg6bixoZWlnaHQ6YX09dGhpcyxzPVswLDAsbixhXSxyPS44Kk1hdGgubWluKG4sYSk7bGV0IGksbztpZigiY2hlY2siPT09dCl7aT17d2lkdGg6Ljc1NSpyLGhlaWdodDouNzA1KnJ9O289IjMifWVsc2UgaWYoImRpc2MiPT09dCl7aT17d2lkdGg6Ljc5MSpyLGhlaWdodDouNzA1KnJ9O289ImwifWVsc2UgdW5yZWFjaGFibGUoYF9nZXREZWZhdWx0Q2hlY2tlZEFwcGVhcmFuY2UgLSB1bnN1cHBvcnRlZCB0eXBlOiAke3R9YCk7Y29uc3QgbD1gcSBCVCAvUGRmSnNaYURiICR7cn0gVGYgMCBnICR7bnVtYmVyVG9TdHJpbmcoKG4taS53aWR0aCkvMil9ICR7bnVtYmVyVG9TdHJpbmcoKGEtaS5oZWlnaHQpLzIpfSBUZCAoJHtvfSkgVGogRVQgUWAsZj1uZXcgRGljdChlLnhyZWYpO2Yuc2V0KCJGb3JtVHlwZSIsMSk7Zi5zZXRJZk5hbWUoIlN1YnR5cGUiLCJGb3JtIik7Zi5zZXRJZk5hbWUoIlR5cGUiLCJYT2JqZWN0Iik7Zi5zZXQoIkJCb3giLHMpO2Yuc2V0KCJNYXRyaXgiLFsxLDAsMCwxLDAsMF0pO2Yuc2V0KCJMZW5ndGgiLGwubGVuZ3RoKTtjb25zdCBjPW5ldyBEaWN0KGUueHJlZiksaD1uZXcgRGljdChlLnhyZWYpO2guc2V0KCJQZGZKc1phRGIiLHRoaXMuZmFsbGJhY2tGb250RGljdCk7Yy5zZXQoIkZvbnQiLGgpO2Yuc2V0KCJSZXNvdXJjZXMiLGMpO3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U9bmV3IFN0cmluZ1N0cmVhbShsKTt0aGlzLmNoZWNrZWRBcHBlYXJhbmNlLmRpY3Q9Zjt0aGlzLl9zdHJlYW1zLnB1c2godGhpcy5jaGVja2VkQXBwZWFyYW5jZSl9X3Byb2Nlc3NDaGVja0JveChlKXtjb25zdCB0PWUuZGljdC5nZXQoIkFQIik7aWYoISh0IGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2NvbnN0IG49dC5nZXQoIk4iKTtpZighKG4gaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47Y29uc3QgYT10aGlzLl9kZWNvZGVGb3JtVmFsdWUoZS5kaWN0LmdldCgiQVMiKSk7InN0cmluZyI9PXR5cGVvZiBhJiYodGhpcy5kYXRhLmZpZWxkVmFsdWU9YSk7Y29uc3Qgcz1udWxsIT09dGhpcy5kYXRhLmZpZWxkVmFsdWUmJiJPZmYiIT09dGhpcy5kYXRhLmZpZWxkVmFsdWU/dGhpcy5kYXRhLmZpZWxkVmFsdWU6IlllcyIscj10aGlzLl9kZWNvZGVGb3JtVmFsdWUobi5nZXRLZXlzKCkpO2lmKDA9PT1yLmxlbmd0aClyLnB1c2goIk9mZiIscyk7ZWxzZSBpZigxPT09ci5sZW5ndGgpIk9mZiI9PT1yWzBdP3IucHVzaChzKTpyLnVuc2hpZnQoIk9mZiIpO2Vsc2UgaWYoci5pbmNsdWRlcyhzKSl7ci5sZW5ndGg9MDtyLnB1c2goIk9mZiIscyl9ZWxzZXtjb25zdCBlPXIuZmluZChlPT4iT2ZmIiE9PWUpO3IubGVuZ3RoPTA7ci5wdXNoKCJPZmYiLGUpfXIuaW5jbHVkZXModGhpcy5kYXRhLmZpZWxkVmFsdWUpfHwodGhpcy5kYXRhLmZpZWxkVmFsdWU9Ik9mZiIpO3RoaXMuZGF0YS5leHBvcnRWYWx1ZT1yWzFdO2NvbnN0IGk9bi5nZXQodGhpcy5kYXRhLmV4cG9ydFZhbHVlKTt0aGlzLmNoZWNrZWRBcHBlYXJhbmNlPWkgaW5zdGFuY2VvZiBCYXNlU3RyZWFtP2k6bnVsbDtjb25zdCBvPW4uZ2V0KCJPZmYiKTt0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2U9byBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/bzpudWxsO3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U/dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuY2hlY2tlZEFwcGVhcmFuY2UpOnRoaXMuX2dldERlZmF1bHRDaGVja2VkQXBwZWFyYW5jZShlLCJjaGVjayIpO3RoaXMudW5jaGVja2VkQXBwZWFyYW5jZSYmdGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMudW5jaGVja2VkQXBwZWFyYW5jZSk7dGhpcy5fZmFsbGJhY2tGb250RGljdD10aGlzLmZhbGxiYWNrRm9udERpY3Q7bnVsbD09PXRoaXMuZGF0YS5kZWZhdWx0RmllbGRWYWx1ZSYmKHRoaXMuZGF0YS5kZWZhdWx0RmllbGRWYWx1ZT0iT2ZmIil9X3Byb2Nlc3NSYWRpb0J1dHRvbihlKXt0aGlzLmRhdGEuYnV0dG9uVmFsdWU9bnVsbDtjb25zdCB0PWUuZGljdC5nZXQoIlBhcmVudCIpO2lmKHQgaW5zdGFuY2VvZiBEaWN0KXt0aGlzLnBhcmVudD1lLmRpY3QuZ2V0UmF3KCJQYXJlbnQiKTtjb25zdCBuPXQuZ2V0KCJWIik7biBpbnN0YW5jZW9mIE5hbWUmJih0aGlzLmRhdGEuZmllbGRWYWx1ZT10aGlzLl9kZWNvZGVGb3JtVmFsdWUobikpfWNvbnN0IG49ZS5kaWN0LmdldCgiQVAiKTtpZighKG4gaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47Y29uc3QgYT1uLmdldCgiTiIpO2lmKCEoYSBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtmb3IoY29uc3QgZSBvZiBhLmdldEtleXMoKSlpZigiT2ZmIiE9PWUpe3RoaXMuZGF0YS5idXR0b25WYWx1ZT10aGlzLl9kZWNvZGVGb3JtVmFsdWUoZSk7YnJlYWt9Y29uc3Qgcz1hLmdldCh0aGlzLmRhdGEuYnV0dG9uVmFsdWUpO3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U9cyBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/czpudWxsO2NvbnN0IHI9YS5nZXQoIk9mZiIpO3RoaXMudW5jaGVja2VkQXBwZWFyYW5jZT1yIGluc3RhbmNlb2YgQmFzZVN0cmVhbT9yOm51bGw7dGhpcy5jaGVja2VkQXBwZWFyYW5jZT90aGlzLl9zdHJlYW1zLnB1c2godGhpcy5jaGVja2VkQXBwZWFyYW5jZSk6dGhpcy5fZ2V0RGVmYXVsdENoZWNrZWRBcHBlYXJhbmNlKGUsImRpc2MiKTt0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UmJnRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UpO3RoaXMuX2ZhbGxiYWNrRm9udERpY3Q9dGhpcy5mYWxsYmFja0ZvbnREaWN0O251bGw9PT10aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWUmJih0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWU9Ik9mZiIpfV9wcm9jZXNzUHVzaEJ1dHRvbihlKXtjb25zdHtkaWN0OnQsYW5ub3RhdGlvbkdsb2JhbHM6bn09ZTtpZih0LmhhcygiQSIpfHx0LmhhcygiQUEiKXx8dGhpcy5kYXRhLmFsdGVybmF0aXZlVGV4dCl7dGhpcy5kYXRhLmlzVG9vbHRpcE9ubHk9IXQuaGFzKCJBIikmJiF0LmhhcygiQUEiKTtDYXRhbG9nLnBhcnNlRGVzdERpY3Rpb25hcnkoe2Rlc3REaWN0OnQscmVzdWx0T2JqOnRoaXMuZGF0YSxkb2NCYXNlVXJsOm4uYmFzZVVybCxkb2NBdHRhY2htZW50czpuLmF0dGFjaG1lbnRzfSl9ZWxzZSB3YXJuKCJQdXNoIGJ1dHRvbnMgd2l0aG91dCBhY3Rpb24gZGljdGlvbmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkIil9Z2V0RmllbGRPYmplY3QoKXtsZXQgZSx0PSJidXR0b24iO2lmKHRoaXMuZGF0YS5jaGVja0JveCl7dD0iY2hlY2tib3giO2U9dGhpcy5kYXRhLmV4cG9ydFZhbHVlfWVsc2UgaWYodGhpcy5kYXRhLnJhZGlvQnV0dG9uKXt0PSJyYWRpb2J1dHRvbiI7ZT10aGlzLmRhdGEuYnV0dG9uVmFsdWV9cmV0dXJue2lkOnRoaXMuZGF0YS5pZCx2YWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZXx8Ik9mZiIsZGVmYXVsdFZhbHVlOnRoaXMuZGF0YS5kZWZhdWx0RmllbGRWYWx1ZSxleHBvcnRWYWx1ZXM6ZSxlZGl0YWJsZTohdGhpcy5kYXRhLnJlYWRPbmx5LG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxyZWN0OnRoaXMuZGF0YS5yZWN0LGhpZGRlbjp0aGlzLmRhdGEuaGlkZGVuLGFjdGlvbnM6dGhpcy5kYXRhLmFjdGlvbnMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHN0cm9rZUNvbG9yOnRoaXMuZGF0YS5ib3JkZXJDb2xvcixmaWxsQ29sb3I6dGhpcy5kYXRhLmJhY2tncm91bmRDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHR5cGU6dH19Z2V0IGZhbGxiYWNrRm9udERpY3QoKXtjb25zdCBlPW5ldyBEaWN0O2Uuc2V0SWZOYW1lKCJCYXNlRm9udCIsIlphcGZEaW5nYmF0cyIpO2Uuc2V0SWZOYW1lKCJUeXBlIiwiRmFsbGJhY2tUeXBlIik7ZS5zZXRJZk5hbWUoIlN1YnR5cGUiLCJGYWxsYmFja1R5cGUiKTtlLnNldElmTmFtZSgiRW5jb2RpbmciLCJaYXBmRGluZ2JhdHNFbmNvZGluZyIpO3JldHVybiBzaGFkb3codGhpcywiZmFsbGJhY2tGb250RGljdCIsZSl9fWNsYXNzIENob2ljZVdpZGdldEFubm90YXRpb24gZXh0ZW5kcyBXaWRnZXRBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCx4cmVmOm59PWU7dGhpcy5pbmRpY2VzPXQuZ2V0QXJyYXkoIkkiKTt0aGlzLmhhc0luZGljZXM9QXJyYXkuaXNBcnJheSh0aGlzLmluZGljZXMpJiZ0aGlzLmluZGljZXMubGVuZ3RoPjA7dGhpcy5kYXRhLm9wdGlvbnM9W107Y29uc3QgYT1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJPcHQifSk7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IobGV0IGU9MCx0PWEubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9bi5mZXRjaElmUmVmKGFbZV0pLHM9QXJyYXkuaXNBcnJheSh0KTt0aGlzLmRhdGEub3B0aW9uc1tlXT17ZXhwb3J0VmFsdWU6dGhpcy5fZGVjb2RlRm9ybVZhbHVlKHM/bi5mZXRjaElmUmVmKHRbMF0pOnQpLGRpc3BsYXlWYWx1ZTp0aGlzLl9kZWNvZGVGb3JtVmFsdWUocz9uLmZldGNoSWZSZWYodFsxXSk6dCl9fWlmKHRoaXMuaGFzSW5kaWNlcyl7dGhpcy5kYXRhLmZpZWxkVmFsdWU9W107Y29uc3QgZT10aGlzLmRhdGEub3B0aW9ucy5sZW5ndGg7Zm9yKGNvbnN0IHQgb2YgdGhpcy5pbmRpY2VzKU51bWJlci5pc0ludGVnZXIodCkmJnQ+PTAmJnQ8ZSYmdGhpcy5kYXRhLmZpZWxkVmFsdWUucHVzaCh0aGlzLmRhdGEub3B0aW9uc1t0XS5leHBvcnRWYWx1ZSl9ZWxzZSJzdHJpbmciPT10eXBlb2YgdGhpcy5kYXRhLmZpZWxkVmFsdWU/dGhpcy5kYXRhLmZpZWxkVmFsdWU9W3RoaXMuZGF0YS5maWVsZFZhbHVlXTp0aGlzLmRhdGEuZmllbGRWYWx1ZXx8PVtdOzA9PT10aGlzLmRhdGEub3B0aW9ucy5sZW5ndGgmJnRoaXMuZGF0YS5maWVsZFZhbHVlLmxlbmd0aD4wJiYodGhpcy5kYXRhLm9wdGlvbnM9dGhpcy5kYXRhLmZpZWxkVmFsdWUubWFwKGU9Pih7ZXhwb3J0VmFsdWU6ZSxkaXNwbGF5VmFsdWU6ZX0pKSk7dGhpcy5kYXRhLmNvbWJvPXRoaXMuaGFzRmllbGRGbGFnKFYpO3RoaXMuZGF0YS5tdWx0aVNlbGVjdD10aGlzLmhhc0ZpZWxkRmxhZyhZKTt0aGlzLl9oYXNUZXh0PSEwfWdldEZpZWxkT2JqZWN0KCl7Y29uc3QgZT10aGlzLmRhdGEuY29tYm8/ImNvbWJvYm94IjoibGlzdGJveCIsdD10aGlzLmRhdGEuZmllbGRWYWx1ZS5sZW5ndGg+MD90aGlzLmRhdGEuZmllbGRWYWx1ZVswXTpudWxsO3JldHVybntpZDp0aGlzLmRhdGEuaWQsdmFsdWU6dCxkZWZhdWx0VmFsdWU6dGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlLGVkaXRhYmxlOiF0aGlzLmRhdGEucmVhZE9ubHksbmFtZTp0aGlzLmRhdGEuZmllbGROYW1lLHJlY3Q6dGhpcy5kYXRhLnJlY3QsbnVtSXRlbXM6dGhpcy5kYXRhLmZpZWxkVmFsdWUubGVuZ3RoLG11bHRpcGxlU2VsZWN0aW9uOnRoaXMuZGF0YS5tdWx0aVNlbGVjdCxoaWRkZW46dGhpcy5kYXRhLmhpZGRlbixhY3Rpb25zOnRoaXMuZGF0YS5hY3Rpb25zLGl0ZW1zOnRoaXMuZGF0YS5vcHRpb25zLHBhZ2U6dGhpcy5kYXRhLnBhZ2VJbmRleCxzdHJva2VDb2xvcjp0aGlzLmRhdGEuYm9yZGVyQ29sb3IsZmlsbENvbG9yOnRoaXMuZGF0YS5iYWNrZ3JvdW5kQ29sb3Iscm90YXRpb246dGhpcy5yb3RhdGlvbix0eXBlOmV9fWFtZW5kU2F2ZWREaWN0KGUsdCl7aWYoIXRoaXMuaGFzSW5kaWNlcylyZXR1cm47bGV0IG49ZT8uZ2V0KHRoaXMuZGF0YS5pZCk/LnZhbHVlO0FycmF5LmlzQXJyYXkobil8fChuPVtuXSk7Y29uc3QgYT1bXSx7b3B0aW9uczpzfT10aGlzLmRhdGE7Zm9yKGxldCBlPTAsdD0wLHI9cy5sZW5ndGg7ZTxyO2UrKylpZihzW2VdLmV4cG9ydFZhbHVlPT09blt0XSl7YS5wdXNoKGUpO3QrPTF9dC5zZXQoIkkiLGEpfWFzeW5jIF9nZXRBcHBlYXJhbmNlKGUsdCxhLHMpe2lmKHRoaXMuZGF0YS5jb21ibylyZXR1cm4gc3VwZXIuX2dldEFwcGVhcmFuY2UoZSx0LGEscyk7bGV0IHIsaTtjb25zdCBvPXM/LmdldCh0aGlzLmRhdGEuaWQpO2lmKG8pe2k9by5yb3RhdGlvbjtyPW8udmFsdWV9aWYodm9pZCAwPT09aSYmdm9pZCAwPT09ciYmIXRoaXMuX25lZWRBcHBlYXJhbmNlcylyZXR1cm4gbnVsbDt2b2lkIDA9PT1yP3I9dGhpcy5kYXRhLmZpZWxkVmFsdWU6QXJyYXkuaXNBcnJheShyKXx8KHI9W3JdKTtsZXR7d2lkdGg6bCxoZWlnaHQ6Zn09dGhpczs5MCE9PWkmJjI3MCE9PWl8fChbbCxmXT1bZixsXSk7Y29uc3QgYz10aGlzLmRhdGEub3B0aW9ucy5sZW5ndGgsaD1bXTtmb3IobGV0IGU9MDtlPGM7ZSsrKXtjb25zdHtleHBvcnRWYWx1ZTp0fT10aGlzLmRhdGEub3B0aW9uc1tlXTtyLmluY2x1ZGVzKHQpJiZoLnB1c2goZSl9dGhpcy5fZGVmYXVsdEFwcGVhcmFuY2V8fCh0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhPXBhcnNlRGVmYXVsdEFwcGVhcmFuY2UodGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U9Ii9IZWx2ZXRpY2EgMCBUZiAwIGciKSk7Y29uc3QgdT1hd2FpdCBXaWRnZXRBbm5vdGF0aW9uLl9nZXRGb250RGF0YShlLHQsdGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YSx0aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMpO2xldCBtLHtmb250U2l6ZTpwfT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhO2lmKHApbT10aGlzLl9kZWZhdWx0QXBwZWFyYW5jZTtlbHNle2NvbnN0IGU9KGYtMSkvYztsZXQgdCxuPS0xO2Zvcihjb25zdHtkaXNwbGF5VmFsdWU6ZX1vZiB0aGlzLmRhdGEub3B0aW9ucyl7Y29uc3QgYT10aGlzLl9nZXRUZXh0V2lkdGgoZSx1KTtpZihhPm4pe249YTt0PWV9fVttLHBdPXRoaXMuX2NvbXB1dGVGb250U2l6ZShlLGwtNCx0LHUsLTEpfWNvbnN0IGQ9cCpuLGc9KGQtcCkvMixiPU1hdGguZmxvb3IoZi9kKTtsZXQgdz0wO2lmKGgubGVuZ3RoPjApe2NvbnN0IGU9TWF0aC5taW4oLi4uaCksdD1NYXRoLm1heCguLi5oKTt3PU1hdGgubWF4KDAsdC1iKzEpO3c+ZSYmKHc9ZSl9Y29uc3Qgaj1NYXRoLm1pbih3K2IrMSxjKSxrPVsiL1R4IEJNQyBxIixgMSAxICR7bH0gJHtmfSByZSBXIG5gXTtpZihoLmxlbmd0aCl7ay5wdXNoKCIwLjYwMDAwNiAwLjc1Njg2NiAwLjg1NDkwNCByZyIpO2Zvcihjb25zdCBlIG9mIGgpdzw9ZSYmZTxqJiZrLnB1c2goYDEgJHtmLShlLXcrMSkqZH0gJHtsfSAke2R9IHJlIGZgKX1rLnB1c2goIkJUIixtLGAxIDAgMCAxIDAgJHtmfSBUbWApO2NvbnN0IHk9e3NoaWZ0OjB9O2ZvcihsZXQgZT13O2U8ajtlKyspe2NvbnN0e2Rpc3BsYXlWYWx1ZTp0fT10aGlzLmRhdGEub3B0aW9uc1tlXSxuPWU9PT13P2c6MDtrLnB1c2godGhpcy5fcmVuZGVyVGV4dCh0LHUscCxsLDAseSwyLC1kK24pKX1rLnB1c2goIkVUIFEgRU1DIik7cmV0dXJuIGsuam9pbigiXG4iKX19Y2xhc3MgU2lnbmF0dXJlV2lkZ2V0QW5ub3RhdGlvbiBleHRlbmRzIFdpZGdldEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy5kYXRhLmZpZWxkVmFsdWU9bnVsbDt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEubm9IVE1MPSF0aGlzLmRhdGEuaGFzT3duQ2FudmFzfWdldEZpZWxkT2JqZWN0KCl7cmV0dXJue2lkOnRoaXMuZGF0YS5pZCx2YWx1ZTpudWxsLHBhZ2U6dGhpcy5kYXRhLnBhZ2VJbmRleCx0eXBlOiJzaWduYXR1cmUifX19Y2xhc3MgVGV4dEFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuZGF0YS5ub1JvdGF0ZT0hMDt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEubm9IVE1MPSExO2NvbnN0e2RpY3Q6dH09ZTtpZih0aGlzLmRhdGEuaGFzQXBwZWFyYW5jZSl0aGlzLmRhdGEubmFtZT0iTm9JY29uIjtlbHNle3RoaXMuZGF0YS5yZWN0WzFdPXRoaXMuZGF0YS5yZWN0WzNdLTIyO3RoaXMuZGF0YS5yZWN0WzJdPXRoaXMuZGF0YS5yZWN0WzBdKzIyO3RoaXMuZGF0YS5uYW1lPXQuaGFzKCJOYW1lIik/dC5nZXQoIk5hbWUiKS5uYW1lOiJOb3RlIn1pZih0LmhhcygiU3RhdGUiKSl7dGhpcy5kYXRhLnN0YXRlPXQuZ2V0KCJTdGF0ZSIpfHxudWxsO3RoaXMuZGF0YS5zdGF0ZU1vZGVsPXQuZ2V0KCJTdGF0ZU1vZGVsIil8fG51bGx9ZWxzZXt0aGlzLmRhdGEuc3RhdGU9bnVsbDt0aGlzLmRhdGEuc3RhdGVNb2RlbD1udWxsfX19Y2xhc3MgTGlua0Fubm90YXRpb24gZXh0ZW5kcyBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCxhbm5vdGF0aW9uR2xvYmFsczpufT1lO3RoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3QgYT1nZXRRdWFkUG9pbnRzKHQsdGhpcy5yZWN0YW5nbGUpO2EmJih0aGlzLmRhdGEucXVhZFBvaW50cz1hKTt0aGlzLmRhdGEuYm9yZGVyQ29sb3J8fD10aGlzLmRhdGEuY29sb3I7Q2F0YWxvZy5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDp0LHJlc3VsdE9iajp0aGlzLmRhdGEsZG9jQmFzZVVybDpuLmJhc2VVcmwsZG9jQXR0YWNobWVudHM6bi5hdHRhY2htZW50c30pfWdldCBvdmVybGF5c1RleHRDb250ZW50KCl7cmV0dXJuITB9fWNsYXNzIFBvcHVwQW5ub3RhdGlvbiBleHRlbmRzIEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0fT1lO3RoaXMuZGF0YS5ub0hUTUw9ITE7MCE9PXRoaXMud2lkdGgmJjAhPT10aGlzLmhlaWdodHx8KHRoaXMuZGF0YS5yZWN0PW51bGwpO2xldCBuPXQuZ2V0KCJQYXJlbnQiKTtpZighbil7d2FybigiUG9wdXAgYW5ub3RhdGlvbiBoYXMgYSBtaXNzaW5nIG9yIGludmFsaWQgcGFyZW50IGFubm90YXRpb24uIik7cmV0dXJufXRoaXMuZGF0YS5wYXJlbnRSZWN0PWxvb2t1cE5vcm1hbFJlY3Qobi5nZXRBcnJheSgiUmVjdCIpLG51bGwpO3RoaXMuZGF0YS5jcmVhdGlvbkRhdGU9bi5nZXQoIkNyZWF0aW9uRGF0ZSIpfHwiIjtpc05hbWUobi5nZXQoIlJUIiksSCkmJihuPW4uZ2V0KCJJUlQiKSk7aWYobi5oYXMoIk0iKSl7dGhpcy5zZXRNb2RpZmljYXRpb25EYXRlKG4uZ2V0KCJNIikpO3RoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlPXRoaXMubW9kaWZpY2F0aW9uRGF0ZX1lbHNlIHRoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlPW51bGw7aWYobi5oYXMoIkMiKSl7dGhpcy5zZXRDb2xvcihuLmdldEFycmF5KCJDIikpO3RoaXMuZGF0YS5jb2xvcj10aGlzLmNvbG9yfWVsc2UgdGhpcy5kYXRhLmNvbG9yPW51bGw7aWYoIXRoaXMudmlld2FibGUpe2NvbnN0IGU9bi5nZXQoIkYiKTt0aGlzLl9pc1ZpZXdhYmxlKGUpJiZ0aGlzLnNldEZsYWdzKGUpfXRoaXMuc2V0VGl0bGUobi5nZXQoIlQiKSk7dGhpcy5kYXRhLnRpdGxlT2JqPXRoaXMuX3RpdGxlO3RoaXMuc2V0Q29udGVudHMobi5nZXQoIkNvbnRlbnRzIikpO3RoaXMuZGF0YS5jb250ZW50c09iaj10aGlzLl9jb250ZW50cztuLmhhcygiUkMiKSYmKHRoaXMuZGF0YS5yaWNoVGV4dD1YRkFGYWN0b3J5LmdldFJpY2hUZXh0QXNIdG1sKG4uZ2V0KCJSQyIpKSk7dGhpcy5kYXRhLm9wZW49ISF0LmdldCgiT3BlbiIpfXN0YXRpYyBjcmVhdGVOZXdEaWN0KGUsdCxuKXtjb25zdHtvbGRBbm5vdGF0aW9uOmEscmVjdDpzLHBhcmVudDpyfT1lLGk9YXx8bmV3IERpY3QodCk7aS5zZXRJZk5vdEV4aXN0cygiVHlwZSIsTmFtZS5nZXQoIkFubm90IikpO2kuc2V0SWZOb3RFeGlzdHMoIlN1YnR5cGUiLE5hbWUuZ2V0KCJQb3B1cCIpKTtpLnNldElmTm90RXhpc3RzKCJPcGVuIiwhMSk7aS5zZXRJZkFycmF5KCJSZWN0IixzKTtpLnNldCgiUGFyZW50IixyKTtyZXR1cm4gaX1zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShlLHQsbil7cmV0dXJuIG51bGx9fWNsYXNzIEZyZWVUZXh0QW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGU7dGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUw7dGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdHthbm5vdGF0aW9uR2xvYmFsczp0LGV2YWx1YXRvck9wdGlvbnM6bix4cmVmOmF9PWU7dGhpcy5zZXREZWZhdWx0QXBwZWFyYW5jZShlKTt0aGlzLl9oYXNBcHBlYXJhbmNlPSEhdGhpcy5hcHBlYXJhbmNlO2lmKHRoaXMuX2hhc0FwcGVhcmFuY2Upe2NvbnN0e2ZvbnRDb2xvcjplLGZvbnRTaXplOnN9PWZ1bmN0aW9uIHBhcnNlQXBwZWFyYW5jZVN0cmVhbShlLHQsbixhKXtyZXR1cm4gbmV3IEFwcGVhcmFuY2VTdHJlYW1FdmFsdWF0b3IoZSx0LG4sYSkucGFyc2UoKX0odGhpcy5hcHBlYXJhbmNlLG4sYSx0Lmdsb2JhbENvbG9yU3BhY2VDYWNoZSk7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250Q29sb3I9ZTt0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLmZvbnRTaXplPXN8fDEwfWVsc2V7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250U2l6ZXx8PTEwO2NvbnN0e2ZvbnRDb2xvcjp0LGZvbnRTaXplOm59PXRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE7aWYodGhpcy5fY29udGVudHMuc3RyKXt0aGlzLmRhdGEudGV4dENvbnRlbnQ9dGhpcy5fY29udGVudHMuc3RyLnNwbGl0KC9cclxuP3xcbi8pLm1hcChlPT5lLnRyaW1FbmQoKSk7Y29uc3R7Y29vcmRzOmUsYmJveDp0LG1hdHJpeDphfT1GYWtlVW5pY29kZUZvbnQuZ2V0Rmlyc3RQb3NpdGlvbkluZm8odGhpcy5yZWN0YW5nbGUsdGhpcy5yb3RhdGlvbixuKTt0aGlzLmRhdGEudGV4dFBvc2l0aW9uPXRoaXMuX3RyYW5zZm9ybVBvaW50KGUsdCxhKX1pZih0aGlzLl9pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCl7Y29uc3Qgcz1lLmRpY3QuZ2V0KCJDQSIpLHI9bmV3IEZha2VVbmljb2RlRm9udChhLCJzYW5zLXNlcmlmIik7dGhpcy5hcHBlYXJhbmNlPXIuY3JlYXRlQXBwZWFyYW5jZSh0aGlzLl9jb250ZW50cy5zdHIsdGhpcy5yZWN0YW5nbGUsdGhpcy5yb3RhdGlvbixuLHQscyk7dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuYXBwZWFyYW5jZSl9ZWxzZSB3YXJuKCJGcmVlVGV4dEFubm90YXRpb246IE9mZnNjcmVlbkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLCBhbm5vdGF0aW9uIG1heSBub3QgcmVuZGVyIGNvcnJlY3RseS4iKX19Z2V0IGhhc1RleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuX2hhc0FwcGVhcmFuY2V9c3RhdGljIGNyZWF0ZU5ld0RpY3QoZSx0LHthcFJlZjpuLGFwOmF9KXtjb25zdHtjb2xvcjpzLGRhdGU6cixmb250U2l6ZTppLG9sZEFubm90YXRpb246byxyZWN0Omwscm90YXRpb246Zix1c2VyOmMsdmFsdWU6aH09ZSx1PW98fG5ldyBEaWN0KHQpO3Uuc2V0SWZOb3RFeGlzdHMoIlR5cGUiLE5hbWUuZ2V0KCJBbm5vdCIpKTt1LnNldElmTm90RXhpc3RzKCJTdWJ0eXBlIixOYW1lLmdldCgiRnJlZVRleHQiKSk7dS5zZXQobz8iTSI6IkNyZWF0aW9uRGF0ZSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKHIpfWApO28mJnUuZGVsZXRlKCJSQyIpO3Uuc2V0SWZBcnJheSgiUmVjdCIsbCk7Y29uc3QgbT1gL0hlbHYgJHtpfSBUZiAke2dldFBkZkNvbG9yKHMsITApfWA7dS5zZXQoIkRBIixtKTt1LnNldElmRGVmaW5lZCgiQ29udGVudHMiLHN0cmluZ1RvQXNjaWlPclVURjE2QkUoaCkpO3Uuc2V0SWZOb3RFeGlzdHMoIkYiLDQpO3Uuc2V0SWZOb3RFeGlzdHMoIkJvcmRlciIsWzAsMCwwXSk7dS5zZXRJZk51bWJlcigiUm90YXRlIixmKTt1LnNldElmRGVmaW5lZCgiVCIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShjKSk7aWYobnx8YSl7Y29uc3QgZT1uZXcgRGljdCh0KTt1LnNldCgiQVAiLGUpO2Uuc2V0KCJOIixufHxhKX1yZXR1cm4gdX1zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShlLHQsYSl7Y29uc3R7YmFzZUZvbnRSZWY6cyxldmFsdWF0b3I6cix0YXNrOml9PWEse2NvbG9yOm8sZm9udFNpemU6bCxyZWN0OmYscm90YXRpb246Yyx2YWx1ZTpofT1lO2lmKCFvKXJldHVybiBudWxsO2NvbnN0IHU9bmV3IERpY3QodCksbT1uZXcgRGljdCh0KTtpZihzKW0uc2V0KCJIZWx2IixzKTtlbHNle2NvbnN0IGU9bmV3IERpY3QodCk7ZS5zZXRJZk5hbWUoIkJhc2VGb250IiwiSGVsdmV0aWNhIik7ZS5zZXRJZk5hbWUoIlR5cGUiLCJGb250Iik7ZS5zZXRJZk5hbWUoIlN1YnR5cGUiLCJUeXBlMSIpO2Uuc2V0SWZOYW1lKCJFbmNvZGluZyIsIldpbkFuc2lFbmNvZGluZyIpO20uc2V0KCJIZWx2IixlKX11LnNldCgiRm9udCIsbSk7Y29uc3QgcD1hd2FpdCBXaWRnZXRBbm5vdGF0aW9uLl9nZXRGb250RGF0YShyLGkse2ZvbnROYW1lOiJIZWx2Iixmb250U2l6ZTpsfSx1KSxbZCxnLGIsd109ZjtsZXQgaj1iLWQsaz13LWc7YyUxODAhPTAmJihbaixrXT1bayxqXSk7Y29uc3QgeT1oLnNwbGl0KCJcbiIpLHE9bC8xZTM7bGV0IHY9LTEvMDtjb25zdCBTPVtdO2ZvcihsZXQgZSBvZiB5KXtjb25zdCB0PXAuZW5jb2RlU3RyaW5nKGUpO2lmKHQubGVuZ3RoPjEpcmV0dXJuIG51bGw7ZT10LmpvaW4oIiIpO1MucHVzaChlKTtsZXQgbj0wO2NvbnN0IGE9cC5jaGFyc1RvR2x5cGhzKGUpO2Zvcihjb25zdCBlIG9mIGEpbis9ZS53aWR0aCpxO3Y9TWF0aC5tYXgodixuKX1sZXQgeD0xO3Y+aiYmKHg9ai92KTtsZXQgQz0xO2NvbnN0IEY9bipsLFQ9MSpsLEg9Rip5Lmxlbmd0aDtIPmsmJihDPWsvSCk7Y29uc3QgTz1sKk1hdGgubWluKHgsQyk7bGV0IFIsRCxNO3N3aXRjaChjKXtjYXNlIDA6TT1bMSwwLDAsMV07RD1bZlswXSxmWzFdLGosa107Uj1bZlswXSxmWzNdLVRdO2JyZWFrO2Nhc2UgOTA6TT1bMCwxLC0xLDBdO0Q9W2ZbMV0sLWZbMl0saixrXTtSPVtmWzFdLC1mWzBdLVRdO2JyZWFrO2Nhc2UgMTgwOk09Wy0xLDAsMCwtMV07RD1bLWZbMl0sLWZbM10saixrXTtSPVstZlsyXSwtZlsxXS1UXTticmVhaztjYXNlIDI3MDpNPVswLC0xLDEsMF07RD1bLWZbM10sZlswXSxqLGtdO1I9Wy1mWzNdLGZbMl0tVF19Y29uc3QgRT1bInEiLGAke00uam9pbigiICIpfSAwIDAgY21gLGAke0Quam9pbigiICIpfSByZSBXIG5gLCJCVCIsYCR7Z2V0UGRmQ29sb3IobywhMCl9YCxgMCBUYyAvSGVsdiAke251bWJlclRvU3RyaW5nKE8pfSBUZmBdO0UucHVzaChgJHtSLmpvaW4oIiAiKX0gVGQgKCR7ZXNjYXBlU3RyaW5nKFNbMF0pfSkgVGpgKTtjb25zdCBOPW51bWJlclRvU3RyaW5nKEYpO2ZvcihsZXQgZT0xLHQ9Uy5sZW5ndGg7ZTx0O2UrKyl7Y29uc3QgdD1TW2VdO0UucHVzaChgMCAtJHtOfSBUZCAoJHtlc2NhcGVTdHJpbmcodCl9KSBUamApfUUucHVzaCgiRVQiLCJRIik7Y29uc3Qgej1FLmpvaW4oIlxuIiksTD1uZXcgRGljdCh0KTtMLnNldCgiRm9ybVR5cGUiLDEpO0wuc2V0SWZOYW1lKCJTdWJ0eXBlIiwiRm9ybSIpO0wuc2V0SWZOYW1lKCJUeXBlIiwiWE9iamVjdCIpO0wuc2V0KCJCQm94IixmKTtMLnNldCgiUmVzb3VyY2VzIix1KTtMLnNldCgiTWF0cml4IixbMSwwLDAsMSwtZlswXSwtZlsxXV0pO2NvbnN0IFU9bmV3IFN0cmluZ1N0cmVhbSh6KTtVLmRpY3Q9TDtyZXR1cm4gVX19Y2xhc3MgTGluZUFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCx4cmVmOm59PWU7dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGU7dGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdCBhPWxvb2t1cFJlY3QodC5nZXRBcnJheSgiTCIpLFswLDAsMCwwXSk7dGhpcy5kYXRhLmxpbmVDb29yZGluYXRlcz1VdGlsLm5vcm1hbGl6ZVJlY3QoYSk7dGhpcy5zZXRMaW5lRW5kaW5ncyh0LmdldEFycmF5KCJMRSIpKTt0aGlzLmRhdGEubGluZUVuZGluZ3M9dGhpcy5saW5lRW5kaW5ncztpZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBlPWdldFBkZkNvbG9yQXJyYXkodGhpcy5jb2xvcixbMCwwLDBdKSxzPXQuZ2V0KCJDQSIpLHI9Z2V0UGRmQ29sb3JBcnJheShnZXRSZ2JDb2xvcih0LmdldEFycmF5KCJJQyIpLG51bGwpKSxpPXI/czpudWxsLG89dGhpcy5ib3JkZXJTdHlsZS53aWR0aHx8MSxsPTIqbyxmPVt0aGlzLmRhdGEubGluZUNvb3JkaW5hdGVzWzBdLWwsdGhpcy5kYXRhLmxpbmVDb29yZGluYXRlc1sxXS1sLHRoaXMuZGF0YS5saW5lQ29vcmRpbmF0ZXNbMl0rbCx0aGlzLmRhdGEubGluZUNvb3JkaW5hdGVzWzNdK2xdO1V0aWwuaW50ZXJzZWN0KHRoaXMucmVjdGFuZ2xlLGYpfHwodGhpcy5yZWN0YW5nbGU9Zik7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6bixleHRyYTpgJHtvfSB3YCxzdHJva2VDb2xvcjplLGZpbGxDb2xvcjpyLHN0cm9rZUFscGhhOnMsZmlsbEFscGhhOmkscG9pbnRzQ2FsbGJhY2s6KGUsdCk9PntlLnB1c2goYCR7YVswXX0gJHthWzFdfSBtYCxgJHthWzJdfSAke2FbM119IGxgLCJTIik7cmV0dXJuW3RbMF0tbyx0WzddLW8sdFsyXStvLHRbM10rb119fSl9fX1jbGFzcyBTcXVhcmVBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjpufT1lO3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlO3RoaXMuZGF0YS5ub0hUTUw9ITE7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgZT1nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IsWzAsMCwwXSksYT10LmdldCgiQ0EiKSxzPWdldFBkZkNvbG9yQXJyYXkoZ2V0UmdiQ29sb3IodC5nZXRBcnJheSgiSUMiKSxudWxsKSkscj1zP2E6bnVsbDtpZigwPT09dGhpcy5ib3JkZXJTdHlsZS53aWR0aCYmIXMpcmV0dXJuO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOm4sZXh0cmE6YCR7dGhpcy5ib3JkZXJTdHlsZS53aWR0aH0gd2Asc3Ryb2tlQ29sb3I6ZSxmaWxsQ29sb3I6cyxzdHJva2VBbHBoYTphLGZpbGxBbHBoYTpyLHBvaW50c0NhbGxiYWNrOihlLHQpPT57Y29uc3Qgbj10WzRdK3RoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixhPXRbNV0rdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLHI9dFs2XS10WzRdLXRoaXMuYm9yZGVyU3R5bGUud2lkdGgsaT10WzNdLXRbN10tdGhpcy5ib3JkZXJTdHlsZS53aWR0aDtlLnB1c2goYCR7bn0gJHthfSAke3J9ICR7aX0gcmVgKTtzP2UucHVzaCgiQiIpOmUucHVzaCgiUyIpO3JldHVyblt0WzBdLHRbN10sdFsyXSx0WzNdXX19KX19fWNsYXNzIENpcmNsZUFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCx4cmVmOm59PWU7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgZT1nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IsWzAsMCwwXSksYT10LmdldCgiQ0EiKSxzPWdldFBkZkNvbG9yQXJyYXkoZ2V0UmdiQ29sb3IodC5nZXRBcnJheSgiSUMiKSxudWxsKSkscj1zP2E6bnVsbDtpZigwPT09dGhpcy5ib3JkZXJTdHlsZS53aWR0aCYmIXMpcmV0dXJuO2NvbnN0IGk9NC8zKk1hdGgudGFuKE1hdGguUEkvOCk7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6bixleHRyYTpgJHt0aGlzLmJvcmRlclN0eWxlLndpZHRofSB3YCxzdHJva2VDb2xvcjplLGZpbGxDb2xvcjpzLHN0cm9rZUFscGhhOmEsZmlsbEFscGhhOnIscG9pbnRzQ2FsbGJhY2s6KGUsdCk9Pntjb25zdCBuPXRbMF0rdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLGE9dFsxXS10aGlzLmJvcmRlclN0eWxlLndpZHRoLzIscj10WzZdLXRoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixvPXRbN10rdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLGw9bisoci1uKS8yLGY9YSsoby1hKS8yLGM9KHItbikvMippLGg9KG8tYSkvMippO2UucHVzaChgJHtsfSAke299IG1gLGAke2wrY30gJHtvfSAke3J9ICR7ZitofSAke3J9ICR7Zn0gY2AsYCR7cn0gJHtmLWh9ICR7bCtjfSAke2F9ICR7bH0gJHthfSBjYCxgJHtsLWN9ICR7YX0gJHtufSAke2YtaH0gJHtufSAke2Z9IGNgLGAke259ICR7ZitofSAke2wtY30gJHtvfSAke2x9ICR7b30gY2AsImgiKTtzP2UucHVzaCgiQiIpOmUucHVzaCgiUyIpO3JldHVyblt0WzBdLHRbN10sdFsyXSx0WzNdXX19KX19fWNsYXNzIFBvbHlsaW5lQW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6bn09ZTt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEubm9IVE1MPSExO3RoaXMuZGF0YS52ZXJ0aWNlcz1udWxsO2lmKCEodGhpcyBpbnN0YW5jZW9mIFBvbHlnb25Bbm5vdGF0aW9uKSl7dGhpcy5zZXRMaW5lRW5kaW5ncyh0LmdldEFycmF5KCJMRSIpKTt0aGlzLmRhdGEubGluZUVuZGluZ3M9dGhpcy5saW5lRW5kaW5nc31jb25zdCBhPXQuZ2V0QXJyYXkoIlZlcnRpY2VzIik7aWYoIWlzTnVtYmVyQXJyYXkoYSxudWxsKSlyZXR1cm47Y29uc3Qgcz10aGlzLmRhdGEudmVydGljZXM9RmxvYXQzMkFycmF5LmZyb20oYSk7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgZT1nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IsWzAsMCwwXSksYT10LmdldCgiQ0EiKTtsZXQgcixpPWdldFJnYkNvbG9yKHQuZ2V0QXJyYXkoIklDIiksbnVsbCk7aSYmKGk9Z2V0UGRmQ29sb3JBcnJheShpKSk7cj1pP3RoaXMuY29sb3I/aS5ldmVyeSgodCxuKT0+dD09PWVbbl0pPyJmIjoiQiI6ImYiOiJTIjtjb25zdCBvPXRoaXMuYm9yZGVyU3R5bGUud2lkdGh8fDEsbD0yKm8sZj1bMS8wLDEvMCwtMS8wLC0xLzBdO2ZvcihsZXQgZT0wLHQ9cy5sZW5ndGg7ZTx0O2UrPTIpVXRpbC5yZWN0Qm91bmRpbmdCb3goc1tlXS1sLHNbZSsxXS1sLHNbZV0rbCxzW2UrMV0rbCxmKTtVdGlsLmludGVyc2VjdCh0aGlzLnJlY3RhbmdsZSxmKXx8KHRoaXMucmVjdGFuZ2xlPWYpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOm4sZXh0cmE6YCR7b30gd2Asc3Ryb2tlQ29sb3I6ZSxzdHJva2VBbHBoYTphLGZpbGxDb2xvcjppLGZpbGxBbHBoYTppP2E6bnVsbCxwb2ludHNDYWxsYmFjazooZSx0KT0+e2ZvcihsZXQgdD0wLG49cy5sZW5ndGg7dDxuO3QrPTIpZS5wdXNoKGAke3NbdF19ICR7c1t0KzFdfSAkezA9PT10PyJtIjoibCJ9YCk7ZS5wdXNoKHIpO3JldHVyblt0WzBdLHRbN10sdFsyXSx0WzNdXX19KX19fWNsYXNzIFBvbHlnb25Bbm5vdGF0aW9uIGV4dGVuZHMgUG9seWxpbmVBbm5vdGF0aW9ue31jbGFzcyBDYXJldEFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue31jbGFzcyBJbmtBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEubm9IVE1MPSExO2NvbnN0e2RpY3Q6dCx4cmVmOm59PWU7dGhpcy5kYXRhLmlua0xpc3RzPVtdO3RoaXMuZGF0YS5pc0VkaXRhYmxlPSF0aGlzLmRhdGEubm9IVE1MO3RoaXMuZGF0YS5ub0hUTUw9ITE7dGhpcy5kYXRhLm9wYWNpdHk9dC5nZXQoIkNBIil8fDE7Y29uc3QgYT10LmdldEFycmF5KCJJbmtMaXN0Iik7aWYoQXJyYXkuaXNBcnJheShhKSl7Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7KytlKXtpZighQXJyYXkuaXNBcnJheShhW2VdKSljb250aW51ZTtjb25zdCB0PW5ldyBGbG9hdDMyQXJyYXkoYVtlXS5sZW5ndGgpO3RoaXMuZGF0YS5pbmtMaXN0cy5wdXNoKHQpO2ZvcihsZXQgcz0wLHI9YVtlXS5sZW5ndGg7czxyO3MrPTIpe2NvbnN0IHI9bi5mZXRjaElmUmVmKGFbZV1bc10pLGk9bi5mZXRjaElmUmVmKGFbZV1bcysxXSk7aWYoIm51bWJlciI9PXR5cGVvZiByJiYibnVtYmVyIj09dHlwZW9mIGkpe3Rbc109cjt0W3MrMV09aX19fWlmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IGU9Z2V0UGRmQ29sb3JBcnJheSh0aGlzLmNvbG9yLFswLDAsMF0pLGE9dC5nZXQoIkNBIikscz10aGlzLmJvcmRlclN0eWxlLndpZHRofHwxLHI9MipzLGk9WzEvMCwxLzAsLTEvMCwtMS8wXTtmb3IoY29uc3QgZSBvZiB0aGlzLmRhdGEuaW5rTGlzdHMpZm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCs9MilVdGlsLnJlY3RCb3VuZGluZ0JveChlW3RdLXIsZVt0KzFdLXIsZVt0XStyLGVbdCsxXStyLGkpO1V0aWwuaW50ZXJzZWN0KHRoaXMucmVjdGFuZ2xlLGkpfHwodGhpcy5yZWN0YW5nbGU9aSk7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6bixleHRyYTpgJHtzfSB3YCxzdHJva2VDb2xvcjplLHN0cm9rZUFscGhhOmEscG9pbnRzQ2FsbGJhY2s6KGUsdCk9Pntmb3IoY29uc3QgdCBvZiB0aGlzLmRhdGEuaW5rTGlzdHMpe2ZvcihsZXQgbj0wLGE9dC5sZW5ndGg7bjxhO24rPTIpZS5wdXNoKGAke3Rbbl19ICR7dFtuKzFdfSAkezA9PT1uPyJtIjoibCJ9YCk7ZS5wdXNoKCJTIil9cmV0dXJuW3RbMF0sdFs3XSx0WzJdLHRbM11dfX0pfX19c3RhdGljIGNyZWF0ZU5ld0RpY3QoZSx0LHthcFJlZjpuLGFwOmF9KXtjb25zdHtvbGRBbm5vdGF0aW9uOnMsY29sb3I6cixkYXRlOmksb3BhY2l0eTpvLHBhdGhzOmwsb3V0bGluZXM6ZixyZWN0OmMscm90YXRpb246aCx0aGlja25lc3M6dSx1c2VyOm19PWUscD1zfHxuZXcgRGljdCh0KTtwLnNldElmTm90RXhpc3RzKCJUeXBlIixOYW1lLmdldCgiQW5ub3QiKSk7cC5zZXRJZk5vdEV4aXN0cygiU3VidHlwZSIsTmFtZS5nZXQoIkluayIpKTtwLnNldChzPyJNIjoiQ3JlYXRpb25EYXRlIixgRDoke2dldE1vZGlmaWNhdGlvbkRhdGUoaSl9YCk7cC5zZXRJZkFycmF5KCJSZWN0IixjKTtwLnNldElmQXJyYXkoIklua0xpc3QiLGY/LnBvaW50c3x8bD8ucG9pbnRzKTtwLnNldElmTm90RXhpc3RzKCJGIiw0KTtwLnNldElmTnVtYmVyKCJSb3RhdGUiLGgpO3Auc2V0SWZEZWZpbmVkKCJUIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKG0pKTtmJiZwLnNldElmTmFtZSgiSVQiLCJJbmtIaWdobGlnaHQiKTtpZih1PjApe2NvbnN0IGU9bmV3IERpY3QodCk7cC5zZXQoIkJTIixlKTtlLnNldCgiVyIsdSl9cC5zZXRJZkFycmF5KCJDIixnZXRQZGZDb2xvckFycmF5KHIpKTtwLnNldElmTnVtYmVyKCJDQSIsbyk7aWYoYXx8bil7Y29uc3QgZT1uZXcgRGljdCh0KTtwLnNldCgiQVAiLGUpO2Uuc2V0KCJOIixufHxhKX1yZXR1cm4gcH1zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShlLHQsbil7aWYoZS5vdXRsaW5lcylyZXR1cm4gdGhpcy5jcmVhdGVOZXdBcHBlYXJhbmNlU3RyZWFtRm9ySGlnaGxpZ2h0KGUsdCxuKTtjb25zdHtjb2xvcjphLHJlY3Q6cyxwYXRoczpyLHRoaWNrbmVzczppLG9wYWNpdHk6b309ZTtpZighYSlyZXR1cm4gbnVsbDtjb25zdCBsPVtgJHtpfSB3IDEgSiAxIGpgLGAke2dldFBkZkNvbG9yKGEsITEpfWBdOzEhPT1vJiZsLnB1c2goIi9SMCBncyIpO2Zvcihjb25zdCBlIG9mIHIubGluZXMpe2wucHVzaChgJHtudW1iZXJUb1N0cmluZyhlWzRdKX0gJHtudW1iZXJUb1N0cmluZyhlWzVdKX0gbWApO2ZvcihsZXQgdD02LG49ZS5sZW5ndGg7dDxuO3QrPTYpaWYoaXNOYU4oZVt0XSkpbC5wdXNoKGAke251bWJlclRvU3RyaW5nKGVbdCs0XSl9ICR7bnVtYmVyVG9TdHJpbmcoZVt0KzVdKX0gbGApO2Vsc2V7Y29uc3RbbixhLHMscixpLG9dPWUuc2xpY2UodCx0KzYpO2wucHVzaChbbixhLHMscixpLG9dLm1hcChudW1iZXJUb1N0cmluZykuam9pbigiICIpKyIgYyIpfTY9PT1lLmxlbmd0aCYmbC5wdXNoKGAke251bWJlclRvU3RyaW5nKGVbNF0pfSAke251bWJlclRvU3RyaW5nKGVbNV0pfSBsYCl9bC5wdXNoKCJTIik7Y29uc3QgZj1sLmpvaW4oIlxuIiksYz1uZXcgRGljdCh0KTtjLnNldCgiRm9ybVR5cGUiLDEpO2Muc2V0SWZOYW1lKCJTdWJ0eXBlIiwiRm9ybSIpO2Muc2V0SWZOYW1lKCJUeXBlIiwiWE9iamVjdCIpO2Muc2V0KCJCQm94IixzKTtjLnNldCgiTGVuZ3RoIixmLmxlbmd0aCk7aWYoMSE9PW8pe2NvbnN0IGU9bmV3IERpY3QodCksbj1uZXcgRGljdCh0KSxhPW5ldyBEaWN0KHQpO2Euc2V0KCJDQSIsbyk7YS5zZXRJZk5hbWUoIlR5cGUiLCJFeHRHU3RhdGUiKTtuLnNldCgiUjAiLGEpO2Uuc2V0KCJFeHRHU3RhdGUiLG4pO2Muc2V0KCJSZXNvdXJjZXMiLGUpfWNvbnN0IGg9bmV3IFN0cmluZ1N0cmVhbShmKTtoLmRpY3Q9YztyZXR1cm4gaH1zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbUZvckhpZ2hsaWdodChlLHQsbil7Y29uc3R7Y29sb3I6YSxyZWN0OnMsb3V0bGluZXM6e291dGxpbmU6cn0sb3BhY2l0eTppfT1lO2lmKCFhKXJldHVybiBudWxsO2NvbnN0IG89W2Ake2dldFBkZkNvbG9yKGEsITApfWAsIi9SMCBncyJdO28ucHVzaChgJHtudW1iZXJUb1N0cmluZyhyWzRdKX0gJHtudW1iZXJUb1N0cmluZyhyWzVdKX0gbWApO2ZvcihsZXQgZT02LHQ9ci5sZW5ndGg7ZTx0O2UrPTYpaWYoaXNOYU4ocltlXSkpby5wdXNoKGAke251bWJlclRvU3RyaW5nKHJbZSs0XSl9ICR7bnVtYmVyVG9TdHJpbmcocltlKzVdKX0gbGApO2Vsc2V7Y29uc3RbdCxuLGEscyxpLGxdPXIuc2xpY2UoZSxlKzYpO28ucHVzaChbdCxuLGEscyxpLGxdLm1hcChudW1iZXJUb1N0cmluZykuam9pbigiICIpKyIgYyIpfW8ucHVzaCgiaCBmIik7Y29uc3QgbD1vLmpvaW4oIlxuIiksZj1uZXcgRGljdCh0KTtmLnNldCgiRm9ybVR5cGUiLDEpO2Yuc2V0SWZOYW1lKCJTdWJ0eXBlIiwiRm9ybSIpO2Yuc2V0SWZOYW1lKCJUeXBlIiwiWE9iamVjdCIpO2Yuc2V0KCJCQm94IixzKTtmLnNldCgiTGVuZ3RoIixsLmxlbmd0aCk7Y29uc3QgYz1uZXcgRGljdCh0KSxoPW5ldyBEaWN0KHQpO2Muc2V0KCJFeHRHU3RhdGUiLGgpO2Yuc2V0KCJSZXNvdXJjZXMiLGMpO2NvbnN0IHU9bmV3IERpY3QodCk7aC5zZXQoIlIwIix1KTt1LnNldElmTmFtZSgiQk0iLCJNdWx0aXBseSIpO2lmKDEhPT1pKXt1LnNldCgiY2EiLGkpO3Uuc2V0SWZOYW1lKCJUeXBlIiwiRXh0R1N0YXRlIil9Y29uc3QgbT1uZXcgU3RyaW5nU3RyZWFtKGwpO20uZGljdD1mO3JldHVybiBtfX1jbGFzcyBIaWdobGlnaHRBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjpufT1lO3RoaXMuZGF0YS5pc0VkaXRhYmxlPSF0aGlzLmRhdGEubm9IVE1MO3RoaXMuZGF0YS5ub0hUTUw9ITE7dGhpcy5kYXRhLm9wYWNpdHk9dC5nZXQoIkNBIil8fDE7aWYodGhpcy5kYXRhLnF1YWRQb2ludHM9Z2V0UXVhZFBvaW50cyh0LG51bGwpKXtjb25zdCBlPXRoaXMuYXBwZWFyYW5jZT8uZGljdC5nZXQoIlJlc291cmNlcyIpO2lmKCF0aGlzLmFwcGVhcmFuY2V8fCFlPy5oYXMoIkV4dEdTdGF0ZSIpKXt0aGlzLmFwcGVhcmFuY2UmJndhcm4oIkhpZ2hsaWdodEFubm90YXRpb24gLSBpZ25vcmluZyBidWlsdC1pbiBhcHBlYXJhbmNlIHN0cmVhbS4iKTtjb25zdCBlPWdldFBkZkNvbG9yQXJyYXkodGhpcy5jb2xvcixbMSwxLDBdKSxhPXQuZ2V0KCJDQSIpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOm4sZmlsbENvbG9yOmUsYmxlbmRNb2RlOiJNdWx0aXBseSIsZmlsbEFscGhhOmEscG9pbnRzQ2FsbGJhY2s6KGUsdCk9PntlLnB1c2goYCR7dFswXX0gJHt0WzFdfSBtYCxgJHt0WzJdfSAke3RbM119IGxgLGAke3RbNl19ICR7dFs3XX0gbGAsYCR7dFs0XX0gJHt0WzVdfSBsYCwiZiIpO3JldHVyblt0WzBdLHRbN10sdFsyXSx0WzNdXX19KX19ZWxzZSB0aGlzLmRhdGEucG9wdXBSZWY9bnVsbH1nZXQgb3ZlcmxheXNUZXh0Q29udGVudCgpe3JldHVybiEwfXN0YXRpYyBjcmVhdGVOZXdEaWN0KGUsdCx7YXBSZWY6bixhcDphfSl7Y29uc3R7Y29sb3I6cyxkYXRlOnIsb2xkQW5ub3RhdGlvbjppLG9wYWNpdHk6byxyZWN0Omwscm90YXRpb246Zix1c2VyOmMscXVhZFBvaW50czpofT1lLHU9aXx8bmV3IERpY3QodCk7dS5zZXRJZk5vdEV4aXN0cygiVHlwZSIsTmFtZS5nZXQoIkFubm90IikpO3Uuc2V0SWZOb3RFeGlzdHMoIlN1YnR5cGUiLE5hbWUuZ2V0KCJIaWdobGlnaHQiKSk7dS5zZXQoaT8iTSI6IkNyZWF0aW9uRGF0ZSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKHIpfWApO3Uuc2V0SWZBcnJheSgiUmVjdCIsbCk7dS5zZXRJZk5vdEV4aXN0cygiRiIsNCk7dS5zZXRJZk5vdEV4aXN0cygiQm9yZGVyIixbMCwwLDBdKTt1LnNldElmTnVtYmVyKCJSb3RhdGUiLGYpO3Uuc2V0SWZBcnJheSgiUXVhZFBvaW50cyIsaCk7dS5zZXRJZkFycmF5KCJDIixnZXRQZGZDb2xvckFycmF5KHMpKTt1LnNldElmTnVtYmVyKCJDQSIsbyk7dS5zZXRJZkRlZmluZWQoIlQiLHN0cmluZ1RvQXNjaWlPclVURjE2QkUoYykpO2lmKG58fGEpe2NvbnN0IGU9bmV3IERpY3QodCk7dS5zZXQoIkFQIixlKTtlLnNldCgiTiIsbnx8YSl9cmV0dXJuIHV9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0oZSx0LG4pe2NvbnN0e2NvbG9yOmEscmVjdDpzLG91dGxpbmVzOnIsb3BhY2l0eTppfT1lO2lmKCFhKXJldHVybiBudWxsO2NvbnN0IG89W2Ake2dldFBkZkNvbG9yKGEsITApfWAsIi9SMCBncyJdLGw9W107Zm9yKGNvbnN0IGUgb2Ygcil7bC5sZW5ndGg9MDtsLnB1c2goYCR7bnVtYmVyVG9TdHJpbmcoZVswXSl9ICR7bnVtYmVyVG9TdHJpbmcoZVsxXSl9IG1gKTtmb3IobGV0IHQ9MixuPWUubGVuZ3RoO3Q8bjt0Kz0yKWwucHVzaChgJHtudW1iZXJUb1N0cmluZyhlW3RdKX0gJHtudW1iZXJUb1N0cmluZyhlW3QrMV0pfSBsYCk7bC5wdXNoKCJoIik7by5wdXNoKGwuam9pbigiXG4iKSl9by5wdXNoKCJmKiIpO2NvbnN0IGY9by5qb2luKCJcbiIpLGM9bmV3IERpY3QodCk7Yy5zZXQoIkZvcm1UeXBlIiwxKTtjLnNldElmTmFtZSgiU3VidHlwZSIsIkZvcm0iKTtjLnNldElmTmFtZSgiVHlwZSIsIlhPYmplY3QiKTtjLnNldCgiQkJveCIscyk7Yy5zZXQoIkxlbmd0aCIsZi5sZW5ndGgpO2NvbnN0IGg9bmV3IERpY3QodCksdT1uZXcgRGljdCh0KTtoLnNldCgiRXh0R1N0YXRlIix1KTtjLnNldCgiUmVzb3VyY2VzIixoKTtjb25zdCBtPW5ldyBEaWN0KHQpO3Uuc2V0KCJSMCIsbSk7bS5zZXRJZk5hbWUoIkJNIiwiTXVsdGlwbHkiKTtpZigxIT09aSl7bS5zZXQoImNhIixpKTttLnNldElmTmFtZSgiVHlwZSIsIkV4dEdTdGF0ZSIpfWNvbnN0IHA9bmV3IFN0cmluZ1N0cmVhbShmKTtwLmRpY3Q9YztyZXR1cm4gcH19Y2xhc3MgVW5kZXJsaW5lQW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6bn09ZTtpZih0aGlzLmRhdGEucXVhZFBvaW50cz1nZXRRdWFkUG9pbnRzKHQsbnVsbCkpe2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IGU9Z2V0UGRmQ29sb3JBcnJheSh0aGlzLmNvbG9yLFswLDAsMF0pLGE9dC5nZXQoIkNBIik7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6bixleHRyYToiW10gMCBkIDAuNTcxIHciLHN0cm9rZUNvbG9yOmUsc3Ryb2tlQWxwaGE6YSxwb2ludHNDYWxsYmFjazooZSx0KT0+e2UucHVzaChgJHt0WzRdfSAke3RbNV0rMS4zfSBtYCxgJHt0WzZdfSAke3RbN10rMS4zfSBsYCwiUyIpO3JldHVyblt0WzBdLHRbN10sdFsyXSx0WzNdXX19KX19ZWxzZSB0aGlzLmRhdGEucG9wdXBSZWY9bnVsbH1nZXQgb3ZlcmxheXNUZXh0Q29udGVudCgpe3JldHVybiEwfX1jbGFzcyBTcXVpZ2dseUFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCx4cmVmOm59PWU7aWYodGhpcy5kYXRhLnF1YWRQb2ludHM9Z2V0UXVhZFBvaW50cyh0LG51bGwpKXtpZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBlPWdldFBkZkNvbG9yQXJyYXkodGhpcy5jb2xvcixbMCwwLDBdKSxhPXQuZ2V0KCJDQSIpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOm4sZXh0cmE6IltdIDAgZCAxIHciLHN0cm9rZUNvbG9yOmUsc3Ryb2tlQWxwaGE6YSxwb2ludHNDYWxsYmFjazooZSx0KT0+e2NvbnN0IG49KHRbMV0tdFs1XSkvNjtsZXQgYT1uLHM9dFs0XTtjb25zdCByPXRbNV0saT10WzZdO2UucHVzaChgJHtzfSAke3IrYX0gbWApO2Rve3MrPTI7YT0wPT09YT9uOjA7ZS5wdXNoKGAke3N9ICR7cithfSBsYCl9d2hpbGUoczxpKTtlLnB1c2goIlMiKTtyZXR1cm5bdFs0XSxyLTIqbixpLHIrMipuXX19KX19ZWxzZSB0aGlzLmRhdGEucG9wdXBSZWY9bnVsbH1nZXQgb3ZlcmxheXNUZXh0Q29udGVudCgpe3JldHVybiEwfX1jbGFzcyBTdHJpa2VPdXRBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjpufT1lO2lmKHRoaXMuZGF0YS5xdWFkUG9pbnRzPWdldFF1YWRQb2ludHModCxudWxsKSl7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgZT1nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IsWzAsMCwwXSksYT10LmdldCgiQ0EiKTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjpuLGV4dHJhOiJbXSAwIGQgMSB3IixzdHJva2VDb2xvcjplLHN0cm9rZUFscGhhOmEscG9pbnRzQ2FsbGJhY2s6KGUsdCk9PntlLnB1c2goKHRbMF0rdFs0XSkvMisiICIrKHRbMV0rdFs1XSkvMisiIG0iLCh0WzJdK3RbNl0pLzIrIiAiKyh0WzNdK3RbN10pLzIrIiBsIiwiUyIpO3JldHVyblt0WzBdLHRbN10sdFsyXSx0WzNdXX19KX19ZWxzZSB0aGlzLmRhdGEucG9wdXBSZWY9bnVsbH1nZXQgb3ZlcmxheXNUZXh0Q29udGVudCgpe3JldHVybiEwfX1jbGFzcyBTdGFtcEFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ueyNSZT1udWxsO2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlO3RoaXMuZGF0YS5pc0VkaXRhYmxlPSF0aGlzLmRhdGEubm9IVE1MO3RoaXMuZGF0YS5ub0hUTUw9ITF9bXVzdEJlVmlld2VkV2hlbkVkaXRpbmcoZSx0PW51bGwpe2lmKGUpe2lmKCF0aGlzLmRhdGEuaXNFZGl0YWJsZSlyZXR1cm4hMDt0aGlzLiNSZT8/PXRoaXMuZGF0YS5oYXNPd25DYW52YXM7dGhpcy5kYXRhLmhhc093bkNhbnZhcz0hMDtyZXR1cm4hMH1pZihudWxsIT09dGhpcy4jUmUpe3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy4jUmU7dGhpcy4jUmU9bnVsbH1yZXR1cm4hdD8uaGFzKHRoaXMuZGF0YS5pZCl9c3RhdGljIGFzeW5jIGNyZWF0ZUltYWdlKGUsdCl7Y29uc3R7d2lkdGg6bixoZWlnaHQ6YX09ZSxzPW5ldyBPZmZzY3JlZW5DYW52YXMobixhKSxyPXMuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMH0pO3IuZHJhd0ltYWdlKGUsMCwwKTtjb25zdCBpPXIuZ2V0SW1hZ2VEYXRhKDAsMCxuLGEpLmRhdGEsbz1uZXcgVWludDMyQXJyYXkoaS5idWZmZXIpLGw9by5zb21lKEZlYXR1cmVUZXN0LmlzTGl0dGxlRW5kaWFuP2U9PmU+Pj4yNCE9MjU1OmU9PiEhKDI1NSZ+ZSkpO2lmKGwpe3IuZmlsbFN0eWxlPSJ3aGl0ZSI7ci5maWxsUmVjdCgwLDAsbixhKTtyLmRyYXdJbWFnZShlLDAsMCl9Y29uc3QgZj1zLmNvbnZlcnRUb0Jsb2Ioe3R5cGU6ImltYWdlL2pwZWciLHF1YWxpdHk6MX0pLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKSxjPU5hbWUuZ2V0KCJYT2JqZWN0IiksaD1OYW1lLmdldCgiSW1hZ2UiKSx1PW5ldyBEaWN0KHQpO3Uuc2V0KCJUeXBlIixjKTt1LnNldCgiU3VidHlwZSIsaCk7dS5zZXQoIkJpdHNQZXJDb21wb25lbnQiLDgpO3Uuc2V0SWZOYW1lKCJDb2xvclNwYWNlIiwiRGV2aWNlUkdCIik7dS5zZXRJZk5hbWUoIkZpbHRlciIsIkRDVERlY29kZSIpO3Uuc2V0KCJCQm94IixbMCwwLG4sYV0pO3Uuc2V0KCJXaWR0aCIsbik7dS5zZXQoIkhlaWdodCIsYSk7bGV0IG09bnVsbDtpZihsKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KG8ubGVuZ3RoKTtpZihGZWF0dXJlVGVzdC5pc0xpdHRsZUVuZGlhbilmb3IobGV0IHQ9MCxuPW8ubGVuZ3RoO3Q8bjt0KyspZVt0XT1vW3RdPj4+MjQ7ZWxzZSBmb3IobGV0IHQ9MCxuPW8ubGVuZ3RoO3Q8bjt0KyspZVt0XT0yNTUmb1t0XTtjb25zdCBzPW5ldyBEaWN0KHQpO3Muc2V0KCJUeXBlIixjKTtzLnNldCgiU3VidHlwZSIsaCk7cy5zZXQoIkJpdHNQZXJDb21wb25lbnQiLDgpO3Muc2V0SWZOYW1lKCJDb2xvclNwYWNlIiwiRGV2aWNlR3JheSIpO3Muc2V0KCJXaWR0aCIsbik7cy5zZXQoIkhlaWdodCIsYSk7bT1uZXcgU3RyZWFtKGUsMCwwLHMpfXJldHVybntpbWFnZVN0cmVhbTpuZXcgU3RyZWFtKGF3YWl0IGYsMCwwLHUpLHNtYXNrU3RyZWFtOm0sd2lkdGg6bixoZWlnaHQ6YX19c3RhdGljIGNyZWF0ZU5ld0RpY3QoZSx0LHthcFJlZjpuLGFwOmF9KXtjb25zdHtkYXRlOnMsb2xkQW5ub3RhdGlvbjpyLHJlY3Q6aSxyb3RhdGlvbjpvLHVzZXI6bH09ZSxmPXJ8fG5ldyBEaWN0KHQpO2Yuc2V0SWZOb3RFeGlzdHMoIlR5cGUiLE5hbWUuZ2V0KCJBbm5vdCIpKTtmLnNldElmTm90RXhpc3RzKCJTdWJ0eXBlIixOYW1lLmdldCgiU3RhbXAiKSk7Zi5zZXQocj8iTSI6IkNyZWF0aW9uRGF0ZSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKHMpfWApO2Yuc2V0SWZBcnJheSgiUmVjdCIsaSk7Zi5zZXRJZk5vdEV4aXN0cygiRiIsNCk7Zi5zZXRJZk5vdEV4aXN0cygiQm9yZGVyIixbMCwwLDBdKTtmLnNldElmTnVtYmVyKCJSb3RhdGUiLG8pO2Yuc2V0SWZEZWZpbmVkKCJUIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKGwpKTtpZihufHxhKXtjb25zdCBlPW5ldyBEaWN0KHQpO2Yuc2V0KCJBUCIsZSk7ZS5zZXQoIk4iLG58fGEpfXJldHVybiBmfXN0YXRpYyBhc3luYyNEZShlLHQpe2NvbnN0e2FyZUNvbnRvdXJzOm4sY29sb3I6YSxyZWN0OnMsbGluZXM6cix0aGlja25lc3M6aX09ZTtpZighYSlyZXR1cm4gbnVsbDtjb25zdCBvPVtgJHtpfSB3IDEgSiAxIGpgLGAke2dldFBkZkNvbG9yKGEsbil9YF07Zm9yKGNvbnN0IGUgb2Ygcil7by5wdXNoKGAke251bWJlclRvU3RyaW5nKGVbNF0pfSAke251bWJlclRvU3RyaW5nKGVbNV0pfSBtYCk7Zm9yKGxldCB0PTYsbj1lLmxlbmd0aDt0PG47dCs9NilpZihpc05hTihlW3RdKSlvLnB1c2goYCR7bnVtYmVyVG9TdHJpbmcoZVt0KzRdKX0gJHtudW1iZXJUb1N0cmluZyhlW3QrNV0pfSBsYCk7ZWxzZXtjb25zdFtuLGEscyxyLGksbF09ZS5zbGljZSh0LHQrNik7by5wdXNoKFtuLGEscyxyLGksbF0ubWFwKG51bWJlclRvU3RyaW5nKS5qb2luKCIgIikrIiBjIil9Nj09PWUubGVuZ3RoJiZvLnB1c2goYCR7bnVtYmVyVG9TdHJpbmcoZVs0XSl9ICR7bnVtYmVyVG9TdHJpbmcoZVs1XSl9IGxgKX1vLnB1c2gobj8iRiI6IlMiKTtjb25zdCBsPW8uam9pbigiXG4iKSxmPW5ldyBEaWN0KHQpO2Yuc2V0KCJGb3JtVHlwZSIsMSk7Zi5zZXRJZk5hbWUoIlN1YnR5cGUiLCJGb3JtIik7Zi5zZXRJZk5hbWUoIlR5cGUiLCJYT2JqZWN0Iik7Zi5zZXQoIkJCb3giLHMpO2Yuc2V0KCJMZW5ndGgiLGwubGVuZ3RoKTtjb25zdCBjPW5ldyBTdHJpbmdTdHJlYW0obCk7Yy5kaWN0PWY7cmV0dXJuIGN9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0oZSx0LG4pe2lmKGUub2xkQW5ub3RhdGlvbilyZXR1cm4gbnVsbDtpZihlLmlzU2lnbmF0dXJlKXJldHVybiB0aGlzLiNEZShlLHQpO2NvbnN0e3JvdGF0aW9uOmF9PWUse2ltYWdlUmVmOnMsd2lkdGg6cixoZWlnaHQ6aX09bi5pbWFnZSxvPW5ldyBEaWN0KHQpLGw9bmV3IERpY3QodCk7by5zZXQoIlhPYmplY3QiLGwpO2wuc2V0KCJJbTAiLHMpO2NvbnN0IGY9YHEgJHtyfSAwIDAgJHtpfSAwIDAgY20gL0ltMCBEbyBRYCxjPW5ldyBEaWN0KHQpO2Muc2V0KCJGb3JtVHlwZSIsMSk7Yy5zZXRJZk5hbWUoIlN1YnR5cGUiLCJGb3JtIik7Yy5zZXRJZk5hbWUoIlR5cGUiLCJYT2JqZWN0Iik7Yy5zZXQoIkJCb3giLFswLDAscixpXSk7Yy5zZXQoIlJlc291cmNlcyIsbyk7aWYoYSl7Y29uc3QgZT1nZXRSb3RhdGlvbk1hdHJpeChhLHIsaSk7Yy5zZXQoIk1hdHJpeCIsZSl9Y29uc3QgaD1uZXcgU3RyaW5nU3RyZWFtKGYpO2guZGljdD1jO3JldHVybiBofX1jbGFzcyBGaWxlQXR0YWNobWVudEFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dH09ZSxuPW5ldyBGaWxlU3BlYyh0LmdldCgiRlMiKSk7dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGU7dGhpcy5kYXRhLm5vSFRNTD0hMTt0aGlzLmRhdGEuZmlsZT1uLnNlcmlhbGl6YWJsZTtjb25zdCBhPXQuZ2V0KCJOYW1lIik7dGhpcy5kYXRhLm5hbWU9YSBpbnN0YW5jZW9mIE5hbWU/c3RyaW5nVG9QREZTdHJpbmcoYS5uYW1lKToiUHVzaFBpbiI7Y29uc3Qgcz10LmdldCgiY2EiKTt0aGlzLmRhdGEuZmlsbEFscGhhPSJudW1iZXIiPT10eXBlb2YgcyYmcz49MCYmczw9MT9zOm51bGx9fWNvbnN0IHNsPXtnZXQgcigpe3JldHVybiBzaGFkb3codGhpcywiciIsbmV3IFVpbnQ4QXJyYXkoWzcsMTIsMTcsMjIsNywxMiwxNywyMiw3LDEyLDE3LDIyLDcsMTIsMTcsMjIsNSw5LDE0LDIwLDUsOSwxNCwyMCw1LDksMTQsMjAsNSw5LDE0LDIwLDQsMTEsMTYsMjMsNCwxMSwxNiwyMyw0LDExLDE2LDIzLDQsMTEsMTYsMjMsNiwxMCwxNSwyMSw2LDEwLDE1LDIxLDYsMTAsMTUsMjEsNiwxMCwxNSwyMV0pKX0sZ2V0IGsoKXtyZXR1cm4gc2hhZG93KHRoaXMsImsiLG5ldyBJbnQzMkFycmF5KFstNjgwODc2OTM2LC0zODk1NjQ1ODYsNjA2MTA1ODE5LC0xMDQ0NTI1MzMwLC0xNzY0MTg4OTcsMTIwMDA4MDQyNiwtMTQ3MzIzMTM0MSwtNDU3MDU5ODMsMTc3MDAzNTQxNiwtMTk1ODQxNDQxNywtNDIwNjMsLTE5OTA0MDQxNjIsMTgwNDYwMzY4MiwtNDAzNDExMDEsLTE1MDIwMDIyOTAsMTIzNjUzNTMyOSwtMTY1Nzk2NTEwLC0xMDY5NTAxNjMyLDY0MzcxNzcxMywtMzczODk3MzAyLC03MDE1NTg2OTEsMzgwMTYwODMsLTY2MDQ3ODMzNSwtNDA1NTM3ODQ4LDU2ODQ0NjQzOCwtMTAxOTgwMzY5MCwtMTg3MzYzOTYxLDExNjM1MzE1MDEsLTE0NDQ2ODE0NjcsLTUxNDAzNzg0LDE3MzUzMjg0NzMsLTE5MjY2MDc3MzQsLTM3ODU1OCwtMjAyMjU3NDQ2MywxODM5MDMwNTYyLC0zNTMwOTU1NiwtMTUzMDk5MjA2MCwxMjcyODkzMzUzLC0xNTU0OTc2MzIsLTEwOTQ3MzA2NDAsNjgxMjc5MTc0LC0zNTg1MzcyMjIsLTcyMjUyMTk3OSw3NjAyOTE4OSwtNjQwMzY0NDg3LC00MjE4MTU4MzUsNTMwNzQyNTIwLC05OTUzMzg2NTEsLTE5ODYzMDg0NCwxMTI2ODkxNDE1LC0xNDE2MzU0OTA1LC01NzQzNDA1NSwxNzAwNDg1NTcxLC0xODk0OTg2NjA2LC0xMDUxNTIzLC0yMDU0OTIyNzk5LDE4NzMzMTMzNTksLTMwNjExNzQ0LC0xNTYwMTk4MzgwLDEzMDkxNTE2NDksLTE0NTUyMzA3MCwtMTEyMDIxMDM3OSw3MTg3ODcyNTksLTM0MzQ4NTU1MV0pKX19O2Z1bmN0aW9uIGNhbGN1bGF0ZU1ENShlLHQsbil7bGV0IGE9MTczMjU4NDE5MyxzPS0yNzE3MzM4Nzkscj0tMTczMjU4NDE5NCxpPTI3MTczMzg3ODtjb25zdCBvPW4rNzImLTY0LGw9bmV3IFVpbnQ4QXJyYXkobyk7bGV0IGYsYztmb3IoZj0wO2Y8bjsrK2YpbFtmXT1lW3QrK107bFtmKytdPTEyODtjb25zdCBoPW8tODtmPGgmJihmPWgpO2xbZisrXT1uPDwzJjI1NTtsW2YrK109bj4+NSYyNTU7bFtmKytdPW4+PjEzJjI1NTtsW2YrK109bj4+MjEmMjU1O2xbZisrXT1uPj4+MjkmMjU1O2YrPTM7Y29uc3QgdT1uZXcgSW50MzJBcnJheSgxNikse2s6bSxyOnB9PXNsO2ZvcihmPTA7ZjxvOyl7Zm9yKGM9MDtjPDE2OysrYyxmKz00KXVbY109bFtmXXxsW2YrMV08PDh8bFtmKzJdPDwxNnxsW2YrM108PDI0O2xldCBlLHQsbj1hLG89cyxoPXIsZD1pO2ZvcihjPTA7Yzw2NDsrK2Mpe2lmKGM8MTYpe2U9byZofH5vJmQ7dD1jfWVsc2UgaWYoYzwzMil7ZT1kJm98fmQmaDt0PTUqYysxJjE1fWVsc2UgaWYoYzw0OCl7ZT1vXmheZDt0PTMqYys1JjE1fWVsc2V7ZT1oXihvfH5kKTt0PTcqYyYxNX1jb25zdCBhPWQscz1uK2UrbVtjXSt1W3RdfDAscj1wW2NdO2Q9aDtoPW87bz1vKyhzPDxyfHM+Pj4zMi1yKXwwO249YX1hPWErbnwwO3M9cytvfDA7cj1yK2h8MDtpPWkrZHwwfXJldHVybiBuZXcgVWludDhBcnJheShbMjU1JmEsYT4+OCYyNTUsYT4+MTYmMjU1LGE+Pj4yNCYyNTUsMjU1JnMscz4+OCYyNTUscz4+MTYmMjU1LHM+Pj4yNCYyNTUsMjU1JnIscj4+OCYyNTUscj4+MTYmMjU1LHI+Pj4yNCYyNTUsMjU1JmksaT4+OCYyNTUsaT4+MTYmMjU1LGk+Pj4yNCYyNTVdKX1mdW5jdGlvbiBkZWNvZGVTdHJpbmcoZSl7dHJ5e3JldHVybiBzdHJpbmdUb1VURjhTdHJpbmcoZSl9Y2F0Y2godCl7d2FybihgVVRGLTggZGVjb2RpbmcgZmFpbGVkOiAiJHt0fSIuYCk7cmV0dXJuIGV9fWNsYXNzIERhdGFzZXRYTUxQYXJzZXIgZXh0ZW5kcyBTaW1wbGVYTUxQYXJzZXJ7bm9kZT1udWxsO29uRW5kRWxlbWVudChlKXtjb25zdCB0PXN1cGVyLm9uRW5kRWxlbWVudChlKTtpZih0JiYieGZhOmRhdGFzZXRzIj09PWUpe3RoaXMubm9kZT10O3Rocm93IG5ldyBFcnJvcigiQWJvcnRpbmcgRGF0YXNldFhNTFBhcnNlci4iKX19fWNsYXNzIERhdGFzZXRSZWFkZXJ7Y29uc3RydWN0b3IoZSl7aWYoZS5kYXRhc2V0cyl0aGlzLm5vZGU9bmV3IFNpbXBsZVhNTFBhcnNlcih7aGFzQXR0cmlidXRlczohMH0pLnBhcnNlRnJvbVN0cmluZyhlLmRhdGFzZXRzKS5kb2N1bWVudEVsZW1lbnQ7ZWxzZXtjb25zdCB0PW5ldyBEYXRhc2V0WE1MUGFyc2VyKHtoYXNBdHRyaWJ1dGVzOiEwfSk7dHJ5e3QucGFyc2VGcm9tU3RyaW5nKGVbInhkcDp4ZHAiXSl9Y2F0Y2h7fXRoaXMubm9kZT10Lm5vZGV9fWdldFZhbHVlKGUpe2lmKCF0aGlzLm5vZGV8fCFlKXJldHVybiIiO2NvbnN0IHQ9dGhpcy5ub2RlLnNlYXJjaE5vZGUocGFyc2VYRkFQYXRoKGUpLDApO2lmKCF0KXJldHVybiIiO2NvbnN0IG49dC5maXJzdENoaWxkO3JldHVybiJ2YWx1ZSI9PT1uPy5ub2RlTmFtZT90LmNoaWxkcmVuLm1hcChlPT5kZWNvZGVTdHJpbmcoZS50ZXh0Q29udGVudCkpOmRlY29kZVN0cmluZyh0LnRleHRDb250ZW50KX19Y2xhc3MgU2luZ2xlSW50ZXJzZWN0b3J7I01lO21pblg9MS8wO21pblk9MS8wO21heFg9LTEvMDttYXhZPS0xLzA7I1BlPW51bGw7I0VlPVtdOyNOZT1bXTsjemU9LTE7I0xlPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMuI01lPWU7Y29uc3QgdD1lLmRhdGEucXVhZFBvaW50cztpZih0KXtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKz04KXt0aGlzLm1pblg9TWF0aC5taW4odGhpcy5taW5YLHRbZV0pO3RoaXMubWF4WD1NYXRoLm1heCh0aGlzLm1heFgsdFtlKzJdKTt0aGlzLm1pblk9TWF0aC5taW4odGhpcy5taW5ZLHRbZSs1XSk7dGhpcy5tYXhZPU1hdGgubWF4KHRoaXMubWF4WSx0W2UrMV0pfXQubGVuZ3RoPjgmJih0aGlzLiNQZT10KX1lbHNlW3RoaXMubWluWCx0aGlzLm1pblksdGhpcy5tYXhYLHRoaXMubWF4WV09ZS5kYXRhLnJlY3R9I1VlKGUsdCl7aWYodGhpcy5taW5YPj1lfHx0aGlzLm1heFg8PWV8fHRoaXMubWluWT49dHx8dGhpcy5tYXhZPD10KXJldHVybiExO2NvbnN0IG49dGhpcy4jUGU7aWYoIW4pcmV0dXJuITA7aWYodGhpcy4jemU+PTApe2NvbnN0IGE9dGhpcy4jemU7aWYoIShuW2FdPj1lfHxuW2ErMl08PWV8fG5bYSs1XT49dHx8blthKzFdPD10KSlyZXR1cm4hMDt0aGlzLiN6ZT0tMX1mb3IobGV0IGE9MCxzPW4ubGVuZ3RoO2E8czthKz04KWlmKCEoblthXT49ZXx8blthKzJdPD1lfHxuW2ErNV0+PXR8fG5bYSsxXTw9dCkpe3RoaXMuI3plPWE7cmV0dXJuITB9cmV0dXJuITF9YWRkR2x5cGgoZSx0LG4pe2lmKCF0aGlzLiNVZShlLHQpKXt0aGlzLmRpc2FibGVFeHRyYUNoYXJzKCk7cmV0dXJuITF9aWYodGhpcy4jTmUubGVuZ3RoPjApe3RoaXMuI0VlLnB1c2godGhpcy4jTmUuam9pbigiIikpO3RoaXMuI05lLmxlbmd0aD0wfXRoaXMuI0VlLnB1c2gobik7dGhpcy4jTGU9ITA7cmV0dXJuITB9YWRkRXh0cmFDaGFyKGUpe3RoaXMuI0xlJiZ0aGlzLiNOZS5wdXNoKGUpfWRpc2FibGVFeHRyYUNoYXJzKCl7aWYodGhpcy4jTGUpe3RoaXMuI0xlPSExO3RoaXMuI05lLmxlbmd0aD0wfX1zZXRUZXh0KCl7dGhpcy4jTWUuZGF0YS5vdmVybGFpZFRleHQ9dGhpcy4jRWUuam9pbigiIil9fWNvbnN0IHJsPTY0O2NsYXNzIEludGVyc2VjdG9yeyNfZT1bXTsjWGU9W107I1dlOyNLZTsjR2U7I1ZlOyMkZTsjWWU7Y29uc3RydWN0b3IoZSl7bGV0IHQ9MS8wLG49MS8wLGE9LTEvMCxzPS0xLzA7Y29uc3Qgcj10aGlzLiNfZTtmb3IoY29uc3QgaSBvZiBlKXtpZighaS5kYXRhLnF1YWRQb2ludHMmJiFpLmRhdGEucmVjdCljb250aW51ZTtjb25zdCBlPW5ldyBTaW5nbGVJbnRlcnNlY3RvcihpKTtyLnB1c2goZSk7dD1NYXRoLm1pbih0LGUubWluWCk7bj1NYXRoLm1pbihuLGUubWluWSk7YT1NYXRoLm1heChhLGUubWF4WCk7cz1NYXRoLm1heChzLGUubWF4WSl9dGhpcy4jV2U9dDt0aGlzLiNHZT1uO3RoaXMuI0tlPWE7dGhpcy4jVmU9czt0aGlzLiMkZT02My8oYS10KTt0aGlzLiNZZT02My8ocy1uKTtmb3IoY29uc3QgZSBvZiByKXtjb25zdCB0PXRoaXMuI0plKGUubWluWCxlLm1pblkpLG49dGhpcy4jSmUoZS5tYXhYLGUubWF4WSksYT0obi10KSVybCxzPU1hdGguZmxvb3IoKG4tdCkvcmwpO2ZvcihsZXQgbj10O248PXQrcypybDtuKz1ybClmb3IobGV0IHQ9MDt0PD1hO3QrKyl7bGV0IGE9dGhpcy4jWGVbbit0XTthfHwodGhpcy4jWGVbbit0XT1hPVtdKTthLnB1c2goZSl9fX0jSmUoZSx0KXtyZXR1cm4gTWF0aC5mbG9vcigoZS10aGlzLiNXZSkqdGhpcy4jJGUpK01hdGguZmxvb3IoKHQtdGhpcy4jR2UpKnRoaXMuI1llKSpybH1hZGRHbHlwaChlLHQsbixhKXtjb25zdCBzPWVbNF0rdC8yLHI9ZVs1XStuLzI7aWYoczx0aGlzLiNXZXx8cjx0aGlzLiNHZXx8cz50aGlzLiNLZXx8cj50aGlzLiNWZSlyZXR1cm47Y29uc3QgaT10aGlzLiNYZVt0aGlzLiNKZShzLHIpXTtpZihpKWZvcihjb25zdCBlIG9mIGkpZS5hZGRHbHlwaChzLHIsYSl9YWRkRXh0cmFDaGFyKGUpe2Zvcihjb25zdCB0IG9mIHRoaXMuI19lKXQuYWRkRXh0cmFDaGFyKGUpfXNldFRleHQoKXtmb3IoY29uc3QgZSBvZiB0aGlzLiNfZSllLnNldFRleHQoKX19Y2xhc3MgV29yZDY0e2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5oaWdoPTB8ZTt0aGlzLmxvdz0wfHR9YW5kKGUpe3RoaXMuaGlnaCY9ZS5oaWdoO3RoaXMubG93Jj1lLmxvd314b3IoZSl7dGhpcy5oaWdoXj1lLmhpZ2g7dGhpcy5sb3dePWUubG93fXNoaWZ0UmlnaHQoZSl7aWYoZT49MzIpe3RoaXMubG93PXRoaXMuaGlnaD4+PmUtMzJ8MDt0aGlzLmhpZ2g9MH1lbHNle3RoaXMubG93PXRoaXMubG93Pj4+ZXx0aGlzLmhpZ2g8PDMyLWU7dGhpcy5oaWdoPXRoaXMuaGlnaD4+PmV8MH19cm90YXRlUmlnaHQoZSl7bGV0IHQsbjtpZigzMiZlKXtuPXRoaXMubG93O3Q9dGhpcy5oaWdofWVsc2V7dD10aGlzLmxvdztuPXRoaXMuaGlnaH1lJj0zMTt0aGlzLmxvdz10Pj4+ZXxuPDwzMi1lO3RoaXMuaGlnaD1uPj4+ZXx0PDwzMi1lfW5vdCgpe3RoaXMuaGlnaD1+dGhpcy5oaWdoO3RoaXMubG93PX50aGlzLmxvd31hZGQoZSl7Y29uc3QgdD0odGhpcy5sb3c+Pj4wKSsoZS5sb3c+Pj4wKTtsZXQgbj0odGhpcy5oaWdoPj4+MCkrKGUuaGlnaD4+PjApO3Q+NDI5NDk2NzI5NSYmKG4rPTEpO3RoaXMubG93PTB8dDt0aGlzLmhpZ2g9MHxufWNvcHlUbyhlLHQpe2VbdF09dGhpcy5oaWdoPj4+MjQmMjU1O2VbdCsxXT10aGlzLmhpZ2g+PjE2JjI1NTtlW3QrMl09dGhpcy5oaWdoPj44JjI1NTtlW3QrM109MjU1JnRoaXMuaGlnaDtlW3QrNF09dGhpcy5sb3c+Pj4yNCYyNTU7ZVt0KzVdPXRoaXMubG93Pj4xNiYyNTU7ZVt0KzZdPXRoaXMubG93Pj44JjI1NTtlW3QrN109MjU1JnRoaXMubG93fWFzc2lnbihlKXt0aGlzLmhpZ2g9ZS5oaWdoO3RoaXMubG93PWUubG93fX1jb25zdCBpbD17Z2V0IGsoKXtyZXR1cm4gc2hhZG93KHRoaXMsImsiLFtuZXcgV29yZDY0KDExMTYzNTI0MDgsMzYwOTc2NzQ1OCksbmV3IFdvcmQ2NCgxODk5NDQ3NDQxLDYwMjg5MTcyNSksbmV3IFdvcmQ2NCgzMDQ5MzIzNDcxLDM5NjQ0ODQzOTkpLG5ldyBXb3JkNjQoMzkyMTAwOTU3MywyMTczMjk1NTQ4KSxuZXcgV29yZDY0KDk2MTk4NzE2Myw0MDgxNjI4NDcyKSxuZXcgV29yZDY0KDE1MDg5NzA5OTMsMzA1MzgzNDI2NSksbmV3IFdvcmQ2NCgyNDUzNjM1NzQ4LDI5Mzc2NzE1NzkpLG5ldyBXb3JkNjQoMjg3MDc2MzIyMSwzNjY0NjA5NTYwKSxuZXcgV29yZDY0KDM2MjQzODEwODAsMjczNDg4MzM5NCksbmV3IFdvcmQ2NCgzMTA1OTg0MDEsMTE2NDk5NjU0MiksbmV3IFdvcmQ2NCg2MDcyMjUyNzgsMTMyMzYxMDc2NCksbmV3IFdvcmQ2NCgxNDI2ODgxOTg3LDM1OTAzMDQ5OTQpLG5ldyBXb3JkNjQoMTkyNTA3ODM4OCw0MDY4MTgyMzgzKSxuZXcgV29yZDY0KDIxNjIwNzgyMDYsOTkxMzM2MTEzKSxuZXcgV29yZDY0KDI2MTQ4ODgxMDMsNjMzODAzMzE3KSxuZXcgV29yZDY0KDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCksbmV3IFdvcmQ2NCgzODM1MzkwNDAxLDI2NjY2MTM0NTgpLG5ldyBXb3JkNjQoNDAyMjIyNDc3NCw5NDQ3MTExMzkpLG5ldyBXb3JkNjQoMjY0MzQ3MDc4LDIzNDEyNjI3NzMpLG5ldyBXb3JkNjQoNjA0ODA3NjI4LDIwMDc4MDA5MzMpLG5ldyBXb3JkNjQoNzcwMjU1OTgzLDE0OTU5OTA5MDEpLG5ldyBXb3JkNjQoMTI0OTE1MDEyMiwxODU2NDMxMjM1KSxuZXcgV29yZDY0KDE1NTUwODE2OTIsMzE3NTIxODEzMiksbmV3IFdvcmQ2NCgxOTk2MDY0OTg2LDIxOTg5NTA4MzcpLG5ldyBXb3JkNjQoMjU1NDIyMDg4MiwzOTk5NzE5MzM5KSxuZXcgV29yZDY0KDI4MjE4MzQzNDksNzY2Nzg0MDE2KSxuZXcgV29yZDY0KDI5NTI5OTY4MDgsMjU2NjU5NDg3OSksbmV3IFdvcmQ2NCgzMjEwMzEzNjcxLDMyMDMzMzc5NTYpLG5ldyBXb3JkNjQoMzMzNjU3MTg5MSwxMDM0NDU3MDI2KSxuZXcgV29yZDY0KDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSksbmV3IFdvcmQ2NCgxMTM5MjY5OTMsMzc1ODMyNjM4MyksbmV3IFdvcmQ2NCgzMzgyNDE4OTUsMTY4NzE3OTM2KSxuZXcgV29yZDY0KDY2NjMwNzIwNSwxMTg4MTc5OTY0KSxuZXcgV29yZDY0KDc3MzUyOTkxMiwxNTQ2MDQ1NzM0KSxuZXcgV29yZDY0KDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSksbmV3IFdvcmQ2NCgxMzk2MTgyMjkxLDI2NDM4MzM4MjMpLG5ldyBXb3JkNjQoMTY5NTE4MzcwMCwyMzQzNTI3MzkwKSxuZXcgV29yZDY0KDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCksbmV3IFdvcmQ2NCgyMTc3MDI2MzUwLDEyMDY3NTkxNDIpLG5ldyBXb3JkNjQoMjQ1Njk1NjAzNywzNDQwNzc2MjcpLG5ldyBXb3JkNjQoMjczMDQ4NTkyMSwxMjkwODYzNDYwKSxuZXcgV29yZDY0KDI4MjAzMDI0MTEsMzE1ODQ1NDI3MyksbmV3IFdvcmQ2NCgzMjU5NzMwODAwLDM1MDU5NTI2NTcpLG5ldyBXb3JkNjQoMzM0NTc2NDc3MSwxMDYyMTcwMDgpLG5ldyBXb3JkNjQoMzUxNjA2NTgxNywzNjA2MDA4MzQ0KSxuZXcgV29yZDY0KDM2MDAzNTI4MDQsMTQzMjcyNTc3NiksbmV3IFdvcmQ2NCg0MDk0NTcxOTA5LDE0NjcwMzE1OTQpLG5ldyBXb3JkNjQoMjc1NDIzMzQ0LDg1MTE2OTcyMCksbmV3IFdvcmQ2NCg0MzAyMjc3MzQsMzEwMDgyMzc1MiksbmV3IFdvcmQ2NCg1MDY5NDg2MTYsMTM2MzI1ODE5NSksbmV3IFdvcmQ2NCg2NTkwNjA1NTYsMzc1MDY4NTU5MyksbmV3IFdvcmQ2NCg4ODM5OTc4NzcsMzc4NTA1MDI4MCksbmV3IFdvcmQ2NCg5NTgxMzk1NzEsMzMxODMwNzQyNyksbmV3IFdvcmQ2NCgxMzIyODIyMjE4LDM4MTI3MjM0MDMpLG5ldyBXb3JkNjQoMTUzNzAwMjA2MywyMDAzMDM0OTk1KSxuZXcgV29yZDY0KDE3NDc4NzM3NzksMzYwMjAzNjg5OSksbmV3IFdvcmQ2NCgxOTU1NTYyMjIyLDE1NzU5OTAwMTIpLG5ldyBXb3JkNjQoMjAyNDEwNDgxNSwxMTI1NTkyOTI4KSxuZXcgV29yZDY0KDIyMjc3MzA0NTIsMjcxNjkwNDMwNiksbmV3IFdvcmQ2NCgyMzYxODUyNDI0LDQ0Mjc3NjA0NCksbmV3IFdvcmQ2NCgyNDI4NDM2NDc0LDU5MzY5ODM0NCksbmV3IFdvcmQ2NCgyNzU2NzM0MTg3LDM3MzMxMTAyNDkpLG5ldyBXb3JkNjQoMzIwNDAzMTQ3OSwyOTk5MzUxNTczKSxuZXcgV29yZDY0KDMzMjkzMjUyOTgsMzgxNTkyMDQyNyksbmV3IFdvcmQ2NCgzMzkxNTY5NjE0LDM5MjgzODM5MDApLG5ldyBXb3JkNjQoMzUxNTI2NzI3MSw1NjYyODA3MTEpLG5ldyBXb3JkNjQoMzk0MDE4NzYwNiwzNDU0MDY5NTM0KSxuZXcgV29yZDY0KDQxMTg2MzAyNzEsNDAwMDIzOTk5MiksbmV3IFdvcmQ2NCgxMTY0MTg0NzQsMTkxNDEzODU1NCksbmV3IFdvcmQ2NCgxNzQyOTI0MjEsMjczMTA1NTI3MCksbmV3IFdvcmQ2NCgyODkzODAzNTYsMzIwMzk5MzAwNiksbmV3IFdvcmQ2NCg0NjAzOTMyNjksMzIwNjIwMzE1KSxuZXcgV29yZDY0KDY4NTQ3MTczMyw1ODc0OTY4MzYpLG5ldyBXb3JkNjQoODUyMTQyOTcxLDEwODY3OTI4NTEpLG5ldyBXb3JkNjQoMTAxNzAzNjI5OCwzNjU1NDMxMDApLG5ldyBXb3JkNjQoMTEyNjAwMDU4MCwyNjE4Mjk3Njc2KSxuZXcgV29yZDY0KDEyODgwMzM0NzAsMzQwOTg1NTE1OCksbmV3IFdvcmQ2NCgxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYpLG5ldyBXb3JkNjQoMTYwNzE2NzkxNSw5ODcxNjc0NjgpLG5ldyBXb3JkNjQoMTgxNjQwMjMxNiwxMjQ2MTg5NTkxKV0pfX07ZnVuY3Rpb24gY2goZSx0LG4sYSxzKXtlLmFzc2lnbih0KTtlLmFuZChuKTtzLmFzc2lnbih0KTtzLm5vdCgpO3MuYW5kKGEpO2UueG9yKHMpfWZ1bmN0aW9uIG1haihlLHQsbixhLHMpe2UuYXNzaWduKHQpO2UuYW5kKG4pO3MuYXNzaWduKHQpO3MuYW5kKGEpO2UueG9yKHMpO3MuYXNzaWduKG4pO3MuYW5kKGEpO2UueG9yKHMpfWZ1bmN0aW9uIHNpZ21hKGUsdCxuKXtlLmFzc2lnbih0KTtlLnJvdGF0ZVJpZ2h0KDI4KTtuLmFzc2lnbih0KTtuLnJvdGF0ZVJpZ2h0KDM0KTtlLnhvcihuKTtuLmFzc2lnbih0KTtuLnJvdGF0ZVJpZ2h0KDM5KTtlLnhvcihuKX1mdW5jdGlvbiBzaWdtYVByaW1lKGUsdCxuKXtlLmFzc2lnbih0KTtlLnJvdGF0ZVJpZ2h0KDE0KTtuLmFzc2lnbih0KTtuLnJvdGF0ZVJpZ2h0KDE4KTtlLnhvcihuKTtuLmFzc2lnbih0KTtuLnJvdGF0ZVJpZ2h0KDQxKTtlLnhvcihuKX1mdW5jdGlvbiBsaXR0bGVTaWdtYShlLHQsbil7ZS5hc3NpZ24odCk7ZS5yb3RhdGVSaWdodCgxKTtuLmFzc2lnbih0KTtuLnJvdGF0ZVJpZ2h0KDgpO2UueG9yKG4pO24uYXNzaWduKHQpO24uc2hpZnRSaWdodCg3KTtlLnhvcihuKX1mdW5jdGlvbiBsaXR0bGVTaWdtYVByaW1lKGUsdCxuKXtlLmFzc2lnbih0KTtlLnJvdGF0ZVJpZ2h0KDE5KTtuLmFzc2lnbih0KTtuLnJvdGF0ZVJpZ2h0KDYxKTtlLnhvcihuKTtuLmFzc2lnbih0KTtuLnNoaWZ0UmlnaHQoNik7ZS54b3Iobil9ZnVuY3Rpb24gY2FsY3VsYXRlU0hBNTEyKGUsdCxuLGE9ITEpe2xldCBzLHIsaSxvLGwsZixjLGg7aWYoYSl7cz1uZXcgV29yZDY0KDM0MTgwNzAzNjUsMzIzODM3MTAzMik7cj1uZXcgV29yZDY0KDE2NTQyNzAyNTAsOTE0MTUwNjYzKTtpPW5ldyBXb3JkNjQoMjQzODUyOTM3MCw4MTI3MDI5OTkpO289bmV3IFdvcmQ2NCgzNTU0NjIzNjAsNDE0NDkxMjY5Nyk7bD1uZXcgV29yZDY0KDE3MzE0MDU0MTUsNDI5MDc3NTg1Nyk7Zj1uZXcgV29yZDY0KDIzOTQxODAyMzEsMTc1MDYwMzAyNSk7Yz1uZXcgV29yZDY0KDM2NzUwMDg1MjUsMTY5NDA3NjgzOSk7aD1uZXcgV29yZDY0KDEyMDMwNjI4MTMsMzIwNDA3NTQyOCl9ZWxzZXtzPW5ldyBXb3JkNjQoMTc3OTAzMzcwMyw0MDg5MjM1NzIwKTtyPW5ldyBXb3JkNjQoMzE0NDEzNDI3NywyMjI3ODczNTk1KTtpPW5ldyBXb3JkNjQoMTAxMzkwNDI0Miw0MjcxMTc1NzIzKTtvPW5ldyBXb3JkNjQoMjc3MzQ4MDc2MiwxNTk1NzUwMTI5KTtsPW5ldyBXb3JkNjQoMTM1OTg5MzExOSwyOTE3NTY1MTM3KTtmPW5ldyBXb3JkNjQoMjYwMDgyMjkyNCw3MjU1MTExOTkpO2M9bmV3IFdvcmQ2NCg1Mjg3MzQ2MzUsNDIxNTM4OTU0Nyk7aD1uZXcgV29yZDY0KDE1NDE0NTkyMjUsMzI3MDMzMjA5KX1jb25zdCB1PTEyOCpNYXRoLmNlaWwoKG4rMTcpLzEyOCksbT1uZXcgVWludDhBcnJheSh1KTtsZXQgcCxkO2ZvcihwPTA7cDxuOysrcCltW3BdPWVbdCsrXTttW3ArK109MTI4O2NvbnN0IGc9dS0xNjtwPGcmJihwPWcpO3ArPTExO21bcCsrXT1uPj4+MjkmMjU1O21bcCsrXT1uPj4yMSYyNTU7bVtwKytdPW4+PjEzJjI1NTttW3ArK109bj4+NSYyNTU7bVtwKytdPW48PDMmMjU1O2NvbnN0IGI9bmV3IEFycmF5KDgwKTtmb3IocD0wO3A8ODA7cCsrKWJbcF09bmV3IFdvcmQ2NCgwLDApO2NvbnN0e2s6d309aWw7bGV0IGo9bmV3IFdvcmQ2NCgwLDApLGs9bmV3IFdvcmQ2NCgwLDApLHk9bmV3IFdvcmQ2NCgwLDApLHE9bmV3IFdvcmQ2NCgwLDApLHY9bmV3IFdvcmQ2NCgwLDApLFM9bmV3IFdvcmQ2NCgwLDApLHg9bmV3IFdvcmQ2NCgwLDApLEM9bmV3IFdvcmQ2NCgwLDApO2NvbnN0IEY9bmV3IFdvcmQ2NCgwLDApLFQ9bmV3IFdvcmQ2NCgwLDApLEg9bmV3IFdvcmQ2NCgwLDApLE89bmV3IFdvcmQ2NCgwLDApO2xldCBSLEQ7Zm9yKHA9MDtwPHU7KXtmb3IoZD0wO2Q8MTY7KytkKXtiW2RdLmhpZ2g9bVtwXTw8MjR8bVtwKzFdPDwxNnxtW3ArMl08PDh8bVtwKzNdO2JbZF0ubG93PW1bcCs0XTw8MjR8bVtwKzVdPDwxNnxtW3ArNl08PDh8bVtwKzddO3ArPTh9Zm9yKGQ9MTY7ZDw4MDsrK2Qpe1I9YltkXTtsaXR0bGVTaWdtYVByaW1lKFIsYltkLTJdLE8pO1IuYWRkKGJbZC03XSk7bGl0dGxlU2lnbWEoSCxiW2QtMTVdLE8pO1IuYWRkKEgpO1IuYWRkKGJbZC0xNl0pfWouYXNzaWduKHMpO2suYXNzaWduKHIpO3kuYXNzaWduKGkpO3EuYXNzaWduKG8pO3YuYXNzaWduKGwpO1MuYXNzaWduKGYpO3guYXNzaWduKGMpO0MuYXNzaWduKGgpO2ZvcihkPTA7ZDw4MDsrK2Qpe0YuYXNzaWduKEMpO3NpZ21hUHJpbWUoSCx2LE8pO0YuYWRkKEgpO2NoKEgsdixTLHgsTyk7Ri5hZGQoSCk7Ri5hZGQod1tkXSk7Ri5hZGQoYltkXSk7c2lnbWEoVCxqLE8pO21haihILGosayx5LE8pO1QuYWRkKEgpO1I9QztDPXg7eD1TO1M9djtxLmFkZChGKTt2PXE7cT15O3k9aztrPWo7Ui5hc3NpZ24oRik7Ui5hZGQoVCk7aj1SfXMuYWRkKGopO3IuYWRkKGspO2kuYWRkKHkpO28uYWRkKHEpO2wuYWRkKHYpO2YuYWRkKFMpO2MuYWRkKHgpO2guYWRkKEMpfWlmKGEpe0Q9bmV3IFVpbnQ4QXJyYXkoNDgpO3MuY29weVRvKEQsMCk7ci5jb3B5VG8oRCw4KTtpLmNvcHlUbyhELDE2KTtvLmNvcHlUbyhELDI0KTtsLmNvcHlUbyhELDMyKTtmLmNvcHlUbyhELDQwKX1lbHNle0Q9bmV3IFVpbnQ4QXJyYXkoNjQpO3MuY29weVRvKEQsMCk7ci5jb3B5VG8oRCw4KTtpLmNvcHlUbyhELDE2KTtvLmNvcHlUbyhELDI0KTtsLmNvcHlUbyhELDMyKTtmLmNvcHlUbyhELDQwKTtjLmNvcHlUbyhELDQ4KTtoLmNvcHlUbyhELDU2KX1yZXR1cm4gRH1mdW5jdGlvbiBjYWxjdWxhdGVTSEEzODQoZSx0LG4pe3JldHVybiBjYWxjdWxhdGVTSEE1MTIoZSx0LG4sITApfWNvbnN0IG9sPXtnZXQgaygpe3JldHVybiBzaGFkb3codGhpcywiayIsWzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0pfX07ZnVuY3Rpb24gcm90cihlLHQpe3JldHVybiBlPj4+dHxlPDwzMi10fWZ1bmN0aW9uIGNhbGN1bGF0ZV9zaGEyNTZfY2goZSx0LG4pe3JldHVybiBlJnRefmUmbn1mdW5jdGlvbiBjYWxjdWxhdGVfc2hhMjU2X21haihlLHQsbil7cmV0dXJuIGUmdF5lJm5edCZufWZ1bmN0aW9uIGNhbGN1bGF0ZV9zaGEyNTZfc2lnbWEoZSl7cmV0dXJuIHJvdHIoZSwyKV5yb3RyKGUsMTMpXnJvdHIoZSwyMil9ZnVuY3Rpb24gY2FsY3VsYXRlX3NoYTI1Nl9zaWdtYVByaW1lKGUpe3JldHVybiByb3RyKGUsNilecm90cihlLDExKV5yb3RyKGUsMjUpfWZ1bmN0aW9uIGNhbGN1bGF0ZV9zaGEyNTZfbGl0dGxlU2lnbWEoZSl7cmV0dXJuIHJvdHIoZSw3KV5yb3RyKGUsMTgpXmU+Pj4zfWZ1bmN0aW9uIGNhbGN1bGF0ZV9zaGEyNTZfbGl0dGxlU2lnbWFQcmltZShlKXtyZXR1cm4gcm90cihlLDE3KV5yb3RyKGUsMTkpXmU+Pj4xMH1mdW5jdGlvbiBjYWxjdWxhdGVTSEEyNTYoZSx0LG4pe2xldCBhPTE3NzkwMzM3MDMscz0zMTQ0MTM0Mjc3LHI9MTAxMzkwNDI0MixpPTI3NzM0ODA3NjIsbz0xMzU5ODkzMTE5LGw9MjYwMDgyMjkyNCxmPTUyODczNDYzNSxjPTE1NDE0NTkyMjU7Y29uc3QgaD02NCpNYXRoLmNlaWwoKG4rOSkvNjQpLHU9bmV3IFVpbnQ4QXJyYXkoaCk7bGV0IG0scDtmb3IobT0wO208bjsrK20pdVttXT1lW3QrK107dVttKytdPTEyODtjb25zdCBkPWgtODttPGQmJihtPWQpO20rPTM7dVttKytdPW4+Pj4yOSYyNTU7dVttKytdPW4+PjIxJjI1NTt1W20rK109bj4+MTMmMjU1O3VbbSsrXT1uPj41JjI1NTt1W20rK109bjw8MyYyNTU7Y29uc3QgZz1uZXcgVWludDMyQXJyYXkoNjQpLHtrOmJ9PW9sO2ZvcihtPTA7bTxoOyl7Zm9yKHA9MDtwPDE2OysrcCl7Z1twXT11W21dPDwyNHx1W20rMV08PDE2fHVbbSsyXTw8OHx1W20rM107bSs9NH1mb3IocD0xNjtwPDY0OysrcClnW3BdPWNhbGN1bGF0ZV9zaGEyNTZfbGl0dGxlU2lnbWFQcmltZShnW3AtMl0pK2dbcC03XStjYWxjdWxhdGVfc2hhMjU2X2xpdHRsZVNpZ21hKGdbcC0xNV0pK2dbcC0xNl18MDtsZXQgZSx0LG49YSxoPXMsZD1yLHc9aSxqPW8saz1sLHk9ZixxPWM7Zm9yKHA9MDtwPDY0OysrcCl7ZT1xK2NhbGN1bGF0ZV9zaGEyNTZfc2lnbWFQcmltZShqKStjYWxjdWxhdGVfc2hhMjU2X2NoKGosayx5KStiW3BdK2dbcF07dD1jYWxjdWxhdGVfc2hhMjU2X3NpZ21hKG4pK2NhbGN1bGF0ZV9zaGEyNTZfbWFqKG4saCxkKTtxPXk7eT1rO2s9ajtqPXcrZXwwO3c9ZDtkPWg7aD1uO249ZSt0fDB9YT1hK258MDtzPXMraHwwO3I9citkfDA7aT1pK3d8MDtvPW8ranwwO2w9bCtrfDA7Zj1mK3l8MDtjPWMrcXwwfXJldHVybiBuZXcgVWludDhBcnJheShbYT4+MjQmMjU1LGE+PjE2JjI1NSxhPj44JjI1NSwyNTUmYSxzPj4yNCYyNTUscz4+MTYmMjU1LHM+PjgmMjU1LDI1NSZzLHI+PjI0JjI1NSxyPj4xNiYyNTUscj4+OCYyNTUsMjU1JnIsaT4+MjQmMjU1LGk+PjE2JjI1NSxpPj44JjI1NSwyNTUmaSxvPj4yNCYyNTUsbz4+MTYmMjU1LG8+PjgmMjU1LDI1NSZvLGw+PjI0JjI1NSxsPj4xNiYyNTUsbD4+OCYyNTUsMjU1JmwsZj4+MjQmMjU1LGY+PjE2JjI1NSxmPj44JjI1NSwyNTUmZixjPj4yNCYyNTUsYz4+MTYmMjU1LGM+PjgmMjU1LDI1NSZjXSl9Y2xhc3MgRGVjcnlwdFN0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIodCk7dGhpcy5zdHJlYW09ZTt0aGlzLmRpY3Q9ZS5kaWN0O3RoaXMuZGVjcnlwdD1uO3RoaXMubmV4dENodW5rPW51bGw7dGhpcy5pbml0aWFsaXplZD0hMX1yZWFkQmxvY2soKXtsZXQgZTtpZih0aGlzLmluaXRpYWxpemVkKWU9dGhpcy5uZXh0Q2h1bms7ZWxzZXtlPXRoaXMuc3RyZWFtLmdldEJ5dGVzKDUxMik7dGhpcy5pbml0aWFsaXplZD0hMH1pZighZT8ubGVuZ3RoKXt0aGlzLmVvZj0hMDtyZXR1cm59dGhpcy5uZXh0Q2h1bms9dGhpcy5zdHJlYW0uZ2V0Qnl0ZXMoNTEyKTtjb25zdCB0PXRoaXMubmV4dENodW5rPy5sZW5ndGg+MDtlPSgwLHRoaXMuZGVjcnlwdCkoZSwhdCk7Y29uc3Qgbj10aGlzLmJ1ZmZlckxlbmd0aCxhPW4rZS5sZW5ndGg7dGhpcy5lbnN1cmVCdWZmZXIoYSkuc2V0KGUsbik7dGhpcy5idWZmZXJMZW5ndGg9YX1nZXRPcmlnaW5hbFN0cmVhbSgpe3JldHVybiB0aGlzfX1jbGFzcyBBUkNGb3VyQ2lwaGVye2E9MDtiPTA7Y29uc3RydWN0b3IoZSl7Y29uc3QgdD1uZXcgVWludDhBcnJheSgyNTYpLG49ZS5sZW5ndGg7Zm9yKGxldCBlPTA7ZTwyNTY7KytlKXRbZV09ZTtmb3IobGV0IGE9MCxzPTA7YTwyNTY7KythKXtjb25zdCByPXRbYV07cz1zK3IrZVthJW5dJjI1NTt0W2FdPXRbc107dFtzXT1yfXRoaXMucz10fWVuY3J5cHRCbG9jayhlKXtsZXQgdD10aGlzLmEsbj10aGlzLmI7Y29uc3QgYT10aGlzLnMscz1lLmxlbmd0aCxyPW5ldyBVaW50OEFycmF5KHMpO2ZvcihsZXQgaT0wO2k8czsrK2kpe3Q9dCsxJjI1NTtjb25zdCBzPWFbdF07bj1uK3MmMjU1O2NvbnN0IG89YVtuXTthW3RdPW87YVtuXT1zO3JbaV09ZVtpXV5hW3MrbyYyNTVdfXRoaXMuYT10O3RoaXMuYj1uO3JldHVybiByfWRlY3J5cHRCbG9jayhlKXtyZXR1cm4gdGhpcy5lbmNyeXB0QmxvY2soZSl9ZW5jcnlwdChlKXtyZXR1cm4gdGhpcy5lbmNyeXB0QmxvY2soZSl9fWNsYXNzIE51bGxDaXBoZXJ7ZGVjcnlwdEJsb2NrKGUpe3JldHVybiBlfWVuY3J5cHQoZSl7cmV0dXJuIGV9fWNsYXNzIEFFU0Jhc2VDaXBoZXJ7X3M9bmV3IFVpbnQ4QXJyYXkoWzk5LDEyNCwxMTksMTIzLDI0MiwxMDcsMTExLDE5Nyw0OCwxLDEwMyw0MywyNTQsMjE1LDE3MSwxMTgsMjAyLDEzMCwyMDEsMTI1LDI1MCw4OSw3MSwyNDAsMTczLDIxMiwxNjIsMTc1LDE1NiwxNjQsMTE0LDE5MiwxODMsMjUzLDE0NywzOCw1NCw2MywyNDcsMjA0LDUyLDE2NSwyMjksMjQxLDExMywyMTYsNDksMjEsNCwxOTksMzUsMTk1LDI0LDE1MCw1LDE1NCw3LDE4LDEyOCwyMjYsMjM1LDM5LDE3OCwxMTcsOSwxMzEsNDQsMjYsMjcsMTEwLDkwLDE2MCw4Miw1OSwyMTQsMTc5LDQxLDIyNyw0NywxMzIsODMsMjA5LDAsMjM3LDMyLDI1MiwxNzcsOTEsMTA2LDIwMywxOTAsNTcsNzQsNzYsODgsMjA3LDIwOCwyMzksMTcwLDI1MSw2Nyw3Nyw1MSwxMzMsNjksMjQ5LDIsMTI3LDgwLDYwLDE1OSwxNjgsODEsMTYzLDY0LDE0MywxNDYsMTU3LDU2LDI0NSwxODgsMTgyLDIxOCwzMywxNiwyNTUsMjQzLDIxMCwyMDUsMTIsMTksMjM2LDk1LDE1MSw2OCwyMywxOTYsMTY3LDEyNiw2MSwxMDAsOTMsMjUsMTE1LDk2LDEyOSw3OSwyMjAsMzQsNDIsMTQ0LDEzNiw3MCwyMzgsMTg0LDIwLDIyMiw5NCwxMSwyMTksMjI0LDUwLDU4LDEwLDczLDYsMzYsOTIsMTk0LDIxMSwxNzIsOTgsMTQ1LDE0OSwyMjgsMTIxLDIzMSwyMDAsNTUsMTA5LDE0MSwyMTMsNzgsMTY5LDEwOCw4NiwyNDQsMjM0LDEwMSwxMjIsMTc0LDgsMTg2LDEyMCwzNyw0NiwyOCwxNjYsMTgwLDE5OCwyMzIsMjIxLDExNiwzMSw3NSwxODksMTM5LDEzOCwxMTIsNjIsMTgxLDEwMiw3MiwzLDI0NiwxNCw5Nyw1Myw4NywxODUsMTM0LDE5MywyOSwxNTgsMjI1LDI0OCwxNTIsMTcsMTA1LDIxNywxNDIsMTQ4LDE1NSwzMCwxMzUsMjMzLDIwNiw4NSw0MCwyMjMsMTQwLDE2MSwxMzcsMTMsMTkxLDIzMCw2NiwxMDQsNjUsMTUzLDQ1LDE1LDE3Niw4NCwxODcsMjJdKTtfaW52X3M9bmV3IFVpbnQ4QXJyYXkoWzgyLDksMTA2LDIxMyw0OCw1NCwxNjUsNTYsMTkxLDY0LDE2MywxNTgsMTI5LDI0MywyMTUsMjUxLDEyNCwyMjcsNTcsMTMwLDE1NSw0NywyNTUsMTM1LDUyLDE0Miw2Nyw2OCwxOTYsMjIyLDIzMywyMDMsODQsMTIzLDE0OCw1MCwxNjYsMTk0LDM1LDYxLDIzOCw3NiwxNDksMTEsNjYsMjUwLDE5NSw3OCw4LDQ2LDE2MSwxMDIsNDAsMjE3LDM2LDE3OCwxMTgsOTEsMTYyLDczLDEwOSwxMzksMjA5LDM3LDExNCwyNDgsMjQ2LDEwMCwxMzQsMTA0LDE1MiwyMiwyMTIsMTY0LDkyLDIwNCw5MywxMDEsMTgyLDE0NiwxMDgsMTEyLDcyLDgwLDI1MywyMzcsMTg1LDIxOCw5NCwyMSw3MCw4NywxNjcsMTQxLDE1NywxMzIsMTQ0LDIxNiwxNzEsMCwxNDAsMTg4LDIxMSwxMCwyNDcsMjI4LDg4LDUsMTg0LDE3OSw2OSw2LDIwOCw0NCwzMCwxNDMsMjAyLDYzLDE1LDIsMTkzLDE3NSwxODksMywxLDE5LDEzOCwxMDcsNTgsMTQ1LDE3LDY1LDc5LDEwMywyMjAsMjM0LDE1MSwyNDIsMjA3LDIwNiwyNDAsMTgwLDIzMCwxMTUsMTUwLDE3MiwxMTYsMzQsMjMxLDE3Myw1MywxMzMsMjI2LDI0OSw1NSwyMzIsMjgsMTE3LDIyMywxMTAsNzEsMjQxLDI2LDExMywyOSw0MSwxOTcsMTM3LDExMSwxODMsOTgsMTQsMTcwLDI0LDE5MCwyNywyNTIsODYsNjIsNzUsMTk4LDIxMCwxMjEsMzIsMTU0LDIxOSwxOTIsMjU0LDEyMCwyMDUsOTAsMjQ0LDMxLDIyMSwxNjgsNTEsMTM2LDcsMTk5LDQ5LDE3NywxOCwxNiw4OSwzOSwxMjgsMjM2LDk1LDk2LDgxLDEyNywxNjksMjUsMTgxLDc0LDEzLDQ1LDIyOSwxMjIsMTU5LDE0NywyMDEsMTU2LDIzOSwxNjAsMjI0LDU5LDc3LDE3NCw0MiwyNDUsMTc2LDIwMCwyMzUsMTg3LDYwLDEzMSw4MywxNTMsOTcsMjMsNDMsNCwxMjYsMTg2LDExOSwyMTQsMzgsMjI1LDEwNSwyMCw5OSw4NSwzMywxMiwxMjVdKTtfbWl4PW5ldyBVaW50MzJBcnJheShbMCwyMzU0NzQxODcsNDcwOTQ4Mzc0LDMwMzc2NTI3Nyw5NDE4OTY3NDgsOTA4OTMzNDE1LDYwNzUzMDU1NCw3MDg3ODA4NDksMTg4Mzc5MzQ5NiwyMTE4MjE0OTk1LDE4MTc4NjY4MzAsMTY0OTYzOTIzNywxMjE1MDYxMTA4LDExODEwNDUxMTksMTQxNzU2MTY5OCwxNTE3NzY3NTI5LDM3Njc1ODY5OTIsNDAwMzA2MTE3OSw0MjM2NDI5OTkwLDQwNjkyNDY4OTMsMzYzNTczMzY2MCwzNjAyNzcwMzI3LDMyOTkyNzg0NzQsMzQwMDUyODc2OSwyNDMwMTIyMjE2LDI2NjQ1NDM3MTUsMjM2MjA5MDIzOCwyMTkzODYyNjQ1LDI4MzUxMjMzOTYsMjgwMTEwNzQwNywzMDM1NTM1MDU4LDMxMzU3NDA4ODksMzY3ODEyNDkyMywzNTc2ODcwNTEyLDMzNDEzOTQyODUsMzM3NDM2MTcwMiwzODEwNDk2MzQzLDM5Nzc2NzUzNTYsNDI3OTA4MDI1Nyw0MDQzNjEwMTg2LDI4NzY0OTQ2MjcsMjc3NjI5MjkwNCwzMDc2NjM5MDI5LDMxMTA2NTA5NDIsMjQ3MjAxMTUzNSwyNjQwMjQzMjA0LDI0MDM3Mjg2NjUsMjE2OTMwMzA1OCwxMDAxMDg5OTk1LDg5OTgzNTU4NCw2NjY0NjQ3MzMsNjk5NDMyMTUwLDU5NzI3ODQ3LDIyNjkwNjg2MCw1MzA0MDA3NTMsMjk0OTMwNjgyLDEyNzMxNjg3ODcsMTE3Mjk2NzA2NCwxNDc1NDE4NTAxLDE1MDk0MzA0MTQsMTk0MjQzNTc3NSwyMTEwNjY3NDQ0LDE4NzYyNDE4MzMsMTY0MTgxNjIyNiwyOTEwMjE5NzY2LDI3NDMwMzQxMDksMjk3NjE1MTUyMCwzMjExNjIzMTQ3LDI1MDUyMDIxMzgsMjYwNjQ1Mzk2OSwyMzAyNjkwMjUyLDIyNjk3Mjg0NTUsMzcxMTgyOTQyMiwzNTQzNTk5MjY5LDMyNDA4OTQzOTIsMzQ3NTMxMzMzMSwzODQzNjk5MDc0LDM5NDM5MDY0NDEsNDE3ODA2MjIyOCw0MTQ0MDQ3Nzc1LDEzMDY5NjczNjYsMTEzOTc4MTcwOSwxMzc0OTg4MTEyLDE2MTA0NTk3MzksMTk3NTY4MzQzNCwyMDc2OTM1MjY1LDE3NzUyNzY5MjQsMTc0MjMxNTEyNywxMDM0ODY3OTk4LDg2NjYzNzg0NSw1NjYwMjE4OTYsODAwNDQwODM1LDkyOTg3Njk4LDE5MzE5NTA2NSw0Mjk0NTYxNjQsMzk1NDQxNzExLDE5ODQ4MTI2ODUsMjAxNzc3ODU2NiwxNzg0NjYzMTk1LDE2ODM0MDcyNDgsMTMxNTU2MjE0NSwxMDgwMDk0NjM0LDEzODM4NTYzMTEsMTU1MTAzNzg4NCwxMDEwMzk4MjksMTM1MDUwMjA2LDQzNzc1NzEyMywzMzc1NTM4NjQsMTA0MjM4NTY1Nyw4MDc5NjI2MTAsNTczODA0NzgzLDc0MjAzOTAxMiwyNTMxMDY3NDUzLDI1NjQwMzMzMzQsMjMyODgyODk3MSwyMjI3NTczMDI0LDI5MzU1NjY4NjUsMjcwMDA5OTM1NCwzMDAxNzU1NjU1LDMxNjg5MzcyMjgsMzg2ODU1MjgwNSwzOTAyNTYzMTgyLDQyMDMxODExNzEsNDEwMjk3NzkxMiwzNzM2MTY0OTM3LDM1MDE3NDE4OTAsMzI2NTQ3ODc1MSwzNDMzNzEyOTgwLDExMDYwNDE1OTEsMTM0MDQ2MzEwMCwxNTc2OTc2NjA5LDE0MDg3NDkwMzQsMjA0MzIxMTQ4MywyMDA5MTk1NDcyLDE3MDg4NDgzMzMsMTgwOTA1NDE1MCw4MzI4NzcyMzEsMTA2ODM1MTM5Niw3NjY5NDU0NjUsNTk5NzYyMzU0LDE1OTQxNzk4NywxMjY0NTQ2NjQsMzYxOTI5ODc3LDQ2MzE4MDE5MCwyNzA5MjYwODcxLDI5NDM2ODIzODAsMzE3ODEwNjk2MSwzMDA5ODc5Mzg2LDI1NzI2OTcxOTUsMjUzODY4MTE4NCwyMjM2MjI4NzMzLDIzMzY0MzQ1NTAsMzUwOTg3MTEzNSwzNzQ1MzQ1MzAwLDM0NDE4NTAzNzcsMzI3NDY2NzI2NiwzOTEwMTYxOTcxLDM4NzcxOTg2NDgsNDExMDU2ODQ4NSw0MjExODE4Nzk4LDI1OTc4MDY0NzYsMjQ5NzYwNDc0MywyMjYxMDg5MTc4LDIyOTUxMDEwNzMsMjczMzg1NjE2MCwyOTAyMDg3ODUxLDMyMDI0MzcwNDYsMjk2ODAxMTQ1MywzOTM2MjkxMjg0LDM4MzUwMzY4OTUsNDEzNjQ0MDc3MCw0MTY5NDA4MjAxLDM1MzU0ODY0NTYsMzcwMjY2NTQ1OSwzNDY3MTkyMzAyLDMyMzE3MjIyMTMsMjA1MTUxODc4MCwxOTUxMzE3MDQ3LDE3MTY4OTA0MTAsMTc1MDkwMjMwNSwxMTEzODE4Mzg0LDEyODIwNTAwNzUsMTU4NDUwNDU4MiwxMzUwMDc4OTg5LDE2ODgxMDg1Miw2NzU1NjQ2MywzNzEwNDkzMzAsNDA0MDE2NzYxLDg0MTczOTU5MiwxMDA4OTE4NTk1LDc3NTU1MDgxNCw1NDAwODA3MjUsMzk2OTU2MjM2OSwzODAxMzMyMjM0LDQwMzU0ODkwNDcsNDI2OTkwNzk5NiwzNTY5MjU1MjEzLDM2Njk0NjI1NjYsMzM2Njc1NDYxOSwzMzMyNzQwMTQ0LDI2MzEwNjU0MzMsMjQ2Mzg3OTc2MiwyMTYwMTE3MDcxLDIzOTU1ODg2NzYsMjc2NzY0NTU1NywyODY4ODk3NDA2LDMxMDIwMTE3NDcsMzA2OTA0OTk2MCwyMDIwMDg0OTcsMzM3NzgzNjIsMjcwMDQwNDg3LDUwNDQ1OTQzNiw4NzU0NTEyOTMsOTc1NjU4NjQ2LDY3NTAzOTYyNyw2NDEwMjUxNTIsMjA4NDcwNDIzMywxOTE3NTE4NTYyLDE2MTU4NjEyNDcsMTg1MTMzMjg1MiwxMTQ3NTUwNjYxLDEyNDg4MDI1MTAsMTQ4NDAwNTg0MywxNDUxMDQ0MDU2LDkzMzMwMTM3MCw5NjczMTE3MjksNzMzMTU2OTcyLDYzMjk1MzcwMywyNjAzODg5NTAsMjU5NjU5MTcsMzI4NjcxODA4LDQ5NjkwNjA1OSwxMjA2NDc3ODU4LDEyMzk0NDM3NTMsMTU0MzIwODUwMCwxNDQxOTUyNTc1LDIxNDQxNjE4MDYsMTkwODY5NDI3NywxNjc1NTc3ODgwLDE4NDI3NTk0NDMsMzYxMDM2OTIyNiwzNjQ0Mzc5NTg1LDM0MDgxMTk1MTYsMzMwNzkxNjI0Nyw0MDExMTkwNTAyLDM3NzY3Njc0NjksNDA3NzM4NDQzMiw0MjQ1NjE4NjgzLDI4MDk3NzExNTQsMjg0MjczNzA0OSwzMTQ0Mzk2NDIwLDMwNDMxNDA0OTUsMjY3MzcwNTE1MCwyNDM4MjM3NjIxLDIyMDMwMzIyMzIsMjM3MDIxMzc5NV0pO19taXhDb2w9bmV3IFVpbnQ4QXJyYXkoMjU2KS5tYXAoKGUsdCk9PnQ8MTI4P3Q8PDE6dDw8MV4yNyk7Y29uc3RydWN0b3IoKXt0aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheSgxNik7dGhpcy5idWZmZXJQb3NpdGlvbj0wfV9leHBhbmRLZXkoZSl7dW5yZWFjaGFibGUoIkNhbm5vdCBjYWxsIGBfZXhwYW5kS2V5YCBvbiB0aGUgYmFzZSBjbGFzcyIpfV9kZWNyeXB0KGUsdCl7bGV0IG4sYSxzO2NvbnN0IHI9bmV3IFVpbnQ4QXJyYXkoMTYpO3Iuc2V0KGUpO2ZvcihsZXQgZT0wLG49dGhpcy5fa2V5U2l6ZTtlPDE2OysrZSwrK24pcltlXV49dFtuXTtmb3IobGV0IGU9dGhpcy5fY3ljbGVzT2ZSZXBldGl0aW9uLTE7ZT49MTstLWUpe249clsxM107clsxM109cls5XTtyWzldPXJbNV07cls1XT1yWzFdO3JbMV09bjtuPXJbMTRdO2E9clsxMF07clsxNF09cls2XTtyWzEwXT1yWzJdO3JbNl09bjtyWzJdPWE7bj1yWzE1XTthPXJbMTFdO3M9cls3XTtyWzE1XT1yWzNdO3JbMTFdPW47cls3XT1hO3JbM109cztmb3IobGV0IGU9MDtlPDE2OysrZSlyW2VdPXRoaXMuX2ludl9zW3JbZV1dO2ZvcihsZXQgbj0wLGE9MTYqZTtuPDE2OysrbiwrK2EpcltuXV49dFthXTtmb3IobGV0IGU9MDtlPDE2O2UrPTQpe2NvbnN0IHQ9dGhpcy5fbWl4W3JbZV1dLGE9dGhpcy5fbWl4W3JbZSsxXV0scz10aGlzLl9taXhbcltlKzJdXSxpPXRoaXMuX21peFtyW2UrM11dO249dF5hPj4+OF5hPDwyNF5zPj4+MTZeczw8MTZeaT4+PjI0Xmk8PDg7cltlXT1uPj4+MjQmMjU1O3JbZSsxXT1uPj4xNiYyNTU7cltlKzJdPW4+PjgmMjU1O3JbZSszXT0yNTUmbn19bj1yWzEzXTtyWzEzXT1yWzldO3JbOV09cls1XTtyWzVdPXJbMV07clsxXT1uO249clsxNF07YT1yWzEwXTtyWzE0XT1yWzZdO3JbMTBdPXJbMl07cls2XT1uO3JbMl09YTtuPXJbMTVdO2E9clsxMV07cz1yWzddO3JbMTVdPXJbM107clsxMV09bjtyWzddPWE7clszXT1zO2ZvcihsZXQgZT0wO2U8MTY7KytlKXtyW2VdPXRoaXMuX2ludl9zW3JbZV1dO3JbZV1ePXRbZV19cmV0dXJuIHJ9X2VuY3J5cHQoZSx0KXtjb25zdCBuPXRoaXMuX3M7bGV0IGEscyxyO2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkoMTYpO2kuc2V0KGUpO2ZvcihsZXQgZT0wO2U8MTY7KytlKWlbZV1ePXRbZV07Zm9yKGxldCBlPTE7ZTx0aGlzLl9jeWNsZXNPZlJlcGV0aXRpb247ZSsrKXtmb3IobGV0IGU9MDtlPDE2OysrZSlpW2VdPW5baVtlXV07cj1pWzFdO2lbMV09aVs1XTtpWzVdPWlbOV07aVs5XT1pWzEzXTtpWzEzXT1yO3I9aVsyXTtzPWlbNl07aVsyXT1pWzEwXTtpWzZdPWlbMTRdO2lbMTBdPXI7aVsxNF09cztyPWlbM107cz1pWzddO2E9aVsxMV07aVszXT1pWzE1XTtpWzddPXI7aVsxMV09cztpWzE1XT1hO2ZvcihsZXQgZT0wO2U8MTY7ZSs9NCl7Y29uc3QgdD1pW2VdLG49aVtlKzFdLHM9aVtlKzJdLHI9aVtlKzNdO2E9dF5uXnNecjtpW2VdXj1hXnRoaXMuX21peENvbFt0Xm5dO2lbZSsxXV49YV50aGlzLl9taXhDb2xbbl5zXTtpW2UrMl1ePWFedGhpcy5fbWl4Q29sW3Necl07aVtlKzNdXj1hXnRoaXMuX21peENvbFtyXnRdfWZvcihsZXQgbj0wLGE9MTYqZTtuPDE2OysrbiwrK2EpaVtuXV49dFthXX1mb3IobGV0IGU9MDtlPDE2OysrZSlpW2VdPW5baVtlXV07cj1pWzFdO2lbMV09aVs1XTtpWzVdPWlbOV07aVs5XT1pWzEzXTtpWzEzXT1yO3I9aVsyXTtzPWlbNl07aVsyXT1pWzEwXTtpWzZdPWlbMTRdO2lbMTBdPXI7aVsxNF09cztyPWlbM107cz1pWzddO2E9aVsxMV07aVszXT1pWzE1XTtpWzddPXI7aVsxMV09cztpWzE1XT1hO2ZvcihsZXQgZT0wLG49dGhpcy5fa2V5U2l6ZTtlPDE2OysrZSwrK24paVtlXV49dFtuXTtyZXR1cm4gaX1fZGVjcnlwdEJsb2NrMihlLHQpe2NvbnN0IG49ZS5sZW5ndGg7bGV0IGE9dGhpcy5idWZmZXIscz10aGlzLmJ1ZmZlclBvc2l0aW9uO2NvbnN0IHI9W107bGV0IGk9dGhpcy5pdjtmb3IobGV0IHQ9MDt0PG47Kyt0KXthW3NdPWVbdF07KytzO2lmKHM8MTYpY29udGludWU7Y29uc3Qgbj10aGlzLl9kZWNyeXB0KGEsdGhpcy5fa2V5KTtmb3IobGV0IGU9MDtlPDE2OysrZSluW2VdXj1pW2VdO2k9YTtyLnB1c2gobik7YT1uZXcgVWludDhBcnJheSgxNik7cz0wfXRoaXMuYnVmZmVyPWE7dGhpcy5idWZmZXJMZW5ndGg9czt0aGlzLml2PWk7aWYoMD09PXIubGVuZ3RoKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtsZXQgbz0xNipyLmxlbmd0aDtpZih0KXtjb25zdCBlPXIuYXQoLTEpO2xldCB0PWVbMTVdO2lmKHQ8PTE2KXtmb3IobGV0IG49MTUsYT0xNi10O24+PWE7LS1uKWlmKGVbbl0hPT10KXt0PTA7YnJlYWt9by09dDtyW3IubGVuZ3RoLTFdPWUuc3ViYXJyYXkoMCwxNi10KX19Y29uc3QgbD1uZXcgVWludDhBcnJheShvKTtmb3IobGV0IGU9MCx0PTAsbj1yLmxlbmd0aDtlPG47KytlLHQrPTE2KWwuc2V0KHJbZV0sdCk7cmV0dXJuIGx9ZGVjcnlwdEJsb2NrKGUsdCxuPW51bGwpe2NvbnN0IGE9ZS5sZW5ndGgscz10aGlzLmJ1ZmZlcjtsZXQgcj10aGlzLmJ1ZmZlclBvc2l0aW9uO2lmKG4pdGhpcy5pdj1uO2Vsc2V7Zm9yKGxldCB0PTA7cjwxNiYmdDxhOysrdCwrK3Ipc1tyXT1lW3RdO2lmKHI8MTYpe3RoaXMuYnVmZmVyTGVuZ3RoPXI7cmV0dXJuIG5ldyBVaW50OEFycmF5KDApfXRoaXMuaXY9cztlPWUuc3ViYXJyYXkoMTYpfXRoaXMuYnVmZmVyPW5ldyBVaW50OEFycmF5KDE2KTt0aGlzLmJ1ZmZlckxlbmd0aD0wO3RoaXMuZGVjcnlwdEJsb2NrPXRoaXMuX2RlY3J5cHRCbG9jazI7cmV0dXJuIHRoaXMuZGVjcnlwdEJsb2NrKGUsdCl9ZW5jcnlwdChlLHQpe2NvbnN0IG49ZS5sZW5ndGg7bGV0IGE9dGhpcy5idWZmZXIscz10aGlzLmJ1ZmZlclBvc2l0aW9uO2NvbnN0IHI9W107dHx8PW5ldyBVaW50OEFycmF5KDE2KTtmb3IobGV0IGk9MDtpPG47KytpKXthW3NdPWVbaV07KytzO2lmKHM8MTYpY29udGludWU7Zm9yKGxldCBlPTA7ZTwxNjsrK2UpYVtlXV49dFtlXTtjb25zdCBuPXRoaXMuX2VuY3J5cHQoYSx0aGlzLl9rZXkpO3Q9bjtyLnB1c2gobik7YT1uZXcgVWludDhBcnJheSgxNik7cz0wfXRoaXMuYnVmZmVyPWE7dGhpcy5idWZmZXJMZW5ndGg9czt0aGlzLml2PXQ7aWYoMD09PXIubGVuZ3RoKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtjb25zdCBpPTE2KnIubGVuZ3RoLG89bmV3IFVpbnQ4QXJyYXkoaSk7Zm9yKGxldCBlPTAsdD0wLG49ci5sZW5ndGg7ZTxuOysrZSx0Kz0xNilvLnNldChyW2VdLHQpO3JldHVybiBvfX1jbGFzcyBBRVMxMjhDaXBoZXIgZXh0ZW5kcyBBRVNCYXNlQ2lwaGVye19yY29uPW5ldyBVaW50OEFycmF5KFsxNDEsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTQsMTA4LDIxNiwxNzEsNzcsMTU0LDQ3LDk0LDE4OCw5OSwxOTgsMTUxLDUzLDEwNiwyMTIsMTc5LDEyNSwyNTAsMjM5LDE5NywxNDUsNTcsMTE0LDIyOCwyMTEsMTg5LDk3LDE5NCwxNTksMzcsNzQsMTQ4LDUxLDEwMiwyMDQsMTMxLDI5LDU4LDExNiwyMzIsMjAzLDE0MSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NCwxMDgsMjE2LDE3MSw3NywxNTQsNDcsOTQsMTg4LDk5LDE5OCwxNTEsNTMsMTA2LDIxMiwxNzksMTI1LDI1MCwyMzksMTk3LDE0NSw1NywxMTQsMjI4LDIxMSwxODksOTcsMTk0LDE1OSwzNyw3NCwxNDgsNTEsMTAyLDIwNCwxMzEsMjksNTgsMTE2LDIzMiwyMDMsMTQxLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0LDEwOCwyMTYsMTcxLDc3LDE1NCw0Nyw5NCwxODgsOTksMTk4LDE1MSw1MywxMDYsMjEyLDE3OSwxMjUsMjUwLDIzOSwxOTcsMTQ1LDU3LDExNCwyMjgsMjExLDE4OSw5NywxOTQsMTU5LDM3LDc0LDE0OCw1MSwxMDIsMjA0LDEzMSwyOSw1OCwxMTYsMjMyLDIwMywxNDEsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTQsMTA4LDIxNiwxNzEsNzcsMTU0LDQ3LDk0LDE4OCw5OSwxOTgsMTUxLDUzLDEwNiwyMTIsMTc5LDEyNSwyNTAsMjM5LDE5NywxNDUsNTcsMTE0LDIyOCwyMTEsMTg5LDk3LDE5NCwxNTksMzcsNzQsMTQ4LDUxLDEwMiwyMDQsMTMxLDI5LDU4LDExNiwyMzIsMjAzLDE0MSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NCwxMDgsMjE2LDE3MSw3NywxNTQsNDcsOTQsMTg4LDk5LDE5OCwxNTEsNTMsMTA2LDIxMiwxNzksMTI1LDI1MCwyMzksMTk3LDE0NSw1NywxMTQsMjI4LDIxMSwxODksOTcsMTk0LDE1OSwzNyw3NCwxNDgsNTEsMTAyLDIwNCwxMzEsMjksNTgsMTE2LDIzMiwyMDMsMTQxXSk7Y29uc3RydWN0b3IoZSl7c3VwZXIoKTt0aGlzLl9jeWNsZXNPZlJlcGV0aXRpb249MTA7dGhpcy5fa2V5U2l6ZT0xNjA7dGhpcy5fa2V5PXRoaXMuX2V4cGFuZEtleShlKX1fZXhwYW5kS2V5KGUpe2NvbnN0IHQ9dGhpcy5fcyxuPXRoaXMuX3Jjb24sYT1uZXcgVWludDhBcnJheSgxNzYpO2Euc2V0KGUpO2ZvcihsZXQgZT0xNixzPTE7ZTwxNzY7KytzKXtsZXQgcj1hW2UtM10saT1hW2UtMl0sbz1hW2UtMV0sbD1hW2UtNF07cj10W3JdO2k9dFtpXTtvPXRbb107bD10W2xdO3JePW5bc107Zm9yKGxldCB0PTA7dDw0OysrdCl7YVtlXT1yXj1hW2UtMTZdO2UrKzthW2VdPWlePWFbZS0xNl07ZSsrO2FbZV09b149YVtlLTE2XTtlKys7YVtlXT1sXj1hW2UtMTZdO2UrK319cmV0dXJuIGF9fWNsYXNzIEFFUzI1NkNpcGhlciBleHRlbmRzIEFFU0Jhc2VDaXBoZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKTt0aGlzLl9jeWNsZXNPZlJlcGV0aXRpb249MTQ7dGhpcy5fa2V5U2l6ZT0yMjQ7dGhpcy5fa2V5PXRoaXMuX2V4cGFuZEtleShlKX1fZXhwYW5kS2V5KGUpe2NvbnN0IHQ9dGhpcy5fcyxuPW5ldyBVaW50OEFycmF5KDI0MCk7bi5zZXQoZSk7bGV0IGEscyxyLGksbz0xO2ZvcihsZXQgZT0zMixsPTE7ZTwyNDA7KytsKXtpZihlJTMyPT0xNil7YT10W2FdO3M9dFtzXTtyPXRbcl07aT10W2ldfWVsc2UgaWYoZSUzMj09MCl7YT1uW2UtM107cz1uW2UtMl07cj1uW2UtMV07aT1uW2UtNF07YT10W2FdO3M9dFtzXTtyPXRbcl07aT10W2ldO2FePW87KG88PD0xKT49MjU2JiYobz0yNTUmKDI3Xm8pKX1mb3IobGV0IHQ9MDt0PDQ7Kyt0KXtuW2VdPWFePW5bZS0zMl07ZSsrO25bZV09c149bltlLTMyXTtlKys7bltlXT1yXj1uW2UtMzJdO2UrKztuW2VdPWlePW5bZS0zMl07ZSsrfX1yZXR1cm4gbn19Y2xhc3MgUERGQmFzZXtfaGFzaChlLHQsbil7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgX2hhc2hgIGNhbGxlZCIpfWNoZWNrT3duZXJQYXNzd29yZChlLHQsbixhKXtjb25zdCBzPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKzU2KTtzLnNldChlLDApO3Muc2V0KHQsZS5sZW5ndGgpO3Muc2V0KG4sZS5sZW5ndGgrdC5sZW5ndGgpO3JldHVybiBpc0FycmF5RXF1YWwodGhpcy5faGFzaChlLHMsbiksYSl9Y2hlY2tVc2VyUGFzc3dvcmQoZSx0LG4pe2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgrOCk7YS5zZXQoZSwwKTthLnNldCh0LGUubGVuZ3RoKTtyZXR1cm4gaXNBcnJheUVxdWFsKHRoaXMuX2hhc2goZSxhLFtdKSxuKX1nZXRPd25lcktleShlLHQsbixhKXtjb25zdCBzPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKzU2KTtzLnNldChlLDApO3Muc2V0KHQsZS5sZW5ndGgpO3Muc2V0KG4sZS5sZW5ndGgrdC5sZW5ndGgpO2NvbnN0IHI9dGhpcy5faGFzaChlLHMsbik7cmV0dXJuIG5ldyBBRVMyNTZDaXBoZXIocikuZGVjcnlwdEJsb2NrKGEsITEsbmV3IFVpbnQ4QXJyYXkoMTYpKX1nZXRVc2VyS2V5KGUsdCxuKXtjb25zdCBhPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKzgpO2Euc2V0KGUsMCk7YS5zZXQodCxlLmxlbmd0aCk7Y29uc3Qgcz10aGlzLl9oYXNoKGUsYSxbXSk7cmV0dXJuIG5ldyBBRVMyNTZDaXBoZXIocykuZGVjcnlwdEJsb2NrKG4sITEsbmV3IFVpbnQ4QXJyYXkoMTYpKX19Y2xhc3MgUERGMTcgZXh0ZW5kcyBQREZCYXNle19oYXNoKGUsdCxuKXtyZXR1cm4gY2FsY3VsYXRlU0hBMjU2KHQsMCx0Lmxlbmd0aCl9fWNsYXNzIFBERjIwIGV4dGVuZHMgUERGQmFzZXtfaGFzaChlLHQsbil7bGV0IGE9Y2FsY3VsYXRlU0hBMjU2KHQsMCx0Lmxlbmd0aCkuc3ViYXJyYXkoMCwzMikscz1bMF0scj0wO2Zvcig7cjw2NHx8cy5hdCgtMSk+ci0zMjspe2NvbnN0IHQ9ZS5sZW5ndGgrYS5sZW5ndGgrbi5sZW5ndGgsaT1uZXcgVWludDhBcnJheSh0KTtsZXQgbz0wO2kuc2V0KGUsbyk7bys9ZS5sZW5ndGg7aS5zZXQoYSxvKTtvKz1hLmxlbmd0aDtpLnNldChuLG8pO2NvbnN0IGw9bmV3IFVpbnQ4QXJyYXkoNjQqdCk7Zm9yKGxldCBlPTAsbj0wO2U8NjQ7ZSsrLG4rPXQpbC5zZXQoaSxuKTtzPW5ldyBBRVMxMjhDaXBoZXIoYS5zdWJhcnJheSgwLDE2KSkuZW5jcnlwdChsLGEuc3ViYXJyYXkoMTYsMzIpKTtjb25zdCBmPU1hdGguc3VtUHJlY2lzZShzLnNsaWNlKDAsMTYpKSUzOzA9PT1mP2E9Y2FsY3VsYXRlU0hBMjU2KHMsMCxzLmxlbmd0aCk6MT09PWY/YT1jYWxjdWxhdGVTSEEzODQocywwLHMubGVuZ3RoKToyPT09ZiYmKGE9Y2FsY3VsYXRlU0hBNTEyKHMsMCxzLmxlbmd0aCkpO3IrK31yZXR1cm4gYS5zdWJhcnJheSgwLDMyKX19Y2xhc3MgQ2lwaGVyVHJhbnNmb3Jte2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5TdHJpbmdDaXBoZXJDb25zdHJ1Y3Rvcj1lO3RoaXMuU3RyZWFtQ2lwaGVyQ29uc3RydWN0b3I9dH1jcmVhdGVTdHJlYW0oZSx0KXtjb25zdCBuPW5ldyB0aGlzLlN0cmVhbUNpcGhlckNvbnN0cnVjdG9yO3JldHVybiBuZXcgRGVjcnlwdFN0cmVhbShlLHQsZnVuY3Rpb24gY2lwaGVyVHJhbnNmb3JtRGVjcnlwdFN0cmVhbShlLHQpe3JldHVybiBuLmRlY3J5cHRCbG9jayhlLHQpfSl9ZGVjcnlwdFN0cmluZyhlKXtjb25zdCB0PW5ldyB0aGlzLlN0cmluZ0NpcGhlckNvbnN0cnVjdG9yO2xldCBuPXN0cmluZ1RvQnl0ZXMoZSk7bj10LmRlY3J5cHRCbG9jayhuLCEwKTtyZXR1cm4gYnl0ZXNUb1N0cmluZyhuKX1lbmNyeXB0U3RyaW5nKGUpe2NvbnN0IHQ9bmV3IHRoaXMuU3RyaW5nQ2lwaGVyQ29uc3RydWN0b3I7aWYodCBpbnN0YW5jZW9mIEFFU0Jhc2VDaXBoZXIpe2NvbnN0IG49MTYtZS5sZW5ndGglMTY7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShuKS5yZXBlYXQobik7Y29uc3QgYT1uZXcgVWludDhBcnJheSgxNik7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhKTtsZXQgcz1zdHJpbmdUb0J5dGVzKGUpO3M9dC5lbmNyeXB0KHMsYSk7Y29uc3Qgcj1uZXcgVWludDhBcnJheSgxNitzLmxlbmd0aCk7ci5zZXQoYSk7ci5zZXQocywxNik7cmV0dXJuIGJ5dGVzVG9TdHJpbmcocil9bGV0IG49c3RyaW5nVG9CeXRlcyhlKTtuPXQuZW5jcnlwdChuKTtyZXR1cm4gYnl0ZXNUb1N0cmluZyhuKX19Y2xhc3MgQ2lwaGVyVHJhbnNmb3JtRmFjdG9yeXtzdGF0aWMgZ2V0IF9kZWZhdWx0UGFzc3dvcmRCeXRlcygpe3JldHVybiBzaGFkb3codGhpcywiX2RlZmF1bHRQYXNzd29yZEJ5dGVzIixuZXcgVWludDhBcnJheShbNDAsMTkxLDc4LDk0LDc4LDExNywxMzgsNjUsMTAwLDAsNzgsODYsMjU1LDI1MCwxLDgsNDYsNDYsMCwxODIsMjA4LDEwNCw2MiwxMjgsNDcsMTIsMTY5LDI1NCwxMDAsODMsMTA1LDEyMl0pKX0jUWUoZSx0LG4sYSxzLHIsaSxvLGwsZixjLGgpe2lmKHQpe2NvbnN0IGU9TWF0aC5taW4oMTI3LHQubGVuZ3RoKTt0PXQuc3ViYXJyYXkoMCxlKX1lbHNlIHQ9W107Y29uc3QgdT02PT09ZT9uZXcgUERGMjA6bmV3IFBERjE3O3JldHVybiB1LmNoZWNrVXNlclBhc3N3b3JkKHQsbyxpKT91LmdldFVzZXJLZXkodCxsLGMpOnQubGVuZ3RoJiZ1LmNoZWNrT3duZXJQYXNzd29yZCh0LGEscixuKT91LmdldE93bmVyS2V5KHQscyxyLGYpOm51bGx9I1plKGUsdCxuLGEscyxyLGksbyl7Y29uc3QgbD00MCtuLmxlbmd0aCtlLmxlbmd0aCxmPW5ldyBVaW50OEFycmF5KGwpO2xldCBjLGgsdT0wO2lmKHQpe2g9TWF0aC5taW4oMzIsdC5sZW5ndGgpO2Zvcig7dTxoOysrdSlmW3VdPXRbdV19Yz0wO2Zvcig7dTwzMjspZlt1KytdPUNpcGhlclRyYW5zZm9ybUZhY3RvcnkuX2RlZmF1bHRQYXNzd29yZEJ5dGVzW2MrK107Zi5zZXQobix1KTt1Kz1uLmxlbmd0aDtmW3UrK109MjU1JnM7Zlt1KytdPXM+PjgmMjU1O2ZbdSsrXT1zPj4xNiYyNTU7Zlt1KytdPXM+Pj4yNCYyNTU7Zi5zZXQoZSx1KTt1Kz1lLmxlbmd0aDtpZihyPj00JiYhbyl7Zi5maWxsKDI1NSx1LHUrNCk7dSs9NH1sZXQgbT1jYWxjdWxhdGVNRDUoZiwwLHUpO2NvbnN0IHA9aT4+MztpZihyPj0zKWZvcihjPTA7Yzw1MDsrK2MpbT1jYWxjdWxhdGVNRDUobSwwLHApO2NvbnN0IGQ9bS5zdWJhcnJheSgwLHApO2xldCBnLGI7aWYocj49Myl7dT0wO2Yuc2V0KENpcGhlclRyYW5zZm9ybUZhY3RvcnkuX2RlZmF1bHRQYXNzd29yZEJ5dGVzLHUpO3UrPTMyO2Yuc2V0KGUsdSk7dSs9ZS5sZW5ndGg7Zz1uZXcgQVJDRm91ckNpcGhlcihkKTtiPWcuZW5jcnlwdEJsb2NrKGNhbGN1bGF0ZU1ENShmLDAsdSkpO2g9ZC5sZW5ndGg7Y29uc3QgdD1uZXcgVWludDhBcnJheShoKTtmb3IoYz0xO2M8PTE5OysrYyl7Zm9yKGxldCBlPTA7ZTxoOysrZSl0W2VdPWRbZV1eYztnPW5ldyBBUkNGb3VyQ2lwaGVyKHQpO2I9Zy5lbmNyeXB0QmxvY2soYil9fWVsc2V7Zz1uZXcgQVJDRm91ckNpcGhlcihkKTtiPWcuZW5jcnlwdEJsb2NrKENpcGhlclRyYW5zZm9ybUZhY3RvcnkuX2RlZmF1bHRQYXNzd29yZEJ5dGVzKX1yZXR1cm4gYi5ldmVyeSgoZSx0KT0+YVt0XT09PWUpP2Q6bnVsbH0jZXQoZSx0LG4sYSl7Y29uc3Qgcz1uZXcgVWludDhBcnJheSgzMik7bGV0IHI9MDtjb25zdCBpPU1hdGgubWluKDMyLGUubGVuZ3RoKTtmb3IoO3I8aTsrK3Ipc1tyXT1lW3JdO2xldCBvPTA7Zm9yKDtyPDMyOylzW3IrK109Q2lwaGVyVHJhbnNmb3JtRmFjdG9yeS5fZGVmYXVsdFBhc3N3b3JkQnl0ZXNbbysrXTtsZXQgbD1jYWxjdWxhdGVNRDUocywwLHIpO2NvbnN0IGY9YT4+MztpZihuPj0zKWZvcihvPTA7bzw1MDsrK28pbD1jYWxjdWxhdGVNRDUobCwwLGwubGVuZ3RoKTtsZXQgYyxoO2lmKG4+PTMpe2g9dDtjb25zdCBlPW5ldyBVaW50OEFycmF5KGYpO2ZvcihvPTE5O28+PTA7by0tKXtmb3IobGV0IHQ9MDt0PGY7Kyt0KWVbdF09bFt0XV5vO2M9bmV3IEFSQ0ZvdXJDaXBoZXIoZSk7aD1jLmVuY3J5cHRCbG9jayhoKX19ZWxzZXtjPW5ldyBBUkNGb3VyQ2lwaGVyKGwuc3ViYXJyYXkoMCxmKSk7aD1jLmVuY3J5cHRCbG9jayh0KX1yZXR1cm4gaH0jdHQoZSx0LG4sYT0hMSl7Y29uc3Qgcz1uLmxlbmd0aCxyPW5ldyBVaW50OEFycmF5KHMrOSk7ci5zZXQobik7bGV0IGk9cztyW2krK109MjU1JmU7cltpKytdPWU+PjgmMjU1O3JbaSsrXT1lPj4xNiYyNTU7cltpKytdPTI1NSZ0O3JbaSsrXT10Pj44JjI1NTtpZihhKXtyW2krK109MTE1O3JbaSsrXT02NTtyW2krK109MTA4O3JbaSsrXT04NH1yZXR1cm4gY2FsY3VsYXRlTUQ1KHIsMCxpKS5zdWJhcnJheSgwLE1hdGgubWluKHMrNSwxNikpfSNudChlLHQsbixhLHMpe2lmKCEodCBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBjcnlwdCBmaWx0ZXIgbmFtZS4iKTtjb25zdCByPXRoaXMsaT1lLmdldCh0Lm5hbWUpLG89aT8uZ2V0KCJDRk0iKTtpZighb3x8Ik5vbmUiPT09by5uYW1lKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgTnVsbENpcGhlcn07aWYoIlYyIj09PW8ubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFSQ0ZvdXJDaXBoZXIoci4jdHQobixhLHMsITEpKX07aWYoIkFFU1YyIj09PW8ubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFFUzEyOENpcGhlcihyLiN0dChuLGEscywhMCkpfTtpZigiQUVTVjMiPT09by5uYW1lKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgQUVTMjU2Q2lwaGVyKHMpfTt0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gY3J5cHRvIG1ldGhvZCIpfWNvbnN0cnVjdG9yKGUsdCxuKXtjb25zdCBhPWUuZ2V0KCJGaWx0ZXIiKTtpZighaXNOYW1lKGEsIlN0YW5kYXJkIikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJ1bmtub3duIGVuY3J5cHRpb24gbWV0aG9kIik7dGhpcy5maWx0ZXJOYW1lPWEubmFtZTt0aGlzLmRpY3Q9ZTtjb25zdCBzPWUuZ2V0KCJWIik7aWYoIU51bWJlci5pc0ludGVnZXIocyl8fDEhPT1zJiYyIT09cyYmNCE9PXMmJjUhPT1zKXRocm93IG5ldyBGb3JtYXRFcnJvcigidW5zdXBwb3J0ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG0iKTt0aGlzLmFsZ29yaXRobT1zO2xldCByPWUuZ2V0KCJMZW5ndGgiKTtpZighcilpZihzPD0zKXI9NDA7ZWxzZXtjb25zdCB0PWUuZ2V0KCJDRiIpLG49ZS5nZXQoIlN0bUYiKTtpZih0IGluc3RhbmNlb2YgRGljdCYmbiBpbnN0YW5jZW9mIE5hbWUpe3Quc3VwcHJlc3NFbmNyeXB0aW9uPSEwO2NvbnN0IGU9dC5nZXQobi5uYW1lKTtyPWU/LmdldCgiTGVuZ3RoIil8fDEyODtyPDQwJiYocjw8PTMpfX1pZighTnVtYmVyLmlzSW50ZWdlcihyKXx8cjw0MHx8ciU4IT0wKXRocm93IG5ldyBGb3JtYXRFcnJvcigiaW52YWxpZCBrZXkgbGVuZ3RoIik7Y29uc3QgaT1zdHJpbmdUb0J5dGVzKGUuZ2V0KCJPIikpLG89c3RyaW5nVG9CeXRlcyhlLmdldCgiVSIpKSxsPWkuc3ViYXJyYXkoMCwzMiksZj1vLnN1YmFycmF5KDAsMzIpLGM9ZS5nZXQoIlAiKSxoPWUuZ2V0KCJSIiksdT0oND09PXN8fDU9PT1zKSYmITEhPT1lLmdldCgiRW5jcnlwdE1ldGFkYXRhIik7dGhpcy5lbmNyeXB0TWV0YWRhdGE9dTtjb25zdCBtPXN0cmluZ1RvQnl0ZXModCk7bGV0IHAsZDtpZihuKXtpZig2PT09aCl0cnl7bj11dGY4U3RyaW5nVG9TdHJpbmcobil9Y2F0Y2h7d2FybigiQ2lwaGVyVHJhbnNmb3JtRmFjdG9yeTogVW5hYmxlIHRvIGNvbnZlcnQgVVRGOCBlbmNvZGVkIHBhc3N3b3JkLiIpfXA9c3RyaW5nVG9CeXRlcyhuKX1pZig1IT09cylkPXRoaXMuI1plKG0scCxsLGYsYyxoLHIsdSk7ZWxzZXtjb25zdCB0PWkuc3ViYXJyYXkoMzIsNDApLG49aS5zdWJhcnJheSg0MCw0OCksYT1vLnN1YmFycmF5KDAsNDgpLHM9by5zdWJhcnJheSgzMiw0MCkscj1vLnN1YmFycmF5KDQwLDQ4KSxjPXN0cmluZ1RvQnl0ZXMoZS5nZXQoIk9FIikpLHU9c3RyaW5nVG9CeXRlcyhlLmdldCgiVUUiKSksbT1zdHJpbmdUb0J5dGVzKGUuZ2V0KCJQZXJtcyIpKTtkPXRoaXMuI1FlKGgscCxsLHQsbixhLGYscyxyLGMsdSxtKX1pZighZCl7aWYoIW4pdGhyb3cgbmV3IFBhc3N3b3JkRXhjZXB0aW9uKCJObyBwYXNzd29yZCBnaXZlbiIsSnQpO2NvbnN0IGU9dGhpcy4jZXQocCxsLGgscik7ZD10aGlzLiNaZShtLGUsbCxmLGMsaCxyLHUpfWlmKCFkKXRocm93IG5ldyBQYXNzd29yZEV4Y2VwdGlvbigiSW5jb3JyZWN0IFBhc3N3b3JkIixRdCk7aWYoND09PXMmJmQubGVuZ3RoPDE2KXt0aGlzLmVuY3J5cHRpb25LZXk9bmV3IFVpbnQ4QXJyYXkoMTYpO3RoaXMuZW5jcnlwdGlvbktleS5zZXQoZCl9ZWxzZSB0aGlzLmVuY3J5cHRpb25LZXk9ZDtpZihzPj00KXtjb25zdCB0PWUuZ2V0KCJDRiIpO3QgaW5zdGFuY2VvZiBEaWN0JiYodC5zdXBwcmVzc0VuY3J5cHRpb249ITApO3RoaXMuY2Y9dDt0aGlzLnN0bWY9ZS5nZXQoIlN0bUYiKXx8TmFtZS5nZXQoIklkZW50aXR5Iik7dGhpcy5zdHJmPWUuZ2V0KCJTdHJGIil8fE5hbWUuZ2V0KCJJZGVudGl0eSIpO3RoaXMuZWZmPWUuZ2V0KCJFRkYiKXx8dGhpcy5zdG1mfX1jcmVhdGVDaXBoZXJUcmFuc2Zvcm0oZSx0KXtpZig0PT09dGhpcy5hbGdvcml0aG18fDU9PT10aGlzLmFsZ29yaXRobSlyZXR1cm4gbmV3IENpcGhlclRyYW5zZm9ybSh0aGlzLiNudCh0aGlzLmNmLHRoaXMuc3RyZixlLHQsdGhpcy5lbmNyeXB0aW9uS2V5KSx0aGlzLiNudCh0aGlzLmNmLHRoaXMuc3RtZixlLHQsdGhpcy5lbmNyeXB0aW9uS2V5KSk7Y29uc3Qgbj10aGlzLiN0dChlLHQsdGhpcy5lbmNyeXB0aW9uS2V5LCExKSxjaXBoZXJDb25zdHJ1Y3Rvcj1mdW5jdGlvbigpe3JldHVybiBuZXcgQVJDRm91ckNpcGhlcihuKX07cmV0dXJuIG5ldyBDaXBoZXJUcmFuc2Zvcm0oY2lwaGVyQ29uc3RydWN0b3IsY2lwaGVyQ29uc3RydWN0b3IpfX1jbGFzcyBYUmVme2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdHJlYW09ZTt0aGlzLnBkZk1hbmFnZXI9dDt0aGlzLmVudHJpZXM9W107dGhpcy5feHJlZlN0bXM9bmV3IFNldDt0aGlzLl9jYWNoZU1hcD1uZXcgTWFwO3RoaXMuX3BlbmRpbmdSZWZzPW5ldyBSZWZTZXQ7dGhpcy5fbmV3UGVyc2lzdGVudFJlZk51bT1udWxsO3RoaXMuX25ld1RlbXBvcmFyeVJlZk51bT1udWxsO3RoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGU9bnVsbH1nZXROZXdQZXJzaXN0ZW50UmVmKGUpe251bGw9PT10aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtJiYodGhpcy5fbmV3UGVyc2lzdGVudFJlZk51bT10aGlzLmVudHJpZXMubGVuZ3RofHwxKTtjb25zdCB0PXRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW0rKzt0aGlzLl9jYWNoZU1hcC5zZXQodCxlKTtyZXR1cm4gUmVmLmdldCh0LDApfWdldE5ld1RlbXBvcmFyeVJlZigpe2lmKG51bGw9PT10aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW0pe3RoaXMuX25ld1RlbXBvcmFyeVJlZk51bT10aGlzLmVudHJpZXMubGVuZ3RofHwxO2lmKHRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW0pe3RoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGU9bmV3IE1hcDtmb3IobGV0IGU9dGhpcy5fbmV3VGVtcG9yYXJ5UmVmTnVtO2U8dGhpcy5fbmV3UGVyc2lzdGVudFJlZk51bTtlKyspe3RoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGUuc2V0KGUsdGhpcy5fY2FjaGVNYXAuZ2V0KGUpKTt0aGlzLl9jYWNoZU1hcC5kZWxldGUoZSl9fX1yZXR1cm4gUmVmLmdldCh0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW0rKywwKX1yZXNldE5ld1RlbXBvcmFyeVJlZigpe3RoaXMuX25ld1RlbXBvcmFyeVJlZk51bT1udWxsO2lmKHRoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGUpZm9yKGNvbnN0W2UsdF1vZiB0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlKXRoaXMuX2NhY2hlTWFwLnNldChlLHQpO3RoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGU9bnVsbH1zZXRTdGFydFhSZWYoZSl7dGhpcy5zdGFydFhSZWZRdWV1ZT1bZV19cGFyc2UoZT0hMSl7bGV0IHQsbixhO2lmKGUpe3dhcm4oIkluZGV4aW5nIGFsbCBQREYgb2JqZWN0cyIpO3Q9dGhpcy5pbmRleE9iamVjdHMoKX1lbHNlIHQ9dGhpcy5yZWFkWFJlZigpO3QuYXNzaWduWHJlZih0aGlzKTt0aGlzLnRyYWlsZXI9dDt0cnl7bj10LmdldCgiRW5jcnlwdCIpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oYFhSZWYucGFyc2UgLSBJbnZhbGlkICJFbmNyeXB0IiByZWZlcmVuY2U6ICIke2V9Ii5gKX1pZihuIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT10LmdldCgiSUQiKSxhPWU/Lmxlbmd0aD9lWzBdOiIiO24uc3VwcHJlc3NFbmNyeXB0aW9uPSEwO3RoaXMuZW5jcnlwdD1uZXcgQ2lwaGVyVHJhbnNmb3JtRmFjdG9yeShuLGEsdGhpcy5wZGZNYW5hZ2VyLnBhc3N3b3JkKX10cnl7YT10LmdldCgiUm9vdCIpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oYFhSZWYucGFyc2UgLSBJbnZhbGlkICJSb290IiByZWZlcmVuY2U6ICIke2V9Ii5gKX1pZihhIGluc3RhbmNlb2YgRGljdCl0cnl7aWYoYS5nZXQoIlBhZ2VzIilpbnN0YW5jZW9mIERpY3Qpe3RoaXMucm9vdD1hO3JldHVybn19Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybihgWFJlZi5wYXJzZSAtIEludmFsaWQgIlBhZ2VzIiByZWZlcmVuY2U6ICIke2V9Ii5gKX1pZighZSl0aHJvdyBuZXcgWFJlZlBhcnNlRXhjZXB0aW9uO3Rocm93IG5ldyBJbnZhbGlkUERGRXhjZXB0aW9uKCJJbnZhbGlkIFJvb3QgcmVmZXJlbmNlLiIpfXByb2Nlc3NYUmVmVGFibGUoZSl7InRhYmxlU3RhdGUiaW4gdGhpc3x8KHRoaXMudGFibGVTdGF0ZT17ZW50cnlOdW06MCxzdHJlYW1Qb3M6ZS5sZXhlci5zdHJlYW0ucG9zLHBhcnNlckJ1ZjE6ZS5idWYxLHBhcnNlckJ1ZjI6ZS5idWYyfSk7aWYoIWlzQ21kKHRoaXMucmVhZFhSZWZUYWJsZShlKSwidHJhaWxlciIpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBYUmVmIHRhYmxlOiBjb3VsZCBub3QgZmluZCB0cmFpbGVyIGRpY3Rpb25hcnkiKTtsZXQgdD1lLmdldE9iaigpO3QgaW5zdGFuY2VvZiBEaWN0fHwhdC5kaWN0fHwodD10LmRpY3QpO2lmKCEodCBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBYUmVmIHRhYmxlOiBjb3VsZCBub3QgcGFyc2UgdHJhaWxlciBkaWN0aW9uYXJ5Iik7ZGVsZXRlIHRoaXMudGFibGVTdGF0ZTtyZXR1cm4gdH1yZWFkWFJlZlRhYmxlKGUpe2NvbnN0IHQ9ZS5sZXhlci5zdHJlYW0sbj10aGlzLnRhYmxlU3RhdGU7dC5wb3M9bi5zdHJlYW1Qb3M7ZS5idWYxPW4ucGFyc2VyQnVmMTtlLmJ1ZjI9bi5wYXJzZXJCdWYyO2xldCBhO2Zvcig7Oyl7aWYoISgiZmlyc3RFbnRyeU51bSJpbiBuKXx8ISgiZW50cnlDb3VudCJpbiBuKSl7aWYoaXNDbWQoYT1lLmdldE9iaigpLCJ0cmFpbGVyIikpYnJlYWs7bi5maXJzdEVudHJ5TnVtPWE7bi5lbnRyeUNvdW50PWUuZ2V0T2JqKCl9bGV0IHM9bi5maXJzdEVudHJ5TnVtO2NvbnN0IHI9bi5lbnRyeUNvdW50O2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHMpfHwhTnVtYmVyLmlzSW50ZWdlcihyKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiB0YWJsZTogd3JvbmcgdHlwZXMgaW4gc3Vic2VjdGlvbiBoZWFkZXIiKTtmb3IobGV0IGE9bi5lbnRyeU51bTthPHI7YSsrKXtuLnN0cmVhbVBvcz10LnBvcztuLmVudHJ5TnVtPWE7bi5wYXJzZXJCdWYxPWUuYnVmMTtuLnBhcnNlckJ1ZjI9ZS5idWYyO2NvbnN0IGk9e307aS5vZmZzZXQ9ZS5nZXRPYmooKTtpLmdlbj1lLmdldE9iaigpO2NvbnN0IG89ZS5nZXRPYmooKTtpZihvIGluc3RhbmNlb2YgQ21kKXN3aXRjaChvLmNtZCl7Y2FzZSJmIjppLmZyZWU9ITA7YnJlYWs7Y2FzZSJuIjppLnVuY29tcHJlc3NlZD0hMH1pZighTnVtYmVyLmlzSW50ZWdlcihpLm9mZnNldCl8fCFOdW1iZXIuaXNJbnRlZ2VyKGkuZ2VuKXx8IWkuZnJlZSYmIWkudW5jb21wcmVzc2VkKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBlbnRyeSBpbiBYUmVmIHN1YnNlY3Rpb246ICR7c30sICR7cn1gKTswPT09YSYmaS5mcmVlJiYxPT09cyYmKHM9MCk7dGhpcy5lbnRyaWVzW2Erc118fCh0aGlzLmVudHJpZXNbYStzXT1pKX1uLmVudHJ5TnVtPTA7bi5zdHJlYW1Qb3M9dC5wb3M7bi5wYXJzZXJCdWYxPWUuYnVmMTtuLnBhcnNlckJ1ZjI9ZS5idWYyO2RlbGV0ZSBuLmZpcnN0RW50cnlOdW07ZGVsZXRlIG4uZW50cnlDb3VudH1pZih0aGlzLmVudHJpZXNbMF0mJiF0aGlzLmVudHJpZXNbMF0uZnJlZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiB0YWJsZTogdW5leHBlY3RlZCBmaXJzdCBvYmplY3QiKTtyZXR1cm4gYX1wcm9jZXNzWFJlZlN0cmVhbShlKXtpZighKCJzdHJlYW1TdGF0ZSJpbiB0aGlzKSl7Y29uc3R7ZGljdDp0LHBvczpufT1lLGE9dC5nZXQoIlciKSxzPXQuZ2V0KCJJbmRleCIpfHxbMCx0LmdldCgiU2l6ZSIpXTt0aGlzLnN0cmVhbVN0YXRlPXtlbnRyeVJhbmdlczpzLGJ5dGVXaWR0aHM6YSxlbnRyeU51bTowLHN0cmVhbVBvczpufX10aGlzLnJlYWRYUmVmU3RyZWFtKGUpO2RlbGV0ZSB0aGlzLnN0cmVhbVN0YXRlO3JldHVybiBlLmRpY3R9cmVhZFhSZWZTdHJlYW0oZSl7Y29uc3QgdD10aGlzLnN0cmVhbVN0YXRlO2UucG9zPXQuc3RyZWFtUG9zO2NvbnN0W24sYSxzXT10LmJ5dGVXaWR0aHMscj10LmVudHJ5UmFuZ2VzO2Zvcig7ci5sZW5ndGg+MDspe2NvbnN0W2ksb109cjtpZighTnVtYmVyLmlzSW50ZWdlcihpKXx8IU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIFhSZWYgcmFuZ2UgZmllbGRzOiAke2l9LCAke299YCk7aWYoIU51bWJlci5pc0ludGVnZXIobil8fCFOdW1iZXIuaXNJbnRlZ2VyKGEpfHwhTnVtYmVyLmlzSW50ZWdlcihzKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgWFJlZiBlbnRyeSBmaWVsZHMgbGVuZ3RoOiAke2l9LCAke299YCk7Zm9yKGxldCByPXQuZW50cnlOdW07cjxvOysrcil7dC5lbnRyeU51bT1yO3Quc3RyZWFtUG9zPWUucG9zO2xldCBvPTAsbD0wLGY9MDtmb3IobGV0IHQ9MDt0PG47Kyt0KXtjb25zdCB0PWUuZ2V0Qnl0ZSgpO2lmKC0xPT09dCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiBieXRlV2lkdGhzICd0eXBlJy4iKTtvPW88PDh8dH0wPT09biYmKG89MSk7Zm9yKGxldCB0PTA7dDxhOysrdCl7Y29uc3QgdD1lLmdldEJ5dGUoKTtpZigtMT09PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFhSZWYgYnl0ZVdpZHRocyAnb2Zmc2V0Jy4iKTtsPWw8PDh8dH1mb3IobGV0IHQ9MDt0PHM7Kyt0KXtjb25zdCB0PWUuZ2V0Qnl0ZSgpO2lmKC0xPT09dCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiBieXRlV2lkdGhzICdnZW5lcmF0aW9uJy4iKTtmPWY8PDh8dH1jb25zdCBjPXt9O2Mub2Zmc2V0PWw7Yy5nZW49Zjtzd2l0Y2gobyl7Y2FzZSAwOmMuZnJlZT0hMDticmVhaztjYXNlIDE6Yy51bmNvbXByZXNzZWQ9ITA7YnJlYWs7Y2FzZSAyOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIFhSZWYgZW50cnkgdHlwZTogJHtvfWApfXRoaXMuZW50cmllc1tpK3JdfHwodGhpcy5lbnRyaWVzW2krcl09Yyl9dC5lbnRyeU51bT0wO3Quc3RyZWFtUG9zPWUucG9zO3Iuc3BsaWNlKDAsMil9fWluZGV4T2JqZWN0cygpe2Z1bmN0aW9uIHJlYWRUb2tlbihlLHQpe2xldCBuPSIiLGE9ZVt0XTtmb3IoOzEwIT09YSYmMTMhPT1hJiY2MCE9PWEmJiEoKyt0Pj1lLmxlbmd0aCk7KXtuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEpO2E9ZVt0XX1yZXR1cm4gbn1mdW5jdGlvbiBza2lwVW50aWwoZSx0LG4pe2NvbnN0IGE9bi5sZW5ndGgscz1lLmxlbmd0aDtsZXQgcj0wO2Zvcig7dDxzOyl7bGV0IHM9MDtmb3IoO3M8YSYmZVt0K3NdPT09bltzXTspKytzO2lmKHM+PWEpYnJlYWs7dCsrO3IrK31yZXR1cm4gcn1jb25zdCBlPS9cYihlbmRvYmp8XGQrXHMrXGQrXHMrb2JqfHhyZWZ8dHJhaWxlclxzKjw8KVxiL2csdD0vXGIoc3RhcnR4cmVmfFxkK1xzK1xkK1xzK29iailcYi9nLG49L14oXGQrKVxzKyhcZCspXHMrb2JqXGIvLGE9bmV3IFVpbnQ4QXJyYXkoWzExNiwxMTQsOTcsMTA1LDEwOCwxMDEsMTE0XSkscz1uZXcgVWludDhBcnJheShbMTE1LDExNiw5NywxMTQsMTE2LDEyMCwxMTQsMTAxLDEwMl0pLHI9bmV3IFVpbnQ4QXJyYXkoWzQ3LDg4LDgyLDEwMSwxMDJdKTt0aGlzLmVudHJpZXMubGVuZ3RoPTA7dGhpcy5fY2FjaGVNYXAuY2xlYXIoKTtjb25zdCBpPXRoaXMuc3RyZWFtO2kucG9zPTA7Y29uc3Qgbz1pLmdldEJ5dGVzKCksbD1ieXRlc1RvU3RyaW5nKG8pLGY9by5sZW5ndGg7bGV0IGM9aS5zdGFydDtjb25zdCBoPVtdLHU9W107Zm9yKDtjPGY7KXtsZXQgbT1vW2NdO2lmKDk9PT1tfHwxMD09PW18fDEzPT09bXx8MzI9PT1tKXsrK2M7Y29udGludWV9aWYoMzc9PT1tKXtkb3srK2M7aWYoYz49ZilicmVhazttPW9bY119d2hpbGUoMTAhPT1tJiYxMyE9PW0pO2NvbnRpbnVlfWNvbnN0IHA9cmVhZFRva2VuKG8sYyk7bGV0IGQ7aWYocC5zdGFydHNXaXRoKCJ4cmVmIikmJig0PT09cC5sZW5ndGh8fC9ccy8udGVzdChwWzRdKSkpe2MrPXNraXBVbnRpbChvLGMsYSk7aC5wdXNoKGMpO2MrPXNraXBVbnRpbChvLGMscyl9ZWxzZSBpZihkPW4uZXhlYyhwKSl7Y29uc3QgdD0wfGRbMV0sbj0wfGRbMl0sYT1jK3AubGVuZ3RoO2xldCBzLGg9ITE7aWYodGhpcy5lbnRyaWVzW3RdKXtpZih0aGlzLmVudHJpZXNbdF0uZ2VuPT09bil0cnl7bmV3IFBhcnNlcih7bGV4ZXI6bmV3IExleGVyKGkubWFrZVN1YlN0cmVhbShhKSl9KS5nZXRPYmooKTtoPSEwfWNhdGNoKGUpe2UgaW5zdGFuY2VvZiBQYXJzZXJFT0ZFeGNlcHRpb24/d2FybihgaW5kZXhPYmplY3RzIC0tIGNoZWNraW5nIG9iamVjdCAoJHtwfSk6ICIke2V9Ii5gKTpoPSEwfX1lbHNlIGg9ITA7aCYmKHRoaXMuZW50cmllc1t0XT17b2Zmc2V0OmMtaS5zdGFydCxnZW46bix1bmNvbXByZXNzZWQ6ITB9KTtlLmxhc3RJbmRleD1hO2NvbnN0IG09ZS5leGVjKGwpO2lmKG0pe3M9ZS5sYXN0SW5kZXgrMS1jO2lmKCJlbmRvYmoiIT09bVsxXSl7d2FybihgaW5kZXhPYmplY3RzOiBGb3VuZCAiJHttWzFdfSIgaW5zaWRlIG9mIGFub3RoZXIgIm9iaiIsIGNhdXNlZCBieSBtaXNzaW5nICJlbmRvYmoiIC0tIHRyeWluZyB0byByZWNvdmVyLmApO3MtPW1bMV0ubGVuZ3RoKzF9fWVsc2Ugcz1mLWM7Y29uc3QgZz1vLnN1YmFycmF5KGMsYytzKSxiPXNraXBVbnRpbChnLDAscik7aWYoYjxzJiZnW2IrNV08NjQpe3UucHVzaChjLWkuc3RhcnQpO3RoaXMuX3hyZWZTdG1zLmFkZChjLWkuc3RhcnQpfWMrPXN9ZWxzZSBpZihwLnN0YXJ0c1dpdGgoInRyYWlsZXIiKSYmKDc9PT1wLmxlbmd0aHx8L1xzLy50ZXN0KHBbN10pKSl7aC5wdXNoKGMpO2NvbnN0IGU9YytwLmxlbmd0aDtsZXQgbjt0Lmxhc3RJbmRleD1lO2NvbnN0IGE9dC5leGVjKGwpO2lmKGEpe249dC5sYXN0SW5kZXgrMS1jO2lmKCJzdGFydHhyZWYiIT09YVsxXSl7d2FybihgaW5kZXhPYmplY3RzOiBGb3VuZCAiJHthWzFdfSIgYWZ0ZXIgInRyYWlsZXIiLCBjYXVzZWQgYnkgbWlzc2luZyAic3RhcnR4cmVmIiAtLSB0cnlpbmcgdG8gcmVjb3Zlci5gKTtuLT1hWzFdLmxlbmd0aCsxfX1lbHNlIG49Zi1jO2MrPW59ZWxzZSBjKz1wLmxlbmd0aCsxfWZvcihjb25zdCBlIG9mIHUpe3RoaXMuc3RhcnRYUmVmUXVldWUucHVzaChlKTt0aGlzLnJlYWRYUmVmKCEwKX1jb25zdCBtPVtdO2xldCBwLGQsZz0hMTtmb3IoY29uc3QgZSBvZiBoKXtpLnBvcz1lO2NvbnN0IHQ9bmV3IFBhcnNlcih7bGV4ZXI6bmV3IExleGVyKGkpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITAscmVjb3ZlcnlNb2RlOiEwfSk7aWYoIWlzQ21kKHQuZ2V0T2JqKCksInRyYWlsZXIiKSljb250aW51ZTtjb25zdCBuPXQuZ2V0T2JqKCk7aWYobiBpbnN0YW5jZW9mIERpY3Qpe20ucHVzaChuKTtuLmhhcygiRW5jcnlwdCIpJiYoZz0hMCl9fWZvcihjb25zdCBlIG9mWy4uLm0sImdlbkZhbGxiYWNrIiwuLi5tXSl7aWYoImdlbkZhbGxiYWNrIj09PWUpe2lmKCFkKWJyZWFrO3RoaXMuX2dlbmVyYXRpb25GYWxsYmFjaz0hMDtjb250aW51ZX1sZXQgdD0hMTt0cnl7Y29uc3Qgbj1lLmdldCgiUm9vdCIpO2lmKCEobiBpbnN0YW5jZW9mIERpY3QpKWNvbnRpbnVlO2NvbnN0IGE9bi5nZXQoIlBhZ2VzIik7aWYoIShhIGluc3RhbmNlb2YgRGljdCkpY29udGludWU7Y29uc3Qgcz1hLmdldCgiQ291bnQiKTtOdW1iZXIuaXNJbnRlZ2VyKHMpJiYodD0hMCl9Y2F0Y2goZSl7ZD1lO2NvbnRpbnVlfWlmKHQmJighZ3x8ZS5oYXMoIkVuY3J5cHQiKSkmJmUuaGFzKCJJRCIpKXJldHVybiBlO3A9ZX1pZihwKXJldHVybiBwO2lmKHRoaXMudG9wRGljdClyZXR1cm4gdGhpcy50b3BEaWN0O2lmKCFtLmxlbmd0aClmb3IoY29uc3QgZSBpbiB0aGlzLmVudHJpZXMpe2NvbnN0IHQ9dGhpcy5lbnRyaWVzW2VdO2lmKCF0KWNvbnRpbnVlO2NvbnN0IG49UmVmLmdldChwYXJzZUludChlKSx0Lmdlbik7bGV0IGE7dHJ5e2E9dGhpcy5mZXRjaChuKX1jYXRjaHtjb250aW51ZX1hIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmKGE9YS5kaWN0KTtpZihhIGluc3RhbmNlb2YgRGljdCYmYS5oYXMoIlJvb3QiKSlyZXR1cm4gYX10aHJvdyBuZXcgSW52YWxpZFBERkV4Y2VwdGlvbigiSW52YWxpZCBQREYgc3RydWN0dXJlLiIpfXJlYWRYUmVmKGU9ITEpe2NvbnN0IHQ9dGhpcy5zdHJlYW0sbj1uZXcgU2V0O2Zvcig7dGhpcy5zdGFydFhSZWZRdWV1ZS5sZW5ndGg7KXt0cnl7Y29uc3QgZT10aGlzLnN0YXJ0WFJlZlF1ZXVlWzBdO2lmKG4uaGFzKGUpKXt3YXJuKCJyZWFkWFJlZiAtIHNraXBwaW5nIFhSZWYgdGFibGUgc2luY2UgaXQgd2FzIGFscmVhZHkgcGFyc2VkLiIpO3RoaXMuc3RhcnRYUmVmUXVldWUuc2hpZnQoKTtjb250aW51ZX1uLmFkZChlKTt0LnBvcz1lK3Quc3RhcnQ7Y29uc3QgYT1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIodCkseHJlZjp0aGlzLGFsbG93U3RyZWFtczohMH0pO2xldCBzLHI9YS5nZXRPYmooKTtpZihpc0NtZChyLCJ4cmVmIikpe3M9dGhpcy5wcm9jZXNzWFJlZlRhYmxlKGEpO3RoaXMudG9wRGljdHx8KHRoaXMudG9wRGljdD1zKTtyPXMuZ2V0KCJYUmVmU3RtIik7aWYoTnVtYmVyLmlzSW50ZWdlcihyKSYmIXRoaXMuX3hyZWZTdG1zLmhhcyhyKSl7dGhpcy5feHJlZlN0bXMuYWRkKHIpO3RoaXMuc3RhcnRYUmVmUXVldWUucHVzaChyKX19ZWxzZXtpZighTnVtYmVyLmlzSW50ZWdlcihyKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiBzdHJlYW0gaGVhZGVyIik7aWYoIShOdW1iZXIuaXNJbnRlZ2VyKGEuZ2V0T2JqKCkpJiZpc0NtZChhLmdldE9iaigpLCJvYmoiKSYmKHI9YS5nZXRPYmooKSlpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBYUmVmIHN0cmVhbSIpO3M9dGhpcy5wcm9jZXNzWFJlZlN0cmVhbShyKTt0aGlzLnRvcERpY3R8fCh0aGlzLnRvcERpY3Q9cyk7aWYoIXMpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJGYWlsZWQgdG8gcmVhZCBYUmVmIHN0cmVhbSIpfXI9cy5nZXQoIlByZXYiKTtOdW1iZXIuaXNJbnRlZ2VyKHIpP3RoaXMuc3RhcnRYUmVmUXVldWUucHVzaChyKTpyIGluc3RhbmNlb2YgUmVmJiZ0aGlzLnN0YXJ0WFJlZlF1ZXVlLnB1c2goci5udW0pfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO2luZm8oIih3aGlsZSByZWFkaW5nIFhSZWYpOiAiK2UpfXRoaXMuc3RhcnRYUmVmUXVldWUuc2hpZnQoKX1pZih0aGlzLnRvcERpY3QpcmV0dXJuIHRoaXMudG9wRGljdDtpZighZSl0aHJvdyBuZXcgWFJlZlBhcnNlRXhjZXB0aW9ufWdldEVudHJ5KGUpe2NvbnN0IHQ9dGhpcy5lbnRyaWVzW2VdO3JldHVybiB0JiYhdC5mcmVlJiZ0Lm9mZnNldD90Om51bGx9ZmV0Y2hJZlJlZihlLHQ9ITEpe3JldHVybiBlIGluc3RhbmNlb2YgUmVmP3RoaXMuZmV0Y2goZSx0KTplfWZldGNoKGUsdD0hMSl7aWYoIShlIGluc3RhbmNlb2YgUmVmKSl0aHJvdyBuZXcgRXJyb3IoInJlZiBvYmplY3QgaXMgbm90IGEgcmVmZXJlbmNlIik7Y29uc3Qgbj1lLm51bSxhPXRoaXMuX2NhY2hlTWFwLmdldChuKTtpZih2b2lkIDAhPT1hKXthIGluc3RhbmNlb2YgRGljdCYmIWEub2JqSWQmJihhLm9iaklkPWUudG9TdHJpbmcoKSk7cmV0dXJuIGF9bGV0IHM9dGhpcy5nZXRFbnRyeShuKTtpZihudWxsPT09cylyZXR1cm4gcztpZih0aGlzLl9wZW5kaW5nUmVmcy5oYXMoZSkpe3RoaXMuX3BlbmRpbmdSZWZzLnJlbW92ZShlKTt3YXJuKGBJZ25vcmluZyBjaXJjdWxhciByZWZlcmVuY2U6ICR7ZX0uYCk7cmV0dXJuIHJufXRoaXMuX3BlbmRpbmdSZWZzLnB1dChlKTt0cnl7cz1zLnVuY29tcHJlc3NlZD90aGlzLmZldGNoVW5jb21wcmVzc2VkKGUscyx0KTp0aGlzLmZldGNoQ29tcHJlc3NlZChlLHMsdCk7dGhpcy5fcGVuZGluZ1JlZnMucmVtb3ZlKGUpfWNhdGNoKHQpe3RoaXMuX3BlbmRpbmdSZWZzLnJlbW92ZShlKTt0aHJvdyB0fXMgaW5zdGFuY2VvZiBEaWN0P3Mub2JqSWQ9ZS50b1N0cmluZygpOnMgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYocy5kaWN0Lm9iaklkPWUudG9TdHJpbmcoKSk7cmV0dXJuIHN9ZmV0Y2hVbmNvbXByZXNzZWQoZSx0LG49ITEpe2NvbnN0IGE9ZS5nZW47bGV0IHM9ZS5udW07aWYodC5nZW4hPT1hKXtjb25zdCByPWBJbmNvbnNpc3RlbnQgZ2VuZXJhdGlvbiBpbiBYUmVmOiAke2V9YDtpZih0aGlzLl9nZW5lcmF0aW9uRmFsbGJhY2smJnQuZ2VuPGEpe3dhcm4ocik7cmV0dXJuIHRoaXMuZmV0Y2hVbmNvbXByZXNzZWQoUmVmLmdldChzLHQuZ2VuKSx0LG4pfXRocm93IG5ldyBYUmVmRW50cnlFeGNlcHRpb24ocil9Y29uc3Qgcj10aGlzLnN0cmVhbS5tYWtlU3ViU3RyZWFtKHQub2Zmc2V0K3RoaXMuc3RyZWFtLnN0YXJ0KSxpPW5ldyBQYXJzZXIoe2xleGVyOm5ldyBMZXhlcihyKSx4cmVmOnRoaXMsYWxsb3dTdHJlYW1zOiEwfSksbz1pLmdldE9iaigpLGw9aS5nZXRPYmooKSxmPWkuZ2V0T2JqKCk7aWYobyE9PXN8fGwhPT1hfHwhKGYgaW5zdGFuY2VvZiBDbWQpKXRocm93IG5ldyBYUmVmRW50cnlFeGNlcHRpb24oYEJhZCAodW5jb21wcmVzc2VkKSBYUmVmIGVudHJ5OiAke2V9YCk7aWYoIm9iaiIhPT1mLmNtZCl7aWYoZi5jbWQuc3RhcnRzV2l0aCgib2JqIikpe3M9cGFyc2VJbnQoZi5jbWQuc3Vic3RyaW5nKDMpLDEwKTtpZighTnVtYmVyLmlzTmFOKHMpKXJldHVybiBzfXRocm93IG5ldyBYUmVmRW50cnlFeGNlcHRpb24oYEJhZCAodW5jb21wcmVzc2VkKSBYUmVmIGVudHJ5OiAke2V9YCl9KHQ9dGhpcy5lbmNyeXB0JiYhbj9pLmdldE9iaih0aGlzLmVuY3J5cHQuY3JlYXRlQ2lwaGVyVHJhbnNmb3JtKHMsYSkpOmkuZ2V0T2JqKCkpaW5zdGFuY2VvZiBCYXNlU3RyZWFtfHx0aGlzLl9jYWNoZU1hcC5zZXQocyx0KTtyZXR1cm4gdH1mZXRjaENvbXByZXNzZWQoZSx0LG49ITEpe2NvbnN0IGE9dC5vZmZzZXQscz10aGlzLmZldGNoKFJlZi5nZXQoYSwwKSk7aWYoIShzIGluc3RhbmNlb2YgQmFzZVN0cmVhbSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJiYWQgT2JqU3RtIHN0cmVhbSIpO2NvbnN0IHI9cy5kaWN0LmdldCgiRmlyc3QiKSxpPXMuZGljdC5nZXQoIk4iKTtpZighTnVtYmVyLmlzSW50ZWdlcihyKXx8IU51bWJlci5pc0ludGVnZXIoaSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJpbnZhbGlkIGZpcnN0IGFuZCBuIHBhcmFtZXRlcnMgZm9yIE9ialN0bSBzdHJlYW0iKTtsZXQgbz1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIocykseHJlZjp0aGlzLGFsbG93U3RyZWFtczohMH0pO2NvbnN0IGw9bmV3IEFycmF5KGkpLGY9bmV3IEFycmF5KGkpO2ZvcihsZXQgZT0wO2U8aTsrK2Upe2NvbnN0IHQ9by5nZXRPYmooKTtpZighTnVtYmVyLmlzSW50ZWdlcih0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYGludmFsaWQgb2JqZWN0IG51bWJlciBpbiB0aGUgT2JqU3RtIHN0cmVhbTogJHt0fWApO2NvbnN0IG49by5nZXRPYmooKTtpZighTnVtYmVyLmlzSW50ZWdlcihuKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYGludmFsaWQgb2JqZWN0IG9mZnNldCBpbiB0aGUgT2JqU3RtIHN0cmVhbTogJHtufWApO2xbZV09dDtjb25zdCBzPXRoaXMuZ2V0RW50cnkodCk7cz8ub2Zmc2V0PT09YSYmcy5nZW4hPT1lJiYocy5nZW49ZSk7ZltlXT1ufWNvbnN0IGM9KHMuc3RhcnR8fDApK3IsaD1uZXcgQXJyYXkoaSk7Zm9yKGxldCBlPTA7ZTxpOysrZSl7Y29uc3QgdD1lPGktMT9mW2UrMV0tZltlXTp2b2lkIDA7aWYodDwwKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBvZmZzZXQgaW4gdGhlIE9ialN0bSBzdHJlYW0uIik7bz1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIocy5tYWtlU3ViU3RyZWFtKGMrZltlXSx0LHMuZGljdCkpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KTtjb25zdCBuPW8uZ2V0T2JqKCk7aFtlXT1uO2lmKG4gaW5zdGFuY2VvZiBCYXNlU3RyZWFtKWNvbnRpbnVlO2NvbnN0IHI9bFtlXSx1PXRoaXMuZW50cmllc1tyXTt1JiZ1Lm9mZnNldD09PWEmJnUuZ2VuPT09ZSYmdGhpcy5fY2FjaGVNYXAuc2V0KHIsbil9aWYodm9pZCAwPT09KHQ9aFt0Lmdlbl0pKXRocm93IG5ldyBYUmVmRW50cnlFeGNlcHRpb24oYEJhZCAoY29tcHJlc3NlZCkgWFJlZiBlbnRyeTogJHtlfWApO3JldHVybiB0fWFzeW5jIGZldGNoSWZSZWZBc3luYyhlLHQpe3JldHVybiBlIGluc3RhbmNlb2YgUmVmP3RoaXMuZmV0Y2hBc3luYyhlLHQpOmV9YXN5bmMgZmV0Y2hBc3luYyhlLHQpe3RyeXtyZXR1cm4gdGhpcy5mZXRjaChlLHQpfWNhdGNoKG4pe2lmKCEobiBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKSl0aHJvdyBuO2F3YWl0IHRoaXMucGRmTWFuYWdlci5yZXF1ZXN0UmFuZ2Uobi5iZWdpbixuLmVuZCk7cmV0dXJuIHRoaXMuZmV0Y2hBc3luYyhlLHQpfX1nZXRDYXRhbG9nT2JqKCl7cmV0dXJuIHRoaXMucm9vdH19Y29uc3QgbGw9WzAsMCw2MTIsNzkyXTtjbGFzcyBQYWdleyNhdD0hMTsjc3Q9bnVsbDtjb25zdHJ1Y3Rvcih7cGRmTWFuYWdlcjplLHhyZWY6dCxwYWdlSW5kZXg6bixwYWdlRGljdDphLHJlZjpzLGdsb2JhbElkRmFjdG9yeTpyLGZvbnRDYWNoZTppLGJ1aWx0SW5DTWFwQ2FjaGU6byxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6bCxnbG9iYWxDb2xvclNwYWNlQ2FjaGU6ZixnbG9iYWxJbWFnZUNhY2hlOmMsc3lzdGVtRm9udENhY2hlOmgsbm9uQmxlbmRNb2Rlc1NldDp1LHhmYUZhY3Rvcnk6bX0pe3RoaXMucGRmTWFuYWdlcj1lO3RoaXMucGFnZUluZGV4PW47dGhpcy5wYWdlRGljdD1hO3RoaXMueHJlZj10O3RoaXMucmVmPXM7dGhpcy5mb250Q2FjaGU9aTt0aGlzLmJ1aWx0SW5DTWFwQ2FjaGU9bzt0aGlzLnN0YW5kYXJkRm9udERhdGFDYWNoZT1sO3RoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlPWY7dGhpcy5nbG9iYWxJbWFnZUNhY2hlPWM7dGhpcy5zeXN0ZW1Gb250Q2FjaGU9aDt0aGlzLm5vbkJsZW5kTW9kZXNTZXQ9dTt0aGlzLmV2YWx1YXRvck9wdGlvbnM9ZS5ldmFsdWF0b3JPcHRpb25zO3RoaXMueGZhRmFjdG9yeT1tO2NvbnN0IHA9e29iajowfTt0aGlzLl9sb2NhbElkRmFjdG9yeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGljIGNyZWF0ZU9iaklkKCl7cmV0dXJuYHAke259XyR7KytwLm9ian1gfXN0YXRpYyBnZXRQYWdlT2JqSWQoKXtyZXR1cm5gcCR7cy50b1N0cmluZygpfWB9fX0jcnQoZSx0PXRoaXMucGFnZUluZGV4KXtyZXR1cm4gbmV3IFBhcnRpYWxFdmFsdWF0b3Ioe3hyZWY6dGhpcy54cmVmLGhhbmRsZXI6ZSxwYWdlSW5kZXg6dCxpZEZhY3Rvcnk6dGhpcy5fbG9jYWxJZEZhY3RvcnksZm9udENhY2hlOnRoaXMuZm9udENhY2hlLGJ1aWx0SW5DTWFwQ2FjaGU6dGhpcy5idWlsdEluQ01hcENhY2hlLHN0YW5kYXJkRm9udERhdGFDYWNoZTp0aGlzLnN0YW5kYXJkRm9udERhdGFDYWNoZSxnbG9iYWxDb2xvclNwYWNlQ2FjaGU6dGhpcy5nbG9iYWxDb2xvclNwYWNlQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0aGlzLmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnRoaXMuc3lzdGVtRm9udENhY2hlLG9wdGlvbnM6dGhpcy5ldmFsdWF0b3JPcHRpb25zfSl9I2l0KGUsdD0hMSl7Y29uc3Qgbj1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnRoaXMucGFnZURpY3Qsa2V5OmUsZ2V0QXJyYXk6dCxzdG9wV2hlbkZvdW5kOiExfSk7cmV0dXJuIEFycmF5LmlzQXJyYXkobik/MSE9PW4ubGVuZ3RoJiZuWzBdaW5zdGFuY2VvZiBEaWN0P0RpY3QubWVyZ2Uoe3hyZWY6dGhpcy54cmVmLGRpY3RBcnJheTpufSk6blswXTpufWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMucGFnZURpY3QuZ2V0QXJyYXkoIkNvbnRlbnRzIil9Z2V0IHJlc291cmNlcygpe2NvbnN0IGU9dGhpcy4jaXQoIlJlc291cmNlcyIpO3JldHVybiBzaGFkb3codGhpcywicmVzb3VyY2VzIixlIGluc3RhbmNlb2YgRGljdD9lOkRpY3QuZW1wdHkpfWdldEJvdW5kaW5nQm94KGUpe2lmKHRoaXMueGZhRGF0YSlyZXR1cm4gdGhpcy54ZmFEYXRhLmJib3g7Y29uc3QgdD1sb29rdXBOb3JtYWxSZWN0KHRoaXMuI2l0KGUsITApLG51bGwpO2lmKHQpe2lmKHRbMl0tdFswXT4wJiZ0WzNdLXRbMV0+MClyZXR1cm4gdDt3YXJuKGBFbXB0eSwgb3IgaW52YWxpZCwgLyR7ZX0gZW50cnkuYCl9cmV0dXJuIG51bGx9Z2V0IG1lZGlhQm94KCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJtZWRpYUJveCIsdGhpcy5nZXRCb3VuZGluZ0JveCgiTWVkaWFCb3giKXx8bGwpfWdldCBjcm9wQm94KCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJjcm9wQm94Iix0aGlzLmdldEJvdW5kaW5nQm94KCJDcm9wQm94Iil8fHRoaXMubWVkaWFCb3gpfWdldCB1c2VyVW5pdCgpe2NvbnN0IGU9dGhpcy5wYWdlRGljdC5nZXQoIlVzZXJVbml0Iik7cmV0dXJuIHNoYWRvdyh0aGlzLCJ1c2VyVW5pdCIsIm51bWJlciI9PXR5cGVvZiBlJiZlPjA/ZToxKX1nZXQgdmlldygpe2NvbnN0e2Nyb3BCb3g6ZSxtZWRpYUJveDp0fT10aGlzO2lmKGUhPT10JiYhaXNBcnJheUVxdWFsKGUsdCkpe2NvbnN0IG49VXRpbC5pbnRlcnNlY3QoZSx0KTtpZihuJiZuWzJdLW5bMF0+MCYmblszXS1uWzFdPjApcmV0dXJuIHNoYWRvdyh0aGlzLCJ2aWV3IixuKTt3YXJuKCJFbXB0eSAvQ3JvcEJveCBhbmQgL01lZGlhQm94IGludGVyc2VjdGlvbi4iKX1yZXR1cm4gc2hhZG93KHRoaXMsInZpZXciLHQpfWdldCByb3RhdGUoKXtsZXQgZT10aGlzLiNpdCgiUm90YXRlIil8fDA7ZSU5MCE9MD9lPTA6ZT49MzYwP2UlPTM2MDplPDAmJihlPShlJTM2MCszNjApJTM2MCk7cmV0dXJuIHNoYWRvdyh0aGlzLCJyb3RhdGUiLGUpfSNvdChlLHQpe2lmKCF0aGlzLmV2YWx1YXRvck9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgZ2V0Q29udGVudFN0cmVhbSAtIGlnbm9yaW5nIHN1Yi1zdHJlYW0gKCR7dH0pOiAiJHtlfSIuYCl9YXN5bmMgZ2V0Q29udGVudFN0cmVhbSgpe2NvbnN0IGU9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJjb250ZW50Iik7aWYoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJiFlLmlzSW1hZ2VTdHJlYW0pe2lmKGUuaXNBc3luYyl7Y29uc3QgdD1hd2FpdCBlLmFzeW5jR2V0Qnl0ZXMoKTtpZih0KXJldHVybiBuZXcgU3RyZWFtKHQsMCx0Lmxlbmd0aCxlLmRpY3QpfXJldHVybiBlfWlmKEFycmF5LmlzQXJyYXkoZSkpe2NvbnN0IHQ9W107Zm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKXtjb25zdCBhPWVbbl07YSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJmEuaXNBc3luYyYmdC5wdXNoKGEuYXN5bmNHZXRCeXRlcygpLnRoZW4odD0+e3QmJihlW25dPW5ldyBTdHJlYW0odCwwLHQubGVuZ3RoLGEuZGljdCkpfSkpfXQubGVuZ3RoPjAmJmF3YWl0IFByb21pc2UuYWxsKHQpO3JldHVybiBuZXcgU3RyZWFtc1NlcXVlbmNlU3RyZWFtKGUsdGhpcy4jb3QuYmluZCh0aGlzKSl9cmV0dXJuIG5ldyBOdWxsU3RyZWFtfWdldCB4ZmFEYXRhKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJ4ZmFEYXRhIix0aGlzLnhmYUZhY3Rvcnk/e2Jib3g6dGhpcy54ZmFGYWN0b3J5LmdldEJvdW5kaW5nQm94KHRoaXMucGFnZUluZGV4KX06bnVsbCl9YXN5bmMjbHQoZSx0LG4pe2NvbnN0IGE9W107Zm9yKGNvbnN0IHMgb2YgZSlpZihzLmlkKXtjb25zdCBlPVJlZi5mcm9tU3RyaW5nKHMuaWQpO2lmKCFlKXt3YXJuKGBBIG5vbi1saW5rZWQgYW5ub3RhdGlvbiBjYW5ub3QgYmUgbW9kaWZpZWQ6ICR7cy5pZH1gKTtjb250aW51ZX1pZihzLmRlbGV0ZWQpe3QucHV0KGUsZSk7aWYocy5wb3B1cFJlZil7Y29uc3QgZT1SZWYuZnJvbVN0cmluZyhzLnBvcHVwUmVmKTtlJiZ0LnB1dChlLGUpfWNvbnRpbnVlfWlmKHMucG9wdXA/LmRlbGV0ZWQpe2NvbnN0IGU9UmVmLmZyb21TdHJpbmcocy5wb3B1cFJlZik7ZSYmdC5wdXQoZSxlKX1uPy5wdXQoZSk7cy5yZWY9ZTthLnB1c2godGhpcy54cmVmLmZldGNoQXN5bmMoZSkudGhlbihlPT57ZSBpbnN0YW5jZW9mIERpY3QmJihzLm9sZEFubm90YXRpb249ZS5jbG9uZSgpKX0sKCk9Pnt3YXJuKGBDYW5ub3QgZmV0Y2ggXGBvbGRBbm5vdGF0aW9uXGAgZm9yOiAke2V9LmApfSkpO2RlbGV0ZSBzLmlkfWF3YWl0IFByb21pc2UuYWxsKGEpfWFzeW5jIHNhdmVOZXdBbm5vdGF0aW9ucyhlLHQsbixhLHMpe2lmKHRoaXMueGZhRmFjdG9yeSl0aHJvdyBuZXcgRXJyb3IoIlhGQTogQ2Fubm90IHNhdmUgbmV3IGFubm90YXRpb25zLiIpO2NvbnN0IHI9dGhpcy4jcnQoZSksaT1uZXcgUmVmU2V0Q2FjaGUsbz1uZXcgUmVmU2V0O2F3YWl0IHRoaXMuI2x0KG4saSxvKTtjb25zdCBsPXRoaXMucGFnZURpY3QsZj10aGlzLmFubm90YXRpb25zLmZpbHRlcihlPT4hKGUgaW5zdGFuY2VvZiBSZWYmJmkuaGFzKGUpKSksYz1hd2FpdCBBbm5vdGF0aW9uRmFjdG9yeS5zYXZlTmV3QW5ub3RhdGlvbnMocix0LG4sYSxzKTtmb3IoY29uc3R7cmVmOmV9b2YgYy5hbm5vdGF0aW9ucyllIGluc3RhbmNlb2YgUmVmJiYhby5oYXMoZSkmJmYucHVzaChlKTtjb25zdCBoPWwuY2xvbmUoKTtoLnNldCgiQW5ub3RzIixmKTtzLnB1dCh0aGlzLnJlZix7ZGF0YTpofSk7Zm9yKGNvbnN0IGUgb2YgaSlzLnB1dChlLHtkYXRhOm51bGx9KX1hc3luYyBzYXZlKGUsdCxuLGEpe2NvbnN0IHM9dGhpcy4jcnQoZSkscj1hd2FpdCB0aGlzLl9wYXJzZWRBbm5vdGF0aW9ucyxpPVtdO2Zvcihjb25zdCBlIG9mIHIpaS5wdXNoKGUuc2F2ZShzLHQsbixhKS5jYXRjaChmdW5jdGlvbihlKXt3YXJuKGBzYXZlIC0gaWdub3JpbmcgYW5ub3RhdGlvbiBkYXRhIGR1cmluZyAiJHt0Lm5hbWV9IiB0YXNrOiAiJHtlfSIuYCk7cmV0dXJuIG51bGx9KSk7cmV0dXJuIFByb21pc2UuYWxsKGkpfWFzeW5jIGxvYWRSZXNvdXJjZXMoZSl7YXdhaXQodGhpcy4jc3Q/Pz10aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHRoaXMsInJlc291cmNlcyIpKTthd2FpdCBPYmplY3RMb2FkZXIubG9hZCh0aGlzLnJlc291cmNlcyxlLHRoaXMueHJlZil9YXN5bmMjZnQoZSx0KXtjb25zdCBuPWU/LmdldCgiUmVzb3VyY2VzIik7aWYoIShuIGluc3RhbmNlb2YgRGljdCYmbi5zaXplKSlyZXR1cm4gdGhpcy5yZXNvdXJjZXM7YXdhaXQgT2JqZWN0TG9hZGVyLmxvYWQobix0LHRoaXMueHJlZik7cmV0dXJuIERpY3QubWVyZ2Uoe3hyZWY6dGhpcy54cmVmLGRpY3RBcnJheTpbbix0aGlzLnJlc291cmNlc10sbWVyZ2VTdWJEaWN0czohMH0pfWFzeW5jIGdldE9wZXJhdG9yTGlzdCh7aGFuZGxlcjplLHNpbms6dCx0YXNrOm4saW50ZW50OmEsY2FjaGVLZXk6cyxwYWdlSW5kZXg6bD10aGlzLnBhZ2VJbmRleCxhbm5vdGF0aW9uU3RvcmFnZTp1PW51bGwsbW9kaWZpZWRJZHM6cD1udWxsfSl7Y29uc3QgZD10aGlzLmdldENvbnRlbnRTdHJlYW0oKSxnPXRoaXMubG9hZFJlc291cmNlcyhkbiksYj10aGlzLiNydChlLGwpLHc9dGhpcy54ZmFGYWN0b3J5P251bGw6Z2V0TmV3QW5ub3RhdGlvbnNNYXAodSksaj13Py5nZXQodGhpcy5wYWdlSW5kZXgpO2xldCBrPVByb21pc2UucmVzb2x2ZShudWxsKSx5PW51bGw7aWYoail7Y29uc3QgZT10aGlzLnBkZk1hbmFnZXIuZW5zdXJlRG9jKCJhbm5vdGF0aW9uR2xvYmFscyIpO2xldCB0O2NvbnN0IGE9bmV3IFNldDtmb3IoY29uc3R7Yml0bWFwSWQ6ZSxiaXRtYXA6dH1vZiBqKSFlfHx0fHxhLmhhcyhlKXx8YS5hZGQoZSk7Y29uc3R7aXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6c309dGhpcy5ldmFsdWF0b3JPcHRpb25zO2lmKGEuc2l6ZT4wKXtjb25zdCBlPWouc2xpY2UoKTtmb3IoY29uc3RbdCxuXW9mIHUpdC5zdGFydHNXaXRoKG0pJiZuLmJpdG1hcCYmYS5oYXMobi5iaXRtYXBJZCkmJmUucHVzaChuKTt0PUFubm90YXRpb25GYWN0b3J5LmdlbmVyYXRlSW1hZ2VzKGUsdGhpcy54cmVmLHMpfWVsc2UgdD1Bbm5vdGF0aW9uRmFjdG9yeS5nZW5lcmF0ZUltYWdlcyhqLHRoaXMueHJlZixzKTt5PW5ldyBSZWZTZXQ7az1Qcm9taXNlLmFsbChbZSx0aGlzLiNsdChqLHksbnVsbCldKS50aGVuKChbZV0pPT5lP0Fubm90YXRpb25GYWN0b3J5LnByaW50TmV3QW5ub3RhdGlvbnMoZSxiLG4saix0KTpudWxsKX1jb25zdCBxPVByb21pc2UuYWxsKFtkLGddKS50aGVuKGFzeW5jKFtyXSk9Pntjb25zdCBpPWF3YWl0IHRoaXMuI2Z0KHIuZGljdCxkbiksbz1uZXcgT3BlcmF0b3JMaXN0KGEsdCk7ZS5zZW5kKCJTdGFydFJlbmRlclBhZ2UiLHt0cmFuc3BhcmVuY3k6Yi5oYXNCbGVuZE1vZGVzKGksdGhpcy5ub25CbGVuZE1vZGVzU2V0KSxwYWdlSW5kZXg6bCxjYWNoZUtleTpzfSk7YXdhaXQgYi5nZXRPcGVyYXRvckxpc3Qoe3N0cmVhbTpyLHRhc2s6bixyZXNvdXJjZXM6aSxvcGVyYXRvckxpc3Q6b30pO3JldHVybiBvfSk7bGV0W3YsUyx4XT1hd2FpdCBQcm9taXNlLmFsbChbcSx0aGlzLl9wYXJzZWRBbm5vdGF0aW9ucyxrXSk7aWYoeCl7Uz1TLmZpbHRlcihlPT4hKGUucmVmJiZ5LmhhcyhlLnJlZikpKTtmb3IobGV0IGU9MCx0PXgubGVuZ3RoO2U8dDtlKyspe2NvbnN0IG49eFtlXTtpZihuLnJlZlRvUmVwbGFjZSl7Y29uc3QgYT1TLmZpbmRJbmRleChlPT5lLnJlZiYmaXNSZWZzRXF1YWwoZS5yZWYsbi5yZWZUb1JlcGxhY2UpKTtpZihhPj0wKXtTLnNwbGljZShhLDEsbik7eC5zcGxpY2UoZS0tLDEpO3QtLX19fVM9Uy5jb25jYXQoeCl9aWYoMD09PVMubGVuZ3RofHxhJmMpe3YuZmx1c2goITApO3JldHVybntsZW5ndGg6di50b3RhbExlbmd0aH19Y29uc3QgQz0hIShhJmYpLEY9ISEoYSZoKSxUPSEhKGEmciksSD0hIShhJmkpLE89ISEoYSZvKSxSPVtdO2Zvcihjb25zdCBlIG9mIFMpKFR8fEgmJmUubXVzdEJlVmlld2VkKHUsQykmJmUubXVzdEJlVmlld2VkV2hlbkVkaXRpbmcoRixwKXx8TyYmZS5tdXN0QmVQcmludGVkKHUpKSYmUi5wdXNoKGUuZ2V0T3BlcmF0b3JMaXN0KGIsbixhLHUpLmNhdGNoKGZ1bmN0aW9uKGUpe3dhcm4oYGdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIGFubm90YXRpb24gZGF0YSBkdXJpbmcgIiR7bi5uYW1lfSIgdGFzazogIiR7ZX0iLmApO3JldHVybntvcExpc3Q6bnVsbCxzZXBhcmF0ZUZvcm06ITEsc2VwYXJhdGVDYW52YXM6ITF9fSkpO2NvbnN0IEQ9YXdhaXQgUHJvbWlzZS5hbGwoUik7bGV0IE09ITEsRT0hMTtmb3IoY29uc3R7b3BMaXN0OmUsc2VwYXJhdGVGb3JtOnQsc2VwYXJhdGVDYW52YXM6bn1vZiBEKXt2LmFkZE9wTGlzdChlKTtNfHw9dDtFfHw9bn12LmZsdXNoKCEwLHtmb3JtOk0sY2FudmFzOkV9KTtyZXR1cm57bGVuZ3RoOnYudG90YWxMZW5ndGh9fWFzeW5jIGV4dHJhY3RUZXh0Q29udGVudCh7aGFuZGxlcjplLHRhc2s6dCxpbmNsdWRlTWFya2VkQ29udGVudDpuLGRpc2FibGVOb3JtYWxpemF0aW9uOmEsc2luazpzLGludGVyc2VjdG9yOnI9bnVsbH0pe2NvbnN0IGk9dGhpcy5nZXRDb250ZW50U3RyZWFtKCksbz10aGlzLmxvYWRSZXNvdXJjZXMoZ24pLGw9dGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coImxhbmciKSxbZiwsY109YXdhaXQgUHJvbWlzZS5hbGwoW2ksbyxsXSksaD1hd2FpdCB0aGlzLiNmdChmLmRpY3QsZ24pO3JldHVybiB0aGlzLiNydChlKS5nZXRUZXh0Q29udGVudCh7c3RyZWFtOmYsdGFzazp0LHJlc291cmNlczpoLGluY2x1ZGVNYXJrZWRDb250ZW50Om4sZGlzYWJsZU5vcm1hbGl6YXRpb246YSxzaW5rOnMsdmlld0JveDp0aGlzLnZpZXcsbGFuZzpjLGludGVyc2VjdG9yOnJ9KX1hc3luYyBnZXRTdHJ1Y3RUcmVlKCl7Y29uc3QgZT1hd2FpdCB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygic3RydWN0VHJlZVJvb3QiKTtpZighZSlyZXR1cm4gbnVsbDthd2FpdCB0aGlzLl9wYXJzZWRBbm5vdGF0aW9uczt0cnl7Y29uc3QgdD1hd2FpdCB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHRoaXMsIl9wYXJzZVN0cnVjdFRyZWUiLFtlXSk7cmV0dXJuIGF3YWl0IHRoaXMucGRmTWFuYWdlci5lbnN1cmUodCwic2VyaWFsaXphYmxlIil9Y2F0Y2goZSl7d2FybihgZ2V0U3RydWN0VHJlZTogIiR7ZX0iLmApO3JldHVybiBudWxsfX1fcGFyc2VTdHJ1Y3RUcmVlKGUpe2NvbnN0IHQ9bmV3IFN0cnVjdFRyZWVQYWdlKGUsdGhpcy5wYWdlRGljdCk7dC5wYXJzZSh0aGlzLnJlZik7cmV0dXJuIHR9YXN5bmMgZ2V0QW5ub3RhdGlvbnNEYXRhKGUsdCxuKXtjb25zdCBhPWF3YWl0IHRoaXMuX3BhcnNlZEFubm90YXRpb25zO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gYTtjb25zdCBzPVtdLGw9W107bGV0IGY7Y29uc3QgYz0hIShuJnIpLGg9ISEobiZpKSx1PSEhKG4mbyksbT1bXTtmb3IoY29uc3QgbiBvZiBhKXtjb25zdCBhPWN8fGgmJm4udmlld2FibGU7KGF8fHUmJm4ucHJpbnRhYmxlKSYmcy5wdXNoKG4uZGF0YSk7aWYobi5oYXNUZXh0Q29udGVudCYmYSl7Zj8/PXRoaXMuI3J0KGUpO2wucHVzaChuLmV4dHJhY3RUZXh0Q29udGVudChmLHQsWy0xLzAsLTEvMCwxLzAsMS8wXSkuY2F0Y2goZnVuY3Rpb24oZSl7d2FybihgZ2V0QW5ub3RhdGlvbnNEYXRhIC0gaWdub3JpbmcgdGV4dENvbnRlbnQgZHVyaW5nICIke3QubmFtZX0iIHRhc2s6ICIke2V9Ii5gKX0pKX1lbHNlIG4ub3ZlcmxheXNUZXh0Q29udGVudCYmYSYmbS5wdXNoKG4pfWlmKG0ubGVuZ3RoPjApe2NvbnN0IG49bmV3IEludGVyc2VjdG9yKG0pO2wucHVzaCh0aGlzLmV4dHJhY3RUZXh0Q29udGVudCh7aGFuZGxlcjplLHRhc2s6dCxpbmNsdWRlTWFya2VkQ29udGVudDohMSxkaXNhYmxlTm9ybWFsaXphdGlvbjohMSxzaW5rOm51bGwsdmlld0JveDp0aGlzLnZpZXcsbGFuZzpudWxsLGludGVyc2VjdG9yOm59KS50aGVuKCgpPT57bi5zZXRUZXh0KCl9KSl9YXdhaXQgUHJvbWlzZS5hbGwobCk7cmV0dXJuIHN9Z2V0IGFubm90YXRpb25zKCl7Y29uc3QgZT10aGlzLiNpdCgiQW5ub3RzIik7cmV0dXJuIHNoYWRvdyh0aGlzLCJhbm5vdGF0aW9ucyIsQXJyYXkuaXNBcnJheShlKT9lOltdKX1nZXQgX3BhcnNlZEFubm90YXRpb25zKCl7Y29uc3QgZT10aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHRoaXMsImFubm90YXRpb25zIikudGhlbihhc3luYyBlPT57aWYoMD09PWUubGVuZ3RoKXJldHVybiBlO2NvbnN0W3Qsbl09YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIiksdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZURvYygiZmllbGRPYmplY3RzIildKTtpZighdClyZXR1cm5bXTtjb25zdCBhPW4/Lm9ycGhhbkZpZWxkcyxzPVtdO2Zvcihjb25zdCBuIG9mIGUpcy5wdXNoKEFubm90YXRpb25GYWN0b3J5LmNyZWF0ZSh0aGlzLnhyZWYsbix0LHRoaXMuX2xvY2FsSWRGYWN0b3J5LCExLGEsbnVsbCx0aGlzLnJlZikuY2F0Y2goZnVuY3Rpb24oZSl7d2FybihgX3BhcnNlZEFubm90YXRpb25zOiAiJHtlfSIuYCk7cmV0dXJuIG51bGx9KSk7Y29uc3Qgcj1bXTtsZXQgaSxvO2Zvcihjb25zdCBlIG9mIGF3YWl0IFByb21pc2UuYWxsKHMpKWUmJihlIGluc3RhbmNlb2YgV2lkZ2V0QW5ub3RhdGlvbj8ob3x8PVtdKS5wdXNoKGUpOmUgaW5zdGFuY2VvZiBQb3B1cEFubm90YXRpb24/KGl8fD1bXSkucHVzaChlKTpyLnB1c2goZSkpO28mJnIucHVzaCguLi5vKTtpJiZyLnB1c2goLi4uaSk7cmV0dXJuIHJ9KTt0aGlzLiNhdD0hMDtyZXR1cm4gc2hhZG93KHRoaXMsIl9wYXJzZWRBbm5vdGF0aW9ucyIsZSl9Z2V0IGpzQWN0aW9ucygpe3JldHVybiBzaGFkb3codGhpcywianNBY3Rpb25zIixjb2xsZWN0QWN0aW9ucyh0aGlzLnhyZWYsdGhpcy5wYWdlRGljdCxpZSkpfWFzeW5jIGNvbGxlY3RBbm5vdGF0aW9uc0J5VHlwZShlLHQsbixhLHMpe2NvbnN0e3BhZ2VJbmRleDpyfT10aGlzO2lmKHRoaXMuI2F0KXtjb25zdCBlPWF3YWl0IHRoaXMuX3BhcnNlZEFubm90YXRpb25zO2Zvcihjb25zdHtkYXRhOnR9b2YgZSlpZighbnx8bi5oYXModC5hbm5vdGF0aW9uVHlwZSkpe3QucGFnZUluZGV4PXI7YS5wdXNoKFByb21pc2UucmVzb2x2ZSh0KSl9cmV0dXJufWNvbnN0IGk9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJhbm5vdGF0aW9ucyIpO2Zvcihjb25zdCBvIG9mIGkpYS5wdXNoKEFubm90YXRpb25GYWN0b3J5LmNyZWF0ZSh0aGlzLnhyZWYsbyxzLHRoaXMuX2xvY2FsSWRGYWN0b3J5LCExLG51bGwsbix0aGlzLnJlZikudGhlbihhc3luYyBuPT57aWYoIW4pcmV0dXJuIG51bGw7bi5kYXRhLnBhZ2VJbmRleD1yO2lmKG4uaGFzVGV4dENvbnRlbnQmJm4udmlld2FibGUpe2NvbnN0IGE9dGhpcy4jcnQoZSk7YXdhaXQgbi5leHRyYWN0VGV4dENvbnRlbnQoYSx0LFstMS8wLC0xLzAsMS8wLDEvMF0pfXJldHVybiBuLmRhdGF9KS5jYXRjaChmdW5jdGlvbihlKXt3YXJuKGBjb2xsZWN0QW5ub3RhdGlvbnNCeVR5cGU6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH0pKX19Y29uc3QgZmw9bmV3IFVpbnQ4QXJyYXkoWzM3LDgwLDY4LDcwLDQ1XSksY2w9bmV3IFVpbnQ4QXJyYXkoWzExNSwxMTYsOTcsMTE0LDExNiwxMjAsMTE0LDEwMSwxMDJdKSxobD1uZXcgVWludDhBcnJheShbMTAxLDExMCwxMDAsMTExLDk4LDEwNl0pO2Z1bmN0aW9uIGZpbmQoZSx0LG49MTAyNCxhPSExKXtjb25zdCBzPXQubGVuZ3RoLHI9ZS5wZWVrQnl0ZXMobiksaT1yLmxlbmd0aC1zO2lmKGk8PTApcmV0dXJuITE7aWYoYSl7Y29uc3Qgbj1zLTE7bGV0IGE9ci5sZW5ndGgtMTtmb3IoO2E+PW47KXtsZXQgaT0wO2Zvcig7aTxzJiZyW2EtaV09PT10W24taV07KWkrKztpZihpPj1zKXtlLnBvcys9YS1uO3JldHVybiEwfWEtLX19ZWxzZXtsZXQgbj0wO2Zvcig7bjw9aTspe2xldCBhPTA7Zm9yKDthPHMmJnJbbithXT09PXRbYV07KWErKztpZihhPj1zKXtlLnBvcys9bjtyZXR1cm4hMH1uKyt9fXJldHVybiExfWNsYXNzIFBERkRvY3VtZW50eyNjdD1uZXcgTWFwOyNodD1udWxsO2NvbnN0cnVjdG9yKGUsdCl7aWYodC5sZW5ndGg8PTApdGhyb3cgbmV3IEludmFsaWRQREZFeGNlcHRpb24oIlRoZSBQREYgZmlsZSBpcyBlbXB0eSwgaS5lLiBpdHMgc2l6ZSBpcyB6ZXJvIGJ5dGVzLiIpO3RoaXMucGRmTWFuYWdlcj1lO3RoaXMuc3RyZWFtPXQ7dGhpcy54cmVmPW5ldyBYUmVmKHQsZSk7Y29uc3Qgbj17Zm9udDowfTt0aGlzLl9nbG9iYWxJZEZhY3Rvcnk9Y2xhc3N7c3RhdGljIGdldERvY0lkKCl7cmV0dXJuYGdfJHtlLmRvY0lkfWB9c3RhdGljIGNyZWF0ZUZvbnRJZCgpe3JldHVybiJmIisgKytuLmZvbnR9c3RhdGljIGNyZWF0ZU9iaklkKCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgY3JlYXRlT2JqSWRgIGNhbGxlZC4iKX1zdGF0aWMgZ2V0UGFnZU9iaklkKCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgZ2V0UGFnZU9iaklkYCBjYWxsZWQuIil9fX1wYXJzZShlKXt0aGlzLnhyZWYucGFyc2UoZSk7dGhpcy5jYXRhbG9nPW5ldyBDYXRhbG9nKHRoaXMucGRmTWFuYWdlcix0aGlzLnhyZWYpfWdldCBsaW5lYXJpemF0aW9uKCl7bGV0IGU9bnVsbDt0cnl7ZT1MaW5lYXJpemF0aW9uLmNyZWF0ZSh0aGlzLnN0cmVhbSl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7aW5mbyhlKX1yZXR1cm4gc2hhZG93KHRoaXMsImxpbmVhcml6YXRpb24iLGUpfWdldCBzdGFydFhSZWYoKXtjb25zdCBlPXRoaXMuc3RyZWFtO2xldCB0PTA7aWYodGhpcy5saW5lYXJpemF0aW9uKXtlLnJlc2V0KCk7aWYoZmluZChlLGhsKSl7ZS5za2lwKDYpO2xldCBuPWUucGVla0J5dGUoKTtmb3IoO2lzV2hpdGVTcGFjZShuKTspe2UucG9zKys7bj1lLnBlZWtCeXRlKCl9dD1lLnBvcy1lLnN0YXJ0fX1lbHNle2NvbnN0IG49MTAyNCxhPWNsLmxlbmd0aDtsZXQgcz0hMSxyPWUuZW5kO2Zvcig7IXMmJnI+MDspe3ItPW4tYTtyPDAmJihyPTApO2UucG9zPXI7cz1maW5kKGUsY2wsbiwhMCl9aWYocyl7ZS5za2lwKDkpO2xldCBuO2Rve249ZS5nZXRCeXRlKCl9d2hpbGUoaXNXaGl0ZVNwYWNlKG4pKTtsZXQgYT0iIjtmb3IoO24+PTMyJiZuPD01Nzspe2ErPVN0cmluZy5mcm9tQ2hhckNvZGUobik7bj1lLmdldEJ5dGUoKX10PXBhcnNlSW50KGEsMTApO2lzTmFOKHQpJiYodD0wKX19cmV0dXJuIHNoYWRvdyh0aGlzLCJzdGFydFhSZWYiLHQpfWNoZWNrSGVhZGVyKCl7Y29uc3QgZT10aGlzLnN0cmVhbTtlLnJlc2V0KCk7aWYoIWZpbmQoZSxmbCkpcmV0dXJuO2UubW92ZVN0YXJ0KCk7ZS5za2lwKGZsLmxlbmd0aCk7bGV0IHQsbj0iIjtmb3IoOyh0PWUuZ2V0Qnl0ZSgpKT4zMiYmbi5sZW5ndGg8Nzspbis9U3RyaW5nLmZyb21DaGFyQ29kZSh0KTt1bi50ZXN0KG4pP3RoaXMuI2h0PW46d2FybihgSW52YWxpZCBQREYgaGVhZGVyIHZlcnNpb246ICR7bn1gKX1wYXJzZVN0YXJ0WFJlZigpe3RoaXMueHJlZi5zZXRTdGFydFhSZWYodGhpcy5zdGFydFhSZWYpfWdldCBudW1QYWdlcygpe2xldCBlPTA7ZT10aGlzLmNhdGFsb2cuaGFzQWN0dWFsTnVtUGFnZXM/dGhpcy5jYXRhbG9nLm51bVBhZ2VzOnRoaXMueGZhRmFjdG9yeT90aGlzLnhmYUZhY3RvcnkuZ2V0TnVtUGFnZXMoKTp0aGlzLmxpbmVhcml6YXRpb24/dGhpcy5saW5lYXJpemF0aW9uLm51bVBhZ2VzOnRoaXMuY2F0YWxvZy5udW1QYWdlcztyZXR1cm4gc2hhZG93KHRoaXMsIm51bVBhZ2VzIixlKX0jdXQoZSx0PTApe3JldHVybiEhQXJyYXkuaXNBcnJheShlKSYmZS5ldmVyeShlPT57aWYoISgoZT10aGlzLnhyZWYuZmV0Y2hJZlJlZihlKSlpbnN0YW5jZW9mIERpY3QpKXJldHVybiExO2lmKGUuaGFzKCJLaWRzIikpe2lmKCsrdD4xMCl7d2FybigiI2hhc09ubHlEb2N1bWVudFNpZ25hdHVyZXM6IG1heGltdW0gcmVjdXJzaW9uIGRlcHRoIHJlYWNoZWQiKTtyZXR1cm4hMX1yZXR1cm4gdGhpcy4jdXQoZS5nZXQoIktpZHMiKSx0KX1jb25zdCBuPWlzTmFtZShlLmdldCgiRlQiKSwiU2lnIiksYT1lLmdldCgiUmVjdCIpLHM9QXJyYXkuaXNBcnJheShhKSYmYS5ldmVyeShlPT4wPT09ZSk7cmV0dXJuIG4mJnN9KX1nZXQgX3hmYVN0cmVhbXMoKXtjb25zdHthY3JvRm9ybTplfT10aGlzLmNhdGFsb2c7aWYoIWUpcmV0dXJuIG51bGw7Y29uc3QgdD1lLmdldCgiWEZBIiksbj1uZXcgTWFwKFsieGRwOnhkcCIsInRlbXBsYXRlIiwiZGF0YXNldHMiLCJjb25maWciLCJjb25uZWN0aW9uU2V0IiwibG9jYWxlU2V0Iiwic3R5bGVzaGVldCIsIi94ZHA6eGRwIl0ubWFwKGU9PltlLG51bGxdKSk7aWYodCBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJiF0LmlzRW1wdHkpe24uc2V0KCJ4ZHA6eGRwIix0KTtyZXR1cm4gbn1pZighQXJyYXkuaXNBcnJheSh0KXx8MD09PXQubGVuZ3RoKXJldHVybiBudWxsO2ZvcihsZXQgZT0wLGE9dC5sZW5ndGg7ZTxhO2UrPTIpe2xldCBzO3M9MD09PWU/InhkcDp4ZHAiOmU9PT1hLTI/Ii94ZHA6eGRwIjp0W2VdO2lmKCFuLmhhcyhzKSljb250aW51ZTtjb25zdCByPXRoaXMueHJlZi5mZXRjaElmUmVmKHRbZSsxXSk7ciBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJiFyLmlzRW1wdHkmJm4uc2V0KHMscil9cmV0dXJuIG59Z2V0IHhmYURhdGFzZXRzKCl7Y29uc3QgZT10aGlzLl94ZmFTdHJlYW1zO2lmKCFlKXJldHVybiBzaGFkb3codGhpcywieGZhRGF0YXNldHMiLG51bGwpO2Zvcihjb25zdCB0IG9mWyJkYXRhc2V0cyIsInhkcDp4ZHAiXSl7Y29uc3Qgbj1lLmdldCh0KTtpZihuKXRyeXtjb25zdCBlPXN0cmluZ1RvVVRGOFN0cmluZyhuLmdldFN0cmluZygpKTtyZXR1cm4gc2hhZG93KHRoaXMsInhmYURhdGFzZXRzIixuZXcgRGF0YXNldFJlYWRlcih7W3RdOmV9KSl9Y2F0Y2h7d2FybigiWEZBIC0gSW52YWxpZCB1dGYtOCBzdHJpbmcuIik7YnJlYWt9fXJldHVybiBzaGFkb3codGhpcywieGZhRGF0YXNldHMiLG51bGwpfWdldCB4ZmFEYXRhKCl7Y29uc3QgZT10aGlzLl94ZmFTdHJlYW1zO2lmKCFlKXJldHVybiBudWxsO2NvbnN0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3RbbixhXW9mIGUpaWYoYSl0cnl7dFtuXT1zdHJpbmdUb1VURjhTdHJpbmcoYS5nZXRTdHJpbmcoKSl9Y2F0Y2h7d2FybigiWEZBIC0gSW52YWxpZCB1dGYtOCBzdHJpbmcuIik7cmV0dXJuIG51bGx9cmV0dXJuIHR9Z2V0IHhmYUZhY3RvcnkoKXtsZXQgZTt0aGlzLnBkZk1hbmFnZXIuZW5hYmxlWGZhJiZ0aGlzLmNhdGFsb2cubmVlZHNSZW5kZXJpbmcmJnRoaXMuZm9ybUluZm8uaGFzWGZhJiYhdGhpcy5mb3JtSW5mby5oYXNBY3JvRm9ybSYmKGU9dGhpcy54ZmFEYXRhKTtyZXR1cm4gc2hhZG93KHRoaXMsInhmYUZhY3RvcnkiLGU/bmV3IFhGQUZhY3RvcnkoZSk6bnVsbCl9Z2V0IGlzUHVyZVhmYSgpe3JldHVybiEhdGhpcy54ZmFGYWN0b3J5JiZ0aGlzLnhmYUZhY3RvcnkuaXNWYWxpZCgpfWdldCBodG1sRm9yWGZhKCl7cmV0dXJuIHRoaXMueGZhRmFjdG9yeT90aGlzLnhmYUZhY3RvcnkuZ2V0UGFnZXMoKTpudWxsfWFzeW5jI210KCl7Y29uc3QgZT1hd2FpdCB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygieGZhSW1hZ2VzIik7ZSYmdGhpcy54ZmFGYWN0b3J5LnNldEltYWdlcyhlKX1hc3luYyNwdChlLHQpe2NvbnN0IG49YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIik7aWYoIW4pcmV0dXJuO2NvbnN0IGE9YXdhaXQgbi5nZXRBc3luYygiRFIiKTtpZighKGEgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47YXdhaXQgT2JqZWN0TG9hZGVyLmxvYWQoYSxbIkZvbnQiXSx0aGlzLnhyZWYpO2NvbnN0IHM9YS5nZXQoIkZvbnQiKTtpZighKHMgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47Y29uc3Qgcj1PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5wZGZNYW5hZ2VyLmV2YWx1YXRvck9wdGlvbnMse3VzZVN5c3RlbUZvbnRzOiExfSkse2J1aWx0SW5DTWFwQ2FjaGU6aSxmb250Q2FjaGU6byxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6bH09dGhpcy5jYXRhbG9nLGY9bmV3IFBhcnRpYWxFdmFsdWF0b3Ioe3hyZWY6dGhpcy54cmVmLGhhbmRsZXI6ZSxwYWdlSW5kZXg6LTEsaWRGYWN0b3J5OnRoaXMuX2dsb2JhbElkRmFjdG9yeSxmb250Q2FjaGU6byxidWlsdEluQ01hcENhY2hlOmksc3RhbmRhcmRGb250RGF0YUNhY2hlOmwsb3B0aW9uczpyfSksYz1uZXcgT3BlcmF0b3JMaXN0LGg9W10sdT17Z2V0IGZvbnQoKXtyZXR1cm4gaC5hdCgtMSl9LHNldCBmb250KGUpe2gucHVzaChlKX0sY2xvbmUoKXtyZXR1cm4gdGhpc319LHBhcnNlRm9udD0oZSxuLHMpPT5mLmhhbmRsZVNldEZvbnQoYSxbTmFtZS5nZXQoZSksMV0sbnVsbCxjLHQsdSxuLHMpLmNhdGNoKGU9Pnt3YXJuKGBsb2FkWGZhRm9udHM6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH0pLG09W107Zm9yKGNvbnN0W2UsdF1vZiBzKXtjb25zdCBuPXQuZ2V0KCJGb250RGVzY3JpcHRvciIpO2lmKCEobiBpbnN0YW5jZW9mIERpY3QpKWNvbnRpbnVlO2xldCBhPW4uZ2V0KCJGb250RmFtaWx5Iik7YT1hLnJlcGxhY2VBbGwoL1sgXSsoXGQpL2csIiQxIik7Y29uc3Qgcz17Zm9udEZhbWlseTphLGZvbnRXZWlnaHQ6bi5nZXQoIkZvbnRXZWlnaHQiKSxpdGFsaWNBbmdsZTotbi5nZXQoIkl0YWxpY0FuZ2xlIil9O3ZhbGlkYXRlQ1NTRm9udChzKSYmbS5wdXNoKHBhcnNlRm9udChlLG51bGwscykpfWF3YWl0IFByb21pc2UuYWxsKG0pO2NvbnN0IHA9dGhpcy54ZmFGYWN0b3J5LnNldEZvbnRzKGgpO2lmKCFwKXJldHVybjtyLmlnbm9yZUVycm9ycz0hMDttLmxlbmd0aD0wO2gubGVuZ3RoPTA7Y29uc3QgZD1uZXcgU2V0O2Zvcihjb25zdCBlIG9mIHApZ2V0WGZhRm9udE5hbWUoYCR7ZX0tUmVndWxhcmApfHxkLmFkZChlKTtkLnNpemUmJnAucHVzaCgiUGRmSlMtRmFsbGJhY2siKTtmb3IoY29uc3QgZSBvZiBwKWlmKCFkLmhhcyhlKSlmb3IoY29uc3QgdCBvZlt7bmFtZToiUmVndWxhciIsZm9udFdlaWdodDo0MDAsaXRhbGljQW5nbGU6MH0se25hbWU6IkJvbGQiLGZvbnRXZWlnaHQ6NzAwLGl0YWxpY0FuZ2xlOjB9LHtuYW1lOiJJdGFsaWMiLGZvbnRXZWlnaHQ6NDAwLGl0YWxpY0FuZ2xlOjEyfSx7bmFtZToiQm9sZEl0YWxpYyIsZm9udFdlaWdodDo3MDAsaXRhbGljQW5nbGU6MTJ9XSl7Y29uc3Qgbj1gJHtlfS0ke3QubmFtZX1gO20ucHVzaChwYXJzZUZvbnQobixnZXRYZmFGb250RGljdChuKSx7Zm9udEZhbWlseTplLGZvbnRXZWlnaHQ6dC5mb250V2VpZ2h0LGl0YWxpY0FuZ2xlOnQuaXRhbGljQW5nbGV9KSl9YXdhaXQgUHJvbWlzZS5hbGwobSk7dGhpcy54ZmFGYWN0b3J5LmFwcGVuZEZvbnRzKGgsZCl9bG9hZFhmYVJlc291cmNlcyhlLHQpe3JldHVybiBQcm9taXNlLmFsbChbdGhpcy4jcHQoZSx0KS5jYXRjaCgoKT0+e30pLHRoaXMuI210KCldKX1zZXJpYWxpemVYZmFEYXRhKGUpe3JldHVybiB0aGlzLnhmYUZhY3Rvcnk/dGhpcy54ZmFGYWN0b3J5LnNlcmlhbGl6ZURhdGEoZSk6bnVsbH1nZXQgdmVyc2lvbigpe3JldHVybiB0aGlzLmNhdGFsb2cudmVyc2lvbnx8dGhpcy4jaHR9Z2V0IGZvcm1JbmZvKCl7Y29uc3QgZT17aGFzRmllbGRzOiExLGhhc0Fjcm9Gb3JtOiExLGhhc1hmYTohMSxoYXNTaWduYXR1cmVzOiExfSx7YWNyb0Zvcm06dH09dGhpcy5jYXRhbG9nO2lmKCF0KXJldHVybiBzaGFkb3codGhpcywiZm9ybUluZm8iLGUpO3RyeXtjb25zdCBuPXQuZ2V0KCJGaWVsZHMiKSxhPUFycmF5LmlzQXJyYXkobikmJm4ubGVuZ3RoPjA7ZS5oYXNGaWVsZHM9YTtjb25zdCBzPXQuZ2V0KCJYRkEiKTtlLmhhc1hmYT1BcnJheS5pc0FycmF5KHMpJiZzLmxlbmd0aD4wfHxzIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmIXMuaXNFbXB0eTtjb25zdCByPSEhKDEmdC5nZXQoIlNpZ0ZsYWdzIikpLGk9ciYmdGhpcy4jdXQobik7ZS5oYXNBY3JvRm9ybT1hJiYhaTtlLmhhc1NpZ25hdHVyZXM9cn1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKGBDYW5ub3QgZmV0Y2ggZm9ybSBpbmZvcm1hdGlvbjogIiR7ZX0iLmApfXJldHVybiBzaGFkb3codGhpcywiZm9ybUluZm8iLGUpfWdldCBkb2N1bWVudEluZm8oKXtjb25zdHtjYXRhbG9nOmUsZm9ybUluZm86dCx4cmVmOm59PXRoaXMsYT17UERGRm9ybWF0VmVyc2lvbjp0aGlzLnZlcnNpb24sTGFuZ3VhZ2U6ZS5sYW5nLEVuY3J5cHRGaWx0ZXJOYW1lOm4uZW5jcnlwdD8uZmlsdGVyTmFtZT8/bnVsbCxJc0xpbmVhcml6ZWQ6ISF0aGlzLmxpbmVhcml6YXRpb24sSXNBY3JvRm9ybVByZXNlbnQ6dC5oYXNBY3JvRm9ybSxJc1hGQVByZXNlbnQ6dC5oYXNYZmEsSXNDb2xsZWN0aW9uUHJlc2VudDohIWUuY29sbGVjdGlvbixJc1NpZ25hdHVyZXNQcmVzZW50OnQuaGFzU2lnbmF0dXJlc307bGV0IHM7dHJ5e3M9bi50cmFpbGVyLmdldCgiSW5mbyIpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO2luZm8oIlRoZSBkb2N1bWVudCBpbmZvcm1hdGlvbiBkaWN0aW9uYXJ5IGlzIGludmFsaWQuIil9aWYoIShzIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIHNoYWRvdyh0aGlzLCJkb2N1bWVudEluZm8iLGEpO2Zvcihjb25zdFtlLHRdb2Ygcyl7c3dpdGNoKGUpe2Nhc2UiVGl0bGUiOmNhc2UiQXV0aG9yIjpjYXNlIlN1YmplY3QiOmNhc2UiS2V5d29yZHMiOmNhc2UiQ3JlYXRvciI6Y2FzZSJQcm9kdWNlciI6Y2FzZSJDcmVhdGlvbkRhdGUiOmNhc2UiTW9kRGF0ZSI6aWYoInN0cmluZyI9PXR5cGVvZiB0KXthW2VdPXN0cmluZ1RvUERGU3RyaW5nKHQpO2NvbnRpbnVlfWJyZWFrO2Nhc2UiVHJhcHBlZCI6aWYodCBpbnN0YW5jZW9mIE5hbWUpe2FbZV09dDtjb250aW51ZX1icmVhaztkZWZhdWx0OmxldCBuO3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJzdHJpbmciOm49c3RyaW5nVG9QREZTdHJpbmcodCk7YnJlYWs7Y2FzZSJudW1iZXIiOmNhc2UiYm9vbGVhbiI6bj10O2JyZWFrO2RlZmF1bHQ6dCBpbnN0YW5jZW9mIE5hbWUmJihuPXQpfWlmKHZvaWQgMD09PW4pe3dhcm4oYEJhZCB2YWx1ZSwgZm9yIGN1c3RvbSBrZXkgIiR7ZX0iLCBpbiBJbmZvOiAke3R9LmApO2NvbnRpbnVlfWEuQ3VzdG9tPz89T2JqZWN0LmNyZWF0ZShudWxsKTthLkN1c3RvbVtlXT1uO2NvbnRpbnVlfXdhcm4oYEJhZCB2YWx1ZSwgZm9yIGtleSAiJHtlfSIsIGluIEluZm86ICR7dH0uYCl9cmV0dXJuIHNoYWRvdyh0aGlzLCJkb2N1bWVudEluZm8iLGEpfWdldCBmaW5nZXJwcmludHMoKXtjb25zdCBlPSJcMCIucmVwZWF0KDE2KTtmdW5jdGlvbiB2YWxpZGF0ZSh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJjE2PT09dC5sZW5ndGgmJnQhPT1lfWNvbnN0IHQ9dGhpcy54cmVmLnRyYWlsZXIuZ2V0KCJJRCIpO2xldCBuLGE7aWYoQXJyYXkuaXNBcnJheSh0KSYmdmFsaWRhdGUodFswXSkpe249c3RyaW5nVG9CeXRlcyh0WzBdKTt0WzFdIT09dFswXSYmdmFsaWRhdGUodFsxXSkmJihhPXN0cmluZ1RvQnl0ZXModFsxXSkpfWVsc2Ugbj1jYWxjdWxhdGVNRDUodGhpcy5zdHJlYW0uZ2V0Qnl0ZVJhbmdlKDAsMTAyNCksMCwxMDI0KTtyZXR1cm4gc2hhZG93KHRoaXMsImZpbmdlcnByaW50cyIsW24udG9IZXgoKSxhPy50b0hleCgpPz9udWxsXSl9YXN5bmMjZHQoZSl7Y29uc3R7Y2F0YWxvZzp0LGxpbmVhcml6YXRpb246bix4cmVmOmF9PXRoaXMscz1SZWYuZ2V0KG4ub2JqZWN0TnVtYmVyRmlyc3QsMCk7dHJ5e2NvbnN0IGU9YXdhaXQgYS5mZXRjaEFzeW5jKHMpO2lmKGUgaW5zdGFuY2VvZiBEaWN0KXtsZXQgbj1lLmdldFJhdygiVHlwZSIpO24gaW5zdGFuY2VvZiBSZWYmJihuPWF3YWl0IGEuZmV0Y2hBc3luYyhuKSk7aWYoaXNOYW1lKG4sIlBhZ2UiKXx8IWUuaGFzKCJUeXBlIikmJiFlLmhhcygiS2lkcyIpJiZlLmhhcygiQ29udGVudHMiKSl7dC5wYWdlS2lkc0NvdW50Q2FjaGUuaGFzKHMpfHx0LnBhZ2VLaWRzQ291bnRDYWNoZS5wdXQocywxKTt0LnBhZ2VJbmRleENhY2hlLmhhcyhzKXx8dC5wYWdlSW5kZXhDYWNoZS5wdXQocywwKTtyZXR1cm5bZSxzXX19dGhyb3cgbmV3IEZvcm1hdEVycm9yKCJUaGUgTGluZWFyaXphdGlvbiBkaWN0aW9uYXJ5IGRvZXNuJ3QgcG9pbnQgdG8gYSB2YWxpZCBQYWdlIGRpY3Rpb25hcnkuIil9Y2F0Y2gobil7d2FybihgX2dldExpbmVhcml6YXRpb25QYWdlOiAiJHtuLm1lc3NhZ2V9Ii5gKTtyZXR1cm4gdC5nZXRQYWdlRGljdChlKX19Z2V0UGFnZShlKXtjb25zdCB0PXRoaXMuI2N0LmdldChlKTtpZih0KXJldHVybiB0O2NvbnN0e2NhdGFsb2c6bixsaW5lYXJpemF0aW9uOmEseGZhRmFjdG9yeTpzfT10aGlzO2xldCByO3I9cz9Qcm9taXNlLnJlc29sdmUoW0RpY3QuZW1wdHksbnVsbF0pOmE/LnBhZ2VGaXJzdD09PWU/dGhpcy4jZHQoZSk6bi5nZXRQYWdlRGljdChlKTtyPXIudGhlbigoW3QsYV0pPT5uZXcgUGFnZSh7cGRmTWFuYWdlcjp0aGlzLnBkZk1hbmFnZXIseHJlZjp0aGlzLnhyZWYscGFnZUluZGV4OmUscGFnZURpY3Q6dCxyZWY6YSxnbG9iYWxJZEZhY3Rvcnk6dGhpcy5fZ2xvYmFsSWRGYWN0b3J5LGZvbnRDYWNoZTpuLmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOm4uYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6bi5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOm4uZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6bi5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTpuLnN5c3RlbUZvbnRDYWNoZSxub25CbGVuZE1vZGVzU2V0Om4ubm9uQmxlbmRNb2Rlc1NldCx4ZmFGYWN0b3J5OnN9KSk7dGhpcy4jY3Quc2V0KGUscik7cmV0dXJuIHJ9YXN5bmMgY2hlY2tGaXJzdFBhZ2UoZT0hMSl7aWYoIWUpdHJ5e2F3YWl0IHRoaXMuZ2V0UGFnZSgwKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgWFJlZkVudHJ5RXhjZXB0aW9uKXt0aGlzLiNjdC5kZWxldGUoMCk7YXdhaXQgdGhpcy5jbGVhbnVwKCk7dGhyb3cgbmV3IFhSZWZQYXJzZUV4Y2VwdGlvbn19fWFzeW5jIGNoZWNrTGFzdFBhZ2UoZT0hMSl7Y29uc3R7Y2F0YWxvZzp0LHBkZk1hbmFnZXI6bn09dGhpczt0LnNldEFjdHVhbE51bVBhZ2VzKCk7bGV0IGE7dHJ5e2F3YWl0IFByb21pc2UuYWxsKFtuLmVuc3VyZURvYygieGZhRmFjdG9yeSIpLG4uZW5zdXJlRG9jKCJsaW5lYXJpemF0aW9uIiksbi5lbnN1cmVDYXRhbG9nKCJudW1QYWdlcyIpXSk7aWYodGhpcy54ZmFGYWN0b3J5KXJldHVybjthPXRoaXMubGluZWFyaXphdGlvbj90aGlzLmxpbmVhcml6YXRpb24ubnVtUGFnZXM6dC5udW1QYWdlcztpZighTnVtYmVyLmlzSW50ZWdlcihhKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlBhZ2UgY291bnQgaXMgbm90IGFuIGludGVnZXIuIik7aWYoYTw9MSlyZXR1cm47YXdhaXQgdGhpcy5nZXRQYWdlKGEtMSl9Y2F0Y2gocyl7dGhpcy4jY3QuZGVsZXRlKGEtMSk7YXdhaXQgdGhpcy5jbGVhbnVwKCk7aWYocyBpbnN0YW5jZW9mIFhSZWZFbnRyeUV4Y2VwdGlvbiYmIWUpdGhyb3cgbmV3IFhSZWZQYXJzZUV4Y2VwdGlvbjt3YXJuKGBjaGVja0xhc3RQYWdlIC0gaW52YWxpZCAvUGFnZXMgdHJlZSAvQ291bnQ6ICR7YX0uYCk7bGV0IHI7dHJ5e3I9YXdhaXQgdC5nZXRBbGxQYWdlRGljdHMoZSl9Y2F0Y2gobil7aWYobiBpbnN0YW5jZW9mIFhSZWZFbnRyeUV4Y2VwdGlvbiYmIWUpdGhyb3cgbmV3IFhSZWZQYXJzZUV4Y2VwdGlvbjt0LnNldEFjdHVhbE51bVBhZ2VzKDEpO3JldHVybn1mb3IoY29uc3RbZSxbYSxzXV1vZiByKXtsZXQgcjtpZihhIGluc3RhbmNlb2YgRXJyb3Ipe3I9UHJvbWlzZS5yZWplY3QoYSk7ci5jYXRjaCgoKT0+e30pfWVsc2Ugcj1Qcm9taXNlLnJlc29sdmUobmV3IFBhZ2Uoe3BkZk1hbmFnZXI6bix4cmVmOnRoaXMueHJlZixwYWdlSW5kZXg6ZSxwYWdlRGljdDphLHJlZjpzLGdsb2JhbElkRmFjdG9yeTp0aGlzLl9nbG9iYWxJZEZhY3RvcnksZm9udENhY2hlOnQuZm9udENhY2hlLGJ1aWx0SW5DTWFwQ2FjaGU6dC5idWlsdEluQ01hcENhY2hlLHN0YW5kYXJkRm9udERhdGFDYWNoZTp0LnN0YW5kYXJkRm9udERhdGFDYWNoZSxnbG9iYWxDb2xvclNwYWNlQ2FjaGU6dGhpcy5nbG9iYWxDb2xvclNwYWNlQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0Lmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnQuc3lzdGVtRm9udENhY2hlLG5vbkJsZW5kTW9kZXNTZXQ6dC5ub25CbGVuZE1vZGVzU2V0LHhmYUZhY3Rvcnk6bnVsbH0pKTt0aGlzLiNjdC5zZXQoZSxyKX10LnNldEFjdHVhbE51bVBhZ2VzKHIuc2l6ZSl9fWFzeW5jIGZvbnRGYWxsYmFjayhlLHQpe2NvbnN0e2NhdGFsb2c6bixwZGZNYW5hZ2VyOmF9PXRoaXM7Zm9yKGNvbnN0IHMgb2YgYXdhaXQgUHJvbWlzZS5hbGwobi5mb250Q2FjaGUpKWlmKHMubG9hZGVkTmFtZT09PWUpe3MuZmFsbGJhY2sodCxhLmV2YWx1YXRvck9wdGlvbnMpO3JldHVybn19YXN5bmMgY2xlYW51cChlPSExKXtyZXR1cm4gdGhpcy5jYXRhbG9nP3RoaXMuY2F0YWxvZy5jbGVhbnVwKGUpOmNsZWFyR2xvYmFsQ2FjaGVzKCl9YXN5bmMjZ3QoZSx0LG4sYSxzLHIsaSl7Y29uc3R7eHJlZjpvfT10aGlzO2lmKCEobiBpbnN0YW5jZW9mIFJlZil8fHIuaGFzKG4pKXJldHVybjtyLnB1dChuKTtjb25zdCBsPWF3YWl0IG8uZmV0Y2hBc3luYyhuKTtpZighKGwgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47bGV0IGY9YXdhaXQgbC5nZXRBc3luYygiU3VidHlwZSIpO2Y9ZiBpbnN0YW5jZW9mIE5hbWU/Zi5uYW1lOm51bGw7aWYoIkxpbmsiPT09ZilyZXR1cm47aWYobC5oYXMoIlQiKSl7Y29uc3QgdD1zdHJpbmdUb1BERlN0cmluZyhhd2FpdCBsLmdldEFzeW5jKCJUIikpO2U9IiI9PT1lP3Q6YCR7ZX0uJHt0fWB9ZWxzZXtsZXQgbj1sO2Zvcig7Oyl7bj1uLmdldFJhdygiUGFyZW50Iil8fHQ7aWYobiBpbnN0YW5jZW9mIFJlZil7aWYoci5oYXMobikpYnJlYWs7bj1hd2FpdCBvLmZldGNoQXN5bmMobil9aWYoIShuIGluc3RhbmNlb2YgRGljdCkpYnJlYWs7aWYobi5oYXMoIlQiKSl7Y29uc3QgdD1zdHJpbmdUb1BERlN0cmluZyhhd2FpdCBuLmdldEFzeW5jKCJUIikpO2U9IiI9PT1lP3Q6YCR7ZX0uJHt0fWA7YnJlYWt9fX10JiYhbC5oYXMoIlBhcmVudCIpJiZpc05hbWUobC5nZXQoIlN1YnR5cGUiKSwiV2lkZ2V0IikmJmkucHV0KG4sdCk7YS5nZXRPckluc2VydENvbXB1dGVkKGUsbWFrZUFycikucHVzaChBbm5vdGF0aW9uRmFjdG9yeS5jcmVhdGUobyxuLHMsbnVsbCwhMCxpLG51bGwsbnVsbCkudGhlbihlPT5lPy5nZXRGaWVsZE9iamVjdCgpKS5jYXRjaChmdW5jdGlvbihlKXt3YXJuKGAjY29sbGVjdEZpZWxkT2JqZWN0czogIiR7ZX0iLmApO3JldHVybiBudWxsfSkpO2lmKCFsLmhhcygiS2lkcyIpKXJldHVybjtjb25zdCBjPWF3YWl0IGwuZ2V0QXN5bmMoIktpZHMiKTtpZihBcnJheS5pc0FycmF5KGMpKWZvcihjb25zdCB0IG9mIGMpYXdhaXQgdGhpcy4jZ3QoZSxuLHQsYSxzLHIsaSl9Z2V0IGZpZWxkT2JqZWN0cygpe3JldHVybiBzaGFkb3codGhpcywiZmllbGRPYmplY3RzIix0aGlzLnBkZk1hbmFnZXIuZW5zdXJlRG9jKCJmb3JtSW5mbyIpLnRoZW4oYXN5bmMgZT0+e2lmKCFlLmhhc0ZpZWxkcylyZXR1cm4gbnVsbDtjb25zdCB0PWF3YWl0IHRoaXMuYW5ub3RhdGlvbkdsb2JhbHM7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3R7YWNyb0Zvcm06bn09dCxhPW5ldyBSZWZTZXQscz1PYmplY3QuY3JlYXRlKG51bGwpLHI9bmV3IE1hcCxpPW5ldyBSZWZTZXRDYWNoZTtmb3IoY29uc3QgZSBvZiBuLmdldCgiRmllbGRzIikpYXdhaXQgdGhpcy4jZ3QoIiIsbnVsbCxlLHIsdCxhLGkpO2NvbnN0IG89W107Zm9yKGNvbnN0W2UsdF1vZiByKW8ucHVzaChQcm9taXNlLmFsbCh0KS50aGVuKHQ9PnsodD10LmZpbHRlcihlPT4hIWUpKS5sZW5ndGg+MCYmKHNbZV09dCl9KSk7YXdhaXQgUHJvbWlzZS5hbGwobyk7cmV0dXJue2FsbEZpZWxkczpvYmplY3RTaXplKHMpPjA/czpudWxsLG9ycGhhbkZpZWxkczppfX0pKX1nZXQgaGFzSlNBY3Rpb25zKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJoYXNKU0FjdGlvbnMiLHRoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoIl9wYXJzZUhhc0pTQWN0aW9ucyIpKX1hc3luYyBfcGFyc2VIYXNKU0FjdGlvbnMoKXtjb25zdFtlLHRdPWF3YWl0IFByb21pc2UuYWxsKFt0aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygianNBY3Rpb25zIiksdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZURvYygiZmllbGRPYmplY3RzIildKTtyZXR1cm4hIWV8fCEhdD8uYWxsRmllbGRzJiZPYmplY3QudmFsdWVzKHQuYWxsRmllbGRzKS5zb21lKGU9PmUuc29tZShlPT5udWxsIT09ZS5hY3Rpb25zKSl9Z2V0IGNhbGN1bGF0aW9uT3JkZXJJZHMoKXtjb25zdCBlPXRoaXMuY2F0YWxvZy5hY3JvRm9ybT8uZ2V0KCJDTyIpO2lmKCFBcnJheS5pc0FycmF5KGUpfHwwPT09ZS5sZW5ndGgpcmV0dXJuIHNoYWRvdyh0aGlzLCJjYWxjdWxhdGlvbk9yZGVySWRzIixudWxsKTtjb25zdCB0PVtdO2Zvcihjb25zdCBuIG9mIGUpbiBpbnN0YW5jZW9mIFJlZiYmdC5wdXNoKG4udG9TdHJpbmcoKSk7cmV0dXJuIHNoYWRvdyh0aGlzLCJjYWxjdWxhdGlvbk9yZGVySWRzIix0Lmxlbmd0aD90Om51bGwpfWdldCBhbm5vdGF0aW9uR2xvYmFscygpe3JldHVybiBzaGFkb3codGhpcywiYW5ub3RhdGlvbkdsb2JhbHMiLEFubm90YXRpb25GYWN0b3J5LmNyZWF0ZUdsb2JhbHModGhpcy5wZGZNYW5hZ2VyKSl9fWNsYXNzIEJhc2VQZGZNYW5hZ2Vye2NvbnN0cnVjdG9yKHtkb2NCYXNlVXJsOmUsZG9jSWQ6dCxlbmFibGVYZmE6bixldmFsdWF0b3JPcHRpb25zOmEsaGFuZGxlcjpzLHBhc3N3b3JkOnJ9KXt0aGlzLl9kb2NCYXNlVXJsPWZ1bmN0aW9uIHBhcnNlRG9jQmFzZVVybChlKXtpZihlKXtjb25zdCB0PWNyZWF0ZVZhbGlkQWJzb2x1dGVVcmwoZSk7aWYodClyZXR1cm4gdC5ocmVmO3dhcm4oYEludmFsaWQgYWJzb2x1dGUgZG9jQmFzZVVybDogIiR7ZX0iLmApfXJldHVybiBudWxsfShlKTt0aGlzLl9kb2NJZD10O3RoaXMuX3Bhc3N3b3JkPXI7dGhpcy5lbmFibGVYZmE9bjthLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkJiY9RmVhdHVyZVRlc3QuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ7YS5pc0ltYWdlRGVjb2RlclN1cHBvcnRlZCYmPUZlYXR1cmVUZXN0LmlzSW1hZ2VEZWNvZGVyU3VwcG9ydGVkO3RoaXMuZXZhbHVhdG9yT3B0aW9ucz1PYmplY3QuZnJlZXplKGEpO0ltYWdlUmVzaXplci5zZXRPcHRpb25zKGEpO0pwZWdTdHJlYW0uc2V0T3B0aW9ucyhhKTtPcGVyYXRvckxpc3Quc2V0T3B0aW9ucyhhKTtjb25zdCBpPXsuLi5hLGhhbmRsZXI6c307SnB4SW1hZ2Uuc2V0T3B0aW9ucyhpKTtJY2NDb2xvclNwYWNlLnNldE9wdGlvbnMoaSk7Q215a0lDQ0Jhc2VkQ1Muc2V0T3B0aW9ucyhpKTtKQmlnMkNDSVRURmF4V2FzbUltYWdlLnNldE9wdGlvbnMoaSl9Z2V0IGRvY0lkKCl7cmV0dXJuIHRoaXMuX2RvY0lkfWdldCBwYXNzd29yZCgpe3JldHVybiB0aGlzLl9wYXNzd29yZH1nZXQgZG9jQmFzZVVybCgpe3JldHVybiB0aGlzLl9kb2NCYXNlVXJsfWVuc3VyZURvYyhlLHQpe3JldHVybiB0aGlzLmVuc3VyZSh0aGlzLnBkZkRvY3VtZW50LGUsdCl9ZW5zdXJlWFJlZihlLHQpe3JldHVybiB0aGlzLmVuc3VyZSh0aGlzLnBkZkRvY3VtZW50LnhyZWYsZSx0KX1lbnN1cmVDYXRhbG9nKGUsdCl7cmV0dXJuIHRoaXMuZW5zdXJlKHRoaXMucGRmRG9jdW1lbnQuY2F0YWxvZyxlLHQpfWdldFBhZ2UoZSl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShlKX1mb250RmFsbGJhY2soZSx0KXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudC5mb250RmFsbGJhY2soZSx0KX1jbGVhbnVwKGU9ITEpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50LmNsZWFudXAoZSl9YXN5bmMgZW5zdXJlKGUsdCxuKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBlbnN1cmVgIGNhbGxlZCIpfXJlcXVlc3RSYW5nZShlLHQpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYHJlcXVlc3RSYW5nZWAgY2FsbGVkIil9cmVxdWVzdExvYWRlZFN0cmVhbShlPSExKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGByZXF1ZXN0TG9hZGVkU3RyZWFtYCBjYWxsZWQiKX1zZW5kUHJvZ3Jlc3NpdmVEYXRhKGUpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYHNlbmRQcm9ncmVzc2l2ZURhdGFgIGNhbGxlZCIpfXVwZGF0ZVBhc3N3b3JkKGUpe3RoaXMuX3Bhc3N3b3JkPWV9dGVybWluYXRlKGUpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYHRlcm1pbmF0ZWAgY2FsbGVkIil9fWNsYXNzIExvY2FsUGRmTWFuYWdlciBleHRlbmRzIEJhc2VQZGZNYW5hZ2Vye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0IHQ9bmV3IFN0cmVhbShlLnNvdXJjZSk7dGhpcy5wZGZEb2N1bWVudD1uZXcgUERGRG9jdW1lbnQodGhpcyx0KTt0aGlzLl9sb2FkZWRTdHJlYW1Qcm9taXNlPVByb21pc2UucmVzb2x2ZSh0KX1hc3luYyBlbnN1cmUoZSx0LG4pe2NvbnN0IGE9ZVt0XTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYT9hLmFwcGx5KGUsbik6YX1yZXF1ZXN0UmFuZ2UoZSx0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9cmVxdWVzdExvYWRlZFN0cmVhbShlPSExKXtyZXR1cm4gdGhpcy5fbG9hZGVkU3RyZWFtUHJvbWlzZX10ZXJtaW5hdGUoZSl7fX1jbGFzcyBOZXR3b3JrUGRmTWFuYWdlciBleHRlbmRzIEJhc2VQZGZNYW5hZ2Vye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuc3RyZWFtTWFuYWdlcj1uZXcgQ2h1bmtlZFN0cmVhbU1hbmFnZXIoZS5zb3VyY2Use21zZ0hhbmRsZXI6ZS5oYW5kbGVyLGxlbmd0aDplLmxlbmd0aCxkaXNhYmxlQXV0b0ZldGNoOmUuZGlzYWJsZUF1dG9GZXRjaCxyYW5nZUNodW5rU2l6ZTplLnJhbmdlQ2h1bmtTaXplfSk7dGhpcy5wZGZEb2N1bWVudD1uZXcgUERGRG9jdW1lbnQodGhpcyx0aGlzLnN0cmVhbU1hbmFnZXIuZ2V0U3RyZWFtKCkpfWFzeW5jIGVuc3VyZShlLHQsbil7dHJ5e2NvbnN0IGE9ZVt0XTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYT9hLmFwcGx5KGUsbik6YX1jYXRjaChhKXtpZighKGEgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbikpdGhyb3cgYTthd2FpdCB0aGlzLnJlcXVlc3RSYW5nZShhLmJlZ2luLGEuZW5kKTtyZXR1cm4gdGhpcy5lbnN1cmUoZSx0LG4pfX1yZXF1ZXN0UmFuZ2UoZSx0KXtyZXR1cm4gdGhpcy5zdHJlYW1NYW5hZ2VyLnJlcXVlc3RSYW5nZShlLHQpfXJlcXVlc3RMb2FkZWRTdHJlYW0oZT0hMSl7cmV0dXJuIHRoaXMuc3RyZWFtTWFuYWdlci5yZXF1ZXN0QWxsQ2h1bmtzKGUpfXNlbmRQcm9ncmVzc2l2ZURhdGEoZSl7dGhpcy5zdHJlYW1NYW5hZ2VyLm9uUmVjZWl2ZURhdGEoe2NodW5rOmV9KX10ZXJtaW5hdGUoZSl7dGhpcy5zdHJlYW1NYW5hZ2VyLmFib3J0KGUpfX1jb25zdCB1bD0xLG1sPTIscGw9MSxkbD0yLGdsPTMsYmw9NCx3bD01LGpsPTYsa2w9Nyx5bD04O2Z1bmN0aW9uIG9uRm4oKXt9ZnVuY3Rpb24gd3JhcFJlYXNvbihlKXtpZihlIGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb258fGUgaW5zdGFuY2VvZiBJbnZhbGlkUERGRXhjZXB0aW9ufHxlIGluc3RhbmNlb2YgUGFzc3dvcmRFeGNlcHRpb258fGUgaW5zdGFuY2VvZiBSZXNwb25zZUV4Y2VwdGlvbnx8ZSBpbnN0YW5jZW9mIFVua25vd25FcnJvckV4Y2VwdGlvbilyZXR1cm4gZTtlIGluc3RhbmNlb2YgRXJyb3J8fCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWV8fHVucmVhY2hhYmxlKCd3cmFwUmVhc29uOiBFeHBlY3RlZCAicmVhc29uIiB0byBiZSBhIChwb3NzaWJseSBjbG9uZWQpIEVycm9yLicpO3N3aXRjaChlLm5hbWUpe2Nhc2UiQWJvcnRFeGNlcHRpb24iOnJldHVybiBuZXcgQWJvcnRFeGNlcHRpb24oZS5tZXNzYWdlKTtjYXNlIkludmFsaWRQREZFeGNlcHRpb24iOnJldHVybiBuZXcgSW52YWxpZFBERkV4Y2VwdGlvbihlLm1lc3NhZ2UpO2Nhc2UiUGFzc3dvcmRFeGNlcHRpb24iOnJldHVybiBuZXcgUGFzc3dvcmRFeGNlcHRpb24oZS5tZXNzYWdlLGUuY29kZSk7Y2FzZSJSZXNwb25zZUV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBSZXNwb25zZUV4Y2VwdGlvbihlLm1lc3NhZ2UsZS5zdGF0dXMsZS5taXNzaW5nKTtjYXNlIlVua25vd25FcnJvckV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBVbmtub3duRXJyb3JFeGNlcHRpb24oZS5tZXNzYWdlLGUuZGV0YWlscyl9cmV0dXJuIG5ldyBVbmtub3duRXJyb3JFeGNlcHRpb24oZS5tZXNzYWdlLGUudG9TdHJpbmcoKSl9Y2xhc3MgTWVzc2FnZUhhbmRsZXJ7I2J0PW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuc291cmNlTmFtZT1lO3RoaXMudGFyZ2V0TmFtZT10O3RoaXMuY29tT2JqPW47dGhpcy5jYWxsYmFja0lkPTE7dGhpcy5zdHJlYW1JZD0xO3RoaXMuc3RyZWFtU2lua3M9T2JqZWN0LmNyZWF0ZShudWxsKTt0aGlzLnN0cmVhbUNvbnRyb2xsZXJzPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllcz1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXMuYWN0aW9uSGFuZGxlcj1PYmplY3QuY3JlYXRlKG51bGwpO24uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy4jd3QuYmluZCh0aGlzKSx7c2lnbmFsOnRoaXMuI2J0LnNpZ25hbH0pfSN3dCh7ZGF0YTplfSl7aWYoZS50YXJnZXROYW1lIT09dGhpcy5zb3VyY2VOYW1lKXJldHVybjtpZihlLnN0cmVhbSl7dGhpcy4janQoZSk7cmV0dXJufWlmKGUuY2FsbGJhY2spe2NvbnN0IHQ9ZS5jYWxsYmFja0lkLG49dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1t0XTtpZighbil0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlIGNhbGxiYWNrICR7dH1gKTtkZWxldGUgdGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1t0XTtpZihlLmNhbGxiYWNrPT09dWwpbi5yZXNvbHZlKGUuZGF0YSk7ZWxzZXtpZihlLmNhbGxiYWNrIT09bWwpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGNhbGxiYWNrIGNhc2UiKTtuLnJlamVjdCh3cmFwUmVhc29uKGUucmVhc29uKSl9cmV0dXJufWNvbnN0IHQ9dGhpcy5hY3Rpb25IYW5kbGVyW2UuYWN0aW9uXTtpZighdCl0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYWN0aW9uIGZyb20gd29ya2VyOiAke2UuYWN0aW9ufWApO2lmKGUuY2FsbGJhY2tJZCl7Y29uc3Qgbj10aGlzLnNvdXJjZU5hbWUsYT1lLnNvdXJjZU5hbWUscz10aGlzLmNvbU9iajtQcm9taXNlLnRyeSh0LGUuZGF0YSkudGhlbihmdW5jdGlvbih0KXtzLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLGNhbGxiYWNrOnVsLGNhbGxiYWNrSWQ6ZS5jYWxsYmFja0lkLGRhdGE6dH0pfSxmdW5jdGlvbih0KXtzLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLGNhbGxiYWNrOm1sLGNhbGxiYWNrSWQ6ZS5jYWxsYmFja0lkLHJlYXNvbjp3cmFwUmVhc29uKHQpfSl9KTtyZXR1cm59ZS5zdHJlYW1JZD90aGlzLiNrdChlKTp0KGUuZGF0YSl9b24oZSx0KXtjb25zdCBuPXRoaXMuYWN0aW9uSGFuZGxlcjtpZihuW2VdKXRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgYWxyZWFkeSBhbiBhY3Rpb25OYW1lIGNhbGxlZCAiJHtlfSJgKTtuW2VdPXR9c2VuZChlLHQsbil7dGhpcy5jb21PYmoucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dGhpcy5zb3VyY2VOYW1lLHRhcmdldE5hbWU6dGhpcy50YXJnZXROYW1lLGFjdGlvbjplLGRhdGE6dH0sbil9c2VuZFdpdGhQcm9taXNlKGUsdCxuKXtjb25zdCBhPXRoaXMuY2FsbGJhY2tJZCsrLHM9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1thXT1zO3RyeXt0aGlzLmNvbU9iai5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0aGlzLnNvdXJjZU5hbWUsdGFyZ2V0TmFtZTp0aGlzLnRhcmdldE5hbWUsYWN0aW9uOmUsY2FsbGJhY2tJZDphLGRhdGE6dH0sbil9Y2F0Y2goZSl7cy5yZWplY3QoZSl9cmV0dXJuIHMucHJvbWlzZX1zZW5kV2l0aFN0cmVhbShlLHQsbixhKXtjb25zdCBzPXRoaXMuc3RyZWFtSWQrKyxyPXRoaXMuc291cmNlTmFtZSxpPXRoaXMudGFyZ2V0TmFtZSxvPXRoaXMuY29tT2JqO3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0Om49Pntjb25zdCBsPVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbc109e2NvbnRyb2xsZXI6bixzdGFydENhbGw6bCxwdWxsQ2FsbDpudWxsLGNhbmNlbENhbGw6bnVsbCxpc0Nsb3NlZDohMX07by5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpyLHRhcmdldE5hbWU6aSxhY3Rpb246ZSxzdHJlYW1JZDpzLGRhdGE6dCxkZXNpcmVkU2l6ZTpuLmRlc2lyZWRTaXplfSxhKTtyZXR1cm4gbC5wcm9taXNlfSxwdWxsOmU9Pntjb25zdCB0PVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbc10ucHVsbENhbGw9dDtvLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnIsdGFyZ2V0TmFtZTppLHN0cmVhbTpqbCxzdHJlYW1JZDpzLGRlc2lyZWRTaXplOmUuZGVzaXJlZFNpemV9KTtyZXR1cm4gdC5wcm9taXNlfSxjYW5jZWw6ZT0+e2Fzc2VydChlIGluc3RhbmNlb2YgRXJyb3IsImNhbmNlbCBtdXN0IGhhdmUgYSB2YWxpZCByZWFzb24iKTtjb25zdCB0PVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbc10uY2FuY2VsQ2FsbD10O3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbc10uaXNDbG9zZWQ9ITA7by5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpyLHRhcmdldE5hbWU6aSxzdHJlYW06cGwsc3RyZWFtSWQ6cyxyZWFzb246d3JhcFJlYXNvbihlKX0pO3JldHVybiB0LnByb21pc2V9fSxuKX0ja3QoZSl7Y29uc3QgdD1lLnN0cmVhbUlkLG49dGhpcy5zb3VyY2VOYW1lLGE9ZS5zb3VyY2VOYW1lLHM9dGhpcy5jb21PYmoscj10aGlzLGk9dGhpcy5hY3Rpb25IYW5kbGVyW2UuYWN0aW9uXSxvPXtlbnF1ZXVlKGUscj0xLGkpe2lmKHRoaXMuaXNDYW5jZWxsZWQpcmV0dXJuO2NvbnN0IG89dGhpcy5kZXNpcmVkU2l6ZTt0aGlzLmRlc2lyZWRTaXplLT1yO2lmKG8+MCYmdGhpcy5kZXNpcmVkU2l6ZTw9MCl7dGhpcy5zaW5rQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTt0aGlzLnJlYWR5PXRoaXMuc2lua0NhcGFiaWxpdHkucHJvbWlzZX1zLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLHN0cmVhbTpibCxzdHJlYW1JZDp0LGNodW5rOmV9LGkpfSxjbG9zZSgpe2lmKCF0aGlzLmlzQ2FuY2VsbGVkKXt0aGlzLmlzQ2FuY2VsbGVkPSEwO3MucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOmdsLHN0cmVhbUlkOnR9KTtkZWxldGUgci5zdHJlYW1TaW5rc1t0XX19LGVycm9yKGUpe2Fzc2VydChlIGluc3RhbmNlb2YgRXJyb3IsImVycm9yIG11c3QgaGF2ZSBhIHZhbGlkIHJlYXNvbiIpO2lmKCF0aGlzLmlzQ2FuY2VsbGVkKXt0aGlzLmlzQ2FuY2VsbGVkPSEwO3MucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOndsLHN0cmVhbUlkOnQscmVhc29uOndyYXBSZWFzb24oZSl9KX19LHNpbmtDYXBhYmlsaXR5OlByb21pc2Uud2l0aFJlc29sdmVycygpLG9uUHVsbDpudWxsLG9uQ2FuY2VsOm51bGwsaXNDYW5jZWxsZWQ6ITEsZGVzaXJlZFNpemU6ZS5kZXNpcmVkU2l6ZSxyZWFkeTpudWxsfTtvLnNpbmtDYXBhYmlsaXR5LnJlc29sdmUoKTtvLnJlYWR5PW8uc2lua0NhcGFiaWxpdHkucHJvbWlzZTt0aGlzLnN0cmVhbVNpbmtzW3RdPW87UHJvbWlzZS50cnkoaSxlLmRhdGEsbykudGhlbihmdW5jdGlvbigpe3MucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOnlsLHN0cmVhbUlkOnQsc3VjY2VzczohMH0pfSxmdW5jdGlvbihlKXtzLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLHN0cmVhbTp5bCxzdHJlYW1JZDp0LHJlYXNvbjp3cmFwUmVhc29uKGUpfSl9KX0janQoZSl7Y29uc3QgdD1lLnN0cmVhbUlkLG49dGhpcy5zb3VyY2VOYW1lLGE9ZS5zb3VyY2VOYW1lLHM9dGhpcy5jb21PYmoscj10aGlzLnN0cmVhbUNvbnRyb2xsZXJzW3RdLGk9dGhpcy5zdHJlYW1TaW5rc1t0XTtzd2l0Y2goZS5zdHJlYW0pe2Nhc2UgeWw6ZS5zdWNjZXNzP3Iuc3RhcnRDYWxsLnJlc29sdmUoKTpyLnN0YXJ0Q2FsbC5yZWplY3Qod3JhcFJlYXNvbihlLnJlYXNvbikpO2JyZWFrO2Nhc2Uga2w6ZS5zdWNjZXNzP3IucHVsbENhbGwucmVzb2x2ZSgpOnIucHVsbENhbGwucmVqZWN0KHdyYXBSZWFzb24oZS5yZWFzb24pKTticmVhaztjYXNlIGpsOmlmKCFpKXtzLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLHN0cmVhbTprbCxzdHJlYW1JZDp0LHN1Y2Nlc3M6ITB9KTticmVha31pLmRlc2lyZWRTaXplPD0wJiZlLmRlc2lyZWRTaXplPjAmJmkuc2lua0NhcGFiaWxpdHkucmVzb2x2ZSgpO2kuZGVzaXJlZFNpemU9ZS5kZXNpcmVkU2l6ZTtQcm9taXNlLnRyeShpLm9uUHVsbHx8b25GbikudGhlbihmdW5jdGlvbigpe3MucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOmtsLHN0cmVhbUlkOnQsc3VjY2VzczohMH0pfSxmdW5jdGlvbihlKXtzLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLHN0cmVhbTprbCxzdHJlYW1JZDp0LHJlYXNvbjp3cmFwUmVhc29uKGUpfSl9KTticmVhaztjYXNlIGJsOmFzc2VydChyLCJlbnF1ZXVlIHNob3VsZCBoYXZlIHN0cmVhbSBjb250cm9sbGVyIik7aWYoci5pc0Nsb3NlZClicmVhaztyLmNvbnRyb2xsZXIuZW5xdWV1ZShlLmNodW5rKTticmVhaztjYXNlIGdsOmFzc2VydChyLCJjbG9zZSBzaG91bGQgaGF2ZSBzdHJlYW0gY29udHJvbGxlciIpO2lmKHIuaXNDbG9zZWQpYnJlYWs7ci5pc0Nsb3NlZD0hMDtyLmNvbnRyb2xsZXIuY2xvc2UoKTt0aGlzLiN5dChyLHQpO2JyZWFrO2Nhc2Ugd2w6YXNzZXJ0KHIsImVycm9yIHNob3VsZCBoYXZlIHN0cmVhbSBjb250cm9sbGVyIik7ci5jb250cm9sbGVyLmVycm9yKHdyYXBSZWFzb24oZS5yZWFzb24pKTt0aGlzLiN5dChyLHQpO2JyZWFrO2Nhc2UgZGw6ZS5zdWNjZXNzP3IuY2FuY2VsQ2FsbC5yZXNvbHZlKCk6ci5jYW5jZWxDYWxsLnJlamVjdCh3cmFwUmVhc29uKGUucmVhc29uKSk7dGhpcy4jeXQocix0KTticmVhaztjYXNlIHBsOmlmKCFpKWJyZWFrO2NvbnN0IG89d3JhcFJlYXNvbihlLnJlYXNvbik7UHJvbWlzZS50cnkoaS5vbkNhbmNlbHx8b25GbixvKS50aGVuKGZ1bmN0aW9uKCl7cy5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpuLHRhcmdldE5hbWU6YSxzdHJlYW06ZGwsc3RyZWFtSWQ6dCxzdWNjZXNzOiEwfSl9LGZ1bmN0aW9uKGUpe3MucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOmRsLHN0cmVhbUlkOnQscmVhc29uOndyYXBSZWFzb24oZSl9KX0pO2kuc2lua0NhcGFiaWxpdHkucmVqZWN0KG8pO2kuaXNDYW5jZWxsZWQ9ITA7ZGVsZXRlIHRoaXMuc3RyZWFtU2lua3NbdF07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgc3RyZWFtIGNhc2UiKX19YXN5bmMjeXQoZSx0KXthd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoW2Uuc3RhcnRDYWxsPy5wcm9taXNlLGUucHVsbENhbGw/LnByb21pc2UsZS5jYW5jZWxDYWxsPy5wcm9taXNlXSk7ZGVsZXRlIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbdF19ZGVzdHJveSgpe3RoaXMuI2J0Py5hYm9ydCgpO3RoaXMuI2J0PW51bGx9fWFzeW5jIGZ1bmN0aW9uIHdyaXRlT2JqZWN0KGUsdCxuLHtlbmNyeXB0OmE9bnVsbCxlbmNyeXB0UmVmOnM9bnVsbH0pe2NvbnN0IHI9YSYmcyE9PWU/YS5jcmVhdGVDaXBoZXJUcmFuc2Zvcm0oZS5udW0sZS5nZW4pOm51bGw7bi5wdXNoKGAke2UubnVtfSAke2UuZ2VufSBvYmpcbmApO2F3YWl0IHdyaXRlVmFsdWUodCxuLHIpO24ucHVzaCgiXG5lbmRvYmpcbiIpfWFzeW5jIGZ1bmN0aW9uIHdyaXRlRGljdChlLHQsbil7dC5wdXNoKCI8PCIpO2Zvcihjb25zdFthLHNdb2YgZS5nZXRSYXdFbnRyaWVzKCkpe3QucHVzaChgIC8ke2VzY2FwZVBERk5hbWUoYSl9IGApO2F3YWl0IHdyaXRlVmFsdWUocyx0LG4pfXQucHVzaCgiPj4iKX1hc3luYyBmdW5jdGlvbiB3cml0ZVZhbHVlKGUsdCxuKXtpZihlIGluc3RhbmNlb2YgTmFtZSl0LnB1c2goYC8ke2VzY2FwZVBERk5hbWUoZS5uYW1lKX1gKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBSZWYpdC5wdXNoKGAke2UubnVtfSAke2UuZ2VufSBSYCk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpfHxBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpYXdhaXQgYXN5bmMgZnVuY3Rpb24gd3JpdGVBcnJheShlLHQsbil7dC5wdXNoKCJbIik7Zm9yKGxldCBhPTAscz1lLmxlbmd0aDthPHM7YSsrKXthd2FpdCB3cml0ZVZhbHVlKGVbYV0sdCxuKTthPHMtMSYmdC5wdXNoKCIgIil9dC5wdXNoKCJdIil9KGUsdCxuKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSl7biYmKGU9bi5lbmNyeXB0U3RyaW5nKGUpKTt0LnB1c2goYCgke2VzY2FwZVN0cmluZyhlKX0pYCl9ZWxzZSJudW1iZXIiPT10eXBlb2YgZXx8ImJvb2xlYW4iPT10eXBlb2YgZT90LnB1c2goZS50b1N0cmluZygpKTplIGluc3RhbmNlb2YgRGljdD9hd2FpdCB3cml0ZURpY3QoZSx0LG4pOmUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtP2F3YWl0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlU3RyZWFtKGUsdCxuKXsoZT1lLmdldE9yaWdpbmFsU3RyZWFtKCkpLnJlc2V0KCk7bGV0IGE9ZS5nZXRCeXRlcygpO2NvbnN0e2RpY3Q6c309ZSxbcixpXT1hd2FpdCBQcm9taXNlLmFsbChbcy5nZXRBc3luYygiRmlsdGVyIikscy5nZXRBc3luYygiRGVjb2RlUGFybXMiKV0pLG89aXNOYW1lKEFycmF5LmlzQXJyYXkocik/YXdhaXQgcy54cmVmLmZldGNoSWZSZWZBc3luYyhyWzBdKTpyLCJGbGF0ZURlY29kZSIpO2lmKGEubGVuZ3RoPj0yNTYmJiFvKXRyeXtjb25zdCBlPW5ldyBDb21wcmVzc2lvblN0cmVhbSgiZGVmbGF0ZSIpLHQ9ZS53cml0YWJsZS5nZXRXcml0ZXIoKTthd2FpdCB0LnJlYWR5O3Qud3JpdGUoYSkudGhlbihhc3luYygpPT57YXdhaXQgdC5yZWFkeTthd2FpdCB0LmNsb3NlKCl9KS5jYXRjaCgoKT0+e30pO2NvbnN0IG49YXdhaXQgbmV3IFJlc3BvbnNlKGUucmVhZGFibGUpLmFycmF5QnVmZmVyKCk7YT1uZXcgVWludDhBcnJheShuKTtsZXQgbCxmO2lmKHIpe2lmKCFvKXtsPUFycmF5LmlzQXJyYXkocik/W05hbWUuZ2V0KCJGbGF0ZURlY29kZSIpLC4uLnJdOltOYW1lLmdldCgiRmxhdGVEZWNvZGUiKSxyXTtpJiYoZj1BcnJheS5pc0FycmF5KGkpP1tudWxsLC4uLmldOltudWxsLGldKX19ZWxzZSBsPU5hbWUuZ2V0KCJGbGF0ZURlY29kZSIpO2wmJnMuc2V0KCJGaWx0ZXIiLGwpO2YmJnMuc2V0KCJEZWNvZGVQYXJtcyIsZil9Y2F0Y2goZSl7aW5mbyhgd3JpdGVTdHJlYW0gLSBjYW5ub3QgY29tcHJlc3MgZGF0YTogIiR7ZX0iLmApfWxldCBsPWJ5dGVzVG9TdHJpbmcoYSk7biYmKGw9bi5lbmNyeXB0U3RyaW5nKGwpKTtzLnNldCgiTGVuZ3RoIixsLmxlbmd0aCk7YXdhaXQgd3JpdGVEaWN0KHMsdCxuKTt0LnB1c2goIiBzdHJlYW1cbiIsbCwiXG5lbmRzdHJlYW0iKX0oZSx0LG4pOm51bGw9PT1lP3QucHVzaCgibnVsbCIpOndhcm4oYFVuaGFuZGxlZCB2YWx1ZSBpbiB3cml0ZXI6ICR7dHlwZW9mIGV9LCBwbGVhc2UgZmlsZSBhIGJ1Zy5gKX1mdW5jdGlvbiB3cml0ZUludChlLHQsbixhKXtmb3IobGV0IHM9dCtuLTE7cz5uLTE7cy0tKXthW3NdPTI1NSZlO2U+Pj04fXJldHVybiBuK3R9ZnVuY3Rpb24gd3JpdGVTdHJpbmcoZSx0LG4pe2NvbnN0IGE9ZS5sZW5ndGg7Zm9yKGxldCBzPTA7czxhO3MrKyluW3Qrc109MjU1JmUuY2hhckNvZGVBdChzKTtyZXR1cm4gdCthfWZ1bmN0aW9uIHVwZGF0ZVhGQSh7eGZhRGF0YTplLHhmYURhdGFzZXRzUmVmOnQsY2hhbmdlczpuLHhyZWY6YX0pe2lmKG51bGw9PT1lKXtlPWZ1bmN0aW9uIHdyaXRlWEZBRGF0YUZvckFjcm9mb3JtKGUsdCl7Y29uc3Qgbj1uZXcgU2ltcGxlWE1MUGFyc2VyKHtoYXNBdHRyaWJ1dGVzOiEwfSkucGFyc2VGcm9tU3RyaW5nKGUpO2Zvcihjb25zdHt4ZmE6ZX1vZiB0KXtpZighZSljb250aW51ZTtjb25zdHtwYXRoOnQsdmFsdWU6YX09ZTtpZighdCljb250aW51ZTtjb25zdCBzPXBhcnNlWEZBUGF0aCh0KTtsZXQgcj1uLmRvY3VtZW50RWxlbWVudC5zZWFyY2hOb2RlKHMsMCk7IXImJnMubGVuZ3RoPjEmJihyPW4uZG9jdW1lbnRFbGVtZW50LnNlYXJjaE5vZGUoW3MuYXQoLTEpXSwwKSk7cj9yLmNoaWxkTm9kZXM9QXJyYXkuaXNBcnJheShhKT9hLm1hcChlPT5uZXcgU2ltcGxlRE9NTm9kZSgidmFsdWUiLGUpKTpbbmV3IFNpbXBsZURPTU5vZGUoIiN0ZXh0IixhKV06d2FybihgTm9kZSBub3QgZm91bmQgZm9yIHBhdGg6ICR7dH1gKX1jb25zdCBhPVtdO24uZG9jdW1lbnRFbGVtZW50LmR1bXAoYSk7cmV0dXJuIGEuam9pbigiIil9KGEuZmV0Y2hJZlJlZih0KS5nZXRTdHJpbmcoKSxuKX1jb25zdCBzPW5ldyBTdHJpbmdTdHJlYW0oZSk7cy5kaWN0PW5ldyBEaWN0KGEpO3MuZGljdC5zZXRJZk5hbWUoIlR5cGUiLCJFbWJlZGRlZEZpbGUiKTtuLnB1dCh0LHtkYXRhOnN9KX1mdW5jdGlvbiBnZXRJbmRleGVzKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0e3JlZjpufW9mIGUpbi5udW09PT10LmF0KC0yKSt0LmF0KC0xKT90W3QubGVuZ3RoLTFdKz0xOnQucHVzaChuLm51bSwxKTtyZXR1cm4gdH1mdW5jdGlvbiBjb21wdXRlSURzKGUsdCxuKXtpZihBcnJheS5pc0FycmF5KHQuZmlsZUlkcykmJnQuZmlsZUlkcy5sZW5ndGg+MCl7Y29uc3QgYT1mdW5jdGlvbiBjb21wdXRlTUQ1KGUsdCl7Y29uc3Qgbj1NYXRoLmZsb29yKERhdGUubm93KCkvMWUzKSxhPXQuZmlsZW5hbWV8fCIiLHM9W24udG9TdHJpbmcoKSxhLGUudG9TdHJpbmcoKSwuLi50LmluZm9NYXAudmFsdWVzKCldLHI9TWF0aC5zdW1QcmVjaXNlKHMubWFwKGU9PmUubGVuZ3RoKSksaT1uZXcgVWludDhBcnJheShyKTtsZXQgbz0wO2Zvcihjb25zdCBlIG9mIHMpbz13cml0ZVN0cmluZyhlLG8saSk7cmV0dXJuIGJ5dGVzVG9TdHJpbmcoY2FsY3VsYXRlTUQ1KGksMCxpLmxlbmd0aCkpfShlLHQpO24uc2V0KCJJRCIsW3QuZmlsZUlkc1swXXx8YSxhXSl9fWFzeW5jIGZ1bmN0aW9uIGluY3JlbWVudGFsVXBkYXRlKHtvcmlnaW5hbERhdGE6ZSx4cmVmSW5mbzp0LGNoYW5nZXM6bix4cmVmOmE9bnVsbCxoYXNYZmE6cz0hMSx4ZmFEYXRhc2V0c1JlZjpyPW51bGwsaGFzWGZhRGF0YXNldHNFbnRyeTppPSExLG5lZWRBcHBlYXJhbmNlczpvLGFjcm9Gb3JtUmVmOmw9bnVsbCxhY3JvRm9ybTpmPW51bGwseGZhRGF0YTpjPW51bGwsdXNlWHJlZlN0cmVhbTpoPSExfSl7YXdhaXQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQWNyb2Zvcm0oe3hyZWY6ZSxhY3JvRm9ybTp0LGFjcm9Gb3JtUmVmOm4saGFzWGZhOmEsaGFzWGZhRGF0YXNldHNFbnRyeTpzLHhmYURhdGFzZXRzUmVmOnIsbmVlZEFwcGVhcmFuY2VzOmksY2hhbmdlczpvfSl7IWF8fHN8fHJ8fHdhcm4oIlhGQSAtIENhbm5vdCBzYXZlIGl0Iik7aWYoIWkmJighYXx8IXJ8fHMpKXJldHVybjtjb25zdCBsPXQuY2xvbmUoKTtpZihhJiYhcyl7Y29uc3QgZT10LmdldCgiWEZBIikuc2xpY2UoKTtlLnNwbGljZSgyLDAsImRhdGFzZXRzIik7ZS5zcGxpY2UoMywwLHIpO2wuc2V0KCJYRkEiLGUpfWkmJmwuc2V0KCJOZWVkQXBwZWFyYW5jZXMiLCEwKTtvLnB1dChuLHtkYXRhOmx9KX0oe3hyZWY6YSxhY3JvRm9ybTpmLGFjcm9Gb3JtUmVmOmwsaGFzWGZhOnMsaGFzWGZhRGF0YXNldHNFbnRyeTppLHhmYURhdGFzZXRzUmVmOnIsbmVlZEFwcGVhcmFuY2VzOm8sY2hhbmdlczpufSk7cyYmdXBkYXRlWEZBKHt4ZmFEYXRhOmMseGZhRGF0YXNldHNSZWY6cixjaGFuZ2VzOm4seHJlZjphfSk7Y29uc3QgdT1mdW5jdGlvbiBnZXRUcmFpbGVyRGljdChlLHQsbil7Y29uc3QgYT1uZXcgRGljdChudWxsKTthLnNldElmRGVmaW5lZCgiUHJldiIsZT8uc3RhcnRYUmVmKTtjb25zdCBzPWUubmV3UmVmO2lmKG4pe3QucHV0KHMse2RhdGE6IiJ9KTthLnNldCgiU2l6ZSIscy5udW0rMSk7YS5zZXRJZk5hbWUoIlR5cGUiLCJYUmVmIil9ZWxzZSBhLnNldCgiU2l6ZSIscy5udW0pO2Euc2V0SWZEZWZpbmVkKCJSb290IixlPy5yb290UmVmKTthLnNldElmRGVmaW5lZCgiSW5mbyIsZT8uaW5mb1JlZik7YS5zZXRJZkRlZmluZWQoIkVuY3J5cHQiLGU/LmVuY3J5cHRSZWYpO3JldHVybiBhfSh0LG4saCksbT1bXSxwPWF3YWl0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlQ2hhbmdlcyhlLHQsbj1bXSl7Y29uc3QgYT1bXTtmb3IoY29uc3Rbcyx7ZGF0YTpyLG9ialN0cmVhbVJlZjppLGluZGV4Om99XW9mIGUuaXRlbXMoKSlpZihpKWEucHVzaCh7cmVmOnMsZGF0YTpyLG9ialN0cmVhbVJlZjppLGluZGV4Om99KTtlbHNlIGlmKG51bGwhPT1yJiYic3RyaW5nIiE9dHlwZW9mIHIpe2F3YWl0IHdyaXRlT2JqZWN0KHMscixuLHQpO2EucHVzaCh7cmVmOnMsZGF0YTpuLmpvaW4oIiIpfSk7bi5sZW5ndGg9MH1lbHNlIGEucHVzaCh7cmVmOnMsZGF0YTpyfSk7cmV0dXJuIGEuc29ydCgoZSx0KT0+ZS5yZWYubnVtLXQucmVmLm51bSl9KG4sYSxtKTtsZXQgZD1lLmxlbmd0aDtjb25zdCBnPWUuYXQoLTEpO2lmKDEwIT09ZyYmMTMhPT1nKXttLnB1c2goIlxuIik7ZCs9MX1mb3IoY29uc3R7ZGF0YTplfW9mIHApbnVsbCE9PWUmJm0ucHVzaChlKTthd2FpdChoP2FzeW5jIGZ1bmN0aW9uIGdldFhSZWZTdHJlYW1UYWJsZShlLHQsbixhLHMpe2NvbnN0IHI9W107bGV0IGk9MCxvPTA7Zm9yKGNvbnN0e3JlZjplLGRhdGE6YSxvYmpTdHJlYW1SZWY6cyxpbmRleDpsfW9mIG4pe2xldCBuO2k9TWF0aC5tYXgoaSx0KTtpZihzKXtuPWw7ci5wdXNoKFsyLHMubnVtLG5dKX1lbHNlIGlmKG51bGwhPT1hKXtuPU1hdGgubWluKGUuZ2VuLDY1NTM1KTtyLnB1c2goWzEsdCxuXSk7dCs9YS5sZW5ndGh9ZWxzZXtuPU1hdGgubWluKGUuZ2VuKzEsNjU1MzUpO3IucHVzaChbMCwwLG5dKX1vPU1hdGgubWF4KG8sbil9YS5zZXQoIkluZGV4IixnZXRJbmRleGVzKG4pKTtjb25zdCBsPVsxLGdldFNpemVJbkJ5dGVzKGkpLGdldFNpemVJbkJ5dGVzKG8pXTthLnNldCgiVyIsbCk7Y29tcHV0ZUlEcyh0LGUsYSk7Y29uc3QgZj1NYXRoLnN1bVByZWNpc2UobCksYz1uZXcgVWludDhBcnJheShmKnIubGVuZ3RoKSxoPW5ldyBTdHJlYW0oYyk7aC5kaWN0PWE7bGV0IHU9MDtmb3IoY29uc3RbZSx0LG5db2Ygcil7dT13cml0ZUludChlLGxbMF0sdSxjKTt1PXdyaXRlSW50KHQsbFsxXSx1LGMpO3U9d3JpdGVJbnQobixsWzJdLHUsYyl9YXdhaXQgd3JpdGVPYmplY3QoZS5uZXdSZWYsaCxzLHt9KTtzLnB1c2goInN0YXJ0eHJlZlxuIix0LnRvU3RyaW5nKCksIlxuJSVFT0ZcbiIpfSh0LGQscCx1LG0pOmFzeW5jIGZ1bmN0aW9uIGdldFhSZWZUYWJsZShlLHQsbixhLHMpe3MucHVzaCgieHJlZlxuIik7Y29uc3Qgcj1nZXRJbmRleGVzKG4pO2xldCBpPTA7Zm9yKGNvbnN0e3JlZjplLGRhdGE6YX1vZiBuKXtpZihlLm51bT09PXJbaV0pe3MucHVzaChgJHtyW2ldfSAke3JbaSsxXX1cbmApO2krPTJ9aWYobnVsbCE9PWEpe3MucHVzaChgJHt0LnRvU3RyaW5nKCkucGFkU3RhcnQoMTAsIjAiKX0gJHtNYXRoLm1pbihlLmdlbiw2NTUzNSkudG9TdHJpbmcoKS5wYWRTdGFydCg1LCIwIil9IG5cclxuYCk7dCs9YS5sZW5ndGh9ZWxzZSBzLnB1c2goYDAwMDAwMDAwMDAgJHtNYXRoLm1pbihlLmdlbisxLDY1NTM1KS50b1N0cmluZygpLnBhZFN0YXJ0KDUsIjAiKX0gZlxyXG5gKX1jb21wdXRlSURzKHQsZSxhKTtzLnB1c2goInRyYWlsZXJcbiIpO2F3YWl0IHdyaXRlRGljdChhLHMsbnVsbCk7cy5wdXNoKCJcbnN0YXJ0eHJlZlxuIix0LnRvU3RyaW5nKCksIlxuJSVFT0ZcbiIpfSh0LGQscCx1LG0pKTtjb25zdCBiPWUubGVuZ3RoK01hdGguc3VtUHJlY2lzZShtLm1hcChlPT5lLmxlbmd0aCkpLHc9bmV3IFVpbnQ4QXJyYXkoYik7dy5zZXQoZSk7bGV0IGo9ZS5sZW5ndGg7Zm9yKGNvbnN0IGUgb2YgbSlqPXdyaXRlU3RyaW5nKGUsaix3KTtyZXR1cm4gd31jbGFzcyBQYWdlRGF0YXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMucGFnZT1lO3RoaXMuZG9jdW1lbnREYXRhPXQ7dGhpcy5hbm5vdGF0aW9ucz1udWxsO3RoaXMucG9pbnRpbmdOYW1lZERlc3RpbmF0aW9ucz1udWxsO3QucGFnZXNNYXAucHV0KGUucmVmLHRoaXMpfX1jbGFzcyBEb2N1bWVudERhdGF7Y29uc3RydWN0b3IoZSl7dGhpcy5kb2N1bWVudD1lO3RoaXMuZGVzdGluYXRpb25zPW51bGw7dGhpcy5wYWdlTGFiZWxzPW51bGw7dGhpcy5wYWdlc01hcD1uZXcgUmVmU2V0Q2FjaGU7dGhpcy5vbGRSZWZNYXBwaW5nPW5ldyBSZWZTZXRDYWNoZTt0aGlzLmRlZHVwTmFtZWREZXN0aW5hdGlvbnM9bmV3IE1hcDt0aGlzLnVzZWROYW1lZERlc3RpbmF0aW9ucz1uZXcgU2V0O3RoaXMucG9zdHBvbmVkUmVmQ29waWVzPW5ldyBSZWZTZXRDYWNoZTt0aGlzLnVzZWRTdHJ1Y3RQYXJlbnRzPW5ldyBTZXQ7dGhpcy5vbGRTdHJ1Y3RQYXJlbnRNYXBwaW5nPW5ldyBNYXA7dGhpcy5zdHJ1Y3RUcmVlUm9vdD1udWxsO3RoaXMucGFyZW50VHJlZT1udWxsO3RoaXMuaWRUcmVlPW51bGw7dGhpcy5yb2xlTWFwPW51bGw7dGhpcy5jbGFzc01hcD1udWxsO3RoaXMubmFtZXNwYWNlcz1udWxsO3RoaXMuc3RydWN0VHJlZUFGPW51bGw7dGhpcy5zdHJ1Y3RUcmVlUHJvbnVuY2lhdGlvbkxleGljb249W119fWNsYXNzIFhSZWZXcmFwcGVye2NvbnN0cnVjdG9yKGUpe3RoaXMuZW50cmllcz1lfWZldGNoKGUpe3JldHVybiBlIGluc3RhbmNlb2YgUmVmP3RoaXMuZW50cmllc1tlLm51bV06ZX19Y2xhc3MgUERGRWRpdG9ye2hhc1NpbmdsZUZpbGU9ITE7Y3VycmVudERvY3VtZW50PW51bGw7b2xkUGFnZXM9W107bmV3UGFnZXM9W107eHJlZj1bbnVsbF07eHJlZldyYXBwZXI9bmV3IFhSZWZXcmFwcGVyKHRoaXMueHJlZik7bmV3UmVmQ291bnQ9MTtuYW1lc0RpY3Q9bnVsbDt2ZXJzaW9uPSIxLjciO3BhZ2VMYWJlbHM9bnVsbDtuYW1lZERlc3RpbmF0aW9ucz1uZXcgTWFwO3BhcmVudFRyZWU9bmV3IE1hcDtzdHJ1Y3RUcmVlS2lkcz1bXTtpZFRyZWU9bmV3IE1hcDtjbGFzc01hcD1uZXcgRGljdDtyb2xlTWFwPW5ldyBEaWN0O25hbWVzcGFjZXM9bmV3IE1hcDtzdHJ1Y3RUcmVlQUY9W107c3RydWN0VHJlZVByb251bmNpYXRpb25MZXhpY29uPVtdO2NvbnN0cnVjdG9yKHt1c2VPYmplY3RTdHJlYW1zOmU9ITAsdGl0bGU6dD0iIixhdXRob3I6bj0iIn09e30pe1t0aGlzLnJvb3RSZWYsdGhpcy5yb290RGljdF09dGhpcy5uZXdEaWN0O1t0aGlzLmluZm9SZWYsdGhpcy5pbmZvRGljdF09dGhpcy5uZXdEaWN0O1t0aGlzLnBhZ2VzUmVmLHRoaXMucGFnZXNEaWN0XT10aGlzLm5ld0RpY3Q7dGhpcy51c2VPYmplY3RTdHJlYW1zPWU7dGhpcy5vYmpTdHJlYW1SZWZzPWU/bmV3IFNldDpudWxsO3RoaXMudGl0bGU9dDt0aGlzLmF1dGhvcj1ufWdldCBuZXdSZWYoKXtyZXR1cm4gUmVmLmdldCh0aGlzLm5ld1JlZkNvdW50KyssMCl9Z2V0IG5ld0RpY3QoKXtjb25zdCBlPXRoaXMubmV3UmVmO3JldHVybltlLHRoaXMueHJlZltlLm51bV09bmV3IERpY3RdfWFzeW5jI3F0KGUsdCl7Y29uc3Qgbj10aGlzLm5ld1JlZjt0aGlzLnhyZWZbbi5udW1dPWF3YWl0IHRoaXMuI3Z0KGUsITAsdCk7cmV0dXJuIG59Y2xvbmVEaWN0KGUpe2NvbnN0IHQ9ZS5jbG9uZSgpO3QueHJlZj10aGlzLnhyZWZXcmFwcGVyO3JldHVybiB0fWFzeW5jI3Z0KGUsdCxuKXtpZihlIGluc3RhbmNlb2YgUmVmKXtjb25zdHtjdXJyZW50RG9jdW1lbnQ6e29sZFJlZk1hcHBpbmc6dH19PXRoaXM7bGV0IGE9dC5nZXQoZSk7aWYoYSlyZXR1cm4gYTtjb25zdCBzPWU7aWYoIm51bWJlciI9PXR5cGVvZihlPWF3YWl0IG4uZmV0Y2hBc3luYyhzKSkpcmV0dXJuIGU7YT10aGlzLm5ld1JlZjt0LnB1dChzLGEpO3RoaXMueHJlZlthLm51bV09YXdhaXQgdGhpcy4jdnQoZSwhMCxuKTtyZXR1cm4gYX1jb25zdCBhPVtdLHtjdXJyZW50RG9jdW1lbnQ6e3Bvc3Rwb25lZFJlZkNvcGllczpzfX09dGhpcztpZihBcnJheS5pc0FycmF5KGUpKXt0JiYoZT1lLnNsaWNlKCkpO2ZvcihsZXQgdD0wLHI9ZS5sZW5ndGg7dDxyO3QrKyl7Y29uc3Qgcj1zLmdldChlW3RdKTtyP3IucHVzaChuPT5lW3RdPW4pOmEucHVzaCh0aGlzLiN2dChlW3RdLCEwLG4pLnRoZW4obj0+ZVt0XT1uKSl9YXdhaXQgUHJvbWlzZS5hbGwoYSk7cmV0dXJuIGV9bGV0IHI7aWYoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0peyh7ZGljdDpyfT1lPWUuZ2V0T3JpZ2luYWxTdHJlYW0oKS5jbG9uZSgpKTtyLnhyZWY9dGhpcy54cmVmV3JhcHBlcn1lbHNlIGlmKGUgaW5zdGFuY2VvZiBEaWN0KXt0JiYoKGU9ZS5jbG9uZSgpKS54cmVmPXRoaXMueHJlZldyYXBwZXIpO3I9ZX1pZihyKXtmb3IoY29uc3RbZSx0XW9mIHIuZ2V0UmF3RW50cmllcygpKXtjb25zdCBpPXMuZ2V0KHQpO2k/aS5wdXNoKHQ9PnIuc2V0KGUsdCkpOmEucHVzaCh0aGlzLiN2dCh0LCEwLG4pLnRoZW4odD0+ci5zZXQoZSx0KSkpfWF3YWl0IFByb21pc2UuYWxsKGEpfXJldHVybiBlfWFzeW5jI1N0KGUsdCxuLGEscyxyLGksbz1uZXcgUmVmU2V0KXtjb25zdHtjdXJyZW50RG9jdW1lbnQ6e3BhZ2VzTWFwOmwsb2xkUmVmTWFwcGluZzpmfX09dGhpcyxjPXQuZ2V0UmF3KCJQZyIpO2lmKGMgaW5zdGFuY2VvZiBSZWYmJiFsLmhhcyhjKSlyZXR1cm4gbnVsbDtsZXQgaDtjb25zdCB1PWg9dC5nZXRSYXcoIksiKTtpZih1IGluc3RhbmNlb2YgUmVmKXtpZihvLmhhcyh1KSlyZXR1cm4gbnVsbDtoPWF3YWl0IG4uZmV0Y2hBc3luYyh1KTtBcnJheS5pc0FycmF5KGgpfHwoaD1bdV0pfWg9QXJyYXkuaXNBcnJheShoKT9oOltoXTtjb25zdCBtPVtdLHA9W107Zm9yKGxldCB0IG9mIGgpe2NvbnN0IGM9dCBpbnN0YW5jZW9mIFJlZj90Om51bGw7aWYoYyl7aWYoby5oYXMoYykpY29udGludWU7by5wdXQoYyk7dD1hd2FpdCBuLmZldGNoQXN5bmMoYyl9aWYoIm51bWJlciI9PXR5cGVvZiB0KXttLnB1c2godCk7Y29udGludWV9aWYoISh0IGluc3RhbmNlb2YgRGljdCkpY29udGludWU7Y29uc3QgaD10LmdldFJhdygiUGciKTtpZihoIGluc3RhbmNlb2YgUmVmJiYhbC5oYXMoaCkpY29udGludWU7Y29uc3QgdT10LmdldCgiVHlwZSIpO2lmKCF1fHxpc05hbWUodSwiU3RydWN0RWxlbSIpKXtsZXQgZT0hMTtpZihjJiZhLmhhcyhjKSl7aWYoIWlzTmFtZSh0LmdldCgiUyIpLCJMaW5rIikpY29udGludWU7ZT0hMH1jb25zdCBsPWF3YWl0IHRoaXMuI1N0KGMsdCxuLGEscyxyLGksbyk7aWYobCl7cC5wdXNoKG0ubGVuZ3RoKTttLnB1c2gobCk7YyYmZi5wdXQoYyxsKTtlJiZ0aGlzLnhyZWZbbC5udW1dLnNldElmTmFtZSgiUyIsIlNwYW4iKX1jb250aW51ZX1pZihpc05hbWUodSwiT0JKUiIpKXtpZighYyljb250aW51ZTtjb25zdCB0PWYuZ2V0KGMpO2lmKCF0KWNvbnRpbnVlO2NvbnN0IG49dGhpcy54cmVmW3QubnVtXS5nZXRSYXcoIk9iaiIpO2lmKG4gaW5zdGFuY2VvZiBSZWYpe2NvbnN0IHQ9dGhpcy54cmVmW24ubnVtXTtpZih0IGluc3RhbmNlb2YgRGljdCYmIXQuaGFzKCJTdHJ1Y3RQYXJlbnQiKSYmZSl7Y29uc3Qgbj10aGlzLnBhcmVudFRyZWUuc2l6ZTt0aGlzLnBhcmVudFRyZWUuc2V0KG4sW2YsZV0pO3Quc2V0KCJTdHJ1Y3RQYXJlbnQiLG4pfX1tLnB1c2godCk7Y29udGludWV9aWYoaXNOYW1lKHUsIk1DUiIpKXtjb25zdCBlPWF3YWl0IHRoaXMuI3Z0KGN8fHQsITAsbik7bS5wdXNoKGUpO2NvbnRpbnVlfWlmKGMpe2NvbnN0IGU9YXdhaXQgdGhpcy4jdnQoYywhMCxuKTttLnB1c2goZSl9fWlmKDAhPT1oLmxlbmd0aCYmMD09PW0ubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IGQ9dGhpcy5uZXdSZWYsZz10aGlzLnhyZWZbZC5udW1dPXRoaXMuY2xvbmVEaWN0KHQpO2cuZGVsZXRlKCJJRCIpO2cuZGVsZXRlKCJDIik7Zy5kZWxldGUoIksiKTtnLmRlbGV0ZSgiUCIpO2cuZGVsZXRlKCJTIik7YXdhaXQgdGhpcy4jdnQoZywhMSxuKTtjb25zdCBiPXQuZ2V0KCJDIik7aWYoYiBpbnN0YW5jZW9mIE5hbWUpe2NvbnN0IGU9ci5nZXQoYi5uYW1lKTtlP2cuc2V0KCJDIixOYW1lLmdldChlKSk6Zy5zZXQoIkMiLGIpfWVsc2UgaWYoQXJyYXkuaXNBcnJheShiKSl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiBiKWlmKHQgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCBuPXIuZ2V0KHQubmFtZSk7bj9lLnB1c2goTmFtZS5nZXQobikpOmUucHVzaCh0KX1nLnNldCgiQyIsZSl9Y29uc3Qgdz10LmdldCgiUyIpO2lmKHcgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCBlPWkuZ2V0KHcubmFtZSk7ZT9nLnNldCgiUyIsTmFtZS5nZXQoZSkpOmcuc2V0KCJTIix3KX1jb25zdCBqPXQuZ2V0KCJJRCIpO2lmKCJzdHJpbmciPT10eXBlb2Ygail7Y29uc3QgZT1zdHJpbmdUb1BERlN0cmluZyhqLCExKSx0PXMuZ2V0KGUpO3Q/Zy5zZXQoIklEIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKHQpKTpnLnNldCgiSUQiLGopfWxldCBrPWcuZ2V0KCJBIik7aWYoayl7QXJyYXkuaXNBcnJheShrKXx8KGs9W2tdKTtmb3IobGV0IGUgb2Ygayl7ZT10aGlzLnhyZWZXcmFwcGVyLmZldGNoKGUpO2lmKGlzTmFtZShlLmdldCgiTyIpLCJUYWJsZSIpJiZlLmhhcygiSGVhZGVycyIpKXtjb25zdCB0PXRoaXMueHJlZldyYXBwZXIuZmV0Y2goZS5nZXRSYXcoIkhlYWRlcnMiKSk7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49cy5nZXQoc3RyaW5nVG9QREZTdHJpbmcodFtlXSwhMSkpO24mJih0W2VdPW4pfX19fWZvcihjb25zdCBlIG9mIHApe2NvbnN0IHQ9bVtlXTt0aGlzLnhyZWZbdC5udW1dLnNldCgiUCIsZCl9MT09PW0ubGVuZ3RoP2cuc2V0KCJLIixtWzBdKTptLmxlbmd0aD4xJiZnLnNldCgiSyIsbSk7cmV0dXJuIGR9YXN5bmMgZXh0cmFjdFBhZ2VzKGUpe2NvbnN0IHQ9W107bGV0IG49MDt0aGlzLmhhc1NpbmdsZUZpbGU9MT09PWUubGVuZ3RoO2NvbnN0IGE9W107Zm9yKGNvbnN0e2RvY3VtZW50OnMsaW5jbHVkZVBhZ2VzOnIsZXhjbHVkZVBhZ2VzOmkscGFnZUluZGljZXM6b31vZiBlKXtpZighcyljb250aW51ZTtvJiYobj0tMSk7Y29uc3QgZT1uZXcgRG9jdW1lbnREYXRhKHMpO2EucHVzaChlKTt0LnB1c2godGhpcy4jeHQoZSkpO2xldCBsLGYsYyxoO2Zvcihjb25zdCBlIG9mIHJ8fFtdKUFycmF5LmlzQXJyYXkoZSk/KGZ8fD1bXSkucHVzaChlKToobHx8PW5ldyBTZXQpLmFkZChlKTtmb3IoY29uc3QgZSBvZiBpfHxbXSlBcnJheS5pc0FycmF5KGUpPyhofHw9W10pLnB1c2goZSk6KGN8fD1uZXcgU2V0KS5hZGQoZSk7bGV0IHU9MDtmb3IobGV0IGE9MCxyPXMubnVtUGFnZXM7YTxyO2ErKyl7aWYoYz8uaGFzKGEpKWNvbnRpbnVlO2lmKGgpe2xldCBlPSExO2Zvcihjb25zdFt0LG5db2YgaClpZihhPj10JiZhPD1uKXtlPSEwO2JyZWFrfWlmKGUpY29udGludWV9bGV0IHIsaT0hMTtsJiYoaT1sLmhhcyhhKSk7aWYoIWkmJmYpZm9yKGNvbnN0W2UsdF1vZiBmKWlmKGE+PWUmJmE8PXQpe2k9ITA7YnJlYWt9aXx8bHx8Znx8KGk9ITApO2lmKGkpe28mJihyPW9bdSsrXSk7aWYodm9pZCAwPT09cilpZigtMSE9PW4pcj1uKys7ZWxzZSBmb3Iocj0wO3ZvaWQgMD09PXRoaXMub2xkUGFnZXNbcl07cisrKTt0LnB1c2gocy5nZXRQYWdlKGEpLnRoZW4odD0+e3RoaXMub2xkUGFnZXNbcl09bmV3IFBhZ2VEYXRhKHQsZSl9KSl9fX1hd2FpdCBQcm9taXNlLmFsbCh0KTt0Lmxlbmd0aD0wO3RoaXMuI0F0KGEpO3RoaXMuI0N0KCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5vbGRQYWdlcyl0LnB1c2godGhpcy4jSXQoZSkpO2F3YWl0IFByb21pc2UuYWxsKHQpO3RoaXMuI0Z0KCk7dGhpcy4jVHQoYSk7Zm9yKGxldCBlPTAsdD10aGlzLm9sZFBhZ2VzLmxlbmd0aDtlPHQ7ZSsrKXRoaXMubmV3UGFnZXNbZV09YXdhaXQgdGhpcy4jSHQoZSxudWxsKTt0aGlzLiNPdChhKTthd2FpdCB0aGlzLiNCdChhKTtyZXR1cm4gdGhpcy53cml0ZVBERigpfWFzeW5jI3h0KGUpe2NvbnN0e2RvY3VtZW50OntwZGZNYW5hZ2VyOnQseHJlZjpufX09ZTthd2FpdCBQcm9taXNlLmFsbChbdC5lbnN1cmVDYXRhbG9nKCJkZXN0aW5hdGlvbnMiKS50aGVuKHQ9PmUuZGVzdGluYXRpb25zPXQpLHQuZW5zdXJlQ2F0YWxvZygicmF3UGFnZUxhYmVscyIpLnRoZW4odD0+ZS5wYWdlTGFiZWxzPXQpLHQuZW5zdXJlQ2F0YWxvZygic3RydWN0VHJlZVJvb3QiKS50aGVuKHQ9PmUuc3RydWN0VHJlZVJvb3Q9dCldKTtjb25zdCBhPWUuc3RydWN0VHJlZVJvb3Q7aWYoYSl7Y29uc3QgdD1hLmRpY3Qscz10LmdldCgiUGFyZW50VHJlZSIpO2lmKHMpe2NvbnN0IHQ9bmV3IE51bWJlclRyZWUocyxuKTtlLnBhcmVudFRyZWU9dC5nZXRBbGwoITApfWNvbnN0IHI9dC5nZXQoIklEVHJlZSIpO2lmKHIpe2NvbnN0IHQ9bmV3IE5hbWVUcmVlKHIsbik7ZS5pZFRyZWU9dC5nZXRBbGwoITApfWUucm9sZU1hcD10LmdldCgiUm9sZU1hcCIpfHxudWxsO2UuY2xhc3NNYXA9dC5nZXQoIkNsYXNzTWFwIil8fG51bGw7bGV0IGk9dC5nZXQoIk5hbWVzcGFjZXMiKXx8bnVsbDtpJiYhQXJyYXkuaXNBcnJheShpKSYmKGk9W2ldKTtlLm5hbWVzcGFjZXM9aTtlLnN0cnVjdFRyZWVBRj10LmdldCgiQUYiKXx8bnVsbDtlLnN0cnVjdFRyZWVQcm9udW5jaWF0aW9uTGV4aWNvbj10LmdldCgiUHJvbnVuY2lhdGlvbkxleGljb24iKXx8bnVsbH19YXN5bmMjSXQoZSl7Y29uc3R7cGFnZTp7eHJlZjp0LGFubm90YXRpb25zOm59LGRvY3VtZW50RGF0YTp7cGFnZXNNYXA6YSxkZXN0aW5hdGlvbnM6cyx1c2VkTmFtZWREZXN0aW5hdGlvbnM6cn19PWU7aWYoIW4pcmV0dXJuO2NvbnN0IGk9W107bGV0IG89W10sbD0wO2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0IG49bCsrO2kucHVzaCh0LmZldGNoSWZSZWZBc3luYyhlKS50aGVuKGFzeW5jIHQ9PntpZighaXNOYW1lKHQuZ2V0KCJTdWJ0eXBlIiksIkxpbmsiKSl7b1tuXT1lO3JldHVybn1jb25zdCBpPXQuZ2V0KCJBIiksbD1pIGluc3RhbmNlb2YgRGljdD9pLmdldCgiRCIpOnQuZ2V0KCJEZXN0Iik7aWYobCYmKCFBcnJheS5pc0FycmF5KGwpfHxsWzBdaW5zdGFuY2VvZiBSZWYmJiFhLmhhcyhsWzBdKSkpe2lmKCJzdHJpbmciPT10eXBlb2YgbCl7Y29uc3QgdD1zdHJpbmdUb1BERlN0cmluZyhsLCEwKTtpZihzLmhhcyh0KSl7b1tuXT1lO3IuYWRkKHQpfX19ZWxzZSBvW25dPWV9KSl9YXdhaXQgUHJvbWlzZS5hbGwoaSk7bz1vLmZpbHRlcihlPT4hIWUpO2UuYW5ub3RhdGlvbnM9by5sZW5ndGg+MD9vOm51bGx9I1R0KGUpe2Zvcihjb25zdHtwb3N0cG9uZWRSZWZDb3BpZXM6dCxwYWdlc01hcDpufW9mIGUpZm9yKGNvbnN0IGUgb2Ygbi5rZXlzKCkpdC5wdXQoZSxbXSl9I090KGUpe2Zvcihjb25zdHtwb3N0cG9uZWRSZWZDb3BpZXM6dCxvbGRSZWZNYXBwaW5nOm59b2YgZSl7Zm9yKGNvbnN0W2UsYV1vZiB0Lml0ZW1zKCkpe2NvbnN0IHQ9bi5nZXQoZSk7Zm9yKGNvbnN0IGUgb2YgYSllKHQpfXQuY2xlYXIoKX19I1J0KGUsdCxuPW5ldyBSZWZTZXQpe2lmKGUgaW5zdGFuY2VvZiBSZWYpe2lmKCFuLmhhcyhlKSl7bi5wdXQoZSk7dGhpcy4jUnQodGhpcy54cmVmW2UubnVtXSx0LG4pfXJldHVybn1pZihBcnJheS5pc0FycmF5KGUpKXtmb3IoY29uc3QgYSBvZiBlKXRoaXMuI1J0KGEsdCxuKTtyZXR1cm59bGV0IGE7ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/KHtkaWN0OmF9PWUpOmUgaW5zdGFuY2VvZiBEaWN0JiYoYT1lKTtpZihhKXt0KGEpO2Zvcihjb25zdCBlIG9mIGEuZ2V0UmF3VmFsdWVzKCkpdGhpcy4jUnQoZSx0LG4pfX1hc3luYyNCdChlKXtsZXQgdD0wO2NvbnN0e3BhcmVudFRyZWU6bn09dGhpcztmb3IobGV0IGU9MCxhPXRoaXMubmV3UGFnZXMubGVuZ3RoO2U8YTtlKyspe2NvbnN0e2RvY3VtZW50RGF0YTp7cGFyZW50VHJlZTphLG9sZFJlZk1hcHBpbmc6cyxvbGRTdHJ1Y3RQYXJlbnRNYXBwaW5nOnIsdXNlZFN0cnVjdFBhcmVudHM6aSxkb2N1bWVudDp7eHJlZjpvfX19PXRoaXMub2xkUGFnZXNbZV07aWYoIWEpY29udGludWU7Y29uc3QgbD10aGlzLm5ld1BhZ2VzW2VdLGY9dGhpcy54cmVmW2wubnVtXTt0aGlzLiNSdChmLGU9Pntjb25zdCBsPWUuZ2V0KCJTdHJ1Y3RQYXJlbnQiKT8/ZS5nZXQoIlN0cnVjdFBhcmVudHMiKTtpZigibnVtYmVyIiE9dHlwZW9mIGwpcmV0dXJuO2kuYWRkKGwpO2xldCBmPWEuZ2V0KGwpO2NvbnN0IGM9ZiBpbnN0YW5jZW9mIFJlZj9mOm51bGw7aWYoYyl7Y29uc3QgZT1vLmZldGNoKGMpO0FycmF5LmlzQXJyYXkoZSkmJihmPWUpfUFycmF5LmlzQXJyYXkoZikmJmYuZXZlcnkoZT0+bnVsbD09PWUpJiYoZj1udWxsKTtpZighZil7ZS5oYXMoIlN0cnVjdFBhcmVudCIpP2UuZGVsZXRlKCJTdHJ1Y3RQYXJlbnQiKTplLmRlbGV0ZSgiU3RydWN0UGFyZW50cyIpO3JldHVybn1sZXQgaD1yLmdldChsKTtpZih2b2lkIDA9PT1oKXtoPXQrKztyLnNldChsLGgpO24uc2V0KGgsW3MsZl0pfWUuaGFzKCJTdHJ1Y3RQYXJlbnQiKT9lLnNldCgiU3RydWN0UGFyZW50IixoKTplLnNldCgiU3RydWN0UGFyZW50cyIsaCl9KX1jb25zdHtzdHJ1Y3RUcmVlS2lkczphLGlkVHJlZTpzLGNsYXNzTWFwOnIscm9sZU1hcDppLG5hbWVzcGFjZXM6byxzdHJ1Y3RUcmVlQUY6bCxzdHJ1Y3RUcmVlUHJvbnVuY2lhdGlvbkxleGljb246Zn09dGhpcztmb3IoY29uc3QgdCBvZiBlKXtjb25zdHtkb2N1bWVudDp7eHJlZjplfSxvbGRSZWZNYXBwaW5nOm4scGFyZW50VHJlZTpjLHVzZWRTdHJ1Y3RQYXJlbnRzOmgsc3RydWN0VHJlZVJvb3Q6dSxpZFRyZWU6bSxjbGFzc01hcDpwLHJvbGVNYXA6ZCxuYW1lc3BhY2VzOmcsc3RydWN0VHJlZUFGOmIsc3RydWN0VHJlZVByb251bmNpYXRpb25MZXhpY29uOnd9PXQ7aWYoIXUpY29udGludWU7dGhpcy5jdXJyZW50RG9jdW1lbnQ9dDtjb25zdCBqPW5ldyBSZWZTZXQ7Zm9yKGNvbnN0W2UsdF1vZiBjfHxbXSkhaC5oYXMoZSkmJnQgaW5zdGFuY2VvZiBSZWYmJmoucHV0KHQpO2NvbnN0IGs9bmV3IE1hcDtmb3IoY29uc3RbZSx0XW9mIG18fFtdKXtsZXQgbj1lO2lmKHMuaGFzKGUpKWZvcihsZXQgdD0xOzt0Kyspe2NvbnN0IGE9YCR7ZX1fJHt0fWA7aWYoIXMuaGFzKGEpKXtrLnNldChlLGEpO249YTticmVha319cy5zZXQobix0KX1jb25zdCB5PW5ldyBNYXA7aWYocD8uc2l6ZT4wKWZvcihsZXRbdCxuXW9mIHApe249YXdhaXQgdGhpcy4jdnQobiwhMCxlKTtpZihyLmhhcyh0KSlmb3IobGV0IGU9MTs7ZSsrKXtjb25zdCBuPWAke3R9XyR7ZX1gO2lmKCFyLmhhcyhuKSl7eS5zZXQodCxuKTt0PW47YnJlYWt9fXIuc2V0KHQsbil9Y29uc3QgcT1uZXcgTWFwO2lmKGQ/LnNpemU+MClmb3IoY29uc3RbZSx0XW9mIGQpe2NvbnN0IG49aS5nZXQoZSk7aWYobil7aWYobiE9PXQpZm9yKGxldCBuPTE7O24rKyl7Y29uc3QgYT1gJHtlfV8ke259YDtpZighaS5oYXMoYSkpe3Euc2V0KGUsYSk7aS5zZXQoYSx0KTticmVha319fWVsc2UgaS5zZXQoZSx0KX1pZihnPy5sZW5ndGg+MClmb3IoY29uc3QgdCBvZiBnKXtjb25zdCBuPWF3YWl0IGUuZmV0Y2hJZlJlZkFzeW5jKHQpO2xldCBhPW4uZ2V0KCJOUyIpO2lmKCFhfHxvLmhhcyhhKSljb250aW51ZTthPXN0cmluZ1RvUERGU3RyaW5nKGEsITEpO2NvbnN0IHM9YXdhaXQgdGhpcy4jdnQobiwhMCxlKTtvLnNldChhLHMpfWlmKGIpZm9yKGNvbnN0IHQgb2YgYilsLnB1c2goYXdhaXQgdGhpcy4jdnQodCwhMCxlKSk7aWYodylmb3IoY29uc3QgdCBvZiB3KWYucHVzaChhd2FpdCB0aGlzLiN2dCh0LCEwLGUpKTtsZXQgdj11LmRpY3QuZ2V0KCJLIik7aWYodil7dj1BcnJheS5pc0FycmF5KHYpP3Y6W3ZdO2ZvcihsZXQgdCBvZiB2KXtjb25zdCBuPXQgaW5zdGFuY2VvZiBSZWY/dDpudWxsO2lmKG4mJmouaGFzKG4pKWNvbnRpbnVlO3Q9YXdhaXQgZS5mZXRjaElmUmVmQXN5bmModCk7Y29uc3Qgcz1hd2FpdCB0aGlzLiNTdChuLHQsZSxqLGsseSxxKTtzJiZhLnB1c2gocyl9Zm9yKGNvbnN0W2UsdF1vZiBtfHxbXSl7Y29uc3QgYT1uLmdldCh0KSxyPWsuZ2V0KGUpfHxlO2E/cy5zZXQocixhKTpzLmRlbGV0ZShyKX19fWZvcihjb25zdFtlLFt0LGFdXW9mIG4pe2lmKCFhKXtuLmRlbGV0ZShlKTtjb250aW51ZX1pZighQXJyYXkuaXNBcnJheShhKSl7Y29uc3Qgcz10LmdldChhKTt2b2lkIDA9PT1zP24uZGVsZXRlKGUpOm4uc2V0KGUscyk7Y29udGludWV9Y29uc3Qgcz1hLm1hcChlPT5lIGluc3RhbmNlb2YgUmVmJiZ0LmdldChlKXx8bnVsbCk7MD09PXMubGVuZ3RofHxzLmV2ZXJ5KGU9Pm51bGw9PT1lKT9uLmRlbGV0ZShlKTpuLnNldChlLHMpfXRoaXMuY3VycmVudERvY3VtZW50PW51bGx9I0F0KGUpe2Zvcihjb25zdCB0IG9mIGUpe2lmKCF0LmRlc3RpbmF0aW9ucyljb250aW51ZTtjb25zdHtkZXN0aW5hdGlvbnM6ZSxwYWdlc01hcDpufT10LGE9dC5kZXN0aW5hdGlvbnM9bmV3IE1hcDtmb3IoY29uc3RbdCxzXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtjb25zdCBlPXNbMF0scj1uLmdldChlKTtpZihyKXsoci5wb2ludGluZ05hbWVkRGVzdGluYXRpb25zfHw9bmV3IFNldCkuYWRkKHQpO2Euc2V0KHQscyl9fX19I0Z0KCl7Y29uc3R7bmFtZWREZXN0aW5hdGlvbnM6ZX09dGhpcztmb3IobGV0IHQ9MCxuPXRoaXMub2xkUGFnZXMubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49dGhpcy5vbGRQYWdlc1t0XSx7ZG9jdW1lbnREYXRhOntkZXN0aW5hdGlvbnM6YSxkZWR1cE5hbWVkRGVzdGluYXRpb25zOnMsdXNlZE5hbWVkRGVzdGluYXRpb25zOnJ9fT1uO2xldHtwb2ludGluZ05hbWVkRGVzdGluYXRpb25zOml9PW47aWYoaSl7bi5wb2ludGluZ05hbWVkRGVzdGluYXRpb25zPWk9aS5pbnRlcnNlY3Rpb24ocik7Zm9yKGNvbnN0IG4gb2YgaSl7aWYoIXIuaGFzKG4pKWNvbnRpbnVlO2NvbnN0IGk9YS5nZXQobikuc2xpY2UoKTtpZighZS5oYXMobikpe2Uuc2V0KG4saSk7Y29udGludWV9Y29uc3Qgbz1gJHtufV9wJHt0KzF9YDtzLnNldChuLG8pO2Uuc2V0KG8saSl9fX19I0R0KGUsdCl7aWYoMD09PXQuc2l6ZSlyZXR1cm47Y29uc3QgZml4RGVzdGluYXRpb249KGUsbixhKT0+eyJzdHJpbmciPT10eXBlb2YgYSYmZS5zZXQobix0LmdldChzdHJpbmdUb1BERlN0cmluZyhhLCEwKSl8fGEpfTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPXRoaXMueHJlZlt0Lm51bV07aWYoIWlzTmFtZShlLmdldCgiU3VidHlwZSIpLCJMaW5rIikpY29udGludWU7Y29uc3Qgbj1lLmdldCgiQSIpO2lmKG4gaW5zdGFuY2VvZiBEaWN0JiZuLmhhcygiRCIpKXtjb25zdCBlPW4uZ2V0KCJEIik7Zml4RGVzdGluYXRpb24obiwiRCIsZSk7Y29udGludWV9Y29uc3QgYT1lLmdldCgiRGVzdCIpO2ZpeERlc3RpbmF0aW9uKGUsIkRlc3QiLGEpfX1hc3luYyNDdCgpe2lmKCF0aGlzLmhhc1NpbmdsZUZpbGUpcmV0dXJuO2NvbnN0e2RvY3VtZW50RGF0YTp7ZG9jdW1lbnQ6ZSxwYWdlTGFiZWxzOnR9fT10aGlzLm9sZFBhZ2VzWzBdO2lmKCF0KXJldHVybjtjb25zdCBuPWUubnVtUGFnZXMsYT1bXSxzPW5ldyBTZXQodGhpcy5vbGRQYWdlcy5tYXAoKHtwYWdlOntwYWdlSW5kZXg6ZX19KT0+ZSkpO2xldCByPW51bGwsaT0tMTtmb3IobGV0IGU9MDtlPG47ZSsrKXtjb25zdCBuPXQuZ2V0KGUpO2lmKG4pe3I9bjtpPXIuaGFzKCJTdCIpP2U6LTF9aWYocy5oYXMoZSkpe2lmKC0xIT09aSl7Y29uc3QgdD1yLmdldCgiU3QiKTtyPXRoaXMuY2xvbmVEaWN0KHIpO3Iuc2V0KCJTdCIsdCsoZS1pKSk7aT0tMX1hLnB1c2gocil9fXI9YVswXTtsZXQgbz0wO2NvbnN0IGw9dGhpcy5wYWdlTGFiZWxzPVtbMCxyXV07Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PWFbZV07aWYodCE9PXIpe289ZTtyPXQ7bC5wdXNoKFtvLHJdKX19fWFzeW5jI0h0KGUpe2NvbnN0e3BhZ2U6dCxkb2N1bWVudERhdGE6bixhbm5vdGF0aW9uczphLHBvaW50aW5nTmFtZWREZXN0aW5hdGlvbnM6c309dGhpcy5vbGRQYWdlc1tlXTt0aGlzLmN1cnJlbnREb2N1bWVudD1uO2NvbnN0e2RlZHVwTmFtZWREZXN0aW5hdGlvbnM6cixvbGRSZWZNYXBwaW5nOml9PW4se3hyZWY6byxyb3RhdGU6bCxtZWRpYUJveDpmLHJlc291cmNlczpjLHJlZjpofT10LHU9dGhpcy5uZXdSZWYsbT10aGlzLnhyZWZbdS5udW1dPXRoaXMuY2xvbmVEaWN0KHQucGFnZURpY3QpO2kucHV0KGgsdSk7aWYocylmb3IoY29uc3QgZSBvZiBzKXtjb25zdCB0PXIuZ2V0KGUpfHxlO3RoaXMubmFtZWREZXN0aW5hdGlvbnMuZ2V0KHQpWzBdPXV9Zm9yKGNvbnN0IGUgb2ZbIlJvdGF0ZSIsIk1lZGlhQm94IiwiQ3JvcEJveCIsIkJsZWVkQm94IiwiVHJpbUJveCIsIkFydEJveCIsIlJlc291cmNlcyIsIkFubm90cyIsIlBhcmVudCIsIlVzZXJVbml0Il0pbS5kZWxldGUoZSk7Y29uc3QgcD10aGlzLm5ld1JlZkNvdW50O2F3YWl0IHRoaXMuI3Z0KG0sITEsbyk7bS5zZXQoIlJvdGF0ZSIsbCk7bS5zZXQoIk1lZGlhQm94IixmKTtmb3IoY29uc3QgZSBvZlsiQ3JvcEJveCIsIkJsZWVkQm94IiwiVHJpbUJveCIsIkFydEJveCJdKXtjb25zdCBuPXQuZ2V0Qm91bmRpbmdCb3goZSk7bj8uc29tZSgoZSx0KT0+ZSE9PWZbdF0pJiZtLnNldChlLG4pfWNvbnN0IGQ9dC51c2VyVW5pdDsxIT09ZCYmbS5zZXQoIlVzZXJVbml0IixkKTttLnNldElmRGljdCgiUmVzb3VyY2VzIixhd2FpdCB0aGlzLiN2dChjLCEwLG8pKTtpZihhKXtjb25zdCBlPWF3YWl0IHRoaXMuI3Z0KGEsITAsbyk7dGhpcy4jRHQoZSxyKTttLnNldElmQXJyYXkoIkFubm90cyIsZSl9aWYodGhpcy51c2VPYmplY3RTdHJlYW1zKXtjb25zdCBlPXRoaXMubmV3UmVmQ291bnQsdD1bXTtmb3IobGV0IG49cDtuPGU7bisrKXt0aGlzLnhyZWZbbl1pbnN0YW5jZW9mIEJhc2VTdHJlYW18fHQucHVzaChSZWYuZ2V0KG4sMCkpfWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9NjU1MzUpe2NvbnN0IG49dGhpcy5uZXdSZWY7dGhpcy5vYmpTdHJlYW1SZWZzLmFkZChuLm51bSk7dGhpcy54cmVmW24ubnVtXT10LnNsaWNlKGUsZSs2NTUzNSl9fXRoaXMuY3VycmVudERvY3VtZW50PW51bGw7cmV0dXJuIHV9I010KCl7Y29uc3R7bmV3UGFnZXM6ZSxyb290RGljdDp0LHBhZ2VzUmVmOm4scGFnZXNEaWN0OmF9PXRoaXM7dC5zZXQoIlBhZ2VzIixuKTthLnNldElmTmFtZSgiVHlwZSIsIlBhZ2VzIik7YS5zZXQoIkNvdW50IixlLmxlbmd0aCk7Y29uc3Qgcz1be2RpY3Q6YSxraWRzOmUscGFyZW50UmVmOm59XTtmb3IoO3MubGVuZ3RoPjA7KXtjb25zdHtkaWN0OmUsa2lkczp0LHBhcmVudFJlZjpufT1zLnBvcCgpO2lmKHQubGVuZ3RoPD0xNil7ZS5zZXQoIktpZHMiLHQpO2Zvcihjb25zdCBlIG9mIHQpdGhpcy54cmVmW2UubnVtXS5zZXQoIlBhcmVudCIsbik7Y29udGludWV9Y29uc3QgYT1NYXRoLm1heCgxNixNYXRoLmNlaWwodC5sZW5ndGgvMTYpKSxyPVtdO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9YSlyLnB1c2godC5zbGljZShlLGUrYSkpO2NvbnN0IGk9W107ZS5zZXQoIktpZHMiLGkpO2Zvcihjb25zdCBlIG9mIHIpe2NvbnN0W3QsYV09dGhpcy5uZXdEaWN0O2kucHVzaCh0KTthLnNldElmTmFtZSgiVHlwZSIsIlBhZ2VzIik7YS5zZXQoIlBhcmVudCIsbik7YS5zZXQoIkNvdW50IixlLmxlbmd0aCk7cy5wdXNoKHtkaWN0OmEsa2lkczplLHBhcmVudFJlZjp0fSl9fX0jUHQoZSx0KXtjb25zdCBuPWUuc29ydCh0PyhbZV0sW3RdKT0+ZS5sb2NhbGVDb21wYXJlKHQpOihbZV0sW3RdKT0+ZS10KSxbYSxzXT10aGlzLm5ld0RpY3Qscj1be2RpY3Q6cyxlbnRyaWVzOm59XSxpPXQ/Ik5hbWVzIjoiTnVtcyI7Zm9yKDtyLmxlbmd0aD4wOyl7Y29uc3R7ZGljdDplLGVudHJpZXM6dH09ci5wb3AoKTtpZih0Lmxlbmd0aDw9NjQpe2Uuc2V0KCJMaW1pdHMiLFt0WzBdWzBdLHQuYXQoLTEpWzBdXSk7ZS5zZXQoaSx0LmZsYXQoKSk7Y29udGludWV9Y29uc3Qgbj1bXSxhPU1hdGgubWF4KDY0LE1hdGguY2VpbCh0Lmxlbmd0aC82NCkpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9YSluLnB1c2godC5zbGljZShlLGUrYSkpO2NvbnN0IHM9W107ZS5zZXQoIktpZHMiLHMpO2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0W3Qsbl09dGhpcy5uZXdEaWN0O3MucHVzaCh0KTtuLnNldCgiTGltaXRzIixbZVswXVswXSxlLmF0KC0xKVswXV0pO3IucHVzaCh7ZGljdDpuLGVudHJpZXM6ZX0pfX1yZXR1cm4gYX0jRXQoKXtjb25zdHtwYWdlTGFiZWxzOmV9PXRoaXM7aWYoIWV8fDA9PT1lLmxlbmd0aClyZXR1cm47Y29uc3R7cm9vdERpY3Q6dH09dGhpcyxuPXRoaXMuI1B0KHRoaXMucGFnZUxhYmVscywhMSk7dC5zZXQoIlBhZ2VMYWJlbHMiLG4pfSNOdCgpe2NvbnN0e25hbWVkRGVzdGluYXRpb25zOmV9PXRoaXM7aWYoMCE9PWUuc2l6ZSl7aWYoIXRoaXMubmFtZXNEaWN0KXtbdGhpcy5uYW1lc1JlZix0aGlzLm5hbWVzRGljdF09dGhpcy5uZXdEaWN0O3RoaXMucm9vdERpY3Quc2V0KCJOYW1lcyIsdGhpcy5uYW1lc1JlZil9dGhpcy5uYW1lc0RpY3Quc2V0KCJEZXN0cyIsdGhpcy4jUHQoQXJyYXkuZnJvbShlLmVudHJpZXMoKSksITApKX19I3p0KCl7Y29uc3R7c3RydWN0VHJlZUtpZHM6ZX09dGhpcztpZighZXx8MD09PWUubGVuZ3RoKXJldHVybjtjb25zdHtyb290RGljdDp0fT10aGlzLG49dGhpcy5uZXdSZWYsYT10aGlzLnhyZWZbbi5udW1dPW5ldyBEaWN0O2Euc2V0SWZOYW1lKCJUeXBlIiwiU3RydWN0VHJlZVJvb3QiKTthLnNldElmQXJyYXkoIksiLGUpO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dGhpcy54cmVmW3QubnVtXSxhPWUuZ2V0KCJUeXBlIik7YSYmIWlzTmFtZShhLCJTdHJ1Y3RFbGVtIil8fGUuc2V0KCJQIixuKX1pZih0aGlzLnBhcmVudFRyZWUuc2l6ZT4wKXtjb25zdCBlPXRoaXMuI1B0KEFycmF5LmZyb20odGhpcy5wYXJlbnRUcmVlLmVudHJpZXMoKSksITEpO3RoaXMueHJlZltlLm51bV0uc2V0SWZOYW1lKCJUeXBlIiwiUGFyZW50VHJlZSIpO2Euc2V0KCJQYXJlbnRUcmVlIixlKTthLnNldCgiUGFyZW50VHJlZU5leHRLZXkiLHRoaXMucGFyZW50VHJlZS5zaXplKX1pZih0aGlzLmlkVHJlZS5zaXplPjApe2NvbnN0IGU9dGhpcy4jUHQoQXJyYXkuZnJvbSh0aGlzLmlkVHJlZS5lbnRyaWVzKCkpLCEwKTt0aGlzLnhyZWZbZS5udW1dLnNldElmTmFtZSgiVHlwZSIsIklEVHJlZSIpO2Euc2V0KCJJRFRyZWUiLGUpfWlmKHRoaXMuY2xhc3NNYXAuc2l6ZT4wKXtjb25zdCBlPXRoaXMubmV3UmVmO3RoaXMueHJlZltlLm51bV09dGhpcy5jbGFzc01hcDthLnNldCgiQ2xhc3NNYXAiLGUpfWlmKHRoaXMucm9sZU1hcC5zaXplPjApe2NvbnN0IGU9dGhpcy5uZXdSZWY7dGhpcy54cmVmW2UubnVtXT10aGlzLnJvbGVNYXA7YS5zZXQoIlJvbGVNYXAiLGUpfWlmKHRoaXMubmFtZXNwYWNlcy5zaXplPjApe2NvbnN0IGU9dGhpcy5uZXdSZWY7dGhpcy54cmVmW2UubnVtXT1BcnJheS5mcm9tKHRoaXMubmFtZXNwYWNlcy52YWx1ZXMoKSk7YS5zZXQoIk5hbWVzcGFjZXMiLGUpfWlmKHRoaXMuc3RydWN0VHJlZUFGLmxlbmd0aD4wKXtjb25zdCBlPXRoaXMubmV3UmVmO3RoaXMueHJlZltlLm51bV09dGhpcy5zdHJ1Y3RUcmVlQUY7YS5zZXQoIkFGIixlKX1pZih0aGlzLnN0cnVjdFRyZWVQcm9udW5jaWF0aW9uTGV4aWNvbi5sZW5ndGg+MCl7Y29uc3QgZT10aGlzLm5ld1JlZjt0aGlzLnhyZWZbZS5udW1dPXRoaXMuc3RydWN0VHJlZVByb251bmNpYXRpb25MZXhpY29uO2Euc2V0KCJQcm9udW5jaWF0aW9uTGV4aWNvbiIsZSl9dC5zZXQoIlN0cnVjdFRyZWVSb290IixuKX1hc3luYyNMdCgpe2NvbnN0e3Jvb3REaWN0OmV9PXRoaXM7ZS5zZXRJZk5hbWUoIlR5cGUiLCJDYXRhbG9nIik7ZS5zZXRJZk5hbWUoIlZlcnNpb24iLHRoaXMudmVyc2lvbik7dGhpcy4jTXQoKTt0aGlzLiNFdCgpO3RoaXMuI050KCk7dGhpcy4jenQoKX0jVXQoKXtjb25zdCBlPW5ldyBNYXA7aWYodGhpcy5oYXNTaW5nbGVGaWxlKXtjb25zdHt4cmVmOnt0cmFpbGVyOnR9fT10aGlzLm9sZFBhZ2VzWzBdLmRvY3VtZW50RGF0YS5kb2N1bWVudCxuPXQuZ2V0KCJJbmZvIik7Zm9yKGNvbnN0W3QsYV1vZiBufHxbXSkic3RyaW5nIj09dHlwZW9mIGEmJmUuc2V0KHQsc3RyaW5nVG9QREZTdHJpbmcoYSkpfWUuZGVsZXRlKCJNb2REYXRlIik7ZS5zZXQoIkNyZWF0aW9uRGF0ZSIsZ2V0TW9kaWZpY2F0aW9uRGF0ZSgpKTtlLnNldCgiQ3JlYXRvciIsIlBERi5qcyIpO2Uuc2V0KCJQcm9kdWNlciIsIkZpcmVmb3giKTt0aGlzLmF1dGhvciYmZS5zZXQoIkF1dGhvciIsdGhpcy5hdXRob3IpO3RoaXMudGl0bGUmJmUuc2V0KCJUaXRsZSIsdGhpcy50aXRsZSk7Zm9yKGNvbnN0W3Qsbl1vZiBlKXRoaXMuaW5mb0RpY3Quc2V0KHQsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShuKSk7cmV0dXJuIGV9YXN5bmMjX3QoKXtpZighdGhpcy5oYXNTaW5nbGVGaWxlKXJldHVybltudWxsLG51bGwsbnVsbF07Y29uc3R7ZG9jdW1lbnREYXRhOmV9PXRoaXMub2xkUGFnZXNbMF0se2RvY3VtZW50Ont4cmVmOnt0cmFpbGVyOnQsZW5jcnlwdDpufX19PWU7aWYoIXQuaGFzKCJFbmNyeXB0IikpcmV0dXJuW251bGwsbnVsbCxudWxsXTtjb25zdCBhPXQuZ2V0KCJFbmNyeXB0Iik7aWYoIShhIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuW251bGwsbnVsbCxudWxsXTt0aGlzLmN1cnJlbnREb2N1bWVudD1lO2NvbnN0IHM9W2F3YWl0IHRoaXMuI3F0KGEsdC54cmVmKSxuLHQuZ2V0KCJJRCIpXTt0aGlzLmN1cnJlbnREb2N1bWVudD1udWxsO3JldHVybiBzfWFzeW5jI1h0KCl7Y29uc3QgZT1uZXcgUmVmU2V0Q2FjaGU7ZS5wdXQoUmVmLmdldCgwLDY1NTM1KSx7ZGF0YTpudWxsfSk7Zm9yKGxldCB0PTEsbj10aGlzLnhyZWYubGVuZ3RoO3Q8bjt0KyspdGhpcy5vYmpTdHJlYW1SZWZzPy5oYXModCk/YXdhaXQgdGhpcy4jV3QoUmVmLmdldCh0LDApLHRoaXMueHJlZlt0XSxlKTplLnB1dChSZWYuZ2V0KHQsMCkse2RhdGE6dGhpcy54cmVmW3RdfSk7cmV0dXJuW2UsdGhpcy5uZXdSZWZdfWFzeW5jI1d0KGUsdCxuKXtjb25zdCBhPVsiIl0scz1bXTtsZXQgcj0wO2NvbnN0IGk9W107Zm9yKGxldCBvPTAsbD10Lmxlbmd0aDtvPGw7bysrKXtjb25zdCBsPXRbb107bi5wdXQobCx7ZGF0YTpudWxsLG9ialN0cmVhbVJlZjplLGluZGV4Om99KTtzLnB1c2goYCR7bC5udW19ICR7cn1gKTtjb25zdCBmPXRoaXMueHJlZltsLm51bV07YXdhaXQgd3JpdGVWYWx1ZShmLGksbnVsbCk7Y29uc3QgYz1pLmpvaW4oIiIpO2kubGVuZ3RoPTA7YS5wdXNoKGMpO3IrPWMubGVuZ3RoKzF9YVswXT1zLmpvaW4oIlxuIik7Y29uc3Qgbz1uZXcgU3RyaW5nU3RyZWFtKGEuam9pbigiXG4iKSksbD1vLmRpY3Q9bmV3IERpY3Q7bC5zZXRJZk5hbWUoIlR5cGUiLCJPYmpTdG0iKTtsLnNldCgiTiIsdC5sZW5ndGgpO2wuc2V0KCJGaXJzdCIsYVswXS5sZW5ndGgrMSk7bi5wdXQoZSx7ZGF0YTpvfSl9YXN5bmMgd3JpdGVQREYoKXthd2FpdCB0aGlzLiNMdCgpO2NvbnN0IGU9dGhpcy4jVXQoKSxbdCxuLGFdPWF3YWl0IHRoaXMuI190KCksW3Mscl09YXdhaXQgdGhpcy4jWHQoKSxpPVsuLi5gJVBERi0ke3RoaXMudmVyc2lvbn1cbiVgLnNwbGl0KCIiKS5tYXAoZT0+ZS5jaGFyQ29kZUF0KDApKSwyNTAsMjIyLDI1MCwyMDZdO3JldHVybiBpbmNyZW1lbnRhbFVwZGF0ZSh7b3JpZ2luYWxEYXRhOm5ldyBVaW50OEFycmF5KGkpLGNoYW5nZXM6cyx4cmVmSW5mbzp7c3RhcnRYUmVmOm51bGwscm9vdFJlZjp0aGlzLnJvb3RSZWYsaW5mb1JlZjp0aGlzLmluZm9SZWYsZW5jcnlwdFJlZjp0LG5ld1JlZjpyLGZpbGVJZHM6YXx8W251bGwsbnVsbF0saW5mb01hcDplfSx1c2VYcmVmU3RyZWFtOnRoaXMudXNlT2JqZWN0U3RyZWFtcyx4cmVmOntlbmNyeXB0Om4sZW5jcnlwdFJlZjp0fX0pfX1jbGFzcyBCYXNlUERGU3RyZWFteyNLdD1udWxsOyNHdD1udWxsO19mdWxsUmVhZGVyPW51bGw7X3JhbmdlUmVhZGVycz1uZXcgU2V0O19zb3VyY2U9bnVsbDtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5fc291cmNlPWU7dGhpcy4jS3Q9dDt0aGlzLiNHdD1ufWdldCBfcHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2Z1bGxSZWFkZXI/Ll9sb2FkZWQ/PzB9Z2V0RnVsbFJlYWRlcigpe2Fzc2VydCghdGhpcy5fZnVsbFJlYWRlciwiQmFzZVBERlN0cmVhbS5nZXRGdWxsUmVhZGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLiIpO3JldHVybiB0aGlzLl9mdWxsUmVhZGVyPW5ldyB0aGlzLiNLdCh0aGlzKX1nZXRSYW5nZVJlYWRlcihlLHQpe2lmKHQ8PXRoaXMuX3Byb2dyZXNzaXZlRGF0YUxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBuPW5ldyB0aGlzLiNHdCh0aGlzLGUsdCk7dGhpcy5fcmFuZ2VSZWFkZXJzLmFkZChuKTtyZXR1cm4gbn1jYW5jZWxBbGxSZXF1ZXN0cyhlKXt0aGlzLl9mdWxsUmVhZGVyPy5jYW5jZWwoZSk7Zm9yKGNvbnN0IHQgb2YgbmV3IFNldCh0aGlzLl9yYW5nZVJlYWRlcnMpKXQuY2FuY2VsKGUpfX1jbGFzcyBCYXNlUERGU3RyZWFtUmVhZGVye29uUHJvZ3Jlc3M9bnVsbDtfY29udGVudExlbmd0aD0wO19maWxlbmFtZT1udWxsO19oZWFkZXJzQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTtfaXNSYW5nZVN1cHBvcnRlZD0hMTtfaXNTdHJlYW1pbmdTdXBwb3J0ZWQ9ITE7X2xvYWRlZD0wO19zdHJlYW09bnVsbDtjb25zdHJ1Y3RvcihlKXt0aGlzLl9zdHJlYW09ZX1fY2FsbE9uUHJvZ3Jlc3MoKXt0aGlzLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnRoaXMuX2xvYWRlZCx0b3RhbDp0aGlzLl9jb250ZW50TGVuZ3RofSl9Z2V0IGhlYWRlcnNSZWFkeSgpe3JldHVybiB0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5wcm9taXNlfWdldCBmaWxlbmFtZSgpe3JldHVybiB0aGlzLl9maWxlbmFtZX1nZXQgY29udGVudExlbmd0aCgpe3JldHVybiB0aGlzLl9jb250ZW50TGVuZ3RofWdldCBpc1JhbmdlU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzUmFuZ2VTdXBwb3J0ZWR9Z2V0IGlzU3RyZWFtaW5nU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RyZWFtaW5nU3VwcG9ydGVkfWFzeW5jIHJlYWQoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGByZWFkYCBjYWxsZWQiKX1jYW5jZWwoZSl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgY2FuY2VsYCBjYWxsZWQiKX19Y2xhc3MgQmFzZVBERlN0cmVhbVJhbmdlUmVhZGVye19zdHJlYW09bnVsbDtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5fc3RyZWFtPWV9YXN5bmMgcmVhZCgpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYHJlYWRgIGNhbGxlZCIpfWNhbmNlbChlKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBjYW5jZWxgIGNhbGxlZCIpfX1jbGFzcyBQREZXb3JrZXJTdHJlYW0gZXh0ZW5kcyBCYXNlUERGU3RyZWFte2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsUERGV29ya2VyU3RyZWFtUmVhZGVyLFBERldvcmtlclN0cmVhbVJhbmdlUmVhZGVyKX19Y2xhc3MgUERGV29ya2VyU3RyZWFtUmVhZGVyIGV4dGVuZHMgQmFzZVBERlN0cmVhbVJlYWRlcntfcmVhZGVyPW51bGw7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7bXNnSGFuZGxlcjp0fT1lLl9zb3VyY2Usbj10LnNlbmRXaXRoU3RyZWFtKCJHZXRSZWFkZXIiKTt0aGlzLl9yZWFkZXI9bi5nZXRSZWFkZXIoKTt0LnNlbmRXaXRoUHJvbWlzZSgiUmVhZGVySGVhZGVyc1JlYWR5IikudGhlbihlPT57dGhpcy5fY29udGVudExlbmd0aD1lLmNvbnRlbnRMZW5ndGg7dGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9ZS5pc1N0cmVhbWluZ1N1cHBvcnRlZDt0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPWUuaXNSYW5nZVN1cHBvcnRlZDt0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZXNvbHZlKCl9LHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCl9YXN5bmMgcmVhZCgpe2NvbnN0e3ZhbHVlOmUsZG9uZTp0fT1hd2FpdCB0aGlzLl9yZWFkZXIucmVhZCgpO3JldHVybiB0P3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06e3ZhbHVlOmUuYnVmZmVyLGRvbmU6ITF9fWNhbmNlbChlKXt0aGlzLl9yZWFkZXIuY2FuY2VsKGUpfX1jbGFzcyBQREZXb3JrZXJTdHJlYW1SYW5nZVJlYWRlciBleHRlbmRzIEJhc2VQREZTdHJlYW1SYW5nZVJlYWRlcntfcmVhZGVyPW51bGw7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGUsdCxuKTtjb25zdHttc2dIYW5kbGVyOmF9PWUuX3NvdXJjZSxzPWEuc2VuZFdpdGhTdHJlYW0oIkdldFJhbmdlUmVhZGVyIix7YmVnaW46dCxlbmQ6bn0pO3RoaXMuX3JlYWRlcj1zLmdldFJlYWRlcigpfWFzeW5jIHJlYWQoKXtjb25zdHt2YWx1ZTplLGRvbmU6dH09YXdhaXQgdGhpcy5fcmVhZGVyLnJlYWQoKTtyZXR1cm4gdD97dmFsdWU6dm9pZCAwLGRvbmU6ITB9Ont2YWx1ZTplLmJ1ZmZlcixkb25lOiExfX1jYW5jZWwoZSl7dGhpcy5fcmVhZGVyLmNhbmNlbChlKX19Y2xhc3MgV29ya2VyVGFza3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9ZTt0aGlzLnRlcm1pbmF0ZWQ9ITE7dGhpcy5fY2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKX1nZXQgZmluaXNoZWQoKXtyZXR1cm4gdGhpcy5fY2FwYWJpbGl0eS5wcm9taXNlfWZpbmlzaCgpe3RoaXMuX2NhcGFiaWxpdHkucmVzb2x2ZSgpfXRlcm1pbmF0ZSgpe3RoaXMudGVybWluYXRlZD0hMH1lbnN1cmVOb3RUZXJtaW5hdGVkKCl7aWYodGhpcy50ZXJtaW5hdGVkKXRocm93IG5ldyBFcnJvcigiV29ya2VyIHRhc2sgd2FzIHRlcm1pbmF0ZWQiKX19Y2xhc3MgV29ya2VyTWVzc2FnZUhhbmRsZXJ7c3RhdGljeyJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93JiYhZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYiZnVuY3Rpb24iPT10eXBlb2Ygc2VsZi5wb3N0TWVzc2FnZSYmIm9ubWVzc2FnZSJpbiBzZWxmJiZ0aGlzLmluaXRpYWxpemVGcm9tUG9ydChzZWxmKX1zdGF0aWMgc2V0dXAoZSx0KXtsZXQgbj0hMTtlLm9uKCJ0ZXN0Iix0PT57aWYoIW4pe249ITA7ZS5zZW5kKCJ0ZXN0Iix0IGluc3RhbmNlb2YgVWludDhBcnJheSl9fSk7ZS5vbigiY29uZmlndXJlIixlPT57IWZ1bmN0aW9uIHNldFZlcmJvc2l0eUxldmVsKGUpe051bWJlci5pc0ludGVnZXIoZSkmJihadD1lKX0oZS52ZXJib3NpdHkpfSk7ZS5vbigiR2V0RG9jUmVxdWVzdCIsZT0+dGhpcy5jcmVhdGVEb2N1bWVudEhhbmRsZXIoZSx0KSl9c3RhdGljIGNyZWF0ZURvY3VtZW50SGFuZGxlcihlLHQpe2xldCBuLGE9ITEscz1udWxsO2NvbnN0IHI9bmV3IFNldCxpPWdldFZlcmJvc2l0eUxldmVsKCkse2RvY0lkOm8sYXBpVmVyc2lvbjpsfT1lLGY9IjUuNS4yMDciO2lmKGwhPT1mKXRocm93IG5ldyBFcnJvcihgVGhlIEFQSSB2ZXJzaW9uICIke2x9IiBkb2VzIG5vdCBtYXRjaCB0aGUgV29ya2VyIHZlcnNpb24gIiR7Zn0iLmApO2NvbnN0IGJ1aWxkTXNnPShlLHQpPT5gVGhlIFxgJHtlfS5wcm90b3R5cGVcYCBjb250YWlucyB1bmV4cGVjdGVkIGVudW1lcmFibGUgcHJvcGVydHkgIiR7dH0iLCB0aHVzIGJyZWFraW5nIGUuZy4gXGBmb3IuLi5pblxgIGl0ZXJhdGlvbiBvZiAke2V9cy5gO2Zvcihjb25zdCBlIGlue30pdGhyb3cgbmV3IEVycm9yKGJ1aWxkTXNnKCJPYmplY3QiLGUpKTtmb3IoY29uc3QgZSBpbltdKXRocm93IG5ldyBFcnJvcihidWlsZE1zZygiQXJyYXkiLGUpKTtjb25zdCBjPW8rIl93b3JrZXIiO2xldCBoPW5ldyBNZXNzYWdlSGFuZGxlcihjLG8sdCk7ZnVuY3Rpb24gZW5zdXJlTm90VGVybWluYXRlZCgpe2lmKGEpdGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQiKX1mdW5jdGlvbiBzdGFydFdvcmtlclRhc2soZSl7ci5hZGQoZSl9ZnVuY3Rpb24gZmluaXNoV29ya2VyVGFzayhlKXtlLmZpbmlzaCgpO3IuZGVsZXRlKGUpfWFzeW5jIGZ1bmN0aW9uIGxvYWREb2N1bWVudChlKXthd2FpdCBuLmVuc3VyZURvYygiY2hlY2tIZWFkZXIiKTthd2FpdCBuLmVuc3VyZURvYygicGFyc2VTdGFydFhSZWYiKTthd2FpdCBuLmVuc3VyZURvYygicGFyc2UiLFtlXSk7YXdhaXQgbi5lbnN1cmVEb2MoImNoZWNrRmlyc3RQYWdlIixbZV0pO2F3YWl0IG4uZW5zdXJlRG9jKCJjaGVja0xhc3RQYWdlIixbZV0pO2NvbnN0IHQ9YXdhaXQgbi5lbnN1cmVEb2MoImlzUHVyZVhmYSIpO2lmKHQpe2NvbnN0IGU9bmV3IFdvcmtlclRhc2soImxvYWRYZmFSZXNvdXJjZXMiKTtzdGFydFdvcmtlclRhc2soZSk7YXdhaXQgbi5lbnN1cmVEb2MoImxvYWRYZmFSZXNvdXJjZXMiLFtoLGVdKTtmaW5pc2hXb3JrZXJUYXNrKGUpfWNvbnN0W2Esc109YXdhaXQgUHJvbWlzZS5hbGwoW24uZW5zdXJlRG9jKCJudW1QYWdlcyIpLG4uZW5zdXJlRG9jKCJmaW5nZXJwcmludHMiKV0pO3JldHVybntudW1QYWdlczphLGZpbmdlcnByaW50czpzLGh0bWxGb3JYZmE6dD9hd2FpdCBuLmVuc3VyZURvYygiaHRtbEZvclhmYSIpOm51bGx9fWZ1bmN0aW9uIHNldHVwRG9jKGUpe2Z1bmN0aW9uIG9uU3VjY2VzcyhlKXtlbnN1cmVOb3RUZXJtaW5hdGVkKCk7aC5zZW5kKCJHZXREb2MiLHtwZGZJbmZvOmV9KX1mdW5jdGlvbiBvbkZhaWx1cmUoZSl7aWYoIWEpaWYoZSBpbnN0YW5jZW9mIFBhc3N3b3JkRXhjZXB0aW9uKXtjb25zdCB0PW5ldyBXb3JrZXJUYXNrKGBQYXNzd29yZEV4Y2VwdGlvbjogcmVzcG9uc2UgJHtlLmNvZGV9YCk7c3RhcnRXb3JrZXJUYXNrKHQpO2guc2VuZFdpdGhQcm9taXNlKCJQYXNzd29yZFJlcXVlc3QiLGUpLnRoZW4oZnVuY3Rpb24oe3Bhc3N3b3JkOmV9KXtmaW5pc2hXb3JrZXJUYXNrKHQpO24udXBkYXRlUGFzc3dvcmQoZSk7cGRmTWFuYWdlclJlYWR5KCl9KS5jYXRjaChmdW5jdGlvbigpe2ZpbmlzaFdvcmtlclRhc2sodCk7aC5zZW5kKCJEb2NFeGNlcHRpb24iLGUpfSl9ZWxzZSBoLnNlbmQoIkRvY0V4Y2VwdGlvbiIsd3JhcFJlYXNvbihlKSl9ZnVuY3Rpb24gcGRmTWFuYWdlclJlYWR5KCl7ZW5zdXJlTm90VGVybWluYXRlZCgpO2xvYWREb2N1bWVudCghMSkudGhlbihvblN1Y2Nlc3MsZnVuY3Rpb24oZSl7ZW5zdXJlTm90VGVybWluYXRlZCgpO2UgaW5zdGFuY2VvZiBYUmVmUGFyc2VFeGNlcHRpb24/bi5yZXF1ZXN0TG9hZGVkU3RyZWFtKCkudGhlbihmdW5jdGlvbigpe2Vuc3VyZU5vdFRlcm1pbmF0ZWQoKTtsb2FkRG9jdW1lbnQoITApLnRoZW4ob25TdWNjZXNzLG9uRmFpbHVyZSl9KTpvbkZhaWx1cmUoZSl9KX1lbnN1cmVOb3RUZXJtaW5hdGVkKCk7KGFzeW5jIGZ1bmN0aW9uIGdldFBkZk1hbmFnZXIoe2RhdGE6ZSxwYXNzd29yZDp0LGRpc2FibGVBdXRvRmV0Y2g6bixyYW5nZUNodW5rU2l6ZTphLGxlbmd0aDpyLGRvY0Jhc2VVcmw6aSxlbmFibGVYZmE6bCxldmFsdWF0b3JPcHRpb25zOmZ9KXtjb25zdCBjPXtzb3VyY2U6bnVsbCxkaXNhYmxlQXV0b0ZldGNoOm4sZG9jQmFzZVVybDppLGRvY0lkOm8sZW5hYmxlWGZhOmwsZXZhbHVhdG9yT3B0aW9uczpmLGhhbmRsZXI6aCxsZW5ndGg6cixwYXNzd29yZDp0LHJhbmdlQ2h1bmtTaXplOmF9O2lmKGUpe2Muc291cmNlPWU7cmV0dXJuIG5ldyBMb2NhbFBkZk1hbmFnZXIoYyl9Y29uc3QgdT1uZXcgUERGV29ya2VyU3RyZWFtKHttc2dIYW5kbGVyOmh9KSxtPXUuZ2V0RnVsbFJlYWRlcigpLHA9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7bGV0IGQsZz1bXSxiPTA7bS5oZWFkZXJzUmVhZHkudGhlbihmdW5jdGlvbigpe2lmKG0uaXNSYW5nZVN1cHBvcnRlZCl7Yy5zb3VyY2U9dTtjLmxlbmd0aD1tLmNvbnRlbnRMZW5ndGg7Yy5kaXNhYmxlQXV0b0ZldGNofHw9bS5pc1N0cmVhbWluZ1N1cHBvcnRlZDtkPW5ldyBOZXR3b3JrUGRmTWFuYWdlcihjKTtmb3IoY29uc3QgZSBvZiBnKWQuc2VuZFByb2dyZXNzaXZlRGF0YShlKTtnPVtdO3AucmVzb2x2ZShkKTtzPW51bGx9fSkuY2F0Y2goZnVuY3Rpb24oZSl7cC5yZWplY3QoZSk7cz1udWxsfSk7bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtjb25zdCByZWFkQ2h1bms9ZnVuY3Rpb24oe3ZhbHVlOmUsZG9uZTpufSl7dHJ5e2Vuc3VyZU5vdFRlcm1pbmF0ZWQoKTtpZihuKXtpZighZCl7Y29uc3QgZT1hcnJheUJ1ZmZlcnNUb0J5dGVzKGcpO2c9W107ciYmZS5sZW5ndGghPT1yJiZ3YXJuKCJyZXBvcnRlZCBIVFRQIGxlbmd0aCBpcyBkaWZmZXJlbnQgZnJvbSBhY3R1YWwiKTtjLnNvdXJjZT1lO2Q9bmV3IExvY2FsUGRmTWFuYWdlcihjKTtwLnJlc29sdmUoZCl9cz1udWxsO3JldHVybn1iKz1lLmJ5dGVMZW5ndGg7bS5pc1N0cmVhbWluZ1N1cHBvcnRlZHx8aC5zZW5kKCJEb2NQcm9ncmVzcyIse2xvYWRlZDpiLHRvdGFsOk1hdGgubWF4KGIsbS5jb250ZW50TGVuZ3RofHwwKX0pO2Q/ZC5zZW5kUHJvZ3Jlc3NpdmVEYXRhKGUpOmcucHVzaChlKTttLnJlYWQoKS50aGVuKHJlYWRDaHVuayx0KX1jYXRjaChlKXt0KGUpfX07bS5yZWFkKCkudGhlbihyZWFkQ2h1bmssdCl9KS5jYXRjaChmdW5jdGlvbihlKXtwLnJlamVjdChlKTtzPW51bGx9KTtzPWU9Pnt1LmNhbmNlbEFsbFJlcXVlc3RzKGUpfTtyZXR1cm4gcC5wcm9taXNlfSkoZSkudGhlbihmdW5jdGlvbihlKXtpZihhKXtlLnRlcm1pbmF0ZShuZXcgQWJvcnRFeGNlcHRpb24oIldvcmtlciB3YXMgdGVybWluYXRlZC4iKSk7dGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQiKX1uPWU7bi5yZXF1ZXN0TG9hZGVkU3RyZWFtKCEwKS50aGVuKGU9PntoLnNlbmQoIkRhdGFMb2FkZWQiLHtsZW5ndGg6ZS5ieXRlcy5ieXRlTGVuZ3RofSl9KX0pLnRoZW4ocGRmTWFuYWdlclJlYWR5LG9uRmFpbHVyZSl9aC5vbigiR2V0UGFnZSIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZ2V0UGFnZShlLnBhZ2VJbmRleCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoW24uZW5zdXJlKGUsInJvdGF0ZSIpLG4uZW5zdXJlKGUsInJlZiIpLG4uZW5zdXJlKGUsInVzZXJVbml0Iiksbi5lbnN1cmUoZSwidmlldyIpXSkudGhlbihmdW5jdGlvbihbZSx0LG4sYV0pe3JldHVybntyb3RhdGU6ZSxyZWY6dCxyZWZTdHI6dD8udG9TdHJpbmcoKT8/bnVsbCx1c2VyVW5pdDpuLHZpZXc6YX19KX0pfSk7aC5vbigiR2V0UGFnZUluZGV4IixmdW5jdGlvbihlKXtjb25zdCB0PVJlZi5nZXQoZS5udW0sZS5nZW4pO3JldHVybiBuLmVuc3VyZUNhdGFsb2coImdldFBhZ2VJbmRleCIsW3RdKX0pO2gub24oIkdldERlc3RpbmF0aW9ucyIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlQ2F0YWxvZygiZGVzdGluYXRpb25zIil9KTtoLm9uKCJHZXREZXN0aW5hdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlQ2F0YWxvZygiZ2V0RGVzdGluYXRpb24iLFtlLmlkXSl9KTtoLm9uKCJHZXRQYWdlTGFiZWxzIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJwYWdlTGFiZWxzIil9KTtoLm9uKCJHZXRQYWdlTGF5b3V0IixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJwYWdlTGF5b3V0Iil9KTtoLm9uKCJHZXRQYWdlTW9kZSIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlQ2F0YWxvZygicGFnZU1vZGUiKX0pO2gub24oIkdldFZpZXdlclByZWZlcmVuY2VzIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJ2aWV3ZXJQcmVmZXJlbmNlcyIpfSk7aC5vbigiR2V0T3BlbkFjdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlQ2F0YWxvZygib3BlbkFjdGlvbiIpfSk7aC5vbigiR2V0QXR0YWNobWVudHMiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZUNhdGFsb2coImF0dGFjaG1lbnRzIil9KTtoLm9uKCJHZXREb2NKU0FjdGlvbnMiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZUNhdGFsb2coImpzQWN0aW9ucyIpfSk7aC5vbigiR2V0UGFnZUpTQWN0aW9ucyIsZnVuY3Rpb24oe3BhZ2VJbmRleDplfSl7cmV0dXJuIG4uZ2V0UGFnZShlKS50aGVuKGU9Pm4uZW5zdXJlKGUsImpzQWN0aW9ucyIpKX0pO2gub24oIkdldEFubm90YXRpb25zQnlUeXBlIixhc3luYyBmdW5jdGlvbih7dHlwZXM6ZSxwYWdlSW5kZXhlc1RvU2tpcDp0fSl7Y29uc3RbYSxzXT1hd2FpdCBQcm9taXNlLmFsbChbbi5lbnN1cmVEb2MoIm51bVBhZ2VzIiksbi5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIildKTtpZighcylyZXR1cm4gbnVsbDtjb25zdCByPVtdLGk9W107bGV0IG89bnVsbDt0cnl7Zm9yKGxldCBsPTAsZj1hO2w8ZjtsKyspaWYoIXQ/LmhhcyhsKSl7aWYoIW8pe289bmV3IFdvcmtlclRhc2soIkdldEFubm90YXRpb25zQnlUeXBlIik7c3RhcnRXb3JrZXJUYXNrKG8pfXIucHVzaChuLmdldFBhZ2UobCkudGhlbihhc3luYyB0PT50JiZ0LmNvbGxlY3RBbm5vdGF0aW9uc0J5VHlwZShoLG8sZSxpLHMpfHxbXSkpfWF3YWl0IFByb21pc2UuYWxsKHIpO3JldHVybihhd2FpdCBQcm9taXNlLmFsbChpKSkuZmlsdGVyKGU9PiEhZSl9ZmluYWxseXtvJiZmaW5pc2hXb3JrZXJUYXNrKG8pfX0pO2gub24oIkdldE91dGxpbmUiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZUNhdGFsb2coImRvY3VtZW50T3V0bGluZSIpfSk7aC5vbigiR2V0T3B0aW9uYWxDb250ZW50Q29uZmlnIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJvcHRpb25hbENvbnRlbnRDb25maWciKX0pO2gub24oIkdldFBlcm1pc3Npb25zIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJwZXJtaXNzaW9ucyIpfSk7aC5vbigiR2V0TWV0YWRhdGEiLGZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChbbi5lbnN1cmVEb2MoImRvY3VtZW50SW5mbyIpLG4uZW5zdXJlQ2F0YWxvZygibWV0YWRhdGEiKSxuLmVuc3VyZUNhdGFsb2coImhhc1N0cnVjdFRyZWUiKV0pfSk7aC5vbigiR2V0TWFya0luZm8iLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZUNhdGFsb2coIm1hcmtJbmZvIil9KTtoLm9uKCJHZXREYXRhIixmdW5jdGlvbihlKXtyZXR1cm4gbi5yZXF1ZXN0TG9hZGVkU3RyZWFtKCkudGhlbihlPT5lLmJ5dGVzKX0pO2gub24oIkdldEFubm90YXRpb25zIixmdW5jdGlvbih7cGFnZUluZGV4OmUsaW50ZW50OnR9KXtyZXR1cm4gbi5nZXRQYWdlKGUpLnRoZW4oZnVuY3Rpb24obil7Y29uc3QgYT1uZXcgV29ya2VyVGFzayhgR2V0QW5ub3RhdGlvbnM6IHBhZ2UgJHtlfWApO3N0YXJ0V29ya2VyVGFzayhhKTtyZXR1cm4gbi5nZXRBbm5vdGF0aW9uc0RhdGEoaCxhLHQpLnRoZW4oZT0+e2ZpbmlzaFdvcmtlclRhc2soYSk7cmV0dXJuIGV9LGU9PntmaW5pc2hXb3JrZXJUYXNrKGEpO3Rocm93IGV9KX0pfSk7aC5vbigiR2V0RmllbGRPYmplY3RzIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVEb2MoImZpZWxkT2JqZWN0cyIpLnRoZW4oZT0+ZT8uYWxsRmllbGRzfHxudWxsKX0pO2gub24oIkhhc0pTQWN0aW9ucyIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlRG9jKCJoYXNKU0FjdGlvbnMiKX0pO2gub24oIkdldENhbGN1bGF0aW9uT3JkZXJJZHMiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZURvYygiY2FsY3VsYXRpb25PcmRlcklkcyIpfSk7aC5vbigiRXh0cmFjdFBhZ2VzIixhc3luYyBmdW5jdGlvbih7cGFnZUluZm9zOmV9KXtpZighZSl7d2FybigiZXh0cmFjdFBhZ2VzOiBub3RoaW5nIHRvIGV4dHJhY3QuIik7cmV0dXJuIG51bGx9QXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKTtsZXQgdD0wO2Zvcihjb25zdCBhIG9mIGUpaWYobnVsbD09PWEuZG9jdW1lbnQpYS5kb2N1bWVudD1uLnBkZkRvY3VtZW50O2Vsc2UgaWYoQXJyYXlCdWZmZXIuaXNWaWV3KGEuZG9jdW1lbnQpKXtjb25zdCBlPW5ldyBMb2NhbFBkZk1hbmFnZXIoe3NvdXJjZTphLmRvY3VtZW50LGRvY0lkOmAke299X2V4dHJhY3RQYWdlc18ke3QrK31gLGhhbmRsZXI6aCxwYXNzd29yZDphLnBhc3N3b3JkPz9udWxsLGV2YWx1YXRvck9wdGlvbnM6T2JqZWN0LmFzc2lnbih7fSxuLmV2YWx1YXRvck9wdGlvbnMpfSk7bGV0IHM9ITEscj0hMDtmb3IoOzspdHJ5e2F3YWl0IGUucmVxdWVzdExvYWRlZFN0cmVhbSgpO2F3YWl0IGUuZW5zdXJlRG9jKCJjaGVja0hlYWRlciIpO2F3YWl0IGUuZW5zdXJlRG9jKCJwYXJzZVN0YXJ0WFJlZiIpO2F3YWl0IGUuZW5zdXJlRG9jKCJwYXJzZSIsW3NdKTticmVha31jYXRjaCh0KXtpZih0IGluc3RhbmNlb2YgWFJlZlBhcnNlRXhjZXB0aW9uKXtpZighMT09PXMpe3M9ITA7Y29udGludWV9cj0hMTt3YXJuKCJleHRyYWN0UGFnZXM6IFhSZWZQYXJzZUV4Y2VwdGlvbi4iKX1lbHNlIGlmKHQgaW5zdGFuY2VvZiBQYXNzd29yZEV4Y2VwdGlvbil7Y29uc3Qgbj1uZXcgV29ya2VyVGFzayhgUGFzc3dvcmRFeGNlcHRpb246IHJlc3BvbnNlICR7dC5jb2RlfWApO3N0YXJ0V29ya2VyVGFzayhuKTt0cnl7Y29uc3R7cGFzc3dvcmQ6bn09YXdhaXQgaC5zZW5kV2l0aFByb21pc2UoIlBhc3N3b3JkUmVxdWVzdCIsdCk7ZS51cGRhdGVQYXNzd29yZChuKX1jYXRjaHtyPSExO3dhcm4oImV4dHJhY3RQYWdlczogaW52YWxpZCBwYXNzd29yZC4iKX1maW5hbGx5e2ZpbmlzaFdvcmtlclRhc2sobil9fWVsc2V7cj0hMTt3YXJuKCJleHRyYWN0UGFnZXM6IGludmFsaWQgZG9jdW1lbnQuIil9aWYoIXIpYnJlYWt9cnx8KGEuZG9jdW1lbnQ9bnVsbCk7aWYoYXdhaXQgZS5lbnN1cmVEb2MoImlzUHVyZVhmYSIpKXthLmRvY3VtZW50PW51bGw7d2FybigiZXh0cmFjdFBhZ2VzIGRvZXMgbm90IHN1cHBvcnQgcHVyZSBYRkEgZG9jdW1lbnRzLiIpfWVsc2UgYS5kb2N1bWVudD1lLnBkZkRvY3VtZW50fWVsc2Ugd2FybigiZXh0cmFjdFBhZ2VzOiBpbnZhbGlkIGRvY3VtZW50LiIpO3RyeXtjb25zdCB0PW5ldyBQREZFZGl0b3I7cmV0dXJuIGF3YWl0IHQuZXh0cmFjdFBhZ2VzKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSk7cmV0dXJuIG51bGx9fSk7aC5vbigiU2F2ZURvY3VtZW50Iixhc3luYyBmdW5jdGlvbih7aXNQdXJlWGZhOmUsbnVtUGFnZXM6dCxhbm5vdGF0aW9uU3RvcmFnZTphLGZpbGVuYW1lOnN9KXtjb25zdCByPVtuLnJlcXVlc3RMb2FkZWRTdHJlYW0oKSxuLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIiksbi5lbnN1cmVDYXRhbG9nKCJhY3JvRm9ybVJlZiIpLG4uZW5zdXJlRG9jKCJzdGFydFhSZWYiKSxuLmVuc3VyZURvYygieHJlZiIpLG4uZW5zdXJlQ2F0YWxvZygic3RydWN0VHJlZVJvb3QiKV0saT1uZXcgUmVmU2V0Q2FjaGUsbz1bXSxsPWU/bnVsbDpnZXROZXdBbm5vdGF0aW9uc01hcChhKSxbZixjLHUsbSxwLGRdPWF3YWl0IFByb21pc2UuYWxsKHIpLGc9cC50cmFpbGVyLmdldFJhdygiUm9vdCIpfHxudWxsO2xldCBiO2lmKGwpe2Q/YXdhaXQgZC5jYW5VcGRhdGVTdHJ1Y3RUcmVlKHtwZGZNYW5hZ2VyOm4sbmV3QW5ub3RhdGlvbnNCeVBhZ2U6bH0pJiYoYj1kKTphd2FpdCBTdHJ1Y3RUcmVlUm9vdC5jYW5DcmVhdGVTdHJ1Y3R1cmVUcmVlKHtjYXRhbG9nUmVmOmcscGRmTWFuYWdlcjpuLG5ld0Fubm90YXRpb25zQnlQYWdlOmx9KSYmKGI9bnVsbCk7Y29uc3QgZT1Bbm5vdGF0aW9uRmFjdG9yeS5nZW5lcmF0ZUltYWdlcyhhLnZhbHVlcygpLHAsbi5ldmFsdWF0b3JPcHRpb25zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKSx0PXZvaWQgMD09PWI/bzpbXTtmb3IoY29uc3RbYSxzXW9mIGwpdC5wdXNoKG4uZ2V0UGFnZShhKS50aGVuKHQ9Pntjb25zdCBuPW5ldyBXb3JrZXJUYXNrKGBTYXZlIChlZGl0b3IpOiBwYWdlICR7YX1gKTtzdGFydFdvcmtlclRhc2sobik7cmV0dXJuIHQuc2F2ZU5ld0Fubm90YXRpb25zKGgsbixzLGUsaSkuZmluYWxseShmdW5jdGlvbigpe2ZpbmlzaFdvcmtlclRhc2sobil9KX0pKTtudWxsPT09Yj9vLnB1c2goUHJvbWlzZS5hbGwodCkudGhlbihhc3luYygpPT57YXdhaXQgU3RydWN0VHJlZVJvb3QuY3JlYXRlU3RydWN0dXJlVHJlZSh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6bCx4cmVmOnAsY2F0YWxvZ1JlZjpnLHBkZk1hbmFnZXI6bixjaGFuZ2VzOml9KX0pKTpiJiZvLnB1c2goUHJvbWlzZS5hbGwodCkudGhlbihhc3luYygpPT57YXdhaXQgYi51cGRhdGVTdHJ1Y3R1cmVUcmVlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpsLHBkZk1hbmFnZXI6bixjaGFuZ2VzOml9KX0pKX1pZihlKW8ucHVzaChuLmVuc3VyZURvYygic2VyaWFsaXplWGZhRGF0YSIsW2FdKSk7ZWxzZSBmb3IobGV0IGU9MDtlPHQ7ZSsrKW8ucHVzaChuLmdldFBhZ2UoZSkudGhlbihmdW5jdGlvbih0KXtjb25zdCBuPW5ldyBXb3JrZXJUYXNrKGBTYXZlOiBwYWdlICR7ZX1gKTtzdGFydFdvcmtlclRhc2sobik7cmV0dXJuIHQuc2F2ZShoLG4sYSxpKS5maW5hbGx5KGZ1bmN0aW9uKCl7ZmluaXNoV29ya2VyVGFzayhuKX0pfSkpO2NvbnN0IHc9YXdhaXQgUHJvbWlzZS5hbGwobyk7bGV0IGo9bnVsbDtpZihlKXtqPXdbMF07aWYoIWopcmV0dXJuIGYuYnl0ZXN9ZWxzZSBpZigwPT09aS5zaXplKXJldHVybiBmLmJ5dGVzO2NvbnN0IGs9dSYmYyBpbnN0YW5jZW9mIERpY3QmJmkudmFsdWVzKCkuc29tZShlPT5lLm5lZWRBcHBlYXJhbmNlcykseT1jIGluc3RhbmNlb2YgRGljdCYmYy5nZXQoIlhGQSIpfHxudWxsO2xldCBxPW51bGwsdj0hMTtpZihBcnJheS5pc0FycmF5KHkpKXtmb3IobGV0IGU9MCx0PXkubGVuZ3RoO2U8dDtlKz0yKWlmKCJkYXRhc2V0cyI9PT15W2VdKXtxPXlbZSsxXTt2PSEwfW51bGw9PT1xJiYocT1wLmdldE5ld1RlbXBvcmFyeVJlZigpKX1lbHNlIHkmJndhcm4oIlVuc3VwcG9ydGVkIFhGQSB0eXBlLiIpO2xldCBTPU9iamVjdC5jcmVhdGUobnVsbCk7aWYocC50cmFpbGVyKXtjb25zdCBlPW5ldyBNYXAsdD1wLnRyYWlsZXIuZ2V0KCJJbmZvIil8fG51bGw7aWYodCBpbnN0YW5jZW9mIERpY3QpZm9yKGNvbnN0W24sYV1vZiB0KSJzdHJpbmciPT10eXBlb2YgYSYmZS5zZXQobixzdHJpbmdUb1BERlN0cmluZyhhKSk7Uz17cm9vdFJlZjpnLGVuY3J5cHRSZWY6cC50cmFpbGVyLmdldFJhdygiRW5jcnlwdCIpfHxudWxsLG5ld1JlZjpwLmdldE5ld1RlbXBvcmFyeVJlZigpLGluZm9SZWY6cC50cmFpbGVyLmdldFJhdygiSW5mbyIpfHxudWxsLGluZm9NYXA6ZSxmaWxlSWRzOnAudHJhaWxlci5nZXQoIklEIil8fG51bGwsc3RhcnRYUmVmOm0sZmlsZW5hbWU6c319cmV0dXJuIGluY3JlbWVudGFsVXBkYXRlKHtvcmlnaW5hbERhdGE6Zi5ieXRlcyx4cmVmSW5mbzpTLGNoYW5nZXM6aSx4cmVmOnAsaGFzWGZhOiEheSx4ZmFEYXRhc2V0c1JlZjpxLGhhc1hmYURhdGFzZXRzRW50cnk6dixuZWVkQXBwZWFyYW5jZXM6ayxhY3JvRm9ybVJlZjp1LGFjcm9Gb3JtOmMseGZhRGF0YTpqLHVzZVhyZWZTdHJlYW06aXNEaWN0KHAudG9wRGljdCwiWFJlZiIpfSkuZmluYWxseSgoKT0+e3AucmVzZXROZXdUZW1wb3JhcnlSZWYoKX0pfSk7aC5vbigiR2V0T3BlcmF0b3JMaXN0IixmdW5jdGlvbihlLHQpe2NvbnN0e3BhZ2VJZDphLHBhZ2VJbmRleDpzfT1lO24uZ2V0UGFnZShhKS50aGVuKGZ1bmN0aW9uKG4pe2NvbnN0IGE9bmV3IFdvcmtlclRhc2soYEdldE9wZXJhdG9yTGlzdDogcGFnZSAke3N9YCk7c3RhcnRXb3JrZXJUYXNrKGEpO2NvbnN0IHI9aT49bGU/RGF0ZS5ub3coKTowO24uZ2V0T3BlcmF0b3JMaXN0KHtoYW5kbGVyOmgsc2luazp0LHRhc2s6YSxpbnRlbnQ6ZS5pbnRlbnQsY2FjaGVLZXk6ZS5jYWNoZUtleSxhbm5vdGF0aW9uU3RvcmFnZTplLmFubm90YXRpb25TdG9yYWdlLG1vZGlmaWVkSWRzOmUubW9kaWZpZWRJZHMscGFnZUluZGV4OnN9KS50aGVuKGZ1bmN0aW9uKGUpe2ZpbmlzaFdvcmtlclRhc2soYSk7ciYmaW5mbyhgcGFnZT0ke3MrMX0gLSBnZXRPcGVyYXRvckxpc3Q6IHRpbWU9JHtEYXRlLm5vdygpLXJ9bXMsIGxlbj0ke2UubGVuZ3RofWApO3QuY2xvc2UoKX0sZnVuY3Rpb24oZSl7ZmluaXNoV29ya2VyVGFzayhhKTthLnRlcm1pbmF0ZWR8fHQuZXJyb3IoZSl9KX0pfSk7aC5vbigiR2V0VGV4dENvbnRlbnQiLGZ1bmN0aW9uKGUsdCl7Y29uc3R7cGFnZUlkOmEscGFnZUluZGV4OnMsaW5jbHVkZU1hcmtlZENvbnRlbnQ6cixkaXNhYmxlTm9ybWFsaXphdGlvbjpvfT1lO24uZ2V0UGFnZShhKS50aGVuKGZ1bmN0aW9uKGUpe2NvbnN0IG49bmV3IFdvcmtlclRhc2soIkdldFRleHRDb250ZW50OiBwYWdlICIrcyk7c3RhcnRXb3JrZXJUYXNrKG4pO2NvbnN0IGE9aT49bGU/RGF0ZS5ub3coKTowO2UuZXh0cmFjdFRleHRDb250ZW50KHtoYW5kbGVyOmgsdGFzazpuLHNpbms6dCxpbmNsdWRlTWFya2VkQ29udGVudDpyLGRpc2FibGVOb3JtYWxpemF0aW9uOm99KS50aGVuKGZ1bmN0aW9uKCl7ZmluaXNoV29ya2VyVGFzayhuKTthJiZpbmZvKGBwYWdlPSR7cysxfSAtIGdldFRleHRDb250ZW50OiB0aW1lPWArKERhdGUubm93KCktYSkrIm1zIik7dC5jbG9zZSgpfSxmdW5jdGlvbihlKXtmaW5pc2hXb3JrZXJUYXNrKG4pO24udGVybWluYXRlZHx8dC5lcnJvcihlKX0pfSl9KTtoLm9uKCJHZXRTdHJ1Y3RUcmVlIixmdW5jdGlvbihlKXtyZXR1cm4gbi5nZXRQYWdlKGUucGFnZUluZGV4KS50aGVuKGU9Pm4uZW5zdXJlKGUsImdldFN0cnVjdFRyZWUiKSl9KTtoLm9uKCJGb250RmFsbGJhY2siLGZ1bmN0aW9uKGUpe3JldHVybiBuLmZvbnRGYWxsYmFjayhlLmlkLGgpfSk7aC5vbigiQ2xlYW51cCIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uY2xlYW51cCghMCl9KTtoLm9uKCJUZXJtaW5hdGUiLGZ1bmN0aW9uKGUpe2E9ITA7Y29uc3QgdD1bXTtpZihuKXtuLnRlcm1pbmF0ZShuZXcgQWJvcnRFeGNlcHRpb24oIldvcmtlciB3YXMgdGVybWluYXRlZC4iKSk7Y29uc3QgZT1uLmNsZWFudXAoKTt0LnB1c2goZSk7bj1udWxsfWVsc2UgY2xlYXJHbG9iYWxDYWNoZXMoKTtzPy4obmV3IEFib3J0RXhjZXB0aW9uKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQuIikpO2Zvcihjb25zdCBlIG9mIHIpe3QucHVzaChlLmZpbmlzaGVkKTtlLnRlcm1pbmF0ZSgpfXJldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKGZ1bmN0aW9uKCl7aC5kZXN0cm95KCk7aD1udWxsfSl9KTtoLm9uKCJSZWFkeSIsZnVuY3Rpb24odCl7c2V0dXBEb2MoZSk7ZT1udWxsfSk7cmV0dXJuIGN9c3RhdGljIGluaXRpYWxpemVGcm9tUG9ydChlKXtjb25zdCB0PW5ldyBNZXNzYWdlSGFuZGxlcigid29ya2VyIiwibWFpbiIsZSk7dGhpcy5zZXR1cCh0LGUpO3Quc2VuZCgicmVhZHkiLG51bGwpfX1nbG9iYWxUaGlzLnBkZmpzV29ya2VyPXtXb3JrZXJNZXNzYWdlSGFuZGxlcn07ZXhwb3J0e1dvcmtlck1lc3NhZ2VIYW5kbGVyfTs=";
|
|
2
|
+
export {
|
|
3
|
+
Z as default
|
|
4
|
+
};
|