@agi-cli/web-ui 0.1.46

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/index.js ADDED
@@ -0,0 +1,190 @@
1
+ import { fileURLToPath } from 'url';
2
+ import { dirname, join } from 'path';
3
+
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = dirname(__filename);
6
+
7
+ // Embedded assets map - populated at build time
8
+ const EMBEDDED_ASSETS = new Map();
9
+
10
+ // Populate embedded assets
11
+ EMBEDDED_ASSETS.set("/index.html", { content: "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIiBjbGFzcz0iZGFyayI+CiAgPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2Uvc3ZnK3htbCIgaHJlZj0iL3ZpdGUuc3ZnIiAvPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+CiAgICA8dGl0bGU+TG9hZGluZy4uLjwvdGl0bGU+CiAgICA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgY3Jvc3NvcmlnaW4gc3JjPSIvYXNzZXRzL2luZGV4LURSWFFVUWVLLmpzIj48L3NjcmlwdD4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgY3Jvc3NvcmlnaW4gaHJlZj0iL2Fzc2V0cy9pbmRleC1EaV9tY0tGcS5jc3MiPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxkaXYgaWQ9InJvb3QiPjwvZGl2PgogIDwvYm9keT4KPC9odG1sPgo=", contentType: "text/html" });
12
+ EMBEDDED_ASSETS.set("/assets/index-DRXQUQeK.js", { content: "KGZ1bmN0aW9uKCl7Y29uc3Qgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIikucmVsTGlzdDtpZihuJiZuLnN1cHBvcnRzJiZuLnN1cHBvcnRzKCJtb2R1bGVwcmVsb2FkIikpcmV0dXJuO2Zvcihjb25zdCBsIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJtb2R1bGVwcmVsb2FkIl0nKSlpKGwpO25ldyBNdXRhdGlvbk9ic2VydmVyKGw9Pntmb3IoY29uc3QgdSBvZiBsKWlmKHUudHlwZT09PSJjaGlsZExpc3QiKWZvcihjb25zdCBjIG9mIHUuYWRkZWROb2RlcyljLnRhZ05hbWU9PT0iTElOSyImJmMucmVsPT09Im1vZHVsZXByZWxvYWQiJiZpKGMpfSkub2JzZXJ2ZShkb2N1bWVudCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KTtmdW5jdGlvbiBhKGwpe2NvbnN0IHU9e307cmV0dXJuIGwuaW50ZWdyaXR5JiYodS5pbnRlZ3JpdHk9bC5pbnRlZ3JpdHkpLGwucmVmZXJyZXJQb2xpY3kmJih1LnJlZmVycmVyUG9saWN5PWwucmVmZXJyZXJQb2xpY3kpLGwuY3Jvc3NPcmlnaW49PT0idXNlLWNyZWRlbnRpYWxzIj91LmNyZWRlbnRpYWxzPSJpbmNsdWRlIjpsLmNyb3NzT3JpZ2luPT09ImFub255bW91cyI/dS5jcmVkZW50aWFscz0ib21pdCI6dS5jcmVkZW50aWFscz0ic2FtZS1vcmlnaW4iLHV9ZnVuY3Rpb24gaShsKXtpZihsLmVwKXJldHVybjtsLmVwPSEwO2NvbnN0IHU9YShsKTtmZXRjaChsLmhyZWYsdSl9fSkoKTt2YXIgRGw9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp7fTtmdW5jdGlvbiBIbChlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwiZGVmYXVsdCIpP2UuZGVmYXVsdDplfXZhciBwYz17ZXhwb3J0czp7fX0sV2k9e307LyoqCiAqIEBsaWNlbnNlIFJlYWN0CiAqIHJlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24uanMKICoKICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy4KICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovdmFyIFJ2O2Z1bmN0aW9uIHFPKCl7aWYoUnYpcmV0dXJuIFdpO1J2PTE7dmFyIGU9U3ltYm9sLmZvcigicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiKSxuPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iik7ZnVuY3Rpb24gYShpLGwsdSl7dmFyIGM9bnVsbDtpZih1IT09dm9pZCAwJiYoYz0iIit1KSxsLmtleSE9PXZvaWQgMCYmKGM9IiIrbC5rZXkpLCJrZXkiaW4gbCl7dT17fTtmb3IodmFyIGQgaW4gbClkIT09ImtleSImJih1W2RdPWxbZF0pfWVsc2UgdT1sO3JldHVybiBsPXUucmVmLHskJHR5cGVvZjplLHR5cGU6aSxrZXk6YyxyZWY6bCE9PXZvaWQgMD9sOm51bGwscHJvcHM6dX19cmV0dXJuIFdpLkZyYWdtZW50PW4sV2kuanN4PWEsV2kuanN4cz1hLFdpfXZhciBOdjtmdW5jdGlvbiBQTygpe3JldHVybiBOdnx8KE52PTEscGMuZXhwb3J0cz1xTygpKSxwYy5leHBvcnRzfXZhciB5PVBPKCksZmM9e2V4cG9ydHM6e319LFNlPXt9Oy8qKgogKiBAbGljZW5zZSBSZWFjdAogKiByZWFjdC5wcm9kdWN0aW9uLmpzCiAqCiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZQogKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL3ZhciB3djtmdW5jdGlvbiBHTygpe2lmKHd2KXJldHVybiBTZTt3dj0xO3ZhciBlPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50Iiksbj1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxhPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksaT1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLGw9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSx1PVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksYz1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksZD1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLGY9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxtPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxiPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxoPVN5bWJvbC5mb3IoInJlYWN0LmFjdGl2aXR5IiksUz1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gRShPKXtyZXR1cm4gTz09PW51bGx8fHR5cGVvZiBPIT0ib2JqZWN0Ij9udWxsOihPPVMmJk9bU118fE9bIkBAaXRlcmF0b3IiXSx0eXBlb2YgTz09ImZ1bmN0aW9uIj9POm51bGwpfXZhciBfPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxUPU9iamVjdC5hc3NpZ24sQz17fTtmdW5jdGlvbiB4KE8sVix3KXt0aGlzLnByb3BzPU8sdGhpcy5jb250ZXh0PVYsdGhpcy5yZWZzPUMsdGhpcy51cGRhdGVyPXd8fF99eC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSx4LnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihPLFYpe2lmKHR5cGVvZiBPIT0ib2JqZWN0IiYmdHlwZW9mIE8hPSJmdW5jdGlvbiImJk8hPW51bGwpdGhyb3cgRXJyb3IoInRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLiIpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxPLFYsInNldFN0YXRlIil9LHgucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKE8pe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxPLCJmb3JjZVVwZGF0ZSIpfTtmdW5jdGlvbiBOKCl7fU4ucHJvdG90eXBlPXgucHJvdG90eXBlO2Z1bmN0aW9uIGsoTyxWLHcpe3RoaXMucHJvcHM9Tyx0aGlzLmNvbnRleHQ9Vix0aGlzLnJlZnM9Qyx0aGlzLnVwZGF0ZXI9d3x8X312YXIgTD1rLnByb3RvdHlwZT1uZXcgTjtMLmNvbnN0cnVjdG9yPWssVChMLHgucHJvdG90eXBlKSxMLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwO3ZhciBGPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gUigpe312YXIgTT17SDpudWxsLEE6bnVsbCxUOm51bGwsUzpudWxsfSxZPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24geihPLFYsdyl7dmFyIHRlPXcucmVmO3JldHVybnskJHR5cGVvZjplLHR5cGU6TyxrZXk6VixyZWY6dGUhPT12b2lkIDA/dGU6bnVsbCxwcm9wczp3fX1mdW5jdGlvbiBVKE8sVil7cmV0dXJuIHooTy50eXBlLFYsTy5wcm9wcyl9ZnVuY3Rpb24gJChPKXtyZXR1cm4gdHlwZW9mIE89PSJvYmplY3QiJiZPIT09bnVsbCYmTy4kJHR5cGVvZj09PWV9ZnVuY3Rpb24gSihPKXt2YXIgVj17Ij0iOiI9MCIsIjoiOiI9MiJ9O3JldHVybiIkIitPLnJlcGxhY2UoL1s9Ol0vZyxmdW5jdGlvbih3KXtyZXR1cm4gVlt3XX0pfXZhciBvZT0vXC8rL2c7ZnVuY3Rpb24gaWUoTyxWKXtyZXR1cm4gdHlwZW9mIE89PSJvYmplY3QiJiZPIT09bnVsbCYmTy5rZXkhPW51bGw/SigiIitPLmtleSk6Vi50b1N0cmluZygzNil9ZnVuY3Rpb24gbGUoTyl7c3dpdGNoKE8uc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIE8udmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgTy5yZWFzb247ZGVmYXVsdDpzd2l0Y2godHlwZW9mIE8uc3RhdHVzPT0ic3RyaW5nIj9PLnRoZW4oUixSKTooTy5zdGF0dXM9InBlbmRpbmciLE8udGhlbihmdW5jdGlvbihWKXtPLnN0YXR1cz09PSJwZW5kaW5nIiYmKE8uc3RhdHVzPSJmdWxmaWxsZWQiLE8udmFsdWU9Vil9LGZ1bmN0aW9uKFYpe08uc3RhdHVzPT09InBlbmRpbmciJiYoTy5zdGF0dXM9InJlamVjdGVkIixPLnJlYXNvbj1WKX0pKSxPLnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOnJldHVybiBPLnZhbHVlO2Nhc2UicmVqZWN0ZWQiOnRocm93IE8ucmVhc29ufX10aHJvdyBPfWZ1bmN0aW9uIEcoTyxWLHcsdGUsc2Upe3ZhciBjZT10eXBlb2YgTzsoY2U9PT0idW5kZWZpbmVkInx8Y2U9PT0iYm9vbGVhbiIpJiYoTz1udWxsKTt2YXIgaGU9ITE7aWYoTz09PW51bGwpaGU9ITA7ZWxzZSBzd2l0Y2goY2Upe2Nhc2UiYmlnaW50IjpjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmhlPSEwO2JyZWFrO2Nhc2Uib2JqZWN0Ijpzd2l0Y2goTy4kJHR5cGVvZil7Y2FzZSBlOmNhc2UgbjpoZT0hMDticmVhaztjYXNlIGI6cmV0dXJuIGhlPU8uX2luaXQsRyhoZShPLl9wYXlsb2FkKSxWLHcsdGUsc2UpfX1pZihoZSlyZXR1cm4gc2U9c2UoTyksaGU9dGU9PT0iIj8iLiIraWUoTywwKTp0ZSxGKHNlKT8odz0iIixoZSE9bnVsbCYmKHc9aGUucmVwbGFjZShvZSwiJCYvIikrIi8iKSxHKHNlLFYsdywiIixmdW5jdGlvbihpdCl7cmV0dXJuIGl0fSkpOnNlIT1udWxsJiYoJChzZSkmJihzZT1VKHNlLHcrKHNlLmtleT09bnVsbHx8TyYmTy5rZXk9PT1zZS5rZXk/IiI6KCIiK3NlLmtleSkucmVwbGFjZShvZSwiJCYvIikrIi8iKStoZSkpLFYucHVzaChzZSkpLDE7aGU9MDt2YXIgSWU9dGU9PT0iIj8iLiI6dGUrIjoiO2lmKEYoTykpZm9yKHZhciB3ZT0wO3dlPE8ubGVuZ3RoO3dlKyspdGU9T1t3ZV0sY2U9SWUraWUodGUsd2UpLGhlKz1HKHRlLFYsdyxjZSxzZSk7ZWxzZSBpZih3ZT1FKE8pLHR5cGVvZiB3ZT09ImZ1bmN0aW9uIilmb3IoTz13ZS5jYWxsKE8pLHdlPTA7ISh0ZT1PLm5leHQoKSkuZG9uZTspdGU9dGUudmFsdWUsY2U9SWUraWUodGUsd2UrKyksaGUrPUcodGUsVix3LGNlLHNlKTtlbHNlIGlmKGNlPT09Im9iamVjdCIpe2lmKHR5cGVvZiBPLnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIEcobGUoTyksVix3LHRlLHNlKTt0aHJvdyBWPVN0cmluZyhPKSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKyhWPT09IltvYmplY3QgT2JqZWN0XSI/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMoTykuam9pbigiLCAiKSsifSI6VikrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKX1yZXR1cm4gaGV9ZnVuY3Rpb24gZWUoTyxWLHcpe2lmKE89PW51bGwpcmV0dXJuIE87dmFyIHRlPVtdLHNlPTA7cmV0dXJuIEcoTyx0ZSwiIiwiIixmdW5jdGlvbihjZSl7cmV0dXJuIFYuY2FsbCh3LGNlLHNlKyspfSksdGV9ZnVuY3Rpb24gbmUoTyl7aWYoTy5fc3RhdHVzPT09LTEpe3ZhciBWPU8uX3Jlc3VsdDtWPVYoKSxWLnRoZW4oZnVuY3Rpb24odyl7KE8uX3N0YXR1cz09PTB8fE8uX3N0YXR1cz09PS0xKSYmKE8uX3N0YXR1cz0xLE8uX3Jlc3VsdD13KX0sZnVuY3Rpb24odyl7KE8uX3N0YXR1cz09PTB8fE8uX3N0YXR1cz09PS0xKSYmKE8uX3N0YXR1cz0yLE8uX3Jlc3VsdD13KX0pLE8uX3N0YXR1cz09PS0xJiYoTy5fc3RhdHVzPTAsTy5fcmVzdWx0PVYpfWlmKE8uX3N0YXR1cz09PTEpcmV0dXJuIE8uX3Jlc3VsdC5kZWZhdWx0O3Rocm93IE8uX3Jlc3VsdH12YXIgZmU9dHlwZW9mIHJlcG9ydEVycm9yPT0iZnVuY3Rpb24iP3JlcG9ydEVycm9yOmZ1bmN0aW9uKE8pe2lmKHR5cGVvZiB3aW5kb3c9PSJvYmplY3QiJiZ0eXBlb2Ygd2luZG93LkVycm9yRXZlbnQ9PSJmdW5jdGlvbiIpe3ZhciBWPW5ldyB3aW5kb3cuRXJyb3JFdmVudCgiZXJyb3IiLHtidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsbWVzc2FnZTp0eXBlb2YgTz09Im9iamVjdCImJk8hPT1udWxsJiZ0eXBlb2YgTy5tZXNzYWdlPT0ic3RyaW5nIj9TdHJpbmcoTy5tZXNzYWdlKTpTdHJpbmcoTyksZXJyb3I6T30pO2lmKCF3aW5kb3cuZGlzcGF0Y2hFdmVudChWKSlyZXR1cm59ZWxzZSBpZih0eXBlb2YgcHJvY2Vzcz09Im9iamVjdCImJnR5cGVvZiBwcm9jZXNzLmVtaXQ9PSJmdW5jdGlvbiIpe3Byb2Nlc3MuZW1pdCgidW5jYXVnaHRFeGNlcHRpb24iLE8pO3JldHVybn1jb25zb2xlLmVycm9yKE8pfSxJPXttYXA6ZWUsZm9yRWFjaDpmdW5jdGlvbihPLFYsdyl7ZWUoTyxmdW5jdGlvbigpe1YuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx3KX0sY291bnQ6ZnVuY3Rpb24oTyl7dmFyIFY9MDtyZXR1cm4gZWUoTyxmdW5jdGlvbigpe1YrK30pLFZ9LHRvQXJyYXk6ZnVuY3Rpb24oTyl7cmV0dXJuIGVlKE8sZnVuY3Rpb24oVil7cmV0dXJuIFZ9KXx8W119LG9ubHk6ZnVuY3Rpb24oTyl7aWYoISQoTykpdGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpO3JldHVybiBPfX07cmV0dXJuIFNlLkFjdGl2aXR5PWgsU2UuQ2hpbGRyZW49SSxTZS5Db21wb25lbnQ9eCxTZS5GcmFnbWVudD1hLFNlLlByb2ZpbGVyPWwsU2UuUHVyZUNvbXBvbmVudD1rLFNlLlN0cmljdE1vZGU9aSxTZS5TdXNwZW5zZT1mLFNlLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERT1NLFNlLl9fQ09NUElMRVJfUlVOVElNRT17X19wcm90b19fOm51bGwsYzpmdW5jdGlvbihPKXtyZXR1cm4gTS5ILnVzZU1lbW9DYWNoZShPKX19LFNlLmNhY2hlPWZ1bmN0aW9uKE8pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBPLmFwcGx5KG51bGwsYXJndW1lbnRzKX19LFNlLmNhY2hlU2lnbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LFNlLmNsb25lRWxlbWVudD1mdW5jdGlvbihPLFYsdyl7aWYoTz09bnVsbCl0aHJvdyBFcnJvcigiVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCAiK08rIi4iKTt2YXIgdGU9VCh7fSxPLnByb3BzKSxzZT1PLmtleTtpZihWIT1udWxsKWZvcihjZSBpbiBWLmtleSE9PXZvaWQgMCYmKHNlPSIiK1Yua2V5KSxWKSFZLmNhbGwoVixjZSl8fGNlPT09ImtleSJ8fGNlPT09Il9fc2VsZiJ8fGNlPT09Il9fc291cmNlInx8Y2U9PT0icmVmIiYmVi5yZWY9PT12b2lkIDB8fCh0ZVtjZV09VltjZV0pO3ZhciBjZT1hcmd1bWVudHMubGVuZ3RoLTI7aWYoY2U9PT0xKXRlLmNoaWxkcmVuPXc7ZWxzZSBpZigxPGNlKXtmb3IodmFyIGhlPUFycmF5KGNlKSxJZT0wO0llPGNlO0llKyspaGVbSWVdPWFyZ3VtZW50c1tJZSsyXTt0ZS5jaGlsZHJlbj1oZX1yZXR1cm4geihPLnR5cGUsc2UsdGUpfSxTZS5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKE8pe3JldHVybiBPPXskJHR5cGVvZjpjLF9jdXJyZW50VmFsdWU6TyxfY3VycmVudFZhbHVlMjpPLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH0sTy5Qcm92aWRlcj1PLE8uQ29uc3VtZXI9eyQkdHlwZW9mOnUsX2NvbnRleHQ6T30sT30sU2UuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihPLFYsdyl7dmFyIHRlLHNlPXt9LGNlPW51bGw7aWYoViE9bnVsbClmb3IodGUgaW4gVi5rZXkhPT12b2lkIDAmJihjZT0iIitWLmtleSksVilZLmNhbGwoVix0ZSkmJnRlIT09ImtleSImJnRlIT09Il9fc2VsZiImJnRlIT09Il9fc291cmNlIiYmKHNlW3RlXT1WW3RlXSk7dmFyIGhlPWFyZ3VtZW50cy5sZW5ndGgtMjtpZihoZT09PTEpc2UuY2hpbGRyZW49dztlbHNlIGlmKDE8aGUpe2Zvcih2YXIgSWU9QXJyYXkoaGUpLHdlPTA7d2U8aGU7d2UrKylJZVt3ZV09YXJndW1lbnRzW3dlKzJdO3NlLmNoaWxkcmVuPUllfWlmKE8mJk8uZGVmYXVsdFByb3BzKWZvcih0ZSBpbiBoZT1PLmRlZmF1bHRQcm9wcyxoZSlzZVt0ZV09PT12b2lkIDAmJihzZVt0ZV09aGVbdGVdKTtyZXR1cm4geihPLGNlLHNlKX0sU2UuY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19LFNlLmZvcndhcmRSZWY9ZnVuY3Rpb24oTyl7cmV0dXJueyQkdHlwZW9mOmQscmVuZGVyOk99fSxTZS5pc1ZhbGlkRWxlbWVudD0kLFNlLmxhenk9ZnVuY3Rpb24oTyl7cmV0dXJueyQkdHlwZW9mOmIsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDpPfSxfaW5pdDpuZX19LFNlLm1lbW89ZnVuY3Rpb24oTyxWKXtyZXR1cm57JCR0eXBlb2Y6bSx0eXBlOk8sY29tcGFyZTpWPT09dm9pZCAwP251bGw6Vn19LFNlLnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihPKXt2YXIgVj1NLlQsdz17fTtNLlQ9dzt0cnl7dmFyIHRlPU8oKSxzZT1NLlM7c2UhPT1udWxsJiZzZSh3LHRlKSx0eXBlb2YgdGU9PSJvYmplY3QiJiZ0ZSE9PW51bGwmJnR5cGVvZiB0ZS50aGVuPT0iZnVuY3Rpb24iJiZ0ZS50aGVuKFIsZmUpfWNhdGNoKGNlKXtmZShjZSl9ZmluYWxseXtWIT09bnVsbCYmdy50eXBlcyE9PW51bGwmJihWLnR5cGVzPXcudHlwZXMpLE0uVD1WfX0sU2UudW5zdGFibGVfdXNlQ2FjaGVSZWZyZXNoPWZ1bmN0aW9uKCl7cmV0dXJuIE0uSC51c2VDYWNoZVJlZnJlc2goKX0sU2UudXNlPWZ1bmN0aW9uKE8pe3JldHVybiBNLkgudXNlKE8pfSxTZS51c2VBY3Rpb25TdGF0ZT1mdW5jdGlvbihPLFYsdyl7cmV0dXJuIE0uSC51c2VBY3Rpb25TdGF0ZShPLFYsdyl9LFNlLnVzZUNhbGxiYWNrPWZ1bmN0aW9uKE8sVil7cmV0dXJuIE0uSC51c2VDYWxsYmFjayhPLFYpfSxTZS51c2VDb250ZXh0PWZ1bmN0aW9uKE8pe3JldHVybiBNLkgudXNlQ29udGV4dChPKX0sU2UudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sU2UudXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihPLFYpe3JldHVybiBNLkgudXNlRGVmZXJyZWRWYWx1ZShPLFYpfSxTZS51c2VFZmZlY3Q9ZnVuY3Rpb24oTyxWKXtyZXR1cm4gTS5ILnVzZUVmZmVjdChPLFYpfSxTZS51c2VFZmZlY3RFdmVudD1mdW5jdGlvbihPKXtyZXR1cm4gTS5ILnVzZUVmZmVjdEV2ZW50KE8pfSxTZS51c2VJZD1mdW5jdGlvbigpe3JldHVybiBNLkgudXNlSWQoKX0sU2UudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihPLFYsdyl7cmV0dXJuIE0uSC51c2VJbXBlcmF0aXZlSGFuZGxlKE8sVix3KX0sU2UudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKE8sVil7cmV0dXJuIE0uSC51c2VJbnNlcnRpb25FZmZlY3QoTyxWKX0sU2UudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKE8sVil7cmV0dXJuIE0uSC51c2VMYXlvdXRFZmZlY3QoTyxWKX0sU2UudXNlTWVtbz1mdW5jdGlvbihPLFYpe3JldHVybiBNLkgudXNlTWVtbyhPLFYpfSxTZS51c2VPcHRpbWlzdGljPWZ1bmN0aW9uKE8sVil7cmV0dXJuIE0uSC51c2VPcHRpbWlzdGljKE8sVil9LFNlLnVzZVJlZHVjZXI9ZnVuY3Rpb24oTyxWLHcpe3JldHVybiBNLkgudXNlUmVkdWNlcihPLFYsdyl9LFNlLnVzZVJlZj1mdW5jdGlvbihPKXtyZXR1cm4gTS5ILnVzZVJlZihPKX0sU2UudXNlU3RhdGU9ZnVuY3Rpb24oTyl7cmV0dXJuIE0uSC51c2VTdGF0ZShPKX0sU2UudXNlU3luY0V4dGVybmFsU3RvcmU9ZnVuY3Rpb24oTyxWLHcpe3JldHVybiBNLkgudXNlU3luY0V4dGVybmFsU3RvcmUoTyxWLHcpfSxTZS51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIE0uSC51c2VUcmFuc2l0aW9uKCl9LFNlLnZlcnNpb249IjE5LjIuMCIsU2V9dmFyIGt2O2Z1bmN0aW9uICRoKCl7cmV0dXJuIGt2fHwoa3Y9MSxmYy5leHBvcnRzPUdPKCkpLGZjLmV4cG9ydHN9dmFyIHVlPSRoKCk7Y29uc3QgRW49SGwodWUpO3ZhciBnYz17ZXhwb3J0czp7fX0sWGk9e30sbWM9e2V4cG9ydHM6e319LGhjPXt9Oy8qKgogKiBAbGljZW5zZSBSZWFjdAogKiBzY2hlZHVsZXIucHJvZHVjdGlvbi5qcwogKgogKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLgogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi92YXIgQ3Y7ZnVuY3Rpb24gSE8oKXtyZXR1cm4gQ3Z8fChDdj0xLChmdW5jdGlvbihlKXtmdW5jdGlvbiBuKEcsZWUpe3ZhciBuZT1HLmxlbmd0aDtHLnB1c2goZWUpO2U6Zm9yKDswPG5lOyl7dmFyIGZlPW5lLTE+Pj4xLEk9R1tmZV07aWYoMDxsKEksZWUpKUdbZmVdPWVlLEdbbmVdPUksbmU9ZmU7ZWxzZSBicmVhayBlfX1mdW5jdGlvbiBhKEcpe3JldHVybiBHLmxlbmd0aD09PTA/bnVsbDpHWzBdfWZ1bmN0aW9uIGkoRyl7aWYoRy5sZW5ndGg9PT0wKXJldHVybiBudWxsO3ZhciBlZT1HWzBdLG5lPUcucG9wKCk7aWYobmUhPT1lZSl7R1swXT1uZTtlOmZvcih2YXIgZmU9MCxJPUcubGVuZ3RoLE89ST4+PjE7ZmU8Tzspe3ZhciBWPTIqKGZlKzEpLTEsdz1HW1ZdLHRlPVYrMSxzZT1HW3RlXTtpZigwPmwodyxuZSkpdGU8SSYmMD5sKHNlLHcpPyhHW2ZlXT1zZSxHW3RlXT1uZSxmZT10ZSk6KEdbZmVdPXcsR1tWXT1uZSxmZT1WKTtlbHNlIGlmKHRlPEkmJjA+bChzZSxuZSkpR1tmZV09c2UsR1t0ZV09bmUsZmU9dGU7ZWxzZSBicmVhayBlfX1yZXR1cm4gZWV9ZnVuY3Rpb24gbChHLGVlKXt2YXIgbmU9Ry5zb3J0SW5kZXgtZWUuc29ydEluZGV4O3JldHVybiBuZSE9PTA/bmU6Ry5pZC1lZS5pZH1pZihlLnVuc3RhYmxlX25vdz12b2lkIDAsdHlwZW9mIHBlcmZvcm1hbmNlPT0ib2JqZWN0IiYmdHlwZW9mIHBlcmZvcm1hbmNlLm5vdz09ImZ1bmN0aW9uIil7dmFyIHU9cGVyZm9ybWFuY2U7ZS51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gdS5ub3coKX19ZWxzZXt2YXIgYz1EYXRlLGQ9Yy5ub3coKTtlLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBjLm5vdygpLWR9fXZhciBmPVtdLG09W10sYj0xLGg9bnVsbCxTPTMsRT0hMSxfPSExLFQ9ITEsQz0hMSx4PXR5cGVvZiBzZXRUaW1lb3V0PT0iZnVuY3Rpb24iP3NldFRpbWVvdXQ6bnVsbCxOPXR5cGVvZiBjbGVhclRpbWVvdXQ9PSJmdW5jdGlvbiI/Y2xlYXJUaW1lb3V0Om51bGwsaz10eXBlb2Ygc2V0SW1tZWRpYXRlPCJ1Ij9zZXRJbW1lZGlhdGU6bnVsbDtmdW5jdGlvbiBMKEcpe2Zvcih2YXIgZWU9YShtKTtlZSE9PW51bGw7KXtpZihlZS5jYWxsYmFjaz09PW51bGwpaShtKTtlbHNlIGlmKGVlLnN0YXJ0VGltZTw9RylpKG0pLGVlLnNvcnRJbmRleD1lZS5leHBpcmF0aW9uVGltZSxuKGYsZWUpO2Vsc2UgYnJlYWs7ZWU9YShtKX19ZnVuY3Rpb24gRihHKXtpZihUPSExLEwoRyksIV8paWYoYShmKSE9PW51bGwpXz0hMCxSfHwoUj0hMCxKKCkpO2Vsc2V7dmFyIGVlPWEobSk7ZWUhPT1udWxsJiZsZShGLGVlLnN0YXJ0VGltZS1HKX19dmFyIFI9ITEsTT0tMSxZPTUsej0tMTtmdW5jdGlvbiBVKCl7cmV0dXJuIEM/ITA6IShlLnVuc3RhYmxlX25vdygpLXo8WSl9ZnVuY3Rpb24gJCgpe2lmKEM9ITEsUil7dmFyIEc9ZS51bnN0YWJsZV9ub3coKTt6PUc7dmFyIGVlPSEwO3RyeXtlOntfPSExLFQmJihUPSExLE4oTSksTT0tMSksRT0hMDt2YXIgbmU9Uzt0cnl7dDp7Zm9yKEwoRyksaD1hKGYpO2ghPT1udWxsJiYhKGguZXhwaXJhdGlvblRpbWU+RyYmVSgpKTspe3ZhciBmZT1oLmNhbGxiYWNrO2lmKHR5cGVvZiBmZT09ImZ1bmN0aW9uIil7aC5jYWxsYmFjaz1udWxsLFM9aC5wcmlvcml0eUxldmVsO3ZhciBJPWZlKGguZXhwaXJhdGlvblRpbWU8PUcpO2lmKEc9ZS51bnN0YWJsZV9ub3coKSx0eXBlb2YgST09ImZ1bmN0aW9uIil7aC5jYWxsYmFjaz1JLEwoRyksZWU9ITA7YnJlYWsgdH1oPT09YShmKSYmaShmKSxMKEcpfWVsc2UgaShmKTtoPWEoZil9aWYoaCE9PW51bGwpZWU9ITA7ZWxzZXt2YXIgTz1hKG0pO08hPT1udWxsJiZsZShGLE8uc3RhcnRUaW1lLUcpLGVlPSExfX1icmVhayBlfWZpbmFsbHl7aD1udWxsLFM9bmUsRT0hMX1lZT12b2lkIDB9fWZpbmFsbHl7ZWU/SigpOlI9ITF9fX12YXIgSjtpZih0eXBlb2Ygaz09ImZ1bmN0aW9uIilKPWZ1bmN0aW9uKCl7aygkKX07ZWxzZSBpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWw8InUiKXt2YXIgb2U9bmV3IE1lc3NhZ2VDaGFubmVsLGllPW9lLnBvcnQyO29lLnBvcnQxLm9ubWVzc2FnZT0kLEo9ZnVuY3Rpb24oKXtpZS5wb3N0TWVzc2FnZShudWxsKX19ZWxzZSBKPWZ1bmN0aW9uKCl7eCgkLDApfTtmdW5jdGlvbiBsZShHLGVlKXtNPXgoZnVuY3Rpb24oKXtHKGUudW5zdGFibGVfbm93KCkpfSxlZSl9ZS51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NSxlLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTEsZS51bnN0YWJsZV9Mb3dQcmlvcml0eT00LGUudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MyxlLnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsLGUudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MixlLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKEcpe0cuY2FsbGJhY2s9bnVsbH0sZS51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbihHKXswPkd8fDEyNTxHP2NvbnNvbGUuZXJyb3IoImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZCIpOlk9MDxHP01hdGguZmxvb3IoMWUzL0cpOjV9LGUudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gU30sZS51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKEcpe3N3aXRjaChTKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgZWU9MzticmVhaztkZWZhdWx0OmVlPVN9dmFyIG5lPVM7Uz1lZTt0cnl7cmV0dXJuIEcoKX1maW5hbGx5e1M9bmV9fSxlLnVuc3RhYmxlX3JlcXVlc3RQYWludD1mdW5jdGlvbigpe0M9ITB9LGUudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKEcsZWUpe3N3aXRjaChHKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6Rz0zfXZhciBuZT1TO1M9Rzt0cnl7cmV0dXJuIGVlKCl9ZmluYWxseXtTPW5lfX0sZS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKEcsZWUsbmUpe3ZhciBmZT1lLnVuc3RhYmxlX25vdygpO3N3aXRjaCh0eXBlb2YgbmU9PSJvYmplY3QiJiZuZSE9PW51bGw/KG5lPW5lLmRlbGF5LG5lPXR5cGVvZiBuZT09Im51bWJlciImJjA8bmU/ZmUrbmU6ZmUpOm5lPWZlLEcpe2Nhc2UgMTp2YXIgST0tMTticmVhaztjYXNlIDI6ST0yNTA7YnJlYWs7Y2FzZSA1Okk9MTA3Mzc0MTgyMzticmVhaztjYXNlIDQ6ST0xZTQ7YnJlYWs7ZGVmYXVsdDpJPTVlM31yZXR1cm4gST1uZStJLEc9e2lkOmIrKyxjYWxsYmFjazplZSxwcmlvcml0eUxldmVsOkcsc3RhcnRUaW1lOm5lLGV4cGlyYXRpb25UaW1lOkksc29ydEluZGV4Oi0xfSxuZT5mZT8oRy5zb3J0SW5kZXg9bmUsbihtLEcpLGEoZik9PT1udWxsJiZHPT09YShtKSYmKFQ/KE4oTSksTT0tMSk6VD0hMCxsZShGLG5lLWZlKSkpOihHLnNvcnRJbmRleD1JLG4oZixHKSxffHxFfHwoXz0hMCxSfHwoUj0hMCxKKCkpKSksR30sZS51bnN0YWJsZV9zaG91bGRZaWVsZD1VLGUudW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKEcpe3ZhciBlZT1TO3JldHVybiBmdW5jdGlvbigpe3ZhciBuZT1TO1M9ZWU7dHJ5e3JldHVybiBHLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e1M9bmV9fX19KShoYykpLGhjfXZhciBJdjtmdW5jdGlvbiAkTygpe3JldHVybiBJdnx8KEl2PTEsbWMuZXhwb3J0cz1ITygpKSxtYy5leHBvcnRzfXZhciBiYz17ZXhwb3J0czp7fX0sX3Q9e307LyoqCiAqIEBsaWNlbnNlIFJlYWN0CiAqIHJlYWN0LWRvbS5wcm9kdWN0aW9uLmpzCiAqCiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZQogKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL3ZhciBPdjtmdW5jdGlvbiBWTygpe2lmKE92KXJldHVybiBfdDtPdj0xO3ZhciBlPSRoKCk7ZnVuY3Rpb24gbihmKXt2YXIgbT0iaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzLyIrZjtpZigxPGFyZ3VtZW50cy5sZW5ndGgpe20rPSI/YXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBiPTI7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKyltKz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbYl0pfXJldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitmKyI7IHZpc2l0ICIrbSsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifWZ1bmN0aW9uIGEoKXt9dmFyIGk9e2Q6e2Y6YSxyOmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3Iobig1MjIpKX0sRDphLEM6YSxMOmEsbTphLFg6YSxTOmEsTTphfSxwOjAsZmluZERPTU5vZGU6bnVsbH0sbD1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKTtmdW5jdGlvbiB1KGYsbSxiKXt2YXIgaD0zPGFyZ3VtZW50cy5sZW5ndGgmJmFyZ3VtZW50c1szXSE9PXZvaWQgMD9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6bCxrZXk6aD09bnVsbD9udWxsOiIiK2gsY2hpbGRyZW46Zixjb250YWluZXJJbmZvOm0saW1wbGVtZW50YXRpb246Yn19dmFyIGM9ZS5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU7ZnVuY3Rpb24gZChmLG0pe2lmKGY9PT0iZm9udCIpcmV0dXJuIiI7aWYodHlwZW9mIG09PSJzdHJpbmciKXJldHVybiBtPT09InVzZS1jcmVkZW50aWFscyI/bToiIn1yZXR1cm4gX3QuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPWksX3QuY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGYsbSl7dmFyIGI9Mjxhcmd1bWVudHMubGVuZ3RoJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOm51bGw7aWYoIW18fG0ubm9kZVR5cGUhPT0xJiZtLm5vZGVUeXBlIT09OSYmbS5ub2RlVHlwZSE9PTExKXRocm93IEVycm9yKG4oMjk5KSk7cmV0dXJuIHUoZixtLG51bGwsYil9LF90LmZsdXNoU3luYz1mdW5jdGlvbihmKXt2YXIgbT1jLlQsYj1pLnA7dHJ5e2lmKGMuVD1udWxsLGkucD0yLGYpcmV0dXJuIGYoKX1maW5hbGx5e2MuVD1tLGkucD1iLGkuZC5mKCl9fSxfdC5wcmVjb25uZWN0PWZ1bmN0aW9uKGYsbSl7dHlwZW9mIGY9PSJzdHJpbmciJiYobT8obT1tLmNyb3NzT3JpZ2luLG09dHlwZW9mIG09PSJzdHJpbmciP209PT0idXNlLWNyZWRlbnRpYWxzIj9tOiIiOnZvaWQgMCk6bT1udWxsLGkuZC5DKGYsbSkpfSxfdC5wcmVmZXRjaEROUz1mdW5jdGlvbihmKXt0eXBlb2YgZj09InN0cmluZyImJmkuZC5EKGYpfSxfdC5wcmVpbml0PWZ1bmN0aW9uKGYsbSl7aWYodHlwZW9mIGY9PSJzdHJpbmciJiZtJiZ0eXBlb2YgbS5hcz09InN0cmluZyIpe3ZhciBiPW0uYXMsaD1kKGIsbS5jcm9zc09yaWdpbiksUz10eXBlb2YgbS5pbnRlZ3JpdHk9PSJzdHJpbmciP20uaW50ZWdyaXR5OnZvaWQgMCxFPXR5cGVvZiBtLmZldGNoUHJpb3JpdHk9PSJzdHJpbmciP20uZmV0Y2hQcmlvcml0eTp2b2lkIDA7Yj09PSJzdHlsZSI/aS5kLlMoZix0eXBlb2YgbS5wcmVjZWRlbmNlPT0ic3RyaW5nIj9tLnByZWNlZGVuY2U6dm9pZCAwLHtjcm9zc09yaWdpbjpoLGludGVncml0eTpTLGZldGNoUHJpb3JpdHk6RX0pOmI9PT0ic2NyaXB0IiYmaS5kLlgoZix7Y3Jvc3NPcmlnaW46aCxpbnRlZ3JpdHk6UyxmZXRjaFByaW9yaXR5OkUsbm9uY2U6dHlwZW9mIG0ubm9uY2U9PSJzdHJpbmciP20ubm9uY2U6dm9pZCAwfSl9fSxfdC5wcmVpbml0TW9kdWxlPWZ1bmN0aW9uKGYsbSl7aWYodHlwZW9mIGY9PSJzdHJpbmciKWlmKHR5cGVvZiBtPT0ib2JqZWN0IiYmbSE9PW51bGwpe2lmKG0uYXM9PW51bGx8fG0uYXM9PT0ic2NyaXB0Iil7dmFyIGI9ZChtLmFzLG0uY3Jvc3NPcmlnaW4pO2kuZC5NKGYse2Nyb3NzT3JpZ2luOmIsaW50ZWdyaXR5OnR5cGVvZiBtLmludGVncml0eT09InN0cmluZyI/bS5pbnRlZ3JpdHk6dm9pZCAwLG5vbmNlOnR5cGVvZiBtLm5vbmNlPT0ic3RyaW5nIj9tLm5vbmNlOnZvaWQgMH0pfX1lbHNlIG09PW51bGwmJmkuZC5NKGYpfSxfdC5wcmVsb2FkPWZ1bmN0aW9uKGYsbSl7aWYodHlwZW9mIGY9PSJzdHJpbmciJiZ0eXBlb2YgbT09Im9iamVjdCImJm0hPT1udWxsJiZ0eXBlb2YgbS5hcz09InN0cmluZyIpe3ZhciBiPW0uYXMsaD1kKGIsbS5jcm9zc09yaWdpbik7aS5kLkwoZixiLHtjcm9zc09yaWdpbjpoLGludGVncml0eTp0eXBlb2YgbS5pbnRlZ3JpdHk9PSJzdHJpbmciP20uaW50ZWdyaXR5OnZvaWQgMCxub25jZTp0eXBlb2YgbS5ub25jZT09InN0cmluZyI/bS5ub25jZTp2b2lkIDAsdHlwZTp0eXBlb2YgbS50eXBlPT0ic3RyaW5nIj9tLnR5cGU6dm9pZCAwLGZldGNoUHJpb3JpdHk6dHlwZW9mIG0uZmV0Y2hQcmlvcml0eT09InN0cmluZyI/bS5mZXRjaFByaW9yaXR5OnZvaWQgMCxyZWZlcnJlclBvbGljeTp0eXBlb2YgbS5yZWZlcnJlclBvbGljeT09InN0cmluZyI/bS5yZWZlcnJlclBvbGljeTp2b2lkIDAsaW1hZ2VTcmNTZXQ6dHlwZW9mIG0uaW1hZ2VTcmNTZXQ9PSJzdHJpbmciP20uaW1hZ2VTcmNTZXQ6dm9pZCAwLGltYWdlU2l6ZXM6dHlwZW9mIG0uaW1hZ2VTaXplcz09InN0cmluZyI/bS5pbWFnZVNpemVzOnZvaWQgMCxtZWRpYTp0eXBlb2YgbS5tZWRpYT09InN0cmluZyI/bS5tZWRpYTp2b2lkIDB9KX19LF90LnByZWxvYWRNb2R1bGU9ZnVuY3Rpb24oZixtKXtpZih0eXBlb2YgZj09InN0cmluZyIpaWYobSl7dmFyIGI9ZChtLmFzLG0uY3Jvc3NPcmlnaW4pO2kuZC5tKGYse2FzOnR5cGVvZiBtLmFzPT0ic3RyaW5nIiYmbS5hcyE9PSJzY3JpcHQiP20uYXM6dm9pZCAwLGNyb3NzT3JpZ2luOmIsaW50ZWdyaXR5OnR5cGVvZiBtLmludGVncml0eT09InN0cmluZyI/bS5pbnRlZ3JpdHk6dm9pZCAwfSl9ZWxzZSBpLmQubShmKX0sX3QucmVxdWVzdEZvcm1SZXNldD1mdW5jdGlvbihmKXtpLmQucihmKX0sX3QudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9ZnVuY3Rpb24oZixtKXtyZXR1cm4gZihtKX0sX3QudXNlRm9ybVN0YXRlPWZ1bmN0aW9uKGYsbSxiKXtyZXR1cm4gYy5ILnVzZUZvcm1TdGF0ZShmLG0sYil9LF90LnVzZUZvcm1TdGF0dXM9ZnVuY3Rpb24oKXtyZXR1cm4gYy5ILnVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzKCl9LF90LnZlcnNpb249IjE5LjIuMCIsX3R9dmFyIEx2O2Z1bmN0aW9uIFlPKCl7aWYoTHYpcmV0dXJuIGJjLmV4cG9ydHM7THY9MTtmdW5jdGlvbiBlKCl7aWYoISh0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fPiJ1Inx8dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSE9ImZ1bmN0aW9uIikpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShlKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKG4pfX1yZXR1cm4gZSgpLGJjLmV4cG9ydHM9Vk8oKSxiYy5leHBvcnRzfS8qKgogKiBAbGljZW5zZSBSZWFjdAogKiByZWFjdC1kb20tY2xpZW50LnByb2R1Y3Rpb24uanMKICoKICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy4KICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovdmFyIER2O2Z1bmN0aW9uIEtPKCl7aWYoRHYpcmV0dXJuIFhpO0R2PTE7dmFyIGU9JE8oKSxuPSRoKCksYT1ZTygpO2Z1bmN0aW9uIGkodCl7dmFyIHI9Imh0dHBzOi8vcmVhY3QuZGV2L2Vycm9ycy8iK3Q7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXtyKz0iP2FyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbMV0pO2Zvcih2YXIgbz0yO288YXJndW1lbnRzLmxlbmd0aDtvKyspcis9IiZhcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW29dKX1yZXR1cm4iTWluaWZpZWQgUmVhY3QgZXJyb3IgIyIrdCsiOyB2aXNpdCAiK3IrIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuIn1mdW5jdGlvbiBsKHQpe3JldHVybiEoIXR8fHQubm9kZVR5cGUhPT0xJiZ0Lm5vZGVUeXBlIT09OSYmdC5ub2RlVHlwZSE9PTExKX1mdW5jdGlvbiB1KHQpe3ZhciByPXQsbz10O2lmKHQuYWx0ZXJuYXRlKWZvcig7ci5yZXR1cm47KXI9ci5yZXR1cm47ZWxzZXt0PXI7ZG8gcj10LChyLmZsYWdzJjQwOTgpIT09MCYmKG89ci5yZXR1cm4pLHQ9ci5yZXR1cm47d2hpbGUodCl9cmV0dXJuIHIudGFnPT09Mz9vOm51bGx9ZnVuY3Rpb24gYyh0KXtpZih0LnRhZz09PTEzKXt2YXIgcj10Lm1lbW9pemVkU3RhdGU7aWYocj09PW51bGwmJih0PXQuYWx0ZXJuYXRlLHQhPT1udWxsJiYocj10Lm1lbW9pemVkU3RhdGUpKSxyIT09bnVsbClyZXR1cm4gci5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIGQodCl7aWYodC50YWc9PT0zMSl7dmFyIHI9dC5tZW1vaXplZFN0YXRlO2lmKHI9PT1udWxsJiYodD10LmFsdGVybmF0ZSx0IT09bnVsbCYmKHI9dC5tZW1vaXplZFN0YXRlKSksciE9PW51bGwpcmV0dXJuIHIuZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBmKHQpe2lmKHUodCkhPT10KXRocm93IEVycm9yKGkoMTg4KSl9ZnVuY3Rpb24gbSh0KXt2YXIgcj10LmFsdGVybmF0ZTtpZighcil7aWYocj11KHQpLHI9PT1udWxsKXRocm93IEVycm9yKGkoMTg4KSk7cmV0dXJuIHIhPT10P251bGw6dH1mb3IodmFyIG89dCxzPXI7Oyl7dmFyIHA9by5yZXR1cm47aWYocD09PW51bGwpYnJlYWs7dmFyIGc9cC5hbHRlcm5hdGU7aWYoZz09PW51bGwpe2lmKHM9cC5yZXR1cm4scyE9PW51bGwpe289cztjb250aW51ZX1icmVha31pZihwLmNoaWxkPT09Zy5jaGlsZCl7Zm9yKGc9cC5jaGlsZDtnOyl7aWYoZz09PW8pcmV0dXJuIGYocCksdDtpZihnPT09cylyZXR1cm4gZihwKSxyO2c9Zy5zaWJsaW5nfXRocm93IEVycm9yKGkoMTg4KSl9aWYoby5yZXR1cm4hPT1zLnJldHVybilvPXAscz1nO2Vsc2V7Zm9yKHZhciB2PSExLEE9cC5jaGlsZDtBOyl7aWYoQT09PW8pe3Y9ITAsbz1wLHM9ZzticmVha31pZihBPT09cyl7dj0hMCxzPXAsbz1nO2JyZWFrfUE9QS5zaWJsaW5nfWlmKCF2KXtmb3IoQT1nLmNoaWxkO0E7KXtpZihBPT09byl7dj0hMCxvPWcscz1wO2JyZWFrfWlmKEE9PT1zKXt2PSEwLHM9ZyxvPXA7YnJlYWt9QT1BLnNpYmxpbmd9aWYoIXYpdGhyb3cgRXJyb3IoaSgxODkpKX19aWYoby5hbHRlcm5hdGUhPT1zKXRocm93IEVycm9yKGkoMTkwKSl9aWYoby50YWchPT0zKXRocm93IEVycm9yKGkoMTg4KSk7cmV0dXJuIG8uc3RhdGVOb2RlLmN1cnJlbnQ9PT1vP3Q6cn1mdW5jdGlvbiBiKHQpe3ZhciByPXQudGFnO2lmKHI9PT01fHxyPT09MjZ8fHI9PT0yN3x8cj09PTYpcmV0dXJuIHQ7Zm9yKHQ9dC5jaGlsZDt0IT09bnVsbDspe2lmKHI9Yih0KSxyIT09bnVsbClyZXR1cm4gcjt0PXQuc2libGluZ31yZXR1cm4gbnVsbH12YXIgaD1PYmplY3QuYXNzaWduLFM9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLEU9U3ltYm9sLmZvcigicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiKSxfPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLFQ9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxDPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIikseD1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLE49U3ltYm9sLmZvcigicmVhY3QuY29uc3VtZXIiKSxrPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxMPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksRj1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLFI9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLE09U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLFk9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLHo9U3ltYm9sLmZvcigicmVhY3QuYWN0aXZpdHkiKSxVPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWwiKSwkPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBKKHQpe3JldHVybiB0PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiP251bGw6KHQ9JCYmdFskXXx8dFsiQEBpdGVyYXRvciJdLHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6bnVsbCl9dmFyIG9lPVN5bWJvbC5mb3IoInJlYWN0LmNsaWVudC5yZWZlcmVuY2UiKTtmdW5jdGlvbiBpZSh0KXtpZih0PT1udWxsKXJldHVybiBudWxsO2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiB0LiQkdHlwZW9mPT09b2U/bnVsbDp0LmRpc3BsYXlOYW1lfHx0Lm5hbWV8fG51bGw7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybiB0O3N3aXRjaCh0KXtjYXNlIFQ6cmV0dXJuIkZyYWdtZW50IjtjYXNlIHg6cmV0dXJuIlByb2ZpbGVyIjtjYXNlIEM6cmV0dXJuIlN0cmljdE1vZGUiO2Nhc2UgRjpyZXR1cm4iU3VzcGVuc2UiO2Nhc2UgUjpyZXR1cm4iU3VzcGVuc2VMaXN0IjtjYXNlIHo6cmV0dXJuIkFjdGl2aXR5In1pZih0eXBlb2YgdD09Im9iamVjdCIpc3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgXzpyZXR1cm4iUG9ydGFsIjtjYXNlIGs6cmV0dXJuIHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IjtjYXNlIE46cmV0dXJuKHQuX2NvbnRleHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Db25zdW1lciI7Y2FzZSBMOnZhciByPXQucmVuZGVyO3JldHVybiB0PXQuZGlzcGxheU5hbWUsdHx8KHQ9ci5kaXNwbGF5TmFtZXx8ci5uYW1lfHwiIix0PXQhPT0iIj8iRm9yd2FyZFJlZigiK3QrIikiOiJGb3J3YXJkUmVmIiksdDtjYXNlIE06cmV0dXJuIHI9dC5kaXNwbGF5TmFtZXx8bnVsbCxyIT09bnVsbD9yOmllKHQudHlwZSl8fCJNZW1vIjtjYXNlIFk6cj10Ll9wYXlsb2FkLHQ9dC5faW5pdDt0cnl7cmV0dXJuIGllKHQocikpfWNhdGNoe319cmV0dXJuIG51bGx9dmFyIGxlPUFycmF5LmlzQXJyYXksRz1uLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxlZT1hLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxuZT17cGVuZGluZzohMSxkYXRhOm51bGwsbWV0aG9kOm51bGwsYWN0aW9uOm51bGx9LGZlPVtdLEk9LTE7ZnVuY3Rpb24gTyh0KXtyZXR1cm57Y3VycmVudDp0fX1mdW5jdGlvbiBWKHQpezA+SXx8KHQuY3VycmVudD1mZVtJXSxmZVtJXT1udWxsLEktLSl9ZnVuY3Rpb24gdyh0LHIpe0krKyxmZVtJXT10LmN1cnJlbnQsdC5jdXJyZW50PXJ9dmFyIHRlPU8obnVsbCksc2U9TyhudWxsKSxjZT1PKG51bGwpLGhlPU8obnVsbCk7ZnVuY3Rpb24gSWUodCxyKXtzd2l0Y2godyhjZSxyKSx3KHNlLHQpLHcodGUsbnVsbCksci5ub2RlVHlwZSl7Y2FzZSA5OmNhc2UgMTE6dD0odD1yLmRvY3VtZW50RWxlbWVudCkmJih0PXQubmFtZXNwYWNlVVJJKT9XUyh0KTowO2JyZWFrO2RlZmF1bHQ6aWYodD1yLnRhZ05hbWUscj1yLm5hbWVzcGFjZVVSSSlyPVdTKHIpLHQ9WFMocix0KTtlbHNlIHN3aXRjaCh0KXtjYXNlInN2ZyI6dD0xO2JyZWFrO2Nhc2UibWF0aCI6dD0yO2JyZWFrO2RlZmF1bHQ6dD0wfX1WKHRlKSx3KHRlLHQpfWZ1bmN0aW9uIHdlKCl7Vih0ZSksVihzZSksVihjZSl9ZnVuY3Rpb24gaXQodCl7dC5tZW1vaXplZFN0YXRlIT09bnVsbCYmdyhoZSx0KTt2YXIgcj10ZS5jdXJyZW50LG89WFMocix0LnR5cGUpO3IhPT1vJiYodyhzZSx0KSx3KHRlLG8pKX1mdW5jdGlvbiBmdCh0KXtzZS5jdXJyZW50PT09dCYmKFYodGUpLFYoc2UpKSxoZS5jdXJyZW50PT09dCYmKFYoaGUpLCRpLl9jdXJyZW50VmFsdWU9bmUpfXZhciBNbixybjtmdW5jdGlvbiBTbih0KXtpZihNbj09PXZvaWQgMCl0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChvKXt2YXIgcj1vLnN0YWNrLnRyaW0oKS5tYXRjaCgvXG4oICooYXQgKT8pLyk7TW49ciYmclsxXXx8IiIscm49LTE8by5zdGFjay5pbmRleE9mKGAKICAgIGF0YCk/IiAoPGFub255bW91cz4pIjotMTxvLnN0YWNrLmluZGV4T2YoIkAiKT8iQHVua25vd246MDowIjoiIn1yZXR1cm5gCmArTW4rdCtybn12YXIgX249ITE7ZnVuY3Rpb24gd3QodCxyKXtpZighdHx8X24pcmV0dXJuIiI7X249ITA7dmFyIG89RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dm9pZCAwO3RyeXt2YXIgcz17RGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290OmZ1bmN0aW9uKCl7dHJ5e2lmKHIpe3ZhciBRPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX07aWYoT2JqZWN0LmRlZmluZVByb3BlcnR5KFEucHJvdG90eXBlLCJwcm9wcyIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCl9fSksdHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZSZWZsZWN0LmNvbnN0cnVjdCl7dHJ5e1JlZmxlY3QuY29uc3RydWN0KFEsW10pfWNhdGNoKEspe3ZhciBIPUt9UmVmbGVjdC5jb25zdHJ1Y3QodCxbXSxRKX1lbHNle3RyeXtRLmNhbGwoKX1jYXRjaChLKXtIPUt9dC5jYWxsKFEucHJvdG90eXBlKX19ZWxzZXt0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChLKXtIPUt9KFE9dCgpKSYmdHlwZW9mIFEuY2F0Y2g9PSJmdW5jdGlvbiImJlEuY2F0Y2goZnVuY3Rpb24oKXt9KX19Y2F0Y2goSyl7aWYoSyYmSCYmdHlwZW9mIEsuc3RhY2s9PSJzdHJpbmciKXJldHVybltLLnN0YWNrLEguc3RhY2tdfXJldHVybltudWxsLG51bGxdfX07cy5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QuZGlzcGxheU5hbWU9IkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCI7dmFyIHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCwibmFtZSIpO3AmJnAuY29uZmlndXJhYmxlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocy5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsIm5hbWUiLHt2YWx1ZToiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290In0pO3ZhciBnPXMuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290KCksdj1nWzBdLEE9Z1sxXTtpZih2JiZBKXt2YXIgRD12LnNwbGl0KGAKYCksUD1BLnNwbGl0KGAKYCk7Zm9yKHA9cz0wO3M8RC5sZW5ndGgmJiFEW3NdLmluY2x1ZGVzKCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiKTspcysrO2Zvcig7cDxQLmxlbmd0aCYmIVBbcF0uaW5jbHVkZXMoIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCIpOylwKys7aWYocz09PUQubGVuZ3RofHxwPT09UC5sZW5ndGgpZm9yKHM9RC5sZW5ndGgtMSxwPVAubGVuZ3RoLTE7MTw9cyYmMDw9cCYmRFtzXSE9PVBbcF07KXAtLTtmb3IoOzE8PXMmJjA8PXA7cy0tLHAtLSlpZihEW3NdIT09UFtwXSl7aWYocyE9PTF8fHAhPT0xKWRvIGlmKHMtLSxwLS0sMD5wfHxEW3NdIT09UFtwXSl7dmFyIFg9YApgK0Rbc10ucmVwbGFjZSgiIGF0IG5ldyAiLCIgYXQgIik7cmV0dXJuIHQuZGlzcGxheU5hbWUmJlguaW5jbHVkZXMoIjxhbm9ueW1vdXM+IikmJihYPVgucmVwbGFjZSgiPGFub255bW91cz4iLHQuZGlzcGxheU5hbWUpKSxYfXdoaWxlKDE8PXMmJjA8PXApO2JyZWFrfX19ZmluYWxseXtfbj0hMSxFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT1vfXJldHVybihvPXQ/dC5kaXNwbGF5TmFtZXx8dC5uYW1lOiIiKT9TbihvKToiIn1mdW5jdGlvbiBNcih0LHIpe3N3aXRjaCh0LnRhZyl7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpyZXR1cm4gU24odC50eXBlKTtjYXNlIDE2OnJldHVybiBTbigiTGF6eSIpO2Nhc2UgMTM6cmV0dXJuIHQuY2hpbGQhPT1yJiZyIT09bnVsbD9TbigiU3VzcGVuc2UgRmFsbGJhY2siKTpTbigiU3VzcGVuc2UiKTtjYXNlIDE5OnJldHVybiBTbigiU3VzcGVuc2VMaXN0Iik7Y2FzZSAwOmNhc2UgMTU6cmV0dXJuIHd0KHQudHlwZSwhMSk7Y2FzZSAxMTpyZXR1cm4gd3QodC50eXBlLnJlbmRlciwhMSk7Y2FzZSAxOnJldHVybiB3dCh0LnR5cGUsITApO2Nhc2UgMzE6cmV0dXJuIFNuKCJBY3Rpdml0eSIpO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIGFuKHQpe3RyeXt2YXIgcj0iIixvPW51bGw7ZG8gcis9TXIodCxvKSxvPXQsdD10LnJldHVybjt3aGlsZSh0KTtyZXR1cm4gcn1jYXRjaChzKXtyZXR1cm5gCkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IGArcy5tZXNzYWdlK2AKYCtzLnN0YWNrfX12YXIgVW49T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxPdD1lLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssRm49ZS51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxSbj1lLnVuc3RhYmxlX3Nob3VsZFlpZWxkLFVyPWUudW5zdGFibGVfcmVxdWVzdFBhaW50LFFlPWUudW5zdGFibGVfbm93LGh0PWUudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsVz1lLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LHJlPWUudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksZGU9ZS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxFZT1lLnVuc3RhYmxlX0xvd1ByaW9yaXR5LE9lPWUudW5zdGFibGVfSWRsZVByaW9yaXR5LGJ0PWUubG9nLHl0PWUudW5zdGFibGVfc2V0RGlzYWJsZVlpZWxkVmFsdWUsbnQ9bnVsbCxIZT1udWxsO2Z1bmN0aW9uIFhlKHQpe2lmKHR5cGVvZiBidD09ImZ1bmN0aW9uIiYmeXQodCksSGUmJnR5cGVvZiBIZS5zZXRTdHJpY3RNb2RlPT0iZnVuY3Rpb24iKXRyeXtIZS5zZXRTdHJpY3RNb2RlKG50LHQpfWNhdGNoe319dmFyIEJlPU1hdGguY2x6MzI/TWF0aC5jbHozMjpvbixMdD1NYXRoLmxvZyxBdD1NYXRoLkxOMjtmdW5jdGlvbiBvbih0KXtyZXR1cm4gdD4+Pj0wLHQ9PT0wPzMyOjMxLShMdCh0KS9BdHwwKXwwfXZhciBKZT0yNTYsTm49MjYyMTQ0LHNhPTQxOTQzMDQ7ZnVuY3Rpb24gd24odCl7dmFyIHI9dCY0MjtpZihyIT09MClyZXR1cm4gcjtzd2l0Y2godCYtdCl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6cmV0dXJuIDY0O2Nhc2UgMTI4OnJldHVybiAxMjg7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOnJldHVybiB0JjI2MTg4ODtjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiB0JjM5MzIxNjA7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6cmV0dXJuIHQmNjI5MTQ1NjA7Y2FzZSA2NzEwODg2NDpyZXR1cm4gNjcxMDg4NjQ7Y2FzZSAxMzQyMTc3Mjg6cmV0dXJuIDEzNDIxNzcyODtjYXNlIDI2ODQzNTQ1NjpyZXR1cm4gMjY4NDM1NDU2O2Nhc2UgNTM2ODcwOTEyOnJldHVybiA1MzY4NzA5MTI7Y2FzZSAxMDczNzQxODI0OnJldHVybiAwO2RlZmF1bHQ6cmV0dXJuIHR9fWZ1bmN0aW9uIEZyKHQscixvKXt2YXIgcz10LnBlbmRpbmdMYW5lcztpZihzPT09MClyZXR1cm4gMDt2YXIgcD0wLGc9dC5zdXNwZW5kZWRMYW5lcyx2PXQucGluZ2VkTGFuZXM7dD10Lndhcm1MYW5lczt2YXIgQT1zJjEzNDIxNzcyNztyZXR1cm4gQSE9PTA/KHM9QSZ+ZyxzIT09MD9wPXduKHMpOih2Jj1BLHYhPT0wP3A9d24odik6b3x8KG89QSZ+dCxvIT09MCYmKHA9d24obykpKSkpOihBPXMmfmcsQSE9PTA/cD13bihBKTp2IT09MD9wPXduKHYpOm98fChvPXMmfnQsbyE9PTAmJihwPXduKG8pKSkpLHA9PT0wPzA6ciE9PTAmJnIhPT1wJiYociZnKT09PTAmJihnPXAmLXAsbz1yJi1yLGc+PW98fGc9PT0zMiYmKG8mNDE5NDA0OCkhPT0wKT9yOnB9ZnVuY3Rpb24gYXIodCxyKXtyZXR1cm4odC5wZW5kaW5nTGFuZXMmfih0LnN1c3BlbmRlZExhbmVzJn50LnBpbmdlZExhbmVzKSZyKT09PTB9ZnVuY3Rpb24gYWkodCxyKXtzd2l0Y2godCl7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA4OmNhc2UgNjQ6cmV0dXJuIHIrMjUwO2Nhc2UgMTY6Y2FzZSAzMjpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gcis1ZTM7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6cmV0dXJuLTE7Y2FzZSA2NzEwODg2NDpjYXNlIDEzNDIxNzcyODpjYXNlIDI2ODQzNTQ1NjpjYXNlIDUzNjg3MDkxMjpjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuLTE7ZGVmYXVsdDpyZXR1cm4tMX19ZnVuY3Rpb24gQ2IoKXt2YXIgdD1zYTtyZXR1cm4gc2E8PD0xLChzYSY2MjkxNDU2MCk9PT0wJiYoc2E9NDE5NDMwNCksdH1mdW5jdGlvbiBlcyh0KXtmb3IodmFyIHI9W10sbz0wOzMxPm87bysrKXIucHVzaCh0KTtyZXR1cm4gcn1mdW5jdGlvbiBpaSh0LHIpe3QucGVuZGluZ0xhbmVzfD1yLHIhPT0yNjg0MzU0NTYmJih0LnN1c3BlbmRlZExhbmVzPTAsdC5waW5nZWRMYW5lcz0wLHQud2FybUxhbmVzPTApfWZ1bmN0aW9uIGtDKHQscixvLHMscCxnKXt2YXIgdj10LnBlbmRpbmdMYW5lczt0LnBlbmRpbmdMYW5lcz1vLHQuc3VzcGVuZGVkTGFuZXM9MCx0LnBpbmdlZExhbmVzPTAsdC53YXJtTGFuZXM9MCx0LmV4cGlyZWRMYW5lcyY9byx0LmVudGFuZ2xlZExhbmVzJj1vLHQuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXMmPW8sdC5zaGVsbFN1c3BlbmRDb3VudGVyPTA7dmFyIEE9dC5lbnRhbmdsZW1lbnRzLEQ9dC5leHBpcmF0aW9uVGltZXMsUD10LmhpZGRlblVwZGF0ZXM7Zm9yKG89diZ+bzswPG87KXt2YXIgWD0zMS1CZShvKSxRPTE8PFg7QVtYXT0wLERbWF09LTE7dmFyIEg9UFtYXTtpZihIIT09bnVsbClmb3IoUFtYXT1udWxsLFg9MDtYPEgubGVuZ3RoO1grKyl7dmFyIEs9SFtYXTtLIT09bnVsbCYmKEsubGFuZSY9LTUzNjg3MDkxMyl9byY9flF9cyE9PTAmJkliKHQscywwKSxnIT09MCYmcD09PTAmJnQudGFnIT09MCYmKHQuc3VzcGVuZGVkTGFuZXN8PWcmfih2Jn5yKSl9ZnVuY3Rpb24gSWIodCxyLG8pe3QucGVuZGluZ0xhbmVzfD1yLHQuc3VzcGVuZGVkTGFuZXMmPX5yO3ZhciBzPTMxLUJlKHIpO3QuZW50YW5nbGVkTGFuZXN8PXIsdC5lbnRhbmdsZW1lbnRzW3NdPXQuZW50YW5nbGVtZW50c1tzXXwxMDczNzQxODI0fG8mMjYxOTMwfWZ1bmN0aW9uIE9iKHQscil7dmFyIG89dC5lbnRhbmdsZWRMYW5lc3w9cjtmb3IodD10LmVudGFuZ2xlbWVudHM7bzspe3ZhciBzPTMxLUJlKG8pLHA9MTw8cztwJnJ8dFtzXSZyJiYodFtzXXw9ciksbyY9fnB9fWZ1bmN0aW9uIExiKHQscil7dmFyIG89ciYtcjtyZXR1cm4gbz0obyY0MikhPT0wPzE6dHMobyksKG8mKHQuc3VzcGVuZGVkTGFuZXN8cikpIT09MD8wOm99ZnVuY3Rpb24gdHModCl7c3dpdGNoKHQpe2Nhc2UgMjp0PTE7YnJlYWs7Y2FzZSA4OnQ9NDticmVhaztjYXNlIDMyOnQ9MTY7YnJlYWs7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6dD0xMjg7YnJlYWs7Y2FzZSAyNjg0MzU0NTY6dD0xMzQyMTc3Mjg7YnJlYWs7ZGVmYXVsdDp0PTB9cmV0dXJuIHR9ZnVuY3Rpb24gbnModCl7cmV0dXJuIHQmPS10LDI8dD84PHQ/KHQmMTM0MjE3NzI3KSE9PTA/MzI6MjY4NDM1NDU2Ojg6Mn1mdW5jdGlvbiBEYigpe3ZhciB0PWVlLnA7cmV0dXJuIHQhPT0wP3Q6KHQ9d2luZG93LmV2ZW50LHQ9PT12b2lkIDA/MzI6RXYodC50eXBlKSl9ZnVuY3Rpb24gTWIodCxyKXt2YXIgbz1lZS5wO3RyeXtyZXR1cm4gZWUucD10LHIoKX1maW5hbGx5e2VlLnA9b319dmFyIGlyPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLEV0PSJfX3JlYWN0RmliZXIkIitpcixEdD0iX19yZWFjdFByb3BzJCIraXIsdWE9Il9fcmVhY3RDb250YWluZXIkIitpcixycz0iX19yZWFjdEV2ZW50cyQiK2lyLENDPSJfX3JlYWN0TGlzdGVuZXJzJCIraXIsSUM9Il9fcmVhY3RIYW5kbGVzJCIraXIsVWI9Il9fcmVhY3RSZXNvdXJjZXMkIitpcixvaT0iX19yZWFjdE1hcmtlciQiK2lyO2Z1bmN0aW9uIGFzKHQpe2RlbGV0ZSB0W0V0XSxkZWxldGUgdFtEdF0sZGVsZXRlIHRbcnNdLGRlbGV0ZSB0W0NDXSxkZWxldGUgdFtJQ119ZnVuY3Rpb24gY2EodCl7dmFyIHI9dFtFdF07aWYocilyZXR1cm4gcjtmb3IodmFyIG89dC5wYXJlbnROb2RlO287KXtpZihyPW9bdWFdfHxvW0V0XSl7aWYobz1yLmFsdGVybmF0ZSxyLmNoaWxkIT09bnVsbHx8byE9PW51bGwmJm8uY2hpbGQhPT1udWxsKWZvcih0PXJ2KHQpO3QhPT1udWxsOyl7aWYobz10W0V0XSlyZXR1cm4gbzt0PXJ2KHQpfXJldHVybiByfXQ9byxvPXQucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBkYSh0KXtpZih0PXRbRXRdfHx0W3VhXSl7dmFyIHI9dC50YWc7aWYocj09PTV8fHI9PT02fHxyPT09MTN8fHI9PT0zMXx8cj09PTI2fHxyPT09Mjd8fHI9PT0zKXJldHVybiB0fXJldHVybiBudWxsfWZ1bmN0aW9uIGxpKHQpe3ZhciByPXQudGFnO2lmKHI9PT01fHxyPT09MjZ8fHI9PT0yN3x8cj09PTYpcmV0dXJuIHQuc3RhdGVOb2RlO3Rocm93IEVycm9yKGkoMzMpKX1mdW5jdGlvbiBwYSh0KXt2YXIgcj10W1ViXTtyZXR1cm4gcnx8KHI9dFtVYl09e2hvaXN0YWJsZVN0eWxlczpuZXcgTWFwLGhvaXN0YWJsZVNjcmlwdHM6bmV3IE1hcH0pLHJ9ZnVuY3Rpb24gZ3QodCl7dFtvaV09ITB9dmFyIEZiPW5ldyBTZXQsQmI9e307ZnVuY3Rpb24gQnIodCxyKXtmYSh0LHIpLGZhKHQrIkNhcHR1cmUiLHIpfWZ1bmN0aW9uIGZhKHQscil7Zm9yKEJiW3RdPXIsdD0wO3Q8ci5sZW5ndGg7dCsrKUZiLmFkZChyW3RdKX12YXIgT0M9UmVnRXhwKCJeWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXVs6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSokIiksamI9e30semI9e307ZnVuY3Rpb24gTEModCl7cmV0dXJuIFVuLmNhbGwoemIsdCk/ITA6VW4uY2FsbChqYix0KT8hMTpPQy50ZXN0KHQpP3piW3RdPSEwOihqYlt0XT0hMCwhMSl9ZnVuY3Rpb24gZm8odCxyLG8pe2lmKExDKHIpKWlmKG89PT1udWxsKXQucmVtb3ZlQXR0cmlidXRlKHIpO2Vsc2V7c3dpdGNoKHR5cGVvZiBvKXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOnQucmVtb3ZlQXR0cmlidXRlKHIpO3JldHVybjtjYXNlImJvb2xlYW4iOnZhciBzPXIudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpO2lmKHMhPT0iZGF0YS0iJiZzIT09ImFyaWEtIil7dC5yZW1vdmVBdHRyaWJ1dGUocik7cmV0dXJufX10LnNldEF0dHJpYnV0ZShyLCIiK28pfX1mdW5jdGlvbiBnbyh0LHIsbyl7aWYobz09PW51bGwpdC5yZW1vdmVBdHRyaWJ1dGUocik7ZWxzZXtzd2l0Y2godHlwZW9mIG8pe2Nhc2UidW5kZWZpbmVkIjpjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6Y2FzZSJib29sZWFuIjp0LnJlbW92ZUF0dHJpYnV0ZShyKTtyZXR1cm59dC5zZXRBdHRyaWJ1dGUociwiIitvKX19ZnVuY3Rpb24gQm4odCxyLG8scyl7aWYocz09PW51bGwpdC5yZW1vdmVBdHRyaWJ1dGUobyk7ZWxzZXtzd2l0Y2godHlwZW9mIHMpe2Nhc2UidW5kZWZpbmVkIjpjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6Y2FzZSJib29sZWFuIjp0LnJlbW92ZUF0dHJpYnV0ZShvKTtyZXR1cm59dC5zZXRBdHRyaWJ1dGVOUyhyLG8sIiIrcyl9fWZ1bmN0aW9uIGxuKHQpe3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJiaWdpbnQiOmNhc2UiYm9vbGVhbiI6Y2FzZSJudW1iZXIiOmNhc2Uic3RyaW5nIjpjYXNlInVuZGVmaW5lZCI6cmV0dXJuIHQ7Y2FzZSJvYmplY3QiOnJldHVybiB0O2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIHFiKHQpe3ZhciByPXQudHlwZTtyZXR1cm4odD10Lm5vZGVOYW1lKSYmdC50b0xvd2VyQ2FzZSgpPT09ImlucHV0IiYmKHI9PT0iY2hlY2tib3gifHxyPT09InJhZGlvIil9ZnVuY3Rpb24gREModCxyLG8pe3ZhciBzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUscik7aWYoIXQuaGFzT3duUHJvcGVydHkocikmJnR5cGVvZiBzPCJ1IiYmdHlwZW9mIHMuZ2V0PT0iZnVuY3Rpb24iJiZ0eXBlb2Ygcy5zZXQ9PSJmdW5jdGlvbiIpe3ZhciBwPXMuZ2V0LGc9cy5zZXQ7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24odil7bz0iIit2LGcuY2FsbCh0aGlzLHYpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIse2VudW1lcmFibGU6cy5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG99LHNldFZhbHVlOmZ1bmN0aW9uKHYpe289IiIrdn0sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7dC5fdmFsdWVUcmFja2VyPW51bGwsZGVsZXRlIHRbcl19fX19ZnVuY3Rpb24gaXModCl7aWYoIXQuX3ZhbHVlVHJhY2tlcil7dmFyIHI9cWIodCk/ImNoZWNrZWQiOiJ2YWx1ZSI7dC5fdmFsdWVUcmFja2VyPURDKHQsciwiIit0W3JdKX19ZnVuY3Rpb24gUGIodCl7aWYoIXQpcmV0dXJuITE7dmFyIHI9dC5fdmFsdWVUcmFja2VyO2lmKCFyKXJldHVybiEwO3ZhciBvPXIuZ2V0VmFsdWUoKSxzPSIiO3JldHVybiB0JiYocz1xYih0KT90LmNoZWNrZWQ/InRydWUiOiJmYWxzZSI6dC52YWx1ZSksdD1zLHQhPT1vPyhyLnNldFZhbHVlKHQpLCEwKTohMX1mdW5jdGlvbiBtbyh0KXtpZih0PXR8fCh0eXBlb2YgZG9jdW1lbnQ8InUiP2RvY3VtZW50OnZvaWQgMCksdHlwZW9mIHQ+InUiKXJldHVybiBudWxsO3RyeXtyZXR1cm4gdC5hY3RpdmVFbGVtZW50fHx0LmJvZHl9Y2F0Y2h7cmV0dXJuIHQuYm9keX19dmFyIE1DPS9bXG4iXFxdL2c7ZnVuY3Rpb24gc24odCl7cmV0dXJuIHQucmVwbGFjZShNQyxmdW5jdGlvbihyKXtyZXR1cm4iXFwiK3IuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikrIiAifSl9ZnVuY3Rpb24gb3ModCxyLG8scyxwLGcsdixBKXt0Lm5hbWU9IiIsdiE9bnVsbCYmdHlwZW9mIHYhPSJmdW5jdGlvbiImJnR5cGVvZiB2IT0ic3ltYm9sIiYmdHlwZW9mIHYhPSJib29sZWFuIj90LnR5cGU9djp0LnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLHIhPW51bGw/dj09PSJudW1iZXIiPyhyPT09MCYmdC52YWx1ZT09PSIifHx0LnZhbHVlIT1yKSYmKHQudmFsdWU9IiIrbG4ocikpOnQudmFsdWUhPT0iIitsbihyKSYmKHQudmFsdWU9IiIrbG4ocikpOnYhPT0ic3VibWl0IiYmdiE9PSJyZXNldCJ8fHQucmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpLHIhPW51bGw/bHModCx2LGxuKHIpKTpvIT1udWxsP2xzKHQsdixsbihvKSk6cyE9bnVsbCYmdC5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIikscD09bnVsbCYmZyE9bnVsbCYmKHQuZGVmYXVsdENoZWNrZWQ9ISFnKSxwIT1udWxsJiYodC5jaGVja2VkPXAmJnR5cGVvZiBwIT0iZnVuY3Rpb24iJiZ0eXBlb2YgcCE9InN5bWJvbCIpLEEhPW51bGwmJnR5cGVvZiBBIT0iZnVuY3Rpb24iJiZ0eXBlb2YgQSE9InN5bWJvbCImJnR5cGVvZiBBIT0iYm9vbGVhbiI/dC5uYW1lPSIiK2xuKEEpOnQucmVtb3ZlQXR0cmlidXRlKCJuYW1lIil9ZnVuY3Rpb24gR2IodCxyLG8scyxwLGcsdixBKXtpZihnIT1udWxsJiZ0eXBlb2YgZyE9ImZ1bmN0aW9uIiYmdHlwZW9mIGchPSJzeW1ib2wiJiZ0eXBlb2YgZyE9ImJvb2xlYW4iJiYodC50eXBlPWcpLHIhPW51bGx8fG8hPW51bGwpe2lmKCEoZyE9PSJzdWJtaXQiJiZnIT09InJlc2V0Inx8ciE9bnVsbCkpe2lzKHQpO3JldHVybn1vPW8hPW51bGw/IiIrbG4obyk6IiIscj1yIT1udWxsPyIiK2xuKHIpOm8sQXx8cj09PXQudmFsdWV8fCh0LnZhbHVlPXIpLHQuZGVmYXVsdFZhbHVlPXJ9cz1zPz9wLHM9dHlwZW9mIHMhPSJmdW5jdGlvbiImJnR5cGVvZiBzIT0ic3ltYm9sIiYmISFzLHQuY2hlY2tlZD1BP3QuY2hlY2tlZDohIXMsdC5kZWZhdWx0Q2hlY2tlZD0hIXMsdiE9bnVsbCYmdHlwZW9mIHYhPSJmdW5jdGlvbiImJnR5cGVvZiB2IT0ic3ltYm9sIiYmdHlwZW9mIHYhPSJib29sZWFuIiYmKHQubmFtZT12KSxpcyh0KX1mdW5jdGlvbiBscyh0LHIsbyl7cj09PSJudW1iZXIiJiZtbyh0Lm93bmVyRG9jdW1lbnQpPT09dHx8dC5kZWZhdWx0VmFsdWU9PT0iIitvfHwodC5kZWZhdWx0VmFsdWU9IiIrbyl9ZnVuY3Rpb24gZ2EodCxyLG8scyl7aWYodD10Lm9wdGlvbnMscil7cj17fTtmb3IodmFyIHA9MDtwPG8ubGVuZ3RoO3ArKylyWyIkIitvW3BdXT0hMDtmb3Iobz0wO288dC5sZW5ndGg7bysrKXA9ci5oYXNPd25Qcm9wZXJ0eSgiJCIrdFtvXS52YWx1ZSksdFtvXS5zZWxlY3RlZCE9PXAmJih0W29dLnNlbGVjdGVkPXApLHAmJnMmJih0W29dLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3Iobz0iIitsbihvKSxyPW51bGwscD0wO3A8dC5sZW5ndGg7cCsrKXtpZih0W3BdLnZhbHVlPT09byl7dFtwXS5zZWxlY3RlZD0hMCxzJiYodFtwXS5kZWZhdWx0U2VsZWN0ZWQ9ITApO3JldHVybn1yIT09bnVsbHx8dFtwXS5kaXNhYmxlZHx8KHI9dFtwXSl9ciE9PW51bGwmJihyLnNlbGVjdGVkPSEwKX19ZnVuY3Rpb24gSGIodCxyLG8pe2lmKHIhPW51bGwmJihyPSIiK2xuKHIpLHIhPT10LnZhbHVlJiYodC52YWx1ZT1yKSxvPT1udWxsKSl7dC5kZWZhdWx0VmFsdWUhPT1yJiYodC5kZWZhdWx0VmFsdWU9cik7cmV0dXJufXQuZGVmYXVsdFZhbHVlPW8hPW51bGw/IiIrbG4obyk6IiJ9ZnVuY3Rpb24gJGIodCxyLG8scyl7aWYocj09bnVsbCl7aWYocyE9bnVsbCl7aWYobyE9bnVsbCl0aHJvdyBFcnJvcihpKDkyKSk7aWYobGUocykpe2lmKDE8cy5sZW5ndGgpdGhyb3cgRXJyb3IoaSg5MykpO3M9c1swXX1vPXN9bz09bnVsbCYmKG89IiIpLHI9b31vPWxuKHIpLHQuZGVmYXVsdFZhbHVlPW8scz10LnRleHRDb250ZW50LHM9PT1vJiZzIT09IiImJnMhPT1udWxsJiYodC52YWx1ZT1zKSxpcyh0KX1mdW5jdGlvbiBtYSh0LHIpe2lmKHIpe3ZhciBvPXQuZmlyc3RDaGlsZDtpZihvJiZvPT09dC5sYXN0Q2hpbGQmJm8ubm9kZVR5cGU9PT0zKXtvLm5vZGVWYWx1ZT1yO3JldHVybn19dC50ZXh0Q29udGVudD1yfXZhciBVQz1uZXcgU2V0KCJhbmltYXRpb25JdGVyYXRpb25Db3VudCBhc3BlY3RSYXRpbyBib3JkZXJJbWFnZU91dHNldCBib3JkZXJJbWFnZVNsaWNlIGJvcmRlckltYWdlV2lkdGggYm94RmxleCBib3hGbGV4R3JvdXAgYm94T3JkaW5hbEdyb3VwIGNvbHVtbkNvdW50IGNvbHVtbnMgZmxleCBmbGV4R3JvdyBmbGV4UG9zaXRpdmUgZmxleFNocmluayBmbGV4TmVnYXRpdmUgZmxleE9yZGVyIGdyaWRBcmVhIGdyaWRSb3cgZ3JpZFJvd0VuZCBncmlkUm93U3BhbiBncmlkUm93U3RhcnQgZ3JpZENvbHVtbiBncmlkQ29sdW1uRW5kIGdyaWRDb2x1bW5TcGFuIGdyaWRDb2x1bW5TdGFydCBmb250V2VpZ2h0IGxpbmVDbGFtcCBsaW5lSGVpZ2h0IG9wYWNpdHkgb3JkZXIgb3JwaGFucyBzY2FsZSB0YWJTaXplIHdpZG93cyB6SW5kZXggem9vbSBmaWxsT3BhY2l0eSBmbG9vZE9wYWNpdHkgc3RvcE9wYWNpdHkgc3Ryb2tlRGFzaGFycmF5IHN0cm9rZURhc2hvZmZzZXQgc3Ryb2tlTWl0ZXJsaW1pdCBzdHJva2VPcGFjaXR5IHN0cm9rZVdpZHRoIE1vekFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IE1vekJveEZsZXggTW96Qm94RmxleEdyb3VwIE1vekxpbmVDbGFtcCBtc0FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IG1zRmxleCBtc1pvb20gbXNGbGV4R3JvdyBtc0ZsZXhOZWdhdGl2ZSBtc0ZsZXhPcmRlciBtc0ZsZXhQb3NpdGl2ZSBtc0ZsZXhTaHJpbmsgbXNHcmlkQ29sdW1uIG1zR3JpZENvbHVtblNwYW4gbXNHcmlkUm93IG1zR3JpZFJvd1NwYW4gV2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgV2Via2l0Qm94RmxleCBXZWJLaXRCb3hGbGV4R3JvdXAgV2Via2l0Qm94T3JkaW5hbEdyb3VwIFdlYmtpdENvbHVtbkNvdW50IFdlYmtpdENvbHVtbnMgV2Via2l0RmxleCBXZWJraXRGbGV4R3JvdyBXZWJraXRGbGV4UG9zaXRpdmUgV2Via2l0RmxleFNocmluayBXZWJraXRMaW5lQ2xhbXAiLnNwbGl0KCIgIikpO2Z1bmN0aW9uIFZiKHQscixvKXt2YXIgcz1yLmluZGV4T2YoIi0tIik9PT0wO289PW51bGx8fHR5cGVvZiBvPT0iYm9vbGVhbiJ8fG89PT0iIj9zP3Quc2V0UHJvcGVydHkociwiIik6cj09PSJmbG9hdCI/dC5jc3NGbG9hdD0iIjp0W3JdPSIiOnM/dC5zZXRQcm9wZXJ0eShyLG8pOnR5cGVvZiBvIT0ibnVtYmVyInx8bz09PTB8fFVDLmhhcyhyKT9yPT09ImZsb2F0Ij90LmNzc0Zsb2F0PW86dFtyXT0oIiIrbykudHJpbSgpOnRbcl09bysicHgifWZ1bmN0aW9uIFliKHQscixvKXtpZihyIT1udWxsJiZ0eXBlb2YgciE9Im9iamVjdCIpdGhyb3cgRXJyb3IoaSg2MikpO2lmKHQ9dC5zdHlsZSxvIT1udWxsKXtmb3IodmFyIHMgaW4gbykhby5oYXNPd25Qcm9wZXJ0eShzKXx8ciE9bnVsbCYmci5oYXNPd25Qcm9wZXJ0eShzKXx8KHMuaW5kZXhPZigiLS0iKT09PTA/dC5zZXRQcm9wZXJ0eShzLCIiKTpzPT09ImZsb2F0Ij90LmNzc0Zsb2F0PSIiOnRbc109IiIpO2Zvcih2YXIgcCBpbiByKXM9cltwXSxyLmhhc093blByb3BlcnR5KHApJiZvW3BdIT09cyYmVmIodCxwLHMpfWVsc2UgZm9yKHZhciBnIGluIHIpci5oYXNPd25Qcm9wZXJ0eShnKSYmVmIodCxnLHJbZ10pfWZ1bmN0aW9uIHNzKHQpe2lmKHQuaW5kZXhPZigiLSIpPT09LTEpcmV0dXJuITE7c3dpdGNoKHQpe2Nhc2UiYW5ub3RhdGlvbi14bWwiOmNhc2UiY29sb3ItcHJvZmlsZSI6Y2FzZSJmb250LWZhY2UiOmNhc2UiZm9udC1mYWNlLXNyYyI6Y2FzZSJmb250LWZhY2UtdXJpIjpjYXNlImZvbnQtZmFjZS1mb3JtYXQiOmNhc2UiZm9udC1mYWNlLW5hbWUiOmNhc2UibWlzc2luZy1nbHlwaCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19dmFyIEZDPW5ldyBNYXAoW1siYWNjZXB0Q2hhcnNldCIsImFjY2VwdC1jaGFyc2V0Il0sWyJodG1sRm9yIiwiZm9yIl0sWyJodHRwRXF1aXYiLCJodHRwLWVxdWl2Il0sWyJjcm9zc09yaWdpbiIsImNyb3Nzb3JpZ2luIl0sWyJhY2NlbnRIZWlnaHQiLCJhY2NlbnQtaGVpZ2h0Il0sWyJhbGlnbm1lbnRCYXNlbGluZSIsImFsaWdubWVudC1iYXNlbGluZSJdLFsiYXJhYmljRm9ybSIsImFyYWJpYy1mb3JtIl0sWyJiYXNlbGluZVNoaWZ0IiwiYmFzZWxpbmUtc2hpZnQiXSxbImNhcEhlaWdodCIsImNhcC1oZWlnaHQiXSxbImNsaXBQYXRoIiwiY2xpcC1wYXRoIl0sWyJjbGlwUnVsZSIsImNsaXAtcnVsZSJdLFsiY29sb3JJbnRlcnBvbGF0aW9uIiwiY29sb3ItaW50ZXJwb2xhdGlvbiJdLFsiY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVycyIsImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyJdLFsiY29sb3JQcm9maWxlIiwiY29sb3ItcHJvZmlsZSJdLFsiY29sb3JSZW5kZXJpbmciLCJjb2xvci1yZW5kZXJpbmciXSxbImRvbWluYW50QmFzZWxpbmUiLCJkb21pbmFudC1iYXNlbGluZSJdLFsiZW5hYmxlQmFja2dyb3VuZCIsImVuYWJsZS1iYWNrZ3JvdW5kIl0sWyJmaWxsT3BhY2l0eSIsImZpbGwtb3BhY2l0eSJdLFsiZmlsbFJ1bGUiLCJmaWxsLXJ1bGUiXSxbImZsb29kQ29sb3IiLCJmbG9vZC1jb2xvciJdLFsiZmxvb2RPcGFjaXR5IiwiZmxvb2Qtb3BhY2l0eSJdLFsiZm9udEZhbWlseSIsImZvbnQtZmFtaWx5Il0sWyJmb250U2l6ZSIsImZvbnQtc2l6ZSJdLFsiZm9udFNpemVBZGp1c3QiLCJmb250LXNpemUtYWRqdXN0Il0sWyJmb250U3RyZXRjaCIsImZvbnQtc3RyZXRjaCJdLFsiZm9udFN0eWxlIiwiZm9udC1zdHlsZSJdLFsiZm9udFZhcmlhbnQiLCJmb250LXZhcmlhbnQiXSxbImZvbnRXZWlnaHQiLCJmb250LXdlaWdodCJdLFsiZ2x5cGhOYW1lIiwiZ2x5cGgtbmFtZSJdLFsiZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwiLCJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIl0sWyJnbHlwaE9yaWVudGF0aW9uVmVydGljYWwiLCJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCJdLFsiaG9yaXpBZHZYIiwiaG9yaXotYWR2LXgiXSxbImhvcml6T3JpZ2luWCIsImhvcml6LW9yaWdpbi14Il0sWyJpbWFnZVJlbmRlcmluZyIsImltYWdlLXJlbmRlcmluZyJdLFsibGV0dGVyU3BhY2luZyIsImxldHRlci1zcGFjaW5nIl0sWyJsaWdodGluZ0NvbG9yIiwibGlnaHRpbmctY29sb3IiXSxbIm1hcmtlckVuZCIsIm1hcmtlci1lbmQiXSxbIm1hcmtlck1pZCIsIm1hcmtlci1taWQiXSxbIm1hcmtlclN0YXJ0IiwibWFya2VyLXN0YXJ0Il0sWyJvdmVybGluZVBvc2l0aW9uIiwib3ZlcmxpbmUtcG9zaXRpb24iXSxbIm92ZXJsaW5lVGhpY2tuZXNzIiwib3ZlcmxpbmUtdGhpY2tuZXNzIl0sWyJwYWludE9yZGVyIiwicGFpbnQtb3JkZXIiXSxbInBhbm9zZS0xIiwicGFub3NlLTEiXSxbInBvaW50ZXJFdmVudHMiLCJwb2ludGVyLWV2ZW50cyJdLFsicmVuZGVyaW5nSW50ZW50IiwicmVuZGVyaW5nLWludGVudCJdLFsic2hhcGVSZW5kZXJpbmciLCJzaGFwZS1yZW5kZXJpbmciXSxbInN0b3BDb2xvciIsInN0b3AtY29sb3IiXSxbInN0b3BPcGFjaXR5Iiwic3RvcC1vcGFjaXR5Il0sWyJzdHJpa2V0aHJvdWdoUG9zaXRpb24iLCJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIl0sWyJzdHJpa2V0aHJvdWdoVGhpY2tuZXNzIiwic3RyaWtldGhyb3VnaC10aGlja25lc3MiXSxbInN0cm9rZURhc2hhcnJheSIsInN0cm9rZS1kYXNoYXJyYXkiXSxbInN0cm9rZURhc2hvZmZzZXQiLCJzdHJva2UtZGFzaG9mZnNldCJdLFsic3Ryb2tlTGluZWNhcCIsInN0cm9rZS1saW5lY2FwIl0sWyJzdHJva2VMaW5lam9pbiIsInN0cm9rZS1saW5lam9pbiJdLFsic3Ryb2tlTWl0ZXJsaW1pdCIsInN0cm9rZS1taXRlcmxpbWl0Il0sWyJzdHJva2VPcGFjaXR5Iiwic3Ryb2tlLW9wYWNpdHkiXSxbInN0cm9rZVdpZHRoIiwic3Ryb2tlLXdpZHRoIl0sWyJ0ZXh0QW5jaG9yIiwidGV4dC1hbmNob3IiXSxbInRleHREZWNvcmF0aW9uIiwidGV4dC1kZWNvcmF0aW9uIl0sWyJ0ZXh0UmVuZGVyaW5nIiwidGV4dC1yZW5kZXJpbmciXSxbInRyYW5zZm9ybU9yaWdpbiIsInRyYW5zZm9ybS1vcmlnaW4iXSxbInVuZGVybGluZVBvc2l0aW9uIiwidW5kZXJsaW5lLXBvc2l0aW9uIl0sWyJ1bmRlcmxpbmVUaGlja25lc3MiLCJ1bmRlcmxpbmUtdGhpY2tuZXNzIl0sWyJ1bmljb2RlQmlkaSIsInVuaWNvZGUtYmlkaSJdLFsidW5pY29kZVJhbmdlIiwidW5pY29kZS1yYW5nZSJdLFsidW5pdHNQZXJFbSIsInVuaXRzLXBlci1lbSJdLFsidkFscGhhYmV0aWMiLCJ2LWFscGhhYmV0aWMiXSxbInZIYW5naW5nIiwidi1oYW5naW5nIl0sWyJ2SWRlb2dyYXBoaWMiLCJ2LWlkZW9ncmFwaGljIl0sWyJ2TWF0aGVtYXRpY2FsIiwidi1tYXRoZW1hdGljYWwiXSxbInZlY3RvckVmZmVjdCIsInZlY3Rvci1lZmZlY3QiXSxbInZlcnRBZHZZIiwidmVydC1hZHYteSJdLFsidmVydE9yaWdpblgiLCJ2ZXJ0LW9yaWdpbi14Il0sWyJ2ZXJ0T3JpZ2luWSIsInZlcnQtb3JpZ2luLXkiXSxbIndvcmRTcGFjaW5nIiwid29yZC1zcGFjaW5nIl0sWyJ3cml0aW5nTW9kZSIsIndyaXRpbmctbW9kZSJdLFsieG1sbnNYbGluayIsInhtbG5zOnhsaW5rIl0sWyJ4SGVpZ2h0IiwieC1oZWlnaHQiXV0pLEJDPS9eW1x1MDAwMC1cdTAwMUYgXSpqW1xyXG5cdF0qYVtcclxuXHRdKnZbXHJcblx0XSphW1xyXG5cdF0qc1tcclxuXHRdKmNbXHJcblx0XSpyW1xyXG5cdF0qaVtcclxuXHRdKnBbXHJcblx0XSp0W1xyXG5cdF0qOi9pO2Z1bmN0aW9uIGhvKHQpe3JldHVybiBCQy50ZXN0KCIiK3QpPyJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignUmVhY3QgaGFzIGJsb2NrZWQgYSBqYXZhc2NyaXB0OiBVUkwgYXMgYSBzZWN1cml0eSBwcmVjYXV0aW9uLicpIjp0fWZ1bmN0aW9uIGpuKCl7fXZhciB1cz1udWxsO2Z1bmN0aW9uIGNzKHQpe3JldHVybiB0PXQudGFyZ2V0fHx0LnNyY0VsZW1lbnR8fHdpbmRvdyx0LmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYodD10LmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KSx0Lm5vZGVUeXBlPT09Mz90LnBhcmVudE5vZGU6dH12YXIgaGE9bnVsbCxiYT1udWxsO2Z1bmN0aW9uIEtiKHQpe3ZhciByPWRhKHQpO2lmKHImJih0PXIuc3RhdGVOb2RlKSl7dmFyIG89dFtEdF18fG51bGw7ZTpzd2l0Y2godD1yLnN0YXRlTm9kZSxyLnR5cGUpe2Nhc2UiaW5wdXQiOmlmKG9zKHQsby52YWx1ZSxvLmRlZmF1bHRWYWx1ZSxvLmRlZmF1bHRWYWx1ZSxvLmNoZWNrZWQsby5kZWZhdWx0Q2hlY2tlZCxvLnR5cGUsby5uYW1lKSxyPW8ubmFtZSxvLnR5cGU9PT0icmFkaW8iJiZyIT1udWxsKXtmb3Iobz10O28ucGFyZW50Tm9kZTspbz1vLnBhcmVudE5vZGU7Zm9yKG89by5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPSInK3NuKCIiK3IpKyciXVt0eXBlPSJyYWRpbyJdJykscj0wO3I8by5sZW5ndGg7cisrKXt2YXIgcz1vW3JdO2lmKHMhPT10JiZzLmZvcm09PT10LmZvcm0pe3ZhciBwPXNbRHRdfHxudWxsO2lmKCFwKXRocm93IEVycm9yKGkoOTApKTtvcyhzLHAudmFsdWUscC5kZWZhdWx0VmFsdWUscC5kZWZhdWx0VmFsdWUscC5jaGVja2VkLHAuZGVmYXVsdENoZWNrZWQscC50eXBlLHAubmFtZSl9fWZvcihyPTA7cjxvLmxlbmd0aDtyKyspcz1vW3JdLHMuZm9ybT09PXQuZm9ybSYmUGIocyl9YnJlYWsgZTtjYXNlInRleHRhcmVhIjpIYih0LG8udmFsdWUsby5kZWZhdWx0VmFsdWUpO2JyZWFrIGU7Y2FzZSJzZWxlY3QiOnI9by52YWx1ZSxyIT1udWxsJiZnYSh0LCEhby5tdWx0aXBsZSxyLCExKX19fXZhciBkcz0hMTtmdW5jdGlvbiBXYih0LHIsbyl7aWYoZHMpcmV0dXJuIHQocixvKTtkcz0hMDt0cnl7dmFyIHM9dChyKTtyZXR1cm4gc31maW5hbGx5e2lmKGRzPSExLChoYSE9PW51bGx8fGJhIT09bnVsbCkmJihybCgpLGhhJiYocj1oYSx0PWJhLGJhPWhhPW51bGwsS2IociksdCkpKWZvcihyPTA7cjx0Lmxlbmd0aDtyKyspS2IodFtyXSl9fWZ1bmN0aW9uIHNpKHQscil7dmFyIG89dC5zdGF0ZU5vZGU7aWYobz09PW51bGwpcmV0dXJuIG51bGw7dmFyIHM9b1tEdF18fG51bGw7aWYocz09PW51bGwpcmV0dXJuIG51bGw7bz1zW3JdO2U6c3dpdGNoKHIpe2Nhc2Uib25DbGljayI6Y2FzZSJvbkNsaWNrQ2FwdHVyZSI6Y2FzZSJvbkRvdWJsZUNsaWNrIjpjYXNlIm9uRG91YmxlQ2xpY2tDYXB0dXJlIjpjYXNlIm9uTW91c2VEb3duIjpjYXNlIm9uTW91c2VEb3duQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlTW92ZSI6Y2FzZSJvbk1vdXNlTW92ZUNhcHR1cmUiOmNhc2Uib25Nb3VzZVVwIjpjYXNlIm9uTW91c2VVcENhcHR1cmUiOmNhc2Uib25Nb3VzZUVudGVyIjoocz0hcy5kaXNhYmxlZCl8fCh0PXQudHlwZSxzPSEodD09PSJidXR0b24ifHx0PT09ImlucHV0Inx8dD09PSJzZWxlY3QifHx0PT09InRleHRhcmVhIikpLHQ9IXM7YnJlYWsgZTtkZWZhdWx0OnQ9ITF9aWYodClyZXR1cm4gbnVsbDtpZihvJiZ0eXBlb2YgbyE9ImZ1bmN0aW9uIil0aHJvdyBFcnJvcihpKDIzMSxyLHR5cGVvZiBvKSk7cmV0dXJuIG99dmFyIHpuPSEodHlwZW9mIHdpbmRvdz4idSJ8fHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQ+InUifHx0eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQ+InUiKSxwcz0hMTtpZih6bil0cnl7dmFyIHVpPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1aSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe3BzPSEwfX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0Iix1aSx1aSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLHVpLHVpKX1jYXRjaHtwcz0hMX12YXIgb3I9bnVsbCxmcz1udWxsLGJvPW51bGw7ZnVuY3Rpb24gWGIoKXtpZihibylyZXR1cm4gYm87dmFyIHQscj1mcyxvPXIubGVuZ3RoLHMscD0idmFsdWUiaW4gb3I/b3IudmFsdWU6b3IudGV4dENvbnRlbnQsZz1wLmxlbmd0aDtmb3IodD0wO3Q8byYmclt0XT09PXBbdF07dCsrKTt2YXIgdj1vLXQ7Zm9yKHM9MTtzPD12JiZyW28tc109PT1wW2ctc107cysrKTtyZXR1cm4gYm89cC5zbGljZSh0LDE8cz8xLXM6dm9pZCAwKX1mdW5jdGlvbiB5byh0KXt2YXIgcj10LmtleUNvZGU7cmV0dXJuImNoYXJDb2RlImluIHQ/KHQ9dC5jaGFyQ29kZSx0PT09MCYmcj09PTEzJiYodD0xMykpOnQ9cix0PT09MTAmJih0PTEzKSwzMjw9dHx8dD09PTEzP3Q6MH1mdW5jdGlvbiBFbygpe3JldHVybiEwfWZ1bmN0aW9uIFpiKCl7cmV0dXJuITF9ZnVuY3Rpb24gTXQodCl7ZnVuY3Rpb24gcihvLHMscCxnLHYpe3RoaXMuX3JlYWN0TmFtZT1vLHRoaXMuX3RhcmdldEluc3Q9cCx0aGlzLnR5cGU9cyx0aGlzLm5hdGl2ZUV2ZW50PWcsdGhpcy50YXJnZXQ9dix0aGlzLmN1cnJlbnRUYXJnZXQ9bnVsbDtmb3IodmFyIEEgaW4gdCl0Lmhhc093blByb3BlcnR5KEEpJiYobz10W0FdLHRoaXNbQV09bz9vKGcpOmdbQV0pO3JldHVybiB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0oZy5kZWZhdWx0UHJldmVudGVkIT1udWxsP2cuZGVmYXVsdFByZXZlbnRlZDpnLnJldHVyblZhbHVlPT09ITEpP0VvOlpiLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9WmIsdGhpc31yZXR1cm4gaChyLnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIG89dGhpcy5uYXRpdmVFdmVudDtvJiYoby5wcmV2ZW50RGVmYXVsdD9vLnByZXZlbnREZWZhdWx0KCk6dHlwZW9mIG8ucmV0dXJuVmFsdWUhPSJ1bmtub3duIiYmKG8ucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPUVvKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIG89dGhpcy5uYXRpdmVFdmVudDtvJiYoby5zdG9wUHJvcGFnYXRpb24/by5zdG9wUHJvcGFnYXRpb24oKTp0eXBlb2Ygby5jYW5jZWxCdWJibGUhPSJ1bmtub3duIiYmKG8uY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPUVvKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50OkVvfSkscn12YXIganI9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbih0KXtyZXR1cm4gdC50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sU289TXQoanIpLGNpPWgoe30sanIse3ZpZXc6MCxkZXRhaWw6MH0pLGpDPU10KGNpKSxncyxtcyxkaSx2bz1oKHt9LGNpLHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOmJzLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbGF0ZWRUYXJnZXQ9PT12b2lkIDA/dC5mcm9tRWxlbWVudD09PXQuc3JjRWxlbWVudD90LnRvRWxlbWVudDp0LmZyb21FbGVtZW50OnQucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKHQpe3JldHVybiJtb3ZlbWVudFgiaW4gdD90Lm1vdmVtZW50WDoodCE9PWRpJiYoZGkmJnQudHlwZT09PSJtb3VzZW1vdmUiPyhncz10LnNjcmVlblgtZGkuc2NyZWVuWCxtcz10LnNjcmVlblktZGkuc2NyZWVuWSk6bXM9Z3M9MCxkaT10KSxncyl9LG1vdmVtZW50WTpmdW5jdGlvbih0KXtyZXR1cm4ibW92ZW1lbnRZImluIHQ/dC5tb3ZlbWVudFk6bXN9fSksUWI9TXQodm8pLHpDPWgoe30sdm8se2RhdGFUcmFuc2ZlcjowfSkscUM9TXQoekMpLFBDPWgoe30sY2kse3JlbGF0ZWRUYXJnZXQ6MH0pLGhzPU10KFBDKSxHQz1oKHt9LGpyLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxIQz1NdChHQyksJEM9aCh7fSxqcix7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbih0KXtyZXR1cm4iY2xpcGJvYXJkRGF0YSJpbiB0P3QuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSxWQz1NdCgkQyksWUM9aCh7fSxqcix7ZGF0YTowfSksSmI9TXQoWUMpLEtDPXtFc2M6IkVzY2FwZSIsU3BhY2ViYXI6IiAiLExlZnQ6IkFycm93TGVmdCIsVXA6IkFycm93VXAiLFJpZ2h0OiJBcnJvd1JpZ2h0IixEb3duOiJBcnJvd0Rvd24iLERlbDoiRGVsZXRlIixXaW46Ik9TIixNZW51OiJDb250ZXh0TWVudSIsQXBwczoiQ29udGV4dE1lbnUiLFNjcm9sbDoiU2Nyb2xsTG9jayIsTW96UHJpbnRhYmxlS2V5OiJVbmlkZW50aWZpZWQifSxXQz17ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEyOiJDbGVhciIsMTM6IkVudGVyIiwxNjoiU2hpZnQiLDE3OiJDb250cm9sIiwxODoiQWx0IiwxOToiUGF1c2UiLDIwOiJDYXBzTG9jayIsMjc6IkVzY2FwZSIsMzI6IiAiLDMzOiJQYWdlVXAiLDM0OiJQYWdlRG93biIsMzU6IkVuZCIsMzY6IkhvbWUiLDM3OiJBcnJvd0xlZnQiLDM4OiJBcnJvd1VwIiwzOToiQXJyb3dSaWdodCIsNDA6IkFycm93RG93biIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsMTEyOiJGMSIsMTEzOiJGMiIsMTE0OiJGMyIsMTE1OiJGNCIsMTE2OiJGNSIsMTE3OiJGNiIsMTE4OiJGNyIsMTE5OiJGOCIsMTIwOiJGOSIsMTIxOiJGMTAiLDEyMjoiRjExIiwxMjM6IkYxMiIsMTQ0OiJOdW1Mb2NrIiwxNDU6IlNjcm9sbExvY2siLDIyNDoiTWV0YSJ9LFhDPXtBbHQ6ImFsdEtleSIsQ29udHJvbDoiY3RybEtleSIsTWV0YToibWV0YUtleSIsU2hpZnQ6InNoaWZ0S2V5In07ZnVuY3Rpb24gWkModCl7dmFyIHI9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gci5nZXRNb2RpZmllclN0YXRlP3IuZ2V0TW9kaWZpZXJTdGF0ZSh0KToodD1YQ1t0XSk/ISFyW3RdOiExfWZ1bmN0aW9uIGJzKCl7cmV0dXJuIFpDfXZhciBRQz1oKHt9LGNpLHtrZXk6ZnVuY3Rpb24odCl7aWYodC5rZXkpe3ZhciByPUtDW3Qua2V5XXx8dC5rZXk7aWYociE9PSJVbmlkZW50aWZpZWQiKXJldHVybiByfXJldHVybiB0LnR5cGU9PT0ia2V5cHJlc3MiPyh0PXlvKHQpLHQ9PT0xMz8iRW50ZXIiOlN0cmluZy5mcm9tQ2hhckNvZGUodCkpOnQudHlwZT09PSJrZXlkb3duInx8dC50eXBlPT09ImtleXVwIj9XQ1t0LmtleUNvZGVdfHwiVW5pZGVudGlmaWVkIjoiIn0sY29kZTowLGxvY2F0aW9uOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLHJlcGVhdDowLGxvY2FsZTowLGdldE1vZGlmaWVyU3RhdGU6YnMsY2hhckNvZGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PSJrZXlwcmVzcyI/eW8odCk6MH0sa2V5Q29kZTpmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlPT09ImtleWRvd24ifHx0LnR5cGU9PT0ia2V5dXAiP3Qua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlPT09ImtleXByZXNzIj95byh0KTp0LnR5cGU9PT0ia2V5ZG93biJ8fHQudHlwZT09PSJrZXl1cCI/dC5rZXlDb2RlOjB9fSksSkM9TXQoUUMpLGVJPWgoe30sdm8se3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSksZXk9TXQoZUkpLHRJPWgoe30sY2kse3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpic30pLG5JPU10KHRJKSxyST1oKHt9LGpyLHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pLGFJPU10KHJJKSxpST1oKHt9LHZvLHtkZWx0YVg6ZnVuY3Rpb24odCl7cmV0dXJuImRlbHRhWCJpbiB0P3QuZGVsdGFYOiJ3aGVlbERlbHRhWCJpbiB0Py10LndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbih0KXtyZXR1cm4iZGVsdGFZImluIHQ/dC5kZWx0YVk6IndoZWVsRGVsdGFZImluIHQ/LXQud2hlZWxEZWx0YVk6IndoZWVsRGVsdGEiaW4gdD8tdC53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSksb0k9TXQoaUkpLGxJPWgoe30sanIse25ld1N0YXRlOjAsb2xkU3RhdGU6MH0pLHNJPU10KGxJKSx1ST1bOSwxMywyNywzMl0seXM9em4mJiJDb21wb3NpdGlvbkV2ZW50ImluIHdpbmRvdyxwaT1udWxsO3puJiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYocGk9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIgY0k9em4mJiJUZXh0RXZlbnQiaW4gd2luZG93JiYhcGksdHk9em4mJigheXN8fHBpJiY4PHBpJiYxMT49cGkpLG55PSIgIixyeT0hMTtmdW5jdGlvbiBheSh0LHIpe3N3aXRjaCh0KXtjYXNlImtleXVwIjpyZXR1cm4gdUkuaW5kZXhPZihyLmtleUNvZGUpIT09LTE7Y2FzZSJrZXlkb3duIjpyZXR1cm4gci5rZXlDb2RlIT09MjI5O2Nhc2Uia2V5cHJlc3MiOmNhc2UibW91c2Vkb3duIjpjYXNlImZvY3Vzb3V0IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBpeSh0KXtyZXR1cm4gdD10LmRldGFpbCx0eXBlb2YgdD09Im9iamVjdCImJiJkYXRhImluIHQ/dC5kYXRhOm51bGx9dmFyIHlhPSExO2Z1bmN0aW9uIGRJKHQscil7c3dpdGNoKHQpe2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBpeShyKTtjYXNlImtleXByZXNzIjpyZXR1cm4gci53aGljaCE9PTMyP251bGw6KHJ5PSEwLG55KTtjYXNlInRleHRJbnB1dCI6cmV0dXJuIHQ9ci5kYXRhLHQ9PT1ueSYmcnk/bnVsbDp0O2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHBJKHQscil7aWYoeWEpcmV0dXJuIHQ9PT0iY29tcG9zaXRpb25lbmQifHwheXMmJmF5KHQscik/KHQ9WGIoKSxibz1mcz1vcj1udWxsLHlhPSExLHQpOm51bGw7c3dpdGNoKHQpe2Nhc2UicGFzdGUiOnJldHVybiBudWxsO2Nhc2Uia2V5cHJlc3MiOmlmKCEoci5jdHJsS2V5fHxyLmFsdEtleXx8ci5tZXRhS2V5KXx8ci5jdHJsS2V5JiZyLmFsdEtleSl7aWYoci5jaGFyJiYxPHIuY2hhci5sZW5ndGgpcmV0dXJuIHIuY2hhcjtpZihyLndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHIud2hpY2gpfXJldHVybiBudWxsO2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiB0eSYmci5sb2NhbGUhPT0ia28iP251bGw6ci5kYXRhO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXZhciBmST17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCwiZGF0ZXRpbWUtbG9jYWwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gb3kodCl7dmFyIHI9dCYmdC5ub2RlTmFtZSYmdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiByPT09ImlucHV0Ij8hIWZJW3QudHlwZV06cj09PSJ0ZXh0YXJlYSJ9ZnVuY3Rpb24gbHkodCxyLG8scyl7aGE/YmE/YmEucHVzaChzKTpiYT1bc106aGE9cyxyPWNsKHIsIm9uQ2hhbmdlIiksMDxyLmxlbmd0aCYmKG89bmV3IFNvKCJvbkNoYW5nZSIsImNoYW5nZSIsbnVsbCxvLHMpLHQucHVzaCh7ZXZlbnQ6byxsaXN0ZW5lcnM6cn0pKX12YXIgZmk9bnVsbCxnaT1udWxsO2Z1bmN0aW9uIGdJKHQpe0dTKHQsMCl9ZnVuY3Rpb24gVG8odCl7dmFyIHI9bGkodCk7aWYoUGIocikpcmV0dXJuIHR9ZnVuY3Rpb24gc3kodCxyKXtpZih0PT09ImNoYW5nZSIpcmV0dXJuIHJ9dmFyIHV5PSExO2lmKHpuKXt2YXIgRXM7aWYoem4pe3ZhciBTcz0ib25pbnB1dCJpbiBkb2N1bWVudDtpZighU3Mpe3ZhciBjeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjeS5zZXRBdHRyaWJ1dGUoIm9uaW5wdXQiLCJyZXR1cm47IiksU3M9dHlwZW9mIGN5Lm9uaW5wdXQ9PSJmdW5jdGlvbiJ9RXM9U3N9ZWxzZSBFcz0hMTt1eT1FcyYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKX1mdW5jdGlvbiBkeSgpe2ZpJiYoZmkuZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLHB5KSxnaT1maT1udWxsKX1mdW5jdGlvbiBweSh0KXtpZih0LnByb3BlcnR5TmFtZT09PSJ2YWx1ZSImJlRvKGdpKSl7dmFyIHI9W107bHkocixnaSx0LGNzKHQpKSxXYihnSSxyKX19ZnVuY3Rpb24gbUkodCxyLG8pe3Q9PT0iZm9jdXNpbiI/KGR5KCksZmk9cixnaT1vLGZpLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixweSkpOnQ9PT0iZm9jdXNvdXQiJiZkeSgpfWZ1bmN0aW9uIGhJKHQpe2lmKHQ9PT0ic2VsZWN0aW9uY2hhbmdlInx8dD09PSJrZXl1cCJ8fHQ9PT0ia2V5ZG93biIpcmV0dXJuIFRvKGdpKX1mdW5jdGlvbiBiSSh0LHIpe2lmKHQ9PT0iY2xpY2siKXJldHVybiBUbyhyKX1mdW5jdGlvbiB5SSh0LHIpe2lmKHQ9PT0iaW5wdXQifHx0PT09ImNoYW5nZSIpcmV0dXJuIFRvKHIpfWZ1bmN0aW9uIEVJKHQscil7cmV0dXJuIHQ9PT1yJiYodCE9PTB8fDEvdD09PTEvcil8fHQhPT10JiZyIT09cn12YXIgVnQ9dHlwZW9mIE9iamVjdC5pcz09ImZ1bmN0aW9uIj9PYmplY3QuaXM6RUk7ZnVuY3Rpb24gbWkodCxyKXtpZihWdCh0LHIpKXJldHVybiEwO2lmKHR5cGVvZiB0IT0ib2JqZWN0Inx8dD09PW51bGx8fHR5cGVvZiByIT0ib2JqZWN0Inx8cj09PW51bGwpcmV0dXJuITE7dmFyIG89T2JqZWN0LmtleXModCkscz1PYmplY3Qua2V5cyhyKTtpZihvLmxlbmd0aCE9PXMubGVuZ3RoKXJldHVybiExO2ZvcihzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBwPW9bc107aWYoIVVuLmNhbGwocixwKXx8IVZ0KHRbcF0scltwXSkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gZnkodCl7Zm9yKDt0JiZ0LmZpcnN0Q2hpbGQ7KXQ9dC5maXJzdENoaWxkO3JldHVybiB0fWZ1bmN0aW9uIGd5KHQscil7dmFyIG89ZnkodCk7dD0wO2Zvcih2YXIgcztvOyl7aWYoby5ub2RlVHlwZT09PTMpe2lmKHM9dCtvLnRleHRDb250ZW50Lmxlbmd0aCx0PD1yJiZzPj1yKXJldHVybntub2RlOm8sb2Zmc2V0OnItdH07dD1zfWU6e2Zvcig7bzspe2lmKG8ubmV4dFNpYmxpbmcpe289by5uZXh0U2libGluZzticmVhayBlfW89by5wYXJlbnROb2RlfW89dm9pZCAwfW89Znkobyl9fWZ1bmN0aW9uIG15KHQscil7cmV0dXJuIHQmJnI/dD09PXI/ITA6dCYmdC5ub2RlVHlwZT09PTM/ITE6ciYmci5ub2RlVHlwZT09PTM/bXkodCxyLnBhcmVudE5vZGUpOiJjb250YWlucyJpbiB0P3QuY29udGFpbnMocik6dC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8hISh0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpJjE2KTohMTohMX1mdW5jdGlvbiBoeSh0KXt0PXQhPW51bGwmJnQub3duZXJEb2N1bWVudCE9bnVsbCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IT1udWxsP3Qub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldzp3aW5kb3c7Zm9yKHZhciByPW1vKHQuZG9jdW1lbnQpO3IgaW5zdGFuY2VvZiB0LkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciBvPXR5cGVvZiByLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZj09InN0cmluZyJ9Y2F0Y2h7bz0hMX1pZihvKXQ9ci5jb250ZW50V2luZG93O2Vsc2UgYnJlYWs7cj1tbyh0LmRvY3VtZW50KX1yZXR1cm4gcn1mdW5jdGlvbiB2cyh0KXt2YXIgcj10JiZ0Lm5vZGVOYW1lJiZ0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHImJihyPT09ImlucHV0IiYmKHQudHlwZT09PSJ0ZXh0Inx8dC50eXBlPT09InNlYXJjaCJ8fHQudHlwZT09PSJ0ZWwifHx0LnR5cGU9PT0idXJsInx8dC50eXBlPT09InBhc3N3b3JkIil8fHI9PT0idGV4dGFyZWEifHx0LmNvbnRlbnRFZGl0YWJsZT09PSJ0cnVlIil9dmFyIFNJPXpuJiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLEVhPW51bGwsVHM9bnVsbCxoaT1udWxsLHhzPSExO2Z1bmN0aW9uIGJ5KHQscixvKXt2YXIgcz1vLndpbmRvdz09PW8/by5kb2N1bWVudDpvLm5vZGVUeXBlPT09OT9vOm8ub3duZXJEb2N1bWVudDt4c3x8RWE9PW51bGx8fEVhIT09bW8ocyl8fChzPUVhLCJzZWxlY3Rpb25TdGFydCJpbiBzJiZ2cyhzKT9zPXtzdGFydDpzLnNlbGVjdGlvblN0YXJ0LGVuZDpzLnNlbGVjdGlvbkVuZH06KHM9KHMub3duZXJEb2N1bWVudCYmcy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpLHM9e2FuY2hvck5vZGU6cy5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpzLmFuY2hvck9mZnNldCxmb2N1c05vZGU6cy5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6cy5mb2N1c09mZnNldH0pLGhpJiZtaShoaSxzKXx8KGhpPXMscz1jbChUcywib25TZWxlY3QiKSwwPHMubGVuZ3RoJiYocj1uZXcgU28oIm9uU2VsZWN0Iiwic2VsZWN0IixudWxsLHIsbyksdC5wdXNoKHtldmVudDpyLGxpc3RlbmVyczpzfSksci50YXJnZXQ9RWEpKSl9ZnVuY3Rpb24genIodCxyKXt2YXIgbz17fTtyZXR1cm4gb1t0LnRvTG93ZXJDYXNlKCldPXIudG9Mb3dlckNhc2UoKSxvWyJXZWJraXQiK3RdPSJ3ZWJraXQiK3Isb1siTW96Iit0XT0ibW96IityLG99dmFyIFNhPXthbmltYXRpb25lbmQ6enIoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkVuZCIpLGFuaW1hdGlvbml0ZXJhdGlvbjp6cigiQW5pbWF0aW9uIiwiQW5pbWF0aW9uSXRlcmF0aW9uIiksYW5pbWF0aW9uc3RhcnQ6enIoIkFuaW1hdGlvbiIsIkFuaW1hdGlvblN0YXJ0IiksdHJhbnNpdGlvbnJ1bjp6cigiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25SdW4iKSx0cmFuc2l0aW9uc3RhcnQ6enIoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uU3RhcnQiKSx0cmFuc2l0aW9uY2FuY2VsOnpyKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvbkNhbmNlbCIpLHRyYW5zaXRpb25lbmQ6enIoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uRW5kIil9LEFzPXt9LHl5PXt9O3puJiYoeXk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsIkFuaW1hdGlvbkV2ZW50ImluIHdpbmRvd3x8KGRlbGV0ZSBTYS5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBTYS5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBTYS5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLCJUcmFuc2l0aW9uRXZlbnQiaW4gd2luZG93fHxkZWxldGUgU2EudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTtmdW5jdGlvbiBxcih0KXtpZihBc1t0XSlyZXR1cm4gQXNbdF07aWYoIVNhW3RdKXJldHVybiB0O3ZhciByPVNhW3RdLG87Zm9yKG8gaW4gcilpZihyLmhhc093blByb3BlcnR5KG8pJiZvIGluIHl5KXJldHVybiBBc1t0XT1yW29dO3JldHVybiB0fXZhciBFeT1xcigiYW5pbWF0aW9uZW5kIiksU3k9cXIoImFuaW1hdGlvbml0ZXJhdGlvbiIpLHZ5PXFyKCJhbmltYXRpb25zdGFydCIpLHZJPXFyKCJ0cmFuc2l0aW9ucnVuIiksVEk9cXIoInRyYW5zaXRpb25zdGFydCIpLHhJPXFyKCJ0cmFuc2l0aW9uY2FuY2VsIiksVHk9cXIoInRyYW5zaXRpb25lbmQiKSx4eT1uZXcgTWFwLF9zPSJhYm9ydCBhdXhDbGljayBiZWZvcmVUb2dnbGUgY2FuY2VsIGNhblBsYXkgY2FuUGxheVRocm91Z2ggY2xpY2sgY2xvc2UgY29udGV4dE1lbnUgY29weSBjdXQgZHJhZyBkcmFnRW5kIGRyYWdFbnRlciBkcmFnRXhpdCBkcmFnTGVhdmUgZHJhZ092ZXIgZHJhZ1N0YXJ0IGRyb3AgZHVyYXRpb25DaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgZ290UG9pbnRlckNhcHR1cmUgaW5wdXQgaW52YWxpZCBrZXlEb3duIGtleVByZXNzIGtleVVwIGxvYWQgbG9hZGVkRGF0YSBsb2FkZWRNZXRhZGF0YSBsb2FkU3RhcnQgbG9zdFBvaW50ZXJDYXB0dXJlIG1vdXNlRG93biBtb3VzZU1vdmUgbW91c2VPdXQgbW91c2VPdmVyIG1vdXNlVXAgcGFzdGUgcGF1c2UgcGxheSBwbGF5aW5nIHBvaW50ZXJDYW5jZWwgcG9pbnRlckRvd24gcG9pbnRlck1vdmUgcG9pbnRlck91dCBwb2ludGVyT3ZlciBwb2ludGVyVXAgcHJvZ3Jlc3MgcmF0ZUNoYW5nZSByZXNldCByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdWJtaXQgc3VzcGVuZCB0aW1lVXBkYXRlIHRvdWNoQ2FuY2VsIHRvdWNoRW5kIHRvdWNoU3RhcnQgdm9sdW1lQ2hhbmdlIHNjcm9sbCB0b2dnbGUgdG91Y2hNb3ZlIHdhaXRpbmcgd2hlZWwiLnNwbGl0KCIgIik7X3MucHVzaCgic2Nyb2xsRW5kIik7ZnVuY3Rpb24gdm4odCxyKXt4eS5zZXQodCxyKSxCcihyLFt0XSl9dmFyIHhvPXR5cGVvZiByZXBvcnRFcnJvcj09ImZ1bmN0aW9uIj9yZXBvcnRFcnJvcjpmdW5jdGlvbih0KXtpZih0eXBlb2Ygd2luZG93PT0ib2JqZWN0IiYmdHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50PT0iZnVuY3Rpb24iKXt2YXIgcj1uZXcgd2luZG93LkVycm9yRXZlbnQoImVycm9yIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6dHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbCYmdHlwZW9mIHQubWVzc2FnZT09InN0cmluZyI/U3RyaW5nKHQubWVzc2FnZSk6U3RyaW5nKHQpLGVycm9yOnR9KTtpZighd2luZG93LmRpc3BhdGNoRXZlbnQocikpcmV0dXJufWVsc2UgaWYodHlwZW9mIHByb2Nlc3M9PSJvYmplY3QiJiZ0eXBlb2YgcHJvY2Vzcy5lbWl0PT0iZnVuY3Rpb24iKXtwcm9jZXNzLmVtaXQoInVuY2F1Z2h0RXhjZXB0aW9uIix0KTtyZXR1cm59Y29uc29sZS5lcnJvcih0KX0sdW49W10sdmE9MCxScz0wO2Z1bmN0aW9uIEFvKCl7Zm9yKHZhciB0PXZhLHI9UnM9dmE9MDtyPHQ7KXt2YXIgbz11bltyXTt1bltyKytdPW51bGw7dmFyIHM9dW5bcl07dW5bcisrXT1udWxsO3ZhciBwPXVuW3JdO3VuW3IrK109bnVsbDt2YXIgZz11bltyXTtpZih1bltyKytdPW51bGwscyE9PW51bGwmJnAhPT1udWxsKXt2YXIgdj1zLnBlbmRpbmc7dj09PW51bGw/cC5uZXh0PXA6KHAubmV4dD12Lm5leHQsdi5uZXh0PXApLHMucGVuZGluZz1wfWchPT0wJiZBeShvLHAsZyl9fWZ1bmN0aW9uIF9vKHQscixvLHMpe3VuW3ZhKytdPXQsdW5bdmErK109cix1blt2YSsrXT1vLHVuW3ZhKytdPXMsUnN8PXMsdC5sYW5lc3w9cyx0PXQuYWx0ZXJuYXRlLHQhPT1udWxsJiYodC5sYW5lc3w9cyl9ZnVuY3Rpb24gTnModCxyLG8scyl7cmV0dXJuIF9vKHQscixvLHMpLFJvKHQpfWZ1bmN0aW9uIFByKHQscil7cmV0dXJuIF9vKHQsbnVsbCxudWxsLHIpLFJvKHQpfWZ1bmN0aW9uIEF5KHQscixvKXt0LmxhbmVzfD1vO3ZhciBzPXQuYWx0ZXJuYXRlO3MhPT1udWxsJiYocy5sYW5lc3w9byk7Zm9yKHZhciBwPSExLGc9dC5yZXR1cm47ZyE9PW51bGw7KWcuY2hpbGRMYW5lc3w9byxzPWcuYWx0ZXJuYXRlLHMhPT1udWxsJiYocy5jaGlsZExhbmVzfD1vKSxnLnRhZz09PTIyJiYodD1nLnN0YXRlTm9kZSx0PT09bnVsbHx8dC5fdmlzaWJpbGl0eSYxfHwocD0hMCkpLHQ9ZyxnPWcucmV0dXJuO3JldHVybiB0LnRhZz09PTM/KGc9dC5zdGF0ZU5vZGUscCYmciE9PW51bGwmJihwPTMxLUJlKG8pLHQ9Zy5oaWRkZW5VcGRhdGVzLHM9dFtwXSxzPT09bnVsbD90W3BdPVtyXTpzLnB1c2gociksci5sYW5lPW98NTM2ODcwOTEyKSxnKTpudWxsfWZ1bmN0aW9uIFJvKHQpe2lmKDUwPEJpKXRocm93IEJpPTAsVXU9bnVsbCxFcnJvcihpKDE4NSkpO2Zvcih2YXIgcj10LnJldHVybjtyIT09bnVsbDspdD1yLHI9dC5yZXR1cm47cmV0dXJuIHQudGFnPT09Mz90LnN0YXRlTm9kZTpudWxsfXZhciBUYT17fTtmdW5jdGlvbiBBSSh0LHIsbyxzKXt0aGlzLnRhZz10LHRoaXMua2V5PW8sdGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbCx0aGlzLmluZGV4PTAsdGhpcy5yZWZDbGVhbnVwPXRoaXMucmVmPW51bGwsdGhpcy5wZW5kaW5nUHJvcHM9cix0aGlzLmRlcGVuZGVuY2llcz10aGlzLm1lbW9pemVkU3RhdGU9dGhpcy51cGRhdGVRdWV1ZT10aGlzLm1lbW9pemVkUHJvcHM9bnVsbCx0aGlzLm1vZGU9cyx0aGlzLnN1YnRyZWVGbGFncz10aGlzLmZsYWdzPTAsdGhpcy5kZWxldGlvbnM9bnVsbCx0aGlzLmNoaWxkTGFuZXM9dGhpcy5sYW5lcz0wLHRoaXMuYWx0ZXJuYXRlPW51bGx9ZnVuY3Rpb24gWXQodCxyLG8scyl7cmV0dXJuIG5ldyBBSSh0LHIsbyxzKX1mdW5jdGlvbiB3cyh0KXtyZXR1cm4gdD10LnByb3RvdHlwZSwhKCF0fHwhdC5pc1JlYWN0Q29tcG9uZW50KX1mdW5jdGlvbiBxbih0LHIpe3ZhciBvPXQuYWx0ZXJuYXRlO3JldHVybiBvPT09bnVsbD8obz1ZdCh0LnRhZyxyLHQua2V5LHQubW9kZSksby5lbGVtZW50VHlwZT10LmVsZW1lbnRUeXBlLG8udHlwZT10LnR5cGUsby5zdGF0ZU5vZGU9dC5zdGF0ZU5vZGUsby5hbHRlcm5hdGU9dCx0LmFsdGVybmF0ZT1vKTooby5wZW5kaW5nUHJvcHM9cixvLnR5cGU9dC50eXBlLG8uZmxhZ3M9MCxvLnN1YnRyZWVGbGFncz0wLG8uZGVsZXRpb25zPW51bGwpLG8uZmxhZ3M9dC5mbGFncyY2NTAxMTcxMixvLmNoaWxkTGFuZXM9dC5jaGlsZExhbmVzLG8ubGFuZXM9dC5sYW5lcyxvLmNoaWxkPXQuY2hpbGQsby5tZW1vaXplZFByb3BzPXQubWVtb2l6ZWRQcm9wcyxvLm1lbW9pemVkU3RhdGU9dC5tZW1vaXplZFN0YXRlLG8udXBkYXRlUXVldWU9dC51cGRhdGVRdWV1ZSxyPXQuZGVwZW5kZW5jaWVzLG8uZGVwZW5kZW5jaWVzPXI9PT1udWxsP251bGw6e2xhbmVzOnIubGFuZXMsZmlyc3RDb250ZXh0OnIuZmlyc3RDb250ZXh0fSxvLnNpYmxpbmc9dC5zaWJsaW5nLG8uaW5kZXg9dC5pbmRleCxvLnJlZj10LnJlZixvLnJlZkNsZWFudXA9dC5yZWZDbGVhbnVwLG99ZnVuY3Rpb24gX3kodCxyKXt0LmZsYWdzJj02NTAxMTcxNDt2YXIgbz10LmFsdGVybmF0ZTtyZXR1cm4gbz09PW51bGw/KHQuY2hpbGRMYW5lcz0wLHQubGFuZXM9cix0LmNoaWxkPW51bGwsdC5zdWJ0cmVlRmxhZ3M9MCx0Lm1lbW9pemVkUHJvcHM9bnVsbCx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LnVwZGF0ZVF1ZXVlPW51bGwsdC5kZXBlbmRlbmNpZXM9bnVsbCx0LnN0YXRlTm9kZT1udWxsKToodC5jaGlsZExhbmVzPW8uY2hpbGRMYW5lcyx0LmxhbmVzPW8ubGFuZXMsdC5jaGlsZD1vLmNoaWxkLHQuc3VidHJlZUZsYWdzPTAsdC5kZWxldGlvbnM9bnVsbCx0Lm1lbW9pemVkUHJvcHM9by5tZW1vaXplZFByb3BzLHQubWVtb2l6ZWRTdGF0ZT1vLm1lbW9pemVkU3RhdGUsdC51cGRhdGVRdWV1ZT1vLnVwZGF0ZVF1ZXVlLHQudHlwZT1vLnR5cGUscj1vLmRlcGVuZGVuY2llcyx0LmRlcGVuZGVuY2llcz1yPT09bnVsbD9udWxsOntsYW5lczpyLmxhbmVzLGZpcnN0Q29udGV4dDpyLmZpcnN0Q29udGV4dH0pLHR9ZnVuY3Rpb24gTm8odCxyLG8scyxwLGcpe3ZhciB2PTA7aWYocz10LHR5cGVvZiB0PT0iZnVuY3Rpb24iKXdzKHQpJiYodj0xKTtlbHNlIGlmKHR5cGVvZiB0PT0ic3RyaW5nIil2PWtPKHQsbyx0ZS5jdXJyZW50KT8yNjp0PT09Imh0bWwifHx0PT09ImhlYWQifHx0PT09ImJvZHkiPzI3OjU7ZWxzZSBlOnN3aXRjaCh0KXtjYXNlIHo6cmV0dXJuIHQ9WXQoMzEsbyxyLHApLHQuZWxlbWVudFR5cGU9eix0LmxhbmVzPWcsdDtjYXNlIFQ6cmV0dXJuIEdyKG8uY2hpbGRyZW4scCxnLHIpO2Nhc2UgQzp2PTgscHw9MjQ7YnJlYWs7Y2FzZSB4OnJldHVybiB0PVl0KDEyLG8scixwfDIpLHQuZWxlbWVudFR5cGU9eCx0LmxhbmVzPWcsdDtjYXNlIEY6cmV0dXJuIHQ9WXQoMTMsbyxyLHApLHQuZWxlbWVudFR5cGU9Rix0LmxhbmVzPWcsdDtjYXNlIFI6cmV0dXJuIHQ9WXQoMTksbyxyLHApLHQuZWxlbWVudFR5cGU9Uix0LmxhbmVzPWcsdDtkZWZhdWx0OmlmKHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGwpc3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2Ugazp2PTEwO2JyZWFrIGU7Y2FzZSBOOnY9OTticmVhayBlO2Nhc2UgTDp2PTExO2JyZWFrIGU7Y2FzZSBNOnY9MTQ7YnJlYWsgZTtjYXNlIFk6dj0xNixzPW51bGw7YnJlYWsgZX12PTI5LG89RXJyb3IoaSgxMzAsdD09PW51bGw/Im51bGwiOnR5cGVvZiB0LCIiKSkscz1udWxsfXJldHVybiByPVl0KHYsbyxyLHApLHIuZWxlbWVudFR5cGU9dCxyLnR5cGU9cyxyLmxhbmVzPWcscn1mdW5jdGlvbiBHcih0LHIsbyxzKXtyZXR1cm4gdD1ZdCg3LHQscyxyKSx0LmxhbmVzPW8sdH1mdW5jdGlvbiBrcyh0LHIsbyl7cmV0dXJuIHQ9WXQoNix0LG51bGwsciksdC5sYW5lcz1vLHR9ZnVuY3Rpb24gUnkodCl7dmFyIHI9WXQoMTgsbnVsbCxudWxsLDApO3JldHVybiByLnN0YXRlTm9kZT10LHJ9ZnVuY3Rpb24gQ3ModCxyLG8pe3JldHVybiByPVl0KDQsdC5jaGlsZHJlbiE9PW51bGw/dC5jaGlsZHJlbjpbXSx0LmtleSxyKSxyLmxhbmVzPW8sci5zdGF0ZU5vZGU9e2NvbnRhaW5lckluZm86dC5jb250YWluZXJJbmZvLHBlbmRpbmdDaGlsZHJlbjpudWxsLGltcGxlbWVudGF0aW9uOnQuaW1wbGVtZW50YXRpb259LHJ9dmFyIE55PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGNuKHQscil7aWYodHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbCl7dmFyIG89TnkuZ2V0KHQpO3JldHVybiBvIT09dm9pZCAwP286KHI9e3ZhbHVlOnQsc291cmNlOnIsc3RhY2s6YW4ocil9LE55LnNldCh0LHIpLHIpfXJldHVybnt2YWx1ZTp0LHNvdXJjZTpyLHN0YWNrOmFuKHIpfX12YXIgeGE9W10sQWE9MCx3bz1udWxsLGJpPTAsZG49W10scG49MCxscj1udWxsLGtuPTEsQ249IiI7ZnVuY3Rpb24gUG4odCxyKXt4YVtBYSsrXT1iaSx4YVtBYSsrXT13byx3bz10LGJpPXJ9ZnVuY3Rpb24gd3kodCxyLG8pe2RuW3BuKytdPWtuLGRuW3BuKytdPUNuLGRuW3BuKytdPWxyLGxyPXQ7dmFyIHM9a247dD1Dbjt2YXIgcD0zMi1CZShzKS0xO3MmPX4oMTw8cCksbys9MTt2YXIgZz0zMi1CZShyKStwO2lmKDMwPGcpe3ZhciB2PXAtcCU1O2c9KHMmKDE8PHYpLTEpLnRvU3RyaW5nKDMyKSxzPj49dixwLT12LGtuPTE8PDMyLUJlKHIpK3B8bzw8cHxzLENuPWcrdH1lbHNlIGtuPTE8PGd8bzw8cHxzLENuPXR9ZnVuY3Rpb24gSXModCl7dC5yZXR1cm4hPT1udWxsJiYoUG4odCwxKSx3eSh0LDEsMCkpfWZ1bmN0aW9uIE9zKHQpe2Zvcig7dD09PXdvOyl3bz14YVstLUFhXSx4YVtBYV09bnVsbCxiaT14YVstLUFhXSx4YVtBYV09bnVsbDtmb3IoO3Q9PT1scjspbHI9ZG5bLS1wbl0sZG5bcG5dPW51bGwsQ249ZG5bLS1wbl0sZG5bcG5dPW51bGwsa249ZG5bLS1wbl0sZG5bcG5dPW51bGx9ZnVuY3Rpb24ga3kodCxyKXtkbltwbisrXT1rbixkbltwbisrXT1DbixkbltwbisrXT1scixrbj1yLmlkLENuPXIub3ZlcmZsb3csbHI9dH12YXIgU3Q9bnVsbCxLZT1udWxsLExlPSExLHNyPW51bGwsZm49ITEsTHM9RXJyb3IoaSg1MTkpKTtmdW5jdGlvbiB1cih0KXt2YXIgcj1FcnJvcihpKDQxOCwxPGFyZ3VtZW50cy5sZW5ndGgmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMCYmYXJndW1lbnRzWzFdPyJ0ZXh0IjoiSFRNTCIsIiIpKTt0aHJvdyB5aShjbihyLHQpKSxMc31mdW5jdGlvbiBDeSh0KXt2YXIgcj10LnN0YXRlTm9kZSxvPXQudHlwZSxzPXQubWVtb2l6ZWRQcm9wcztzd2l0Y2gocltFdF09dCxyW0R0XT1zLG8pe2Nhc2UiZGlhbG9nIjpfZSgiY2FuY2VsIixyKSxfZSgiY2xvc2UiLHIpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6X2UoImxvYWQiLHIpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihvPTA7bzx6aS5sZW5ndGg7bysrKV9lKHppW29dLHIpO2JyZWFrO2Nhc2Uic291cmNlIjpfZSgiZXJyb3IiLHIpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOl9lKCJlcnJvciIsciksX2UoImxvYWQiLHIpO2JyZWFrO2Nhc2UiZGV0YWlscyI6X2UoInRvZ2dsZSIscik7YnJlYWs7Y2FzZSJpbnB1dCI6X2UoImludmFsaWQiLHIpLEdiKHIscy52YWx1ZSxzLmRlZmF1bHRWYWx1ZSxzLmNoZWNrZWQscy5kZWZhdWx0Q2hlY2tlZCxzLnR5cGUscy5uYW1lLCEwKTticmVhaztjYXNlInNlbGVjdCI6X2UoImludmFsaWQiLHIpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOl9lKCJpbnZhbGlkIixyKSwkYihyLHMudmFsdWUscy5kZWZhdWx0VmFsdWUscy5jaGlsZHJlbil9bz1zLmNoaWxkcmVuLHR5cGVvZiBvIT0ic3RyaW5nIiYmdHlwZW9mIG8hPSJudW1iZXIiJiZ0eXBlb2YgbyE9ImJpZ2ludCJ8fHIudGV4dENvbnRlbnQ9PT0iIitvfHxzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZz09PSEwfHxZUyhyLnRleHRDb250ZW50LG8pPyhzLnBvcG92ZXIhPW51bGwmJihfZSgiYmVmb3JldG9nZ2xlIixyKSxfZSgidG9nZ2xlIixyKSkscy5vblNjcm9sbCE9bnVsbCYmX2UoInNjcm9sbCIscikscy5vblNjcm9sbEVuZCE9bnVsbCYmX2UoInNjcm9sbGVuZCIscikscy5vbkNsaWNrIT1udWxsJiYoci5vbmNsaWNrPWpuKSxyPSEwKTpyPSExLHJ8fHVyKHQsITApfWZ1bmN0aW9uIEl5KHQpe2ZvcihTdD10LnJldHVybjtTdDspc3dpdGNoKFN0LnRhZyl7Y2FzZSA1OmNhc2UgMzE6Y2FzZSAxMzpmbj0hMTtyZXR1cm47Y2FzZSAyNzpjYXNlIDM6Zm49ITA7cmV0dXJuO2RlZmF1bHQ6U3Q9U3QucmV0dXJufX1mdW5jdGlvbiBfYSh0KXtpZih0IT09U3QpcmV0dXJuITE7aWYoIUxlKXJldHVybiBJeSh0KSxMZT0hMCwhMTt2YXIgcj10LnRhZyxvO2lmKChvPXIhPT0zJiZyIT09MjcpJiYoKG89cj09PTUpJiYobz10LnR5cGUsbz0hKG8hPT0iZm9ybSImJm8hPT0iYnV0dG9uIil8fFp1KHQudHlwZSx0Lm1lbW9pemVkUHJvcHMpKSxvPSFvKSxvJiZLZSYmdXIodCksSXkodCkscj09PTEzKXtpZih0PXQubWVtb2l6ZWRTdGF0ZSx0PXQhPT1udWxsP3QuZGVoeWRyYXRlZDpudWxsLCF0KXRocm93IEVycm9yKGkoMzE3KSk7S2U9bnYodCl9ZWxzZSBpZihyPT09MzEpe2lmKHQ9dC5tZW1vaXplZFN0YXRlLHQ9dCE9PW51bGw/dC5kZWh5ZHJhdGVkOm51bGwsIXQpdGhyb3cgRXJyb3IoaSgzMTcpKTtLZT1udih0KX1lbHNlIHI9PT0yNz8ocj1LZSx4cih0LnR5cGUpPyh0PW5jLG5jPW51bGwsS2U9dCk6S2U9cik6S2U9U3Q/bW4odC5zdGF0ZU5vZGUubmV4dFNpYmxpbmcpOm51bGw7cmV0dXJuITB9ZnVuY3Rpb24gSHIoKXtLZT1TdD1udWxsLExlPSExfWZ1bmN0aW9uIERzKCl7dmFyIHQ9c3I7cmV0dXJuIHQhPT1udWxsJiYoanQ9PT1udWxsP2p0PXQ6anQucHVzaC5hcHBseShqdCx0KSxzcj1udWxsKSx0fWZ1bmN0aW9uIHlpKHQpe3NyPT09bnVsbD9zcj1bdF06c3IucHVzaCh0KX12YXIgTXM9TyhudWxsKSwkcj1udWxsLEduPW51bGw7ZnVuY3Rpb24gY3IodCxyLG8pe3coTXMsci5fY3VycmVudFZhbHVlKSxyLl9jdXJyZW50VmFsdWU9b31mdW5jdGlvbiBIbih0KXt0Ll9jdXJyZW50VmFsdWU9TXMuY3VycmVudCxWKE1zKX1mdW5jdGlvbiBVcyh0LHIsbyl7Zm9yKDt0IT09bnVsbDspe3ZhciBzPXQuYWx0ZXJuYXRlO2lmKCh0LmNoaWxkTGFuZXMmcikhPT1yPyh0LmNoaWxkTGFuZXN8PXIscyE9PW51bGwmJihzLmNoaWxkTGFuZXN8PXIpKTpzIT09bnVsbCYmKHMuY2hpbGRMYW5lcyZyKSE9PXImJihzLmNoaWxkTGFuZXN8PXIpLHQ9PT1vKWJyZWFrO3Q9dC5yZXR1cm59fWZ1bmN0aW9uIEZzKHQscixvLHMpe3ZhciBwPXQuY2hpbGQ7Zm9yKHAhPT1udWxsJiYocC5yZXR1cm49dCk7cCE9PW51bGw7KXt2YXIgZz1wLmRlcGVuZGVuY2llcztpZihnIT09bnVsbCl7dmFyIHY9cC5jaGlsZDtnPWcuZmlyc3RDb250ZXh0O2U6Zm9yKDtnIT09bnVsbDspe3ZhciBBPWc7Zz1wO2Zvcih2YXIgRD0wO0Q8ci5sZW5ndGg7RCsrKWlmKEEuY29udGV4dD09PXJbRF0pe2cubGFuZXN8PW8sQT1nLmFsdGVybmF0ZSxBIT09bnVsbCYmKEEubGFuZXN8PW8pLFVzKGcucmV0dXJuLG8sdCksc3x8KHY9bnVsbCk7YnJlYWsgZX1nPUEubmV4dH19ZWxzZSBpZihwLnRhZz09PTE4KXtpZih2PXAucmV0dXJuLHY9PT1udWxsKXRocm93IEVycm9yKGkoMzQxKSk7di5sYW5lc3w9byxnPXYuYWx0ZXJuYXRlLGchPT1udWxsJiYoZy5sYW5lc3w9byksVXModixvLHQpLHY9bnVsbH1lbHNlIHY9cC5jaGlsZDtpZih2IT09bnVsbCl2LnJldHVybj1wO2Vsc2UgZm9yKHY9cDt2IT09bnVsbDspe2lmKHY9PT10KXt2PW51bGw7YnJlYWt9aWYocD12LnNpYmxpbmcscCE9PW51bGwpe3AucmV0dXJuPXYucmV0dXJuLHY9cDticmVha312PXYucmV0dXJufXA9dn19ZnVuY3Rpb24gUmEodCxyLG8scyl7dD1udWxsO2Zvcih2YXIgcD1yLGc9ITE7cCE9PW51bGw7KXtpZighZyl7aWYoKHAuZmxhZ3MmNTI0Mjg4KSE9PTApZz0hMDtlbHNlIGlmKChwLmZsYWdzJjI2MjE0NCkhPT0wKWJyZWFrfWlmKHAudGFnPT09MTApe3ZhciB2PXAuYWx0ZXJuYXRlO2lmKHY9PT1udWxsKXRocm93IEVycm9yKGkoMzg3KSk7aWYodj12Lm1lbW9pemVkUHJvcHMsdiE9PW51bGwpe3ZhciBBPXAudHlwZTtWdChwLnBlbmRpbmdQcm9wcy52YWx1ZSx2LnZhbHVlKXx8KHQhPT1udWxsP3QucHVzaChBKTp0PVtBXSl9fWVsc2UgaWYocD09PWhlLmN1cnJlbnQpe2lmKHY9cC5hbHRlcm5hdGUsdj09PW51bGwpdGhyb3cgRXJyb3IoaSgzODcpKTt2Lm1lbW9pemVkU3RhdGUubWVtb2l6ZWRTdGF0ZSE9PXAubWVtb2l6ZWRTdGF0ZS5tZW1vaXplZFN0YXRlJiYodCE9PW51bGw/dC5wdXNoKCRpKTp0PVskaV0pfXA9cC5yZXR1cm59dCE9PW51bGwmJkZzKHIsdCxvLHMpLHIuZmxhZ3N8PTI2MjE0NH1mdW5jdGlvbiBrbyh0KXtmb3IodD10LmZpcnN0Q29udGV4dDt0IT09bnVsbDspe2lmKCFWdCh0LmNvbnRleHQuX2N1cnJlbnRWYWx1ZSx0Lm1lbW9pemVkVmFsdWUpKXJldHVybiEwO3Q9dC5uZXh0fXJldHVybiExfWZ1bmN0aW9uIFZyKHQpeyRyPXQsR249bnVsbCx0PXQuZGVwZW5kZW5jaWVzLHQhPT1udWxsJiYodC5maXJzdENvbnRleHQ9bnVsbCl9ZnVuY3Rpb24gdnQodCl7cmV0dXJuIE95KCRyLHQpfWZ1bmN0aW9uIENvKHQscil7cmV0dXJuICRyPT09bnVsbCYmVnIodCksT3kodCxyKX1mdW5jdGlvbiBPeSh0LHIpe3ZhciBvPXIuX2N1cnJlbnRWYWx1ZTtpZihyPXtjb250ZXh0OnIsbWVtb2l6ZWRWYWx1ZTpvLG5leHQ6bnVsbH0sR249PT1udWxsKXtpZih0PT09bnVsbCl0aHJvdyBFcnJvcihpKDMwOCkpO0duPXIsdC5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OnJ9LHQuZmxhZ3N8PTUyNDI4OH1lbHNlIEduPUduLm5leHQ9cjtyZXR1cm4gb312YXIgX0k9dHlwZW9mIEFib3J0Q29udHJvbGxlcjwidSI/QWJvcnRDb250cm9sbGVyOmZ1bmN0aW9uKCl7dmFyIHQ9W10scj10aGlzLnNpZ25hbD17YWJvcnRlZDohMSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKG8scyl7dC5wdXNoKHMpfX07dGhpcy5hYm9ydD1mdW5jdGlvbigpe3IuYWJvcnRlZD0hMCx0LmZvckVhY2goZnVuY3Rpb24obyl7cmV0dXJuIG8oKX0pfX0sUkk9ZS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLE5JPWUudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksb3Q9eyQkdHlwZW9mOmssQ29uc3VtZXI6bnVsbCxQcm92aWRlcjpudWxsLF9jdXJyZW50VmFsdWU6bnVsbCxfY3VycmVudFZhbHVlMjpudWxsLF90aHJlYWRDb3VudDowfTtmdW5jdGlvbiBCcygpe3JldHVybntjb250cm9sbGVyOm5ldyBfSSxkYXRhOm5ldyBNYXAscmVmQ291bnQ6MH19ZnVuY3Rpb24gRWkodCl7dC5yZWZDb3VudC0tLHQucmVmQ291bnQ9PT0wJiZSSShOSSxmdW5jdGlvbigpe3QuY29udHJvbGxlci5hYm9ydCgpfSl9dmFyIFNpPW51bGwsanM9MCxOYT0wLHdhPW51bGw7ZnVuY3Rpb24gd0kodCxyKXtpZihTaT09PW51bGwpe3ZhciBvPVNpPVtdO2pzPTAsTmE9UHUoKSx3YT17c3RhdHVzOiJwZW5kaW5nIix2YWx1ZTp2b2lkIDAsdGhlbjpmdW5jdGlvbihzKXtvLnB1c2gocyl9fX1yZXR1cm4ganMrKyxyLnRoZW4oTHksTHkpLHJ9ZnVuY3Rpb24gTHkoKXtpZigtLWpzPT09MCYmU2khPT1udWxsKXt3YSE9PW51bGwmJih3YS5zdGF0dXM9ImZ1bGZpbGxlZCIpO3ZhciB0PVNpO1NpPW51bGwsTmE9MCx3YT1udWxsO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKSgwLHRbcl0pKCl9fWZ1bmN0aW9uIGtJKHQscil7dmFyIG89W10scz17c3RhdHVzOiJwZW5kaW5nIix2YWx1ZTpudWxsLHJlYXNvbjpudWxsLHRoZW46ZnVuY3Rpb24ocCl7by5wdXNoKHApfX07cmV0dXJuIHQudGhlbihmdW5jdGlvbigpe3Muc3RhdHVzPSJmdWxmaWxsZWQiLHMudmFsdWU9cjtmb3IodmFyIHA9MDtwPG8ubGVuZ3RoO3ArKykoMCxvW3BdKShyKX0sZnVuY3Rpb24ocCl7Zm9yKHMuc3RhdHVzPSJyZWplY3RlZCIscy5yZWFzb249cCxwPTA7cDxvLmxlbmd0aDtwKyspKDAsb1twXSkodm9pZCAwKX0pLHN9dmFyIER5PUcuUztHLlM9ZnVuY3Rpb24odCxyKXtiUz1RZSgpLHR5cGVvZiByPT0ib2JqZWN0IiYmciE9PW51bGwmJnR5cGVvZiByLnRoZW49PSJmdW5jdGlvbiImJndJKHQsciksRHkhPT1udWxsJiZEeSh0LHIpfTt2YXIgWXI9TyhudWxsKTtmdW5jdGlvbiB6cygpe3ZhciB0PVlyLmN1cnJlbnQ7cmV0dXJuIHQhPT1udWxsP3Q6JGUucG9vbGVkQ2FjaGV9ZnVuY3Rpb24gSW8odCxyKXtyPT09bnVsbD93KFlyLFlyLmN1cnJlbnQpOncoWXIsci5wb29sKX1mdW5jdGlvbiBNeSgpe3ZhciB0PXpzKCk7cmV0dXJuIHQ9PT1udWxsP251bGw6e3BhcmVudDpvdC5fY3VycmVudFZhbHVlLHBvb2w6dH19dmFyIGthPUVycm9yKGkoNDYwKSkscXM9RXJyb3IoaSg0NzQpKSxPbz1FcnJvcihpKDU0MikpLExvPXt0aGVuOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gVXkodCl7cmV0dXJuIHQ9dC5zdGF0dXMsdD09PSJmdWxmaWxsZWQifHx0PT09InJlamVjdGVkIn1mdW5jdGlvbiBGeSh0LHIsbyl7c3dpdGNoKG89dFtvXSxvPT09dm9pZCAwP3QucHVzaChyKTpvIT09ciYmKHIudGhlbihqbixqbikscj1vKSxyLnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOnJldHVybiByLnZhbHVlO2Nhc2UicmVqZWN0ZWQiOnRocm93IHQ9ci5yZWFzb24sankodCksdDtkZWZhdWx0OmlmKHR5cGVvZiByLnN0YXR1cz09InN0cmluZyIpci50aGVuKGpuLGpuKTtlbHNle2lmKHQ9JGUsdCE9PW51bGwmJjEwMDx0LnNoZWxsU3VzcGVuZENvdW50ZXIpdGhyb3cgRXJyb3IoaSg0ODIpKTt0PXIsdC5zdGF0dXM9InBlbmRpbmciLHQudGhlbihmdW5jdGlvbihzKXtpZihyLnN0YXR1cz09PSJwZW5kaW5nIil7dmFyIHA9cjtwLnN0YXR1cz0iZnVsZmlsbGVkIixwLnZhbHVlPXN9fSxmdW5jdGlvbihzKXtpZihyLnN0YXR1cz09PSJwZW5kaW5nIil7dmFyIHA9cjtwLnN0YXR1cz0icmVqZWN0ZWQiLHAucmVhc29uPXN9fSl9c3dpdGNoKHIuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIHIudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgdD1yLnJlYXNvbixqeSh0KSx0fXRocm93IFdyPXIsa2F9fWZ1bmN0aW9uIEtyKHQpe3RyeXt2YXIgcj10Ll9pbml0O3JldHVybiByKHQuX3BheWxvYWQpfWNhdGNoKG8pe3Rocm93IG8hPT1udWxsJiZ0eXBlb2Ygbz09Im9iamVjdCImJnR5cGVvZiBvLnRoZW49PSJmdW5jdGlvbiI/KFdyPW8sa2EpOm99fXZhciBXcj1udWxsO2Z1bmN0aW9uIEJ5KCl7aWYoV3I9PT1udWxsKXRocm93IEVycm9yKGkoNDU5KSk7dmFyIHQ9V3I7cmV0dXJuIFdyPW51bGwsdH1mdW5jdGlvbiBqeSh0KXtpZih0PT09a2F8fHQ9PT1Pbyl0aHJvdyBFcnJvcihpKDQ4MykpfXZhciBDYT1udWxsLHZpPTA7ZnVuY3Rpb24gRG8odCl7dmFyIHI9dmk7cmV0dXJuIHZpKz0xLENhPT09bnVsbCYmKENhPVtdKSxGeShDYSx0LHIpfWZ1bmN0aW9uIFRpKHQscil7cj1yLnByb3BzLnJlZix0LnJlZj1yIT09dm9pZCAwP3I6bnVsbH1mdW5jdGlvbiBNbyh0LHIpe3Rocm93IHIuJCR0eXBlb2Y9PT1TP0Vycm9yKGkoNTI1KSk6KHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpLEVycm9yKGkoMzEsdD09PSJbb2JqZWN0IE9iamVjdF0iPyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKHIpLmpvaW4oIiwgIikrIn0iOnQpKSl9ZnVuY3Rpb24genkodCl7ZnVuY3Rpb24gcihqLEIpe2lmKHQpe3ZhciBxPWouZGVsZXRpb25zO3E9PT1udWxsPyhqLmRlbGV0aW9ucz1bQl0sai5mbGFnc3w9MTYpOnEucHVzaChCKX19ZnVuY3Rpb24gbyhqLEIpe2lmKCF0KXJldHVybiBudWxsO2Zvcig7QiE9PW51bGw7KXIoaixCKSxCPUIuc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiBzKGope2Zvcih2YXIgQj1uZXcgTWFwO2ohPT1udWxsOylqLmtleSE9PW51bGw/Qi5zZXQoai5rZXksaik6Qi5zZXQoai5pbmRleCxqKSxqPWouc2libGluZztyZXR1cm4gQn1mdW5jdGlvbiBwKGosQil7cmV0dXJuIGo9cW4oaixCKSxqLmluZGV4PTAsai5zaWJsaW5nPW51bGwsan1mdW5jdGlvbiBnKGosQixxKXtyZXR1cm4gai5pbmRleD1xLHQ/KHE9ai5hbHRlcm5hdGUscSE9PW51bGw/KHE9cS5pbmRleCxxPEI/KGouZmxhZ3N8PTY3MTA4ODY2LEIpOnEpOihqLmZsYWdzfD02NzEwODg2NixCKSk6KGouZmxhZ3N8PTEwNDg1NzYsQil9ZnVuY3Rpb24gdihqKXtyZXR1cm4gdCYmai5hbHRlcm5hdGU9PT1udWxsJiYoai5mbGFnc3w9NjcxMDg4NjYpLGp9ZnVuY3Rpb24gQShqLEIscSxaKXtyZXR1cm4gQj09PW51bGx8fEIudGFnIT09Nj8oQj1rcyhxLGoubW9kZSxaKSxCLnJldHVybj1qLEIpOihCPXAoQixxKSxCLnJldHVybj1qLEIpfWZ1bmN0aW9uIEQoaixCLHEsWil7dmFyIG1lPXEudHlwZTtyZXR1cm4gbWU9PT1UP1goaixCLHEucHJvcHMuY2hpbGRyZW4sWixxLmtleSk6QiE9PW51bGwmJihCLmVsZW1lbnRUeXBlPT09bWV8fHR5cGVvZiBtZT09Im9iamVjdCImJm1lIT09bnVsbCYmbWUuJCR0eXBlb2Y9PT1ZJiZLcihtZSk9PT1CLnR5cGUpPyhCPXAoQixxLnByb3BzKSxUaShCLHEpLEIucmV0dXJuPWosQik6KEI9Tm8ocS50eXBlLHEua2V5LHEucHJvcHMsbnVsbCxqLm1vZGUsWiksVGkoQixxKSxCLnJldHVybj1qLEIpfWZ1bmN0aW9uIFAoaixCLHEsWil7cmV0dXJuIEI9PT1udWxsfHxCLnRhZyE9PTR8fEIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8hPT1xLmNvbnRhaW5lckluZm98fEIuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09cS5pbXBsZW1lbnRhdGlvbj8oQj1DcyhxLGoubW9kZSxaKSxCLnJldHVybj1qLEIpOihCPXAoQixxLmNoaWxkcmVufHxbXSksQi5yZXR1cm49aixCKX1mdW5jdGlvbiBYKGosQixxLFosbWUpe3JldHVybiBCPT09bnVsbHx8Qi50YWchPT03PyhCPUdyKHEsai5tb2RlLFosbWUpLEIucmV0dXJuPWosQik6KEI9cChCLHEpLEIucmV0dXJuPWosQil9ZnVuY3Rpb24gUShqLEIscSl7aWYodHlwZW9mIEI9PSJzdHJpbmciJiZCIT09IiJ8fHR5cGVvZiBCPT0ibnVtYmVyInx8dHlwZW9mIEI9PSJiaWdpbnQiKXJldHVybiBCPWtzKCIiK0Isai5tb2RlLHEpLEIucmV0dXJuPWosQjtpZih0eXBlb2YgQj09Im9iamVjdCImJkIhPT1udWxsKXtzd2l0Y2goQi4kJHR5cGVvZil7Y2FzZSBFOnJldHVybiBxPU5vKEIudHlwZSxCLmtleSxCLnByb3BzLG51bGwsai5tb2RlLHEpLFRpKHEsQikscS5yZXR1cm49aixxO2Nhc2UgXzpyZXR1cm4gQj1DcyhCLGoubW9kZSxxKSxCLnJldHVybj1qLEI7Y2FzZSBZOnJldHVybiBCPUtyKEIpLFEoaixCLHEpfWlmKGxlKEIpfHxKKEIpKXJldHVybiBCPUdyKEIsai5tb2RlLHEsbnVsbCksQi5yZXR1cm49aixCO2lmKHR5cGVvZiBCLnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIFEoaixEbyhCKSxxKTtpZihCLiQkdHlwZW9mPT09aylyZXR1cm4gUShqLENvKGosQikscSk7TW8oaixCKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBIKGosQixxLFope3ZhciBtZT1CIT09bnVsbD9CLmtleTpudWxsO2lmKHR5cGVvZiBxPT0ic3RyaW5nIiYmcSE9PSIifHx0eXBlb2YgcT09Im51bWJlciJ8fHR5cGVvZiBxPT0iYmlnaW50IilyZXR1cm4gbWUhPT1udWxsP251bGw6QShqLEIsIiIrcSxaKTtpZih0eXBlb2YgcT09Im9iamVjdCImJnEhPT1udWxsKXtzd2l0Y2gocS4kJHR5cGVvZil7Y2FzZSBFOnJldHVybiBxLmtleT09PW1lP0QoaixCLHEsWik6bnVsbDtjYXNlIF86cmV0dXJuIHEua2V5PT09bWU/UChqLEIscSxaKTpudWxsO2Nhc2UgWTpyZXR1cm4gcT1LcihxKSxIKGosQixxLFopfWlmKGxlKHEpfHxKKHEpKXJldHVybiBtZSE9PW51bGw/bnVsbDpYKGosQixxLFosbnVsbCk7aWYodHlwZW9mIHEudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gSChqLEIsRG8ocSksWik7aWYocS4kJHR5cGVvZj09PWspcmV0dXJuIEgoaixCLENvKGoscSksWik7TW8oaixxKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBLKGosQixxLFosbWUpe2lmKHR5cGVvZiBaPT0ic3RyaW5nIiYmWiE9PSIifHx0eXBlb2YgWj09Im51bWJlciJ8fHR5cGVvZiBaPT0iYmlnaW50IilyZXR1cm4gaj1qLmdldChxKXx8bnVsbCxBKEIsaiwiIitaLG1lKTtpZih0eXBlb2YgWj09Im9iamVjdCImJlohPT1udWxsKXtzd2l0Y2goWi4kJHR5cGVvZil7Y2FzZSBFOnJldHVybiBqPWouZ2V0KFoua2V5PT09bnVsbD9xOloua2V5KXx8bnVsbCxEKEIsaixaLG1lKTtjYXNlIF86cmV0dXJuIGo9ai5nZXQoWi5rZXk9PT1udWxsP3E6Wi5rZXkpfHxudWxsLFAoQixqLFosbWUpO2Nhc2UgWTpyZXR1cm4gWj1LcihaKSxLKGosQixxLFosbWUpfWlmKGxlKFopfHxKKFopKXJldHVybiBqPWouZ2V0KHEpfHxudWxsLFgoQixqLFosbWUsbnVsbCk7aWYodHlwZW9mIFoudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gSyhqLEIscSxEbyhaKSxtZSk7aWYoWi4kJHR5cGVvZj09PWspcmV0dXJuIEsoaixCLHEsQ28oQixaKSxtZSk7TW8oQixaKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwZShqLEIscSxaKXtmb3IodmFyIG1lPW51bGwsTWU9bnVsbCxnZT1CLFRlPUI9MCxDZT1udWxsO2dlIT09bnVsbCYmVGU8cS5sZW5ndGg7VGUrKyl7Z2UuaW5kZXg+VGU/KENlPWdlLGdlPW51bGwpOkNlPWdlLnNpYmxpbmc7dmFyIFVlPUgoaixnZSxxW1RlXSxaKTtpZihVZT09PW51bGwpe2dlPT09bnVsbCYmKGdlPUNlKTticmVha310JiZnZSYmVWUuYWx0ZXJuYXRlPT09bnVsbCYmcihqLGdlKSxCPWcoVWUsQixUZSksTWU9PT1udWxsP21lPVVlOk1lLnNpYmxpbmc9VWUsTWU9VWUsZ2U9Q2V9aWYoVGU9PT1xLmxlbmd0aClyZXR1cm4gbyhqLGdlKSxMZSYmUG4oaixUZSksbWU7aWYoZ2U9PT1udWxsKXtmb3IoO1RlPHEubGVuZ3RoO1RlKyspZ2U9UShqLHFbVGVdLFopLGdlIT09bnVsbCYmKEI9ZyhnZSxCLFRlKSxNZT09PW51bGw/bWU9Z2U6TWUuc2libGluZz1nZSxNZT1nZSk7cmV0dXJuIExlJiZQbihqLFRlKSxtZX1mb3IoZ2U9cyhnZSk7VGU8cS5sZW5ndGg7VGUrKylDZT1LKGdlLGosVGUscVtUZV0sWiksQ2UhPT1udWxsJiYodCYmQ2UuYWx0ZXJuYXRlIT09bnVsbCYmZ2UuZGVsZXRlKENlLmtleT09PW51bGw/VGU6Q2Uua2V5KSxCPWcoQ2UsQixUZSksTWU9PT1udWxsP21lPUNlOk1lLnNpYmxpbmc9Q2UsTWU9Q2UpO3JldHVybiB0JiZnZS5mb3JFYWNoKGZ1bmN0aW9uKHdyKXtyZXR1cm4gcihqLHdyKX0pLExlJiZQbihqLFRlKSxtZX1mdW5jdGlvbiB5ZShqLEIscSxaKXtpZihxPT1udWxsKXRocm93IEVycm9yKGkoMTUxKSk7Zm9yKHZhciBtZT1udWxsLE1lPW51bGwsZ2U9QixUZT1CPTAsQ2U9bnVsbCxVZT1xLm5leHQoKTtnZSE9PW51bGwmJiFVZS5kb25lO1RlKyssVWU9cS5uZXh0KCkpe2dlLmluZGV4PlRlPyhDZT1nZSxnZT1udWxsKTpDZT1nZS5zaWJsaW5nO3ZhciB3cj1IKGosZ2UsVWUudmFsdWUsWik7aWYod3I9PT1udWxsKXtnZT09PW51bGwmJihnZT1DZSk7YnJlYWt9dCYmZ2UmJndyLmFsdGVybmF0ZT09PW51bGwmJnIoaixnZSksQj1nKHdyLEIsVGUpLE1lPT09bnVsbD9tZT13cjpNZS5zaWJsaW5nPXdyLE1lPXdyLGdlPUNlfWlmKFVlLmRvbmUpcmV0dXJuIG8oaixnZSksTGUmJlBuKGosVGUpLG1lO2lmKGdlPT09bnVsbCl7Zm9yKDshVWUuZG9uZTtUZSsrLFVlPXEubmV4dCgpKVVlPVEoaixVZS52YWx1ZSxaKSxVZSE9PW51bGwmJihCPWcoVWUsQixUZSksTWU9PT1udWxsP21lPVVlOk1lLnNpYmxpbmc9VWUsTWU9VWUpO3JldHVybiBMZSYmUG4oaixUZSksbWV9Zm9yKGdlPXMoZ2UpOyFVZS5kb25lO1RlKyssVWU9cS5uZXh0KCkpVWU9SyhnZSxqLFRlLFVlLnZhbHVlLFopLFVlIT09bnVsbCYmKHQmJlVlLmFsdGVybmF0ZSE9PW51bGwmJmdlLmRlbGV0ZShVZS5rZXk9PT1udWxsP1RlOlVlLmtleSksQj1nKFVlLEIsVGUpLE1lPT09bnVsbD9tZT1VZTpNZS5zaWJsaW5nPVVlLE1lPVVlKTtyZXR1cm4gdCYmZ2UuZm9yRWFjaChmdW5jdGlvbih6Tyl7cmV0dXJuIHIoaix6Tyl9KSxMZSYmUG4oaixUZSksbWV9ZnVuY3Rpb24gR2UoaixCLHEsWil7aWYodHlwZW9mIHE9PSJvYmplY3QiJiZxIT09bnVsbCYmcS50eXBlPT09VCYmcS5rZXk9PT1udWxsJiYocT1xLnByb3BzLmNoaWxkcmVuKSx0eXBlb2YgcT09Im9iamVjdCImJnEhPT1udWxsKXtzd2l0Y2gocS4kJHR5cGVvZil7Y2FzZSBFOmU6e2Zvcih2YXIgbWU9cS5rZXk7QiE9PW51bGw7KXtpZihCLmtleT09PW1lKXtpZihtZT1xLnR5cGUsbWU9PT1UKXtpZihCLnRhZz09PTcpe28oaixCLnNpYmxpbmcpLFo9cChCLHEucHJvcHMuY2hpbGRyZW4pLFoucmV0dXJuPWosaj1aO2JyZWFrIGV9fWVsc2UgaWYoQi5lbGVtZW50VHlwZT09PW1lfHx0eXBlb2YgbWU9PSJvYmplY3QiJiZtZSE9PW51bGwmJm1lLiQkdHlwZW9mPT09WSYmS3IobWUpPT09Qi50eXBlKXtvKGosQi5zaWJsaW5nKSxaPXAoQixxLnByb3BzKSxUaShaLHEpLFoucmV0dXJuPWosaj1aO2JyZWFrIGV9byhqLEIpO2JyZWFrfWVsc2UgcihqLEIpO0I9Qi5zaWJsaW5nfXEudHlwZT09PVQ/KFo9R3IocS5wcm9wcy5jaGlsZHJlbixqLm1vZGUsWixxLmtleSksWi5yZXR1cm49aixqPVopOihaPU5vKHEudHlwZSxxLmtleSxxLnByb3BzLG51bGwsai5tb2RlLFopLFRpKFoscSksWi5yZXR1cm49aixqPVopfXJldHVybiB2KGopO2Nhc2UgXzplOntmb3IobWU9cS5rZXk7QiE9PW51bGw7KXtpZihCLmtleT09PW1lKWlmKEIudGFnPT09NCYmQi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PXEuY29udGFpbmVySW5mbyYmQi5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1xLmltcGxlbWVudGF0aW9uKXtvKGosQi5zaWJsaW5nKSxaPXAoQixxLmNoaWxkcmVufHxbXSksWi5yZXR1cm49aixqPVo7YnJlYWsgZX1lbHNle28oaixCKTticmVha31lbHNlIHIoaixCKTtCPUIuc2libGluZ31aPUNzKHEsai5tb2RlLFopLFoucmV0dXJuPWosaj1afXJldHVybiB2KGopO2Nhc2UgWTpyZXR1cm4gcT1LcihxKSxHZShqLEIscSxaKX1pZihsZShxKSlyZXR1cm4gcGUoaixCLHEsWik7aWYoSihxKSl7aWYobWU9SihxKSx0eXBlb2YgbWUhPSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoaSgxNTApKTtyZXR1cm4gcT1tZS5jYWxsKHEpLHllKGosQixxLFopfWlmKHR5cGVvZiBxLnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIEdlKGosQixEbyhxKSxaKTtpZihxLiQkdHlwZW9mPT09aylyZXR1cm4gR2UoaixCLENvKGoscSksWik7TW8oaixxKX1yZXR1cm4gdHlwZW9mIHE9PSJzdHJpbmciJiZxIT09IiJ8fHR5cGVvZiBxPT0ibnVtYmVyInx8dHlwZW9mIHE9PSJiaWdpbnQiPyhxPSIiK3EsQiE9PW51bGwmJkIudGFnPT09Nj8obyhqLEIuc2libGluZyksWj1wKEIscSksWi5yZXR1cm49aixqPVopOihvKGosQiksWj1rcyhxLGoubW9kZSxaKSxaLnJldHVybj1qLGo9WiksdihqKSk6byhqLEIpfXJldHVybiBmdW5jdGlvbihqLEIscSxaKXt0cnl7dmk9MDt2YXIgbWU9R2UoaixCLHEsWik7cmV0dXJuIENhPW51bGwsbWV9Y2F0Y2goZ2Upe2lmKGdlPT09a2F8fGdlPT09T28pdGhyb3cgZ2U7dmFyIE1lPVl0KDI5LGdlLG51bGwsai5tb2RlKTtyZXR1cm4gTWUubGFuZXM9WixNZS5yZXR1cm49aixNZX1maW5hbGx5e319fXZhciBYcj16eSghMCkscXk9enkoITEpLGRyPSExO2Z1bmN0aW9uIFBzKHQpe3QudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTp0Lm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbCxsYW5lczowLGhpZGRlbkNhbGxiYWNrczpudWxsfSxjYWxsYmFja3M6bnVsbH19ZnVuY3Rpb24gR3ModCxyKXt0PXQudXBkYXRlUXVldWUsci51cGRhdGVRdWV1ZT09PXQmJihyLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6dC5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOnQuZmlyc3RCYXNlVXBkYXRlLGxhc3RCYXNlVXBkYXRlOnQubGFzdEJhc2VVcGRhdGUsc2hhcmVkOnQuc2hhcmVkLGNhbGxiYWNrczpudWxsfSl9ZnVuY3Rpb24gcHIodCl7cmV0dXJue2xhbmU6dCx0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fWZ1bmN0aW9uIGZyKHQscixvKXt2YXIgcz10LnVwZGF0ZVF1ZXVlO2lmKHM9PT1udWxsKXJldHVybiBudWxsO2lmKHM9cy5zaGFyZWQsKEZlJjIpIT09MCl7dmFyIHA9cy5wZW5kaW5nO3JldHVybiBwPT09bnVsbD9yLm5leHQ9cjooci5uZXh0PXAubmV4dCxwLm5leHQ9cikscy5wZW5kaW5nPXIscj1Sbyh0KSxBeSh0LG51bGwsbykscn1yZXR1cm4gX28odCxzLHIsbyksUm8odCl9ZnVuY3Rpb24geGkodCxyLG8pe2lmKHI9ci51cGRhdGVRdWV1ZSxyIT09bnVsbCYmKHI9ci5zaGFyZWQsKG8mNDE5NDA0OCkhPT0wKSl7dmFyIHM9ci5sYW5lcztzJj10LnBlbmRpbmdMYW5lcyxvfD1zLHIubGFuZXM9byxPYih0LG8pfX1mdW5jdGlvbiBIcyh0LHIpe3ZhciBvPXQudXBkYXRlUXVldWUscz10LmFsdGVybmF0ZTtpZihzIT09bnVsbCYmKHM9cy51cGRhdGVRdWV1ZSxvPT09cykpe3ZhciBwPW51bGwsZz1udWxsO2lmKG89by5maXJzdEJhc2VVcGRhdGUsbyE9PW51bGwpe2Rve3ZhciB2PXtsYW5lOm8ubGFuZSx0YWc6by50YWcscGF5bG9hZDpvLnBheWxvYWQsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9O2c9PT1udWxsP3A9Zz12Omc9Zy5uZXh0PXYsbz1vLm5leHR9d2hpbGUobyE9PW51bGwpO2c9PT1udWxsP3A9Zz1yOmc9Zy5uZXh0PXJ9ZWxzZSBwPWc9cjtvPXtiYXNlU3RhdGU6cy5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOnAsbGFzdEJhc2VVcGRhdGU6ZyxzaGFyZWQ6cy5zaGFyZWQsY2FsbGJhY2tzOnMuY2FsbGJhY2tzfSx0LnVwZGF0ZVF1ZXVlPW87cmV0dXJufXQ9by5sYXN0QmFzZVVwZGF0ZSx0PT09bnVsbD9vLmZpcnN0QmFzZVVwZGF0ZT1yOnQubmV4dD1yLG8ubGFzdEJhc2VVcGRhdGU9cn12YXIgJHM9ITE7ZnVuY3Rpb24gQWkoKXtpZigkcyl7dmFyIHQ9d2E7aWYodCE9PW51bGwpdGhyb3cgdH19ZnVuY3Rpb24gX2kodCxyLG8scyl7JHM9ITE7dmFyIHA9dC51cGRhdGVRdWV1ZTtkcj0hMTt2YXIgZz1wLmZpcnN0QmFzZVVwZGF0ZSx2PXAubGFzdEJhc2VVcGRhdGUsQT1wLnNoYXJlZC5wZW5kaW5nO2lmKEEhPT1udWxsKXtwLnNoYXJlZC5wZW5kaW5nPW51bGw7dmFyIEQ9QSxQPUQubmV4dDtELm5leHQ9bnVsbCx2PT09bnVsbD9nPVA6di5uZXh0PVAsdj1EO3ZhciBYPXQuYWx0ZXJuYXRlO1ghPT1udWxsJiYoWD1YLnVwZGF0ZVF1ZXVlLEE9WC5sYXN0QmFzZVVwZGF0ZSxBIT09diYmKEE9PT1udWxsP1guZmlyc3RCYXNlVXBkYXRlPVA6QS5uZXh0PVAsWC5sYXN0QmFzZVVwZGF0ZT1EKSl9aWYoZyE9PW51bGwpe3ZhciBRPXAuYmFzZVN0YXRlO3Y9MCxYPVA9RD1udWxsLEE9Zztkb3t2YXIgSD1BLmxhbmUmLTUzNjg3MDkxMyxLPUghPT1BLmxhbmU7aWYoSz8oa2UmSCk9PT1IOihzJkgpPT09SCl7SCE9PTAmJkg9PT1OYSYmKCRzPSEwKSxYIT09bnVsbCYmKFg9WC5uZXh0PXtsYW5lOjAsdGFnOkEudGFnLHBheWxvYWQ6QS5wYXlsb2FkLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfSk7ZTp7dmFyIHBlPXQseWU9QTtIPXI7dmFyIEdlPW87c3dpdGNoKHllLnRhZyl7Y2FzZSAxOmlmKHBlPXllLnBheWxvYWQsdHlwZW9mIHBlPT0iZnVuY3Rpb24iKXtRPXBlLmNhbGwoR2UsUSxIKTticmVhayBlfVE9cGU7YnJlYWsgZTtjYXNlIDM6cGUuZmxhZ3M9cGUuZmxhZ3MmLTY1NTM3fDEyODtjYXNlIDA6aWYocGU9eWUucGF5bG9hZCxIPXR5cGVvZiBwZT09ImZ1bmN0aW9uIj9wZS5jYWxsKEdlLFEsSCk6cGUsSD09bnVsbClicmVhayBlO1E9aCh7fSxRLEgpO2JyZWFrIGU7Y2FzZSAyOmRyPSEwfX1IPUEuY2FsbGJhY2ssSCE9PW51bGwmJih0LmZsYWdzfD02NCxLJiYodC5mbGFnc3w9ODE5MiksSz1wLmNhbGxiYWNrcyxLPT09bnVsbD9wLmNhbGxiYWNrcz1bSF06Sy5wdXNoKEgpKX1lbHNlIEs9e2xhbmU6SCx0YWc6QS50YWcscGF5bG9hZDpBLnBheWxvYWQsY2FsbGJhY2s6QS5jYWxsYmFjayxuZXh0Om51bGx9LFg9PT1udWxsPyhQPVg9SyxEPVEpOlg9WC5uZXh0PUssdnw9SDtpZihBPUEubmV4dCxBPT09bnVsbCl7aWYoQT1wLnNoYXJlZC5wZW5kaW5nLEE9PT1udWxsKWJyZWFrO0s9QSxBPUsubmV4dCxLLm5leHQ9bnVsbCxwLmxhc3RCYXNlVXBkYXRlPUsscC5zaGFyZWQucGVuZGluZz1udWxsfX13aGlsZSghMCk7WD09PW51bGwmJihEPVEpLHAuYmFzZVN0YXRlPUQscC5maXJzdEJhc2VVcGRhdGU9UCxwLmxhc3RCYXNlVXBkYXRlPVgsZz09PW51bGwmJihwLnNoYXJlZC5sYW5lcz0wKSx5cnw9dix0LmxhbmVzPXYsdC5tZW1vaXplZFN0YXRlPVF9fWZ1bmN0aW9uIFB5KHQscil7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoaSgxOTEsdCkpO3QuY2FsbChyKX1mdW5jdGlvbiBHeSh0LHIpe3ZhciBvPXQuY2FsbGJhY2tzO2lmKG8hPT1udWxsKWZvcih0LmNhbGxiYWNrcz1udWxsLHQ9MDt0PG8ubGVuZ3RoO3QrKylQeShvW3RdLHIpfXZhciBJYT1PKG51bGwpLFVvPU8oMCk7ZnVuY3Rpb24gSHkodCxyKXt0PUpuLHcoVW8sdCksdyhJYSxyKSxKbj10fHIuYmFzZUxhbmVzfWZ1bmN0aW9uIFZzKCl7dyhVbyxKbiksdyhJYSxJYS5jdXJyZW50KX1mdW5jdGlvbiBZcygpe0puPVVvLmN1cnJlbnQsVihJYSksVihVbyl9dmFyIEt0PU8obnVsbCksZ249bnVsbDtmdW5jdGlvbiBncih0KXt2YXIgcj10LmFsdGVybmF0ZTt3KHJ0LHJ0LmN1cnJlbnQmMSksdyhLdCx0KSxnbj09PW51bGwmJihyPT09bnVsbHx8SWEuY3VycmVudCE9PW51bGx8fHIubWVtb2l6ZWRTdGF0ZSE9PW51bGwpJiYoZ249dCl9ZnVuY3Rpb24gS3ModCl7dyhydCxydC5jdXJyZW50KSx3KEt0LHQpLGduPT09bnVsbCYmKGduPXQpfWZ1bmN0aW9uICR5KHQpe3QudGFnPT09MjI/KHcocnQscnQuY3VycmVudCksdyhLdCx0KSxnbj09PW51bGwmJihnbj10KSk6bXIoKX1mdW5jdGlvbiBtcigpe3cocnQscnQuY3VycmVudCksdyhLdCxLdC5jdXJyZW50KX1mdW5jdGlvbiBXdCh0KXtWKEt0KSxnbj09PXQmJihnbj1udWxsKSxWKHJ0KX12YXIgcnQ9TygwKTtmdW5jdGlvbiBGbyh0KXtmb3IodmFyIHI9dDtyIT09bnVsbDspe2lmKHIudGFnPT09MTMpe3ZhciBvPXIubWVtb2l6ZWRTdGF0ZTtpZihvIT09bnVsbCYmKG89by5kZWh5ZHJhdGVkLG89PT1udWxsfHxlYyhvKXx8dGMobykpKXJldHVybiByfWVsc2UgaWYoci50YWc9PT0xOSYmKHIubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcj09PSJmb3J3YXJkcyJ8fHIubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcj09PSJiYWNrd2FyZHMifHxyLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXI9PT0idW5zdGFibGVfbGVnYWN5LWJhY2t3YXJkcyJ8fHIubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcj09PSJ0b2dldGhlciIpKXtpZigoci5mbGFncyYxMjgpIT09MClyZXR1cm4gcn1lbHNlIGlmKHIuY2hpbGQhPT1udWxsKXtyLmNoaWxkLnJldHVybj1yLHI9ci5jaGlsZDtjb250aW51ZX1pZihyPT09dClicmVhaztmb3IoO3Iuc2libGluZz09PW51bGw7KXtpZihyLnJldHVybj09PW51bGx8fHIucmV0dXJuPT09dClyZXR1cm4gbnVsbDtyPXIucmV0dXJufXIuc2libGluZy5yZXR1cm49ci5yZXR1cm4scj1yLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyICRuPTAsdmU9bnVsbCxxZT1udWxsLGx0PW51bGwsQm89ITEsT2E9ITEsWnI9ITEsam89MCxSaT0wLExhPW51bGwsQ0k9MDtmdW5jdGlvbiBldCgpe3Rocm93IEVycm9yKGkoMzIxKSl9ZnVuY3Rpb24gV3ModCxyKXtpZihyPT09bnVsbClyZXR1cm4hMTtmb3IodmFyIG89MDtvPHIubGVuZ3RoJiZvPHQubGVuZ3RoO28rKylpZighVnQodFtvXSxyW29dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBYcyh0LHIsbyxzLHAsZyl7cmV0dXJuICRuPWcsdmU9cixyLm1lbW9pemVkU3RhdGU9bnVsbCxyLnVwZGF0ZVF1ZXVlPW51bGwsci5sYW5lcz0wLEcuSD10PT09bnVsbHx8dC5tZW1vaXplZFN0YXRlPT09bnVsbD93RTpkdSxacj0hMSxnPW8ocyxwKSxacj0hMSxPYSYmKGc9WXkocixvLHMscCkpLFZ5KHQpLGd9ZnVuY3Rpb24gVnkodCl7Ry5IPWtpO3ZhciByPXFlIT09bnVsbCYmcWUubmV4dCE9PW51bGw7aWYoJG49MCxsdD1xZT12ZT1udWxsLEJvPSExLFJpPTAsTGE9bnVsbCxyKXRocm93IEVycm9yKGkoMzAwKSk7dD09PW51bGx8fHN0fHwodD10LmRlcGVuZGVuY2llcyx0IT09bnVsbCYma28odCkmJihzdD0hMCkpfWZ1bmN0aW9uIFl5KHQscixvLHMpe3ZlPXQ7dmFyIHA9MDtkb3tpZihPYSYmKExhPW51bGwpLFJpPTAsT2E9ITEsMjU8PXApdGhyb3cgRXJyb3IoaSgzMDEpKTtpZihwKz0xLGx0PXFlPW51bGwsdC51cGRhdGVRdWV1ZSE9bnVsbCl7dmFyIGc9dC51cGRhdGVRdWV1ZTtnLmxhc3RFZmZlY3Q9bnVsbCxnLmV2ZW50cz1udWxsLGcuc3RvcmVzPW51bGwsZy5tZW1vQ2FjaGUhPW51bGwmJihnLm1lbW9DYWNoZS5pbmRleD0wKX1HLkg9a0UsZz1yKG8scyl9d2hpbGUoT2EpO3JldHVybiBnfWZ1bmN0aW9uIElJKCl7dmFyIHQ9Ry5ILHI9dC51c2VTdGF0ZSgpWzBdO3JldHVybiByPXR5cGVvZiByLnRoZW49PSJmdW5jdGlvbiI/Tmkocik6cix0PXQudXNlU3RhdGUoKVswXSwocWUhPT1udWxsP3FlLm1lbW9pemVkU3RhdGU6bnVsbCkhPT10JiYodmUuZmxhZ3N8PTEwMjQpLHJ9ZnVuY3Rpb24gWnMoKXt2YXIgdD1qbyE9PTA7cmV0dXJuIGpvPTAsdH1mdW5jdGlvbiBRcyh0LHIsbyl7ci51cGRhdGVRdWV1ZT10LnVwZGF0ZVF1ZXVlLHIuZmxhZ3MmPS0yMDUzLHQubGFuZXMmPX5vfWZ1bmN0aW9uIEpzKHQpe2lmKEJvKXtmb3IodD10Lm1lbW9pemVkU3RhdGU7dCE9PW51bGw7KXt2YXIgcj10LnF1ZXVlO3IhPT1udWxsJiYoci5wZW5kaW5nPW51bGwpLHQ9dC5uZXh0fUJvPSExfSRuPTAsbHQ9cWU9dmU9bnVsbCxPYT0hMSxSaT1qbz0wLExhPW51bGx9ZnVuY3Rpb24ga3QoKXt2YXIgdD17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtyZXR1cm4gbHQ9PT1udWxsP3ZlLm1lbW9pemVkU3RhdGU9bHQ9dDpsdD1sdC5uZXh0PXQsbHR9ZnVuY3Rpb24gYXQoKXtpZihxZT09PW51bGwpe3ZhciB0PXZlLmFsdGVybmF0ZTt0PXQhPT1udWxsP3QubWVtb2l6ZWRTdGF0ZTpudWxsfWVsc2UgdD1xZS5uZXh0O3ZhciByPWx0PT09bnVsbD92ZS5tZW1vaXplZFN0YXRlOmx0Lm5leHQ7aWYociE9PW51bGwpbHQ9cixxZT10O2Vsc2V7aWYodD09PW51bGwpdGhyb3cgdmUuYWx0ZXJuYXRlPT09bnVsbD9FcnJvcihpKDQ2NykpOkVycm9yKGkoMzEwKSk7cWU9dCx0PXttZW1vaXplZFN0YXRlOnFlLm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOnFlLmJhc2VTdGF0ZSxiYXNlUXVldWU6cWUuYmFzZVF1ZXVlLHF1ZXVlOnFlLnF1ZXVlLG5leHQ6bnVsbH0sbHQ9PT1udWxsP3ZlLm1lbW9pemVkU3RhdGU9bHQ9dDpsdD1sdC5uZXh0PXR9cmV0dXJuIGx0fWZ1bmN0aW9uIHpvKCl7cmV0dXJue2xhc3RFZmZlY3Q6bnVsbCxldmVudHM6bnVsbCxzdG9yZXM6bnVsbCxtZW1vQ2FjaGU6bnVsbH19ZnVuY3Rpb24gTmkodCl7dmFyIHI9Umk7cmV0dXJuIFJpKz0xLExhPT09bnVsbCYmKExhPVtdKSx0PUZ5KExhLHQscikscj12ZSwobHQ9PT1udWxsP3IubWVtb2l6ZWRTdGF0ZTpsdC5uZXh0KT09PW51bGwmJihyPXIuYWx0ZXJuYXRlLEcuSD1yPT09bnVsbHx8ci5tZW1vaXplZFN0YXRlPT09bnVsbD93RTpkdSksdH1mdW5jdGlvbiBxbyh0KXtpZih0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiKXtpZih0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBOaSh0KTtpZih0LiQkdHlwZW9mPT09aylyZXR1cm4gdnQodCl9dGhyb3cgRXJyb3IoaSg0MzgsU3RyaW5nKHQpKSl9ZnVuY3Rpb24gZXUodCl7dmFyIHI9bnVsbCxvPXZlLnVwZGF0ZVF1ZXVlO2lmKG8hPT1udWxsJiYocj1vLm1lbW9DYWNoZSkscj09bnVsbCl7dmFyIHM9dmUuYWx0ZXJuYXRlO3MhPT1udWxsJiYocz1zLnVwZGF0ZVF1ZXVlLHMhPT1udWxsJiYocz1zLm1lbW9DYWNoZSxzIT1udWxsJiYocj17ZGF0YTpzLmRhdGEubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLnNsaWNlKCl9KSxpbmRleDowfSkpKX1pZihyPT1udWxsJiYocj17ZGF0YTpbXSxpbmRleDowfSksbz09PW51bGwmJihvPXpvKCksdmUudXBkYXRlUXVldWU9byksby5tZW1vQ2FjaGU9cixvPXIuZGF0YVtyLmluZGV4XSxvPT09dm9pZCAwKWZvcihvPXIuZGF0YVtyLmluZGV4XT1BcnJheSh0KSxzPTA7czx0O3MrKylvW3NdPVU7cmV0dXJuIHIuaW5kZXgrKyxvfWZ1bmN0aW9uIFZuKHQscil7cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3IodCk6cn1mdW5jdGlvbiBQbyh0KXt2YXIgcj1hdCgpO3JldHVybiB0dShyLHFlLHQpfWZ1bmN0aW9uIHR1KHQscixvKXt2YXIgcz10LnF1ZXVlO2lmKHM9PT1udWxsKXRocm93IEVycm9yKGkoMzExKSk7cy5sYXN0UmVuZGVyZWRSZWR1Y2VyPW87dmFyIHA9dC5iYXNlUXVldWUsZz1zLnBlbmRpbmc7aWYoZyE9PW51bGwpe2lmKHAhPT1udWxsKXt2YXIgdj1wLm5leHQ7cC5uZXh0PWcubmV4dCxnLm5leHQ9dn1yLmJhc2VRdWV1ZT1wPWcscy5wZW5kaW5nPW51bGx9aWYoZz10LmJhc2VTdGF0ZSxwPT09bnVsbCl0Lm1lbW9pemVkU3RhdGU9ZztlbHNle3I9cC5uZXh0O3ZhciBBPXY9bnVsbCxEPW51bGwsUD1yLFg9ITE7ZG97dmFyIFE9UC5sYW5lJi01MzY4NzA5MTM7aWYoUSE9PVAubGFuZT8oa2UmUSk9PT1ROigkbiZRKT09PVEpe3ZhciBIPVAucmV2ZXJ0TGFuZTtpZihIPT09MClEIT09bnVsbCYmKEQ9RC5uZXh0PXtsYW5lOjAscmV2ZXJ0TGFuZTowLGdlc3R1cmU6bnVsbCxhY3Rpb246UC5hY3Rpb24saGFzRWFnZXJTdGF0ZTpQLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTpQLmVhZ2VyU3RhdGUsbmV4dDpudWxsfSksUT09PU5hJiYoWD0hMCk7ZWxzZSBpZigoJG4mSCk9PT1IKXtQPVAubmV4dCxIPT09TmEmJihYPSEwKTtjb250aW51ZX1lbHNlIFE9e2xhbmU6MCxyZXZlcnRMYW5lOlAucmV2ZXJ0TGFuZSxnZXN0dXJlOm51bGwsYWN0aW9uOlAuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6UC5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6UC5lYWdlclN0YXRlLG5leHQ6bnVsbH0sRD09PW51bGw/KEE9RD1RLHY9Zyk6RD1ELm5leHQ9USx2ZS5sYW5lc3w9SCx5cnw9SDtRPVAuYWN0aW9uLFpyJiZvKGcsUSksZz1QLmhhc0VhZ2VyU3RhdGU/UC5lYWdlclN0YXRlOm8oZyxRKX1lbHNlIEg9e2xhbmU6USxyZXZlcnRMYW5lOlAucmV2ZXJ0TGFuZSxnZXN0dXJlOlAuZ2VzdHVyZSxhY3Rpb246UC5hY3Rpb24saGFzRWFnZXJTdGF0ZTpQLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTpQLmVhZ2VyU3RhdGUsbmV4dDpudWxsfSxEPT09bnVsbD8oQT1EPUgsdj1nKTpEPUQubmV4dD1ILHZlLmxhbmVzfD1RLHlyfD1RO1A9UC5uZXh0fXdoaWxlKFAhPT1udWxsJiZQIT09cik7aWYoRD09PW51bGw/dj1nOkQubmV4dD1BLCFWdChnLHQubWVtb2l6ZWRTdGF0ZSkmJihzdD0hMCxYJiYobz13YSxvIT09bnVsbCkpKXRocm93IG87dC5tZW1vaXplZFN0YXRlPWcsdC5iYXNlU3RhdGU9dix0LmJhc2VRdWV1ZT1ELHMubGFzdFJlbmRlcmVkU3RhdGU9Z31yZXR1cm4gcD09PW51bGwmJihzLmxhbmVzPTApLFt0Lm1lbW9pemVkU3RhdGUscy5kaXNwYXRjaF19ZnVuY3Rpb24gbnUodCl7dmFyIHI9YXQoKSxvPXIucXVldWU7aWYobz09PW51bGwpdGhyb3cgRXJyb3IoaSgzMTEpKTtvLmxhc3RSZW5kZXJlZFJlZHVjZXI9dDt2YXIgcz1vLmRpc3BhdGNoLHA9by5wZW5kaW5nLGc9ci5tZW1vaXplZFN0YXRlO2lmKHAhPT1udWxsKXtvLnBlbmRpbmc9bnVsbDt2YXIgdj1wPXAubmV4dDtkbyBnPXQoZyx2LmFjdGlvbiksdj12Lm5leHQ7d2hpbGUodiE9PXApO1Z0KGcsci5tZW1vaXplZFN0YXRlKXx8KHN0PSEwKSxyLm1lbW9pemVkU3RhdGU9ZyxyLmJhc2VRdWV1ZT09PW51bGwmJihyLmJhc2VTdGF0ZT1nKSxvLmxhc3RSZW5kZXJlZFN0YXRlPWd9cmV0dXJuW2csc119ZnVuY3Rpb24gS3kodCxyLG8pe3ZhciBzPXZlLHA9YXQoKSxnPUxlO2lmKGcpe2lmKG89PT12b2lkIDApdGhyb3cgRXJyb3IoaSg0MDcpKTtvPW8oKX1lbHNlIG89cigpO3ZhciB2PSFWdCgocWV8fHApLm1lbW9pemVkU3RhdGUsbyk7aWYodiYmKHAubWVtb2l6ZWRTdGF0ZT1vLHN0PSEwKSxwPXAucXVldWUsaXUoWnkuYmluZChudWxsLHMscCx0KSxbdF0pLHAuZ2V0U25hcHNob3QhPT1yfHx2fHxsdCE9PW51bGwmJmx0Lm1lbW9pemVkU3RhdGUudGFnJjEpe2lmKHMuZmxhZ3N8PTIwNDgsRGEoOSx7ZGVzdHJveTp2b2lkIDB9LFh5LmJpbmQobnVsbCxzLHAsbyxyKSxudWxsKSwkZT09PW51bGwpdGhyb3cgRXJyb3IoaSgzNDkpKTtnfHwoJG4mMTI3KSE9PTB8fFd5KHMscixvKX1yZXR1cm4gb31mdW5jdGlvbiBXeSh0LHIsbyl7dC5mbGFnc3w9MTYzODQsdD17Z2V0U25hcHNob3Q6cix2YWx1ZTpvfSxyPXZlLnVwZGF0ZVF1ZXVlLHI9PT1udWxsPyhyPXpvKCksdmUudXBkYXRlUXVldWU9cixyLnN0b3Jlcz1bdF0pOihvPXIuc3RvcmVzLG89PT1udWxsP3Iuc3RvcmVzPVt0XTpvLnB1c2godCkpfWZ1bmN0aW9uIFh5KHQscixvLHMpe3IudmFsdWU9byxyLmdldFNuYXBzaG90PXMsUXkocikmJkp5KHQpfWZ1bmN0aW9uIFp5KHQscixvKXtyZXR1cm4gbyhmdW5jdGlvbigpe1F5KHIpJiZKeSh0KX0pfWZ1bmN0aW9uIFF5KHQpe3ZhciByPXQuZ2V0U25hcHNob3Q7dD10LnZhbHVlO3RyeXt2YXIgbz1yKCk7cmV0dXJuIVZ0KHQsbyl9Y2F0Y2h7cmV0dXJuITB9fWZ1bmN0aW9uIEp5KHQpe3ZhciByPVByKHQsMik7ciE9PW51bGwmJnp0KHIsdCwyKX1mdW5jdGlvbiBydSh0KXt2YXIgcj1rdCgpO2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXt2YXIgbz10O2lmKHQ9bygpLFpyKXtYZSghMCk7dHJ5e28oKX1maW5hbGx5e1hlKCExKX19fXJldHVybiByLm1lbW9pemVkU3RhdGU9ci5iYXNlU3RhdGU9dCxyLnF1ZXVlPXtwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6Vm4sbGFzdFJlbmRlcmVkU3RhdGU6dH0scn1mdW5jdGlvbiBlRSh0LHIsbyxzKXtyZXR1cm4gdC5iYXNlU3RhdGU9byx0dSh0LHFlLHR5cGVvZiBzPT0iZnVuY3Rpb24iP3M6Vm4pfWZ1bmN0aW9uIE9JKHQscixvLHMscCl7aWYoJG8odCkpdGhyb3cgRXJyb3IoaSg0ODUpKTtpZih0PXIuYWN0aW9uLHQhPT1udWxsKXt2YXIgZz17cGF5bG9hZDpwLGFjdGlvbjp0LG5leHQ6bnVsbCxpc1RyYW5zaXRpb246ITAsc3RhdHVzOiJwZW5kaW5nIix2YWx1ZTpudWxsLHJlYXNvbjpudWxsLGxpc3RlbmVyczpbXSx0aGVuOmZ1bmN0aW9uKHYpe2cubGlzdGVuZXJzLnB1c2godil9fTtHLlQhPT1udWxsP28oITApOmcuaXNUcmFuc2l0aW9uPSExLHMoZyksbz1yLnBlbmRpbmcsbz09PW51bGw/KGcubmV4dD1yLnBlbmRpbmc9Zyx0RShyLGcpKTooZy5uZXh0PW8ubmV4dCxyLnBlbmRpbmc9by5uZXh0PWcpfX1mdW5jdGlvbiB0RSh0LHIpe3ZhciBvPXIuYWN0aW9uLHM9ci5wYXlsb2FkLHA9dC5zdGF0ZTtpZihyLmlzVHJhbnNpdGlvbil7dmFyIGc9Ry5ULHY9e307Ry5UPXY7dHJ5e3ZhciBBPW8ocCxzKSxEPUcuUztEIT09bnVsbCYmRCh2LEEpLG5FKHQscixBKX1jYXRjaChQKXthdSh0LHIsUCl9ZmluYWxseXtnIT09bnVsbCYmdi50eXBlcyE9PW51bGwmJihnLnR5cGVzPXYudHlwZXMpLEcuVD1nfX1lbHNlIHRyeXtnPW8ocCxzKSxuRSh0LHIsZyl9Y2F0Y2goUCl7YXUodCxyLFApfX1mdW5jdGlvbiBuRSh0LHIsbyl7byE9PW51bGwmJnR5cGVvZiBvPT0ib2JqZWN0IiYmdHlwZW9mIG8udGhlbj09ImZ1bmN0aW9uIj9vLnRoZW4oZnVuY3Rpb24ocyl7ckUodCxyLHMpfSxmdW5jdGlvbihzKXtyZXR1cm4gYXUodCxyLHMpfSk6ckUodCxyLG8pfWZ1bmN0aW9uIHJFKHQscixvKXtyLnN0YXR1cz0iZnVsZmlsbGVkIixyLnZhbHVlPW8sYUUociksdC5zdGF0ZT1vLHI9dC5wZW5kaW5nLHIhPT1udWxsJiYobz1yLm5leHQsbz09PXI/dC5wZW5kaW5nPW51bGw6KG89by5uZXh0LHIubmV4dD1vLHRFKHQsbykpKX1mdW5jdGlvbiBhdSh0LHIsbyl7dmFyIHM9dC5wZW5kaW5nO2lmKHQucGVuZGluZz1udWxsLHMhPT1udWxsKXtzPXMubmV4dDtkbyByLnN0YXR1cz0icmVqZWN0ZWQiLHIucmVhc29uPW8sYUUocikscj1yLm5leHQ7d2hpbGUociE9PXMpfXQuYWN0aW9uPW51bGx9ZnVuY3Rpb24gYUUodCl7dD10Lmxpc3RlbmVycztmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKykoMCx0W3JdKSgpfWZ1bmN0aW9uIGlFKHQscil7cmV0dXJuIHJ9ZnVuY3Rpb24gb0UodCxyKXtpZihMZSl7dmFyIG89JGUuZm9ybVN0YXRlO2lmKG8hPT1udWxsKXtlOnt2YXIgcz12ZTtpZihMZSl7aWYoS2Upe3Q6e2Zvcih2YXIgcD1LZSxnPWZuO3Aubm9kZVR5cGUhPT04Oyl7aWYoIWcpe3A9bnVsbDticmVhayB0fWlmKHA9bW4ocC5uZXh0U2libGluZykscD09PW51bGwpe3A9bnVsbDticmVhayB0fX1nPXAuZGF0YSxwPWc9PT0iRiEifHxnPT09IkYiP3A6bnVsbH1pZihwKXtLZT1tbihwLm5leHRTaWJsaW5nKSxzPXAuZGF0YT09PSJGISI7YnJlYWsgZX19dXIocyl9cz0hMX1zJiYocj1vWzBdKX19cmV0dXJuIG89a3QoKSxvLm1lbW9pemVkU3RhdGU9by5iYXNlU3RhdGU9cixzPXtwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6aUUsbGFzdFJlbmRlcmVkU3RhdGU6cn0sby5xdWV1ZT1zLG89X0UuYmluZChudWxsLHZlLHMpLHMuZGlzcGF0Y2g9byxzPXJ1KCExKSxnPWN1LmJpbmQobnVsbCx2ZSwhMSxzLnF1ZXVlKSxzPWt0KCkscD17c3RhdGU6cixkaXNwYXRjaDpudWxsLGFjdGlvbjp0LHBlbmRpbmc6bnVsbH0scy5xdWV1ZT1wLG89T0kuYmluZChudWxsLHZlLHAsZyxvKSxwLmRpc3BhdGNoPW8scy5tZW1vaXplZFN0YXRlPXQsW3IsbywhMV19ZnVuY3Rpb24gbEUodCl7dmFyIHI9YXQoKTtyZXR1cm4gc0UocixxZSx0KX1mdW5jdGlvbiBzRSh0LHIsbyl7aWYocj10dSh0LHIsaUUpWzBdLHQ9UG8oVm4pWzBdLHR5cGVvZiByPT0ib2JqZWN0IiYmciE9PW51bGwmJnR5cGVvZiByLnRoZW49PSJmdW5jdGlvbiIpdHJ5e3ZhciBzPU5pKHIpfWNhdGNoKHYpe3Rocm93IHY9PT1rYT9Pbzp2fWVsc2Ugcz1yO3I9YXQoKTt2YXIgcD1yLnF1ZXVlLGc9cC5kaXNwYXRjaDtyZXR1cm4gbyE9PXIubWVtb2l6ZWRTdGF0ZSYmKHZlLmZsYWdzfD0yMDQ4LERhKDkse2Rlc3Ryb3k6dm9pZCAwfSxMSS5iaW5kKG51bGwscCxvKSxudWxsKSksW3MsZyx0XX1mdW5jdGlvbiBMSSh0LHIpe3QuYWN0aW9uPXJ9ZnVuY3Rpb24gdUUodCl7dmFyIHI9YXQoKSxvPXFlO2lmKG8hPT1udWxsKXJldHVybiBzRShyLG8sdCk7YXQoKSxyPXIubWVtb2l6ZWRTdGF0ZSxvPWF0KCk7dmFyIHM9by5xdWV1ZS5kaXNwYXRjaDtyZXR1cm4gby5tZW1vaXplZFN0YXRlPXQsW3IscywhMV19ZnVuY3Rpb24gRGEodCxyLG8scyl7cmV0dXJuIHQ9e3RhZzp0LGNyZWF0ZTpvLGRlcHM6cyxpbnN0OnIsbmV4dDpudWxsfSxyPXZlLnVwZGF0ZVF1ZXVlLHI9PT1udWxsJiYocj16bygpLHZlLnVwZGF0ZVF1ZXVlPXIpLG89ci5sYXN0RWZmZWN0LG89PT1udWxsP3IubGFzdEVmZmVjdD10Lm5leHQ9dDoocz1vLm5leHQsby5uZXh0PXQsdC5uZXh0PXMsci5sYXN0RWZmZWN0PXQpLHR9ZnVuY3Rpb24gY0UoKXtyZXR1cm4gYXQoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIEdvKHQscixvLHMpe3ZhciBwPWt0KCk7dmUuZmxhZ3N8PXQscC5tZW1vaXplZFN0YXRlPURhKDF8cix7ZGVzdHJveTp2b2lkIDB9LG8scz09PXZvaWQgMD9udWxsOnMpfWZ1bmN0aW9uIEhvKHQscixvLHMpe3ZhciBwPWF0KCk7cz1zPT09dm9pZCAwP251bGw6czt2YXIgZz1wLm1lbW9pemVkU3RhdGUuaW5zdDtxZSE9PW51bGwmJnMhPT1udWxsJiZXcyhzLHFlLm1lbW9pemVkU3RhdGUuZGVwcyk/cC5tZW1vaXplZFN0YXRlPURhKHIsZyxvLHMpOih2ZS5mbGFnc3w9dCxwLm1lbW9pemVkU3RhdGU9RGEoMXxyLGcsbyxzKSl9ZnVuY3Rpb24gZEUodCxyKXtHbyg4MzkwNjU2LDgsdCxyKX1mdW5jdGlvbiBpdSh0LHIpe0hvKDIwNDgsOCx0LHIpfWZ1bmN0aW9uIERJKHQpe3ZlLmZsYWdzfD00O3ZhciByPXZlLnVwZGF0ZVF1ZXVlO2lmKHI9PT1udWxsKXI9em8oKSx2ZS51cGRhdGVRdWV1ZT1yLHIuZXZlbnRzPVt0XTtlbHNle3ZhciBvPXIuZXZlbnRzO289PT1udWxsP3IuZXZlbnRzPVt0XTpvLnB1c2godCl9fWZ1bmN0aW9uIHBFKHQpe3ZhciByPWF0KCkubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gREkoe3JlZjpyLG5leHRJbXBsOnR9KSxmdW5jdGlvbigpe2lmKChGZSYyKSE9PTApdGhyb3cgRXJyb3IoaSg0NDApKTtyZXR1cm4gci5pbXBsLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX1mdW5jdGlvbiBmRSh0LHIpe3JldHVybiBIbyg0LDIsdCxyKX1mdW5jdGlvbiBnRSh0LHIpe3JldHVybiBIbyg0LDQsdCxyKX1mdW5jdGlvbiBtRSh0LHIpe2lmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXt0PXQoKTt2YXIgbz1yKHQpO3JldHVybiBmdW5jdGlvbigpe3R5cGVvZiBvPT0iZnVuY3Rpb24iP28oKTpyKG51bGwpfX1pZihyIT1udWxsKXJldHVybiB0PXQoKSxyLmN1cnJlbnQ9dCxmdW5jdGlvbigpe3IuY3VycmVudD1udWxsfX1mdW5jdGlvbiBoRSh0LHIsbyl7bz1vIT1udWxsP28uY29uY2F0KFt0XSk6bnVsbCxIbyg0LDQsbUUuYmluZChudWxsLHIsdCksbyl9ZnVuY3Rpb24gb3UoKXt9ZnVuY3Rpb24gYkUodCxyKXt2YXIgbz1hdCgpO3I9cj09PXZvaWQgMD9udWxsOnI7dmFyIHM9by5tZW1vaXplZFN0YXRlO3JldHVybiByIT09bnVsbCYmV3MocixzWzFdKT9zWzBdOihvLm1lbW9pemVkU3RhdGU9W3Qscl0sdCl9ZnVuY3Rpb24geUUodCxyKXt2YXIgbz1hdCgpO3I9cj09PXZvaWQgMD9udWxsOnI7dmFyIHM9by5tZW1vaXplZFN0YXRlO2lmKHIhPT1udWxsJiZXcyhyLHNbMV0pKXJldHVybiBzWzBdO2lmKHM9dCgpLFpyKXtYZSghMCk7dHJ5e3QoKX1maW5hbGx5e1hlKCExKX19cmV0dXJuIG8ubWVtb2l6ZWRTdGF0ZT1bcyxyXSxzfWZ1bmN0aW9uIGx1KHQscixvKXtyZXR1cm4gbz09PXZvaWQgMHx8KCRuJjEwNzM3NDE4MjQpIT09MCYmKGtlJjI2MTkzMCk9PT0wP3QubWVtb2l6ZWRTdGF0ZT1yOih0Lm1lbW9pemVkU3RhdGU9byx0PUVTKCksdmUubGFuZXN8PXQseXJ8PXQsbyl9ZnVuY3Rpb24gRUUodCxyLG8scyl7cmV0dXJuIFZ0KG8scik/bzpJYS5jdXJyZW50IT09bnVsbD8odD1sdSh0LG8scyksVnQodCxyKXx8KHN0PSEwKSx0KTooJG4mNDIpPT09MHx8KCRuJjEwNzM3NDE4MjQpIT09MCYmKGtlJjI2MTkzMCk9PT0wPyhzdD0hMCx0Lm1lbW9pemVkU3RhdGU9byk6KHQ9RVMoKSx2ZS5sYW5lc3w9dCx5cnw9dCxyKX1mdW5jdGlvbiBTRSh0LHIsbyxzLHApe3ZhciBnPWVlLnA7ZWUucD1nIT09MCYmOD5nP2c6ODt2YXIgdj1HLlQsQT17fTtHLlQ9QSxjdSh0LCExLHIsbyk7dHJ5e3ZhciBEPXAoKSxQPUcuUztpZihQIT09bnVsbCYmUChBLEQpLEQhPT1udWxsJiZ0eXBlb2YgRD09Im9iamVjdCImJnR5cGVvZiBELnRoZW49PSJmdW5jdGlvbiIpe3ZhciBYPWtJKEQscyk7d2kodCxyLFgsUXQodCkpfWVsc2Ugd2kodCxyLHMsUXQodCkpfWNhdGNoKFEpe3dpKHQscix7dGhlbjpmdW5jdGlvbigpe30sc3RhdHVzOiJyZWplY3RlZCIscmVhc29uOlF9LFF0KCkpfWZpbmFsbHl7ZWUucD1nLHYhPT1udWxsJiZBLnR5cGVzIT09bnVsbCYmKHYudHlwZXM9QS50eXBlcyksRy5UPXZ9fWZ1bmN0aW9uIE1JKCl7fWZ1bmN0aW9uIHN1KHQscixvLHMpe2lmKHQudGFnIT09NSl0aHJvdyBFcnJvcihpKDQ3NikpO3ZhciBwPXZFKHQpLnF1ZXVlO1NFKHQscCxyLG5lLG89PT1udWxsP01JOmZ1bmN0aW9uKCl7cmV0dXJuIFRFKHQpLG8ocyl9KX1mdW5jdGlvbiB2RSh0KXt2YXIgcj10Lm1lbW9pemVkU3RhdGU7aWYociE9PW51bGwpcmV0dXJuIHI7cj17bWVtb2l6ZWRTdGF0ZTpuZSxiYXNlU3RhdGU6bmUsYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpWbixsYXN0UmVuZGVyZWRTdGF0ZTpuZX0sbmV4dDpudWxsfTt2YXIgbz17fTtyZXR1cm4gci5uZXh0PXttZW1vaXplZFN0YXRlOm8sYmFzZVN0YXRlOm8sYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpWbixsYXN0UmVuZGVyZWRTdGF0ZTpvfSxuZXh0Om51bGx9LHQubWVtb2l6ZWRTdGF0ZT1yLHQ9dC5hbHRlcm5hdGUsdCE9PW51bGwmJih0Lm1lbW9pemVkU3RhdGU9cikscn1mdW5jdGlvbiBURSh0KXt2YXIgcj12RSh0KTtyLm5leHQ9PT1udWxsJiYocj10LmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlKSx3aSh0LHIubmV4dC5xdWV1ZSx7fSxRdCgpKX1mdW5jdGlvbiB1dSgpe3JldHVybiB2dCgkaSl9ZnVuY3Rpb24geEUoKXtyZXR1cm4gYXQoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIEFFKCl7cmV0dXJuIGF0KCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBVSSh0KXtmb3IodmFyIHI9dC5yZXR1cm47ciE9PW51bGw7KXtzd2l0Y2goci50YWcpe2Nhc2UgMjQ6Y2FzZSAzOnZhciBvPVF0KCk7dD1wcihvKTt2YXIgcz1mcihyLHQsbyk7cyE9PW51bGwmJih6dChzLHIsbykseGkocyxyLG8pKSxyPXtjYWNoZTpCcygpfSx0LnBheWxvYWQ9cjtyZXR1cm59cj1yLnJldHVybn19ZnVuY3Rpb24gRkkodCxyLG8pe3ZhciBzPVF0KCk7bz17bGFuZTpzLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOm8saGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSwkbyh0KT9SRShyLG8pOihvPU5zKHQscixvLHMpLG8hPT1udWxsJiYoenQobyx0LHMpLE5FKG8scixzKSkpfWZ1bmN0aW9uIF9FKHQscixvKXt2YXIgcz1RdCgpO3dpKHQscixvLHMpfWZ1bmN0aW9uIHdpKHQscixvLHMpe3ZhciBwPXtsYW5lOnMscmV2ZXJ0TGFuZTowLGdlc3R1cmU6bnVsbCxhY3Rpb246byxoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9O2lmKCRvKHQpKVJFKHIscCk7ZWxzZXt2YXIgZz10LmFsdGVybmF0ZTtpZih0LmxhbmVzPT09MCYmKGc9PT1udWxsfHxnLmxhbmVzPT09MCkmJihnPXIubGFzdFJlbmRlcmVkUmVkdWNlcixnIT09bnVsbCkpdHJ5e3ZhciB2PXIubGFzdFJlbmRlcmVkU3RhdGUsQT1nKHYsbyk7aWYocC5oYXNFYWdlclN0YXRlPSEwLHAuZWFnZXJTdGF0ZT1BLFZ0KEEsdikpcmV0dXJuIF9vKHQscixwLDApLCRlPT09bnVsbCYmQW8oKSwhMX1jYXRjaHt9ZmluYWxseXt9aWYobz1Ocyh0LHIscCxzKSxvIT09bnVsbClyZXR1cm4genQobyx0LHMpLE5FKG8scixzKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBjdSh0LHIsbyxzKXtpZihzPXtsYW5lOjIscmV2ZXJ0TGFuZTpQdSgpLGdlc3R1cmU6bnVsbCxhY3Rpb246cyxoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LCRvKHQpKXtpZihyKXRocm93IEVycm9yKGkoNDc5KSl9ZWxzZSByPU5zKHQsbyxzLDIpLHIhPT1udWxsJiZ6dChyLHQsMil9ZnVuY3Rpb24gJG8odCl7dmFyIHI9dC5hbHRlcm5hdGU7cmV0dXJuIHQ9PT12ZXx8ciE9PW51bGwmJnI9PT12ZX1mdW5jdGlvbiBSRSh0LHIpe09hPUJvPSEwO3ZhciBvPXQucGVuZGluZztvPT09bnVsbD9yLm5leHQ9cjooci5uZXh0PW8ubmV4dCxvLm5leHQ9ciksdC5wZW5kaW5nPXJ9ZnVuY3Rpb24gTkUodCxyLG8pe2lmKChvJjQxOTQwNDgpIT09MCl7dmFyIHM9ci5sYW5lcztzJj10LnBlbmRpbmdMYW5lcyxvfD1zLHIubGFuZXM9byxPYih0LG8pfX12YXIga2k9e3JlYWRDb250ZXh0OnZ0LHVzZTpxbyx1c2VDYWxsYmFjazpldCx1c2VDb250ZXh0OmV0LHVzZUVmZmVjdDpldCx1c2VJbXBlcmF0aXZlSGFuZGxlOmV0LHVzZUxheW91dEVmZmVjdDpldCx1c2VJbnNlcnRpb25FZmZlY3Q6ZXQsdXNlTWVtbzpldCx1c2VSZWR1Y2VyOmV0LHVzZVJlZjpldCx1c2VTdGF0ZTpldCx1c2VEZWJ1Z1ZhbHVlOmV0LHVzZURlZmVycmVkVmFsdWU6ZXQsdXNlVHJhbnNpdGlvbjpldCx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpldCx1c2VJZDpldCx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czpldCx1c2VGb3JtU3RhdGU6ZXQsdXNlQWN0aW9uU3RhdGU6ZXQsdXNlT3B0aW1pc3RpYzpldCx1c2VNZW1vQ2FjaGU6ZXQsdXNlQ2FjaGVSZWZyZXNoOmV0fTtraS51c2VFZmZlY3RFdmVudD1ldDt2YXIgd0U9e3JlYWRDb250ZXh0OnZ0LHVzZTpxbyx1c2VDYWxsYmFjazpmdW5jdGlvbih0LHIpe3JldHVybiBrdCgpLm1lbW9pemVkU3RhdGU9W3Qscj09PXZvaWQgMD9udWxsOnJdLHR9LHVzZUNvbnRleHQ6dnQsdXNlRWZmZWN0OmRFLHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24odCxyLG8pe289byE9bnVsbD9vLmNvbmNhdChbdF0pOm51bGwsR28oNDE5NDMwOCw0LG1FLmJpbmQobnVsbCxyLHQpLG8pfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24odCxyKXtyZXR1cm4gR28oNDE5NDMwOCw0LHQscil9LHVzZUluc2VydGlvbkVmZmVjdDpmdW5jdGlvbih0LHIpe0dvKDQsMix0LHIpfSx1c2VNZW1vOmZ1bmN0aW9uKHQscil7dmFyIG89a3QoKTtyPXI9PT12b2lkIDA/bnVsbDpyO3ZhciBzPXQoKTtpZihacil7WGUoITApO3RyeXt0KCl9ZmluYWxseXtYZSghMSl9fXJldHVybiBvLm1lbW9pemVkU3RhdGU9W3Mscl0sc30sdXNlUmVkdWNlcjpmdW5jdGlvbih0LHIsbyl7dmFyIHM9a3QoKTtpZihvIT09dm9pZCAwKXt2YXIgcD1vKHIpO2lmKFpyKXtYZSghMCk7dHJ5e28ocil9ZmluYWxseXtYZSghMSl9fX1lbHNlIHA9cjtyZXR1cm4gcy5tZW1vaXplZFN0YXRlPXMuYmFzZVN0YXRlPXAsdD17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOnQsbGFzdFJlbmRlcmVkU3RhdGU6cH0scy5xdWV1ZT10LHQ9dC5kaXNwYXRjaD1GSS5iaW5kKG51bGwsdmUsdCksW3MubWVtb2l6ZWRTdGF0ZSx0XX0sdXNlUmVmOmZ1bmN0aW9uKHQpe3ZhciByPWt0KCk7cmV0dXJuIHQ9e2N1cnJlbnQ6dH0sci5tZW1vaXplZFN0YXRlPXR9LHVzZVN0YXRlOmZ1bmN0aW9uKHQpe3Q9cnUodCk7dmFyIHI9dC5xdWV1ZSxvPV9FLmJpbmQobnVsbCx2ZSxyKTtyZXR1cm4gci5kaXNwYXRjaD1vLFt0Lm1lbW9pemVkU3RhdGUsb119LHVzZURlYnVnVmFsdWU6b3UsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbih0LHIpe3ZhciBvPWt0KCk7cmV0dXJuIGx1KG8sdCxyKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciB0PXJ1KCExKTtyZXR1cm4gdD1TRS5iaW5kKG51bGwsdmUsdC5xdWV1ZSwhMCwhMSksa3QoKS5tZW1vaXplZFN0YXRlPXQsWyExLHRdfSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbih0LHIsbyl7dmFyIHM9dmUscD1rdCgpO2lmKExlKXtpZihvPT09dm9pZCAwKXRocm93IEVycm9yKGkoNDA3KSk7bz1vKCl9ZWxzZXtpZihvPXIoKSwkZT09PW51bGwpdGhyb3cgRXJyb3IoaSgzNDkpKTsoa2UmMTI3KSE9PTB8fFd5KHMscixvKX1wLm1lbW9pemVkU3RhdGU9bzt2YXIgZz17dmFsdWU6byxnZXRTbmFwc2hvdDpyfTtyZXR1cm4gcC5xdWV1ZT1nLGRFKFp5LmJpbmQobnVsbCxzLGcsdCksW3RdKSxzLmZsYWdzfD0yMDQ4LERhKDkse2Rlc3Ryb3k6dm9pZCAwfSxYeS5iaW5kKG51bGwscyxnLG8sciksbnVsbCksb30sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgdD1rdCgpLHI9JGUuaWRlbnRpZmllclByZWZpeDtpZihMZSl7dmFyIG89Q24scz1rbjtvPShzJn4oMTw8MzItQmUocyktMSkpLnRvU3RyaW5nKDMyKStvLHI9Il8iK3IrIlJfIitvLG89am8rKywwPG8mJihyKz0iSCIrby50b1N0cmluZygzMikpLHIrPSJfIn1lbHNlIG89Q0krKyxyPSJfIityKyJyXyIrby50b1N0cmluZygzMikrIl8iO3JldHVybiB0Lm1lbW9pemVkU3RhdGU9cn0sdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6dXUsdXNlRm9ybVN0YXRlOm9FLHVzZUFjdGlvblN0YXRlOm9FLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24odCl7dmFyIHI9a3QoKTtyLm1lbW9pemVkU3RhdGU9ci5iYXNlU3RhdGU9dDt2YXIgbz17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOm51bGwsbGFzdFJlbmRlcmVkU3RhdGU6bnVsbH07cmV0dXJuIHIucXVldWU9byxyPWN1LmJpbmQobnVsbCx2ZSwhMCxvKSxvLmRpc3BhdGNoPXIsW3Qscl19LHVzZU1lbW9DYWNoZTpldSx1c2VDYWNoZVJlZnJlc2g6ZnVuY3Rpb24oKXtyZXR1cm4ga3QoKS5tZW1vaXplZFN0YXRlPVVJLmJpbmQobnVsbCx2ZSl9LHVzZUVmZmVjdEV2ZW50OmZ1bmN0aW9uKHQpe3ZhciByPWt0KCksbz17aW1wbDp0fTtyZXR1cm4gci5tZW1vaXplZFN0YXRlPW8sZnVuY3Rpb24oKXtpZigoRmUmMikhPT0wKXRocm93IEVycm9yKGkoNDQwKSk7cmV0dXJuIG8uaW1wbC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19fSxkdT17cmVhZENvbnRleHQ6dnQsdXNlOnFvLHVzZUNhbGxiYWNrOmJFLHVzZUNvbnRleHQ6dnQsdXNlRWZmZWN0Oml1LHVzZUltcGVyYXRpdmVIYW5kbGU6aEUsdXNlSW5zZXJ0aW9uRWZmZWN0OmZFLHVzZUxheW91dEVmZmVjdDpnRSx1c2VNZW1vOnlFLHVzZVJlZHVjZXI6UG8sdXNlUmVmOmNFLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFBvKFZuKX0sdXNlRGVidWdWYWx1ZTpvdSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKHQscil7dmFyIG89YXQoKTtyZXR1cm4gRUUobyxxZS5tZW1vaXplZFN0YXRlLHQscil9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgdD1QbyhWbilbMF0scj1hdCgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW3R5cGVvZiB0PT0iYm9vbGVhbiI/dDpOaSh0KSxyXX0sdXNlU3luY0V4dGVybmFsU3RvcmU6S3ksdXNlSWQ6eEUsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6dXUsdXNlRm9ybVN0YXRlOmxFLHVzZUFjdGlvblN0YXRlOmxFLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24odCxyKXt2YXIgbz1hdCgpO3JldHVybiBlRShvLHFlLHQscil9LHVzZU1lbW9DYWNoZTpldSx1c2VDYWNoZVJlZnJlc2g6QUV9O2R1LnVzZUVmZmVjdEV2ZW50PXBFO3ZhciBrRT17cmVhZENvbnRleHQ6dnQsdXNlOnFvLHVzZUNhbGxiYWNrOmJFLHVzZUNvbnRleHQ6dnQsdXNlRWZmZWN0Oml1LHVzZUltcGVyYXRpdmVIYW5kbGU6aEUsdXNlSW5zZXJ0aW9uRWZmZWN0OmZFLHVzZUxheW91dEVmZmVjdDpnRSx1c2VNZW1vOnlFLHVzZVJlZHVjZXI6bnUsdXNlUmVmOmNFLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG51KFZuKX0sdXNlRGVidWdWYWx1ZTpvdSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKHQscil7dmFyIG89YXQoKTtyZXR1cm4gcWU9PT1udWxsP2x1KG8sdCxyKTpFRShvLHFlLm1lbW9pemVkU3RhdGUsdCxyKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciB0PW51KFZuKVswXSxyPWF0KCkubWVtb2l6ZWRTdGF0ZTtyZXR1cm5bdHlwZW9mIHQ9PSJib29sZWFuIj90Ok5pKHQpLHJdfSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpLeSx1c2VJZDp4RSx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czp1dSx1c2VGb3JtU3RhdGU6dUUsdXNlQWN0aW9uU3RhdGU6dUUsdXNlT3B0aW1pc3RpYzpmdW5jdGlvbih0LHIpe3ZhciBvPWF0KCk7cmV0dXJuIHFlIT09bnVsbD9lRShvLHFlLHQscik6KG8uYmFzZVN0YXRlPXQsW3Qsby5xdWV1ZS5kaXNwYXRjaF0pfSx1c2VNZW1vQ2FjaGU6ZXUsdXNlQ2FjaGVSZWZyZXNoOkFFfTtrRS51c2VFZmZlY3RFdmVudD1wRTtmdW5jdGlvbiBwdSh0LHIsbyxzKXtyPXQubWVtb2l6ZWRTdGF0ZSxvPW8ocyxyKSxvPW89PW51bGw/cjpoKHt9LHIsbyksdC5tZW1vaXplZFN0YXRlPW8sdC5sYW5lcz09PTAmJih0LnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1vKX12YXIgZnU9e2VucXVldWVTZXRTdGF0ZTpmdW5jdGlvbih0LHIsbyl7dD10Ll9yZWFjdEludGVybmFsczt2YXIgcz1RdCgpLHA9cHIocyk7cC5wYXlsb2FkPXIsbyE9bnVsbCYmKHAuY2FsbGJhY2s9bykscj1mcih0LHAscyksciE9PW51bGwmJih6dChyLHQscykseGkocix0LHMpKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbih0LHIsbyl7dD10Ll9yZWFjdEludGVybmFsczt2YXIgcz1RdCgpLHA9cHIocyk7cC50YWc9MSxwLnBheWxvYWQ9cixvIT1udWxsJiYocC5jYWxsYmFjaz1vKSxyPWZyKHQscCxzKSxyIT09bnVsbCYmKHp0KHIsdCxzKSx4aShyLHQscykpfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24odCxyKXt0PXQuX3JlYWN0SW50ZXJuYWxzO3ZhciBvPVF0KCkscz1wcihvKTtzLnRhZz0yLHIhPW51bGwmJihzLmNhbGxiYWNrPXIpLHI9ZnIodCxzLG8pLHIhPT1udWxsJiYoenQocix0LG8pLHhpKHIsdCxvKSl9fTtmdW5jdGlvbiBDRSh0LHIsbyxzLHAsZyx2KXtyZXR1cm4gdD10LnN0YXRlTm9kZSx0eXBlb2YgdC5zaG91bGRDb21wb25lbnRVcGRhdGU9PSJmdW5jdGlvbiI/dC5zaG91bGRDb21wb25lbnRVcGRhdGUocyxnLHYpOnIucHJvdG90eXBlJiZyLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudD8hbWkobyxzKXx8IW1pKHAsZyk6ITB9ZnVuY3Rpb24gSUUodCxyLG8scyl7dD1yLnN0YXRlLHR5cGVvZiByLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM9PSJmdW5jdGlvbiImJnIuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhvLHMpLHR5cGVvZiByLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzPT0iZnVuY3Rpb24iJiZyLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG8scyksci5zdGF0ZSE9PXQmJmZ1LmVucXVldWVSZXBsYWNlU3RhdGUocixyLnN0YXRlLG51bGwpfWZ1bmN0aW9uIFFyKHQscil7dmFyIG89cjtpZigicmVmImluIHIpe289e307Zm9yKHZhciBzIGluIHIpcyE9PSJyZWYiJiYob1tzXT1yW3NdKX1pZih0PXQuZGVmYXVsdFByb3BzKXtvPT09ciYmKG89aCh7fSxvKSk7Zm9yKHZhciBwIGluIHQpb1twXT09PXZvaWQgMCYmKG9bcF09dFtwXSl9cmV0dXJuIG99ZnVuY3Rpb24gT0UodCl7eG8odCl9ZnVuY3Rpb24gTEUodCl7Y29uc29sZS5lcnJvcih0KX1mdW5jdGlvbiBERSh0KXt4byh0KX1mdW5jdGlvbiBWbyh0LHIpe3RyeXt2YXIgbz10Lm9uVW5jYXVnaHRFcnJvcjtvKHIudmFsdWUse2NvbXBvbmVudFN0YWNrOnIuc3RhY2t9KX1jYXRjaChzKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgc30pfX1mdW5jdGlvbiBNRSh0LHIsbyl7dHJ5e3ZhciBzPXQub25DYXVnaHRFcnJvcjtzKG8udmFsdWUse2NvbXBvbmVudFN0YWNrOm8uc3RhY2ssZXJyb3JCb3VuZGFyeTpyLnRhZz09PTE/ci5zdGF0ZU5vZGU6bnVsbH0pfWNhdGNoKHApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBwfSl9fWZ1bmN0aW9uIGd1KHQscixvKXtyZXR1cm4gbz1wcihvKSxvLnRhZz0zLG8ucGF5bG9hZD17ZWxlbWVudDpudWxsfSxvLmNhbGxiYWNrPWZ1bmN0aW9uKCl7Vm8odCxyKX0sb31mdW5jdGlvbiBVRSh0KXtyZXR1cm4gdD1wcih0KSx0LnRhZz0zLHR9ZnVuY3Rpb24gRkUodCxyLG8scyl7dmFyIHA9by50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZih0eXBlb2YgcD09ImZ1bmN0aW9uIil7dmFyIGc9cy52YWx1ZTt0LnBheWxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gcChnKX0sdC5jYWxsYmFjaz1mdW5jdGlvbigpe01FKHIsbyxzKX19dmFyIHY9by5zdGF0ZU5vZGU7diE9PW51bGwmJnR5cGVvZiB2LmNvbXBvbmVudERpZENhdGNoPT0iZnVuY3Rpb24iJiYodC5jYWxsYmFjaz1mdW5jdGlvbigpe01FKHIsbyxzKSx0eXBlb2YgcCE9ImZ1bmN0aW9uIiYmKEVyPT09bnVsbD9Fcj1uZXcgU2V0KFt0aGlzXSk6RXIuYWRkKHRoaXMpKTt2YXIgQT1zLnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2gocy52YWx1ZSx7Y29tcG9uZW50U3RhY2s6QSE9PW51bGw/QToiIn0pfSl9ZnVuY3Rpb24gQkkodCxyLG8scyxwKXtpZihvLmZsYWdzfD0zMjc2OCxzIT09bnVsbCYmdHlwZW9mIHM9PSJvYmplY3QiJiZ0eXBlb2Ygcy50aGVuPT0iZnVuY3Rpb24iKXtpZihyPW8uYWx0ZXJuYXRlLHIhPT1udWxsJiZSYShyLG8scCwhMCksbz1LdC5jdXJyZW50LG8hPT1udWxsKXtzd2l0Y2goby50YWcpe2Nhc2UgMzE6Y2FzZSAxMzpyZXR1cm4gZ249PT1udWxsP2FsKCk6by5hbHRlcm5hdGU9PT1udWxsJiZ0dD09PTAmJih0dD0zKSxvLmZsYWdzJj0tMjU3LG8uZmxhZ3N8PTY1NTM2LG8ubGFuZXM9cCxzPT09TG8/by5mbGFnc3w9MTYzODQ6KHI9by51cGRhdGVRdWV1ZSxyPT09bnVsbD9vLnVwZGF0ZVF1ZXVlPW5ldyBTZXQoW3NdKTpyLmFkZChzKSxqdSh0LHMscCkpLCExO2Nhc2UgMjI6cmV0dXJuIG8uZmxhZ3N8PTY1NTM2LHM9PT1Mbz9vLmZsYWdzfD0xNjM4NDoocj1vLnVwZGF0ZVF1ZXVlLHI9PT1udWxsPyhyPXt0cmFuc2l0aW9uczpudWxsLG1hcmtlckluc3RhbmNlczpudWxsLHJldHJ5UXVldWU6bmV3IFNldChbc10pfSxvLnVwZGF0ZVF1ZXVlPXIpOihvPXIucmV0cnlRdWV1ZSxvPT09bnVsbD9yLnJldHJ5UXVldWU9bmV3IFNldChbc10pOm8uYWRkKHMpKSxqdSh0LHMscCkpLCExfXRocm93IEVycm9yKGkoNDM1LG8udGFnKSl9cmV0dXJuIGp1KHQscyxwKSxhbCgpLCExfWlmKExlKXJldHVybiByPUt0LmN1cnJlbnQsciE9PW51bGw/KChyLmZsYWdzJjY1NTM2KT09PTAmJihyLmZsYWdzfD0yNTYpLHIuZmxhZ3N8PTY1NTM2LHIubGFuZXM9cCxzIT09THMmJih0PUVycm9yKGkoNDIyKSx7Y2F1c2U6c30pLHlpKGNuKHQsbykpKSk6KHMhPT1McyYmKHI9RXJyb3IoaSg0MjMpLHtjYXVzZTpzfSkseWkoY24ocixvKSkpLHQ9dC5jdXJyZW50LmFsdGVybmF0ZSx0LmZsYWdzfD02NTUzNixwJj0tcCx0LmxhbmVzfD1wLHM9Y24ocyxvKSxwPWd1KHQuc3RhdGVOb2RlLHMscCksSHModCxwKSx0dCE9PTQmJih0dD0yKSksITE7dmFyIGc9RXJyb3IoaSg1MjApLHtjYXVzZTpzfSk7aWYoZz1jbihnLG8pLEZpPT09bnVsbD9GaT1bZ106RmkucHVzaChnKSx0dCE9PTQmJih0dD0yKSxyPT09bnVsbClyZXR1cm4hMDtzPWNuKHMsbyksbz1yO2Rve3N3aXRjaChvLnRhZyl7Y2FzZSAzOnJldHVybiBvLmZsYWdzfD02NTUzNix0PXAmLXAsby5sYW5lc3w9dCx0PWd1KG8uc3RhdGVOb2RlLHMsdCksSHMobyx0KSwhMTtjYXNlIDE6aWYocj1vLnR5cGUsZz1vLnN0YXRlTm9kZSwoby5mbGFncyYxMjgpPT09MCYmKHR5cGVvZiByLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj09ImZ1bmN0aW9uInx8ZyE9PW51bGwmJnR5cGVvZiBnLmNvbXBvbmVudERpZENhdGNoPT0iZnVuY3Rpb24iJiYoRXI9PT1udWxsfHwhRXIuaGFzKGcpKSkpcmV0dXJuIG8uZmxhZ3N8PTY1NTM2LHAmPS1wLG8ubGFuZXN8PXAscD1VRShwKSxGRShwLHQsbyxzKSxIcyhvLHApLCExfW89by5yZXR1cm59d2hpbGUobyE9PW51bGwpO3JldHVybiExfXZhciBtdT1FcnJvcihpKDQ2MSkpLHN0PSExO2Z1bmN0aW9uIFR0KHQscixvLHMpe3IuY2hpbGQ9dD09PW51bGw/cXkocixudWxsLG8scyk6WHIocix0LmNoaWxkLG8scyl9ZnVuY3Rpb24gQkUodCxyLG8scyxwKXtvPW8ucmVuZGVyO3ZhciBnPXIucmVmO2lmKCJyZWYiaW4gcyl7dmFyIHY9e307Zm9yKHZhciBBIGluIHMpQSE9PSJyZWYiJiYodltBXT1zW0FdKX1lbHNlIHY9cztyZXR1cm4gVnIocikscz1Ycyh0LHIsbyx2LGcscCksQT1acygpLHQhPT1udWxsJiYhc3Q/KFFzKHQscixwKSxZbih0LHIscCkpOihMZSYmQSYmSXMociksci5mbGFnc3w9MSxUdCh0LHIscyxwKSxyLmNoaWxkKX1mdW5jdGlvbiBqRSh0LHIsbyxzLHApe2lmKHQ9PT1udWxsKXt2YXIgZz1vLnR5cGU7cmV0dXJuIHR5cGVvZiBnPT0iZnVuY3Rpb24iJiYhd3MoZykmJmcuZGVmYXVsdFByb3BzPT09dm9pZCAwJiZvLmNvbXBhcmU9PT1udWxsPyhyLnRhZz0xNSxyLnR5cGU9Zyx6RSh0LHIsZyxzLHApKToodD1ObyhvLnR5cGUsbnVsbCxzLHIsci5tb2RlLHApLHQucmVmPXIucmVmLHQucmV0dXJuPXIsci5jaGlsZD10KX1pZihnPXQuY2hpbGQsIXh1KHQscCkpe3ZhciB2PWcubWVtb2l6ZWRQcm9wcztpZihvPW8uY29tcGFyZSxvPW8hPT1udWxsP286bWksbyh2LHMpJiZ0LnJlZj09PXIucmVmKXJldHVybiBZbih0LHIscCl9cmV0dXJuIHIuZmxhZ3N8PTEsdD1xbihnLHMpLHQucmVmPXIucmVmLHQucmV0dXJuPXIsci5jaGlsZD10fWZ1bmN0aW9uIHpFKHQscixvLHMscCl7aWYodCE9PW51bGwpe3ZhciBnPXQubWVtb2l6ZWRQcm9wcztpZihtaShnLHMpJiZ0LnJlZj09PXIucmVmKWlmKHN0PSExLHIucGVuZGluZ1Byb3BzPXM9Zyx4dSh0LHApKSh0LmZsYWdzJjEzMTA3MikhPT0wJiYoc3Q9ITApO2Vsc2UgcmV0dXJuIHIubGFuZXM9dC5sYW5lcyxZbih0LHIscCl9cmV0dXJuIGh1KHQscixvLHMscCl9ZnVuY3Rpb24gcUUodCxyLG8scyl7dmFyIHA9cy5jaGlsZHJlbixnPXQhPT1udWxsP3QubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKHQ9PT1udWxsJiZyLnN0YXRlTm9kZT09PW51bGwmJihyLnN0YXRlTm9kZT17X3Zpc2liaWxpdHk6MSxfcGVuZGluZ01hcmtlcnM6bnVsbCxfcmV0cnlDYWNoZTpudWxsLF90cmFuc2l0aW9uczpudWxsfSkscy5tb2RlPT09ImhpZGRlbiIpe2lmKChyLmZsYWdzJjEyOCkhPT0wKXtpZihnPWchPT1udWxsP2cuYmFzZUxhbmVzfG86byx0IT09bnVsbCl7Zm9yKHM9ci5jaGlsZD10LmNoaWxkLHA9MDtzIT09bnVsbDspcD1wfHMubGFuZXN8cy5jaGlsZExhbmVzLHM9cy5zaWJsaW5nO3M9cCZ+Z31lbHNlIHM9MCxyLmNoaWxkPW51bGw7cmV0dXJuIFBFKHQscixnLG8scyl9aWYoKG8mNTM2ODcwOTEyKSE9PTApci5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbH0sdCE9PW51bGwmJklvKHIsZyE9PW51bGw/Zy5jYWNoZVBvb2w6bnVsbCksZyE9PW51bGw/SHkocixnKTpWcygpLCR5KHIpO2Vsc2UgcmV0dXJuIHM9ci5sYW5lcz01MzY4NzA5MTIsUEUodCxyLGchPT1udWxsP2cuYmFzZUxhbmVzfG86byxvLHMpfWVsc2UgZyE9PW51bGw/KElvKHIsZy5jYWNoZVBvb2wpLEh5KHIsZyksbXIoKSxyLm1lbW9pemVkU3RhdGU9bnVsbCk6KHQhPT1udWxsJiZJbyhyLG51bGwpLFZzKCksbXIoKSk7cmV0dXJuIFR0KHQscixwLG8pLHIuY2hpbGR9ZnVuY3Rpb24gQ2kodCxyKXtyZXR1cm4gdCE9PW51bGwmJnQudGFnPT09MjJ8fHIuc3RhdGVOb2RlIT09bnVsbHx8KHIuc3RhdGVOb2RlPXtfdmlzaWJpbGl0eToxLF9wZW5kaW5nTWFya2VyczpudWxsLF9yZXRyeUNhY2hlOm51bGwsX3RyYW5zaXRpb25zOm51bGx9KSxyLnNpYmxpbmd9ZnVuY3Rpb24gUEUodCxyLG8scyxwKXt2YXIgZz16cygpO3JldHVybiBnPWc9PT1udWxsP251bGw6e3BhcmVudDpvdC5fY3VycmVudFZhbHVlLHBvb2w6Z30sci5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6byxjYWNoZVBvb2w6Z30sdCE9PW51bGwmJklvKHIsbnVsbCksVnMoKSwkeShyKSx0IT09bnVsbCYmUmEodCxyLHMsITApLHIuY2hpbGRMYW5lcz1wLG51bGx9ZnVuY3Rpb24gWW8odCxyKXtyZXR1cm4gcj1Xbyh7bW9kZTpyLm1vZGUsY2hpbGRyZW46ci5jaGlsZHJlbn0sdC5tb2RlKSxyLnJlZj10LnJlZix0LmNoaWxkPXIsci5yZXR1cm49dCxyfWZ1bmN0aW9uIEdFKHQscixvKXtyZXR1cm4gWHIocix0LmNoaWxkLG51bGwsbyksdD1ZbyhyLHIucGVuZGluZ1Byb3BzKSx0LmZsYWdzfD0yLFd0KHIpLHIubWVtb2l6ZWRTdGF0ZT1udWxsLHR9ZnVuY3Rpb24gakkodCxyLG8pe3ZhciBzPXIucGVuZGluZ1Byb3BzLHA9KHIuZmxhZ3MmMTI4KSE9PTA7aWYoci5mbGFncyY9LTEyOSx0PT09bnVsbCl7aWYoTGUpe2lmKHMubW9kZT09PSJoaWRkZW4iKXJldHVybiB0PVlvKHIscyksci5sYW5lcz01MzY4NzA5MTIsQ2kobnVsbCx0KTtpZihLcyhyKSwodD1LZSk/KHQ9dHYodCxmbiksdD10IT09bnVsbCYmdC5kYXRhPT09IiYiP3Q6bnVsbCx0IT09bnVsbCYmKHIubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDp0LHRyZWVDb250ZXh0OmxyIT09bnVsbD97aWQ6a24sb3ZlcmZsb3c6Q259Om51bGwscmV0cnlMYW5lOjUzNjg3MDkxMixoeWRyYXRpb25FcnJvcnM6bnVsbH0sbz1SeSh0KSxvLnJldHVybj1yLHIuY2hpbGQ9byxTdD1yLEtlPW51bGwpKTp0PW51bGwsdD09PW51bGwpdGhyb3cgdXIocik7cmV0dXJuIHIubGFuZXM9NTM2ODcwOTEyLG51bGx9cmV0dXJuIFlvKHIscyl9dmFyIGc9dC5tZW1vaXplZFN0YXRlO2lmKGchPT1udWxsKXt2YXIgdj1nLmRlaHlkcmF0ZWQ7aWYoS3MocikscClpZihyLmZsYWdzJjI1NilyLmZsYWdzJj0tMjU3LHI9R0UodCxyLG8pO2Vsc2UgaWYoci5tZW1vaXplZFN0YXRlIT09bnVsbClyLmNoaWxkPXQuY2hpbGQsci5mbGFnc3w9MTI4LHI9bnVsbDtlbHNlIHRocm93IEVycm9yKGkoNTU4KSk7ZWxzZSBpZihzdHx8UmEodCxyLG8sITEpLHA9KG8mdC5jaGlsZExhbmVzKSE9PTAsc3R8fHApe2lmKHM9JGUscyE9PW51bGwmJih2PUxiKHMsbyksdiE9PTAmJnYhPT1nLnJldHJ5TGFuZSkpdGhyb3cgZy5yZXRyeUxhbmU9dixQcih0LHYpLHp0KHMsdCx2KSxtdTthbCgpLHI9R0UodCxyLG8pfWVsc2UgdD1nLnRyZWVDb250ZXh0LEtlPW1uKHYubmV4dFNpYmxpbmcpLFN0PXIsTGU9ITAsc3I9bnVsbCxmbj0hMSx0IT09bnVsbCYma3kocix0KSxyPVlvKHIscyksci5mbGFnc3w9NDA5NjtyZXR1cm4gcn1yZXR1cm4gdD1xbih0LmNoaWxkLHttb2RlOnMubW9kZSxjaGlsZHJlbjpzLmNoaWxkcmVufSksdC5yZWY9ci5yZWYsci5jaGlsZD10LHQucmV0dXJuPXIsdH1mdW5jdGlvbiBLbyh0LHIpe3ZhciBvPXIucmVmO2lmKG89PT1udWxsKXQhPT1udWxsJiZ0LnJlZiE9PW51bGwmJihyLmZsYWdzfD00MTk0ODE2KTtlbHNle2lmKHR5cGVvZiBvIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im9iamVjdCIpdGhyb3cgRXJyb3IoaSgyODQpKTsodD09PW51bGx8fHQucmVmIT09bykmJihyLmZsYWdzfD00MTk0ODE2KX19ZnVuY3Rpb24gaHUodCxyLG8scyxwKXtyZXR1cm4gVnIociksbz1Ycyh0LHIsbyxzLHZvaWQgMCxwKSxzPVpzKCksdCE9PW51bGwmJiFzdD8oUXModCxyLHApLFluKHQscixwKSk6KExlJiZzJiZJcyhyKSxyLmZsYWdzfD0xLFR0KHQscixvLHApLHIuY2hpbGQpfWZ1bmN0aW9uIEhFKHQscixvLHMscCxnKXtyZXR1cm4gVnIociksci51cGRhdGVRdWV1ZT1udWxsLG89WXkocixzLG8scCksVnkodCkscz1acygpLHQhPT1udWxsJiYhc3Q/KFFzKHQscixnKSxZbih0LHIsZykpOihMZSYmcyYmSXMociksci5mbGFnc3w9MSxUdCh0LHIsbyxnKSxyLmNoaWxkKX1mdW5jdGlvbiAkRSh0LHIsbyxzLHApe2lmKFZyKHIpLHIuc3RhdGVOb2RlPT09bnVsbCl7dmFyIGc9VGEsdj1vLmNvbnRleHRUeXBlO3R5cGVvZiB2PT0ib2JqZWN0IiYmdiE9PW51bGwmJihnPXZ0KHYpKSxnPW5ldyBvKHMsZyksci5tZW1vaXplZFN0YXRlPWcuc3RhdGUhPT1udWxsJiZnLnN0YXRlIT09dm9pZCAwP2cuc3RhdGU6bnVsbCxnLnVwZGF0ZXI9ZnUsci5zdGF0ZU5vZGU9ZyxnLl9yZWFjdEludGVybmFscz1yLGc9ci5zdGF0ZU5vZGUsZy5wcm9wcz1zLGcuc3RhdGU9ci5tZW1vaXplZFN0YXRlLGcucmVmcz17fSxQcyhyKSx2PW8uY29udGV4dFR5cGUsZy5jb250ZXh0PXR5cGVvZiB2PT0ib2JqZWN0IiYmdiE9PW51bGw/dnQodik6VGEsZy5zdGF0ZT1yLm1lbW9pemVkU3RhdGUsdj1vLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyx0eXBlb2Ygdj09ImZ1bmN0aW9uIiYmKHB1KHIsbyx2LHMpLGcuc3RhdGU9ci5tZW1vaXplZFN0YXRlKSx0eXBlb2Ygby5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM9PSJmdW5jdGlvbiJ8fHR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlPT0iZnVuY3Rpb24ifHx0eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24iJiZ0eXBlb2YgZy5jb21wb25lbnRXaWxsTW91bnQhPSJmdW5jdGlvbiJ8fCh2PWcuc3RhdGUsdHlwZW9mIGcuY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZnLmNvbXBvbmVudFdpbGxNb3VudCgpLHR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJmcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLHYhPT1nLnN0YXRlJiZmdS5lbnF1ZXVlUmVwbGFjZVN0YXRlKGcsZy5zdGF0ZSxudWxsKSxfaShyLHMsZyxwKSxBaSgpLGcuc3RhdGU9ci5tZW1vaXplZFN0YXRlKSx0eXBlb2YgZy5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKHIuZmxhZ3N8PTQxOTQzMDgpLHM9ITB9ZWxzZSBpZih0PT09bnVsbCl7Zz1yLnN0YXRlTm9kZTt2YXIgQT1yLm1lbW9pemVkUHJvcHMsRD1RcihvLEEpO2cucHJvcHM9RDt2YXIgUD1nLmNvbnRleHQsWD1vLmNvbnRleHRUeXBlO3Y9VGEsdHlwZW9mIFg9PSJvYmplY3QiJiZYIT09bnVsbCYmKHY9dnQoWCkpO3ZhciBRPW8uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1g9dHlwZW9mIFE9PSJmdW5jdGlvbiJ8fHR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlPT0iZnVuY3Rpb24iLEE9ci5wZW5kaW5nUHJvcHMhPT1BLFh8fHR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIT0iZnVuY3Rpb24ifHwoQXx8UCE9PXYpJiZJRShyLGcscyx2KSxkcj0hMTt2YXIgSD1yLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1ILF9pKHIscyxnLHApLEFpKCksUD1yLm1lbW9pemVkU3RhdGUsQXx8SCE9PVB8fGRyPyh0eXBlb2YgUT09ImZ1bmN0aW9uIiYmKHB1KHIsbyxRLHMpLFA9ci5tZW1vaXplZFN0YXRlKSwoRD1kcnx8Q0UocixvLEQscyxILFAsdikpPyhYfHx0eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24iJiZ0eXBlb2YgZy5jb21wb25lbnRXaWxsTW91bnQhPSJmdW5jdGlvbiJ8fCh0eXBlb2YgZy5jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJmcuY29tcG9uZW50V2lsbE1vdW50KCksdHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudD09ImZ1bmN0aW9uIiYmZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLHR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50PT0iZnVuY3Rpb24iJiYoci5mbGFnc3w9NDE5NDMwOCkpOih0eXBlb2YgZy5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKHIuZmxhZ3N8PTQxOTQzMDgpLHIubWVtb2l6ZWRQcm9wcz1zLHIubWVtb2l6ZWRTdGF0ZT1QKSxnLnByb3BzPXMsZy5zdGF0ZT1QLGcuY29udGV4dD12LHM9RCk6KHR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50PT0iZnVuY3Rpb24iJiYoci5mbGFnc3w9NDE5NDMwOCkscz0hMSl9ZWxzZXtnPXIuc3RhdGVOb2RlLEdzKHQsciksdj1yLm1lbW9pemVkUHJvcHMsWD1RcihvLHYpLGcucHJvcHM9WCxRPXIucGVuZGluZ1Byb3BzLEg9Zy5jb250ZXh0LFA9by5jb250ZXh0VHlwZSxEPVRhLHR5cGVvZiBQPT0ib2JqZWN0IiYmUCE9PW51bGwmJihEPXZ0KFApKSxBPW8uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLChQPXR5cGVvZiBBPT0iZnVuY3Rpb24ifHx0eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uIil8fHR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIT0iZnVuY3Rpb24ifHwodiE9PVF8fEghPT1EKSYmSUUocixnLHMsRCksZHI9ITEsSD1yLm1lbW9pemVkU3RhdGUsZy5zdGF0ZT1ILF9pKHIscyxnLHApLEFpKCk7dmFyIEs9ci5tZW1vaXplZFN0YXRlO3YhPT1RfHxIIT09S3x8ZHJ8fHQhPT1udWxsJiZ0LmRlcGVuZGVuY2llcyE9PW51bGwmJmtvKHQuZGVwZW5kZW5jaWVzKT8odHlwZW9mIEE9PSJmdW5jdGlvbiImJihwdShyLG8sQSxzKSxLPXIubWVtb2l6ZWRTdGF0ZSksKFg9ZHJ8fENFKHIsbyxYLHMsSCxLLEQpfHx0IT09bnVsbCYmdC5kZXBlbmRlbmNpZXMhPT1udWxsJiZrbyh0LmRlcGVuZGVuY2llcykpPyhQfHx0eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSE9ImZ1bmN0aW9uIiYmdHlwZW9mIGcuY29tcG9uZW50V2lsbFVwZGF0ZSE9ImZ1bmN0aW9uInx8KHR5cGVvZiBnLmNvbXBvbmVudFdpbGxVcGRhdGU9PSJmdW5jdGlvbiImJmcuY29tcG9uZW50V2lsbFVwZGF0ZShzLEssRCksdHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGU9PSJmdW5jdGlvbiImJmcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUocyxLLEQpKSx0eXBlb2YgZy5jb21wb25lbnREaWRVcGRhdGU9PSJmdW5jdGlvbiImJihyLmZsYWdzfD00KSx0eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uIiYmKHIuZmxhZ3N8PTEwMjQpKToodHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlIT0iZnVuY3Rpb24ifHx2PT09dC5tZW1vaXplZFByb3BzJiZIPT09dC5tZW1vaXplZFN0YXRlfHwoci5mbGFnc3w9NCksdHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUhPSJmdW5jdGlvbiJ8fHY9PT10Lm1lbW9pemVkUHJvcHMmJkg9PT10Lm1lbW9pemVkU3RhdGV8fChyLmZsYWdzfD0xMDI0KSxyLm1lbW9pemVkUHJvcHM9cyxyLm1lbW9pemVkU3RhdGU9SyksZy5wcm9wcz1zLGcuc3RhdGU9SyxnLmNvbnRleHQ9RCxzPVgpOih0eXBlb2YgZy5jb21wb25lbnREaWRVcGRhdGUhPSJmdW5jdGlvbiJ8fHY9PT10Lm1lbW9pemVkUHJvcHMmJkg9PT10Lm1lbW9pemVkU3RhdGV8fChyLmZsYWdzfD00KSx0eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSE9ImZ1bmN0aW9uInx8dj09PXQubWVtb2l6ZWRQcm9wcyYmSD09PXQubWVtb2l6ZWRTdGF0ZXx8KHIuZmxhZ3N8PTEwMjQpLHM9ITEpfXJldHVybiBnPXMsS28odCxyKSxzPShyLmZsYWdzJjEyOCkhPT0wLGd8fHM/KGc9ci5zdGF0ZU5vZGUsbz1zJiZ0eXBlb2Ygby5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IhPSJmdW5jdGlvbiI/bnVsbDpnLnJlbmRlcigpLHIuZmxhZ3N8PTEsdCE9PW51bGwmJnM/KHIuY2hpbGQ9WHIocix0LmNoaWxkLG51bGwscCksci5jaGlsZD1YcihyLG51bGwsbyxwKSk6VHQodCxyLG8scCksci5tZW1vaXplZFN0YXRlPWcuc3RhdGUsdD1yLmNoaWxkKTp0PVluKHQscixwKSx0fWZ1bmN0aW9uIFZFKHQscixvLHMpe3JldHVybiBIcigpLHIuZmxhZ3N8PTI1NixUdCh0LHIsbyxzKSxyLmNoaWxkfXZhciBidT17ZGVoeWRyYXRlZDpudWxsLHRyZWVDb250ZXh0Om51bGwscmV0cnlMYW5lOjAsaHlkcmF0aW9uRXJyb3JzOm51bGx9O2Z1bmN0aW9uIHl1KHQpe3JldHVybntiYXNlTGFuZXM6dCxjYWNoZVBvb2w6TXkoKX19ZnVuY3Rpb24gRXUodCxyLG8pe3JldHVybiB0PXQhPT1udWxsP3QuY2hpbGRMYW5lcyZ+bzowLHImJih0fD1adCksdH1mdW5jdGlvbiBZRSh0LHIsbyl7dmFyIHM9ci5wZW5kaW5nUHJvcHMscD0hMSxnPShyLmZsYWdzJjEyOCkhPT0wLHY7aWYoKHY9Zyl8fCh2PXQhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGU9PT1udWxsPyExOihydC5jdXJyZW50JjIpIT09MCksdiYmKHA9ITAsci5mbGFncyY9LTEyOSksdj0oci5mbGFncyYzMikhPT0wLHIuZmxhZ3MmPS0zMyx0PT09bnVsbCl7aWYoTGUpe2lmKHA/Z3Iocik6bXIoKSwodD1LZSk/KHQ9dHYodCxmbiksdD10IT09bnVsbCYmdC5kYXRhIT09IiYiP3Q6bnVsbCx0IT09bnVsbCYmKHIubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDp0LHRyZWVDb250ZXh0OmxyIT09bnVsbD97aWQ6a24sb3ZlcmZsb3c6Q259Om51bGwscmV0cnlMYW5lOjUzNjg3MDkxMixoeWRyYXRpb25FcnJvcnM6bnVsbH0sbz1SeSh0KSxvLnJldHVybj1yLHIuY2hpbGQ9byxTdD1yLEtlPW51bGwpKTp0PW51bGwsdD09PW51bGwpdGhyb3cgdXIocik7cmV0dXJuIHRjKHQpP3IubGFuZXM9MzI6ci5sYW5lcz01MzY4NzA5MTIsbnVsbH12YXIgQT1zLmNoaWxkcmVuO3JldHVybiBzPXMuZmFsbGJhY2sscD8obXIoKSxwPXIubW9kZSxBPVdvKHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOkF9LHApLHM9R3IocyxwLG8sbnVsbCksQS5yZXR1cm49cixzLnJldHVybj1yLEEuc2libGluZz1zLHIuY2hpbGQ9QSxzPXIuY2hpbGQscy5tZW1vaXplZFN0YXRlPXl1KG8pLHMuY2hpbGRMYW5lcz1FdSh0LHYsbyksci5tZW1vaXplZFN0YXRlPWJ1LENpKG51bGwscykpOihncihyKSxTdShyLEEpKX12YXIgRD10Lm1lbW9pemVkU3RhdGU7aWYoRCE9PW51bGwmJihBPUQuZGVoeWRyYXRlZCxBIT09bnVsbCkpe2lmKGcpci5mbGFncyYyNTY/KGdyKHIpLHIuZmxhZ3MmPS0yNTcscj12dSh0LHIsbykpOnIubWVtb2l6ZWRTdGF0ZSE9PW51bGw/KG1yKCksci5jaGlsZD10LmNoaWxkLHIuZmxhZ3N8PTEyOCxyPW51bGwpOihtcigpLEE9cy5mYWxsYmFjayxwPXIubW9kZSxzPVdvKHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpzLmNoaWxkcmVufSxwKSxBPUdyKEEscCxvLG51bGwpLEEuZmxhZ3N8PTIscy5yZXR1cm49cixBLnJldHVybj1yLHMuc2libGluZz1BLHIuY2hpbGQ9cyxYcihyLHQuY2hpbGQsbnVsbCxvKSxzPXIuY2hpbGQscy5tZW1vaXplZFN0YXRlPXl1KG8pLHMuY2hpbGRMYW5lcz1FdSh0LHYsbyksci5tZW1vaXplZFN0YXRlPWJ1LHI9Q2kobnVsbCxzKSk7ZWxzZSBpZihncihyKSx0YyhBKSl7aWYodj1BLm5leHRTaWJsaW5nJiZBLm5leHRTaWJsaW5nLmRhdGFzZXQsdil2YXIgUD12LmRnc3Q7dj1QLHM9RXJyb3IoaSg0MTkpKSxzLnN0YWNrPSIiLHMuZGlnZXN0PXYseWkoe3ZhbHVlOnMsc291cmNlOm51bGwsc3RhY2s6bnVsbH0pLHI9dnUodCxyLG8pfWVsc2UgaWYoc3R8fFJhKHQscixvLCExKSx2PShvJnQuY2hpbGRMYW5lcykhPT0wLHN0fHx2KXtpZih2PSRlLHYhPT1udWxsJiYocz1MYih2LG8pLHMhPT0wJiZzIT09RC5yZXRyeUxhbmUpKXRocm93IEQucmV0cnlMYW5lPXMsUHIodCxzKSx6dCh2LHQscyksbXU7ZWMoQSl8fGFsKCkscj12dSh0LHIsbyl9ZWxzZSBlYyhBKT8oci5mbGFnc3w9MTkyLHIuY2hpbGQ9dC5jaGlsZCxyPW51bGwpOih0PUQudHJlZUNvbnRleHQsS2U9bW4oQS5uZXh0U2libGluZyksU3Q9cixMZT0hMCxzcj1udWxsLGZuPSExLHQhPT1udWxsJiZreShyLHQpLHI9U3UocixzLmNoaWxkcmVuKSxyLmZsYWdzfD00MDk2KTtyZXR1cm4gcn1yZXR1cm4gcD8obXIoKSxBPXMuZmFsbGJhY2sscD1yLm1vZGUsRD10LmNoaWxkLFA9RC5zaWJsaW5nLHM9cW4oRCx7bW9kZToiaGlkZGVuIixjaGlsZHJlbjpzLmNoaWxkcmVufSkscy5zdWJ0cmVlRmxhZ3M9RC5zdWJ0cmVlRmxhZ3MmNjUwMTE3MTIsUCE9PW51bGw/QT1xbihQLEEpOihBPUdyKEEscCxvLG51bGwpLEEuZmxhZ3N8PTIpLEEucmV0dXJuPXIscy5yZXR1cm49cixzLnNpYmxpbmc9QSxyLmNoaWxkPXMsQ2kobnVsbCxzKSxzPXIuY2hpbGQsQT10LmNoaWxkLm1lbW9pemVkU3RhdGUsQT09PW51bGw/QT15dShvKToocD1BLmNhY2hlUG9vbCxwIT09bnVsbD8oRD1vdC5fY3VycmVudFZhbHVlLHA9cC5wYXJlbnQhPT1EP3twYXJlbnQ6RCxwb29sOkR9OnApOnA9TXkoKSxBPXtiYXNlTGFuZXM6QS5iYXNlTGFuZXN8byxjYWNoZVBvb2w6cH0pLHMubWVtb2l6ZWRTdGF0ZT1BLHMuY2hpbGRMYW5lcz1FdSh0LHYsbyksci5tZW1vaXplZFN0YXRlPWJ1LENpKHQuY2hpbGQscykpOihncihyKSxvPXQuY2hpbGQsdD1vLnNpYmxpbmcsbz1xbihvLHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpzLmNoaWxkcmVufSksby5yZXR1cm49cixvLnNpYmxpbmc9bnVsbCx0IT09bnVsbCYmKHY9ci5kZWxldGlvbnMsdj09PW51bGw/KHIuZGVsZXRpb25zPVt0XSxyLmZsYWdzfD0xNik6di5wdXNoKHQpKSxyLmNoaWxkPW8sci5tZW1vaXplZFN0YXRlPW51bGwsbyl9ZnVuY3Rpb24gU3UodCxyKXtyZXR1cm4gcj1Xbyh7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46cn0sdC5tb2RlKSxyLnJldHVybj10LHQuY2hpbGQ9cn1mdW5jdGlvbiBXbyh0LHIpe3JldHVybiB0PVl0KDIyLHQsbnVsbCxyKSx0LmxhbmVzPTAsdH1mdW5jdGlvbiB2dSh0LHIsbyl7cmV0dXJuIFhyKHIsdC5jaGlsZCxudWxsLG8pLHQ9U3UocixyLnBlbmRpbmdQcm9wcy5jaGlsZHJlbiksdC5mbGFnc3w9MixyLm1lbW9pemVkU3RhdGU9bnVsbCx0fWZ1bmN0aW9uIEtFKHQscixvKXt0LmxhbmVzfD1yO3ZhciBzPXQuYWx0ZXJuYXRlO3MhPT1udWxsJiYocy5sYW5lc3w9ciksVXModC5yZXR1cm4scixvKX1mdW5jdGlvbiBUdSh0LHIsbyxzLHAsZyl7dmFyIHY9dC5tZW1vaXplZFN0YXRlO3Y9PT1udWxsP3QubWVtb2l6ZWRTdGF0ZT17aXNCYWNrd2FyZHM6cixyZW5kZXJpbmc6bnVsbCxyZW5kZXJpbmdTdGFydFRpbWU6MCxsYXN0OnMsdGFpbDpvLHRhaWxNb2RlOnAsdHJlZUZvcmtDb3VudDpnfToodi5pc0JhY2t3YXJkcz1yLHYucmVuZGVyaW5nPW51bGwsdi5yZW5kZXJpbmdTdGFydFRpbWU9MCx2Lmxhc3Q9cyx2LnRhaWw9byx2LnRhaWxNb2RlPXAsdi50cmVlRm9ya0NvdW50PWcpfWZ1bmN0aW9uIFdFKHQscixvKXt2YXIgcz1yLnBlbmRpbmdQcm9wcyxwPXMucmV2ZWFsT3JkZXIsZz1zLnRhaWw7cz1zLmNoaWxkcmVuO3ZhciB2PXJ0LmN1cnJlbnQsQT0odiYyKSE9PTA7aWYoQT8odj12JjF8MixyLmZsYWdzfD0xMjgpOnYmPTEsdyhydCx2KSxUdCh0LHIscyxvKSxzPUxlP2JpOjAsIUEmJnQhPT1udWxsJiYodC5mbGFncyYxMjgpIT09MCllOmZvcih0PXIuY2hpbGQ7dCE9PW51bGw7KXtpZih0LnRhZz09PTEzKXQubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJktFKHQsbyxyKTtlbHNlIGlmKHQudGFnPT09MTkpS0UodCxvLHIpO2Vsc2UgaWYodC5jaGlsZCE9PW51bGwpe3QuY2hpbGQucmV0dXJuPXQsdD10LmNoaWxkO2NvbnRpbnVlfWlmKHQ9PT1yKWJyZWFrIGU7Zm9yKDt0LnNpYmxpbmc9PT1udWxsOyl7aWYodC5yZXR1cm49PT1udWxsfHx0LnJldHVybj09PXIpYnJlYWsgZTt0PXQucmV0dXJufXQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9c3dpdGNoKHApe2Nhc2UiZm9yd2FyZHMiOmZvcihvPXIuY2hpbGQscD1udWxsO28hPT1udWxsOyl0PW8uYWx0ZXJuYXRlLHQhPT1udWxsJiZGbyh0KT09PW51bGwmJihwPW8pLG89by5zaWJsaW5nO289cCxvPT09bnVsbD8ocD1yLmNoaWxkLHIuY2hpbGQ9bnVsbCk6KHA9by5zaWJsaW5nLG8uc2libGluZz1udWxsKSxUdShyLCExLHAsbyxnLHMpO2JyZWFrO2Nhc2UiYmFja3dhcmRzIjpjYXNlInVuc3RhYmxlX2xlZ2FjeS1iYWNrd2FyZHMiOmZvcihvPW51bGwscD1yLmNoaWxkLHIuY2hpbGQ9bnVsbDtwIT09bnVsbDspe2lmKHQ9cC5hbHRlcm5hdGUsdCE9PW51bGwmJkZvKHQpPT09bnVsbCl7ci5jaGlsZD1wO2JyZWFrfXQ9cC5zaWJsaW5nLHAuc2libGluZz1vLG89cCxwPXR9VHUociwhMCxvLG51bGwsZyxzKTticmVhaztjYXNlInRvZ2V0aGVyIjpUdShyLCExLG51bGwsbnVsbCx2b2lkIDAscyk7YnJlYWs7ZGVmYXVsdDpyLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gci5jaGlsZH1mdW5jdGlvbiBZbih0LHIsbyl7aWYodCE9PW51bGwmJihyLmRlcGVuZGVuY2llcz10LmRlcGVuZGVuY2llcykseXJ8PXIubGFuZXMsKG8mci5jaGlsZExhbmVzKT09PTApaWYodCE9PW51bGwpe2lmKFJhKHQscixvLCExKSwobyZyLmNoaWxkTGFuZXMpPT09MClyZXR1cm4gbnVsbH1lbHNlIHJldHVybiBudWxsO2lmKHQhPT1udWxsJiZyLmNoaWxkIT09dC5jaGlsZCl0aHJvdyBFcnJvcihpKDE1MykpO2lmKHIuY2hpbGQhPT1udWxsKXtmb3IodD1yLmNoaWxkLG89cW4odCx0LnBlbmRpbmdQcm9wcyksci5jaGlsZD1vLG8ucmV0dXJuPXI7dC5zaWJsaW5nIT09bnVsbDspdD10LnNpYmxpbmcsbz1vLnNpYmxpbmc9cW4odCx0LnBlbmRpbmdQcm9wcyksby5yZXR1cm49cjtvLnNpYmxpbmc9bnVsbH1yZXR1cm4gci5jaGlsZH1mdW5jdGlvbiB4dSh0LHIpe3JldHVybih0LmxhbmVzJnIpIT09MD8hMDoodD10LmRlcGVuZGVuY2llcywhISh0IT09bnVsbCYma28odCkpKX1mdW5jdGlvbiB6SSh0LHIsbyl7c3dpdGNoKHIudGFnKXtjYXNlIDM6SWUocixyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxjcihyLG90LHQubWVtb2l6ZWRTdGF0ZS5jYWNoZSksSHIoKTticmVhaztjYXNlIDI3OmNhc2UgNTppdChyKTticmVhaztjYXNlIDQ6SWUocixyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOmNyKHIsci50eXBlLHIubWVtb2l6ZWRQcm9wcy52YWx1ZSk7YnJlYWs7Y2FzZSAzMTppZihyLm1lbW9pemVkU3RhdGUhPT1udWxsKXJldHVybiByLmZsYWdzfD0xMjgsS3MociksbnVsbDticmVhaztjYXNlIDEzOnZhciBzPXIubWVtb2l6ZWRTdGF0ZTtpZihzIT09bnVsbClyZXR1cm4gcy5kZWh5ZHJhdGVkIT09bnVsbD8oZ3Iociksci5mbGFnc3w9MTI4LG51bGwpOihvJnIuY2hpbGQuY2hpbGRMYW5lcykhPT0wP1lFKHQscixvKTooZ3IociksdD1Zbih0LHIsbyksdCE9PW51bGw/dC5zaWJsaW5nOm51bGwpO2dyKHIpO2JyZWFrO2Nhc2UgMTk6dmFyIHA9KHQuZmxhZ3MmMTI4KSE9PTA7aWYocz0obyZyLmNoaWxkTGFuZXMpIT09MCxzfHwoUmEodCxyLG8sITEpLHM9KG8mci5jaGlsZExhbmVzKSE9PTApLHApe2lmKHMpcmV0dXJuIFdFKHQscixvKTtyLmZsYWdzfD0xMjh9aWYocD1yLm1lbW9pemVkU3RhdGUscCE9PW51bGwmJihwLnJlbmRlcmluZz1udWxsLHAudGFpbD1udWxsLHAubGFzdEVmZmVjdD1udWxsKSx3KHJ0LHJ0LmN1cnJlbnQpLHMpYnJlYWs7cmV0dXJuIG51bGw7Y2FzZSAyMjpyZXR1cm4gci5sYW5lcz0wLHFFKHQscixvLHIucGVuZGluZ1Byb3BzKTtjYXNlIDI0OmNyKHIsb3QsdC5tZW1vaXplZFN0YXRlLmNhY2hlKX1yZXR1cm4gWW4odCxyLG8pfWZ1bmN0aW9uIFhFKHQscixvKXtpZih0IT09bnVsbClpZih0Lm1lbW9pemVkUHJvcHMhPT1yLnBlbmRpbmdQcm9wcylzdD0hMDtlbHNle2lmKCF4dSh0LG8pJiYoci5mbGFncyYxMjgpPT09MClyZXR1cm4gc3Q9ITEsekkodCxyLG8pO3N0PSh0LmZsYWdzJjEzMTA3MikhPT0wfWVsc2Ugc3Q9ITEsTGUmJihyLmZsYWdzJjEwNDg1NzYpIT09MCYmd3kocixiaSxyLmluZGV4KTtzd2l0Y2goci5sYW5lcz0wLHIudGFnKXtjYXNlIDE2OmU6e3ZhciBzPXIucGVuZGluZ1Byb3BzO2lmKHQ9S3Ioci5lbGVtZW50VHlwZSksci50eXBlPXQsdHlwZW9mIHQ9PSJmdW5jdGlvbiIpd3ModCk/KHM9UXIodCxzKSxyLnRhZz0xLHI9JEUobnVsbCxyLHQscyxvKSk6KHIudGFnPTAscj1odShudWxsLHIsdCxzLG8pKTtlbHNle2lmKHQhPW51bGwpe3ZhciBwPXQuJCR0eXBlb2Y7aWYocD09PUwpe3IudGFnPTExLHI9QkUobnVsbCxyLHQscyxvKTticmVhayBlfWVsc2UgaWYocD09PU0pe3IudGFnPTE0LHI9akUobnVsbCxyLHQscyxvKTticmVhayBlfX10aHJvdyByPWllKHQpfHx0LEVycm9yKGkoMzA2LHIsIiIpKX19cmV0dXJuIHI7Y2FzZSAwOnJldHVybiBodSh0LHIsci50eXBlLHIucGVuZGluZ1Byb3BzLG8pO2Nhc2UgMTpyZXR1cm4gcz1yLnR5cGUscD1RcihzLHIucGVuZGluZ1Byb3BzKSwkRSh0LHIscyxwLG8pO2Nhc2UgMzplOntpZihJZShyLHIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHQ9PT1udWxsKXRocm93IEVycm9yKGkoMzg3KSk7cz1yLnBlbmRpbmdQcm9wczt2YXIgZz1yLm1lbW9pemVkU3RhdGU7cD1nLmVsZW1lbnQsR3ModCxyKSxfaShyLHMsbnVsbCxvKTt2YXIgdj1yLm1lbW9pemVkU3RhdGU7aWYocz12LmNhY2hlLGNyKHIsb3QscykscyE9PWcuY2FjaGUmJkZzKHIsW290XSxvLCEwKSxBaSgpLHM9di5lbGVtZW50LGcuaXNEZWh5ZHJhdGVkKWlmKGc9e2VsZW1lbnQ6cyxpc0RlaHlkcmF0ZWQ6ITEsY2FjaGU6di5jYWNoZX0sci51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9ZyxyLm1lbW9pemVkU3RhdGU9ZyxyLmZsYWdzJjI1Nil7cj1WRSh0LHIscyxvKTticmVhayBlfWVsc2UgaWYocyE9PXApe3A9Y24oRXJyb3IoaSg0MjQpKSxyKSx5aShwKSxyPVZFKHQscixzLG8pO2JyZWFrIGV9ZWxzZXtzd2l0Y2godD1yLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLHQubm9kZVR5cGUpe2Nhc2UgOTp0PXQuYm9keTticmVhaztkZWZhdWx0OnQ9dC5ub2RlTmFtZT09PSJIVE1MIj90Lm93bmVyRG9jdW1lbnQuYm9keTp0fWZvcihLZT1tbih0LmZpcnN0Q2hpbGQpLFN0PXIsTGU9ITAsc3I9bnVsbCxmbj0hMCxvPXF5KHIsbnVsbCxzLG8pLHIuY2hpbGQ9bztvOylvLmZsYWdzPW8uZmxhZ3MmLTN8NDA5NixvPW8uc2libGluZ31lbHNle2lmKEhyKCkscz09PXApe3I9WW4odCxyLG8pO2JyZWFrIGV9VHQodCxyLHMsbyl9cj1yLmNoaWxkfXJldHVybiByO2Nhc2UgMjY6cmV0dXJuIEtvKHQsciksdD09PW51bGw/KG89bHYoci50eXBlLG51bGwsci5wZW5kaW5nUHJvcHMsbnVsbCkpP3IubWVtb2l6ZWRTdGF0ZT1vOkxlfHwobz1yLnR5cGUsdD1yLnBlbmRpbmdQcm9wcyxzPWRsKGNlLmN1cnJlbnQpLmNyZWF0ZUVsZW1lbnQobyksc1tFdF09cixzW0R0XT10LHh0KHMsbyx0KSxndChzKSxyLnN0YXRlTm9kZT1zKTpyLm1lbW9pemVkU3RhdGU9bHYoci50eXBlLHQubWVtb2l6ZWRQcm9wcyxyLnBlbmRpbmdQcm9wcyx0Lm1lbW9pemVkU3RhdGUpLG51bGw7Y2FzZSAyNzpyZXR1cm4gaXQociksdD09PW51bGwmJkxlJiYocz1yLnN0YXRlTm9kZT1hdihyLnR5cGUsci5wZW5kaW5nUHJvcHMsY2UuY3VycmVudCksU3Q9cixmbj0hMCxwPUtlLHhyKHIudHlwZSk/KG5jPXAsS2U9bW4ocy5maXJzdENoaWxkKSk6S2U9cCksVHQodCxyLHIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLG8pLEtvKHQsciksdD09PW51bGwmJihyLmZsYWdzfD00MTk0MzA0KSxyLmNoaWxkO2Nhc2UgNTpyZXR1cm4gdD09PW51bGwmJkxlJiYoKHA9cz1LZSkmJihzPWhPKHMsci50eXBlLHIucGVuZGluZ1Byb3BzLGZuKSxzIT09bnVsbD8oci5zdGF0ZU5vZGU9cyxTdD1yLEtlPW1uKHMuZmlyc3RDaGlsZCksZm49ITEscD0hMCk6cD0hMSkscHx8dXIocikpLGl0KHIpLHA9ci50eXBlLGc9ci5wZW5kaW5nUHJvcHMsdj10IT09bnVsbD90Lm1lbW9pemVkUHJvcHM6bnVsbCxzPWcuY2hpbGRyZW4sWnUocCxnKT9zPW51bGw6diE9PW51bGwmJlp1KHAsdikmJihyLmZsYWdzfD0zMiksci5tZW1vaXplZFN0YXRlIT09bnVsbCYmKHA9WHModCxyLElJLG51bGwsbnVsbCxvKSwkaS5fY3VycmVudFZhbHVlPXApLEtvKHQsciksVHQodCxyLHMsbyksci5jaGlsZDtjYXNlIDY6cmV0dXJuIHQ9PT1udWxsJiZMZSYmKCh0PW89S2UpJiYobz1iTyhvLHIucGVuZGluZ1Byb3BzLGZuKSxvIT09bnVsbD8oci5zdGF0ZU5vZGU9byxTdD1yLEtlPW51bGwsdD0hMCk6dD0hMSksdHx8dXIocikpLG51bGw7Y2FzZSAxMzpyZXR1cm4gWUUodCxyLG8pO2Nhc2UgNDpyZXR1cm4gSWUocixyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxzPXIucGVuZGluZ1Byb3BzLHQ9PT1udWxsP3IuY2hpbGQ9WHIocixudWxsLHMsbyk6VHQodCxyLHMsbyksci5jaGlsZDtjYXNlIDExOnJldHVybiBCRSh0LHIsci50eXBlLHIucGVuZGluZ1Byb3BzLG8pO2Nhc2UgNzpyZXR1cm4gVHQodCxyLHIucGVuZGluZ1Byb3BzLG8pLHIuY2hpbGQ7Y2FzZSA4OnJldHVybiBUdCh0LHIsci5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sbyksci5jaGlsZDtjYXNlIDEyOnJldHVybiBUdCh0LHIsci5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sbyksci5jaGlsZDtjYXNlIDEwOnJldHVybiBzPXIucGVuZGluZ1Byb3BzLGNyKHIsci50eXBlLHMudmFsdWUpLFR0KHQscixzLmNoaWxkcmVuLG8pLHIuY2hpbGQ7Y2FzZSA5OnJldHVybiBwPXIudHlwZS5fY29udGV4dCxzPXIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFZyKHIpLHA9dnQocCkscz1zKHApLHIuZmxhZ3N8PTEsVHQodCxyLHMsbyksci5jaGlsZDtjYXNlIDE0OnJldHVybiBqRSh0LHIsci50eXBlLHIucGVuZGluZ1Byb3BzLG8pO2Nhc2UgMTU6cmV0dXJuIHpFKHQscixyLnR5cGUsci5wZW5kaW5nUHJvcHMsbyk7Y2FzZSAxOTpyZXR1cm4gV0UodCxyLG8pO2Nhc2UgMzE6cmV0dXJuIGpJKHQscixvKTtjYXNlIDIyOnJldHVybiBxRSh0LHIsbyxyLnBlbmRpbmdQcm9wcyk7Y2FzZSAyNDpyZXR1cm4gVnIocikscz12dChvdCksdD09PW51bGw/KHA9enMoKSxwPT09bnVsbCYmKHA9JGUsZz1CcygpLHAucG9vbGVkQ2FjaGU9ZyxnLnJlZkNvdW50KyssZyE9PW51bGwmJihwLnBvb2xlZENhY2hlTGFuZXN8PW8pLHA9Zyksci5tZW1vaXplZFN0YXRlPXtwYXJlbnQ6cyxjYWNoZTpwfSxQcyhyKSxjcihyLG90LHApKTooKHQubGFuZXMmbykhPT0wJiYoR3ModCxyKSxfaShyLG51bGwsbnVsbCxvKSxBaSgpKSxwPXQubWVtb2l6ZWRTdGF0ZSxnPXIubWVtb2l6ZWRTdGF0ZSxwLnBhcmVudCE9PXM/KHA9e3BhcmVudDpzLGNhY2hlOnN9LHIubWVtb2l6ZWRTdGF0ZT1wLHIubGFuZXM9PT0wJiYoci5tZW1vaXplZFN0YXRlPXIudXBkYXRlUXVldWUuYmFzZVN0YXRlPXApLGNyKHIsb3QscykpOihzPWcuY2FjaGUsY3IocixvdCxzKSxzIT09cC5jYWNoZSYmRnMocixbb3RdLG8sITApKSksVHQodCxyLHIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLG8pLHIuY2hpbGQ7Y2FzZSAyOTp0aHJvdyByLnBlbmRpbmdQcm9wc310aHJvdyBFcnJvcihpKDE1NixyLnRhZykpfWZ1bmN0aW9uIEtuKHQpe3QuZmxhZ3N8PTR9ZnVuY3Rpb24gQXUodCxyLG8scyxwKXtpZigocj0odC5tb2RlJjMyKSE9PTApJiYocj0hMSkscil7aWYodC5mbGFnc3w9MTY3NzcyMTYsKHAmMzM1NTQ0MTI4KT09PXApaWYodC5zdGF0ZU5vZGUuY29tcGxldGUpdC5mbGFnc3w9ODE5MjtlbHNlIGlmKHhTKCkpdC5mbGFnc3w9ODE5MjtlbHNlIHRocm93IFdyPUxvLHFzfWVsc2UgdC5mbGFncyY9LTE2Nzc3MjE3fWZ1bmN0aW9uIFpFKHQscil7aWYoci50eXBlIT09InN0eWxlc2hlZXQifHwoci5zdGF0ZS5sb2FkaW5nJjQpIT09MCl0LmZsYWdzJj0tMTY3NzcyMTc7ZWxzZSBpZih0LmZsYWdzfD0xNjc3NzIxNiwhcHYocikpaWYoeFMoKSl0LmZsYWdzfD04MTkyO2Vsc2UgdGhyb3cgV3I9TG8scXN9ZnVuY3Rpb24gWG8odCxyKXtyIT09bnVsbCYmKHQuZmxhZ3N8PTQpLHQuZmxhZ3MmMTYzODQmJihyPXQudGFnIT09MjI/Q2IoKTo1MzY4NzA5MTIsdC5sYW5lc3w9cixCYXw9cil9ZnVuY3Rpb24gSWkodCxyKXtpZighTGUpc3dpdGNoKHQudGFpbE1vZGUpe2Nhc2UiaGlkZGVuIjpyPXQudGFpbDtmb3IodmFyIG89bnVsbDtyIT09bnVsbDspci5hbHRlcm5hdGUhPT1udWxsJiYobz1yKSxyPXIuc2libGluZztvPT09bnVsbD90LnRhaWw9bnVsbDpvLnNpYmxpbmc9bnVsbDticmVhaztjYXNlImNvbGxhcHNlZCI6bz10LnRhaWw7Zm9yKHZhciBzPW51bGw7byE9PW51bGw7KW8uYWx0ZXJuYXRlIT09bnVsbCYmKHM9byksbz1vLnNpYmxpbmc7cz09PW51bGw/cnx8dC50YWlsPT09bnVsbD90LnRhaWw9bnVsbDp0LnRhaWwuc2libGluZz1udWxsOnMuc2libGluZz1udWxsfX1mdW5jdGlvbiBXZSh0KXt2YXIgcj10LmFsdGVybmF0ZSE9PW51bGwmJnQuYWx0ZXJuYXRlLmNoaWxkPT09dC5jaGlsZCxvPTAscz0wO2lmKHIpZm9yKHZhciBwPXQuY2hpbGQ7cCE9PW51bGw7KW98PXAubGFuZXN8cC5jaGlsZExhbmVzLHN8PXAuc3VidHJlZUZsYWdzJjY1MDExNzEyLHN8PXAuZmxhZ3MmNjUwMTE3MTIscC5yZXR1cm49dCxwPXAuc2libGluZztlbHNlIGZvcihwPXQuY2hpbGQ7cCE9PW51bGw7KW98PXAubGFuZXN8cC5jaGlsZExhbmVzLHN8PXAuc3VidHJlZUZsYWdzLHN8PXAuZmxhZ3MscC5yZXR1cm49dCxwPXAuc2libGluZztyZXR1cm4gdC5zdWJ0cmVlRmxhZ3N8PXMsdC5jaGlsZExhbmVzPW8scn1mdW5jdGlvbiBxSSh0LHIsbyl7dmFyIHM9ci5wZW5kaW5nUHJvcHM7c3dpdGNoKE9zKHIpLHIudGFnKXtjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OnJldHVybiBXZShyKSxudWxsO2Nhc2UgMTpyZXR1cm4gV2UociksbnVsbDtjYXNlIDM6cmV0dXJuIG89ci5zdGF0ZU5vZGUscz1udWxsLHQhPT1udWxsJiYocz10Lm1lbW9pemVkU3RhdGUuY2FjaGUpLHIubWVtb2l6ZWRTdGF0ZS5jYWNoZSE9PXMmJihyLmZsYWdzfD0yMDQ4KSxIbihvdCksd2UoKSxvLnBlbmRpbmdDb250ZXh0JiYoby5jb250ZXh0PW8ucGVuZGluZ0NvbnRleHQsby5wZW5kaW5nQ29udGV4dD1udWxsKSwodD09PW51bGx8fHQuY2hpbGQ9PT1udWxsKSYmKF9hKHIpP0tuKHIpOnQ9PT1udWxsfHx0Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYoci5mbGFncyYyNTYpPT09MHx8KHIuZmxhZ3N8PTEwMjQsRHMoKSkpLFdlKHIpLG51bGw7Y2FzZSAyNjp2YXIgcD1yLnR5cGUsZz1yLm1lbW9pemVkU3RhdGU7cmV0dXJuIHQ9PT1udWxsPyhLbihyKSxnIT09bnVsbD8oV2UociksWkUocixnKSk6KFdlKHIpLEF1KHIscCxudWxsLHMsbykpKTpnP2chPT10Lm1lbW9pemVkU3RhdGU/KEtuKHIpLFdlKHIpLFpFKHIsZykpOihXZShyKSxyLmZsYWdzJj0tMTY3NzcyMTcpOih0PXQubWVtb2l6ZWRQcm9wcyx0IT09cyYmS24ociksV2UociksQXUocixwLHQscyxvKSksbnVsbDtjYXNlIDI3OmlmKGZ0KHIpLG89Y2UuY3VycmVudCxwPXIudHlwZSx0IT09bnVsbCYmci5zdGF0ZU5vZGUhPW51bGwpdC5tZW1vaXplZFByb3BzIT09cyYmS24ocik7ZWxzZXtpZighcyl7aWYoci5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKGkoMTY2KSk7cmV0dXJuIFdlKHIpLG51bGx9dD10ZS5jdXJyZW50LF9hKHIpP0N5KHIpOih0PWF2KHAscyxvKSxyLnN0YXRlTm9kZT10LEtuKHIpKX1yZXR1cm4gV2UociksbnVsbDtjYXNlIDU6aWYoZnQocikscD1yLnR5cGUsdCE9PW51bGwmJnIuc3RhdGVOb2RlIT1udWxsKXQubWVtb2l6ZWRQcm9wcyE9PXMmJktuKHIpO2Vsc2V7aWYoIXMpe2lmKHIuc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcihpKDE2NikpO3JldHVybiBXZShyKSxudWxsfWlmKGc9dGUuY3VycmVudCxfYShyKSlDeShyKTtlbHNle3ZhciB2PWRsKGNlLmN1cnJlbnQpO3N3aXRjaChnKXtjYXNlIDE6Zz12LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHApO2JyZWFrO2Nhc2UgMjpnPXYuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixwKTticmVhaztkZWZhdWx0OnN3aXRjaChwKXtjYXNlInN2ZyI6Zz12LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHApO2JyZWFrO2Nhc2UibWF0aCI6Zz12LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCIscCk7YnJlYWs7Y2FzZSJzY3JpcHQiOmc9di5jcmVhdGVFbGVtZW50KCJkaXYiKSxnLmlubmVySFRNTD0iPHNjcmlwdD48XC9zY3JpcHQ+IixnPWcucmVtb3ZlQ2hpbGQoZy5maXJzdENoaWxkKTticmVhaztjYXNlInNlbGVjdCI6Zz10eXBlb2Ygcy5pcz09InN0cmluZyI/di5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLHtpczpzLmlzfSk6di5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKSxzLm11bHRpcGxlP2cubXVsdGlwbGU9ITA6cy5zaXplJiYoZy5zaXplPXMuc2l6ZSk7YnJlYWs7ZGVmYXVsdDpnPXR5cGVvZiBzLmlzPT0ic3RyaW5nIj92LmNyZWF0ZUVsZW1lbnQocCx7aXM6cy5pc30pOnYuY3JlYXRlRWxlbWVudChwKX19Z1tFdF09cixnW0R0XT1zO2U6Zm9yKHY9ci5jaGlsZDt2IT09bnVsbDspe2lmKHYudGFnPT09NXx8di50YWc9PT02KWcuYXBwZW5kQ2hpbGQodi5zdGF0ZU5vZGUpO2Vsc2UgaWYodi50YWchPT00JiZ2LnRhZyE9PTI3JiZ2LmNoaWxkIT09bnVsbCl7di5jaGlsZC5yZXR1cm49dix2PXYuY2hpbGQ7Y29udGludWV9aWYodj09PXIpYnJlYWsgZTtmb3IoO3Yuc2libGluZz09PW51bGw7KXtpZih2LnJldHVybj09PW51bGx8fHYucmV0dXJuPT09cilicmVhayBlO3Y9di5yZXR1cm59di5zaWJsaW5nLnJldHVybj12LnJldHVybix2PXYuc2libGluZ31yLnN0YXRlTm9kZT1nO2U6c3dpdGNoKHh0KGcscCxzKSxwKXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOnM9ISFzLmF1dG9Gb2N1czticmVhayBlO2Nhc2UiaW1nIjpzPSEwO2JyZWFrIGU7ZGVmYXVsdDpzPSExfXMmJktuKHIpfX1yZXR1cm4gV2UociksQXUocixyLnR5cGUsdD09PW51bGw/bnVsbDp0Lm1lbW9pemVkUHJvcHMsci5wZW5kaW5nUHJvcHMsbyksbnVsbDtjYXNlIDY6aWYodCYmci5zdGF0ZU5vZGUhPW51bGwpdC5tZW1vaXplZFByb3BzIT09cyYmS24ocik7ZWxzZXtpZih0eXBlb2YgcyE9InN0cmluZyImJnIuc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcihpKDE2NikpO2lmKHQ9Y2UuY3VycmVudCxfYShyKSl7aWYodD1yLnN0YXRlTm9kZSxvPXIubWVtb2l6ZWRQcm9wcyxzPW51bGwscD1TdCxwIT09bnVsbClzd2l0Y2gocC50YWcpe2Nhc2UgMjc6Y2FzZSA1OnM9cC5tZW1vaXplZFByb3BzfXRbRXRdPXIsdD0hISh0Lm5vZGVWYWx1ZT09PW98fHMhPT1udWxsJiZzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZz09PSEwfHxZUyh0Lm5vZGVWYWx1ZSxvKSksdHx8dXIociwhMCl9ZWxzZSB0PWRsKHQpLmNyZWF0ZVRleHROb2RlKHMpLHRbRXRdPXIsci5zdGF0ZU5vZGU9dH1yZXR1cm4gV2UociksbnVsbDtjYXNlIDMxOmlmKG89ci5tZW1vaXplZFN0YXRlLHQ9PT1udWxsfHx0Lm1lbW9pemVkU3RhdGUhPT1udWxsKXtpZihzPV9hKHIpLG8hPT1udWxsKXtpZih0PT09bnVsbCl7aWYoIXMpdGhyb3cgRXJyb3IoaSgzMTgpKTtpZih0PXIubWVtb2l6ZWRTdGF0ZSx0PXQhPT1udWxsP3QuZGVoeWRyYXRlZDpudWxsLCF0KXRocm93IEVycm9yKGkoNTU3KSk7dFtFdF09cn1lbHNlIEhyKCksKHIuZmxhZ3MmMTI4KT09PTAmJihyLm1lbW9pemVkU3RhdGU9bnVsbCksci5mbGFnc3w9NDtXZShyKSx0PSExfWVsc2Ugbz1EcygpLHQhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiYodC5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz1vKSx0PSEwO2lmKCF0KXJldHVybiByLmZsYWdzJjI1Nj8oV3Qocikscik6KFd0KHIpLG51bGwpO2lmKChyLmZsYWdzJjEyOCkhPT0wKXRocm93IEVycm9yKGkoNTU4KSl9cmV0dXJuIFdlKHIpLG51bGw7Y2FzZSAxMzppZihzPXIubWVtb2l6ZWRTdGF0ZSx0PT09bnVsbHx8dC5tZW1vaXplZFN0YXRlIT09bnVsbCYmdC5tZW1vaXplZFN0YXRlLmRlaHlkcmF0ZWQhPT1udWxsKXtpZihwPV9hKHIpLHMhPT1udWxsJiZzLmRlaHlkcmF0ZWQhPT1udWxsKXtpZih0PT09bnVsbCl7aWYoIXApdGhyb3cgRXJyb3IoaSgzMTgpKTtpZihwPXIubWVtb2l6ZWRTdGF0ZSxwPXAhPT1udWxsP3AuZGVoeWRyYXRlZDpudWxsLCFwKXRocm93IEVycm9yKGkoMzE3KSk7cFtFdF09cn1lbHNlIEhyKCksKHIuZmxhZ3MmMTI4KT09PTAmJihyLm1lbW9pemVkU3RhdGU9bnVsbCksci5mbGFnc3w9NDtXZShyKSxwPSExfWVsc2UgcD1EcygpLHQhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiYodC5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz1wKSxwPSEwO2lmKCFwKXJldHVybiByLmZsYWdzJjI1Nj8oV3Qocikscik6KFd0KHIpLG51bGwpfXJldHVybiBXdChyKSwoci5mbGFncyYxMjgpIT09MD8oci5sYW5lcz1vLHIpOihvPXMhPT1udWxsLHQ9dCE9PW51bGwmJnQubWVtb2l6ZWRTdGF0ZSE9PW51bGwsbyYmKHM9ci5jaGlsZCxwPW51bGwscy5hbHRlcm5hdGUhPT1udWxsJiZzLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmcy5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYocD1zLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxnPW51bGwscy5tZW1vaXplZFN0YXRlIT09bnVsbCYmcy5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCE9PW51bGwmJihnPXMubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksZyE9PXAmJihzLmZsYWdzfD0yMDQ4KSksbyE9PXQmJm8mJihyLmNoaWxkLmZsYWdzfD04MTkyKSxYbyhyLHIudXBkYXRlUXVldWUpLFdlKHIpLG51bGwpO2Nhc2UgNDpyZXR1cm4gd2UoKSx0PT09bnVsbCYmVnUoci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksV2UociksbnVsbDtjYXNlIDEwOnJldHVybiBIbihyLnR5cGUpLFdlKHIpLG51bGw7Y2FzZSAxOTppZihWKHJ0KSxzPXIubWVtb2l6ZWRTdGF0ZSxzPT09bnVsbClyZXR1cm4gV2UociksbnVsbDtpZihwPShyLmZsYWdzJjEyOCkhPT0wLGc9cy5yZW5kZXJpbmcsZz09PW51bGwpaWYocClJaShzLCExKTtlbHNle2lmKHR0IT09MHx8dCE9PW51bGwmJih0LmZsYWdzJjEyOCkhPT0wKWZvcih0PXIuY2hpbGQ7dCE9PW51bGw7KXtpZihnPUZvKHQpLGchPT1udWxsKXtmb3Ioci5mbGFnc3w9MTI4LElpKHMsITEpLHQ9Zy51cGRhdGVRdWV1ZSxyLnVwZGF0ZVF1ZXVlPXQsWG8ocix0KSxyLnN1YnRyZWVGbGFncz0wLHQ9byxvPXIuY2hpbGQ7byE9PW51bGw7KV95KG8sdCksbz1vLnNpYmxpbmc7cmV0dXJuIHcocnQscnQuY3VycmVudCYxfDIpLExlJiZQbihyLHMudHJlZUZvcmtDb3VudCksci5jaGlsZH10PXQuc2libGluZ31zLnRhaWwhPT1udWxsJiZRZSgpPnRsJiYoci5mbGFnc3w9MTI4LHA9ITAsSWkocywhMSksci5sYW5lcz00MTk0MzA0KX1lbHNle2lmKCFwKWlmKHQ9Rm8oZyksdCE9PW51bGwpe2lmKHIuZmxhZ3N8PTEyOCxwPSEwLHQ9dC51cGRhdGVRdWV1ZSxyLnVwZGF0ZVF1ZXVlPXQsWG8ocix0KSxJaShzLCEwKSxzLnRhaWw9PT1udWxsJiZzLnRhaWxNb2RlPT09ImhpZGRlbiImJiFnLmFsdGVybmF0ZSYmIUxlKXJldHVybiBXZShyKSxudWxsfWVsc2UgMipRZSgpLXMucmVuZGVyaW5nU3RhcnRUaW1lPnRsJiZvIT09NTM2ODcwOTEyJiYoci5mbGFnc3w9MTI4LHA9ITAsSWkocywhMSksci5sYW5lcz00MTk0MzA0KTtzLmlzQmFja3dhcmRzPyhnLnNpYmxpbmc9ci5jaGlsZCxyLmNoaWxkPWcpOih0PXMubGFzdCx0IT09bnVsbD90LnNpYmxpbmc9ZzpyLmNoaWxkPWcscy5sYXN0PWcpfXJldHVybiBzLnRhaWwhPT1udWxsPyh0PXMudGFpbCxzLnJlbmRlcmluZz10LHMudGFpbD10LnNpYmxpbmcscy5yZW5kZXJpbmdTdGFydFRpbWU9UWUoKSx0LnNpYmxpbmc9bnVsbCxvPXJ0LmN1cnJlbnQsdyhydCxwP28mMXwyOm8mMSksTGUmJlBuKHIscy50cmVlRm9ya0NvdW50KSx0KTooV2UociksbnVsbCk7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBXdChyKSxZcygpLHM9ci5tZW1vaXplZFN0YXRlIT09bnVsbCx0IT09bnVsbD90Lm1lbW9pemVkU3RhdGUhPT1udWxsIT09cyYmKHIuZmxhZ3N8PTgxOTIpOnMmJihyLmZsYWdzfD04MTkyKSxzPyhvJjUzNjg3MDkxMikhPT0wJiYoci5mbGFncyYxMjgpPT09MCYmKFdlKHIpLHIuc3VidHJlZUZsYWdzJjYmJihyLmZsYWdzfD04MTkyKSk6V2Uociksbz1yLnVwZGF0ZVF1ZXVlLG8hPT1udWxsJiZYbyhyLG8ucmV0cnlRdWV1ZSksbz1udWxsLHQhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCYmKG89dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxzPW51bGwsci5tZW1vaXplZFN0YXRlIT09bnVsbCYmci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCE9PW51bGwmJihzPXIubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCkscyE9PW8mJihyLmZsYWdzfD0yMDQ4KSx0IT09bnVsbCYmVihZciksbnVsbDtjYXNlIDI0OnJldHVybiBvPW51bGwsdCE9PW51bGwmJihvPXQubWVtb2l6ZWRTdGF0ZS5jYWNoZSksci5tZW1vaXplZFN0YXRlLmNhY2hlIT09byYmKHIuZmxhZ3N8PTIwNDgpLEhuKG90KSxXZShyKSxudWxsO2Nhc2UgMjU6cmV0dXJuIG51bGw7Y2FzZSAzMDpyZXR1cm4gbnVsbH10aHJvdyBFcnJvcihpKDE1NixyLnRhZykpfWZ1bmN0aW9uIFBJKHQscil7c3dpdGNoKE9zKHIpLHIudGFnKXtjYXNlIDE6cmV0dXJuIHQ9ci5mbGFncyx0JjY1NTM2PyhyLmZsYWdzPXQmLTY1NTM3fDEyOCxyKTpudWxsO2Nhc2UgMzpyZXR1cm4gSG4ob3QpLHdlKCksdD1yLmZsYWdzLCh0JjY1NTM2KSE9PTAmJih0JjEyOCk9PT0wPyhyLmZsYWdzPXQmLTY1NTM3fDEyOCxyKTpudWxsO2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6cmV0dXJuIGZ0KHIpLG51bGw7Y2FzZSAzMTppZihyLm1lbW9pemVkU3RhdGUhPT1udWxsKXtpZihXdChyKSxyLmFsdGVybmF0ZT09PW51bGwpdGhyb3cgRXJyb3IoaSgzNDApKTtIcigpfXJldHVybiB0PXIuZmxhZ3MsdCY2NTUzNj8oci5mbGFncz10Ji02NTUzN3wxMjgscik6bnVsbDtjYXNlIDEzOmlmKFd0KHIpLHQ9ci5tZW1vaXplZFN0YXRlLHQhPT1udWxsJiZ0LmRlaHlkcmF0ZWQhPT1udWxsKXtpZihyLmFsdGVybmF0ZT09PW51bGwpdGhyb3cgRXJyb3IoaSgzNDApKTtIcigpfXJldHVybiB0PXIuZmxhZ3MsdCY2NTUzNj8oci5mbGFncz10Ji02NTUzN3wxMjgscik6bnVsbDtjYXNlIDE5OnJldHVybiBWKHJ0KSxudWxsO2Nhc2UgNDpyZXR1cm4gd2UoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIEhuKHIudHlwZSksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIFd0KHIpLFlzKCksdCE9PW51bGwmJlYoWXIpLHQ9ci5mbGFncyx0JjY1NTM2PyhyLmZsYWdzPXQmLTY1NTM3fDEyOCxyKTpudWxsO2Nhc2UgMjQ6cmV0dXJuIEhuKG90KSxudWxsO2Nhc2UgMjU6cmV0dXJuIG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gUUUodCxyKXtzd2l0Y2goT3Mociksci50YWcpe2Nhc2UgMzpIbihvdCksd2UoKTticmVhaztjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OmZ0KHIpO2JyZWFrO2Nhc2UgNDp3ZSgpO2JyZWFrO2Nhc2UgMzE6ci5tZW1vaXplZFN0YXRlIT09bnVsbCYmV3Qocik7YnJlYWs7Y2FzZSAxMzpXdChyKTticmVhaztjYXNlIDE5OlYocnQpO2JyZWFrO2Nhc2UgMTA6SG4oci50eXBlKTticmVhaztjYXNlIDIyOmNhc2UgMjM6V3QociksWXMoKSx0IT09bnVsbCYmVihZcik7YnJlYWs7Y2FzZSAyNDpIbihvdCl9fWZ1bmN0aW9uIE9pKHQscil7dHJ5e3ZhciBvPXIudXBkYXRlUXVldWUscz1vIT09bnVsbD9vLmxhc3RFZmZlY3Q6bnVsbDtpZihzIT09bnVsbCl7dmFyIHA9cy5uZXh0O289cDtkb3tpZigoby50YWcmdCk9PT10KXtzPXZvaWQgMDt2YXIgZz1vLmNyZWF0ZSx2PW8uaW5zdDtzPWcoKSx2LmRlc3Ryb3k9c31vPW8ubmV4dH13aGlsZShvIT09cCl9fWNhdGNoKEEpe3plKHIsci5yZXR1cm4sQSl9fWZ1bmN0aW9uIGhyKHQscixvKXt0cnl7dmFyIHM9ci51cGRhdGVRdWV1ZSxwPXMhPT1udWxsP3MubGFzdEVmZmVjdDpudWxsO2lmKHAhPT1udWxsKXt2YXIgZz1wLm5leHQ7cz1nO2Rve2lmKChzLnRhZyZ0KT09PXQpe3ZhciB2PXMuaW5zdCxBPXYuZGVzdHJveTtpZihBIT09dm9pZCAwKXt2LmRlc3Ryb3k9dm9pZCAwLHA9cjt2YXIgRD1vLFA9QTt0cnl7UCgpfWNhdGNoKFgpe3plKHAsRCxYKX19fXM9cy5uZXh0fXdoaWxlKHMhPT1nKX19Y2F0Y2goWCl7emUocixyLnJldHVybixYKX19ZnVuY3Rpb24gSkUodCl7dmFyIHI9dC51cGRhdGVRdWV1ZTtpZihyIT09bnVsbCl7dmFyIG89dC5zdGF0ZU5vZGU7dHJ5e0d5KHIsbyl9Y2F0Y2gocyl7emUodCx0LnJldHVybixzKX19fWZ1bmN0aW9uIGVTKHQscixvKXtvLnByb3BzPVFyKHQudHlwZSx0Lm1lbW9pemVkUHJvcHMpLG8uc3RhdGU9dC5tZW1vaXplZFN0YXRlO3RyeXtvLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2gocyl7emUodCxyLHMpfX1mdW5jdGlvbiBMaSh0LHIpe3RyeXt2YXIgbz10LnJlZjtpZihvIT09bnVsbCl7c3dpdGNoKHQudGFnKXtjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OnZhciBzPXQuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMzA6cz10LnN0YXRlTm9kZTticmVhaztkZWZhdWx0OnM9dC5zdGF0ZU5vZGV9dHlwZW9mIG89PSJmdW5jdGlvbiI/dC5yZWZDbGVhbnVwPW8ocyk6by5jdXJyZW50PXN9fWNhdGNoKHApe3plKHQscixwKX19ZnVuY3Rpb24gSW4odCxyKXt2YXIgbz10LnJlZixzPXQucmVmQ2xlYW51cDtpZihvIT09bnVsbClpZih0eXBlb2Ygcz09ImZ1bmN0aW9uIil0cnl7cygpfWNhdGNoKHApe3plKHQscixwKX1maW5hbGx5e3QucmVmQ2xlYW51cD1udWxsLHQ9dC5hbHRlcm5hdGUsdCE9bnVsbCYmKHQucmVmQ2xlYW51cD1udWxsKX1lbHNlIGlmKHR5cGVvZiBvPT0iZnVuY3Rpb24iKXRyeXtvKG51bGwpfWNhdGNoKHApe3plKHQscixwKX1lbHNlIG8uY3VycmVudD1udWxsfWZ1bmN0aW9uIHRTKHQpe3ZhciByPXQudHlwZSxvPXQubWVtb2l6ZWRQcm9wcyxzPXQuc3RhdGVOb2RlO3RyeXtlOnN3aXRjaChyKXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOm8uYXV0b0ZvY3VzJiZzLmZvY3VzKCk7YnJlYWsgZTtjYXNlImltZyI6by5zcmM/cy5zcmM9by5zcmM6by5zcmNTZXQmJihzLnNyY3NldD1vLnNyY1NldCl9fWNhdGNoKHApe3plKHQsdC5yZXR1cm4scCl9fWZ1bmN0aW9uIF91KHQscixvKXt0cnl7dmFyIHM9dC5zdGF0ZU5vZGU7Y08ocyx0LnR5cGUsbyxyKSxzW0R0XT1yfWNhdGNoKHApe3plKHQsdC5yZXR1cm4scCl9fWZ1bmN0aW9uIG5TKHQpe3JldHVybiB0LnRhZz09PTV8fHQudGFnPT09M3x8dC50YWc9PT0yNnx8dC50YWc9PT0yNyYmeHIodC50eXBlKXx8dC50YWc9PT00fWZ1bmN0aW9uIFJ1KHQpe2U6Zm9yKDs7KXtmb3IoO3Quc2libGluZz09PW51bGw7KXtpZih0LnJldHVybj09PW51bGx8fG5TKHQucmV0dXJuKSlyZXR1cm4gbnVsbDt0PXQucmV0dXJufWZvcih0LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nO3QudGFnIT09NSYmdC50YWchPT02JiZ0LnRhZyE9PTE4Oyl7aWYodC50YWc9PT0yNyYmeHIodC50eXBlKXx8dC5mbGFncyYyfHx0LmNoaWxkPT09bnVsbHx8dC50YWc9PT00KWNvbnRpbnVlIGU7dC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGR9aWYoISh0LmZsYWdzJjIpKXJldHVybiB0LnN0YXRlTm9kZX19ZnVuY3Rpb24gTnUodCxyLG8pe3ZhciBzPXQudGFnO2lmKHM9PT01fHxzPT09Nil0PXQuc3RhdGVOb2RlLHI/KG8ubm9kZVR5cGU9PT05P28uYm9keTpvLm5vZGVOYW1lPT09IkhUTUwiP28ub3duZXJEb2N1bWVudC5ib2R5Om8pLmluc2VydEJlZm9yZSh0LHIpOihyPW8ubm9kZVR5cGU9PT05P28uYm9keTpvLm5vZGVOYW1lPT09IkhUTUwiP28ub3duZXJEb2N1bWVudC5ib2R5Om8sci5hcHBlbmRDaGlsZCh0KSxvPW8uX3JlYWN0Um9vdENvbnRhaW5lcixvIT1udWxsfHxyLm9uY2xpY2shPT1udWxsfHwoci5vbmNsaWNrPWpuKSk7ZWxzZSBpZihzIT09NCYmKHM9PT0yNyYmeHIodC50eXBlKSYmKG89dC5zdGF0ZU5vZGUscj1udWxsKSx0PXQuY2hpbGQsdCE9PW51bGwpKWZvcihOdSh0LHIsbyksdD10LnNpYmxpbmc7dCE9PW51bGw7KU51KHQscixvKSx0PXQuc2libGluZ31mdW5jdGlvbiBabyh0LHIsbyl7dmFyIHM9dC50YWc7aWYocz09PTV8fHM9PT02KXQ9dC5zdGF0ZU5vZGUscj9vLmluc2VydEJlZm9yZSh0LHIpOm8uYXBwZW5kQ2hpbGQodCk7ZWxzZSBpZihzIT09NCYmKHM9PT0yNyYmeHIodC50eXBlKSYmKG89dC5zdGF0ZU5vZGUpLHQ9dC5jaGlsZCx0IT09bnVsbCkpZm9yKFpvKHQscixvKSx0PXQuc2libGluZzt0IT09bnVsbDspWm8odCxyLG8pLHQ9dC5zaWJsaW5nfWZ1bmN0aW9uIHJTKHQpe3ZhciByPXQuc3RhdGVOb2RlLG89dC5tZW1vaXplZFByb3BzO3RyeXtmb3IodmFyIHM9dC50eXBlLHA9ci5hdHRyaWJ1dGVzO3AubGVuZ3RoOylyLnJlbW92ZUF0dHJpYnV0ZU5vZGUocFswXSk7eHQocixzLG8pLHJbRXRdPXQscltEdF09b31jYXRjaChnKXt6ZSh0LHQucmV0dXJuLGcpfX12YXIgV249ITEsdXQ9ITEsd3U9ITEsYVM9dHlwZW9mIFdlYWtTZXQ9PSJmdW5jdGlvbiI/V2Vha1NldDpTZXQsbXQ9bnVsbDtmdW5jdGlvbiBHSSh0LHIpe2lmKHQ9dC5jb250YWluZXJJbmZvLFd1PXlsLHQ9aHkodCksdnModCkpe2lmKCJzZWxlY3Rpb25TdGFydCJpbiB0KXZhciBvPXtzdGFydDp0LnNlbGVjdGlvblN0YXJ0LGVuZDp0LnNlbGVjdGlvbkVuZH07ZWxzZSBlOntvPShvPXQub3duZXJEb2N1bWVudCkmJm8uZGVmYXVsdFZpZXd8fHdpbmRvdzt2YXIgcz1vLmdldFNlbGVjdGlvbiYmby5nZXRTZWxlY3Rpb24oKTtpZihzJiZzLnJhbmdlQ291bnQhPT0wKXtvPXMuYW5jaG9yTm9kZTt2YXIgcD1zLmFuY2hvck9mZnNldCxnPXMuZm9jdXNOb2RlO3M9cy5mb2N1c09mZnNldDt0cnl7by5ub2RlVHlwZSxnLm5vZGVUeXBlfWNhdGNoe289bnVsbDticmVhayBlfXZhciB2PTAsQT0tMSxEPS0xLFA9MCxYPTAsUT10LEg9bnVsbDt0OmZvcig7Oyl7Zm9yKHZhciBLO1EhPT1vfHxwIT09MCYmUS5ub2RlVHlwZSE9PTN8fChBPXYrcCksUSE9PWd8fHMhPT0wJiZRLm5vZGVUeXBlIT09M3x8KEQ9ditzKSxRLm5vZGVUeXBlPT09MyYmKHYrPVEubm9kZVZhbHVlLmxlbmd0aCksKEs9US5maXJzdENoaWxkKSE9PW51bGw7KUg9USxRPUs7Zm9yKDs7KXtpZihRPT09dClicmVhayB0O2lmKEg9PT1vJiYrK1A9PT1wJiYoQT12KSxIPT09ZyYmKytYPT09cyYmKEQ9diksKEs9US5uZXh0U2libGluZykhPT1udWxsKWJyZWFrO1E9SCxIPVEucGFyZW50Tm9kZX1RPUt9bz1BPT09LTF8fEQ9PT0tMT9udWxsOntzdGFydDpBLGVuZDpEfX1lbHNlIG89bnVsbH1vPW98fHtzdGFydDowLGVuZDowfX1lbHNlIG89bnVsbDtmb3IoWHU9e2ZvY3VzZWRFbGVtOnQsc2VsZWN0aW9uUmFuZ2U6b30seWw9ITEsbXQ9cjttdCE9PW51bGw7KWlmKHI9bXQsdD1yLmNoaWxkLChyLnN1YnRyZWVGbGFncyYxMDI4KSE9PTAmJnQhPT1udWxsKXQucmV0dXJuPXIsbXQ9dDtlbHNlIGZvcig7bXQhPT1udWxsOyl7c3dpdGNoKHI9bXQsZz1yLmFsdGVybmF0ZSx0PXIuZmxhZ3Msci50YWcpe2Nhc2UgMDppZigodCY0KSE9PTAmJih0PXIudXBkYXRlUXVldWUsdD10IT09bnVsbD90LmV2ZW50czpudWxsLHQhPT1udWxsKSlmb3Iobz0wO288dC5sZW5ndGg7bysrKXA9dFtvXSxwLnJlZi5pbXBsPXAubmV4dEltcGw7YnJlYWs7Y2FzZSAxMTpjYXNlIDE1OmJyZWFrO2Nhc2UgMTppZigodCYxMDI0KSE9PTAmJmchPT1udWxsKXt0PXZvaWQgMCxvPXIscD1nLm1lbW9pemVkUHJvcHMsZz1nLm1lbW9pemVkU3RhdGUscz1vLnN0YXRlTm9kZTt0cnl7dmFyIHBlPVFyKG8udHlwZSxwKTt0PXMuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocGUsZykscy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT10fWNhdGNoKHllKXt6ZShvLG8ucmV0dXJuLHllKX19YnJlYWs7Y2FzZSAzOmlmKCh0JjEwMjQpIT09MCl7aWYodD1yLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLG89dC5ub2RlVHlwZSxvPT09OSlKdSh0KTtlbHNlIGlmKG89PT0xKXN3aXRjaCh0Lm5vZGVOYW1lKXtjYXNlIkhFQUQiOmNhc2UiSFRNTCI6Y2FzZSJCT0RZIjpKdSh0KTticmVhaztkZWZhdWx0OnQudGV4dENvbnRlbnQ9IiJ9fWJyZWFrO2Nhc2UgNTpjYXNlIDI2OmNhc2UgMjc6Y2FzZSA2OmNhc2UgNDpjYXNlIDE3OmJyZWFrO2RlZmF1bHQ6aWYoKHQmMTAyNCkhPT0wKXRocm93IEVycm9yKGkoMTYzKSl9aWYodD1yLnNpYmxpbmcsdCE9PW51bGwpe3QucmV0dXJuPXIucmV0dXJuLG10PXQ7YnJlYWt9bXQ9ci5yZXR1cm59fWZ1bmN0aW9uIGlTKHQscixvKXt2YXIgcz1vLmZsYWdzO3N3aXRjaChvLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpabih0LG8pLHMmNCYmT2koNSxvKTticmVhaztjYXNlIDE6aWYoWm4odCxvKSxzJjQpaWYodD1vLnN0YXRlTm9kZSxyPT09bnVsbCl0cnl7dC5jb21wb25lbnREaWRNb3VudCgpfWNhdGNoKHYpe3plKG8sby5yZXR1cm4sdil9ZWxzZXt2YXIgcD1RcihvLnR5cGUsci5tZW1vaXplZFByb3BzKTtyPXIubWVtb2l6ZWRTdGF0ZTt0cnl7dC5jb21wb25lbnREaWRVcGRhdGUocCxyLHQuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUpfWNhdGNoKHYpe3plKG8sby5yZXR1cm4sdil9fXMmNjQmJkpFKG8pLHMmNTEyJiZMaShvLG8ucmV0dXJuKTticmVhaztjYXNlIDM6aWYoWm4odCxvKSxzJjY0JiYodD1vLnVwZGF0ZVF1ZXVlLHQhPT1udWxsKSl7aWYocj1udWxsLG8uY2hpbGQhPT1udWxsKXN3aXRjaChvLmNoaWxkLnRhZyl7Y2FzZSAyNzpjYXNlIDU6cj1vLmNoaWxkLnN0YXRlTm9kZTticmVhaztjYXNlIDE6cj1vLmNoaWxkLnN0YXRlTm9kZX10cnl7R3kodCxyKX1jYXRjaCh2KXt6ZShvLG8ucmV0dXJuLHYpfX1icmVhaztjYXNlIDI3OnI9PT1udWxsJiZzJjQmJnJTKG8pO2Nhc2UgMjY6Y2FzZSA1OlpuKHQsbykscj09PW51bGwmJnMmNCYmdFMobykscyY1MTImJkxpKG8sby5yZXR1cm4pO2JyZWFrO2Nhc2UgMTI6Wm4odCxvKTticmVhaztjYXNlIDMxOlpuKHQsbykscyY0JiZzUyh0LG8pO2JyZWFrO2Nhc2UgMTM6Wm4odCxvKSxzJjQmJnVTKHQsbykscyY2NCYmKHQ9by5tZW1vaXplZFN0YXRlLHQhPT1udWxsJiYodD10LmRlaHlkcmF0ZWQsdCE9PW51bGwmJihvPVFJLmJpbmQobnVsbCxvKSx5Tyh0LG8pKSkpO2JyZWFrO2Nhc2UgMjI6aWYocz1vLm1lbW9pemVkU3RhdGUhPT1udWxsfHxXbiwhcyl7cj1yIT09bnVsbCYmci5tZW1vaXplZFN0YXRlIT09bnVsbHx8dXQscD1Xbjt2YXIgZz11dDtXbj1zLCh1dD1yKSYmIWc/UW4odCxvLChvLnN1YnRyZWVGbGFncyY4NzcyKSE9PTApOlpuKHQsbyksV249cCx1dD1nfWJyZWFrO2Nhc2UgMzA6YnJlYWs7ZGVmYXVsdDpabih0LG8pfX1mdW5jdGlvbiBvUyh0KXt2YXIgcj10LmFsdGVybmF0ZTtyIT09bnVsbCYmKHQuYWx0ZXJuYXRlPW51bGwsb1MocikpLHQuY2hpbGQ9bnVsbCx0LmRlbGV0aW9ucz1udWxsLHQuc2libGluZz1udWxsLHQudGFnPT09NSYmKHI9dC5zdGF0ZU5vZGUsciE9PW51bGwmJmFzKHIpKSx0LnN0YXRlTm9kZT1udWxsLHQucmV0dXJuPW51bGwsdC5kZXBlbmRlbmNpZXM9bnVsbCx0Lm1lbW9pemVkUHJvcHM9bnVsbCx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LnBlbmRpbmdQcm9wcz1udWxsLHQuc3RhdGVOb2RlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsfXZhciBaZT1udWxsLFV0PSExO2Z1bmN0aW9uIFhuKHQscixvKXtmb3Iobz1vLmNoaWxkO28hPT1udWxsOylsUyh0LHIsbyksbz1vLnNpYmxpbmd9ZnVuY3Rpb24gbFModCxyLG8pe2lmKEhlJiZ0eXBlb2YgSGUub25Db21taXRGaWJlclVubW91bnQ9PSJmdW5jdGlvbiIpdHJ5e0hlLm9uQ29tbWl0RmliZXJVbm1vdW50KG50LG8pfWNhdGNoe31zd2l0Y2goby50YWcpe2Nhc2UgMjY6dXR8fEluKG8sciksWG4odCxyLG8pLG8ubWVtb2l6ZWRTdGF0ZT9vLm1lbW9pemVkU3RhdGUuY291bnQtLTpvLnN0YXRlTm9kZSYmKG89by5zdGF0ZU5vZGUsby5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pKTticmVhaztjYXNlIDI3OnV0fHxJbihvLHIpO3ZhciBzPVplLHA9VXQ7eHIoby50eXBlKSYmKFplPW8uc3RhdGVOb2RlLFV0PSExKSxYbih0LHIsbyksUGkoby5zdGF0ZU5vZGUpLFplPXMsVXQ9cDticmVhaztjYXNlIDU6dXR8fEluKG8scik7Y2FzZSA2OmlmKHM9WmUscD1VdCxaZT1udWxsLFhuKHQscixvKSxaZT1zLFV0PXAsWmUhPT1udWxsKWlmKFV0KXRyeXsoWmUubm9kZVR5cGU9PT05P1plLmJvZHk6WmUubm9kZU5hbWU9PT0iSFRNTCI/WmUub3duZXJEb2N1bWVudC5ib2R5OlplKS5yZW1vdmVDaGlsZChvLnN0YXRlTm9kZSl9Y2F0Y2goZyl7emUobyxyLGcpfWVsc2UgdHJ5e1plLnJlbW92ZUNoaWxkKG8uc3RhdGVOb2RlKX1jYXRjaChnKXt6ZShvLHIsZyl9YnJlYWs7Y2FzZSAxODpaZSE9PW51bGwmJihVdD8odD1aZSxKUyh0Lm5vZGVUeXBlPT09OT90LmJvZHk6dC5ub2RlTmFtZT09PSJIVE1MIj90Lm93bmVyRG9jdW1lbnQuYm9keTp0LG8uc3RhdGVOb2RlKSxWYSh0KSk6SlMoWmUsby5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDQ6cz1aZSxwPVV0LFplPW8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sVXQ9ITAsWG4odCxyLG8pLFplPXMsVXQ9cDticmVhaztjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aHIoMixvLHIpLHV0fHxocig0LG8sciksWG4odCxyLG8pO2JyZWFrO2Nhc2UgMTp1dHx8KEluKG8scikscz1vLnN0YXRlTm9kZSx0eXBlb2Ygcy5jb21wb25lbnRXaWxsVW5tb3VudD09ImZ1bmN0aW9uIiYmZVMobyxyLHMpKSxYbih0LHIsbyk7YnJlYWs7Y2FzZSAyMTpYbih0LHIsbyk7YnJlYWs7Y2FzZSAyMjp1dD0ocz11dCl8fG8ubWVtb2l6ZWRTdGF0ZSE9PW51bGwsWG4odCxyLG8pLHV0PXM7YnJlYWs7ZGVmYXVsdDpYbih0LHIsbyl9fWZ1bmN0aW9uIHNTKHQscil7aWYoci5tZW1vaXplZFN0YXRlPT09bnVsbCYmKHQ9ci5hbHRlcm5hdGUsdCE9PW51bGwmJih0PXQubWVtb2l6ZWRTdGF0ZSx0IT09bnVsbCkpKXt0PXQuZGVoeWRyYXRlZDt0cnl7VmEodCl9Y2F0Y2gobyl7emUocixyLnJldHVybixvKX19fWZ1bmN0aW9uIHVTKHQscil7aWYoci5tZW1vaXplZFN0YXRlPT09bnVsbCYmKHQ9ci5hbHRlcm5hdGUsdCE9PW51bGwmJih0PXQubWVtb2l6ZWRTdGF0ZSx0IT09bnVsbCYmKHQ9dC5kZWh5ZHJhdGVkLHQhPT1udWxsKSkpKXRyeXtWYSh0KX1jYXRjaChvKXt6ZShyLHIucmV0dXJuLG8pfX1mdW5jdGlvbiBISSh0KXtzd2l0Y2godC50YWcpe2Nhc2UgMzE6Y2FzZSAxMzpjYXNlIDE5OnZhciByPXQuc3RhdGVOb2RlO3JldHVybiByPT09bnVsbCYmKHI9dC5zdGF0ZU5vZGU9bmV3IGFTKSxyO2Nhc2UgMjI6cmV0dXJuIHQ9dC5zdGF0ZU5vZGUscj10Ll9yZXRyeUNhY2hlLHI9PT1udWxsJiYocj10Ll9yZXRyeUNhY2hlPW5ldyBhUykscjtkZWZhdWx0OnRocm93IEVycm9yKGkoNDM1LHQudGFnKSl9fWZ1bmN0aW9uIFFvKHQscil7dmFyIG89SEkodCk7ci5mb3JFYWNoKGZ1bmN0aW9uKHMpe2lmKCFvLmhhcyhzKSl7by5hZGQocyk7dmFyIHA9SkkuYmluZChudWxsLHQscyk7cy50aGVuKHAscCl9fSl9ZnVuY3Rpb24gRnQodCxyKXt2YXIgbz1yLmRlbGV0aW9ucztpZihvIT09bnVsbClmb3IodmFyIHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIHA9b1tzXSxnPXQsdj1yLEE9djtlOmZvcig7QSE9PW51bGw7KXtzd2l0Y2goQS50YWcpe2Nhc2UgMjc6aWYoeHIoQS50eXBlKSl7WmU9QS5zdGF0ZU5vZGUsVXQ9ITE7YnJlYWsgZX1icmVhaztjYXNlIDU6WmU9QS5zdGF0ZU5vZGUsVXQ9ITE7YnJlYWsgZTtjYXNlIDM6Y2FzZSA0OlplPUEuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sVXQ9ITA7YnJlYWsgZX1BPUEucmV0dXJufWlmKFplPT09bnVsbCl0aHJvdyBFcnJvcihpKDE2MCkpO2xTKGcsdixwKSxaZT1udWxsLFV0PSExLGc9cC5hbHRlcm5hdGUsZyE9PW51bGwmJihnLnJldHVybj1udWxsKSxwLnJldHVybj1udWxsfWlmKHIuc3VidHJlZUZsYWdzJjEzODg2KWZvcihyPXIuY2hpbGQ7ciE9PW51bGw7KWNTKHIsdCkscj1yLnNpYmxpbmd9dmFyIFRuPW51bGw7ZnVuY3Rpb24gY1ModCxyKXt2YXIgbz10LmFsdGVybmF0ZSxzPXQuZmxhZ3M7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6RnQocix0KSxCdCh0KSxzJjQmJihocigzLHQsdC5yZXR1cm4pLE9pKDMsdCksaHIoNSx0LHQucmV0dXJuKSk7YnJlYWs7Y2FzZSAxOkZ0KHIsdCksQnQodCkscyY1MTImJih1dHx8bz09PW51bGx8fEluKG8sby5yZXR1cm4pKSxzJjY0JiZXbiYmKHQ9dC51cGRhdGVRdWV1ZSx0IT09bnVsbCYmKHM9dC5jYWxsYmFja3MscyE9PW51bGwmJihvPXQuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcyx0LnNoYXJlZC5oaWRkZW5DYWxsYmFja3M9bz09PW51bGw/czpvLmNvbmNhdChzKSkpKTticmVhaztjYXNlIDI2OnZhciBwPVRuO2lmKEZ0KHIsdCksQnQodCkscyY1MTImJih1dHx8bz09PW51bGx8fEluKG8sby5yZXR1cm4pKSxzJjQpe3ZhciBnPW8hPT1udWxsP28ubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKHM9dC5tZW1vaXplZFN0YXRlLG89PT1udWxsKWlmKHM9PT1udWxsKWlmKHQuc3RhdGVOb2RlPT09bnVsbCl7ZTp7cz10LnR5cGUsbz10Lm1lbW9pemVkUHJvcHMscD1wLm93bmVyRG9jdW1lbnR8fHA7dDpzd2l0Y2gocyl7Y2FzZSJ0aXRsZSI6Zz1wLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0aXRsZSIpWzBdLCghZ3x8Z1tvaV18fGdbRXRdfHxnLm5hbWVzcGFjZVVSST09PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ8fGcuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKSYmKGc9cC5jcmVhdGVFbGVtZW50KHMpLHAuaGVhZC5pbnNlcnRCZWZvcmUoZyxwLnF1ZXJ5U2VsZWN0b3IoImhlYWQgPiB0aXRsZSIpKSkseHQoZyxzLG8pLGdbRXRdPXQsZ3QoZykscz1nO2JyZWFrIGU7Y2FzZSJsaW5rIjp2YXIgdj1jdigibGluayIsImhyZWYiLHApLmdldChzKyhvLmhyZWZ8fCIiKSk7aWYodil7Zm9yKHZhciBBPTA7QTx2Lmxlbmd0aDtBKyspaWYoZz12W0FdLGcuZ2V0QXR0cmlidXRlKCJocmVmIik9PT0oby5ocmVmPT1udWxsfHxvLmhyZWY9PT0iIj9udWxsOm8uaHJlZikmJmcuZ2V0QXR0cmlidXRlKCJyZWwiKT09PShvLnJlbD09bnVsbD9udWxsOm8ucmVsKSYmZy5nZXRBdHRyaWJ1dGUoInRpdGxlIik9PT0oby50aXRsZT09bnVsbD9udWxsOm8udGl0bGUpJiZnLmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKT09PShvLmNyb3NzT3JpZ2luPT1udWxsP251bGw6by5jcm9zc09yaWdpbikpe3Yuc3BsaWNlKEEsMSk7YnJlYWsgdH19Zz1wLmNyZWF0ZUVsZW1lbnQocykseHQoZyxzLG8pLHAuaGVhZC5hcHBlbmRDaGlsZChnKTticmVhaztjYXNlIm1ldGEiOmlmKHY9Y3YoIm1ldGEiLCJjb250ZW50IixwKS5nZXQocysoby5jb250ZW50fHwiIikpKXtmb3IoQT0wO0E8di5sZW5ndGg7QSsrKWlmKGc9dltBXSxnLmdldEF0dHJpYnV0ZSgiY29udGVudCIpPT09KG8uY29udGVudD09bnVsbD9udWxsOiIiK28uY29udGVudCkmJmcuZ2V0QXR0cmlidXRlKCJuYW1lIik9PT0oby5uYW1lPT1udWxsP251bGw6by5uYW1lKSYmZy5nZXRBdHRyaWJ1dGUoInByb3BlcnR5Iik9PT0oby5wcm9wZXJ0eT09bnVsbD9udWxsOm8ucHJvcGVydHkpJiZnLmdldEF0dHJpYnV0ZSgiaHR0cC1lcXVpdiIpPT09KG8uaHR0cEVxdWl2PT1udWxsP251bGw6by5odHRwRXF1aXYpJiZnLmdldEF0dHJpYnV0ZSgiY2hhcnNldCIpPT09KG8uY2hhclNldD09bnVsbD9udWxsOm8uY2hhclNldCkpe3Yuc3BsaWNlKEEsMSk7YnJlYWsgdH19Zz1wLmNyZWF0ZUVsZW1lbnQocykseHQoZyxzLG8pLHAuaGVhZC5hcHBlbmRDaGlsZChnKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGkoNDY4LHMpKX1nW0V0XT10LGd0KGcpLHM9Z310LnN0YXRlTm9kZT1zfWVsc2UgZHYocCx0LnR5cGUsdC5zdGF0ZU5vZGUpO2Vsc2UgdC5zdGF0ZU5vZGU9dXYocCxzLHQubWVtb2l6ZWRQcm9wcyk7ZWxzZSBnIT09cz8oZz09PW51bGw/by5zdGF0ZU5vZGUhPT1udWxsJiYobz1vLnN0YXRlTm9kZSxvLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobykpOmcuY291bnQtLSxzPT09bnVsbD9kdihwLHQudHlwZSx0LnN0YXRlTm9kZSk6dXYocCxzLHQubWVtb2l6ZWRQcm9wcykpOnM9PT1udWxsJiZ0LnN0YXRlTm9kZSE9PW51bGwmJl91KHQsdC5tZW1vaXplZFByb3BzLG8ubWVtb2l6ZWRQcm9wcyl9YnJlYWs7Y2FzZSAyNzpGdChyLHQpLEJ0KHQpLHMmNTEyJiYodXR8fG89PT1udWxsfHxJbihvLG8ucmV0dXJuKSksbyE9PW51bGwmJnMmNCYmX3UodCx0Lm1lbW9pemVkUHJvcHMsby5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6aWYoRnQocix0KSxCdCh0KSxzJjUxMiYmKHV0fHxvPT09bnVsbHx8SW4obyxvLnJldHVybikpLHQuZmxhZ3MmMzIpe3A9dC5zdGF0ZU5vZGU7dHJ5e21hKHAsIiIpfWNhdGNoKHBlKXt6ZSh0LHQucmV0dXJuLHBlKX19cyY0JiZ0LnN0YXRlTm9kZSE9bnVsbCYmKHA9dC5tZW1vaXplZFByb3BzLF91KHQscCxvIT09bnVsbD9vLm1lbW9pemVkUHJvcHM6cCkpLHMmMTAyNCYmKHd1PSEwKTticmVhaztjYXNlIDY6aWYoRnQocix0KSxCdCh0KSxzJjQpe2lmKHQuc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcihpKDE2MikpO3M9dC5tZW1vaXplZFByb3BzLG89dC5zdGF0ZU5vZGU7dHJ5e28ubm9kZVZhbHVlPXN9Y2F0Y2gocGUpe3plKHQsdC5yZXR1cm4scGUpfX1icmVhaztjYXNlIDM6aWYoZ2w9bnVsbCxwPVRuLFRuPXBsKHIuY29udGFpbmVySW5mbyksRnQocix0KSxUbj1wLEJ0KHQpLHMmNCYmbyE9PW51bGwmJm8ubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e1ZhKHIuY29udGFpbmVySW5mbyl9Y2F0Y2gocGUpe3plKHQsdC5yZXR1cm4scGUpfXd1JiYod3U9ITEsZFModCkpO2JyZWFrO2Nhc2UgNDpzPVRuLFRuPXBsKHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLEZ0KHIsdCksQnQodCksVG49czticmVhaztjYXNlIDEyOkZ0KHIsdCksQnQodCk7YnJlYWs7Y2FzZSAzMTpGdChyLHQpLEJ0KHQpLHMmNCYmKHM9dC51cGRhdGVRdWV1ZSxzIT09bnVsbCYmKHQudXBkYXRlUXVldWU9bnVsbCxRbyh0LHMpKSk7YnJlYWs7Y2FzZSAxMzpGdChyLHQpLEJ0KHQpLHQuY2hpbGQuZmxhZ3MmODE5MiYmdC5tZW1vaXplZFN0YXRlIT09bnVsbCE9KG8hPT1udWxsJiZvLm1lbW9pemVkU3RhdGUhPT1udWxsKSYmKGVsPVFlKCkpLHMmNCYmKHM9dC51cGRhdGVRdWV1ZSxzIT09bnVsbCYmKHQudXBkYXRlUXVldWU9bnVsbCxRbyh0LHMpKSk7YnJlYWs7Y2FzZSAyMjpwPXQubWVtb2l6ZWRTdGF0ZSE9PW51bGw7dmFyIEQ9byE9PW51bGwmJm8ubWVtb2l6ZWRTdGF0ZSE9PW51bGwsUD1XbixYPXV0O2lmKFduPVB8fHAsdXQ9WHx8RCxGdChyLHQpLHV0PVgsV249UCxCdCh0KSxzJjgxOTIpZTpmb3Iocj10LnN0YXRlTm9kZSxyLl92aXNpYmlsaXR5PXA/ci5fdmlzaWJpbGl0eSYtMjpyLl92aXNpYmlsaXR5fDEscCYmKG89PT1udWxsfHxEfHxXbnx8dXR8fEpyKHQpKSxvPW51bGwscj10Ozspe2lmKHIudGFnPT09NXx8ci50YWc9PT0yNil7aWYobz09PW51bGwpe0Q9bz1yO3RyeXtpZihnPUQuc3RhdGVOb2RlLHApdj1nLnN0eWxlLHR5cGVvZiB2LnNldFByb3BlcnR5PT0iZnVuY3Rpb24iP3Yuc2V0UHJvcGVydHkoImRpc3BsYXkiLCJub25lIiwiaW1wb3J0YW50Iik6di5kaXNwbGF5PSJub25lIjtlbHNle0E9RC5zdGF0ZU5vZGU7dmFyIFE9RC5tZW1vaXplZFByb3BzLnN0eWxlLEg9USE9bnVsbCYmUS5oYXNPd25Qcm9wZXJ0eSgiZGlzcGxheSIpP1EuZGlzcGxheTpudWxsO0Euc3R5bGUuZGlzcGxheT1IPT1udWxsfHx0eXBlb2YgSD09ImJvb2xlYW4iPyIiOigiIitIKS50cmltKCl9fWNhdGNoKHBlKXt6ZShELEQucmV0dXJuLHBlKX19fWVsc2UgaWYoci50YWc9PT02KXtpZihvPT09bnVsbCl7RD1yO3RyeXtELnN0YXRlTm9kZS5ub2RlVmFsdWU9cD8iIjpELm1lbW9pemVkUHJvcHN9Y2F0Y2gocGUpe3plKEQsRC5yZXR1cm4scGUpfX19ZWxzZSBpZihyLnRhZz09PTE4KXtpZihvPT09bnVsbCl7RD1yO3RyeXt2YXIgSz1ELnN0YXRlTm9kZTtwP2V2KEssITApOmV2KEQuc3RhdGVOb2RlLCExKX1jYXRjaChwZSl7emUoRCxELnJldHVybixwZSl9fX1lbHNlIGlmKChyLnRhZyE9PTIyJiZyLnRhZyE9PTIzfHxyLm1lbW9pemVkU3RhdGU9PT1udWxsfHxyPT09dCkmJnIuY2hpbGQhPT1udWxsKXtyLmNoaWxkLnJldHVybj1yLHI9ci5jaGlsZDtjb250aW51ZX1pZihyPT09dClicmVhayBlO2Zvcig7ci5zaWJsaW5nPT09bnVsbDspe2lmKHIucmV0dXJuPT09bnVsbHx8ci5yZXR1cm49PT10KWJyZWFrIGU7bz09PXImJihvPW51bGwpLHI9ci5yZXR1cm59bz09PXImJihvPW51bGwpLHIuc2libGluZy5yZXR1cm49ci5yZXR1cm4scj1yLnNpYmxpbmd9cyY0JiYocz10LnVwZGF0ZVF1ZXVlLHMhPT1udWxsJiYobz1zLnJldHJ5UXVldWUsbyE9PW51bGwmJihzLnJldHJ5UXVldWU9bnVsbCxRbyh0LG8pKSkpO2JyZWFrO2Nhc2UgMTk6RnQocix0KSxCdCh0KSxzJjQmJihzPXQudXBkYXRlUXVldWUscyE9PW51bGwmJih0LnVwZGF0ZVF1ZXVlPW51bGwsUW8odCxzKSkpO2JyZWFrO2Nhc2UgMzA6YnJlYWs7Y2FzZSAyMTpicmVhaztkZWZhdWx0OkZ0KHIsdCksQnQodCl9fWZ1bmN0aW9uIEJ0KHQpe3ZhciByPXQuZmxhZ3M7aWYociYyKXt0cnl7Zm9yKHZhciBvLHM9dC5yZXR1cm47cyE9PW51bGw7KXtpZihuUyhzKSl7bz1zO2JyZWFrfXM9cy5yZXR1cm59aWYobz09bnVsbCl0aHJvdyBFcnJvcihpKDE2MCkpO3N3aXRjaChvLnRhZyl7Y2FzZSAyNzp2YXIgcD1vLnN0YXRlTm9kZSxnPVJ1KHQpO1pvKHQsZyxwKTticmVhaztjYXNlIDU6dmFyIHY9by5zdGF0ZU5vZGU7by5mbGFncyYzMiYmKG1hKHYsIiIpLG8uZmxhZ3MmPS0zMyk7dmFyIEE9UnUodCk7Wm8odCxBLHYpO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dmFyIEQ9by5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxQPVJ1KHQpO051KHQsUCxEKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGkoMTYxKSl9fWNhdGNoKFgpe3plKHQsdC5yZXR1cm4sWCl9dC5mbGFncyY9LTN9ciY0MDk2JiYodC5mbGFncyY9LTQwOTcpfWZ1bmN0aW9uIGRTKHQpe2lmKHQuc3VidHJlZUZsYWdzJjEwMjQpZm9yKHQ9dC5jaGlsZDt0IT09bnVsbDspe3ZhciByPXQ7ZFMociksci50YWc9PT01JiZyLmZsYWdzJjEwMjQmJnIuc3RhdGVOb2RlLnJlc2V0KCksdD10LnNpYmxpbmd9fWZ1bmN0aW9uIFpuKHQscil7aWYoci5zdWJ0cmVlRmxhZ3MmODc3Milmb3Iocj1yLmNoaWxkO3IhPT1udWxsOylpUyh0LHIuYWx0ZXJuYXRlLHIpLHI9ci5zaWJsaW5nfWZ1bmN0aW9uIEpyKHQpe2Zvcih0PXQuY2hpbGQ7dCE9PW51bGw7KXt2YXIgcj10O3N3aXRjaChyLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmhyKDQscixyLnJldHVybiksSnIocik7YnJlYWs7Y2FzZSAxOkluKHIsci5yZXR1cm4pO3ZhciBvPXIuc3RhdGVOb2RlO3R5cGVvZiBvLmNvbXBvbmVudFdpbGxVbm1vdW50PT0iZnVuY3Rpb24iJiZlUyhyLHIucmV0dXJuLG8pLEpyKHIpO2JyZWFrO2Nhc2UgMjc6UGkoci5zdGF0ZU5vZGUpO2Nhc2UgMjY6Y2FzZSA1OkluKHIsci5yZXR1cm4pLEpyKHIpO2JyZWFrO2Nhc2UgMjI6ci5tZW1vaXplZFN0YXRlPT09bnVsbCYmSnIocik7YnJlYWs7Y2FzZSAzMDpKcihyKTticmVhaztkZWZhdWx0OkpyKHIpfXQ9dC5zaWJsaW5nfX1mdW5jdGlvbiBRbih0LHIsbyl7Zm9yKG89byYmKHIuc3VidHJlZUZsYWdzJjg3NzIpIT09MCxyPXIuY2hpbGQ7ciE9PW51bGw7KXt2YXIgcz1yLmFsdGVybmF0ZSxwPXQsZz1yLHY9Zy5mbGFncztzd2l0Y2goZy50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6UW4ocCxnLG8pLE9pKDQsZyk7YnJlYWs7Y2FzZSAxOmlmKFFuKHAsZyxvKSxzPWcscD1zLnN0YXRlTm9kZSx0eXBlb2YgcC5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIil0cnl7cC5jb21wb25lbnREaWRNb3VudCgpfWNhdGNoKFApe3plKHMscy5yZXR1cm4sUCl9aWYocz1nLHA9cy51cGRhdGVRdWV1ZSxwIT09bnVsbCl7dmFyIEE9cy5zdGF0ZU5vZGU7dHJ5e3ZhciBEPXAuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcztpZihEIT09bnVsbClmb3IocC5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzPW51bGwscD0wO3A8RC5sZW5ndGg7cCsrKVB5KERbcF0sQSl9Y2F0Y2goUCl7emUocyxzLnJldHVybixQKX19byYmdiY2NCYmSkUoZyksTGkoZyxnLnJldHVybik7YnJlYWs7Y2FzZSAyNzpyUyhnKTtjYXNlIDI2OmNhc2UgNTpRbihwLGcsbyksbyYmcz09PW51bGwmJnYmNCYmdFMoZyksTGkoZyxnLnJldHVybik7YnJlYWs7Y2FzZSAxMjpRbihwLGcsbyk7YnJlYWs7Y2FzZSAzMTpRbihwLGcsbyksbyYmdiY0JiZzUyhwLGcpO2JyZWFrO2Nhc2UgMTM6UW4ocCxnLG8pLG8mJnYmNCYmdVMocCxnKTticmVhaztjYXNlIDIyOmcubWVtb2l6ZWRTdGF0ZT09PW51bGwmJlFuKHAsZyxvKSxMaShnLGcucmV0dXJuKTticmVhaztjYXNlIDMwOmJyZWFrO2RlZmF1bHQ6UW4ocCxnLG8pfXI9ci5zaWJsaW5nfX1mdW5jdGlvbiBrdSh0LHIpe3ZhciBvPW51bGw7dCE9PW51bGwmJnQubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJnQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYobz10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLHQ9bnVsbCxyLm1lbW9pemVkU3RhdGUhPT1udWxsJiZyLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCYmKHQ9ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSx0IT09byYmKHQhPW51bGwmJnQucmVmQ291bnQrKyxvIT1udWxsJiZFaShvKSl9ZnVuY3Rpb24gQ3UodCxyKXt0PW51bGwsci5hbHRlcm5hdGUhPT1udWxsJiYodD1yLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSxyPXIubWVtb2l6ZWRTdGF0ZS5jYWNoZSxyIT09dCYmKHIucmVmQ291bnQrKyx0IT1udWxsJiZFaSh0KSl9ZnVuY3Rpb24geG4odCxyLG8scyl7aWYoci5zdWJ0cmVlRmxhZ3MmMTAyNTYpZm9yKHI9ci5jaGlsZDtyIT09bnVsbDspcFModCxyLG8scykscj1yLnNpYmxpbmd9ZnVuY3Rpb24gcFModCxyLG8scyl7dmFyIHA9ci5mbGFncztzd2l0Y2goci50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6eG4odCxyLG8scykscCYyMDQ4JiZPaSg5LHIpO2JyZWFrO2Nhc2UgMTp4bih0LHIsbyxzKTticmVhaztjYXNlIDM6eG4odCxyLG8scykscCYyMDQ4JiYodD1udWxsLHIuYWx0ZXJuYXRlIT09bnVsbCYmKHQ9ci5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSkscj1yLm1lbW9pemVkU3RhdGUuY2FjaGUsciE9PXQmJihyLnJlZkNvdW50KyssdCE9bnVsbCYmRWkodCkpKTticmVhaztjYXNlIDEyOmlmKHAmMjA0OCl7eG4odCxyLG8scyksdD1yLnN0YXRlTm9kZTt0cnl7dmFyIGc9ci5tZW1vaXplZFByb3BzLHY9Zy5pZCxBPWcub25Qb3N0Q29tbWl0O3R5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKHYsci5hbHRlcm5hdGU9PT1udWxsPyJtb3VudCI6InVwZGF0ZSIsdC5wYXNzaXZlRWZmZWN0RHVyYXRpb24sLTApfWNhdGNoKEQpe3plKHIsci5yZXR1cm4sRCl9fWVsc2UgeG4odCxyLG8scyk7YnJlYWs7Y2FzZSAzMTp4bih0LHIsbyxzKTticmVhaztjYXNlIDEzOnhuKHQscixvLHMpO2JyZWFrO2Nhc2UgMjM6YnJlYWs7Y2FzZSAyMjpnPXIuc3RhdGVOb2RlLHY9ci5hbHRlcm5hdGUsci5tZW1vaXplZFN0YXRlIT09bnVsbD9nLl92aXNpYmlsaXR5JjI/eG4odCxyLG8scyk6RGkodCxyKTpnLl92aXNpYmlsaXR5JjI/eG4odCxyLG8scyk6KGcuX3Zpc2liaWxpdHl8PTIsTWEodCxyLG8scywoci5zdWJ0cmVlRmxhZ3MmMTAyNTYpIT09MHx8ITEpKSxwJjIwNDgmJmt1KHYscik7YnJlYWs7Y2FzZSAyNDp4bih0LHIsbyxzKSxwJjIwNDgmJkN1KHIuYWx0ZXJuYXRlLHIpO2JyZWFrO2RlZmF1bHQ6eG4odCxyLG8scyl9fWZ1bmN0aW9uIE1hKHQscixvLHMscCl7Zm9yKHA9cCYmKChyLnN1YnRyZWVGbGFncyYxMDI1NikhPT0wfHwhMSkscj1yLmNoaWxkO3IhPT1udWxsOyl7dmFyIGc9dCx2PXIsQT1vLEQ9cyxQPXYuZmxhZ3M7c3dpdGNoKHYudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1Ok1hKGcsdixBLEQscCksT2koOCx2KTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6dmFyIFg9di5zdGF0ZU5vZGU7di5tZW1vaXplZFN0YXRlIT09bnVsbD9YLl92aXNpYmlsaXR5JjI/TWEoZyx2LEEsRCxwKTpEaShnLHYpOihYLl92aXNpYmlsaXR5fD0yLE1hKGcsdixBLEQscCkpLHAmJlAmMjA0OCYma3Uodi5hbHRlcm5hdGUsdik7YnJlYWs7Y2FzZSAyNDpNYShnLHYsQSxELHApLHAmJlAmMjA0OCYmQ3Uodi5hbHRlcm5hdGUsdik7YnJlYWs7ZGVmYXVsdDpNYShnLHYsQSxELHApfXI9ci5zaWJsaW5nfX1mdW5jdGlvbiBEaSh0LHIpe2lmKHIuc3VidHJlZUZsYWdzJjEwMjU2KWZvcihyPXIuY2hpbGQ7ciE9PW51bGw7KXt2YXIgbz10LHM9cixwPXMuZmxhZ3M7c3dpdGNoKHMudGFnKXtjYXNlIDIyOkRpKG8scykscCYyMDQ4JiZrdShzLmFsdGVybmF0ZSxzKTticmVhaztjYXNlIDI0OkRpKG8scykscCYyMDQ4JiZDdShzLmFsdGVybmF0ZSxzKTticmVhaztkZWZhdWx0OkRpKG8scyl9cj1yLnNpYmxpbmd9fXZhciBNaT04MTkyO2Z1bmN0aW9uIFVhKHQscixvKXtpZih0LnN1YnRyZWVGbGFncyZNaSlmb3IodD10LmNoaWxkO3QhPT1udWxsOylmUyh0LHIsbyksdD10LnNpYmxpbmd9ZnVuY3Rpb24gZlModCxyLG8pe3N3aXRjaCh0LnRhZyl7Y2FzZSAyNjpVYSh0LHIsbyksdC5mbGFncyZNaSYmdC5tZW1vaXplZFN0YXRlIT09bnVsbCYmQ08obyxUbix0Lm1lbW9pemVkU3RhdGUsdC5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6VWEodCxyLG8pO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dmFyIHM9VG47VG49cGwodC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksVWEodCxyLG8pLFRuPXM7YnJlYWs7Y2FzZSAyMjp0Lm1lbW9pemVkU3RhdGU9PT1udWxsJiYocz10LmFsdGVybmF0ZSxzIT09bnVsbCYmcy5tZW1vaXplZFN0YXRlIT09bnVsbD8ocz1NaSxNaT0xNjc3NzIxNixVYSh0LHIsbyksTWk9cyk6VWEodCxyLG8pKTticmVhaztkZWZhdWx0OlVhKHQscixvKX19ZnVuY3Rpb24gZ1ModCl7dmFyIHI9dC5hbHRlcm5hdGU7aWYociE9PW51bGwmJih0PXIuY2hpbGQsdCE9PW51bGwpKXtyLmNoaWxkPW51bGw7ZG8gcj10LnNpYmxpbmcsdC5zaWJsaW5nPW51bGwsdD1yO3doaWxlKHQhPT1udWxsKX19ZnVuY3Rpb24gVWkodCl7dmFyIHI9dC5kZWxldGlvbnM7aWYoKHQuZmxhZ3MmMTYpIT09MCl7aWYociE9PW51bGwpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBzPXJbb107bXQ9cyxoUyhzLHQpfWdTKHQpfWlmKHQuc3VidHJlZUZsYWdzJjEwMjU2KWZvcih0PXQuY2hpbGQ7dCE9PW51bGw7KW1TKHQpLHQ9dC5zaWJsaW5nfWZ1bmN0aW9uIG1TKHQpe3N3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpVaSh0KSx0LmZsYWdzJjIwNDgmJmhyKDksdCx0LnJldHVybik7YnJlYWs7Y2FzZSAzOlVpKHQpO2JyZWFrO2Nhc2UgMTI6VWkodCk7YnJlYWs7Y2FzZSAyMjp2YXIgcj10LnN0YXRlTm9kZTt0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiZyLl92aXNpYmlsaXR5JjImJih0LnJldHVybj09PW51bGx8fHQucmV0dXJuLnRhZyE9PTEzKT8oci5fdmlzaWJpbGl0eSY9LTMsSm8odCkpOlVpKHQpO2JyZWFrO2RlZmF1bHQ6VWkodCl9fWZ1bmN0aW9uIEpvKHQpe3ZhciByPXQuZGVsZXRpb25zO2lmKCh0LmZsYWdzJjE2KSE9PTApe2lmKHIhPT1udWxsKWZvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXt2YXIgcz1yW29dO210PXMsaFMocyx0KX1nUyh0KX1mb3IodD10LmNoaWxkO3QhPT1udWxsOyl7c3dpdGNoKHI9dCxyLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpocig4LHIsci5yZXR1cm4pLEpvKHIpO2JyZWFrO2Nhc2UgMjI6bz1yLnN0YXRlTm9kZSxvLl92aXNpYmlsaXR5JjImJihvLl92aXNpYmlsaXR5Jj0tMyxKbyhyKSk7YnJlYWs7ZGVmYXVsdDpKbyhyKX10PXQuc2libGluZ319ZnVuY3Rpb24gaFModCxyKXtmb3IoO210IT09bnVsbDspe3ZhciBvPW10O3N3aXRjaChvLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpocig4LG8scik7YnJlYWs7Y2FzZSAyMzpjYXNlIDIyOmlmKG8ubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJm8ubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsKXt2YXIgcz1vLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2w7cyE9bnVsbCYmcy5yZWZDb3VudCsrfWJyZWFrO2Nhc2UgMjQ6RWkoby5tZW1vaXplZFN0YXRlLmNhY2hlKX1pZihzPW8uY2hpbGQscyE9PW51bGwpcy5yZXR1cm49byxtdD1zO2Vsc2UgZTpmb3Iobz10O210IT09bnVsbDspe3M9bXQ7dmFyIHA9cy5zaWJsaW5nLGc9cy5yZXR1cm47aWYob1Mocykscz09PW8pe210PW51bGw7YnJlYWsgZX1pZihwIT09bnVsbCl7cC5yZXR1cm49ZyxtdD1wO2JyZWFrIGV9bXQ9Z319fXZhciAkST17Z2V0Q2FjaGVGb3JUeXBlOmZ1bmN0aW9uKHQpe3ZhciByPXZ0KG90KSxvPXIuZGF0YS5nZXQodCk7cmV0dXJuIG89PT12b2lkIDAmJihvPXQoKSxyLmRhdGEuc2V0KHQsbykpLG99LGNhY2hlU2lnbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIHZ0KG90KS5jb250cm9sbGVyLnNpZ25hbH19LFZJPXR5cGVvZiBXZWFrTWFwPT0iZnVuY3Rpb24iP1dlYWtNYXA6TWFwLEZlPTAsJGU9bnVsbCxBZT1udWxsLGtlPTAsamU9MCxYdD1udWxsLGJyPSExLEZhPSExLEl1PSExLEpuPTAsdHQ9MCx5cj0wLGVhPTAsT3U9MCxadD0wLEJhPTAsRmk9bnVsbCxqdD1udWxsLEx1PSExLGVsPTAsYlM9MCx0bD0xLzAsbmw9bnVsbCxFcj1udWxsLGR0PTAsU3I9bnVsbCxqYT1udWxsLGVyPTAsRHU9MCxNdT1udWxsLHlTPW51bGwsQmk9MCxVdT1udWxsO2Z1bmN0aW9uIFF0KCl7cmV0dXJuKEZlJjIpIT09MCYma2UhPT0wP2tlJi1rZTpHLlQhPT1udWxsP1B1KCk6RGIoKX1mdW5jdGlvbiBFUygpe2lmKFp0PT09MClpZigoa2UmNTM2ODcwOTEyKT09PTB8fExlKXt2YXIgdD1ObjtObjw8PTEsKE5uJjM5MzIxNjApPT09MCYmKE5uPTI2MjE0NCksWnQ9dH1lbHNlIFp0PTUzNjg3MDkxMjtyZXR1cm4gdD1LdC5jdXJyZW50LHQhPT1udWxsJiYodC5mbGFnc3w9MzIpLFp0fWZ1bmN0aW9uIHp0KHQscixvKXsodD09PSRlJiYoamU9PT0yfHxqZT09PTkpfHx0LmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsKSYmKHphKHQsMCksdnIodCxrZSxadCwhMSkpLGlpKHQsbyksKChGZSYyKT09PTB8fHQhPT0kZSkmJih0PT09JGUmJigoRmUmMik9PT0wJiYoZWF8PW8pLHR0PT09NCYmdnIodCxrZSxadCwhMSkpLE9uKHQpKX1mdW5jdGlvbiBTUyh0LHIsbyl7aWYoKEZlJjYpIT09MCl0aHJvdyBFcnJvcihpKDMyNykpO3ZhciBzPSFvJiYociYxMjcpPT09MCYmKHImdC5leHBpcmVkTGFuZXMpPT09MHx8YXIodCxyKSxwPXM/V0kodCxyKTpCdSh0LHIsITApLGc9cztkb3tpZihwPT09MCl7RmEmJiFzJiZ2cih0LHIsMCwhMSk7YnJlYWt9ZWxzZXtpZihvPXQuY3VycmVudC5hbHRlcm5hdGUsZyYmIVlJKG8pKXtwPUJ1KHQsciwhMSksZz0hMTtjb250aW51ZX1pZihwPT09Mil7aWYoZz1yLHQuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXMmZyl2YXIgdj0wO2Vsc2Ugdj10LnBlbmRpbmdMYW5lcyYtNTM2ODcwOTEzLHY9diE9PTA/djp2JjUzNjg3MDkxMj81MzY4NzA5MTI6MDtpZih2IT09MCl7cj12O2U6e3ZhciBBPXQ7cD1GaTt2YXIgRD1BLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQ7aWYoRCYmKHphKEEsdikuZmxhZ3N8PTI1Niksdj1CdShBLHYsITEpLHYhPT0yKXtpZihJdSYmIUQpe0EuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXN8PWcsZWF8PWcscD00O2JyZWFrIGV9Zz1qdCxqdD1wLGchPT1udWxsJiYoanQ9PT1udWxsP2p0PWc6anQucHVzaC5hcHBseShqdCxnKSl9cD12fWlmKGc9ITEscCE9PTIpY29udGludWV9fWlmKHA9PT0xKXt6YSh0LDApLHZyKHQsciwwLCEwKTticmVha31lOntzd2l0Y2gocz10LGc9cCxnKXtjYXNlIDA6Y2FzZSAxOnRocm93IEVycm9yKGkoMzQ1KSk7Y2FzZSA0OmlmKChyJjQxOTQwNDgpIT09cilicmVhaztjYXNlIDY6dnIocyxyLFp0LCFicik7YnJlYWsgZTtjYXNlIDI6anQ9bnVsbDticmVhaztjYXNlIDM6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoaSgzMjkpKX1pZigociY2MjkxNDU2MCk9PT1yJiYocD1lbCszMDAtUWUoKSwxMDxwKSl7aWYodnIocyxyLFp0LCFiciksRnIocywwLCEwKSE9PTApYnJlYWsgZTtlcj1yLHMudGltZW91dEhhbmRsZT1aUyh2Uy5iaW5kKG51bGwscyxvLGp0LG5sLEx1LHIsWnQsZWEsQmEsYnIsZywiVGhyb3R0bGVkIiwtMCwwKSxwKTticmVhayBlfXZTKHMsbyxqdCxubCxMdSxyLFp0LGVhLEJhLGJyLGcsbnVsbCwtMCwwKX19YnJlYWt9d2hpbGUoITApO09uKHQpfWZ1bmN0aW9uIHZTKHQscixvLHMscCxnLHYsQSxELFAsWCxRLEgsSyl7aWYodC50aW1lb3V0SGFuZGxlPS0xLFE9ci5zdWJ0cmVlRmxhZ3MsUSY4MTkyfHwoUSYxNjc4NTQwOCk9PT0xNjc4NTQwOCl7UT17c3R5bGVzaGVldHM6bnVsbCxjb3VudDowLGltZ0NvdW50OjAsaW1nQnl0ZXM6MCxzdXNwZW5zZXlJbWFnZXM6W10sd2FpdGluZ0ZvckltYWdlczohMCx3YWl0aW5nRm9yVmlld1RyYW5zaXRpb246ITEsdW5zdXNwZW5kOmpufSxmUyhyLGcsUSk7dmFyIHBlPShnJjYyOTE0NTYwKT09PWc/ZWwtUWUoKTooZyY0MTk0MDQ4KT09PWc/YlMtUWUoKTowO2lmKHBlPUlPKFEscGUpLHBlIT09bnVsbCl7ZXI9Zyx0LmNhbmNlbFBlbmRpbmdDb21taXQ9cGUoa1MuYmluZChudWxsLHQscixnLG8scyxwLHYsQSxELFgsUSxudWxsLEgsSykpLHZyKHQsZyx2LCFQKTtyZXR1cm59fWtTKHQscixnLG8scyxwLHYsQSxEKX1mdW5jdGlvbiBZSSh0KXtmb3IodmFyIHI9dDs7KXt2YXIgbz1yLnRhZztpZigobz09PTB8fG89PT0xMXx8bz09PTE1KSYmci5mbGFncyYxNjM4NCYmKG89ci51cGRhdGVRdWV1ZSxvIT09bnVsbCYmKG89by5zdG9yZXMsbyE9PW51bGwpKSlmb3IodmFyIHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIHA9b1tzXSxnPXAuZ2V0U25hcHNob3Q7cD1wLnZhbHVlO3RyeXtpZighVnQoZygpLHApKXJldHVybiExfWNhdGNoe3JldHVybiExfX1pZihvPXIuY2hpbGQsci5zdWJ0cmVlRmxhZ3MmMTYzODQmJm8hPT1udWxsKW8ucmV0dXJuPXIscj1vO2Vsc2V7aWYocj09PXQpYnJlYWs7Zm9yKDtyLnNpYmxpbmc9PT1udWxsOyl7aWYoci5yZXR1cm49PT1udWxsfHxyLnJldHVybj09PXQpcmV0dXJuITA7cj1yLnJldHVybn1yLnNpYmxpbmcucmV0dXJuPXIucmV0dXJuLHI9ci5zaWJsaW5nfX1yZXR1cm4hMH1mdW5jdGlvbiB2cih0LHIsbyxzKXtyJj1+T3UsciY9fmVhLHQuc3VzcGVuZGVkTGFuZXN8PXIsdC5waW5nZWRMYW5lcyY9fnIscyYmKHQud2FybUxhbmVzfD1yKSxzPXQuZXhwaXJhdGlvblRpbWVzO2Zvcih2YXIgcD1yOzA8cDspe3ZhciBnPTMxLUJlKHApLHY9MTw8ZztzW2ddPS0xLHAmPX52fW8hPT0wJiZJYih0LG8scil9ZnVuY3Rpb24gcmwoKXtyZXR1cm4oRmUmNik9PT0wPyhqaSgwKSwhMSk6ITB9ZnVuY3Rpb24gRnUoKXtpZihBZSE9PW51bGwpe2lmKGplPT09MCl2YXIgdD1BZS5yZXR1cm47ZWxzZSB0PUFlLEduPSRyPW51bGwsSnModCksQ2E9bnVsbCx2aT0wLHQ9QWU7Zm9yKDt0IT09bnVsbDspUUUodC5hbHRlcm5hdGUsdCksdD10LnJldHVybjtBZT1udWxsfX1mdW5jdGlvbiB6YSh0LHIpe3ZhciBvPXQudGltZW91dEhhbmRsZTtvIT09LTEmJih0LnRpbWVvdXRIYW5kbGU9LTEsZk8obykpLG89dC5jYW5jZWxQZW5kaW5nQ29tbWl0LG8hPT1udWxsJiYodC5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGwsbygpKSxlcj0wLEZ1KCksJGU9dCxBZT1vPXFuKHQuY3VycmVudCxudWxsKSxrZT1yLGplPTAsWHQ9bnVsbCxicj0hMSxGYT1hcih0LHIpLEl1PSExLEJhPVp0PU91PWVhPXlyPXR0PTAsanQ9Rmk9bnVsbCxMdT0hMSwociY4KSE9PTAmJihyfD1yJjMyKTt2YXIgcz10LmVudGFuZ2xlZExhbmVzO2lmKHMhPT0wKWZvcih0PXQuZW50YW5nbGVtZW50cyxzJj1yOzA8czspe3ZhciBwPTMxLUJlKHMpLGc9MTw8cDtyfD10W3BdLHMmPX5nfXJldHVybiBKbj1yLEFvKCksb31mdW5jdGlvbiBUUyh0LHIpe3ZlPW51bGwsRy5IPWtpLHI9PT1rYXx8cj09PU9vPyhyPUJ5KCksamU9Myk6cj09PXFzPyhyPUJ5KCksamU9NCk6amU9cj09PW11Pzg6ciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0IiYmdHlwZW9mIHIudGhlbj09ImZ1bmN0aW9uIj82OjEsWHQ9cixBZT09PW51bGwmJih0dD0xLFZvKHQsY24ocix0LmN1cnJlbnQpKSl9ZnVuY3Rpb24geFMoKXt2YXIgdD1LdC5jdXJyZW50O3JldHVybiB0PT09bnVsbD8hMDooa2UmNDE5NDA0OCk9PT1rZT9nbj09PW51bGw6KGtlJjYyOTE0NTYwKT09PWtlfHwoa2UmNTM2ODcwOTEyKSE9PTA/dD09PWduOiExfWZ1bmN0aW9uIEFTKCl7dmFyIHQ9Ry5IO3JldHVybiBHLkg9a2ksdD09PW51bGw/a2k6dH1mdW5jdGlvbiBfUygpe3ZhciB0PUcuQTtyZXR1cm4gRy5BPSRJLHR9ZnVuY3Rpb24gYWwoKXt0dD00LGJyfHwoa2UmNDE5NDA0OCkhPT1rZSYmS3QuY3VycmVudCE9PW51bGx8fChGYT0hMCksKHlyJjEzNDIxNzcyNyk9PT0wJiYoZWEmMTM0MjE3NzI3KT09PTB8fCRlPT09bnVsbHx8dnIoJGUsa2UsWnQsITEpfWZ1bmN0aW9uIEJ1KHQscixvKXt2YXIgcz1GZTtGZXw9Mjt2YXIgcD1BUygpLGc9X1MoKTsoJGUhPT10fHxrZSE9PXIpJiYobmw9bnVsbCx6YSh0LHIpKSxyPSExO3ZhciB2PXR0O2U6ZG8gdHJ5e2lmKGplIT09MCYmQWUhPT1udWxsKXt2YXIgQT1BZSxEPVh0O3N3aXRjaChqZSl7Y2FzZSA4OkZ1KCksdj02O2JyZWFrIGU7Y2FzZSAzOmNhc2UgMjpjYXNlIDk6Y2FzZSA2Okt0LmN1cnJlbnQ9PT1udWxsJiYocj0hMCk7dmFyIFA9amU7aWYoamU9MCxYdD1udWxsLHFhKHQsQSxELFApLG8mJkZhKXt2PTA7YnJlYWsgZX1icmVhaztkZWZhdWx0OlA9amUsamU9MCxYdD1udWxsLHFhKHQsQSxELFApfX1LSSgpLHY9dHQ7YnJlYWt9Y2F0Y2goWCl7VFModCxYKX13aGlsZSghMCk7cmV0dXJuIHImJnQuc2hlbGxTdXNwZW5kQ291bnRlcisrLEduPSRyPW51bGwsRmU9cyxHLkg9cCxHLkE9ZyxBZT09PW51bGwmJigkZT1udWxsLGtlPTAsQW8oKSksdn1mdW5jdGlvbiBLSSgpe2Zvcig7QWUhPT1udWxsOylSUyhBZSl9ZnVuY3Rpb24gV0kodCxyKXt2YXIgbz1GZTtGZXw9Mjt2YXIgcz1BUygpLHA9X1MoKTskZSE9PXR8fGtlIT09cj8obmw9bnVsbCx0bD1RZSgpKzUwMCx6YSh0LHIpKTpGYT1hcih0LHIpO2U6ZG8gdHJ5e2lmKGplIT09MCYmQWUhPT1udWxsKXtyPUFlO3ZhciBnPVh0O3Q6c3dpdGNoKGplKXtjYXNlIDE6amU9MCxYdD1udWxsLHFhKHQscixnLDEpO2JyZWFrO2Nhc2UgMjpjYXNlIDk6aWYoVXkoZykpe2plPTAsWHQ9bnVsbCxOUyhyKTticmVha31yPWZ1bmN0aW9uKCl7amUhPT0yJiZqZSE9PTl8fCRlIT09dHx8KGplPTcpLE9uKHQpfSxnLnRoZW4ocixyKTticmVhayBlO2Nhc2UgMzpqZT03O2JyZWFrIGU7Y2FzZSA0OmplPTU7YnJlYWsgZTtjYXNlIDc6VXkoZyk/KGplPTAsWHQ9bnVsbCxOUyhyKSk6KGplPTAsWHQ9bnVsbCxxYSh0LHIsZyw3KSk7YnJlYWs7Y2FzZSA1OnZhciB2PW51bGw7c3dpdGNoKEFlLnRhZyl7Y2FzZSAyNjp2PUFlLm1lbW9pemVkU3RhdGU7Y2FzZSA1OmNhc2UgMjc6dmFyIEE9QWU7aWYodj9wdih2KTpBLnN0YXRlTm9kZS5jb21wbGV0ZSl7amU9MCxYdD1udWxsO3ZhciBEPUEuc2libGluZztpZihEIT09bnVsbClBZT1EO2Vsc2V7dmFyIFA9QS5yZXR1cm47UCE9PW51bGw/KEFlPVAsaWwoUCkpOkFlPW51bGx9YnJlYWsgdH19amU9MCxYdD1udWxsLHFhKHQscixnLDUpO2JyZWFrO2Nhc2UgNjpqZT0wLFh0PW51bGwscWEodCxyLGcsNik7YnJlYWs7Y2FzZSA4OkZ1KCksdHQ9NjticmVhayBlO2RlZmF1bHQ6dGhyb3cgRXJyb3IoaSg0NjIpKX19WEkoKTticmVha31jYXRjaChYKXtUUyh0LFgpfXdoaWxlKCEwKTtyZXR1cm4gR249JHI9bnVsbCxHLkg9cyxHLkE9cCxGZT1vLEFlIT09bnVsbD8wOigkZT1udWxsLGtlPTAsQW8oKSx0dCl9ZnVuY3Rpb24gWEkoKXtmb3IoO0FlIT09bnVsbCYmIVJuKCk7KVJTKEFlKX1mdW5jdGlvbiBSUyh0KXt2YXIgcj1YRSh0LmFsdGVybmF0ZSx0LEpuKTt0Lm1lbW9pemVkUHJvcHM9dC5wZW5kaW5nUHJvcHMscj09PW51bGw/aWwodCk6QWU9cn1mdW5jdGlvbiBOUyh0KXt2YXIgcj10LG89ci5hbHRlcm5hdGU7c3dpdGNoKHIudGFnKXtjYXNlIDE1OmNhc2UgMDpyPUhFKG8scixyLnBlbmRpbmdQcm9wcyxyLnR5cGUsdm9pZCAwLGtlKTticmVhaztjYXNlIDExOnI9SEUobyxyLHIucGVuZGluZ1Byb3BzLHIudHlwZS5yZW5kZXIsci5yZWYsa2UpO2JyZWFrO2Nhc2UgNTpKcyhyKTtkZWZhdWx0OlFFKG8scikscj1BZT1feShyLEpuKSxyPVhFKG8scixKbil9dC5tZW1vaXplZFByb3BzPXQucGVuZGluZ1Byb3BzLHI9PT1udWxsP2lsKHQpOkFlPXJ9ZnVuY3Rpb24gcWEodCxyLG8scyl7R249JHI9bnVsbCxKcyhyKSxDYT1udWxsLHZpPTA7dmFyIHA9ci5yZXR1cm47dHJ5e2lmKEJJKHQscCxyLG8sa2UpKXt0dD0xLFZvKHQsY24obyx0LmN1cnJlbnQpKSxBZT1udWxsO3JldHVybn19Y2F0Y2goZyl7aWYocCE9PW51bGwpdGhyb3cgQWU9cCxnO3R0PTEsVm8odCxjbihvLHQuY3VycmVudCkpLEFlPW51bGw7cmV0dXJufXIuZmxhZ3MmMzI3Njg/KExlfHxzPT09MT90PSEwOkZhfHwoa2UmNTM2ODcwOTEyKSE9PTA/dD0hMTooYnI9dD0hMCwocz09PTJ8fHM9PT05fHxzPT09M3x8cz09PTYpJiYocz1LdC5jdXJyZW50LHMhPT1udWxsJiZzLnRhZz09PTEzJiYocy5mbGFnc3w9MTYzODQpKSksd1Mocix0KSk6aWwocil9ZnVuY3Rpb24gaWwodCl7dmFyIHI9dDtkb3tpZigoci5mbGFncyYzMjc2OCkhPT0wKXt3UyhyLGJyKTtyZXR1cm59dD1yLnJldHVybjt2YXIgbz1xSShyLmFsdGVybmF0ZSxyLEpuKTtpZihvIT09bnVsbCl7QWU9bztyZXR1cm59aWYocj1yLnNpYmxpbmcsciE9PW51bGwpe0FlPXI7cmV0dXJufUFlPXI9dH13aGlsZShyIT09bnVsbCk7dHQ9PT0wJiYodHQ9NSl9ZnVuY3Rpb24gd1ModCxyKXtkb3t2YXIgbz1QSSh0LmFsdGVybmF0ZSx0KTtpZihvIT09bnVsbCl7by5mbGFncyY9MzI3NjcsQWU9bztyZXR1cm59aWYobz10LnJldHVybixvIT09bnVsbCYmKG8uZmxhZ3N8PTMyNzY4LG8uc3VidHJlZUZsYWdzPTAsby5kZWxldGlvbnM9bnVsbCksIXImJih0PXQuc2libGluZyx0IT09bnVsbCkpe0FlPXQ7cmV0dXJufUFlPXQ9b313aGlsZSh0IT09bnVsbCk7dHQ9NixBZT1udWxsfWZ1bmN0aW9uIGtTKHQscixvLHMscCxnLHYsQSxEKXt0LmNhbmNlbFBlbmRpbmdDb21taXQ9bnVsbDtkbyBvbCgpO3doaWxlKGR0IT09MCk7aWYoKEZlJjYpIT09MCl0aHJvdyBFcnJvcihpKDMyNykpO2lmKHIhPT1udWxsKXtpZihyPT09dC5jdXJyZW50KXRocm93IEVycm9yKGkoMTc3KSk7aWYoZz1yLmxhbmVzfHIuY2hpbGRMYW5lcyxnfD1ScyxrQyh0LG8sZyx2LEEsRCksdD09PSRlJiYoQWU9JGU9bnVsbCxrZT0wKSxqYT1yLFNyPXQsZXI9byxEdT1nLE11PXAseVM9cywoci5zdWJ0cmVlRmxhZ3MmMTAyNTYpIT09MHx8KHIuZmxhZ3MmMTAyNTYpIT09MD8odC5jYWxsYmFja05vZGU9bnVsbCx0LmNhbGxiYWNrUHJpb3JpdHk9MCxlTyhkZSxmdW5jdGlvbigpe3JldHVybiBEUygpLG51bGx9KSk6KHQuY2FsbGJhY2tOb2RlPW51bGwsdC5jYWxsYmFja1ByaW9yaXR5PTApLHM9KHIuZmxhZ3MmMTM4NzgpIT09MCwoci5zdWJ0cmVlRmxhZ3MmMTM4NzgpIT09MHx8cyl7cz1HLlQsRy5UPW51bGwscD1lZS5wLGVlLnA9Mix2PUZlLEZlfD00O3RyeXtHSSh0LHIsbyl9ZmluYWxseXtGZT12LGVlLnA9cCxHLlQ9c319ZHQ9MSxDUygpLElTKCksT1MoKX19ZnVuY3Rpb24gQ1MoKXtpZihkdD09PTEpe2R0PTA7dmFyIHQ9U3Iscj1qYSxvPShyLmZsYWdzJjEzODc4KSE9PTA7aWYoKHIuc3VidHJlZUZsYWdzJjEzODc4KSE9PTB8fG8pe289Ry5ULEcuVD1udWxsO3ZhciBzPWVlLnA7ZWUucD0yO3ZhciBwPUZlO0ZlfD00O3RyeXtjUyhyLHQpO3ZhciBnPVh1LHY9aHkodC5jb250YWluZXJJbmZvKSxBPWcuZm9jdXNlZEVsZW0sRD1nLnNlbGVjdGlvblJhbmdlO2lmKHYhPT1BJiZBJiZBLm93bmVyRG9jdW1lbnQmJm15KEEub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsQSkpe2lmKEQhPT1udWxsJiZ2cyhBKSl7dmFyIFA9RC5zdGFydCxYPUQuZW5kO2lmKFg9PT12b2lkIDAmJihYPVApLCJzZWxlY3Rpb25TdGFydCJpbiBBKUEuc2VsZWN0aW9uU3RhcnQ9UCxBLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihYLEEudmFsdWUubGVuZ3RoKTtlbHNle3ZhciBRPUEub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQsSD1RJiZRLmRlZmF1bHRWaWV3fHx3aW5kb3c7aWYoSC5nZXRTZWxlY3Rpb24pe3ZhciBLPUguZ2V0U2VsZWN0aW9uKCkscGU9QS50ZXh0Q29udGVudC5sZW5ndGgseWU9TWF0aC5taW4oRC5zdGFydCxwZSksR2U9RC5lbmQ9PT12b2lkIDA/eWU6TWF0aC5taW4oRC5lbmQscGUpOyFLLmV4dGVuZCYmeWU+R2UmJih2PUdlLEdlPXllLHllPXYpO3ZhciBqPWd5KEEseWUpLEI9Z3koQSxHZSk7aWYoaiYmQiYmKEsucmFuZ2VDb3VudCE9PTF8fEsuYW5jaG9yTm9kZSE9PWoubm9kZXx8Sy5hbmNob3JPZmZzZXQhPT1qLm9mZnNldHx8Sy5mb2N1c05vZGUhPT1CLm5vZGV8fEsuZm9jdXNPZmZzZXQhPT1CLm9mZnNldCkpe3ZhciBxPVEuY3JlYXRlUmFuZ2UoKTtxLnNldFN0YXJ0KGoubm9kZSxqLm9mZnNldCksSy5yZW1vdmVBbGxSYW5nZXMoKSx5ZT5HZT8oSy5hZGRSYW5nZShxKSxLLmV4dGVuZChCLm5vZGUsQi5vZmZzZXQpKToocS5zZXRFbmQoQi5ub2RlLEIub2Zmc2V0KSxLLmFkZFJhbmdlKHEpKX19fX1mb3IoUT1bXSxLPUE7Sz1LLnBhcmVudE5vZGU7KUsubm9kZVR5cGU9PT0xJiZRLnB1c2goe2VsZW1lbnQ6SyxsZWZ0Oksuc2Nyb2xsTGVmdCx0b3A6Sy5zY3JvbGxUb3B9KTtmb3IodHlwZW9mIEEuZm9jdXM9PSJmdW5jdGlvbiImJkEuZm9jdXMoKSxBPTA7QTxRLmxlbmd0aDtBKyspe3ZhciBaPVFbQV07Wi5lbGVtZW50LnNjcm9sbExlZnQ9Wi5sZWZ0LFouZWxlbWVudC5zY3JvbGxUb3A9Wi50b3B9fXlsPSEhV3UsWHU9V3U9bnVsbH1maW5hbGx5e0ZlPXAsZWUucD1zLEcuVD1vfX10LmN1cnJlbnQ9cixkdD0yfX1mdW5jdGlvbiBJUygpe2lmKGR0PT09Mil7ZHQ9MDt2YXIgdD1TcixyPWphLG89KHIuZmxhZ3MmODc3MikhPT0wO2lmKChyLnN1YnRyZWVGbGFncyY4NzcyKSE9PTB8fG8pe289Ry5ULEcuVD1udWxsO3ZhciBzPWVlLnA7ZWUucD0yO3ZhciBwPUZlO0ZlfD00O3RyeXtpUyh0LHIuYWx0ZXJuYXRlLHIpfWZpbmFsbHl7RmU9cCxlZS5wPXMsRy5UPW99fWR0PTN9fWZ1bmN0aW9uIE9TKCl7aWYoZHQ9PT00fHxkdD09PTMpe2R0PTAsVXIoKTt2YXIgdD1TcixyPWphLG89ZXIscz15Uzsoci5zdWJ0cmVlRmxhZ3MmMTAyNTYpIT09MHx8KHIuZmxhZ3MmMTAyNTYpIT09MD9kdD01OihkdD0wLGphPVNyPW51bGwsTFModCx0LnBlbmRpbmdMYW5lcykpO3ZhciBwPXQucGVuZGluZ0xhbmVzO2lmKHA9PT0wJiYoRXI9bnVsbCksbnMobykscj1yLnN0YXRlTm9kZSxIZSYmdHlwZW9mIEhlLm9uQ29tbWl0RmliZXJSb290PT0iZnVuY3Rpb24iKXRyeXtIZS5vbkNvbW1pdEZpYmVyUm9vdChudCxyLHZvaWQgMCwoci5jdXJyZW50LmZsYWdzJjEyOCk9PT0xMjgpfWNhdGNoe31pZihzIT09bnVsbCl7cj1HLlQscD1lZS5wLGVlLnA9MixHLlQ9bnVsbDt0cnl7Zm9yKHZhciBnPXQub25SZWNvdmVyYWJsZUVycm9yLHY9MDt2PHMubGVuZ3RoO3YrKyl7dmFyIEE9c1t2XTtnKEEudmFsdWUse2NvbXBvbmVudFN0YWNrOkEuc3RhY2t9KX19ZmluYWxseXtHLlQ9cixlZS5wPXB9fShlciYzKSE9PTAmJm9sKCksT24odCkscD10LnBlbmRpbmdMYW5lcywobyYyNjE5MzApIT09MCYmKHAmNDIpIT09MD90PT09VXU/QmkrKzooQmk9MCxVdT10KTpCaT0wLGppKDApfX1mdW5jdGlvbiBMUyh0LHIpeyh0LnBvb2xlZENhY2hlTGFuZXMmPXIpPT09MCYmKHI9dC5wb29sZWRDYWNoZSxyIT1udWxsJiYodC5wb29sZWRDYWNoZT1udWxsLEVpKHIpKSl9ZnVuY3Rpb24gb2woKXtyZXR1cm4gQ1MoKSxJUygpLE9TKCksRFMoKX1mdW5jdGlvbiBEUygpe2lmKGR0IT09NSlyZXR1cm4hMTt2YXIgdD1TcixyPUR1O0R1PTA7dmFyIG89bnMoZXIpLHM9Ry5ULHA9ZWUucDt0cnl7ZWUucD0zMj5vPzMyOm8sRy5UPW51bGwsbz1NdSxNdT1udWxsO3ZhciBnPVNyLHY9ZXI7aWYoZHQ9MCxqYT1Tcj1udWxsLGVyPTAsKEZlJjYpIT09MCl0aHJvdyBFcnJvcihpKDMzMSkpO3ZhciBBPUZlO2lmKEZlfD00LG1TKGcuY3VycmVudCkscFMoZyxnLmN1cnJlbnQsdixvKSxGZT1BLGppKDAsITEpLEhlJiZ0eXBlb2YgSGUub25Qb3N0Q29tbWl0RmliZXJSb290PT0iZnVuY3Rpb24iKXRyeXtIZS5vblBvc3RDb21taXRGaWJlclJvb3QobnQsZyl9Y2F0Y2h7fXJldHVybiEwfWZpbmFsbHl7ZWUucD1wLEcuVD1zLExTKHQscil9fWZ1bmN0aW9uIE1TKHQscixvKXtyPWNuKG8scikscj1ndSh0LnN0YXRlTm9kZSxyLDIpLHQ9ZnIodCxyLDIpLHQhPT1udWxsJiYoaWkodCwyKSxPbih0KSl9ZnVuY3Rpb24gemUodCxyLG8pe2lmKHQudGFnPT09MylNUyh0LHQsbyk7ZWxzZSBmb3IoO3IhPT1udWxsOyl7aWYoci50YWc9PT0zKXtNUyhyLHQsbyk7YnJlYWt9ZWxzZSBpZihyLnRhZz09PTEpe3ZhciBzPXIuc3RhdGVOb2RlO2lmKHR5cGVvZiByLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yPT0iZnVuY3Rpb24ifHx0eXBlb2Ygcy5jb21wb25lbnREaWRDYXRjaD09ImZ1bmN0aW9uIiYmKEVyPT09bnVsbHx8IUVyLmhhcyhzKSkpe3Q9Y24obyx0KSxvPVVFKDIpLHM9ZnIocixvLDIpLHMhPT1udWxsJiYoRkUobyxzLHIsdCksaWkocywyKSxPbihzKSk7YnJlYWt9fXI9ci5yZXR1cm59fWZ1bmN0aW9uIGp1KHQscixvKXt2YXIgcz10LnBpbmdDYWNoZTtpZihzPT09bnVsbCl7cz10LnBpbmdDYWNoZT1uZXcgVkk7dmFyIHA9bmV3IFNldDtzLnNldChyLHApfWVsc2UgcD1zLmdldChyKSxwPT09dm9pZCAwJiYocD1uZXcgU2V0LHMuc2V0KHIscCkpO3AuaGFzKG8pfHwoSXU9ITAscC5hZGQobyksdD1aSS5iaW5kKG51bGwsdCxyLG8pLHIudGhlbih0LHQpKX1mdW5jdGlvbiBaSSh0LHIsbyl7dmFyIHM9dC5waW5nQ2FjaGU7cyE9PW51bGwmJnMuZGVsZXRlKHIpLHQucGluZ2VkTGFuZXN8PXQuc3VzcGVuZGVkTGFuZXMmbyx0Lndhcm1MYW5lcyY9fm8sJGU9PT10JiYoa2Umbyk9PT1vJiYodHQ9PT00fHx0dD09PTMmJihrZSY2MjkxNDU2MCk9PT1rZSYmMzAwPlFlKCktZWw/KEZlJjIpPT09MCYmemEodCwwKTpPdXw9byxCYT09PWtlJiYoQmE9MCkpLE9uKHQpfWZ1bmN0aW9uIFVTKHQscil7cj09PTAmJihyPUNiKCkpLHQ9UHIodCxyKSx0IT09bnVsbCYmKGlpKHQsciksT24odCkpfWZ1bmN0aW9uIFFJKHQpe3ZhciByPXQubWVtb2l6ZWRTdGF0ZSxvPTA7ciE9PW51bGwmJihvPXIucmV0cnlMYW5lKSxVUyh0LG8pfWZ1bmN0aW9uIEpJKHQscil7dmFyIG89MDtzd2l0Y2godC50YWcpe2Nhc2UgMzE6Y2FzZSAxMzp2YXIgcz10LnN0YXRlTm9kZSxwPXQubWVtb2l6ZWRTdGF0ZTtwIT09bnVsbCYmKG89cC5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6cz10LnN0YXRlTm9kZTticmVhaztjYXNlIDIyOnM9dC5zdGF0ZU5vZGUuX3JldHJ5Q2FjaGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihpKDMxNCkpfXMhPT1udWxsJiZzLmRlbGV0ZShyKSxVUyh0LG8pfWZ1bmN0aW9uIGVPKHQscil7cmV0dXJuIE90KHQscil9dmFyIGxsPW51bGwsUGE9bnVsbCx6dT0hMSxzbD0hMSxxdT0hMSxUcj0wO2Z1bmN0aW9uIE9uKHQpe3QhPT1QYSYmdC5uZXh0PT09bnVsbCYmKFBhPT09bnVsbD9sbD1QYT10OlBhPVBhLm5leHQ9dCksc2w9ITAsenV8fCh6dT0hMCxuTygpKX1mdW5jdGlvbiBqaSh0LHIpe2lmKCFxdSYmc2wpe3F1PSEwO2RvIGZvcih2YXIgbz0hMSxzPWxsO3MhPT1udWxsOyl7aWYodCE9PTApe3ZhciBwPXMucGVuZGluZ0xhbmVzO2lmKHA9PT0wKXZhciBnPTA7ZWxzZXt2YXIgdj1zLnN1c3BlbmRlZExhbmVzLEE9cy5waW5nZWRMYW5lcztnPSgxPDwzMS1CZSg0Mnx0KSsxKS0xLGcmPXAmfih2Jn5BKSxnPWcmMjAxMzI2NzQxP2cmMjAxMzI2NzQxfDE6Zz9nfDI6MH1nIT09MCYmKG89ITAselMocyxnKSl9ZWxzZSBnPWtlLGc9RnIocyxzPT09JGU/ZzowLHMuY2FuY2VsUGVuZGluZ0NvbW1pdCE9PW51bGx8fHMudGltZW91dEhhbmRsZSE9PS0xKSwoZyYzKT09PTB8fGFyKHMsZyl8fChvPSEwLHpTKHMsZykpO3M9cy5uZXh0fXdoaWxlKG8pO3F1PSExfX1mdW5jdGlvbiB0Tygpe0ZTKCl9ZnVuY3Rpb24gRlMoKXtzbD16dT0hMTt2YXIgdD0wO1RyIT09MCYmcE8oKSYmKHQ9VHIpO2Zvcih2YXIgcj1RZSgpLG89bnVsbCxzPWxsO3MhPT1udWxsOyl7dmFyIHA9cy5uZXh0LGc9QlMocyxyKTtnPT09MD8ocy5uZXh0PW51bGwsbz09PW51bGw/bGw9cDpvLm5leHQ9cCxwPT09bnVsbCYmKFBhPW8pKToobz1zLCh0IT09MHx8KGcmMykhPT0wKSYmKHNsPSEwKSkscz1wfWR0IT09MCYmZHQhPT01fHxqaSh0KSxUciE9PTAmJihUcj0wKX1mdW5jdGlvbiBCUyh0LHIpe2Zvcih2YXIgbz10LnN1c3BlbmRlZExhbmVzLHM9dC5waW5nZWRMYW5lcyxwPXQuZXhwaXJhdGlvblRpbWVzLGc9dC5wZW5kaW5nTGFuZXMmLTYyOTE0NTYxOzA8Zzspe3ZhciB2PTMxLUJlKGcpLEE9MTw8dixEPXBbdl07RD09PS0xPygoQSZvKT09PTB8fChBJnMpIT09MCkmJihwW3ZdPWFpKEEscikpOkQ8PXImJih0LmV4cGlyZWRMYW5lc3w9QSksZyY9fkF9aWYocj0kZSxvPWtlLG89RnIodCx0PT09cj9vOjAsdC5jYW5jZWxQZW5kaW5nQ29tbWl0IT09bnVsbHx8dC50aW1lb3V0SGFuZGxlIT09LTEpLHM9dC5jYWxsYmFja05vZGUsbz09PTB8fHQ9PT1yJiYoamU9PT0yfHxqZT09PTkpfHx0LmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsKXJldHVybiBzIT09bnVsbCYmcyE9PW51bGwmJkZuKHMpLHQuY2FsbGJhY2tOb2RlPW51bGwsdC5jYWxsYmFja1ByaW9yaXR5PTA7aWYoKG8mMyk9PT0wfHxhcih0LG8pKXtpZihyPW8mLW8scj09PXQuY2FsbGJhY2tQcmlvcml0eSlyZXR1cm4gcjtzd2l0Y2gocyE9PW51bGwmJkZuKHMpLG5zKG8pKXtjYXNlIDI6Y2FzZSA4Om89cmU7YnJlYWs7Y2FzZSAzMjpvPWRlO2JyZWFrO2Nhc2UgMjY4NDM1NDU2Om89T2U7YnJlYWs7ZGVmYXVsdDpvPWRlfXJldHVybiBzPWpTLmJpbmQobnVsbCx0KSxvPU90KG8scyksdC5jYWxsYmFja1ByaW9yaXR5PXIsdC5jYWxsYmFja05vZGU9byxyfXJldHVybiBzIT09bnVsbCYmcyE9PW51bGwmJkZuKHMpLHQuY2FsbGJhY2tQcmlvcml0eT0yLHQuY2FsbGJhY2tOb2RlPW51bGwsMn1mdW5jdGlvbiBqUyh0LHIpe2lmKGR0IT09MCYmZHQhPT01KXJldHVybiB0LmNhbGxiYWNrTm9kZT1udWxsLHQuY2FsbGJhY2tQcmlvcml0eT0wLG51bGw7dmFyIG89dC5jYWxsYmFja05vZGU7aWYob2woKSYmdC5jYWxsYmFja05vZGUhPT1vKXJldHVybiBudWxsO3ZhciBzPWtlO3JldHVybiBzPUZyKHQsdD09PSRlP3M6MCx0LmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsfHx0LnRpbWVvdXRIYW5kbGUhPT0tMSkscz09PTA/bnVsbDooU1ModCxzLHIpLEJTKHQsUWUoKSksdC5jYWxsYmFja05vZGUhPW51bGwmJnQuY2FsbGJhY2tOb2RlPT09bz9qUy5iaW5kKG51bGwsdCk6bnVsbCl9ZnVuY3Rpb24gelModCxyKXtpZihvbCgpKXJldHVybiBudWxsO1NTKHQsciwhMCl9ZnVuY3Rpb24gbk8oKXtnTyhmdW5jdGlvbigpeyhGZSY2KSE9PTA/T3QoVyx0Tyk6RlMoKX0pfWZ1bmN0aW9uIFB1KCl7aWYoVHI9PT0wKXt2YXIgdD1OYTt0PT09MCYmKHQ9SmUsSmU8PD0xLChKZSYyNjE4ODgpPT09MCYmKEplPTI1NikpLFRyPXR9cmV0dXJuIFRyfWZ1bmN0aW9uIHFTKHQpe3JldHVybiB0PT1udWxsfHx0eXBlb2YgdD09InN5bWJvbCJ8fHR5cGVvZiB0PT0iYm9vbGVhbiI/bnVsbDp0eXBlb2YgdD09ImZ1bmN0aW9uIj90OmhvKCIiK3QpfWZ1bmN0aW9uIFBTKHQscil7dmFyIG89ci5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7cmV0dXJuIG8ubmFtZT1yLm5hbWUsby52YWx1ZT1yLnZhbHVlLHQuaWQmJm8uc2V0QXR0cmlidXRlKCJmb3JtIix0LmlkKSxyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG8sciksdD1uZXcgRm9ybURhdGEodCksby5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pLHR9ZnVuY3Rpb24gck8odCxyLG8scyxwKXtpZihyPT09InN1Ym1pdCImJm8mJm8uc3RhdGVOb2RlPT09cCl7dmFyIGc9cVMoKHBbRHRdfHxudWxsKS5hY3Rpb24pLHY9cy5zdWJtaXR0ZXI7diYmKHI9KHI9dltEdF18fG51bGwpP3FTKHIuZm9ybUFjdGlvbik6di5nZXRBdHRyaWJ1dGUoImZvcm1BY3Rpb24iKSxyIT09bnVsbCYmKGc9cix2PW51bGwpKTt2YXIgQT1uZXcgU28oImFjdGlvbiIsImFjdGlvbiIsbnVsbCxzLHApO3QucHVzaCh7ZXZlbnQ6QSxsaXN0ZW5lcnM6W3tpbnN0YW5jZTpudWxsLGxpc3RlbmVyOmZ1bmN0aW9uKCl7aWYocy5kZWZhdWx0UHJldmVudGVkKXtpZihUciE9PTApe3ZhciBEPXY/UFMocCx2KTpuZXcgRm9ybURhdGEocCk7c3Uobyx7cGVuZGluZzohMCxkYXRhOkQsbWV0aG9kOnAubWV0aG9kLGFjdGlvbjpnfSxudWxsLEQpfX1lbHNlIHR5cGVvZiBnPT0iZnVuY3Rpb24iJiYoQS5wcmV2ZW50RGVmYXVsdCgpLEQ9dj9QUyhwLHYpOm5ldyBGb3JtRGF0YShwKSxzdShvLHtwZW5kaW5nOiEwLGRhdGE6RCxtZXRob2Q6cC5tZXRob2QsYWN0aW9uOmd9LGcsRCkpfSxjdXJyZW50VGFyZ2V0OnB9XX0pfX1mb3IodmFyIEd1PTA7R3U8X3MubGVuZ3RoO0d1Kyspe3ZhciBIdT1fc1tHdV0sYU89SHUudG9Mb3dlckNhc2UoKSxpTz1IdVswXS50b1VwcGVyQ2FzZSgpK0h1LnNsaWNlKDEpO3ZuKGFPLCJvbiIraU8pfXZuKEV5LCJvbkFuaW1hdGlvbkVuZCIpLHZuKFN5LCJvbkFuaW1hdGlvbkl0ZXJhdGlvbiIpLHZuKHZ5LCJvbkFuaW1hdGlvblN0YXJ0Iiksdm4oImRibGNsaWNrIiwib25Eb3VibGVDbGljayIpLHZuKCJmb2N1c2luIiwib25Gb2N1cyIpLHZuKCJmb2N1c291dCIsIm9uQmx1ciIpLHZuKHZJLCJvblRyYW5zaXRpb25SdW4iKSx2bihUSSwib25UcmFuc2l0aW9uU3RhcnQiKSx2bih4SSwib25UcmFuc2l0aW9uQ2FuY2VsIiksdm4oVHksIm9uVHJhbnNpdGlvbkVuZCIpLGZhKCJvbk1vdXNlRW50ZXIiLFsibW91c2VvdXQiLCJtb3VzZW92ZXIiXSksZmEoIm9uTW91c2VMZWF2ZSIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKSxmYSgib25Qb2ludGVyRW50ZXIiLFsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl0pLGZhKCJvblBvaW50ZXJMZWF2ZSIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSksQnIoIm9uQ2hhbmdlIiwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLEJyKCJvblNlbGVjdCIsImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksQnIoIm9uQmVmb3JlSW5wdXQiLFsiY29tcG9zaXRpb25lbmQiLCJrZXlwcmVzcyIsInRleHRJbnB1dCIsInBhc3RlIl0pLEJyKCJvbkNvbXBvc2l0aW9uRW5kIiwiY29tcG9zaXRpb25lbmQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpLEJyKCJvbkNvbXBvc2l0aW9uU3RhcnQiLCJjb21wb3NpdGlvbnN0YXJ0IGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSxCcigib25Db21wb3NpdGlvblVwZGF0ZSIsImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKTt2YXIgemk9ImFib3J0IGNhbnBsYXkgY2FucGxheXRocm91Z2ggZHVyYXRpb25jaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgbG9hZGVkZGF0YSBsb2FkZWRtZXRhZGF0YSBsb2Fkc3RhcnQgcGF1c2UgcGxheSBwbGF5aW5nIHByb2dyZXNzIHJhdGVjaGFuZ2UgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nIi5zcGxpdCgiICIpLG9PPW5ldyBTZXQoImJlZm9yZXRvZ2dsZSBjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCBzY3JvbGxlbmQgdG9nZ2xlIi5zcGxpdCgiICIpLmNvbmNhdCh6aSkpO2Z1bmN0aW9uIEdTKHQscil7cj0ociY0KSE9PTA7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPXRbb10scD1zLmV2ZW50O3M9cy5saXN0ZW5lcnM7ZTp7dmFyIGc9dm9pZCAwO2lmKHIpZm9yKHZhciB2PXMubGVuZ3RoLTE7MDw9djt2LS0pe3ZhciBBPXNbdl0sRD1BLmluc3RhbmNlLFA9QS5jdXJyZW50VGFyZ2V0O2lmKEE9QS5saXN0ZW5lcixEIT09ZyYmcC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7Zz1BLHAuY3VycmVudFRhcmdldD1QO3RyeXtnKHApfWNhdGNoKFgpe3hvKFgpfXAuY3VycmVudFRhcmdldD1udWxsLGc9RH1lbHNlIGZvcih2PTA7djxzLmxlbmd0aDt2Kyspe2lmKEE9c1t2XSxEPUEuaW5zdGFuY2UsUD1BLmN1cnJlbnRUYXJnZXQsQT1BLmxpc3RlbmVyLEQhPT1nJiZwLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTtnPUEscC5jdXJyZW50VGFyZ2V0PVA7dHJ5e2cocCl9Y2F0Y2goWCl7eG8oWCl9cC5jdXJyZW50VGFyZ2V0PW51bGwsZz1EfX19fWZ1bmN0aW9uIF9lKHQscil7dmFyIG89cltyc107bz09PXZvaWQgMCYmKG89cltyc109bmV3IFNldCk7dmFyIHM9dCsiX19idWJibGUiO28uaGFzKHMpfHwoSFMocix0LDIsITEpLG8uYWRkKHMpKX1mdW5jdGlvbiAkdSh0LHIsbyl7dmFyIHM9MDtyJiYoc3w9NCksSFMobyx0LHMscil9dmFyIHVsPSJfcmVhY3RMaXN0ZW5pbmciK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIFZ1KHQpe2lmKCF0W3VsXSl7dFt1bF09ITAsRmIuZm9yRWFjaChmdW5jdGlvbihvKXtvIT09InNlbGVjdGlvbmNoYW5nZSImJihvTy5oYXMobyl8fCR1KG8sITEsdCksJHUobywhMCx0KSl9KTt2YXIgcj10Lm5vZGVUeXBlPT09OT90OnQub3duZXJEb2N1bWVudDtyPT09bnVsbHx8clt1bF18fChyW3VsXT0hMCwkdSgic2VsZWN0aW9uY2hhbmdlIiwhMSxyKSl9fWZ1bmN0aW9uIEhTKHQscixvLHMpe3N3aXRjaChFdihyKSl7Y2FzZSAyOnZhciBwPURPO2JyZWFrO2Nhc2UgODpwPU1PO2JyZWFrO2RlZmF1bHQ6cD1sY31vPXAuYmluZChudWxsLHIsbyx0KSxwPXZvaWQgMCwhcHN8fHIhPT0idG91Y2hzdGFydCImJnIhPT0idG91Y2htb3ZlIiYmciE9PSJ3aGVlbCJ8fChwPSEwKSxzP3AhPT12b2lkIDA/dC5hZGRFdmVudExpc3RlbmVyKHIsbyx7Y2FwdHVyZTohMCxwYXNzaXZlOnB9KTp0LmFkZEV2ZW50TGlzdGVuZXIocixvLCEwKTpwIT09dm9pZCAwP3QuYWRkRXZlbnRMaXN0ZW5lcihyLG8se3Bhc3NpdmU6cH0pOnQuYWRkRXZlbnRMaXN0ZW5lcihyLG8sITEpfWZ1bmN0aW9uIFl1KHQscixvLHMscCl7dmFyIGc9cztpZigociYxKT09PTAmJihyJjIpPT09MCYmcyE9PW51bGwpZTpmb3IoOzspe2lmKHM9PT1udWxsKXJldHVybjt2YXIgdj1zLnRhZztpZih2PT09M3x8dj09PTQpe3ZhciBBPXMuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYoQT09PXApYnJlYWs7aWYodj09PTQpZm9yKHY9cy5yZXR1cm47diE9PW51bGw7KXt2YXIgRD12LnRhZztpZigoRD09PTN8fEQ9PT00KSYmdi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PXApcmV0dXJuO3Y9di5yZXR1cm59Zm9yKDtBIT09bnVsbDspe2lmKHY9Y2EoQSksdj09PW51bGwpcmV0dXJuO2lmKEQ9di50YWcsRD09PTV8fEQ9PT02fHxEPT09MjZ8fEQ9PT0yNyl7cz1nPXY7Y29udGludWUgZX1BPUEucGFyZW50Tm9kZX19cz1zLnJldHVybn1XYihmdW5jdGlvbigpe3ZhciBQPWcsWD1jcyhvKSxRPVtdO2U6e3ZhciBIPXh5LmdldCh0KTtpZihIIT09dm9pZCAwKXt2YXIgSz1TbyxwZT10O3N3aXRjaCh0KXtjYXNlImtleXByZXNzIjppZih5byhvKT09PTApYnJlYWsgZTtjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOks9SkM7YnJlYWs7Y2FzZSJmb2N1c2luIjpwZT0iZm9jdXMiLEs9aHM7YnJlYWs7Y2FzZSJmb2N1c291dCI6cGU9ImJsdXIiLEs9aHM7YnJlYWs7Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6Sz1oczticmVhaztjYXNlImNsaWNrIjppZihvLmJ1dHRvbj09PTIpYnJlYWsgZTtjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2V1cCI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UiY29udGV4dG1lbnUiOks9UWI7YnJlYWs7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6Sz1xQzticmVhaztjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ0b3VjaHN0YXJ0IjpLPW5JO2JyZWFrO2Nhc2UgRXk6Y2FzZSBTeTpjYXNlIHZ5Oks9SEM7YnJlYWs7Y2FzZSBUeTpLPWFJO2JyZWFrO2Nhc2Uic2Nyb2xsIjpjYXNlInNjcm9sbGVuZCI6Sz1qQzticmVhaztjYXNlIndoZWVsIjpLPW9JO2JyZWFrO2Nhc2UiY29weSI6Y2FzZSJjdXQiOmNhc2UicGFzdGUiOks9VkM7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJ1cCI6Sz1leTticmVhaztjYXNlInRvZ2dsZSI6Y2FzZSJiZWZvcmV0b2dnbGUiOks9c0l9dmFyIHllPShyJjQpIT09MCxHZT0heWUmJih0PT09InNjcm9sbCJ8fHQ9PT0ic2Nyb2xsZW5kIiksaj15ZT9IIT09bnVsbD9IKyJDYXB0dXJlIjpudWxsOkg7eWU9W107Zm9yKHZhciBCPVAscTtCIT09bnVsbDspe3ZhciBaPUI7aWYocT1aLnN0YXRlTm9kZSxaPVoudGFnLFohPT01JiZaIT09MjYmJlohPT0yN3x8cT09PW51bGx8fGo9PT1udWxsfHwoWj1zaShCLGopLFohPW51bGwmJnllLnB1c2gocWkoQixaLHEpKSksR2UpYnJlYWs7Qj1CLnJldHVybn0wPHllLmxlbmd0aCYmKEg9bmV3IEsoSCxwZSxudWxsLG8sWCksUS5wdXNoKHtldmVudDpILGxpc3RlbmVyczp5ZX0pKX19aWYoKHImNyk9PT0wKXtlOntpZihIPXQ9PT0ibW91c2VvdmVyInx8dD09PSJwb2ludGVyb3ZlciIsSz10PT09Im1vdXNlb3V0Inx8dD09PSJwb2ludGVyb3V0IixIJiZvIT09dXMmJihwZT1vLnJlbGF0ZWRUYXJnZXR8fG8uZnJvbUVsZW1lbnQpJiYoY2EocGUpfHxwZVt1YV0pKWJyZWFrIGU7aWYoKEt8fEgpJiYoSD1YLndpbmRvdz09PVg/WDooSD1YLm93bmVyRG9jdW1lbnQpP0guZGVmYXVsdFZpZXd8fEgucGFyZW50V2luZG93OndpbmRvdyxLPyhwZT1vLnJlbGF0ZWRUYXJnZXR8fG8udG9FbGVtZW50LEs9UCxwZT1wZT9jYShwZSk6bnVsbCxwZSE9PW51bGwmJihHZT11KHBlKSx5ZT1wZS50YWcscGUhPT1HZXx8eWUhPT01JiZ5ZSE9PTI3JiZ5ZSE9PTYpJiYocGU9bnVsbCkpOihLPW51bGwscGU9UCksSyE9PXBlKSl7aWYoeWU9UWIsWj0ib25Nb3VzZUxlYXZlIixqPSJvbk1vdXNlRW50ZXIiLEI9Im1vdXNlIiwodD09PSJwb2ludGVyb3V0Inx8dD09PSJwb2ludGVyb3ZlciIpJiYoeWU9ZXksWj0ib25Qb2ludGVyTGVhdmUiLGo9Im9uUG9pbnRlckVudGVyIixCPSJwb2ludGVyIiksR2U9Sz09bnVsbD9IOmxpKEspLHE9cGU9PW51bGw/SDpsaShwZSksSD1uZXcgeWUoWixCKyJsZWF2ZSIsSyxvLFgpLEgudGFyZ2V0PUdlLEgucmVsYXRlZFRhcmdldD1xLFo9bnVsbCxjYShYKT09PVAmJih5ZT1uZXcgeWUoaixCKyJlbnRlciIscGUsbyxYKSx5ZS50YXJnZXQ9cSx5ZS5yZWxhdGVkVGFyZ2V0PUdlLFo9eWUpLEdlPVosSyYmcGUpdDp7Zm9yKHllPWxPLGo9SyxCPXBlLHE9MCxaPWo7WjtaPXllKFopKXErKztaPTA7Zm9yKHZhciBtZT1CO21lO21lPXllKG1lKSlaKys7Zm9yKDswPHEtWjspaj15ZShqKSxxLS07Zm9yKDswPFotcTspQj15ZShCKSxaLS07Zm9yKDtxLS07KXtpZihqPT09Qnx8QiE9PW51bGwmJmo9PT1CLmFsdGVybmF0ZSl7eWU9ajticmVhayB0fWo9eWUoaiksQj15ZShCKX15ZT1udWxsfWVsc2UgeWU9bnVsbDtLIT09bnVsbCYmJFMoUSxILEsseWUsITEpLHBlIT09bnVsbCYmR2UhPT1udWxsJiYkUyhRLEdlLHBlLHllLCEwKX19ZTp7aWYoSD1QP2xpKFApOndpbmRvdyxLPUgubm9kZU5hbWUmJkgubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxLPT09InNlbGVjdCJ8fEs9PT0iaW5wdXQiJiZILnR5cGU9PT0iZmlsZSIpdmFyIE1lPXN5O2Vsc2UgaWYob3koSCkpaWYodXkpTWU9eUk7ZWxzZXtNZT1oSTt2YXIgZ2U9bUl9ZWxzZSBLPUgubm9kZU5hbWUsIUt8fEsudG9Mb3dlckNhc2UoKSE9PSJpbnB1dCJ8fEgudHlwZSE9PSJjaGVja2JveCImJkgudHlwZSE9PSJyYWRpbyI/UCYmc3MoUC5lbGVtZW50VHlwZSkmJihNZT1zeSk6TWU9Ykk7aWYoTWUmJihNZT1NZSh0LFApKSl7bHkoUSxNZSxvLFgpO2JyZWFrIGV9Z2UmJmdlKHQsSCxQKSx0PT09ImZvY3Vzb3V0IiYmUCYmSC50eXBlPT09Im51bWJlciImJlAubWVtb2l6ZWRQcm9wcy52YWx1ZSE9bnVsbCYmbHMoSCwibnVtYmVyIixILnZhbHVlKX1zd2l0Y2goZ2U9UD9saShQKTp3aW5kb3csdCl7Y2FzZSJmb2N1c2luIjoob3koZ2UpfHxnZS5jb250ZW50RWRpdGFibGU9PT0idHJ1ZSIpJiYoRWE9Z2UsVHM9UCxoaT1udWxsKTticmVhaztjYXNlImZvY3Vzb3V0IjpoaT1Ucz1FYT1udWxsO2JyZWFrO2Nhc2UibW91c2Vkb3duIjp4cz0hMDticmVhaztjYXNlImNvbnRleHRtZW51IjpjYXNlIm1vdXNldXAiOmNhc2UiZHJhZ2VuZCI6eHM9ITEsYnkoUSxvLFgpO2JyZWFrO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihTSSlicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOmJ5KFEsbyxYKX12YXIgVGU7aWYoeXMpZTp7c3dpdGNoKHQpe2Nhc2UiY29tcG9zaXRpb25zdGFydCI6dmFyIENlPSJvbkNvbXBvc2l0aW9uU3RhcnQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbmVuZCI6Q2U9Im9uQ29tcG9zaXRpb25FbmQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6Q2U9Im9uQ29tcG9zaXRpb25VcGRhdGUiO2JyZWFrIGV9Q2U9dm9pZCAwfWVsc2UgeWE/YXkodCxvKSYmKENlPSJvbkNvbXBvc2l0aW9uRW5kIik6dD09PSJrZXlkb3duIiYmby5rZXlDb2RlPT09MjI5JiYoQ2U9Im9uQ29tcG9zaXRpb25TdGFydCIpO0NlJiYodHkmJm8ubG9jYWxlIT09ImtvIiYmKHlhfHxDZSE9PSJvbkNvbXBvc2l0aW9uU3RhcnQiP0NlPT09Im9uQ29tcG9zaXRpb25FbmQiJiZ5YSYmKFRlPVhiKCkpOihvcj1YLGZzPSJ2YWx1ZSJpbiBvcj9vci52YWx1ZTpvci50ZXh0Q29udGVudCx5YT0hMCkpLGdlPWNsKFAsQ2UpLDA8Z2UubGVuZ3RoJiYoQ2U9bmV3IEpiKENlLHQsbnVsbCxvLFgpLFEucHVzaCh7ZXZlbnQ6Q2UsbGlzdGVuZXJzOmdlfSksVGU/Q2UuZGF0YT1UZTooVGU9aXkobyksVGUhPT1udWxsJiYoQ2UuZGF0YT1UZSkpKSksKFRlPWNJP2RJKHQsbyk6cEkodCxvKSkmJihDZT1jbChQLCJvbkJlZm9yZUlucHV0IiksMDxDZS5sZW5ndGgmJihnZT1uZXcgSmIoIm9uQmVmb3JlSW5wdXQiLCJiZWZvcmVpbnB1dCIsbnVsbCxvLFgpLFEucHVzaCh7ZXZlbnQ6Z2UsbGlzdGVuZXJzOkNlfSksZ2UuZGF0YT1UZSkpLHJPKFEsdCxQLG8sWCl9R1MoUSxyKX0pfWZ1bmN0aW9uIHFpKHQscixvKXtyZXR1cm57aW5zdGFuY2U6dCxsaXN0ZW5lcjpyLGN1cnJlbnRUYXJnZXQ6b319ZnVuY3Rpb24gY2wodCxyKXtmb3IodmFyIG89cisiQ2FwdHVyZSIscz1bXTt0IT09bnVsbDspe3ZhciBwPXQsZz1wLnN0YXRlTm9kZTtpZihwPXAudGFnLHAhPT01JiZwIT09MjYmJnAhPT0yN3x8Zz09PW51bGx8fChwPXNpKHQsbykscCE9bnVsbCYmcy51bnNoaWZ0KHFpKHQscCxnKSkscD1zaSh0LHIpLHAhPW51bGwmJnMucHVzaChxaSh0LHAsZykpKSx0LnRhZz09PTMpcmV0dXJuIHM7dD10LnJldHVybn1yZXR1cm5bXX1mdW5jdGlvbiBsTyh0KXtpZih0PT09bnVsbClyZXR1cm4gbnVsbDtkbyB0PXQucmV0dXJuO3doaWxlKHQmJnQudGFnIT09NSYmdC50YWchPT0yNyk7cmV0dXJuIHR8fG51bGx9ZnVuY3Rpb24gJFModCxyLG8scyxwKXtmb3IodmFyIGc9ci5fcmVhY3ROYW1lLHY9W107byE9PW51bGwmJm8hPT1zOyl7dmFyIEE9byxEPUEuYWx0ZXJuYXRlLFA9QS5zdGF0ZU5vZGU7aWYoQT1BLnRhZyxEIT09bnVsbCYmRD09PXMpYnJlYWs7QSE9PTUmJkEhPT0yNiYmQSE9PTI3fHxQPT09bnVsbHx8KEQ9UCxwPyhQPXNpKG8sZyksUCE9bnVsbCYmdi51bnNoaWZ0KHFpKG8sUCxEKSkpOnB8fChQPXNpKG8sZyksUCE9bnVsbCYmdi5wdXNoKHFpKG8sUCxEKSkpKSxvPW8ucmV0dXJufXYubGVuZ3RoIT09MCYmdC5wdXNoKHtldmVudDpyLGxpc3RlbmVyczp2fSl9dmFyIHNPPS9cclxuPy9nLHVPPS9cdTAwMDB8XHVGRkZEL2c7ZnVuY3Rpb24gVlModCl7cmV0dXJuKHR5cGVvZiB0PT0ic3RyaW5nIj90OiIiK3QpLnJlcGxhY2Uoc08sYApgKS5yZXBsYWNlKHVPLCIiKX1mdW5jdGlvbiBZUyh0LHIpe3JldHVybiByPVZTKHIpLFZTKHQpPT09cn1mdW5jdGlvbiBQZSh0LHIsbyxzLHAsZyl7c3dpdGNoKG8pe2Nhc2UiY2hpbGRyZW4iOnR5cGVvZiBzPT0ic3RyaW5nIj9yPT09ImJvZHkifHxyPT09InRleHRhcmVhIiYmcz09PSIifHxtYSh0LHMpOih0eXBlb2Ygcz09Im51bWJlciJ8fHR5cGVvZiBzPT0iYmlnaW50IikmJnIhPT0iYm9keSImJm1hKHQsIiIrcyk7YnJlYWs7Y2FzZSJjbGFzc05hbWUiOmdvKHQsImNsYXNzIixzKTticmVhaztjYXNlInRhYkluZGV4Ijpnbyh0LCJ0YWJpbmRleCIscyk7YnJlYWs7Y2FzZSJkaXIiOmNhc2Uicm9sZSI6Y2FzZSJ2aWV3Qm94IjpjYXNlIndpZHRoIjpjYXNlImhlaWdodCI6Z28odCxvLHMpO2JyZWFrO2Nhc2Uic3R5bGUiOlliKHQscyxnKTticmVhaztjYXNlImRhdGEiOmlmKHIhPT0ib2JqZWN0Iil7Z28odCwiZGF0YSIscyk7YnJlYWt9Y2FzZSJzcmMiOmNhc2UiaHJlZiI6aWYocz09PSIiJiYociE9PSJhInx8byE9PSJocmVmIikpe3QucmVtb3ZlQXR0cmlidXRlKG8pO2JyZWFrfWlmKHM9PW51bGx8fHR5cGVvZiBzPT0iZnVuY3Rpb24ifHx0eXBlb2Ygcz09InN5bWJvbCJ8fHR5cGVvZiBzPT0iYm9vbGVhbiIpe3QucmVtb3ZlQXR0cmlidXRlKG8pO2JyZWFrfXM9aG8oIiIrcyksdC5zZXRBdHRyaWJ1dGUobyxzKTticmVhaztjYXNlImFjdGlvbiI6Y2FzZSJmb3JtQWN0aW9uIjppZih0eXBlb2Ygcz09ImZ1bmN0aW9uIil7dC5zZXRBdHRyaWJ1dGUobywiamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ0EgUmVhY3QgZm9ybSB3YXMgdW5leHBlY3RlZGx5IHN1Ym1pdHRlZC4gSWYgeW91IGNhbGxlZCBmb3JtLnN1Ym1pdCgpIG1hbnVhbGx5LCBjb25zaWRlciB1c2luZyBmb3JtLnJlcXVlc3RTdWJtaXQoKSBpbnN0ZWFkLiBJZiB5b3VcXCdyZSB0cnlpbmcgdG8gdXNlIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIGluIGEgc3VibWl0IGV2ZW50IGhhbmRsZXIsIGNvbnNpZGVyIGFsc28gY2FsbGluZyBldmVudC5wcmV2ZW50RGVmYXVsdCgpLicpIik7YnJlYWt9ZWxzZSB0eXBlb2YgZz09ImZ1bmN0aW9uIiYmKG89PT0iZm9ybUFjdGlvbiI/KHIhPT0iaW5wdXQiJiZQZSh0LHIsIm5hbWUiLHAubmFtZSxwLG51bGwpLFBlKHQsciwiZm9ybUVuY1R5cGUiLHAuZm9ybUVuY1R5cGUscCxudWxsKSxQZSh0LHIsImZvcm1NZXRob2QiLHAuZm9ybU1ldGhvZCxwLG51bGwpLFBlKHQsciwiZm9ybVRhcmdldCIscC5mb3JtVGFyZ2V0LHAsbnVsbCkpOihQZSh0LHIsImVuY1R5cGUiLHAuZW5jVHlwZSxwLG51bGwpLFBlKHQsciwibWV0aG9kIixwLm1ldGhvZCxwLG51bGwpLFBlKHQsciwidGFyZ2V0IixwLnRhcmdldCxwLG51bGwpKSk7aWYocz09bnVsbHx8dHlwZW9mIHM9PSJzeW1ib2wifHx0eXBlb2Ygcz09ImJvb2xlYW4iKXt0LnJlbW92ZUF0dHJpYnV0ZShvKTticmVha31zPWhvKCIiK3MpLHQuc2V0QXR0cmlidXRlKG8scyk7YnJlYWs7Y2FzZSJvbkNsaWNrIjpzIT1udWxsJiYodC5vbmNsaWNrPWpuKTticmVhaztjYXNlIm9uU2Nyb2xsIjpzIT1udWxsJiZfZSgic2Nyb2xsIix0KTticmVhaztjYXNlIm9uU2Nyb2xsRW5kIjpzIT1udWxsJiZfZSgic2Nyb2xsZW5kIix0KTticmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihzIT1udWxsKXtpZih0eXBlb2YgcyE9Im9iamVjdCJ8fCEoIl9faHRtbCJpbiBzKSl0aHJvdyBFcnJvcihpKDYxKSk7aWYobz1zLl9faHRtbCxvIT1udWxsKXtpZihwLmNoaWxkcmVuIT1udWxsKXRocm93IEVycm9yKGkoNjApKTt0LmlubmVySFRNTD1vfX1icmVhaztjYXNlIm11bHRpcGxlIjp0Lm11bHRpcGxlPXMmJnR5cGVvZiBzIT0iZnVuY3Rpb24iJiZ0eXBlb2YgcyE9InN5bWJvbCI7YnJlYWs7Y2FzZSJtdXRlZCI6dC5tdXRlZD1zJiZ0eXBlb2YgcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIHMhPSJzeW1ib2wiO2JyZWFrO2Nhc2Uic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIjpjYXNlInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyI6Y2FzZSJkZWZhdWx0VmFsdWUiOmNhc2UiZGVmYXVsdENoZWNrZWQiOmNhc2UiaW5uZXJIVE1MIjpjYXNlInJlZiI6YnJlYWs7Y2FzZSJhdXRvRm9jdXMiOmJyZWFrO2Nhc2UieGxpbmtIcmVmIjppZihzPT1udWxsfHx0eXBlb2Ygcz09ImZ1bmN0aW9uInx8dHlwZW9mIHM9PSJib29sZWFuInx8dHlwZW9mIHM9PSJzeW1ib2wiKXt0LnJlbW92ZUF0dHJpYnV0ZSgieGxpbms6aHJlZiIpO2JyZWFrfW89aG8oIiIrcyksdC5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOmhyZWYiLG8pO2JyZWFrO2Nhc2UiY29udGVudEVkaXRhYmxlIjpjYXNlInNwZWxsQ2hlY2siOmNhc2UiZHJhZ2dhYmxlIjpjYXNlInZhbHVlIjpjYXNlImF1dG9SZXZlcnNlIjpjYXNlImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiOmNhc2UiZm9jdXNhYmxlIjpjYXNlInByZXNlcnZlQWxwaGEiOnMhPW51bGwmJnR5cGVvZiBzIT0iZnVuY3Rpb24iJiZ0eXBlb2YgcyE9InN5bWJvbCI/dC5zZXRBdHRyaWJ1dGUobywiIitzKTp0LnJlbW92ZUF0dHJpYnV0ZShvKTticmVhaztjYXNlImluZXJ0IjpjYXNlImFsbG93RnVsbFNjcmVlbiI6Y2FzZSJhc3luYyI6Y2FzZSJhdXRvUGxheSI6Y2FzZSJjb250cm9scyI6Y2FzZSJkZWZhdWx0IjpjYXNlImRlZmVyIjpjYXNlImRpc2FibGVkIjpjYXNlImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIjpjYXNlImRpc2FibGVSZW1vdGVQbGF5YmFjayI6Y2FzZSJmb3JtTm9WYWxpZGF0ZSI6Y2FzZSJoaWRkZW4iOmNhc2UibG9vcCI6Y2FzZSJub01vZHVsZSI6Y2FzZSJub1ZhbGlkYXRlIjpjYXNlIm9wZW4iOmNhc2UicGxheXNJbmxpbmUiOmNhc2UicmVhZE9ubHkiOmNhc2UicmVxdWlyZWQiOmNhc2UicmV2ZXJzZWQiOmNhc2Uic2NvcGVkIjpjYXNlInNlYW1sZXNzIjpjYXNlIml0ZW1TY29wZSI6cyYmdHlwZW9mIHMhPSJmdW5jdGlvbiImJnR5cGVvZiBzIT0ic3ltYm9sIj90LnNldEF0dHJpYnV0ZShvLCIiKTp0LnJlbW92ZUF0dHJpYnV0ZShvKTticmVhaztjYXNlImNhcHR1cmUiOmNhc2UiZG93bmxvYWQiOnM9PT0hMD90LnNldEF0dHJpYnV0ZShvLCIiKTpzIT09ITEmJnMhPW51bGwmJnR5cGVvZiBzIT0iZnVuY3Rpb24iJiZ0eXBlb2YgcyE9InN5bWJvbCI/dC5zZXRBdHRyaWJ1dGUobyxzKTp0LnJlbW92ZUF0dHJpYnV0ZShvKTticmVhaztjYXNlImNvbHMiOmNhc2Uicm93cyI6Y2FzZSJzaXplIjpjYXNlInNwYW4iOnMhPW51bGwmJnR5cGVvZiBzIT0iZnVuY3Rpb24iJiZ0eXBlb2YgcyE9InN5bWJvbCImJiFpc05hTihzKSYmMTw9cz90LnNldEF0dHJpYnV0ZShvLHMpOnQucmVtb3ZlQXR0cmlidXRlKG8pO2JyZWFrO2Nhc2Uicm93U3BhbiI6Y2FzZSJzdGFydCI6cz09bnVsbHx8dHlwZW9mIHM9PSJmdW5jdGlvbiJ8fHR5cGVvZiBzPT0ic3ltYm9sInx8aXNOYU4ocyk/dC5yZW1vdmVBdHRyaWJ1dGUobyk6dC5zZXRBdHRyaWJ1dGUobyxzKTticmVhaztjYXNlInBvcG92ZXIiOl9lKCJiZWZvcmV0b2dnbGUiLHQpLF9lKCJ0b2dnbGUiLHQpLGZvKHQsInBvcG92ZXIiLHMpO2JyZWFrO2Nhc2UieGxpbmtBY3R1YXRlIjpCbih0LCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6YWN0dWF0ZSIscyk7YnJlYWs7Y2FzZSJ4bGlua0FyY3JvbGUiOkJuKHQsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazphcmNyb2xlIixzKTticmVhaztjYXNlInhsaW5rUm9sZSI6Qm4odCwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOnJvbGUiLHMpO2JyZWFrO2Nhc2UieGxpbmtTaG93IjpCbih0LCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6c2hvdyIscyk7YnJlYWs7Y2FzZSJ4bGlua1RpdGxlIjpCbih0LCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6dGl0bGUiLHMpO2JyZWFrO2Nhc2UieGxpbmtUeXBlIjpCbih0LCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6dHlwZSIscyk7YnJlYWs7Y2FzZSJ4bWxCYXNlIjpCbih0LCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6YmFzZSIscyk7YnJlYWs7Y2FzZSJ4bWxMYW5nIjpCbih0LCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIscyk7YnJlYWs7Y2FzZSJ4bWxTcGFjZSI6Qm4odCwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOnNwYWNlIixzKTticmVhaztjYXNlImlzIjpmbyh0LCJpcyIscyk7YnJlYWs7Y2FzZSJpbm5lclRleHQiOmNhc2UidGV4dENvbnRlbnQiOmJyZWFrO2RlZmF1bHQ6KCEoMjxvLmxlbmd0aCl8fG9bMF0hPT0ibyImJm9bMF0hPT0iTyJ8fG9bMV0hPT0ibiImJm9bMV0hPT0iTiIpJiYobz1GQy5nZXQobyl8fG8sZm8odCxvLHMpKX19ZnVuY3Rpb24gS3UodCxyLG8scyxwLGcpe3N3aXRjaChvKXtjYXNlInN0eWxlIjpZYih0LHMsZyk7YnJlYWs7Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYocyE9bnVsbCl7aWYodHlwZW9mIHMhPSJvYmplY3QifHwhKCJfX2h0bWwiaW4gcykpdGhyb3cgRXJyb3IoaSg2MSkpO2lmKG89cy5fX2h0bWwsbyE9bnVsbCl7aWYocC5jaGlsZHJlbiE9bnVsbCl0aHJvdyBFcnJvcihpKDYwKSk7dC5pbm5lckhUTUw9b319YnJlYWs7Y2FzZSJjaGlsZHJlbiI6dHlwZW9mIHM9PSJzdHJpbmciP21hKHQscyk6KHR5cGVvZiBzPT0ibnVtYmVyInx8dHlwZW9mIHM9PSJiaWdpbnQiKSYmbWEodCwiIitzKTticmVhaztjYXNlIm9uU2Nyb2xsIjpzIT1udWxsJiZfZSgic2Nyb2xsIix0KTticmVhaztjYXNlIm9uU2Nyb2xsRW5kIjpzIT1udWxsJiZfZSgic2Nyb2xsZW5kIix0KTticmVhaztjYXNlIm9uQ2xpY2siOnMhPW51bGwmJih0Lm9uY2xpY2s9am4pO2JyZWFrO2Nhc2Uic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIjpjYXNlInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyI6Y2FzZSJpbm5lckhUTUwiOmNhc2UicmVmIjpicmVhaztjYXNlImlubmVyVGV4dCI6Y2FzZSJ0ZXh0Q29udGVudCI6YnJlYWs7ZGVmYXVsdDppZighQmIuaGFzT3duUHJvcGVydHkobykpZTp7aWYob1swXT09PSJvIiYmb1sxXT09PSJuIiYmKHA9by5lbmRzV2l0aCgiQ2FwdHVyZSIpLHI9by5zbGljZSgyLHA/by5sZW5ndGgtNzp2b2lkIDApLGc9dFtEdF18fG51bGwsZz1nIT1udWxsP2dbb106bnVsbCx0eXBlb2YgZz09ImZ1bmN0aW9uIiYmdC5yZW1vdmVFdmVudExpc3RlbmVyKHIsZyxwKSx0eXBlb2Ygcz09ImZ1bmN0aW9uIikpe3R5cGVvZiBnIT0iZnVuY3Rpb24iJiZnIT09bnVsbCYmKG8gaW4gdD90W29dPW51bGw6dC5oYXNBdHRyaWJ1dGUobykmJnQucmVtb3ZlQXR0cmlidXRlKG8pKSx0LmFkZEV2ZW50TGlzdGVuZXIocixzLHApO2JyZWFrIGV9byBpbiB0P3Rbb109czpzPT09ITA/dC5zZXRBdHRyaWJ1dGUobywiIik6Zm8odCxvLHMpfX19ZnVuY3Rpb24geHQodCxyLG8pe3N3aXRjaChyKXtjYXNlImRpdiI6Y2FzZSJzcGFuIjpjYXNlInN2ZyI6Y2FzZSJwYXRoIjpjYXNlImEiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlImxpIjpicmVhaztjYXNlImltZyI6X2UoImVycm9yIix0KSxfZSgibG9hZCIsdCk7dmFyIHM9ITEscD0hMSxnO2ZvcihnIGluIG8paWYoby5oYXNPd25Qcm9wZXJ0eShnKSl7dmFyIHY9b1tnXTtpZih2IT1udWxsKXN3aXRjaChnKXtjYXNlInNyYyI6cz0hMDticmVhaztjYXNlInNyY1NldCI6cD0hMDticmVhaztjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjp0aHJvdyBFcnJvcihpKDEzNyxyKSk7ZGVmYXVsdDpQZSh0LHIsZyx2LG8sbnVsbCl9fXAmJlBlKHQsciwic3JjU2V0IixvLnNyY1NldCxvLG51bGwpLHMmJlBlKHQsciwic3JjIixvLnNyYyxvLG51bGwpO3JldHVybjtjYXNlImlucHV0IjpfZSgiaW52YWxpZCIsdCk7dmFyIEE9Zz12PXA9bnVsbCxEPW51bGwsUD1udWxsO2ZvcihzIGluIG8paWYoby5oYXNPd25Qcm9wZXJ0eShzKSl7dmFyIFg9b1tzXTtpZihYIT1udWxsKXN3aXRjaChzKXtjYXNlIm5hbWUiOnA9WDticmVhaztjYXNlInR5cGUiOnY9WDticmVhaztjYXNlImNoZWNrZWQiOkQ9WDticmVhaztjYXNlImRlZmF1bHRDaGVja2VkIjpQPVg7YnJlYWs7Y2FzZSJ2YWx1ZSI6Zz1YO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjpBPVg7YnJlYWs7Y2FzZSJjaGlsZHJlbiI6Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYoWCE9bnVsbCl0aHJvdyBFcnJvcihpKDEzNyxyKSk7YnJlYWs7ZGVmYXVsdDpQZSh0LHIscyxYLG8sbnVsbCl9fUdiKHQsZyxBLEQsUCx2LHAsITEpO3JldHVybjtjYXNlInNlbGVjdCI6X2UoImludmFsaWQiLHQpLHM9dj1nPW51bGw7Zm9yKHAgaW4gbylpZihvLmhhc093blByb3BlcnR5KHApJiYoQT1vW3BdLEEhPW51bGwpKXN3aXRjaChwKXtjYXNlInZhbHVlIjpnPUE7YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOnY9QTticmVhaztjYXNlIm11bHRpcGxlIjpzPUE7ZGVmYXVsdDpQZSh0LHIscCxBLG8sbnVsbCl9cj1nLG89dix0Lm11bHRpcGxlPSEhcyxyIT1udWxsP2dhKHQsISFzLHIsITEpOm8hPW51bGwmJmdhKHQsISFzLG8sITApO3JldHVybjtjYXNlInRleHRhcmVhIjpfZSgiaW52YWxpZCIsdCksZz1wPXM9bnVsbDtmb3IodiBpbiBvKWlmKG8uaGFzT3duUHJvcGVydHkodikmJihBPW9bdl0sQSE9bnVsbCkpc3dpdGNoKHYpe2Nhc2UidmFsdWUiOnM9QTticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6cD1BO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmc9QTticmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihBIT1udWxsKXRocm93IEVycm9yKGkoOTEpKTticmVhaztkZWZhdWx0OlBlKHQscix2LEEsbyxudWxsKX0kYih0LHMscCxnKTtyZXR1cm47Y2FzZSJvcHRpb24iOmZvcihEIGluIG8paWYoby5oYXNPd25Qcm9wZXJ0eShEKSYmKHM9b1tEXSxzIT1udWxsKSlzd2l0Y2goRCl7Y2FzZSJzZWxlY3RlZCI6dC5zZWxlY3RlZD1zJiZ0eXBlb2YgcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIHMhPSJzeW1ib2wiO2JyZWFrO2RlZmF1bHQ6UGUodCxyLEQscyxvLG51bGwpfXJldHVybjtjYXNlImRpYWxvZyI6X2UoImJlZm9yZXRvZ2dsZSIsdCksX2UoInRvZ2dsZSIsdCksX2UoImNhbmNlbCIsdCksX2UoImNsb3NlIix0KTticmVhaztjYXNlImlmcmFtZSI6Y2FzZSJvYmplY3QiOl9lKCJsb2FkIix0KTticmVhaztjYXNlInZpZGVvIjpjYXNlImF1ZGlvIjpmb3Iocz0wO3M8emkubGVuZ3RoO3MrKylfZSh6aVtzXSx0KTticmVhaztjYXNlImltYWdlIjpfZSgiZXJyb3IiLHQpLF9lKCJsb2FkIix0KTticmVhaztjYXNlImRldGFpbHMiOl9lKCJ0b2dnbGUiLHQpO2JyZWFrO2Nhc2UiZW1iZWQiOmNhc2Uic291cmNlIjpjYXNlImxpbmsiOl9lKCJlcnJvciIsdCksX2UoImxvYWQiLHQpO2Nhc2UiYXJlYSI6Y2FzZSJiYXNlIjpjYXNlImJyIjpjYXNlImNvbCI6Y2FzZSJociI6Y2FzZSJrZXlnZW4iOmNhc2UibWV0YSI6Y2FzZSJwYXJhbSI6Y2FzZSJ0cmFjayI6Y2FzZSJ3YnIiOmNhc2UibWVudWl0ZW0iOmZvcihQIGluIG8paWYoby5oYXNPd25Qcm9wZXJ0eShQKSYmKHM9b1tQXSxzIT1udWxsKSlzd2l0Y2goUCl7Y2FzZSJjaGlsZHJlbiI6Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6dGhyb3cgRXJyb3IoaSgxMzcscikpO2RlZmF1bHQ6UGUodCxyLFAscyxvLG51bGwpfXJldHVybjtkZWZhdWx0OmlmKHNzKHIpKXtmb3IoWCBpbiBvKW8uaGFzT3duUHJvcGVydHkoWCkmJihzPW9bWF0scyE9PXZvaWQgMCYmS3UodCxyLFgscyxvLHZvaWQgMCkpO3JldHVybn19Zm9yKEEgaW4gbylvLmhhc093blByb3BlcnR5KEEpJiYocz1vW0FdLHMhPW51bGwmJlBlKHQscixBLHMsbyxudWxsKSl9ZnVuY3Rpb24gY08odCxyLG8scyl7c3dpdGNoKHIpe2Nhc2UiZGl2IjpjYXNlInNwYW4iOmNhc2Uic3ZnIjpjYXNlInBhdGgiOmNhc2UiYSI6Y2FzZSJnIjpjYXNlInAiOmNhc2UibGkiOmJyZWFrO2Nhc2UiaW5wdXQiOnZhciBwPW51bGwsZz1udWxsLHY9bnVsbCxBPW51bGwsRD1udWxsLFA9bnVsbCxYPW51bGw7Zm9yKEsgaW4gbyl7dmFyIFE9b1tLXTtpZihvLmhhc093blByb3BlcnR5KEspJiZRIT1udWxsKXN3aXRjaChLKXtjYXNlImNoZWNrZWQiOmJyZWFrO2Nhc2UidmFsdWUiOmJyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjpEPVE7ZGVmYXVsdDpzLmhhc093blByb3BlcnR5KEspfHxQZSh0LHIsSyxudWxsLHMsUSl9fWZvcih2YXIgSCBpbiBzKXt2YXIgSz1zW0hdO2lmKFE9b1tIXSxzLmhhc093blByb3BlcnR5KEgpJiYoSyE9bnVsbHx8USE9bnVsbCkpc3dpdGNoKEgpe2Nhc2UidHlwZSI6Zz1LO2JyZWFrO2Nhc2UibmFtZSI6cD1LO2JyZWFrO2Nhc2UiY2hlY2tlZCI6UD1LO2JyZWFrO2Nhc2UiZGVmYXVsdENoZWNrZWQiOlg9SzticmVhaztjYXNlInZhbHVlIjp2PUs7YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOkE9SzticmVhaztjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihLIT1udWxsKXRocm93IEVycm9yKGkoMTM3LHIpKTticmVhaztkZWZhdWx0OkshPT1RJiZQZSh0LHIsSCxLLHMsUSl9fW9zKHQsdixBLEQsUCxYLGcscCk7cmV0dXJuO2Nhc2Uic2VsZWN0IjpLPXY9QT1IPW51bGw7Zm9yKGcgaW4gbylpZihEPW9bZ10sby5oYXNPd25Qcm9wZXJ0eShnKSYmRCE9bnVsbClzd2l0Y2goZyl7Y2FzZSJ2YWx1ZSI6YnJlYWs7Y2FzZSJtdWx0aXBsZSI6Sz1EO2RlZmF1bHQ6cy5oYXNPd25Qcm9wZXJ0eShnKXx8UGUodCxyLGcsbnVsbCxzLEQpfWZvcihwIGluIHMpaWYoZz1zW3BdLEQ9b1twXSxzLmhhc093blByb3BlcnR5KHApJiYoZyE9bnVsbHx8RCE9bnVsbCkpc3dpdGNoKHApe2Nhc2UidmFsdWUiOkg9ZzticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6QT1nO2JyZWFrO2Nhc2UibXVsdGlwbGUiOnY9ZztkZWZhdWx0OmchPT1EJiZQZSh0LHIscCxnLHMsRCl9cj1BLG89dixzPUssSCE9bnVsbD9nYSh0LCEhbyxILCExKTohIXMhPSEhbyYmKHIhPW51bGw/Z2EodCwhIW8sciwhMCk6Z2EodCwhIW8sbz9bXToiIiwhMSkpO3JldHVybjtjYXNlInRleHRhcmVhIjpLPUg9bnVsbDtmb3IoQSBpbiBvKWlmKHA9b1tBXSxvLmhhc093blByb3BlcnR5KEEpJiZwIT1udWxsJiYhcy5oYXNPd25Qcm9wZXJ0eShBKSlzd2l0Y2goQSl7Y2FzZSJ2YWx1ZSI6YnJlYWs7Y2FzZSJjaGlsZHJlbiI6YnJlYWs7ZGVmYXVsdDpQZSh0LHIsQSxudWxsLHMscCl9Zm9yKHYgaW4gcylpZihwPXNbdl0sZz1vW3ZdLHMuaGFzT3duUHJvcGVydHkodikmJihwIT1udWxsfHxnIT1udWxsKSlzd2l0Y2godil7Y2FzZSJ2YWx1ZSI6SD1wO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjpLPXA7YnJlYWs7Y2FzZSJjaGlsZHJlbiI6YnJlYWs7Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYocCE9bnVsbCl0aHJvdyBFcnJvcihpKDkxKSk7YnJlYWs7ZGVmYXVsdDpwIT09ZyYmUGUodCxyLHYscCxzLGcpfUhiKHQsSCxLKTtyZXR1cm47Y2FzZSJvcHRpb24iOmZvcih2YXIgcGUgaW4gbylpZihIPW9bcGVdLG8uaGFzT3duUHJvcGVydHkocGUpJiZIIT1udWxsJiYhcy5oYXNPd25Qcm9wZXJ0eShwZSkpc3dpdGNoKHBlKXtjYXNlInNlbGVjdGVkIjp0LnNlbGVjdGVkPSExO2JyZWFrO2RlZmF1bHQ6UGUodCxyLHBlLG51bGwscyxIKX1mb3IoRCBpbiBzKWlmKEg9c1tEXSxLPW9bRF0scy5oYXNPd25Qcm9wZXJ0eShEKSYmSCE9PUsmJihIIT1udWxsfHxLIT1udWxsKSlzd2l0Y2goRCl7Y2FzZSJzZWxlY3RlZCI6dC5zZWxlY3RlZD1IJiZ0eXBlb2YgSCE9ImZ1bmN0aW9uIiYmdHlwZW9mIEghPSJzeW1ib2wiO2JyZWFrO2RlZmF1bHQ6UGUodCxyLEQsSCxzLEspfXJldHVybjtjYXNlImltZyI6Y2FzZSJsaW5rIjpjYXNlImFyZWEiOmNhc2UiYmFzZSI6Y2FzZSJiciI6Y2FzZSJjb2wiOmNhc2UiZW1iZWQiOmNhc2UiaHIiOmNhc2Uia2V5Z2VuIjpjYXNlIm1ldGEiOmNhc2UicGFyYW0iOmNhc2Uic291cmNlIjpjYXNlInRyYWNrIjpjYXNlIndiciI6Y2FzZSJtZW51aXRlbSI6Zm9yKHZhciB5ZSBpbiBvKUg9b1t5ZV0sby5oYXNPd25Qcm9wZXJ0eSh5ZSkmJkghPW51bGwmJiFzLmhhc093blByb3BlcnR5KHllKSYmUGUodCxyLHllLG51bGwscyxIKTtmb3IoUCBpbiBzKWlmKEg9c1tQXSxLPW9bUF0scy5oYXNPd25Qcm9wZXJ0eShQKSYmSCE9PUsmJihIIT1udWxsfHxLIT1udWxsKSlzd2l0Y2goUCl7Y2FzZSJjaGlsZHJlbiI6Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYoSCE9bnVsbCl0aHJvdyBFcnJvcihpKDEzNyxyKSk7YnJlYWs7ZGVmYXVsdDpQZSh0LHIsUCxILHMsSyl9cmV0dXJuO2RlZmF1bHQ6aWYoc3Mocikpe2Zvcih2YXIgR2UgaW4gbylIPW9bR2VdLG8uaGFzT3duUHJvcGVydHkoR2UpJiZIIT09dm9pZCAwJiYhcy5oYXNPd25Qcm9wZXJ0eShHZSkmJkt1KHQscixHZSx2b2lkIDAscyxIKTtmb3IoWCBpbiBzKUg9c1tYXSxLPW9bWF0sIXMuaGFzT3duUHJvcGVydHkoWCl8fEg9PT1LfHxIPT09dm9pZCAwJiZLPT09dm9pZCAwfHxLdSh0LHIsWCxILHMsSyk7cmV0dXJufX1mb3IodmFyIGogaW4gbylIPW9bal0sby5oYXNPd25Qcm9wZXJ0eShqKSYmSCE9bnVsbCYmIXMuaGFzT3duUHJvcGVydHkoaikmJlBlKHQscixqLG51bGwscyxIKTtmb3IoUSBpbiBzKUg9c1tRXSxLPW9bUV0sIXMuaGFzT3duUHJvcGVydHkoUSl8fEg9PT1LfHxIPT1udWxsJiZLPT1udWxsfHxQZSh0LHIsUSxILHMsSyl9ZnVuY3Rpb24gS1ModCl7c3dpdGNoKHQpe2Nhc2UiY3NzIjpjYXNlInNjcmlwdCI6Y2FzZSJmb250IjpjYXNlImltZyI6Y2FzZSJpbWFnZSI6Y2FzZSJpbnB1dCI6Y2FzZSJsaW5rIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBkTygpe2lmKHR5cGVvZiBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlPT0iZnVuY3Rpb24iKXtmb3IodmFyIHQ9MCxyPTAsbz1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIHA9b1tzXSxnPXAudHJhbnNmZXJTaXplLHY9cC5pbml0aWF0b3JUeXBlLEE9cC5kdXJhdGlvbjtpZihnJiZBJiZLUyh2KSl7Zm9yKHY9MCxBPXAucmVzcG9uc2VFbmQscys9MTtzPG8ubGVuZ3RoO3MrKyl7dmFyIEQ9b1tzXSxQPUQuc3RhcnRUaW1lO2lmKFA+QSlicmVhazt2YXIgWD1ELnRyYW5zZmVyU2l6ZSxRPUQuaW5pdGlhdG9yVHlwZTtYJiZLUyhRKSYmKEQ9RC5yZXNwb25zZUVuZCx2Kz1YKihEPEE/MTooQS1QKS8oRC1QKSkpfWlmKC0tcyxyKz04KihnK3YpLyhwLmR1cmF0aW9uLzFlMyksdCsrLDEwPHQpYnJlYWt9fWlmKDA8dClyZXR1cm4gci90LzFlNn1yZXR1cm4gbmF2aWdhdG9yLmNvbm5lY3Rpb24mJih0PW5hdmlnYXRvci5jb25uZWN0aW9uLmRvd25saW5rLHR5cGVvZiB0PT0ibnVtYmVyIik/dDo1fXZhciBXdT1udWxsLFh1PW51bGw7ZnVuY3Rpb24gZGwodCl7cmV0dXJuIHQubm9kZVR5cGU9PT05P3Q6dC5vd25lckRvY3VtZW50fWZ1bmN0aW9uIFdTKHQpe3N3aXRjaCh0KXtjYXNlImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjpyZXR1cm4gMTtjYXNlImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fWZ1bmN0aW9uIFhTKHQscil7aWYodD09PTApc3dpdGNoKHIpe2Nhc2Uic3ZnIjpyZXR1cm4gMTtjYXNlIm1hdGgiOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9cmV0dXJuIHQ9PT0xJiZyPT09ImZvcmVpZ25PYmplY3QiPzA6dH1mdW5jdGlvbiBadSh0LHIpe3JldHVybiB0PT09InRleHRhcmVhInx8dD09PSJub3NjcmlwdCJ8fHR5cGVvZiByLmNoaWxkcmVuPT0ic3RyaW5nInx8dHlwZW9mIHIuY2hpbGRyZW49PSJudW1iZXIifHx0eXBlb2Ygci5jaGlsZHJlbj09ImJpZ2ludCJ8fHR5cGVvZiByLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPT0ib2JqZWN0IiYmci5kYW5nZXJvdXNseVNldElubmVySFRNTCE9PW51bGwmJnIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sIT1udWxsfXZhciBRdT1udWxsO2Z1bmN0aW9uIHBPKCl7dmFyIHQ9d2luZG93LmV2ZW50O3JldHVybiB0JiZ0LnR5cGU9PT0icG9wc3RhdGUiP3Q9PT1RdT8hMTooUXU9dCwhMCk6KFF1PW51bGwsITEpfXZhciBaUz10eXBlb2Ygc2V0VGltZW91dD09ImZ1bmN0aW9uIj9zZXRUaW1lb3V0OnZvaWQgMCxmTz10eXBlb2YgY2xlYXJUaW1lb3V0PT0iZnVuY3Rpb24iP2NsZWFyVGltZW91dDp2b2lkIDAsUVM9dHlwZW9mIFByb21pc2U9PSJmdW5jdGlvbiI/UHJvbWlzZTp2b2lkIDAsZ089dHlwZW9mIHF1ZXVlTWljcm90YXNrPT0iZnVuY3Rpb24iP3F1ZXVlTWljcm90YXNrOnR5cGVvZiBRUzwidSI/ZnVuY3Rpb24odCl7cmV0dXJuIFFTLnJlc29sdmUobnVsbCkudGhlbih0KS5jYXRjaChtTyl9OlpTO2Z1bmN0aW9uIG1PKHQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyB0fSl9ZnVuY3Rpb24geHIodCl7cmV0dXJuIHQ9PT0iaGVhZCJ9ZnVuY3Rpb24gSlModCxyKXt2YXIgbz1yLHM9MDtkb3t2YXIgcD1vLm5leHRTaWJsaW5nO2lmKHQucmVtb3ZlQ2hpbGQobykscCYmcC5ub2RlVHlwZT09PTgpaWYobz1wLmRhdGEsbz09PSIvJCJ8fG89PT0iLyYiKXtpZihzPT09MCl7dC5yZW1vdmVDaGlsZChwKSxWYShyKTtyZXR1cm59cy0tfWVsc2UgaWYobz09PSIkInx8bz09PSIkPyJ8fG89PT0iJH4ifHxvPT09IiQhInx8bz09PSImIilzKys7ZWxzZSBpZihvPT09Imh0bWwiKVBpKHQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO2Vsc2UgaWYobz09PSJoZWFkIil7bz10Lm93bmVyRG9jdW1lbnQuaGVhZCxQaShvKTtmb3IodmFyIGc9by5maXJzdENoaWxkO2c7KXt2YXIgdj1nLm5leHRTaWJsaW5nLEE9Zy5ub2RlTmFtZTtnW29pXXx8QT09PSJTQ1JJUFQifHxBPT09IlNUWUxFInx8QT09PSJMSU5LIiYmZy5yZWwudG9Mb3dlckNhc2UoKT09PSJzdHlsZXNoZWV0Inx8by5yZW1vdmVDaGlsZChnKSxnPXZ9fWVsc2Ugbz09PSJib2R5IiYmUGkodC5vd25lckRvY3VtZW50LmJvZHkpO289cH13aGlsZShvKTtWYShyKX1mdW5jdGlvbiBldih0LHIpe3ZhciBvPXQ7dD0wO2Rve3ZhciBzPW8ubmV4dFNpYmxpbmc7aWYoby5ub2RlVHlwZT09PTE/cj8oby5fc3Rhc2hlZERpc3BsYXk9by5zdHlsZS5kaXNwbGF5LG8uc3R5bGUuZGlzcGxheT0ibm9uZSIpOihvLnN0eWxlLmRpc3BsYXk9by5fc3Rhc2hlZERpc3BsYXl8fCIiLG8uZ2V0QXR0cmlidXRlKCJzdHlsZSIpPT09IiImJm8ucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpKTpvLm5vZGVUeXBlPT09MyYmKHI/KG8uX3N0YXNoZWRUZXh0PW8ubm9kZVZhbHVlLG8ubm9kZVZhbHVlPSIiKTpvLm5vZGVWYWx1ZT1vLl9zdGFzaGVkVGV4dHx8IiIpLHMmJnMubm9kZVR5cGU9PT04KWlmKG89cy5kYXRhLG89PT0iLyQiKXtpZih0PT09MClicmVhazt0LS19ZWxzZSBvIT09IiQiJiZvIT09IiQ/IiYmbyE9PSIkfiImJm8hPT0iJCEifHx0Kys7bz1zfXdoaWxlKG8pfWZ1bmN0aW9uIEp1KHQpe3ZhciByPXQuZmlyc3RDaGlsZDtmb3IociYmci5ub2RlVHlwZT09PTEwJiYocj1yLm5leHRTaWJsaW5nKTtyOyl7dmFyIG89cjtzd2l0Y2gocj1yLm5leHRTaWJsaW5nLG8ubm9kZU5hbWUpe2Nhc2UiSFRNTCI6Y2FzZSJIRUFEIjpjYXNlIkJPRFkiOkp1KG8pLGFzKG8pO2NvbnRpbnVlO2Nhc2UiU0NSSVBUIjpjYXNlIlNUWUxFIjpjb250aW51ZTtjYXNlIkxJTksiOmlmKG8ucmVsLnRvTG93ZXJDYXNlKCk9PT0ic3R5bGVzaGVldCIpY29udGludWV9dC5yZW1vdmVDaGlsZChvKX19ZnVuY3Rpb24gaE8odCxyLG8scyl7Zm9yKDt0Lm5vZGVUeXBlPT09MTspe3ZhciBwPW87aWYodC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09ci50b0xvd2VyQ2FzZSgpKXtpZighcyYmKHQubm9kZU5hbWUhPT0iSU5QVVQifHx0LnR5cGUhPT0iaGlkZGVuIikpYnJlYWt9ZWxzZSBpZihzKXtpZighdFtvaV0pc3dpdGNoKHIpe2Nhc2UibWV0YSI6aWYoIXQuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKWJyZWFrO3JldHVybiB0O2Nhc2UibGluayI6aWYoZz10LmdldEF0dHJpYnV0ZSgicmVsIiksZz09PSJzdHlsZXNoZWV0IiYmdC5oYXNBdHRyaWJ1dGUoImRhdGEtcHJlY2VkZW5jZSIpKWJyZWFrO2lmKGchPT1wLnJlbHx8dC5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9PShwLmhyZWY9PW51bGx8fHAuaHJlZj09PSIiP251bGw6cC5ocmVmKXx8dC5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIikhPT0ocC5jcm9zc09yaWdpbj09bnVsbD9udWxsOnAuY3Jvc3NPcmlnaW4pfHx0LmdldEF0dHJpYnV0ZSgidGl0bGUiKSE9PShwLnRpdGxlPT1udWxsP251bGw6cC50aXRsZSkpYnJlYWs7cmV0dXJuIHQ7Y2FzZSJzdHlsZSI6aWYodC5oYXNBdHRyaWJ1dGUoImRhdGEtcHJlY2VkZW5jZSIpKWJyZWFrO3JldHVybiB0O2Nhc2Uic2NyaXB0IjppZihnPXQuZ2V0QXR0cmlidXRlKCJzcmMiKSwoZyE9PShwLnNyYz09bnVsbD9udWxsOnAuc3JjKXx8dC5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9PShwLnR5cGU9PW51bGw/bnVsbDpwLnR5cGUpfHx0LmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKSE9PShwLmNyb3NzT3JpZ2luPT1udWxsP251bGw6cC5jcm9zc09yaWdpbikpJiZnJiZ0Lmhhc0F0dHJpYnV0ZSgiYXN5bmMiKSYmIXQuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKWJyZWFrO3JldHVybiB0O2RlZmF1bHQ6cmV0dXJuIHR9fWVsc2UgaWYocj09PSJpbnB1dCImJnQudHlwZT09PSJoaWRkZW4iKXt2YXIgZz1wLm5hbWU9PW51bGw/bnVsbDoiIitwLm5hbWU7aWYocC50eXBlPT09ImhpZGRlbiImJnQuZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1nKXJldHVybiB0fWVsc2UgcmV0dXJuIHQ7aWYodD1tbih0Lm5leHRTaWJsaW5nKSx0PT09bnVsbClicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBiTyh0LHIsbyl7aWYocj09PSIiKXJldHVybiBudWxsO2Zvcig7dC5ub2RlVHlwZSE9PTM7KWlmKCh0Lm5vZGVUeXBlIT09MXx8dC5ub2RlTmFtZSE9PSJJTlBVVCJ8fHQudHlwZSE9PSJoaWRkZW4iKSYmIW98fCh0PW1uKHQubmV4dFNpYmxpbmcpLHQ9PT1udWxsKSlyZXR1cm4gbnVsbDtyZXR1cm4gdH1mdW5jdGlvbiB0dih0LHIpe2Zvcig7dC5ub2RlVHlwZSE9PTg7KWlmKCh0Lm5vZGVUeXBlIT09MXx8dC5ub2RlTmFtZSE9PSJJTlBVVCJ8fHQudHlwZSE9PSJoaWRkZW4iKSYmIXJ8fCh0PW1uKHQubmV4dFNpYmxpbmcpLHQ9PT1udWxsKSlyZXR1cm4gbnVsbDtyZXR1cm4gdH1mdW5jdGlvbiBlYyh0KXtyZXR1cm4gdC5kYXRhPT09IiQ/Inx8dC5kYXRhPT09IiR+In1mdW5jdGlvbiB0Yyh0KXtyZXR1cm4gdC5kYXRhPT09IiQhInx8dC5kYXRhPT09IiQ/IiYmdC5vd25lckRvY3VtZW50LnJlYWR5U3RhdGUhPT0ibG9hZGluZyJ9ZnVuY3Rpb24geU8odCxyKXt2YXIgbz10Lm93bmVyRG9jdW1lbnQ7aWYodC5kYXRhPT09IiR+Iil0Ll9yZWFjdFJldHJ5PXI7ZWxzZSBpZih0LmRhdGEhPT0iJD8ifHxvLnJlYWR5U3RhdGUhPT0ibG9hZGluZyIpcigpO2Vsc2V7dmFyIHM9ZnVuY3Rpb24oKXtyKCksby5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixzKX07by5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixzKSx0Ll9yZWFjdFJldHJ5PXN9fWZ1bmN0aW9uIG1uKHQpe2Zvcig7dCE9bnVsbDt0PXQubmV4dFNpYmxpbmcpe3ZhciByPXQubm9kZVR5cGU7aWYocj09PTF8fHI9PT0zKWJyZWFrO2lmKHI9PT04KXtpZihyPXQuZGF0YSxyPT09IiQifHxyPT09IiQhInx8cj09PSIkPyJ8fHI9PT0iJH4ifHxyPT09IiYifHxyPT09IkYhInx8cj09PSJGIilicmVhaztpZihyPT09Ii8kInx8cj09PSIvJiIpcmV0dXJuIG51bGx9fXJldHVybiB0fXZhciBuYz1udWxsO2Z1bmN0aW9uIG52KHQpe3Q9dC5uZXh0U2libGluZztmb3IodmFyIHI9MDt0Oyl7aWYodC5ub2RlVHlwZT09PTgpe3ZhciBvPXQuZGF0YTtpZihvPT09Ii8kInx8bz09PSIvJiIpe2lmKHI9PT0wKXJldHVybiBtbih0Lm5leHRTaWJsaW5nKTtyLS19ZWxzZSBvIT09IiQiJiZvIT09IiQhIiYmbyE9PSIkPyImJm8hPT0iJH4iJiZvIT09IiYifHxyKyt9dD10Lm5leHRTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIHJ2KHQpe3Q9dC5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciByPTA7dDspe2lmKHQubm9kZVR5cGU9PT04KXt2YXIgbz10LmRhdGE7aWYobz09PSIkInx8bz09PSIkISJ8fG89PT0iJD8ifHxvPT09IiR+Inx8bz09PSImIil7aWYocj09PTApcmV0dXJuIHQ7ci0tfWVsc2UgbyE9PSIvJCImJm8hPT0iLyYifHxyKyt9dD10LnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH1mdW5jdGlvbiBhdih0LHIsbyl7c3dpdGNoKHI9ZGwobyksdCl7Y2FzZSJodG1sIjppZih0PXIuZG9jdW1lbnRFbGVtZW50LCF0KXRocm93IEVycm9yKGkoNDUyKSk7cmV0dXJuIHQ7Y2FzZSJoZWFkIjppZih0PXIuaGVhZCwhdCl0aHJvdyBFcnJvcihpKDQ1MykpO3JldHVybiB0O2Nhc2UiYm9keSI6aWYodD1yLmJvZHksIXQpdGhyb3cgRXJyb3IoaSg0NTQpKTtyZXR1cm4gdDtkZWZhdWx0OnRocm93IEVycm9yKGkoNDUxKSl9fWZ1bmN0aW9uIFBpKHQpe2Zvcih2YXIgcj10LmF0dHJpYnV0ZXM7ci5sZW5ndGg7KXQucmVtb3ZlQXR0cmlidXRlTm9kZShyWzBdKTthcyh0KX12YXIgaG49bmV3IE1hcCxpdj1uZXcgU2V0O2Z1bmN0aW9uIHBsKHQpe3JldHVybiB0eXBlb2YgdC5nZXRSb290Tm9kZT09ImZ1bmN0aW9uIj90LmdldFJvb3ROb2RlKCk6dC5ub2RlVHlwZT09PTk/dDp0Lm93bmVyRG9jdW1lbnR9dmFyIHRyPWVlLmQ7ZWUuZD17ZjpFTyxyOlNPLEQ6dk8sQzpUTyxMOnhPLG06QU8sWDpSTyxTOl9PLE06Tk99O2Z1bmN0aW9uIEVPKCl7dmFyIHQ9dHIuZigpLHI9cmwoKTtyZXR1cm4gdHx8cn1mdW5jdGlvbiBTTyh0KXt2YXIgcj1kYSh0KTtyIT09bnVsbCYmci50YWc9PT01JiZyLnR5cGU9PT0iZm9ybSI/VEUocik6dHIucih0KX12YXIgR2E9dHlwZW9mIGRvY3VtZW50PiJ1Ij9udWxsOmRvY3VtZW50O2Z1bmN0aW9uIG92KHQscixvKXt2YXIgcz1HYTtpZihzJiZ0eXBlb2Ygcj09InN0cmluZyImJnIpe3ZhciBwPXNuKHIpO3A9J2xpbmtbcmVsPSInK3QrJyJdW2hyZWY9IicrcCsnIl0nLHR5cGVvZiBvPT0ic3RyaW5nIiYmKHArPSdbY3Jvc3NvcmlnaW49IicrbysnIl0nKSxpdi5oYXMocCl8fChpdi5hZGQocCksdD17cmVsOnQsY3Jvc3NPcmlnaW46byxocmVmOnJ9LHMucXVlcnlTZWxlY3RvcihwKT09PW51bGwmJihyPXMuY3JlYXRlRWxlbWVudCgibGluayIpLHh0KHIsImxpbmsiLHQpLGd0KHIpLHMuaGVhZC5hcHBlbmRDaGlsZChyKSkpfX1mdW5jdGlvbiB2Tyh0KXt0ci5EKHQpLG92KCJkbnMtcHJlZmV0Y2giLHQsbnVsbCl9ZnVuY3Rpb24gVE8odCxyKXt0ci5DKHQsciksb3YoInByZWNvbm5lY3QiLHQscil9ZnVuY3Rpb24geE8odCxyLG8pe3RyLkwodCxyLG8pO3ZhciBzPUdhO2lmKHMmJnQmJnIpe3ZhciBwPSdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSInK3NuKHIpKyciXSc7cj09PSJpbWFnZSImJm8mJm8uaW1hZ2VTcmNTZXQ/KHArPSdbaW1hZ2VzcmNzZXQ9Iicrc24oby5pbWFnZVNyY1NldCkrJyJdJyx0eXBlb2Ygby5pbWFnZVNpemVzPT0ic3RyaW5nIiYmKHArPSdbaW1hZ2VzaXplcz0iJytzbihvLmltYWdlU2l6ZXMpKyciXScpKTpwKz0nW2hyZWY9Iicrc24odCkrJyJdJzt2YXIgZz1wO3N3aXRjaChyKXtjYXNlInN0eWxlIjpnPUhhKHQpO2JyZWFrO2Nhc2Uic2NyaXB0IjpnPSRhKHQpfWhuLmhhcyhnKXx8KHQ9aCh7cmVsOiJwcmVsb2FkIixocmVmOnI9PT0iaW1hZ2UiJiZvJiZvLmltYWdlU3JjU2V0P3ZvaWQgMDp0LGFzOnJ9LG8pLGhuLnNldChnLHQpLHMucXVlcnlTZWxlY3RvcihwKSE9PW51bGx8fHI9PT0ic3R5bGUiJiZzLnF1ZXJ5U2VsZWN0b3IoR2koZykpfHxyPT09InNjcmlwdCImJnMucXVlcnlTZWxlY3RvcihIaShnKSl8fChyPXMuY3JlYXRlRWxlbWVudCgibGluayIpLHh0KHIsImxpbmsiLHQpLGd0KHIpLHMuaGVhZC5hcHBlbmRDaGlsZChyKSkpfX1mdW5jdGlvbiBBTyh0LHIpe3RyLm0odCxyKTt2YXIgbz1HYTtpZihvJiZ0KXt2YXIgcz1yJiZ0eXBlb2Ygci5hcz09InN0cmluZyI/ci5hczoic2NyaXB0IixwPSdsaW5rW3JlbD0ibW9kdWxlcHJlbG9hZCJdW2FzPSInK3NuKHMpKyciXVtocmVmPSInK3NuKHQpKyciXScsZz1wO3N3aXRjaChzKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6Zz0kYSh0KX1pZighaG4uaGFzKGcpJiYodD1oKHtyZWw6Im1vZHVsZXByZWxvYWQiLGhyZWY6dH0sciksaG4uc2V0KGcsdCksby5xdWVyeVNlbGVjdG9yKHApPT09bnVsbCkpe3N3aXRjaChzKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6aWYoby5xdWVyeVNlbGVjdG9yKEhpKGcpKSlyZXR1cm59cz1vLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSx4dChzLCJsaW5rIix0KSxndChzKSxvLmhlYWQuYXBwZW5kQ2hpbGQocyl9fX1mdW5jdGlvbiBfTyh0LHIsbyl7dHIuUyh0LHIsbyk7dmFyIHM9R2E7aWYocyYmdCl7dmFyIHA9cGEocykuaG9pc3RhYmxlU3R5bGVzLGc9SGEodCk7cj1yfHwiZGVmYXVsdCI7dmFyIHY9cC5nZXQoZyk7aWYoIXYpe3ZhciBBPXtsb2FkaW5nOjAscHJlbG9hZDpudWxsfTtpZih2PXMucXVlcnlTZWxlY3RvcihHaShnKSkpQS5sb2FkaW5nPTU7ZWxzZXt0PWgoe3JlbDoic3R5bGVzaGVldCIsaHJlZjp0LCJkYXRhLXByZWNlZGVuY2UiOnJ9LG8pLChvPWhuLmdldChnKSkmJnJjKHQsbyk7dmFyIEQ9dj1zLmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtndChEKSx4dChELCJsaW5rIix0KSxELl9wPW5ldyBQcm9taXNlKGZ1bmN0aW9uKFAsWCl7RC5vbmxvYWQ9UCxELm9uZXJyb3I9WH0pLEQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtBLmxvYWRpbmd8PTF9KSxELmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbigpe0EubG9hZGluZ3w9Mn0pLEEubG9hZGluZ3w9NCxmbCh2LHIscyl9dj17dHlwZToic3R5bGVzaGVldCIsaW5zdGFuY2U6dixjb3VudDoxLHN0YXRlOkF9LHAuc2V0KGcsdil9fX1mdW5jdGlvbiBSTyh0LHIpe3RyLlgodCxyKTt2YXIgbz1HYTtpZihvJiZ0KXt2YXIgcz1wYShvKS5ob2lzdGFibGVTY3JpcHRzLHA9JGEodCksZz1zLmdldChwKTtnfHwoZz1vLnF1ZXJ5U2VsZWN0b3IoSGkocCkpLGd8fCh0PWgoe3NyYzp0LGFzeW5jOiEwfSxyKSwocj1obi5nZXQocCkpJiZhYyh0LHIpLGc9by5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxndChnKSx4dChnLCJsaW5rIix0KSxvLmhlYWQuYXBwZW5kQ2hpbGQoZykpLGc9e3R5cGU6InNjcmlwdCIsaW5zdGFuY2U6Zyxjb3VudDoxLHN0YXRlOm51bGx9LHMuc2V0KHAsZykpfX1mdW5jdGlvbiBOTyh0LHIpe3RyLk0odCxyKTt2YXIgbz1HYTtpZihvJiZ0KXt2YXIgcz1wYShvKS5ob2lzdGFibGVTY3JpcHRzLHA9JGEodCksZz1zLmdldChwKTtnfHwoZz1vLnF1ZXJ5U2VsZWN0b3IoSGkocCkpLGd8fCh0PWgoe3NyYzp0LGFzeW5jOiEwLHR5cGU6Im1vZHVsZSJ9LHIpLChyPWhuLmdldChwKSkmJmFjKHQsciksZz1vLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGd0KGcpLHh0KGcsImxpbmsiLHQpLG8uaGVhZC5hcHBlbmRDaGlsZChnKSksZz17dHlwZToic2NyaXB0IixpbnN0YW5jZTpnLGNvdW50OjEsc3RhdGU6bnVsbH0scy5zZXQocCxnKSl9fWZ1bmN0aW9uIGx2KHQscixvLHMpe3ZhciBwPShwPWNlLmN1cnJlbnQpP3BsKHApOm51bGw7aWYoIXApdGhyb3cgRXJyb3IoaSg0NDYpKTtzd2l0Y2godCl7Y2FzZSJtZXRhIjpjYXNlInRpdGxlIjpyZXR1cm4gbnVsbDtjYXNlInN0eWxlIjpyZXR1cm4gdHlwZW9mIG8ucHJlY2VkZW5jZT09InN0cmluZyImJnR5cGVvZiBvLmhyZWY9PSJzdHJpbmciPyhyPUhhKG8uaHJlZiksbz1wYShwKS5ob2lzdGFibGVTdHlsZXMscz1vLmdldChyKSxzfHwocz17dHlwZToic3R5bGUiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSxvLnNldChyLHMpKSxzKTp7dHlwZToidm9pZCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9O2Nhc2UibGluayI6aWYoby5yZWw9PT0ic3R5bGVzaGVldCImJnR5cGVvZiBvLmhyZWY9PSJzdHJpbmciJiZ0eXBlb2Ygby5wcmVjZWRlbmNlPT0ic3RyaW5nIil7dD1IYShvLmhyZWYpO3ZhciBnPXBhKHApLmhvaXN0YWJsZVN0eWxlcyx2PWcuZ2V0KHQpO2lmKHZ8fChwPXAub3duZXJEb2N1bWVudHx8cCx2PXt0eXBlOiJzdHlsZXNoZWV0IixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6e2xvYWRpbmc6MCxwcmVsb2FkOm51bGx9fSxnLnNldCh0LHYpLChnPXAucXVlcnlTZWxlY3RvcihHaSh0KSkpJiYhZy5fcCYmKHYuaW5zdGFuY2U9Zyx2LnN0YXRlLmxvYWRpbmc9NSksaG4uaGFzKHQpfHwobz17cmVsOiJwcmVsb2FkIixhczoic3R5bGUiLGhyZWY6by5ocmVmLGNyb3NzT3JpZ2luOm8uY3Jvc3NPcmlnaW4saW50ZWdyaXR5Om8uaW50ZWdyaXR5LG1lZGlhOm8ubWVkaWEsaHJlZkxhbmc6by5ocmVmTGFuZyxyZWZlcnJlclBvbGljeTpvLnJlZmVycmVyUG9saWN5fSxobi5zZXQodCxvKSxnfHx3TyhwLHQsbyx2LnN0YXRlKSkpLHImJnM9PT1udWxsKXRocm93IEVycm9yKGkoNTI4LCIiKSk7cmV0dXJuIHZ9aWYociYmcyE9PW51bGwpdGhyb3cgRXJyb3IoaSg1MjksIiIpKTtyZXR1cm4gbnVsbDtjYXNlInNjcmlwdCI6cmV0dXJuIHI9by5hc3luYyxvPW8uc3JjLHR5cGVvZiBvPT0ic3RyaW5nIiYmciYmdHlwZW9mIHIhPSJmdW5jdGlvbiImJnR5cGVvZiByIT0ic3ltYm9sIj8ocj0kYShvKSxvPXBhKHApLmhvaXN0YWJsZVNjcmlwdHMscz1vLmdldChyKSxzfHwocz17dHlwZToic2NyaXB0IixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH0sby5zZXQocixzKSkscyk6e3R5cGU6InZvaWQiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfTtkZWZhdWx0OnRocm93IEVycm9yKGkoNDQ0LHQpKX19ZnVuY3Rpb24gSGEodCl7cmV0dXJuJ2hyZWY9Iicrc24odCkrJyInfWZ1bmN0aW9uIEdpKHQpe3JldHVybidsaW5rW3JlbD0ic3R5bGVzaGVldCJdWycrdCsiXSJ9ZnVuY3Rpb24gc3YodCl7cmV0dXJuIGgoe30sdCx7ImRhdGEtcHJlY2VkZW5jZSI6dC5wcmVjZWRlbmNlLHByZWNlZGVuY2U6bnVsbH0pfWZ1bmN0aW9uIHdPKHQscixvLHMpe3QucXVlcnlTZWxlY3RvcignbGlua1tyZWw9InByZWxvYWQiXVthcz0ic3R5bGUiXVsnK3IrIl0iKT9zLmxvYWRpbmc9MToocj10LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxzLnByZWxvYWQ9cixyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHMubG9hZGluZ3w9MX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKCl7cmV0dXJuIHMubG9hZGluZ3w9Mn0pLHh0KHIsImxpbmsiLG8pLGd0KHIpLHQuaGVhZC5hcHBlbmRDaGlsZChyKSl9ZnVuY3Rpb24gJGEodCl7cmV0dXJuJ1tzcmM9Iicrc24odCkrJyJdJ31mdW5jdGlvbiBIaSh0KXtyZXR1cm4ic2NyaXB0W2FzeW5jXSIrdH1mdW5jdGlvbiB1dih0LHIsbyl7aWYoci5jb3VudCsrLHIuaW5zdGFuY2U9PT1udWxsKXN3aXRjaChyLnR5cGUpe2Nhc2Uic3R5bGUiOnZhciBzPXQucXVlcnlTZWxlY3Rvcignc3R5bGVbZGF0YS1ocmVmfj0iJytzbihvLmhyZWYpKyciXScpO2lmKHMpcmV0dXJuIHIuaW5zdGFuY2U9cyxndChzKSxzO3ZhciBwPWgoe30sbyx7ImRhdGEtaHJlZiI6by5ocmVmLCJkYXRhLXByZWNlZGVuY2UiOm8ucHJlY2VkZW5jZSxocmVmOm51bGwscHJlY2VkZW5jZTpudWxsfSk7cmV0dXJuIHM9KHQub3duZXJEb2N1bWVudHx8dCkuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxndChzKSx4dChzLCJzdHlsZSIscCksZmwocyxvLnByZWNlZGVuY2UsdCksci5pbnN0YW5jZT1zO2Nhc2Uic3R5bGVzaGVldCI6cD1IYShvLmhyZWYpO3ZhciBnPXQucXVlcnlTZWxlY3RvcihHaShwKSk7aWYoZylyZXR1cm4gci5zdGF0ZS5sb2FkaW5nfD00LHIuaW5zdGFuY2U9ZyxndChnKSxnO3M9c3YobyksKHA9aG4uZ2V0KHApKSYmcmMocyxwKSxnPSh0Lm93bmVyRG9jdW1lbnR8fHQpLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxndChnKTt2YXIgdj1nO3JldHVybiB2Ll9wPW5ldyBQcm9taXNlKGZ1bmN0aW9uKEEsRCl7di5vbmxvYWQ9QSx2Lm9uZXJyb3I9RH0pLHh0KGcsImxpbmsiLHMpLHIuc3RhdGUubG9hZGluZ3w9NCxmbChnLG8ucHJlY2VkZW5jZSx0KSxyLmluc3RhbmNlPWc7Y2FzZSJzY3JpcHQiOnJldHVybiBnPSRhKG8uc3JjKSwocD10LnF1ZXJ5U2VsZWN0b3IoSGkoZykpKT8oci5pbnN0YW5jZT1wLGd0KHApLHApOihzPW8sKHA9aG4uZ2V0KGcpKSYmKHM9aCh7fSxvKSxhYyhzLHApKSx0PXQub3duZXJEb2N1bWVudHx8dCxwPXQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksZ3QocCkseHQocCwibGluayIscyksdC5oZWFkLmFwcGVuZENoaWxkKHApLHIuaW5zdGFuY2U9cCk7Y2FzZSJ2b2lkIjpyZXR1cm4gbnVsbDtkZWZhdWx0OnRocm93IEVycm9yKGkoNDQzLHIudHlwZSkpfWVsc2Ugci50eXBlPT09InN0eWxlc2hlZXQiJiYoci5zdGF0ZS5sb2FkaW5nJjQpPT09MCYmKHM9ci5pbnN0YW5jZSxyLnN0YXRlLmxvYWRpbmd8PTQsZmwocyxvLnByZWNlZGVuY2UsdCkpO3JldHVybiByLmluc3RhbmNlfWZ1bmN0aW9uIGZsKHQscixvKXtmb3IodmFyIHM9by5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW2RhdGEtcHJlY2VkZW5jZV0sc3R5bGVbZGF0YS1wcmVjZWRlbmNlXScpLHA9cy5sZW5ndGg/c1tzLmxlbmd0aC0xXTpudWxsLGc9cCx2PTA7djxzLmxlbmd0aDt2Kyspe3ZhciBBPXNbdl07aWYoQS5kYXRhc2V0LnByZWNlZGVuY2U9PT1yKWc9QTtlbHNlIGlmKGchPT1wKWJyZWFrfWc/Zy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LGcubmV4dFNpYmxpbmcpOihyPW8ubm9kZVR5cGU9PT05P28uaGVhZDpvLHIuaW5zZXJ0QmVmb3JlKHQsci5maXJzdENoaWxkKSl9ZnVuY3Rpb24gcmModCxyKXt0LmNyb3NzT3JpZ2luPT1udWxsJiYodC5jcm9zc09yaWdpbj1yLmNyb3NzT3JpZ2luKSx0LnJlZmVycmVyUG9saWN5PT1udWxsJiYodC5yZWZlcnJlclBvbGljeT1yLnJlZmVycmVyUG9saWN5KSx0LnRpdGxlPT1udWxsJiYodC50aXRsZT1yLnRpdGxlKX1mdW5jdGlvbiBhYyh0LHIpe3QuY3Jvc3NPcmlnaW49PW51bGwmJih0LmNyb3NzT3JpZ2luPXIuY3Jvc3NPcmlnaW4pLHQucmVmZXJyZXJQb2xpY3k9PW51bGwmJih0LnJlZmVycmVyUG9saWN5PXIucmVmZXJyZXJQb2xpY3kpLHQuaW50ZWdyaXR5PT1udWxsJiYodC5pbnRlZ3JpdHk9ci5pbnRlZ3JpdHkpfXZhciBnbD1udWxsO2Z1bmN0aW9uIGN2KHQscixvKXtpZihnbD09PW51bGwpe3ZhciBzPW5ldyBNYXAscD1nbD1uZXcgTWFwO3Auc2V0KG8scyl9ZWxzZSBwPWdsLHM9cC5nZXQobyksc3x8KHM9bmV3IE1hcCxwLnNldChvLHMpKTtpZihzLmhhcyh0KSlyZXR1cm4gcztmb3Iocy5zZXQodCxudWxsKSxvPW8uZ2V0RWxlbWVudHNCeVRhZ05hbWUodCkscD0wO3A8by5sZW5ndGg7cCsrKXt2YXIgZz1vW3BdO2lmKCEoZ1tvaV18fGdbRXRdfHx0PT09ImxpbmsiJiZnLmdldEF0dHJpYnV0ZSgicmVsIik9PT0ic3R5bGVzaGVldCIpJiZnLm5hbWVzcGFjZVVSSSE9PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIpe3ZhciB2PWcuZ2V0QXR0cmlidXRlKHIpfHwiIjt2PXQrdjt2YXIgQT1zLmdldCh2KTtBP0EucHVzaChnKTpzLnNldCh2LFtnXSl9fXJldHVybiBzfWZ1bmN0aW9uIGR2KHQscixvKXt0PXQub3duZXJEb2N1bWVudHx8dCx0LmhlYWQuaW5zZXJ0QmVmb3JlKG8scj09PSJ0aXRsZSI/dC5xdWVyeVNlbGVjdG9yKCJoZWFkID4gdGl0bGUiKTpudWxsKX1mdW5jdGlvbiBrTyh0LHIsbyl7aWYobz09PTF8fHIuaXRlbVByb3AhPW51bGwpcmV0dXJuITE7c3dpdGNoKHQpe2Nhc2UibWV0YSI6Y2FzZSJ0aXRsZSI6cmV0dXJuITA7Y2FzZSJzdHlsZSI6aWYodHlwZW9mIHIucHJlY2VkZW5jZSE9InN0cmluZyJ8fHR5cGVvZiByLmhyZWYhPSJzdHJpbmcifHxyLmhyZWY9PT0iIilicmVhaztyZXR1cm4hMDtjYXNlImxpbmsiOmlmKHR5cGVvZiByLnJlbCE9InN0cmluZyJ8fHR5cGVvZiByLmhyZWYhPSJzdHJpbmcifHxyLmhyZWY9PT0iInx8ci5vbkxvYWR8fHIub25FcnJvcilicmVhaztzd2l0Y2goci5yZWwpe2Nhc2Uic3R5bGVzaGVldCI6cmV0dXJuIHQ9ci5kaXNhYmxlZCx0eXBlb2Ygci5wcmVjZWRlbmNlPT0ic3RyaW5nIiYmdD09bnVsbDtkZWZhdWx0OnJldHVybiEwfWNhc2Uic2NyaXB0IjppZihyLmFzeW5jJiZ0eXBlb2Ygci5hc3luYyE9ImZ1bmN0aW9uIiYmdHlwZW9mIHIuYXN5bmMhPSJzeW1ib2wiJiYhci5vbkxvYWQmJiFyLm9uRXJyb3ImJnIuc3JjJiZ0eXBlb2Ygci5zcmM9PSJzdHJpbmciKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHB2KHQpe3JldHVybiEodC50eXBlPT09InN0eWxlc2hlZXQiJiYodC5zdGF0ZS5sb2FkaW5nJjMpPT09MCl9ZnVuY3Rpb24gQ08odCxyLG8scyl7aWYoby50eXBlPT09InN0eWxlc2hlZXQiJiYodHlwZW9mIHMubWVkaWEhPSJzdHJpbmcifHxtYXRjaE1lZGlhKHMubWVkaWEpLm1hdGNoZXMhPT0hMSkmJihvLnN0YXRlLmxvYWRpbmcmNCk9PT0wKXtpZihvLmluc3RhbmNlPT09bnVsbCl7dmFyIHA9SGEocy5ocmVmKSxnPXIucXVlcnlTZWxlY3RvcihHaShwKSk7aWYoZyl7cj1nLl9wLHIhPT1udWxsJiZ0eXBlb2Ygcj09Im9iamVjdCImJnR5cGVvZiByLnRoZW49PSJmdW5jdGlvbiImJih0LmNvdW50KyssdD1tbC5iaW5kKHQpLHIudGhlbih0LHQpKSxvLnN0YXRlLmxvYWRpbmd8PTQsby5pbnN0YW5jZT1nLGd0KGcpO3JldHVybn1nPXIub3duZXJEb2N1bWVudHx8cixzPXN2KHMpLChwPWhuLmdldChwKSkmJnJjKHMscCksZz1nLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxndChnKTt2YXIgdj1nO3YuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oQSxEKXt2Lm9ubG9hZD1BLHYub25lcnJvcj1EfSkseHQoZywibGluayIscyksby5pbnN0YW5jZT1nfXQuc3R5bGVzaGVldHM9PT1udWxsJiYodC5zdHlsZXNoZWV0cz1uZXcgTWFwKSx0LnN0eWxlc2hlZXRzLnNldChvLHIpLChyPW8uc3RhdGUucHJlbG9hZCkmJihvLnN0YXRlLmxvYWRpbmcmMyk9PT0wJiYodC5jb3VudCsrLG89bWwuYmluZCh0KSxyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLG8pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pKX19dmFyIGljPTA7ZnVuY3Rpb24gSU8odCxyKXtyZXR1cm4gdC5zdHlsZXNoZWV0cyYmdC5jb3VudD09PTAmJmJsKHQsdC5zdHlsZXNoZWV0cyksMDx0LmNvdW50fHwwPHQuaW1nQ291bnQ/ZnVuY3Rpb24obyl7dmFyIHM9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHQuc3R5bGVzaGVldHMmJmJsKHQsdC5zdHlsZXNoZWV0cyksdC51bnN1c3BlbmQpe3ZhciBnPXQudW5zdXNwZW5kO3QudW5zdXNwZW5kPW51bGwsZygpfX0sNmU0K3IpOzA8dC5pbWdCeXRlcyYmaWM9PT0wJiYoaWM9NjI1MDAqZE8oKSk7dmFyIHA9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHQud2FpdGluZ0ZvckltYWdlcz0hMSx0LmNvdW50PT09MCYmKHQuc3R5bGVzaGVldHMmJmJsKHQsdC5zdHlsZXNoZWV0cyksdC51bnN1c3BlbmQpKXt2YXIgZz10LnVuc3VzcGVuZDt0LnVuc3VzcGVuZD1udWxsLGcoKX19LCh0LmltZ0J5dGVzPmljPzUwOjgwMCkrcik7cmV0dXJuIHQudW5zdXNwZW5kPW8sZnVuY3Rpb24oKXt0LnVuc3VzcGVuZD1udWxsLGNsZWFyVGltZW91dChzKSxjbGVhclRpbWVvdXQocCl9fTpudWxsfWZ1bmN0aW9uIG1sKCl7aWYodGhpcy5jb3VudC0tLHRoaXMuY291bnQ9PT0wJiYodGhpcy5pbWdDb3VudD09PTB8fCF0aGlzLndhaXRpbmdGb3JJbWFnZXMpKXtpZih0aGlzLnN0eWxlc2hlZXRzKWJsKHRoaXMsdGhpcy5zdHlsZXNoZWV0cyk7ZWxzZSBpZih0aGlzLnVuc3VzcGVuZCl7dmFyIHQ9dGhpcy51bnN1c3BlbmQ7dGhpcy51bnN1c3BlbmQ9bnVsbCx0KCl9fX12YXIgaGw9bnVsbDtmdW5jdGlvbiBibCh0LHIpe3Quc3R5bGVzaGVldHM9bnVsbCx0LnVuc3VzcGVuZCE9PW51bGwmJih0LmNvdW50KyssaGw9bmV3IE1hcCxyLmZvckVhY2goT08sdCksaGw9bnVsbCxtbC5jYWxsKHQpKX1mdW5jdGlvbiBPTyh0LHIpe2lmKCEoci5zdGF0ZS5sb2FkaW5nJjQpKXt2YXIgbz1obC5nZXQodCk7aWYobyl2YXIgcz1vLmdldChudWxsKTtlbHNle289bmV3IE1hcCxobC5zZXQodCxvKTtmb3IodmFyIHA9dC5xdWVyeVNlbGVjdG9yQWxsKCJsaW5rW2RhdGEtcHJlY2VkZW5jZV0sc3R5bGVbZGF0YS1wcmVjZWRlbmNlXSIpLGc9MDtnPHAubGVuZ3RoO2crKyl7dmFyIHY9cFtnXTsodi5ub2RlTmFtZT09PSJMSU5LInx8di5nZXRBdHRyaWJ1dGUoIm1lZGlhIikhPT0ibm90IGFsbCIpJiYoby5zZXQodi5kYXRhc2V0LnByZWNlZGVuY2Usdikscz12KX1zJiZvLnNldChudWxsLHMpfXA9ci5pbnN0YW5jZSx2PXAuZ2V0QXR0cmlidXRlKCJkYXRhLXByZWNlZGVuY2UiKSxnPW8uZ2V0KHYpfHxzLGc9PT1zJiZvLnNldChudWxsLHApLG8uc2V0KHYscCksdGhpcy5jb3VudCsrLHM9bWwuYmluZCh0aGlzKSxwLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHMpLHAuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLHMpLGc/Zy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShwLGcubmV4dFNpYmxpbmcpOih0PXQubm9kZVR5cGU9PT05P3QuaGVhZDp0LHQuaW5zZXJ0QmVmb3JlKHAsdC5maXJzdENoaWxkKSksci5zdGF0ZS5sb2FkaW5nfD00fX12YXIgJGk9eyQkdHlwZW9mOmssUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsLF9jdXJyZW50VmFsdWU6bmUsX2N1cnJlbnRWYWx1ZTI6bmUsX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIExPKHQscixvLHMscCxnLHYsQSxEKXt0aGlzLnRhZz0xLHRoaXMuY29udGFpbmVySW5mbz10LHRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsLHRoaXMudGltZW91dEhhbmRsZT0tMSx0aGlzLmNhbGxiYWNrTm9kZT10aGlzLm5leHQ9dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9dGhpcy5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGwsdGhpcy5jYWxsYmFja1ByaW9yaXR5PTAsdGhpcy5leHBpcmF0aW9uVGltZXM9ZXMoLTEpLHRoaXMuZW50YW5nbGVkTGFuZXM9dGhpcy5zaGVsbFN1c3BlbmRDb3VudGVyPXRoaXMuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy53YXJtTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTAsdGhpcy5lbnRhbmdsZW1lbnRzPWVzKDApLHRoaXMuaGlkZGVuVXBkYXRlcz1lcyhudWxsKSx0aGlzLmlkZW50aWZpZXJQcmVmaXg9cyx0aGlzLm9uVW5jYXVnaHRFcnJvcj1wLHRoaXMub25DYXVnaHRFcnJvcj1nLHRoaXMub25SZWNvdmVyYWJsZUVycm9yPXYsdGhpcy5wb29sZWRDYWNoZT1udWxsLHRoaXMucG9vbGVkQ2FjaGVMYW5lcz0wLHRoaXMuZm9ybVN0YXRlPUQsdGhpcy5pbmNvbXBsZXRlVHJhbnNpdGlvbnM9bmV3IE1hcH1mdW5jdGlvbiBmdih0LHIsbyxzLHAsZyx2LEEsRCxQLFgsUSl7cmV0dXJuIHQ9bmV3IExPKHQscixvLHYsRCxQLFgsUSxBKSxyPTEsZz09PSEwJiYocnw9MjQpLGc9WXQoMyxudWxsLG51bGwsciksdC5jdXJyZW50PWcsZy5zdGF0ZU5vZGU9dCxyPUJzKCksci5yZWZDb3VudCsrLHQucG9vbGVkQ2FjaGU9cixyLnJlZkNvdW50KyssZy5tZW1vaXplZFN0YXRlPXtlbGVtZW50OnMsaXNEZWh5ZHJhdGVkOm8sY2FjaGU6cn0sUHMoZyksdH1mdW5jdGlvbiBndih0KXtyZXR1cm4gdD8odD1UYSx0KTpUYX1mdW5jdGlvbiBtdih0LHIsbyxzLHAsZyl7cD1ndihwKSxzLmNvbnRleHQ9PT1udWxsP3MuY29udGV4dD1wOnMucGVuZGluZ0NvbnRleHQ9cCxzPXByKHIpLHMucGF5bG9hZD17ZWxlbWVudDpvfSxnPWc9PT12b2lkIDA/bnVsbDpnLGchPT1udWxsJiYocy5jYWxsYmFjaz1nKSxvPWZyKHQscyxyKSxvIT09bnVsbCYmKHp0KG8sdCxyKSx4aShvLHQscikpfWZ1bmN0aW9uIGh2KHQscil7aWYodD10Lm1lbW9pemVkU3RhdGUsdCE9PW51bGwmJnQuZGVoeWRyYXRlZCE9PW51bGwpe3ZhciBvPXQucmV0cnlMYW5lO3QucmV0cnlMYW5lPW8hPT0wJiZvPHI/bzpyfX1mdW5jdGlvbiBvYyh0LHIpe2h2KHQsciksKHQ9dC5hbHRlcm5hdGUpJiZodih0LHIpfWZ1bmN0aW9uIGJ2KHQpe2lmKHQudGFnPT09MTN8fHQudGFnPT09MzEpe3ZhciByPVByKHQsNjcxMDg4NjQpO3IhPT1udWxsJiZ6dChyLHQsNjcxMDg4NjQpLG9jKHQsNjcxMDg4NjQpfX1mdW5jdGlvbiB5dih0KXtpZih0LnRhZz09PTEzfHx0LnRhZz09PTMxKXt2YXIgcj1RdCgpO3I9dHMocik7dmFyIG89UHIodCxyKTtvIT09bnVsbCYmenQobyx0LHIpLG9jKHQscil9fXZhciB5bD0hMDtmdW5jdGlvbiBETyh0LHIsbyxzKXt2YXIgcD1HLlQ7Ry5UPW51bGw7dmFyIGc9ZWUucDt0cnl7ZWUucD0yLGxjKHQscixvLHMpfWZpbmFsbHl7ZWUucD1nLEcuVD1wfX1mdW5jdGlvbiBNTyh0LHIsbyxzKXt2YXIgcD1HLlQ7Ry5UPW51bGw7dmFyIGc9ZWUucDt0cnl7ZWUucD04LGxjKHQscixvLHMpfWZpbmFsbHl7ZWUucD1nLEcuVD1wfX1mdW5jdGlvbiBsYyh0LHIsbyxzKXtpZih5bCl7dmFyIHA9c2Mocyk7aWYocD09PW51bGwpWXUodCxyLHMsRWwsbyksU3YodCxzKTtlbHNlIGlmKEZPKHAsdCxyLG8scykpcy5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKFN2KHQscyksciY0JiYtMTxVTy5pbmRleE9mKHQpKXtmb3IoO3AhPT1udWxsOyl7dmFyIGc9ZGEocCk7aWYoZyE9PW51bGwpc3dpdGNoKGcudGFnKXtjYXNlIDM6aWYoZz1nLnN0YXRlTm9kZSxnLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciB2PXduKGcucGVuZGluZ0xhbmVzKTtpZih2IT09MCl7dmFyIEE9Zztmb3IoQS5wZW5kaW5nTGFuZXN8PTIsQS5lbnRhbmdsZWRMYW5lc3w9Mjt2Oyl7dmFyIEQ9MTw8MzEtQmUodik7QS5lbnRhbmdsZW1lbnRzWzFdfD1ELHYmPX5EfU9uKGcpLChGZSY2KT09PTAmJih0bD1RZSgpKzUwMCxqaSgwKSl9fWJyZWFrO2Nhc2UgMzE6Y2FzZSAxMzpBPVByKGcsMiksQSE9PW51bGwmJnp0KEEsZywyKSxybCgpLG9jKGcsMil9aWYoZz1zYyhzKSxnPT09bnVsbCYmWXUodCxyLHMsRWwsbyksZz09PXApYnJlYWs7cD1nfXAhPT1udWxsJiZzLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgWXUodCxyLHMsbnVsbCxvKX19ZnVuY3Rpb24gc2ModCl7cmV0dXJuIHQ9Y3ModCksdWModCl9dmFyIEVsPW51bGw7ZnVuY3Rpb24gdWModCl7aWYoRWw9bnVsbCx0PWNhKHQpLHQhPT1udWxsKXt2YXIgcj11KHQpO2lmKHI9PT1udWxsKXQ9bnVsbDtlbHNle3ZhciBvPXIudGFnO2lmKG89PT0xMyl7aWYodD1jKHIpLHQhPT1udWxsKXJldHVybiB0O3Q9bnVsbH1lbHNlIGlmKG89PT0zMSl7aWYodD1kKHIpLHQhPT1udWxsKXJldHVybiB0O3Q9bnVsbH1lbHNlIGlmKG89PT0zKXtpZihyLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiByLnRhZz09PTM/ci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO3Q9bnVsbH1lbHNlIHIhPT10JiYodD1udWxsKX19cmV0dXJuIEVsPXQsbnVsbH1mdW5jdGlvbiBFdih0KXtzd2l0Y2godCl7Y2FzZSJiZWZvcmV0b2dnbGUiOmNhc2UiY2FuY2VsIjpjYXNlImNsaWNrIjpjYXNlImNsb3NlIjpjYXNlImNvbnRleHRtZW51IjpjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOmNhc2UiZm9jdXNpbiI6Y2FzZSJmb2N1c291dCI6Y2FzZSJpbnB1dCI6Y2FzZSJpbnZhbGlkIjpjYXNlImtleWRvd24iOmNhc2Uia2V5cHJlc3MiOmNhc2Uia2V5dXAiOmNhc2UibW91c2Vkb3duIjpjYXNlIm1vdXNldXAiOmNhc2UicGFzdGUiOmNhc2UicGF1c2UiOmNhc2UicGxheSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJ1cCI6Y2FzZSJyYXRlY2hhbmdlIjpjYXNlInJlc2V0IjpjYXNlInJlc2l6ZSI6Y2FzZSJzZWVrZWQiOmNhc2Uic3VibWl0IjpjYXNlInRvZ2dsZSI6Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaHN0YXJ0IjpjYXNlInZvbHVtZWNoYW5nZSI6Y2FzZSJjaGFuZ2UiOmNhc2Uic2VsZWN0aW9uY2hhbmdlIjpjYXNlInRleHRJbnB1dCI6Y2FzZSJjb21wb3NpdGlvbnN0YXJ0IjpjYXNlImNvbXBvc2l0aW9uZW5kIjpjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpjYXNlImJlZm9yZWlucHV0IjpjYXNlImJsdXIiOmNhc2UiZnVsbHNjcmVlbmNoYW5nZSI6Y2FzZSJmb2N1cyI6Y2FzZSJoYXNoY2hhbmdlIjpjYXNlInBvcHN0YXRlIjpjYXNlInNlbGVjdCI6Y2FzZSJzZWxlY3RzdGFydCI6cmV0dXJuIDI7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInNjcm9sbCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2Uid2hlZWwiOmNhc2UibW91c2VlbnRlciI6Y2FzZSJtb3VzZWxlYXZlIjpjYXNlInBvaW50ZXJlbnRlciI6Y2FzZSJwb2ludGVybGVhdmUiOnJldHVybiA4O2Nhc2UibWVzc2FnZSI6c3dpdGNoKGh0KCkpe2Nhc2UgVzpyZXR1cm4gMjtjYXNlIHJlOnJldHVybiA4O2Nhc2UgZGU6Y2FzZSBFZTpyZXR1cm4gMzI7Y2FzZSBPZTpyZXR1cm4gMjY4NDM1NDU2O2RlZmF1bHQ6cmV0dXJuIDMyfWRlZmF1bHQ6cmV0dXJuIDMyfX12YXIgY2M9ITEsQXI9bnVsbCxfcj1udWxsLFJyPW51bGwsVmk9bmV3IE1hcCxZaT1uZXcgTWFwLE5yPVtdLFVPPSJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQiLnNwbGl0KCIgIik7ZnVuY3Rpb24gU3YodCxyKXtzd2l0Y2godCl7Y2FzZSJmb2N1c2luIjpjYXNlImZvY3Vzb3V0IjpBcj1udWxsO2JyZWFrO2Nhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdsZWF2ZSI6X3I9bnVsbDticmVhaztjYXNlIm1vdXNlb3ZlciI6Y2FzZSJtb3VzZW91dCI6UnI9bnVsbDticmVhaztjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJvdXQiOlZpLmRlbGV0ZShyLnBvaW50ZXJJZCk7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOllpLmRlbGV0ZShyLnBvaW50ZXJJZCl9fWZ1bmN0aW9uIEtpKHQscixvLHMscCxnKXtyZXR1cm4gdD09PW51bGx8fHQubmF0aXZlRXZlbnQhPT1nPyh0PXtibG9ja2VkT246cixkb21FdmVudE5hbWU6byxldmVudFN5c3RlbUZsYWdzOnMsbmF0aXZlRXZlbnQ6Zyx0YXJnZXRDb250YWluZXJzOltwXX0sciE9PW51bGwmJihyPWRhKHIpLHIhPT1udWxsJiZidihyKSksdCk6KHQuZXZlbnRTeXN0ZW1GbGFnc3w9cyxyPXQudGFyZ2V0Q29udGFpbmVycyxwIT09bnVsbCYmci5pbmRleE9mKHApPT09LTEmJnIucHVzaChwKSx0KX1mdW5jdGlvbiBGTyh0LHIsbyxzLHApe3N3aXRjaChyKXtjYXNlImZvY3VzaW4iOnJldHVybiBBcj1LaShBcix0LHIsbyxzLHApLCEwO2Nhc2UiZHJhZ2VudGVyIjpyZXR1cm4gX3I9S2koX3IsdCxyLG8scyxwKSwhMDtjYXNlIm1vdXNlb3ZlciI6cmV0dXJuIFJyPUtpKFJyLHQscixvLHMscCksITA7Y2FzZSJwb2ludGVyb3ZlciI6dmFyIGc9cC5wb2ludGVySWQ7cmV0dXJuIFZpLnNldChnLEtpKFZpLmdldChnKXx8bnVsbCx0LHIsbyxzLHApKSwhMDtjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpyZXR1cm4gZz1wLnBvaW50ZXJJZCxZaS5zZXQoZyxLaShZaS5nZXQoZyl8fG51bGwsdCxyLG8scyxwKSksITB9cmV0dXJuITF9ZnVuY3Rpb24gdnYodCl7dmFyIHI9Y2EodC50YXJnZXQpO2lmKHIhPT1udWxsKXt2YXIgbz11KHIpO2lmKG8hPT1udWxsKXtpZihyPW8udGFnLHI9PT0xMyl7aWYocj1jKG8pLHIhPT1udWxsKXt0LmJsb2NrZWRPbj1yLE1iKHQucHJpb3JpdHksZnVuY3Rpb24oKXt5dihvKX0pO3JldHVybn19ZWxzZSBpZihyPT09MzEpe2lmKHI9ZChvKSxyIT09bnVsbCl7dC5ibG9ja2VkT249cixNYih0LnByaW9yaXR5LGZ1bmN0aW9uKCl7eXYobyl9KTtyZXR1cm59fWVsc2UgaWYocj09PTMmJm8uc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3QuYmxvY2tlZE9uPW8udGFnPT09Mz9vLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX19dC5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiBTbCh0KXtpZih0LmJsb2NrZWRPbiE9PW51bGwpcmV0dXJuITE7Zm9yKHZhciByPXQudGFyZ2V0Q29udGFpbmVyczswPHIubGVuZ3RoOyl7dmFyIG89c2ModC5uYXRpdmVFdmVudCk7aWYobz09PW51bGwpe289dC5uYXRpdmVFdmVudDt2YXIgcz1uZXcgby5jb25zdHJ1Y3RvcihvLnR5cGUsbyk7dXM9cyxvLnRhcmdldC5kaXNwYXRjaEV2ZW50KHMpLHVzPW51bGx9ZWxzZSByZXR1cm4gcj1kYShvKSxyIT09bnVsbCYmYnYociksdC5ibG9ja2VkT249bywhMTtyLnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gVHYodCxyLG8pe1NsKHQpJiZvLmRlbGV0ZShyKX1mdW5jdGlvbiBCTygpe2NjPSExLEFyIT09bnVsbCYmU2woQXIpJiYoQXI9bnVsbCksX3IhPT1udWxsJiZTbChfcikmJihfcj1udWxsKSxSciE9PW51bGwmJlNsKFJyKSYmKFJyPW51bGwpLFZpLmZvckVhY2goVHYpLFlpLmZvckVhY2goVHYpfWZ1bmN0aW9uIHZsKHQscil7dC5ibG9ja2VkT249PT1yJiYodC5ibG9ja2VkT249bnVsbCxjY3x8KGNjPSEwLGUudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhlLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LEJPKSkpfXZhciBUbD1udWxsO2Z1bmN0aW9uIHh2KHQpe1RsIT09dCYmKFRsPXQsZS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKGUudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZnVuY3Rpb24oKXtUbD09PXQmJihUbD1udWxsKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrPTMpe3ZhciBvPXRbcl0scz10W3IrMV0scD10W3IrMl07aWYodHlwZW9mIHMhPSJmdW5jdGlvbiIpe2lmKHVjKHN8fG8pPT09bnVsbCljb250aW51ZTticmVha312YXIgZz1kYShvKTtnIT09bnVsbCYmKHQuc3BsaWNlKHIsMyksci09MyxzdShnLHtwZW5kaW5nOiEwLGRhdGE6cCxtZXRob2Q6by5tZXRob2QsYWN0aW9uOnN9LHMscCkpfX0pKX1mdW5jdGlvbiBWYSh0KXtmdW5jdGlvbiByKEQpe3JldHVybiB2bChELHQpfUFyIT09bnVsbCYmdmwoQXIsdCksX3IhPT1udWxsJiZ2bChfcix0KSxSciE9PW51bGwmJnZsKFJyLHQpLFZpLmZvckVhY2gociksWWkuZm9yRWFjaChyKTtmb3IodmFyIG89MDtvPE5yLmxlbmd0aDtvKyspe3ZhciBzPU5yW29dO3MuYmxvY2tlZE9uPT09dCYmKHMuYmxvY2tlZE9uPW51bGwpfWZvcig7MDxOci5sZW5ndGgmJihvPU5yWzBdLG8uYmxvY2tlZE9uPT09bnVsbCk7KXZ2KG8pLG8uYmxvY2tlZE9uPT09bnVsbCYmTnIuc2hpZnQoKTtpZihvPSh0Lm93bmVyRG9jdW1lbnR8fHQpLiQkcmVhY3RGb3JtUmVwbGF5LG8hPW51bGwpZm9yKHM9MDtzPG8ubGVuZ3RoO3MrPTMpe3ZhciBwPW9bc10sZz1vW3MrMV0sdj1wW0R0XXx8bnVsbDtpZih0eXBlb2YgZz09ImZ1bmN0aW9uIil2fHx4dihvKTtlbHNlIGlmKHYpe3ZhciBBPW51bGw7aWYoZyYmZy5oYXNBdHRyaWJ1dGUoImZvcm1BY3Rpb24iKSl7aWYocD1nLHY9Z1tEdF18fG51bGwpQT12LmZvcm1BY3Rpb247ZWxzZSBpZih1YyhwKSE9PW51bGwpY29udGludWV9ZWxzZSBBPXYuYWN0aW9uO3R5cGVvZiBBPT0iZnVuY3Rpb24iP29bcysxXT1BOihvLnNwbGljZShzLDMpLHMtPTMpLHh2KG8pfX19ZnVuY3Rpb24gQXYoKXtmdW5jdGlvbiB0KGcpe2cuY2FuSW50ZXJjZXB0JiZnLmluZm89PT0icmVhY3QtdHJhbnNpdGlvbiImJmcuaW50ZXJjZXB0KHtoYW5kbGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHYpe3JldHVybiBwPXZ9KX0sZm9jdXNSZXNldDoibWFudWFsIixzY3JvbGw6Im1hbnVhbCJ9KX1mdW5jdGlvbiByKCl7cCE9PW51bGwmJihwKCkscD1udWxsKSxzfHxzZXRUaW1lb3V0KG8sMjApfWZ1bmN0aW9uIG8oKXtpZighcyYmIW5hdmlnYXRpb24udHJhbnNpdGlvbil7dmFyIGc9bmF2aWdhdGlvbi5jdXJyZW50RW50cnk7ZyYmZy51cmwhPW51bGwmJm5hdmlnYXRpb24ubmF2aWdhdGUoZy51cmwse3N0YXRlOmcuZ2V0U3RhdGUoKSxpbmZvOiJyZWFjdC10cmFuc2l0aW9uIixoaXN0b3J5OiJyZXBsYWNlIn0pfX1pZih0eXBlb2YgbmF2aWdhdGlvbj09Im9iamVjdCIpe3ZhciBzPSExLHA9bnVsbDtyZXR1cm4gbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKCJuYXZpZ2F0ZSIsdCksbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKCJuYXZpZ2F0ZXN1Y2Nlc3MiLHIpLG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigibmF2aWdhdGVlcnJvciIsciksc2V0VGltZW91dChvLDEwMCksZnVuY3Rpb24oKXtzPSEwLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibmF2aWdhdGUiLHQpLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibmF2aWdhdGVzdWNjZXNzIixyKSxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlZXJyb3IiLHIpLHAhPT1udWxsJiYocCgpLHA9bnVsbCl9fX1mdW5jdGlvbiBkYyh0KXt0aGlzLl9pbnRlcm5hbFJvb3Q9dH14bC5wcm90b3R5cGUucmVuZGVyPWRjLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5faW50ZXJuYWxSb290O2lmKHI9PT1udWxsKXRocm93IEVycm9yKGkoNDA5KSk7dmFyIG89ci5jdXJyZW50LHM9UXQoKTttdihvLHMsdCxyLG51bGwsbnVsbCl9LHhsLnByb3RvdHlwZS51bm1vdW50PWRjLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faW50ZXJuYWxSb290O2lmKHQhPT1udWxsKXt0aGlzLl9pbnRlcm5hbFJvb3Q9bnVsbDt2YXIgcj10LmNvbnRhaW5lckluZm87bXYodC5jdXJyZW50LDIsbnVsbCx0LG51bGwsbnVsbCkscmwoKSxyW3VhXT1udWxsfX07ZnVuY3Rpb24geGwodCl7dGhpcy5faW50ZXJuYWxSb290PXR9eGwucHJvdG90eXBlLnVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uPWZ1bmN0aW9uKHQpe2lmKHQpe3ZhciByPURiKCk7dD17YmxvY2tlZE9uOm51bGwsdGFyZ2V0OnQscHJpb3JpdHk6cn07Zm9yKHZhciBvPTA7bzxOci5sZW5ndGgmJnIhPT0wJiZyPE5yW29dLnByaW9yaXR5O28rKyk7TnIuc3BsaWNlKG8sMCx0KSxvPT09MCYmdnYodCl9fTt2YXIgX3Y9bi52ZXJzaW9uO2lmKF92IT09IjE5LjIuMCIpdGhyb3cgRXJyb3IoaSg1MjcsX3YsIjE5LjIuMCIpKTtlZS5maW5kRE9NTm9kZT1mdW5jdGlvbih0KXt2YXIgcj10Ll9yZWFjdEludGVybmFscztpZihyPT09dm9pZCAwKXRocm93IHR5cGVvZiB0LnJlbmRlcj09ImZ1bmN0aW9uIj9FcnJvcihpKDE4OCkpOih0PU9iamVjdC5rZXlzKHQpLmpvaW4oIiwiKSxFcnJvcihpKDI2OCx0KSkpO3JldHVybiB0PW0ociksdD10IT09bnVsbD9iKHQpOm51bGwsdD10PT09bnVsbD9udWxsOnQuc3RhdGVOb2RlLHR9O3ZhciBqTz17YnVuZGxlVHlwZTowLHZlcnNpb246IjE5LjIuMCIscmVuZGVyZXJQYWNrYWdlTmFtZToicmVhY3QtZG9tIixjdXJyZW50RGlzcGF0Y2hlclJlZjpHLHJlY29uY2lsZXJWZXJzaW9uOiIxOS4yLjAifTtpZih0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fPCJ1Iil7dmFyIEFsPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZighQWwuaXNEaXNhYmxlZCYmQWwuc3VwcG9ydHNGaWJlcil0cnl7bnQ9QWwuaW5qZWN0KGpPKSxIZT1BbH1jYXRjaHt9fXJldHVybiBYaS5jcmVhdGVSb290PWZ1bmN0aW9uKHQscil7aWYoIWwodCkpdGhyb3cgRXJyb3IoaSgyOTkpKTt2YXIgbz0hMSxzPSIiLHA9T0UsZz1MRSx2PURFO3JldHVybiByIT1udWxsJiYoci51bnN0YWJsZV9zdHJpY3RNb2RlPT09ITAmJihvPSEwKSxyLmlkZW50aWZpZXJQcmVmaXghPT12b2lkIDAmJihzPXIuaWRlbnRpZmllclByZWZpeCksci5vblVuY2F1Z2h0RXJyb3IhPT12b2lkIDAmJihwPXIub25VbmNhdWdodEVycm9yKSxyLm9uQ2F1Z2h0RXJyb3IhPT12b2lkIDAmJihnPXIub25DYXVnaHRFcnJvciksci5vblJlY292ZXJhYmxlRXJyb3IhPT12b2lkIDAmJih2PXIub25SZWNvdmVyYWJsZUVycm9yKSkscj1mdih0LDEsITEsbnVsbCxudWxsLG8scyxudWxsLHAsZyx2LEF2KSx0W3VhXT1yLmN1cnJlbnQsVnUodCksbmV3IGRjKHIpfSxYaS5oeWRyYXRlUm9vdD1mdW5jdGlvbih0LHIsbyl7aWYoIWwodCkpdGhyb3cgRXJyb3IoaSgyOTkpKTt2YXIgcz0hMSxwPSIiLGc9T0Usdj1MRSxBPURFLEQ9bnVsbDtyZXR1cm4gbyE9bnVsbCYmKG8udW5zdGFibGVfc3RyaWN0TW9kZT09PSEwJiYocz0hMCksby5pZGVudGlmaWVyUHJlZml4IT09dm9pZCAwJiYocD1vLmlkZW50aWZpZXJQcmVmaXgpLG8ub25VbmNhdWdodEVycm9yIT09dm9pZCAwJiYoZz1vLm9uVW5jYXVnaHRFcnJvciksby5vbkNhdWdodEVycm9yIT09dm9pZCAwJiYodj1vLm9uQ2F1Z2h0RXJyb3IpLG8ub25SZWNvdmVyYWJsZUVycm9yIT09dm9pZCAwJiYoQT1vLm9uUmVjb3ZlcmFibGVFcnJvciksby5mb3JtU3RhdGUhPT12b2lkIDAmJihEPW8uZm9ybVN0YXRlKSkscj1mdih0LDEsITAscixvPz9udWxsLHMscCxELGcsdixBLEF2KSxyLmNvbnRleHQ9Z3YobnVsbCksbz1yLmN1cnJlbnQscz1RdCgpLHM9dHMocykscD1wcihzKSxwLmNhbGxiYWNrPW51bGwsZnIobyxwLHMpLG89cyxyLmN1cnJlbnQubGFuZXM9byxpaShyLG8pLE9uKHIpLHRbdWFdPXIuY3VycmVudCxWdSh0KSxuZXcgeGwocil9LFhpLnZlcnNpb249IjE5LjIuMCIsWGl9dmFyIE12O2Z1bmN0aW9uIFdPKCl7aWYoTXYpcmV0dXJuIGdjLmV4cG9ydHM7TXY9MTtmdW5jdGlvbiBlKCl7aWYoISh0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fPiJ1Inx8dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSE9ImZ1bmN0aW9uIikpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShlKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKG4pfX1yZXR1cm4gZSgpLGdjLmV4cG9ydHM9S08oKSxnYy5leHBvcnRzfXZhciBYTz1XTygpLEphPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5saXN0ZW5lcnM9bmV3IFNldCx0aGlzLnN1YnNjcmliZT10aGlzLnN1YnNjcmliZS5iaW5kKHRoaXMpfXN1YnNjcmliZShlKXtyZXR1cm4gdGhpcy5saXN0ZW5lcnMuYWRkKGUpLHRoaXMub25TdWJzY3JpYmUoKSwoKT0+e3RoaXMubGlzdGVuZXJzLmRlbGV0ZShlKSx0aGlzLm9uVW5zdWJzY3JpYmUoKX19aGFzTGlzdGVuZXJzKCl7cmV0dXJuIHRoaXMubGlzdGVuZXJzLnNpemU+MH1vblN1YnNjcmliZSgpe31vblVuc3Vic2NyaWJlKCl7fX0sWk89e3NldFRpbWVvdXQ6KGUsbik9PnNldFRpbWVvdXQoZSxuKSxjbGVhclRpbWVvdXQ6ZT0+Y2xlYXJUaW1lb3V0KGUpLHNldEludGVydmFsOihlLG4pPT5zZXRJbnRlcnZhbChlLG4pLGNsZWFySW50ZXJ2YWw6ZT0+Y2xlYXJJbnRlcnZhbChlKX0sUU89Y2xhc3N7I2U9Wk87I3Q9ITE7c2V0VGltZW91dFByb3ZpZGVyKGUpe3RoaXMuI2U9ZX1zZXRUaW1lb3V0KGUsbil7cmV0dXJuIHRoaXMuI2Uuc2V0VGltZW91dChlLG4pfWNsZWFyVGltZW91dChlKXt0aGlzLiNlLmNsZWFyVGltZW91dChlKX1zZXRJbnRlcnZhbChlLG4pe3JldHVybiB0aGlzLiNlLnNldEludGVydmFsKGUsbil9Y2xlYXJJbnRlcnZhbChlKXt0aGlzLiNlLmNsZWFySW50ZXJ2YWwoZSl9fSxuYT1uZXcgUU87ZnVuY3Rpb24gSk8oZSl7c2V0VGltZW91dChlLDApfXZhciByYT10eXBlb2Ygd2luZG93PiJ1Inx8IkRlbm8iaW4gZ2xvYmFsVGhpcztmdW5jdGlvbiBDdCgpe31mdW5jdGlvbiBlMShlLG4pe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKG4pOmV9ZnVuY3Rpb24gdmgoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIiYmZT49MCYmZSE9PTEvMH1mdW5jdGlvbiBPdyhlLG4pe3JldHVybiBNYXRoLm1heChlKyhufHwwKS1EYXRlLm5vdygpLDApfWZ1bmN0aW9uIElyKGUsbil7cmV0dXJuIHR5cGVvZiBlPT0iZnVuY3Rpb24iP2Uobik6ZX1mdW5jdGlvbiBibihlLG4pe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKG4pOmV9ZnVuY3Rpb24gVXYoZSxuKXtjb25zdHt0eXBlOmE9ImFsbCIsZXhhY3Q6aSxmZXRjaFN0YXR1czpsLHByZWRpY2F0ZTp1LHF1ZXJ5S2V5OmMsc3RhbGU6ZH09ZTtpZihjKXtpZihpKXtpZihuLnF1ZXJ5SGFzaCE9PVZoKGMsbi5vcHRpb25zKSlyZXR1cm4hMX1lbHNlIGlmKCFhbyhuLnF1ZXJ5S2V5LGMpKXJldHVybiExfWlmKGEhPT0iYWxsIil7Y29uc3QgZj1uLmlzQWN0aXZlKCk7aWYoYT09PSJhY3RpdmUiJiYhZnx8YT09PSJpbmFjdGl2ZSImJmYpcmV0dXJuITF9cmV0dXJuISh0eXBlb2YgZD09ImJvb2xlYW4iJiZuLmlzU3RhbGUoKSE9PWR8fGwmJmwhPT1uLnN0YXRlLmZldGNoU3RhdHVzfHx1JiYhdShuKSl9ZnVuY3Rpb24gRnYoZSxuKXtjb25zdHtleGFjdDphLHN0YXR1czppLHByZWRpY2F0ZTpsLG11dGF0aW9uS2V5OnV9PWU7aWYodSl7aWYoIW4ub3B0aW9ucy5tdXRhdGlvbktleSlyZXR1cm4hMTtpZihhKXtpZihhYShuLm9wdGlvbnMubXV0YXRpb25LZXkpIT09YWEodSkpcmV0dXJuITF9ZWxzZSBpZighYW8obi5vcHRpb25zLm11dGF0aW9uS2V5LHUpKXJldHVybiExfXJldHVybiEoaSYmbi5zdGF0ZS5zdGF0dXMhPT1pfHxsJiYhbChuKSl9ZnVuY3Rpb24gVmgoZSxuKXtyZXR1cm4obj8ucXVlcnlLZXlIYXNoRm58fGFhKShlKX1mdW5jdGlvbiBhYShlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSwobixhKT0+VGgoYSk/T2JqZWN0LmtleXMoYSkuc29ydCgpLnJlZHVjZSgoaSxsKT0+KGlbbF09YVtsXSxpKSx7fSk6YSl9ZnVuY3Rpb24gYW8oZSxuKXtyZXR1cm4gZT09PW4/ITA6dHlwZW9mIGUhPXR5cGVvZiBuPyExOmUmJm4mJnR5cGVvZiBlPT0ib2JqZWN0IiYmdHlwZW9mIG49PSJvYmplY3QiP09iamVjdC5rZXlzKG4pLmV2ZXJ5KGE9PmFvKGVbYV0sblthXSkpOiExfXZhciB0MT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIEx3KGUsbil7aWYoZT09PW4pcmV0dXJuIGU7Y29uc3QgYT1CdihlKSYmQnYobik7aWYoIWEmJiEoVGgoZSkmJlRoKG4pKSlyZXR1cm4gbjtjb25zdCBsPShhP2U6T2JqZWN0LmtleXMoZSkpLmxlbmd0aCx1PWE/bjpPYmplY3Qua2V5cyhuKSxjPXUubGVuZ3RoLGQ9YT9uZXcgQXJyYXkoYyk6e307bGV0IGY9MDtmb3IobGV0IG09MDttPGM7bSsrKXtjb25zdCBiPWE/bTp1W21dLGg9ZVtiXSxTPW5bYl07aWYoaD09PVMpe2RbYl09aCwoYT9tPGw6dDEuY2FsbChlLGIpKSYmZisrO2NvbnRpbnVlfWlmKGg9PT1udWxsfHxTPT09bnVsbHx8dHlwZW9mIGghPSJvYmplY3QifHx0eXBlb2YgUyE9Im9iamVjdCIpe2RbYl09Uztjb250aW51ZX1jb25zdCBFPUx3KGgsUyk7ZFtiXT1FLEU9PT1oJiZmKyt9cmV0dXJuIGw9PT1jJiZmPT09bD9lOmR9ZnVuY3Rpb24gTWwoZSxuKXtpZighbnx8T2JqZWN0LmtleXMoZSkubGVuZ3RoIT09T2JqZWN0LmtleXMobikubGVuZ3RoKXJldHVybiExO2Zvcihjb25zdCBhIGluIGUpaWYoZVthXSE9PW5bYV0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gQnYoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPT09T2JqZWN0LmtleXMoZSkubGVuZ3RofWZ1bmN0aW9uIFRoKGUpe2lmKCFqdihlKSlyZXR1cm4hMTtjb25zdCBuPWUuY29uc3RydWN0b3I7aWYobj09PXZvaWQgMClyZXR1cm4hMDtjb25zdCBhPW4ucHJvdG90eXBlO3JldHVybiEoIWp2KGEpfHwhYS5oYXNPd25Qcm9wZXJ0eSgiaXNQcm90b3R5cGVPZiIpfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlKX1mdW5jdGlvbiBqdihlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09IltvYmplY3QgT2JqZWN0XSJ9ZnVuY3Rpb24gbjEoZSl7cmV0dXJuIG5ldyBQcm9taXNlKG49PntuYS5zZXRUaW1lb3V0KG4sZSl9KX1mdW5jdGlvbiB4aChlLG4sYSl7cmV0dXJuIHR5cGVvZiBhLnN0cnVjdHVyYWxTaGFyaW5nPT0iZnVuY3Rpb24iP2Euc3RydWN0dXJhbFNoYXJpbmcoZSxuKTphLnN0cnVjdHVyYWxTaGFyaW5nIT09ITE/THcoZSxuKTpufWZ1bmN0aW9uIHIxKGUsbixhPTApe2NvbnN0IGk9Wy4uLmUsbl07cmV0dXJuIGEmJmkubGVuZ3RoPmE/aS5zbGljZSgxKTppfWZ1bmN0aW9uIGExKGUsbixhPTApe2NvbnN0IGk9W24sLi4uZV07cmV0dXJuIGEmJmkubGVuZ3RoPmE/aS5zbGljZSgwLC0xKTppfXZhciBZaD1TeW1ib2woKTtmdW5jdGlvbiBEdyhlLG4pe3JldHVybiFlLnF1ZXJ5Rm4mJm4/LmluaXRpYWxQcm9taXNlPygpPT5uLmluaXRpYWxQcm9taXNlOiFlLnF1ZXJ5Rm58fGUucXVlcnlGbj09PVloPygpPT5Qcm9taXNlLnJlamVjdChuZXcgRXJyb3IoYE1pc3NpbmcgcXVlcnlGbjogJyR7ZS5xdWVyeUhhc2h9J2ApKTplLnF1ZXJ5Rm59ZnVuY3Rpb24gTXcoZSxuKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiI/ZSguLi5uKTohIWV9dmFyIGkxPWNsYXNzIGV4dGVuZHMgSmF7I2U7I3Q7I247Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuI249ZT0+e2lmKCFyYSYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIpe2NvbnN0IG49KCk9PmUoKTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLG4sITEpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLG4pfX19fW9uU3Vic2NyaWJlKCl7dGhpcy4jdHx8dGhpcy5zZXRFdmVudExpc3RlbmVyKHRoaXMuI24pfW9uVW5zdWJzY3JpYmUoKXt0aGlzLmhhc0xpc3RlbmVycygpfHwodGhpcy4jdD8uKCksdGhpcy4jdD12b2lkIDApfXNldEV2ZW50TGlzdGVuZXIoZSl7dGhpcy4jbj1lLHRoaXMuI3Q/LigpLHRoaXMuI3Q9ZShuPT57dHlwZW9mIG49PSJib29sZWFuIj90aGlzLnNldEZvY3VzZWQobik6dGhpcy5vbkZvY3VzKCl9KX1zZXRGb2N1c2VkKGUpe3RoaXMuI2UhPT1lJiYodGhpcy4jZT1lLHRoaXMub25Gb2N1cygpKX1vbkZvY3VzKCl7Y29uc3QgZT10aGlzLmlzRm9jdXNlZCgpO3RoaXMubGlzdGVuZXJzLmZvckVhY2gobj0+e24oZSl9KX1pc0ZvY3VzZWQoKXtyZXR1cm4gdHlwZW9mIHRoaXMuI2U9PSJib29sZWFuIj90aGlzLiNlOmdsb2JhbFRoaXMuZG9jdW1lbnQ/LnZpc2liaWxpdHlTdGF0ZSE9PSJoaWRkZW4ifX0sS2g9bmV3IGkxO2Z1bmN0aW9uIEFoKCl7bGV0IGUsbjtjb25zdCBhPW5ldyBQcm9taXNlKChsLHUpPT57ZT1sLG49dX0pO2Euc3RhdHVzPSJwZW5kaW5nIixhLmNhdGNoKCgpPT57fSk7ZnVuY3Rpb24gaShsKXtPYmplY3QuYXNzaWduKGEsbCksZGVsZXRlIGEucmVzb2x2ZSxkZWxldGUgYS5yZWplY3R9cmV0dXJuIGEucmVzb2x2ZT1sPT57aSh7c3RhdHVzOiJmdWxmaWxsZWQiLHZhbHVlOmx9KSxlKGwpfSxhLnJlamVjdD1sPT57aSh7c3RhdHVzOiJyZWplY3RlZCIscmVhc29uOmx9KSxuKGwpfSxhfXZhciBvMT1KTztmdW5jdGlvbiBsMSgpe2xldCBlPVtdLG49MCxhPWQ9PntkKCl9LGk9ZD0+e2QoKX0sbD1vMTtjb25zdCB1PWQ9PntuP2UucHVzaChkKTpsKCgpPT57YShkKX0pfSxjPSgpPT57Y29uc3QgZD1lO2U9W10sZC5sZW5ndGgmJmwoKCk9PntpKCgpPT57ZC5mb3JFYWNoKGY9PnthKGYpfSl9KX0pfTtyZXR1cm57YmF0Y2g6ZD0+e2xldCBmO24rKzt0cnl7Zj1kKCl9ZmluYWxseXtuLS0sbnx8YygpfXJldHVybiBmfSxiYXRjaENhbGxzOmQ9PiguLi5mKT0+e3UoKCk9PntkKC4uLmYpfSl9LHNjaGVkdWxlOnUsc2V0Tm90aWZ5RnVuY3Rpb246ZD0+e2E9ZH0sc2V0QmF0Y2hOb3RpZnlGdW5jdGlvbjpkPT57aT1kfSxzZXRTY2hlZHVsZXI6ZD0+e2w9ZH19fXZhciBwdD1sMSgpLHMxPWNsYXNzIGV4dGVuZHMgSmF7I2U9ITA7I3Q7I247Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuI249ZT0+e2lmKCFyYSYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIpe2NvbnN0IG49KCk9PmUoITApLGE9KCk9PmUoITEpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIixuLCExKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib2ZmbGluZSIsYSwhMSksKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25saW5lIixuKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib2ZmbGluZSIsYSl9fX19b25TdWJzY3JpYmUoKXt0aGlzLiN0fHx0aGlzLnNldEV2ZW50TGlzdGVuZXIodGhpcy4jbil9b25VbnN1YnNjcmliZSgpe3RoaXMuaGFzTGlzdGVuZXJzKCl8fCh0aGlzLiN0Py4oKSx0aGlzLiN0PXZvaWQgMCl9c2V0RXZlbnRMaXN0ZW5lcihlKXt0aGlzLiNuPWUsdGhpcy4jdD8uKCksdGhpcy4jdD1lKHRoaXMuc2V0T25saW5lLmJpbmQodGhpcykpfXNldE9ubGluZShlKXt0aGlzLiNlIT09ZSYmKHRoaXMuI2U9ZSx0aGlzLmxpc3RlbmVycy5mb3JFYWNoKGE9PnthKGUpfSkpfWlzT25saW5lKCl7cmV0dXJuIHRoaXMuI2V9fSxVbD1uZXcgczE7ZnVuY3Rpb24gdTEoZSl7cmV0dXJuIE1hdGgubWluKDFlMyoyKiplLDNlNCl9ZnVuY3Rpb24gVXcoZSl7cmV0dXJuKGU/PyJvbmxpbmUiKT09PSJvbmxpbmUiP1VsLmlzT25saW5lKCk6ITB9dmFyIF9oPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIoIkNhbmNlbGxlZEVycm9yIiksdGhpcy5yZXZlcnQ9ZT8ucmV2ZXJ0LHRoaXMuc2lsZW50PWU/LnNpbGVudH19O2Z1bmN0aW9uIEZ3KGUpe2xldCBuPSExLGE9MCxpO2NvbnN0IGw9QWgoKSx1PSgpPT5sLnN0YXR1cyE9PSJwZW5kaW5nIixjPVQ9PntpZighdSgpKXtjb25zdCBDPW5ldyBfaChUKTtTKEMpLGUub25DYW5jZWw/LihDKX19LGQ9KCk9PntuPSEwfSxmPSgpPT57bj0hMX0sbT0oKT0+S2guaXNGb2N1c2VkKCkmJihlLm5ldHdvcmtNb2RlPT09ImFsd2F5cyJ8fFVsLmlzT25saW5lKCkpJiZlLmNhblJ1bigpLGI9KCk9PlV3KGUubmV0d29ya01vZGUpJiZlLmNhblJ1bigpLGg9VD0+e3UoKXx8KGk/LigpLGwucmVzb2x2ZShUKSl9LFM9VD0+e3UoKXx8KGk/LigpLGwucmVqZWN0KFQpKX0sRT0oKT0+bmV3IFByb21pc2UoVD0+e2k9Qz0+eyh1KCl8fG0oKSkmJlQoQyl9LGUub25QYXVzZT8uKCl9KS50aGVuKCgpPT57aT12b2lkIDAsdSgpfHxlLm9uQ29udGludWU/LigpfSksXz0oKT0+e2lmKHUoKSlyZXR1cm47bGV0IFQ7Y29uc3QgQz1hPT09MD9lLmluaXRpYWxQcm9taXNlOnZvaWQgMDt0cnl7VD1DPz9lLmZuKCl9Y2F0Y2goeCl7VD1Qcm9taXNlLnJlamVjdCh4KX1Qcm9taXNlLnJlc29sdmUoVCkudGhlbihoKS5jYXRjaCh4PT57aWYodSgpKXJldHVybjtjb25zdCBOPWUucmV0cnk/PyhyYT8wOjMpLGs9ZS5yZXRyeURlbGF5Pz91MSxMPXR5cGVvZiBrPT0iZnVuY3Rpb24iP2soYSx4KTprLEY9Tj09PSEwfHx0eXBlb2YgTj09Im51bWJlciImJmE8Tnx8dHlwZW9mIE49PSJmdW5jdGlvbiImJk4oYSx4KTtpZihufHwhRil7Uyh4KTtyZXR1cm59YSsrLGUub25GYWlsPy4oYSx4KSxuMShMKS50aGVuKCgpPT5tKCk/dm9pZCAwOkUoKSkudGhlbigoKT0+e24/Uyh4KTpfKCl9KX0pfTtyZXR1cm57cHJvbWlzZTpsLHN0YXR1czooKT0+bC5zdGF0dXMsY2FuY2VsOmMsY29udGludWU6KCk9PihpPy4oKSxsKSxjYW5jZWxSZXRyeTpkLGNvbnRpbnVlUmV0cnk6ZixjYW5TdGFydDpiLHN0YXJ0OigpPT4oYigpP18oKTpFKCkudGhlbihfKSxsKX19dmFyIEJ3PWNsYXNzeyNlO2Rlc3Ryb3koKXt0aGlzLmNsZWFyR2NUaW1lb3V0KCl9c2NoZWR1bGVHYygpe3RoaXMuY2xlYXJHY1RpbWVvdXQoKSx2aCh0aGlzLmdjVGltZSkmJih0aGlzLiNlPW5hLnNldFRpbWVvdXQoKCk9Pnt0aGlzLm9wdGlvbmFsUmVtb3ZlKCl9LHRoaXMuZ2NUaW1lKSl9dXBkYXRlR2NUaW1lKGUpe3RoaXMuZ2NUaW1lPU1hdGgubWF4KHRoaXMuZ2NUaW1lfHwwLGU/PyhyYT8xLzA6MzAwKjFlMykpfWNsZWFyR2NUaW1lb3V0KCl7dGhpcy4jZSYmKG5hLmNsZWFyVGltZW91dCh0aGlzLiNlKSx0aGlzLiNlPXZvaWQgMCl9fSxjMT1jbGFzcyBleHRlbmRzIEJ3eyNlOyN0OyNuOyNhOyNyOyNvOyNsO2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy4jbD0hMSx0aGlzLiNvPWUuZGVmYXVsdE9wdGlvbnMsdGhpcy5zZXRPcHRpb25zKGUub3B0aW9ucyksdGhpcy5vYnNlcnZlcnM9W10sdGhpcy4jYT1lLmNsaWVudCx0aGlzLiNuPXRoaXMuI2EuZ2V0UXVlcnlDYWNoZSgpLHRoaXMucXVlcnlLZXk9ZS5xdWVyeUtleSx0aGlzLnF1ZXJ5SGFzaD1lLnF1ZXJ5SGFzaCx0aGlzLiNlPXp2KHRoaXMub3B0aW9ucyksdGhpcy5zdGF0ZT1lLnN0YXRlPz90aGlzLiNlLHRoaXMuc2NoZWR1bGVHYygpfWdldCBtZXRhKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5tZXRhfWdldCBwcm9taXNlKCl7cmV0dXJuIHRoaXMuI3I/LnByb21pc2V9c2V0T3B0aW9ucyhlKXtpZih0aGlzLm9wdGlvbnM9ey4uLnRoaXMuI28sLi4uZX0sdGhpcy51cGRhdGVHY1RpbWUodGhpcy5vcHRpb25zLmdjVGltZSksdGhpcy5zdGF0ZSYmdGhpcy5zdGF0ZS5kYXRhPT09dm9pZCAwKXtjb25zdCBuPXp2KHRoaXMub3B0aW9ucyk7bi5kYXRhIT09dm9pZCAwJiYodGhpcy5zZXREYXRhKG4uZGF0YSx7dXBkYXRlZEF0Om4uZGF0YVVwZGF0ZWRBdCxtYW51YWw6ITB9KSx0aGlzLiNlPW4pfX1vcHRpb25hbFJlbW92ZSgpeyF0aGlzLm9ic2VydmVycy5sZW5ndGgmJnRoaXMuc3RhdGUuZmV0Y2hTdGF0dXM9PT0iaWRsZSImJnRoaXMuI24ucmVtb3ZlKHRoaXMpfXNldERhdGEoZSxuKXtjb25zdCBhPXhoKHRoaXMuc3RhdGUuZGF0YSxlLHRoaXMub3B0aW9ucyk7cmV0dXJuIHRoaXMuI2koe2RhdGE6YSx0eXBlOiJzdWNjZXNzIixkYXRhVXBkYXRlZEF0Om4/LnVwZGF0ZWRBdCxtYW51YWw6bj8ubWFudWFsfSksYX1zZXRTdGF0ZShlLG4pe3RoaXMuI2koe3R5cGU6InNldFN0YXRlIixzdGF0ZTplLHNldFN0YXRlT3B0aW9uczpufSl9Y2FuY2VsKGUpe2NvbnN0IG49dGhpcy4jcj8ucHJvbWlzZTtyZXR1cm4gdGhpcy4jcj8uY2FuY2VsKGUpLG4/bi50aGVuKEN0KS5jYXRjaChDdCk6UHJvbWlzZS5yZXNvbHZlKCl9ZGVzdHJveSgpe3N1cGVyLmRlc3Ryb3koKSx0aGlzLmNhbmNlbCh7c2lsZW50OiEwfSl9cmVzZXQoKXt0aGlzLmRlc3Ryb3koKSx0aGlzLnNldFN0YXRlKHRoaXMuI2UpfWlzQWN0aXZlKCl7cmV0dXJuIHRoaXMub2JzZXJ2ZXJzLnNvbWUoZT0+Ym4oZS5vcHRpb25zLmVuYWJsZWQsdGhpcykhPT0hMSl9aXNEaXNhYmxlZCgpe3JldHVybiB0aGlzLmdldE9ic2VydmVyc0NvdW50KCk+MD8hdGhpcy5pc0FjdGl2ZSgpOnRoaXMub3B0aW9ucy5xdWVyeUZuPT09WWh8fHRoaXMuc3RhdGUuZGF0YVVwZGF0ZUNvdW50K3RoaXMuc3RhdGUuZXJyb3JVcGRhdGVDb3VudD09PTB9aXNTdGF0aWMoKXtyZXR1cm4gdGhpcy5nZXRPYnNlcnZlcnNDb3VudCgpPjA/dGhpcy5vYnNlcnZlcnMuc29tZShlPT5JcihlLm9wdGlvbnMuc3RhbGVUaW1lLHRoaXMpPT09InN0YXRpYyIpOiExfWlzU3RhbGUoKXtyZXR1cm4gdGhpcy5nZXRPYnNlcnZlcnNDb3VudCgpPjA/dGhpcy5vYnNlcnZlcnMuc29tZShlPT5lLmdldEN1cnJlbnRSZXN1bHQoKS5pc1N0YWxlKTp0aGlzLnN0YXRlLmRhdGE9PT12b2lkIDB8fHRoaXMuc3RhdGUuaXNJbnZhbGlkYXRlZH1pc1N0YWxlQnlUaW1lKGU9MCl7cmV0dXJuIHRoaXMuc3RhdGUuZGF0YT09PXZvaWQgMD8hMDplPT09InN0YXRpYyI/ITE6dGhpcy5zdGF0ZS5pc0ludmFsaWRhdGVkPyEwOiFPdyh0aGlzLnN0YXRlLmRhdGFVcGRhdGVkQXQsZSl9b25Gb2N1cygpe3RoaXMub2JzZXJ2ZXJzLmZpbmQobj0+bi5zaG91bGRGZXRjaE9uV2luZG93Rm9jdXMoKSk/LnJlZmV0Y2goe2NhbmNlbFJlZmV0Y2g6ITF9KSx0aGlzLiNyPy5jb250aW51ZSgpfW9uT25saW5lKCl7dGhpcy5vYnNlcnZlcnMuZmluZChuPT5uLnNob3VsZEZldGNoT25SZWNvbm5lY3QoKSk/LnJlZmV0Y2goe2NhbmNlbFJlZmV0Y2g6ITF9KSx0aGlzLiNyPy5jb250aW51ZSgpfWFkZE9ic2VydmVyKGUpe3RoaXMub2JzZXJ2ZXJzLmluY2x1ZGVzKGUpfHwodGhpcy5vYnNlcnZlcnMucHVzaChlKSx0aGlzLmNsZWFyR2NUaW1lb3V0KCksdGhpcy4jbi5ub3RpZnkoe3R5cGU6Im9ic2VydmVyQWRkZWQiLHF1ZXJ5OnRoaXMsb2JzZXJ2ZXI6ZX0pKX1yZW1vdmVPYnNlcnZlcihlKXt0aGlzLm9ic2VydmVycy5pbmNsdWRlcyhlKSYmKHRoaXMub2JzZXJ2ZXJzPXRoaXMub2JzZXJ2ZXJzLmZpbHRlcihuPT5uIT09ZSksdGhpcy5vYnNlcnZlcnMubGVuZ3RofHwodGhpcy4jciYmKHRoaXMuI2w/dGhpcy4jci5jYW5jZWwoe3JldmVydDohMH0pOnRoaXMuI3IuY2FuY2VsUmV0cnkoKSksdGhpcy5zY2hlZHVsZUdjKCkpLHRoaXMuI24ubm90aWZ5KHt0eXBlOiJvYnNlcnZlclJlbW92ZWQiLHF1ZXJ5OnRoaXMsb2JzZXJ2ZXI6ZX0pKX1nZXRPYnNlcnZlcnNDb3VudCgpe3JldHVybiB0aGlzLm9ic2VydmVycy5sZW5ndGh9aW52YWxpZGF0ZSgpe3RoaXMuc3RhdGUuaXNJbnZhbGlkYXRlZHx8dGhpcy4jaSh7dHlwZToiaW52YWxpZGF0ZSJ9KX1hc3luYyBmZXRjaChlLG4pe2lmKHRoaXMuc3RhdGUuZmV0Y2hTdGF0dXMhPT0iaWRsZSImJnRoaXMuI3I/LnN0YXR1cygpIT09InJlamVjdGVkIil7aWYodGhpcy5zdGF0ZS5kYXRhIT09dm9pZCAwJiZuPy5jYW5jZWxSZWZldGNoKXRoaXMuY2FuY2VsKHtzaWxlbnQ6ITB9KTtlbHNlIGlmKHRoaXMuI3IpcmV0dXJuIHRoaXMuI3IuY29udGludWVSZXRyeSgpLHRoaXMuI3IucHJvbWlzZX1pZihlJiZ0aGlzLnNldE9wdGlvbnMoZSksIXRoaXMub3B0aW9ucy5xdWVyeUZuKXtjb25zdCBkPXRoaXMub2JzZXJ2ZXJzLmZpbmQoZj0+Zi5vcHRpb25zLnF1ZXJ5Rm4pO2QmJnRoaXMuc2V0T3B0aW9ucyhkLm9wdGlvbnMpfWNvbnN0IGE9bmV3IEFib3J0Q29udHJvbGxlcixpPWQ9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwic2lnbmFsIix7ZW51bWVyYWJsZTohMCxnZXQ6KCk9Pih0aGlzLiNsPSEwLGEuc2lnbmFsKX0pfSxsPSgpPT57Y29uc3QgZD1Edyh0aGlzLm9wdGlvbnMsbiksbT0oKCk9Pntjb25zdCBiPXtjbGllbnQ6dGhpcy4jYSxxdWVyeUtleTp0aGlzLnF1ZXJ5S2V5LG1ldGE6dGhpcy5tZXRhfTtyZXR1cm4gaShiKSxifSkoKTtyZXR1cm4gdGhpcy4jbD0hMSx0aGlzLm9wdGlvbnMucGVyc2lzdGVyP3RoaXMub3B0aW9ucy5wZXJzaXN0ZXIoZCxtLHRoaXMpOmQobSl9LGM9KCgpPT57Y29uc3QgZD17ZmV0Y2hPcHRpb25zOm4sb3B0aW9uczp0aGlzLm9wdGlvbnMscXVlcnlLZXk6dGhpcy5xdWVyeUtleSxjbGllbnQ6dGhpcy4jYSxzdGF0ZTp0aGlzLnN0YXRlLGZldGNoRm46bH07cmV0dXJuIGkoZCksZH0pKCk7dGhpcy5vcHRpb25zLmJlaGF2aW9yPy5vbkZldGNoKGMsdGhpcyksdGhpcy4jdD10aGlzLnN0YXRlLCh0aGlzLnN0YXRlLmZldGNoU3RhdHVzPT09ImlkbGUifHx0aGlzLnN0YXRlLmZldGNoTWV0YSE9PWMuZmV0Y2hPcHRpb25zPy5tZXRhKSYmdGhpcy4jaSh7dHlwZToiZmV0Y2giLG1ldGE6Yy5mZXRjaE9wdGlvbnM/Lm1ldGF9KSx0aGlzLiNyPUZ3KHtpbml0aWFsUHJvbWlzZTpuPy5pbml0aWFsUHJvbWlzZSxmbjpjLmZldGNoRm4sb25DYW5jZWw6ZD0+e2QgaW5zdGFuY2VvZiBfaCYmZC5yZXZlcnQmJnRoaXMuc2V0U3RhdGUoey4uLnRoaXMuI3QsZmV0Y2hTdGF0dXM6ImlkbGUifSksYS5hYm9ydCgpfSxvbkZhaWw6KGQsZik9Pnt0aGlzLiNpKHt0eXBlOiJmYWlsZWQiLGZhaWx1cmVDb3VudDpkLGVycm9yOmZ9KX0sb25QYXVzZTooKT0+e3RoaXMuI2koe3R5cGU6InBhdXNlIn0pfSxvbkNvbnRpbnVlOigpPT57dGhpcy4jaSh7dHlwZToiY29udGludWUifSl9LHJldHJ5OmMub3B0aW9ucy5yZXRyeSxyZXRyeURlbGF5OmMub3B0aW9ucy5yZXRyeURlbGF5LG5ldHdvcmtNb2RlOmMub3B0aW9ucy5uZXR3b3JrTW9kZSxjYW5SdW46KCk9PiEwfSk7dHJ5e2NvbnN0IGQ9YXdhaXQgdGhpcy4jci5zdGFydCgpO2lmKGQ9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGAke3RoaXMucXVlcnlIYXNofSBkYXRhIGlzIHVuZGVmaW5lZGApO3JldHVybiB0aGlzLnNldERhdGEoZCksdGhpcy4jbi5jb25maWcub25TdWNjZXNzPy4oZCx0aGlzKSx0aGlzLiNuLmNvbmZpZy5vblNldHRsZWQ/LihkLHRoaXMuc3RhdGUuZXJyb3IsdGhpcyksZH1jYXRjaChkKXtpZihkIGluc3RhbmNlb2YgX2gpe2lmKGQuc2lsZW50KXJldHVybiB0aGlzLiNyLnByb21pc2U7aWYoZC5yZXZlcnQpe2lmKHRoaXMuc3RhdGUuZGF0YT09PXZvaWQgMCl0aHJvdyBkO3JldHVybiB0aGlzLnN0YXRlLmRhdGF9fXRocm93IHRoaXMuI2koe3R5cGU6ImVycm9yIixlcnJvcjpkfSksdGhpcy4jbi5jb25maWcub25FcnJvcj8uKGQsdGhpcyksdGhpcy4jbi5jb25maWcub25TZXR0bGVkPy4odGhpcy5zdGF0ZS5kYXRhLGQsdGhpcyksZH1maW5hbGx5e3RoaXMuc2NoZWR1bGVHYygpfX0jaShlKXtjb25zdCBuPWE9Pntzd2l0Y2goZS50eXBlKXtjYXNlImZhaWxlZCI6cmV0dXJuey4uLmEsZmV0Y2hGYWlsdXJlQ291bnQ6ZS5mYWlsdXJlQ291bnQsZmV0Y2hGYWlsdXJlUmVhc29uOmUuZXJyb3J9O2Nhc2UicGF1c2UiOnJldHVybnsuLi5hLGZldGNoU3RhdHVzOiJwYXVzZWQifTtjYXNlImNvbnRpbnVlIjpyZXR1cm57Li4uYSxmZXRjaFN0YXR1czoiZmV0Y2hpbmcifTtjYXNlImZldGNoIjpyZXR1cm57Li4uYSwuLi5qdyhhLmRhdGEsdGhpcy5vcHRpb25zKSxmZXRjaE1ldGE6ZS5tZXRhPz9udWxsfTtjYXNlInN1Y2Nlc3MiOmNvbnN0IGk9ey4uLmEsZGF0YTplLmRhdGEsZGF0YVVwZGF0ZUNvdW50OmEuZGF0YVVwZGF0ZUNvdW50KzEsZGF0YVVwZGF0ZWRBdDplLmRhdGFVcGRhdGVkQXQ/P0RhdGUubm93KCksZXJyb3I6bnVsbCxpc0ludmFsaWRhdGVkOiExLHN0YXR1czoic3VjY2VzcyIsLi4uIWUubWFudWFsJiZ7ZmV0Y2hTdGF0dXM6ImlkbGUiLGZldGNoRmFpbHVyZUNvdW50OjAsZmV0Y2hGYWlsdXJlUmVhc29uOm51bGx9fTtyZXR1cm4gdGhpcy4jdD1lLm1hbnVhbD9pOnZvaWQgMCxpO2Nhc2UiZXJyb3IiOmNvbnN0IGw9ZS5lcnJvcjtyZXR1cm57Li4uYSxlcnJvcjpsLGVycm9yVXBkYXRlQ291bnQ6YS5lcnJvclVwZGF0ZUNvdW50KzEsZXJyb3JVcGRhdGVkQXQ6RGF0ZS5ub3coKSxmZXRjaEZhaWx1cmVDb3VudDphLmZldGNoRmFpbHVyZUNvdW50KzEsZmV0Y2hGYWlsdXJlUmVhc29uOmwsZmV0Y2hTdGF0dXM6ImlkbGUiLHN0YXR1czoiZXJyb3IifTtjYXNlImludmFsaWRhdGUiOnJldHVybnsuLi5hLGlzSW52YWxpZGF0ZWQ6ITB9O2Nhc2Uic2V0U3RhdGUiOnJldHVybnsuLi5hLC4uLmUuc3RhdGV9fX07dGhpcy5zdGF0ZT1uKHRoaXMuc3RhdGUpLHB0LmJhdGNoKCgpPT57dGhpcy5vYnNlcnZlcnMuZm9yRWFjaChhPT57YS5vblF1ZXJ5VXBkYXRlKCl9KSx0aGlzLiNuLm5vdGlmeSh7cXVlcnk6dGhpcyx0eXBlOiJ1cGRhdGVkIixhY3Rpb246ZX0pfSl9fTtmdW5jdGlvbiBqdyhlLG4pe3JldHVybntmZXRjaEZhaWx1cmVDb3VudDowLGZldGNoRmFpbHVyZVJlYXNvbjpudWxsLGZldGNoU3RhdHVzOlV3KG4ubmV0d29ya01vZGUpPyJmZXRjaGluZyI6InBhdXNlZCIsLi4uZT09PXZvaWQgMCYme2Vycm9yOm51bGwsc3RhdHVzOiJwZW5kaW5nIn19fWZ1bmN0aW9uIHp2KGUpe2NvbnN0IG49dHlwZW9mIGUuaW5pdGlhbERhdGE9PSJmdW5jdGlvbiI/ZS5pbml0aWFsRGF0YSgpOmUuaW5pdGlhbERhdGEsYT1uIT09dm9pZCAwLGk9YT90eXBlb2YgZS5pbml0aWFsRGF0YVVwZGF0ZWRBdD09ImZ1bmN0aW9uIj9lLmluaXRpYWxEYXRhVXBkYXRlZEF0KCk6ZS5pbml0aWFsRGF0YVVwZGF0ZWRBdDowO3JldHVybntkYXRhOm4sZGF0YVVwZGF0ZUNvdW50OjAsZGF0YVVwZGF0ZWRBdDphP2k/P0RhdGUubm93KCk6MCxlcnJvcjpudWxsLGVycm9yVXBkYXRlQ291bnQ6MCxlcnJvclVwZGF0ZWRBdDowLGZldGNoRmFpbHVyZUNvdW50OjAsZmV0Y2hGYWlsdXJlUmVhc29uOm51bGwsZmV0Y2hNZXRhOm51bGwsaXNJbnZhbGlkYXRlZDohMSxzdGF0dXM6YT8ic3VjY2VzcyI6InBlbmRpbmciLGZldGNoU3RhdHVzOiJpZGxlIn19dmFyIGQxPWNsYXNzIGV4dGVuZHMgSmF7Y29uc3RydWN0b3IoZSxuKXtzdXBlcigpLHRoaXMub3B0aW9ucz1uLHRoaXMuI2U9ZSx0aGlzLiNpPW51bGwsdGhpcy4jbD1BaCgpLHRoaXMuYmluZE1ldGhvZHMoKSx0aGlzLnNldE9wdGlvbnMobil9I2U7I3Q9dm9pZCAwOyNuPXZvaWQgMDsjYT12b2lkIDA7I3I7I287I2w7I2k7I207I3A7I2Y7I3U7I2M7I3M7I2c9bmV3IFNldDtiaW5kTWV0aG9kcygpe3RoaXMucmVmZXRjaD10aGlzLnJlZmV0Y2guYmluZCh0aGlzKX1vblN1YnNjcmliZSgpe3RoaXMubGlzdGVuZXJzLnNpemU9PT0xJiYodGhpcy4jdC5hZGRPYnNlcnZlcih0aGlzKSxxdih0aGlzLiN0LHRoaXMub3B0aW9ucyk/dGhpcy4jZCgpOnRoaXMudXBkYXRlUmVzdWx0KCksdGhpcy4jRSgpKX1vblVuc3Vic2NyaWJlKCl7dGhpcy5oYXNMaXN0ZW5lcnMoKXx8dGhpcy5kZXN0cm95KCl9c2hvdWxkRmV0Y2hPblJlY29ubmVjdCgpe3JldHVybiBSaCh0aGlzLiN0LHRoaXMub3B0aW9ucyx0aGlzLm9wdGlvbnMucmVmZXRjaE9uUmVjb25uZWN0KX1zaG91bGRGZXRjaE9uV2luZG93Rm9jdXMoKXtyZXR1cm4gUmgodGhpcy4jdCx0aGlzLm9wdGlvbnMsdGhpcy5vcHRpb25zLnJlZmV0Y2hPbldpbmRvd0ZvY3VzKX1kZXN0cm95KCl7dGhpcy5saXN0ZW5lcnM9bmV3IFNldCx0aGlzLiNTKCksdGhpcy4jdigpLHRoaXMuI3QucmVtb3ZlT2JzZXJ2ZXIodGhpcyl9c2V0T3B0aW9ucyhlKXtjb25zdCBuPXRoaXMub3B0aW9ucyxhPXRoaXMuI3Q7aWYodGhpcy5vcHRpb25zPXRoaXMuI2UuZGVmYXVsdFF1ZXJ5T3B0aW9ucyhlKSx0aGlzLm9wdGlvbnMuZW5hYmxlZCE9PXZvaWQgMCYmdHlwZW9mIHRoaXMub3B0aW9ucy5lbmFibGVkIT0iYm9vbGVhbiImJnR5cGVvZiB0aGlzLm9wdGlvbnMuZW5hYmxlZCE9ImZ1bmN0aW9uIiYmdHlwZW9mIGJuKHRoaXMub3B0aW9ucy5lbmFibGVkLHRoaXMuI3QpIT0iYm9vbGVhbiIpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBlbmFibGVkIHRvIGJlIGEgYm9vbGVhbiBvciBhIGNhbGxiYWNrIHRoYXQgcmV0dXJucyBhIGJvb2xlYW4iKTt0aGlzLiNUKCksdGhpcy4jdC5zZXRPcHRpb25zKHRoaXMub3B0aW9ucyksbi5fZGVmYXVsdGVkJiYhTWwodGhpcy5vcHRpb25zLG4pJiZ0aGlzLiNlLmdldFF1ZXJ5Q2FjaGUoKS5ub3RpZnkoe3R5cGU6Im9ic2VydmVyT3B0aW9uc1VwZGF0ZWQiLHF1ZXJ5OnRoaXMuI3Qsb2JzZXJ2ZXI6dGhpc30pO2NvbnN0IGk9dGhpcy5oYXNMaXN0ZW5lcnMoKTtpJiZQdih0aGlzLiN0LGEsdGhpcy5vcHRpb25zLG4pJiZ0aGlzLiNkKCksdGhpcy51cGRhdGVSZXN1bHQoKSxpJiYodGhpcy4jdCE9PWF8fGJuKHRoaXMub3B0aW9ucy5lbmFibGVkLHRoaXMuI3QpIT09Ym4obi5lbmFibGVkLHRoaXMuI3QpfHxJcih0aGlzLm9wdGlvbnMuc3RhbGVUaW1lLHRoaXMuI3QpIT09SXIobi5zdGFsZVRpbWUsdGhpcy4jdCkpJiZ0aGlzLiNoKCk7Y29uc3QgbD10aGlzLiNiKCk7aSYmKHRoaXMuI3QhPT1hfHxibih0aGlzLm9wdGlvbnMuZW5hYmxlZCx0aGlzLiN0KSE9PWJuKG4uZW5hYmxlZCx0aGlzLiN0KXx8bCE9PXRoaXMuI3MpJiZ0aGlzLiN5KGwpfWdldE9wdGltaXN0aWNSZXN1bHQoZSl7Y29uc3Qgbj10aGlzLiNlLmdldFF1ZXJ5Q2FjaGUoKS5idWlsZCh0aGlzLiNlLGUpLGE9dGhpcy5jcmVhdGVSZXN1bHQobixlKTtyZXR1cm4gZjEodGhpcyxhKSYmKHRoaXMuI2E9YSx0aGlzLiNvPXRoaXMub3B0aW9ucyx0aGlzLiNyPXRoaXMuI3Quc3RhdGUpLGF9Z2V0Q3VycmVudFJlc3VsdCgpe3JldHVybiB0aGlzLiNhfXRyYWNrUmVzdWx0KGUsbil7cmV0dXJuIG5ldyBQcm94eShlLHtnZXQ6KGEsaSk9Pih0aGlzLnRyYWNrUHJvcChpKSxuPy4oaSksaT09PSJwcm9taXNlIiYmIXRoaXMub3B0aW9ucy5leHBlcmltZW50YWxfcHJlZmV0Y2hJblJlbmRlciYmdGhpcy4jbC5zdGF0dXM9PT0icGVuZGluZyImJnRoaXMuI2wucmVqZWN0KG5ldyBFcnJvcigiZXhwZXJpbWVudGFsX3ByZWZldGNoSW5SZW5kZXIgZmVhdHVyZSBmbGFnIGlzIG5vdCBlbmFibGVkIikpLFJlZmxlY3QuZ2V0KGEsaSkpfSl9dHJhY2tQcm9wKGUpe3RoaXMuI2cuYWRkKGUpfWdldEN1cnJlbnRRdWVyeSgpe3JldHVybiB0aGlzLiN0fXJlZmV0Y2goey4uLmV9PXt9KXtyZXR1cm4gdGhpcy5mZXRjaCh7Li4uZX0pfWZldGNoT3B0aW1pc3RpYyhlKXtjb25zdCBuPXRoaXMuI2UuZGVmYXVsdFF1ZXJ5T3B0aW9ucyhlKSxhPXRoaXMuI2UuZ2V0UXVlcnlDYWNoZSgpLmJ1aWxkKHRoaXMuI2Usbik7cmV0dXJuIGEuZmV0Y2goKS50aGVuKCgpPT50aGlzLmNyZWF0ZVJlc3VsdChhLG4pKX1mZXRjaChlKXtyZXR1cm4gdGhpcy4jZCh7Li4uZSxjYW5jZWxSZWZldGNoOmUuY2FuY2VsUmVmZXRjaD8/ITB9KS50aGVuKCgpPT4odGhpcy51cGRhdGVSZXN1bHQoKSx0aGlzLiNhKSl9I2QoZSl7dGhpcy4jVCgpO2xldCBuPXRoaXMuI3QuZmV0Y2godGhpcy5vcHRpb25zLGUpO3JldHVybiBlPy50aHJvd09uRXJyb3J8fChuPW4uY2F0Y2goQ3QpKSxufSNoKCl7dGhpcy4jUygpO2NvbnN0IGU9SXIodGhpcy5vcHRpb25zLnN0YWxlVGltZSx0aGlzLiN0KTtpZihyYXx8dGhpcy4jYS5pc1N0YWxlfHwhdmgoZSkpcmV0dXJuO2NvbnN0IGE9T3codGhpcy4jYS5kYXRhVXBkYXRlZEF0LGUpKzE7dGhpcy4jdT1uYS5zZXRUaW1lb3V0KCgpPT57dGhpcy4jYS5pc1N0YWxlfHx0aGlzLnVwZGF0ZVJlc3VsdCgpfSxhKX0jYigpe3JldHVybih0eXBlb2YgdGhpcy5vcHRpb25zLnJlZmV0Y2hJbnRlcnZhbD09ImZ1bmN0aW9uIj90aGlzLm9wdGlvbnMucmVmZXRjaEludGVydmFsKHRoaXMuI3QpOnRoaXMub3B0aW9ucy5yZWZldGNoSW50ZXJ2YWwpPz8hMX0jeShlKXt0aGlzLiN2KCksdGhpcy4jcz1lLCEocmF8fGJuKHRoaXMub3B0aW9ucy5lbmFibGVkLHRoaXMuI3QpPT09ITF8fCF2aCh0aGlzLiNzKXx8dGhpcy4jcz09PTApJiYodGhpcy4jYz1uYS5zZXRJbnRlcnZhbCgoKT0+eyh0aGlzLm9wdGlvbnMucmVmZXRjaEludGVydmFsSW5CYWNrZ3JvdW5kfHxLaC5pc0ZvY3VzZWQoKSkmJnRoaXMuI2QoKX0sdGhpcy4jcykpfSNFKCl7dGhpcy4jaCgpLHRoaXMuI3kodGhpcy4jYigpKX0jUygpe3RoaXMuI3UmJihuYS5jbGVhclRpbWVvdXQodGhpcy4jdSksdGhpcy4jdT12b2lkIDApfSN2KCl7dGhpcy4jYyYmKG5hLmNsZWFySW50ZXJ2YWwodGhpcy4jYyksdGhpcy4jYz12b2lkIDApfWNyZWF0ZVJlc3VsdChlLG4pe2NvbnN0IGE9dGhpcy4jdCxpPXRoaXMub3B0aW9ucyxsPXRoaXMuI2EsdT10aGlzLiNyLGM9dGhpcy4jbyxmPWUhPT1hP2Uuc3RhdGU6dGhpcy4jbix7c3RhdGU6bX09ZTtsZXQgYj17Li4ubX0saD0hMSxTO2lmKG4uX29wdGltaXN0aWNSZXN1bHRzKXtjb25zdCBZPXRoaXMuaGFzTGlzdGVuZXJzKCksej0hWSYmcXYoZSxuKSxVPVkmJlB2KGUsYSxuLGkpOyh6fHxVKSYmKGI9ey4uLmIsLi4uancobS5kYXRhLGUub3B0aW9ucyl9KSxuLl9vcHRpbWlzdGljUmVzdWx0cz09PSJpc1Jlc3RvcmluZyImJihiLmZldGNoU3RhdHVzPSJpZGxlIil9bGV0e2Vycm9yOkUsZXJyb3JVcGRhdGVkQXQ6XyxzdGF0dXM6VH09YjtTPWIuZGF0YTtsZXQgQz0hMTtpZihuLnBsYWNlaG9sZGVyRGF0YSE9PXZvaWQgMCYmUz09PXZvaWQgMCYmVD09PSJwZW5kaW5nIil7bGV0IFk7bD8uaXNQbGFjZWhvbGRlckRhdGEmJm4ucGxhY2Vob2xkZXJEYXRhPT09Yz8ucGxhY2Vob2xkZXJEYXRhPyhZPWwuZGF0YSxDPSEwKTpZPXR5cGVvZiBuLnBsYWNlaG9sZGVyRGF0YT09ImZ1bmN0aW9uIj9uLnBsYWNlaG9sZGVyRGF0YSh0aGlzLiNmPy5zdGF0ZS5kYXRhLHRoaXMuI2YpOm4ucGxhY2Vob2xkZXJEYXRhLFkhPT12b2lkIDAmJihUPSJzdWNjZXNzIixTPXhoKGw/LmRhdGEsWSxuKSxoPSEwKX1pZihuLnNlbGVjdCYmUyE9PXZvaWQgMCYmIUMpaWYobCYmUz09PXU/LmRhdGEmJm4uc2VsZWN0PT09dGhpcy4jbSlTPXRoaXMuI3A7ZWxzZSB0cnl7dGhpcy4jbT1uLnNlbGVjdCxTPW4uc2VsZWN0KFMpLFM9eGgobD8uZGF0YSxTLG4pLHRoaXMuI3A9Uyx0aGlzLiNpPW51bGx9Y2F0Y2goWSl7dGhpcy4jaT1ZfXRoaXMuI2kmJihFPXRoaXMuI2ksUz10aGlzLiNwLF89RGF0ZS5ub3coKSxUPSJlcnJvciIpO2NvbnN0IHg9Yi5mZXRjaFN0YXR1cz09PSJmZXRjaGluZyIsTj1UPT09InBlbmRpbmciLGs9VD09PSJlcnJvciIsTD1OJiZ4LEY9UyE9PXZvaWQgMCxNPXtzdGF0dXM6VCxmZXRjaFN0YXR1czpiLmZldGNoU3RhdHVzLGlzUGVuZGluZzpOLGlzU3VjY2VzczpUPT09InN1Y2Nlc3MiLGlzRXJyb3I6ayxpc0luaXRpYWxMb2FkaW5nOkwsaXNMb2FkaW5nOkwsZGF0YTpTLGRhdGFVcGRhdGVkQXQ6Yi5kYXRhVXBkYXRlZEF0LGVycm9yOkUsZXJyb3JVcGRhdGVkQXQ6XyxmYWlsdXJlQ291bnQ6Yi5mZXRjaEZhaWx1cmVDb3VudCxmYWlsdXJlUmVhc29uOmIuZmV0Y2hGYWlsdXJlUmVhc29uLGVycm9yVXBkYXRlQ291bnQ6Yi5lcnJvclVwZGF0ZUNvdW50LGlzRmV0Y2hlZDpiLmRhdGFVcGRhdGVDb3VudD4wfHxiLmVycm9yVXBkYXRlQ291bnQ+MCxpc0ZldGNoZWRBZnRlck1vdW50OmIuZGF0YVVwZGF0ZUNvdW50PmYuZGF0YVVwZGF0ZUNvdW50fHxiLmVycm9yVXBkYXRlQ291bnQ+Zi5lcnJvclVwZGF0ZUNvdW50LGlzRmV0Y2hpbmc6eCxpc1JlZmV0Y2hpbmc6eCYmIU4saXNMb2FkaW5nRXJyb3I6ayYmIUYsaXNQYXVzZWQ6Yi5mZXRjaFN0YXR1cz09PSJwYXVzZWQiLGlzUGxhY2Vob2xkZXJEYXRhOmgsaXNSZWZldGNoRXJyb3I6ayYmRixpc1N0YWxlOldoKGUsbikscmVmZXRjaDp0aGlzLnJlZmV0Y2gscHJvbWlzZTp0aGlzLiNsLGlzRW5hYmxlZDpibihuLmVuYWJsZWQsZSkhPT0hMX07aWYodGhpcy5vcHRpb25zLmV4cGVyaW1lbnRhbF9wcmVmZXRjaEluUmVuZGVyKXtjb25zdCBZPSQ9PntNLnN0YXR1cz09PSJlcnJvciI/JC5yZWplY3QoTS5lcnJvcik6TS5kYXRhIT09dm9pZCAwJiYkLnJlc29sdmUoTS5kYXRhKX0sej0oKT0+e2NvbnN0ICQ9dGhpcy4jbD1NLnByb21pc2U9QWgoKTtZKCQpfSxVPXRoaXMuI2w7c3dpdGNoKFUuc3RhdHVzKXtjYXNlInBlbmRpbmciOmUucXVlcnlIYXNoPT09YS5xdWVyeUhhc2gmJlkoVSk7YnJlYWs7Y2FzZSJmdWxmaWxsZWQiOihNLnN0YXR1cz09PSJlcnJvciJ8fE0uZGF0YSE9PVUudmFsdWUpJiZ6KCk7YnJlYWs7Y2FzZSJyZWplY3RlZCI6KE0uc3RhdHVzIT09ImVycm9yInx8TS5lcnJvciE9PVUucmVhc29uKSYmeigpO2JyZWFrfX1yZXR1cm4gTX11cGRhdGVSZXN1bHQoKXtjb25zdCBlPXRoaXMuI2Esbj10aGlzLmNyZWF0ZVJlc3VsdCh0aGlzLiN0LHRoaXMub3B0aW9ucyk7aWYodGhpcy4jcj10aGlzLiN0LnN0YXRlLHRoaXMuI289dGhpcy5vcHRpb25zLHRoaXMuI3IuZGF0YSE9PXZvaWQgMCYmKHRoaXMuI2Y9dGhpcy4jdCksTWwobixlKSlyZXR1cm47dGhpcy4jYT1uO2NvbnN0IGE9KCk9PntpZighZSlyZXR1cm4hMDtjb25zdHtub3RpZnlPbkNoYW5nZVByb3BzOml9PXRoaXMub3B0aW9ucyxsPXR5cGVvZiBpPT0iZnVuY3Rpb24iP2koKTppO2lmKGw9PT0iYWxsInx8IWwmJiF0aGlzLiNnLnNpemUpcmV0dXJuITA7Y29uc3QgdT1uZXcgU2V0KGw/P3RoaXMuI2cpO3JldHVybiB0aGlzLm9wdGlvbnMudGhyb3dPbkVycm9yJiZ1LmFkZCgiZXJyb3IiKSxPYmplY3Qua2V5cyh0aGlzLiNhKS5zb21lKGM9Pntjb25zdCBkPWM7cmV0dXJuIHRoaXMuI2FbZF0hPT1lW2RdJiZ1LmhhcyhkKX0pfTt0aGlzLiN4KHtsaXN0ZW5lcnM6YSgpfSl9I1QoKXtjb25zdCBlPXRoaXMuI2UuZ2V0UXVlcnlDYWNoZSgpLmJ1aWxkKHRoaXMuI2UsdGhpcy5vcHRpb25zKTtpZihlPT09dGhpcy4jdClyZXR1cm47Y29uc3Qgbj10aGlzLiN0O3RoaXMuI3Q9ZSx0aGlzLiNuPWUuc3RhdGUsdGhpcy5oYXNMaXN0ZW5lcnMoKSYmKG4/LnJlbW92ZU9ic2VydmVyKHRoaXMpLGUuYWRkT2JzZXJ2ZXIodGhpcykpfW9uUXVlcnlVcGRhdGUoKXt0aGlzLnVwZGF0ZVJlc3VsdCgpLHRoaXMuaGFzTGlzdGVuZXJzKCkmJnRoaXMuI0UoKX0jeChlKXtwdC5iYXRjaCgoKT0+e2UubGlzdGVuZXJzJiZ0aGlzLmxpc3RlbmVycy5mb3JFYWNoKG49PntuKHRoaXMuI2EpfSksdGhpcy4jZS5nZXRRdWVyeUNhY2hlKCkubm90aWZ5KHtxdWVyeTp0aGlzLiN0LHR5cGU6Im9ic2VydmVyUmVzdWx0c1VwZGF0ZWQifSl9KX19O2Z1bmN0aW9uIHAxKGUsbil7cmV0dXJuIGJuKG4uZW5hYmxlZCxlKSE9PSExJiZlLnN0YXRlLmRhdGE9PT12b2lkIDAmJiEoZS5zdGF0ZS5zdGF0dXM9PT0iZXJyb3IiJiZuLnJldHJ5T25Nb3VudD09PSExKX1mdW5jdGlvbiBxdihlLG4pe3JldHVybiBwMShlLG4pfHxlLnN0YXRlLmRhdGEhPT12b2lkIDAmJlJoKGUsbixuLnJlZmV0Y2hPbk1vdW50KX1mdW5jdGlvbiBSaChlLG4sYSl7aWYoYm4obi5lbmFibGVkLGUpIT09ITEmJklyKG4uc3RhbGVUaW1lLGUpIT09InN0YXRpYyIpe2NvbnN0IGk9dHlwZW9mIGE9PSJmdW5jdGlvbiI/YShlKTphO3JldHVybiBpPT09ImFsd2F5cyJ8fGkhPT0hMSYmV2goZSxuKX1yZXR1cm4hMX1mdW5jdGlvbiBQdihlLG4sYSxpKXtyZXR1cm4oZSE9PW58fGJuKGkuZW5hYmxlZCxlKT09PSExKSYmKCFhLnN1c3BlbnNlfHxlLnN0YXRlLnN0YXR1cyE9PSJlcnJvciIpJiZXaChlLGEpfWZ1bmN0aW9uIFdoKGUsbil7cmV0dXJuIGJuKG4uZW5hYmxlZCxlKSE9PSExJiZlLmlzU3RhbGVCeVRpbWUoSXIobi5zdGFsZVRpbWUsZSkpfWZ1bmN0aW9uIGYxKGUsbil7cmV0dXJuIU1sKGUuZ2V0Q3VycmVudFJlc3VsdCgpLG4pfWZ1bmN0aW9uIEd2KGUpe3JldHVybntvbkZldGNoOihuLGEpPT57Y29uc3QgaT1uLm9wdGlvbnMsbD1uLmZldGNoT3B0aW9ucz8ubWV0YT8uZmV0Y2hNb3JlPy5kaXJlY3Rpb24sdT1uLnN0YXRlLmRhdGE/LnBhZ2VzfHxbXSxjPW4uc3RhdGUuZGF0YT8ucGFnZVBhcmFtc3x8W107bGV0IGQ9e3BhZ2VzOltdLHBhZ2VQYXJhbXM6W119LGY9MDtjb25zdCBtPWFzeW5jKCk9PntsZXQgYj0hMTtjb25zdCBoPV89PntPYmplY3QuZGVmaW5lUHJvcGVydHkoXywic2lnbmFsIix7ZW51bWVyYWJsZTohMCxnZXQ6KCk9PihuLnNpZ25hbC5hYm9ydGVkP2I9ITA6bi5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCgpPT57Yj0hMH0pLG4uc2lnbmFsKX0pfSxTPUR3KG4ub3B0aW9ucyxuLmZldGNoT3B0aW9ucyksRT1hc3luYyhfLFQsQyk9PntpZihiKXJldHVybiBQcm9taXNlLnJlamVjdCgpO2lmKFQ9PW51bGwmJl8ucGFnZXMubGVuZ3RoKXJldHVybiBQcm9taXNlLnJlc29sdmUoXyk7Y29uc3QgTj0oKCk9Pntjb25zdCBSPXtjbGllbnQ6bi5jbGllbnQscXVlcnlLZXk6bi5xdWVyeUtleSxwYWdlUGFyYW06VCxkaXJlY3Rpb246Qz8iYmFja3dhcmQiOiJmb3J3YXJkIixtZXRhOm4ub3B0aW9ucy5tZXRhfTtyZXR1cm4gaChSKSxSfSkoKSxrPWF3YWl0IFMoTikse21heFBhZ2VzOkx9PW4ub3B0aW9ucyxGPUM/YTE6cjE7cmV0dXJue3BhZ2VzOkYoXy5wYWdlcyxrLEwpLHBhZ2VQYXJhbXM6RihfLnBhZ2VQYXJhbXMsVCxMKX19O2lmKGwmJnUubGVuZ3RoKXtjb25zdCBfPWw9PT0iYmFja3dhcmQiLFQ9Xz9nMTpIdixDPXtwYWdlczp1LHBhZ2VQYXJhbXM6Y30seD1UKGksQyk7ZD1hd2FpdCBFKEMseCxfKX1lbHNle2NvbnN0IF89ZT8/dS5sZW5ndGg7ZG97Y29uc3QgVD1mPT09MD9jWzBdPz9pLmluaXRpYWxQYWdlUGFyYW06SHYoaSxkKTtpZihmPjAmJlQ9PW51bGwpYnJlYWs7ZD1hd2FpdCBFKGQsVCksZisrfXdoaWxlKGY8Xyl9cmV0dXJuIGR9O24ub3B0aW9ucy5wZXJzaXN0ZXI/bi5mZXRjaEZuPSgpPT5uLm9wdGlvbnMucGVyc2lzdGVyPy4obSx7Y2xpZW50Om4uY2xpZW50LHF1ZXJ5S2V5Om4ucXVlcnlLZXksbWV0YTpuLm9wdGlvbnMubWV0YSxzaWduYWw6bi5zaWduYWx9LGEpOm4uZmV0Y2hGbj1tfX19ZnVuY3Rpb24gSHYoZSx7cGFnZXM6bixwYWdlUGFyYW1zOmF9KXtjb25zdCBpPW4ubGVuZ3RoLTE7cmV0dXJuIG4ubGVuZ3RoPjA/ZS5nZXROZXh0UGFnZVBhcmFtKG5baV0sbixhW2ldLGEpOnZvaWQgMH1mdW5jdGlvbiBnMShlLHtwYWdlczpuLHBhZ2VQYXJhbXM6YX0pe3JldHVybiBuLmxlbmd0aD4wP2UuZ2V0UHJldmlvdXNQYWdlUGFyYW0/LihuWzBdLG4sYVswXSxhKTp2b2lkIDB9dmFyIG0xPWNsYXNzIGV4dGVuZHMgQnd7I2U7I3Q7I247I2E7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLiNlPWUuY2xpZW50LHRoaXMubXV0YXRpb25JZD1lLm11dGF0aW9uSWQsdGhpcy4jbj1lLm11dGF0aW9uQ2FjaGUsdGhpcy4jdD1bXSx0aGlzLnN0YXRlPWUuc3RhdGV8fHp3KCksdGhpcy5zZXRPcHRpb25zKGUub3B0aW9ucyksdGhpcy5zY2hlZHVsZUdjKCl9c2V0T3B0aW9ucyhlKXt0aGlzLm9wdGlvbnM9ZSx0aGlzLnVwZGF0ZUdjVGltZSh0aGlzLm9wdGlvbnMuZ2NUaW1lKX1nZXQgbWV0YSgpe3JldHVybiB0aGlzLm9wdGlvbnMubWV0YX1hZGRPYnNlcnZlcihlKXt0aGlzLiN0LmluY2x1ZGVzKGUpfHwodGhpcy4jdC5wdXNoKGUpLHRoaXMuY2xlYXJHY1RpbWVvdXQoKSx0aGlzLiNuLm5vdGlmeSh7dHlwZToib2JzZXJ2ZXJBZGRlZCIsbXV0YXRpb246dGhpcyxvYnNlcnZlcjplfSkpfXJlbW92ZU9ic2VydmVyKGUpe3RoaXMuI3Q9dGhpcy4jdC5maWx0ZXIobj0+biE9PWUpLHRoaXMuc2NoZWR1bGVHYygpLHRoaXMuI24ubm90aWZ5KHt0eXBlOiJvYnNlcnZlclJlbW92ZWQiLG11dGF0aW9uOnRoaXMsb2JzZXJ2ZXI6ZX0pfW9wdGlvbmFsUmVtb3ZlKCl7dGhpcy4jdC5sZW5ndGh8fCh0aGlzLnN0YXRlLnN0YXR1cz09PSJwZW5kaW5nIj90aGlzLnNjaGVkdWxlR2MoKTp0aGlzLiNuLnJlbW92ZSh0aGlzKSl9Y29udGludWUoKXtyZXR1cm4gdGhpcy4jYT8uY29udGludWUoKT8/dGhpcy5leGVjdXRlKHRoaXMuc3RhdGUudmFyaWFibGVzKX1hc3luYyBleGVjdXRlKGUpe2NvbnN0IG49KCk9Pnt0aGlzLiNyKHt0eXBlOiJjb250aW51ZSJ9KX0sYT17Y2xpZW50OnRoaXMuI2UsbWV0YTp0aGlzLm9wdGlvbnMubWV0YSxtdXRhdGlvbktleTp0aGlzLm9wdGlvbnMubXV0YXRpb25LZXl9O3RoaXMuI2E9Rncoe2ZuOigpPT50aGlzLm9wdGlvbnMubXV0YXRpb25Gbj90aGlzLm9wdGlvbnMubXV0YXRpb25GbihlLGEpOlByb21pc2UucmVqZWN0KG5ldyBFcnJvcigiTm8gbXV0YXRpb25GbiBmb3VuZCIpKSxvbkZhaWw6KHUsYyk9Pnt0aGlzLiNyKHt0eXBlOiJmYWlsZWQiLGZhaWx1cmVDb3VudDp1LGVycm9yOmN9KX0sb25QYXVzZTooKT0+e3RoaXMuI3Ioe3R5cGU6InBhdXNlIn0pfSxvbkNvbnRpbnVlOm4scmV0cnk6dGhpcy5vcHRpb25zLnJldHJ5Pz8wLHJldHJ5RGVsYXk6dGhpcy5vcHRpb25zLnJldHJ5RGVsYXksbmV0d29ya01vZGU6dGhpcy5vcHRpb25zLm5ldHdvcmtNb2RlLGNhblJ1bjooKT0+dGhpcy4jbi5jYW5SdW4odGhpcyl9KTtjb25zdCBpPXRoaXMuc3RhdGUuc3RhdHVzPT09InBlbmRpbmciLGw9IXRoaXMuI2EuY2FuU3RhcnQoKTt0cnl7aWYoaSluKCk7ZWxzZXt0aGlzLiNyKHt0eXBlOiJwZW5kaW5nIix2YXJpYWJsZXM6ZSxpc1BhdXNlZDpsfSksYXdhaXQgdGhpcy4jbi5jb25maWcub25NdXRhdGU/LihlLHRoaXMsYSk7Y29uc3QgYz1hd2FpdCB0aGlzLm9wdGlvbnMub25NdXRhdGU/LihlLGEpO2MhPT10aGlzLnN0YXRlLmNvbnRleHQmJnRoaXMuI3Ioe3R5cGU6InBlbmRpbmciLGNvbnRleHQ6Yyx2YXJpYWJsZXM6ZSxpc1BhdXNlZDpsfSl9Y29uc3QgdT1hd2FpdCB0aGlzLiNhLnN0YXJ0KCk7cmV0dXJuIGF3YWl0IHRoaXMuI24uY29uZmlnLm9uU3VjY2Vzcz8uKHUsZSx0aGlzLnN0YXRlLmNvbnRleHQsdGhpcyxhKSxhd2FpdCB0aGlzLm9wdGlvbnMub25TdWNjZXNzPy4odSxlLHRoaXMuc3RhdGUuY29udGV4dCxhKSxhd2FpdCB0aGlzLiNuLmNvbmZpZy5vblNldHRsZWQ/Lih1LG51bGwsdGhpcy5zdGF0ZS52YXJpYWJsZXMsdGhpcy5zdGF0ZS5jb250ZXh0LHRoaXMsYSksYXdhaXQgdGhpcy5vcHRpb25zLm9uU2V0dGxlZD8uKHUsbnVsbCxlLHRoaXMuc3RhdGUuY29udGV4dCxhKSx0aGlzLiNyKHt0eXBlOiJzdWNjZXNzIixkYXRhOnV9KSx1fWNhdGNoKHUpe3RyeXt0aHJvdyBhd2FpdCB0aGlzLiNuLmNvbmZpZy5vbkVycm9yPy4odSxlLHRoaXMuc3RhdGUuY29udGV4dCx0aGlzLGEpLGF3YWl0IHRoaXMub3B0aW9ucy5vbkVycm9yPy4odSxlLHRoaXMuc3RhdGUuY29udGV4dCxhKSxhd2FpdCB0aGlzLiNuLmNvbmZpZy5vblNldHRsZWQ/Lih2b2lkIDAsdSx0aGlzLnN0YXRlLnZhcmlhYmxlcyx0aGlzLnN0YXRlLmNvbnRleHQsdGhpcyxhKSxhd2FpdCB0aGlzLm9wdGlvbnMub25TZXR0bGVkPy4odm9pZCAwLHUsZSx0aGlzLnN0YXRlLmNvbnRleHQsYSksdX1maW5hbGx5e3RoaXMuI3Ioe3R5cGU6ImVycm9yIixlcnJvcjp1fSl9fWZpbmFsbHl7dGhpcy4jbi5ydW5OZXh0KHRoaXMpfX0jcihlKXtjb25zdCBuPWE9Pntzd2l0Y2goZS50eXBlKXtjYXNlImZhaWxlZCI6cmV0dXJuey4uLmEsZmFpbHVyZUNvdW50OmUuZmFpbHVyZUNvdW50LGZhaWx1cmVSZWFzb246ZS5lcnJvcn07Y2FzZSJwYXVzZSI6cmV0dXJuey4uLmEsaXNQYXVzZWQ6ITB9O2Nhc2UiY29udGludWUiOnJldHVybnsuLi5hLGlzUGF1c2VkOiExfTtjYXNlInBlbmRpbmciOnJldHVybnsuLi5hLGNvbnRleHQ6ZS5jb250ZXh0LGRhdGE6dm9pZCAwLGZhaWx1cmVDb3VudDowLGZhaWx1cmVSZWFzb246bnVsbCxlcnJvcjpudWxsLGlzUGF1c2VkOmUuaXNQYXVzZWQsc3RhdHVzOiJwZW5kaW5nIix2YXJpYWJsZXM6ZS52YXJpYWJsZXMsc3VibWl0dGVkQXQ6RGF0ZS5ub3coKX07Y2FzZSJzdWNjZXNzIjpyZXR1cm57Li4uYSxkYXRhOmUuZGF0YSxmYWlsdXJlQ291bnQ6MCxmYWlsdXJlUmVhc29uOm51bGwsZXJyb3I6bnVsbCxzdGF0dXM6InN1Y2Nlc3MiLGlzUGF1c2VkOiExfTtjYXNlImVycm9yIjpyZXR1cm57Li4uYSxkYXRhOnZvaWQgMCxlcnJvcjplLmVycm9yLGZhaWx1cmVDb3VudDphLmZhaWx1cmVDb3VudCsxLGZhaWx1cmVSZWFzb246ZS5lcnJvcixpc1BhdXNlZDohMSxzdGF0dXM6ImVycm9yIn19fTt0aGlzLnN0YXRlPW4odGhpcy5zdGF0ZSkscHQuYmF0Y2goKCk9Pnt0aGlzLiN0LmZvckVhY2goYT0+e2Eub25NdXRhdGlvblVwZGF0ZShlKX0pLHRoaXMuI24ubm90aWZ5KHttdXRhdGlvbjp0aGlzLHR5cGU6InVwZGF0ZWQiLGFjdGlvbjplfSl9KX19O2Z1bmN0aW9uIHp3KCl7cmV0dXJue2NvbnRleHQ6dm9pZCAwLGRhdGE6dm9pZCAwLGVycm9yOm51bGwsZmFpbHVyZUNvdW50OjAsZmFpbHVyZVJlYXNvbjpudWxsLGlzUGF1c2VkOiExLHN0YXR1czoiaWRsZSIsdmFyaWFibGVzOnZvaWQgMCxzdWJtaXR0ZWRBdDowfX12YXIgaDE9Y2xhc3MgZXh0ZW5kcyBKYXtjb25zdHJ1Y3RvcihlPXt9KXtzdXBlcigpLHRoaXMuY29uZmlnPWUsdGhpcy4jZT1uZXcgU2V0LHRoaXMuI3Q9bmV3IE1hcCx0aGlzLiNuPTB9I2U7I3Q7I247YnVpbGQoZSxuLGEpe2NvbnN0IGk9bmV3IG0xKHtjbGllbnQ6ZSxtdXRhdGlvbkNhY2hlOnRoaXMsbXV0YXRpb25JZDorK3RoaXMuI24sb3B0aW9uczplLmRlZmF1bHRNdXRhdGlvbk9wdGlvbnMobiksc3RhdGU6YX0pO3JldHVybiB0aGlzLmFkZChpKSxpfWFkZChlKXt0aGlzLiNlLmFkZChlKTtjb25zdCBuPV9sKGUpO2lmKHR5cGVvZiBuPT0ic3RyaW5nIil7Y29uc3QgYT10aGlzLiN0LmdldChuKTthP2EucHVzaChlKTp0aGlzLiN0LnNldChuLFtlXSl9dGhpcy5ub3RpZnkoe3R5cGU6ImFkZGVkIixtdXRhdGlvbjplfSl9cmVtb3ZlKGUpe2lmKHRoaXMuI2UuZGVsZXRlKGUpKXtjb25zdCBuPV9sKGUpO2lmKHR5cGVvZiBuPT0ic3RyaW5nIil7Y29uc3QgYT10aGlzLiN0LmdldChuKTtpZihhKWlmKGEubGVuZ3RoPjEpe2NvbnN0IGk9YS5pbmRleE9mKGUpO2khPT0tMSYmYS5zcGxpY2UoaSwxKX1lbHNlIGFbMF09PT1lJiZ0aGlzLiN0LmRlbGV0ZShuKX19dGhpcy5ub3RpZnkoe3R5cGU6InJlbW92ZWQiLG11dGF0aW9uOmV9KX1jYW5SdW4oZSl7Y29uc3Qgbj1fbChlKTtpZih0eXBlb2Ygbj09InN0cmluZyIpe2NvbnN0IGk9dGhpcy4jdC5nZXQobik/LmZpbmQobD0+bC5zdGF0ZS5zdGF0dXM9PT0icGVuZGluZyIpO3JldHVybiFpfHxpPT09ZX1lbHNlIHJldHVybiEwfXJ1bk5leHQoZSl7Y29uc3Qgbj1fbChlKTtyZXR1cm4gdHlwZW9mIG49PSJzdHJpbmciP3RoaXMuI3QuZ2V0KG4pPy5maW5kKGk9PmkhPT1lJiZpLnN0YXRlLmlzUGF1c2VkKT8uY29udGludWUoKT8/UHJvbWlzZS5yZXNvbHZlKCk6UHJvbWlzZS5yZXNvbHZlKCl9Y2xlYXIoKXtwdC5iYXRjaCgoKT0+e3RoaXMuI2UuZm9yRWFjaChlPT57dGhpcy5ub3RpZnkoe3R5cGU6InJlbW92ZWQiLG11dGF0aW9uOmV9KX0pLHRoaXMuI2UuY2xlYXIoKSx0aGlzLiN0LmNsZWFyKCl9KX1nZXRBbGwoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLiNlKX1maW5kKGUpe2NvbnN0IG49e2V4YWN0OiEwLC4uLmV9O3JldHVybiB0aGlzLmdldEFsbCgpLmZpbmQoYT0+RnYobixhKSl9ZmluZEFsbChlPXt9KXtyZXR1cm4gdGhpcy5nZXRBbGwoKS5maWx0ZXIobj0+RnYoZSxuKSl9bm90aWZ5KGUpe3B0LmJhdGNoKCgpPT57dGhpcy5saXN0ZW5lcnMuZm9yRWFjaChuPT57bihlKX0pfSl9cmVzdW1lUGF1c2VkTXV0YXRpb25zKCl7Y29uc3QgZT10aGlzLmdldEFsbCgpLmZpbHRlcihuPT5uLnN0YXRlLmlzUGF1c2VkKTtyZXR1cm4gcHQuYmF0Y2goKCk9PlByb21pc2UuYWxsKGUubWFwKG49Pm4uY29udGludWUoKS5jYXRjaChDdCkpKSl9fTtmdW5jdGlvbiBfbChlKXtyZXR1cm4gZS5vcHRpb25zLnNjb3BlPy5pZH12YXIgYjE9Y2xhc3MgZXh0ZW5kcyBKYXsjZTsjdD12b2lkIDA7I247I2E7Y29uc3RydWN0b3IobixhKXtzdXBlcigpLHRoaXMuI2U9bix0aGlzLnNldE9wdGlvbnMoYSksdGhpcy5iaW5kTWV0aG9kcygpLHRoaXMuI3IoKX1iaW5kTWV0aG9kcygpe3RoaXMubXV0YXRlPXRoaXMubXV0YXRlLmJpbmQodGhpcyksdGhpcy5yZXNldD10aGlzLnJlc2V0LmJpbmQodGhpcyl9c2V0T3B0aW9ucyhuKXtjb25zdCBhPXRoaXMub3B0aW9uczt0aGlzLm9wdGlvbnM9dGhpcy4jZS5kZWZhdWx0TXV0YXRpb25PcHRpb25zKG4pLE1sKHRoaXMub3B0aW9ucyxhKXx8dGhpcy4jZS5nZXRNdXRhdGlvbkNhY2hlKCkubm90aWZ5KHt0eXBlOiJvYnNlcnZlck9wdGlvbnNVcGRhdGVkIixtdXRhdGlvbjp0aGlzLiNuLG9ic2VydmVyOnRoaXN9KSxhPy5tdXRhdGlvbktleSYmdGhpcy5vcHRpb25zLm11dGF0aW9uS2V5JiZhYShhLm11dGF0aW9uS2V5KSE9PWFhKHRoaXMub3B0aW9ucy5tdXRhdGlvbktleSk/dGhpcy5yZXNldCgpOnRoaXMuI24/LnN0YXRlLnN0YXR1cz09PSJwZW5kaW5nIiYmdGhpcy4jbi5zZXRPcHRpb25zKHRoaXMub3B0aW9ucyl9b25VbnN1YnNjcmliZSgpe3RoaXMuaGFzTGlzdGVuZXJzKCl8fHRoaXMuI24/LnJlbW92ZU9ic2VydmVyKHRoaXMpfW9uTXV0YXRpb25VcGRhdGUobil7dGhpcy4jcigpLHRoaXMuI28obil9Z2V0Q3VycmVudFJlc3VsdCgpe3JldHVybiB0aGlzLiN0fXJlc2V0KCl7dGhpcy4jbj8ucmVtb3ZlT2JzZXJ2ZXIodGhpcyksdGhpcy4jbj12b2lkIDAsdGhpcy4jcigpLHRoaXMuI28oKX1tdXRhdGUobixhKXtyZXR1cm4gdGhpcy4jYT1hLHRoaXMuI24/LnJlbW92ZU9ic2VydmVyKHRoaXMpLHRoaXMuI249dGhpcy4jZS5nZXRNdXRhdGlvbkNhY2hlKCkuYnVpbGQodGhpcy4jZSx0aGlzLm9wdGlvbnMpLHRoaXMuI24uYWRkT2JzZXJ2ZXIodGhpcyksdGhpcy4jbi5leGVjdXRlKG4pfSNyKCl7Y29uc3Qgbj10aGlzLiNuPy5zdGF0ZT8/encoKTt0aGlzLiN0PXsuLi5uLGlzUGVuZGluZzpuLnN0YXR1cz09PSJwZW5kaW5nIixpc1N1Y2Nlc3M6bi5zdGF0dXM9PT0ic3VjY2VzcyIsaXNFcnJvcjpuLnN0YXR1cz09PSJlcnJvciIsaXNJZGxlOm4uc3RhdHVzPT09ImlkbGUiLG11dGF0ZTp0aGlzLm11dGF0ZSxyZXNldDp0aGlzLnJlc2V0fX0jbyhuKXtwdC5iYXRjaCgoKT0+e2lmKHRoaXMuI2EmJnRoaXMuaGFzTGlzdGVuZXJzKCkpe2NvbnN0IGE9dGhpcy4jdC52YXJpYWJsZXMsaT10aGlzLiN0LmNvbnRleHQsbD17Y2xpZW50OnRoaXMuI2UsbWV0YTp0aGlzLm9wdGlvbnMubWV0YSxtdXRhdGlvbktleTp0aGlzLm9wdGlvbnMubXV0YXRpb25LZXl9O24/LnR5cGU9PT0ic3VjY2VzcyI/KHRoaXMuI2Eub25TdWNjZXNzPy4obi5kYXRhLGEsaSxsKSx0aGlzLiNhLm9uU2V0dGxlZD8uKG4uZGF0YSxudWxsLGEsaSxsKSk6bj8udHlwZT09PSJlcnJvciImJih0aGlzLiNhLm9uRXJyb3I/LihuLmVycm9yLGEsaSxsKSx0aGlzLiNhLm9uU2V0dGxlZD8uKHZvaWQgMCxuLmVycm9yLGEsaSxsKSl9dGhpcy5saXN0ZW5lcnMuZm9yRWFjaChhPT57YSh0aGlzLiN0KX0pfSl9fSx5MT1jbGFzcyBleHRlbmRzIEphe2NvbnN0cnVjdG9yKGU9e30pe3N1cGVyKCksdGhpcy5jb25maWc9ZSx0aGlzLiNlPW5ldyBNYXB9I2U7YnVpbGQoZSxuLGEpe2NvbnN0IGk9bi5xdWVyeUtleSxsPW4ucXVlcnlIYXNoPz9WaChpLG4pO2xldCB1PXRoaXMuZ2V0KGwpO3JldHVybiB1fHwodT1uZXcgYzEoe2NsaWVudDplLHF1ZXJ5S2V5OmkscXVlcnlIYXNoOmwsb3B0aW9uczplLmRlZmF1bHRRdWVyeU9wdGlvbnMobiksc3RhdGU6YSxkZWZhdWx0T3B0aW9uczplLmdldFF1ZXJ5RGVmYXVsdHMoaSl9KSx0aGlzLmFkZCh1KSksdX1hZGQoZSl7dGhpcy4jZS5oYXMoZS5xdWVyeUhhc2gpfHwodGhpcy4jZS5zZXQoZS5xdWVyeUhhc2gsZSksdGhpcy5ub3RpZnkoe3R5cGU6ImFkZGVkIixxdWVyeTplfSkpfXJlbW92ZShlKXtjb25zdCBuPXRoaXMuI2UuZ2V0KGUucXVlcnlIYXNoKTtuJiYoZS5kZXN0cm95KCksbj09PWUmJnRoaXMuI2UuZGVsZXRlKGUucXVlcnlIYXNoKSx0aGlzLm5vdGlmeSh7dHlwZToicmVtb3ZlZCIscXVlcnk6ZX0pKX1jbGVhcigpe3B0LmJhdGNoKCgpPT57dGhpcy5nZXRBbGwoKS5mb3JFYWNoKGU9Pnt0aGlzLnJlbW92ZShlKX0pfSl9Z2V0KGUpe3JldHVybiB0aGlzLiNlLmdldChlKX1nZXRBbGwoKXtyZXR1cm5bLi4udGhpcy4jZS52YWx1ZXMoKV19ZmluZChlKXtjb25zdCBuPXtleGFjdDohMCwuLi5lfTtyZXR1cm4gdGhpcy5nZXRBbGwoKS5maW5kKGE9PlV2KG4sYSkpfWZpbmRBbGwoZT17fSl7Y29uc3Qgbj10aGlzLmdldEFsbCgpO3JldHVybiBPYmplY3Qua2V5cyhlKS5sZW5ndGg+MD9uLmZpbHRlcihhPT5VdihlLGEpKTpufW5vdGlmeShlKXtwdC5iYXRjaCgoKT0+e3RoaXMubGlzdGVuZXJzLmZvckVhY2gobj0+e24oZSl9KX0pfW9uRm9jdXMoKXtwdC5iYXRjaCgoKT0+e3RoaXMuZ2V0QWxsKCkuZm9yRWFjaChlPT57ZS5vbkZvY3VzKCl9KX0pfW9uT25saW5lKCl7cHQuYmF0Y2goKCk9Pnt0aGlzLmdldEFsbCgpLmZvckVhY2goZT0+e2Uub25PbmxpbmUoKX0pfSl9fSxFMT1jbGFzc3sjZTsjdDsjbjsjYTsjcjsjbzsjbDsjaTtjb25zdHJ1Y3RvcihlPXt9KXt0aGlzLiNlPWUucXVlcnlDYWNoZXx8bmV3IHkxLHRoaXMuI3Q9ZS5tdXRhdGlvbkNhY2hlfHxuZXcgaDEsdGhpcy4jbj1lLmRlZmF1bHRPcHRpb25zfHx7fSx0aGlzLiNhPW5ldyBNYXAsdGhpcy4jcj1uZXcgTWFwLHRoaXMuI289MH1tb3VudCgpe3RoaXMuI28rKyx0aGlzLiNvPT09MSYmKHRoaXMuI2w9S2guc3Vic2NyaWJlKGFzeW5jIGU9PntlJiYoYXdhaXQgdGhpcy5yZXN1bWVQYXVzZWRNdXRhdGlvbnMoKSx0aGlzLiNlLm9uRm9jdXMoKSl9KSx0aGlzLiNpPVVsLnN1YnNjcmliZShhc3luYyBlPT57ZSYmKGF3YWl0IHRoaXMucmVzdW1lUGF1c2VkTXV0YXRpb25zKCksdGhpcy4jZS5vbk9ubGluZSgpKX0pKX11bm1vdW50KCl7dGhpcy4jby0tLHRoaXMuI289PT0wJiYodGhpcy4jbD8uKCksdGhpcy4jbD12b2lkIDAsdGhpcy4jaT8uKCksdGhpcy4jaT12b2lkIDApfWlzRmV0Y2hpbmcoZSl7cmV0dXJuIHRoaXMuI2UuZmluZEFsbCh7Li4uZSxmZXRjaFN0YXR1czoiZmV0Y2hpbmcifSkubGVuZ3RofWlzTXV0YXRpbmcoZSl7cmV0dXJuIHRoaXMuI3QuZmluZEFsbCh7Li4uZSxzdGF0dXM6InBlbmRpbmcifSkubGVuZ3RofWdldFF1ZXJ5RGF0YShlKXtjb25zdCBuPXRoaXMuZGVmYXVsdFF1ZXJ5T3B0aW9ucyh7cXVlcnlLZXk6ZX0pO3JldHVybiB0aGlzLiNlLmdldChuLnF1ZXJ5SGFzaCk/LnN0YXRlLmRhdGF9ZW5zdXJlUXVlcnlEYXRhKGUpe2NvbnN0IG49dGhpcy5kZWZhdWx0UXVlcnlPcHRpb25zKGUpLGE9dGhpcy4jZS5idWlsZCh0aGlzLG4pLGk9YS5zdGF0ZS5kYXRhO3JldHVybiBpPT09dm9pZCAwP3RoaXMuZmV0Y2hRdWVyeShlKTooZS5yZXZhbGlkYXRlSWZTdGFsZSYmYS5pc1N0YWxlQnlUaW1lKElyKG4uc3RhbGVUaW1lLGEpKSYmdGhpcy5wcmVmZXRjaFF1ZXJ5KG4pLFByb21pc2UucmVzb2x2ZShpKSl9Z2V0UXVlcmllc0RhdGEoZSl7cmV0dXJuIHRoaXMuI2UuZmluZEFsbChlKS5tYXAoKHtxdWVyeUtleTpuLHN0YXRlOmF9KT0+e2NvbnN0IGk9YS5kYXRhO3JldHVybltuLGldfSl9c2V0UXVlcnlEYXRhKGUsbixhKXtjb25zdCBpPXRoaXMuZGVmYXVsdFF1ZXJ5T3B0aW9ucyh7cXVlcnlLZXk6ZX0pLHU9dGhpcy4jZS5nZXQoaS5xdWVyeUhhc2gpPy5zdGF0ZS5kYXRhLGM9ZTEobix1KTtpZihjIT09dm9pZCAwKXJldHVybiB0aGlzLiNlLmJ1aWxkKHRoaXMsaSkuc2V0RGF0YShjLHsuLi5hLG1hbnVhbDohMH0pfXNldFF1ZXJpZXNEYXRhKGUsbixhKXtyZXR1cm4gcHQuYmF0Y2goKCk9PnRoaXMuI2UuZmluZEFsbChlKS5tYXAoKHtxdWVyeUtleTppfSk9PltpLHRoaXMuc2V0UXVlcnlEYXRhKGksbixhKV0pKX1nZXRRdWVyeVN0YXRlKGUpe2NvbnN0IG49dGhpcy5kZWZhdWx0UXVlcnlPcHRpb25zKHtxdWVyeUtleTplfSk7cmV0dXJuIHRoaXMuI2UuZ2V0KG4ucXVlcnlIYXNoKT8uc3RhdGV9cmVtb3ZlUXVlcmllcyhlKXtjb25zdCBuPXRoaXMuI2U7cHQuYmF0Y2goKCk9PntuLmZpbmRBbGwoZSkuZm9yRWFjaChhPT57bi5yZW1vdmUoYSl9KX0pfXJlc2V0UXVlcmllcyhlLG4pe2NvbnN0IGE9dGhpcy4jZTtyZXR1cm4gcHQuYmF0Y2goKCk9PihhLmZpbmRBbGwoZSkuZm9yRWFjaChpPT57aS5yZXNldCgpfSksdGhpcy5yZWZldGNoUXVlcmllcyh7dHlwZToiYWN0aXZlIiwuLi5lfSxuKSkpfWNhbmNlbFF1ZXJpZXMoZSxuPXt9KXtjb25zdCBhPXtyZXZlcnQ6ITAsLi4ubn0saT1wdC5iYXRjaCgoKT0+dGhpcy4jZS5maW5kQWxsKGUpLm1hcChsPT5sLmNhbmNlbChhKSkpO3JldHVybiBQcm9taXNlLmFsbChpKS50aGVuKEN0KS5jYXRjaChDdCl9aW52YWxpZGF0ZVF1ZXJpZXMoZSxuPXt9KXtyZXR1cm4gcHQuYmF0Y2goKCk9Pih0aGlzLiNlLmZpbmRBbGwoZSkuZm9yRWFjaChhPT57YS5pbnZhbGlkYXRlKCl9KSxlPy5yZWZldGNoVHlwZT09PSJub25lIj9Qcm9taXNlLnJlc29sdmUoKTp0aGlzLnJlZmV0Y2hRdWVyaWVzKHsuLi5lLHR5cGU6ZT8ucmVmZXRjaFR5cGU/P2U/LnR5cGU/PyJhY3RpdmUifSxuKSkpfXJlZmV0Y2hRdWVyaWVzKGUsbj17fSl7Y29uc3QgYT17Li4ubixjYW5jZWxSZWZldGNoOm4uY2FuY2VsUmVmZXRjaD8/ITB9LGk9cHQuYmF0Y2goKCk9PnRoaXMuI2UuZmluZEFsbChlKS5maWx0ZXIobD0+IWwuaXNEaXNhYmxlZCgpJiYhbC5pc1N0YXRpYygpKS5tYXAobD0+e2xldCB1PWwuZmV0Y2godm9pZCAwLGEpO3JldHVybiBhLnRocm93T25FcnJvcnx8KHU9dS5jYXRjaChDdCkpLGwuc3RhdGUuZmV0Y2hTdGF0dXM9PT0icGF1c2VkIj9Qcm9taXNlLnJlc29sdmUoKTp1fSkpO3JldHVybiBQcm9taXNlLmFsbChpKS50aGVuKEN0KX1mZXRjaFF1ZXJ5KGUpe2NvbnN0IG49dGhpcy5kZWZhdWx0UXVlcnlPcHRpb25zKGUpO24ucmV0cnk9PT12b2lkIDAmJihuLnJldHJ5PSExKTtjb25zdCBhPXRoaXMuI2UuYnVpbGQodGhpcyxuKTtyZXR1cm4gYS5pc1N0YWxlQnlUaW1lKElyKG4uc3RhbGVUaW1lLGEpKT9hLmZldGNoKG4pOlByb21pc2UucmVzb2x2ZShhLnN0YXRlLmRhdGEpfXByZWZldGNoUXVlcnkoZSl7cmV0dXJuIHRoaXMuZmV0Y2hRdWVyeShlKS50aGVuKEN0KS5jYXRjaChDdCl9ZmV0Y2hJbmZpbml0ZVF1ZXJ5KGUpe3JldHVybiBlLmJlaGF2aW9yPUd2KGUucGFnZXMpLHRoaXMuZmV0Y2hRdWVyeShlKX1wcmVmZXRjaEluZmluaXRlUXVlcnkoZSl7cmV0dXJuIHRoaXMuZmV0Y2hJbmZpbml0ZVF1ZXJ5KGUpLnRoZW4oQ3QpLmNhdGNoKEN0KX1lbnN1cmVJbmZpbml0ZVF1ZXJ5RGF0YShlKXtyZXR1cm4gZS5iZWhhdmlvcj1HdihlLnBhZ2VzKSx0aGlzLmVuc3VyZVF1ZXJ5RGF0YShlKX1yZXN1bWVQYXVzZWRNdXRhdGlvbnMoKXtyZXR1cm4gVWwuaXNPbmxpbmUoKT90aGlzLiN0LnJlc3VtZVBhdXNlZE11dGF0aW9ucygpOlByb21pc2UucmVzb2x2ZSgpfWdldFF1ZXJ5Q2FjaGUoKXtyZXR1cm4gdGhpcy4jZX1nZXRNdXRhdGlvbkNhY2hlKCl7cmV0dXJuIHRoaXMuI3R9Z2V0RGVmYXVsdE9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jbn1zZXREZWZhdWx0T3B0aW9ucyhlKXt0aGlzLiNuPWV9c2V0UXVlcnlEZWZhdWx0cyhlLG4pe3RoaXMuI2Euc2V0KGFhKGUpLHtxdWVyeUtleTplLGRlZmF1bHRPcHRpb25zOm59KX1nZXRRdWVyeURlZmF1bHRzKGUpe2NvbnN0IG49Wy4uLnRoaXMuI2EudmFsdWVzKCldLGE9e307cmV0dXJuIG4uZm9yRWFjaChpPT57YW8oZSxpLnF1ZXJ5S2V5KSYmT2JqZWN0LmFzc2lnbihhLGkuZGVmYXVsdE9wdGlvbnMpfSksYX1zZXRNdXRhdGlvbkRlZmF1bHRzKGUsbil7dGhpcy4jci5zZXQoYWEoZSkse211dGF0aW9uS2V5OmUsZGVmYXVsdE9wdGlvbnM6bn0pfWdldE11dGF0aW9uRGVmYXVsdHMoZSl7Y29uc3Qgbj1bLi4udGhpcy4jci52YWx1ZXMoKV0sYT17fTtyZXR1cm4gbi5mb3JFYWNoKGk9PnthbyhlLGkubXV0YXRpb25LZXkpJiZPYmplY3QuYXNzaWduKGEsaS5kZWZhdWx0T3B0aW9ucyl9KSxhfWRlZmF1bHRRdWVyeU9wdGlvbnMoZSl7aWYoZS5fZGVmYXVsdGVkKXJldHVybiBlO2NvbnN0IG49ey4uLnRoaXMuI24ucXVlcmllcywuLi50aGlzLmdldFF1ZXJ5RGVmYXVsdHMoZS5xdWVyeUtleSksLi4uZSxfZGVmYXVsdGVkOiEwfTtyZXR1cm4gbi5xdWVyeUhhc2h8fChuLnF1ZXJ5SGFzaD1WaChuLnF1ZXJ5S2V5LG4pKSxuLnJlZmV0Y2hPblJlY29ubmVjdD09PXZvaWQgMCYmKG4ucmVmZXRjaE9uUmVjb25uZWN0PW4ubmV0d29ya01vZGUhPT0iYWx3YXlzIiksbi50aHJvd09uRXJyb3I9PT12b2lkIDAmJihuLnRocm93T25FcnJvcj0hIW4uc3VzcGVuc2UpLCFuLm5ldHdvcmtNb2RlJiZuLnBlcnNpc3RlciYmKG4ubmV0d29ya01vZGU9Im9mZmxpbmVGaXJzdCIpLG4ucXVlcnlGbj09PVloJiYobi5lbmFibGVkPSExKSxufWRlZmF1bHRNdXRhdGlvbk9wdGlvbnMoZSl7cmV0dXJuIGU/Ll9kZWZhdWx0ZWQ/ZTp7Li4udGhpcy4jbi5tdXRhdGlvbnMsLi4uZT8ubXV0YXRpb25LZXkmJnRoaXMuZ2V0TXV0YXRpb25EZWZhdWx0cyhlLm11dGF0aW9uS2V5KSwuLi5lLF9kZWZhdWx0ZWQ6ITB9fWNsZWFyKCl7dGhpcy4jZS5jbGVhcigpLHRoaXMuI3QuY2xlYXIoKX19LHF3PXVlLmNyZWF0ZUNvbnRleHQodm9pZCAwKSxPcj1lPT57Y29uc3Qgbj11ZS51c2VDb250ZXh0KHF3KTtpZighbil0aHJvdyBuZXcgRXJyb3IoIk5vIFF1ZXJ5Q2xpZW50IHNldCwgdXNlIFF1ZXJ5Q2xpZW50UHJvdmlkZXIgdG8gc2V0IG9uZSIpO3JldHVybiBufSxTMT0oe2NsaWVudDplLGNoaWxkcmVuOm59KT0+KHVlLnVzZUVmZmVjdCgoKT0+KGUubW91bnQoKSwoKT0+e2UudW5tb3VudCgpfSksW2VdKSx5LmpzeChxdy5Qcm92aWRlcix7dmFsdWU6ZSxjaGlsZHJlbjpufSkpLFB3PXVlLmNyZWF0ZUNvbnRleHQoITEpLHYxPSgpPT51ZS51c2VDb250ZXh0KFB3KTtQdy5Qcm92aWRlcjtmdW5jdGlvbiBUMSgpe2xldCBlPSExO3JldHVybntjbGVhclJlc2V0OigpPT57ZT0hMX0scmVzZXQ6KCk9PntlPSEwfSxpc1Jlc2V0OigpPT5lfX12YXIgeDE9dWUuY3JlYXRlQ29udGV4dChUMSgpKSxBMT0oKT0+dWUudXNlQ29udGV4dCh4MSksXzE9KGUsbik9PnsoZS5zdXNwZW5zZXx8ZS50aHJvd09uRXJyb3J8fGUuZXhwZXJpbWVudGFsX3ByZWZldGNoSW5SZW5kZXIpJiYobi5pc1Jlc2V0KCl8fChlLnJldHJ5T25Nb3VudD0hMSkpfSxSMT1lPT57dWUudXNlRWZmZWN0KCgpPT57ZS5jbGVhclJlc2V0KCl9LFtlXSl9LE4xPSh7cmVzdWx0OmUsZXJyb3JSZXNldEJvdW5kYXJ5Om4sdGhyb3dPbkVycm9yOmEscXVlcnk6aSxzdXNwZW5zZTpsfSk9PmUuaXNFcnJvciYmIW4uaXNSZXNldCgpJiYhZS5pc0ZldGNoaW5nJiZpJiYobCYmZS5kYXRhPT09dm9pZCAwfHxNdyhhLFtlLmVycm9yLGldKSksdzE9ZT0+e2lmKGUuc3VzcGVuc2Upe2NvbnN0IGE9bD0+bD09PSJzdGF0aWMiP2w6TWF0aC5tYXgobD8/MWUzLDFlMyksaT1lLnN0YWxlVGltZTtlLnN0YWxlVGltZT10eXBlb2YgaT09ImZ1bmN0aW9uIj8oLi4ubCk9PmEoaSguLi5sKSk6YShpKSx0eXBlb2YgZS5nY1RpbWU9PSJudW1iZXIiJiYoZS5nY1RpbWU9TWF0aC5tYXgoZS5nY1RpbWUsMWUzKSl9fSxrMT0oZSxuKT0+ZS5pc0xvYWRpbmcmJmUuaXNGZXRjaGluZyYmIW4sQzE9KGUsbik9PmU/LnN1c3BlbnNlJiZuLmlzUGVuZGluZywkdj0oZSxuLGEpPT5uLmZldGNoT3B0aW1pc3RpYyhlKS5jYXRjaCgoKT0+e2EuY2xlYXJSZXNldCgpfSk7ZnVuY3Rpb24gSTEoZSxuLGEpe2NvbnN0IGk9djEoKSxsPUExKCksdT1PcigpLGM9dS5kZWZhdWx0UXVlcnlPcHRpb25zKGUpO3UuZ2V0RGVmYXVsdE9wdGlvbnMoKS5xdWVyaWVzPy5fZXhwZXJpbWVudGFsX2JlZm9yZVF1ZXJ5Py4oYyksYy5fb3B0aW1pc3RpY1Jlc3VsdHM9aT8iaXNSZXN0b3JpbmciOiJvcHRpbWlzdGljIix3MShjKSxfMShjLGwpLFIxKGwpO2NvbnN0IGQ9IXUuZ2V0UXVlcnlDYWNoZSgpLmdldChjLnF1ZXJ5SGFzaCksW2ZdPXVlLnVzZVN0YXRlKCgpPT5uZXcgbih1LGMpKSxtPWYuZ2V0T3B0aW1pc3RpY1Jlc3VsdChjKSxiPSFpJiZlLnN1YnNjcmliZWQhPT0hMTtpZih1ZS51c2VTeW5jRXh0ZXJuYWxTdG9yZSh1ZS51c2VDYWxsYmFjayhoPT57Y29uc3QgUz1iP2Yuc3Vic2NyaWJlKHB0LmJhdGNoQ2FsbHMoaCkpOkN0O3JldHVybiBmLnVwZGF0ZVJlc3VsdCgpLFN9LFtmLGJdKSwoKT0+Zi5nZXRDdXJyZW50UmVzdWx0KCksKCk9PmYuZ2V0Q3VycmVudFJlc3VsdCgpKSx1ZS51c2VFZmZlY3QoKCk9PntmLnNldE9wdGlvbnMoYyl9LFtjLGZdKSxDMShjLG0pKXRocm93ICR2KGMsZixsKTtpZihOMSh7cmVzdWx0Om0sZXJyb3JSZXNldEJvdW5kYXJ5OmwsdGhyb3dPbkVycm9yOmMudGhyb3dPbkVycm9yLHF1ZXJ5OnUuZ2V0UXVlcnlDYWNoZSgpLmdldChjLnF1ZXJ5SGFzaCksc3VzcGVuc2U6Yy5zdXNwZW5zZX0pKXRocm93IG0uZXJyb3I7cmV0dXJuIHUuZ2V0RGVmYXVsdE9wdGlvbnMoKS5xdWVyaWVzPy5fZXhwZXJpbWVudGFsX2FmdGVyUXVlcnk/LihjLG0pLGMuZXhwZXJpbWVudGFsX3ByZWZldGNoSW5SZW5kZXImJiFyYSYmazEobSxpKSYmKGQ/JHYoYyxmLGwpOnUuZ2V0UXVlcnlDYWNoZSgpLmdldChjLnF1ZXJ5SGFzaCk/LnByb21pc2UpPy5jYXRjaChDdCkuZmluYWxseSgoKT0+e2YudXBkYXRlUmVzdWx0KCl9KSxjLm5vdGlmeU9uQ2hhbmdlUHJvcHM/bTpmLnRyYWNrUmVzdWx0KG0pfWZ1bmN0aW9uIGVpKGUsbil7cmV0dXJuIEkxKGUsZDEpfWZ1bmN0aW9uIHRpKGUsbil7Y29uc3QgYT1PcigpLFtpXT11ZS51c2VTdGF0ZSgoKT0+bmV3IGIxKGEsZSkpO3VlLnVzZUVmZmVjdCgoKT0+e2kuc2V0T3B0aW9ucyhlKX0sW2ksZV0pO2NvbnN0IGw9dWUudXNlU3luY0V4dGVybmFsU3RvcmUodWUudXNlQ2FsbGJhY2soYz0+aS5zdWJzY3JpYmUocHQuYmF0Y2hDYWxscyhjKSksW2ldKSwoKT0+aS5nZXRDdXJyZW50UmVzdWx0KCksKCk9PmkuZ2V0Q3VycmVudFJlc3VsdCgpKSx1PXVlLnVzZUNhbGxiYWNrKChjLGQpPT57aS5tdXRhdGUoYyxkKS5jYXRjaChDdCl9LFtpXSk7aWYobC5lcnJvciYmTXcoaS5vcHRpb25zLnRocm93T25FcnJvcixbbC5lcnJvcl0pKXRocm93IGwuZXJyb3I7cmV0dXJuey4uLmwsbXV0YXRlOnUsbXV0YXRlQXN5bmM6bC5tdXRhdGV9fS8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBPMT1lPT5lLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKSxMMT1lPT5lLnJlcGxhY2UoL14oW0EtWl0pfFtccy1fXSsoXHcpL2csKG4sYSxpKT0+aT9pLnRvVXBwZXJDYXNlKCk6YS50b0xvd2VyQ2FzZSgpKSxWdj1lPT57Y29uc3Qgbj1MMShlKTtyZXR1cm4gbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStuLnNsaWNlKDEpfSxHdz0oLi4uZSk9PmUuZmlsdGVyKChuLGEsaSk9PiEhbiYmbi50cmltKCkhPT0iIiYmaS5pbmRleE9mKG4pPT09YSkuam9pbigiICIpLnRyaW0oKSxEMT1lPT57Zm9yKGNvbnN0IG4gaW4gZSlpZihuLnN0YXJ0c1dpdGgoImFyaWEtIil8fG49PT0icm9sZSJ8fG49PT0idGl0bGUiKXJldHVybiEwfTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovdmFyIE0xPXt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoyLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgVTE9dWUuZm9yd2FyZFJlZigoe2NvbG9yOmU9ImN1cnJlbnRDb2xvciIsc2l6ZTpuPTI0LHN0cm9rZVdpZHRoOmE9MixhYnNvbHV0ZVN0cm9rZVdpZHRoOmksY2xhc3NOYW1lOmw9IiIsY2hpbGRyZW46dSxpY29uTm9kZTpjLC4uLmR9LGYpPT51ZS5jcmVhdGVFbGVtZW50KCJzdmciLHtyZWY6ZiwuLi5NMSx3aWR0aDpuLGhlaWdodDpuLHN0cm9rZTplLHN0cm9rZVdpZHRoOmk/TnVtYmVyKGEpKjI0L051bWJlcihuKTphLGNsYXNzTmFtZTpHdygibHVjaWRlIixsKSwuLi4hdSYmIUQxKGQpJiZ7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LC4uLmR9LFsuLi5jLm1hcCgoW20sYl0pPT51ZS5jcmVhdGVFbGVtZW50KG0sYikpLC4uLkFycmF5LmlzQXJyYXkodSk/dTpbdV1dKSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IE5lPShlLG4pPT57Y29uc3QgYT11ZS5mb3J3YXJkUmVmKCh7Y2xhc3NOYW1lOmksLi4ubH0sdSk9PnVlLmNyZWF0ZUVsZW1lbnQoVTEse3JlZjp1LGljb25Ob2RlOm4sY2xhc3NOYW1lOkd3KGBsdWNpZGUtJHtPMShWdihlKSl9YCxgbHVjaWRlLSR7ZX1gLGkpLC4uLmx9KSk7cmV0dXJuIGEuZGlzcGxheU5hbWU9VnYoZSksYX07LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IEYxPVtbInBhdGgiLHtkOiJNMTIgNXYxNCIsa2V5OiJzNjk5bGUifV0sWyJwYXRoIix7ZDoibTE5IDEyLTcgNy03LTciLGtleToiMWlkcWplIn1dXSxCMT1OZSgiYXJyb3ctZG93biIsRjEpOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBqMT1bWyJwYXRoIix7ZDoiTTUgMTJoMTQiLGtleToiMWF5czBoIn1dLFsicGF0aCIse2Q6Im0xMiA1IDcgNy03IDciLGtleToieHF1ejRjIn1dXSx6MT1OZSgiYXJyb3ctcmlnaHQiLGoxKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgcTE9W1sicGF0aCIse2Q6Im01IDEyIDctNyA3IDciLGtleToiaGF2MHZnIn1dLFsicGF0aCIse2Q6Ik0xMiAxOVY1IixrZXk6IngwbXE5ciJ9XV0sUDE9TmUoImFycm93LXVwIixxMSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IEcxPVtbInBhdGgiLHtkOiJNMjAgNiA5IDE3bC01LTUiLGtleToiMWdtZjJjIn1dXSxIdz1OZSgiY2hlY2siLEcxKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgSDE9W1sicGF0aCIse2Q6Im02IDkgNiA2IDYtNiIsa2V5OiJxcnVuc2wifV1dLFB0PU5lKCJjaGV2cm9uLWRvd24iLEgxKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgJDE9W1sicGF0aCIse2Q6Im0xNSAxOC02LTYgNi02IixrZXk6IjF3bmZnMyJ9XV0sJHc9TmUoImNoZXZyb24tbGVmdCIsJDEpOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBWMT1bWyJwYXRoIix7ZDoibTkgMTggNi02LTYtNiIsa2V5OiJtdGhod3EifV1dLEd0PU5lKCJjaGV2cm9uLXJpZ2h0IixWMSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IFkxPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCIsa2V5OiIxbWdsYXkifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTIiLGtleToiMXBrZXVoIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyLjAxIix5MToiMTYiLHkyOiIxNiIsa2V5OiI0ZGZxOTAifV1dLFZ3PU5lKCJjaXJjbGUtYWxlcnQiLFkxKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgSzE9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIixrZXk6IjFtZ2xheSJ9XSxbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00IixrZXk6ImR6bW03NCJ9XV0sVzE9TmUoImNpcmNsZS1jaGVjayIsSzEpOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBYMT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAiLGtleToiMW1nbGF5In1dXSxaMT1OZSgiY2lyY2xlIixYMSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IFExPVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiIsa2V5OiJtbWs3eWcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAiLGtleToiMW1nbGF5In1dXSxKMT1OZSgiY2xvY2siLFExKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgZTA9W1sicGF0aCIse2Q6Ik0xMiAzdjE0IixrZXk6IjdjZjN2OCJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCIsa2V5OiJlbHNiZnkifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQiLGtleToiMTFhd3UzIn1dXSxZdj1OZSgiZGlmZiIsZTApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCB0MD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiMjIiLGtleToiN2VxeXFoIn1dLFsicGF0aCIse2Q6Ik0xNyA1SDkuNWEzLjUgMy41IDAgMCAwIDAgN2g1YTMuNSAzLjUgMCAwIDEgMCA3SDYiLGtleToiMWIwcDRzIn1dXSxZdz1OZSgiZG9sbGFyLXNpZ24iLHQwKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgbjA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEiLGtleToiNDFoaWxmIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSIsa2V5OiJneGVvYjkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMSIsa2V5OiJseWV4OWsifV1dLHIwPU5lKCJlbGxpcHNpcy12ZXJ0aWNhbCIsbjApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBhMD1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2IixrZXk6IjFxOWZ3dCJ9XSxbInBhdGgiLHtkOiJNMTAgMTQgMjEgMyIsa2V5OiJncGxoNnIifV0sWyJwYXRoIix7ZDoiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiLGtleToiYTZ4cXFwIn1dXSxLdz1OZSgiZXh0ZXJuYWwtbGluayIsYTApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBpMD1bWyJwYXRoIix7ZDoiTTEyLjUgMjJIMThhMiAyIDAgMCAwIDItMlY3bC01LTVINmEyIDIgMCAwIDAtMiAydjkuNSIsa2V5OiIxY291d2EifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQiLGtleToidG5xcmxiIn1dLFsicGF0aCIse2Q6Ik0xMy4zNzggMTUuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoiLGtleToiMXk0cWJ4In1dXSxLdj1OZSgiZmlsZS1wZW4iLGkwKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgbzA9W1sicGF0aCIse2Q6Ik0xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1oiLGtleToiMXJxZno3In1dLFsicGF0aCIse2Q6Ik0xNCAydjRhMiAyIDAgMCAwIDIgMmg0IixrZXk6InRucXJsYiJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2IixrZXk6ImNjdHdsMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTYiLGtleToiMTdnNmkyIn1dXSxsMD1OZSgiZmlsZS1wbHVzIixvMCk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IHMwPVtbInBhdGgiLHtkOiJNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaIixrZXk6IjFycWZ6NyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCIsa2V5OiJ0bnFybGIifV0sWyJwYXRoIix7ZDoiTTEwIDlIOCIsa2V5OiJiMW1ybHIifV0sWyJwYXRoIix7ZDoiTTE2IDEzSDgiLGtleToidDRlMDAyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN0g4IixrZXk6InoxdWgzYSJ9XV0sV3c9TmUoImZpbGUtdGV4dCIsczApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCB1MD1bWyJwYXRoIix7ZDoiTTE1IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3WiIsa2V5OiIxcnFmejcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQiLGtleToidG5xcmxiIn1dLFsicGF0aCIse2Q6Im0xNC41IDEyLjUtNSA1IixrZXk6ImI2MnIxOCJ9XSxbInBhdGgiLHtkOiJtOS41IDEyLjUgNSA1IixrZXk6IjFyazdlbCJ9XV0sYzA9TmUoImZpbGUteCIsdTApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBkMD1bWyJwYXRoIix7ZDoiTTE1IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3WiIsa2V5OiIxcnFmejcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQiLGtleToidG5xcmxiIn1dXSx5Yz1OZSgiZmlsZSIsZDApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBwMD1bWyJwYXRoIix7ZDoiTTIwIDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0yLjVhMSAxIDAgMCAxLS44LS40bC0uOS0xLjJBMSAxIDAgMCAwIDE1IDNoLTJhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFaIixrZXk6ImhvZDRteSJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xaC0yLjlhMSAxIDAgMCAxLS44OC0uNTVsLS40Mi0uODVhMSAxIDAgMCAwLS45Mi0uNkgxM2ExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVoiLGtleToidzR5bDJ1In1dLFsicGF0aCIse2Q6Ik0zIDVhMiAyIDAgMCAwIDIgMmgzIixrZXk6ImYyam5oNyJ9XSxbInBhdGgiLHtkOiJNMyAzdjEzYTIgMiAwIDAgMCAyIDJoMyIsa2V5OiJrOGVwbTEifV1dLGYwPU5lKCJmb2xkZXItdHJlZSIscDApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBnMD1bWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiMyIseTI6IjE1IixrZXk6IjE3cWNtNyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMiLGtleToiMWg3ZzI0In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyIsa2V5OiJmcW1jeW0ifV0sWyJwYXRoIix7ZDoiTTE4IDlhOSA5IDAgMCAxLTkgOSIsa2V5OiJuMmg0d3EifV1dLEZsPU5lKCJnaXQtYnJhbmNoIixnMCk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IG0wPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIixrZXk6IjF2N3pyZCJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjkiLHkxOiIxMiIseTI6IjEyIixrZXk6IjFkeWZ0ZCJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIyMSIseTE6IjEyIix5MjoiMTIiLGtleToib3VwNHA4In1dXSxCbD1OZSgiZ2l0LWNvbW1pdC1ob3Jpem9udGFsIixtMCk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IGgwPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCIsa2V5OiIxbWdsYXkifV0sWyJwYXRoIix7ZDoiTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAiLGtleToiMTNvMXpsIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIixrZXk6IjlpNHB1NCJ9XV0sTmg9TmUoImdsb2JlIixoMCk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IGIwPVtbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiOSIseTI6IjkiLGtleToiNGxodGN0In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxNSIseTI6IjE1IixrZXk6InZ5dTBrZCJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiI4Iix5MToiMyIseTI6IjIxIixrZXk6IjFnZ3A4byJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNCIseTE6IjMiLHkyOiIyMSIsa2V5OiJ3ZXljZ3AifV1dLFhoPU5lKCJoYXNoIixiMCk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IHkwPVtbInBhdGgiLHtkOiJNMyA1aC4wMSIsa2V5OiIxOHVnZGoifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIixrZXk6Im5sejIzayJ9XSxbInBhdGgiLHtkOiJNMyAxOWguMDEiLGtleToibm9vaGlqIn1dLFsicGF0aCIse2Q6Ik04IDVoMTMiLGtleToiMXBhbzI3In1dLFsicGF0aCIse2Q6Ik04IDEyaDEzIixrZXk6IjF6YTd6YSJ9XSxbInBhdGgiLHtkOiJNOCAxOWgxMyIsa2V5OiJtODNwNGQifV1dLEUwPU5lKCJsaXN0Iix5MCk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IFMwPVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYiLGtleToiMTN6YWxkIn1dXSxaaD1OZSgibG9hZGVyLWNpcmNsZSIsUzApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCB2MD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiIsa2V5OiIxODg4N3AifV1dLHdoPU5lKCJtZXNzYWdlLXNxdWFyZSIsdjApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBUMD1bWyJwYXRoIix7ZDoiTTIwLjk4NSAxMi40ODZhOSA5IDAgMSAxLTkuNDczLTkuNDcyYy40MDUtLjAyMi42MTcuNDYuNDAyLjgwM2E2IDYgMCAwIDAgOC4yNjggOC4yNjhjLjM0NC0uMjE1LjgyNS0uMDA0LjgwMy40MDEiLGtleToia2Z3dG0ifV1dLHgwPU5lKCJtb29uIixUMCk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IEEwPVtbInBhdGgiLHtkOiJNNSAxMmgxNCIsa2V5OiIxYXlzMGgifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQiLGtleToiczY5OWxlIn1dXSxfMD1OZSgicGx1cyIsQTApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBSMD1bWyJwYXRoIix7ZDoibTIxIDIxLTQuMzQtNC4zNCIsa2V5OiIxNGo3cmoifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCIsa2V5OiI0ZWo5N3UifV1dLFh3PU5lKCJzZWFyY2giLFIwKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgTjA9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoiLGtleToiMXMyZ3JyIn1dLFsicGF0aCIse2Q6Ik0yMCAydjQiLGtleToiMXJmM29sIn1dLFsicGF0aCIse2Q6Ik0yMiA0aC00IixrZXk6Imd3b3dqNiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjIiLGtleToiNmtxajF5In1dXSxqbD1OZSgic3BhcmtsZXMiLE4wKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjU0NC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgdzA9W1sicGF0aCIse2Q6Ik0yMSAxMC42NTZWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDEyLjM0NCIsa2V5OiIyYWN5cDQifV0sWyJwYXRoIix7ZDoibTkgMTEgMyAzTDIyIDQiLGtleToiMXBmbHpsIn1dXSxrMD1OZSgic3F1YXJlLWNoZWNrLWJpZyIsdzApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBDMD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCIsa2V5OiI0ZXhpcDIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiIsa2V5OiJ0dXMwM20ifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIiLGtleToiMWxoMWtnIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIixrZXk6IjE0OXQ2aiJ9XSxbInBhdGgiLHtkOiJtMTcuNjYgMTcuNjYgMS40MSAxLjQxIixrZXk6InB0Ymd1diJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIixrZXk6IjF0OGY4biJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiIsa2V5OiIxcThtancifV0sWyJwYXRoIix7ZDoibTYuMzQgMTcuNjYtMS40MSAxLjQxIixrZXk6IjFtOHp6NSJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEiLGtleToiMXNobGNzIn1dXSxJMD1OZSgic3VuIixDMCk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IE8wPVtbInBhdGgiLHtkOiJNMTIgMTloOCIsa2V5OiJiYWVveDgifV0sWyJwYXRoIix7ZDoibTQgMTcgNi02LTYtNiIsa2V5OiIxeW5neXQifV1dLFd2PU5lKCJ0ZXJtaW5hbCIsTzApOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNTQ0LjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBMMD1bWyJwYXRoIix7ZDoiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djIiLGtleToiOTc1a2VsIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNyIscjoiNCIsa2V5OiIxN3lzMGQifV1dLEQwPU5lKCJ1c2VyIixMMCk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC41NDQuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IE0wPVtbInBhdGgiLHtkOiJNMTggNiA2IDE4IixrZXk6IjFibDVmOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIixrZXk6ImQ4Yms2diJ9XV0sUWg9TmUoIngiLE0wKSxlbj11ZS5mb3J3YXJkUmVmKCh7Y2xhc3NOYW1lOmU9IiIsdmFyaWFudDpuPSJwcmltYXJ5IixzaXplOmE9Im1kIiwuLi5pfSxsKT0+e2NvbnN0IHU9ImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1wcmltYXJ5IGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1vZmZzZXQtYmFja2dyb3VuZCBkaXNhYmxlZDpvcGFjaXR5LTUwIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCIsYz17cHJpbWFyeToiYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1wcmltYXJ5LzkwIixzZWNvbmRhcnk6ImJnLW11dGVkIHRleHQtZm9yZWdyb3VuZCBob3ZlcjpiZy1tdXRlZC84MCBib3JkZXIgYm9yZGVyLWJvcmRlciIsZ2hvc3Q6InRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQgaG92ZXI6YmctbXV0ZWQvNTAifSxkPXtzbToicHgtMyBweS0xLjUgdGV4dC1zbSIsbWQ6InB4LTQgcHktMiB0ZXh0LXNtIixsZzoicHgtNiBweS0zIHRleHQtYmFzZSIsaWNvbjoidy0xMCBoLTEwIHAtMCJ9O3JldHVybiB5LmpzeCgiYnV0dG9uIix7cmVmOmwsY2xhc3NOYW1lOmAke3V9ICR7Y1tuXX0gJHtkW2FdfSAke2V9YCwuLi5pfSl9KTtlbi5kaXNwbGF5TmFtZT0iQnV0dG9uIjtmdW5jdGlvbiBVMCh7b25OZXdTZXNzaW9uOmUsdGhlbWU6bixvblRvZ2dsZVRoZW1lOmF9KXtyZXR1cm4geS5qc3hzKCJoZWFkZXIiLHtjbGFzc05hbWU6ImgtMTQgYm9yZGVyLWIgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHB4LTQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIixjaGlsZHJlbjpbeS5qc3goImgxIix7Y2xhc3NOYW1lOiJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC1mb3JlZ3JvdW5kIixjaGlsZHJlbjoiQUdJIn0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiIsY2hpbGRyZW46W3kuanN4KGVuLHt2YXJpYW50OiJnaG9zdCIsc2l6ZToiaWNvbiIsb25DbGljazphLHRpdGxlOmBTd2l0Y2ggdG8gJHtuPT09ImRhcmsiPyJsaWdodCI6ImRhcmsifSBtb2RlYCwiYXJpYS1sYWJlbCI6YFN3aXRjaCB0byAke249PT0iZGFyayI/ImxpZ2h0IjoiZGFyayJ9IG1vZGVgLGNoaWxkcmVuOm49PT0iZGFyayI/eS5qc3goSTAse2NsYXNzTmFtZToidy00IGgtNCJ9KTp5LmpzeCh4MCx7Y2xhc3NOYW1lOiJ3LTQgaC00In0pfSkseS5qc3hzKGVuLHt2YXJpYW50OiJwcmltYXJ5IixzaXplOiJzbSIsb25DbGljazplLGNoaWxkcmVuOlt5LmpzeChfMCx7Y2xhc3NOYW1lOiJ3LTQgaC00IG1yLTIifSksIk5ldyBTZXNzaW9uIl19KV19KV19KX1jb25zdCBYdj1lPT57bGV0IG47Y29uc3QgYT1uZXcgU2V0LGk9KG0sYik9Pntjb25zdCBoPXR5cGVvZiBtPT0iZnVuY3Rpb24iP20obik6bTtpZighT2JqZWN0LmlzKGgsbikpe2NvbnN0IFM9bjtuPWI/Pyh0eXBlb2YgaCE9Im9iamVjdCJ8fGg9PT1udWxsKT9oOk9iamVjdC5hc3NpZ24oe30sbixoKSxhLmZvckVhY2goRT0+RShuLFMpKX19LGw9KCk9Pm4sZD17c2V0U3RhdGU6aSxnZXRTdGF0ZTpsLGdldEluaXRpYWxTdGF0ZTooKT0+ZixzdWJzY3JpYmU6bT0+KGEuYWRkKG0pLCgpPT5hLmRlbGV0ZShtKSl9LGY9bj1lKGksbCxkKTtyZXR1cm4gZH0sRjA9KGU9PmU/WHYoZSk6WHYpLEIwPWU9PmU7ZnVuY3Rpb24gajAoZSxuPUIwKXtjb25zdCBhPUVuLnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUuc3Vic2NyaWJlLEVuLnVzZUNhbGxiYWNrKCgpPT5uKGUuZ2V0U3RhdGUoKSksW2Usbl0pLEVuLnVzZUNhbGxiYWNrKCgpPT5uKGUuZ2V0SW5pdGlhbFN0YXRlKCkpLFtlLG5dKSk7cmV0dXJuIEVuLnVzZURlYnVnVmFsdWUoYSksYX1jb25zdCBadj1lPT57Y29uc3Qgbj1GMChlKSxhPWk9PmowKG4saSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oYSxuKSxhfSxadz0oZT0+ZT9adihlKTpadiksTHI9WncoZT0+KHtpc0V4cGFuZGVkOiExLHNlbGVjdGVkRmlsZTpudWxsLHNlbGVjdGVkRmlsZVN0YWdlZDohMSxpc0RpZmZPcGVuOiExLGlzQ29tbWl0TW9kYWxPcGVuOiExLHdhc1Nlc3Npb25MaXN0Q29sbGFwc2VkOiExLHRvZ2dsZVNpZGViYXI6KCk9PmUobj0+KHtpc0V4cGFuZGVkOiFuLmlzRXhwYW5kZWR9KSksZXhwYW5kU2lkZWJhcjooKT0+ZSh7aXNFeHBhbmRlZDohMH0pLGNvbGxhcHNlU2lkZWJhcjooKT0+ZSh7aXNFeHBhbmRlZDohMSxpc0RpZmZPcGVuOiExLHNlbGVjdGVkRmlsZTpudWxsfSksb3BlbkRpZmY6KG4sYSk9PmUoe3NlbGVjdGVkRmlsZTpuLHNlbGVjdGVkRmlsZVN0YWdlZDphLGlzRGlmZk9wZW46ITAsaXNFeHBhbmRlZDohMH0pLGNsb3NlRGlmZjooKT0+ZSh7aXNEaWZmT3BlbjohMSxzZWxlY3RlZEZpbGU6bnVsbH0pLHN3aXRjaEZpbGU6KG4sYSk9PmUoe3NlbGVjdGVkRmlsZTpuLHNlbGVjdGVkRmlsZVN0YWdlZDphfSksb3BlbkNvbW1pdE1vZGFsOigpPT5lKHtpc0NvbW1pdE1vZGFsT3BlbjohMH0pLGNsb3NlQ29tbWl0TW9kYWw6KCk9PmUoe2lzQ29tbWl0TW9kYWxPcGVuOiExfSksc2V0U2Vzc2lvbkxpc3RDb2xsYXBzZWQ6bj0+ZSh7d2FzU2Vzc2lvbkxpc3RDb2xsYXBzZWQ6bn0pfSkpO2Z1bmN0aW9uIHowKGUsbil7bGV0IGE7dHJ5e2E9ZSgpfWNhdGNoe3JldHVybn1yZXR1cm57Z2V0SXRlbTpsPT57dmFyIHU7Y29uc3QgYz1mPT5mPT09bnVsbD9udWxsOkpTT04ucGFyc2UoZix2b2lkIDApLGQ9KHU9YS5nZXRJdGVtKGwpKSE9bnVsbD91Om51bGw7cmV0dXJuIGQgaW5zdGFuY2VvZiBQcm9taXNlP2QudGhlbihjKTpjKGQpfSxzZXRJdGVtOihsLHUpPT5hLnNldEl0ZW0obCxKU09OLnN0cmluZ2lmeSh1LHZvaWQgMCkpLHJlbW92ZUl0ZW06bD0+YS5yZW1vdmVJdGVtKGwpfX1jb25zdCBraD1lPT5uPT57dHJ5e2NvbnN0IGE9ZShuKTtyZXR1cm4gYSBpbnN0YW5jZW9mIFByb21pc2U/YTp7dGhlbihpKXtyZXR1cm4ga2goaSkoYSl9LGNhdGNoKGkpe3JldHVybiB0aGlzfX19Y2F0Y2goYSl7cmV0dXJue3RoZW4oaSl7cmV0dXJuIHRoaXN9LGNhdGNoKGkpe3JldHVybiBraChpKShhKX19fX0scTA9KGUsbik9PihhLGksbCk9PntsZXQgdT17c3RvcmFnZTp6MCgoKT0+bG9jYWxTdG9yYWdlKSxwYXJ0aWFsaXplOlQ9PlQsdmVyc2lvbjowLG1lcmdlOihULEMpPT4oey4uLkMsLi4uVH0pLC4uLm59LGM9ITE7Y29uc3QgZD1uZXcgU2V0LGY9bmV3IFNldDtsZXQgbT11LnN0b3JhZ2U7aWYoIW0pcmV0dXJuIGUoKC4uLlQpPT57Y29uc29sZS53YXJuKGBbenVzdGFuZCBwZXJzaXN0IG1pZGRsZXdhcmVdIFVuYWJsZSB0byB1cGRhdGUgaXRlbSAnJHt1Lm5hbWV9JywgdGhlIGdpdmVuIHN0b3JhZ2UgaXMgY3VycmVudGx5IHVuYXZhaWxhYmxlLmApLGEoLi4uVCl9LGksbCk7Y29uc3QgYj0oKT0+e2NvbnN0IFQ9dS5wYXJ0aWFsaXplKHsuLi5pKCl9KTtyZXR1cm4gbS5zZXRJdGVtKHUubmFtZSx7c3RhdGU6VCx2ZXJzaW9uOnUudmVyc2lvbn0pfSxoPWwuc2V0U3RhdGU7bC5zZXRTdGF0ZT0oVCxDKT0+KGgoVCxDKSxiKCkpO2NvbnN0IFM9ZSgoLi4uVCk9PihhKC4uLlQpLGIoKSksaSxsKTtsLmdldEluaXRpYWxTdGF0ZT0oKT0+UztsZXQgRTtjb25zdCBfPSgpPT57dmFyIFQsQztpZighbSlyZXR1cm47Yz0hMSxkLmZvckVhY2goTj0+e3ZhciBrO3JldHVybiBOKChrPWkoKSkhPW51bGw/azpTKX0pO2NvbnN0IHg9KChDPXUub25SZWh5ZHJhdGVTdG9yYWdlKT09bnVsbD92b2lkIDA6Qy5jYWxsKHUsKFQ9aSgpKSE9bnVsbD9UOlMpKXx8dm9pZCAwO3JldHVybiBraChtLmdldEl0ZW0uYmluZChtKSkodS5uYW1lKS50aGVuKE49PntpZihOKWlmKHR5cGVvZiBOLnZlcnNpb249PSJudW1iZXIiJiZOLnZlcnNpb24hPT11LnZlcnNpb24pe2lmKHUubWlncmF0ZSl7Y29uc3Qgaz11Lm1pZ3JhdGUoTi5zdGF0ZSxOLnZlcnNpb24pO3JldHVybiBrIGluc3RhbmNlb2YgUHJvbWlzZT9rLnRoZW4oTD0+WyEwLExdKTpbITAsa119Y29uc29sZS5lcnJvcigiU3RhdGUgbG9hZGVkIGZyb20gc3RvcmFnZSBjb3VsZG4ndCBiZSBtaWdyYXRlZCBzaW5jZSBubyBtaWdyYXRlIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCIpfWVsc2UgcmV0dXJuWyExLE4uc3RhdGVdO3JldHVyblshMSx2b2lkIDBdfSkudGhlbihOPT57dmFyIGs7Y29uc3RbTCxGXT1OO2lmKEU9dS5tZXJnZShGLChrPWkoKSkhPW51bGw/azpTKSxhKEUsITApLEwpcmV0dXJuIGIoKX0pLnRoZW4oKCk9Pnt4Py4oRSx2b2lkIDApLEU9aSgpLGM9ITAsZi5mb3JFYWNoKE49Pk4oRSkpfSkuY2F0Y2goTj0+e3g/Lih2b2lkIDAsTil9KX07cmV0dXJuIGwucGVyc2lzdD17c2V0T3B0aW9uczpUPT57dT17Li4udSwuLi5UfSxULnN0b3JhZ2UmJihtPVQuc3RvcmFnZSl9LGNsZWFyU3RvcmFnZTooKT0+e20/LnJlbW92ZUl0ZW0odS5uYW1lKX0sZ2V0T3B0aW9uczooKT0+dSxyZWh5ZHJhdGU6KCk9Pl8oKSxoYXNIeWRyYXRlZDooKT0+Yyxvbkh5ZHJhdGU6VD0+KGQuYWRkKFQpLCgpPT57ZC5kZWxldGUoVCl9KSxvbkZpbmlzaEh5ZHJhdGlvbjpUPT4oZi5hZGQoVCksKCk9PntmLmRlbGV0ZShUKX0pfSx1LnNraXBIeWRyYXRpb258fF8oKSxFfHxTfSxQMD1xMCxDaD1adygpKFAwKGU9Pih7aXNDb2xsYXBzZWQ6ITEsd2FzQ29sbGFwc2VkQmVmb3JlRGlmZjpudWxsLHRvZ2dsZUNvbGxhcHNlOigpPT5lKG49Pih7aXNDb2xsYXBzZWQ6IW4uaXNDb2xsYXBzZWR9KSksc2V0Q29sbGFwc2VkOm49PmUoe2lzQ29sbGFwc2VkOm59KSxzZXRXYXNDb2xsYXBzZWRCZWZvcmVEaWZmOm49PmUoe3dhc0NvbGxhcHNlZEJlZm9yZURpZmY6bn0pfSkse25hbWU6InNpZGViYXItc3RvcmFnZSIscGFydGlhbGl6ZTplPT4oe2lzQ29sbGFwc2VkOmUuaXNDb2xsYXBzZWR9KX0pKTtmdW5jdGlvbiBHMCh7Y2hpbGRyZW46ZX0pe2NvbnN0IG49THIobD0+bC5pc0RpZmZPcGVuKSx7aXNDb2xsYXBzZWQ6YSx0b2dnbGVDb2xsYXBzZTppfT1DaCgpO3JldHVybiBhP3kuanN4KCJhc2lkZSIse2NsYXNzTmFtZToidy0xMiBib3JkZXItciBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgZmxleCBmbGV4LWNvbCIsY2hpbGRyZW46eS5qc3goImRpdiIse2NsYXNzTmFtZToiaC0xNCBib3JkZXItYiBib3JkZXItYm9yZGVyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIixjaGlsZHJlbjp5LmpzeChlbix7dmFyaWFudDoiZ2hvc3QiLHNpemU6Imljb24iLG9uQ2xpY2s6aSx0aXRsZToiRXhwYW5kIHNlc3Npb25zIixkaXNhYmxlZDpuLGNoaWxkcmVuOnkuanN4KHdoLHtjbGFzc05hbWU6InctNCBoLTQifSl9KX0pfSk6eS5qc3hzKCJhc2lkZSIse2NsYXNzTmFtZToidy02NCBib3JkZXItciBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgZmxleCBmbGV4LWNvbCIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJoLTE0IGJvcmRlci1iIGJvcmRlci1ib3JkZXIgcHgtNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iLGNoaWxkcmVuOlt5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiLGNoaWxkcmVuOlt5LmpzeCh3aCx7Y2xhc3NOYW1lOiJ3LTQgaC00IHRleHQtbXV0ZWQtZm9yZWdyb3VuZCJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToiZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kIixjaGlsZHJlbjoiU2Vzc2lvbnMifSldfSkseS5qc3goZW4se3ZhcmlhbnQ6Imdob3N0IixzaXplOiJpY29uIixvbkNsaWNrOmksdGl0bGU6IkNvbGxhcHNlIHNpZGViYXIiLGRpc2FibGVkOm4sY2hpbGRyZW46eS5qc3goJHcse2NsYXNzTmFtZToidy00IGgtNCJ9KX0pXX0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBvdmVyZmxvdy15LWF1dG8gc2Nyb2xsYmFyLWhpZGUiLGNoaWxkcmVuOmV9KV19KX1mdW5jdGlvbiBIMCgpe2NvbnN0IGU9d2luZG93O3JldHVybiBlLkFHSV9TRVJWRVJfVVJMP2UuQUdJX1NFUlZFUl9VUkw6ZS5fX0FHSV9BUElfVVJMX18/ZS5fX0FHSV9BUElfVVJMX186Imh0dHA6Ly9sb2NhbGhvc3Q6OTEwMCJ9Y29uc3QgUXc9SDAoKTtjbGFzcyAkMHtnZXQgYmFzZVVybCgpe2NvbnN0IG49d2luZG93O3JldHVybiBuLkFHSV9TRVJWRVJfVVJMP24uQUdJX1NFUlZFUl9VUkw6UXd9YXN5bmMgcmVxdWVzdChuLGEpe2NvbnN0IGk9YCR7dGhpcy5iYXNlVXJsfSR7bn1gLGw9YXdhaXQgZmV0Y2goaSx7Li4uYSxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsLi4uYT8uaGVhZGVyc319KTtpZighbC5vayl7Y29uc3QgdT1hd2FpdCBsLmpzb24oKS5jYXRjaCgoKT0+KHtlcnJvcjoiVW5rbm93biBlcnJvciJ9KSk7dGhyb3cgbmV3IEVycm9yKHUuZXJyb3J8fGBIVFRQICR7bC5zdGF0dXN9YCl9cmV0dXJuIGwuanNvbigpfWFzeW5jIGdldFNlc3Npb25zKCl7cmV0dXJuIHRoaXMucmVxdWVzdCgiL3YxL3Nlc3Npb25zIil9YXN5bmMgY3JlYXRlU2Vzc2lvbihuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCIvdjEvc2Vzc2lvbnMiLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkobil9KX1hc3luYyBnZXRNZXNzYWdlcyhuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGAvdjEvc2Vzc2lvbnMvJHtufS9tZXNzYWdlc2ApfWFzeW5jIHNlbmRNZXNzYWdlKG4sYSl7cmV0dXJuIHRoaXMucmVxdWVzdChgL3YxL3Nlc3Npb25zLyR7bn0vbWVzc2FnZXNgLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoYSl9KX1nZXRTdHJlYW1Vcmwobil7cmV0dXJuYCR7dGhpcy5iYXNlVXJsfS92MS9zZXNzaW9ucy8ke259L3N0cmVhbWB9YXN5bmMgZ2V0Q29uZmlnKCl7cmV0dXJuIHRoaXMucmVxdWVzdCgiL3YxL2NvbmZpZyIpfWFzeW5jIGdldE1vZGVscyhuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGAvdjEvY29uZmlnL3Byb3ZpZGVycy8ke259L21vZGVsc2ApfWFzeW5jIGdldEdpdFN0YXR1cygpe3JldHVybihhd2FpdCB0aGlzLnJlcXVlc3QoIi92MS9naXQvc3RhdHVzIikpLmRhdGF9YXN5bmMgZ2V0R2l0RGlmZihuLGE9ITEpe2NvbnN0IGk9bmV3IFVSTFNlYXJjaFBhcmFtcyh7ZmlsZTpuLHN0YWdlZDpTdHJpbmcoYSl9KTtyZXR1cm4oYXdhaXQgdGhpcy5yZXF1ZXN0KGAvdjEvZ2l0L2RpZmY/JHtpfWApKS5kYXRhfWFzeW5jIGdlbmVyYXRlQ29tbWl0TWVzc2FnZSgpe3JldHVybihhd2FpdCB0aGlzLnJlcXVlc3QoIi92MS9naXQvZ2VuZXJhdGUtY29tbWl0LW1lc3NhZ2UiLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoe30pfSkpLmRhdGF9YXN5bmMgc3RhZ2VGaWxlcyhuKXtyZXR1cm4oYXdhaXQgdGhpcy5yZXF1ZXN0KCIvdjEvZ2l0L3N0YWdlIix7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHtmaWxlczpufSl9KSkuZGF0YX1hc3luYyB1bnN0YWdlRmlsZXMobil7cmV0dXJuKGF3YWl0IHRoaXMucmVxdWVzdCgiL3YxL2dpdC91bnN0YWdlIix7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHtmaWxlczpufSl9KSkuZGF0YX1hc3luYyBjb21taXRDaGFuZ2VzKG4pe3JldHVybihhd2FpdCB0aGlzLnJlcXVlc3QoIi92MS9naXQvY29tbWl0Iix7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHttZXNzYWdlOm59KX0pKS5kYXRhfWFzeW5jIGdldEdpdEJyYW5jaCgpe3JldHVybihhd2FpdCB0aGlzLnJlcXVlc3QoIi92MS9naXQvYnJhbmNoIikpLmRhdGF9fWNvbnN0IG5uPW5ldyAkMDtmdW5jdGlvbiBKdygpe2NvbnN0IGU9THIobj0+bi5pc0V4cGFuZGVkKTtyZXR1cm4gZWkoe3F1ZXJ5S2V5OlsiZ2l0Iiwic3RhdHVzIl0scXVlcnlGbjooKT0+bm4uZ2V0R2l0U3RhdHVzKCkscmVmZXRjaEludGVydmFsOmU/NWUzOiExLHJldHJ5OjEsc3RhbGVUaW1lOjNlM30pfWZ1bmN0aW9uIFYwKGUsbj0hMSl7cmV0dXJuIGVpKHtxdWVyeUtleTpbImdpdCIsImRpZmYiLGUsbl0scXVlcnlGbjooKT0+ZT9ubi5nZXRHaXREaWZmKGUsbik6bnVsbCxlbmFibGVkOiEhZSxyZXRyeToxLHJlZmV0Y2hJbnRlcnZhbDohMX0pfWZ1bmN0aW9uIFkwKCl7cmV0dXJuIHRpKHttdXRhdGlvbkZuOigpPT5ubi5nZW5lcmF0ZUNvbW1pdE1lc3NhZ2UoKX0pfWZ1bmN0aW9uIGVrKCl7Y29uc3QgZT1PcigpO3JldHVybiB0aSh7bXV0YXRpb25GbjpuPT5ubi5zdGFnZUZpbGVzKG4pLG9uU3VjY2VzczooKT0+e2UuaW52YWxpZGF0ZVF1ZXJpZXMoe3F1ZXJ5S2V5OlsiZ2l0Iiwic3RhdHVzIl19KX19KX1mdW5jdGlvbiBLMCgpe2NvbnN0IGU9T3IoKTtyZXR1cm4gdGkoe211dGF0aW9uRm46bj0+bm4udW5zdGFnZUZpbGVzKG4pLG9uU3VjY2VzczooKT0+e2UuaW52YWxpZGF0ZVF1ZXJpZXMoe3F1ZXJ5S2V5OlsiZ2l0Iiwic3RhdHVzIl19KX19KX1mdW5jdGlvbiBXMCgpe2NvbnN0IGU9T3IoKTtyZXR1cm4gdGkoe211dGF0aW9uRm46bj0+bm4uY29tbWl0Q2hhbmdlcyhuKSxvblN1Y2Nlc3M6KCk9PntlLmludmFsaWRhdGVRdWVyaWVzKHtxdWVyeUtleTpbImdpdCIsInN0YXR1cyJdfSksZS5pbnZhbGlkYXRlUXVlcmllcyh7cXVlcnlLZXk6WyJnaXQiLCJicmFuY2giXX0pfX0pfWZ1bmN0aW9uIFgwKCl7Y29uc3R7aXNFeHBhbmRlZDplLHRvZ2dsZVNpZGViYXI6bn09THIoKSx7ZGF0YTphfT1KdygpO2lmKGUpcmV0dXJuIG51bGw7Y29uc3QgaT0oYT8uc3RhZ2VkPy5sZW5ndGg/PzApKyhhPy51bnN0YWdlZD8ubGVuZ3RoPz8wKSsoYT8udW50cmFja2VkPy5sZW5ndGg/PzApO3JldHVybiB5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ3LTEyIGJvcmRlci1sIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBweS00IixjaGlsZHJlbjp5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazpuLGNsYXNzTmFtZToicmVsYXRpdmUgcC0yIHJvdW5kZWQgaG92ZXI6YmctbXV0ZWQgdHJhbnNpdGlvbi1jb2xvcnMiLHRpdGxlOiJPcGVuIEdpdCBzaWRlYmFyIixjaGlsZHJlbjpbeS5qc3goRmwse2NsYXNzTmFtZToidy01IGgtNSB0ZXh0LW11dGVkLWZvcmVncm91bmQifSksaT4wJiZ5LmpzeCgic3BhbiIse2NsYXNzTmFtZToiYWJzb2x1dGUgLXRvcC0xIC1yaWdodC0xIHctNSBoLTUgYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCB0ZXh0LXhzIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmb250LXNlbWlib2xkIixjaGlsZHJlbjppPjk/IjkrIjppfSldfSl9KX1mdW5jdGlvbiBFYyh7ZmlsZTplLHN0YWdlZDpuLHNob3dNb2RpZmllZEluZGljYXRvcjphPSExfSl7Y29uc3R7b3BlbkRpZmY6aX09THIoKSxsPWVrKCksdT1LMCgpLFtjLGRdPXVlLnVzZVN0YXRlKG4pLGY9YXN5bmMgVD0+e1Quc3RvcFByb3BhZ2F0aW9uKCk7Y29uc3QgQz1ULnRhcmdldC5jaGVja2VkO2QoQyk7dHJ5e0M/YXdhaXQgbC5tdXRhdGVBc3luYyhbZS5wYXRoXSk6YXdhaXQgdS5tdXRhdGVBc3luYyhbZS5wYXRoXSl9Y2F0Y2goeCl7ZCghQyksY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHN0YWdlL3Vuc3RhZ2UgZmlsZToiLHgpfX0sbT0oKT0+e2koZS5wYXRoLG4pfSxoPSgoKT0+e3N3aXRjaChlLnN0YXR1cyl7Y2FzZSJhZGRlZCI6Y2FzZSJ1bnRyYWNrZWQiOnJldHVybntpY29uOmwwLGNvbG9yOiJ0ZXh0LWdyZWVuLTUwMCIsbGFiZWw6IkEiLGxhYmVsQ29sb3I6InRleHQtZ3JlZW4tNTAwIn07Y2FzZSJkZWxldGVkIjpyZXR1cm57aWNvbjpjMCxjb2xvcjoidGV4dC1yZWQtNTAwIixsYWJlbDoiRCIsbGFiZWxDb2xvcjoidGV4dC1yZWQtNTAwIn07Y2FzZSJtb2RpZmllZCI6cmV0dXJue2ljb246eWMsY29sb3I6InRleHQtYmx1ZS01MDAiLGxhYmVsOiJNIixsYWJlbENvbG9yOiJ0ZXh0LWJsdWUtNTAwIn07Y2FzZSJyZW5hbWVkIjpyZXR1cm57aWNvbjp5Yyxjb2xvcjoidGV4dC1wdXJwbGUtNTAwIixsYWJlbDoiUiIsbGFiZWxDb2xvcjoidGV4dC1wdXJwbGUtNTAwIn07ZGVmYXVsdDpyZXR1cm57aWNvbjp5Yyxjb2xvcjoidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixsYWJlbDoiPyIsbGFiZWxDb2xvcjoidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIn19fSkoKSxTPWguaWNvbixfPShUPT57Y29uc3QgQz1ULnNwbGl0KCIvIikseD1DW0MubGVuZ3RoLTFdO3JldHVybiBDLmxlbmd0aD09PTE/eDpgLi4vJHtDW0MubGVuZ3RoLTJdfS8ke3h9YH0pKGUucGF0aCk7cmV0dXJuIHkuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTMgcHktMiBob3ZlcjpiZy1tdXRlZC81MCBjdXJzb3ItcG9pbnRlciBncm91cCB0cmFuc2l0aW9uLWNvbG9ycyB3LWZ1bGwgdGV4dC1sZWZ0IixvbkNsaWNrOm0sY2hpbGRyZW46W3kuanN4KCJpbnB1dCIse3R5cGU6ImNoZWNrYm94IixjaGVja2VkOmMsb25DaGFuZ2U6ZixvbkNsaWNrOlQ9PlQuc3RvcFByb3BhZ2F0aW9uKCksY2xhc3NOYW1lOiJ3LTQgaC00IHJvdW5kZWQgYm9yZGVyLWJvcmRlciIsImFyaWEtbGFiZWwiOmAke2M/IlVuc3RhZ2UiOiJTdGFnZSJ9ICR7ZS5wYXRofWB9KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgZmxleC0xIG1pbi13LTAiLGNoaWxkcmVuOlt5LmpzeChTLHtjbGFzc05hbWU6YHctNCBoLTQgZmxleC1zaHJpbmstMCAke2guY29sb3J9YH0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBtaW4tdy0wIixjaGlsZHJlbjp5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1zbSB0ZXh0LWZvcmVncm91bmQgdHJ1bmNhdGUgZm9udC1tb25vIix0aXRsZTplLnBhdGgsY2hpbGRyZW46X30pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBmbGV4LXNocmluay0wIixjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjbGFzc05hbWU6YHRleHQteHMgZm9udC1zZW1pYm9sZCAke2gubGFiZWxDb2xvcn1gLGNoaWxkcmVuOmgubGFiZWx9KSxhJiZ5LmpzeCgiZGl2Iix7dGl0bGU6IkFsc28gbW9kaWZpZWQgaW4gd29ya2luZyBkaXJlY3RvcnkiLGNoaWxkcmVuOnkuanN4KFZ3LHtjbGFzc05hbWU6InctMy41IGgtMy41IHRleHQtb3JhbmdlLTUwMCJ9KX0pXX0pXX0pfSldfSksZS5pbnNlcnRpb25zIT09dm9pZCAwfHxlLmRlbGV0aW9ucyE9PXZvaWQgMD95LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC14cyBmbGV4LXNocmluay0wIixjaGlsZHJlbjpbZS5pbnNlcnRpb25zIT09dm9pZCAwJiZlLmluc2VydGlvbnM+MCYmeS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LWdyZWVuLTUwMCIsY2hpbGRyZW46WyIrIixlLmluc2VydGlvbnNdfSksZS5kZWxldGlvbnMhPT12b2lkIDAmJmUuZGVsZXRpb25zPjAmJnkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1yZWQtNTAwIixjaGlsZHJlbjpbIi0iLGUuZGVsZXRpb25zXX0pXX0pOm51bGwsbiYmIWEmJnkuanN4KEh3LHtjbGFzc05hbWU6InctNCBoLTQgdGV4dC1ncmVlbi01MDAgb3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tb3BhY2l0eSBmbGV4LXNocmluay0wIn0pXX0pfWZ1bmN0aW9uIFowKHtzdGF0dXM6ZX0pe2NvbnN0e29wZW5Db21taXRNb2RhbDpufT1McigpLGE9ZWsoKSxpPWUuc3RhZ2VkLmxlbmd0aD4wLGw9ZS51bnN0YWdlZC5sZW5ndGg+MHx8ZS51bnRyYWNrZWQubGVuZ3RoPjAsdT1bLi4uZS51bnN0YWdlZCwuLi5lLnVudHJhY2tlZF0sYz11Lmxlbmd0aD4wLGQ9bmV3IFNldChlLnVuc3RhZ2VkLm1hcChtPT5tLnBhdGgpKSxmPSgpPT57Y29uc3QgbT11Lm1hcChiPT5iLnBhdGgpO20ubGVuZ3RoPjAmJmEubXV0YXRlKG0pfTtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggZmxleC1jb2wiLGNoaWxkcmVuOltpJiZ5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiYm9yZGVyLWIgYm9yZGVyLWJvcmRlciIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJweC00IHB5LTIgYmctbXV0ZWQvNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIixjaGlsZHJlbjpbeS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1mb3JlZ3JvdW5kIHVwcGVyY2FzZSIsY2hpbGRyZW46WyJTdGFnZWQgQ2hhbmdlcyAoIixlLnN0YWdlZC5sZW5ndGgsIikiXX0pLGUuc3RhZ2VkLmxlbmd0aD4wJiZ5LmpzeHMoZW4se3ZhcmlhbnQ6InByaW1hcnkiLHNpemU6InNtIixvbkNsaWNrOm4sY2xhc3NOYW1lOiJoLTYgdGV4dC14cyIsY2hpbGRyZW46W3kuanN4KEJsLHtjbGFzc05hbWU6InctMyBoLTMgbXItMSJ9KSwiQ29tbWl0Il19KV19KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJkaXZpZGUteSBkaXZpZGUtYm9yZGVyIixjaGlsZHJlbjplLnN0YWdlZC5tYXAobT0+eS5qc3goRWMse2ZpbGU6bSxzdGFnZWQ6ITAsc2hvd01vZGlmaWVkSW5kaWNhdG9yOmQuaGFzKG0ucGF0aCl9LG0ucGF0aCkpfSldfSksbCYmeS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InB4LTQgcHktMiBiZy1tdXRlZC81MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iLGNoaWxkcmVuOlt5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWZvcmVncm91bmQgdXBwZXJjYXNlIixjaGlsZHJlbjpbIkNoYW5nZXMgKCIsZS51bnN0YWdlZC5sZW5ndGgrZS51bnRyYWNrZWQubGVuZ3RoLCIpIl19KSxjJiZ5LmpzeHMoZW4se3ZhcmlhbnQ6Imdob3N0IixzaXplOiJzbSIsb25DbGljazpmLHRpdGxlOiJTdGFnZSBhbGwgY2hhbmdlcyIsY2xhc3NOYW1lOiJoLTYgdGV4dC14cyIsY2hpbGRyZW46W3kuanN4KGswLHtjbGFzc05hbWU6InctMyBoLTMgbXItMSJ9KSwiU3RhZ2UgQWxsIl19KV19KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZGl2aWRlLXkgZGl2aWRlLWJvcmRlciIsY2hpbGRyZW46W2UudW5zdGFnZWQubWFwKG09PnkuanN4KEVjLHtmaWxlOm0sc3RhZ2VkOiExfSxtLnBhdGgpKSxlLnVudHJhY2tlZC5tYXAobT0+eS5qc3goRWMse2ZpbGU6bSxzdGFnZWQ6ITF9LG0ucGF0aCkpXX0pXX0pLCFpJiYhbCYmeS5qc3goImRpdiIse2NsYXNzTmFtZToicC00IHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRleHQtY2VudGVyIixjaGlsZHJlbjoiTm8gY2hhbmdlcyJ9KV19KX1mdW5jdGlvbiBRMCgpe2NvbnN0e2lzRXhwYW5kZWQ6ZSxjb2xsYXBzZVNpZGViYXI6bn09THIoKSx7ZGF0YTphLGlzTG9hZGluZzppfT1KdygpO2lmKCFlKXJldHVybiBudWxsO2NvbnN0IHU9Wy4uLmE/LnN0YWdlZHx8W10sLi4uYT8udW5zdGFnZWR8fFtdLC4uLmE/LnVudHJhY2tlZHx8W11dLmxlbmd0aDtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InctODAgYm9yZGVyLWwgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIGZsZXggZmxleC1jb2wgaC1mdWxsIixjaGlsZHJlbjpbeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImgtMTQgYm9yZGVyLWIgYm9yZGVyLWJvcmRlciBweC00IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBmbGV4LTEiLGNoaWxkcmVuOlt5LmpzeChGbCx7Y2xhc3NOYW1lOiJ3LTQgaC00IHRleHQtbXV0ZWQtZm9yZWdyb3VuZCJ9KSx5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCIsY2hpbGRyZW46WyJHaXQgQ2hhbmdlcyIsdT4wJiZ5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6Im1sLTIgdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOlsiKCIsdSwiKSJdfSldfSldfSkseS5qc3goZW4se3ZhcmlhbnQ6Imdob3N0IixzaXplOiJpY29uIixvbkNsaWNrOm4sdGl0bGU6IkNsb3NlIHNpZGViYXIiLGNoaWxkcmVuOnkuanN4KCR3LHtjbGFzc05hbWU6InctNCBoLTQifSl9KV19KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIixjaGlsZHJlbjppP3kuanN4KCJkaXYiLHtjbGFzc05hbWU6InAtNCB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCIsY2hpbGRyZW46IkxvYWRpbmcgZ2l0IHN0YXR1cy4uLiJ9KTohYXx8dT09PTA/eS5qc3goImRpdiIse2NsYXNzTmFtZToicC00IHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixjaGlsZHJlbjoiTm8gY2hhbmdlcyBkZXRlY3RlZCJ9KTp5LmpzeChaMCx7c3RhdHVzOmF9KX0pLGE/LmJyYW5jaCYmeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImJvcmRlci10IGJvcmRlci1ib3JkZXIgcHgtNCBweS0yIHRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIixjaGlsZHJlbjpbeS5qc3goRmwse2NsYXNzTmFtZToidy0zIGgtMyJ9KSx5LmpzeCgic3BhbiIse2NoaWxkcmVuOmEuYnJhbmNofSksYS5haGVhZD4wJiZ5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtZ3JlZW4tNTAwIixjaGlsZHJlbjpbIuKGkSIsYS5haGVhZF19KSxhLmJlaGluZD4wJiZ5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtb3JhbmdlLTUwMCIsY2hpbGRyZW46WyLihpMiLGEuYmVoaW5kXX0pXX0pXX0pfWZ1bmN0aW9uIEowKGUsbil7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgYT17fTtmb3IodmFyIGkgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkpe2lmKG4uaW5kZXhPZihpKSE9PS0xKWNvbnRpbnVlO2FbaV09ZVtpXX1yZXR1cm4gYX1mdW5jdGlvbiBlTChlLG4pe2lmKGU9PW51bGwpcmV0dXJue307dmFyIGEsaSxsPUowKGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3IoaT0wO2k8dS5sZW5ndGg7aSsrKWE9dVtpXSxuLmluZGV4T2YoYSk9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLGEpJiYobFthXT1lW2FdKX1yZXR1cm4gbH1mdW5jdGlvbiBJaChlLG4peyhuPT1udWxsfHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgYT0wLGk9QXJyYXkobik7YTxuO2ErKylpW2FdPWVbYV07cmV0dXJuIGl9ZnVuY3Rpb24gdEwoZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gSWgoZSl9ZnVuY3Rpb24gbkwoZSl7aWYodHlwZW9mIFN5bWJvbDwidSImJmVbU3ltYm9sLml0ZXJhdG9yXSE9bnVsbHx8ZVsiQEBpdGVyYXRvciJdIT1udWxsKXJldHVybiBBcnJheS5mcm9tKGUpfWZ1bmN0aW9uIHJMKGUsbil7aWYoZSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiBJaChlLG4pO3ZhciBhPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIGE9PT0iT2JqZWN0IiYmZS5jb25zdHJ1Y3RvciYmKGE9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxhPT09Ik1hcCJ8fGE9PT0iU2V0Ij9BcnJheS5mcm9tKGUpOmE9PT0iQXJndW1lbnRzInx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoYSk/SWgoZSxuKTp2b2lkIDB9fWZ1bmN0aW9uIGFMKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBPaChlKXtyZXR1cm4gdEwoZSl8fG5MKGUpfHxyTChlKXx8YUwoKX1mdW5jdGlvbiBpbyhlKXsiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2YiO3JldHVybiBpbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT0ic3ltYm9sIj9mdW5jdGlvbihuKXtyZXR1cm4gdHlwZW9mIG59OmZ1bmN0aW9uKG4pe3JldHVybiBuJiZ0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZuLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZuIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygbn0saW8oZSl9ZnVuY3Rpb24gaUwoZSxuKXtpZihpbyhlKSE9Im9iamVjdCJ8fCFlKXJldHVybiBlO3ZhciBhPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihhIT09dm9pZCAwKXt2YXIgaT1hLmNhbGwoZSxuKTtpZihpbyhpKSE9Im9iamVjdCIpcmV0dXJuIGk7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4obj09PSJzdHJpbmciP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIG9MKGUpe3ZhciBuPWlMKGUsInN0cmluZyIpO3JldHVybiBpbyhuKT09InN5bWJvbCI/bjpuKyIifWZ1bmN0aW9uIHRrKGUsbixhKXtyZXR1cm4obj1vTChuKSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPWEsZX1mdW5jdGlvbiBMaCgpe3JldHVybiBMaD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciBhPWFyZ3VtZW50c1tuXTtmb3IodmFyIGkgaW4gYSkoe30pLmhhc093blByb3BlcnR5LmNhbGwoYSxpKSYmKGVbaV09YVtpXSl9cmV0dXJuIGV9LExoLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBRdihlLG4pe3ZhciBhPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7biYmKGk9aS5maWx0ZXIoZnVuY3Rpb24obCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxsKS5lbnVtZXJhYmxlfSkpLGEucHVzaC5hcHBseShhLGkpfXJldHVybiBhfWZ1bmN0aW9uIFhhKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciBhPWFyZ3VtZW50c1tuXSE9bnVsbD9hcmd1bWVudHNbbl06e307biUyP1F2KE9iamVjdChhKSwhMCkuZm9yRWFjaChmdW5jdGlvbihpKXt0ayhlLGksYVtpXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGEpKTpRdihPYmplY3QoYSkpLmZvckVhY2goZnVuY3Rpb24oaSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsaSkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbEwoZSl7dmFyIG49ZS5sZW5ndGg7aWYobj09PTB8fG49PT0xKXJldHVybiBlO2lmKG49PT0yKXJldHVybltlWzBdLGVbMV0sIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVswXSldO2lmKG49PT0zKXJldHVybltlWzBdLGVbMV0sZVsyXSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdKV07aWYobj49NClyZXR1cm5bZVswXSxlWzFdLGVbMl0sZVszXSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVszXSksIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbM10pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVszXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbM10pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVswXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVszXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbM10pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVswXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVswXSksIiIuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSksIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVswXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVszXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVswXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVswXSksIiIuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdKV19dmFyIFNjPXt9O2Z1bmN0aW9uIHNMKGUpe2lmKGUubGVuZ3RoPT09MHx8ZS5sZW5ndGg9PT0xKXJldHVybiBlO3ZhciBuPWUuam9pbigiLiIpO3JldHVybiBTY1tuXXx8KFNjW25dPWxMKGUpKSxTY1tuXX1mdW5jdGlvbiB1TChlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxpPWUuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1IT09InRva2VuIn0pLGw9c0woaSk7cmV0dXJuIGwucmVkdWNlKGZ1bmN0aW9uKHUsYyl7cmV0dXJuIFhhKFhhKHt9LHUpLGFbY10pfSxuKX1mdW5jdGlvbiBKdihlKXtyZXR1cm4gZS5qb2luKCIgIil9ZnVuY3Rpb24gY0woZSxuKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gYSs9MSxpLm1hcChmdW5jdGlvbihsLHUpe3JldHVybiBuayh7bm9kZTpsLHN0eWxlc2hlZXQ6ZSx1c2VJbmxpbmVTdHlsZXM6bixrZXk6ImNvZGUtc2VnbWVudC0iLmNvbmNhdChhLCItIikuY29uY2F0KHUpfSl9KX19ZnVuY3Rpb24gbmsoZSl7dmFyIG49ZS5ub2RlLGE9ZS5zdHlsZXNoZWV0LGk9ZS5zdHlsZSxsPWk9PT12b2lkIDA/e306aSx1PWUudXNlSW5saW5lU3R5bGVzLGM9ZS5rZXksZD1uLnByb3BlcnRpZXMsZj1uLnR5cGUsbT1uLnRhZ05hbWUsYj1uLnZhbHVlO2lmKGY9PT0idGV4dCIpcmV0dXJuIGI7aWYobSl7dmFyIGg9Y0woYSx1KSxTO2lmKCF1KVM9WGEoWGEoe30sZCkse30se2NsYXNzTmFtZTpKdihkLmNsYXNzTmFtZSl9KTtlbHNle3ZhciBFPU9iamVjdC5rZXlzKGEpLnJlZHVjZShmdW5jdGlvbih4LE4pe3JldHVybiBOLnNwbGl0KCIuIikuZm9yRWFjaChmdW5jdGlvbihrKXt4LmluY2x1ZGVzKGspfHx4LnB1c2goayl9KSx4fSxbXSksXz1kLmNsYXNzTmFtZSYmZC5jbGFzc05hbWUuaW5jbHVkZXMoInRva2VuIik/WyJ0b2tlbiJdOltdLFQ9ZC5jbGFzc05hbWUmJl8uY29uY2F0KGQuY2xhc3NOYW1lLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hRS5pbmNsdWRlcyh4KX0pKTtTPVhhKFhhKHt9LGQpLHt9LHtjbGFzc05hbWU6SnYoVCl8fHZvaWQgMCxzdHlsZTp1TChkLmNsYXNzTmFtZSxPYmplY3QuYXNzaWduKHt9LGQuc3R5bGUsbCksYSl9KX12YXIgQz1oKG4uY2hpbGRyZW4pO3JldHVybiBFbi5jcmVhdGVFbGVtZW50KG0sTGgoe2tleTpjfSxTKSxDKX19Y29uc3QgZEw9KGZ1bmN0aW9uKGUsbil7dmFyIGE9ZS5saXN0TGFuZ3VhZ2VzKCk7cmV0dXJuIGEuaW5kZXhPZihuKSE9PS0xfSk7dmFyIHBMPVsibGFuZ3VhZ2UiLCJjaGlsZHJlbiIsInN0eWxlIiwiY3VzdG9tU3R5bGUiLCJjb2RlVGFnUHJvcHMiLCJ1c2VJbmxpbmVTdHlsZXMiLCJzaG93TGluZU51bWJlcnMiLCJzaG93SW5saW5lTGluZU51bWJlcnMiLCJzdGFydGluZ0xpbmVOdW1iZXIiLCJsaW5lTnVtYmVyQ29udGFpbmVyU3R5bGUiLCJsaW5lTnVtYmVyU3R5bGUiLCJ3cmFwTGluZXMiLCJ3cmFwTG9uZ0xpbmVzIiwibGluZVByb3BzIiwicmVuZGVyZXIiLCJQcmVUYWciLCJDb2RlVGFnIiwiY29kZSIsImFzdEdlbmVyYXRvciJdO2Z1bmN0aW9uIGVUKGUsbil7dmFyIGE9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuJiYoaT1pLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGwpLmVudW1lcmFibGV9KSksYS5wdXNoLmFwcGx5KGEsaSl9cmV0dXJuIGF9ZnVuY3Rpb24gQ3IoZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIGE9YXJndW1lbnRzW25dIT1udWxsP2FyZ3VtZW50c1tuXTp7fTtuJTI/ZVQoT2JqZWN0KGEpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3RrKGUsaSxhW2ldKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoYSkpOmVUKE9iamVjdChhKSkuZm9yRWFjaChmdW5jdGlvbihpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxpKSl9KX1yZXR1cm4gZX12YXIgZkw9L1xuL2c7ZnVuY3Rpb24gZ0woZSl7cmV0dXJuIGUubWF0Y2goZkwpfWZ1bmN0aW9uIG1MKGUpe3ZhciBuPWUubGluZXMsYT1lLnN0YXJ0aW5nTGluZU51bWJlcixpPWUuc3R5bGU7cmV0dXJuIG4ubWFwKGZ1bmN0aW9uKGwsdSl7dmFyIGM9dSthO3JldHVybiBFbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7a2V5OiJsaW5lLSIuY29uY2F0KHUpLGNsYXNzTmFtZToicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyLWxpbmUtbnVtYmVyIixzdHlsZTp0eXBlb2YgaT09ImZ1bmN0aW9uIj9pKGMpOml9LCIiLmNvbmNhdChjLGAKYCkpfSl9ZnVuY3Rpb24gaEwoZSl7dmFyIG49ZS5jb2RlU3RyaW5nLGE9ZS5jb2RlU3R5bGUsaT1lLmNvbnRhaW5lclN0eWxlLGw9aT09PXZvaWQgMD97ZmxvYXQ6ImxlZnQiLHBhZGRpbmdSaWdodDoiMTBweCJ9OmksdT1lLm51bWJlclN0eWxlLGM9dT09PXZvaWQgMD97fTp1LGQ9ZS5zdGFydGluZ0xpbmVOdW1iZXI7cmV0dXJuIEVuLmNyZWF0ZUVsZW1lbnQoImNvZGUiLHtzdHlsZTpPYmplY3QuYXNzaWduKHt9LGEsbCl9LG1MKHtsaW5lczpuLnJlcGxhY2UoL1xuJC8sIiIpLnNwbGl0KGAKYCksc3R5bGU6YyxzdGFydGluZ0xpbmVOdW1iZXI6ZH0pKX1mdW5jdGlvbiBiTChlKXtyZXR1cm4iIi5jb25jYXQoZS50b1N0cmluZygpLmxlbmd0aCwiLjI1ZW0iKX1mdW5jdGlvbiByayhlLG4pe3JldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzcGFuIixwcm9wZXJ0aWVzOntrZXk6ImxpbmUtbnVtYmVyLS0iLmNvbmNhdChlKSxjbGFzc05hbWU6WyJjb21tZW50IiwibGluZW51bWJlciIsInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci1saW5lLW51bWJlciJdLHN0eWxlOm59LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6ZX1dfX1mdW5jdGlvbiBhayhlLG4sYSl7dmFyIGk9e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWluV2lkdGg6YkwoYSkscGFkZGluZ1JpZ2h0OiIxZW0iLHRleHRBbGlnbjoicmlnaHQiLHVzZXJTZWxlY3Q6Im5vbmUifSxsPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2Uobik6ZSx1PUNyKENyKHt9LGkpLGwpO3JldHVybiB1fWZ1bmN0aW9uIE9sKGUpe3ZhciBuPWUuY2hpbGRyZW4sYT1lLmxpbmVOdW1iZXIsaT1lLmxpbmVOdW1iZXJTdHlsZSxsPWUubGFyZ2VzdExpbmVOdW1iZXIsdT1lLnNob3dJbmxpbmVMaW5lTnVtYmVycyxjPWUubGluZVByb3BzLGQ9Yz09PXZvaWQgMD97fTpjLGY9ZS5jbGFzc05hbWUsbT1mPT09dm9pZCAwP1tdOmYsYj1lLnNob3dMaW5lTnVtYmVycyxoPWUud3JhcExvbmdMaW5lcyxTPWUud3JhcExpbmVzLEU9Uz09PXZvaWQgMD8hMTpTLF89RT9Dcih7fSx0eXBlb2YgZD09ImZ1bmN0aW9uIj9kKGEpOmQpOnt9O2lmKF8uY2xhc3NOYW1lPV8uY2xhc3NOYW1lP1tdLmNvbmNhdChPaChfLmNsYXNzTmFtZS50cmltKCkuc3BsaXQoL1xzKy8pKSxPaChtKSk6bSxhJiZ1KXt2YXIgVD1hayhpLGEsbCk7bi51bnNoaWZ0KHJrKGEsVCkpfXJldHVybiBoJmImJihfLnN0eWxlPUNyKHtkaXNwbGF5OiJmbGV4In0sXy5zdHlsZSkpLHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzcGFuIixwcm9wZXJ0aWVzOl8sY2hpbGRyZW46bn19ZnVuY3Rpb24gaWsoZSl7Zm9yKHZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpbXSxhPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpbXSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBsPWVbaV07aWYobC50eXBlPT09InRleHQiKWEucHVzaChPbCh7Y2hpbGRyZW46W2xdLGNsYXNzTmFtZTpPaChuZXcgU2V0KG4pKX0pKTtlbHNlIGlmKGwuY2hpbGRyZW4pe3ZhciB1PW4uY29uY2F0KGwucHJvcGVydGllcy5jbGFzc05hbWUpO2lrKGwuY2hpbGRyZW4sdSkuZm9yRWFjaChmdW5jdGlvbihjKXtyZXR1cm4gYS5wdXNoKGMpfSl9fXJldHVybiBhfWZ1bmN0aW9uIHlMKGUsbixhLGksbCx1LGMsZCxmKXt2YXIgbSxiPWlrKGUudmFsdWUpLGg9W10sUz0tMSxFPTA7ZnVuY3Rpb24gXyhGLFIpe3ZhciBNPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpbXTtyZXR1cm4gT2woe2NoaWxkcmVuOkYsbGluZU51bWJlcjpSLGxpbmVOdW1iZXJTdHlsZTpkLGxhcmdlc3RMaW5lTnVtYmVyOmMsc2hvd0lubGluZUxpbmVOdW1iZXJzOmwsbGluZVByb3BzOmEsY2xhc3NOYW1lOk0sc2hvd0xpbmVOdW1iZXJzOmksd3JhcExvbmdMaW5lczpmLHdyYXBMaW5lczpufSl9ZnVuY3Rpb24gVChGLFIpe2lmKGkmJlImJmwpe3ZhciBNPWFrKGQsUixjKTtGLnVuc2hpZnQocmsoUixNKSl9cmV0dXJuIEZ9ZnVuY3Rpb24gQyhGLFIpe3ZhciBNPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpbXTtyZXR1cm4gbnx8TS5sZW5ndGg+MD9fKEYsUixNKTpUKEYsUil9Zm9yKHZhciB4PWZ1bmN0aW9uKCl7dmFyIFI9YltFXSxNPVIuY2hpbGRyZW5bMF0udmFsdWUsWT1nTChNKTtpZihZKXt2YXIgej1NLnNwbGl0KGAKYCk7ei5mb3JFYWNoKGZ1bmN0aW9uKFUsJCl7dmFyIEo9aSYmaC5sZW5ndGgrdSxvZT17dHlwZToidGV4dCIsdmFsdWU6IiIuY29uY2F0KFUsYApgKX07aWYoJD09PTApe3ZhciBpZT1iLnNsaWNlKFMrMSxFKS5jb25jYXQoT2woe2NoaWxkcmVuOltvZV0sY2xhc3NOYW1lOlIucHJvcGVydGllcy5jbGFzc05hbWV9KSksbGU9QyhpZSxKKTtoLnB1c2gobGUpfWVsc2UgaWYoJD09PXoubGVuZ3RoLTEpe3ZhciBHPWJbRSsxXSYmYltFKzFdLmNoaWxkcmVuJiZiW0UrMV0uY2hpbGRyZW5bMF0sZWU9e3R5cGU6InRleHQiLHZhbHVlOiIiLmNvbmNhdChVKX07aWYoRyl7dmFyIG5lPU9sKHtjaGlsZHJlbjpbZWVdLGNsYXNzTmFtZTpSLnByb3BlcnRpZXMuY2xhc3NOYW1lfSk7Yi5zcGxpY2UoRSsxLDAsbmUpfWVsc2V7dmFyIGZlPVtlZV0sST1DKGZlLEosUi5wcm9wZXJ0aWVzLmNsYXNzTmFtZSk7aC5wdXNoKEkpfX1lbHNle3ZhciBPPVtvZV0sVj1DKE8sSixSLnByb3BlcnRpZXMuY2xhc3NOYW1lKTtoLnB1c2goVil9fSksUz1FfUUrK307RTxiLmxlbmd0aDspeCgpO2lmKFMhPT1iLmxlbmd0aC0xKXt2YXIgTj1iLnNsaWNlKFMrMSxiLmxlbmd0aCk7aWYoTiYmTi5sZW5ndGgpe3ZhciBrPWkmJmgubGVuZ3RoK3UsTD1DKE4sayk7aC5wdXNoKEwpfX1yZXR1cm4gbj9oOihtPVtdKS5jb25jYXQuYXBwbHkobSxoKX1mdW5jdGlvbiBFTChlKXt2YXIgbj1lLnJvd3MsYT1lLnN0eWxlc2hlZXQsaT1lLnVzZUlubGluZVN0eWxlcztyZXR1cm4gbi5tYXAoZnVuY3Rpb24obCx1KXtyZXR1cm4gbmsoe25vZGU6bCxzdHlsZXNoZWV0OmEsdXNlSW5saW5lU3R5bGVzOmksa2V5OiJjb2RlLXNlZ21lbnQtIi5jb25jYXQodSl9KX0pfWZ1bmN0aW9uIG9rKGUpe3JldHVybiBlJiZ0eXBlb2YgZS5oaWdobGlnaHRBdXRvPCJ1In1mdW5jdGlvbiBTTChlKXt2YXIgbj1lLmFzdEdlbmVyYXRvcixhPWUubGFuZ3VhZ2UsaT1lLmNvZGUsbD1lLmRlZmF1bHRDb2RlVmFsdWU7aWYob2sobikpe3ZhciB1PWRMKG4sYSk7cmV0dXJuIGE9PT0idGV4dCI/e3ZhbHVlOmwsbGFuZ3VhZ2U6InRleHQifTp1P24uaGlnaGxpZ2h0KGEsaSk6bi5oaWdobGlnaHRBdXRvKGkpfXRyeXtyZXR1cm4gYSYmYSE9PSJ0ZXh0Ij97dmFsdWU6bi5oaWdobGlnaHQoaSxhKX06e3ZhbHVlOmx9fWNhdGNoe3JldHVybnt2YWx1ZTpsfX19ZnVuY3Rpb24gdkwoZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIGwsdSxjPWkubGFuZ3VhZ2UsZD1pLmNoaWxkcmVuLGY9aS5zdHlsZSxtPWY9PT12b2lkIDA/bjpmLGI9aS5jdXN0b21TdHlsZSxoPWI9PT12b2lkIDA/e306YixTPWkuY29kZVRhZ1Byb3BzLEU9Uz09PXZvaWQgMD97Y2xhc3NOYW1lOmM/Imxhbmd1YWdlLSIuY29uY2F0KGMpOnZvaWQgMCxzdHlsZTpDcihDcih7fSxtWydjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0nXSksbVsnY29kZVtjbGFzcyo9Imxhbmd1YWdlLScuY29uY2F0KGMsJyJdJyldKX06UyxfPWkudXNlSW5saW5lU3R5bGVzLFQ9Xz09PXZvaWQgMD8hMDpfLEM9aS5zaG93TGluZU51bWJlcnMseD1DPT09dm9pZCAwPyExOkMsTj1pLnNob3dJbmxpbmVMaW5lTnVtYmVycyxrPU49PT12b2lkIDA/ITA6TixMPWkuc3RhcnRpbmdMaW5lTnVtYmVyLEY9TD09PXZvaWQgMD8xOkwsUj1pLmxpbmVOdW1iZXJDb250YWluZXJTdHlsZSxNPWkubGluZU51bWJlclN0eWxlLFk9TT09PXZvaWQgMD97fTpNLHo9aS53cmFwTGluZXMsVT1pLndyYXBMb25nTGluZXMsJD1VPT09dm9pZCAwPyExOlUsSj1pLmxpbmVQcm9wcyxvZT1KPT09dm9pZCAwP3t9OkosaWU9aS5yZW5kZXJlcixsZT1pLlByZVRhZyxHPWxlPT09dm9pZCAwPyJwcmUiOmxlLGVlPWkuQ29kZVRhZyxuZT1lZT09PXZvaWQgMD8iY29kZSI6ZWUsZmU9aS5jb2RlLEk9ZmU9PT12b2lkIDA/KEFycmF5LmlzQXJyYXkoZCk/ZFswXTpkKXx8IiI6ZmUsTz1pLmFzdEdlbmVyYXRvcixWPWVMKGkscEwpO089T3x8ZTt2YXIgdz14P0VuLmNyZWF0ZUVsZW1lbnQoaEwse2NvbnRhaW5lclN0eWxlOlIsY29kZVN0eWxlOkUuc3R5bGV8fHt9LG51bWJlclN0eWxlOlksc3RhcnRpbmdMaW5lTnVtYmVyOkYsY29kZVN0cmluZzpJfSk6bnVsbCx0ZT1tLmhsanN8fG1bJ3ByZVtjbGFzcyo9Imxhbmd1YWdlLSJdJ118fHtiYWNrZ3JvdW5kQ29sb3I6IiNmZmYifSxzZT1vayhPKT8iaGxqcyI6InByaXNtanMiLGNlPVQ/T2JqZWN0LmFzc2lnbih7fSxWLHtzdHlsZTpPYmplY3QuYXNzaWduKHt9LHRlLGgpfSk6T2JqZWN0LmFzc2lnbih7fSxWLHtjbGFzc05hbWU6Vi5jbGFzc05hbWU/IiIuY29uY2F0KHNlLCIgIikuY29uY2F0KFYuY2xhc3NOYW1lKTpzZSxzdHlsZTpPYmplY3QuYXNzaWduKHt9LGgpfSk7aWYoJD9FLnN0eWxlPUNyKHt3aGl0ZVNwYWNlOiJwcmUtd3JhcCJ9LEUuc3R5bGUpOkUuc3R5bGU9Q3Ioe3doaXRlU3BhY2U6InByZSJ9LEUuc3R5bGUpLCFPKXJldHVybiBFbi5jcmVhdGVFbGVtZW50KEcsY2UsdyxFbi5jcmVhdGVFbGVtZW50KG5lLEUsSSkpOyh6PT09dm9pZCAwJiZpZXx8JCkmJih6PSEwKSxpZT1pZXx8RUw7dmFyIGhlPVt7dHlwZToidGV4dCIsdmFsdWU6SX1dLEllPVNMKHthc3RHZW5lcmF0b3I6TyxsYW5ndWFnZTpjLGNvZGU6SSxkZWZhdWx0Q29kZVZhbHVlOmhlfSk7SWUubGFuZ3VhZ2U9PT1udWxsJiYoSWUudmFsdWU9aGUpO3ZhciB3ZT0obD0odT1JLm1hdGNoKC9cbi9nKSk9PT1udWxsfHx1PT09dm9pZCAwP3ZvaWQgMDp1Lmxlbmd0aCkhPT1udWxsJiZsIT09dm9pZCAwP2w6MCxpdD1GK3dlLGZ0PXlMKEllLHosb2UseCxrLEYsaXQsWSwkKTtyZXR1cm4gRW4uY3JlYXRlRWxlbWVudChHLGNlLEVuLmNyZWF0ZUVsZW1lbnQobmUsRSwhayYmdyxpZSh7cm93czpmdCxzdHlsZXNoZWV0Om0sdXNlSW5saW5lU3R5bGVzOlR9KSkpfX1jb25zdCBUTD1bImFiYXAiLCJhYm5mIiwiYWN0aW9uc2NyaXB0IiwiYWRhIiwiYWdkYSIsImFsIiwiYW50bHI0IiwiYXBhY2hlY29uZiIsImFwZXgiLCJhcGwiLCJhcHBsZXNjcmlwdCIsImFxbCIsImFyZHVpbm8iLCJhcmZmIiwiYXNjaWlkb2MiLCJhc202NTAyIiwiYXNtYXRtZWwiLCJhc3BuZXQiLCJhdXRvaG90a2V5IiwiYXV0b2l0IiwiYXZpc3ludGgiLCJhdnJvLWlkbCIsImJhc2giLCJiYXNpYyIsImJhdGNoIiwiYmJjb2RlIiwiYmljZXAiLCJiaXJiIiwiYmlzb24iLCJibmYiLCJicmFpbmZ1Y2siLCJicmlnaHRzY3JpcHQiLCJicm8iLCJic2wiLCJjIiwiY2ZzY3JpcHQiLCJjaGFpc2NyaXB0IiwiY2lsIiwiY2xpa2UiLCJjbG9qdXJlIiwiY21ha2UiLCJjb2JvbCIsImNvZmZlZXNjcmlwdCIsImNvbmN1cm5hcyIsImNvcSIsImNwcCIsImNyeXN0YWwiLCJjc2hhcnAiLCJjc2h0bWwiLCJjc3AiLCJjc3MtZXh0cmFzIiwiY3NzIiwiY3N2IiwiY3lwaGVyIiwiZCIsImRhcnQiLCJkYXRhd2VhdmUiLCJkYXgiLCJkaGFsbCIsImRpZmYiLCJkamFuZ28iLCJkbnMtem9uZS1maWxlIiwiZG9ja2VyIiwiZG90IiwiZWJuZiIsImVkaXRvcmNvbmZpZyIsImVpZmZlbCIsImVqcyIsImVsaXhpciIsImVsbSIsImVyYiIsImVybGFuZyIsImV0bHVhIiwiZXhjZWwtZm9ybXVsYSIsImZhY3RvciIsImZhbHNlIiwiZmlyZXN0b3JlLXNlY3VyaXR5LXJ1bGVzIiwiZmxvdyIsImZvcnRyYW4iLCJmc2hhcnAiLCJmdGwiLCJnYXAiLCJnY29kZSIsImdkc2NyaXB0IiwiZ2VkY29tIiwiZ2hlcmtpbiIsImdpdCIsImdsc2wiLCJnbWwiLCJnbiIsImdvLW1vZHVsZSIsImdvIiwiZ3JhcGhxbCIsImdyb292eSIsImhhbWwiLCJoYW5kbGViYXJzIiwiaGFza2VsbCIsImhheGUiLCJoY2wiLCJobHNsIiwiaG9vbiIsImhwa3AiLCJoc3RzIiwiaHR0cCIsImljaGlnb2phbSIsImljb24iLCJpY3UtbWVzc2FnZS1mb3JtYXQiLCJpZHJpcyIsImllY3N0IiwiaWdub3JlIiwiaW5mb3JtNyIsImluaSIsImlvIiwiaiIsImphdmEiLCJqYXZhZG9jIiwiamF2YWRvY2xpa2UiLCJqYXZhc2NyaXB0IiwiamF2YXN0YWNrdHJhY2UiLCJqZXhsIiwiam9saWUiLCJqcSIsImpzLWV4dHJhcyIsImpzLXRlbXBsYXRlcyIsImpzZG9jIiwianNvbiIsImpzb241IiwianNvbnAiLCJqc3N0YWNrdHJhY2UiLCJqc3giLCJqdWxpYSIsImtlZXBhbGl2ZWQiLCJrZXltYW4iLCJrb3RsaW4iLCJrdW1pciIsImt1c3RvIiwibGF0ZXgiLCJsYXR0ZSIsImxlc3MiLCJsaWx5cG9uZCIsImxpcXVpZCIsImxpc3AiLCJsaXZlc2NyaXB0IiwibGx2bSIsImxvZyIsImxvbGNvZGUiLCJsdWEiLCJtYWdtYSIsIm1ha2VmaWxlIiwibWFya2Rvd24iLCJtYXJrdXAtdGVtcGxhdGluZyIsIm1hcmt1cCIsIm1hdGxhYiIsIm1heHNjcmlwdCIsIm1lbCIsIm1lcm1haWQiLCJtaXphciIsIm1vbmdvZGIiLCJtb25rZXkiLCJtb29uc2NyaXB0IiwibjFxbCIsIm40anMiLCJuYW5kMnRldHJpcy1oZGwiLCJuYW5pc2NyaXB0IiwibmFzbSIsIm5lb24iLCJuZXZvZCIsIm5naW54IiwibmltIiwibml4IiwibnNpcyIsIm9iamVjdGl2ZWMiLCJvY2FtbCIsIm9wZW5jbCIsIm9wZW5xYXNtIiwib3oiLCJwYXJpZ3AiLCJwYXJzZXIiLCJwYXNjYWwiLCJwYXNjYWxpZ28iLCJwY2F4aXMiLCJwZW9wbGVjb2RlIiwicGVybCIsInBocC1leHRyYXMiLCJwaHAiLCJwaHBkb2MiLCJwbHNxbCIsInBvd2VycXVlcnkiLCJwb3dlcnNoZWxsIiwicHJvY2Vzc2luZyIsInByb2xvZyIsInByb21xbCIsInByb3BlcnRpZXMiLCJwcm90b2J1ZiIsInBzbCIsInB1ZyIsInB1cHBldCIsInB1cmUiLCJwdXJlYmFzaWMiLCJwdXJlc2NyaXB0IiwicHl0aG9uIiwicSIsInFtbCIsInFvcmUiLCJxc2hhcnAiLCJyIiwicmFja2V0IiwicmVhc29uIiwicmVnZXgiLCJyZWdvIiwicmVucHkiLCJyZXN0IiwicmlwIiwicm9ib2NvbmYiLCJyb2JvdGZyYW1ld29yayIsInJ1YnkiLCJydXN0Iiwic2FzIiwic2FzcyIsInNjYWxhIiwic2NoZW1lIiwic2NzcyIsInNoZWxsLXNlc3Npb24iLCJzbWFsaSIsInNtYWxsdGFsayIsInNtYXJ0eSIsInNtbCIsInNvbGlkaXR5Iiwic29sdXRpb24tZmlsZSIsInNveSIsInNwYXJxbCIsInNwbHVuay1zcGwiLCJzcWYiLCJzcWwiLCJzcXVpcnJlbCIsInN0YW4iLCJzdHlsdXMiLCJzd2lmdCIsInN5c3RlbWQiLCJ0NC1jcyIsInQ0LXRlbXBsYXRpbmciLCJ0NC12YiIsInRhcCIsInRjbCIsInRleHRpbGUiLCJ0b21sIiwidHJlbW9yIiwidHN4IiwidHQyIiwidHVydGxlIiwidHdpZyIsInR5cGVzY3JpcHQiLCJ0eXBvc2NyaXB0IiwidW5yZWFsc2NyaXB0IiwidW9yYXpvciIsInVyaSIsInYiLCJ2YWxhIiwidmJuZXQiLCJ2ZWxvY2l0eSIsInZlcmlsb2ciLCJ2aGRsIiwidmltIiwidmlzdWFsLWJhc2ljIiwid2FycHNjcmlwdCIsIndhc20iLCJ3ZWItaWRsIiwid2lraSIsIndvbGZyYW0iLCJ3cmVuIiwieGVvcmEiLCJ4bWwtZG9jIiwieG9qbyIsInhxdWVyeSIsInlhbWwiLCJ5YW5nIiwiemlnIl07dmFyIHZjLHRUO2Z1bmN0aW9uIHhMKCl7aWYodFQpcmV0dXJuIHZjO3RUPTEsdmM9bjt2YXIgZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIG4oKXtmb3IodmFyIGE9e30saT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBsPWFyZ3VtZW50c1tpXTtmb3IodmFyIHUgaW4gbCllLmNhbGwobCx1KSYmKGFbdV09bFt1XSl9cmV0dXJuIGF9cmV0dXJuIHZjfXZhciBUYyxuVDtmdW5jdGlvbiBsaygpe2lmKG5UKXJldHVybiBUYztuVD0xLFRjPW47dmFyIGU9bi5wcm90b3R5cGU7ZS5zcGFjZT1udWxsLGUubm9ybWFsPXt9LGUucHJvcGVydHk9e307ZnVuY3Rpb24gbihhLGksbCl7dGhpcy5wcm9wZXJ0eT1hLHRoaXMubm9ybWFsPWksbCYmKHRoaXMuc3BhY2U9bCl9cmV0dXJuIFRjfXZhciB4YyxyVDtmdW5jdGlvbiBBTCgpe2lmKHJUKXJldHVybiB4YztyVD0xO3ZhciBlPXhMKCksbj1saygpO3hjPWE7ZnVuY3Rpb24gYShpKXtmb3IodmFyIGw9aS5sZW5ndGgsdT1bXSxjPVtdLGQ9LTEsZixtOysrZDxsOylmPWlbZF0sdS5wdXNoKGYucHJvcGVydHkpLGMucHVzaChmLm5vcm1hbCksbT1mLnNwYWNlO3JldHVybiBuZXcgbihlLmFwcGx5KG51bGwsdSksZS5hcHBseShudWxsLGMpLG0pfXJldHVybiB4Y312YXIgQWMsYVQ7ZnVuY3Rpb24gSmgoKXtpZihhVClyZXR1cm4gQWM7YVQ9MSxBYz1lO2Z1bmN0aW9uIGUobil7cmV0dXJuIG4udG9Mb3dlckNhc2UoKX1yZXR1cm4gQWN9dmFyIF9jLGlUO2Z1bmN0aW9uIHNrKCl7aWYoaVQpcmV0dXJuIF9jO2lUPTEsX2M9bjt2YXIgZT1uLnByb3RvdHlwZTtlLnNwYWNlPW51bGwsZS5hdHRyaWJ1dGU9bnVsbCxlLnByb3BlcnR5PW51bGwsZS5ib29sZWFuPSExLGUuYm9vbGVhbmlzaD0hMSxlLm92ZXJsb2FkZWRCb29sZWFuPSExLGUubnVtYmVyPSExLGUuY29tbWFTZXBhcmF0ZWQ9ITEsZS5zcGFjZVNlcGFyYXRlZD0hMSxlLmNvbW1hT3JTcGFjZVNlcGFyYXRlZD0hMSxlLm11c3RVc2VQcm9wZXJ0eT0hMSxlLmRlZmluZWQ9ITE7ZnVuY3Rpb24gbihhLGkpe3RoaXMucHJvcGVydHk9YSx0aGlzLmF0dHJpYnV0ZT1pfXJldHVybiBfY312YXIgbnI9e30sb1Q7ZnVuY3Rpb24gZWIoKXtpZihvVClyZXR1cm4gbnI7b1Q9MTt2YXIgZT0wO25yLmJvb2xlYW49bigpLG5yLmJvb2xlYW5pc2g9bigpLG5yLm92ZXJsb2FkZWRCb29sZWFuPW4oKSxuci5udW1iZXI9bigpLG5yLnNwYWNlU2VwYXJhdGVkPW4oKSxuci5jb21tYVNlcGFyYXRlZD1uKCksbnIuY29tbWFPclNwYWNlU2VwYXJhdGVkPW4oKTtmdW5jdGlvbiBuKCl7cmV0dXJuIE1hdGgucG93KDIsKytlKX1yZXR1cm4gbnJ9dmFyIFJjLGxUO2Z1bmN0aW9uIHVrKCl7aWYobFQpcmV0dXJuIFJjO2xUPTE7dmFyIGU9c2soKSxuPWViKCk7UmM9bCxsLnByb3RvdHlwZT1uZXcgZSxsLnByb3RvdHlwZS5kZWZpbmVkPSEwO3ZhciBhPVsiYm9vbGVhbiIsImJvb2xlYW5pc2giLCJvdmVybG9hZGVkQm9vbGVhbiIsIm51bWJlciIsImNvbW1hU2VwYXJhdGVkIiwic3BhY2VTZXBhcmF0ZWQiLCJjb21tYU9yU3BhY2VTZXBhcmF0ZWQiXSxpPWEubGVuZ3RoO2Z1bmN0aW9uIGwoYyxkLGYsbSl7dmFyIGI9LTEsaDtmb3IodSh0aGlzLCJzcGFjZSIsbSksZS5jYWxsKHRoaXMsYyxkKTsrK2I8aTspaD1hW2JdLHUodGhpcyxoLChmJm5baF0pPT09bltoXSl9ZnVuY3Rpb24gdShjLGQsZil7ZiYmKGNbZF09Zil9cmV0dXJuIFJjfXZhciBOYyxzVDtmdW5jdGlvbiBzbygpe2lmKHNUKXJldHVybiBOYztzVD0xO3ZhciBlPUpoKCksbj1saygpLGE9dWsoKTtOYz1pO2Z1bmN0aW9uIGkobCl7dmFyIHU9bC5zcGFjZSxjPWwubXVzdFVzZVByb3BlcnR5fHxbXSxkPWwuYXR0cmlidXRlc3x8e30sZj1sLnByb3BlcnRpZXMsbT1sLnRyYW5zZm9ybSxiPXt9LGg9e30sUyxFO2ZvcihTIGluIGYpRT1uZXcgYShTLG0oZCxTKSxmW1NdLHUpLGMuaW5kZXhPZihTKSE9PS0xJiYoRS5tdXN0VXNlUHJvcGVydHk9ITApLGJbU109RSxoW2UoUyldPVMsaFtlKEUuYXR0cmlidXRlKV09UztyZXR1cm4gbmV3IG4oYixoLHUpfXJldHVybiBOY312YXIgd2MsdVQ7ZnVuY3Rpb24gX0woKXtpZih1VClyZXR1cm4gd2M7dVQ9MTt2YXIgZT1zbygpO3djPWUoe3NwYWNlOiJ4bGluayIsdHJhbnNmb3JtOm4scHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfX0pO2Z1bmN0aW9uIG4oYSxpKXtyZXR1cm4ieGxpbms6IitpLnNsaWNlKDUpLnRvTG93ZXJDYXNlKCl9cmV0dXJuIHdjfXZhciBrYyxjVDtmdW5jdGlvbiBSTCgpe2lmKGNUKXJldHVybiBrYztjVD0xO3ZhciBlPXNvKCk7a2M9ZSh7c3BhY2U6InhtbCIsdHJhbnNmb3JtOm4scHJvcGVydGllczp7eG1sTGFuZzpudWxsLHhtbEJhc2U6bnVsbCx4bWxTcGFjZTpudWxsfX0pO2Z1bmN0aW9uIG4oYSxpKXtyZXR1cm4ieG1sOiIraS5zbGljZSgzKS50b0xvd2VyQ2FzZSgpfXJldHVybiBrY312YXIgQ2MsZFQ7ZnVuY3Rpb24gTkwoKXtpZihkVClyZXR1cm4gQ2M7ZFQ9MSxDYz1lO2Z1bmN0aW9uIGUobixhKXtyZXR1cm4gYSBpbiBuP25bYV06YX1yZXR1cm4gQ2N9dmFyIEljLHBUO2Z1bmN0aW9uIGNrKCl7aWYocFQpcmV0dXJuIEljO3BUPTE7dmFyIGU9TkwoKTtJYz1uO2Z1bmN0aW9uIG4oYSxpKXtyZXR1cm4gZShhLGkudG9Mb3dlckNhc2UoKSl9cmV0dXJuIEljfXZhciBPYyxmVDtmdW5jdGlvbiB3TCgpe2lmKGZUKXJldHVybiBPYztmVD0xO3ZhciBlPXNvKCksbj1jaygpO3JldHVybiBPYz1lKHtzcGFjZToieG1sbnMiLGF0dHJpYnV0ZXM6e3htbG5zeGxpbms6InhtbG5zOnhsaW5rIn0sdHJhbnNmb3JtOm4scHJvcGVydGllczp7eG1sbnM6bnVsbCx4bWxuc1hMaW5rOm51bGx9fSksT2N9dmFyIExjLGdUO2Z1bmN0aW9uIGtMKCl7aWYoZ1QpcmV0dXJuIExjO2dUPTE7dmFyIGU9ZWIoKSxuPXNvKCksYT1lLmJvb2xlYW5pc2gsaT1lLm51bWJlcixsPWUuc3BhY2VTZXBhcmF0ZWQ7TGM9bih7dHJhbnNmb3JtOnUscHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOmEsYXJpYUF1dG9Db21wbGV0ZTpudWxsLGFyaWFCdXN5OmEsYXJpYUNoZWNrZWQ6YSxhcmlhQ29sQ291bnQ6aSxhcmlhQ29sSW5kZXg6aSxhcmlhQ29sU3BhbjppLGFyaWFDb250cm9sczpsLGFyaWFDdXJyZW50Om51bGwsYXJpYURlc2NyaWJlZEJ5OmwsYXJpYURldGFpbHM6bnVsbCxhcmlhRGlzYWJsZWQ6YSxhcmlhRHJvcEVmZmVjdDpsLGFyaWFFcnJvck1lc3NhZ2U6bnVsbCxhcmlhRXhwYW5kZWQ6YSxhcmlhRmxvd1RvOmwsYXJpYUdyYWJiZWQ6YSxhcmlhSGFzUG9wdXA6bnVsbCxhcmlhSGlkZGVuOmEsYXJpYUludmFsaWQ6bnVsbCxhcmlhS2V5U2hvcnRjdXRzOm51bGwsYXJpYUxhYmVsOm51bGwsYXJpYUxhYmVsbGVkQnk6bCxhcmlhTGV2ZWw6aSxhcmlhTGl2ZTpudWxsLGFyaWFNb2RhbDphLGFyaWFNdWx0aUxpbmU6YSxhcmlhTXVsdGlTZWxlY3RhYmxlOmEsYXJpYU9yaWVudGF0aW9uOm51bGwsYXJpYU93bnM6bCxhcmlhUGxhY2Vob2xkZXI6bnVsbCxhcmlhUG9zSW5TZXQ6aSxhcmlhUHJlc3NlZDphLGFyaWFSZWFkT25seTphLGFyaWFSZWxldmFudDpudWxsLGFyaWFSZXF1aXJlZDphLGFyaWFSb2xlRGVzY3JpcHRpb246bCxhcmlhUm93Q291bnQ6aSxhcmlhUm93SW5kZXg6aSxhcmlhUm93U3BhbjppLGFyaWFTZWxlY3RlZDphLGFyaWFTZXRTaXplOmksYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6aSxhcmlhVmFsdWVNaW46aSxhcmlhVmFsdWVOb3c6aSxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfX0pO2Z1bmN0aW9uIHUoYyxkKXtyZXR1cm4gZD09PSJyb2xlIj9kOiJhcmlhLSIrZC5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfXJldHVybiBMY312YXIgRGMsbVQ7ZnVuY3Rpb24gQ0woKXtpZihtVClyZXR1cm4gRGM7bVQ9MTt2YXIgZT1lYigpLG49c28oKSxhPWNrKCksaT1lLmJvb2xlYW4sbD1lLm92ZXJsb2FkZWRCb29sZWFuLHU9ZS5ib29sZWFuaXNoLGM9ZS5udW1iZXIsZD1lLnNwYWNlU2VwYXJhdGVkLGY9ZS5jb21tYVNlcGFyYXRlZDtyZXR1cm4gRGM9bih7c3BhY2U6Imh0bWwiLGF0dHJpYnV0ZXM6e2FjY2VwdGNoYXJzZXQ6ImFjY2VwdC1jaGFyc2V0IixjbGFzc25hbWU6ImNsYXNzIixodG1sZm9yOiJmb3IiLGh0dHBlcXVpdjoiaHR0cC1lcXVpdiJ9LHRyYW5zZm9ybTphLG11c3RVc2VQcm9wZXJ0eTpbImNoZWNrZWQiLCJtdWx0aXBsZSIsIm11dGVkIiwic2VsZWN0ZWQiXSxwcm9wZXJ0aWVzOnthYmJyOm51bGwsYWNjZXB0OmYsYWNjZXB0Q2hhcnNldDpkLGFjY2Vzc0tleTpkLGFjdGlvbjpudWxsLGFsbG93Om51bGwsYWxsb3dGdWxsU2NyZWVuOmksYWxsb3dQYXltZW50UmVxdWVzdDppLGFsbG93VXNlck1lZGlhOmksYWx0Om51bGwsYXM6bnVsbCxhc3luYzppLGF1dG9DYXBpdGFsaXplOm51bGwsYXV0b0NvbXBsZXRlOmQsYXV0b0ZvY3VzOmksYXV0b1BsYXk6aSxjYXB0dXJlOmksY2hhclNldDpudWxsLGNoZWNrZWQ6aSxjaXRlOm51bGwsY2xhc3NOYW1lOmQsY29sczpjLGNvbFNwYW46bnVsbCxjb250ZW50Om51bGwsY29udGVudEVkaXRhYmxlOnUsY29udHJvbHM6aSxjb250cm9sc0xpc3Q6ZCxjb29yZHM6Y3xmLGNyb3NzT3JpZ2luOm51bGwsZGF0YTpudWxsLGRhdGVUaW1lOm51bGwsZGVjb2Rpbmc6bnVsbCxkZWZhdWx0OmksZGVmZXI6aSxkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6aSxkb3dubG9hZDpsLGRyYWdnYWJsZTp1LGVuY1R5cGU6bnVsbCxlbnRlcktleUhpbnQ6bnVsbCxmb3JtOm51bGwsZm9ybUFjdGlvbjpudWxsLGZvcm1FbmNUeXBlOm51bGwsZm9ybU1ldGhvZDpudWxsLGZvcm1Ob1ZhbGlkYXRlOmksZm9ybVRhcmdldDpudWxsLGhlYWRlcnM6ZCxoZWlnaHQ6YyxoaWRkZW46aSxoaWdoOmMsaHJlZjpudWxsLGhyZWZMYW5nOm51bGwsaHRtbEZvcjpkLGh0dHBFcXVpdjpkLGlkOm51bGwsaW1hZ2VTaXplczpudWxsLGltYWdlU3JjU2V0OmYsaW5wdXRNb2RlOm51bGwsaW50ZWdyaXR5Om51bGwsaXM6bnVsbCxpc01hcDppLGl0ZW1JZDpudWxsLGl0ZW1Qcm9wOmQsaXRlbVJlZjpkLGl0ZW1TY29wZTppLGl0ZW1UeXBlOmQsa2luZDpudWxsLGxhYmVsOm51bGwsbGFuZzpudWxsLGxhbmd1YWdlOm51bGwsbGlzdDpudWxsLGxvYWRpbmc6bnVsbCxsb29wOmksbG93OmMsbWFuaWZlc3Q6bnVsbCxtYXg6bnVsbCxtYXhMZW5ndGg6YyxtZWRpYTpudWxsLG1ldGhvZDpudWxsLG1pbjpudWxsLG1pbkxlbmd0aDpjLG11bHRpcGxlOmksbXV0ZWQ6aSxuYW1lOm51bGwsbm9uY2U6bnVsbCxub01vZHVsZTppLG5vVmFsaWRhdGU6aSxvbkFib3J0Om51bGwsb25BZnRlclByaW50Om51bGwsb25BdXhDbGljazpudWxsLG9uQmVmb3JlUHJpbnQ6bnVsbCxvbkJlZm9yZVVubG9hZDpudWxsLG9uQmx1cjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvbnRleHRNZW51Om51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZGVkOm51bGwsb25FcnJvcjpudWxsLG9uRm9jdXM6bnVsbCxvbkZvcm1EYXRhOm51bGwsb25IYXNoQ2hhbmdlOm51bGwsb25JbnB1dDpudWxsLG9uSW52YWxpZDpudWxsLG9uS2V5RG93bjpudWxsLG9uS2V5UHJlc3M6bnVsbCxvbktleVVwOm51bGwsb25MYW5ndWFnZUNoYW5nZTpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRFbmQ6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTWVzc2FnZUVycm9yOm51bGwsb25Nb3VzZURvd246bnVsbCxvbk1vdXNlRW50ZXI6bnVsbCxvbk1vdXNlTGVhdmU6bnVsbCxvbk1vdXNlTW92ZTpudWxsLG9uTW91c2VPdXQ6bnVsbCxvbk1vdXNlT3ZlcjpudWxsLG9uTW91c2VVcDpudWxsLG9uT2ZmbGluZTpudWxsLG9uT25saW5lOm51bGwsb25QYWdlSGlkZTpudWxsLG9uUGFnZVNob3c6bnVsbCxvblBhc3RlOm51bGwsb25QYXVzZTpudWxsLG9uUGxheTpudWxsLG9uUGxheWluZzpudWxsLG9uUG9wU3RhdGU6bnVsbCxvblByb2dyZXNzOm51bGwsb25SYXRlQ2hhbmdlOm51bGwsb25SZWplY3Rpb25IYW5kbGVkOm51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2xvdENoYW5nZTpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVuaGFuZGxlZFJlamVjdGlvbjpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvbldoZWVsOm51bGwsb3BlbjppLG9wdGltdW06YyxwYXR0ZXJuOm51bGwscGluZzpkLHBsYWNlaG9sZGVyOm51bGwscGxheXNJbmxpbmU6aSxwb3N0ZXI6bnVsbCxwcmVsb2FkOm51bGwscmVhZE9ubHk6aSxyZWZlcnJlclBvbGljeTpudWxsLHJlbDpkLHJlcXVpcmVkOmkscmV2ZXJzZWQ6aSxyb3dzOmMscm93U3BhbjpjLHNhbmRib3g6ZCxzY29wZTpudWxsLHNjb3BlZDppLHNlYW1sZXNzOmksc2VsZWN0ZWQ6aSxzaGFwZTpudWxsLHNpemU6YyxzaXplczpudWxsLHNsb3Q6bnVsbCxzcGFuOmMsc3BlbGxDaGVjazp1LHNyYzpudWxsLHNyY0RvYzpudWxsLHNyY0xhbmc6bnVsbCxzcmNTZXQ6ZixzdGFydDpjLHN0ZXA6bnVsbCxzdHlsZTpudWxsLHRhYkluZGV4OmMsdGFyZ2V0Om51bGwsdGl0bGU6bnVsbCx0cmFuc2xhdGU6bnVsbCx0eXBlOm51bGwsdHlwZU11c3RNYXRjaDppLHVzZU1hcDpudWxsLHZhbHVlOnUsd2lkdGg6Yyx3cmFwOm51bGwsYWxpZ246bnVsbCxhTGluazpudWxsLGFyY2hpdmU6ZCxheGlzOm51bGwsYmFja2dyb3VuZDpudWxsLGJnQ29sb3I6bnVsbCxib3JkZXI6Yyxib3JkZXJDb2xvcjpudWxsLGJvdHRvbU1hcmdpbjpjLGNlbGxQYWRkaW5nOm51bGwsY2VsbFNwYWNpbmc6bnVsbCxjaGFyOm51bGwsY2hhck9mZjpudWxsLGNsYXNzSWQ6bnVsbCxjbGVhcjpudWxsLGNvZGU6bnVsbCxjb2RlQmFzZTpudWxsLGNvZGVUeXBlOm51bGwsY29sb3I6bnVsbCxjb21wYWN0OmksZGVjbGFyZTppLGV2ZW50Om51bGwsZmFjZTpudWxsLGZyYW1lOm51bGwsZnJhbWVCb3JkZXI6bnVsbCxoU3BhY2U6YyxsZWZ0TWFyZ2luOmMsbGluazpudWxsLGxvbmdEZXNjOm51bGwsbG93U3JjOm51bGwsbWFyZ2luSGVpZ2h0OmMsbWFyZ2luV2lkdGg6Yyxub1Jlc2l6ZTppLG5vSHJlZjppLG5vU2hhZGU6aSxub1dyYXA6aSxvYmplY3Q6bnVsbCxwcm9maWxlOm51bGwscHJvbXB0Om51bGwscmV2Om51bGwscmlnaHRNYXJnaW46YyxydWxlczpudWxsLHNjaGVtZTpudWxsLHNjcm9sbGluZzp1LHN0YW5kYnk6bnVsbCxzdW1tYXJ5Om51bGwsdGV4dDpudWxsLHRvcE1hcmdpbjpjLHZhbHVlVHlwZTpudWxsLHZlcnNpb246bnVsbCx2QWxpZ246bnVsbCx2TGluazpudWxsLHZTcGFjZTpjLGFsbG93VHJhbnNwYXJlbmN5Om51bGwsYXV0b0NvcnJlY3Q6bnVsbCxhdXRvU2F2ZTpudWxsLGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlOmksZGlzYWJsZVJlbW90ZVBsYXliYWNrOmkscHJlZml4Om51bGwscHJvcGVydHk6bnVsbCxyZXN1bHRzOmMsc2VjdXJpdHk6bnVsbCx1bnNlbGVjdGFibGU6bnVsbH19KSxEY312YXIgTWMsaFQ7ZnVuY3Rpb24gSUwoKXtpZihoVClyZXR1cm4gTWM7aFQ9MTt2YXIgZT1BTCgpLG49X0woKSxhPVJMKCksaT13TCgpLGw9a0woKSx1PUNMKCk7cmV0dXJuIE1jPWUoW2EsbixpLGwsdV0pLE1jfXZhciBVYyxiVDtmdW5jdGlvbiBPTCgpe2lmKGJUKXJldHVybiBVYztiVD0xO3ZhciBlPUpoKCksbj11aygpLGE9c2soKSxpPSJkYXRhIjtVYz1kO3ZhciBsPS9eZGF0YVstXHcuOl0rJC9pLHU9Ly1bYS16XS9nLGM9L1tBLVpdL2c7ZnVuY3Rpb24gZChTLEUpe3ZhciBfPWUoRSksVD1FLEM9YTtyZXR1cm4gXyBpbiBTLm5vcm1hbD9TLnByb3BlcnR5W1Mubm9ybWFsW19dXTooXy5sZW5ndGg+NCYmXy5zbGljZSgwLDQpPT09aSYmbC50ZXN0KEUpJiYoRS5jaGFyQXQoNCk9PT0iLSI/VD1mKEUpOkU9bShFKSxDPW4pLG5ldyBDKFQsRSkpfWZ1bmN0aW9uIGYoUyl7dmFyIEU9Uy5zbGljZSg1KS5yZXBsYWNlKHUsaCk7cmV0dXJuIGkrRS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStFLnNsaWNlKDEpfWZ1bmN0aW9uIG0oUyl7dmFyIEU9Uy5zbGljZSg0KTtyZXR1cm4gdS50ZXN0KEUpP1M6KEU9RS5yZXBsYWNlKGMsYiksRS5jaGFyQXQoMCkhPT0iLSImJihFPSItIitFKSxpK0UpfWZ1bmN0aW9uIGIoUyl7cmV0dXJuIi0iK1MudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBoKFMpe3JldHVybiBTLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpfXJldHVybiBVY312YXIgRmMseVQ7ZnVuY3Rpb24gTEwoKXtpZih5VClyZXR1cm4gRmM7eVQ9MSxGYz1uO3ZhciBlPS9bIy5dL2c7ZnVuY3Rpb24gbihhLGkpe2Zvcih2YXIgbD1hfHwiIix1PWl8fCJkaXYiLGM9e30sZD0wLGYsbSxiO2Q8bC5sZW5ndGg7KWUubGFzdEluZGV4PWQsYj1lLmV4ZWMobCksZj1sLnNsaWNlKGQsYj9iLmluZGV4OmwubGVuZ3RoKSxmJiYobT9tPT09IiMiP2MuaWQ9ZjpjLmNsYXNzTmFtZT9jLmNsYXNzTmFtZS5wdXNoKGYpOmMuY2xhc3NOYW1lPVtmXTp1PWYsZCs9Zi5sZW5ndGgpLGImJihtPWJbMF0sZCsrKTtyZXR1cm57dHlwZToiZWxlbWVudCIsdGFnTmFtZTp1LHByb3BlcnRpZXM6YyxjaGlsZHJlbjpbXX19cmV0dXJuIEZjfXZhciBSbD17fSxFVDtmdW5jdGlvbiBETCgpe2lmKEVUKXJldHVybiBSbDtFVD0xLFJsLnBhcnNlPWksUmwuc3RyaW5naWZ5PWw7dmFyIGU9IiIsbj0iICIsYT0vWyBcdFxuXHJcZl0rL2c7ZnVuY3Rpb24gaSh1KXt2YXIgYz1TdHJpbmcodXx8ZSkudHJpbSgpO3JldHVybiBjPT09ZT9bXTpjLnNwbGl0KGEpfWZ1bmN0aW9uIGwodSl7cmV0dXJuIHUuam9pbihuKS50cmltKCl9cmV0dXJuIFJsfXZhciBObD17fSxTVDtmdW5jdGlvbiBNTCgpe2lmKFNUKXJldHVybiBObDtTVD0xLE5sLnBhcnNlPWksTmwuc3RyaW5naWZ5PWw7dmFyIGU9IiwiLG49IiAiLGE9IiI7ZnVuY3Rpb24gaSh1KXtmb3IodmFyIGM9W10sZD1TdHJpbmcodXx8YSksZj1kLmluZGV4T2YoZSksbT0wLGI9ITEsaDshYjspZj09PS0xJiYoZj1kLmxlbmd0aCxiPSEwKSxoPWQuc2xpY2UobSxmKS50cmltKCksKGh8fCFiKSYmYy5wdXNoKGgpLG09ZisxLGY9ZC5pbmRleE9mKGUsbSk7cmV0dXJuIGN9ZnVuY3Rpb24gbCh1LGMpe3ZhciBkPWN8fHt9LGY9ZC5wYWRMZWZ0PT09ITE/YTpuLG09ZC5wYWRSaWdodD9uOmE7cmV0dXJuIHVbdS5sZW5ndGgtMV09PT1hJiYodT11LmNvbmNhdChhKSksdS5qb2luKG0rZStmKS50cmltKCl9cmV0dXJuIE5sfXZhciBCYyx2VDtmdW5jdGlvbiBVTCgpe2lmKHZUKXJldHVybiBCYzt2VD0xO3ZhciBlPU9MKCksbj1KaCgpLGE9TEwoKSxpPURMKCkucGFyc2UsbD1NTCgpLnBhcnNlO0JjPWM7dmFyIHU9e30uaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYyhfLFQsQyl7dmFyIHg9Qz9FKEMpOm51bGw7cmV0dXJuIE47ZnVuY3Rpb24gTihMLEYpe3ZhciBSPWEoTCxUKSxNPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSxZPVIudGFnTmFtZS50b0xvd2VyQ2FzZSgpLHo7aWYoUi50YWdOYW1lPXgmJnUuY2FsbCh4LFkpP3hbWV06WSxGJiZkKEYsUikmJihNLnVuc2hpZnQoRiksRj1udWxsKSxGKWZvcih6IGluIEYpayhSLnByb3BlcnRpZXMseixGW3pdKTtyZXR1cm4gbShSLmNoaWxkcmVuLE0pLFIudGFnTmFtZT09PSJ0ZW1wbGF0ZSImJihSLmNvbnRlbnQ9e3R5cGU6InJvb3QiLGNoaWxkcmVuOlIuY2hpbGRyZW59LFIuY2hpbGRyZW49W10pLFJ9ZnVuY3Rpb24gayhMLEYsUil7dmFyIE0sWSx6O1I9PW51bGx8fFIhPT1SfHwoTT1lKF8sRiksWT1NLnByb3BlcnR5LHo9Uix0eXBlb2Ygej09InN0cmluZyImJihNLnNwYWNlU2VwYXJhdGVkP3o9aSh6KTpNLmNvbW1hU2VwYXJhdGVkP3o9bCh6KTpNLmNvbW1hT3JTcGFjZVNlcGFyYXRlZCYmKHo9aShsKHopLmpvaW4oIiAiKSkpKSxZPT09InN0eWxlIiYmdHlwZW9mIFIhPSJzdHJpbmciJiYoej1TKHopKSxZPT09ImNsYXNzTmFtZSImJkwuY2xhc3NOYW1lJiYoej1MLmNsYXNzTmFtZS5jb25jYXQoeikpLExbWV09YihNLFkseikpfX1mdW5jdGlvbiBkKF8sVCl7cmV0dXJuIHR5cGVvZiBfPT0ic3RyaW5nInx8Imxlbmd0aCJpbiBffHxmKFQudGFnTmFtZSxfKX1mdW5jdGlvbiBmKF8sVCl7dmFyIEM9VC50eXBlO3JldHVybiBfPT09ImlucHV0Inx8IUN8fHR5cGVvZiBDIT0ic3RyaW5nIj8hMTp0eXBlb2YgVC5jaGlsZHJlbj09Im9iamVjdCImJiJsZW5ndGgiaW4gVC5jaGlsZHJlbj8hMDooQz1DLnRvTG93ZXJDYXNlKCksXz09PSJidXR0b24iP0MhPT0ibWVudSImJkMhPT0ic3VibWl0IiYmQyE9PSJyZXNldCImJkMhPT0iYnV0dG9uIjoidmFsdWUiaW4gVCl9ZnVuY3Rpb24gbShfLFQpe3ZhciBDLHg7aWYodHlwZW9mIFQ9PSJzdHJpbmcifHx0eXBlb2YgVD09Im51bWJlciIpe18ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKFQpfSk7cmV0dXJufWlmKHR5cGVvZiBUPT0ib2JqZWN0IiYmImxlbmd0aCJpbiBUKXtmb3IoQz0tMSx4PVQubGVuZ3RoOysrQzx4OyltKF8sVFtDXSk7cmV0dXJufWlmKHR5cGVvZiBUIT0ib2JqZWN0Inx8ISgidHlwZSJpbiBUKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIG5vZGUsIG5vZGVzLCBvciBzdHJpbmcsIGdvdCBgIitUKyJgIik7Xy5wdXNoKFQpfWZ1bmN0aW9uIGIoXyxULEMpe3ZhciB4LE4saztpZih0eXBlb2YgQyE9Im9iamVjdCJ8fCEoImxlbmd0aCJpbiBDKSlyZXR1cm4gaChfLFQsQyk7Zm9yKE49Qy5sZW5ndGgseD0tMSxrPVtdOysreDxOOylrW3hdPWgoXyxULENbeF0pO3JldHVybiBrfWZ1bmN0aW9uIGgoXyxULEMpe3ZhciB4PUM7cmV0dXJuIF8ubnVtYmVyfHxfLnBvc2l0aXZlTnVtYmVyPyFpc05hTih4KSYmeCE9PSIiJiYoeD1OdW1iZXIoeCkpOihfLmJvb2xlYW58fF8ub3ZlcmxvYWRlZEJvb2xlYW4pJiZ0eXBlb2YgeD09InN0cmluZyImJih4PT09IiJ8fG4oQyk9PT1uKFQpKSYmKHg9ITApLHh9ZnVuY3Rpb24gUyhfKXt2YXIgVD1bXSxDO2ZvcihDIGluIF8pVC5wdXNoKFtDLF9bQ11dLmpvaW4oIjogIikpO3JldHVybiBULmpvaW4oIjsgIil9ZnVuY3Rpb24gRShfKXtmb3IodmFyIFQ9Xy5sZW5ndGgsQz0tMSx4PXt9LE47KytDPFQ7KU49X1tDXSx4W04udG9Mb3dlckNhc2UoKV09TjtyZXR1cm4geH1yZXR1cm4gQmN9dmFyIGpjLFRUO2Z1bmN0aW9uIEZMKCl7aWYoVFQpcmV0dXJuIGpjO1RUPTE7dmFyIGU9SUwoKSxuPVVMKCksYT1uKGUsImRpdiIpO3JldHVybiBhLmRpc3BsYXlOYW1lPSJodG1sIixqYz1hLGpjfXZhciB6Yyx4VDtmdW5jdGlvbiBCTCgpe3JldHVybiB4VHx8KHhUPTEsemM9RkwoKSksemN9Y29uc3Qgakw9IsOGIix6TD0iJiIscUw9IsOBIixQTD0iw4IiLEdMPSLDgCIsSEw9IsOFIiwkTD0iw4MiLFZMPSLDhCIsWUw9IsKpIixLTD0iw4ciLFdMPSLDkCIsWEw9IsOJIixaTD0iw4oiLFFMPSLDiCIsSkw9IsOLIixlRD0iPiIsdEQ9IsONIixuRD0iw44iLHJEPSLDjCIsYUQ9IsOPIixpRD0iPCIsb0Q9IsORIixsRD0iw5MiLHNEPSLDlCIsdUQ9IsOSIixjRD0iw5giLGREPSLDlSIscEQ9IsOWIixmRD0nIicsZ0Q9IsKuIixtRD0iw54iLGhEPSLDmiIsYkQ9IsObIix5RD0iw5kiLEVEPSLDnCIsU0Q9IsOdIix2RD0iw6EiLFREPSLDoiIseEQ9IsK0IixBRD0iw6YiLF9EPSLDoCIsUkQ9IiYiLE5EPSLDpSIsd0Q9IsOjIixrRD0iw6QiLENEPSLCpiIsSUQ9IsOnIixPRD0iwrgiLExEPSLCoiIsREQ9IsKpIixNRD0iwqQiLFVEPSLCsCIsRkQ9IsO3IixCRD0iw6kiLGpEPSLDqiIsekQ9IsOoIixxRD0iw7AiLFBEPSLDqyIsR0Q9IsK9IixIRD0iwrwiLCREPSLCviIsVkQ9Ij4iLFlEPSLDrSIsS0Q9IsOuIixXRD0iwqEiLFhEPSLDrCIsWkQ9IsK/IixRRD0iw68iLEpEPSLCqyIsZU09IjwiLHRNPSLCryIsbk09IsK1IixyTT0iwrciLGFNPSLCoCIsaU09IsKsIixvTT0iw7EiLGxNPSLDsyIsc009IsO0Iix1TT0iw7IiLGNNPSLCqiIsZE09IsK6IixwTT0iw7giLGZNPSLDtSIsZ009IsO2IixtTT0iwrYiLGhNPSLCsSIsYk09IsKjIix5TT0nIicsRU09IsK7IixTTT0iwq4iLHZNPSLCpyIsVE09IsKtIix4TT0iwrkiLEFNPSLCsiIsX009IsKzIixSTT0iw58iLE5NPSLDviIsd009IsOXIixrTT0iw7oiLENNPSLDuyIsSU09IsO5IixPTT0iwqgiLExNPSLDvCIsRE09IsO9IixNTT0iwqUiLFVNPSLDvyIsRk09e0FFbGlnOmpMLEFNUDp6TCxBYWN1dGU6cUwsQWNpcmM6UEwsQWdyYXZlOkdMLEFyaW5nOkhMLEF0aWxkZTokTCxBdW1sOlZMLENPUFk6WUwsQ2NlZGlsOktMLEVUSDpXTCxFYWN1dGU6WEwsRWNpcmM6WkwsRWdyYXZlOlFMLEV1bWw6SkwsR1Q6ZUQsSWFjdXRlOnRELEljaXJjOm5ELElncmF2ZTpyRCxJdW1sOmFELExUOmlELE50aWxkZTpvRCxPYWN1dGU6bEQsT2NpcmM6c0QsT2dyYXZlOnVELE9zbGFzaDpjRCxPdGlsZGU6ZEQsT3VtbDpwRCxRVU9UOmZELFJFRzpnRCxUSE9STjptRCxVYWN1dGU6aEQsVWNpcmM6YkQsVWdyYXZlOnlELFV1bWw6RUQsWWFjdXRlOlNELGFhY3V0ZTp2RCxhY2lyYzpURCxhY3V0ZTp4RCxhZWxpZzpBRCxhZ3JhdmU6X0QsYW1wOlJELGFyaW5nOk5ELGF0aWxkZTp3RCxhdW1sOmtELGJydmJhcjpDRCxjY2VkaWw6SUQsY2VkaWw6T0QsY2VudDpMRCxjb3B5OkRELGN1cnJlbjpNRCxkZWc6VUQsZGl2aWRlOkZELGVhY3V0ZTpCRCxlY2lyYzpqRCxlZ3JhdmU6ekQsZXRoOnFELGV1bWw6UEQsZnJhYzEyOkdELGZyYWMxNDpIRCxmcmFjMzQ6JEQsZ3Q6VkQsaWFjdXRlOllELGljaXJjOktELGlleGNsOldELGlncmF2ZTpYRCxpcXVlc3Q6WkQsaXVtbDpRRCxsYXF1bzpKRCxsdDplTSxtYWNyOnRNLG1pY3JvOm5NLG1pZGRvdDpyTSxuYnNwOmFNLG5vdDppTSxudGlsZGU6b00sb2FjdXRlOmxNLG9jaXJjOnNNLG9ncmF2ZTp1TSxvcmRmOmNNLG9yZG06ZE0sb3NsYXNoOnBNLG90aWxkZTpmTSxvdW1sOmdNLHBhcmE6bU0scGx1c21uOmhNLHBvdW5kOmJNLHF1b3Q6eU0scmFxdW86RU0scmVnOlNNLHNlY3Q6dk0sc2h5OlRNLHN1cDE6eE0sc3VwMjpBTSxzdXAzOl9NLHN6bGlnOlJNLHRob3JuOk5NLHRpbWVzOndNLHVhY3V0ZTprTSx1Y2lyYzpDTSx1Z3JhdmU6SU0sdW1sOk9NLHV1bWw6TE0seWFjdXRlOkRNLHllbjpNTSx5dW1sOlVNfSxCTT17MDoi77+9IiwxMjg6IuKCrCIsMTMwOiLigJoiLDEzMToixpIiLDEzMjoi4oCeIiwxMzM6IuKApiIsMTM0OiLigKAiLDEzNToi4oChIiwxMzY6IsuGIiwxMzc6IuKAsCIsMTM4OiLFoCIsMTM5OiLigLkiLDE0MDoixZIiLDE0Mjoixb0iLDE0NToi4oCYIiwxNDY6IuKAmSIsMTQ3OiLigJwiLDE0ODoi4oCdIiwxNDk6IuKAoiIsMTUwOiLigJMiLDE1MToi4oCUIiwxNTI6IsucIiwxNTM6IuKEoiIsMTU0OiLFoSIsMTU1OiLigLoiLDE1NjoixZMiLDE1ODoixb4iLDE1OToixbgifTt2YXIgcWMsQVQ7ZnVuY3Rpb24gZGsoKXtpZihBVClyZXR1cm4gcWM7QVQ9MSxxYz1lO2Z1bmN0aW9uIGUobil7dmFyIGE9dHlwZW9mIG49PSJzdHJpbmciP24uY2hhckNvZGVBdCgwKTpuO3JldHVybiBhPj00OCYmYTw9NTd9cmV0dXJuIHFjfXZhciBQYyxfVDtmdW5jdGlvbiBqTSgpe2lmKF9UKXJldHVybiBQYztfVD0xLFBjPWU7ZnVuY3Rpb24gZShuKXt2YXIgYT10eXBlb2Ygbj09InN0cmluZyI/bi5jaGFyQ29kZUF0KDApOm47cmV0dXJuIGE+PTk3JiZhPD0xMDJ8fGE+PTY1JiZhPD03MHx8YT49NDgmJmE8PTU3fXJldHVybiBQY312YXIgR2MsUlQ7ZnVuY3Rpb24gek0oKXtpZihSVClyZXR1cm4gR2M7UlQ9MSxHYz1lO2Z1bmN0aW9uIGUobil7dmFyIGE9dHlwZW9mIG49PSJzdHJpbmciP24uY2hhckNvZGVBdCgwKTpuO3JldHVybiBhPj05NyYmYTw9MTIyfHxhPj02NSYmYTw9OTB9cmV0dXJuIEdjfXZhciBIYyxOVDtmdW5jdGlvbiBxTSgpe2lmKE5UKXJldHVybiBIYztOVD0xO3ZhciBlPXpNKCksbj1kaygpO0hjPWE7ZnVuY3Rpb24gYShpKXtyZXR1cm4gZShpKXx8bihpKX1yZXR1cm4gSGN9dmFyICRjLHdUO2Z1bmN0aW9uIFBNKCl7aWYod1QpcmV0dXJuICRjO3dUPTE7dmFyIGUsbj01OTskYz1hO2Z1bmN0aW9uIGEoaSl7dmFyIGw9IiYiK2krIjsiLHU7cmV0dXJuIGU9ZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpLGUuaW5uZXJIVE1MPWwsdT1lLnRleHRDb250ZW50LHUuY2hhckNvZGVBdCh1Lmxlbmd0aC0xKT09PW4mJmkhPT0ic2VtaSJ8fHU9PT1sPyExOnV9cmV0dXJuICRjfXZhciBWYyxrVDtmdW5jdGlvbiBHTSgpe2lmKGtUKXJldHVybiBWYztrVD0xO3ZhciBlPUZNLG49Qk0sYT1kaygpLGk9ak0oKSxsPXFNKCksdT1QTSgpO1ZjPWZlO3ZhciBjPXt9Lmhhc093blByb3BlcnR5LGQ9U3RyaW5nLmZyb21DaGFyQ29kZSxmPUZ1bmN0aW9uLnByb3RvdHlwZSxtPXt3YXJuaW5nOm51bGwscmVmZXJlbmNlOm51bGwsdGV4dDpudWxsLHdhcm5pbmdDb250ZXh0Om51bGwscmVmZXJlbmNlQ29udGV4dDpudWxsLHRleHRDb250ZXh0Om51bGwscG9zaXRpb246e30sYWRkaXRpb25hbDpudWxsLGF0dHJpYnV0ZTohMSxub25UZXJtaW5hdGVkOiEwfSxiPTksaD0xMCxTPTEyLEU9MzIsXz0zOCxUPTU5LEM9NjAseD02MSxOPTM1LGs9ODgsTD0xMjAsRj02NTUzMyxSPSJuYW1lZCIsTT0iaGV4YWRlY2ltYWwiLFk9ImRlY2ltYWwiLHo9e307eltNXT0xNix6W1ldPTEwO3ZhciBVPXt9O1VbUl09bCxVW1ldPWEsVVtNXT1pO3ZhciAkPTEsSj0yLG9lPTMsaWU9NCxsZT01LEc9NixlZT03LG5lPXt9O25lWyRdPSJOYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IGJlIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb24iLG5lW0pdPSJOdW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIG11c3QgYmUgdGVybWluYXRlZCBieSBhIHNlbWljb2xvbiIsbmVbb2VdPSJOYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBjYW5ub3QgYmUgZW1wdHkiLG5lW2llXT0iTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBjYW5ub3QgYmUgZW1wdHkiLG5lW2xlXT0iTmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgbXVzdCBiZSBrbm93biIsbmVbR109Ik51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgY2Fubm90IGJlIGRpc2FsbG93ZWQiLG5lW2VlXT0iTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBjYW5ub3QgYmUgb3V0c2lkZSB0aGUgcGVybWlzc2libGUgVW5pY29kZSByYW5nZSI7ZnVuY3Rpb24gZmUodyx0ZSl7dmFyIHNlPXt9LGNlLGhlO3RlfHwodGU9e30pO2ZvcihoZSBpbiBtKWNlPXRlW2hlXSxzZVtoZV09Y2U/P21baGVdO3JldHVybihzZS5wb3NpdGlvbi5pbmRlbnR8fHNlLnBvc2l0aW9uLnN0YXJ0KSYmKHNlLmluZGVudD1zZS5wb3NpdGlvbi5pbmRlbnR8fFtdLHNlLnBvc2l0aW9uPXNlLnBvc2l0aW9uLnN0YXJ0KSxJKHcsc2UpfWZ1bmN0aW9uIEkodyx0ZSl7dmFyIHNlPXRlLmFkZGl0aW9uYWwsY2U9dGUubm9uVGVybWluYXRlZCxoZT10ZS50ZXh0LEllPXRlLnJlZmVyZW5jZSx3ZT10ZS53YXJuaW5nLGl0PXRlLnRleHRDb250ZXh0LGZ0PXRlLnJlZmVyZW5jZUNvbnRleHQsTW49dGUud2FybmluZ0NvbnRleHQscm49dGUucG9zaXRpb24sU249dGUuaW5kZW50fHxbXSxfbj13Lmxlbmd0aCx3dD0wLE1yPS0xLGFuPXJuLmNvbHVtbnx8MSxVbj1ybi5saW5lfHwxLE90PSIiLEZuPVtdLFJuLFVyLFFlLGh0LFcscmUsZGUsRWUsT2UsYnQseXQsbnQsSGUsWGUsQmUsTHQsQXQsb24sSmU7Zm9yKHR5cGVvZiBzZT09InN0cmluZyImJihzZT1zZS5jaGFyQ29kZUF0KDApKSxMdD1ObigpLEVlPXdlP3NhOmYsd3QtLSxfbisrOysrd3Q8X247KWlmKFc9PT1oJiYoYW49U25bTXJdfHwxKSxXPXcuY2hhckNvZGVBdCh3dCksVz09PV8pe2lmKGRlPXcuY2hhckNvZGVBdCh3dCsxKSxkZT09PWJ8fGRlPT09aHx8ZGU9PT1TfHxkZT09PUV8fGRlPT09X3x8ZGU9PT1DfHxkZSE9PWRlfHxzZSYmZGU9PT1zZSl7T3QrPWQoVyksYW4rKztjb250aW51ZX1mb3IoSGU9d3QrMSxudD1IZSxKZT1IZSxkZT09PU4/KEplPSsrbnQsZGU9dy5jaGFyQ29kZUF0KEplKSxkZT09PWt8fGRlPT09TD8oWGU9TSxKZT0rK250KTpYZT1ZKTpYZT1SLFJuPSIiLHl0PSIiLGh0PSIiLEJlPVVbWGVdLEplLS07KytKZTxfbiYmKGRlPXcuY2hhckNvZGVBdChKZSksISFCZShkZSkpOylodCs9ZChkZSksWGU9PT1SJiZjLmNhbGwoZSxodCkmJihSbj1odCx5dD1lW2h0XSk7UWU9dy5jaGFyQ29kZUF0KEplKT09PVQsUWUmJihKZSsrLFVyPVhlPT09Uj91KGh0KTohMSxVciYmKFJuPWh0LHl0PVVyKSksb249MStKZS1IZSwhUWUmJiFjZXx8KGh0P1hlPT09Uj8oUWUmJiF5dD9FZShsZSwxKTooUm4hPT1odCYmKEplPW50K1JuLmxlbmd0aCxvbj0xK0plLW50LFFlPSExKSxRZXx8KE9lPVJuPyQ6b2UsdGUuYXR0cmlidXRlPyhkZT13LmNoYXJDb2RlQXQoSmUpLGRlPT09eD8oRWUoT2Usb24pLHl0PW51bGwpOmwoZGUpP3l0PW51bGw6RWUoT2Usb24pKTpFZShPZSxvbikpKSxyZT15dCk6KFFlfHxFZShKLG9uKSxyZT1wYXJzZUludChodCx6W1hlXSksTyhyZSk/KEVlKGVlLG9uKSxyZT1kKEYpKTpyZSBpbiBuPyhFZShHLG9uKSxyZT1uW3JlXSk6KGJ0PSIiLFYocmUpJiZFZShHLG9uKSxyZT42NTUzNSYmKHJlLT02NTUzNixidCs9ZChyZT4+PjEwfDU1Mjk2KSxyZT01NjMyMHxyZSYxMDIzKSxyZT1idCtkKHJlKSkpOlhlIT09UiYmRWUoaWUsb24pKSxyZT8od24oKSxMdD1ObigpLHd0PUplLTEsYW4rPUplLUhlKzEsRm4ucHVzaChyZSksQXQ9Tm4oKSxBdC5vZmZzZXQrKyxJZSYmSWUuY2FsbChmdCxyZSx7c3RhcnQ6THQsZW5kOkF0fSx3LnNsaWNlKEhlLTEsSmUpKSxMdD1BdCk6KGh0PXcuc2xpY2UoSGUtMSxKZSksT3QrPWh0LGFuKz1odC5sZW5ndGgsd3Q9SmUtMSl9ZWxzZSBXPT09MTAmJihVbisrLE1yKyssYW49MCksVz09PVc/KE90Kz1kKFcpLGFuKyspOnduKCk7cmV0dXJuIEZuLmpvaW4oIiIpO2Z1bmN0aW9uIE5uKCl7cmV0dXJue2xpbmU6VW4sY29sdW1uOmFuLG9mZnNldDp3dCsocm4ub2Zmc2V0fHwwKX19ZnVuY3Rpb24gc2EoRnIsYXIpe3ZhciBhaT1ObigpO2FpLmNvbHVtbis9YXIsYWkub2Zmc2V0Kz1hcix3ZS5jYWxsKE1uLG5lW0ZyXSxhaSxGcil9ZnVuY3Rpb24gd24oKXtPdCYmKEZuLnB1c2goT3QpLGhlJiZoZS5jYWxsKGl0LE90LHtzdGFydDpMdCxlbmQ6Tm4oKX0pLE90PSIiKX19ZnVuY3Rpb24gTyh3KXtyZXR1cm4gdz49NTUyOTYmJnc8PTU3MzQzfHx3PjExMTQxMTF9ZnVuY3Rpb24gVih3KXtyZXR1cm4gdz49MSYmdzw9OHx8dz09PTExfHx3Pj0xMyYmdzw9MzF8fHc+PTEyNyYmdzw9MTU5fHx3Pj02NDk3NiYmdzw9NjUwMDd8fCh3JjY1NTM1KT09PTY1NTM1fHwodyY2NTUzNSk9PT02NTUzNH1yZXR1cm4gVmN9dmFyIFljPXtleHBvcnRzOnt9fSxDVDtmdW5jdGlvbiBITSgpe3JldHVybiBDVHx8KENUPTEsKGZ1bmN0aW9uKGUpe3ZhciBuPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGU/c2VsZjp7fTsvKioKICogUHJpc206IExpZ2h0d2VpZ2h0LCByb2J1c3QsIGVsZWdhbnQgc3ludGF4IGhpZ2hsaWdodGluZwogKgogKiBAbGljZW5zZSBNSVQgPGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPgogKiBAYXV0aG9yIExlYSBWZXJvdSA8aHR0cHM6Ly9sZWEudmVyb3UubWU+CiAqIEBuYW1lc3BhY2UKICogQHB1YmxpYwogKi92YXIgYT0oZnVuY3Rpb24oaSl7dmFyIGw9Lyg/Ol58XHMpbGFuZyg/OnVhZ2UpPy0oW1x3LV0rKSg/PVxzfCQpL2ksdT0wLGM9e30sZD17bWFudWFsOmkuUHJpc20mJmkuUHJpc20ubWFudWFsLGRpc2FibGVXb3JrZXJNZXNzYWdlSGFuZGxlcjppLlByaXNtJiZpLlByaXNtLmRpc2FibGVXb3JrZXJNZXNzYWdlSGFuZGxlcix1dGlsOntlbmNvZGU6ZnVuY3Rpb24gTihrKXtyZXR1cm4gayBpbnN0YW5jZW9mIGY/bmV3IGYoay50eXBlLE4oay5jb250ZW50KSxrLmFsaWFzKTpBcnJheS5pc0FycmF5KGspP2subWFwKE4pOmsucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoL1x1MDBhMC9nLCIgIil9LHR5cGU6ZnVuY3Rpb24oTil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChOKS5zbGljZSg4LC0xKX0sb2JqSWQ6ZnVuY3Rpb24oTil7cmV0dXJuIE4uX19pZHx8T2JqZWN0LmRlZmluZVByb3BlcnR5KE4sIl9faWQiLHt2YWx1ZTorK3V9KSxOLl9faWR9LGNsb25lOmZ1bmN0aW9uIE4oayxMKXtMPUx8fHt9O3ZhciBGLFI7c3dpdGNoKGQudXRpbC50eXBlKGspKXtjYXNlIk9iamVjdCI6aWYoUj1kLnV0aWwub2JqSWQoayksTFtSXSlyZXR1cm4gTFtSXTtGPXt9LExbUl09Rjtmb3IodmFyIE0gaW4gaylrLmhhc093blByb3BlcnR5KE0pJiYoRltNXT1OKGtbTV0sTCkpO3JldHVybiBGO2Nhc2UiQXJyYXkiOnJldHVybiBSPWQudXRpbC5vYmpJZChrKSxMW1JdP0xbUl06KEY9W10sTFtSXT1GLGsuZm9yRWFjaChmdW5jdGlvbihZLHope0Zbel09TihZLEwpfSksRik7ZGVmYXVsdDpyZXR1cm4ga319LGdldExhbmd1YWdlOmZ1bmN0aW9uKE4pe2Zvcig7Tjspe3ZhciBrPWwuZXhlYyhOLmNsYXNzTmFtZSk7aWYoaylyZXR1cm4ga1sxXS50b0xvd2VyQ2FzZSgpO049Ti5wYXJlbnRFbGVtZW50fXJldHVybiJub25lIn0sc2V0TGFuZ3VhZ2U6ZnVuY3Rpb24oTixrKXtOLmNsYXNzTmFtZT1OLmNsYXNzTmFtZS5yZXBsYWNlKFJlZ0V4cChsLCJnaSIpLCIiKSxOLmNsYXNzTGlzdC5hZGQoImxhbmd1YWdlLSIrayl9LGN1cnJlbnRTY3JpcHQ6ZnVuY3Rpb24oKXtpZih0eXBlb2YgZG9jdW1lbnQ+InUiKXJldHVybiBudWxsO2lmKCJjdXJyZW50U2NyaXB0ImluIGRvY3VtZW50KXJldHVybiBkb2N1bWVudC5jdXJyZW50U2NyaXB0O3RyeXt0aHJvdyBuZXcgRXJyb3J9Y2F0Y2goRil7dmFyIE49KC9hdCBbXihcclxuXSpcKCguKik6W146XSs6W146XStcKSQvaS5leGVjKEYuc3RhY2spfHxbXSlbMV07aWYoTil7dmFyIGs9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO2Zvcih2YXIgTCBpbiBrKWlmKGtbTF0uc3JjPT1OKXJldHVybiBrW0xdfXJldHVybiBudWxsfX0saXNBY3RpdmU6ZnVuY3Rpb24oTixrLEwpe2Zvcih2YXIgRj0ibm8tIitrO047KXt2YXIgUj1OLmNsYXNzTGlzdDtpZihSLmNvbnRhaW5zKGspKXJldHVybiEwO2lmKFIuY29udGFpbnMoRikpcmV0dXJuITE7Tj1OLnBhcmVudEVsZW1lbnR9cmV0dXJuISFMfX0sbGFuZ3VhZ2VzOntwbGFpbjpjLHBsYWludGV4dDpjLHRleHQ6Yyx0eHQ6YyxleHRlbmQ6ZnVuY3Rpb24oTixrKXt2YXIgTD1kLnV0aWwuY2xvbmUoZC5sYW5ndWFnZXNbTl0pO2Zvcih2YXIgRiBpbiBrKUxbRl09a1tGXTtyZXR1cm4gTH0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKE4sayxMLEYpe0Y9Rnx8ZC5sYW5ndWFnZXM7dmFyIFI9RltOXSxNPXt9O2Zvcih2YXIgWSBpbiBSKWlmKFIuaGFzT3duUHJvcGVydHkoWSkpe2lmKFk9PWspZm9yKHZhciB6IGluIEwpTC5oYXNPd25Qcm9wZXJ0eSh6KSYmKE1bel09TFt6XSk7TC5oYXNPd25Qcm9wZXJ0eShZKXx8KE1bWV09UltZXSl9dmFyIFU9RltOXTtyZXR1cm4gRltOXT1NLGQubGFuZ3VhZ2VzLkRGUyhkLmxhbmd1YWdlcyxmdW5jdGlvbigkLEope0o9PT1VJiYkIT1OJiYodGhpc1skXT1NKX0pLE19LERGUzpmdW5jdGlvbiBOKGssTCxGLFIpe1I9Unx8e307dmFyIE09ZC51dGlsLm9iaklkO2Zvcih2YXIgWSBpbiBrKWlmKGsuaGFzT3duUHJvcGVydHkoWSkpe0wuY2FsbChrLFksa1tZXSxGfHxZKTt2YXIgej1rW1ldLFU9ZC51dGlsLnR5cGUoeik7VT09PSJPYmplY3QiJiYhUltNKHopXT8oUltNKHopXT0hMCxOKHosTCxudWxsLFIpKTpVPT09IkFycmF5IiYmIVJbTSh6KV0mJihSW00oeildPSEwLE4oeixMLFksUikpfX19LHBsdWdpbnM6e30saGlnaGxpZ2h0QWxsOmZ1bmN0aW9uKE4sayl7ZC5oaWdobGlnaHRBbGxVbmRlcihkb2N1bWVudCxOLGspfSxoaWdobGlnaHRBbGxVbmRlcjpmdW5jdGlvbihOLGssTCl7dmFyIEY9e2NhbGxiYWNrOkwsY29udGFpbmVyOk4sc2VsZWN0b3I6J2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXSwgW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gY29kZSwgY29kZVtjbGFzcyo9ImxhbmctIl0sIFtjbGFzcyo9ImxhbmctIl0gY29kZSd9O2QuaG9va3MucnVuKCJiZWZvcmUtaGlnaGxpZ2h0YWxsIixGKSxGLmVsZW1lbnRzPUFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShGLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKEYuc2VsZWN0b3IpKSxkLmhvb2tzLnJ1bigiYmVmb3JlLWFsbC1lbGVtZW50cy1oaWdobGlnaHQiLEYpO2Zvcih2YXIgUj0wLE07TT1GLmVsZW1lbnRzW1IrK107KWQuaGlnaGxpZ2h0RWxlbWVudChNLGs9PT0hMCxGLmNhbGxiYWNrKX0saGlnaGxpZ2h0RWxlbWVudDpmdW5jdGlvbihOLGssTCl7dmFyIEY9ZC51dGlsLmdldExhbmd1YWdlKE4pLFI9ZC5sYW5ndWFnZXNbRl07ZC51dGlsLnNldExhbmd1YWdlKE4sRik7dmFyIE09Ti5wYXJlbnRFbGVtZW50O00mJk0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJwcmUiJiZkLnV0aWwuc2V0TGFuZ3VhZ2UoTSxGKTt2YXIgWT1OLnRleHRDb250ZW50LHo9e2VsZW1lbnQ6TixsYW5ndWFnZTpGLGdyYW1tYXI6Uixjb2RlOll9O2Z1bmN0aW9uIFUoSil7ei5oaWdobGlnaHRlZENvZGU9SixkLmhvb2tzLnJ1bigiYmVmb3JlLWluc2VydCIseiksei5lbGVtZW50LmlubmVySFRNTD16LmhpZ2hsaWdodGVkQ29kZSxkLmhvb2tzLnJ1bigiYWZ0ZXItaGlnaGxpZ2h0Iix6KSxkLmhvb2tzLnJ1bigiY29tcGxldGUiLHopLEwmJkwuY2FsbCh6LmVsZW1lbnQpfWlmKGQuaG9va3MucnVuKCJiZWZvcmUtc2FuaXR5LWNoZWNrIix6KSxNPXouZWxlbWVudC5wYXJlbnRFbGVtZW50LE0mJk0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJwcmUiJiYhTS5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikmJk0uc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSwhei5jb2RlKXtkLmhvb2tzLnJ1bigiY29tcGxldGUiLHopLEwmJkwuY2FsbCh6LmVsZW1lbnQpO3JldHVybn1pZihkLmhvb2tzLnJ1bigiYmVmb3JlLWhpZ2hsaWdodCIseiksIXouZ3JhbW1hcil7VShkLnV0aWwuZW5jb2RlKHouY29kZSkpO3JldHVybn1pZihrJiZpLldvcmtlcil7dmFyICQ9bmV3IFdvcmtlcihkLmZpbGVuYW1lKTskLm9ubWVzc2FnZT1mdW5jdGlvbihKKXtVKEouZGF0YSl9LCQucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe2xhbmd1YWdlOnoubGFuZ3VhZ2UsY29kZTp6LmNvZGUsaW1tZWRpYXRlQ2xvc2U6ITB9KSl9ZWxzZSBVKGQuaGlnaGxpZ2h0KHouY29kZSx6LmdyYW1tYXIsei5sYW5ndWFnZSkpfSxoaWdobGlnaHQ6ZnVuY3Rpb24oTixrLEwpe3ZhciBGPXtjb2RlOk4sZ3JhbW1hcjprLGxhbmd1YWdlOkx9O2lmKGQuaG9va3MucnVuKCJiZWZvcmUtdG9rZW5pemUiLEYpLCFGLmdyYW1tYXIpdGhyb3cgbmV3IEVycm9yKCdUaGUgbGFuZ3VhZ2UgIicrRi5sYW5ndWFnZSsnIiBoYXMgbm8gZ3JhbW1hci4nKTtyZXR1cm4gRi50b2tlbnM9ZC50b2tlbml6ZShGLmNvZGUsRi5ncmFtbWFyKSxkLmhvb2tzLnJ1bigiYWZ0ZXItdG9rZW5pemUiLEYpLGYuc3RyaW5naWZ5KGQudXRpbC5lbmNvZGUoRi50b2tlbnMpLEYubGFuZ3VhZ2UpfSx0b2tlbml6ZTpmdW5jdGlvbihOLGspe3ZhciBMPWsucmVzdDtpZihMKXtmb3IodmFyIEYgaW4gTClrW0ZdPUxbRl07ZGVsZXRlIGsucmVzdH12YXIgUj1uZXcgaDtyZXR1cm4gUyhSLFIuaGVhZCxOKSxiKE4sUixrLFIuaGVhZCwwKSxfKFIpfSxob29rczp7YWxsOnt9LGFkZDpmdW5jdGlvbihOLGspe3ZhciBMPWQuaG9va3MuYWxsO0xbTl09TFtOXXx8W10sTFtOXS5wdXNoKGspfSxydW46ZnVuY3Rpb24oTixrKXt2YXIgTD1kLmhvb2tzLmFsbFtOXTtpZighKCFMfHwhTC5sZW5ndGgpKWZvcih2YXIgRj0wLFI7Uj1MW0YrK107KVIoayl9fSxUb2tlbjpmfTtpLlByaXNtPWQ7ZnVuY3Rpb24gZihOLGssTCxGKXt0aGlzLnR5cGU9Tix0aGlzLmNvbnRlbnQ9ayx0aGlzLmFsaWFzPUwsdGhpcy5sZW5ndGg9KEZ8fCIiKS5sZW5ndGh8MH1mLnN0cmluZ2lmeT1mdW5jdGlvbiBOKGssTCl7aWYodHlwZW9mIGs9PSJzdHJpbmciKXJldHVybiBrO2lmKEFycmF5LmlzQXJyYXkoaykpe3ZhciBGPSIiO3JldHVybiBrLmZvckVhY2goZnVuY3Rpb24oVSl7Ris9TihVLEwpfSksRn12YXIgUj17dHlwZTprLnR5cGUsY29udGVudDpOKGsuY29udGVudCxMKSx0YWc6InNwYW4iLGNsYXNzZXM6WyJ0b2tlbiIsay50eXBlXSxhdHRyaWJ1dGVzOnt9LGxhbmd1YWdlOkx9LE09ay5hbGlhcztNJiYoQXJyYXkuaXNBcnJheShNKT9BcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShSLmNsYXNzZXMsTSk6Ui5jbGFzc2VzLnB1c2goTSkpLGQuaG9va3MucnVuKCJ3cmFwIixSKTt2YXIgWT0iIjtmb3IodmFyIHogaW4gUi5hdHRyaWJ1dGVzKVkrPSIgIit6Kyc9IicrKFIuYXR0cmlidXRlc1t6XXx8IiIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikrJyInO3JldHVybiI8IitSLnRhZysnIGNsYXNzPSInK1IuY2xhc3Nlcy5qb2luKCIgIikrJyInK1krIj4iK1IuY29udGVudCsiPC8iK1IudGFnKyI+In07ZnVuY3Rpb24gbShOLGssTCxGKXtOLmxhc3RJbmRleD1rO3ZhciBSPU4uZXhlYyhMKTtpZihSJiZGJiZSWzFdKXt2YXIgTT1SWzFdLmxlbmd0aDtSLmluZGV4Kz1NLFJbMF09UlswXS5zbGljZShNKX1yZXR1cm4gUn1mdW5jdGlvbiBiKE4sayxMLEYsUixNKXtmb3IodmFyIFkgaW4gTClpZighKCFMLmhhc093blByb3BlcnR5KFkpfHwhTFtZXSkpe3ZhciB6PUxbWV07ej1BcnJheS5pc0FycmF5KHopP3o6W3pdO2Zvcih2YXIgVT0wO1U8ei5sZW5ndGg7KytVKXtpZihNJiZNLmNhdXNlPT1ZKyIsIitVKXJldHVybjt2YXIgJD16W1VdLEo9JC5pbnNpZGUsb2U9ISEkLmxvb2tiZWhpbmQsaWU9ISEkLmdyZWVkeSxsZT0kLmFsaWFzO2lmKGllJiYhJC5wYXR0ZXJuLmdsb2JhbCl7dmFyIEc9JC5wYXR0ZXJuLnRvU3RyaW5nKCkubWF0Y2goL1tpbXN1eV0qJC8pWzBdOyQucGF0dGVybj1SZWdFeHAoJC5wYXR0ZXJuLnNvdXJjZSxHKyJnIil9Zm9yKHZhciBlZT0kLnBhdHRlcm58fCQsbmU9Ri5uZXh0LGZlPVI7bmUhPT1rLnRhaWwmJiEoTSYmZmU+PU0ucmVhY2gpO2ZlKz1uZS52YWx1ZS5sZW5ndGgsbmU9bmUubmV4dCl7dmFyIEk9bmUudmFsdWU7aWYoay5sZW5ndGg+Ti5sZW5ndGgpcmV0dXJuO2lmKCEoSSBpbnN0YW5jZW9mIGYpKXt2YXIgTz0xLFY7aWYoaWUpe2lmKFY9bShlZSxmZSxOLG9lKSwhVnx8Vi5pbmRleD49Ti5sZW5ndGgpYnJlYWs7dmFyIGNlPVYuaW5kZXgsdz1WLmluZGV4K1ZbMF0ubGVuZ3RoLHRlPWZlO2Zvcih0ZSs9bmUudmFsdWUubGVuZ3RoO2NlPj10ZTspbmU9bmUubmV4dCx0ZSs9bmUudmFsdWUubGVuZ3RoO2lmKHRlLT1uZS52YWx1ZS5sZW5ndGgsZmU9dGUsbmUudmFsdWUgaW5zdGFuY2VvZiBmKWNvbnRpbnVlO2Zvcih2YXIgc2U9bmU7c2UhPT1rLnRhaWwmJih0ZTx3fHx0eXBlb2Ygc2UudmFsdWU9PSJzdHJpbmciKTtzZT1zZS5uZXh0KU8rKyx0ZSs9c2UudmFsdWUubGVuZ3RoO08tLSxJPU4uc2xpY2UoZmUsdGUpLFYuaW5kZXgtPWZlfWVsc2UgaWYoVj1tKGVlLDAsSSxvZSksIVYpY29udGludWU7dmFyIGNlPVYuaW5kZXgsaGU9VlswXSxJZT1JLnNsaWNlKDAsY2UpLHdlPUkuc2xpY2UoY2UraGUubGVuZ3RoKSxpdD1mZStJLmxlbmd0aDtNJiZpdD5NLnJlYWNoJiYoTS5yZWFjaD1pdCk7dmFyIGZ0PW5lLnByZXY7SWUmJihmdD1TKGssZnQsSWUpLGZlKz1JZS5sZW5ndGgpLEUoayxmdCxPKTt2YXIgTW49bmV3IGYoWSxKP2QudG9rZW5pemUoaGUsSik6aGUsbGUsaGUpO2lmKG5lPVMoayxmdCxNbiksd2UmJlMoayxuZSx3ZSksTz4xKXt2YXIgcm49e2NhdXNlOlkrIiwiK1UscmVhY2g6aXR9O2IoTixrLEwsbmUucHJldixmZSxybiksTSYmcm4ucmVhY2g+TS5yZWFjaCYmKE0ucmVhY2g9cm4ucmVhY2gpfX19fX19ZnVuY3Rpb24gaCgpe3ZhciBOPXt2YWx1ZTpudWxsLHByZXY6bnVsbCxuZXh0Om51bGx9LGs9e3ZhbHVlOm51bGwscHJldjpOLG5leHQ6bnVsbH07Ti5uZXh0PWssdGhpcy5oZWFkPU4sdGhpcy50YWlsPWssdGhpcy5sZW5ndGg9MH1mdW5jdGlvbiBTKE4sayxMKXt2YXIgRj1rLm5leHQsUj17dmFsdWU6TCxwcmV2OmssbmV4dDpGfTtyZXR1cm4gay5uZXh0PVIsRi5wcmV2PVIsTi5sZW5ndGgrKyxSfWZ1bmN0aW9uIEUoTixrLEwpe2Zvcih2YXIgRj1rLm5leHQsUj0wO1I8TCYmRiE9PU4udGFpbDtSKyspRj1GLm5leHQ7ay5uZXh0PUYsRi5wcmV2PWssTi5sZW5ndGgtPVJ9ZnVuY3Rpb24gXyhOKXtmb3IodmFyIGs9W10sTD1OLmhlYWQubmV4dDtMIT09Ti50YWlsOylrLnB1c2goTC52YWx1ZSksTD1MLm5leHQ7cmV0dXJuIGt9aWYoIWkuZG9jdW1lbnQpcmV0dXJuIGkuYWRkRXZlbnRMaXN0ZW5lciYmKGQuZGlzYWJsZVdvcmtlck1lc3NhZ2VIYW5kbGVyfHxpLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKE4pe3ZhciBrPUpTT04ucGFyc2UoTi5kYXRhKSxMPWsubGFuZ3VhZ2UsRj1rLmNvZGUsUj1rLmltbWVkaWF0ZUNsb3NlO2kucG9zdE1lc3NhZ2UoZC5oaWdobGlnaHQoRixkLmxhbmd1YWdlc1tMXSxMKSksUiYmaS5jbG9zZSgpfSwhMSkpLGQ7dmFyIFQ9ZC51dGlsLmN1cnJlbnRTY3JpcHQoKTtUJiYoZC5maWxlbmFtZT1ULnNyYyxULmhhc0F0dHJpYnV0ZSgiZGF0YS1tYW51YWwiKSYmKGQubWFudWFsPSEwKSk7ZnVuY3Rpb24gQygpe2QubWFudWFsfHxkLmhpZ2hsaWdodEFsbCgpfWlmKCFkLm1hbnVhbCl7dmFyIHg9ZG9jdW1lbnQucmVhZHlTdGF0ZTt4PT09ImxvYWRpbmcifHx4PT09ImludGVyYWN0aXZlIiYmVCYmVC5kZWZlcj9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixDKTp3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoQyk6d2luZG93LnNldFRpbWVvdXQoQywxNil9cmV0dXJuIGR9KShuKTtlLmV4cG9ydHMmJihlLmV4cG9ydHM9YSksdHlwZW9mIERsPCJ1IiYmKERsLlByaXNtPWEpfSkoWWMpKSxZYy5leHBvcnRzfXZhciBLYyxJVDtmdW5jdGlvbiAkTSgpe2lmKElUKXJldHVybiBLYztJVD0xLEtjPWUsZS5kaXNwbGF5TmFtZT0ibWFya3VwIixlLmFsaWFzZXM9WyJodG1sIiwibWF0aG1sIiwic3ZnIiwieG1sIiwic3NtbCIsImF0b20iLCJyc3MiXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLm1hcmt1cD17Y29tbWVudDp7cGF0dGVybjovPCEtLSg/Oig/ITwhLS0pW1xzXFNdKSo/LS0+LyxncmVlZHk6ITB9LHByb2xvZzp7cGF0dGVybjovPFw/W1xzXFNdKz9cPz4vLGdyZWVkeTohMH0sZG9jdHlwZTp7cGF0dGVybjovPCFET0NUWVBFKD86W14+IidbXF1dfCJbXiJdKiJ8J1teJ10qJykrKD86XFsoPzpbXjwiJ1xdXXwiW14iXSoifCdbXiddKid8PCg/ISEtLSl8PCEtLSg/OlteLV18LSg/IS0+KSkqLS0+KSpcXVxzKik/Pi9pLGdyZWVkeTohMCxpbnNpZGU6eyJpbnRlcm5hbC1zdWJzZXQiOntwYXR0ZXJuOi8oXlteXFtdKlxbKVtcc1xTXSsoPz1cXT4kKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOm51bGx9LHN0cmluZzp7cGF0dGVybjovIlteIl0qInwnW14nXSonLyxncmVlZHk6ITB9LHB1bmN0dWF0aW9uOi9ePCF8PiR8W1tcXV0vLCJkb2N0eXBlLXRhZyI6L15ET0NUWVBFL2ksbmFtZTovW15cczw+JyJdKy99fSxjZGF0YTp7cGF0dGVybjovPCFcW0NEQVRBXFtbXHNcU10qP1xdXF0+L2ksZ3JlZWR5OiEwfSx0YWc6e3BhdHRlcm46LzxcLz8oPyFcZClbXlxzPlwvPSQ8JV0rKD86XHMoPzpccypbXlxzPlwvPV0rKD86XHMqPVxzKig/OiJbXiJdKiJ8J1teJ10qJ3xbXlxzJyI+PV0rKD89W1xzPl0pKXwoPz1bXHMvPl0pKSkrKT9ccypcLz8+LyxncmVlZHk6ITAsaW5zaWRlOnt0YWc6e3BhdHRlcm46L148XC8/W15ccz5cL10rLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9ePFwvPy8sbmFtZXNwYWNlOi9eW15ccz5cLzpdKzovfX0sInNwZWNpYWwtYXR0ciI6W10sImF0dHItdmFsdWUiOntwYXR0ZXJuOi89XHMqKD86IlteIl0qInwnW14nXSonfFteXHMnIj49XSspLyxpbnNpZGU6e3B1bmN0dWF0aW9uOlt7cGF0dGVybjovXj0vLGFsaWFzOiJhdHRyLWVxdWFscyJ9LC8ifCcvXX19LHB1bmN0dWF0aW9uOi9cLz8+LywiYXR0ci1uYW1lIjp7cGF0dGVybjovW15ccz5cL10rLyxpbnNpZGU6e25hbWVzcGFjZTovXlteXHM+XC86XSs6L319fX0sZW50aXR5Olt7cGF0dGVybjovJltcZGEtel17MSw4fTsvaSxhbGlhczoibmFtZWQtZW50aXR5In0sLyYjeD9bXGRhLWZdezEsOH07L2ldfSxuLmxhbmd1YWdlcy5tYXJrdXAudGFnLmluc2lkZVsiYXR0ci12YWx1ZSJdLmluc2lkZS5lbnRpdHk9bi5sYW5ndWFnZXMubWFya3VwLmVudGl0eSxuLmxhbmd1YWdlcy5tYXJrdXAuZG9jdHlwZS5pbnNpZGVbImludGVybmFsLXN1YnNldCJdLmluc2lkZT1uLmxhbmd1YWdlcy5tYXJrdXAsbi5ob29rcy5hZGQoIndyYXAiLGZ1bmN0aW9uKGEpe2EudHlwZT09PSJlbnRpdHkiJiYoYS5hdHRyaWJ1dGVzLnRpdGxlPWEuY29udGVudC52YWx1ZS5yZXBsYWNlKC8mYW1wOy8sIiYiKSl9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5sYW5ndWFnZXMubWFya3VwLnRhZywiYWRkSW5saW5lZCIse3ZhbHVlOmZ1bmN0aW9uKGksbCl7dmFyIHU9e307dVsibGFuZ3VhZ2UtIitsXT17cGF0dGVybjovKF48IVxbQ0RBVEFcWylbXHNcU10rPyg/PVxdXF0+JCkvaSxsb29rYmVoaW5kOiEwLGluc2lkZTpuLmxhbmd1YWdlc1tsXX0sdS5jZGF0YT0vXjwhXFtDREFUQVxbfFxdXF0+JC9pO3ZhciBjPXsiaW5jbHVkZWQtY2RhdGEiOntwYXR0ZXJuOi88IVxbQ0RBVEFcW1tcc1xTXSo/XF1cXT4vaSxpbnNpZGU6dX19O2NbImxhbmd1YWdlLSIrbF09e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTpuLmxhbmd1YWdlc1tsXX07dmFyIGQ9e307ZFtpXT17cGF0dGVybjpSZWdFeHAoLyg8X19bXj5dKj4pKD86PCFcW0NEQVRBXFsoPzpbXlxdXXxcXSg/IVxdPikpKlxdXF0+fCg/ITwhXFtDREFUQVxbKVtcc1xTXSkqPyg/PTxcL19fPikvLnNvdXJjZS5yZXBsYWNlKC9fXy9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSwiaSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTpjfSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm1hcmt1cCIsImNkYXRhIixkKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5sYW5ndWFnZXMubWFya3VwLnRhZywiYWRkQXR0cmlidXRlIix7dmFsdWU6ZnVuY3Rpb24oYSxpKXtuLmxhbmd1YWdlcy5tYXJrdXAudGFnLmluc2lkZVsic3BlY2lhbC1hdHRyIl0ucHVzaCh7cGF0dGVybjpSZWdFeHAoLyhefFsiJ1xzXSkvLnNvdXJjZSsiKD86IithKyIpIisvXHMqPVxzKig/OiJbXiJdKiJ8J1teJ10qJ3xbXlxzJyI+PV0rKD89W1xzPl0pKS8uc291cmNlLCJpIiksbG9va2JlaGluZDohMCxpbnNpZGU6eyJhdHRyLW5hbWUiOi9eW15ccz1dKy8sImF0dHItdmFsdWUiOntwYXR0ZXJuOi89W1xzXFNdKy8saW5zaWRlOnt2YWx1ZTp7cGF0dGVybjovKF49XHMqKFsiJ118KD8hWyInXSkpKVxTW1xzXFNdKig/PVwyJCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6W2ksImxhbmd1YWdlLSIraV0saW5zaWRlOm4ubGFuZ3VhZ2VzW2ldfSxwdW5jdHVhdGlvbjpbe3BhdHRlcm46L149LyxhbGlhczoiYXR0ci1lcXVhbHMifSwvInwnL119fX19KX19KSxuLmxhbmd1YWdlcy5odG1sPW4ubGFuZ3VhZ2VzLm1hcmt1cCxuLmxhbmd1YWdlcy5tYXRobWw9bi5sYW5ndWFnZXMubWFya3VwLG4ubGFuZ3VhZ2VzLnN2Zz1uLmxhbmd1YWdlcy5tYXJrdXAsbi5sYW5ndWFnZXMueG1sPW4ubGFuZ3VhZ2VzLmV4dGVuZCgibWFya3VwIix7fSksbi5sYW5ndWFnZXMuc3NtbD1uLmxhbmd1YWdlcy54bWwsbi5sYW5ndWFnZXMuYXRvbT1uLmxhbmd1YWdlcy54bWwsbi5sYW5ndWFnZXMucnNzPW4ubGFuZ3VhZ2VzLnhtbH1yZXR1cm4gS2N9dmFyIFdjLE9UO2Z1bmN0aW9uIFZNKCl7aWYoT1QpcmV0dXJuIFdjO09UPTEsV2M9ZSxlLmRpc3BsYXlOYW1lPSJjc3MiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vKD86Iig/OlxcKD86XHJcbnxbXHNcU10pfFteIlxcXHJcbl0pKiJ8Jyg/OlxcKD86XHJcbnxbXHNcU10pfFteJ1xcXHJcbl0pKicpLzthLmxhbmd1YWdlcy5jc3M9e2NvbW1lbnQ6L1wvXCpbXHNcU10qP1wqXC8vLGF0cnVsZTp7cGF0dGVybjovQFtcdy1dKD86W147e1xzXXxccysoPyFbXHN7XSkpKig/Ojt8KD89XHMqXHspKS8saW5zaWRlOntydWxlOi9eQFtcdy1dKy8sInNlbGVjdG9yLWZ1bmN0aW9uLWFyZ3VtZW50Ijp7cGF0dGVybjovKFxic2VsZWN0b3JccypcKFxzKig/IVtccyldKSkoPzpbXigpXHNdfFxzKyg/IVtccyldKXxcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpKSsoPz1ccypcKSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InNlbGVjdG9yIn0sa2V5d29yZDp7cGF0dGVybjovKF58W15cdy1dKSg/OmFuZHxub3R8b25seXxvcikoPyFbXHctXSkvLGxvb2tiZWhpbmQ6ITB9fX0sdXJsOntwYXR0ZXJuOlJlZ0V4cCgiXFxidXJsXFwoKD86IitpLnNvdXJjZSsifCIrLyg/OlteXFxcclxuKCkiJ118XFxbXHNcU10pKi8uc291cmNlKyIpXFwpIiwiaSIpLGdyZWVkeTohMCxpbnNpZGU6e2Z1bmN0aW9uOi9edXJsL2kscHVuY3R1YXRpb246L15cKHxcKSQvLHN0cmluZzp7cGF0dGVybjpSZWdFeHAoIl4iK2kuc291cmNlKyIkIiksYWxpYXM6InVybCJ9fX0sc2VsZWN0b3I6e3BhdHRlcm46UmVnRXhwKGAoXnxbe31cXHNdKVtee31cXHNdKD86W157fTsiJ1xcc118XFxzKyg/IVtcXHN7XSl8YCtpLnNvdXJjZSsiKSooPz1cXHMqXFx7KSIpLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzp7cGF0dGVybjppLGdyZWVkeTohMH0scHJvcGVydHk6e3BhdHRlcm46LyhefFteLVx3XHhBMC1cdUZGRkZdKSg/IVxzKVstX2Etelx4QTAtXHVGRkZGXSg/Oig/IVxzKVstXHdceEEwLVx1RkZGRl0pKig/PVxzKjopL2ksbG9va2JlaGluZDohMH0saW1wb3J0YW50Oi8haW1wb3J0YW50XGIvaSxmdW5jdGlvbjp7cGF0dGVybjovKF58W14tYS16MC05XSlbLWEtejAtOV0rKD89XCgpL2ksbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246L1soKXt9OzosXS99LGEubGFuZ3VhZ2VzLmNzcy5hdHJ1bGUuaW5zaWRlLnJlc3Q9YS5sYW5ndWFnZXMuY3NzO3ZhciBsPWEubGFuZ3VhZ2VzLm1hcmt1cDtsJiYobC50YWcuYWRkSW5saW5lZCgic3R5bGUiLCJjc3MiKSxsLnRhZy5hZGRBdHRyaWJ1dGUoInN0eWxlIiwiY3NzIikpfSkobil9cmV0dXJuIFdjfXZhciBYYyxMVDtmdW5jdGlvbiBZTSgpe2lmKExUKXJldHVybiBYYztMVD0xLFhjPWUsZS5kaXNwbGF5TmFtZT0iY2xpa2UiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmNsaWtlPXtjb21tZW50Olt7cGF0dGVybjovKF58W15cXF0pXC9cKltcc1xTXSo/KD86XCpcL3wkKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXnxbXlxcOl0pXC9cLy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmNsYXNzfGV4dGVuZHN8aW1wbGVtZW50c3xpbnN0YW5jZW9mfGludGVyZmFjZXxuZXd8dHJhaXQpXHMrfFxiY2F0Y2hccytcKClbXHcuXFxdKy9pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovWy5cXF0vfX0sa2V5d29yZDovXGIoPzpicmVha3xjYXRjaHxjb250aW51ZXxkb3xlbHNlfGZpbmFsbHl8Zm9yfGZ1bmN0aW9ufGlmfGlufGluc3RhbmNlb2Z8bmV3fG51bGx8cmV0dXJufHRocm93fHRyeXx3aGlsZSlcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxmdW5jdGlvbjovXGJcdysoPz1cKCkvLG51bWJlcjovXGIweFtcZGEtZl0rXGJ8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZVsrLV0/XGQrKT8vaSxvcGVyYXRvcjovWzw+XT0/fFshPV09Pz0/fC0tP3xcK1wrP3wmJj98XHxcfD98Wz8qL35eJV0vLHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdL319cmV0dXJuIFhjfXZhciBaYyxEVDtmdW5jdGlvbiBLTSgpe2lmKERUKXJldHVybiBaYztEVD0xLFpjPWUsZS5kaXNwbGF5TmFtZT0iamF2YXNjcmlwdCIsZS5hbGlhc2VzPVsianMiXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmphdmFzY3JpcHQ9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIseyJjbGFzcy1uYW1lIjpbbi5sYW5ndWFnZXMuY2xpa2VbImNsYXNzLW5hbWUiXSx7cGF0dGVybjovKF58W14kXHdceEEwLVx1RkZGRl0pKD8hXHMpW18kQS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKD89XC4oPzpjb25zdHJ1Y3Rvcnxwcm90b3R5cGUpKS8sbG9va2JlaGluZDohMH1dLGtleXdvcmQ6W3twYXR0ZXJuOi8oKD86XnxcfSlccyopY2F0Y2hcYi8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteLl18XC5cLlwuXHMqKVxiKD86YXN8YXNzZXJ0KD89XHMqXHspfGFzeW5jKD89XHMqKD86ZnVuY3Rpb25cYnxcKHxbJFx3XHhBMC1cdUZGRkZdfCQpKXxhd2FpdHxicmVha3xjYXNlfGNsYXNzfGNvbnN0fGNvbnRpbnVlfGRlYnVnZ2VyfGRlZmF1bHR8ZGVsZXRlfGRvfGVsc2V8ZW51bXxleHBvcnR8ZXh0ZW5kc3xmaW5hbGx5KD89XHMqKD86XHt8JCkpfGZvcnxmcm9tKD89XHMqKD86WyciXXwkKSl8ZnVuY3Rpb258KD86Z2V0fHNldCkoPz1ccyooPzpbI1xbJFx3XHhBMC1cdUZGRkZdfCQpKXxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbnxpbnN0YW5jZW9mfGludGVyZmFjZXxsZXR8bmV3fG51bGx8b2Z8cGFja2FnZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmV0dXJufHN0YXRpY3xzdXBlcnxzd2l0Y2h8dGhpc3x0aHJvd3x0cnl8dHlwZW9mfHVuZGVmaW5lZHx2YXJ8dm9pZHx3aGlsZXx3aXRofHlpZWxkKVxiLyxsb29rYmVoaW5kOiEwfV0sZnVuY3Rpb246LyM/KD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKD89XHMqKD86XC5ccyooPzphcHBseXxiaW5kfGNhbGwpXHMqKT9cKCkvLG51bWJlcjp7cGF0dGVybjpSZWdFeHAoLyhefFteXHckXSkvLnNvdXJjZSsiKD86IisoL05hTnxJbmZpbml0eS8uc291cmNlKyJ8IisvMFtiQl1bMDFdKyg/Ol9bMDFdKykqbj8vLnNvdXJjZSsifCIrLzBbb09dWzAtN10rKD86X1swLTddKykqbj8vLnNvdXJjZSsifCIrLzBbeFhdW1xkQS1GYS1mXSsoPzpfW1xkQS1GYS1mXSspKm4/Ly5zb3VyY2UrInwiKy9cZCsoPzpfXGQrKSpuLy5zb3VyY2UrInwiKy8oPzpcZCsoPzpfXGQrKSooPzpcLig/OlxkKyg/Ol9cZCspKik/KT98XC5cZCsoPzpfXGQrKSopKD86W0VlXVsrLV0/XGQrKD86X1xkKykqKT8vLnNvdXJjZSkrIikiKy8oPyFbXHckXSkvLnNvdXJjZSksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6Ly0tfFwrXCt8XCpcKj0/fD0+fCYmPT98XHxcfD0/fFshPV09PXw8PD0/fD4+Pj89P3xbLSsqLyUmfF4hPTw+XT0/fFwuezN9fFw/XD89P3xcP1wuP3xbfjpdL30pLG4ubGFuZ3VhZ2VzLmphdmFzY3JpcHRbImNsYXNzLW5hbWUiXVswXS5wYXR0ZXJuPS8oXGIoPzpjbGFzc3xleHRlbmRzfGltcGxlbWVudHN8aW5zdGFuY2VvZnxpbnRlcmZhY2V8bmV3KVxzKylbXHcuXFxdKy8sbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhc2NyaXB0Iiwia2V5d29yZCIse3JlZ2V4OntwYXR0ZXJuOi8oKD86XnxbXiRcd1x4QTAtXHVGRkZGLiInXF0pXHNdfFxiKD86cmV0dXJufHlpZWxkKSlccyopXC8oPzpcWyg/OlteXF1cXFxyXG5dfFxcLikqXF18XFwufFteL1xcXFtcclxuXSkrXC9bZGdpbXl1c117MCw3fSg/PSg/OlxzfFwvXCooPzpbXipdfFwqKD8hXC8pKSpcKlwvKSooPzokfFtcclxuLC47On0pXF1dfFwvXC8pKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOnsicmVnZXgtc291cmNlIjp7cGF0dGVybjovXihcLylbXHNcU10rKD89XC9bYS16XSokKS8sbG9va2JlaGluZDohMCxhbGlhczoibGFuZ3VhZ2UtcmVnZXgiLGluc2lkZTpuLmxhbmd1YWdlcy5yZWdleH0sInJlZ2V4LWRlbGltaXRlciI6L15cL3xcLyQvLCJyZWdleC1mbGFncyI6L15bYS16XSskL319LCJmdW5jdGlvbi12YXJpYWJsZSI6e3BhdHRlcm46LyM/KD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKD89XHMqWz06XVxzKig/OmFzeW5jXHMqKT8oPzpcYmZ1bmN0aW9uXGJ8KD86XCgoPzpbXigpXXxcKFteKCldKlwpKSpcKXwoPyFccylbXyRhLXpBLVpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSopXHMqPT4pKS8sYWxpYXM6ImZ1bmN0aW9uIn0scGFyYW1ldGVyOlt7cGF0dGVybjovKGZ1bmN0aW9uKD86XHMrKD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKT9ccypcKFxzKikoPyFccykoPzpbXigpXHNdfFxzKyg/IVtccyldKXxcKFteKCldKlwpKSsoPz1ccypcKSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9LHtwYXR0ZXJuOi8oXnxbXiRcd1x4QTAtXHVGRkZGXSkoPyFccylbXyRhLXpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSooPz1ccyo9PikvaSxsb29rYmVoaW5kOiEwLGluc2lkZTpuLmxhbmd1YWdlcy5qYXZhc2NyaXB0fSx7cGF0dGVybjovKFwoXHMqKSg/IVxzKSg/OlteKClcc118XHMrKD8hW1xzKV0pfFwoW14oKV0qXCkpKyg/PVxzKlwpXHMqPT4pLyxsb29rYmVoaW5kOiEwLGluc2lkZTpuLmxhbmd1YWdlcy5qYXZhc2NyaXB0fSx7cGF0dGVybjovKCg/OlxifFxzfF4pKD8hKD86YXN8YXN5bmN8YXdhaXR8YnJlYWt8Y2FzZXxjYXRjaHxjbGFzc3xjb25zdHxjb250aW51ZXxkZWJ1Z2dlcnxkZWZhdWx0fGRlbGV0ZXxkb3xlbHNlfGVudW18ZXhwb3J0fGV4dGVuZHN8ZmluYWxseXxmb3J8ZnJvbXxmdW5jdGlvbnxnZXR8aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW5zdGFuY2VvZnxpbnRlcmZhY2V8bGV0fG5ld3xudWxsfG9mfHBhY2thZ2V8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJldHVybnxzZXR8c3RhdGljfHN1cGVyfHN3aXRjaHx0aGlzfHRocm93fHRyeXx0eXBlb2Z8dW5kZWZpbmVkfHZhcnx2b2lkfHdoaWxlfHdpdGh8eWllbGQpKD8hWyRcd1x4QTAtXHVGRkZGXSkpKD86KD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqXHMqKVwoXHMqfFxdXHMqXChccyopKD8hXHMpKD86W14oKVxzXXxccysoPyFbXHMpXSl8XChbXigpXSpcKSkrKD89XHMqXClccypceykvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9XSxjb25zdGFudDovXGJbQS1aXSg/OltBLVpfXXxcZHg/KSpcYi99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImphdmFzY3JpcHQiLCJzdHJpbmciLHtoYXNoYmFuZzp7cGF0dGVybjovXiMhLiovLGdyZWVkeTohMCxhbGlhczoiY29tbWVudCJ9LCJ0ZW1wbGF0ZS1zdHJpbmciOntwYXR0ZXJuOi9gKD86XFxbXHNcU118XCRceyg/Oltee31dfFx7KD86W157fV18XHtbXn1dKlx9KSpcfSkrXH18KD8hXCRceylbXlxcYF0pKmAvLGdyZWVkeTohMCxpbnNpZGU6eyJ0ZW1wbGF0ZS1wdW5jdHVhdGlvbiI6e3BhdHRlcm46L15gfGAkLyxhbGlhczoic3RyaW5nIn0saW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKilcJFx7KD86W157fV18XHsoPzpbXnt9XXxce1tefV0qXH0pKlx9KStcfS8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXlwkXHt8XH0kLyxhbGlhczoicHVuY3R1YXRpb24ifSxyZXN0Om4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9fSxzdHJpbmc6L1tcc1xTXSsvfX0sInN0cmluZy1wcm9wZXJ0eSI6e3BhdHRlcm46LygoPzpefFsse10pWyBcdF0qKShbIiddKSg/OlxcKD86XHJcbnxbXHNcU10pfCg/IVwyKVteXFxcclxuXSkqXDIoPz1ccyo6KS9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJwcm9wZXJ0eSJ9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhc2NyaXB0Iiwib3BlcmF0b3IiLHsibGl0ZXJhbC1wcm9wZXJ0eSI6e3BhdHRlcm46LygoPzpefFsse10pWyBcdF0qKSg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKig/PVxzKjopL20sbG9va2JlaGluZDohMCxhbGlhczoicHJvcGVydHkifX0pLG4ubGFuZ3VhZ2VzLm1hcmt1cCYmKG4ubGFuZ3VhZ2VzLm1hcmt1cC50YWcuYWRkSW5saW5lZCgic2NyaXB0IiwiamF2YXNjcmlwdCIpLG4ubGFuZ3VhZ2VzLm1hcmt1cC50YWcuYWRkQXR0cmlidXRlKC9vbig/OmFib3J0fGJsdXJ8Y2hhbmdlfGNsaWNrfGNvbXBvc2l0aW9uKD86ZW5kfHN0YXJ0fHVwZGF0ZSl8ZGJsY2xpY2t8ZXJyb3J8Zm9jdXMoPzppbnxvdXQpP3xrZXkoPzpkb3dufHVwKXxsb2FkfG1vdXNlKD86ZG93bnxlbnRlcnxsZWF2ZXxtb3ZlfG91dHxvdmVyfHVwKXxyZXNldHxyZXNpemV8c2Nyb2xsfHNlbGVjdHxzbG90Y2hhbmdlfHN1Ym1pdHx1bmxvYWR8d2hlZWwpLy5zb3VyY2UsImphdmFzY3JpcHQiKSksbi5sYW5ndWFnZXMuanM9bi5sYW5ndWFnZXMuamF2YXNjcmlwdH1yZXR1cm4gWmN9dmFyIFFjLE1UO2Z1bmN0aW9uIFdNKCl7aWYoTVQpcmV0dXJuIFFjO01UPTE7dmFyIGU9dHlwZW9mIGdsb2JhbFRoaXM9PSJvYmplY3QiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY9PSJvYmplY3QiP3NlbGY6dHlwZW9mIHdpbmRvdz09Im9iamVjdCI/d2luZG93OnR5cGVvZiBEbD09Im9iamVjdCI/RGw6e30sbj1GKCk7ZS5QcmlzbT17bWFudWFsOiEwLGRpc2FibGVXb3JrZXJNZXNzYWdlSGFuZGxlcjohMH07dmFyIGE9QkwoKSxpPUdNKCksbD1ITSgpLHU9JE0oKSxjPVZNKCksZD1ZTSgpLGY9S00oKTtuKCk7dmFyIG09e30uaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYigpe31iLnByb3RvdHlwZT1sO3ZhciBoPW5ldyBiO1FjPWgsaC5oaWdobGlnaHQ9XyxoLnJlZ2lzdGVyPVMsaC5hbGlhcz1FLGgucmVnaXN0ZXJlZD1ULGgubGlzdExhbmd1YWdlcz1DLFModSksUyhjKSxTKGQpLFMoZiksaC51dGlsLmVuY29kZT1rLGguVG9rZW4uc3RyaW5naWZ5PXg7ZnVuY3Rpb24gUyhSKXtpZih0eXBlb2YgUiE9ImZ1bmN0aW9uInx8IVIuZGlzcGxheU5hbWUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgZnVuY3Rpb25gIGZvciBgZ3JhbW1hcmAsIGdvdCBgIitSKyJgIik7aC5sYW5ndWFnZXNbUi5kaXNwbGF5TmFtZV09PT12b2lkIDAmJlIoaCl9ZnVuY3Rpb24gRShSLE0pe3ZhciBZPWgubGFuZ3VhZ2VzLHo9UixVLCQsSixvZTtNJiYoej17fSx6W1JdPU0pO2ZvcihVIGluIHopZm9yKCQ9eltVXSwkPXR5cGVvZiAkPT0ic3RyaW5nIj9bJF06JCxKPSQubGVuZ3RoLG9lPS0xOysrb2U8SjspWVskW29lXV09WVtVXX1mdW5jdGlvbiBfKFIsTSl7dmFyIFk9bC5oaWdobGlnaHQsejtpZih0eXBlb2YgUiE9InN0cmluZyIpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgc3RyaW5nYCBmb3IgYHZhbHVlYCwgZ290IGAiK1IrImAiKTtpZihoLnV0aWwudHlwZShNKT09PSJPYmplY3QiKXo9TSxNPW51bGw7ZWxzZXtpZih0eXBlb2YgTSE9InN0cmluZyIpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgc3RyaW5nYCBmb3IgYG5hbWVgLCBnb3QgYCIrTSsiYCIpO2lmKG0uY2FsbChoLmxhbmd1YWdlcyxNKSl6PWgubGFuZ3VhZ2VzW01dO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGxhbmd1YWdlOiBgIitNKyJgIGlzIG5vdCByZWdpc3RlcmVkIil9cmV0dXJuIFkuY2FsbCh0aGlzLFIseixNKX1mdW5jdGlvbiBUKFIpe2lmKHR5cGVvZiBSIT0ic3RyaW5nIil0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGBzdHJpbmdgIGZvciBgbGFuZ3VhZ2VgLCBnb3QgYCIrUisiYCIpO3JldHVybiBtLmNhbGwoaC5sYW5ndWFnZXMsUil9ZnVuY3Rpb24gQygpe3ZhciBSPWgubGFuZ3VhZ2VzLE09W10sWTtmb3IoWSBpbiBSKW0uY2FsbChSLFkpJiZ0eXBlb2YgUltZXT09Im9iamVjdCImJk0ucHVzaChZKTtyZXR1cm4gTX1mdW5jdGlvbiB4KFIsTSxZKXt2YXIgejtyZXR1cm4gdHlwZW9mIFI9PSJzdHJpbmciP3t0eXBlOiJ0ZXh0Iix2YWx1ZTpSfTpoLnV0aWwudHlwZShSKT09PSJBcnJheSI/TihSLE0pOih6PXt0eXBlOlIudHlwZSxjb250ZW50OmguVG9rZW4uc3RyaW5naWZ5KFIuY29udGVudCxNLFkpLHRhZzoic3BhbiIsY2xhc3NlczpbInRva2VuIixSLnR5cGVdLGF0dHJpYnV0ZXM6e30sbGFuZ3VhZ2U6TSxwYXJlbnQ6WX0sUi5hbGlhcyYmKHouY2xhc3Nlcz16LmNsYXNzZXMuY29uY2F0KFIuYWxpYXMpKSxoLmhvb2tzLnJ1bigid3JhcCIseiksYSh6LnRhZysiLiIrei5jbGFzc2VzLmpvaW4oIi4iKSxMKHouYXR0cmlidXRlcyksei5jb250ZW50KSl9ZnVuY3Rpb24gTihSLE0pe2Zvcih2YXIgWT1bXSx6PVIubGVuZ3RoLFU9LTEsJDsrK1U8ejspJD1SW1VdLCQhPT0iIiYmJCE9PW51bGwmJiQhPT12b2lkIDAmJlkucHVzaCgkKTtmb3IoVT0tMSx6PVkubGVuZ3RoOysrVTx6OykkPVlbVV0sWVtVXT1oLlRva2VuLnN0cmluZ2lmeSgkLE0sWSk7cmV0dXJuIFl9ZnVuY3Rpb24gayhSKXtyZXR1cm4gUn1mdW5jdGlvbiBMKFIpe3ZhciBNO2ZvcihNIGluIFIpUltNXT1pKFJbTV0pO3JldHVybiBSfWZ1bmN0aW9uIEYoKXt2YXIgUj0iUHJpc20iaW4gZSxNPVI/ZS5QcmlzbTp2b2lkIDA7cmV0dXJuIFk7ZnVuY3Rpb24gWSgpe1I/ZS5QcmlzbT1NOmRlbGV0ZSBlLlByaXNtLFI9dm9pZCAwLE09dm9pZCAwfX1yZXR1cm4gUWN9Y29uc3QgWE09eydjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0nOntjb2xvcjoiYmxhY2siLGJhY2tncm91bmQ6Im5vbmUiLHRleHRTaGFkb3c6IjAgMXB4IHdoaXRlIixmb250RmFtaWx5OiJDb25zb2xhcywgTW9uYWNvLCAnQW5kYWxlIE1vbm8nLCAnVWJ1bnR1IE1vbm8nLCBtb25vc3BhY2UiLGZvbnRTaXplOiIxZW0iLHRleHRBbGlnbjoibGVmdCIsd2hpdGVTcGFjZToicHJlIix3b3JkU3BhY2luZzoibm9ybWFsIix3b3JkQnJlYWs6Im5vcm1hbCIsd29yZFdyYXA6Im5vcm1hbCIsbGluZUhlaWdodDoiMS41IixNb3pUYWJTaXplOiI0IixPVGFiU2l6ZToiNCIsdGFiU2l6ZToiNCIsV2Via2l0SHlwaGVuczoibm9uZSIsTW96SHlwaGVuczoibm9uZSIsbXNIeXBoZW5zOiJub25lIixoeXBoZW5zOiJub25lIn0sJ3ByZVtjbGFzcyo9Imxhbmd1YWdlLSJdJzp7Y29sb3I6ImJsYWNrIixiYWNrZ3JvdW5kOiIjZjVmMmYwIix0ZXh0U2hhZG93OiIwIDFweCB3aGl0ZSIsZm9udEZhbWlseToiQ29uc29sYXMsIE1vbmFjbywgJ0FuZGFsZSBNb25vJywgJ1VidW50dSBNb25vJywgbW9ub3NwYWNlIixmb250U2l6ZToiMWVtIix0ZXh0QWxpZ246ImxlZnQiLHdoaXRlU3BhY2U6InByZSIsd29yZFNwYWNpbmc6Im5vcm1hbCIsd29yZEJyZWFrOiJub3JtYWwiLHdvcmRXcmFwOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEuNSIsTW96VGFiU2l6ZToiNCIsT1RhYlNpemU6IjQiLHRhYlNpemU6IjQiLFdlYmtpdEh5cGhlbnM6Im5vbmUiLE1vekh5cGhlbnM6Im5vbmUiLG1zSHlwaGVuczoibm9uZSIsaHlwaGVuczoibm9uZSIscGFkZGluZzoiMWVtIixtYXJnaW46Ii41ZW0gMCIsb3ZlcmZsb3c6ImF1dG8ifSwncHJlW2NsYXNzKj0ibGFuZ3VhZ2UtIl06Oi1tb3otc2VsZWN0aW9uJzp7dGV4dFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoiI2IzZDRmYyJ9LCdwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXSA6Oi1tb3otc2VsZWN0aW9uJzp7dGV4dFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoiI2IzZDRmYyJ9LCdjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl06Oi1tb3otc2VsZWN0aW9uJzp7dGV4dFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoiI2IzZDRmYyJ9LCdjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gOjotbW96LXNlbGVjdGlvbic6e3RleHRTaGFkb3c6Im5vbmUiLGJhY2tncm91bmQ6IiNiM2Q0ZmMifSwncHJlW2NsYXNzKj0ibGFuZ3VhZ2UtIl06OnNlbGVjdGlvbic6e3RleHRTaGFkb3c6Im5vbmUiLGJhY2tncm91bmQ6IiNiM2Q0ZmMifSwncHJlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gOjpzZWxlY3Rpb24nOnt0ZXh0U2hhZG93OiJub25lIixiYWNrZ3JvdW5kOiIjYjNkNGZjIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXTo6c2VsZWN0aW9uJzp7dGV4dFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoiI2IzZDRmYyJ9LCdjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gOjpzZWxlY3Rpb24nOnt0ZXh0U2hhZG93OiJub25lIixiYWNrZ3JvdW5kOiIjYjNkNGZjIn0sJzpub3QocHJlKSA+IGNvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXSc6e2JhY2tncm91bmQ6IiNmNWYyZjAiLHBhZGRpbmc6Ii4xZW0iLGJvcmRlclJhZGl1czoiLjNlbSIsd2hpdGVTcGFjZToibm9ybWFsIn0sY29tbWVudDp7Y29sb3I6InNsYXRlZ3JheSJ9LHByb2xvZzp7Y29sb3I6InNsYXRlZ3JheSJ9LGRvY3R5cGU6e2NvbG9yOiJzbGF0ZWdyYXkifSxjZGF0YTp7Y29sb3I6InNsYXRlZ3JheSJ9LHB1bmN0dWF0aW9uOntjb2xvcjoiIzk5OSJ9LG5hbWVzcGFjZTp7T3BhY2l0eToiLjcifSxwcm9wZXJ0eTp7Y29sb3I6IiM5MDUifSx0YWc6e2NvbG9yOiIjOTA1In0sYm9vbGVhbjp7Y29sb3I6IiM5MDUifSxudW1iZXI6e2NvbG9yOiIjOTA1In0sY29uc3RhbnQ6e2NvbG9yOiIjOTA1In0sc3ltYm9sOntjb2xvcjoiIzkwNSJ9LGRlbGV0ZWQ6e2NvbG9yOiIjOTA1In0sc2VsZWN0b3I6e2NvbG9yOiIjNjkwIn0sImF0dHItbmFtZSI6e2NvbG9yOiIjNjkwIn0sc3RyaW5nOntjb2xvcjoiIzY5MCJ9LGNoYXI6e2NvbG9yOiIjNjkwIn0sYnVpbHRpbjp7Y29sb3I6IiM2OTAifSxpbnNlcnRlZDp7Y29sb3I6IiM2OTAifSxvcGVyYXRvcjp7Y29sb3I6IiM5YTZlM2EiLGJhY2tncm91bmQ6ImhzbGEoMCwgMCUsIDEwMCUsIC41KSJ9LGVudGl0eTp7Y29sb3I6IiM5YTZlM2EiLGJhY2tncm91bmQ6ImhzbGEoMCwgMCUsIDEwMCUsIC41KSIsY3Vyc29yOiJoZWxwIn0sdXJsOntjb2xvcjoiIzlhNmUzYSIsYmFja2dyb3VuZDoiaHNsYSgwLCAwJSwgMTAwJSwgLjUpIn0sIi5sYW5ndWFnZS1jc3MgLnRva2VuLnN0cmluZyI6e2NvbG9yOiIjOWE2ZTNhIixiYWNrZ3JvdW5kOiJoc2xhKDAsIDAlLCAxMDAlLCAuNSkifSwiLnN0eWxlIC50b2tlbi5zdHJpbmciOntjb2xvcjoiIzlhNmUzYSIsYmFja2dyb3VuZDoiaHNsYSgwLCAwJSwgMTAwJSwgLjUpIn0sYXRydWxlOntjb2xvcjoiIzA3YSJ9LCJhdHRyLXZhbHVlIjp7Y29sb3I6IiMwN2EifSxrZXl3b3JkOntjb2xvcjoiIzA3YSJ9LGZ1bmN0aW9uOntjb2xvcjoiI0RENEE2OCJ9LCJjbGFzcy1uYW1lIjp7Y29sb3I6IiNERDRBNjgifSxyZWdleDp7Y29sb3I6IiNlOTAifSxpbXBvcnRhbnQ6e2NvbG9yOiIjZTkwIixmb250V2VpZ2h0OiJib2xkIn0sdmFyaWFibGU6e2NvbG9yOiIjZTkwIn0sYm9sZDp7Zm9udFdlaWdodDoiYm9sZCJ9LGl0YWxpYzp7Zm9udFN0eWxlOiJpdGFsaWMifX07dmFyIEpjLFVUO2Z1bmN0aW9uIFpNKCl7aWYoVVQpcmV0dXJuIEpjO1VUPTEsSmM9ZSxlLmRpc3BsYXlOYW1lPSJhYmFwIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5hYmFwPXtjb21tZW50Oi9eXCouKi9tLHN0cmluZzovKGB8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8sInN0cmluZy10ZW1wbGF0ZSI6e3BhdHRlcm46LyhbfH1dKSg/OlxcLnxbXlxcfHtcclxuXSkqKD89W3x7XSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyJ9LCJlb2wtY29tbWVudCI6e3BhdHRlcm46LyhefFxzKSIuKi9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNvbW1lbnQifSxrZXl3b3JkOntwYXR0ZXJuOi8oXHN8XC58XikoPzpTQ0lFTlRJRklDX1dJVEhfTEVBRElOR19aRVJPfFNDQUxFX1BSRVNFUlZJTkdfU0NJRU5USUZJQ3xSTUNfQ09NTVVOSUNBVElPTl9GQUlMVVJFfEVORC1FTkhBTkNFTUVOVC1TRUNUSU9OfE1VTFRJUExZLUNPUlJFU1BPTkRJTkd8U1VCVFJBQ1QtQ09SUkVTUE9ORElOR3xWRVJJRklDQVRJT04tTUVTU0FHRXxESVZJREUtQ09SUkVTUE9ORElOR3xFTkhBTkNFTUVOVC1TRUNUSU9OfENVUlJFTkNZX0NPTlZFUlNJT058Uk1DX1NZU1RFTV9GQUlMVVJFfFNUQVJULU9GLVNFTEVDVElPTnxNT1ZFLUNPUlJFU1BPTkRJTkd8Uk1DX0lOVkFMSURfU1RBVFVTfENVU1RPTUVSLUZVTkNUSU9OfEVORC1PRi1ERUZJTklUSU9OfEVOSEFOQ0VNRU5ULVBPSU5UfFNZU1RFTS1FWENFUFRJT05TfEFERC1DT1JSRVNQT05ESU5HfFNDQUxFX1BSRVNFUlZJTkd8U0VMRUNUSU9OLVNDUkVFTnxDVVJTT1ItU0VMRUNUSU9OfEVORC1PRi1TRUxFQ1RJT058TE9BRC1PRi1QUk9HUkFNfFNDUk9MTC1CT1VOREFSWXxTRUxFQ1RJT04tVEFCTEV8RVhDRVBUSU9OLVRBQkxFfElNUExFTUVOVEFUSU9OU3xQQVJBTUVURVItVEFCTEV8UklHSFQtSlVTVElGSUVEfFVOSVRfQ09OVkVSU0lPTnxBVVRIT1JJVFktQ0hFQ0t8TElTVC1QUk9DRVNTSU5HfFNJR05fQVNfUE9TVEZJWHxDT0xfQkFDS0dST1VORHxJTVBMRU1FTlRBVElPTnxJTlRFUkZBQ0UtUE9PTHxUUkFOU0ZPUk1BVElPTnxJREVOVElGSUNBVElPTnxFTkRFTkhBTkNFTUVOVHxMSU5FLVNFTEVDVElPTnxJTklUSUFMSVpBVElPTnxMRUZULUpVU1RJRklFRHxTRUxFQ1QtT1BUSU9OU3xTRUxFQ1RJT04tU0VUU3xDT01NVU5JQ0FUSU9OfENPUlJFU1BPTkRJTkd8REVDSU1BTF9TSElGVHxQUklOVC1DT05UUk9MfFZBTFVFLVJFUVVFU1R8Q0hBSU4tUkVRVUVTVHxGVU5DVElPTi1QT09MfEZJRUxELVNZTUJPTFN8RlVOQ1RJT05BTElUWXxJTlZFUlRFRC1EQVRFfFNFTEVDVElPTi1TRVR8Q0xBU1MtTUVUSE9EU3xPVVRQVVQtTEVOR1RIfENMQVNTLUNPRElOR3xDT0xfTkVHQVRJVkV8RVJST1JNRVNTQUdFfEZJRUxELUdST1VQU3xIRUxQLVJFUVVFU1R8Tk8tRVhURU5TSU9OfE5PLVRPUE9GUEFHRXxSRURFRklOSVRJT058RElTUExBWS1NT0RFfEVORElOVEVSRkFDRXxFWElULUNPTU1BTkR8RklFTEQtU1lNQk9MfE5PLVNDUk9MTElOR3xTSE9SVERVTVAtSUR8QUNDRVNTUE9MSUNZfENMQVNTLUVWRU5UU3xDT0xfUE9TSVRJVkV8REVDTEFSQVRJT05TfEVOSEFOQ0VNRU5UU3xGSUxURVItVEFCTEV8U1dJVENIU1RBVEVTfFNZTlRBWC1DSEVDS3xUUkFOU1BPUlRJTkd8QVNZTkNIUk9OT1VTfFNZTlRBWC1UUkFDRXxUT0tFTklaQVRJT058VVNFUi1DT01NQU5EfFdJVEgtSEVBRElOR3xBQkFQLVNPVVJDRXxCUkVBSy1QT0lOVHxDSEFJTi1JTlBVVHxDT01QUkVTU0lPTnxGSVhFRC1QT0lOVHxORVctU0VDVElPTnxOT04tVU5JQ09ERXxPQ0NVUlJFTkNFU3xSRVNQT05TSUJMRXxTWVNURU0tQ0FMTHxUUkFDRS1UQUJMRXxBQkJSRVZJQVRFRHxDSEFSLVRPLUhFWHxFTkQtT0YtRklMRXxFTkRGVU5DVElPTnxFTlZJUk9OTUVOVHxBU1NPQ0lBVElPTnxDT0xfSEVBRElOR3xFRElUT1ItQ0FMTHxFTkQtT0YtUEFHRXxFTkdJTkVFUklOR3xJTVBMRU1FTlRFRHxJTlRFTlNJRklFRHxSQURJT0JVVFRPTnxTWVNURU0tRVhJVHxUT1AtT0YtUEFHRXxUUkFOU0FDVElPTnxBUFBMSUNBVElPTnxDT05DQVRFTkFURXxERVNUSU5BVElPTnxFTkhBTkNFTUVOVHxJTU1FRElBVEVMWXxOTy1HUk9VUElOR3xQUkVDT01QSUxFRHxSRVBMQUNFTUVOVHxUSVRMRS1MSU5FU3xBQ1RJVkFUSU9OfEJZVEUtT1JERVJ8Q0xBU1MtUE9PTHxDT05ORUNUSU9OfENPTlZFUlNJT058REVGSU5JVElPTnxERVBBUlRNRU5UfEVYUElSQVRJT058SU5IRVJJVElOR3xNRVNTQUdFLUlEfE5PLUhFQURJTkd8UEVSRk9STUlOR3xRVUVVRS1PTkxZfFJJR0hUU1BBQ0V8U0NJRU5USUZJQ3xTVEFUVVNJTkZPfFNUUlVDVFVSRVN8U1lOQ1BPSU5UU3xXSVRILVRJVExFfEFUVFJJQlVURVN8Qk9VTkRBUklFU3xDTEFTUy1EQVRBfENPTF9OT1JNQUx8RERcL01NXC9ZWVlZfERFU0NFTkRJTkd8SU5URVJGQUNFU3xMSU5FLUNPVU5UfE1NXC9ERFwvWVlZWXxOT04tVU5JUVVFfFBSRVNFUlZJTkd8U0VMRUNUSU9OU3xTVEFURU1FTlRTfFNVQlJPVVRJTkV8VFJVTkNBVElPTnxUWVBFLVBPT0xTfEFSSVRITUVUSUN8QkFDS0dST1VORHxFTkRQUk9WSURFfEVYQ0VQVElPTlN8SURFTlRJRklFUnxJTkRFWC1MSU5FfE9CTElHQVRPUll8UEFSQU1FVEVSU3xQRVJDRU5UQUdFfFBVU0hCVVRUT058UkVTT0xVVElPTnxDT01QT05FTlRTfERFQUxMT0NBVEV8RElTQ09OTkVDVHxEVVBMSUNBVEVTfEZJUlNULUxJTkV8SEVBRC1MSU5FU3xOTy1ESVNQTEFZfE9DQ1VSUkVOQ0V8UkVTUEVDVElOR3xSRVRVUk5DT0RFfFNVQk1BVENIRVN8VFJBQ0UtRklMRXxBU0NFTkRJTkd8QllQQVNTSU5HfEVORE1PRFVMRXxFWENFUFRJT058RVhDTFVESU5HfEVYUE9SVElOR3xJTkNSRU1FTlR8TUFUQ0hDT0RFfFBBUkFNRVRFUnxQQVJUSUFMTFl8UFJFRkVSUkVEfFJFRkVSRU5DRXxSRVBMQUNJTkd8UkVUVVJOSU5HfFNFTEVDVElPTnxTRVBBUkFURUR8U1BFQ0lGSUVEfFNUQVRFTUVOVHxUSU1FU1RBTVB8VFlQRS1QT09MfEFDQ0VQVElOR3xBUFBFTkRBR0V8QVNTSUdOSU5HfENPTF9HUk9VUHxDT01QQVJJTkd8Q09OU1RBTlRTfERBTkdFUk9VU3xJTVBPUlRJTkd8SU5TVEFOQ0VTfExFRlRTUEFDRXxMT0ctUE9JTlR8UVVJQ0tJTkZPfFJFQUQtT05MWXxTQ1JPTExJTkd8U1FMU0NSSVBUfFNURVAtTE9PUHxUT1AtTElORVN8VFJBTlNMQVRFfEFQUEVORElOR3xBVVRIT1JJVFl8Q0hBUkFDVEVSfENPTVBPTkVOVHxDT05ESVRJT058RElSRUNUT1JZfERVUExJQ0FURXxNRVNTQUdJTkd8UkVDRUlWSU5HfFNVQlNDUkVFTnxBQ0NPUkRJTkd8Q09MX1RPVEFMfEVORC1MSU5FU3xFTkRNRVRIT0R8RU5EU0VMRUNUfEVYUEFORElOR3xFWFRFTlNJT058SU5DTFVESU5HfElORk9UWVBFU3xJTlRFUkZBQ0V8SU5URVJWQUxTfExJTkUtU0laRXxQRi1TVEFUVVN8UFJPQ0VEVVJFfFBST1RFQ1RFRHxSRVFVRVNURUR8UkVTVU1BQkxFfFJJR0hUUExVU3xTQVAtU1BPT0x8U0VDT05EQVJZfFNUUlVDVFVSRXxTVUJTVFJJTkd8VEFCTEVWSUVXfE5VTU9GQ0hBUnxBREpBQ0VOVHxBTkFMWVNJU3xBU1NJR05FRHxCQUNLV0FSRHxDSEFOTkVMU3xDSEVDS0JPWHxDT05USU5VRXxDUklUSUNBTHxEQVRBSU5GT3xERFwvTU1cL1lZfERVUkFUSU9OfEVOQ09ESU5HfEVORENMQVNTfEZVTkNUSU9OfExFRlRQTFVTfExJTkVGRUVEfE1NXC9ERFwvWVl8T1ZFUkZMT1d8UkVDRUlWRUR8U0tJUFBJTkd8U09SVEFCTEV8U1RBTkRBUkR8U1VCVFJBQ1R8U1VQUFJFU1N8VEFCU1RSSVB8VElUTEVCQVJ8VFJVTkNBVEV8VU5BU1NJR058V0hFTkVWRVJ8QU5BTFlaRVJ8Q09BTEVTQ0V8Q09NTUVOVFN8Q09OREVOU0V8REVDSU1BTFN8REVGRVJSRUR8RU5EV0hJTEV8RVhQTElDSVR8S0VZV09SRFN8TUVTU0FHRVN8UE9TSVRJT058UFJJT1JJVFl8UkVDRUlWRVJ8UkVOQU1JTkd8VElNRVpPTkV8VFJBSUxJTkd8QUxMT0NBVEV8Q0VOVEVSRUR8Q0lSQ1VMQVJ8Q09OVFJPTFN8Q1VSUkVOQ1l8REVMRVRJTkd8REVTQ1JJQkV8RElTVEFOQ0V8RU5EQ0FUQ0h8RVhQT05FTlR8RVhURU5ERUR8R0VORVJBVEV8SUdOT1JJTkd8SU5DTFVERVN8SU5URVJOQUx8TUFKT1ItSUR8TU9ESUZJRVJ8TkVXLUxJTkV8T1BUSU9OQUx8UFJPUEVSVFl8Uk9MTEJBQ0t8U1RBUlRJTkd8U1VQUExJRUR8QUJTVFJBQ1R8Q0hBTkdJTkd8Q09OVEVYVFN8Q1JFQVRJTkd8Q1VTVE9NRVJ8REFUQUJBU0V8REFZTElHSFR8REVGSU5JTkd8RElTVElOQ1R8RElWSVNJT058RU5BQkxJTkd8RU5EQ0hBSU58RVNDQVBJTkd8SEFSTUxFU1N8SU1QTElDSVR8SU5BQ1RJVkV8TEFOR1VBR0V8TUlOT1ItSUR8TVVMVElQTFl8TkVXLVBBR0V8Tk8tVElUTEV8UE9TX0hJR0h8U0VQQVJBVEV8VEVYVFBPT0x8VFJBTlNGRVJ8U0VMRUNUT1J8REJNQVhMRU58SVRFUkFUT1J8QVJDSElWRXxCSVQtWE9SfEJZVEUtQ098Q09MTEVDVHxDT01NRU5UfENVUlJFTlR8REVGQVVMVHxESVNQTEFZfEVOREZPUk18RVhUUkFDVHxMRUFESU5HfExJU1RCT1h8TE9DQVRPUnxNRU1CRVJTfE1FVEhPRFN8TkVTVElOR3xQT1NfTE9XfFBST0NFU1N8UFJPVklERXxSQUlTSU5HfFJFU0VSVkV8U0VDT05EU3xTVU1NQVJZfFZJU0lCTEV8QkVUV0VFTnxCSVQtQU5EfEJZVEUtQ1N8Q0xFQU5VUHxDT01QVVRFfENPTlRST0x8Q09OVkVSVHxEQVRBU0VUfEVORENBU0V8Rk9SV0FSRHxIRUFERVJTfEhPVFNQT1R8SU5DTFVERXxJTlZFUlNFfEtFRVBJTkd8Tk8tWkVST3xPQkpFQ1RTfE9WRVJMQVl8UEFERElOR3xQQVRURVJOfFBST0dSQU18UkVGUkVTSHxTRUNUSU9OfFNVTU1JTkd8VEVTVElOR3xWRVJTSU9OfFdJTkRPV1N8V0lUSE9VVHxCSVQtTk9UfEJZVEUtQ0F8QllURS1OQXxDQVNUSU5HfENPTlRFWFR8Q09VTlRSWXxEWU5BTUlDfEVOQUJMRUR8RU5ETE9PUHxFWEVDVVRFfEZSSUVORFN8SEFORExFUnxIRUFESU5HfElOSVRJQUx8XCotSU5QVVR8TE9HRklMRXxNQVhJTVVNfE1JTklNVU18Tk8tR0FQU3xOTy1TSUdOfFBSQUdNQVN8UFJJTUFSWXxQUklWQVRFfFJFRFVDRUR8UkVQTEFDRXxSRVFVRVNUfFJFU1VMVFN8VU5JQ09ERXxXQVJOSU5HfEFMSUFTRVN8QllURS1DTnxCWVRFLU5TfENBTExJTkd8Q09MX0tFWXxDT0xVTU5TfENPTk5FQ1R8RU5ERVhFQ3xFTlRSSUVTfEVYQ0xVREV8RklMVEVSU3xGVVJUSEVSfEhFTFAtSUR8TE9HSUNBTHxNQVBQSU5HfE1FU1NBR0V8TkFNRVRBQnxPUFRJT05TfFBBQ0tBR0V8UEVSRk9STXxSRUNFSVZFfFNUQVRJQ1N8VkFSWUlOR3xCSU5ESU5HfENIQVJMRU58R1JFQVRFUnxYU1RSTEVOfEFDQ0VQVHxBUFBFTkR8REVUQUlMfEVMU0VJRnxFTkRJTkd8RU5EVFJZfEZPUk1BVHxGUkFNRVN8R0lWSU5HfEhBU0hFRHxIRUFERVJ8SU1QT1JUfElOU0VSVHxNQVJHSU58TU9EVUxFfE5BVElWRXxPQkpFQ1R8T0ZGU0VUfFJFTU9URXxSRVNVTUV8U0FWSU5HfFNJTVBMRXxTVUJNSVR8VEFCQkVEfFRPS0VOU3xVTklRVUV8VU5QQUNLfFVQREFURXxXSU5ET1d8WUVMTE9XfEFDVFVBTHxBU1BFQ1R8Q0VOVEVSfENVUlNPUnxERUxFVEV8RElBTE9HfERJVklERXxEVVJJTkd8RVJST1JTfEVWRU5UU3xFWFRFTkR8RklMVEVSfEhBTkRMRXxIQVZJTkd8SUdOT1JFfExJVFRMRXxNRU1PUll8Tk8tR0FQfE9DQ1VSU3xPUFRJT058UEVSU09OfFBMQUNFU3xQVUJMSUN8UkVEVUNFfFJFUE9SVHxSRVNVTFR8U0lOR0xFfFNPUlRFRHxTV0lUQ0h8U1lOVEFYfFRBUkdFVHxWQUxVRVN8V1JJVEVSfEFTU0VSVHxCTE9DS1N8Qk9VTkRTfEJVRkZFUnxDSEFOR0V8Q09MVU1OfENPTU1JVHxDT05DQVR8Q09QSUVTfENSRUFURXxERE1NWVl8REVGSU5FfEVORElBTnxFU0NBUEV8RVhQQU5EfEtFUk5FTHxMQVlPVVR8TEVHQUNZfExFVkVMU3xNTUREWVl8TlVNQkVSfE9VVFBVVHxSQU5HRVN8UkVBREVSfFJFVFVSTnxTQ1JFRU58U0VBUkNIfFNFTEVDVHxTSEFSRUR8U09VUkNFfFNUQUJMRXxTVEFUSUN8U1VCS0VZfFNVRkZJWHxUQUJMRVN8VU5XSU5EfFlZTU1ERHxBU1NJR058QkFDS1VQfEJFRk9SRXxCSU5BUll8QklULU9SfEJMQU5LU3xDTElFTlR8Q09ESU5HfENPTU1PTnxERU1BTkR8RFlOUFJPfEVYQ0VQVHxFWElTVFN8RVhQT1JUfEZJRUxEU3xHTE9CQUx8R1JPVVBTfExFTkdUSHxMT0NBTEV8TUVESVVNfE1FVEhPRHxNT0RJRll8TkVTVEVEfE9USEVSU3xSRUpFQ1R8U0NST0xMfFNVUFBMWXxTWU1CT0x8RU5ERk9SfFNUUkxFTnxBTElHTnxCRUdJTnxCT1VORHxFTkRBVHxFTlRSWXxFVkVOVHxGSU5BTHxGTFVTSHxHUkFOVHxJTk5FUnxTSE9SVHxVU0lOR3xXUklURXxBRlRFUnxCTEFDS3xCTE9DS3xDTE9DS3xDT0xPUnxDT1VOVHxEVU1NWXxFTVBUWXxFTkRET3xFTkRPTnxHUkVFTnxJTkRFWHxJTk9VVHxMRUFWRXxMRVZFTHxMSU5FU3xNT0RJRnxPUkRFUnxPVVRFUnxSQU5HRXxSRVNFVHxSRVRSWXxSSUdIVHxTTUFSVHxTUExJVHxTVFlMRXxUQUJMRXxUSFJPV3xVTkRFUnxVTlRJTHxVUFBFUnxVVEYtOHxXSEVSRXxBTElBU3xCTEFOS3xDTEVBUnxDTE9TRXxFWEFDVHxGRVRDSHxGSVJTVHxGT1VORHxHUk9VUHxMTEFOR3xMT0NBTHxPVEhFUnxSRUdFWHxTUE9PTHxUSVRMRXxUWVBFU3xWQUxJRHxXSElMRXxBTFBIQXxCT1hFRHxDQVRDSHxDSEFJTnxDSEVDS3xDTEFTU3xDT1ZFUnxFTkRJRnxFUVVJVnxGSUVMRHxGTE9PUnxGUkFNRXxJTlBVVHxMT1dFUnxNQVRDSHxOT0RFU3xQQUdFU3xQUklOVHxSQUlTRXxST1VORHxTSElGVHxTUEFDRXxTUE9UU3xTVEFNUHxTVEFURXxUQVNLU3xUSU1FU3xUUk1BQ3xVTElORXxVTklPTnxWQUxVRXxXSURUSHxFUVVBTHxMT0cxMHxUUlVOQ3xCTE9CfENBU0V8Q0VJTHxDTE9CfENPTkR8RVhJVHxGSUxFfEdBUFN8SE9MRHxJTkNMfElOVE98S0VFUHxLRVlTfExBU1R8TElORXxMT05HfExQQUR8TUFJTHxNT0RFfE9QRU58UElOS3xSRUFEfFJPV1N8VEVTVHxUSEVOfFpFUk98QVJFQXxCQUNLfEJBREl8QllURXxDQVNUfEVESVR8RVhFQ3xGQUlMfEZJTkR8RktFUXxGT05UfEZSRUV8R0tFUXxISURFfElOSVR8SVROT3xMQVRFfExPT1B8TUFJTnxNQVJLfE1PVkV8TkVYVHxOVUxMfFJJU0t8Uk9MRXxVTklUfFdBSVR8Wk9ORXxCQVNFfENBTEx8Q09ERXxEQVRBfERBVEV8RktHRXxHS0dFfEhJR0h8S0lORHxMRUZUfExJU1R8TUFTS3xNRVNIfE5BTUV8Tk9ERXxQQUNLfFBBR0V8UE9PTHxTRU5EfFNJR058U0laRXxTT01FfFNUT1B8VEFTS3xURVhUfFRJTUV8VVNFUnxWQVJZfFdJVEh8V09SRHxCTFVFfENPTlZ8Q09QWXxERUVQfEVMU0V8Rk9STXxGUk9NfEhJTlR8SUNPTnxKT0lOfExJS0V8TE9BRHxPTkxZfFBBUlR8U0NBTnxTS0lQfFNPUlR8VFlQRXxVTklYfFZJRVd8V0hFTnxXT1JLfEFDT1N8QVNJTnxBVEFOfENPU0h8RUFDSHxGUkFDfExFU1N8UlRUSXxTSU5IfFNRUlR8VEFOSHxBVkd8QklUfERJVnxJU098TEVUfE9VVHxQQUR8U1FMfEFMTHxDSV98Q1BJfEVORHxMT0J8TFBJfE1BWHxNSU58TkVXfE9MRXxSVU58U0VUfFw/VE98WUVTfEFCU3xBRER8QU5EfEJJR3xGT1J8SERCfEpPQnxMT1d8Tk9UfFNBUHxUUll8VklBfFhNTHxBTll8R0VUfElEU3xLRVl8TU9EfE9GRnxQVVR8UkFXfFJFRHxSRUZ8U1VNfFRBQnxYU0R8Q05UfENPU3xFWFB8TE9HfFNJTnxUQU58WE9SfEFUfENPfENQfERPfEdUfElEfElGfE5TfE9SfEJUfENBfENTfEdFfE5BfE5CfEVRfElOfExUfE5FfE5PfE9GfE9OfFBGfFRPfEFTfEJZfENOfElTfExFfE5QfFVQfEV8SXxNfE98WnxDfFgpXGIvaSxsb29rYmVoaW5kOiEwfSxudW1iZXI6L1xiXGQrXGIvLG9wZXJhdG9yOntwYXR0ZXJuOi8oXHMpKD86XCpcKj98PFs9Pl0/fD49P3xcPz18Wy0rXC89XSkoPz1ccykvLGxvb2tiZWhpbmQ6ITB9LCJzdHJpbmctb3BlcmF0b3IiOntwYXR0ZXJuOi8oXHMpJiY/KD89XHMpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sInRva2VuLW9wZXJhdG9yIjpbe3BhdHRlcm46LyhcdykoPzotPj98PT58W358e31dKSg/PVx3KS8sbG9va2JlaGluZDohMCxhbGlhczoicHVuY3R1YXRpb24ifSx7cGF0dGVybjovW3x7fV0vLGFsaWFzOiJwdW5jdHVhdGlvbiJ9XSxwdW5jdHVhdGlvbjovWywuOigpXS99fXJldHVybiBKY312YXIgZWQsRlQ7ZnVuY3Rpb24gUU0oKXtpZihGVClyZXR1cm4gZWQ7RlQ9MSxlZD1lLGUuZGlzcGxheU5hbWU9ImFibmYiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0iKD86QUxQSEF8QklUfENIQVJ8Q1J8Q1JMRnxDVEx8RElHSVR8RFFVT1RFfEhFWERJR3xIVEFCfExGfExXU1B8T0NURVR8U1B8VkNIQVJ8V1NQKSI7YS5sYW5ndWFnZXMuYWJuZj17Y29tbWVudDovOy4qLyxzdHJpbmc6e3BhdHRlcm46Lyg/OiVbaXNdKT8iW14iXG5ccl0qIi8sZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L14lW2lzXS99fSxyYW5nZTp7cGF0dGVybjovJSg/OmJbMDFdKy1bMDFdK3xkXGQrLVxkK3x4W0EtRlxkXSstW0EtRlxkXSspL2ksYWxpYXM6Im51bWJlciJ9LHRlcm1pbmFsOntwYXR0ZXJuOi8lKD86YlswMV0rKD86XC5bMDFdKykqfGRcZCsoPzpcLlxkKykqfHhbQS1GXGRdKyg/OlwuW0EtRlxkXSspKikvaSxhbGlhczoibnVtYmVyIn0scmVwZXRpdGlvbjp7cGF0dGVybjovKF58W15cdy1dKSg/OlxkKlwqXGQqfFxkKykvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0sZGVmaW5pdGlvbjp7cGF0dGVybjovKF5bIFx0XSopKD86W2Etel1bXHctXSp8PFtePD5cclxuXSo+KSg/PVxzKj0pL20sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCIsaW5zaWRlOntwdW5jdHVhdGlvbjovPHw+L319LCJjb3JlLXJ1bGUiOntwYXR0ZXJuOlJlZ0V4cCgiKD86KF58W148XFx3LV0pIitpKyJ8PCIraSsiPikoPyFbXFx3LV0pIiwiaSIpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6WyJydWxlIiwiY29uc3RhbnQiXSxpbnNpZGU6e3B1bmN0dWF0aW9uOi88fD4vfX0scnVsZTp7cGF0dGVybjovKF58W148XHctXSlbYS16XVtcdy1dKnw8W148PlxyXG5dKj4vaSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246Lzx8Pi99fSxvcGVyYXRvcjovPVwvP3xcLy8scHVuY3R1YXRpb246L1soKVxbXF1dL319KShuKX1yZXR1cm4gZWR9dmFyIHRkLEJUO2Z1bmN0aW9uIEpNKCl7aWYoQlQpcmV0dXJuIHRkO0JUPTEsdGQ9ZSxlLmRpc3BsYXlOYW1lPSJhY3Rpb25zY3JpcHQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmFjdGlvbnNjcmlwdD1uLmxhbmd1YWdlcy5leHRlbmQoImphdmFzY3JpcHQiLHtrZXl3b3JkOi9cYig/OmFzfGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29uc3R8ZGVmYXVsdHxkZWxldGV8ZG98ZHluYW1pY3xlYWNofGVsc2V8ZXh0ZW5kc3xmaW5hbHxmaW5hbGx5fGZvcnxmdW5jdGlvbnxnZXR8aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW5jbHVkZXxpbnN0YW5jZW9mfGludGVyZmFjZXxpbnRlcm5hbHxpc3xuYW1lc3BhY2V8bmF0aXZlfG5ld3xudWxsfG92ZXJyaWRlfHBhY2thZ2V8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJldHVybnxzZXR8c3RhdGljfHN1cGVyfHN3aXRjaHx0aGlzfHRocm93fHRyeXx0eXBlb2Z8dXNlfHZhcnx2b2lkfHdoaWxlfHdpdGgpXGIvLG9wZXJhdG9yOi9cK1wrfC0tfCg/OlsrXC0qXC8lXl18JiY/fFx8XHw/fDw8P3w+Pj8+P3xbIT1dPT8pPT98W34/QF0vfSksbi5sYW5ndWFnZXMuYWN0aW9uc2NyaXB0WyJjbGFzcy1uYW1lIl0uYWxpYXM9ImZ1bmN0aW9uIixkZWxldGUgbi5sYW5ndWFnZXMuYWN0aW9uc2NyaXB0LnBhcmFtZXRlcixkZWxldGUgbi5sYW5ndWFnZXMuYWN0aW9uc2NyaXB0WyJsaXRlcmFsLXByb3BlcnR5Il0sbi5sYW5ndWFnZXMubWFya3VwJiZuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImFjdGlvbnNjcmlwdCIsInN0cmluZyIse3htbDp7cGF0dGVybjovKF58W14uXSk8XC8/XHcrKD86XHMrW15ccz5cLz1dKz0oInwnKSg/OlxcW1xzXFNdfCg/IVwyKVteXFxdKSpcMikqXHMqXC8/Pi8sbG9va2JlaGluZDohMCxpbnNpZGU6bi5sYW5ndWFnZXMubWFya3VwfX0pfXJldHVybiB0ZH12YXIgbmQsalQ7ZnVuY3Rpb24gZTIoKXtpZihqVClyZXR1cm4gbmQ7alQ9MSxuZD1lLGUuZGlzcGxheU5hbWU9ImFkYSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuYWRhPXtjb21tZW50Oi8tLS4qLyxzdHJpbmc6LyIoPzoiInxbXiJcclxmXG5dKSoiLyxudW1iZXI6W3twYXR0ZXJuOi9cYlxkKD86Xz9cZCkqI1tcZEEtRl0oPzpfP1tcZEEtRl0pKig/OlwuW1xkQS1GXSg/Ol8/W1xkQS1GXSkqKT8jKD86RVsrLV0/XGQoPzpfP1xkKSopPy9pfSx7cGF0dGVybjovXGJcZCg/Ol8/XGQpKig/OlwuXGQoPzpfP1xkKSopPyg/OkVbKy1dP1xkKD86Xz9cZCkqKT9cYi9pfV0sImF0dHItbmFtZSI6L1xiJ1x3Ky8sa2V5d29yZDovXGIoPzphYm9ydHxhYnN8YWJzdHJhY3R8YWNjZXB0fGFjY2Vzc3xhbGlhc2VkfGFsbHxhbmR8YXJyYXl8YXR8YmVnaW58Ym9keXxjYXNlfGNvbnN0YW50fGRlY2xhcmV8ZGVsYXl8ZGVsdGF8ZGlnaXRzfGRvfGVsc2V8ZWxzaWZ8ZW5kfGVudHJ5fGV4Y2VwdGlvbnxleGl0fGZvcnxmdW5jdGlvbnxnZW5lcmljfGdvdG98aWZ8aW58aW50ZXJmYWNlfGlzfGxpbWl0ZWR8bG9vcHxtb2R8bmV3fG5vdHxudWxsfG9mfG90aGVyc3xvdXR8b3ZlcnJpZGluZ3xwYWNrYWdlfHByYWdtYXxwcml2YXRlfHByb2NlZHVyZXxwcm90ZWN0ZWR8cmFpc2V8cmFuZ2V8cmVjb3JkfHJlbXxyZW5hbWVzfHJlcXVldWV8cmV0dXJufHJldmVyc2V8c2VsZWN0fHNlcGFyYXRlfHNvbWV8c3VidHlwZXxzeW5jaHJvbml6ZWR8dGFnZ2VkfHRhc2t8dGVybWluYXRlfHRoZW58dHlwZXx1bnRpbHx1c2V8d2hlbnx3aGlsZXx3aXRofHhvcilcYi9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLG9wZXJhdG9yOi88Wz0+XT98Pj0/fD0+P3w6PXxcLz0/fFwqXCo/fFsmKy1dLyxwdW5jdHVhdGlvbjovXC5cLj98Wyw7KCk6XS8sY2hhcjovJy4nLyx2YXJpYWJsZTovXGJbYS16XSg/Olx3KSpcYi9pfX1yZXR1cm4gbmR9dmFyIHJkLHpUO2Z1bmN0aW9uIHQyKCl7aWYoelQpcmV0dXJuIHJkO3pUPTEscmQ9ZSxlLmRpc3BsYXlOYW1lPSJhZ2RhIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7YS5sYW5ndWFnZXMuYWdkYT17Y29tbWVudDovXHstW1xzXFNdKj8oPzotXH18JCl8LS0uKi8sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwoPzpcclxufFtcc1xTXSl8W15cXFxyXG4iXSkqIi8sZ3JlZWR5OiEwfSxwdW5jdHVhdGlvbjovWygpe33ipoPipoQuO0BdLywiY2xhc3MtbmFtZSI6e3BhdHRlcm46LygoPzpkYXRhfHJlY29yZCkgKylcUysvLGxvb2tiZWhpbmQ6ITB9LGZ1bmN0aW9uOntwYXR0ZXJuOi8oXlsgXHRdKikoPyFccylbXjpcclxuXSsoPz06KS9tLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOntwYXR0ZXJuOi8oXlxzKnxccykoPzpbPXw64oiA4oaSzrtcXD9fXXwtPikoPz1ccykvLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6L1xiKD86U2V0fGFic3RyYWN0fGNvbnN0cnVjdG9yfGRhdGF8ZXRhLWVxdWFsaXR5fGZpZWxkfGZvcmFsbHxoaWRpbmd8aW1wb3J0fGlufGluZHVjdGl2ZXxpbmZpeHxpbmZpeGx8aW5maXhyfGluc3RhbmNlfGxldHxtYWNyb3xtb2R1bGV8bXV0dWFsfG5vLWV0YS1lcXVhbGl0eXxvcGVufG92ZXJsYXB8cGF0dGVybnxwb3N0dWxhdGV8cHJpbWl0aXZlfHByaXZhdGV8cHVibGljfHF1b3RlfHF1b3RlQ29udGV4dHxxdW90ZUdvYWx8cXVvdGVUZXJtfHJlY29yZHxyZW5hbWluZ3xyZXdyaXRlfHN5bnRheHx0YWN0aWN8dW5xdW90ZXx1bnF1b3RlRGVjbHx1bnF1b3RlRGVmfHVzaW5nfHZhcmlhYmxlfHdoZXJlfHdpdGgpXGIvfX0pKG4pfXJldHVybiByZH12YXIgYWQscVQ7ZnVuY3Rpb24gbjIoKXtpZihxVClyZXR1cm4gYWQ7cVQ9MSxhZD1lLGUuZGlzcGxheU5hbWU9ImFsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5hbD17Y29tbWVudDovXC9cLy4qfFwvXCpbXHNcU10qP1wqXC8vLHN0cmluZzp7cGF0dGVybjovJyg/OicnfFteJ1xyXG5dKSonKD8hJyl8Iig/OiIifFteIlxyXG5dKSoiKD8hIikvLGdyZWVkeTohMH0sZnVuY3Rpb246e3BhdHRlcm46LyhcYig/OmV2ZW50fHByb2NlZHVyZXx0cmlnZ2VyKVxzK3woPzpefFteLl0pXC5ccyopW2Etel9dXHcqKD89XHMqXCgpL2ksbG9va2JlaGluZDohMH0sa2V5d29yZDpbL1xiKD86YXJyYXl8YXNzZXJ0ZXJyb3J8YmVnaW58YnJlYWt8Y2FzZXxkb3xkb3dudG98ZWxzZXxlbmR8ZXZlbnR8ZXhpdHxmb3J8Zm9yZWFjaHxmdW5jdGlvbnxpZnxpbXBsZW1lbnRzfGlufGluZGF0YXNldHxpbnRlcmZhY2V8aW50ZXJuYWx8bG9jYWx8b2Z8cHJvY2VkdXJlfHByb2dyYW18cHJvdGVjdGVkfHJlcGVhdHxydW5vbmNsaWVudHxzZWN1cml0eWZpbHRlcmluZ3xzdXBwcmVzc2Rpc3Bvc2V8dGVtcG9yYXJ5fHRoZW58dG98dHJpZ2dlcnx1bnRpbHx2YXJ8d2hpbGV8d2l0aHx3aXRoZXZlbnRzKVxiL2ksL1xiKD86YWN0aW9ufGFjdGlvbnN8YWRkYWZ0ZXJ8YWRkYmVmb3JlfGFkZGZpcnN0fGFkZGxhc3R8YXJlYXxhc3NlbWJseXxjaGFydHBhcnR8Y29kZXVuaXR8Y29sdW1ufGNvbnRyb2xhZGRpbnxjdWVncm91cHxjdXN0b21pemVzfGRhdGFpdGVtfGRhdGFzZXR8ZG90bmV0fGVsZW1lbnRzfGVudW18ZW51bWV4dGVuc2lvbnxleHRlbmRzfGZpZWxkfGZpZWxkYXR0cmlidXRlfGZpZWxkZWxlbWVudHxmaWVsZGdyb3VwfGZpZWxkZ3JvdXBzfGZpZWxkc3xmaWx0ZXJ8Zml4ZWR8Z3JpZHxncm91cHxrZXl8a2V5c3xsYWJlbHxsYWJlbHN8bGF5b3V0fG1vZGlmeXxtb3ZlYWZ0ZXJ8bW92ZWJlZm9yZXxtb3ZlZmlyc3R8bW92ZWxhc3R8cGFnZXxwYWdlY3VzdG9taXphdGlvbnxwYWdlZXh0ZW5zaW9ufHBhcnR8cHJvZmlsZXxxdWVyeXxyZXBlYXRlcnxyZXBvcnR8cmVxdWVzdHBhZ2V8c2NoZW1hfHNlcGFyYXRvcnxzeXN0ZW1wYXJ0fHRhYmxlfHRhYmxlZWxlbWVudHx0YWJsZWV4dGVuc2lvbnx0ZXh0YXR0cmlidXRlfHRleHRlbGVtZW50fHR5cGV8dXNlcmNvbnRyb2x8dmFsdWV8eG1scG9ydClcYi9pXSxudW1iZXI6L1xiKD86MHhbXGRhLWZdK3woPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OmVbKy1dP1xkKyk/KSg/OkZ8TEw/fFUoPzpMTD8pPyk/XGIvaSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvaSx2YXJpYWJsZTovXGIoPzpDdXJyKD86RmllbGROb3xQYWdlfFJlcG9ydCl8eD9SZWN8UmVxdWVzdE9wdGlvbnNQYWdlKVxiLywiY2xhc3MtbmFtZSI6L1xiKD86YXV0b21hdGlvbnxiaWdpbnRlZ2VyfGJpZ3RleHR8YmxvYnxib29sZWFufGJ5dGV8Y2hhcnxjbGllbnR0eXBlfGNvZGV8Y29tcGxldGlvbnRyaWdnZXJlcnJvcmxldmVsfGNvbm5lY3Rpb250eXBlfGRhdGFiYXNlfGRhdGFjbGFzc2lmaWNhdGlvbnxkYXRhc2NvcGV8ZGF0ZXxkYXRlZm9ybXVsYXxkYXRldGltZXxkZWNpbWFsfGRlZmF1bHRsYXlvdXR8ZGlhbG9nfGRpY3Rpb25hcnl8ZG90bmV0YXNzZW1ibHl8ZG90bmV0dHlwZWRlY2xhcmF0aW9ufGR1cmF0aW9ufGVycm9yaW5mb3xlcnJvcnR5cGV8ZXhlY3V0aW9uY29udGV4dHxleGVjdXRpb25tb2RlfGZpZWxkY2xhc3N8ZmllbGRyZWZ8ZmllbGR0eXBlfGZpbGV8ZmlsdGVycGFnZWJ1aWxkZXJ8Z3VpZHxodHRwY2xpZW50fGh0dHBjb250ZW50fGh0dHBoZWFkZXJzfGh0dHByZXF1ZXN0bWVzc2FnZXxodHRwcmVzcG9uc2VtZXNzYWdlfGluc3RyZWFtfGludGVnZXJ8am9rZXJ8anNvbmFycmF5fGpzb25vYmplY3R8anNvbnRva2VufGpzb252YWx1ZXxrZXlyZWZ8bGlzdHxtb2R1bGVkZXBlbmRlbmN5aW5mb3xtb2R1bGVpbmZvfG5vbmV8bm90aWZpY2F0aW9ufG5vdGlmaWNhdGlvbnNjb3BlfG9iamVjdHR5cGV8b3B0aW9ufG91dHN0cmVhbXxwYWdlcmVzdWx0fHJlY29yZHxyZWNvcmRpZHxyZWNvcmRyZWZ8cmVwb3J0Zm9ybWF0fHNlY3VyaXR5ZmlsdGVyfHNlc3Npb25zZXR0aW5nc3x0YWJsZWNvbm5lY3Rpb250eXBlfHRhYmxlZmlsdGVyfHRlc3RhY3Rpb258dGVzdGZpZWxkfHRlc3RmaWx0ZXJmaWVsZHx0ZXN0cGFnZXx0ZXN0cGVybWlzc2lvbnN8dGVzdHJlcXVlc3RwYWdlfHRleHR8dGV4dGJ1aWxkZXJ8dGV4dGNvbnN0fHRleHRlbmNvZGluZ3x0aW1lfHRyYW5zYWN0aW9ubW9kZWx8dHJhbnNhY3Rpb250eXBlfHZhcmlhbnR8dmVyYm9zaXR5fHZlcnNpb258dmlld3x2aWV3c3x3ZWJzZXJ2aWNlYWN0aW9uY29udGV4dHx3ZWJzZXJ2aWNlYWN0aW9ucmVzdWx0Y29kZXx4bWxhdHRyaWJ1dGV8eG1sYXR0cmlidXRlY29sbGVjdGlvbnx4bWxjZGF0YXx4bWxjb21tZW50fHhtbGRlY2xhcmF0aW9ufHhtbGRvY3VtZW50fHhtbGRvY3VtZW50dHlwZXx4bWxlbGVtZW50fHhtbG5hbWVzcGFjZW1hbmFnZXJ8eG1sbmFtZXRhYmxlfHhtbG5vZGV8eG1sbm9kZWxpc3R8eG1scHJvY2Vzc2luZ2luc3RydWN0aW9ufHhtbHJlYWRvcHRpb25zfHhtbHRleHR8eG1sd3JpdGVvcHRpb25zKVxiL2ksb3BlcmF0b3I6L1wuXC58Ols9Ol18Wy0rKi9dPT98PD58Wzw+XT0/fD18XGIoPzphbmR8ZGl2fG1vZHxub3R8b3J8eG9yKVxiL2kscHVuY3R1YXRpb246L1soKVxbXF17fTouOyxdL319cmV0dXJuIGFkfXZhciBpZCxQVDtmdW5jdGlvbiByMigpe2lmKFBUKXJldHVybiBpZDtQVD0xLGlkPWUsZS5kaXNwbGF5TmFtZT0iYW50bHI0IixlLmFsaWFzZXM9WyJnNCJdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuYW50bHI0PXtjb21tZW50Oi9cL1wvLip8XC9cKltcc1xTXSo/KD86XCpcL3wkKS8sc3RyaW5nOntwYXR0ZXJuOi8nKD86XFwufFteXFwnXHJcbl0pKicvLGdyZWVkeTohMH0sImNoYXJhY3Rlci1jbGFzcyI6e3BhdHRlcm46L1xbKD86XFwufFteXFxcXVxyXG5dKSpcXS8sZ3JlZWR5OiEwLGFsaWFzOiJyZWdleCIsaW5zaWRlOntyYW5nZTp7cGF0dGVybjovKFteW118KD86XnxbXlxcXSkoPzpcXFxcKSpcXFxbKS0oPyFcXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sZXNjYXBlOi9cXCg/OnUoPzpbYS1mQS1GXGRdezR9fFx7W2EtZkEtRlxkXStcfSl8W3BQXVx7Wz1cdy1dK1x9fFteXHJcbnVwUF0pLyxwdW5jdHVhdGlvbjovW1xbXF1dL319LGFjdGlvbjp7cGF0dGVybjovXHsoPzpbXnt9XXxceyg/Oltee31dfFx7KD86W157fV18XHtbXnt9XSpcfSkqXH0pKlx9KSpcfS8sZ3JlZWR5OiEwLGluc2lkZTp7Y29udGVudDp7cGF0dGVybjovKFx7KVtcc1xTXSsoPz1cfSkvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9be31dL319LGNvbW1hbmQ6e3BhdHRlcm46LygtPlxzKig/IVxzKSkoPzpccyooPzosXHMqKT9cYlthLXpdXHcqKD86XHMqXChbXigpXHJcbl0qXCkpPykrKD89XHMqOykvaSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ZnVuY3Rpb246L1xiXHcrKD89XHMqKD86WywoXXwkKSkvLHB1bmN0dWF0aW9uOi9bLCgpXS99fSxhbm5vdGF0aW9uOntwYXR0ZXJuOi9AXHcrKD86OjpcdyspKi8sYWxpYXM6ImtleXdvcmQifSxsYWJlbDp7cGF0dGVybjovI1sgXHRdKlx3Ky8sYWxpYXM6InB1bmN0dWF0aW9uIn0sa2V5d29yZDovXGIoPzpjYXRjaHxjaGFubmVsc3xmaW5hbGx5fGZyYWdtZW50fGdyYW1tYXJ8aW1wb3J0fGxleGVyfGxvY2Fsc3xtb2RlfG9wdGlvbnN8cGFyc2VyfHJldHVybnN8dGhyb3dzfHRva2VucylcYi8sZGVmaW5pdGlvbjpbe3BhdHRlcm46L1xiW2Etel1cdyooPz1ccyo6KS8sYWxpYXM6WyJydWxlIiwiY2xhc3MtbmFtZSJdfSx7cGF0dGVybjovXGJbQS1aXVx3Kig/PVxzKjopLyxhbGlhczpbInRva2VuIiwiY29uc3RhbnQiXX1dLGNvbnN0YW50Oi9cYltBLVpdW0EtWl9dKlxiLyxvcGVyYXRvcjovXC5cLnwtPnxbfH5dfFsqKz9dXD8/LyxwdW5jdHVhdGlvbjovWzs6KCk9XS99LG4ubGFuZ3VhZ2VzLmc0PW4ubGFuZ3VhZ2VzLmFudGxyNH1yZXR1cm4gaWR9dmFyIG9kLEdUO2Z1bmN0aW9uIGEyKCl7aWYoR1QpcmV0dXJuIG9kO0dUPTEsb2Q9ZSxlLmRpc3BsYXlOYW1lPSJhcGFjaGVjb25mIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5hcGFjaGVjb25mPXtjb21tZW50Oi8jLiovLCJkaXJlY3RpdmUtaW5saW5lIjp7cGF0dGVybjovKF5bXHQgXSopXGIoPzpBY2NlcHRGaWx0ZXJ8QWNjZXB0UGF0aEluZm98QWNjZXNzRmlsZU5hbWV8QWN0aW9ufEFkZCg/OkFsdHxBbHRCeUVuY29kaW5nfEFsdEJ5VHlwZXxDaGFyc2V0fERlZmF1bHRDaGFyc2V0fERlc2NyaXB0aW9ufEVuY29kaW5nfEhhbmRsZXJ8SWNvbnxJY29uQnlFbmNvZGluZ3xJY29uQnlUeXBlfElucHV0RmlsdGVyfExhbmd1YWdlfE1vZHVsZUluZm98T3V0cHV0RmlsdGVyfE91dHB1dEZpbHRlckJ5VHlwZXxUeXBlKXxBbGlhc3xBbGlhc01hdGNofEFsbG93KD86Q09OTkVDVHxFbmNvZGVkU2xhc2hlc3xNZXRob2RzfE92ZXJyaWRlfE92ZXJyaWRlTGlzdCk/fEFub255bW91cyg/Ol9Mb2dFbWFpbHxfTXVzdEdpdmVFbWFpbHxfTm9Vc2VySUR8X1ZlcmlmeUVtYWlsKT98QXN5bmNSZXF1ZXN0V29ya2VyRmFjdG9yfEF1dGgoPzpCYXNpY0F1dGhvcml0YXRpdmV8QmFzaWNGYWtlfEJhc2ljUHJvdmlkZXJ8QmFzaWNVc2VEaWdlc3RBbGdvcml0aG18REJEVXNlclBXUXVlcnl8REJEVXNlclJlYWxtUXVlcnl8REJNR3JvdXBGaWxlfERCTVR5cGV8REJNVXNlckZpbGV8RGlnZXN0KD86QWxnb3JpdGhtfERvbWFpbnxOb25jZUxpZmV0aW1lfFByb3ZpZGVyfFFvcHxTaG1lbVNpemUpfEZvcm0oPzpBdXRob3JpdGF0aXZlfEJvZHl8RGlzYWJsZU5vU3RvcmV8RmFrZUJhc2ljQXV0aHxMb2NhdGlvbnxMb2dpblJlcXVpcmVkTG9jYXRpb258TG9naW5TdWNjZXNzTG9jYXRpb258TG9nb3V0TG9jYXRpb258TWV0aG9kfE1pbWV0eXBlfFBhc3N3b3JkfFByb3ZpZGVyfFNpdGVQYXNzcGhyYXNlfFNpemV8VXNlcm5hbWUpfEdyb3VwRmlsZXxMREFQKD86QXV0aG9yaXplUHJlZml4fEJpbmRBdXRob3JpdGF0aXZlfEJpbmRETnxCaW5kUGFzc3dvcmR8Q2hhcnNldENvbmZpZ3xDb21wYXJlQXNVc2VyfENvbXBhcmVETk9uU2VydmVyfERlcmVmZXJlbmNlQWxpYXNlc3xHcm91cEF0dHJpYnV0ZXxHcm91cEF0dHJpYnV0ZUlzRE58SW5pdGlhbEJpbmRBc1VzZXJ8SW5pdGlhbEJpbmRQYXR0ZXJufE1heFN1Ykdyb3VwRGVwdGh8UmVtb3RlVXNlckF0dHJpYnV0ZXxSZW1vdGVVc2VySXNETnxTZWFyY2hBc1VzZXJ8U3ViR3JvdXBBdHRyaWJ1dGV8U3ViR3JvdXBDbGFzc3xVcmwpfE1lcmdpbmd8TmFtZXxuQ2FjaGUoPzpDb250ZXh0fEVuYWJsZXxQcm92aWRlRm9yfFNPQ2FjaGV8VGltZW91dCl8bnpGY2dpQ2hlY2tBdXRoblByb3ZpZGVyfG56RmNnaURlZmluZVByb3ZpZGVyfFR5cGV8VXNlckZpbGV8ekRCRExvZ2luVG9SZWZlcmVyfHpEQkRRdWVyeXx6REJEUmVkaXJlY3RRdWVyeXx6REJNVHlwZXx6U2VuZEZvcmJpZGRlbk9uRmFpbHVyZSl8QmFsYW5jZXJHcm93dGh8QmFsYW5jZXJJbmhlcml0fEJhbGFuY2VyTWVtYmVyfEJhbGFuY2VyUGVyc2lzdHxCcm93c2VyTWF0Y2h8QnJvd3Nlck1hdGNoTm9DYXNlfEJ1ZmZlcmVkTG9nc3xCdWZmZXJTaXplfENhY2hlKD86RGVmYXVsdEV4cGlyZXxEZXRhaWxIZWFkZXJ8RGlyTGVuZ3RofERpckxldmVsc3xEaXNhYmxlfEVuYWJsZXxGaWxlfEhlYWRlcnxJZ25vcmVDYWNoZUNvbnRyb2x8SWdub3JlSGVhZGVyc3xJZ25vcmVOb0xhc3RNb2R8SWdub3JlUXVlcnlTdHJpbmd8SWdub3JlVVJMU2Vzc2lvbklkZW50aWZpZXJzfEtleUJhc2VVUkx8TGFzdE1vZGlmaWVkRmFjdG9yfExvY2t8TG9ja01heEFnZXxMb2NrUGF0aHxNYXhFeHBpcmV8TWF4RmlsZVNpemV8TWluRXhwaXJlfE1pbkZpbGVTaXplfE5lZ290aWF0ZWREb2NzfFF1aWNrSGFuZGxlcnxSZWFkU2l6ZXxSZWFkVGltZXxSb290fFNvY2FjaGUoPzpNYXhTaXplfE1heFRpbWV8TWluVGltZXxSZWFkU2l6ZXxSZWFkVGltZSk/fFN0YWxlT25FcnJvcnxTdG9yZUV4cGlyZWR8U3RvcmVOb1N0b3JlfFN0b3JlUHJpdmF0ZSl8Q0dJRFNjcmlwdFRpbWVvdXR8Q0dJTWFwRXh0ZW5zaW9ufENoYXJzZXREZWZhdWx0fENoYXJzZXRPcHRpb25zfENoYXJzZXRTb3VyY2VFbmN8Q2hlY2tDYXNlT25seXxDaGVja1NwZWxsaW5nfENocm9vdERpcnxDb250ZW50RGlnZXN0fENvb2tpZURvbWFpbnxDb29raWVFeHBpcmVzfENvb2tpZU5hbWV8Q29va2llU3R5bGV8Q29va2llVHJhY2tpbmd8Q29yZUR1bXBEaXJlY3Rvcnl8Q3VzdG9tTG9nfERhdnxEYXZEZXB0aEluZmluaXR5fERhdkdlbmVyaWNMb2NrREJ8RGF2TG9ja0RCfERhdk1pblRpbWVvdXR8REJERXhwdGltZXxEQkRJbml0U1FMfERCREtlZXB8REJETWF4fERCRE1pbnxEQkRQYXJhbXN8REJEUGVyc2lzdHxEQkRQcmVwYXJlU1FMfERCRHJpdmVyfERlZmF1bHRJY29ufERlZmF1bHRMYW5ndWFnZXxEZWZhdWx0UnVudGltZURpcnxEZWZhdWx0VHlwZXxEZWZpbmV8RGVmbGF0ZSg/OkJ1ZmZlclNpemV8Q29tcHJlc3Npb25MZXZlbHxGaWx0ZXJOb3RlfEluZmxhdGVMaW1pdFJlcXVlc3RCb2R5fEluZmxhdGVSYXRpbyg/OkJ1cnN0fExpbWl0KXxNZW1MZXZlbHxXaW5kb3dTaXplKXxEZW55fERpcmVjdG9yeUNoZWNrSGFuZGxlcnxEaXJlY3RvcnlJbmRleHxEaXJlY3RvcnlJbmRleFJlZGlyZWN0fERpcmVjdG9yeVNsYXNofERvY3VtZW50Um9vdHxEVHJhY2VQcml2aWxlZ2VzfER1bXBJT0lucHV0fER1bXBJT091dHB1dHxFbmFibGVFeGNlcHRpb25Ib29rfEVuYWJsZU1NQVB8RW5hYmxlU2VuZGZpbGV8RXJyb3J8RXJyb3JEb2N1bWVudHxFcnJvckxvZ3xFcnJvckxvZ0Zvcm1hdHxFeGFtcGxlfEV4cGlyZXNBY3RpdmV8RXhwaXJlc0J5VHlwZXxFeHBpcmVzRGVmYXVsdHxFeHRlbmRlZFN0YXR1c3xFeHRGaWx0ZXJEZWZpbmV8RXh0RmlsdGVyT3B0aW9uc3xGYWxsYmFja1Jlc291cmNlfEZpbGVFVGFnfEZpbHRlckNoYWlufEZpbHRlckRlY2xhcmV8RmlsdGVyUHJvdG9jb2x8RmlsdGVyUHJvdmlkZXJ8RmlsdGVyVHJhY2V8Rm9yY2VMYW5ndWFnZVByaW9yaXR5fEZvcmNlVHlwZXxGb3JlbnNpY0xvZ3xHcHJvZkRpcnxHcmFjZWZ1bFNodXRkb3duVGltZW91dHxHcm91cHxIZWFkZXJ8SGVhZGVyTmFtZXxIZWFydGJlYXQoPzpBZGRyZXNzfExpc3RlbnxNYXhTZXJ2ZXJzfFN0b3JhZ2UpfEhvc3RuYW1lTG9va3Vwc3xJZGVudGl0eUNoZWNrfElkZW50aXR5Q2hlY2tUaW1lb3V0fEltYXBCYXNlfEltYXBEZWZhdWx0fEltYXBNZW51fEluY2x1ZGV8SW5jbHVkZU9wdGlvbmFsfEluZGV4KD86SGVhZEluc2VydHxJZ25vcmV8SWdub3JlUmVzZXR8T3B0aW9uc3xPcmRlckRlZmF1bHR8U3R5bGVTaGVldCl8SW5wdXRTZWR8SVNBUEkoPzpBcHBlbmRMb2dUb0Vycm9yc3xBcHBlbmRMb2dUb1F1ZXJ5fENhY2hlRmlsZXxGYWtlQXN5bmN8TG9nTm90U3VwcG9ydGVkfFJlYWRBaGVhZEJ1ZmZlcil8S2VlcEFsaXZlfEtlZXBBbGl2ZVRpbWVvdXR8S2VwdEJvZHlTaXplfExhbmd1YWdlUHJpb3JpdHl8TERBUCg/OkNhY2hlRW50cmllc3xDYWNoZVRUTHxDb25uZWN0aW9uUG9vbFRUTHxDb25uZWN0aW9uVGltZW91dHxMaWJyYXJ5RGVidWd8T3BDYWNoZUVudHJpZXN8T3BDYWNoZVRUTHxSZWZlcnJhbEhvcExpbWl0fFJlZmVycmFsc3xSZXRyaWVzfFJldHJ5RGVsYXl8U2hhcmVkQ2FjaGVGaWxlfFNoYXJlZENhY2hlU2l6ZXxUaW1lb3V0fFRydXN0ZWRDbGllbnRDZXJ0fFRydXN0ZWRHbG9iYWxDZXJ0fFRydXN0ZWRNb2RlfFZlcmlmeVNlcnZlckNlcnQpfExpbWl0KD86SW50ZXJuYWxSZWN1cnNpb258UmVxdWVzdCg/OkJvZHl8RmllbGRzfEZpZWxkU2l6ZXxMaW5lKXxYTUxSZXF1ZXN0Qm9keSl8TGlzdGVufExpc3RlbkJhY2tMb2d8TG9hZEZpbGV8TG9hZE1vZHVsZXxMb2dGb3JtYXR8TG9nTGV2ZWx8TG9nTWVzc2FnZXxMdWFBdXRoelByb3ZpZGVyfEx1YUNvZGVDYWNoZXxMdWEoPzpIb29rKD86QWNjZXNzQ2hlY2tlcnxBdXRoQ2hlY2tlcnxDaGVja1VzZXJJRHxGaXh1cHN8SW5zZXJ0RmlsdGVyfExvZ3xNYXBUb1N0b3JhZ2V8VHJhbnNsYXRlTmFtZXxUeXBlQ2hlY2tlcil8SW5oZXJpdHxJbnB1dEZpbHRlcnxNYXBIYW5kbGVyfE91dHB1dEZpbHRlcnxQYWNrYWdlQ1BhdGh8UGFja2FnZVBhdGh8UXVpY2tIYW5kbGVyfFJvb3R8U2NvcGUpfE1heCg/OkNvbm5lY3Rpb25zUGVyQ2hpbGR8S2VlcEFsaXZlUmVxdWVzdHN8TWVtRnJlZXxSYW5nZU92ZXJsYXBzfFJhbmdlUmV2ZXJzYWxzfFJhbmdlc3xSZXF1ZXN0V29ya2Vyc3xTcGFyZVNlcnZlcnN8U3BhcmVUaHJlYWRzfFRocmVhZHMpfE1lcmdlVHJhaWxlcnN8TWV0YURpcnxNZXRhRmlsZXN8TWV0YVN1ZmZpeHxNaW1lTWFnaWNGaWxlfE1pblNwYXJlU2VydmVyc3xNaW5TcGFyZVRocmVhZHN8TU1hcEZpbGV8TW9kZW1TdGFuZGFyZHxNb2RNaW1lVXNlUGF0aEluZm98TXVsdGl2aWV3c01hdGNofE11dGV4fE5hbWVWaXJ0dWFsSG9zdHxOb1Byb3h5fE5XU1NMVHJ1c3RlZENlcnRzfE5XU1NMVXBncmFkZWFibGV8T3B0aW9uc3xPcmRlcnxPdXRwdXRTZWR8UGFzc0VudnxQaWRGaWxlfFByaXZpbGVnZXNNb2RlfFByb3RvY29sfFByb3RvY29sRWNob3xQcm94eSg/OkFkZEhlYWRlcnN8QmFkSGVhZGVyfEJsb2NrfERvbWFpbnxFcnJvck92ZXJyaWRlfEV4cHJlc3NEQk1GaWxlfEV4cHJlc3NEQk1UeXBlfEV4cHJlc3NFbmFibGV8RnRwRGlyQ2hhcnNldHxGdHBFc2NhcGVXaWxkY2FyZHN8RnRwTGlzdE9uV2lsZGNhcmR8SFRNTCg/OkJ1ZlNpemV8Q2hhcnNldE91dHxEb2NUeXBlfEVuYWJsZXxFdmVudHN8RXh0ZW5kZWR8Rml4dXBzfEludGVycHxMaW5rc3xNZXRhfFN0cmlwQ29tbWVudHN8VVJMTWFwKXxJT0J1ZmZlclNpemV8TWF4Rm9yd2FyZHN8UGFzcyg/OkluaGVyaXR8SW50ZXJwb2xhdGVFbnZ8TWF0Y2h8UmV2ZXJzZXxSZXZlcnNlQ29va2llRG9tYWlufFJldmVyc2VDb29raWVQYXRoKT98UHJlc2VydmVIb3N0fFJlY2VpdmVCdWZmZXJTaXplfFJlbW90ZXxSZW1vdGVNYXRjaHxSZXF1ZXN0c3xTQ0dJSW50ZXJuYWxSZWRpcmVjdHxTQ0dJU2VuZGZpbGV8U2V0fFNvdXJjZUFkZHJlc3N8U3RhdHVzfFRpbWVvdXR8VmlhKXxSZWFkbWVOYW1lfFJlY2VpdmVCdWZmZXJTaXplfFJlZGlyZWN0fFJlZGlyZWN0TWF0Y2h8UmVkaXJlY3RQZXJtYW5lbnR8UmVkaXJlY3RUZW1wfFJlZmxlY3RvckhlYWRlcnxSZW1vdGVJUCg/OkhlYWRlcnxJbnRlcm5hbFByb3h5fEludGVybmFsUHJveHlMaXN0fFByb3hpZXNIZWFkZXJ8VHJ1c3RlZFByb3h5fFRydXN0ZWRQcm94eUxpc3QpfFJlbW92ZUNoYXJzZXR8UmVtb3ZlRW5jb2Rpbmd8UmVtb3ZlSGFuZGxlcnxSZW1vdmVJbnB1dEZpbHRlcnxSZW1vdmVMYW5ndWFnZXxSZW1vdmVPdXRwdXRGaWx0ZXJ8UmVtb3ZlVHlwZXxSZXF1ZXN0SGVhZGVyfFJlcXVlc3RSZWFkVGltZW91dHxSZXF1aXJlfFJld3JpdGUoPzpCYXNlfENvbmR8RW5naW5lfE1hcHxPcHRpb25zfFJ1bGUpfFJMaW1pdENQVXxSTGltaXRNRU18UkxpbWl0TlBST0N8U2F0aXNmeXxTY29yZUJvYXJkRmlsZXxTY3JpcHQoPzpBbGlhc3xBbGlhc01hdGNofEludGVycHJldGVyU291cmNlfExvZ3xMb2dCdWZmZXJ8TG9nTGVuZ3RofFNvY2spP3xTZWN1cmVMaXN0ZW58U2VlUmVxdWVzdFRhaWx8U2VuZEJ1ZmZlclNpemV8U2VydmVyKD86QWRtaW58QWxpYXN8TGltaXR8TmFtZXxQYXRofFJvb3R8U2lnbmF0dXJlfFRva2Vucyl8U2Vzc2lvbig/OkNvb2tpZSg/Ok5hbWV8TmFtZTJ8UmVtb3ZlKXxDcnlwdG8oPzpDaXBoZXJ8RHJpdmVyfFBhc3NwaHJhc2V8UGFzc3BocmFzZUZpbGUpfERCRCg/OkNvb2tpZU5hbWV8Q29va2llTmFtZTJ8Q29va2llUmVtb3ZlfERlbGV0ZUxhYmVsfEluc2VydExhYmVsfFBlclVzZXJ8U2VsZWN0TGFiZWx8VXBkYXRlTGFiZWwpfEVudnxFeGNsdWRlfEhlYWRlcnxJbmNsdWRlfE1heEFnZSk/fFNldEVudnxTZXRFbnZJZnxTZXRFbnZJZkV4cHJ8U2V0RW52SWZOb0Nhc2V8U2V0SGFuZGxlcnxTZXRJbnB1dEZpbHRlcnxTZXRPdXRwdXRGaWx0ZXJ8U1NJRW5kVGFnfFNTSUVycm9yTXNnfFNTSUVUYWd8U1NJTGFzdE1vZGlmaWVkfFNTSUxlZ2FjeUV4cHJQYXJzZXJ8U1NJU3RhcnRUYWd8U1NJVGltZUZvcm1hdHxTU0lVbmRlZmluZWRFY2hvfFNTTCg/OkNBQ2VydGlmaWNhdGVGaWxlfENBQ2VydGlmaWNhdGVQYXRofENBRE5SZXF1ZXN0RmlsZXxDQUROUmVxdWVzdFBhdGh8Q0FSZXZvY2F0aW9uQ2hlY2t8Q0FSZXZvY2F0aW9uRmlsZXxDQVJldm9jYXRpb25QYXRofENlcnRpZmljYXRlQ2hhaW5GaWxlfENlcnRpZmljYXRlRmlsZXxDZXJ0aWZpY2F0ZUtleUZpbGV8Q2lwaGVyU3VpdGV8Q29tcHJlc3Npb258Q3J5cHRvRGV2aWNlfEVuZ2luZXxGSVBTfEhvbm9yQ2lwaGVyT3JkZXJ8SW5zZWN1cmVSZW5lZ290aWF0aW9ufE9DU1AoPzpEZWZhdWx0UmVzcG9uZGVyfEVuYWJsZXxPdmVycmlkZVJlc3BvbmRlcnxSZXNwb25kZXJUaW1lb3V0fFJlc3BvbnNlTWF4QWdlfFJlc3BvbnNlVGltZVNrZXd8VXNlUmVxdWVzdE5vbmNlKXxPcGVuU1NMQ29uZkNtZHxPcHRpb25zfFBhc3NQaHJhc2VEaWFsb2d8UHJvdG9jb2x8UHJveHkoPzpDQUNlcnRpZmljYXRlRmlsZXxDQUNlcnRpZmljYXRlUGF0aHxDQVJldm9jYXRpb24oPzpDaGVja3xGaWxlfFBhdGgpfENoZWNrUGVlcig/OkNOfEV4cGlyZXxOYW1lKXxDaXBoZXJTdWl0ZXxFbmdpbmV8TWFjaGluZUNlcnRpZmljYXRlKD86Q2hhaW5GaWxlfEZpbGV8UGF0aCl8UHJvdG9jb2x8VmVyaWZ5fFZlcmlmeURlcHRoKXxSYW5kb21TZWVkfFJlbmVnQnVmZmVyU2l6ZXxSZXF1aXJlfFJlcXVpcmVTU0x8U2Vzc2lvbig/OkNhY2hlfENhY2hlVGltZW91dHxUaWNrZXRLZXlGaWxlfFRpY2tldHMpfFNSUFVua25vd25Vc2VyU2VlZHxTUlBWZXJpZmllckZpbGV8U3RhcGxpbmcoPzpDYWNoZXxFcnJvckNhY2hlVGltZW91dHxGYWtlVHJ5TGF0ZXJ8Rm9yY2VVUkx8UmVzcG9uZGVyVGltZW91dHxSZXNwb25zZU1heEFnZXxSZXNwb25zZVRpbWVTa2V3fFJldHVyblJlc3BvbmRlckVycm9yc3xTdGFuZGFyZENhY2hlVGltZW91dCl8U3RyaWN0U05JVkhvc3RDaGVja3xVc2VyTmFtZXxVc2VTdGFwbGluZ3xWZXJpZnlDbGllbnR8VmVyaWZ5RGVwdGgpfFN0YXJ0U2VydmVyc3xTdGFydFRocmVhZHN8U3Vic3RpdHV0ZXxTdWV4ZWN8U3VleGVjVXNlckdyb3VwfFRocmVhZExpbWl0fFRocmVhZHNQZXJDaGlsZHxUaHJlYWRTdGFja1NpemV8VGltZU91dHxUcmFjZUVuYWJsZXxUcmFuc2ZlckxvZ3xUeXBlc0NvbmZpZ3xVbkRlZmluZXxVbmRlZk1hY3JvfFVuc2V0RW52fFVzZXxVc2VDYW5vbmljYWxOYW1lfFVzZUNhbm9uaWNhbFBoeXNpY2FsUG9ydHxVc2VyfFVzZXJEaXJ8Vkhvc3RDR0lNb2RlfFZIb3N0Q0dJUHJpdnN8Vkhvc3RHcm91cHxWSG9zdFByaXZzfFZIb3N0U2VjdXJlfFZIb3N0VXNlcnxWaXJ0dWFsKD86RG9jdW1lbnRSb290fFNjcmlwdEFsaWFzKSg/OklQKT98V2F0Y2hkb2dJbnRlcnZhbHxYQml0SGFja3x4bWwyRW5jQWxpYXN8eG1sMkVuY0RlZmF1bHR8eG1sMlN0YXJ0UGFyc2UpXGIvaW0sbG9va2JlaGluZDohMCxhbGlhczoicHJvcGVydHkifSwiZGlyZWN0aXZlLWJsb2NrIjp7cGF0dGVybjovPFwvP1xiKD86QXV0aFtuel1Qcm92aWRlckFsaWFzfERpcmVjdG9yeXxEaXJlY3RvcnlNYXRjaHxFbHNlfEVsc2VJZnxGaWxlc3xGaWxlc01hdGNofElmfElmRGVmaW5lfElmTW9kdWxlfElmVmVyc2lvbnxMaW1pdHxMaW1pdEV4Y2VwdHxMb2NhdGlvbnxMb2NhdGlvbk1hdGNofE1hY3JvfFByb3h5fFJlcXVpcmUoPzpBbGx8QW55fE5vbmUpfFZpcnR1YWxIb3N0KVxiLio+L2ksaW5zaWRlOnsiZGlyZWN0aXZlLWJsb2NrIjp7cGF0dGVybjovXjxcLz9cdysvLGluc2lkZTp7cHVuY3R1YXRpb246L148XC8/L30sYWxpYXM6InRhZyJ9LCJkaXJlY3RpdmUtYmxvY2stcGFyYW1ldGVyIjp7cGF0dGVybjovLipbXj5dLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi86LyxzdHJpbmc6e3BhdHRlcm46LygifCcpLipcMS8saW5zaWRlOnt2YXJpYWJsZTovWyQlXVx7Pyg/Olx3XC4/Wy0rOl0/KStcfT8vfX19LGFsaWFzOiJhdHRyLXZhbHVlIn0scHVuY3R1YXRpb246Lz4vfSxhbGlhczoidGFnIn0sImRpcmVjdGl2ZS1mbGFncyI6e3BhdHRlcm46L1xbKD86W1x3PV0sPykrXF0vLGFsaWFzOiJrZXl3b3JkIn0sc3RyaW5nOntwYXR0ZXJuOi8oInwnKS4qXDEvLGluc2lkZTp7dmFyaWFibGU6L1skJV1cez8oPzpcd1wuP1stKzpdPykrXH0/L319LHZhcmlhYmxlOi9bJCVdXHs/KD86XHdcLj9bLSs6XT8pK1x9Py8scmVnZXg6L1xePy4qXCR8XF4uKlwkPy99fXJldHVybiBvZH12YXIgbGQsSFQ7ZnVuY3Rpb24gdGIoKXtpZihIVClyZXR1cm4gbGQ7SFQ9MSxsZD1lLGUuZGlzcGxheU5hbWU9InNxbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuc3FsPXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzpcL1wqW1xzXFNdKj9cKlwvfCg/Oi0tfFwvXC98IykuKikvLGxvb2tiZWhpbmQ6ITB9LHZhcmlhYmxlOlt7cGF0dGVybjovQChbIidgXSkoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkrXDEvLGdyZWVkeTohMH0sL0BbXHcuJF0rL10sc3RyaW5nOntwYXR0ZXJuOi8oXnxbXkBcXF0pKCJ8JykoPzpcXFtcc1xTXXwoPyFcMilbXlxcXXxcMlwyKSpcMi8sZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LGlkZW50aWZpZXI6e3BhdHRlcm46LyhefFteQFxcXSlgKD86XFxbXHNcU118W15gXFxdfGBgKSpgLyxncmVlZHk6ITAsbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eYHxgJC99fSxmdW5jdGlvbjovXGIoPzpBVkd8Q09VTlR8RklSU1R8Rk9STUFUfExBU1R8TENBU0V8TEVOfE1BWHxNSUR8TUlOfE1PRHxOT1d8Uk9VTkR8U1VNfFVDQVNFKSg/PVxzKlwoKS9pLGtleXdvcmQ6L1xiKD86QUNUSU9OfEFERHxBRlRFUnxBTEdPUklUSE18QUxMfEFMVEVSfEFOQUxZWkV8QU5ZfEFQUExZfEFTfEFTQ3xBVVRIT1JJWkFUSU9OfEFVVE9fSU5DUkVNRU5UfEJBQ0tVUHxCREJ8QkVHSU58QkVSS0VMRVlEQnxCSUdJTlR8QklOQVJZfEJJVHxCTE9CfEJPT0x8Qk9PTEVBTnxCUkVBS3xCUk9XU0V8QlRSRUV8QlVMS3xCWXxDQUxMfENBU0NBREVEP3xDQVNFfENIQUlOfENIQVIoPzpBQ1RFUnxTRVQpP3xDSEVDSyg/OlBPSU5UKT98Q0xPU0V8Q0xVU1RFUkVEfENPQUxFU0NFfENPTExBVEV8Q09MVU1OUz98Q09NTUVOVHxDT01NSVQoPzpURUQpP3xDT01QVVRFfENPTk5FQ1R8Q09OU0lTVEVOVHxDT05TVFJBSU5UfENPTlRBSU5TKD86VEFCTEUpP3xDT05USU5VRXxDT05WRVJUfENSRUFURXxDUk9TU3xDVVJSRU5UKD86X0RBVEV8X1RJTUV8X1RJTUVTVEFNUHxfVVNFUik/fENVUlNPUnxDWUNMRXxEQVRBKD86QkFTRVM/KT98REFURSg/OlRJTUUpP3xEQVl8REJDQ3xERUFMTE9DQVRFfERFQ3xERUNJTUFMfERFQ0xBUkV8REVGQVVMVHxERUZJTkVSfERFTEFZRUR8REVMRVRFfERFTElNSVRFUlM/fERFTll8REVTQ3xERVNDUklCRXxERVRFUk1JTklTVElDfERJU0FCTEV8RElTQ0FSRHxESVNLfERJU1RJTkNUfERJU1RJTkNUUk9XfERJU1RSSUJVVEVEfERPfERPVUJMRXxEUk9QfERVTU1ZfERVTVAoPzpGSUxFKT98RFVQTElDQVRFfEVMU0UoPzpJRik/fEVOQUJMRXxFTkNMT1NFRHxFTkR8RU5HSU5FfEVOVU18RVJSTFZMfEVSUk9SU3xFU0NBUEVEP3xFWENFUFR8RVhFQyg/OlVURSk/fEVYSVNUU3xFWElUfEVYUExBSU58RVhURU5ERUR8RkVUQ0h8RklFTERTfEZJTEV8RklMTEZBQ1RPUnxGSVJTVHxGSVhFRHxGTE9BVHxGT0xMT1dJTkd8Rk9SKD86IEVBQ0ggUk9XKT98Rk9SQ0V8Rk9SRUlHTnxGUkVFVEVYVCg/OlRBQkxFKT98RlJPTXxGVUxMfEZVTkNUSU9OfEdFT01FVFJZKD86Q09MTEVDVElPTik/fEdMT0JBTHxHT1RPfEdSQU5UfEdST1VQfEhBTkRMRVJ8SEFTSHxIQVZJTkd8SE9MRExPQ0t8SE9VUnxJREVOVElUWSg/OkNPTHxfSU5TRVJUKT98SUZ8SUdOT1JFfElNUE9SVHxJTkRFWHxJTkZJTEV8SU5ORVJ8SU5OT0RCfElOT1VUfElOU0VSVHxJTlR8SU5URUdFUnxJTlRFUlNFQ1R8SU5URVJWQUx8SU5UT3xJTlZPS0VSfElTT0xBVElPTnxJVEVSQVRFfEpPSU58S0VZUz98S0lMTHxMQU5HVUFHRXxMQVNUfExFQVZFfExFRlR8TEVWRUx8TElNSVR8TElORU5PfExJTkVTfExJTkVTVFJJTkd8TE9BRHxMT0NBTHxMT0NLfExPTkcoPzpCTE9CfFRFWFQpfExPT1B8TUFUQ0goPzpFRCk/fE1FRElVTSg/OkJMT0J8SU5UfFRFWFQpfE1FUkdFfE1JRERMRUlOVHxNSU5VVEV8TU9ERXxNT0RJRklFU3xNT0RJRll8TU9OVEh8TVVMVEkoPzpMSU5FU1RSSU5HfFBPSU5UfFBPTFlHT04pfE5BVElPTkFMfE5BVFVSQUx8TkNIQVJ8TkVYVHxOT3xOT05DTFVTVEVSRUR8TlVMTElGfE5VTUVSSUN8T0ZGP3xPRkZTRVRTP3xPTnxPUEVOKD86REFUQVNPVVJDRXxRVUVSWXxST1dTRVQpP3xPUFRJTUlaRXxPUFRJT04oPzpBTExZKT98T1JERVJ8T1VUKD86RVJ8RklMRSk/fE9WRVJ8UEFSVElBTHxQQVJUSVRJT058UEVSQ0VOVHxQSVZPVHxQTEFOfFBPSU5UfFBPTFlHT058UFJFQ0VESU5HfFBSRUNJU0lPTnxQUkVQQVJFfFBSRVZ8UFJJTUFSWXxQUklOVHxQUklWSUxFR0VTfFBST0MoPzpFRFVSRSk/fFBVQkxJQ3xQVVJHRXxRVUlDS3xSQUlTRVJST1J8UkVBRFM/fFJFQUx8UkVDT05GSUdVUkV8UkVGRVJFTkNFU3xSRUxFQVNFfFJFTkFNRXxSRVBFQVQoPzpBQkxFKT98UkVQTEFDRXxSRVBMSUNBVElPTnxSRVFVSVJFfFJFU0lHTkFMfFJFU1RPUkV8UkVTVFJJQ1R8UkVUVVJOKD86SU5HfFMpP3xSRVZPS0V8UklHSFR8Uk9MTEJBQ0t8Uk9VVElORXxST1coPzpDT1VOVHxHVUlEQ09MfFMpP3xSVFJFRXxSVUxFfFNBVkUoPzpQT0lOVCk/fFNDSEVNQXxTRUNPTkR8U0VMRUNUfFNFUklBTCg/OklaQUJMRSk/fFNFU1NJT04oPzpfVVNFUik/fFNFVCg/OlVTRVIpP3xTSEFSRXxTSE9XfFNIVVRET1dOfFNJTVBMRXxTTUFMTElOVHxTTkFQU0hPVHxTT01FfFNPTkFNRXxTUUx8U1RBUlQoPzpJTkcpP3xTVEFUSVNUSUNTfFNUQVRVU3xTVFJJUEVEfFNZU1RFTV9VU0VSfFRBQkxFUz98VEFCTEVTUEFDRXxURU1QKD86T1JBUll8VEFCTEUpP3xURVJNSU5BVEVEfFRFWFQoPzpTSVpFKT98VEhFTnxUSU1FKD86U1RBTVApP3xUSU5ZKD86QkxPQnxJTlR8VEVYVCl8VE9QP3xUUkFOKD86U0FDVElPTlM/KT98VFJJR0dFUnxUUlVOQ0FURXxUU0VRVUFMfFRZUEVTP3xVTkJPVU5ERUR8VU5DT01NSVRURUR8VU5ERUZJTkVEfFVOSU9OfFVOSVFVRXxVTkxPQ0t8VU5QSVZPVHxVTlNJR05FRHxVUERBVEUoPzpURVhUKT98VVNBR0V8VVNFfFVTRVJ8VVNJTkd8VkFMVUVTP3xWQVIoPzpCSU5BUll8Q0hBUnxDSEFSQUNURVJ8WUlORyl8VklFV3xXQUlURk9SfFdBUk5JTkdTfFdIRU58V0hFUkV8V0hJTEV8V0lUSCg/OiBST0xMVVB8SU4pP3xXT1JLfFdSSVRFKD86VEVYVCk/fFlFQVIpXGIvaSxib29sZWFuOi9cYig/OkZBTFNFfE5VTEx8VFJVRSlcYi9pLG51bWJlcjovXGIweFtcZGEtZl0rXGJ8XGJcZCsoPzpcLlxkKik/fFxCXC5cZCtcYi9pLG9wZXJhdG9yOi9bLSsqXC89JV5+XXwmJj98XHxcfD98IT0/fDwoPzo9Pj98PHw+KT98Pls+PV0/fFxiKD86QU5EfEJFVFdFRU58RElWfElMSUtFfElOfElTfExJS0V8Tk9UfE9SfFJFR0VYUHxSTElLRXxTT1VORFMgTElLRXxYT1IpXGIvaSxwdW5jdHVhdGlvbjovWztbXF0oKWAsLl0vfX1yZXR1cm4gbGR9dmFyIHNkLCRUO2Z1bmN0aW9uIGkyKCl7aWYoJFQpcmV0dXJuIHNkOyRUPTE7dmFyIGU9dGIoKTtzZD1uLG4uZGlzcGxheU5hbWU9ImFwZXgiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksKGZ1bmN0aW9uKGkpe3ZhciBsPS9cYig/Oig/OmFmdGVyfGJlZm9yZSkoPz1ccytbYS16XSl8YWJzdHJhY3R8YWN0aXZhdGV8YW5kfGFueXxhcnJheXxhc3xhc2N8YXV0b25vbW91c3xiZWdpbnxiaWdkZWNpbWFsfGJsb2J8Ym9vbGVhbnxicmVha3xidWxrfGJ5fGJ5dGV8Y2FzZXxjYXN0fGNhdGNofGNoYXJ8Y2xhc3N8Y29sbGVjdHxjb21taXR8Y29uc3R8Y29udGludWV8Y3VycmVuY3l8ZGF0ZXxkYXRldGltZXxkZWNpbWFsfGRlZmF1bHR8ZGVsZXRlfGRlc2N8ZG98ZG91YmxlfGVsc2V8ZW5kfGVudW18ZXhjZXB0aW9ufGV4aXR8ZXhwb3J0fGV4dGVuZHN8ZmluYWx8ZmluYWxseXxmbG9hdHxmb3J8ZnJvbXxnZXQoPz1ccypbe307XSl8Z2xvYmFsfGdvdG98Z3JvdXB8aGF2aW5nfGhpbnR8aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW5uZXJ8aW5zZXJ0fGluc3RhbmNlb2Z8aW50fGludGVnZXJ8aW50ZXJmYWNlfGludG98am9pbnxsaWtlfGxpbWl0fGxpc3R8bG9uZ3xsb29wfG1hcHxtZXJnZXxuZXd8bm90fG51bGx8bnVsbHN8bnVtYmVyfG9iamVjdHxvZnxvbnxvcnxvdXRlcnxvdmVycmlkZXxwYWNrYWdlfHBhcmFsbGVsfHByYWdtYXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmV0cmlldmV8cmV0dXJufHJvbGxiYWNrfHNlbGVjdHxzZXR8c2hvcnR8c09iamVjdHxzb3J0fHN0YXRpY3xzdHJpbmd8c3VwZXJ8c3dpdGNofHN5bmNocm9uaXplZHxzeXN0ZW18dGVzdG1ldGhvZHx0aGVufHRoaXN8dGhyb3d8dGltZXx0cmFuc2FjdGlvbnx0cmFuc2llbnR8dHJpZ2dlcnx0cnl8dW5kZWxldGV8dXBkYXRlfHVwc2VydHx1c2luZ3x2aXJ0dWFsfHZvaWR8d2Vic2VydmljZXx3aGVufHdoZXJlfHdoaWxlfCg/OmluaGVyaXRlZHx3aXRofHdpdGhvdXQpXHMrc2hhcmluZylcYi9pLHU9L1xiKD86KD89W2Etel9dXHcqXHMqWzxcW10pfCg/ITxrZXl3b3JkPikpW0EtWl9dXHcqKD86XHMqXC5ccypbQS1aX11cdyopKlxiKD86XHMqKD86XFtccypcXXw8KD86W148Pl18PCg/OltePD5dfDxbXjw+XSo+KSo+KSo+KSkqLy5zb3VyY2UucmVwbGFjZSgvPGtleXdvcmQ+L2csZnVuY3Rpb24oKXtyZXR1cm4gbC5zb3VyY2V9KTtmdW5jdGlvbiBjKGYpe3JldHVybiBSZWdFeHAoZi5yZXBsYWNlKC88Q0xBU1MtTkFNRT4vZyxmdW5jdGlvbigpe3JldHVybiB1fSksImkiKX12YXIgZD17a2V5d29yZDpsLHB1bmN0dWF0aW9uOi9bKClcW1xde307LDouPD5dL307aS5sYW5ndWFnZXMuYXBleD17Y29tbWVudDppLmxhbmd1YWdlcy5jbGlrZS5jb21tZW50LHN0cmluZzppLmxhbmd1YWdlcy5jbGlrZS5zdHJpbmcsc3FsOntwYXR0ZXJuOi8oKD86Wz0sKHs6XXxcYnJldHVybilccyopXFtbXlxbXF1dKlxdL2ksbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6Imxhbmd1YWdlLXNxbCIsaW5zaWRlOmkubGFuZ3VhZ2VzLnNxbH0sYW5ub3RhdGlvbjp7cGF0dGVybjovQFx3K1xiLyxhbGlhczoicHVuY3R1YXRpb24ifSwiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOmMoLyhcYig/OmNsYXNzfGVudW18ZXh0ZW5kc3xpbXBsZW1lbnRzfGluc3RhbmNlb2Z8aW50ZXJmYWNlfG5ld3x0cmlnZ2VyXHMrXHcrXHMrb24pXHMrKTxDTEFTUy1OQU1FPi8uc291cmNlKSxsb29rYmVoaW5kOiEwLGluc2lkZTpkfSx7cGF0dGVybjpjKC8oXChccyopPENMQVNTLU5BTUU+KD89XHMqXClccypbXHcoXSkvLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6ZH0se3BhdHRlcm46YygvPENMQVNTLU5BTUU+KD89XHMqXHcrXHMqWzs9LCgpezpdKS8uc291cmNlKSxpbnNpZGU6ZH1dLHRyaWdnZXI6e3BhdHRlcm46LyhcYnRyaWdnZXJccyspXHcrXGIvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJjbGFzcy1uYW1lIn0sa2V5d29yZDpsLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVxzKlwoKS9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLG51bWJlcjovKD86XEJcLlxkK3xcYlxkKyg/OlwuXGQrfEwpPylcYi9pLG9wZXJhdG9yOi9bIT1dKD86PT0/KT98XD9cLj98JiZ8XHxcfHwtLXxcK1wrfFstKyovXiZ8XT0/fDp8PDw/PT98PnsxLDN9PT8vLHB1bmN0dWF0aW9uOi9bKClcW1xde307LC5dL319KShhKX1yZXR1cm4gc2R9dmFyIHVkLFZUO2Z1bmN0aW9uIG8yKCl7aWYoVlQpcmV0dXJuIHVkO1ZUPTEsdWQ9ZSxlLmRpc3BsYXlOYW1lPSJhcGwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmFwbD17Y29tbWVudDovKD864o2dfCNbISBdKS4qJC9tLHN0cmluZzp7cGF0dGVybjovJyg/OlteJ1xyXG5dfCcnKSonLyxncmVlZHk6ITB9LG51bWJlcjovwq8/KD86XGQqXC4/XGJcZCsoPzplWyvCr10/XGQrKT98wq984oieKSg/OmrCrz8oPzooPzpcZCsoPzpcLlxkKyk/fFwuXGQrKSg/OmVbK8KvXT9cZCspP3zCr3ziiJ4pKT8vaSxzdGF0ZW1lbnQ6LzpbQS1aXVthLXpdW0EtWmEtel0qXGIvLCJzeXN0ZW0tZnVuY3Rpb24iOntwYXR0ZXJuOi/ijpVbQS1aXSsvaSxhbGlhczoiZnVuY3Rpb24ifSxjb25zdGFudDovW+KNrOKMviPijpXijZ5dLyxmdW5jdGlvbjovWy0rw5fDt+KMiOKMiuKIo3zijbPijbg/KuKNn+KXiyHijLk84omkPT7iiaXiiaDiiaHiiaLiiIrijbfiiKriiKl+4oio4oin4o2x4o2y4o20LOKNquKMveKKluKNieKGkeKGk+KKguKKg+KKhuKKh+KMt+KNi+KNkuKKpOKKpeKNleKNjuKKo+KKouKNgeKNguKJiOKNr+KGl8Kk4oaSXS8sIm1vbmFkaWMtb3BlcmF0b3IiOntwYXR0ZXJuOi9bXFxcL+KMv+KNgMKo4o2o4oy2JuKIpV0vLGFsaWFzOiJvcGVyYXRvciJ9LCJkeWFkaWMtb3BlcmF0b3IiOntwYXR0ZXJuOi9bLuKNo+KNoOKNpOKImOKMuEDijLrijaVdLyxhbGlhczoib3BlcmF0b3IifSxhc3NpZ25tZW50OntwYXR0ZXJuOi/ihpAvLGFsaWFzOiJrZXl3b3JkIn0scHVuY3R1YXRpb246L1tcWztcXSgp4peH4ouEXS8sZGZuOntwYXR0ZXJuOi9be33ijbrijbXijbbijbniiIfijas6XS8sYWxpYXM6ImJ1aWx0aW4ifX19cmV0dXJuIHVkfXZhciBjZCxZVDtmdW5jdGlvbiBsMigpe2lmKFlUKXJldHVybiBjZDtZVD0xLGNkPWUsZS5kaXNwbGF5TmFtZT0iYXBwbGVzY3JpcHQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmFwcGxlc2NyaXB0PXtjb21tZW50OlsvXChcKig/OlwoXCooPzpbXipdfFwqKD8hXCkpKSpcKlwpfCg/IVwoXCopW1xzXFNdKSo/XCpcKS8sLy0tLisvLC8jLisvXSxzdHJpbmc6LyIoPzpcXC58W14iXFxcclxuXSkqIi8sbnVtYmVyOi8oPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzplLT9cZCspP1xiL2ksb3BlcmF0b3I6Wy9bJj3iiaDiiaTiiaUqK1wtXC/Dt15dfFs8Pl09Py8sL1xiKD86KD86YmVnaW58ZW5kfHN0YXJ0KXM/IHdpdGh8KD86Y29udGFpbnM/fCg/OmRvZXMgbm90fGRvZXNuJ3QpIGNvbnRhaW4pfCg/OmlzfGlzbid0fGlzIG5vdCkgKD86Y29udGFpbmVkIGJ5fGluKXwoPzooPzppc3xpc24ndHxpcyBub3QpICk/KD86Z3JlYXRlcnxsZXNzKSB0aGFuKD86IG9yIGVxdWFsKT8oPzogdG8pP3woPzpjb21lc3woPzpkb2VzIG5vdHxkb2Vzbid0KSBjb21lKSAoPzphZnRlcnxiZWZvcmUpfCg/OmlzfGlzbid0fGlzIG5vdCkgZXF1YWwoPzogdG8pP3woPzooPzpkb2VzIG5vdHxkb2Vzbid0KSBlcXVhbHxlcXVhbCB0b3xlcXVhbHN8aXMgbm90fGlzbid0KXwoPzphICk/KD86cmVmKD86IHRvKT98cmVmZXJlbmNlIHRvKXwoPzphbmR8YXN8ZGl2fG1vZHxub3R8b3IpKVxiL10sa2V5d29yZDovXGIoPzphYm91dHxhYm92ZXxhZnRlcnxhZ2FpbnN0fGFwYXJ0IGZyb218YXJvdW5kfGFzaWRlIGZyb218YXR8YmFja3xiZWZvcmV8YmVnaW5uaW5nfGJlaGluZHxiZWxvd3xiZW5lYXRofGJlc2lkZXxiZXR3ZWVufGJ1dHxieXxjb25zaWRlcmluZ3xjb250aW51ZXxjb3B5fGRvZXN8ZWlnaHRofGVsc2V8ZW5kfGVxdWFsfGVycm9yfGV2ZXJ5fGV4aXR8ZmFsc2V8ZmlmdGh8Zmlyc3R8Zm9yfGZvdXJ0aHxmcm9tfGZyb250fGdldHxnaXZlbnxnbG9iYWx8aWZ8aWdub3Jpbmd8aW58aW5zdGVhZCBvZnxpbnRvfGlzfGl0fGl0c3xsYXN0fGxvY2FsfG1lfG1pZGRsZXxteXxuaW50aHxvZnxvbnxvbnRvfG91dCBvZnxvdmVyfHByb3B8cHJvcGVydHl8cHV0fHJlcGVhdHxyZXR1cm58cmV0dXJuaW5nfHNlY29uZHxzZXR8c2V2ZW50aHxzaW5jZXxzaXh0aHxzb21lfHRlbGx8dGVudGh8dGhhdHx0aGV8dGhlbnx0aGlyZHx0aHJvdWdofHRocnV8dGltZW91dHx0aW1lc3x0b3x0cmFuc2FjdGlvbnx0cnVlfHRyeXx1bnRpbHx3aGVyZXx3aGlsZXx3aG9zZXx3aXRofHdpdGhvdXQpXGIvLCJjbGFzcy1uYW1lIjovXGIoPzpQT1NJWCBmaWxlfFJHQiBjb2xvcnxhbGlhc3xhcHBsaWNhdGlvbnxib29sZWFufGNlbnRpbWV0ZXJzfGNlbnRpbWV0cmVzfGNsYXNzfGNvbnN0YW50fGN1YmljIGNlbnRpbWV0ZXJzfGN1YmljIGNlbnRpbWV0cmVzfGN1YmljIGZlZXR8Y3ViaWMgaW5jaGVzfGN1YmljIG1ldGVyc3xjdWJpYyBtZXRyZXN8Y3ViaWMgeWFyZHN8ZGF0ZXxkZWdyZWVzIENlbHNpdXN8ZGVncmVlcyBGYWhyZW5oZWl0fGRlZ3JlZXMgS2VsdmlufGZlZXR8ZmlsZXxnYWxsb25zfGdyYW1zfGluY2hlc3xpbnRlZ2VyfGtpbG9ncmFtc3xraWxvbWV0ZXJzfGtpbG9tZXRyZXN8bGlzdHxsaXRlcnN8bGl0cmVzfG1ldGVyc3xtZXRyZXN8bWlsZXN8bnVtYmVyfG91bmNlc3xwb3VuZHN8cXVhcnRzfHJlYWx8cmVjb3JkfHJlZmVyZW5jZXxzY3JpcHR8c3F1YXJlIGZlZXR8c3F1YXJlIGtpbG9tZXRlcnN8c3F1YXJlIGtpbG9tZXRyZXN8c3F1YXJlIG1ldGVyc3xzcXVhcmUgbWV0cmVzfHNxdWFyZSBtaWxlc3xzcXVhcmUgeWFyZHN8dGV4dHx5YXJkcylcYi8scHVuY3R1YXRpb246L1t7fSgpOizCrMKrwrvjgIrjgItdL319cmV0dXJuIGNkfXZhciBkZCxLVDtmdW5jdGlvbiBzMigpe2lmKEtUKXJldHVybiBkZDtLVD0xLGRkPWUsZS5kaXNwbGF5TmFtZT0iYXFsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5hcWw9e2NvbW1lbnQ6L1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvLyxwcm9wZXJ0eTp7cGF0dGVybjovKFt7LF1ccyopKD86KD8hXGQpXHcrfChbIifCtGBdKSg/Oig/IVwyKVteXFxcclxuXXxcXC4pKlwyKSg/PVxzKjopLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oWyInXSkoPzooPyFcMSlbXlxcXHJcbl18XFwuKSpcMS8sZ3JlZWR5OiEwfSxpZGVudGlmaWVyOntwYXR0ZXJuOi8oW8K0YF0pKD86KD8hXDEpW15cXFxyXG5dfFxcLikqXDEvLGdyZWVkeTohMH0sdmFyaWFibGU6L0BAP1x3Ky8sa2V5d29yZDpbe3BhdHRlcm46LyhcYldJVEhccyspQ09VTlQoPz1ccytJTlRPXGIpL2ksbG9va2JlaGluZDohMH0sL1xiKD86QUdHUkVHQVRFfEFMTHxBTkR8QU5ZfEFTQ3xDT0xMRUNUfERFU0N8RElTVElOQ1R8RklMVEVSfEZPUnxHUkFQSHxJTnxJTkJPVU5EfElOU0VSVHxJTlRPfEtfUEFUSFN8S19TSE9SVEVTVF9QQVRIU3xMRVR8TElLRXxMSU1JVHxOT05FfE5PVHxOVUxMfE9SfE9VVEJPVU5EfFJFTU9WRXxSRVBMQUNFfFJFVFVSTnxTSE9SVEVTVF9QQVRIfFNPUlR8VVBEQVRFfFVQU0VSVHxXSU5ET1d8V0lUSClcYi9pLHtwYXR0ZXJuOi8oXnxbXlx3LltdKSg/OktFRVB8UFJVTkV8U0VBUkNIfFRPKVxiL2ksbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteXHcuW10pKD86Q1VSUkVOVHxORVd8T0xEKVxiLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovXGJPUFRJT05TKD89XHMqXHspL2l9XSxmdW5jdGlvbjovXGIoPyFcZClcdysoPz1ccypcKCkvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLHJhbmdlOntwYXR0ZXJuOi9cLlwuLyxhbGlhczoib3BlcmF0b3IifSxudW1iZXI6Wy9cYjBiWzAxXSsvaSwvXGIweFswLTlhLWZdKy9pLC8oPzpcQlwuXGQrfFxiKD86MHxbMS05XVxkKikoPzpcLlxkKyk/KSg/OmVbKy1dP1xkKyk/L2ldLG9wZXJhdG9yOi9cKnsyLH18Wz0hXX58WyE9PD5dPT98JiZ8XHxcfHxbLSsqLyVdLyxwdW5jdHVhdGlvbjovOjp8Wz8uOiw7KClbXF17fV0vfX1yZXR1cm4gZGR9dmFyIHBkLFdUO2Z1bmN0aW9uIG9hKCl7aWYoV1QpcmV0dXJuIHBkO1dUPTEscGQ9ZSxlLmRpc3BsYXlOYW1lPSJjIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5jPW4ubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtjb21tZW50OntwYXR0ZXJuOi9cL1wvKD86W15cclxuXFxdfFxcKD86XHJcbj98XG58KD8hW1xyXG5dKSkpKnxcL1wqW1xzXFNdKj8oPzpcKlwvfCQpLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OlxcKD86XHJcbnxbXHNcU10pfFteIlxcXHJcbl0pKiIvLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXGIoPzplbnVtfHN0cnVjdClccysoPzpfX2F0dHJpYnV0ZV9fXHMqXChcKFtcc1xTXSo/XClcKVxzKik/KVx3K3xcYlthLXpdXHcqX3RcYi8sbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzpfQWxpZ25hc3xfQWxpZ25vZnxfQXRvbWljfF9Cb29sfF9Db21wbGV4fF9HZW5lcmljfF9JbWFnaW5hcnl8X05vcmV0dXJufF9TdGF0aWNfYXNzZXJ0fF9UaHJlYWRfbG9jYWx8X19hdHRyaWJ1dGVfX3xhc218YXV0b3xicmVha3xjYXNlfGNoYXJ8Y29uc3R8Y29udGludWV8ZGVmYXVsdHxkb3xkb3VibGV8ZWxzZXxlbnVtfGV4dGVybnxmbG9hdHxmb3J8Z290b3xpZnxpbmxpbmV8aW50fGxvbmd8cmVnaXN0ZXJ8cmV0dXJufHNob3J0fHNpZ25lZHxzaXplb2Z8c3RhdGljfHN0cnVjdHxzd2l0Y2h8dHlwZWRlZnx0eXBlb2Z8dW5pb258dW5zaWduZWR8dm9pZHx2b2xhdGlsZXx3aGlsZSlcYi8sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksbnVtYmVyOi8oPzpcYjB4KD86W1xkYS1mXSsoPzpcLltcZGEtZl0qKT98XC5bXGRhLWZdKykoPzpwWystXT9cZCspP3woPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzplWystXT9cZCspPylbZnVsXXswLDR9L2ksb3BlcmF0b3I6Lz4+PT98PDw9P3wtPnwoWy0rJnw6XSlcMXxbPzp+XXxbLSsqLyUmfF4hPTw+XT0/L30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiYyIsInN0cmluZyIse2NoYXI6e3BhdHRlcm46LycoPzpcXCg/OlxyXG58W1xzXFNdKXxbXidcXFxyXG5dKXswLDMyfScvLGdyZWVkeTohMH19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImMiLCJzdHJpbmciLHttYWNybzp7cGF0dGVybjovKF5bXHQgXSopI1xzKlthLXpdKD86W15cclxuXFwvXXxcLyg/IVwqKXxcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcL3xcXCg/OlxyXG58W1xzXFNdKSkqL2ltLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJwcm9wZXJ0eSIsaW5zaWRlOntzdHJpbmc6W3twYXR0ZXJuOi9eKCNccyppbmNsdWRlXHMqKTxbXj5dKz4vLGxvb2tiZWhpbmQ6ITB9LG4ubGFuZ3VhZ2VzLmMuc3RyaW5nXSxjaGFyOm4ubGFuZ3VhZ2VzLmMuY2hhcixjb21tZW50Om4ubGFuZ3VhZ2VzLmMuY29tbWVudCwibWFjcm8tbmFtZSI6W3twYXR0ZXJuOi8oXiNccypkZWZpbmVccyspXHcrXGIoPyFcKCkvaSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF4jXHMqZGVmaW5lXHMrKVx3K1xiKD89XCgpL2ksbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifV0sZGlyZWN0aXZlOntwYXR0ZXJuOi9eKCNccyopW2Etel0rLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sImRpcmVjdGl2ZS1oYXNoIjovXiMvLHB1bmN0dWF0aW9uOi8jI3xcXCg/PVtcclxuXSkvLGV4cHJlc3Npb246e3BhdHRlcm46L1xTW1xzXFNdKi8saW5zaWRlOm4ubGFuZ3VhZ2VzLmN9fX19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImMiLCJmdW5jdGlvbiIse2NvbnN0YW50Oi9cYig/OkVPRnxOVUxMfFNFRUtfQ1VSfFNFRUtfRU5EfFNFRUtfU0VUfF9fREFURV9ffF9fRklMRV9ffF9fTElORV9ffF9fVElNRVNUQU1QX198X19USU1FX198X19mdW5jX198c3RkZXJyfHN0ZGlufHN0ZG91dClcYi99KSxkZWxldGUgbi5sYW5ndWFnZXMuYy5ib29sZWFufXJldHVybiBwZH12YXIgZmQsWFQ7ZnVuY3Rpb24gbmIoKXtpZihYVClyZXR1cm4gZmQ7WFQ9MTt2YXIgZT1vYSgpO2ZkPW4sbi5kaXNwbGF5TmFtZT0iY3BwIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLChmdW5jdGlvbihpKXt2YXIgbD0vXGIoPzphbGlnbmFzfGFsaWdub2Z8YXNtfGF1dG98Ym9vbHxicmVha3xjYXNlfGNhdGNofGNoYXJ8Y2hhcjE2X3R8Y2hhcjMyX3R8Y2hhcjhfdHxjbGFzc3xjb19hd2FpdHxjb19yZXR1cm58Y29feWllbGR8Y29tcGx8Y29uY2VwdHxjb25zdHxjb25zdF9jYXN0fGNvbnN0ZXZhbHxjb25zdGV4cHJ8Y29uc3Rpbml0fGNvbnRpbnVlfGRlY2x0eXBlfGRlZmF1bHR8ZGVsZXRlfGRvfGRvdWJsZXxkeW5hbWljX2Nhc3R8ZWxzZXxlbnVtfGV4cGxpY2l0fGV4cG9ydHxleHRlcm58ZmluYWx8ZmxvYXR8Zm9yfGZyaWVuZHxnb3RvfGlmfGltcG9ydHxpbmxpbmV8aW50fGludDE2X3R8aW50MzJfdHxpbnQ2NF90fGludDhfdHxsb25nfG1vZHVsZXxtdXRhYmxlfG5hbWVzcGFjZXxuZXd8bm9leGNlcHR8bnVsbHB0cnxvcGVyYXRvcnxvdmVycmlkZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmVnaXN0ZXJ8cmVpbnRlcnByZXRfY2FzdHxyZXF1aXJlc3xyZXR1cm58c2hvcnR8c2lnbmVkfHNpemVvZnxzdGF0aWN8c3RhdGljX2Fzc2VydHxzdGF0aWNfY2FzdHxzdHJ1Y3R8c3dpdGNofHRlbXBsYXRlfHRoaXN8dGhyZWFkX2xvY2FsfHRocm93fHRyeXx0eXBlZGVmfHR5cGVpZHx0eXBlbmFtZXx1aW50MTZfdHx1aW50MzJfdHx1aW50NjRfdHx1aW50OF90fHVuaW9ufHVuc2lnbmVkfHVzaW5nfHZpcnR1YWx8dm9pZHx2b2xhdGlsZXx3Y2hhcl90fHdoaWxlKVxiLyx1PS9cYig/ITxrZXl3b3JkPilcdysoPzpccypcLlxzKlx3KykqXGIvLnNvdXJjZS5yZXBsYWNlKC88a2V5d29yZD4vZyxmdW5jdGlvbigpe3JldHVybiBsLnNvdXJjZX0pO2kubGFuZ3VhZ2VzLmNwcD1pLmxhbmd1YWdlcy5leHRlbmQoImMiLHsiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOlJlZ0V4cCgvKFxiKD86Y2xhc3N8Y29uY2VwdHxlbnVtfHN0cnVjdHx0eXBlbmFtZSlccyspKD8hPGtleXdvcmQ+KVx3Ky8uc291cmNlLnJlcGxhY2UoLzxrZXl3b3JkPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGwuc291cmNlfSkpLGxvb2tiZWhpbmQ6ITB9LC9cYltBLVpdXHcqKD89XHMqOjpccypcdytccypcKCkvLC9cYltBLVpfXVx3Kig/PVxzKjo6XHMqflx3K1xzKlwoKS9pLC9cYlx3Kyg/PVxzKjwoPzpbXjw+XXw8KD86W148Pl18PFtePD5dKj4pKj4pKj5ccyo6OlxzKlx3K1xzKlwoKS9dLGtleXdvcmQ6bCxudW1iZXI6e3BhdHRlcm46Lyg/OlxiMGJbMDEnXSt8XGIweCg/OltcZGEtZiddKyg/OlwuW1xkYS1mJ10qKT98XC5bXGRhLWYnXSspKD86cFsrLV0/W1xkJ10rKT98KD86XGJbXGQnXSsoPzpcLltcZCddKik/fFxCXC5bXGQnXSspKD86ZVsrLV0/W1xkJ10rKT8pW2Z1bF17MCw0fS9pLGdyZWVkeTohMH0sb3BlcmF0b3I6Lz4+PT98PDw9P3wtPnwtLXxcK1wrfCYmfFx8XHx8Wz86fl18PD0+fFstKyovJSZ8XiE9PD5dPT98XGIoPzphbmR8YW5kX2VxfGJpdGFuZHxiaXRvcnxub3R8bm90X2VxfG9yfG9yX2VxfHhvcnx4b3JfZXEpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi99KSxpLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNwcCIsInN0cmluZyIse21vZHVsZTp7cGF0dGVybjpSZWdFeHAoLyhcYig/OmltcG9ydHxtb2R1bGUpXHMrKS8uc291cmNlKyIoPzoiKy8iKD86XFwoPzpcclxufFtcc1xTXSl8W14iXFxcclxuXSkqInw8W148PlxyXG5dKj4vLnNvdXJjZSsifCIrLzxtb2QtbmFtZT4oPzpccyo6XHMqPG1vZC1uYW1lPik/fDpccyo8bW9kLW5hbWU+Ly5zb3VyY2UucmVwbGFjZSgvPG1vZC1uYW1lPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHV9KSsiKSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7c3RyaW5nOi9eWzwiXVtcc1xTXSsvLG9wZXJhdG9yOi86LyxwdW5jdHVhdGlvbjovXC4vfX0sInJhdy1zdHJpbmciOntwYXR0ZXJuOi9SIihbXigpXFwgXXswLDE2fSlcKFtcc1xTXSo/XClcMSIvLGFsaWFzOiJzdHJpbmciLGdyZWVkeTohMH19KSxpLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNwcCIsImtleXdvcmQiLHsiZ2VuZXJpYy1mdW5jdGlvbiI6e3BhdHRlcm46L1xiKD8hb3BlcmF0b3JcYilbYS16X11cdypccyo8KD86W148Pl18PFtePD5dKj4pKj4oPz1ccypcKCkvaSxpbnNpZGU6e2Z1bmN0aW9uOi9eXHcrLyxnZW5lcmljOntwYXR0ZXJuOi88W1xzXFNdKy8sYWxpYXM6ImNsYXNzLW5hbWUiLGluc2lkZTppLmxhbmd1YWdlcy5jcHB9fX19KSxpLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNwcCIsIm9wZXJhdG9yIix7ImRvdWJsZS1jb2xvbiI6e3BhdHRlcm46Lzo6LyxhbGlhczoicHVuY3R1YXRpb24ifX0pLGkubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY3BwIiwiY2xhc3MtbmFtZSIseyJiYXNlLWNsYXVzZSI6e3BhdHRlcm46LyhcYig/OmNsYXNzfHN0cnVjdClccytcdytccyo6XHMqKVteO3t9Iidcc10rKD86XHMrW147e30iJ1xzXSspKig/PVxzKls7e10pLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6aS5sYW5ndWFnZXMuZXh0ZW5kKCJjcHAiLHt9KX19KSxpLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImluc2lkZSIsImRvdWJsZS1jb2xvbiIseyJjbGFzcy1uYW1lIjovXGJbYS16X11cdypcYig/IVxzKjo6KS9pfSxpLmxhbmd1YWdlcy5jcHBbImJhc2UtY2xhdXNlIl0pfSkoYSl9cmV0dXJuIGZkfXZhciBnZCxaVDtmdW5jdGlvbiB1Migpe2lmKFpUKXJldHVybiBnZDtaVD0xO3ZhciBlPW5iKCk7Z2Q9bixuLmRpc3BsYXlOYW1lPSJhcmR1aW5vIixuLmFsaWFzZXM9WyJpbm8iXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksYS5sYW5ndWFnZXMuYXJkdWlubz1hLmxhbmd1YWdlcy5leHRlbmQoImNwcCIse2tleXdvcmQ6L1xiKD86U3RyaW5nfGFycmF5fGJvb2x8Ym9vbGVhbnxicmVha3xieXRlfGNhc2V8Y2F0Y2h8Y29udGludWV8ZGVmYXVsdHxkb3xkb3VibGV8ZWxzZXxmaW5hbGx5fGZvcnxmdW5jdGlvbnxnb3RvfGlmfGlufGluc3RhbmNlb2Z8aW50fGludGVnZXJ8bG9uZ3xsb29wfG5ld3xudWxsfHJldHVybnxzZXR1cHxzdHJpbmd8c3dpdGNofHRocm93fHRyeXx2b2lkfHdoaWxlfHdvcmQpXGIvLGNvbnN0YW50Oi9cYig/OkFOQUxPR19NRVNTQUdFfERFRkFVTFR8RElHSVRBTF9NRVNTQUdFfEVYVEVSTkFMfEZJUk1BVEFfU1RSSU5HfEhJR0h8SU5QVVR8SU5QVVRfUFVMTFVQfElOVEVSTkFMfElOVEVSTkFMMVYxfElOVEVSTkFMMlY1NnxMRURfQlVJTFRJTnxMT1d8T1VUUFVUfFJFUE9SVF9BTkFMT0d8UkVQT1JUX0RJR0lUQUx8U0VUX1BJTl9NT0RFfFNZU0VYX1NUQVJUfFNZU1RFTV9SRVNFVClcYi8sYnVpbHRpbjovXGIoPzpBdWRpb3xCU1NJRHxCcmlkZ2V8Q2xpZW50fENvbnNvbGV8RUVQUk9NfEVzcGxvcmF8RXNwbG9yYVRGVHxFdGhlcm5ldHxFdGhlcm5ldENsaWVudHxFdGhlcm5ldFNlcnZlcnxFdGhlcm5ldFVEUHxGaWxlfEZpbGVJT3xGaWxlU3lzdGVtfEZpcm1hdGF8R1BSU3xHU018R1NNQmFuZHxHU01DbGllbnR8R1NNTW9kZW18R1NNUElOfEdTTVNjYW5uZXJ8R1NNU2VydmVyfEdTTVZvaWNlQ2FsbHxHU01fU01TfEh0dHBDbGllbnR8SVBBZGRyZXNzfElScmVhZHxLZXlib2FyZHxLZXlib2FyZENvbnRyb2xsZXJ8TGlxdWlkQ3J5c3RhbHxMaXF1aWRDcnlzdGFsX0kyQ3xNYWlsYm94fE1vdXNlfE1vdXNlQ29udHJvbGxlcnxQSW1hZ2V8UHJvY2Vzc3xSU1NJfFJvYm90Q29udHJvbHxSb2JvdE1vdG9yfFNEfFNQSXxTU0lEfFNjaGVkdWxlcnxTZXJpYWx8U2VydmVyfFNlcnZvfFNvZnR3YXJlU2VyaWFsfFN0ZXBwZXJ8U3RyZWFtfFRGVHxUYXNrfFVTQkhvc3R8V2lGaXxXaUZpQ2xpZW50fFdpRmlTZXJ2ZXJ8V2lGaVVEUHxXaXJlfFl1bkNsaWVudHxZdW5TZXJ2ZXJ8YWJzfGFkZFBhcmFtZXRlcnxhbmFsb2dSZWFkfGFuYWxvZ1JlYWRSZXNvbHV0aW9ufGFuYWxvZ1JlZmVyZW5jZXxhbmFsb2dXcml0ZXxhbmFsb2dXcml0ZVJlc29sdXRpb258YW5zd2VyQ2FsbHxhdHRhY2h8YXR0YWNoR1BSU3xhdHRhY2hJbnRlcnJ1cHR8YXR0YWNoZWR8YXV0b3Njcm9sbHxhdmFpbGFibGV8YmFja2dyb3VuZHxiZWVwfGJlZ2lufGJlZ2luUGFja2V0fGJlZ2luU0R8YmVnaW5TTVN8YmVnaW5TcGVha2VyfGJlZ2luVEZUfGJlZ2luVHJhbnNtaXNzaW9ufGJlZ2luV3JpdGV8Yml0fGJpdENsZWFyfGJpdFJlYWR8Yml0U2V0fGJpdFdyaXRlfGJsaW5rfGJsaW5rVmVyc2lvbnxidWZmZXJ8Y2hhbmdlUElOfGNoZWNrUElOfGNoZWNrUFVLfGNoZWNrUmVnfGNpcmNsZXxjaXR5TmFtZVJlYWR8Y2l0eU5hbWVXcml0ZXxjbGVhcnxjbGVhclNjcmVlbnxjbGlja3xjbG9zZXxjb21wYXNzUmVhZHxjb25maWd8Y29ubmVjdHxjb25uZWN0ZWR8Y29uc3RyYWlufGNvc3xjb3VudHJ5TmFtZVJlYWR8Y291bnRyeU5hbWVXcml0ZXxjcmVhdGVDaGFyfGN1cnNvcnxkZWJ1Z1ByaW50fGRlbGF5fGRlbGF5TWljcm9zZWNvbmRzfGRldGFjaHxkZXRhY2hJbnRlcnJ1cHR8ZGlnaXRhbFJlYWR8ZGlnaXRhbFdyaXRlfGRpc2Nvbm5lY3R8ZGlzcGxheXxkaXNwbGF5TG9nb3N8ZHJhd0JNUHxkcmF3Q29tcGFzc3xlbmNyeXB0aW9uVHlwZXxlbmR8ZW5kUGFja2V0fGVuZFNNU3xlbmRUcmFuc21pc3Npb258ZW5kV3JpdGV8ZXhpc3RzfGV4aXRWYWx1ZXxmaWxsfGZpbmR8ZmluZFVudGlsfGZsdXNofGdhdGV3YXlJUHxnZXR8Z2V0QXN5bmNocm9ub3VzbHl8Z2V0QmFuZHxnZXRCdXR0b258Z2V0Q3VycmVudENhcnJpZXJ8Z2V0SU1FSXxnZXRLZXl8Z2V0TW9kaWZpZXJzfGdldE9lbUtleXxnZXRQSU5Vc2VkfGdldFJlc3VsdHxnZXRTaWduYWxTdHJlbmd0aHxnZXRTb2NrZXR8Z2V0Vm9pY2VDYWxsU3RhdHVzfGdldFhDaGFuZ2V8Z2V0WUNoYW5nZXxoYW5nQ2FsbHxoZWlnaHR8aGlnaEJ5dGV8aG9tZXxpbWFnZXxpbnRlcnJ1cHRzfGlzQWN0aW9uRG9uZXxpc0RpcmVjdG9yeXxpc0xpc3RlbmluZ3xpc1BJTnxpc1ByZXNzZWR8aXNWYWxpZHxrZXlQcmVzc2VkfGtleVJlbGVhc2VkfGtleWJvYXJkUmVhZHxrbm9iUmVhZHxsZWZ0VG9SaWdodHxsaW5lfGxpbmVGb2xsb3dDb25maWd8bGlzdGVufGxpc3Rlbk9uTG9jYWxob3N0fGxvYWRJbWFnZXxsb2NhbElQfGxvd0J5dGV8bWFjQWRkcmVzc3xtYWludGFpbnxtYXB8bWF4fG1lc3NhZ2VBdmFpbGFibGV8bWljcm9zfG1pbGxpc3xtaW58bWtkaXJ8bW90b3JzU3RvcHxtb3RvcnNXcml0ZXxtb3VzZURyYWdnZWR8bW91c2VNb3ZlZHxtb3VzZVByZXNzZWR8bW91c2VSZWxlYXNlZHxtb3ZlfG5vQXV0b3Njcm9sbHxub0JsaW5rfG5vQnVmZmVyfG5vQ3Vyc29yfG5vRGlzcGxheXxub0ZpbGx8bm9JbnRlcnJ1cHRzfG5vTGlzdGVuT25Mb2NhbGhvc3R8bm9TdHJva2V8bm9Ub25lfG9uUmVjZWl2ZXxvblJlcXVlc3R8b3BlbnxvcGVuTmV4dEZpbGV8b3ZlcmZsb3d8cGFyc2VDb21tYW5kfHBhcnNlRmxvYXR8cGFyc2VJbnR8cGFyc2VQYWNrZXR8cGF1c2VNb2RlfHBlZWt8cGluTW9kZXxwbGF5RmlsZXxwbGF5TWVsb2R5fHBvaW50fHBvaW50VG98cG9zaXRpb258cG93fHByZXBhcmV8cHJlc3N8cHJpbnR8cHJpbnRGaXJtd2FyZVZlcnNpb258cHJpbnRWZXJzaW9ufHByaW50bG58cHJvY2Vzc3xwcm9jZXNzSW5wdXR8cHVsc2VJbnxwdXR8cmFuZG9tfHJhbmRvbVNlZWR8cmVhZHxyZWFkQWNjZWxlcm9tZXRlcnxyZWFkQmx1ZXxyZWFkQnV0dG9ufHJlYWRCeXRlc3xyZWFkQnl0ZXNVbnRpbHxyZWFkR3JlZW58cmVhZEpveXN0aWNrQnV0dG9ufHJlYWRKb3lzdGlja1N3aXRjaHxyZWFkSm95c3RpY2tYfHJlYWRKb3lzdGlja1l8cmVhZExpZ2h0U2Vuc29yfHJlYWRNZXNzYWdlfHJlYWRNaWNyb3Bob25lfHJlYWROZXR3b3Jrc3xyZWFkUmVkfHJlYWRTbGlkZXJ8cmVhZFN0cmluZ3xyZWFkU3RyaW5nVW50aWx8cmVhZFRlbXBlcmF0dXJlfHJlYWR5fHJlY3R8cmVsZWFzZXxyZWxlYXNlQWxsfHJlbW90ZUlQfHJlbW90ZU51bWJlcnxyZW1vdGVQb3J0fHJlbW92ZXxyZXF1ZXN0RnJvbXxyZXRyaWV2ZUNhbGxpbmdOdW1iZXJ8cmV3aW5kRGlyZWN0b3J5fHJpZ2h0VG9MZWZ0fHJtZGlyfHJvYm90TmFtZVJlYWR8cm9ib3ROYW1lV3JpdGV8cnVufHJ1bkFzeW5jaHJvbm91c2x5fHJ1blNoZWxsQ29tbWFuZHxydW5TaGVsbENvbW1hbmRBc3luY2hyb25vdXNseXxydW5uaW5nfHNjYW5OZXR3b3Jrc3xzY3JvbGxEaXNwbGF5TGVmdHxzY3JvbGxEaXNwbGF5UmlnaHR8c2Vla3xzZW5kQW5hbG9nfHNlbmREaWdpdGFsUG9ydFBhaXJ8c2VuZERpZ2l0YWxQb3J0c3xzZW5kU3RyaW5nfHNlbmRTeXNleHxzZXJpYWxFdmVudHxzZXRCYW5kfHNldEJpdE9yZGVyfHNldENsb2NrRGl2aWRlcnxzZXRDdXJzb3J8c2V0RE5TfHNldERhdGFNb2RlfHNldEZpcm13YXJlVmVyc2lvbnxzZXRNb2RlfHNldFBJTlVzZWR8c2V0U3BlZWR8c2V0VGV4dFNpemV8c2V0VGltZW91dHxzaGlmdElufHNoaWZ0T3V0fHNodXRkb3dufHNpbnxzaXplfHNxcnR8c3RhcnRMb29wfHN0ZXB8c3RvcHxzdHJva2V8c3VibmV0TWFza3xzd2l0Y2hQSU58dGFufHRlbXBvV3JpdGV8dGV4dHx0b25lfHRyYW5zZmVyfHR1bmVXcml0ZXx0dXJufHVwZGF0ZUlSfHVzZXJOYW1lUmVhZHx1c2VyTmFtZVdyaXRlfHZvaWNlQ2FsbHx3YWl0Q29udGludWV8d2lkdGh8d3JpdGV8d3JpdGVCbHVlfHdyaXRlR3JlZW58d3JpdGVKU09OfHdyaXRlTWVzc2FnZXx3cml0ZU1pY3Jvc2Vjb25kc3x3cml0ZVJHQnx3cml0ZVJlZHx5aWVsZClcYi99KSxhLmxhbmd1YWdlcy5pbm89YS5sYW5ndWFnZXMuYXJkdWlub31yZXR1cm4gZ2R9dmFyIG1kLFFUO2Z1bmN0aW9uIGMyKCl7aWYoUVQpcmV0dXJuIG1kO1FUPTEsbWQ9ZSxlLmRpc3BsYXlOYW1lPSJhcmZmIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5hcmZmPXtjb21tZW50Oi8lLiovLHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XFwufCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMH0sa2V5d29yZDovQCg/OmF0dHJpYnV0ZXxkYXRhfGVuZHxyZWxhdGlvbilcYi9pLG51bWJlcjovXGJcZCsoPzpcLlxkKyk/XGIvLHB1bmN0dWF0aW9uOi9be30sXS99fXJldHVybiBtZH12YXIgaGQsSlQ7ZnVuY3Rpb24gZDIoKXtpZihKVClyZXR1cm4gaGQ7SlQ9MSxoZD1lLGUuZGlzcGxheU5hbWU9ImFzY2lpZG9jIixlLmFsaWFzZXM9WyJhZG9jIl07ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9e3BhdHRlcm46LyheWyBcdF0qKVxbKD8hXFspKD86KFsiJyRgXSkoPzooPyFcMilbXlxcXXxcXC4pKlwyfFxbKD86W15cW1xdXFxdfFxcLikqXF18W15cW1xdXFwiJyRgXXxcXC4pKlxdL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3F1b3RlZDp7cGF0dGVybjovKFskYF0pKD86KD8hXDEpW15cXF18XFwuKSpcMS8saW5zaWRlOntwdW5jdHVhdGlvbjovXlskYF18WyRgXSQvfX0saW50ZXJwcmV0ZWQ6e3BhdHRlcm46LycoPzpbXidcXF18XFwuKSonLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eJ3wnJC99fSxzdHJpbmc6LyIoPzpbXiJcXF18XFwuKSoiLyx2YXJpYWJsZTovXHcrKD89PSkvLHB1bmN0dWF0aW9uOi9eXFt8XF0kfCwvLG9wZXJhdG9yOi89LywiYXR0ci12YWx1ZSI6Lyg/IV5ccyskKS4rL319LGw9YS5sYW5ndWFnZXMuYXNjaWlkb2M9eyJjb21tZW50LWJsb2NrIjp7cGF0dGVybjovXihcL3s0LH0pKD86XHI/XG58XHIpKD86W1xzXFNdKig/OlxyP1xufFxyKSk/P1wxL20sYWxpYXM6ImNvbW1lbnQifSx0YWJsZTp7cGF0dGVybjovXlx8PXszLH0oPzooPzpccj9cbnxccig/IVxuKSkuKikqPyg/OlxyP1xufFxyKVx8PXszLH0kL20saW5zaWRlOntzcGVjaWZpZXJzOntwYXR0ZXJuOi8oPzooPzooPzpcZCsoPzpcLlxkKyk/fFwuXGQrKVsrKl0oPzpbPF4+XSg/OlwuWzxePl0pP3xcLls8Xj5dKT98WzxePl0oPzpcLls8Xj5dKT98XC5bPF4+XSlbYS16XSp8W2Etel0rKSg/PVx8KS8sYWxpYXM6ImF0dHItdmFsdWUifSxwdW5jdHVhdGlvbjp7cGF0dGVybjovKF58W15cXF0pW3whXT0qLyxsb29rYmVoaW5kOiEwfX19LCJwYXNzdGhyb3VnaC1ibG9jayI6e3BhdHRlcm46L14oXCt7NCx9KSg/OlxyP1xufFxyKSg/Oltcc1xTXSooPzpccj9cbnxccikpPz9cMSQvbSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXCsrfFwrKyQvfX0sImxpdGVyYWwtYmxvY2siOntwYXR0ZXJuOi9eKC17NCx9fFwuezQsfSkoPzpccj9cbnxccikoPzpbXHNcU10qKD86XHI/XG58XHIpKT8/XDEkL20saW5zaWRlOntwdW5jdHVhdGlvbjovXig/Oi0rfFwuKyl8KD86LSt8XC4rKSQvfX0sIm90aGVyLWJsb2NrIjp7cGF0dGVybjovXigtLXxcKns0LH18X3s0LH18PXs0LH0pKD86XHI/XG58XHIpKD86W1xzXFNdKig/OlxyP1xufFxyKSk/P1wxJC9tLGluc2lkZTp7cHVuY3R1YXRpb246L14oPzotK3xcKit8Xyt8PSspfCg/Oi0rfFwqK3xfK3w9KykkL319LCJsaXN0LXB1bmN0dWF0aW9uIjp7cGF0dGVybjovKF5bIFx0XSopKD86LXxcKnsxLDV9fFwuezEsNX18KD86W2Etel18XGQrKVwufFt4dmldK1wpKSg/PSApL2ltLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sImxpc3QtbGFiZWwiOntwYXR0ZXJuOi8oXlsgXHRdKilbYS16XGRdLisoPzo6ezIsNH18OzspKD89XHMpL2ltLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN5bWJvbCJ9LCJpbmRlbnRlZC1ibG9jayI6e3BhdHRlcm46LygoXHI/XG58XHIpXDIpKFsgXHRdKylcUy4qKD86KD86XHI/XG58XHIpXDMuKykqKD89XDJ7Mn18JCkvLGxvb2tiZWhpbmQ6ITB9LGNvbW1lbnQ6L15cL1wvLiovbSx0aXRsZTp7cGF0dGVybjovXi4rKD86XHI/XG58XHIpKD86PXszLH18LXszLH18fnszLH18XF57Myx9fFwrezMsfSkkfF49ezEsNX0gLit8XlwuKD8hW1xzLl0pLiovbSxhbGlhczoiaW1wb3J0YW50IixpbnNpZGU6e3B1bmN0dWF0aW9uOi9eKD86XC58PSspfCg/Oj0rfC0rfH4rfFxeK3xcKyspJC99fSwiYXR0cmlidXRlLWVudHJ5Ijp7cGF0dGVybjovXjpbXjpcclxuXSs6KD86IC4qPyg/OiBcKyg/OlxyP1xufFxyKS4qPykqKT8kL20sYWxpYXM6InRhZyJ9LGF0dHJpYnV0ZXM6aSxocjp7cGF0dGVybjovXid7Myx9JC9tLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LCJwYWdlLWJyZWFrIjp7cGF0dGVybjovXjx7Myx9JC9tLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LGFkbW9uaXRpb246e3BhdHRlcm46L14oPzpDQVVUSU9OfElNUE9SVEFOVHxOT1RFfFRJUHxXQVJOSU5HKTovbSxhbGlhczoia2V5d29yZCJ9LGNhbGxvdXQ6W3twYXR0ZXJuOi8oXlsgXHRdKik8P1xkKj4vbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJzeW1ib2wifSx7cGF0dGVybjovPFxkKz4vLGFsaWFzOiJzeW1ib2wifV0sbWFjcm86e3BhdHRlcm46L1xiW2EtelxkXVthLXpcZC1dKjo6Pyg/OlteXHNcW1xdXSpcWyg/OlteXF1cXCInXXwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKlwxfFxcLikqXF0pLyxpbnNpZGU6e2Z1bmN0aW9uOi9eW2EtelxkLV0rKD89OikvLHB1bmN0dWF0aW9uOi9eOjo/LyxhdHRyaWJ1dGVzOntwYXR0ZXJuOi8oPzpcWyg/OlteXF1cXCInXXwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKlwxfFxcLikqXF0pLyxpbnNpZGU6aS5pbnNpZGV9fX0saW5saW5lOntwYXR0ZXJuOi8oXnxbXlxcXSkoPzooPzpcQlxbKD86W15cXVxcIiddfChbIiddKSg/Oig/IVwyKVteXFxdfFxcLikqXDJ8XFwuKSpcXSk/KD86XGJfKD8hXHMpKD86IF98W15fXFxcclxuXXxcXC4pKyg/Oig/OlxyP1xufFxyKSg/OiBffFteX1xcXHJcbl18XFwuKSspKl9cYnxcQmBgKD8hXHMpLis/KD86KD86XHI/XG58XHIpLis/KSonJ1xCfFxCYCg/IVxzKSg/OlteYCdcc118XHMrXFMpK1snYF1cQnxcQihbJyorI10pKD8hXHMpKD86IFwzfCg/IVwzKVteXFxcclxuXXxcXC4pKyg/Oig/OlxyP1xufFxyKSg/OiBcM3woPyFcMylbXlxcXHJcbl18XFwuKSspKlwzXEIpfCg/OlxbKD86W15cXVxcIiddfChbIiddKSg/Oig/IVw0KVteXFxdfFxcLikqXDR8XFwuKSpcXSk/KD86KF9ffFwqXCp8XCtcK1wrP3wjI3xcJFwkfFt+Xl0pLis/KD86KD86XHI/XG58XHIpLis/KSpcNXxce1tefVxyXG5dK1x9fFxbXFtcWz8uKz8oPzooPzpccj9cbnxccikuKz8pKlxdP1xdXF18PDwuKz8oPzooPzpccj9cbnxccikuKz8pKj4+fFwoXChcKD8uKz8oPzooPzpccj9cbnxccikuKz8pKlwpP1wpXCkpKS9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnthdHRyaWJ1dGVzOmksdXJsOntwYXR0ZXJuOi9eKD86XFtcW1xbPy4rP1xdP1xdXF18PDwuKz8+PikkLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eKD86XFtcW1xbP3w8PCl8KD86XF1cXVxdP3w+PikkL319LCJhdHRyaWJ1dGUtcmVmIjp7cGF0dGVybjovXlx7LitcfSQvLGluc2lkZTp7dmFyaWFibGU6e3BhdHRlcm46LyheXHspW2EtelxkLCtfLV0rLyxsb29rYmVoaW5kOiEwfSxvcGVyYXRvcjovXls9PyEjJUAkXXwhKD89Wzp9XSkvLHB1bmN0dWF0aW9uOi9eXHt8XH0kfDo6Py99fSxpdGFsaWM6e3BhdHRlcm46L14oWydfXSlbXHNcU10rXDEkLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eKD86Jyc/fF9fPyl8KD86Jyc/fF9fPykkL319LGJvbGQ6e3BhdHRlcm46L15cKltcc1xTXStcKiQvLGluc2lkZTp7cHVuY3R1YXRpb246L15cKlwqP3xcKlwqPyQvfX0scHVuY3R1YXRpb246L14oPzpgYD98XCt7MSwzfXwjIz98XCRcJHxbfl5dfFwoXChcKD8pfCg/OicnP3xcK3sxLDN9fCMjP3xcJFwkfFt+XmBdfFwpP1wpXCkpJC99fSxyZXBsYWNlbWVudDp7cGF0dGVybjovXCgoPzpDfFJ8VE0pXCkvLGFsaWFzOiJidWlsdGluIn0sZW50aXR5Oi8mIz9bXGRhLXpdezEsOH07L2ksImxpbmUtY29udGludWF0aW9uIjp7cGF0dGVybjovKF58IClcKyQvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fTtmdW5jdGlvbiB1KGMpe2M9Yy5zcGxpdCgiICIpO2Zvcih2YXIgZD17fSxmPTAsbT1jLmxlbmd0aDtmPG07ZisrKWRbY1tmXV09bFtjW2ZdXTtyZXR1cm4gZH1pLmluc2lkZS5pbnRlcnByZXRlZC5pbnNpZGUucmVzdD11KCJtYWNybyBpbmxpbmUgcmVwbGFjZW1lbnQgZW50aXR5IiksbFsicGFzc3Rocm91Z2gtYmxvY2siXS5pbnNpZGUucmVzdD11KCJtYWNybyIpLGxbImxpdGVyYWwtYmxvY2siXS5pbnNpZGUucmVzdD11KCJjYWxsb3V0IiksbC50YWJsZS5pbnNpZGUucmVzdD11KCJjb21tZW50LWJsb2NrIHBhc3N0aHJvdWdoLWJsb2NrIGxpdGVyYWwtYmxvY2sgb3RoZXItYmxvY2sgbGlzdC1wdW5jdHVhdGlvbiBpbmRlbnRlZC1ibG9jayBjb21tZW50IHRpdGxlIGF0dHJpYnV0ZS1lbnRyeSBhdHRyaWJ1dGVzIGhyIHBhZ2UtYnJlYWsgYWRtb25pdGlvbiBsaXN0LWxhYmVsIGNhbGxvdXQgbWFjcm8gaW5saW5lIHJlcGxhY2VtZW50IGVudGl0eSBsaW5lLWNvbnRpbnVhdGlvbiIpLGxbIm90aGVyLWJsb2NrIl0uaW5zaWRlLnJlc3Q9dSgidGFibGUgbGlzdC1wdW5jdHVhdGlvbiBpbmRlbnRlZC1ibG9jayBjb21tZW50IGF0dHJpYnV0ZS1lbnRyeSBhdHRyaWJ1dGVzIGhyIHBhZ2UtYnJlYWsgYWRtb25pdGlvbiBsaXN0LWxhYmVsIG1hY3JvIGlubGluZSByZXBsYWNlbWVudCBlbnRpdHkgbGluZS1jb250aW51YXRpb24iKSxsLnRpdGxlLmluc2lkZS5yZXN0PXUoIm1hY3JvIGlubGluZSByZXBsYWNlbWVudCBlbnRpdHkiKSxhLmhvb2tzLmFkZCgid3JhcCIsZnVuY3Rpb24oYyl7Yy50eXBlPT09ImVudGl0eSImJihjLmF0dHJpYnV0ZXMudGl0bGU9Yy5jb250ZW50LnZhbHVlLnJlcGxhY2UoLyZhbXA7LywiJiIpKX0pLGEubGFuZ3VhZ2VzLmFkb2M9YS5sYW5ndWFnZXMuYXNjaWlkb2N9KShuKX1yZXR1cm4gaGR9dmFyIGJkLGV4O2Z1bmN0aW9uIHAyKCl7aWYoZXgpcmV0dXJuIGJkO2V4PTEsYmQ9ZSxlLmRpc3BsYXlOYW1lPSJhc202NTAyIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5hc202NTAyPXtjb21tZW50Oi87LiovLGRpcmVjdGl2ZTp7cGF0dGVybjovXC5cdysoPz0gKS8sYWxpYXM6InByb3BlcnR5In0sc3RyaW5nOi8oWyInYF0pKD86XFwufCg/IVwxKVteXFxcclxuXSkqXDEvLCJvcC1jb2RlIjp7cGF0dGVybjovXGIoPzpBREN8QU5EfEFTTHxCQ0N8QkNTfEJFUXxCSVR8Qk1JfEJORXxCUEx8QlJLfEJWQ3xCVlN8Q0xDfENMRHxDTEl8Q0xWfENNUHxDUFh8Q1BZfERFQ3xERVh8REVZfEVPUnxJTkN8SU5YfElOWXxKTVB8SlNSfExEQXxMRFh8TERZfExTUnxOT1B8T1JBfFBIQXxQSFB8UExBfFBMUHxST0x8Uk9SfFJUSXxSVFN8U0JDfFNFQ3xTRUR8U0VJfFNUQXxTVFh8U1RZfFRBWHxUQVl8VFNYfFRYQXxUWFN8VFlBfGFkY3xhbmR8YXNsfGJjY3xiY3N8YmVxfGJpdHxibWl8Ym5lfGJwbHxicmt8YnZjfGJ2c3xjbGN8Y2xkfGNsaXxjbHZ8Y21wfGNweHxjcHl8ZGVjfGRleHxkZXl8ZW9yfGluY3xpbnh8aW55fGptcHxqc3J8bGRhfGxkeHxsZHl8bHNyfG5vcHxvcmF8cGhhfHBocHxwbGF8cGxwfHJvbHxyb3J8cnRpfHJ0c3xzYmN8c2VjfHNlZHxzZWl8c3RhfHN0eHxzdHl8dGF4fHRheXx0c3h8dHhhfHR4c3x0eWEpXGIvLGFsaWFzOiJrZXl3b3JkIn0sImhleC1udW1iZXIiOntwYXR0ZXJuOi8jP1wkW1xkYS1mXXsxLDR9XGIvaSxhbGlhczoibnVtYmVyIn0sImJpbmFyeS1udW1iZXIiOntwYXR0ZXJuOi8jPyVbMDFdK1xiLyxhbGlhczoibnVtYmVyIn0sImRlY2ltYWwtbnVtYmVyIjp7cGF0dGVybjovIz9cYlxkK1xiLyxhbGlhczoibnVtYmVyIn0scmVnaXN0ZXI6e3BhdHRlcm46L1xiW3h5YV1cYi9pLGFsaWFzOiJ2YXJpYWJsZSJ9LHB1bmN0dWF0aW9uOi9bKCksOl0vfX1yZXR1cm4gYmR9dmFyIHlkLHR4O2Z1bmN0aW9uIGYyKCl7aWYodHgpcmV0dXJuIHlkO3R4PTEseWQ9ZSxlLmRpc3BsYXlOYW1lPSJhc21hdG1lbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuYXNtYXRtZWw9e2NvbW1lbnQ6e3BhdHRlcm46LzsuKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyhbIidgXSkoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxjb25zdGFudDovXGIoPzpQT1JUW0EtWl18RERSW0EtWl18KD86RER8UClbQS1aXSg/OlxkfFswLTJdXGR8M1swMV0pKVxiLyxkaXJlY3RpdmU6e3BhdHRlcm46L1wuXHcrKD89ICkvLGFsaWFzOiJwcm9wZXJ0eSJ9LCJyLXJlZ2lzdGVyIjp7cGF0dGVybjovXGJyKD86XGR8WzEyXVxkfDNbMDFdKVxiLyxhbGlhczoidmFyaWFibGUifSwib3AtY29kZSI6e3BhdHRlcm46L1xiKD86QURDfEFERHxBRElXfEFORHxBTkRJfEFTUnxCQ0xSfEJMRHxCUkJDfEJSQlN8QlJDQ3xCUkNTfEJSRUFLfEJSRVF8QlJHRXxCUkhDfEJSSFN8QlJJRHxCUklFfEJSTE98QlJMVHxCUk1JfEJSTkV8QlJQTHxCUlNIfEJSVEN8QlJUU3xCUlZDfEJSVlN8QlNFVHxCU1R8Q0FMTHxDQkl8Q0JSfENMQ3xDTEh8Q0xJfENMTnxDTFJ8Q0xTfENMVHxDTFZ8Q0xafENPTXxDUHxDUEN8Q1BJfENQU0V8REVDfERFU3xFSUNBTEx8RUlKTVB8RUxQTXxFT1J8Rk1VTHxGTVVMU3xGTVVMU1V8SUNBTEx8SUpNUHxJTnxJTkN8Sk1QfExBQ3xMQVN8TEFUfExEfExEW0EtWmEtejAtOV18TFBNfExTTHxMU1J8TU9WfE1PVld8TVVMfE1VTFN8TVVMU1V8TkVHfE5PUHxPUnxPUkl8T1VUfFBPUHxQVVNIfFJDQUxMfFJFVHxSRVRJfFJKTVB8Uk9MfFJPUnxTQkN8U0JDSXxTQkl8U0JJQ3xTQklTfFNCSVd8U0JSfFNCUkN8U0JSU3xTRUN8U0VIfFNFSXxTRU58U0VSfFNFU3xTRVR8U0VWfFNFWnxTTEVFUHxTUE18U1R8U1RbQS1aMC05XXxTVUJ8U1VCSXxTV0FQfFRTVHxXRFJ8WENIfGFkY3xhZGR8YWRpd3xhbmR8YW5kaXxhc3J8YmNscnxibGR8YnJiY3xicmJzfGJyY2N8YnJjc3xicmVha3xicmVxfGJyZ2V8YnJoY3xicmhzfGJyaWR8YnJpZXxicmxvfGJybHR8YnJtaXxicm5lfGJycGx8YnJzaHxicnRjfGJydHN8YnJ2Y3xicnZzfGJzZXR8YnN0fGNhbGx8Y2JpfGNicnxjbGN8Y2xofGNsaXxjbG58Y2xyfGNsc3xjbHR8Y2x2fGNsenxjb218Y3B8Y3BjfGNwaXxjcHNlfGRlY3xkZXN8ZWljYWxsfGVpam1wfGVscG18ZW9yfGZtdWx8Zm11bHN8Zm11bHN1fGljYWxsfGlqbXB8aW58aW5jfGptcHxsYWN8bGFzfGxhdHxsZHxsZFthLXowLTldfGxwbXxsc2x8bHNyfG1vdnxtb3Z3fG11bHxtdWxzfG11bHN1fG5lZ3xub3B8b3J8b3JpfG91dHxwb3B8cHVzaHxyY2FsbHxyZXR8cmV0aXxyam1wfHJvbHxyb3J8c2JjfHNiY2l8c2JpfHNiaWN8c2Jpc3xzYml3fHNicnxzYnJjfHNicnN8c2VjfHNlaHxzZWl8c2VufHNlcnxzZXN8c2V0fHNldnxzZXp8c2xlZXB8c3BtfHN0fHN0W2EtekEtWjAtOV18c3VifHN1Yml8c3dhcHx0c3R8d2RyfHhjaClcYi8sYWxpYXM6ImtleXdvcmQifSwiaGV4LW51bWJlciI6e3BhdHRlcm46LyM/XCRbXGRhLWZdezIsNH1cYi9pLGFsaWFzOiJudW1iZXIifSwiYmluYXJ5LW51bWJlciI6e3BhdHRlcm46LyM/JVswMV0rXGIvLGFsaWFzOiJudW1iZXIifSwiZGVjaW1hbC1udW1iZXIiOntwYXR0ZXJuOi8jP1xiXGQrXGIvLGFsaWFzOiJudW1iZXIifSxyZWdpc3Rlcjp7cGF0dGVybjovXGJbYWN6bnZzaHRpeHldXGIvaSxhbGlhczoidmFyaWFibGUifSxvcGVyYXRvcjovPj49P3w8PD0/fCYmP3xcfFx8P3xbLSsqLyUmfF4hPTw+P109Py8scHVuY3R1YXRpb246L1soKSw6XS99fXJldHVybiB5ZH12YXIgRWQsbng7ZnVuY3Rpb24gJGwoKXtpZihueClyZXR1cm4gRWQ7bng9MSxFZD1lLGUuZGlzcGxheU5hbWU9ImNzaGFycCIsZS5hbGlhc2VzPVsiZG90bmV0IiwiY3MiXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXtmdW5jdGlvbiBpKE8sVil7cmV0dXJuIE8ucmVwbGFjZSgvPDwoXGQrKT4+L2csZnVuY3Rpb24odyx0ZSl7cmV0dXJuIig/OiIrVlsrdGVdKyIpIn0pfWZ1bmN0aW9uIGwoTyxWLHcpe3JldHVybiBSZWdFeHAoaShPLFYpLCIiKX1mdW5jdGlvbiB1KE8sVil7Zm9yKHZhciB3PTA7dzxWO3crKylPPU8ucmVwbGFjZSgvPDxzZWxmPj4vZyxmdW5jdGlvbigpe3JldHVybiIoPzoiK08rIikifSk7cmV0dXJuIE8ucmVwbGFjZSgvPDxzZWxmPj4vZywiW15cXHNcXFNdIil9dmFyIGM9e3R5cGU6ImJvb2wgYnl0ZSBjaGFyIGRlY2ltYWwgZG91YmxlIGR5bmFtaWMgZmxvYXQgaW50IGxvbmcgb2JqZWN0IHNieXRlIHNob3J0IHN0cmluZyB1aW50IHVsb25nIHVzaG9ydCB2YXIgdm9pZCIsdHlwZURlY2xhcmF0aW9uOiJjbGFzcyBlbnVtIGludGVyZmFjZSByZWNvcmQgc3RydWN0Iixjb250ZXh0dWFsOiJhZGQgYWxpYXMgYW5kIGFzY2VuZGluZyBhc3luYyBhd2FpdCBieSBkZXNjZW5kaW5nIGZyb20oPz1cXHMqKD86XFx3fCQpKSBnZXQgZ2xvYmFsIGdyb3VwIGludG8gaW5pdCg/PVxccyo7KSBqb2luIGxldCBuYW1lb2Ygbm90IG5vdG51bGwgb24gb3Igb3JkZXJieSBwYXJ0aWFsIHJlbW92ZSBzZWxlY3Qgc2V0IHVubWFuYWdlZCB2YWx1ZSB3aGVuIHdoZXJlIHdpdGgoPz1cXHMqeykiLG90aGVyOiJhYnN0cmFjdCBhcyBiYXNlIGJyZWFrIGNhc2UgY2F0Y2ggY2hlY2tlZCBjb25zdCBjb250aW51ZSBkZWZhdWx0IGRlbGVnYXRlIGRvIGVsc2UgZXZlbnQgZXhwbGljaXQgZXh0ZXJuIGZpbmFsbHkgZml4ZWQgZm9yIGZvcmVhY2ggZ290byBpZiBpbXBsaWNpdCBpbiBpbnRlcm5hbCBpcyBsb2NrIG5hbWVzcGFjZSBuZXcgbnVsbCBvcGVyYXRvciBvdXQgb3ZlcnJpZGUgcGFyYW1zIHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyByZWFkb25seSByZWYgcmV0dXJuIHNlYWxlZCBzaXplb2Ygc3RhY2thbGxvYyBzdGF0aWMgc3dpdGNoIHRoaXMgdGhyb3cgdHJ5IHR5cGVvZiB1bmNoZWNrZWQgdW5zYWZlIHVzaW5nIHZpcnR1YWwgdm9sYXRpbGUgd2hpbGUgeWllbGQifTtmdW5jdGlvbiBkKE8pe3JldHVybiJcXGIoPzoiK08udHJpbSgpLnJlcGxhY2UoLyAvZywifCIpKyIpXFxiIn12YXIgZj1kKGMudHlwZURlY2xhcmF0aW9uKSxtPVJlZ0V4cChkKGMudHlwZSsiICIrYy50eXBlRGVjbGFyYXRpb24rIiAiK2MuY29udGV4dHVhbCsiICIrYy5vdGhlcikpLGI9ZChjLnR5cGVEZWNsYXJhdGlvbisiICIrYy5jb250ZXh0dWFsKyIgIitjLm90aGVyKSxoPWQoYy50eXBlKyIgIitjLnR5cGVEZWNsYXJhdGlvbisiICIrYy5vdGhlciksUz11KC88KD86W148Pjs9K1wtKi8lJnxeXXw8PHNlbGY+PikqPi8uc291cmNlLDIpLEU9dSgvXCgoPzpbXigpXXw8PHNlbGY+PikqXCkvLnNvdXJjZSwyKSxfPS9AP1xiW0EtWmEtel9dXHcqXGIvLnNvdXJjZSxUPWkoLzw8MD4+KD86XHMqPDwxPj4pPy8uc291cmNlLFtfLFNdKSxDPWkoLyg/ITw8MD4+KTw8MT4+KD86XHMqXC5ccyo8PDE+PikqLy5zb3VyY2UsW2IsVF0pLHg9L1xbXHMqKD86LFxzKikqXF0vLnNvdXJjZSxOPWkoLzw8MD4+KD86XHMqKD86XD9ccyopPzw8MT4+KSooPzpccypcPyk/Ly5zb3VyY2UsW0MseF0pLGs9aSgvW14sKCk8PltcXTs9K1wtKi8lJnxeXXw8PDA+Pnw8PDE+Pnw8PDI+Pi8uc291cmNlLFtTLEUseF0pLEw9aSgvXCg8PDA+PisoPzosPDwwPj4rKStcKS8uc291cmNlLFtrXSksRj1pKC8oPzo8PDA+Pnw8PDE+PikoPzpccyooPzpcP1xzKik/PDwyPj4pKig/OlxzKlw/KT8vLnNvdXJjZSxbTCxDLHhdKSxSPXtrZXl3b3JkOm0scHVuY3R1YXRpb246L1s8PigpPywuOltcXV0vfSxNPS8nKD86W15cclxuJ1xcXXxcXC58XFxbVXV4XVtcZGEtZkEtRl17MSw4fSknLy5zb3VyY2UsWT0vIig/OlxcLnxbXlxcIlxyXG5dKSoiLy5zb3VyY2Usej0vQCIoPzoiInxcXFtcc1xTXXxbXlxcIl0pKiIoPyEiKS8uc291cmNlO2EubGFuZ3VhZ2VzLmNzaGFycD1hLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7c3RyaW5nOlt7cGF0dGVybjpsKC8oXnxbXiRcXF0pPDwwPj4vLnNvdXJjZSxbel0pLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjpsKC8oXnxbXkAkXFxdKTw8MD4+Ly5zb3VyY2UsW1ldKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLCJjbGFzcy1uYW1lIjpbe3BhdHRlcm46bCgvKFxidXNpbmdccytzdGF0aWNccyspPDwwPj4oPz1ccyo7KS8uc291cmNlLFtDXSksbG9va2JlaGluZDohMCxpbnNpZGU6Un0se3BhdHRlcm46bCgvKFxidXNpbmdccys8PDA+PlxzKj1ccyopPDwxPj4oPz1ccyo7KS8uc291cmNlLFtfLEZdKSxsb29rYmVoaW5kOiEwLGluc2lkZTpSfSx7cGF0dGVybjpsKC8oXGJ1c2luZ1xzKyk8PDA+Pig/PVxzKj0pLy5zb3VyY2UsW19dKSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjpsKC8oXGI8PDA+PlxzKyk8PDE+Pi8uc291cmNlLFtmLFRdKSxsb29rYmVoaW5kOiEwLGluc2lkZTpSfSx7cGF0dGVybjpsKC8oXGJjYXRjaFxzKlwoXHMqKTw8MD4+Ly5zb3VyY2UsW0NdKSxsb29rYmVoaW5kOiEwLGluc2lkZTpSfSx7cGF0dGVybjpsKC8oXGJ3aGVyZVxzKyk8PDA+Pi8uc291cmNlLFtfXSksbG9va2JlaGluZDohMH0se3BhdHRlcm46bCgvKFxiKD86aXMoPzpccytub3QpP3xhcylccyspPDwwPj4vLnNvdXJjZSxbTl0pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOlJ9LHtwYXR0ZXJuOmwoL1xiPDwwPj4oPz1ccysoPyE8PDE+Pnx3aXRoXHMqXHspPDwyPj4oPzpccypbPSw7OnspXF1dfFxzKyg/OmlufHdoZW4pXGIpKS8uc291cmNlLFtGLGgsX10pLGluc2lkZTpSfV0sa2V5d29yZDptLG51bWJlcjovKD86XGIwKD86eFtcZGEtZl9dKltcZGEtZl18YlswMV9dKlswMV0pfCg/OlxCXC5cZCsoPzpfK1xkKykqfFxiXGQrKD86XytcZCspKig/OlwuXGQrKD86XytcZCspKik/KSg/OmVbLStdP1xkKyg/Ol8rXGQrKSopPykoPzpbZGZsbXVdfGx1fHVsKT9cYi9pLG9wZXJhdG9yOi8+Pj0/fDw8PT98Wy09XT58KFstKyZ8XSlcMXx+fFw/XD89P3xbLSsqLyUmfF4hPTw+XT0/LyxwdW5jdHVhdGlvbjovXD9cLj98Ojp8W3t9W1xdOygpLC46XS99KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNzaGFycCIsIm51bWJlciIse3JhbmdlOntwYXR0ZXJuOi9cLlwuLyxhbGlhczoib3BlcmF0b3IifX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY3NoYXJwIiwicHVuY3R1YXRpb24iLHsibmFtZWQtcGFyYW1ldGVyIjp7cGF0dGVybjpsKC8oWygsXVxzKik8PDA+Pig/PVxzKjopLy5zb3VyY2UsW19dKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc2hhcnAiLCJjbGFzcy1uYW1lIix7bmFtZXNwYWNlOntwYXR0ZXJuOmwoLyhcYig/Om5hbWVzcGFjZXx1c2luZylccyspPDwwPj4oPzpccypcLlxzKjw8MD4+KSooPz1ccypbO3tdKS8uc291cmNlLFtfXSksbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSwidHlwZS1leHByZXNzaW9uIjp7cGF0dGVybjpsKC8oXGIoPzpkZWZhdWx0fHNpemVvZnx0eXBlb2YpXHMqXChccyooPyFccykpKD86W14oKVxzXXxccyg/IVxzKXw8PDA+PikqKD89XHMqXCkpLy5zb3VyY2UsW0VdKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJjbGFzcy1uYW1lIixpbnNpZGU6Un0sInJldHVybi10eXBlIjp7cGF0dGVybjpsKC88PDA+Pig/PVxzKyg/Ojw8MT4+XHMqKD86PT58Wyh7XXxcLlxzKnRoaXNccypcWyl8dGhpc1xzKlxbKSkvLnNvdXJjZSxbRixDXSksaW5zaWRlOlIsYWxpYXM6ImNsYXNzLW5hbWUifSwiY29uc3RydWN0b3ItaW52b2NhdGlvbiI6e3BhdHRlcm46bCgvKFxibmV3XHMrKTw8MD4+KD89XHMqW1soe10pLy5zb3VyY2UsW0ZdKSxsb29rYmVoaW5kOiEwLGluc2lkZTpSLGFsaWFzOiJjbGFzcy1uYW1lIn0sImdlbmVyaWMtbWV0aG9kIjp7cGF0dGVybjpsKC88PDA+PlxzKjw8MT4+KD89XHMqXCgpLy5zb3VyY2UsW18sU10pLGluc2lkZTp7ZnVuY3Rpb246bCgvXjw8MD4+Ly5zb3VyY2UsW19dKSxnZW5lcmljOntwYXR0ZXJuOlJlZ0V4cChTKSxhbGlhczoiY2xhc3MtbmFtZSIsaW5zaWRlOlJ9fX0sInR5cGUtbGlzdCI6e3BhdHRlcm46bCgvXGIoKD86PDwwPj5ccys8PDE+PnxyZWNvcmRccys8PDE+PlxzKjw8NT4+fHdoZXJlXHMrPDwyPj4pXHMqOlxzKikoPzo8PDM+Pnw8PDQ+Pnw8PDE+PlxzKjw8NT4+fDw8Nj4+KSg/OlxzKixccyooPzo8PDM+Pnw8PDQ+Pnw8PDY+PikpKig/PVxzKig/OndoZXJlfFt7O118PT58JCkpLy5zb3VyY2UsW2YsVCxfLEYsbS5zb3VyY2UsRSwvXGJuZXdccypcKFxzKlwpLy5zb3VyY2VdKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7InJlY29yZC1hcmd1bWVudHMiOntwYXR0ZXJuOmwoLyheKD8hbmV3XHMqXCgpPDwwPj5ccyopPDwxPj4vLnNvdXJjZSxbVCxFXSksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOmEubGFuZ3VhZ2VzLmNzaGFycH0sa2V5d29yZDptLCJjbGFzcy1uYW1lIjp7cGF0dGVybjpSZWdFeHAoRiksZ3JlZWR5OiEwLGluc2lkZTpSfSxwdW5jdHVhdGlvbjovWywoKV0vfX0scHJlcHJvY2Vzc29yOntwYXR0ZXJuOi8oXltcdCBdKikjLiovbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSIsaW5zaWRlOntkaXJlY3RpdmU6e3BhdHRlcm46LygjKVxiKD86ZGVmaW5lfGVsaWZ8ZWxzZXxlbmRpZnxlbmRyZWdpb258ZXJyb3J8aWZ8bGluZXxudWxsYWJsZXxwcmFnbWF8cmVnaW9ufHVuZGVmfHdhcm5pbmcpXGIvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifX19fSk7dmFyIFU9WSsifCIrTSwkPWkoL1wvKD8hWyovXSl8XC9cL1teXHJcbl0qW1xyXG5dfFwvXCooPzpbXipdfFwqKD8hXC8pKSpcKlwvfDw8MD4+Ly5zb3VyY2UsW1VdKSxKPXUoaSgvW14iJy8oKV18PDwwPj58XCg8PHNlbGY+PipcKS8uc291cmNlLFskXSksMiksb2U9L1xiKD86YXNzZW1ibHl8ZXZlbnR8ZmllbGR8bWV0aG9kfG1vZHVsZXxwYXJhbXxwcm9wZXJ0eXxyZXR1cm58dHlwZSlcYi8uc291cmNlLGllPWkoLzw8MD4+KD86XHMqXCg8PDE+PipcKSk/Ly5zb3VyY2UsW0MsSl0pO2EubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY3NoYXJwIiwiY2xhc3MtbmFtZSIse2F0dHJpYnV0ZTp7cGF0dGVybjpsKC8oKD86XnxbXlxzXHc+KT9dKVxzKlxbXHMqKSg/Ojw8MD4+XHMqOlxzKik/PDwxPj4oPzpccyosXHMqPDwxPj4pKig/PVxzKlxdKS8uc291cmNlLFtvZSxpZV0pLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7dGFyZ2V0OntwYXR0ZXJuOmwoL148PDA+Pig/PVxzKjopLy5zb3VyY2UsW29lXSksYWxpYXM6ImtleXdvcmQifSwiYXR0cmlidXRlLWFyZ3VtZW50cyI6e3BhdHRlcm46bCgvXCg8PDA+PipcKS8uc291cmNlLFtKXSksaW5zaWRlOmEubGFuZ3VhZ2VzLmNzaGFycH0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOlJlZ0V4cChDKSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSxwdW5jdHVhdGlvbjovWzosXS99fX0pO3ZhciBsZT0vOltefVxyXG5dKy8uc291cmNlLEc9dShpKC9bXiInLygpXXw8PDA+PnxcKDw8c2VsZj4+KlwpLy5zb3VyY2UsWyRdKSwyKSxlZT1pKC9ceyg/IVx7KSg/Oig/IVt9Ol0pPDwwPj4pKjw8MT4+P1x9Ly5zb3VyY2UsW0csbGVdKSxuZT11KGkoL1teIicvKCldfFwvKD8hXCopfFwvXCooPzpbXipdfFwqKD8hXC8pKSpcKlwvfDw8MD4+fFwoPDxzZWxmPj4qXCkvLnNvdXJjZSxbVV0pLDIpLGZlPWkoL1x7KD8hXHspKD86KD8hW306XSk8PDA+PikqPDwxPj4/XH0vLnNvdXJjZSxbbmUsbGVdKTtmdW5jdGlvbiBJKE8sVil7cmV0dXJue2ludGVycG9sYXRpb246e3BhdHRlcm46bCgvKCg/Ol58W157XSkoPzpce1x7KSopPDwwPj4vLnNvdXJjZSxbT10pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiZm9ybWF0LXN0cmluZyI6e3BhdHRlcm46bCgvKF5ceyg/Oig/IVt9Ol0pPDwwPj4pKik8PDE+Pig/PVx9JCkvLnNvdXJjZSxbVixsZV0pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXjovfX0scHVuY3R1YXRpb246L15ce3xcfSQvLGV4cHJlc3Npb246e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJsYW5ndWFnZS1jc2hhcnAiLGluc2lkZTphLmxhbmd1YWdlcy5jc2hhcnB9fX0sc3RyaW5nOi9bXHNcU10rL319YS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc2hhcnAiLCJzdHJpbmciLHsiaW50ZXJwb2xhdGlvbi1zdHJpbmciOlt7cGF0dGVybjpsKC8oXnxbXlxcXSkoPzpcJEB8QFwkKSIoPzoiInxcXFtcc1xTXXxce1x7fDw8MD4+fFteXFx7Il0pKiIvLnNvdXJjZSxbZWVdKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6SShlZSxHKX0se3BhdHRlcm46bCgvKF58W15AXFxdKVwkIig/OlxcLnxce1x7fDw8MD4+fFteXFwie10pKiIvLnNvdXJjZSxbZmVdKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6SShmZSxuZSl9XSxjaGFyOntwYXR0ZXJuOlJlZ0V4cChNKSxncmVlZHk6ITB9fSksYS5sYW5ndWFnZXMuZG90bmV0PWEubGFuZ3VhZ2VzLmNzPWEubGFuZ3VhZ2VzLmNzaGFycH0pKG4pfXJldHVybiBFZH12YXIgU2Qscng7ZnVuY3Rpb24gZzIoKXtpZihyeClyZXR1cm4gU2Q7cng9MTt2YXIgZT0kbCgpO1NkPW4sbi5kaXNwbGF5TmFtZT0iYXNwbmV0IixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLGEubGFuZ3VhZ2VzLmFzcG5ldD1hLmxhbmd1YWdlcy5leHRlbmQoIm1hcmt1cCIseyJwYWdlLWRpcmVjdGl2ZSI6e3BhdHRlcm46LzwlXHMqQC4qJT4vLGFsaWFzOiJ0YWciLGluc2lkZTp7InBhZ2UtZGlyZWN0aXZlIjp7cGF0dGVybjovPCVccypAXHMqKD86QXNzZW1ibHl8Q29udHJvbHxJbXBsZW1lbnRzfEltcG9ydHxNYXN0ZXIoPzpUeXBlKT98T3V0cHV0Q2FjaGV8UGFnZXxQcmV2aW91c1BhZ2VUeXBlfFJlZmVyZW5jZXxSZWdpc3Rlcik/fCU+L2ksYWxpYXM6InRhZyJ9LHJlc3Q6YS5sYW5ndWFnZXMubWFya3VwLnRhZy5pbnNpZGV9fSxkaXJlY3RpdmU6e3BhdHRlcm46LzwlLiolPi8sYWxpYXM6InRhZyIsaW5zaWRlOntkaXJlY3RpdmU6e3BhdHRlcm46LzwlXHMqP1skPSUjOl17MCwyfXwlPi8sYWxpYXM6InRhZyJ9LHJlc3Q6YS5sYW5ndWFnZXMuY3NoYXJwfX19KSxhLmxhbmd1YWdlcy5hc3BuZXQudGFnLnBhdHRlcm49LzwoPyElKVwvP1teXHM+XC9dKyg/OlxzK1teXHM+XC89XSsoPzo9KD86KCJ8JykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDF8W15ccyciPj1dKykpPykqXHMqXC8/Pi8sYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJpbnNpZGUiLCJwdW5jdHVhdGlvbiIse2RpcmVjdGl2ZTphLmxhbmd1YWdlcy5hc3BuZXQuZGlyZWN0aXZlfSxhLmxhbmd1YWdlcy5hc3BuZXQudGFnLmluc2lkZVsiYXR0ci12YWx1ZSJdKSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImFzcG5ldCIsImNvbW1lbnQiLHsiYXNwLWNvbW1lbnQiOntwYXR0ZXJuOi88JS0tW1xzXFNdKj8tLSU+LyxhbGlhczpbImFzcCIsImNvbW1lbnQiXX19KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImFzcG5ldCIsYS5sYW5ndWFnZXMuamF2YXNjcmlwdD8ic2NyaXB0IjoidGFnIix7ImFzcC1zY3JpcHQiOntwYXR0ZXJuOi8oPHNjcmlwdCg/PS4qcnVuYXQ9WyciXT9zZXJ2ZXJcYilbXj5dKj4pW1xzXFNdKj8oPz08XC9zY3JpcHQ+KS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6WyJhc3AiLCJzY3JpcHQiXSxpbnNpZGU6YS5sYW5ndWFnZXMuY3NoYXJwfHx7fX19KX1yZXR1cm4gU2R9dmFyIHZkLGF4O2Z1bmN0aW9uIG0yKCl7aWYoYXgpcmV0dXJuIHZkO2F4PTEsdmQ9ZSxlLmRpc3BsYXlOYW1lPSJhdXRvaG90a2V5IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5hdXRvaG90a2V5PXtjb21tZW50Olt7cGF0dGVybjovKF58XHMpOy4qLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF5bXHQgXSopXC9cKig/OltcclxuXSg/IVsgXHRdKlwqXC8pfFteXHJcbl0pKig/OltcclxuXVsgXHRdKlwqXC8pPy9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sdGFnOntwYXR0ZXJuOi9eKFsgXHRdKilbXlxzLGAiOl0rKD89OlsgXHRdKiQpL20sbG9va2JlaGluZDohMH0sc3RyaW5nOi8iKD86W14iXG5ccl18IiIpKiIvLHZhcmlhYmxlOi8lXHcrJS8sbnVtYmVyOi9cYjB4W1xkQS1GYS1mXStcYnwoPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpbRWVdLT9cZCspPy8sb3BlcmF0b3I6L1w/fFwvXC8/PT98Oj18XHxbPXxdP3wmWz0mXT98XCtbPStdP3wtWz0tXT98XCpbPSpdP3w8KD86PD0/fD58PSk/fD4+Pz0/fFsuXiE9fl09P3xcYig/OkFORHxOT1R8T1IpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sc2VsZWN0b3I6L1xiKD86QXV0b1RyaW18QmxvY2tJbnB1dHxCcmVha3xDbGlja3xDbGlwV2FpdHxDb250aW51ZXxDb250cm9sfENvbnRyb2xDbGlja3xDb250cm9sRm9jdXN8Q29udHJvbEdldHxDb250cm9sR2V0Rm9jdXN8Q29udHJvbEdldFBvc3xDb250cm9sR2V0VGV4dHxDb250cm9sTW92ZXxDb250cm9sU2VuZHxDb250cm9sU2VuZFJhd3xDb250cm9sU2V0VGV4dHxDb29yZE1vZGV8Q3JpdGljYWx8RGV0ZWN0SGlkZGVuVGV4dHxEZXRlY3RIaWRkZW5XaW5kb3dzfERyaXZlfERyaXZlR2V0fERyaXZlU3BhY2VGcmVlfEVudkFkZHxFbnZEaXZ8RW52R2V0fEVudk11bHR8RW52U2V0fEVudlN1YnxFbnZVcGRhdGV8RXhpdHxFeGl0QXBwfEZpbGVBcHBlbmR8RmlsZUNvcHl8RmlsZUNvcHlEaXJ8RmlsZUNyZWF0ZURpcnxGaWxlQ3JlYXRlU2hvcnRjdXR8RmlsZURlbGV0ZXxGaWxlRW5jb2Rpbmd8RmlsZUdldEF0dHJpYnxGaWxlR2V0U2hvcnRjdXR8RmlsZUdldFNpemV8RmlsZUdldFRpbWV8RmlsZUdldFZlcnNpb258RmlsZUluc3RhbGx8RmlsZU1vdmV8RmlsZU1vdmVEaXJ8RmlsZVJlYWR8RmlsZVJlYWRMaW5lfEZpbGVSZWN5Y2xlfEZpbGVSZWN5Y2xlRW1wdHl8RmlsZVJlbW92ZURpcnxGaWxlU2VsZWN0RmlsZXxGaWxlU2VsZWN0Rm9sZGVyfEZpbGVTZXRBdHRyaWJ8RmlsZVNldFRpbWV8Rm9ybWF0VGltZXxHZXRLZXlTdGF0ZXxHb3N1YnxHb3RvfEdyb3VwQWN0aXZhdGV8R3JvdXBBZGR8R3JvdXBDbG9zZXxHcm91cERlYWN0aXZhdGV8R3VpfEd1aUNvbnRyb2x8R3VpQ29udHJvbEdldHxIb3RrZXl8SW1hZ2VTZWFyY2h8SW5pRGVsZXRlfEluaVJlYWR8SW5pV3JpdGV8SW5wdXR8SW5wdXRCb3h8S2V5V2FpdHxMaXN0SG90a2V5c3xMaXN0TGluZXN8TGlzdFZhcnN8TG9vcHxNZW51fE1vdXNlQ2xpY2t8TW91c2VDbGlja0RyYWd8TW91c2VHZXRQb3N8TW91c2VNb3ZlfE1zZ0JveHxPbkV4aXR8T3V0cHV0RGVidWd8UGF1c2V8UGl4ZWxHZXRDb2xvcnxQaXhlbFNlYXJjaHxQb3N0TWVzc2FnZXxQcm9jZXNzfFByb2dyZXNzfFJhbmRvbXxSZWdEZWxldGV8UmVnUmVhZHxSZWdXcml0ZXxSZWxvYWR8UmVwZWF0fFJldHVybnxSdW58UnVuQXN8UnVuV2FpdHxTZW5kfFNlbmRFdmVudHxTZW5kSW5wdXR8U2VuZE1lc3NhZ2V8U2VuZE1vZGV8U2VuZFBsYXl8U2VuZFJhd3xTZXRCYXRjaExpbmVzfFNldENhcHNsb2NrU3RhdGV8U2V0Q29udHJvbERlbGF5fFNldERlZmF1bHRNb3VzZVNwZWVkfFNldEVudnxTZXRGb3JtYXR8U2V0S2V5RGVsYXl8U2V0TW91c2VEZWxheXxTZXROdW1sb2NrU3RhdGV8U2V0UmVnVmlld3xTZXRTY3JvbGxMb2NrU3RhdGV8U2V0U3RvcmVDYXBzbG9ja01vZGV8U2V0VGltZXJ8U2V0VGl0bGVNYXRjaE1vZGV8U2V0V2luRGVsYXl8U2V0V29ya2luZ0RpcnxTaHV0ZG93bnxTbGVlcHxTb3J0fFNvdW5kQmVlcHxTb3VuZEdldHxTb3VuZEdldFdhdmVWb2x1bWV8U291bmRQbGF5fFNvdW5kU2V0fFNvdW5kU2V0V2F2ZVZvbHVtZXxTcGxhc2hJbWFnZXxTcGxhc2hUZXh0T2ZmfFNwbGFzaFRleHRPbnxTcGxpdFBhdGh8U3RhdHVzQmFyR2V0VGV4dHxTdGF0dXNCYXJXYWl0fFN0cmluZ0Nhc2VTZW5zZXxTdHJpbmdHZXRQb3N8U3RyaW5nTGVmdHxTdHJpbmdMZW58U3RyaW5nTG93ZXJ8U3RyaW5nTWlkfFN0cmluZ1JlcGxhY2V8U3RyaW5nUmlnaHR8U3RyaW5nU3BsaXR8U3RyaW5nVHJpbUxlZnR8U3RyaW5nVHJpbVJpZ2h0fFN0cmluZ1VwcGVyfFN1c3BlbmR8U3lzR2V0fFRocmVhZHxUb29sVGlwfFRyYW5zZm9ybXxUcmF5VGlwfFVSTERvd25sb2FkVG9GaWxlfFdpbkFjdGl2YXRlfFdpbkFjdGl2YXRlQm90dG9tfFdpbkNsb3NlfFdpbkdldHxXaW5HZXRBY3RpdmVTdGF0c3xXaW5HZXRBY3RpdmVUaXRsZXxXaW5HZXRDbGFzc3xXaW5HZXRQb3N8V2luR2V0VGV4dHxXaW5HZXRUaXRsZXxXaW5IaWRlfFdpbktpbGx8V2luTWF4aW1pemV8V2luTWVudVNlbGVjdEl0ZW18V2luTWluaW1pemV8V2luTWluaW1pemVBbGx8V2luTWluaW1pemVBbGxVbmRvfFdpbk1vdmV8V2luUmVzdG9yZXxXaW5TZXR8V2luU2V0VGl0bGV8V2luU2hvd3xXaW5XYWl0fFdpbldhaXRBY3RpdmV8V2luV2FpdENsb3NlfFdpbldhaXROb3RBY3RpdmUpXGIvaSxjb25zdGFudDovXGIoPzphX2Foa3BhdGh8YV9haGt2ZXJzaW9ufGFfYXBwZGF0YXxhX2FwcGRhdGFjb21tb258YV9hdXRvdHJpbXxhX2JhdGNobGluZXN8YV9jYXJldHh8YV9jYXJldHl8YV9jb21wdXRlcm5hbWV8YV9jb250cm9sZGVsYXl8YV9jdXJzb3J8YV9kZHxhX2RkZHxhX2RkZGR8YV9kZWZhdWx0bW91c2VzcGVlZHxhX2Rlc2t0b3B8YV9kZXNrdG9wY29tbW9ufGFfZGV0ZWN0aGlkZGVudGV4dHxhX2RldGVjdGhpZGRlbndpbmRvd3N8YV9lbmRjaGFyfGFfZXZlbnRpbmZvfGFfZXhpdHJlYXNvbnxhX2ZpbGVlbmNvZGluZ3xhX2Zvcm1hdGZsb2F0fGFfZm9ybWF0aW50ZWdlcnxhX2d1aXxhX2d1aWNvbnRyb2x8YV9ndWljb250cm9sZXZlbnR8YV9ndWlldmVudHxhX2d1aWhlaWdodHxhX2d1aXdpZHRofGFfZ3VpeHxhX2d1aXl8YV9ob3VyfGFfaWNvbmZpbGV8YV9pY29uaGlkZGVufGFfaWNvbm51bWJlcnxhX2ljb250aXB8YV9pbmRleHxhX2lwYWRkcmVzczF8YV9pcGFkZHJlc3MyfGFfaXBhZGRyZXNzM3xhX2lwYWRkcmVzczR8YV9pczY0Yml0b3N8YV9pc2FkbWlufGFfaXNjb21waWxlZHxhX2lzY3JpdGljYWx8YV9pc3BhdXNlZHxhX2lzc3VzcGVuZGVkfGFfaXN1bmljb2RlfGFfa2V5ZGVsYXl8YV9sYW5ndWFnZXxhX2xhc3RlcnJvcnxhX2xpbmVmaWxlfGFfbGluZW51bWJlcnxhX2xvb3BmaWVsZHxhX2xvb3BmaWxlYXR0cmlifGFfbG9vcGZpbGVkaXJ8YV9sb29wZmlsZWV4dHxhX2xvb3BmaWxlZnVsbHBhdGh8YV9sb29wZmlsZWxvbmdwYXRofGFfbG9vcGZpbGVuYW1lfGFfbG9vcGZpbGVzaG9ydG5hbWV8YV9sb29wZmlsZXNob3J0cGF0aHxhX2xvb3BmaWxlc2l6ZXxhX2xvb3BmaWxlc2l6ZWtifGFfbG9vcGZpbGVzaXplbWJ8YV9sb29wZmlsZXRpbWVhY2Nlc3NlZHxhX2xvb3BmaWxldGltZWNyZWF0ZWR8YV9sb29wZmlsZXRpbWVtb2RpZmllZHxhX2xvb3ByZWFkbGluZXxhX2xvb3ByZWdrZXl8YV9sb29wcmVnbmFtZXxhX2xvb3ByZWdzdWJrZXl8YV9sb29wcmVndGltZW1vZGlmaWVkfGFfbG9vcHJlZ3R5cGV8YV9tZGF5fGFfbWlufGFfbW18YV9tbW18YV9tbW1tfGFfbW9ufGFfbW91c2VkZWxheXxhX21zZWN8YV9teWRvY3VtZW50c3xhX25vd3xhX25vd3V0Y3xhX251bWJhdGNobGluZXN8YV9vc3R5cGV8YV9vc3ZlcnNpb258YV9wcmlvcmhvdGtleXxhX3ByaW9ya2V5fGFfcHJvZ3JhbWZpbGVzfGFfcHJvZ3JhbXN8YV9wcm9ncmFtc2NvbW1vbnxhX3B0cnNpemV8YV9yZWd2aWV3fGFfc2NyZWVuZHBpfGFfc2NyZWVuaGVpZ2h0fGFfc2NyZWVud2lkdGh8YV9zY3JpcHRkaXJ8YV9zY3JpcHRmdWxscGF0aHxhX3NjcmlwdGh3bmR8YV9zY3JpcHRuYW1lfGFfc2VjfGFfc3BhY2V8YV9zdGFydG1lbnV8YV9zdGFydG1lbnVjb21tb258YV9zdGFydHVwfGFfc3RhcnR1cGNvbW1vbnxhX3N0cmluZ2Nhc2VzZW5zZXxhX3RhYnxhX3RlbXB8YV90aGlzZnVuY3xhX3RoaXNob3RrZXl8YV90aGlzbGFiZWx8YV90aGlzbWVudXxhX3RoaXNtZW51aXRlbXxhX3RoaXNtZW51aXRlbXBvc3xhX3RpY2tjb3VudHxhX3RpbWVpZGxlfGFfdGltZWlkbGVwaHlzaWNhbHxhX3RpbWVzaW5jZXByaW9yaG90a2V5fGFfdGltZXNpbmNldGhpc2hvdGtleXxhX3RpdGxlbWF0Y2htb2RlfGFfdGl0bGVtYXRjaG1vZGVzcGVlZHxhX3VzZXJuYW1lfGFfd2RheXxhX3dpbmRlbGF5fGFfd2luZGlyfGFfd29ya2luZ2RpcnxhX3lkYXl8YV95ZWFyfGFfeXdlZWt8YV95eXl5fGNsaXBib2FyZHxjbGlwYm9hcmRhbGx8Y29tc3BlY3xlcnJvcmxldmVsfHByb2dyYW1maWxlcylcYi9pLGJ1aWx0aW46L1xiKD86YWJzfGFjb3N8YXNjfGFzaW58YXRhbnxjZWlsfGNocnxjbGFzc3xjb21vYmphY3RpdmV8Y29tb2JqYXJyYXl8Y29tb2JqY29ubmVjdHxjb21vYmpjcmVhdGV8Y29tb2JqZXJyb3J8Y29tb2JqZmxhZ3N8Y29tb2JqZ2V0fGNvbW9ianF1ZXJ5fGNvbW9ianR5cGV8Y29tb2JqdmFsdWV8Y29zfGRsbGNhbGx8ZXhwfGZpbGVleGlzdHxGaWxlb3BlbnxmbG9vcnxmb3JtYXR8aWxfYWRkfGlsX2NyZWF0ZXxpbF9kZXN0cm95fGluc3RyfGlzZnVuY3xpc2xhYmVsfElzT2JqZWN0fGxufGxvZ3xsdHJpbXxsdl9hZGR8bHZfZGVsZXRlfGx2X2RlbGV0ZWNvbHxsdl9nZXRjb3VudHxsdl9nZXRuZXh0fGx2X2dldHRleHR8bHZfaW5zZXJ0fGx2X2luc2VydGNvbHxsdl9tb2RpZnl8bHZfbW9kaWZ5Y29sfGx2X3NldGltYWdlbGlzdHxtb2R8bnVtZ2V0fG51bXB1dHxvbm1lc3NhZ2V8cmVnZXhtYXRjaHxyZWdleHJlcGxhY2V8cmVnaXN0ZXJjYWxsYmFja3xyb3VuZHxydHJpbXxzYl9zZXRpY29ufHNiX3NldHBhcnRzfHNiX3NldHRleHR8c2lufHNxcnR8c3RybGVufHN0cnJlcGxhY2V8c3Ryc3BsaXR8c3Vic3RyfHRhbnx0dl9hZGR8dHZfZGVsZXRlfHR2X2dldHx0dl9nZXRjaGlsZHx0dl9nZXRjb3VudHx0dl9nZXRuZXh0fHR2X2dldHBhcmVudHx0dl9nZXRwcmV2fHR2X2dldHNlbGVjdGlvbnx0dl9nZXR0ZXh0fHR2X21vZGlmeXx2YXJzZXRjYXBhY2l0eXx3aW5hY3RpdmV8d2luZXhpc3R8X19DYWxsfF9fR2V0fF9fTmV3fF9fU2V0KVxiL2ksc3ltYm9sOi9cYig/OmFsdHxhbHRkb3dufGFsdHVwfGFwcHNrZXl8YmFja3NwYWNlfGJyb3dzZXJfYmFja3xicm93c2VyX2Zhdm9yaXRlc3xicm93c2VyX2ZvcndhcmR8YnJvd3Nlcl9ob21lfGJyb3dzZXJfcmVmcmVzaHxicm93c2VyX3NlYXJjaHxicm93c2VyX3N0b3B8YnN8Y2Fwc2xvY2t8Y3RybHxjdHJsYnJlYWt8Y3RybGRvd258Y3RybHVwfGRlbHxkZWxldGV8ZG93bnxlbmR8ZW50ZXJ8ZXNjfGVzY2FwZXxmMXxmMTB8ZjExfGYxMnxmMTN8ZjE0fGYxNXxmMTZ8ZjE3fGYxOHxmMTl8ZjJ8ZjIwfGYyMXxmMjJ8ZjIzfGYyNHxmM3xmNHxmNXxmNnxmN3xmOHxmOXxob21lfGluc3xpbnNlcnR8am95MXxqb3kxMHxqb3kxMXxqb3kxMnxqb3kxM3xqb3kxNHxqb3kxNXxqb3kxNnxqb3kxN3xqb3kxOHxqb3kxOXxqb3kyfGpveTIwfGpveTIxfGpveTIyfGpveTIzfGpveTI0fGpveTI1fGpveTI2fGpveTI3fGpveTI4fGpveTI5fGpveTN8am95MzB8am95MzF8am95MzJ8am95NHxqb3k1fGpveTZ8am95N3xqb3k4fGpveTl8am95YXhlc3xqb3lidXR0b25zfGpveWluZm98am95bmFtZXxqb3lwb3Z8am95cnxqb3l1fGpveXZ8am95eHxqb3l5fGpveXp8bGFsdHxsYXVuY2hfYXBwMXxsYXVuY2hfYXBwMnxsYXVuY2hfbWFpbHxsYXVuY2hfbWVkaWF8bGJ1dHRvbnxsY29udHJvbHxsY3RybHxsZWZ0fGxzaGlmdHxsd2lufGx3aW5kb3dufGx3aW51cHxtYnV0dG9ufG1lZGlhX25leHR8bWVkaWFfcGxheV9wYXVzZXxtZWRpYV9wcmV2fG1lZGlhX3N0b3B8bnVtbG9ja3xudW1wYWQwfG51bXBhZDF8bnVtcGFkMnxudW1wYWQzfG51bXBhZDR8bnVtcGFkNXxudW1wYWQ2fG51bXBhZDd8bnVtcGFkOHxudW1wYWQ5fG51bXBhZGFkZHxudW1wYWRjbGVhcnxudW1wYWRkZWx8bnVtcGFkZGl2fG51bXBhZGRvdHxudW1wYWRkb3dufG51bXBhZGVuZHxudW1wYWRlbnRlcnxudW1wYWRob21lfG51bXBhZGluc3xudW1wYWRsZWZ0fG51bXBhZG11bHR8bnVtcGFkcGdkbnxudW1wYWRwZ3VwfG51bXBhZHJpZ2h0fG51bXBhZHN1YnxudW1wYWR1cHxwZ2RufHBndXB8cHJpbnRzY3JlZW58cmFsdHxyYnV0dG9ufHJjb250cm9sfHJjdHJsfHJpZ2h0fHJzaGlmdHxyd2lufHJ3aW5kb3dufHJ3aW51cHxzY3JvbGxsb2NrfHNoaWZ0fHNoaWZ0ZG93bnxzaGlmdHVwfHNwYWNlfHRhYnx1cHx2b2x1bWVfZG93bnx2b2x1bWVfbXV0ZXx2b2x1bWVfdXB8d2hlZWxkb3dufHdoZWVsbGVmdHx3aGVlbHJpZ2h0fHdoZWVsdXB8eGJ1dHRvbjF8eGJ1dHRvbjIpXGIvaSxpbXBvcnRhbnQ6LyNcYig/OkFsbG93U2FtZUxpbmVDb21tZW50c3xDbGlwYm9hcmRUaW1lb3V0fENvbW1lbnRGbGFnfERlcmVmQ2hhcnxFcnJvclN0ZE91dHxFc2NhcGVDaGFyfEhvdGtleUludGVydmFsfEhvdGtleU1vZGlmaWVyVGltZW91dHxIb3RzdHJpbmd8SWZ8SWZUaW1lb3V0fElmV2luQWN0aXZlfElmV2luRXhpc3R8SWZXaW5Ob3RBY3RpdmV8SWZXaW5Ob3RFeGlzdHxJbmNsdWRlfEluY2x1ZGVBZ2FpbnxJbnB1dExldmVsfEluc3RhbGxLZXliZEhvb2t8SW5zdGFsbE1vdXNlSG9va3xLZXlIaXN0b3J5fE1heEhvdGtleXNQZXJJbnRlcnZhbHxNYXhNZW18TWF4VGhyZWFkc3xNYXhUaHJlYWRzQnVmZmVyfE1heFRocmVhZHNQZXJIb3RrZXl8TWVudU1hc2tLZXl8Tm9FbnZ8Tm9UcmF5SWNvbnxQZXJzaXN0ZW50fFNpbmdsZUluc3RhbmNlfFVzZUhvb2t8V2FybnxXaW5BY3RpdmF0ZUZvcmNlKVxiL2ksa2V5d29yZDovXGIoPzpBYm9ydHxBYm92ZU5vcm1hbHxBZGR8YWhrX2NsYXNzfGFoa19leGV8YWhrX2dyb3VwfGFoa19pZHxhaGtfcGlkfEFsbHxBbG51bXxBbHBoYXxBbHRTdWJtaXR8QWx0VGFifEFsdFRhYkFuZE1lbnV8QWx0VGFiTWVudXxBbHRUYWJNZW51RGlzbWlzc3xBbHdheXNPblRvcHxBdXRvU2l6ZXxCYWNrZ3JvdW5kfEJhY2tncm91bmRUcmFuc3xCZWxvd05vcm1hbHxiZXR3ZWVufEJpdEFuZHxCaXROb3R8Qml0T3J8Qml0U2hpZnRMZWZ0fEJpdFNoaWZ0UmlnaHR8Qml0WE9yfEJvbGR8Qm9yZGVyfEJ1dHRvbnxCeVJlZnxDYXRjaHxDaGVja2JveHxDaGVja2VkfENoZWNrZWRHcmF5fENob29zZXxDaG9vc2VTdHJpbmd8Q2xvc2V8Q29sb3J8Q29tYm9Cb3h8Q29udGFpbnN8Q29udHJvbExpc3R8Q291bnR8RGF0ZXxEYXRlVGltZXxEYXlzfERETHxEZWZhdWx0fERlbGV0ZUFsbHxEZWxpbWl0ZXJ8RGVyZWZ8RGVzdHJveXxEaWdpdHxEaXNhYmxlfERpc2FibGVkfERyb3BEb3duTGlzdHxFZGl0fEVqZWN0fEVsc2V8RW5hYmxlfEVuYWJsZWR8RXJyb3J8RXhpc3R8RXhwYW5kfEV4U3R5bGV8RmlsZVN5c3RlbXxGaW5hbGx5fEZpcnN0fEZsYXNofEZsb2F0fEZsb2F0RmFzdHxGb2N1c3xGb250fGZvcnxnbG9iYWx8R3JpZHxHcm91cHxHcm91cEJveHxHdWlDbG9zZXxHdWlDb250ZXh0TWVudXxHdWlEcm9wRmlsZXN8R3VpRXNjYXBlfEd1aVNpemV8SGRyfEhpZGRlbnxIaWRlfEhpZ2h8SEtDQ3xIS0NSfEhLQ1V8SEtFWV9DTEFTU0VTX1JPT1R8SEtFWV9DVVJSRU5UX0NPTkZJR3xIS0VZX0NVUlJFTlRfVVNFUnxIS0VZX0xPQ0FMX01BQ0hJTkV8SEtFWV9VU0VSU3xIS0xNfEhLVXxIb3Vyc3xIU2Nyb2xsfEljb258SWNvblNtYWxsfElEfElETGFzdHxJZnxJZkVxdWFsfElmRXhpc3R8SWZHcmVhdGVyfElmR3JlYXRlck9yRXF1YWx8SWZJblN0cmluZ3xJZkxlc3N8SWZMZXNzT3JFcXVhbHxJZk1zZ0JveHxJZk5vdEVxdWFsfElmTm90RXhpc3R8SWZOb3RJblN0cmluZ3xJZldpbkFjdGl2ZXxJZldpbkV4aXN0fElmV2luTm90QWN0aXZlfElmV2luTm90RXhpc3R8SWdub3JlfEltYWdlTGlzdHxpbnxJbnRlZ2VyfEludGVnZXJGYXN0fEludGVycnVwdHxpc3xpdGFsaWN8Sm9pbnxMYWJlbHxMYXN0Rm91bmR8TGFzdEZvdW5kRXhpc3R8TGltaXR8TGluZXN8TGlzdHxMaXN0Qm94fExpc3RWaWV3fGxvY2FsfExvY2t8TG9nb2ZmfExvd3xMb3dlcnxMb3dlcmNhc2V8TWFpbldpbmRvd3xNYXJnaW58TWF4aW1pemV8TWF4aW1pemVCb3h8TWF4U2l6ZXxNaW5pbWl6ZXxNaW5pbWl6ZUJveHxNaW5NYXh8TWluU2l6ZXxNaW51dGVzfE1vbnRoQ2FsfE1vdXNlfE1vdmV8TXVsdGl8TkF8Tm98Tm9BY3RpdmF0ZXxOb0RlZmF1bHR8Tm9IaWRlfE5vSWNvbnxOb01haW5XaW5kb3d8bm9ybXxOb3JtYWx8Tm9Tb3J0fE5vU29ydEhkcnxOb1N0YW5kYXJkfE5vdHxOb1RhYnxOb1RpbWVyc3xOdW1iZXJ8T2ZmfE9rfE9ufE93bkRpYWxvZ3N8T3duZXJ8UGFyc2V8UGFzc3dvcmR8UGljdHVyZXxQaXhlbHxQb3N8UG93fFByaW9yaXR5fFByb2Nlc3NOYW1lfFJhZGlvfFJhbmdlfFJlYWR8UmVhZE9ubHl8UmVhbHRpbWV8UmVkcmF3fFJlZ2lvbnxSRUdfQklOQVJZfFJFR19EV09SRHxSRUdfRVhQQU5EX1NafFJFR19NVUxUSV9TWnxSRUdfU1p8UmVsYXRpdmV8UmVuYW1lfFJlcG9ydHxSZXNpemV8UmVzdG9yZXxSZXRyeXxSR0J8U2NyZWVufFNlY29uZHN8U2VjdGlvbnxTZXJpYWx8U2V0TGFiZWx8U2hpZnRBbHRUYWJ8U2hvd3xTaW5nbGV8U2xpZGVyfFNvcnREZXNjfFN0YW5kYXJkfHN0YXRpY3xTdGF0dXN8U3RhdHVzQmFyfFN0YXR1c0NEfHN0cmlrZXxTdHlsZXxTdWJtaXR8U3lzTWVudXxUYWIyfFRhYlN0b3B8VGV4dHxUaGVtZXxUaHJvd3xUaWxlfFRvZ2dsZUNoZWNrfFRvZ2dsZUVuYWJsZXxUb29sV2luZG93fFRvcHxUb3Btb3N0fFRyYW5zQ29sb3J8VHJhbnNwYXJlbnR8VHJheXxUcmVlVmlld3xUcnl8VHJ5QWdhaW58VHlwZXxVbkNoZWNrfHVuZGVybGluZXxVbmljb2RlfFVubG9ja3xVbnRpbHxVcERvd258VXBwZXJ8VXBwZXJjYXNlfFVzZUVycm9yTGV2ZWx8VmlzfFZpc0ZpcnN0fFZpc2libGV8VlNjcm9sbHxXYWl0fFdhaXRDbG9zZXxXYW50Q3RybEF8V2FudEYyfFdhbnRSZXR1cm58V2hpbGV8V3JhcHxYZGlnaXR8eG18eHB8eHN8WWVzfHltfHlwfHlzKVxiL2ksZnVuY3Rpb246L1teKCk7IFx0LFxuKypcLT0/PjpcXFwvPCYlXFtcXV0rKD89XCgpLyxwdW5jdHVhdGlvbjovW3t9W1xdKCk6LF0vfX1yZXR1cm4gdmR9dmFyIFRkLGl4O2Z1bmN0aW9uIGgyKCl7aWYoaXgpcmV0dXJuIFRkO2l4PTEsVGQ9ZSxlLmRpc3BsYXlOYW1lPSJhdXRvaXQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmF1dG9pdD17Y29tbWVudDpbLzsuKi8se3BhdHRlcm46LyheW1x0IF0qKSMoPzpjb21tZW50cy1zdGFydHxjcylbXHNcU10qP15bIFx0XSojKD86Y2V8Y29tbWVudHMtZW5kKS9tLGxvb2tiZWhpbmQ6ITB9XSx1cmw6e3BhdHRlcm46LyheW1x0IF0qI2luY2x1ZGVccyspKD86PFteXHJcbj5dKz58IlteXHJcbiJdKyIpL20sbG9va2JlaGluZDohMH0sc3RyaW5nOntwYXR0ZXJuOi8oWyInXSkoPzpcMVwxfCg/IVwxKVteXHJcbl0pKlwxLyxncmVlZHk6ITAsaW5zaWRlOnt2YXJpYWJsZTovKFslJEBdKVx3K1wxL319LGRpcmVjdGl2ZTp7cGF0dGVybjovKF5bXHQgXSopI1tcdy1dKy9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxmdW5jdGlvbjovXGJcdysoPz1cKCkvLHZhcmlhYmxlOi9bJEBdXHcrLyxrZXl3b3JkOi9cYig/OkNhc2V8Q29uc3R8Q29udGludWUoPzpDYXNlfExvb3ApfERlZmF1bHR8RGltfERvfEVsc2UoPzpJZik/fEVuZCg/OkZ1bmN8SWZ8U2VsZWN0fFN3aXRjaHxXaXRoKXxFbnVtfEV4aXQoPzpMb29wKT98Rm9yfEZ1bmN8R2xvYmFsfElmfElufExvY2FsfE5leHR8TnVsbHxSZURpbXxTZWxlY3R8U3RhdGljfFN0ZXB8U3dpdGNofFRoZW58VG98VW50aWx8Vm9sYXRpbGV8V0VuZHxXaGlsZXxXaXRoKVxiL2ksbnVtYmVyOi9cYig/OjB4W1xkYS1mXSt8XGQrKD86XC5cZCspPyg/OmVbKy1dP1xkKyk/KVxiL2ksYm9vbGVhbjovXGIoPzpGYWxzZXxUcnVlKVxiL2ksb3BlcmF0b3I6LzxbPT5dP3xbLSsqXC89Jj5dPT98Wz9eXXxcYig/OkFuZHxOb3R8T3IpXGIvaSxwdW5jdHVhdGlvbjovW1xbXF0oKS4sOl0vfX1yZXR1cm4gVGR9dmFyIHhkLG94O2Z1bmN0aW9uIGIyKCl7aWYob3gpcmV0dXJuIHhkO294PTEseGQ9ZSxlLmRpc3BsYXlOYW1lPSJhdmlzeW50aCIsZS5hbGlhc2VzPVsiYXZzIl07ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7ZnVuY3Rpb24gaShiLGgpe3JldHVybiBiLnJlcGxhY2UoLzw8KFxkKyk+Pi9nLGZ1bmN0aW9uKFMsRSl7cmV0dXJuIGhbK0VdfSl9ZnVuY3Rpb24gbChiLGgsUyl7cmV0dXJuIFJlZ0V4cChpKGIsaCksUyl9dmFyIHU9L2Jvb2x8Y2xpcHxmbG9hdHxpbnR8c3RyaW5nfHZhbC8uc291cmNlLGM9Wy9pcyg/OmJvb2x8Y2xpcHxmbG9hdHxpbnR8c3RyaW5nKXxkZWZpbmVkfCg/Oig/OmludGVybmFsKT9mdW5jdGlvbnx2YXIpP2V4aXN0cz8vLnNvdXJjZSwvYXBwbHl8YXNzZXJ0fGRlZmF1bHR8ZXZhbHxpbXBvcnR8bm9wfHNlbGVjdHx1bmRlZmluZWQvLnNvdXJjZSwvb3B0Xyg/OmFsbG93ZmxvYXRhdWRpb3xhdmlwYWRzY2FubGluZXN8ZHdjaGFubmVsbWFza3xlbmFibGVfKD86YjY0YXxwbGFuYXJ0b3BhY2tlZHJnYnx2MjEwfHkzXzEwXzEwfHkzXzEwXzE2KXx1c2V3YXZlZXh0ZW5zaWJsZXx2ZHVicGxhbmFyaGFjayl8c2V0KD86Y2FjaGVtb2RlfG1heGNwdXxtZW1vcnltYXh8cGxhbmFybGVnYWN5YWxpZ25tZW50fHdvcmtpbmdkaXIpLy5zb3VyY2UsL2hleCg/OnZhbHVlKT98dmFsdWUvLnNvdXJjZSwvYWJzfGNlaWx8Y29udGludWVkKD86ZGVub21pbmF0b3J8bnVtZXJhdG9yKT98ZXhwfGZsb29yfGZtb2R8ZnJhY3xsb2coPzoxMCk/fG1heHxtaW58bXVsZGl2fHBpfHBvd3xyYW5kfHJvdW5kfHNpZ258c3BsaW5lfHNxcnQvLnNvdXJjZSwvYT9zaW5oP3xhP2Nvc2g/fGE/dGFuWzJoXT8vLnNvdXJjZSwvKD86Yml0KD86YW5kfG5vdHx4P29yfFtscl0/c2hpZnRbYXNsdV0/fHNoW2xyXXxzYVtscl18W2xyXXJvdGF0ZWw/fHJvW3JsXXx0ZT9zdHxzZXQoPzpjb3VudCk/fGNsKD86ZWEpP3J8Y2goPzphbik/Z2U/KSkvLnNvdXJjZSwvYXZlcmFnZSg/OltiZ3JdfGNocm9tYVt1dl18bHVtYSl8KD86W3JnYl18Y2hyb21hW3V2XXxsdW1hfHJnYnxbeXV2XSg/PWRpZmZlcmVuY2UoPzpmcm9tcHJldmlvdXN8dG9uZXh0KSkpZGlmZmVyZW5jZSg/OmZyb21wcmV2aW91c3x0b25leHQpP3xbeXV2cmdiXXBsYW5lKD86bWVkaWFufG1pbnxtYXh8bWlubWF4ZGlmZmVyZW5jZSkvLnNvdXJjZSwvZ2V0cHJvY2Vzc2luZm98bG9nbXNnfHNjcmlwdCg/OmRpcig/OnV0ZjgpP3xmaWxlKD86dXRmOCk/fG5hbWUoPzp1dGY4KT8pfHNldGxvZ3BhcmFtcy8uc291cmNlLC9jaHJ8KD86ZmlsbHxmaW5kfGxlZnR8bWlkfHJlcGxhY2V8cmV2fHJpZ2h0KXN0cnxmb3JtYXR8W2x1XWNhc2V8b3JkfHN0cig/OmNtcGk/fGZyb211dGY4fGxlbnx0b3V0ZjgpfHRpbWV8dHJpbSg/OmFsbHxsZWZ0fHJpZ2h0KS8uc291cmNlLC9pc3ZlcnNpb25vcmdyZWF0ZXJ8dmVyc2lvbig/Om51bWJlcnxzdHJpbmcpLy5zb3VyY2UsL2J1aWxkcGl4ZWx0eXBlfGNvbG9yc3BhY2VuYW1ldG9waXhlbHR5cGUvLnNvdXJjZSwvYWRkYXV0b2xvYWRkaXJ8b24oPzpjcHV8Y3VkYSl8cHJlZmV0Y2h8c2V0ZmlsdGVybXRtb2RlLy5zb3VyY2VdLmpvaW4oInwiKSxkPVsvaGFzKD86YXVkaW98dmlkZW8pLy5zb3VyY2UsL2hlaWdodHx3aWR0aC8uc291cmNlLC9mcmFtZSg/OmNvdW50fHJhdGUpfGZyYW1lcmF0ZSg/OmRlbm9taW5hdG9yfG51bWVyYXRvcikvLnNvdXJjZSwvZ2V0cGFyaXR5fGlzKD86ZmllbGR8ZnJhbWUpYmFzZWQvLnNvdXJjZSwvYml0c3BlcmNvbXBvbmVudHxjb21wb25lbnRzaXplfGhhc2FscGhhfGlzKD86cGxhbmFyKD86cmdiYT8pP3xpbnRlcmxlYXZlZHxyZ2IoPzoyNHwzMnw0OHw2NCk/fHkoPzo4fHUoPzp2YT98eTIpKT98eXYoPzoxMnwxNnwyNHw0MTEpfDQyMHw0MjJ8NDQ0fHBhY2tlZHJnYil8bnVtY29tcG9uZW50c3xwaXhlbHR5cGUvLnNvdXJjZSwvYXVkaW8oPzpiaXRzfGNoYW5uZWxzfGR1cmF0aW9ufGxlbmd0aCg/Oltmc118aGl8bG8pP3xyYXRlKXxpc2F1ZGlvKD86ZmxvYXR8aW50KS8uc291cmNlXS5qb2luKCJ8IiksZj1bL2F2aSg/OmZpbGUpP3NvdXJjZXxkaXJlY3RzaG93c291cmNlfGltYWdlKD86cmVhZGVyfHNvdXJjZXxzb3VyY2VhbmltKXxvcGVuZG1sc291cmNlfHNlZ21lbnRlZCg/OmF2aXNvdXJjZXxkaXJlY3RzaG93c291cmNlKXx3YXZzb3VyY2UvLnNvdXJjZSwvY29sb3J5dXZ8Y29udmVydGJhY2t0b3l1eTJ8Y29udmVydHRvKD86UkdCKD86MjR8MzJ8NDh8NjQpfCg/OnBsYW5hcik/UkdCQT98WTg/fFlWKD86MTJ8MTZ8MjR8NDExKXxZVVZBPyg/OjQxMXw0MjB8NDIyfDQ0NCl8WVVZMil8Zml4bHVtaW5hbmNlfGdyW2FlXXlzY2FsZXxpbnZlcnR8bGV2ZWxzfGxpbWl0ZXJ8bWVyZ2VhP3JnYnxtZXJnZSg/OmNocm9tYXxsdW1hKXxyZ2JhZGp1c3R8c2hvdyg/OmFscGhhfGJsdWV8Z3JlZW58cmVkKXxzd2FwdXZ8dHdlYWt8W3V2XXRveTg/fHl0b3V2Ly5zb3VyY2UsLyg/OmNvbG9ya2V5fHJlc2V0KW1hc2t8bGF5ZXJ8bWFzayg/OmhzKT98bWVyZ2V8b3ZlcmxheXxzdWJ0cmFjdC8uc291cmNlLC9hZGRib3JkZXJzfCg/OmJpY3ViaWN8YmlsaW5lYXJ8YmxhY2ttYW58Z2F1c3N8bGFuY3pvczR8bGFuY3pvc3xwb2ludHxzaW5jfHNwbGluZSg/OjE2fDM2fDY0KSlyZXNpemV8Y3JvcCg/OmJvdHRvbSk/fGZsaXAoPzpob3Jpem9udGFsfHZlcnRpY2FsKXwoPzpob3Jpem9udGFsfHZlcnRpY2FsKT9yZWR1Y2VieTJ8bGV0dGVyYm94fHNrZXdyb3dzfHR1cm4oPzoxODB8bGVmdHxyaWdodCkvLnNvdXJjZSwvYmx1cnxmaXhicm9rZW5jaHJvbWF1cHNhbXBsaW5nfGdlbmVyYWxjb252b2x1dGlvbnwoPzpzcGF0aWFsfHRlbXBvcmFsKXNvZnRlbnxzaGFycGVuLy5zb3VyY2UsL3RyaW18KD86dW4pP2FsaWduZWRzcGxpY2V8KD86YXNzdW1lfGFzc3VtZXNjYWxlZHxjaGFuZ2V8Y29udmVydClGUFN8KD86ZGVsZXRlfGR1cGxpY2F0ZSlmcmFtZXxkaXNzb2x2ZXxmYWRlKD86aW58aW98b3V0KVswMl0/fGZyZWV6ZWZyYW1lfGludGVybGVhdmV8bG9vcHxyZXZlcnNlfHNlbGVjdCg/OmV2ZW58b2RkfCg/OnJhbmdlKT9ldmVyeSkvLnNvdXJjZSwvYXNzdW1lW2J0XWZmfGFzc3VtZSg/OmZpZWxkfGZyYW1lKWJhc2VkfGJvYnxjb21wbGVtZW50cGFyaXR5fGRvdWJsZXdlYXZlfHBlY3VsaWFyYmxlbmR8cHVsbGRvd258c2VwYXJhdGUoPzpjb2x1bW5zfGZpZWxkc3xyb3dzKXxzd2FwZmllbGRzfHdlYXZlKD86Y29sdW1uc3xyb3dzKT8vLnNvdXJjZSwvYW1wbGlmeSg/OmRiKT98YXNzdW1lc2FtcGxlcmF0ZXxhdWRpb2R1Yig/OmV4KT98YXVkaW90cmltfGNvbnZlcnRhdWRpb3RvKD86KD86OHwxNnwyNHwzMiliaXR8ZmxvYXQpfGNvbnZlcnR0b21vbm98ZGVsYXlhdWRpb3xlbnN1cmV2YnJtcDNzeW5jfGdldCg/OmxlZnR8cmlnaHQpP2NoYW5uZWx8a2lsbCg/OmF1ZGlvfHZpZGVvKXxtZXJnZWNoYW5uZWxzfG1peGF1ZGlvfG1vbm90b3N0ZXJlb3xub3JtYWxpemV8cmVzYW1wbGVhdWRpb3xzc3JjfHN1cGVyZXF8dGltZXN0cmV0Y2gvLnNvdXJjZSwvYW5pbWF0ZXxhcHBseXJhbmdlfGNvbmRpdGlvbmFsKD86ZmlsdGVyfHJlYWRlcnxzZWxlY3QpfGZyYW1lZXZhbHVhdGV8c2NyaXB0Y2xpcHx0Y3AoPzpzZXJ2ZXJ8c291cmNlKXx3cml0ZWZpbGUoPzplbmR8aWZ8c3RhcnQpPy8uc291cmNlLC9pbWFnZXdyaXRlci8uc291cmNlLC9ibGFja25lc3N8YmxhbmtjbGlwfGNvbG9yYmFycyg/OmhkKT98Y29tcGFyZXxkdW1wZmlsdGVyZ3JhcGh8ZWNob3xoaXN0b2dyYW18aW5mb3xtZXNzYWdlY2xpcHxwcmVyb2xsfHNldGdyYXBoYW5hbHlzaXN8c2hvdyg/OmZyYW1lbnVtYmVyfHNtcHRlfHRpbWUpfHNob3dmaXZldmVyc2lvbnN8c3RhY2soPzpob3Jpem9udGFsfHZlcnRpY2FsKXxzdWJ0aXRsZXx0b25lfHZlcnNpb24vLnNvdXJjZV0uam9pbigifCIpLG09W2MsZCxmXS5qb2luKCJ8Iik7YS5sYW5ndWFnZXMuYXZpc3ludGg9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXlxcXSlcW1wqKD86W15cWypdfFxbKD8hXCopfFwqKD8hXF0pfFxbXCooPzpbXlxbKl18XFsoPyFcKil8XCooPyFcXSkpKlwqXF0pKlwqXF0vLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXF0pXC9cKltcc1xTXSo/KD86XCpcL3wkKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXnxbXlxcJF0pIy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLGFyZ3VtZW50OntwYXR0ZXJuOmwoL1xiKD86PDwwPj4pXHMrKCI/KVx3K1wxLy5zb3VyY2UsW3VdLCJpIiksaW5zaWRlOntrZXl3b3JkOi9eXHcrL319LCJhcmd1bWVudC1sYWJlbCI6e3BhdHRlcm46LyhbLChdW1xzXFxdKilcdytccyo9KD8hPSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiYXJndW1lbnQtbmFtZSI6e3BhdHRlcm46L15cdysvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHB1bmN0dWF0aW9uOi89JC99fSxzdHJpbmc6W3twYXR0ZXJuOi8iIiJbXHNcU10qPyIiIi8sZ3JlZWR5OiEwfSx7cGF0dGVybjovIig/OlxcKD86XHJcbnxbXHNcU10pfFteIlxcXHJcbl0pKiIvLGdyZWVkeTohMCxpbnNpZGU6e2NvbnN0YW50OntwYXR0ZXJuOi9cYig/OkRFRkFVTFRfTVRfTU9ERXwoPzpNQUlOU0NSSVBUfFBST0dSQU18U0NSSVBUKURJUnwoPzpNQUNISU5FfFVTRVIpXyg/OkNMQVNTSUN8UExVUylfUExVR0lOUylcYi99fX1dLHZhcmlhYmxlOi9cYig/Omxhc3QpXGIvaSxib29sZWFuOi9cYig/OmZhbHNlfG5vfHRydWV8eWVzKVxiL2ksa2V5d29yZDovXGIoPzpjYXRjaHxlbHNlfGZvcnxmdW5jdGlvbnxnbG9iYWx8aWZ8cmV0dXJufHRyeXx3aGlsZXxfX0VORF9fKVxiL2ksY29uc3RhbnQ6L1xiTVRfKD86TVVMVElfSU5TVEFOQ0V8TklDRV9GSUxURVJ8U0VSSUFMSVpFRHxTUEVDSUFMX01UKVxiLywiYnVpbHRpbi1mdW5jdGlvbiI6e3BhdHRlcm46bCgvXGIoPzo8PDA+PilcYi8uc291cmNlLFttXSwiaSIpLGFsaWFzOiJmdW5jdGlvbiJ9LCJ0eXBlLWNhc3QiOntwYXR0ZXJuOmwoL1xiKD86PDwwPj4pKD89XHMqXCgpLy5zb3VyY2UsW3VdLCJpIiksYWxpYXM6ImtleXdvcmQifSxmdW5jdGlvbjp7cGF0dGVybjovXGJbYS16X11cdyooPz1ccypcKCl8KFwuKVthLXpfXVx3KlxiL2ksbG9va2JlaGluZDohMH0sImxpbmUtY29udGludWF0aW9uIjp7cGF0dGVybjovKF5bIFx0XSopXFx8XFwoPz1bIFx0XSokKS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sbnVtYmVyOi9cQlwkKD86W1xkYS1mXXs2fXxbXGRhLWZdezh9KVxifCg/Oig/OlxifFxCLSlcZCsoPzpcLlxkKik/XGJ8XEJcLlxkK1xiKS9pLG9wZXJhdG9yOi9cK1wrP3xbIT08Pl09P3wmJnxcfFx8fFs/OiovJS1dLyxwdW5jdHVhdGlvbjovW3t9XFtcXSgpOywuXS99LGEubGFuZ3VhZ2VzLmF2cz1hLmxhbmd1YWdlcy5hdmlzeW50aH0pKG4pfXJldHVybiB4ZH12YXIgQWQsbHg7ZnVuY3Rpb24geTIoKXtpZihseClyZXR1cm4gQWQ7bHg9MSxBZD1lLGUuZGlzcGxheU5hbWU9ImF2cm9JZGwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzWyJhdnJvLWlkbCJdPXtjb21tZW50OntwYXR0ZXJuOi9cL1wvLip8XC9cKltcc1xTXSo/XCpcLy8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyhefFteXFxdKSIoPzpbXlxyXG4iXFxdfFxcLikqIi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGFubm90YXRpb246e3BhdHRlcm46L0AoPzpbJFx3Li1dfGBbXlxyXG5gXStgKSsvLGdyZWVkeTohMCxhbGlhczoiZnVuY3Rpb24ifSwiZnVuY3Rpb24taWRlbnRpZmllciI6e3BhdHRlcm46L2BbXlxyXG5gXStgKD89XHMqXCgpLyxncmVlZHk6ITAsYWxpYXM6ImZ1bmN0aW9uIn0saWRlbnRpZmllcjp7cGF0dGVybjovYFteXHJcbmBdK2AvLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXGIoPzplbnVtfGVycm9yfHByb3RvY29sfHJlY29yZHx0aHJvd3MpXGJccyspWyRcd10rLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphcnJheXxib29sZWFufGJ5dGVzfGRhdGV8ZGVjaW1hbHxkb3VibGV8ZW51bXxlcnJvcnxmYWxzZXxmaXhlZHxmbG9hdHxpZGx8aW1wb3J0fGludHxsb2NhbF90aW1lc3RhbXBfbXN8bG9uZ3xtYXB8bnVsbHxvbmV3YXl8cHJvdG9jb2x8cmVjb3JkfHNjaGVtYXxzdHJpbmd8dGhyb3dzfHRpbWVfbXN8dGltZXN0YW1wX21zfHRydWV8dW5pb258dXVpZHx2b2lkKVxiLyxmdW5jdGlvbjovXGJbYS16X11cdyooPz1ccypcKCkvaSxudW1iZXI6W3twYXR0ZXJuOi8oXnxbXlx3Ll0pLT8oPzooPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OmVbKy1dP1xkKyk/fDB4KD86W2EtZjAtOV0rKD86XC5bYS1mMC05XSopP3xcLlthLWYwLTldKykoPzpwWystXT9cZCspPylbZGZsXT8oPyFbXHcuXSkvaSxsb29rYmVoaW5kOiEwfSwvLT9cYig/OkluZmluaXR5fE5hTilcYi9dLG9wZXJhdG9yOi89LyxwdW5jdHVhdGlvbjovWygpXFtcXXt9PD4uOiw7LV0vfSxuLmxhbmd1YWdlcy5hdmRsPW4ubGFuZ3VhZ2VzWyJhdnJvLWlkbCJdfXJldHVybiBBZH12YXIgX2Qsc3g7ZnVuY3Rpb24gcGsoKXtpZihzeClyZXR1cm4gX2Q7c3g9MSxfZD1lLGUuZGlzcGxheU5hbWU9ImJhc2giLGUuYWxpYXNlcz1bInNoZWxsIl07ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9IlxcYig/OkJBU0h8QkFTSE9QVFN8QkFTSF9BTElBU0VTfEJBU0hfQVJHQ3xCQVNIX0FSR1Z8QkFTSF9DTURTfEJBU0hfQ09NUExFVElPTl9DT01QQVRfRElSfEJBU0hfTElORU5PfEJBU0hfUkVNQVRDSHxCQVNIX1NPVVJDRXxCQVNIX1ZFUlNJTkZPfEJBU0hfVkVSU0lPTnxDT0xPUlRFUk18Q09MVU1OU3xDT01QX1dPUkRCUkVBS1N8REJVU19TRVNTSU9OX0JVU19BRERSRVNTfERFRkFVTFRTX1BBVEh8REVTS1RPUF9TRVNTSU9OfERJUlNUQUNLfERJU1BMQVl8RVVJRHxHRE1TRVNTSU9OfEdETV9MQU5HfEdOT01FX0tFWVJJTkdfQ09OVFJPTHxHTk9NRV9LRVlSSU5HX1BJRHxHUEdfQUdFTlRfSU5GT3xHUk9VUFN8SElTVENPTlRST0x8SElTVEZJTEV8SElTVEZJTEVTSVpFfEhJU1RTSVpFfEhPTUV8SE9TVE5BTUV8SE9TVFRZUEV8SUZTfElOU1RBTkNFfEpPQnxMQU5HfExBTkdVQUdFfExDX0FERFJFU1N8TENfQUxMfExDX0lERU5USUZJQ0FUSU9OfExDX01FQVNVUkVNRU5UfExDX01PTkVUQVJZfExDX05BTUV8TENfTlVNRVJJQ3xMQ19QQVBFUnxMQ19URUxFUEhPTkV8TENfVElNRXxMRVNTQ0xPU0V8TEVTU09QRU58TElORVN8TE9HTkFNRXxMU19DT0xPUlN8TUFDSFRZUEV8TUFJTENIRUNLfE1BTkRBVE9SWV9QQVRIfE5PX0FUX0JSSURHRXxPTERQV0R8T1BURVJSfE9QVElORHxPUkJJVF9TT0NLRVRESVJ8T1NUWVBFfFBBUEVSU0laRXxQQVRIfFBJUEVTVEFUVVN8UFBJRHxQUzF8UFMyfFBTM3xQUzR8UFdEfFJBTkRPTXxSRVBMWXxTRUNPTkRTfFNFTElOVVhfSU5JVHxTRVNTSU9OfFNFU1NJT05UWVBFfFNFU1NJT05fTUFOQUdFUnxTSEVMTHxTSEVMTE9QVFN8U0hMVkx8U1NIX0FVVEhfU09DS3xURVJNfFVJRHxVUFNUQVJUX0VWRU5UU3xVUFNUQVJUX0lOU1RBTkNFfFVQU1RBUlRfSk9CfFVQU1RBUlRfU0VTU0lPTnxVU0VSfFdJTkRPV0lEfFhBVVRIT1JJVFl8WERHX0NPTkZJR19ESVJTfFhER19DVVJSRU5UX0RFU0tUT1B8WERHX0RBVEFfRElSU3xYREdfR1JFRVRFUl9EQVRBX0RJUnxYREdfTUVOVV9QUkVGSVh8WERHX1JVTlRJTUVfRElSfFhER19TRUFUfFhER19TRUFUX1BBVEh8WERHX1NFU1NJT05fREVTS1RPUHxYREdfU0VTU0lPTl9JRHxYREdfU0VTU0lPTl9QQVRIfFhER19TRVNTSU9OX1RZUEV8WERHX1ZUTlJ8WE1PRElGSUVSUylcXGIiLGw9e3BhdHRlcm46LyheKFsiJ10/KVx3K1wyKVsgXHRdK1xTLiovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIixpbnNpZGU6bnVsbH0sdT17YmFzaDpsLGVudmlyb25tZW50OntwYXR0ZXJuOlJlZ0V4cCgiXFwkIitpKSxhbGlhczoiY29uc3RhbnQifSx2YXJpYWJsZTpbe3BhdHRlcm46L1wkP1woXChbXHNcU10rP1wpXCkvLGdyZWVkeTohMCxpbnNpZGU6e3ZhcmlhYmxlOlt7cGF0dGVybjovKF5cJFwoXChbXHNcU10rKVwpXCkvLGxvb2tiZWhpbmQ6ITB9LC9eXCRcKFwoL10sbnVtYmVyOi9cYjB4W1xkQS1GYS1mXStcYnwoPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpbRWVdLT9cZCspPy8sb3BlcmF0b3I6Ly0tfFwrXCt8XCpcKj0/fDw8PT98Pj49P3wmJnxcfFx8fFs9IStcLSovJTw+XiZ8XT0/fFs/fjpdLyxwdW5jdHVhdGlvbjovXChcKD98XClcKT98LHw7L319LHtwYXR0ZXJuOi9cJFwoKD86XChbXildK1wpfFteKCldKStcKXxgW15gXStgLyxncmVlZHk6ITAsaW5zaWRlOnt2YXJpYWJsZTovXlwkXCh8XmB8XCkkfGAkL319LHtwYXR0ZXJuOi9cJFx7W159XStcfS8sZ3JlZWR5OiEwLGluc2lkZTp7b3BlcmF0b3I6LzpbLT0/K10/fFshXC9dfCMjP3wlJT98XF5cXj98LCw/LyxwdW5jdHVhdGlvbjovW1xbXF1dLyxlbnZpcm9ubWVudDp7cGF0dGVybjpSZWdFeHAoIihcXHspIitpKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJjb25zdGFudCJ9fX0sL1wkKD86XHcrfFsjPyohQCRdKS9dLGVudGl0eTovXFwoPzpbYWJjZUVmbnJ0dlxcIl18Tz9bMC03XXsxLDN9fFVbMC05YS1mQS1GXXs4fXx1WzAtOWEtZkEtRl17NH18eFswLTlhLWZBLUZdezEsMn0pL307YS5sYW5ndWFnZXMuYmFzaD17c2hlYmFuZzp7cGF0dGVybjovXiMhXHMqXC8uKi8sYWxpYXM6ImltcG9ydGFudCJ9LGNvbW1lbnQ6e3BhdHRlcm46LyhefFteIntcXCRdKSMuKi8sbG9va2JlaGluZDohMH0sImZ1bmN0aW9uLW5hbWUiOlt7cGF0dGVybjovKFxiZnVuY3Rpb25ccyspW1x3LV0rKD89KD86XHMqXCg/OlxzKlwpKT9ccypceykvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn0se3BhdHRlcm46L1xiW1x3LV0rKD89XHMqXChccypcKVxzKlx7KS8sYWxpYXM6ImZ1bmN0aW9uIn1dLCJmb3Itb3Itc2VsZWN0Ijp7cGF0dGVybjovKFxiKD86Zm9yfHNlbGVjdClccyspXHcrKD89XHMraW5ccykvLGFsaWFzOiJ2YXJpYWJsZSIsbG9va2JlaGluZDohMH0sImFzc2lnbi1sZWZ0Ijp7cGF0dGVybjovKF58W1xzO3wmXXxbPD5dXCgpXHcrKD89XCs/PSkvLGluc2lkZTp7ZW52aXJvbm1lbnQ6e3BhdHRlcm46UmVnRXhwKCIoXnxbXFxzO3wmXXxbPD5dXFwoKSIraSksbG9va2JlaGluZDohMCxhbGlhczoiY29uc3RhbnQifX0sYWxpYXM6InZhcmlhYmxlIixsb29rYmVoaW5kOiEwfSxzdHJpbmc6W3twYXR0ZXJuOi8oKD86XnxbXjxdKTw8LT9ccyopKFx3Kylcc1tcc1xTXSo/KD86XHI/XG58XHIpXDIvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp1fSx7cGF0dGVybjovKCg/Ol58W148XSk8PC0/XHMqKShbIiddKShcdyspXDJcc1tcc1xTXSo/KD86XHI/XG58XHIpXDMvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7YmFzaDpsfX0se3BhdHRlcm46LyhefFteXFxdKD86XFxcXCkqKSIoPzpcXFtcc1xTXXxcJFwoW14pXStcKXxcJCg/IVwoKXxgW15gXStgfFteIlxcYCRdKSoiLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6dX0se3BhdHRlcm46LyhefFteJFxcXSknW14nXSonLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46L1wkJyg/OlteJ1xcXXxcXFtcc1xTXSkqJy8sZ3JlZWR5OiEwLGluc2lkZTp7ZW50aXR5OnUuZW50aXR5fX1dLGVudmlyb25tZW50OntwYXR0ZXJuOlJlZ0V4cCgiXFwkPyIraSksYWxpYXM6ImNvbnN0YW50In0sdmFyaWFibGU6dS52YXJpYWJsZSxmdW5jdGlvbjp7cGF0dGVybjovKF58W1xzO3wmXXxbPD5dXCgpKD86YWRkfGFwcm9wb3N8YXB0fGFwdC1jYWNoZXxhcHQtZ2V0fGFwdGl0dWRlfGFzcGVsbHxhdXRvbXlzcWxiYWNrdXB8YXdrfGJhc2VuYW1lfGJhc2h8YmN8YmNvbnNvbGV8Ymd8YnppcDJ8Y2FsfGNhdHxjZmRpc2t8Y2hncnB8Y2hrY29uZmlnfGNobW9kfGNob3dufGNocm9vdHxja3N1bXxjbGVhcnxjbXB8Y29sdW1ufGNvbW18Y29tcG9zZXJ8Y3B8Y3Jvbnxjcm9udGFifGNzcGxpdHxjdXJsfGN1dHxkYXRlfGRjfGRkfGRkcmVzY3VlfGRlYm9vdHN0cmFwfGRmfGRpZmZ8ZGlmZjN8ZGlnfGRpcnxkaXJjb2xvcnN8ZGlybmFtZXxkaXJzfGRtZXNnfGRvY2tlcnxkb2NrZXItY29tcG9zZXxkdXxlZ3JlcHxlamVjdHxlbnZ8ZXRodG9vbHxleHBhbmR8ZXhwZWN0fGV4cHJ8ZmRmb3JtYXR8ZmRpc2t8Zmd8ZmdyZXB8ZmlsZXxmaW5kfGZtdHxmb2xkfGZvcm1hdHxmcmVlfGZzY2t8ZnRwfGZ1c2VyfGdhd2t8Z2l0fGdwYXJ0ZWR8Z3JlcHxncm91cGFkZHxncm91cGRlbHxncm91cG1vZHxncm91cHN8Z3J1Yi1ta2NvbmZpZ3xnemlwfGhhbHR8aGVhZHxoZ3xoaXN0b3J5fGhvc3R8aG9zdG5hbWV8aHRvcHxpY29udnxpZHxpZmNvbmZpZ3xpZmRvd258aWZ1cHxpbXBvcnR8aW5zdGFsbHxpcHxqb2JzfGpvaW58a2lsbHxraWxsYWxsfGxlc3N8bGlua3xsbnxsb2NhdGV8bG9nbmFtZXxsb2dyb3RhdGV8bG9va3xscGN8bHByfGxwcmludHxscHJpbnRkfGxwcmludHF8bHBybXxsc3xsc29mfGx5bnh8bWFrZXxtYW58bWN8bWRhZG18bWtjb25maWd8bWtkaXJ8bWtlMmZzfG1rZmlmb3xta2ZzfG1raXNvZnN8bWtub2R8bWtzd2FwfG1tdnxtb3JlfG1vc3R8bW91bnR8bXRvb2xzfG10cnxtdXR0fG12fG5hbm98bmN8bmV0c3RhdHxuaWNlfG5sfG5vZGV8bm9odXB8bm90aWZ5LXNlbmR8bnBtfG5zbG9va3VwfG9wfG9wZW58cGFydGVkfHBhc3N3ZHxwYXN0ZXxwYXRoY2hrfHBpbmd8cGtpbGx8cG5wbXxwb2RtYW58cG9kbWFuLWNvbXBvc2V8cG9wZHxwcnxwcmludGNhcHxwcmludGVudnxwc3xwdXNoZHxwdnxxdW90YXxxdW90YWNoZWNrfHF1b3RhY3RsfHJhbXxyYXJ8cmNwfHJlYm9vdHxyZW1zeW5jfHJlbmFtZXxyZW5pY2V8cmV2fHJtfHJtZGlyfHJwbXxyc3luY3xzY3B8c2NyZWVufHNkaWZmfHNlZHxzZW5kbWFpbHxzZXF8c2VydmljZXxzZnRwfHNofHNoZWxsY2hlY2t8c2h1ZnxzaHV0ZG93bnxzbGVlcHxzbG9jYXRlfHNvcnR8c3BsaXR8c3NofHN0YXR8c3RyYWNlfHN1fHN1ZG98c3VtfHN1c3BlbmR8c3dhcG9ufHN5bmN8dGFjfHRhaWx8dGFyfHRlZXx0aW1lfHRpbWVvdXR8dG9wfHRvdWNofHRyfHRyYWNlcm91dGV8dHNvcnR8dHR5fHVtb3VudHx1bmFtZXx1bmV4cGFuZHx1bmlxfHVuaXRzfHVucmFyfHVuc2hhcnx1bnppcHx1cGRhdGUtZ3J1Ynx1cHRpbWV8dXNlcmFkZHx1c2VyZGVsfHVzZXJtb2R8dXNlcnN8dXVkZWNvZGV8dXVlbmNvZGV8dnx2Y3BrZ3x2ZGlyfHZpfHZpbXx2aXJzaHx2bXN0YXR8d2FpdHx3YXRjaHx3Y3x3Z2V0fHdoZXJlaXN8d2hpY2h8d2hvfHdob2FtaXx3cml0ZXx4YXJnc3x4ZGctb3Blbnx5YXJufHllc3x6ZW5pdHl8emlwfHpzaHx6eXBwZXIpKD89JHxbKVxzO3wmXSkvLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6e3BhdHRlcm46LyhefFtcczt8Jl18Wzw+XVwoKSg/OmNhc2V8ZG98ZG9uZXxlbGlmfGVsc2V8ZXNhY3xmaXxmb3J8ZnVuY3Rpb258aWZ8aW58c2VsZWN0fHRoZW58dW50aWx8d2hpbGUpKD89JHxbKVxzO3wmXSkvLGxvb2tiZWhpbmQ6ITB9LGJ1aWx0aW46e3BhdHRlcm46LyhefFtcczt8Jl18Wzw+XVwoKSg/OlwufDp8YWxpYXN8YmluZHxicmVha3xidWlsdGlufGNhbGxlcnxjZHxjb21tYW5kfGNvbnRpbnVlfGRlY2xhcmV8ZWNob3xlbmFibGV8ZXZhbHxleGVjfGV4aXR8ZXhwb3J0fGdldG9wdHN8aGFzaHxoZWxwfGxldHxsb2NhbHxsb2dvdXR8bWFwZmlsZXxwcmludGZ8cHdkfHJlYWR8cmVhZGFycmF5fHJlYWRvbmx5fHJldHVybnxzZXR8c2hpZnR8c2hvcHR8c291cmNlfHRlc3R8dGltZXN8dHJhcHx0eXBlfHR5cGVzZXR8dWxpbWl0fHVtYXNrfHVuYWxpYXN8dW5zZXQpKD89JHxbKVxzO3wmXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNsYXNzLW5hbWUifSxib29sZWFuOntwYXR0ZXJuOi8oXnxbXHM7fCZdfFs8Pl1cKCkoPzpmYWxzZXx0cnVlKSg/PSR8Wylcczt8Jl0pLyxsb29rYmVoaW5kOiEwfSwiZmlsZS1kZXNjcmlwdG9yIjp7cGF0dGVybjovXEImXGRcYi8sYWxpYXM6ImltcG9ydGFudCJ9LG9wZXJhdG9yOntwYXR0ZXJuOi9cZD88Pnw+XHx8XCs9fD1bPX5dP3whPT98PDxbPC1dP3xbJlxkXT8+PnxcZFs8Pl0mP3xbPD5dWyY9XT98Jls+Jl0/fFx8WyZ8XT8vLGluc2lkZTp7ImZpbGUtZGVzY3JpcHRvciI6e3BhdHRlcm46L15cZC8sYWxpYXM6ImltcG9ydGFudCJ9fX0scHVuY3R1YXRpb246L1wkP1woXCg/fFwpXCk/fFwuXC58W3t9W1xdO1xcXS8sbnVtYmVyOntwYXR0ZXJuOi8oXnxccykoPzpbMS05XVxkKnwwKSg/OlsuLF1cZCspP1xiLyxsb29rYmVoaW5kOiEwfX0sbC5pbnNpZGU9YS5sYW5ndWFnZXMuYmFzaDtmb3IodmFyIGM9WyJjb21tZW50IiwiZnVuY3Rpb24tbmFtZSIsImZvci1vci1zZWxlY3QiLCJhc3NpZ24tbGVmdCIsInN0cmluZyIsImVudmlyb25tZW50IiwiZnVuY3Rpb24iLCJrZXl3b3JkIiwiYnVpbHRpbiIsImJvb2xlYW4iLCJmaWxlLWRlc2NyaXB0b3IiLCJvcGVyYXRvciIsInB1bmN0dWF0aW9uIiwibnVtYmVyIl0sZD11LnZhcmlhYmxlWzFdLmluc2lkZSxmPTA7ZjxjLmxlbmd0aDtmKyspZFtjW2ZdXT1hLmxhbmd1YWdlcy5iYXNoW2NbZl1dO2EubGFuZ3VhZ2VzLnNoZWxsPWEubGFuZ3VhZ2VzLmJhc2h9KShuKX1yZXR1cm4gX2R9dmFyIFJkLHV4O2Z1bmN0aW9uIGZrKCl7aWYodXgpcmV0dXJuIFJkO3V4PTEsUmQ9ZSxlLmRpc3BsYXlOYW1lPSJiYXNpYyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuYmFzaWM9e2NvbW1lbnQ6e3BhdHRlcm46Lyg/OiF8UkVNXGIpLisvaSxpbnNpZGU6e2tleXdvcmQ6L15SRU0vaX19LHN0cmluZzp7cGF0dGVybjovIig/OiIifFshIyQlJicoKSosXC86Ozw9Pj9eXHcgK1wtLl0pKiIvLGdyZWVkeTohMH0sbnVtYmVyOi8oPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpFWystXT9cZCspPy9pLGtleXdvcmQ6L1xiKD86QVN8QkVFUHxCTE9BRHxCU0FWRXxDQUxMKD86IEFCU09MVVRFKT98Q0FTRXxDSEFJTnxDSERJUnxDTEVBUnxDTE9TRXxDTFN8Q09NfENPTU1PTnxDT05TVHxEQVRBfERFQ0xBUkV8REVGKD86IEZOfCBTRUd8REJMfElOVHxMTkd8U05HfFNUUil8RElNfERPfERPVUJMRXxFTFNFfEVMU0VJRnxFTkR8RU5WSVJPTnxFUkFTRXxFUlJPUnxFWElUfEZJRUxEfEZJTEVTfEZPUnxGVU5DVElPTnxHRVR8R09TVUJ8R09UT3xJRnxJTlBVVHxJTlRFR0VSfElPQ1RMfEtFWXxLSUxMfExJTkUgSU5QVVR8TE9DQVRFfExPQ0t8TE9OR3xMT09QfExTRVR8TUtESVJ8TkFNRXxORVhUfE9GRnxPTig/OiBDT018IEVSUk9SfCBLRVl8IFRJTUVSKT98T1BFTnxPUFRJT04gQkFTRXxPVVR8UE9LRXxQVVR8UkVBRHxSRURJTXxSRU18UkVTVE9SRXxSRVNVTUV8UkVUVVJOfFJNRElSfFJTRVR8UlVOfFNFTEVDVCBDQVNFfFNIQVJFRHxTSEVMTHxTSU5HTEV8U0xFRVB8U1RBVElDfFNURVB8U1RPUHxTVFJJTkd8U1VCfFNXQVB8U1lTVEVNfFRIRU58VElNRVJ8VE98VFJPRkZ8VFJPTnxUWVBFfFVOTE9DS3xVTlRJTHxVU0lOR3xWSUVXIFBSSU5UfFdBSVR8V0VORHxXSElMRXxXUklURSkoPzpcJHxcYikvaSxmdW5jdGlvbjovXGIoPzpBQlN8QUNDRVNTfEFDT1N8QU5HTEV8QVJFQXxBUklUSE1FVElDfEFSUkFZfEFTSU58QVNLfEFUfEFUTnxCQVNFfEJFR0lOfEJSRUFLfENBVVNFfENFSUx8Q0hSfENMSVB8Q09MTEFURXxDT0xPUnxDT058Q09TfENPU0h8Q09UfENTQ3xEQVRFfERBVFVNfERFQlVHfERFQ0lNQUx8REVGfERFR3xERUdSRUVTfERFTEVURXxERVR8REVWSUNFfERJU1BMQVl8RE9UfEVMQVBTRUR8RVBTfEVSQVNBQkxFfEVYTElORXxFWFB8RVhURVJOQUx8RVhUWVBFfEZJTEVUWVBFfEZJWEVEfEZQfEdPfEdSQVBIfEhBTkRMRVJ8SUROfElNQUdFfElOfElOVHxJTlRFUk5BTHxJUHxJU3xLRVlFRHxMQk9VTkR8TENBU0V8TEVGVHxMRU58TEVOR1RIfExFVHxMSU5FfExJTkVTfExPR3xMT0cxMHxMT0cyfExUUklNfE1BUkdJTnxNQVR8TUFYfE1BWE5VTXxNSUR8TUlOfE1JU1NJTkd8TU9EfE5BVElWRXxOVUx8TlVNRVJJQ3xPRnxPUFRJT058T1JEfE9SR0FOSVpBVElPTnxPVVRJTnxPVVRQVVR8UEl8UE9JTlR8UE9JTlRFUnxQT0lOVFN8UE9TfFBSSU5UfFBST0dSQU18UFJPTVBUfFJBRHxSQURJQU5TfFJBTkRPTUlaRXxSRUNPUkR8UkVDU0laRXxSRUNUWVBFfFJFTEFUSVZFfFJFTUFJTkRFUnxSRVBFQVR8UkVTVHxSRVRSWXxSRVdSSVRFfFJJR0hUfFJORHxST1VORHxSVFJJTXxTQU1FfFNFQ3xTRUxFQ1R8U0VRVUVOVElBTHxTRVR8U0VUVEVSfFNHTnxTSU58U0lOSHxTSVpFfFNLSVB8U1FSfFNUQU5EQVJEfFNUQVRVU3xTVFJ8U1RSRUFNfFNUWUxFfFRBQnxUQU58VEFOSHxURU1QTEFURXxURVhUfFRIRVJFfFRJTUV8VElNRU9VVHxUUkFDRXxUUkFOU0ZPUk18VFJVTkNBVEV8VUJPVU5EfFVDQVNFfFVTRXxWQUx8VkFSSUFCTEV8VklFV1BPUlR8V0hFTnxXSU5ET1d8V0lUSHxaRVJ8Wk9ORVdJRFRIKSg/OlwkfFxiKS9pLG9wZXJhdG9yOi88Wz0+XT98Pj0/fFsrXC0qXC9ePSZdfFxiKD86QU5EfEVRVnxJTVB8Tk9UfE9SfFhPUilcYi9pLHB1bmN0dWF0aW9uOi9bLDs6KCldL319cmV0dXJuIFJkfXZhciBOZCxjeDtmdW5jdGlvbiBFMigpe2lmKGN4KXJldHVybiBOZDtjeD0xLE5kPWUsZS5kaXNwbGF5TmFtZT0iYmF0Y2giLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vJSU/W346XHddKyU/fCFcUyshLyxsPXtwYXR0ZXJuOi9cL1thLXo/XSsoPz1bIDpdfCQpOj98LVthLXpdXGJ8LS1bYS16LV0rXGIvaW0sYWxpYXM6ImF0dHItbmFtZSIsaW5zaWRlOntwdW5jdHVhdGlvbjovOi99fSx1PS8iKD86W1xcIl0ifFteIl0pKiIoPyEiKS8sYz0vKD86XGJ8LSlcZCtcYi87YS5sYW5ndWFnZXMuYmF0Y2g9e2NvbW1lbnQ6Wy9eOjouKi9tLHtwYXR0ZXJuOi8oKD86XnxbJihdKVsgXHRdKilyZW1cYig/OlteXiYpXHJcbl18XF4oPzpcclxufFtcc1xTXSkpKi9pbSxsb29rYmVoaW5kOiEwfV0sbGFiZWw6e3BhdHRlcm46L146LiovbSxhbGlhczoicHJvcGVydHkifSxjb21tYW5kOlt7cGF0dGVybjovKCg/Ol58WyYoXSlbIFx0XSopZm9yKD86IFwvW2Etej9dKD86WyA6XSg/OiJbXiJdKiJ8W15ccyIvXVxTKikpPykqIFxTKyBpbiBcKFteKV0rXCkgZG8vaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L1xiKD86ZG98aW4pXGJ8XmZvclxiL2ksc3RyaW5nOnUscGFyYW1ldGVyOmwsdmFyaWFibGU6aSxudW1iZXI6YyxwdW5jdHVhdGlvbjovWygpJyxdL319LHtwYXR0ZXJuOi8oKD86XnxbJihdKVsgXHRdKilpZig/OiBcL1thLXo/XSg/OlsgOl0oPzoiW14iXSoifFteXHMiL11cUyopKT8pKiAoPzpub3QgKT8oPzpjbWRleHR2ZXJzaW9uIFxkK3xkZWZpbmVkIFx3K3xlcnJvcmxldmVsIFxkK3xleGlzdCBcUyt8KD86IlteIl0qInwoPyEiKSg/Oig/IT09KVxTKSspPyg/Oj09fCAoPzplcXV8Z2VxfGd0cnxsZXF8bHNzfG5lcSkgKSg/OiJbXiJdKiJ8W15ccyJdXFMqKSkvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L1xiKD86Y21kZXh0dmVyc2lvbnxkZWZpbmVkfGVycm9ybGV2ZWx8ZXhpc3R8bm90KVxifF5pZlxiL2ksc3RyaW5nOnUscGFyYW1ldGVyOmwsdmFyaWFibGU6aSxudW1iZXI6YyxvcGVyYXRvcjovXF58PT18XGIoPzplcXV8Z2VxfGd0cnxsZXF8bHNzfG5lcSlcYi9pfX0se3BhdHRlcm46LygoPzpefFsmKCldKVsgXHRdKillbHNlXGIvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L15lbHNlXGIvaX19LHtwYXR0ZXJuOi8oKD86XnxbJihdKVsgXHRdKilzZXQoPzogXC9bYS16XSg/OlsgOl0oPzoiW14iXSoifFteXHMiL11cUyopKT8pKiAoPzpbXl4mKVxyXG5dfFxeKD86XHJcbnxbXHNcU10pKSovaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L15zZXRcYi9pLHN0cmluZzp1LHBhcmFtZXRlcjpsLHZhcmlhYmxlOltpLC9cdysoPz0oPzpbKlwvJStcLSZefF18PDx8Pj4pPz0pL10sbnVtYmVyOmMsb3BlcmF0b3I6L1sqXC8lK1wtJl58XT0/fDw8PT98Pj49P3xbIX5fPV0vLHB1bmN0dWF0aW9uOi9bKCknLF0vfX0se3BhdHRlcm46LygoPzpefFsmKF0pWyBcdF0qQD8pXHcrXGIoPzoiKD86W1xcIl0ifFteIl0pKiIoPyEiKXxbXiJeJilcclxuXXxcXig/OlxyXG58W1xzXFNdKSkqL20sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L15cdytcYi8sc3RyaW5nOnUscGFyYW1ldGVyOmwsbGFiZWw6e3BhdHRlcm46LyheXHMqKTpcUysvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LHZhcmlhYmxlOmksbnVtYmVyOmMsb3BlcmF0b3I6L1xeL319XSxvcGVyYXRvcjovWyZAXS8scHVuY3R1YXRpb246L1soKSddL319KShuKX1yZXR1cm4gTmR9dmFyIHdkLGR4O2Z1bmN0aW9uIFMyKCl7aWYoZHgpcmV0dXJuIHdkO2R4PTEsd2Q9ZSxlLmRpc3BsYXlOYW1lPSJiYmNvZGUiLGUuYWxpYXNlcz1bInNob3J0Y29kZSJdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuYmJjb2RlPXt0YWc6e3BhdHRlcm46L1xbXC8/W15ccz1cXV0rKD86XHMqPVxzKig/OiJbXiJdKiJ8J1teJ10qJ3xbXlxzJyJcXT1dKykpPyg/OlxzK1teXHM9XF1dK1xzKj1ccyooPzoiW14iXSoifCdbXiddKid8W15ccyciXF09XSspKSpccypcXS8saW5zaWRlOnt0YWc6e3BhdHRlcm46L15cW1wvP1teXHM9XF1dKy8saW5zaWRlOntwdW5jdHVhdGlvbjovXlxbXC8/L319LCJhdHRyLXZhbHVlIjp7cGF0dGVybjovPVxzKig/OiJbXiJdKiJ8J1teJ10qJ3xbXlxzJyJcXT1dKykvLGluc2lkZTp7cHVuY3R1YXRpb246Wy9ePS8se3BhdHRlcm46L14oXHMqKVsiJ118WyInXSQvLGxvb2tiZWhpbmQ6ITB9XX19LHB1bmN0dWF0aW9uOi9cXS8sImF0dHItbmFtZSI6L1teXHM9XF1dKy99fX0sbi5sYW5ndWFnZXMuc2hvcnRjb2RlPW4ubGFuZ3VhZ2VzLmJiY29kZX1yZXR1cm4gd2R9dmFyIGtkLHB4O2Z1bmN0aW9uIHYyKCl7aWYocHgpcmV0dXJuIGtkO3B4PTEsa2Q9ZSxlLmRpc3BsYXlOYW1lPSJiaWNlcCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuYmljZXA9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXlxcXSlcL1wqW1xzXFNdKj8oPzpcKlwvfCQpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46LyhefFteXFw6XSlcL1wvLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0scHJvcGVydHk6W3twYXR0ZXJuOi8oW1xyXG5dWyBcdF0qKVthLXpfXVx3Kig/PVsgXHRdKjopL2ksbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhbXHJcbl1bIFx0XSopJyg/OlxcLnxcJCg/IVx7KXxbXidcXFxyXG4kXSkqJyg/PVsgXHRdKjopLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLHN0cmluZzpbe3BhdHRlcm46LycnJ1teJ11bXHNcU10qPycnJy8sZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXCddKScoPzpcXC58XCQoPyFceyl8W14nXFxcclxuJF0pKicvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sImludGVycG9sYXRlZC1zdHJpbmciOntwYXR0ZXJuOi8oXnxbXlxcJ10pJyg/OlxcLnxcJCg/Oig/IVx7KXxce1tee31cclxuXSpcfSl8W14nXFxcclxuJF0pKicvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovXCRce1tee31cclxuXSpcfS8saW5zaWRlOntleHByZXNzaW9uOntwYXR0ZXJuOi8oXlwkXHspW1xzXFNdKyg/PVx9JCkvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9eXCRce3xcfSQvfX0sc3RyaW5nOi9bXHNcU10rL319LGRhdGF0eXBlOntwYXR0ZXJuOi8oXGIoPzpvdXRwdXR8cGFyYW0pXGJbIFx0XStcdytbIFx0XSspXHcrXGIvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNsYXNzLW5hbWUifSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGtleXdvcmQ6L1xiKD86ZXhpc3Rpbmd8Zm9yfGlmfGlufG1vZHVsZXxudWxsfG91dHB1dHxwYXJhbXxyZXNvdXJjZXx0YXJnZXRTY29wZXx2YXIpXGIvLGRlY29yYXRvcjovQFx3K1xiLyxmdW5jdGlvbjovXGJbYS16X11cdyooPz1bIFx0XSpcKCkvaSxudW1iZXI6Lyg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OkVbKy1dP1xkKyk/L2ksb3BlcmF0b3I6Ly0tfFwrXCt8XCpcKj0/fD0+fCYmPT98XHxcfD0/fFshPV09PXw8PD0/fD4+Pj89P3xbLSsqLyUmfF4hPTw+XT0/fFwuezN9fFw/XD89P3xcP1wuP3xbfjpdLyxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS99LG4ubGFuZ3VhZ2VzLmJpY2VwWyJpbnRlcnBvbGF0ZWQtc3RyaW5nIl0uaW5zaWRlLmludGVycG9sYXRpb24uaW5zaWRlLmV4cHJlc3Npb24uaW5zaWRlPW4ubGFuZ3VhZ2VzLmJpY2VwfXJldHVybiBrZH12YXIgQ2QsZng7ZnVuY3Rpb24gVDIoKXtpZihmeClyZXR1cm4gQ2Q7Zng9MSxDZD1lLGUuZGlzcGxheU5hbWU9ImJpcmIiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmJpcmI9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse3N0cmluZzp7cGF0dGVybjovcj8oInwnKSg/OlxcLnwoPyFcMSlbXlxcXSkqXDEvLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOlsvXGJbQS1aXSg/OltcZF9dKlthLXpBLVpdXHcqKT9cYi8sL1xiKD86W0EtWl1cdyp8KD8hKD86dmFyfHZvaWQpXGIpW2Etel1cdyopKD89XHMrXHcrXHMqWzssPSgpXSkvXSxrZXl3b3JkOi9cYig/OmFzc2VydHxicmVha3xjYXNlfGNsYXNzfGNvbnN0fGRlZmF1bHR8ZWxzZXxlbnVtfGZpbmFsfGZvbGxvd3N8Zm9yfGdyYWJ8aWZ8bmVzdHxuZXd8bmV4dHxub1NlZWJ8cmV0dXJufHN0YXRpY3xzd2l0Y2h8dGhyb3d8dmFyfHZvaWR8d2hpbGUpXGIvLG9wZXJhdG9yOi9cK1wrfC0tfCYmfFx8XHx8PDw9P3w+Pj0/fH4oPzpcLz0/KT98WytcLSpcLyUmXnw9ITw+XT0/fFw/fDovLHZhcmlhYmxlOi9cYlthLXpfXVx3KlxiL30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiYmlyYiIsImZ1bmN0aW9uIix7bWV0YWRhdGE6e3BhdHRlcm46Lzxcdys+LyxncmVlZHk6ITAsYWxpYXM6InN5bWJvbCJ9fSl9cmV0dXJuIENkfXZhciBJZCxneDtmdW5jdGlvbiB4Migpe2lmKGd4KXJldHVybiBJZDtneD0xO3ZhciBlPW9hKCk7SWQ9bixuLmRpc3BsYXlOYW1lPSJiaXNvbiIsbi5hbGlhc2VzPVtdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSxhLmxhbmd1YWdlcy5iaXNvbj1hLmxhbmd1YWdlcy5leHRlbmQoImMiLHt9KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImJpc29uIiwiY29tbWVudCIse2Jpc29uOntwYXR0ZXJuOi9eKD86W14lXXwlKD8hJSkpKiUlW1xzXFNdKj8lJS8saW5zaWRlOntjOntwYXR0ZXJuOi8lXHtbXHNcU10qPyVcfXxceyg/Olx7W159XSpcfXxbXnt9XSkqXH0vLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eJT9ce3wlP1x9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sImJpc29uLXZhcmlhYmxlIjp7cGF0dGVybjovWyRAXSg/OjxbXlxzPl0rPik/W1x3JF0rLyxhbGlhczoidmFyaWFibGUiLGluc2lkZTp7cHVuY3R1YXRpb246Lzx8Pi99fSxyZXN0OmEubGFuZ3VhZ2VzLmN9fSxjb21tZW50OmEubGFuZ3VhZ2VzLmMuY29tbWVudCxzdHJpbmc6YS5sYW5ndWFnZXMuYy5zdHJpbmcscHJvcGVydHk6L1xTKyg/PTopLyxrZXl3b3JkOi8lXHcrLyxudW1iZXI6e3BhdHRlcm46LyhefFteQF0pXGIoPzoweFtcZGEtZl0rfFxkKykvaSxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovJVslP118W3w6O1xbXF08Pl0vfX19KX1yZXR1cm4gSWR9dmFyIE9kLG14O2Z1bmN0aW9uIEEyKCl7aWYobXgpcmV0dXJuIE9kO214PTEsT2Q9ZSxlLmRpc3BsYXlOYW1lPSJibmYiLGUuYWxpYXNlcz1bInJibmYiXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmJuZj17c3RyaW5nOntwYXR0ZXJuOi8iW15cclxuIl0qInwnW15cclxuJ10qJy99LGRlZmluaXRpb246e3BhdHRlcm46LzxbXjw+XHJcblx0XSs+KD89XHMqOjo9KS8sYWxpYXM6WyJydWxlIiwia2V5d29yZCJdLGluc2lkZTp7cHVuY3R1YXRpb246L148fD4kL319LHJ1bGU6e3BhdHRlcm46LzxbXjw+XHJcblx0XSs+LyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9ePHw+JC99fSxvcGVyYXRvcjovOjo9fFt8KClbXF17fSorP118XC57M30vfSxuLmxhbmd1YWdlcy5yYm5mPW4ubGFuZ3VhZ2VzLmJuZn1yZXR1cm4gT2R9dmFyIExkLGh4O2Z1bmN0aW9uIF8yKCl7aWYoaHgpcmV0dXJuIExkO2h4PTEsTGQ9ZSxlLmRpc3BsYXlOYW1lPSJicmFpbmZ1Y2siLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmJyYWluZnVjaz17cG9pbnRlcjp7cGF0dGVybjovPHw+LyxhbGlhczoia2V5d29yZCJ9LGluY3JlbWVudDp7cGF0dGVybjovXCsvLGFsaWFzOiJpbnNlcnRlZCJ9LGRlY3JlbWVudDp7cGF0dGVybjovLS8sYWxpYXM6ImRlbGV0ZWQifSxicmFuY2hpbmc6e3BhdHRlcm46L1xbfFxdLyxhbGlhczoiaW1wb3J0YW50In0sb3BlcmF0b3I6L1suLF0vLGNvbW1lbnQ6L1xTKy99fXJldHVybiBMZH12YXIgRGQsYng7ZnVuY3Rpb24gUjIoKXtpZihieClyZXR1cm4gRGQ7Yng9MSxEZD1lLGUuZGlzcGxheU5hbWU9ImJyaWdodHNjcmlwdCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuYnJpZ2h0c2NyaXB0PXtjb21tZW50Oi8oPzpcYnJlbXwnKS4qL2ksImRpcmVjdGl2ZS1zdGF0ZW1lbnQiOntwYXR0ZXJuOi8oXltcdCBdKikjKD86Y29uc3R8ZWxzZSg/OltcdCBdK2lmKT98ZW5kW1x0IF0raWZ8ZXJyb3J8aWYpLiovaW0sbG9va2JlaGluZDohMCxhbGlhczoicHJvcGVydHkiLGluc2lkZTp7ImVycm9yLW1lc3NhZ2UiOntwYXR0ZXJuOi8oXiNlcnJvcikuKy8sbG9va2JlaGluZDohMH0sZGlyZWN0aXZlOntwYXR0ZXJuOi9eIyg/OmNvbnN0fGVsc2UoPzpbXHQgXStpZik/fGVuZFtcdCBdK2lmfGVycm9yfGlmKS8sYWxpYXM6ImtleXdvcmQifSxleHByZXNzaW9uOntwYXR0ZXJuOi9bXHNcU10rLyxpbnNpZGU6bnVsbH19fSxwcm9wZXJ0eTp7cGF0dGVybjovKFtcclxueyxdW1x0IF0qKSg/Oig/IVxkKVx3K3wiKD86W14iXHJcbl18IiIpKiIoPyEiKSkoPz1bIFx0XSo6KS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OlteIlxyXG5dfCIiKSoiKD8hIikvLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXGJBc1tcdCBdKylcdysvaSxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOi9cYig/OkFzfERpbXxFYWNofEVsc2V8RWxzZWlmfEVuZHxFeGl0fEZvcnxGdW5jdGlvbnxHb3RvfElmfElufFByaW50fFJldHVybnxTdGVwfFN0b3B8U3VifFRoZW58VG98V2hpbGUpXGIvaSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvaSxmdW5jdGlvbjovXGIoPyFcZClcdysoPz1bXHQgXSpcKCkvLG51bWJlcjovKD86XGJcZCsoPzpcLlxkKyk/KD86W2VkXVsrLV1cZCspP3wmaFthLWZcZF0rKVxiWyUmISNdPy9pLG9wZXJhdG9yOi8tLXxcK1wrfD4+PT98PDw9P3w8PnxbLSsqL1xcPD5dPT98WzpePT9dfFxiKD86YW5kfG1vZHxub3R8b3IpXGIvaSxwdW5jdHVhdGlvbjovWy4sOygpW1xde31dLyxjb25zdGFudDovXGIoPzpMSU5FX05VTSlcYi9pfSxuLmxhbmd1YWdlcy5icmlnaHRzY3JpcHRbImRpcmVjdGl2ZS1zdGF0ZW1lbnQiXS5pbnNpZGUuZXhwcmVzc2lvbi5pbnNpZGU9bi5sYW5ndWFnZXMuYnJpZ2h0c2NyaXB0fXJldHVybiBEZH12YXIgTWQseXg7ZnVuY3Rpb24gTjIoKXtpZih5eClyZXR1cm4gTWQ7eXg9MSxNZD1lLGUuZGlzcGxheU5hbWU9ImJybyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuYnJvPXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcJF0pIy4qLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7aXRhbGljOi9cYig/OkZJWE1FfFRPRE98WFhYKVxiL319LHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxib29sZWFuOi9cYltURl1cYi8sZnVuY3Rpb246e3BhdHRlcm46LyhcYig/OmV2ZW50fGZ1bmN0aW9ufGhvb2spWyBcdF0rKVx3Kyg/Ojo6XHcrKT8vLGxvb2tiZWhpbmQ6ITB9LGJ1aWx0aW46Lyg/OkAoPzpsb2FkKD86LSg/OnBsdWdpbnxzaWdzKSk/fHVubG9hZHxwcmVmaXhlc3xpZm4/ZGVmfGVsc2V8KD86ZW5kKT9pZnxESVJ8RklMRU5BTUUpKXwoPzomPyg/OmFkZF9mdW5jfGNyZWF0ZV9leHBpcmV8ZGVmYXVsdHxkZWxldGVfZnVuY3xlbmNyeXB0fGVycm9yX2hhbmRsZXJ8ZXhwaXJlX2Z1bmN8Z3JvdXB8bG9nfG1lcmdlYWJsZXxvcHRpb25hbHxwZXJzaXN0ZW50fHByaW9yaXR5fHJhd19vdXRwdXR8cmVhZF9leHBpcmV8cmVkZWZ8cm90YXRlX2ludGVydmFsfHJvdGF0ZV9zaXplfHN5bmNocm9uaXplZHx0eXBlX2NvbHVtbnx3cml0ZV9leHBpcmUpKS8sY29uc3RhbnQ6e3BhdHRlcm46LyhcYmNvbnN0WyBcdF0rKVx3Ky9pLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6L1xiKD86YWRkfGFkZHJ8YWxhcm18YW55fGJvb2x8YnJlYWt8Y29uc3R8Y29udGludWV8Y291bnR8ZGVsZXRlfGRvdWJsZXxlbHNlfGVudW18ZXZlbnR8ZXhwb3J0fGZpbGV8Zm9yfGZ1bmN0aW9ufGdsb2JhbHxob29rfGlmfGlufGludHxpbnRlcnZhbHxsb2NhbHxtb2R1bGV8bmV4dHxvZnxvcGFxdWV8cGF0dGVybnxwb3J0fHByaW50fHJlY29yZHxyZXR1cm58c2NoZWR1bGV8c2V0fHN0cmluZ3xzdWJuZXR8dGFibGV8dGltZXx0aW1lb3V0fHVzaW5nfHZlY3Rvcnx3aGVuKVxiLyxvcGVyYXRvcjovLS0/fFwrXCs/fCE9Pz0/fDw9P3w+PT98PT0/PT98JiZ8XHxcfD98XD98XCp8XC98fnxcXnwlLyxudW1iZXI6L1xiMHhbXGRhLWZdK1xifCg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/L2kscHVuY3R1YXRpb246L1t7fVtcXTsoKSwuOl0vfX1yZXR1cm4gTWR9dmFyIFVkLEV4O2Z1bmN0aW9uIHcyKCl7aWYoRXgpcmV0dXJuIFVkO0V4PTEsVWQ9ZSxlLmRpc3BsYXlOYW1lPSJic2wiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmJzbD17Y29tbWVudDovXC9cLy4qLyxzdHJpbmc6W3twYXR0ZXJuOi8iKD86W14iXXwiIikqIig/ISIpLyxncmVlZHk6ITB9LHtwYXR0ZXJuOi8nKD86W14nXHJcblxcXXxcXC4pKicvfV0sa2V5d29yZDpbe3BhdHRlcm46LyhefFteXHdcdTA0MDAtXHUwNDg0XHUwNDg3LVx1MDUyZlx1MWQyYlx1MWQ3OFx1MmRlMC1cdTJkZmZcdWE2NDAtXHVhNjlmXHVmZTJlXHVmZTJmXSkoPzrQv9C+0LrQsHzQtNC70Y980L3QvtCy0YvQuXzQv9GA0LXRgNCy0LDRgtGMfNC/0L7Qv9GL0YLQutCwfNC40YHQutC70Y7Rh9C10L3QuNC1fNCy0YvQt9Cy0LDRgtGM0LjRgdC60LvRjtGH0LXQvdC40LV80LjQvdCw0YfQtXzQutC+0L3QtdGG0L/QvtC/0YvRgtC60Lh80L3QtdC+0L/RgNC10LTQtdC70LXQvdC+fNGE0YPQvdC60YbQuNGPfNC/0LXRgNC10Lx80LLQvtC30LLRgNCw0YJ80LrQvtC90LXRhtGE0YPQvdC60YbQuNC4fNC10YHQu9C4fNC40L3QsNGH0LXQtdGB0LvQuHzQv9GA0L7RhtC10LTRg9GA0LB80LrQvtC90LXRhtC/0YDQvtGG0LXQtNGD0YDRi3zRgtC+0LPQtNCwfNC30L3QsNGHfNGN0LrRgdC/0L7RgNGCfNC60L7QvdC10YbQtdGB0LvQuHzQuNC3fNC60LDQttC00L7Qs9C+fNC40YHRgtC40L3QsHzQu9C+0LbRjHzQv9C+fNGG0LjQutC7fNC60L7QvdC10YbRhtC40LrQu9CwfNCy0YvQv9C+0LvQvdC40YLRjCkoPyFbXHdcdTA0MDAtXHUwNDg0XHUwNDg3LVx1MDUyZlx1MWQyYlx1MWQ3OFx1MmRlMC1cdTJkZmZcdWE2NDAtXHVhNjlmXHVmZTJlXHVmZTJmXSkvaSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovXGIoPzpicmVha3xkb3xlYWNofGVsc2V8ZWxzZWlmfGVuZGRvfGVuZGZ1bmN0aW9ufGVuZGlmfGVuZHByb2NlZHVyZXxlbmR0cnl8ZXhjZXB0fGV4ZWN1dGV8ZXhwb3J0fGZhbHNlfGZvcnxmdW5jdGlvbnxpZnxpbnxuZXd8bnVsbHxwcm9jZWR1cmV8cmFpc2V8cmV0dXJufHRoZW58dG98dHJ1ZXx0cnl8dW5kZWZpbmVkfHZhbHx2YXJ8d2hpbGUpXGIvaX1dLG51bWJlcjp7cGF0dGVybjovKF4oPz1cZCl8W15cd1x1MDQwMC1cdTA0ODRcdTA0ODctXHUwNTJmXHUxZDJiXHUxZDc4XHUyZGUwLVx1MmRmZlx1YTY0MC1cdWE2OWZcdWZlMmVcdWZlMmZdKSg/OlxkKyg/OlwuXGQqKT98XC5cZCspKD86RVsrLV0/XGQrKT8vaSxsb29rYmVoaW5kOiEwfSxvcGVyYXRvcjpbL1s8PitcLSovXT0/fFslPV0vLHtwYXR0ZXJuOi8oXnxbXlx3XHUwNDAwLVx1MDQ4NFx1MDQ4Ny1cdTA1MmZcdTFkMmJcdTFkNzhcdTJkZTAtXHUyZGZmXHVhNjQwLVx1YTY5Zlx1ZmUyZVx1ZmUyZl0pKD860Lh80LjQu9C4fNC90LUpKD8hW1x3XHUwNDAwLVx1MDQ4NFx1MDQ4Ny1cdTA1MmZcdTFkMmJcdTFkNzhcdTJkZTAtXHUyZGZmXHVhNjQwLVx1YTY5Zlx1ZmUyZVx1ZmUyZl0pL2ksbG9va2JlaGluZDohMH0se3BhdHRlcm46L1xiKD86YW5kfG5vdHxvcilcYi9pfV0scHVuY3R1YXRpb246L1woXC58XC5cKXxbKClcW1xdOjssLl0vLGRpcmVjdGl2ZTpbe3BhdHRlcm46L14oWyBcdF0qKSYuKi9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJpbXBvcnRhbnQifSx7cGF0dGVybjovXihbIFx0XSopIy4qL2dtLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJpbXBvcnRhbnQifV19LG4ubGFuZ3VhZ2VzLm9zY3JpcHQ9bi5sYW5ndWFnZXMuYnNsfXJldHVybiBVZH12YXIgRmQsU3g7ZnVuY3Rpb24gazIoKXtpZihTeClyZXR1cm4gRmQ7U3g9MSxGZD1lLGUuZGlzcGxheU5hbWU9ImNmc2NyaXB0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5jZnNjcmlwdD1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7Y29tbWVudDpbe3BhdHRlcm46LyhefFteXFxdKVwvXCpbXHNcU10qPyg/OlwqXC98JCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnthbm5vdGF0aW9uOntwYXR0ZXJuOi8oPzpefFteLl0pQFtcd1wuXSsvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fX0se3BhdHRlcm46LyhefFteXFw6XSlcL1wvLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sa2V5d29yZDovXGIoPzphYnN0cmFjdHxicmVha3xjYXRjaHxjb21wb25lbnR8Y29udGludWV8ZGVmYXVsdHxkb3xlbHNlfGV4dGVuZHN8ZmluYWx8ZmluYWxseXxmb3J8ZnVuY3Rpb258aWZ8aW58aW5jbHVkZXxwYWNrYWdlfHByaXZhdGV8cHJvcGVydHl8cHVibGljfHJlbW90ZXxyZXF1aXJlZHxyZXRocm93fHJldHVybnxzdGF0aWN8c3dpdGNofHRocm93fHRyeXx2YXJ8d2hpbGV8eG1sKVxiKD8hXHMqPSkvLG9wZXJhdG9yOlsvXCtcK3wtLXwmJnxcfFx8fDo6fD0+fFshPV09PXw8PT98Pj0/fFstKyovJSZ8XiE9PD5dPT98XD8oPzpcLnw6KT98Wz86XS8sL1xiKD86YW5kfGNvbnRhaW5zfGVxfGVxdWFsfGVxdnxndHxndGV8aW1wfGlzfGx0fGx0ZXxtb2R8bm90fG9yfHhvcilcYi9dLHNjb3BlOntwYXR0ZXJuOi9cYig/OmFwcGxpY2F0aW9ufGFyZ3VtZW50c3xjZ2l8Y2xpZW50fGNvb2tpZXxsb2NhbHxzZXNzaW9ufHN1cGVyfHRoaXN8dmFyaWFibGVzKVxiLyxhbGlhczoiZ2xvYmFsIn0sdHlwZTp7cGF0dGVybjovXGIoPzphbnl8YXJyYXl8YmluYXJ5fGJvb2xlYW58ZGF0ZXxndWlkfG51bWVyaWN8cXVlcnl8c3RyaW5nfHN0cnVjdHx1dWlkfHZvaWR8eG1sKVxiLyxhbGlhczoiYnVpbHRpbiJ9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjZnNjcmlwdCIsImtleXdvcmQiLHsiZnVuY3Rpb24tdmFyaWFibGUiOntwYXR0ZXJuOi9bXyRhLXpBLVpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSooPz1ccypbPTpdXHMqKD86XGJmdW5jdGlvblxifCg/OlwoKD86W14oKV18XChbXigpXSpcKSkqXCl8KD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKVxzKj0+KSkvLGFsaWFzOiJmdW5jdGlvbiJ9fSksZGVsZXRlIG4ubGFuZ3VhZ2VzLmNmc2NyaXB0WyJjbGFzcy1uYW1lIl0sbi5sYW5ndWFnZXMuY2ZjPW4ubGFuZ3VhZ2VzLmNmc2NyaXB0fXJldHVybiBGZH12YXIgQmQsdng7ZnVuY3Rpb24gQzIoKXtpZih2eClyZXR1cm4gQmQ7dng9MTt2YXIgZT1uYigpO0JkPW4sbi5kaXNwbGF5TmFtZT0iY2hhaXNjcmlwdCIsbi5hbGlhc2VzPVtdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSxhLmxhbmd1YWdlcy5jaGFpc2NyaXB0PWEubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtzdHJpbmc6e3BhdHRlcm46LyhefFteXFxdKScoPzpbXidcXF18XFxbXHNcU10pKicvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOi8oXGJjbGFzc1xzKylcdysvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXGIoPzphdHRyfGRlZilccyspXHcrKD89XHMqOjopLyxsb29rYmVoaW5kOiEwfV0sa2V5d29yZDovXGIoPzphdHRyfGF1dG98YnJlYWt8Y2FzZXxjYXRjaHxjbGFzc3xjb250aW51ZXxkZWZ8ZGVmYXVsdHxlbHNlfGZpbmFsbHl8Zm9yfGZ1bnxnbG9iYWx8aWZ8cmV0dXJufHN3aXRjaHx0aGlzfHRyeXx2YXJ8d2hpbGUpXGIvLG51bWJlcjpbYS5sYW5ndWFnZXMuY3BwLm51bWJlciwvXGIoPzpJbmZpbml0eXxOYU4pXGIvXSxvcGVyYXRvcjovPj49P3w8PD0/fFx8XHx8JiZ8Ols6PV0/fC0tfFwrXCt8Wz0hPD4rXC0qLyV8Jl5dPT98Wz9+XXxgW15gXHJcbl17MSw0fWAvfSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjaGFpc2NyaXB0Iiwib3BlcmF0b3IiLHsicGFyYW1ldGVyLXR5cGUiOntwYXR0ZXJuOi8oWywoXVxzKilcdysoPz1ccytcdykvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNsYXNzLW5hbWUifX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY2hhaXNjcmlwdCIsInN0cmluZyIseyJzdHJpbmctaW50ZXJwb2xhdGlvbiI6e3BhdHRlcm46LyhefFteXFxdKSIoPzpbXiIkXFxdfFxcW1xzXFNdfFwkKD8hXHspfFwkXHsoPzpbXnt9XXxceyg/Oltee31dfFx7W157fV0qXH0pKlx9KSpcfSkqIi8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oKD86XnxbXlxcXSkoPzpcXHsyfSkqKVwkXHsoPzpbXnt9XXxceyg/Oltee31dfFx7W157fV0qXH0pKlx9KSpcfS8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJpbnRlcnBvbGF0aW9uLWV4cHJlc3Npb24iOntwYXR0ZXJuOi8oXlwkXHspW1xzXFNdKyg/PVx9JCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmEubGFuZ3VhZ2VzLmNoYWlzY3JpcHR9LCJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXlwkXHt8XH0kLyxhbGlhczoicHVuY3R1YXRpb24ifX19LHN0cmluZzovW1xzXFNdKy99fX0pfXJldHVybiBCZH12YXIgamQsVHg7ZnVuY3Rpb24gSTIoKXtpZihUeClyZXR1cm4gamQ7VHg9MSxqZD1lLGUuZGlzcGxheU5hbWU9ImNpbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuY2lsPXtjb21tZW50Oi9cL1wvLiovLHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxkaXJlY3RpdmU6e3BhdHRlcm46LyhefFxXKVwuW2Etel0rKD89XHMpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJjbGFzcy1uYW1lIn0sdmFyaWFibGU6L1xbW1x3XC5dK1xdLyxrZXl3b3JkOi9cYig/OmFic3RyYWN0fGFuc2l8YXNzZW1ibHl8YXV0b3xhdXRvY2hhcnxiZWZvcmVmaWVsZGluaXR8Ym9vbHxic3RyfGJ5dmFsc3RyfGNhdGNofGNoYXJ8Y2lsfGNsYXNzfGN1cnJlbmN5fGRhdGV8ZGVjaW1hbHxkZWZhdWx0fGVudW18ZXJyb3J8ZXhwbGljaXR8ZXh0ZW5kc3xleHRlcm58ZmFtYW5kYXNzZW18ZmFtaWx5fGZhbW9yYXNzZW18ZmluYWwoPzpseSk/fGZsb2F0MzJ8ZmxvYXQ2NHxoaWRlYnlzaWd8dT9pbnQoPzo4fDE2fDMyfDY0KT98aWFudHxpZGlzcGF0Y2h8aW1wbGVtZW50c3xpbXBvcnR8aW5pdG9ubHl8aW5zdGFuY2V8aW50ZXJmYWNlfGl1bmtub3dufGxpdGVyYWx8bHBzdHJ8bHBzdHJ1Y3R8bHB0c3RyfGxwd3N0cnxtYW5hZ2VkfG1ldGhvZHxuYXRpdmUoPzpUeXBlKT98bmVzdGVkfG5ld3Nsb3R8b2JqZWN0KD86cmVmKT98cGludm9rZWltcGx8cHJpdmF0ZXxwcml2YXRlc2NvcGV8cHVibGljfHJlcXNlY29ianxydHNwZWNpYWxuYW1lfHJ1bnRpbWV8c2VhbGVkfHNlcXVlbnRpYWx8c2VyaWFsaXphYmxlfHNwZWNpYWxuYW1lfHN0YXRpY3xzdHJpbmd8c3RydWN0fHN5c2NoYXJ8dGJzdHJ8dW5pY29kZXx1bm1hbmFnZWRleHB8dW5zaWduZWR8dmFsdWUoPzp0eXBlKT98dmFyaWFudHx2aXJ0dWFsfHZvaWQpXGIvLGZ1bmN0aW9uOi9cYig/Oig/OmNvbnN0cmFpbmVkfG5vfHJlYWRvbmx5fHRhaWx8dW5hbGlnbmVkfHZvbGF0aWxlKVwuKT8oPzpjb252XC4oPzpbaXVdWzEyNDhdP3xvdmZcLltpdV1bMTI0OF0/KD86XC51bik/fHJcLnVufHI0fHI4KXxsZGNcLig/Omk0KD86XC5cZCt8XC5bbU1dMXxcLnMpP3xpOHxyNHxyOCl8bGRlbGVtKD86XC5baXVdWzEyNDhdP3xcLnJbNDhdfFwucmVmfGEpP3xsZGluZFwuKD86W2l1XVsxMjQ4XT98cls0OF18cmVmKXxzdGVsZW1cLj8oPzppWzEyNDhdP3xyWzQ4XXxyZWYpP3xzdGluZFwuKD86aVsxMjQ4XT98cls0OF18cmVmKT98ZW5kKD86ZmF1bHR8ZmlsdGVyfGZpbmFsbHkpfGxkYXJnKD86XC5bMC0zc118YSg/Olwucyk/KT98bGRsb2MoPzpcLlxkK3xcLnMpP3xzdWIoPzpcLm92Zig/OlwudW4pPyk/fG11bCg/Olwub3ZmKD86XC51bik/KT98YWRkKD86XC5vdmYoPzpcLnVuKT8pP3xzdGxvYyg/OlwuWzAtM3NdKT98cmVmYW55KD86dHlwZXx2YWwpfGJsdCg/OlwudW4pPyg/Olwucyk/fGJsZSg/OlwudW4pPyg/Olwucyk/fGJndCg/OlwudW4pPyg/Olwucyk/fGJnZSg/OlwudW4pPyg/Olwucyk/fHVuYm94KD86XC5hbnkpP3xpbml0KD86YmxrfG9iail8Y2FsbCg/Oml8dmlydCk/fGJyZmFsc2UoPzpcLnMpP3xibmVcLnVuKD86XC5zKT98bGRsb2NhKD86XC5zKT98YnJ6ZXJvKD86XC5zKT98YnJ0cnVlKD86XC5zKT98YnJudWxsKD86XC5zKT98YnJpbnN0KD86XC5zKT98c3RhcmcoPzpcLnMpP3xsZWF2ZSg/Olwucyk/fHNocig/OlwudW4pP3xyZW0oPzpcLnVuKT98ZGl2KD86XC51bik/fGNsdCg/OlwudW4pP3xhbGlnbm1lbnR8Y2FzdGNsYXNzfGxkdmlydGZ0bnxiZXEoPzpcLnMpP3xja2Zpbml0ZXxsZHNmbGRhfGxkdG9rZW58bG9jYWxsb2N8bWtyZWZhbnl8cmV0aHJvd3xjZ3RcLnVufGFyZ2xpc3R8c3dpdGNofHN0c2ZsZHxzaXplb2Z8bmV3b2JqfG5ld2FycnxsZHNmbGR8bGRudWxsfGxkZmxkYXxpc2luc3R8dGhyb3d8c3RvYmp8c3RmbGR8bGRzdHJ8bGRvYmp8bGRsZW58bGRmdG58bGRmbGR8Y3BvYmp8Y3BibGt8YnJlYWt8YnJcLnN8eG9yfHNobHxyZXR8cG9wfG5vdHxub3B8bmVnfGptcHxkdXB8Y2d0fGNlcXxib3h8YW5kfG9yfGJyKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG51bWJlcjovXGItPyg/OjB4WzAtOWEtZl0rfFxkKykoPzpcLlswLTlhLWZdKyk/XGIvaSxwdW5jdHVhdGlvbjovW3t9W1xdOygpLDo9XXxJTF9bMC05QS1aYS16XSsvfX1yZXR1cm4gamR9dmFyIHpkLHh4O2Z1bmN0aW9uIE8yKCl7aWYoeHgpcmV0dXJuIHpkO3h4PTEsemQ9ZSxlLmRpc3BsYXlOYW1lPSJjbG9qdXJlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5jbG9qdXJlPXtjb21tZW50OntwYXR0ZXJuOi87LiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxdfFxcLikqIi8sZ3JlZWR5OiEwfSxjaGFyOi9cXFx3Ky8sc3ltYm9sOntwYXR0ZXJuOi8oXnxbXHMoKVxbXF17fSxdKTo6P1tcdyorIT8nPD49Ly4tXSsvLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6e3BhdHRlcm46LyhcKCkoPzotfC0+fC0+PnxcLnxcLlwufFwqfFwvfFwrfDx8PD18PXw9PXw+fD49fGFjY2Vzc29yfGFnZW50fGFnZW50LWVycm9yc3xhZ2V0fGFsZW5ndGh8YWxsLW5zfGFsdGVyfGFuZHxhcHBlbmQtY2hpbGR8YXBwbHl8YXJyYXktbWFwfGFzZXR8YXNldC1ib29sZWFufGFzZXQtYnl0ZXxhc2V0LWNoYXJ8YXNldC1kb3VibGV8YXNldC1mbG9hdHxhc2V0LWludHxhc2V0LWxvbmd8YXNldC1zaG9ydHxhc3NlcnR8YXNzb2N8YXdhaXR8YXdhaXQtZm9yfGJlYW58YmluZGluZ3xiaXQtYW5kfGJpdC1ub3R8Yml0LW9yfGJpdC1zaGlmdC1sZWZ0fGJpdC1zaGlmdC1yaWdodHxiaXQteG9yfGJvb2xlYW58YnJhbmNoXD98YnV0bGFzdHxieXRlfGNhc3R8Y2hhcnxjaGlsZHJlbnxjbGFzc3xjbGVhci1hZ2VudC1lcnJvcnN8Y29tbWVudHxjb21tdXRlfGNvbXB8Y29tcGFyYXRvcnxjb21wbGVtZW50fGNvbmNhdHxjb25kfGNvbmp8Y29uc3xjb25zdGFudGx5fGNvbnN0cnVjdC1wcm94eXxjb250YWluc1w/fGNvdW50fGNyZWF0ZS1uc3xjcmVhdGUtc3RydWN0fGN5Y2xlfGRlY3xkZWNsYXJlfGRlZnxkZWYtfGRlZmlubGluZXxkZWZpbnRlcmZhY2V8ZGVmbWFjcm98ZGVmbWV0aG9kfGRlZm11bHRpfGRlZm58ZGVmbi18ZGVmb25jZXxkZWZwcm9qZWN0fGRlZnByb3RvY29sfGRlZnJlY29yZHxkZWZzdHJ1Y3R8ZGVmdHlwZXxkZXJlZnxkaWZmZXJlbmNlfGRpc2p8ZGlzc29jfGRpc3RpbmN0fGRvfGRvYWxsfGRvY3xkb3J1bnxkb3NlcXxkb3N5bmN8ZG90aW1lc3xkb3RvfGRvdWJsZXxkb3dufGRyb3B8ZHJvcC13aGlsZXxlZGl0fGVuZFw/fGVuc3VyZXxldmFsfGV2ZXJ5XD98ZmFsc2VcP3xmZmlyc3R8ZmlsZS1zZXF8ZmlsdGVyfGZpbmR8ZmluZC1kb2N8ZmluZC1uc3xmaW5kLXZhcnxmaXJzdHxmbG9hdHxmbHVzaHxmbnxmbnNlcXxmb3J8ZnJlc3R8Z2Vuc3ltfGdldHxnZXQtcHJveHktY2xhc3N8aGFzaC1tYXB8aGFzaC1zZXR8aWRlbnRpY2FsXD98aWRlbnRpdHl8aWZ8aWYtbGV0fGlmLW5vdHxpbXBvcnR8aW4tbnN8aW5jfGluZGV4fGluc2VydC1jaGlsZHxpbnNlcnQtbGVmdHxpbnNlcnQtcmlnaHR8aW5zcGVjdC10YWJsZXxpbnNwZWN0LXRyZWV8aW5zdGFuY2VcP3xpbnR8aW50ZXJsZWF2ZXxpbnRlcnNlY3Rpb258aW50b3xpbnRvLWFycmF5fGl0ZXJhdGV8am9pbnxrZXl8a2V5c3xrZXl3b3JkfGtleXdvcmRcP3xsYXN0fGxhenktY2F0fGxhenktY29uc3xsZWZ0fGxlZnRzfGxldHxsaW5lLXNlcXxsaXN0fGxpc3RcKnxsb2FkfGxvYWQtZmlsZXxsb2NraW5nfGxvbmd8bG9vcHxtYWNyb2V4cGFuZHxtYWNyb2V4cGFuZC0xfG1ha2UtYXJyYXl8bWFrZS1ub2RlfG1hcHxtYXAtaW52ZXJ0fG1hcFw/fG1hcGNhdHxtYXh8bWF4LWtleXxtZW1mbnxtZXJnZXxtZXJnZS13aXRofG1ldGF8bWlufG1pbi1rZXl8bW9uaXRvci1lbnRlcnxuYW1lfG5hbWVzcGFjZXxuZWdcP3xuZXd8bmV3bGluZXxuZXh0fG5pbFw/fG5vZGV8bm90fG5vdC1hbnlcP3xub3QtZXZlcnlcP3xub3Q9fG5zfG5zLWltcG9ydHN8bnMtaW50ZXJuc3xucy1tYXB8bnMtbmFtZXxucy1wdWJsaWNzfG5zLXJlZmVyc3xucy1yZXNvbHZlfG5zLXVubWFwfG50aHxudGhyZXN0fG9yfHBhcnNlfHBhcnRpYWx8cGF0aHxwZWVrfHBvcHxwb3NcP3xwcnxwci1zdHJ8cHJpbnR8cHJpbnQtc3RyfHByaW50bG58cHJpbnRsbi1zdHJ8cHJufHBybi1zdHJ8cHJvamVjdHxwcm94eXxwcm94eS1tYXBwaW5nc3xxdW90fHF1b3RlfHJhbmR8cmFuZC1pbnR8cmFuZ2V8cmUtZmluZHxyZS1ncm91cHN8cmUtbWF0Y2hlcnxyZS1tYXRjaGVzfHJlLXBhdHRlcm58cmUtc2VxfHJlYWR8cmVhZC1saW5lfHJlY3VyfHJlZHVjZXxyZWZ8cmVmLXNldHxyZWZlcnxyZW18cmVtb3ZlfHJlbW92ZS1tZXRob2R8cmVtb3ZlLW5zfHJlbmFtZXxyZW5hbWUta2V5c3xyZXBlYXR8cmVwbGFjZXxyZXBsaWNhdGV8cmVzb2x2ZXxyZXN0fHJlc3VsdHNldC1zZXF8cmV2ZXJzZXxyZmlyc3R8cmlnaHR8cmlnaHRzfHJvb3R8cnJlc3R8cnNlcXxzZWNvbmR8c2VsZWN0fHNlbGVjdC1rZXlzfHNlbmR8c2VuZC1vZmZ8c2VxfHNlcS16aXB8c2VxXD98c2V0fHNldCF8c2hvcnR8c2x1cnB8c29tZXxzb3J0fHNvcnQtYnl8c29ydGVkLW1hcHxzb3J0ZWQtbWFwLWJ5fHNvcnRlZC1zZXR8c3BlY2lhbC1zeW1ib2xcP3xzcGxpdC1hdHxzcGxpdC13aXRofHN0cnxzdHJpbmdcP3xzdHJ1Y3R8c3RydWN0LW1hcHxzdWJzfHN1YnZlY3xzeW1ib2x8c3ltYm9sXD98c3luY3x0YWtlfHRha2UtbnRofHRha2Utd2hpbGV8dGVzdHx0aHJvd3x0aW1lfHRvLWFycmF5fHRvLWFycmF5LTJkfHRyZWUtc2VxfHRydWVcP3x0cnl8dW5pb258dXB8dXBkYXRlLXByb3h5fHZhbHx2YWxzfHZhcnx2YXItZ2V0fHZhci1zZXR8dmFyXD98dmVjdG9yfHZlY3Rvci16aXB8dmVjdG9yXD98d2hlbnx3aGVuLWZpcnN0fHdoZW4tbGV0fHdoZW4tbm90fHdpdGgtbG9jYWwtdmFyc3x3aXRoLW1ldGF8d2l0aC1vcGVufHdpdGgtb3V0LXN0cnx4bWwtc2VxfHhtbC16aXB8emVyb1w/fHppcG1hcHx6aXBwZXIpKD89W1xzKV18JCkvLGxvb2tiZWhpbmQ6ITB9LGJvb2xlYW46L1xiKD86ZmFsc2V8bmlsfHRydWUpXGIvLG51bWJlcjp7cGF0dGVybjovKF58W15cdyRAXSkoPzpcZCsoPzpbLy5dXGQrKT8oPzplWystXT9cZCspP3wweFthLWYwLTldK3xbMS05XVxkP3JbYS16MC05XSspW2xtbl0/KD8hW1x3JEBdKS9pLGxvb2tiZWhpbmQ6ITB9LGZ1bmN0aW9uOntwYXR0ZXJuOi8oKD86XnxbXiddKVwoKVtcdyorIT8nPD49Ly4tXSsoPz1bXHMpXXwkKS8sbG9va2JlaGluZDohMH0sb3BlcmF0b3I6L1sjQF5gfl0vLHB1bmN0dWF0aW9uOi9be31cW1xdKCksXS99fXJldHVybiB6ZH12YXIgcWQsQXg7ZnVuY3Rpb24gTDIoKXtpZihBeClyZXR1cm4gcWQ7QXg9MSxxZD1lLGUuZGlzcGxheU5hbWU9ImNtYWtlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5jbWFrZT17Y29tbWVudDovIy4qLyxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXlxcIl18XFwuKSoiLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi9cJFx7KD86W157fSRdfFwkXHtbXnt9JF0qXH0pKlx9LyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cJFx7fFx9Lyx2YXJpYWJsZTovXHcrL319fX0sdmFyaWFibGU6L1xiKD86Q01BS0VfXHcrfFx3K18oPzooPzpCSU5BUll8U09VUkNFKV9ESVJ8REVTQ1JJUFRJT058SE9NRVBBR0VfVVJMfFJPT1R8VkVSU0lPTig/Ol9NQUpPUnxfTUlOT1J8X1BBVENIfF9UV0VBSyk/KXwoPzpBTkRST0lEfEFQUExFfEJPUkxBTkR8QlVJTERfU0hBUkVEX0xJQlN8Q0FDSEV8Q1BBQ0tfKD86QUJTT0xVVEVfREVTVElOQVRJT05fRklMRVN8Q09NUE9ORU5UX0lOQ0xVREVfVE9QTEVWRUxfRElSRUNUT1JZfEVSUk9SX09OX0FCU09MVVRFX0lOU1RBTExfREVTVElOQVRJT058SU5DTFVERV9UT1BMRVZFTF9ESVJFQ1RPUll8SU5TVEFMTF9ERUZBVUxUX0RJUkVDVE9SWV9QRVJNSVNTSU9OU3xJTlNUQUxMX1NDUklQVHxQQUNLQUdJTkdfSU5TVEFMTF9QUkVGSVh8U0VUX0RFU1RESVJ8V0FSTl9PTl9BQlNPTFVURV9JTlNUQUxMX0RFU1RJTkFUSU9OKXxDVEVTVF8oPzpCSU5BUllfRElSRUNUT1JZfEJVSUxEX0NPTU1BTkR8QlVJTERfTkFNRXxCWlJfQ09NTUFORHxCWlJfVVBEQVRFX09QVElPTlN8Q0hBTkdFX0lEfENIRUNLT1VUX0NPTU1BTkR8Q09ORklHVVJBVElPTl9UWVBFfENPTkZJR1VSRV9DT01NQU5EfENPVkVSQUdFX0NPTU1BTkR8Q09WRVJBR0VfRVhUUkFfRkxBR1N8Q1VSTF9PUFRJT05TfENVU1RPTV8oPzpDT1ZFUkFHRV9FWENMVURFfEVSUk9SX0VYQ0VQVElPTnxFUlJPUl9NQVRDSHxFUlJPUl9QT1NUX0NPTlRFWFR8RVJST1JfUFJFX0NPTlRFWFR8TUFYSU1VTV9GQUlMRURfVEVTVF9PVVRQVVRfU0laRXxNQVhJTVVNX05VTUJFUl9PRl8oPzpFUlJPUlN8V0FSTklOR1MpfE1BWElNVU1fUEFTU0VEX1RFU1RfT1VUUFVUX1NJWkV8TUVNQ0hFQ0tfSUdOT1JFfFBPU1RfTUVNQ0hFQ0t8UE9TVF9URVNUfFBSRV9NRU1DSEVDS3xQUkVfVEVTVHxURVNUU19JR05PUkV8V0FSTklOR19FWENFUFRJT058V0FSTklOR19NQVRDSCl8Q1ZTX0NIRUNLT1VUfENWU19DT01NQU5EfENWU19VUERBVEVfT1BUSU9OU3xEUk9QX0xPQ0FUSU9OfERST1BfTUVUSE9EfERST1BfU0lURXxEUk9QX1NJVEVfQ0RBU0h8RFJPUF9TSVRFX1BBU1NXT1JEfERST1BfU0lURV9VU0VSfEVYVFJBX0NPVkVSQUdFX0dMT0J8R0lUX0NPTU1BTkR8R0lUX0lOSVRfU1VCTU9EVUxFU3xHSVRfVVBEQVRFX0NVU1RPTXxHSVRfVVBEQVRFX09QVElPTlN8SEdfQ09NTUFORHxIR19VUERBVEVfT1BUSU9OU3xMQUJFTFNfRk9SX1NVQlBST0pFQ1RTfE1FTU9SWUNIRUNLXyg/OkNPTU1BTkR8Q09NTUFORF9PUFRJT05TfFNBTklUSVpFUl9PUFRJT05TfFNVUFBSRVNTSU9OU19GSUxFfFRZUEUpfE5JR0hUTFlfU1RBUlRfVElNRXxQNF9DTElFTlR8UDRfQ09NTUFORHxQNF9PUFRJT05TfFA0X1VQREFURV9PUFRJT05TfFJVTl9DVVJSRU5UX1NDUklQVHxTQ1BfQ09NTUFORHxTSVRFfFNPVVJDRV9ESVJFQ1RPUll8U1VCTUlUX1VSTHxTVk5fQ09NTUFORHxTVk5fT1BUSU9OU3xTVk5fVVBEQVRFX09QVElPTlN8VEVTVF9MT0FEfFRFU1RfVElNRU9VVHxUUklHR0VSX1NJVEV8VVBEQVRFX0NPTU1BTkR8VVBEQVRFX09QVElPTlN8VVBEQVRFX1ZFUlNJT05fT05MWXxVU0VfTEFVTkNIRVJTKXxDWUdXSU58RU5WfEVYRUNVVEFCTEVfT1VUUFVUX1BBVEh8R0hTLU1VTFRJfElPU3xMSUJSQVJZX09VVFBVVF9QQVRIfE1JTkdXfE1TVkMoPzoxMHwxMXwxMnwxNHw2MHw3MHw3MXw4MHw5MHxfSURFfF9UT09MU0VUX1ZFUlNJT058X1ZFUlNJT04pP3xNU1lTfFBST0pFQ1RfKD86QklOQVJZX0RJUnxERVNDUklQVElPTnxIT01FUEFHRV9VUkx8TkFNRXxTT1VSQ0VfRElSfFZFUlNJT058VkVSU0lPTl8oPzpNQUpPUnxNSU5PUnxQQVRDSHxUV0VBSykpfFVOSVh8V0lOMzJ8V0lOQ0V8V0lORE9XU19QSE9ORXxXSU5ET1dTX1NUT1JFfFhDT0RFfFhDT0RFX1ZFUlNJT04pKVxiLyxwcm9wZXJ0eTovXGIoPzpjeHhfXHcrfCg/OkFSQ0hJVkVfT1VUUFVUXyg/OkRJUkVDVE9SWXxOQU1FKXxDT01QSUxFX0RFRklOSVRJT05TfENPTVBJTEVfUERCX05BTUV8Q09NUElMRV9QREJfT1VUUFVUX0RJUkVDVE9SWXxFWENMVURFX0ZST01fREVGQVVMVF9CVUlMRHxJTVBPUlRFRF8oPzpJTVBMSUJ8TElCTkFNRXxMSU5LX0RFUEVOREVOVF9MSUJSQVJJRVN8TElOS19JTlRFUkZBQ0VfTEFOR1VBR0VTfExJTktfSU5URVJGQUNFX0xJQlJBUklFU3xMSU5LX0lOVEVSRkFDRV9NVUxUSVBMSUNJVFl8TE9DQVRJT058Tk9fU09OQU1FfE9CSkVDVFN8U09OQU1FKXxJTlRFUlBST0NFRFVSQUxfT1BUSU1JWkFUSU9OfExJQlJBUllfT1VUUFVUX0RJUkVDVE9SWXxMSUJSQVJZX09VVFBVVF9OQU1FfExJTktfRkxBR1N8TElOS19JTlRFUkZBQ0VfTElCUkFSSUVTfExJTktfSU5URVJGQUNFX01VTFRJUExJQ0lUWXxMT0NBVElPTnxNQVBfSU1QT1JURURfQ09ORklHfE9TWF9BUkNISVRFQ1RVUkVTfE9VVFBVVF9OQU1FfFBEQl9OQU1FfFBEQl9PVVRQVVRfRElSRUNUT1JZfFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWXxSVU5USU1FX09VVFBVVF9OQU1FfFNUQVRJQ19MSUJSQVJZX0ZMQUdTfFZTX0NTSEFSUHxWU19ET1RORVRfUkVGRVJFTkNFUFJPUHxWU19ET1RORVRfUkVGRVJFTkNFfFZTX0dMT0JBTF9TRUNUSU9OX1BPU1R8VlNfR0xPQkFMX1NFQ1RJT05fUFJFfFZTX0dMT0JBTHxYQ09ERV9BVFRSSUJVVEUpX1x3K3xcdytfKD86Q0xBTkdfVElEWXxDT01QSUxFUl9MQVVOQ0hFUnxDUFBDSEVDS3xDUFBMSU5UfElOQ0xVREVfV0hBVF9ZT1VfVVNFfE9VVFBVVF9OQU1FfFBPU1RGSVh8VklTSUJJTElUWV9QUkVTRVQpfEFCU1RSQUNUfEFERElUSU9OQUxfTUFLRV9DTEVBTl9GSUxFU3xBRFZBTkNFRHxBTElBU0VEX1RBUkdFVHxBTExPV19EVVBMSUNBVEVfQ1VTVE9NX1RBUkdFVFN8QU5EUk9JRF8oPzpBTlRfQURESVRJT05BTF9PUFRJT05TfEFQSXxBUElfTUlOfEFSQ0h8QVNTRVRTX0RJUkVDVE9SSUVTfEdVSXxKQVJfREVQRU5ERU5DSUVTfE5BVElWRV9MSUJfREVQRU5ERU5DSUVTfE5BVElWRV9MSUJfRElSRUNUT1JJRVN8UFJPQ0VTU19NQVh8UFJPR1VBUkR8UFJPR1VBUkRfQ09ORklHX1BBVEh8U0VDVVJFX1BST1BTX1BBVEh8U0tJUF9BTlRfU1RFUHxTVExfVFlQRSl8QVJDSElWRV9PVVRQVVRfRElSRUNUT1JZfEFUVEFDSEVEX0ZJTEVTfEFUVEFDSEVEX0ZJTEVTX09OX0ZBSUx8QVVUT0dFTl8oPzpCVUlMRF9ESVJ8T1JJR0lOX0RFUEVORFN8UEFSQUxMRUx8U09VUkNFX0dST1VQfFRBUkdFVFNfRk9MREVSfFRBUkdFVF9ERVBFTkRTKXxBVVRPTU9DfEFVVE9NT0NfKD86Q09NUElMRVJfUFJFREVGSU5FU3xERVBFTkRfRklMVEVSU3xFWEVDVVRBQkxFfE1BQ1JPX05BTUVTfE1PQ19PUFRJT05TfFNPVVJDRV9HUk9VUHxUQVJHRVRTX0ZPTERFUil8QVVUT1JDQ3xBVVRPUkNDX0VYRUNVVEFCTEV8QVVUT1JDQ19PUFRJT05TfEFVVE9SQ0NfU09VUkNFX0dST1VQfEFVVE9VSUN8QVVUT1VJQ19FWEVDVVRBQkxFfEFVVE9VSUNfT1BUSU9OU3xBVVRPVUlDX1NFQVJDSF9QQVRIU3xCSU5BUllfRElSfEJVSUxEU1lTVEVNX1RBUkdFVFN8QlVJTERfUlBBVEh8QlVJTERfUlBBVEhfVVNFX09SSUdJTnxCVUlMRF9XSVRIX0lOU1RBTExfTkFNRV9ESVJ8QlVJTERfV0lUSF9JTlNUQUxMX1JQQVRIfEJVTkRMRXxCVU5ETEVfRVhURU5TSU9OfENBQ0hFX1ZBUklBQkxFU3xDTEVBTl9OT19DVVNUT018Q09NTU9OX0xBTkdVQUdFX1JVTlRJTUV8Q09NUEFUSUJMRV9JTlRFUkZBQ0VfKD86Qk9PTHxOVU1CRVJfTUFYfE5VTUJFUl9NSU58U1RSSU5HKXxDT01QSUxFXyg/OkRFRklOSVRJT05TfEZFQVRVUkVTfEZMQUdTfE9QVElPTlN8UERCX05BTUV8UERCX09VVFBVVF9ESVJFQ1RPUlkpfENPU1R8Q1BBQ0tfREVTS1RPUF9TSE9SVENVVFN8Q1BBQ0tfTkVWRVJfT1ZFUldSSVRFfENQQUNLX1BFUk1BTkVOVHxDUEFDS19TVEFSVFVQX1NIT1JUQ1VUU3xDUEFDS19TVEFSVF9NRU5VX1NIT1JUQ1VUU3xDUEFDS19XSVhfQUNMfENST1NTQ09NUElMSU5HX0VNVUxBVE9SfENVREFfRVhURU5TSU9OU3xDVURBX1BUWF9DT01QSUxBVElPTnxDVURBX1JFU09MVkVfREVWSUNFX1NZTUJPTFN8Q1VEQV9TRVBBUkFCTEVfQ09NUElMQVRJT058Q1VEQV9TVEFOREFSRHxDVURBX1NUQU5EQVJEX1JFUVVJUkVEfENYWF9FWFRFTlNJT05TfENYWF9TVEFOREFSRHxDWFhfU1RBTkRBUkRfUkVRVUlSRUR8Q19FWFRFTlNJT05TfENfU1RBTkRBUkR8Q19TVEFOREFSRF9SRVFVSVJFRHxERUJVR19DT05GSUdVUkFUSU9OU3xERUZJTkVfU1lNQk9MfERFRklOSVRJT05TfERFUEVORFN8REVQTE9ZTUVOVF9BRERJVElPTkFMX0ZJTEVTfERFUExPWU1FTlRfUkVNT1RFX0RJUkVDVE9SWXxESVNBQkxFRHxESVNBQkxFRF9GRUFUVVJFU3xFQ0xJUFNFX0VYVFJBX0NQUk9KRUNUX0NPTlRFTlRTfEVDTElQU0VfRVhUUkFfTkFUVVJFU3xFTkFCTEVEX0ZFQVRVUkVTfEVOQUJMRURfTEFOR1VBR0VTfEVOQUJMRV9FWFBPUlRTfEVOVklST05NRU5UfEVYQ0xVREVfRlJPTV9BTEx8RVhDTFVERV9GUk9NX0RFRkFVTFRfQlVJTER8RVhQT1JUX05BTUV8RVhQT1JUX1BST1BFUlRJRVN8RVhURVJOQUxfT0JKRUNUfEVjaG9TdHJpbmd8RkFJTF9SRUdVTEFSX0VYUFJFU1NJT058RklORF9MSUJSQVJZX1VTRV9MSUIzMl9QQVRIU3xGSU5EX0xJQlJBUllfVVNFX0xJQjY0X1BBVEhTfEZJTkRfTElCUkFSWV9VU0VfTElCWDMyX1BBVEhTfEZJTkRfTElCUkFSWV9VU0VfT1BFTkJTRF9WRVJTSU9OSU5HfEZJWFRVUkVTX0NMRUFOVVB8RklYVFVSRVNfUkVRVUlSRUR8RklYVFVSRVNfU0VUVVB8Rk9MREVSfEZSQU1FV09SS3xGb3J0cmFuX0ZPUk1BVHxGb3J0cmFuX01PRFVMRV9ESVJFQ1RPUll8R0VORVJBVEVEfEdFTkVSQVRPUl9GSUxFX05BTUV8R0VORVJBVE9SX0lTX01VTFRJX0NPTkZJR3xHSFNfSU5URUdSSVRZX0FQUHxHSFNfTk9fU09VUkNFX0dST1VQX0ZJTEV8R0xPQkFMX0RFUEVORFNfREVCVUdfTU9ERXxHTE9CQUxfREVQRU5EU19OT19DWUNMRVN8R05VdG9NU3xIQVNfQ1hYfEhFQURFUl9GSUxFX09OTFl8SEVMUFNUUklOR3xJTVBMSUNJVF9ERVBFTkRTX0lOQ0xVREVfVFJBTlNGT1JNfElNUE9SVEVEfElNUE9SVEVEXyg/OkNPTU1PTl9MQU5HVUFHRV9SVU5USU1FfENPTkZJR1VSQVRJT05TfEdMT0JBTHxJTVBMSUJ8TElCTkFNRXxMSU5LX0RFUEVOREVOVF9MSUJSQVJJRVN8TElOS19JTlRFUkZBQ0VfKD86TEFOR1VBR0VTfExJQlJBUklFU3xNVUxUSVBMSUNJVFkpfExPQ0FUSU9OfE5PX1NPTkFNRXxPQkpFQ1RTfFNPTkFNRSl8SU1QT1JUX1BSRUZJWHxJTVBPUlRfU1VGRklYfElOQ0xVREVfRElSRUNUT1JJRVN8SU5DTFVERV9SRUdVTEFSX0VYUFJFU1NJT058SU5TVEFMTF9OQU1FX0RJUnxJTlNUQUxMX1JQQVRIfElOU1RBTExfUlBBVEhfVVNFX0xJTktfUEFUSHxJTlRFUkZBQ0VfKD86QVVUT1VJQ19PUFRJT05TfENPTVBJTEVfREVGSU5JVElPTlN8Q09NUElMRV9GRUFUVVJFU3xDT01QSUxFX09QVElPTlN8SU5DTFVERV9ESVJFQ1RPUklFU3xMSU5LX0RFUEVORFN8TElOS19ESVJFQ1RPUklFU3xMSU5LX0xJQlJBUklFU3xMSU5LX09QVElPTlN8UE9TSVRJT05fSU5ERVBFTkRFTlRfQ09ERXxTT1VSQ0VTfFNZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTKXxJTlRFUlBST0NFRFVSQUxfT1BUSU1JWkFUSU9OfElOX1RSWV9DT01QSUxFfElPU19JTlNUQUxMX0NPTUJJTkVEfEpPQl9QT09MU3xKT0JfUE9PTF9DT01QSUxFfEpPQl9QT09MX0xJTkt8S0VFUF9FWFRFTlNJT058TEFCRUxTfExBTkdVQUdFfExJQlJBUllfT1VUUFVUX0RJUkVDVE9SWXxMSU5LRVJfTEFOR1VBR0V8TElOS18oPzpERVBFTkRTfERFUEVORFNfTk9fU0hBUkVEfERJUkVDVE9SSUVTfEZMQUdTfElOVEVSRkFDRV9MSUJSQVJJRVN8SU5URVJGQUNFX01VTFRJUExJQ0lUWXxMSUJSQVJJRVN8T1BUSU9OU3xTRUFSQ0hfRU5EX1NUQVRJQ3xTRUFSQ0hfU1RBUlRfU1RBVElDfFdIQVRfWU9VX1VTRSl8TElTVEZJTEVfU1RBQ0t8TE9DQVRJT058TUFDT1NYX0JVTkRMRXxNQUNPU1hfQlVORExFX0lORk9fUExJU1R8TUFDT1NYX0ZSQU1FV09SS19JTkZPX1BMSVNUfE1BQ09TWF9QQUNLQUdFX0xPQ0FUSU9OfE1BQ09TWF9SUEFUSHxNQUNST1N8TUFOVUFMTFlfQURERURfREVQRU5ERU5DSUVTfE1FQVNVUkVNRU5UfE1PRElGSUVEfE5BTUV8Tk9fU09OQU1FfE5PX1NZU1RFTV9GUk9NX0lNUE9SVEVEfE9CSkVDVF9ERVBFTkRTfE9CSkVDVF9PVVRQVVRTfE9TWF9BUkNISVRFQ1RVUkVTfE9VVFBVVF9OQU1FfFBBQ0tBR0VTX0ZPVU5EfFBBQ0tBR0VTX05PVF9GT1VORHxQQVJFTlRfRElSRUNUT1JZfFBBU1NfUkVHVUxBUl9FWFBSRVNTSU9OfFBEQl9OQU1FfFBEQl9PVVRQVVRfRElSRUNUT1JZfFBPU0lUSU9OX0lOREVQRU5ERU5UX0NPREV8UE9TVF9JTlNUQUxMX1NDUklQVHxQUkVERUZJTkVEX1RBUkdFVFNfRk9MREVSfFBSRUZJWHxQUkVfSU5TVEFMTF9TQ1JJUFR8UFJJVkFURV9IRUFERVJ8UFJPQ0VTU09SU3xQUk9DRVNTT1JfQUZGSU5JVFl8UFJPSkVDVF9MQUJFTHxQVUJMSUNfSEVBREVSfFJFUE9SVF9VTkRFRklORURfUFJPUEVSVElFU3xSRVFVSVJFRF9GSUxFU3xSRVNPVVJDRXxSRVNPVVJDRV9MT0NLfFJVTEVfTEFVTkNIX0NPTVBJTEV8UlVMRV9MQVVOQ0hfQ1VTVE9NfFJVTEVfTEFVTkNIX0xJTkt8UlVMRV9NRVNTQUdFU3xSVU5USU1FX09VVFBVVF9ESVJFQ1RPUll8UlVOX1NFUklBTHxTS0lQX0FVVE9HRU58U0tJUF9BVVRPTU9DfFNLSVBfQVVUT1JDQ3xTS0lQX0FVVE9VSUN8U0tJUF9CVUlMRF9SUEFUSHxTS0lQX1JFVFVSTl9DT0RFfFNPVVJDRVN8U09VUkNFX0RJUnxTT1ZFUlNJT058U1RBVElDX0xJQlJBUllfRkxBR1N8U1RBVElDX0xJQlJBUllfT1BUSU9OU3xTVFJJTkdTfFNVQkRJUkVDVE9SSUVTfFNVRkZJWHxTWU1CT0xJQ3xUQVJHRVRfQVJDSElWRVNfTUFZX0JFX1NIQVJFRF9MSUJTfFRBUkdFVF9NRVNTQUdFU3xUQVJHRVRfU1VQUE9SVFNfU0hBUkVEX0xJQlN8VEVTVFN8VEVTVF9JTkNMVURFX0ZJTEV8VEVTVF9JTkNMVURFX0ZJTEVTfFRJTUVPVVR8VElNRU9VVF9BRlRFUl9NQVRDSHxUWVBFfFVTRV9GT0xERVJTfFZBTFVFfFZBUklBQkxFU3xWRVJTSU9OfFZJU0lCSUxJVFlfSU5MSU5FU19ISURERU58VlNfKD86Q09ORklHVVJBVElPTl9UWVBFfENPUFlfVE9fT1VUX0RJUnxERUJVR0dFUl8oPzpDT01NQU5EfENPTU1BTkRfQVJHVU1FTlRTfEVOVklST05NRU5UfFdPUktJTkdfRElSRUNUT1JZKXxERVBMT1lNRU5UX0NPTlRFTlR8REVQTE9ZTUVOVF9MT0NBVElPTnxET1RORVRfUkVGRVJFTkNFU3xET1RORVRfUkVGRVJFTkNFU19DT1BZX0xPQ0FMfEdMT0JBTF9LRVlXT1JEfEdMT0JBTF9QUk9KRUNUX1RZUEVTfEdMT0JBTF9ST09UTkFNRVNQQUNFfElOQ0xVREVfSU5fVlNJWHxJT1RfU1RBUlRVUF9UQVNLfEtFWVdPUkR8UkVTT1VSQ0VfR0VORVJBVE9SfFNDQ19BVVhQQVRIfFNDQ19MT0NBTFBBVEh8U0NDX1BST0pFQ1ROQU1FfFNDQ19QUk9WSURFUnxTREtfUkVGRVJFTkNFU3xTSEFERVJfKD86RElTQUJMRV9PUFRJTUlaQVRJT05TfEVOQUJMRV9ERUJVR3xFTlRSWVBPSU5UfEZMQUdTfE1PREVMfE9CSkVDVF9GSUxFX05BTUV8T1VUUFVUX0hFQURFUl9GSUxFfFRZUEV8VkFSSUFCTEVfTkFNRSl8U1RBUlRVUF9QUk9KRUNUfFRPT0xfT1ZFUlJJREV8VVNFUl9QUk9QU3xXSU5SVF9DT01QT05FTlR8V0lOUlRfRVhURU5TSU9OU3xXSU5SVF9SRUZFUkVOQ0VTfFhBTUxfVFlQRSl8V0lMTF9GQUlMfFdJTjMyX0VYRUNVVEFCTEV8V0lORE9XU19FWFBPUlRfQUxMX1NZTUJPTFN8V09SS0lOR19ESVJFQ1RPUll8V1JBUF9FWENMVURFfFhDT0RFXyg/OkVNSVRfRUZGRUNUSVZFX1BMQVRGT1JNX05BTUV8RVhQTElDSVRfRklMRV9UWVBFfEZJTEVfQVRUUklCVVRFU3xMQVNUX0tOT1dOX0ZJTEVfVFlQRXxQUk9EVUNUX1RZUEV8U0NIRU1FXyg/OkFERFJFU1NfU0FOSVRJWkVSfEFERFJFU1NfU0FOSVRJWkVSX1VTRV9BRlRFUl9SRVRVUk58QVJHVU1FTlRTfERJU0FCTEVfTUFJTl9USFJFQURfQ0hFQ0tFUnxEWU5BTUlDX0xJQlJBUllfTE9BRFN8RFlOQU1JQ19MSU5LRVJfQVBJX1VTQUdFfEVOVklST05NRU5UfEVYRUNVVEFCTEV8R1VBUkRfTUFMTE9DfE1BSU5fVEhSRUFEX0NIRUNLRVJfU1RPUHxNQUxMT0NfR1VBUkRfRURHRVN8TUFMTE9DX1NDUklCQkxFfE1BTExPQ19TVEFDS3xUSFJFQURfU0FOSVRJWkVSKD86X1NUT1ApP3xVTkRFRklORURfQkVIQVZJT1VSX1NBTklUSVpFUig/Ol9TVE9QKT98Wk9NQklFX09CSkVDVFMpKXxYQ1RFU1QpXGIvLGtleXdvcmQ6L1xiKD86YWRkX2NvbXBpbGVfZGVmaW5pdGlvbnN8YWRkX2NvbXBpbGVfb3B0aW9uc3xhZGRfY3VzdG9tX2NvbW1hbmR8YWRkX2N1c3RvbV90YXJnZXR8YWRkX2RlZmluaXRpb25zfGFkZF9kZXBlbmRlbmNpZXN8YWRkX2V4ZWN1dGFibGV8YWRkX2xpYnJhcnl8YWRkX2xpbmtfb3B0aW9uc3xhZGRfc3ViZGlyZWN0b3J5fGFkZF90ZXN0fGF1eF9zb3VyY2VfZGlyZWN0b3J5fGJyZWFrfGJ1aWxkX2NvbW1hbmR8YnVpbGRfbmFtZXxjbWFrZV9ob3N0X3N5c3RlbV9pbmZvcm1hdGlvbnxjbWFrZV9taW5pbXVtX3JlcXVpcmVkfGNtYWtlX3BhcnNlX2FyZ3VtZW50c3xjbWFrZV9wb2xpY3l8Y29uZmlndXJlX2ZpbGV8Y29udGludWV8Y3JlYXRlX3Rlc3Rfc291cmNlbGlzdHxjdGVzdF9idWlsZHxjdGVzdF9jb25maWd1cmV8Y3Rlc3RfY292ZXJhZ2V8Y3Rlc3RfZW1wdHlfYmluYXJ5X2RpcmVjdG9yeXxjdGVzdF9tZW1jaGVja3xjdGVzdF9yZWFkX2N1c3RvbV9maWxlc3xjdGVzdF9ydW5fc2NyaXB0fGN0ZXN0X3NsZWVwfGN0ZXN0X3N0YXJ0fGN0ZXN0X3N1Ym1pdHxjdGVzdF90ZXN0fGN0ZXN0X3VwZGF0ZXxjdGVzdF91cGxvYWR8ZGVmaW5lX3Byb3BlcnR5fGVsc2V8ZWxzZWlmfGVuYWJsZV9sYW5ndWFnZXxlbmFibGVfdGVzdGluZ3xlbmRmb3JlYWNofGVuZGZ1bmN0aW9ufGVuZGlmfGVuZG1hY3JvfGVuZHdoaWxlfGV4ZWNfcHJvZ3JhbXxleGVjdXRlX3Byb2Nlc3N8ZXhwb3J0fGV4cG9ydF9saWJyYXJ5X2RlcGVuZGVuY2llc3xmaWxlfGZpbmRfZmlsZXxmaW5kX2xpYnJhcnl8ZmluZF9wYWNrYWdlfGZpbmRfcGF0aHxmaW5kX3Byb2dyYW18Zmx0a193cmFwX3VpfGZvcmVhY2h8ZnVuY3Rpb258Z2V0X2NtYWtlX3Byb3BlcnR5fGdldF9kaXJlY3RvcnlfcHJvcGVydHl8Z2V0X2ZpbGVuYW1lX2NvbXBvbmVudHxnZXRfcHJvcGVydHl8Z2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5fGdldF90YXJnZXRfcHJvcGVydHl8Z2V0X3Rlc3RfcHJvcGVydHl8aWZ8aW5jbHVkZXxpbmNsdWRlX2RpcmVjdG9yaWVzfGluY2x1ZGVfZXh0ZXJuYWxfbXNwcm9qZWN0fGluY2x1ZGVfZ3VhcmR8aW5jbHVkZV9yZWd1bGFyX2V4cHJlc3Npb258aW5zdGFsbHxpbnN0YWxsX2ZpbGVzfGluc3RhbGxfcHJvZ3JhbXN8aW5zdGFsbF90YXJnZXRzfGxpbmtfZGlyZWN0b3JpZXN8bGlua19saWJyYXJpZXN8bGlzdHxsb2FkX2NhY2hlfGxvYWRfY29tbWFuZHxtYWNyb3xtYWtlX2RpcmVjdG9yeXxtYXJrX2FzX2FkdmFuY2VkfG1hdGh8bWVzc2FnZXxvcHRpb258b3V0cHV0X3JlcXVpcmVkX2ZpbGVzfHByb2plY3R8cXRfd3JhcF9jcHB8cXRfd3JhcF91aXxyZW1vdmV8cmVtb3ZlX2RlZmluaXRpb25zfHJldHVybnxzZXBhcmF0ZV9hcmd1bWVudHN8c2V0fHNldF9kaXJlY3RvcnlfcHJvcGVydGllc3xzZXRfcHJvcGVydHl8c2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzfHNldF90YXJnZXRfcHJvcGVydGllc3xzZXRfdGVzdHNfcHJvcGVydGllc3xzaXRlX25hbWV8c291cmNlX2dyb3VwfHN0cmluZ3xzdWJkaXJfZGVwZW5kc3xzdWJkaXJzfHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zfHRhcmdldF9jb21waWxlX2ZlYXR1cmVzfHRhcmdldF9jb21waWxlX29wdGlvbnN8dGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXN8dGFyZ2V0X2xpbmtfZGlyZWN0b3JpZXN8dGFyZ2V0X2xpbmtfbGlicmFyaWVzfHRhcmdldF9saW5rX29wdGlvbnN8dGFyZ2V0X3NvdXJjZXN8dHJ5X2NvbXBpbGV8dHJ5X3J1bnx1bnNldHx1c2VfbWFuZ2xlZF9tZXNhfHV0aWxpdHlfc291cmNlfHZhcmlhYmxlX3JlcXVpcmVzfHZhcmlhYmxlX3dhdGNofHdoaWxlfHdyaXRlX2ZpbGUpKD89XHMqXCgpXGIvLGJvb2xlYW46L1xiKD86RkFMU0V8T0ZGfE9OfFRSVUUpXGIvLG5hbWVzcGFjZTovXGIoPzpJTlRFUkZBQ0V8UFJJVkFURXxQUk9QRVJUSUVTfFBVQkxJQ3xTSEFSRUR8U1RBVElDfFRBUkdFVF9PQkpFQ1RTKVxiLyxvcGVyYXRvcjovXGIoPzpBTkR8REVGSU5FRHxFUVVBTHxHUkVBVEVSfExFU1N8TUFUQ0hFU3xOT1R8T1J8U1RSRVFVQUx8U1RSR1JFQVRFUnxTVFJMRVNTfFZFUlNJT05fRVFVQUx8VkVSU0lPTl9HUkVBVEVSfFZFUlNJT05fTEVTUylcYi8saW5zZXJ0ZWQ6e3BhdHRlcm46L1xiXHcrOjpcdytcYi8sYWxpYXM6ImNsYXNzLW5hbWUifSxudW1iZXI6L1xiXGQrKD86XC5cZCspKlxiLyxmdW5jdGlvbjovXGJbYS16X11cdyooPz1ccypcKClcYi9pLHB1bmN0dWF0aW9uOi9bKCk+fV18XCRbPHtdL319cmV0dXJuIHFkfXZhciBQZCxfeDtmdW5jdGlvbiBEMigpe2lmKF94KXJldHVybiBQZDtfeD0xLFBkPWUsZS5kaXNwbGF5TmFtZT0iY29ib2wiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmNvYm9sPXtjb21tZW50OntwYXR0ZXJuOi9cKj4uKnwoXlsgXHRdKilcKi4qL20sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovW3h6Z25dPyg/OiIoPzpbXlxyXG4iXXwiIikqIig/ISIpfCcoPzpbXlxyXG4nXXwnJykqJyg/IScpKS9pLGdyZWVkeTohMH0sbGV2ZWw6e3BhdHRlcm46LyheWyBcdF0qKVxkK1xiL20sbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6Im51bWJlciJ9LCJjbGFzcy1uYW1lIjp7cGF0dGVybjovKFxicGljKD86dHVyZSk/XHMrKSg/Oig/OlstXHckLyw6Kis8Pl18XC4oPyFcc3wkKSkoPzpcKFxkK1wpKT8pKy9pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntudW1iZXI6e3BhdHRlcm46LyhcKClcZCsvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9bKCldL319LGtleXdvcmQ6e3BhdHRlcm46LyhefFteXHctXSkoPzpBQk9SVHxBQ0NFUFR8QUNDRVNTfEFERHxBRERSRVNTfEFEVkFOQ0lOR3xBRlRFUnxBTElHTkVEfEFMTHxBTFBIQUJFVHxBTFBIQUJFVElDfEFMUEhBQkVUSUMtTE9XRVJ8QUxQSEFCRVRJQy1VUFBFUnxBTFBIQU5VTUVSSUN8QUxQSEFOVU1FUklDLUVESVRFRHxBTFNPfEFMVEVSfEFMVEVSTkFURXxBTll8QVJFfEFSRUF8QVJFQVN8QVN8QVNDRU5ESU5HfEFTQ0lJfEFTU0lHTnxBU1NPQ0lBVEVELURBVEF8QVNTT0NJQVRFRC1EQVRBLUxFTkdUSHxBVHxBVFRSSUJVVEV8QVVUSE9SfEFVVE98QVVUTy1TS0lQfEJBQ0tHUk9VTkQtQ09MT1J8QkFDS0dST1VORC1DT0xPVVJ8QkFTSVN8QkVFUHxCRUZPUkV8QkVHSU5OSU5HfEJFTEx8QklOQVJZfEJJVHxCTEFOS3xCTElOS3xCTE9DS3xCT1RUT018Qk9VTkRTfEJZfEJZRlVOQ1RJT058QllUSVRMRXxDQUxMfENBTkNFTHxDQVBBQkxFfENDU1ZFUlNJT058Q0R8Q0Z8Q0h8Q0hBSU5JTkd8Q0hBTkdFRHxDSEFOTkVMfENIQVJBQ1RFUnxDSEFSQUNURVJTfENMQVNTfENMQVNTLUlEfENMT0NLLVVOSVRTfENMT1NFfENMT1NFLURJU1BPU0lUSU9OfENPQk9MfENPREV8Q09ERS1TRVR8Q09MfENPTExBVElOR3xDT0xVTU58Q09NLVJFR3xDT01NQXxDT01NSVRNRU5UfENPTU1PTnxDT01NVU5JQ0FUSU9OfENPTVB8Q09NUC0xfENPTVAtMnxDT01QLTN8Q09NUC00fENPTVAtNXxDT01QVVRBVElPTkFMfENPTVBVVEFUSU9OQUwtMXxDT01QVVRBVElPTkFMLTJ8Q09NUFVUQVRJT05BTC0zfENPTVBVVEFUSU9OQUwtNHxDT01QVVRBVElPTkFMLTV8Q09NUFVURXxDT05GSUdVUkFUSU9OfENPTlRBSU5TfENPTlRFTlR8Q09OVElOVUV8Q09OVFJPTHxDT05UUk9MLVBPSU5UfENPTlRST0xTfENPTlZFTlRJT058Q09OVkVSVElOR3xDT1BZfENPUlJ8Q09SUkVTUE9ORElOR3xDT1VOVHxDUlVOQ0h8Q1VSUkVOQ1l8Q1VSU09SfERBVEF8REFUQS1CQVNFfERBVEV8REFURS1DT01QSUxFRHxEQVRFLVdSSVRURU58REFZfERBWS1PRi1XRUVLfERCQ1N8REV8REVCVUctQ09OVEVOVFN8REVCVUctSVRFTXxERUJVRy1MSU5FfERFQlVHLU5BTUV8REVCVUctU1VCLTF8REVCVUctU1VCLTJ8REVCVUctU1VCLTN8REVCVUdHSU5HfERFQ0lNQUwtUE9JTlR8REVDTEFSQVRJVkVTfERFRkFVTFR8REVGQVVMVC1ESVNQTEFZfERFRklOSVRJT058REVMRVRFfERFTElNSVRFRHxERUxJTUlURVJ8REVQRU5ESU5HfERFU0NFTkRJTkd8REVTVElOQVRJT058REVUQUlMfERGSFJFU1B8REZIVkFMVUV8RElTQUJMRXxESVNLfERJU1BMQVl8RElTUExBWS0xfERJVklERXxESVZJU0lPTnxET05UQ0FSRXxET1VCTEV8RE9XTnxEVVBMSUNBVEVTfERZTkFNSUN8RUJDRElDfEVHQ1N8RUdJfEVMU0V8RU1JfEVNUFRZLUNIRUNLfEVOQUJMRXxFTkR8RU5ELUFDQ0VQVHxFTkQtQUREfEVORC1DQUxMfEVORC1DT01QVVRFfEVORC1ERUxFVEV8RU5ELURJVklERXxFTkQtRVZBTFVBVEV8RU5ELUlGfEVORC1NVUxUSVBMWXxFTkQtT0YtUEFHRXxFTkQtUEVSRk9STXxFTkQtUkVBRHxFTkQtUkVDRUlWRXxFTkQtUkVUVVJOfEVORC1SRVdSSVRFfEVORC1TRUFSQ0h8RU5ELVNUQVJUfEVORC1TVFJJTkd8RU5ELVNVQlRSQUNUfEVORC1VTlNUUklOR3xFTkQtV1JJVEV8RU5ESU5HfEVOVEVSfEVOVFJZfEVOVFJZLVBST0NFRFVSRXxFTlZJUk9OTUVOVHxFT0x8RU9QfEVPU3xFUkFTRXxFUlJPUnxFU0NBUEV8RVNJfEVWQUxVQVRFfEVWRU5UfEVWRVJZfEVYQ0VQVElPTnxFWENMVVNJVkV8RVhISUJJVHxFWElUfEVYUE9SVHxFWFRFTkR8RVhURU5ERUR8RVhURVJOQUx8RkR8RklMRXxGSUxFLUNPTlRST0x8RklMTEVSfEZJTkFMfEZJUlNUfEZPT1RJTkd8Rk9SfEZPUkVHUk9VTkQtQ09MT1J8Rk9SRUdST1VORC1DT0xPVVJ8RlJPTXxGVUxMfEZVTkNUSU9OfEZVTkNUSU9OLVBPSU5URVJ8RlVOQ1RJT05OQU1FfEdFTkVSQVRFfEdJVklOR3xHTE9CQUx8R098R09CQUNLfEdSSUR8R1JPVVB8SEVBRElOR3xISUdILVZBTFVFfEhJR0gtVkFMVUVTfEhJR0hMSUdIVHxJLU98SS1PLUNPTlRST0x8SUR8SURFTlRJRklDQVRJT058SUZ8SU1QTElDSVR8SU1QT1JUfElOfElOREVYfElOREVYRUR8SU5ESUNBVEV8SU5JVElBTHxJTklUSUFMSVpFfElOSVRJQVRFfElOUFVUfElOUFVULU9VVFBVVHxJTlNQRUNUfElOU1RBTExBVElPTnxJTlRFR0VSfElOVE98SU5WQUxJRHxJTlZPS0V8SVN8SlVTVHxKVVNUSUZJRUR8S0FOSkl8S0VQVHxLRVl8S0VZQk9BUkR8TEFCRUx8TEFOR1VBR0V8TEFTVHxMQnxMRHxMRUFESU5HfExFRlR8TEVGVExJTkV8TEVOR1RIfExFTkdUSC1DSEVDS3xMSUJBQ0NFU1N8TElCUEFSQU1FVEVSfExJQlJBUll8TElNSVR8TElNSVRTfExJTkFHRXxMSU5BR0UtQ09VTlRFUnxMSU5FfExJTkUtQ09VTlRFUnxMSU5FU3xMSU5LQUdFfExJU1R8TE9DQUx8TE9DQUwtU1RPUkFHRXxMT0NLfExPTkctREFURXxMT05HLVRJTUV8TE9XLVZBTFVFfExPVy1WQUxVRVN8TE9XRVJ8TE9XTElHSFR8TUVNT1JZfE1FUkdFfE1FU1NBR0V8TU1ERFlZWVl8TU9ERXxNT0RVTEVTfE1PUkUtTEFCRUxTfE1PVkV8TVVMVElQTEV8TVVMVElQTFl8TkFNRUR8TkFUSU9OQUx8TkFUSU9OQUwtRURJVEVEfE5BVElWRXxORUdBVElWRXxORVRXT1JLfE5FWFR8Tk98Tk8tRUNIT3xOVUxMfE5VTExTfE5VTUJFUnxOVU1FUklDfE5VTUVSSUMtREFURXxOVU1FUklDLUVESVRFRHxOVU1FUklDLVRJTUV8T0JKRUNULUNPTVBVVEVSfE9DQ1VSU3xPRFR8T0Z8T0ZGfE9NSVRURUR8T058T1BFTnxPUFRJT05BTHxPUkRFUnxPUkRFUkxZfE9SR0FOSVpBVElPTnxPVEhFUnxPVVRQVVR8T1ZFUkZMT1d8T1ZFUkxJTkV8T1dOfFBBQ0tFRC1ERUNJTUFMfFBBRERJTkd8UEFHRXxQQUdFLUNPVU5URVJ8UEFTU1dPUkR8UEVSRk9STXxQRnxQSHxQSUN8UElDVFVSRXxQTFVTfFBPSU5URVJ8UE9SVHxQT1NJVElPTnxQT1NJVElWRXxQUklOVEVSfFBSSU5USU5HfFBSSVZBVEV8UFJPQ0VEVVJFfFBST0NFRFVSRS1QT0lOVEVSfFBST0NFRFVSRVN8UFJPQ0VFRHxQUk9DRVNTfFBST0dSQU18UFJPR1JBTS1JRHxQUk9HUkFNLUxJQlJBUll8UFJPTVBUfFBVUkdFfFFVRVVFfFFVT1RFfFFVT1RFU3xSQU5ET018UkR8UkVBRHxSRUFERVJ8UkVBTHxSRUNFSVZFfFJFQ0VJVkVEfFJFQ09SRHxSRUNPUkRJTkd8UkVDT1JEU3xSRUNVUlNJVkV8UkVERUZJTkVTfFJFRUx8UkVGfFJFRkVSRU5DRXxSRUZFUkVOQ0VTfFJFTEFUSVZFfFJFTEVBU0V8UkVNQUlOREVSfFJFTUFSS1N8UkVNT1RFfFJFTU9WQUx8UkVNT1ZFfFJFTkFNRVN8UkVQTEFDRXxSRVBMQUNJTkd8UkVQT1JUfFJFUE9SVElOR3xSRVBPUlRTfFJFUVVJUkVEfFJFUlVOfFJFU0VSVkV8UkVTRVR8UkVUVVJOfFJFVFVSTi1DT0RFfFJFVFVSTklOR3xSRVZFUlNFLVZJREVPfFJFVkVSU0VEfFJFV0lORHxSRVdSSVRFfFJGfFJIfFJJR0hUfFJPVU5ERUR8UlVOfFNBTUV8U0FWRXxTQ1JFRU58U0R8U0VBUkNIfFNFQ1RJT058U0VDVVJFfFNFQ1VSSVRZfFNFR01FTlR8U0VHTUVOVC1MSU1JVHxTRUxFQ1R8U0VORHxTRU5URU5DRXxTRVBBUkFURXxTRVFVRU5DRXxTRVFVRU5USUFMfFNFVHxTSEFSRUR8U0hBUkVEQllBTEx8U0hBUkVEQllSVU5VTklUfFNIQVJJTkd8U0hJRlQtSU58U0hJRlQtT1VUfFNIT1JULURBVEV8U0lHTnxTSVpFfFNPUlR8U09SVC1DT05UUk9MfFNPUlQtQ09SRS1TSVpFfFNPUlQtRklMRS1TSVpFfFNPUlQtTUVSR0V8U09SVC1NRVNTQUdFfFNPUlQtTU9ERS1TSVpFfFNPUlQtUkVUVVJOfFNPVVJDRXxTT1VSQ0UtQ09NUFVURVJ8U1BBQ0V8U1BBQ0VTfFNQRUNJQUwtTkFNRVN8U1RBTkRBUkR8U1RBTkRBUkQtMXxTVEFOREFSRC0yfFNUQVJUfFNUQVRVU3xTVE9QfFNUUklOR3xTVUItUVVFVUUtMXxTVUItUVVFVUUtMnxTVUItUVVFVUUtM3xTVUJUUkFDVHxTVU18U1VQUFJFU1N8U1lNQk9MfFNZTUJPTElDfFNZTkN8U1lOQ0hST05JWkVEfFRBQkxFfFRBTExZfFRBTExZSU5HfFRBUEV8VEFTS3xURVJNSU5BTHxURVJNSU5BVEV8VEVTVHxURVhUfFRIRU58VEhSRUFEfFRIUkVBRC1MT0NBTHxUSFJPVUdIfFRIUlV8VElNRXxUSU1FUnxUSU1FU3xUSVRMRXxUT3xUT0RBWVMtREFURXxUT0RBWVMtTkFNRXxUT1B8VFJBSUxJTkd8VFJVTkNBVEVEfFRZUEV8VFlQRURFRnxVTkRFUkxJTkV8VU5JVHxVTlNUUklOR3xVTlRJTHxVUHxVUE9OfFVTQUdFfFVTRXxVU0lOR3xWQUxVRXxWQUxVRVN8VkFSWUlOR3xWSVJUVUFMfFdBSVR8V0hFTnxXSEVOLUNPTVBJTEVEfFdJVEh8V09SRFN8V09SS0lORy1TVE9SQUdFfFdSSVRFfFlFQVJ8WVlZWURERHxZWVlZTU1ERHxaRVJPLUZJTEx8WkVST0VTfFpFUk9TKSg/IVtcdy1dKS9pLGxvb2tiZWhpbmQ6ITB9LGJvb2xlYW46e3BhdHRlcm46LyhefFteXHctXSkoPzpmYWxzZXx0cnVlKSg/IVtcdy1dKS9pLGxvb2tiZWhpbmQ6ITB9LG51bWJlcjp7cGF0dGVybjovKF58W15cdy1dKSg/OlsrLV0/KD86KD86XGQrKD86Wy4sXVxkKyk/fFsuLF1cZCspKD86ZVsrLV0/XGQrKT98emVybykpKD8hW1x3LV0pL2ksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6Wy88PnxbPD5dPT98Wz0rKi8mXS8se3BhdHRlcm46LyhefFteXHctXSkoPzotfGFuZHxlcXVhbHxncmVhdGVyfGxlc3N8bm90fG9yfHRoYW4pKD8hW1x3LV0pL2ksbG9va2JlaGluZDohMH1dLHB1bmN0dWF0aW9uOi9bLjosKCldL319cmV0dXJuIFBkfXZhciBHZCxSeDtmdW5jdGlvbiBNMigpe2lmKFJ4KXJldHVybiBHZDtSeD0xLEdkPWUsZS5kaXNwbGF5TmFtZT0iY29mZmVlc2NyaXB0IixlLmFsaWFzZXM9WyJjb2ZmZWUiXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vIyg/IVx7KS4rLyxsPXtwYXR0ZXJuOi8jXHtbXn1dK1x9LyxhbGlhczoidmFyaWFibGUifTthLmxhbmd1YWdlcy5jb2ZmZWVzY3JpcHQ9YS5sYW5ndWFnZXMuZXh0ZW5kKCJqYXZhc2NyaXB0Iix7Y29tbWVudDppLHN0cmluZzpbe3BhdHRlcm46LycoPzpcXFtcc1xTXXxbXlxcJ10pKicvLGdyZWVkeTohMH0se3BhdHRlcm46LyIoPzpcXFtcc1xTXXxbXlxcIl0pKiIvLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246bH19XSxrZXl3b3JkOi9cYig/OmFuZHxicmVha3xieXxjYXRjaHxjbGFzc3xjb250aW51ZXxkZWJ1Z2dlcnxkZWxldGV8ZG98ZWFjaHxlbHNlfGV4dGVuZHxleHRlbmRzfGZhbHNlfGZpbmFsbHl8Zm9yfGlmfGlufGluc3RhbmNlb2Z8aXN8aXNudHxsZXR8bG9vcHxuYW1lc3BhY2V8bmV3fG5vfG5vdHxudWxsfG9mfG9mZnxvbnxvcnxvd258cmV0dXJufHN1cGVyfHN3aXRjaHx0aGVufHRoaXN8dGhyb3d8dHJ1ZXx0cnl8dHlwZW9mfHVuZGVmaW5lZHx1bmxlc3N8dW50aWx8d2hlbnx3aGlsZXx3aW5kb3d8d2l0aHx5ZXN8eWllbGQpXGIvLCJjbGFzcy1tZW1iZXIiOntwYXR0ZXJuOi9AKD8hXGQpXHcrLyxhbGlhczoidmFyaWFibGUifX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY29mZmVlc2NyaXB0IiwiY29tbWVudCIseyJtdWx0aWxpbmUtY29tbWVudCI6e3BhdHRlcm46LyMjI1tcc1xTXSs/IyMjLyxhbGlhczoiY29tbWVudCJ9LCJibG9jay1yZWdleCI6e3BhdHRlcm46L1wvezN9W1xzXFNdKj9cL3szfS8sYWxpYXM6InJlZ2V4IixpbnNpZGU6e2NvbW1lbnQ6aSxpbnRlcnBvbGF0aW9uOmx9fX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY29mZmVlc2NyaXB0Iiwic3RyaW5nIix7ImlubGluZS1qYXZhc2NyaXB0Ijp7cGF0dGVybjovYCg/OlxcW1xzXFNdfFteXFxgXSkqYC8saW5zaWRlOntkZWxpbWl0ZXI6e3BhdHRlcm46L15gfGAkLyxhbGlhczoicHVuY3R1YXRpb24ifSxzY3JpcHQ6e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJsYW5ndWFnZS1qYXZhc2NyaXB0IixpbnNpZGU6YS5sYW5ndWFnZXMuamF2YXNjcmlwdH19fSwibXVsdGlsaW5lLXN0cmluZyI6W3twYXR0ZXJuOi8nJydbXHNcU10qPycnJy8sZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmcifSx7cGF0dGVybjovIiIiW1xzXFNdKj8iIiIvLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIixpbnNpZGU6e2ludGVycG9sYXRpb246bH19XX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY29mZmVlc2NyaXB0Iiwia2V5d29yZCIse3Byb3BlcnR5Oi8oPyFcZClcdysoPz1ccyo6KD8hOikpL30pLGRlbGV0ZSBhLmxhbmd1YWdlcy5jb2ZmZWVzY3JpcHRbInRlbXBsYXRlLXN0cmluZyJdLGEubGFuZ3VhZ2VzLmNvZmZlZT1hLmxhbmd1YWdlcy5jb2ZmZWVzY3JpcHR9KShuKX1yZXR1cm4gR2R9dmFyIEhkLE54O2Z1bmN0aW9uIFUyKCl7aWYoTngpcmV0dXJuIEhkO054PTEsSGQ9ZSxlLmRpc3BsYXlOYW1lPSJjb25jdXJuYXMiLGUuYWxpYXNlcz1bImNvbmMiXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmNvbmN1cm5hcz17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pKD86XC9cKltcc1xTXSo/KD86XCpcL3wkKXxcL1wvLiopLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sbGFuZ2V4dDp7cGF0dGVybjovXGJcdytccypcfFx8W1xzXFNdKz9cfFx8LyxncmVlZHk6ITAsaW5zaWRlOnsiY2xhc3MtbmFtZSI6L15cdysvLHN0cmluZzp7cGF0dGVybjovKF5ccypcfFx8KVtcc1xTXSsoPz1cfFx8JCkvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9cfFx8L319LGZ1bmN0aW9uOntwYXR0ZXJuOi8oKD86XnxccylkZWZbIFx0XSspW2EtekEtWl9dXHcqKD89XHMqXCgpLyxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOi9cYig/OmFic3RyYWN0fGFjdG9yfGFsc298YW5ub3RhdGlvbnxhc3NlcnR8YXN5bmN8YXdhaXR8Ym9vbHxib29sZWFufGJyZWFrfGJ5dGV8Y2FzZXxjYXRjaHxjaGFuZ2VkfGNoYXJ8Y2xhc3N8Y2xvc2VkfGNvbnN0YW50fGNvbnRpbnVlfGRlZnxkZWZhdWx0fGRlbHxkb3VibGV8ZWxpZnxlbHNlfGVudW18ZXZlcnl8ZXh0ZW5kc3xmYWxzZXxmaW5hbGx5fGZsb2F0fGZvcnxmcm9tfGdsb2JhbHxncHVkZWZ8Z3B1a2VybmVsfGlmfGltcG9ydHxpbnxpbml0fGluamVjdHxpbnR8bGFtYmRhfGxvY2FsfGxvbmd8bG9vcHxtYXRjaHxuZXd8bm9kZWZhdWx0fG51bGx8b2Z8b25jaGFuZ2V8b3BlbnxvdXR8b3ZlcnJpZGV8cGFja2FnZXxwYXJmb3J8cGFyZm9yc3luY3xwb3N0fHByZXxwcml2YXRlfHByb3RlY3RlZHxwcm92aWRlfHByb3ZpZGVyfHB1YmxpY3xyZXR1cm58c2hhcmVkfHNob3J0fHNpbmdsZXxzaXplX3R8c2l6ZW9mfHN1cGVyfHN5bmN8dGhpc3x0aHJvd3x0cmFpdHx0cmFuc3x0cmFuc2llbnR8dHJ1ZXx0cnl8dHlwZWRlZnx1bmNoZWNrZWR8dXNpbmd8dmFsfHZhcnx2b2lkfHdoaWxlfHdpdGgpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sbnVtYmVyOi9cYjBiWzAxXVswMV9dKkw/XGJ8XGIweCg/OltcZGEtZl9dKlwuKT9bXGRhLWZfcCstXStcYnwoPzpcYlxkW1xkX10qKD86XC5bXGRfXSopP3xcQlwuXGRbXGRfXSopKD86ZVsrLV0/XGRbXGRfXSopP1tkZmxzXT8vaSxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS8sb3BlcmF0b3I6Lzw9PXw+PT18PT58LT58PC18PD58Jj09fCY8PnxcPzo/fFwuXD98XCtcK3wtLXxbLSsqLz08Pl09P3xbIV5+XXxcYig/OmFuZHxhc3xiYW5kfGJvcnxieG9yfGNvbXB8aXN8aXNub3R8bW9kfG9yKVxiPT8vLGFubm90YXRpb246e3BhdHRlcm46L0AoPzpcdys6KT8oPzpcdyt8XFtbXlxdXStcXSk/LyxhbGlhczoiYnVpbHRpbiJ9fSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNvbmN1cm5hcyIsImxhbmdleHQiLHsicmVnZXgtbGl0ZXJhbCI6e3BhdHRlcm46L1xicigifCcpKD86XFwufCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46LygoPzpefFteXFxdKSg/OlxcezJ9KSopXHsoPzpbXnt9XXxceyg/Oltee31dfFx7W159XSpcfSkqXH0pK1x9Lyxsb29rYmVoaW5kOiEwLGluc2lkZTpuLmxhbmd1YWdlcy5jb25jdXJuYXN9LHJlZ2V4Oi9bXHNcU10rL319LCJzdHJpbmctbGl0ZXJhbCI6e3BhdHRlcm46Lyg/OlxCfFxicykoInwnKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oKD86XnxbXlxcXSkoPzpcXHsyfSkqKVx7KD86W157fV18XHsoPzpbXnt9XXxce1tefV0qXH0pKlx9KStcfS8sbG9va2JlaGluZDohMCxpbnNpZGU6bi5sYW5ndWFnZXMuY29uY3VybmFzfSxzdHJpbmc6L1tcc1xTXSsvfX19KSxuLmxhbmd1YWdlcy5jb25jPW4ubGFuZ3VhZ2VzLmNvbmN1cm5hc31yZXR1cm4gSGR9dmFyICRkLHd4O2Z1bmN0aW9uIEYyKCl7aWYod3gpcmV0dXJuICRkO3d4PTEsJGQ9ZSxlLmRpc3BsYXlOYW1lPSJjb3EiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXtmb3IodmFyIGk9L1woXCooPzpbXigqXXxcKCg/IVwqKXxcKig/IVwpKXw8c2VsZj4pKlwqXCkvLnNvdXJjZSxsPTA7bDwyO2wrKylpPWkucmVwbGFjZSgvPHNlbGY+L2csZnVuY3Rpb24oKXtyZXR1cm4gaX0pO2k9aS5yZXBsYWNlKC88c2VsZj4vZywiW10iKSxhLmxhbmd1YWdlcy5jb3E9e2NvbW1lbnQ6UmVnRXhwKGkpLHN0cmluZzp7cGF0dGVybjovIig/OlteIl18IiIpKiIoPyEiKS8sZ3JlZWR5OiEwfSxhdHRyaWJ1dGU6W3twYXR0ZXJuOlJlZ0V4cCgvI1xbKD86W15cW1xdKCJdfCIoPzpbXiJdfCIiKSoiKD8hIil8XCgoPyFcKil8PGNvbW1lbnQ+KSpcXS8uc291cmNlLnJlcGxhY2UoLzxjb21tZW50Pi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksZ3JlZWR5OiEwLGFsaWFzOiJhdHRyLW5hbWUiLGluc2lkZTp7Y29tbWVudDpSZWdFeHAoaSksc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXXwiIikqIig/ISIpLyxncmVlZHk6ITB9LG9wZXJhdG9yOi89LyxwdW5jdHVhdGlvbjovXiNcW3xcXSR8WywoKV0vfX0se3BhdHRlcm46L1xiKD86Q3VtdWxhdGl2ZXxHbG9iYWx8TG9jYWx8TW9ub21vcnBoaWN8Tm9uQ3VtdWxhdGl2ZXxQb2x5bW9ycGhpY3xQcml2YXRlfFByb2dyYW0pXGIvLGFsaWFzOiJhdHRyLW5hbWUifV0sa2V5d29yZDovXGIoPzpBYm9ydHxBYm91dHxBZGR8QWRtaXR8QWRtaXR0ZWR8QWxsfEFyZ3VtZW50c3xBc3xBc3N1bXB0aW9uc3xBeGlvbXxBeGlvbXN8QmFja3xCYWNrVG98QmFja3RyYWNlfEJpbk9wfEJpbk9wU3BlY3xCaW5SZWx8QmluZHxCbGFja2xpc3R8Q2Fub25pY2FsfENhc2V8Q2R8Q2hlY2t8Q2xhc3N8Q2xhc3Nlc3xDbG9zZXxDb0ZpeHBvaW50fENvSW5kdWN0aXZlfENvZXJjaW9ufENvZXJjaW9uc3xDb2xsZWN0aW9ufENvbWJpbmVkfENvbXB1dGV8Q29uamVjdHVyZXxDb25qZWN0dXJlc3xDb25zdGFudHxDb25zdGFudHN8Q29uc3RyYWludHxDb25zdHJ1Y3RvcnN8Q29udGV4dHxDb3JvbGxhcnl8Q3JlYXRlfENzdE9wfEN1c3RvbXxDdXR8RGVidWd8RGVjbGFyZXxEZWZpbmVkfERlZmluaXRpb258RGVsaW1pdHxEZXBlbmRlbmNpZXN8RGVwZW5kZW50fERlcml2ZXxEaWZmc3xEcm9wfEVsaW1pbmF0aW9ufEVuZHxFbnRyeXxFcXVhbGl0eXxFdmFsfEV4YW1wbGV8RXhpc3RlbnRpYWx8RXhpc3RlbnRpYWxzfEV4aXN0aW5nfEV4cG9ydHxFeHRlcm58RXh0cmFjdGlvbnxGYWN0fEZhaWx8RmllbGR8RmlsZXxGaXJzdG9yZGVyfEZpeHBvaW50fEZsYWdzfEZvY3VzfEZyb218RnVuY2xhc3N8RnVuY3Rpb258RnVuY3Rpb25hbHxHQ3xHZW5lcmFsaXphYmxlfEdvYWx8R3JhYnxHcmFtbWFyfEdyYXBofEd1YXJkZWR8SGFza2VsbHxIZWFwfEhpZGV8SGludHxIaW50RGJ8SGludHN8SHlwb3RoZXNlc3xIeXBvdGhlc2lzfElGfElkZW50aXR5fEltbWVkaWF0ZXxJbXBsaWNpdHxJbXBsaWNpdHN8SW1wb3J0fEluY2x1ZGV8SW5kdWN0aW9ufEluZHVjdGl2ZXxJbmZpeHxJbmZvfEluaXRpYWx8SW5qVHlwfElubGluZXxJbnNwZWN0fEluc3RhbmNlfEluc3RhbmNlc3xJbnRyb3xJbnRyb3N8SW52ZXJzaW9ufEludmVyc2lvbl9jbGVhcnxKU09OfExhbmd1YWdlfExlZnR8TGVtbWF8TGV0fExpYXxMaWJyYXJpZXN8TGlicmFyeXxMb2FkfExvYWRQYXRofExvY2F0ZXxMdGFjfEx0YWMyfE1MfE1hdGNofE1ldGhvZHxNaW5pbWFsaXR5fE1vZHVsZXxNb2R1bGVzfE1vcnBoaXNtfE5leHR8Tm9JbmxpbmV8Tm90YXRpb258TnVtYmVyfE9DYW1sfE9ibGlnYXRpb258T2JsaWdhdGlvbnN8T3BhcXVlfE9wZW58T3B0aW1pemV8UGFyYW1ldGVyfFBhcmFtZXRlcnN8UGFyYW1ldHJpY3xQYXRofFBhdGhzfFByZW5leHxQcmV0ZXJtfFByaW1pdGl2ZXxQcmludHxQcm9maWxlfFByb2plY3Rpb25zfFByb29mfFByb3B8UHJvcEJpbk9wfFByb3BPcHxQcm9wVU9wfFByb3BlcnR5fFByb3Bvc2l0aW9ufFB3ZHxRZWR8UXVpdHxSZWN8UmVjb3JkfFJlY3Vyc2l2ZXxSZWRpcmVjdHxSZWR1Y3Rpb258UmVnaXN0ZXJ8UmVsYXRpb258UmVtYXJrfFJlbW92ZXxSZXF1aXJlfFJlc2VydmVkfFJlc2V0fFJlc29sdmV8UmVzdGFydHxSZXdyaXRlfFJpZ2h0fFJpbmd8UmluZ3N8U1Byb3B8U2F0dXJhdGV8U2F2ZXxTY2hlbWV8U2NvcGV8U2NvcGVzfFNlYXJjaHxTZWFyY2hIZWFkfFNlYXJjaFBhdHRlcm58U2VhcmNoUmV3cml0ZXxTZWN0aW9ufFNlcGFyYXRlfFNldHxTZXRvaWR8U2hvd3xTaWduYXR1cmVzfFNvbHZlfFNvbHZlcnxTb3J0fFNvcnRjbGFzc3xTb3J0ZWR8U3BlY3xTdGVwfFN0cmF0ZWdpZXN8U3RyYXRlZ3l8U3RyaW5nfFN0cnVjdHVyZXxTdWJDbGFzc3xTdWJncmFwaHxTdWNoVGhhdHxUYWN0aWN8VGVybXxUZXN0Q29tcGlsZXxUaGVvcmVtfFRpbWV8VGltZW91dHxUb3xUcmFuc3BhcmVudHxUeXBlfFR5cGVjbGFzc2VzfFR5cGVzfFR5cGluZ3xVbk9wfFVuT3BTcGVjfFVuZGVsaW1pdHxVbmRvfFVuZm9jdXN8VW5mb2N1c2VkfFVuZm9sZHxVbml2ZXJzZXxVbml2ZXJzZXN8VW5zaGVsdmV8VmFyaWFibGV8VmFyaWFibGVzfFZhcmlhbnR8VmVyYm9zZXxWaWV3fFZpc2liaWxpdHl8WmlmeXxffGFwcGx5fGFzfGF0fGJ5fGNvZml4fGVsc2V8ZW5kfGV4aXN0c3xleGlzdHMyfGZpeHxmb3J8Zm9yYWxsfGZ1bnxpZnxpbnxsZXR8bWF0Y2h8bWVhc3VyZXxtb3ZlfHJlbW92ZWR8cmV0dXJufHN0cnVjdHx0aGVufHVzaW5nfHdmfHdoZXJlfHdpdGgpXGIvLG51bWJlcjovXGIoPzoweFthLWYwLTldW2EtZjAtOV9dKig/OlwuW2EtZjAtOV9dKyk/KD86cFsrLV0/XGRbXGRfXSopP3xcZFtcZF9dKig/OlwuW1xkX10rKT8oPzplWystXT9cZFtcZF9dKik/KVxiL2kscHVuY3Q6e3BhdHRlcm46L0Bce3xce1x8fFxbPXw6Pi8sYWxpYXM6InB1bmN0dWF0aW9uIn0sb3BlcmF0b3I6L1wvXFx8XFxcL3xcLnsyLDN9fDp7MSwyfT18XCpcKnxbLT1dPnw8KD86LT4/fFsrOj0+XXw8Oil8Pig/Oj18LT4pfFx8Wy18XT98Wy0hJSYqKy88PT4/QF5+J10vLHB1bmN0dWF0aW9uOi9cLlwofGBcKHxAXHt8YFx7fFx7XHx8XFs9fDo+fFs6Liw7KCl7fVxbXF1dL319KShuKX1yZXR1cm4gJGR9dmFyIFZkLGt4O2Z1bmN0aW9uIFZsKCl7aWYoa3gpcmV0dXJuIFZkO2t4PTEsVmQ9ZSxlLmRpc3BsYXlOYW1lPSJydWJ5IixlLmFsaWFzZXM9WyJyYiJdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2EubGFuZ3VhZ2VzLnJ1Ynk9YS5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2NvbW1lbnQ6e3BhdHRlcm46LyMuKnxePWJlZ2luXHNbXHNcU10qP149ZW5kL20sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmNsYXNzfG1vZHVsZSlccyt8XGJjYXRjaFxzK1woKVtcdy5cXF0rfFxiW0EtWl9dXHcqKD89XHMqXC5ccypuZXdcYikvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovWy5cXF0vfX0sa2V5d29yZDovXGIoPzpCRUdJTnxFTkR8YWxpYXN8YW5kfGJlZ2lufGJyZWFrfGNhc2V8Y2xhc3N8ZGVmfGRlZmluZV9tZXRob2R8ZGVmaW5lZHxkb3xlYWNofGVsc2V8ZWxzaWZ8ZW5kfGVuc3VyZXxleHRlbmR8Zm9yfGlmfGlufGluY2x1ZGV8bW9kdWxlfG5ld3xuZXh0fG5pbHxub3R8b3J8cHJlcGVuZHxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmFpc2V8cmVkb3xyZXF1aXJlfHJlc2N1ZXxyZXRyeXxyZXR1cm58c2VsZnxzdXBlcnx0aGVufHRocm93fHVuZGVmfHVubGVzc3x1bnRpbHx3aGVufHdoaWxlfHlpZWxkKVxiLyxvcGVyYXRvcjovXC57MiwzfXwmXC58PT09fDw/PT58WyE9XT9+fCg/OiYmfFx8XHx8PDx8Pj58XCpcKnxbK1wtKi8lPD4hXiZ8PV0pPT98Wz86XS8scHVuY3R1YXRpb246L1soKXt9W1xdLiw7XS99KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInJ1YnkiLCJvcGVyYXRvciIseyJkb3VibGUtY29sb24iOntwYXR0ZXJuOi86Oi8sYWxpYXM6InB1bmN0dWF0aW9uIn19KTt2YXIgaT17cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKikjXHsoPzpbXnt9XXxce1tee31dKlx9KSpcfS8sbG9va2JlaGluZDohMCxpbnNpZGU6e2NvbnRlbnQ6e3BhdHRlcm46L14oI1x7KVtcc1xTXSsoPz1cfSQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTphLmxhbmd1YWdlcy5ydWJ5fSxkZWxpbWl0ZXI6e3BhdHRlcm46L14jXHt8XH0kLyxhbGlhczoicHVuY3R1YXRpb24ifX19O2RlbGV0ZSBhLmxhbmd1YWdlcy5ydWJ5LmZ1bmN0aW9uO3ZhciBsPSIoPzoiK1svKFteYS16QS1aMC05XHN7KFxbPD1dKSg/Oig/IVwxKVteXFxdfFxcW1xzXFNdKSpcMS8uc291cmNlLC9cKCg/OlteKClcXF18XFxbXHNcU118XCgoPzpbXigpXFxdfFxcW1xzXFNdKSpcKSkqXCkvLnNvdXJjZSwvXHsoPzpbXnt9XFxdfFxcW1xzXFNdfFx7KD86W157fVxcXXxcXFtcc1xTXSkqXH0pKlx9Ly5zb3VyY2UsL1xbKD86W15cW1xdXFxdfFxcW1xzXFNdfFxbKD86W15cW1xdXFxdfFxcW1xzXFNdKSpcXSkqXF0vLnNvdXJjZSwvPCg/OltePD5cXF18XFxbXHNcU118PCg/OltePD5cXF18XFxbXHNcU10pKj4pKj4vLnNvdXJjZV0uam9pbigifCIpKyIpIix1PS8oPzoiKD86XFwufFteIlxcXHJcbl0pKiJ8KD86XGJbYS16QS1aX11cdyp8W15cc1wwLVx4N0ZdKylbPyFdP3xcJC4pLy5zb3VyY2U7YS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJydWJ5Iiwia2V5d29yZCIseyJyZWdleC1saXRlcmFsIjpbe3BhdHRlcm46UmVnRXhwKC8lci8uc291cmNlK2wrL1tlZ2ltbm9zdXhdezAsNn0vLnNvdXJjZSksZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjppLHJlZ2V4Oi9bXHNcU10rL319LHtwYXR0ZXJuOi8oXnxbXi9dKVwvKD8hXC8pKD86XFtbXlxyXG5cXV0rXF18XFwufFteWy9cXFxyXG5dKStcL1tlZ2ltbm9zdXhdezAsNn0oPz1ccyooPzokfFtcclxuLC47fSkjXSkpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246aSxyZWdleDovW1xzXFNdKy99fV0sdmFyaWFibGU6L1tAJF0rW2EtekEtWl9dXHcqKD86Wz8hXXxcYikvLHN5bWJvbDpbe3BhdHRlcm46UmVnRXhwKC8oXnxbXjpdKTovLnNvdXJjZSt1KSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46UmVnRXhwKC8oW1xyXG57KCxdWyBcdF0qKS8uc291cmNlK3UrLyg/PTooPyE6KSkvLnNvdXJjZSksbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSwibWV0aG9kLWRlZmluaXRpb24iOntwYXR0ZXJuOi8oXGJkZWZccyspXHcrKD86XHMqXC5ccypcdyspPy8sbG9va2JlaGluZDohMCxpbnNpZGU6e2Z1bmN0aW9uOi9cYlx3KyQvLGtleXdvcmQ6L15zZWxmXGIvLCJjbGFzcy1uYW1lIjovXlx3Ky8scHVuY3R1YXRpb246L1wuL319fSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJydWJ5Iiwic3RyaW5nIix7InN0cmluZy1saXRlcmFsIjpbe3BhdHRlcm46UmVnRXhwKC8lW3FRaUl3V3NdPy8uc291cmNlK2wpLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246aSxzdHJpbmc6L1tcc1xTXSsvfX0se3BhdHRlcm46LygifCcpKD86I1x7W159XStcfXwjKD8hXHspfFxcKD86XHJcbnxbXHNcU10pfCg/IVwxKVteXFwjXHJcbl0pKlwxLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOmksc3RyaW5nOi9bXHNcU10rL319LHtwYXR0ZXJuOi88PFstfl0/KFthLXpfXVx3KilbXHJcbl0oPzouKltcclxuXSkqP1tcdCBdKlwxL2ksYWxpYXM6ImhlcmVkb2Mtc3RyaW5nIixncmVlZHk6ITAsaW5zaWRlOntkZWxpbWl0ZXI6e3BhdHRlcm46L148PFstfl0/W2Etel9dXHcqfFxiW2Etel9dXHcqJC9pLGluc2lkZTp7c3ltYm9sOi9cYlx3Ky8scHVuY3R1YXRpb246L148PFstfl0/L319LGludGVycG9sYXRpb246aSxzdHJpbmc6L1tcc1xTXSsvfX0se3BhdHRlcm46Lzw8Wy1+XT8nKFthLXpfXVx3KiknW1xyXG5dKD86LipbXHJcbl0pKj9bXHQgXSpcMS9pLGFsaWFzOiJoZXJlZG9jLXN0cmluZyIsZ3JlZWR5OiEwLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9ePDxbLX5dPydbYS16X11cdyonfFxiW2Etel9dXHcqJC9pLGluc2lkZTp7c3ltYm9sOi9cYlx3Ky8scHVuY3R1YXRpb246L148PFstfl0/J3wnJC99fSxzdHJpbmc6L1tcc1xTXSsvfX1dLCJjb21tYW5kLWxpdGVyYWwiOlt7cGF0dGVybjpSZWdFeHAoLyV4Ly5zb3VyY2UrbCksZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjppLGNvbW1hbmQ6e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJzdHJpbmcifX19LHtwYXR0ZXJuOi9gKD86I1x7W159XStcfXwjKD8hXHspfFxcKD86XHJcbnxbXHNcU10pfFteXFxgI1xyXG5dKSpgLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOmksY29tbWFuZDp7cGF0dGVybjovW1xzXFNdKy8sYWxpYXM6InN0cmluZyJ9fX1dfSksZGVsZXRlIGEubGFuZ3VhZ2VzLnJ1Ynkuc3RyaW5nLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicnVieSIsIm51bWJlciIse2J1aWx0aW46L1xiKD86QXJyYXl8QmlnbnVtfEJpbmRpbmd8Q2xhc3N8Q29udGludWF0aW9ufERpcnxFeGNlcHRpb258RmFsc2VDbGFzc3xGaWxlfEZpeG51bXxGbG9hdHxIYXNofElPfEludGVnZXJ8TWF0Y2hEYXRhfE1ldGhvZHxNb2R1bGV8TmlsQ2xhc3N8TnVtZXJpY3xPYmplY3R8UHJvY3xSYW5nZXxSZWdleHB8U3RhdHxTdHJpbmd8U3RydWN0fFN5bWJvbHxUTVN8VGhyZWFkfFRocmVhZEdyb3VwfFRpbWV8VHJ1ZUNsYXNzKVxiLyxjb25zdGFudDovXGJbQS1aXVtBLVowLTlfXSooPzpbPyFdfFxiKS99KSxhLmxhbmd1YWdlcy5yYj1hLmxhbmd1YWdlcy5ydWJ5fSkobil9cmV0dXJuIFZkfXZhciBZZCxDeDtmdW5jdGlvbiBCMigpe2lmKEN4KXJldHVybiBZZDtDeD0xO3ZhciBlPVZsKCk7WWQ9bixuLmRpc3BsYXlOYW1lPSJjcnlzdGFsIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLChmdW5jdGlvbihpKXtpLmxhbmd1YWdlcy5jcnlzdGFsPWkubGFuZ3VhZ2VzLmV4dGVuZCgicnVieSIse2tleXdvcmQ6Wy9cYig/Ol9fRElSX198X19FTkRfTElORV9ffF9fRklMRV9ffF9fTElORV9ffGFic3RyYWN0fGFsaWFzfGFubm90YXRpb258YXN8YXNtfGJlZ2lufGJyZWFrfGNhc2V8Y2xhc3N8ZGVmfGRvfGVsc2V8ZWxzaWZ8ZW5kfGVuc3VyZXxlbnVtfGV4dGVuZHxmb3J8ZnVufGlmfGlmZGVmfGluY2x1ZGV8aW5zdGFuY2Vfc2l6ZW9mfGxpYnxtYWNyb3xtb2R1bGV8bmV4dHxvZnxvdXR8cG9pbnRlcm9mfHByaXZhdGV8cHJvdGVjdGVkfHB0cnxyZXF1aXJlfHJlc2N1ZXxyZXR1cm58c2VsZWN0fHNlbGZ8c2l6ZW9mfHN0cnVjdHxzdXBlcnx0aGVufHR5cGV8dHlwZW9mfHVuZGVmfHVuaW5pdGlhbGl6ZWR8dW5pb258dW5sZXNzfHVudGlsfHdoZW58d2hpbGV8d2l0aHx5aWVsZClcYi8se3BhdHRlcm46LyhcLlxzKikoPzppc19hfHJlc3BvbmRzX3RvKVw/Lyxsb29rYmVoaW5kOiEwfV0sbnVtYmVyOi9cYig/OjBiWzAxX10qWzAxXXwwb1swLTdfXSpbMC03XXwweFtcZGEtZkEtRl9dKltcZGEtZkEtRl18KD86XGQoPzpbXGRfXSpcZCk/KSg/OlwuW1xkX10qXGQpPyg/OltlRV1bKy1dP1tcZF9dKlxkKT8pKD86Xyg/Olt1aWZdKD86OHwxNnwzMnw2NCkpPyk/XGIvLG9wZXJhdG9yOlsvLT4vLGkubGFuZ3VhZ2VzLnJ1Ynkub3BlcmF0b3JdLHB1bmN0dWF0aW9uOi9bKCl7fVtcXS4sO1xcXS99KSxpLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNyeXN0YWwiLCJzdHJpbmctbGl0ZXJhbCIse2F0dHJpYnV0ZTp7cGF0dGVybjovQFxbLio/XF0vLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eQFxbfFxdJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sYXR0cmlidXRlOntwYXR0ZXJuOi9eKFxzKilcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNsYXNzLW5hbWUifSxhcmdzOntwYXR0ZXJuOi9cUyg/Oltcc1xTXSpcUyk/LyxpbnNpZGU6aS5sYW5ndWFnZXMuY3J5c3RhbH19fSxleHBhbnNpb246e3BhdHRlcm46L1x7KD86XHsuKj9cfXwlLio/JSlcfS8saW5zaWRlOntjb250ZW50OntwYXR0ZXJuOi9eKFx7LilbXHNcU10rKD89Llx9JCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmkubGFuZ3VhZ2VzLmNyeXN0YWx9LGRlbGltaXRlcjp7cGF0dGVybjovXlx7W1x7JV18W1x9JV1cfSQvLGFsaWFzOiJvcGVyYXRvciJ9fX0sY2hhcjp7cGF0dGVybjovJyg/OlteXFxcclxuXXsxLDJ9fFxcKD86Lnx1KD86W0EtRmEtZjAtOV17MSw0fXxce1tBLUZhLWYwLTldezEsNn1cfSkpKScvLGdyZWVkeTohMH19KX0pKGEpfXJldHVybiBZZH12YXIgS2QsSXg7ZnVuY3Rpb24gajIoKXtpZihJeClyZXR1cm4gS2Q7SXg9MTt2YXIgZT0kbCgpO0tkPW4sbi5kaXNwbGF5TmFtZT0iY3NodG1sIixuLmFsaWFzZXM9WyJyYXpvciJdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSwoZnVuY3Rpb24oaSl7dmFyIGw9L1wvKD8hWy8qXSl8XC9cLy4qW1xyXG5dfFwvXCpbXipdKig/OlwqKD8hXC8pW14qXSopKlwqXC8vLnNvdXJjZSx1PS9AKD8hIil8Iig/OlteXHJcblxcIl18XFwuKSoifEAiKD86W15cXCJdfCIifFxcW1xzXFNdKSoiKD8hIikvLnNvdXJjZSsifCIrLycoPzooPzpbXlxyXG4nXFxdfFxcLnxcXFtVdXhdW1xkYS1mQS1GXXsxLDh9KSd8KD89W15cXF0oPyEnKSkpLy5zb3VyY2U7ZnVuY3Rpb24gYyhDLHgpe2Zvcih2YXIgTj0wO048eDtOKyspQz1DLnJlcGxhY2UoLzxzZWxmPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIig/OiIrQysiKSJ9KTtyZXR1cm4gQy5yZXBsYWNlKC88c2VsZj4vZywiW15cXHNcXFNdIikucmVwbGFjZSgvPHN0cj4vZywiKD86Iit1KyIpIikucmVwbGFjZSgvPGNvbW1lbnQ+L2csIig/OiIrbCsiKSIpfXZhciBkPWMoL1woKD86W14oKSciQC9dfDxzdHI+fDxjb21tZW50Pnw8c2VsZj4pKlwpLy5zb3VyY2UsMiksZj1jKC9cWyg/OlteXFtcXSciQC9dfDxzdHI+fDxjb21tZW50Pnw8c2VsZj4pKlxdLy5zb3VyY2UsMiksbT1jKC9ceyg/Oltee30nIkAvXXw8c3RyPnw8Y29tbWVudD58PHNlbGY+KSpcfS8uc291cmNlLDIpLGI9YygvPCg/OltePD4nIkAvXXw8c3RyPnw8Y29tbWVudD58PHNlbGY+KSo+Ly5zb3VyY2UsMiksaD0vKD86XHMoPzpccypbXlxzPlwvPV0rKD86XHMqPVxzKig/OiJbXiJdKiJ8J1teJ10qJ3xbXlxzJyI+PV0rKD89W1xzPl0pKXwoPz1bXHMvPl0pKSkrKT8vLnNvdXJjZSxTPS8oPyFcZClbXlxzPlwvPSQ8JV0rLy5zb3VyY2UraCsvXHMqXC8/Pi8uc291cmNlLEU9L1xCQD8vLnNvdXJjZSsiKD86IisvPChbYS16QS1aXVtcdzpdKikvLnNvdXJjZStoKy9ccyo+Ly5zb3VyY2UrIig/OiIrKC9bXjxdLy5zb3VyY2UrInwiKy88XC8/KD8hXDFcYikvLnNvdXJjZStTKyJ8IitjKC88XDEvLnNvdXJjZStoKy9ccyo+Ly5zb3VyY2UrIig/OiIrKC9bXjxdLy5zb3VyY2UrInwiKy88XC8/KD8hXDFcYikvLnNvdXJjZStTKyJ8PHNlbGY+IikrIikqIisvPFwvXDFccyo+Ly5zb3VyY2UsMikpKyIpKiIrLzxcL1wxXHMqPi8uc291cmNlKyJ8IisvPC8uc291cmNlK1MrIikiO2kubGFuZ3VhZ2VzLmNzaHRtbD1pLmxhbmd1YWdlcy5leHRlbmQoIm1hcmt1cCIse30pO3ZhciBfPWkubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY3NoYXJwIiwic3RyaW5nIix7aHRtbDp7cGF0dGVybjpSZWdFeHAoRSksZ3JlZWR5OiEwLGluc2lkZTppLmxhbmd1YWdlcy5jc2h0bWx9fSx7Y3NoYXJwOmkubGFuZ3VhZ2VzLmV4dGVuZCgiY3NoYXJwIix7fSl9KSxUPXtwYXR0ZXJuOi9cU1tcc1xTXSovLGFsaWFzOiJsYW5ndWFnZS1jc2hhcnAiLGluc2lkZTpffTtpLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNzaHRtbCIsInByb2xvZyIseyJyYXpvci1jb21tZW50Ijp7cGF0dGVybjovQFwqW1xzXFNdKj9cKkAvLGdyZWVkeTohMCxhbGlhczoiY29tbWVudCJ9LGJsb2NrOntwYXR0ZXJuOlJlZ0V4cCgvKF58W15AXSlALy5zb3VyY2UrIig/OiIrW20sLyg/OmNvZGV8ZnVuY3Rpb25zKVxzKi8uc291cmNlK20sLyg/OmZvcnxmb3JlYWNofGxvY2t8c3dpdGNofHVzaW5nfHdoaWxlKVxzKi8uc291cmNlK2QrL1xzKi8uc291cmNlK20sL2RvXHMqLy5zb3VyY2UrbSsvXHMqd2hpbGVccyovLnNvdXJjZStkKy8oPzpccyo7KT8vLnNvdXJjZSwvdHJ5XHMqLy5zb3VyY2UrbSsvXHMqY2F0Y2hccyovLnNvdXJjZStkKy9ccyovLnNvdXJjZSttKy9ccypmaW5hbGx5XHMqLy5zb3VyY2UrbSwvaWZccyovLnNvdXJjZStkKy9ccyovLnNvdXJjZSttKyIoPzoiKy9ccyplbHNlLy5zb3VyY2UrIig/OiIrL1xzK2lmXHMqLy5zb3VyY2UrZCsiKT8iKy9ccyovLnNvdXJjZSttKyIpKiJdLmpvaW4oInwiKSsiKSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7a2V5d29yZDovXkBcdyovLGNzaGFycDpUfX0sZGlyZWN0aXZlOntwYXR0ZXJuOi9eKFsgXHRdKilAKD86YWRkVGFnSGVscGVyfGF0dHJpYnV0ZXxpbXBsZW1lbnRzfGluaGVyaXRzfGluamVjdHxsYXlvdXR8bW9kZWx8bmFtZXNwYWNlfHBhZ2V8cHJlc2VydmV3aGl0ZXNwYWNlfHJlbW92ZVRhZ0hlbHBlcnxzZWN0aW9ufHRhZ0hlbHBlclByZWZpeHx1c2luZykoPz1ccykuKi9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7a2V5d29yZDovXkBcdysvLGNzaGFycDpUfX0sdmFsdWU6e3BhdHRlcm46UmVnRXhwKC8oXnxbXkBdKUAvLnNvdXJjZSsvKD86YXdhaXRcYlxzKik/Ly5zb3VyY2UrIig/OiIrL1x3K1xiLy5zb3VyY2UrInwiK2QrIikoPzoiKy9bPyFdP1wuXHcrXGIvLnNvdXJjZSsifCIrZCsifCIrZisifCIrYitkKyIpKiIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJ2YXJpYWJsZSIsaW5zaWRlOntrZXl3b3JkOi9eQC8sY3NoYXJwOlR9fSwiZGVsZWdhdGUtb3BlcmF0b3IiOntwYXR0ZXJuOi8oXnxbXkBdKUAoPz08KS8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifX0pLGkubGFuZ3VhZ2VzLnJhem9yPWkubGFuZ3VhZ2VzLmNzaHRtbH0pKGEpfXJldHVybiBLZH12YXIgV2QsT3g7ZnVuY3Rpb24gejIoKXtpZihPeClyZXR1cm4gV2Q7T3g9MSxXZD1lLGUuZGlzcGxheU5hbWU9ImNzcCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGkobCl7cmV0dXJuIFJlZ0V4cCgvKFsgXHRdKS8uc291cmNlKyIoPzoiK2wrIikiKy8oPz1bXHM7XXwkKS8uc291cmNlLCJpIil9YS5sYW5ndWFnZXMuY3NwPXtkaXJlY3RpdmU6e3BhdHRlcm46LyhefFtccztdKSg/OmJhc2UtdXJpfGJsb2NrLWFsbC1taXhlZC1jb250ZW50fCg/OmNoaWxkfGNvbm5lY3R8ZGVmYXVsdHxmb250fGZyYW1lfGltZ3xtYW5pZmVzdHxtZWRpYXxvYmplY3R8cHJlZmV0Y2h8c2NyaXB0fHN0eWxlfHdvcmtlciktc3JjfGRpc293bi1vcGVuZXJ8Zm9ybS1hY3Rpb258ZnJhbWUtKD86YW5jZXN0b3JzfG9wdGlvbnMpfGlucHV0LXByb3RlY3Rpb24oPzotKD86Y2xpcHxzZWxlY3RvcnMpKT98bmF2aWdhdGUtdG98cGx1Z2luLXR5cGVzfHBvbGljeS11cml8cmVmZXJyZXJ8cmVmbGVjdGVkLXhzc3xyZXBvcnQtKD86dG98dXJpKXxyZXF1aXJlLXNyaS1mb3J8c2FuZGJveHwoPzpzY3JpcHR8c3R5bGUpLXNyYy0oPzphdHRyfGVsZW0pfHVwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMpKD89W1xzO118JCkvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LHNjaGVtZTp7cGF0dGVybjppKC9bYS16XVthLXowLTkuKy1dKjovLnNvdXJjZSksbG9va2JlaGluZDohMH0sbm9uZTp7cGF0dGVybjppKC8nbm9uZScvLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LG5vbmNlOntwYXR0ZXJuOmkoLydub25jZS1bLSsvXHc9XSsnLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LGhhc2g6e3BhdHRlcm46aSgvJ3NoYSg/OjI1NnwzODR8NTEyKS1bLSsvXHc9XSsnLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LGhvc3Q6e3BhdHRlcm46aSgvW2Etel1bYS16MC05ListXSo6XC9cL1teXHM7LCddKi8uc291cmNlKyJ8IisvXCpbXlxzOywnXSovLnNvdXJjZSsifCIrL1thLXowLTktXSsoPzpcLlthLXowLTktXSspKyg/OjpbXGQqXSspPyg/OlwvW15cczssJ10qKT8vLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoidXJsIixpbnNpZGU6e2ltcG9ydGFudDovXCovfX0sa2V5d29yZDpbe3BhdHRlcm46aSgvJ3Vuc2FmZS1bYS16LV0rJy8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJ1bnNhZmUifSx7cGF0dGVybjppKC8nW2Etei1dKycvLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoic2FmZSJ9XSxwdW5jdHVhdGlvbjovOy99fSkobil9cmV0dXJuIFdkfXZhciBYZCxMeDtmdW5jdGlvbiBxMigpe2lmKEx4KXJldHVybiBYZDtMeD0xLFhkPWUsZS5kaXNwbGF5TmFtZT0iY3NzRXh0cmFzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9LygifCcpKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sbDthLmxhbmd1YWdlcy5jc3Muc2VsZWN0b3I9e3BhdHRlcm46YS5sYW5ndWFnZXMuY3NzLnNlbGVjdG9yLnBhdHRlcm4sbG9va2JlaGluZDohMCxpbnNpZGU6bD17InBzZXVkby1lbGVtZW50IjovOig/OmFmdGVyfGJlZm9yZXxmaXJzdC1sZXR0ZXJ8Zmlyc3QtbGluZXxzZWxlY3Rpb24pfDo6Wy1cd10rLywicHNldWRvLWNsYXNzIjovOlstXHddKy8sY2xhc3M6L1wuWy1cd10rLyxpZDovI1stXHddKy8sYXR0cmlidXRlOntwYXR0ZXJuOlJlZ0V4cChgXFxbKD86W15bXFxdIiddfGAraS5zb3VyY2UrIikqXFxdIiksZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L15cW3xcXSQvLCJjYXNlLXNlbnNpdGl2aXR5Ijp7cGF0dGVybjovKFxzKVtzaV0kL2ksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LG5hbWVzcGFjZTp7cGF0dGVybjovXihccyopKD86KD8hXHMpWy0qXHdceEEwLVx1RkZGRl0pKlx8KD8hPSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXHwkL319LCJhdHRyLW5hbWUiOntwYXR0ZXJuOi9eKFxzKikoPzooPyFccylbLVx3XHhBMC1cdUZGRkZdKSsvLGxvb2tiZWhpbmQ6ITB9LCJhdHRyLXZhbHVlIjpbaSx7cGF0dGVybjovKD1ccyopKD86KD8hXHMpWy1cd1x4QTAtXHVGRkZGXSkrKD89XHMqJCkvLGxvb2tiZWhpbmQ6ITB9XSxvcGVyYXRvcjovW3x+Kl4kXT89L319LCJuLXRoIjpbe3BhdHRlcm46LyhcKFxzKilbKy1dP1xkKltcZG5dKD86XHMqWystXVxzKlxkKyk/KD89XHMqXCkpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7bnVtYmVyOi9bXGRuXSsvLG9wZXJhdG9yOi9bKy1dL319LHtwYXR0ZXJuOi8oXChccyopKD86ZXZlbnxvZGQpKD89XHMqXCkpL2ksbG9va2JlaGluZDohMH1dLGNvbWJpbmF0b3I6Lz58XCt8fnxcfFx8LyxwdW5jdHVhdGlvbjovWygpLF0vfX0sYS5sYW5ndWFnZXMuY3NzLmF0cnVsZS5pbnNpZGVbInNlbGVjdG9yLWZ1bmN0aW9uLWFyZ3VtZW50Il0uaW5zaWRlPWwsYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc3MiLCJwcm9wZXJ0eSIse3ZhcmlhYmxlOntwYXR0ZXJuOi8oXnxbXi1cd1x4QTAtXHVGRkZGXSktLSg/IVxzKVstX2Etelx4QTAtXHVGRkZGXSg/Oig/IVxzKVstXHdceEEwLVx1RkZGRl0pKi9pLGxvb2tiZWhpbmQ6ITB9fSk7dmFyIHU9e3BhdHRlcm46LyhcYlxkKykoPzolfFthLXpdKyg/IVtcdy1dKSkvLGxvb2tiZWhpbmQ6ITB9LGM9e3BhdHRlcm46LyhefFteXHcuLV0pLT8oPzpcZCsoPzpcLlxkKyk/fFwuXGQrKS8sbG9va2JlaGluZDohMH07YS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc3MiLCJmdW5jdGlvbiIse29wZXJhdG9yOntwYXR0ZXJuOi8oXHMpWytcLSpcL10oPz1ccykvLGxvb2tiZWhpbmQ6ITB9LGhleGNvZGU6e3BhdHRlcm46L1xCI1tcZGEtZl17Myw4fVxiL2ksYWxpYXM6ImNvbG9yIn0sY29sb3I6W3twYXR0ZXJuOi8oXnxbXlx3LV0pKD86QWxpY2VCbHVlfEFudGlxdWVXaGl0ZXxBcXVhfEFxdWFtYXJpbmV8QXp1cmV8QmVpZ2V8QmlzcXVlfEJsYWNrfEJsYW5jaGVkQWxtb25kfEJsdWV8Qmx1ZVZpb2xldHxCcm93bnxCdXJseVdvb2R8Q2FkZXRCbHVlfENoYXJ0cmV1c2V8Q2hvY29sYXRlfENvcmFsfENvcm5mbG93ZXJCbHVlfENvcm5zaWxrfENyaW1zb258Q3lhbnxEYXJrQmx1ZXxEYXJrQ3lhbnxEYXJrR29sZGVuUm9kfERhcmtHclthZV15fERhcmtHcmVlbnxEYXJrS2hha2l8RGFya01hZ2VudGF8RGFya09saXZlR3JlZW58RGFya09yYW5nZXxEYXJrT3JjaGlkfERhcmtSZWR8RGFya1NhbG1vbnxEYXJrU2VhR3JlZW58RGFya1NsYXRlQmx1ZXxEYXJrU2xhdGVHclthZV15fERhcmtUdXJxdW9pc2V8RGFya1Zpb2xldHxEZWVwUGlua3xEZWVwU2t5Qmx1ZXxEaW1HclthZV15fERvZGdlckJsdWV8RmlyZUJyaWNrfEZsb3JhbFdoaXRlfEZvcmVzdEdyZWVufEZ1Y2hzaWF8R2FpbnNib3JvfEdob3N0V2hpdGV8R29sZHxHb2xkZW5Sb2R8R3JbYWVdeXxHcmVlbnxHcmVlblllbGxvd3xIb25leURld3xIb3RQaW5rfEluZGlhblJlZHxJbmRpZ298SXZvcnl8S2hha2l8TGF2ZW5kZXJ8TGF2ZW5kZXJCbHVzaHxMYXduR3JlZW58TGVtb25DaGlmZm9ufExpZ2h0Qmx1ZXxMaWdodENvcmFsfExpZ2h0Q3lhbnxMaWdodEdvbGRlblJvZFllbGxvd3xMaWdodEdyW2FlXXl8TGlnaHRHcmVlbnxMaWdodFBpbmt8TGlnaHRTYWxtb258TGlnaHRTZWFHcmVlbnxMaWdodFNreUJsdWV8TGlnaHRTbGF0ZUdyW2FlXXl8TGlnaHRTdGVlbEJsdWV8TGlnaHRZZWxsb3d8TGltZXxMaW1lR3JlZW58TGluZW58TWFnZW50YXxNYXJvb258TWVkaXVtQXF1YU1hcmluZXxNZWRpdW1CbHVlfE1lZGl1bU9yY2hpZHxNZWRpdW1QdXJwbGV8TWVkaXVtU2VhR3JlZW58TWVkaXVtU2xhdGVCbHVlfE1lZGl1bVNwcmluZ0dyZWVufE1lZGl1bVR1cnF1b2lzZXxNZWRpdW1WaW9sZXRSZWR8TWlkbmlnaHRCbHVlfE1pbnRDcmVhbXxNaXN0eVJvc2V8TW9jY2FzaW58TmF2YWpvV2hpdGV8TmF2eXxPbGRMYWNlfE9saXZlfE9saXZlRHJhYnxPcmFuZ2V8T3JhbmdlUmVkfE9yY2hpZHxQYWxlR29sZGVuUm9kfFBhbGVHcmVlbnxQYWxlVHVycXVvaXNlfFBhbGVWaW9sZXRSZWR8UGFwYXlhV2hpcHxQZWFjaFB1ZmZ8UGVydXxQaW5rfFBsdW18UG93ZGVyQmx1ZXxQdXJwbGV8UmVkfFJvc3lCcm93bnxSb3lhbEJsdWV8U2FkZGxlQnJvd258U2FsbW9ufFNhbmR5QnJvd258U2VhR3JlZW58U2VhU2hlbGx8U2llbm5hfFNpbHZlcnxTa3lCbHVlfFNsYXRlQmx1ZXxTbGF0ZUdyW2FlXXl8U25vd3xTcHJpbmdHcmVlbnxTdGVlbEJsdWV8VGFufFRlYWx8VGhpc3RsZXxUb21hdG98VHJhbnNwYXJlbnR8VHVycXVvaXNlfFZpb2xldHxXaGVhdHxXaGl0ZXxXaGl0ZVNtb2tlfFllbGxvd3xZZWxsb3dHcmVlbikoPyFbXHctXSkvaSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovXGIoPzpoc2x8cmdiKVwoXHMqXGR7MSwzfVxzKixccypcZHsxLDN9JT9ccyosXHMqXGR7MSwzfSU/XHMqXClcQnxcYig/OmhzbHxyZ2IpYVwoXHMqXGR7MSwzfVxzKixccypcZHsxLDN9JT9ccyosXHMqXGR7MSwzfSU/XHMqLFxzKig/OjB8MD9cLlxkK3wxKVxzKlwpXEIvaSxpbnNpZGU6e3VuaXQ6dSxudW1iZXI6YyxmdW5jdGlvbjovW1x3LV0rKD89XCgpLyxwdW5jdHVhdGlvbjovWygpLF0vfX1dLGVudGl0eTovXFxbXGRhLWZdezEsOH0vaSx1bml0OnUsbnVtYmVyOmN9KX0pKG4pfXJldHVybiBYZH12YXIgWmQsRHg7ZnVuY3Rpb24gUDIoKXtpZihEeClyZXR1cm4gWmQ7RHg9MSxaZD1lLGUuZGlzcGxheU5hbWU9ImNzdiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuY3N2PXt2YWx1ZTovW15cclxuLCJdK3wiKD86W14iXXwiIikqIig/ISIpLyxwdW5jdHVhdGlvbjovLC99fXJldHVybiBaZH12YXIgUWQsTXg7ZnVuY3Rpb24gRzIoKXtpZihNeClyZXR1cm4gUWQ7TXg9MSxRZD1lLGUuZGlzcGxheU5hbWU9ImN5cGhlciIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuY3lwaGVyPXtjb21tZW50Oi9cL1wvLiovLHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXHJcbl18XFwuKSoifCcoPzpbXidcXFxyXG5dfFxcLikqJy8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46Lyg6XHMqKSg/Olx3K3xgKD86W15gXFxcclxuXSkqYCkoPz1ccypbeyk6XSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxyZWxhdGlvbnNoaXA6e3BhdHRlcm46LygtXFtccyooPzpcdytccyp8YCg/OlteYFxcXHJcbl0pKmBccyopPzpccyp8XHxccyo6XHMqKSg/Olx3K3xgKD86W15gXFxcclxuXSkqYCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LGlkZW50aWZpZXI6e3BhdHRlcm46L2AoPzpbXmBcXFxyXG5dKSpgLyxncmVlZHk6ITB9LHZhcmlhYmxlOi9cJFx3Ky8sa2V5d29yZDovXGIoPzpBRER8QUxMfEFORHxBU3xBU0N8QVNDRU5ESU5HfEFTU0VSVHxCWXxDQUxMfENBU0V8Q09NTUlUfENPTlNUUkFJTlR8Q09OVEFJTlN8Q1JFQVRFfENTVnxERUxFVEV8REVTQ3xERVNDRU5ESU5HfERFVEFDSHxESVNUSU5DVHxET3xEUk9QfEVMU0V8RU5EfEVORFN8RVhJU1RTfEZPUnxGT1JFQUNIfElOfElOREVYfElTfEpPSU58S0VZfExJTUlUfExPQUR8TUFOREFUT1JZfE1BVENIfE1FUkdFfE5PREV8Tk9UfE9GfE9OfE9QVElPTkFMfE9SfE9SREVSKD89XHMrQlkpfFBFUklPRElDfFJFTU9WRXxSRVFVSVJFfFJFVFVSTnxTQ0FMQVJ8U0NBTnxTRVR8U0tJUHxTVEFSVHxTVEFSVFN8VEhFTnxVTklPTnxVTklRVUV8VU5XSU5EfFVTSU5HfFdIRU58V0hFUkV8V0lUSHxYT1J8WUlFTEQpXGIvaSxmdW5jdGlvbjovXGJcdytcYig/PVxzKlwoKS8sYm9vbGVhbjovXGIoPzpmYWxzZXxudWxsfHRydWUpXGIvaSxudW1iZXI6L1xiKD86MHhbXGRhLWZBLUZdK3xcZCsoPzpcLlxkKyk/KD86W2VFXVsrLV0/XGQrKT8pXGIvLG9wZXJhdG9yOi86fDwtLT98LS0/Pj98PD58PX4/fFs8Pl09P3xbKyovJV58XXxcLlwuXC4/LyxwdW5jdHVhdGlvbjovWygpW1xde30sOy5dL319cmV0dXJuIFFkfXZhciBKZCxVeDtmdW5jdGlvbiBIMigpe2lmKFV4KXJldHVybiBKZDtVeD0xLEpkPWUsZS5kaXNwbGF5TmFtZT0iZCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZD1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7Y29tbWVudDpbe3BhdHRlcm46L15ccyojIS4rLyxncmVlZHk6ITB9LHtwYXR0ZXJuOlJlZ0V4cCgvKF58W15cXF0pLy5zb3VyY2UrIig/OiIrWy9cL1wrKD86XC9cKyg/OlteK118XCsoPyFcLykpKlwrXC98KD8hXC9cKylbXHNcU10pKj9cK1wvLy5zb3VyY2UsL1wvXC8uKi8uc291cmNlLC9cL1wqW1xzXFNdKj9cKlwvLy5zb3VyY2VdLmpvaW4oInwiKSsiKSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sc3RyaW5nOlt7cGF0dGVybjpSZWdFeHAoWy9cYltyeF0iKD86XFxbXHNcU118W15cXCJdKSoiW2N3ZF0/Ly5zb3VyY2UsL1xicSIoPzpcW1tcc1xTXSo/XF18XChbXHNcU10qP1wpfDxbXHNcU10qPz58XHtbXHNcU10qP1x9KSIvLnNvdXJjZSwvXGJxIigoPyFcZClcdyspJFtcc1xTXSo/XlwxIi8uc291cmNlLC9cYnEiKC4pW1xzXFNdKj9cMiIvLnNvdXJjZSwvKFsiYF0pKD86XFxbXHNcU118KD8hXDMpW15cXF0pKlwzW2N3ZF0/Ly5zb3VyY2VdLmpvaW4oInwiKSwibSIpLGdyZWVkeTohMH0se3BhdHRlcm46L1xicVx7KD86XHtbXnt9XSpcfXxbXnt9XSkqXH0vLGdyZWVkeTohMCxhbGlhczoidG9rZW4tc3RyaW5nIn1dLGtleXdvcmQ6L1wkfFxiKD86X18oPzooPzpEQVRFfEVPRnxGSUxFfEZVTkNUSU9OfExJTkV8TU9EVUxFfFBSRVRUWV9GVU5DVElPTnxUSU1FU1RBTVB8VElNRXxWRU5ET1J8VkVSU0lPTilfX3xnc2hhcmVkfHBhcmFtZXRlcnN8dHJhaXRzfHZlY3Rvcil8YWJzdHJhY3R8YWxpYXN8YWxpZ258YXNtfGFzc2VydHxhdXRvfGJvZHl8Ym9vbHxicmVha3xieXRlfGNhc2V8Y2FzdHxjYXRjaHxjZG91YmxlfGNlbnR8Y2Zsb2F0fGNoYXJ8Y2xhc3N8Y29uc3R8Y29udGludWV8Y3JlYWx8ZGNoYXJ8ZGVidWd8ZGVmYXVsdHxkZWxlZ2F0ZXxkZWxldGV8ZGVwcmVjYXRlZHxkb3xkb3VibGV8ZHN0cmluZ3xlbHNlfGVudW18ZXhwb3J0fGV4dGVybnxmYWxzZXxmaW5hbHxmaW5hbGx5fGZsb2F0fGZvcnxmb3JlYWNofGZvcmVhY2hfcmV2ZXJzZXxmdW5jdGlvbnxnb3RvfGlkb3VibGV8aWZ8aWZsb2F0fGltbXV0YWJsZXxpbXBvcnR8aW5vdXR8aW50fGludGVyZmFjZXxpbnZhcmlhbnR8aXJlYWx8bGF6eXxsb25nfG1hY3JvfG1peGlufG1vZHVsZXxuZXd8bm90aHJvd3xudWxsfG91dHxvdmVycmlkZXxwYWNrYWdlfHByYWdtYXxwcml2YXRlfHByb3RlY3RlZHxwdHJkaWZmX3R8cHVibGljfHB1cmV8cmVhbHxyZWZ8cmV0dXJufHNjb3BlfHNoYXJlZHxzaG9ydHxzaXplX3R8c3RhdGljfHN0cmluZ3xzdHJ1Y3R8c3VwZXJ8c3dpdGNofHN5bmNocm9uaXplZHx0ZW1wbGF0ZXx0aGlzfHRocm93fHRydWV8dHJ5fHR5cGVkZWZ8dHlwZWlkfHR5cGVvZnx1Ynl0ZXx1Y2VudHx1aW50fHVsb25nfHVuaW9ufHVuaXR0ZXN0fHVzaG9ydHx2ZXJzaW9ufHZvaWR8dm9sYXRpbGV8d2NoYXJ8d2hpbGV8d2l0aHx3c3RyaW5nKVxiLyxudW1iZXI6Wy9cYjB4XC4/W2EtZlxkX10rKD86KD8hXC5cLilcLlthLWZcZF9dKik/KD86cFsrLV0/W2EtZlxkX10rKT9bdWxmaV17MCw0fS9pLHtwYXR0ZXJuOi8oKD86XC5cLik/KSg/OlxiMGJcLj98XGJ8XC4pXGRbXGRfXSooPzooPyFcLlwuKVwuW1xkX10qKT8oPzplWystXT9cZFtcZF9dKik/W3VsZmldezAsNH0vaSxsb29rYmVoaW5kOiEwfV0sb3BlcmF0b3I6L1x8W3w9XT98JlsmPV0/fFwrWys9XT98LVstPV0/fFwuP1wuXC58PVs+PV0/fCEoPzppW25zXVxifDw+Pz0/fD49P3w9KT98XGJpW25zXVxifCg/OjxbPD5dP3w+Pj8+P3xcXlxefFsqXC8lXn5dKT0/L30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZCIsInN0cmluZyIse2NoYXI6LycoPzpcXCg/OlxXfFx3Kyl8W15cXF0pJy99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImQiLCJrZXl3b3JkIix7cHJvcGVydHk6L1xCQFx3Ki99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImQiLCJmdW5jdGlvbiIse3JlZ2lzdGVyOntwYXR0ZXJuOi9cYig/OltBQkNEXVtMSFhdfEU/KD86QlB8REl8U0l8U1ApfFtCU11QTHxbRUNTREdGXVN8Q1JbMDIzNF18W0RTXUlMfERSWzAxMjM2N118RVtBQkNEXVh8WD9NTVswLTddfFIoPzoxWzAtNV18Wzg5XSlbQldEXT98UltBQkNEXVh8UltCU11QfFJbRFNdSXxUUlszLTddfFhNTSg/OjFbMC01XXxbODldKXxZTU0oPzoxWzAtNV18XGQpKVxifFxiU1QoPzpcKFswLTddXCl8XGIpLyxhbGlhczoidmFyaWFibGUifX0pfXJldHVybiBKZH12YXIgZXAsRng7ZnVuY3Rpb24gJDIoKXtpZihGeClyZXR1cm4gZXA7Rng9MSxlcD1lLGUuZGlzcGxheU5hbWU9ImRhcnQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT1bL1xiKD86YXN5bmN8c3luY3x5aWVsZClcKi8sL1xiKD86YWJzdHJhY3R8YXNzZXJ0fGFzeW5jfGF3YWl0fGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29uc3R8Y29udGludWV8Y292YXJpYW50fGRlZmF1bHR8ZGVmZXJyZWR8ZG98ZHluYW1pY3xlbHNlfGVudW18ZXhwb3J0fGV4dGVuZHN8ZXh0ZW5zaW9ufGV4dGVybmFsfGZhY3Rvcnl8ZmluYWx8ZmluYWxseXxmb3J8Z2V0fGhpZGV8aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW50ZXJmYWNlfGxpYnJhcnl8bWl4aW58bmV3fG51bGx8b258b3BlcmF0b3J8cGFydHxyZXRocm93fHJldHVybnxzZXR8c2hvd3xzdGF0aWN8c3VwZXJ8c3dpdGNofHN5bmN8dGhpc3x0aHJvd3x0cnl8dHlwZWRlZnx2YXJ8dm9pZHx3aGlsZXx3aXRofHlpZWxkKVxiL10sbD0vKF58W15cdy5dKSg/OlthLXpdXHcqXHMqXC5ccyopKig/OltBLVpdXHcqXHMqXC5ccyopKi8uc291cmNlLHU9e3BhdHRlcm46UmVnRXhwKGwrL1tBLVpdKD86W1xkX0EtWl0qW2Etel1cdyopP1xiLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntuYW1lc3BhY2U6e3BhdHRlcm46L15bYS16XVx3Kig/OlxzKlwuXHMqW2Etel1cdyopKig/OlxzKlwuKT8vLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319fX07YS5sYW5ndWFnZXMuZGFydD1hLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7ImNsYXNzLW5hbWUiOlt1LHtwYXR0ZXJuOlJlZ0V4cChsKy9bQS1aXVx3Kig/PVxzK1x3K1xzKls7LD0oKV0pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnUuaW5zaWRlfV0sa2V5d29yZDppLG9wZXJhdG9yOi9cYmlzIXxcYig/OmFzfGlzKVxifFwrXCt8LS18JiZ8XHxcfHw8PD0/fD4+PT98fig/OlwvPT8pP3xbK1wtKlwvJSZefD0hPD5dPT98XD8vfSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJkYXJ0Iiwic3RyaW5nIix7InN0cmluZy1saXRlcmFsIjp7cGF0dGVybjovcj8oPzooIiIifCcnJylbXHNcU10qP1wxfChbIiddKSg/OlxcLnwoPyFcMilbXlxcXHJcbl0pKlwyKD8hXDIpKS8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKilcJCg/Olx3K3xceyg/Oltee31dfFx7W157fV0qXH0pKlx9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXCRcez98XH0kLyxleHByZXNzaW9uOntwYXR0ZXJuOi9bXHNcU10rLyxpbnNpZGU6YS5sYW5ndWFnZXMuZGFydH19fSxzdHJpbmc6L1tcc1xTXSsvfX0sc3RyaW5nOnZvaWQgMH0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZGFydCIsImNsYXNzLW5hbWUiLHttZXRhZGF0YTp7cGF0dGVybjovQFx3Ky8sYWxpYXM6ImZ1bmN0aW9uIn19KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImRhcnQiLCJjbGFzcy1uYW1lIix7Z2VuZXJpY3M6e3BhdHRlcm46LzwoPzpbXHdccywuJj9dfDwoPzpbXHdccywuJj9dfDwoPzpbXHdccywuJj9dfDxbXHdccywuJj9dKj4pKj4pKj4pKj4vLGluc2lkZTp7ImNsYXNzLW5hbWUiOnUsa2V5d29yZDppLHB1bmN0dWF0aW9uOi9bPD4oKSwuOl0vLG9wZXJhdG9yOi9bPyZ8XS99fX0pfSkobil9cmV0dXJuIGVwfXZhciB0cCxCeDtmdW5jdGlvbiBWMigpe2lmKEJ4KXJldHVybiB0cDtCeD0xLHRwPWUsZS5kaXNwbGF5TmFtZT0iZGF0YXdlYXZlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7YS5sYW5ndWFnZXMuZGF0YXdlYXZlPXt1cmw6L1xiW0EtWmEtel0rOlwvXC9bXHcvOi4/PSYtXSt8XGJ1cm46W1x3Oi4/PSYtXSsvLHByb3BlcnR5OntwYXR0ZXJuOi8oPzpcYlx3KyMpPyg/OiIoPzpcXC58W15cXCJcclxuXSkqInxcYlx3KykoPz1ccypbOkBdKS8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyhbIidgXSkoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDEvLGdyZWVkeTohMH0sIm1pbWUtdHlwZSI6L1xiKD86YXBwbGljYXRpb258YXVkaW98aW1hZ2V8bXVsdGlwYXJ0fHRleHR8dmlkZW8pXC9bXHcrLV0rLyxkYXRlOntwYXR0ZXJuOi9cfFtcdzorLV0rXHwvLGdyZWVkeTohMH0sY29tbWVudDpbe3BhdHRlcm46LyhefFteXFxdKVwvXCpbXHNcU10qPyg/OlwqXC98JCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXDpdKVwvXC8uKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxyZWdleDp7cGF0dGVybjovXC8oPzpbXlxcXC9cclxuXXxcXFteXHJcbl0pK1wvLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86YW5kfGFzfGF0fGNhc2V8ZG98ZWxzZXxmdW58aWZ8aW5wdXR8aXN8bWF0Y2h8bm90fG5zfG51bGx8b3J8b3V0cHV0fHR5cGV8dW5sZXNzfHVwZGF0ZXx1c2luZ3x2YXIpXGIvLGZ1bmN0aW9uOi9cYltBLVpfXVx3Kig/PVxzKlwoKS9pLG51bWJlcjovLT9cYlxkKyg/OlwuXGQrKT8oPzplWystXT9cZCspP1xiL2kscHVuY3R1YXRpb246L1t7fVtcXTsoKSwuOkBdLyxvcGVyYXRvcjovPDx8Pj58LT58Wzw+fj1dPT98IT18LS0/LT98XCtcKz98IXxcPy8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiL319KShuKX1yZXR1cm4gdHB9dmFyIG5wLGp4O2Z1bmN0aW9uIFkyKCl7aWYoangpcmV0dXJuIG5wO2p4PTEsbnA9ZSxlLmRpc3BsYXlOYW1lPSJkYXgiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmRheD17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pKD86XC9cKltcc1xTXSo/XCpcL3woPzotLXxcL1wvKS4qKS8sbG9va2JlaGluZDohMH0sImRhdGEtZmllbGQiOntwYXR0ZXJuOi8nKD86W14nXXwnJykqJyg/IScpKD86XFtbIFx3XHhBMC1cdUZGRkZdK1xdKT98XHcrXFtbIFx3XHhBMC1cdUZGRkZdK1xdLyxhbGlhczoic3ltYm9sIn0sbWVhc3VyZTp7cGF0dGVybjovXFtbIFx3XHhBMC1cdUZGRkZdK1xdLyxhbGlhczoiY29uc3RhbnQifSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJdfCIiKSoiKD8hIikvLGdyZWVkeTohMH0sZnVuY3Rpb246L1xiKD86QUJTfEFDT1N8QUNPU0h8QUNPVHxBQ09USHxBRERDT0xVTU5TfEFERE1JU1NJTkdJVEVNU3xBTEx8QUxMQ1JPU1NGSUxURVJFRHxBTExFWENFUFR8QUxMTk9CTEFOS1JPV3xBTExTRUxFQ1RFRHxBTkR8QVBQUk9YSU1BVEVESVNUSU5DVENPVU5UfEFTSU58QVNJTkh8QVRBTnxBVEFOSHxBVkVSQUdFfEFWRVJBR0VBfEFWRVJBR0VYfEJFVEFcLkRJU1R8QkVUQVwuSU5WfEJMQU5LfENBTENVTEFURXxDQUxDVUxBVEVUQUJMRXxDQUxFTkRBUnxDQUxFTkRBUkFVVE98Q0VJTElOR3xDSElTUVwuRElTVHxDSElTUVwuRElTVFwuUlR8Q0hJU1FcLklOVnxDSElTUVwuSU5WXC5SVHxDTE9TSU5HQkFMQU5DRU1PTlRIfENMT1NJTkdCQUxBTkNFUVVBUlRFUnxDTE9TSU5HQkFMQU5DRVlFQVJ8Q09BTEVTQ0V8Q09NQklOfENPTUJJTkF8Q09NQklORVZBTFVFU3xDT05DQVRFTkFURXxDT05DQVRFTkFURVh8Q09ORklERU5DRVwuTk9STXxDT05GSURFTkNFXC5UfENPTlRBSU5TfENPTlRBSU5TUk9XfENPTlRBSU5TU1RSSU5HfENPTlRBSU5TU1RSSU5HRVhBQ1R8Q09OVkVSVHxDT1N8Q09TSHxDT1R8Q09USHxDT1VOVHxDT1VOVEF8Q09VTlRBWHxDT1VOVEJMQU5LfENPVU5UUk9XU3xDT1VOVFh8Q1JPU1NGSUxURVJ8Q1JPU1NKT0lOfENVUlJFTkNZfENVUlJFTlRHUk9VUHxDVVNUT01EQVRBfERBVEFUQUJMRXxEQVRFfERBVEVBRER8REFURURJRkZ8REFURVNCRVRXRUVOfERBVEVTSU5QRVJJT0R8REFURVNNVER8REFURVNRVER8REFURVNZVER8REFURVZBTFVFfERBWXxERUdSRUVTfERFVEFJTFJPV1N8RElTVElOQ1R8RElTVElOQ1RDT1VOVHxESVNUSU5DVENPVU5UTk9CTEFOS3xESVZJREV8RUFSTElFUnxFQVJMSUVTVHxFREFURXxFTkRPRk1PTlRIfEVORE9GUVVBUlRFUnxFTkRPRllFQVJ8RU9NT05USHxFUlJPUnxFVkVOfEVYQUNUfEVYQ0VQVHxFWFB8RVhQT05cLkRJU1R8RkFDVHxGQUxTRXxGSUxURVJ8RklMVEVSU3xGSU5EfEZJUlNUREFURXxGSVJTVE5PTkJMQU5LfEZJUlNUTk9OQkxBTktWQUxVRXxGSVhFRHxGTE9PUnxGT1JNQVR8R0NEfEdFTkVSQVRFfEdFTkVSQVRFQUxMfEdFTkVSQVRFU0VSSUVTfEdFT01FQU58R0VPTUVBTlh8R1JPVVBCWXxIQVNPTkVGSUxURVJ8SEFTT05FVkFMVUV8SE9VUnxJRnxJRlwuRUFHRVJ8SUZFUlJPUnxJR05PUkV8SU5UfElOVEVSU0VDVHxJU0JMQU5LfElTQ1JPU1NGSUxURVJFRHxJU0VNUFRZfElTRVJST1J8SVNFVkVOfElTRklMVEVSRUR8SVNJTlNDT1BFfElTTE9HSUNBTHxJU05PTlRFWFR8SVNOVU1CRVJ8SVNPXC5DRUlMSU5HfElTT0REfElTT05PUkFGVEVSfElTU0VMRUNURURNRUFTVVJFfElTU1VCVE9UQUx8SVNURVhUfEtFRVBGSUxURVJTfEtFWVdPUkRNQVRDSHxMQVNUREFURXxMQVNUTk9OQkxBTkt8TEFTVE5PTkJMQU5LVkFMVUV8TENNfExFRlR8TEVOfExOfExPR3xMT0cxMHxMT09LVVBWQUxVRXxMT1dFUnxNQVh8TUFYQXxNQVhYfE1FRElBTnxNRURJQU5YfE1JRHxNSU58TUlOQXxNSU5VVEV8TUlOWHxNT0R8TU9OVEh8TVJPVU5EfE5BVFVSQUxJTk5FUkpPSU58TkFUVVJBTExFRlRPVVRFUkpPSU58TkVYVERBWXxORVhUTU9OVEh8TkVYVFFVQVJURVJ8TkVYVFlFQVJ8Tk9OVklTVUFMfE5PUk1cLkRJU1R8Tk9STVwuSU5WfE5PUk1cLlNcLkRJU1R8Tk9STVwuU1wuSU5WfE5PVHxOT1d8T0REfE9QRU5JTkdCQUxBTkNFTU9OVEh8T1BFTklOR0JBTEFOQ0VRVUFSVEVSfE9QRU5JTkdCQUxBTkNFWUVBUnxPUnxQQVJBTExFTFBFUklPRHxQQVRIfFBBVEhDT05UQUlOU3xQQVRISVRFTXxQQVRISVRFTVJFVkVSU0V8UEFUSExFTkdUSHxQRVJDRU5USUxFXC5FWEN8UEVSQ0VOVElMRVwuSU5DfFBFUkNFTlRJTEVYXC5FWEN8UEVSQ0VOVElMRVhcLklOQ3xQRVJNVVR8UEl8UE9JU1NPTlwuRElTVHxQT1dFUnxQUkVWSU9VU0RBWXxQUkVWSU9VU01PTlRIfFBSRVZJT1VTUVVBUlRFUnxQUkVWSU9VU1lFQVJ8UFJPRFVDVHxQUk9EVUNUWHxRVUFSVEVSfFFVT1RJRU5UfFJBRElBTlN8UkFORHxSQU5EQkVUV0VFTnxSQU5LXC5FUXxSQU5LWHxSRUxBVEVEfFJFTEFURURUQUJMRXxSRU1PVkVGSUxURVJTfFJFUExBQ0V8UkVQVHxSSUdIVHxST0xMVVB8Uk9MTFVQQURESVNTVUJUT1RBTHxST0xMVVBHUk9VUHxST0xMVVBJU1NVQlRPVEFMfFJPVU5EfFJPVU5ERE9XTnxST1VORFVQfFJPV3xTQU1FUEVSSU9ETEFTVFlFQVJ8U0FNUExFfFNFQVJDSHxTRUNPTkR8U0VMRUNUQ09MVU1OU3xTRUxFQ1RFRE1FQVNVUkV8U0VMRUNURURNRUFTVVJFRk9STUFUU1RSSU5HfFNFTEVDVEVETUVBU1VSRU5BTUV8U0VMRUNURURWQUxVRXxTSUdOfFNJTnxTSU5IfFNRUlR8U1FSVFBJfFNUQVJUT0ZNT05USHxTVEFSVE9GUVVBUlRFUnxTVEFSVE9GWUVBUnxTVERFVlwuUHxTVERFVlwuU3xTVERFVlhcLlB8U1RERVZYXC5TfFNVQlNUSVRVVEV8U1VCU1RJVFVURVdJVEhJTkRFWHxTVU18U1VNTUFSSVpFfFNVTU1BUklaRUNPTFVNTlN8U1VNWHxTV0lUQ0h8VFwuRElTVHxUXC5ESVNUXC4yVHxUXC5ESVNUXC5SVHxUXC5JTlZ8VFwuSU5WXC4yVHxUQU58VEFOSHxUSU1FfFRJTUVWQUxVRXxUT0RBWXxUT1BOfFRPUE5QRVJMRVZFTHxUT1BOU0tJUHxUT1RBTE1URHxUT1RBTFFURHxUT1RBTFlURHxUUkVBVEFTfFRSSU18VFJVRXxUUlVOQ3xVTklDSEFSfFVOSUNPREV8VU5JT058VVBQRVJ8VVNFUkVMQVRJT05TSElQfFVTRVJOQU1FfFVTRVJPQkpFQ1RJRHxVU0VSUFJJTkNJUEFMTkFNRXxVVENOT1d8VVRDVE9EQVl8VkFMVUV8VkFMVUVTfFZBUlwuUHxWQVJcLlN8VkFSWFwuUHxWQVJYXC5TfFdFRUtEQVl8V0VFS05VTXxYSVJSfFhOUFZ8WUVBUnxZRUFSRlJBQykoPz1ccypcKCkvaSxrZXl3b3JkOi9cYig/OkRFRklORXxFVkFMVUFURXxNRUFTVVJFfE9SREVSXHMrQll8UkVUVVJOfFZBUnxTVEFSVFxzK0FUfEFTQ3xERVNDKVxiL2ksYm9vbGVhbjp7cGF0dGVybjovXGIoPzpGQUxTRXxOVUxMfFRSVUUpXGIvaSxhbGlhczoiY29uc3RhbnQifSxudW1iZXI6L1xiXGQrKD86XC5cZCopP3xcQlwuXGQrXGIvLG9wZXJhdG9yOi86PXxbLSsqXC89Xl18JiY/fFx8XHx8PCg/Oj0+P3w8fD4pP3w+Wz49XT98XGIoPzpJTnxOT1QpXGIvaSxwdW5jdHVhdGlvbjovWztcW1xdKCl7fWAsLl0vfX1yZXR1cm4gbnB9dmFyIHJwLHp4O2Z1bmN0aW9uIEsyKCl7aWYoengpcmV0dXJuIHJwO3p4PTEscnA9ZSxlLmRpc3BsYXlOYW1lPSJkaGFsbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZGhhbGw9e2NvbW1lbnQ6Ly0tLip8XHstKD86W14te118LSg/IVx9KXxceyg/IS0pfFx7LSg/OlteLXtdfC0oPyFcfSl8XHsoPyEtKSkqLVx9KSotXH0vLHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXXxcXC4pKiJ8JycoPzpbXiddfCcoPyEnKXwnJyd8JydcJFx7KSonJyg/ISd8XCQpLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi9cJFx7W157fV0qXH0vLGluc2lkZTp7ZXhwcmVzc2lvbjp7cGF0dGVybjovKF5cJFx7KVtcc1xTXSsoPz1cfSQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJsYW5ndWFnZS1kaGFsbCIsaW5zaWRlOm51bGx9LHB1bmN0dWF0aW9uOi9cJFx7fFx9L319fX0sbGFiZWw6e3BhdHRlcm46L2BbXmBdKmAvLGdyZWVkeTohMH0sdXJsOntwYXR0ZXJuOi9cYmh0dHBzPzpcL1wvW1x3LjolISQmJyorOz1Afi1dKyg/OlwvW1x3LjolISQmJyorOz1Afi1dKikqKD86XD9bLz9cdy46JSEkJicqKzs9QH4tXSopPy8sZ3JlZWR5OiEwfSxlbnY6e3BhdHRlcm46L1xiZW52Oig/Oig/IVxkKVx3K3wiKD86W14iXFw9XXxcXC4pKiIpLyxncmVlZHk6ITAsaW5zaWRlOntmdW5jdGlvbjovXmVudi8sb3BlcmF0b3I6L146Lyx2YXJpYWJsZTovW1xzXFNdKy99fSxoYXNoOntwYXR0ZXJuOi9cYnNoYTI1NjpbXGRhLWZBLUZdezY0fVxiLyxpbnNpZGU6e2Z1bmN0aW9uOi9zaGEyNTYvLG9wZXJhdG9yOi86LyxudW1iZXI6L1tcZGEtZkEtRl17NjR9L319LGtleXdvcmQ6L1xiKD86YXN8YXNzZXJ0fGVsc2V8Zm9yYWxsfGlmfGlufGxldHxtZXJnZXxtaXNzaW5nfHRoZW58dG9NYXB8dXNpbmd8d2l0aClcYnxcdTIyMDAvLGJ1aWx0aW46L1xiKD86Tm9uZXxTb21lKVxiLyxib29sZWFuOi9cYig/OkZhbHNlfFRydWUpXGIvLG51bWJlcjovXGJOYU5cYnwtP1xiSW5maW5pdHlcYnxbKy1dP1xiKD86MHhbXGRhLWZBLUZdK3xcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT8pXGIvLG9wZXJhdG9yOi9cL1xcfFwvXC9cXFxcfCYmfFx8XHx8PT09fFshPV09fFwvXC98LT58XCtcK3w6OnxbKyojQD06Pzw+fFxcXHUyMjI3XHUyYTUzXHUyMjYxXHUyYWZkXHUwM2JiXHUyMTkyXS8scHVuY3R1YXRpb246L1wuXC58W3t9XFtcXSgpLC4vXS8sImNsYXNzLW5hbWUiOi9cYltBLVpdXHcqXGIvfSxuLmxhbmd1YWdlcy5kaGFsbC5zdHJpbmcuaW5zaWRlLmludGVycG9sYXRpb24uaW5zaWRlLmV4cHJlc3Npb24uaW5zaWRlPW4ubGFuZ3VhZ2VzLmRoYWxsfXJldHVybiBycH12YXIgYXAscXg7ZnVuY3Rpb24gVzIoKXtpZihxeClyZXR1cm4gYXA7cXg9MSxhcD1lLGUuZGlzcGxheU5hbWU9ImRpZmYiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXthLmxhbmd1YWdlcy5kaWZmPXtjb29yZDpbL14oPzpcKnszfXwtezN9fFwrezN9KS4qJC9tLC9eQEAuKkBAJC9tLC9eXGQuKiQvbV19O3ZhciBpPXsiZGVsZXRlZC1zaWduIjoiLSIsImRlbGV0ZWQtYXJyb3ciOiI8IiwiaW5zZXJ0ZWQtc2lnbiI6IisiLCJpbnNlcnRlZC1hcnJvdyI6Ij4iLHVuY2hhbmdlZDoiICIsZGlmZjoiISJ9O09iamVjdC5rZXlzKGkpLmZvckVhY2goZnVuY3Rpb24obCl7dmFyIHU9aVtsXSxjPVtdOy9eXHcrJC8udGVzdChsKXx8Yy5wdXNoKC9cdysvLmV4ZWMobClbMF0pLGw9PT0iZGlmZiImJmMucHVzaCgiYm9sZCIpLGEubGFuZ3VhZ2VzLmRpZmZbbF09e3BhdHRlcm46UmVnRXhwKCJeKD86WyIrdStgXS4qKD86XHIKP3wKfCg/IVtcXHNcXFNdKSkpK2AsIm0iKSxhbGlhczpjLGluc2lkZTp7bGluZTp7cGF0dGVybjovKC4pKD89W1xzXFNdKS4qKD86XHJcbj98XG4pPy8sbG9va2JlaGluZDohMH0scHJlZml4OntwYXR0ZXJuOi9bXHNcU10vLGFsaWFzOi9cdysvLmV4ZWMobClbMF19fX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5sYW5ndWFnZXMuZGlmZiwiUFJFRklYRVMiLHt2YWx1ZTppfSl9KShuKX1yZXR1cm4gYXB9dmFyIGlwLFB4O2Z1bmN0aW9uIEh0KCl7aWYoUHgpcmV0dXJuIGlwO1B4PTEsaXA9ZSxlLmRpc3BsYXlOYW1lPSJtYXJrdXBUZW1wbGF0aW5nIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7ZnVuY3Rpb24gaShsLHUpe3JldHVybiJfX18iK2wudG9VcHBlckNhc2UoKSt1KyJfX18ifU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGEubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdPXt9LHtidWlsZFBsYWNlaG9sZGVyczp7dmFsdWU6ZnVuY3Rpb24obCx1LGMsZCl7aWYobC5sYW5ndWFnZT09PXUpe3ZhciBmPWwudG9rZW5TdGFjaz1bXTtsLmNvZGU9bC5jb2RlLnJlcGxhY2UoYyxmdW5jdGlvbihtKXtpZih0eXBlb2YgZD09ImZ1bmN0aW9uIiYmIWQobSkpcmV0dXJuIG07Zm9yKHZhciBiPWYubGVuZ3RoLGg7bC5jb2RlLmluZGV4T2YoaD1pKHUsYikpIT09LTE7KSsrYjtyZXR1cm4gZltiXT1tLGh9KSxsLmdyYW1tYXI9YS5sYW5ndWFnZXMubWFya3VwfX19LHRva2VuaXplUGxhY2Vob2xkZXJzOnt2YWx1ZTpmdW5jdGlvbihsLHUpe2lmKGwubGFuZ3VhZ2UhPT11fHwhbC50b2tlblN0YWNrKXJldHVybjtsLmdyYW1tYXI9YS5sYW5ndWFnZXNbdV07dmFyIGM9MCxkPU9iamVjdC5rZXlzKGwudG9rZW5TdGFjayk7ZnVuY3Rpb24gZihtKXtmb3IodmFyIGI9MDtiPG0ubGVuZ3RoJiYhKGM+PWQubGVuZ3RoKTtiKyspe3ZhciBoPW1bYl07aWYodHlwZW9mIGg9PSJzdHJpbmcifHxoLmNvbnRlbnQmJnR5cGVvZiBoLmNvbnRlbnQ9PSJzdHJpbmciKXt2YXIgUz1kW2NdLEU9bC50b2tlblN0YWNrW1NdLF89dHlwZW9mIGg9PSJzdHJpbmciP2g6aC5jb250ZW50LFQ9aSh1LFMpLEM9Xy5pbmRleE9mKFQpO2lmKEM+LTEpeysrYzt2YXIgeD1fLnN1YnN0cmluZygwLEMpLE49bmV3IGEuVG9rZW4odSxhLnRva2VuaXplKEUsbC5ncmFtbWFyKSwibGFuZ3VhZ2UtIit1LEUpLGs9Xy5zdWJzdHJpbmcoQytULmxlbmd0aCksTD1bXTt4JiZMLnB1c2guYXBwbHkoTCxmKFt4XSkpLEwucHVzaChOKSxrJiZMLnB1c2guYXBwbHkoTCxmKFtrXSkpLHR5cGVvZiBoPT0ic3RyaW5nIj9tLnNwbGljZS5hcHBseShtLFtiLDFdLmNvbmNhdChMKSk6aC5jb250ZW50PUx9fWVsc2UgaC5jb250ZW50JiZmKGguY29udGVudCl9cmV0dXJuIG19ZihsLnRva2Vucyl9fX0pfSkobil9cmV0dXJuIGlwfXZhciBvcCxHeDtmdW5jdGlvbiBYMigpe2lmKEd4KXJldHVybiBvcDtHeD0xO3ZhciBlPUh0KCk7b3A9bixuLmRpc3BsYXlOYW1lPSJkamFuZ28iLG4uYWxpYXNlcz1bImppbmphMiJdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSwoZnVuY3Rpb24oaSl7aS5sYW5ndWFnZXMuZGphbmdvPXtjb21tZW50Oi9eXHsjW1xzXFNdKj8jXH0kLyx0YWc6e3BhdHRlcm46LyheXHslWystXT9ccyopXHcrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sZGVsaW1pdGVyOntwYXR0ZXJuOi9eXHtbeyVdWystXT98WystXT9bfSVdXH0kLyxhbGlhczoicHVuY3R1YXRpb24ifSxzdHJpbmc6e3BhdHRlcm46LygifCcpKD86XFwufCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMH0sZmlsdGVyOntwYXR0ZXJuOi8oXHwpXHcrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9LHRlc3Q6e3BhdHRlcm46LyhcYmlzXHMrKD86bm90XHMrKT8pKD8hbm90XGIpXHcrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9LGZ1bmN0aW9uOi9cYlthLXpfXVx3Kyg/PVxzKlwoKS9pLGtleXdvcmQ6L1xiKD86YW5kfGFzfGJ5fGVsc2V8Zm9yfGlmfGltcG9ydHxpbnxpc3xsb29wfG5vdHxvcnxyZWN1cnNpdmV8d2l0aHx3aXRob3V0KVxiLyxvcGVyYXRvcjovWy0rJT1dPT98IT18XCpcKj89P3xcL1wvPz0/fDxbPD0+XT98Pls9Pl0/fFsmfF5+XS8sbnVtYmVyOi9cYlxkKyg/OlwuXGQrKT9cYi8sYm9vbGVhbjovW0ZmXWFsc2V8W05uXW9uZXxbVHRdcnVlLyx2YXJpYWJsZTovXGJcdytcYi8scHVuY3R1YXRpb246L1t7fVtcXSgpLC46O10vfTt2YXIgbD0vXHtce1tcc1xTXSo/XH1cfXxceyVbXHNcU10qPyVcfXxceyNbXHNcU10qPyNcfS9nLHU9aS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl07aS5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24oYyl7dS5idWlsZFBsYWNlaG9sZGVycyhjLCJkamFuZ28iLGwpfSksaS5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihjKXt1LnRva2VuaXplUGxhY2Vob2xkZXJzKGMsImRqYW5nbyIpfSksaS5sYW5ndWFnZXMuamluamEyPWkubGFuZ3VhZ2VzLmRqYW5nbyxpLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihjKXt1LmJ1aWxkUGxhY2Vob2xkZXJzKGMsImppbmphMiIsbCl9KSxpLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKGMpe3UudG9rZW5pemVQbGFjZWhvbGRlcnMoYywiamluamEyIil9KX0pKGEpfXJldHVybiBvcH12YXIgbHAsSHg7ZnVuY3Rpb24gWjIoKXtpZihIeClyZXR1cm4gbHA7SHg9MSxscD1lLGUuZGlzcGxheU5hbWU9ImRuc1pvbmVGaWxlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlc1siZG5zLXpvbmUtZmlsZSJdPXtjb21tZW50Oi87LiovLHN0cmluZzp7cGF0dGVybjovIig/OlxcLnxbXiJcXFxyXG5dKSoiLyxncmVlZHk6ITB9LHZhcmlhYmxlOlt7cGF0dGVybjovKF5cJE9SSUdJTlsgXHRdKylcUysvbSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58XHMpQCg/PVxzfCQpLyxsb29rYmVoaW5kOiEwfV0sa2V5d29yZDovXlwkKD86SU5DTFVERXxPUklHSU58VFRMKSg/PVxzfCQpL20sY2xhc3M6e3BhdHRlcm46LyhefFxzKSg/OkNIfENTfEhTfElOKSg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sdHlwZTp7cGF0dGVybjovKF58XHMpKD86QXxBNnxBQUFBfEFGU0RCfEFQTHxBVE1BfENBQXxDRE5TS0VZfENEU3xDRVJUfENOQU1FfERIQ0lEfERMVnxETkFNRXxETlNLRVl8RFN8RUlEfEdJRHxHUE9TfEhJTkZPfEhJUHxJUFNFQ0tFWXxJU0ROfEtFWXxLWHxMT0N8TUFJTEF8TUFJTEJ8TUJ8TUR8TUZ8TUd8TUlORk98TVJ8TVh8TkFQVFJ8TkJ8TkJTVEFUfE5JTUxPQ3xOSU5GT3xOU3xOU0FQfE5TQVAtUFRSfE5TRUN8TlNFQzN8TlNFQzNQQVJBTXxOVUxMfE5YVHxPUEVOUEdQS0VZfFBUUnxQWHxSS0VZfFJQfFJSU0lHfFJUfFNJR3xTSU5LfFNNSU1FQXxTT0F8U1BGfFNSVnxTU0hGUHxUQXxUS0VZfFRMU0F8VFNJR3xUWFR8VUlEfFVJTkZPfFVOU1BFQ3xVUkl8V0tTfFgyNSkoPz1cc3wkKS8sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LHB1bmN0dWF0aW9uOi9bKCldL30sbi5sYW5ndWFnZXNbImRucy16b25lIl09bi5sYW5ndWFnZXNbImRucy16b25lLWZpbGUiXX1yZXR1cm4gbHB9dmFyIHNwLCR4O2Z1bmN0aW9uIFEyKCl7aWYoJHgpcmV0dXJuIHNwOyR4PTEsc3A9ZSxlLmRpc3BsYXlOYW1lPSJkb2NrZXIiLGUuYWxpYXNlcz1bImRvY2tlcmZpbGUiXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vXFxbXHJcbl0oPzpcc3xcXFtcclxuXXwjLiooPyEuKSkqKD8hW1xzI118XFxbXHJcbl0pLy5zb3VyY2UsbD0vKD86WyBcdF0rKD8hWyBcdF0pKD86PFNQX0JTPik/fDxTUF9CUz4pLy5zb3VyY2UucmVwbGFjZSgvPFNQX0JTPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSx1PS8iKD86W14iXFxcclxuXXxcXCg/OlxyXG58W1xzXFNdKSkqInwnKD86W14nXFxcclxuXXxcXCg/OlxyXG58W1xzXFNdKSkqJy8uc291cmNlLGM9Ly0tW1x3LV0rPSg/OjxTVFI+fCg/IVsiJ10pKD86W15cc1xcXXxcXC4pKykvLnNvdXJjZS5yZXBsYWNlKC88U1RSPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHV9KSxkPXtwYXR0ZXJuOlJlZ0V4cCh1KSxncmVlZHk6ITB9LGY9e3BhdHRlcm46LyheWyBcdF0qKSMuKi9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfTtmdW5jdGlvbiBtKGIsaCl7cmV0dXJuIGI9Yi5yZXBsYWNlKC88T1BUPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGN9KS5yZXBsYWNlKC88U1A+L2csZnVuY3Rpb24oKXtyZXR1cm4gbH0pLFJlZ0V4cChiLGgpfWEubGFuZ3VhZ2VzLmRvY2tlcj17aW5zdHJ1Y3Rpb246e3BhdHRlcm46LyheWyBcdF0qKSg/OkFERHxBUkd8Q01EfENPUFl8RU5UUllQT0lOVHxFTlZ8RVhQT1NFfEZST018SEVBTFRIQ0hFQ0t8TEFCRUx8TUFJTlRBSU5FUnxPTkJVSUxEfFJVTnxTSEVMTHxTVE9QU0lHTkFMfFVTRVJ8Vk9MVU1FfFdPUktESVIpKD89XHMpKD86XFwufFteXHJcblxcXSkqKD86XFwkKD86XHN8Iy4qJCkqKD8hW1xzI10pKD86XFwufFteXHJcblxcXSkqKSovaW0sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntvcHRpb25zOntwYXR0ZXJuOm0oLyheKD86T05CVUlMRDxTUD4pP1x3KzxTUD4pPE9QVD4oPzo8U1A+PE9QVD4pKi8uc291cmNlLCJpIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntwcm9wZXJ0eTp7cGF0dGVybjovKF58XHMpLS1bXHctXSsvLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzpbZCx7cGF0dGVybjovKD0pKD8hWyInXSkoPzpbXlxzXFxdfFxcLikrLyxsb29rYmVoaW5kOiEwfV0sb3BlcmF0b3I6L1xcJC9tLHB1bmN0dWF0aW9uOi89L319LGtleXdvcmQ6W3twYXR0ZXJuOm0oLyheKD86T05CVUlMRDxTUD4pP0hFQUxUSENIRUNLPFNQPig/OjxPUFQ+PFNQPikqKSg/OkNNRHxOT05FKVxiLy5zb3VyY2UsImkiKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46bSgvKF4oPzpPTkJVSUxEPFNQPik/RlJPTTxTUD4oPzo8T1BUPjxTUD4pKig/IS0tKVteIFx0XFxdKzxTUD4pQVMvLnNvdXJjZSwiaSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjptKC8oXk9OQlVJTEQ8U1A+KVx3Ky8uc291cmNlLCJpIiksbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi9eXHcrLyxncmVlZHk6ITB9XSxjb21tZW50OmYsc3RyaW5nOmQsdmFyaWFibGU6L1wkKD86XHcrfFx7W157fSInXFxdKlx9KS8sb3BlcmF0b3I6L1xcJC9tfX0sY29tbWVudDpmfSxhLmxhbmd1YWdlcy5kb2NrZXJmaWxlPWEubGFuZ3VhZ2VzLmRvY2tlcn0pKG4pfXJldHVybiBzcH12YXIgdXAsVng7ZnVuY3Rpb24gSjIoKXtpZihWeClyZXR1cm4gdXA7Vng9MSx1cD1lLGUuZGlzcGxheU5hbWU9ImRvdCIsZS5hbGlhc2VzPVsiZ3YiXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0iKD86IitbL1thLXpBLVpfXHg4MC1cdUZGRkZdW1x3XHg4MC1cdUZGRkZdKi8uc291cmNlLC8tPyg/OlwuXGQrfFxkKyg/OlwuXGQqKT8pLy5zb3VyY2UsLyJbXiJcXF0qKD86XFxbXHNcU11bXiJcXF0qKSoiLy5zb3VyY2UsLzwoPzpbXjw+XXwoPyE8IS0tKTwoPzpbXjw+IiddfCJbXiJdKiJ8J1teJ10qJykrPnw8IS0tKD86W14tXXwtKD8hLT4pKSotLT4pKj4vLnNvdXJjZV0uam9pbigifCIpKyIpIixsPXttYXJrdXA6e3BhdHRlcm46LyhePClbXHNcU10rKD89PiQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOlsibGFuZ3VhZ2UtbWFya3VwIiwibGFuZ3VhZ2UtaHRtbCIsImxhbmd1YWdlLXhtbCJdLGluc2lkZTphLmxhbmd1YWdlcy5tYXJrdXB9fTtmdW5jdGlvbiB1KGMsZCl7cmV0dXJuIFJlZ0V4cChjLnJlcGxhY2UoLzxJRD4vZyxmdW5jdGlvbigpe3JldHVybiBpfSksZCl9YS5sYW5ndWFnZXMuZG90PXtjb21tZW50OntwYXR0ZXJuOi9cL1wvLip8XC9cKltcc1xTXSo/XCpcL3xeIy4qL20sZ3JlZWR5OiEwfSwiZ3JhcGgtbmFtZSI6e3BhdHRlcm46dSgvKFxiKD86ZGlncmFwaHxncmFwaHxzdWJncmFwaClbIFx0XHJcbl0rKTxJRD4vLnNvdXJjZSwiaSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJjbGFzcy1uYW1lIixpbnNpZGU6bH0sImF0dHItdmFsdWUiOntwYXR0ZXJuOnUoLyg9WyBcdFxyXG5dKik8SUQ+Ly5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTpsfSwiYXR0ci1uYW1lIjp7cGF0dGVybjp1KC8oW1xbOywgXHRcclxuXSk8SUQ+KD89WyBcdFxyXG5dKj0pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTpsfSxrZXl3b3JkOi9cYig/OmRpZ3JhcGh8ZWRnZXxncmFwaHxub2RlfHN0cmljdHxzdWJncmFwaClcYi9pLCJjb21wYXNzLXBvaW50Ijp7cGF0dGVybjovKDpbIFx0XHJcbl0qKSg/Oltld2NfXXxbbnNdW2V3XT8pKD8hW1x3XHg4MC1cdUZGRkZdKS8sbG9va2JlaGluZDohMCxhbGlhczoiYnVpbHRpbiJ9LG5vZGU6e3BhdHRlcm46dSgvKF58W14tLlx3XHg4MC1cdUZGRkZcXF0pPElEPi8uc291cmNlKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6bH0sb3BlcmF0b3I6L1s9Ol18LVstPl0vLHB1bmN0dWF0aW9uOi9bXFtcXXt9OyxdL30sYS5sYW5ndWFnZXMuZ3Y9YS5sYW5ndWFnZXMuZG90fSkobil9cmV0dXJuIHVwfXZhciBjcCxZeDtmdW5jdGlvbiBlVSgpe2lmKFl4KXJldHVybiBjcDtZeD0xLGNwPWUsZS5kaXNwbGF5TmFtZT0iZWJuZiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZWJuZj17Y29tbWVudDovXChcKltcc1xTXSo/XCpcKS8sc3RyaW5nOntwYXR0ZXJuOi8iW14iXHJcbl0qInwnW14nXHJcbl0qJy8sZ3JlZWR5OiEwfSxzcGVjaWFsOntwYXR0ZXJuOi9cP1teP1xyXG5dKlw/LyxncmVlZHk6ITAsYWxpYXM6ImNsYXNzLW5hbWUifSxkZWZpbml0aW9uOntwYXR0ZXJuOi9eKFtcdCBdKilbYS16XVx3Kig/OlsgXHRdK1thLXpdXHcqKSooPz1ccyo9KS9pbSxsb29rYmVoaW5kOiEwLGFsaWFzOlsicnVsZSIsImtleXdvcmQiXX0scnVsZTovXGJbYS16XVx3Kig/OlsgXHRdK1thLXpdXHcqKSpcYi9pLHB1bmN0dWF0aW9uOi9cKFs6L118WzovXVwpfFsuLDsoKVtcXXt9XS8sb3BlcmF0b3I6L1stPXwqLyFdL319cmV0dXJuIGNwfXZhciBkcCxLeDtmdW5jdGlvbiB0VSgpe2lmKEt4KXJldHVybiBkcDtLeD0xLGRwPWUsZS5kaXNwbGF5TmFtZT0iZWRpdG9yY29uZmlnIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5lZGl0b3Jjb25maWc9e2NvbW1lbnQ6L1s7I10uKi8sc2VjdGlvbjp7cGF0dGVybjovKF5bIFx0XSopXFsuK1xdL20sbG9va2JlaGluZDohMCxhbGlhczoic2VsZWN0b3IiLGluc2lkZTp7cmVnZXg6L1xcXFxbXFtcXXt9LCE/LipdLyxvcGVyYXRvcjovWyE/XXxcLlwufFwqezEsMn0vLHB1bmN0dWF0aW9uOi9bXFtcXXt9LF0vfX0sa2V5OntwYXR0ZXJuOi8oXlsgXHRdKilbXlxzPV0rKD89WyBcdF0qPSkvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJhdHRyLW5hbWUifSx2YWx1ZTp7cGF0dGVybjovPS4qLyxhbGlhczoiYXR0ci12YWx1ZSIsaW5zaWRlOntwdW5jdHVhdGlvbjovXj0vfX19fXJldHVybiBkcH12YXIgcHAsV3g7ZnVuY3Rpb24gblUoKXtpZihXeClyZXR1cm4gcHA7V3g9MSxwcD1lLGUuZGlzcGxheU5hbWU9ImVpZmZlbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZWlmZmVsPXtjb21tZW50Oi8tLS4qLyxzdHJpbmc6W3twYXR0ZXJuOi8iKFteW10qKVxbW1xzXFNdKj9cXVwxIi8sZ3JlZWR5OiEwfSx7cGF0dGVybjovIihbXntdKilce1tcc1xTXSo/XH1cMSIvLGdyZWVkeTohMH0se3BhdHRlcm46LyIoPzolKD86KD8hXG4pXHMpKlxuXHMqJXwlXFN8W14lIlxyXG5dKSoiLyxncmVlZHk6ITB9XSxjaGFyOi8nKD86JS58W14lJ1xyXG5dKSsnLyxrZXl3b3JkOi9cYig/OmFjcm9zc3xhZ2VudHxhbGlhc3xhbGx8YW5kfGFzfGFzc2lnbnxhdHRhY2hlZHxhdHRyaWJ1dGV8Y2hlY2t8Y2xhc3N8Y29udmVydHxjcmVhdGV8Q3VycmVudHxkZWJ1Z3xkZWZlcnJlZHxkZXRhY2hhYmxlfGRvfGVsc2V8ZWxzZWlmfGVuZHxlbnN1cmV8ZXhwYW5kZWR8ZXhwb3J0fGV4dGVybmFsfGZlYXR1cmV8ZnJvbXxmcm96ZW58aWZ8aW1wbGllc3xpbmhlcml0fGluc3BlY3R8aW52YXJpYW50fGxpa2V8bG9jYWx8bG9vcHxub3R8bm90ZXxvYnNvbGV0ZXxvbGR8b25jZXxvcnxQcmVjdXJzb3J8cmVkZWZpbmV8cmVuYW1lfHJlcXVpcmV8cmVzY3VlfFJlc3VsdHxyZXRyeXxzZWxlY3R8c2VwYXJhdGV8c29tZXx0aGVufHVuZGVmaW5lfHVudGlsfHZhcmlhbnR8Vm9pZHx3aGVufHhvcilcYi9pLGJvb2xlYW46L1xiKD86RmFsc2V8VHJ1ZSlcYi9pLCJjbGFzcy1uYW1lIjovXGJbQS1aXVtcZEEtWl9dKlxiLyxudW1iZXI6Wy9cYjBbeGNiXVtcZGEtZl0oPzpfKltcZGEtZl0pKlxiL2ksLyg/OlxiXGQoPzpfKlxkKSopP1wuKD86KD86XGQoPzpfKlxkKSopP2VbKy1dPyk/XGQoPzpfKlxkKSpcYnxcYlxkKD86XypcZCkqXGJcLj8vaV0scHVuY3R1YXRpb246Lzo9fDw8fD4+fFwoXHx8XHxcKXwtPnxcLig/PVx3KXxbe31bXF07KCksOj9dLyxvcGVyYXRvcjovXFxcXHxcfFwuXC5cfHxcLlwufFwvW35cLz1dP3xbPjxdPT98Wy0rKl49fl0vfX1yZXR1cm4gcHB9dmFyIGZwLFh4O2Z1bmN0aW9uIHJVKCl7aWYoWHgpcmV0dXJuIGZwO1h4PTE7dmFyIGU9SHQoKTtmcD1uLG4uZGlzcGxheU5hbWU9ImVqcyIsbi5hbGlhc2VzPVsiZXRhIl07ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLChmdW5jdGlvbihpKXtpLmxhbmd1YWdlcy5lanM9e2RlbGltaXRlcjp7cGF0dGVybjovXjwlWy1fPV0/fFstX10/JT4kLyxhbGlhczoicHVuY3R1YXRpb24ifSxjb21tZW50Oi9eI1tcc1xTXSovLCJsYW5ndWFnZS1qYXZhc2NyaXB0Ijp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOmkubGFuZ3VhZ2VzLmphdmFzY3JpcHR9fSxpLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihsKXt2YXIgdT0vPCUoPyElKVtcc1xTXSs/JT4vZztpLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS5idWlsZFBsYWNlaG9sZGVycyhsLCJlanMiLHUpfSksaS5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihsKXtpLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS50b2tlbml6ZVBsYWNlaG9sZGVycyhsLCJlanMiKX0pLGkubGFuZ3VhZ2VzLmV0YT1pLmxhbmd1YWdlcy5lanN9KShhKX1yZXR1cm4gZnB9dmFyIGdwLFp4O2Z1bmN0aW9uIGFVKCl7aWYoWngpcmV0dXJuIGdwO1p4PTEsZ3A9ZSxlLmRpc3BsYXlOYW1lPSJlbGl4aXIiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmVsaXhpcj17ZG9jOntwYXR0ZXJuOi9AKD86ZG9jfG1vZHVsZWRvYylccysoPzooIiIifCcnJylbXHNcU10qP1wxfCgifCcpKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDIpW15cXFxyXG5dKSpcMikvLGluc2lkZTp7YXR0cmlidXRlOi9eQFx3Ky8sc3RyaW5nOi9bJyJdW1xzXFNdKy99fSxjb21tZW50OntwYXR0ZXJuOi8jLiovLGdyZWVkeTohMH0scmVnZXg6e3BhdHRlcm46L35bclJdKD86KCIiInwnJycpKD86XFxbXHNcU118KD8hXDEpW15cXF0pK1wxfChbXC98IiddKSg/OlxcLnwoPyFcMilbXlxcXHJcbl0pK1wyfFwoKD86XFwufFteXFwpXHJcbl0pK1wpfFxbKD86XFwufFteXFxcXVxyXG5dKStcXXxceyg/OlxcLnxbXlxcfVxyXG5dKStcfXw8KD86XFwufFteXFw+XHJcbl0pKz4pW3Vpc214ZnJdKi8sZ3JlZWR5OiEwfSxzdHJpbmc6W3twYXR0ZXJuOi9+W2NDc1N3V10oPzooIiIifCcnJykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkrXDF8KFtcL3wiJ10pKD86XFwufCg/IVwyKVteXFxcclxuXSkrXDJ8XCgoPzpcXC58W15cXClcclxuXSkrXCl8XFsoPzpcXC58W15cXFxdXHJcbl0pK1xdfFx7KD86XFwufCNce1tefV0rXH18Iyg/IVx7KXxbXiNcXH1cclxuXSkrXH18PCg/OlxcLnxbXlxcPlxyXG5dKSs+KVtjc2FdPy8sZ3JlZWR5OiEwLGluc2lkZTp7fX0se3BhdHRlcm46LygiIiJ8JycnKVtcc1xTXSo/XDEvLGdyZWVkeTohMCxpbnNpZGU6e319LHtwYXR0ZXJuOi8oInwnKSg/OlxcKD86XHJcbnxbXHNcU10pfCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMCxpbnNpZGU6e319XSxhdG9tOntwYXR0ZXJuOi8oXnxbXjpdKTpcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN5bWJvbCJ9LG1vZHVsZTp7cGF0dGVybjovXGJbQS1aXVx3KlxiLyxhbGlhczoiY2xhc3MtbmFtZSJ9LCJhdHRyLW5hbWUiOi9cYlx3K1w/PzooPyE6KS8sYXJndW1lbnQ6e3BhdHRlcm46LyhefFteJl0pJlxkKy8sbG9va2JlaGluZDohMCxhbGlhczoidmFyaWFibGUifSxhdHRyaWJ1dGU6e3BhdHRlcm46L0BcdysvLGFsaWFzOiJ2YXJpYWJsZSJ9LGZ1bmN0aW9uOi9cYltfYS16QS1aXVx3Kls/IV0/KD86KD89XHMqKD86XC5ccyopP1woKXwoPz1cL1xkKSkvLG51bWJlcjovXGIoPzowW2JveF1bYS1mXGRfXSt8XGRbXGRfXSopKD86XC5bXGRfXSspPyg/OmVbKy1dP1tcZF9dKyk/XGIvaSxrZXl3b3JkOi9cYig/OmFmdGVyfGFsaWFzfGFuZHxjYXNlfGNhdGNofGNvbmR8ZGVmKD86Y2FsbGJhY2t8ZGVsZWdhdGV8ZXhjZXB0aW9ufGltcGx8bWFjcm98bW9kdWxlfG58bnB8cHxwcm90b2NvbHxzdHJ1Y3QpP3xkb3xlbHNlfGVuZHxmbnxmb3J8aWZ8aW1wb3J0fG5vdHxvcnxxdW90ZXxyYWlzZXxyZXF1aXJlfHJlc2N1ZXx0cnl8dW5sZXNzfHVucXVvdGV8dXNlfHdoZW4pXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8bmlsfHRydWUpXGIvLG9wZXJhdG9yOlsvXGJpblxifCYmP3xcfFt8Pl0/fFxcXFx8Ojp8XC5cLlwuP3xcK1wrP3wtWy0+XT98PFstPT5dfD49fCE9PT98XEIhfD0oPzo9PT98Wz5+XSk/fFsqXC9eXS8se3BhdHRlcm46LyhbXjxdKTwoPyE8KS8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhbXj5dKT4oPyE+KS8sbG9va2JlaGluZDohMH1dLHB1bmN0dWF0aW9uOi88PHw+PnxbLiwlXFtcXXt9KCldL30sbi5sYW5ndWFnZXMuZWxpeGlyLnN0cmluZy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuaW5zaWRlPXtpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8jXHtbXn1dK1x9LyxpbnNpZGU6e2RlbGltaXRlcjp7cGF0dGVybjovXiNce3xcfSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHJlc3Q6bi5sYW5ndWFnZXMuZWxpeGlyfX19fSl9cmV0dXJuIGdwfXZhciBtcCxReDtmdW5jdGlvbiBpVSgpe2lmKFF4KXJldHVybiBtcDtReD0xLG1wPWUsZS5kaXNwbGF5TmFtZT0iZWxtIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5lbG09e2NvbW1lbnQ6Ly0tLip8XHstW1xzXFNdKj8tXH0vLGNoYXI6e3BhdHRlcm46LycoPzpbXlxcJ1xyXG5dfFxcKD86W2FiZm5ydHZcXCddfFxkK3x4WzAtOWEtZkEtRl0rfHVce1swLTlhLWZBLUZdK1x9KSknLyxncmVlZHk6ITB9LHN0cmluZzpbe3BhdHRlcm46LyIiIltcc1xTXSo/IiIiLyxncmVlZHk6ITB9LHtwYXR0ZXJuOi8iKD86W15cXCJcclxuXXxcXC4pKiIvLGdyZWVkeTohMH1dLCJpbXBvcnQtc3RhdGVtZW50Ijp7cGF0dGVybjovKF5bXHQgXSopaW1wb3J0XHMrW0EtWl1cdyooPzpcLltBLVpdXHcqKSooPzpccythc1xzKyg/OltBLVpdXHcqKSg/OlwuW0EtWl1cdyopKik/KD86XHMrZXhwb3NpbmdccyspPy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9cYig/OmFzfGV4cG9zaW5nfGltcG9ydClcYi99fSxrZXl3b3JkOi9cYig/OmFsaWFzfGFzfGNhc2V8ZWxzZXxleHBvc2luZ3xpZnxpbnxpbmZpeGx8aW5maXhyfGxldHxtb2R1bGV8b2Z8dGhlbnx0eXBlKVxiLyxidWlsdGluOi9cYig/OmFic3xhY29zfGFsd2F5c3xhc2lufGF0YW58YXRhbjJ8Y2VpbGluZ3xjbGFtcHxjb21wYXJlfGNvc3xjdXJyeXxkZWdyZWVzfGV8ZmxpcHxmbG9vcnxmcm9tUG9sYXJ8aWRlbnRpdHl8aXNJbmZpbml0ZXxpc05hTnxsb2dCYXNlfG1heHxtaW58bmVnYXRlfG5ldmVyfG5vdHxwaXxyYWRpYW5zfHJlbXxyb3VuZHxzaW58c3FydHx0YW58dG9GbG9hdHx0b1BvbGFyfHRvU3RyaW5nfHRydW5jYXRlfHR1cm5zfHVuY3Vycnl8eG9yKVxiLyxudW1iZXI6L1xiKD86XGQrKD86XC5cZCspPyg/OmVbKy1dP1xkKyk/fDB4WzAtOWEtZl0rKVxiL2ksb3BlcmF0b3I6L1xzXC5cc3xbK1wtLyo9LiQ8PjomfF4/JSNAfiFdezIsfXxbK1wtLyo9JDw+OiZ8Xj8lI0B+IV0vLGh2YXJpYWJsZTovXGIoPzpbQS1aXVx3KlwuKSpbYS16XVx3KlxiLyxjb25zdGFudDovXGIoPzpbQS1aXVx3KlwuKSpbQS1aXVx3KlxiLyxwdW5jdHVhdGlvbjovW3t9W1xdfCgpLC46XS99fXJldHVybiBtcH12YXIgaHAsSng7ZnVuY3Rpb24gb1UoKXtpZihKeClyZXR1cm4gaHA7Sng9MTt2YXIgZT1WbCgpLG49SHQoKTtocD1hLGEuZGlzcGxheU5hbWU9ImVyYiIsYS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGEoaSl7aS5yZWdpc3RlcihlKSxpLnJlZ2lzdGVyKG4pLChmdW5jdGlvbihsKXtsLmxhbmd1YWdlcy5lcmI9e2RlbGltaXRlcjp7cGF0dGVybjovXihccyopPCU9P3wlPig/PVxzKiQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHJ1Ynk6e3BhdHRlcm46L1xzKlxTW1xzXFNdKi8sYWxpYXM6Imxhbmd1YWdlLXJ1YnkiLGluc2lkZTpsLmxhbmd1YWdlcy5ydWJ5fX0sbC5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24odSl7dmFyIGM9LzwlPT8oPzpbXlxyXG5dfFtcclxuXSg/IT1iZWdpbil8W1xyXG5dPWJlZ2luXHMoPzpbXlxyXG5dfFtcclxuXSg/IT1lbmQpKSpbXHJcbl09ZW5kKSs/JT4vZztsLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS5idWlsZFBsYWNlaG9sZGVycyh1LCJlcmIiLGMpfSksbC5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbih1KXtsLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS50b2tlbml6ZVBsYWNlaG9sZGVycyh1LCJlcmIiKX0pfSkoaSl9cmV0dXJuIGhwfXZhciBicCxlQTtmdW5jdGlvbiBsVSgpe2lmKGVBKXJldHVybiBicDtlQT0xLGJwPWUsZS5kaXNwbGF5TmFtZT0iZXJsYW5nIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5lcmxhbmc9e2NvbW1lbnQ6LyUuKy8sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwufFteXFwiXHJcbl0pKiIvLGdyZWVkeTohMH0sInF1b3RlZC1mdW5jdGlvbiI6e3BhdHRlcm46LycoPzpcXC58W15cXCdcclxuXSkrJyg/PVwoKS8sYWxpYXM6ImZ1bmN0aW9uIn0sInF1b3RlZC1hdG9tIjp7cGF0dGVybjovJyg/OlxcLnxbXlxcJ1xyXG5dKSsnLyxhbGlhczoiYXRvbSJ9LGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sa2V5d29yZDovXGIoPzphZnRlcnxjYXNlfGNhdGNofGVuZHxmdW58aWZ8b2Z8cmVjZWl2ZXx0cnl8d2hlbilcYi8sbnVtYmVyOlsvXCRcXD8uLywvXGJcZCsjW2EtejAtOV0rL2ksLyg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/L2ldLGZ1bmN0aW9uOi9cYlthLXpdW1x3QF0qKD89XCgpLyx2YXJpYWJsZTp7cGF0dGVybjovKF58W15AXSkoPzpcYnxcPylbQS1aX11bXHdAXSovLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOlsvWz1cLzw+Ol09fD1bOlwvXT18XCtcKz98LS0/fFs9KlwvIV18XGIoPzphbmR8YW5kYWxzb3xiYW5kfGJub3R8Ym9yfGJzbHxic3J8YnhvcnxkaXZ8bm90fG9yfG9yZWxzZXxyZW18eG9yKVxiLyx7cGF0dGVybjovKF58W148XSk8KD8hPCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxbXj5dKT4oPyE+KS8sbG9va2JlaGluZDohMH1dLGF0b206L1xiW2Etel1bXHdAXSovLHB1bmN0dWF0aW9uOi9bKClbXF17fTo7LC4jfF18PDx8Pj4vfX1yZXR1cm4gYnB9dmFyIHlwLHRBO2Z1bmN0aW9uIGdrKCl7aWYodEEpcmV0dXJuIHlwO3RBPTEseXA9ZSxlLmRpc3BsYXlOYW1lPSJsdWEiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmx1YT17Y29tbWVudDovXiMhLit8LS0oPzpcWyg9KilcW1tcc1xTXSo/XF1cMVxdfC4qKS9tLHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86KD8hXDEpW15cXFxyXG5dfFxceig/OlxyXG58XHMpfFxcKD86XHJcbnxbXnpdKSkqXDF8XFsoPSopXFtbXHNcU10qP1xdXDJcXS8sZ3JlZWR5OiEwfSxudW1iZXI6L1xiMHhbYS1mXGRdKyg/OlwuW2EtZlxkXSopPyg/OnBbKy1dP1xkKyk/XGJ8XGJcZCsoPzpcLlxCfCg/OlwuXGQqKT8oPzplWystXT9cZCspP1xiKXxcQlwuXGQrKD86ZVsrLV0/XGQrKT9cYi9pLGtleXdvcmQ6L1xiKD86YW5kfGJyZWFrfGRvfGVsc2V8ZWxzZWlmfGVuZHxmYWxzZXxmb3J8ZnVuY3Rpb258Z290b3xpZnxpbnxsb2NhbHxuaWx8bm90fG9yfHJlcGVhdHxyZXR1cm58dGhlbnx0cnVlfHVudGlsfHdoaWxlKVxiLyxmdW5jdGlvbjovKD8hXGQpXHcrKD89XHMqKD86Wyh7XSkpLyxvcGVyYXRvcjpbL1stKyolXiZ8I118XC9cLz98PFs8PV0/fD5bPj1dP3xbPX5dPT8vLHtwYXR0ZXJuOi8oXnxbXi5dKVwuXC4oPyFcLikvLGxvb2tiZWhpbmQ6ITB9XSxwdW5jdHVhdGlvbjovW1xbXF0oKXt9LDtdfFwuK3w6Ky99fXJldHVybiB5cH12YXIgRXAsbkE7ZnVuY3Rpb24gc1UoKXtpZihuQSlyZXR1cm4gRXA7bkE9MTt2YXIgZT1naygpLG49SHQoKTtFcD1hLGEuZGlzcGxheU5hbWU9ImV0bHVhIixhLmFsaWFzZXM9W107ZnVuY3Rpb24gYShpKXtpLnJlZ2lzdGVyKGUpLGkucmVnaXN0ZXIobiksKGZ1bmN0aW9uKGwpe2wubGFuZ3VhZ2VzLmV0bHVhPXtkZWxpbWl0ZXI6e3BhdHRlcm46L148JVstPV0/fC0/JT4kLyxhbGlhczoicHVuY3R1YXRpb24ifSwibGFuZ3VhZ2UtbHVhIjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOmwubGFuZ3VhZ2VzLmx1YX19LGwuaG9va3MuYWRkKCJiZWZvcmUtdG9rZW5pemUiLGZ1bmN0aW9uKHUpe3ZhciBjPS88JVtcc1xTXSs/JT4vZztsLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS5idWlsZFBsYWNlaG9sZGVycyh1LCJldGx1YSIsYyl9KSxsLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKHUpe2wubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdLnRva2VuaXplUGxhY2Vob2xkZXJzKHUsImV0bHVhIil9KX0pKGkpfXJldHVybiBFcH12YXIgU3AsckE7ZnVuY3Rpb24gdVUoKXtpZihyQSlyZXR1cm4gU3A7ckE9MSxTcD1lLGUuZGlzcGxheU5hbWU9ImV4Y2VsRm9ybXVsYSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXNbImV4Y2VsLWZvcm11bGEiXT17Y29tbWVudDp7cGF0dGVybjovKFxiTlwoXHMqKSIoPzpbXiJdfCIiKSoiKD89XHMqXCkpL2ksbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OlteIl18IiIpKiIoPyEiKS8sZ3JlZWR5OiEwfSxyZWZlcmVuY2U6e3BhdHRlcm46Lyg/OidbXiddKid8KD86W15ccygpW1xde308Pio/Iic7LCQmXSpcW1teXlxzKClbXF17fTw+Kj8iJ10rXF0pP1x3KykhLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntvcGVyYXRvcjovISQvLHB1bmN0dWF0aW9uOi8nLyxzaGVldDp7cGF0dGVybjovW15bXF1dKyQvLGFsaWFzOiJmdW5jdGlvbiJ9LGZpbGU6e3BhdHRlcm46L1xbW15bXF1dK1xdJC8saW5zaWRlOntwdW5jdHVhdGlvbjovW1tcXV0vfX0scGF0aDovW1xzXFNdKy99fSwiZnVuY3Rpb24tbmFtZSI6e3BhdHRlcm46L1xiW0EtWl1cdyooPz1cKCkvaSxhbGlhczoia2V5d29yZCJ9LHJhbmdlOntwYXR0ZXJuOi9cJD9cYig/OltBLVpdK1wkP1xkKzpcJD9bQS1aXStcJD9cZCt8W0EtWl0rOlwkP1tBLVpdK3xcZCs6XCQ/XGQrKVxiL2ksYWxpYXM6InByb3BlcnR5IixpbnNpZGU6e29wZXJhdG9yOi86LyxjZWxsOi9cJD9bQS1aXStcJD9cZCsvaSxjb2x1bW46L1wkP1tBLVpdKy9pLHJvdzovXCQ/XGQrL319LGNlbGw6e3BhdHRlcm46L1xiW0EtWl0rXGQrXGJ8XCRbQS1aYS16XStcJD9cZCtcYnxcYltBLVphLXpdK1wkXGQrXGIvLGFsaWFzOiJwcm9wZXJ0eSJ9LG51bWJlcjovKD86XGJcZCsoPzpcLlxkKyk/fFxCXC5cZCspKD86ZVsrLV0/XGQrKT9cYi9pLGJvb2xlYW46L1xiKD86RkFMU0V8VFJVRSlcYi9pLG9wZXJhdG9yOi9bLSsqL14lPSYsXXw8Wz0+XT98Pj0/LyxwdW5jdHVhdGlvbjovW1tcXSgpO3t9fF0vfSxuLmxhbmd1YWdlcy54bHN4PW4ubGFuZ3VhZ2VzLnhscz1uLmxhbmd1YWdlc1siZXhjZWwtZm9ybXVsYSJdfXJldHVybiBTcH12YXIgdnAsYUE7ZnVuY3Rpb24gY1UoKXtpZihhQSlyZXR1cm4gdnA7YUE9MSx2cD1lLGUuZGlzcGxheU5hbWU9ImZhY3RvciIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPXtmdW5jdGlvbjovXGIoPzpCVUdTP3xGSVgoPzpNRVM/KT98Tk9URVM/fFRPRE9TP3xYWCt8SEFDS1M/fFdBUk4oPzpJTkcpP3xcP3syLH18IXsyLH0pXGIvfSxsPXtudW1iZXI6L1xcW15ccyddfCVcdy99LHU9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxccykoPzohIC4qfCEkKS8sbG9va2JlaGluZDohMCxpbnNpZGU6aX0se3BhdHRlcm46LyhefFxzKVwvXCpcc1tcc1xTXSo/XCpcLyg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6aX0se3BhdHRlcm46LyhefFxzKSFcWyg9ezAsNn0pXFtcc1tcc1xTXSo/XF1cMlxdKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTppfV0sbnVtYmVyOlt7cGF0dGVybjovKF58XHMpWystXT9cZCsoPz1cc3wkKS8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFxzKVsrLV0/MCg/OmJbMDFdK3xvWzAtN10rfGRcZCt8eFtcZEEtRl0rKSg/PVxzfCQpL2ksbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFxzKVsrLV0/XGQrXC9cZCtcLj8oPz1cc3wkKS8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFxzKVwrP1xkK1wrXGQrXC9cZCsoPz1cc3wkKS8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFxzKS1cZCstXGQrXC9cZCsoPz1cc3wkKS8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFxzKVsrLV0/KD86XGQqXC5cZCt8XGQrXC5cZCp8XGQrKSg/OmVbKy1dP1xkKyk/KD89XHN8JCkvaSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58XHMpTkFOOlxzK1tcZGEtZkEtRl0rKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxccylbKy1dPzAoPzpiMVwuWzAxXSp8bzFcLlswLTddKnxkMVwuXGQqfHgxXC5bXGRBLUZdKilwXGQrKD89XHN8JCkvaSxsb29rYmVoaW5kOiEwfV0scmVnZXhwOntwYXR0ZXJuOi8oXnxccylSXC9ccyg/OlxcXFN8W15cXC9dKSpcLyg/OltpZG1zcl0qfFtpZG1zcl0rLVtpZG1zcl0rKSg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIiLGluc2lkZTp7dmFyaWFibGU6L1xcXFMvLGtleXdvcmQ6L1srPypcW1xdXiQoKXt9LnxdLyxvcGVyYXRvcjp7cGF0dGVybjovKFwvKVtpZG1zcl0rKD86LVtpZG1zcl0rKT8vLGxvb2tiZWhpbmQ6ITB9fX0sYm9vbGVhbjp7cGF0dGVybjovKF58XHMpW3RmXSg/PVxzfCQpLyxsb29rYmVoaW5kOiEwfSwiY3VzdG9tLXN0cmluZyI6e3BhdHRlcm46LyhefFxzKVtBLVowLTlcLV0rIlxzKD86XFxcU3xbXiJcXF0pKiIvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7bnVtYmVyOi9cXFxTfCVcd3xcLy99fSwibXVsdGlsaW5lLXN0cmluZyI6W3twYXR0ZXJuOi8oXnxccylTVFJJTkc6XHMrXFMrKD86XG58XHJcbikuKig/OlxufFxyXG4pXHMqOyg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIixpbnNpZGU6e251bWJlcjpsLm51bWJlciwic2VtaWNvbG9uLW9yLXNldGxvY2FsIjp7cGF0dGVybjovKFtcclxuXVsgXHRdKik7KD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn19fSx7cGF0dGVybjovKF58XHMpSEVSRURPQzpccytcUysoPzpcbnxcclxuKS4qKD86XG58XHJcbilccypcUysoPz1cc3wkKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOmx9LHtwYXR0ZXJuOi8oXnxccylcWyg9ezAsNn0pXFtcc1tcc1xTXSo/XF1cMlxdKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTpsfV0sInNwZWNpYWwtdXNpbmciOntwYXR0ZXJuOi8oXnxccylVU0lORzooPzpcc1xTKykqKD89XHMrOyg/OlxzfCQpKS8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24iLGluc2lkZTp7c3RyaW5nOntwYXR0ZXJuOi8oXHMpW146XHNdKy8sbG9va2JlaGluZDohMH19fSwic3RhY2stZWZmZWN0LWRlbGltaXRlciI6W3twYXR0ZXJuOi8oXnxccykoPzpjYWxsfGV2YWx8ZXhlY3V0ZSk/XCgoPz1ccykvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0se3BhdHRlcm46LyhccyktLSg/PVxzKS8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSx7cGF0dGVybjovKFxzKVwpKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn1dLGNvbWJpbmF0b3JzOntwYXR0ZXJuOm51bGwsbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LCJrZXJuZWwtYnVpbHRpbiI6e3BhdHRlcm46bnVsbCxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LCJzZXF1ZW5jZXMtYnVpbHRpbiI6e3BhdHRlcm46bnVsbCxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LCJtYXRoLWJ1aWx0aW4iOntwYXR0ZXJuOm51bGwsbG9va2JlaGluZDohMCxhbGlhczoidmFyaWFibGUifSwiY29uc3RydWN0b3Itd29yZCI6e3BhdHRlcm46LyhefFxzKTwoPyE9Kz58LSs+KVxTKz4oPz1cc3wkKS8sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LCJvdGhlci1idWlsdGluLXN5bnRheCI6e3BhdHRlcm46bnVsbCxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LCJjb252ZW50aW9uYWxseS1uYW1lZC13b3JkIjp7cGF0dGVybjovKF58XHMpKD8hIikoPzooPzpjaGFuZ2V8bmV3fHNldHx3aXRoKS1cUyt8XCRcUyt8PltePlxzXSt8W146PlxzXSs+fFtePlxzXSs+W14+XHNdK3xcK1teK1xzXStcK3xbXj9cc10rXD98XD9bXj9cc10rfFtePlxzXSs+Pnw+PltePlxzXSt8W148XHNdKzw8fFwoW14oKVxzXStcKXxbXiFcc10rIXxbXipcc11cUypcKnxbXi5cc11cUypcLikoPz1cc3wkKS8sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LCJjb2xvbi1zeW50YXgiOntwYXR0ZXJuOi8oXnxccykoPzpbQS1aMC05XC1dKyM/KT86ezEsMn1ccysoPzo7XFMrfCg/ITspXFMrKSg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoiZnVuY3Rpb24ifSwic2VtaWNvbG9uLW9yLXNldGxvY2FsIjp7cGF0dGVybjovKFxzKSg/Ojt8Oj4pKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sImN1cmx5LWJyYWNlLWxpdGVyYWwtZGVsaW1pdGVyIjpbe3BhdHRlcm46LyhefFxzKVthLXpdKlx7KD89XHMpL2ksbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSx7cGF0dGVybjovKFxzKVx9KD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn1dLCJxdW90YXRpb24tZGVsaW1pdGVyIjpbe3BhdHRlcm46LyhefFxzKVxbKD89XHMpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LHtwYXR0ZXJuOi8oXHMpXF0oPz1cc3wkKS8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifV0sIm5vcm1hbC13b3JkIjp7cGF0dGVybjovKF58XHMpW14iXHNdXFMqKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OlxcXFN8W14iXFxdKSoiLyxncmVlZHk6ITAsaW5zaWRlOmx9fSxjPWZ1bmN0aW9uKGIpe3JldHVybihiKyIiKS5yZXBsYWNlKC8oWy4/KitcXiRcW1xdXFwoKXt9fFwtXSkvZywiXFwkMSIpfSxkPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgUmVnRXhwKCIoXnxcXHMpKD86IitiLm1hcChjKS5qb2luKCJ8IikrIikoPz1cXHN8JCkiKX0sZj17Imtlcm5lbC1idWlsdGluIjpbIm9yIiwiMm5pcGQiLCI0ZHJvcCIsInR1Y2siLCJ3cmFwcGVyIiwibmlwIiwid3JhcHBlcj8iLCJjYWxsc3RhY2s+YXJyYXkiLCJkaWUiLCJkdXBkIiwiY2FsbHN0YWNrIiwiY2FsbHN0YWNrPyIsIjNkdXAiLCJoYXNoY29kZSIsInBpY2siLCI0bmlwIiwiYnVpbGQiLCI+Ym9vbGVhbiIsIm5pcGQiLCJjbG9uZSIsIjVuaXAiLCJlcT8iLCI/IiwiPSIsInN3YXBkIiwiMm92ZXIiLCJjbGVhciIsIjJkdXAiLCJnZXQtcmV0YWluc3RhY2siLCJub3QiLCJ0dXBsZT8iLCJkdXAiLCIzbmlwZCIsImNhbGwiLCItcm90ZCIsIm9iamVjdCIsImRyb3AiLCJhc3NlcnQ9IiwiYXNzZXJ0PyIsIi1yb3QiLCJleGVjdXRlIiwiYm9hIiwiZ2V0LWNhbGxzdGFjayIsImN1cnJpZWQ/IiwiM2Ryb3AiLCJwaWNrZCIsIm92ZXJkIiwib3ZlciIsInJvbGwiLCIzbmlwIiwic3dhcCIsImFuZCIsIjJuaXAiLCJyb3RkIiwidGhyb3ciLCIoY2xvbmUpIiwiaGFzaGNvZGUqIiwic3BpbiIsInJlYWNoIiwiNGR1cCIsImVxdWFsPyIsImdldC1kYXRhc3RhY2siLCJhc3NlcnQiLCIyZHJvcCIsIjx3cmFwcGVyPiIsImJvb2xlYW4/IiwiaWRlbnRpdHktaGFzaGNvZGUiLCJpZGVudGl0eS10dXBsZT8iLCJudWxsIiwiY29tcG9zZWQ/IiwibmV3IiwiNWRyb3AiLCJyb3QiLCItcm9sbCIsInhvciIsImlkZW50aXR5LXR1cGxlIiwiYm9vbGVhbiJdLCJvdGhlci1idWlsdGluLXN5bnRheCI6WyI9PT09PT09IiwicmVjdXJzaXZlIiwiZmx1c2hhYmxlIiwiPj4iLCI8PDw8PDwiLCJNXFwiLCJCIiwiUFJJVkFURT4iLCJcXCIsIj09PT09PSIsImZpbmFsIiwiaW5saW5lIiwiZGVsaW1pdGVyIiwiZGVwcmVjYXRlZCIsIjxQUklWQVRFIiwiPj4+Pj4+IiwiPDw8PDw8PCIsInBhcnNlLWNvbXBsZXgiLCJtYWxmb3JtZWQtY29tcGxleCIsInJlYWQtb25seSIsIj4+Pj4+Pj4iLCJjYWxsLW5leHQtbWV0aG9kIiwiPDwiLCJmb2xkYWJsZSIsIiQiLCIkWyIsIiR7Il0sInNlcXVlbmNlcy1idWlsdGluIjpbIm1lbWJlci1lcT8iLCJtaXNtYXRjaCIsImFwcGVuZCIsImFzc2VydC1zZXF1ZW5jZT0iLCJsb25nZXIiLCJyZXBldGl0aW9uIiwiY2xvbmUtbGlrZSIsIjNzZXF1ZW5jZSIsImFzc2VydC1zZXF1ZW5jZT8iLCJsYXN0LWluZGV4LWZyb20iLCJyZXZlcnNlZCIsImluZGV4LWZyb20iLCJjdXQqIiwicGFkLXRhaWwiLCJqb2luLWFzIiwicmVtb3ZlLWVxISIsImNvbmNhdC1hcyIsImJ1dC1sYXN0Iiwic25pcCIsIm50aHMiLCJudGgiLCJzZXF1ZW5jZSIsImxvbmdlc3QiLCJzbGljZT8iLCI8c2xpY2U+IiwicmVtb3ZlLW50aCIsInRhaWwtc2xpY2UiLCJlbXB0eT8iLCJ0YWlsKiIsIm1lbWJlcj8iLCJ2aXJ0dWFsLXNlcXVlbmNlPyIsInNldC1sZW5ndGgiLCJkcm9wLXByZWZpeCIsImlvdGEiLCJ1bmNsaXAiLCJib3VuZHMtZXJyb3I/IiwidW5jbGlwLWxhc3Qtc2xpY2UiLCJub24tbmVnYXRpdmUtaW50ZWdlci1leHBlY3RlZCIsIm5vbi1uZWdhdGl2ZS1pbnRlZ2VyLWV4cGVjdGVkPyIsIm1pZHBvaW50QCIsImxvbmdlcj8iLCI/c2V0LW50aCIsIj9maXJzdCIsInJlc3Qtc2xpY2UiLCJwcmVwZW5kLWFzIiwicHJlcGVuZCIsImZvdXJ0aCIsInNpZnQiLCJzdWJzZXEtc3RhcnQiLCJuZXctc2VxdWVuY2UiLCI/bGFzdCIsImxpa2UiLCJmaXJzdDQiLCIxc2VxdWVuY2UiLCJyZXZlcnNlIiwic2xpY2UiLCJ2aXJ0dWFsQCIsInJlcGV0aXRpb24/Iiwic2V0LWxhc3QiLCJpbmRleCIsIjRzZXF1ZW5jZSIsIm1heC1sZW5ndGgiLCJzZXQtc2Vjb25kIiwiaW1tdXRhYmxlLXNlcXVlbmNlIiwiZmlyc3QyIiwiZmlyc3QzIiwic3VwcmVtdW0iLCJ1bmNsaXAtc2xpY2UiLCJzdWZmaXghIiwiaW5zZXJ0LW50aCIsInRhaWwiLCIzYXBwZW5kIiwic2hvcnQiLCJzdWZmaXgiLCJjb25jYXQiLCJmbGlwIiwiaW1tdXRhYmxlPyIsInJldmVyc2UhIiwiMnNlcXVlbmNlIiwic3VtIiwiZGVsZXRlLWFsbCIsImluZGljZXMiLCJzbmlwLXNsaWNlIiwiPGlvdGE+IiwiY2hlY2stc2xpY2UiLCJzZXF1ZW5jZT8iLCJoZWFkIiwiYXBwZW5kLWFzIiwiaGFsdmVzIiwic2VxdWVuY2U9IiwiY29sbGFwc2Utc2xpY2UiLCI/c2Vjb25kIiwic2xpY2UtZXJyb3I/IiwicHJvZHVjdCIsImJvdW5kcy1jaGVjaz8iLCJib3VuZHMtY2hlY2siLCJpbW11dGFibGUiLCJ2aXJ0dWFsLWV4ZW1wbGFyIiwiaGFydmVzdCIsInJlbW92ZSIsInBhZC1oZWFkIiwibGFzdCIsInNldC1mb3VydGgiLCJjYXJ0ZXNpYW4tcHJvZHVjdCIsInJlbW92ZS1lcSIsInNob3J0ZW4iLCJzaG9ydGVyIiwicmV2ZXJzZWQ/Iiwic2hvcnRlcj8iLCJzaG9ydGVzdCIsImhlYWQtc2xpY2UiLCJwb3AqIiwidGFpbC1zbGljZSoiLCJidXQtbGFzdC1zbGljZSIsImlvdGE/IiwiYXBwZW5kISIsImN1dC1zbGljZSIsIm5ldy1yZXNpemFibGUiLCJoZWFkLXNsaWNlKiIsInNlcXVlbmNlLWhhc2hjb2RlIiwicG9wIiwic2V0LW50aCIsIj9udGgiLCJzZWNvbmQiLCJqb2luIiwiaW1tdXRhYmxlLXNlcXVlbmNlPyIsIjxyZXZlcnNlZD4iLCIzYXBwZW5kLWFzIiwidmlydHVhbC1zZXF1ZW5jZSIsInN1YnNlcT8iLCJyZW1vdmUtbnRoISIsImxlbmd0aCIsImxhc3QtaW5kZXgiLCJsZW5ndGhlbiIsImFzc2VydC1zZXF1ZW5jZSIsImNvcHkiLCJtb3ZlIiwidGhpcmQiLCJmaXJzdCIsInRhaWw/Iiwic2V0LWZpcnN0IiwicHJlZml4IiwiYm91bmRzLWVycm9yIiwiPHJlcGV0aXRpb24+IiwiZXhjaGFuZ2UiLCJzdXJyb3VuZCIsImN1dCIsIm1pbi1sZW5ndGgiLCJzZXQtdGhpcmQiLCJwdXNoLWFsbCIsImhlYWQ/Iiwic3Vic2VxLXN0YXJ0LWZyb20iLCJkZWxldGUtc2xpY2UiLCJyZXN0Iiwic3VtLWxlbmd0aHMiLCJoZWFkKiIsImluZmltdW0iLCJyZW1vdmUhIiwiZ2x1ZSIsInNsaWNlLWVycm9yIiwic3Vic2VxIiwicHVzaCIsInJlcGxhY2Utc2xpY2UiLCJzdWJzZXEtYXMiLCJ1bmNsaXAtbGFzdCJdLCJtYXRoLWJ1aWx0aW4iOlsibnVtYmVyPSIsIm5leHQtcG93ZXItb2YtMiIsIj8xKyIsImZwLXNwZWNpYWw/IiwiaW1hZ2luYXJ5LXBhcnQiLCJmbG9hdD5iaXRzIiwibnVtYmVyPyIsImZwLWluZmluaXR5PyIsImJpZ251bT8iLCJmcC1zbmFuPyIsImRlbm9taW5hdG9yIiwiZ2NkIiwiKiIsIisiLCJmcC1iaXR3aXNlPSIsIi0iLCJ1Pj0iLCIvIiwiPj0iLCJiaXRhbmQiLCJwb3dlci1vZi0yPyIsImxvZzItZXhwZWN0cy1wb3NpdGl2ZSIsIm5lZz8iLCI8IiwibG9nMiIsIj4iLCJpbnRlZ2VyPyIsIm51bWJlciIsImJpdHM+ZG91YmxlIiwiMi8iLCJ6ZXJvPyIsImJpdHM+ZmxvYXQiLCJmbG9hdD8iLCJzaGlmdCIsInJhdGlvPyIsInJlY3Q+IiwiZXZlbj8iLCJyYXRpbyIsImZwLXNpZ24iLCJiaXRub3QiLCI+Zml4bnVtIiwiY29tcGxleD8iLCIvaSIsImludGVnZXI+Zml4bnVtIiwiL2YiLCJzZ24iLCI+YmlnbnVtIiwibmV4dC1mbG9hdCIsInU8IiwidT4iLCJtb2QiLCJyZWNpcCIsInJhdGlvbmFsIiwiPmZsb2F0IiwiMl4iLCJpbnRlZ2VyIiwiZml4bnVtPyIsIm5lZyIsImZpeG51bSIsInNxIiwiYmlnbnVtIiwiPnJlY3QiLCJiaXQ/IiwiZnAtcW5hbj8iLCJzaW1wbGUtZ2NkIiwiY29tcGxleCIsIjxmcC1uYW4+IiwicmVhbCIsIj5mcmFjdGlvbiIsImRvdWJsZT5iaXRzIiwiYml0b3IiLCJyZW0iLCJmcC1uYW4tcGF5bG9hZCIsInJlYWwtcGFydCIsImxvZzItZXhwZWN0cy1wb3NpdGl2ZT8iLCJwcmV2LWZsb2F0IiwiYWxpZ24iLCJ1bm9yZGVyZWQ/IiwiZmxvYXQiLCJmcC1uYW4/IiwiYWJzIiwiYml0eG9yIiwiaW50ZWdlcj5maXhudW0tc3RyaWN0IiwidTw9Iiwib2RkPyIsIjw9IiwiL21vZCIsIj5pbnRlZ2VyIiwicmVhbD8iLCJyYXRpb25hbD8iLCJudW1lcmF0b3IiXX07T2JqZWN0LmtleXMoZikuZm9yRWFjaChmdW5jdGlvbihiKXt1W2JdLnBhdHRlcm49ZChmW2JdKX0pO3ZhciBtPVsiMmJpIiwid2hpbGUiLCIydHJpIiwiYmkqIiwiNGRpcCIsImJvdGg/Iiwic2FtZT8iLCJ0cmlAIiwiY3VycnkiLCJwcmVwb3NlIiwiM2JpIiwiP2lmIiwidHJpKiIsIjJrZWVwIiwiM2tlZXAiLCJjdXJyaWVkIiwiMmtlZXBkIiwid2hlbiIsIjJiaSoiLCIydHJpKiIsIjRrZWVwIiwiYmlAIiwia2VlcGRkIiwiZG8iLCJ1bmxlc3MqIiwidHJpLWN1cnJ5IiwiaWYqIiwibG9vcCIsImJpLWN1cnJ5KiIsIndoZW4qIiwiMmJpQCIsIjJ0cmlAIiwid2l0aCIsIjJ3aXRoIiwiZWl0aGVyPyIsImJpIiwidW50aWwiLCIzZGlwIiwiM2N1cnJ5IiwidHJpLWN1cnJ5KiIsInRyaS1jdXJyeUAiLCJiaS1jdXJyeSIsImtlZXBkIiwiY29tcG9zZSIsIjJkaXAiLCJpZiIsIjN0cmkiLCJ1bmxlc3MiLCJ0dXBsZSIsImtlZXAiLCIyY3VycnkiLCJ0cmkiLCJtb3N0Iiwid2hpbGUqIiwiZGlwIiwiY29tcG9zZWQiLCJiaS1jdXJyeUAiLCJmaW5kLWxhc3QtZnJvbSIsInRyaW0taGVhZC1zbGljZSIsIm1hcC1hcyIsImVhY2gtZnJvbSIsIm5vbmU/IiwidHJpbS10YWlsIiwicGFydGl0aW9uIiwiaWYtZW1wdHkiLCJhY2N1bXVsYXRlKiIsInJlamVjdCEiLCJmaW5kLWZyb20iLCJhY2N1bXVsYXRlLWFzIiwiY29sbGVjdG9yLWZvci1hcyIsInJlamVjdCIsIm1hcCIsIm1hcC1zdW0iLCJhY2N1bXVsYXRlISIsIjJlYWNoLWZyb20iLCJmb2xsb3ciLCJzdXByZW11bS1ieSIsIm1hcCEiLCJ1bmxlc3MtZW1wdHkiLCJjb2xsZWN0b3IiLCJwYWRkaW5nIiwicmVkdWNlLWluZGV4IiwicmVwbGljYXRlLWFzIiwiaW5maW11bS1ieSIsInRyaW0tdGFpbC1zbGljZSIsImNvdW50IiwiZmluZC1pbmRleCIsImZpbHRlciIsImFjY3VtdWxhdGUqISIsInJlamVjdC1hcyIsIm1hcC1pbnRlZ2VycyIsIm1hcC1maW5kIiwicmVkdWNlIiwic2VsZWN0b3IiLCJpbnRlcmxlYXZlIiwiMm1hcCIsImZpbHRlci1hcyIsImJpbmFyeS1yZWR1Y2UiLCJtYXAtaW5kZXgtYXMiLCJmaW5kIiwicHJvZHVjZSIsImZpbHRlciEiLCJyZXBsaWNhdGUiLCJjYXJ0ZXNpYW4tbWFwIiwiY2FydGVzaWFuLWVhY2giLCJmaW5kLWluZGV4LWZyb20iLCJtYXAtZmluZC1sYXN0IiwiM21hcC1hcyIsIjNtYXAiLCJmaW5kLWxhc3QiLCJzZWxlY3Rvci1hcyIsIjJtYXAtYXMiLCIybWFwLXJlZHVjZSIsImFjY3VtdWxhdGUiLCJlYWNoIiwiZWFjaC1pbmRleCIsImFjY3VtdWxhdGUqLWFzIiwid2hlbi1lbXB0eSIsImFsbD8iLCJjb2xsZWN0b3ItYXMiLCJwdXNoLWVpdGhlciIsIm5ldy1saWtlIiwiY29sbGVjdG9yLWZvciIsIjJzZWxlY3RvciIsInB1c2gtaWYiLCIyYWxsPyIsIm1hcC1yZWR1Y2UiLCIzZWFjaCIsImFueT8iLCJ0cmltLXNsaWNlIiwiMnJlZHVjZSIsImNoYW5nZS1udGgiLCJwcm9kdWNlLWFzIiwiMmVhY2giLCJ0cmltIiwidHJpbS1oZWFkIiwiY2FydGVzaWFuLWZpbmQiLCJtYXAtaW5kZXgiLCJpZi16ZXJvIiwiZWFjaC1pbnRlZ2VyIiwidW5sZXNzLXplcm8iLCIoZmluZC1pbnRlZ2VyKSIsIndoZW4temVybyIsImZpbmQtbGFzdC1pbnRlZ2VyIiwiKGFsbC1pbnRlZ2Vycz8pIiwidGltZXMiLCIoZWFjaC1pbnRlZ2VyKSIsImZpbmQtaW50ZWdlciIsImFsbC1pbnRlZ2Vycz8iLCJ1bmxlc3MtbmVnYXRpdmUiLCJpZi1wb3NpdGl2ZSIsIndoZW4tcG9zaXRpdmUiLCJ3aGVuLW5lZ2F0aXZlIiwidW5sZXNzLXBvc2l0aXZlIiwiaWYtbmVnYXRpdmUiLCJjYXNlIiwiMmNsZWF2ZSIsImNvbmQ+cXVvdCIsImNhc2U+cXVvdCIsIjNjbGVhdmUiLCJ3cm9uZy12YWx1ZXMiLCJ0by1maXhlZC1wb2ludCIsImFsaXN0PnF1b3QiLCJjb25kIiwiY2xlYXZlIiwiY2FsbC1lZmZlY3QiLCJyZWN1cnNpdmUtaGFzaGNvZGUiLCJzcHJlYWQiLCJkZWVwLXNwcmVhZD5xdW90IiwiMnx8IiwiMHx8Iiwibnx8IiwiMCYmIiwiMiYmIiwiM3x8IiwiMXx8IiwiMSYmIiwibiYmIiwiMyYmIiwic21hcnQtdW5sZXNzKiIsImtlZXAtaW5wdXRzIiwicmVkdWNlLW91dHB1dHMiLCJzbWFydC13aGVuKiIsImNsZWF2ZT5hcnJheSIsInNtYXJ0LXdpdGgiLCJzbWFydC1hcHBseSIsInNtYXJ0LWlmIiwiaW5wdXRzL291dHB1dHMiLCJvdXRwdXQ+c2VxdWVuY2UtbiIsIm1hcC1vdXRwdXRzIiwibWFwLXJlZHVjZS1vdXRwdXRzIiwiZHJvcHBpbmciLCJvdXRwdXQ+YXJyYXkiLCJzbWFydC1tYXAtcmVkdWNlIiwic21hcnQtMm1hcC1yZWR1Y2UiLCJvdXRwdXQ+YXJyYXktbiIsIm51bGxhcnkiLCJpbnB1dDxzZXF1ZW5jZSIsImFwcGVuZC1vdXRwdXRzIiwiZHJvcC1pbnB1dHMiLCJpbnB1dHMiLCJzbWFydC0ycmVkdWNlIiwiZHJvcC1vdXRwdXRzIiwic21hcnQtcmVkdWNlIiwicHJlc2VydmluZyIsInNtYXJ0LXdoZW4iLCJvdXRwdXRzIiwiYXBwZW5kLW91dHB1dHMtYXMiLCJzbWFydC11bmxlc3MiLCJzbWFydC1pZioiLCJzdW0tb3V0cHV0cyIsImlucHV0PHNlcXVlbmNlLXVuc2FmZSIsIm91dHB1dD5zZXF1ZW5jZSJdO3UuY29tYmluYXRvcnMucGF0dGVybj1kKG0pLGEubGFuZ3VhZ2VzLmZhY3Rvcj11fSkobil9cmV0dXJuIHZwfXZhciBUcCxpQTtmdW5jdGlvbiBkVSgpe2lmKGlBKXJldHVybiBUcDtpQT0xLFRwPWUsZS5kaXNwbGF5TmFtZT0iJGZhbHNlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7YS5sYW5ndWFnZXMuZmFsc2U9e2NvbW1lbnQ6e3BhdHRlcm46L1x7W159XSpcfS99LHN0cmluZzp7cGF0dGVybjovIlteIl0qIi8sZ3JlZWR5OiEwfSwiY2hhcmFjdGVyLWNvZGUiOntwYXR0ZXJuOi8nKD86W15ccl18XHJcbj8pLyxhbGlhczoibnVtYmVyIn0sImFzc2VtYmxlci1jb2RlIjp7cGF0dGVybjovXGQrYC8sYWxpYXM6ImltcG9ydGFudCJ9LG51bWJlcjovXGQrLyxvcGVyYXRvcjovWy0hIyQlJicqKywuLzo7PT4/QFxcXl9gfH7Dn8O4XS8scHVuY3R1YXRpb246L1xbfFxdLyx2YXJpYWJsZTovW2Etel0vLCJub24tc3RhbmRhcmQiOntwYXR0ZXJuOi9bKCk8QkRPwq5dLyxhbGlhczoiYm9sZCJ9fX0pKG4pfXJldHVybiBUcH12YXIgeHAsb0E7ZnVuY3Rpb24gcFUoKXtpZihvQSlyZXR1cm4geHA7b0E9MSx4cD1lLGUuZGlzcGxheU5hbWU9ImZpcmVzdG9yZVNlY3VyaXR5UnVsZXMiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzWyJmaXJlc3RvcmUtc2VjdXJpdHktcnVsZXMiXT1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7Y29tbWVudDovXC9cLy4qLyxrZXl3b3JkOi9cYig/OmFsbG93fGZ1bmN0aW9ufGlmfG1hdGNofG51bGx8cmV0dXJufHJ1bGVzX3ZlcnNpb258c2VydmljZSlcYi8sb3BlcmF0b3I6LyYmfFx8XHx8Wzw+IT1dPT98Wy0rKi8lXXxcYig/OmlufGlzKVxiL30pLGRlbGV0ZSBuLmxhbmd1YWdlc1siZmlyZXN0b3JlLXNlY3VyaXR5LXJ1bGVzIl1bImNsYXNzLW5hbWUiXSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlcyIsImtleXdvcmQiLHtwYXRoOntwYXR0ZXJuOi8oXnxbXHMoKSxdKSg/OlwvKD86W1x3XHhBMC1cdUZGRkZdK3xce1tcd1x4QTAtXHVGRkZGXSsoPzo9XCpcKik/XH18XCRcKFtcd1x4QTAtXHVGRkZGLl0rXCkpKSsvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7dmFyaWFibGU6e3BhdHRlcm46L1x7W1x3XHhBMC1cdUZGRkZdKyg/Oj1cKlwqKT9cfXxcJFwoW1x3XHhBMC1cdUZGRkYuXStcKS8saW5zaWRlOntvcGVyYXRvcjovPS8sa2V5d29yZDovXCpcKi8scHVuY3R1YXRpb246L1suJCgpe31dL319LHB1bmN0dWF0aW9uOi9cLy99fSxtZXRob2Q6e3BhdHRlcm46LyhcYmFsbG93XHMrKVthLXpdKyg/OlxzKixccypbYS16XSspKig/PVxzKls6O10pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJidWlsdGluIixpbnNpZGU6e3B1bmN0dWF0aW9uOi8sL319fSl9cmV0dXJuIHhwfXZhciBBcCxsQTtmdW5jdGlvbiBmVSgpe2lmKGxBKXJldHVybiBBcDtsQT0xLEFwPWUsZS5kaXNwbGF5TmFtZT0iZmxvdyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2EubGFuZ3VhZ2VzLmZsb3c9YS5sYW5ndWFnZXMuZXh0ZW5kKCJqYXZhc2NyaXB0Iix7fSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJmbG93Iiwia2V5d29yZCIse3R5cGU6W3twYXR0ZXJuOi9cYig/OltCYl1vb2xlYW58RnVuY3Rpb258W05uXXVtYmVyfFtTc110cmluZ3xhbnl8bWl4ZWR8bnVsbHx2b2lkKVxiLyxhbGlhczoidGFnIn1dfSksYS5sYW5ndWFnZXMuZmxvd1siZnVuY3Rpb24tdmFyaWFibGUiXS5wYXR0ZXJuPS8oPyFccylbXyRhLXpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSooPz1ccyo9XHMqKD86ZnVuY3Rpb25cYnwoPzpcKFteKCldKlwpKD86XHMqOlxzKlx3Kyk/fCg/IVxzKVtfJGEtelx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKilccyo9PikpL2ksZGVsZXRlIGEubGFuZ3VhZ2VzLmZsb3cucGFyYW1ldGVyLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZmxvdyIsIm9wZXJhdG9yIix7ImZsb3ctcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9ce1x8fFx8XH0vLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fSksQXJyYXkuaXNBcnJheShhLmxhbmd1YWdlcy5mbG93LmtleXdvcmQpfHwoYS5sYW5ndWFnZXMuZmxvdy5rZXl3b3JkPVthLmxhbmd1YWdlcy5mbG93LmtleXdvcmRdKSxhLmxhbmd1YWdlcy5mbG93LmtleXdvcmQudW5zaGlmdCh7cGF0dGVybjovKF58W14kXVxiKSg/OkNsYXNzfGRlY2xhcmV8b3BhcXVlfHR5cGUpXGIoPyFcJCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxbXiRdXEIpXCQoPzpEaWZmfEVudW18RXhhY3R8S2V5c3xPYmpNYXB8UHJvcGVydHlUeXBlfFJlY29yZHxTaGFwZXxTdWJ0eXBlfFN1cGVydHlwZXxhd2FpdClcYig/IVwkKS8sbG9va2JlaGluZDohMH0pfSkobil9cmV0dXJuIEFwfXZhciBfcCxzQTtmdW5jdGlvbiBnVSgpe2lmKHNBKXJldHVybiBfcDtzQT0xLF9wPWUsZS5kaXNwbGF5TmFtZT0iZm9ydHJhbiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZm9ydHJhbj17InF1b3RlZC1udW1iZXIiOntwYXR0ZXJuOi9bQk9aXShbJyJdKVtBLUYwLTldK1wxL2ksYWxpYXM6Im51bWJlciJ9LHN0cmluZzp7cGF0dGVybjovKD86XGJcdytfKT8oWyciXSkoPzpcMVwxfCYoPzpcclxuP3xcbikoPzpbIFx0XSohLiooPzpcclxuP3xcbil8KD8hWyBcdF0qISkpfCg/IVwxKS4pKig/OlwxfCYpLyxpbnNpZGU6e2NvbW1lbnQ6e3BhdHRlcm46LygmKD86XHJcbj98XG4pXHMqKSEuKi8sbG9va2JlaGluZDohMH19fSxjb21tZW50OntwYXR0ZXJuOi8hLiovLGdyZWVkeTohMH0sYm9vbGVhbjovXC4oPzpGQUxTRXxUUlVFKVwuKD86X1x3Kyk/L2ksbnVtYmVyOi8oPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpbRURdWystXT9cZCspPyg/Ol9cdyspPy9pLGtleXdvcmQ6Wy9cYig/OkNIQVJBQ1RFUnxDT01QTEVYfERPVUJMRSA/UFJFQ0lTSU9OfElOVEVHRVJ8TE9HSUNBTHxSRUFMKVxiL2ksL1xiKD86RU5EID8pPyg/OkJMT0NLID9EQVRBfERPfEZJTEV8Rk9SQUxMfEZVTkNUSU9OfElGfElOVEVSRkFDRXxNT0RVTEUoPyEgUFJPQ0VEVVJFKXxQUk9HUkFNfFNFTEVDVHxTVUJST1VUSU5FfFRZUEV8V0hFUkUpXGIvaSwvXGIoPzpBTExPQ0FUQUJMRXxBTExPQ0FURXxCQUNLU1BBQ0V8Q0FMTHxDQVNFfENMT1NFfENPTU1PTnxDT05UQUlOU3xDT05USU5VRXxDWUNMRXxEQVRBfERFQUxMT0NBVEV8RElNRU5TSU9OfERPfEVORHxFUVVJVkFMRU5DRXxFWElUfEVYVEVSTkFMfEZPUk1BVHxHTyA/VE98SU1QTElDSVQoPzogTk9ORSk/fElOUVVJUkV8SU5URU5UfElOVFJJTlNJQ3xNT0RVTEUgUFJPQ0VEVVJFfE5BTUVMSVNUfE5VTExJRll8T1BFTnxPUFRJT05BTHxQQVJBTUVURVJ8UE9JTlRFUnxQUklOVHxQUklWQVRFfFBVQkxJQ3xSRUFEfFJFVFVSTnxSRVdJTkR8U0FWRXxTRUxFQ1R8U1RPUHxUQVJHRVR8V0hJTEV8V1JJVEUpXGIvaSwvXGIoPzpBU1NJR05NRU5UfERFRkFVTFR8RUxFTUVOVEFMfEVMU0V8RUxTRUlGfEVMU0VXSEVSRXxFTlRSWXxJTnxJTkNMVURFfElOT1VUfEtJTkR8TlVMTHxPTkxZfE9QRVJBVE9SfE9VVHxQVVJFfFJFQ1VSU0lWRXxSRVNVTFR8U0VRVUVOQ0V8U1RBVHxUSEVOfFVTRSlcYi9pXSxvcGVyYXRvcjpbL1wqXCp8XC9cL3w9PnxbPVwvXT18Wzw+XT0/fDo6fFsrXC0qPSVdfFwuW0EtWl0rXC4vaSx7cGF0dGVybjovKF58KD8hXCgpLilcLyg/IVwpKS8sbG9va2JlaGluZDohMH1dLHB1bmN0dWF0aW9uOi9cKFwvfFwvXCl8WygpLDs6Jl0vfX1yZXR1cm4gX3B9dmFyIFJwLHVBO2Z1bmN0aW9uIG1VKCl7aWYodUEpcmV0dXJuIFJwO3VBPTEsUnA9ZSxlLmRpc3BsYXlOYW1lPSJmc2hhcnAiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmZzaGFycD1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7Y29tbWVudDpbe3BhdHRlcm46LyhefFteXFxdKVwoXCooPyFcKSlbXHNcU10qP1wqXCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXDpdKVwvXC8uKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxzdHJpbmc6e3BhdHRlcm46Lyg/OiIiIltcc1xTXSo/IiIifEAiKD86IiJ8W14iXSkqInwiKD86XFxbXHNcU118W15cXCJdKSoiKUI/LyxncmVlZHk6ITB9LCJjbGFzcy1uYW1lIjp7cGF0dGVybjovKFxiKD86ZXhjZXB0aW9ufGluaGVyaXR8aW50ZXJmYWNlfG5ld3xvZnx0eXBlKVxzK3xcd1xzKjpccyp8XHM6XD8/PlxzKilbLlx3XStcYig/OlxzKig/Oi0+fFwqKVxzKlsuXHddK1xiKSooPyFccypbOi5dKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e29wZXJhdG9yOi8tPnxcKi8scHVuY3R1YXRpb246L1wuL319LGtleXdvcmQ6L1xiKD86bGV0fHJldHVybnx1c2V8eWllbGQpKD86IVxCfFxiKXxcYig/OmFic3RyYWN0fGFuZHxhc3xhc3J8YXNzZXJ0fGF0b21pY3xiYXNlfGJlZ2lufGJyZWFrfGNoZWNrZWR8Y2xhc3N8Y29tcG9uZW50fGNvbnN0fGNvbnN0cmFpbnR8Y29uc3RydWN0b3J8Y29udGludWV8ZGVmYXVsdHxkZWxlZ2F0ZXxkb3xkb25lfGRvd25jYXN0fGRvd250b3xlYWdlcnxlbGlmfGVsc2V8ZW5kfGV2ZW50fGV4Y2VwdGlvbnxleHRlcm58ZXh0ZXJuYWx8ZmFsc2V8ZmluYWxseXxmaXhlZHxmb3J8ZnVufGZ1bmN0aW9ufGZ1bmN0b3J8Z2xvYmFsfGlmfGlufGluY2x1ZGV8aW5oZXJpdHxpbmxpbmV8aW50ZXJmYWNlfGludGVybmFsfGxhbmR8bGF6eXxsb3J8bHNsfGxzcnxseG9yfG1hdGNofG1lbWJlcnxtZXRob2R8bWl4aW58bW9kfG1vZHVsZXxtdXRhYmxlfG5hbWVzcGFjZXxuZXd8bm90fG51bGx8b2JqZWN0fG9mfG9wZW58b3J8b3ZlcnJpZGV8cGFyYWxsZWx8cHJpdmF0ZXxwcm9jZXNzfHByb3RlY3RlZHxwdWJsaWN8cHVyZXxyZWN8c2VhbGVkfHNlbGVjdHxzaWd8c3RhdGljfHN0cnVjdHx0YWlsY2FsbHx0aGVufHRvfHRyYWl0fHRydWV8dHJ5fHR5cGV8dXBjYXN0fHZhbHx2aXJ0dWFsfHZvaWR8dm9sYXRpbGV8d2hlbnx3aGlsZXx3aXRoKVxiLyxudW1iZXI6Wy9cYjB4W1xkYS1mQS1GXSsoPzpMRnxsZnx1bik/XGIvLC9cYjBiWzAxXSsoPzp1eXx5KT9cYi8sLyg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OltmbV18ZVsrLV0/XGQrKT9cYi9pLC9cYlxkKyg/OltJbExzeV18VUx8dVtsc3ldPyk/XGIvXSxvcGVyYXRvcjovKFs8Pn4mXl0pXDFcMXwoWyouOjw+Jl0pXDJ8PC18LT58WyE9Ol09fDw/XHx7MSwzfT4/fFw/Pyg/Ojw9fD49fDw+fFstKyovJT08Pl0pXD8/fFshP14mXXx+Wyt+LV18Oj58Olw/Pj8vfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJmc2hhcnAiLCJrZXl3b3JkIix7cHJlcHJvY2Vzc29yOntwYXR0ZXJuOi8oXltcdCBdKikjLiovbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSIsaW5zaWRlOntkaXJlY3RpdmU6e3BhdHRlcm46LyheIylcYig/OmVsc2V8ZW5kaWZ8aWZ8bGlnaHR8bGluZXxub3dhcm4pXGIvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifX19fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJmc2hhcnAiLCJwdW5jdHVhdGlvbiIseyJjb21wdXRhdGlvbi1leHByZXNzaW9uIjp7cGF0dGVybjovXGJbX2Etel1cdyooPz1ccypceykvaSxhbGlhczoia2V5d29yZCJ9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJmc2hhcnAiLCJzdHJpbmciLHthbm5vdGF0aW9uOntwYXR0ZXJuOi9cWzwuKz8+XF0vLGdyZWVkeTohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXFs8fD5cXSQvLCJjbGFzcy1uYW1lIjp7cGF0dGVybjovXlx3KyR8KF58O1xzKilbQS1aXVx3Kig/PVwoKS8sbG9va2JlaGluZDohMH0sImFubm90YXRpb24tY29udGVudCI6e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTpuLmxhbmd1YWdlcy5mc2hhcnB9fX0sY2hhcjp7cGF0dGVybjovJyg/OlteXFwnXXxcXCg/Oi58XGR7M318eFthLWZBLUZcZF17Mn18dVthLWZBLUZcZF17NH18VVthLWZBLUZcZF17OH0pKSdCPy8sZ3JlZWR5OiEwfX0pfXJldHVybiBScH12YXIgTnAsY0E7ZnVuY3Rpb24gaFUoKXtpZihjQSlyZXR1cm4gTnA7Y0E9MTt2YXIgZT1IdCgpO05wPW4sbi5kaXNwbGF5TmFtZT0iZnRsIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLChmdW5jdGlvbihpKXtmb3IodmFyIGw9L1tePCgpIiddfFwoKD86PGV4cHI+KSpcKXw8KD8hIy0tKXw8Iy0tKD86W14tXXwtKD8hLT4pKSotLT58Iig/OlteXFwiXXxcXC4pKiJ8Jyg/OlteXFwnXXxcXC4pKicvLnNvdXJjZSx1PTA7dTwyO3UrKylsPWwucmVwbGFjZSgvPGV4cHI+L2csZnVuY3Rpb24oKXtyZXR1cm4gbH0pO2w9bC5yZXBsYWNlKC88ZXhwcj4vZywvW15cc1xTXS8uc291cmNlKTt2YXIgYz17Y29tbWVudDovPCMtLVtcc1xTXSo/LS0+LyxzdHJpbmc6W3twYXR0ZXJuOi9cYnIoInwnKSg/Oig/IVwxKVteXFxdfFxcLikqXDEvLGdyZWVkeTohMH0se3BhdHRlcm46UmVnRXhwKC8oInwnKSg/Oig/IVwxfFwkXHspW15cXF18XFwufFwkXHsoPzooPyFcfSkoPzo8ZXhwcj4pKSpcfSkqXDEvLnNvdXJjZS5yZXBsYWNlKC88ZXhwcj4vZyxmdW5jdGlvbigpe3JldHVybiBsfSkpLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46UmVnRXhwKC8oKD86XnxbXlxcXSkoPzpcXFxcKSopXCRceyg/Oig/IVx9KSg/OjxleHByPikpKlx9Ly5zb3VyY2UucmVwbGFjZSgvPGV4cHI+L2csZnVuY3Rpb24oKXtyZXR1cm4gbH0pKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImludGVycG9sYXRpb24tcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eXCRce3xcfSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHJlc3Q6bnVsbH19fX1dLGtleXdvcmQ6L1xiKD86YXMpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sImJ1aWx0aW4tZnVuY3Rpb24iOntwYXR0ZXJuOi8oKD86XnxbXj9dKVw/XHMqKVx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxmdW5jdGlvbjovXGJcdysoPz1ccypcKCkvLG51bWJlcjovXGJcZCsoPzpcLlxkKyk/XGIvLG9wZXJhdG9yOi9cLlwuWzwqIV0/fC0+fC0tfFwrXCt8JiZ8XHxcfHxcP3sxLDJ9fFstKyovJSE9PD5dPT98XGIoPzpndHxndGV8bHR8bHRlKVxiLyxwdW5jdHVhdGlvbjovWyw7LjooKVtcXXt9XS99O2Muc3RyaW5nWzFdLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZS5yZXN0PWMsaS5sYW5ndWFnZXMuZnRsPXsiZnRsLWNvbW1lbnQiOntwYXR0ZXJuOi9ePCMtLVtcc1xTXSovLGFsaWFzOiJjb21tZW50In0sImZ0bC1kaXJlY3RpdmUiOntwYXR0ZXJuOi9ePFtcc1xTXSs+JC8saW5zaWRlOntkaXJlY3RpdmU6e3BhdHRlcm46LyhePFwvPylbI0BdW2Etel1cdyovaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0scHVuY3R1YXRpb246L148XC8/fFwvPz4kLyxjb250ZW50OntwYXR0ZXJuOi9ccypcU1tcc1xTXSovLGFsaWFzOiJmdGwiLGluc2lkZTpjfX19LCJmdGwtaW50ZXJwb2xhdGlvbiI6e3BhdHRlcm46L15cJFx7W1xzXFNdKlx9JC8saW5zaWRlOntwdW5jdHVhdGlvbjovXlwkXHt8XH0kLyxjb250ZW50OntwYXR0ZXJuOi9ccypcU1tcc1xTXSovLGFsaWFzOiJmdGwiLGluc2lkZTpjfX19fSxpLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihkKXt2YXIgZj1SZWdFeHAoLzwjLS1bXHNcU10qPy0tPnw8XC8/WyNAXVthLXpBLVpdKD86PGV4cHI+KSo/PnxcJFx7KD86PGV4cHI+KSo/XH0vLnNvdXJjZS5yZXBsYWNlKC88ZXhwcj4vZyxmdW5jdGlvbigpe3JldHVybiBsfSksImdpIik7aS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMoZCwiZnRsIixmKX0pLGkuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24oZCl7aS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMoZCwiZnRsIil9KX0pKGEpfXJldHVybiBOcH12YXIgd3AsZEE7ZnVuY3Rpb24gYlUoKXtpZihkQSlyZXR1cm4gd3A7ZEE9MSx3cD1lLGUuZGlzcGxheU5hbWU9ImdhcCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZ2FwPXtzaGVsbDp7cGF0dGVybjovXmdhcD5bXHNcU10qPyg/PV5nYXA+fCQoPyFbXHNcU10pKS9tLGdyZWVkeTohMCxpbnNpZGU6e2dhcDp7cGF0dGVybjovXihnYXA+KS4rKD86KD86XHIoPzpcbnwoPyFcbikpfFxuKT4uKikqLyxsb29rYmVoaW5kOiEwLGluc2lkZTpudWxsfSxwdW5jdHVhdGlvbjovXmdhcD4vfX0sY29tbWVudDp7cGF0dGVybjovIy4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKF58W15cXCciXSkoPzonKD86W15cclxuXFwnXXxcXC4pezEsMTB9J3wiKD86W15cclxuXFwiXXxcXC4pKiIoPyEiKXwiIiJbXHNcU10qPyIiIikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7Y29udGludWF0aW9uOntwYXR0ZXJuOi8oW1xyXG5dKT4vLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn19fSxrZXl3b3JkOi9cYig/OkFzc2VydHxJbmZvfElzQm91bmR8UVVJVHxUcnlOZXh0TWV0aG9kfFVuYmluZHxhbmR8YXRvbWljfGJyZWFrfGNvbnRpbnVlfGRvfGVsaWZ8ZWxzZXxlbmR8Zml8Zm9yfGZ1bmN0aW9ufGlmfGlufGxvY2FsfG1vZHxub3R8b2R8b3J8cXVpdHxyZWFkb25seXxyZWFkd3JpdGV8cmVjfHJlcGVhdHxyZXR1cm58dGhlbnx1bnRpbHx3aGlsZSlcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxmdW5jdGlvbjovXGJbYS16X11cdyooPz1ccypcKCkvaSxudW1iZXI6e3BhdHRlcm46LyhefFteXHcuXXxcLlwuKSg/OlxkKyg/OlwuXGQqKT98XC5cZCspKD86W2VFXVsrLV0/XGQrKT8oPzpfW2Etel0/KT8oPz0kfFteXHcuXXxcLlwuKS8sbG9va2JlaGluZDohMH0sY29udGludWF0aW9uOntwYXR0ZXJuOi8oW1xyXG5dKT4vLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sb3BlcmF0b3I6Ly0+fFstKyovXn49IV18PD58Wzw+XT0/fDo9fFwuXC4vLHB1bmN0dWF0aW9uOi9bKClbXF17fSw7LjpdL30sbi5sYW5ndWFnZXMuZ2FwLnNoZWxsLmluc2lkZS5nYXAuaW5zaWRlPW4ubGFuZ3VhZ2VzLmdhcH1yZXR1cm4gd3B9dmFyIGtwLHBBO2Z1bmN0aW9uIHlVKCl7aWYocEEpcmV0dXJuIGtwO3BBPTEsa3A9ZSxlLmRpc3BsYXlOYW1lPSJnY29kZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZ2NvZGU9e2NvbW1lbnQ6LzsuKnxcQlwoLio/XClcQi8sc3RyaW5nOntwYXR0ZXJuOi8iKD86IiJ8W14iXSkqIi8sZ3JlZWR5OiEwfSxrZXl3b3JkOi9cYltHTV1cZCsoPzpcLlxkKyk/XGIvLHByb3BlcnR5Oi9cYltBLVpdLyxjaGVja3N1bTp7cGF0dGVybjovKFwqKVxkKy8sbG9va2JlaGluZDohMCxhbGlhczoibnVtYmVyIn0scHVuY3R1YXRpb246L1s6Kl0vfX1yZXR1cm4ga3B9dmFyIENwLGZBO2Z1bmN0aW9uIEVVKCl7aWYoZkEpcmV0dXJuIENwO2ZBPTEsQ3A9ZSxlLmRpc3BsYXlOYW1lPSJnZHNjcmlwdCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZ2RzY3JpcHQ9e2NvbW1lbnQ6LyMuKi8sc3RyaW5nOntwYXR0ZXJuOi9APyg/OigifCcpKD86KD8hXDEpW15cblxcXXxcXFtcc1xTXSkqXDEoPyEifCcpfCIiIig/OlteXFxdfFxcW1xzXFNdKSo/IiIiKS8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyheKD86Y2xhc3N8Y2xhc3NfbmFtZXxleHRlbmRzKVsgXHRdK3xeZXhwb3J0XChbIFx0XSp8XGJhc1sgXHRdK3woPzpcYig/OmNvbnN0fHZhcilbIFx0XXxbLChdKVsgXHRdKlx3K1sgXHRdKjpbIFx0XSp8LT5bIFx0XSopW2EtekEtWl9dXHcqL20sbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzphbmR8YXN8YXNzZXJ0fGJyZWFrfGJyZWFrcG9pbnR8Y2xhc3N8Y2xhc3NfbmFtZXxjb25zdHxjb250aW51ZXxlbGlmfGVsc2V8ZW51bXxleHBvcnR8ZXh0ZW5kc3xmb3J8ZnVuY3xpZnxpbnxpc3xtYXN0ZXJ8bWFzdGVyc3luY3xtYXRjaHxub3R8bnVsbHxvbnJlYWR5fG9yfHBhc3N8cHJlbG9hZHxwdXBwZXR8cHVwcGV0c3luY3xyZW1vdGV8cmVtb3Rlc3luY3xyZXR1cm58c2VsZnxzZXRnZXR8c2lnbmFsfHN0YXRpY3x0b29sfHZhcnx3aGlsZXx5aWVsZClcYi8sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89WyBcdF0qXCgpL2ksdmFyaWFibGU6L1wkXHcrLyxudW1iZXI6Wy9cYjBiWzAxX10rXGJ8XGIweFtcZGEtZkEtRl9dK1xifCg/OlxiXGRbXGRfXSooPzpcLltcZF9dKik/fFxCXC5bXGRfXSspKD86ZVsrLV0/W1xkX10rKT9cYi8sL1xiKD86SU5GfE5BTnxQSXxUQVUpXGIvXSxjb25zdGFudDovXGJbQS1aXVtBLVpfXGRdKlxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG9wZXJhdG9yOi8tPnw6PXwmJnxcfFx8fDw8fD4+fFstKyovJSZ8ITw+PV09P3xbfl5dLyxwdW5jdHVhdGlvbjovWy46LDsoKVtcXXt9XS99fXJldHVybiBDcH12YXIgSXAsZ0E7ZnVuY3Rpb24gU1UoKXtpZihnQSlyZXR1cm4gSXA7Z0E9MSxJcD1lLGUuZGlzcGxheU5hbWU9ImdlZGNvbSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZ2VkY29tPXsibGluZS12YWx1ZSI6e3BhdHRlcm46LyheW1x0IF0qXGQrICsoPzpAXHdbXHchIiQlJicoKSorLFwtLi86Ozw9Pj9bXFxcXV5ge3x9flx4ODAtXHhmZSAjXSpAICspP1x3KyApLisvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cG9pbnRlcjp7cGF0dGVybjovXkBcd1tcdyEiJCUmJygpKissXC0uLzo7PD0+P1tcXFxdXmB7fH1+XHg4MC1ceGZlICNdKkAkLyxhbGlhczoidmFyaWFibGUifX19LHRhZzp7cGF0dGVybjovKF5bXHQgXSpcZCsgKyg/OkBcd1tcdyEiJCUmJygpKissXC0uLzo7PD0+P1tcXFxdXmB7fH1+XHg4MC1ceGZlICNdKkAgKyk/KVx3Ky9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyJ9LGxldmVsOntwYXR0ZXJuOi8oXltcdCBdKilcZCsvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIifSxwb2ludGVyOntwYXR0ZXJuOi9AXHdbXHchIiQlJicoKSorLFwtLi86Ozw9Pj9bXFxcXV5ge3x9flx4ODAtXHhmZSAjXSpALyxhbGlhczoidmFyaWFibGUifX19cmV0dXJuIElwfXZhciBPcCxtQTtmdW5jdGlvbiB2VSgpe2lmKG1BKXJldHVybiBPcDttQT0xLE9wPWUsZS5kaXNwbGF5TmFtZT0iZ2hlcmtpbiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPS8oPzpccj9cbnxccilbIFx0XSpcfC4rXHwoPzooPyFcfCkuKSovLnNvdXJjZTthLmxhbmd1YWdlcy5naGVya2luPXtweXN0cmluZzp7cGF0dGVybjovKCIiInwnJycpW1xzXFNdKz9cMS8sYWxpYXM6InN0cmluZyJ9LGNvbW1lbnQ6e3BhdHRlcm46LyheWyBcdF0qKSMuKi9tLGxvb2tiZWhpbmQ6ITB9LHRhZzp7cGF0dGVybjovKF5bIFx0XSopQFxTKi9tLGxvb2tiZWhpbmQ6ITB9LGZlYXR1cmU6e3BhdHRlcm46LygoPzpefFxyP1xufFxyKVsgXHRdKikoPzpBYmlsaXR5fEFob3kgbWF0ZXkhfEFyd2VkZHxBc3Bla3R8QmVzaWdoZWlkIEJlaG9lZnRlfEJ1c2luZXNzIE5lZWR8Q2FyYWN0ZXJpc3RpY2F8Q2FyYWN0ZXLDrXN0aWNhfEVnZW5za2FifEVnZW5za2FwfEVpZ2lubGVpa2l8RmVhdHVyZXxGxKvEjWF8Rml0dXJ8Rm9uY3Rpb25uYWxpdMOpfEZvbmtzeW9uYWxpdGV8RnVuY2lvbmFsaWRhZGV8RnVuY2lvbmFsaXRhdHxGdW5jdGlvbmFsaXRhdGV8RnVuY8WjaW9uYWxpdGF0ZXxGdW5jyJtpb25hbGl0YXRlfEZ1bmN0aW9uYWxpdGVpdHxGdW5nc2l8RnVua2NpYXxGdW5rY2lqYXxGdW5rY2lvbmFsaXTEgXRlfEZ1bmtjaW9uYWxub3N0fEZ1bmtjamF8RnVua3NpZXxGdW5rdGlvbmFsaXTDpHR8RnVua3Rpb25hbGl0w6lpdHxGdW56aW9uYWxpdMOgfEh3YWV0fEh3w6Z0fEplbGxlbXrFkXxLYXJha3RlcmlzdGlrfExhc3Rub3N0fE1ha3xNb2d1Y25vc3R8bGFIfE1vZ3XEh25vc3R8TW96bm9zdGl8TW/Fvm5vc3RpfE9IIEhBSXxPbWFkdXN8T21pbmFpc3V1c3xPc29iaW5hfMOWemVsbGlrfFBvdHJ6ZWJhIGJpem5lc293YXxwZXJib2dofHBvUWJvZ2ggbWFsamEnfFBvxb5hZGF2ZWt8UG/FvmlhZGF2a2F8UHJldHR5IG11Y2h8UWFwfFF1J21lSCAndXR8U2F2eWLEl3xUw61uaCBuxINuZ3xUcmFqdG98VmVybW/Dq3xWbGFzdG5vc8WlfFfFgmHFm2Npd2/Fm8SHfFpuYcSNaWxub3N0fM6Uz4XOvc6xz4TPjM+EzrfPhM6xfM6bzrXOuc+Ezr/Phc+BzrPOr86xfNCc0L7Qs9GD0ZvQvdC+0YHRgnzQnNOp0LzQutC40L3Qu9C10Lp80J7RgdC+0LHQuNC90LB80KHQstC+0LnRgdGC0LLQvnzSrtC30LXQvdGH05nQu9C10LrQu9C10LvQtdC6fNCk0YPQvdC60YbQuNC+0L3QsNC7fNCk0YPQvdC60YbQuNC+0L3QsNC70L3QvtGB0YJ80KTRg9C90LrRhtC40Y980KTRg9C90LrRhtGW0L7QvdCw0Lt816rXm9eV16DXlHzYrtin2LXZitipfNiu2LXZiNi124zYqnzYtdmE2KfYrduM2Kp82qnYp9ix2YjYqNin2LEg2qnbjCDYttix2YjYsdiqfNmI2ZDbjNqY2q/bjHzgpLDgpYLgpKog4KSy4KWH4KSWfOColuCovuCouOCpgOCoheCopHzgqKjgqJXgqLYg4Kio4KmB4Ki54Ki+4KiwfOCoruCpgeCoueCovuCoguCopuCosOCovnzgsJfgsYHgsKPgsK7gsYF84LK54LOG4LKa4LON4LKa4LKzfOC4hOC4p+C4suC4oeC4leC5ieC4reC4h+C4geC4suC4o+C4l+C4suC4h+C4mOC4uOC4o+C4geC4tOC4iHzguITguKfguLLguKHguKrguLLguKHguLLguKPguJZ84LmC4LiE4Lij4LiH4Lir4Lil4Lix4LiBfOq4sOuKpXzjg5XjgqPjg7zjg4Hjg6N85Yqf6IO9fOapn+iDvSk6KD86W146XHJcbl0rKD86XHI/XG58XHJ8JCkpKi8sbG9va2JlaGluZDohMCxpbnNpZGU6e2ltcG9ydGFudDp7cGF0dGVybjovKDopW15cclxuXSsvLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6L1teOlxyXG5dKzovfX0sc2NlbmFyaW86e3BhdHRlcm46LyheWyBcdF0qKSg/OkFic3RyYWN0IFNjZW5hcmlvfEFic3RyYWt0IFNjZW5hcmlvfEFjaHRlcmdyb25kfEFlcnzDhnJ8QWd0ZXJncm9uZHxBbGwgeSdhbGx8QW50ZWNlZGVudGVzfEFudGVjZWRlbnRzfEF0YnVyw7BhcsOhc3xBdGJ1csOwYXLDoXNpcnxBd3d3LCBsb29rIG1hdGV8QjR8QmFja2dyb3VuZHxCYWdncnVuZHxCYWtncnVuZHxCYWtncnVubnxCYWtncnVubnVyfEJlaXNwaWVsZXxCZWlzcGlsbGVyfELhu5FpIGPhuqNuaHxDZWZuZGlyfENlbmFyaW98Q2Vuw6FyaW98Q2VuYXJpbyBkZSBGdW5kb3xDZW7DoXJpbyBkZSBGdW5kb3xDZW5hcmlvc3xDZW7DoXJpb3N8Q29udGVzdG98Q29udGV4dHxDb250ZXh0ZXxDb250ZXh0b3xDb250b3xDb250b2h8Q29udG9uZXxEw6ZtaXxEYXNhcnxEZWFkIG1lbiB0ZWxsIG5vIHRhbGVzfERlbGluZWFjYW8gZG8gQ2VuYXJpb3xEZWxpbmVhw6fDo28gZG8gQ2Vuw6FyaW98RGlzIGlzIHdoYXQgd2VudCBkb3dufEThu68gbGnhu4d1fER5YWdyYW0gU2VuYXJ5b3xEeWFncmFtIHNlbmFyeW98RWd6YW5wfEVqZW1wbG9zfEVrc2VtcGxlcnxFa3plbXBsb2p8RW5naHJlaWZmdGlhdXxFc2Jvem8gZG8gZXNjZW5hcmlvfEVzY2VuYXJpfEVzY2VuYXJpb3xFc2VtcGl8RXNxdWVtYSBkZSBsJ2VzY2VuYXJpfEVzcXVlbWEgZGVsIGVzY2VuYXJpb3xFc3F1ZW1hIGRvIENlbmFyaW98RXNxdWVtYSBkbyBDZW7DoXJpb3xFWEFNUExafEV4YW1wbGVzfEV4ZW1wZWx8RXhlbXBsZXxFeGVtcGxlc3xFeGVtcGxvc3xGaXJzdCBvZmZ8Rm9ub3xGb3JnYXTDs2vDtm55dnxGb3JnYXTDs2vDtm55diB2w6F6bGF0fEZ1bmRvfEdlw6dtacWffEdydW5kbGFnZXxIYW5uZXJncm9uZHxnaGFudG9IfEjDoXR0w6lyfEhlYXZlIHRvfElzdG9yaWt8SnVodHVtaWR8S2VhZGFhbnxLaHVuZyBr4buLY2ggYuG6o258S2h1bmcgdMOsbmggaHXhu5FuZ3xL4buLY2ggYuG6o258S29uY2VwdHxLb25zZXAgc2tlbmFyaW98S29udMOoa3N8S29udGVrc3R8S29udGVrc3Rhc3xLb250ZWtzdHN8S29udGV4dHxLb250dXJvIGRlIGxhIHNjZW5hcm98TGF0YXIgQmVsYWthbmd8bHV0IGNob3ZuYXRsaHxsdXR8bHV0bWV5fEzDvXNpbmcgQXRidXLDsGFyw6FzYXJ8TMO9c2luZyBEw6ZtYXxNSVNIVU4gU1JTTFl8TUlTSFVOfE1lbmdnYXJpc2thbiBTZW5hcmlvfG1vJ3xOw6HEjXJ0IFNjZW7DoXJhfE7DocSNcnQgU2PDqW7DocWZZXxOw6HEjXJ0IFNjZW7DoXJ1fE9yaXMgc2NlbmFyaWphfMOWcm5la2xlcnxPc25vdmF8T3Nub3ZhIFNjZW7DoXJhfE9zbm92YSBzY8OpbsOhxZllfE9zbnV0ZWt8T3phZGplfFBhcmF1Z3N8UGF2eXpkxb5pYWl8UMOpbGTDoWt8UGllbcSTcml8UGxhbiBkdSBzY8OpbmFyaW98UGxhbiBkdSBTY8OpbmFyaW98UGxhbiBTZW5hcnlvfFBsYW4gc2VuYXJ5b3xQbGFuZyB2dW0gU3plbmFyaW98UG96YWTDrXxQb3phZGllfFBvemFkaW5hfFByw61rbGFkeXxQxZnDrWtsYWR5fFByaW1lcnxQcmltZXJpfFByaW1qZXJpfFByenlrxYJhZHl8UmFhbXN0c2VuYWFyaXVtfFJlY2tvbiBpdCdzIGxpa2V8UmVyZWZvbnN8U2NlbsOhcnxTY8OpbsOhxZl8U2NlbmFyaWV8U2NlbmFyaWp8U2NlbmFyaWphaXxTY2VuYXJpamF1cyDFoWFibG9uYXN8U2NlbmFyaWppfFNjZW7EgXJpanN8U2NlbsSBcmlqcyBwxJNjIHBhcmF1Z2F8U2NlbmFyaWp1c3xTY2VuYXJpb3xTY8OpbmFyaW98U2NlbmFyaW8gQW1saW5lbGxvbHxTY2VuYXJpbyBPdXRsaW5lfFNjZW5hcmlvIFRlbXBsYXRlfFNjZW5hcmlvbWFsfFNjZW5hcmlvbWFsbHxTY2VuYXJpb3N8U2NlbmFyaXV8U2NlbmFyaXVzenxTY2VuYXJvfFNjaGVtYSBkZWxsbyBzY2VuYXJpb3xTZSDDsGV8U2UgdGhlfFNlIMO+ZXxTZW5hcmlvfFNlbmFyeW8gRGVza3JpcHN5b258U2VuYXJ5byBkZXNrcmlwc3lvbnxTZW5hcnlvfFNlbmFyeW8gdGFzbGHEn8SxfFNoaXZlciBtZSB0aW1iZXJzfFNpdHXEgWNpamF8U2l0dWFpfFNpdHVhc2llIFVpdGVlbnNldHRpbmd8U2l0dWFzaWV8U2tlbmFyaW8ga29uc2VwfFNrZW5hcmlvfFNraWNhfFN0cnVjdHVyYSBzY2VuYXJpdXxTdHJ1Y3R1csSDIHNjZW5hcml1fFN0cnVrdHVyYSBzY2VuYXJpamF8U3RzZW5hYXJpdW18U3dhIGh3YWVyIHN3YXxTd2F8U3dhIGh3w6ZyIHN3YXxTemFibG9uIHNjZW5hcml1c3phfFN6ZW5hcmlvfFN6ZW5hcmlvZ3J1bmRyaXNzfFRhcGF1a3NldHxUYXBhdXN8VGFwYXVzYWloaW98VGF1c3R8VGF1c3RhfFRlbXBsYXRlIEtlYWRhYW58VGVtcGxhdGUgU2VuYXJpb3xUZW1wbGF0ZSBTaXR1YWl8VGhlIHRoaW5nIG9mIGl0IGlzfFTDrG5oIGh14buRbmd8VmFyaWFudGFpfFZvb3JiZWVsZGV8Vm9vcmJlZWxkZW58V2hhcnJpbWVhbiBpc3xZby1oby1ob3xZb3UnbGwgd2FubmF8WmHFgm/FvGVuaWF8zqDOsc+BzrHOtM61zq/Os868zrHPhM6xfM6gzrXPgc65zrPPgc6xz4bOriDOo861zr3Osc+Bzq/Ov8+FfM6jzrXOvc6sz4HOuc6xfM6jzrXOvc6sz4HOuc6/fM6lz4DPjM6yzrHOuM+Bzr980JrQtdGA0LXRiHzQmtC+0L3RgtC10LrRgdGCfNCa0L7QvdGG0LXQv9GCfNCc0LjRgdCw0LvQu9Cw0YB80JzQuNGB0L7Qu9C70LDRgHzQntGB0L3QvtCy0LB80J/QtdGA0LXQtNGD0LzQvtCy0LB80J/QvtC30LDQtNC40L3QsHzQn9GA0LXQtNC40YHRgtC+0YDQuNGPfNCf0YDQtdC00YvRgdGC0L7RgNC40Y980J/RgNC40LrQu9Cw0LTQuHzQn9GA0LjQvNC10YB80J/RgNC40LzQtdGA0Lh80J/RgNC40LzQtdGA0Yt80KDQsNC80LrQsCDQvdCwINGB0YbQtdC90LDRgNC40Ll80KHQutC40YbQsHzQodGC0YDRg9C60YLRg9GA0LAg0YHRhtC10L3QsNGA0LjRmNCwfNCh0YLRgNGD0LrRgtGD0YDQsCDRgdGG0LXQvdCw0YDQuNGPfNCh0YLRgNGD0LrRgtGD0YDQsCDRgdGG0LXQvdCw0YDRltGOfNCh0YbQtdC90LDRgNC40Ll80KHRhtC10L3QsNGA0LjQuSDRgdGC0YDRg9C60YLRg9GA0LDRgdC4fNCh0YbQtdC90LDRgNC40LnQvdGL0qMg0YLTqdC30LXQu9C10YjQtXzQodGG0LXQvdCw0YDQuNGY0Lh80KHRhtC10L3QsNGA0LjQvnzQodGG0LXQvdCw0YDRltC5fNCi0LDRgNC40YV80q7RgNC905nQutC705nRgHzXk9eV15LXnteQ15XXqnzXqNen16J816rXkdeg15nXqiDXqteo15fXmdepfNeq16jXl9eZ16l82KfZhNiu2YTZgdmK2Kl82KfZhNqv2YjbjCDYs9mG2KfYsduM2Yh82KfZhdir2YTYqXzZvtizINmF2YbYuNixfNiy2YXbjNmG2Yd82LPZhtin2LHbjNmIfNiz2YrZhtin2LHZitmIfNiz2YrZhtin2LHZitmIINmF2K7Yt9i3fNmF2KvYp9mE24zaunzZhdmG2LjYsSDZhtin2YXbkiDaqdinINiu2KfaqduBfNmF2YbYuNix2YbYp9mF24F82YbZhdmI2YbZhyDZh9infOCkieCkpuCkvuCkueCksOCko3zgpKrgpLDgpL/gpKbgpYPgpLbgpY3gpK984KSq4KSw4KS/4KSm4KWD4KS24KWN4KSvIOCksOClguCkquCksOClh+CkluCkvnzgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL984KiJ4Kim4Ki+4Ki54Kiw4Kio4Ki+4KiCfOCoquCon+ColeCopeCovnzgqKrgqJ/gqJXgqKXgqL4g4Kii4Ki+4KiC4Kia4Ki+fOCoquCon+ColeCopeCoviDgqLDgqYLgqKog4Kiw4KmH4KiW4Ki+fOCoquCov+Com+Cpi+ColeCpnHzgsIngsKbgsL7gsLngsLDgsKPgsLLgsYF84LCV4LCl4LCo4LCCfOCwqOCxh+CwquCwpeCxjeCwr+CwgnzgsLjgsKjgsY3gsKjgsL/gsLXgsYfgsLbgsIJ84LKJ4LKm4LK+4LK54LKw4LKj4LOG4LKX4LKz4LOBfOCyleCypeCyvuCyuOCyvuCysOCyvuCyguCytnzgsrXgsr/gsrXgsrDgsqPgs4Z84LK54LK/4LKo4LON4LKo4LOG4LKy4LOGfOC5guC4hOC4o+C4h+C4quC4o+C5ieC4suC4h+C4guC4reC4h+C5gOC4q+C4leC4uOC4geC4suC4o+C4k+C5jHzguIrguLjguJTguILguK3guIfguJXguLHguKfguK3guKLguYjguLLguId84LiK4Li44LiU4LiC4Lit4LiH4LmA4Lir4LiV4Li44LiB4Liy4Lij4LiT4LmMfOC5geC4meC4p+C4hOC4tOC4lHzguKrguKPguLjguJvguYDguKvguJXguLjguIHguLLguKPguJPguYx84LmA4Lir4LiV4Li44LiB4Liy4Lij4LiT4LmMfOuwsOqyvXzsi5zrgpjrpqzsmKR87Iuc64KY66as7JikIOqwnOyalHzsmIh844K144Oz44OX44OrfOOCt+ODiuODquOCqnzjgrfjg4rjg6rjgqrjgqLjgqbjg4jjg6njgqTjg7N844K344OK44Oq44Kq44OG44Oz44OX44OsfOOCt+ODiuODquOCquODhuODs+ODl+ODrOODvOODiHzjg4bjg7Pjg5fjg6x85L6LfOS+i+WtkHzliafmnKx85Ymn5pys5aSn57qyfOWKh+acrHzliofmnKzlpKfntrF85Zy65pmvfOWcuuaZr+Wkp+e6snzloLTmma985aC05pmv5aSn57axfOiDjOaZryk6W146XHJcbl0qL20sbG9va2JlaGluZDohMCxpbnNpZGU6e2ltcG9ydGFudDp7cGF0dGVybjovKDopW15cclxuXSovLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6L1teOlxyXG5dKzovfX0sInRhYmxlLWJvZHkiOntwYXR0ZXJuOlJlZ0V4cCgiKCIraSsiKSg/OiIraSsiKSsiKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7b3V0bGluZTp7cGF0dGVybjovPFtePl0rPi8sYWxpYXM6InZhcmlhYmxlIn0sdGQ6e3BhdHRlcm46L1xzKlteXHN8XVtefF0qLyxhbGlhczoic3RyaW5nIn0scHVuY3R1YXRpb246L1x8L319LCJ0YWJsZS1oZWFkIjp7cGF0dGVybjpSZWdFeHAoaSksaW5zaWRlOnt0aDp7cGF0dGVybjovXHMqW15cc3xdW158XSovLGFsaWFzOiJ2YXJpYWJsZSJ9LHB1bmN0dWF0aW9uOi9cfC99fSxhdHJ1bGU6e3BhdHRlcm46LyheWyBcdF0rKSg/OidhfCdhY2h8J2VqfDd8YXxBIHRha8OpfEEgdGFrdGllxb58QSB0aWXFvnxBIHrDoXJvdmXFiHxBYmVyfEFjfEFkb3R0fEFra29yfEFrfEFsZXNob3Jlc3xBbGV8QWxpfEFsbG9yYXxBbG9yc3xBbHN8QW1hfEFtZW5ueWliZW58QW1pa29yfEFtcGFrfGFufEFOfEFuYW5naW5nfEFuZCB5J2FsbHxBbmR8QW5nZW5vbW1lbnxBbnJoZWdlZGlnIGF8QW58QXBhYmlsYXxBdMOoc3xBdGVzYXxBdHVuY2l8QXZhc3QhfEF5ZXxBfGF3ZXJ8QmFnaXxCYW5qdXJ8QmV0fEJp4bq/dHxCbGltZXkhfEJ1aHxCdXQgYXQgdGhlIGVuZCBvZiB0aGUgZGF5IEkgcmVja29ufEJ1dCB5J2FsbHxCdXR8QlVUfENhbHxDw6JuZHxDYW5kfENhbmRvfENlfEN1YW5kb3zEjGV8w5BhIMOwZXzDkGF8RGFkYXN8RGFkYXxEYWRvc3xEYWRvfERhSCBnaHUnIGJlamx1J3xkYW5ufERhbm58RGFub3xEYW58RGFyfERhdCBmaWluZHxEYXRhfERhdGUgZmlpbmR8RGF0ZXxEYXRpIGZpaW5kfERhdGl8RGHFo2kgZmlpbmR8RGHIm2kgZmlpbmR8REVOfERhdG98RGV8RGVuIHlvdXNlIGdvdHRhfERlbmdhbnxEaWJlcml8RGl5ZWxpbSBraXxEb25hZGF8RG9uYXR8RG9uaXRhxLVvfERvfER1bnxEdW90YXzDkHVyaHxFZWxkYWRlc3xFZnxFxJ9lciBraXxFbnRhb3xFbnTDo298RW50w7NufEV8RW58RW50b25jZXN8RXBpfMOJc3xFdGFudCBkb25uw6llfEV0YW50IGRvbm7DqXxFdHzDiXRhbnQgZG9ubsOpZXN8w4l0YW50IGRvbm7DqWV8w4l0YW50IGRvbm7DqXxFdGFudCBkb25uw6llc3xFdGFudCBkb25uw6lzfMOJdGFudCBkb25uw6lzfEZha2F0fEdhbmd3YXkhfEdkeXxHZWdlYmVuIHNlaWVufEdlZ2ViZW4gc2VpfEdlZ2V2ZW58R2VnZXdlfGdodScgbm9ibHUnfEdpdHR8R2l2ZW4geSdhbGx8R2l2ZW58R2l2ZXR8R2l2dW58SGF8Q2hvfEkgQ0FOIEhBWnxJbnxJcnxJdCdzIGp1c3QgdW5iZWxpZXZhYmxlfEl8SmF8SmXFm2xpfEplxbxlbGl8S2FkfEthZGF8S2FkYXJ8S2FpfEthanxLZHnFvnxLZcSPfEtlbXVkaWFufEtldGlrYXxLaGl8S2llZHl8S298S3VpZHxLdWl8S3VufExhbnxsYXRsaHxMZSBzYSBhfExldCBnbyBhbmQgaGF1bHxMZXxMw6ggc2EgYXxMw6h8TG9nb3xMb3JzcXUnPHxMb3JzcXVlfG3DpHxNYWFyfE1haXN8TWFqxIVjfE1hfE1hamR8TWFrYXxNYW5hd2F8TWFzfE1lbnxNZW5hd2F8TXV0dGF8TmFsaWthfE5hbGlrYW5pbmd8TmFuZ2luZ3xOw6VyfE7DpHJ8TmF0b3xOaMawbmd8TmlpbnxOanVrfE8gemFtYW58T2NofE9nfE9sZXRldGFhbnxPbmR8T25kYXxPcmF6fFBha3xQZXJvfFBlcsOyfFBvZGFub3xQb2tpYcS+fFBva3VkfFBvdGVtfFBvdG9tfFByaXZ6ZXRvfFByeWR8UXVhbnxRdWFuZHxRdWFuZG98cWFTREknfFPDpXxTZWR8U2V8U2lpc3xTaXBvemUga2V8U2lwb3plIEtlfFNpcG96ZXxTaXzFnml8yJhpfFNvaXR8U3RlbHxUYWRhfFRhZHxUYWtyYXR8VGFrfFRhcGl8VGVyfFRldGFwaXxUaGEgdGhlfFRoYXxUaGVuIHknYWxsfFRoZW58VGjDrHxUaHVyaHxUb2RhfFRvbyByaWdodHxVbnxVbmR8dWdlaG9sbHxWw6B8dmFqfFZlbmRhcnxWZXx3YW5ufFdhbm5lZXJ8V0VOfFdlbm58V2hlbiB5J2FsbHxXaGVufFd0ZWR5fFd1bnxZJ2tub3d8WWVhaCBuYWh8WW5hfFlvdXNlIGtub3cgbGlrZSB3aGVufFlvdXNlIGtub3cgd2hlbiB5b3VzZSBnb3R8WXxaYSBwcmVkcG9rbGFkdXxaYSBwxZllZHBva2xhZHV8WmFkYW58WmFkYW5pfFphZGFub3xaYWRhdGV8WmFkYXRvfFpha8WCYWRhasSFY3xaYXJhZGl8WmF0YXRpfMOeYSDDvmV8w55hfMOew6F8w55lZ2FyfMOedXJofM6RzrvOu86sfM6UzrXOtM6/zrzOrc69zr/PhXzOms6xzrl8zozPhM6xzr18zqTPjM+EzrV80JAg0YLQsNC60L7QtnzQkNCz0LDRgHzQkNC70LV80JDQu9C4fNCQ0LzQvNC+fNCQfNOY0LPTmdGAfNOY0LnRgtC40Lp805jQvNC80LB80JHQuNGA0L7QunzQktCwfNCS05l80JTQsNC00LXQvdC+fNCU0LDQvdC+fNCU0L7Qv9GD0YHRgtC40Lx80JXRgdC70Lh80JfQsNC00LDRgtC1fNCX0LDQtNCw0YLQuHzQl9Cw0LTQsNGC0L580Jh80IZ80Jog0YLQvtC80YMg0LbQtXzQmtCw0LTQsHzQmtCw0LR80JrQvtCz0LDRgtC+fNCa0L7Qs9C00LB80JrQvtC70Lh80JvTmdC60LjQvXzQm9C10LrQuNC9fNCd05nRgtC40pfTmdC005l80J3QtdGF0LDQuXzQndC+fNCe0L3QtNCwfNCf0YDQuNC/0YPRgdGC0LjQvNC+LCDRidC+fNCf0YDQuNC/0YPRgdGC0LjQvNC+fNCf0YPRgdGC0Yx80KLQsNC60LbQtXzQotCwfNCi0L7Qs9C00LB80KLQvtC00ZZ80KLQvnzQo9C90LTQsHzSutOZ0Lx80K/QutGJ0L5815DXkdecfNeQ15bXmXzXkNeWfNeR15TXmdeg16rXn3zXldeS151815vXkNep16h82KLZhtqv2KfZh3zYp9iw2KfZi3zYp9qv2LF82KfZhdinfNin2YjYsXzYqNinINmB2LHYtnzYqNin2YTZgdix2LZ82KjZgdix2LZ82b7avtixfNiq2Kh82KvZhXzYrNiofNi52YbYr9mF2Kd82YHYsdi2INqp24zYp3zZhNmD2YZ82YTbjNqp2YZ82YXYqtmJfNmH2Ybar9in2YXbjHzZiHzgpIXgpJfgpLB84KSU4KSwfOCkleCkpuCkvnzgpJXgpL/gpKjgpY3gpKTgpYF84KSa4KWC4KSC4KSV4KS/fOCknOCkrHzgpKTgpKXgpL584KSk4KSm4KS+fOCkpOCkrHzgpKrgpLDgpKjgpY3gpKTgpYF84KSq4KSwfOCkr+CkpuCkv3zgqIXgqKTgqYd84Kic4Kim4KmL4KiCfOConOCov+CoteCph+CogiDgqJXgqL984Kic4KmH4KiV4KiwfOCopOCopnzgqKrgqLB84LCF4LCq4LGN4LCq4LGB4LCh4LGBfOCwiCDgsKrgsLDgsL/gsLjgsY3gsKXgsL/gsKTgsL/gsLLgsYt84LCV4LC+4LCo4LC/fOCwmuCxhuCwquCxjeCwquCwrOCwoeCwv+CwqOCwpuCwv3zgsK7gsLDgsL/gsK/gsYF84LKG4LKm4LKw4LOGfOCyqOCyguCypOCysHzgsqjgsr/gs5XgsqHgsr/gsqZ84LKu4LKk4LON4LKk4LOBfOCyuOCzjeCypeCyv+CypOCyv+Cyr+CyqOCzjeCyqOCzgXzguIHguLPguKvguJnguJTguYPguKvguYl84LiU4Lix4LiH4LiZ4Lix4LmJ4LiZfOC5geC4leC5iHzguYDguKHguLfguYjguK184LmB4Lil4LiwfOq3uOufrOuptDx86re466as6rOgPHzri6g8fOunjOyVvTx866eM7J28PHzrqLzsoIA8fOyhsOqxtDx87ZWY7KeA66eMPHzjgYvjgaQ8fOOBl+OBi+OBlzx844Gf44Gg44GXPHzjgarjgonjgbA8fOOCguOBlzx85Lim5LiUPHzkvYbjgZc8fOS9huaYrzx85YGH5aaCPHzlgYflrpo8fOWBh+iorTx85YGH6K6+PHzliY3mj5A8fOWQjOaXtjx85ZCM5pmCPHzlubbkuJQ8fOW9kzx855W2PHzogIzkuJQ8fOmCo+S5iDx86YKj6bq8PCkoPz1bIFx0XSkvbSxsb29rYmVoaW5kOiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXC58W14iXFxcclxuXSkqInwnKD86XFwufFteJ1xcXHJcbl0pKicvLGluc2lkZTp7b3V0bGluZTp7cGF0dGVybjovPFtePl0rPi8sYWxpYXM6InZhcmlhYmxlIn19fSxvdXRsaW5lOntwYXR0ZXJuOi88W14+XSs+LyxhbGlhczoidmFyaWFibGUifX19KShuKX1yZXR1cm4gT3B9dmFyIExwLGhBO2Z1bmN0aW9uIFRVKCl7aWYoaEEpcmV0dXJuIExwO2hBPTEsTHA9ZSxlLmRpc3BsYXlOYW1lPSJnaXQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmdpdD17Y29tbWVudDovXiMuKi9tLGRlbGV0ZWQ6L15bLeKAk10uKi9tLGluc2VydGVkOi9eXCsuKi9tLHN0cmluZzovKCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8sY29tbWFuZDp7cGF0dGVybjovXi4qXCQgZ2l0IC4qJC9tLGluc2lkZTp7cGFyYW1ldGVyOi9ccy0tP1x3Ky99fSxjb29yZDovXkBALipAQCQvbSwiY29tbWl0LXNoYTEiOi9eY29tbWl0IFx3ezQwfSQvbX19cmV0dXJuIExwfXZhciBEcCxiQTtmdW5jdGlvbiB4VSgpe2lmKGJBKXJldHVybiBEcDtiQT0xO3ZhciBlPW9hKCk7RHA9bixuLmRpc3BsYXlOYW1lPSJnbHNsIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLGEubGFuZ3VhZ2VzLmdsc2w9YS5sYW5ndWFnZXMuZXh0ZW5kKCJjIix7a2V5d29yZDovXGIoPzphY3RpdmV8YXNtfGF0b21pY191aW50fGF0dHJpYnV0ZXxbaWJkdV0/dmVjWzIzNF18Ym9vbHxicmVha3xidWZmZXJ8Y2FzZXxjYXN0fGNlbnRyb2lkfGNsYXNzfGNvaGVyZW50fGNvbW1vbnxjb25zdHxjb250aW51ZXxkP21hdFsyMzRdKD86eFsyMzRdKT98ZGVmYXVsdHxkaXNjYXJkfGRvfGRvdWJsZXxlbHNlfGVudW18ZXh0ZXJufGV4dGVybmFsfGZhbHNlfGZpbHRlcnxmaXhlZHxmbGF0fGZsb2F0fGZvcnxmdmVjWzIzNF18Z290b3xoYWxmfGhpZ2hwfGh2ZWNbMjM0XXxbaXVdP3NhbXBsZXIyRE1TKD86QXJyYXkpP3xbaXVdP3NhbXBsZXIyRFJlY3R8W2l1XT9zYW1wbGVyQnVmZmVyfFtpdV0/c2FtcGxlckN1YmV8W2l1XT9zYW1wbGVyQ3ViZUFycmF5fFtpdV0/c2FtcGxlclsxMjNdRHxbaXVdP3NhbXBsZXJbMTJdREFycmF5fFtpdV0/aW1hZ2UyRE1TKD86QXJyYXkpP3xbaXVdP2ltYWdlMkRSZWN0fFtpdV0/aW1hZ2VCdWZmZXJ8W2l1XT9pbWFnZUN1YmV8W2l1XT9pbWFnZUN1YmVBcnJheXxbaXVdP2ltYWdlWzEyM11EfFtpdV0/aW1hZ2VbMTJdREFycmF5fGlmfGlufGlubGluZXxpbm91dHxpbnB1dHxpbnR8aW50ZXJmYWNlfGludmFyaWFudHxsYXlvdXR8bG9uZ3xsb3dwfG1lZGl1bXB8bmFtZXNwYWNlfG5vaW5saW5lfG5vcGVyc3BlY3RpdmV8b3V0fG91dHB1dHxwYXJ0aXRpb258cGF0Y2h8cHJlY2lzZXxwcmVjaXNpb258cHVibGljfHJlYWRvbmx5fHJlc291cmNlfHJlc3RyaWN0fHJldHVybnxzYW1wbGV8c2FtcGxlclsxMl1EQXJyYXlTaGFkb3d8c2FtcGxlclsxMl1EU2hhZG93fHNhbXBsZXIyRFJlY3RTaGFkb3d8c2FtcGxlcjNEUmVjdHxzYW1wbGVyQ3ViZUFycmF5U2hhZG93fHNhbXBsZXJDdWJlU2hhZG93fHNoYXJlZHxzaG9ydHxzaXplb2Z8c21vb3RofHN0YXRpY3xzdHJ1Y3R8c3Vicm91dGluZXxzdXBlcnB8c3dpdGNofHRlbXBsYXRlfHRoaXN8dHJ1ZXx0eXBlZGVmfHVpbnR8dW5pZm9ybXx1bmlvbnx1bnNpZ25lZHx1c2luZ3x2YXJ5aW5nfHZvaWR8dm9sYXRpbGV8d2hpbGV8d3JpdGVvbmx5KVxiL30pfXJldHVybiBEcH12YXIgTXAseUE7ZnVuY3Rpb24gQVUoKXtpZih5QSlyZXR1cm4gTXA7eUE9MSxNcD1lLGUuZGlzcGxheU5hbWU9ImdtbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuZ2FtZW1ha2VybGFuZ3VhZ2U9bi5sYW5ndWFnZXMuZ21sPW4ubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtrZXl3b3JkOi9cYig/OmJyZWFrfGNhc2V8Y29udGludWV8ZGVmYXVsdHxkb3xlbHNlfGVudW18ZXhpdHxmb3J8Z2xvYmFsdmFyfGlmfHJlcGVhdHxyZXR1cm58c3dpdGNofHVudGlsfHZhcnx3aGlsZSlcYi8sbnVtYmVyOi8oPzpcYjB4W1xkYS1mXSt8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZVsrLV0/XGQrKT8pW3VsZl17MCw0fS9pLG9wZXJhdG9yOi8tLXxcK1wrfFstKyUvPV09P3whPXxcKlwqPz0/fDxbPD0+XT98Pls9Pl0/fCYmP3xcXlxeP3xcfFx8P3x+fFxiKD86YW5kfGF0fG5vdHxvcnx3aXRofHhvcilcYi8sY29uc3RhbnQ6L1xiKD86R01fYnVpbGRfZGF0ZXxHTV92ZXJzaW9ufGFjdGlvbl8oPzpjb250aW51ZXxyZXN0YXJ0fHJldmVyc2V8c3RvcCl8YWxsfGdhbWVzcGVlZF8oPzpmcHN8bWljcm9zZWNvbmRzKXxnbG9iYWx8bG9jYWx8bm9vbmV8b3RoZXJ8cGl8cG9pbnRlcl8oPzppbnZhbGlkfG51bGwpfHNlbGZ8dGltZXpvbmVfKD86bG9jYWx8dXRjKXx1bmRlZmluZWR8ZXZfKD86Y3JlYXRlfGRlc3Ryb3l8c3RlcHxhbGFybXxrZXlib2FyZHxtb3VzZXxjb2xsaXNpb258b3RoZXJ8ZHJhd3xkcmF3Xyg/OmJlZ2lufGVuZHxwb3N0fHByZSl8a2V5cHJlc3N8a2V5cmVsZWFzZXx0cmlnZ2VyfCg/OmxlZnR8bWlkZGxlfG5vfHJpZ2h0KV9idXR0b258KD86bGVmdHxtaWRkbGV8cmlnaHQpX3ByZXNzfCg/OmxlZnR8bWlkZGxlfHJpZ2h0KV9yZWxlYXNlfG1vdXNlXyg/OmVudGVyfGxlYXZlfHdoZWVsX2Rvd258d2hlZWxfdXApfGdsb2JhbF8oPzpsZWZ0fG1pZGRsZXxyaWdodClfYnV0dG9ufGdsb2JhbF8oPzpsZWZ0fG1pZGRsZXxyaWdodClfcHJlc3N8Z2xvYmFsXyg/OmxlZnR8bWlkZGxlfHJpZ2h0KV9yZWxlYXNlfGpveXN0aWNrKD86MXwyKV8oPzpidXR0b24xfGJ1dHRvbjJ8YnV0dG9uM3xidXR0b240fGJ1dHRvbjV8YnV0dG9uNnxidXR0b243fGJ1dHRvbjh8ZG93bnxsZWZ0fHJpZ2h0fHVwKXxvdXRzaWRlfGJvdW5kYXJ5fGdhbWVfc3RhcnR8Z2FtZV9lbmR8cm9vbV9zdGFydHxyb29tX2VuZHxub19tb3JlX2xpdmVzfGFuaW1hdGlvbl9lbmR8ZW5kX29mX3BhdGh8bm9fbW9yZV9oZWFsdGh8dXNlclxkfGd1aXxndWlfYmVnaW58Z3VpX2VuZHxzdGVwXyg/OmJlZ2lufGVuZHxub3JtYWwpKXx2a18oPzphbHR8YW55a2V5fGJhY2tzcGFjZXxjb250cm9sfGRlbGV0ZXxkb3dufGVuZHxlbnRlcnxlc2NhcGV8aG9tZXxpbnNlcnR8bGVmdHxub2tleXxwYWdlZG93bnxwYWdldXB8cGF1c2V8cHJpbnRzY3JlZW58cmV0dXJufHJpZ2h0fHNoaWZ0fHNwYWNlfHRhYnx1cHxmXGR8bnVtcGFkXGR8YWRkfGRlY2ltYWx8ZGl2aWRlfGxhbHR8bGNvbnRyb2x8bHNoaWZ0fG11bHRpcGx5fHJhbHR8cmNvbnRyb2x8cnNoaWZ0fHN1YnRyYWN0KXxhY2hpZXZlbWVudF8oPzpmaWx0ZXJfKD86YWxsX3BsYXllcnN8ZmF2b3JpdGVzX29ubHl8ZnJpZW5kc19vbmx5KXxmcmllbmRzX2luZm98aW5mb3xsZWFkZXJib2FyZF9pbmZvfG91cl9pbmZvfHBpY19sb2FkZWR8c2hvd18oPzphY2hpZXZlbWVudHxiYW5rfGZyaWVuZF9waWNrZXJ8bGVhZGVyYm9hcmR8cHJvZmlsZXxwdXJjaGFzZV9wcm9tcHR8dWkpfHR5cGVfY2hhbGxlbmdlfHR5cGVfc2NvcmVfY2hhbGxlbmdlKXxhc3NldF8oPzpmb250fG9iamVjdHxwYXRofHJvb218c2NyaXB0fHNoYWRlcnxzb3VuZHxzcHJpdGV8dGlsZXN8dGltZWxpbmV8dW5rbm93bil8YXVkaW9fKD86M2R8ZmFsbG9mZl8oPzpleHBvbmVudF9kaXN0YW5jZXxleHBvbmVudF9kaXN0YW5jZV9jbGFtcGVkfGludmVyc2VfZGlzdGFuY2V8aW52ZXJzZV9kaXN0YW5jZV9jbGFtcGVkfGxpbmVhcl9kaXN0YW5jZXxsaW5lYXJfZGlzdGFuY2VfY2xhbXBlZHxub25lKXxtb25vfG5ld19zeXN0ZW18b2xkX3N5c3RlbXxzdGVyZW8pfGJtXyg/OmFkZHxjb21wbGV4fGRlc3RfYWxwaGF8ZGVzdF9jb2xvcnxkZXN0X2NvbG91cnxpbnZfZGVzdF9hbHBoYXxpbnZfZGVzdF9jb2xvcnxpbnZfZGVzdF9jb2xvdXJ8aW52X3NyY19hbHBoYXxpbnZfc3JjX2NvbG9yfGludl9zcmNfY29sb3VyfG1heHxub3JtYWx8b25lfHNyY19hbHBoYXxzcmNfYWxwaGFfc2F0fHNyY19jb2xvcnxzcmNfY29sb3VyfHN1YnRyYWN0fHplcm8pfGJyb3dzZXJfKD86Y2hyb21lfGZpcmVmb3h8aWV8aWVfbW9iaWxlfG5vdF9hX2Jyb3dzZXJ8b3BlcmF8c2FmYXJpfHNhZmFyaV9tb2JpbGV8dGl6ZW58dW5rbm93bnx3aW5kb3dzX3N0b3JlKXxidWZmZXJfKD86Ym9vbHxmMTZ8ZjMyfGY2NHxmYXN0fGZpeGVkfGdlbmVyYWxlcnJvcnxncm93fGludmFsaWR0eXBlfG5ldHdvcmt8b3V0b2Zib3VuZHN8b3V0b2ZzcGFjZXxzMTZ8czMyfHM4fHNlZWtfZW5kfHNlZWtfcmVsYXRpdmV8c2Vla19zdGFydHxzdHJpbmd8dGV4dHx1MTZ8dTMyfHU2NHx1OHx2YnVmZmVyfHdyYXApfGNfKD86YXF1YXxibGFja3xibHVlfGRrZ3JheXxmdWNoc2lhfGdyYXl8Z3JlZW58bGltZXxsdGdyYXl8bWFyb29ufG5hdnl8b2xpdmV8b3JhbmdlfHB1cnBsZXxyZWR8c2lsdmVyfHRlYWx8d2hpdGV8eWVsbG93KXxjbXBmdW5jXyg/OmFsd2F5c3xlcXVhbHxncmVhdGVyfGdyZWF0ZXJlcXVhbHxsZXNzfGxlc3NlcXVhbHxuZXZlcnxub3RlcXVhbCl8Y3JfKD86YXBwc3RhcnR8YXJyb3d8YmVhbXxjcm9zc3xkZWZhdWx0fGRyYWd8aGFuZHBvaW50fGhvdXJnbGFzc3xub25lfHNpemVfYWxsfHNpemVfbmVzd3xzaXplX25zfHNpemVfbndzZXxzaXplX3dlfHVwYXJyb3cpfGN1bGxfKD86Y2xvY2t3aXNlfGNvdW50ZXJjbG9ja3dpc2V8bm9jdWxsaW5nKXxkZXZpY2VfKD86ZW11bGF0b3J8dGFibGV0KXxkZXZpY2VfaW9zXyg/OmlwYWR8aXBhZF9yZXRpbmF8aXBob25lfGlwaG9uZTV8aXBob25lNnxpcGhvbmU2cGx1c3xpcGhvbmVfcmV0aW5hfHVua25vd24pfGRpc3BsYXlfKD86bGFuZHNjYXBlfGxhbmRzY2FwZV9mbGlwcGVkfHBvcnRyYWl0fHBvcnRyYWl0X2ZsaXBwZWQpfGRsbF8oPzpjZGVjbHxjZGVsfHN0ZGNhbGwpfGRzX3R5cGVfKD86Z3JpZHxsaXN0fG1hcHxwcmlvcml0eXxxdWV1ZXxzdGFjayl8ZWZfKD86Y2xvdWR8ZWxsaXBzZXxleHBsb3Npb258ZmlyZXdvcmt8ZmxhcmV8cmFpbnxyaW5nfHNtb2tlfHNtb2tldXB8c25vd3xzcGFya3xzdGFyKXxmYV8oPzphcmNoaXZlfGJvdHRvbXxjZW50ZXJ8ZGlyZWN0b3J5fGhpZGRlbnxsZWZ0fG1pZGRsZXxyZWFkb25seXxyaWdodHxzeXNmaWxlfHRvcHx2b2x1bWVpZCl8ZmJfbG9naW5fKD86ZGVmYXVsdHxmYWxsYmFja190b193ZWJ2aWV3fGZvcmNpbmdfc2FmYXJpfGZvcmNpbmdfd2Vidmlld3xub19mYWxsYmFja190b193ZWJ2aWV3fHVzZV9zeXN0ZW1fYWNjb3VudCl8aWFwXyg/OmF2YWlsYWJsZXxjYW5jZWxlZHxldl9jb25zdW1lfGV2X3Byb2R1Y3R8ZXZfcHVyY2hhc2V8ZXZfcmVzdG9yZXxldl9zdG9yZWxvYWR8ZmFpbGVkfHB1cmNoYXNlZHxyZWZ1bmRlZHxzdGF0dXNfYXZhaWxhYmxlfHN0YXR1c19sb2FkaW5nfHN0YXR1c19wcm9jZXNzaW5nfHN0YXR1c19yZXN0b3Jpbmd8c3RhdHVzX3VuYXZhaWxhYmxlfHN0YXR1c191bmluaXRpYWxpc2VkfHN0b3JlbG9hZF9mYWlsZWR8c3RvcmVsb2FkX29rfHVuYXZhaWxhYmxlKXxsZWFkZXJib2FyZF90eXBlXyg/Om51bWJlcnx0aW1lX21pbnNfc2Vjcyl8bGlnaHR0eXBlXyg/OmRpcnxwb2ludCl8bWF0cml4Xyg/OnByb2plY3Rpb258dmlld3x3b3JsZCl8bWJfKD86YW55fGxlZnR8bWlkZGxlfG5vbmV8cmlnaHQpfG5ldHdvcmtfKD86Y29uZmlnXyg/OmNvbm5lY3RfdGltZW91dHxkaXNhYmxlX3JlbGlhYmxlX3VkcHxlbmFibGVfcmVsaWFibGVfdWRwfHVzZV9ub25fYmxvY2tpbmdfc29ja2V0KXxzb2NrZXRfKD86Ymx1ZXRvb3RofHRjcHx1ZHApfHR5cGVfKD86Y29ubmVjdHxkYXRhfGRpc2Nvbm5lY3R8bm9uX2Jsb2NraW5nX2Nvbm5lY3QpKXxvZl9jaGFsbGVuZ2VfKD86bG9zZXx0aWV8d2luKXxvc18oPzphbmRyb2lkfGlvc3xsaW51eHxtYWNvc3h8cHMzfHBzNHxwc3ZpdGF8dW5rbm93bnx1d3B8d2luMzJ8d2luOG5hdGl2ZXx3aW5kb3dzfHdpbnBob25lfHhib3hvbmUpfHBoeV9kZWJ1Z19yZW5kZXJfKD86YWFiYnxjb2xsaXNpb25fcGFpcnN8Y29tc3xjb3JlX3NoYXBlc3xqb2ludHN8b2JifHNoYXBlcyl8cGh5X2pvaW50Xyg/OmFuY2hvcl8xX3h8YW5jaG9yXzFfeXxhbmNob3JfMl94fGFuY2hvcl8yX3l8YW5nbGV8YW5nbGVfbGltaXRzfGRhbXBpbmdfcmF0aW98ZnJlcXVlbmN5fGxlbmd0aF8xfGxlbmd0aF8yfGxvd2VyX2FuZ2xlX2xpbWl0fG1heF9mb3JjZXxtYXhfbGVuZ3RofG1heF9tb3Rvcl9mb3JjZXxtYXhfbW90b3JfdG9ycXVlfG1heF90b3JxdWV8bW90b3JfZm9yY2V8bW90b3Jfc3BlZWR8bW90b3JfdG9ycXVlfHJlYWN0aW9uX2ZvcmNlX3h8cmVhY3Rpb25fZm9yY2VfeXxyZWFjdGlvbl90b3JxdWV8c3BlZWR8dHJhbnNsYXRpb258dXBwZXJfYW5nbGVfbGltaXQpfHBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfKD86Y2F0ZWdvcnl8Y29sb3J8Y29sb3VyfHBvc2l0aW9ufHR5cGVmbGFnc3x2ZWxvY2l0eSl8cGh5X3BhcnRpY2xlX2ZsYWdfKD86Y29sb3JtaXhpbmd8Y29sb3VybWl4aW5nfGVsYXN0aWN8cG93ZGVyfHNwcmluZ3x0ZW5zaWxlfHZpc2NvdXN8d2FsbHx3YXRlcnx6b21iaWUpfHBoeV9wYXJ0aWNsZV9ncm91cF9mbGFnXyg/OnJpZ2lkfHNvbGlkKXxwcl8oPzpsaW5lbGlzdHxsaW5lc3RyaXB8cG9pbnRsaXN0fHRyaWFuZ2xlZmFufHRyaWFuZ2xlbGlzdHx0cmlhbmdsZXN0cmlwKXxwc18oPzpkaXN0cnxzaGFwZSlfKD86ZGlhbW9uZHxlbGxpcHNlfGdhdXNzaWFufGludmdhdXNzaWFufGxpbmV8bGluZWFyfHJlY3RhbmdsZSl8cHRfc2hhcGVfKD86Y2lyY2xlfGNsb3VkfGRpc2t8ZXhwbG9zaW9ufGZsYXJlfGxpbmV8cGl4ZWx8cmluZ3xzbW9rZXxzbm93fHNwYXJrfHNwaGVyZXxzcXVhcmV8c3Rhcil8dHlfKD86cmVhbHxzdHJpbmcpfGdwXyg/OmZhY2VcZHxheGlzbGh8YXhpc2x2fGF4aXNyaHxheGlzcnZ8cGFkZHxwYWRsfHBhZHJ8cGFkdXxzZWxlY3R8c2hvdWxkZXJsfHNob3VsZGVybGJ8c2hvdWxkZXJyfHNob3VsZGVycmJ8c3RhcnR8c3RpY2tsfHN0aWNrcil8bGJfZGlzcF8oPzpub25lfG51bWVyaWN8dGltZV9tc3x0aW1lX3NlYyl8bGJfc29ydF8oPzphc2NlbmRpbmd8ZGVzY2VuZGluZ3xub25lKXxvdl8oPzphY2hpZXZlbWVudHN8Y29tbXVuaXR5fGZyaWVuZHN8Z2FtZWdyb3VwfHBsYXllcnN8c2V0dGluZ3MpfHVnY18oPzpmaWxldHlwZV8oPzpjb21tdW5pdHl8bWljcm90cmFucyl8bGlzdF8oPzpGYXZvcml0ZWR8Rm9sbG93ZWR8UHVibGlzaGVkfFN1YnNjcmliZWR8VXNlZE9yUGxheWVkfFZvdGVkRG93bnxWb3RlZE9ufFZvdGVkVXB8V2lsbFZvdGVMYXRlcil8bWF0Y2hfKD86QWxsR3VpZGVzfEFydHdvcmt8Q29sbGVjdGlvbnN8Q29udHJvbGxlckJpbmRpbmdzfEludGVncmF0ZWRHdWlkZXN8SXRlbXN8SXRlbXNfTXR4fEl0ZW1zX1JlYWR5VG9Vc2V8U2NyZWVuc2hvdHN8VXNhYmxlSW5HYW1lfFZpZGVvc3xXZWJHdWlkZXMpfHF1ZXJ5Xyg/OkFjY2VwdGVkRm9yR2FtZVJhbmtlZEJ5QWNjZXB0YW5jZURhdGV8Q3JlYXRlZEJ5RnJpZW5kc1JhbmtlZEJ5UHVibGljYXRpb25EYXRlfEZhdm9yaXRlZEJ5RnJpZW5kc1JhbmtlZEJ5UHVibGljYXRpb25EYXRlfE5vdFlldFJhdGVkKXxxdWVyeV9SYW5rZWRCeSg/Ok51bVRpbWVzUmVwb3J0ZWR8UHVibGljYXRpb25EYXRlfFRleHRTZWFyY2h8VG90YWxWb3Rlc0FzY3xUcmVuZHxWb3RlfFZvdGVzVXApfHJlc3VsdF9zdWNjZXNzfHNvcnRvcmRlcl9DcmVhdGlvbk9yZGVyKD86QXNjfERlc2MpfHNvcnRvcmRlcl8oPzpGb3JNb2RlcmF0aW9ufExhc3RVcGRhdGVkRGVzY3xTdWJzY3JpcHRpb25EYXRlRGVzY3xUaXRsZUFzY3xWb3RlU2NvcmVEZXNjKXx2aXNpYmlsaXR5Xyg/OmZyaWVuZHNfb25seXxwcml2YXRlfHB1YmxpYykpfHZlcnRleF91c2FnZV8oPzpiaW5vcm1hbHxibGVuZGluZGljZXN8YmxlbmR3ZWlnaHR8Y29sb3J8Y29sb3VyfGRlcHRofGZvZ3xub3JtYWx8cG9zaXRpb258cHNpemV8c2FtcGxlfHRhbmdlbnR8dGV4Y29vcmR8dGV4dGNvb3JkKXx2ZXJ0ZXhfdHlwZV8oPzpmbG9hdFxkfGNvbG9yfGNvbG91cnx1Ynl0ZTQpfGlucHV0X3R5cGV8bGF5ZXJlbGVtZW50dHlwZV8oPzpiYWNrZ3JvdW5kfGluc3RhbmNlfG9sZHRpbGVtYXB8cGFydGljbGVzeXN0ZW18c3ByaXRlfHRpbGV8dGlsZW1hcHx1bmRlZmluZWQpfHNlXyg/OmNob3J1c3xjb21wcmVzc29yfGVjaG98ZXF1YWxpemVyfGZsYW5nZXJ8Z2FyZ2xlfG5vbmV8cmV2ZXJiKXx0ZXh0X3R5cGV8dGlsZV8oPzpmbGlwfGluZGV4X21hc2t8bWlycm9yfHJvdGF0ZSl8KD86b2JqfHJtfHNjcnxzcHIpXHcrKVxiLyx2YXJpYWJsZTovXGIoPzphbGFybXxhcHBsaWNhdGlvbl9zdXJmYWNlfGFzeW5jX2xvYWR8YmFja2dyb3VuZF8oPzphbHBoYXxibGVuZHxjb2xvcnxjb2xvdXJ8Zm9yZWdyb3VuZHxoZWlnaHR8aHNwZWVkfGh0aWxlZHxpbmRleHxzaG93Y29sb3J8c2hvd2NvbG91cnx2aXNpYmxlfHZzcGVlZHx2dGlsZWR8d2lkdGh8eHx4c2NhbGV8eXx5c2NhbGUpfGJib3hfKD86Ym90dG9tfGxlZnR8cmlnaHR8dG9wKXxicm93c2VyXyg/OmhlaWdodHx3aWR0aCl8Y2FwdGlvbl8oPzpoZWFsdGh8bGl2ZXN8c2NvcmUpfGN1cnJlbnRfKD86ZGF5fGhvdXJ8bWludXRlfG1vbnRofHNlY29uZHx0aW1lfHdlZWtkYXl8eWVhcil8Y3Vyc29yX3Nwcml0ZXxkZWJ1Z19tb2RlfGRlbHRhX3RpbWV8ZGlyZWN0aW9ufGRpc3BsYXlfYWF8ZXJyb3JfKD86bGFzdHxvY2N1cnJlZCl8ZXZlbnRfKD86YWN0aW9ufG51bWJlcnxvYmplY3R8dHlwZSl8ZnBzfGZwc19yZWFsfGZyaWN0aW9ufGdhbWVfKD86ZGlzcGxheXxwcm9qZWN0fHNhdmUpXyg/OmlkfG5hbWUpfGdhbWVtYWtlcl8oPzpwcm98cmVnaXN0ZXJlZHx2ZXJzaW9uKXxncmF2aXR5fGdyYXZpdHlfZGlyZWN0aW9ufCg/Omh8dilzcGVlZHxoZWFsdGh8aWFwX2RhdGF8aWR8aW1hZ2VfKD86YWxwaGF8YW5nbGV8YmxlbmR8ZGVwdGh8aW5kZXh8bnVtYmVyfHNwZWVkfHhzY2FsZXx5c2NhbGUpfGluc3RhbmNlXyg/OmNvdW50fGlkKXxrZXlib2FyZF8oPzprZXl8bGFzdGNoYXJ8bGFzdGtleXxzdHJpbmcpfGxheWVyfGxpdmVzfG1hc2tfaW5kZXh8bW91c2VfKD86YnV0dG9ufGxhc3RidXR0b258eHx5KXxvYmplY3RfaW5kZXh8b3NfKD86YnJvd3NlcnxkZXZpY2V8dHlwZXx2ZXJzaW9uKXxwYXRoXyg/OmVuZGFjdGlvbnxpbmRleHxvcmllbnRhdGlvbnxwb3NpdGlvbnxwb3NpdGlvbnByZXZpb3VzfHNjYWxlfHNwZWVkKXxwZXJzaXN0ZW50fHBoeV8oPzpyb3RhdGlvbnwoPzpjb2xfbm9ybWFsfGNvbGxpc2lvbnxjb218bGluZWFyX3ZlbG9jaXR5fHBvc2l0aW9ufHNwZWVkKV8oPzp4fHkpfGFuZ3VsYXJfKD86ZGFtcGluZ3x2ZWxvY2l0eSl8cG9zaXRpb25fKD86eHx5KXByZXZpb3VzfHNwZWVkfGxpbmVhcl9kYW1waW5nfGJ1bGxldHxmaXhlZF9yb3RhdGlvbnxhY3RpdmV8bWFzc3xpbmVydGlhfGR5bmFtaWN8a2luZW1hdGljfHNsZWVwaW5nfGNvbGxpc2lvbl9wb2ludHMpfHBvaW50ZXJfKD86aW52YWxpZHxudWxsKXxyb29tfHJvb21fKD86Y2FwdGlvbnxmaXJzdHxoZWlnaHR8bGFzdHxwZXJzaXN0ZW50fHNwZWVkfHdpZHRoKXxzY29yZXxzZWN1cmVfbW9kZXxzaG93Xyg/OmhlYWx0aHxsaXZlc3xzY29yZSl8c29saWR8c3BlZWR8c3ByaXRlXyg/OmhlaWdodHxpbmRleHx3aWR0aHx4b2Zmc2V0fHlvZmZzZXQpfHRlbXBfZGlyZWN0b3J5fHRpbWVsaW5lXyg/OmluZGV4fGxvb3B8cG9zaXRpb258cnVubmluZ3xzcGVlZCl8dHJhbnNpdGlvbl8oPzpjb2xvcnxraW5kfHN0ZXBzKXx1bmRlZmluZWR8dmlld18oPzphbmdsZXxjdXJyZW50fGVuYWJsZWR8KD86aHx2KSg/OmJvcmRlcnxzcGVlZCl8KD86aHx3fHh8eSlwb3J0fCg/Omh8d3x4fHkpdmlld3xvYmplY3R8c3VyZmFjZV9pZHx2aXNpYmxlKXx2aXNpYmxlfHdlYmdsX2VuYWJsZWR8d29ya2luZ19kaXJlY3Rvcnl8KD86eHx5KSg/OnByZXZpb3VzfHN0YXJ0KXx4fHl8YXJndW1lbnQoPzpfcmVsaXRpdmV8X2NvdW50fFxkKXxhcmd1bWVudHxnbG9iYWx8bG9jYWx8b3RoZXJ8c2VsZilcYi99KX1yZXR1cm4gTXB9dmFyIFVwLEVBO2Z1bmN0aW9uIF9VKCl7aWYoRUEpcmV0dXJuIFVwO0VBPTEsVXA9ZSxlLmRpc3BsYXlOYW1lPSJnbiIsZS5hbGlhc2VzPVsiZ25pIl07ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5nbj17Y29tbWVudDp7cGF0dGVybjovIy4qLyxncmVlZHk6ITB9LCJzdHJpbmctbGl0ZXJhbCI6e3BhdHRlcm46LyhefFteXFwiXSkiKD86W15cclxuIlxcXXxcXC4pKiIvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKilcJCg/Olx7W1xzXFNdKj9cfXxbYS16QS1aX11cdyp8MHhbYS1mQS1GMC05XXsyfSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntudW1iZXI6L15cJDB4W1xzXFNdezJ9JC8sdmFyaWFibGU6L15cJFx3KyQvLCJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXlwkXHt8XH0kLyxhbGlhczoicHVuY3R1YXRpb24ifSxleHByZXNzaW9uOntwYXR0ZXJuOi9bXHNcU10rLyxpbnNpZGU6bnVsbH19fSxzdHJpbmc6L1tcc1xTXSsvfX0sa2V5d29yZDovXGIoPzplbHNlfGlmKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLCJidWlsdGluLWZ1bmN0aW9uIjp7cGF0dGVybjovXGIoPzphc3NlcnR8ZGVmaW5lZHxmb3JlYWNofGltcG9ydHxwb29sfHByaW50fHRlbXBsYXRlfHRvb2x8dG9vbGNoYWluKSg/PVxzKlwoKS9pLGFsaWFzOiJrZXl3b3JkIn0sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksY29uc3RhbnQ6L1xiKD86Y3VycmVudF9jcHV8Y3VycmVudF9vc3xjdXJyZW50X3Rvb2xjaGFpbnxkZWZhdWx0X3Rvb2xjaGFpbnxob3N0X2NwdXxob3N0X29zfHJvb3RfYnVpbGRfZGlyfHJvb3RfZ2VuX2Rpcnxyb290X291dF9kaXJ8dGFyZ2V0X2NwdXx0YXJnZXRfZ2VuX2Rpcnx0YXJnZXRfb3N8dGFyZ2V0X291dF9kaXIpXGIvLG51bWJlcjovLT9cYlxkK1xiLyxvcGVyYXRvcjovWy0rIT08Pl09P3wmJnxcfFx8LyxwdW5jdHVhdGlvbjovWygpe31bXF0sLl0vfSxuLmxhbmd1YWdlcy5nblsic3RyaW5nLWxpdGVyYWwiXS5pbnNpZGUuaW50ZXJwb2xhdGlvbi5pbnNpZGUuZXhwcmVzc2lvbi5pbnNpZGU9bi5sYW5ndWFnZXMuZ24sbi5sYW5ndWFnZXMuZ25pPW4ubGFuZ3VhZ2VzLmdufXJldHVybiBVcH12YXIgRnAsU0E7ZnVuY3Rpb24gUlUoKXtpZihTQSlyZXR1cm4gRnA7U0E9MSxGcD1lLGUuZGlzcGxheU5hbWU9ImdvTW9kdWxlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlc1siZ28tbW9kIl09bi5sYW5ndWFnZXNbImdvLW1vZHVsZSJdPXtjb21tZW50OntwYXR0ZXJuOi9cL1wvLiovLGdyZWVkeTohMH0sdmVyc2lvbjp7cGF0dGVybjovKF58W1xzKClbXF0sXSl2XGQrXC5cZCtcLlxkKyg/OlsrLV1bLSsuXHddKik/KD8hW15ccygpW1xdLF0pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIifSwiZ28tdmVyc2lvbiI6e3BhdHRlcm46LygoPzpefFxzKWdvXHMrKVxkKyg/OlwuXGQrKXsxLDJ9Lyxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIifSxrZXl3b3JkOntwYXR0ZXJuOi9eKFsgXHRdKikoPzpleGNsdWRlfGdvfG1vZHVsZXxyZXBsYWNlfHJlcXVpcmV8cmV0cmFjdClcYi9tLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOi89Pi8scHVuY3R1YXRpb246L1soKVtcXSxdL319cmV0dXJuIEZwfXZhciBCcCx2QTtmdW5jdGlvbiBOVSgpe2lmKHZBKXJldHVybiBCcDt2QT0xLEJwPWUsZS5kaXNwbGF5TmFtZT0iZ28iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmdvPW4ubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtzdHJpbmc6e3BhdHRlcm46LyhefFteXFxdKSIoPzpcXC58W14iXFxcclxuXSkqInxgW15gXSpgLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzpicmVha3xjYXNlfGNoYW58Y29uc3R8Y29udGludWV8ZGVmYXVsdHxkZWZlcnxlbHNlfGZhbGx0aHJvdWdofGZvcnxmdW5jfGdvKD86dG8pP3xpZnxpbXBvcnR8aW50ZXJmYWNlfG1hcHxwYWNrYWdlfHJhbmdlfHJldHVybnxzZWxlY3R8c3RydWN0fHN3aXRjaHx0eXBlfHZhcilcYi8sYm9vbGVhbjovXGIoPzpffGZhbHNlfGlvdGF8bmlsfHRydWUpXGIvLG51bWJlcjpbL1xiMCg/OmJbMDFfXSt8b1swLTdfXSspaT9cYi9pLC9cYjB4KD86W2EtZlxkX10rKD86XC5bYS1mXGRfXSopP3xcLlthLWZcZF9dKykoPzpwWystXT9cZCsoPzpfXGQrKSopP2k/KD8hXHcpL2ksLyg/OlxiXGRbXGRfXSooPzpcLltcZF9dKik/fFxCXC5cZFtcZF9dKikoPzplWystXT9bXGRfXSspP2k/KD8hXHcpL2ldLG9wZXJhdG9yOi9bKlwvJV4hPV09P3xcK1s9K10/fC1bPS1dP3xcfFs9fF0/fCYoPzo9fCZ8XF49Pyk/fD4oPzo+PT98PSk/fDwoPzo8PT98PXwtKT98Oj18XC5cLlwuLyxidWlsdGluOi9cYig/OmFwcGVuZHxib29sfGJ5dGV8Y2FwfGNsb3NlfGNvbXBsZXh8Y29tcGxleCg/OjY0fDEyOCl8Y29weXxkZWxldGV8ZXJyb3J8ZmxvYXQoPzozMnw2NCl8dT9pbnQoPzo4fDE2fDMyfDY0KT98aW1hZ3xsZW58bWFrZXxuZXd8cGFuaWN8cHJpbnQoPzpsbik/fHJlYWx8cmVjb3ZlcnxydW5lfHN0cmluZ3x1aW50cHRyKVxiL30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZ28iLCJzdHJpbmciLHtjaGFyOntwYXR0ZXJuOi8nKD86XFwufFteJ1xcXHJcbl0pezAsMTB9Jy8sZ3JlZWR5OiEwfX0pLGRlbGV0ZSBuLmxhbmd1YWdlcy5nb1siY2xhc3MtbmFtZSJdfXJldHVybiBCcH12YXIganAsVEE7ZnVuY3Rpb24gd1UoKXtpZihUQSlyZXR1cm4ganA7VEE9MSxqcD1lLGUuZGlzcGxheU5hbWU9ImdyYXBocWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmdyYXBocWw9e2NvbW1lbnQ6LyMuKi8sZGVzY3JpcHRpb246e3BhdHRlcm46Lyg/OiIiIig/OlteIl18KD8hIiIiKSIpKiIiInwiKD86XFwufFteXFwiXHJcbl0pKiIpKD89XHMqW2Etel9dKS9pLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIixpbnNpZGU6eyJsYW5ndWFnZS1tYXJrZG93biI6e3BhdHRlcm46LyheIig/OiIiKT8pKD8hXDEpW1xzXFNdKyg/PVwxJCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm4ubGFuZ3VhZ2VzLm1hcmtkb3dufX19LHN0cmluZzp7cGF0dGVybjovIiIiKD86W14iXXwoPyEiIiIpIikqIiIifCIoPzpcXC58W15cXCJcclxuXSkqIi8sZ3JlZWR5OiEwfSxudW1iZXI6Lyg/OlxCLXxcYilcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT9cYi9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sdmFyaWFibGU6L1wkW2Etel9dXHcqL2ksZGlyZWN0aXZlOntwYXR0ZXJuOi9AW2Etel9dXHcqL2ksYWxpYXM6ImZ1bmN0aW9uIn0sImF0dHItbmFtZSI6e3BhdHRlcm46L1xiW2Etel9dXHcqKD89XHMqKD86XCgoPzpbXigpIl18Iig/OlxcLnxbXlxcIlxyXG5dKSoiKSpcKSk/OikvaSxncmVlZHk6ITB9LCJhdG9tLWlucHV0Ijp7cGF0dGVybjovXGJbQS1aXVx3KklucHV0XGIvLGFsaWFzOiJjbGFzcy1uYW1lIn0sc2NhbGFyOi9cYig/OkJvb2xlYW58RmxvYXR8SUR8SW50fFN0cmluZylcYi8sY29uc3RhbnQ6L1xiW0EtWl1bQS1aX1xkXSpcYi8sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXGIoPzplbnVtfGltcGxlbWVudHN8aW50ZXJmYWNlfG9ufHNjYWxhcnx0eXBlfHVuaW9uKVxzK3wmXHMqfDpccyp8XFspW0EtWl9dXHcqLyxsb29rYmVoaW5kOiEwfSxmcmFnbWVudDp7cGF0dGVybjovKFxiZnJhZ21lbnRccyt8XC57M31ccyooPyFvblxiKSlbYS16QS1aX11cdyovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sImRlZmluaXRpb24tbXV0YXRpb24iOntwYXR0ZXJuOi8oXGJtdXRhdGlvblxzKylbYS16QS1aX11cdyovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sImRlZmluaXRpb24tcXVlcnkiOntwYXR0ZXJuOi8oXGJxdWVyeVxzKylbYS16QS1aX11cdyovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sa2V5d29yZDovXGIoPzpkaXJlY3RpdmV8ZW51bXxleHRlbmR8ZnJhZ21lbnR8aW1wbGVtZW50c3xpbnB1dHxpbnRlcmZhY2V8bXV0YXRpb258b258cXVlcnl8cmVwZWF0YWJsZXxzY2FsYXJ8c2NoZW1hfHN1YnNjcmlwdGlvbnx0eXBlfHVuaW9uKVxiLyxvcGVyYXRvcjovWyE9fCZdfFwuezN9LywicHJvcGVydHktcXVlcnkiOi9cdysoPz1ccypcKCkvLG9iamVjdDovXHcrKD89XHMqXHspLyxwdW5jdHVhdGlvbjovWyEoKXt9XFtcXTo9LF0vLHByb3BlcnR5Oi9cdysvfSxuLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKGkpe2lmKGkubGFuZ3VhZ2UhPT0iZ3JhcGhxbCIpcmV0dXJuO3ZhciBsPWkudG9rZW5zLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gdHlwZW9mIHghPSJzdHJpbmciJiZ4LnR5cGUhPT0iY29tbWVudCImJngudHlwZSE9PSJzY2FsYXIifSksdT0wO2Z1bmN0aW9uIGMoeCl7cmV0dXJuIGxbdSt4XX1mdW5jdGlvbiBkKHgsTil7Tj1OfHwwO2Zvcih2YXIgaz0wO2s8eC5sZW5ndGg7aysrKXt2YXIgTD1jKGsrTik7aWYoIUx8fEwudHlwZSE9PXhba10pcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gZih4LE4pe2Zvcih2YXIgaz0xLEw9dTtMPGwubGVuZ3RoO0wrKyl7dmFyIEY9bFtMXSxSPUYuY29udGVudDtpZihGLnR5cGU9PT0icHVuY3R1YXRpb24iJiZ0eXBlb2YgUj09InN0cmluZyIpe2lmKHgudGVzdChSKSlrKys7ZWxzZSBpZihOLnRlc3QoUikmJihrLS0saz09PTApKXJldHVybiBMfX1yZXR1cm4tMX1mdW5jdGlvbiBtKHgsTil7dmFyIGs9eC5hbGlhcztrP0FycmF5LmlzQXJyYXkoayl8fCh4LmFsaWFzPWs9W2tdKTp4LmFsaWFzPWs9W10say5wdXNoKE4pfWZvcig7dTxsLmxlbmd0aDspe3ZhciBiPWxbdSsrXTtpZihiLnR5cGU9PT0ia2V5d29yZCImJmIuY29udGVudD09PSJtdXRhdGlvbiIpe3ZhciBoPVtdO2lmKGQoWyJkZWZpbml0aW9uLW11dGF0aW9uIiwicHVuY3R1YXRpb24iXSkmJmMoMSkuY29udGVudD09PSIoIil7dSs9Mjt2YXIgUz1mKC9eXCgkLywvXlwpJC8pO2lmKFM9PT0tMSljb250aW51ZTtmb3IoO3U8Uzt1Kyspe3ZhciBFPWMoMCk7RS50eXBlPT09InZhcmlhYmxlIiYmKG0oRSwidmFyaWFibGUtaW5wdXQiKSxoLnB1c2goRS5jb250ZW50KSl9dT1TKzF9aWYoZChbInB1bmN0dWF0aW9uIiwicHJvcGVydHktcXVlcnkiXSkmJmMoMCkuY29udGVudD09PSJ7IiYmKHUrKyxtKGMoMCksInByb3BlcnR5LW11dGF0aW9uIiksaC5sZW5ndGg+MCkpe3ZhciBfPWYoL15ceyQvLC9eXH0kLyk7aWYoXz09PS0xKWNvbnRpbnVlO2Zvcih2YXIgVD11O1Q8XztUKyspe3ZhciBDPWxbVF07Qy50eXBlPT09InZhcmlhYmxlIiYmaC5pbmRleE9mKEMuY29udGVudCk+PTAmJm0oQywidmFyaWFibGUtaW5wdXQiKX19fX19KX1yZXR1cm4ganB9dmFyIHpwLHhBO2Z1bmN0aW9uIGtVKCl7aWYoeEEpcmV0dXJuIHpwO3hBPTEsenA9ZSxlLmRpc3BsYXlOYW1lPSJncm9vdnkiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmdyb292eT1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7c3RyaW5nOlt7cGF0dGVybjovKCIiInwnJycpKD86W15cXF18XFxbXHNcU10pKj9cMXxcJFwvKD86W14vJF18XCQoPzpbLyRdfCg/IVsvJF0pKXxcLyg/IVwkKSkqXC9cJC8sZ3JlZWR5OiEwfSx7cGF0dGVybjovKFsiJy9dKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITB9XSxrZXl3b3JkOi9cYig/OmFic3RyYWN0fGFzfGFzc2VydHxib29sZWFufGJyZWFrfGJ5dGV8Y2FzZXxjYXRjaHxjaGFyfGNsYXNzfGNvbnN0fGNvbnRpbnVlfGRlZnxkZWZhdWx0fGRvfGRvdWJsZXxlbHNlfGVudW18ZXh0ZW5kc3xmaW5hbHxmaW5hbGx5fGZsb2F0fGZvcnxnb3RvfGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGluc3RhbmNlb2Z8aW50fGludGVyZmFjZXxsb25nfG5hdGl2ZXxuZXd8cGFja2FnZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmV0dXJufHNob3J0fHN0YXRpY3xzdHJpY3RmcHxzdXBlcnxzd2l0Y2h8c3luY2hyb25pemVkfHRoaXN8dGhyb3d8dGhyb3dzfHRyYWl0fHRyYW5zaWVudHx0cnl8dm9pZHx2b2xhdGlsZXx3aGlsZSlcYi8sbnVtYmVyOi9cYig/OjBiWzAxX10rfDB4W1xkYS1mX10rKD86XC5bXGRhLWZfcFwtXSspP3xbXGRfXSsoPzpcLltcZF9dKyk/KD86ZVsrLV0/XGQrKT8pW2dsaWRmXT9cYi9pLG9wZXJhdG9yOntwYXR0ZXJuOi8oXnxbXi5dKSg/On58PT0/fj98XD9bLjpdP3xcKig/OlsuPV18XCo9Pyk/fFwuW0AmXXxcLlwuPHxcLlwuKD8hXC4pfC1bLT0+XT98XCtbKz1dP3whPT98PCg/Ojw9P3w9Pj8pP3w+KD86Pj4/PT98PSk/fCZbJj1dP3xcfFt8PV0/fFwvPT98XF49P3wlPT8pLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovXC4rfFt7fVtcXTsoKSw6JF0vfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJncm9vdnkiLCJzdHJpbmciLHtzaGViYW5nOntwYXR0ZXJuOi8jIS4rLyxhbGlhczoiY29tbWVudCJ9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJncm9vdnkiLCJwdW5jdHVhdGlvbiIseyJzcG9jay1ibG9jayI6L1xiKD86YW5kfGNsZWFudXB8ZXhwZWN0fGdpdmVufHNldHVwfHRoZW58d2hlbnx3aGVyZSk6L30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZ3Jvb3Z5IiwiZnVuY3Rpb24iLHthbm5vdGF0aW9uOntwYXR0ZXJuOi8oXnxbXi5dKUBcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn19KSxuLmhvb2tzLmFkZCgid3JhcCIsZnVuY3Rpb24oYSl7aWYoYS5sYW5ndWFnZT09PSJncm9vdnkiJiZhLnR5cGU9PT0ic3RyaW5nIil7dmFyIGk9YS5jb250ZW50LnZhbHVlWzBdO2lmKGkhPSInIil7dmFyIGw9LyhbXlxcXSkoPzpcJCg/Olx7Lio/XH18W1x3Ll0rKSkvO2k9PT0iJCImJihsPS8oW15cJF0pKD86XCQoPzpcey4qP1x9fFtcdy5dKykpLyksYS5jb250ZW50LnZhbHVlPWEuY29udGVudC52YWx1ZS5yZXBsYWNlKC8mbHQ7L2csIjwiKS5yZXBsYWNlKC8mYW1wOy9nLCImIiksYS5jb250ZW50PW4uaGlnaGxpZ2h0KGEuY29udGVudC52YWx1ZSx7ZXhwcmVzc2lvbjp7cGF0dGVybjpsLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm4ubGFuZ3VhZ2VzLmdyb292eX19KSxhLmNsYXNzZXMucHVzaChpPT09Ii8iPyJyZWdleCI6ImdzdHJpbmciKX19fSl9cmV0dXJuIHpwfXZhciBxcCxBQTtmdW5jdGlvbiBDVSgpe2lmKEFBKXJldHVybiBxcDtBQT0xO3ZhciBlPVZsKCk7cXA9bixuLmRpc3BsYXlOYW1lPSJoYW1sIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLChmdW5jdGlvbihpKXtpLmxhbmd1YWdlcy5oYW1sPXsibXVsdGlsaW5lLWNvbW1lbnQiOntwYXR0ZXJuOi8oKD86Xnxccj9cbnxccikoW1x0IF0qKSkoPzpcL3wtIykuKig/Oig/OlxyP1xufFxyKVwyW1x0IF0uKykqLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJjb21tZW50In0sIm11bHRpbGluZS1jb2RlIjpbe3BhdHRlcm46LygoPzpefFxyP1xufFxyKShbXHQgXSopKD86W34tXXxbJiFdPz0pKS4qLFtcdCBdKig/Oig/OlxyP1xufFxyKVwyW1x0IF0uKixbXHQgXSopKig/Oig/OlxyP1xufFxyKVwyW1x0IF0uKykvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmkubGFuZ3VhZ2VzLnJ1Ynl9LHtwYXR0ZXJuOi8oKD86Xnxccj9cbnxccikoW1x0IF0qKSg/Olt+LV18WyYhXT89KSkuKlx8W1x0IF0qKD86KD86XHI/XG58XHIpXDJbXHQgXS4qXHxbXHQgXSopKi8sbG9va2JlaGluZDohMCxpbnNpZGU6aS5sYW5ndWFnZXMucnVieX1dLGZpbHRlcjp7cGF0dGVybjovKCg/Ol58XHI/XG58XHIpKFtcdCBdKikpOltcdy1dKyg/Oig/OlxyP1xufFxyKSg/OlwyW1x0IF0uK3xccyo/KD89XHI/XG58XHIpKSkrLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImZpbHRlci1uYW1lIjp7cGF0dGVybjovXjpbXHctXSsvLGFsaWFzOiJzeW1ib2wifX19LG1hcmt1cDp7cGF0dGVybjovKCg/Ol58XHI/XG58XHIpW1x0IF0qKTwuKy8sbG9va2JlaGluZDohMCxpbnNpZGU6aS5sYW5ndWFnZXMubWFya3VwfSxkb2N0eXBlOntwYXR0ZXJuOi8oKD86Xnxccj9cbnxccilbXHQgXSopISEhKD86IC4rKT8vLGxvb2tiZWhpbmQ6ITB9LHRhZzp7cGF0dGVybjovKCg/Ol58XHI/XG58XHIpW1x0IF0qKVslLiNdW1x3XC0jLl0qW1x3XC1dKD86XChbXildK1wpfFx7KD86XHtbXn1dK1x9fFtee31dKStcfXxcW1teXF1dK1xdKSpbXC88Pl0qLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7YXR0cmlidXRlczpbe3BhdHRlcm46LyhefFteI10pXHsoPzpce1tefV0rXH18W157fV0pK1x9Lyxsb29rYmVoaW5kOiEwLGluc2lkZTppLmxhbmd1YWdlcy5ydWJ5fSx7cGF0dGVybjovXChbXildK1wpLyxpbnNpZGU6eyJhdHRyLXZhbHVlIjp7cGF0dGVybjovKD1ccyopKD86Iig/OlxcLnxbXlxcIlxyXG5dKSoifFteKVxzXSspLyxsb29rYmVoaW5kOiEwfSwiYXR0ci1uYW1lIjovW1x3Oi1dKyg/PVxzKiE/PXxccypbLCldKS8scHVuY3R1YXRpb246L1s9KCksXS99fSx7cGF0dGVybjovXFtbXlxdXStcXS8saW5zaWRlOmkubGFuZ3VhZ2VzLnJ1Ynl9XSxwdW5jdHVhdGlvbjovWzw+XS99fSxjb2RlOntwYXR0ZXJuOi8oKD86Xnxccj9cbnxccilbXHQgXSooPzpbfi1dfFsmIV0/PSkpLisvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmkubGFuZ3VhZ2VzLnJ1Ynl9LGludGVycG9sYXRpb246e3BhdHRlcm46LyNce1tefV0rXH0vLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eI1x7fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0scnVieTp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOmkubGFuZ3VhZ2VzLnJ1Ynl9fX0scHVuY3R1YXRpb246e3BhdHRlcm46LygoPzpefFxyP1xufFxyKVtcdCBdKilbfj1cLSYhXSsvLGxvb2tiZWhpbmQ6ITB9fTtmb3IodmFyIGw9IigoPzpefFxccj9cXG58XFxyKShbXFx0IF0qKSk6e3tmaWx0ZXJfbmFtZX19KD86KD86XFxyP1xcbnxcXHIpKD86XFwyW1xcdCBdLit8XFxzKj8oPz1cXHI/XFxufFxccikpKSsiLHU9WyJjc3MiLHtmaWx0ZXI6ImNvZmZlZSIsbGFuZ3VhZ2U6ImNvZmZlZXNjcmlwdCJ9LCJlcmIiLCJqYXZhc2NyaXB0IiwibGVzcyIsIm1hcmtkb3duIiwicnVieSIsInNjc3MiLCJ0ZXh0aWxlIl0sYz17fSxkPTAsZj11Lmxlbmd0aDtkPGY7ZCsrKXt2YXIgbT11W2RdO209dHlwZW9mIG09PSJzdHJpbmciP3tmaWx0ZXI6bSxsYW5ndWFnZTptfTptLGkubGFuZ3VhZ2VzW20ubGFuZ3VhZ2VdJiYoY1siZmlsdGVyLSIrbS5maWx0ZXJdPXtwYXR0ZXJuOlJlZ0V4cChsLnJlcGxhY2UoInt7ZmlsdGVyX25hbWV9fSIsZnVuY3Rpb24oKXtyZXR1cm4gbS5maWx0ZXJ9KSksbG9va2JlaGluZDohMCxpbnNpZGU6eyJmaWx0ZXItbmFtZSI6e3BhdHRlcm46L146W1x3LV0rLyxhbGlhczoic3ltYm9sIn0sdGV4dDp7cGF0dGVybjovW1xzXFNdKy8sYWxpYXM6W20ubGFuZ3VhZ2UsImxhbmd1YWdlLSIrbS5sYW5ndWFnZV0saW5zaWRlOmkubGFuZ3VhZ2VzW20ubGFuZ3VhZ2VdfX19KX1pLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImhhbWwiLCJmaWx0ZXIiLGMpfSkoYSl9cmV0dXJuIHFwfXZhciBQcCxfQTtmdW5jdGlvbiBJVSgpe2lmKF9BKXJldHVybiBQcDtfQT0xO3ZhciBlPUh0KCk7UHA9bixuLmRpc3BsYXlOYW1lPSJoYW5kbGViYXJzIixuLmFsaWFzZXM9WyJoYnMiXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksKGZ1bmN0aW9uKGkpe2kubGFuZ3VhZ2VzLmhhbmRsZWJhcnM9e2NvbW1lbnQ6L1x7XHshW1xzXFNdKj9cfVx9LyxkZWxpbWl0ZXI6e3BhdHRlcm46L15ce1x7XHs/fFx9XH1cfT8kLyxhbGlhczoicHVuY3R1YXRpb24ifSxzdHJpbmc6LyhbIiddKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxudW1iZXI6L1xiMHhbXGRBLUZhLWZdK1xifCg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OltFZV1bKy1dP1xkKyk/Lyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGJsb2NrOntwYXR0ZXJuOi9eKFxzKig/On5ccyopPylbI1wvXVxTKz8oPz1ccyooPzp+XHMqKT8kfFxzKS8sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LGJyYWNrZXRzOntwYXR0ZXJuOi9cW1teXF1dK1xdLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cW3xcXS8sdmFyaWFibGU6L1tcc1xTXSsvfX0scHVuY3R1YXRpb246L1shIiMlJic6KCkqKywuXC87PD0+QFxbXFxcXV5ge3x9fl0vLHZhcmlhYmxlOi9bXiEiIyUmJygpKissXC87PD0+QFxbXFxcXV5ge3x9flxzXSsvfSxpLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihsKXt2YXIgdT0vXHtce1x7W1xzXFNdKz9cfVx9XH18XHtce1tcc1xTXSs/XH1cfS9nO2kubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdLmJ1aWxkUGxhY2Vob2xkZXJzKGwsImhhbmRsZWJhcnMiLHUpfSksaS5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihsKXtpLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS50b2tlbml6ZVBsYWNlaG9sZGVycyhsLCJoYW5kbGViYXJzIil9KSxpLmxhbmd1YWdlcy5oYnM9aS5sYW5ndWFnZXMuaGFuZGxlYmFyc30pKGEpfXJldHVybiBQcH12YXIgR3AsUkE7ZnVuY3Rpb24gcmIoKXtpZihSQSlyZXR1cm4gR3A7UkE9MSxHcD1lLGUuZGlzcGxheU5hbWU9Imhhc2tlbGwiLGUuYWxpYXNlcz1bImhzIl07ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5oYXNrZWxsPXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXi0hIyQlKis9PyZAfH4uOjw+XlxcXC9dKSg/Oi0tKD86KD89LilbXi0hIyQlKis9PyZAfH4uOjw+XlxcXC9dLip8JCl8XHstW1xzXFNdKj8tXH0pL20sbG9va2JlaGluZDohMH0sY2hhcjp7cGF0dGVybjovJyg/OlteXFwnXXxcXCg/OlthYmZucnR2XFwiJyZdfFxeW0EtWkBbXF1eX118QUNLfEJFTHxCU3xDQU58Q1J8REMxfERDMnxEQzN8REM0fERFTHxETEV8RU18RU5RfEVPVHxFU0N8RVRCfEVUWHxGRnxGU3xHU3xIVHxMRnxOQUt8TlVMfFJTfFNJfFNPfFNPSHxTUHxTVFh8U1VCfFNZTnxVU3xWVHxcZCt8b1swLTddK3x4WzAtOWEtZkEtRl0rKSknLyxhbGlhczoic3RyaW5nIn0sc3RyaW5nOntwYXR0ZXJuOi8iKD86W15cXCJdfFxcKD86XFN8XHMrXFwpKSoiLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86Y2FzZXxjbGFzc3xkYXRhfGRlcml2aW5nfGRvfGVsc2V8aWZ8aW58aW5maXhsfGluZml4cnxpbnN0YW5jZXxsZXR8bW9kdWxlfG5ld3R5cGV8b2Z8cHJpbWl0aXZlfHRoZW58dHlwZXx3aGVyZSlcYi8sImltcG9ydC1zdGF0ZW1lbnQiOntwYXR0ZXJuOi8oXltcdCBdKilpbXBvcnRccysoPzpxdWFsaWZpZWRccyspPyg/OltBLVpdW1x3J10qKSg/OlwuW0EtWl1bXHcnXSopKig/OlxzK2FzXHMrKD86W0EtWl1bXHcnXSopKD86XC5bQS1aXVtcdyddKikqKT8oPzpccytoaWRpbmdcYik/L20sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L1xiKD86YXN8aGlkaW5nfGltcG9ydHxxdWFsaWZpZWQpXGIvLHB1bmN0dWF0aW9uOi9cLi99fSxidWlsdGluOi9cYig/OmFic3xhY29zfGFjb3NofGFsbHxhbmR8YW55fGFwcGVuZEZpbGV8YXBwcm94UmF0aW9uYWx8YXNUeXBlT2Z8YXNpbnxhc2luaHxhdGFufGF0YW4yfGF0YW5ofGJhc2ljSU9SdW58YnJlYWt8Y2F0Y2h8Y2VpbGluZ3xjaHJ8Y29tcGFyZXxjb25jYXR8Y29uY2F0TWFwfGNvbnN0fGNvc3xjb3NofGN1cnJ5fGN5Y2xlfGRlY29kZUZsb2F0fGRlbm9taW5hdG9yfGRpZ2l0VG9JbnR8ZGl2fGRpdk1vZHxkcm9wfGRyb3BXaGlsZXxlaXRoZXJ8ZWxlbXxlbmNvZGVGbG9hdHxlbnVtRnJvbXxlbnVtRnJvbVRoZW58ZW51bUZyb21UaGVuVG98ZW51bUZyb21Ub3xlcnJvcnxldmVufGV4cHxleHBvbmVudHxmYWlsfGZpbHRlcnxmbGlwfGZsb2F0RGlnaXRzfGZsb2F0UmFkaXh8ZmxvYXRSYW5nZXxmbG9vcnxmbWFwfGZvbGRsfGZvbGRsMXxmb2xkcnxmb2xkcjF8ZnJvbURvdWJsZXxmcm9tRW51bXxmcm9tSW50fGZyb21JbnRlZ2VyfGZyb21JbnRlZ3JhbHxmcm9tUmF0aW9uYWx8ZnN0fGdjZHxnZXRDaGFyfGdldENvbnRlbnRzfGdldExpbmV8Z3JvdXB8aGVhZHxpZHxpblJhbmdlfGluZGV4fGluaXR8aW50VG9EaWdpdHxpbnRlcmFjdHxpb0Vycm9yfGlzQWxwaGF8aXNBbHBoYU51bXxpc0FzY2lpfGlzQ29udHJvbHxpc0Rlbm9ybWFsaXplZHxpc0RpZ2l0fGlzSGV4RGlnaXR8aXNJRUVFfGlzSW5maW5pdGV8aXNMb3dlcnxpc05hTnxpc05lZ2F0aXZlWmVyb3xpc09jdERpZ2l0fGlzUHJpbnR8aXNTcGFjZXxpc1VwcGVyfGl0ZXJhdGV8bGFzdHxsY218bGVuZ3RofGxleHxsZXhEaWdpdHN8bGV4TGl0Q2hhcnxsaW5lc3xsb2d8bG9nQmFzZXxsb29rdXB8bWFwfG1hcE18bWFwTV98bWF4fG1heEJvdW5kfG1heGltdW18bWF5YmV8bWlufG1pbkJvdW5kfG1pbmltdW18bW9kfG5lZ2F0ZXxub3R8bm90RWxlbXxudWxsfG51bWVyYXRvcnxvZGR8b3J8b3JkfG90aGVyd2lzZXxwYWNrfHBpfHByZWR8cHJpbUV4aXRXaXRofHByaW50fHByb2R1Y3R8cHJvcGVyRnJhY3Rpb258cHV0Q2hhcnxwdXRTdHJ8cHV0U3RyTG58cXVvdHxxdW90UmVtfHJhbmdlfHJhbmdlU2l6ZXxyZWFkfHJlYWREZWN8cmVhZEZpbGV8cmVhZEZsb2F0fHJlYWRIZXh8cmVhZElPfHJlYWRJbnR8cmVhZExpc3R8cmVhZExpdENoYXJ8cmVhZExufHJlYWRPY3R8cmVhZFBhcmVufHJlYWRTaWduZWR8cmVhZHN8cmVhZHNQcmVjfHJlYWxUb0ZyYWN8cmVjaXB8cmVtfHJlcGVhdHxyZXBsaWNhdGV8cmV0dXJufHJldmVyc2V8cm91bmR8c2NhbGVGbG9hdHxzY2FubHxzY2FubDF8c2NhbnJ8c2NhbnIxfHNlcXxzZXF1ZW5jZXxzZXF1ZW5jZV98c2hvd3xzaG93Q2hhcnxzaG93SW50fHNob3dMaXN0fHNob3dMaXRDaGFyfHNob3dQYXJlbnxzaG93U2lnbmVkfHNob3dTdHJpbmd8c2hvd3N8c2hvd3NQcmVjfHNpZ25pZmljYW5kfHNpZ251bXxzaW58c2luaHxzbmR8c29ydHxzcGFufHNwbGl0QXR8c3FydHxzdWJ0cmFjdHxzdWNjfHN1bXx0YWlsfHRha2V8dGFrZVdoaWxlfHRhbnx0YW5ofHRocmVhZFRvSU9SZXN1bHR8dG9FbnVtfHRvSW50fHRvSW50ZWdlcnx0b0xvd2VyfHRvUmF0aW9uYWx8dG9VcHBlcnx0cnVuY2F0ZXx1bmN1cnJ5fHVuZGVmaW5lZHx1bmxpbmVzfHVudGlsfHVud29yZHN8dW56aXB8dW56aXAzfHVzZXJFcnJvcnx3b3Jkc3x3cml0ZUZpbGV8emlwfHppcDN8emlwV2l0aHx6aXBXaXRoMylcYi8sbnVtYmVyOi9cYig/OlxkKyg/OlwuXGQrKT8oPzplWystXT9cZCspP3wwb1swLTddK3wweFswLTlhLWZdKylcYi9pLG9wZXJhdG9yOlt7cGF0dGVybjovYCg/OltBLVpdW1x3J10qXC4pKltfYS16XVtcdyddKmAvLGdyZWVkeTohMH0se3BhdHRlcm46LyhccylcLig/PVxzKS8sbG9va2JlaGluZDohMH0sL1stISMkJSorPT8mQHx+Ojw+XlxcXC9dWy0hIyQlKis9PyZAfH4uOjw+XlxcXC9dKnxcLlstISMkJSorPT8mQHx+Ljo8Pl5cXFwvXSsvXSxodmFyaWFibGU6e3BhdHRlcm46L1xiKD86W0EtWl1bXHcnXSpcLikqW19hLXpdW1x3J10qLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSxjb25zdGFudDp7cGF0dGVybjovXGIoPzpbQS1aXVtcdyddKlwuKSpbQS1aXVtcdyddKi8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0scHVuY3R1YXRpb246L1t7fVtcXTsoKSwuOl0vfSxuLmxhbmd1YWdlcy5ocz1uLmxhbmd1YWdlcy5oYXNrZWxsfXJldHVybiBHcH12YXIgSHAsTkE7ZnVuY3Rpb24gT1UoKXtpZihOQSlyZXR1cm4gSHA7TkE9MSxIcD1lLGUuZGlzcGxheU5hbWU9ImhheGUiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmhheGU9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse3N0cmluZzp7cGF0dGVybjovIig/OlteIlxcXXxcXFtcc1xTXSkqIi8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOi8oXGIoPzphYnN0cmFjdHxjbGFzc3xlbnVtfGV4dGVuZHN8aW1wbGVtZW50c3xpbnRlcmZhY2V8bmV3fHR5cGVkZWYpXHMrKVtBLVpfXVx3Ki8sbG9va2JlaGluZDohMH0sL1xiW0EtWl1cdyovXSxrZXl3b3JkOi9cYnRoaXNcYnxcYig/OmFic3RyYWN0fGFzfGJyZWFrfGNhc2V8Y2FzdHxjYXRjaHxjbGFzc3xjb250aW51ZXxkZWZhdWx0fGRvfGR5bmFtaWN8ZWxzZXxlbnVtfGV4dGVuZHN8ZXh0ZXJufGZpbmFsfGZvcnxmcm9tfGZ1bmN0aW9ufGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGlubGluZXxpbnRlcmZhY2V8bWFjcm98bmV3fG51bGx8b3BlcmF0b3J8b3ZlcmxvYWR8b3ZlcnJpZGV8cGFja2FnZXxwcml2YXRlfHB1YmxpY3xyZXR1cm58c3RhdGljfHN1cGVyfHN3aXRjaHx0aHJvd3x0b3x0cnl8dHlwZWRlZnx1bnR5cGVkfHVzaW5nfHZhcnx3aGlsZSkoPyFcLilcYi8sZnVuY3Rpb246e3BhdHRlcm46L1xiW2Etel9dXHcqKD89XHMqKD86PFtePD5dKj5ccyopP1woKS9pLGdyZWVkeTohMH0sb3BlcmF0b3I6L1wuezN9fFwrXCt8LS18JiZ8XHxcfHwtPnw9PnwoPzo8PD98PnsxLDN9fFstKyovJSE9JnxeXSk9P3xbPzp+XS99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImhheGUiLCJzdHJpbmciLHsic3RyaW5nLWludGVycG9sYXRpb24iOntwYXR0ZXJuOi8nKD86W14nXFxdfFxcW1xzXFNdKSonLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oXnxbXlxcXSlcJCg/Olx3K3xce1tee31dK1x9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXlwkXHs/fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOm4ubGFuZ3VhZ2VzLmhheGV9fX0sc3RyaW5nOi9bXHNcU10rL319fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJoYXhlIiwiY2xhc3MtbmFtZSIse3JlZ2V4OntwYXR0ZXJuOi9+XC8oPzpbXlwvXFxcclxuXXxcXC4pK1wvW2Etel0qLyxncmVlZHk6ITAsaW5zaWRlOnsicmVnZXgtZmxhZ3MiOi9cYlthLXpdKyQvLCJyZWdleC1zb3VyY2UiOntwYXR0ZXJuOi9eKH5cLylbXHNcU10rKD89XC8kKS8sbG9va2JlaGluZDohMCxhbGlhczoibGFuZ3VhZ2UtcmVnZXgiLGluc2lkZTpuLmxhbmd1YWdlcy5yZWdleH0sInJlZ2V4LWRlbGltaXRlciI6L15+XC98XC8kL319fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJoYXhlIiwia2V5d29yZCIse3ByZXByb2Nlc3Nvcjp7cGF0dGVybjovIyg/OmVsc2V8ZWxzZWlmfGVuZHxpZilcYi4qLyxhbGlhczoicHJvcGVydHkifSxtZXRhZGF0YTp7cGF0dGVybjovQDo/W1x3Ll0rLyxhbGlhczoic3ltYm9sIn0scmVpZmljYXRpb246e3BhdHRlcm46L1wkKD86XHcrfCg/PVx7KSkvLGFsaWFzOiJpbXBvcnRhbnQifX0pfXJldHVybiBIcH12YXIgJHAsd0E7ZnVuY3Rpb24gTFUoKXtpZih3QSlyZXR1cm4gJHA7d0E9MSwkcD1lLGUuZGlzcGxheU5hbWU9ImhjbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuaGNsPXtjb21tZW50Oi8oPzpcL1wvfCMpLip8XC9cKltcc1xTXSo/KD86XCpcL3wkKS8saGVyZWRvYzp7cGF0dGVybjovPDwtPyhcdytcYilbXHNcU10qP15bIFx0XSpcMS9tLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIn0sa2V5d29yZDpbe3BhdHRlcm46Lyg/OmRhdGF8cmVzb3VyY2UpXHMrKD86Iig/OlxcW1xzXFNdfFteXFwiXSkqIikoPz1ccysiW1x3LV0rIlxzK1x7KS9pLGluc2lkZTp7dHlwZTp7cGF0dGVybjovKHJlc291cmNlfGRhdGF8XHMrKSg/OiIoPzpcXFtcc1xTXXxbXlxcIl0pKiIpL2ksbG9va2JlaGluZDohMCxhbGlhczoidmFyaWFibGUifX19LHtwYXR0ZXJuOi8oPzpiYWNrZW5kfG1vZHVsZXxvdXRwdXR8cHJvdmlkZXJ8cHJvdmlzaW9uZXJ8dmFyaWFibGUpXHMrKD86W1x3LV0rfCIoPzpcXFtcc1xTXXxbXlxcIl0pKiIpXHMrKD89XHspL2ksaW5zaWRlOnt0eXBlOntwYXR0ZXJuOi8oYmFja2VuZHxtb2R1bGV8b3V0cHV0fHByb3ZpZGVyfHByb3Zpc2lvbmVyfHZhcmlhYmxlKVxzKyg/Oltcdy1dK3wiKD86XFxbXHNcU118W15cXCJdKSoiKVxzKy9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InZhcmlhYmxlIn19fSwvW1x3LV0rKD89XHMrXHspL10scHJvcGVydHk6Wy9bLVx3XC5dKyg/PVxzKj0oPyE9KSkvLC8iKD86XFxbXHNcU118W15cXCJdKSsiKD89XHMqWzo9XSkvXSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXlxcJCJdfFxcW1xzXFNdfFwkKD86KD89Iil8XCQrKD8hXCQpfFteIiR7XSl8XCRceyg/Oltee30iXXwiKD86W15cXCJdfFxcW1xzXFNdKSoiKSpcfSkqIi8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKF58W14kXSlcJFx7KD86W157fSJdfCIoPzpbXlxcIl18XFxbXHNcU10pKiIpKlx9Lyxsb29rYmVoaW5kOiEwLGluc2lkZTp7dHlwZTp7cGF0dGVybjovKFxiKD86Y291bnR8ZGF0YXxsb2NhbHxtb2R1bGV8cGF0aHxzZWxmfHRlcnJhZm9ybXx2YXIpXGJcLilbXHdcKl0rL2ksbG9va2JlaGluZDohMCxhbGlhczoidmFyaWFibGUifSxrZXl3b3JkOi9cYig/OmNvdW50fGRhdGF8bG9jYWx8bW9kdWxlfHBhdGh8c2VsZnx0ZXJyYWZvcm18dmFyKVxiL2ksZnVuY3Rpb246L1x3Kyg/PVwoKS8sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFxbXHNcU118W15cXCJdKSoiLyxncmVlZHk6ITB9LG51bWJlcjovXGIweFtcZGEtZl0rXGJ8XGJcZCsoPzpcLlxkKik/KD86ZVsrLV0/XGQrKT8vaSxwdW5jdHVhdGlvbjovWyFcJCMlJicoKSorLC5cLzs8PT5AXFtcXFxdXmB7fH1+PzpdL319fX0sbnVtYmVyOi9cYjB4W1xkYS1mXStcYnxcYlxkKyg/OlwuXGQqKT8oPzplWystXT9cZCspPy9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLHB1bmN0dWF0aW9uOi9bPVxbXF17fV0vfX1yZXR1cm4gJHB9dmFyIFZwLGtBO2Z1bmN0aW9uIERVKCl7aWYoa0EpcmV0dXJuIFZwO2tBPTE7dmFyIGU9b2EoKTtWcD1uLG4uZGlzcGxheU5hbWU9Imhsc2wiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksYS5sYW5ndWFnZXMuaGxzbD1hLmxhbmd1YWdlcy5leHRlbmQoImMiLHsiY2xhc3MtbmFtZSI6W2EubGFuZ3VhZ2VzLmNbImNsYXNzLW5hbWUiXSwvXGIoPzpBcHBlbmRTdHJ1Y3R1cmVkQnVmZmVyfEJsZW5kU3RhdGV8QnVmZmVyfEJ5dGVBZGRyZXNzQnVmZmVyfENvbXBpbGVTaGFkZXJ8Q29tcHV0ZVNoYWRlcnxDb25zdW1lU3RydWN0dXJlZEJ1ZmZlcnxEZXB0aFN0ZW5jaWxTdGF0ZXxEZXB0aFN0ZW5jaWxWaWV3fERvbWFpblNoYWRlcnxHZW9tZXRyeVNoYWRlcnxIdWxsc2hhZGVyfElucHV0UGF0Y2h8TGluZVN0cmVhbXxPdXRwdXRQYXRjaHxQaXhlbFNoYWRlcnxQb2ludFN0cmVhbXxSV0J1ZmZlcnxSV0J5dGVBZGRyZXNzQnVmZmVyfFJXU3RydWN0dXJlZEJ1ZmZlcnxSV1RleHR1cmUoPzoxRHwxREFycmF5fDJEfDJEQXJyYXl8M0QpfFJhc3Rlcml6ZXJTdGF0ZXxSZW5kZXJUYXJnZXRWaWV3fFNhbXBsZXJDb21wYXJpc29uU3RhdGV8U2FtcGxlclN0YXRlfFN0cnVjdHVyZWRCdWZmZXJ8VGV4dHVyZSg/OjFEfDFEQXJyYXl8MkR8MkRBcnJheXwyRE1TfDJETVNBcnJheXwzRHxDdWJlfEN1YmVBcnJheSl8VHJpYW5nbGVTdHJlYW18VmVydGV4U2hhZGVyKVxiL10sa2V5d29yZDpbL1xiKD86YXNtfGFzbV9mcmFnbWVudHxhdXRvfGJyZWFrfGNhc2V8Y2F0Y2h8Y2J1ZmZlcnxjZW50cm9pZHxjaGFyfGNsYXNzfGNvbHVtbl9tYWpvcnxjb21waWxlfGNvbXBpbGVfZnJhZ21lbnR8Y29uc3R8Y29uc3RfY2FzdHxjb250aW51ZXxkZWZhdWx0fGRlbGV0ZXxkaXNjYXJkfGRvfGR5bmFtaWNfY2FzdHxlbHNlfGVudW18ZXhwbGljaXR8ZXhwb3J0fGV4dGVybnxmb3J8ZnJpZW5kfGZ4Z3JvdXB8Z290b3xncm91cHNoYXJlZHxpZnxpbnxpbmxpbmV8aW5vdXR8aW50ZXJmYWNlfGxpbmV8bGluZWFkanxsaW5lYXJ8bG9uZ3xtYXRyaXh8bXV0YWJsZXxuYW1lc3BhY2V8bmV3fG5vaW50ZXJwb2xhdGlvbnxub3BlcnNwZWN0aXZlfG9wZXJhdG9yfG91dHxwYWNrb2Zmc2V0fHBhc3N8cGl4ZWxmcmFnbWVudHxwb2ludHxwcmVjaXNlfHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZWdpc3RlcnxyZWludGVycHJldF9jYXN0fHJldHVybnxyb3dfbWFqb3J8c2FtcGxlfHNhbXBsZXJ8c2hhcmVkfHNob3J0fHNpZ25lZHxzaXplb2Z8c25vcm18c3RhdGVibG9ja3xzdGF0ZWJsb2NrX3N0YXRlfHN0YXRpY3xzdGF0aWNfY2FzdHxzdHJpbmd8c3RydWN0fHN3aXRjaHx0YnVmZmVyfHRlY2huaXF1ZXx0ZWNobmlxdWUxMHx0ZWNobmlxdWUxMXx0ZW1wbGF0ZXx0ZXh0dXJlfHRoaXN8dGhyb3d8dHJpYW5nbGV8dHJpYW5nbGVhZGp8dHJ5fHR5cGVkZWZ8dHlwZW5hbWV8dW5pZm9ybXx1bmlvbnx1bm9ybXx1bnNpZ25lZHx1c2luZ3x2ZWN0b3J8dmVydGV4ZnJhZ21lbnR8dmlydHVhbHx2b2lkfHZvbGF0aWxlfHdoaWxlKVxiLywvXGIoPzpib29sfGRvdWJsZXxkd29yZHxmbG9hdHxoYWxmfGludHxtaW4oPzoxMGZsb2F0fDEyaW50fDE2KD86ZmxvYXR8aW50fHVpbnQpKXx1aW50KSg/OlsxLTRdKD86eFsxLTRdKT8pP1xiL10sbnVtYmVyOi8oPzooPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpbZUVdWystXT9cZCspP3xcYjB4W1xkYS1mQS1GXSspW2ZGaEhsTHVVXT9cYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiL30pfXJldHVybiBWcH12YXIgWXAsQ0E7ZnVuY3Rpb24gTVUoKXtpZihDQSlyZXR1cm4gWXA7Q0E9MSxZcD1lLGUuZGlzcGxheU5hbWU9Imhvb24iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmhvb249e2NvbW1lbnQ6e3BhdHRlcm46Lzo6LiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8iW14iXSoifCdbXiddKicvLGdyZWVkeTohMH0sY29uc3RhbnQ6LyUoPzpcLltueV18W1x3LV0rKS8sImNsYXNzLW5hbWUiOi9AKD86W2EtejAtOS1dKlthLXowLTldKT98XCovaSxmdW5jdGlvbjovKD86XCtbLStdIHsyfSk/KD86W2Etel0oPzpbYS16MC05LV0qW2EtejAtOV0pPykvLGtleXdvcmQ6L1wuW1xeXCtcKj1cP118IVs+PDpcLj1cPyFdfD1bPnw6LFwuXC1cXjwrOy9+XCpcP118XD9bPnw6XC5cLVxePFwrJn49QCFdfFx8W1wkXyU6XC5cLVxeflwqPUBcP118XCtbfFwkXCtcKl18OltfXC1cXlwrflwqXXwlW186XC5cLVxeXCt+XCo9XXxcXlt8OlwuXC1cKyZ+XCo9XD9dfFwkW3xfJTo8PlwtXF4mfkA9XD9dfDtbOjxcKztcL35cKj1dfH5bPnxcJF8lPFwrXC8mPVw/IV18LS18PT0vfX1yZXR1cm4gWXB9dmFyIEtwLElBO2Z1bmN0aW9uIFVVKCl7aWYoSUEpcmV0dXJuIEtwO0lBPTEsS3A9ZSxlLmRpc3BsYXlOYW1lPSJocGtwIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5ocGtwPXtkaXJlY3RpdmU6e3BhdHRlcm46L1xiKD86aW5jbHVkZVN1YkRvbWFpbnN8bWF4LWFnZXxwaW4tc2hhMjU2fHByZWxvYWR8cmVwb3J0LXRvfHJlcG9ydC11cml8c3RyaWN0KSg/PVtcczs9XXwkKS9pLGFsaWFzOiJwcm9wZXJ0eSJ9LG9wZXJhdG9yOi89LyxwdW5jdHVhdGlvbjovOy99fXJldHVybiBLcH12YXIgV3AsT0E7ZnVuY3Rpb24gRlUoKXtpZihPQSlyZXR1cm4gV3A7T0E9MSxXcD1lLGUuZGlzcGxheU5hbWU9ImhzdHMiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmhzdHM9e2RpcmVjdGl2ZTp7cGF0dGVybjovXGIoPzppbmNsdWRlU3ViRG9tYWluc3xtYXgtYWdlfHByZWxvYWQpKD89W1xzOz1dfCQpL2ksYWxpYXM6InByb3BlcnR5In0sb3BlcmF0b3I6Lz0vLHB1bmN0dWF0aW9uOi87L319cmV0dXJuIFdwfXZhciBYcCxMQTtmdW5jdGlvbiBCVSgpe2lmKExBKXJldHVybiBYcDtMQT0xLFhwPWUsZS5kaXNwbGF5TmFtZT0iaHR0cCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGkoaCl7cmV0dXJuIFJlZ0V4cCgiKF4oPzoiK2grIik6WyAJXSooPyFbIAldKSlbXl0rIiwiaSIpfWEubGFuZ3VhZ2VzLmh0dHA9eyJyZXF1ZXN0LWxpbmUiOntwYXR0ZXJuOi9eKD86Q09OTkVDVHxERUxFVEV8R0VUfEhFQUR8T1BUSU9OU3xQQVRDSHxQT1NUfFBSSXxQVVR8U0VBUkNIfFRSQUNFKVxzKD86aHR0cHM/OlwvXC98XC8pXFMqXHNIVFRQXC9bXGQuXSsvbSxpbnNpZGU6e21ldGhvZDp7cGF0dGVybjovXltBLVpdK1xiLyxhbGlhczoicHJvcGVydHkifSwicmVxdWVzdC10YXJnZXQiOntwYXR0ZXJuOi9eKFxzKSg/Omh0dHBzPzpcL1wvfFwvKVxTKig/PVxzKS8sbG9va2JlaGluZDohMCxhbGlhczoidXJsIixpbnNpZGU6YS5sYW5ndWFnZXMudXJpfSwiaHR0cC12ZXJzaW9uIjp7cGF0dGVybjovXihccylIVFRQXC9bXGQuXSsvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InByb3BlcnR5In19fSwicmVzcG9uc2Utc3RhdHVzIjp7cGF0dGVybjovXkhUVFBcL1tcZC5dKyBcZCsgLisvbSxpbnNpZGU6eyJodHRwLXZlcnNpb24iOntwYXR0ZXJuOi9eSFRUUFwvW1xkLl0rLyxhbGlhczoicHJvcGVydHkifSwic3RhdHVzLWNvZGUiOntwYXR0ZXJuOi9eKFxzKVxkKyg/PVxzKS8sbG9va2JlaGluZDohMCxhbGlhczoibnVtYmVyIn0sInJlYXNvbi1waHJhc2UiOntwYXR0ZXJuOi9eKFxzKS4rLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmcifX19LGhlYWRlcjp7cGF0dGVybjovXltcdy1dKzouKyg/Oig/OlxyXG4/fFxuKVsgXHRdLispKi9tLGluc2lkZTp7ImhlYWRlci12YWx1ZSI6W3twYXR0ZXJuOmkoL0NvbnRlbnQtU2VjdXJpdHktUG9saWN5Ly5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6WyJjc3AiLCJsYW5ndWFnZXMtY3NwIl0saW5zaWRlOmEubGFuZ3VhZ2VzLmNzcH0se3BhdHRlcm46aSgvUHVibGljLUtleS1QaW5zKD86LVJlcG9ydC1Pbmx5KT8vLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczpbImhwa3AiLCJsYW5ndWFnZXMtaHBrcCJdLGluc2lkZTphLmxhbmd1YWdlcy5ocGtwfSx7cGF0dGVybjppKC9TdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5Ly5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6WyJoc3RzIiwibGFuZ3VhZ2VzLWhzdHMiXSxpbnNpZGU6YS5sYW5ndWFnZXMuaHN0c30se3BhdHRlcm46aSgvW146XSsvLnNvdXJjZSksbG9va2JlaGluZDohMH1dLCJoZWFkZXItbmFtZSI6e3BhdHRlcm46L15bXjpdKy8sYWxpYXM6ImtleXdvcmQifSxwdW5jdHVhdGlvbjovXjovfX19O3ZhciBsPWEubGFuZ3VhZ2VzLHU9eyJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IjpsLmphdmFzY3JpcHQsImFwcGxpY2F0aW9uL2pzb24iOmwuanNvbnx8bC5qYXZhc2NyaXB0LCJhcHBsaWNhdGlvbi94bWwiOmwueG1sLCJ0ZXh0L3htbCI6bC54bWwsInRleHQvaHRtbCI6bC5odG1sLCJ0ZXh0L2NzcyI6bC5jc3MsInRleHQvcGxhaW4iOmwucGxhaW59LGM9eyJhcHBsaWNhdGlvbi9qc29uIjohMCwiYXBwbGljYXRpb24veG1sIjohMH07ZnVuY3Rpb24gZChoKXt2YXIgUz1oLnJlcGxhY2UoL15bYS16XStcLy8sIiIpLEU9IlxcdysvKD86W1xcdy4tXStcXCspKyIrUysiKD8hWytcXHcuLV0pIjtyZXR1cm4iKD86IitoKyJ8IitFKyIpIn12YXIgZjtmb3IodmFyIG0gaW4gdSlpZih1W21dKXtmPWZ8fHt9O3ZhciBiPWNbbV0/ZChtKTptO2ZbbS5yZXBsYWNlKC9cLy9nLCItIildPXtwYXR0ZXJuOlJlZ0V4cCgiKCIrL2NvbnRlbnQtdHlwZTpccyovLnNvdXJjZStiKy8oPzooPzpcclxuP3xcbilbXHctXS4qKSooPzpccig/OlxufCg/IVxuKSl8XG4pLy5zb3VyY2UrIikiKy9bXiBcdFx3LV1bXHNcU10qLy5zb3VyY2UsImkiKSxsb29rYmVoaW5kOiEwLGluc2lkZTp1W21dfX1mJiZhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImh0dHAiLCJoZWFkZXIiLGYpfSkobil9cmV0dXJuIFhwfXZhciBacCxEQTtmdW5jdGlvbiBqVSgpe2lmKERBKXJldHVybiBacDtEQT0xLFpwPWUsZS5kaXNwbGF5TmFtZT0iaWNoaWdvamFtIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5pY2hpZ29qYW09e2NvbW1lbnQ6Lyg/OlxCJ3xSRU0pKD86W15cblxyXSopL2ksc3RyaW5nOntwYXR0ZXJuOi8iKD86IiJ8WyEjJCUmJygpKixcLzo7PD0+P15cdyArXC0uXSkqIi8sZ3JlZWR5OiEwfSxudW1iZXI6L1xCI1swLTlBLUZdK3xcQmBbMDFdK3woPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpFWystXT9cZCspPy9pLGtleXdvcmQ6L1xiKD86QkVFUHxCUFN8Q0FTRXxDTEVBUnxDTEt8Q0xPfENMUHxDTFN8Q0xUfENMVnxDT05UfENPUFl8RUxTRXxFTkR8RklMRXxGSUxFU3xGT1J8R09TVUJ8R09UT3xHU0J8SUZ8SU5QVVR8S0JEfExFRHxMRVR8TElTVHxMT0FEfExPQ0FURXxMUlVOfE5FV3xORVhUfE9VVHxQTEFZfFBPS0V8UFJJTlR8UFdNfFJFTXxSRU5VTXxSRVNFVHxSRVRVUk58UklHSFR8UlROfFJVTnxTQVZFfFNDUk9MTHxTTEVFUHxTUk5EfFNURVB8U1RPUHxTVUJ8VEVNUE98VEhFTnxUT3xVQVJUfFZJREVPfFdBSVQpKD86XCR8XGIpL2ksZnVuY3Rpb246L1xiKD86QUJTfEFOQXxBU0N8QklOfEJUTnxERUN8RU5EfEZSRUV8SEVMUHxIRVh8STJDUnxJMkNXfElOfElOS0VZfExFTnxMSU5FfFBFRUt8Uk5EfFNDUnxTT1VORHxTVFJ8VElDS3xVU1J8VkVSfFZQRUVLfFpFUikoPzpcJHxcYikvaSxsYWJlbDovKD86XEJAXFMrKS8sb3BlcmF0b3I6LzxbPT5dP3w+PT98XHxcfHwmJnxbK1wtKlwvPXwmXn4hXXxcYig/OkFORHxOT1R8T1IpXGIvaSxwdW5jdHVhdGlvbjovW1xbLDs6KClcXV0vfX1yZXR1cm4gWnB9dmFyIFFwLE1BO2Z1bmN0aW9uIHpVKCl7aWYoTUEpcmV0dXJuIFFwO01BPTEsUXA9ZSxlLmRpc3BsYXlOYW1lPSJpY29uIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5pY29uPXtjb21tZW50Oi8jLiovLHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86KD8hXDEpW15cXFxyXG5fXXxcXC58Xyg/IVwxKSg/OlxyXG58W1xzXFNdKSkqXDEvLGdyZWVkeTohMH0sbnVtYmVyOi9cYig/OlxkK3JbYS16XGRdK3xcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT8pXGJ8XC5cZCtcYi9pLCJidWlsdGluLWtleXdvcmQiOntwYXR0ZXJuOi8mKD86YWxsb2NhdGVkfGFzY2lpfGNsb2NrfGNvbGxlY3Rpb25zfGNzZXR8Y3VycmVudHxkYXRlfGRhdGVsaW5lfGRpZ2l0c3xkdW1wfGV8ZXJyb3IoPzpudW1iZXJ8dGV4dHx2YWx1ZSk/fGVycm91dHxmYWlsfGZlYXR1cmVzfGZpbGV8aG9zdHxpbnB1dHxsY2FzZXxsZXR0ZXJzfGxldmVsfGxpbmV8bWFpbnxudWxsfG91dHB1dHxwaGl8cGl8cG9zfHByb2duYW1lfHJhbmRvbXxyZWdpb25zfHNvdXJjZXxzdG9yYWdlfHN1YmplY3R8dGltZXx0cmFjZXx1Y2FzZXx2ZXJzaW9uKVxiLyxhbGlhczoidmFyaWFibGUifSxkaXJlY3RpdmU6e3BhdHRlcm46L1wkXHcrLyxhbGlhczoiYnVpbHRpbiJ9LGtleXdvcmQ6L1xiKD86YnJlYWt8Ynl8Y2FzZXxjcmVhdGV8ZGVmYXVsdHxkb3xlbHNlfGVuZHxldmVyeXxmYWlsfGdsb2JhbHxpZnxpbml0aWFsfGludm9jYWJsZXxsaW5rfGxvY2FsfG5leHR8bm90fG9mfHByb2NlZHVyZXxyZWNvcmR8cmVwZWF0fHJldHVybnxzdGF0aWN8c3VzcGVuZHx0aGVufHRvfHVudGlsfHdoaWxlKVxiLyxmdW5jdGlvbjovXGIoPyFcZClcdysoPz1ccypbKHtdfFxzKiFccypcWykvLG9wZXJhdG9yOi9bKy1dOig/IT0pfCg/OltcLz9AXiUmXXxcK1wrP3wtLT98PT0/PT98fj09Pz0/fFwqXCo/fFx8XHxcfD98PCg/Oi0+P3w8Pz0/KXw+Pj89PykoPzo6PSk/fDooPzo9Oj8pP3xbIS5cXHx+XS8scHVuY3R1YXRpb246L1tcW1xdKCl7fSw7XS99fXJldHVybiBRcH12YXIgSnAsVUE7ZnVuY3Rpb24gcVUoKXtpZihVQSlyZXR1cm4gSnA7VUE9MSxKcD1lLGUuZGlzcGxheU5hbWU9ImljdU1lc3NhZ2VGb3JtYXQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXtmdW5jdGlvbiBpKG0sYil7cmV0dXJuIGI8PTA/L1tdLy5zb3VyY2U6bS5yZXBsYWNlKC88U0VMRj4vZyxmdW5jdGlvbigpe3JldHVybiBpKG0sYi0xKX0pfXZhciBsPS8nW3t9Oj0sXSg/OlteJ118JycpKicoPyEnKS8sdT17cGF0dGVybjovJycvLGdyZWVkeTohMCxhbGlhczoib3BlcmF0b3IifSxjPXtwYXR0ZXJuOmwsZ3JlZWR5OiEwLGluc2lkZTp7ZXNjYXBlOnV9fSxkPWkoL1x7KD86W157fSddfCcoPyFbe30sJ10pfCcnfDxTVFI+fDxTRUxGPikqXH0vLnNvdXJjZS5yZXBsYWNlKC88U1RSPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGwuc291cmNlfSksOCksZj17cGF0dGVybjpSZWdFeHAoZCksaW5zaWRlOnttZXNzYWdlOntwYXR0ZXJuOi9eKFx7KVtcc1xTXSsoPz1cfSQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTpudWxsfSwibWVzc2FnZS1kZWxpbWl0ZXIiOntwYXR0ZXJuOi8uLyxhbGlhczoicHVuY3R1YXRpb24ifX19O2EubGFuZ3VhZ2VzWyJpY3UtbWVzc2FnZS1mb3JtYXQiXT17YXJndW1lbnQ6e3BhdHRlcm46UmVnRXhwKGQpLGdyZWVkeTohMCxpbnNpZGU6e2NvbnRlbnQ6e3BhdHRlcm46L14oXHspW1xzXFNdKyg/PVx9JCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiYXJndW1lbnQtbmFtZSI6e3BhdHRlcm46L14oXHMqKVtee306PSxcc10rLyxsb29rYmVoaW5kOiEwfSwiY2hvaWNlLXN0eWxlIjp7cGF0dGVybjovXihccyosXHMqY2hvaWNlXHMqLFxzKilcUyg/Oltcc1xTXSpcUyk/Lyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1x8LyxyYW5nZTp7cGF0dGVybjovXihccyopWystXT8oPzpcZCsoPzpcLlxkKik/fFx1MjIxZSlccypbPCNcdTIyNjRdLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7b3BlcmF0b3I6L1s8I1x1MjI2NF0vLG51bWJlcjovXFMrL319LHJlc3Q6bnVsbH19LCJwbHVyYWwtc3R5bGUiOntwYXR0ZXJuOi9eKFxzKixccyooPzpwbHVyYWx8c2VsZWN0b3JkaW5hbClccyosXHMqKVxTKD86W1xzXFNdKlxTKT8vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntvZmZzZXQ6L15vZmZzZXQ6XHMqXGQrLywibmVzdGVkLW1lc3NhZ2UiOmYsc2VsZWN0b3I6e3BhdHRlcm46Lz1cZCt8W157fTo9LFxzXSsvLGluc2lkZTp7a2V5d29yZDovXig/OmZld3xtYW55fG9uZXxvdGhlcnx0d298emVybykkL319fX0sInNlbGVjdC1zdHlsZSI6e3BhdHRlcm46L14oXHMqLFxzKnNlbGVjdFxzKixccyopXFMoPzpbXHNcU10qXFMpPy8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJuZXN0ZWQtbWVzc2FnZSI6ZixzZWxlY3Rvcjp7cGF0dGVybjovW157fTo9LFxzXSsvLGluc2lkZTp7a2V5d29yZDovXm90aGVyJC99fX19LGtleXdvcmQ6L1xiKD86Y2hvaWNlfHBsdXJhbHxzZWxlY3R8c2VsZWN0b3JkaW5hbClcYi8sImFyZy10eXBlIjp7cGF0dGVybjovXGIoPzpkYXRlfGR1cmF0aW9ufG51bWJlcnxvcmRpbmFsfHNwZWxsb3V0fHRpbWUpXGIvLGFsaWFzOiJrZXl3b3JkIn0sImFyZy1za2VsZXRvbiI6e3BhdHRlcm46LygsXHMqKTo6W157fTo9LFxzXSsvLGxvb2tiZWhpbmQ6ITB9LCJhcmctc3R5bGUiOntwYXR0ZXJuOi8oLFxzKikoPzpjdXJyZW5jeXxmdWxsfGludGVnZXJ8bG9uZ3xtZWRpdW18cGVyY2VudHxzaG9ydCkoPz1ccyokKS8sbG9va2JlaGluZDohMH0sImFyZy1zdHlsZS10ZXh0Ijp7cGF0dGVybjpSZWdFeHAoLyheXHMqLFxzKig/PVxTKSkvLnNvdXJjZStpKC8oPzpbXnt9J118J1teJ10qJ3xceyg/OjxTRUxGPik/XH0pKy8uc291cmNlLDgpKyIkIiksbG9va2JlaGluZDohMCxhbGlhczoic3RyaW5nIn0scHVuY3R1YXRpb246LywvfX0sImFyZ3VtZW50LWRlbGltaXRlciI6e3BhdHRlcm46Ly4vLGFsaWFzOiJvcGVyYXRvciJ9fX0sZXNjYXBlOnUsc3RyaW5nOmN9LGYuaW5zaWRlLm1lc3NhZ2UuaW5zaWRlPWEubGFuZ3VhZ2VzWyJpY3UtbWVzc2FnZS1mb3JtYXQiXSxhLmxhbmd1YWdlc1siaWN1LW1lc3NhZ2UtZm9ybWF0Il0uYXJndW1lbnQuaW5zaWRlLmNvbnRlbnQuaW5zaWRlWyJjaG9pY2Utc3R5bGUiXS5pbnNpZGUucmVzdD1hLmxhbmd1YWdlc1siaWN1LW1lc3NhZ2UtZm9ybWF0Il19KShuKX1yZXR1cm4gSnB9dmFyIGVmLEZBO2Z1bmN0aW9uIFBVKCl7aWYoRkEpcmV0dXJuIGVmO0ZBPTE7dmFyIGU9cmIoKTtlZj1uLG4uZGlzcGxheU5hbWU9ImlkcmlzIixuLmFsaWFzZXM9WyJpZHIiXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksYS5sYW5ndWFnZXMuaWRyaXM9YS5sYW5ndWFnZXMuZXh0ZW5kKCJoYXNrZWxsIix7Y29tbWVudDp7cGF0dGVybjovKD86KD86LS18XHxcfFx8KS4qJHxcey1bXHNcU10qPy1cfSkvbX0sa2V5d29yZDovXGIoPzpUeXBlfGNhc2V8Y2xhc3N8Y29kYXRhfGNvbnN0cnVjdG9yfGNvcmVjb3JkfGRhdGF8ZG98ZHNsfGVsc2V8ZXhwb3J0fGlmfGltcGxlbWVudGF0aW9ufGltcGxpY2l0fGltcG9ydHxpbXBvc3NpYmxlfGlufGluZml4fGluZml4bHxpbmZpeHJ8aW5zdGFuY2V8aW50ZXJmYWNlfGxldHxtb2R1bGV8bXV0dWFsfG5hbWVzcGFjZXxvZnxwYXJhbWV0ZXJzfHBhcnRpYWx8cG9zdHVsYXRlfHByaXZhdGV8cHJvb2Z8cHVibGljfHF1b3RlR29hbHxyZWNvcmR8cmV3cml0ZXxzeW50YXh8dGhlbnx0b3RhbHx1c2luZ3x3aGVyZXx3aXRoKVxiLyxidWlsdGluOnZvaWQgMH0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiaWRyaXMiLCJrZXl3b3JkIix7ImltcG9ydC1zdGF0ZW1lbnQiOntwYXR0ZXJuOi8oXlxzKmltcG9ydFxzKykoPzpbQS1aXVtcdyddKikoPzpcLltBLVpdW1x3J10qKSovbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319fSksYS5sYW5ndWFnZXMuaWRyPWEubGFuZ3VhZ2VzLmlkcmlzfXJldHVybiBlZn12YXIgdGYsQkE7ZnVuY3Rpb24gR1UoKXtpZihCQSlyZXR1cm4gdGY7QkE9MSx0Zj1lLGUuZGlzcGxheU5hbWU9ImllY3N0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5pZWNzdD17Y29tbWVudDpbe3BhdHRlcm46LyhefFteXFxdKSg/OlwvXCpbXHNcU10qPyg/OlwqXC98JCl8XChcKltcc1xTXSo/KD86XCpcKXwkKXxce1tcc1xTXSo/KD86XH18JCkpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46LyhefFteXFw6XSlcL1wvLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sc3RyaW5nOntwYXR0ZXJuOi8oWyInXSkoPzpcXCg/OlxyXG58W1xzXFNdKXwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITB9LGtleXdvcmQ6Wy9cYig/OkVORF8pPyg/OlBST0dSQU18Q09ORklHVVJBVElPTnxJTlRFUkZBQ0V8RlVOQ1RJT05fQkxPQ0t8RlVOQ1RJT058QUNUSU9OfFRSQU5TSVRJT058VFlQRXxTVFJVQ1R8KD86SU5JVElBTF8pP1NURVB8TkFNRVNQQUNFfExJQlJBUll8Q0hBTk5FTHxGT0xERVJ8UkVTT1VSQ0V8VkFSXyg/OkFDQ0VTU3xDT05GSUd8RVhURVJOQUx8R0xPQkFMfElOUFVUfElOX09VVHxPVVRQVVR8VEVNUCl8VkFSfE1FVEhPRHxQUk9QRVJUWSlcYi9pLC9cYig/OkFUfEJZfCg/OkVORF8pPyg/OkNBU0V8Rk9SfElGfFJFUEVBVHxXSElMRSl8Q09OU1RBTlR8Q09OVElOVUV8RE98RUxTRXxFTFNJRnxFWElUfEVYVEVORFN8RlJPTXxHRVR8R09UT3xJTVBMRU1FTlRTfEpNUHxOT05fUkVUQUlOfE9GfFBSSVZBVEV8UFJPVEVDVEVEfFBVQkxJQ3xSRVRBSU58UkVUVVJOfFNFVHxUQVNLfFRIRU58VE98VU5USUx8VVNJTkd8V0lUSHxfX0NBVENIfF9fRU5EVFJZfF9fRklOQUxMWXxfX1RSWSlcYi9dLCJjbGFzcy1uYW1lIjovXGIoPzpBTll8QVJSQVl8Qk9PTHxCWVRFfFU/KD86RHxMfFMpP0lOVHwoPzpEfEwpP1dPUkR8REFURSg/Ol9BTkRfVElNRSk/fERUfEw/UkVBTHxQT0lOVEVSfFNUUklOR3xUSU1FKD86X09GX0RBWSk/fFRPRClcYi8sYWRkcmVzczp7cGF0dGVybjovJVtJUU1dW1hCV0RMXVtcZC5dKnwlW0lRXVtcZC5dKi8sYWxpYXM6InN5bWJvbCJ9LG51bWJlcjovXGIoPzoxNiNbXGRhLWZdK3wyI1swMV9dK3wweFtcZGEtZl0rKVxifFxiKD86RHxEVHxUfFRPRCkjW1xkX3NobWQ6XSp8XGJbQS1aXSojW1xkLixfXSp8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZVsrLV0/XGQrKT8vaSxib29sZWFuOi9cYig/OkZBTFNFfE5VTEx8VFJVRSlcYi8sb3BlcmF0b3I6L1M/Uj86Pz0+P3wmJj98XCpcKj98PFs9Pl0/fD49P3xbLTpeLysjXXxcYig/OkFORHxFUXxFWFBUfEdFfEdUfExFfExUfE1PRHxORXxOT1R8T1J8WE9SKVxiLyxmdW5jdGlvbjovXGJbYS16X11cdyooPz1ccypcKCkvaSxwdW5jdHVhdGlvbjovWygpW1xdLiw7XS99fXJldHVybiB0Zn12YXIgbmYsakE7ZnVuY3Rpb24gSFUoKXtpZihqQSlyZXR1cm4gbmY7akE9MSxuZj1lLGUuZGlzcGxheU5hbWU9Imlnbm9yZSIsZS5hbGlhc2VzPVsiZ2l0aWdub3JlIiwiaGdpZ25vcmUiLCJucG1pZ25vcmUiXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXthLmxhbmd1YWdlcy5pZ25vcmU9e2NvbW1lbnQ6L14jLiovbSxlbnRyeTp7cGF0dGVybjovXFMoPzouKig/Oig/OlxcICl8XFMpKT8vLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7b3BlcmF0b3I6L14hfFwqXCo/fFw/LyxyZWdleDp7cGF0dGVybjovKF58W15cXF0pXFtbXlxbXF1dKlxdLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovXC8vfX19LGEubGFuZ3VhZ2VzLmdpdGlnbm9yZT1hLmxhbmd1YWdlcy5pZ25vcmUsYS5sYW5ndWFnZXMuaGdpZ25vcmU9YS5sYW5ndWFnZXMuaWdub3JlLGEubGFuZ3VhZ2VzLm5wbWlnbm9yZT1hLmxhbmd1YWdlcy5pZ25vcmV9KShuKX1yZXR1cm4gbmZ9dmFyIHJmLHpBO2Z1bmN0aW9uICRVKCl7aWYoekEpcmV0dXJuIHJmO3pBPTEscmY9ZSxlLmRpc3BsYXlOYW1lPSJpbmZvcm03IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5pbmZvcm03PXtzdHJpbmc6e3BhdHRlcm46LyJbXiJdKiIvLGluc2lkZTp7c3Vic3RpdHV0aW9uOntwYXR0ZXJuOi9cW1teXFtcXV0rXF0vLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9cW3xcXS8sYWxpYXM6InB1bmN0dWF0aW9uIn19fX19LGNvbW1lbnQ6e3BhdHRlcm46L1xbW15cW1xdXStcXS8sZ3JlZWR5OiEwfSx0aXRsZTp7cGF0dGVybjovXlsgXHRdKig/OmJvb2t8Y2hhcHRlcnxwYXJ0KD8hIG9mKXxzZWN0aW9ufHRhYmxlfHZvbHVtZSlcYi4rL2ltLGFsaWFzOiJpbXBvcnRhbnQifSxudW1iZXI6e3BhdHRlcm46LyhefFteLV0pKD86XGJcZCsoPzpcLlxkKyk/KD86XF5cZCspPyg/Oig/IVxkKVx3Kyk/fFxiKD86ZWlnaHR8ZWxldmVufGZpdmV8Zm91cnxuaW5lfG9uZXxzZXZlbnxzaXh8dGVufHRocmVlfHR3ZWx2ZXx0d28pKVxiKD8hLSkvaSxsb29rYmVoaW5kOiEwfSx2ZXJiOntwYXR0ZXJuOi8oXnxbXi1dKVxiKD86YW5zd2VyaW5nfGFwcGx5aW5nIHRvfGFyZXxhc2tpbmd8YXR0YWNraW5nfGJlKD86aW5nKT98YnVybmluZ3xidXlpbmd8Y2FsbGVkfGNhcnJpZXN8Y2FycnkoPyEgb3V0KXxjYXJyeWluZ3xjbGltYmluZ3xjbG9zaW5nfGNvbmNlYWwoPzppbmd8cyk/fGNvbnN1bHRpbmd8Y29udGFpbig/OmluZ3xzKT98Y3V0dGluZ3xkcmlua2luZ3xkcm9wcGluZ3xlYXRpbmd8ZW5jbG9zKD86ZXM/fGluZyl8ZW50ZXJpbmd8ZXhhbWluaW5nfGV4aXRpbmd8Z2V0dGluZ3xnaXZpbmd8Z29pbmd8aGEoPzpzfHZlfHZpbmcpfGhvbGQoPzppbmd8cyk/fGltcGwoPzppZXN8eSl8aW5jb3Jwb3JhdCg/OmVzP3xpbmcpfGluc2VydGluZ3xpc3xqdW1waW5nfGtpc3Npbmd8bGlzdGVuaW5nfGxvY2tpbmd8bG9va2luZ3xtZWFuKD86aW5nfHMpP3xvcGVuaW5nfHByb3ZpZCg/OmVzP3xpbmcpfHB1bGxpbmd8cHVzaGluZ3xwdXR0aW5nfHJlbGF0KD86ZXM/fGluZyl8cmVtb3Zpbmd8c2VhcmNoaW5nfHNlZSg/OmluZ3xzKT98c2V0dGluZ3xzaG93aW5nfHNpbmdpbmd8c2xlZXBpbmd8c21lbGxpbmd8c3F1ZWV6aW5nfHN1cHBvcnQoPzppbmd8cyk/fHN3ZWFyaW5nfHN3aXRjaGluZ3x0YWtpbmd8dGFzdGluZ3x0ZWxsaW5nfHRoaW5raW5nfHRocm93aW5nfHRvdWNoaW5nfHR1cm5pbmd8dHlpbmd8dW5sb2NrKD86aW5nfHMpP3x2YXIoPzppZXN8eXx5aW5nKXx3YWl0aW5nfHdha2luZ3x3YXZpbmd8d2Vhcig/OmluZ3xzKT8pXGIoPyEtKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0sa2V5d29yZDp7cGF0dGVybjovKF58W14tXSlcYig/OmFmdGVyfGJlZm9yZXxjYXJyeSBvdXR8Y2hlY2t8Y29udGludWUgdGhlIGFjdGlvbnxkZWZpbml0aW9uKD89ICo6KXxkbyBub3RoaW5nfGVsc2V8ZW5kICg/OmlmfHRoZSBzdG9yeXx1bmxlc3MpfGV2ZXJ5IHR1cm58aWZ8aW5jbHVkZXxpbnN0ZWFkKD86IG9mKT98bGV0fG1vdmV8bm98bm93fG90aGVyd2lzZXxyZXBlYXR8cmVwb3J0fHJlc3VtZSB0aGUgc3Rvcnl8cnVsZSBmb3J8cnVubmluZyB0aHJvdWdofHNheSg/OmluZyk/fHN0b3AgdGhlIGFjdGlvbnx0ZXN0fHRyeSg/OmluZyk/fHVuZGVyc3RhbmR8dW5sZXNzfHVzZXx3aGVufHdoaWxlfHllcylcYig/IS0pL2ksbG9va2JlaGluZDohMH0scHJvcGVydHk6e3BhdHRlcm46LyhefFteLV0pXGIoPzphZGphY2VudCg/ISB0byl8Y2FycmllZHxjbG9zZWR8Y29uY2VhbGVkfGNvbnRhaW5lZHxkYXJrfGRlc2NyaWJlZHxlZGlibGV8ZW1wdHl8ZW5jbG9zZWR8ZW50ZXJhYmxlfGV2ZW58ZmVtYWxlfGZpeGVkIGluIHBsYWNlfGZ1bGx8aGFuZGxlZHxoZWxkfGltcHJvcGVyLW5hbWVkfGluY29ycG9yYXRlZHxpbmVkaWJsZXxpbnZpc2libGV8bGlnaHRlZHxsaXR8bG9jayg/OmFibGV8ZWQpfG1hbGV8bWFya2VkIGZvciBsaXN0aW5nfG1lbnRpb25lZHxuZWdhdGl2ZXxuZXV0ZXJ8bm9uLSg/OmVtcHR5fGZ1bGx8cmVjdXJyaW5nKXxvZGR8b3BhcXVlfG9wZW4oPzphYmxlKT98cGx1cmFsLW5hbWVkfHBvcnRhYmxlfHBvc2l0aXZlfHByaXZhdGVseS1uYW1lZHxwcm9wZXItbmFtZWR8cHJvdmlkZWR8cHVibGljYWxseS1uYW1lZHxwdXNoYWJsZSBiZXR3ZWVuIHJvb21zfHJlY3VycmluZ3xyZWxhdGVkfHJ1YmJpbmd8c2NlbmVyeXxzZWVufHNpbmd1bGFyLW5hbWVkfHN1cHBvcnRlZHxzd2luZ2luZ3xzd2l0Y2goPzphYmxlfGVkKD86IG9mZnwgb24pPyl8dG91Y2goPzphYmxlfGVkKXx0cmFuc3BhcmVudHx1bmNvbmNlYWxlZHx1bmRlc2NyaWJlZHx1bmxpdHx1bmxvY2tlZHx1bm1hcmtlZCBmb3IgbGlzdGluZ3x1bm1lbnRpb25lZHx1bm9wZW5hYmxlfHVudG91Y2hhYmxlfHVudmlzaXRlZHx2YXJpYWJsZXx2aXNpYmxlfHZpc2l0ZWR8d2VhcmFibGV8d29ybilcYig/IS0pL2ksbG9va2JlaGluZDohMCxhbGlhczoic3ltYm9sIn0scG9zaXRpb246e3BhdHRlcm46LyhefFteLV0pXGIoPzphYm92ZXxhZGphY2VudCB0b3xiYWNrIHNpZGUgb2Z8YmVsb3d8YmV0d2Vlbnxkb3dufGVhc3R8ZXZlcnl3aGVyZXxmcm9udCBzaWRlfGhlcmV8aW58aW5zaWRlKD86IGZyb20pP3xub3J0aCg/OmVhc3R8d2VzdCk/fG5vd2hlcmV8b24oPzogdG9wIG9mKT98b3RoZXIgc2lkZXxvdXRzaWRlKD86IGZyb20pP3xwYXJ0cz8gb2Z8cmVnaW9uYWxseSBpbnxzb3V0aCg/OmVhc3R8d2VzdCk/fHRocm91Z2h8dXB8d2VzdHx3aXRoaW4pXGIoPyEtKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSx0eXBlOntwYXR0ZXJuOi8oXnxbXi1dKVxiKD86YWN0aW9ucz98YWN0aXZpdCg/Omllc3x5KXxhY3RvcnM/fGFuaW1hbHM/fGJhY2tkcm9wcz98Y29udGFpbmVycz98ZGV2aWNlcz98ZGlyZWN0aW9ucz98ZG9vcnM/fGhvbGRlcnM/fGtpbmRzP3xsaXN0cz98bVthZV1ufG5vYm9keXxub3RoaW5nfG5vdW5zP3xudW1iZXJzP3xvYmplY3RzP3xwZW9wbGV8cGVyc29ucz98cGxheWVyKD86J3MgaG9sZGFsbCk/fHJlZ2lvbnM/fHJlbGF0aW9ucz98cm9vbXM/fHJ1bGUoPzpib29rKT9zP3xzY2VuZXM/fHNvbWVvbmV8c29tZXRoaW5nfHN1cHBvcnRlcnM/fHRhYmxlcz98dGV4dHM/fHRoaW5ncz98dGltZXx2ZWhpY2xlcz98d29tW2FlXW4pXGIoPyEtKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InZhcmlhYmxlIn0scHVuY3R1YXRpb246L1suLDo7KCl7fV0vfSxuLmxhbmd1YWdlcy5pbmZvcm03LnN0cmluZy5pbnNpZGUuc3Vic3RpdHV0aW9uLmluc2lkZS5yZXN0PW4ubGFuZ3VhZ2VzLmluZm9ybTcsbi5sYW5ndWFnZXMuaW5mb3JtNy5zdHJpbmcuaW5zaWRlLnN1YnN0aXR1dGlvbi5pbnNpZGUucmVzdC50ZXh0PXtwYXR0ZXJuOi9cUyg/OlxzKlxTKSovLGFsaWFzOiJjb21tZW50In19cmV0dXJuIHJmfXZhciBhZixxQTtmdW5jdGlvbiBWVSgpe2lmKHFBKXJldHVybiBhZjtxQT0xLGFmPWUsZS5kaXNwbGF5TmFtZT0iaW5pIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5pbmk9e2NvbW1lbnQ6e3BhdHRlcm46LyheWyBcZlx0XHZdKilbIztdW15cblxyXSovbSxsb29rYmVoaW5kOiEwfSxzZWN0aW9uOntwYXR0ZXJuOi8oXlsgXGZcdFx2XSopXFtbXlxuXHJcXV0qXF0/L20sbG9va2JlaGluZDohMCxpbnNpZGU6eyJzZWN0aW9uLW5hbWUiOntwYXR0ZXJuOi8oXlxbWyBcZlx0XHZdKilbXiBcZlx0XHZcXV0rKD86WyBcZlx0XHZdK1teIFxmXHRcdlxdXSspKi8sbG9va2JlaGluZDohMCxhbGlhczoic2VsZWN0b3IifSxwdW5jdHVhdGlvbjovXFt8XF0vfX0sa2V5OntwYXR0ZXJuOi8oXlsgXGZcdFx2XSopW14gXGZcblxyXHRcdj1dKyg/OlsgXGZcdFx2XStbXiBcZlxuXHJcdFx2PV0rKSooPz1bIFxmXHRcdl0qPSkvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJhdHRyLW5hbWUifSx2YWx1ZTp7cGF0dGVybjovKD1bIFxmXHRcdl0qKVteIFxmXG5cclx0XHZdKyg/OlsgXGZcdFx2XStbXiBcZlxuXHJcdFx2XSspKi8sbG9va2JlaGluZDohMCxhbGlhczoiYXR0ci12YWx1ZSIsaW5zaWRlOnsiaW5uZXItdmFsdWUiOntwYXR0ZXJuOi9eKCJ8JykuKyg/PVwxJCkvLGxvb2tiZWhpbmQ6ITB9fX0scHVuY3R1YXRpb246Lz0vfX1yZXR1cm4gYWZ9dmFyIG9mLFBBO2Z1bmN0aW9uIFlVKCl7aWYoUEEpcmV0dXJuIG9mO1BBPTEsb2Y9ZSxlLmRpc3BsYXlOYW1lPSJpbyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuaW89e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSg/OlwvXCpbXHNcU10qPyg/OlwqXC98JCl8XC9cLy4qfCMuKikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSwidHJpcGxlLXF1b3RlZC1zdHJpbmciOntwYXR0ZXJuOi8iIiIoPzpcXFtcc1xTXXwoPyEiIiIpW15cXF0pKiIiIi8sZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmcifSxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXC58W15cXFxyXG4iXSkqIi8sZ3JlZWR5OiEwfSxrZXl3b3JkOi9cYig/OmFjdGl2YXRlfGFjdGl2ZUNvcm9Db3VudHxhc1N0cmluZ3xibG9ja3xicmVha3xjYWxsfGNhdGNofGNsb25lfGNvbGxlY3RHYXJiYWdlfGNvbXBpbGVTdHJpbmd8Y29udGludWV8ZG98ZG9GaWxlfGRvTWVzc2FnZXxkb1N0cmluZ3xlbHNlfGVsc2VpZnxleGl0fGZvcnxmb3JlYWNofGZvcndhcmR8Z2V0RW52aXJvbm1lbnRWYXJpYWJsZXxnZXRTbG90fGhhc1Nsb3R8aWZ8aWZGYWxzZXxpZk5pbHxpZk5pbEV2YWx8aWZUcnVlfGlzQWN0aXZlfGlzTmlsfGlzUmVzdW1hYmxlfGxpc3R8bWVzc2FnZXxtZXRob2R8cGFyZW50fHBhc3N8cGF1c2V8cGVyZm9ybXxwZXJmb3JtV2l0aEFyZ0xpc3R8cHJpbnR8cHJpbnRsbnxwcm90b3xyYWlzZXxyYWlzZVJlc3VtYWJsZXxyZW1vdmVTbG90fHJlc2VuZHxyZXN1bWV8c2NoZWR1bGVyU2xlZXBTZWNvbmRzfHNlbGZ8c2VuZGVyfHNldFNjaGVkdWxlclNsZWVwU2Vjb25kc3xzZXRTbG90fHNoYWxsb3dDb3B5fHNsb3ROYW1lc3xzdXBlcnxzeXN0ZW18dGhlbnx0aGlzQmxvY2t8dGhpc0NvbnRleHR8dHJ5fHR5cGV8dW5pcXVlSWR8dXBkYXRlU2xvdHx3YWl0fHdoaWxlfHdyaXRlfHlpZWxkKVxiLyxidWlsdGluOi9cYig/OkFycmF5fEF1ZGlvRGV2aWNlfEF1ZGlvTWl4ZXJ8QmlnTnVtfEJsb2NrfEJveHxCdWZmZXJ8Q0Z1bmN0aW9ufENHSXxDb2xvcnxDdXJzZXN8REJNfEROU1Jlc29sdmVyfERPQ29ubmVjdGlvbnxET1Byb3h5fERPU2VydmVyfERhdGV8RGlyZWN0b3J5fER1cmF0aW9ufER5bkxpYnxFcnJvcnxFeGNlcHRpb258RkZUfEZpbGV8Rm5tYXRjaHxGb250fEZ1dHVyZXxHTHxHTEV8R0xTY2lzc29yfEdMVXxHTFVDeWxpbmRlcnxHTFVRdWFkcmljfEdMVVNwaGVyZXxHTFVUfEhvc3R8SW1hZ2V8SW1wb3J0ZXJ8TGlua0xpc3R8TGlzdHxMb2JieXxMb2NhbHN8TUQ1fE1QM0RlY29kZXJ8TVAzRW5jb2RlcnxNYXB8TWVzc2FnZXxNb3ZpZXxOb3RpZmljYXRpb258TnVtYmVyfE9iamVjdHxPcGVuR0x8UG9pbnR8UHJvdG9zfFJhbmRvbXxSZWdleHxTR01MfFNHTUxFbGVtZW50fFNHTUxQYXJzZXJ8U1FMaXRlfFNlcXVlbmNlfFNlcnZlcnxTaG93TWVzc2FnZXxTbGVlcHlDYXR8U2xlZXB5Q2F0Q3Vyc29yfFNvY2tldHxTb2NrZXRNYW5hZ2VyfFNvdW5kfFNvdXB8U3RvcmV8U3RyaW5nfFRyZWV8VURQU2VuZGVyfFVQRFJlY2VpdmVyfFVSTHxVc2VyfFdhcm5pbmd8V2Vha0xpbmspXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8bmlsfHRydWUpXGIvLG51bWJlcjovXGIweFtcZGEtZl0rXGJ8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZS0/XGQrKT8vaSxvcGVyYXRvcjovWz0hKi8lK1wtXiZ8XT18Pj4/PT98PDw/PT98Oj86Pz18XCtcKz98LS0/fFwqXCo/fFwvXC8/fCV8XHxcfD98JiY/fFxiKD86YW5kfG5vdHxvcnxyZXR1cm4pXGJ8QEA/fFw/XD8/fFwuXC4vLHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdL319cmV0dXJuIG9mfXZhciBsZixHQTtmdW5jdGlvbiBLVSgpe2lmKEdBKXJldHVybiBsZjtHQT0xLGxmPWUsZS5kaXNwbGF5TmFtZT0iaiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuaj17Y29tbWVudDp7cGF0dGVybjovXGJOQlwuLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8nKD86Jyd8W14nXHJcbl0pKicvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzooPzpDUnxMRnxhZHZlcmJ8Y29uanVuY3Rpb258ZGVmfGRlZmluZXxkeWFkfG1vbmFkfG5vdW58dmVyYilcYnwoPzphc3NlcnR8YnJlYWt8Y2FzZXxjYXRjaFtkdF0/fGNvbnRpbnVlfGRvfGVsc2V8ZWxzZWlmfGVuZHxmY2FzZXxmb3J8Zm9yX1x3K3xnb3RvX1x3K3xpZnxsYWJlbF9cdyt8cmV0dXJufHNlbGVjdHx0aHJvd3x0cnl8d2hpbGV8d2hpbHN0KVwuKS8sdmVyYjp7cGF0dGVybjovKD8hXF46fDtcLnxbPSFdWy46XSkoPzpceyg/OlwufDo6Pyk/fHAoPzpcLlwuP3w6KXxbPSFcXV18Wzw+KypcLSUkfCwjXVsuOl0/fFs/Xl1cLj98WztcW106P3xbfn0iaV1bLjpdfFtBQ2VFSWpMb3JdXC58KD86W19cL1xccXN1eF18Xz9cZCk6KS8sYWxpYXM6ImtleXdvcmQifSxudW1iZXI6L1xiXz8oPzooPyFcZDopXGQrKD86XC5cZCspPyg/Oig/OmFkfGFyfFtlanB4XSlfP1xkKyg/OlwuXGQrKT8pKig/OmJfP1tcZGEtel0rKD86XC5bXGRhLXpdKyk/KT98X1xiKD8hXC4pKS8sYWR2ZXJiOntwYXR0ZXJuOi9bfn1dfFtcL1xcXVwuP3xbYmZNXVwufHRbLjpdLyxhbGlhczoiYnVpbHRpbiJ9LG9wZXJhdG9yOi9bPWFdWy46XXxfXC4vLGNvbmp1bmN0aW9uOntwYXR0ZXJuOi8mKD86XC46P3w6KT98Wy46QF1bLjpdP3xbIURdWy46XXxbO2RIVF1cLnxgOj98W1xeTFNdOnwiLyxhbGlhczoidmFyaWFibGUifSxwdW5jdHVhdGlvbjovWygpXS99fXJldHVybiBsZn12YXIgc2YsSEE7ZnVuY3Rpb24gYWIoKXtpZihIQSlyZXR1cm4gc2Y7SEE9MSxzZj1lLGUuZGlzcGxheU5hbWU9ImphdmEiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vXGIoPzphYnN0cmFjdHxhc3NlcnR8Ym9vbGVhbnxicmVha3xieXRlfGNhc2V8Y2F0Y2h8Y2hhcnxjbGFzc3xjb25zdHxjb250aW51ZXxkZWZhdWx0fGRvfGRvdWJsZXxlbHNlfGVudW18ZXhwb3J0c3xleHRlbmRzfGZpbmFsfGZpbmFsbHl8ZmxvYXR8Zm9yfGdvdG98aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW5zdGFuY2VvZnxpbnR8aW50ZXJmYWNlfGxvbmd8bW9kdWxlfG5hdGl2ZXxuZXd8bm9uLXNlYWxlZHxudWxsfG9wZW58b3BlbnN8cGFja2FnZXxwZXJtaXRzfHByaXZhdGV8cHJvdGVjdGVkfHByb3ZpZGVzfHB1YmxpY3xyZWNvcmR8cmVxdWlyZXN8cmV0dXJufHNlYWxlZHxzaG9ydHxzdGF0aWN8c3RyaWN0ZnB8c3VwZXJ8c3dpdGNofHN5bmNocm9uaXplZHx0aGlzfHRocm93fHRocm93c3x0b3x0cmFuc2llbnR8dHJhbnNpdGl2ZXx0cnl8dXNlc3x2YXJ8dm9pZHx2b2xhdGlsZXx3aGlsZXx3aXRofHlpZWxkKVxiLyxsPS8oXnxbXlx3Ll0pKD86W2Etel1cdypccypcLlxzKikqKD86W0EtWl1cdypccypcLlxzKikqLy5zb3VyY2UsdT17cGF0dGVybjpSZWdFeHAobCsvW0EtWl0oPzpbXGRfQS1aXSpbYS16XVx3Kik/XGIvLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6e25hbWVzcGFjZTp7cGF0dGVybjovXlthLXpdXHcqKD86XHMqXC5ccypbYS16XVx3KikqKD86XHMqXC4pPy8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0scHVuY3R1YXRpb246L1wuL319O2EubGFuZ3VhZ2VzLmphdmE9YS5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse3N0cmluZzp7cGF0dGVybjovKF58W15cXF0pIig/OlxcLnxbXiJcXFxyXG5dKSoiLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOlt1LHtwYXR0ZXJuOlJlZ0V4cChsKy9bQS1aXVx3Kig/PVxzK1x3K1xzKls7LD0oKV0pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnUuaW5zaWRlfV0sa2V5d29yZDppLGZ1bmN0aW9uOlthLmxhbmd1YWdlcy5jbGlrZS5mdW5jdGlvbix7cGF0dGVybjovKDo6XHMqKVthLXpfXVx3Ki8sbG9va2JlaGluZDohMH1dLG51bWJlcjovXGIwYlswMV1bMDFfXSpMP1xifFxiMHgoPzpcLltcZGEtZl9wKy1dK3xbXGRhLWZfXSsoPzpcLltcZGEtZl9wKy1dKyk/KVxifCg/OlxiXGRbXGRfXSooPzpcLltcZF9dKik/fFxCXC5cZFtcZF9dKikoPzplWystXT9cZFtcZF9dKik/W2RmbF0/L2ksb3BlcmF0b3I6e3BhdHRlcm46LyhefFteLl0pKD86PDw9P3w+Pj4/PT98LT58LS18XCtcK3wmJnxcfFx8fDo6fFs/On5dfFstKyovJSZ8XiE9PD5dPT8pL20sbG9va2JlaGluZDohMH19KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImphdmEiLCJzdHJpbmciLHsidHJpcGxlLXF1b3RlZC1zdHJpbmciOntwYXR0ZXJuOi8iIiJbIFx0XSpbXHJcbl0oPzooPzoifCIiKT8oPzpcXC58W14iXFxdKSkqIiIiLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyJ9LGNoYXI6e3BhdHRlcm46LycoPzpcXC58W14nXFxcclxuXSl7MSw2fScvLGdyZWVkeTohMH19KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImphdmEiLCJjbGFzcy1uYW1lIix7YW5ub3RhdGlvbjp7cGF0dGVybjovKF58W14uXSlAXHcrKD86XHMqXC5ccypcdyspKi8sbG9va2JlaGluZDohMCxhbGlhczoicHVuY3R1YXRpb24ifSxnZW5lcmljczp7cGF0dGVybjovPCg/Oltcd1xzLC4/XXwmKD8hJil8PCg/Oltcd1xzLC4/XXwmKD8hJil8PCg/Oltcd1xzLC4/XXwmKD8hJil8PCg/Oltcd1xzLC4/XXwmKD8hJikpKj4pKj4pKj4pKj4vLGluc2lkZTp7ImNsYXNzLW5hbWUiOnUsa2V5d29yZDppLHB1bmN0dWF0aW9uOi9bPD4oKSwuOl0vLG9wZXJhdG9yOi9bPyZ8XS99fSxuYW1lc3BhY2U6e3BhdHRlcm46UmVnRXhwKC8oXGIoPzpleHBvcnRzfGltcG9ydCg/OlxzK3N0YXRpYyk/fG1vZHVsZXxvcGVufG9wZW5zfHBhY2thZ2V8cHJvdmlkZXN8cmVxdWlyZXN8dG98dHJhbnNpdGl2ZXx1c2VzfHdpdGgpXHMrKSg/ITxrZXl3b3JkPilbYS16XVx3Kig/OlwuW2Etel1cdyopKlwuPy8uc291cmNlLnJlcGxhY2UoLzxrZXl3b3JkPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGkuc291cmNlfSkpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX19KX0pKG4pfXJldHVybiBzZn12YXIgdWYsJEE7ZnVuY3Rpb24gWWwoKXtpZigkQSlyZXR1cm4gdWY7JEE9MSx1Zj1lLGUuZGlzcGxheU5hbWU9ImphdmFkb2NsaWtlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9YS5sYW5ndWFnZXMuamF2YWRvY2xpa2U9e3BhcmFtZXRlcjp7cGF0dGVybjovKF5bXHQgXSooPzpcL3szfXxcKnxcL1wqXCopXHMqQCg/OmFyZ3xhcmd1bWVudHN8cGFyYW0pXHMrKVx3Ky9tLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6e3BhdHRlcm46LyheW1x0IF0qKD86XC97M318XCp8XC9cKlwqKVxzKnxceylAW2Etel1bYS16QS1aLV0rXGIvbSxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovW3t9XS99O2Z1bmN0aW9uIGwoYyxkKXt2YXIgZj0iZG9jLWNvbW1lbnQiLG09YS5sYW5ndWFnZXNbY107aWYobSl7dmFyIGI9bVtmXTtpZighYil7dmFyIGg9e307aFtmXT17cGF0dGVybjovKF58W15cXF0pXC9cKlwqW14vXVtcc1xTXSo/KD86XCpcL3wkKS8sbG9va2JlaGluZDohMCxhbGlhczoiY29tbWVudCJ9LG09YS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKGMsImNvbW1lbnQiLGgpLGI9bVtmXX1pZihiIGluc3RhbmNlb2YgUmVnRXhwJiYoYj1tW2ZdPXtwYXR0ZXJuOmJ9KSxBcnJheS5pc0FycmF5KGIpKWZvcih2YXIgUz0wLEU9Yi5sZW5ndGg7UzxFO1MrKyliW1NdaW5zdGFuY2VvZiBSZWdFeHAmJihiW1NdPXtwYXR0ZXJuOmJbU119KSxkKGJbU10pO2Vsc2UgZChiKX19ZnVuY3Rpb24gdShjLGQpe3R5cGVvZiBjPT0ic3RyaW5nIiYmKGM9W2NdKSxjLmZvckVhY2goZnVuY3Rpb24oZil7bChmLGZ1bmN0aW9uKG0pe20uaW5zaWRlfHwobS5pbnNpZGU9e30pLG0uaW5zaWRlLnJlc3Q9ZH0pfSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGksImFkZFN1cHBvcnQiLHt2YWx1ZTp1fSksaS5hZGRTdXBwb3J0KFsiamF2YSIsImphdmFzY3JpcHQiLCJwaHAiXSxpKX0pKG4pfXJldHVybiB1Zn12YXIgY2YsVkE7ZnVuY3Rpb24gV1UoKXtpZihWQSlyZXR1cm4gY2Y7VkE9MTt2YXIgZT1hYigpLG49WWwoKTtjZj1hLGEuZGlzcGxheU5hbWU9ImphdmFkb2MiLGEuYWxpYXNlcz1bXTtmdW5jdGlvbiBhKGkpe2kucmVnaXN0ZXIoZSksaS5yZWdpc3RlcihuKSwoZnVuY3Rpb24obCl7dmFyIHU9LyheKD86W1x0IF0qKD86XCpccyopKikpW14qXHNdLiokL20sYz0vI1xzKlx3Kyg/OlxzKlwoW14oKV0qXCkpPy8uc291cmNlLGQ9Lyg/OlxiW2EtekEtWl1cdytccypcLlxzKikqXGJbQS1aXVx3Kig/OlxzKjxtZW0+KT98PG1lbT4vLnNvdXJjZS5yZXBsYWNlKC88bWVtPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGN9KTtsLmxhbmd1YWdlcy5qYXZhZG9jPWwubGFuZ3VhZ2VzLmV4dGVuZCgiamF2YWRvY2xpa2UiLHt9KSxsLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImphdmFkb2MiLCJrZXl3b3JkIix7cmVmZXJlbmNlOntwYXR0ZXJuOlJlZ0V4cCgvKEAoPzpleGNlcHRpb258bGlua3xsaW5rcGxhaW58c2VlfHRocm93c3x2YWx1ZSlccysoPzpcKlxzKik/KS8uc291cmNlKyIoPzoiK2QrIikiKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ZnVuY3Rpb246e3BhdHRlcm46LygjXHMqKVx3Kyg/PVxzKlwoKS8sbG9va2JlaGluZDohMH0sZmllbGQ6e3BhdHRlcm46LygjXHMqKVx3Ky8sbG9va2JlaGluZDohMH0sbmFtZXNwYWNlOntwYXR0ZXJuOi9cYig/OlthLXpdXHcqXHMqXC5ccyopKy8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0sImNsYXNzLW5hbWUiOi9cYltBLVpdXHcqLyxrZXl3b3JkOmwubGFuZ3VhZ2VzLmphdmEua2V5d29yZCxwdW5jdHVhdGlvbjovWyMoKVtcXSwuXS99fSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhAcGFyYW1ccyspPFtBLVpdXHcqPi8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9bLjw+XS99fSwiY29kZS1zZWN0aW9uIjpbe3BhdHRlcm46Lyhce0Bjb2RlXHMrKD8hXHMpKSg/OlteXHN7fV18XHMrKD8hW1xzfV0pfFx7KD86W157fV18XHsoPzpbXnt9XXxceyg/Oltee31dfFx7W157fV0qXH0pKlx9KSpcfSkqXH0pKyg/PVxzKlx9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6e2NvZGU6e3BhdHRlcm46dSxsb29rYmVoaW5kOiEwLGluc2lkZTpsLmxhbmd1YWdlcy5qYXZhLGFsaWFzOiJsYW5ndWFnZS1qYXZhIn19fSx7cGF0dGVybjovKDwoY29kZXxwcmV8dHQpPig/ITxjb2RlPilccyopXFMoPzpcU3xccytcUykqPyg/PVxzKjxcL1wyPikvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntsaW5lOntwYXR0ZXJuOnUsbG9va2JlaGluZDohMCxpbnNpZGU6e3RhZzpsLmxhbmd1YWdlcy5tYXJrdXAudGFnLGVudGl0eTpsLmxhbmd1YWdlcy5tYXJrdXAuZW50aXR5LGNvZGU6e3BhdHRlcm46Ly4rLyxpbnNpZGU6bC5sYW5ndWFnZXMuamF2YSxhbGlhczoibGFuZ3VhZ2UtamF2YSJ9fX19fV0sdGFnOmwubGFuZ3VhZ2VzLm1hcmt1cC50YWcsZW50aXR5OmwubGFuZ3VhZ2VzLm1hcmt1cC5lbnRpdHl9KSxsLmxhbmd1YWdlcy5qYXZhZG9jbGlrZS5hZGRTdXBwb3J0KCJqYXZhIixsLmxhbmd1YWdlcy5qYXZhZG9jKX0pKGkpfXJldHVybiBjZn12YXIgZGYsWUE7ZnVuY3Rpb24gWFUoKXtpZihZQSlyZXR1cm4gZGY7WUE9MSxkZj1lLGUuZGlzcGxheU5hbWU9ImphdmFzdGFja3RyYWNlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5qYXZhc3RhY2t0cmFjZT17c3VtbWFyeTp7cGF0dGVybjovXihbXHQgXSopKD86KD86Q2F1c2VkIGJ5OnxTdXBwcmVzc2VkOnxFeGNlcHRpb24gaW4gdGhyZWFkICJbXiJdKiIpW1x0IF0rKT9bXHckLl0rKD86Oi4qKT8kL20sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6e3BhdHRlcm46L14oW1x0IF0qKSg/Oig/OkNhdXNlZCBieXxTdXBwcmVzc2VkKSg/PTopfEV4Y2VwdGlvbiBpbiB0aHJlYWQpL20sbG9va2JlaGluZDohMH0sc3RyaW5nOntwYXR0ZXJuOi9eKFxzKikiW14iXSoiLyxsb29rYmVoaW5kOiEwfSxleGNlcHRpb25zOntwYXR0ZXJuOi9eKDo/XHMqKVtcdyQuXSsoPz06fCQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImNsYXNzLW5hbWUiOi9bXHckXSskLyxuYW1lc3BhY2U6L1xiW2Etel1cdypcYi8scHVuY3R1YXRpb246L1wuL319LG1lc3NhZ2U6e3BhdHRlcm46Lyg6XHMqKVxTLiovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyJ9LHB1bmN0dWF0aW9uOi86L319LCJzdGFjay1mcmFtZSI6e3BhdHRlcm46L14oW1x0IF0qKWF0ICg/OltcdyQuL118QFtcdyQuKy1dKlwvKSsoPzo8aW5pdD4pP1woW14oKV0qXCkvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7a2V5d29yZDp7cGF0dGVybjovXihccyopYXQoPz0gKS8sbG9va2JlaGluZDohMH0sc291cmNlOlt7cGF0dGVybjovKFwoKVx3K1wuXHcrOlxkKyg/PVwpKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e2ZpbGU6L15cdytcLlx3Ky8scHVuY3R1YXRpb246LzovLCJsaW5lLW51bWJlciI6e3BhdHRlcm46L1xiXGQrXGIvLGFsaWFzOiJudW1iZXIifX19LHtwYXR0ZXJuOi8oXCgpW14oKV0qKD89XCkpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7a2V5d29yZDovXig/Ok5hdGl2ZSBNZXRob2R8VW5rbm93biBTb3VyY2UpJC99fV0sImNsYXNzLW5hbWUiOi9bXHckXSsoPz1cLig/Ojxpbml0PnxbXHckXSspXCgpLyxmdW5jdGlvbjovKD86PGluaXQ+fFtcdyRdKykoPz1cKCkvLCJjbGFzcy1sb2FkZXIiOntwYXR0ZXJuOi8oXHMpW2Etel1cdyooPzpcLlthLXpdXHcqKSooPz1cL1tcd0AkLl0qXC8pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJuYW1lc3BhY2UiLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LG1vZHVsZTp7cGF0dGVybjovKFtccy9dKVthLXpdXHcqKD86XC5bYS16XVx3KikqKD86QFtcdyQuKy1dKik/KD89XC8pLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7dmVyc2lvbjp7cGF0dGVybjovKEApW1xzXFNdKy8sbG9va2JlaGluZDohMCxhbGlhczoibnVtYmVyIn0scHVuY3R1YXRpb246L1tALl0vfX0sbmFtZXNwYWNlOntwYXR0ZXJuOi8oPzpcYlthLXpdXHcqXC4pKy8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0scHVuY3R1YXRpb246L1soKS8uXS99fSxtb3JlOntwYXR0ZXJuOi9eKFtcdCBdKilcLnszfSBcZCsgW2Etel0rKD86IFthLXpdKykqL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLnszfS8sbnVtYmVyOi9cZCsvLGtleXdvcmQ6L1xiW2Etel0rKD86IFthLXpdKykqXGIvfX19fXJldHVybiBkZn12YXIgcGYsS0E7ZnVuY3Rpb24gWlUoKXtpZihLQSlyZXR1cm4gcGY7S0E9MSxwZj1lLGUuZGlzcGxheU5hbWU9ImpleGwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmpleGw9e3N0cmluZzovKFsiJ10pKD86XFxbXHNcU118KD8hXDEpW15cXF0pKlwxLyx0cmFuc2Zvcm06e3BhdHRlcm46LyhcfFxzKilbYS16QS1a0LAt0Y/QkC3Qr19cdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAwRkYkXVtcd9CwLdGP0JAt0K9cdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAwRkYkXSovLGFsaWFzOiJmdW5jdGlvbiIsbG9va2JlaGluZDohMH0sZnVuY3Rpb246L1thLXpBLVrQsC3Rj9CQLdCvX1x1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDBGRiRdW1x30LAt0Y/QkC3Qr1x1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDBGRiRdKlxzKig/PVwoKS8sbnVtYmVyOi9cYlxkKyg/OlwuXGQrKT9cYnxcQlwuXGQrXGIvLG9wZXJhdG9yOi9bPD4hXT0/fC18XCt8JiZ8PT18XHxcfD98XC9cLz98Wz86Kl4lXS8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxrZXl3b3JkOi9cYmluXGIvLHB1bmN0dWF0aW9uOi9be31bXF0oKSwuXS99fXJldHVybiBwZn12YXIgZmYsV0E7ZnVuY3Rpb24gUVUoKXtpZihXQSlyZXR1cm4gZmY7V0E9MSxmZj1lLGUuZGlzcGxheU5hbWU9ImpvbGllIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5qb2xpZT1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7c3RyaW5nOntwYXR0ZXJuOi8oXnxbXlxcXSkiKD86XFxbXHNcU118W14iXFxdKSoiLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oKD86XGIoPzphc3xjb3VyaWVyfGVtYmVkfGlufGlucHV0UG9ydHxvdXRwdXRQb3J0fHNlcnZpY2UpXGJ8QClbIFx0XSopXHcrLyxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOi9cYig/OmFzfGNIfGNvbXB8Y29uY3VycmVudHxjb25zdGFudHN8Y291cmllcnxjc2V0fGNzZXRzfGRlZmF1bHR8ZGVmaW5lfGVsc2V8ZW1iZWR8ZW1iZWRkZWR8ZXhlY3V0aW9ufGV4aXR8ZXh0ZW5kZXJ8Zm9yfGZvcmVhY2h8Zm9yd2FyZHxmcm9tfGdsb2JhbHxpZnxpbXBvcnR8aW58aW5jbHVkZXxpbml0fGlucHV0UG9ydHxpbnN0YWxsfGluc3RhbmNlb2Z8aW50ZXJmYWNlfGlzX2RlZmluZWR8bGlua0lufGxpbmtPdXR8bWFpbnxuZXd8bnVsbFByb2Nlc3N8b3V0cHV0UG9ydHxvdmVyfHByaXZhdGV8cHJvdmlkZXxwdWJsaWN8c2NvcGV8c2VxdWVudGlhbHxzZXJ2aWNlfHNpbmdsZXxzcGF3bnxzeW5jaHJvbml6ZWR8dGhpc3x0aHJvd3x0aHJvd3N8dHlwZXx1bmRlZnx1bnRpbHx3aGlsZXx3aXRoKVxiLyxmdW5jdGlvbjovXGJbYS16X11cdyooPz1bIFx0XSpbQChdKS9pLG51bWJlcjovKD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZVsrLV0/XGQrKT9sPy9pLG9wZXJhdG9yOi8tWy09Pl0/fFwrWys9XT98PFs8PV0/fFs+PSohXT0/fCYmfFx8XHx8Wz9cLyVeQHxdLyxwdW5jdHVhdGlvbjovWygpW1xde30sOy46XS8sYnVpbHRpbjovXGIoPzpCeXRlfGFueXxib29sfGNoYXJ8ZG91YmxlfGVudW18ZmxvYXR8aW50fGxlbmd0aHxsb25nfHJhbmdlc3xyZWdleHxzdHJpbmd8dW5kZWZpbmVkfHZvaWQpXGIvfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqb2xpZSIsImtleXdvcmQiLHthZ2dyZWdhdGVzOntwYXR0ZXJuOi8oXGJBZ2dyZWdhdGVzXHMqOlxzKikoPzpcdysoPzpccyt3aXRoXHMrXHcrKT9ccyosXHMqKSpcdysoPzpccyt3aXRoXHMrXHcrKT8vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9cYndpdGhcYi8sImNsYXNzLW5hbWUiOi9cdysvLHB1bmN0dWF0aW9uOi8sL319LHJlZGlyZWN0czp7cGF0dGVybjovKFxiUmVkaXJlY3RzXHMqOlxzKikoPzpcdytccyo9PlxzKlx3K1xzKixccyopKig/Olx3K1xzKj0+XHMqXHcrKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi8sLywiY2xhc3MtbmFtZSI6L1x3Ky8sb3BlcmF0b3I6Lz0+L319LHByb3BlcnR5OntwYXR0ZXJuOi9cYig/OkFnZ3JlZ2F0ZXN8W0lpXW50ZXJmYWNlc3xKYXZhfEphdmFzY3JpcHR8Sm9saWV8W0xsXW9jYXRpb258T25lV2F5fFtQcF1yb3RvY29sfFJlZGlyZWN0c3xSZXF1ZXN0UmVzcG9uc2UpXGIoPz1bIFx0XSo6KS99fSl9cmV0dXJuIGZmfXZhciBnZixYQTtmdW5jdGlvbiBKVSgpe2lmKFhBKXJldHVybiBnZjtYQT0xLGdmPWUsZS5kaXNwbGF5TmFtZT0ianEiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vXFxcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpLy5zb3VyY2UsbD1SZWdFeHAoLyhefFteXFxdKSIoPzpbXiJcclxuXFxdfFxcW15cclxuKF18X18pKiIvLnNvdXJjZS5yZXBsYWNlKC9fXy9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksdT17aW50ZXJwb2xhdGlvbjp7cGF0dGVybjpSZWdFeHAoLygoPzpefFteXFxdKSg/OlxcezJ9KSopLy5zb3VyY2UraSksbG9va2JlaGluZDohMCxpbnNpZGU6e2NvbnRlbnQ6e3BhdHRlcm46L14oXFxcKClbXHNcU10rKD89XCkkKS8sbG9va2JlaGluZDohMCxpbnNpZGU6bnVsbH0scHVuY3R1YXRpb246L15cXFwofFwpJC99fX0sYz1hLmxhbmd1YWdlcy5qcT17Y29tbWVudDovIy4qLyxwcm9wZXJ0eTp7cGF0dGVybjpSZWdFeHAobC5zb3VyY2UrLyg/PVxzKjooPyE6KSkvLnNvdXJjZSksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOnV9LHN0cmluZzp7cGF0dGVybjpsLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp1fSxmdW5jdGlvbjp7cGF0dGVybjovKFxiZGVmXHMrKVthLXpfXVx3Ky9pLGxvb2tiZWhpbmQ6ITB9LHZhcmlhYmxlOi9cQlwkXHcrLywicHJvcGVydHktbGl0ZXJhbCI6e3BhdHRlcm46L1xiW2Etel9dXHcqKD89XHMqOig/ITopKS9pLGFsaWFzOiJwcm9wZXJ0eSJ9LGtleXdvcmQ6L1xiKD86YXN8YnJlYWt8Y2F0Y2h8ZGVmfGVsaWZ8ZWxzZXxlbmR8Zm9yZWFjaHxpZnxpbXBvcnR8aW5jbHVkZXxsYWJlbHxtb2R1bGV8bW9kdWxlbWV0YXxudWxsfHJlZHVjZXx0aGVufHRyeXx3aGlsZSlcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6Lyg/OlxiXGQrXC58XEJcLik/XGJcZCsoPzpbZUVdWystXT9cZCspP1xiLyxvcGVyYXRvcjpbe3BhdHRlcm46L1x8PT8vLGFsaWFzOiJwaXBlIn0sL1wuXC58WyE9PD5dPz18XD9cL1wvfFwvXC89P3xbLSsqLyVdPT98Wzw+P118XGIoPzphbmR8bm90fG9yKVxiL10sImMtc3R5bGUtZnVuY3Rpb24iOntwYXR0ZXJuOi9cYlthLXpfXVx3Kig/PVxzKlwoKS9pLGFsaWFzOiJmdW5jdGlvbiJ9LHB1bmN0dWF0aW9uOi86OnxbKClcW1xde30sOjtdfFwuKD89XHMqW1xbXHckXSkvLGRvdDp7cGF0dGVybjovXC4vLGFsaWFzOiJpbXBvcnRhbnQifX07dS5pbnRlcnBvbGF0aW9uLmluc2lkZS5jb250ZW50Lmluc2lkZT1jfSkobil9cmV0dXJuIGdmfXZhciBtZixaQTtmdW5jdGlvbiBlRigpe2lmKFpBKXJldHVybiBtZjtaQT0xLG1mPWUsZS5kaXNwbGF5TmFtZT0ianNFeHRyYXMiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXthLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImphdmFzY3JpcHQiLCJmdW5jdGlvbi12YXJpYWJsZSIseyJtZXRob2QtdmFyaWFibGUiOntwYXR0ZXJuOlJlZ0V4cCgiKFxcLlxccyopIithLmxhbmd1YWdlcy5qYXZhc2NyaXB0WyJmdW5jdGlvbi12YXJpYWJsZSJdLnBhdHRlcm4uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOlsiZnVuY3Rpb24tdmFyaWFibGUiLCJtZXRob2QiLCJmdW5jdGlvbiIsInByb3BlcnR5LWFjY2VzcyJdfX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiamF2YXNjcmlwdCIsImZ1bmN0aW9uIix7bWV0aG9kOntwYXR0ZXJuOlJlZ0V4cCgiKFxcLlxccyopIithLmxhbmd1YWdlcy5qYXZhc2NyaXB0LmZ1bmN0aW9uLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczpbImZ1bmN0aW9uIiwicHJvcGVydHktYWNjZXNzIl19fSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhc2NyaXB0IiwiY29uc3RhbnQiLHsia25vd24tY2xhc3MtbmFtZSI6W3twYXR0ZXJuOi9cYig/Oig/OkZsb2F0KD86MzJ8NjQpfCg/OkludHxVaW50KSg/Ojh8MTZ8MzIpfFVpbnQ4Q2xhbXBlZCk/QXJyYXl8QXJyYXlCdWZmZXJ8QmlnSW50fEJvb2xlYW58RGF0YVZpZXd8RGF0ZXxFcnJvcnxGdW5jdGlvbnxJbnRsfEpTT058KD86V2Vhayk/KD86TWFwfFNldCl8TWF0aHxOdW1iZXJ8T2JqZWN0fFByb21pc2V8UHJveHl8UmVmbGVjdHxSZWdFeHB8U3RyaW5nfFN5bWJvbHxXZWJBc3NlbWJseSlcYi8sYWxpYXM6ImNsYXNzLW5hbWUifSx7cGF0dGVybjovXGIoPzpbQS1aXVx3KilFcnJvclxiLyxhbGlhczoiY2xhc3MtbmFtZSJ9XX0pO2Z1bmN0aW9uIGkobSxiKXtyZXR1cm4gUmVnRXhwKG0ucmVwbGFjZSgvPElEPi9nLGZ1bmN0aW9uKCl7cmV0dXJuLyg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKi8uc291cmNlfSksYil9YS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhc2NyaXB0Iiwia2V5d29yZCIse2ltcG9ydHM6e3BhdHRlcm46aSgvKFxiaW1wb3J0XGJccyopKD86PElEPig/OlxzKixccyooPzpcKlxzKmFzXHMrPElEPnxce1tee31dKlx9KSk/fFwqXHMqYXNccys8SUQ+fFx7W157fV0qXH0pKD89XHMqXGJmcm9tXGIpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmEubGFuZ3VhZ2VzLmphdmFzY3JpcHR9LGV4cG9ydHM6e3BhdHRlcm46aSgvKFxiZXhwb3J0XGJccyopKD86XCooPzpccyphc1xzKzxJRD4pPyg/PVxzKlxiZnJvbVxiKXxce1tee31dKlx9KS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGluc2lkZTphLmxhbmd1YWdlcy5qYXZhc2NyaXB0fX0pLGEubGFuZ3VhZ2VzLmphdmFzY3JpcHQua2V5d29yZC51bnNoaWZ0KHtwYXR0ZXJuOi9cYig/OmFzfGRlZmF1bHR8ZXhwb3J0fGZyb218aW1wb3J0KVxiLyxhbGlhczoibW9kdWxlIn0se3BhdHRlcm46L1xiKD86YXdhaXR8YnJlYWt8Y2F0Y2h8Y29udGludWV8ZG98ZWxzZXxmaW5hbGx5fGZvcnxpZnxyZXR1cm58c3dpdGNofHRocm93fHRyeXx3aGlsZXx5aWVsZClcYi8sYWxpYXM6ImNvbnRyb2wtZmxvdyJ9LHtwYXR0ZXJuOi9cYm51bGxcYi8sYWxpYXM6WyJudWxsIiwibmlsIl19LHtwYXR0ZXJuOi9cYnVuZGVmaW5lZFxiLyxhbGlhczoibmlsIn0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiamF2YXNjcmlwdCIsIm9wZXJhdG9yIix7c3ByZWFkOntwYXR0ZXJuOi9cLnszfS8sYWxpYXM6Im9wZXJhdG9yIn0sYXJyb3c6e3BhdHRlcm46Lz0+LyxhbGlhczoib3BlcmF0b3IifX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiamF2YXNjcmlwdCIsInB1bmN0dWF0aW9uIix7InByb3BlcnR5LWFjY2VzcyI6e3BhdHRlcm46aSgvKFwuXHMqKSM/PElEPi8uc291cmNlKSxsb29rYmVoaW5kOiEwfSwibWF5YmUtY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhefFteJFx3XHhBMC1cdUZGRkZdKVtBLVpdWyRcd1x4QTAtXHVGRkZGXSsvLGxvb2tiZWhpbmQ6ITB9LGRvbTp7cGF0dGVybjovXGIoPzpkb2N1bWVudHwoPzpsb2NhbHxzZXNzaW9uKVN0b3JhZ2V8bG9jYXRpb258bmF2aWdhdG9yfHBlcmZvcm1hbmNlfHdpbmRvdylcYi8sYWxpYXM6InZhcmlhYmxlIn0sY29uc29sZTp7cGF0dGVybjovXGJjb25zb2xlKD89XHMqXC4pLyxhbGlhczoiY2xhc3MtbmFtZSJ9fSk7Zm9yKHZhciBsPVsiZnVuY3Rpb24iLCJmdW5jdGlvbi12YXJpYWJsZSIsIm1ldGhvZCIsIm1ldGhvZC12YXJpYWJsZSIsInByb3BlcnR5LWFjY2VzcyJdLHU9MDt1PGwubGVuZ3RoO3UrKyl7dmFyIGM9bFt1XSxkPWEubGFuZ3VhZ2VzLmphdmFzY3JpcHRbY107YS51dGlsLnR5cGUoZCk9PT0iUmVnRXhwIiYmKGQ9YS5sYW5ndWFnZXMuamF2YXNjcmlwdFtjXT17cGF0dGVybjpkfSk7dmFyIGY9ZC5pbnNpZGV8fHt9O2QuaW5zaWRlPWYsZlsibWF5YmUtY2xhc3MtbmFtZSJdPS9eW0EtWl1bXHNcU10qL319KShuKX1yZXR1cm4gbWZ9dmFyIGhmLFFBO2Z1bmN0aW9uIHRGKCl7aWYoUUEpcmV0dXJuIGhmO1FBPTEsaGY9ZSxlLmRpc3BsYXlOYW1lPSJqc1RlbXBsYXRlcyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPWEubGFuZ3VhZ2VzLmphdmFzY3JpcHRbInRlbXBsYXRlLXN0cmluZyJdLGw9aS5wYXR0ZXJuLnNvdXJjZSx1PWkuaW5zaWRlLmludGVycG9sYXRpb24sYz11Lmluc2lkZVsiaW50ZXJwb2xhdGlvbi1wdW5jdHVhdGlvbiJdLGQ9dS5wYXR0ZXJuLnNvdXJjZTtmdW5jdGlvbiBmKFQsQyl7aWYoYS5sYW5ndWFnZXNbVF0pcmV0dXJue3BhdHRlcm46UmVnRXhwKCIoKD86IitDKyIpXFxzKikiK2wpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7InRlbXBsYXRlLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXmB8YCQvLGFsaWFzOiJzdHJpbmcifSwiZW1iZWRkZWQtY29kZSI6e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOlR9fX19YS5sYW5ndWFnZXMuamF2YXNjcmlwdFsidGVtcGxhdGUtc3RyaW5nIl09W2YoImNzcyIsL1xiKD86c3R5bGVkKD86XChbXildKlwpKT8oPzpccypcLlxzKlx3Kyg/OlwoW14pXSpcKSkqKSp8Y3NzKD86XHMqXC5ccyooPzpnbG9iYWx8cmVzb2x2ZSkpP3xjcmVhdGVHbG9iYWxTdHlsZXxrZXlmcmFtZXMpLy5zb3VyY2UpLGYoImh0bWwiLC9cYmh0bWx8XC5ccyooPzppbm5lcnxvdXRlcilIVE1MXHMqXCs/PS8uc291cmNlKSxmKCJzdmciLC9cYnN2Zy8uc291cmNlKSxmKCJtYXJrZG93biIsL1xiKD86bWFya2Rvd258bWQpLy5zb3VyY2UpLGYoImdyYXBocWwiLC9cYig/OmdxbHxncmFwaHFsKD86XHMqXC5ccypleHBlcmltZW50YWwpPykvLnNvdXJjZSksZigic3FsIiwvXGJzcWwvLnNvdXJjZSksaV0uZmlsdGVyKEJvb2xlYW4pO2Z1bmN0aW9uIG0oVCxDKXtyZXR1cm4iX19fIitDLnRvVXBwZXJDYXNlKCkrIl8iK1QrIl9fXyJ9ZnVuY3Rpb24gYihULEMseCl7dmFyIE49e2NvZGU6VCxncmFtbWFyOkMsbGFuZ3VhZ2U6eH07cmV0dXJuIGEuaG9va3MucnVuKCJiZWZvcmUtdG9rZW5pemUiLE4pLE4udG9rZW5zPWEudG9rZW5pemUoTi5jb2RlLE4uZ3JhbW1hciksYS5ob29rcy5ydW4oImFmdGVyLXRva2VuaXplIixOKSxOLnRva2Vuc31mdW5jdGlvbiBoKFQpe3ZhciBDPXt9O0NbImludGVycG9sYXRpb24tcHVuY3R1YXRpb24iXT1jO3ZhciB4PWEudG9rZW5pemUoVCxDKTtpZih4Lmxlbmd0aD09PTMpe3ZhciBOPVsxLDFdO04ucHVzaC5hcHBseShOLGIoeFsxXSxhLmxhbmd1YWdlcy5qYXZhc2NyaXB0LCJqYXZhc2NyaXB0IikpLHguc3BsaWNlLmFwcGx5KHgsTil9cmV0dXJuIG5ldyBhLlRva2VuKCJpbnRlcnBvbGF0aW9uIix4LHUuYWxpYXMsVCl9ZnVuY3Rpb24gUyhULEMseCl7dmFyIE49YS50b2tlbml6ZShULHtpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOlJlZ0V4cChkKSxsb29rYmVoaW5kOiEwfX0pLGs9MCxMPXt9LEY9Ti5tYXAoZnVuY3Rpb24oeil7aWYodHlwZW9mIHo9PSJzdHJpbmciKXJldHVybiB6O2Zvcih2YXIgVT16LmNvbnRlbnQsJDtULmluZGV4T2YoJD1tKGsrKyx4KSkhPT0tMTspO3JldHVybiBMWyRdPVUsJH0pLmpvaW4oIiIpLFI9YihGLEMseCksTT1PYmplY3Qua2V5cyhMKTtrPTA7ZnVuY3Rpb24gWSh6KXtmb3IodmFyIFU9MDtVPHoubGVuZ3RoO1UrKyl7aWYoaz49TS5sZW5ndGgpcmV0dXJuO3ZhciAkPXpbVV07aWYodHlwZW9mICQ9PSJzdHJpbmcifHx0eXBlb2YgJC5jb250ZW50PT0ic3RyaW5nIil7dmFyIEo9TVtrXSxvZT10eXBlb2YgJD09InN0cmluZyI/JDokLmNvbnRlbnQsaWU9b2UuaW5kZXhPZihKKTtpZihpZSE9PS0xKXsrK2s7dmFyIGxlPW9lLnN1YnN0cmluZygwLGllKSxHPWgoTFtKXSksZWU9b2Uuc3Vic3RyaW5nKGllK0oubGVuZ3RoKSxuZT1bXTtpZihsZSYmbmUucHVzaChsZSksbmUucHVzaChHKSxlZSl7dmFyIGZlPVtlZV07WShmZSksbmUucHVzaC5hcHBseShuZSxmZSl9dHlwZW9mICQ9PSJzdHJpbmciPyh6LnNwbGljZS5hcHBseSh6LFtVLDFdLmNvbmNhdChuZSkpLFUrPW5lLmxlbmd0aC0xKTokLmNvbnRlbnQ9bmV9fWVsc2V7dmFyIEk9JC5jb250ZW50O0FycmF5LmlzQXJyYXkoSSk/WShJKTpZKFtJXSl9fX1yZXR1cm4gWShSKSxuZXcgYS5Ub2tlbih4LFIsImxhbmd1YWdlLSIreCxUKX12YXIgRT17amF2YXNjcmlwdDohMCxqczohMCx0eXBlc2NyaXB0OiEwLHRzOiEwLGpzeDohMCx0c3g6ITB9O2EuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24oVCl7aWYoIShULmxhbmd1YWdlIGluIEUpKXJldHVybjtmdW5jdGlvbiBDKHgpe2Zvcih2YXIgTj0wLGs9eC5sZW5ndGg7TjxrO04rKyl7dmFyIEw9eFtOXTtpZih0eXBlb2YgTCE9InN0cmluZyIpe3ZhciBGPUwuY29udGVudDtpZighQXJyYXkuaXNBcnJheShGKSl7dHlwZW9mIEYhPSJzdHJpbmciJiZDKFtGXSk7Y29udGludWV9aWYoTC50eXBlPT09InRlbXBsYXRlLXN0cmluZyIpe3ZhciBSPUZbMV07aWYoRi5sZW5ndGg9PT0zJiZ0eXBlb2YgUiE9InN0cmluZyImJlIudHlwZT09PSJlbWJlZGRlZC1jb2RlIil7dmFyIE09XyhSKSxZPVIuYWxpYXMsej1BcnJheS5pc0FycmF5KFkpP1lbMF06WSxVPWEubGFuZ3VhZ2VzW3pdO2lmKCFVKWNvbnRpbnVlO0ZbMV09UyhNLFUseil9fWVsc2UgQyhGKX19fUMoVC50b2tlbnMpfSk7ZnVuY3Rpb24gXyhUKXtyZXR1cm4gdHlwZW9mIFQ9PSJzdHJpbmciP1Q6QXJyYXkuaXNBcnJheShUKT9ULm1hcChfKS5qb2luKCIiKTpfKFQuY29udGVudCl9fSkobil9cmV0dXJuIGhmfXZhciBiZixKQTtmdW5jdGlvbiBpYigpe2lmKEpBKXJldHVybiBiZjtKQT0xLGJmPWUsZS5kaXNwbGF5TmFtZT0idHlwZXNjcmlwdCIsZS5hbGlhc2VzPVsidHMiXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXthLmxhbmd1YWdlcy50eXBlc2NyaXB0PWEubGFuZ3VhZ2VzLmV4dGVuZCgiamF2YXNjcmlwdCIseyJjbGFzcy1uYW1lIjp7cGF0dGVybjovKFxiKD86Y2xhc3N8ZXh0ZW5kc3xpbXBsZW1lbnRzfGluc3RhbmNlb2Z8aW50ZXJmYWNlfG5ld3x0eXBlKVxzKykoPyFrZXlvZlxiKSg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKig/OlxzKjwoPzpbXjw+XXw8KD86W148Pl18PFtePD5dKj4pKj4pKj4pPy8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOm51bGx9LGJ1aWx0aW46L1xiKD86QXJyYXl8RnVuY3Rpb258UHJvbWlzZXxhbnl8Ym9vbGVhbnxjb25zb2xlfG5ldmVyfG51bWJlcnxzdHJpbmd8c3ltYm9sfHVua25vd24pXGIvfSksYS5sYW5ndWFnZXMudHlwZXNjcmlwdC5rZXl3b3JkLnB1c2goL1xiKD86YWJzdHJhY3R8ZGVjbGFyZXxpc3xrZXlvZnxyZWFkb25seXxyZXF1aXJlKVxiLywvXGIoPzphc3NlcnRzfGluZmVyfGludGVyZmFjZXxtb2R1bGV8bmFtZXNwYWNlfHR5cGUpXGIoPz1ccyooPzpbe18kYS16QS1aXHhBMC1cdUZGRkZdfCQpKS8sL1xidHlwZVxiKD89XHMqKD86W1x7Kl18JCkpLyksZGVsZXRlIGEubGFuZ3VhZ2VzLnR5cGVzY3JpcHQucGFyYW1ldGVyLGRlbGV0ZSBhLmxhbmd1YWdlcy50eXBlc2NyaXB0WyJsaXRlcmFsLXByb3BlcnR5Il07dmFyIGk9YS5sYW5ndWFnZXMuZXh0ZW5kKCJ0eXBlc2NyaXB0Iix7fSk7ZGVsZXRlIGlbImNsYXNzLW5hbWUiXSxhLmxhbmd1YWdlcy50eXBlc2NyaXB0WyJjbGFzcy1uYW1lIl0uaW5zaWRlPWksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJ0eXBlc2NyaXB0IiwiZnVuY3Rpb24iLHtkZWNvcmF0b3I6e3BhdHRlcm46L0BbJFx3XHhBMC1cdUZGRkZdKy8saW5zaWRlOnthdDp7cGF0dGVybjovXkAvLGFsaWFzOiJvcGVyYXRvciJ9LGZ1bmN0aW9uOi9eW1xzXFNdKy99fSwiZ2VuZXJpYy1mdW5jdGlvbiI6e3BhdHRlcm46LyM/KD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqXHMqPCg/OltePD5dfDwoPzpbXjw+XXw8W148Pl0qPikqPikqPig/PVxzKlwoKS8sZ3JlZWR5OiEwLGluc2lkZTp7ZnVuY3Rpb246L14jPyg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKi8sZ2VuZXJpYzp7cGF0dGVybjovPFtcc1xTXSsvLGFsaWFzOiJjbGFzcy1uYW1lIixpbnNpZGU6aX19fX0pLGEubGFuZ3VhZ2VzLnRzPWEubGFuZ3VhZ2VzLnR5cGVzY3JpcHR9KShuKX1yZXR1cm4gYmZ9dmFyIHlmLGVfO2Z1bmN0aW9uIG5GKCl7aWYoZV8pcmV0dXJuIHlmO2VfPTE7dmFyIGU9WWwoKSxuPWliKCk7eWY9YSxhLmRpc3BsYXlOYW1lPSJqc2RvYyIsYS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGEoaSl7aS5yZWdpc3RlcihlKSxpLnJlZ2lzdGVyKG4pLChmdW5jdGlvbihsKXt2YXIgdT1sLmxhbmd1YWdlcy5qYXZhc2NyaXB0LGM9L1x7KD86W157fV18XHsoPzpbXnt9XXxce1tee31dKlx9KSpcfSkrXH0vLnNvdXJjZSxkPSIoQCg/OmFyZ3xhcmd1bWVudHxwYXJhbXxwcm9wZXJ0eSlcXHMrKD86IitjKyJcXHMrKT8pIjtsLmxhbmd1YWdlcy5qc2RvYz1sLmxhbmd1YWdlcy5leHRlbmQoImphdmFkb2NsaWtlIix7cGFyYW1ldGVyOntwYXR0ZXJuOlJlZ0V4cChkKy8oPzooPyFccylbJFx3XHhBMC1cdUZGRkYuXSkrKD89XHN8JCkvLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fX0pLGwubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgianNkb2MiLCJrZXl3b3JkIix7Im9wdGlvbmFsLXBhcmFtZXRlciI6e3BhdHRlcm46UmVnRXhwKGQrL1xbKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGLl0pKyg/Oj1bXltcXV0rKT9cXSg/PVxzfCQpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwYXJhbWV0ZXI6e3BhdHRlcm46LyheXFspWyRcd1x4QTAtXHVGRkZGXC5dKy8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSxjb2RlOntwYXR0ZXJuOi8oPSlbXHNcU10qKD89XF0kKS8sbG9va2JlaGluZDohMCxpbnNpZGU6dSxhbGlhczoibGFuZ3VhZ2UtamF2YXNjcmlwdCJ9LHB1bmN0dWF0aW9uOi9bPVtcXV0vfX0sImNsYXNzLW5hbWUiOlt7cGF0dGVybjpSZWdFeHAoLyhAKD86YXVnbWVudHN8Y2xhc3N8ZXh0ZW5kc3xpbnRlcmZhY2V8bWVtYmVyb2YhP3x0ZW1wbGF0ZXx0aGlzfHR5cGVkZWYpXHMrKD86PFRZUEU+XHMrKT8pW0EtWl1cdyooPzpcLltBLVpdXHcqKSovLnNvdXJjZS5yZXBsYWNlKC88VFlQRT4vZyxmdW5jdGlvbigpe3JldHVybiBjfSkpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0se3BhdHRlcm46UmVnRXhwKCIoQFthLXpdK1xccyspIitjKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7c3RyaW5nOnUuc3RyaW5nLG51bWJlcjp1Lm51bWJlcixib29sZWFuOnUuYm9vbGVhbixrZXl3b3JkOmwubGFuZ3VhZ2VzLnR5cGVzY3JpcHQua2V5d29yZCxvcGVyYXRvcjovPT58XC5cLlwufFsmfD86Kl0vLHB1bmN0dWF0aW9uOi9bLiw7PTw+e30oKVtcXV0vfX1dLGV4YW1wbGU6e3BhdHRlcm46LyhAZXhhbXBsZVxzKyg/IVxzKSkoPzpbXkBcc118XHMrKD8hXHMpKSs/KD89XHMqKD86XCpccyopPyg/OkBcd3xcKlwvKSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntjb2RlOntwYXR0ZXJuOi9eKFtcdCBdKig/OlwqXHMqKT8pXFMuKiQvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp1LGFsaWFzOiJsYW5ndWFnZS1qYXZhc2NyaXB0In19fX0pLGwubGFuZ3VhZ2VzLmphdmFkb2NsaWtlLmFkZFN1cHBvcnQoImphdmFzY3JpcHQiLGwubGFuZ3VhZ2VzLmpzZG9jKX0pKGkpfXJldHVybiB5Zn12YXIgRWYsdF87ZnVuY3Rpb24gb2IoKXtpZih0XylyZXR1cm4gRWY7dF89MSxFZj1lLGUuZGlzcGxheU5hbWU9Impzb24iLGUuYWxpYXNlcz1bIndlYm1hbmlmZXN0Il07ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5qc29uPXtwcm9wZXJ0eTp7cGF0dGVybjovKF58W15cXF0pIig/OlxcLnxbXlxcIlxyXG5dKSoiKD89XHMqOikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyhefFteXFxdKSIoPzpcXC58W15cXCJcclxuXSkqIig/IVxzKjopLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sY29tbWVudDp7cGF0dGVybjovXC9cLy4qfFwvXCpbXHNcU10qPyg/OlwqXC98JCkvLGdyZWVkeTohMH0sbnVtYmVyOi8tP1xiXGQrKD86XC5cZCspPyg/OmVbKy1dP1xkKyk/XGIvaSxwdW5jdHVhdGlvbjovW3t9W1xdLF0vLG9wZXJhdG9yOi86Lyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG51bGw6e3BhdHRlcm46L1xibnVsbFxiLyxhbGlhczoia2V5d29yZCJ9fSxuLmxhbmd1YWdlcy53ZWJtYW5pZmVzdD1uLmxhbmd1YWdlcy5qc29ufXJldHVybiBFZn12YXIgU2Ysbl87ZnVuY3Rpb24gckYoKXtpZihuXylyZXR1cm4gU2Y7bl89MTt2YXIgZT1vYigpO1NmPW4sbi5kaXNwbGF5TmFtZT0ianNvbjUiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksKGZ1bmN0aW9uKGkpe3ZhciBsPS8oInwnKSg/OlxcKD86XHJcbj98XG58Lil8KD8hXDEpW15cXFxyXG5dKSpcMS87aS5sYW5ndWFnZXMuanNvbjU9aS5sYW5ndWFnZXMuZXh0ZW5kKCJqc29uIix7cHJvcGVydHk6W3twYXR0ZXJuOlJlZ0V4cChsLnNvdXJjZSsiKD89XFxzKjopIiksZ3JlZWR5OiEwfSx7cGF0dGVybjovKD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKD89XHMqOikvLGFsaWFzOiJ1bnF1b3RlZCJ9XSxzdHJpbmc6e3BhdHRlcm46bCxncmVlZHk6ITB9LG51bWJlcjovWystXT9cYig/Ok5hTnxJbmZpbml0eXwweFthLWZBLUZcZF0rKVxifFsrLV0/KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W2VFXVsrLV0/XGQrXGIpPy99KX0pKGEpfXJldHVybiBTZn12YXIgdmYscl87ZnVuY3Rpb24gYUYoKXtpZihyXylyZXR1cm4gdmY7cl89MTt2YXIgZT1vYigpO3ZmPW4sbi5kaXNwbGF5TmFtZT0ianNvbnAiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksYS5sYW5ndWFnZXMuanNvbnA9YS5sYW5ndWFnZXMuZXh0ZW5kKCJqc29uIix7cHVuY3R1YXRpb246L1t7fVtcXSgpOywuXS99KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImpzb25wIiwicHVuY3R1YXRpb24iLHtmdW5jdGlvbjovKD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKD89XHMqXCgpL30pfXJldHVybiB2Zn12YXIgVGYsYV87ZnVuY3Rpb24gaUYoKXtpZihhXylyZXR1cm4gVGY7YV89MSxUZj1lLGUuZGlzcGxheU5hbWU9Impzc3RhY2t0cmFjZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuanNzdGFja3RyYWNlPXsiZXJyb3ItbWVzc2FnZSI6e3BhdHRlcm46L15cUy4qL20sYWxpYXM6InN0cmluZyJ9LCJzdGFjay1mcmFtZSI6e3BhdHRlcm46LyheWyBcdF0rKWF0WyBcdF0uKi9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsibm90LW15LWNvZGUiOntwYXR0ZXJuOi9eYXRbIFx0XSsoPyFccykoPzpub2RlXC5qc3w8dW5rbm93bj58LiooPzpub2RlX21vZHVsZXN8XCg8YW5vbnltb3VzPlwpfFwoPHVua25vd24+fDxhbm9ueW1vdXM+JHxcKGludGVybmFsXC98XChub2RlXC5qcykpLiovbSxhbGlhczoiY29tbWVudCJ9LGZpbGVuYW1lOntwYXR0ZXJuOi8oXGJhdFxzKyg/IVxzKXxcKCkoPzpbYS16QS1aXTopP1teKCk6XSsoPz06KS8sbG9va2JlaGluZDohMCxhbGlhczoidXJsIn0sZnVuY3Rpb246e3BhdHRlcm46LyhcYmF0XHMrKD86bmV3XHMrKT8pKD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkY8XVsuJFx3XHhBMC1cdUZGRkY8Pl0qLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LHB1bmN0dWF0aW9uOi9bKCldLyxrZXl3b3JkOi9cYig/OmF0fG5ldylcYi8sYWxpYXM6e3BhdHRlcm46L1xbKD86YXNccyspPyg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXVskXHdceEEwLVx1RkZGRl0qXF0vLGFsaWFzOiJ2YXJpYWJsZSJ9LCJsaW5lLW51bWJlciI6e3BhdHRlcm46LzpcZCsoPzo6XGQrKT9cYi8sYWxpYXM6Im51bWJlciIsaW5zaWRlOntwdW5jdHVhdGlvbjovOi99fX19fX1yZXR1cm4gVGZ9dmFyIHhmLGlfO2Z1bmN0aW9uIG1rKCl7aWYoaV8pcmV0dXJuIHhmO2lfPTEseGY9ZSxlLmRpc3BsYXlOYW1lPSJqc3giLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT1hLnV0aWwuY2xvbmUoYS5sYW5ndWFnZXMuamF2YXNjcmlwdCksbD0vKD86XHN8XC9cLy4qKD8hLil8XC9cKig/OlteKl18XCooPyFcLykpXCpcLykvLnNvdXJjZSx1PS8oPzpceyg/Olx7KD86XHtbXnt9XSpcfXxbXnt9XSkqXH18W157fV0pKlx9KS8uc291cmNlLGM9Lyg/Olx7PFM+KlwuezN9KD86W157fV18PEJSQUNFUz4pKlx9KS8uc291cmNlO2Z1bmN0aW9uIGQoYixoKXtyZXR1cm4gYj1iLnJlcGxhY2UoLzxTPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGx9KS5yZXBsYWNlKC88QlJBQ0VTPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHV9KS5yZXBsYWNlKC88U1BSRUFEPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGN9KSxSZWdFeHAoYixoKX1jPWQoYykuc291cmNlLGEubGFuZ3VhZ2VzLmpzeD1hLmxhbmd1YWdlcy5leHRlbmQoIm1hcmt1cCIsaSksYS5sYW5ndWFnZXMuanN4LnRhZy5wYXR0ZXJuPWQoLzxcLz8oPzpbXHcuOi1dKyg/OjxTPisoPzpbXHcuOiQtXSsoPzo9KD86Iig/OlxcW1xzXFNdfFteXFwiXSkqInwnKD86XFxbXHNcU118W15cXCddKSonfFteXHN7JyIvPj1dK3w8QlJBQ0VTPikpP3w8U1BSRUFEPikpKjxTPipcLz8pPz4vLnNvdXJjZSksYS5sYW5ndWFnZXMuanN4LnRhZy5pbnNpZGUudGFnLnBhdHRlcm49L148XC8/W15ccz5cL10qLyxhLmxhbmd1YWdlcy5qc3gudGFnLmluc2lkZVsiYXR0ci12YWx1ZSJdLnBhdHRlcm49Lz0oPyFceykoPzoiKD86XFxbXHNcU118W15cXCJdKSoifCcoPzpcXFtcc1xTXXxbXlxcJ10pKid8W15ccyciPl0rKS8sYS5sYW5ndWFnZXMuanN4LnRhZy5pbnNpZGUudGFnLmluc2lkZVsiY2xhc3MtbmFtZSJdPS9eW0EtWl1cdyooPzpcLltBLVpdXHcqKSokLyxhLmxhbmd1YWdlcy5qc3gudGFnLmluc2lkZS5jb21tZW50PWkuY29tbWVudCxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImluc2lkZSIsImF0dHItbmFtZSIse3NwcmVhZDp7cGF0dGVybjpkKC88U1BSRUFEPi8uc291cmNlKSxpbnNpZGU6YS5sYW5ndWFnZXMuanN4fX0sYS5sYW5ndWFnZXMuanN4LnRhZyksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJpbnNpZGUiLCJzcGVjaWFsLWF0dHIiLHtzY3JpcHQ6e3BhdHRlcm46ZCgvPTxCUkFDRVM+Ly5zb3VyY2UpLGFsaWFzOiJsYW5ndWFnZS1qYXZhc2NyaXB0IixpbnNpZGU6eyJzY3JpcHQtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9ePSg/PVx7KS8sYWxpYXM6InB1bmN0dWF0aW9uIn0scmVzdDphLmxhbmd1YWdlcy5qc3h9fX0sYS5sYW5ndWFnZXMuanN4LnRhZyk7dmFyIGY9ZnVuY3Rpb24oYil7cmV0dXJuIGI/dHlwZW9mIGI9PSJzdHJpbmciP2I6dHlwZW9mIGIuY29udGVudD09InN0cmluZyI/Yi5jb250ZW50OmIuY29udGVudC5tYXAoZikuam9pbigiIik6IiJ9LG09ZnVuY3Rpb24oYil7Zm9yKHZhciBoPVtdLFM9MDtTPGIubGVuZ3RoO1MrKyl7dmFyIEU9YltTXSxfPSExO2lmKHR5cGVvZiBFIT0ic3RyaW5nIiYmKEUudHlwZT09PSJ0YWciJiZFLmNvbnRlbnRbMF0mJkUuY29udGVudFswXS50eXBlPT09InRhZyI/RS5jb250ZW50WzBdLmNvbnRlbnRbMF0uY29udGVudD09PSI8LyI/aC5sZW5ndGg+MCYmaFtoLmxlbmd0aC0xXS50YWdOYW1lPT09ZihFLmNvbnRlbnRbMF0uY29udGVudFsxXSkmJmgucG9wKCk6RS5jb250ZW50W0UuY29udGVudC5sZW5ndGgtMV0uY29udGVudD09PSIvPiJ8fGgucHVzaCh7dGFnTmFtZTpmKEUuY29udGVudFswXS5jb250ZW50WzFdKSxvcGVuZWRCcmFjZXM6MH0pOmgubGVuZ3RoPjAmJkUudHlwZT09PSJwdW5jdHVhdGlvbiImJkUuY29udGVudD09PSJ7Ij9oW2gubGVuZ3RoLTFdLm9wZW5lZEJyYWNlcysrOmgubGVuZ3RoPjAmJmhbaC5sZW5ndGgtMV0ub3BlbmVkQnJhY2VzPjAmJkUudHlwZT09PSJwdW5jdHVhdGlvbiImJkUuY29udGVudD09PSJ9Ij9oW2gubGVuZ3RoLTFdLm9wZW5lZEJyYWNlcy0tOl89ITApLChffHx0eXBlb2YgRT09InN0cmluZyIpJiZoLmxlbmd0aD4wJiZoW2gubGVuZ3RoLTFdLm9wZW5lZEJyYWNlcz09PTApe3ZhciBUPWYoRSk7UzxiLmxlbmd0aC0xJiYodHlwZW9mIGJbUysxXT09InN0cmluZyJ8fGJbUysxXS50eXBlPT09InBsYWluLXRleHQiKSYmKFQrPWYoYltTKzFdKSxiLnNwbGljZShTKzEsMSkpLFM+MCYmKHR5cGVvZiBiW1MtMV09PSJzdHJpbmcifHxiW1MtMV0udHlwZT09PSJwbGFpbi10ZXh0IikmJihUPWYoYltTLTFdKStULGIuc3BsaWNlKFMtMSwxKSxTLS0pLGJbU109bmV3IGEuVG9rZW4oInBsYWluLXRleHQiLFQsbnVsbCxUKX1FLmNvbnRlbnQmJnR5cGVvZiBFLmNvbnRlbnQhPSJzdHJpbmciJiZtKEUuY29udGVudCl9fTthLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKGIpe2IubGFuZ3VhZ2UhPT0ianN4IiYmYi5sYW5ndWFnZSE9PSJ0c3gifHxtKGIudG9rZW5zKX0pfSkobil9cmV0dXJuIHhmfXZhciBBZixvXztmdW5jdGlvbiBvRigpe2lmKG9fKXJldHVybiBBZjtvXz0xLEFmPWUsZS5kaXNwbGF5TmFtZT0ianVsaWEiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmp1bGlhPXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzojPSg/OlteIz1dfD0oPyEjKXwjKD8hPSl8Iz0oPzpbXiM9XXw9KD8hIyl8Iyg/IT0pKSo9IykqPSN8Iy4qKS8sbG9va2JlaGluZDohMH0scmVnZXg6e3BhdHRlcm46L3IiKD86XFwufFteIlxcXHJcbl0pKiJbaW1zeF17MCw0fS8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIiIltcc1xTXSs/IiIifCg/OlxiXHcrKT8iKD86XFwufFteIlxcXHJcbl0pKiJ8YCg/OlteXFxgXHJcbl18XFwuKSpgLyxncmVlZHk6ITB9LGNoYXI6e3BhdHRlcm46LyhefFteXHcnXSknKD86XFxbXlxyXG5dW14nXHJcbl0qfFteXFxcclxuXSknLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphYnN0cmFjdHxiYXJlbW9kdWxlfGJlZ2lufGJpdHN0eXBlfGJyZWFrfGNhdGNofGNjYWxsfGNvbnN0fGNvbnRpbnVlfGRvfGVsc2V8ZWxzZWlmfGVuZHxleHBvcnR8ZmluYWxseXxmb3J8ZnVuY3Rpb258Z2xvYmFsfGlmfGltbXV0YWJsZXxpbXBvcnR8aW1wb3J0YWxsfGlufGxldHxsb2NhbHxtYWNyb3xtb2R1bGV8cHJpbnR8cHJpbnRsbnxxdW90ZXxyZXR1cm58c3RydWN0fHRyeXx0eXBlfHR5cGVhbGlhc3x1c2luZ3x3aGlsZSlcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6Lyg/OlxiKD89XGQpfFxCKD89XC4pKSg/OjBbYm94XSk/KD86W1xkYS1mXSsoPzpfW1xkYS1mXSspKig/OlwuKD86XGQrKD86X1xkKykqKT8pP3xcLlxkKyg/Ol9cZCspKikoPzpbZWZwXVsrLV0/XGQrKD86X1xkKykqKT9qPy9pLG9wZXJhdG9yOi8mJnxcfFx8fFstKypeJcO34oq7JiRcXF09P3xcL1tcLz1dP3whPT89P3xcfFs9Pl0/fDwoPzo8PT98Wz06fF0pP3w+KD86PXw+Pj89Pyk/fD09Pz0/fFt+4omg4omk4omlJ+KImuKIm10vLHB1bmN0dWF0aW9uOi86Oj98W3t9W1xdKCk7LC4/XS8sY29uc3RhbnQ6L1xiKD86KD86SW5mfE5hTikoPzoxNnwzMnw2NCk/fGltfHBpKVxifFvPgOKEr10vfX1yZXR1cm4gQWZ9dmFyIF9mLGxfO2Z1bmN0aW9uIGxGKCl7aWYobF8pcmV0dXJuIF9mO2xfPTEsX2Y9ZSxlLmRpc3BsYXlOYW1lPSJrZWVwYWxpdmVkIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5rZWVwYWxpdmVkPXtjb21tZW50OntwYXR0ZXJuOi9bIyFdLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oXnxbXlxcXSkoPzoiKD86XFwoPzpcclxufFtcc1xTXSl8W14iXFxcclxuXSkqInwnKD86XFwoPzpcclxufFtcc1xTXSl8W14nXFxcclxuXSkqJykvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxpcDp7cGF0dGVybjpSZWdFeHAoL1xiKD86KD86KD86W1xkYS1mXXsxLDR9Oil7N31bXGRhLWZdezEsNH18KD86W1xkYS1mXXsxLDR9Oil7Nn06W1xkYS1mXXsxLDR9fCg/OltcZGEtZl17MSw0fTopezV9Oig/OltcZGEtZl17MSw0fTopP1tcZGEtZl17MSw0fXwoPzpbXGRhLWZdezEsNH06KXs0fTooPzpbXGRhLWZdezEsNH06KXswLDJ9W1xkYS1mXXsxLDR9fCg/OltcZGEtZl17MSw0fTopezN9Oig/OltcZGEtZl17MSw0fTopezAsM31bXGRhLWZdezEsNH18KD86W1xkYS1mXXsxLDR9Oil7Mn06KD86W1xkYS1mXXsxLDR9Oil7MCw0fVtcZGEtZl17MSw0fXwoPzpbXGRhLWZdezEsNH06KXs2fTxpcHY0PnwoPzpbXGRhLWZdezEsNH06KXswLDV9OjxpcHY0Pnw6Oig/OltcZGEtZl17MSw0fTopezAsNX08aXB2ND58W1xkYS1mXXsxLDR9OjooPzpbXGRhLWZdezEsNH06KXswLDV9W1xkYS1mXXsxLDR9fDo6KD86W1xkYS1mXXsxLDR9Oil7MCw2fVtcZGEtZl17MSw0fXwoPzpbXGRhLWZdezEsNH06KXsxLDd9OikoPzpcL1xkezEsM30pP3w8aXB2ND4oPzpcL1xkezEsMn0pPylcYi8uc291cmNlLnJlcGxhY2UoLzxpcHY0Pi9nLGZ1bmN0aW9uKCl7cmV0dXJuLyg/Oig/Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZClcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKS8uc291cmNlfSksImkiKSxhbGlhczoibnVtYmVyIn0scGF0aDp7cGF0dGVybjovKFxzKVwvKD86W15cL1xzXStcLykqW15cL1xzXSp8XGJbYS16QS1aXTpcXCg/OlteXFxcc10rXFwpKlteXFxcc10qLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmcifSx2YXJpYWJsZTovXCRcez9cdytcfT8vLGVtYWlsOntwYXR0ZXJuOi9bXHctXStAW1x3LV0rKD86XC5bXHctXXsyLDN9KXsxLDJ9LyxhbGlhczoic3RyaW5nIn0sImNvbmRpdGlvbmFsLWNvbmZpZ3VyYXRpb24iOntwYXR0ZXJuOi9AXF4/W1x3LV0rLyxhbGlhczoidmFyaWFibGUifSxvcGVyYXRvcjovPS8scHJvcGVydHk6L1xiKD86QkZEX0NIRUNLfEROU19DSEVDS3xGSUxFX0NIRUNLfEhUVFBfR0VUfE1JU0NfQ0hFQ0t8TkFNRXxQSU5HX0NIRUNLfFNDUklQVFN8U01UUF9DSEVDS3xTU0x8U1NMX0dFVHxUQ1BfQ0hFQ0t8VURQX0NIRUNLfGFjY2VwdHxhZHZlcnRfaW50fGFscGhhfGF1dGhfcGFzc3xhdXRoX3R5cGV8YXV0aGVudGljYXRpb258YmZkX2NwdV9hZmZpbml0eXxiZmRfaW5zdGFuY2V8YmZkX25vX3N3YXB8YmZkX3ByaW9yaXR5fGJmZF9wcm9jZXNzX25hbWV8YmZkX3JsaW1pdF9ydHRpbWV8YmZkX3J0X3ByaW9yaXR5fGJpbmRfaWZ8YmluZF9wb3J0fGJpbmR0b3xjYXxjZXJ0aWZpY2F0ZXxjaGVja191bmljYXN0X3NyY3xjaGVja2VyfGNoZWNrZXJfY3B1X2FmZmluaXR5fGNoZWNrZXJfbG9nX2FsbF9mYWlsdXJlc3xjaGVja2VyX25vX3N3YXB8Y2hlY2tlcl9wcmlvcml0eXxjaGVja2VyX3JsaW1pdF9ydHRpbWV8Y2hlY2tlcl9ydF9wcmlvcml0eXxjaGlsZF93YWl0X3RpbWV8Y29ubmVjdF9pcHxjb25uZWN0X3BvcnR8Y29ubmVjdF90aW1lb3V0fGRidXNfc2VydmljZV9uYW1lfGRlYnVnfGRlZmF1bHRfaW50ZXJmYWNlfGRlbGF5fGRlbGF5X2JlZm9yZV9yZXRyeXxkZWxheV9sb29wfGRpZ2VzdHxkb250X3RyYWNrX3ByaW1hcnl8ZHluYW1pY3xkeW5hbWljX2ludGVyZmFjZXN8ZW5hYmxlXyg/OmRidXN8c2NyaXB0X3NlY3VyaXR5fHNuaXxzbm1wX2NoZWNrZXJ8c25tcF9yZmN8c25tcF9yZmN2Mnxzbm1wX3JmY3YzfHNubXBfdnJycHx0cmFwcyl8ZW5kfGZhbGx8ZmFzdF9yZWNvdmVyeXxmaWxlfGZsYWctWzEyM118Zm9ya19kZWxheXxmdWxsX2NvbW1hbmR8ZndtYXJrfGdhcnBfZ3JvdXB8Z2FycF9pbnRlcnZhbHxnYXJwX2xvd2VyX3ByaW9fZGVsYXl8Z2FycF9sb3dlcl9wcmlvX3JlcGVhdHxnYXJwX21hc3Rlcl9kZWxheXxnYXJwX21hc3Rlcl9yZWZyZXNofGdhcnBfbWFzdGVyX3JlZnJlc2hfcmVwZWF0fGdhcnBfbWFzdGVyX3JlcGVhdHxnbG9iYWxfZGVmc3xnbG9iYWxfdHJhY2tpbmd8Z25hX2ludGVydmFsfGdyb3VwfGhhX3N1c3BlbmR8aGFzaGVkfGhlbG9fbmFtZXxoaWdoZXJfcHJpb19zZW5kX2FkdmVydHxob3BsaW1pdHxodHRwX3Byb3RvY29sfGh5c3RlcmVzaXN8aWRsZV90eHxpbmNsdWRlfGluaGliaXRfb25fZmFpbHVyZXxpbml0X2ZhaWx8aW5pdF9maWxlfGluc3RhbmNlfGludGVyZmFjZXxpbnRlcmZhY2VzfGludGVydmFsfGlwX2ZhbWlseXxpcHZzX3Byb2Nlc3NfbmFtZXxrZWVwYWxpdmVkLmNvbmZ8a2VybmVsX3J4X2J1Zl9zaXplfGtleXxsaW5rYmVhdF9pbnRlcmZhY2VzfGxpbmtiZWF0X3VzZV9wb2xsaW5nfGxvZ19hbGxfZmFpbHVyZXN8bG9nX3Vua25vd25fdnJpZHN8bG93ZXJfcHJpb19ub19hZHZlcnR8bHRocmVzaG9sZHxsdnNfZmx1c2h8bHZzX2ZsdXNoX29uc3RvcHxsdnNfbWV0aG9kfGx2c19uZXRsaW5rX2NtZF9yY3ZfYnVmc3xsdnNfbmV0bGlua19jbWRfcmN2X2J1ZnNfZm9yY2V8bHZzX25ldGxpbmtfbW9uaXRvcl9yY3ZfYnVmc3xsdnNfbmV0bGlua19tb25pdG9yX3Jjdl9idWZzX2ZvcmNlfGx2c19ub3RpZnlfZmlmb3xsdnNfbm90aWZ5X2ZpZm9fc2NyaXB0fGx2c19zY2hlZHxsdnNfc3luY19kYWVtb258bWF4X2F1dG9fcHJpb3JpdHl8bWF4X2hvcHN8bWNhc3Rfc3JjX2lwfG1oLWZhbGxiYWNrfG1oLXBvcnR8bWluX2F1dG9fcHJpb3JpdHlfZGVsYXl8bWluX3J4fG1pbl90eHxtaXNjX2R5bmFtaWN8bWlzY19wYXRofG1pc2NfdGltZW91dHxtdWx0aXBsaWVyfG5hbWV8bmFtZXNwYWNlX3dpdGhfaXBzZXRzfG5hdGl2ZV9pcHY2fG5laWdoYm9yX2lwfG5ldF9uYW1lc3BhY2V8bmV0X25hbWVzcGFjZV9pcHZzfG5mdGFibGVzfG5mdGFibGVzX2NvdW50ZXJzfG5mdGFibGVzX2lmaW5kZXh8bmZ0YWJsZXNfcHJpb3JpdHl8bm9fYWNjZXB0fG5vX2NoZWNrZXJfZW1haWxzfG5vX2VtYWlsX2ZhdWx0c3xub3ByZWVtcHR8bm90aWZpY2F0aW9uX2VtYWlsfG5vdGlmaWNhdGlvbl9lbWFpbF9mcm9tfG5vdGlmeXxub3RpZnlfYmFja3VwfG5vdGlmeV9kZWxldGVkfG5vdGlmeV9kb3dufG5vdGlmeV9mYXVsdHxub3RpZnlfZmlmb3xub3RpZnlfZmlmb19zY3JpcHR8bm90aWZ5X21hc3Rlcnxub3RpZnlfbWFzdGVyX3J4X2xvd2VyX3ByaXxub3RpZnlfcHJpb3JpdHlfY2hhbmdlc3xub3RpZnlfc3RvcHxub3RpZnlfdXB8b2xkX3VuaWNhc3RfY2hlY2tzdW18b21lZ2F8b3BzfHBhcmFtX21hdGNofHBhc3NpdmV8cGFzc3dvcmR8cGF0aHxwZXJzaXN0ZW5jZV9lbmdpbmV8cGVyc2lzdGVuY2VfZ3JhbnVsYXJpdHl8cGVyc2lzdGVuY2VfdGltZW91dHxwcmVlbXB0fHByZWVtcHRfZGVsYXl8cHJpb3JpdHl8cHJvY2Vzc3xwcm9jZXNzX21vbml0b3JfcmN2X2J1ZnN8cHJvY2Vzc19tb25pdG9yX3Jjdl9idWZzX2ZvcmNlfHByb2Nlc3NfbmFtZXxwcm9jZXNzX25hbWVzfHByb21vdGVfc2Vjb25kYXJpZXN8cHJvdG9jb2x8cHJveHlfYXJwfHByb3h5X2FycF9wdmxhbnxxdW9ydW18cXVvcnVtX2Rvd258cXVvcnVtX21heHxxdW9ydW1fdXB8cmFuZG9tX3NlZWR8cmVhbF9zZXJ2ZXJ8cmVnZXh8cmVnZXhfbWF4X29mZnNldHxyZWdleF9taW5fb2Zmc2V0fHJlZ2V4X25vX21hdGNofHJlZ2V4X29wdGlvbnN8cmVnZXhfc3RhY2t8cmVsb2FkX3JlcGVhdHxyZWxvYWRfdGltZV9maWxlfHJlcXVpcmVfcmVwbHl8cmV0cnl8cmlzZXxyb3V0ZXJfaWR8cnNfaW5pdF9ub3RpZmllc3xzY3JpcHR8c2NyaXB0X3VzZXJ8c2gtZmFsbGJhY2t8c2gtcG9ydHxzaHV0ZG93bl9zY3JpcHR8c2h1dGRvd25fc2NyaXB0X3RpbWVvdXR8c2tpcF9jaGVja19hZHZfYWRkcnxzbXRwX2FsZXJ0fHNtdHBfYWxlcnRfY2hlY2tlcnxzbXRwX2FsZXJ0X3ZycnB8c210cF9jb25uZWN0X3RpbWVvdXR8c210cF9oZWxvX25hbWV8c210cF9zZXJ2ZXJ8c25tcF9zb2NrZXR8c29ycnlfc2VydmVyfHNvcnJ5X3NlcnZlcl9pbmhpYml0fHNvcnJ5X3NlcnZlcl9sdnNfbWV0aG9kfHNvdXJjZV9pcHxzdGFydHxzdGFydHVwX3NjcmlwdHxzdGFydHVwX3NjcmlwdF90aW1lb3V0fHN0YXRlfHN0YXRpY19pcGFkZHJlc3N8c3RhdGljX3JvdXRlc3xzdGF0aWNfcnVsZXN8c3RhdHVzX2NvZGV8c3RlcHxzdHJpY3RfbW9kZXxzeW5jX2dyb3VwX3RyYWNraW5nX3dlaWdodHx0ZXJtaW5hdGVfZGVsYXl8dGltZW91dHx0cmFja19iZmR8dHJhY2tfZmlsZXx0cmFja19ncm91cHx0cmFja19pbnRlcmZhY2V8dHJhY2tfcHJvY2Vzc3x0cmFja19zY3JpcHR8dHJhY2tfc3JjX2lwfHR0bHx0eXBlfHVtYXNrfHVuaWNhc3RfcGVlcnx1bmljYXN0X3NyY19pcHx1bmljYXN0X3R0bHx1cmx8dXNlX2lwdmxhbnx1c2VfcGlkX2Rpcnx1c2Vfdm1hY3x1c2VyfHV0aHJlc2hvbGR8dmFsWzEyM118dmVyc2lvbnx2aXJ0dWFsX2lwYWRkcmVzc3x2aXJ0dWFsX2lwYWRkcmVzc19leGNsdWRlZHx2aXJ0dWFsX3JvdXRlcl9pZHx2aXJ0dWFsX3JvdXRlc3x2aXJ0dWFsX3J1bGVzfHZpcnR1YWxfc2VydmVyfHZpcnR1YWxfc2VydmVyX2dyb3VwfHZpcnR1YWxob3N0fHZtYWNfeG1pdF9iYXNlfHZycnB8dnJycF8oPzpjaGVja191bmljYXN0X3NyY3xjcHVfYWZmaW5pdHl8Z2FycF9pbnRlcnZhbHxnYXJwX2xvd2VyX3ByaW9fZGVsYXl8Z2FycF9sb3dlcl9wcmlvX3JlcGVhdHxnYXJwX21hc3Rlcl9kZWxheXxnYXJwX21hc3Rlcl9yZWZyZXNofGdhcnBfbWFzdGVyX3JlZnJlc2hfcmVwZWF0fGdhcnBfbWFzdGVyX3JlcGVhdHxnbmFfaW50ZXJ2YWx8aGlnaGVyX3ByaW9fc2VuZF9hZHZlcnR8aW5zdGFuY2V8aXBzZXRzfGlwdGFibGVzfGxvd2VyX3ByaW9fbm9fYWR2ZXJ0fG1jYXN0X2dyb3VwNHxtY2FzdF9ncm91cDZ8bWluX2dhcnB8bmV0bGlua19jbWRfcmN2X2J1ZnN8bmV0bGlua19jbWRfcmN2X2J1ZnNfZm9yY2V8bmV0bGlua19tb25pdG9yX3Jjdl9idWZzfG5ldGxpbmtfbW9uaXRvcl9yY3ZfYnVmc19mb3JjZXxub19zd2FwfG5vdGlmeV9maWZvfG5vdGlmeV9maWZvX3NjcmlwdHxub3RpZnlfcHJpb3JpdHlfY2hhbmdlc3xwcmlvcml0eXxwcm9jZXNzX25hbWV8cmxpbWl0X3J0dGltZXxydF9wcmlvcml0eXxyeF9idWZzX211bHRpcGxpZXJ8cnhfYnVmc19wb2xpY3l8c2NyaXB0fHNraXBfY2hlY2tfYWR2X2FkZHJ8c3RhcnR1cF9kZWxheXxzdHJpY3R8c3luY19ncm91cHx0cmFja19wcm9jZXNzfHZlcnNpb24pfHdhcm11cHx3ZWlnaHQpXGIvLGNvbnN0YW50Oi9cYig/OkF8QUFBQXxBSHxCQUNLVVB8Q05BTUV8RFJ8TUFTVEVSfE1YfE5BVHxOU3xQQVNTfFNDVFB8U09BfFRDUHxUVU58VFhUfFVEUHxkaHxmb3xsYmxjfGxibGNyfGxjfG1ofG5xfG92ZnxycnxzZWR8c2h8d2xjfHdycilcYi8sbnVtYmVyOntwYXR0ZXJuOi8oXnxbXlx3Li1dKS0/XGQrKD86XC5cZCspPy8sbG9va2JlaGluZDohMH0sYm9vbGVhbjovXGIoPzpmYWxzZXxub3xvZmZ8b258dHJ1ZXx5ZXMpXGIvLHB1bmN0dWF0aW9uOi9bXHtcfV0vfX1yZXR1cm4gX2Z9dmFyIFJmLHNfO2Z1bmN0aW9uIHNGKCl7aWYoc18pcmV0dXJuIFJmO3NfPTEsUmY9ZSxlLmRpc3BsYXlOYW1lPSJrZXltYW4iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmtleW1hbj17Y29tbWVudDp7cGF0dGVybjovXGJjIC4qL2ksZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyJbXiJcclxuXSoifCdbXidcclxuXSonLyxncmVlZHk6ITB9LCJ2aXJ0dWFsLWtleSI6e3BhdHRlcm46L1xbXHMqKD86KD86QUxUfENBUFN8Q1RSTHxMQUxUfExDVFJMfE5DQVBTfFJBTFR8UkNUUkx8U0hJRlQpXHMrKSooPzpbVEtVXV9bXHc/XSt8W0EtRV1cZFxkP3wiW14iXHJcbl0qInwnW14nXHJcbl0qJylccypcXS9pLGdyZWVkeTohMCxhbGlhczoiZnVuY3Rpb24ifSwiaGVhZGVyLWtleXdvcmQiOntwYXR0ZXJuOi8mXHcrLyxhbGlhczoiYm9sZCJ9LCJoZWFkZXItc3RhdGVtZW50Ijp7cGF0dGVybjovXGIoPzpiaXRtYXB8Yml0bWFwc3xjYXBzIGFsd2F5cyBvZmZ8Y2FwcyBvbiBvbmx5fGNvcHlyaWdodHxob3RrZXl8bGFuZ3VhZ2V8bGF5b3V0fG1lc3NhZ2V8bmFtZXxzaGlmdCBmcmVlcyBjYXBzfHZlcnNpb24pXGIvaSxhbGlhczoiYm9sZCJ9LCJydWxlLWtleXdvcmQiOntwYXR0ZXJuOi9cYig/OmFueXxiYXNlbGF5b3V0fGJlZXB8Y2FsbHxjb250ZXh0fGRlYWRrZXl8ZGt8aWZ8aW5kZXh8bGF5ZXJ8bm90YW55fG51bHxvdXRzfHBsYXRmb3JtfHJlc2V0fHJldHVybnxzYXZlfHNldHxzdG9yZXx1c2UpXGIvaSxhbGlhczoia2V5d29yZCJ9LCJzdHJ1Y3R1cmFsLWtleXdvcmQiOntwYXR0ZXJuOi9cYig/OmFuc2l8YmVnaW58Z3JvdXB8bWF0Y2h8bm9tYXRjaHx1bmljb2RlfHVzaW5nIGtleXMpXGIvaSxhbGlhczoia2V5d29yZCJ9LCJjb21waWxlLXRhcmdldCI6e3BhdHRlcm46L1wkKD86a2V5bWFufGtleW1hbm9ubHl8a2V5bWFud2VifGttZmx8d2VhdmVyKTovaSxhbGlhczoicHJvcGVydHkifSxudW1iZXI6L1xiKD86VVwrW1xkQS1GXSt8ZFxkK3x4W1xkYS1mXSt8XGQrKVxiL2ksb3BlcmF0b3I6L1srPlxcJF18XC5cLi8scHVuY3R1YXRpb246L1soKT0sXS99fXJldHVybiBSZn12YXIgTmYsdV87ZnVuY3Rpb24gdUYoKXtpZih1XylyZXR1cm4gTmY7dV89MSxOZj1lLGUuZGlzcGxheU5hbWU9ImtvdGxpbiIsZS5hbGlhc2VzPVsia3QiLCJrdHMiXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXthLmxhbmd1YWdlcy5rb3RsaW49YS5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2tleXdvcmQ6e3BhdHRlcm46LyhefFteLl0pXGIoPzphYnN0cmFjdHxhY3R1YWx8YW5ub3RhdGlvbnxhc3xicmVha3xieXxjYXRjaHxjbGFzc3xjb21wYW5pb258Y29uc3R8Y29uc3RydWN0b3J8Y29udGludWV8Y3Jvc3NpbmxpbmV8ZGF0YXxkb3xkeW5hbWljfGVsc2V8ZW51bXxleHBlY3R8ZXh0ZXJuYWx8ZmluYWx8ZmluYWxseXxmb3J8ZnVufGdldHxpZnxpbXBvcnR8aW58aW5maXh8aW5pdHxpbmxpbmV8aW5uZXJ8aW50ZXJmYWNlfGludGVybmFsfGlzfGxhdGVpbml0fG5vaW5saW5lfG51bGx8b2JqZWN0fG9wZW58b3BlcmF0b3J8b3V0fG92ZXJyaWRlfHBhY2thZ2V8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJlaWZpZWR8cmV0dXJufHNlYWxlZHxzZXR8c3VwZXJ8c3VzcGVuZHx0YWlscmVjfHRoaXN8dGhyb3d8dG98dHJ5fHR5cGVhbGlhc3x2YWx8dmFyfHZhcmFyZ3x3aGVufHdoZXJlfHdoaWxlKVxiLyxsb29rYmVoaW5kOiEwfSxmdW5jdGlvbjpbe3BhdHRlcm46Lyg/OmBbXlxyXG5gXStgfFxiXHcrKSg/PVxzKlwoKS8sZ3JlZWR5OiEwfSx7cGF0dGVybjovKFwuKSg/OmBbXlxyXG5gXStgfFx3KykoPz1ccypceykvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sbnVtYmVyOi9cYig/OjBbeFhdW1xkYS1mQS1GXSsoPzpfW1xkYS1mQS1GXSspKnwwW2JCXVswMV0rKD86X1swMV0rKSp8XGQrKD86X1xkKykqKD86XC5cZCsoPzpfXGQrKSopPyg/OltlRV1bKy1dP1xkKyg/Ol9cZCspKik/W2ZGTF0/KVxiLyxvcGVyYXRvcjovXCtbKz1dP3wtWy09Pl0/fD09Pz0/fCEoPzohfD09Pyk/fFtcLyolPD5dPT98Wz86XTo/fFwuXC58JiZ8XHxcfHxcYig/OmFuZHxpbnZ8b3J8c2hsfHNocnx1c2hyfHhvcilcYi99KSxkZWxldGUgYS5sYW5ndWFnZXMua290bGluWyJjbGFzcy1uYW1lIl07dmFyIGk9eyJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXlwkXHs/fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOmEubGFuZ3VhZ2VzLmtvdGxpbn19O2EubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgia290bGluIiwic3RyaW5nIix7InN0cmluZy1saXRlcmFsIjpbe3BhdHRlcm46LyIiIig/OlteJF18XCQoPzooPyFceyl8XHtbXnt9XSpcfSkpKj8iIiIvLGFsaWFzOiJtdWx0aWxpbmUiLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovXCQoPzpbYS16X11cdyp8XHtbXnt9XSpcfSkvaSxpbnNpZGU6aX0sc3RyaW5nOi9bXHNcU10rL319LHtwYXR0ZXJuOi8iKD86W14iXFxcclxuJF18XFwufFwkKD86KD8hXHspfFx7W157fV0qXH0pKSoiLyxhbGlhczoic2luZ2xlbGluZSIsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oKD86XnxbXlxcXSkoPzpcXHsyfSkqKVwkKD86W2Etel9dXHcqfFx7W157fV0qXH0pL2ksbG9va2JlaGluZDohMCxpbnNpZGU6aX0sc3RyaW5nOi9bXHNcU10rL319XSxjaGFyOntwYXR0ZXJuOi8nKD86W14nXFxcclxuXXxcXCg/Oi58dVthLWZBLUYwLTldezAsNH0pKScvLGdyZWVkeTohMH19KSxkZWxldGUgYS5sYW5ndWFnZXMua290bGluLnN0cmluZyxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImtvdGxpbiIsImtleXdvcmQiLHthbm5vdGF0aW9uOntwYXR0ZXJuOi9cQkAoPzpcdys6KT8oPzpbQS1aXVx3KnxcW1teXF1dK1xdKS8sYWxpYXM6ImJ1aWx0aW4ifX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgia290bGluIiwiZnVuY3Rpb24iLHtsYWJlbDp7cGF0dGVybjovXGJcdytAfEBcdytcYi8sYWxpYXM6InN5bWJvbCJ9fSksYS5sYW5ndWFnZXMua3Q9YS5sYW5ndWFnZXMua290bGluLGEubGFuZ3VhZ2VzLmt0cz1hLmxhbmd1YWdlcy5rb3RsaW59KShuKX1yZXR1cm4gTmZ9dmFyIHdmLGNfO2Z1bmN0aW9uIGNGKCl7aWYoY18pcmV0dXJuIHdmO2NfPTEsd2Y9ZSxlLmRpc3BsYXlOYW1lPSJrdW1pciIsZS5hbGlhc2VzPVsia3VtIl07ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9L1xzXHgwMC1ceDFmXHgyMi1ceDJmXHgzYS1ceDNmXHg1Yi1ceDVlXHg2MFx4N2ItXHg3ZS8uc291cmNlO2Z1bmN0aW9uIGwodSxjKXtyZXR1cm4gUmVnRXhwKHUucmVwbGFjZSgvPG5vbklkPi9nLGkpLGMpfWEubGFuZ3VhZ2VzLmt1bWlyPXtjb21tZW50OntwYXR0ZXJuOi9cfC4qL30scHJvbG9nOntwYXR0ZXJuOi8jLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8iW15cblxyIl0qInwnW15cblxyJ10qJy8sZ3JlZWR5OiEwfSxib29sZWFuOntwYXR0ZXJuOmwoLyhefFs8bm9uSWQ+XSkoPzrQtNCwfNC90LXRgikoPz1bPG5vbklkPl18JCkvLnNvdXJjZSksbG9va2JlaGluZDohMH0sIm9wZXJhdG9yLXdvcmQiOntwYXR0ZXJuOmwoLyhefFs8bm9uSWQ+XSkoPzrQuHzQuNC70Lh80L3QtSkoPz1bPG5vbklkPl18JCkvLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LCJzeXN0ZW0tdmFyaWFibGUiOntwYXR0ZXJuOmwoLyhefFs8bm9uSWQ+XSnQt9C90LDRhyg/PVs8bm9uSWQ+XXwkKS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sdHlwZTpbe3BhdHRlcm46bCgvKF58Wzxub25JZD5dKSg/OtCy0LXRiXzQu9C40YJ80LvQvtCzfNGB0LjQvHzRhtC10LspKD86XHgyMCrRgtCw0LEpPyg/PVs8bm9uSWQ+XXwkKS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJidWlsdGluIn0se3BhdHRlcm46bCgvKF58Wzxub25JZD5dKSg/OtC60L7QvNC/0Lt80YHQutCw0L3QutC+0LR80YTQsNC50Lt80YbQstC10YIpKD89Wzxub25JZD5dfCQpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCJ9XSxrZXl3b3JkOntwYXR0ZXJuOmwoLyhefFs8bm9uSWQ+XSkoPzrQsNC70LN80LDRgNCzKD86XHgyMCrRgNC10LcpP3zQstCy0L7QtHzQktCa0JvQrtCn0JjQotCsfNCy0YFb0LXRkV180LLRi9Cx0L7RgHzQstGL0LLQvtC0fNCy0YvRhdC+0LR80LTQsNC90L580LTQu9GPfNC00L580LTRgXzQtdGB0LvQuHzQuNC90LDRh9C1fNC40YHQv3zQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Yx80LrQvtC9KD86KD86XHgyMCt8XynQuNGB0L8pP3zQutGGKD86KD86XHgyMCt8XynQv9GA0LgpP3zQvdCw0LTQvnzQvdCw0Yd80L3RgXzQvdGGfNC+0YJ80L/QsNGD0LfQsHzQv9C+0LrQsHzQv9GA0Lh80YDQsNC30LA/fNGA0LXQt3zRgdGC0L7Qv3zRgtCw0LF80YLQvnzRg9GC0LJ80YjQsNCzKSg/PVs8bm9uSWQ+XXwkKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxuYW1lOntwYXR0ZXJuOmwoLyhefFs8bm9uSWQ+XSlbXlxkPG5vbklkPl1bXjxub25JZD5dKig/Olx4MjArW148bm9uSWQ+XSspKig/PVs8bm9uSWQ+XXwkKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxudW1iZXI6e3BhdHRlcm46bCgvKF58Wzxub25JZD5dKSg/OlxCXCRbXGRhLWZdK1xifCg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/KSg/PVs8bm9uSWQ+XXwkKS8uc291cmNlLCJpIiksbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246Lzo9fFsoKSw6O1xbXF1dLywib3BlcmF0b3ItY2hhciI6e3BhdHRlcm46L1wqXCo/fDxbPT5dP3w+PT98Wy0rLz1dLyxhbGlhczoib3BlcmF0b3IifX0sYS5sYW5ndWFnZXMua3VtPWEubGFuZ3VhZ2VzLmt1bWlyfSkobil9cmV0dXJuIHdmfXZhciBrZixkXztmdW5jdGlvbiBkRigpe2lmKGRfKXJldHVybiBrZjtkXz0xLGtmPWUsZS5kaXNwbGF5TmFtZT0ia3VzdG8iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLmt1c3RvPXtjb21tZW50OntwYXR0ZXJuOi9cL1wvLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi9gYGBbXHNcU10qP2BgYHxbaEhdPyg/OiIoPzpbXlxyXG5cXCJdfFxcLikqInwnKD86W15cclxuXFwnXXxcXC4pKid8QCg/OiJbXlxyXG4iXSoifCdbXlxyXG4nXSonKSkvLGdyZWVkeTohMH0sdmVyYjp7cGF0dGVybjovKFx8XHMqKVthLXpdW1x3LV0qL2ksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LGNvbW1hbmQ6e3BhdHRlcm46L1wuW2Etel1bYS16XGQtXSpcYi8sYWxpYXM6ImtleXdvcmQifSwiY2xhc3MtbmFtZSI6L1xiKD86Ym9vbHxkYXRldGltZXxkZWNpbWFsfGR5bmFtaWN8Z3VpZHxpbnR8bG9uZ3xyZWFsfHN0cmluZ3x0aW1lc3BhbilcYi8sa2V5d29yZDovXGIoPzphY2Nlc3N8YWxpYXN8YW5kfGFudGl8YXN8YXNjfGF1dG98YmV0d2VlbnxieXwoPzpjb250YWluc3woPzplbmRzfHN0YXJ0cyl3aXRofGhhcyg/OnBlcmZpeHxzdWZmaXgpPykoPzpfY3MpP3xkYXRhYmFzZXxkZWNsYXJlfGRlc2N8ZXh0ZXJuYWx8ZnJvbXxmdWxsb3V0ZXJ8aGFzX2FsbHxpbnxpbmdlc3Rpb258aW5saW5lfGlubmVyfGlubmVydW5pcXVlfGludG98KD86bGVmdHxyaWdodCkoPzphbnRpKD86c2VtaSk/fGlubmVyfG91dGVyfHNlbWkpP3xsZXR8bGlrZXxsb2NhbHxub3R8b2Z8b258b3J8cGF0dGVybnxwcmludHxxdWVyeV9wYXJhbWV0ZXJzfHJhbmdlfHJlc3RyaWN0fHNjaGVtYXxzZXR8c3RlcHx0YWJsZXx0YWJsZXN8dG98dmlld3x3aGVyZXx3aXRofG1hdGNoZXNccytyZWdleHxudWxsc1xzKyg/OmZpcnN0fGxhc3QpKSg/IVtcdy1dKS8sYm9vbGVhbjovXGIoPzpmYWxzZXxudWxsfHRydWUpXGIvLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVxzKlwoKS8sZGF0ZXRpbWU6W3twYXR0ZXJuOi9cYig/Oig/OkZyaXxGcmlkYXl8TW9ufE1vbmRheXxTYXR8U2F0dXJkYXl8U3VufFN1bmRheXxUaHV8VGh1cnNkYXl8VHVlfFR1ZXNkYXl8V2VkfFdlZG5lc2RheSlccyosXHMqKT9cZHsxLDJ9KD86XHMrfC0pKD86QXByfEF1Z3xEZWN8RmVifEphbnxKdWx8SnVufE1hcnxNYXl8Tm92fE9jdHxTZXApKD86XHMrfC0pXGR7Mn1ccytcZHsyfTpcZHsyfSg/OjpcZHsyfSk/KD86XHMqKD86XGIoPzpbQS1aXXwoPzpbRUNNVF1bRFNdfEdNfFUpVCl8WystXVxkezR9KSk/XGIvLGFsaWFzOiJudW1iZXIifSx7cGF0dGVybjovWystXT9cYig/OlxkezR9LVxkezJ9LVxkezJ9KD86WyBUXVxkezJ9OlxkezJ9KD86OlxkezJ9KD86XC5cZCspPyk/KT98XGR7Mn06XGR7Mn0oPzo6XGR7Mn0oPzpcLlxkKyk/KT8pWj8vLGFsaWFzOiJudW1iZXIifV0sbnVtYmVyOi9cYig/OjB4WzAtOUEtRmEtZl0rfFxkKyg/OlwuXGQrKT8oPzpbRWVdWystXT9cZCspPykoPzooPzptaW58c2VjfFttbsK1XXN8W2RobXNdfG1pY3Jvc2Vjb25kfHRpY2spXGIpP3xbKy1dP1xiaW5mXGIvLG9wZXJhdG9yOi89PnxbIT1dfnxbIT08Pl09P3xbLSsqLyV8XXxcLlwuLyxwdW5jdHVhdGlvbjovWygpXFtcXXt9LDsuOl0vfX1yZXR1cm4ga2Z9dmFyIENmLHBfO2Z1bmN0aW9uIHBGKCl7aWYocF8pcmV0dXJuIENmO3BfPTEsQ2Y9ZSxlLmRpc3BsYXlOYW1lPSJsYXRleCIsZS5hbGlhc2VzPVsidGV4IiwiY29udGV4dCJdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPS9cXCg/OlteYS16KClbXF1dfFthLXoqXSspL2ksbD17ImVxdWF0aW9uLWNvbW1hbmQiOntwYXR0ZXJuOmksYWxpYXM6InJlZ2V4In19O2EubGFuZ3VhZ2VzLmxhdGV4PXtjb21tZW50Oi8lLiovLGNkYXRhOntwYXR0ZXJuOi8oXFxiZWdpblx7KCg/OmxzdGxpc3Rpbmd8dmVyYmF0aW0pXCo/KVx9KVtcc1xTXSo/KD89XFxlbmRce1wyXH0pLyxsb29rYmVoaW5kOiEwfSxlcXVhdGlvbjpbe3BhdHRlcm46L1wkXCQoPzpcXFtcc1xTXXxbXlxcJF0pK1wkXCR8XCQoPzpcXFtcc1xTXXxbXlxcJF0pK1wkfFxcXChbXHNcU10qP1xcXCl8XFxcW1tcc1xTXSo/XFxcXS8saW5zaWRlOmwsYWxpYXM6InN0cmluZyJ9LHtwYXR0ZXJuOi8oXFxiZWdpblx7KCg/OmFsaWdufGVxbmFycmF5fGVxdWF0aW9ufGdhdGhlcnxtYXRofG11bHRsaW5lKVwqPylcfSlbXHNcU10qPyg/PVxcZW5kXHtcMlx9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6bCxhbGlhczoic3RyaW5nIn1dLGtleXdvcmQ6e3BhdHRlcm46LyhcXCg/OmJlZ2lufGNpdGV8ZG9jdW1lbnRjbGFzc3xlbmR8bGFiZWx8cmVmfHVzZXBhY2thZ2UpKD86XFtbXlxdXStcXSk/XHspW159XSsoPz1cfSkvLGxvb2tiZWhpbmQ6ITB9LHVybDp7cGF0dGVybjovKFxcdXJsXHspW159XSsoPz1cfSkvLGxvb2tiZWhpbmQ6ITB9LGhlYWRsaW5lOntwYXR0ZXJuOi8oXFwoPzpjaGFwdGVyfGZyYW1ldGl0bGV8cGFyYWdyYXBofHBhcnR8c2VjdGlvbnxzdWJwYXJhZ3JhcGh8c3Vic2VjdGlvbnxzdWJzdWJwYXJhZ3JhcGh8c3Vic3Vic2VjdGlvbnxzdWJzdWJzdWJwYXJhZ3JhcGgpXCo/KD86XFtbXlxdXStcXSk/XHspW159XSsoPz1cfSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNsYXNzLW5hbWUifSxmdW5jdGlvbjp7cGF0dGVybjppLGFsaWFzOiJzZWxlY3RvciJ9LHB1bmN0dWF0aW9uOi9bW1xde30mXS99LGEubGFuZ3VhZ2VzLnRleD1hLmxhbmd1YWdlcy5sYXRleCxhLmxhbmd1YWdlcy5jb250ZXh0PWEubGFuZ3VhZ2VzLmxhdGV4fSkobil9cmV0dXJuIENmfXZhciBJZixmXztmdW5jdGlvbiBLbCgpe2lmKGZfKXJldHVybiBJZjtmXz0xO3ZhciBlPUh0KCk7SWY9bixuLmRpc3BsYXlOYW1lPSJwaHAiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksKGZ1bmN0aW9uKGkpe3ZhciBsPS9cL1wqW1xzXFNdKj9cKlwvfFwvXC8uKnwjKD8hXFspLiovLHU9W3twYXR0ZXJuOi9cYig/OmZhbHNlfHRydWUpXGIvaSxhbGlhczoiYm9vbGVhbiJ9LHtwYXR0ZXJuOi8oOjpccyopXGJbYS16X11cdypcYig/IVxzKlwoKS9pLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKFxiKD86Y2FzZXxjb25zdClccyspXGJbYS16X11cdyooPz1ccypbOz1dKS9pLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwfSwvXGIoPzpudWxsKVxiL2ksL1xiW0EtWl9dW0EtWjAtOV9dKlxiKD8hXHMqXCgpL10sYz0vXGIwYlswMV0rKD86X1swMV0rKSpcYnxcYjBvWzAtN10rKD86X1swLTddKykqXGJ8XGIweFtcZGEtZl0rKD86X1tcZGEtZl0rKSpcYnwoPzpcYlxkKyg/Ol9cZCspKlwuPyg/OlxkKyg/Ol9cZCspKik/fFxCXC5cZCspKD86ZVsrLV0/XGQrKT8vaSxkPS88Pz0+fFw/XD89P3xcLnszfXxcPz8tPnxbIT1dPT89P3w6OnxcKlwqPT98LS18XCtcK3wmJnxcfFx8fDw8fD4+fFs/fl18Wy9efCUqJjw+ListXT0/LyxmPS9be31cW1xdKCksOjtdLztpLmxhbmd1YWdlcy5waHA9e2RlbGltaXRlcjp7cGF0dGVybjovXD8+JHxePFw/KD86cGhwKD89XHMpfD0pPy9pLGFsaWFzOiJpbXBvcnRhbnQifSxjb21tZW50OmwsdmFyaWFibGU6L1wkKyg/Olx3K1xifCg/PVx7KSkvLHBhY2thZ2U6e3BhdHRlcm46LyhuYW1lc3BhY2Vccyt8dXNlXHMrKD86ZnVuY3Rpb25ccyspPykoPzpcXD9cYlthLXpfXVx3KikrXGIoPyFcXCkvaSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1xcL319LCJjbGFzcy1uYW1lLWRlZmluaXRpb24iOntwYXR0ZXJuOi8oXGIoPzpjbGFzc3xlbnVtfGludGVyZmFjZXx0cmFpdClccyspXGJbYS16X11cdyooPyFcXClcYi9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNsYXNzLW5hbWUifSwiZnVuY3Rpb24tZGVmaW5pdGlvbiI6e3BhdHRlcm46LyhcYmZ1bmN0aW9uXHMrKVthLXpfXVx3Kig/PVxzKlwoKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sa2V5d29yZDpbe3BhdHRlcm46LyhcKFxzKilcYig/OmFycmF5fGJvb2x8Ym9vbGVhbnxmbG9hdHxpbnR8aW50ZWdlcnxvYmplY3R8c3RyaW5nKVxiKD89XHMqXCkpL2ksYWxpYXM6InR5cGUtY2FzdGluZyIsZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oWygsP11ccyopXGIoPzphcnJheSg/IVxzKlwoKXxib29sfGNhbGxhYmxlfCg/OmZhbHNlfG51bGwpKD89XHMqXHwpfGZsb2F0fGludHxpdGVyYWJsZXxtaXhlZHxvYmplY3R8c2VsZnxzdGF0aWN8c3RyaW5nKVxiKD89XHMqXCQpL2ksYWxpYXM6InR5cGUtaGludCIsZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXClccyo6XHMqKD86XD9ccyopPylcYig/OmFycmF5KD8hXHMqXCgpfGJvb2x8Y2FsbGFibGV8KD86ZmFsc2V8bnVsbCkoPz1ccypcfCl8ZmxvYXR8aW50fGl0ZXJhYmxlfG1peGVkfG9iamVjdHxzZWxmfHN0YXRpY3xzdHJpbmd8dm9pZClcYi9pLGFsaWFzOiJyZXR1cm4tdHlwZSIsZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi9cYig/OmFycmF5KD8hXHMqXCgpfGJvb2x8ZmxvYXR8aW50fGl0ZXJhYmxlfG1peGVkfG9iamVjdHxzdHJpbmd8dm9pZClcYi9pLGFsaWFzOiJ0eXBlLWRlY2xhcmF0aW9uIixncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXHxccyopKD86ZmFsc2V8bnVsbClcYnxcYig/OmZhbHNlfG51bGwpKD89XHMqXHwpL2ksYWxpYXM6InR5cGUtZGVjbGFyYXRpb24iLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovXGIoPzpwYXJlbnR8c2VsZnxzdGF0aWMpKD89XHMqOjopL2ksYWxpYXM6InN0YXRpYy1jb250ZXh0IixncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXGJ5aWVsZFxzKylmcm9tXGIvaSxsb29rYmVoaW5kOiEwfSwvXGJjbGFzc1xiL2kse3BhdHRlcm46LygoPzpefFteXHM+Ol18KD86XnxbXi1dKT58KD86XnxbXjpdKTopXHMqKVxiKD86YWJzdHJhY3R8YW5kfGFycmF5fGFzfGJyZWFrfGNhbGxhYmxlfGNhc2V8Y2F0Y2h8Y2xvbmV8Y29uc3R8Y29udGludWV8ZGVjbGFyZXxkZWZhdWx0fGRpZXxkb3xlY2hvfGVsc2V8ZWxzZWlmfGVtcHR5fGVuZGRlY2xhcmV8ZW5kZm9yfGVuZGZvcmVhY2h8ZW5kaWZ8ZW5kc3dpdGNofGVuZHdoaWxlfGVudW18ZXZhbHxleGl0fGV4dGVuZHN8ZmluYWx8ZmluYWxseXxmbnxmb3J8Zm9yZWFjaHxmdW5jdGlvbnxnbG9iYWx8Z290b3xpZnxpbXBsZW1lbnRzfGluY2x1ZGV8aW5jbHVkZV9vbmNlfGluc3RhbmNlb2Z8aW5zdGVhZG9mfGludGVyZmFjZXxpc3NldHxsaXN0fG1hdGNofG5hbWVzcGFjZXxuZXd8b3J8cGFyZW50fHByaW50fHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZXF1aXJlfHJlcXVpcmVfb25jZXxyZXR1cm58c2VsZnxzdGF0aWN8c3dpdGNofHRocm93fHRyYWl0fHRyeXx1bnNldHx1c2V8dmFyfHdoaWxlfHhvcnx5aWVsZHxfX2hhbHRfY29tcGlsZXIpXGIvaSxsb29rYmVoaW5kOiEwfV0sImFyZ3VtZW50LW5hbWUiOntwYXR0ZXJuOi8oWygsXVxzKylcYlthLXpfXVx3Kig/PVxzKjooPyE6KSkvaSxsb29rYmVoaW5kOiEwfSwiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOi8oXGIoPzpleHRlbmRzfGltcGxlbWVudHN8aW5zdGFuY2VvZnxuZXcoPyFccytzZWxmfFxzK3N0YXRpYykpXHMrfFxiY2F0Y2hccypcKClcYlthLXpfXVx3Kig/IVxcKVxiL2ksZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXHxccyopXGJbYS16X11cdyooPyFcXClcYi9pLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovXGJbYS16X11cdyooPyFcXClcYig/PVxzKlx8KS9pLGdyZWVkeTohMH0se3BhdHRlcm46LyhcfFxzKikoPzpcXD9cYlthLXpfXVx3KikrXGIvaSxhbGlhczoiY2xhc3MtbmFtZS1mdWxseS1xdWFsaWZpZWQiLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1xcL319LHtwYXR0ZXJuOi8oPzpcXD9cYlthLXpfXVx3KikrXGIoPz1ccypcfCkvaSxhbGlhczoiY2xhc3MtbmFtZS1mdWxseS1xdWFsaWZpZWQiLGdyZWVkeTohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cXC99fSx7cGF0dGVybjovKFxiKD86ZXh0ZW5kc3xpbXBsZW1lbnRzfGluc3RhbmNlb2Z8bmV3KD8hXHMrc2VsZlxifFxzK3N0YXRpY1xiKSlccyt8XGJjYXRjaFxzKlwoKSg/OlxcP1xiW2Etel9dXHcqKStcYig/IVxcKS9pLGFsaWFzOiJjbGFzcy1uYW1lLWZ1bGx5LXF1YWxpZmllZCIsZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXFwvfX0se3BhdHRlcm46L1xiW2Etel9dXHcqKD89XHMqXCQpL2ksYWxpYXM6InR5cGUtZGVjbGFyYXRpb24iLGdyZWVkeTohMH0se3BhdHRlcm46Lyg/OlxcP1xiW2Etel9dXHcqKSsoPz1ccypcJCkvaSxhbGlhczpbImNsYXNzLW5hbWUtZnVsbHktcXVhbGlmaWVkIiwidHlwZS1kZWNsYXJhdGlvbiJdLGdyZWVkeTohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cXC99fSx7cGF0dGVybjovXGJbYS16X11cdyooPz1ccyo6OikvaSxhbGlhczoic3RhdGljLWNvbnRleHQiLGdyZWVkeTohMH0se3BhdHRlcm46Lyg/OlxcP1xiW2Etel9dXHcqKSsoPz1ccyo6OikvaSxhbGlhczpbImNsYXNzLW5hbWUtZnVsbHktcXVhbGlmaWVkIiwic3RhdGljLWNvbnRleHQiXSxncmVlZHk6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXFwvfX0se3BhdHRlcm46LyhbKCw/XVxzKilbYS16X11cdyooPz1ccypcJCkvaSxhbGlhczoidHlwZS1oaW50IixncmVlZHk6ITAsbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhbKCw/XVxzKikoPzpcXD9cYlthLXpfXVx3KikrKD89XHMqXCQpL2ksYWxpYXM6WyJjbGFzcy1uYW1lLWZ1bGx5LXF1YWxpZmllZCIsInR5cGUtaGludCJdLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1xcL319LHtwYXR0ZXJuOi8oXClccyo6XHMqKD86XD9ccyopPylcYlthLXpfXVx3Kig/IVxcKVxiL2ksYWxpYXM6InJldHVybi10eXBlIixncmVlZHk6ITAsbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhcKVxzKjpccyooPzpcP1xzKik/KSg/OlxcP1xiW2Etel9dXHcqKStcYig/IVxcKS9pLGFsaWFzOlsiY2xhc3MtbmFtZS1mdWxseS1xdWFsaWZpZWQiLCJyZXR1cm4tdHlwZSJdLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1xcL319XSxjb25zdGFudDp1LGZ1bmN0aW9uOntwYXR0ZXJuOi8oXnxbXlxcXHddKVxcP1thLXpfXSg/Oltcd1xcXSpcdyk/KD89XHMqXCgpL2ksbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cXC99fSxwcm9wZXJ0eTp7cGF0dGVybjovKC0+XHMqKVx3Ky8sbG9va2JlaGluZDohMH0sbnVtYmVyOmMsb3BlcmF0b3I6ZCxwdW5jdHVhdGlvbjpmfTt2YXIgbT17cGF0dGVybjovXHtcJCg/Olx7KD86XHtbXnt9XStcfXxbXnt9XSspXH18W157fV0pK1x9fChefFteXFx7XSlcJCsoPzpcdysoPzpcW1teXHJcblxbXF1dK1xdfC0+XHcrKT8pLyxsb29rYmVoaW5kOiEwLGluc2lkZTppLmxhbmd1YWdlcy5waHB9LGI9W3twYXR0ZXJuOi88PDwnKFteJ10rKSdbXHJcbl0oPzouKltcclxuXSkqP1wxOy8sYWxpYXM6Im5vd2RvYy1zdHJpbmciLGdyZWVkeTohMCxpbnNpZGU6e2RlbGltaXRlcjp7cGF0dGVybjovXjw8PCdbXiddKyd8W2Etel9dXHcqOyQvaSxhbGlhczoic3ltYm9sIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9ePDw8Jz98Wyc7XSQvfX19fSx7cGF0dGVybjovPDw8KD86IihbXiJdKykiW1xyXG5dKD86LipbXHJcbl0pKj9cMTt8KFthLXpfXVx3KilbXHJcbl0oPzouKltcclxuXSkqP1wyOykvaSxhbGlhczoiaGVyZWRvYy1zdHJpbmciLGdyZWVkeTohMCxpbnNpZGU6e2RlbGltaXRlcjp7cGF0dGVybjovXjw8PCg/OiJbXiJdKyJ8W2Etel9dXHcqKXxbYS16X11cdyo7JC9pLGFsaWFzOiJzeW1ib2wiLGluc2lkZTp7cHVuY3R1YXRpb246L148PDwiP3xbIjtdJC99fSxpbnRlcnBvbGF0aW9uOm19fSx7cGF0dGVybjovYCg/OlxcW1xzXFNdfFteXFxgXSkqYC8sYWxpYXM6ImJhY2t0aWNrLXF1b3RlZC1zdHJpbmciLGdyZWVkeTohMH0se3BhdHRlcm46LycoPzpcXFtcc1xTXXxbXlxcJ10pKicvLGFsaWFzOiJzaW5nbGUtcXVvdGVkLXN0cmluZyIsZ3JlZWR5OiEwfSx7cGF0dGVybjovIig/OlxcW1xzXFNdfFteXFwiXSkqIi8sYWxpYXM6ImRvdWJsZS1xdW90ZWQtc3RyaW5nIixncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOm19fV07aS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJwaHAiLCJ2YXJpYWJsZSIse3N0cmluZzpiLGF0dHJpYnV0ZTp7cGF0dGVybjovI1xbKD86W14iJ1wvI118XC8oPyFbKi9dKXxcL1wvLiokfCMoPyFcWykuKiR8XC9cKig/OlteKl18XCooPyFcLykpKlwqXC98Iig/OlxcW1xzXFNdfFteXFwiXSkqInwnKD86XFxbXHNcU118W15cXCddKSonKStcXSg/PVxzKlthLXokI10pL2ltLGdyZWVkeTohMCxpbnNpZGU6eyJhdHRyaWJ1dGUtY29udGVudCI6e3BhdHRlcm46L14oI1xbKVtcc1xTXSsoPz1cXSQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7Y29tbWVudDpsLHN0cmluZzpiLCJhdHRyaWJ1dGUtY2xhc3MtbmFtZSI6W3twYXR0ZXJuOi8oW146XXxeKVxiW2Etel9dXHcqKD8hXFwpXGIvaSxhbGlhczoiY2xhc3MtbmFtZSIsZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oW146XXxeKSg/OlxcP1xiW2Etel9dXHcqKSsvaSxhbGlhczpbImNsYXNzLW5hbWUiLCJjbGFzcy1uYW1lLWZ1bGx5LXF1YWxpZmllZCJdLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1xcL319XSxjb25zdGFudDp1LG51bWJlcjpjLG9wZXJhdG9yOmQscHVuY3R1YXRpb246Zn19LGRlbGltaXRlcjp7cGF0dGVybjovXiNcW3xcXSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fX19KSxpLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihoKXtpZigvPFw/Ly50ZXN0KGguY29kZSkpe3ZhciBTPS88XD8oPzpbXiInLyNdfFwvKD8hWyovXSl8KCJ8JykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDF8KD86XC9cL3wjKD8hXFspKSg/OlteP1xuXHJdfFw/KD8hPikpKig/PSR8XD8+fFtcclxuXSl8I1xbfFwvXCooPzpbXipdfFwqKD8hXC8pKSooPzpcKlwvfCQpKSo/KD86XD8+fCQpL2c7aS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMoaCwicGhwIixTKX19KSxpLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKGgpe2kubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdLnRva2VuaXplUGxhY2Vob2xkZXJzKGgsInBocCIpfSl9KShhKX1yZXR1cm4gSWZ9dmFyIE9mLGdfO2Z1bmN0aW9uIGZGKCl7aWYoZ18pcmV0dXJuIE9mO2dfPTE7dmFyIGU9SHQoKSxuPUtsKCk7T2Y9YSxhLmRpc3BsYXlOYW1lPSJsYXR0ZSIsYS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGEoaSl7aS5yZWdpc3RlcihlKSxpLnJlZ2lzdGVyKG4pLChmdW5jdGlvbihsKXtsLmxhbmd1YWdlcy5sYXR0ZT17Y29tbWVudDovXlx7XCpbXHNcU10qLywibGF0dGUtdGFnIjp7cGF0dGVybjovKF5ceyg/OlwvKD89W2Etel0pKT8pKD86Wz1fXXxbYS16XVx3KlxiKD8hXCgpKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCJ9LGRlbGltaXRlcjp7cGF0dGVybjovXlx7XC8/fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0scGhwOntwYXR0ZXJuOi9cUyg/Oltcc1xTXSpcUyk/LyxhbGlhczoibGFuZ3VhZ2UtcGhwIixpbnNpZGU6bC5sYW5ndWFnZXMucGhwfX07dmFyIHU9bC5sYW5ndWFnZXMuZXh0ZW5kKCJtYXJrdXAiLHt9KTtsLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImluc2lkZSIsImF0dHItdmFsdWUiLHsibi1hdHRyIjp7cGF0dGVybjovbjpbXHctXSsoPzpccyo9XHMqKD86IlteIl0qInwnW14nXSonfFteXHMnIj49XSspKT8vLGluc2lkZTp7ImF0dHItbmFtZSI6e3BhdHRlcm46L15bXlxzPV0rLyxhbGlhczoiaW1wb3J0YW50In0sImF0dHItdmFsdWUiOntwYXR0ZXJuOi89W1xzXFNdKy8saW5zaWRlOntwdW5jdHVhdGlvbjpbL149Lyx7cGF0dGVybjovXihccyopWyInXXxbIiddJC8sbG9va2JlaGluZDohMH1dLHBocDp7cGF0dGVybjovXFMoPzpbXHNcU10qXFMpPy8saW5zaWRlOmwubGFuZ3VhZ2VzLnBocH19fX19fSx1LnRhZyksbC5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24oYyl7aWYoYy5sYW5ndWFnZT09PSJsYXR0ZSIpe3ZhciBkPS9ce1wqW1xzXFNdKj9cKlx9fFx7W14nIlxze30qXSg/OlteIicve31dfFwvKD8hWyovXSl8KCJ8JykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDF8XC9cKig/OlteKl18XCooPyFcLykpKlwqXC8pKlx9L2c7bC5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMoYywibGF0dGUiLGQpLGMuZ3JhbW1hcj11fX0pLGwuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24oYyl7bC5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMoYywibGF0dGUiKX0pfSkoaSl9cmV0dXJuIE9mfXZhciBMZixtXztmdW5jdGlvbiBnRigpe2lmKG1fKXJldHVybiBMZjttXz0xLExmPWUsZS5kaXNwbGF5TmFtZT0ibGVzcyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMubGVzcz1uLmxhbmd1YWdlcy5leHRlbmQoImNzcyIse2NvbW1lbnQ6Wy9cL1wqW1xzXFNdKj9cKlwvLyx7cGF0dGVybjovKF58W15cXF0pXC9cLy4qLyxsb29rYmVoaW5kOiEwfV0sYXRydWxlOntwYXR0ZXJuOi9AW1x3LV0oPzpcKCg/OlteKCl7fV18XChbXigpe31dKlwpKSpcKXxbXigpe307XHNdfFxzKyg/IVxzKSkqPyg/PVxzKlx7KS8saW5zaWRlOntwdW5jdHVhdGlvbjovWzooKV0vfX0sc2VsZWN0b3I6e3BhdHRlcm46Lyg/OkBce1tcdy1dK1x9fFtee307XHNAXSkoPzpAXHtbXHctXStcfXxcKCg/OlteKCl7fV18XChbXigpe31dKlwpKSpcKXxbXigpe307QFxzXXxccysoPyFccykpKj8oPz1ccypceykvLGluc2lkZTp7dmFyaWFibGU6L0ArW1x3LV0rL319LHByb3BlcnR5Oi8oPzpAXHtbXHctXStcfXxbXHctXSkrKD86XCtfPyk/KD89XHMqOikvLG9wZXJhdG9yOi9bK1wtKlwvXS99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImxlc3MiLCJwcm9wZXJ0eSIse3ZhcmlhYmxlOlt7cGF0dGVybjovQFtcdy1dK1xzKjovLGluc2lkZTp7cHVuY3R1YXRpb246LzovfX0sL0BAP1tcdy1dKy9dLCJtaXhpbi11c2FnZSI6e3BhdHRlcm46LyhbeztdXHMqKVsuI10oPyFcZClbXHctXS4qPyg/PVsoO10pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9fSl9cmV0dXJuIExmfXZhciBEZixoXztmdW5jdGlvbiBsYigpe2lmKGhfKXJldHVybiBEZjtoXz0xLERmPWUsZS5kaXNwbGF5TmFtZT0ic2NoZW1lIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7YS5sYW5ndWFnZXMuc2NoZW1lPXtjb21tZW50Oi87Lip8IztccyooPzpcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpfFxbKD86W15cW1xdXXxcW1teXFtcXV0qXF0pKlxdKXwjXHwoPzpbXiN8XXwjKD8hXHwpfFx8KD8hIyl8I1x8KD86W14jfF18Iyg/IVx8KXxcfCg/ISMpKSpcfCMpKlx8Iy8sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxdfFxcLikqIi8sZ3JlZWR5OiEwfSxzeW1ib2w6e3BhdHRlcm46LydbXigpXFtcXSMnXHNdKy8sZ3JlZWR5OiEwfSxjaGFyOntwYXR0ZXJuOi8jXFwoPzpbdXhdW2EtZkEtRlxkXStcYnxbLWEtekEtWl0rXGJ8W1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdfFxTKS8sZ3JlZWR5OiEwfSwibGFtYmRhLXBhcmFtZXRlciI6W3twYXR0ZXJuOi8oKD86XnxbXidgI10pWyhcW11sYW1iZGFccyspKD86W158KClcW1xdJ1xzXSt8XHwoPzpbXlxcfF18XFwuKSpcfCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oKD86XnxbXidgI10pWyhcW11sYW1iZGFccytbKFxbXSlbXigpXFtcXSddKy8sbG9va2JlaGluZDohMH1dLGtleXdvcmQ6e3BhdHRlcm46LygoPzpefFteJ2AjXSlbKFxbXSkoPzpiZWdpbnxjYXNlKD86LWxhbWJkYSk/fGNvbmQoPzotZXhwYW5kKT98ZGVmaW5lKD86LWxpYnJhcnl8LW1hY3JvfC1yZWNvcmQtdHlwZXwtc3ludGF4fC12YWx1ZXMpP3xkZWZtYWNyb3xkZWxheSg/Oi1mb3JjZSk/fGRvfGVsc2V8ZXhjZXB0fGV4cG9ydHxndWFyZHxpZnxpbXBvcnR8aW5jbHVkZSg/Oi1jaXwtbGlicmFyeS1kZWNsYXJhdGlvbnMpP3xsYW1iZGF8bGV0KD86cmVjKT8oPzotc3ludGF4fC12YWx1ZXN8XCopP3xsZXRcKi12YWx1ZXN8b25seXxwYXJhbWV0ZXJpemV8cHJlZml4fCg/OnF1YXNpLT8pP3F1b3RlfHJlbmFtZXxzZXQhfHN5bnRheC0oPzpjYXNlfHJ1bGVzKXx1bmxlc3N8dW5xdW90ZSg/Oi1zcGxpY2luZyk/fHdoZW4pKD89WygpXFtcXVxzXXwkKS8sbG9va2JlaGluZDohMH0sYnVpbHRpbjp7cGF0dGVybjovKCg/Ol58W14nYCNdKVsoXFtdKSg/OmFic3xhbmR8YXBwZW5kfGFwcGx5fGFzc29jfGFzc1txdl18YmluYXJ5LXBvcnRcP3xib29sZWFuPT9cP3xieXRldmVjdG9yKD86LWFwcGVuZHwtY29weXwtY29weSF8LWxlbmd0aHwtdTgtcmVmfC11OC1zZXQhfFw/KT98Y2FhcnxjYWRyfGNhbGwtd2l0aC0oPzpjdXJyZW50LWNvbnRpbnVhdGlvbnxwb3J0fHZhbHVlcyl8Y2FsbFwvY2N8Y2FyfGNkYXJ8Y2RkcnxjZHJ8Y2VpbGluZ3xjaGFyKD86LT5pbnRlZ2VyfC1yZWFkeVw/fFw/fDxcP3w8PVw/fD1cP3w+XD98Pj1cPyl8Y2xvc2UtKD86aW5wdXQtcG9ydHxvdXRwdXQtcG9ydHxwb3J0KXxjb21wbGV4XD98Y29uc3xjdXJyZW50LSg/OmVycm9yfGlucHV0fG91dHB1dCktcG9ydHxkZW5vbWluYXRvcnxkeW5hbWljLXdpbmR8ZW9mLW9iamVjdFw/P3xlcVw/fGVxdWFsXD98ZXF2XD98ZXJyb3J8ZXJyb3Itb2JqZWN0KD86LWlycml0YW50c3wtbWVzc2FnZXxcPyl8ZXZhbHxldmVuXD98ZXhhY3QoPzotaW50ZWdlci1zcXJ0fC1pbnRlZ2VyXD98XD8pP3xleHB0fGZlYXR1cmVzfGZpbGUtZXJyb3JcP3xmbG9vcig/Oi1xdW90aWVudHwtcmVtYWluZGVyfFwvKT98Zmx1c2gtb3V0cHV0LXBvcnR8Zm9yLWVhY2h8Z2NkfGdldC1vdXRwdXQtKD86Ynl0ZXZlY3RvcnxzdHJpbmcpfGluZXhhY3RcPz98aW5wdXQtcG9ydCg/Oi1vcGVuXD98XD8pfGludGVnZXIoPzotPmNoYXJ8XD8pfGxjbXxsZW5ndGh8bGlzdCg/Oi0+c3RyaW5nfC0+dmVjdG9yfC1jb3B5fC1yZWZ8LXNldCF8LXRhaWx8XD8pP3xtYWtlLSg/OmJ5dGV2ZWN0b3J8bGlzdHxwYXJhbWV0ZXJ8c3RyaW5nfHZlY3Rvcil8bWFwfG1heHxtZW1iZXJ8bWVtcXxtZW12fG1pbnxtb2R1bG98bmVnYXRpdmVcP3xuZXdsaW5lfG5vdHxudWxsXD98bnVtYmVyKD86LT5zdHJpbmd8XD8pfG51bWVyYXRvcnxvZGRcP3xvcGVuLSg/OmlucHV0fG91dHB1dCktKD86Ynl0ZXZlY3RvcnxzdHJpbmcpfG9yfG91dHB1dC1wb3J0KD86LW9wZW5cP3xcPyl8cGFpclw/fHBlZWstY2hhcnxwZWVrLXU4fHBvcnRcP3xwb3NpdGl2ZVw/fHByb2NlZHVyZVw/fHF1b3RpZW50fHJhaXNlfHJhaXNlLWNvbnRpbnVhYmxlfHJhdGlvbmFsXD98cmF0aW9uYWxpemV8cmVhZC0oPzpieXRldmVjdG9yfGJ5dGV2ZWN0b3IhfGNoYXJ8ZXJyb3JcP3xsaW5lfHN0cmluZ3x1OCl8cmVhbFw/fHJlbWFpbmRlcnxyZXZlcnNlfHJvdW5kfHNldC1jW2FkXXIhfHNxdWFyZXxzdHJpbmcoPzotPmxpc3R8LT5udW1iZXJ8LT5zeW1ib2x8LT51dGY4fC0+dmVjdG9yfC1hcHBlbmR8LWNvcHl8LWNvcHkhfC1maWxsIXwtZm9yLWVhY2h8LWxlbmd0aHwtbWFwfC1yZWZ8LXNldCF8XD98PFw/fDw9XD98PVw/fD5cP3w+PVw/KT98c3Vic3RyaW5nfHN5bWJvbCg/Oi0+c3RyaW5nfFw/fD1cPyl8c3ludGF4LWVycm9yfHRleHR1YWwtcG9ydFw/fHRydW5jYXRlKD86LXF1b3RpZW50fC1yZW1haW5kZXJ8XC8pP3x1OC1yZWFkeVw/fHV0ZjgtPnN0cmluZ3x2YWx1ZXN8dmVjdG9yKD86LT5saXN0fC0+c3RyaW5nfC1hcHBlbmR8LWNvcHl8LWNvcHkhfC1maWxsIXwtZm9yLWVhY2h8LWxlbmd0aHwtbWFwfC1yZWZ8LXNldCF8XD8pP3x3aXRoLWV4Y2VwdGlvbi1oYW5kbGVyfHdyaXRlLSg/OmJ5dGV2ZWN0b3J8Y2hhcnxzdHJpbmd8dTgpfHplcm9cPykoPz1bKClcW1xdXHNdfCQpLyxsb29rYmVoaW5kOiEwfSxvcGVyYXRvcjp7cGF0dGVybjovKCg/Ol58W14nYCNdKVsoXFtdKSg/OlstKyolL118Wzw+XT0/fD0+PykoPz1bKClcW1xdXHNdfCQpLyxsb29rYmVoaW5kOiEwfSxudW1iZXI6e3BhdHRlcm46UmVnRXhwKGkoeyI8dXJlYWwgZGVjPiI6L1xkKyg/OlwvXGQrKXwoPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/Oltlc2ZkbF1bKy1dP1xkKyk/Ly5zb3VyY2UsIjxyZWFsIGRlYz4iOi9bKy1dPzx1cmVhbCBkZWM+fFsrLV0oPzppbmZ8bmFuKVwuMC8uc291cmNlLCI8aW1hZ2luYXJ5IGRlYz4iOi9bKy1dKD86PHVyZWFsIGRlYz58KD86aW5mfG5hbilcLjApP2kvLnNvdXJjZSwiPGNvbXBsZXggZGVjPiI6LzxyZWFsIGRlYz4oPzpAPHJlYWwgZGVjPnw8aW1hZ2luYXJ5IGRlYz4pP3w8aW1hZ2luYXJ5IGRlYz4vLnNvdXJjZSwiPG51bSBkZWM+IjovKD86I2QoPzojW2VpXSk/fCNbZWldKD86I2QpPyk/PGNvbXBsZXggZGVjPi8uc291cmNlLCI8dXJlYWwgYm94PiI6L1swLTlhLWZdKyg/OlwvWzAtOWEtZl0rKT8vLnNvdXJjZSwiPHJlYWwgYm94PiI6L1srLV0/PHVyZWFsIGJveD58WystXSg/OmluZnxuYW4pXC4wLy5zb3VyY2UsIjxpbWFnaW5hcnkgYm94PiI6L1srLV0oPzo8dXJlYWwgYm94PnwoPzppbmZ8bmFuKVwuMCk/aS8uc291cmNlLCI8Y29tcGxleCBib3g+IjovPHJlYWwgYm94Pig/OkA8cmVhbCBib3g+fDxpbWFnaW5hcnkgYm94Pik/fDxpbWFnaW5hcnkgYm94Pi8uc291cmNlLCI8bnVtIGJveD4iOi8jW2JveF0oPzojW2VpXSk/fCg/OiNbZWldKT8jW2JveF08Y29tcGxleCBib3g+Ly5zb3VyY2UsIjxudW1iZXI+IjovKF58WygpXFtcXVxzXSkoPzo8bnVtIGRlYz58PG51bSBib3g+KSg/PVsoKVxbXF1cc118JCkvLnNvdXJjZX0pLCJpIiksbG9va2JlaGluZDohMH0sYm9vbGVhbjp7cGF0dGVybjovKF58WygpXFtcXVxzXSkjKD86W2Z0XXxmYWxzZXx0cnVlKSg/PVsoKVxbXF1cc118JCkvLGxvb2tiZWhpbmQ6ITB9LGZ1bmN0aW9uOntwYXR0ZXJuOi8oKD86XnxbXidgI10pWyhcW10pKD86W158KClcW1xdJ1xzXSt8XHwoPzpbXlxcfF18XFwuKSpcfCkoPz1bKClcW1xdXHNdfCQpLyxsb29rYmVoaW5kOiEwfSxpZGVudGlmaWVyOntwYXR0ZXJuOi8oXnxbKClcW1xdXHNdKVx8KD86W15cXHxdfFxcLikqXHwoPz1bKClcW1xdXHNdfCQpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0scHVuY3R1YXRpb246L1soKVxbXF0nXS99O2Z1bmN0aW9uIGkobCl7Zm9yKHZhciB1IGluIGwpbFt1XT1sW3VdLnJlcGxhY2UoLzxbXHdcc10rPi9nLGZ1bmN0aW9uKGMpe3JldHVybiIoPzoiK2xbY10udHJpbSgpKyIpIn0pO3JldHVybiBsW3VdfX0pKG4pfXJldHVybiBEZn12YXIgTWYsYl87ZnVuY3Rpb24gbUYoKXtpZihiXylyZXR1cm4gTWY7Yl89MTt2YXIgZT1sYigpO01mPW4sbi5kaXNwbGF5TmFtZT0ibGlseXBvbmQiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksKGZ1bmN0aW9uKGkpe2Zvcih2YXIgbD0vXCgoPzpbXigpOyIjXFxdfFxcW1xzXFNdfDsuKig/IS4pfCIoPzpbXiJcXF18XFwuKSoifCMoPzpceyg/Oig/ISNcfSlbXHNcU10pKiNcfXxbXntdKXw8ZXhwcj4pKlwpLy5zb3VyY2UsdT01LGM9MDtjPHU7YysrKWw9bC5yZXBsYWNlKC88ZXhwcj4vZyxmdW5jdGlvbigpe3JldHVybiBsfSk7bD1sLnJlcGxhY2UoLzxleHByPi9nLC9bXlxzXFNdLy5zb3VyY2UpO3ZhciBkPWkubGFuZ3VhZ2VzLmxpbHlwb25kPXtjb21tZW50Oi8lKD86KD8hXHspLip8XHtbXHNcU10qPyVcfSkvLCJlbWJlZGRlZC1zY2hlbWUiOntwYXR0ZXJuOlJlZ0V4cCgvKF58Wz1cc10pIyg/OiIoPzpbXiJcXF18XFwuKSoifFteXHMoKSJdKig/OlteXHMoKV18PGV4cHI+KSkvLnNvdXJjZS5yZXBsYWNlKC88ZXhwcj4vZyxmdW5jdGlvbigpe3JldHVybiBsfSksIm0iKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e3NjaGVtZTp7cGF0dGVybjovXigjKVtcc1xTXSskLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJsYW5ndWFnZS1zY2hlbWUiLGluc2lkZTp7ImVtYmVkZGVkLWxpbHlwb25kIjp7cGF0dGVybjovI1x7W1xzXFNdKj8jXH0vLGdyZWVkeTohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eI1x7fCNcfSQvLGxpbHlwb25kOntwYXR0ZXJuOi9bXHNcU10rLyxhbGlhczoibGFuZ3VhZ2UtbGlseXBvbmQiLGluc2lkZTpudWxsfX19LHJlc3Q6aS5sYW5ndWFnZXMuc2NoZW1lfX0scHVuY3R1YXRpb246LyMvfX0sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxdfFxcLikqIi8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcXG5ld1xzKylbXHctXSsvLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6e3BhdHRlcm46L1xcW2Etel1bLVx3XSovaSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXFwvfX0sb3BlcmF0b3I6L1s9fF18PDx8Pj4vLHB1bmN0dWF0aW9uOntwYXR0ZXJuOi8oXnxbYS16XGRdKSg/OicrfCwrfFtfXl0/LVtfXl0/KD86Wy0rXiE+Ll9dfCg/PVxkKSl8W19eXVwuP3xbLiFdKXxbe30oKVtcXTw+Xn5dfFxcWygpW1xdPD5cXCFdfC0tfF9fLyxsb29rYmVoaW5kOiEwfSxudW1iZXI6L1xiXGQrKD86XC9cZCspP1xiL307ZFsiZW1iZWRkZWQtc2NoZW1lIl0uaW5zaWRlLnNjaGVtZS5pbnNpZGVbImVtYmVkZGVkLWxpbHlwb25kIl0uaW5zaWRlLmxpbHlwb25kLmluc2lkZT1kLGkubGFuZ3VhZ2VzLmx5PWR9KShhKX1yZXR1cm4gTWZ9dmFyIFVmLHlfO2Z1bmN0aW9uIGhGKCl7aWYoeV8pcmV0dXJuIFVmO3lfPTE7dmFyIGU9SHQoKTtVZj1uLG4uZGlzcGxheU5hbWU9ImxpcXVpZCIsbi5hbGlhc2VzPVtdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSxhLmxhbmd1YWdlcy5saXF1aWQ9e2NvbW1lbnQ6e3BhdHRlcm46LyheXHslXHMqY29tbWVudFxzKiVcfSlbXHNcU10rKD89XHslXHMqZW5kY29tbWVudFxzKiVcfSQpLyxsb29rYmVoaW5kOiEwfSxkZWxpbWl0ZXI6e3BhdHRlcm46L15ceyg/Olx7XHt8WyVce10pLT98LT8oPzpcfVx9fFslXH1dKVx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sc3RyaW5nOntwYXR0ZXJuOi8iW14iXSoifCdbXiddKicvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphc3xhc3NpZ258YnJlYWt8KD86ZW5kKT8oPzpjYXB0dXJlfGNhc2V8Y29tbWVudHxmb3J8Zm9ybXxpZnxwYWdpbmF0ZXxyYXd8c3R5bGV8dGFibGVyb3d8dW5sZXNzKXxjb250aW51ZXxjeWNsZXxkZWNyZW1lbnR8ZWNob3xlbHNlfGVsc2lmfGlufGluY2x1ZGV8aW5jcmVtZW50fGxpbWl0fGxpcXVpZHxvZmZzZXR8cmFuZ2V8cmVuZGVyfHJldmVyc2VkfHNlY3Rpb258d2hlbnx3aXRoKVxiLyxvYmplY3Q6L1xiKD86YWRkcmVzc3xhbGxfY291bnRyeV9vcHRpb25fdGFnc3xhcnRpY2xlfGJsb2NrfGJsb2d8Y2FydHxjaGVja291dHxjb2xsZWN0aW9ufGNvbG9yfGNvdW50cnl8Y291bnRyeV9vcHRpb25fdGFnc3xjdXJyZW5jeXxjdXJyZW50X3BhZ2V8Y3VycmVudF90YWdzfGN1c3RvbWVyfGN1c3RvbWVyX2FkZHJlc3N8ZGF0ZXxkaXNjb3VudF9hbGxvY2F0aW9ufGRpc2NvdW50X2FwcGxpY2F0aW9ufGV4dGVybmFsX3ZpZGVvfGZpbHRlcnxmaWx0ZXJfdmFsdWV8Zm9udHxmb3Jsb29wfGZ1bGZpbGxtZW50fGdlbmVyaWNfZmlsZXxnaWZ0X2NhcmR8Z3JvdXB8aGFuZGxlfGltYWdlfGxpbmVfaXRlbXxsaW5rfGxpbmtsaXN0fGxvY2FsaXphdGlvbnxsb2NhdGlvbnxtZWFzdXJlbWVudHxtZWRpYXxtZXRhZmllbGR8bW9kZWx8bW9kZWxfc291cmNlfG9yZGVyfHBhZ2V8cGFnZV9kZXNjcmlwdGlvbnxwYWdlX2ltYWdlfHBhZ2VfdGl0bGV8cGFydHxwb2xpY3l8cHJvZHVjdHxwcm9kdWN0X29wdGlvbnxyZWNvbW1lbmRhdGlvbnN8cmVxdWVzdHxyb2JvdHN8cm91dGVzfHJ1bGV8c2NyaXB0fHNlYXJjaHxzZWxsaW5nX3BsYW58c2VsbGluZ19wbGFuX2FsbG9jYXRpb258c2VsbGluZ19wbGFuX2dyb3VwfHNoaXBwaW5nX21ldGhvZHxzaG9wfHNob3BfbG9jYWxlfHNpdGVtYXB8c3RvcmVfYXZhaWxhYmlsaXR5fHRheF9saW5lfHRlbXBsYXRlfHRoZW1lfHRyYW5zYWN0aW9ufHVuaXRfcHJpY2VfbWVhc3VyZW1lbnR8dXNlcl9hZ2VudHx2YXJpYW50fHZpZGVvfHZpZGVvX3NvdXJjZSlcYi8sZnVuY3Rpb246W3twYXR0ZXJuOi8oXHxccyopXHcrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmaWx0ZXIifSx7cGF0dGVybjovKFwuXHMqKSg/OmZpcnN0fGxhc3R8c2l6ZSkvLGxvb2tiZWhpbmQ6ITB9XSxib29sZWFuOi9cYig/OmZhbHNlfG5pbHx0cnVlKVxiLyxyYW5nZTp7cGF0dGVybjovXC5cLi8sYWxpYXM6Im9wZXJhdG9yIn0sbnVtYmVyOi9cYlxkKyg/OlwuXGQrKT9cYi8sb3BlcmF0b3I6L1shPV09fDw+fFs8Pl09P3xbfD86PS1dfFxiKD86YW5kfGNvbnRhaW5zKD89XHMpfG9yKVxiLyxwdW5jdHVhdGlvbjovWy4sXFtcXSgpXS8sZW1wdHk6e3BhdHRlcm46L1xiZW1wdHlcYi8sYWxpYXM6ImtleXdvcmQifX0sYS5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24oaSl7dmFyIGw9L1x7JVxzKmNvbW1lbnRccyolXH1bXHNcU10qP1x7JVxzKmVuZGNvbW1lbnRccyolXH18XHsoPzolW1xzXFNdKj8lfFx7XHtbXHNcU10qP1x9XH18XHtbXHNcU10qP1x9KVx9L2csdT0hMTthLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS5idWlsZFBsYWNlaG9sZGVycyhpLCJsaXF1aWQiLGwsZnVuY3Rpb24oYyl7dmFyIGQ9L15ceyUtP1xzKihcdyspLy5leGVjKGMpO2lmKGQpe3ZhciBmPWRbMV07aWYoZj09PSJyYXciJiYhdSlyZXR1cm4gdT0hMCwhMDtpZihmPT09ImVuZHJhdyIpcmV0dXJuIHU9ITEsITB9cmV0dXJuIXV9KX0pLGEuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24oaSl7YS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMoaSwibGlxdWlkIil9KX1yZXR1cm4gVWZ9dmFyIEZmLEVfO2Z1bmN0aW9uIGJGKCl7aWYoRV8pcmV0dXJuIEZmO0VfPTEsRmY9ZSxlLmRpc3BsYXlOYW1lPSJsaXNwIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7ZnVuY3Rpb24gaShUKXtyZXR1cm4gUmVnRXhwKC8oXCgpLy5zb3VyY2UrIig/OiIrVCsiKSIrLyg/PVtcc1wpXSkvLnNvdXJjZSl9ZnVuY3Rpb24gbChUKXtyZXR1cm4gUmVnRXhwKC8oW1xzKFtdKS8uc291cmNlKyIoPzoiK1QrIikiKy8oPz1bXHMpXSkvLnNvdXJjZSl9dmFyIHU9Lyg/IVxkKVstKyovfiFAJCVePTw+e31cd10rLy5zb3VyY2UsYz0iJiIrdSxkPSIoXFwoKSIsZj0iKD89XFwpKSIsbT0iKD89XFxzKSIsYj0vKD86W14oKV18XCgoPzpbXigpXXxcKCg/OlteKCldfFwoKD86W14oKV18XCgoPzpbXigpXXxcKFteKCldKlwpKSpcKSkqXCkpKlwpKSpcKSkqLy5zb3VyY2UsaD17aGVhZGluZzp7cGF0dGVybjovOzs7LiovLGFsaWFzOlsiY29tbWVudCIsInRpdGxlIl19LGNvbW1lbnQ6LzsuKi8sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxdfFxcLikqIi8sZ3JlZWR5OiEwLGluc2lkZTp7YXJndW1lbnQ6L1stQS1aXSsoPz1bLixcc10pLyxzeW1ib2w6UmVnRXhwKCJgIit1KyInIil9fSwicXVvdGVkLXN5bWJvbCI6e3BhdHRlcm46UmVnRXhwKCIjPyciK3UpLGFsaWFzOlsidmFyaWFibGUiLCJzeW1ib2wiXX0sImxpc3AtcHJvcGVydHkiOntwYXR0ZXJuOlJlZ0V4cCgiOiIrdSksYWxpYXM6InByb3BlcnR5In0sc3BsaWNlOntwYXR0ZXJuOlJlZ0V4cCgiLEA/Iit1KSxhbGlhczpbInN5bWJvbCIsInZhcmlhYmxlIl19LGtleXdvcmQ6W3twYXR0ZXJuOlJlZ0V4cChkKyIoPzphbmR8KD86Y2wtKT9sZXRmfGNsLWxvb3B8Y29uZHxjb25zfGVycm9yfGlmfCg/OmxleGljYWwtKT9sZXRcXCo/fG1lc3NhZ2V8bm90fG51bGx8b3J8cHJvdmlkZXxyZXF1aXJlfHNldHF8dW5sZXNzfHVzZS1wYWNrYWdlfHdoZW58d2hpbGUpIittKSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjpSZWdFeHAoZCsiKD86YXBwZW5kfGJ5fGNvbGxlY3R8Y29uY2F0fGRvfGZpbmFsbHl8Zm9yfGlufHJldHVybikiK20pLGxvb2tiZWhpbmQ6ITB9XSxkZWNsYXJlOntwYXR0ZXJuOmkoL2RlY2xhcmUvLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LGludGVyYWN0aXZlOntwYXR0ZXJuOmkoL2ludGVyYWN0aXZlLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxib29sZWFuOntwYXR0ZXJuOmwoL25pbHx0Ly5zb3VyY2UpLGxvb2tiZWhpbmQ6ITB9LG51bWJlcjp7cGF0dGVybjpsKC9bLStdP1xkKyg/OlwuXGQqKT8vLnNvdXJjZSksbG9va2JlaGluZDohMH0sZGVmdmFyOntwYXR0ZXJuOlJlZ0V4cChkKyJkZWYoPzpjb25zdHxjdXN0b218Z3JvdXB8dmFyKVxccysiK3UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9eZGVmW2Etel0rLyx2YXJpYWJsZTpSZWdFeHAodSl9fSxkZWZ1bjp7cGF0dGVybjpSZWdFeHAoZCsvKD86Y2wtKT8oPzpkZWZtYWNyb3xkZWZ1blwqPylccysvLnNvdXJjZSt1Ky9ccytcKC8uc291cmNlK2IrL1wpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7a2V5d29yZDovXig/OmNsLSk/ZGVmXFMrLyxhcmd1bWVudHM6bnVsbCxmdW5jdGlvbjp7cGF0dGVybjpSZWdFeHAoIiheXFxzKSIrdSksbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246L1soKV0vfX0sbGFtYmRhOntwYXR0ZXJuOlJlZ0V4cChkKyJsYW1iZGFcXHMrXFwoXFxzKig/OiY/Iit1KyIoPzpcXHMrJj8iK3UrIikqXFxzKik/XFwpIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntrZXl3b3JkOi9ebGFtYmRhLyxhcmd1bWVudHM6bnVsbCxwdW5jdHVhdGlvbjovWygpXS99fSxjYXI6e3BhdHRlcm46UmVnRXhwKGQrdSksbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246Wy8oPzpbJ2AsXT9cKHxbKVxbXF1dKS8se3BhdHRlcm46LyhccylcLig/PVxzKS8sbG9va2JlaGluZDohMH1dfSxTPXsibGlzcC1tYXJrZXIiOlJlZ0V4cChjKSx2YXJmb3JtOntwYXR0ZXJuOlJlZ0V4cCgvXCgvLnNvdXJjZSt1Ky9ccysoPz1cUykvLnNvdXJjZStiKy9cKS8uc291cmNlKSxpbnNpZGU6aH0sYXJndW1lbnQ6e3BhdHRlcm46UmVnRXhwKC8oXnxbXHMoXSkvLnNvdXJjZSt1KSxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LHJlc3Q6aH0sRT0iXFxTKyg/OlxccytcXFMrKSoiLF89e3BhdHRlcm46UmVnRXhwKGQrYitmKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7InJlc3QtdmFycyI6e3BhdHRlcm46UmVnRXhwKCImKD86Ym9keXxyZXN0KVxccysiK0UpLGluc2lkZTpTfSwib3RoZXItbWFya2VyLXZhcnMiOntwYXR0ZXJuOlJlZ0V4cCgiJig/OmF1eHxvcHRpb25hbClcXHMrIitFKSxpbnNpZGU6U30sa2V5czp7cGF0dGVybjpSZWdFeHAoIiZrZXlcXHMrIitFKyIoPzpcXHMrJmFsbG93LW90aGVyLWtleXMpPyIpLGluc2lkZTpTfSxhcmd1bWVudDp7cGF0dGVybjpSZWdFeHAodSksYWxpYXM6InZhcmlhYmxlIn0scHVuY3R1YXRpb246L1soKV0vfX07aC5sYW1iZGEuaW5zaWRlLmFyZ3VtZW50cz1fLGguZGVmdW4uaW5zaWRlLmFyZ3VtZW50cz1hLnV0aWwuY2xvbmUoXyksaC5kZWZ1bi5pbnNpZGUuYXJndW1lbnRzLmluc2lkZS5zdWJsaXN0PV8sYS5sYW5ndWFnZXMubGlzcD1oLGEubGFuZ3VhZ2VzLmVsaXNwPWgsYS5sYW5ndWFnZXMuZW1hY3M9aCxhLmxhbmd1YWdlc1siZW1hY3MtbGlzcCJdPWh9KShuKX1yZXR1cm4gRmZ9dmFyIEJmLFNfO2Z1bmN0aW9uIHlGKCl7aWYoU18pcmV0dXJuIEJmO1NfPTEsQmY9ZSxlLmRpc3BsYXlOYW1lPSJsaXZlc2NyaXB0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5saXZlc2NyaXB0PXtjb21tZW50Olt7cGF0dGVybjovKF58W15cXF0pXC9cKltcc1xTXSo/XCpcLy8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteXFxdKSMuKi8sbG9va2JlaGluZDohMH1dLCJpbnRlcnBvbGF0ZWQtc3RyaW5nIjp7cGF0dGVybjovKF58W14iXSkoIiIifCIpKD86XFxbXHNcU118KD8hXDIpW15cXF0pKlwyKD8hIikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7dmFyaWFibGU6e3BhdHRlcm46LyhefFteXFxdKSNbYS16X10oPzotP1thLXpdfFtcZF9dKSovbSxsb29rYmVoaW5kOiEwfSxpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oXnxbXlxcXSkjXHtbXn1dK1x9L20sbG9va2JlaGluZDohMCxpbnNpZGU6eyJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXiNce3xcfSQvLGFsaWFzOiJ2YXJpYWJsZSJ9fX0sc3RyaW5nOi9bXHNcU10rL319LHN0cmluZzpbe3BhdHRlcm46LygnJyd8JykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDEvLGdyZWVkeTohMH0se3BhdHRlcm46LzxcW1tcc1xTXSo/XF0+LyxncmVlZHk6ITB9LC9cXFteXHMsO1xdKX1dKy9dLHJlZ2V4Olt7cGF0dGVybjovXC9cLyg/OlxbW15cclxuXF1dKlxdfFxcLnwoPyFcL1wvKVteXFxcW10pK1wvXC9bZ2lteXVdezAsNX0vLGdyZWVkeTohMCxpbnNpZGU6e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSMuKi8sbG9va2JlaGluZDohMH19fSx7cGF0dGVybjovXC8oPzpcW1teXHJcblxdXSpcXXxcXC58W14vXFxcclxuXFtdKStcL1tnaW15dV17MCw1fS8sZ3JlZWR5OiEwfV0sa2V5d29yZDp7cGF0dGVybjovKF58KD8hLSkuKVxiKD86YnJlYWt8Y2FzZXxjYXRjaHxjbGFzc3xjb25zdHxjb250aW51ZXxkZWZhdWx0fGRvfGVsc2V8ZXh0ZW5kc3xmYWxsdGhyb3VnaHxmaW5hbGx5fGZvcig/OiBldmVyKT98ZnVuY3Rpb258aWZ8aW1wbGVtZW50c3xpdHxsZXR8bG9vcHxuZXd8bnVsbHxvdGhlcndpc2V8b3dufHJldHVybnxzdXBlcnxzd2l0Y2h8dGhhdHx0aGVufHRoaXN8dGhyb3d8dHJ5fHVubGVzc3x1bnRpbHx2YXJ8dm9pZHx3aGVufHdoaWxlfHlpZWxkKSg/IS0pXGIvbSxsb29rYmVoaW5kOiEwfSwia2V5d29yZC1vcGVyYXRvciI6e3BhdHRlcm46LyhefFteLV0pXGIoPzooPzpkZWxldGV8cmVxdWlyZXx0eXBlb2YpIXwoPzphbmR8Ynl8ZGVsZXRlfGV4cG9ydHxmcm9tfGltcG9ydCg/OiBhbGwpP3xpbnxpbnN0YW5jZW9mfGlzKD86IG5vdHxudCk/fG5vdHxvZnxvcnx0aWx8dG98dHlwZW9mfHdpdGh8eG9yKSg/IS0pXGIpL20sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSxib29sZWFuOntwYXR0ZXJuOi8oXnxbXi1dKVxiKD86ZmFsc2V8bm98b2ZmfG9ufHRydWV8eWVzKSg/IS0pXGIvbSxsb29rYmVoaW5kOiEwfSxhcmd1bWVudDp7cGF0dGVybjovKF58KD8hXC4mXC4pW14mXSkmKD8hJilcZCovbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LG51bWJlcjovXGIoPzpcZCt+W1xkYS16XSt8XGRbXGRfXSooPzpcLlxkW1xkX10qKT8oPzpbYS16XVx3Kik/KS9pLGlkZW50aWZpZXI6L1thLXpfXSg/Oi0/W2Etel18W1xkX10pKi9pLG9wZXJhdG9yOlt7cGF0dGVybjovKCApXC4oPz0gKS8sbG9va2JlaGluZDohMH0sL1wuKD86Wz1+XXxcLlwuPyl8XC4oPzpbJnxeXXw8PHw+Pj4/KVwufDooPzo9fDo9Pyl8JiZ8XHxbfD5dfDwoPzo8PD88P3wtLT8hP3x+fj8hP3xbfD0/XSk/fD5bPj0/XT98LSg/Oi0+P3w+KT98XCtcKz98QEA/fCUlP3xcKlwqP3whKD86fj89fC0tPz58fj9+Pik/fH4oPzp+Pz58PSk/fD09P3xcXlxeP3xbXC8/XS9dLHB1bmN0dWF0aW9uOi9bKCl7fVxbXF18Liw6O2BdL30sbi5sYW5ndWFnZXMubGl2ZXNjcmlwdFsiaW50ZXJwb2xhdGVkLXN0cmluZyJdLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZS5yZXN0PW4ubGFuZ3VhZ2VzLmxpdmVzY3JpcHR9cmV0dXJuIEJmfXZhciBqZix2XztmdW5jdGlvbiBFRigpe2lmKHZfKXJldHVybiBqZjt2Xz0xLGpmPWUsZS5kaXNwbGF5TmFtZT0ibGx2bSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2EubGFuZ3VhZ2VzLmxsdm09e2NvbW1lbnQ6LzsuKi8sc3RyaW5nOntwYXR0ZXJuOi8iW14iXSoiLyxncmVlZHk6ITB9LGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sdmFyaWFibGU6L1slQCEjXSg/Oig/IVxkKSg/OlstJC5cd118XFxbYS1mXGRdezJ9KSt8XGQrKS9pLGxhYmVsOi8oPyFcZCkoPzpbLSQuXHddfFxcW2EtZlxkXXsyfSkrOi9pLHR5cGU6e3BhdHRlcm46L1xiKD86ZG91YmxlfGZsb2F0fGZwMTI4fGhhbGZ8aVsxLTldXGQqfGxhYmVsfG1ldGFkYXRhfHBwY19mcDEyOHx0b2tlbnx2b2lkfHg4Nl9mcDgwfHg4Nl9tbXgpXGIvLGFsaWFzOiJjbGFzcy1uYW1lIn0sa2V5d29yZDovXGJbYS16X11bYS16XzAtOV0qXGIvLG51bWJlcjovWystXT9cYlxkKyg/OlwuXGQrKT8oPzpbZUVdWystXT9cZCspP1xifFxiMHhbXGRBLUZhLWZdK1xifFxiMHhLW1xkQS1GYS1mXXsyMH1cYnxcYjB4W01MXVtcZEEtRmEtZl17MzJ9XGJ8XGIweEhbXGRBLUZhLWZdezR9XGIvLHB1bmN0dWF0aW9uOi9be31bXF07KCksLiEqPTw+XS99fSkobil9cmV0dXJuIGpmfXZhciB6ZixUXztmdW5jdGlvbiBTRigpe2lmKFRfKXJldHVybiB6ZjtUXz0xLHpmPWUsZS5kaXNwbGF5TmFtZT0ibG9nIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5sb2c9e3N0cmluZzp7cGF0dGVybjovIig/OlteIlxcXHJcbl18XFwuKSoifCcoPyFbc3RdIHwgXHcpKD86W14nXFxcclxuXXxcXC4pKicvLGdyZWVkeTohMH0sZXhjZXB0aW9uOntwYXR0ZXJuOi8oXnxbXlx3Ll0pW2Etel1bXHcuXSooPzpFcnJvcnxFeGNlcHRpb24pOi4qKD86KD86XHJcbj98XG4pWyBcdF0qKD86YXRbIFx0XS4rfFwuezN9Lip8Q2F1c2VkIGJ5Oi4qKSkrKD86KD86XHJcbj98XG4pWyBcdF0qXC5cLlwuIC4qKT8vLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOlsiamF2YXN0YWNrdHJhY2UiLCJsYW5ndWFnZS1qYXZhc3RhY2t0cmFjZSJdLGluc2lkZTpuLmxhbmd1YWdlcy5qYXZhc3RhY2t0cmFjZXx8e2tleXdvcmQ6L1xiYXRcYi8sZnVuY3Rpb246L1thLXpfXVtcdyRdKig/PVwoKS8scHVuY3R1YXRpb246L1suOigpXS99fSxsZXZlbDpbe3BhdHRlcm46L1xiKD86QUxFUlR8Q1JJVHxDUklUSUNBTHxFTUVSR3xFTUVSR0VOQ1l8RVJSfEVSUk9SfEZBSUxVUkV8RkFUQUx8U0VWRVJFKVxiLyxhbGlhczpbImVycm9yIiwiaW1wb3J0YW50Il19LHtwYXR0ZXJuOi9cYig/OldBUk58V0FSTklOR3xXUk4pXGIvLGFsaWFzOlsid2FybmluZyIsImltcG9ydGFudCJdfSx7cGF0dGVybjovXGIoPzpESVNQTEFZfElORnxJTkZPfE5PVElDRXxTVEFUVVMpXGIvLGFsaWFzOlsiaW5mbyIsImtleXdvcmQiXX0se3BhdHRlcm46L1xiKD86REJHfERFQlVHfEZJTkUpXGIvLGFsaWFzOlsiZGVidWciLCJrZXl3b3JkIl19LHtwYXR0ZXJuOi9cYig/OkZJTkVSfEZJTkVTVHxUUkFDRXxUUkN8VkVSQk9TRXxWUkIpXGIvLGFsaWFzOlsidHJhY2UiLCJjb21tZW50Il19XSxwcm9wZXJ0eTp7cGF0dGVybjovKCg/Ol58W1xdfF0pWyBcdF0qKVthLXpfXSg/Oltcdy1dfFxiXC9cYikqKD86Wy4gXVwoP1x3KD86W1x3LV18XGJcL1xiKSpcKT8pKjooPz1ccykvaW0sbG9va2JlaGluZDohMH0sc2VwYXJhdG9yOntwYXR0ZXJuOi8oXnxbXi0rXSktezMsfXw9ezMsfXxcKnszLH18LSAtIC9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNvbW1lbnQifSx1cmw6L1xiKD86ZmlsZXxmdHB8aHR0cHM/KTpcL1wvW15cc3wsOyciXSpbXlxzfCw7JyI+Ll0vLGVtYWlsOntwYXR0ZXJuOi8oXnxccylbLVx3Ky5dK0BbYS16XVthLXowLTktXSooPzpcLlthLXpdW2EtejAtOS1dKikrKD89XHMpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJ1cmwifSwiaXAtYWRkcmVzcyI6e3BhdHRlcm46L1xiKD86XGR7MSwzfSg/OlwuXGR7MSwzfSl7M30pXGIvLGFsaWFzOiJjb25zdGFudCJ9LCJtYWMtYWRkcmVzcyI6e3BhdHRlcm46L1xiW2EtZjAtOV17Mn0oPzo6W2EtZjAtOV17Mn0pezV9XGIvaSxhbGlhczoiY29uc3RhbnQifSxkb21haW46e3BhdHRlcm46LyhefFxzKVthLXpdW2EtejAtOS1dKig/OlwuW2Etel1bYS16MC05LV0qKSpcLlthLXpdW2EtejAtOS1dKyg/PVxzKS8sbG9va2JlaGluZDohMCxhbGlhczoiY29uc3RhbnQifSx1dWlkOntwYXR0ZXJuOi9cYlswLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfVxiL2ksYWxpYXM6ImNvbnN0YW50In0saGFzaDp7cGF0dGVybjovXGIoPzpbYS1mMC05XXszMn0pezEsMn1cYi9pLGFsaWFzOiJjb25zdGFudCJ9LCJmaWxlLXBhdGgiOntwYXR0ZXJuOi9cYlthLXpdOltcXC9dW15cc3wsOzooKXt9XFtcXSInXSt8KF58W1xzOlxbXF0oPnxdKVwuezAsMn1cL1x3W15cc3wsOzooKXt9XFtcXSInXSovaSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIn0sZGF0ZTp7cGF0dGVybjpSZWdFeHAoL1xiXGR7NH1bLS9dXGR7Mn1bLS9dXGR7Mn0oPzpUKD89XGR7MSwyfTopfCg/PVxzXGR7MSwyfTopKS8uc291cmNlKyJ8IisvXGJcZHsxLDR9Wy0vIF0oPzpcZHsxLDJ9fEFwcnxBdWd8RGVjfEZlYnxKYW58SnVsfEp1bnxNYXJ8TWF5fE5vdnxPY3R8U2VwKVstLyBdXGR7Miw0fVQ/XGIvLnNvdXJjZSsifCIrL1xiKD86KD86RnJpfE1vbnxTYXR8U3VufFRodXxUdWV8V2VkKSg/OlxzezEsMn0oPzpBcHJ8QXVnfERlY3xGZWJ8SmFufEp1bHxKdW58TWFyfE1heXxOb3Z8T2N0fFNlcCkpP3xBcHJ8QXVnfERlY3xGZWJ8SmFufEp1bHxKdW58TWFyfE1heXxOb3Z8T2N0fFNlcClcc3sxLDJ9XGR7MSwyfVxiLy5zb3VyY2UsImkiKSxhbGlhczoibnVtYmVyIn0sdGltZTp7cGF0dGVybjovXGJcZHsxLDJ9OlxkezEsMn06XGR7MSwyfSg/OlsuLDpdXGQrKT8oPzpccz9bKy1dXGR7Mn06P1xkezJ9fFopP1xiLyxhbGlhczoibnVtYmVyIn0sYm9vbGVhbjovXGIoPzpmYWxzZXxudWxsfHRydWUpXGIvaSxudW1iZXI6e3BhdHRlcm46LyhefFteLlx3XSkoPzoweFthLWYwLTldK3wwb1swLTddK3wwYlswMV0rfHY/XGRbXGRhLWZdKig/OlwuXGQrKSooPzplWystXT9cZCspP1thLXpdezAsM31cYilcYig/IVwuXHcpL2ksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6L1s7Oj88PT5+L0AhJCUmK1wtfF4oKXt9KiNdLyxwdW5jdHVhdGlvbjovW1xbXF0uLF0vfX1yZXR1cm4gemZ9dmFyIHFmLHhfO2Z1bmN0aW9uIHZGKCl7aWYoeF8pcmV0dXJuIHFmO3hfPTEscWY9ZSxlLmRpc3BsYXlOYW1lPSJsb2xjb2RlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5sb2xjb2RlPXtjb21tZW50OlsvXGJPQlRXXHNbXHNcU10qP1xzVExEUlxiLywvXGJCVFcuKy9dLHN0cmluZzp7cGF0dGVybjovIig/OjoufFteIjpdKSoiLyxpbnNpZGU6e3ZhcmlhYmxlOi86XHtbXn1dK1x9LyxzeW1ib2w6Wy86XChbYS1mXGRdK1wpL2ksLzpcW1teXF1dK1xdLywvOlspPm8iOl0vXX0sZ3JlZWR5OiEwfSxudW1iZXI6Lyg/OlxCLSk/KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspLyxzeW1ib2w6e3BhdHRlcm46LyhefFxzKSg/OkEgKT8oPzpCVUtLSVR8Tk9PQnxOVU1CQVJ8TlVNQlJ8VFJPT0Z8WUFSTikoPz1cc3wsfCQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7a2V5d29yZDovQSg/PVxzKS99fSxsYWJlbDp7cGF0dGVybjovKCg/Ol58XHMpKD86SU0gSU4gWVJ8SU0gT1VUVEEgWVIpIClbYS16QS1aXVx3Ki8sbG9va2JlaGluZDohMCxhbGlhczoic3RyaW5nIn0sZnVuY3Rpb246e3BhdHRlcm46LygoPzpefFxzKSg/OkhPVyBJWiBJfEkgSVp8SVopIClbYS16QS1aXVx3Ki8sbG9va2JlaGluZDohMH0sa2V5d29yZDpbe3BhdHRlcm46LyhefFxzKSg/OkFOfEZPVU5EIFlSfEdJTU1FSHxHVEZPfEhBSXxIQVMgQXxIT1cgSVogSXxJIEhBUyBBfEkgSVp8SUYgVSBTQVkgU098SU0gSU4gWVJ8SU0gT1VUVEEgWVJ8SVMgTk9XKD86IEEpP3xJVFooPzogQSk/fElafEtUSFh8S1RIWEJZRXxMSUVLKD86IEEpP3xNQUVLfE1FQkJFfE1LQVl8TkVSRklOfE5PIFdBSXxPIEhBSSBJTXxPIFJMWVw/fE9JQ3xPTUd8T01HV1RGfFJ8U01PT1NIfFNSU3xUSUx8VVBQSU58VklTSUJMRXxXSUxFfFdURlw/fFlBIFJMWXxZUikoPz1cc3wsfCQpLyxsb29rYmVoaW5kOiEwfSwvJ1ooPz1cc3wsfCQpL10sYm9vbGVhbjp7cGF0dGVybjovKF58XHMpKD86RkFJTHxXSU4pKD89XHN8LHwkKS8sbG9va2JlaGluZDohMH0sdmFyaWFibGU6e3BhdHRlcm46LyhefFxzKUlUKD89XHN8LHwkKS8sbG9va2JlaGluZDohMH0sb3BlcmF0b3I6e3BhdHRlcm46LyhefFxzKSg/Ok5PVHxCT1RIIFNBRU18RElGRlJJTlR8KD86QUxMfEFOWXxCSUdHUnxCT1RIfERJRkZ8RUlUSEVSfE1PRHxQUk9EVUtUfFFVT1NIVU5UfFNNQUxMUnxTVU18V09OKSBPRikoPz1cc3wsfCQpLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovXC57M3184oCmfCx8IS99fXJldHVybiBxZn12YXIgUGYsQV87ZnVuY3Rpb24gVEYoKXtpZihBXylyZXR1cm4gUGY7QV89MSxQZj1lLGUuZGlzcGxheU5hbWU9Im1hZ21hIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5tYWdtYT17b3V0cHV0OntwYXR0ZXJuOi9eKD4uKig/OlxyKD86XG58KD8hXG4pKXxcbikpKD8hPikoPzouK3woPzpccig/OlxufCg/IVxuKSl8XG4pKD8hPikuKikoPzooPzpccig/OlxufCg/IVxuKSl8XG4pKD8hPikuKikqL20sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGNvbW1lbnQ6e3BhdHRlcm46L1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKF58W15cXCJdKSIoPzpbXlxyXG5cXCJdfFxcLikqIi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86X3xhZGp8YW5kfGFzc2VydHxhc3NlcnQyfGFzc2VydDN8YXNzaWduZWR8YnJlYWt8Ynl8Y2FzZXxjYXR8Y2F0Y2h8Y2xlYXJ8Y21wZXF8Y21wbmV8Y29udGludWV8ZGVjbGFyZXxkZWZhdWx0fGRlbGV0ZXxkaWZmfGRpdnxkb3xlbGlmfGVsc2V8ZW5kfGVxfGVycm9yfGV2YWx8ZXhpc3RzfGV4aXR8Zm9yfGZvcmFsbHxmb3J3YXJkfGZwcmludGZ8ZnJlZXplfGZ1bmN0aW9ufGdlfGd0fGlmfGlsb2FkfGltcG9ydHxpbnxpbnRyaW5zaWN8aXN8am9pbnxsZXxsb2FkfGxvY2FsfGx0fG1lZXR8bW9kfG5lfG5vdHxub3RhZGp8bm90aW58bm90c3Vic2V0fG9yfHByaW50fHByaW50Znxwcm9jZWR1cmV8cXVpdHxyYW5kb218cmVhZHxyZWFkaXxyZXBlYXR8cmVxdWlyZXxyZXF1aXJlZ2V8cmVxdWlyZXJhbmdlfHJlc3RvcmV8cmV0dXJufHNhdmV8c2RpZmZ8c2VsZWN0fHN1YnNldHx0aGVufHRpbWV8dG98dHJ5fHVudGlsfHZwcmludHx2cHJpbnRmfHZ0aW1lfHdoZW58d2hlcmV8d2hpbGV8eG9yKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGdlbmVyYXRvcjp7cGF0dGVybjovXGJbYS16X11cdyooPz1ccyo8KS9pLGFsaWFzOiJjbGFzcy1uYW1lIn0sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksbnVtYmVyOntwYXR0ZXJuOi8oXnxbXlx3Ll18XC5cLikoPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OltlRV1bKy1dP1xkKyk/KD86X1thLXpdPyk/KD89JHxbXlx3Ll18XC5cLikvLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOi8tPnxbLSsqL15+IXwjPV18Oj18XC5cLi8scHVuY3R1YXRpb246L1soKVtcXXt9PD4sOy46XS99fXJldHVybiBQZn12YXIgR2YsX187ZnVuY3Rpb24geEYoKXtpZihfXylyZXR1cm4gR2Y7X189MSxHZj1lLGUuZGlzcGxheU5hbWU9Im1ha2VmaWxlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5tYWtlZmlsZT17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pIyg/OlxcKD86XHJcbnxbXHNcU10pfFteXFxcclxuXSkqLyxsb29rYmVoaW5kOiEwfSxzdHJpbmc6e3BhdHRlcm46LyhbIiddKSg/OlxcKD86XHJcbnxbXHNcU10pfCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMH0sImJ1aWx0aW4tdGFyZ2V0Ijp7cGF0dGVybjovXC5bQS1aXVteOiM9XHNdKyg/PVxzKjooPyE9KSkvLGFsaWFzOiJidWlsdGluIn0sdGFyZ2V0OntwYXR0ZXJuOi9eKD86W146PVxzXXxbIFx0XSsoPyFbXHM6XSkpKyg/PVxzKjooPyE9KSkvbSxhbGlhczoic3ltYm9sIixpbnNpZGU6e3ZhcmlhYmxlOi9cJCsoPzooPyFcJClbXigpe306Iz1cc10rfCg/PVsoe10pKS99fSx2YXJpYWJsZTovXCQrKD86KD8hXCQpW14oKXt9OiM9XHNdK3xcKFtAKiU8Xis/XVtERl1cKXwoPz1bKHtdKSkvLGtleXdvcmQ6Ly1pbmNsdWRlXGJ8XGIoPzpkZWZpbmV8ZWxzZXxlbmRlZnxlbmRpZnxleHBvcnR8aWZuP2RlZnxpZm4/ZXF8aW5jbHVkZXxvdmVycmlkZXxwcml2YXRlfHNpbmNsdWRlfHVuZGVmaW5lfHVuZXhwb3J0fHZwYXRoKVxiLyxmdW5jdGlvbjp7cGF0dGVybjovKFwoKSg/OmFic3BhdGh8YWRkc3VmZml4fGFuZHxiYXNlbmFtZXxjYWxsfGRpcnxlcnJvcnxldmFsfGZpbGV8ZmlsdGVyKD86LW91dCk/fGZpbmRzdHJpbmd8Zmlyc3R3b3JkfGZsYXZvcnxmb3JlYWNofGd1aWxlfGlmfGluZm98am9pbnxsYXN0d29yZHxsb2FkfG5vdGRpcnxvcnxvcmlnaW58cGF0c3Vic3R8cmVhbHBhdGh8c2hlbGx8c29ydHxzdHJpcHxzdWJzdHxzdWZmaXh8dmFsdWV8d2FybmluZ3x3aWxkY2FyZHx3b3JkKD86bGlzdHxzKT8pKD89WyBcdF0pLyxsb29rYmVoaW5kOiEwfSxvcGVyYXRvcjovKD86Ojp8Wz86KyFdKT89fFt8QF0vLHB1bmN0dWF0aW9uOi9bOjsoKXt9XS99fXJldHVybiBHZn12YXIgSGYsUl87ZnVuY3Rpb24gQUYoKXtpZihSXylyZXR1cm4gSGY7Ul89MSxIZj1lLGUuZGlzcGxheU5hbWU9Im1hcmtkb3duIixlLmFsaWFzZXM9WyJtZCJdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPS8oPzpcXC58W15cXFxuXHJdfCg/OlxufFxyXG4/KSg/IVtcclxuXSkpLy5zb3VyY2U7ZnVuY3Rpb24gbChTKXtyZXR1cm4gUz1TLnJlcGxhY2UoLzxpbm5lcj4vZyxmdW5jdGlvbigpe3JldHVybiBpfSksUmVnRXhwKC8oKD86XnxbXlxcXSkoPzpcXHsyfSkqKS8uc291cmNlKyIoPzoiK1MrIikiKX12YXIgdT0vKD86XFwufGBgKD86W15gXHJcbl18YCg/IWApKStgYHxgW15gXHJcbl0rYHxbXlxcfFxyXG5gXSkrLy5zb3VyY2UsYz0vXHw/X18oPzpcfF9fKStcfD8oPzooPzpcbnxcclxuPyl8KD8hW1xzXFNdKSkvLnNvdXJjZS5yZXBsYWNlKC9fXy9nLGZ1bmN0aW9uKCl7cmV0dXJuIHV9KSxkPS9cfD9bIFx0XSo6Py17Myx9Oj9bIFx0XSooPzpcfFsgXHRdKjo/LXszLH06P1sgXHRdKikrXHw/KD86XG58XHJcbj8pLy5zb3VyY2U7YS5sYW5ndWFnZXMubWFya2Rvd249YS5sYW5ndWFnZXMuZXh0ZW5kKCJtYXJrdXAiLHt9KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm1hcmtkb3duIiwicHJvbG9nIix7ImZyb250LW1hdHRlci1ibG9jayI6e3BhdHRlcm46LyheKD86XHMqW1xyXG5dKT8pLS0tKD8hLilbXHNcU10qP1tcclxuXS0tLSg/IS4pLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eLS0tfC0tLSQvLCJmcm9udC1tYXR0ZXIiOntwYXR0ZXJuOi9cUysoPzpccytcUyspKi8sYWxpYXM6WyJ5YW1sIiwibGFuZ3VhZ2UteWFtbCJdLGluc2lkZTphLmxhbmd1YWdlcy55YW1sfX19LGJsb2NrcXVvdGU6e3BhdHRlcm46L14+KD86W1x0IF0qPikqL20sYWxpYXM6InB1bmN0dWF0aW9uIn0sdGFibGU6e3BhdHRlcm46UmVnRXhwKCJeIitjK2QrIig/OiIrYysiKSoiLCJtIiksaW5zaWRlOnsidGFibGUtZGF0YS1yb3dzIjp7cGF0dGVybjpSZWdFeHAoIl4oIitjK2QrIikoPzoiK2MrIikqJCIpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsidGFibGUtZGF0YSI6e3BhdHRlcm46UmVnRXhwKHUpLGluc2lkZTphLmxhbmd1YWdlcy5tYXJrZG93bn0scHVuY3R1YXRpb246L1x8L319LCJ0YWJsZS1saW5lIjp7cGF0dGVybjpSZWdFeHAoIl4oIitjKyIpIitkKyIkIiksbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cfHw6Py17Myx9Oj8vfX0sInRhYmxlLWhlYWRlci1yb3ciOntwYXR0ZXJuOlJlZ0V4cCgiXiIrYysiJCIpLGluc2lkZTp7InRhYmxlLWhlYWRlciI6e3BhdHRlcm46UmVnRXhwKHUpLGFsaWFzOiJpbXBvcnRhbnQiLGluc2lkZTphLmxhbmd1YWdlcy5tYXJrZG93bn0scHVuY3R1YXRpb246L1x8L319fX0sY29kZTpbe3BhdHRlcm46LygoPzpefFxuKVsgXHRdKlxufCg/Ol58XHJcbj8pWyBcdF0qXHJcbj8pKD86IHs0fXxcdCkuKyg/Oig/OlxufFxyXG4/KSg/OiB7NH18XHQpLispKi8sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LHtwYXR0ZXJuOi9eYGBgW1xzXFNdKj9eYGBgJC9tLGdyZWVkeTohMCxpbnNpZGU6eyJjb2RlLWJsb2NrIjp7cGF0dGVybjovXihgYGAuKig/OlxufFxyXG4/KSlbXHNcU10rPyg/PSg/OlxufFxyXG4/KV5gYGAkKS9tLGxvb2tiZWhpbmQ6ITB9LCJjb2RlLWxhbmd1YWdlIjp7cGF0dGVybjovXihgYGApLisvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9gYGAvfX1dLHRpdGxlOlt7cGF0dGVybjovXFMuKig/OlxufFxyXG4/KSg/Oj09K3wtLSspKD89WyBcdF0qJCkvbSxhbGlhczoiaW1wb3J0YW50IixpbnNpZGU6e3B1bmN0dWF0aW9uOi89PSskfC0tKyQvfX0se3BhdHRlcm46LyheXHMqKSMuKy9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCIsaW5zaWRlOntwdW5jdHVhdGlvbjovXiMrfCMrJC99fV0saHI6e3BhdHRlcm46LyheXHMqKShbKi1dKSg/OltcdCBdKlwyKXsyLH0oPz1ccyokKS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sbGlzdDp7cGF0dGVybjovKF5ccyopKD86WyorLV18XGQrXC4pKD89W1x0IF0uKS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sInVybC1yZWZlcmVuY2UiOntwYXR0ZXJuOi8hP1xbW15cXV0rXF06W1x0IF0rKD86XFMrfDwoPzpcXC58W14+XFxdKSs+KSg/OltcdCBdKyg/OiIoPzpcXC58W14iXFxdKSoifCcoPzpcXC58W14nXFxdKSonfFwoKD86XFwufFteKVxcXSkqXCkpKT8vLGluc2lkZTp7dmFyaWFibGU6e3BhdHRlcm46L14oIT9cWylbXlxdXSsvLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzovKD86Iig/OlxcLnxbXiJcXF0pKiJ8Jyg/OlxcLnxbXidcXF0pKid8XCgoPzpcXC58W14pXFxdKSpcKSkkLyxwdW5jdHVhdGlvbjovXltcW1xdITpdfFs8Pl0vfSxhbGlhczoidXJsIn0sYm9sZDp7cGF0dGVybjpsKC9cYl9fKD86KD8hXyk8aW5uZXI+fF8oPzooPyFfKTxpbm5lcj4pK18pK19fXGJ8XCpcKig/Oig/IVwqKTxpbm5lcj58XCooPzooPyFcKik8aW5uZXI+KStcKikrXCpcKi8uc291cmNlKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e2NvbnRlbnQ6e3BhdHRlcm46LyheLi4pW1xzXFNdKyg/PS4uJCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnt9fSxwdW5jdHVhdGlvbjovXCpcKnxfXy99fSxpdGFsaWM6e3BhdHRlcm46bCgvXGJfKD86KD8hXyk8aW5uZXI+fF9fKD86KD8hXyk8aW5uZXI+KStfXykrX1xifFwqKD86KD8hXCopPGlubmVyPnxcKlwqKD86KD8hXCopPGlubmVyPikrXCpcKikrXCovLnNvdXJjZSksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntjb250ZW50OntwYXR0ZXJuOi8oXi4pW1xzXFNdKyg/PS4kKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e319LHB1bmN0dWF0aW9uOi9bKl9dL319LHN0cmlrZTp7cGF0dGVybjpsKC8ofn4/KSg/Oig/IX4pPGlubmVyPikrXDIvLnNvdXJjZSksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntjb250ZW50OntwYXR0ZXJuOi8oXn5+PylbXHNcU10rKD89XDEkKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e319LHB1bmN0dWF0aW9uOi9+fj8vfX0sImNvZGUtc25pcHBldCI6e3BhdHRlcm46LyhefFteXFxgXSkoPzpgYFteYFxyXG5dKyg/OmBbXmBcclxuXSspKmBgKD8hYCl8YFteYFxyXG5dK2AoPyFgKSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOlsiY29kZSIsImtleXdvcmQiXX0sdXJsOntwYXR0ZXJuOmwoLyE/XFsoPzooPyFcXSk8aW5uZXI+KStcXSg/OlwoW15ccyldKyg/OltcdCBdKyIoPzpcXC58W14iXFxdKSoiKT9cKXxbIFx0XT9cWyg/Oig/IVxdKTxpbm5lcj4pK1xdKS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e29wZXJhdG9yOi9eIS8sY29udGVudDp7cGF0dGVybjovKF5cWylbXlxdXSsoPz1cXSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnt9fSx2YXJpYWJsZTp7cGF0dGVybjovKF5cXVsgXHRdP1xbKVteXF1dKyg/PVxdJCkvLGxvb2tiZWhpbmQ6ITB9LHVybDp7cGF0dGVybjovKF5cXVwoKVteXHMpXSsvLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzp7cGF0dGVybjovKF5bIFx0XSspIig/OlxcLnxbXiJcXF0pKiIoPz1cKSQpLyxsb29rYmVoaW5kOiEwfX19fSksWyJ1cmwiLCJib2xkIiwiaXRhbGljIiwic3RyaWtlIl0uZm9yRWFjaChmdW5jdGlvbihTKXtbInVybCIsImJvbGQiLCJpdGFsaWMiLCJzdHJpa2UiLCJjb2RlLXNuaXBwZXQiXS5mb3JFYWNoKGZ1bmN0aW9uKEUpe1MhPT1FJiYoYS5sYW5ndWFnZXMubWFya2Rvd25bU10uaW5zaWRlLmNvbnRlbnQuaW5zaWRlW0VdPWEubGFuZ3VhZ2VzLm1hcmtkb3duW0VdKX0pfSksYS5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihTKXtpZihTLmxhbmd1YWdlIT09Im1hcmtkb3duIiYmUy5sYW5ndWFnZSE9PSJtZCIpcmV0dXJuO2Z1bmN0aW9uIEUoXyl7aWYoISghX3x8dHlwZW9mIF89PSJzdHJpbmciKSlmb3IodmFyIFQ9MCxDPV8ubGVuZ3RoO1Q8QztUKyspe3ZhciB4PV9bVF07aWYoeC50eXBlIT09ImNvZGUiKXtFKHguY29udGVudCk7Y29udGludWV9dmFyIE49eC5jb250ZW50WzFdLGs9eC5jb250ZW50WzNdO2lmKE4mJmsmJk4udHlwZT09PSJjb2RlLWxhbmd1YWdlIiYmay50eXBlPT09ImNvZGUtYmxvY2siJiZ0eXBlb2YgTi5jb250ZW50PT0ic3RyaW5nIil7dmFyIEw9Ti5jb250ZW50LnJlcGxhY2UoL1xiIy9nLCJzaGFycCIpLnJlcGxhY2UoL1xiXCtcKy9nLCJwcCIpO0w9KC9bYS16XVtcdy1dKi9pLmV4ZWMoTCl8fFsiIl0pWzBdLnRvTG93ZXJDYXNlKCk7dmFyIEY9Imxhbmd1YWdlLSIrTDtrLmFsaWFzP3R5cGVvZiBrLmFsaWFzPT0ic3RyaW5nIj9rLmFsaWFzPVtrLmFsaWFzLEZdOmsuYWxpYXMucHVzaChGKTprLmFsaWFzPVtGXX19fUUoUy50b2tlbnMpfSksYS5ob29rcy5hZGQoIndyYXAiLGZ1bmN0aW9uKFMpe2lmKFMudHlwZT09PSJjb2RlLWJsb2NrIil7Zm9yKHZhciBFPSIiLF89MCxUPVMuY2xhc3Nlcy5sZW5ndGg7XzxUO18rKyl7dmFyIEM9Uy5jbGFzc2VzW19dLHg9L2xhbmd1YWdlLSguKykvLmV4ZWMoQyk7aWYoeCl7RT14WzFdO2JyZWFrfX12YXIgTj1hLmxhbmd1YWdlc1tFXTtpZihOKVMuY29udGVudD1hLmhpZ2hsaWdodChoKFMuY29udGVudC52YWx1ZSksTixFKTtlbHNlIGlmKEUmJkUhPT0ibm9uZSImJmEucGx1Z2lucy5hdXRvbG9hZGVyKXt2YXIgaz0ibWQtIituZXcgRGF0ZSgpLnZhbHVlT2YoKSsiLSIrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlMTYpO1MuYXR0cmlidXRlcy5pZD1rLGEucGx1Z2lucy5hdXRvbG9hZGVyLmxvYWRMYW5ndWFnZXMoRSxmdW5jdGlvbigpe3ZhciBMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGspO0wmJihMLmlubmVySFRNTD1hLmhpZ2hsaWdodChMLnRleHRDb250ZW50LGEubGFuZ3VhZ2VzW0VdLEUpKX0pfX19KTt2YXIgZj1SZWdFeHAoYS5sYW5ndWFnZXMubWFya3VwLnRhZy5wYXR0ZXJuLnNvdXJjZSwiZ2kiKSxtPXthbXA6IiYiLGx0OiI8IixndDoiPiIscXVvdDonIid9LGI9U3RyaW5nLmZyb21Db2RlUG9pbnR8fFN0cmluZy5mcm9tQ2hhckNvZGU7ZnVuY3Rpb24gaChTKXt2YXIgRT1TLnJlcGxhY2UoZiwiIik7cmV0dXJuIEU9RS5yZXBsYWNlKC8mKFx3ezEsOH18I3g/W1xkYS1mXXsxLDh9KTsvZ2ksZnVuY3Rpb24oXyxUKXtpZihUPVQudG9Mb3dlckNhc2UoKSxUWzBdPT09IiMiKXt2YXIgQztyZXR1cm4gVFsxXT09PSJ4Ij9DPXBhcnNlSW50KFQuc2xpY2UoMiksMTYpOkM9TnVtYmVyKFQuc2xpY2UoMSkpLGIoQyl9ZWxzZXt2YXIgeD1tW1RdO3JldHVybiB4fHxffX0pLEV9YS5sYW5ndWFnZXMubWQ9YS5sYW5ndWFnZXMubWFya2Rvd259KShuKX1yZXR1cm4gSGZ9dmFyICRmLE5fO2Z1bmN0aW9uIF9GKCl7aWYoTl8pcmV0dXJuICRmO05fPTEsJGY9ZSxlLmRpc3BsYXlOYW1lPSJtYXRsYWIiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLm1hdGxhYj17Y29tbWVudDpbLyVce1tcc1xTXSo/XH0lLywvJS4rL10sc3RyaW5nOntwYXR0ZXJuOi9cQicoPzonJ3xbXidcclxuXSkqJy8sZ3JlZWR5OiEwfSxudW1iZXI6Lyg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OltlRV1bKy1dP1xkKyk/KD86W2lqXSk/fFxiW2lqXVxiLyxrZXl3b3JkOi9cYig/Ok5hTnxicmVha3xjYXNlfGNhdGNofGNvbnRpbnVlfGVsc2V8ZWxzZWlmfGVuZHxmb3J8ZnVuY3Rpb258aWZ8aW5mfG90aGVyd2lzZXxwYXJmb3J8cGF1c2V8cGl8cmV0dXJufHN3aXRjaHx0cnl8d2hpbGUpXGIvLGZ1bmN0aW9uOi9cYig/IVxkKVx3Kyg/PVxzKlwoKS8sb3BlcmF0b3I6L1wuP1sqXlwvXFwnXXxbK1wtOkBdfFs8Pj1+XT0/fCYmP3xcfFx8Py8scHVuY3R1YXRpb246L1wuezN9fFsuLDtcW1xdKCl7fSFdL319cmV0dXJuICRmfXZhciBWZix3XztmdW5jdGlvbiBSRigpe2lmKHdfKXJldHVybiBWZjt3Xz0xLFZmPWUsZS5kaXNwbGF5TmFtZT0ibWF4c2NyaXB0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9L1xiKD86YWJvdXR8YW5kfGFuaW1hdGV8YXN8YXR8YXR0cmlidXRlc3xieXxjYXNlfGNhdGNofGNvbGxlY3R8Y29udGludWV8Y29vcmRzeXN8ZG98ZWxzZXxleGl0fGZufGZvcnxmcm9tfGZ1bmN0aW9ufGdsb2JhbHxpZnxpbnxsb2NhbHxtYWNyb3NjcmlwdHxtYXBwZWR8bWF4fG5vdHxvZnxvZmZ8b258b3J8cGFyYW1ldGVyc3xwZXJzaXN0ZW50fHBsdWdpbnxyY21lbnV8cmV0dXJufHJvbGxvdXR8c2V0fHN0cnVjdHx0aGVufHRocm93fHRvfHRvb2x8dHJ5fHVuZG98dXRpbGl0eXx3aGVufHdoZXJlfHdoaWxlfHdpdGgpXGIvaTthLmxhbmd1YWdlcy5tYXhzY3JpcHQ9e2NvbW1lbnQ6e3BhdHRlcm46L1wvXCpbXHNcU10qPyg/OlwqXC98JCl8LS0uKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyhefFteIlxcQF0pKD86Iig/OlteIlxcXXxcXFtcc1xTXSkqInxAIlteIl0qIikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxwYXRoOntwYXR0ZXJuOi9cJCg/Oltcdy9cXC4qP118J1teJ10qJykqLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyJ9LCJmdW5jdGlvbi1jYWxsIjp7cGF0dGVybjpSZWdFeHAoIigoPzoiKygvXi8uc291cmNlKyJ8IisvWzs9PD4rXC0qL14oe1xbXS8uc291cmNlKyJ8IisvXGIoPzphbmR8Ynl8Y2FzZXxjYXRjaHxjb2xsZWN0fGRvfGVsc2V8aWZ8aW58bm90fG9yfHJldHVybnx0aGVufHRvfHRyeXx3aGVyZXx3aGlsZXx3aXRoKVxiLy5zb3VyY2UpKyIpWyAJXSopKD8hIitpLnNvdXJjZSsiKSIrL1thLXpfXVx3KlxiLy5zb3VyY2UrIig/PVsgCV0qKD86IisoIig/ISIraS5zb3VyY2UrIikiKy9bYS16X10vLnNvdXJjZSsifCIrL1xkfC1cLj9cZC8uc291cmNlKyJ8IisvWyh7JyIkQCM/XS8uc291cmNlKSsiKSkiLCJpbSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJmdW5jdGlvbiJ9LCJmdW5jdGlvbi1kZWZpbml0aW9uIjp7cGF0dGVybjovKFxiKD86Zm58ZnVuY3Rpb24pXHMrKVx3K1xiL2ksbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxhcmd1bWVudDp7cGF0dGVybjovXGJbYS16X11cdyooPz06KS9pLGFsaWFzOiJhdHRyLW5hbWUifSxrZXl3b3JkOmksYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyx0aW1lOntwYXR0ZXJuOi8oXnxbXlx3Ll0pKD86KD86KD86XGQrKD86XC5cZCopP3xcLlxkKykoPzpbZUVkRF1bKy1dXGQrfFtMUF0pP1ttc2Z0XSkrfFxkKzpcZCsoPzpcLlxkKik/KSg/IVtcdy46XSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LG51bWJlcjpbe3BhdHRlcm46LyhefFteXHcuXSkoPzooPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OltlRWREXVsrLV1cZCt8W0xQXSk/fDB4W2EtZkEtRjAtOV0rKSg/IVtcdy46XSkvLGxvb2tiZWhpbmQ6ITB9LC9cYig/OmV8cGkpXGIvXSxjb25zdGFudDovXGIoPzpkb250Y29sbGVjdHxva3xzaWxlbnRWYWx1ZXx1bmRlZmluZWR8dW5zdXBwbGllZClcYi8sY29sb3I6e3BhdHRlcm46L1xiKD86YmxhY2t8Ymx1ZXxicm93bnxncmF5fGdyZWVufG9yYW5nZXxyZWR8d2hpdGV8eWVsbG93KVxiL2ksYWxpYXM6ImNvbnN0YW50In0sb3BlcmF0b3I6L1stKyovPD49IV09P3xbJl4/XXwjKD8hXCgpLyxwdW5jdHVhdGlvbjovWygpXFtcXXt9LjosO118Iyg/PVwoKXxcXCQvbX19KShuKX1yZXR1cm4gVmZ9dmFyIFlmLGtfO2Z1bmN0aW9uIE5GKCl7aWYoa18pcmV0dXJuIFlmO2tfPTEsWWY9ZSxlLmRpc3BsYXlOYW1lPSJtZWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLm1lbD17Y29tbWVudDovXC9cLy4qLyxjb2RlOntwYXR0ZXJuOi9gKD86XFwufFteXFxgXHJcbl0pKmAvLGdyZWVkeTohMCxhbGlhczoiaXRhbGljIixpbnNpZGU6e2RlbGltaXRlcjp7cGF0dGVybjovXmB8YCQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fX0sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwufFteXFwiXHJcbl0pKiIvLGdyZWVkeTohMH0sdmFyaWFibGU6L1wkXHcrLyxudW1iZXI6L1xiMHhbXGRhLWZBLUZdK1xifFxiXGQrKD86XC5cZCopP3xcQlwuXGQrLyxmbGFnOntwYXR0ZXJuOi8tW15cZFxXXVx3Ki8sYWxpYXM6Im9wZXJhdG9yIn0sa2V5d29yZDovXGIoPzpicmVha3xjYXNlfGNvbnRpbnVlfGRlZmF1bHR8ZG98ZWxzZXxmbG9hdHxmb3J8Z2xvYmFsfGlmfGlufGludHxtYXRyaXh8cHJvY3xyZXR1cm58c3RyaW5nfHN3aXRjaHx2ZWN0b3J8d2hpbGUpXGIvLGZ1bmN0aW9uOi9cYlx3Kyg/PVwoKXxcYig/OkNCR3xIZkFkZEF0dHJhY3RvclRvQVN8SGZBc3NpZ25BU3xIZkJ1aWxkRXF1YWxNYXB8SGZCdWlsZEZ1ckZpbGVzfEhmQnVpbGRGdXJJbWFnZXN8SGZDYW5jZWxBRlJ8SGZDb25uZWN0QVNUb0hGfEhmQ3JlYXRlQXR0cmFjdG9yfEhmRGVsZXRlQVN8SGZFZGl0QVN8SGZQZXJmb3JtQ3JlYXRlQVN8SGZSZW1vdmVBdHRyYWN0b3JGcm9tQVN8SGZTZWxlY3RBdHRhY2hlZHxIZlNlbGVjdEF0dHJhY3RvcnN8SGZVbkFzc2lnbkFTfE1heWF0b21yfGFib3V0fGFic3xhZGRBdHRyfGFkZEF0dHJpYnV0ZUVkaXRvck5vZGVIZWxwfGFkZER5bmFtaWN8YWRkTmV3U2hlbGZUYWJ8YWRkUFB8YWRkUGFuZWxDYXRlZ29yeXxhZGRQcmVmaXhUb05hbWV8YWR2YW5jZVRvTmV4dERyaXZlbktleXxhZmZlY3RlZE5ldHxhZmZlY3RzfGFpbUNvbnN0cmFpbnR8YWlyfGFsaWFzfGFsaWFzQXR0cnxhbGlnbnxhbGlnbkN0eHxhbGlnbkN1cnZlfGFsaWduU3VyZmFjZXxhbGxWaWV3Rml0fGFtYmllbnRMaWdodHxhbmdsZXxhbmdsZUJldHdlZW58YW5pbUNvbmV8YW5pbUN1cnZlRWRpdG9yfGFuaW1EaXNwbGF5fGFuaW1WaWV3fGFubm90YXRlfGFwcGVuZFN0cmluZ0FycmF5fGFwcGxpY2F0aW9uTmFtZXxhcHBseUF0dHJQcmVzZXR8YXBwbHlUYWtlfGFyY0xlbkRpbUNvbnRleHR8YXJjTGVuZ3RoRGltZW5zaW9ufGFyY2xlbnxhcnJheU1hcHBlcnxhcnQzZFBhaW50Q3R4fGFydEF0dHJDdHh8YXJ0QXR0clBhaW50VmVydGV4Q3R4fGFydEF0dHJTa2luUGFpbnRDdHh8YXJ0QXR0clRvb2x8YXJ0QnVpbGRQYWludE1lbnV8YXJ0Rmx1aWRBdHRyQ3R4fGFydFB1dHR5Q3R4fGFydFNlbGVjdEN0eHxhcnRTZXRQYWludEN0eHxhcnRVc2VyUGFpbnRDdHh8YXNzaWduQ29tbWFuZHxhc3NpZ25JbnB1dERldmljZXxhc3NpZ25WaWV3cG9ydEZhY3Rvcmllc3xhdHRhY2hDdXJ2ZXxhdHRhY2hEZXZpY2VBdHRyfGF0dGFjaFN1cmZhY2V8YXR0ckNvbG9yU2xpZGVyR3JwfGF0dHJDb21wYXRpYmlsaXR5fGF0dHJDb250cm9sR3JwfGF0dHJFbnVtT3B0aW9uTWVudXxhdHRyRW51bU9wdGlvbk1lbnVHcnB8YXR0ckZpZWxkR3JwfGF0dHJGaWVsZFNsaWRlckdycHxhdHRyTmF2aWdhdGlvbkNvbnRyb2xHcnB8YXR0clByZXNldEVkaXRXaW58YXR0cmlidXRlRXhpc3RzfGF0dHJpYnV0ZUluZm98YXR0cmlidXRlTWVudXxhdHRyaWJ1dGVRdWVyeXxhdXRvS2V5ZnJhbWV8YXV0b1BsYWNlfGJha2VDbGlwfGJha2VGbHVpZFNoYWRpbmd8YmFrZVBhcnRpYWxIaXN0b3J5fGJha2VSZXN1bHRzfGJha2VTaW11bGF0aW9ufGJhc2VuYW1lfGJhc2VuYW1lRXh8YmF0Y2hSZW5kZXJ8YmVzc2VsfGJldmVsfGJldmVsUGx1c3xiaW5NZW1iZXJzaGlwfGJpbmRTa2lufGJsZW5kMnxibGVuZFNoYXBlfGJsZW5kU2hhcGVFZGl0b3J8YmxlbmRTaGFwZVBhbmVsfGJsZW5kVHdvQXR0cnxibGluZERhdGFUeXBlfGJvbmVMYXR0aWNlfGJvdW5kYXJ5fGJveERvbGx5Q3R4fGJveFpvb21DdHh8YnVmZmVyQ3VydmV8YnVpbGRCb29rbWFya01lbnV8YnVpbGRLZXlmcmFtZU1lbnV8YnV0dG9ufGJ1dHRvbk1hbmlwfGNhY2hlRmlsZXxjYWNoZUZpbGVDb21iaW5lfGNhY2hlRmlsZU1lcmdlfGNhY2hlRmlsZVRyYWNrfGNhbWVyYXxjYW1lcmFWaWV3fGNhbkNyZWF0ZU1hbmlwfGNhbnZhc3xjYXBpdGFsaXplU3RyaW5nfGNhdGNofGNhdGNoUXVpZXR8Y2VpbHxjaGFuZ2VTdWJkaXZDb21wb25lbnREaXNwbGF5TGV2ZWx8Y2hhbmdlU3ViZGl2UmVnaW9ufGNoYW5uZWxCb3h8Y2hhcmFjdGVyfGNoYXJhY3Rlck1hcHxjaGFyYWN0ZXJPdXRsaW5lRWRpdG9yfGNoYXJhY3Rlcml6ZXxjaGRpcnxjaGVja0JveHxjaGVja0JveEdycHxjaGVja0RlZmF1bHRSZW5kZXJHbG9iYWxzfGNob2ljZXxjaXJjbGV8Y2lyY3VsYXJGaWxsZXR8Y2xhbXB8Y2xlYXJ8Y2xlYXJDYWNoZXxjbGlwfGNsaXBFZGl0b3J8Y2xpcEVkaXRvckN1cnJlbnRUaW1lQ3R4fGNsaXBTY2hlZHVsZXxjbGlwU2NoZWR1bGVyT3V0bGluZXJ8Y2xpcFRyaW1CZWZvcmV8Y2xvc2VDdXJ2ZXxjbG9zZVN1cmZhY2V8Y2x1c3RlcnxjbWRGaWxlT3V0cHV0fGNtZFNjcm9sbEZpZWxkRXhlY3V0ZXJ8Y21kU2Nyb2xsRmllbGRSZXBvcnRlcnxjbWRTaGVsbHxjb2Fyc2VuU3ViZGl2U2VsZWN0aW9uTGlzdHxjb2xsaXNpb258Y29sb3J8Y29sb3JBdFBvaW50fGNvbG9yRWRpdG9yfGNvbG9ySW5kZXh8Y29sb3JJbmRleFNsaWRlckdycHxjb2xvclNsaWRlckJ1dHRvbkdycHxjb2xvclNsaWRlckdycHxjb2x1bW5MYXlvdXR8Y29tbWFuZEVjaG98Y29tbWFuZExpbmV8Y29tbWFuZFBvcnR8Y29tcGFjdEhhaXJTeXN0ZW18Y29tcG9uZW50RWRpdG9yfGNvbXBvc2l0aW5nSW50ZXJvcHxjb21wdXRlUG9seXNldFZvbHVtZXxjb25kaXRpb258Y29uZXxjb25maXJtRGlhbG9nfGNvbm5lY3RBdHRyfGNvbm5lY3RDb250cm9sfGNvbm5lY3REeW5hbWljfGNvbm5lY3RKb2ludHxjb25uZWN0aW9uSW5mb3xjb25zdHJhaW58Y29uc3RyYWluVmFsdWV8Y29uc3RydWN0aW9uSGlzdG9yeXxjb250YWluZXJ8Y29udGFpbnNNdWx0aWJ5dGV8Y29udGV4dEluZm98Y29udHJvbHxjb252ZXJ0RnJvbU9sZExheWVyc3xjb252ZXJ0SWZmVG9Qc2R8Y29udmVydExpZ2h0bWFwfGNvbnZlcnRTb2xpZFR4fGNvbnZlcnRUZXNzZWxsYXRpb258Y29udmVydFVuaXR8Y29weUFycmF5fGNvcHlGbGV4b3J8Y29weUtleXxjb3B5U2tpbldlaWdodHN8Y29zfGNwQnV0dG9ufGNwQ2FjaGV8Y3BDbG90aFNldHxjcENvbGxpc2lvbnxjcENvbnN0cmFpbnR8Y3BDb252Q2xvdGhUb01lc2h8Y3BGb3JjZXN8Y3BHZXRTb2x2ZXJBdHRyfGNwUGFuZWx8Y3BQcm9wZXJ0eXxjcFJpZ2lkQ29sbGlzaW9uRmlsdGVyfGNwU2VhbXxjcFNldEVkaXR8Y3BTZXRTb2x2ZXJBdHRyfGNwU29sdmVyfGNwU29sdmVyVHlwZXN8Y3BUb29sfGNwVXBkYXRlQ2xvdGhVVnN8Y3JlYXRlRGlzcGxheUxheWVyfGNyZWF0ZURyYXdDdHh8Y3JlYXRlRWRpdG9yfGNyZWF0ZUxheWVyZWRQc2RGaWxlfGNyZWF0ZU1vdGlvbkZpZWxkfGNyZWF0ZU5ld1NoZWxmfGNyZWF0ZU5vZGV8Y3JlYXRlUmVuZGVyTGF5ZXJ8Y3JlYXRlU3ViZGl2UmVnaW9ufGNyb3NzfGNyb3NzUHJvZHVjdHxjdHhBYm9ydHxjdHhDb21wbGV0aW9ufGN0eEVkaXRNb2RlfGN0eFRyYXZlcnNlfGN1cnJlbnRDdHh8Y3VycmVudFRpbWV8Y3VycmVudFRpbWVDdHh8Y3VycmVudFVuaXR8Y3VydmV8Y3VydmVBZGRQdEN0eHxjdXJ2ZUNWQ3R4fGN1cnZlRVBDdHh8Y3VydmVFZGl0b3JDdHh8Y3VydmVJbnRlcnNlY3R8Y3VydmVNb3ZlRVBDdHh8Y3VydmVPblN1cmZhY2V8Y3VydmVTa2V0Y2hDdHh8Y3V0S2V5fGN5Y2xlQ2hlY2t8Y3lsaW5kZXJ8ZGFnUG9zZXxkYXRlfGRlZmF1bHRMaWdodExpc3RDaGVja0JveHxkZWZhdWx0TmF2aWdhdGlvbnxkZWZpbmVEYXRhU2VydmVyfGRlZmluZVZpcnR1YWxEZXZpY2V8ZGVmb3JtZXJ8ZGVnX3RvX3JhZHxkZWxldGV8ZGVsZXRlQXR0cnxkZWxldGVTaGFkaW5nR3JvdXBzQW5kTWF0ZXJpYWxzfGRlbGV0ZVNoZWxmVGFifGRlbGV0ZVVJfGRlbGV0ZVVudXNlZEJydXNoZXN8ZGVscmFuZHN0cnxkZXRhY2hDdXJ2ZXxkZXRhY2hEZXZpY2VBdHRyfGRldGFjaFN1cmZhY2V8ZGV2aWNlRWRpdG9yfGRldmljZVBhbmVsfGRnSW5mb3xkZ2RpcnR5fGRnZXZhbHxkZ3RpbWVyfGRpbVdoZW58ZGlyZWN0S2V5Q3R4fGRpcmVjdGlvbmFsTGlnaHR8ZGlybWFwfGRpcm5hbWV8ZGlzYWJsZXxkaXNjb25uZWN0QXR0cnxkaXNjb25uZWN0Sm9pbnR8ZGlza0NhY2hlfGRpc3BsYWNlbWVudFRvUG9seXxkaXNwbGF5QWZmZWN0ZWR8ZGlzcGxheUNvbG9yfGRpc3BsYXlDdWxsfGRpc3BsYXlMZXZlbE9mRGV0YWlsfGRpc3BsYXlQcmVmfGRpc3BsYXlSR0JDb2xvcnxkaXNwbGF5U21vb3RobmVzc3xkaXNwbGF5U3RhdHN8ZGlzcGxheVN0cmluZ3xkaXNwbGF5U3VyZmFjZXxkaXN0YW5jZURpbUNvbnRleHR8ZGlzdGFuY2VEaW1lbnNpb258ZG9CbHVyfGRvbGx5fGRvbGx5Q3R4fGRvcGVTaGVldEVkaXRvcnxkb3R8ZG90UHJvZHVjdHxkb3VibGVQcm9maWxlQmlyYWlsU3VyZmFjZXxkcmFnfGRyYWdBdHRyQ29udGV4dHxkcmFnZ2VyQ29udGV4dHxkcm9wb2ZmTG9jYXRvcnxkdXBsaWNhdGV8ZHVwbGljYXRlQ3VydmV8ZHVwbGljYXRlU3VyZmFjZXxkeW5DYWNoZXxkeW5Db250cm9sfGR5bkV4cG9ydHxkeW5FeHByZXNzaW9ufGR5bkdsb2JhbHN8ZHluUGFpbnRFZGl0b3J8ZHluUGFydGljbGVDdHh8ZHluUHJlZnxkeW5SZWxFZFBhbmVsfGR5blJlbEVkaXRvcnxkeW5hbWljTG9hZHxlZGl0QXR0ckxpbWl0c3xlZGl0RGlzcGxheUxheWVyR2xvYmFsc3xlZGl0RGlzcGxheUxheWVyTWVtYmVyc3xlZGl0UmVuZGVyTGF5ZXJBZGp1c3RtZW50fGVkaXRSZW5kZXJMYXllckdsb2JhbHN8ZWRpdFJlbmRlckxheWVyTWVtYmVyc3xlZGl0b3J8ZWRpdG9yVGVtcGxhdGV8ZWZmZWN0b3J8ZW1pdHxlbWl0dGVyfGVuYWJsZURldmljZXxlbmNvZGVTdHJpbmd8ZW5kU3RyaW5nfGVuZHNXaXRofGVudnxlcXVpdmFsZW50fGVxdWl2YWxlbnRUb2x8ZXJmfGVycm9yfGV2YWx8ZXZhbERlZmVycmVkfGV2YWxFY2hvfGV2ZW50fGV4YWN0V29ybGRCb3VuZGluZ0JveHxleGNsdXNpdmVMaWdodENoZWNrQm94fGV4ZWN8ZXhlY3V0ZUZvckVhY2hPYmplY3R8ZXhpc3RzfGV4cHxleHByZXNzaW9ufGV4cHJlc3Npb25FZGl0b3JMaXN0ZW58ZXh0ZW5kQ3VydmV8ZXh0ZW5kU3VyZmFjZXxleHRydWRlfGZjaGVja3xmY2xvc2V8ZmVvZnxmZmx1c2h8ZmdldGxpbmV8ZmdldHdvcmR8ZmlsZXxmaWxlQnJvd3NlckRpYWxvZ3xmaWxlRGlhbG9nfGZpbGVFeHRlbnNpb258ZmlsZUluZm98ZmlsZXRlc3R8ZmlsbGV0Q3VydmV8ZmlsdGVyfGZpbHRlckN1cnZlfGZpbHRlckV4cGFuZHxmaWx0ZXJTdHVkaW9JbXBvcnR8ZmluZEFsbEludGVyc2VjdGlvbnN8ZmluZEFuaW1DdXJ2ZXN8ZmluZEtleWZyYW1lfGZpbmRNZW51SXRlbXxmaW5kUmVsYXRlZFNraW5DbHVzdGVyfGZpbmRlcnxmaXJzdFBhcmVudE9mfGZpdEJzcGxpbmV8ZmxleG9yfGZsb2F0RXF8ZmxvYXRGaWVsZHxmbG9hdEZpZWxkR3JwfGZsb2F0U2Nyb2xsQmFyfGZsb2F0U2xpZGVyfGZsb2F0U2xpZGVyMnxmbG9hdFNsaWRlckJ1dHRvbkdycHxmbG9hdFNsaWRlckdycHxmbG9vcnxmbG93fGZsdWlkQ2FjaGVJbmZvfGZsdWlkRW1pdHRlcnxmbHVpZFZveGVsSW5mb3xmbHVzaFVuZG98Zm1vZHxmb250RGlhbG9nfGZvcGVufGZvcm1MYXlvdXR8Zm9ybWF0fGZwcmludHxmcmFtZUxheW91dHxmcmVhZHxmcmVlRm9ybUZpbGxldHxmcmV3aW5kfGZyb21OYXRpdmVQYXRofGZ3cml0ZXxnYW1tYXxnYXVzc3xnZW9tZXRyeUNvbnN0cmFpbnR8Z2V0QXBwbGljYXRpb25WZXJzaW9uQXNGbG9hdHxnZXRBdHRyfGdldENsYXNzaWZpY2F0aW9ufGdldERlZmF1bHRCcnVzaHxnZXRGaWxlTGlzdHxnZXRGbHVpZEF0dHJ8Z2V0SW5wdXREZXZpY2VSYW5nZXxnZXRNYXlhUGFuZWxUeXBlc3xnZXRNb2RpZmllcnN8Z2V0UGFuZWx8Z2V0UGFydGljbGVBdHRyfGdldFBsdWdpblJlc291cmNlfGdldGVudnxnZXRwaWR8Z2xSZW5kZXJ8Z2xSZW5kZXJFZGl0b3J8Z2xvYmFsU3RpdGNofGdtYXRjaHxnb2FsfGdvdG9CaW5kUG9zZXxncmFiQ29sb3J8Z3JhZGllbnRDb250cm9sfGdyYWRpZW50Q29udHJvbE5vQXR0cnxncmFwaERvbGx5Q3R4fGdyYXBoU2VsZWN0Q29udGV4dHxncmFwaFRyYWNrQ3R4fGdyYXZpdHl8Z3JpZHxncmlkTGF5b3V0fGdyb3VwfGdyb3VwT2JqZWN0c0J5TmFtZXxoYXJkZW5Qb2ludEN1cnZlfGhhcmR3YXJlfGhhcmR3YXJlUmVuZGVyUGFuZWx8aGVhZHNVcERpc3BsYXl8aGVhZHNVcE1lc3NhZ2V8aGVscHxoZWxwTGluZXxoZXJtaXRlfGhpZGV8aGlsaXRlfGhpdFRlc3R8aG90Qm94fGhvdGtleXxob3RrZXlDaGVja3xoc3ZfdG9fcmdifGh1ZEJ1dHRvbnxodWRTbGlkZXJ8aHVkU2xpZGVyQnV0dG9ufGh3UmVmbGVjdGlvbk1hcHxod1JlbmRlcnxod1JlbmRlckxvYWR8aHlwZXJHcmFwaHxoeXBlclBhbmVsfGh5cGVyU2hhZGV8aHlwb3R8aWNvblRleHRCdXR0b258aWNvblRleHRDaGVja0JveHxpY29uVGV4dFJhZGlvQnV0dG9ufGljb25UZXh0UmFkaW9Db2xsZWN0aW9ufGljb25UZXh0U2Nyb2xsTGlzdHxpY29uVGV4dFN0YXRpY0xhYmVsfGlrSGFuZGxlfGlrSGFuZGxlQ3R4fGlrSGFuZGxlRGlzcGxheVNjYWxlfGlrU29sdmVyfGlrU3BsaW5lSGFuZGxlQ3R4fGlrU3lzdGVtfGlrU3lzdGVtSW5mb3xpa2ZrRGlzcGxheU1ldGhvZHxpbGx1c3RyYXRvckN1cnZlc3xpbWFnZXxpbWZQbHVnaW5zfGluaGVyaXRUcmFuc2Zvcm18aW5zZXJ0Sm9pbnR8aW5zZXJ0Sm9pbnRDdHh8aW5zZXJ0S2V5Q3R4fGluc2VydEtub3RDdXJ2ZXxpbnNlcnRLbm90U3VyZmFjZXxpbnN0YW5jZXxpbnN0YW5jZWFibGV8aW5zdGFuY2VyfGludEZpZWxkfGludEZpZWxkR3JwfGludFNjcm9sbEJhcnxpbnRTbGlkZXJ8aW50U2xpZGVyR3JwfGludGVyVG9VSXxpbnRlcm5hbFZhcnxpbnRlcnNlY3R8aXByRW5naW5lfGlzQW5pbUN1cnZlfGlzQ29ubmVjdGVkfGlzRGlydHl8aXNQYXJlbnRPZnxpc1NhbWVPYmplY3R8aXNUcnVlfGlzVmFsaWRPYmplY3ROYW1lfGlzVmFsaWRTdHJpbmd8aXNWYWxpZFVpTmFtZXxpc29sYXRlU2VsZWN0fGl0ZW1GaWx0ZXJ8aXRlbUZpbHRlckF0dHJ8aXRlbUZpbHRlclJlbmRlcnxpdGVtRmlsdGVyVHlwZXxqb2ludHxqb2ludENsdXN0ZXJ8am9pbnRDdHh8am9pbnREaXNwbGF5U2NhbGV8am9pbnRMYXR0aWNlfGtleVRhbmdlbnR8a2V5ZnJhbWV8a2V5ZnJhbWVPdXRsaW5lcnxrZXlmcmFtZVJlZ2lvbkN1cnJlbnRUaW1lQ3R4fGtleWZyYW1lUmVnaW9uRGlyZWN0S2V5Q3R4fGtleWZyYW1lUmVnaW9uRG9sbHlDdHh8a2V5ZnJhbWVSZWdpb25JbnNlcnRLZXlDdHh8a2V5ZnJhbWVSZWdpb25Nb3ZlS2V5Q3R4fGtleWZyYW1lUmVnaW9uU2NhbGVLZXlDdHh8a2V5ZnJhbWVSZWdpb25TZWxlY3RLZXlDdHh8a2V5ZnJhbWVSZWdpb25TZXRLZXlDdHh8a2V5ZnJhbWVSZWdpb25UcmFja0N0eHxrZXlmcmFtZVN0YXRzfGxhc3NvQ29udGV4dHxsYXR0aWNlfGxhdHRpY2VEZWZvcm1LZXlDdHh8bGF1bmNofGxhdW5jaEltYWdlRWRpdG9yfGxheWVyQnV0dG9ufGxheWVyZWRTaGFkZXJQb3J0fGxheWVyZWRUZXh0dXJlUG9ydHxsYXlvdXR8bGF5b3V0RGlhbG9nfGxpZ2h0TGlzdHxsaWdodExpc3RFZGl0b3J8bGlnaHRMaXN0UGFuZWx8bGlnaHRsaW5rfGxpbmVJbnRlcnNlY3Rpb258bGluZWFyUHJlY2lzaW9ufGxpbnN0ZXB8bGlzdEFuaW1hdGFibGV8bGlzdEF0dHJ8bGlzdENhbWVyYXN8bGlzdENvbm5lY3Rpb25zfGxpc3REZXZpY2VBdHRhY2htZW50c3xsaXN0SGlzdG9yeXxsaXN0SW5wdXREZXZpY2VBeGVzfGxpc3RJbnB1dERldmljZUJ1dHRvbnN8bGlzdElucHV0RGV2aWNlc3xsaXN0TWVudUFubm90YXRpb258bGlzdE5vZGVUeXBlc3xsaXN0UGFuZWxDYXRlZ29yaWVzfGxpc3RSZWxhdGl2ZXN8bGlzdFNldHN8bGlzdFRyYW5zZm9ybXN8bGlzdFVuc2VsZWN0ZWR8bGlzdGVyRWRpdG9yfGxvYWRGbHVpZHxsb2FkTmV3U2hlbGZ8bG9hZFBsdWdpbnxsb2FkUGx1Z2luTGFuZ3VhZ2VSZXNvdXJjZXN8bG9hZFByZWZPYmplY3RzfGxvY2FsaXplZFBhbmVsTGFiZWx8bG9ja05vZGV8bG9mdHxsb2d8bG9uZ05hbWVPZnxsb29rVGhydXxsc3xsc1Rocm91Z2hGaWx0ZXJ8bHNUeXBlfGxzVUl8bWFnfG1ha2VJZGVudGl0eXxtYWtlTGl2ZXxtYWtlUGFpbnRhYmxlfG1ha2VSb2xsfG1ha2VTaW5nbGVTdXJmYWNlfG1ha2VUdWJlT258bWFrZWJvdHxtYW5pcE1vdmVDb250ZXh0fG1hbmlwTW92ZUxpbWl0c0N0eHxtYW5pcE9wdGlvbnN8bWFuaXBSb3RhdGVDb250ZXh0fG1hbmlwUm90YXRlTGltaXRzQ3R4fG1hbmlwU2NhbGVDb250ZXh0fG1hbmlwU2NhbGVMaW1pdHNDdHh8bWFya2VyfG1hdGNofG1heHxtZW1vcnl8bWVudXxtZW51QmFyTGF5b3V0fG1lbnVFZGl0b3J8bWVudUl0ZW18bWVudUl0ZW1Ub1NoZWxmfG1lbnVTZXR8bWVudVNldFByZWZ8bWVzc2FnZUxpbmV8bWlufG1pbmltaXplQXBwfG1pcnJvckpvaW50fG1vZGVsQ3VycmVudFRpbWVDdHh8bW9kZWxFZGl0b3J8bW9kZWxQYW5lbHxtb3VzZXxtb3ZJbnxtb3ZPdXR8bW92ZXxtb3ZlSUt0b0ZLfG1vdmVLZXlDdHh8bW92ZVZlcnRleEFsb25nRGlyZWN0aW9ufG11bHRpUHJvZmlsZUJpcmFpbFN1cmZhY2V8bXV0ZXxuUGFydGljbGV8bmFtZUNvbW1hbmR8bmFtZUZpZWxkfG5hbWVzcGFjZXxuYW1lc3BhY2VJbmZvfG5ld1BhbmVsSXRlbXN8bmV3dG9ufG5vZGVDYXN0fG5vZGVJY29uQnV0dG9ufG5vZGVPdXRsaW5lcnxub2RlUHJlc2V0fG5vZGVUeXBlfG5vaXNlfG5vbkxpbmVhcnxub3JtYWxDb25zdHJhaW50fG5vcm1hbGl6ZXxudXJic0Jvb2xlYW58bnVyYnNDb3B5VVZTZXR8bnVyYnNDdWJlfG51cmJzRWRpdFVWfG51cmJzUGxhbmV8bnVyYnNTZWxlY3R8bnVyYnNTcXVhcmV8bnVyYnNUb1BvbHl8bnVyYnNUb1BvbHlnb25zUHJlZnxudXJic1RvU3ViZGl2fG51cmJzVG9TdWJkaXZQcmVmfG51cmJzVVZTZXR8bnVyYnNWaWV3RGlyZWN0aW9uVmVjdG9yfG9iakV4aXN0c3xvYmplY3RDZW50ZXJ8b2JqZWN0TGF5ZXJ8b2JqZWN0VHlwZXxvYmplY3RUeXBlVUl8b2Jzb2xldGVQcm9jfG9jZWFuTnVyYnNQcmV2aWV3UGxhbmV8b2Zmc2V0Q3VydmV8b2Zmc2V0Q3VydmVPblN1cmZhY2V8b2Zmc2V0U3VyZmFjZXxvcGVuR0xFeHRlbnNpb258b3Blbk1heWFQcmVmfG9wdGlvbk1lbnV8b3B0aW9uTWVudUdycHxvcHRpb25WYXJ8b3JiaXR8b3JiaXRDdHh8b3JpZW50Q29uc3RyYWludHxvdXRsaW5lckVkaXRvcnxvdXRsaW5lclBhbmVsfG92ZXJyaWRlTW9kaWZpZXJ8cGFpbnRFZmZlY3RzRGlzcGxheXxwYWlyQmxlbmR8cGFsZXR0ZVBvcnR8cGFuZUxheW91dHxwYW5lbHxwYW5lbENvbmZpZ3VyYXRpb258cGFuZWxIaXN0b3J5fHBhcmFtRGltQ29udGV4dHxwYXJhbURpbWVuc2lvbnxwYXJhbUxvY2F0b3J8cGFyZW50fHBhcmVudENvbnN0cmFpbnR8cGFydGljbGV8cGFydGljbGVFeGlzdHN8cGFydGljbGVJbnN0YW5jZXJ8cGFydGljbGVSZW5kZXJJbmZvfHBhcnRpdGlvbnxwYXN0ZUtleXxwYXRoQW5pbWF0aW9ufHBhdXNlfHBjbG9zZXxwZXJjZW50fHBlcmZvcm1hbmNlT3B0aW9uc3xwZnhzdHJva2VzfHBpY2tXYWxrfHBpY3R1cmV8cGl4ZWxNb3ZlfHBsYW5hclNyZnxwbGFuZXxwbGF5fHBsYXliYWNrT3B0aW9uc3xwbGF5Ymxhc3R8cGx1Z0F0dHJ8cGx1Z05vZGV8cGx1Z2luSW5mb3xwbHVnaW5SZXNvdXJjZVV0aWx8cG9pbnRDb25zdHJhaW50fHBvaW50Q3VydmVDb25zdHJhaW50fHBvaW50TGlnaHR8cG9pbnRNYXRyaXhNdWx0fHBvaW50T25DdXJ2ZXxwb2ludE9uU3VyZmFjZXxwb2ludFBvc2l0aW9ufHBvbGVWZWN0b3JDb25zdHJhaW50fHBvbHlBcHBlbmR8cG9seUFwcGVuZEZhY2V0Q3R4fHBvbHlBcHBlbmRWZXJ0ZXh8cG9seUF1dG9Qcm9qZWN0aW9ufHBvbHlBdmVyYWdlTm9ybWFsfHBvbHlBdmVyYWdlVmVydGV4fHBvbHlCZXZlbHxwb2x5QmxlbmRDb2xvcnxwb2x5QmxpbmREYXRhfHBvbHlCb29sT3B8cG9seUJyaWRnZUVkZ2V8cG9seUNhY2hlTW9uaXRvcnxwb2x5Q2hlY2t8cG9seUNoaXBPZmZ8cG9seUNsaXBib2FyZHxwb2x5Q2xvc2VCb3JkZXJ8cG9seUNvbGxhcHNlRWRnZXxwb2x5Q29sbGFwc2VGYWNldHxwb2x5Q29sb3JCbGluZERhdGF8cG9seUNvbG9yRGVsfHBvbHlDb2xvclBlclZlcnRleHxwb2x5Q29sb3JTZXR8cG9seUNvbXBhcmV8cG9seUNvbmV8cG9seUNvcHlVVnxwb2x5Q3JlYXNlfHBvbHlDcmVhc2VDdHh8cG9seUNyZWF0ZUZhY2V0fHBvbHlDcmVhdGVGYWNldEN0eHxwb2x5Q3ViZXxwb2x5Q3V0fHBvbHlDdXRDdHh8cG9seUN5bGluZGVyfHBvbHlDeWxpbmRyaWNhbFByb2plY3Rpb258cG9seURlbEVkZ2V8cG9seURlbEZhY2V0fHBvbHlEZWxWZXJ0ZXh8cG9seUR1cGxpY2F0ZUFuZENvbm5lY3R8cG9seUR1cGxpY2F0ZUVkZ2V8cG9seUVkaXRVVnxwb2x5RWRpdFVWU2hlbGx8cG9seUV2YWx1YXRlfHBvbHlFeHRydWRlRWRnZXxwb2x5RXh0cnVkZUZhY2V0fHBvbHlFeHRydWRlVmVydGV4fHBvbHlGbGlwRWRnZXxwb2x5RmxpcFVWfHBvbHlGb3JjZVVWfHBvbHlHZW9TYW1wbGVyfHBvbHlIZWxpeHxwb2x5SW5mb3xwb2x5SW5zdGFsbEFjdGlvbnxwb2x5TGF5b3V0VVZ8cG9seUxpc3RDb21wb25lbnRDb252ZXJzaW9ufHBvbHlNYXBDdXR8cG9seU1hcERlbHxwb2x5TWFwU2V3fHBvbHlNYXBTZXdNb3ZlfHBvbHlNZXJnZUVkZ2V8cG9seU1lcmdlRWRnZUN0eHxwb2x5TWVyZ2VGYWNldHxwb2x5TWVyZ2VGYWNldEN0eHxwb2x5TWVyZ2VVVnxwb2x5TWVyZ2VWZXJ0ZXh8cG9seU1pcnJvckZhY2V8cG9seU1vdmVFZGdlfHBvbHlNb3ZlRmFjZXR8cG9seU1vdmVGYWNldFVWfHBvbHlNb3ZlVVZ8cG9seU1vdmVWZXJ0ZXh8cG9seU5vcm1hbHxwb2x5Tm9ybWFsUGVyVmVydGV4fHBvbHlOb3JtYWxpemVVVnxwb2x5T3B0VXZzfHBvbHlPcHRpb25zfHBvbHlPdXRwdXR8cG9seVBpcGV8cG9seVBsYW5hclByb2plY3Rpb258cG9seVBsYW5lfHBvbHlQbGF0b25pY1NvbGlkfHBvbHlQb2tlfHBvbHlQcmltaXRpdmV8cG9seVByaXNtfHBvbHlQcm9qZWN0aW9ufHBvbHlQeXJhbWlkfHBvbHlRdWFkfHBvbHlRdWVyeUJsaW5kRGF0YXxwb2x5UmVkdWNlfHBvbHlTZWxlY3R8cG9seVNlbGVjdENvbnN0cmFpbnR8cG9seVNlbGVjdENvbnN0cmFpbnRNb25pdG9yfHBvbHlTZWxlY3RDdHh8cG9seVNlbGVjdEVkaXRDdHh8cG9seVNlcGFyYXRlfHBvbHlTZXRUb0ZhY2VOb3JtYWx8cG9seVNld0VkZ2V8cG9seVNob3J0ZXN0UGF0aEN0eHxwb2x5U21vb3RofHBvbHlTb2Z0RWRnZXxwb2x5U3BoZXJlfHBvbHlTcGhlcmljYWxQcm9qZWN0aW9ufHBvbHlTcGxpdHxwb2x5U3BsaXRDdHh8cG9seVNwbGl0RWRnZXxwb2x5U3BsaXRSaW5nfHBvbHlTcGxpdFZlcnRleHxwb2x5U3RyYWlnaHRlblVWQm9yZGVyfHBvbHlTdWJkaXZpZGVFZGdlfHBvbHlTdWJkaXZpZGVGYWNldHxwb2x5VG9TdWJkaXZ8cG9seVRvcnVzfHBvbHlUcmFuc2Zlcnxwb2x5VHJpYW5ndWxhdGV8cG9seVVWU2V0fHBvbHlVbml0ZXxwb2x5V2VkZ2VGYWNlfHBvcGVufHBvcHVwTWVudXxwb3NlfHBvd3xwcmVsb2FkUmVmRWR8cHJpbnR8cHJvZ3Jlc3NCYXJ8cHJvZ3Jlc3NXaW5kb3d8cHJvakZpbGVWaWV3ZXJ8cHJvamVjdEN1cnZlfHByb2plY3RUYW5nZW50fHByb2plY3Rpb25Db250ZXh0fHByb2plY3Rpb25NYW5pcHxwcm9tcHREaWFsb2d8cHJvcE1vZEN0eHxwcm9wTW92ZXxwc2RDaGFubmVsT3V0bGluZXJ8cHNkRWRpdFRleHR1cmVGaWxlfHBzZEV4cG9ydHxwc2RUZXh0dXJlRmlsZXxwdXRlbnZ8cHdkfHB5dGhvbnxxdWVyeVN1YmRpdnxxdWl0fHJhZF90b19kZWd8cmFkaWFsfHJhZGlvQnV0dG9ufHJhZGlvQnV0dG9uR3JwfHJhZGlvQ29sbGVjdGlvbnxyYWRpb01lbnVJdGVtQ29sbGVjdGlvbnxyYW1wQ29sb3JQb3J0fHJhbmR8cmFuZG9taXplRm9sbGljbGVzfHJhbmRzdGF0ZXxyYW5nZUNvbnRyb2x8cmVhZFRha2V8cmVidWlsZEN1cnZlfHJlYnVpbGRTdXJmYWNlfHJlY29yZEF0dHJ8cmVjb3JkRGV2aWNlfHJlZG98cmVmZXJlbmNlfHJlZmVyZW5jZUVkaXR8cmVmZXJlbmNlUXVlcnl8cmVmaW5lU3ViZGl2U2VsZWN0aW9uTGlzdHxyZWZyZXNofHJlZnJlc2hBRXxyZWdpc3RlclBsdWdpblJlc291cmNlfHJlaGFzaHxyZWxvYWRJbWFnZXxyZW1vdmVKb2ludHxyZW1vdmVNdWx0aUluc3RhbmNlfHJlbW92ZVBhbmVsQ2F0ZWdvcnl8cmVuYW1lfHJlbmFtZUF0dHJ8cmVuYW1lU2VsZWN0aW9uTGlzdHxyZW5hbWVVSXxyZW5kZXJ8cmVuZGVyR2xvYmFsc05vZGV8cmVuZGVySW5mb3xyZW5kZXJMYXllckJ1dHRvbnxyZW5kZXJMYXllclBhcmVudHxyZW5kZXJMYXllclBvc3RQcm9jZXNzfHJlbmRlckxheWVyVW5wYXJlbnR8cmVuZGVyTWFuaXB8cmVuZGVyUGFydGl0aW9ufHJlbmRlclF1YWxpdHlOb2RlfHJlbmRlclNldHRpbmdzfHJlbmRlclRodW1ibmFpbFVwZGF0ZXxyZW5kZXJXaW5kb3dFZGl0b3J8cmVuZGVyV2luZG93U2VsZWN0Q29udGV4dHxyZW5kZXJlcnxyZW9yZGVyfHJlb3JkZXJEZWZvcm1lcnN8cmVxdWlyZXN8cmVyb290fHJlc2FtcGxlRmx1aWR8cmVzZXRBRXxyZXNldFBmeFRvUG9seUNhbWVyYXxyZXNldFRvb2x8cmVzb2x1dGlvbk5vZGV8cmV0YXJnZXR8cmV2ZXJzZUN1cnZlfHJldmVyc2VTdXJmYWNlfHJldm9sdmV8cmdiX3RvX2hzdnxyaWdpZEJvZHl8cmlnaWRTb2x2ZXJ8cm9sbHxyb2xsQ3R4fHJvb3RPZnxyb3R8cm90YXRlfHJvdGF0aW9uSW50ZXJwb2xhdGlvbnxyb3VuZENvbnN0YW50UmFkaXVzfHJvd0NvbHVtbkxheW91dHxyb3dMYXlvdXR8cnVuVGltZUNvbW1hbmR8cnVudXB8c2FtcGxlSW1hZ2V8c2F2ZUFsbFNoZWx2ZXN8c2F2ZUF0dHJQcmVzZXR8c2F2ZUZsdWlkfHNhdmVJbWFnZXxzYXZlSW5pdGlhbFN0YXRlfHNhdmVNZW51fHNhdmVQcmVmT2JqZWN0c3xzYXZlUHJlZnN8c2F2ZVNoZWxmfHNhdmVUb29sU2V0dGluZ3N8c2NhbGV8c2NhbGVCcnVzaEJyaWdodG5lc3N8c2NhbGVDb21wb25lbnRzfHNjYWxlQ29uc3RyYWludHxzY2FsZUtleXxzY2FsZUtleUN0eHxzY2VuZUVkaXRvcnxzY2VuZVVJUmVwbGFjZW1lbnR8c2NtaHxzY3JpcHRDdHh8c2NyaXB0RWRpdG9ySW5mb3xzY3JpcHRKb2J8c2NyaXB0Tm9kZXxzY3JpcHRUYWJsZXxzY3JpcHRUb1NoZWxmfHNjcmlwdGVkUGFuZWx8c2NyaXB0ZWRQYW5lbFR5cGV8c2Nyb2xsRmllbGR8c2Nyb2xsTGF5b3V0fHNjdWxwdHxzZWFyY2hQYXRoQXJyYXl8c2VlZHxzZWxMb2FkU2V0dGluZ3N8c2VsZWN0fHNlbGVjdENvbnRleHR8c2VsZWN0Q3VydmVDVnxzZWxlY3RLZXl8c2VsZWN0S2V5Q3R4fHNlbGVjdEtleWZyYW1lUmVnaW9uQ3R4fHNlbGVjdE1vZGV8c2VsZWN0UHJlZnxzZWxlY3RQcmlvcml0eXxzZWxlY3RUeXBlfHNlbGVjdGVkTm9kZXN8c2VsZWN0aW9uQ29ubmVjdGlvbnxzZXBhcmF0b3J8c2V0QXR0cnxzZXRBdHRyRW51bVJlc291cmNlfHNldEF0dHJNYXBwaW5nfHNldEF0dHJOaWNlTmFtZVJlc291cmNlfHNldENvbnN0cmFpbnRSZXN0UG9zaXRpb258c2V0RGVmYXVsdFNoYWRpbmdHcm91cHxzZXREcml2ZW5LZXlmcmFtZXxzZXREeW5hbWljfHNldEVkaXRDdHh8c2V0RWRpdG9yfHNldEZsdWlkQXR0cnxzZXRGb2N1c3xzZXRJbmZpbml0eXxzZXRJbnB1dERldmljZU1hcHBpbmd8c2V0S2V5Q3R4fHNldEtleVBhdGh8c2V0S2V5ZnJhbWV8c2V0S2V5ZnJhbWVCbGVuZHNoYXBlVGFyZ2V0V3RzfHNldE1lbnVNb2RlfHNldE5vZGVOaWNlTmFtZVJlc291cmNlfHNldE5vZGVUeXBlRmxhZ3xzZXRQYXJlbnR8c2V0UGFydGljbGVBdHRyfHNldFBmeFRvUG9seUNhbWVyYXxzZXRQbHVnaW5SZXNvdXJjZXxzZXRQcm9qZWN0fHNldFN0YW1wRGVuc2l0eXxzZXRTdGFydHVwTWVzc2FnZXxzZXRTdGF0ZXxzZXRUb29sVG98c2V0VUlUZW1wbGF0ZXxzZXRYZm9ybU1hbmlwfHNldHN8c2hhZGluZ0Nvbm5lY3Rpb258c2hhZGluZ0dlb21ldHJ5UmVsQ3R4fHNoYWRpbmdMaWdodFJlbEN0eHxzaGFkaW5nTmV0d29ya0NvbXBhcmV8c2hhZGluZ05vZGV8c2hhcGVDb21wYXJlfHNoZWxmQnV0dG9ufHNoZWxmTGF5b3V0fHNoZWxmVGFiTGF5b3V0fHNoZWxsRmllbGR8c2hvcnROYW1lT2Z8c2hvd0hlbHB8c2hvd0hpZGRlbnxzaG93TWFuaXBDdHh8c2hvd1NlbGVjdGlvbkluVGl0bGV8c2hvd1NoYWRpbmdHcm91cEF0dHJFZGl0b3J8c2hvd1dpbmRvd3xzaWdufHNpbXBsaWZ5fHNpbnxzaW5nbGVQcm9maWxlQmlyYWlsU3VyZmFjZXxzaXplfHNpemVCeXRlc3xza2luQ2x1c3Rlcnxza2luUGVyY2VudHxzbW9vdGhDdXJ2ZXxzbW9vdGhUYW5nZW50U3VyZmFjZXxzbW9vdGhzdGVwfHNuYXAydG8yfHNuYXBLZXl8c25hcE1vZGV8c25hcFRvZ2V0aGVyQ3R4fHNuYXBzaG90fHNvZnR8c29mdE1vZHxzb2Z0TW9kQ3R4fHNvcnR8c291bmR8c291bmRDb250cm9sfHNvdXJjZXxzcGFjZUxvY2F0b3J8c3BoZXJlfHNwaHJhbmR8c3BvdExpZ2h0fHNwb3RMaWdodFByZXZpZXdQb3J0fHNwcmVhZFNoZWV0RWRpdG9yfHNwcmluZ3xzcXJ0fHNxdWFyZVN1cmZhY2V8c3J0Q29udGV4dHxzdGFja1RyYWNlfHN0YXJ0U3RyaW5nfHN0YXJ0c1dpdGh8c3RpdGNoQW5kRXhwbG9kZVNoZWxsfHN0aXRjaFN1cmZhY2V8c3RpdGNoU3VyZmFjZVBvaW50c3xzdHJjbXB8c3RyaW5nQXJyYXlDYXRlbmF0ZXxzdHJpbmdBcnJheUNvbnRhaW5zfHN0cmluZ0FycmF5Q291bnR8c3RyaW5nQXJyYXlJbnNlcnRBdEluZGV4fHN0cmluZ0FycmF5SW50ZXJzZWN0b3J8c3RyaW5nQXJyYXlSZW1vdmV8c3RyaW5nQXJyYXlSZW1vdmVBdEluZGV4fHN0cmluZ0FycmF5UmVtb3ZlRHVwbGljYXRlc3xzdHJpbmdBcnJheVJlbW92ZUV4YWN0fHN0cmluZ0FycmF5VG9TdHJpbmd8c3RyaW5nVG9TdHJpbmdBcnJheXxzdHJpcHxzdHJpcFByZWZpeEZyb21OYW1lfHN0cm9rZXxzdWJkQXV0b1Byb2plY3Rpb258c3ViZENsZWFuVG9wb2xvZ3l8c3ViZENvbGxhcHNlfHN1YmREdXBsaWNhdGVBbmRDb25uZWN0fHN1YmRFZGl0VVZ8c3ViZExpc3RDb21wb25lbnRDb252ZXJzaW9ufHN1YmRNYXBDdXR8c3ViZE1hcFNld01vdmV8c3ViZE1hdGNoVG9wb2xvZ3l8c3ViZE1pcnJvcnxzdWJkVG9CbGluZHxzdWJkVG9Qb2x5fHN1YmRUcmFuc2ZlclVWc1RvQ2FjaGV8c3ViZGl2fHN1YmRpdkNyZWFzZXxzdWJkaXZEaXNwbGF5U21vb3RobmVzc3xzdWJzdGl0dXRlfHN1YnN0aXR1dGVBbGxTdHJpbmd8c3Vic3RpdHV0ZUdlb21ldHJ5fHN1YnN0cmluZ3xzdXJmYWNlfHN1cmZhY2VTYW1wbGVyfHN1cmZhY2VTaGFkZXJMaXN0fHN3YXRjaERpc3BsYXlQb3J0fHN3aXRjaFRhYmxlfHN5bWJvbEJ1dHRvbnxzeW1ib2xDaGVja0JveHxzeXNGaWxlfHN5c3RlbXx0YWJMYXlvdXR8dGFufHRhbmdlbnRDb25zdHJhaW50fHRleExhdHRpY2VEZWZvcm1Db250ZXh0fHRleE1hbmlwQ29udGV4dHx0ZXhNb3ZlQ29udGV4dHx0ZXhNb3ZlVVZTaGVsbENvbnRleHR8dGV4Um90YXRlQ29udGV4dHx0ZXhTY2FsZUNvbnRleHR8dGV4U2VsZWN0Q29udGV4dHx0ZXhTZWxlY3RTaG9ydGVzdFBhdGhDdHh8dGV4U211ZGdlVVZDb250ZXh0fHRleFdpblRvb2xDdHh8dGV4dHx0ZXh0Q3VydmVzfHRleHRGaWVsZHx0ZXh0RmllbGRCdXR0b25HcnB8dGV4dEZpZWxkR3JwfHRleHRNYW5pcHx0ZXh0U2Nyb2xsTGlzdHx0ZXh0VG9TaGVsZnx0ZXh0dXJlRGlzcGxhY2VQbGFuZXx0ZXh0dXJlSGFpckNvbG9yfHRleHR1cmVQbGFjZW1lbnRDb250ZXh0fHRleHR1cmVXaW5kb3d8dGhyZWFkQ291bnR8dGhyZWVQb2ludEFyY0N0eHx0aW1lQ29udHJvbHx0aW1lUG9ydHx0aW1lclh8dG9OYXRpdmVQYXRofHRvZ2dsZXx0b2dnbGVBeGlzfHRvZ2dsZVdpbmRvd1Zpc2liaWxpdHl8dG9rZW5pemV8dG9rZW5pemVMaXN0fHRvbGVyYW5jZXx0b2xvd2VyfHRvb2xCdXR0b258dG9vbENvbGxlY3Rpb258dG9vbERyb3BwZWR8dG9vbEhhc09wdGlvbnN8dG9vbFByb3BlcnR5V2luZG93fHRvcnVzfHRvdXBwZXJ8dHJhY2V8dHJhY2t8dHJhY2tDdHh8dHJhbnNmZXJBdHRyaWJ1dGVzfHRyYW5zZm9ybUNvbXBhcmV8dHJhbnNmb3JtTGltaXRzfHRyYW5zbGF0b3J8dHJpbXx0cnVuY3x0cnVuY2F0ZUZsdWlkQ2FjaGV8dHJ1bmNhdGVIYWlyQ2FjaGV8dHVtYmxlfHR1bWJsZUN0eHx0dXJidWxlbmNlfHR3b1BvaW50QXJjQ3R4fHVpUmVzfHVpVGVtcGxhdGV8dW5hc3NpZ25JbnB1dERldmljZXx1bmRvfHVuZG9JbmZvfHVuZ3JvdXB8dW5pZm9ybXx1bml0fHVubG9hZFBsdWdpbnx1bnRhbmdsZVVWfHVudGl0bGVkRmlsZU5hbWV8dW50cmltfHVwQXhpc3x1cGRhdGVBRXx1c2VyQ3R4fHV2TGlua3x1dlNuYXBzaG90fHZhbGlkYXRlU2hlbGZOYW1lfHZlY3Rvcml6ZXx2aWV3MmRUb29sQ3R4fHZpZXdDYW1lcmF8dmlld0NsaXBQbGFuZXx2aWV3Rml0fHZpZXdIZWFkT258dmlld0xvb2tBdHx2aWV3TWFuaXB8dmlld1BsYWNlfHZpZXdTZXR8dmlzb3J8dm9sdW1lQXhpc3x2b3J0ZXh8d2FpdEN1cnNvcnx3YXJuaW5nfHdlYkJyb3dzZXJ8d2ViQnJvd3NlclByZWZzfHdoYXRJc3x3aW5kb3d8d2luZG93UHJlZnx3aXJlfHdpcmVDb250ZXh0fHdvcmtzcGFjZXx3cmlua2xlfHdyaW5rbGVDb250ZXh0fHdyaXRlVGFrZXx4Ym1MYW5nUGF0aExpc3R8eGZvcm0pXGIvLG9wZXJhdG9yOlsvXCtbKz1dP3wtWy09XT98JiZ8XHxcfHxbPD5dPXxbKlwvIT1dPT98WyVeXS8se3BhdHRlcm46LyhefFtePF0pPCg/ITwpLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W14+XSk+KD8hPikvLGxvb2tiZWhpbmQ6ITB9XSxwdW5jdHVhdGlvbjovPDx8Pj58Wy4sOjs/XFtcXSgpe31dL30sbi5sYW5ndWFnZXMubWVsLmNvZGUuaW5zaWRlLnJlc3Q9bi5sYW5ndWFnZXMubWVsfXJldHVybiBZZn12YXIgS2YsQ187ZnVuY3Rpb24gd0YoKXtpZihDXylyZXR1cm4gS2Y7Q189MSxLZj1lLGUuZGlzcGxheU5hbWU9Im1lcm1haWQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLm1lcm1haWQ9e2NvbW1lbnQ6e3BhdHRlcm46LyUlLiovLGdyZWVkeTohMH0sc3R5bGU6e3BhdHRlcm46L14oWyBcdF0qKD86Y2xhc3NEZWZ8bGlua1N0eWxlfHN0eWxlKVsgXHRdK1tcdyQtXStbIFx0XSspXHcuKlteXHM7XS9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwcm9wZXJ0eTovXGJcd1tcdy1dKig/PVsgXHRdKjopLyxvcGVyYXRvcjovOi8scHVuY3R1YXRpb246LywvfX0sImludGVyLWFycm93LWxhYmVsIjp7cGF0dGVybjovKFtePD5veC49LV0pKD86LVstLl18PT0pKD8hWzw+b3guPS1dKVsgXHRdKig/OiJbXiJcclxuXSoifFteXHMiLj0tXSg/OlteXHJcbi49LV0qW15ccy49LV0pPylbIFx0XSooPzpcListPj98LS0rWy0+XXw9PStbPT5dKSg/IVs8Pm94Lj0tXSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7YXJyb3c6e3BhdHRlcm46Lyg/OlwuKy0+P3wtLStbLT5dfD09K1s9Pl0pJC8sYWxpYXM6Im9wZXJhdG9yIn0sbGFiZWw6e3BhdHRlcm46L14oW1xzXFNdezJ9WyBcdF0qKVxTKD86W1xzXFNdKlxTKT8vLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InByb3BlcnR5In0sImFycm93LWhlYWQiOntwYXR0ZXJuOi9eXFMrLyxhbGlhczpbImFycm93Iiwib3BlcmF0b3IiXX19fSxhcnJvdzpbe3BhdHRlcm46LyhefFtee318by4tXSlbfH1dW3xvXSg/Oi0tfFwuXC4pW3xvXVt8e10oPyFbe318by4tXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0se3BhdHRlcm46LyhefFtePD5veC49LV0pKD86WzxveF0oPzo9PSt8LS0rfC1cLiotKVs+b3hdP3woPzo9PSt8LS0rfC1cLiotKVs+b3hdfD09PSt8LS0tK3wtXC4rLSkoPyFbPD5veC49LV0pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LHtwYXR0ZXJuOi8oXnxbXjw+KCl4LV0pKD86LS0/KD86Pj58W3g+KV0pKD8hWzw+KCl4XSl8KD86PDx8W3g8KF0pLS0/KD8hLSkpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LHtwYXR0ZXJuOi8oXnxbXjw+fCpvLi1dKSg/Olsqb10tLXwtLVsqb118PFx8Pyg/Oi0tfFwuXC4pfCg/Oi0tfFwuXC4pXHw/PnwtLXxcLlwuKSg/IVs8Pnwqby4tXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn1dLGxhYmVsOntwYXR0ZXJuOi8oXnxbXnw8XSlcfCg/OlteXHJcbiJ8XXwiW14iXHJcbl0qIikrXHwvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LHRleHQ6e3BhdHRlcm46Lyg/OlsoXFt7XSt8XGI+KSg/OlteXHJcbiIoKVxbXF17fV18IlteIlxyXG5dKiIpKyg/OlspXF19XSt8PikvLGFsaWFzOiJzdHJpbmcifSxzdHJpbmc6e3BhdHRlcm46LyJbXiJcclxuXSoiLyxncmVlZHk6ITB9LGFubm90YXRpb246e3BhdHRlcm46Lzw8KD86YWJzdHJhY3R8Y2hvaWNlfGVudW1lcmF0aW9ufGZvcmt8aW50ZXJmYWNlfGpvaW58c2VydmljZSk+PnxcW1xbKD86Y2hvaWNlfGZvcmt8am9pbilcXVxdL2ksYWxpYXM6ImltcG9ydGFudCJ9LGtleXdvcmQ6W3twYXR0ZXJuOi8oXlsgXHRdKikoPzphY3Rpb258Y2FsbGJhY2t8Y2xhc3N8Y2xhc3NEZWZ8Y2xhc3NEaWFncmFtfGNsaWNrfGRpcmVjdGlvbnxlckRpYWdyYW18Zmxvd2NoYXJ0fGdhbnR0fGdpdEdyYXBofGdyYXBofGpvdXJuZXl8bGlua3xsaW5rU3R5bGV8cGllfHJlcXVpcmVtZW50RGlhZ3JhbXxzZXF1ZW5jZURpYWdyYW18c3RhdGVEaWFncmFtfHN0YXRlRGlhZ3JhbS12MnxzdHlsZXxzdWJncmFwaCkoPyFbXHckLV0pL20sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXlsgXHRdKikoPzphY3RpdmF0ZXxhbHR8YW5kfGFzfGF1dG9udW1iZXJ8ZGVhY3RpdmF0ZXxlbHNlfGVuZCg/OlsgXHRdK25vdGUpP3xsb29wfG9wdHxwYXJ8cGFydGljaXBhbnR8cmVjdHxzdGF0ZXxub3RlWyBcdF0rKD86b3ZlcnwoPzpsZWZ0fHJpZ2h0KVsgXHRdK29mKSkoPyFbXHckLV0pL2ltLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sZW50aXR5Oi8jW2EtejAtOV0rOy8sb3BlcmF0b3I6e3BhdHRlcm46Lyhcd1sgXHRdKikmKD89WyBcdF0qXHcpfDo6Onw6Lyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovWygpe307XS99fXJldHVybiBLZn12YXIgV2YsSV87ZnVuY3Rpb24ga0YoKXtpZihJXylyZXR1cm4gV2Y7SV89MSxXZj1lLGUuZGlzcGxheU5hbWU9Im1pemFyIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5taXphcj17Y29tbWVudDovOjouKy8sa2V5d29yZDovQHByb29mXGJ8XGIoPzphY2NvcmRpbmd8YWdncmVnYXRlfGFsbHxhbmR8YW50b255bXxhcmV8YXN8YXNzb2NpYXRpdml0eXxhc3N1bWV8YXN5bW1ldHJ5fGF0dHJ8YmV8YmVnaW58YmVpbmd8Ynl8Y2FuY2VsZWR8Y2FzZXxjYXNlc3xjbHVzdGVycz98Y29oZXJlbmNlfGNvbW11dGF0aXZpdHl8Y29tcGF0aWJpbGl0eXxjb25uZWN0ZWRuZXNzfGNvbnNpZGVyfGNvbnNpc3RlbmN5fGNvbnN0cnVjdG9yc3xjb250cmFkaWN0aW9ufGNvcnJlY3RuZXNzfGRlZnxkZWZmdW5jfGRlZmluZXxkZWZpbml0aW9ucz98ZGVmcHJlZHxkb3xkb2VzfGVuZHxlbnZpcm9ufGVxdWFsc3xleHxleGFjdGx5fGV4aXN0ZW5jZXxmb3J8ZnJvbXxmdW5jfGdpdmVufGhlbmNlfGhlcmVieXxob2xkc3xpZGVtcG90ZW5jZXxpZGVudGl0eXxpZmY/fGltcGxpZXN8aW52b2x1dGl2ZW5lc3N8aXJyZWZsZXhpdml0eXxpc3xpdHxsZXR8bWVhbnN8bW9kZXxub258bm90fG5vdGF0aW9ucz98bm93fG9mfG9yfG90aGVyd2lzZXxvdmVyfHBlcnxwcmVkfHByZWZpeHxwcm9qZWN0aXZpdHl8cHJvb2Z8cHJvdmlkZWR8cXVhfHJlY29uc2lkZXJ8cmVkZWZpbmV8cmVkdWNlfHJlZHVjaWJpbGl0eXxyZWZsZXhpdml0eXxyZWdpc3RyYXRpb25zP3xyZXF1aXJlbWVudHN8cmVzZXJ2ZXxzY2h8c2NoZW1lcz98c2VjdGlvbnxzZWxlY3RvcnxzZXR8c2V0aG9vZHxzdHxzdHJ1Y3R8c3VjaHxzdXBwb3NlfHN5bW1ldHJ5fHN5bm9ueW18dGFrZXx0aGF0fHRoZXx0aGVufHRoZW9yZW1zP3x0aGVzaXN8dGh1c3x0b3x0cmFuc2l0aXZpdHl8dW5pcXVlbmVzc3x2b2NhYnVsYXIoPzppZXN8eSl8d2hlbnx3aGVyZXx3aXRofHdydClcYi8scGFyYW1ldGVyOntwYXR0ZXJuOi9cJCg/OjEwfFxkKS8sYWxpYXM6InZhcmlhYmxlIn0sdmFyaWFibGU6L1xiXHcrKD89OikvLG51bWJlcjovKD86XGJ8LSlcZCtcYi8sb3BlcmF0b3I6L1wuXC5cLnwtPnwmfFwuPz0vLHB1bmN0dWF0aW9uOi9cKCN8I1wpfFssOjtcW1xdKCl7fV0vfX1yZXR1cm4gV2Z9dmFyIFhmLE9fO2Z1bmN0aW9uIENGKCl7aWYoT18pcmV0dXJuIFhmO09fPTEsWGY9ZSxlLmRpc3BsYXlOYW1lPSJtb25nb2RiIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9WyIkZXEiLCIkZ3QiLCIkZ3RlIiwiJGluIiwiJGx0IiwiJGx0ZSIsIiRuZSIsIiRuaW4iLCIkYW5kIiwiJG5vdCIsIiRub3IiLCIkb3IiLCIkZXhpc3RzIiwiJHR5cGUiLCIkZXhwciIsIiRqc29uU2NoZW1hIiwiJG1vZCIsIiRyZWdleCIsIiR0ZXh0IiwiJHdoZXJlIiwiJGdlb0ludGVyc2VjdHMiLCIkZ2VvV2l0aGluIiwiJG5lYXIiLCIkbmVhclNwaGVyZSIsIiRhbGwiLCIkZWxlbU1hdGNoIiwiJHNpemUiLCIkYml0c0FsbENsZWFyIiwiJGJpdHNBbGxTZXQiLCIkYml0c0FueUNsZWFyIiwiJGJpdHNBbnlTZXQiLCIkY29tbWVudCIsIiRlbGVtTWF0Y2giLCIkbWV0YSIsIiRzbGljZSIsIiRjdXJyZW50RGF0ZSIsIiRpbmMiLCIkbWluIiwiJG1heCIsIiRtdWwiLCIkcmVuYW1lIiwiJHNldCIsIiRzZXRPbkluc2VydCIsIiR1bnNldCIsIiRhZGRUb1NldCIsIiRwb3AiLCIkcHVsbCIsIiRwdXNoIiwiJHB1bGxBbGwiLCIkZWFjaCIsIiRwb3NpdGlvbiIsIiRzbGljZSIsIiRzb3J0IiwiJGJpdCIsIiRhZGRGaWVsZHMiLCIkYnVja2V0IiwiJGJ1Y2tldEF1dG8iLCIkY29sbFN0YXRzIiwiJGNvdW50IiwiJGN1cnJlbnRPcCIsIiRmYWNldCIsIiRnZW9OZWFyIiwiJGdyYXBoTG9va3VwIiwiJGdyb3VwIiwiJGluZGV4U3RhdHMiLCIkbGltaXQiLCIkbGlzdExvY2FsU2Vzc2lvbnMiLCIkbGlzdFNlc3Npb25zIiwiJGxvb2t1cCIsIiRtYXRjaCIsIiRtZXJnZSIsIiRvdXQiLCIkcGxhbkNhY2hlU3RhdHMiLCIkcHJvamVjdCIsIiRyZWRhY3QiLCIkcmVwbGFjZVJvb3QiLCIkcmVwbGFjZVdpdGgiLCIkc2FtcGxlIiwiJHNldCIsIiRza2lwIiwiJHNvcnQiLCIkc29ydEJ5Q291bnQiLCIkdW5pb25XaXRoIiwiJHVuc2V0IiwiJHVud2luZCIsIiRzZXRXaW5kb3dGaWVsZHMiLCIkYWJzIiwiJGFjY3VtdWxhdG9yIiwiJGFjb3MiLCIkYWNvc2giLCIkYWRkIiwiJGFkZFRvU2V0IiwiJGFsbEVsZW1lbnRzVHJ1ZSIsIiRhbmQiLCIkYW55RWxlbWVudFRydWUiLCIkYXJyYXlFbGVtQXQiLCIkYXJyYXlUb09iamVjdCIsIiRhc2luIiwiJGFzaW5oIiwiJGF0YW4iLCIkYXRhbjIiLCIkYXRhbmgiLCIkYXZnIiwiJGJpbmFyeVNpemUiLCIkYnNvblNpemUiLCIkY2VpbCIsIiRjbXAiLCIkY29uY2F0IiwiJGNvbmNhdEFycmF5cyIsIiRjb25kIiwiJGNvbnZlcnQiLCIkY29zIiwiJGRhdGVGcm9tUGFydHMiLCIkZGF0ZVRvUGFydHMiLCIkZGF0ZUZyb21TdHJpbmciLCIkZGF0ZVRvU3RyaW5nIiwiJGRheU9mTW9udGgiLCIkZGF5T2ZXZWVrIiwiJGRheU9mWWVhciIsIiRkZWdyZWVzVG9SYWRpYW5zIiwiJGRpdmlkZSIsIiRlcSIsIiRleHAiLCIkZmlsdGVyIiwiJGZpcnN0IiwiJGZsb29yIiwiJGZ1bmN0aW9uIiwiJGd0IiwiJGd0ZSIsIiRob3VyIiwiJGlmTnVsbCIsIiRpbiIsIiRpbmRleE9mQXJyYXkiLCIkaW5kZXhPZkJ5dGVzIiwiJGluZGV4T2ZDUCIsIiRpc0FycmF5IiwiJGlzTnVtYmVyIiwiJGlzb0RheU9mV2VlayIsIiRpc29XZWVrIiwiJGlzb1dlZWtZZWFyIiwiJGxhc3QiLCIkbGFzdCIsIiRsZXQiLCIkbGl0ZXJhbCIsIiRsbiIsIiRsb2ciLCIkbG9nMTAiLCIkbHQiLCIkbHRlIiwiJGx0cmltIiwiJG1hcCIsIiRtYXgiLCIkbWVyZ2VPYmplY3RzIiwiJG1ldGEiLCIkbWluIiwiJG1pbGxpc2Vjb25kIiwiJG1pbnV0ZSIsIiRtb2QiLCIkbW9udGgiLCIkbXVsdGlwbHkiLCIkbmUiLCIkbm90IiwiJG9iamVjdFRvQXJyYXkiLCIkb3IiLCIkcG93IiwiJHB1c2giLCIkcmFkaWFuc1RvRGVncmVlcyIsIiRyYW5nZSIsIiRyZWR1Y2UiLCIkcmVnZXhGaW5kIiwiJHJlZ2V4RmluZEFsbCIsIiRyZWdleE1hdGNoIiwiJHJlcGxhY2VPbmUiLCIkcmVwbGFjZUFsbCIsIiRyZXZlcnNlQXJyYXkiLCIkcm91bmQiLCIkcnRyaW0iLCIkc2Vjb25kIiwiJHNldERpZmZlcmVuY2UiLCIkc2V0RXF1YWxzIiwiJHNldEludGVyc2VjdGlvbiIsIiRzZXRJc1N1YnNldCIsIiRzZXRVbmlvbiIsIiRzaXplIiwiJHNpbiIsIiRzbGljZSIsIiRzcGxpdCIsIiRzcXJ0IiwiJHN0ZERldlBvcCIsIiRzdGREZXZTYW1wIiwiJHN0cmNhc2VjbXAiLCIkc3RyTGVuQnl0ZXMiLCIkc3RyTGVuQ1AiLCIkc3Vic3RyIiwiJHN1YnN0ckJ5dGVzIiwiJHN1YnN0ckNQIiwiJHN1YnRyYWN0IiwiJHN1bSIsIiRzd2l0Y2giLCIkdGFuIiwiJHRvQm9vbCIsIiR0b0RhdGUiLCIkdG9EZWNpbWFsIiwiJHRvRG91YmxlIiwiJHRvSW50IiwiJHRvTG9uZyIsIiR0b09iamVjdElkIiwiJHRvU3RyaW5nIiwiJHRvTG93ZXIiLCIkdG9VcHBlciIsIiR0cmltIiwiJHRydW5jIiwiJHR5cGUiLCIkd2VlayIsIiR5ZWFyIiwiJHppcCIsIiRjb3VudCIsIiRkYXRlQWRkIiwiJGRhdGVEaWZmIiwiJGRhdGVTdWJ0cmFjdCIsIiRkYXRlVHJ1bmMiLCIkZ2V0RmllbGQiLCIkcmFuZCIsIiRzYW1wbGVSYXRlIiwiJHNldEZpZWxkIiwiJHVuc2V0RmllbGQiLCIkY29tbWVudCIsIiRleHBsYWluIiwiJGhpbnQiLCIkbWF4IiwiJG1heFRpbWVNUyIsIiRtaW4iLCIkb3JkZXJieSIsIiRxdWVyeSIsIiRyZXR1cm5LZXkiLCIkc2hvd0Rpc2tMb2MiLCIkbmF0dXJhbCJdLGw9WyJPYmplY3RJZCIsIkNvZGUiLCJCaW5EYXRhIiwiREJSZWYiLCJUaW1lc3RhbXAiLCJOdW1iZXJMb25nIiwiTnVtYmVyRGVjaW1hbCIsIk1heEtleSIsIk1pbktleSIsIlJlZ0V4cCIsIklTT0RhdGUiLCJVVUlEIl07aT1pLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy5yZXBsYWNlKCIkIiwiXFwkIil9KTt2YXIgdT0iKD86IitpLmpvaW4oInwiKSsiKVxcYiI7YS5sYW5ndWFnZXMubW9uZ29kYj1hLmxhbmd1YWdlcy5leHRlbmQoImphdmFzY3JpcHQiLHt9KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm1vbmdvZGIiLCJzdHJpbmciLHtwcm9wZXJ0eTp7cGF0dGVybjovKD86KFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMXwoPyFccylbXyRhLXpBLVpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSopKD89XHMqOikvLGdyZWVkeTohMCxpbnNpZGU6e2tleXdvcmQ6UmVnRXhwKGBeKFsnIl0pP2ArdSsiKD86XFwxKT8kIil9fX0pLGEubGFuZ3VhZ2VzLm1vbmdvZGIuc3RyaW5nLmluc2lkZT17dXJsOntwYXR0ZXJuOi9odHRwcz86XC9cL1stXHdAOiUuK34jPV17MSwyNTZ9XC5bYS16MC05KCldezEsNn1cYlstXHcoKUA6JSsufiM/Ji89XSovaSxncmVlZHk6ITB9LGVudGl0eTp7cGF0dGVybjovXGIoPzooPzpbMDFdP1xkXGQ/fDJbMC00XVxkfDI1WzAtNV0pXC4pezN9KD86WzAxXT9cZFxkP3wyWzAtNF1cZHwyNVswLTVdKVxiLyxncmVlZHk6ITB9fSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm1vbmdvZGIiLCJjb25zdGFudCIse2J1aWx0aW46e3BhdHRlcm46UmVnRXhwKCJcXGIoPzoiK2wuam9pbigifCIpKyIpXFxiIiksYWxpYXM6ImtleXdvcmQifX0pfSkobil9cmV0dXJuIFhmfXZhciBaZixMXztmdW5jdGlvbiBJRigpe2lmKExfKXJldHVybiBaZjtMXz0xLFpmPWUsZS5kaXNwbGF5TmFtZT0ibW9ua2V5IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5tb25rZXk9e2NvbW1lbnQ6e3BhdHRlcm46L14jUmVtXHNbXHNcU10qP14jRW5kfCcuKy9pbSxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIlteIlxyXG5dKiIvLGdyZWVkeTohMH0scHJlcHJvY2Vzc29yOntwYXR0ZXJuOi8oXlsgXHRdKikjLisvbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoicHJvcGVydHkifSxmdW5jdGlvbjovXGJcdysoPz1cKCkvLCJ0eXBlLWNoYXIiOntwYXR0ZXJuOi9cYls/JSMkXS8sYWxpYXM6ImNsYXNzLW5hbWUifSxudW1iZXI6e3BhdHRlcm46LygoPzpcLlwuKT8pKD86KD86XGJ8XEItXC4/fFxCXC4pXGQrKD86KD8hXC5cLilcLlxkKik/fFwkW1xkYS1mXSspL2ksbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzpBYnN0cmFjdHxBcnJheXxCb29sfENhc2V8Q2F0Y2h8Q2xhc3N8Q29uc3R8Q29udGludWV8RGVmYXVsdHxFYWNoaW58RWxzZXxFbHNlSWZ8RW5kfEVuZElmfEV4aXR8RXh0ZW5kc3xFeHRlcm58RmFsc2V8RmllbGR8RmluYWx8RmxvYXR8Rm9yfEZvcmV2ZXJ8RnVuY3Rpb258R2xvYmFsfElmfEltcGxlbWVudHN8SW1wb3J0fElubGluZXxJbnR8SW50ZXJmYWNlfExvY2FsfE1ldGhvZHxNb2R1bGV8TmV3fE5leHR8TnVsbHxPYmplY3R8UHJpdmF0ZXxQcm9wZXJ0eXxQdWJsaWN8UmVwZWF0fFJldHVybnxTZWxlY3R8U2VsZnxTdGVwfFN0cmljdHxTdHJpbmd8U3VwZXJ8VGhlbnxUaHJvd3xUb3xUcnVlfFRyeXxVbnRpbHxWb2lkfFdlbmR8V2hpbGUpXGIvaSxvcGVyYXRvcjovXC5cLnw8Wz0+XT98Pj0/fDo/PXwoPzpbK1wtKlwvJn58XXxcYig/Ok1vZHxTaGx8U2hyKVxiKT0/fFxiKD86QW5kfE5vdHxPcilcYi9pLHB1bmN0dWF0aW9uOi9bLiw6OygpXFtcXV0vfX1yZXR1cm4gWmZ9dmFyIFFmLERfO2Z1bmN0aW9uIE9GKCl7aWYoRF8pcmV0dXJuIFFmO0RfPTEsUWY9ZSxlLmRpc3BsYXlOYW1lPSJtb29uc2NyaXB0IixlLmFsaWFzZXM9WyJtb29uIl07ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5tb29uc2NyaXB0PXtjb21tZW50Oi8tLS4qLyxzdHJpbmc6W3twYXR0ZXJuOi8nW14nXSonfFxbKD0qKVxbW1xzXFNdKj9cXVwxXF0vLGdyZWVkeTohMH0se3BhdHRlcm46LyJbXiJdKiIvLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46LyNce1tee31dKlx9LyxpbnNpZGU6e21vb25zY3JpcHQ6e3BhdHRlcm46LyheI1x7KVtcc1xTXSsoPz1cfSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm51bGx9LCJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovI1x7fFx9LyxhbGlhczoicHVuY3R1YXRpb24ifX19fX1dLCJjbGFzcy1uYW1lIjpbe3BhdHRlcm46LyhcYig/OmNsYXNzfGV4dGVuZHMpWyBcdF0rKVx3Ky8sbG9va2JlaGluZDohMH0sL1xiW0EtWl1cdyovXSxrZXl3b3JkOi9cYig/OmNsYXNzfGNvbnRpbnVlfGRvfGVsc2V8ZWxzZWlmfGV4cG9ydHxleHRlbmRzfGZvcnxmcm9tfGlmfGltcG9ydHxpbnxsb2NhbHxuaWx8cmV0dXJufHNlbGZ8c3VwZXJ8c3dpdGNofHRoZW58dW5sZXNzfHVzaW5nfHdoZW58d2hpbGV8d2l0aClcYi8sdmFyaWFibGU6L0BAP1x3Ki8scHJvcGVydHk6e3BhdHRlcm46L1xiKD8hXGQpXHcrKD89Oil8KDopKD8hXGQpXHcrLyxsb29rYmVoaW5kOiEwfSxmdW5jdGlvbjp7cGF0dGVybjovXGIoPzpfR3xfVkVSU0lPTnxhc3NlcnR8Y29sbGVjdGdhcmJhZ2V8Y29yb3V0aW5lXC4oPzpjcmVhdGV8cmVzdW1lfHJ1bm5pbmd8c3RhdHVzfHdyYXB8eWllbGQpfGRlYnVnXC4oPzpkZWJ1Z3xnZXRmZW52fGdldGhvb2t8Z2V0aW5mb3xnZXRsb2NhbHxnZXRtZXRhdGFibGV8Z2V0cmVnaXN0cnl8Z2V0dXB2YWx1ZXxzZXRmZW52fHNldGhvb2t8c2V0bG9jYWx8c2V0bWV0YXRhYmxlfHNldHVwdmFsdWV8dHJhY2ViYWNrKXxkb2ZpbGV8ZXJyb3J8Z2V0ZmVudnxnZXRtZXRhdGFibGV8aW9cLig/OmNsb3NlfGZsdXNofGlucHV0fGxpbmVzfG9wZW58b3V0cHV0fHBvcGVufHJlYWR8c3RkZXJyfHN0ZGlufHN0ZG91dHx0bXBmaWxlfHR5cGV8d3JpdGUpfGlwYWlyc3xsb2FkfGxvYWRmaWxlfGxvYWRzdHJpbmd8bWF0aFwuKD86YWJzfGFjb3N8YXNpbnxhdGFufGF0YW4yfGNlaWx8Y29zfGNvc2h8ZGVnfGV4cHxmbG9vcnxmbW9kfGZyZXhwfGxkZXhwfGxvZ3xsb2cxMHxtYXh8bWlufG1vZGZ8cGl8cG93fHJhZHxyYW5kb218cmFuZG9tc2VlZHxzaW58c2luaHxzcXJ0fHRhbnx0YW5oKXxtb2R1bGV8bmV4dHxvc1wuKD86Y2xvY2t8ZGF0ZXxkaWZmdGltZXxleGVjdXRlfGV4aXR8Z2V0ZW52fHJlbW92ZXxyZW5hbWV8c2V0bG9jYWxlfHRpbWV8dG1wbmFtZSl8cGFja2FnZVwuKD86Y3BhdGh8bG9hZGVkfGxvYWRsaWJ8cGF0aHxwcmVsb2FkfHNlZWFsbCl8cGFpcnN8cGNhbGx8cHJpbnR8cmF3ZXF1YWx8cmF3Z2V0fHJhd3NldHxyZXF1aXJlfHNlbGVjdHxzZXRmZW52fHNldG1ldGF0YWJsZXxzdHJpbmdcLig/OmJ5dGV8Y2hhcnxkdW1wfGZpbmR8Zm9ybWF0fGdtYXRjaHxnc3VifGxlbnxsb3dlcnxtYXRjaHxyZXB8cmV2ZXJzZXxzdWJ8dXBwZXIpfHRhYmxlXC4oPzpjb25jYXR8aW5zZXJ0fG1heG58cmVtb3ZlfHNvcnQpfHRvbnVtYmVyfHRvc3RyaW5nfHR5cGV8dW5wYWNrfHhwY2FsbClcYi8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6Lyg/OlxCXC5cZCt8XGJcZCtcLlxkK3xcYlxkKyg/PVtlRV0pKSg/OltlRV1bLStdP1xkKyk/XGJ8XGIoPzoweFthLWZBLUZcZF0rfFxkKykoPzpVP0xMKT9cYi8sb3BlcmF0b3I6L1wuezN9fFstPV0+fH49fCg/OlstKyovJTw+IT1dfFwuXC4pPT98WzojXl18XGIoPzphbmR8b3IpXGI9P3xcYig/Om5vdClcYi8scHVuY3R1YXRpb246L1suLCgpW1xde31cXF0vfSxuLmxhbmd1YWdlcy5tb29uc2NyaXB0LnN0cmluZ1sxXS5pbnNpZGUuaW50ZXJwb2xhdGlvbi5pbnNpZGUubW9vbnNjcmlwdC5pbnNpZGU9bi5sYW5ndWFnZXMubW9vbnNjcmlwdCxuLmxhbmd1YWdlcy5tb29uPW4ubGFuZ3VhZ2VzLm1vb25zY3JpcHR9cmV0dXJuIFFmfXZhciBKZixNXztmdW5jdGlvbiBMRigpe2lmKE1fKXJldHVybiBKZjtNXz0xLEpmPWUsZS5kaXNwbGF5TmFtZT0ibjFxbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMubjFxbD17Y29tbWVudDp7cGF0dGVybjovXC9cKltcc1xTXSo/KD86JHxcKlwvKXwtLS4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XFxbXHNcU118KD8hXDEpW15cXF18XDFcMSkqXDEvLGdyZWVkeTohMH0saWRlbnRpZmllcjp7cGF0dGVybjovYCg/OlxcW1xzXFNdfFteXFxgXXxgYCkqYC8sZ3JlZWR5OiEwfSxwYXJhbWV0ZXI6L1wkW1x3Ll0rLyxrZXl3b3JkOi9cYig/OkFEVklTRXxBTEx8QUxURVJ8QU5BTFlaRXxBU3xBU0N8QVR8QkVHSU58QklOQVJZfEJPT0xFQU58QlJFQUt8QlVDS0VUfEJVSUxEfEJZfENBTEx8Q0FTVHxDTFVTVEVSfENPTExBVEV8Q09MTEVDVElPTnxDT01NSVR8Q09NTUlUVEVEfENPTk5FQ1R8Q09OVElOVUV8Q09SUkVMQVRFfENPUlJFTEFURUR8Q09WRVJ8Q1JFQVRFfENVUlJFTlR8REFUQUJBU0V8REFUQVNFVHxEQVRBU1RPUkV8REVDTEFSRXxERUNSRU1FTlR8REVMRVRFfERFUklWRUR8REVTQ3xERVNDUklCRXxESVNUSU5DVHxET3xEUk9QfEVBQ0h8RUxFTUVOVHxFWENFUFR8RVhDTFVERXxFWEVDVVRFfEVYUExBSU58RkVUQ0h8RklMVEVSfEZMQVRURU58RkxVU0h8Rk9MTE9XSU5HfEZPUnxGT1JDRXxGUk9NfEZUU3xGVU5DVElPTnxHT0xBTkd8R1JBTlR8R1JPVVB8R1JPVVBTfEdTSXxIQVNIfEhBVklOR3xJRnxJR05PUkV8SUxJS0V8SU5DTFVERXxJTkNSRU1FTlR8SU5ERVh8SU5GRVJ8SU5MSU5FfElOTkVSfElOU0VSVHxJTlRFUlNFQ1R8SU5UT3xJU3xJU09MQVRJT058SkFWQVNDUklQVHxKT0lOfEtFWXxLRVlTfEtFWVNQQUNFfEtOT1dOfExBTkdVQUdFfExBU1R8TEVGVHxMRVR8TEVUVElOR3xMRVZFTHxMSU1JVHxMU018TUFQfE1BUFBJTkd8TUFUQ0hFRHxNQVRFUklBTElaRUR8TUVSR0V8TUlOVVN8TUlTU0lOR3xOQU1FU1BBQ0V8TkVTVHxOTHxOT3xOVEhfVkFMVUV8TlVMTHxOVUxMU3xOVU1CRVJ8T0JKRUNUfE9GRlNFVHxPTnxPUFRJT058T1BUSU9OU3xPUkRFUnxPVEhFUlN8T1VURVJ8T1ZFUnxQQVJTRXxQQVJUSVRJT058UEFTU1dPUkR8UEFUSHxQT09MfFBSRUNFRElOR3xQUkVQQVJFfFBSSU1BUll8UFJJVkFURXxQUklWSUxFR0V8UFJPQkV8UFJPQ0VEVVJFfFBVQkxJQ3xSQU5HRXxSQVd8UkVBTE18UkVEVUNFfFJFTkFNRXxSRVNQRUNUfFJFVFVSTnxSRVRVUk5JTkd8UkVWT0tFfFJJR0hUfFJPTEV8Uk9MTEJBQ0t8Uk9XfFJPV1N8U0FUSVNGSUVTfFNBVkVQT0lOVHxTQ0hFTUF8U0NPUEV8U0VMRUNUfFNFTEZ8U0VNSXxTRVR8U0hPV3xTT01FfFNUQVJUfFNUQVRJU1RJQ1N8U1RSSU5HfFNZU1RFTXxUSUVTfFRPfFRSQU58VFJBTlNBQ1RJT058VFJJR0dFUnxUUlVOQ0FURXxVTkJPVU5ERUR8VU5ERVJ8VU5JT058VU5JUVVFfFVOS05PV058VU5ORVNUfFVOU0VUfFVQREFURXxVUFNFUlR8VVNFfFVTRVJ8VVNJTkd8VkFMSURBVEV8VkFMVUV8VkFMVUVTfFZJQXxWSUVXfFdIRVJFfFdISUxFfFdJTkRPV3xXSVRIfFdPUkt8WE9SKVxiL2ksZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksYm9vbGVhbjovXGIoPzpGQUxTRXxUUlVFKVxiL2ksbnVtYmVyOi8oPzpcYlxkK1wufFxCXC4pXGQrZVsrXC1dP1xkK1xifFxiXGQrKD86XC5cZCopP3xcQlwuXGQrXGIvaSxvcGVyYXRvcjovWy0rKlwvJV18IT18PT0/fFx8XHx8PFs+PV0/fD49P3xcYig/OkFORHxBTll8QVJSQVl8QkVUV0VFTnxDQVNFfEVMU0V8RU5EfEVWRVJZfEVYSVNUU3xGSVJTVHxJTnxMSUtFfE5PVHxPUnxUSEVOfFZBTFVFRHxXSEVOfFdJVEhJTilcYi9pLHB1bmN0dWF0aW9uOi9bO1tcXSgpLC57fTpdL319cmV0dXJuIEpmfXZhciBlZyxVXztmdW5jdGlvbiBERigpe2lmKFVfKXJldHVybiBlZztVXz0xLGVnPWUsZS5kaXNwbGF5TmFtZT0ibjRqcyIsZS5hbGlhc2VzPVsibjRqc2QiXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLm40anM9bi5sYW5ndWFnZXMuZXh0ZW5kKCJqYXZhc2NyaXB0Iix7a2V5d29yZDovXGIoPzpBcnJheXxhbnl8Ym9vbGVhbnxicmVha3xjYXNlfGNhdGNofGNsYXNzfGNvbnN0fGNvbnN0cnVjdG9yfGNvbnRpbnVlfGRlYnVnZ2VyfGRlY2xhcmV8ZGVmYXVsdHxkZWxldGV8ZG98ZWxzZXxlbnVtfGV4cG9ydHxleHRlbmRzfGZhbHNlfGZpbmFsbHl8Zm9yfGZyb218ZnVuY3Rpb258Z2V0fGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGluc3RhbmNlb2Z8aW50ZXJmYWNlfGxldHxtb2R1bGV8bmV3fG51bGx8bnVtYmVyfHBhY2thZ2V8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJldHVybnxzZXR8c3RhdGljfHN0cmluZ3xzdXBlcnxzd2l0Y2h8dGhpc3x0aHJvd3x0cnVlfHRyeXx0eXBlb2Z8dmFyfHZvaWR8d2hpbGV8d2l0aHx5aWVsZClcYi99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm40anMiLCJjb25zdGFudCIse2Fubm90YXRpb246e3BhdHRlcm46L0ArXHcrLyxhbGlhczoib3BlcmF0b3IifX0pLG4ubGFuZ3VhZ2VzLm40anNkPW4ubGFuZ3VhZ2VzLm40anN9cmV0dXJuIGVnfXZhciB0ZyxGXztmdW5jdGlvbiBNRigpe2lmKEZfKXJldHVybiB0ZztGXz0xLHRnPWUsZS5kaXNwbGF5TmFtZT0ibmFuZDJ0ZXRyaXNIZGwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzWyJuYW5kMnRldHJpcy1oZGwiXT17Y29tbWVudDovXC9cLy4qfFwvXCpbXHNcU10qPyg/OlwqXC98JCkvLGtleXdvcmQ6L1xiKD86QlVJTFRJTnxDSElQfENMT0NLRUR8SU58T1VUfFBBUlRTKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGZ1bmN0aW9uOi9cYltBLVphLXpdW0EtWmEtejAtOV0qKD89XCgpLyxudW1iZXI6L1xiXGQrXGIvLG9wZXJhdG9yOi89fFwuXC4vLHB1bmN0dWF0aW9uOi9be31bXF07KCksOl0vfX1yZXR1cm4gdGd9dmFyIG5nLEJfO2Z1bmN0aW9uIFVGKCl7aWYoQl8pcmV0dXJuIG5nO0JfPTEsbmc9ZSxlLmRpc3BsYXlOYW1lPSJuYW5pc2NyaXB0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9L1x7W15cclxuXFtcXXt9XSpcfS8sbD17InF1b3RlZC1zdHJpbmciOntwYXR0ZXJuOi8iKD86W14iXFxdfFxcLikqIi8sYWxpYXM6Im9wZXJhdG9yIn0sImNvbW1hbmQtcGFyYW0taWQiOntwYXR0ZXJuOi8oXHMpXHcrOi8sbG9va2JlaGluZDohMCxhbGlhczoicHJvcGVydHkifSwiY29tbWFuZC1wYXJhbS12YWx1ZSI6W3twYXR0ZXJuOmksYWxpYXM6InNlbGVjdG9yIn0se3BhdHRlcm46LyhbXHQgXSlcUysvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJvcGVyYXRvciJ9LHtwYXR0ZXJuOi9cUyg/Oi4qXFMpPy8sYWxpYXM6Im9wZXJhdG9yIn1dfTthLmxhbmd1YWdlcy5uYW5pc2NyaXB0PXtjb21tZW50OntwYXR0ZXJuOi9eKFtcdCBdKik7LiovbSxsb29rYmVoaW5kOiEwfSxkZWZpbmU6e3BhdHRlcm46L14+LisvbSxhbGlhczoidGFnIixpbnNpZGU6e3ZhbHVlOntwYXR0ZXJuOi8oXj5cdytbXHQgXSspKD8hXHMpW157fVxyXG5dKy8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSxrZXk6e3BhdHRlcm46LyhePilcdysvLGxvb2tiZWhpbmQ6ITB9fX0sbGFiZWw6e3BhdHRlcm46L14oW1x0IF0qKSNbXHQgXSpcdytbXHQgXSokL20sbG9va2JlaGluZDohMCxhbGlhczoicmVnZXgifSxjb21tYW5kOntwYXR0ZXJuOi9eKFtcdCBdKilAXHcrKD89W1x0IF18JCkuKi9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIixpbnNpZGU6eyJjb21tYW5kLW5hbWUiOi9eQFx3Ky8sZXhwcmVzc2lvbjp7cGF0dGVybjppLGdyZWVkeTohMCxhbGlhczoic2VsZWN0b3IifSwiY29tbWFuZC1wYXJhbXMiOntwYXR0ZXJuOi9ccypcU1tcc1xTXSovLGluc2lkZTpsfX19LCJnZW5lcmljLXRleHQiOntwYXR0ZXJuOi8oXlsgXHRdKilbXiNAPjtcc10uKi9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIixpbnNpZGU6eyJlc2NhcGVkLWNoYXIiOi9cXFt7fVxbXF0iXS8sZXhwcmVzc2lvbjp7cGF0dGVybjppLGdyZWVkeTohMCxhbGlhczoic2VsZWN0b3IifSwiaW5saW5lLWNvbW1hbmQiOntwYXR0ZXJuOi9cW1tcdCBdKlx3W15cclxuXFtcXV0qXF0vLGdyZWVkeTohMCxhbGlhczoiZnVuY3Rpb24iLGluc2lkZTp7ImNvbW1hbmQtcGFyYW1zIjp7cGF0dGVybjovKF5cW1tcdCBdKlx3K1xiKVtcc1xTXSsoPz1cXSQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTpsfSwiY29tbWFuZC1wYXJhbS1uYW1lIjp7cGF0dGVybjovXihcW1tcdCBdKilcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im5hbWUifSwic3RhcnQtc3RvcC1jaGFyIjovW1xbXF1dL319fX19LGEubGFuZ3VhZ2VzLm5hbmk9YS5sYW5ndWFnZXMubmFuaXNjcmlwdCxhLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKGQpe3ZhciBmPWQudG9rZW5zO2YuZm9yRWFjaChmdW5jdGlvbihtKXtpZih0eXBlb2YgbSE9InN0cmluZyImJm0udHlwZT09PSJnZW5lcmljLXRleHQiKXt2YXIgYj1jKG0pO3UoYil8fChtLnR5cGU9ImJhZC1saW5lIixtLmNvbnRlbnQ9Yil9fSl9KTtmdW5jdGlvbiB1KGQpe2Zvcih2YXIgZj0iW117fSIsbT1bXSxiPTA7YjxkLmxlbmd0aDtiKyspe3ZhciBoPWRbYl0sUz1mLmluZGV4T2YoaCk7aWYoUyE9PS0xKXtpZihTJTI9PT0wKW0ucHVzaChTKzEpO2Vsc2UgaWYobS5wb3AoKSE9PVMpcmV0dXJuITF9fXJldHVybiBtLmxlbmd0aD09PTB9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gdHlwZW9mIGQ9PSJzdHJpbmciP2Q6QXJyYXkuaXNBcnJheShkKT9kLm1hcChjKS5qb2luKCIiKTpjKGQuY29udGVudCl9fSkobil9cmV0dXJuIG5nfXZhciByZyxqXztmdW5jdGlvbiBGRigpe2lmKGpfKXJldHVybiByZztqXz0xLHJnPWUsZS5kaXNwbGF5TmFtZT0ibmFzbSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMubmFzbT17Y29tbWVudDovOy4qJC9tLHN0cmluZzovKFsiJ2BdKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxsYWJlbDp7cGF0dGVybjovKF5ccyopW0EtWmEtei5fPyRdW1x3Lj8kQH4jXSo6L20sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxrZXl3b3JkOlsvXFs/QklUUyAoPzoxNnwzMnw2NClcXT8vLHtwYXR0ZXJuOi8oXlxzKilzZWN0aW9uXHMqW2Etei5dKzo/L2ltLGxvb2tiZWhpbmQ6ITB9LC8oPzpleHRlcm58Z2xvYmFsKVteO1xyXG5dKi9pLC8oPzpDUFV8REVGQVVMVHxGTE9BVCkuKiQvbV0scmVnaXN0ZXI6e3BhdHRlcm46L1xiKD86c3RcZHxbeHl6XW1tXGRcZD98W2NkdF1yXGR8clxkXGQ/W2J3ZF0/fFtlcl0/W2FiY2RdeHxbYWJjZF1baGxdfFtlcl0/KD86YnB8ZGl8c2l8c3ApfFtjZGVmZ3NdcylcYi9pLGFsaWFzOiJ2YXJpYWJsZSJ9LG51bWJlcjovKD86XGJ8KD89XCQpKSg/OjBbaHhdKD86XC5bXGRhLWZdK3xbXGRhLWZdKyg/OlwuW1xkYS1mXSspPykoPzpwWystXT9cZCspP3xcZFtcZGEtZl0rW2h4XXxcJFxkW1xkYS1mXSp8MFtvcV1bMC03XSt8WzAtN10rW29xXXwwW2J5XVswMV0rfFswMV0rW2J5XXwwW2R0XVxkK3woPzpcZCsoPzpcLlxkKyk/fFwuXGQrKSg/OlwuP2VbKy1dP1xkKyk/W2R0XT8pXGIvaSxvcGVyYXRvcjovW1xbXF0qK1wtXC8lPD49JnwkIV0vfX1yZXR1cm4gcmd9dmFyIGFnLHpfO2Z1bmN0aW9uIEJGKCl7aWYoel8pcmV0dXJuIGFnO3pfPTEsYWc9ZSxlLmRpc3BsYXlOYW1lPSJuZW9uIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5uZW9uPXtjb21tZW50OntwYXR0ZXJuOi8jLiovLGdyZWVkeTohMH0sZGF0ZXRpbWU6e3BhdHRlcm46LyhefFtbeyg9Oixcc10pXGRcZFxkXGQtXGRcZD8tXGRcZD8oPzooPzpbVHRdfCArKVxkXGQ/OlxkXGQ6XGRcZCg/OlwuXGQqKT8gKig/Olp8Wy0rXVxkXGQ/KD86Oj9cZFxkKT8pPyk/KD89JHxbXF19KSxcc10pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIifSxrZXk6e3BhdHRlcm46LyhefFtbeygsXHNdKVteLDo9W1xde30oKSciXHNdKyg/PVxzKjooPzokfFtcXX0pLFxzXSl8XHMqPSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0cnVsZSJ9LG51bWJlcjp7cGF0dGVybjovKF58W1t7KD06LFxzXSlbKy1dPyg/OjB4W1xkYS1mQS1GXSt8MG9bMC03XSt8MGJbMDFdK3woPzpcZCsoPzpcLlxkKik/fFwuP1xkKykoPzpbZUVdWystXT9cZCspPykoPz0kfFtcXX0pLDo9XHNdKS8sbG9va2JlaGluZDohMH0sYm9vbGVhbjp7cGF0dGVybjovKF58W1t7KD06LFxzXSkoPzpmYWxzZXxub3x0cnVlfHllcykoPz0kfFtcXX0pLDo9XHNdKS9pLGxvb2tiZWhpbmQ6ITB9LG51bGw6e3BhdHRlcm46LyhefFtbeyg9Oixcc10pKD86bnVsbCkoPz0kfFtcXX0pLDo9XHNdKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxzdHJpbmc6e3BhdHRlcm46LyhefFtbeyg9Oixcc10pKD86KCcnJ3wiIiIpXHI/XG4oPzooPzpbXlxyXG5dfFxyP1xuKD8hW1x0IF0qXDIpKSpccj9cbik/W1x0IF0qXDJ8J1teJ1xyXG5dKid8Iig/OlxcLnxbXlxcIlxyXG5dKSoiKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGxpdGVyYWw6e3BhdHRlcm46LyhefFtbeyg9Oixcc10pKD86W14jIicsOj1bXF17fSgpXHNgLV18WzotXVteIicsPVtcXXt9KClcc10pKD86W14sOj1cXX0pKFxzXXw6KD8hW1xzLFxdfSldfCQpfFsgXHRdK1teIyw6PVxdfSkoXHNdKSovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyJ9LHB1bmN0dWF0aW9uOi9bLDo9W1xde30oKS1dL319cmV0dXJuIGFnfXZhciBpZyxxXztmdW5jdGlvbiBqRigpe2lmKHFfKXJldHVybiBpZztxXz0xLGlnPWUsZS5kaXNwbGF5TmFtZT0ibmV2b2QiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLm5ldm9kPXtjb21tZW50Oi9cL1wvLip8KD86XC9cKltcc1xTXSo/KD86XCpcL3wkKSkvLHN0cmluZzp7cGF0dGVybjovKD86Iig/OiIifFteIl0pKiIoPyEiKXwnKD86Jyd8W14nXSkqJyg/IScpKSE/XCo/LyxncmVlZHk6ITAsaW5zaWRlOnsic3RyaW5nLWF0dHJzIjovISR8IVwqJHxcKiQvfX0sbmFtZXNwYWNlOntwYXR0ZXJuOi8oQG5hbWVzcGFjZVxzKylbYS16QS1aMC05XC0uXSsoPz1ccypceykvLGxvb2tiZWhpbmQ6ITB9LHBhdHRlcm46e3BhdHRlcm46LyhAcGF0dGVyblxzKyk/Iz9bYS16QS1aMC05XC0uXSsoPzpccypcKFxzKig/On5ccyopP1thLXpBLVowLTlcLS5dK1xzKig/OixccyooPzp+XHMqKT9bYS16QS1aMC05XC0uXSopKlwpKT8oPz1ccyo9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJwYXR0ZXJuLW5hbWUiOntwYXR0ZXJuOi9eIz9bYS16QS1aMC05XC0uXSsvLGFsaWFzOiJjbGFzcy1uYW1lIn0sZmllbGRzOntwYXR0ZXJuOi9cKC4qXCkvLGluc2lkZTp7ImZpZWxkLW5hbWUiOntwYXR0ZXJuOi9bYS16QS1aMC05XC0uXSsvLGFsaWFzOiJ2YXJpYWJsZSJ9LHB1bmN0dWF0aW9uOi9bLCgpXS8sb3BlcmF0b3I6e3BhdHRlcm46L34vLGFsaWFzOiJmaWVsZC1oaWRkZW4tbWFyayJ9fX19fSxzZWFyY2g6e3BhdHRlcm46LyhAc2VhcmNoXHMrfCMpW2EtekEtWjAtOVwtLl0rKD86XC5cKik/KD89XHMqOykvLGFsaWFzOiJmdW5jdGlvbiIsbG9va2JlaGluZDohMH0sa2V5d29yZDovQCg/OmhhdmluZ3xpbnNpZGV8bmFtZXNwYWNlfG91dHNpZGV8cGF0dGVybnxyZXF1aXJlfHNlYXJjaHx3aGVyZSlcYi8sInN0YW5kYXJkLXBhdHRlcm4iOntwYXR0ZXJuOi9cYig/OkFscGhhfEFscGhhTnVtfEFueXxCbGFua3xFbmR8TGluZUJyZWFrfE51bXxOdW1BbHBoYXxQdW5jdHxTcGFjZXxTdGFydHxTeW1ib2x8V29yZHxXb3JkQnJlYWspXGIoPzpcKFthLXpBLVowLTlcLS4sXHMrXSpcKSk/LyxpbnNpZGU6eyJzdGFuZGFyZC1wYXR0ZXJuLW5hbWUiOntwYXR0ZXJuOi9eW2EtekEtWjAtOVwtLl0rLyxhbGlhczoiYnVpbHRpbiJ9LHF1YW50aWZpZXI6e3BhdHRlcm46L1xiXGQrKD86XHMqXCt8XHMqLVxzKlxkKyk/KD8hXHcpLyxhbGlhczoibnVtYmVyIn0sInN0YW5kYXJkLXBhdHRlcm4tYXR0ciI6e3BhdHRlcm46L1thLXpBLVowLTlcLS5dKy8sYWxpYXM6ImJ1aWx0aW4ifSxwdW5jdHVhdGlvbjovWywoKV0vfX0scXVhbnRpZmllcjp7cGF0dGVybjovXGJcZCsoPzpccypcK3xccyotXHMqXGQrKT8oPyFcdykvLGFsaWFzOiJudW1iZXIifSxvcGVyYXRvcjpbe3BhdHRlcm46Lz0vLGFsaWFzOiJwYXR0ZXJuLWRlZiJ9LHtwYXR0ZXJuOi8mLyxhbGlhczoiY29uanVuY3Rpb24ifSx7cGF0dGVybjovfi8sYWxpYXM6ImV4Y2VwdGlvbiJ9LHtwYXR0ZXJuOi9cPy8sYWxpYXM6Im9wdGlvbmFsaXR5In0se3BhdHRlcm46L1tbXF1dLyxhbGlhczoicmVwZXRpdGlvbiJ9LHtwYXR0ZXJuOi9be31dLyxhbGlhczoidmFyaWF0aW9uIn0se3BhdHRlcm46L1srX10vLGFsaWFzOiJzZXF1ZW5jZSJ9LHtwYXR0ZXJuOi9cLnsyLDN9LyxhbGlhczoic3BhbiJ9XSwiZmllbGQtY2FwdHVyZSI6W3twYXR0ZXJuOi8oW2EtekEtWjAtOVwtLl0rXHMqXCgpXHMqW2EtekEtWjAtOVwtLl0rXHMqOlxzKlthLXpBLVowLTlcLS5dKyg/OlxzKixccypbYS16QS1aMC05XC0uXStccyo6XHMqW2EtekEtWjAtOVwtLl0rKSooPz1ccypcKSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiZmllbGQtbmFtZSI6e3BhdHRlcm46L1thLXpBLVowLTlcLS5dKy8sYWxpYXM6InZhcmlhYmxlIn0sY29sb246LzovfX0se3BhdHRlcm46L1thLXpBLVowLTlcLS5dK1xzKjovLGluc2lkZTp7ImZpZWxkLW5hbWUiOntwYXR0ZXJuOi9bYS16QS1aMC05XC0uXSsvLGFsaWFzOiJ2YXJpYWJsZSJ9LGNvbG9uOi86L319XSxwdW5jdHVhdGlvbjovWzo7LCgpXS8sbmFtZTovW2EtekEtWjAtOVwtLl0rL319cmV0dXJuIGlnfXZhciBvZyxQXztmdW5jdGlvbiB6Rigpe2lmKFBfKXJldHVybiBvZztQXz0xLG9nPWUsZS5kaXNwbGF5TmFtZT0ibmdpbngiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vXCQoPzpcd1thLXpcZF0qKD86X1teXHgwMC1ceDFGXHMiJ1xcKCkkXSopP3xce1tefVxzIidcXF0rXH0pL2k7YS5sYW5ndWFnZXMubmdpbng9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFtcc3t9O10pIy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sZGlyZWN0aXZlOntwYXR0ZXJuOi8oXnxccylcdyg/OlteO3t9IidcXFxzXXxcXC58Iig/OlteIlxcXXxcXC4pKiJ8Jyg/OlteJ1xcXXxcXC4pKid8XHMrKD86Iy4qKD8hLil8KD8hWyNcc10pKSkqPyg/PVxzKls7e10pLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e3N0cmluZzp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFxcXCkqKSg/OiIoPzpbXiJcXF18XFwuKSoifCcoPzpbXidcXF18XFwuKSonKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntlc2NhcGU6e3BhdHRlcm46L1xcWyInXFxucnRdLyxhbGlhczoiZW50aXR5In0sdmFyaWFibGU6aX19LGNvbW1lbnQ6e3BhdHRlcm46LyhccykjLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxrZXl3b3JkOntwYXR0ZXJuOi9eXFMrLyxncmVlZHk6ITB9LGJvb2xlYW46e3BhdHRlcm46LyhccykoPzpvZmZ8b24pKD8hXFMpLyxsb29rYmVoaW5kOiEwfSxudW1iZXI6e3BhdHRlcm46LyhccylcZCtbYS16XSooPyFcUykvaSxsb29rYmVoaW5kOiEwfSx2YXJpYWJsZTppfX0scHVuY3R1YXRpb246L1t7fTtdL319KShuKX1yZXR1cm4gb2d9dmFyIGxnLEdfO2Z1bmN0aW9uIHFGKCl7aWYoR18pcmV0dXJuIGxnO0dfPTEsbGc9ZSxlLmRpc3BsYXlOYW1lPSJuaW0iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLm5pbT17Y29tbWVudDp7cGF0dGVybjovIy4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKD86XGIoPyFcZCkoPzpcd3xcXHhbODlhLWZBLUZdWzAtOWEtZkEtRl0pKyk/KD86IiIiW1xzXFNdKj8iIiIoPyEiKXwiKD86XFxbXHNcU118IiJ8W14iXFxdKSoiKS8sZ3JlZWR5OiEwfSxjaGFyOntwYXR0ZXJuOi8nKD86XFwoPzpcZCt8eFtcZGEtZkEtRl17MCwyfXwuKXxbXiddKScvLGdyZWVkeTohMH0sZnVuY3Rpb246e3BhdHRlcm46Lyg/Oig/IVxkKSg/Olx3fFxceFs4OWEtZkEtRl1bMC05YS1mQS1GXSkrfGBbXmBcclxuXStgKVwqPyg/OlxbW15cXV0rXF0pPyg/PVxzKlwoKS8sZ3JlZWR5OiEwLGluc2lkZTp7b3BlcmF0b3I6L1wqJC99fSxpZGVudGlmaWVyOntwYXR0ZXJuOi9gW15gXHJcbl0rYC8sZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L2AvfX0sbnVtYmVyOi9cYig/OjBbeFhvT2JCXVtcZGEtZkEtRl9dK3xcZFtcZF9dKig/Oig/IVwuXC4pXC5bXGRfXSopPyg/OltlRV1bKy1dP1xkW1xkX10qKT8pKD86Jz9baXVmXVxkKik/LyxrZXl3b3JkOi9cYig/OmFkZHJ8YXN8YXNtfGF0b21pY3xiaW5kfGJsb2NrfGJyZWFrfGNhc2V8Y2FzdHxjb25jZXB0fGNvbnN0fGNvbnRpbnVlfGNvbnZlcnRlcnxkZWZlcnxkaXNjYXJkfGRpc3RpbmN0fGRvfGVsaWZ8ZWxzZXxlbmR8ZW51bXxleGNlcHR8ZXhwb3J0fGZpbmFsbHl8Zm9yfGZyb218ZnVuY3xnZW5lcmljfGlmfGltcG9ydHxpbmNsdWRlfGludGVyZmFjZXxpdGVyYXRvcnxsZXR8bWFjcm98bWV0aG9kfG1peGlufG5pbHxvYmplY3R8b3V0fHByb2N8cHRyfHJhaXNlfHJlZnxyZXR1cm58c3RhdGljfHRlbXBsYXRlfHRyeXx0dXBsZXx0eXBlfHVzaW5nfHZhcnx3aGVufHdoaWxlfHdpdGh8d2l0aG91dHx5aWVsZClcYi8sb3BlcmF0b3I6e3BhdHRlcm46LyhefFsoe1xbXSg/PVwuXC4pfCg/IVsoe1xbXVwuKS4pKD86KD86Wz0rXC0qXC88PkAkfiYlfCE/XjpcXF18XC5cLnxcLig/IVspfVxdXSkpK3xcYig/OmFuZHxkaXZ8aW58aXN8aXNub3R8bW9kfG5vdHxub3RpbnxvZnxvcnxzaGx8c2hyfHhvcilcYikvbSxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovWyh7XFtdXC58XC5bKX1cXV18W2AoKXt9XFtcXSw6XS99fXJldHVybiBsZ312YXIgc2csSF87ZnVuY3Rpb24gUEYoKXtpZihIXylyZXR1cm4gc2c7SF89MSxzZz1lLGUuZGlzcGxheU5hbWU9Im5peCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMubml4PXtjb21tZW50OntwYXR0ZXJuOi9cL1wqW1xzXFNdKj9cKlwvfCMuKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJcXF18XFxbXHNcU10pKiJ8JycoPzooPyEnJylbXHNcU118JycoPzonfFxcfFwkXHspKSonJy8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKF58KD86XnwoPyEnJykuKVteXFxdKVwkXHsoPzpbXnt9XXxce1tefV0qXH0pKlx9Lyxsb29rYmVoaW5kOiEwLGluc2lkZTpudWxsfX19LHVybDpbL1xiKD86W2Etel17Myw3fTpcL1wvKVtcd1wtKyV+XC8uOiM9PyZdKy8se3BhdHRlcm46LyhbXlwvXSkoPzpbXHdcLSslfi46Iz0/Jl0qKD8hXC9cLylbXHdcLSslflwvLjojPT8mXSk/KD8hXC9cLylcL1tcd1wtKyV+XC8uOiM9PyZdKi8sbG9va2JlaGluZDohMH1dLGFudGlxdW90YXRpb246e3BhdHRlcm46L1wkKD89XHspLyxhbGlhczoiaW1wb3J0YW50In0sbnVtYmVyOi9cYlxkK1xiLyxrZXl3b3JkOi9cYig/OmFzc2VydHxidWlsdGluc3xlbHNlfGlmfGlufGluaGVyaXR8bGV0fG51bGx8b3J8dGhlbnx3aXRoKVxiLyxmdW5jdGlvbjovXGIoPzphYm9ydHxhZGR8YWxsfGFueXxhdHRyTmFtZXN8YXR0clZhbHVlc3xiYXNlTmFtZU9mfGNvbXBhcmVWZXJzaW9uc3xjb25jYXRMaXN0c3xjdXJyZW50U3lzdGVtfGRlZXBTZXF8ZGVyaXZhdGlvbnxkaXJPZnxkaXZ8ZWxlbSg/OkF0KT98ZmV0Y2goPzpUYXJiYWxsfHVybCl8ZmlsdGVyKD86U291cmNlKT98ZnJvbUpTT058Z2VuTGlzdHxnZXRBdHRyfGdldEVudnxoYXNBdHRyfGhhc2hTdHJpbmd8aGVhZHxpbXBvcnR8aW50ZXJzZWN0QXR0cnN8aXMoPzpBdHRyc3xCb29sfEZ1bmN0aW9ufEludHxMaXN0fE51bGx8U3RyaW5nKXxsZW5ndGh8bGVzc1RoYW58bGlzdFRvQXR0cnN8bWFwfG11bHxwYXJzZURydk5hbWV8cGF0aEV4aXN0c3xyZWFkKD86RGlyfEZpbGUpfHJlbW92ZUF0dHJzfHJlcGxhY2VTdHJpbmdzfHNlcXxzb3J0fHN0cmluZ0xlbmd0aHxzdWIoPzpzdHJpbmcpP3x0YWlsfHRocm93fHRvKD86RmlsZXxKU09OfFBhdGh8U3RyaW5nfFhNTCl8dHJhY2V8dHlwZU9mKVxifFxiZm9sZGwnXEIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sb3BlcmF0b3I6L1s9ITw+XT0/fFwrXCs/fFx8XHx8JiZ8XC9cL3wtPj98Wz9AXS8scHVuY3R1YXRpb246L1t7fSgpW1xdLiw6O10vfSxuLmxhbmd1YWdlcy5uaXguc3RyaW5nLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZT1uLmxhbmd1YWdlcy5uaXh9cmV0dXJuIHNnfXZhciB1ZywkXztmdW5jdGlvbiBHRigpe2lmKCRfKXJldHVybiB1ZzskXz0xLHVnPWUsZS5kaXNwbGF5TmFtZT0ibnNpcyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMubnNpcz17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pKD86XC9cKltcc1xTXSo/XCpcL3xbIztdLiopLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oInwnKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITB9LGtleXdvcmQ6e3BhdHRlcm46LyheW1x0IF0qKSg/OkFib3J0fEFkZCg/OkJyYW5kaW5nSW1hZ2V8U2l6ZSl8QWR2U3BsYXNofEFsbG93KD86Um9vdERpckluc3RhbGx8U2tpcEZpbGVzKXxBdXRvQ2xvc2VXaW5kb3d8QkcoPzpGb250fEdyYWRpZW50fEltYWdlKXxCYW5uZXJ8QnJhbmRpbmdUZXh0fEJyaW5nVG9Gcm9udHxDUkNDaGVja3xDYWxsKD86SW5zdERMTCk/fENhcHRpb258Q2hhbmdlVUl8Q2hlY2tCaXRtYXB8Q2xlYXJFcnJvcnN8Q29tcGxldGVkVGV4dHxDb21wb25lbnRUZXh0fENvcHlGaWxlc3xDcmVhdGUoPzpEaXJlY3Rvcnl8Rm9udHxTaG9ydEN1dCl8RGVsZXRlKD86SU5JU2VjfElOSVN0cnxSZWdLZXl8UmVnVmFsdWUpP3xEZXRhaWwoPzpQcmludHxzQnV0dG9uVGV4dCl8RGlhbGVyfERpcig/OlRleHR8VmFyfFZlcmlmeSl8RW5hYmxlV2luZG93fEVudW0oPzpSZWdLZXl8UmVnVmFsdWUpfEV4Y2h8RXhlYyg/OlNoZWxsKD86V2FpdCk/fFdhaXQpP3xFeHBhbmRFbnZTdHJpbmdzfEZpbGUoPzpCdWZTaXplfENsb3NlfEVycm9yVGV4dHxPcGVufFJlYWR8UmVhZEJ5dGV8UmVhZFVURjE2TEV8UmVhZFdvcmR8U2Vla3xXcml0ZXxXcml0ZUJ5dGV8V3JpdGVVVEYxNkxFfFdyaXRlV29yZCk/fEZpbmQoPzpDbG9zZXxGaXJzdHxOZXh0fFdpbmRvdyl8Rmx1c2hJTkl8R2V0KD86Q3VySW5zdFR5cGV8Q3VycmVudEFkZHJlc3N8RExMVmVyc2lvbig/OkxvY2FsKT98RGxnSXRlbXxFcnJvckxldmVsfEZpbGVUaW1lKD86TG9jYWwpP3xGdWxsUGF0aE5hbWV8RnVuY3Rpb24oPzpBZGRyZXNzfEVuZCk/fEluc3REaXJFcnJvcnxMYWJlbEFkZHJlc3N8VGVtcEZpbGVOYW1lKXxHb3RvfEhpZGVXaW5kb3d8SWNvbnxJZig/OkFib3J0fEVycm9yc3xGaWxlRXhpc3RzfFJlYm9vdEZsYWd8U2lsZW50KXxJbml0UGx1Z2luc0RpcnxJbnN0UHJvZ3Jlc3NGbGFnc3xJbnN0KD86VHlwZSg/OkdldFRleHR8U2V0VGV4dCk/KXxJbnN0YWxsKD86QnV0dG9uVGV4dHxDb2xvcnN8RGlyKD86UmVnS2V5KT8pfEludCg/OjY0fFB0cik/Q21wVT98SW50KD86NjQpP0ZtdHxJbnQoPzpQdHIpP09wfElzV2luZG93fExhbmcoPzpETEx8U3RyaW5nKXxMaWNlbnNlKD86QmtDb2xvcnxEYXRhfEZvcmNlU2VsZWN0aW9ufExhbmdTdHJpbmd8VGV4dCl8TG9hZExhbmd1YWdlRmlsZXxMb2NrV2luZG93fExvZyg/OlNldHxUZXh0KXxNYW5pZmVzdCg/OkRQSUF3YXJlfFN1cHBvcnRlZE9TKXxNYXRofE1lc3NhZ2VCb3h8TWlzY0J1dHRvblRleHR8TlNJU2RsfE5hbWV8Tm9wfE91dEZpbGV8UEUoPzpEbGxDaGFyYWN0ZXJpc3RpY3N8U3Vic3lzVmVyKXxQYWdlKD86Q2FsbGJhY2tzKT98UG9wfFB1c2h8UXVpdHxSTURpcnxSZWFkKD86RW52U3RyfElOSVN0cnxSZWdEV09SRHxSZWdTdHIpfFJlYm9vdHxSZWdETEx8UmVuYW1lfFJlcXVlc3RFeGVjdXRpb25MZXZlbHxSZXNlcnZlRmlsZXxSZXR1cm58U2VhcmNoUGF0aHxTZWN0aW9uKD86RW5kfEdldEZsYWdzfEdldEluc3RUeXBlc3xHZXRTaXplfEdldFRleHR8R3JvdXB8SW58U2V0RmxhZ3N8U2V0SW5zdFR5cGVzfFNldFNpemV8U2V0VGV4dCk/fFNlbmRNZXNzYWdlfFNldCg/OkF1dG9DbG9zZXxCcmFuZGluZ0ltYWdlfENvbXByZXNzfENvbXByZXNzb3IoPzpEaWN0U2l6ZSk/fEN0bENvbG9yc3xDdXJJbnN0VHlwZXxEYXRhYmxvY2tPcHRpbWl6ZXxEYXRlU2F2ZXxEZXRhaWxzKD86UHJpbnR8Vmlldyl8RXJyb3JMZXZlbHxFcnJvcnN8RmlsZUF0dHJpYnV0ZXN8Rm9udHxPdXRQYXRofE92ZXJ3cml0ZXxQbHVnaW5VbmxvYWR8UmVib290RmxhZ3xSZWdWaWV3fFNoZWxsVmFyQ29udGV4dHxTaWxlbnQpfFNob3coPzpJbnN0RGV0YWlsc3xVbmluc3REZXRhaWxzfFdpbmRvdyl8U2lsZW50KD86SW5zdGFsbHxVbkluc3RhbGwpfFNsZWVwfFNwYWNlVGV4dHN8U3BsYXNofFN0YXJ0TWVudXxTdHIoPzpDbXBTP3xDcHl8TGVuKXxTdWJDYXB0aW9ufFN5c3RlbXxVblJlZ0RMTHxVbmljb2RlfFVuaW5zdFBhZ2V8VW5pbnN0YWxsKD86QnV0dG9uVGV4dHxDYXB0aW9ufEljb258U3ViQ2FwdGlvbnxUZXh0KXxVc2VySW5mb3xWSSg/OkFkZFZlcnNpb25LZXl8RmlsZVZlcnNpb258UHJvZHVjdFZlcnNpb24pfFZQYXRjaHxWYXJ8V2luZG93SWNvbnxXcml0ZSg/OklOSVN0cnxSZWcoPzpCaW58RFdPUkR8RXhwYW5kU3RyfE11bHRpU3RyfE5vbmV8U3RyKXxVbmluc3RhbGxlcil8WFBTdHlsZXxucyg/OkRpYWxvZ3N8RXhlYykpXGIvbSxsb29rYmVoaW5kOiEwfSxwcm9wZXJ0eTovXGIoPzpBUkNISVZFfEZJTEVfKD86QVRUUklCVVRFX0FSQ0hJVkV8QVRUUklCVVRFX05PUk1BTHxBVFRSSUJVVEVfT0ZGTElORXxBVFRSSUJVVEVfUkVBRE9OTFl8QVRUUklCVVRFX1NZU1RFTXxBVFRSSUJVVEVfVEVNUE9SQVJZKXxISyg/Oig/OkNSfENVfExNKSg/OjMyfDY0KT98RER8UER8VSl8SEtFWV8oPzpDTEFTU0VTX1JPT1R8Q1VSUkVOVF9DT05GSUd8Q1VSUkVOVF9VU0VSfERZTl9EQVRBfExPQ0FMX01BQ0hJTkV8UEVSRk9STUFOQ0VfREFUQXxVU0VSUyl8SUQoPzpBQk9SVHxDQU5DRUx8SUdOT1JFfE5PfE9LfFJFVFJZfFlFUyl8TUJfKD86QUJPUlRSRVRSWUlHTk9SRXxERUZCVVRUT04xfERFRkJVVFRPTjJ8REVGQlVUVE9OM3xERUZCVVRUT040fElDT05FWENMQU1BVElPTnxJQ09OSU5GT1JNQVRJT058SUNPTlFVRVNUSU9OfElDT05TVE9QfE9LfE9LQ0FOQ0VMfFJFVFJZQ0FOQ0VMfFJJR0hUfFJUTFJFQURJTkd8U0VURk9SRUdST1VORHxUT1BNT1NUfFVTRVJJQ09OfFlFU05PKXxOT1JNQUx8T0ZGTElORXxSRUFET05MWXxTSENUWHxTSEVMTF9DT05URVhUfFNZU1RFTXxURU1QT1JBUll8YWRtaW58YWxsfGF1dG98Ym90aHxjb2xvcmVkfGZhbHNlfGZvcmNlfGhpZGV8aGlnaGVzdHxsYXN0dXNlZHxsZWF2ZXxsaXN0b25seXxub25lfG5vcm1hbHxub3RzZXR8b2ZmfG9ufG9wZW58cHJpbnR8c2hvd3xzaWxlbnR8c2lsZW50bG9nfHNtb290aHx0ZXh0b25seXx0cnVlfHVzZXIpXGIvLGNvbnN0YW50Oi9cJFx7WyFcd1wuOlxeLV0rXH18XCRcKFshXHdcLjpcXi1dK1wpLyx2YXJpYWJsZTovXCRcd1tcd1wuXSovLG51bWJlcjovXGIweFtcZEEtRmEtZl0rXGJ8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VlXS0/XGQrKT8vLG9wZXJhdG9yOi8tLT98XCtcKz98PD0/fD49P3w9PT89P3wmJj98XHxcfD98Wz8qXC9+XiVdLyxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS8saW1wb3J0YW50OntwYXR0ZXJuOi8oXltcdCBdKikhKD86YWRkaW5jbHVkZWRpcnxhZGRwbHVnaW5kaXJ8YXBwZW5kZmlsZXxjZHxkZWZpbmV8ZGVsZmlsZXxlY2hvfGVsc2V8ZW5kaWZ8ZXJyb3J8ZXhlY3V0ZXxmaW5hbGl6ZXxnZXRkbGx2ZXJzaW9ufGdldHRsYnZlcnNpb258aWZ8aWZkZWZ8aWZtYWNyb2RlZnxpZm1hY3JvbmRlZnxpZm5kZWZ8aW5jbHVkZXxpbnNlcnRtYWNyb3xtYWNyb3xtYWNyb2VuZHxtYWtlbnNpc3xwYWNraGRyfHByYWdtYXxzZWFyY2hwYXJzZXxzZWFyY2hyZXBsYWNlfHN5c3RlbXx0ZW1wZmlsZXx1bmRlZnx2ZXJib3NlfHdhcm5pbmcpXGIvaW0sbG9va2JlaGluZDohMH19fXJldHVybiB1Z312YXIgY2csVl87ZnVuY3Rpb24gSEYoKXtpZihWXylyZXR1cm4gY2c7Vl89MTt2YXIgZT1vYSgpO2NnPW4sbi5kaXNwbGF5TmFtZT0ib2JqZWN0aXZlYyIsbi5hbGlhc2VzPVsib2JqYyJdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSxhLmxhbmd1YWdlcy5vYmplY3RpdmVjPWEubGFuZ3VhZ2VzLmV4dGVuZCgiYyIse3N0cmluZzp7cGF0dGVybjovQD8iKD86XFwoPzpcclxufFtcc1xTXSl8W14iXFxcclxuXSkqIi8sZ3JlZWR5OiEwfSxrZXl3b3JkOi9cYig/OmFzbXxhdXRvfGJyZWFrfGNhc2V8Y2hhcnxjb25zdHxjb250aW51ZXxkZWZhdWx0fGRvfGRvdWJsZXxlbHNlfGVudW18ZXh0ZXJufGZsb2F0fGZvcnxnb3RvfGlmfGlufGlubGluZXxpbnR8bG9uZ3xyZWdpc3RlcnxyZXR1cm58c2VsZnxzaG9ydHxzaWduZWR8c2l6ZW9mfHN0YXRpY3xzdHJ1Y3R8c3VwZXJ8c3dpdGNofHR5cGVkZWZ8dHlwZW9mfHVuaW9ufHVuc2lnbmVkfHZvaWR8dm9sYXRpbGV8d2hpbGUpXGJ8KD86QGludGVyZmFjZXxAZW5kfEBpbXBsZW1lbnRhdGlvbnxAcHJvdG9jb2x8QGNsYXNzfEBwdWJsaWN8QHByb3RlY3RlZHxAcHJpdmF0ZXxAcHJvcGVydHl8QHRyeXxAY2F0Y2h8QGZpbmFsbHl8QHRocm93fEBzeW50aGVzaXplfEBkeW5hbWljfEBzZWxlY3RvcilcYi8sb3BlcmF0b3I6Ly1bLT5dP3xcK1wrP3whPT98PDw/PT98Pj4/PT98PT0/fCYmP3xcfFx8P3xbfl4lPypcL0BdL30pLGRlbGV0ZSBhLmxhbmd1YWdlcy5vYmplY3RpdmVjWyJjbGFzcy1uYW1lIl0sYS5sYW5ndWFnZXMub2JqYz1hLmxhbmd1YWdlcy5vYmplY3RpdmVjfXJldHVybiBjZ312YXIgZGcsWV87ZnVuY3Rpb24gJEYoKXtpZihZXylyZXR1cm4gZGc7WV89MSxkZz1lLGUuZGlzcGxheU5hbWU9Im9jYW1sIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5vY2FtbD17Y29tbWVudDp7cGF0dGVybjovXChcKltcc1xTXSo/XCpcKS8sZ3JlZWR5OiEwfSxjaGFyOntwYXR0ZXJuOi8nKD86W15cXFxyXG4nXXxcXCg/Oi58W294XT9bMC05YS1mXXsxLDN9KSknL2ksZ3JlZWR5OiEwfSxzdHJpbmc6W3twYXR0ZXJuOi8iKD86XFwoPzpbXHNcU118XHJcbil8W15cXFxyXG4iXSkqIi8sZ3JlZWR5OiEwfSx7cGF0dGVybjovXHsoW2Etel9dKilcfFtcc1xTXSo/XHxcMVx9LyxncmVlZHk6ITB9XSxudW1iZXI6Wy9cYig/OjBiWzAxXVswMV9dKnwwb1swLTddWzAtN19dKilcYi9pLC9cYjB4W2EtZjAtOV1bYS1mMC05X10qKD86XC5bYS1mMC05X10qKT8oPzpwWystXT9cZFtcZF9dKik/KD8hXHcpL2ksL1xiXGRbXGRfXSooPzpcLltcZF9dKik/KD86ZVsrLV0/XGRbXGRfXSopPyg/IVx3KS9pXSxkaXJlY3RpdmU6e3BhdHRlcm46L1xCI1x3Ky8sYWxpYXM6InByb3BlcnR5In0sbGFiZWw6e3BhdHRlcm46L1xCflx3Ky8sYWxpYXM6InByb3BlcnR5In0sInR5cGUtdmFyaWFibGUiOntwYXR0ZXJuOi9cQidcdysvLGFsaWFzOiJmdW5jdGlvbiJ9LHZhcmlhbnQ6e3BhdHRlcm46L2BcdysvLGFsaWFzOiJzeW1ib2wifSxrZXl3b3JkOi9cYig/OmFzfGFzc2VydHxiZWdpbnxjbGFzc3xjb25zdHJhaW50fGRvfGRvbmV8ZG93bnRvfGVsc2V8ZW5kfGV4Y2VwdGlvbnxleHRlcm5hbHxmb3J8ZnVufGZ1bmN0aW9ufGZ1bmN0b3J8aWZ8aW58aW5jbHVkZXxpbmhlcml0fGluaXRpYWxpemVyfGxhenl8bGV0fG1hdGNofG1ldGhvZHxtb2R1bGV8bXV0YWJsZXxuZXd8bm9ucmVjfG9iamVjdHxvZnxvcGVufHByaXZhdGV8cmVjfHNpZ3xzdHJ1Y3R8dGhlbnx0b3x0cnl8dHlwZXx2YWx8dmFsdWV8dmlydHVhbHx3aGVufHdoZXJlfHdoaWxlfHdpdGgpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sIm9wZXJhdG9yLWxpa2UtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9cW1s8PnxdfFs+fF1cXXxcezx8Plx9LyxhbGlhczoicHVuY3R1YXRpb24ifSxvcGVyYXRvcjovXC5bLn5dfDpbPT5dfFs9PD5AXnwmK1wtKlwvJCUhP35dWyEkJSYqK1wtLlwvOjw9Pj9AXnx+XSp8XGIoPzphbmR8YXNyfGxhbmR8bG9yfGxzbHxsc3J8bHhvcnxtb2R8b3IpXGIvLHB1bmN0dWF0aW9uOi87O3w6OnxbKCl7fVxbXF0uLDo7I118XGJfXGIvfX1yZXR1cm4gZGd9dmFyIHBnLEtfO2Z1bmN0aW9uIFZGKCl7aWYoS18pcmV0dXJuIHBnO0tfPTE7dmFyIGU9b2EoKTtwZz1uLG4uZGlzcGxheU5hbWU9Im9wZW5jbCIsbi5hbGlhc2VzPVtdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSwoZnVuY3Rpb24oaSl7aS5sYW5ndWFnZXMub3BlbmNsPWkubGFuZ3VhZ2VzLmV4dGVuZCgiYyIse2tleXdvcmQ6L1xiKD86KD86X18pPyg/OmNvbnN0YW50fGdsb2JhbHxrZXJuZWx8bG9jYWx8cHJpdmF0ZXxyZWFkX29ubHl8cmVhZF93cml0ZXx3cml0ZV9vbmx5KXxfX2F0dHJpYnV0ZV9ffGF1dG98KD86Ym9vbHx1Pyg/OmNoYXJ8aW50fGxvbmd8c2hvcnQpfGhhbGZ8cXVhZCkoPzoyfDN8NHw4fDE2KT98YnJlYWt8Y2FzZXxjb21wbGV4fGNvbnN0fGNvbnRpbnVlfCg/OmRvdWJsZXxmbG9hdCkoPzoxNig/OngoPzoxfDJ8NHw4fDE2KSk/fDF4KD86MXwyfDR8OHwxNil8Mig/OngoPzoxfDJ8NHw4fDE2KSk/fDN8NCg/OngoPzoxfDJ8NHw4fDE2KSk/fDgoPzp4KD86MXwyfDR8OHwxNikpPyk/fGRlZmF1bHR8ZG98ZWxzZXxlbnVtfGV4dGVybnxmb3J8Z290b3xpZnxpbWFnaW5hcnl8aW5saW5lfHBhY2tlZHxwaXBlfHJlZ2lzdGVyfHJlc3RyaWN0fHJldHVybnxzaWduZWR8c2l6ZW9mfHN0YXRpY3xzdHJ1Y3R8c3dpdGNofHR5cGVkZWZ8dW5pZm9ybXx1bmlvbnx1bnNpZ25lZHx2b2lkfHZvbGF0aWxlfHdoaWxlKVxiLyxudW1iZXI6Lyg/OlxiMHgoPzpbXGRhLWZdKyg/OlwuW1xkYS1mXSopP3xcLltcZGEtZl0rKSg/OnBbKy1dP1xkKyk/fCg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/KVtmdWhsXXswLDR9L2ksYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLywiY29uc3RhbnQtb3BlbmNsLWtlcm5lbCI6e3BhdHRlcm46L1xiKD86Q0hBUl8oPzpCSVR8TUFYfE1JTil8Q0xLXyg/OkFERFJFU1NfKD86Q0xBTVAoPzpfVE9fRURHRSk/fE5PTkV8UkVQRUFUKXxGSUxURVJfKD86TElORUFSfE5FQVJFU1QpfCg/OkdMT0JBTHxMT0NBTClfTUVNX0ZFTkNFfE5PUk1BTElaRURfQ09PUkRTXyg/OkZBTFNFfFRSVUUpKXxDTF8oPzpCR1JBfCg/OkhBTEZfKT9GTE9BVHxJTlRFTlNJVFl8TFVNSU5BTkNFfEE/Uj9HP0I/W0F4XT98KD86KD86VU4pP1NJR05FRHxbVVNdTk9STSlfKD86SU5UKD86OHwxNnwzMikpfFVOT1JNXyg/OklOVF8xMDEwMTB8U0hPUlRfKD86NTU1fDU2NSkpKXwoPzpEQkx8RkxUfEhBTEYpXyg/OkRJR3xFUFNJTE9OfCg/Ok1BWHxNSU4pKD86KD86XzEwKT9fRVhQKT98TUFOVF9ESUcpfEZMVF9SQURJWHxIVUdFX1ZBTEY/fCg/OklOVHxMT05HfFNDSEFSfFNIUlQpXyg/Ok1BWHxNSU4pfElORklOSVRZfE1BWEZMT0FUfE1fKD86WzEyXV9QSXwyX1NRUlRQSXxFfExOKD86MnwxMCl8TE9HKD86MnwxMClFP3xQSSg/Ol9bMjRdKT98U1FSVCg/OjFfMnwyKSkoPzpfRnxfSCk/fE5BTnwoPzpVQ0hBUnxVSU5UfFVMT05HfFVTSFJUKV9NQVgpXGIvLGFsaWFzOiJjb25zdGFudCJ9fSksaS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJvcGVuY2wiLCJjbGFzcy1uYW1lIix7ImJ1aWx0aW4tdHlwZSI6e3BhdHRlcm46L1xiKD86X2NsXyg/OmNvbW1hbmRfcXVldWV8Y29udGV4dHxkZXZpY2VfaWR8ZXZlbnR8a2VybmVsfG1lbXxwbGF0Zm9ybV9pZHxwcm9ncmFtfHNhbXBsZXIpfGNsXyg/OmltYWdlX2Zvcm1hdHxtZW1fZmVuY2VfZmxhZ3MpfGNsa19ldmVudF90fGV2ZW50X3R8aW1hZ2UoPzoxZF8oPzphcnJheV98YnVmZmVyXyk/dHwyZF8oPzphcnJheV8oPzpkZXB0aF98bXNhYV9kZXB0aF98bXNhYV8pP3xkZXB0aF98bXNhYV9kZXB0aF98bXNhYV8pP3R8M2RfdCl8aW50cHRyX3R8bmRyYW5nZV90fHB0cmRpZmZfdHxxdWV1ZV90fHJlc2VydmVfaWRfdHxzYW1wbGVyX3R8c2l6ZV90fHVpbnRwdHJfdClcYi8sYWxpYXM6ImtleXdvcmQifX0pO3ZhciBsPXsidHlwZS1vcGVuY2wtaG9zdCI6e3BhdHRlcm46L1xiKD86Y2xfKD86R0xlbnVtfEdMaW50fEdMdWlufGFkZHJlc3NpbmdfbW9kZXxiaXRmaWVsZHxib29sfGJ1ZmZlcl9jcmVhdGVfdHlwZXxidWlsZF9zdGF0dXN8Y2hhbm5lbF8oPzpvcmRlcnx0eXBlKXwoPzp1Pyg/OmNoYXJ8aW50fGxvbmd8c2hvcnQpfGRvdWJsZXxmbG9hdCkoPzoyfDN8NHw4fDE2KT98Y29tbWFuZF8oPzpxdWV1ZSg/Ol9pbmZvfF9wcm9wZXJ0aWVzKT98dHlwZSl8Y29udGV4dCg/Ol9pbmZvfF9wcm9wZXJ0aWVzKT98ZGV2aWNlXyg/OmV4ZWNfY2FwYWJpbGl0aWVzfGZwX2NvbmZpZ3xpZHxpbmZvfGxvY2FsX21lbV90eXBlfG1lbV9jYWNoZV90eXBlfHR5cGUpfCg/OmV2ZW50fHNhbXBsZXIpKD86X2luZm8pP3xmaWx0ZXJfbW9kZXxoYWxmfGltYWdlX2luZm98a2VybmVsKD86X2luZm98X3dvcmtfZ3JvdXBfaW5mbyk/fG1hcF9mbGFnc3xtZW0oPzpfZmxhZ3N8X2luZm98X29iamVjdF90eXBlKT98cGxhdGZvcm1fKD86aWR8aW5mbyl8cHJvZmlsaW5nX2luZm98cHJvZ3JhbSg/Ol9idWlsZF9pbmZvfF9pbmZvKT8pKVxiLyxhbGlhczoia2V5d29yZCJ9LCJib29sZWFuLW9wZW5jbC1ob3N0Ijp7cGF0dGVybjovXGJDTF8oPzpGQUxTRXxUUlVFKVxiLyxhbGlhczoiYm9vbGVhbiJ9LCJjb25zdGFudC1vcGVuY2wtaG9zdCI6e3BhdHRlcm46L1xiQ0xfKD86QXxBQkdSfEFERFJFU1NfKD86Q0xBTVAoPzpfVE9fRURHRSk/fE1JUlJPUkVEX1JFUEVBVHxOT05FfFJFUEVBVCl8QVJHQnxCR1JBfEJMT0NLSU5HfEJVRkZFUl9DUkVBVEVfVFlQRV9SRUdJT058QlVJTERfKD86RVJST1J8SU5fUFJPR1JFU1N8Tk9ORXxQUk9HUkFNX0ZBSUxVUkV8U1VDQ0VTUyl8Q09NTUFORF8oPzpBQ1FVSVJFX0dMX09CSkVDVFN8QkFSUklFUnxDT1BZXyg/OkJVRkZFUig/Ol9SRUNUfF9UT19JTUFHRSk/fElNQUdFKD86X1RPX0JVRkZFUik/KXxGSUxMXyg/OkJVRkZFUnxJTUFHRSl8TUFQKD86X0JVRkZFUnxfSU1BR0UpfE1BUktFUnxNSUdSQVRFKD86X1NWTSk/X01FTV9PQkpFQ1RTfE5BVElWRV9LRVJORUx8TkRSQU5HRV9LRVJORUx8UkVBRF8oPzpCVUZGRVIoPzpfUkVDVCk/fElNQUdFKXxSRUxFQVNFX0dMX09CSkVDVFN8U1ZNXyg/OkZSRUV8TUFQfE1FTUNQWXxNRU1GSUxMfFVOTUFQKXxUQVNLfFVOTUFQX01FTV9PQkpFQ1R8VVNFUnxXUklURV8oPzpCVUZGRVIoPzpfUkVDVCk/fElNQUdFKSl8Q09NUElMRVJfTk9UX0FWQUlMQUJMRXxDT01QSUxFX1BST0dSQU1fRkFJTFVSRXxDT01QTEVURXxDT05URVhUXyg/OkRFVklDRVN8SU5URVJPUF9VU0VSX1NZTkN8TlVNX0RFVklDRVN8UExBVEZPUk18UFJPUEVSVElFU3xSRUZFUkVOQ0VfQ09VTlQpfERFUFRIKD86X1NURU5DSUwpP3xERVZJQ0VfKD86QUREUkVTU19CSVRTfEFGRklOSVRZX0RPTUFJTl8oPzpMWzEtNF1fQ0FDSEV8TkVYVF9QQVJUSVRJT05BQkxFfE5VTUEpfEFWQUlMQUJMRXxCVUlMVF9JTl9LRVJORUxTfENPTVBJTEVSX0FWQUlMQUJMRXxET1VCTEVfRlBfQ09ORklHfEVORElBTl9MSVRUTEV8RVJST1JfQ09SUkVDVElPTl9TVVBQT1JUfEVYRUNVVElPTl9DQVBBQklMSVRJRVN8RVhURU5TSU9OU3xHTE9CQUxfKD86TUVNXyg/OkNBQ0hFTElORV9TSVpFfENBQ0hFX1NJWkV8Q0FDSEVfVFlQRXxTSVpFKXxWQVJJQUJMRV9QUkVGRVJSRURfVE9UQUxfU0laRSl8SE9TVF9VTklGSUVEX01FTU9SWXxJTF9WRVJTSU9OfElNQUdFKD86MkRfTUFYXyg/OkhFSUdIVHxXSURUSCl8M0RfTUFYXyg/OkRFUFRIfEhFSUdIVHxXSURUSCl8X0JBU0VfQUREUkVTU19BTElHTk1FTlR8X01BWF9BUlJBWV9TSVpFfF9NQVhfQlVGRkVSX1NJWkV8X1BJVENIX0FMSUdOTUVOVHxfU1VQUE9SVCl8TElOS0VSX0FWQUlMQUJMRXxMT0NBTF9NRU1fU0laRXxMT0NBTF9NRU1fVFlQRXxNQVhfKD86Q0xPQ0tfRlJFUVVFTkNZfENPTVBVVEVfVU5JVFN8Q09OU1RBTlRfQVJHU3xDT05TVEFOVF9CVUZGRVJfU0laRXxHTE9CQUxfVkFSSUFCTEVfU0laRXxNRU1fQUxMT0NfU0laRXxOVU1fU1VCX0dST1VQU3xPTl9ERVZJQ0VfKD86RVZFTlRTfFFVRVVFUyl8UEFSQU1FVEVSX1NJWkV8UElQRV9BUkdTfFJFQURfSU1BR0VfQVJHU3xSRUFEX1dSSVRFX0lNQUdFX0FSR1N8U0FNUExFUlN8V09SS19HUk9VUF9TSVpFfFdPUktfSVRFTV9ESU1FTlNJT05TfFdPUktfSVRFTV9TSVpFU3xXUklURV9JTUFHRV9BUkdTKXxNRU1fQkFTRV9BRERSX0FMSUdOfE1JTl9EQVRBX1RZUEVfQUxJR05fU0laRXxOQU1FfE5BVElWRV9WRUNUT1JfV0lEVEhfKD86Q0hBUnxET1VCTEV8RkxPQVR8SEFMRnxJTlR8TE9OR3xTSE9SVCl8Tk9UXyg/OkFWQUlMQUJMRXxGT1VORCl8T1BFTkNMX0NfVkVSU0lPTnxQQVJFTlRfREVWSUNFfFBBUlRJVElPTl8oPzpBRkZJTklUWV9ET01BSU58QllfQUZGSU5JVFlfRE9NQUlOfEJZX0NPVU5UU3xCWV9DT1VOVFNfTElTVF9FTkR8RVFVQUxMWXxGQUlMRUR8TUFYX1NVQl9ERVZJQ0VTfFBST1BFUlRJRVN8VFlQRSl8UElQRV9NQVhfKD86QUNUSVZFX1JFU0VSVkFUSU9OU3xQQUNLRVRfU0laRSl8UExBVEZPUk18UFJFRkVSUkVEXyg/OkdMT0JBTF9BVE9NSUNfQUxJR05NRU5UfElOVEVST1BfVVNFUl9TWU5DfExPQ0FMX0FUT01JQ19BTElHTk1FTlR8UExBVEZPUk1fQVRPTUlDX0FMSUdOTUVOVHxWRUNUT1JfV0lEVEhfKD86Q0hBUnxET1VCTEV8RkxPQVR8SEFMRnxJTlR8TE9OR3xTSE9SVCkpfFBSSU5URl9CVUZGRVJfU0laRXxQUk9GSUxFfFBST0ZJTElOR19USU1FUl9SRVNPTFVUSU9OfFFVRVVFXyg/Ok9OXyg/OkRFVklDRV8oPzpNQVhfU0laRXxQUkVGRVJSRURfU0laRXxQUk9QRVJUSUVTKXxIT1NUX1BST1BFUlRJRVMpfFBST1BFUlRJRVMpfFJFRkVSRU5DRV9DT1VOVHxTSU5HTEVfRlBfQ09ORklHfFNVQl9HUk9VUF9JTkRFUEVOREVOVF9GT1JXQVJEX1BST0dSRVNTfFNWTV8oPzpBVE9NSUNTfENBUEFCSUxJVElFU3xDT0FSU0VfR1JBSU5fQlVGRkVSfEZJTkVfR1JBSU5fQlVGRkVSfEZJTkVfR1JBSU5fU1lTVEVNKXxUWVBFKD86X0FDQ0VMRVJBVE9SfF9BTEx8X0NQVXxfQ1VTVE9NfF9ERUZBVUxUfF9HUFUpP3xWRU5ET1IoPzpfSUQpP3xWRVJTSU9OKXxEUklWRVJfVkVSU0lPTnxFVkVOVF8oPzpDT01NQU5EXyg/OkVYRUNVVElPTl9TVEFUVVN8UVVFVUV8VFlQRSl8Q09OVEVYVHxSRUZFUkVOQ0VfQ09VTlQpfEVYRUNfKD86S0VSTkVMfE5BVElWRV9LRVJORUx8U1RBVFVTX0VSUk9SX0ZPUl9FVkVOVFNfSU5fV0FJVF9MSVNUKXxGSUxURVJfKD86TElORUFSfE5FQVJFU1QpfEZMT0FUfEZQXyg/OkNPUlJFQ1RMWV9ST1VOREVEX0RJVklERV9TUVJUfERFTk9STXxGTUF8SU5GX05BTnxST1VORF9UT19JTkZ8Uk9VTkRfVE9fTkVBUkVTVHxST1VORF9UT19aRVJPfFNPRlRfRkxPQVQpfEdMT0JBTHxIQUxGX0ZMT0FUfElNQUdFXyg/OkFSUkFZX1NJWkV8QlVGRkVSfERFUFRIfEVMRU1FTlRfU0laRXxGT1JNQVR8Rk9STUFUX01JU01BVENIfEZPUk1BVF9OT1RfU1VQUE9SVEVEfEhFSUdIVHxOVU1fTUlQX0xFVkVMU3xOVU1fU0FNUExFU3xST1dfUElUQ0h8U0xJQ0VfUElUQ0h8V0lEVEgpfElOVEVOU0lUWXxJTlZBTElEXyg/OkFSR19JTkRFWHxBUkdfU0laRXxBUkdfVkFMVUV8QklOQVJZfEJVRkZFUl9TSVpFfEJVSUxEX09QVElPTlN8Q09NTUFORF9RVUVVRXxDT01QSUxFUl9PUFRJT05TfENPTlRFWFR8REVWSUNFfERFVklDRV9QQVJUSVRJT05fQ09VTlR8REVWSUNFX1FVRVVFfERFVklDRV9UWVBFfEVWRU5UfEVWRU5UX1dBSVRfTElTVHxHTE9CQUxfT0ZGU0VUfEdMT0JBTF9XT1JLX1NJWkV8R0xfT0JKRUNUfEhPU1RfUFRSfElNQUdFX0RFU0NSSVBUT1J8SU1BR0VfRk9STUFUX0RFU0NSSVBUT1J8SU1BR0VfU0laRXxLRVJORUx8S0VSTkVMX0FSR1N8S0VSTkVMX0RFRklOSVRJT058S0VSTkVMX05BTUV8TElOS0VSX09QVElPTlN8TUVNX09CSkVDVHxNSVBfTEVWRUx8T1BFUkFUSU9OfFBJUEVfU0laRXxQTEFURk9STXxQUk9HUkFNfFBST0dSQU1fRVhFQ1VUQUJMRXxQUk9QRVJUWXxRVUVVRV9QUk9QRVJUSUVTfFNBTVBMRVJ8VkFMVUV8V09SS19ESU1FTlNJT058V09SS19HUk9VUF9TSVpFfFdPUktfSVRFTV9TSVpFKXxLRVJORUxfKD86QVJHXyg/OkFDQ0VTU18oPzpOT05FfFFVQUxJRklFUnxSRUFEX09OTFl8UkVBRF9XUklURXxXUklURV9PTkxZKXxBRERSRVNTXyg/OkNPTlNUQU5UfEdMT0JBTHxMT0NBTHxQUklWQVRFfFFVQUxJRklFUil8SU5GT19OT1RfQVZBSUxBQkxFfE5BTUV8VFlQRV8oPzpDT05TVHxOQU1FfE5PTkV8UElQRXxRVUFMSUZJRVJ8UkVTVFJJQ1R8Vk9MQVRJTEUpKXxBVFRSSUJVVEVTfENPTVBJTEVfTlVNX1NVQl9HUk9VUFN8Q09NUElMRV9XT1JLX0dST1VQX1NJWkV8Q09OVEVYVHxFWEVDX0lORk9fU1ZNX0ZJTkVfR1JBSU5fU1lTVEVNfEVYRUNfSU5GT19TVk1fUFRSU3xGVU5DVElPTl9OQU1FfEdMT0JBTF9XT1JLX1NJWkV8TE9DQUxfTUVNX1NJWkV8TE9DQUxfU0laRV9GT1JfU1VCX0dST1VQX0NPVU5UfE1BWF9OVU1fU1VCX0dST1VQU3xNQVhfU1VCX0dST1VQX1NJWkVfRk9SX05EUkFOR0V8TlVNX0FSR1N8UFJFRkVSUkVEX1dPUktfR1JPVVBfU0laRV9NVUxUSVBMRXxQUklWQVRFX01FTV9TSVpFfFBST0dSQU18UkVGRVJFTkNFX0NPVU5UfFNVQl9HUk9VUF9DT1VOVF9GT1JfTkRSQU5HRXxXT1JLX0dST1VQX1NJWkUpfExJTktFUl9OT1RfQVZBSUxBQkxFfExJTktfUFJPR1JBTV9GQUlMVVJFfExPQ0FMfExVTUlOQU5DRXxNQVBfKD86RkFJTFVSRXxSRUFEfFdSSVRFfFdSSVRFX0lOVkFMSURBVEVfUkVHSU9OKXxNRU1fKD86QUxMT0NfSE9TVF9QVFJ8QVNTT0NJQVRFRF9NRU1PQkpFQ1R8Q09OVEVYVHxDT1BZX0hPU1RfUFRSfENPUFlfT1ZFUkxBUHxGTEFHU3xIT1NUX05PX0FDQ0VTU3xIT1NUX1BUUnxIT1NUX1JFQURfT05MWXxIT1NUX1dSSVRFX09OTFl8S0VSTkVMX1JFQURfQU5EX1dSSVRFfE1BUF9DT1VOVHxPQkpFQ1RfKD86QUxMT0NBVElPTl9GQUlMVVJFfEJVRkZFUnxJTUFHRTFEfElNQUdFMURfQVJSQVl8SU1BR0UxRF9CVUZGRVJ8SU1BR0UyRHxJTUFHRTJEX0FSUkFZfElNQUdFM0R8UElQRSl8T0ZGU0VUfFJFQURfT05MWXxSRUFEX1dSSVRFfFJFRkVSRU5DRV9DT1VOVHxTSVpFfFNWTV9BVE9NSUNTfFNWTV9GSU5FX0dSQUlOX0JVRkZFUnxUWVBFfFVTRVNfU1ZNX1BPSU5URVJ8VVNFX0hPU1RfUFRSfFdSSVRFX09OTFkpfE1JR1JBVEVfTUVNX09CSkVDVF8oPzpDT05URU5UX1VOREVGSU5FRHxIT1NUKXxNSVNBTElHTkVEX1NVQl9CVUZGRVJfT0ZGU0VUfE5PTkV8Tk9OX0JMT0NLSU5HfE9VVF9PRl8oPzpIT1NUX01FTU9SWXxSRVNPVVJDRVMpfFBJUEVfKD86TUFYX1BBQ0tFVFN8UEFDS0VUX1NJWkUpfFBMQVRGT1JNXyg/OkVYVEVOU0lPTlN8SE9TVF9USU1FUl9SRVNPTFVUSU9OfE5BTUV8UFJPRklMRXxWRU5ET1J8VkVSU0lPTil8UFJPRklMSU5HXyg/OkNPTU1BTkRfKD86Q09NUExFVEV8RU5EfFFVRVVFRHxTVEFSVHxTVUJNSVQpfElORk9fTk9UX0FWQUlMQUJMRSl8UFJPR1JBTV8oPzpCSU5BUklFU3xCSU5BUllfU0laRVN8QklOQVJZX1RZUEUoPzpfQ09NUElMRURfT0JKRUNUfF9FWEVDVVRBQkxFfF9MSUJSQVJZfF9OT05FKT98QlVJTERfKD86R0xPQkFMX1ZBUklBQkxFX1RPVEFMX1NJWkV8TE9HfE9QVElPTlN8U1RBVFVTKXxDT05URVhUfERFVklDRVN8SUx8S0VSTkVMX05BTUVTfE5VTV9ERVZJQ0VTfE5VTV9LRVJORUxTfFJFRkVSRU5DRV9DT1VOVHxTT1VSQ0UpfFFVRVVFRHxRVUVVRV8oPzpDT05URVhUfERFVklDRXxERVZJQ0VfREVGQVVMVHxPTl9ERVZJQ0V8T05fREVWSUNFX0RFRkFVTFR8T1VUX09GX09SREVSX0VYRUNfTU9ERV9FTkFCTEV8UFJPRklMSU5HX0VOQUJMRXxQUk9QRVJUSUVTfFJFRkVSRU5DRV9DT1VOVHxTSVpFKXxSfFJBfFJFQURfKD86T05MWXxXUklURSlfQ0FDSEV8Ukd8UkdCfFJHQkF8UkdCeHxSR3h8UlVOTklOR3xSeHxTQU1QTEVSXyg/OkFERFJFU1NJTkdfTU9ERXxDT05URVhUfEZJTFRFUl9NT0RFfExPRF9NQVh8TE9EX01JTnxNSVBfRklMVEVSX01PREV8Tk9STUFMSVpFRF9DT09SRFN8UkVGRVJFTkNFX0NPVU5UKXwoPzpVTik/U0lHTkVEX0lOVCg/Ojh8MTZ8MzIpfFNOT1JNX0lOVCg/Ojh8MTYpfFNVQk1JVFRFRHxTVUNDRVNTfFVOT1JNX0lOVCg/Ojh8MTZ8MjR8XzEwMTAxMHxfMTAxMDEwXzIpfFVOT1JNX1NIT1JUXyg/OjU1NXw1NjUpfFZFUlNJT05fKD86MV8wfDFfMXwxXzJ8Ml8wfDJfMSl8c0JHUkF8c1JHQnxzUkdCQXxzUkdCeClcYi8sYWxpYXM6ImNvbnN0YW50In0sImZ1bmN0aW9uLW9wZW5jbC1ob3N0Ijp7cGF0dGVybjovXGJjbCg/OkJ1aWxkUHJvZ3JhbXxDbG9uZUtlcm5lbHxDb21waWxlUHJvZ3JhbXxDcmVhdGUoPzpCdWZmZXJ8Q29tbWFuZFF1ZXVlKD86V2l0aFByb3BlcnRpZXMpP3xDb250ZXh0fENvbnRleHRGcm9tVHlwZXxJbWFnZXxJbWFnZTJEfEltYWdlM0R8S2VybmVsfEtlcm5lbHNJblByb2dyYW18UGlwZXxQcm9ncmFtV2l0aCg/OkJpbmFyeXxCdWlsdEluS2VybmVsc3xJTHxTb3VyY2UpfFNhbXBsZXJ8U2FtcGxlcldpdGhQcm9wZXJ0aWVzfFN1YkJ1ZmZlcnxTdWJEZXZpY2VzfFVzZXJFdmVudCl8RW5xdWV1ZSg/Oig/OkJhcnJpZXJ8TWFya2VyKSg/OldpdGhXYWl0TGlzdCk/fENvcHkoPzpCdWZmZXIoPzpSZWN0fFRvSW1hZ2UpP3xJbWFnZSg/OlRvQnVmZmVyKT8pfCg/OkZpbGx8TWFwKSg/OkJ1ZmZlcnxJbWFnZSl8TWlncmF0ZU1lbU9iamVjdHN8TkRSYW5nZUtlcm5lbHxOYXRpdmVLZXJuZWx8KD86UmVhZHxXcml0ZSkoPzpCdWZmZXIoPzpSZWN0KT98SW1hZ2UpfFNWTSg/OkZyZWV8TWFwfE1lbUZpbGx8TWVtY3B5fE1pZ3JhdGVNZW18VW5tYXApfFRhc2t8VW5tYXBNZW1PYmplY3R8V2FpdEZvckV2ZW50cyl8RmluaXNofEZsdXNofEdldCg/OkNvbW1hbmRRdWV1ZUluZm98Q29udGV4dEluZm98RGV2aWNlKD86QW5kSG9zdFRpbWVyfElEc3xJbmZvKXxFdmVudCg/OlByb2ZpbGluZyk/SW5mb3xFeHRlbnNpb25GdW5jdGlvbkFkZHJlc3MoPzpGb3JQbGF0Zm9ybSk/fEhvc3RUaW1lcnxJbWFnZUluZm98S2VybmVsKD86QXJnSW5mb3xJbmZvfFN1Ykdyb3VwSW5mb3xXb3JrR3JvdXBJbmZvKXxNZW1PYmplY3RJbmZvfFBpcGVJbmZvfFBsYXRmb3JtKD86SURzfEluZm8pfFByb2dyYW0oPzpCdWlsZCk/SW5mb3xTYW1wbGVySW5mb3xTdXBwb3J0ZWRJbWFnZUZvcm1hdHMpfExpbmtQcm9ncmFtfCg/OlJlbGVhc2V8UmV0YWluKSg/OkNvbW1hbmRRdWV1ZXxDb250ZXh0fERldmljZXxFdmVudHxLZXJuZWx8TWVtT2JqZWN0fFByb2dyYW18U2FtcGxlcil8U1ZNKD86QWxsb2N8RnJlZSl8U2V0KD86Q29tbWFuZFF1ZXVlUHJvcGVydHl8RGVmYXVsdERldmljZUNvbW1hbmRRdWV1ZXxFdmVudENhbGxiYWNrfEtlcm5lbHxLZXJuZWwoPzpBcmcoPzpTVk1Qb2ludGVyKT98RXhlY0luZm8pfE1lbU9iamVjdERlc3RydWN0b3JDYWxsYmFja3xVc2VyRXZlbnRTdGF0dXMpfFVubG9hZCg/OlBsYXRmb3JtKT9Db21waWxlcnxXYWl0Rm9yRXZlbnRzKVxiLyxhbGlhczoiZnVuY3Rpb24ifX07aS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjIiwia2V5d29yZCIsbCksaS5sYW5ndWFnZXMuY3BwJiYobFsidHlwZS1vcGVuY2wtaG9zdC1jcHAiXT17cGF0dGVybjovXGIoPzpCdWZmZXJ8QnVmZmVyR0x8QnVmZmVyUmVuZGVyR0x8Q29tbWFuZFF1ZXVlfENvbnRleHR8RGV2aWNlfERldmljZUNvbW1hbmRRdWV1ZXxFbnF1ZXVlQXJnc3xFdmVudHxJbWFnZXxJbWFnZTFEfEltYWdlMURBcnJheXxJbWFnZTFEQnVmZmVyfEltYWdlMkR8SW1hZ2UyREFycmF5fEltYWdlMkRHTHxJbWFnZTNEfEltYWdlM0RHTHxJbWFnZUZvcm1hdHxJbWFnZUdMfEtlcm5lbHxLZXJuZWxGdW5jdG9yfExvY2FsU3BhY2VBcmd8TWVtb3J5fE5EUmFuZ2V8UGlwZXxQbGF0Zm9ybXxQcm9ncmFtfFNWTUFsbG9jYXRvcnxTVk1UcmFpdEF0b21pY3xTVk1UcmFpdENvYXJzZXxTVk1UcmFpdEZpbmV8U1ZNVHJhaXRSZWFkT25seXxTVk1UcmFpdFJlYWRXcml0ZXxTVk1UcmFpdFdyaXRlT25seXxTYW1wbGVyfFVzZXJFdmVudClcYi8sYWxpYXM6ImtleXdvcmQifSxpLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNwcCIsImtleXdvcmQiLGwpKX0pKGEpfXJldHVybiBwZ312YXIgZmcsV187ZnVuY3Rpb24gWUYoKXtpZihXXylyZXR1cm4gZmc7V189MSxmZz1lLGUuZGlzcGxheU5hbWU9Im9wZW5xYXNtIixlLmFsaWFzZXM9WyJxYXNtIl07ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5vcGVucWFzbT17Y29tbWVudDovXC9cKltcc1xTXSo/XCpcL3xcL1wvLiovLHN0cmluZzp7cGF0dGVybjovIlteIlxyXG5cdF0qInwnW14nXHJcblx0XSonLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86Q1h8T1BFTlFBU018VXxiYXJyaWVyfGJveGFzfGJveHRvfGJyZWFrfGNvbnN0fGNvbnRpbnVlfGN0cmx8ZGVmfGRlZmNhbHxkZWZjYWxncmFtbWFyfGRlbGF5fGVsc2V8ZW5kfGZvcnxnYXRlfGdwaGFzZXxpZnxpbnxpbmNsdWRlfGludnxrZXJuZWx8bGVuZ3Rob2Z8bGV0fG1lYXN1cmV8cG93fHJlc2V0fHJldHVybnxyb3Rhcnl8c3RyZXRjaGluZnx3aGlsZSlcYnwjcHJhZ21hXGIvLCJjbGFzcy1uYW1lIjovXGIoPzphbmdsZXxiaXR8Ym9vbHxjcmVnfGZpeGVkfGZsb2F0fGludHxsZW5ndGh8cXJlZ3xxdWJpdHxzdHJldGNofHVpbnQpXGIvLGZ1bmN0aW9uOi9cYig/OmNvc3xleHB8bG58cG9wY291bnR8cm90bHxyb3RyfHNpbnxzcXJ0fHRhbilcYig/PVxzKlwoKS8sY29uc3RhbnQ6L1xiKD86ZXVsZXJ8cGl8dGF1KVxifM+AfPCdnI984oSHLyxudW1iZXI6e3BhdHRlcm46LyhefFteLlx3JF0pKD86XGQrKD86XC5cZCopP3xcLlxkKykoPzplWystXT9cZCspPyg/OmR0fG5zfHVzfMK1c3xtc3xzKT8vaSxsb29rYmVoaW5kOiEwfSxvcGVyYXRvcjovLT58Pj49P3w8PD0/fCYmfFx8XHx8XCtcK3wtLXxbIT08PiZ8fl4rXC0qLyVdPT98QC8scHVuY3R1YXRpb246L1soKXt9XFtcXTssOi5dL30sbi5sYW5ndWFnZXMucWFzbT1uLmxhbmd1YWdlcy5vcGVucWFzbX1yZXR1cm4gZmd9dmFyIGdnLFhfO2Z1bmN0aW9uIEtGKCl7aWYoWF8pcmV0dXJuIGdnO1hfPTEsZ2c9ZSxlLmRpc3BsYXlOYW1lPSJveiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMub3o9e2NvbW1lbnQ6e3BhdHRlcm46L1wvXCpbXHNcU10qP1wqXC98JS4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXXxcXFtcc1xTXSkqIi8sZ3JlZWR5OiEwfSxhdG9tOntwYXR0ZXJuOi8nKD86W14nXFxdfFxcW1xzXFNdKSonLyxncmVlZHk6ITAsYWxpYXM6ImJ1aWx0aW4ifSxrZXl3b3JkOi9cJHxcW1xdfFxiKD86X3xhdHxhdHRyfGNhc2V8Y2F0Y2h8Y2hvaWNlfGNsYXNzfGNvbmR8ZGVjbGFyZXxkZWZpbmV8ZGlzfGVsc2UoPzpjYXNlfGlmKT98ZW5kfGV4cG9ydHxmYWlsfGZhbHNlfGZlYXR8ZmluYWxseXxmcm9tfGZ1bnxmdW5jdG9yfGlmfGltcG9ydHxpbnxsb2NhbHxsb2NrfG1ldGh8bmlsfG5vdHxvZnxvcnxwcmVwYXJlfHByb2N8cHJvcHxyYWlzZXxyZXF1aXJlfHNlbGZ8c2tpcHx0aGVufHRocmVhZHx0cnVlfHRyeXx1bml0KVxiLyxmdW5jdGlvbjpbL1xiW2Etel1bQS1aYS16XGRdKig/PVwoKS8se3BhdHRlcm46LyhceylbQS1aXVtBLVphLXpcZF0qXGIvLGxvb2tiZWhpbmQ6ITB9XSxudW1iZXI6L1xiKD86MFtieF1bXGRhLWZdK3xcZCsoPzpcLlxkKik/KD86ZX4/XGQrKT8pXGJ8Jig/OlteXFxdfFxcKD86XGR7M318LikpL2ksdmFyaWFibGU6L2AoPzpbXmBcXF18XFwuKStgLywiYXR0ci1uYW1lIjovXGJcdysoPz1bIFx0XSo6KD8hWzo9XSkpLyxvcGVyYXRvcjovOig/Oj18Ojo/KXw8Wy06PV0/fD0oPzo9fDw/Oj8pfD49Pzo/fFxcPTo/fCEhP3xbfCMrXC0qXC8sfl5AXXxcYig/OmFuZHRoZW58ZGl2fG1vZHxvcmVsc2UpXGIvLHB1bmN0dWF0aW9uOi9bXFtcXSgpe30uOjs/XS99fXJldHVybiBnZ312YXIgbWcsWl87ZnVuY3Rpb24gV0YoKXtpZihaXylyZXR1cm4gbWc7Wl89MSxtZz1lLGUuZGlzcGxheU5hbWU9InBhcmlncCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMucGFyaWdwPXtjb21tZW50Oi9cL1wqW1xzXFNdKj9cKlwvfFxcXFwuKi8sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxcclxuXXxcXC4pKiIvLGdyZWVkeTohMH0sa2V5d29yZDooZnVuY3Rpb24oKXt2YXIgYT1bImJyZWFrcG9pbnQiLCJicmVhayIsImRiZ19kb3duIiwiZGJnX2VyciIsImRiZ191cCIsImRiZ194IiwiZm9yY29tcG9zaXRlIiwiZm9yZGl2IiwiZm9yZWxsIiwiZm9ycGFydCIsImZvcnByaW1lIiwiZm9yc3RlcCIsImZvcnN1Ymdyb3VwIiwiZm9ydmVjIiwiZm9yIiwiaWZlcnIiLCJpZiIsImxvY2FsIiwibXkiLCJuZXh0IiwicmV0dXJuIiwidW50aWwiLCJ3aGlsZSJdO3JldHVybiBhPWEubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpLnNwbGl0KCIiKS5qb2luKCIgKiIpfSkuam9pbigifCIpLFJlZ0V4cCgiXFxiKD86IithKyIpXFxiIil9KSgpLGZ1bmN0aW9uOi9cYlx3KD86W1x3IF0qXHcpPyg/PSAqXCgpLyxudW1iZXI6e3BhdHRlcm46LygoPzpcLiAqXC4gKik/KSg/OlxiXGQoPzogKlxkKSooPzogKig/IVwuICpcLilcLig/OiAqXGQpKik/fFwuICpcZCg/OiAqXGQpKikoPzogKmUgKig/OlsrLV0gKik/XGQoPzogKlxkKSopPy9pLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOi9cLiAqXC58WypcLyFdKD86ICo9KT98JSg/OiAqPXwoPzogKiMpPyg/OiAqJykqKT98XCsoPzogKlsrPV0pP3wtKD86ICpbLT0+XSk/fDwoPzogKj58KD86ICo8KT8oPzogKj0pPyk/fD4oPzogKj4pPyg/OiAqPSk/fD0oPzogKj0pezAsMn18XFwoPzogKlwvKT8oPzogKj0pP3wmKD86IComKT98XHwgKlx8fFsnI35eXS8scHVuY3R1YXRpb246L1tcW1xde30oKS4sOjt8XS99fXJldHVybiBtZ312YXIgaGcsUV87ZnVuY3Rpb24gWEYoKXtpZihRXylyZXR1cm4gaGc7UV89MSxoZz1lLGUuZGlzcGxheU5hbWU9InBhcnNlciIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPWEubGFuZ3VhZ2VzLnBhcnNlcj1hLmxhbmd1YWdlcy5leHRlbmQoIm1hcmt1cCIse2tleXdvcmQ6e3BhdHRlcm46LyhefFteXl0pKD86XF4oPzpjYXNlfGV2YWx8Zm9yfGlmfHN3aXRjaHx0aHJvdylcYnxAKD86QkFTRXxDTEFTU3xHRVQoPzpfREVGQVVMVCk/fE9QVElPTlN8U0VUX0RFRkFVTFR8VVNFKVxiKS8sbG9va2JlaGluZDohMH0sdmFyaWFibGU6e3BhdHRlcm46LyhefFteXl0pXEJcJCg/Olx3K3woPz1bLntdKSkoPzooPzpcLnw6Oj8pXHcrKSooPzpcLnw6Oj8pPy8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLnw6Ky99fSxmdW5jdGlvbjp7cGF0dGVybjovKF58W15eXSlcQltAXl1cdysoPzooPzpcLnw6Oj8pXHcrKSooPzpcLnw6Oj8pPy8sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6e3BhdHRlcm46LyheQCkoPzpHRVRffFNFVF8pLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovXC58OisvfX0sZXNjYXBlOntwYXR0ZXJuOi9cXig/OlskXjtAKClcW1xde30iJzpdfCNbYS1mXGRdKikvaSxhbGlhczoiYnVpbHRpbiJ9LHB1bmN0dWF0aW9uOi9bXFtcXSgpe307XS99KTtpPWEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicGFyc2VyIiwia2V5d29yZCIseyJwYXJzZXItY29tbWVudCI6e3BhdHRlcm46LyhccykjLiovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNvbW1lbnQifSxleHByZXNzaW9uOntwYXR0ZXJuOi8oXnxbXl5dKVwoKD86W14oKV18XCgoPzpbXigpXXxcKCg/OlteKCldKSpcKSkqXCkpKlwpLyxncmVlZHk6ITAsbG9va2JlaGluZDohMCxpbnNpZGU6e3N0cmluZzp7cGF0dGVybjovKF58W15eXSkoWyInXSkoPzooPyFcMilbXl5dfFxeW1xzXFNdKSpcMi8sbG9va2JlaGluZDohMH0sa2V5d29yZDppLmtleXdvcmQsdmFyaWFibGU6aS52YXJpYWJsZSxmdW5jdGlvbjppLmZ1bmN0aW9uLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sbnVtYmVyOi9cYig/OjB4W2EtZlxkXSt8XGQrKD86XC5cZCopPyg/OmVbKy1dP1xkKyk/KVxiL2ksZXNjYXBlOmkuZXNjYXBlLG9wZXJhdG9yOi9bfisqXC9cXCVdfCEoPzpcfFx8P3w9KT98JiY/fFx8XHw/fD09fDxbPD1dP3w+Wz49XT98LVtmZF0/fFxiKD86ZGVmfGVxfGdlfGd0fGlufGlzfGxlfGx0fG5lKVxiLyxwdW5jdHVhdGlvbjppLnB1bmN0dWF0aW9ufX19KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImluc2lkZSIsInB1bmN0dWF0aW9uIix7ZXhwcmVzc2lvbjppLmV4cHJlc3Npb24sa2V5d29yZDppLmtleXdvcmQsdmFyaWFibGU6aS52YXJpYWJsZSxmdW5jdGlvbjppLmZ1bmN0aW9uLGVzY2FwZTppLmVzY2FwZSwicGFyc2VyLXB1bmN0dWF0aW9uIjp7cGF0dGVybjppLnB1bmN0dWF0aW9uLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fSxpLnRhZy5pbnNpZGVbImF0dHItdmFsdWUiXSl9KShuKX1yZXR1cm4gaGd9dmFyIGJnLEpfO2Z1bmN0aW9uIFpGKCl7aWYoSl8pcmV0dXJuIGJnO0pfPTEsYmc9ZSxlLmRpc3BsYXlOYW1lPSJwYXNjYWwiLGUuYWxpYXNlcz1bIm9iamVjdHBhc2NhbCJdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMucGFzY2FsPXtkaXJlY3RpdmU6e3BhdHRlcm46L1x7XCRbXHNcU10qP1x9LyxncmVlZHk6ITAsYWxpYXM6WyJtYXJjbyIsInByb3BlcnR5Il19LGNvbW1lbnQ6e3BhdHRlcm46L1woXCpbXHNcU10qP1wqXCl8XHtbXHNcU10qP1x9fFwvXC8uKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46Lyg/OicoPzonJ3xbXidcclxuXSkqJyg/IScpfCNbJiQlXT9bYS1mXGRdKykrfFxeW2Etel0vaSxncmVlZHk6ITB9LGFzbTp7cGF0dGVybjovKFxiYXNtXGIpW1xzXFNdKz8oPz1cYmVuZFxzKls7W10pL2ksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOm51bGx9LGtleXdvcmQ6W3twYXR0ZXJuOi8oXnxbXiZdKVxiKD86YWJzb2x1dGV8YXJyYXl8YXNtfGJlZ2lufGNhc2V8Y29uc3R8Y29uc3RydWN0b3J8ZGVzdHJ1Y3Rvcnxkb3xkb3dudG98ZWxzZXxlbmR8ZmlsZXxmb3J8ZnVuY3Rpb258Z290b3xpZnxpbXBsZW1lbnRhdGlvbnxpbmhlcml0ZWR8aW5saW5lfGludGVyZmFjZXxsYWJlbHxuaWx8b2JqZWN0fG9mfG9wZXJhdG9yfHBhY2tlZHxwcm9jZWR1cmV8cHJvZ3JhbXxyZWNvcmR8cmVpbnRyb2R1Y2V8cmVwZWF0fHNlbGZ8c2V0fHN0cmluZ3x0aGVufHRvfHR5cGV8dW5pdHx1bnRpbHx1c2VzfHZhcnx3aGlsZXx3aXRoKVxiL2ksbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteJl0pXGIoPzpkaXNwb3NlfGV4aXR8ZmFsc2V8bmV3fHRydWUpXGIvaSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W14mXSlcYig/OmNsYXNzfGRpc3BpbnRlcmZhY2V8ZXhjZXB0fGV4cG9ydHN8ZmluYWxpemF0aW9ufGZpbmFsbHl8aW5pdGlhbGl6YXRpb258aW5saW5lfGxpYnJhcnl8b258b3V0fHBhY2tlZHxwcm9wZXJ0eXxyYWlzZXxyZXNvdXJjZXN0cmluZ3x0aHJlYWR2YXJ8dHJ5KVxiL2ksbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteJl0pXGIoPzphYnNvbHV0ZXxhYnN0cmFjdHxhbGlhc3xhc3NlbWJsZXJ8Yml0cGFja2VkfGJyZWFrfGNkZWNsfGNvbnRpbnVlfGNwcGRlY2x8Y3ZhcnxkZWZhdWx0fGRlcHJlY2F0ZWR8ZHluYW1pY3xlbnVtZXJhdG9yfGV4cGVyaW1lbnRhbHxleHBvcnR8ZXh0ZXJuYWx8ZmFyfGZhcjE2fGZvcndhcmR8Z2VuZXJpY3xoZWxwZXJ8aW1wbGVtZW50c3xpbmRleHxpbnRlcnJ1cHR8aW9jaGVja3N8bG9jYWx8bWVzc2FnZXxuYW1lfG5lYXJ8bm9kZWZhdWx0fG5vcmV0dXJufG5vc3RhY2tmcmFtZXxvbGRmcGNjYWxsfG90aGVyd2lzZXxvdmVybG9hZHxvdmVycmlkZXxwYXNjYWx8cGxhdGZvcm18cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHB1Ymxpc2hlZHxyZWFkfHJlZ2lzdGVyfHJlaW50cm9kdWNlfHJlc3VsdHxzYWZlY2FsbHxzYXZlcmVnaXN0ZXJzfHNvZnRmbG9hdHxzcGVjaWFsaXplfHN0YXRpY3xzdGRjYWxsfHN0b3JlZHxzdHJpY3R8dW5hbGlnbmVkfHVuaW1wbGVtZW50ZWR8dmFyYXJnc3x2aXJ0dWFsfHdyaXRlKVxiL2ksbG9va2JlaGluZDohMH1dLG51bWJlcjpbLyg/OlsmJV1cZCt8XCRbYS1mXGRdKykvaSwvXGJcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT8vaV0sb3BlcmF0b3I6Wy9cLlwufFwqXCp8Oj18PFs8PT5dP3w+Wz49XT98WytcLSpcL109P3xbQF49XS8se3BhdHRlcm46LyhefFteJl0pXGIoPzphbmR8YXN8ZGl2fGV4Y2x1ZGV8aW58aW5jbHVkZXxpc3xtb2R8bm90fG9yfHNobHxzaHJ8eG9yKVxiLyxsb29rYmVoaW5kOiEwfV0scHVuY3R1YXRpb246L1woXC58XC5cKXxbKClcW1xdOjssLl0vfSxuLmxhbmd1YWdlcy5wYXNjYWwuYXNtLmluc2lkZT1uLmxhbmd1YWdlcy5leHRlbmQoInBhc2NhbCIse2FzbTp2b2lkIDAsa2V5d29yZDp2b2lkIDAsb3BlcmF0b3I6dm9pZCAwfSksbi5sYW5ndWFnZXMub2JqZWN0cGFzY2FsPW4ubGFuZ3VhZ2VzLnBhc2NhbH1yZXR1cm4gYmd9dmFyIHlnLGVSO2Z1bmN0aW9uIFFGKCl7aWYoZVIpcmV0dXJuIHlnO2VSPTEseWc9ZSxlLmRpc3BsYXlOYW1lPSJwYXNjYWxpZ28iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vXCgoPzpbXigpXXxcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpKSpcKS8uc291cmNlLGw9Lyg/OlxiXHcrKD86PGJyYWNlcz4pP3w8YnJhY2VzPikvLnNvdXJjZS5yZXBsYWNlKC88YnJhY2VzPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSx1PWEubGFuZ3VhZ2VzLnBhc2NhbGlnbz17Y29tbWVudDovXChcKltcc1xTXSs/XCpcKXxcL1wvLiovLHN0cmluZzp7cGF0dGVybjovKFsiJ2BdKSg/OlxcW1xzXFNdfCg/IVwxKVteXFxdKSpcMXxcXlthLXpdL2ksZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOlJlZ0V4cCgvKFxidHlwZVxzK1x3K1xzK2lzXHMrKTx0eXBlPi8uc291cmNlLnJlcGxhY2UoLzx0eXBlPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGx9KSwiaSIpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm51bGx9LHtwYXR0ZXJuOlJlZ0V4cCgvPHR5cGU+KD89XHMraXNcYikvLnNvdXJjZS5yZXBsYWNlKC88dHlwZT4vZyxmdW5jdGlvbigpe3JldHVybiBsfSksImkiKSxpbnNpZGU6bnVsbH0se3BhdHRlcm46UmVnRXhwKC8oOlxzKik8dHlwZT4vLnNvdXJjZS5yZXBsYWNlKC88dHlwZT4vZyxmdW5jdGlvbigpe3JldHVybiBsfSkpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm51bGx9XSxrZXl3b3JkOntwYXR0ZXJuOi8oXnxbXiZdKVxiKD86YmVnaW58YmxvY2t8Y2FzZXxjb25zdHxlbHNlfGVuZHxmYWlsfGZvcnxmcm9tfGZ1bmN0aW9ufGlmfGlzfG5pbHxvZnxyZW1vdmV8cmV0dXJufHNraXB8dGhlbnx0eXBlfHZhcnx3aGlsZXx3aXRoKVxiL2ksbG9va2JlaGluZDohMH0sYm9vbGVhbjp7cGF0dGVybjovKF58W14mXSlcYig/OkZhbHNlfFRydWUpXGIvaSxsb29rYmVoaW5kOiEwfSxidWlsdGluOntwYXR0ZXJuOi8oXnxbXiZdKVxiKD86Ym9vbHxpbnR8bGlzdHxtYXB8bmF0fHJlY29yZHxzdHJpbmd8dW5pdClcYi9pLGxvb2tiZWhpbmQ6ITB9LGZ1bmN0aW9uOi9cYlx3Kyg/PVxzKlwoKS8sbnVtYmVyOlsvJVswMV0rfCZbMC03XSt8XCRbYS1mXGRdKy9pLC9cYlxkKyg/OlwuXGQrKT8oPzplWystXT9cZCspPyg/Om10enxuKT8vaV0sb3BlcmF0b3I6Ly0+fD1cLz18XC5cLnxcKlwqfDo9fDxbPD0+XT98Pls+PV0/fFsrXC0qXC9dPT98W0BePXxdfFxiKD86YW5kfG1vZHxvcilcYi8scHVuY3R1YXRpb246L1woXC58XC5cKXxbKClcW1xdOjssLnt9XS99LGM9WyJjb21tZW50Iiwia2V5d29yZCIsImJ1aWx0aW4iLCJvcGVyYXRvciIsInB1bmN0dWF0aW9uIl0ucmVkdWNlKGZ1bmN0aW9uKGQsZil7cmV0dXJuIGRbZl09dVtmXSxkfSx7fSk7dVsiY2xhc3MtbmFtZSJdLmZvckVhY2goZnVuY3Rpb24oZCl7ZC5pbnNpZGU9Y30pfSkobil9cmV0dXJuIHlnfXZhciBFZyx0UjtmdW5jdGlvbiBKRigpe2lmKHRSKXJldHVybiBFZzt0Uj0xLEVnPWUsZS5kaXNwbGF5TmFtZT0icGNheGlzIixlLmFsaWFzZXM9WyJweCJdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMucGNheGlzPXtzdHJpbmc6LyJbXiJdKiIvLGtleXdvcmQ6e3BhdHRlcm46LygoPzpefDspXHMqKVstQS1aXGRdKyg/OlxzKlxbWy1cd10rXF0pPyg/OlxzKlwoIlteIl0qIig/OixccyoiW14iXSoiKSpcKSk/KD89XHMqPSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7a2V5d29yZDovXlstQS1aXGRdKy8sbGFuZ3VhZ2U6e3BhdHRlcm46L14oXHMqKVxbWy1cd10rXF0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXlxbfFxdJC8scHJvcGVydHk6L1stXHddKy99fSwic3ViLWtleSI6e3BhdHRlcm46L14oXHMqKVxTW1xzXFNdKi8sbG9va2JlaGluZDohMCxpbnNpZGU6e3BhcmFtZXRlcjp7cGF0dGVybjovIlteIl0qIi8sYWxpYXM6InByb3BlcnR5In0scHVuY3R1YXRpb246L15cKHxcKSR8LC99fX19LG9wZXJhdG9yOi89Lyx0bGlzdDp7cGF0dGVybjovVExJU1RccypcKFxzKlx3Kyg/Oig/OlxzKixccyoiW14iXSoiKSt8XHMqLFxzKiJbXiJdKiItIlteIl0qIik/XHMqXCkvLGdyZWVkeTohMCxpbnNpZGU6e2Z1bmN0aW9uOi9eVExJU1QvLHByb3BlcnR5OntwYXR0ZXJuOi9eKFxzKlwoXHMqKVx3Ky8sbG9va2JlaGluZDohMH0sc3RyaW5nOi8iW14iXSoiLyxwdW5jdHVhdGlvbjovWygpLF0vLG9wZXJhdG9yOi8tL319LHB1bmN0dWF0aW9uOi9bOyxdLyxudW1iZXI6e3BhdHRlcm46LyhefFxzKVxkKyg/OlwuXGQrKT8oPyFcUykvLGxvb2tiZWhpbmQ6ITB9LGJvb2xlYW46L05PfFlFUy99LG4ubGFuZ3VhZ2VzLnB4PW4ubGFuZ3VhZ2VzLnBjYXhpc31yZXR1cm4gRWd9dmFyIFNnLG5SO2Z1bmN0aW9uIGVCKCl7aWYoblIpcmV0dXJuIFNnO25SPTEsU2c9ZSxlLmRpc3BsYXlOYW1lPSJwZW9wbGVjb2RlIixlLmFsaWFzZXM9WyJwY29kZSJdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMucGVvcGxlY29kZT17Y29tbWVudDpSZWdFeHAoWy9cL1wqW1xzXFNdKj9cKlwvLy5zb3VyY2UsL1xiUkVNW147XSo7Ly5zb3VyY2UsLzxcKig/OltePCpdfFwqKD8hPil8PCg/IVwqKXw8XCooPzooPyFcKj4pW1xzXFNdKSpcKj4pKlwqPi8uc291cmNlLC9cL1wrW1xzXFNdKj9cK1wvLy5zb3VyY2VdLmpvaW4oInwiKSksc3RyaW5nOntwYXR0ZXJuOi8nKD86Jyd8W14nXHJcbl0pKicoPyEnKXwiKD86IiJ8W14iXHJcbl0pKiIoPyEiKS8sZ3JlZWR5OiEwfSx2YXJpYWJsZTovJVx3Ky8sImZ1bmN0aW9uLWRlZmluaXRpb24iOntwYXR0ZXJuOi8oKD86XnxbXlx3LV0pKD86ZnVuY3Rpb258bWV0aG9kKVxzKylcdysvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9LCJjbGFzcy1uYW1lIjp7cGF0dGVybjovKCg/Ol58W14tXHddKSg/OmFzfGNhdGNofGNsYXNzfGNvbXBvbmVudHxjcmVhdGV8ZXh0ZW5kc3xnbG9iYWx8aW1wbGVtZW50c3xpbnN0YW5jZXxsb2NhbHxvZnxwcm9wZXJ0eXxyZXR1cm5zKVxzKylcdysoPzo6XHcrKSovaSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246LzovfX0sa2V5d29yZDovXGIoPzphYnN0cmFjdHxhbGlhc3xhc3xjYXRjaHxjbGFzc3xjb21wb25lbnR8Y29uc3RhbnR8Y3JlYXRlfGRlY2xhcmV8ZWxzZXxlbmQtKD86Y2xhc3N8ZXZhbHVhdGV8Zm9yfGZ1bmN0aW9ufGdldHxpZnxtZXRob2R8c2V0fHRyeXx3aGlsZSl8ZXZhbHVhdGV8ZXh0ZW5kc3xmb3J8ZnVuY3Rpb258Z2V0fGdsb2JhbHxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbnN0YW5jZXxsaWJyYXJ5fGxvY2FsfG1ldGhvZHxudWxsfG9mfG91dHxwZW9wbGVDb2RlfHByaXZhdGV8cHJvZ3JhbXxwcm9wZXJ0eXxwcm90ZWN0ZWR8cmVhZG9ubHl8cmVmfHJlcGVhdHxyZXR1cm5zP3xzZXR8c3RlcHx0aGVufHRocm93fHRvfHRyeXx1bnRpbHx2YWx1ZXx3aGVuKD86LW90aGVyKT98d2hpbGUpXGIvaSwib3BlcmF0b3Ita2V5d29yZCI6e3BhdHRlcm46L1xiKD86YW5kfG5vdHxvcilcYi9pLGFsaWFzOiJvcGVyYXRvciJ9LGZ1bmN0aW9uOi9bX2Etel1cdyooPz1ccypcKCkvaSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvaSxudW1iZXI6L1xiXGQrKD86XC5cZCspP1xiLyxvcGVyYXRvcjovPD58Wzw+XT0/fCE9fFwqXCp8Wy0rKi98PUBdLyxwdW5jdHVhdGlvbjovWzouOywoKVtcXV0vfSxuLmxhbmd1YWdlcy5wY29kZT1uLmxhbmd1YWdlcy5wZW9wbGVjb2RlfXJldHVybiBTZ312YXIgdmcsclI7ZnVuY3Rpb24gdEIoKXtpZihyUilyZXR1cm4gdmc7clI9MSx2Zz1lLGUuZGlzcGxheU5hbWU9InBlcmwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vKD86XCgoPzpbXigpXFxdfFxcW1xzXFNdKSpcKXxceyg/Oltee31cXF18XFxbXHNcU10pKlx9fFxbKD86W15bXF1cXF18XFxbXHNcU10pKlxdfDwoPzpbXjw+XFxdfFxcW1xzXFNdKSo+KS8uc291cmNlO2EubGFuZ3VhZ2VzLnBlcmw9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXlxzKik9XHdbXHNcU10qPz1jdXQuKi9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXCRdKSMuKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxzdHJpbmc6W3twYXR0ZXJuOlJlZ0V4cCgvXGIoPzpxfHFxfHF3fHF4KSg/IVthLXpBLVowLTldKVxzKi8uc291cmNlKyIoPzoiK1svKFteYS16QS1aMC05XHN7KFxbPF0pKD86KD8hXDEpW15cXF18XFxbXHNcU10pKlwxLy5zb3VyY2UsLyhbYS16QS1aMC05XSkoPzooPyFcMilbXlxcXXxcXFtcc1xTXSkqXDIvLnNvdXJjZSxpXS5qb2luKCJ8IikrIikiKSxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oInxgKSg/Oig/IVwxKVteXFxdfFxcW1xzXFNdKSpcMS8sZ3JlZWR5OiEwfSx7cGF0dGVybjovJyg/OlteJ1xcXHJcbl18XFwuKSonLyxncmVlZHk6ITB9XSxyZWdleDpbe3BhdHRlcm46UmVnRXhwKC9cYig/Om18cXIpKD8hW2EtekEtWjAtOV0pXHMqLy5zb3VyY2UrIig/OiIrWy8oW15hLXpBLVowLTlcc3soXFs8XSkoPzooPyFcMSlbXlxcXXxcXFtcc1xTXSkqXDEvLnNvdXJjZSwvKFthLXpBLVowLTldKSg/Oig/IVwyKVteXFxdfFxcW1xzXFNdKSpcMi8uc291cmNlLGldLmpvaW4oInwiKSsiKSIrL1ttc2l4cG9kdWFsbmdjXSovLnNvdXJjZSksZ3JlZWR5OiEwfSx7cGF0dGVybjpSZWdFeHAoLyhefFteLV0pXGIoPzpzfHRyfHkpKD8hW2EtekEtWjAtOV0pXHMqLy5zb3VyY2UrIig/OiIrWy8oW15hLXpBLVowLTlcc3soXFs8XSkoPzooPyFcMilbXlxcXXxcXFtcc1xTXSkqXDIoPzooPyFcMilbXlxcXXxcXFtcc1xTXSkqXDIvLnNvdXJjZSwvKFthLXpBLVowLTldKSg/Oig/IVwzKVteXFxdfFxcW1xzXFNdKSpcMyg/Oig/IVwzKVteXFxdfFxcW1xzXFNdKSpcMy8uc291cmNlLGkrL1xzKi8uc291cmNlK2ldLmpvaW4oInwiKSsiKSIrL1ttc2l4cG9kdWFsbmdjZXJdKi8uc291cmNlKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46L1wvKD86W15cL1xcXHJcbl18XFwuKSpcL1ttc2l4cG9kdWFsbmdjXSooPz1ccyooPzokfFtcclxuLC47fSkmfFwtKyp+PD4hP15dfCg/OmFuZHxjbXB8ZXF8Z2V8Z3R8bGV8bHR8bmV8bm90fG9yfHh8eG9yKVxiKSkvLGdyZWVkeTohMH1dLHZhcmlhYmxlOlsvWyYqJEAlXVx7XF5bQS1aXStcfS8sL1smKiRAJV1cXltBLVpfXS8sL1smKiRAJV0jPyg/PVx7KS8sL1smKiRAJV0jPyg/Oig/Ojo6KSonPyg/IVxkKVtcdyRdKyg/IVtcdyRdKSkrKD86OjopKi8sL1smKiRAJV1cZCsvLC8oPyElPSlbJEAlXVshIiMkJSYnKCkqKyxcLS5cLzo7PD0+P0BbXFxcXV5fYHt8fX5dL10sZmlsZWhhbmRsZTp7cGF0dGVybjovPCg/IVs8PV0pXFMqPz58XGJfXGIvLGFsaWFzOiJzeW1ib2wifSwidi1zdHJpbmciOntwYXR0ZXJuOi92XGQrKD86XC5cZCspKnxcZCsoPzpcLlxkKyl7Mix9LyxhbGlhczoic3RyaW5nIn0sZnVuY3Rpb246e3BhdHRlcm46LyhcYnN1YlsgXHRdKylcdysvLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6L1xiKD86YW55fGJyZWFrfGNvbnRpbnVlfGRlZmF1bHR8ZGVsZXRlfGRpZXxkb3xlbHNlfGVsc2lmfGV2YWx8Zm9yfGZvcmVhY2h8Z2l2ZW58Z290b3xpZnxsYXN0fGxvY2FsfG15fG5leHR8b3VyfHBhY2thZ2V8cHJpbnR8cmVkb3xyZXF1aXJlfHJldHVybnxzYXl8c3RhdGV8c3VifHN3aXRjaHx1bmRlZnx1bmxlc3N8dW50aWx8dXNlfHdoZW58d2hpbGUpXGIvLG51bWJlcjovXGIoPzoweFtcZEEtRmEtZl0oPzpfP1tcZEEtRmEtZl0pKnwwYlswMV0oPzpfP1swMV0pKnwoPzooPzpcZCg/Ol8/XGQpKik/XC4pP1xkKD86Xz9cZCkqKD86W0VlXVsrLV0/XGQrKT8pXGIvLG9wZXJhdG9yOi8tW3J3eG9SV1hPZXpzZmRscFNiY3R1Z2tUQk1BQ11cYnxcK1srPV0/fC1bLT0+XT98XCpcKj89P3xcL1wvPz0/fD1bPX4+XT98flt+PV0/fFx8XHw/PT98JiY/PT98PCg/Oj0+P3w8PT8pP3w+Pj89P3whW349XT98WyVeXT0/fFwuKD86PXxcLlwuPyk/fFtcXD9dfFxieCg/Oj18XGIpfFxiKD86YW5kfGNtcHxlcXxnZXxndHxsZXxsdHxuZXxub3R8b3J8eG9yKVxiLyxwdW5jdHVhdGlvbjovW3t9W1xdOygpLDpdL319KShuKX1yZXR1cm4gdmd9dmFyIFRnLGFSO2Z1bmN0aW9uIG5CKCl7aWYoYVIpcmV0dXJuIFRnO2FSPTE7dmFyIGU9S2woKTtUZz1uLG4uZGlzcGxheU5hbWU9InBocEV4dHJhcyIsbi5hbGlhc2VzPVtdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInBocCIsInZhcmlhYmxlIix7dGhpczp7cGF0dGVybjovXCR0aGlzXGIvLGFsaWFzOiJrZXl3b3JkIn0sZ2xvYmFsOi9cJCg/OkdMT0JBTFN8SFRUUF9SQVdfUE9TVF9EQVRBfF8oPzpDT09LSUV8RU5WfEZJTEVTfEdFVHxQT1NUfFJFUVVFU1R8U0VSVkVSfFNFU1NJT04pfGFyZ2N8YXJndnxodHRwX3Jlc3BvbnNlX2hlYWRlcnxwaHBfZXJyb3Jtc2cpXGIvLHNjb3BlOntwYXR0ZXJuOi9cYltcd1xcXSs6Oi8saW5zaWRlOntrZXl3b3JkOi9cYig/OnBhcmVudHxzZWxmfHN0YXRpYylcYi8scHVuY3R1YXRpb246Lzo6fFxcL319fSl9cmV0dXJuIFRnfXZhciB4ZyxpUjtmdW5jdGlvbiByQigpe2lmKGlSKXJldHVybiB4ZztpUj0xO3ZhciBlPUtsKCksbj1ZbCgpO3hnPWEsYS5kaXNwbGF5TmFtZT0icGhwZG9jIixhLmFsaWFzZXM9W107ZnVuY3Rpb24gYShpKXtpLnJlZ2lzdGVyKGUpLGkucmVnaXN0ZXIobiksKGZ1bmN0aW9uKGwpe3ZhciB1PS8oPzpcYlthLXpBLVpdXHcqfFt8XFxbXF1dKSsvLnNvdXJjZTtsLmxhbmd1YWdlcy5waHBkb2M9bC5sYW5ndWFnZXMuZXh0ZW5kKCJqYXZhZG9jbGlrZSIse3BhcmFtZXRlcjp7cGF0dGVybjpSZWdFeHAoIihAKD86Z2xvYmFsfHBhcmFtfHByb3BlcnR5KD86LXJlYWR8LXdyaXRlKT98dmFyKVxccysoPzoiK3UrIlxccyspPylcXCRcXHcrIiksbG9va2JlaGluZDohMH19KSxsLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInBocGRvYyIsImtleXdvcmQiLHsiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOlJlZ0V4cCgiKEAoPzpnbG9iYWx8cGFja2FnZXxwYXJhbXxwcm9wZXJ0eSg/Oi1yZWFkfC13cml0ZSk/fHJldHVybnxzdWJwYWNrYWdlfHRocm93c3x2YXIpXFxzKykiK3UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9cYig/OmFycmF5fGJvb2x8Ym9vbGVhbnxjYWxsYmFja3xkb3VibGV8ZmFsc2V8ZmxvYXR8aW50fGludGVnZXJ8bWl4ZWR8bnVsbHxvYmplY3R8cmVzb3VyY2V8c2VsZnxzdHJpbmd8dHJ1ZXx2b2lkKVxiLyxwdW5jdHVhdGlvbjovW3xcXFtcXSgpXS99fV19KSxsLmxhbmd1YWdlcy5qYXZhZG9jbGlrZS5hZGRTdXBwb3J0KCJwaHAiLGwubGFuZ3VhZ2VzLnBocGRvYyl9KShpKX1yZXR1cm4geGd9dmFyIEFnLG9SO2Z1bmN0aW9uIGFCKCl7aWYob1IpcmV0dXJuIEFnO29SPTE7dmFyIGU9dGIoKTtBZz1uLG4uZGlzcGxheU5hbWU9InBsc3FsIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLGEubGFuZ3VhZ2VzLnBsc3FsPWEubGFuZ3VhZ2VzLmV4dGVuZCgic3FsIix7Y29tbWVudDp7cGF0dGVybjovXC9cKltcc1xTXSo/XCpcL3wtLS4qLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86QXxBQ0NFU1NJQkxFfEFERHxBR0VOVHxBR0dSRUdBVEV8QUxMfEFMVEVSfEFORHxBTll8QVJSQVl8QVN8QVNDfEFUfEFUVFJJQlVURXxBVVRISUR8QVZHfEJFR0lOfEJFVFdFRU58QkZJTEVfQkFTRXxCSU5BUll8QkxPQl9CQVNFfEJMT0NLfEJPRFl8Qk9USHxCT1VORHxCVUxLfEJZfEJZVEV8Q3xDQUxMfENBTExJTkd8Q0FTQ0FERXxDQVNFfENIQVJ8Q0hBUkFDVEVSfENIQVJTRVR8Q0hBUlNFVEZPUk18Q0hBUlNFVElEfENIQVJfQkFTRXxDSEVDS3xDTE9CX0JBU0V8Q0xPTkV8Q0xPU0V8Q0xVU1RFUnxDTFVTVEVSU3xDT0xBVVRIfENPTExFQ1R8Q09MVU1OU3xDT01NRU5UfENPTU1JVHxDT01NSVRURUR8Q09NUElMRUR8Q09NUFJFU1N8Q09OTkVDVHxDT05TVEFOVHxDT05TVFJVQ1RPUnxDT05URVhUfENPTlRJTlVFfENPTlZFUlR8Q09VTlR8Q1JBU0h8Q1JFQVRFfENSRURFTlRJQUx8Q1VSUkVOVHxDVVJTT1J8Q1VTVE9NREFUVU18REFOR0xJTkd8REFUQXxEQVRFfERBVEVfQkFTRXxEQVl8REVDTEFSRXxERUZBVUxUfERFRklORXxERUxFVEV8REVTQ3xERVRFUk1JTklTVElDfERJUkVDVE9SWXxESVNUSU5DVHxET1VCTEV8RFJPUHxEVVJBVElPTnxFTEVNRU5UfEVMU0V8RUxTSUZ8RU1QVFl8RU5EfEVTQ0FQRXxFWENFUFR8RVhDRVBUSU9OfEVYQ0VQVElPTlN8RVhDTFVTSVZFfEVYRUNVVEV8RVhJU1RTfEVYSVR8RVhURVJOQUx8RkVUQ0h8RklOQUx8RklSU1R8RklYRUR8RkxPQVR8Rk9SfEZPUkFMTHxGT1JDRXxGUk9NfEZVTkNUSU9OfEdFTkVSQUx8R09UT3xHUkFOVHxHUk9VUHxIQVNIfEhBVklOR3xIRUFQfEhJRERFTnxIT1VSfElERU5USUZJRUR8SUZ8SU1NRURJQVRFfElNTVVUQUJMRXxJTnxJTkNMVURJTkd8SU5ERVh8SU5ERVhFU3xJTkRJQ0FUT1J8SU5ESUNFU3xJTkZJTklURXxJTlNFUlR8SU5TVEFOVElBQkxFfElOVHxJTlRFUkZBQ0V8SU5URVJTRUNUfElOVEVSVkFMfElOVE98SU5WQUxJREFURXxJU3xJU09MQVRJT058SkFWQXxMQU5HVUFHRXxMQVJHRXxMRUFESU5HfExFTkdUSHxMRVZFTHxMSUJSQVJZfExJS0V8TElLRTJ8TElLRTR8TElLRUN8TElNSVR8TElNSVRFRHxMT0NBTHxMT0NLfExPTkd8TE9PUHxNQVB8TUFYfE1BWExFTnxNRU1CRVJ8TUVSR0V8TUlOfE1JTlVTfE1JTlVURXxNT0R8TU9ERXxNT0RJRll8TU9OVEh8TVVMVElTRVR8TVVUQUJMRXxOQU1FfE5BTnxOQVRJT05BTHxOQVRJVkV8TkNIQVJ8TkVXfE5PQ09NUFJFU1N8Tk9DT1BZfE5PVHxOT1dBSVR8TlVMTHxOVU1CRVJfQkFTRXxPQkpFQ1R8T0NJQ09MTHxPQ0lEQVRFfE9DSURBVEVUSU1FfE9DSURVUkFUSU9OfE9DSUlOVEVSVkFMfE9DSUxPQkxPQ0FUT1J8T0NJTlVNQkVSfE9DSVJBV3xPQ0lSRUZ8T0NJUkVGQ1VSU09SfE9DSVJPV0lEfE9DSVNUUklOR3xPQ0lUWVBFfE9GfE9MRHxPTnxPTkxZfE9QQVFVRXxPUEVOfE9QRVJBVE9SfE9QVElPTnxPUnxPUkFDTEV8T1JBREFUQXxPUkRFUnxPUkdBTklaQVRJT058T1JMQU5ZfE9STFZBUll8T1RIRVJTfE9VVHxPVkVSTEFQU3xPVkVSUklESU5HfFBBQ0tBR0V8UEFSQUxMRUxfRU5BQkxFfFBBUkFNRVRFUnxQQVJBTUVURVJTfFBBUkVOVHxQQVJUSVRJT058UEFTQ0FMfFBFUlNJU1RBQkxFfFBJUEV8UElQRUxJTkVEfFBMVUdHQUJMRXxQT0xZTU9SUEhJQ3xQUkFHTUF8UFJFQ0lTSU9OfFBSSU9SfFBSSVZBVEV8UFJPQ0VEVVJFfFBVQkxJQ3xSQUlTRXxSQU5HRXxSQVd8UkVBRHxSRUNPUkR8UkVGfFJFRkVSRU5DRXxSRUxJRVNfT058UkVNfFJFTUFJTkRFUnxSRU5BTUV8UkVTT1VSQ0V8UkVTVUxUfFJFU1VMVF9DQUNIRXxSRVRVUk58UkVUVVJOSU5HfFJFVkVSU0V8UkVWT0tFfFJPTExCQUNLfFJPV3xTQU1QTEV8U0FWRXxTQVZFUE9JTlR8U0IxfFNCMnxTQjR8U0VDT05EfFNFR01FTlR8U0VMRUNUfFNFTEZ8U0VQQVJBVEV8U0VRVUVOQ0V8U0VSSUFMSVpBQkxFfFNFVHxTSEFSRXxTSE9SVHxTSVpFfFNJWkVfVHxTT01FfFNQQVJTRXxTUUx8U1FMQ09ERXxTUUxEQVRBfFNRTE5BTUV8U1FMU1RBVEV8U1RBTkRBUkR8U1RBUlR8U1RBVElDfFNURERFVnxTVE9SRUR8U1RSSU5HfFNUUlVDVHxTVFlMRXxTVUJNVUxUSVNFVHxTVUJQQVJUSVRJT058U1VCU1RJVFVUQUJMRXxTVUJUWVBFfFNVTXxTWU5PTllNfFRBQkFVVEh8VEFCTEV8VERPfFRIRXxUSEVOfFRJTUV8VElNRVNUQU1QfFRJTUVaT05FX0FCQlJ8VElNRVpPTkVfSE9VUnxUSU1FWk9ORV9NSU5VVEV8VElNRVpPTkVfUkVHSU9OfFRPfFRSQUlMSU5HfFRSQU5TQUNUSU9OfFRSQU5TQUNUSU9OQUx8VFJVU1RFRHxUWVBFfFVCMXxVQjJ8VUI0fFVOREVSfFVOSU9OfFVOSVFVRXxVTlBMVUd8VU5TSUdORUR8VU5UUlVTVEVEfFVQREFURXxVU0V8VVNJTkd8VkFMSVNUfFZBTFVFfFZBTFVFU3xWQVJJQUJMRXxWQVJJQU5DRXxWQVJSQVl8VkFSWUlOR3xWSUVXfFZJRVdTfFZPSUR8V0hFTnxXSEVSRXxXSElMRXxXSVRIfFdPUkt8V1JBUFBFRHxXUklURXxZRUFSfFpPTkUpXGIvaSxvcGVyYXRvcjovOj0/fD0+fFs8Pl5+IV09fFwuXC58XHxcfHxcKlwqfFstKyovJTw+PUBdL30pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicGxzcWwiLCJvcGVyYXRvciIse2xhYmVsOntwYXR0ZXJuOi88PFxzKlx3K1xzKj4+LyxhbGlhczoic3ltYm9sIn19KX1yZXR1cm4gQWd9dmFyIF9nLGxSO2Z1bmN0aW9uIGlCKCl7aWYobFIpcmV0dXJuIF9nO2xSPTEsX2c9ZSxlLmRpc3BsYXlOYW1lPSJwb3dlcnF1ZXJ5IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5wb3dlcnF1ZXJ5PXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzpcL1wqW1xzXFNdKj9cKlwvfFwvXC8uKikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSwicXVvdGVkLWlkZW50aWZpZXIiOntwYXR0ZXJuOi8jIig/OlteIlxyXG5dfCIiKSoiKD8hIikvLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oPzojISk/Iig/OlteIlxyXG5dfCIiKSoiKD8hIikvLGdyZWVkeTohMH0sY29uc3RhbnQ6Wy9cYkRheVwuKD86RnJpZGF5fE1vbmRheXxTYXR1cmRheXxTdW5kYXl8VGh1cnNkYXl8VHVlc2RheXxXZWRuZXNkYXkpXGIvLC9cYlRyYWNlTGV2ZWxcLig/OkNyaXRpY2FsfEVycm9yfEluZm9ybWF0aW9ufFZlcmJvc2V8V2FybmluZylcYi8sL1xiT2NjdXJyZW5jZVwuKD86QWxsfEZpcnN0fExhc3QpXGIvLC9cYk9yZGVyXC4oPzpBc2NlbmRpbmd8RGVzY2VuZGluZylcYi8sL1xiUm91bmRpbmdNb2RlXC4oPzpBd2F5RnJvbVplcm98RG93bnxUb0V2ZW58VG93YXJkWmVyb3xVcClcYi8sL1xiTWlzc2luZ0ZpZWxkXC4oPzpFcnJvcnxJZ25vcmV8VXNlTnVsbClcYi8sL1xiUXVvdGVTdHlsZVwuKD86Q3N2fE5vbmUpXGIvLC9cYkpvaW5LaW5kXC4oPzpGdWxsT3V0ZXJ8SW5uZXJ8TGVmdEFudGl8TGVmdE91dGVyfFJpZ2h0QW50aXxSaWdodE91dGVyKVxiLywvXGJHcm91cEtpbmRcLig/Okdsb2JhbHxMb2NhbClcYi8sL1xiRXh0cmFWYWx1ZXNcLig/OkVycm9yfElnbm9yZXxMaXN0KVxiLywvXGJKb2luQWxnb3JpdGhtXC4oPzpEeW5hbWljfExlZnRIYXNofExlZnRJbmRleHxQYWlyd2lzZUhhc2h8UmlnaHRIYXNofFJpZ2h0SW5kZXh8U29ydE1lcmdlKVxiLywvXGJKb2luU2lkZVwuKD86TGVmdHxSaWdodClcYi8sL1xiUHJlY2lzaW9uXC4oPzpEZWNpbWFsfERvdWJsZSlcYi8sL1xiUmVsYXRpdmVQb3NpdGlvblwuRnJvbSg/OkVuZHxTdGFydClcYi8sL1xiVGV4dEVuY29kaW5nXC4oPzpBc2NpaXxCaWdFbmRpYW5Vbmljb2RlfFVuaWNvZGV8VXRmMTZ8VXRmOHxXaW5kb3dzKVxiLywvXGIoPzpBbnl8QmluYXJ5fERhdGV8RGF0ZVRpbWV8RGF0ZVRpbWVab25lfER1cmF0aW9ufEZ1bmN0aW9ufEludDE2fEludDMyfEludDY0fEludDh8TGlzdHxMb2dpY2FsfE5vbmV8TnVtYmVyfFJlY29yZHxUYWJsZXxUZXh0fFRpbWUpXC5UeXBlXGIvLC9cYm51bGxcYi9dLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sa2V5d29yZDovXGIoPzphbmR8YXN8ZWFjaHxlbHNlfGVycm9yfGlmfGlufGlzfGxldHxtZXRhfG5vdHxudWxsYWJsZXxvcHRpb25hbHxvcnxvdGhlcndpc2V8c2VjdGlvbnxzaGFyZWR8dGhlbnx0cnl8dHlwZSlcYnwjKD86YmluYXJ5fGRhdGV8ZGF0ZXRpbWV8ZGF0ZXRpbWV6b25lfGR1cmF0aW9ufGluZmluaXR5fG5hbnxzZWN0aW9uc3xzaGFyZWR8dGFibGV8dGltZSlcYi8sZnVuY3Rpb246e3BhdHRlcm46LyhefFteI1x3Ll0pW2Etel9dW1x3Ll0qKD89XHMqXCgpL2ksbG9va2JlaGluZDohMH0sImRhdGEtdHlwZSI6e3BhdHRlcm46L1xiKD86YW55fGFueW5vbm51bGx8YmluYXJ5fGRhdGV8ZGF0ZXRpbWV8ZGF0ZXRpbWV6b25lfGR1cmF0aW9ufGZ1bmN0aW9ufGxpc3R8bG9naWNhbHxub25lfG51bWJlcnxyZWNvcmR8dGFibGV8dGV4dHx0aW1lKVxiLyxhbGlhczoiY2xhc3MtbmFtZSJ9LG51bWJlcjp7cGF0dGVybjovXGIweFtcZGEtZl0rXGJ8KD86WystXT8oPzpcYlxkK1wuKT9cYlxkK3xbKy1dXC5cZCt8KF58W14uXSlcQlwuXGQrKSg/OmVbKy1dP1xkKyk/XGIvaSxsb29rYmVoaW5kOiEwfSxvcGVyYXRvcjovWy0rKlwvJj9AXl18PCg/Oj0+P3w+KT98Pj0/fD0+P3xcLlwuXC4/LyxwdW5jdHVhdGlvbjovWyw7XFtcXSgpe31dL30sbi5sYW5ndWFnZXMucHE9bi5sYW5ndWFnZXMucG93ZXJxdWVyeSxuLmxhbmd1YWdlcy5tc2NyaXB0PW4ubGFuZ3VhZ2VzLnBvd2VycXVlcnl9cmV0dXJuIF9nfXZhciBSZyxzUjtmdW5jdGlvbiBvQigpe2lmKHNSKXJldHVybiBSZztzUj0xLFJnPWUsZS5kaXNwbGF5TmFtZT0icG93ZXJzaGVsbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPWEubGFuZ3VhZ2VzLnBvd2Vyc2hlbGw9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXmBdKTwjW1xzXFNdKj8jPi8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteYF0pIy4qLyxsb29rYmVoaW5kOiEwfV0sc3RyaW5nOlt7cGF0dGVybjovIig/OmBbXHNcU118W15gIl0pKiIvLGdyZWVkeTohMCxpbnNpZGU6bnVsbH0se3BhdHRlcm46LycoPzpbXiddfCcnKSonLyxncmVlZHk6ITB9XSxuYW1lc3BhY2U6L1xbW2Etel0oPzpcWyg/OlxbW15cXV0qXF18W15cW1xdXSkqXF18W15cW1xdXSkqXF0vaSxib29sZWFuOi9cJCg/OmZhbHNlfHRydWUpXGIvaSx2YXJpYWJsZTovXCRcdytcYi8sZnVuY3Rpb246Wy9cYig/OkFkZHxBcHByb3ZlfEFzc2VydHxCYWNrdXB8QmxvY2t8Q2hlY2twb2ludHxDbGVhcnxDbG9zZXxDb21wYXJlfENvbXBsZXRlfENvbXByZXNzfENvbmZpcm18Q29ubmVjdHxDb252ZXJ0fENvbnZlcnRGcm9tfENvbnZlcnRUb3xDb3B5fERlYnVnfERlbnl8RGlzYWJsZXxEaXNjb25uZWN0fERpc21vdW50fEVkaXR8RW5hYmxlfEVudGVyfEV4aXR8RXhwYW5kfEV4cG9ydHxGaW5kfEZvckVhY2h8Rm9ybWF0fEdldHxHcmFudHxHcm91cHxIaWRlfEltcG9ydHxJbml0aWFsaXplfEluc3RhbGx8SW52b2tlfEpvaW58TGltaXR8TG9ja3xNZWFzdXJlfE1lcmdlfE1vdmV8TmV3fE9wZW58T3B0aW1pemV8T3V0fFBpbmd8UG9wfFByb3RlY3R8UHVibGlzaHxQdXNofFJlYWR8UmVjZWl2ZXxSZWRvfFJlZ2lzdGVyfFJlbW92ZXxSZW5hbWV8UmVwYWlyfFJlcXVlc3R8UmVzZXR8UmVzaXplfFJlc29sdmV8UmVzdGFydHxSZXN0b3JlfFJlc3VtZXxSZXZva2V8U2F2ZXxTZWFyY2h8U2VsZWN0fFNlbmR8U2V0fFNob3d8U2tpcHxTb3J0fFNwbGl0fFN0YXJ0fFN0ZXB8U3RvcHxTdWJtaXR8U3VzcGVuZHxTd2l0Y2h8U3luY3xUZWV8VGVzdHxUcmFjZXxVbmJsb2NrfFVuZG98VW5pbnN0YWxsfFVubG9ja3xVbnByb3RlY3R8VW5wdWJsaXNofFVucmVnaXN0ZXJ8VXBkYXRlfFVzZXxXYWl0fFdhdGNofFdoZXJlfFdyaXRlKS1bYS16XStcYi9pLC9cYig/OmFjfGNhdHxjaGRpcnxjbGN8Y2xpfGNscHxjbHZ8Y29tcGFyZXxjb3B5fGNwfGNwaXxjcHB8Y3ZwYXxkYnB8ZGVsfGRpZmZ8ZGlyfGVicHxlY2hvfGVwYWx8ZXBjc3Z8ZXBzbnxlcmFzZXxmY3xmbHxmdHxmd3xnYWx8Z2JwfGdjfGdjaXxnY3N8Z2RyfGdpfGdsfGdtfGdwfGdwc3xncm91cHxnc3Z8Z3V8Z3Z8Z3dtaXxpZXh8aWl8aXBhbHxpcGNzdnxpcHNufGlybXxpd21pfGl3cnxraWxsfGxwfGxzfG1lYXN1cmV8bWl8bW91bnR8bW92ZXxtcHxtdnxuYWx8bmRyfG5pfG52fG9ndnxwb3BkfHBzfHB1c2hkfHB3ZHxyYnB8cmR8cmRyfHJlbnxyaXxybXxybWRpcnxybml8cm5wfHJwfHJ2fHJ2cGF8cndtaXxzYWx8c2Fwc3xzYXN2fHNicHxzY3xzZWxlY3R8c2V0fHNoY218c2l8c2x8c2xlZXB8c2xzfHNvcnR8c3B8c3Bwc3xzcHN2fHN0YXJ0fHN2fHN3bWl8dGVlfHRyY218dHlwZXx3cml0ZSlcYi9pXSxrZXl3b3JkOi9cYig/OkJlZ2lufEJyZWFrfENhdGNofENsYXNzfENvbnRpbnVlfERhdGF8RGVmaW5lfERvfER5bmFtaWNQYXJhbXxFbHNlfEVsc2VJZnxFbmR8RXhpdHxGaWx0ZXJ8RmluYWxseXxGb3J8Rm9yRWFjaHxGcm9tfEZ1bmN0aW9ufElmfElubGluZVNjcmlwdHxQYXJhbGxlbHxQYXJhbXxQcm9jZXNzfFJldHVybnxTZXF1ZW5jZXxTd2l0Y2h8VGhyb3d8VHJhcHxUcnl8VW50aWx8VXNpbmd8VmFyfFdoaWxlfFdvcmtmbG93KVxiL2ksb3BlcmF0b3I6e3BhdHRlcm46LyhefFxXKSg/OiF8LSg/OmI/KD86YW5kfHg/b3IpfGFzfCg/Ok5vdCk/KD86Q29udGFpbnN8SW58TGlrZXxNYXRjaCl8ZXF8Z2V8Z3R8aXMoPzpOb3QpP3xKb2lufGxlfGx0fG5lfG5vdHxSZXBsYWNlfHNoW2xyXSlcYnwtWy09XT98XCtbKz1dP3xbKlwvJV09PykvaSxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovW3x7fVtcXTsoKSwuXS99O2kuc3RyaW5nWzBdLmluc2lkZT17ZnVuY3Rpb246e3BhdHRlcm46LyhefFteYF0pXCRcKCg/OlwkXChbXlxyXG4oKV0qXCl8KD8hXCRcKClbXlxyXG4pXSkqXCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOml9LGJvb2xlYW46aS5ib29sZWFuLHZhcmlhYmxlOmkudmFyaWFibGV9fSkobil9cmV0dXJuIFJnfXZhciBOZyx1UjtmdW5jdGlvbiBsQigpe2lmKHVSKXJldHVybiBOZzt1Uj0xLE5nPWUsZS5kaXNwbGF5TmFtZT0icHJvY2Vzc2luZyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMucHJvY2Vzc2luZz1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7a2V5d29yZDovXGIoPzpicmVha3xjYXNlfGNhdGNofGNsYXNzfGNvbnRpbnVlfGRlZmF1bHR8ZWxzZXxleHRlbmRzfGZpbmFsfGZvcnxpZnxpbXBsZW1lbnRzfGltcG9ydHxuZXd8bnVsbHxwcml2YXRlfHB1YmxpY3xyZXR1cm58c3RhdGljfHN1cGVyfHN3aXRjaHx0aGlzfHRyeXx2b2lkfHdoaWxlKVxiLyxmdW5jdGlvbjovXGJcdysoPz1ccypcKCkvLG9wZXJhdG9yOi88Wzw9XT98Pls+PV0/fCYmP3xcfFx8P3xbJT9dfFshPStcLSpcL109Py99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInByb2Nlc3NpbmciLCJudW1iZXIiLHtjb25zdGFudDovXGIoPyFYTUxcYilbQS1aXVtBLVpcZF9dK1xiLyx0eXBlOntwYXR0ZXJuOi9cYig/OmJvb2xlYW58Ynl0ZXxjaGFyfGNvbG9yfGRvdWJsZXxmbG9hdHxpbnR8W0EtWl1cdyopXGIvLGFsaWFzOiJjbGFzcy1uYW1lIn19KX1yZXR1cm4gTmd9dmFyIHdnLGNSO2Z1bmN0aW9uIHNCKCl7aWYoY1IpcmV0dXJuIHdnO2NSPTEsd2c9ZSxlLmRpc3BsYXlOYW1lPSJwcm9sb2ciLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLnByb2xvZz17Y29tbWVudDp7cGF0dGVybjovXC9cKltcc1xTXSo/XCpcL3wlLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oWyInXSkoPzpcMVwxfFxcKD86XHJcbnxbXHNcU10pfCg/IVwxKVteXFxcclxuXSkqXDEoPyFcMSkvLGdyZWVkeTohMH0sYnVpbHRpbjovXGIoPzpmeHxmeXx4Zlt4eV0/fHlmeD8pXGIvLGZ1bmN0aW9uOi9cYlthLXpdXHcqKD86KD89XCgpfFwvXGQrKS8sbnVtYmVyOi9cYlxkKyg/OlwuXGQqKT8vLG9wZXJhdG9yOi9bOlxcPT48XC0/KkBcLzsrXnwhJC5dK3xcYig/OmlzfG1vZHxub3R8eG9yKVxiLyxwdW5jdHVhdGlvbjovWygpe31cW1xdLF0vfX1yZXR1cm4gd2d9dmFyIGtnLGRSO2Z1bmN0aW9uIHVCKCl7aWYoZFIpcmV0dXJuIGtnO2RSPTEsa2c9ZSxlLmRpc3BsYXlOYW1lPSJwcm9tcWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT1bInN1bSIsIm1pbiIsIm1heCIsImF2ZyIsImdyb3VwIiwic3RkZGV2Iiwic3RkdmFyIiwiY291bnQiLCJjb3VudF92YWx1ZXMiLCJib3R0b21rIiwidG9wayIsInF1YW50aWxlIl0sbD1bIm9uIiwiaWdub3JpbmciLCJncm91cF9yaWdodCIsImdyb3VwX2xlZnQiLCJieSIsIndpdGhvdXQiXSx1PVsib2Zmc2V0Il0sYz1pLmNvbmNhdChsLHUpO2EubGFuZ3VhZ2VzLnByb21xbD17Y29tbWVudDp7cGF0dGVybjovKF5bIFx0XSopIy4qL20sbG9va2JlaGluZDohMH0sInZlY3Rvci1tYXRjaCI6e3BhdHRlcm46bmV3IFJlZ0V4cCgiKCg/OiIrbC5qb2luKCJ8IikrIilcXHMqKVxcKFteKV0qXFwpIiksbG9va2JlaGluZDohMCxpbnNpZGU6eyJsYWJlbC1rZXkiOntwYXR0ZXJuOi9cYlteLF0rXGIvLGFsaWFzOiJhdHRyLW5hbWUifSxwdW5jdHVhdGlvbjovWygpLF0vfX0sImNvbnRleHQtbGFiZWxzIjp7cGF0dGVybjovXHtbXnt9XSpcfS8saW5zaWRlOnsibGFiZWwta2V5Ijp7cGF0dGVybjovXGJbYS16X11cdyooPz1ccyooPzo9fCFbPX5dKSkvLGFsaWFzOiJhdHRyLW5hbWUifSwibGFiZWwtdmFsdWUiOntwYXR0ZXJuOi8oWyInYF0pKD86XFxbXHNcU118KD8hXDEpW15cXF0pKlwxLyxncmVlZHk6ITAsYWxpYXM6ImF0dHItdmFsdWUifSxwdW5jdHVhdGlvbjovXHt8XH18PX4/fCFbPX5dfCwvfX0sImNvbnRleHQtcmFuZ2UiOlt7cGF0dGVybjovXFtbXHdcczpdK1xdLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cW3xcXXw6LywicmFuZ2UtZHVyYXRpb24iOntwYXR0ZXJuOi9cYig/OlxkKyg/OltzbWhkd3ldfG1zKSkrXGIvaSxhbGlhczoibnVtYmVyIn19fSx7cGF0dGVybjovKFxib2Zmc2V0XHMrKVx3Ky8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJyYW5nZS1kdXJhdGlvbiI6e3BhdHRlcm46L1xiKD86XGQrKD86W3NtaGR3eV18bXMpKStcYi9pLGFsaWFzOiJudW1iZXIifX19XSxrZXl3b3JkOm5ldyBSZWdFeHAoIlxcYig/OiIrYy5qb2luKCJ8IikrIilcXGIiLCJpIiksZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksbnVtYmVyOi9bLStdPyg/Oig/OlxiXGQrKD86XC5cZCspP3xcQlwuXGQrKSg/OmVbLStdP1xkKyk/XGJ8XGIoPzoweFswLTlhLWZdK3xuYW58aW5mKVxiKS9pLG9wZXJhdG9yOi9bXF4qLyUrLV18PT18IT18PD18PHw+PXw+fFxiKD86YW5kfG9yfHVubGVzcylcYi9pLHB1bmN0dWF0aW9uOi9be307KClgLC5bXF1dL319KShuKX1yZXR1cm4ga2d9dmFyIENnLHBSO2Z1bmN0aW9uIGNCKCl7aWYocFIpcmV0dXJuIENnO3BSPTEsQ2c9ZSxlLmRpc3BsYXlOYW1lPSJwcm9wZXJ0aWVzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5wcm9wZXJ0aWVzPXtjb21tZW50Oi9eWyBcdF0qWyMhXS4qJC9tLCJhdHRyLXZhbHVlIjp7cGF0dGVybjovKF5bIFx0XSooPzpcXCg/OlxyXG58W1xzXFNdKXxbXlxcXHM6PV0pKyg/OiAqWz06XSAqKD8hICl8ICkpKD86XFwoPzpcclxufFtcc1xTXSl8W15cXFxyXG5dKSsvbSxsb29rYmVoaW5kOiEwfSwiYXR0ci1uYW1lIjovXlsgXHRdKig/OlxcKD86XHJcbnxbXHNcU10pfFteXFxcczo9XSkrKD89ICpbPTpdfCApL20scHVuY3R1YXRpb246L1s9Ol0vfX1yZXR1cm4gQ2d9dmFyIElnLGZSO2Z1bmN0aW9uIGRCKCl7aWYoZlIpcmV0dXJuIElnO2ZSPTEsSWc9ZSxlLmRpc3BsYXlOYW1lPSJwcm90b2J1ZiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPS9cYig/OmJvb2x8Ynl0ZXN8ZG91YmxlfHM/Zml4ZWQoPzozMnw2NCl8ZmxvYXR8W3N1XT9pbnQoPzozMnw2NCl8c3RyaW5nKVxiLzthLmxhbmd1YWdlcy5wcm90b2J1Zj1hLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7ImNsYXNzLW5hbWUiOlt7cGF0dGVybjovKFxiKD86ZW51bXxleHRlbmR8bWVzc2FnZXxzZXJ2aWNlKVxzKylbQS1aYS16X11cdyooPz1ccypceykvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXGIoPzpycGNccytcdyt8cmV0dXJucylccypcKFxzKig/OnN0cmVhbVxzKyk/KVwuP1tBLVphLXpfXVx3Kig/OlwuW0EtWmEtel9dXHcqKSooPz1ccypcKSkvLGxvb2tiZWhpbmQ6ITB9XSxrZXl3b3JkOi9cYig/OmVudW18ZXh0ZW5kfGV4dGVuc2lvbnN8aW1wb3J0fG1lc3NhZ2V8b25lb2Z8b3B0aW9ufG9wdGlvbmFsfHBhY2thZ2V8cHVibGljfHJlcGVhdGVkfHJlcXVpcmVkfHJlc2VydmVkfHJldHVybnN8cnBjKD89XHMrXHcpfHNlcnZpY2V8c3RyZWFtfHN5bnRheHx0bylcYig/IVxzKj1ccypcZCkvLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVxzKlwoKS9pfSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJwcm90b2J1ZiIsIm9wZXJhdG9yIix7bWFwOntwYXR0ZXJuOi9cYm1hcDxccypbXHcuXStccyosXHMqW1x3Ll0rXHMqPig/PVxzK1thLXpfXVx3KlxzKls9O10pL2ksYWxpYXM6ImNsYXNzLW5hbWUiLGluc2lkZTp7cHVuY3R1YXRpb246L1s8Pi4sXS8sYnVpbHRpbjppfX0sYnVpbHRpbjppLCJwb3NpdGlvbmFsLWNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oPzpcYnxcQlwuKVthLXpfXVx3Kig/OlwuW2Etel9dXHcqKSooPz1ccytbYS16X11cdypccypbPTtdKS9pLGFsaWFzOiJjbGFzcy1uYW1lIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSxhbm5vdGF0aW9uOntwYXR0ZXJuOi8oXFtccyopW2Etel9dXHcqKD89XHMqPSkvaSxsb29rYmVoaW5kOiEwfX0pfSkobil9cmV0dXJuIElnfXZhciBPZyxnUjtmdW5jdGlvbiBwQigpe2lmKGdSKXJldHVybiBPZztnUj0xLE9nPWUsZS5kaXNwbGF5TmFtZT0icHNsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5wc2w9e2NvbW1lbnQ6e3BhdHRlcm46LyMuKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXC58W15cXCJdKSoiLyxncmVlZHk6ITAsaW5zaWRlOntzeW1ib2w6L1xcW250cmJBLVoiXFxdL319LCJoZXJlZG9jLXN0cmluZyI6e3BhdHRlcm46Lzw8PChbYS16QS1aX11cdyopW1xyXG5dKD86LipbXHJcbl0pKj9cMVxiLyxhbGlhczoic3RyaW5nIixncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86X19tdWx0aXxfX3NpbmdsZXxjYXNlfGRlZmF1bHR8ZG98ZWxzZXxlbHNpZnxleGl0fGV4cG9ydHxmb3J8Zm9yZWFjaHxmdW5jdGlvbnxpZnxsYXN0fGxpbmV8bG9jYWx8bmV4dHxyZXF1aXJlc3xyZXR1cm58c3dpdGNofHVudGlsfHdoaWxlfHdvcmQpXGIvLGNvbnN0YW50Oi9cYig/OkFMQVJNfENIQVJUX0FERF9HUkFQSHxDSEFSVF9ERUxFVEVfR1JBUEh8Q0hBUlRfREVTVFJPWXxDSEFSVF9MT0FEfENIQVJUX1BSSU5UfEVPRnxPRkZMSU5FfE9LfFBTTF9QUk9GX0xPR3xSX0NIRUNLX0hPUklafFJfQ0hFQ0tfVkVSVHxSX0NMSUNLRVJ8Ul9DT0xVTU58Ul9GUkFNRXxSX0lDT058Ul9MQUJFTHxSX0xBQkVMX0NFTlRFUnxSX0xJU1RfTVVMVElQTEV8Ul9MSVNUX01VTFRJUExFX05EfFJfTElTVF9TSU5HTEV8Ul9MSVNUX1NJTkdMRV9ORHxSX01FTlV8Ul9QT1BVUHxSX1BPUFVQX1NDUk9MTEVEfFJfUkFESU9fSE9SSVp8Ul9SQURJT19WRVJUfFJfUk9XfFJfU0NBTEVfSE9SSVp8Ul9TQ0FMRV9WRVJUfFJfU0VQX0hPUklafFJfU0VQX1ZFUlR8Ul9TUElOTkVSfFJfVEVYVF9GSUVMRHxSX1RFWFRfRklFTERfTEFCRUx8Ul9UT0dHTEV8VFJJTV9MRUFESU5HfFRSSU1fTEVBRElOR19BTkRfVFJBSUxJTkd8VFJJTV9SRURVTkRBTlR8VFJJTV9UUkFJTElOR3xWT0lEfFdBUk4pXGIvLGJvb2xlYW46L1xiKD86RkFMU0V8RmFsc2V8Tk98Tm98VFJVRXxUcnVlfFlFU3xZZXN8ZmFsc2V8bm98dHJ1ZXx5ZXMpXGIvLHZhcmlhYmxlOi9cYig/OlBzbERlYnVnfGVycm5vfGV4aXRfc3RhdHVzKVxiLyxidWlsdGluOntwYXR0ZXJuOi9cYig/OlBzbEV4ZWN1dGV8UHNsRnVuY3Rpb25DYWxsfFBzbEZ1bmN0aW9uRXhpc3RzfFBzbFNldE9wdGlvbnN8X3NubXBfZGVidWd8YWNvc3xhZGRfZGlhcnl8YW5ub3RhdGV8YW5ub3RhdGVfZ2V0fGFzY2lpX3RvX2ViY2RpY3xhc2N0aW1lfGFzaW58YXRhbnxhdGV4aXR8YmF0Y2hfc2V0fGJsYWNrb3V0fGNhdHxjZWlsfGNoYW5fZXhpc3RzfGNoYW5nZV9zdGF0ZXxjbG9zZXxjb2RlX2N2dHxjb25kX3NpZ25hbHxjb25kX3dhaXR8Y29uc29sZV90eXBlfGNvbnZlcnRfYmFzZXxjb252ZXJ0X2RhdGV8Y29udmVydF9sb2NhbGVfZGF0ZXxjb3N8Y29zaHxjcmVhdGV8ZGF0ZXxkY2dldF90ZXh0fGRlc3Ryb3l8ZGVzdHJveV9sb2NrfGRnZXRfdGV4dHxkaWZmZXJlbmNlfGR1bXBfaGlzdHxlYmNkaWNfdG9fYXNjaWl8ZW5jcnlwdHxldmVudF9hcmNoaXZlfGV2ZW50X2NhdGFsb2dfZ2V0fGV2ZW50X2NoZWNrfGV2ZW50X3F1ZXJ5fGV2ZW50X3JhbmdlX21hbmFnZXxldmVudF9yYW5nZV9xdWVyeXxldmVudF9yZXBvcnR8ZXZlbnRfc2NoZWR1bGV8ZXZlbnRfdHJpZ2dlcnxldmVudF90cmlnZ2VyMnxleGVjdXRlfGV4aXN0c3xleHB8ZmFic3xmaWxlfGZsb29yfGZtb2R8Zm9wZW58ZnNlZWt8ZnRlbGx8ZnVsbF9kaXNjb3Zlcnl8Z2V0fGdldF9jaGFuX2luZm98Z2V0X3Jhbmdlc3xnZXRfdGV4dHxnZXRfdmFyc3xnZXRlbnZ8Z2V0aG9zdGluZm98Z2V0cGlkfGdldHBuYW1lfGdyZXB8aGlzdG9yeXxoaXN0b3J5X2dldF9yZXRlbnRpb258aW5fdHJhbnNpdGlvbnxpbmRleHxpbnR8aW50ZXJuYWx8aW50ZXJzZWN0aW9ufGlzX3Zhcnxpc251bWJlcnxqb2lufGtpbGx8bGVuZ3RofGxpbmVzfGxvY2t8bG9ja19pbmZvfGxvZ3xsb2cxMHxsb2dlfG1hdGNobGluZXxtc2dfY2hlY2t8bXNnX2dldF9mb3JtYXR8bXNnX2dldF9zZXZlcml0eXxtc2dfcHJpbnRmfG1zZ19zcHJpbnRmfG50aGFyZ3xudGhhcmdmfG50aGxpbmV8bnRobGluZWZ8bnVtX2J5dGVzfG51bV9jb25zb2xlc3xwY29uZmlnfHBvcGVufHBvcGxpbmVzfHBvd3xwcmludHxwcmludGZ8cHJvY19leGlzdHN8cHJvY2Vzc3xyYW5kb218cmVhZHxyZWFkbG58cmVmcmVzaF9wYXJhbWV0ZXJzfHJlbW90ZV9jaGVja3xyZW1vdGVfY2xvc2V8cmVtb3RlX2V2ZW50X3F1ZXJ5fHJlbW90ZV9ldmVudF90cmlnZ2VyfHJlbW90ZV9maWxlX3NlbmR8cmVtb3RlX29wZW58cmVtb3ZlfHJlcGxhY2V8cmluZGV4fHNlY19jaGVja19wcml2fHNlY19zdG9yZV9nZXR8c2VjX3N0b3JlX3NldHxzZXR8c2V0X2FsYXJtX3Jhbmdlc3xzZXRfbG9jYWxlfHNoYXJlfHNpbnxzaW5ofHNsZWVwfHNubXBfYWdlbnRfY29uZmlnfHNubXBfYWdlbnRfc3RhcnR8c25tcF9hZ2VudF9zdG9wfHNubXBfY2xvc2V8c25tcF9jb25maWd8c25tcF9nZXR8c25tcF9nZXRfbmV4dHxzbm1wX2hfZ2V0fHNubXBfaF9nZXRfbmV4dHxzbm1wX2hfc2V0fHNubXBfb3Blbnxzbm1wX3NldHxzbm1wX3RyYXBfaWdub3JlfHNubXBfdHJhcF9saXN0ZW58c25tcF90cmFwX3JhaXNlX3N0ZF90cmFwfHNubXBfdHJhcF9yZWNlaXZlfHNubXBfdHJhcF9yZWdpc3Rlcl9pbXxzbm1wX3RyYXBfc2VuZHxzbm1wX3dhbGt8c29wZW58c29ydHxzcGxpdGxpbmV8c3ByaW50ZnxzcXJ0fHNyYW5kb218c3RyX3JlcGVhdHxzdHJjYXNlY21wfHN1YnNldHxzdWJzdHJ8c3lzdGVtfHRhaWx8dGFufHRhbmh8dGV4dF9kb21haW58dGltZXx0bXBuYW18dG9sb3dlcnx0b3VwcGVyfHRyYWNlX3BzbF9wcm9jZXNzfHRyaW18dW5pb258dW5pcXVlfHVubG9ja3x1bnNldHx2YV9hcmd8dmFfc3RhcnR8d3JpdGUpXGIvLGFsaWFzOiJidWlsdGluLWZ1bmN0aW9uIn0sImZvcmVhY2gtdmFyaWFibGUiOntwYXR0ZXJuOi8oXGJmb3JlYWNoXHMrKD86KD86XHcrXGJ8Iig/OlxcLnxbXlxcIl0pKiIpXHMrKXswLDJ9KVtfYS16QS1aXVx3Kig/PVxzKlwoKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGZ1bmN0aW9uOi9cYltfYS16XVx3KlxiKD89XHMqXCgpL2ksbnVtYmVyOi9cYig/OjB4WzAtOWEtZl0rfFxkKyg/OlwuXGQrKT8pXGIvaSxvcGVyYXRvcjovLS18XCtcK3wmJj0/fFx8XHw9P3w8PD0/fD4+PT98Wz0hXX58Wy0rKi8lJnxeIT08Pl09P3xcLnxbOj9dLyxwdW5jdHVhdGlvbjovWygpe31cW1xdOyxdL319cmV0dXJuIE9nfXZhciBMZyxtUjtmdW5jdGlvbiBmQigpe2lmKG1SKXJldHVybiBMZzttUj0xLExnPWUsZS5kaXNwbGF5TmFtZT0icHVnIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7YS5sYW5ndWFnZXMucHVnPXtjb21tZW50OntwYXR0ZXJuOi8oXihbXHQgXSopKVwvXC8uKig/Oig/OlxyP1xufFxyKVwyW1x0IF0uKykqL20sbG9va2JlaGluZDohMH0sIm11bHRpbGluZS1zY3JpcHQiOntwYXR0ZXJuOi8oXihbXHQgXSopc2NyaXB0XGIuKlwuW1x0IF0qKSg/Oig/OlxyP1xufFxyKD8hXG4pKSg/OlwyW1x0IF0uK3xccyo/KD89XHI/XG58XHIpKSkrL20sbG9va2JlaGluZDohMCxpbnNpZGU6YS5sYW5ndWFnZXMuamF2YXNjcmlwdH0sZmlsdGVyOntwYXR0ZXJuOi8oXihbXHQgXSopKTouKyg/Oig/OlxyP1xufFxyKD8hXG4pKSg/OlwyW1x0IF0uK3xccyo/KD89XHI/XG58XHIpKSkrL20sbG9va2JlaGluZDohMCxpbnNpZGU6eyJmaWx0ZXItbmFtZSI6e3BhdHRlcm46L146W1x3LV0rLyxhbGlhczoidmFyaWFibGUifSx0ZXh0Oi9cU1tcc1xTXSovfX0sIm11bHRpbGluZS1wbGFpbi10ZXh0Ijp7cGF0dGVybjovKF4oW1x0IF0qKVtcd1wtIy5dK1wuW1x0IF0qKSg/Oig/OlxyP1xufFxyKD8hXG4pKSg/OlwyW1x0IF0uK3xccyo/KD89XHI/XG58XHIpKSkrL20sbG9va2JlaGluZDohMH0sbWFya3VwOntwYXR0ZXJuOi8oXltcdCBdKik8LisvbSxsb29rYmVoaW5kOiEwLGluc2lkZTphLmxhbmd1YWdlcy5tYXJrdXB9LGRvY3R5cGU6e3BhdHRlcm46LygoPzpefFxuKVtcdCBdKilkb2N0eXBlKD86IC4rKT8vLGxvb2tiZWhpbmQ6ITB9LCJmbG93LWNvbnRyb2wiOntwYXR0ZXJuOi8oXltcdCBdKikoPzpjYXNlfGRlZmF1bHR8ZWFjaHxlbHNlfGlmfHVubGVzc3x3aGVufHdoaWxlKVxiKD86IC4rKT8vbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ZWFjaDp7cGF0dGVybjovXmVhY2ggLis/IGluXGIvLGluc2lkZTp7a2V5d29yZDovXGIoPzplYWNofGluKVxiLyxwdW5jdHVhdGlvbjovLC99fSxicmFuY2g6e3BhdHRlcm46L14oPzpjYXNlfGRlZmF1bHR8ZWxzZXxpZnx1bmxlc3N8d2hlbnx3aGlsZSlcYi8sYWxpYXM6ImtleXdvcmQifSxyZXN0OmEubGFuZ3VhZ2VzLmphdmFzY3JpcHR9fSxrZXl3b3JkOntwYXR0ZXJuOi8oXltcdCBdKikoPzphcHBlbmR8YmxvY2t8ZXh0ZW5kc3xpbmNsdWRlfHByZXBlbmQpXGIuKy9tLGxvb2tiZWhpbmQ6ITB9LG1peGluOlt7cGF0dGVybjovKF5bXHQgXSopbWl4aW4gLisvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7a2V5d29yZDovXm1peGluLyxmdW5jdGlvbjovXHcrKD89XHMqXCh8XHMqJCkvLHB1bmN0dWF0aW9uOi9bKCksLl0vfX0se3BhdHRlcm46LyheW1x0IF0qKVwrLisvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7bmFtZTp7cGF0dGVybjovXlwrXHcrLyxhbGlhczoiZnVuY3Rpb24ifSxyZXN0OmEubGFuZ3VhZ2VzLmphdmFzY3JpcHR9fV0sc2NyaXB0OntwYXR0ZXJuOi8oXltcdCBdKnNjcmlwdCg/Oig/OiZbXihdKyk/XChbXildK1wpKSpbXHQgXSkuKy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmEubGFuZ3VhZ2VzLmphdmFzY3JpcHR9LCJwbGFpbi10ZXh0Ijp7cGF0dGVybjovKF5bXHQgXSooPyEtKVtcd1wtIy5dKltcd1wtXSg/Oig/OiZbXihdKyk/XChbXildK1wpKSpcLz9bXHQgXSkuKy9tLGxvb2tiZWhpbmQ6ITB9LHRhZzp7cGF0dGVybjovKF5bXHQgXSopKD8hLSlbXHdcLSMuXSpbXHdcLV0oPzooPzomW14oXSspP1woW14pXStcKSkqXC8/Oj8vbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7YXR0cmlidXRlczpbe3BhdHRlcm46LyZbXihdK1woW14pXStcKS8saW5zaWRlOmEubGFuZ3VhZ2VzLmphdmFzY3JpcHR9LHtwYXR0ZXJuOi9cKFteKV0rXCkvLGluc2lkZTp7ImF0dHItdmFsdWUiOntwYXR0ZXJuOi8oPVxzKig/IVxzKSkoPzpce1tefV0qXH18W14sKVxyXG5dKykvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmEubGFuZ3VhZ2VzLmphdmFzY3JpcHR9LCJhdHRyLW5hbWUiOi9bXHctXSsoPz1ccyohPz18XHMqWywpXSkvLHB1bmN0dWF0aW9uOi9bIT0oKSxdKy99fV0scHVuY3R1YXRpb246LzovLCJhdHRyLWlkIjovI1tcd1wtXSsvLCJhdHRyLWNsYXNzIjovXC5bXHdcLV0rL319LGNvZGU6W3twYXR0ZXJuOi8oXltcdCBdKig/Oi18IT89KSkuKy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmEubGFuZ3VhZ2VzLmphdmFzY3JpcHR9XSxwdW5jdHVhdGlvbjovWy5cLSE9fF0rL307Zm9yKHZhciBpPS8oXihbXHQgXSopKTo8ZmlsdGVyX25hbWU+KD86KD86XHI/XG58XHIoPyFcbikpKD86XDJbXHQgXS4rfFxzKj8oPz1ccj9cbnxccikpKSsvLnNvdXJjZSxsPVt7ZmlsdGVyOiJhdHBsIixsYW5ndWFnZToidHdpZyJ9LHtmaWx0ZXI6ImNvZmZlZSIsbGFuZ3VhZ2U6ImNvZmZlZXNjcmlwdCJ9LCJlanMiLCJoYW5kbGViYXJzIiwibGVzcyIsImxpdmVzY3JpcHQiLCJtYXJrZG93biIse2ZpbHRlcjoic2FzcyIsbGFuZ3VhZ2U6InNjc3MifSwic3R5bHVzIl0sdT17fSxjPTAsZD1sLmxlbmd0aDtjPGQ7YysrKXt2YXIgZj1sW2NdO2Y9dHlwZW9mIGY9PSJzdHJpbmciP3tmaWx0ZXI6ZixsYW5ndWFnZTpmfTpmLGEubGFuZ3VhZ2VzW2YubGFuZ3VhZ2VdJiYodVsiZmlsdGVyLSIrZi5maWx0ZXJdPXtwYXR0ZXJuOlJlZ0V4cChpLnJlcGxhY2UoIjxmaWx0ZXJfbmFtZT4iLGZ1bmN0aW9uKCl7cmV0dXJuIGYuZmlsdGVyfSksIm0iKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImZpbHRlci1uYW1lIjp7cGF0dGVybjovXjpbXHctXSsvLGFsaWFzOiJ2YXJpYWJsZSJ9LHRleHQ6e3BhdHRlcm46L1xTW1xzXFNdKi8sYWxpYXM6W2YubGFuZ3VhZ2UsImxhbmd1YWdlLSIrZi5sYW5ndWFnZV0saW5zaWRlOmEubGFuZ3VhZ2VzW2YubGFuZ3VhZ2VdfX19KX1hLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInB1ZyIsImZpbHRlciIsdSl9KShuKX1yZXR1cm4gTGd9dmFyIERnLGhSO2Z1bmN0aW9uIGdCKCl7aWYoaFIpcmV0dXJuIERnO2hSPTEsRGc9ZSxlLmRpc3BsYXlOYW1lPSJwdXBwZXQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXthLmxhbmd1YWdlcy5wdXBwZXQ9e2hlcmVkb2M6W3twYXR0ZXJuOi8oQFwoIihbXiJcclxuXC8pOl0rKSIoPzpcL1tucnRzJHVMXSopP1wpLiooPzpccj9cbnxccikpKD86LiooPzpccj9cbnxccig/IVxuKSkpKj9bIFx0XSooPzpcfFsgXHRdKik/KD86LVsgXHRdKik/XDIvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntwdW5jdHVhdGlvbjovKD89XFMpLipcUyg/PSAqJCkvfX0se3BhdHRlcm46LyhAXCgoW14iXHJcblwvKTpdKykoPzpcL1tucnRzJHVMXSopP1wpLiooPzpccj9cbnxccikpKD86LiooPzpccj9cbnxccig/IVxuKSkpKj9bIFx0XSooPzpcfFsgXHRdKik/KD86LVsgXHRdKik/XDIvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7cHVuY3R1YXRpb246Lyg/PVxTKS4qXFMoPz0gKiQpL319LHtwYXR0ZXJuOi9AXCgiPyg/OlteIlxyXG5cLyk6XSspIj8oPzpcL1tucnRzJHVMXSopP1wpLyxhbGlhczoic3RyaW5nIixpbnNpZGU6e3B1bmN0dWF0aW9uOntwYXR0ZXJuOi8oXCgpLis/KD89XCkpLyxsb29rYmVoaW5kOiEwfX19XSwibXVsdGlsaW5lLWNvbW1lbnQiOntwYXR0ZXJuOi8oXnxbXlxcXSlcL1wqW1xzXFNdKj9cKlwvLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoiY29tbWVudCJ9LHJlZ2V4OntwYXR0ZXJuOi8oKD86XGJub2RlXHMrfFt+PVwoXFtceyxdXHMqfFs9K10+XHMqfF5ccyopKVwvKD86W15cL1xcXXxcXFtcc1xTXSkrXC8oPzpbaW14XStcYnxcQikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7ImV4dGVuZGVkLXJlZ2V4Ijp7cGF0dGVybjovXlwvKD86W15cL1xcXXxcXFtcc1xTXSkrXC9baW1dKnhbaW1dKiQvLGluc2lkZTp7Y29tbWVudDovIy4qL319fX0sY29tbWVudDp7cGF0dGVybjovKF58W15cXF0pIy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oWyInXSkoPzpcJFx7KD86W14nIn1dfChbIiddKSg/Oig/IVwyKVteXFxdfFxcW1xzXFNdKSpcMikrXH18XCQoPyFceyl8KD8hXDEpW15cXCRdfFxcW1xzXFNdKSpcMS8sZ3JlZWR5OiEwLGluc2lkZTp7ImRvdWJsZS1xdW90ZWQiOntwYXR0ZXJuOi9eIltcc1xTXSoiJC8saW5zaWRlOnt9fX19LHZhcmlhYmxlOntwYXR0ZXJuOi9cJCg/Ojo6KT9cdysoPzo6Olx3KykqLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi86Oi99fSwiYXR0ci1uYW1lIjovKD86XGJcdyt8XCopKD89XHMqPT4pLyxmdW5jdGlvbjpbe3BhdHRlcm46LyhcLikoPyFcZClcdysvLGxvb2tiZWhpbmQ6ITB9LC9cYig/OmNvbnRhaW58ZGVidWd8ZXJyfGZhaWx8aW5jbHVkZXxpbmZvfG5vdGljZXxyZWFsaXplfHJlcXVpcmV8dGFnfHdhcm5pbmcpXGJ8XGIoPyFcZClcdysoPz1cKCkvXSxudW1iZXI6L1xiKD86MHhbYS1mXGRdK3xcZCsoPzpcLlxkKyk/KD86ZS0/XGQrKT8pXGIvaSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGtleXdvcmQ6L1xiKD86YXBwbGljYXRpb258YXR0cnxjYXNlfGNsYXNzfGNvbnN1bWVzfGRlZmF1bHR8ZGVmaW5lfGVsc2V8ZWxzaWZ8ZnVuY3Rpb258aWZ8aW1wb3J0fGluaGVyaXRzfG5vZGV8cHJpdmF0ZXxwcm9kdWNlc3x0eXBlfHVuZGVmfHVubGVzcylcYi8sZGF0YXR5cGU6e3BhdHRlcm46L1xiKD86QW55fEFycmF5fEJvb2xlYW58Q2FsbGFibGV8Q2F0YWxvZ2VudHJ5fENsYXNzfENvbGxlY3Rpb258RGF0YXxEZWZhdWx0fEVudW18RmxvYXR8SGFzaHxJbnRlZ2VyfE5vdFVuZGVmfE51bWVyaWN8T3B0aW9uYWx8UGF0dGVybnxSZWdleHB8UmVzb3VyY2V8UnVudGltZXxTY2FsYXJ8U3RyaW5nfFN0cnVjdHxUdXBsZXxUeXBlfFVuZGVmfFZhcmlhbnQpXGIvLGFsaWFzOiJzeW1ib2wifSxvcGVyYXRvcjovPVs9fj5dP3whWz1+XT98PCg/OjxcfD98Wz1+fC1dKT98Pls+PV0/fC0+P3x+PnxcfD4/Pj98WypcLyUrP118XGIoPzphbmR8aW58b3IpXGIvLHB1bmN0dWF0aW9uOi9bXFtcXXt9KCkuLDtdfDorL307dmFyIGk9W3twYXR0ZXJuOi8oXnxbXlxcXSlcJFx7KD86W14nInt9XXxce1tefV0qXH18KFsiJ10pKD86KD8hXDIpW15cXF18XFxbXHNcU10pKlwyKStcfS8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJzaG9ydC12YXJpYWJsZSI6e3BhdHRlcm46LyheXCRceykoPyFcdytcKCkoPzo6Oik/XHcrKD86OjpcdyspKi8sbG9va2JlaGluZDohMCxhbGlhczoidmFyaWFibGUiLGluc2lkZTp7cHVuY3R1YXRpb246Lzo6L319LGRlbGltaXRlcjp7cGF0dGVybjovXlwkLyxhbGlhczoidmFyaWFibGUifSxyZXN0OmEubGFuZ3VhZ2VzLnB1cHBldH19LHtwYXR0ZXJuOi8oXnxbXlxcXSlcJCg/Ojo6KT9cdysoPzo6Olx3KykqLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSIsaW5zaWRlOntwdW5jdHVhdGlvbjovOjovfX1dO2EubGFuZ3VhZ2VzLnB1cHBldC5oZXJlZG9jWzBdLmluc2lkZS5pbnRlcnBvbGF0aW9uPWksYS5sYW5ndWFnZXMucHVwcGV0LnN0cmluZy5pbnNpZGVbImRvdWJsZS1xdW90ZWQiXS5pbnNpZGUuaW50ZXJwb2xhdGlvbj1pfSkobil9cmV0dXJuIERnfXZhciBNZyxiUjtmdW5jdGlvbiBtQigpe2lmKGJSKXJldHVybiBNZztiUj0xLE1nPWUsZS5kaXNwbGF5TmFtZT0icHVyZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2EubGFuZ3VhZ2VzLnB1cmU9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXlxcXSlcL1wqW1xzXFNdKj9cKlwvLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W15cXDpdKVwvXC8uKi8sbG9va2JlaGluZDohMH0sLyMhLisvXSwiaW5saW5lLWxhbmciOntwYXR0ZXJuOi8lPFtcc1xTXSs/JT4vLGdyZWVkeTohMCxpbnNpZGU6e2xhbmc6e3BhdHRlcm46LyheJTwgKiktXCotLis/LVwqLS8sbG9va2JlaGluZDohMCxhbGlhczoiY29tbWVudCJ9LGRlbGltaXRlcjp7cGF0dGVybjovXiU8Lip8JT4kLyxhbGlhczoicHVuY3R1YXRpb24ifX19LHN0cmluZzp7cGF0dGVybjovIig/OlxcLnxbXiJcXFxyXG5dKSoiLyxncmVlZHk6ITB9LG51bWJlcjp7cGF0dGVybjovKCg/OlwuXC4pPykoPzpcYig/OmluZnxuYW4pXGJ8XGIweFtcZGEtZl0rfCg/OlxiKD86MGIpP1xkKyg/OlwuXGQrKT98XEJcLlxkKykoPzplWystXT9cZCspP0w/KS9pLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6L1xiKD86TlVMTHxhbnN8YnJlYWt8YnR8Y2FzZXxjYXRjaHxjZHxjbGVhcnxjb25zdHxkZWZ8ZGVsfGR1bXB8ZWxzZXxlbmR8ZXhpdHxleHRlcm58ZmFsc2V8Zm9yY2V8aGVscHxpZnxpbmZpeFtscl0/fGludGVyZmFjZXxsZXR8bHN8bWVtfG5hbWVzcGFjZXxub25maXh8b2Z8b3RoZXJ3aXNlfG91dGZpeHxvdmVycmlkZXxwb3N0Zml4fHByZWZpeHxwcml2YXRlfHB1YmxpY3xwd2R8cXVpdHxydW58c2F2ZXxzaG93fHN0YXRzfHRoZW58dGhyb3d8dHJhY2V8dHJ1ZXx0eXBlfHVuZGVycmlkZXx1c2luZ3x3aGVufHdpdGgpXGIvLGZ1bmN0aW9uOi9cYig/OmFic3xhZGRfKD86YWRkcnxjb25zdGRlZnwoPzpmdW5kZWZ8aW50ZXJmYWNlfG1hY2RlZnx0eXBlZGVmKSg/Ol9hdCk/fHZhcmRlZil8YWxsfGFueXxhcHBscD98YXJpdHl8YmlnaW50cD98YmxvYig/Ol9jcmN8X3NpemV8cCk/fGJvb2xwP3xieXRlX2M/c3RyaW5nKD86X3BvaW50ZXIpP3xieXRlXyg/Om1hdHJpeHxwb2ludGVyKXxjYWxsb2N8Y2F0fGNhdG1hcHxjZWlsfGNoYXJbcHNdP3xjaGVja19wdHJ0YWd8Y2hyfGNsZWFyX3NlbnRyeXxjbGVhcnN5bXxjbG9zdXJlcD98Y21hdHJpeHA/fGNvbHM/fGNvbGNhdCg/Om1hcCk/fGNvbG1hcHxjb2xyZXZ8Y29sdmVjdG9yKD86cHxzZXEpP3xjb21wbGV4KD86X2Zsb2F0Xyg/Om1hdHJpeHxwb2ludGVyKXxfbWF0cml4KD86X3ZpZXcpP3xfcG9pbnRlcnxwKT98Y29uanxjb29rZWRwP3xjc3R8Y3N0cmluZyg/Ol8oPzpkdXB8bGlzdHx2ZWN0b3IpKT98Y3VycnkzP3xjeWNsZW4/fGRlbF8oPzpjb25zdGRlZnxmdW5kZWZ8aW50ZXJmYWNlfG1hY2RlZnx0eXBlZGVmfHZhcmRlZil8ZGVsZXRlfGRpYWcoPzptYXQpP3xkaW18ZG1hdHJpeHA/fGRvfGRvdWJsZSg/Ol9tYXRyaXgoPzpfdmlldyk/fF9wb2ludGVyfHApP3xkb3dpdGgzP3xkcm9wfGRyb3B3aGlsZXxldmFsKD86Y21kKT98ZXhhY3RwfGZpbHRlcnxmaXh8Zml4aXR5fGZsaXB8ZmxvYXQoPzpfbWF0cml4fF9wb2ludGVyKXxmbG9vcnxmb2xkW2xyXTE/fGZyYWN8ZnJlZXxmdW5wP3xmdW5jdGlvbnA/fGdjZHxnZXQoPzpfKD86Ynl0ZXxjb25zdGRlZnxkb3VibGV8ZmxvYXR8ZnVuZGVmfGludCg/OjY0KT98aW50ZXJmYWNlKD86X3R5cGVkZWYpP3xsb25nfG1hY2RlZnxwb2ludGVyfHB0cnRhZ3xzZW50cnl8c2hvcnR8c3RyaW5nfHR5cGVkZWZ8dmFyZGVmKSk/fGdsb2JzeW18aGFzaHxoZWFkfGlkfGltfGltYXRyaXhwP3xpbmRleHxpbmV4YWN0cHxpbmZwfGluaXR8aW5zZXJ0fGludCg/Ol9tYXRyaXgoPzpfdmlldyk/fF9wb2ludGVyfHApP3xpbnQ2NF8oPzptYXRyaXh8cG9pbnRlcil8aW50ZWdlcnA/fGl0ZXJhdGVuP3xpdGVyd2hpbGV8am9pbnxrZXlzP3xsYW1iZGFwP3xsYXN0KD86ZXJyKD86cG9zKT8pP3xsY2R8bGlzdFsycF0/fGxpc3RtYXB8bWFrZV9wdHJ0YWd8bWFsbG9jfG1hcHxtYXRjYXR8bWF0cml4cD98bWF4fG1lbWJlcnxtaW58bmFucHxuYXJnc3xubWF0cml4cD98bnVsbHxudW1iZXJwP3xvcmR8cGFjayg/OmVkKT98cG9pbnRlcig/Ol9jYXN0fF90YWd8X3R5cGV8cCk/fHBvd3xwcmVkfHB0cnRhZ3xwdXQoPzpfKD86Ynl0ZXxkb3VibGV8ZmxvYXR8aW50KD86NjQpP3xsb25nfHBvaW50ZXJ8c2hvcnR8c3RyaW5nKSk/fHJhdGlvbmFscD98cmV8cmVhbHA/fHJlYWxsb2N8cmVjb3JkcD98cmVkaW18cmVkdWNlKD86X3dpdGgpP3xyZWZwP3xyZXBlYXRuP3xyZXZlcnNlfHJsaXN0cD98cm91bmR8cm93cz98cm93Y2F0KD86bWFwKT98cm93bWFwfHJvd3Jldnxyb3d2ZWN0b3IoPzpwfHNlcSk/fHNhbWV8c2Nhbltscl0xP3xzZW50cnl8c2dufHNob3J0Xyg/Om1hdHJpeHxwb2ludGVyKXxzbGljZXxzbWF0cml4cD98c29ydHxzcGxpdHxzdHJ8c3RyY2F0fHN0cmVhbXxzdHJpZGV8c3RyaW5nKD86Xyg/OmR1cHxsaXN0fHZlY3Rvcil8cCk/fHN1YmRpYWcoPzptYXQpP3xzdWJtYXR8c3Vic2VxMj98c3Vic3RyfHN1Y2N8c3VwZGlhZyg/Om1hdCk/fHN5bWJvbHA/fHRhaWx8dGFrZXx0YWtld2hpbGV8dGh1bmtwP3x0cmFuc3Bvc2V8dHJ1bmN8dHVwbGVwP3x0eXBlcHx1Ynl0ZXx1aW50KD86NjQpP3x1bG9uZ3x1bmN1cnJ5Mz98dW5yZWZ8dW56aXAzP3x1cGRhdGV8dXNob3J0fHZhbHM/fHZhcnA/fHZlY3Rvcig/OnB8c2VxKT98dm9pZHx6aXAzP3x6aXB3aXRoMz8pXGIvLHNwZWNpYWw6e3BhdHRlcm46L1xiX19bYS16XStfX1xiL2ksYWxpYXM6ImJ1aWx0aW4ifSxvcGVyYXRvcjovKD86WyEiIyQlJicqKyxcLS5cLzo8PT4/QFxcXmB8flx1MDBhMS1cdTAwYmZcdTAwZDctXHUwMGY3XHUyMGQwLVx1MmJmZl18XGJfK1xiKSt8XGIoPzphbmR8ZGl2fG1vZHxub3R8b3IpXGIvLHB1bmN0dWF0aW9uOi9bKCl7fVxbXF07LHxdL307dmFyIGk9WyJjIix7bGFuZzoiYysrIixhbGlhczoiY3BwIn0sImZvcnRyYW4iXSxsPS8lPCAqLVwqLSAqPGxhbmc+XGQqICotXCotW1xzXFNdKz8lPi8uc291cmNlO2kuZm9yRWFjaChmdW5jdGlvbih1KXt2YXIgYz11O2lmKHR5cGVvZiB1IT0ic3RyaW5nIiYmKGM9dS5hbGlhcyx1PXUubGFuZyksYS5sYW5ndWFnZXNbY10pe3ZhciBkPXt9O2RbImlubGluZS1sYW5nLSIrY109e3BhdHRlcm46UmVnRXhwKGwucmVwbGFjZSgiPGxhbmc+Iix1LnJlcGxhY2UoLyhbLisqP1wvXFwoKXt9XFtcXV0pL2csIlxcJDEiKSksImkiKSxpbnNpZGU6YS51dGlsLmNsb25lKGEubGFuZ3VhZ2VzLnB1cmVbImlubGluZS1sYW5nIl0uaW5zaWRlKX0sZFsiaW5saW5lLWxhbmctIitjXS5pbnNpZGUucmVzdD1hLnV0aWwuY2xvbmUoYS5sYW5ndWFnZXNbY10pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicHVyZSIsImlubGluZS1sYW5nIixkKX19KSxhLmxhbmd1YWdlcy5jJiYoYS5sYW5ndWFnZXMucHVyZVsiaW5saW5lLWxhbmciXS5pbnNpZGUucmVzdD1hLnV0aWwuY2xvbmUoYS5sYW5ndWFnZXMuYykpfSkobil9cmV0dXJuIE1nfXZhciBVZyx5UjtmdW5jdGlvbiBoQigpe2lmKHlSKXJldHVybiBVZzt5Uj0xLFVnPWUsZS5kaXNwbGF5TmFtZT0icHVyZWJhc2ljIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5wdXJlYmFzaWM9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2NvbW1lbnQ6LzsuKi8sa2V5d29yZDovXGIoPzphbGlnbnxhbmR8YXN8YnJlYWt8Y2FsbGRlYnVnZ2VyfGNhc2V8Y29tcGlsZXJjYXNlfGNvbXBpbGVyZGVmYXVsdHxjb21waWxlcmVsc2V8Y29tcGlsZXJlbHNlaWZ8Y29tcGlsZXJlbmRpZnxjb21waWxlcmVuZHNlbGVjdHxjb21waWxlcmVycm9yfGNvbXBpbGVyaWZ8Y29tcGlsZXJzZWxlY3R8Y29udGludWV8ZGF0YXxkYXRhc2VjdGlvbnxkZWJ1Z3xkZWJ1Z2xldmVsfGRlY2xhcmV8ZGVjbGFyZWN8ZGVjbGFyZWNkbGx8ZGVjbGFyZWRsbHxkZWNsYXJlbW9kdWxlfGRlZmF1bHR8ZGVmaW5lfGRpbXxkaXNhYmxlYXNtfGRpc2FibGVkZWJ1Z2dlcnxkaXNhYmxlZXhwbGljaXR8ZWxzZXxlbHNlaWZ8ZW5hYmxlYXNtfGVuYWJsZWRlYnVnZ2VyfGVuYWJsZWV4cGxpY2l0fGVuZHxlbmRkYXRhc2VjdGlvbnxlbmRkZWNsYXJlbW9kdWxlfGVuZGVudW1lcmF0aW9ufGVuZGlmfGVuZGltcG9ydHxlbmRpbnRlcmZhY2V8ZW5kbWFjcm98ZW5kbW9kdWxlfGVuZHByb2NlZHVyZXxlbmRzZWxlY3R8ZW5kc3RydWN0dXJlfGVuZHN0cnVjdHVyZXVuaW9ufGVuZHdpdGh8ZW51bWVyYXRpb258ZXh0ZW5kc3xmYWtlcmV0dXJufGZvcnxmb3JlYWNofGZvcmV2ZXJ8Z2xvYmFsfGdvc3VifGdvdG98aWZ8aW1wb3J0fGltcG9ydGN8aW5jbHVkZWJpbmFyeXxpbmNsdWRlZmlsZXxpbmNsdWRlcGF0aHxpbnRlcmZhY2V8bWFjcm98bW9kdWxlfG5ld2xpc3R8bmV3bWFwfG5leHR8bm90fG9yfHByb2NlZHVyZXxwcm9jZWR1cmVjfHByb2NlZHVyZWNkbGx8cHJvY2VkdXJlZGxsfHByb2NlZHVyZXJldHVybnxwcm90ZWN0ZWR8cHJvdG90eXBlfHByb3RvdHlwZWN8cmVhZHxyZWRpbXxyZXBlYXR8cmVzdG9yZXxyZXR1cm58cnVudGltZXxzZWxlY3R8c2hhcmVkfHN0YXRpY3xzdGVwfHN0cnVjdHVyZXxzdHJ1Y3R1cmV1bmlvbnxzd2FwfHRocmVhZGVkfHRvfHVudGlsfHdlbmR8d2hpbGV8d2l0aHx4aW5jbHVkZWZpbGV8eG9yKVxiL2ksZnVuY3Rpb246L1xiXHcrKD86XC5cdyspP1xzKig/PVwoKS8sbnVtYmVyOi8oPzpcJFtcZGEtZl0rfFxiLT8oPzpcZCsoPzpcLlxkKyk/fFwuXGQrKSg/OmVbKy1dP1xkKyk/KVxiL2ksb3BlcmF0b3I6Lyg/OkBcKj98XD98XCopXHcrfC1bPi1dP3xcK1wrP3whPT98PDw/PT98Pj4/PT98PT0/fCYmP3xcfD9cfHxbfl4lPyovQF0vfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJwdXJlYmFzaWMiLCJrZXl3b3JkIix7dGFnOi8jXHcrXCQ/Lyxhc206e3BhdHRlcm46LyheW1x0IF0qKSEuKi9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InRhZyIsaW5zaWRlOntjb21tZW50Oi87LiovLHN0cmluZzp7cGF0dGVybjovKFsiJ2BdKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITB9LCJsYWJlbC1yZWZlcmVuY2UtYW5vbnltb3VzIjp7cGF0dGVybjovKCFccypqW2Etel0rXHMrKUBbZmJdL2ksbG9va2JlaGluZDohMCxhbGlhczoiZmFzbS1sYWJlbCJ9LCJsYWJlbC1yZWZlcmVuY2UtYWRkcmVzc2VkIjp7cGF0dGVybjovKCFccypqW2Etel0rXHMrKVtBLVouXz8kQF1bXHcuPyRAfiNdKi9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZhc20tbGFiZWwifSxrZXl3b3JkOlsvXGIoPzpleHRlcm58Z2xvYmFsKVxiW147XHJcbl0qL2ksL1xiKD86Q1BVfERFRkFVTFR8RkxPQVQpXGIuKi9dLGZ1bmN0aW9uOntwYXR0ZXJuOi9eKFtcdCBdKiFccyopW1xkYS16XSsoPz1cc3wkKS9pbSxsb29rYmVoaW5kOiEwfSwiZnVuY3Rpb24taW5saW5lIjp7cGF0dGVybjovKDpccyopW1xkYS16XSsoPz1ccykvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9LGxhYmVsOntwYXR0ZXJuOi9eKFtcdCBdKiFccyopW0EtWmEtei5fPyRAXVtcdy4/JEB+I10qKD89OikvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJmYXNtLWxhYmVsIn0scmVnaXN0ZXI6L1xiKD86c3RcZHxbeHl6XW1tXGRcZD98W2NkdF1yXGR8clxkXGQ/W2J3ZF0/fFtlcl0/W2FiY2RdeHxbYWJjZF1baGxdfFtlcl0/KD86YnB8ZGl8c2l8c3ApfFtjZGVmZ3Ndc3xtbVxkKylcYi9pLG51bWJlcjovKD86XGJ8LXwoPz1cJCkpKD86MFtoeF0oPzpbXGRhLWZdKlwuKT9bXGRhLWZdKyg/OnBbKy1dP1xkKyk/fFxkW1xkYS1mXStbaHhdfFwkXGRbXGRhLWZdKnwwW29xXVswLTddK3xbMC03XStbb3FdfDBbYnldWzAxXSt8WzAxXStbYnldfDBbZHRdXGQrfCg/OlxkKyg/OlwuXGQrKT98XC5cZCspKD86XC4/ZVsrLV0/XGQrKT9bZHRdPylcYi9pLG9wZXJhdG9yOi9bXFtcXSorXC0vJTw+PSZ8JCEsLjpdL319fSksZGVsZXRlIG4ubGFuZ3VhZ2VzLnB1cmViYXNpY1siY2xhc3MtbmFtZSJdLGRlbGV0ZSBuLmxhbmd1YWdlcy5wdXJlYmFzaWMuYm9vbGVhbixuLmxhbmd1YWdlcy5wYmZhc209bi5sYW5ndWFnZXMucHVyZWJhc2ljfXJldHVybiBVZ312YXIgRmcsRVI7ZnVuY3Rpb24gYkIoKXtpZihFUilyZXR1cm4gRmc7RVI9MTt2YXIgZT1yYigpO0ZnPW4sbi5kaXNwbGF5TmFtZT0icHVyZXNjcmlwdCIsbi5hbGlhc2VzPVsicHVycyJdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSxhLmxhbmd1YWdlcy5wdXJlc2NyaXB0PWEubGFuZ3VhZ2VzLmV4dGVuZCgiaGFza2VsbCIse2tleXdvcmQ6L1xiKD86YWRvfGNhc2V8Y2xhc3N8ZGF0YXxkZXJpdmV8ZG98ZWxzZXxmb3JhbGx8aWZ8aW58aW5maXhsfGluZml4cnxpbnN0YW5jZXxsZXR8bW9kdWxlfG5ld3R5cGV8b2Z8cHJpbWl0aXZlfHRoZW58dHlwZXx3aGVyZSlcYnziiIAvLCJpbXBvcnQtc3RhdGVtZW50Ijp7cGF0dGVybjovKF5bXHQgXSopaW1wb3J0XHMrW0EtWl1bXHcnXSooPzpcLltBLVpdW1x3J10qKSooPzpccythc1xzK1tBLVpdW1x3J10qKD86XC5bQS1aXVtcdyddKikqKT8oPzpccytoaWRpbmdcYik/L20sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L1xiKD86YXN8aGlkaW5nfGltcG9ydClcYi8scHVuY3R1YXRpb246L1wuL319LGJ1aWx0aW46L1xiKD86YWJzdXJkfGFkZHxhcHxhcHBlbmR8YXBwbHl8YmV0d2VlbnxiaW5kfGJvdHRvbXxjbGFtcHxjb21wYXJlfGNvbXBhcmluZ3xjb21wb3NlfGNvbmp8Y29uc3R8ZGVncmVlfGRpc2NhcmR8ZGlzanxkaXZ8ZXF8ZmxhcHxmbGlwfGdjZHxpZGVudGl0eXxpZk18am9pbnxsY218bGlmdEExfGxpZnRNMXxtYXB8bWF4fG1lbXB0eXxtaW58bW9kfG11bHxuZWdhdGV8bm90fG5vdEVxfG9uZXxvdGhlcndpc2V8cmVjaXB8c2hvd3xzdWJ8dG9wfHVuaXR8dW5sZXNzfHVubGVzc018dm9pZHx3aGVufHdoZW5NfHplcm8pXGIvLG9wZXJhdG9yOlthLmxhbmd1YWdlcy5oYXNrZWxsLm9wZXJhdG9yWzBdLGEubGFuZ3VhZ2VzLmhhc2tlbGwub3BlcmF0b3JbMl0sL1tceGEyLVx4YTZceGE4XHhhOVx4YWNceGFlLVx4YjFceGI0XHhiOFx4ZDdceGY3XHUwMmMyLVx1MDJjNVx1MDJkMi1cdTAyZGZcdTAyZTUtXHUwMmViXHUwMmVkXHUwMmVmLVx1MDJmZlx1MDM3NVx1MDM4NFx1MDM4NVx1MDNmNlx1MDQ4Mlx1MDU4ZC1cdTA1OGZcdTA2MDYtXHUwNjA4XHUwNjBiXHUwNjBlXHUwNjBmXHUwNmRlXHUwNmU5XHUwNmZkXHUwNmZlXHUwN2Y2XHUwN2ZlXHUwN2ZmXHUwOWYyXHUwOWYzXHUwOWZhXHUwOWZiXHUwYWYxXHUwYjcwXHUwYmYzLVx1MGJmYVx1MGM3Zlx1MGQ0Zlx1MGQ3OVx1MGUzZlx1MGYwMS1cdTBmMDNcdTBmMTNcdTBmMTUtXHUwZjE3XHUwZjFhLVx1MGYxZlx1MGYzNFx1MGYzNlx1MGYzOFx1MGZiZS1cdTBmYzVcdTBmYzctXHUwZmNjXHUwZmNlXHUwZmNmXHUwZmQ1LVx1MGZkOFx1MTA5ZVx1MTA5Zlx1MTM5MC1cdTEzOTlcdTE2NmRcdTE3ZGJcdTE5NDBcdTE5ZGUtXHUxOWZmXHUxYjYxLVx1MWI2YVx1MWI3NC1cdTFiN2NcdTFmYmRcdTFmYmYtXHUxZmMxXHUxZmNkLVx1MWZjZlx1MWZkZC1cdTFmZGZcdTFmZWQtXHUxZmVmXHUxZmZkXHUxZmZlXHUyMDQ0XHUyMDUyXHUyMDdhLVx1MjA3Y1x1MjA4YS1cdTIwOGNcdTIwYTAtXHUyMGJmXHUyMTAwXHUyMTAxXHUyMTAzLVx1MjEwNlx1MjEwOFx1MjEwOVx1MjExNFx1MjExNi1cdTIxMThcdTIxMWUtXHUyMTIzXHUyMTI1XHUyMTI3XHUyMTI5XHUyMTJlXHUyMTNhXHUyMTNiXHUyMTQwLVx1MjE0NFx1MjE0YS1cdTIxNGRcdTIxNGZcdTIxOGFcdTIxOGJcdTIxOTAtXHUyMzA3XHUyMzBjLVx1MjMyOFx1MjMyYi1cdTI0MjZcdTI0NDAtXHUyNDRhXHUyNDljLVx1MjRlOVx1MjUwMC1cdTI3NjdcdTI3OTQtXHUyN2M0XHUyN2M3LVx1MjdlNVx1MjdmMC1cdTI5ODJcdTI5OTktXHUyOWQ3XHUyOWRjLVx1MjlmYlx1MjlmZS1cdTJiNzNcdTJiNzYtXHUyYjk1XHUyYjk3LVx1MmJmZlx1MmNlNS1cdTJjZWFcdTJlNTBcdTJlNTFcdTJlODAtXHUyZTk5XHUyZTliLVx1MmVmM1x1MmYwMC1cdTJmZDVcdTJmZjAtXHUyZmZiXHUzMDA0XHUzMDEyXHUzMDEzXHUzMDIwXHUzMDM2XHUzMDM3XHUzMDNlXHUzMDNmXHUzMDliXHUzMDljXHUzMTkwXHUzMTkxXHUzMTk2LVx1MzE5Zlx1MzFjMC1cdTMxZTNcdTMyMDAtXHUzMjFlXHUzMjJhLVx1MzI0N1x1MzI1MFx1MzI2MC1cdTMyN2ZcdTMyOGEtXHUzMmIwXHUzMmMwLVx1MzNmZlx1NGRjMC1cdTRkZmZcdWE0OTAtXHVhNGM2XHVhNzAwLVx1YTcxNlx1YTcyMFx1YTcyMVx1YTc4OVx1YTc4YVx1YTgyOC1cdWE4MmJcdWE4MzYtXHVhODM5XHVhYTc3LVx1YWE3OVx1YWI1Ylx1YWI2YVx1YWI2Ylx1ZmIyOVx1ZmJiMi1cdWZiYzFcdWZkZmNcdWZkZmRcdWZlNjJcdWZlNjQtXHVmZTY2XHVmZTY5XHVmZjA0XHVmZjBiXHVmZjFjLVx1ZmYxZVx1ZmYzZVx1ZmY0MFx1ZmY1Y1x1ZmY1ZVx1ZmZlMC1cdWZmZTZcdWZmZTgtXHVmZmVlXHVmZmZjXHVmZmZkXS9dfSksYS5sYW5ndWFnZXMucHVycz1hLmxhbmd1YWdlcy5wdXJlc2NyaXB0fXJldHVybiBGZ312YXIgQmcsU1I7ZnVuY3Rpb24geUIoKXtpZihTUilyZXR1cm4gQmc7U1I9MSxCZz1lLGUuZGlzcGxheU5hbWU9InB5dGhvbiIsZS5hbGlhc2VzPVsicHkiXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLnB5dGhvbj17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pIy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sInN0cmluZy1pbnRlcnBvbGF0aW9uIjp7cGF0dGVybjovKD86ZnxmcnxyZikoPzooIiIifCcnJylbXHNcU10qP1wxfCgifCcpKD86XFwufCg/IVwyKVteXFxcclxuXSkqXDIpL2ksZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKCg/Ol58W157XSkoPzpce1x7KSopXHsoPyFceykoPzpbXnt9XXxceyg/IVx7KSg/Oltee31dfFx7KD8hXHspKD86W157fV0pK1x9KStcfSkrXH0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiZm9ybWF0LXNwZWMiOntwYXR0ZXJuOi8oOilbXjooKXt9XSsoPz1cfSQpLyxsb29rYmVoaW5kOiEwfSwiY29udmVyc2lvbi1vcHRpb24iOntwYXR0ZXJuOi8hW3NyYV0oPz1bOn1dJCkvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHJlc3Q6bnVsbH19LHN0cmluZzovW1xzXFNdKy99fSwidHJpcGxlLXF1b3RlZC1zdHJpbmciOntwYXR0ZXJuOi8oPzpbcnViXXxicnxyYik/KCIiInwnJycpW1xzXFNdKj9cMS9pLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIn0sc3RyaW5nOntwYXR0ZXJuOi8oPzpbcnViXXxicnxyYik/KCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS9pLGdyZWVkeTohMH0sZnVuY3Rpb246e3BhdHRlcm46LygoPzpefFxzKWRlZlsgXHRdKylbYS16QS1aX11cdyooPz1ccypcKCkvZyxsb29rYmVoaW5kOiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYmNsYXNzXHMrKVx3Ky9pLGxvb2tiZWhpbmQ6ITB9LGRlY29yYXRvcjp7cGF0dGVybjovKF5bXHQgXSopQFx3Kyg/OlwuXHcrKSovbSxsb29rYmVoaW5kOiEwLGFsaWFzOlsiYW5ub3RhdGlvbiIsInB1bmN0dWF0aW9uIl0saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0sa2V5d29yZDovXGIoPzpfKD89XHMqOil8YW5kfGFzfGFzc2VydHxhc3luY3xhd2FpdHxicmVha3xjYXNlfGNsYXNzfGNvbnRpbnVlfGRlZnxkZWx8ZWxpZnxlbHNlfGV4Y2VwdHxleGVjfGZpbmFsbHl8Zm9yfGZyb218Z2xvYmFsfGlmfGltcG9ydHxpbnxpc3xsYW1iZGF8bWF0Y2h8bm9ubG9jYWx8bm90fG9yfHBhc3N8cHJpbnR8cmFpc2V8cmV0dXJufHRyeXx3aGlsZXx3aXRofHlpZWxkKVxiLyxidWlsdGluOi9cYig/Ol9faW1wb3J0X198YWJzfGFsbHxhbnl8YXBwbHl8YXNjaWl8YmFzZXN0cmluZ3xiaW58Ym9vbHxidWZmZXJ8Ynl0ZWFycmF5fGJ5dGVzfGNhbGxhYmxlfGNocnxjbGFzc21ldGhvZHxjbXB8Y29lcmNlfGNvbXBpbGV8Y29tcGxleHxkZWxhdHRyfGRpY3R8ZGlyfGRpdm1vZHxlbnVtZXJhdGV8ZXZhbHxleGVjZmlsZXxmaWxlfGZpbHRlcnxmbG9hdHxmb3JtYXR8ZnJvemVuc2V0fGdldGF0dHJ8Z2xvYmFsc3xoYXNhdHRyfGhhc2h8aGVscHxoZXh8aWR8aW5wdXR8aW50fGludGVybnxpc2luc3RhbmNlfGlzc3ViY2xhc3N8aXRlcnxsZW58bGlzdHxsb2NhbHN8bG9uZ3xtYXB8bWF4fG1lbW9yeXZpZXd8bWlufG5leHR8b2JqZWN0fG9jdHxvcGVufG9yZHxwb3d8cHJvcGVydHl8cmFuZ2V8cmF3X2lucHV0fHJlZHVjZXxyZWxvYWR8cmVwcnxyZXZlcnNlZHxyb3VuZHxzZXR8c2V0YXR0cnxzbGljZXxzb3J0ZWR8c3RhdGljbWV0aG9kfHN0cnxzdW18c3VwZXJ8dHVwbGV8dHlwZXx1bmljaHJ8dW5pY29kZXx2YXJzfHhyYW5nZXx6aXApXGIvLGJvb2xlYW46L1xiKD86RmFsc2V8Tm9uZXxUcnVlKVxiLyxudW1iZXI6L1xiMCg/OmIoPzpfP1swMV0pK3xvKD86Xz9bMC03XSkrfHgoPzpfP1thLWYwLTldKSspXGJ8KD86XGJcZCsoPzpfXGQrKSooPzpcLig/OlxkKyg/Ol9cZCspKik/KT98XEJcLlxkKyg/Ol9cZCspKikoPzplWystXT9cZCsoPzpfXGQrKSopP2o/KD8hXHcpL2ksb3BlcmF0b3I6L1stKyU9XT0/fCE9fDo9fFwqXCo/PT98XC9cLz89P3w8Wzw9Pl0/fD5bPT5dP3xbJnxefl0vLHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdL30sbi5sYW5ndWFnZXMucHl0aG9uWyJzdHJpbmctaW50ZXJwb2xhdGlvbiJdLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZS5yZXN0PW4ubGFuZ3VhZ2VzLnB5dGhvbixuLmxhbmd1YWdlcy5weT1uLmxhbmd1YWdlcy5weXRob259cmV0dXJuIEJnfXZhciBqZyx2UjtmdW5jdGlvbiBFQigpe2lmKHZSKXJldHVybiBqZzt2Uj0xLGpnPWUsZS5kaXNwbGF5TmFtZT0icSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMucT17c3RyaW5nOi8iKD86XFwufFteIlxcXHJcbl0pKiIvLGNvbW1lbnQ6W3twYXR0ZXJuOi8oW1x0IClcXX1dKVwvLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58XHI/XG58XHIpXC9bXHQgXSooPzooPzpccj9cbnxccikoPzouKig/OlxyP1xufFxyKD8hXG4pKSkqPyg/OlxcKD89W1x0IF0qKD86XHI/XG58XHIpKXwkKXxcUy4qKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi9eXFxbXHQgXSooPzpccj9cbnxccilbXHNcU10rL20sZ3JlZWR5OiEwfSx7cGF0dGVybjovXiMhLisvbSxncmVlZHk6ITB9XSxzeW1ib2w6L2AoPzo6XFMrfFtcdy5dKikvLGRhdGV0aW1lOntwYXR0ZXJuOi8wTlttZHp1dnRdfDBXW2R0el18XGR7NH1cLlxkXGQoPzptfFwuXGRcZCg/OlQoPzpcZFxkKD86OlxkXGQoPzo6XGRcZCg/OlsuOl1cZFxkXGQpPyk/KT8pPyk/W2R6XT8pfFxkXGQ6XGRcZCg/OjpcZFxkKD86Wy46XVxkXGRcZCk/KT9bdXZ0XT8vLGFsaWFzOiJudW1iZXIifSxudW1iZXI6L1xiKD8hWzAxXTopKD86ME5baGplXT98MFdbaGpdP3wwW3duXXwweFtcZGEtZkEtRl0rfFxkKyg/OlwuXGQqKT8oPzplWystXT9cZCspP1toamZlYl0/KS8sa2V5d29yZDovXFxcdytcYnxcYig/OmFic3xhY29zfGFqMD98YWxsfGFuZHxhbnl8YXNjfGFzaW58YXNvZnxhdGFufGF0dHJ8YXZncz98Ymlucj98Ynl8Y2VpbGluZ3xjb2xzfGNvcnxjb3N8Y291bnR8Y292fGNyb3NzfGNzdnxjdXR8ZGVsZXRlfGRlbHRhc3xkZXNjfGRldnxkaWZmZXJ8ZGlzdGluY3R8ZGl2fGRvfGRzYXZlfGVqfGVubGlzdHxldmFsfGV4Y2VwdHxleGVjfGV4aXR8ZXhwfGZieXxmaWxsc3xmaXJzdHxma2V5c3xmbGlwfGZsb29yfGZyb218Z2V0fGdldGVudnxncm91cHxndGltZXxoY2xvc2V8aGNvdW50fGhkZWx8aG9wZW58aHN5bXxpYXNjfGlkZW50aXR5fGlkZXNjfGlmfGlqfGlufGluc2VydHxpbnRlcnxpbnZ8a2V5cz98bGFzdHxsaWtlfGxpc3R8bGpmP3xsb2FkfGxvZ3xsb3dlcnxsc3F8bHRpbWV8bHRyaW18bWF2Z3xtYXhzP3xtY291bnR8bWQ1fG1kZXZ8bWVkfG1ldGF8bWlucz98bW1heHxtbWlufG1tdXxtb2R8bXN1bXxuZWd8bmV4dHxub3R8bnVsbHxvcnxvdmVyfHBhcnNlfHBlYWNofHBqfHBsaXN0fHByZHM/fHByZXZ8cHJpb3J8cmFuZHxyYW5rfHJhdGlvc3xyYXplfHJlYWQwfHJlYWQxfHJlY2lwcm9jYWx8cmV2YWx8cmV2ZXJzZXxybG9hZHxyb3RhdGV8cnNhdmV8cnRyaW18c2F2ZXxzY2FufHNjb3Z8c2RldnxzZWxlY3R8c2V0fHNldGVudnxzaG93fHNpZ251bXxzaW58c3FydHxzc3I/fHN0cmluZ3xzdWJsaXN0fHN1bXM/fHN2fHN2YXJ8c3lzdGVtfHRhYmxlc3x0YW58dGlsfHRyaW18dHhmfHR5cGV8dWp8dW5ncm91cHx1bmlvbnx1cGRhdGV8dXBwZXJ8dXBzZXJ0fHZhbHVlfHZhcnx2aWV3cz98dnN8d2F2Z3x3aGVyZXx3aGlsZXx3aXRoaW58d2oxP3x3c3VtfHd3fHhhc2N8eGJhcnx4Y29scz98eGRlc2N8eGV4cHx4Z3JvdXB8eGtleXx4bG9nfHhwcmV2fHhyYW5rKVxiLyxhZHZlcmI6e3BhdHRlcm46L1snXC9cXF06P3xcYmVhY2hcYi8sYWxpYXM6ImZ1bmN0aW9uIn0sdmVyYjp7cGF0dGVybjovKD86XEJcLlxCfFxiWzAxXTp8PFs9Pl0/fD49P3xbOitcLSolLCE/fj18JCYjQF5dKTo/fFxiX1xiOj8vLGFsaWFzOiJvcGVyYXRvciJ9LHB1bmN0dWF0aW9uOi9bKCl7fVxbXF07Ll0vfX1yZXR1cm4gamd9dmFyIHpnLFRSO2Z1bmN0aW9uIFNCKCl7aWYoVFIpcmV0dXJuIHpnO1RSPTEsemc9ZSxlLmRpc3BsYXlOYW1lPSJxbWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXtmb3IodmFyIGk9LyIoPzpcXC58W15cXCJcclxuXSkqInwnKD86XFwufFteXFwnXHJcbl0pKicvLnNvdXJjZSxsPS9cL1wvLiooPyEuKXxcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcLy8uc291cmNlLHU9Lyg/OlteXFwoKVtcXXt9IicvXXw8c3RyaW5nPnxcLyg/IVsqL10pfDxjb21tZW50PnxcKDxleHByPipcKXxcWzxleHByPipcXXxcezxleHByPipcfXxcXFtcc1xTXSkvLnNvdXJjZS5yZXBsYWNlKC88c3RyaW5nPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KS5yZXBsYWNlKC88Y29tbWVudD4vZyxmdW5jdGlvbigpe3JldHVybiBsfSksYz0wO2M8MjtjKyspdT11LnJlcGxhY2UoLzxleHByPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHV9KTt1PXUucmVwbGFjZSgvPGV4cHI+L2csIlteXFxzXFxTXSIpLGEubGFuZ3VhZ2VzLnFtbD17Y29tbWVudDp7cGF0dGVybjovXC9cLy4qfFwvXCpbXHNcU10qP1wqXC8vLGdyZWVkeTohMH0sImphdmFzY3JpcHQtZnVuY3Rpb24iOntwYXR0ZXJuOlJlZ0V4cCgvKCg/Ol58OylbIFx0XSopZnVuY3Rpb25ccysoPyFccylbXyRhLXpBLVpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSpccypcKDxqcz4qXClccypcezxqcz4qXH0vLnNvdXJjZS5yZXBsYWNlKC88anM+L2csZnVuY3Rpb24oKXtyZXR1cm4gdX0pLCJtIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6Imxhbmd1YWdlLWphdmFzY3JpcHQiLGluc2lkZTphLmxhbmd1YWdlcy5qYXZhc2NyaXB0fSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LygoPzpefFs6O10pWyBcdF0qKSg/IVxkKVx3Kyg/PVsgXHRdKlx7fFsgXHRdK29uXGIpL20sbG9va2JlaGluZDohMH0scHJvcGVydHk6W3twYXR0ZXJuOi8oKD86XnxbO3tdKVsgXHRdKikoPyFcZClcdysoPzpcLlx3KykqKD89WyBcdF0qOikvbSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKCg/Ol58Wzt7XSlbIFx0XSopcHJvcGVydHlbIFx0XSsoPyFcZClcdysoPzpcLlx3KykqWyBcdF0rKD8hXGQpXHcrKD86XC5cdyspKig/PVsgXHRdKjopL20sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L15wcm9wZXJ0eS8scHJvcGVydHk6L1x3Kyg/OlwuXHcrKSovfX1dLCJqYXZhc2NyaXB0LWV4cHJlc3Npb24iOntwYXR0ZXJuOlJlZ0V4cCgvKDpbIFx0XSopKD8hW1xzO31bXSkoPzooPyEkfFs7fV0pPGpzPikrLy5zb3VyY2UucmVwbGFjZSgvPGpzPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHV9KSwibSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJsYW5ndWFnZS1qYXZhc2NyaXB0IixpbnNpZGU6YS5sYW5ndWFnZXMuamF2YXNjcmlwdH0sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwufFteXFwiXHJcbl0pKiIvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphc3xpbXBvcnR8b24pXGIvLHB1bmN0dWF0aW9uOi9be31bXF06OyxdL319KShuKX1yZXR1cm4gemd9dmFyIHFnLHhSO2Z1bmN0aW9uIHZCKCl7aWYoeFIpcmV0dXJuIHFnO3hSPTEscWc9ZSxlLmRpc3BsYXlOYW1lPSJxb3JlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5xb3JlPW4ubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzpcL1wqW1xzXFNdKj9cKlwvfCg/OlwvXC98IykuKikvLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDEvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphYnN0cmFjdHxhbnl8YXNzZXJ0fGJpbmFyeXxib29sfGJvb2xlYW58YnJlYWt8Ynl0ZXxjYXNlfGNhdGNofGNoYXJ8Y2xhc3N8Y29kZXxjb25zdHxjb250aW51ZXxkYXRhfGRlZmF1bHR8ZG98ZG91YmxlfGVsc2V8ZW51bXxleHRlbmRzfGZpbmFsfGZpbmFsbHl8ZmxvYXR8Zm9yfGdvdG98aGFzaHxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbmhlcml0c3xpbnN0YW5jZW9mfGludHxpbnRlcmZhY2V8bG9uZ3xteXxuYXRpdmV8bmV3fG5vdGhpbmd8bnVsbHxvYmplY3R8b3VyfG93bnxwcml2YXRlfHJlZmVyZW5jZXxyZXRocm93fHJldHVybnxzaG9ydHxzb2Z0KD86Ym9vbHxkYXRlfGZsb2F0fGludHxsaXN0fG51bWJlcnxzdHJpbmcpfHN0YXRpY3xzdHJpY3RmcHxzdHJpbmd8c3VifHN1cGVyfHN3aXRjaHxzeW5jaHJvbml6ZWR8dGhpc3x0aHJvd3x0aHJvd3N8dHJhbnNpZW50fHRyeXx2b2lkfHZvbGF0aWxlfHdoaWxlKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvaSxmdW5jdGlvbjovXCQ/XGIoPyFcZClcdysoPz1cKCkvLG51bWJlcjovXGIoPzowYlswMV0rfDB4KD86W1xkYS1mXSpcLik/W1xkYS1mcFwtXSt8KD86XGQrKD86XC5cZCspP3xcLlxkKykoPzplXGQrKT9bZGZdfCg/OlxkKyg/OlwuXGQrKT98XC5cZCspKVxiL2ksb3BlcmF0b3I6e3BhdHRlcm46LyhefFteLl0pKD86XCtbKz1dP3wtWy09XT98WyE9XSg/Oj09P3x+KT98Pj4/PT98PCg/Oj0+P3w8PT8pP3wmWyY9XT98XHxbfD1dP3xbKlwvJV5dPT98W34/XSkvLGxvb2tiZWhpbmQ6ITB9LHZhcmlhYmxlOi9cJCg/IVxkKVx3K1xiL30pfXJldHVybiBxZ312YXIgUGcsQVI7ZnVuY3Rpb24gVEIoKXtpZihBUilyZXR1cm4gUGc7QVI9MSxQZz1lLGUuZGlzcGxheU5hbWU9InFzaGFycCIsZS5hbGlhc2VzPVsicXMiXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXtmdW5jdGlvbiBpKF8sVCl7cmV0dXJuIF8ucmVwbGFjZSgvPDwoXGQrKT4+L2csZnVuY3Rpb24oQyx4KXtyZXR1cm4iKD86IitUWyt4XSsiKSJ9KX1mdW5jdGlvbiBsKF8sVCxDKXtyZXR1cm4gUmVnRXhwKGkoXyxUKSwiIil9ZnVuY3Rpb24gdShfLFQpe2Zvcih2YXIgQz0wO0M8VDtDKyspXz1fLnJlcGxhY2UoLzw8c2VsZj4+L2csZnVuY3Rpb24oKXtyZXR1cm4iKD86IitfKyIpIn0pO3JldHVybiBfLnJlcGxhY2UoLzw8c2VsZj4+L2csIlteXFxzXFxTXSIpfXZhciBjPXt0eXBlOiJBZGogQmlnSW50IEJvb2wgQ3RsIERvdWJsZSBmYWxzZSBJbnQgT25lIFBhdWxpIFBhdWxpSSBQYXVsaVggUGF1bGlZIFBhdWxpWiBRdWJpdCBSYW5nZSBSZXN1bHQgU3RyaW5nIHRydWUgVW5pdCBaZXJvIixvdGhlcjoiQWRqb2ludCBhZGpvaW50IGFwcGx5IGFzIGF1dG8gYm9keSBib3Jyb3cgYm9ycm93aW5nIENvbnRyb2xsZWQgY29udHJvbGxlZCBkaXN0cmlidXRlIGVsaWYgZWxzZSBmYWlsIGZpeHVwIGZvciBmdW5jdGlvbiBpZiBpbiBpbnRlcm5hbCBpbnRyaW5zaWMgaW52ZXJ0IGlzIGxldCBtdXRhYmxlIG5hbWVzcGFjZSBuZXcgbmV3dHlwZSBvcGVuIG9wZXJhdGlvbiByZXBlYXQgcmV0dXJuIHNlbGYgc2V0IHVudGlsIHVzZSB1c2luZyB3aGlsZSB3aXRoaW4ifTtmdW5jdGlvbiBkKF8pe3JldHVybiJcXGIoPzoiK18udHJpbSgpLnJlcGxhY2UoLyAvZywifCIpKyIpXFxiIn12YXIgZj1SZWdFeHAoZChjLnR5cGUrIiAiK2Mub3RoZXIpKSxtPS9cYltBLVphLXpfXVx3KlxiLy5zb3VyY2UsYj1pKC88PDA+Pig/OlxzKlwuXHMqPDwwPj4pKi8uc291cmNlLFttXSksaD17a2V5d29yZDpmLHB1bmN0dWF0aW9uOi9bPD4oKT8sLjpbXF1dL30sUz0vIig/OlxcLnxbXlxcIl0pKiIvLnNvdXJjZTthLmxhbmd1YWdlcy5xc2hhcnA9YS5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2NvbW1lbnQ6L1wvXC8uKi8sc3RyaW5nOlt7cGF0dGVybjpsKC8oXnxbXiRcXF0pPDwwPj4vLnNvdXJjZSxbU10pLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sImNsYXNzLW5hbWUiOlt7cGF0dGVybjpsKC8oXGIoPzphc3xvcGVuKVxzKyk8PDA+Pig/PVxzKig/Ojt8YXNcYikpLy5zb3VyY2UsW2JdKSxsb29rYmVoaW5kOiEwLGluc2lkZTpofSx7cGF0dGVybjpsKC8oXGJuYW1lc3BhY2VccyspPDwwPj4oPz1ccypceykvLnNvdXJjZSxbYl0pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmh9XSxrZXl3b3JkOmYsbnVtYmVyOi8oPzpcYjAoPzp4W1xkYS1mXSt8YlswMV0rfG9bMC03XSspfCg/OlxCXC5cZCt8XGJcZCsoPzpcLlxkKik/KSg/OmVbLStdP1xkKyk/KWw/XGIvaSxvcGVyYXRvcjovXGJhbmQ9fFxib3I9fFxiYW5kXGJ8XGJub3RcYnxcYm9yXGJ8PFstPV18Wy09XT58Pj4+PT98PDw8PT98XF5cXlxePT98XHxcfFx8PT98JiYmPT98d1wvPT98fn5+fFsqXC8rXC1ePSElXT0/LyxwdW5jdHVhdGlvbjovOjp8W3t9W1xdOygpLC46XS99KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInFzaGFycCIsIm51bWJlciIse3JhbmdlOntwYXR0ZXJuOi9cLlwuLyxhbGlhczoib3BlcmF0b3IifX0pO3ZhciBFPXUoaSgvXHsoPzpbXiJ7fV18PDwwPj58PDxzZWxmPj4pKlx9Ly5zb3VyY2UsW1NdKSwyKTthLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInFzaGFycCIsInN0cmluZyIseyJpbnRlcnBvbGF0aW9uLXN0cmluZyI6e3BhdHRlcm46bCgvXCQiKD86XFwufDw8MD4+fFteXFwie10pKiIvLnNvdXJjZSxbRV0pLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46bCgvKCg/Ol58W15cXF0pKD86XFxcXCkqKTw8MD4+Ly5zb3VyY2UsW0VdKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L15ce3xcfSQvLGV4cHJlc3Npb246e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJsYW5ndWFnZS1xc2hhcnAiLGluc2lkZTphLmxhbmd1YWdlcy5xc2hhcnB9fX0sc3RyaW5nOi9bXHNcU10rL319fSl9KShuKSxuLmxhbmd1YWdlcy5xcz1uLmxhbmd1YWdlcy5xc2hhcnB9cmV0dXJuIFBnfXZhciBHZyxfUjtmdW5jdGlvbiB4Qigpe2lmKF9SKXJldHVybiBHZztfUj0xLEdnPWUsZS5kaXNwbGF5TmFtZT0iciIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMucj17Y29tbWVudDovIy4qLyxzdHJpbmc6e3BhdHRlcm46LyhbJyJdKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITB9LCJwZXJjZW50LW9wZXJhdG9yIjp7cGF0dGVybjovJVteJVxzXSolLyxhbGlhczoib3BlcmF0b3IifSxib29sZWFuOi9cYig/OkZBTFNFfFRSVUUpXGIvLGVsbGlwc2lzOi9cLlwuKD86XC58XGQrKS8sbnVtYmVyOlsvXGIoPzpJbmZ8TmFOKVxiLywvKD86XGIweFtcZEEtRmEtZl0rKD86XC5cZCopP3xcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpbRWVQcF1bKy1dP1xkKyk/W2lMXT8vXSxrZXl3b3JkOi9cYig/Ok5BfE5BX2NoYXJhY3Rlcl98TkFfY29tcGxleF98TkFfaW50ZWdlcl98TkFfcmVhbF98TlVMTHxicmVha3xlbHNlfGZvcnxmdW5jdGlvbnxpZnxpbnxuZXh0fHJlcGVhdHx3aGlsZSlcYi8sb3BlcmF0b3I6Ly0+Pz4/fDwoPzo9fDw/LSk/fFs+PSFdPT98Ojo/fCYmP3xcfFx8P3xbKypcL14kQH5dLyxwdW5jdHVhdGlvbjovWygpe31cW1xdLDtdL319cmV0dXJuIEdnfXZhciBIZyxSUjtmdW5jdGlvbiBBQigpe2lmKFJSKXJldHVybiBIZztSUj0xO3ZhciBlPWxiKCk7SGc9bixuLmRpc3BsYXlOYW1lPSJyYWNrZXQiLG4uYWxpYXNlcz1bInJrdCJdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSxhLmxhbmd1YWdlcy5yYWNrZXQ9YS5sYW5ndWFnZXMuZXh0ZW5kKCJzY2hlbWUiLHsibGFtYmRhLXBhcmFtZXRlciI6e3BhdHRlcm46LyhbKFxbXWxhbWJkYVxzK1soXFtdKVteKClcW1xdJ1xzXSsvLGxvb2tiZWhpbmQ6ITB9fSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJyYWNrZXQiLCJzdHJpbmciLHtsYW5nOntwYXR0ZXJuOi9eI2xhbmcuKy9tLGdyZWVkeTohMCxhbGlhczoia2V5d29yZCJ9fSksYS5sYW5ndWFnZXMucmt0PWEubGFuZ3VhZ2VzLnJhY2tldH1yZXR1cm4gSGd9dmFyICRnLE5SO2Z1bmN0aW9uIF9CKCl7aWYoTlIpcmV0dXJuICRnO05SPTEsJGc9ZSxlLmRpc3BsYXlOYW1lPSJyZWFzb24iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLnJlYXNvbj1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7c3RyaW5nOntwYXR0ZXJuOi8iKD86XFwoPzpcclxufFtcc1xTXSl8W15cXFxyXG4iXSkqIi8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6L1xiW0EtWl1cdyovLGtleXdvcmQ6L1xiKD86YW5kfGFzfGFzc2VydHxiZWdpbnxjbGFzc3xjb25zdHJhaW50fGRvfGRvbmV8ZG93bnRvfGVsc2V8ZW5kfGV4Y2VwdGlvbnxleHRlcm5hbHxmb3J8ZnVufGZ1bmN0aW9ufGZ1bmN0b3J8aWZ8aW58aW5jbHVkZXxpbmhlcml0fGluaXRpYWxpemVyfGxhenl8bGV0fG1ldGhvZHxtb2R1bGV8bXV0YWJsZXxuZXd8bm9ucmVjfG9iamVjdHxvZnxvcGVufG9yfHByaXZhdGV8cmVjfHNpZ3xzdHJ1Y3R8c3dpdGNofHRoZW58dG98dHJ5fHR5cGV8dmFsfHZpcnR1YWx8d2hlbnx3aGlsZXx3aXRoKVxiLyxvcGVyYXRvcjovXC57M318Ols6PV18XHw+fC0+fD0oPzo9PT98Pik/fDw9P3w+PT98W3xePycjIX5gXXxbK1wtKlwvXVwuP3xcYig/OmFzcnxsYW5kfGxvcnxsc2x8bHNyfGx4b3J8bW9kKVxiL30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicmVhc29uIiwiY2xhc3MtbmFtZSIse2NoYXI6e3BhdHRlcm46LycoPzpcXHhbXGRhLWZdezJ9fFxcb1swLTNdWzAtN11bMC03XXxcXFxkezN9fFxcLnxbXidcXFxyXG5dKScvLGdyZWVkeTohMH0sY29uc3RydWN0b3I6L1xiW0EtWl1cdypcYig/IVxzKlwuKS8sbGFiZWw6e3BhdHRlcm46L1xiW2Etel1cdyooPz06OikvLGFsaWFzOiJzeW1ib2wifX0pLGRlbGV0ZSBuLmxhbmd1YWdlcy5yZWFzb24uZnVuY3Rpb259cmV0dXJuICRnfXZhciBWZyx3UjtmdW5jdGlvbiBSQigpe2lmKHdSKXJldHVybiBWZzt3Uj0xLFZnPWUsZS5kaXNwbGF5TmFtZT0icmVnZXgiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT17cGF0dGVybjovXFxbXFwoKXt9W1xdXiQrKj98Ll0vLGFsaWFzOiJlc2NhcGUifSxsPS9cXCg/OnhbXGRhLWZBLUZdezJ9fHVbXGRhLWZBLUZdezR9fHVce1tcZGEtZkEtRl0rXH18MFswLTddezAsMn18WzEyM11bMC03XXsyfXxjW2EtekEtWl18LikvLHU9e3BhdHRlcm46L1wufFxcW3dzZF18XFxwXHtbXnt9XStcfS9pLGFsaWFzOiJjbGFzcy1uYW1lIn0sYz17cGF0dGVybjovXFxbd3NkXXxcXHBce1tee31dK1x9L2ksYWxpYXM6ImNsYXNzLW5hbWUifSxkPSIoPzpbXlxcXFwtXXwiK2wuc291cmNlKyIpIixmPVJlZ0V4cChkKyItIitkKSxtPXtwYXR0ZXJuOi8oPHwnKVtePD4nXSsoPz1bPiddJCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InZhcmlhYmxlIn07YS5sYW5ndWFnZXMucmVnZXg9eyJjaGFyLWNsYXNzIjp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFxcXCkqKVxbKD86W15cXFxdXXxcXFtcc1xTXSkqXF0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiY2hhci1jbGFzcy1uZWdhdGlvbiI6e3BhdHRlcm46LyheXFspXF4vLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0sImNoYXItY2xhc3MtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eXFt8XF0kLyxhbGlhczoicHVuY3R1YXRpb24ifSxyYW5nZTp7cGF0dGVybjpmLGluc2lkZTp7ZXNjYXBlOmwsInJhbmdlLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovLS8sYWxpYXM6Im9wZXJhdG9yIn19fSwic3BlY2lhbC1lc2NhcGUiOmksImNoYXItc2V0IjpjLGVzY2FwZTpsfX0sInNwZWNpYWwtZXNjYXBlIjppLCJjaGFyLXNldCI6dSxiYWNrcmVmZXJlbmNlOlt7cGF0dGVybjovXFwoPyFbMTIzXVswLTddezJ9KVsxLTldLyxhbGlhczoia2V5d29yZCJ9LHtwYXR0ZXJuOi9cXGs8W148PiddKz4vLGFsaWFzOiJrZXl3b3JkIixpbnNpZGU6eyJncm91cC1uYW1lIjptfX1dLGFuY2hvcjp7cGF0dGVybjovWyReXXxcXFtBQmJHWnpdLyxhbGlhczoiZnVuY3Rpb24ifSxlc2NhcGU6bCxncm91cDpbe3BhdHRlcm46L1woKD86XD8oPzo8W148PiddKz58J1tePD4nXSsnfFs+Ol18PD9bPSFdfFtpZG1uc3V4VV0rKD86LVtpZG1uc3V4VV0rKT86PykpPy8sYWxpYXM6InB1bmN0dWF0aW9uIixpbnNpZGU6eyJncm91cC1uYW1lIjptfX0se3BhdHRlcm46L1wpLyxhbGlhczoicHVuY3R1YXRpb24ifV0scXVhbnRpZmllcjp7cGF0dGVybjovKD86WysqP118XHtcZCsoPzosXGQqKT9cfSlbPytdPy8sYWxpYXM6Im51bWJlciJ9LGFsdGVybmF0aW9uOntwYXR0ZXJuOi9cfC8sYWxpYXM6ImtleXdvcmQifX19KShuKX1yZXR1cm4gVmd9dmFyIFlnLGtSO2Z1bmN0aW9uIE5CKCl7aWYoa1IpcmV0dXJuIFlnO2tSPTEsWWc9ZSxlLmRpc3BsYXlOYW1lPSJyZWdvIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5yZWdvPXtjb21tZW50Oi8jLiovLHByb3BlcnR5OntwYXR0ZXJuOi8oXnxbXlxcLl0pKD86Iig/OlxcLnxbXlxcIlxyXG5dKSoifGBbXmBdKmB8XGJbYS16X11cdypcYikoPz1ccyo6KD8hPSkpL2ksbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKF58W15cXF0pIig/OlxcLnxbXlxcIlxyXG5dKSoifGBbXmBdKmAvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxrZXl3b3JkOi9cYig/OmFzfGRlZmF1bHR8ZWxzZXxpbXBvcnR8bm90fG51bGx8cGFja2FnZXxzZXQoPz1ccypcKCl8c29tZXx3aXRoKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGZ1bmN0aW9uOntwYXR0ZXJuOi9cYlthLXpfXVx3KlxiKD86XHMqXC5ccypcYlthLXpfXVx3KlxiKSooPz1ccypcKCkvaSxpbnNpZGU6e25hbWVzcGFjZTovXGJcdytcYig/PVxzKlwuKS8scHVuY3R1YXRpb246L1wuL319LG51bWJlcjovLT9cYlxkKyg/OlwuXGQrKT8oPzplWystXT9cZCspP1xiL2ksb3BlcmF0b3I6L1stKyovJXwmXXxbPD46PV09P3whPXxcYl9cYi8scHVuY3R1YXRpb246L1ssOy5cW1xde30oKV0vfX1yZXR1cm4gWWd9dmFyIEtnLENSO2Z1bmN0aW9uIHdCKCl7aWYoQ1IpcmV0dXJuIEtnO0NSPTEsS2c9ZSxlLmRpc3BsYXlOYW1lPSJyZW5weSIsZS5hbGlhc2VzPVsicnB5Il07ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5yZW5weT17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pIy4rLyxsb29rYmVoaW5kOiEwfSxzdHJpbmc6e3BhdHRlcm46LygiIiJ8JycnKVtcc1xTXSs/XDF8KCJ8JykoPzpcXC58KD8hXDIpW15cXF0pKlwyfCg/Ol4jPyg/Oig/OlswLTlhLWZBLUZdKXszfXxbMC05YS1mQS1GXXs2fSkkKS9tLGdyZWVkeTohMH0sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XCgpL2kscHJvcGVydHk6L1xiKD86VXBkYXRlfFVwZGF0ZVZlcnNpb258YWN0aW9ufGFjdGl2YXRlX3NvdW5kfGFkdl9udmxfdHJhbnNpdGlvbnxhZnRlcl9sb2FkX3RyYW5zaXRpb258YWxpZ258YWxwaGF8YWx0fGFuY2hvcnxhbnRpYWxpYXN8YXJlYXxhdXRvfGJhY2tncm91bmR8YmFyX2ludmVydHxiYXJfcmVzaXppbmd8YmFyX3ZlcnRpY2FsfGJsYWNrX2NvbG9yfGJvbGR8Ym90dG9tX2Jhcnxib3R0b21fZ3V0dGVyfGJvdHRvbV9tYXJnaW58Ym90dG9tX3BhZGRpbmd8Ym94X3JldmVyc2V8Ym94X3dyYXB8Y2FuX3VwZGF0ZXxjYXJldHxjaGlsZHxjb2xvcnxjcm9wfGRlZmF1bHRfYWZtX2VuYWJsZXxkZWZhdWx0X2FmbV90aW1lfGRlZmF1bHRfZnVsbHNjcmVlbnxkZWZhdWx0X3RleHRfY3BzfGRldmVsb3BlcnxkaXJlY3RvcnlfbmFtZXxkcmFnX2hhbmRsZXxkcmFnX2pvaW5lZHxkcmFnX25hbWV8ZHJhZ19yYWlzZXxkcmFnZ2FibGV8ZHJhZ2dlZHxkcm9wX3NoYWRvd3xkcm9wX3NoYWRvd19jb2xvcnxkcm9wcGFibGV8ZHJvcHBlZHxlYXNlaW58ZWFzZW91dHxlZGdlc2Nyb2xsfGVuZF9nYW1lX3RyYW5zaXRpb258ZW5kX3NwbGFzaF90cmFuc2l0aW9ufGVudGVyX3JlcGxheV90cmFuc2l0aW9ufGVudGVyX3NvdW5kfGVudGVyX3RyYW5zaXRpb258ZW50ZXJfeWVzbm9fdHJhbnNpdGlvbnxleGVjdXRhYmxlX25hbWV8ZXhpdF9yZXBsYXlfdHJhbnNpdGlvbnxleGl0X3NvdW5kfGV4aXRfdHJhbnNpdGlvbnxleGl0X3llc25vX3RyYW5zaXRpb258ZmFkZWlufGZhZGVvdXR8Zmlyc3RfaW5kZW50fGZpcnN0X3NwYWNpbmd8Zml0X2ZpcnN0fGZvY3VzfGZvY3VzX21hc2t8Zm9udHxmb3JlZ3JvdW5kfGdhbWVfbWFpbl90cmFuc2l0aW9ufGdldF9pbnN0YWxsZWRfcGFja2FnZXN8Z29vZ2xlX3BsYXlfa2V5fGdvb2dsZV9wbGF5X3NhbHR8Z3JvdW5kfGhhc19tdXNpY3xoYXNfc291bmR8aGFzX3ZvaWNlfGhlaWdodHxoZWxwfGhpbnRpbmd8aG92ZXJ8aG92ZXJfYmFja2dyb3VuZHxob3Zlcl9jb2xvcnxob3Zlcl9zb3VuZHxob3ZlcmVkfGh5cGVybGlua19mdW5jdGlvbnN8aWRsZXxpZGxlX2NvbG9yfGltYWdlX3N0eWxlfGluY2x1ZGVfdXBkYXRlfGluc2Vuc2l0aXZlfGluc2Vuc2l0aXZlX2JhY2tncm91bmR8aW5zZW5zaXRpdmVfY29sb3J8aW5zaWRlfGludHJhX3RyYW5zaXRpb258aXRhbGljfGp1c3RpZnl8a2VybmluZ3xrZXlib2FyZF9mb2N1c3xsYW5ndWFnZXxsYXllcl9jbGlwcGluZ3xsYXllcnN8bGF5b3V0fGxlZnRfYmFyfGxlZnRfZ3V0dGVyfGxlZnRfbWFyZ2lufGxlZnRfcGFkZGluZ3xsZW5ndGh8bGluZV9sZWFkaW5nfGxpbmVfb3ZlcmxhcF9zcGxpdHxsaW5lX3NwYWNpbmd8bGluZWFyfG1haW5fZ2FtZV90cmFuc2l0aW9ufG1haW5fbWVudV9tdXNpY3xtYXhpbXVtfG1pbl93aWR0aHxtaW5pbXVtfG1pbndpZHRofG1vZGFsfG1vdXNlfG1vdXNld2hlZWx8bmFtZXxuYXJyYXRvcl9tZW51fG5ld2xpbmVfaW5kZW50fG52bF9hZHZfdHJhbnNpdGlvbnxvZmZzZXR8b3JkZXJfcmV2ZXJzZXxvdXRsaW5lc3xvdmVybGF5X2Z1bmN0aW9uc3xwb3N8cG9zaXRpb258cHJlZml4fHJhZGl1c3xyYW5nZXxyZXN0X2luZGVudHxyaWdodF9iYXJ8cmlnaHRfZ3V0dGVyfHJpZ2h0X21hcmdpbnxyaWdodF9wYWRkaW5nfHJvdGF0ZXxyb3RhdGVfcGFkfHJ1Ynlfc3R5bGV8c2FtcGxlX3NvdW5kfHNhdmVfZGlyZWN0b3J5fHNheV9hdHRyaWJ1dGVfdHJhbnNpdGlvbnxzY3JlZW5faGVpZ2h0fHNjcmVlbl93aWR0aHxzY3JvbGxiYXJzfHNlbGVjdGVkX2hvdmVyfHNlbGVjdGVkX2hvdmVyX2NvbG9yfHNlbGVjdGVkX2lkbGV8c2VsZWN0ZWRfaWRsZV9jb2xvcnxzZWxlY3RlZF9pbnNlbnNpdGl2ZXxzaG93X3NpZGVfaW1hZ2V8c2hvd190d29fd2luZG93fHNpZGVfc3BhY2luZ3xzaWRlX3hwb3N8c2lkZV95cG9zfHNpemV8c2l6ZV9ncm91cHxzbG93X2Nwc3xzbG93X2Nwc19tdWx0aXBsaWVyfHNwYWNpbmd8c3RyaWtldGhyb3VnaHxzdWJwaXhlbHx0ZXh0X2FsaWdufHRleHRfc3R5bGV8dGV4dF94cG9zfHRleHRfeV9mdWRnZXx0ZXh0X3lwb3N8dGh1bWJ8dGh1bWJfb2Zmc2V0fHRodW1iX3NoYWRvd3x0aHVtYm5haWxfaGVpZ2h0fHRodW1ibmFpbF93aWR0aHx0aW1lfHRvcF9iYXJ8dG9wX2d1dHRlcnx0b3BfbWFyZ2lufHRvcF9wYWRkaW5nfHRyYW5zbGF0aW9uc3x1bmRlcmxpbmV8dW5zY3JvbGxhYmxlfHVwZGF0ZXx2YWx1ZXx2ZXJzaW9ufHZlcnNpb25fbmFtZXx2ZXJzaW9uX3R1cGxlfHZlcnRpY2FsfHdpZHRofHdpbmRvd19oaWRlX3RyYW5zaXRpb258d2luZG93X2ljb258d2luZG93X2xlZnRfcGFkZGluZ3x3aW5kb3dfc2hvd190cmFuc2l0aW9ufHdpbmRvd190aXRsZXx3aW5kb3dzX2ljb258eGFkanVzdG1lbnR8eGFsaWdufHhhbmNob3J8eGFuY2hvcmFyb3VuZHx4YXJvdW5kfHhjZW50ZXJ8eGZpbGx8eGluaXRpYWx8eG1hcmdpbnx4bWF4aW11bXx4bWluaW11bXx4b2Zmc2V0fHhvZnNzZXR8eHBhZGRpbmd8eHBvc3x4c2l6ZXx4em9vbXx5YWRqdXN0bWVudHx5YWxpZ258eWFuY2hvcnx5YW5jaG9yYXJvdW5kfHlhcm91bmR8eWNlbnRlcnx5ZmlsbHx5aW5pdGlhbHx5bWFyZ2lufHltYXhpbXVtfHltaW5pbXVtfHlvZmZzZXR8eXBhZGRpbmd8eXBvc3x5c2l6ZXx5c2l6ZXh5c2l6ZXx5em9vbXx6b29tfHpvcmRlcilcYi8sdGFnOi9cYig/OmJhcnxibG9ja3xidXR0b258YnV0dG9zY3JlZW5ufGRyYWd8ZHJhZ2dyb3VwfGZpeGVkfGZyYW1lfGdyaWR8W2h2XWJveHxob3RiYXJ8aG90c3BvdHxpbWFnZXxpbWFnZWJ1dHRvbnxpbWFnZW1hcHxpbnB1dHxrZXl8bGFiZWx8bWVudXxtbV9tZW51X2ZyYW1lfG1vdXNlYXJlYXxudmx8cGFyYWxsZWx8c2NyZWVufHNlbGZ8c2lkZXx0YWd8dGV4dHx0ZXh0YnV0dG9ufHRpbWVyfHZiYXJ8dmlld3BvcnR8d2luZG93KVxifFwkLyxrZXl3b3JkOi9cYig/Ok5vbmV8YWRkfGFkanVzdG1lbnR8YWxpZ25hcm91bmR8YWxsb3d8YW5nbGV8YW5pbWF0aW9ufGFyb3VuZHxhc3xhc3NlcnR8YmVoaW5kfGJveF9sYXlvdXR8YnJlYWt8YnVpbGR8Y2FjaGV8Y2FsbHxjZW50ZXJ8Y2hhbmdlZHxjaGlsZF9zaXplfGNob2ljZXxjaXJjbGVzfGNsYXNzfGNsZWFyfGNsaWNrZWR8Y2xpcHBpbmd8Y2xvY2t3aXNlfGNvbmZpZ3xjb250YWluc3xjb250aW51ZXxjb3JuZXIxfGNvcm5lcjJ8Y291bnRlcmNsb2Nrd2lzZXxkZWZ8ZGVmYXVsdHxkZWZpbmV8ZGVsfGRlbGF5fGRpc2FibGVkfGRpc2FibGVkX3RleHR8ZGlzc29sdmV8ZWxpZnxlbHNlfGV2ZW50fGV4Y2VwdHxleGNsdWRlfGV4ZWN8ZXhwcmVzc2lvbnxmYWRlfGZpbmFsbHl8Zm9yfGZyb218ZnVuY3Rpb258Z2xvYmFsfGdtX3Jvb3R8aGFzfGhpZGV8aWR8aWZ8aW1wb3J0fGlufGluaXR8aXN8anVtcHxrbm90fGxhbWJkYXxsZWZ0fGxlc3Nfcm91bmRlZHxtbV9yb290fG1vdmllfG11c2ljfG51bGx8b258b25sYXllcnxwYXNzfHBhdXNlfHBlcnNpc3RlbnR8cGxheXxwcmludHxweXRob258cXVldWV8cmFpc2V8cmFuZG9tfHJlbnB5fHJlcGVhdHxyZXR1cm58cmlnaHR8cm91bmRlZF93aW5kb3d8c2NlbmV8c2NvcGV8c2V0fHNob3d8c2xvd3xzbG93X2Fib3J0YWJsZXxzbG93X2RvbmV8c291bmR8c3RvcHxzdG9yZXxzdHlsZXxzdHlsZV9ncm91cHxzdWJzdGl0dXRlfHN1ZmZpeHx0aGVtZXx0cmFuc2Zvcm18dHJhbnNmb3JtX2FuY2hvcnx0cmFuc3Bvc2V8dHJ5fHVpfHVuaG92ZXJlZHx1cGRhdGVyfHVzZXx2b2ljZXx3aGlsZXx3aWRnZXR8d2lkZ2V0X2hvdmVyfHdpZGdldF9zZWxlY3RlZHx3aWRnZXRfdGV4dHx5aWVsZClcYi8sYm9vbGVhbjovXGIoPzpbRmZdYWxzZXxbVHRdcnVlKVxiLyxudW1iZXI6Lyg/OlxiKD86MFtib10pPyg/Oig/OlxkfDB4W1xkYS1mXSlbXGRhLWZdKig/OlwuXGQqKT8pfFxCXC5cZCspKD86ZVsrLV0/XGQrKT9qPy9pLG9wZXJhdG9yOi9bLSslPV09P3whPXxcKlwqPz0/fFwvXC8/PT98PFs8PT5dP3w+Wz0+XT98WyZ8Xn5dfFxiKD86YW5kfGF0fG5vdHxvcnx3aXRoKVxiLyxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS99LG4ubGFuZ3VhZ2VzLnJweT1uLmxhbmd1YWdlcy5yZW5weX1yZXR1cm4gS2d9dmFyIFdnLElSO2Z1bmN0aW9uIGtCKCl7aWYoSVIpcmV0dXJuIFdnO0lSPTEsV2c9ZSxlLmRpc3BsYXlOYW1lPSJyZXN0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5yZXN0PXt0YWJsZTpbe3BhdHRlcm46LyheW1x0IF0qKSg/OlwrWz0tXSspK1wrKD86XHI/XG58XHIpKD86XDFbK3xdLitbK3xdKD86XHI/XG58XHIpKStcMSg/OlwrWz0tXSspK1wrL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cfHwoPzpcK1s9LV0rKStcKy99fSx7cGF0dGVybjovKF5bXHQgXSopPSsgWyA9XSo9KD86KD86XHI/XG58XHIpXDEuKykrKD86XHI/XG58XHIpXDE9KyBbID1dKj0oPz0oPzpccj9cbnxccil7Mn18XHMqJCkvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1s9LV0rL319XSwic3Vic3RpdHV0aW9uLWRlZiI6e3BhdHRlcm46LyheW1x0IF0qXC5cLiApXHwoPzpbXnxcc10oPzpbXnxdKltefFxzXSk/KVx8IFteOl0rOjovbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7c3Vic3RpdHV0aW9uOntwYXR0ZXJuOi9eXHwoPzpbXnxcc118W158XHNdW158XSpbXnxcc10pXHwvLGFsaWFzOiJhdHRyLXZhbHVlIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXHx8XHwkL319LGRpcmVjdGl2ZTp7cGF0dGVybjovKCApKD8hIClbXjpdKzo6Lyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiIsaW5zaWRlOntwdW5jdHVhdGlvbjovOjokL319fX0sImxpbmstdGFyZ2V0Ijpbe3BhdHRlcm46LyheW1x0IF0qXC5cLiApXFtbXlxdXStcXS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntwdW5jdHVhdGlvbjovXlxbfFxdJC99fSx7cGF0dGVybjovKF5bXHQgXSpcLlwuIClfKD86YFteYF0rYHwoPzpbXjpcXF18XFwuKSspOi9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntwdW5jdHVhdGlvbjovXl98OiQvfX1dLGRpcmVjdGl2ZTp7cGF0dGVybjovKF5bXHQgXSpcLlwuIClbXjpdKzo6L20sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24iLGluc2lkZTp7cHVuY3R1YXRpb246Lzo6JC99fSxjb21tZW50OntwYXR0ZXJuOi8oXltcdCBdKlwuXC4pKD86KD86IC4rKT8oPzooPzpccj9cbnxccikuKykrfCAuKykoPz0oPzpccj9cbnxccil7Mn18JCkvbSxsb29rYmVoaW5kOiEwfSx0aXRsZTpbe3BhdHRlcm46L14oKFshIiMkJSYnKCkqKyxcLS5cLzo7PD0+P0BcW1xcXF1eX2B7fH1+XSlcMispKD86XHI/XG58XHIpLisoPzpccj9cbnxccilcMSQvbSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eWyEiIyQlJicoKSorLFwtLlwvOjs8PT4/QFxbXFxcXV5fYHt8fX5dK3xbISIjJCUmJygpKissXC0uXC86Ozw9Pj9AXFtcXFxdXl9ge3x9fl0rJC8saW1wb3J0YW50Oi8uKy99fSx7cGF0dGVybjovKF58KD86XHI/XG58XHIpezJ9KS4rKD86XHI/XG58XHIpKFshIiMkJSYnKCkqKyxcLS5cLzo7PD0+P0BcW1xcXF1eX2B7fH1+XSlcMisoPz1ccj9cbnxccnwkKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9bISIjJCUmJygpKissXC0uXC86Ozw9Pj9AXFtcXFxdXl9ge3x9fl0rJC8saW1wb3J0YW50Oi8uKy99fV0saHI6e3BhdHRlcm46LygoPzpccj9cbnxccil7Mn0pKFshIiMkJSYnKCkqKyxcLS5cLzo7PD0+P0BcW1xcXF1eX2B7fH1+XSlcMnszLH0oPz0oPzpccj9cbnxccil7Mn0pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LGZpZWxkOntwYXR0ZXJuOi8oXltcdCBdKik6W146XHJcbl0rOig/PSApL20sbG9va2JlaGluZDohMCxhbGlhczoiYXR0ci1uYW1lIn0sImNvbW1hbmQtbGluZS1vcHRpb24iOntwYXR0ZXJuOi8oXltcdCBdKikoPzpbKy1dW2EtelxkXXwoPzotLXxcLylbYS16XGQtXSspKD86WyA9XSg/OlthLXpdW1x3LV0qfDxbXjw+XSs+KSk/KD86LCAoPzpbKy1dW2EtelxkXXwoPzotLXxcLylbYS16XGQtXSspKD86WyA9XSg/OlthLXpdW1x3LV0qfDxbXjw+XSs+KSk/KSooPz0oPzpccj9cbnxccik/IHsyLH1cUykvaW0sbG9va2JlaGluZDohMCxhbGlhczoic3ltYm9sIn0sImxpdGVyYWwtYmxvY2siOntwYXR0ZXJuOi86Oig/OlxyP1xufFxyKXsyfShbIFx0XSspKD8hWyBcdF0pLisoPzooPzpccj9cbnxccilcMS4rKSovLGluc2lkZTp7ImxpdGVyYWwtYmxvY2stcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eOjovLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fX0sInF1b3RlZC1saXRlcmFsLWJsb2NrIjp7cGF0dGVybjovOjooPzpccj9cbnxccil7Mn0oWyEiIyQlJicoKSorLFwtLlwvOjs8PT4/QFxbXFxcXV5fYHt8fX5dKS4qKD86KD86XHI/XG58XHIpXDEuKikqLyxpbnNpZGU6eyJsaXRlcmFsLWJsb2NrLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXig/Ojo6fChbISIjJCUmJygpKissXC0uXC86Ozw9Pj9AXFtcXFxdXl9ge3x9fl0pXDEqKS9tLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fX0sImxpc3QtYnVsbGV0Ijp7cGF0dGVybjovKF5bXHQgXSopKD86WyorXC3igKLigKPigYNdfFwoPyg/OlxkK3xbYS16XXxbaXZ4ZGNsbV0rKVwpfCg/OlxkK3xbYS16XXxbaXZ4ZGNsbV0rKVwuKSg/PSApL2ltLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sImRvY3Rlc3QtYmxvY2siOntwYXR0ZXJuOi8oXltcdCBdKik+Pj4gLisoPzooPzpccj9cbnxccikuKykqL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9ePj4+L319LGlubGluZTpbe3BhdHRlcm46LyhefFtcc1wtOlwvJyI8KFxbe10pKD86OlteOl0rOmAuKj9gfGAuKj9gOlteOl0rOnwoXCpcKj98YGA/fFx8KSg/IVxzKSg/Oig/IVwyKS4pKlxTXDIoPz1bXHNcLS4sOjshP1xcXC8nIilcXX1dfCQpKS9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntib2xkOntwYXR0ZXJuOi8oXlwqXCopLisoPz1cKlwqJCkvLGxvb2tiZWhpbmQ6ITB9LGl0YWxpYzp7cGF0dGVybjovKF5cKikuKyg/PVwqJCkvLGxvb2tiZWhpbmQ6ITB9LCJpbmxpbmUtbGl0ZXJhbCI6e3BhdHRlcm46LyheYGApLisoPz1gYCQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJzeW1ib2wifSxyb2xlOntwYXR0ZXJuOi9eOlteOl0rOnw6W146XSs6JC8sYWxpYXM6ImZ1bmN0aW9uIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9eOnw6JC99fSwiaW50ZXJwcmV0ZWQtdGV4dCI6e3BhdHRlcm46LyheYCkuKyg/PWAkKS8sbG9va2JlaGluZDohMCxhbGlhczoiYXR0ci12YWx1ZSJ9LHN1YnN0aXR1dGlvbjp7cGF0dGVybjovKF5cfCkuKyg/PVx8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0dHItdmFsdWUifSxwdW5jdHVhdGlvbjovXCpcKj98YGA/fFx8L319XSxsaW5rOlt7cGF0dGVybjovXFtbXlxbXF1dK1xdXyg/PVtcc1wtLiw6OyE/XFxcLyciKVxdfV18JCkvLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7cHVuY3R1YXRpb246L15cW3xcXV8kL319LHtwYXR0ZXJuOi8oPzpcYlthLXpcZF0rKD86W18uOitdW2EtelxkXSspKl8/X3xgW15gXStgXz9ffF9gW15gXStgKSg/PVtcc1wtLiw6OyE/XFxcLyciKVxdfV18JCkvaSxhbGlhczoic3RyaW5nIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXz9gfGAkfGA/Xz9fJC99fV0scHVuY3R1YXRpb246e3BhdHRlcm46LyheW1x0IF0qKSg/Olx8KD89IHwkKXwoPzotLS0/fOKAlHxcLlwufF9fKSg/PSApfFwuXC4kKS9tLGxvb2tiZWhpbmQ6ITB9fX1yZXR1cm4gV2d9dmFyIFhnLE9SO2Z1bmN0aW9uIENCKCl7aWYoT1IpcmV0dXJuIFhnO09SPTEsWGc9ZSxlLmRpc3BsYXlOYW1lPSJyaXAiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLnJpcD17Y29tbWVudDp7cGF0dGVybjovIy4qLyxncmVlZHk6ITB9LGNoYXI6e3BhdHRlcm46L1xCYFteXHNgJyIsLjo7I1wvXFwoKTw+XFtcXXt9XVxiLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxyZWdleDp7cGF0dGVybjovKF58W14vXSlcLyg/IVwvKSg/OlxbW15cblxyXF1dKlxdfFxcLnxbXi9cXFxyXG5cW10pK1wvKD89XHMqKD86JHxbXHJcbiwuO30pXSkpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sa2V5d29yZDovKD86PT58LT4pfFxiKD86Y2FzZXxjYXRjaHxjbGFzc3xlbHNlfGV4aXR8ZmluYWxseXxpZnxyYWlzZXxyZXR1cm58c3dpdGNofHRyeSlcYi8sYnVpbHRpbjovQHxcYlN5c3RlbVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGRhdGU6L1xiXGR7NH0tXGR7Mn0tXGR7Mn1cYi8sdGltZTovXGJcZHsyfTpcZHsyfTpcZHsyfVxiLyxkYXRldGltZTovXGJcZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfVxiLyxzeW1ib2w6LzpbXlxkXHNgJyIsLjo7I1wvXFwoKTw+XFtcXXt9XVteXHNgJyIsLjo7I1wvXFwoKTw+XFtcXXt9XSovLG51bWJlcjovWystXT9cYig/OlxkK1wuXGQrfFxkKylcYi8scHVuY3R1YXRpb246Lyg/OlwuezIsM30pfFtgLC46Oz1cL1xcKCk8PlxbXF17fV0vLHJlZmVyZW5jZTovW15cZFxzYCciLC46OyNcL1xcKCk8PlxbXF17fV1bXlxzYCciLC46OyNcL1xcKCk8PlxbXF17fV0qL319cmV0dXJuIFhnfXZhciBaZyxMUjtmdW5jdGlvbiBJQigpe2lmKExSKXJldHVybiBaZztMUj0xLFpnPWUsZS5kaXNwbGF5TmFtZT0icm9ib2NvbmYiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLnJvYm9jb25mPXtjb21tZW50Oi8jLiovLGtleXdvcmQ6e3BhdHRlcm46LyhefFxzKSg/Oig/OmV4dGVybmFsfGltcG9ydClcYnwoPzpmYWNldHxpbnN0YW5jZSBvZikoPz1bIFx0XStbXHctXStbIFx0XSpceykpLyxsb29rYmVoaW5kOiEwfSxjb21wb25lbnQ6e3BhdHRlcm46L1tcdy1dKyg/PVsgXHRdKlx7KS8sYWxpYXM6InZhcmlhYmxlIn0scHJvcGVydHk6L1tcdy4tXSsoPz1bIFx0XSo6KS8sdmFsdWU6e3BhdHRlcm46Lyg9WyBcdF0qKD8hWyBcdF0pKVteLDtdKy8sbG9va2JlaGluZDohMCxhbGlhczoiYXR0ci12YWx1ZSJ9LG9wdGlvbmFsOntwYXR0ZXJuOi9cKG9wdGlvbmFsXCkvLGFsaWFzOiJidWlsdGluIn0sd2lsZGNhcmQ6e3BhdHRlcm46LyhcLilcKi8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSxwdW5jdHVhdGlvbjovW3t9LC47Oj1dL319cmV0dXJuIFpnfXZhciBRZyxEUjtmdW5jdGlvbiBPQigpe2lmKERSKXJldHVybiBRZztEUj0xLFFnPWUsZS5kaXNwbGF5TmFtZT0icm9ib3RmcmFtZXdvcmsiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT17cGF0dGVybjovKF5bIFx0XSp8IHsyfXxcdCkjLiovbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sbD17cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKilbJEAmJV1ceyg/Oltee31cclxuXXxce1tee31cclxuXSpcfSkqXH0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXlskQCYlXVx7fFx9JC99fTtmdW5jdGlvbiB1KG0sYil7dmFyIGg9e307aFsic2VjdGlvbi1oZWFkZXIiXT17cGF0dGVybjovXiA/XCp7M30uKz9cKnszfS8sYWxpYXM6ImtleXdvcmQifTtmb3IodmFyIFMgaW4gYiloW1NdPWJbU107cmV0dXJuIGgudGFnPXtwYXR0ZXJuOi8oW1xyXG5dKD86IHsyfXxcdClbIFx0XSopXFtbLVx3XStcXS8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cW3xcXS99fSxoLnZhcmlhYmxlPWwsaC5jb21tZW50PWkse3BhdHRlcm46UmVnRXhwKC9eID9cKnszfVsgXHRdKjxuYW1lPlsgXHRdKlwqezN9KD86LnxbXHJcbl0oPyFcKnszfSkpKi8uc291cmNlLnJlcGxhY2UoLzxuYW1lPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIG19KSwiaW0iKSxhbGlhczoic2VjdGlvbiIsaW5zaWRlOmh9fXZhciBjPXtwYXR0ZXJuOi8oXFtEb2N1bWVudGF0aW9uXF0oPzogezJ9fFx0KVsgXHRdKikoPyFbIFx0XXwjKSg/Oi58KD86XHJcbj98XG4pWyBcdF0qXC57M30pKy8sbG9va2JlaGluZDohMCxhbGlhczoic3RyaW5nIn0sZD17cGF0dGVybjovKFtcclxuXSA/KSg/ISMpKD86XFMoPzpbIFx0XVxTKSopKy8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24iLGluc2lkZTp7dmFyaWFibGU6bH19LGY9e3BhdHRlcm46LyhbXHJcbl0oPzogezJ9fFx0KVsgXHRdKikoPyFcW3xcLnszfXwjKSg/OlxTKD86WyBcdF1cUykqKSsvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnt2YXJpYWJsZTpsfX07YS5sYW5ndWFnZXMucm9ib3RmcmFtZXdvcms9e3NldHRpbmdzOnUoIlNldHRpbmdzIix7ZG9jdW1lbnRhdGlvbjp7cGF0dGVybjovKFtcclxuXSA/RG9jdW1lbnRhdGlvbig/OiB7Mn18XHQpWyBcdF0qKSg/IVsgXHRdfCMpKD86LnwoPzpcclxuP3xcbilbIFx0XSpcLnszfSkrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmcifSxwcm9wZXJ0eTp7cGF0dGVybjovKFtcclxuXSA/KSg/IVwuezN9fCMpKD86XFMoPzpbIFx0XVxTKSopKy8sbG9va2JlaGluZDohMH19KSx2YXJpYWJsZXM6dSgiVmFyaWFibGVzIiksInRlc3QtY2FzZXMiOnUoIlRlc3QgQ2FzZXMiLHsidGVzdC1uYW1lIjpkLGRvY3VtZW50YXRpb246Yyxwcm9wZXJ0eTpmfSksa2V5d29yZHM6dSgiS2V5d29yZHMiLHsia2V5d29yZC1uYW1lIjpkLGRvY3VtZW50YXRpb246Yyxwcm9wZXJ0eTpmfSksdGFza3M6dSgiVGFza3MiLHsidGFzay1uYW1lIjpkLGRvY3VtZW50YXRpb246Yyxwcm9wZXJ0eTpmfSksY29tbWVudDppfSxhLmxhbmd1YWdlcy5yb2JvdD1hLmxhbmd1YWdlcy5yb2JvdGZyYW1ld29ya30pKG4pfXJldHVybiBRZ312YXIgSmcsTVI7ZnVuY3Rpb24gTEIoKXtpZihNUilyZXR1cm4gSmc7TVI9MSxKZz1lLGUuZGlzcGxheU5hbWU9InJ1c3QiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXtmb3IodmFyIGk9L1wvXCooPzpbXiovXXxcKig/IVwvKXxcLyg/IVwqKXw8c2VsZj4pKlwqXC8vLnNvdXJjZSxsPTA7bDwyO2wrKylpPWkucmVwbGFjZSgvPHNlbGY+L2csZnVuY3Rpb24oKXtyZXR1cm4gaX0pO2k9aS5yZXBsYWNlKC88c2VsZj4vZyxmdW5jdGlvbigpe3JldHVybi9bXlxzXFNdLy5zb3VyY2V9KSxhLmxhbmd1YWdlcy5ydXN0PXtjb21tZW50Olt7cGF0dGVybjpSZWdFeHAoLyhefFteXFxdKS8uc291cmNlK2kpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXDpdKVwvXC8uKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxzdHJpbmc6e3BhdHRlcm46L2I/Iig/OlxcW1xzXFNdfFteXFwiXSkqInxiP3IoIyopIig/OlteIl18Iig/IVwxKSkqIlwxLyxncmVlZHk6ITB9LGNoYXI6e3BhdHRlcm46L2I/Jyg/OlxcKD86eFswLTddW1xkYS1mQS1GXXx1XHsoPzpbXGRhLWZBLUZdXyopezEsNn1cfXwuKXxbXlxcXHJcblx0J10pJy8sZ3JlZWR5OiEwfSxhdHRyaWJ1dGU6e3BhdHRlcm46LyMhP1xbKD86W15cW1xdIl18Iig/OlxcW1xzXFNdfFteXFwiXSkqIikqXF0vLGdyZWVkeTohMCxhbGlhczoiYXR0ci1uYW1lIixpbnNpZGU6e3N0cmluZzpudWxsfX0sImNsb3N1cmUtcGFyYW1zIjp7cGF0dGVybjovKFs9KCw6XVxzKnxcYm1vdmVccyopXHxbXnxdKlx8fFx8W158XSpcfCg/PVxzKig/Olx7fC0+KSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7ImNsb3N1cmUtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eXHx8XHwkLyxhbGlhczoicHVuY3R1YXRpb24ifSxyZXN0Om51bGx9fSwibGlmZXRpbWUtYW5ub3RhdGlvbiI6e3BhdHRlcm46LydcdysvLGFsaWFzOiJzeW1ib2wifSwiZnJhZ21lbnQtc3BlY2lmaWVyIjp7cGF0dGVybjovKFwkXHcrOilbYS16XSsvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sdmFyaWFibGU6L1wkXHcrLywiZnVuY3Rpb24tZGVmaW5pdGlvbiI6e3BhdHRlcm46LyhcYmZuXHMrKVx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSwidHlwZS1kZWZpbml0aW9uIjp7cGF0dGVybjovKFxiKD86ZW51bXxzdHJ1Y3R8dHJhaXR8dHlwZXx1bmlvbilccyspXHcrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJjbGFzcy1uYW1lIn0sIm1vZHVsZS1kZWNsYXJhdGlvbiI6W3twYXR0ZXJuOi8oXGIoPzpjcmF0ZXxtb2QpXHMrKVthLXpdW2Etel9cZF0qLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJuYW1lc3BhY2UifSx7cGF0dGVybjovKFxiKD86Y3JhdGV8c2VsZnxzdXBlcilccyopOjpccypbYS16XVthLXpfXGRdKlxiKD86XHMqOjooPzpccypbYS16XVthLXpfXGRdKlxzKjo6KSopPy8sbG9va2JlaGluZDohMCxhbGlhczoibmFtZXNwYWNlIixpbnNpZGU6e3B1bmN0dWF0aW9uOi86Oi99fV0sa2V5d29yZDpbL1xiKD86U2VsZnxhYnN0cmFjdHxhc3xhc3luY3xhd2FpdHxiZWNvbWV8Ym94fGJyZWFrfGNvbnN0fGNvbnRpbnVlfGNyYXRlfGRvfGR5bnxlbHNlfGVudW18ZXh0ZXJufGZpbmFsfGZufGZvcnxpZnxpbXBsfGlufGxldHxsb29wfG1hY3JvfG1hdGNofG1vZHxtb3ZlfG11dHxvdmVycmlkZXxwcml2fHB1YnxyZWZ8cmV0dXJufHNlbGZ8c3RhdGljfHN0cnVjdHxzdXBlcnx0cmFpdHx0cnl8dHlwZXx0eXBlb2Z8dW5pb258dW5zYWZlfHVuc2l6ZWR8dXNlfHZpcnR1YWx8d2hlcmV8d2hpbGV8eWllbGQpXGIvLC9cYig/OmJvb2x8Y2hhcnxmKD86MzJ8NjQpfFt1aV0oPzo4fDE2fDMyfDY0fDEyOHxzaXplKXxzdHIpXGIvXSxmdW5jdGlvbjovXGJbYS16X11cdyooPz1ccyooPzo6OlxzKjx8XCgpKS8sbWFjcm86e3BhdHRlcm46L1xiXHcrIS8sYWxpYXM6InByb3BlcnR5In0sY29uc3RhbnQ6L1xiW0EtWl9dW0EtWl9cZF0rXGIvLCJjbGFzcy1uYW1lIjovXGJbQS1aXVx3KlxiLyxuYW1lc3BhY2U6e3BhdHRlcm46Lyg/OlxiW2Etel1bYS16X1xkXSpccyo6OlxzKikqXGJbYS16XVthLXpfXGRdKlxzKjo6KD8hXHMqPCkvLGluc2lkZTp7cHVuY3R1YXRpb246Lzo6L319LG51bWJlcjovXGIoPzoweFtcZEEtRmEtZl0oPzpfP1tcZEEtRmEtZl0pKnwwb1swLTddKD86Xz9bMC03XSkqfDBiWzAxXSg/Ol8/WzAxXSkqfCg/Oig/OlxkKD86Xz9cZCkqKT9cLik/XGQoPzpfP1xkKSooPzpbRWVdWystXT9cZCspPykoPzpfPyg/OmYzMnxmNjR8W2l1XSg/Ojh8MTZ8MzJ8NjR8c2l6ZSk/KSk/XGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8scHVuY3R1YXRpb246Ly0+fFwuXC49fFwuezEsM318Ojp8W3t9W1xdOygpLDpdLyxvcGVyYXRvcjovWy0rKlwvJSFeXT0/fD1bPT5dP3wmWyY9XT98XHxbfD1dP3w8PD89P3w+Pj89P3xbQD9dL30sYS5sYW5ndWFnZXMucnVzdFsiY2xvc3VyZS1wYXJhbXMiXS5pbnNpZGUucmVzdD1hLmxhbmd1YWdlcy5ydXN0LGEubGFuZ3VhZ2VzLnJ1c3QuYXR0cmlidXRlLmluc2lkZS5zdHJpbmc9YS5sYW5ndWFnZXMucnVzdC5zdHJpbmd9KShuKX1yZXR1cm4gSmd9dmFyIGVtLFVSO2Z1bmN0aW9uIERCKCl7aWYoVVIpcmV0dXJuIGVtO1VSPTEsZW09ZSxlLmRpc3BsYXlOYW1lPSJzYXMiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vKD86Iig/OiIifFteIl0pKiIoPyEiKXwnKD86Jyd8W14nXSkqJyg/IScpKS8uc291cmNlLGw9L1xiKD86XGRbXGRhLWZdKnh8XGQrKD86XC5cZCspPyg/OmVbKy1dP1xkKyk/KVxiL2ksdT17cGF0dGVybjpSZWdFeHAoaSsiW2J4XSIpLGFsaWFzOiJudW1iZXIifSxjPXtwYXR0ZXJuOi8mW2Etel9dXHcqL2l9LGQ9e3BhdHRlcm46LygoPzpefFxzfD18XCgpKSUoPzpBQk9SVHxCWXxDTVN8Q09QWXxESVNQTEFZfERPfEVMU0V8RU5EfEVWQUx8R0xPQkFMfEdPfEdPVE98SUZ8SU5DfElOQ0xVREV8SU5ERVh8SU5QVVR8S1RSSU18TEVOR1RIfExFVHxMSVNUfExPQ0FMfFBVVHxRS1RSSU18UVNDQU58UVNVQlNUUnxRU1lTRlVOQ3xRVVBDQVNFfFJFVFVSTnxSVU58U0NBTnxTVUJTVFJ8U1VQRVJRfFNZTURFTHxTWU1FWElTVHxTWU1HTE9CTHxTWU1MT0NBTHxTWVNDQUxMfFNZU0VWQUxGfFNZU0VYRUN8U1lTRlVOQ3xTWVNHRVR8U1lTUlBVVHxUSEVOfFRPfFRTT3xVTlFVT1RFfFVOVElMfFVQQ0FTRXxXSElMRXxXSU5ET1cpXGIvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sZj17cGF0dGVybjovKF58XHMpKD86cHJvY1xzK1x3K3xkYXRhKD8hPSl8cXVpdHxydW4pXGIvaSxhbGlhczoia2V5d29yZCIsbG9va2JlaGluZDohMH0sbT1bL1wvXCpbXHNcU10qP1wqXC8vLHtwYXR0ZXJuOi8oXlsgXHRdKnw7XHMqKVwqW147XSo7L20sbG9va2JlaGluZDohMH1dLGI9e3BhdHRlcm46UmVnRXhwKGkpLGdyZWVkeTohMH0saD0vWyQlQC4oKXt9XFtcXTssXFxdLyxTPXtwYXR0ZXJuOi8lP1xiXHcrKD89XCgpLyxhbGlhczoia2V5d29yZCJ9LEU9e2Z1bmN0aW9uOlMsImFyZy12YWx1ZSI6e3BhdHRlcm46Lyg9XHMqKVtBLVpcLl0rL2ksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6Lz0vLCJtYWNyby12YXJpYWJsZSI6Yyxhcmc6e3BhdHRlcm46L1tBLVpdKy9pLGFsaWFzOiJrZXl3b3JkIn0sbnVtYmVyOmwsIm51bWVyaWMtY29uc3RhbnQiOnUscHVuY3R1YXRpb246aCxzdHJpbmc6Yn0sXz17cGF0dGVybjovXGIoPzpmb3JtYXR8cHV0KVxiPT9bXHcnJC5dKy9pLGluc2lkZTp7a2V5d29yZDovXig/OmZvcm1hdHxwdXQpKD89PSkvaSxlcXVhbHM6Lz0vLGZvcm1hdDp7cGF0dGVybjovKD86XHd8XCRcZCkrXC5cZD8vLGFsaWFzOiJudW1iZXIifX19LFQ9e3BhdHRlcm46L1xiKD86Zm9ybWF0fHB1dClccytbXHcnXSsoPzpccytbJC5cd10rKSsoPz07KS9pLGluc2lkZTp7a2V5d29yZDovXig/OmZvcm1hdHxwdXQpL2ksZm9ybWF0OntwYXR0ZXJuOi9bXHckXStcLlxkPy8sYWxpYXM6Im51bWJlciJ9fX0sQz17cGF0dGVybjovKCg/Ol58XHMpPT8pKD86Y2F0bmFtZXxjaGVja3BvaW50IGV4ZWN1dGVfYWx3YXlzfGRtfGVuZHNhc3xmaWxlbmFtZXxmb290bm90ZXwlaW5jbHVkZXxsaWJuYW1lfCVsaXN0fGxvY2t8bWlzc2luZ3xvcHRpb25zfHBhZ2V8cmVzZXRsaW5lfCVydW58c2FzZmlsZXxza2lwfHN5c2VjaG98dGl0bGVcZD8pXGIvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0seD17cGF0dGVybjovKF58XHMpKD86c3VibWl0KD86XHMrKD86bG9hZHxub3J1bnxwYXJzZW9ubHkpKT98ZW5kc3VibWl0KVxiL2ksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LE49L2FTdG9yZXxhY2Nlc3NDb250cm9sfGFnZ3JlZ2F0aW9ufGF1ZGlvfGF1dG90dW5lfGJheWVzaWFuTmV0Q2xhc3NpZmllcnxiaW9NZWRJbWFnZXxib29sUnVsZXxidWlsdGluc3xjYXJkaW5hbGl0eXxjZG18Y2x1c3RlcmluZ3xjb25kaXRpb25hbFJhbmRvbUZpZWxkc3xjb25maWd1cmF0aW9ufGNvcHVsYXxjb3VudHJlZ3xkYXRhRGlzY292ZXJ5fGRhdGFQcmVwcm9jZXNzfGRhdGFTY2llbmNlUGlsb3R8ZGF0YVN0ZXB8ZGVjaXNpb25UcmVlfGRlZHVwbGljYXRpb258ZGVlcExlYXJufGRlZXBOZXVyYWx8ZGVlcFJubnxkczJ8ZWNtfGVudGl0eVJlc3xlc3BDbHVzdGVyfGV4cGxhaW5Nb2RlbHxmYWN0bWFjfGZhc3RLbm58ZmNtcGFjdHxmZWRTcWx8ZnJlcVRhYnxnVmFyQ2x1c3RlcnxnYW18Z2xlYW18Z3JhcGhTZW1pU3VwTGVhcm58aGlkZGVuTWFya292TW9kZWx8aHlwZXJHcm91cHxpY2F8aW1hZ2V8aW1sfGtlcm5hbFBjYXxsYW5nTW9kZWx8bGRhVG9waWN8bG9hZFN0cmVhbXN8bWJjfG1peGVkfG1sVG9vbHN8bW9kZWxQdWJsaXNoaW5nfG5ldHdvcmt8bmV1cmFsTmV0fG5tZnxub25QYXJhbWV0cmljQmF5ZXN8bm9ubGluZWFyfG9wdE5ldHdvcmt8b3B0aW1pemF0aW9ufHBhbmVsfHBjYXxwZXJjZW50aWxlfHBocmVnfHBsc3xxa2J8cWxpbXxxdWFudHJlZ3xyZWNvbW1lbmR8cmVncmVzc2lvbnxyZWluZm9yY2VtZW50TGVhcm58cm9idXN0UGNhfHJ1bGVNaW5pbmd8c2FtcGxpbmd8c2FuZHdpY2h8c2NjYXNsfHNlYXJjaCg/OkFuYWx5dGljcyk/fHNlbnRpbWVudEFuYWx5c2lzfHNlcXVlbmNlfHNlc3Npb24oPzpQcm9wKT98c2V2ZXJpdHl8c2ltU3lzdGVtfHNpbXBsZXxzbWFydERhdGF8c3BhcmtFbWJlZGRlZFByb2Nlc3N8c3BhcnNlTUx8c3BhdGlhbHJlZ3xzcGN8c3RhYmlsaXR5TW9uaXRvcmluZ3xzdkRhdGFEZXNjcmlwdGlvbnxzdm18dGFibGV8dGV4dCg/OkZpbHRlcnN8RnJlcXVlbmN5fE1pbmluZ3xQYXJzZXxSdWxlKD86RGV2ZWxvcHxTY29yZSl8VG9waWN8VXRpbCl8dGltZURhdGF8dHJhbnNwb3NlfHRzSW5mb3x0c1JlY29uY2lsZXx1bmlUaW1lU2VyaWVzfHZhclJlZHVjZS8uc291cmNlLGs9e3BhdHRlcm46UmVnRXhwKC8oXnxccykoPzphY3Rpb25ccyspPyg/OjxhY3Q+KVwuW2Etel0rXGJbXjtdKy8uc291cmNlLnJlcGxhY2UoLzxhY3Q+L2csZnVuY3Rpb24oKXtyZXR1cm4gTn0pLCJpIiksbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6UmVnRXhwKC8oPzo8YWN0PilcLlthLXpdK1xiLy5zb3VyY2UucmVwbGFjZSgvPGFjdD4vZyxmdW5jdGlvbigpe3JldHVybiBOfSksImkiKSxhY3Rpb246e3BhdHRlcm46Lyg/OmFjdGlvbikvaSxhbGlhczoia2V5d29yZCJ9LGNvbW1lbnQ6bSxmdW5jdGlvbjpTLCJhcmctdmFsdWUiOkVbImFyZy12YWx1ZSJdLG9wZXJhdG9yOkUub3BlcmF0b3IsYXJndW1lbnQ6RS5hcmcsbnVtYmVyOmwsIm51bWVyaWMtY29uc3RhbnQiOnUscHVuY3R1YXRpb246aCxzdHJpbmc6Yn19LEw9e3BhdHRlcm46LygoPzpefFxzKT0/KSg/OmFmdGVyfGFuYWx5c2lzfGFuZHxhcnJheXxiYXJjaGFydHxiYXJ3aWR0aHxiZWdpbmdyYXBofGJ5fGNhbGx8Y2FzfGNiYXJsaW5lfGNmaWxsfGNsYXNzKD86bGV2KT98Y2xvc2V8Y29sdW1ufGNvbXB1dGVkP3xjb250YWluc3xjb250aW51ZXxkYXRhKD89PSl8ZGVmaW5lfGRlbGV0ZXxkZXNjcmliZXxkb2N1bWVudHxkb1xzK292ZXJ8ZG98ZG9sfGRyb3B8ZHVsfGVsc2V8ZW5kKD86Y29tcHxzb3VyY2UpP3xlbnRyeVRpdGxlfGV2YWwoPzp1YXRlKT98ZXhlYyg/OnV0ZSk/fGV4aXR8ZmlsZSg/Om5hbWUpP3xmaWxsKD86YXR0cnMpP3xmbGlzdHxmbmN8ZnVuY3Rpb24oPzpsaXN0KT98Z2xvYmFsfGdvdG98Z3JvdXAoPzpieSk/fGhlYWRsaW5lfGhlYWRza2lwfGhpc3RvZ3JhbXxpZnxpbmZpbGV8a2VlcHxrZXlsYWJlbHxrZXl3b3JkfGxhYmVsfGxheW91dHxsZWF2ZXxsZWdlbmRsYWJlbHxsZW5ndGh8bGlibmFtZXxsb2FkYWN0aW9uc2V0fG1lcmdlfG1pZHBvaW50c3xfP251bGxffG5hbWV8bm9vYnN8bm93ZHxvZHN8b3B0aW9uc3xvcnxvdGhlcndpc2V8b3V0KD86cHV0KT98b3Zlcig/OmxheSk/fHBsb3R8cHJpbnR8cHV0fHJhaXNlfHJhbmV4cHxyYW5ub3J8cmJyZWFrfHJldGFpbnxyZXR1cm58c2VsZWN0fHNlc3Npb258c2Vzc3JlZnxzZXR8c291cmNlfHN0YXRncmFwaHxzdW18c3VtbWFyaXplfHRhYmxlfHRlbXB8dGVybWluYXRlfHRoZW5ccytkb3x0aGVufHRpdGxlXGQ/fHRvfHZhcnx3aGVufHdoZXJlfHhheGlzb3B0c3x5MmF4aXNvcHRzfHlheGlzb3B0cylcYi9pLGxvb2tiZWhpbmQ6ITB9O2EubGFuZ3VhZ2VzLnNhcz17ZGF0YWxpbmVzOntwYXR0ZXJuOi9eKFsgXHRdKikoPzpjYXJkc3woPzpkYXRhKT9saW5lcyk7W1xzXFNdKz9eWyBcdF0qOy9pbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7a2V5d29yZDp7cGF0dGVybjovXig/OmNhcmRzfCg/OmRhdGEpP2xpbmVzKS9pfSxwdW5jdHVhdGlvbjovOy99fSwicHJvYy1zcWwiOntwYXR0ZXJuOi8oXnByb2NccysoPzpmZWQpP3NxbCg/OlxzK1tcd3w9XSspPzspW1xzXFNdKz8oPz1eKD86cHJvY1xzK1x3K3xkYXRhfHF1aXR8cnVuKTt8KD8hW1xzXFNdKSkvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e3NxbDp7cGF0dGVybjpSZWdFeHAoL15bIFx0XSooPzpzZWxlY3R8YWx0ZXJccyt0YWJsZXwoPzpjcmVhdGV8ZGVzY3JpYmV8ZHJvcClccysoPzppbmRleHx0YWJsZSg/OlxzK2NvbnN0cmFpbnRzKT98dmlldyl8Y3JlYXRlXHMrdW5pcXVlXHMraW5kZXh8aW5zZXJ0XHMraW50b3x1cGRhdGUpKD86PHN0cj58W147IiddKSs7Ly5zb3VyY2UucmVwbGFjZSgvPHN0cj4vZyxmdW5jdGlvbigpe3JldHVybiBpfSksImltIiksYWxpYXM6Imxhbmd1YWdlLXNxbCIsaW5zaWRlOmEubGFuZ3VhZ2VzLnNxbH0sImdsb2JhbC1zdGF0ZW1lbnRzIjpDLCJzcWwtc3RhdGVtZW50cyI6e3BhdHRlcm46LyhefFxzKSg/OmRpc2Nvbm5lY3Rccytmcm9tfGJlZ2lufGNvbW1pdHxleGVjKD86dXRlKT98cmVzZXR8cm9sbGJhY2t8dmFsaWRhdGUpXGIvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sbnVtYmVyOmwsIm51bWVyaWMtY29uc3RhbnQiOnUscHVuY3R1YXRpb246aCxzdHJpbmc6Yn19LCJwcm9jLWdyb292eSI6e3BhdHRlcm46LyhecHJvY1xzK2dyb292eSg/OlxzK1tcd3w9XSspPzspW1xzXFNdKz8oPz1eKD86cHJvY1xzK1x3K3xkYXRhfHF1aXR8cnVuKTt8KD8hW1xzXFNdKSkvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e2NvbW1lbnQ6bSxncm9vdnk6e3BhdHRlcm46UmVnRXhwKC8oXlsgXHRdKnN1Ym1pdCg/OlxzKyg/OmxvYWR8bm9ydW58cGFyc2Vvbmx5KSk/KSg/OjxzdHI+fFteIiddKSs/KD89ZW5kc3VibWl0OykvLnNvdXJjZS5yZXBsYWNlKC88c3RyPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSwiaW0iKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJsYW5ndWFnZS1ncm9vdnkiLGluc2lkZTphLmxhbmd1YWdlcy5ncm9vdnl9LGtleXdvcmQ6TCwic3VibWl0LXN0YXRlbWVudCI6eCwiZ2xvYmFsLXN0YXRlbWVudHMiOkMsbnVtYmVyOmwsIm51bWVyaWMtY29uc3RhbnQiOnUscHVuY3R1YXRpb246aCxzdHJpbmc6Yn19LCJwcm9jLWx1YSI6e3BhdHRlcm46LyhecHJvY1xzK2x1YSg/OlxzK1tcd3w9XSspPzspW1xzXFNdKz8oPz1eKD86cHJvY1xzK1x3K3xkYXRhfHF1aXR8cnVuKTt8KD8hW1xzXFNdKSkvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e2NvbW1lbnQ6bSxsdWE6e3BhdHRlcm46UmVnRXhwKC8oXlsgXHRdKnN1Ym1pdCg/OlxzKyg/OmxvYWR8bm9ydW58cGFyc2Vvbmx5KSk/KSg/OjxzdHI+fFteIiddKSs/KD89ZW5kc3VibWl0OykvLnNvdXJjZS5yZXBsYWNlKC88c3RyPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSwiaW0iKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJsYW5ndWFnZS1sdWEiLGluc2lkZTphLmxhbmd1YWdlcy5sdWF9LGtleXdvcmQ6TCwic3VibWl0LXN0YXRlbWVudCI6eCwiZ2xvYmFsLXN0YXRlbWVudHMiOkMsbnVtYmVyOmwsIm51bWVyaWMtY29uc3RhbnQiOnUscHVuY3R1YXRpb246aCxzdHJpbmc6Yn19LCJwcm9jLWNhcyI6e3BhdHRlcm46LyhecHJvY1xzK2Nhcyg/OlxzK1tcd3w9XSspPzspW1xzXFNdKz8oPz1eKD86cHJvY1xzK1x3K3xxdWl0fGRhdGEpO3woPyFbXHNcU10pKS9pbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7Y29tbWVudDptLCJzdGF0ZW1lbnQtdmFyIjp7cGF0dGVybjovKCg/Ol58XHMpPT8pc2F2ZXJlc3VsdFxzW147XSsvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e3N0YXRlbWVudDp7cGF0dGVybjovXnNhdmVyZXN1bHRccytcUysvaSxpbnNpZGU6e2tleXdvcmQ6L14oPzpzYXZlcmVzdWx0KS9pfX0scmVzdDpFfX0sImNhcy1hY3Rpb25zIjprLHN0YXRlbWVudDp7cGF0dGVybjovKCg/Ol58XHMpPT8pKD86ZGVmYXVsdHwoPzp1bik/c2V0fG9ufG91dHB1dHx1cGxvYWQpW147XSsvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6RX0sc3RlcDpmLGtleXdvcmQ6TCxmdW5jdGlvbjpTLGZvcm1hdDpfLGFsdGZvcm1hdDpULCJnbG9iYWwtc3RhdGVtZW50cyI6QyxudW1iZXI6bCwibnVtZXJpYy1jb25zdGFudCI6dSxwdW5jdHVhdGlvbjpoLHN0cmluZzpifX0sInByb2MtYXJncyI6e3BhdHRlcm46UmVnRXhwKC8oXnByb2NccytcdytccyspKD8hXHMpKD86W147IiddfDxzdHI+KSs7Ly5zb3VyY2UucmVwbGFjZSgvPHN0cj4vZyxmdW5jdGlvbigpe3JldHVybiBpfSksImltIiksbG9va2JlaGluZDohMCxpbnNpZGU6RX0sIm1hY3JvLWtleXdvcmQiOmQsIm1hY3JvLXZhcmlhYmxlIjpjLCJtYWNyby1zdHJpbmctZnVuY3Rpb25zIjp7cGF0dGVybjovKCg/Ol58XHN8PSkpJSg/OkJRVU9URXxOUkJRVU9URXxOUlFVT1RFfE5SU1RSfFFVT1RFfFNUUilcKC4qPyg/OlteJV1cKSkvaSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ZnVuY3Rpb246e3BhdHRlcm46LyUoPzpCUVVPVEV8TlJCUVVPVEV8TlJRVU9URXxOUlNUUnxRVU9URXxTVFIpL2ksYWxpYXM6ImtleXdvcmQifSwibWFjcm8ta2V5d29yZCI6ZCwibWFjcm8tdmFyaWFibGUiOmMsImVzY2FwZWQtY2hhciI6e3BhdHRlcm46LyVbJyIoKTw+PcKsXn47LCNdL30scHVuY3R1YXRpb246aH19LCJtYWNyby1kZWNsYXJhdGlvbiI6e3BhdHRlcm46L14lbWFjcm9bXjtdKyg/PTspL2ltLGluc2lkZTp7a2V5d29yZDovJW1hY3JvL2l9fSwibWFjcm8tZW5kIjp7cGF0dGVybjovXiVtZW5kW147XSsoPz07KS9pbSxpbnNpZGU6e2tleXdvcmQ6LyVtZW5kL2l9fSxtYWNybzp7cGF0dGVybjovJV9cdysoPz1cKCkvLGFsaWFzOiJrZXl3b3JkIn0saW5wdXQ6e3BhdHRlcm46L1xiaW5wdXRcc1stXHdccy8qLiQmXSs7L2ksaW5zaWRlOntpbnB1dDp7YWxpYXM6ImtleXdvcmQiLHBhdHRlcm46L15pbnB1dC9pfSxjb21tZW50Om0sbnVtYmVyOmwsIm51bWVyaWMtY29uc3RhbnQiOnV9fSwib3B0aW9ucy1hcmdzIjp7cGF0dGVybjovKF5vcHRpb25zKVstJyJ8L1xcPD4qKz06KClcd1xzXSooPz07KS9pbSxsb29rYmVoaW5kOiEwLGluc2lkZTpFfSwiY2FzLWFjdGlvbnMiOmssY29tbWVudDptLGZ1bmN0aW9uOlMsZm9ybWF0Ol8sYWx0Zm9ybWF0OlQsIm51bWVyaWMtY29uc3RhbnQiOnUsZGF0ZXRpbWU6e3BhdHRlcm46UmVnRXhwKGkrIig/OmR0P3x0KSIpLGFsaWFzOiJudW1iZXIifSxzdHJpbmc6YixzdGVwOmYsa2V5d29yZDpMLCJvcGVyYXRvci1rZXl3b3JkIjp7cGF0dGVybjovXGIoPzplcXxnZXxndHxpbnxsZXxsdHxuZXxub3QpXGIvaSxhbGlhczoib3BlcmF0b3IifSxudW1iZXI6bCxvcGVyYXRvcjovXCpcKj98XHxcfD98ISE/fMKmwqY/fDxbPj1dP3w+Wzw9XT98Wy0rXC89Jl18W37CrF5dPT8vLHB1bmN0dWF0aW9uOmh9fSkobil9cmV0dXJuIGVtfXZhciB0bSxGUjtmdW5jdGlvbiBNQigpe2lmKEZSKXJldHVybiB0bTtGUj0xLHRtPWUsZS5kaXNwbGF5TmFtZT0ic2FzcyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2EubGFuZ3VhZ2VzLnNhc3M9YS5sYW5ndWFnZXMuZXh0ZW5kKCJjc3MiLHtjb21tZW50OntwYXR0ZXJuOi9eKFsgXHRdKilcL1tcLypdLiooPzooPzpccj9cbnxccilcMVsgXHRdLispKi9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic2FzcyIsImF0cnVsZSIseyJhdHJ1bGUtbGluZSI6e3BhdHRlcm46L14oPzpbIFx0XSopW0ArPV0uKy9tLGdyZWVkeTohMCxpbnNpZGU6e2F0cnVsZTovKD86QFtcdy1dK3xbKz1dKS99fX0pLGRlbGV0ZSBhLmxhbmd1YWdlcy5zYXNzLmF0cnVsZTt2YXIgaT0vXCRbLVx3XSt8I1x7XCRbLVx3XStcfS8sbD1bL1srKlwvJV18Wz0hXT18PD0/fD49P3xcYig/OmFuZHxub3R8b3IpXGIvLHtwYXR0ZXJuOi8oXHMpLSg/PVxzKS8sbG9va2JlaGluZDohMH1dO2EubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic2FzcyIsInByb3BlcnR5Iix7InZhcmlhYmxlLWxpbmUiOntwYXR0ZXJuOi9eWyBcdF0qXCQuKy9tLGdyZWVkeTohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi86Lyx2YXJpYWJsZTppLG9wZXJhdG9yOmx9fSwicHJvcGVydHktbGluZSI6e3BhdHRlcm46L15bIFx0XSooPzpbXjpcc10rICo6Lip8OlteOlxzXS4qKS9tLGdyZWVkeTohMCxpbnNpZGU6e3Byb3BlcnR5OlsvW146XHNdKyg/PVxzKjopLyx7cGF0dGVybjovKDopW146XHNdKy8sbG9va2JlaGluZDohMH1dLHB1bmN0dWF0aW9uOi86Lyx2YXJpYWJsZTppLG9wZXJhdG9yOmwsaW1wb3J0YW50OmEubGFuZ3VhZ2VzLnNhc3MuaW1wb3J0YW50fX19KSxkZWxldGUgYS5sYW5ndWFnZXMuc2Fzcy5wcm9wZXJ0eSxkZWxldGUgYS5sYW5ndWFnZXMuc2Fzcy5pbXBvcnRhbnQsYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzYXNzIiwicHVuY3R1YXRpb24iLHtzZWxlY3Rvcjp7cGF0dGVybjovXihbIFx0XSopXFMoPzosW14sXHJcbl0rfFteLFxyXG5dKikoPzosW14sXHJcbl0rKSooPzosKD86XHI/XG58XHIpXDFbIFx0XStcUyg/OixbXixcclxuXSt8W14sXHJcbl0qKSg/OixbXixcclxuXSspKikqL20sbG9va2JlaGluZDohMCxncmVlZHk6ITB9fSl9KShuKX1yZXR1cm4gdG19dmFyIG5tLEJSO2Z1bmN0aW9uIFVCKCl7aWYoQlIpcmV0dXJuIG5tO0JSPTE7dmFyIGU9YWIoKTtubT1uLG4uZGlzcGxheU5hbWU9InNjYWxhIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLGEubGFuZ3VhZ2VzLnNjYWxhPWEubGFuZ3VhZ2VzLmV4dGVuZCgiamF2YSIseyJ0cmlwbGUtcXVvdGVkLXN0cmluZyI6e3BhdHRlcm46LyIiIltcc1xTXSo/IiIiLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyJ9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxrZXl3b3JkOi88LXw9PnxcYig/OmFic3RyYWN0fGNhc2V8Y2F0Y2h8Y2xhc3N8ZGVmfGRvfGVsc2V8ZXh0ZW5kc3xmaW5hbHxmaW5hbGx5fGZvcnxmb3JTb21lfGlmfGltcGxpY2l0fGltcG9ydHxsYXp5fG1hdGNofG5ld3xudWxsfG9iamVjdHxvdmVycmlkZXxwYWNrYWdlfHByaXZhdGV8cHJvdGVjdGVkfHJldHVybnxzZWFsZWR8c2VsZnxzdXBlcnx0aGlzfHRocm93fHRyYWl0fHRyeXx0eXBlfHZhbHx2YXJ8d2hpbGV8d2l0aHx5aWVsZClcYi8sbnVtYmVyOi9cYjB4KD86W1xkYS1mXSpcLik/W1xkYS1mXSt8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZVxkKyk/W2RmbF0/L2ksYnVpbHRpbjovXGIoPzpBbnl8QW55UmVmfEFueVZhbHxCb29sZWFufEJ5dGV8Q2hhcnxEb3VibGV8RmxvYXR8SW50fExvbmd8Tm90aGluZ3xTaG9ydHxTdHJpbmd8VW5pdClcYi8sc3ltYm9sOi8nW15cZFxzXFxdXHcqL30pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic2NhbGEiLCJ0cmlwbGUtcXVvdGVkLXN0cmluZyIseyJzdHJpbmctaW50ZXJwb2xhdGlvbiI6e3BhdHRlcm46L1xiW2Etel1cdyooPzoiIiIoPzpbXiRdfFwkKD86W157XXxceyg/Oltee31dfFx7W157fV0qXH0pKlx9KSkqPyIiInwiKD86W14kIlxyXG5dfFwkKD86W157XXxceyg/Oltee31dfFx7W157fV0qXH0pKlx9KSkqIikvaSxncmVlZHk6ITAsaW5zaWRlOntpZDp7cGF0dGVybjovXlx3Ky8sZ3JlZWR5OiEwLGFsaWFzOiJmdW5jdGlvbiJ9LGVzY2FwZTp7cGF0dGVybjovXFxcJCJ8XCRbJCJdLyxncmVlZHk6ITAsYWxpYXM6InN5bWJvbCJ9LGludGVycG9sYXRpb246e3BhdHRlcm46L1wkKD86XHcrfFx7KD86W157fV18XHtbXnt9XSpcfSkqXH0pLyxncmVlZHk6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXlwkXHs/fFx9JC8sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOmEubGFuZ3VhZ2VzLnNjYWxhfX19LHN0cmluZzovW1xzXFNdKy99fX0pLGRlbGV0ZSBhLmxhbmd1YWdlcy5zY2FsYVsiY2xhc3MtbmFtZSJdLGRlbGV0ZSBhLmxhbmd1YWdlcy5zY2FsYS5mdW5jdGlvbn1yZXR1cm4gbm19dmFyIHJtLGpSO2Z1bmN0aW9uIEZCKCl7aWYoalIpcmV0dXJuIHJtO2pSPTEscm09ZSxlLmRpc3BsYXlOYW1lPSJzY3NzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5zY3NzPW4ubGFuZ3VhZ2VzLmV4dGVuZCgiY3NzIix7Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pKD86XC9cKltcc1xTXSo/XCpcL3xcL1wvLiopLyxsb29rYmVoaW5kOiEwfSxhdHJ1bGU6e3BhdHRlcm46L0BbXHctXSg/OlwoW14oKV0rXCl8W14oKVxzXXxccysoPyFccykpKj8oPz1ccytbeztdKS8saW5zaWRlOntydWxlOi9AW1x3LV0rL319LHVybDovKD86Wy1hLXpdKy0pP3VybCg/PVwoKS9pLHNlbGVjdG9yOntwYXR0ZXJuOi8oPz1cUylbXkA7e30oKV0/KD86W15AO3t9KClcc118XHMrKD8hXHMpfCNce1wkWy1cd10rXH0pKyg/PVxzKlx7KD86XH18XHN8W159XVteOnt9XSpbOntdW159XSkpLyxpbnNpZGU6e3BhcmVudDp7cGF0dGVybjovJi8sYWxpYXM6ImltcG9ydGFudCJ9LHBsYWNlaG9sZGVyOi8lWy1cd10rLyx2YXJpYWJsZTovXCRbLVx3XSt8I1x7XCRbLVx3XStcfS99fSxwcm9wZXJ0eTp7cGF0dGVybjovKD86Wy1cd118XCRbLVx3XXwjXHtcJFstXHddK1x9KSsoPz1ccyo6KS8saW5zaWRlOnt2YXJpYWJsZTovXCRbLVx3XSt8I1x7XCRbLVx3XStcfS99fX0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic2NzcyIsImF0cnVsZSIse2tleXdvcmQ6Wy9AKD86Y29udGVudHxkZWJ1Z3xlYWNofGVsc2UoPzogaWYpP3xleHRlbmR8Zm9yfGZvcndhcmR8ZnVuY3Rpb258aWZ8aW1wb3J0fGluY2x1ZGV8bWl4aW58cmV0dXJufHVzZXx3YXJufHdoaWxlKVxiL2kse3BhdHRlcm46LyggKSg/OmZyb218dGhyb3VnaCkoPz0gKS8sbG9va2JlaGluZDohMH1dfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzY3NzIiwiaW1wb3J0YW50Iix7dmFyaWFibGU6L1wkWy1cd10rfCNce1wkWy1cd10rXH0vfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzY3NzIiwiZnVuY3Rpb24iLHsibW9kdWxlLW1vZGlmaWVyIjp7cGF0dGVybjovXGIoPzphc3xoaWRlfHNob3d8d2l0aClcYi9pLGFsaWFzOiJrZXl3b3JkIn0scGxhY2Vob2xkZXI6e3BhdHRlcm46LyVbLVx3XSsvLGFsaWFzOiJzZWxlY3RvciJ9LHN0YXRlbWVudDp7cGF0dGVybjovXEIhKD86ZGVmYXVsdHxvcHRpb25hbClcYi9pLGFsaWFzOiJrZXl3b3JkIn0sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudWxsOntwYXR0ZXJuOi9cYm51bGxcYi8sYWxpYXM6ImtleXdvcmQifSxvcGVyYXRvcjp7cGF0dGVybjovKFxzKSg/OlstKypcLyVdfFs9IV09fDw9P3w+PT98YW5kfG5vdHxvcikoPz1ccykvLGxvb2tiZWhpbmQ6ITB9fSksbi5sYW5ndWFnZXMuc2Nzcy5hdHJ1bGUuaW5zaWRlLnJlc3Q9bi5sYW5ndWFnZXMuc2Nzc31yZXR1cm4gcm19dmFyIGFtLHpSO2Z1bmN0aW9uIEJCKCl7aWYoelIpcmV0dXJuIGFtO3pSPTE7dmFyIGU9cGsoKTthbT1uLG4uZGlzcGxheU5hbWU9InNoZWxsU2Vzc2lvbiIsbi5hbGlhc2VzPVtdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSwoZnVuY3Rpb24oaSl7dmFyIGw9Wy8iKD86XFxbXHNcU118XCRcKFteKV0rXCl8XCQoPyFcKCl8YFteYF0rYHxbXiJcXGAkXSkqIi8uc291cmNlLC8nW14nXSonLy5zb3VyY2UsL1wkJyg/OlteJ1xcXXxcXFtcc1xTXSkqJy8uc291cmNlLC88PC0/XHMqKFsiJ10/KShcdyspXDFcc1tcc1xTXSo/W1xyXG5dXDIvLnNvdXJjZV0uam9pbigifCIpO2kubGFuZ3VhZ2VzWyJzaGVsbC1zZXNzaW9uIl09e2NvbW1hbmQ6e3BhdHRlcm46UmVnRXhwKC9eLy5zb3VyY2UrIig/OiIrKC9bXlxzQDokIyUqIS9cXF0rQFteXHJcbkA6JCMlKiEvXFxdKyg/OjpbXlwwLVx4MUYkIyUqPyI8Pjo7fF0rKT8vLnNvdXJjZSsifCIrL1svfi5dW15cMC1ceDFGJCMlKj8iPD5AOjt8XSovLnNvdXJjZSkrIik/IisvWyQjJV0oPz1ccykvLnNvdXJjZSsvKD86W15cXFxyXG4gXHQnIjwkXXxbIFx0XSg/Oig/ISMpfCMuKiQpfFxcKD86W15ccl18XHJcbj8pfFwkKD8hJyl8PCg/ITwpfDw8c3RyPj4pKy8uc291cmNlLnJlcGxhY2UoLzw8c3RyPj4vZyxmdW5jdGlvbigpe3JldHVybiBsfSksIm0iKSxncmVlZHk6ITAsaW5zaWRlOntpbmZvOntwYXR0ZXJuOi9eW14jJCVdKy8sYWxpYXM6InB1bmN0dWF0aW9uIixpbnNpZGU6e3VzZXI6L15bXlxzQDokIyUqIS9cXF0rQFteXHJcbkA6JCMlKiEvXFxdKy8scHVuY3R1YXRpb246LzovLHBhdGg6L1tcc1xTXSsvfX0sYmFzaDp7cGF0dGVybjovKF5bJCMlXVxzKilcU1tcc1xTXSovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Imxhbmd1YWdlLWJhc2giLGluc2lkZTppLmxhbmd1YWdlcy5iYXNofSwic2hlbGwtc3ltYm9sIjp7cGF0dGVybjovXlskIyVdLyxhbGlhczoiaW1wb3J0YW50In19fSxvdXRwdXQ6Ly4oPzouKig/OltcclxuXXwuJCkpKi99LGkubGFuZ3VhZ2VzWyJzaC1zZXNzaW9uIl09aS5sYW5ndWFnZXMuc2hlbGxzZXNzaW9uPWkubGFuZ3VhZ2VzWyJzaGVsbC1zZXNzaW9uIl19KShhKX1yZXR1cm4gYW19dmFyIGltLHFSO2Z1bmN0aW9uIGpCKCl7aWYocVIpcmV0dXJuIGltO3FSPTEsaW09ZSxlLmRpc3BsYXlOYW1lPSJzbWFsaSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMuc21hbGk9e2NvbW1lbnQ6LyMuKi8sc3RyaW5nOntwYXR0ZXJuOi8iKD86W15cclxuXFwiXXxcXC4pKiJ8Jyg/OlteXHJcblxcJ118XFwoPzoufHVbXGRhLWZBLUZdezR9KSknLyxncmVlZHk6ITB9LCJjbGFzcy1uYW1lIjp7cGF0dGVybjovKF58W15MXSlMKD86KD86XHcrfGBbXmBcclxuXSpgKVwvKSooPzpbXHckXSt8YFteYFxyXG5dKmApKD89XHMqOykvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyheTHxcLykoPzpbXHckXSt8YFteYFxyXG5dKmApJC8sbG9va2JlaGluZDohMH0sbmFtZXNwYWNlOntwYXR0ZXJuOi9eKEwpKD86KD86XHcrfGBbXmBcclxuXSpgKVwvKSsvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXC8vfX0sYnVpbHRpbjovXkwvfX0sYnVpbHRpbjpbe3BhdHRlcm46LyhbKCk7XFtdKVtCQ0RGSUpTVlpdKy8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhbXHckPl06KVtCQ0RGSUpTVlpdLyxsb29rYmVoaW5kOiEwfV0sa2V5d29yZDpbe3BhdHRlcm46LyhcLmVuZFxzKylbXHctXSsvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxbXlx3Li1dKVwuKD8hXGQpW1x3LV0rLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W15cdy4tXSkoPzphYnN0cmFjdHxhbm5vdGF0aW9ufGJyaWRnZXxjb25zdHJ1Y3RvcnxlbnVtfGZpbmFsfGludGVyZmFjZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cnVudGltZXxzdGF0aWN8c3ludGhldGljfHN5c3RlbXx0cmFuc2llbnQpKD8hW1x3Li1dKS8sbG9va2JlaGluZDohMH1dLGZ1bmN0aW9uOntwYXR0ZXJuOi8oXnxbXlx3Li1dKSg/Olx3K3w8W1x3JC1dKz4pKD89XCgpLyxsb29rYmVoaW5kOiEwfSxmaWVsZDp7cGF0dGVybjovW1x3JF0rKD89OikvLGFsaWFzOiJ2YXJpYWJsZSJ9LHJlZ2lzdGVyOntwYXR0ZXJuOi8oXnxbXlx3Li1dKVt2cF1cZCg/IVtcdy4tXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InZhcmlhYmxlIn0sYm9vbGVhbjp7cGF0dGVybjovKF58W15cdy4tXSkoPzpmYWxzZXx0cnVlKSg/IVtcdy4tXSkvLGxvb2tiZWhpbmQ6ITB9LG51bWJlcjp7cGF0dGVybjovKF58W14vXHcuLV0pLT8oPzpOQU58SU5GSU5JVFl8MHgoPzpbXGRBLUZdKyg/OlwuW1xkQS1GXSopP3xcLltcZEEtRl0rKSg/OnBbKy1dP1tcZEEtRl0rKT98KD86XGQrKD86XC5cZCopP3xcLlxkKykoPzplWystXT9cZCspPylbZGZsc3RdPyg/IVtcdy4tXSkvaSxsb29rYmVoaW5kOiEwfSxsYWJlbDp7cGF0dGVybjovKDopXHcrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LG9wZXJhdG9yOi8tPnxcLlwufFtcWz1dLyxwdW5jdHVhdGlvbjovW3t9KCksOzpdL319cmV0dXJuIGltfXZhciBvbSxQUjtmdW5jdGlvbiB6Qigpe2lmKFBSKXJldHVybiBvbTtQUj0xLG9tPWUsZS5kaXNwbGF5TmFtZT0ic21hbGx0YWxrIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5zbWFsbHRhbGs9e2NvbW1lbnQ6e3BhdHRlcm46LyIoPzoiInxbXiJdKSoiLyxncmVlZHk6ITB9LGNoYXI6e3BhdHRlcm46L1wkLi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LycoPzonJ3xbXiddKSonLyxncmVlZHk6ITB9LHN5bWJvbDovI1tcZGEtel0rfCMoPzotfChbK1wvXFwqfjw+PUAlfCY/IV0pXDE/KXwjKD89XCgpL2ksImJsb2NrLWFyZ3VtZW50cyI6e3BhdHRlcm46LyhcW1xzKik6W15cW3xdKlx8Lyxsb29rYmVoaW5kOiEwLGluc2lkZTp7dmFyaWFibGU6LzpbXGRhLXpdKy9pLHB1bmN0dWF0aW9uOi9cfC99fSwidGVtcG9yYXJ5LXZhcmlhYmxlcyI6e3BhdHRlcm46L1x8W158XStcfC8saW5zaWRlOnt2YXJpYWJsZTovW1xkYS16XSsvaSxwdW5jdHVhdGlvbjovXHwvfX0sa2V5d29yZDovXGIoPzpuZXd8bmlsfHNlbGZ8c3VwZXIpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sbnVtYmVyOlsvXGQrci0/W1xkQS1aXSsoPzpcLltcZEEtWl0rKT8oPzplLT9cZCspPy8sL1xiXGQrKD86XC5cZCspPyg/OmUtP1xkKyk/L10sb3BlcmF0b3I6L1s8PV09P3w6PXx+W349XXxcL1wvP3xcXFxcfD5bPj1dP3xbIV4rXC0qJnwsQF0vLHB1bmN0dWF0aW9uOi9bLjs6P1xbXF0oKXt9XS99fXJldHVybiBvbX12YXIgbG0sR1I7ZnVuY3Rpb24gcUIoKXtpZihHUilyZXR1cm4gbG07R1I9MTt2YXIgZT1IdCgpO2xtPW4sbi5kaXNwbGF5TmFtZT0ic21hcnR5IixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLChmdW5jdGlvbihpKXtpLmxhbmd1YWdlcy5zbWFydHk9e2NvbW1lbnQ6e3BhdHRlcm46L15ce1wqW1xzXFNdKj9cKlx9LyxncmVlZHk6ITB9LCJlbWJlZGRlZC1waHAiOntwYXR0ZXJuOi9eXHtwaHBcfVtcc1xTXSo/XHtcL3BocFx9LyxncmVlZHk6ITAsaW5zaWRlOntzbWFydHk6e3BhdHRlcm46L15ce3BocFx9fFx7XC9waHBcfSQvLGluc2lkZTpudWxsfSxwaHA6e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJsYW5ndWFnZS1waHAiLGluc2lkZTppLmxhbmd1YWdlcy5waHB9fX0sc3RyaW5nOlt7cGF0dGVybjovIig/OlxcLnxbXiJcXFxyXG5dKSoiLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi9ce1tee31dKlx9fGBbXmBdKmAvLGluc2lkZTp7ImludGVycG9sYXRpb24tcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eW3tgXXxbYH1dJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOm51bGx9fX0sdmFyaWFibGU6L1wkXHcrL319LHtwYXR0ZXJuOi8nKD86XFwufFteJ1xcXHJcbl0pKicvLGdyZWVkeTohMH1dLGtleXdvcmQ6e3BhdHRlcm46LyheXHtcLz8pW2Etel9dXHcqXGIoPyFcKCkvaSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sZGVsaW1pdGVyOntwYXR0ZXJuOi9eXHtcLz98XH0kLyxncmVlZHk6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sbnVtYmVyOi9cYjB4W1xkQS1GYS1mXSt8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VlXVstK10/XGQrKT8vLHZhcmlhYmxlOlsvXCQoPyFcZClcdysvLC8jKD8hXGQpXHcrIy8se3BhdHRlcm46LyhcLnwtPnxcd1xzKj0pKD8hXGQpXHcrXGIoPyFcKCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXFspKD8hXGQpXHcrKD89XF0pLyxsb29rYmVoaW5kOiEwfV0sZnVuY3Rpb246e3BhdHRlcm46LyhcfFxzKilAP1thLXpfXVx3KnxcYlthLXpfXVx3Kig/PVwoKS9pLGxvb2tiZWhpbmQ6ITB9LCJhdHRyLW5hbWUiOi9cYlthLXpfXVx3Kig/PVxzKj0pL2ksYm9vbGVhbjovXGIoPzpmYWxzZXxub3xvZmZ8b258dHJ1ZXx5ZXMpXGIvLHB1bmN0dWF0aW9uOi9bXFtcXSgpe30uLDpgXXwtPi8sb3BlcmF0b3I6Wy9bK1wtKlwvJV18PT0/PT98WyE8Pl09P3wmJnxcfFx8Py8sL1xiaXNccysoPzpub3RccyspPyg/OmRpdnxldmVufG9kZCkoPzpccytieSk/XGIvLC9cYig/OmFuZHxlcXxndD9lfGd0fGx0P2V8bHR8bW9kfG5lcT98bm90fG9yKVxiL119LGkubGFuZ3VhZ2VzLnNtYXJ0eVsiZW1iZWRkZWQtcGhwIl0uaW5zaWRlLnNtYXJ0eS5pbnNpZGU9aS5sYW5ndWFnZXMuc21hcnR5LGkubGFuZ3VhZ2VzLnNtYXJ0eS5zdHJpbmdbMF0uaW5zaWRlLmludGVycG9sYXRpb24uaW5zaWRlLmV4cHJlc3Npb24uaW5zaWRlPWkubGFuZ3VhZ2VzLnNtYXJ0eTt2YXIgbD0vIig/OlxcLnxbXiJcXFxyXG5dKSoifCcoPzpcXC58W14nXFxcclxuXSkqJy8sdT1SZWdFeHAoL1x7XCpbXHNcU10qP1wqXH0vLnNvdXJjZSsifCIrL1x7cGhwXH1bXHNcU10qP1x7XC9waHBcfS8uc291cmNlKyJ8IisvXHsoPzpbXnt9IiddfDxzdHI+fFx7KD86W157fSInXXw8c3RyPnxceyg/Oltee30iJ118PHN0cj4pKlx9KSpcfSkqXH0vLnNvdXJjZS5yZXBsYWNlKC88c3RyPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGwuc291cmNlfSksImciKTtpLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihjKXt2YXIgZD0ie2xpdGVyYWx9IixmPSJ7L2xpdGVyYWx9IixtPSExO2kubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdLmJ1aWxkUGxhY2Vob2xkZXJzKGMsInNtYXJ0eSIsdSxmdW5jdGlvbihiKXtyZXR1cm4gYj09PWYmJihtPSExKSxtPyExOihiPT09ZCYmKG09ITApLCEwKX0pfSksaS5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihjKXtpLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS50b2tlbml6ZVBsYWNlaG9sZGVycyhjLCJzbWFydHkiKX0pfSkoYSl9cmV0dXJuIGxtfXZhciBzbSxIUjtmdW5jdGlvbiBQQigpe2lmKEhSKXJldHVybiBzbTtIUj0xLHNtPWUsZS5kaXNwbGF5TmFtZT0ic21sIixlLmFsaWFzZXM9WyJzbWxuaiJdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPS9cYig/OmFic3R5cGV8YW5kfGFuZGFsc298YXN8Y2FzZXxkYXRhdHlwZXxkb3xlbHNlfGVuZHxlcXR5cGV8ZXhjZXB0aW9ufGZufGZ1bnxmdW5jdG9yfGhhbmRsZXxpZnxpbnxpbmNsdWRlfGluZml4fGluZml4cnxsZXR8bG9jYWx8bm9uZml4fG9mfG9wfG9wZW58b3JlbHNlfHJhaXNlfHJlY3xzaGFyaW5nfHNpZ3xzaWduYXR1cmV8c3RydWN0fHN0cnVjdHVyZXx0aGVufHR5cGV8dmFsfHdoZXJlfHdoaWxlfHdpdGh8d2l0aHR5cGUpXGIvaTthLmxhbmd1YWdlcy5zbWw9e2NvbW1lbnQ6L1woXCooPzpbXiooXXxcKig/IVwpKXxcKCg/IVwqKXxcKFwqKD86W14qKF18XCooPyFcKSl8XCgoPyFcKikpKlwqXCkpKlwqXCkvLHN0cmluZzp7cGF0dGVybjovIz8iKD86W14iXFxdfFxcLikqIi8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOlJlZ0V4cCgvKCg/Ol58W146XSk6XHMqKTxURVJNSU5BTD4oPzpccyooPzooPzpcKnwtPilccyo8VEVSTUlOQUw+fCxccyo8VEVSTUlOQUw+KD86KD89PE5PVC1MQVNUPil8KD8hPE5PVC1MQVNUPilccys8TE9ORy1JRD4pKSkqLy5zb3VyY2UucmVwbGFjZSgvPE5PVC1MQVNUPi9nLGZ1bmN0aW9uKCl7cmV0dXJuL1xzKig/OlsqLF18LT4pLy5zb3VyY2V9KS5yZXBsYWNlKC88VEVSTUlOQUw+L2csZnVuY3Rpb24oKXtyZXR1cm4vKD86J1tcdyddKnw8TE9ORy1JRD58XCgoPzpbXigpXXxcKFteKCldKlwpKSpcKXxceyg/Oltee31dfFx7W157fV0qXH0pKlx9KSg/OlxzKzxMT05HLUlEPikqLy5zb3VyY2V9KS5yZXBsYWNlKC88TE9ORy1JRD4vZyxmdW5jdGlvbigpe3JldHVybi8oPyE8S0VZV09SRD4pW2EtelxkX11bXHcnLl0qLy5zb3VyY2V9KS5yZXBsYWNlKC88S0VZV09SRD4vZyxmdW5jdGlvbigpe3JldHVybiBpLnNvdXJjZX0pLCJpIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOm51bGx9LHtwYXR0ZXJuOi8oKD86XnxbXlx3J10pKD86ZGF0YXR5cGV8ZXhjZXB0aW9ufGZ1bmN0b3J8c2lnbmF0dXJlfHN0cnVjdHVyZXx0eXBlKVxzKylbYS16X11bXHcnLl0qL2ksbG9va2JlaGluZDohMH1dLGZ1bmN0aW9uOntwYXR0ZXJuOi8oKD86XnxbXlx3J10pZnVuXHMrKVthLXpfXVtcdycuXSovaSxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOmksdmFyaWFibGU6e3BhdHRlcm46LyhefFteXHcnXSknW1x3J10qLyxsb29rYmVoaW5kOiEwfSxudW1iZXI6L34/XGIoPzpcZCsoPzpcLlxkKyk/KD86ZX4/XGQrKT98MHhbXGRhLWZdKylcYi9pLHdvcmQ6e3BhdHRlcm46L1xiMHcoPzpcZCt8eFtcZGEtZl0rKVxiL2ksYWxpYXM6ImNvbnN0YW50In0sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiL2ksb3BlcmF0b3I6L1wuXC5cLnw6Wz49Ol18PT4/fC0+fFs8Pl09P3xbIStcLSovXiN8QH5dLyxwdW5jdHVhdGlvbjovWygpe31cW1xdLjosO10vfSxhLmxhbmd1YWdlcy5zbWxbImNsYXNzLW5hbWUiXVswXS5pbnNpZGU9YS5sYW5ndWFnZXMuc21sLGEubGFuZ3VhZ2VzLnNtbG5qPWEubGFuZ3VhZ2VzLnNtbH0pKG4pfXJldHVybiBzbX12YXIgdW0sJFI7ZnVuY3Rpb24gR0IoKXtpZigkUilyZXR1cm4gdW07JFI9MSx1bT1lLGUuZGlzcGxheU5hbWU9InNvbGlkaXR5IixlLmFsaWFzZXM9WyJzb2wiXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLnNvbGlkaXR5PW4ubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHsiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmNvbnRyYWN0fGVudW18aW50ZXJmYWNlfGxpYnJhcnl8bmV3fHN0cnVjdHx1c2luZylccyspKD8hXGQpW1x3JF0rLyxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOi9cYig/Ol98YW5vbnltb3VzfGFzfGFzc2VtYmx5fGFzc2VydHxicmVha3xjYWxsZGF0YXxjYXNlfGNvbnN0YW50fGNvbnN0cnVjdG9yfGNvbnRpbnVlfGNvbnRyYWN0fGRlZmF1bHR8ZGVsZXRlfGRvfGVsc2V8ZW1pdHxlbnVtfGV2ZW50fGV4dGVybmFsfGZvcnxmcm9tfGZ1bmN0aW9ufGlmfGltcG9ydHxpbmRleGVkfGluaGVyaXRlZHxpbnRlcmZhY2V8aW50ZXJuYWx8aXN8bGV0fGxpYnJhcnl8bWFwcGluZ3xtZW1vcnl8bW9kaWZpZXJ8bmV3fHBheWFibGV8cHJhZ21hfHByaXZhdGV8cHVibGljfHB1cmV8cmVxdWlyZXxyZXR1cm5zP3xyZXZlcnR8c2VsZmRlc3RydWN0fHNvbGlkaXR5fHN0b3JhZ2V8c3RydWN0fHN1aWNpZGV8c3dpdGNofHRoaXN8dGhyb3d8dXNpbmd8dmFyfHZpZXd8d2hpbGUpXGIvLG9wZXJhdG9yOi89PnwtPnw6PXw9OnxcKlwqfFwrXCt8LS18XHxcfHwmJnw8PD0/fD4+PT98Wy0rKi8lXiZ8PD4hPV09P3xbfj9dL30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic29saWRpdHkiLCJrZXl3b3JkIix7YnVpbHRpbjovXGIoPzphZGRyZXNzfGJvb2x8Ynl0ZXx1P2ludCg/Ojh8MTZ8MjR8MzJ8NDB8NDh8NTZ8NjR8NzJ8ODB8ODh8OTZ8MTA0fDExMnwxMjB8MTI4fDEzNnwxNDR8MTUyfDE2MHwxNjh8MTc2fDE4NHwxOTJ8MjAwfDIwOHwyMTZ8MjI0fDIzMnwyNDB8MjQ4fDI1Nik/fHN0cmluZ3xieXRlcyg/OlsxLTldfFsxMl1cZHwzWzAtMl0pPylcYi99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInNvbGlkaXR5IiwibnVtYmVyIix7dmVyc2lvbjp7cGF0dGVybjovKFs8Pl09P3xcXilcZCtcLlxkK1wuXGQrXGIvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9fSksbi5sYW5ndWFnZXMuc29sPW4ubGFuZ3VhZ2VzLnNvbGlkaXR5fXJldHVybiB1bX12YXIgY20sVlI7ZnVuY3Rpb24gSEIoKXtpZihWUilyZXR1cm4gY207VlI9MSxjbT1lLGUuZGlzcGxheU5hbWU9InNvbHV0aW9uRmlsZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPXtwYXR0ZXJuOi9ce1tcZGEtZl17OH0tW1xkYS1mXXs0fS1bXGRhLWZdezR9LVtcZGEtZl17NH0tW1xkYS1mXXsxMn1cfS9pLGFsaWFzOiJjb25zdGFudCIsaW5zaWRlOntwdW5jdHVhdGlvbjovW3t9XS99fTthLmxhbmd1YWdlc1sic29sdXRpb24tZmlsZSJdPXtjb21tZW50OntwYXR0ZXJuOi8jLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8iW14iXHJcbl0qInwnW14nXHJcbl0qJy8sZ3JlZWR5OiEwLGluc2lkZTp7Z3VpZDppfX0sb2JqZWN0OntwYXR0ZXJuOi9eKFsgXHRdKikoPzooW0EtWl1cdyopXGIoPz0uKig/OlxyXG4/fFxuKSg/OlwxWyBcdF0uKig/OlxyXG4/fFxuKSkqXDFFbmRcMig/PVsgXHRdKiQpKXxFbmRbQS1aXVx3Kig/PVsgXHRdKiQpKS9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJrZXl3b3JkIn0scHJvcGVydHk6e3BhdHRlcm46L14oWyBcdF0qKSg/IVxzKVteXHJcbiIjPSgpXSpbXlxzIiM9KCldKD89XHMqPSkvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7Z3VpZDppfX0sZ3VpZDppLG51bWJlcjovXGJcZCsoPzpcLlxkKykqXGIvLGJvb2xlYW46L1xiKD86RkFMU0V8VFJVRSlcYi8sb3BlcmF0b3I6Lz0vLHB1bmN0dWF0aW9uOi9bKCksXS99LGEubGFuZ3VhZ2VzLnNsbj1hLmxhbmd1YWdlc1sic29sdXRpb24tZmlsZSJdfSkobil9cmV0dXJuIGNtfXZhciBkbSxZUjtmdW5jdGlvbiAkQigpe2lmKFlSKXJldHVybiBkbTtZUj0xO3ZhciBlPUh0KCk7ZG09bixuLmRpc3BsYXlOYW1lPSJzb3kiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksKGZ1bmN0aW9uKGkpe3ZhciBsPS8oWyInXSkoPzpcXCg/OlxyXG58W1xzXFNdKXwoPyFcMSlbXlxcXHJcbl0pKlwxLyx1PS9cYlxkKyg/OlwuXGQrKT8oPzpbZUVdWystXT9cZCspP1xifFxiMHhbXGRBLUZdK1xiLztpLmxhbmd1YWdlcy5zb3k9e2NvbW1lbnQ6Wy9cL1wqW1xzXFNdKj9cKlwvLyx7cGF0dGVybjovKFxzKVwvXC8uKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSwiY29tbWFuZC1hcmciOntwYXR0ZXJuOi8oXHsrXC8/XHMqKD86YWxpYXN8Y2FsbHxkZWxjYWxsfGRlbHBhY2thZ2V8ZGVsdGVtcGxhdGV8bmFtZXNwYWNlfHRlbXBsYXRlKVxzKylcLj9bXHcuXSsvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0scGFyYW1ldGVyOntwYXR0ZXJuOi8oXHsrXC8/XHMqQD9wYXJhbVw/P1xzKylcLj9bXHcuXSsvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InZhcmlhYmxlIn0sa2V5d29yZDpbe3BhdHRlcm46LyhceytcLz9bXlxTXHJcbl0qKSg/OlxcW25ydF18YWxpYXN8Y2FsbHxjYXNlfGNzc3xkZWZhdWx0fGRlbGNhbGx8ZGVscGFja2FnZXxkZWx0ZW1wbGF0ZXxlbHNlKD86aWYpP3xmYWxsYmFja21zZ3xmb3IoPzplYWNoKT98aWYoPzplbXB0eSk/fGxifGxldHxsaXRlcmFsfG1zZ3xuYW1lc3BhY2V8bmlsfEA/cGFyYW1cPz98cmJ8c3B8c3dpdGNofHRlbXBsYXRlfHhpZCkvLGxvb2tiZWhpbmQ6ITB9LC9cYig/OmFueXxhc3xhdHRyaWJ1dGVzfGJvb2x8Y3NzfGZsb2F0fGh0bWx8aW58aW50fGpzfGxpc3R8bWFwfG51bGx8bnVtYmVyfHN0cmluZ3x1cmkpXGIvXSxkZWxpbWl0ZXI6e3BhdHRlcm46L15ceytcLz98XC8/XH0rJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0scHJvcGVydHk6L1x3Kyg/PT0pLyx2YXJpYWJsZTp7cGF0dGVybjovXCRbXlxXXGRdXHcqKD86XD8/KD86XC5cdyt8XFtbXlxdXStcXSkpKi8saW5zaWRlOntzdHJpbmc6e3BhdHRlcm46bCxncmVlZHk6ITB9LG51bWJlcjp1LHB1bmN0dWF0aW9uOi9bXFtcXS4/XS99fSxzdHJpbmc6e3BhdHRlcm46bCxncmVlZHk6ITB9LGZ1bmN0aW9uOlsvXHcrKD89XCgpLyx7cGF0dGVybjovKFx8W15cU1xyXG5dKilcdysvLGxvb2tiZWhpbmQ6ITB9XSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG51bWJlcjp1LG9wZXJhdG9yOi9cPzo/fDw9P3w+PT98PT0/fCE9fFsrKi8lLV18XGIoPzphbmR8bm90fG9yKVxiLyxwdW5jdHVhdGlvbjovW3t9KClcW1xdfC4sOl0vfSxpLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihjKXt2YXIgZD0vXHtcey4rP1x9XH18XHsuKz9cfXxcc1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvL2csZj0ie2xpdGVyYWx9IixtPSJ7L2xpdGVyYWx9IixiPSExO2kubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdLmJ1aWxkUGxhY2Vob2xkZXJzKGMsInNveSIsZCxmdW5jdGlvbihoKXtyZXR1cm4gaD09PW0mJihiPSExKSxiPyExOihoPT09ZiYmKGI9ITApLCEwKX0pfSksaS5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihjKXtpLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS50b2tlbml6ZVBsYWNlaG9sZGVycyhjLCJzb3kiKX0pfSkoYSl9cmV0dXJuIGRtfXZhciBwbSxLUjtmdW5jdGlvbiBoaygpe2lmKEtSKXJldHVybiBwbTtLUj0xLHBtPWUsZS5kaXNwbGF5TmFtZT0idHVydGxlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy50dXJ0bGU9e2NvbW1lbnQ6e3BhdHRlcm46LyMuKi8sZ3JlZWR5OiEwfSwibXVsdGlsaW5lLXN0cmluZyI6e3BhdHRlcm46LyIiIig/Oig/OiIiPyk/KD86W14iXFxdfFxcLikpKiIiInwnJycoPzooPzonJz8pPyg/OlteJ1xcXXxcXC4pKSonJycvLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIixpbnNpZGU6e2NvbW1lbnQ6LyMuKi99fSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXlxcIlxyXG5dfFxcLikqInwnKD86W15cXCdcclxuXXxcXC4pKicvLGdyZWVkeTohMH0sdXJsOntwYXR0ZXJuOi88KD86W15ceDAwLVx4MjA8PiJ7fXxeYFxcXXxcXCg/OnVbXGRhLWZBLUZdezR9fFVbXGRhLWZBLUZdezh9KSkqPi8sZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1s8Pl0vfX0sZnVuY3Rpb246e3BhdHRlcm46Lyg/Oig/IVstLlxkXHhCN10pWy0uXHdceEI3XHhDMC1cdUZGRkRdKyk/Oig/Oig/IVstLl0pKD86Wy0uOlx3XHhDMC1cdUZGRkRdfCVbXGRhLWZdezJ9fFxcLikrKT8vaSxpbnNpZGU6eyJsb2NhbC1uYW1lIjp7cGF0dGVybjovKFteOl0qOilbXHNcU10rLyxsb29rYmVoaW5kOiEwfSxwcmVmaXg6e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTp7cHVuY3R1YXRpb246LzovfX19fSxudW1iZXI6L1srLV0/XGJcZCsoPzpcLlxkKik/KD86ZVsrLV0/XGQrKT8vaSxwdW5jdHVhdGlvbjovW3t9Liw7KClbXF1dfFxeXF4vLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sa2V5d29yZDpbLyg/OlxiYXxAcHJlZml4fEBiYXNlKVxifD0vLC9cYig/OmJhc2V8Z3JhcGh8cHJlZml4KVxiL2ldLHRhZzp7cGF0dGVybjovQFthLXpdKyg/Oi1bYS16XGRdKykqL2ksaW5zaWRlOntwdW5jdHVhdGlvbjovQC99fX0sbi5sYW5ndWFnZXMudHJpZz1uLmxhbmd1YWdlcy50dXJ0bGV9cmV0dXJuIHBtfXZhciBmbSxXUjtmdW5jdGlvbiBWQigpe2lmKFdSKXJldHVybiBmbTtXUj0xO3ZhciBlPWhrKCk7Zm09bixuLmRpc3BsYXlOYW1lPSJzcGFycWwiLG4uYWxpYXNlcz1bInJxIl07ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLGEubGFuZ3VhZ2VzLnNwYXJxbD1hLmxhbmd1YWdlcy5leHRlbmQoInR1cnRsZSIse2Jvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLHZhcmlhYmxlOntwYXR0ZXJuOi9bPyRdXHcrLyxncmVlZHk6ITB9fSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzcGFycWwiLCJwdW5jdHVhdGlvbiIse2tleXdvcmQ6Wy9cYig/OkF8QUREfEFMTHxBU3xBU0N8QVNLfEJOT0RFfEJZfENMRUFSfENPTlNUUlVDVHxDT1BZfENSRUFURXxEQVRBfERFRkFVTFR8REVMRVRFfERFU0N8REVTQ1JJQkV8RElTVElOQ1R8RFJPUHxFWElTVFN8RklMVEVSfEZST018R1JPVVB8SEFWSU5HfElOU0VSVHxJTlRPfExJTUlUfExPQUR8TUlOVVN8TU9WRXxOQU1FRHxOT1R8Tk9XfE9GRlNFVHxPUFRJT05BTHxPUkRFUnxSQU5EfFJFRFVDRUR8U0VMRUNUfFNFUEFSQVRPUnxTRVJWSUNFfFNJTEVOVHxTVFJVVUlEfFVOSU9OfFVTSU5HfFVVSUR8VkFMVUVTfFdIRVJFKVxiL2ksL1xiKD86QUJTfEFWR3xCSU5EfEJPVU5EfENFSUx8Q09BTEVTQ0V8Q09OQ0FUfENPTlRBSU5TfENPVU5UfERBVEFUWVBFfERBWXxFTkNPREVfRk9SX1VSSXxGTE9PUnxHUk9VUF9DT05DQVR8SE9VUlN8SUZ8SVJJfGlzQkxBTkt8aXNJUkl8aXNMSVRFUkFMfGlzTlVNRVJJQ3xpc1VSSXxMQU5HfExBTkdNQVRDSEVTfExDQVNFfE1BWHxNRDV8TUlOfE1JTlVURVN8TU9OVEh8UkVHRVh8UkVQTEFDRXxST1VORHxzYW1lVGVybXxTQU1QTEV8U0VDT05EU3xTSEExfFNIQTI1NnxTSEEzODR8U0hBNTEyfFNUUnxTVFJBRlRFUnxTVFJCRUZPUkV8U1RSRFR8U1RSRU5EU3xTVFJMQU5HfFNUUkxFTnxTVFJTVEFSVFN8U1VCU1RSfFNVTXxUSU1FWk9ORXxUWnxVQ0FTRXxVUkl8WUVBUilcYig/PVxzKlwoKS9pLC9cYig/OkJBU0V8R1JBUEh8UFJFRklYKVxiL2ldfSksYS5sYW5ndWFnZXMucnE9YS5sYW5ndWFnZXMuc3BhcnFsfXJldHVybiBmbX12YXIgZ20sWFI7ZnVuY3Rpb24gWUIoKXtpZihYUilyZXR1cm4gZ207WFI9MSxnbT1lLGUuZGlzcGxheU5hbWU9InNwbHVua1NwbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXNbInNwbHVuay1zcGwiXT17Y29tbWVudDovYGNvbW1lbnRcKCIoPzpcXC58W15cXCJdKSoiXClgLyxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXC58W15cXCJdKSoiLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86YWJzdHJhY3R8YWNjdW18YWRkY29sdG90YWxzfGFkZGluZm98YWRkdG90YWxzfGFuYWx5emVmaWVsZHN8YW5vbWFsaWVzfGFub21hbG91c3ZhbHVlfGFub21hbHlkZXRlY3Rpb258YXBwZW5kfGFwcGVuZGNvbHN8YXBwZW5kY3N2fGFwcGVuZGxvb2t1cHxhcHBlbmRwaXBlfGFydWxlc3xhc3NvY2lhdGV8YXVkaXR8YXV0b3JlZ3Jlc3N8YmlufGJ1Y2tldHxidWNrZXRkaXJ8Y2hhcnR8Y2x1c3Rlcnxjb2ZpbHRlcnxjb2xsZWN0fGNvbmN1cnJlbmN5fGNvbnRpbmdlbmN5fGNvbnZlcnR8Y29ycmVsYXRlfGRhdGFtb2RlbHxkYmluc3BlY3R8ZGVkdXB8ZGVsZXRlfGRlbHRhfGRpZmZ8ZXJleHxldmFsfGV2ZW50Y291bnR8ZXZlbnRzdGF0c3xleHRyYWN0fGZpZWxkZm9ybWF0fGZpZWxkc3xmaWVsZHN1bW1hcnl8ZmlsbGRvd258ZmlsbG51bGx8ZmluZHR5cGVzfGZvbGRlcml6ZXxmb3JlYWNofGZvcm1hdHxmcm9tfGdhdWdlfGdlbnRpbWVzfGdlb218Z2VvbWZpbHRlcnxnZW9zdGF0c3xoZWFkfGhpZ2hsaWdodHxoaXN0b3J5fGljb25pZnl8aW5wdXR8aW5wdXRjc3Z8aW5wdXRsb29rdXB8aXBsb2NhdGlvbnxqb2lufGttZWFuc3xrdnxrdmZvcm18bG9hZGpvYnxsb2NhbGl6ZXxsb2NhbG9wfGxvb2t1cHxtYWtlY29udGludW91c3xtYWtlbXZ8bWFrZXJlc3VsdHN8bWFwfG1jb2xsZWN0fG1ldGFkYXRhfG1ldGFzZWFyY2h8bWV2ZW50Y29sbGVjdHxtc3RhdHN8bXVsdGlrdnxtdWx0aXNlYXJjaHxtdmNvbWJpbmV8bXZleHBhbmR8bm9tdnxvdXRsaWVyfG91dHB1dGNzdnxvdXRwdXRsb29rdXB8b3V0cHV0dGV4dHxvdmVybGFwfHBpdm90fHByZWRpY3R8cmFuZ2VtYXB8cmFyZXxyZWdleHxyZWxldmFuY3l8cmVsdGltZXxyZW5hbWV8cmVwbGFjZXxyZXN0fHJldHVybnxyZXZlcnNlfHJleHxydG9yZGVyfHJ1bnxzYXZlZHNlYXJjaHxzY3JpcHR8c2NydWJ8c2VhcmNofHNlYXJjaHR4bnxzZWxmam9pbnxzZW5kZW1haWx8c2V0fHNldGZpZWxkc3xzaWNoYXJ0fHNpcmFyZXxzaXN0YXRzfHNpdGltZWNoYXJ0fHNpdG9wfHNvcnR8c3BhdGh8c3RhdHN8c3RyY2F0fHN0cmVhbXN0YXRzfHRhYmxlfHRhZ3N8dGFpbHx0aW1lY2hhcnR8dGltZXdyYXB8dG9wfHRyYW5zYWN0aW9ufHRyYW5zcG9zZXx0cmVuZGxpbmV8dHNjb2xsZWN0fHRzdGF0c3x0eXBlYWhlYWR8dHlwZWxlYXJuZXJ8dHlwZXJ8dW5pb258dW5pcXx1bnRhYmxlfHdoZXJlfHgxMXx4bWxrdnx4bWx1bmVzY2FwZXx4cGF0aHx4eXNlcmllcylcYi9pLCJvcGVyYXRvci13b3JkIjp7cGF0dGVybjovXGIoPzphbmR8YXN8Ynl8bm90fG9yfHhvcilcYi9pLGFsaWFzOiJvcGVyYXRvciJ9LGZ1bmN0aW9uOi9cYlx3Kyg/PVxzKlwoKS8scHJvcGVydHk6L1xiXHcrKD89XHMqPSg/IT0pKS8sZGF0ZTp7cGF0dGVybjovXGJcZHsxLDJ9XC9cZHsxLDJ9XC9cZHsxLDR9KD86KD86OlxkezEsMn0pezN9KT9cYi8sYWxpYXM6Im51bWJlciJ9LG51bWJlcjovXGJcZCsoPzpcLlxkKyk/XGIvLGJvb2xlYW46L1xiKD86ZnxmYWxzZXx0fHRydWUpXGIvaSxvcGVyYXRvcjovWzw+PV09P3xbLSsqLyV8XS8scHVuY3R1YXRpb246L1soKVtcXSxdL319cmV0dXJuIGdtfXZhciBtbSxaUjtmdW5jdGlvbiBLQigpe2lmKFpSKXJldHVybiBtbTtaUj0xLG1tPWUsZS5kaXNwbGF5TmFtZT0ic3FmIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5zcWY9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse3N0cmluZzp7cGF0dGVybjovIig/Oig/OiIiKT9bXiJdKSoiKD8hIil8Jyg/OlteJ10pKicvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzpicmVha091dHxicmVha1RvfGNhbGx8Y2FzZXxjYXRjaHxkZWZhdWx0fGRvfGVjaG98ZWxzZXxleGVjRlNNfGV4ZWNWTXxleGl0V2l0aHxmb3J8Zm9yRWFjaHxmb3JFYWNoTWVtYmVyfGZvckVhY2hNZW1iZXJBZ2VudHxmb3JFYWNoTWVtYmVyVGVhbXxmcm9tfGdvdG98aWZ8bmlsfHByZXByb2Nlc3NGaWxlfHByZXByb2Nlc3NGaWxlTGluZU51bWJlcnN8cHJpdmF0ZXxzY29wZU5hbWV8c3Bhd258c3RlcHxzd2l0Y2h8dGhlbnx0aHJvd3x0b3x0cnl8d2hpbGV8d2l0aClcYi9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLGZ1bmN0aW9uOi9cYig/OmFic3xhY2NUaW1lfGFjb3N8YWN0aW9ufGFjdGlvbklEc3xhY3Rpb25LZXlzfGFjdGlvbktleXNJbWFnZXN8YWN0aW9uS2V5c05hbWVzfGFjdGlvbktleXNOYW1lc0FycmF5fGFjdGlvbk5hbWV8YWN0aW9uUGFyYW1zfGFjdGl2YXRlQWRkb25zfGFjdGl2YXRlZEFkZG9uc3xhY3RpdmF0ZUtleXxhZGQzREVOQ29ubmVjdGlvbnxhZGQzREVORXZlbnRIYW5kbGVyfGFkZDNERU5MYXllcnxhZGRBY3Rpb258YWRkQmFja3BhY2t8YWRkQmFja3BhY2tDYXJnb3xhZGRCYWNrcGFja0NhcmdvR2xvYmFsfGFkZEJhY2twYWNrR2xvYmFsfGFkZENhbVNoYWtlfGFkZEN1cmF0b3JBZGRvbnN8YWRkQ3VyYXRvckNhbWVyYUFyZWF8YWRkQ3VyYXRvckVkaXRhYmxlT2JqZWN0c3xhZGRDdXJhdG9yRWRpdGluZ0FyZWF8YWRkQ3VyYXRvclBvaW50c3xhZGRFZGl0b3JPYmplY3R8YWRkRXZlbnRIYW5kbGVyfGFkZEZvcmNlfGFkZEZvcmNlR2VuZXJhdG9yUlREfGFkZEdvZ2dsZXN8YWRkR3JvdXBJY29ufGFkZEhhbmRndW5JdGVtfGFkZEhlYWRnZWFyfGFkZEl0ZW18YWRkSXRlbUNhcmdvfGFkZEl0ZW1DYXJnb0dsb2JhbHxhZGRJdGVtUG9vbHxhZGRJdGVtVG9CYWNrcGFja3xhZGRJdGVtVG9Vbmlmb3JtfGFkZEl0ZW1Ub1Zlc3R8YWRkTGl2ZVN0YXRzfGFkZE1hZ2F6aW5lfGFkZE1hZ2F6aW5lQW1tb0NhcmdvfGFkZE1hZ2F6aW5lQ2FyZ298YWRkTWFnYXppbmVDYXJnb0dsb2JhbHxhZGRNYWdhemluZUdsb2JhbHxhZGRNYWdhemluZVBvb2x8YWRkTWFnYXppbmVzfGFkZE1hZ2F6aW5lVHVycmV0fGFkZE1lbnV8YWRkTWVudUl0ZW18YWRkTWlzc2lvbkV2ZW50SGFuZGxlcnxhZGRNUEV2ZW50SGFuZGxlcnxhZGRNdXNpY0V2ZW50SGFuZGxlcnxhZGRPd25lZE1pbmV8YWRkUGxheWVyU2NvcmVzfGFkZFByaW1hcnlXZWFwb25JdGVtfGFkZFB1YmxpY1ZhcmlhYmxlRXZlbnRIYW5kbGVyfGFkZFJhdGluZ3xhZGRSZXNvdXJjZXN8YWRkU2NvcmV8YWRkU2NvcmVTaWRlfGFkZFNlY29uZGFyeVdlYXBvbkl0ZW18YWRkU3dpdGNoYWJsZVVuaXR8YWRkVGVhbU1lbWJlcnxhZGRUb1JlbWFpbnNDb2xsZWN0b3J8YWRkVG9ycXVlfGFkZFVuaWZvcm18YWRkVmVoaWNsZXxhZGRWZXN0fGFkZFdheXBvaW50fGFkZFdlYXBvbnxhZGRXZWFwb25DYXJnb3xhZGRXZWFwb25DYXJnb0dsb2JhbHxhZGRXZWFwb25HbG9iYWx8YWRkV2VhcG9uSXRlbXxhZGRXZWFwb25Qb29sfGFkZFdlYXBvblR1cnJldHxhZG1pbnxhZ2VudHxhZ2VudHN8QUdMVG9BU0x8YWltZWRBdFRhcmdldHxhaW1Qb3N8YWlyRGVuc2l0eUN1cnZlUlREfGFpckRlbnNpdHlSVER8YWlycGxhbmVUaHJvdHRsZXxhaXJwb3J0U2lkZXxBSVNGaW5pc2hIZWFsfGFsaXZlfGFsbDNERU5FbnRpdGllc3xhbGxBaXJwb3J0c3xhbGxDb250cm9sc3xhbGxDdXJhdG9yc3xhbGxDdXRMYXllcnN8YWxsRGVhZHxhbGxEZWFkTWVufGFsbERpc3BsYXlzfGFsbEdyb3Vwc3xhbGxNYXBNYXJrZXJzfGFsbE1pbmVzfGFsbE1pc3Npb25PYmplY3RzfGFsbG93M0RNb2RlfGFsbG93Q3Jld0luSW1tb2JpbGV8YWxsb3dDdXJhdG9yTG9naWNJZ25vcmVBcmVhc3xhbGxvd0RhbWFnZXxhbGxvd0RhbW1hZ2V8YWxsb3dGaWxlT3BlcmF0aW9uc3xhbGxvd0ZsZWVpbmd8YWxsb3dHZXRJbnxhbGxvd1NwcmludHxhbGxQbGF5ZXJzfGFsbFNpbXBsZU9iamVjdHN8YWxsU2l0ZXN8YWxsVHVycmV0c3xhbGxVbml0c3xhbGxVbml0c1VBVnxhbGxWYXJpYWJsZXN8YW1tb3xhbW1vT25QeWxvbnxhbmltYXRlfGFuaW1hdGVCYXl8YW5pbWF0ZURvb3J8YW5pbWF0ZVB5bG9ufGFuaW1hdGVTb3VyY2V8YW5pbWF0aW9uTmFtZXN8YW5pbWF0aW9uUGhhc2V8YW5pbWF0aW9uU291cmNlUGhhc2V8YW5pbWF0aW9uU3RhdGV8YXBwZW5kfGFwcGx5fGFybW9yeVBvaW50c3xhcnJheUludGVyc2VjdHxhc2lufEFTTFRvQUdMfEFTTFRvQVRMfGFzc2VydHxhc3NpZ25Bc0NhcmdvfGFzc2lnbkFzQ2FyZ29JbmRleHxhc3NpZ25Bc0NvbW1hbmRlcnxhc3NpZ25Bc0RyaXZlcnxhc3NpZ25Bc0d1bm5lcnxhc3NpZ25Bc1R1cnJldHxhc3NpZ25DdXJhdG9yfGFzc2lnbmVkQ2FyZ298YXNzaWduZWRDb21tYW5kZXJ8YXNzaWduZWREcml2ZXJ8YXNzaWduZWRHdW5uZXJ8YXNzaWduZWRJdGVtc3xhc3NpZ25lZFRhcmdldHxhc3NpZ25lZFRlYW18YXNzaWduZWRWZWhpY2xlfGFzc2lnbmVkVmVoaWNsZVJvbGV8YXNzaWduSXRlbXxhc3NpZ25UZWFtfGFzc2lnblRvQWlycG9ydHxhdGFufGF0YW4yfGF0Z3xBVExUb0FTTHxhdHRhY2hlZE9iamVjdHxhdHRhY2hlZE9iamVjdHN8YXR0YWNoZWRUb3xhdHRhY2hPYmplY3R8YXR0YWNoVG98YXR0YWNrRW5hYmxlZHxiYWNrcGFja3xiYWNrcGFja0NhcmdvfGJhY2twYWNrQ29udGFpbmVyfGJhY2twYWNrSXRlbXN8YmFja3BhY2tNYWdhemluZXN8YmFja3BhY2tTcGFjZUZvcnxiZWhhdmlvdXJ8YmVuY2htYXJrfGJpbm9jdWxhcnxibHVmb3J8Ym91bmRpbmdCb3h8Ym91bmRpbmdCb3hSZWFsfGJvdW5kaW5nQ2VudGVyfGJyaWVmaW5nTmFtZXxidWlsZGluZ0V4aXR8YnVpbGRpbmdQb3N8YnVsZG96ZXJfRW5hYmxlUm9hZERpYWd8YnVsZG96ZXJfSXNFbmFibGVkUm9hZERpYWd8YnVsZG96ZXJfTG9hZE5ld1JvYWRzfGJ1bGRvemVyX3JlbG9hZE9wZXJNYXB8YnV0dG9uQWN0aW9ufGJ1dHRvblNldEFjdGlvbnxjYWRldE1vZGV8Y2FsbEV4dGVuc2lvbnxjYW1Db21tYW5kfGNhbUNvbW1pdHxjYW1Db21taXRQcmVwYXJlZHxjYW1Db21taXR0ZWR8Y2FtQ29uc3R1Y3Rpb25TZXRQYXJhbXN8Y2FtQ3JlYXRlfGNhbURlc3Ryb3l8Y2FtZXJhRWZmZWN0fGNhbWVyYUVmZmVjdEVuYWJsZUhVRHxjYW1lcmFJbnRlcmVzdHxjYW1lcmFPbnxjYW1lcmFWaWV3fGNhbXBhaWduQ29uZmlnRmlsZXxjYW1QcmVsb2FkfGNhbVByZWxvYWRlZHxjYW1QcmVwYXJlQmFua3xjYW1QcmVwYXJlRGlyfGNhbVByZXBhcmVEaXZlfGNhbVByZXBhcmVGb2N1c3xjYW1QcmVwYXJlRm92fGNhbVByZXBhcmVGb3ZSYW5nZXxjYW1QcmVwYXJlUG9zfGNhbVByZXBhcmVSZWxQb3N8Y2FtUHJlcGFyZVRhcmdldHxjYW1TZXRCYW5rfGNhbVNldERpcnxjYW1TZXREaXZlfGNhbVNldEZvY3VzfGNhbVNldEZvdnxjYW1TZXRGb3ZSYW5nZXxjYW1TZXRQb3N8Y2FtU2V0UmVsUG9zfGNhbVNldFRhcmdldHxjYW1UYXJnZXR8Y2FtVXNlTlZHfGNhbkFkZHxjYW5BZGRJdGVtVG9CYWNrcGFja3xjYW5BZGRJdGVtVG9Vbmlmb3JtfGNhbkFkZEl0ZW1Ub1Zlc3R8Y2FuY2VsU2ltcGxlVGFza0Rlc3RpbmF0aW9ufGNhbkZpcmV8Y2FuTW92ZXxjYW5TbGluZ0xvYWR8Y2FuU3RhbmR8Y2FuU3VzcGVuZHxjYW5UcmlnZ2VyRHluYW1pY1NpbXVsYXRpb258Y2FuVW5sb2FkSW5Db21iYXR8Y2FuVmVoaWNsZUNhcmdvfGNhcHRpdmV8Y2FwdGl2ZU51bXxjYkNoZWNrZWR8Y2JTZXRDaGVja2VkfGNlaWx8Y2hhbm5lbEVuYWJsZWR8Y2hlYXRzRW5hYmxlZHxjaGVja0FJRmVhdHVyZXxjaGVja1Zpc2liaWxpdHl8Y2l2aWxpYW58Y2xhc3NOYW1lfGNsZWFyM0RFTkF0dHJpYnV0ZXxjbGVhcjNERU5JbnZlbnRvcnl8Y2xlYXJBbGxJdGVtc0Zyb21CYWNrcGFja3xjbGVhckJhY2twYWNrQ2FyZ298Y2xlYXJCYWNrcGFja0NhcmdvR2xvYmFsfGNsZWFyRm9yY2VzUlREfGNsZWFyR3JvdXBJY29uc3xjbGVhckl0ZW1DYXJnb3xjbGVhckl0ZW1DYXJnb0dsb2JhbHxjbGVhckl0ZW1Qb29sfGNsZWFyTWFnYXppbmVDYXJnb3xjbGVhck1hZ2F6aW5lQ2FyZ29HbG9iYWx8Y2xlYXJNYWdhemluZVBvb2x8Y2xlYXJPdmVybGF5fGNsZWFyUmFkaW98Y2xlYXJWZWhpY2xlSW5pdHxjbGVhcldlYXBvbkNhcmdvfGNsZWFyV2VhcG9uQ2FyZ29HbG9iYWx8Y2xlYXJXZWFwb25Qb29sfGNsaWVudE93bmVyfGNsb3NlRGlhbG9nfGNsb3NlRGlzcGxheXxjbG9zZU92ZXJsYXl8Y29sbGFwc2VPYmplY3RUcmVlfGNvbGxlY3QzREVOSGlzdG9yeXxjb2xsZWN0aXZlUlREfGNvbWJhdE1vZGV8Y29tbWFuZEFydGlsbGVyeUZpcmV8Y29tbWFuZENoYXR8Y29tbWFuZGVyfGNvbW1hbmRGaXJlfGNvbW1hbmRGb2xsb3d8Y29tbWFuZEZTTXxjb21tYW5kR2V0T3V0fGNvbW1hbmRpbmdNZW51fGNvbW1hbmRNb3ZlfGNvbW1hbmRSYWRpb3xjb21tYW5kU3RvcHxjb21tYW5kU3VwcHJlc3NpdmVGaXJlfGNvbW1hbmRUYXJnZXR8Y29tbWFuZFdhdGNofGNvbW1lbnR8Y29tbWl0T3ZlcmxheXxjb21waWxlfGNvbXBpbGVGaW5hbHxjb21wbGV0ZWRGU018Y29tcG9zZVRleHR8Y29uZmlnQ2xhc3Nlc3xjb25maWdGaWxlfGNvbmZpZ0hpZXJhcmNoeXxjb25maWdOYW1lfGNvbmZpZ051bGx8Y29uZmlnUHJvcGVydGllc3xjb25maWdTb3VyY2VBZGRvbkxpc3R8Y29uZmlnU291cmNlTW9kfGNvbmZpZ1NvdXJjZU1vZExpc3R8Y29uZmlybVNlbnNvclRhcmdldHxjb25uZWN0VGVybWluYWxUb1VBVnxjb250cm9sTnVsbHxjb250cm9sc0dyb3VwQ3RybHxjb3B5RnJvbUNsaXBib2FyZHxjb3B5VG9DbGlwYm9hcmR8Y29weVdheXBvaW50c3xjb3N8Y291bnR8Y291bnRFbmVteXxjb3VudEZyaWVuZGx5fGNvdW50U2lkZXxjb3VudFR5cGV8Y291bnRVbmtub3dufGNyZWF0ZTNERU5Db21wb3NpdGlvbnxjcmVhdGUzREVORW50aXR5fGNyZWF0ZUFnZW50fGNyZWF0ZUNlbnRlcnxjcmVhdGVEaWFsb2d8Y3JlYXRlRGlhcnlMaW5rfGNyZWF0ZURpYXJ5UmVjb3JkfGNyZWF0ZURpYXJ5U3ViamVjdHxjcmVhdGVEaXNwbGF5fGNyZWF0ZUdlYXJEaWFsb2d8Y3JlYXRlR3JvdXB8Y3JlYXRlR3VhcmRlZFBvaW50fGNyZWF0ZUxvY2F0aW9ufGNyZWF0ZU1hcmtlcnxjcmVhdGVNYXJrZXJMb2NhbHxjcmVhdGVNZW51fGNyZWF0ZU1pbmV8Y3JlYXRlTWlzc2lvbkRpc3BsYXl8Y3JlYXRlTVBDYW1wYWlnbkRpc3BsYXl8Y3JlYXRlU2ltcGxlT2JqZWN0fGNyZWF0ZVNpbXBsZVRhc2t8Y3JlYXRlU2l0ZXxjcmVhdGVTb3VuZFNvdXJjZXxjcmVhdGVUYXNrfGNyZWF0ZVRlYW18Y3JlYXRlVHJpZ2dlcnxjcmVhdGVVbml0fGNyZWF0ZVZlaGljbGV8Y3JlYXRlVmVoaWNsZUNyZXd8Y3JlYXRlVmVoaWNsZUxvY2FsfGNyZXd8Y3RBZGRIZWFkZXJ8Y3RBZGRSb3d8Y3RDbGVhcnxjdEN1clNlbHxjdERhdGF8Y3RGaW5kSGVhZGVyUm93c3xjdEZpbmRSb3dIZWFkZXJ8Y3RIZWFkZXJDb250cm9sc3xjdEhlYWRlckNvdW50fGN0UmVtb3ZlSGVhZGVyc3xjdFJlbW92ZVJvd3N8Y3RybEFjdGl2YXRlfGN0cmxBZGRFdmVudEhhbmRsZXJ8Y3RybEFuZ2xlfGN0cmxBdXRvU2Nyb2xsRGVsYXl8Y3RybEF1dG9TY3JvbGxSZXdpbmR8Y3RybEF1dG9TY3JvbGxTcGVlZHxjdHJsQ2hlY2tlZHxjdHJsQ2xhc3NOYW1lfGN0cmxDb21taXR8Y3RybENvbW1pdHRlZHxjdHJsQ3JlYXRlfGN0cmxEZWxldGV8Y3RybEVuYWJsZXxjdHJsRW5hYmxlZHxjdHJsRmFkZXxjdHJsSFRNTExvYWRlZHxjdHJsSURDfGN0cmxJRER8Y3RybE1hcEFuaW1BZGR8Y3RybE1hcEFuaW1DbGVhcnxjdHJsTWFwQW5pbUNvbW1pdHxjdHJsTWFwQW5pbURvbmV8Y3RybE1hcEN1cnNvcnxjdHJsTWFwTW91c2VPdmVyfGN0cmxNYXBTY2FsZXxjdHJsTWFwU2NyZWVuVG9Xb3JsZHxjdHJsTWFwV29ybGRUb1NjcmVlbnxjdHJsTW9kZWx8Y3RybE1vZGVsRGlyQW5kVXB8Y3RybE1vZGVsU2NhbGV8Y3RybFBhcmVudHxjdHJsUGFyZW50Q29udHJvbHNHcm91cHxjdHJsUG9zaXRpb258Y3RybFJlbW92ZUFsbEV2ZW50SGFuZGxlcnN8Y3RybFJlbW92ZUV2ZW50SGFuZGxlcnxjdHJsU2NhbGV8Y3RybFNldEFjdGl2ZUNvbG9yfGN0cmxTZXRBbmdsZXxjdHJsU2V0QXV0b1Njcm9sbERlbGF5fGN0cmxTZXRBdXRvU2Nyb2xsUmV3aW5kfGN0cmxTZXRBdXRvU2Nyb2xsU3BlZWR8Y3RybFNldEJhY2tncm91bmRDb2xvcnxjdHJsU2V0Q2hlY2tlZHxjdHJsU2V0RGlzYWJsZWRDb2xvcnxjdHJsU2V0RXZlbnRIYW5kbGVyfGN0cmxTZXRGYWRlfGN0cmxTZXRGb2N1c3xjdHJsU2V0Rm9udHxjdHJsU2V0Rm9udEgxfGN0cmxTZXRGb250SDFCfGN0cmxTZXRGb250SDJ8Y3RybFNldEZvbnRIMkJ8Y3RybFNldEZvbnRIM3xjdHJsU2V0Rm9udEgzQnxjdHJsU2V0Rm9udEg0fGN0cmxTZXRGb250SDRCfGN0cmxTZXRGb250SDV8Y3RybFNldEZvbnRINUJ8Y3RybFNldEZvbnRINnxjdHJsU2V0Rm9udEg2QnxjdHJsU2V0Rm9udEhlaWdodHxjdHJsU2V0Rm9udEhlaWdodEgxfGN0cmxTZXRGb250SGVpZ2h0SDJ8Y3RybFNldEZvbnRIZWlnaHRIM3xjdHJsU2V0Rm9udEhlaWdodEg0fGN0cmxTZXRGb250SGVpZ2h0SDV8Y3RybFNldEZvbnRIZWlnaHRINnxjdHJsU2V0Rm9udEhlaWdodFNlY29uZGFyeXxjdHJsU2V0Rm9udFB8Y3RybFNldEZvbnRQQnxjdHJsU2V0Rm9udFNlY29uZGFyeXxjdHJsU2V0Rm9yZWdyb3VuZENvbG9yfGN0cmxTZXRNb2RlbHxjdHJsU2V0TW9kZWxEaXJBbmRVcHxjdHJsU2V0TW9kZWxTY2FsZXxjdHJsU2V0UGl4ZWxQcmVjaXNpb258Y3RybFNldFBvc2l0aW9ufGN0cmxTZXRTY2FsZXxjdHJsU2V0U3RydWN0dXJlZFRleHR8Y3RybFNldFRleHR8Y3RybFNldFRleHRDb2xvcnxjdHJsU2V0VGV4dENvbG9yU2Vjb25kYXJ5fGN0cmxTZXRUZXh0U2Vjb25kYXJ5fGN0cmxTZXRUb29sdGlwfGN0cmxTZXRUb29sdGlwQ29sb3JCb3h8Y3RybFNldFRvb2x0aXBDb2xvclNoYWRlfGN0cmxTZXRUb29sdGlwQ29sb3JUZXh0fGN0cmxTaG93fGN0cmxTaG93bnxjdHJsVGV4dHxjdHJsVGV4dEhlaWdodHxjdHJsVGV4dFNlY29uZGFyeXxjdHJsVGV4dFdpZHRofGN0cmxUeXBlfGN0cmxWaXNpYmxlfGN0Um93Q29udHJvbHN8Y3RSb3dDb3VudHxjdFNldEN1clNlbHxjdFNldERhdGF8Y3RTZXRIZWFkZXJUZW1wbGF0ZXxjdFNldFJvd1RlbXBsYXRlfGN0U2V0VmFsdWV8Y3RWYWx1ZXxjdXJhdG9yQWRkb25zfGN1cmF0b3JDYW1lcmF8Y3VyYXRvckNhbWVyYUFyZWF8Y3VyYXRvckNhbWVyYUFyZWFDZWlsaW5nfGN1cmF0b3JDb2VmfGN1cmF0b3JFZGl0YWJsZU9iamVjdHN8Y3VyYXRvckVkaXRpbmdBcmVhfGN1cmF0b3JFZGl0aW5nQXJlYVR5cGV8Y3VyYXRvck1vdXNlT3ZlcnxjdXJhdG9yUG9pbnRzfGN1cmF0b3JSZWdpc3RlcmVkT2JqZWN0c3xjdXJhdG9yU2VsZWN0ZWR8Y3VyYXRvcldheXBvaW50Q29zdHxjdXJyZW50M0RFTk9wZXJhdGlvbnxjdXJyZW50Q2hhbm5lbHxjdXJyZW50Q29tbWFuZHxjdXJyZW50TWFnYXppbmV8Y3VycmVudE1hZ2F6aW5lRGV0YWlsfGN1cnJlbnRNYWdhemluZURldGFpbFR1cnJldHxjdXJyZW50TWFnYXppbmVUdXJyZXR8Y3VycmVudE11enpsZXxjdXJyZW50TmFtZXNwYWNlfGN1cnJlbnRUYXNrfGN1cnJlbnRUYXNrc3xjdXJyZW50VGhyb3dhYmxlfGN1cnJlbnRWaXNpb25Nb2RlfGN1cnJlbnRXYXlwb2ludHxjdXJyZW50V2VhcG9ufGN1cnJlbnRXZWFwb25Nb2RlfGN1cnJlbnRXZWFwb25UdXJyZXR8Y3VycmVudFplcm9pbmd8Y3Vyc29yT2JqZWN0fGN1cnNvclRhcmdldHxjdXN0b21DaGF0fGN1c3RvbVJhZGlvfGN1dEZhZGVPdXR8Y3V0T2JqfGN1dFJzY3xjdXRUZXh0fGRhbWFnZXxkYXRlfGRhdGVUb051bWJlcnxkYXl0aW1lfGRlQWN0aXZhdGVLZXl8ZGVicmllZmluZ1RleHR8ZGVidWdGU018ZGVidWdMb2d8ZGVnfGRlbGV0ZTNERU5FbnRpdGllc3xkZWxldGVBdHxkZWxldGVDZW50ZXJ8ZGVsZXRlQ29sbGVjdGlvbnxkZWxldGVFZGl0b3JPYmplY3R8ZGVsZXRlR3JvdXB8ZGVsZXRlR3JvdXBXaGVuRW1wdHl8ZGVsZXRlSWRlbnRpdHl8ZGVsZXRlTG9jYXRpb258ZGVsZXRlTWFya2VyfGRlbGV0ZU1hcmtlckxvY2FsfGRlbGV0ZVJhbmdlfGRlbGV0ZVJlc291cmNlc3xkZWxldGVTaXRlfGRlbGV0ZVN0YXR1c3xkZWxldGVUZWFtfGRlbGV0ZVZlaGljbGV8ZGVsZXRlVmVoaWNsZUNyZXd8ZGVsZXRlV2F5cG9pbnR8ZGV0YWNofGRldGVjdGVkTWluZXN8ZGlhZ19hY3RpdmVNaXNzaW9uRlNNc3xkaWFnX2FjdGl2ZVNjcmlwdHN8ZGlhZ19hY3RpdmVTUUZTY3JpcHRzfGRpYWdfYWN0aXZlU1FTU2NyaXB0c3xkaWFnX2NhcHR1cmVGcmFtZXxkaWFnX2NhcHR1cmVGcmFtZVRvRmlsZXxkaWFnX2NhcHR1cmVTbG93RnJhbWV8ZGlhZ19jb2RlUGVyZm9ybWFuY2V8ZGlhZ19kcmF3TW9kZXxkaWFnX2R5bmFtaWNTaW11bGF0aW9uRW5kfGRpYWdfZW5hYmxlfGRpYWdfZW5hYmxlZHxkaWFnX2Zwc3xkaWFnX2Zwc01pbnxkaWFnX2ZyYW1lTm98ZGlhZ19saWdodE5ld0xvYWR8ZGlhZ19saXN0fGRpYWdfbG9nfGRpYWdfbG9nU2xvd0ZyYW1lfGRpYWdfbWVyZ2VDb25maWdGaWxlfGRpYWdfcmVjb3JkVHVycmV0TGltaXRzfGRpYWdfc2V0TGlnaHROZXd8ZGlhZ190aWNrVGltZXxkaWFnX3RvZ2dsZXxkaWFsb2d8ZGlhcnlTdWJqZWN0RXhpc3RzfGRpZEpJUHxkaWRKSVBPd25lcnxkaWZmaWN1bHR5fGRpZmZpY3VsdHlFbmFibGVkfGRpZmZpY3VsdHlFbmFibGVkUlREfGRpZmZpY3VsdHlPcHRpb258ZGlyZWN0aW9ufGRpcmVjdFNheXxkaXNhYmxlQUl8ZGlzYWJsZUNvbGxpc2lvbldpdGh8ZGlzYWJsZUNvbnZlcnNhdGlvbnxkaXNhYmxlRGVicmllZmluZ1N0YXRzfGRpc2FibGVNYXBJbmRpY2F0b3JzfGRpc2FibGVOVkdFcXVpcG1lbnR8ZGlzYWJsZVJlbW90ZVNlbnNvcnN8ZGlzYWJsZVNlcmlhbGl6YXRpb258ZGlzYWJsZVRJRXF1aXBtZW50fGRpc2FibGVVQVZDb25uZWN0YWJpbGl0eXxkaXNhYmxlVXNlcklucHV0fGRpc3BsYXlBZGRFdmVudEhhbmRsZXJ8ZGlzcGxheUN0cmx8ZGlzcGxheU51bGx8ZGlzcGxheVBhcmVudHxkaXNwbGF5UmVtb3ZlQWxsRXZlbnRIYW5kbGVyc3xkaXNwbGF5UmVtb3ZlRXZlbnRIYW5kbGVyfGRpc3BsYXlTZXRFdmVudEhhbmRsZXJ8ZGlzc29sdmVUZWFtfGRpc3RhbmNlfGRpc3RhbmNlMkR8ZGlzdGFuY2VTcXJ8ZGlzdHJpYnV0aW9uUmVnaW9ufGRvM0RFTkFjdGlvbnxkb0FydGlsbGVyeUZpcmV8ZG9GaXJlfGRvRm9sbG93fGRvRlNNfGRvR2V0T3V0fGRvTW92ZXxkb29yUGhhc2V8ZG9TdG9wfGRvU3VwcHJlc3NpdmVGaXJlfGRvVGFyZ2V0fGRvV2F0Y2h8ZHJhd0Fycm93fGRyYXdFbGxpcHNlfGRyYXdJY29ufGRyYXdJY29uM0R8ZHJhd0xpbmV8ZHJhd0xpbmUzRHxkcmF3TGlua3xkcmF3TG9jYXRpb258ZHJhd1BvbHlnb258ZHJhd1JlY3RhbmdsZXxkcmF3VHJpYW5nbGV8ZHJpdmVyfGRyb3B8ZHluYW1pY1NpbXVsYXRpb25EaXN0YW5jZXxkeW5hbWljU2ltdWxhdGlvbkRpc3RhbmNlQ29lZnxkeW5hbWljU2ltdWxhdGlvbkVuYWJsZWR8ZHluYW1pY1NpbXVsYXRpb25TeXN0ZW1FbmFibGVkfGVhc3R8ZWRpdDNERU5NaXNzaW9uQXR0cmlidXRlc3xlZGl0T2JqZWN0fGVkaXRvclNldEV2ZW50SGFuZGxlcnxlZmZlY3RpdmVDb21tYW5kZXJ8ZW1wdHlQb3NpdGlvbnN8ZW5hYmxlQUl8ZW5hYmxlQUlGZWF0dXJlfGVuYWJsZUFpbVByZWNpc2lvbnxlbmFibGVBdHRhY2t8ZW5hYmxlQXVkaW9GZWF0dXJlfGVuYWJsZUF1dG9TdGFydFVwUlREfGVuYWJsZUF1dG9UcmltUlREfGVuYWJsZUNhbVNoYWtlfGVuYWJsZUNhdXN0aWNzfGVuYWJsZUNoYW5uZWx8ZW5hYmxlQ29sbGlzaW9uV2l0aHxlbmFibGVDb3BpbG90fGVuYWJsZURlYnJpZWZpbmdTdGF0c3xlbmFibGVEaWFnTGVnZW5kfGVuYWJsZUR5bmFtaWNTaW11bGF0aW9ufGVuYWJsZUR5bmFtaWNTaW11bGF0aW9uU3lzdGVtfGVuYWJsZUVuZERpYWxvZ3xlbmFibGVFbmdpbmVBcnRpbGxlcnl8ZW5hYmxlRW52aXJvbm1lbnR8ZW5hYmxlRmF0aWd1ZXxlbmFibGVHdW5MaWdodHN8ZW5hYmxlSW5mb1BhbmVsQ29tcG9uZW50fGVuYWJsZUlSTGFzZXJzfGVuYWJsZU1pbWljc3xlbmFibGVQZXJzb25UdXJyZXR8ZW5hYmxlUmFkaW98ZW5hYmxlUmVsb2FkfGVuYWJsZVJvcGVBdHRhY2h8ZW5hYmxlU2F0Tm9ybWFsT25EZXRhaWx8ZW5hYmxlU2F2aW5nfGVuYWJsZVNlbnRlbmNlc3xlbmFibGVTaW11bGF0aW9ufGVuYWJsZVNpbXVsYXRpb25HbG9iYWx8ZW5hYmxlU3RhbWluYXxlbmFibGVTdHJlc3NEYW1hZ2V8ZW5hYmxlVGVhbVN3aXRjaHxlbmFibGVUcmFmZmljfGVuYWJsZVVBVkNvbm5lY3RhYmlsaXR5fGVuYWJsZVVBVldheXBvaW50c3xlbmFibGVWZWhpY2xlQ2FyZ298ZW5hYmxlVmVoaWNsZVNlbnNvcnxlbmFibGVXZWFwb25EaXNhc3NlbWJseXxlbmRsfGVuZExvYWRpbmdTY3JlZW58ZW5kTWlzc2lvbnxlbmdpbmVPbnxlbmdpbmVzSXNPblJURHxlbmdpbmVzUG93ZXJSVER8ZW5naW5lc1JwbVJURHxlbmdpbmVzVG9ycXVlUlREfGVudGl0aWVzfGVudmlyb25tZW50RW5hYmxlZHxlc3RpbWF0ZWRFbmRTZXJ2ZXJUaW1lfGVzdGltYXRlZFRpbWVMZWZ0fGV2YWxPYmplY3RBcmd1bWVudHxldmVyeUJhY2twYWNrfGV2ZXJ5Q29udGFpbmVyfGV4ZWN8ZXhlY0VkaXRvclNjcmlwdHxleHB8ZXhwZWN0ZWREZXN0aW5hdGlvbnxleHBvcnRKSVBNZXNzYWdlc3xleWVEaXJlY3Rpb258ZXllUG9zfGZhY2V8ZmFjdGlvbnxmYWRlTXVzaWN8ZmFkZVJhZGlvfGZhZGVTb3VuZHxmYWRlU3BlZWNofGZhaWxNaXNzaW9ufGZpbGxXZWFwb25zRnJvbVBvb2x8ZmluZHxmaW5kQ292ZXJ8ZmluZERpc3BsYXl8ZmluZEVkaXRvck9iamVjdHxmaW5kRW1wdHlQb3NpdGlvbnxmaW5kRW1wdHlQb3NpdGlvblJlYWR5fGZpbmRJZnxmaW5kTmVhcmVzdEVuZW15fGZpbmlzaE1pc3Npb25Jbml0fGZpbml0ZXxmaXJlfGZpcmVBdFRhcmdldHxmaXJzdEJhY2twYWNrfGZsYWd8ZmxhZ0FuaW1hdGlvblBoYXNlfGZsYWdPd25lcnxmbGFnU2lkZXxmbGFnVGV4dHVyZXxmbGVlaW5nfGZsb29yfGZseUluSGVpZ2h0fGZseUluSGVpZ2h0QVNMfGZvZ3xmb2dGb3JlY2FzdHxmb2dQYXJhbXN8Zm9yY2VBZGRVbmlmb3JtfGZvcmNlQXRQb3NpdGlvblJURHxmb3JjZWRNYXB8Zm9yY2VFbmR8Zm9yY2VGbGFnVGV4dHVyZXxmb3JjZUZvbGxvd1JvYWR8Zm9yY2VHZW5lcmF0b3JSVER8Zm9yY2VNYXB8Zm9yY2VSZXNwYXdufGZvcmNlU3BlZWR8Zm9yY2VXYWxrfGZvcmNlV2VhcG9uRmlyZXxmb3JjZVdlYXRoZXJDaGFuZ2V8Zm9yZ2V0VGFyZ2V0fGZvcm1hdHxmb3JtYXRpb258Zm9ybWF0aW9uRGlyZWN0aW9ufGZvcm1hdGlvbkxlYWRlcnxmb3JtYXRpb25NZW1iZXJzfGZvcm1hdGlvblBvc2l0aW9ufGZvcm1hdGlvblRhc2t8Zm9ybWF0VGV4dHxmb3JtTGVhZGVyfGZyZWVMb29rfGZyb21FZGl0b3J8ZnVlbHxmdWxsQ3Jld3xnZWFySURDQW1tb0NvdW50fGdlYXJTbG90QW1tb0NvdW50fGdlYXJTbG90RGF0YXxnZXQzREVOQWN0aW9uU3RhdGV8Z2V0M0RFTkF0dHJpYnV0ZXxnZXQzREVOQ2FtZXJhfGdldDNERU5Db25uZWN0aW9uc3xnZXQzREVORW50aXR5fGdldDNERU5FbnRpdHlJRHxnZXQzREVOR3JpZHxnZXQzREVOSWNvbnNWaXNpYmxlfGdldDNERU5MYXllckVudGl0aWVzfGdldDNERU5MaW5lc1Zpc2libGV8Z2V0M0RFTk1pc3Npb25BdHRyaWJ1dGV8Z2V0M0RFTk1vdXNlT3ZlcnxnZXQzREVOU2VsZWN0ZWR8Z2V0QWltaW5nQ29lZnxnZXRBbGxFbnZTb3VuZENvbnRyb2xsZXJzfGdldEFsbEhpdFBvaW50c0RhbWFnZXxnZXRBbGxPd25lZE1pbmVzfGdldEFsbFNvdW5kQ29udHJvbGxlcnN8Z2V0QW1tb0NhcmdvfGdldEFuaW1BaW1QcmVjaXNpb258Z2V0QW5pbVNwZWVkQ29lZnxnZXRBcnJheXxnZXRBcnRpbGxlcnlBbW1vfGdldEFydGlsbGVyeUNvbXB1dGVyU2V0dGluZ3N8Z2V0QXJ0aWxsZXJ5RVRBfGdldEFzc2lnbmVkQ3VyYXRvckxvZ2ljfGdldEFzc2lnbmVkQ3VyYXRvclVuaXR8Z2V0QmFja3BhY2tDYXJnb3xnZXRCbGVlZGluZ1JlbWFpbmluZ3xnZXRCdXJuaW5nVmFsdWV8Z2V0Q2FtZXJhVmlld0RpcmVjdGlvbnxnZXRDYXJnb0luZGV4fGdldENlbnRlck9mTWFzc3xnZXRDbGllbnRTdGF0ZXxnZXRDbGllbnRTdGF0ZU51bWJlcnxnZXRDb21wYXRpYmxlUHlsb25NYWdhemluZXN8Z2V0Q29ubmVjdGVkVUFWfGdldENvbnRhaW5lck1heExvYWR8Z2V0Q3Vyc29yT2JqZWN0UGFyYW1zfGdldEN1c3RvbUFpbUNvZWZ8Z2V0RGFtbWFnZXxnZXREZXNjcmlwdGlvbnxnZXREaXJ8Z2V0RGlyVmlzdWFsfGdldERMQ0Fzc2V0c1VzYWdlfGdldERMQ0Fzc2V0c1VzYWdlQnlOYW1lfGdldERMQ3N8Z2V0RExDVXNhZ2VUaW1lfGdldEVkaXRvckNhbWVyYXxnZXRFZGl0b3JNb2RlfGdldEVkaXRvck9iamVjdFNjb3BlfGdldEVsZXZhdGlvbk9mZnNldHxnZXRFbmdpbmVUYXJnZXRScG1SVER8Z2V0RW52U291bmRDb250cm9sbGVyfGdldEZhdGlndWV8Z2V0RmllbGRNYW51YWxTdGFydFBhZ2V8Z2V0Rm9yY2VkRmxhZ1RleHR1cmV8Z2V0RnJpZW5kfGdldEZTTVZhcmlhYmxlfGdldEZ1ZWxDYXJnb3xnZXRHcm91cEljb258Z2V0R3JvdXBJY29uUGFyYW1zfGdldEdyb3VwSWNvbnN8Z2V0SGlkZUZyb218Z2V0SGl0fGdldEhpdEluZGV4fGdldEhpdFBvaW50RGFtYWdlfGdldEl0ZW1DYXJnb3xnZXRNYWdhemluZUNhcmdvfGdldE1hcmtlckNvbG9yfGdldE1hcmtlclBvc3xnZXRNYXJrZXJTaXplfGdldE1hcmtlclR5cGV8Z2V0TWFzc3xnZXRNaXNzaW9uQ29uZmlnfGdldE1pc3Npb25Db25maWdWYWx1ZXxnZXRNaXNzaW9uRExDc3xnZXRNaXNzaW9uTGF5ZXJFbnRpdGllc3xnZXRNaXNzaW9uTGF5ZXJzfGdldE1vZGVsSW5mb3xnZXRNb3VzZVBvc2l0aW9ufGdldE11c2ljUGxheWVkVGltZXxnZXROdW1iZXJ8Z2V0T2JqZWN0QXJndW1lbnR8Z2V0T2JqZWN0Q2hpbGRyZW58Z2V0T2JqZWN0RExDfGdldE9iamVjdE1hdGVyaWFsc3xnZXRPYmplY3RQcm94eXxnZXRPYmplY3RUZXh0dXJlc3xnZXRPYmplY3RUeXBlfGdldE9iamVjdFZpZXdEaXN0YW5jZXxnZXRPeHlnZW5SZW1haW5pbmd8Z2V0UGVyc29uVXNlZERMQ3N8Z2V0UGlsb3RDYW1lcmFEaXJlY3Rpb258Z2V0UGlsb3RDYW1lcmFQb3NpdGlvbnxnZXRQaWxvdENhbWVyYVJvdGF0aW9ufGdldFBpbG90Q2FtZXJhVGFyZ2V0fGdldFBsYXRlTnVtYmVyfGdldFBsYXllckNoYW5uZWx8Z2V0UGxheWVyU2NvcmVzfGdldFBsYXllclVJRHxnZXRQbGF5ZXJVSURPbGR8Z2V0UG9zfGdldFBvc0FTTHxnZXRQb3NBU0xWaXN1YWx8Z2V0UG9zQVNMV3xnZXRQb3NBVEx8Z2V0UG9zQVRMVmlzdWFsfGdldFBvc1Zpc3VhbHxnZXRQb3NXb3JsZHxnZXRQeWxvbk1hZ2F6aW5lc3xnZXRSZWxEaXJ8Z2V0UmVsUG9zfGdldFJlbW90ZVNlbnNvcnNEaXNhYmxlZHxnZXRSZXBhaXJDYXJnb3xnZXRSZXNvbHV0aW9ufGdldFJvdG9yQnJha2VSVER8Z2V0U2hhZG93RGlzdGFuY2V8Z2V0U2hvdFBhcmVudHN8Z2V0U2xpbmdMb2FkfGdldFNvdW5kQ29udHJvbGxlcnxnZXRTb3VuZENvbnRyb2xsZXJSZXN1bHR8Z2V0U3BlZWR8Z2V0U3RhbWluYXxnZXRTdGF0VmFsdWV8Z2V0U3VwcHJlc3Npb258Z2V0VGVycmFpbkdyaWR8Z2V0VGVycmFpbkhlaWdodEFTTHxnZXRUZXh0fGdldFRvdGFsRExDVXNhZ2VUaW1lfGdldFRyaW1PZmZzZXRSVER8Z2V0VW5pdExvYWRvdXR8Z2V0VW5pdFRyYWl0fGdldFVzZXJNRkRUZXh0fGdldFVzZXJNRkRWYWx1ZXxnZXRWYXJpYWJsZXxnZXRWZWhpY2xlQ2FyZ298Z2V0V2VhcG9uQ2FyZ298Z2V0V2VhcG9uU3dheXxnZXRXaW5nc09yaWVudGF0aW9uUlREfGdldFdpbmdzUG9zaXRpb25SVER8Z2V0V1BQb3N8Z2xhbmNlQXR8Z2xvYmFsQ2hhdHxnbG9iYWxSYWRpb3xnb2dnbGVzfGdyb3VwfGdyb3VwQ2hhdHxncm91cEZyb21OZXRJZHxncm91cEljb25TZWxlY3RhYmxlfGdyb3VwSWNvbnNWaXNpYmxlfGdyb3VwSWR8Z3JvdXBPd25lcnxncm91cFJhZGlvfGdyb3VwU2VsZWN0ZWRVbml0c3xncm91cFNlbGVjdFVuaXR8Z3JwTnVsbHxndW5uZXJ8Z3VzdHN8aGFsdHxoYW5kZ3VuSXRlbXN8aGFuZGd1bk1hZ2F6aW5lfGhhbmRndW5XZWFwb258aGFuZHNIaXR8aGFzSW50ZXJmYWNlfGhhc1BpbG90Q2FtZXJhfGhhc1dlYXBvbnxoY0FsbEdyb3Vwc3xoY0dyb3VwUGFyYW1zfGhjTGVhZGVyfGhjUmVtb3ZlQWxsR3JvdXBzfGhjUmVtb3ZlR3JvdXB8aGNTZWxlY3RlZHxoY1NlbGVjdEdyb3VwfGhjU2V0R3JvdXB8aGNTaG93QmFyfGhjU2hvd25CYXJ8aGVhZGdlYXJ8aGlkZUJvZHl8aGlkZU9iamVjdHxoaWRlT2JqZWN0R2xvYmFsfGhpZGVTZWxlY3Rpb258aGludHxoaW50Q3xoaW50Q2FkZXR8aGludFNpbGVudHxobWR8aG9zdE1pc3Npb258aHRtbExvYWR8SFVETW92ZW1lbnRMZXZlbHN8aHVtaWRpdHl8aW1hZ2V8aW1wb3J0QWxsR3JvdXBzfGltcG9ydGFuY2V8aW58aW5BcmVhfGluQXJlYUFycmF5fGluY2FwYWNpdGF0ZWRTdGF0ZXxpbmRlcGVuZGVudHxpbmZsYW1lfGluZmxhbWVkfGluZm9QYW5lbHxpbmZvUGFuZWxDb21wb25lbnRFbmFibGVkfGluZm9QYW5lbENvbXBvbmVudHN8aW5mb1BhbmVsc3xpbkdhbWVVSVNldEV2ZW50SGFuZGxlcnxpbmhlcml0c0Zyb218aW5pdEFtYmllbnRMaWZlfGluUG9seWdvbnxpbnB1dEFjdGlvbnxpblJhbmdlT2ZBcnRpbGxlcnl8aW5zZXJ0RWRpdG9yT2JqZWN0fGludGVyc2VjdHxpczNERU58aXMzREVOTXVsdGlwbGF5ZXJ8aXNBYmxlVG9CcmVhdGhlfGlzQWdlbnR8aXNBaW1QcmVjaXNpb25FbmFibGVkfGlzQXJyYXl8aXNBdXRvSG92ZXJPbnxpc0F1dG9ub21vdXN8aXNBdXRvU3RhcnRVcEVuYWJsZWRSVER8aXNBdXRvdGVzdHxpc0F1dG9UcmltT25SVER8aXNCbGVlZGluZ3xpc0J1cm5pbmd8aXNDbGFzc3xpc0NvbGxpc2lvbkxpZ2h0T258aXNDb3BpbG90RW5hYmxlZHxpc0RhbWFnZUFsbG93ZWR8aXNEZWRpY2F0ZWR8aXNETENBdmFpbGFibGV8aXNFbmdpbmVPbnxpc0VxdWFsVG98aXNFcXVhbFR5cGV8aXNFcXVhbFR5cGVBbGx8aXNFcXVhbFR5cGVBbnl8aXNFcXVhbFR5cGVBcnJheXxpc0VxdWFsVHlwZVBhcmFtc3xpc0ZpbGVQYXRjaGluZ0VuYWJsZWR8aXNGbGFzaGxpZ2h0T258aXNGbGF0RW1wdHl8aXNGb3JjZWRXYWxrfGlzRm9ybWF0aW9uTGVhZGVyfGlzR3JvdXBEZWxldGVkV2hlbkVtcHR5fGlzSGlkZGVufGlzSW5SZW1haW5zQ29sbGVjdG9yfGlzSW5zdHJ1Y3RvckZpZ3VyZUVuYWJsZWR8aXNJUkxhc2VyT258aXNLZXlBY3RpdmV8aXNLaW5kT2Z8aXNMYXNlck9ufGlzTGlnaHRPbnxpc0xvY2FsaXplZHxpc01hbnVhbEZpcmV8aXNNYXJrZWRGb3JDb2xsZWN0aW9ufGlzTXVsdGlwbGF5ZXJ8aXNNdWx0aXBsYXllclNvbG98aXNOaWx8aXNOdWxsfGlzTnVtYmVyfGlzT2JqZWN0SGlkZGVufGlzT2JqZWN0UlREfGlzT25Sb2FkfGlzUGlwRW5hYmxlZHxpc1BsYXllcnxpc1JlYWxUaW1lfGlzUmVtb3RlRXhlY3V0ZWR8aXNSZW1vdGVFeGVjdXRlZEpJUHxpc1NlcnZlcnxpc1Nob3dpbmczREljb25zfGlzU2ltcGxlT2JqZWN0fGlzU3ByaW50QWxsb3dlZHxpc1N0YW1pbmFFbmFibGVkfGlzU3RlYW1NaXNzaW9ufGlzU3RyZWFtRnJpZW5kbHlVSUVuYWJsZWR8aXNTdHJlc3NEYW1hZ2VFbmFibGVkfGlzVGV4dHxpc1RvdWNoaW5nR3JvdW5kfGlzVHVybmVkT3V0fGlzVHV0SGludHNFbmFibGVkfGlzVUFWQ29ubmVjdGFibGV8aXNVQVZDb25uZWN0ZWR8aXNVSUNvbnRleHR8aXNVbmlmb3JtQWxsb3dlZHxpc1ZlaGljbGVDYXJnb3xpc1ZlaGljbGVSYWRhck9ufGlzVmVoaWNsZVNlbnNvckVuYWJsZWR8aXNXYWxraW5nfGlzV2VhcG9uRGVwbG95ZWR8aXNXZWFwb25SZXN0ZWR8aXRlbUNhcmdvfGl0ZW1zfGl0ZW1zV2l0aE1hZ2F6aW5lc3xqb2lufGpvaW5Bc3xqb2luQXNTaWxlbnR8am9pblNpbGVudHxqb2luU3RyaW5nfGtiQWRkRGF0YWJhc2V8a2JBZGREYXRhYmFzZVRhcmdldHN8a2JBZGRUb3BpY3xrYkhhc1RvcGljfGtiUmVhY3R8a2JSZW1vdmVUb3BpY3xrYlRlbGx8a2JXYXNTYWlkfGtleUltYWdlfGtleU5hbWV8a25vd3NBYm91dHxsYW5kfGxhbmRBdHxsYW5kUmVzdWx0fGxhbmd1YWdlfGxhc2VyVGFyZ2V0fGxiQWRkfGxiQ2xlYXJ8bGJDb2xvcnxsYkNvbG9yUmlnaHR8bGJDdXJTZWx8bGJEYXRhfGxiRGVsZXRlfGxiSXNTZWxlY3RlZHxsYlBpY3R1cmV8bGJQaWN0dXJlUmlnaHR8bGJTZWxlY3Rpb258bGJTZXRDb2xvcnxsYlNldENvbG9yUmlnaHR8bGJTZXRDdXJTZWx8bGJTZXREYXRhfGxiU2V0UGljdHVyZXxsYlNldFBpY3R1cmVDb2xvcnxsYlNldFBpY3R1cmVDb2xvckRpc2FibGVkfGxiU2V0UGljdHVyZUNvbG9yU2VsZWN0ZWR8bGJTZXRQaWN0dXJlUmlnaHR8bGJTZXRQaWN0dXJlUmlnaHRDb2xvcnxsYlNldFBpY3R1cmVSaWdodENvbG9yRGlzYWJsZWR8bGJTZXRQaWN0dXJlUmlnaHRDb2xvclNlbGVjdGVkfGxiU2V0U2VsZWN0Q29sb3J8bGJTZXRTZWxlY3RDb2xvclJpZ2h0fGxiU2V0U2VsZWN0ZWR8bGJTZXRUZXh0fGxiU2V0VGV4dFJpZ2h0fGxiU2V0VG9vbHRpcHxsYlNldFZhbHVlfGxiU2l6ZXxsYlNvcnR8bGJTb3J0QnlWYWx1ZXxsYlRleHR8bGJUZXh0UmlnaHR8bGJWYWx1ZXxsZWFkZXJ8bGVhZGVyYm9hcmREZUluaXR8bGVhZGVyYm9hcmRHZXRSb3dzfGxlYWRlcmJvYXJkSW5pdHxsZWFkZXJib2FyZFJlcXVlc3RSb3dzRnJpZW5kc3xsZWFkZXJib2FyZFJlcXVlc3RSb3dzR2xvYmFsfGxlYWRlcmJvYXJkUmVxdWVzdFJvd3NHbG9iYWxBcm91bmRVc2VyfGxlYWRlcmJvYXJkc1JlcXVlc3RVcGxvYWRTY29yZXxsZWFkZXJib2FyZHNSZXF1ZXN0VXBsb2FkU2NvcmVLZWVwQmVzdHxsZWFkZXJib2FyZFN0YXRlfGxlYXZlVmVoaWNsZXxsaWJyYXJ5Q3JlZGl0c3xsaWJyYXJ5RGlzY2xhaW1lcnN8bGlmZVN0YXRlfGxpZ2h0QXR0YWNoT2JqZWN0fGxpZ2h0RGV0YWNoT2JqZWN0fGxpZ2h0SXNPbnxsaWdodG5pbmdzfGxpbWl0U3BlZWR8bGluZWFyQ29udmVyc2lvbnxsaW5lQnJlYWt8bGluZUludGVyc2VjdHN8bGluZUludGVyc2VjdHNPYmpzfGxpbmVJbnRlcnNlY3RzU3VyZmFjZXN8bGluZUludGVyc2VjdHNXaXRofGxpbmtJdGVtfGxpc3R8bGlzdE9iamVjdHN8bGlzdFJlbW90ZVRhcmdldHN8bGlzdFZlaGljbGVTZW5zb3JzfGxufGxuYkFkZEFycmF5fGxuYkFkZENvbHVtbnxsbmJBZGRSb3d8bG5iQ2xlYXJ8bG5iQ29sb3J8bG5iQ29sb3JSaWdodHxsbmJDdXJTZWxSb3d8bG5iRGF0YXxsbmJEZWxldGVDb2x1bW58bG5iRGVsZXRlUm93fGxuYkdldENvbHVtbnNQb3NpdGlvbnxsbmJQaWN0dXJlfGxuYlBpY3R1cmVSaWdodHxsbmJTZXRDb2xvcnxsbmJTZXRDb2xvclJpZ2h0fGxuYlNldENvbHVtbnNQb3N8bG5iU2V0Q3VyU2VsUm93fGxuYlNldERhdGF8bG5iU2V0UGljdHVyZXxsbmJTZXRQaWN0dXJlQ29sb3J8bG5iU2V0UGljdHVyZUNvbG9yUmlnaHR8bG5iU2V0UGljdHVyZUNvbG9yU2VsZWN0ZWR8bG5iU2V0UGljdHVyZUNvbG9yU2VsZWN0ZWRSaWdodHxsbmJTZXRQaWN0dXJlUmlnaHR8bG5iU2V0VGV4dHxsbmJTZXRUZXh0UmlnaHR8bG5iU2V0VmFsdWV8bG5iU2l6ZXxsbmJTb3J0fGxuYlNvcnRCeVZhbHVlfGxuYlRleHR8bG5iVGV4dFJpZ2h0fGxuYlZhbHVlfGxvYWR8bG9hZEFic3xsb2FkQmFja3BhY2t8bG9hZEZpbGV8bG9hZEdhbWV8bG9hZElkZW50aXR5fGxvYWRNYWdhemluZXxsb2FkT3ZlcmxheXxsb2FkU3RhdHVzfGxvYWRVbmlmb3JtfGxvYWRWZXN0fGxvY2FsfGxvY2FsaXplfGxvY2F0aW9uTnVsbHxsb2NhdGlvblBvc2l0aW9ufGxvY2t8bG9ja0NhbWVyYVRvfGxvY2tDYXJnb3xsb2NrRHJpdmVyfGxvY2tlZHxsb2NrZWRDYXJnb3xsb2NrZWREcml2ZXJ8bG9ja2VkVHVycmV0fGxvY2tJZGVudGl0eXxsb2NrVHVycmV0fGxvY2tXUHxsb2d8bG9nRW50aXRpZXN8bG9nTmV0d29ya3xsb2dOZXR3b3JrVGVybWluYXRlfGxvb2tBdHxsb29rQXRQb3N8bWFnYXppbmVDYXJnb3xtYWdhemluZXN8bWFnYXppbmVzQWxsVHVycmV0c3xtYWdhemluZXNBbW1vfG1hZ2F6aW5lc0FtbW9DYXJnb3xtYWdhemluZXNBbW1vRnVsbHxtYWdhemluZXNEZXRhaWx8bWFnYXppbmVzRGV0YWlsQmFja3BhY2t8bWFnYXppbmVzRGV0YWlsVW5pZm9ybXxtYWdhemluZXNEZXRhaWxWZXN0fG1hZ2F6aW5lc1R1cnJldHxtYWdhemluZVR1cnJldEFtbW98bWFwQW5pbUFkZHxtYXBBbmltQ2xlYXJ8bWFwQW5pbUNvbW1pdHxtYXBBbmltRG9uZXxtYXBDZW50ZXJPbkNhbWVyYXxtYXBHcmlkUG9zaXRpb258bWFya0FzRmluaXNoZWRPblN0ZWFtfG1hcmtlckFscGhhfG1hcmtlckJydXNofG1hcmtlckNvbG9yfG1hcmtlckRpcnxtYXJrZXJQb3N8bWFya2VyU2hhcGV8bWFya2VyU2l6ZXxtYXJrZXJUZXh0fG1hcmtlclR5cGV8bWF4fG1lbWJlcnN8bWVudUFjdGlvbnxtZW51QWRkfG1lbnVDaGVja2VkfG1lbnVDbGVhcnxtZW51Q29sbGFwc2V8bWVudURhdGF8bWVudURlbGV0ZXxtZW51RW5hYmxlfG1lbnVFbmFibGVkfG1lbnVFeHBhbmR8bWVudUhvdmVyfG1lbnVQaWN0dXJlfG1lbnVTZXRBY3Rpb258bWVudVNldENoZWNrfG1lbnVTZXREYXRhfG1lbnVTZXRQaWN0dXJlfG1lbnVTZXRWYWx1ZXxtZW51U2hvcnRjdXR8bWVudVNob3J0Y3V0VGV4dHxtZW51U2l6ZXxtZW51U29ydHxtZW51VGV4dHxtZW51VVJMfG1lbnVWYWx1ZXxtaW58bWluZUFjdGl2ZXxtaW5lRGV0ZWN0ZWRCeXxtaXNzaW9uQ29uZmlnRmlsZXxtaXNzaW9uRGlmZmljdWx0eXxtaXNzaW9uTmFtZXxtaXNzaW9uTmFtZXNwYWNlfG1pc3Npb25TdGFydHxtaXNzaW9uVmVyc2lvbnxtb2RlbFRvV29ybGR8bW9kZWxUb1dvcmxkVmlzdWFsfG1vZGVsVG9Xb3JsZFZpc3VhbFdvcmxkfG1vZGVsVG9Xb3JsZFdvcmxkfG1vZFBhcmFtc3xtb29uSW50ZW5zaXR5fG1vb25QaGFzZXxtb3JhbGV8bW92ZXxtb3ZlM0RFTkNhbWVyYXxtb3ZlSW5Bbnl8bW92ZUluQ2FyZ298bW92ZUluQ29tbWFuZGVyfG1vdmVJbkRyaXZlcnxtb3ZlSW5HdW5uZXJ8bW92ZUluVHVycmV0fG1vdmVPYmplY3RUb0VuZHxtb3ZlT3V0fG1vdmVUaW1lfG1vdmVUb3xtb3ZlVG9Db21wbGV0ZWR8bW92ZVRvRmFpbGVkfG11c2ljVm9sdW1lfG5hbWV8bmFtZVNvdW5kfG5lYXJFbnRpdGllc3xuZWFyZXN0QnVpbGRpbmd8bmVhcmVzdExvY2F0aW9ufG5lYXJlc3RMb2NhdGlvbnN8bmVhcmVzdExvY2F0aW9uV2l0aER1YmJpbmd8bmVhcmVzdE9iamVjdHxuZWFyZXN0T2JqZWN0c3xuZWFyZXN0VGVycmFpbk9iamVjdHN8bmVhck9iamVjdHN8bmVhck9iamVjdHNSZWFkeXxuZWFyUm9hZHN8bmVhclN1cHBsaWVzfG5lYXJUYXJnZXRzfG5lZWRSZWxvYWR8bmV0SWR8bmV0T2JqTnVsbHxuZXdPdmVybGF5fG5leHRNZW51SXRlbUluZGV4fG5leHRXZWF0aGVyQ2hhbmdlfG5NZW51SXRlbXN8bnVtYmVyT2ZFbmdpbmVzUlREfG51bWJlclRvRGF0ZXxvYmplY3RDdXJhdG9yc3xvYmplY3RGcm9tTmV0SWR8b2JqZWN0UGFyZW50fG9iak51bGx8b2JqU3RhdHVzfG9uQnJpZWZpbmdHZWFyfG9uQnJpZWZpbmdHcm91cHxvbkJyaWVmaW5nTm90ZXN8b25CcmllZmluZ1BsYW58b25CcmllZmluZ1RlYW1Td2l0Y2h8b25Db21tYW5kTW9kZUNoYW5nZWR8b25Eb3VibGVDbGlja3xvbkVhY2hGcmFtZXxvbkdyb3VwSWNvbkNsaWNrfG9uR3JvdXBJY29uT3ZlckVudGVyfG9uR3JvdXBJY29uT3ZlckxlYXZlfG9uSENHcm91cFNlbGVjdGlvbkNoYW5nZWR8b25NYXBTaW5nbGVDbGlja3xvblBsYXllckNvbm5lY3RlZHxvblBsYXllckRpc2Nvbm5lY3RlZHxvblByZWxvYWRGaW5pc2hlZHxvblByZWxvYWRTdGFydGVkfG9uU2hvd05ld09iamVjdHxvblRlYW1Td2l0Y2h8b3BlbkN1cmF0b3JJbnRlcmZhY2V8b3BlbkRMQ1BhZ2V8b3BlbkRTSW50ZXJmYWNlfG9wZW5NYXB8b3BlblN0ZWFtQXBwfG9wZW5Zb3V0dWJlVmlkZW98b3Bmb3J8b3JkZXJHZXRJbnxvdmVyY2FzdHxvdmVyY2FzdEZvcmVjYXN0fG93bmVyfHBhcmFtfHBhcmFtc3xwYXJzZU51bWJlcnxwYXJzZVNpbXBsZUFycmF5fHBhcnNlVGV4dHxwYXJzaW5nTmFtZXNwYWNlfHBhcnRpY2xlc1F1YWxpdHl8cGl8cGlja1dlYXBvblBvb2x8cGl0Y2h8cGl4ZWxHcmlkfHBpeGVsR3JpZEJhc2V8cGl4ZWxHcmlkTm9VSVNjYWxlfHBpeGVsSHxwaXhlbFd8cGxheWFibGVTbG90c051bWJlcnxwbGF5YWJsZVVuaXRzfHBsYXlBY3Rpb258cGxheUFjdGlvbk5vd3xwbGF5ZXJ8cGxheWVyUmVzcGF3blRpbWV8cGxheWVyU2lkZXxwbGF5ZXJzTnVtYmVyfHBsYXlHZXN0dXJlfHBsYXlNaXNzaW9ufHBsYXlNb3ZlfHBsYXlNb3ZlTm93fHBsYXlNdXNpY3xwbGF5U2NyaXB0ZWRNaXNzaW9ufHBsYXlTb3VuZHxwbGF5U291bmQzRHxwb3NpdGlvbnxwb3NpdGlvbkNhbWVyYVRvV29ybGR8cG9zU2NyZWVuVG9Xb3JsZHxwb3NXb3JsZFRvU2NyZWVufHBwRWZmZWN0QWRqdXN0fHBwRWZmZWN0Q29tbWl0fHBwRWZmZWN0Q29tbWl0dGVkfHBwRWZmZWN0Q3JlYXRlfHBwRWZmZWN0RGVzdHJveXxwcEVmZmVjdEVuYWJsZXxwcEVmZmVjdEVuYWJsZWR8cHBFZmZlY3RGb3JjZUluTlZHfHByZWNpc2lvbnxwcmVsb2FkQ2FtZXJhfHByZWxvYWRPYmplY3R8cHJlbG9hZFNvdW5kfHByZWxvYWRUaXRsZU9ianxwcmVsb2FkVGl0bGVSc2N8cHJpbWFyeVdlYXBvbnxwcmltYXJ5V2VhcG9uSXRlbXN8cHJpbWFyeVdlYXBvbk1hZ2F6aW5lfHByaW9yaXR5fHByb2Nlc3NEaWFyeUxpbmt8cHJvY2Vzc0luaXRDb21tYW5kc3xwcm9kdWN0VmVyc2lvbnxwcm9maWxlTmFtZXxwcm9maWxlTmFtZXNwYWNlfHByb2ZpbGVOYW1lU3RlYW18cHJvZ3Jlc3NMb2FkaW5nU2NyZWVufHByb2dyZXNzUG9zaXRpb258cHJvZ3Jlc3NTZXRQb3NpdGlvbnxwdWJsaWNWYXJpYWJsZXxwdWJsaWNWYXJpYWJsZUNsaWVudHxwdWJsaWNWYXJpYWJsZVNlcnZlcnxwdXNoQmFja3xwdXNoQmFja1VuaXF1ZXxwdXRXZWFwb25Qb29sfHF1ZXJ5SXRlbXNQb29sfHF1ZXJ5TWFnYXppbmVQb29sfHF1ZXJ5V2VhcG9uUG9vbHxyYWR8cmFkaW9DaGFubmVsQWRkfHJhZGlvQ2hhbm5lbENyZWF0ZXxyYWRpb0NoYW5uZWxSZW1vdmV8cmFkaW9DaGFubmVsU2V0Q2FsbFNpZ258cmFkaW9DaGFubmVsU2V0TGFiZWx8cmFkaW9Wb2x1bWV8cmFpbnxyYWluYm93fHJhbmRvbXxyYW5rfHJhbmtJZHxyYXRpbmd8cmVjdGFuZ3VsYXJ8cmVnaXN0ZXJlZFRhc2tzfHJlZ2lzdGVyVGFza3xyZWxvYWR8cmVsb2FkRW5hYmxlZHxyZW1vdGVDb250cm9sfHJlbW90ZUV4ZWN8cmVtb3RlRXhlY0NhbGx8cmVtb3RlRXhlY3V0ZWRPd25lcnxyZW1vdmUzREVOQ29ubmVjdGlvbnxyZW1vdmUzREVORXZlbnRIYW5kbGVyfHJlbW92ZTNERU5MYXllcnxyZW1vdmVBY3Rpb258cmVtb3ZlQWxsM0RFTkV2ZW50SGFuZGxlcnN8cmVtb3ZlQWxsQWN0aW9uc3xyZW1vdmVBbGxBc3NpZ25lZEl0ZW1zfHJlbW92ZUFsbENvbnRhaW5lcnN8cmVtb3ZlQWxsQ3VyYXRvckFkZG9uc3xyZW1vdmVBbGxDdXJhdG9yQ2FtZXJhQXJlYXN8cmVtb3ZlQWxsQ3VyYXRvckVkaXRpbmdBcmVhc3xyZW1vdmVBbGxFdmVudEhhbmRsZXJzfHJlbW92ZUFsbEhhbmRndW5JdGVtc3xyZW1vdmVBbGxJdGVtc3xyZW1vdmVBbGxJdGVtc1dpdGhNYWdhemluZXN8cmVtb3ZlQWxsTWlzc2lvbkV2ZW50SGFuZGxlcnN8cmVtb3ZlQWxsTVBFdmVudEhhbmRsZXJzfHJlbW92ZUFsbE11c2ljRXZlbnRIYW5kbGVyc3xyZW1vdmVBbGxPd25lZE1pbmVzfHJlbW92ZUFsbFByaW1hcnlXZWFwb25JdGVtc3xyZW1vdmVBbGxXZWFwb25zfHJlbW92ZUJhY2twYWNrfHJlbW92ZUJhY2twYWNrR2xvYmFsfHJlbW92ZUN1cmF0b3JBZGRvbnN8cmVtb3ZlQ3VyYXRvckNhbWVyYUFyZWF8cmVtb3ZlQ3VyYXRvckVkaXRhYmxlT2JqZWN0c3xyZW1vdmVDdXJhdG9yRWRpdGluZ0FyZWF8cmVtb3ZlRHJhd0ljb258cmVtb3ZlRHJhd0xpbmtzfHJlbW92ZUV2ZW50SGFuZGxlcnxyZW1vdmVGcm9tUmVtYWluc0NvbGxlY3RvcnxyZW1vdmVHb2dnbGVzfHJlbW92ZUdyb3VwSWNvbnxyZW1vdmVIYW5kZ3VuSXRlbXxyZW1vdmVIZWFkZ2VhcnxyZW1vdmVJdGVtfHJlbW92ZUl0ZW1Gcm9tQmFja3BhY2t8cmVtb3ZlSXRlbUZyb21Vbmlmb3JtfHJlbW92ZUl0ZW1Gcm9tVmVzdHxyZW1vdmVJdGVtc3xyZW1vdmVNYWdhemluZXxyZW1vdmVNYWdhemluZUdsb2JhbHxyZW1vdmVNYWdhemluZXN8cmVtb3ZlTWFnYXppbmVzVHVycmV0fHJlbW92ZU1hZ2F6aW5lVHVycmV0fHJlbW92ZU1lbnVJdGVtfHJlbW92ZU1pc3Npb25FdmVudEhhbmRsZXJ8cmVtb3ZlTVBFdmVudEhhbmRsZXJ8cmVtb3ZlTXVzaWNFdmVudEhhbmRsZXJ8cmVtb3ZlT3duZWRNaW5lfHJlbW92ZVByaW1hcnlXZWFwb25JdGVtfHJlbW92ZVNlY29uZGFyeVdlYXBvbkl0ZW18cmVtb3ZlU2ltcGxlVGFza3xyZW1vdmVTd2l0Y2hhYmxlVW5pdHxyZW1vdmVUZWFtTWVtYmVyfHJlbW92ZVVuaWZvcm18cmVtb3ZlVmVzdHxyZW1vdmVXZWFwb258cmVtb3ZlV2VhcG9uQXR0YWNobWVudENhcmdvfHJlbW92ZVdlYXBvbkNhcmdvfHJlbW92ZVdlYXBvbkdsb2JhbHxyZW1vdmVXZWFwb25UdXJyZXR8cmVwb3J0UmVtb3RlVGFyZ2V0fHJlcXVpcmVkVmVyc2lvbnxyZXNldENhbVNoYWtlfHJlc2V0U3ViZ3JvdXBEaXJlY3Rpb258cmVzaXN0YW5jZXxyZXNpemV8cmVzb3VyY2VzfHJlc3Bhd25WZWhpY2xlfHJlc3RhcnRFZGl0b3JDYW1lcmF8cmV2ZWFsfHJldmVhbE1pbmV8cmV2ZXJzZXxyZXZlcnNlZE1vdXNlWXxyb2FkQXR8cm9hZHNDb25uZWN0ZWRUb3xyb2xlRGVzY3JpcHRpb258cm9wZUF0dGFjaGVkT2JqZWN0c3xyb3BlQXR0YWNoZWRUb3xyb3BlQXR0YWNoRW5hYmxlZHxyb3BlQXR0YWNoVG98cm9wZUNyZWF0ZXxyb3BlQ3V0fHJvcGVEZXN0cm95fHJvcGVEZXRhY2h8cm9wZUVuZFBvc2l0aW9ufHJvcGVMZW5ndGh8cm9wZXN8cm9wZVVud2luZHxyb3BlVW53b3VuZHxyb3RvcnNGb3JjZXNSVER8cm90b3JzUnBtUlREfHJvdW5kfHJ1bkluaXRTY3JpcHR8c2FmZVpvbmVIfHNhZmVab25lV3xzYWZlWm9uZVdBYnN8c2FmZVpvbmVYfHNhZmVab25lWEFic3xzYWZlWm9uZVl8c2F2ZTNERU5JbnZlbnRvcnl8c2F2ZUdhbWV8c2F2ZUlkZW50aXR5fHNhdmVKb3lzdGlja3N8c2F2ZU92ZXJsYXl8c2F2ZVByb2ZpbGVOYW1lc3BhY2V8c2F2ZVN0YXR1c3xzYXZlVmFyfHNhdmluZ0VuYWJsZWR8c2F5fHNheTJEfHNheTNEfHNjb3JlfHNjb3JlU2lkZXxzY3JlZW5zaG90fHNjcmVlblRvV29ybGR8c2NyaXB0RG9uZXxzY3JpcHROYW1lfHNjcmlwdE51bGx8c2N1ZFN0YXRlfHNlY29uZGFyeVdlYXBvbnxzZWNvbmRhcnlXZWFwb25JdGVtc3xzZWNvbmRhcnlXZWFwb25NYWdhemluZXxzZWxlY3R8c2VsZWN0QmVzdFBsYWNlc3xzZWxlY3REaWFyeVN1YmplY3R8c2VsZWN0ZWRFZGl0b3JPYmplY3RzfHNlbGVjdEVkaXRvck9iamVjdHxzZWxlY3Rpb25OYW1lc3xzZWxlY3Rpb25Qb3NpdGlvbnxzZWxlY3RMZWFkZXJ8c2VsZWN0TWF4fHNlbGVjdE1pbnxzZWxlY3ROb1BsYXllcnxzZWxlY3RQbGF5ZXJ8c2VsZWN0UmFuZG9tfHNlbGVjdFJhbmRvbVdlaWdodGVkfHNlbGVjdFdlYXBvbnxzZWxlY3RXZWFwb25UdXJyZXR8c2VuZEFVTWVzc2FnZXxzZW5kU2ltcGxlQ29tbWFuZHxzZW5kVGFza3xzZW5kVGFza1Jlc3VsdHxzZW5kVURQTWVzc2FnZXxzZXJ2ZXJDb21tYW5kfHNlcnZlckNvbW1hbmRBdmFpbGFibGV8c2VydmVyQ29tbWFuZEV4ZWN1dGFibGV8c2VydmVyTmFtZXxzZXJ2ZXJUaW1lfHNldHxzZXQzREVOQXR0cmlidXRlfHNldDNERU5BdHRyaWJ1dGVzfHNldDNERU5HcmlkfHNldDNERU5JY29uc1Zpc2libGV8c2V0M0RFTkxheWVyfHNldDNERU5MaW5lc1Zpc2libGV8c2V0M0RFTkxvZ2ljVHlwZXxzZXQzREVOTWlzc2lvbkF0dHJpYnV0ZXxzZXQzREVOTWlzc2lvbkF0dHJpYnV0ZXN8c2V0M0RFTk1vZGVsc1Zpc2libGV8c2V0M0RFTk9iamVjdFR5cGV8c2V0M0RFTlNlbGVjdGVkfHNldEFjY1RpbWV8c2V0QWN0dWFsQ29sbGVjdGl2ZVJURHxzZXRBaXJwbGFuZVRocm90dGxlfHNldEFpcnBvcnRTaWRlfHNldEFtbW98c2V0QW1tb0NhcmdvfHNldEFtbW9PblB5bG9ufHNldEFuaW1TcGVlZENvZWZ8c2V0QXBlcnR1cmV8c2V0QXBlcnR1cmVOZXd8c2V0QXJtb3J5UG9pbnRzfHNldEF0dHJpYnV0ZXN8c2V0QXV0b25vbW91c3xzZXRCZWhhdmlvdXJ8c2V0QmxlZWRpbmdSZW1haW5pbmd8c2V0QnJha2VzUlREfHNldENhbWVyYUludGVyZXN0fHNldENhbVNoYWtlRGVmUGFyYW1zfHNldENhbVNoYWtlUGFyYW1zfHNldENhbVVzZVRJfHNldENhcHRpdmV8c2V0Q2VudGVyT2ZNYXNzfHNldENvbGxpc2lvbkxpZ2h0fHNldENvbWJhdE1vZGV8c2V0Q29tcGFzc09zY2lsbGF0aW9ufHNldENvbnZveVNlcGFyYXRpb258c2V0Q3VyYXRvckNhbWVyYUFyZWFDZWlsaW5nfHNldEN1cmF0b3JDb2VmfHNldEN1cmF0b3JFZGl0aW5nQXJlYVR5cGV8c2V0Q3VyYXRvcldheXBvaW50Q29zdHxzZXRDdXJyZW50Q2hhbm5lbHxzZXRDdXJyZW50VGFza3xzZXRDdXJyZW50V2F5cG9pbnR8c2V0Q3VzdG9tQWltQ29lZnxzZXRDdXN0b21XZWlnaHRSVER8c2V0RGFtYWdlfHNldERhbW1hZ2V8c2V0RGF0ZXxzZXREZWJyaWVmaW5nVGV4dHxzZXREZWZhdWx0Q2FtZXJhfHNldERlc3RpbmF0aW9ufHNldERldGFpbE1hcEJsZW5kUGFyc3xzZXREaXJ8c2V0RGlyZWN0aW9ufHNldERyYXdJY29ufHNldERyaXZlT25QYXRofHNldERyb3BJbnRlcnZhbHxzZXREeW5hbWljU2ltdWxhdGlvbkRpc3RhbmNlfHNldER5bmFtaWNTaW11bGF0aW9uRGlzdGFuY2VDb2VmfHNldEVkaXRvck1vZGV8c2V0RWRpdG9yT2JqZWN0U2NvcGV8c2V0RWZmZWN0Q29uZGl0aW9ufHNldEVuZ2luZVJwbVJURHxzZXRGYWNlfHNldEZhY2VBbmltYXRpb258c2V0RmF0aWd1ZXxzZXRGZWF0dXJlVHlwZXxzZXRGbGFnQW5pbWF0aW9uUGhhc2V8c2V0RmxhZ093bmVyfHNldEZsYWdTaWRlfHNldEZsYWdUZXh0dXJlfHNldEZvZ3xzZXRGb3JjZUdlbmVyYXRvclJURHxzZXRGb3JtYXRpb258c2V0Rm9ybWF0aW9uVGFza3xzZXRGb3JtRGlyfHNldEZyaWVuZHxzZXRGcm9tRWRpdG9yfHNldEZTTVZhcmlhYmxlfHNldEZ1ZWx8c2V0RnVlbENhcmdvfHNldEdyb3VwSWNvbnxzZXRHcm91cEljb25QYXJhbXN8c2V0R3JvdXBJY29uc1NlbGVjdGFibGV8c2V0R3JvdXBJY29uc1Zpc2libGV8c2V0R3JvdXBJZHxzZXRHcm91cElkR2xvYmFsfHNldEdyb3VwT3duZXJ8c2V0R3VzdHN8c2V0SGlkZUJlaGluZHxzZXRIaXR8c2V0SGl0SW5kZXh8c2V0SGl0UG9pbnREYW1hZ2V8c2V0SG9yaXpvblBhcmFsbGF4Q29lZnxzZXRIVURNb3ZlbWVudExldmVsc3xzZXRJZGVudGl0eXxzZXRJbXBvcnRhbmNlfHNldEluZm9QYW5lbHxzZXRMZWFkZXJ8c2V0TGlnaHRBbWJpZW50fHNldExpZ2h0QXR0ZW51YXRpb258c2V0TGlnaHRCcmlnaHRuZXNzfHNldExpZ2h0Q29sb3J8c2V0TGlnaHREYXlMaWdodHxzZXRMaWdodEZsYXJlTWF4RGlzdGFuY2V8c2V0TGlnaHRGbGFyZVNpemV8c2V0TGlnaHRJbnRlbnNpdHl8c2V0TGlnaHRuaW5nc3xzZXRMaWdodFVzZUZsYXJlfHNldExvY2FsV2luZFBhcmFtc3xzZXRNYWdhemluZVR1cnJldEFtbW98c2V0TWFya2VyQWxwaGF8c2V0TWFya2VyQWxwaGFMb2NhbHxzZXRNYXJrZXJCcnVzaHxzZXRNYXJrZXJCcnVzaExvY2FsfHNldE1hcmtlckNvbG9yfHNldE1hcmtlckNvbG9yTG9jYWx8c2V0TWFya2VyRGlyfHNldE1hcmtlckRpckxvY2FsfHNldE1hcmtlclBvc3xzZXRNYXJrZXJQb3NMb2NhbHxzZXRNYXJrZXJTaGFwZXxzZXRNYXJrZXJTaGFwZUxvY2FsfHNldE1hcmtlclNpemV8c2V0TWFya2VyU2l6ZUxvY2FsfHNldE1hcmtlclRleHR8c2V0TWFya2VyVGV4dExvY2FsfHNldE1hcmtlclR5cGV8c2V0TWFya2VyVHlwZUxvY2FsfHNldE1hc3N8c2V0TWltaWN8c2V0TW91c2VQb3NpdGlvbnxzZXRNdXNpY0VmZmVjdHxzZXRNdXNpY0V2ZW50SGFuZGxlcnxzZXROYW1lfHNldE5hbWVTb3VuZHxzZXRPYmplY3RBcmd1bWVudHN8c2V0T2JqZWN0TWF0ZXJpYWx8c2V0T2JqZWN0TWF0ZXJpYWxHbG9iYWx8c2V0T2JqZWN0UHJveHl8c2V0T2JqZWN0VGV4dHVyZXxzZXRPYmplY3RUZXh0dXJlR2xvYmFsfHNldE9iamVjdFZpZXdEaXN0YW5jZXxzZXRPdmVyY2FzdHxzZXRPd25lcnxzZXRPeHlnZW5SZW1haW5pbmd8c2V0UGFydGljbGVDaXJjbGV8c2V0UGFydGljbGVDbGFzc3xzZXRQYXJ0aWNsZUZpcmV8c2V0UGFydGljbGVQYXJhbXN8c2V0UGFydGljbGVSYW5kb218c2V0UGlsb3RDYW1lcmFEaXJlY3Rpb258c2V0UGlsb3RDYW1lcmFSb3RhdGlvbnxzZXRQaWxvdENhbWVyYVRhcmdldHxzZXRQaWxvdExpZ2h0fHNldFBpUEVmZmVjdHxzZXRQaXRjaHxzZXRQbGF0ZU51bWJlcnxzZXRQbGF5YWJsZXxzZXRQbGF5ZXJSZXNwYXduVGltZXxzZXRQb3N8c2V0UG9zQVNMfHNldFBvc0FTTDJ8c2V0UG9zQVNMV3xzZXRQb3NBVEx8c2V0UG9zaXRpb258c2V0UG9zV29ybGR8c2V0UHlsb25Mb2FkT3V0fHNldFB5bG9uc1ByaW9yaXR5fHNldFJhZGlvTXNnfHNldFJhaW58c2V0UmFpbmJvd3xzZXRSYW5kb21MaXB8c2V0UmFua3xzZXRSZWN0YW5ndWxhcnxzZXRSZXBhaXJDYXJnb3xzZXRSb3RvckJyYWtlUlREfHNldFNoYWRvd0Rpc3RhbmNlfHNldFNob3RQYXJlbnRzfHNldFNpZGV8c2V0U2ltcGxlVGFza0Fsd2F5c1Zpc2libGV8c2V0U2ltcGxlVGFza0N1c3RvbURhdGF8c2V0U2ltcGxlVGFza0Rlc2NyaXB0aW9ufHNldFNpbXBsZVRhc2tEZXN0aW5hdGlvbnxzZXRTaW1wbGVUYXNrVGFyZ2V0fHNldFNpbXBsZVRhc2tUeXBlfHNldFNpbXVsV2VhdGhlckxheWVyc3xzZXRTaXplfHNldFNraWxsfHNldFNsaW5nTG9hZHxzZXRTb3VuZEVmZmVjdHxzZXRTcGVha2VyfHNldFNwZWVjaHxzZXRTcGVlZE1vZGV8c2V0U3RhbWluYXxzZXRTdGFtaW5hU2NoZW1lfHNldFN0YXRWYWx1ZXxzZXRTdXBwcmVzc2lvbnxzZXRTeXN0ZW1PZlVuaXRzfHNldFRhcmdldEFnZXxzZXRUYXNrTWFya2VyT2Zmc2V0fHNldFRhc2tSZXN1bHR8c2V0VGFza1N0YXRlfHNldFRlcnJhaW5HcmlkfHNldFRleHR8c2V0VGltZU11bHRpcGxpZXJ8c2V0VGl0bGVFZmZlY3R8c2V0VG9uZU1hcHBpbmd8c2V0VG9uZU1hcHBpbmdQYXJhbXN8c2V0VHJhZmZpY0RlbnNpdHl8c2V0VHJhZmZpY0Rpc3RhbmNlfHNldFRyYWZmaWNHYXB8c2V0VHJhZmZpY1NwZWVkfHNldFRyaWdnZXJBY3RpdmF0aW9ufHNldFRyaWdnZXJBcmVhfHNldFRyaWdnZXJTdGF0ZW1lbnRzfHNldFRyaWdnZXJUZXh0fHNldFRyaWdnZXJUaW1lb3V0fHNldFRyaWdnZXJUeXBlfHNldFR5cGV8c2V0VW5jb25zY2lvdXN8c2V0VW5pdEFiaWxpdHl8c2V0VW5pdExvYWRvdXR8c2V0VW5pdFBvc3xzZXRVbml0UG9zV2Vha3xzZXRVbml0UmFua3xzZXRVbml0UmVjb2lsQ29lZmZpY2llbnR8c2V0VW5pdFRyYWl0fHNldFVubG9hZEluQ29tYmF0fHNldFVzZXJBY3Rpb25UZXh0fHNldFVzZXJNRkRUZXh0fHNldFVzZXJNRkRWYWx1ZXxzZXRWYXJpYWJsZXxzZXRWZWN0b3JEaXJ8c2V0VmVjdG9yRGlyQW5kVXB8c2V0VmVjdG9yVXB8c2V0VmVoaWNsZUFtbW98c2V0VmVoaWNsZUFtbW9EZWZ8c2V0VmVoaWNsZUFybW9yfHNldFZlaGljbGVDYXJnb3xzZXRWZWhpY2xlSWR8c2V0VmVoaWNsZUluaXR8c2V0VmVoaWNsZUxvY2t8c2V0VmVoaWNsZVBvc2l0aW9ufHNldFZlaGljbGVSYWRhcnxzZXRWZWhpY2xlUmVjZWl2ZVJlbW90ZVRhcmdldHN8c2V0VmVoaWNsZVJlcG9ydE93blBvc2l0aW9ufHNldFZlaGljbGVSZXBvcnRSZW1vdGVUYXJnZXRzfHNldFZlaGljbGVUSVBhcnN8c2V0VmVoaWNsZVZhck5hbWV8c2V0VmVsb2NpdHl8c2V0VmVsb2NpdHlNb2RlbFNwYWNlfHNldFZlbG9jaXR5VHJhbnNmb3JtYXRpb258c2V0Vmlld0Rpc3RhbmNlfHNldFZpc2libGVJZlRyZWVDb2xsYXBzZWR8c2V0V2FudGVkUnBtUlREfHNldFdhdmVzfHNldFdheXBvaW50QmVoYXZpb3VyfHNldFdheXBvaW50Q29tYmF0TW9kZXxzZXRXYXlwb2ludENvbXBsZXRpb25SYWRpdXN8c2V0V2F5cG9pbnREZXNjcmlwdGlvbnxzZXRXYXlwb2ludEZvcmNlQmVoYXZpb3VyfHNldFdheXBvaW50Rm9ybWF0aW9ufHNldFdheXBvaW50SG91c2VQb3NpdGlvbnxzZXRXYXlwb2ludExvaXRlclJhZGl1c3xzZXRXYXlwb2ludExvaXRlclR5cGV8c2V0V2F5cG9pbnROYW1lfHNldFdheXBvaW50UG9zaXRpb258c2V0V2F5cG9pbnRTY3JpcHR8c2V0V2F5cG9pbnRTcGVlZHxzZXRXYXlwb2ludFN0YXRlbWVudHN8c2V0V2F5cG9pbnRUaW1lb3V0fHNldFdheXBvaW50VHlwZXxzZXRXYXlwb2ludFZpc2libGV8c2V0V2VhcG9uUmVsb2FkaW5nVGltZXxzZXRXaW5kfHNldFdpbmREaXJ8c2V0V2luZEZvcmNlfHNldFdpbmRTdHJ8c2V0V2luZ0ZvcmNlU2NhbGVSVER8c2V0V1BQb3N8c2hvdzNESWNvbnN8c2hvd0NoYXR8c2hvd0NpbmVtYUJvcmRlcnxzaG93Q29tbWFuZGluZ01lbnV8c2hvd0NvbXBhc3N8c2hvd0N1cmF0b3JDb21wYXNzfHNob3dHUFN8c2hvd0hVRHxzaG93TGVnZW5kfHNob3dNYXB8c2hvd25BcnRpbGxlcnlDb21wdXRlcnxzaG93bkNoYXR8c2hvd25Db21wYXNzfHNob3duQ3VyYXRvckNvbXBhc3N8c2hvd05ld0VkaXRvck9iamVjdHxzaG93bkdQU3xzaG93bkhVRHxzaG93bk1hcHxzaG93blBhZHxzaG93blJhZGlvfHNob3duU2NvcmV0YWJsZXxzaG93blVBVkZlZWR8c2hvd25XYXJyYW50fHNob3duV2F0Y2h8c2hvd1BhZHxzaG93UmFkaW98c2hvd1Njb3JldGFibGV8c2hvd1N1YnRpdGxlc3xzaG93VUFWRmVlZHxzaG93V2FycmFudHxzaG93V2F0Y2h8c2hvd1dheXBvaW50fHNob3dXYXlwb2ludHN8c2lkZXxzaWRlQW1iaWVudExpZmV8c2lkZUNoYXR8c2lkZUVtcHR5fHNpZGVFbmVteXxzaWRlRnJpZW5kbHl8c2lkZUxvZ2ljfHNpZGVSYWRpb3xzaWRlVW5rbm93bnxzaW1wbGVUYXNrc3xzaW11bGF0aW9uRW5hYmxlZHxzaW11bENsb3VkRGVuc2l0eXxzaW11bENsb3VkT2NjbHVzaW9ufHNpbXVsSW5DbG91ZHN8c2ltdWxXZWF0aGVyU3luY3xzaW58c2l6ZXxzaXplT2Z8c2tpbGx8c2tpbGxGaW5hbHxza2lwVGltZXxzbGVlcHxzbGlkZXJQb3NpdGlvbnxzbGlkZXJSYW5nZXxzbGlkZXJTZXRQb3NpdGlvbnxzbGlkZXJTZXRSYW5nZXxzbGlkZXJTZXRTcGVlZHxzbGlkZXJTcGVlZHxzbGluZ0xvYWRBc3Npc3RhbnRTaG93bnxzb2xkaWVyTWFnYXppbmVzfHNvbWVBbW1vfHNvcnR8c291bmRWb2x1bWV8c3BlYWtlcnxzcGVlZHxzcGVlZE1vZGV8c3BsaXRTdHJpbmd8c3FydHxzcXVhZFBhcmFtc3xzdGFuY2V8c3RhcnRMb2FkaW5nU2NyZWVufHN0b3B8c3RvcEVuZ2luZVJURHxzdG9wcGVkfHN0cnxzdW5Pck1vb258c3VwcG9ydEluZm98c3VwcHJlc3NGb3J8c3VyZmFjZUlzV2F0ZXJ8c3VyZmFjZU5vcm1hbHxzdXJmYWNlVHlwZXxzd2ltSW5EZXB0aHxzd2l0Y2hhYmxlVW5pdHN8c3dpdGNoQWN0aW9ufHN3aXRjaENhbWVyYXxzd2l0Y2hHZXN0dXJlfHN3aXRjaExpZ2h0fHN3aXRjaE1vdmV8c3luY2hyb25pemVkT2JqZWN0c3xzeW5jaHJvbml6ZWRUcmlnZ2Vyc3xzeW5jaHJvbml6ZWRXYXlwb2ludHN8c3luY2hyb25pemVPYmplY3RzQWRkfHN5bmNocm9uaXplT2JqZWN0c1JlbW92ZXxzeW5jaHJvbml6ZVRyaWdnZXJ8c3luY2hyb25pemVXYXlwb2ludHxzeXN0ZW1DaGF0fHN5c3RlbU9mVW5pdHN8dGFufHRhcmdldEtub3dsZWRnZXx0YXJnZXRzfHRhcmdldHNBZ2dyZWdhdGV8dGFyZ2V0c1F1ZXJ5fHRhc2tBbHdheXNWaXNpYmxlfHRhc2tDaGlsZHJlbnx0YXNrQ29tcGxldGVkfHRhc2tDdXN0b21EYXRhfHRhc2tEZXNjcmlwdGlvbnx0YXNrRGVzdGluYXRpb258dGFza0hpbnR8dGFza01hcmtlck9mZnNldHx0YXNrTnVsbHx0YXNrUGFyZW50fHRhc2tSZXN1bHR8dGFza1N0YXRlfHRhc2tUeXBlfHRlYW1NZW1iZXJ8dGVhbU1lbWJlck51bGx8dGVhbU5hbWV8dGVhbXN8dGVhbVN3aXRjaHx0ZWFtU3dpdGNoRW5hYmxlZHx0ZWFtVHlwZXx0ZXJtaW5hdGV8dGVycmFpbkludGVyc2VjdHx0ZXJyYWluSW50ZXJzZWN0QVNMfHRlcnJhaW5JbnRlcnNlY3RBdEFTTHx0ZXh0fHRleHRMb2d8dGV4dExvZ0Zvcm1hdHx0Z3x0aW1lfHRpbWVNdWx0aXBsaWVyfHRpdGxlQ3V0fHRpdGxlRmFkZU91dHx0aXRsZU9ianx0aXRsZVJzY3x0aXRsZVRleHR8dG9BcnJheXx0b0ZpeGVkfHRvTG93ZXJ8dG9TdHJpbmd8dG9VcHBlcnx0cmlnZ2VyQWN0aXZhdGVkfHRyaWdnZXJBY3RpdmF0aW9ufHRyaWdnZXJBcmVhfHRyaWdnZXJBdHRhY2hlZFZlaGljbGV8dHJpZ2dlckF0dGFjaE9iamVjdHx0cmlnZ2VyQXR0YWNoVmVoaWNsZXx0cmlnZ2VyRHluYW1pY1NpbXVsYXRpb258dHJpZ2dlclN0YXRlbWVudHN8dHJpZ2dlclRleHR8dHJpZ2dlclRpbWVvdXR8dHJpZ2dlclRpbWVvdXRDdXJyZW50fHRyaWdnZXJUeXBlfHR1cnJldExvY2FsfHR1cnJldE93bmVyfHR1cnJldFVuaXR8dHZBZGR8dHZDbGVhcnx0dkNvbGxhcHNlfHR2Q29sbGFwc2VBbGx8dHZDb3VudHx0dkN1clNlbHx0dkRhdGF8dHZEZWxldGV8dHZFeHBhbmR8dHZFeHBhbmRBbGx8dHZQaWN0dXJlfHR2UGljdHVyZVJpZ2h0fHR2U2V0Q29sb3J8dHZTZXRDdXJTZWx8dHZTZXREYXRhfHR2U2V0UGljdHVyZXx0dlNldFBpY3R1cmVDb2xvcnx0dlNldFBpY3R1cmVDb2xvckRpc2FibGVkfHR2U2V0UGljdHVyZUNvbG9yU2VsZWN0ZWR8dHZTZXRQaWN0dXJlUmlnaHR8dHZTZXRQaWN0dXJlUmlnaHRDb2xvcnx0dlNldFBpY3R1cmVSaWdodENvbG9yRGlzYWJsZWR8dHZTZXRQaWN0dXJlUmlnaHRDb2xvclNlbGVjdGVkfHR2U2V0U2VsZWN0Q29sb3J8dHZTZXRUZXh0fHR2U2V0VG9vbHRpcHx0dlNldFZhbHVlfHR2U29ydHx0dlNvcnRCeVZhbHVlfHR2VGV4dHx0dlRvb2x0aXB8dHZWYWx1ZXx0eXBlfHR5cGVOYW1lfHR5cGVPZnxVQVZDb250cm9sfHVpTmFtZXNwYWNlfHVpU2xlZXB8dW5hc3NpZ25DdXJhdG9yfHVuYXNzaWduSXRlbXx1bmFzc2lnblRlYW18dW5hc3NpZ25WZWhpY2xlfHVuZGVyd2F0ZXJ8dW5pZm9ybXx1bmlmb3JtQ29udGFpbmVyfHVuaWZvcm1JdGVtc3x1bmlmb3JtTWFnYXppbmVzfHVuaXRBZGRvbnN8dW5pdEFpbVBvc2l0aW9ufHVuaXRBaW1Qb3NpdGlvblZpc3VhbHx1bml0QmFja3BhY2t8dW5pdElzVUFWfHVuaXRQb3N8dW5pdFJlYWR5fHVuaXRSZWNvaWxDb2VmZmljaWVudHx1bml0c3x1bml0c0JlbG93SGVpZ2h0fHVubGlua0l0ZW18dW5sb2NrQWNoaWV2ZW1lbnR8dW5yZWdpc3RlclRhc2t8dXBkYXRlRHJhd0ljb258dXBkYXRlTWVudUl0ZW18dXBkYXRlT2JqZWN0VHJlZXx1c2VBSU9wZXJNYXBPYnN0cnVjdGlvblRlc3R8dXNlQUlTdGVlcmluZ0NvbXBvbmVudHx1c2VBdWRpb1RpbWVGb3JNb3Zlc3x1c2VySW5wdXREaXNhYmxlZHx2ZWN0b3JBZGR8dmVjdG9yQ29zfHZlY3RvckNyb3NzUHJvZHVjdHx2ZWN0b3JEaWZmfHZlY3RvckRpcnx2ZWN0b3JEaXJWaXN1YWx8dmVjdG9yRGlzdGFuY2V8dmVjdG9yRGlzdGFuY2VTcXJ8dmVjdG9yRG90UHJvZHVjdHx2ZWN0b3JGcm9tVG98dmVjdG9yTWFnbml0dWRlfHZlY3Rvck1hZ25pdHVkZVNxcnx2ZWN0b3JNb2RlbFRvV29ybGR8dmVjdG9yTW9kZWxUb1dvcmxkVmlzdWFsfHZlY3Rvck11bHRpcGx5fHZlY3Rvck5vcm1hbGl6ZWR8dmVjdG9yVXB8dmVjdG9yVXBWaXN1YWx8dmVjdG9yV29ybGRUb01vZGVsfHZlY3RvcldvcmxkVG9Nb2RlbFZpc3VhbHx2ZWhpY2xlfHZlaGljbGVDYXJnb0VuYWJsZWR8dmVoaWNsZUNoYXR8dmVoaWNsZVJhZGlvfHZlaGljbGVSZWNlaXZlUmVtb3RlVGFyZ2V0c3x2ZWhpY2xlUmVwb3J0T3duUG9zaXRpb258dmVoaWNsZVJlcG9ydFJlbW90ZVRhcmdldHN8dmVoaWNsZXN8dmVoaWNsZVZhck5hbWV8dmVsb2NpdHl8dmVsb2NpdHlNb2RlbFNwYWNlfHZlcmlmeVNpZ25hdHVyZXx2ZXN0fHZlc3RDb250YWluZXJ8dmVzdEl0ZW1zfHZlc3RNYWdhemluZXN8dmlld0Rpc3RhbmNlfHZpc2libGVDb21wYXNzfHZpc2libGVHUFN8dmlzaWJsZU1hcHx2aXNpYmxlUG9zaXRpb258dmlzaWJsZVBvc2l0aW9uQVNMfHZpc2libGVTY29yZXRhYmxlfHZpc2libGVXYXRjaHx3YWl0VW50aWx8d2F2ZXN8d2F5cG9pbnRBdHRhY2hlZE9iamVjdHx3YXlwb2ludEF0dGFjaGVkVmVoaWNsZXx3YXlwb2ludEF0dGFjaE9iamVjdHx3YXlwb2ludEF0dGFjaFZlaGljbGV8d2F5cG9pbnRCZWhhdmlvdXJ8d2F5cG9pbnRDb21iYXRNb2RlfHdheXBvaW50Q29tcGxldGlvblJhZGl1c3x3YXlwb2ludERlc2NyaXB0aW9ufHdheXBvaW50Rm9yY2VCZWhhdmlvdXJ8d2F5cG9pbnRGb3JtYXRpb258d2F5cG9pbnRIb3VzZVBvc2l0aW9ufHdheXBvaW50TG9pdGVyUmFkaXVzfHdheXBvaW50TG9pdGVyVHlwZXx3YXlwb2ludE5hbWV8d2F5cG9pbnRQb3NpdGlvbnx3YXlwb2ludHN8d2F5cG9pbnRTY3JpcHR8d2F5cG9pbnRzRW5hYmxlZFVBVnx3YXlwb2ludFNob3d8d2F5cG9pbnRTcGVlZHx3YXlwb2ludFN0YXRlbWVudHN8d2F5cG9pbnRUaW1lb3V0fHdheXBvaW50VGltZW91dEN1cnJlbnR8d2F5cG9pbnRUeXBlfHdheXBvaW50VmlzaWJsZXx3ZWFwb25BY2Nlc3Nvcmllc3x3ZWFwb25BY2Nlc3Nvcmllc0NhcmdvfHdlYXBvbkNhcmdvfHdlYXBvbkRpcmVjdGlvbnx3ZWFwb25JbmVydGlhfHdlYXBvbkxvd2VyZWR8d2VhcG9uc3x3ZWFwb25zSXRlbXN8d2VhcG9uc0l0ZW1zQ2FyZ298d2VhcG9uU3RhdGV8d2VhcG9uc1R1cnJldHx3ZWlnaHRSVER8d2VzdHxXRlNpZGVUZXh0fHdpbmR8d2luZERpcnx3aW5kUlREfHdpbmRTdHJ8d2luZ3NGb3JjZXNSVER8d29ybGROYW1lfHdvcmxkU2l6ZXx3b3JsZFRvTW9kZWx8d29ybGRUb01vZGVsVmlzdWFsfHdvcmxkVG9TY3JlZW4pXGIvaSxudW1iZXI6Lyg/OlwkfFxiMHgpW1xkYS1mXStcYnwoPzpcQlwuXGQrfFxiXGQrKD86XC5cZCspPykoPzplWystXT9cZCspP1xiL2ksb3BlcmF0b3I6LyMjfD4+fCYmfFx8XHx8WyE9PD5dPT98Wy0rKi8lI15dfFxiKD86YW5kfG1vZHxub3R8b3IpXGIvaSwibWFnaWMtdmFyaWFibGUiOntwYXR0ZXJuOi9cYig/OnRoaXN8dGhpc0xpc3R8dGhpc1RyaWdnZXJ8X2V4Y2VwdGlvbnxfZm5jX3NjcmlwdE5hbWV8X2ZuY19zY3JpcHROYW1lUGFyZW50fF9mb3JFYWNoSW5kZXh8X3RoaXN8X3RoaXNFdmVudEhhbmRsZXJ8X3RoaXNGU018X3RoaXNTY3JpcHR8X3gpXGIvaSxhbGlhczoia2V5d29yZCJ9LGNvbnN0YW50Oi9cYkRJSyg/Ol9bYS16XGRdKykrXGIvaX0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic3FmIiwic3RyaW5nIix7bWFjcm86e3BhdHRlcm46LyheWyBcdF0qKSNbYS16XSg/OlteXHJcblxcXXxcXCg/OlxyXG58W1xzXFNdKSkqL2ltLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJwcm9wZXJ0eSIsaW5zaWRlOntkaXJlY3RpdmU6e3BhdHRlcm46LyNbYS16XStcYi9pLGFsaWFzOiJrZXl3b3JkIn0sY29tbWVudDpuLmxhbmd1YWdlcy5zcWYuY29tbWVudH19fSksZGVsZXRlIG4ubGFuZ3VhZ2VzLnNxZlsiY2xhc3MtbmFtZSJdfXJldHVybiBtbX12YXIgaG0sUVI7ZnVuY3Rpb24gV0IoKXtpZihRUilyZXR1cm4gaG07UVI9MSxobT1lLGUuZGlzcGxheU5hbWU9InNxdWlycmVsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy5zcXVpcnJlbD1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7Y29tbWVudDpbbi5sYW5ndWFnZXMuY2xpa2UuY29tbWVudFswXSx7cGF0dGVybjovKF58W15cXDpdKSg/OlwvXC98IykuKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxzdHJpbmc6e3BhdHRlcm46LyhefFteXFwiJ0BdKSg/OkAiKD86W14iXXwiIikqIig/ISIpfCIoPzpbXlxcXHJcbiJdfFxcLikqIikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmNsYXNzfGVudW18ZXh0ZW5kc3xpbnN0YW5jZW9mKVxzKylcdysoPzpcLlx3KykqLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LGtleXdvcmQ6L1xiKD86X19GSUxFX198X19MSU5FX198YmFzZXxicmVha3xjYXNlfGNhdGNofGNsYXNzfGNsb25lfGNvbnN0fGNvbnN0cnVjdG9yfGNvbnRpbnVlfGRlZmF1bHR8ZGVsZXRlfGVsc2V8ZW51bXxleHRlbmRzfGZvcnxmb3JlYWNofGZ1bmN0aW9ufGlmfGlufGluc3RhbmNlb2Z8bG9jYWx8bnVsbHxyZXN1bWV8cmV0dXJufHN0YXRpY3xzd2l0Y2h8dGhpc3x0aHJvd3x0cnl8dHlwZW9mfHdoaWxlfHlpZWxkKVxiLyxudW1iZXI6L1xiKD86MHhbMC05YS1mQS1GXSt8XGQrKD86XC4oPzpcZCt8W2VFXVsrLV0/XGQrKSk/KVxiLyxvcGVyYXRvcjovXCtcK3wtLXw8PT58PFstPF18Pj4+P3wmJj98XHxcfD98Wy0rKi8lIT08Pl09P3xbfl5dfDo6Py8scHVuY3R1YXRpb246L1soKXt9XFtcXSw7Ll0vfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzcXVpcnJlbCIsInN0cmluZyIse2NoYXI6e3BhdHRlcm46LyhefFteXFwiJ10pJyg/OlteXFwnXXxcXCg/Olt4dVVdWzAtOWEtZkEtRl17MCw4fXxbXHNcU10pKScvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfX0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic3F1aXJyZWwiLCJvcGVyYXRvciIseyJhdHRyaWJ1dGUtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi88XC98XC8+LyxhbGlhczoiaW1wb3J0YW50In0sbGFtYmRhOntwYXR0ZXJuOi9AKD89XCgpLyxhbGlhczoib3BlcmF0b3IifX0pfXJldHVybiBobX12YXIgYm0sSlI7ZnVuY3Rpb24gWEIoKXtpZihKUilyZXR1cm4gYm07SlI9MSxibT1lLGUuZGlzcGxheU5hbWU9InN0YW4iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vXGIoPzphbGdlYnJhX3NvbHZlcnxhbGdlYnJhX3NvbHZlcl9uZXd0b258aW50ZWdyYXRlXzFkfGludGVncmF0ZV9vZGV8aW50ZWdyYXRlX29kZV9iZGZ8aW50ZWdyYXRlX29kZV9yazQ1fG1hcF9yZWN0fG9kZV8oPzphZGFtc3xiZGZ8Y2tya3xyazQ1KSg/Ol90b2wpP3xvZGVfYWRqb2ludF90b2xfY3RsfHJlZHVjZV9zdW18cmVkdWNlX3N1bV9zdGF0aWMpXGIvO2EubGFuZ3VhZ2VzLnN0YW49e2NvbW1lbnQ6L1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvfCMoPyFpbmNsdWRlKS4qLyxzdHJpbmc6e3BhdHRlcm46LyJbXHgyMFx4MjFceDIzLVx4NUJceDVELVx4N0VdKiIvLGdyZWVkeTohMH0sZGlyZWN0aXZlOntwYXR0ZXJuOi9eKFsgXHRdKikjaW5jbHVkZVxiLiovbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LCJmdW5jdGlvbi1hcmciOntwYXR0ZXJuOlJlZ0V4cCgiKCIraS5zb3VyY2UrL1xzKlwoXHMqLy5zb3VyY2UrIikiKy9bYS16QS1aXVx3Ki8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9LGNvbnN0cmFpbnQ6e3BhdHRlcm46LyhcYig/OmludHxtYXRyaXh8cmVhbHxyb3dfdmVjdG9yfHZlY3RvcilccyopPFtePD5dKj4vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntleHByZXNzaW9uOntwYXR0ZXJuOi8oPVxzKilcUyg/OlxTfFxzKyg/IVxzKSkqPyg/PVxzKig/Oj4kfCxccypcdytccyo9KSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm51bGx9LHByb3BlcnR5Oi9cYlthLXpdXHcqKD89XHMqPSkvaSxvcGVyYXRvcjovPS8scHVuY3R1YXRpb246L148fD4kfCwvfX0sa2V5d29yZDpbe3BhdHRlcm46L1xiZGF0YSg/PVxzKlx7KXxcYig/OmZ1bmN0aW9uc3xnZW5lcmF0ZWR8bW9kZWx8cGFyYW1ldGVyc3xxdWFudGl0aWVzfHRyYW5zZm9ybWVkKVxiLyxhbGlhczoicHJvZ3JhbS1ibG9jayJ9LC9cYig/OmFycmF5fGJyZWFrfGNob2xlc2t5X2ZhY3Rvcl9jb3JyfGNob2xlc2t5X2ZhY3Rvcl9jb3Z8Y29tcGxleHxjb250aW51ZXxjb3JyX21hdHJpeHxjb3ZfbWF0cml4fGRhdGF8ZWxzZXxmb3J8aWZ8aW58aW5jcmVtZW50X2xvZ19wcm9ifGludHxtYXRyaXh8b3JkZXJlZHxwb3NpdGl2ZV9vcmRlcmVkfHByaW50fHJlYWx8cmVqZWN0fHJldHVybnxyb3dfdmVjdG9yfHNpbXBsZXh8dGFyZ2V0fHVuaXRfdmVjdG9yfHZlY3Rvcnx2b2lkfHdoaWxlKVxiLyxpXSxmdW5jdGlvbjovXGJbYS16XVx3Kig/PVxzKlwoKS9pLG51bWJlcjovKD86XGJcZCsoPzpfXGQrKSooPzpcLig/OlxkKyg/Ol9cZCspKik/KT98XEJcLlxkKyg/Ol9cZCspKikoPzpFWystXT9cZCsoPzpfXGQrKSopP2k/KD8hXHcpL2ksYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxvcGVyYXRvcjovPC18XC5bKi9dPT98XHxcfD98JiZ8WyE9PD4rXC0qL109P3xbJ14lfj86XS8scHVuY3R1YXRpb246L1soKVxbXF17fSw7XS99LGEubGFuZ3VhZ2VzLnN0YW4uY29uc3RyYWludC5pbnNpZGUuZXhwcmVzc2lvbi5pbnNpZGU9YS5sYW5ndWFnZXMuc3Rhbn0pKG4pfXJldHVybiBibX12YXIgeW0sZU47ZnVuY3Rpb24gWkIoKXtpZihlTilyZXR1cm4geW07ZU49MSx5bT1lLGUuZGlzcGxheU5hbWU9InN0eWx1cyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPXtwYXR0ZXJuOi8oXGJcZCspKD86JXxbYS16XSspLyxsb29rYmVoaW5kOiEwfSxsPXtwYXR0ZXJuOi8oXnxbXlx3Li1dKS0/KD86XGQrKD86XC5cZCspP3xcLlxkKykvLGxvb2tiZWhpbmQ6ITB9LHU9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSg/OlwvXCpbXHNcU10qP1wqXC98XC9cLy4qKS8sbG9va2JlaGluZDohMH0sdXJsOntwYXR0ZXJuOi9cYnVybFwoKFsiJ10/KS4qP1wxXCkvaSxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzooPyFcMSlbXlxcXHJcbl18XFwoPzpcclxufFtcc1xTXSkpKlwxLyxncmVlZHk6ITB9LGludGVycG9sYXRpb246bnVsbCxmdW5jOm51bGwsaW1wb3J0YW50Oi9cQiEoPzppbXBvcnRhbnR8b3B0aW9uYWwpXGIvaSxrZXl3b3JkOntwYXR0ZXJuOi8oXnxccyspKD86KD86ZWxzZXxmb3J8aWZ8cmV0dXJufHVubGVzcykoPz1cc3wkKXxAW1x3LV0rKS8sbG9va2JlaGluZDohMH0saGV4Y29kZTovI1tcZGEtZl17Myw2fS9pLGNvbG9yOlsvXGIoPzpBbGljZUJsdWV8QW50aXF1ZVdoaXRlfEFxdWF8QXF1YW1hcmluZXxBenVyZXxCZWlnZXxCaXNxdWV8QmxhY2t8QmxhbmNoZWRBbG1vbmR8Qmx1ZXxCbHVlVmlvbGV0fEJyb3dufEJ1cmx5V29vZHxDYWRldEJsdWV8Q2hhcnRyZXVzZXxDaG9jb2xhdGV8Q29yYWx8Q29ybmZsb3dlckJsdWV8Q29ybnNpbGt8Q3JpbXNvbnxDeWFufERhcmtCbHVlfERhcmtDeWFufERhcmtHb2xkZW5Sb2R8RGFya0dyW2FlXXl8RGFya0dyZWVufERhcmtLaGFraXxEYXJrTWFnZW50YXxEYXJrT2xpdmVHcmVlbnxEYXJrT3JhbmdlfERhcmtPcmNoaWR8RGFya1JlZHxEYXJrU2FsbW9ufERhcmtTZWFHcmVlbnxEYXJrU2xhdGVCbHVlfERhcmtTbGF0ZUdyW2FlXXl8RGFya1R1cnF1b2lzZXxEYXJrVmlvbGV0fERlZXBQaW5rfERlZXBTa3lCbHVlfERpbUdyW2FlXXl8RG9kZ2VyQmx1ZXxGaXJlQnJpY2t8RmxvcmFsV2hpdGV8Rm9yZXN0R3JlZW58RnVjaHNpYXxHYWluc2Jvcm98R2hvc3RXaGl0ZXxHb2xkfEdvbGRlblJvZHxHclthZV15fEdyZWVufEdyZWVuWWVsbG93fEhvbmV5RGV3fEhvdFBpbmt8SW5kaWFuUmVkfEluZGlnb3xJdm9yeXxLaGFraXxMYXZlbmRlcnxMYXZlbmRlckJsdXNofExhd25HcmVlbnxMZW1vbkNoaWZmb258TGlnaHRCbHVlfExpZ2h0Q29yYWx8TGlnaHRDeWFufExpZ2h0R29sZGVuUm9kWWVsbG93fExpZ2h0R3JbYWVdeXxMaWdodEdyZWVufExpZ2h0UGlua3xMaWdodFNhbG1vbnxMaWdodFNlYUdyZWVufExpZ2h0U2t5Qmx1ZXxMaWdodFNsYXRlR3JbYWVdeXxMaWdodFN0ZWVsQmx1ZXxMaWdodFllbGxvd3xMaW1lfExpbWVHcmVlbnxMaW5lbnxNYWdlbnRhfE1hcm9vbnxNZWRpdW1BcXVhTWFyaW5lfE1lZGl1bUJsdWV8TWVkaXVtT3JjaGlkfE1lZGl1bVB1cnBsZXxNZWRpdW1TZWFHcmVlbnxNZWRpdW1TbGF0ZUJsdWV8TWVkaXVtU3ByaW5nR3JlZW58TWVkaXVtVHVycXVvaXNlfE1lZGl1bVZpb2xldFJlZHxNaWRuaWdodEJsdWV8TWludENyZWFtfE1pc3R5Um9zZXxNb2NjYXNpbnxOYXZham9XaGl0ZXxOYXZ5fE9sZExhY2V8T2xpdmV8T2xpdmVEcmFifE9yYW5nZXxPcmFuZ2VSZWR8T3JjaGlkfFBhbGVHb2xkZW5Sb2R8UGFsZUdyZWVufFBhbGVUdXJxdW9pc2V8UGFsZVZpb2xldFJlZHxQYXBheWFXaGlwfFBlYWNoUHVmZnxQZXJ1fFBpbmt8UGx1bXxQb3dkZXJCbHVlfFB1cnBsZXxSZWR8Um9zeUJyb3dufFJveWFsQmx1ZXxTYWRkbGVCcm93bnxTYWxtb258U2FuZHlCcm93bnxTZWFHcmVlbnxTZWFTaGVsbHxTaWVubmF8U2lsdmVyfFNreUJsdWV8U2xhdGVCbHVlfFNsYXRlR3JbYWVdeXxTbm93fFNwcmluZ0dyZWVufFN0ZWVsQmx1ZXxUYW58VGVhbHxUaGlzdGxlfFRvbWF0b3xUcmFuc3BhcmVudHxUdXJxdW9pc2V8VmlvbGV0fFdoZWF0fFdoaXRlfFdoaXRlU21va2V8WWVsbG93fFllbGxvd0dyZWVuKVxiL2kse3BhdHRlcm46L1xiKD86aHNsfHJnYilcKFxzKlxkezEsM31ccyosXHMqXGR7MSwzfSU/XHMqLFxzKlxkezEsM30lP1xzKlwpXEJ8XGIoPzpoc2x8cmdiKWFcKFxzKlxkezEsM31ccyosXHMqXGR7MSwzfSU/XHMqLFxzKlxkezEsM30lP1xzKixccyooPzowfDA/XC5cZCt8MSlccypcKVxCL2ksaW5zaWRlOnt1bml0OmksbnVtYmVyOmwsZnVuY3Rpb246L1tcdy1dKyg/PVwoKS8scHVuY3R1YXRpb246L1soKSxdL319XSxlbnRpdHk6L1xcW1xkYS1mXXsxLDh9L2ksdW5pdDppLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sb3BlcmF0b3I6Wy9+fFsrIVwvJTw+Pz1dPT98Wy06XT18XCpbKj1dP3xcLnsyLDN9fCYmfFx8XHx8XEItXEJ8XGIoPzphbmR8aW58aXMoPzogYXwgZGVmaW5lZHwgbm90fG50KT98bm90fG9yKVxiL10sbnVtYmVyOmwscHVuY3R1YXRpb246L1t7fSgpXFtcXTs6LF0vfTt1LmludGVycG9sYXRpb249e3BhdHRlcm46L1x7W15cclxufTpdK1x9LyxhbGlhczoidmFyaWFibGUiLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eXHt8XH0kLyxhbGlhczoicHVuY3R1YXRpb24ifSxyZXN0OnV9fSx1LmZ1bmM9e3BhdHRlcm46L1tcdy1dK1woW14pXSpcKS4qLyxpbnNpZGU6e2Z1bmN0aW9uOi9eW14oXSsvLHJlc3Q6dX19LGEubGFuZ3VhZ2VzLnN0eWx1cz17ImF0cnVsZS1kZWNsYXJhdGlvbiI6e3BhdHRlcm46LyheWyBcdF0qKUAuKy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnthdHJ1bGU6L15AW1x3LV0rLyxyZXN0OnV9fSwidmFyaWFibGUtZGVjbGFyYXRpb24iOntwYXR0ZXJuOi8oXlsgXHRdKilbXHckLV0rXHMqLj89WyBcdF0qKD86XHtbXnt9XSpcfXxcUy4qfCQpL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3ZhcmlhYmxlOi9eXFMrLyxyZXN0OnV9fSxzdGF0ZW1lbnQ6e3BhdHRlcm46LyheWyBcdF0qKSg/OmVsc2V8Zm9yfGlmfHJldHVybnx1bmxlc3MpWyBcdF0uKy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9eXFMrLyxyZXN0OnV9fSwicHJvcGVydHktZGVjbGFyYXRpb24iOntwYXR0ZXJuOi8oKD86XnxceykoWyBcdF0qKSkoPzpbXHctXXxce1tefVxyXG5dK1x9KSsoPzpccyo6XHMqfFsgXHRdKykoPyFccylbXntcclxuXSooPzo7fFtee1xyXG4sXSQoPyEoPzpccj9cbnxccikoPzpce3xcMlsgXHRdKSkpL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3Byb3BlcnR5OntwYXR0ZXJuOi9eW15cczpdKy8saW5zaWRlOntpbnRlcnBvbGF0aW9uOnUuaW50ZXJwb2xhdGlvbn19LHJlc3Q6dX19LHNlbGVjdG9yOntwYXR0ZXJuOi8oXlsgXHRdKikoPzooPz1cUykoPzpbXnt9XHJcbjooKV18Ojo/W1x3LV0rKD86XChbXilcclxuXSpcKXwoPyFbXHctXSkpfFx7W159XHJcbl0rXH0pKykoPzooPzpccj9cbnxccikoPzpcMSg/Oig/PVxTKSg/Oltee31cclxuOigpXXw6Oj9bXHctXSsoPzpcKFteKVxyXG5dKlwpfCg/IVtcdy1dKSl8XHtbXn1cclxuXStcfSkrKSkpKig/OiwkfFx7fCg/PSg/OlxyP1xufFxyKSg/Olx7fFwxWyBcdF0pKSkvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp1LmludGVycG9sYXRpb24sY29tbWVudDp1LmNvbW1lbnQscHVuY3R1YXRpb246L1t7fSxdL319LGZ1bmM6dS5mdW5jLHN0cmluZzp1LnN0cmluZyxjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzpcL1wqW1xzXFNdKj9cKlwvfFwvXC8uKikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxpbnRlcnBvbGF0aW9uOnUuaW50ZXJwb2xhdGlvbixwdW5jdHVhdGlvbjovW3t9KClcW1xdOzouXS99fSkobil9cmV0dXJuIHltfXZhciBFbSx0TjtmdW5jdGlvbiBRQigpe2lmKHROKXJldHVybiBFbTt0Tj0xLEVtPWUsZS5kaXNwbGF5TmFtZT0ic3dpZnQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLnN3aWZ0PXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcOl0pKD86XC9cLy4qfFwvXCooPzpbXi8qXXxcLyg/IVwqKXxcKig/IVwvKXxcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcLykqXCpcLykvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSwic3RyaW5nLWxpdGVyYWwiOlt7cGF0dGVybjpSZWdFeHAoLyhefFteIiNdKS8uc291cmNlKyIoPzoiKy8iKD86XFwoPzpcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpfFxyXG58W14oXSl8W15cXFxyXG4iXSkqIi8uc291cmNlKyJ8IisvIiIiKD86XFwoPzpcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpfFteKF0pfFteXFwiXXwiKD8hIiIpKSoiIiIvLnNvdXJjZSsiKSIrLyg/IVsiI10pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKFxcXCgpKD86W14oKV18XChbXigpXSpcKSkqKD89XCkpLyxsb29rYmVoaW5kOiEwLGluc2lkZTpudWxsfSwiaW50ZXJwb2xhdGlvbi1wdW5jdHVhdGlvbiI6e3BhdHRlcm46L15cKXxcXFwoJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0scHVuY3R1YXRpb246L1xcKD89W1xyXG5dKS8sc3RyaW5nOi9bXHNcU10rL319LHtwYXR0ZXJuOlJlZ0V4cCgvKF58W14iI10pKCMrKS8uc291cmNlKyIoPzoiKy8iKD86XFwoPzojK1woKD86W14oKV18XChbXigpXSpcKSkqXCl8XHJcbnxbXiNdKXxbXlxcXHJcbl0pKj8iLy5zb3VyY2UrInwiKy8iIiIoPzpcXCg/OiMrXCgoPzpbXigpXXxcKFteKCldKlwpKSpcKXxbXiNdKXxbXlxcXSkqPyIiIi8uc291cmNlKyIpXFwyIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oXFwjK1woKSg/OlteKCldfFwoW14oKV0qXCkpKig/PVwpKS8sbG9va2JlaGluZDohMCxpbnNpZGU6bnVsbH0sImludGVycG9sYXRpb24tcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eXCl8XFwjK1woJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sc3RyaW5nOi9bXHNcU10rL319XSxkaXJlY3RpdmU6e3BhdHRlcm46UmVnRXhwKC8jLy5zb3VyY2UrIig/OiIrKC8oPzplbHNlaWZ8aWYpXGIvLnNvdXJjZSsiKD86WyAJXSoiKy8oPzohWyBcdF0qKT8oPzpcYlx3K1xiKD86WyBcdF0qXCgoPzpbXigpXXxcKFteKCldKlwpKSpcKSk/fFwoKD86W14oKV18XChbXigpXSpcKSkqXCkpKD86WyBcdF0qKD86JiZ8XHxcfCkpPy8uc291cmNlKyIpKyIpKyJ8IisvKD86ZWxzZXxlbmRpZilcYi8uc291cmNlKyIpIiksYWxpYXM6InByb3BlcnR5IixpbnNpZGU6eyJkaXJlY3RpdmUtbmFtZSI6L14jXHcrLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG51bWJlcjovXGJcZCsoPzpcLlxkKykqXGIvLG9wZXJhdG9yOi8hfCYmfFx8XHx8Wzw+XT0/LyxwdW5jdHVhdGlvbjovWygpLF0vfX0sbGl0ZXJhbDp7cGF0dGVybjovIyg/OmNvbG9yTGl0ZXJhbHxjb2x1bW58ZHNvaGFuZGxlfGZpbGUoPzpJRHxMaXRlcmFsfFBhdGgpP3xmdW5jdGlvbnxpbWFnZUxpdGVyYWx8bGluZSlcYi8sYWxpYXM6ImNvbnN0YW50In0sIm90aGVyLWRpcmVjdGl2ZSI6e3BhdHRlcm46LyNcdytcYi8sYWxpYXM6InByb3BlcnR5In0sYXR0cmlidXRlOntwYXR0ZXJuOi9AXHcrLyxhbGlhczoiYXRydWxlIn0sImZ1bmN0aW9uLWRlZmluaXRpb24iOntwYXR0ZXJuOi8oXGJmdW5jXHMrKVx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxsYWJlbDp7cGF0dGVybjovXGIoYnJlYWt8Y29udGludWUpXHMrXHcrfFxiW2EtekEtWl9dXHcqKD89XHMqOlxzKig/OmZvcnxyZXBlYXR8d2hpbGUpXGIpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJpbXBvcnRhbnQifSxrZXl3b3JkOi9cYig/OkFueXxQcm90b2NvbHxTZWxmfFR5cGV8YWN0b3J8YXN8YXNzaWdubWVudHxhc3NvY2lhdGVkdHlwZXxhc3NvY2lhdGl2aXR5fGFzeW5jfGF3YWl0fGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29udGludWV8Y29udmVuaWVuY2V8ZGVmYXVsdHxkZWZlcnxkZWluaXR8ZGlkU2V0fGRvfGR5bmFtaWN8ZWxzZXxlbnVtfGV4dGVuc2lvbnxmYWxsdGhyb3VnaHxmaWxlcHJpdmF0ZXxmaW5hbHxmb3J8ZnVuY3xnZXR8Z3VhcmR8aGlnaGVyVGhhbnxpZnxpbXBvcnR8aW58aW5kaXJlY3R8aW5maXh8aW5pdHxpbm91dHxpbnRlcm5hbHxpc3xpc29sYXRlZHxsYXp5fGxlZnR8bGV0fGxvd2VyVGhhbnxtdXRhdGluZ3xub25lfG5vbmlzb2xhdGVkfG5vbm11dGF0aW5nfG9wZW58b3BlcmF0b3J8b3B0aW9uYWx8b3ZlcnJpZGV8cG9zdGZpeHxwcmVjZWRlbmNlZ3JvdXB8cHJlZml4fHByaXZhdGV8cHJvdG9jb2x8cHVibGljfHJlcGVhdHxyZXF1aXJlZHxyZXRocm93c3xyZXR1cm58cmlnaHR8c2FmZXxzZWxmfHNldHxzb21lfHN0YXRpY3xzdHJ1Y3R8c3Vic2NyaXB0fHN1cGVyfHN3aXRjaHx0aHJvd3x0aHJvd3N8dHJ5fHR5cGVhbGlhc3x1bm93bmVkfHVuc2FmZXx2YXJ8d2Vha3x3aGVyZXx3aGlsZXx3aWxsU2V0KVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG5pbDp7cGF0dGVybjovXGJuaWxcYi8sYWxpYXM6ImNvbnN0YW50In0sInNob3J0LWFyZ3VtZW50IjovXCRcZCtcYi8sb21pdDp7cGF0dGVybjovXGJfXGIvLGFsaWFzOiJrZXl3b3JkIn0sbnVtYmVyOi9cYig/OltcZF9dKyg/OlwuW1xkZV9dKyk/fDB4W2EtZjAtOV9dKyg/OlwuW2EtZjAtOXBfXSspP3wwYlswMV9dK3wwb1swLTdfXSspXGIvaSwiY2xhc3MtbmFtZSI6L1xiW0EtWl0oPzpbQS1aX1xkXSpbYS16XVx3Kik/XGIvLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVxzKlwoKS9pLGNvbnN0YW50Oi9cYig/OltBLVpfXXsyLH18a1tBLVpdW0EtWmEtel9dKylcYi8sb3BlcmF0b3I6L1stKyovJT0hPD4mfF5+P10rfFwuWy5cLSsqLyU9ITw+Jnxefj9dKy8scHVuY3R1YXRpb246L1t7fVtcXSgpOywuOlxcXS99LG4ubGFuZ3VhZ2VzLnN3aWZ0WyJzdHJpbmctbGl0ZXJhbCJdLmZvckVhY2goZnVuY3Rpb24oYSl7YS5pbnNpZGUuaW50ZXJwb2xhdGlvbi5pbnNpZGU9bi5sYW5ndWFnZXMuc3dpZnR9KX1yZXR1cm4gRW19dmFyIFNtLG5OO2Z1bmN0aW9uIEpCKCl7aWYobk4pcmV0dXJuIFNtO25OPTEsU209ZSxlLmRpc3BsYXlOYW1lPSJzeXN0ZW1kIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9e3BhdHRlcm46L15bOyNdLiovbSxncmVlZHk6ITB9LGw9LyIoPzpbXlxyXG4iXFxdfFxcKD86W15ccl18XHJcbj8pKSoiKD8hXFMpLy5zb3VyY2U7YS5sYW5ndWFnZXMuc3lzdGVtZD17Y29tbWVudDppLHNlY3Rpb246e3BhdHRlcm46L15cW1teXG5cclxbXF1dKlxdKD89WyBcdF0qJCkvbSxncmVlZHk6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXlxbfFxdJC8sInNlY3Rpb24tbmFtZSI6e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJzZWxlY3RvciJ9fX0sa2V5OntwYXR0ZXJuOi9eW15ccz1dKyg/PVsgXHRdKj0pL20sZ3JlZWR5OiEwLGFsaWFzOiJhdHRyLW5hbWUifSx2YWx1ZTp7cGF0dGVybjpSZWdFeHAoLyg9WyBcdF0qKD8hXHMpKS8uc291cmNlKyIoPzoiK2wrYHwoPz1bXiJccgpdKSkoPzpgKygvW15cc1xcXS8uc291cmNlKyd8WyAJXSsoPzooPyFbIAkiXSl8JytsKyIpfCIrL1xcW1xyXG5dKyg/OlsjO10uKltcclxuXSspKig/IVsjO10pLy5zb3VyY2UpKyIpKiIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJhdHRyLXZhbHVlIixpbnNpZGU6e2NvbW1lbnQ6aSxxdW90ZWQ6e3BhdHRlcm46UmVnRXhwKC8oXnxccykvLnNvdXJjZStsKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0scHVuY3R1YXRpb246L1xcJC9tLGJvb2xlYW46e3BhdHRlcm46L14oPzpmYWxzZXxub3xvZmZ8b258dHJ1ZXx5ZXMpJC8sZ3JlZWR5OiEwfX19LHB1bmN0dWF0aW9uOi89L319KShuKX1yZXR1cm4gU219dmFyIHZtLHJOO2Z1bmN0aW9uIHNiKCl7aWYock4pcmV0dXJuIHZtO3JOPTEsdm09ZSxlLmRpc3BsYXlOYW1lPSJ0NFRlbXBsYXRpbmciLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXtmdW5jdGlvbiBpKHUsYyxkKXtyZXR1cm57cGF0dGVybjpSZWdFeHAoIjwjIit1KyJbXFxzXFxTXSo/Iz4iKSxhbGlhczoiYmxvY2siLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOlJlZ0V4cCgiXjwjIit1KyJ8Iz4kIiksYWxpYXM6ImltcG9ydGFudCJ9LGNvbnRlbnQ6e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTpjLGFsaWFzOmR9fX19ZnVuY3Rpb24gbCh1KXt2YXIgYz1hLmxhbmd1YWdlc1t1XSxkPSJsYW5ndWFnZS0iK3U7cmV0dXJue2Jsb2NrOntwYXR0ZXJuOi88I1tcc1xTXSs/Iz4vLGluc2lkZTp7ZGlyZWN0aXZlOmkoIkAiLHsiYXR0ci12YWx1ZSI6e3BhdHRlcm46Lz0oPzooInwnKSg/OlxcW1xzXFNdfCg/IVwxKVteXFxdKSpcMXxbXlxzJyI+PV0rKS8saW5zaWRlOntwdW5jdHVhdGlvbjovXj18XlsiJ118WyInXSQvfX0sa2V5d29yZDovXGJcdysoPz1ccykvLCJhdHRyLW5hbWUiOi9cYlx3Ky99KSxleHByZXNzaW9uOmkoIj0iLGMsZCksImNsYXNzLWZlYXR1cmUiOmkoIlxcKyIsYyxkKSxzdGFuZGFyZDppKCIiLGMsZCl9fX19YS5sYW5ndWFnZXNbInQ0LXRlbXBsYXRpbmciXT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sImNyZWF0ZVQ0Iix7dmFsdWU6bH0pfSkobil9cmV0dXJuIHZtfXZhciBUbSxhTjtmdW5jdGlvbiBlaigpe2lmKGFOKXJldHVybiBUbTthTj0xO3ZhciBlPXNiKCksbj0kbCgpO1RtPWEsYS5kaXNwbGF5TmFtZT0idDRDcyIsYS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGEoaSl7aS5yZWdpc3RlcihlKSxpLnJlZ2lzdGVyKG4pLGkubGFuZ3VhZ2VzLnQ0PWkubGFuZ3VhZ2VzWyJ0NC1jcyJdPWkubGFuZ3VhZ2VzWyJ0NC10ZW1wbGF0aW5nIl0uY3JlYXRlVDQoImNzaGFycCIpfXJldHVybiBUbX12YXIgeG0saU47ZnVuY3Rpb24gYmsoKXtpZihpTilyZXR1cm4geG07aU49MTt2YXIgZT1maygpO3htPW4sbi5kaXNwbGF5TmFtZT0idmJuZXQiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKGEpe2EucmVnaXN0ZXIoZSksYS5sYW5ndWFnZXMudmJuZXQ9YS5sYW5ndWFnZXMuZXh0ZW5kKCJiYXNpYyIse2NvbW1lbnQ6W3twYXR0ZXJuOi8oPzohfFJFTVxiKS4rL2ksaW5zaWRlOntrZXl3b3JkOi9eUkVNL2l9fSx7cGF0dGVybjovKF58W15cXDpdKScuKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxzdHJpbmc6e3BhdHRlcm46LyhefFteIl0pIig/OiIifFteIl0pKiIoPyEiKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGtleXdvcmQ6Lyg/OlxiKD86QURESEFORExFUnxBRERSRVNTT0Z8QUxJQVN8QU5EfEFOREFMU098QVN8QkVFUHxCTE9BRHxCT09MRUFOfEJTQVZFfEJZUkVGfEJZVEV8QllWQUx8Q0FMTCg/OiBBQlNPTFVURSk/fENBU0V8Q0FUQ0h8Q0JPT0x8Q0JZVEV8Q0NIQVJ8Q0RBVEV8Q0RCTHxDREVDfENIQUlOfENIQVJ8Q0hESVJ8Q0lOVHxDTEFTU3xDTEVBUnxDTE5HfENMT1NFfENMU3xDT0JKfENPTXxDT01NT058Q09OU1R8Q09OVElOVUV8Q1NCWVRFfENTSE9SVHxDU05HfENTVFJ8Q1RZUEV8Q1VJTlR8Q1VMTkd8Q1VTSE9SVHxEQVRBfERBVEV8REVDSU1BTHxERUNMQVJFfERFRig/OiBGTnwgU0VHfERCTHxJTlR8TE5HfFNOR3xTVFIpfERFRkFVTFR8REVMRUdBVEV8RElNfERJUkVDVENBU1R8RE98RE9VQkxFfEVMU0V8RUxTRUlGfEVORHxFTlVNfEVOVklST058RVJBU0V8RVJST1J8RVZFTlR8RVhJVHxGQUxTRXxGSUVMRHxGSUxFU3xGSU5BTExZfEZPUig/OiBFQUNIKT98RlJJRU5EfEZVTkNUSU9OfEdFVHxHRVRUWVBFfEdFVFhNTE5BTUVTUEFDRXxHTE9CQUx8R09TVUJ8R09UT3xIQU5ETEVTfElGfElNUExFTUVOVFN8SU1QT1JUU3xJTnxJTkhFUklUU3xJTlBVVHxJTlRFR0VSfElOVEVSRkFDRXxJT0NUTHxJU3xJU05PVHxLRVl8S0lMTHxMRVR8TElCfExJS0V8TElORSBJTlBVVHxMT0NBVEV8TE9DS3xMT05HfExPT1B8TFNFVHxNRXxNS0RJUnxNT0R8TU9EVUxFfE1VU1RJTkhFUklUfE1VU1RPVkVSUklERXxNWUJBU0V8TVlDTEFTU3xOQU1FfE5BTUVTUEFDRXxOQVJST1dJTkd8TkVXfE5FWFR8Tk9UfE5PVEhJTkd8Tk9USU5IRVJJVEFCTEV8Tk9UT1ZFUlJJREFCTEV8T0JKRUNUfE9GfE9GRnxPTig/OiBDT018IEVSUk9SfCBLRVl8IFRJTUVSKT98T1BFTnxPUEVSQVRPUnxPUFRJT04oPzogQkFTRSk/fE9QVElPTkFMfE9SfE9SRUxTRXxPVVR8T1ZFUkxPQURTfE9WRVJSSURBQkxFfE9WRVJSSURFU3xQQVJBTUFSUkFZfFBBUlRJQUx8UE9LRXxQUklWQVRFfFBST1BFUlRZfFBST1RFQ1RFRHxQVUJMSUN8UFVUfFJBSVNFRVZFTlR8UkVBRHxSRUFET05MWXxSRURJTXxSRU18UkVNT1ZFSEFORExFUnxSRVNUT1JFfFJFU1VNRXxSRVRVUk58Uk1ESVJ8UlNFVHxSVU58U0JZVEV8U0VMRUNUKD86IENBU0UpP3xTRVR8U0hBRE9XU3xTSEFSRUR8U0hFTEx8U0hPUlR8U0lOR0xFfFNMRUVQfFNUQVRJQ3xTVEVQfFNUT1B8U1RSSU5HfFNUUlVDVFVSRXxTVUJ8U1dBUHxTWU5DTE9DS3xTWVNURU18VEhFTnxUSFJPV3xUSU1FUnxUT3xUUk9GRnxUUk9OfFRSVUV8VFJZfFRSWUNBU1R8VFlQRXxUWVBFT0Z8VUlOVEVHRVJ8VUxPTkd8VU5MT0NLfFVOVElMfFVTSE9SVHxVU0lOR3xWSUVXIFBSSU5UfFdBSVR8V0VORHxXSEVOfFdISUxFfFdJREVOSU5HfFdJVEh8V0lUSEVWRU5UU3xXUklURXxXUklURU9OTFl8WE9SKXxcQig/OiNDT05TVHwjRUxTRXwjRUxTRUlGfCNFTkR8I0lGKSkoPzpcJHxcYikvaSxwdW5jdHVhdGlvbjovWyw7Oigpe31dL30pfXJldHVybiB4bX12YXIgQW0sb047ZnVuY3Rpb24gdGooKXtpZihvTilyZXR1cm4gQW07b049MTt2YXIgZT1zYigpLG49YmsoKTtBbT1hLGEuZGlzcGxheU5hbWU9InQ0VmIiLGEuYWxpYXNlcz1bXTtmdW5jdGlvbiBhKGkpe2kucmVnaXN0ZXIoZSksaS5yZWdpc3RlcihuKSxpLmxhbmd1YWdlc1sidDQtdmIiXT1pLmxhbmd1YWdlc1sidDQtdGVtcGxhdGluZyJdLmNyZWF0ZVQ0KCJ2Ym5ldCIpfXJldHVybiBBbX12YXIgX20sbE47ZnVuY3Rpb24geWsoKXtpZihsTilyZXR1cm4gX207bE49MSxfbT1lLGUuZGlzcGxheU5hbWU9InlhbWwiLGUuYWxpYXNlcz1bInltbCJdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPS9bKiZdW15cc1tcXXt9LF0rLyxsPS8hKD86PFtcd1wtJSM7Lz86QCY9KyQsLiF+KicoKVtcXV0rPnwoPzpbYS16QS1aXGQtXSohKT9bXHdcLSUjOy8/OkAmPSskLn4qJygpXSspPy8sdT0iKD86IitsLnNvdXJjZSsiKD86WyAJXSsiK2kuc291cmNlKyIpP3wiK2kuc291cmNlKyIoPzpbIAldKyIrbC5zb3VyY2UrIik/KSIsYz0vKD86W15cc1x4MDAtXHgwOFx4MGUtXHgxZiEiIyUmJyosXC06Pj9AW1xdYHt8fVx4N2YtXHg4NFx4ODYtXHg5Zlx1ZDgwMC1cdWRmZmZcdWZmZmVcdWZmZmZdfFs/Oi1dPFBMQUlOPikoPzpbIFx0XSooPzooPyFbIzpdKTxQTEFJTj58OjxQTEFJTj4pKSovLnNvdXJjZS5yZXBsYWNlKC88UExBSU4+L2csZnVuY3Rpb24oKXtyZXR1cm4vW15cc1x4MDAtXHgwOFx4MGUtXHgxZixbXF17fVx4N2YtXHg4NFx4ODYtXHg5Zlx1ZDgwMC1cdWRmZmZcdWZmZmVcdWZmZmZdLy5zb3VyY2V9KSxkPS8iKD86W14iXFxcclxuXXxcXC4pKiJ8Jyg/OlteJ1xcXHJcbl18XFwuKSonLy5zb3VyY2U7ZnVuY3Rpb24gZihtLGIpe2I9KGJ8fCIiKS5yZXBsYWNlKC9tL2csIiIpKyJtIjt2YXIgaD0vKFs6XC0sW3tdXHMqKD86XHM8PHByb3A+PlsgXHRdKyk/KSg/Ojw8dmFsdWU+PikoPz1bIFx0XSooPzokfCx8XF18XH18KD86W1xyXG5dXHMqKT8jKSkvLnNvdXJjZS5yZXBsYWNlKC88PHByb3A+Pi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHV9KS5yZXBsYWNlKC88PHZhbHVlPj4vZyxmdW5jdGlvbigpe3JldHVybiBtfSk7cmV0dXJuIFJlZ0V4cChoLGIpfWEubGFuZ3VhZ2VzLnlhbWw9e3NjYWxhcjp7cGF0dGVybjpSZWdFeHAoLyhbXC06XVxzKig/OlxzPDxwcm9wPj5bIFx0XSspP1t8Pl0pWyBcdF0qKD86KCg/OlxyP1xufFxyKVsgXHRdKylcU1teXHJcbl0qKD86XDJbXlxyXG5dKykqKS8uc291cmNlLnJlcGxhY2UoLzw8cHJvcD4+L2csZnVuY3Rpb24oKXtyZXR1cm4gdX0pKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmcifSxjb21tZW50Oi8jLiovLGtleTp7cGF0dGVybjpSZWdFeHAoLygoPzpefFs6XC0sW3tcclxuP10pWyBcdF0qKD86PDxwcm9wPj5bIFx0XSspPyk8PGtleT4+KD89XHMqOlxzKS8uc291cmNlLnJlcGxhY2UoLzw8cHJvcD4+L2csZnVuY3Rpb24oKXtyZXR1cm4gdX0pLnJlcGxhY2UoLzw8a2V5Pj4vZyxmdW5jdGlvbigpe3JldHVybiIoPzoiK2MrInwiK2QrIikifSkpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJhdHJ1bGUifSxkaXJlY3RpdmU6e3BhdHRlcm46LyheWyBcdF0qKSUuKy9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCJ9LGRhdGV0aW1lOntwYXR0ZXJuOmYoL1xkezR9LVxkXGQ/LVxkXGQ/KD86W3RUXXxbIFx0XSspXGRcZD86XGR7Mn06XGR7Mn0oPzpcLlxkKik/KD86WyBcdF0qKD86WnxbLStdXGRcZD8oPzo6XGR7Mn0pPykpP3xcZHs0fS1cZHsyfS1cZHsyfXxcZFxkPzpcZHsyfSg/OjpcZHsyfSg/OlwuXGQqKT8pPy8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIifSxib29sZWFuOntwYXR0ZXJuOmYoL2ZhbHNlfHRydWUvLnNvdXJjZSwiaSIpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCJ9LG51bGw6e3BhdHRlcm46ZigvbnVsbHx+Ly5zb3VyY2UsImkiKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJpbXBvcnRhbnQifSxzdHJpbmc6e3BhdHRlcm46ZihkKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sbnVtYmVyOntwYXR0ZXJuOmYoL1srLV0/KD86MHhbXGRhLWZdK3wwb1swLTddK3woPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OmVbKy1dP1xkKyk/fFwuaW5mfFwubmFuKS8uc291cmNlLCJpIiksbG9va2JlaGluZDohMH0sdGFnOmwsaW1wb3J0YW50OmkscHVuY3R1YXRpb246Ly0tLXxbOltcXXt9XC0sfD4/XXxcLlwuXC4vfSxhLmxhbmd1YWdlcy55bWw9YS5sYW5ndWFnZXMueWFtbH0pKG4pfXJldHVybiBfbX12YXIgUm0sc047ZnVuY3Rpb24gbmooKXtpZihzTilyZXR1cm4gUm07c049MTt2YXIgZT15aygpO1JtPW4sbi5kaXNwbGF5TmFtZT0idGFwIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihhKXthLnJlZ2lzdGVyKGUpLGEubGFuZ3VhZ2VzLnRhcD17ZmFpbDovbm90IG9rW14je1xuXHJdKi8scGFzczovb2tbXiN7XG5ccl0qLyxwcmFnbWE6L3ByYWdtYSBbKy1dW2Etel0rLyxiYWlsb3V0Oi9iYWlsIG91dCEuKi9pLHZlcnNpb246L1RBUCB2ZXJzaW9uIFxkKy9pLHBsYW46L1xiXGQrXC5cLlxkKyg/OiArIy4qKT8vLHN1YnRlc3Q6e3BhdHRlcm46LyMgU3VidGVzdCg/OjogLiopPy8sZ3JlZWR5OiEwfSxwdW5jdHVhdGlvbjovW3t9XS8sZGlyZWN0aXZlOi8jLiovLHlhbWxpc2g6e3BhdHRlcm46LyheWyBcdF0qKS0tLVtcc1xTXSo/W1xyXG5dWyBcdF0qXC5cLlwuJC9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmEubGFuZ3VhZ2VzLnlhbWwsYWxpYXM6Imxhbmd1YWdlLXlhbWwifX19cmV0dXJuIFJtfXZhciBObSx1TjtmdW5jdGlvbiByaigpe2lmKHVOKXJldHVybiBObTt1Tj0xLE5tPWUsZS5kaXNwbGF5TmFtZT0idGNsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy50Y2w9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSMuKi8sbG9va2JlaGluZDohMH0sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxcclxuXXxcXCg/OlxyXG58W1xzXFNdKSkqIi8sZ3JlZWR5OiEwfSx2YXJpYWJsZTpbe3BhdHRlcm46LyhcJCkoPzo6Oik/KD86W2EtekEtWjAtOV0rOjopKlx3Ky8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhcJClce1tefV0rXH0vLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXltcdCBdKnNldFsgXHRdKykoPzo6Oik/KD86W2EtekEtWjAtOV0rOjopKlx3Ky9tLGxvb2tiZWhpbmQ6ITB9XSxmdW5jdGlvbjp7cGF0dGVybjovKF5bXHQgXSpwcm9jWyBcdF0rKVxTKy9tLGxvb2tiZWhpbmQ6ITB9LGJ1aWx0aW46W3twYXR0ZXJuOi8oXltcdCBdKikoPzpicmVha3xjbGFzc3xjb250aW51ZXxlcnJvcnxldmFsfGV4aXR8Zm9yfGZvcmVhY2h8aWZ8cHJvY3xyZXR1cm58c3dpdGNofHdoaWxlKVxiL20sbG9va2JlaGluZDohMH0sL1xiKD86ZWxzZXxlbHNlaWYpXGIvXSxzY29wZTp7cGF0dGVybjovKF5bXHQgXSopKD86Z2xvYmFsfHVwdmFyfHZhcmlhYmxlKVxiL20sbG9va2JlaGluZDohMCxhbGlhczoiY29uc3RhbnQifSxrZXl3b3JkOntwYXR0ZXJuOi8oXltcdCBdKnxcWykoPzpTYWZlX0Jhc2V8VGNsfGFmdGVyfGFwcGVuZHxhcHBseXxhcnJheXxhdXRvXyg/OmV4ZWNva3xpbXBvcnR8bG9hZHxta2luZGV4fHF1YWxpZnl8cmVzZXQpfGF1dG9ta2luZGV4X29sZHxiZ2Vycm9yfGJpbmFyeXxjYXRjaHxjZHxjaGFufGNsb2NrfGNsb3NlfGNvbmNhdHxkZGV8ZGljdHxlbmNvZGluZ3xlb2Z8ZXhlY3xleHByfGZibG9ja2VkfGZjb25maWd1cmV8ZmNvcHl8ZmlsZSg/OmV2ZW50fG5hbWUpP3xmbHVzaHxnZXRzfGdsb2J8aGlzdG9yeXxodHRwfGluY3J8aW5mb3xpbnRlcnB8am9pbnxsYXBwZW5kfGxhc3NpZ258bGluZGV4fGxpbnNlcnR8bGlzdHxsbGVuZ3RofGxvYWR8bHJhbmdlfGxyZXBlYXR8bHJlcGxhY2V8bHJldmVyc2V8bHNlYXJjaHxsc2V0fGxzb3J0fG1hdGgoPzpmdW5jfG9wKXxtZW1vcnl8bXNnY2F0fG5hbWVzcGFjZXxvcGVufHBhY2thZ2V8cGFycmF5fHBpZHxwa2dfbWtJbmRleHxwbGF0Zm9ybXxwdXRzfHB3ZHxyZV9zeW50YXh8cmVhZHxyZWZjaGFufHJlZ2V4cHxyZWdpc3RyeXxyZWdzdWJ8cmVuYW1lfHNjYW58c2Vla3xzZXR8c29ja2V0fHNvdXJjZXxzcGxpdHxzdHJpbmd8c3Vic3R8dGNsKD86X2VuZE9mV29yZHxfZmluZExpYnJhcnl8c3RhcnRPZig/Ok5leHR8UHJldmlvdXMpV29yZHx0ZXN0fHZhcnN8d29yZEJyZWFrKD86QWZ0ZXJ8QmVmb3JlKSl8dGVsbHx0aW1lfHRtfHRyYWNlfHVua25vd258dW5sb2FkfHVuc2V0fHVwZGF0ZXx1cGxldmVsfHZ3YWl0KVxiL20sbG9va2JlaGluZDohMH0sb3BlcmF0b3I6LyE9P3xcKlwqP3w9PXwmJj98XHxcfD98PFs9PF0/fD5bPT5dP3xbLSt+XC8lP15dfFxiKD86ZXF8aW58bmV8bmkpXGIvLHB1bmN0dWF0aW9uOi9be30oKVxbXF1dL319cmV0dXJuIE5tfXZhciB3bSxjTjtmdW5jdGlvbiBhaigpe2lmKGNOKXJldHVybiB3bTtjTj0xLHdtPWUsZS5kaXNwbGF5TmFtZT0idGV4dGlsZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPS9cKFtefCgpXG5dK1wpfFxbW15cXVxuXStcXXxce1tefVxuXStcfS8uc291cmNlLGw9L1wpfFwoKD8hW158KClcbl0rXCkpLy5zb3VyY2U7ZnVuY3Rpb24gdShTLEUpe3JldHVybiBSZWdFeHAoUy5yZXBsYWNlKC88TU9EPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIig/OiIraSsiKSJ9KS5yZXBsYWNlKC88UEFSPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIig/OiIrbCsiKSJ9KSxFfHwiIil9dmFyIGM9e2Nzczp7cGF0dGVybjovXHtbXnt9XStcfS8saW5zaWRlOntyZXN0OmEubGFuZ3VhZ2VzLmNzc319LCJjbGFzcy1pZCI6e3BhdHRlcm46LyhcKClbXigpXSsoPz1cKSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0dHItdmFsdWUifSxsYW5nOntwYXR0ZXJuOi8oXFspW15cW1xdXSsoPz1cXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0dHItdmFsdWUifSxwdW5jdHVhdGlvbjovW1xcXC9dXGQrfFxTL30sZD1hLmxhbmd1YWdlcy50ZXh0aWxlPWEubGFuZ3VhZ2VzLmV4dGVuZCgibWFya3VwIix7cGhyYXNlOntwYXR0ZXJuOi8oXnxccnxcbilcU1tcc1xTXSo/KD89JHxccj9cblxyP1xufFxyXHIpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImJsb2NrLXRhZyI6e3BhdHRlcm46dSgvXlthLXpdXHcqKD86PE1PRD58PFBBUj58Wzw+PV0pKlwuLy5zb3VyY2UpLGluc2lkZTp7bW9kaWZpZXI6e3BhdHRlcm46dSgvKF5bYS16XVx3KikoPzo8TU9EPnw8UEFSPnxbPD49XSkrKD89XC4pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmN9LHRhZzovXlthLXpdXHcqLyxwdW5jdHVhdGlvbjovXC4kL319LGxpc3Q6e3BhdHRlcm46dSgvXlsqI10rPE1PRD4qXHMrXFMuKi8uc291cmNlLCJtIiksaW5zaWRlOnttb2RpZmllcjp7cGF0dGVybjp1KC8oXlsqI10rKTxNT0Q+Ky8uc291cmNlKSxsb29rYmVoaW5kOiEwLGluc2lkZTpjfSxwdW5jdHVhdGlvbjovXlsqI10rL319LHRhYmxlOntwYXR0ZXJuOnUoL14oPzooPzo8TU9EPnw8UEFSPnxbPD49Xn5dKStcLlxzKik/KD86XHwoPzooPzo8TU9EPnw8UEFSPnxbPD49Xn5fXXxbXFwvXVxkKykrXC58KD8hKD86PE1PRD58PFBBUj58Wzw+PV5+X118W1xcL11cZCspK1wuKSlbXnxdKikrXHwvLnNvdXJjZSwibSIpLGluc2lkZTp7bW9kaWZpZXI6e3BhdHRlcm46dSgvKF58XHwoPzpccj9cbnxccik/KSg/OjxNT0Q+fDxQQVI+fFs8Pj1efl9dfFtcXC9dXGQrKSsoPz1cLikvLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6Y30scHVuY3R1YXRpb246L1x8fF5cLi99fSxpbmxpbmU6e3BhdHRlcm46dSgvKF58W15hLXpBLVpcZF0pKFwqXCp8X198XD9cP3xbKl8lQCtcLV5+XSk8TU9EPiouKz9cMig/IVthLXpBLVpcZF0pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntib2xkOntwYXR0ZXJuOnUoLyheKFwqXCo/KTxNT0Q+KikuKz8oPz1cMikvLnNvdXJjZSksbG9va2JlaGluZDohMH0saXRhbGljOntwYXR0ZXJuOnUoLyheKF9fPyk8TU9EPiopLis/KD89XDIpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITB9LGNpdGU6e3BhdHRlcm46dSgvKF5cP1w/PE1PRD4qKS4rPyg/PVw/XD8pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyJ9LGNvZGU6e3BhdHRlcm46dSgvKF5APE1PRD4qKS4rPyg/PUApLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxpbnNlcnRlZDp7cGF0dGVybjp1KC8oXlwrPE1PRD4qKS4rPyg/PVwrKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxkZWxldGVkOntwYXR0ZXJuOnUoLyheLTxNT0Q+KikuKz8oPz0tKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxzcGFuOntwYXR0ZXJuOnUoLyheJTxNT0Q+KikuKz8oPz0lKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxtb2RpZmllcjp7cGF0dGVybjp1KC8oXlwqXCp8X198XD9cP3xbKl8lQCtcLV5+XSk8TU9EPisvLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6Y30scHVuY3R1YXRpb246L1sqXyU/QCtcLV5+XSsvfX0sImxpbmstcmVmIjp7cGF0dGVybjovXlxbW15cXV0rXF1cUyskL20saW5zaWRlOntzdHJpbmc6e3BhdHRlcm46LyheXFspW15cXV0rKD89XF0pLyxsb29rYmVoaW5kOiEwfSx1cmw6e3BhdHRlcm46LyheXF0pXFMrJC8sbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246L1tcW1xdXS99fSxsaW5rOntwYXR0ZXJuOnUoLyI8TU9EPipbXiJdKyI6Lis/KD89W15cdy9dPyg/OlxzfCQpKS8uc291cmNlKSxpbnNpZGU6e3RleHQ6e3BhdHRlcm46dSgvKF4iPE1PRD4qKVteIl0rKD89IikvLnNvdXJjZSksbG9va2JlaGluZDohMH0sbW9kaWZpZXI6e3BhdHRlcm46dSgvKF4iKTxNT0Q+Ky8uc291cmNlKSxsb29rYmVoaW5kOiEwLGluc2lkZTpjfSx1cmw6e3BhdHRlcm46Lyg6KS4rLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovWyI6XS99fSxpbWFnZTp7cGF0dGVybjp1KC8hKD86PE1PRD58PFBBUj58Wzw+PV0pKig/IVs8Pj1dKVteIVxzKCldKyg/OlwoW14pXStcKSk/ISg/OjouKz8oPz1bXlx3L10/KD86XHN8JCkpKT8vLnNvdXJjZSksaW5zaWRlOntzb3VyY2U6e3BhdHRlcm46dSgvKF4hKD86PE1PRD58PFBBUj58Wzw+PV0pKikoPyFbPD49XSlbXiFccygpXSsoPzpcKFteKV0rXCkpPyg/PSEpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InVybCJ9LG1vZGlmaWVyOntwYXR0ZXJuOnUoLyheISkoPzo8TU9EPnw8UEFSPnxbPD49XSkrLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmN9LHVybDp7cGF0dGVybjovKDopLisvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9bITpdL319LGZvb3Rub3RlOntwYXR0ZXJuOi9cYlxbXGQrXF0vLGFsaWFzOiJjb21tZW50IixpbnNpZGU6e3B1bmN0dWF0aW9uOi9cW3xcXS99fSxhY3JvbnltOntwYXR0ZXJuOi9cYltBLVpcZF0rXChbXildK1wpLyxpbnNpZGU6e2NvbW1lbnQ6e3BhdHRlcm46LyhcKClbXigpXSsoPz1cKSkvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9bKCldL319LG1hcms6e3BhdHRlcm46L1xiXCgoPzpDfFJ8VE0pXCkvLGFsaWFzOiJjb21tZW50IixpbnNpZGU6e3B1bmN0dWF0aW9uOi9bKCldL319fX19KSxmPWQucGhyYXNlLmluc2lkZSxtPXtpbmxpbmU6Zi5pbmxpbmUsbGluazpmLmxpbmssaW1hZ2U6Zi5pbWFnZSxmb290bm90ZTpmLmZvb3Rub3RlLGFjcm9ueW06Zi5hY3JvbnltLG1hcms6Zi5tYXJrfTtkLnRhZy5wYXR0ZXJuPS88XC8/KD8hXGQpW2EtejAtOV0rKD86XHMrW15ccz5cLz1dKyg/Oj0oPzooInwnKSg/OlxcW1xzXFNdfCg/IVwxKVteXFxdKSpcMXxbXlxzJyI+PV0rKSk/KSpccypcLz8+L2k7dmFyIGI9Zi5pbmxpbmUuaW5zaWRlO2IuYm9sZC5pbnNpZGU9bSxiLml0YWxpYy5pbnNpZGU9bSxiLmluc2VydGVkLmluc2lkZT1tLGIuZGVsZXRlZC5pbnNpZGU9bSxiLnNwYW4uaW5zaWRlPW07dmFyIGg9Zi50YWJsZS5pbnNpZGU7aC5pbmxpbmU9bS5pbmxpbmUsaC5saW5rPW0ubGluayxoLmltYWdlPW0uaW1hZ2UsaC5mb290bm90ZT1tLmZvb3Rub3RlLGguYWNyb255bT1tLmFjcm9ueW0saC5tYXJrPW0ubWFya30pKG4pfXJldHVybiB3bX12YXIga20sZE47ZnVuY3Rpb24gaWooKXtpZihkTilyZXR1cm4ga207ZE49MSxrbT1lLGUuZGlzcGxheU5hbWU9InRvbWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXt2YXIgaT0vKD86W1x3LV0rfCdbXidcblxyXSonfCIoPzpcXC58W15cXCJcclxuXSkqIikvLnNvdXJjZTtmdW5jdGlvbiBsKHUpe3JldHVybiB1LnJlcGxhY2UoL19fL2csZnVuY3Rpb24oKXtyZXR1cm4gaX0pfWEubGFuZ3VhZ2VzLnRvbWw9e2NvbW1lbnQ6e3BhdHRlcm46LyMuKi8sZ3JlZWR5OiEwfSx0YWJsZTp7cGF0dGVybjpSZWdFeHAobCgvKF5bXHQgXSpcW1xzKig/OlxbXHMqKT8pX18oPzpccypcLlxzKl9fKSooPz1ccypcXSkvLnNvdXJjZSksIm0iKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoiY2xhc3MtbmFtZSJ9LGtleTp7cGF0dGVybjpSZWdFeHAobCgvKF5bXHQgXSp8W3ssXVxzKilfXyg/OlxzKlwuXHMqX18pKig/PVxzKj0pLy5zb3VyY2UpLCJtIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6InByb3BlcnR5In0sc3RyaW5nOntwYXR0ZXJuOi8iIiIoPzpcXFtcc1xTXXxbXlxcXSkqPyIiInwnJydbXHNcU10qPycnJ3wnW14nXG5ccl0qJ3wiKD86XFwufFteXFwiXHJcbl0pKiIvLGdyZWVkeTohMH0sZGF0ZTpbe3BhdHRlcm46L1xiXGR7NH0tXGR7Mn0tXGR7Mn0oPzpbVFxzXVxkezJ9OlxkezJ9OlxkezJ9KD86XC5cZCspPyg/Olp8WystXVxkezJ9OlxkezJ9KT8pP1xiL2ksYWxpYXM6Im51bWJlciJ9LHtwYXR0ZXJuOi9cYlxkezJ9OlxkezJ9OlxkezJ9KD86XC5cZCspP1xiLyxhbGlhczoibnVtYmVyIn1dLG51bWJlcjovKD86XGIwKD86eFtcZGEtekEtWl0rKD86X1tcZGEtekEtWl0rKSp8b1swLTddKyg/Ol9bMC03XSspKnxiWzEwXSsoPzpfWzEwXSspKikpXGJ8Wy0rXT9cYlxkKyg/Ol9cZCspKig/OlwuXGQrKD86X1xkKykqKT8oPzpbZUVdWystXT9cZCsoPzpfXGQrKSopP1xifFstK10/XGIoPzppbmZ8bmFuKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLHB1bmN0dWF0aW9uOi9bLiw9W1xde31dL319KShuKX1yZXR1cm4ga219dmFyIENtLHBOO2Z1bmN0aW9uIG9qKCl7aWYocE4pcmV0dXJuIENtO3BOPTEsQ209ZSxlLmRpc3BsYXlOYW1lPSJ0cmVtb3IiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXthLmxhbmd1YWdlcy50cmVtb3I9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSg/OlwvXCpbXHNcU10qP1wqXC98KD86LS18XC9cL3wjKS4qKS8sbG9va2JlaGluZDohMH0sImludGVycG9sYXRlZC1zdHJpbmciOm51bGwsZXh0cmFjdG9yOntwYXR0ZXJuOi9cYlthLXpfXVx3Klx8KD86W15cclxuXFx8XXxcXCg/OlxyXG58W1xzXFNdKSkqXHwvaSxncmVlZHk6ITAsaW5zaWRlOntyZWdleDp7cGF0dGVybjovKF5yZSlcfFtcc1xTXSsvLGxvb2tiZWhpbmQ6ITB9LGZ1bmN0aW9uOi9eXHcrLyx2YWx1ZTovXHxbXHNcU10rL319LGlkZW50aWZpZXI6e3BhdHRlcm46L2BbXmBdKmAvLGdyZWVkeTohMH0sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqKD86Ojpccyo8fFwoKSlcYi8sa2V5d29yZDovXGIoPzphcmdzfGFzfGJ5fGNhc2V8Y29uZmlnfGNvbm5lY3R8Y29ubmVjdG9yfGNvbnN0fGNvcHl8Y3JlYXRlfGRlZmF1bHR8ZGVmaW5lfGRlcGxveXxkcm9wfGVhY2h8ZW1pdHxlbmR8ZXJhc2V8ZXZlbnR8Zmxvd3xmbnxmb3J8ZnJvbXxncm91cHxoYXZpbmd8aW5zZXJ0fGludG98aW50cmluc2ljfGxldHxsaW5rc3xtYXRjaHxtZXJnZXxtb2R8bW92ZXxvZnxvcGVyYXRvcnxwYXRjaHxwaXBlbGluZXxyZWN1cnxzY3JpcHR8c2VsZWN0fHNldHxzbGlkaW5nfHN0YXRlfHN0cmVhbXx0b3x0dW1ibGluZ3x1cGRhdGV8dXNlfHdoZW58d2hlcmV8d2luZG93fHdpdGgpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8bnVsbHx0cnVlKVxiL2ksbnVtYmVyOi9cYig/OjBiWzAxX10qfDB4WzAtOWEtZkEtRl9dKnxcZFtcZF9dKig/OlwuXGRbXGRfXSopPyg/OltFZV1bKy1dP1tcZF9dKyk/KVxiLywicGF0dGVybi1wdW5jdHVhdGlvbiI6e3BhdHRlcm46LyUoPz1bKHtbXSkvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LG9wZXJhdG9yOi9bLSsqXC8lfiFeXT0/fD1bPT5dP3wmWyY9XT98XHxbfD1dP3w8PD89P3w+Pj8+Pz0/fCg/OmFic2VudHxhbmR8bm90fG9yfHByZXNlbnR8eG9yKVxiLyxwdW5jdHVhdGlvbjovOjp8WztcW1xdKClce1x9LC46XS99O3ZhciBpPS8jXHsoPzpbXiJ7fV18XHtbXnt9XSpcfXwiKD86W14iXFxcclxuXXxcXCg/OlxyXG58W1xzXFNdKSkqIikqXH0vLnNvdXJjZTthLmxhbmd1YWdlcy50cmVtb3JbImludGVycG9sYXRlZC1zdHJpbmciXT17cGF0dGVybjpSZWdFeHAoLyhefFteXFxdKS8uc291cmNlKycoPzoiIiIoPzonKy9bXiJcXCNdfFxcW1xzXFNdfCIoPyEiIil8Iyg/IVx7KS8uc291cmNlKyJ8IitpKycpKiIiInwiKD86JysvW14iXFxcclxuI118XFwoPzpcclxufFtcc1xTXSl8Iyg/IVx7KS8uc291cmNlKyJ8IitpKycpKiIpJyksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOlJlZ0V4cChpKSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eI1x7fFx9JC8sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOmEubGFuZ3VhZ2VzLnRyZW1vcn19fSxzdHJpbmc6L1tcc1xTXSsvfX0sYS5sYW5ndWFnZXMudHJveT1hLmxhbmd1YWdlcy50cmVtb3IsYS5sYW5ndWFnZXMudHJpY2tsZT1hLmxhbmd1YWdlcy50cmVtb3J9KShuKX1yZXR1cm4gQ219dmFyIEltLGZOO2Z1bmN0aW9uIGxqKCl7aWYoZk4pcmV0dXJuIEltO2ZOPTE7dmFyIGU9bWsoKSxuPWliKCk7SW09YSxhLmRpc3BsYXlOYW1lPSJ0c3giLGEuYWxpYXNlcz1bXTtmdW5jdGlvbiBhKGkpe2kucmVnaXN0ZXIoZSksaS5yZWdpc3RlcihuKSwoZnVuY3Rpb24obCl7dmFyIHU9bC51dGlsLmNsb25lKGwubGFuZ3VhZ2VzLnR5cGVzY3JpcHQpO2wubGFuZ3VhZ2VzLnRzeD1sLmxhbmd1YWdlcy5leHRlbmQoImpzeCIsdSksZGVsZXRlIGwubGFuZ3VhZ2VzLnRzeC5wYXJhbWV0ZXIsZGVsZXRlIGwubGFuZ3VhZ2VzLnRzeFsibGl0ZXJhbC1wcm9wZXJ0eSJdO3ZhciBjPWwubGFuZ3VhZ2VzLnRzeC50YWc7Yy5wYXR0ZXJuPVJlZ0V4cCgvKF58W15cdyRdfCg/PTxcLykpLy5zb3VyY2UrIig/OiIrYy5wYXR0ZXJuLnNvdXJjZSsiKSIsYy5wYXR0ZXJuLmZsYWdzKSxjLmxvb2tiZWhpbmQ9ITB9KShpKX1yZXR1cm4gSW19dmFyIE9tLGdOO2Z1bmN0aW9uIHNqKCl7aWYoZ04pcmV0dXJuIE9tO2dOPTE7dmFyIGU9SHQoKTtPbT1uLG4uZGlzcGxheU5hbWU9InR0MiIsbi5hbGlhc2VzPVtdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSwoZnVuY3Rpb24oaSl7aS5sYW5ndWFnZXMudHQyPWkubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtjb21tZW50Oi8jLip8XFslI1tcc1xTXSo/JVxdLyxrZXl3b3JkOi9cYig/OkJMT0NLfENBTEx8Q0FTRXxDQVRDSHxDTEVBUnxERUJVR3xERUZBVUxUfEVMU0V8RUxTSUZ8RU5EfEZJTFRFUnxGSU5BTHxGT1JFQUNIfEdFVHxJRnxJTnxJTkNMVURFfElOU0VSVHxMQVNUfE1BQ1JPfE1FVEF8TkVYVHxQRVJMfFBST0NFU1N8UkFXUEVSTHxSRVRVUk58U0VUfFNUT1B8U1dJVENIfFRBR1N8VEhST1d8VFJZfFVOTEVTU3xVU0V8V0hJTEV8V1JBUFBFUilcYi8scHVuY3R1YXRpb246L1tbXF17fSwoKV0vfSksaS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJ0dDIiLCJudW1iZXIiLHtvcGVyYXRvcjovPVs+PV0/fCE9P3w8PT98Pj0/fCYmfFx8XHw/fFxiKD86YW5kfG5vdHxvcilcYi8sdmFyaWFibGU6e3BhdHRlcm46L1xiW2Etel1cdyooPzpccypcLlxzKig/OlxkK3xcJD9bYS16XVx3KikpKlxiL2l9fSksaS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJ0dDIiLCJrZXl3b3JkIix7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eKD86XFslfCUlKS0/fC0/JVxdJC8sYWxpYXM6InB1bmN0dWF0aW9uIn19KSxpLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInR0MiIsInN0cmluZyIseyJzaW5nbGUtcXVvdGVkLXN0cmluZyI6e3BhdHRlcm46LydbXlxcJ10qKD86XFxbXHNcU11bXlxcJ10qKSonLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyJ9LCJkb3VibGUtcXVvdGVkLXN0cmluZyI6e3BhdHRlcm46LyJbXlxcIl0qKD86XFxbXHNcU11bXlxcIl0qKSoiLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOnt2YXJpYWJsZTp7cGF0dGVybjovXCQoPzpbYS16XVx3Kig/OlwuKD86XGQrfFwkP1thLXpdXHcqKSkqKS9pfX19fSksZGVsZXRlIGkubGFuZ3VhZ2VzLnR0Mi5zdHJpbmcsaS5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24obCl7dmFyIHU9L1xbJVtcc1xTXSs/JVxdL2c7aS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMobCwidHQyIix1KX0pLGkuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24obCl7aS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMobCwidHQyIil9KX0pKGEpfXJldHVybiBPbX12YXIgTG0sbU47ZnVuY3Rpb24gdWooKXtpZihtTilyZXR1cm4gTG07bU49MTt2YXIgZT1IdCgpO0xtPW4sbi5kaXNwbGF5TmFtZT0idHdpZyIsbi5hbGlhc2VzPVtdO2Z1bmN0aW9uIG4oYSl7YS5yZWdpc3RlcihlKSxhLmxhbmd1YWdlcy50d2lnPXtjb21tZW50Oi9eXHsjW1xzXFNdKj8jXH0kLywidGFnLW5hbWUiOntwYXR0ZXJuOi8oXlx7JS0/XHMqKVx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LGRlbGltaXRlcjp7cGF0dGVybjovXlx7W3slXS0/fC0/WyV9XVx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sc3RyaW5nOntwYXR0ZXJuOi8oInwnKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eWyciXXxbJyJdJC99fSxrZXl3b3JkOi9cYig/OmV2ZW58aWZ8b2RkKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfG51bGx8dHJ1ZSlcYi8sbnVtYmVyOi9cYjB4W1xkQS1GYS1mXSt8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VlXVstK10/XGQrKT8vLG9wZXJhdG9yOlt7cGF0dGVybjovKFxzKSg/OmFuZHxiLWFuZHxiLW9yfGIteG9yfGVuZHMgd2l0aHxpbnxpc3xtYXRjaGVzfG5vdHxvcnxzYW1lIGFzfHN0YXJ0cyB3aXRoKSg/PVxzKS8sbG9va2JlaGluZDohMH0sL1s9PD5dPT98IT18XCpcKj98XC9cLz98XD86P3xbLSt+JXxdL10scHVuY3R1YXRpb246L1soKVxbXF17fTouLF0vfSxhLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihpKXtpZihpLmxhbmd1YWdlPT09InR3aWciKXt2YXIgbD0vXHsoPzojW1xzXFNdKj8jfCVbXHNcU10qPyV8XHtbXHNcU10qP1x9KVx9L2c7YS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMoaSwidHdpZyIsbCl9fSksYS5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihpKXthLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS50b2tlbml6ZVBsYWNlaG9sZGVycyhpLCJ0d2lnIil9KX1yZXR1cm4gTG19dmFyIERtLGhOO2Z1bmN0aW9uIGNqKCl7aWYoaE4pcmV0dXJuIERtO2hOPTEsRG09ZSxlLmRpc3BsYXlOYW1lPSJ0eXBvc2NyaXB0IixlLmFsaWFzZXM9WyJ0c2NvbmZpZyJdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPS9cYig/OkFDVHxBQ1RJRlNVQnxDQVJSQVl8Q0FTRXxDTEVBUkdJRnxDT0F8Q09BX0lOVHxDT05TVEFOVFN8Q09OVEVOVHxDVVJ8RURJVFBBTkVMfEVGRkVDVHxFWFR8RklMRXxGTFVJRFRFTVBMQVRFfEZPUk18RlJBTUV8RlJBTUVTRVR8R0lGQlVJTERFUnxHTUVOVXxHTUVOVV9GT0xET1VUfEdNRU5VX0xBWUVSU3xHUHxITUVOVXxIUlVMRVJ8SFRNTHxJRU5WfElGU1VCfElNQUdFfElNR01FTlV8SU1HTUVOVUlURU18SU1HVEVYVHxJTUdfUkVTT1VSQ0V8SU5DTFVERV9UWVBPU0NSSVBUfEpTTUVOVXxKU01FTlVJVEVNfExMTHxMT0FEX1JFR0lTVEVSfE5PfFBBR0V8UkVDT1JEU3xSRVNUT1JFX1JFR0lTVEVSfFRFTVBMQVRFfFRFWFR8VE1FTlV8VE1FTlVJVEVNfFRNRU5VX0xBWUVSU3xVU0VSfFVTRVJfSU5UfF9HSUZCVUlMREVSfGdsb2JhbHxnbG9iYWxTdHJpbmd8Z2xvYmFsVmFyKVxiLzthLmxhbmd1YWdlcy50eXBvc2NyaXB0PXtjb21tZW50Olt7cGF0dGVybjovKF58W15cXF0pXC9cKltcc1xTXSo/KD86XCpcL3wkKS8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteXFw6PSBcdF18KD86XnxbXj0gXHRdKVsgXHRdKylcL1wvLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W14iJ10pIy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLGZ1bmN0aW9uOlt7cGF0dGVybjovPElOQ0xVREVfVFlQT1NDUklQVDpccypzb3VyY2Vccyo9XHMqKD86IlteIlxyXG5dKiJ8J1teJ1xyXG5dKicpXHMqPi8saW5zaWRlOntzdHJpbmc6e3BhdHRlcm46LyJbXiJcclxuXSoifCdbXidcclxuXSonLyxpbnNpZGU6e2tleXdvcmQ6aX19LGtleXdvcmQ6e3BhdHRlcm46L0lOQ0xVREVfVFlQT1NDUklQVC99fX0se3BhdHRlcm46L0BpbXBvcnRccyooPzoiW14iXHJcbl0qInwnW14nXHJcbl0qJykvLGluc2lkZTp7c3RyaW5nOi8iW14iXHJcbl0qInwnW14nXHJcbl0qJy99fV0sc3RyaW5nOntwYXR0ZXJuOi9eKFtePV0qPVs8IF0/KSg/Oig/IVxdXG4pLikqLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ZnVuY3Rpb246L1x7XCQuKlx9LyxrZXl3b3JkOmksbnVtYmVyOi9eXGQrJC8scHVuY3R1YXRpb246L1ssfDpdL319LGtleXdvcmQ6aSxudW1iZXI6e3BhdHRlcm46L1xiXGQrXHMqWy57PV0vLGluc2lkZTp7b3BlcmF0b3I6L1suez1dL319LHRhZzp7cGF0dGVybjovXC4/Wy1cd1xcXStcLj8vLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LHB1bmN0dWF0aW9uOi9be31bXF07KCksLjp8XS8sb3BlcmF0b3I6L1s8Pl09P3xbIT1dPT89P3wtLT98XCtcKz98JiY/fFx8XHw/fFs/Ki9+XiVdL30sYS5sYW5ndWFnZXMudHNjb25maWc9YS5sYW5ndWFnZXMudHlwb3NjcmlwdH0pKG4pfXJldHVybiBEbX12YXIgTW0sYk47ZnVuY3Rpb24gZGooKXtpZihiTilyZXR1cm4gTW07Yk49MSxNbT1lLGUuZGlzcGxheU5hbWU9InVucmVhbHNjcmlwdCIsZS5hbGlhc2VzPVsidWMiLCJ1c2NyaXB0Il07ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy51bnJlYWxzY3JpcHQ9e2NvbW1lbnQ6L1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvLyxzdHJpbmc6e3BhdHRlcm46LyhbIiddKSg/OlxcKD86XHJcbnxbXHNcU10pfCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMH0sY2F0ZWdvcnk6e3BhdHRlcm46LyhcYig/Oig/OmF1dG9leHBhbmR8aGlkZXxzaG93KWNhdGVnb3JpZXN8dmFyKVxzKlwoKVteKCldKyg/PVwpKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6InByb3BlcnR5In0sbWV0YWRhdGE6e3BhdHRlcm46Lyhcd1xzKik8XHMqXHcrXHMqPVtePD58PVxyXG5dKyg/Olx8XHMqXHcrXHMqPVtePD58PVxyXG5dKykqPi8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntwcm9wZXJ0eTovXGJcdysoPz1ccyo9KS8sb3BlcmF0b3I6Lz0vLHB1bmN0dWF0aW9uOi9bPD58XS99fSxtYWNybzp7cGF0dGVybjovYFx3Ky8sYWxpYXM6InByb3BlcnR5In0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXGIoPzpjbGFzc3xlbnVtfGV4dGVuZHN8aW50ZXJmYWNlfHN0YXRlKD86XChcKSk/fHN0cnVjdHx3aXRoaW4pXHMrKVx3Ky8sbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzphYnN0cmFjdHxhY3RvcnxhcnJheXxhdXRvfGF1dG9leHBhbmRjYXRlZ29yaWVzfGJvb2x8YnJlYWt8Ynl0ZXxjYXNlfGNsYXNzfGNsYXNzZ3JvdXB8Y2xpZW50fGNvZXJjZXxjb2xsYXBzZWNhdGVnb3JpZXN8Y29uZmlnfGNvbnN0fGNvbnRpbnVlfGRlZmF1bHR8ZGVmYXVsdHByb3BlcnRpZXN8ZGVsZWdhdGV8ZGVwZW5kc29ufGRlcHJlY2F0ZWR8ZG98ZG9udGNvbGxhcHNlY2F0ZWdvcmllc3xlZGl0Y29uc3R8ZWRpdGlubGluZW5ld3xlbHNlfGVudW18ZXZlbnR8ZXhlY3xleHBvcnR8ZXh0ZW5kc3xmaW5hbHxmbG9hdHxmb3J8Zm9yY2VzY3JpcHRvcmRlcnxmb3JlYWNofGZ1bmN0aW9ufGdvdG98Z3VpZHxoaWRlY2F0ZWdvcmllc3xoaWRlZHJvcGRvd258aWZ8aWdub3Jlc3xpbXBsZW1lbnRzfGluaGVyaXRzfGlucHV0fGludHxpbnRlcmZhY2V8aXRlcmF0b3J8bGF0ZW50fGxvY2FsfG1hdGVyaWFsfG5hbWV8bmF0aXZlfG5hdGl2ZXJlcGxpY2F0aW9ufG5vZXhwb3J0fG5vbnRyYW5zaWVudHxub3RlZGl0aW5saW5lbmV3fG5vdHBsYWNlYWJsZXxvcGVyYXRvcnxvcHRpb25hbHxvdXR8cGF3bnxwZXJvYmplY3Rjb25maWd8cGVyb2JqZWN0bG9jYWxpemVkfHBsYWNlYWJsZXxwb3N0b3BlcmF0b3J8cHJlb3BlcmF0b3J8cHJpdmF0ZXxwcm90ZWN0ZWR8cmVsaWFibGV8cmVwbGljYXRpb258cmV0dXJufHNlcnZlcnxzaG93Y2F0ZWdvcmllc3xzaW11bGF0ZWR8c2luZ3VsYXJ8c3RhdGV8c3RhdGljfHN0cmluZ3xzdHJ1Y3R8c3RydWN0ZGVmYXVsdHxzdHJ1Y3RkZWZhdWx0cHJvcGVydGllc3xzd2l0Y2h8dGV4dHVyZXx0cmFuc2llbnR8dHJhdmVsfHVucmVsaWFibGV8dW50aWx8dmFyfHZlY3Rvcnx3aGlsZXx3aXRoaW4pXGIvLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVxzKlwoKS9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sbnVtYmVyOi9cYjB4W1xkYS1mXStcYnwoPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzplWystXT9cZCspPy9pLG9wZXJhdG9yOi8+Pnw8PHwtLXxcK1wrfFwqXCp8Wy0rKi9+IT08PiRAXT0/fCYmP3xcfFx8P3xcXlxeP3xbPzolXXxcYig/OkNsb2Nrd2lzZUZyb218Q3Jvc3N8RG90KVxiLyxwdW5jdHVhdGlvbjovWygpW1xde307LC5dL30sbi5sYW5ndWFnZXMudWM9bi5sYW5ndWFnZXMudXNjcmlwdD1uLmxhbmd1YWdlcy51bnJlYWxzY3JpcHR9cmV0dXJuIE1tfXZhciBVbSx5TjtmdW5jdGlvbiBwaigpe2lmKHlOKXJldHVybiBVbTt5Tj0xLFVtPWUsZS5kaXNwbGF5TmFtZT0idW9yYXpvciIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMudW9yYXpvcj17ImNvbW1lbnQtaGFzaCI6e3BhdHRlcm46LyMuKi8sYWxpYXM6ImNvbW1lbnQiLGdyZWVkeTohMH0sImNvbW1lbnQtc2xhc2giOntwYXR0ZXJuOi9cL1wvLiovLGFsaWFzOiJjb21tZW50IixncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8saW5zaWRlOntwdW5jdHVhdGlvbjovXlsnIl18WyciXSQvfSxncmVlZHk6ITB9LCJzb3VyY2UtbGF5ZXJzIjp7cGF0dGVybjovXGIoPzphcm1zfGJhY2twYWNrfGJsdWV8YnJhY2VsZXR8Y2FuY2VsfGNsZWFyfGNsb2FrfGNyaW1pbmFsfGVhcnJpbmdzfGVuZW15fGZhY2lhbGhhaXJ8ZnJpZW5kfGZyaWVuZGx5fGdsb3Zlc3xncmF5fGdyZXl8Z3JvdW5kfGhhaXJ8aGVhZHxpbm5lcmxlZ3N8aW5uZXJ0b3Jzb3xpbm5vY2VudHxsZWZ0aGFuZHxtaWRkbGV0b3Jzb3xtdXJkZXJlcnxuZWNrfG5vbmZyaWVuZGx5fG9uZWhhbmRlZHNlY29uZGFyeXxvdXRlcmxlZ3N8b3V0ZXJ0b3Jzb3xwYW50c3xyZWR8cmlnaHRoYW5kfHJpbmd8c2VsZnxzaGlydHxzaG9lc3x0YWxpc21hbnx3YWlzdClcYi9pLGFsaWFzOiJmdW5jdGlvbiJ9LCJzb3VyY2UtY29tbWFuZHMiOntwYXR0ZXJuOi9cYig/OmFsbGlhbmNlfGF0dGFja3xjYXN0fGNsZWFyYWxsfGNsZWFyaWdub3JlfGNsZWFyam91cm5hbHxjbGVhcmxpc3R8Y2xlYXJzeXNtc2d8Y3JlYXRlbGlzdHxjcmVhdGV0aW1lcnxkY2xpY2t8ZGNsaWNrdHlwZXxkY2xpY2t2YXJ8ZHJlc3N8ZHJlc3Njb25maWd8ZHJvcHxkcm9wcmVsbG9jfGVtb3RlfGdldGxhYmVsfGd1aWxkfGd1bXBjbG9zZXxndW1wcmVzcG9uc2V8aG90a2V5fGlnbm9yZXxsYXN0dGFyZ2V0fGxpZnR8bGlmdHR5cGV8bWVudXxtZW51cmVzcG9uc2V8bXNnfG9yZ3xvcmdhbml6ZXxvcmdhbml6ZXJ8b3ZlcmhlYWR8cGF1c2V8cG9wbGlzdHxwb3Rpb258cHJvbXB0cmVzcG9uc2V8cHVzaGxpc3R8cmVtb3ZlbGlzdHxyZW1vdmV0aW1lcnxyZW5hbWV8cmVzdG9ja3xzYXl8c2NhdnxzY2F2ZW5nZXJ8c2NyaXB0fHNldGFiaWxpdHl8c2V0bGFzdHRhcmdldHxzZXRza2lsbHxzZXR0aW1lcnxzZXR2YXJ8c3lzbXNnfHRhcmdldHx0YXJnZXRsb2N8dGFyZ2V0cmVsbG9jfHRhcmdldHR5cGV8dW5kcmVzc3x1bmlnbm9yZXx1bnNldHZhcnx1c2VvYmplY3R8dXNlb25jZXx1c2Vza2lsbHx1c2V0eXBlfHZpcnR1ZXx3YWl0fHdhaXRmb3JndW1wfHdhaXRmb3JtZW51fHdhaXRmb3Jwcm9tcHR8d2FpdGZvcnN0YXR8d2FpdGZvcnN5c21zZ3x3YWl0Zm9ydGFyZ2V0fHdhbGt8d2ZzeXNtc2d8d2Z0fHdoaXNwZXJ8eWVsbClcYi8sYWxpYXM6ImZ1bmN0aW9uIn0sInRhZy1uYW1lIjp7cGF0dGVybjovKF5ceyUtP1xzKilcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxkZWxpbWl0ZXI6e3BhdHRlcm46L15ce1t7JV0tP3wtP1slfV1cfSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LGZ1bmN0aW9uOi9cYig/OmF0bGlzdHxjbG9zZXxjbG9zZXN0fGNvdW50fGNvdW50ZXJ8Y291bnR0eXBlfGRlYWR8ZGV4fGRpZmZoaXRzfGRpZmZtYW5hfGRpZmZzdGFtfGRpZmZ3ZWlnaHR8ZmluZHxmaW5kYnVmZnxmaW5kZGVidWZmfGZpbmRsYXllcnxmaW5kdHlwZXxmaW5kdHlwZWxpc3R8Zm9sbG93ZXJzfGd1bXBleGlzdHN8aGlkZGVufGhpdHN8aHB8aHVlfGh1bWFufGh1bWFub2lkfGluZ3VtcHxpbmxpc3R8aW5zeXNtZXNzYWdlfGluc3lzbXNnfGludHxpbnZ1bHxsaGFuZGVtcHR5fGxpc3R8bGlzdGV4aXN0c3xtYW5hfG1heGhpdHN8bWF4aHB8bWF4bWFuYXxtYXhzdGFtfG1heHdlaWdodHxtb25zdGVyfG1vdW50ZWR8bmFtZXxuZXh0fG5vdG98cGFyYWx5emVkfHBvaXNvbmVkfHBvc2l0aW9ufHByZXZ8cHJldmlvdXN8cXVldWVkfHJhbmR8cmFuZG9tfHJoYW5kZW1wdHl8c2tpbGx8c3RhbXxzdHJ8dGFyZ2V0ZXhpc3RzfHRpbWVyfHRpbWVyZXhpc3RzfHZhcmV4aXN0fHdhcm1vZGV8d2VpZ2h0KVxiLyxrZXl3b3JkOi9cYig/OmFuZHxhc3xicmVha3xjb250aW51ZXxlbHNlfGVsc2VpZnxlbmRmb3J8ZW5kaWZ8ZW5kd2hpbGV8Zm9yfGlmfGxvb3B8bm90fG9yfHJlcGxheXxzdG9wfHdoaWxlKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfG51bGx8dHJ1ZSlcYi8sbnVtYmVyOi9cYjB4W1xkQS1GYS1mXSt8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VlXVstK10/XGQrKT8vLG9wZXJhdG9yOlt7cGF0dGVybjovKFxzKSg/OmFuZHxiLWFuZHxiLW9yfGIteG9yfGVuZHMgd2l0aHxpbnxpc3xtYXRjaGVzfG5vdHxvcnxzYW1lIGFzfHN0YXJ0cyB3aXRoKSg/PVxzKS8sbG9va2JlaGluZDohMH0sL1s9PD5dPT98IT18XCpcKj98XC9cLz98XD86P3xbLSt+JXxdL10scHVuY3R1YXRpb246L1soKVxbXF17fTouLF0vfX1yZXR1cm4gVW19dmFyIEZtLEVOO2Z1bmN0aW9uIGZqKCl7aWYoRU4pcmV0dXJuIEZtO0VOPTEsRm09ZSxlLmRpc3BsYXlOYW1lPSJ1cmkiLGUuYWxpYXNlcz1bInVybCJdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMudXJpPXtzY2hlbWU6e3BhdHRlcm46L15bYS16XVthLXowLTkrLi1dKjovaW0sZ3JlZWR5OiEwLGluc2lkZTp7InNjaGVtZS1kZWxpbWl0ZXIiOi86JC99fSxmcmFnbWVudDp7cGF0dGVybjovI1tcd1wtLn4hJCYnKCkqKyw7PSU6QC8/XSovLGluc2lkZTp7ImZyYWdtZW50LWRlbGltaXRlciI6L14jL319LHF1ZXJ5OntwYXR0ZXJuOi9cP1tcd1wtLn4hJCYnKCkqKyw7PSU6QC8/XSovLGluc2lkZTp7InF1ZXJ5LWRlbGltaXRlciI6e3BhdHRlcm46L15cPy8sZ3JlZWR5OiEwfSwicGFpci1kZWxpbWl0ZXIiOi9bJjtdLyxwYWlyOntwYXR0ZXJuOi9eW149XVtcc1xTXSovLGluc2lkZTp7a2V5Oi9eW149XSsvLHZhbHVlOntwYXR0ZXJuOi8oXj0pW1xzXFNdKy8sbG9va2JlaGluZDohMH19fX19LGF1dGhvcml0eTp7cGF0dGVybjpSZWdFeHAoL15cL1wvLy5zb3VyY2UrLyg/Oltcd1wtLn4hJCYnKCkqKyw7PSU6XSpAKT8vLnNvdXJjZSsoIig/OiIrL1xbKD86WzAtOWEtZkEtRjouXXsyLDQ4fXx2WzAtOWEtZkEtRl0rXC5bXHdcLS5+ISQmJygpKissOz1dKylcXS8uc291cmNlKyJ8IisvW1x3XC0ufiEkJicoKSorLDs9JV0qLy5zb3VyY2UrIikiKSsvKD86OlxkKik/Ly5zb3VyY2UsIm0iKSxpbnNpZGU6eyJhdXRob3JpdHktZGVsaW1pdGVyIjovXlwvXC8vLCJ1c2VyLWluZm8tc2VnbWVudCI6e3BhdHRlcm46L15bXHdcLS5+ISQmJygpKissOz0lOl0qQC8saW5zaWRlOnsidXNlci1pbmZvLWRlbGltaXRlciI6L0AkLywidXNlci1pbmZvIjovXltcd1wtLn4hJCYnKCkqKyw7PSU6XSsvfX0sInBvcnQtc2VnbWVudCI6e3BhdHRlcm46LzpcZCokLyxpbnNpZGU6eyJwb3J0LWRlbGltaXRlciI6L146Lyxwb3J0Oi9eXGQrL319LGhvc3Q6e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTp7ImlwLWxpdGVyYWwiOntwYXR0ZXJuOi9eXFtbXHNcU10rXF0kLyxpbnNpZGU6eyJpcC1saXRlcmFsLWRlbGltaXRlciI6L15cW3xcXSQvLCJpcHYtZnV0dXJlIjovXnZbXHNcU10rLywiaXB2Ni1hZGRyZXNzIjovXltcc1xTXSsvfX0sImlwdjQtYWRkcmVzcyI6L14oPzooPzpbMDMtOV1cZD98WzEyXVxkezAsMn0pXC4pezN9KD86WzAzLTldXGQ/fFsxMl1cZHswLDJ9KSQvfX19fSxwYXRoOntwYXR0ZXJuOi9eW1x3XC0ufiEkJicoKSorLDs9JTpAL10rL20saW5zaWRlOnsicGF0aC1zZXBhcmF0b3IiOi9cLy99fX0sbi5sYW5ndWFnZXMudXJsPW4ubGFuZ3VhZ2VzLnVyaX1yZXR1cm4gRm19dmFyIEJtLFNOO2Z1bmN0aW9uIGdqKCl7aWYoU04pcmV0dXJuIEJtO1NOPTEsQm09ZSxlLmRpc3BsYXlOYW1lPSJ2IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7dmFyIGk9e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTpudWxsfTthLmxhbmd1YWdlcy52PWEubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtzdHJpbmc6e3BhdHRlcm46L3I/KFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sYWxpYXM6InF1b3RlZC1zdHJpbmciLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46LygoPzpefFteXFxdKSg/OlxcezJ9KSopXCQoPzpce1tee31dKlx9fFx3Kyg/OlwuXHcrKD86XChbXlwoXCldKlwpKT98XFtbXlxbXF1dK1xdKSopLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImludGVycG9sYXRpb24tdmFyaWFibGUiOntwYXR0ZXJuOi9eXCRcd1tcc1xTXSokLyxhbGlhczoidmFyaWFibGUifSwiaW50ZXJwb2xhdGlvbi1wdW5jdHVhdGlvbiI6e3BhdHRlcm46L15cJFx7fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sImludGVycG9sYXRpb24tZXhwcmVzc2lvbiI6aX19fX0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXGIoPzplbnVtfGludGVyZmFjZXxzdHJ1Y3R8dHlwZSlccyspKD86Q1wuKT9cdysvLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6Lyg/OlxiKD86X19nbG9iYWx8YXN8YXNtfGFzc2VydHxhdG9taWN8YnJlYWt8Y2hhbnxjb25zdHxjb250aW51ZXxkZWZlcnxlbHNlfGVtYmVkfGVudW18Zm58Zm9yfGdvKD86dG8pP3xpZnxpbXBvcnR8aW58aW50ZXJmYWNlfGlzfGxvY2t8bWF0Y2h8bW9kdWxlfG11dHxub25lfG9yfHB1YnxyZXR1cm58cmxvY2t8c2VsZWN0fHNoYXJlZHxzaXplb2Z8c3RhdGljfHN0cnVjdHx0eXBlKD86b2YpP3x1bmlvbnx1bnNhZmUpfFwkKD86ZWxzZXxmb3J8aWYpfCMoPzpmbGFnfGluY2x1ZGUpKVxiLyxudW1iZXI6L1xiKD86MHhbYS1mXGRdKyg/Ol9bYS1mXGRdKykqfDBiWzAxXSsoPzpfWzAxXSspKnwwb1swLTddKyg/Ol9bMC03XSspKnxcZCsoPzpfXGQrKSooPzpcLlxkKyg/Ol9cZCspKik/KVxiL2ksb3BlcmF0b3I6L358XD98WypcLyVeIT1dPT98XCtbPStdP3wtWz0tXT98XHxbPXxdP3wmKD86PXwmfFxePT8pP3w+KD86Pj0/fD0pP3w8KD86PD0/fD18LSk/fDo9fFwuXC5cLj8vLGJ1aWx0aW46L1xiKD86YW55KD86X2Zsb2F0fF9pbnQpP3xib29sfGJ5dGUoPzpwdHIpP3xjaGFycHRyfGYoPzozMnw2NCl8aSg/Ojh8MTZ8NjR8MTI4fG50KXxydW5lfHNpemVfdHxzdHJpbmd8dSg/OjE2fDMyfDY0fDEyOCl8dm9pZHB0cilcYi99KSxpLmluc2lkZT1hLmxhbmd1YWdlcy52LGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgidiIsInN0cmluZyIse2NoYXI6e3BhdHRlcm46L2AoPzpcXGB8XFw/W15gXXsxLDJ9KWAvLGFsaWFzOiJydW5lIn19KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInYiLCJvcGVyYXRvciIse2F0dHJpYnV0ZTp7cGF0dGVybjovKF5bXHQgXSopXFsoPzpkZXByZWNhdGVkfGRpcmVjdF9hcnJheV9hY2Nlc3N8ZmxhZ3xpbmxpbmV8bGl2ZXxyZWZfb25seXx0eXBlZGVmfHVuc2FmZV9mbnx3aW5kb3dzX3N0ZGNhbGwpXF0vbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJhbm5vdGF0aW9uIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9bXFtcXV0vLGtleXdvcmQ6L1x3Ky99fSxnZW5lcmljOntwYXR0ZXJuOi88XHcrPig/PVxzKltcKVx7XSkvLGluc2lkZTp7cHVuY3R1YXRpb246L1s8Pl0vLCJjbGFzcy1uYW1lIjovXHcrL319fSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJ2IiwiZnVuY3Rpb24iLHsiZ2VuZXJpYy1mdW5jdGlvbiI6e3BhdHRlcm46L1xiXHcrXHMqPFx3Kz4oPz1cKCkvLGluc2lkZTp7ZnVuY3Rpb246L15cdysvLGdlbmVyaWM6e3BhdHRlcm46Lzxcdys+LyxpbnNpZGU6YS5sYW5ndWFnZXMudi5nZW5lcmljLmluc2lkZX19fX0pfSkobil9cmV0dXJuIEJtfXZhciBqbSx2TjtmdW5jdGlvbiBtaigpe2lmKHZOKXJldHVybiBqbTt2Tj0xLGptPWUsZS5kaXNwbGF5TmFtZT0idmFsYSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMudmFsYT1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7ImNsYXNzLW5hbWUiOlt7cGF0dGVybjovXGJbQS1aXVx3Kig/OlwuXHcrKSpcYig/PSg/Olw/XHMrfFwqP1xzK1wqPylcdykvLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LHtwYXR0ZXJuOi8oXFspW0EtWl1cdyooPzpcLlx3KykqXGIvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0se3BhdHRlcm46LyhcYig/OmNsYXNzfGludGVyZmFjZSlccytbQS1aXVx3Kig/OlwuXHcrKSpccyo6XHMqKVtBLVpdXHcqKD86XC5cdyspKlxiLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LHtwYXR0ZXJuOi8oKD86XGIoPzpjbGFzc3xlbnVtfGludGVyZmFjZXxuZXd8c3RydWN0KVxzKyl8KD86Y2F0Y2hccytcKCkpW0EtWl1cdyooPzpcLlx3KykqXGIvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX1dLGtleXdvcmQ6L1xiKD86YWJzdHJhY3R8YXN8YXNzZXJ0fGFzeW5jfGJhc2V8Ym9vbHxicmVha3xjYXNlfGNhdGNofGNoYXJ8Y2xhc3N8Y29uc3R8Y29uc3RydWN0fGNvbnRpbnVlfGRlZmF1bHR8ZGVsZWdhdGV8ZGVsZXRlfGRvfGRvdWJsZXxkeW5hbWljfGVsc2V8ZW5zdXJlc3xlbnVtfGVycm9yZG9tYWlufGV4dGVybnxmaW5hbGx5fGZsb2F0fGZvcnxmb3JlYWNofGdldHxpZnxpbnxpbmxpbmV8aW50fGludDE2fGludDMyfGludDY0fGludDh8aW50ZXJmYWNlfGludGVybmFsfGlzfGxvY2t8bG9uZ3xuYW1lc3BhY2V8bmV3fG51bGx8b3V0fG92ZXJyaWRlfG93bmVkfHBhcmFtc3xwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmVmfHJlcXVpcmVzfHJldHVybnxzZXR8c2hvcnR8c2lnbmFsfHNpemVvZnxzaXplX3R8c3NpemVfdHxzdGF0aWN8c3RyaW5nfHN0cnVjdHxzd2l0Y2h8dGhpc3x0aHJvd3x0aHJvd3N8dHJ5fHR5cGVvZnx1Y2hhcnx1aW50fHVpbnQxNnx1aW50MzJ8dWludDY0fHVpbnQ4fHVsb25nfHVuaWNoYXJ8dW5vd25lZHx1c2hvcnR8dXNpbmd8dmFsdWV8dmFyfHZpcnR1YWx8dm9pZHx2b2xhdGlsZXx3ZWFrfHdoaWxlfHlpZWxkKVxiL2ksZnVuY3Rpb246L1xiXHcrKD89XHMqXCgpLyxudW1iZXI6Lyg/OlxiMHhbXGRhLWZdK1xifCg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/KSg/OmZ8dT9sPyk/L2ksb3BlcmF0b3I6L1wrXCt8LS18JiZ8XHxcfHw8PD0/fD4+PT98PT58LT58fnxbK1wtKlwvJSZefD0hPD5dPT98XD9cPz98XC5cLlwuLyxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS8sY29uc3RhbnQ6L1xiW0EtWjAtOV9dK1xiL30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgidmFsYSIsInN0cmluZyIseyJyYXctc3RyaW5nIjp7cGF0dGVybjovIiIiW1xzXFNdKj8iIiIvLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIn0sInRlbXBsYXRlLXN0cmluZyI6e3BhdHRlcm46L0AiW1xzXFNdKj8iLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi9cJCg/OlwoW14pXSpcKXxbYS16QS1aXVx3KikvLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eXCRcKD98XCkkLyxhbGlhczoicHVuY3R1YXRpb24ifSxyZXN0Om4ubGFuZ3VhZ2VzLnZhbGF9fSxzdHJpbmc6L1tcc1xTXSsvfX19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInZhbGEiLCJrZXl3b3JkIix7cmVnZXg6e3BhdHRlcm46L1wvKD86XFsoPzpbXlxdXFxcclxuXXxcXC4pKlxdfFxcLnxbXi9cXFxbXHJcbl0pK1wvW2ltc3hdezAsNH0oPz1ccyooPzokfFtcclxuLC47fSlcXV0pKS8sZ3JlZWR5OiEwLGluc2lkZTp7InJlZ2V4LXNvdXJjZSI6e3BhdHRlcm46L14oXC8pW1xzXFNdKyg/PVwvW2Etel0qJCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Imxhbmd1YWdlLXJlZ2V4IixpbnNpZGU6bi5sYW5ndWFnZXMucmVnZXh9LCJyZWdleC1kZWxpbWl0ZXIiOi9eXC8vLCJyZWdleC1mbGFncyI6L15bYS16XSskL319fSl9cmV0dXJuIGptfXZhciB6bSxUTjtmdW5jdGlvbiBoaigpe2lmKFROKXJldHVybiB6bTtUTj0xLHptPWUsZS5kaXNwbGF5TmFtZT0idmVsb2NpdHkiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4peyhmdW5jdGlvbihhKXthLmxhbmd1YWdlcy52ZWxvY2l0eT1hLmxhbmd1YWdlcy5leHRlbmQoIm1hcmt1cCIse30pO3ZhciBpPXt2YXJpYWJsZTp7cGF0dGVybjovKF58W15cXF0oPzpcXFxcKSopXCQhPyg/OlthLXpdW1x3LV0qKD86XChbXildKlwpKT8oPzpcLlthLXpdW1x3LV0qKD86XChbXildKlwpKT98XFtbXlxdXStcXSkqfFx7W159XStcfSkvaSxsb29rYmVoaW5kOiEwLGluc2lkZTp7fX0sc3RyaW5nOntwYXR0ZXJuOi8iW14iXSoifCdbXiddKicvLGdyZWVkeTohMH0sbnVtYmVyOi9cYlxkK1xiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG9wZXJhdG9yOi9bPSE8Pl09P3xbKyovJS1dfCYmfFx8XHx8XC5cLnxcYig/OmVxfGdbZXRdfGxbZXRdfG4oPzplfG90KSlcYi8scHVuY3R1YXRpb246L1soKXt9W1xdOiwuXS99O2kudmFyaWFibGUuaW5zaWRlPXtzdHJpbmc6aS5zdHJpbmcsZnVuY3Rpb246e3BhdHRlcm46LyhbXlx3LV0pW2Etel1bXHctXSooPz1cKCkvLGxvb2tiZWhpbmQ6ITB9LG51bWJlcjppLm51bWJlcixib29sZWFuOmkuYm9vbGVhbixwdW5jdHVhdGlvbjppLnB1bmN0dWF0aW9ufSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInZlbG9jaXR5IiwiY29tbWVudCIse3VucGFyc2VkOntwYXR0ZXJuOi8oXnxbXlxcXSkjXFtcW1tcc1xTXSo/XF1cXSMvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L14jXFtcW3xcXVxdIyQvfX0sInZlbG9jaXR5LWNvbW1lbnQiOlt7cGF0dGVybjovKF58W15cXF0pI1wqW1xzXFNdKj9cKiMvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJjb21tZW50In0se3BhdHRlcm46LyhefFteXFxdKSMjLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJjb21tZW50In1dLGRpcmVjdGl2ZTp7cGF0dGVybjovKF58W15cXF0oPzpcXFxcKSopI0A/KD86W2Etel1bXHctXSp8XHtbYS16XVtcdy1dKlx9KSg/OlxzKlwoKD86W14oKV18XChbXigpXSpcKSkqXCkpPy9pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOntwYXR0ZXJuOi9eI0A/KD86W2Etel1bXHctXSp8XHtbYS16XVtcdy1dKlx9KXxcYmluXGIvLGluc2lkZTp7cHVuY3R1YXRpb246L1t7fV0vfX0scmVzdDppfX0sdmFyaWFibGU6aS52YXJpYWJsZX0pLGEubGFuZ3VhZ2VzLnZlbG9jaXR5LnRhZy5pbnNpZGVbImF0dHItdmFsdWUiXS5pbnNpZGUucmVzdD1hLmxhbmd1YWdlcy52ZWxvY2l0eX0pKG4pfXJldHVybiB6bX12YXIgcW0seE47ZnVuY3Rpb24gYmooKXtpZih4TilyZXR1cm4gcW07eE49MSxxbT1lLGUuZGlzcGxheU5hbWU9InZlcmlsb2ciLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLnZlcmlsb2c9e2NvbW1lbnQ6e3BhdHRlcm46L1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OlxcKD86XHJcbnxbXHNcU10pfFteIlxcXHJcbl0pKiIvLGdyZWVkeTohMH0sImtlcm5lbC1mdW5jdGlvbiI6e3BhdHRlcm46L1xCXCRcdytcYi8sYWxpYXM6InByb3BlcnR5In0sY29uc3RhbnQ6L1xCYFx3K1xiLyxmdW5jdGlvbjovXGJcdysoPz1cKCkvLGtleXdvcmQ6L1xiKD86YWxpYXN8YW5kfGFzc2VydHxhc3NpZ258YXNzdW1lfGF1dG9tYXRpY3xiZWZvcmV8YmVnaW58YmluZHxiaW5zfGJpbnNvZnxiaXR8YnJlYWt8YnVmfGJ1ZmlmMHxidWZpZjF8Ynl0ZXxjYXNlfGNhc2V4fGNhc2V6fGNlbGx8Y2hhbmRsZXxjbGFzc3xjbG9ja2luZ3xjbW9zfGNvbmZpZ3xjb25zdHxjb25zdHJhaW50fGNvbnRleHR8Y29udGludWV8Y292ZXJ8Y292ZXJncm91cHxjb3ZlcnBvaW50fGNyb3NzfGRlYXNzaWdufGRlZmF1bHR8ZGVmcGFyYW18ZGVzaWdufGRpc2FibGV8ZGlzdHxkb3xlZGdlfGVsc2V8ZW5kfGVuZGNhc2V8ZW5kY2xhc3N8ZW5kY2xvY2tpbmd8ZW5kY29uZmlnfGVuZGZ1bmN0aW9ufGVuZGdlbmVyYXRlfGVuZGdyb3VwfGVuZGludGVyZmFjZXxlbmRtb2R1bGV8ZW5kcGFja2FnZXxlbmRwcmltaXRpdmV8ZW5kcHJvZ3JhbXxlbmRwcm9wZXJ0eXxlbmRzZXF1ZW5jZXxlbmRzcGVjaWZ5fGVuZHRhYmxlfGVuZHRhc2t8ZW51bXxldmVudHxleHBlY3R8ZXhwb3J0fGV4dGVuZHN8ZXh0ZXJufGZpbmFsfGZpcnN0X21hdGNofGZvcnxmb3JjZXxmb3JlYWNofGZvcmV2ZXJ8Zm9ya3xmb3Jram9pbnxmdW5jdGlvbnxnZW5lcmF0ZXxnZW52YXJ8aGlnaHowfGhpZ2h6MXxpZnxpZmZ8aWZub25lfGlnbm9yZV9iaW5zfGlsbGVnYWxfYmluc3xpbXBvcnR8aW5jZGlyfGluY2x1ZGV8aW5pdGlhbHxpbm91dHxpbnB1dHxpbnNpZGV8aW5zdGFuY2V8aW50fGludGVnZXJ8aW50ZXJmYWNlfGludGVyc2VjdHxqb2lufGpvaW5fYW55fGpvaW5fbm9uZXxsYXJnZXxsaWJsaXN0fGxpYnJhcnl8bG9jYWx8bG9jYWxwYXJhbXxsb2dpY3xsb25naW50fG1hY3JvbW9kdWxlfG1hdGNoZXN8bWVkaXVtfG1vZHBvcnR8bW9kdWxlfG5hbmR8bmVnZWRnZXxuZXd8bm1vc3xub3J8bm9zaG93Y2FuY2VsbGVkfG5vdHxub3RpZjB8bm90aWYxfG51bGx8b3J8b3V0cHV0fHBhY2thZ2V8cGFja2VkfHBhcmFtZXRlcnxwbW9zfHBvc2VkZ2V8cHJpbWl0aXZlfHByaW9yaXR5fHByb2dyYW18cHJvcGVydHl8cHJvdGVjdGVkfHB1bGwwfHB1bGwxfHB1bGxkb3dufHB1bGx1cHxwdWxzZXN0eWxlX29uZGV0ZWN0fHB1bHNlc3R5bGVfb25ldmVudHxwdXJlfHJhbmR8cmFuZGN8cmFuZGNhc2V8cmFuZHNlcXVlbmNlfHJjbW9zfHJlYWx8cmVhbHRpbWV8cmVmfHJlZ3xyZWxlYXNlfHJlcGVhdHxyZXR1cm58cm5tb3N8cnBtb3N8cnRyYW58cnRyYW5pZjB8cnRyYW5pZjF8c2NhbGFyZWR8c2VxdWVuY2V8c2hvcnRpbnR8c2hvcnRyZWFsfHNob3djYW5jZWxsZWR8c2lnbmVkfHNtYWxsfHNvbHZlfHNwZWNpZnl8c3BlY3BhcmFtfHN0YXRpY3xzdHJpbmd8c3Ryb25nMHxzdHJvbmcxfHN0cnVjdHxzdXBlcnxzdXBwbHkwfHN1cHBseTF8dGFibGV8dGFnZ2VkfHRhc2t8dGhpc3x0aHJvdWdob3V0fHRpbWV8dGltZXByZWNpc2lvbnx0aW1ldW5pdHx0cmFufHRyYW5pZjB8dHJhbmlmMXx0cml8dHJpMHx0cmkxfHRyaWFuZHx0cmlvcnx0cmlyZWd8dHlwZXx0eXBlZGVmfHVuaW9ufHVuaXF1ZXx1bnNpZ25lZHx1c2V8dXdpcmV8dmFyfHZlY3RvcmVkfHZpcnR1YWx8dm9pZHx3YWl0fHdhaXRfb3JkZXJ8d2FuZHx3ZWFrMHx3ZWFrMXx3aGlsZXx3aWxkY2FyZHx3aXJlfHdpdGh8d2l0aGlufHdvcnx4bm9yfHhvcilcYi8saW1wb3J0YW50Oi9cYig/OmFsd2F5c3xhbHdheXNfY29tYnxhbHdheXNfZmZ8YWx3YXlzX2xhdGNoKVxiKD86ICpAKT8vLG51bWJlcjovXEIjIz9cZCt8KD86XGJcZCspPydbb2RiaF0gP1tcZGEtZnp4Xz9dK3xcYig/OlxkKlsuX10pP1xkKyg/OmVbLStdP1xkKyk/L2ksb3BlcmF0b3I6L1stK3t9Xn4lKlwvPz0hPD4mfF0rLyxwdW5jdHVhdGlvbjovW1tcXTsoKSwuOl0vfX1yZXR1cm4gcW19dmFyIFBtLEFOO2Z1bmN0aW9uIHlqKCl7aWYoQU4pcmV0dXJuIFBtO0FOPTEsUG09ZSxlLmRpc3BsYXlOYW1lPSJ2aGRsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy52aGRsPXtjb21tZW50Oi8tLS4rLywidmhkbC12ZWN0b3JzIjp7cGF0dGVybjovXGJbb3hiXSJbXGRhLWZfXSsifCJbMDF1eHp3bGgtXSsiL2ksYWxpYXM6Im51bWJlciJ9LCJxdW90ZWQtZnVuY3Rpb24iOntwYXR0ZXJuOi8iXFMrPyIoPz1cKCkvLGFsaWFzOiJmdW5jdGlvbiJ9LHN0cmluZzovIig/OlteXFwiXHJcbl18XFwoPzpcclxufFtcc1xTXSkpKiIvLGNvbnN0YW50Oi9cYig/OmxpYnJhcnl8dXNlKVxiL2ksa2V5d29yZDovXGIoPzonYWN0aXZlfCdhc2NlbmRpbmd8J2Jhc2V8J2RlbGF5ZWR8J2RyaXZpbmd8J2RyaXZpbmdfdmFsdWV8J2V2ZW50fCdoaWdofCdpbWFnZXwnaW5zdGFuY2VfbmFtZXwnbGFzdF9hY3RpdmV8J2xhc3RfZXZlbnR8J2xhc3RfdmFsdWV8J2xlZnR8J2xlZnRvZnwnbGVuZ3RofCdsb3d8J3BhdGhfbmFtZXwncG9zfCdwcmVkfCdxdWlldHwncmFuZ2V8J3JldmVyc2VfcmFuZ2V8J3JpZ2h0fCdyaWdodG9mfCdzaW1wbGVfbmFtZXwnc3RhYmxlfCdzdWNjfCd0cmFuc2FjdGlvbnwndmFsfCd2YWx1ZXxhY2Nlc3N8YWZ0ZXJ8YWxpYXN8YWxsfGFyY2hpdGVjdHVyZXxhcnJheXxhc3NlcnR8YXR0cmlidXRlfGJlZ2lufGJsb2NrfGJvZHl8YnVmZmVyfGJ1c3xjYXNlfGNvbXBvbmVudHxjb25maWd1cmF0aW9ufGNvbnN0YW50fGRpc2Nvbm5lY3R8ZG93bnRvfGVsc2V8ZWxzaWZ8ZW5kfGVudGl0eXxleGl0fGZpbGV8Zm9yfGZ1bmN0aW9ufGdlbmVyYXRlfGdlbmVyaWN8Z3JvdXB8Z3VhcmRlZHxpZnxpbXB1cmV8aW58aW5lcnRpYWx8aW5vdXR8aXN8bGFiZWx8bGlicmFyeXxsaW5rYWdlfGxpdGVyYWx8bG9vcHxtYXB8bmV3fG5leHR8bnVsbHxvZnxvbnxvcGVufG90aGVyc3xvdXR8cGFja2FnZXxwb3J0fHBvc3Rwb25lZHxwcm9jZWR1cmV8cHJvY2Vzc3xwdXJlfHJhbmdlfHJlY29yZHxyZWdpc3RlcnxyZWplY3R8cmVwb3J0fHJldHVybnxzZWxlY3R8c2V2ZXJpdHl8c2hhcmVkfHNpZ25hbHxzdWJ0eXBlfHRoZW58dG98dHJhbnNwb3J0fHR5cGV8dW5hZmZlY3RlZHx1bml0c3x1bnRpbHx1c2V8dmFyaWFibGV8d2FpdHx3aGVufHdoaWxlfHdpdGgpXGIvaSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvaSxmdW5jdGlvbjovXHcrKD89XCgpLyxudW1iZXI6LydbMDF1eHp3bGgtXSd8XGIoPzpcZCsjW1xkYS1mXy5dKyN8XGRbXGRfLl0qKSg/OmVbLStdP1xkKyk/L2ksb3BlcmF0b3I6L1s8Pl09P3w6PXxbLSsqLyY9XXxcYig/OmFic3xhbmR8bW9kfG5hbmR8bm9yfG5vdHxvcnxyZW18cm9sfHJvcnxzbGF8c2xsfHNyYXxzcmx8eG5vcnx4b3IpXGIvaSxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS99fXJldHVybiBQbX12YXIgR20sX047ZnVuY3Rpb24gRWooKXtpZihfTilyZXR1cm4gR207X049MSxHbT1lLGUuZGlzcGxheU5hbWU9InZpbSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMudmltPXtzdHJpbmc6LyIoPzpbXiJcXFxyXG5dfFxcLikqInwnKD86W14nXHJcbl18JycpKicvLGNvbW1lbnQ6LyIuKi8sZnVuY3Rpb246L1xiXHcrKD89XCgpLyxrZXl3b3JkOi9cYig/Ok58TmV4dHxQfFByaW50fFh8WE1MZW50fFhNTG5zfGFifGFiYnJldmlhdGV8YWJjfGFiY2xlYXJ8YWJvfGFib3ZlbGVmdHxhbHxhbGx8YXJ8YXJnYXxhcmdhZGR8YXJnZHxhcmdkZWxldGV8YXJnZG98YXJnZXxhcmdlZGl0fGFyZ2d8YXJnZ2xvYmFsfGFyZ2x8YXJnbG9jYWx8YXJnc3xhcmd1fGFyZ3VtZW50fGFzfGFzY2lpfGJ8Yk58Yk5leHR8YmF8YmFkfGJhZGR8YmFsbHxiZHxiZGVsZXRlfGJlfGJlbHxiZWxvd3JpZ2h0fGJmfGJmaXJzdHxibHxibGFzdHxibXxibW9kaWZpZWR8Ym58Ym5leHR8Ym98Ym90cmlnaHR8YnB8YnByZXZpb3VzfGJyfGJyZWF8YnJlYWt8YnJlYWthfGJyZWFrYWRkfGJyZWFrZHxicmVha2RlbHxicmVha2x8YnJlYWtsaXN0fGJyZXdpbmR8YnJvfGJyb3dzZXxidWZkb3xidWZmZXJ8YnVmZmVyc3xidW58YnVubG9hZHxid3xid2lwZW91dHxjfGNOfGNOZXh0fGNOZmNOZmlsZXxjYXxjYWJicmV2fGNhYmN8Y2FiY2xlYXJ8Y2FkfGNhZGRifGNhZGRidWZmZXJ8Y2FkZGV4cHJ8Y2FkZGZ8Y2FkZGZpbGV8Y2FsfGNhbGx8Y2F0fGNhdGNofGNifGNidWZmZXJ8Y2N8Y2NsfGNjbG9zZXxjZHxjZXxjZW50ZXJ8Y2V4fGNleHByfGNmfGNmaWxlfGNmaXJ8Y2ZpcnN0fGNnfGNnZXRifGNnZXRidWZmZXJ8Y2dldGV8Y2dldGV4cHJ8Y2dldGZpbGV8Y2hhbmdlfGNoYW5nZXN8Y2hkfGNoZGlyfGNoZXxjaGVja3BhdGh8Y2hlY2t0fGNoZWNrdGltZXxjbHxjbGF8Y2xhc3R8Y2xpc3R8Y2xvfGNsb3NlfGNtYXBjfGNtYXBjbGVhcnxjbnxjbmV3fGNuZXdlcnxjbmV4dHxjbmZ8Y25maWxlfGNub3JlYXxjbm9yZWFiYnJldnxjb3xjb2x8Y29sZGVyfGNvbG98Y29sb3JzY2hlbWV8Y29tY3xjb21jbGVhcnxjb21wfGNvbXBpbGVyfGNvbnxjb25mfGNvbmZpcm18Y29udGludWV8Y29wZXxjb3Blbnxjb3B5fGNwfGNwZnxjcGZpbGV8Y3ByZXZpb3VzfGNxfGNxdWl0fGNyfGNyZXdpbmR8Y3V8Y3VuYXxjdW5hYmJyZXZ8Y3VubWFwfGN3fGN3aW5kb3d8ZHxkZWJ1Z2d8ZGVidWdncmVlZHl8ZGVsY3xkZWxjb21tYW5kfGRlbGV0ZXxkZWxmfGRlbGZ1bmN0aW9ufGRlbG18ZGVsbWFya3N8ZGl8ZGlmZmd8ZGlmZmdldHxkaWZmb2ZmfGRpZmZwYXRjaHxkaWZmcHV8ZGlmZnB1dHxkaWZmc3BsaXR8ZGlmZnRoaXN8ZGlmZnV8ZGlmZnVwZGF0ZXxkaWd8ZGlncmFwaHN8ZGlzcGxheXxkanxkanVtcHxkbHxkbGlzdHxkcnxkcm9wfGRzfGRzZWFyY2h8ZHNwfGRzcGxpdHxlfGVhcmxpZXJ8ZWNob2V8ZWNob2VycnxlY2hvbXxlY2hvbXNnfGVjaG9ufGVkaXR8ZWx8ZWxzZXxlbHNlaXxlbHNlaWZ8ZW18ZW1lbnV8ZW58ZW5kZnxlbmRmb3xlbmRmb3J8ZW5kZnVufGVuZGZ1bmN0aW9ufGVuZGlmfGVuZHR8ZW5kdHJ5fGVuZHd8ZW5kd2hpbGV8ZW5lfGVuZXd8ZXh8ZXhpfGV4aXR8ZXh1fGV4dXNhZ2V8ZnxmaWxlfGZpbGVzfGZpbGV0eXBlfGZpbnxmaW5hfGZpbmFsbHl8ZmluZHxmaW5pfGZpbmlzaHxmaXJ8Zmlyc3R8Zml4fGZpeGRlbHxmb3xmb2xkfGZvbGRjfGZvbGRjbG9zZXxmb2xkZHxmb2xkZG9jfGZvbGRkb2Nsb3NlZHxmb2xkZG9vcGVufGZvbGRvfGZvbGRvcGVufGZvcnxmdXxmdW58ZnVuY3Rpb258Z298Z290b3xncnxncmVwfGdyZXBhfGdyZXBhZGR8aHxoYXxoYXJkY29weXxoZWxwfGhlbHBmfGhlbHBmaW5kfGhlbHBnfGhlbHBncmVwfGhlbHB0fGhlbHB0YWdzfGhpZHxoaWRlfGhpc3xoaXN0b3J5fGlhfGlhYmJyZXZ8aWFiY3xpYWJjbGVhcnxpZnxpanxpanVtcHxpbHxpbGlzdHxpbWFwY3xpbWFwY2xlYXJ8aW58aW5vcmVhfGlub3JlYWJicmV2fGlzZWFyY2h8aXNwfGlzcGxpdHxpdXxpdW5hfGl1bmFiYnJldnxpdW5tYXB8anxqb2lufGp1fGp1bXBzfGt8a2VlfGtlZXBhbHR8a2VlcGp8a2VlcGp1bXBzfGtlZXBtYXJrc3xsfGxOfGxOZXh0fGxOZnxsTmZpbGV8bGF8bGFkfGxhZGRifGxhZGRidWZmZXJ8bGFkZGV4cHJ8bGFkZGZ8bGFkZGZpbGV8bGFufGxhbmd1YWdlfGxhc3R8bGF0ZXJ8bGJ8bGJ1ZmZlcnxsY3xsY2R8bGNofGxjaGRpcnxsY2x8bGNsb3NlfGxlZnR8bGVmdGF8bGVmdGFib3ZlfGxldHxsZXh8bGV4cHJ8bGZ8bGZpbGV8bGZpcnxsZmlyc3R8bGd8bGdldGJ8bGdldGJ1ZmZlcnxsZ2V0ZXxsZ2V0ZXhwcnxsZ2V0ZmlsZXxsZ3J8bGdyZXB8bGdyZXBhfGxncmVwYWRkfGxofGxoZWxwZ3JlcHxsaXN0fGxsfGxsYXxsbGFzdHxsbGl8bGxpc3R8bG18bG1ha3xsbWFrZXxsbWFwfGxtYXBjfGxtYXBjbGVhcnxsbnxsbmV8bG5ld3xsbmV3ZXJ8bG5leHR8bG5mfGxuZmlsZXxsbm9yZW1hcHxsb3xsb2Fkdmlld3xsb2N8bG9ja21hcmtzfGxvY2t2fGxvY2t2YXJ8bG9sfGxvbGRlcnxsb3B8bG9wZW58bHB8bHBmfGxwZmlsZXxscHJldmlvdXN8bHJ8bHJld2luZHxsc3xsdHxsdGFnfGx1fGx1bm1hcHxsdnxsdmltZ3JlcHxsdmltZ3JlcGF8bHZpbWdyZXBhZGR8bHd8bHdpbmRvd3xtfG1hfG1ha3xtYWtlfG1hcmt8bWFya3N8bWF0fG1hdGNofG1lbnV0fG1lbnV0cmFuc2xhdGV8bWt8bWtleHJjfG1rc3xta3Nlc3Npb258bWtzcHxta3NwZWxsfG1rdnxta3ZpZXxta3ZpZXd8bWt2aW1yY3xtb2R8bW9kZXxtb3ZlfG16fG16ZnxtemZpbGV8bXpzY2hlbWV8bnxuYmtleXxuZXd8bmV4dHxubWFwY3xubWFwY2xlYXJ8bm9ofG5vaGxzZWFyY2h8bm9yZWF8bm9yZWFiYnJldnxudXxudW1iZXJ8bnVufG51bm1hcHxvfG9tYXBjfG9tYXBjbGVhcnxvbnxvbmx5fG9wZW58b3B0fG9wdGlvbnN8b3V8b3VubWFwfHB8cGN8cGNsb3NlfHBlfHBlZHxwZWRpdHxwZXJsfHBlcmxkfHBlcmxkb3xwb3xwb3B8cG9wdXxwb3B1cHxwcHxwcG9wfHByZXxwcmVzZXJ2ZXxwcmV2fHByZXZpb3VzfHByaW50fHByb2Z8cHJvZmR8cHJvZmRlbHxwcm9maWxlfHByb21wdGZ8cHJvbXB0ZmluZHxwcm9tcHRyfHByb21wdHJlcGx8cHN8cHNlYXJjaHxwdE58cHROZXh0fHB0YXxwdGFnfHB0ZnxwdGZpcnN0fHB0anxwdGp1bXB8cHRsfHB0bGFzdHxwdG58cHRuZXh0fHB0cHxwdHByZXZpb3VzfHB0cnxwdHJld2luZHxwdHN8cHRzZWxlY3R8cHV8cHV0fHB3fHB3ZHxweXxweWZ8cHlmaWxlfHB5dGhvbnxxfHFhfHFhbGx8cXVpdHxxdWl0YXxxdWl0YWxsfHJ8cmVhZHxyZWN8cmVjb3ZlcnxyZWR8cmVkaXxyZWRpcnxyZWRvfHJlZHJ8cmVkcmF3fHJlZHJhd3N8cmVkcmF3c3RhdHVzfHJlZ3xyZWdpc3RlcnN8cmVzfHJlc2l6ZXxyZXR8cmV0YWJ8cmV0dXxyZXR1cm58cmV3fHJld2luZHxyaXxyaWdodHxyaWdodGJ8cmlnaHRiZWxvd3xydXxydWJ8cnVieXxydWJ5ZHxydWJ5ZG98cnVieWZ8cnVieWZpbGV8cnVudGltZXxydnxydmltaW5mb3xzTnxzTmV4dHxzYXxzYWx8c2FsbHxzYW58c2FuZGJveHxzYXJndW1lbnR8c2F2fHNhdmVhc3xzYnxzYk58c2JOZXh0fHNiYXxzYmFsbHxzYmZ8c2JmaXJzdHxzYmx8c2JsYXN0fHNibXxzYm1vZGlmaWVkfHNibnxzYm5leHR8c2JwfHNicHJldmlvdXN8c2JyfHNicmV3aW5kfHNidWZmZXJ8c2NyaXB8c2NyaXB0ZXxzY3JpcHRlbmNvZGluZ3xzY3JpcHRuYW1lc3xzZXxzZXR8c2V0ZnxzZXRmaWxldHlwZXxzZXRnfHNldGdsb2JhbHxzZXRsfHNldGxvY2FsfHNmfHNmaW5kfHNmaXJ8c2ZpcnN0fHNofHNoZWxsfHNpZ258c2lsfHNpbGVudHxzaW18c2ltYWx0fHNsfHNsYXxzbGFzdHxzbGVlcHxzbXxzbWFnaWN8c21hcHxzbWFwY3xzbWFwY2xlYXJ8c21lfHNtZW51fHNufHNuZXh0fHNuaXxzbmlmZnxzbm98c25vbWFnaWN8c25vcnxzbm9yZW1hcHxzbm9yZW1lfHNub3JlbWVudXxzb3xzb3J8c29ydHxzb3VyY2V8c3B8c3BlfHNwZWxsZHxzcGVsbGR1bXB8c3BlbGxnb29kfHNwZWxsaXxzcGVsbGluZm98c3BlbGxyfHNwZWxscmVwYWxsfHNwZWxsdXxzcGVsbHVuZG98c3BlbGx3fHNwZWxsd3Jvbmd8c3BsaXR8c3ByfHNwcmV2aW91c3xzcmV8c3Jld2luZHxzdHxzdGF8c3RhZ3xzdGFyfHN0YXJ0Z3xzdGFydGdyZXBsYWNlfHN0YXJ0aW5zZXJ0fHN0YXJ0cnxzdGFydHJlcGxhY2V8c3RqfHN0anVtcHxzdG9wfHN0b3BpfHN0b3BpbnNlcnR8c3RzfHN0c2VsZWN0fHN1bnxzdW5oaWRlfHN1bm18c3VubWFwfHN1c3xzdXNwZW5kfHN2fHN2aWV3fHN5bmNiaW5kfHR8dE58dE5leHR8dGF8dGFifHRhYk58dGFiTmV4dHx0YWJjfHRhYmNsb3NlfHRhYmR8dGFiZG98dGFiZXx0YWJlZGl0fHRhYmZ8dGFiZmluZHx0YWJmaXJ8dGFiZmlyc3R8dGFibHx0YWJsYXN0fHRhYm18dGFibW92ZXx0YWJufHRhYm5ld3x0YWJuZXh0fHRhYm98dGFib25seXx0YWJwfHRhYnByZXZpb3VzfHRhYnJ8dGFicmV3aW5kfHRhYnN8dGFnfHRhZ3N8dGN8dGNsfHRjbGR8dGNsZG98dGNsZnx0Y2xmaWxlfHRlfHRlYXJvZmZ8dGZ8dGZpcnN0fHRofHRocm93fHRqfHRqdW1wfHRsfHRsYXN0fHRtfHRtZW51fHRufHRuZXh0fHRvfHRvcGxlZnR8dHB8dHByZXZpb3VzfHRyfHRyZXdpbmR8dHJ5fHRzfHRzZWxlY3R8dHV8dHVubWVudXx1fHVuYXx1bmFiYnJldmlhdGV8dW5kb3x1bmRvanx1bmRvam9pbnx1bmRvbHx1bmRvbGlzdHx1bmh8dW5oaWRlfHVubGV0fHVubG98dW5sb2NrdmFyfHVubXx1bm1hcHx1cHx1cGRhdGV8dmV8dmVyYnx2ZXJib3NlfHZlcnNpb258dmVydHx2ZXJ0aWNhbHx2aXx2aWV8dmlld3x2aW18dmltZ3JlcHx2aW1ncmVwYXx2aW1ncmVwYWRkfHZpc3VhbHx2aXV8dml1c2FnZXx2bWFwY3x2bWFwY2xlYXJ8dm5lfHZuZXd8dnN8dnNwbGl0fHZ1fHZ1bm1hcHx3fHdOfHdOZXh0fHdhfHdhbGx8d2h8d2hpbGV8d2lufHdpbmN8d2luY21kfHdpbmRvfHdpbnB8d2lucG9zfHdpbnNpemV8d258d25leHR8d3B8d3ByZXZpb3VzfHdxfHdxYXx3cWFsbHx3cml0ZXx3c3x3c3ZlcmJ8d3Z8d3ZpbWluZm98eHx4YXx4YWxsfHhpdHx4bXx4bWFwfHhtYXBjfHhtYXBjbGVhcnx4bWV8eG1lbnV8eG58eG5vcmVtYXB8eG5vcmVtZXx4bm9yZW1lbnV8eHV8eHVubWFwfHl8eWFuaylcYi8sYnVpbHRpbjovXGIoPzphY2R8YWl8YWttfGFsZXBofGFsbG93cmV2aW5zfGFsdGtleW1hcHxhbWJpd2lkdGh8YW1id3xhbnRpfGFudGlhbGlhc3xhcmFifGFyYWJpY3xhcmFiaWNzaGFwZXxhcml8YXJzaGFwZXxhdXRvY2hkaXJ8YXV0b2NtZHxhdXRvaW5kZW50fGF1dG9yZWFkfGF1dG93cml0ZXxhdXRvd3JpdGVhbGx8YXd8YXdhfGJhY2tncm91bmR8YmFja3NwYWNlfGJhY2t1cHxiYWNrdXBjb3B5fGJhY2t1cGRpcnxiYWNrdXBleHR8YmFja3Vwc2tpcHxiYWxsb29uZGVsYXl8YmFsbG9vbmV2YWx8YmFsbG9vbmV4cHJ8YmRpcnxiZGxheXxiZXZhbHxiZXh8YmV4cHJ8Ymd8Ymh8YmlufGJpbmFyeXxiaW9za3xiaW9za2V5fGJrfGJrY3xib21ifGJyZWFrYXR8YnJrfGJyb3dzZWRpcnxic3xic2Rpcnxic2t8YnR8YnVmaGlkZGVufGJ1Zmxpc3RlZHxidWZ0eXBlfGNhc2VtYXB8Y2N2fGNkcGF0aHxjZWRpdHxjZnV8Y2h8Y2hhcmNvbnZlcnR8Y2l8Y2lufGNpbmRlbnR8Y2lua3xjaW5rZXlzfGNpbm98Y2lub3B0aW9uc3xjaW53fGNpbndvcmRzfGNsaXBib2FyZHxjbWRoZWlnaHR8Y21kd2luaGVpZ2h0fGNtcHxjbXN8Y29sdW1uc3xjb218Y29tbWVudHN8Y29tbWVudHN0cmluZ3xjb21wYXRpYmxlfGNvbXBsZXRlfGNvbXBsZXRlZnVuY3xjb21wbGV0ZW9wdHxjb25za3xjb25za2V5fGNvcHlpbmRlbnR8Y290fGNwb3xjcG9wdGlvbnN8Y3B0fGNzY29wZXBhdGhjb21wfGNzY29wZXByZ3xjc2NvcGVxdWlja2ZpeHxjc2NvcGV0YWd8Y3Njb3BldGFnb3JkZXJ8Y3Njb3BldmVyYm9zZXxjc3BjfGNzcHJnfGNzcWZ8Y3N0fGNzdG98Y3N2ZXJifGN1Y3xjdWx8Y3Vyc29yY29sdW1ufGN1cnNvcmxpbmV8Y3dofGRlYnVnfGRlY298ZGVmfGRlZmluZXxkZWxjb21iaW5lfGRleHxkZ3xkaWN0fGRpY3Rpb25hcnl8ZGlmZnxkaWZmZXhwcnxkaWZmb3B0fGRpZ3JhcGh8ZGlwfGRpcnxkaXJlY3Rvcnl8ZHl8ZWF8ZWFkfGVhZGlyZWN0aW9ufGVifGVkfGVkY29tcGF0aWJsZXxlZnxlZm18ZWl8ZWt8ZW5jfGVuY29kaW5nfGVuZG9mbGluZXxlb2x8ZXB8ZXF1YWxhbHdheXN8ZXF1YWxwcmd8ZXJyb3JiZWxsc3xlcnJvcmZpbGV8ZXJyb3Jmb3JtYXR8ZXNja2V5c3xldHxldmVudGlnbm9yZXxleHBhbmR0YWJ8ZXhyY3xmY2x8ZmNzfGZkY3xmZGV8ZmRpfGZkbHxmZGxzfGZkbXxmZG58ZmRvfGZkdHxmZW58ZmVuY3xmZW5jc3xmZXh8ZmZ8ZmZzfGZpbGVlbmNvZGluZ3xmaWxlZW5jb2RpbmdzfGZpbGVmb3JtYXR8ZmlsZWZvcm1hdHN8ZmlsbGNoYXJzfGZrfGZrbWFwfGZscHxmbWx8Zm1yfGZvbGRjb2x1bW58Zm9sZGVuYWJsZXxmb2xkZXhwcnxmb2xkaWdub3JlfGZvbGRsZXZlbHxmb2xkbGV2ZWxzdGFydHxmb2xkbWFya2VyfGZvbGRtZXRob2R8Zm9sZG1pbmxpbmVzfGZvbGRuZXN0bWF4fGZvbGR0ZXh0fGZvcm1hdGV4cHJ8Zm9ybWF0bGlzdHBhdHxmb3JtYXRvcHRpb25zfGZvcm1hdHByZ3xmcHxmc3xmc3luY3xmdHxnY3J8Z2R8Z2RlZmF1bHR8Z2ZtfGdmbnxnZnN8Z2Z3fGdocnxncHxncmVwZm9ybWF0fGdyZXBwcmd8Z3RsfGd0dHxndWljdXJzb3J8Z3VpZm9udHxndWlmb250c2V0fGd1aWZvbnR3aWRlfGd1aWhlYWRyb29tfGd1aW9wdGlvbnN8Z3VpcHR5fGd1aXRhYmxhYmVsfGd1aXRhYnRvb2x0aXB8aGVscGZpbGV8aGVscGhlaWdodHxoZWxwbGFuZ3xoZnxoaHxoaXxoaWRkZW58aGlnaGxpZ2h0fGhrfGhrbWFwfGhrbWFwcHxoa3B8aGx8aGxnfGhsc3xobHNlYXJjaHxpY3xpY29ufGljb25zdHJpbmd8aWdub3JlY2FzZXxpbXxpbWFjdGl2YXRla2V5fGltYWt8aW1jfGltY21kbGluZXxpbWR8aW1kaXNhYmxlfGltaXxpbWluc2VydHxpbXN8aW1zZWFyY2h8aW5jfGluY2x1ZGV8aW5jbHVkZWV4cHJ8aW5jc2VhcmNofGluZGV8aW5kZW50ZXhwcnxpbmRlbnRrZXlzfGluZGt8aW5leHxpbmZ8aW5mZXJjYXNlfGluc2VydG1vZGV8aW52YWNkfGludmFpfGludmFrbXxpbnZhbGxvd3Jldmluc3xpbnZhbHRrZXltYXB8aW52YW50aXxpbnZhbnRpYWxpYXN8aW52YXJ8aW52YXJhYnxpbnZhcmFiaWN8aW52YXJhYmljc2hhcGV8aW52YXJpfGludmFyc2hhcGV8aW52YXV0b2NoZGlyfGludmF1dG9pbmRlbnR8aW52YXV0b3JlYWR8aW52YXV0b3dyaXRlfGludmF1dG93cml0ZWFsbHxpbnZhd3xpbnZhd2F8aW52YmFja3VwfGludmJhbGxvb25ldmFsfGludmJldmFsfGludmJpbnxpbnZiaW5hcnl8aW52Ymlvc2t8aW52Ymlvc2tleXxpbnZia3xpbnZibHxpbnZib21ifGludmJ1Zmxpc3RlZHxpbnZjZnxpbnZjaXxpbnZjaW58aW52Y2luZGVudHxpbnZjb21wYXRpYmxlfGludmNvbmZpcm18aW52Y29uc2t8aW52Y29uc2tleXxpbnZjb3B5aW5kZW50fGludmNwfGludmNzY29wZXRhZ3xpbnZjc2NvcGV2ZXJib3NlfGludmNzdHxpbnZjc3ZlcmJ8aW52Y3VjfGludmN1bHxpbnZjdXJzb3Jjb2x1bW58aW52Y3Vyc29ybGluZXxpbnZkZWNvfGludmRlbGNvbWJpbmV8aW52ZGd8aW52ZGlmZnxpbnZkaWdyYXBofGludmRpc2FibGV8aW52ZWF8aW52ZWJ8aW52ZWR8aW52ZWRjb21wYXRpYmxlfGludmVrfGludmVuZG9mbGluZXxpbnZlb2x8aW52ZXF1YWxhbHdheXN8aW52ZXJyb3JiZWxsc3xpbnZlc2NrZXlzfGludmV0fGludmV4fGludmV4cGFuZHRhYnxpbnZleHJjfGludmZlbnxpbnZma3xpbnZma21hcHxpbnZmb2xkZW5hYmxlfGludmdkfGludmdkZWZhdWx0fGludmd1aXB0eXxpbnZoaWR8aW52aGlkZGVufGludmhrfGludmhrbWFwfGludmhrbWFwcHxpbnZoa3B8aW52aGxzfGludmhsc2VhcmNofGludmljfGludmljb258aW52aWdub3JlY2FzZXxpbnZpbXxpbnZpbWN8aW52aW1jbWRsaW5lfGludmltZHxpbnZpbmNzZWFyY2h8aW52aW5mfGludmluZmVyY2FzZXxpbnZpbnNlcnRtb2RlfGludmlzfGludmpvaW5zcGFjZXN8aW52anN8aW52bGF6eXJlZHJhd3xpbnZsYnJ8aW52bGluZWJyZWFrfGludmxpc3B8aW52bGlzdHxpbnZsb2FkcGx1Z2luc3xpbnZscGx8aW52bHp8aW52bWF8aW52bWFjYXRzdWl8aW52bWFnaWN8aW52bWh8aW52bWx8aW52bW9kfGludm1vZGVsaW5lfGludm1vZGlmaWFibGV8aW52bW9kaWZpZWR8aW52bW9yZXxpbnZtb3VzZWZ8aW52bW91c2Vmb2N1c3xpbnZtb3VzZWhpZGV8aW52bnV8aW52bnVtYmVyfGludm9kZXZ8aW52b3BlbmRldmljZXxpbnZwYXN0ZXxpbnZwaXxpbnZwcmVzZXJ2ZWluZGVudHxpbnZwcmV2aWV3d2luZG93fGludnByb21wdHxpbnZwdnd8aW52cmVhZG9ubHl8aW52cmVtYXB8aW52cmVzdG9yZXNjcmVlbnxpbnZyZXZpbnN8aW52cml8aW52cmlnaHRsZWZ0fGludnJpZ2h0bGVmdGNtZHxpbnZybHxpbnZybGN8aW52cm98aW52cnN8aW52cnV8aW52cnVsZXJ8aW52c2J8aW52c2N8aW52c2NifGludnNjcm9sbGJpbmR8aW52c2NzfGludnNlY3VyZXxpbnZzZnR8aW52c2hlbGxzbGFzaHxpbnZzaGVsbHRlbXB8aW52c2hpZnRyb3VuZHxpbnZzaG9ydG5hbWV8aW52c2hvd2NtZHxpbnZzaG93ZnVsbHRhZ3xpbnZzaG93bWF0Y2h8aW52c2hvd21vZGV8aW52c2l8aW52c218aW52c21hcnRjYXNlfGludnNtYXJ0aW5kZW50fGludnNtYXJ0dGFifGludnNtZHxpbnZzbnxpbnZzb2x8aW52c3BlbGx8aW52c3BsaXRiZWxvd3xpbnZzcGxpdHJpZ2h0fGludnNwcnxpbnZzcnxpbnZzc2x8aW52c3RhfGludnN0YXJ0b2ZsaW5lfGludnN0bXB8aW52c3dhcGZpbGV8aW52c3dmfGludnRhfGludnRhZ2JzZWFyY2h8aW52dGFncmVsYXRpdmV8aW52dGFnc3RhY2t8aW52dGJpfGludnRiaWRpfGludnRic3xpbnZ0ZXJtYmlkaXxpbnZ0ZXJzZXxpbnZ0ZXh0YXV0b3xpbnZ0ZXh0bW9kZXxpbnZ0ZnxpbnZ0Z3N0fGludnRpbGRlb3B8aW52dGltZW91dHxpbnZ0aXRsZXxpbnZ0b3xpbnZ0b3B8aW52dHJ8aW52dHRpbWVvdXR8aW52dHR5YnVpbHRpbnxpbnZ0dHlmYXN0fGludnR4fGludnZifGludnZpc3VhbGJlbGx8aW52d2F8aW52d2FybnxpbnZ3YnxpbnZ3ZWlyZGludmVydHxpbnZ3Zmh8aW52d2Z3fGludndpbGRtZW51fGludndpbmZpeGhlaWdodHxpbnZ3aW5maXh3aWR0aHxpbnZ3aXZ8aW52d21udXxpbnZ3cmFwfGludndyYXBzY2FufGludndyaXRlfGludndyaXRlYW55fGludndyaXRlYmFja3VwfGludndzfGlzZnxpc2ZuYW1lfGlzaXxpc2lkZW50fGlza3xpc2tleXdvcmR8aXNwcmludHxqb2luc3BhY2VzfGpzfGtleXxrZXltYXB8a2V5bW9kZWx8a2V5d29yZHByZ3xrbXxrbXB8a3B8bGFuZ21hcHxsYW5nbWVudXxsYXN0c3RhdHVzfGxhenlyZWRyYXd8bGJyfGxjc3xsaW5lYnJlYWt8bGluZXN8bGluZXNwYWNlfGxpc3B8bGlzcHdvcmRzfGxpc3RjaGFyc3xsb2FkcGx1Z2luc3xscGx8bHNwfGx6fG1hY2F0c3VpfG1hZ2ljfG1ha2VlZnxtYWtlcHJnfG1hdGNocGFpcnN8bWF0Y2h0aW1lfG1heGNvbWJpbmV8bWF4ZnVuY2RlcHRofG1heG1hcGRlcHRofG1heG1lbXxtYXhtZW1wYXR0ZXJufG1heG1lbXRvdHxtY298bWVmfG1lbnVpdGVtc3xtZmR8bWh8bWlzfG1rc3BlbGxtZW18bWx8bWxzfG1tfG1tZHxtbXB8bW10fG1vZGVsaW5lfG1vZGVsaW5lc3xtb2RpZmlhYmxlfG1vZGlmaWVkfG1vcmV8bW91c2V8bW91c2VmfG1vdXNlZm9jdXN8bW91c2VoaWRlfG1vdXNlbXxtb3VzZW1vZGVsfG1vdXNlc3xtb3VzZXNoYXBlfG1vdXNldHxtb3VzZXRpbWV8bXB8bXBzfG1zbXxtenF8bXpxdWFudHVtfG5mfG5vYWNkfG5vYWl8bm9ha218bm9hbGxvd3Jldmluc3xub2FsdGtleW1hcHxub2FudGl8bm9hbnRpYWxpYXN8bm9hcnxub2FyYWJ8bm9hcmFiaWN8bm9hcmFiaWNzaGFwZXxub2FyaXxub2Fyc2hhcGV8bm9hdXRvY2hkaXJ8bm9hdXRvaW5kZW50fG5vYXV0b3JlYWR8bm9hdXRvd3JpdGV8bm9hdXRvd3JpdGVhbGx8bm9hd3xub2F3YXxub2JhY2t1cHxub2JhbGxvb25ldmFsfG5vYmV2YWx8bm9iaW58bm9iaW5hcnl8bm9iaW9za3xub2Jpb3NrZXl8bm9ia3xub2JsfG5vYm9tYnxub2J1Zmxpc3RlZHxub2NmfG5vY2l8bm9jaW58bm9jaW5kZW50fG5vY29tcGF0aWJsZXxub2NvbmZpcm18bm9jb25za3xub2NvbnNrZXl8bm9jb3B5aW5kZW50fG5vY3B8bm9jc2NvcGV0YWd8bm9jc2NvcGV2ZXJib3NlfG5vY3N0fG5vY3N2ZXJifG5vY3VjfG5vY3VsfG5vY3Vyc29yY29sdW1ufG5vY3Vyc29ybGluZXxub2RlY298bm9kZWxjb21iaW5lfG5vZGd8bm9kaWZmfG5vZGlncmFwaHxub2Rpc2FibGV8bm9lYXxub2VifG5vZWR8bm9lZGNvbXBhdGlibGV8bm9la3xub2VuZG9mbGluZXxub2VvbHxub2VxdWFsYWx3YXlzfG5vZXJyb3JiZWxsc3xub2VzY2tleXN8bm9ldHxub2V4fG5vZXhwYW5kdGFifG5vZXhyY3xub2Zlbnxub2ZrfG5vZmttYXB8bm9mb2xkZW5hYmxlfG5vZ2R8bm9nZGVmYXVsdHxub2d1aXB0eXxub2hpZHxub2hpZGRlbnxub2hrfG5vaGttYXB8bm9oa21hcHB8bm9oa3B8bm9obHN8bm9pY3xub2ljb258bm9pZ25vcmVjYXNlfG5vaW18bm9pbWN8bm9pbWNtZGxpbmV8bm9pbWR8bm9pbmNzZWFyY2h8bm9pbmZ8bm9pbmZlcmNhc2V8bm9pbnNlcnRtb2RlfG5vaXN8bm9qb2luc3BhY2VzfG5vanN8bm9sYXp5cmVkcmF3fG5vbGJyfG5vbGluZWJyZWFrfG5vbGlzcHxub2xpc3R8bm9sb2FkcGx1Z2luc3xub2xwbHxub2x6fG5vbWF8bm9tYWNhdHN1aXxub21hZ2ljfG5vbWh8bm9tbHxub21vZHxub21vZGVsaW5lfG5vbW9kaWZpYWJsZXxub21vZGlmaWVkfG5vbW9yZXxub21vdXNlZnxub21vdXNlZm9jdXN8bm9tb3VzZWhpZGV8bm9udXxub251bWJlcnxub29kZXZ8bm9vcGVuZGV2aWNlfG5vcGFzdGV8bm9waXxub3ByZXNlcnZlaW5kZW50fG5vcHJldmlld3dpbmRvd3xub3Byb21wdHxub3B2d3xub3JlYWRvbmx5fG5vcmVtYXB8bm9yZXN0b3Jlc2NyZWVufG5vcmV2aW5zfG5vcml8bm9yaWdodGxlZnR8bm9yaWdodGxlZnRjbWR8bm9ybHxub3JsY3xub3JvfG5vcnN8bm9ydXxub3J1bGVyfG5vc2J8bm9zY3xub3NjYnxub3Njcm9sbGJpbmR8bm9zY3N8bm9zZWN1cmV8bm9zZnR8bm9zaGVsbHNsYXNofG5vc2hlbGx0ZW1wfG5vc2hpZnRyb3VuZHxub3Nob3J0bmFtZXxub3Nob3djbWR8bm9zaG93ZnVsbHRhZ3xub3Nob3dtYXRjaHxub3Nob3dtb2RlfG5vc2l8bm9zbXxub3NtYXJ0Y2FzZXxub3NtYXJ0aW5kZW50fG5vc21hcnR0YWJ8bm9zbWR8bm9zbnxub3NvbHxub3NwZWxsfG5vc3BsaXRiZWxvd3xub3NwbGl0cmlnaHR8bm9zcHJ8bm9zcnxub3NzbHxub3N0YXxub3N0YXJ0b2ZsaW5lfG5vc3RtcHxub3N3YXBmaWxlfG5vc3dmfG5vdGF8bm90YWdic2VhcmNofG5vdGFncmVsYXRpdmV8bm90YWdzdGFja3xub3RiaXxub3RiaWRpfG5vdGJzfG5vdGVybWJpZGl8bm90ZXJzZXxub3RleHRhdXRvfG5vdGV4dG1vZGV8bm90Znxub3Rnc3R8bm90aWxkZW9wfG5vdGltZW91dHxub3RpdGxlfG5vdG98bm90b3B8bm90cnxub3R0aW1lb3V0fG5vdHR5YnVpbHRpbnxub3R0eWZhc3R8bm90eHxub3ZifG5vdmlzdWFsYmVsbHxub3dhfG5vd2Fybnxub3difG5vd2VpcmRpbnZlcnR8bm93Zmh8bm93Znd8bm93aWxkbWVudXxub3dpbmZpeGhlaWdodHxub3dpbmZpeHdpZHRofG5vd2l2fG5vd21udXxub3dyYXB8bm93cmFwc2Nhbnxub3dyaXRlfG5vd3JpdGVhbnl8bm93cml0ZWJhY2t1cHxub3dzfG5yZm9ybWF0c3xudW1iZXJ3aWR0aHxudXd8b2RldnxvZnR8b2Z1fG9tbmlmdW5jfG9wZW5kZXZpY2V8b3BlcmF0b3JmdW5jfG9wZnVuY3xvc2ZpbGV0eXBlfHBhfHBhcmF8cGFyYWdyYXBoc3xwYXN0ZXxwYXN0ZXRvZ2dsZXxwYXRjaGV4cHJ8cGF0Y2htb2RlfHBhdGh8cGRldnxwZW5jfHBleHxwZXhwcnxwZm58cGh8cGhlYWRlcnxwaXxwbXxwbWJjc3xwbWJmbnxwb3B0fHByZXNlcnZlaW5kZW50fHByZXZpZXdoZWlnaHR8cHJldmlld3dpbmRvd3xwcmludGRldmljZXxwcmludGVuY29kaW5nfHByaW50ZXhwcnxwcmludGZvbnR8cHJpbnRoZWFkZXJ8cHJpbnRtYmNoYXJzZXR8cHJpbnRtYmZvbnR8cHJpbnRvcHRpb25zfHByb21wdHxwdHxwdW1oZWlnaHR8cHZofHB2d3xxZXxxdW90ZWVzY2FwZXxyZWFkb25seXxyZW1hcHxyZXBvcnR8cmVzdG9yZXNjcmVlbnxyZXZpbnN8cmlnaHRsZWZ0fHJpZ2h0bGVmdGNtZHxybHxybGN8cm98cnN8cnRwfHJ1ZnxydWxlcnxydWxlcmZvcm1hdHxydW50aW1lcGF0aHxzYm98c2N8c2NifHNjcnxzY3JvbGx8c2Nyb2xsYmluZHxzY3JvbGxqdW1wfHNjcm9sbG9mZnxzY3JvbGxvcHR8c2NzfHNlY3R8c2VjdGlvbnN8c2VjdXJlfHNlbHxzZWxlY3Rpb258c2VsZWN0bW9kZXxzZXNzaW9ub3B0aW9uc3xzZnR8c2hjZnxzaGVsbGNtZGZsYWd8c2hlbGxwaXBlfHNoZWxscXVvdGV8c2hlbGxyZWRpcnxzaGVsbHNsYXNofHNoZWxsdGVtcHxzaGVsbHR5cGV8c2hlbGx4cXVvdGV8c2hpZnRyb3VuZHxzaGlmdHdpZHRofHNobXxzaG9ydG1lc3N8c2hvcnRuYW1lfHNob3dicmVha3xzaG93Y21kfHNob3dmdWxsdGFnfHNob3dtYXRjaHxzaG93bW9kZXxzaG93dGFibGluZXxzaHF8c2l8c2lkZXNjcm9sbHxzaWRlc2Nyb2xsb2ZmfHNpc298c2p8c2xtfHNtYXJ0Y2FzZXxzbWFydGluZGVudHxzbWFydHRhYnxzbWN8c21kfHNvZnR0YWJzdG9wfHNvbHxzcGN8c3BlbGx8c3BlbGxjYXBjaGVja3xzcGVsbGZpbGV8c3BlbGxsYW5nfHNwZWxsc3VnZ2VzdHxzcGZ8c3BsfHNwbGl0YmVsb3d8c3BsaXRyaWdodHxzcHN8c3J8c3JyfHNzfHNzbHxzc29wfHN0YWx8c3RhcnRvZmxpbmV8c3RhdHVzbGluZXxzdGx8c3RtcHxzdXxzdWF8c3VmZml4ZXN8c3VmZml4ZXNhZGR8c3d8c3dhcGZpbGV8c3dhcHN5bmN8c3difHN3Znxzd2l0Y2hidWZ8c3dzfHN4cXxzeW58c3lubWF4Y29sfHN5bnRheHx0X0FCfHRfQUZ8dF9BTHx0X0NTfHRfQ1Z8dF9DZXx0X0NvfHRfQ3N8dF9ETHx0X0VJfHRfRjF8dF9GMnx0X0YzfHRfRjR8dF9GNXx0X0Y2fHRfRjd8dF9GOHx0X0Y5fHRfSUV8dF9JU3x0X0sxfHRfSzN8dF9LNHx0X0s1fHRfSzZ8dF9LN3x0X0s4fHRfSzl8dF9LQXx0X0tCfHRfS0N8dF9LRHx0X0tFfHRfS0Z8dF9LR3x0X0tIfHRfS0l8dF9LSnx0X0tLfHRfS0x8dF9SSXx0X1JWfHRfU0l8dF9TYnx0X1NmfHRfV1B8dF9XU3x0X1pIfHRfWlJ8dF9hbHx0X2JjfHRfY2R8dF9jZXx0X2NsfHRfY218dF9jc3x0X2RhfHRfZGJ8dF9kbHx0X2ZzfHRfazF8dF9rMnx0X2szfHRfazR8dF9rNXx0X2s2fHRfazd8dF9rOHx0X2s5fHRfa0J8dF9rRHx0X2tJfHRfa058dF9rUHx0X2tifHRfa2R8dF9rZXx0X2tofHRfa2x8dF9rcnx0X2tzfHRfa3V8dF9sZXx0X21ifHRfbWR8dF9tZXx0X21yfHRfbXN8dF9uZHx0X29wfHRfc2V8dF9zb3x0X3NyfHRfdGV8dF90aXx0X3RzfHRfdWV8dF91c3x0X3V0fHRfdmJ8dF92ZXx0X3ZpfHRfdnN8dF94c3x0YWJsaW5lfHRhYnBhZ2VtYXh8dGFic3RvcHx0YWdic2VhcmNofHRhZ2xlbmd0aHx0YWdyZWxhdGl2ZXx0YWdzdGFja3x0YWx8dGJ8dGJpfHRiaWRpfHRiaXN8dGJzfHRlbmN8dGVybXx0ZXJtYmlkaXx0ZXJtZW5jb2Rpbmd8dGVyc2V8dGV4dGF1dG98dGV4dG1vZGV8dGV4dHdpZHRofHRnc3R8dGhlc2F1cnVzfHRpbGRlb3B8dGltZW91dHx0aW1lb3V0bGVufHRpdGxlfHRpdGxlbGVufHRpdGxlb2xkfHRpdGxlc3RyaW5nfHRvb2xiYXJ8dG9vbGJhcmljb25zaXplfHRvcHx0cG18dHNsfHRzcnx0dGltZW91dHx0dGltZW91dGxlbnx0dG18dHR5fHR0eWJ1aWx0aW58dHR5ZmFzdHx0dHltfHR0eW1vdXNlfHR0eXNjcm9sbHx0dHl0eXBlfHR3fHR4fHVjfHVsfHVuZG9sZXZlbHN8dXBkYXRlY291bnR8dXBkYXRldGltZXx1dHx2Ynx2YnN8dmRpcnx2ZXJib3NlZmlsZXx2ZmlsZXx2aWV3ZGlyfHZpZXdvcHRpb25zfHZpbWluZm98dmlydHVhbGVkaXR8dmlzdWFsYmVsbHx2b3B8d2FrfHdhcm58d2J8d2N8d2NtfHdkfHdlaXJkaW52ZXJ0fHdmaHx3Znd8d2hpY2h3cmFwfHdpfHdpZ3x3aWxkY2hhcnx3aWxkY2hhcm18d2lsZGlnbm9yZXx3aWxkbWVudXx3aWxkbW9kZXx3aWxkb3B0aW9uc3x3aW18d2luYWx0a2V5c3x3aW5kb3d8d2luZml4aGVpZ2h0fHdpbmZpeHdpZHRofHdpbmhlaWdodHx3aW5taW5oZWlnaHR8d2lubWlud2lkdGh8d2lud2lkdGh8d2l2fHdpd3x3bXx3bWh8d21udXx3bXd8d29wfHdyYXB8d3JhcG1hcmdpbnx3cmFwc2Nhbnx3cml0ZWFueXx3cml0ZWJhY2t1cHx3cml0ZWRlbGF5fHd3KVxiLyxudW1iZXI6L1xiKD86MHhbXGRhLWZdK3xcZCsoPzpcLlxkKyk/KVxiL2ksb3BlcmF0b3I6L1x8XHx8JiZ8Wy0rLl09P3xbPSFdKD86Wz1+XVsjP10/KT98Wzw+XT0/WyM/XT98WypcLyU/XXxcYig/OmlzKD86bm90KT8pXGIvLHB1bmN0dWF0aW9uOi9be31bXF0oKSw7Ol0vfX1yZXR1cm4gR219dmFyIEhtLFJOO2Z1bmN0aW9uIFNqKCl7aWYoUk4pcmV0dXJuIEhtO1JOPTEsSG09ZSxlLmRpc3BsYXlOYW1lPSJ2aXN1YWxCYXNpYyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXNbInZpc3VhbC1iYXNpYyJdPXtjb21tZW50OntwYXR0ZXJuOi8oPzpbJ+KAmOKAmV18UkVNXGIpKD86W15cclxuX118Xyg/OlxyXG4/fFxuKT8pKi9pLGluc2lkZTp7a2V5d29yZDovXlJFTS9pfX0sZGlyZWN0aXZlOntwYXR0ZXJuOi8jKD86Q29uc3R8RWxzZXxFbHNlSWZ8RW5kfEV4dGVybmFsQ2hlY2tzdW18RXh0ZXJuYWxTb3VyY2V8SWZ8UmVnaW9uKSg/OlxiX1sgXHRdKig/OlxyXG4/fFxuKXwuKSsvaSxhbGlhczoicHJvcGVydHkiLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi9cJD9bIuKAnOKAnV0oPzpbIuKAnOKAnV17Mn18W14i4oCc4oCdXSkqWyLigJzigJ1dQz8vaSxncmVlZHk6ITB9LGRhdGU6e3BhdHRlcm46LyNbIFx0XSooPzpcZCsoWy8tXSlcZCtcMVxkKyg/OlsgXHRdKyg/OlxkK1sgXHRdKig/OkFNfFBNKXxcZCs6XGQrKD86OlxkKyk/KD86WyBcdF0qKD86QU18UE0pKT8pKT98XGQrWyBcdF0qKD86QU18UE0pfFxkKzpcZCsoPzo6XGQrKT8oPzpbIFx0XSooPzpBTXxQTSkpPylbIFx0XSojL2ksYWxpYXM6Im51bWJlciJ9LG51bWJlcjovKD86KD86XGJcZCsoPzpcLlxkKyk/fFwuXGQrKSg/OkVbKy1dP1xkKyk/fCZbSE9dW1xkQS1GXSspKD86W0ZSRF18VT9bSUxTXSk/L2ksYm9vbGVhbjovXGIoPzpGYWxzZXxOb3RoaW5nfFRydWUpXGIvaSxrZXl3b3JkOi9cYig/OkFkZEhhbmRsZXJ8QWRkcmVzc09mfEFsaWFzfEFuZCg/OkFsc28pP3xBc3xCb29sZWFufEJ5UmVmfEJ5dGV8QnlWYWx8Q2FsbHxDYXNlfENhdGNofEMoPzpCb29sfEJ5dGV8Q2hhcnxEYXRlfERibHxEZWN8SW50fExuZ3xPYmp8U0J5dGV8U2hvcnR8U25nfFN0cnxUeXBlfFVJbnR8VUxuZ3xVU2hvcnQpfENoYXJ8Q2xhc3N8Q29uc3R8Q29udGludWV8Q3VycmVuY3l8RGF0ZXxEZWNpbWFsfERlY2xhcmV8RGVmYXVsdHxEZWxlZ2F0ZXxEaW18RGlyZWN0Q2FzdHxEb3xEb3VibGV8RWFjaHxFbHNlKD86SWYpP3xFbmQoPzpJZik/fEVudW18RXJhc2V8RXJyb3J8RXZlbnR8RXhpdHxGaW5hbGx5fEZvcnxGcmllbmR8RnVuY3Rpb258R2V0KD86VHlwZXxYTUxOYW1lc3BhY2UpP3xHbG9iYWx8R29TdWJ8R29Ub3xIYW5kbGVzfElmfEltcGxlbWVudHN8SW1wb3J0c3xJbnxJbmhlcml0c3xJbnRlZ2VyfEludGVyZmFjZXxJc3xJc05vdHxMZXR8TGlifExpa2V8TG9uZ3xMb29wfE1lfE1vZHxNb2R1bGV8TXVzdCg/OkluaGVyaXR8T3ZlcnJpZGUpfE15KD86QmFzZXxDbGFzcyl8TmFtZXNwYWNlfE5hcnJvd2luZ3xOZXd8TmV4dHxOb3QoPzpJbmhlcml0YWJsZXxPdmVycmlkYWJsZSk/fE9iamVjdHxPZnxPbnxPcGVyYXRvcnxPcHRpb24oPzphbCk/fE9yKD86RWxzZSk/fE91dHxPdmVybG9hZHN8T3ZlcnJpZGFibGV8T3ZlcnJpZGVzfFBhcmFtQXJyYXl8UGFydGlhbHxQcml2YXRlfFByb3BlcnR5fFByb3RlY3RlZHxQdWJsaWN8UmFpc2VFdmVudHxSZWFkT25seXxSZURpbXxSZW1vdmVIYW5kbGVyfFJlc3VtZXxSZXR1cm58U0J5dGV8U2VsZWN0fFNldHxTaGFkb3dzfFNoYXJlZHxzaG9ydHxTaW5nbGV8U3RhdGljfFN0ZXB8U3RvcHxTdHJpbmd8U3RydWN0dXJlfFN1YnxTeW5jTG9ja3xUaGVufFRocm93fFRvfFRyeXxUcnlDYXN0fFR5cGV8VHlwZU9mfFUoPzpJbnRlZ2VyfExvbmd8U2hvcnQpfFVudGlsfFVzaW5nfFZhcmlhbnR8V2VuZHxXaGVufFdoaWxlfFdpZGVuaW5nfFdpdGgoPzpFdmVudHMpP3xXcml0ZU9ubHl8WG9yKVxiL2ksb3BlcmF0b3I6L1srXC0qL1xcXjw9PiYjQCQlIV18XGJfKD89WyBcdF0qW1xyXG5dKS8scHVuY3R1YXRpb246L1t7fSgpLiw6P10vfSxuLmxhbmd1YWdlcy52Yj1uLmxhbmd1YWdlc1sidmlzdWFsLWJhc2ljIl0sbi5sYW5ndWFnZXMudmJhPW4ubGFuZ3VhZ2VzWyJ2aXN1YWwtYmFzaWMiXX1yZXR1cm4gSG19dmFyICRtLE5OO2Z1bmN0aW9uIHZqKCl7aWYoTk4pcmV0dXJuICRtO05OPTEsJG09ZSxlLmRpc3BsYXlOYW1lPSJ3YXJwc2NyaXB0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy53YXJwc2NyaXB0PXtjb21tZW50Oi8jLip8XC9cLy4qfFwvXCpbXHNcU10qP1wqXC8vLHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXHJcbl18XFwuKSoifCcoPzpbXidcXFxyXG5dfFxcLikqJ3w8Jyg/OlteXFwnXXwnKD8hPil8XFwuKSonPi8sZ3JlZWR5OiEwfSx2YXJpYWJsZTovXCRcUysvLG1hY3JvOntwYXR0ZXJuOi9AXFMrLyxhbGlhczoicHJvcGVydHkifSxrZXl3b3JkOi9cYig/OkJSRUFLfENIRUNLTUFDUk98Q09OVElOVUV8Q1VERnxERUZJTkVEfERFRklORURNQUNST3xFVkFMfEZBSUx8Rk9SfEZPUkVBQ0h8Rk9SU1RFUHxJRlR8SUZURXxNU0dGQUlMfE5SRVRVUk58UkVUSFJPV3xSRVRVUk58U1dJVENIfFRSWXxVREZ8VU5USUx8V0hJTEUpXGIvLG51bWJlcjovWystXT9cYig/Ok5hTnxJbmZpbml0eXxcZCsoPzpcLlxkKik/KD86W0VlXVsrLV0/XGQrKT98MHhbXGRhLWZBLUZdK3wwYlswMV0rKVxiLyxib29sZWFuOi9cYig/OkZ8VHxmYWxzZXx0cnVlKVxiLyxwdW5jdHVhdGlvbjovPCV8JT58W3t9W1xdKCldLyxvcGVyYXRvcjovPT18JiY/fFx8XHw/fFwqXCo/fD4+Pj98PDx8Wzw+IX5dPT98Wy0vJV5dfFwrIT98XGIoPzpBTkR8Tk9UfE9SKVxiL319cmV0dXJuICRtfXZhciBWbSx3TjtmdW5jdGlvbiBUaigpe2lmKHdOKXJldHVybiBWbTt3Tj0xLFZtPWUsZS5kaXNwbGF5TmFtZT0id2FzbSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMud2FzbT17Y29tbWVudDpbL1woO1tcc1xTXSo/O1wpLyx7cGF0dGVybjovOzsuKi8sZ3JlZWR5OiEwfV0sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFxbXHNcU118W14iXFxdKSoiLyxncmVlZHk6ITB9LGtleXdvcmQ6W3twYXR0ZXJuOi9cYig/OmFsaWdufG9mZnNldCk9LyxpbnNpZGU6e29wZXJhdG9yOi89L319LHtwYXR0ZXJuOi9cYig/Oig/OmYzMnxmNjR8aTMyfGk2NCkoPzpcLig/OmFic3xhZGR8YW5kfGNlaWx8Y2x6fGNvbnN0fGNvbnZlcnRfW3N1XVwvaSg/OjMyfDY0KXxjb3B5c2lnbnxjdHp8ZGVtb3RlXC9mNjR8ZGl2KD86X1tzdV0pP3xlcXo/fGV4dGVuZF9bc3VdXC9pMzJ8Zmxvb3J8Z2UoPzpfW3N1XSk/fGd0KD86X1tzdV0pP3xsZSg/Ol9bc3VdKT98bG9hZCg/Oig/Ojh8MTZ8MzIpX1tzdV0pP3xsdCg/Ol9bc3VdKT98bWF4fG1pbnxtdWx8bmVnP3xuZWFyZXN0fG9yfHBvcGNudHxwcm9tb3RlXC9mMzJ8cmVpbnRlcnByZXRcL1tmaV0oPzozMnw2NCl8cmVtX1tzdV18cm90W2xyXXxzaGx8c2hyX1tzdV18c3FydHxzdG9yZSg/Ojh8MTZ8MzIpP3xzdWJ8dHJ1bmMoPzpfW3N1XVwvZig/OjMyfDY0KSk/fHdyYXBcL2k2NHx4b3IpKT98bWVtb3J5XC4oPzpncm93fHNpemUpKVxiLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSwvXGIoPzphbnlmdW5jfGJsb2NrfGJyKD86X2lmfF90YWJsZSk/fGNhbGwoPzpfaW5kaXJlY3QpP3xkYXRhfGRyb3B8ZWxlbXxlbHNlfGVuZHxleHBvcnR8ZnVuY3xnZXRfKD86Z2xvYmFsfGxvY2FsKXxnbG9iYWx8aWZ8aW1wb3J0fGxvY2FsfGxvb3B8bWVtb3J5fG1vZHVsZXxtdXR8bm9wfG9mZnNldHxwYXJhbXxyZXN1bHR8cmV0dXJufHNlbGVjdHxzZXRfKD86Z2xvYmFsfGxvY2FsKXxzdGFydHx0YWJsZXx0ZWVfbG9jYWx8dGhlbnx0eXBlfHVucmVhY2hhYmxlKVxiL10sdmFyaWFibGU6L1wkW1x3ISMkJSYnKitcLS4vOjw9Pj9AXFxeYHx+XSsvLG51bWJlcjovWystXT9cYig/OlxkKD86Xz9cZCkqKD86XC5cZCg/Ol8/XGQpKik/KD86W2VFXVsrLV0/XGQoPzpfP1xkKSopP3wweFtcZGEtZkEtRl0oPzpfP1tcZGEtZkEtRl0pKig/OlwuW1xkYS1mQS1GXSg/Ol8/W1xkYS1mQS1EXSkqKT8oPzpbcFBdWystXT9cZCg/Ol8/XGQpKik/KVxifFxiaW5mXGJ8XGJuYW4oPzo6MHhbXGRhLWZBLUZdKD86Xz9bXGRhLWZBLURdKSopP1xiLyxwdW5jdHVhdGlvbjovWygpXS99fXJldHVybiBWbX12YXIgWW0sa047ZnVuY3Rpb24geGooKXtpZihrTilyZXR1cm4gWW07a049MSxZbT1lLGUuZGlzcGxheU5hbWU9IndlYklkbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe3ZhciBpPS8oPzpcQi18XGJffFxiKVtBLVphLXpdW1x3LV0qKD8hW1x3LV0pLy5zb3VyY2UsbD0iKD86IisvXGIoPzp1bnNpZ25lZFxzKyk/bG9uZ1xzK2xvbmcoPyFbXHctXSkvLnNvdXJjZSsifCIrL1xiKD86dW5yZXN0cmljdGVkfHVuc2lnbmVkKVxzK1thLXpdKyg/IVtcdy1dKS8uc291cmNlKyJ8IisvKD8hKD86dW5yZXN0cmljdGVkfHVuc2lnbmVkKVxiKS8uc291cmNlK2krLyg/OlxzKjwoPzpbXjw+XXw8W148Pl0qPikqPik/Ly5zb3VyY2UrIikiKy8oPzpccypcPyk/Ly5zb3VyY2UsdT17fTthLmxhbmd1YWdlc1sid2ViLWlkbCJdPXtjb21tZW50OntwYXR0ZXJuOi9cL1wvLip8XC9cKltcc1xTXSo/XCpcLy8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyJbXiJdKiIvLGdyZWVkeTohMH0sbmFtZXNwYWNlOntwYXR0ZXJuOlJlZ0V4cCgvKFxibmFtZXNwYWNlXHMrKS8uc291cmNlK2kpLGxvb2tiZWhpbmQ6ITB9LCJjbGFzcy1uYW1lIjpbe3BhdHRlcm46LyhefFteXHctXSkoPzppdGVyYWJsZXxtYXBsaWtlfHNldGxpa2UpXHMqPCg/OltePD5dfDxbXjw+XSo+KSo+Lyxsb29rYmVoaW5kOiEwLGluc2lkZTp1fSx7cGF0dGVybjpSZWdFeHAoLyhcYig/OmF0dHJpYnV0ZXxjb25zdHxkZWxldGVyfGdldHRlcnxvcHRpb25hbHxzZXR0ZXIpXHMrKS8uc291cmNlK2wpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnV9LHtwYXR0ZXJuOlJlZ0V4cCgiKCIrL1xiY2FsbGJhY2tccysvLnNvdXJjZStpKy9ccyo9XHMqLy5zb3VyY2UrIikiK2wpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnV9LHtwYXR0ZXJuOlJlZ0V4cCgvKFxidHlwZWRlZlxiXHMqKS8uc291cmNlK2wpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnV9LHtwYXR0ZXJuOlJlZ0V4cCgvKFxiKD86Y2FsbGJhY2t8ZGljdGlvbmFyeXxlbnVtfGludGVyZmFjZSg/OlxzK21peGluKT8pXHMrKSg/ISg/OmludGVyZmFjZXxtaXhpbilcYikvLnNvdXJjZStpKSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjpSZWdFeHAoLyg6XHMqKS8uc291cmNlK2kpLGxvb2tiZWhpbmQ6ITB9LFJlZ0V4cChpKy8oPz1ccysoPzppbXBsZW1lbnRzfGluY2x1ZGVzKVxiKS8uc291cmNlKSx7cGF0dGVybjpSZWdFeHAoLyhcYig/OmltcGxlbWVudHN8aW5jbHVkZXMpXHMrKS8uc291cmNlK2kpLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOlJlZ0V4cChsKyIoPz0iKy9ccyooPzpcLnszfVxzKik/Ly5zb3VyY2UraSsvXHMqWygpLDs9XS8uc291cmNlKyIpIiksaW5zaWRlOnV9XSxidWlsdGluOi9cYig/OkFycmF5QnVmZmVyfEJpZ0ludDY0QXJyYXl8QmlnVWludDY0QXJyYXl8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0YVZpZXd8RmxvYXQzMkFycmF5fEZsb2F0NjRBcnJheXxGcm96ZW5BcnJheXxJbnQxNkFycmF5fEludDMyQXJyYXl8SW50OEFycmF5fE9ic2VydmFibGVBcnJheXxQcm9taXNlfFVTVlN0cmluZ3xVaW50MTZBcnJheXxVaW50MzJBcnJheXxVaW50OEFycmF5fFVpbnQ4Q2xhbXBlZEFycmF5KVxiLyxrZXl3b3JkOlsvXGIoPzphc3luY3xhdHRyaWJ1dGV8Y2FsbGJhY2t8Y29uc3R8Y29uc3RydWN0b3J8ZGVsZXRlcnxkaWN0aW9uYXJ5fGVudW18Z2V0dGVyfGltcGxlbWVudHN8aW5jbHVkZXN8aW5oZXJpdHxpbnRlcmZhY2V8bWl4aW58bmFtZXNwYWNlfG51bGx8b3B0aW9uYWx8b3J8cGFydGlhbHxyZWFkb25seXxyZXF1aXJlZHxzZXR0ZXJ8c3RhdGljfHN0cmluZ2lmaWVyfHR5cGVkZWZ8dW5yZXN0cmljdGVkKVxiLywvXGIoPzphbnl8YmlnaW50fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aXRlcmFibGV8bG9uZ3xtYXBsaWtlfG9iamVjdHxvY3RldHxyZWNvcmR8c2VxdWVuY2V8c2V0bGlrZXxzaG9ydHxzeW1ib2x8dW5kZWZpbmVkfHVuc2lnbmVkfHZvaWQpXGIvXSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG51bWJlcjp7cGF0dGVybjovKF58W15cdy1dKS0/KD86MHhbMC05YS1mXSt8KD86XGQrKD86XC5cZCopP3xcLlxkKykoPzplWystXT9cZCspP3xOYU58SW5maW5pdHkpKD8hW1x3LV0pL2ksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6L1wuezN9fFs9Oj88Pi1dLyxwdW5jdHVhdGlvbjovWygpe31bXF0uLDtdL307Zm9yKHZhciBjIGluIGEubGFuZ3VhZ2VzWyJ3ZWItaWRsIl0pYyE9PSJjbGFzcy1uYW1lIiYmKHVbY109YS5sYW5ndWFnZXNbIndlYi1pZGwiXVtjXSk7YS5sYW5ndWFnZXMud2ViaWRsPWEubGFuZ3VhZ2VzWyJ3ZWItaWRsIl19KShuKX1yZXR1cm4gWW19dmFyIEttLENOO2Z1bmN0aW9uIEFqKCl7aWYoQ04pcmV0dXJuIEttO0NOPTEsS209ZSxlLmRpc3BsYXlOYW1lPSJ3aWtpIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXtuLmxhbmd1YWdlcy53aWtpPW4ubGFuZ3VhZ2VzLmV4dGVuZCgibWFya3VwIix7ImJsb2NrLWNvbW1lbnQiOntwYXR0ZXJuOi8oXnxbXlxcXSlcL1wqW1xzXFNdKj9cKlwvLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJjb21tZW50In0saGVhZGluZzp7cGF0dGVybjovXig9KylbXj1cclxuXS4qP1wxL20saW5zaWRlOntwdW5jdHVhdGlvbjovXj0rfD0rJC8saW1wb3J0YW50Oi8uKy99fSxlbXBoYXNpczp7cGF0dGVybjovKCd7Miw1fSkuKz9cMS8saW5zaWRlOnsiYm9sZC1pdGFsaWMiOntwYXR0ZXJuOi8oJycnJycpLis/KD89XDEpLyxsb29rYmVoaW5kOiEwLGFsaWFzOlsiYm9sZCIsIml0YWxpYyJdfSxib2xkOntwYXR0ZXJuOi8oJycnKVteJ10oPzouKj9bXiddKT8oPz1cMSkvLGxvb2tiZWhpbmQ6ITB9LGl0YWxpYzp7cGF0dGVybjovKCcnKVteJ10oPzouKj9bXiddKT8oPz1cMSkvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9eJycrfCcnKyQvfX0saHI6e3BhdHRlcm46L14tezQsfS9tLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHVybDpbL0lTQk4gKyg/Ojk3Wzg5XVsgLV0/KT8oPzpcZFsgLV0/KXs5fVtcZHhdXGJ8KD86UE1JRHxSRkMpICtcZCsvaSwvXFtcWy4rP1xdXF18XFsuKz9cXS9dLHZhcmlhYmxlOlsvX19bQS1aXStfXy8sL1x7ezN9Lis/XH17M30vLC9ce1x7Lis/XH1cfS9dLHN5bWJvbDpbL14jcmVkaXJlY3QvaW0sL357Myw1fS9dLCJ0YWJsZS10YWciOntwYXR0ZXJuOi8oKD86XnxbfCFdKVt8IV0pW158XHJcbl0rXHwoPyFcfCkvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7InRhYmxlLWJhciI6e3BhdHRlcm46L1x8JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0scmVzdDpuLmxhbmd1YWdlcy5tYXJrdXAudGFnLmluc2lkZX19LHB1bmN0dWF0aW9uOi9eKD86XHtcfHxcfFx9fFx8LXxbKiM6OyF8XSl8XHxcfHwhIS9tfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJ3aWtpIiwidGFnIix7bm93aWtpOntwYXR0ZXJuOi88KG5vd2lraXxwcmV8c291cmNlKVxiW14+XSo+W1xzXFNdKj88XC9cMT4vaSxpbnNpZGU6e3RhZzp7cGF0dGVybjovPCg/Om5vd2lraXxwcmV8c291cmNlKVxiW14+XSo+fDxcLyg/Om5vd2lraXxwcmV8c291cmNlKT4vaSxpbnNpZGU6bi5sYW5ndWFnZXMubWFya3VwLnRhZy5pbnNpZGV9fX19KX1yZXR1cm4gS219dmFyIFdtLElOO2Z1bmN0aW9uIF9qKCl7aWYoSU4pcmV0dXJuIFdtO0lOPTEsV209ZSxlLmRpc3BsYXlOYW1lPSJ3b2xmcmFtIixlLmFsaWFzZXM9WyJtYXRoZW1hdGljYSIsIndsIiwibmIiXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLndvbGZyYW09e2NvbW1lbnQ6L1woXCooPzpcKFwqKD86W14qXXxcKig/IVwpKSkqXCpcKXwoPyFcKFwqKVtcc1xTXSkqP1wqXCkvLHN0cmluZzp7cGF0dGVybjovIig/OlxcLnxbXiJcXFxyXG5dKSoiLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86QWJzfEFic0FyZ3xBY2N1cmFjeXxCbG9ja3xEb3xGb3J8RnVuY3Rpb258SWZ8TWFuaXB1bGF0ZXxNb2R1bGV8TmVzdHxOZXN0TGlzdHxOb25lfFJldHVybnxTd2l0Y2h8VGFibGV8V2hpY2h8V2hpbGUpXGIvLGNvbnRleHQ6e3BhdHRlcm46L1xiXHcrYCtcdyovLGFsaWFzOiJjbGFzcy1uYW1lIn0sYmxhbms6e3BhdHRlcm46L1xiXHcrX1xiLyxhbGlhczoicmVnZXgifSwiZ2xvYmFsLXZhcmlhYmxlIjp7cGF0dGVybjovXCRcdysvLGFsaWFzOiJ2YXJpYWJsZSJ9LGJvb2xlYW46L1xiKD86RmFsc2V8VHJ1ZSlcYi8sbnVtYmVyOi8oPzpcYig/PVxkKXxcQig/PVwuKSkoPzowW2JvXSk/KD86KD86XGR8MHhbXGRhLWZdKVtcZGEtZl0qKD86XC5cZCopP3xcLlxkKykoPzplWystXT9cZCspP2o/XGIvaSxvcGVyYXRvcjovXC9cLnw7fD1cLnxcXj18XF46PXw6PXw8PHw+Pnw8XHx8XHw+fDo+fFx8LT58LT58PC18QEBAfEBAfEB8XC9AfD0hPXw9PT18PT18PXxcK3wtfFxefFxbXC8tKyU9XF09P3whPXxcKlwqPz0/fFwvXC8/PT98PFs8PT5dP3w+Wz0+XT98WyZ8Xn5dLyxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS99LG4ubGFuZ3VhZ2VzLm1hdGhlbWF0aWNhPW4ubGFuZ3VhZ2VzLndvbGZyYW0sbi5sYW5ndWFnZXMud2w9bi5sYW5ndWFnZXMud29sZnJhbSxuLmxhbmd1YWdlcy5uYj1uLmxhbmd1YWdlcy53b2xmcmFtfXJldHVybiBXbX12YXIgWG0sT047ZnVuY3Rpb24gUmooKXtpZihPTilyZXR1cm4gWG07T049MSxYbT1lLGUuZGlzcGxheU5hbWU9IndyZW4iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLndyZW49e2NvbW1lbnQ6W3twYXR0ZXJuOi9cL1wqKD86W14qL118XCooPyFcLyl8XC8oPyFcKil8XC9cKig/OlteKi9dfFwqKD8hXC8pfFwvKD8hXCopfFwvXCooPzpbXiovXXxcKig/IVwvKXxcLyg/IVwqKSkqXCpcLykqXCpcLykqXCpcLy8sZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXDpdKVwvXC8uKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSwidHJpcGxlLXF1b3RlZC1zdHJpbmciOntwYXR0ZXJuOi8iIiJbXHNcU10qPyIiIi8sZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmcifSwic3RyaW5nLWxpdGVyYWwiOm51bGwsaGFzaGJhbmc6e3BhdHRlcm46L14jIVwvLisvLGdyZWVkeTohMCxhbGlhczoiY29tbWVudCJ9LGF0dHJpYnV0ZTp7cGF0dGVybjovIyE/WyBcdFx1MzAwMF0qXHcrLyxhbGlhczoia2V5d29yZCJ9LCJjbGFzcy1uYW1lIjpbe3BhdHRlcm46LyhcYmNsYXNzXHMrKVx3Ky8sbG9va2JlaGluZDohMH0sL1xiW0EtWl1bYS16XGRfXSpcYi9dLGNvbnN0YW50Oi9cYltBLVpdW0EtWlxkX10qXGIvLG51bGw6e3BhdHRlcm46L1xibnVsbFxiLyxhbGlhczoia2V5d29yZCJ9LGtleXdvcmQ6L1xiKD86YXN8YnJlYWt8Y2xhc3N8Y29uc3RydWN0fGNvbnRpbnVlfGVsc2V8Zm9yfGZvcmVpZ258aWZ8aW1wb3J0fGlufGlzfHJldHVybnxzdGF0aWN8c3VwZXJ8dGhpc3x2YXJ8d2hpbGUpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sbnVtYmVyOi9cYig/OjB4W1xkYS1mXSt8XGQrKD86XC5cZCspPyg/OmVbKy1dP1xkKyk/KVxiL2ksZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqWyh7XSkvaSxvcGVyYXRvcjovPDx8Pj58Wz0hPD5dPT98JiZ8XHxcfHxbLSsqLyV+XiZ8PzpdfFwuezIsM30vLHB1bmN0dWF0aW9uOi9bXFtcXSgpe30uLDtdL30sbi5sYW5ndWFnZXMud3Jlblsic3RyaW5nLWxpdGVyYWwiXT17cGF0dGVybjovKF58W15cXCJdKSIoPzpbXlxcIiVdfFxcW1xzXFNdfCUoPyFcKCl8JVwoKD86W14oKV18XCgoPzpbXigpXXxcKFteKV0qXCkpKlwpKSpcKSkqIi8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oKD86XnxbXlxcXSkoPzpcXHsyfSkqKSVcKCg/OlteKCldfFwoKD86W14oKV18XChbXildKlwpKSpcKSkqXCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntleHByZXNzaW9uOntwYXR0ZXJuOi9eKCVcKClbXHNcU10rKD89XCkkKS8sbG9va2JlaGluZDohMCxpbnNpZGU6bi5sYW5ndWFnZXMud3Jlbn0sImludGVycG9sYXRpb24tcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eJVwofFwpJC8sYWxpYXM6InB1bmN0dWF0aW9uIn19fSxzdHJpbmc6L1tcc1xTXSsvfX19cmV0dXJuIFhtfXZhciBabSxMTjtmdW5jdGlvbiBOaigpe2lmKExOKXJldHVybiBabTtMTj0xLFptPWUsZS5kaXNwbGF5TmFtZT0ieGVvcmEiLGUuYWxpYXNlcz1bInhlb3JhY3ViZSJdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2EubGFuZ3VhZ2VzLnhlb3JhPWEubGFuZ3VhZ2VzLmV4dGVuZCgibWFya3VwIix7Y29uc3RhbnQ6e3BhdHRlcm46L1wkKD86RG9tYWluQ29udGVudHN8UGFnZVJlbmRlckR1cmF0aW9uKVwkLyxpbnNpZGU6e3B1bmN0dWF0aW9uOntwYXR0ZXJuOi9cJC99fX0sdmFyaWFibGU6e3BhdHRlcm46L1wkQD8oPzojK3xbLSsqfj1eXSk/W1x3Ll0rXCQvLGluc2lkZTp7cHVuY3R1YXRpb246e3BhdHRlcm46L1skLl0vfSxvcGVyYXRvcjp7cGF0dGVybjovIyt8Wy0rKn49XkBdL319fSwiZnVuY3Rpb24taW5saW5lIjp7cGF0dGVybjovXCRGOlstXHcuXStcP1stXHcuXSsoPzosKD86KD86QFstI10qXHcrXC5bXHcrLl1cLiopKlx8KSooPzooPzpbXHcrXXxbLSMqLn5eXStbXHcrXXw9XFMpKD86W14kPV18PStbXj1dKSo9KnwoPzpAWy0jXSpcdytcLltcdysuXVwuKikrKD86KD86W1x3K118Wy0jKn5eXVstIyoufl5dKltcdytdfD1cUykoPzpbXiQ9XXw9K1tePV0pKj0qKT8pPyk/XCQvLGluc2lkZTp7dmFyaWFibGU6e3BhdHRlcm46Lyg/OlssfF0pQD8oPzojK3xbLSsqfj1eXSk/W1x3Ll0rLyxpbnNpZGU6e3B1bmN0dWF0aW9uOntwYXR0ZXJuOi9bLC58XS99LG9wZXJhdG9yOntwYXR0ZXJuOi8jK3xbLSsqfj1eQF0vfX19LHB1bmN0dWF0aW9uOntwYXR0ZXJuOi9cJFx3OnxbJDo/Lix8XS99fSxhbGlhczoiZnVuY3Rpb24ifSwiZnVuY3Rpb24tYmxvY2siOntwYXR0ZXJuOi9cJFhGOlx7Wy1cdy5dK1w/Wy1cdy5dKyg/OiwoPzooPzpAWy0jXSpcdytcLltcdysuXVwuKikqXHwpKig/Oig/OltcdytdfFstIyoufl5dK1tcdytdfD1cUykoPzpbXiQ9XXw9K1tePV0pKj0qfCg/OkBbLSNdKlx3K1wuW1x3Ky5dXC4qKSsoPzooPzpbXHcrXXxbLSMqfl5dWy0jKi5+Xl0qW1x3K118PVxTKSg/OlteJD1dfD0rW149XSkqPSopPyk/KT9cfTpYRlwkLyxpbnNpZGU6e3B1bmN0dWF0aW9uOntwYXR0ZXJuOi9bJDp7fT8uLHxdL319LGFsaWFzOiJmdW5jdGlvbiJ9LCJkaXJlY3RpdmUtaW5saW5lIjp7cGF0dGVybjovXCRcdyg/OiNcZCtcKz8pPyg/OlxbWy1cdy5dK1xdKT86Wy1cL1x3Ll0rXCQvLGluc2lkZTp7cHVuY3R1YXRpb246e3BhdHRlcm46L1wkKD86XHc6fEMoPzpcW3wjXGQpKT98Wzp7W1xdXS8saW5zaWRlOnt0YWc6e3BhdHRlcm46LyNcZC99fX19LGFsaWFzOiJmdW5jdGlvbiJ9LCJkaXJlY3RpdmUtYmxvY2stb3BlbiI6e3BhdHRlcm46L1wkXHcrOlx7fFwkXHcoPzojXGQrXCs/KT8oPzpcW1stXHcuXStcXSk/OlstXHcuXSs6XHsoPzohW0EtWl0rKT8vLGluc2lkZTp7cHVuY3R1YXRpb246e3BhdHRlcm46L1wkKD86XHc6fEMoPzpcW3wjXGQpKT98Wzp7W1xdXS8saW5zaWRlOnt0YWc6e3BhdHRlcm46LyNcZC99fX0sYXR0cmlidXRlOntwYXR0ZXJuOi8hW0EtWl0rJC8saW5zaWRlOntwdW5jdHVhdGlvbjp7cGF0dGVybjovIS99fSxhbGlhczoia2V5d29yZCJ9fSxhbGlhczoiZnVuY3Rpb24ifSwiZGlyZWN0aXZlLWJsb2NrLXNlcGFyYXRvciI6e3BhdHRlcm46L1x9OlstXHcuXSs6XHsvLGluc2lkZTp7cHVuY3R1YXRpb246e3BhdHRlcm46L1s6e31dL319LGFsaWFzOiJmdW5jdGlvbiJ9LCJkaXJlY3RpdmUtYmxvY2stY2xvc2UiOntwYXR0ZXJuOi9cfTpbLVx3Ll0rXCQvLGluc2lkZTp7cHVuY3R1YXRpb246e3BhdHRlcm46L1s6e30kXS99fSxhbGlhczoiZnVuY3Rpb24ifX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiaW5zaWRlIiwicHVuY3R1YXRpb24iLHt2YXJpYWJsZTphLmxhbmd1YWdlcy54ZW9yYVsiZnVuY3Rpb24taW5saW5lIl0uaW5zaWRlLnZhcmlhYmxlfSxhLmxhbmd1YWdlcy54ZW9yYVsiZnVuY3Rpb24tYmxvY2siXSksYS5sYW5ndWFnZXMueGVvcmFjdWJlPWEubGFuZ3VhZ2VzLnhlb3JhfSkobil9cmV0dXJuIFptfXZhciBRbSxETjtmdW5jdGlvbiB3aigpe2lmKEROKXJldHVybiBRbTtETj0xLFFtPWUsZS5kaXNwbGF5TmFtZT0ieG1sRG9jIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZShuKXsoZnVuY3Rpb24oYSl7ZnVuY3Rpb24gaShkLGYpe2EubGFuZ3VhZ2VzW2RdJiZhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoZCwiY29tbWVudCIseyJkb2MtY29tbWVudCI6Zn0pfXZhciBsPWEubGFuZ3VhZ2VzLm1hcmt1cC50YWcsdT17cGF0dGVybjovXC9cL1wvLiovLGdyZWVkeTohMCxhbGlhczoiY29tbWVudCIsaW5zaWRlOnt0YWc6bH19LGM9e3BhdHRlcm46LycnJy4qLyxncmVlZHk6ITAsYWxpYXM6ImNvbW1lbnQiLGluc2lkZTp7dGFnOmx9fTtpKCJjc2hhcnAiLHUpLGkoImZzaGFycCIsdSksaSgidmJuZXQiLGMpfSkobil9cmV0dXJuIFFtfXZhciBKbSxNTjtmdW5jdGlvbiBraigpe2lmKE1OKXJldHVybiBKbTtNTj0xLEptPWUsZS5kaXNwbGF5TmFtZT0ieG9qbyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7bi5sYW5ndWFnZXMueG9qbz17Y29tbWVudDp7cGF0dGVybjovKD86J3xcL1wvfFJlbVxiKS4rL2ksZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzoiInxbXiJdKSoiLyxncmVlZHk6ITB9LG51bWJlcjpbLyg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OkVbKy1dP1xkKyk/L2ksLyZbYmNob3VdW2EtelxkXSsvaV0sZGlyZWN0aXZlOntwYXR0ZXJuOi8jKD86RWxzZXxFbHNlSWZ8RW5kaWZ8SWZ8UHJhZ21hKVxiL2ksYWxpYXM6InByb3BlcnR5In0sa2V5d29yZDovXGIoPzpBZGRIYW5kbGVyfEFwcHxBcnJheXxBcyg/OnNpZ25zKT98QXV0b3xCb29sZWFufEJyZWFrfEJ5KD86UmVmfFZhbCl8Qnl0ZXxDYWxsfENhc2V8Q2F0Y2h8Q0ZTdHJpbmdSZWZ8Q0dGbG9hdHxDbGFzc3xDb2xvcnxDb25zdHxDb250aW51ZXxDU3RyaW5nfEN1cnJlbmN5fEN1cnJlbnRNZXRob2ROYW1lfERlY2xhcmV8RGVsZWdhdGV8RGltfERvKD86dWJsZXx3blRvKT98RWFjaHxFbHNlKD86SWYpP3xFbmR8RW51bWVyYXRpb258RXZlbnR8RXhjZXB0aW9ufEV4aXR8RXh0ZW5kc3xGYWxzZXxGaW5hbGx5fEZvcnxGdW5jdGlvbnxHZXR8R2V0VHlwZUluZm98R2xvYmFsfEdPVE98SWZ8SW1wbGVtZW50c3xJbnxJbmhlcml0c3xJbnQoPzo4fDE2fDMyfDY0fGVnZXJ8ZXJmYWNlKT98TGlifExvb3B8TWV8TW9kdWxlfE5leHR8TmlsfE9iamVjdHxPcHRpb25hbHxPU1R5cGV8UGFyYW1BcnJheXxQcml2YXRlfFByb3BlcnR5fFByb3RlY3RlZHxQU3RyaW5nfFB0cnxSYWlzZSg/OkV2ZW50KT98UmVEaW18UmVtb3ZlSGFuZGxlcnxSZXR1cm58U2VsZWN0KD86b3IpP3xTZWxmfFNldHxTaGFyZWR8U2hvcnR8U2luZ2xlfFNvZnR8U3RhdGljfFN0ZXB8U3RyaW5nfFN1YnxTdXBlcnxUZXh0fFRoZW58VG98VHJ1ZXxUcnl8VWJvdW5kfFVJbnQoPzo4fDE2fDMyfDY0fGVnZXIpP3xVbnRpbHxVc2luZ3xWYXIoPzppYW50KT98V2VuZHxXaGlsZXxXaW5kb3dQdHJ8V1N0cmluZylcYi9pLG9wZXJhdG9yOi88Wz0+XT98Pj0/fFsrXC0qXC9cXF49XXxcYig/OkFkZHJlc3NPZnxBbmR8Q3R5cGV8SXNBP3xNb2R8TmV3fE5vdHxPcnxXZWFrQWRkcmVzc09mfFhvcilcYi9pLHB1bmN0dWF0aW9uOi9bLiw7OigpXS99fXJldHVybiBKbX12YXIgZWgsVU47ZnVuY3Rpb24gQ2ooKXtpZihVTilyZXR1cm4gZWg7VU49MSxlaD1lLGUuZGlzcGxheU5hbWU9InhxdWVyeSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2EubGFuZ3VhZ2VzLnhxdWVyeT1hLmxhbmd1YWdlcy5leHRlbmQoIm1hcmt1cCIseyJ4cXVlcnktY29tbWVudCI6e3BhdHRlcm46L1woOltcc1xTXSo/OlwpLyxncmVlZHk6ITAsYWxpYXM6ImNvbW1lbnQifSxzdHJpbmc6e3BhdHRlcm46LyhbIiddKSg/OlwxXDF8KD8hXDEpW1xzXFNdKSpcMS8sZ3JlZWR5OiEwfSxleHRlbnNpb246e3BhdHRlcm46L1woIy4rPyNcKS8sYWxpYXM6InN5bWJvbCJ9LHZhcmlhYmxlOi9cJFstXHc6XSsvLGF4aXM6e3BhdHRlcm46LyhefFteLV0pKD86YW5jZXN0b3IoPzotb3Itc2VsZik/fGF0dHJpYnV0ZXxjaGlsZHxkZXNjZW5kYW50KD86LW9yLXNlbGYpP3xmb2xsb3dpbmcoPzotc2libGluZyk/fHBhcmVudHxwcmVjZWRpbmcoPzotc2libGluZyk/fHNlbGYpKD89OjopLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LCJrZXl3b3JkLW9wZXJhdG9yIjp7cGF0dGVybjovKF58W146LV0pXGIoPzphbmR8Y2FzdGFibGUgYXN8ZGl2fGVxfGV4Y2VwdHxnZXxndHxpZGl2fGluc3RhbmNlIG9mfGludGVyc2VjdHxpc3xsZXxsdHxtb2R8bmV8b3J8dW5pb24pXGIoPz0kfFteOi1dKS8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSxrZXl3b3JkOntwYXR0ZXJuOi8oXnxbXjotXSlcYig/OmFzfGFzY2VuZGluZ3xhdHxiYXNlLXVyaXxib3VuZGFyeS1zcGFjZXxjYXNlfGNhc3QgYXN8Y29sbGF0aW9ufGNvbnN0cnVjdGlvbnxjb3B5LW5hbWVzcGFjZXN8ZGVjbGFyZXxkZWZhdWx0fGRlc2NlbmRpbmd8ZWxzZXxlbXB0eSAoPzpncmVhdGVzdHxsZWFzdCl8ZW5jb2Rpbmd8ZXZlcnl8ZXh0ZXJuYWx8Zm9yfGZ1bmN0aW9ufGlmfGltcG9ydHxpbnxpbmhlcml0fGxheHxsZXR8bWFwfG1vZHVsZXxuYW1lc3BhY2V8bm8taW5oZXJpdHxuby1wcmVzZXJ2ZXxvcHRpb258b3JkZXIoPzogYnl8ZWR8aW5nKT98cHJlc2VydmV8cmV0dXJufHNhdGlzZmllc3xzY2hlbWF8c29tZXxzdGFibGV8c3RyaWN0fHN0cmlwfHRoZW58dG98dHJlYXQgYXN8dHlwZXN3aXRjaHx1bm9yZGVyZWR8dmFsaWRhdGV8dmFyaWFibGV8dmVyc2lvbnx3aGVyZXx4cXVlcnkpXGIoPz0kfFteOi1dKS8sbG9va2JlaGluZDohMH0sZnVuY3Rpb246L1tcdy1dKyg/OjpbXHctXSspKig/PVxzKlwoKS8sInhxdWVyeS1lbGVtZW50Ijp7cGF0dGVybjovKGVsZW1lbnRccyspW1x3LV0rKD86Oltcdy1dKykqLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJ0YWcifSwieHF1ZXJ5LWF0dHJpYnV0ZSI6e3BhdHRlcm46LyhhdHRyaWJ1dGVccyspW1x3LV0rKD86Oltcdy1dKykqLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJhdHRyLW5hbWUifSxidWlsdGluOntwYXR0ZXJuOi8oXnxbXjotXSlcYig/OmF0dHJpYnV0ZXxjb21tZW50fGRvY3VtZW50fGVsZW1lbnR8cHJvY2Vzc2luZy1pbnN0cnVjdGlvbnx0ZXh0fHhzOig/OkVOVElUSUVTfEVOVElUWXxJRHxJRFJFRlM/fE5DTmFtZXxOTVRPS0VOUz98Tk9UQVRJT058TmFtZXxRTmFtZXxhbnlBdG9taWNUeXBlfGFueVR5cGV8YW55VVJJfGJhc2U2NEJpbmFyeXxib29sZWFufGJ5dGV8ZGF0ZXxkYXRlVGltZXxkYXlUaW1lRHVyYXRpb258ZGVjaW1hbHxkb3VibGV8ZHVyYXRpb258ZmxvYXR8Z0RheXxnTW9udGh8Z01vbnRoRGF5fGdZZWFyfGdZZWFyTW9udGh8aGV4QmluYXJ5fGludHxpbnRlZ2VyfGxhbmd1YWdlfGxvbmd8bmVnYXRpdmVJbnRlZ2VyfG5vbk5lZ2F0aXZlSW50ZWdlcnxub25Qb3NpdGl2ZUludGVnZXJ8bm9ybWFsaXplZFN0cmluZ3xwb3NpdGl2ZUludGVnZXJ8c2hvcnR8c3RyaW5nfHRpbWV8dG9rZW58dW5zaWduZWQoPzpCeXRlfEludHxMb25nfFNob3J0KXx1bnR5cGVkKD86QXRvbWljKT98eWVhck1vbnRoRHVyYXRpb24pKVxiKD89JHxbXjotXSkvLGxvb2tiZWhpbmQ6ITB9LG51bWJlcjovXGJcZCsoPzpcLlxkKyk/KD86RVsrLV0/XGQrKT8vLG9wZXJhdG9yOlsvWysqPT98QF18XC5cLj98Oj18IT18PFs9PF0/fD5bPT5dPy8se3BhdHRlcm46LyhccyktKD89XHMpLyxsb29rYmVoaW5kOiEwfV0scHVuY3R1YXRpb246L1tbXF0oKXt9LDs6L10vfSksYS5sYW5ndWFnZXMueHF1ZXJ5LnRhZy5wYXR0ZXJuPS88XC8/KD8hXGQpW15ccz5cLz0kPCVdKyg/OlxzK1teXHM+XC89XSsoPzo9KD86KCJ8JykoPzpcXFtcc1xTXXxceyg/IVx7KSg/Olx7KD86XHtbXnt9XSpcfXxbXnt9XSkqXH18W157fV0pK1x9fCg/IVwxKVteXFxdKSpcMXxbXlxzJyI+PV0rKSk/KSpccypcLz8+LyxhLmxhbmd1YWdlcy54cXVlcnkudGFnLmluc2lkZVsiYXR0ci12YWx1ZSJdLnBhdHRlcm49Lz0oPzooInwnKSg/OlxcW1xzXFNdfFx7KD8hXHspKD86XHsoPzpce1tee31dKlx9fFtee31dKSpcfXxbXnt9XSkrXH18KD8hXDEpW15cXF0pKlwxfFteXHMnIj49XSspLyxhLmxhbmd1YWdlcy54cXVlcnkudGFnLmluc2lkZVsiYXR0ci12YWx1ZSJdLmluc2lkZS5wdW5jdHVhdGlvbj0vXj0ifCIkLyxhLmxhbmd1YWdlcy54cXVlcnkudGFnLmluc2lkZVsiYXR0ci12YWx1ZSJdLmluc2lkZS5leHByZXNzaW9uPXtwYXR0ZXJuOi9ceyg/IVx7KSg/Olx7KD86XHtbXnt9XSpcfXxbXnt9XSkqXH18W157fV0pK1x9LyxpbnNpZGU6YS5sYW5ndWFnZXMueHF1ZXJ5LGFsaWFzOiJsYW5ndWFnZS14cXVlcnkifTt2YXIgaT1mdW5jdGlvbih1KXtyZXR1cm4gdHlwZW9mIHU9PSJzdHJpbmciP3U6dHlwZW9mIHUuY29udGVudD09InN0cmluZyI/dS5jb250ZW50OnUuY29udGVudC5tYXAoaSkuam9pbigiIil9LGw9ZnVuY3Rpb24odSl7Zm9yKHZhciBjPVtdLGQ9MDtkPHUubGVuZ3RoO2QrKyl7dmFyIGY9dVtkXSxtPSExO2lmKHR5cGVvZiBmIT0ic3RyaW5nIiYmKGYudHlwZT09PSJ0YWciJiZmLmNvbnRlbnRbMF0mJmYuY29udGVudFswXS50eXBlPT09InRhZyI/Zi5jb250ZW50WzBdLmNvbnRlbnRbMF0uY29udGVudD09PSI8LyI/Yy5sZW5ndGg+MCYmY1tjLmxlbmd0aC0xXS50YWdOYW1lPT09aShmLmNvbnRlbnRbMF0uY29udGVudFsxXSkmJmMucG9wKCk6Zi5jb250ZW50W2YuY29udGVudC5sZW5ndGgtMV0uY29udGVudD09PSIvPiJ8fGMucHVzaCh7dGFnTmFtZTppKGYuY29udGVudFswXS5jb250ZW50WzFdKSxvcGVuZWRCcmFjZXM6MH0pOmMubGVuZ3RoPjAmJmYudHlwZT09PSJwdW5jdHVhdGlvbiImJmYuY29udGVudD09PSJ7IiYmKCF1W2QrMV18fHVbZCsxXS50eXBlIT09InB1bmN0dWF0aW9uInx8dVtkKzFdLmNvbnRlbnQhPT0ieyIpJiYoIXVbZC0xXXx8dVtkLTFdLnR5cGUhPT0icGxhaW4tdGV4dCJ8fHVbZC0xXS5jb250ZW50IT09InsiKT9jW2MubGVuZ3RoLTFdLm9wZW5lZEJyYWNlcysrOmMubGVuZ3RoPjAmJmNbYy5sZW5ndGgtMV0ub3BlbmVkQnJhY2VzPjAmJmYudHlwZT09PSJwdW5jdHVhdGlvbiImJmYuY29udGVudD09PSJ9Ij9jW2MubGVuZ3RoLTFdLm9wZW5lZEJyYWNlcy0tOmYudHlwZSE9PSJjb21tZW50IiYmKG09ITApKSwobXx8dHlwZW9mIGY9PSJzdHJpbmciKSYmYy5sZW5ndGg+MCYmY1tjLmxlbmd0aC0xXS5vcGVuZWRCcmFjZXM9PT0wKXt2YXIgYj1pKGYpO2Q8dS5sZW5ndGgtMSYmKHR5cGVvZiB1W2QrMV09PSJzdHJpbmcifHx1W2QrMV0udHlwZT09PSJwbGFpbi10ZXh0IikmJihiKz1pKHVbZCsxXSksdS5zcGxpY2UoZCsxLDEpKSxkPjAmJih0eXBlb2YgdVtkLTFdPT0ic3RyaW5nInx8dVtkLTFdLnR5cGU9PT0icGxhaW4tdGV4dCIpJiYoYj1pKHVbZC0xXSkrYix1LnNwbGljZShkLTEsMSksZC0tKSwvXlxzKyQvLnRlc3QoYik/dVtkXT1iOnVbZF09bmV3IGEuVG9rZW4oInBsYWluLXRleHQiLGIsbnVsbCxiKX1mLmNvbnRlbnQmJnR5cGVvZiBmLmNvbnRlbnQhPSJzdHJpbmciJiZsKGYuY29udGVudCl9fTthLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKHUpe3UubGFuZ3VhZ2U9PT0ieHF1ZXJ5IiYmbCh1LnRva2Vucyl9KX0pKG4pfXJldHVybiBlaH12YXIgdGgsRk47ZnVuY3Rpb24gSWooKXtpZihGTilyZXR1cm4gdGg7Rk49MSx0aD1lLGUuZGlzcGxheU5hbWU9InlhbmciLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKG4pe24ubGFuZ3VhZ2VzLnlhbmc9e2NvbW1lbnQ6L1wvXCpbXHNcU10qP1wqXC98XC9cLy4qLyxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXlxcIl18XFwuKSoifCdbXiddKicvLGdyZWVkeTohMH0sa2V5d29yZDp7cGF0dGVybjovKF58W3t9O1xyXG5dWyBcdF0qKVthLXpfXVtcdy4tXSovaSxsb29rYmVoaW5kOiEwfSxuYW1lc3BhY2U6e3BhdHRlcm46LyhccylbYS16X11bXHcuLV0qKD89OikvaSxsb29rYmVoaW5kOiEwfSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG9wZXJhdG9yOi9cKy8scHVuY3R1YXRpb246L1t7fTs6XS99fXJldHVybiB0aH12YXIgbmgsQk47ZnVuY3Rpb24gT2ooKXtpZihCTilyZXR1cm4gbmg7Qk49MSxuaD1lLGUuZGlzcGxheU5hbWU9InppZyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUobil7KGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGkoYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGJ9fXZhciBsPS9cYig/OmFsaWdufGFsbG93emVyb3xhbmR8YW55ZnJhbWV8YW55dHlwZXxhc218YXN5bmN8YXdhaXR8YnJlYWt8Y2FuY2VsfGNhdGNofGNvbXB0aW1lfGNvbnN0fGNvbnRpbnVlfGRlZmVyfGVsc2V8ZW51bXxlcnJkZWZlcnxlcnJvcnxleHBvcnR8ZXh0ZXJufGZufGZvcnxpZnxpbmxpbmV8bGlua3NlY3Rpb258bmFrZWRjY3xub2FsaWFzfG5vc3VzcGVuZHxudWxsfG9yfG9yZWxzZXxwYWNrZWR8cHJvbWlzZXxwdWJ8cmVzdW1lfHJldHVybnxzdGRjYWxsY2N8c3RydWN0fHN1c3BlbmR8c3dpdGNofHRlc3R8dGhyZWFkbG9jYWx8dHJ5fHVuZGVmaW5lZHx1bmlvbnx1bnJlYWNoYWJsZXx1c2luZ25hbWVzcGFjZXx2YXJ8dm9sYXRpbGV8d2hpbGUpXGIvLHU9IlxcYig/ISIrbC5zb3VyY2UrIikoPyFcXGQpXFx3K1xcYiIsYz0vYWxpZ25ccypcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpLy5zb3VyY2UsZD0vKD86XD98XGJwcm9taXNlLT58KD86XFtbXltcXV0qXF18XCooPyFcKil8XCpcKikoPzpccyo8QUxJR04+fFxzKmNvbnN0XGJ8XHMqdm9sYXRpbGVcYnxccyphbGxvd3plcm9cYikqKS8uc291cmNlLnJlcGxhY2UoLzxBTElHTj4vZyxpKGMpKSxmPS8oPzpcYnByb21pc2VcYnwoPzpcYmVycm9yXC4pPzxJRD4oPzpcLjxJRD4pKig/IVxzKzxJRD4pKS8uc291cmNlLnJlcGxhY2UoLzxJRD4vZyxpKHUpKSxtPSIoPyFcXHMpKD86IT9cXHMqKD86IitkKyJcXHMqKSoiK2YrIikrIjthLmxhbmd1YWdlcy56aWc9e2NvbW1lbnQ6W3twYXR0ZXJuOi9cL1wvWy8hXS4qLyxhbGlhczoiZG9jLWNvbW1lbnQifSwvXC97Mn0uKi9dLHN0cmluZzpbe3BhdHRlcm46LyhefFteXFxAXSljPyIoPzpbXiJcXFxyXG5dfFxcLikqIi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oW1xyXG5dKShbIFx0XStjP1xcezJ9KS4qKD86KD86XHJcbj98XG4pXDIuKikqLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLGNoYXI6e3BhdHRlcm46LyhefFteXFxdKScoPzpbXidcXFxyXG5dfFtcdUQ4MDAtXHVERkZGXXsyfXxcXCg/Oi58eFthLWZBLUZcZF17Mn18dVx7W2EtZkEtRlxkXXsxLDZ9XH0pKScvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxidWlsdGluOi9cQkAoPyFcZClcdysoPz1ccypcKCkvLGxhYmVsOntwYXR0ZXJuOi8oXGIoPzpicmVha3xjb250aW51ZSlccyo6XHMqKVx3K1xifFxiKD8hXGQpXHcrXGIoPz1ccyo6XHMqKD86XHt8d2hpbGVcYikpLyxsb29rYmVoaW5kOiEwfSwiY2xhc3MtbmFtZSI6Wy9cYig/IVxkKVx3Kyg/PVxzKj1ccyooPzooPzpleHRlcm58cGFja2VkKVxzKyk/KD86ZW51bXxzdHJ1Y3R8dW5pb24pXHMqWyh7XSkvLHtwYXR0ZXJuOlJlZ0V4cCgvKDpccyopPFRZUEU+KD89XHMqKD86PEFMSUdOPlxzKik/Wz07LCldKXw8VFlQRT4oPz1ccyooPzo8QUxJR04+XHMqKT9ceykvLnNvdXJjZS5yZXBsYWNlKC88VFlQRT4vZyxpKG0pKS5yZXBsYWNlKC88QUxJR04+L2csaShjKSkpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm51bGx9LHtwYXR0ZXJuOlJlZ0V4cCgvKFwpXHMqKTxUWVBFPig/PVxzKig/OjxBTElHTj5ccyopPzspLy5zb3VyY2UucmVwbGFjZSgvPFRZUEU+L2csaShtKSkucmVwbGFjZSgvPEFMSUdOPi9nLGkoYykpKSxsb29rYmVoaW5kOiEwLGluc2lkZTpudWxsfV0sImJ1aWx0aW4tdHlwZSI6e3BhdHRlcm46L1xiKD86YW55ZXJyb3J8Ym9vbHxjX3U/KD86aW50fGxvbmd8bG9uZ2xvbmd8c2hvcnQpfGNfbG9uZ2RvdWJsZXxjX3ZvaWR8Y29tcHRpbWVfKD86ZmxvYXR8aW50KXxmKD86MTZ8MzJ8NjR8MTI4KXxbaXVdKD86OHwxNnwzMnw2NHwxMjh8c2l6ZSl8bm9yZXR1cm58dHlwZXx2b2lkKVxiLyxhbGlhczoia2V5d29yZCJ9LGtleXdvcmQ6bCxmdW5jdGlvbjovXGIoPyFcZClcdysoPz1ccypcKCkvLG51bWJlcjovXGIoPzowYlswMV0rfDBvWzAtN10rfDB4W2EtZkEtRlxkXSsoPzpcLlthLWZBLUZcZF0qKT8oPzpbcFBdWystXT9bYS1mQS1GXGRdKyk/fFxkKyg/OlwuXGQqKT8oPzpbZUVdWystXT9cZCspPylcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxvcGVyYXRvcjovXC5bKj9dfFwuezIsM318Wy09XT58XCpcKnxcK1wrfFx8XHx8KD86PDx8Pj58Wy0rKl0lfFstKyovJV4mfDw+IT1dKT0/fFs/fl0vLHB1bmN0dWF0aW9uOi9bLjosOygpe31bXF1dL30sYS5sYW5ndWFnZXMuemlnWyJjbGFzcy1uYW1lIl0uZm9yRWFjaChmdW5jdGlvbihiKXtiLmluc2lkZT09PW51bGwmJihiLmluc2lkZT1hLmxhbmd1YWdlcy56aWcpfSl9KShuKX1yZXR1cm4gbmh9dmFyIHJoLGpOO2Z1bmN0aW9uIExqKCl7aWYoak4pcmV0dXJuIHJoO2pOPTE7dmFyIGU9V00oKTtyZXR1cm4gcmg9ZSxlLnJlZ2lzdGVyKFpNKCkpLGUucmVnaXN0ZXIoUU0oKSksZS5yZWdpc3RlcihKTSgpKSxlLnJlZ2lzdGVyKGUyKCkpLGUucmVnaXN0ZXIodDIoKSksZS5yZWdpc3RlcihuMigpKSxlLnJlZ2lzdGVyKHIyKCkpLGUucmVnaXN0ZXIoYTIoKSksZS5yZWdpc3RlcihpMigpKSxlLnJlZ2lzdGVyKG8yKCkpLGUucmVnaXN0ZXIobDIoKSksZS5yZWdpc3RlcihzMigpKSxlLnJlZ2lzdGVyKHUyKCkpLGUucmVnaXN0ZXIoYzIoKSksZS5yZWdpc3RlcihkMigpKSxlLnJlZ2lzdGVyKHAyKCkpLGUucmVnaXN0ZXIoZjIoKSksZS5yZWdpc3RlcihnMigpKSxlLnJlZ2lzdGVyKG0yKCkpLGUucmVnaXN0ZXIoaDIoKSksZS5yZWdpc3RlcihiMigpKSxlLnJlZ2lzdGVyKHkyKCkpLGUucmVnaXN0ZXIocGsoKSksZS5yZWdpc3RlcihmaygpKSxlLnJlZ2lzdGVyKEUyKCkpLGUucmVnaXN0ZXIoUzIoKSksZS5yZWdpc3Rlcih2MigpKSxlLnJlZ2lzdGVyKFQyKCkpLGUucmVnaXN0ZXIoeDIoKSksZS5yZWdpc3RlcihBMigpKSxlLnJlZ2lzdGVyKF8yKCkpLGUucmVnaXN0ZXIoUjIoKSksZS5yZWdpc3RlcihOMigpKSxlLnJlZ2lzdGVyKHcyKCkpLGUucmVnaXN0ZXIob2EoKSksZS5yZWdpc3RlcihrMigpKSxlLnJlZ2lzdGVyKEMyKCkpLGUucmVnaXN0ZXIoSTIoKSksZS5yZWdpc3RlcihPMigpKSxlLnJlZ2lzdGVyKEwyKCkpLGUucmVnaXN0ZXIoRDIoKSksZS5yZWdpc3RlcihNMigpKSxlLnJlZ2lzdGVyKFUyKCkpLGUucmVnaXN0ZXIoRjIoKSksZS5yZWdpc3RlcihuYigpKSxlLnJlZ2lzdGVyKEIyKCkpLGUucmVnaXN0ZXIoJGwoKSksZS5yZWdpc3RlcihqMigpKSxlLnJlZ2lzdGVyKHoyKCkpLGUucmVnaXN0ZXIocTIoKSksZS5yZWdpc3RlcihQMigpKSxlLnJlZ2lzdGVyKEcyKCkpLGUucmVnaXN0ZXIoSDIoKSksZS5yZWdpc3RlcigkMigpKSxlLnJlZ2lzdGVyKFYyKCkpLGUucmVnaXN0ZXIoWTIoKSksZS5yZWdpc3RlcihLMigpKSxlLnJlZ2lzdGVyKFcyKCkpLGUucmVnaXN0ZXIoWDIoKSksZS5yZWdpc3RlcihaMigpKSxlLnJlZ2lzdGVyKFEyKCkpLGUucmVnaXN0ZXIoSjIoKSksZS5yZWdpc3RlcihlVSgpKSxlLnJlZ2lzdGVyKHRVKCkpLGUucmVnaXN0ZXIoblUoKSksZS5yZWdpc3RlcihyVSgpKSxlLnJlZ2lzdGVyKGFVKCkpLGUucmVnaXN0ZXIoaVUoKSksZS5yZWdpc3RlcihvVSgpKSxlLnJlZ2lzdGVyKGxVKCkpLGUucmVnaXN0ZXIoc1UoKSksZS5yZWdpc3Rlcih1VSgpKSxlLnJlZ2lzdGVyKGNVKCkpLGUucmVnaXN0ZXIoZFUoKSksZS5yZWdpc3RlcihwVSgpKSxlLnJlZ2lzdGVyKGZVKCkpLGUucmVnaXN0ZXIoZ1UoKSksZS5yZWdpc3RlcihtVSgpKSxlLnJlZ2lzdGVyKGhVKCkpLGUucmVnaXN0ZXIoYlUoKSksZS5yZWdpc3Rlcih5VSgpKSxlLnJlZ2lzdGVyKEVVKCkpLGUucmVnaXN0ZXIoU1UoKSksZS5yZWdpc3Rlcih2VSgpKSxlLnJlZ2lzdGVyKFRVKCkpLGUucmVnaXN0ZXIoeFUoKSksZS5yZWdpc3RlcihBVSgpKSxlLnJlZ2lzdGVyKF9VKCkpLGUucmVnaXN0ZXIoUlUoKSksZS5yZWdpc3RlcihOVSgpKSxlLnJlZ2lzdGVyKHdVKCkpLGUucmVnaXN0ZXIoa1UoKSksZS5yZWdpc3RlcihDVSgpKSxlLnJlZ2lzdGVyKElVKCkpLGUucmVnaXN0ZXIocmIoKSksZS5yZWdpc3RlcihPVSgpKSxlLnJlZ2lzdGVyKExVKCkpLGUucmVnaXN0ZXIoRFUoKSksZS5yZWdpc3RlcihNVSgpKSxlLnJlZ2lzdGVyKFVVKCkpLGUucmVnaXN0ZXIoRlUoKSksZS5yZWdpc3RlcihCVSgpKSxlLnJlZ2lzdGVyKGpVKCkpLGUucmVnaXN0ZXIoelUoKSksZS5yZWdpc3RlcihxVSgpKSxlLnJlZ2lzdGVyKFBVKCkpLGUucmVnaXN0ZXIoR1UoKSksZS5yZWdpc3RlcihIVSgpKSxlLnJlZ2lzdGVyKCRVKCkpLGUucmVnaXN0ZXIoVlUoKSksZS5yZWdpc3RlcihZVSgpKSxlLnJlZ2lzdGVyKEtVKCkpLGUucmVnaXN0ZXIoYWIoKSksZS5yZWdpc3RlcihXVSgpKSxlLnJlZ2lzdGVyKFlsKCkpLGUucmVnaXN0ZXIoWFUoKSksZS5yZWdpc3RlcihaVSgpKSxlLnJlZ2lzdGVyKFFVKCkpLGUucmVnaXN0ZXIoSlUoKSksZS5yZWdpc3RlcihlRigpKSxlLnJlZ2lzdGVyKHRGKCkpLGUucmVnaXN0ZXIobkYoKSksZS5yZWdpc3RlcihvYigpKSxlLnJlZ2lzdGVyKHJGKCkpLGUucmVnaXN0ZXIoYUYoKSksZS5yZWdpc3RlcihpRigpKSxlLnJlZ2lzdGVyKG1rKCkpLGUucmVnaXN0ZXIob0YoKSksZS5yZWdpc3RlcihsRigpKSxlLnJlZ2lzdGVyKHNGKCkpLGUucmVnaXN0ZXIodUYoKSksZS5yZWdpc3RlcihjRigpKSxlLnJlZ2lzdGVyKGRGKCkpLGUucmVnaXN0ZXIocEYoKSksZS5yZWdpc3RlcihmRigpKSxlLnJlZ2lzdGVyKGdGKCkpLGUucmVnaXN0ZXIobUYoKSksZS5yZWdpc3RlcihoRigpKSxlLnJlZ2lzdGVyKGJGKCkpLGUucmVnaXN0ZXIoeUYoKSksZS5yZWdpc3RlcihFRigpKSxlLnJlZ2lzdGVyKFNGKCkpLGUucmVnaXN0ZXIodkYoKSksZS5yZWdpc3RlcihnaygpKSxlLnJlZ2lzdGVyKFRGKCkpLGUucmVnaXN0ZXIoeEYoKSksZS5yZWdpc3RlcihBRigpKSxlLnJlZ2lzdGVyKEh0KCkpLGUucmVnaXN0ZXIoX0YoKSksZS5yZWdpc3RlcihSRigpKSxlLnJlZ2lzdGVyKE5GKCkpLGUucmVnaXN0ZXIod0YoKSksZS5yZWdpc3RlcihrRigpKSxlLnJlZ2lzdGVyKENGKCkpLGUucmVnaXN0ZXIoSUYoKSksZS5yZWdpc3RlcihPRigpKSxlLnJlZ2lzdGVyKExGKCkpLGUucmVnaXN0ZXIoREYoKSksZS5yZWdpc3RlcihNRigpKSxlLnJlZ2lzdGVyKFVGKCkpLGUucmVnaXN0ZXIoRkYoKSksZS5yZWdpc3RlcihCRigpKSxlLnJlZ2lzdGVyKGpGKCkpLGUucmVnaXN0ZXIoekYoKSksZS5yZWdpc3RlcihxRigpKSxlLnJlZ2lzdGVyKFBGKCkpLGUucmVnaXN0ZXIoR0YoKSksZS5yZWdpc3RlcihIRigpKSxlLnJlZ2lzdGVyKCRGKCkpLGUucmVnaXN0ZXIoVkYoKSksZS5yZWdpc3RlcihZRigpKSxlLnJlZ2lzdGVyKEtGKCkpLGUucmVnaXN0ZXIoV0YoKSksZS5yZWdpc3RlcihYRigpKSxlLnJlZ2lzdGVyKFpGKCkpLGUucmVnaXN0ZXIoUUYoKSksZS5yZWdpc3RlcihKRigpKSxlLnJlZ2lzdGVyKGVCKCkpLGUucmVnaXN0ZXIodEIoKSksZS5yZWdpc3RlcihuQigpKSxlLnJlZ2lzdGVyKEtsKCkpLGUucmVnaXN0ZXIockIoKSksZS5yZWdpc3RlcihhQigpKSxlLnJlZ2lzdGVyKGlCKCkpLGUucmVnaXN0ZXIob0IoKSksZS5yZWdpc3RlcihsQigpKSxlLnJlZ2lzdGVyKHNCKCkpLGUucmVnaXN0ZXIodUIoKSksZS5yZWdpc3RlcihjQigpKSxlLnJlZ2lzdGVyKGRCKCkpLGUucmVnaXN0ZXIocEIoKSksZS5yZWdpc3RlcihmQigpKSxlLnJlZ2lzdGVyKGdCKCkpLGUucmVnaXN0ZXIobUIoKSksZS5yZWdpc3RlcihoQigpKSxlLnJlZ2lzdGVyKGJCKCkpLGUucmVnaXN0ZXIoeUIoKSksZS5yZWdpc3RlcihFQigpKSxlLnJlZ2lzdGVyKFNCKCkpLGUucmVnaXN0ZXIodkIoKSksZS5yZWdpc3RlcihUQigpKSxlLnJlZ2lzdGVyKHhCKCkpLGUucmVnaXN0ZXIoQUIoKSksZS5yZWdpc3RlcihfQigpKSxlLnJlZ2lzdGVyKFJCKCkpLGUucmVnaXN0ZXIoTkIoKSksZS5yZWdpc3Rlcih3QigpKSxlLnJlZ2lzdGVyKGtCKCkpLGUucmVnaXN0ZXIoQ0IoKSksZS5yZWdpc3RlcihJQigpKSxlLnJlZ2lzdGVyKE9CKCkpLGUucmVnaXN0ZXIoVmwoKSksZS5yZWdpc3RlcihMQigpKSxlLnJlZ2lzdGVyKERCKCkpLGUucmVnaXN0ZXIoTUIoKSksZS5yZWdpc3RlcihVQigpKSxlLnJlZ2lzdGVyKGxiKCkpLGUucmVnaXN0ZXIoRkIoKSksZS5yZWdpc3RlcihCQigpKSxlLnJlZ2lzdGVyKGpCKCkpLGUucmVnaXN0ZXIoekIoKSksZS5yZWdpc3RlcihxQigpKSxlLnJlZ2lzdGVyKFBCKCkpLGUucmVnaXN0ZXIoR0IoKSksZS5yZWdpc3RlcihIQigpKSxlLnJlZ2lzdGVyKCRCKCkpLGUucmVnaXN0ZXIoVkIoKSksZS5yZWdpc3RlcihZQigpKSxlLnJlZ2lzdGVyKEtCKCkpLGUucmVnaXN0ZXIodGIoKSksZS5yZWdpc3RlcihXQigpKSxlLnJlZ2lzdGVyKFhCKCkpLGUucmVnaXN0ZXIoWkIoKSksZS5yZWdpc3RlcihRQigpKSxlLnJlZ2lzdGVyKEpCKCkpLGUucmVnaXN0ZXIoZWooKSksZS5yZWdpc3RlcihzYigpKSxlLnJlZ2lzdGVyKHRqKCkpLGUucmVnaXN0ZXIobmooKSksZS5yZWdpc3RlcihyaigpKSxlLnJlZ2lzdGVyKGFqKCkpLGUucmVnaXN0ZXIoaWooKSksZS5yZWdpc3RlcihvaigpKSxlLnJlZ2lzdGVyKGxqKCkpLGUucmVnaXN0ZXIoc2ooKSksZS5yZWdpc3RlcihoaygpKSxlLnJlZ2lzdGVyKHVqKCkpLGUucmVnaXN0ZXIoaWIoKSksZS5yZWdpc3RlcihjaigpKSxlLnJlZ2lzdGVyKGRqKCkpLGUucmVnaXN0ZXIocGooKSksZS5yZWdpc3RlcihmaigpKSxlLnJlZ2lzdGVyKGdqKCkpLGUucmVnaXN0ZXIobWooKSksZS5yZWdpc3RlcihiaygpKSxlLnJlZ2lzdGVyKGhqKCkpLGUucmVnaXN0ZXIoYmooKSksZS5yZWdpc3Rlcih5aigpKSxlLnJlZ2lzdGVyKEVqKCkpLGUucmVnaXN0ZXIoU2ooKSksZS5yZWdpc3Rlcih2aigpKSxlLnJlZ2lzdGVyKFRqKCkpLGUucmVnaXN0ZXIoeGooKSksZS5yZWdpc3RlcihBaigpKSxlLnJlZ2lzdGVyKF9qKCkpLGUucmVnaXN0ZXIoUmooKSksZS5yZWdpc3RlcihOaigpKSxlLnJlZ2lzdGVyKHdqKCkpLGUucmVnaXN0ZXIoa2ooKSksZS5yZWdpc3RlcihDaigpKSxlLnJlZ2lzdGVyKHlrKCkpLGUucmVnaXN0ZXIoSWooKSksZS5yZWdpc3RlcihPaigpKSxyaH12YXIgRGo9TGooKTtjb25zdCBNaj1IbChEaik7dmFyIHViPXZMKE1qLFhNKTt1Yi5zdXBwb3J0ZWRMYW5ndWFnZXM9VEw7Y29uc3QgRWs9eydwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXSc6e2NvbG9yOiIjZDRkNGQ0Iixmb250U2l6ZToiMTNweCIsdGV4dFNoYWRvdzoibm9uZSIsZm9udEZhbWlseTonTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICJBbmRhbGUgTW9ubyIsICJVYnVudHUgTW9ubyIsICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZScsZGlyZWN0aW9uOiJsdHIiLHRleHRBbGlnbjoibGVmdCIsd2hpdGVTcGFjZToicHJlIix3b3JkU3BhY2luZzoibm9ybWFsIix3b3JkQnJlYWs6Im5vcm1hbCIsbGluZUhlaWdodDoiMS41IixNb3pUYWJTaXplOiI0IixPVGFiU2l6ZToiNCIsdGFiU2l6ZToiNCIsV2Via2l0SHlwaGVuczoibm9uZSIsTW96SHlwaGVuczoibm9uZSIsbXNIeXBoZW5zOiJub25lIixoeXBoZW5zOiJub25lIixwYWRkaW5nOiIxZW0iLG1hcmdpbjoiLjVlbSAwIixvdmVyZmxvdzoiYXV0byIsYmFja2dyb3VuZDoiIzFlMWUxZSJ9LCdjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0nOntjb2xvcjoiI2Q0ZDRkNCIsZm9udFNpemU6IjEzcHgiLHRleHRTaGFkb3c6Im5vbmUiLGZvbnRGYW1pbHk6J01lbmxvLCBNb25hY28sIENvbnNvbGFzLCAiQW5kYWxlIE1vbm8iLCAiVWJ1bnR1IE1vbm8iLCAiQ291cmllciBOZXciLCBtb25vc3BhY2UnLGRpcmVjdGlvbjoibHRyIix0ZXh0QWxpZ246ImxlZnQiLHdoaXRlU3BhY2U6InByZSIsd29yZFNwYWNpbmc6Im5vcm1hbCIsd29yZEJyZWFrOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEuNSIsTW96VGFiU2l6ZToiNCIsT1RhYlNpemU6IjQiLHRhYlNpemU6IjQiLFdlYmtpdEh5cGhlbnM6Im5vbmUiLE1vekh5cGhlbnM6Im5vbmUiLG1zSHlwaGVuczoibm9uZSIsaHlwaGVuczoibm9uZSJ9LCdwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXTo6c2VsZWN0aW9uJzp7dGV4dFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoiIzI2NEY3OCJ9LCdjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl06OnNlbGVjdGlvbic6e3RleHRTaGFkb3c6Im5vbmUiLGJhY2tncm91bmQ6IiMyNjRGNzgifSwncHJlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gKjo6c2VsZWN0aW9uJzp7dGV4dFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoiIzI2NEY3OCJ9LCdjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gKjo6c2VsZWN0aW9uJzp7dGV4dFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoiIzI2NEY3OCJ9LCc6bm90KHByZSkgPiBjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0nOntwYWRkaW5nOiIuMWVtIC4zZW0iLGJvcmRlclJhZGl1czoiLjNlbSIsY29sb3I6IiNkYjRjNjkiLGJhY2tncm91bmQ6IiMxZTFlMWUifSwiLm5hbWVzcGFjZSI6e09wYWNpdHk6Ii43In0sImRvY3R5cGUuZG9jdHlwZS10YWciOntjb2xvcjoiIzU2OUNENiJ9LCJkb2N0eXBlLm5hbWUiOntjb2xvcjoiIzljZGNmZSJ9LGNvbW1lbnQ6e2NvbG9yOiIjNmE5OTU1In0scHJvbG9nOntjb2xvcjoiIzZhOTk1NSJ9LHB1bmN0dWF0aW9uOntjb2xvcjoiI2Q0ZDRkNCJ9LCIubGFuZ3VhZ2UtaHRtbCAubGFuZ3VhZ2UtY3NzIC50b2tlbi5wdW5jdHVhdGlvbiI6e2NvbG9yOiIjZDRkNGQ0In0sIi5sYW5ndWFnZS1odG1sIC5sYW5ndWFnZS1qYXZhc2NyaXB0IC50b2tlbi5wdW5jdHVhdGlvbiI6e2NvbG9yOiIjZDRkNGQ0In0scHJvcGVydHk6e2NvbG9yOiIjOWNkY2ZlIn0sdGFnOntjb2xvcjoiIzU2OWNkNiJ9LGJvb2xlYW46e2NvbG9yOiIjNTY5Y2Q2In0sbnVtYmVyOntjb2xvcjoiI2I1Y2VhOCJ9LGNvbnN0YW50Ontjb2xvcjoiIzljZGNmZSJ9LHN5bWJvbDp7Y29sb3I6IiNiNWNlYTgifSxpbnNlcnRlZDp7Y29sb3I6IiNiNWNlYTgifSx1bml0Ontjb2xvcjoiI2I1Y2VhOCJ9LHNlbGVjdG9yOntjb2xvcjoiI2Q3YmE3ZCJ9LCJhdHRyLW5hbWUiOntjb2xvcjoiIzljZGNmZSJ9LHN0cmluZzp7Y29sb3I6IiNjZTkxNzgifSxjaGFyOntjb2xvcjoiI2NlOTE3OCJ9LGJ1aWx0aW46e2NvbG9yOiIjY2U5MTc4In0sZGVsZXRlZDp7Y29sb3I6IiNjZTkxNzgifSwiLmxhbmd1YWdlLWNzcyAudG9rZW4uc3RyaW5nLnVybCI6e3RleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSxvcGVyYXRvcjp7Y29sb3I6IiNkNGQ0ZDQifSxlbnRpdHk6e2NvbG9yOiIjNTY5Y2Q2In0sIm9wZXJhdG9yLmFycm93Ijp7Y29sb3I6IiM1NjlDRDYifSxhdHJ1bGU6e2NvbG9yOiIjY2U5MTc4In0sImF0cnVsZS5ydWxlIjp7Y29sb3I6IiNjNTg2YzAifSwiYXRydWxlLnVybCI6e2NvbG9yOiIjOWNkY2ZlIn0sImF0cnVsZS51cmwuZnVuY3Rpb24iOntjb2xvcjoiI2RjZGNhYSJ9LCJhdHJ1bGUudXJsLnB1bmN0dWF0aW9uIjp7Y29sb3I6IiNkNGQ0ZDQifSxrZXl3b3JkOntjb2xvcjoiIzU2OUNENiJ9LCJrZXl3b3JkLm1vZHVsZSI6e2NvbG9yOiIjYzU4NmMwIn0sImtleXdvcmQuY29udHJvbC1mbG93Ijp7Y29sb3I6IiNjNTg2YzAifSxmdW5jdGlvbjp7Y29sb3I6IiNkY2RjYWEifSwiZnVuY3Rpb24ubWF5YmUtY2xhc3MtbmFtZSI6e2NvbG9yOiIjZGNkY2FhIn0scmVnZXg6e2NvbG9yOiIjZDE2OTY5In0saW1wb3J0YW50Ontjb2xvcjoiIzU2OWNkNiJ9LGl0YWxpYzp7Zm9udFN0eWxlOiJpdGFsaWMifSwiY2xhc3MtbmFtZSI6e2NvbG9yOiIjNGVjOWIwIn0sIm1heWJlLWNsYXNzLW5hbWUiOntjb2xvcjoiIzRlYzliMCJ9LGNvbnNvbGU6e2NvbG9yOiIjOWNkY2ZlIn0scGFyYW1ldGVyOntjb2xvcjoiIzljZGNmZSJ9LGludGVycG9sYXRpb246e2NvbG9yOiIjOWNkY2ZlIn0sInB1bmN0dWF0aW9uLmludGVycG9sYXRpb24tcHVuY3R1YXRpb24iOntjb2xvcjoiIzU2OWNkNiJ9LHZhcmlhYmxlOntjb2xvcjoiIzljZGNmZSJ9LCJpbXBvcnRzLm1heWJlLWNsYXNzLW5hbWUiOntjb2xvcjoiIzljZGNmZSJ9LCJleHBvcnRzLm1heWJlLWNsYXNzLW5hbWUiOntjb2xvcjoiIzljZGNmZSJ9LGVzY2FwZTp7Y29sb3I6IiNkN2JhN2QifSwidGFnLnB1bmN0dWF0aW9uIjp7Y29sb3I6IiM4MDgwODAifSxjZGF0YTp7Y29sb3I6IiM4MDgwODAifSwiYXR0ci12YWx1ZSI6e2NvbG9yOiIjY2U5MTc4In0sImF0dHItdmFsdWUucHVuY3R1YXRpb24iOntjb2xvcjoiI2NlOTE3OCJ9LCJhdHRyLXZhbHVlLnB1bmN0dWF0aW9uLmF0dHItZXF1YWxzIjp7Y29sb3I6IiNkNGQ0ZDQifSxuYW1lc3BhY2U6e2NvbG9yOiIjNGVjOWIwIn0sJ3ByZVtjbGFzcyo9Imxhbmd1YWdlLWphdmFzY3JpcHQiXSc6e2NvbG9yOiIjOWNkY2ZlIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS1qYXZhc2NyaXB0Il0nOntjb2xvcjoiIzljZGNmZSJ9LCdwcmVbY2xhc3MqPSJsYW5ndWFnZS1qc3giXSc6e2NvbG9yOiIjOWNkY2ZlIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS1qc3giXSc6e2NvbG9yOiIjOWNkY2ZlIn0sJ3ByZVtjbGFzcyo9Imxhbmd1YWdlLXR5cGVzY3JpcHQiXSc6e2NvbG9yOiIjOWNkY2ZlIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS10eXBlc2NyaXB0Il0nOntjb2xvcjoiIzljZGNmZSJ9LCdwcmVbY2xhc3MqPSJsYW5ndWFnZS10c3giXSc6e2NvbG9yOiIjOWNkY2ZlIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS10c3giXSc6e2NvbG9yOiIjOWNkY2ZlIn0sJ3ByZVtjbGFzcyo9Imxhbmd1YWdlLWNzcyJdJzp7Y29sb3I6IiNjZTkxNzgifSwnY29kZVtjbGFzcyo9Imxhbmd1YWdlLWNzcyJdJzp7Y29sb3I6IiNjZTkxNzgifSwncHJlW2NsYXNzKj0ibGFuZ3VhZ2UtaHRtbCJdJzp7Y29sb3I6IiNkNGQ0ZDQifSwnY29kZVtjbGFzcyo9Imxhbmd1YWdlLWh0bWwiXSc6e2NvbG9yOiIjZDRkNGQ0In0sIi5sYW5ndWFnZS1yZWdleCAudG9rZW4uYW5jaG9yIjp7Y29sb3I6IiNkY2RjYWEifSwiLmxhbmd1YWdlLWh0bWwgLnRva2VuLnB1bmN0dWF0aW9uIjp7Y29sb3I6IiM4MDgwODAifSwncHJlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gPiBjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0nOntwb3NpdGlvbjoicmVsYXRpdmUiLHpJbmRleDoiMSJ9LCIubGluZS1oaWdobGlnaHQubGluZS1oaWdobGlnaHQiOntiYWNrZ3JvdW5kOiIjZjdlYmM2Iixib3hTaGFkb3c6Imluc2V0IDVweCAwIDAgI2Y3ZDg3YyIsekluZGV4OiIwIn19O2Z1bmN0aW9uIFVqKHtkaWZmOmV9KXtjb25zdCBuPWUuZGlmZi5zcGxpdChgCmApLGE9W107bGV0IGk9MCxsPTA7Zm9yKGNvbnN0IGMgb2YgbilpZihjLnN0YXJ0c1dpdGgoIkBAIikpe2NvbnN0IGQ9Yy5tYXRjaCgvQEAgLShcZCspKD86LFxkKyk/IFwrKFxkKykoPzosXGQrKT8gQEAvKTtkJiYoaT1wYXJzZUludChkWzFdLDEwKSxsPXBhcnNlSW50KGRbMl0sMTApKSxhLnB1c2goe29sZExpbmVOdW1iZXI6bnVsbCxuZXdMaW5lTnVtYmVyOm51bGwsY29udGVudDpjLGNvZGVDb250ZW50OmMsdHlwZToiaHVuayJ9KX1lbHNlIGMuc3RhcnRzV2l0aCgiZGlmZiIpfHxjLnN0YXJ0c1dpdGgoImluZGV4Iil8fGMuc3RhcnRzV2l0aCgiLS0tIil8fGMuc3RhcnRzV2l0aCgiKysrIik/YS5wdXNoKHtvbGRMaW5lTnVtYmVyOm51bGwsbmV3TGluZU51bWJlcjpudWxsLGNvbnRlbnQ6Yyxjb2RlQ29udGVudDpjLHR5cGU6Im1ldGEifSk6Yy5zdGFydHNXaXRoKCIrIik/KGEucHVzaCh7b2xkTGluZU51bWJlcjpudWxsLG5ld0xpbmVOdW1iZXI6bCxjb250ZW50OmMsY29kZUNvbnRlbnQ6Yy5zbGljZSgxKSx0eXBlOiJhZGQifSksbCsrKTpjLnN0YXJ0c1dpdGgoIi0iKT8oYS5wdXNoKHtvbGRMaW5lTnVtYmVyOmksbmV3TGluZU51bWJlcjpudWxsLGNvbnRlbnQ6Yyxjb2RlQ29udGVudDpjLnNsaWNlKDEpLHR5cGU6ImRlbGV0ZSJ9KSxpKyspOihhLnB1c2goe29sZExpbmVOdW1iZXI6aSxuZXdMaW5lTnVtYmVyOmwsY29udGVudDpjLGNvZGVDb250ZW50OmMsdHlwZToiY29udGV4dCJ9KSxpKyssbCsrKTtjb25zdCB1PShjLGQpPT57bGV0IGY9ImZsZXggaG92ZXI6YmctbXV0ZWQvMjAiLG09ImZsZXgtc2hyaW5rLTAgdy0yMCBweC0yIHB5LTAuNSB0ZXh0LXhzIGZvbnQtbW9ubyBzZWxlY3Qtbm9uZSBib3JkZXItciBib3JkZXItYm9yZGVyIixiPSJmbGV4LTEgcHgtNCBweS0wLjUgZm9udC1tb25vIHRleHQteHMgb3ZlcmZsb3cteC1hdXRvIjtjLnR5cGU9PT0iaHVuayI/KGYrPSIgYmctYmx1ZS01MDAvMTAiLG0rPSIgdGV4dC1ibHVlLTYwMCBkYXJrOnRleHQtYmx1ZS00MDAiLGIrPSIgdGV4dC1ibHVlLTYwMCBkYXJrOnRleHQtYmx1ZS00MDAgZm9udC1zZW1pYm9sZCIpOmMudHlwZT09PSJhZGQiPyhmKz0iIGJnLWdyZWVuLTUwMC8xMCIsbSs9IiB0ZXh0LWdyZWVuLTcwMCBkYXJrOnRleHQtZ3JlZW4tNDAwIixiKz0iIHRleHQtZ3JlZW4tNzAwIGRhcms6dGV4dC1ncmVlbi00MDAiKTpjLnR5cGU9PT0iZGVsZXRlIj8oZis9IiBiZy1yZWQtNTAwLzEwIixtKz0iIHRleHQtcmVkLTYwMCBkYXJrOnRleHQtcmVkLTQwMCIsYis9IiB0ZXh0LXJlZC02MDAgZGFyazp0ZXh0LXJlZC00MDAiKTpjLnR5cGU9PT0ibWV0YSI/KGIrPSIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixtKz0iIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCIpOihiKz0iIHRleHQtZm9yZWdyb3VuZC84MCIsbSs9IiB0ZXh0LW11dGVkLWZvcmVncm91bmQiKTtjb25zdCBoPWMub2xkTGluZU51bWJlciE9PW51bGw/Yy5vbGRMaW5lTnVtYmVyLnRvU3RyaW5nKCk6IiIsUz1jLm5ld0xpbmVOdW1iZXIhPT1udWxsP2MubmV3TGluZU51bWJlci50b1N0cmluZygpOiIiO2xldCBFPWMuY29udGVudHx8IiAiO3JldHVybiBjLnR5cGUhPT0ibWV0YSImJmMudHlwZSE9PSJodW5rIiYmZS5sYW5ndWFnZSE9PSJwbGFpbnRleHQiJiZjLmNvZGVDb250ZW50LnRyaW0oKSYmKEU9eS5qc3godWIse2xhbmd1YWdlOmUubGFuZ3VhZ2Usc3R5bGU6RWssY3VzdG9tU3R5bGU6e21hcmdpbjowLHBhZGRpbmc6MCxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsZGlzcGxheToiaW5saW5lIixmb250U2l6ZToiaW5oZXJpdCIsbGluZUhlaWdodDoiaW5oZXJpdCJ9LGNvZGVUYWdQcm9wczp7c3R5bGU6e2ZvbnRGYW1pbHk6ImluaGVyaXQiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50In19LFByZVRhZzoic3BhbiIsY2hpbGRyZW46Yy5jb2RlQ29udGVudH0pLGMudHlwZT09PSJhZGQiP0U9eS5qc3hzKHkuRnJhZ21lbnQse2NoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NsYXNzTmFtZToic2VsZWN0LW5vbmUiLGNoaWxkcmVuOiIrIn0pLEVdfSk6Yy50eXBlPT09ImRlbGV0ZSImJihFPXkuanN4cyh5LkZyYWdtZW50LHtjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjbGFzc05hbWU6InNlbGVjdC1ub25lIixjaGlsZHJlbjoiLSJ9KSxFXX0pKSkseS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ZixjaGlsZHJlbjpbeS5qc3goImRpdiIse2NsYXNzTmFtZTptLGNoaWxkcmVuOnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGp1c3RpZnktYmV0d2VlbiBnYXAtMiIsY2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LXJpZ2h0IHctOCIsY2hpbGRyZW46aH0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LXJpZ2h0IHctOCIsY2hpbGRyZW46U30pXX0pfSkseS5qc3goImRpdiIse2NsYXNzTmFtZTpiLGNoaWxkcmVuOkV9KV19LGQpfTtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggZmxleC1jb2wgaC1mdWxsIGJnLWJhY2tncm91bmQiLGNoaWxkcmVuOlt5LmpzeHMoImRpdiIse2NsYXNzTmFtZToicHgtNCBweS0yIGJnLW11dGVkLzUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtaW4taC0xMCIsY2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJmb250LW1vbm8gdGV4dC1zbSB0ZXh0LWZvcmVncm91bmQiLHRpdGxlOmUuZmlsZSxjaGlsZHJlbjplLmZpbGV9KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyB0ZXh0LXhzIixjaGlsZHJlbjplLmJpbmFyeT95LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixjaGlsZHJlbjoiQmluYXJ5IGZpbGUifSk6eS5qc3hzKHkuRnJhZ21lbnQse2NoaWxkcmVuOltlLmluc2VydGlvbnM+MCYmeS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LWdyZWVuLTYwMCBkYXJrOnRleHQtZ3JlZW4tNTAwIixjaGlsZHJlbjpbIisiLGUuaW5zZXJ0aW9uc119KSxlLmRlbGV0aW9ucz4wJiZ5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtcmVkLTYwMCBkYXJrOnRleHQtcmVkLTUwMCIsY2hpbGRyZW46WyItIixlLmRlbGV0aW9uc119KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixjaGlsZHJlbjplLmxhbmd1YWdlfSldfSl9KV19KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LTEgb3ZlcmZsb3ctYXV0byIsY2hpbGRyZW46ZS5iaW5hcnk/eS5qc3goImRpdiIse2NsYXNzTmFtZToicC00IHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixjaGlsZHJlbjoiQmluYXJ5IGZpbGUgLSBjYW5ub3QgZGlzcGxheSBkaWZmIn0pOmUuZGlmZi50cmltKCk9PT0iIj95LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJwLTQgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOiJObyBjaGFuZ2VzIHRvIGRpc3BsYXkifSk6eS5qc3goImRpdiIse2NsYXNzTmFtZToibWluLXctbWF4IixjaGlsZHJlbjphLm1hcCh1KX0pfSldfSl9ZnVuY3Rpb24gRmooKXtjb25zdHtpc0RpZmZPcGVuOmUsc2VsZWN0ZWRGaWxlOm4sc2VsZWN0ZWRGaWxlU3RhZ2VkOmEsY2xvc2VEaWZmOml9PUxyKCkse3dhc0NvbGxhcHNlZEJlZm9yZURpZmY6bCxzZXRXYXNDb2xsYXBzZWRCZWZvcmVEaWZmOnUsc2V0Q29sbGFwc2VkOmN9PUNoKCkse2RhdGE6ZCxpc0xvYWRpbmc6Zn09VjAobixhKTtpZih1ZS51c2VFZmZlY3QoKCk9Pntjb25zdHtpc0NvbGxhcHNlZDpofT1DaC5nZXRTdGF0ZSgpO2U/KHUoaCksYyghMCkpOmwhPT1udWxsJiYoYyhsKSx1KG51bGwpKX0sW2UsdSxjLGxdKSx1ZS51c2VFZmZlY3QoKCk9Pntjb25zdCBoPVM9PntTLmtleT09PSJFc2NhcGUiJiZlJiZpKCl9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixoKSwoKT0+ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaCl9LFtlLGldKSwhZXx8IW4pcmV0dXJuIG51bGw7Y29uc3QgYj0oaD0+e2NvbnN0IFM9aC5zcGxpdCgiLyIpO2lmKFMubGVuZ3RoPT09MXx8Uy5sZW5ndGg8PTMpcmV0dXJuIGg7Y29uc3QgRT1TW1MubGVuZ3RoLTFdO3JldHVybmAuLi4vJHtTLnNsaWNlKC0zLC0xKS5qb2luKCIvIil9LyR7RX1gfSkobik7cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhYnNvbHV0ZSBpbnNldC0wIGJnLWJhY2tncm91bmQgei01MCBmbGV4IGZsZXgtY29sIGFuaW1hdGUtaW4gc2xpZGUtaW4tZnJvbS1sZWZ0IGR1cmF0aW9uLTMwMCIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJoLTE0IGJvcmRlci1iIGJvcmRlci1ib3JkZXIgcHgtNCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyIsY2hpbGRyZW46W3kuanN4KGVuLHt2YXJpYW50OiJnaG9zdCIsc2l6ZToiaWNvbiIsb25DbGljazppLHRpdGxlOiJDbG9zZSBkaWZmIHZpZXdlciAoRVNDKSIsY2hpbGRyZW46eS5qc3goUWgse2NsYXNzTmFtZToidy00IGgtNCJ9KX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LTEgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgdHJ1bmNhdGUgZm9udC1tb25vIix0aXRsZTpuLGNoaWxkcmVuOmJ9KSxhJiZ5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC14cyBweC0yIHB5LTAuNSByb3VuZGVkIGJnLXByaW1hcnkvMTAgdGV4dC1wcmltYXJ5IixjaGlsZHJlbjoiU3RhZ2VkIn0pXX0pXX0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBvdmVyZmxvdy1hdXRvIixjaGlsZHJlbjpmP3kuanN4KCJkaXYiLHtjbGFzc05hbWU6ImgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOiJMb2FkaW5nIGRpZmYuLi4ifSk6ZD95LmpzeChVaix7ZGlmZjpkfSk6eS5qc3goImRpdiIse2NsYXNzTmFtZToiaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCIsY2hpbGRyZW46Ik5vIGRpZmYgYXZhaWxhYmxlIn0pfSldfSl9Y29uc3QgY2I9dWUuZm9yd2FyZFJlZigoe2NsYXNzTmFtZTplPSIiLC4uLm59LGEpPT55LmpzeCgidGV4dGFyZWEiLHtyZWY6YSxjbGFzc05hbWU6YHctZnVsbCBweC0zIHB5LTIgYmctbXV0ZWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZCB0ZXh0LWZvcmVncm91bmQgcGxhY2Vob2xkZXItbXV0ZWQtZm9yZWdyb3VuZCBvdXRsaW5lLW5vbmUgcmVzaXplLW5vbmUgJHtlfWAsLi4ubn0pKTtjYi5kaXNwbGF5TmFtZT0iVGV4dGFyZWEiO2Z1bmN0aW9uIEJqKCl7Y29uc3R7aXNDb21taXRNb2RhbE9wZW46ZSxjbG9zZUNvbW1pdE1vZGFsOm59PUxyKCksYT1XMCgpLGk9WTAoKSxbbCx1XT11ZS51c2VTdGF0ZSgiIiksYz11ZS51c2VJZCgpO2lmKCFlKXJldHVybiBudWxsO2NvbnN0IGQ9YXN5bmMoKT0+e2lmKGwudHJpbSgpKXRyeXthd2FpdCBhLm11dGF0ZUFzeW5jKGwpLHUoIiIpLG4oKX1jYXRjaChiKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29tbWl0OiIsYil9fSxmPSgpPT57dSgiIiksbigpfSxtPWFzeW5jKCk9Pnt0cnl7Y29uc3QgYj1hd2FpdCBpLm11dGF0ZUFzeW5jKCk7dShiLm1lc3NhZ2UpfWNhdGNoKGIpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBnZW5lcmF0ZSBjb21taXQgbWVzc2FnZToiLGIpfX07cmV0dXJuIHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZpeGVkIGluc2V0LTAgYmctYmFja2dyb3VuZC84MCBiYWNrZHJvcC1ibHVyLXNtIHotNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcC00IixjaGlsZHJlbjp5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiYmctYmFja2dyb3VuZCBib3JkZXIgYm9yZGVyLWJvcmRlciByb3VuZGVkLWxnIHNoYWRvdy1sZyB3LWZ1bGwgbWF4LXctMnhsIixjaGlsZHJlbjpbeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweC02IHB5LTQgYm9yZGVyLWIgYm9yZGVyLWJvcmRlciIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiIsY2hpbGRyZW46W3kuanN4KEJsLHtjbGFzc05hbWU6InctNSBoLTUgdGV4dC1mb3JlZ3JvdW5kIn0pLHkuanN4KCJoMiIse2NsYXNzTmFtZToidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtZm9yZWdyb3VuZCIsY2hpbGRyZW46IkNvbW1pdCBDaGFuZ2VzIn0pXX0pLHkuanN4KGVuLHt2YXJpYW50OiJnaG9zdCIsc2l6ZToiaWNvbiIsb25DbGljazpmLGNoaWxkcmVuOnkuanN4KFFoLHtjbGFzc05hbWU6InctNCBoLTQifSl9KV19KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToicC02IHNwYWNlLXktNCIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzcGFjZS15LTIiLGNoaWxkcmVuOlt5LmpzeCgibGFiZWwiLHtodG1sRm9yOmMsY2xhc3NOYW1lOiJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCIsY2hpbGRyZW46IkNvbW1pdCBNZXNzYWdlIn0pLHkuanN4KGNiLHtpZDpjLHZhbHVlOmwsb25DaGFuZ2U6Yj0+dShiLnRhcmdldC52YWx1ZSkscGxhY2Vob2xkZXI6IkVudGVyIGNvbW1pdCBtZXNzYWdlLi4uIixyb3dzOjYsY2xhc3NOYW1lOiJ3LWZ1bGwgcmVzaXplLW5vbmUiLGF1dG9Gb2N1czohMCxkaXNhYmxlZDppLmlzUGVuZGluZ30pXX0pLHkuanN4KGVuLHt2YXJpYW50OiJzZWNvbmRhcnkiLHNpemU6InNtIixvbkNsaWNrOm0sY2xhc3NOYW1lOiJ3LWZ1bGwiLGRpc2FibGVkOmkuaXNQZW5kaW5nLGNoaWxkcmVuOmkuaXNQZW5kaW5nP3kuanN4cyh5LkZyYWdtZW50LHtjaGlsZHJlbjpbeS5qc3goWmgse2NsYXNzTmFtZToidy00IGgtNCBtci0yIGFuaW1hdGUtc3BpbiJ9KSwiR2VuZXJhdGluZy4uLiJdfSk6eS5qc3hzKHkuRnJhZ21lbnQse2NoaWxkcmVuOlt5LmpzeChqbCx7Y2xhc3NOYW1lOiJ3LTQgaC00IG1yLTIifSksIkdlbmVyYXRlIGNvbW1pdCBtZXNzYWdlIHdpdGggQUkiXX0pfSksaS5pc0Vycm9yJiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LXNtIHRleHQtcmVkLTYwMCBkYXJrOnRleHQtcmVkLTQwMCBiZy1yZWQtNTAwLzEwIGJvcmRlciBib3JkZXItcmVkLTUwMC8yMCByb3VuZGVkIHB4LTMgcHktMiIsY2hpbGRyZW46aS5lcnJvcj8ubWVzc2FnZXx8IkZhaWxlZCB0byBnZW5lcmF0ZSBjb21taXQgbWVzc2FnZSJ9KV19KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmQgZ2FwLTIgcHgtNiBweS00IGJvcmRlci10IGJvcmRlci1ib3JkZXIiLGNoaWxkcmVuOlt5LmpzeChlbix7dmFyaWFudDoiZ2hvc3QiLG9uQ2xpY2s6ZixjaGlsZHJlbjoiQ2FuY2VsIn0pLHkuanN4KGVuLHt2YXJpYW50OiJwcmltYXJ5IixvbkNsaWNrOmQsZGlzYWJsZWQ6IWwudHJpbSgpfHxhLmlzUGVuZGluZyxjaGlsZHJlbjphLmlzUGVuZGluZz95LmpzeCgic3BhbiIse2NoaWxkcmVuOiJDb21taXR0aW5nLi4uIn0pOnkuanN4cyh5LkZyYWdtZW50LHtjaGlsZHJlbjpbeS5qc3goQmwse2NsYXNzTmFtZToidy00IGgtNCBtci0yIn0pLCJDb21taXQiXX0pfSldfSksYS5pc0Vycm9yJiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJweC02IHBiLTQiLGNoaWxkcmVuOnkuanN4KCJkaXYiLHtjbGFzc05hbWU6InRleHQtc20gdGV4dC1yZWQtNjAwIGRhcms6dGV4dC1yZWQtNDAwIGJnLXJlZC01MDAvMTAgYm9yZGVyIGJvcmRlci1yZWQtNTAwLzIwIHJvdW5kZWQgcHgtMyBweS0yIixjaGlsZHJlbjphLmVycm9yPy5tZXNzYWdlfHwiRmFpbGVkIHRvIGNvbW1pdCBjaGFuZ2VzIn0pfSldfSl9KX1mdW5jdGlvbiBqaih7c2lkZWJhcjplLGNoaWxkcmVuOm4sb25OZXdTZXNzaW9uOmEsdGhlbWU6aSxvblRvZ2dsZVRoZW1lOmx9KXtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6Imgtc2NyZWVuIGZsZXggZmxleC1jb2wgYmctYmFja2dyb3VuZCIsY2hpbGRyZW46W3kuanN4KFUwLHtvbk5ld1Nlc3Npb246YSxvblRvZ2dsZVRoZW1lOmwsdGhlbWU6aX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LTEgZmxleCBvdmVyZmxvdy1oaWRkZW4iLGNoaWxkcmVuOlt5LmpzeChHMCx7Y2hpbGRyZW46ZX0pLHkuanN4cygibWFpbiIse2NsYXNzTmFtZToiZmxleC0xIGZsZXggZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlIixjaGlsZHJlbjpbeS5qc3goRmose30pLG5dfSkseS5qc3goWDAse30pLHkuanN4KFEwLHt9KV19KSx5LmpzeChCaix7fSldfSl9ZnVuY3Rpb24gemooe3Nlc3Npb246ZSxpc0FjdGl2ZTpuLG9uQ2xpY2s6YX0pe2NvbnN0IGk9ZD0+e2NvbnN0IGY9bmV3IERhdGUoZCksYj1uZXcgRGF0ZSgpLmdldFRpbWUoKS1mLmdldFRpbWUoKSxoPU1hdGguZmxvb3IoYi82ZTQpLFM9TWF0aC5mbG9vcihoLzYwKSxFPU1hdGguZmxvb3IoUy8yNCk7cmV0dXJuIGg8MT8ianVzdCBub3ciOmg8NjA/YCR7aH1tIGFnb2A6UzwyND9gJHtTfWggYWdvYDpFPDc/YCR7RX1kIGFnb2A6Zi50b0xvY2FsZURhdGVTdHJpbmcoKX07cmV0dXJuIHkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6YSxjbGFzc05hbWU6YGdyb3VwIHctZnVsbCByb3VuZGVkLWxnIHB4LTMgcHktMyB0ZXh0LWxlZnQgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMTUwICR7bj8iYmctcHJpbWFyeS8xMCI6ImhvdmVyOmJnLW11dGVkLzIwIn1gLGNoaWxkcmVuOnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLXN0YXJ0IGdhcC0zIixjaGlsZHJlbjpbeS5qc3god2gse2NsYXNzTmFtZTpgaC00IHctNCBzaHJpbmstMCBtdC0xIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCAke24/InRleHQtcHJpbWFyeSI6IiJ9YH0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJtaW4tdy0wIGZsZXgtMSIsY2hpbGRyZW46W3kuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIixjaGlsZHJlbjp5LmpzeCgiaDMiLHtjbGFzc05hbWU6InRydW5jYXRlIHRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWZvcmVncm91bmQiLGNoaWxkcmVuOmUudGl0bGV8fGBTZXNzaW9uICR7ZS5pZC5zbGljZSgwLDgpfWB9KX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJtdC0xIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIixjaGlsZHJlbjpbZS5hZ2VudCYmeS5qc3goInNwYW4iLHtjbGFzc05hbWU6InVwcGVyY2FzZSIsY2hpbGRyZW46ZS5hZ2VudH0pLGUuYWdlbnQmJnkuanN4KCJzcGFuIix7Y2hpbGRyZW46IuKAoiJ9KSx5LmpzeCgic3BhbiIse2NoaWxkcmVuOmkoZS5sYXN0QWN0aXZlQXR8fGUuY3JlYXRlZEF0KX0pXX0pXX0pXX0pfSl9ZnVuY3Rpb24gcWooe3Nlc3Npb25zOmUsYWN0aXZlU2Vzc2lvbklkOm4sb25TZWxlY3RTZXNzaW9uOmF9KXtyZXR1cm4gZS5sZW5ndGg9PT0wP3kuanN4KCJkaXYiLHtjbGFzc05hbWU6InB4LTQgcHktOCB0ZXh0LWNlbnRlciB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZC84MCIsY2hpbGRyZW46Ik5vIHNlc3Npb25zIHlldC4gQ3JlYXRlIG9uZSB0byBnZXQgc3RhcnRlZC4ifSk6eS5qc3goImRpdiIse2NsYXNzTmFtZToiZmxleCBmbGV4LWNvbCBnYXAtMSBweC0yIHB5LTIgb3ZlcmZsb3cteS1hdXRvIHNjcm9sbGJhci1oaWRlIixjaGlsZHJlbjplLm1hcChpPT55LmpzeCh6aix7c2Vzc2lvbjppLGlzQWN0aXZlOmkuaWQ9PT1uLG9uQ2xpY2s6KCk9PmEoaS5pZCl9LGkuaWQpKX0pfWZ1bmN0aW9uIFBqKGUsbil7Y29uc3QgYT17fTtyZXR1cm4oZVtlLmxlbmd0aC0xXT09PSIiP1suLi5lLCIiXTplKS5qb2luKChhLnBhZFJpZ2h0PyIgIjoiIikrIiwiKyhhLnBhZExlZnQ9PT0hMT8iIjoiICIpKS50cmltKCl9Y29uc3QgR2o9L15bJF9ccHtJRF9TdGFydH1dWyRfXHV7MjAwQ31cdXsyMDBEfVxwe0lEX0NvbnRpbnVlfV0qJC91LEhqPS9eWyRfXHB7SURfU3RhcnR9XVstJF9cdXsyMDBDfVx1ezIwMER9XHB7SURfQ29udGludWV9XSokL3UsJGo9e307ZnVuY3Rpb24gek4oZSxuKXtyZXR1cm4oJGouanN4P0hqOkdqKS50ZXN0KGUpfWNvbnN0IFZqPS9bIFx0XG5cZlxyXS9nO2Z1bmN0aW9uIFlqKGUpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCI/ZS50eXBlPT09InRleHQiP3FOKGUudmFsdWUpOiExOnFOKGUpfWZ1bmN0aW9uIHFOKGUpe3JldHVybiBlLnJlcGxhY2UoVmosIiIpPT09IiJ9Y2xhc3MgdW97Y29uc3RydWN0b3IobixhLGkpe3RoaXMubm9ybWFsPWEsdGhpcy5wcm9wZXJ0eT1uLGkmJih0aGlzLnNwYWNlPWkpfX11by5wcm90b3R5cGUubm9ybWFsPXt9O3VvLnByb3RvdHlwZS5wcm9wZXJ0eT17fTt1by5wcm90b3R5cGUuc3BhY2U9dm9pZCAwO2Z1bmN0aW9uIFNrKGUsbil7Y29uc3QgYT17fSxpPXt9O2Zvcihjb25zdCBsIG9mIGUpT2JqZWN0LmFzc2lnbihhLGwucHJvcGVydHkpLE9iamVjdC5hc3NpZ24oaSxsLm5vcm1hbCk7cmV0dXJuIG5ldyB1byhhLGksbil9ZnVuY3Rpb24gRGgoZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX1jbGFzcyAkdHtjb25zdHJ1Y3RvcihuLGEpe3RoaXMuYXR0cmlidXRlPWEsdGhpcy5wcm9wZXJ0eT1ufX0kdC5wcm90b3R5cGUuYXR0cmlidXRlPSIiOyR0LnByb3RvdHlwZS5ib29sZWFuaXNoPSExOyR0LnByb3RvdHlwZS5ib29sZWFuPSExOyR0LnByb3RvdHlwZS5jb21tYU9yU3BhY2VTZXBhcmF0ZWQ9ITE7JHQucHJvdG90eXBlLmNvbW1hU2VwYXJhdGVkPSExOyR0LnByb3RvdHlwZS5kZWZpbmVkPSExOyR0LnByb3RvdHlwZS5tdXN0VXNlUHJvcGVydHk9ITE7JHQucHJvdG90eXBlLm51bWJlcj0hMTskdC5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW49ITE7JHQucHJvdG90eXBlLnByb3BlcnR5PSIiOyR0LnByb3RvdHlwZS5zcGFjZVNlcGFyYXRlZD0hMTskdC5wcm90b3R5cGUuc3BhY2U9dm9pZCAwO2xldCBLaj0wO2NvbnN0IHhlPWxhKCksY3Q9bGEoKSxNaD1sYSgpLGFlPWxhKCksWWU9bGEoKSxaYT1sYSgpLEp0PWxhKCk7ZnVuY3Rpb24gbGEoKXtyZXR1cm4gMioqKytLan1jb25zdCBVaD1PYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7X19wcm90b19fOm51bGwsYm9vbGVhbjp4ZSxib29sZWFuaXNoOmN0LGNvbW1hT3JTcGFjZVNlcGFyYXRlZDpKdCxjb21tYVNlcGFyYXRlZDpaYSxudW1iZXI6YWUsb3ZlcmxvYWRlZEJvb2xlYW46TWgsc3BhY2VTZXBhcmF0ZWQ6WWV9LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSksYWg9T2JqZWN0LmtleXMoVWgpO2NsYXNzIGRiIGV4dGVuZHMgJHR7Y29uc3RydWN0b3IobixhLGksbCl7bGV0IHU9LTE7aWYoc3VwZXIobixhKSxQTih0aGlzLCJzcGFjZSIsbCksdHlwZW9mIGk9PSJudW1iZXIiKWZvcig7Kyt1PGFoLmxlbmd0aDspe2NvbnN0IGM9YWhbdV07UE4odGhpcyxhaFt1XSwoaSZVaFtjXSk9PT1VaFtjXSl9fX1kYi5wcm90b3R5cGUuZGVmaW5lZD0hMDtmdW5jdGlvbiBQTihlLG4sYSl7YSYmKGVbbl09YSl9ZnVuY3Rpb24gbmkoZSl7Y29uc3Qgbj17fSxhPXt9O2Zvcihjb25zdFtpLGxdb2YgT2JqZWN0LmVudHJpZXMoZS5wcm9wZXJ0aWVzKSl7Y29uc3QgdT1uZXcgZGIoaSxlLnRyYW5zZm9ybShlLmF0dHJpYnV0ZXN8fHt9LGkpLGwsZS5zcGFjZSk7ZS5tdXN0VXNlUHJvcGVydHkmJmUubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKGkpJiYodS5tdXN0VXNlUHJvcGVydHk9ITApLG5baV09dSxhW0RoKGkpXT1pLGFbRGgodS5hdHRyaWJ1dGUpXT1pfXJldHVybiBuZXcgdW8obixhLGUuc3BhY2UpfWNvbnN0IHZrPW5pKHtwcm9wZXJ0aWVzOnthcmlhQWN0aXZlRGVzY2VuZGFudDpudWxsLGFyaWFBdG9taWM6Y3QsYXJpYUF1dG9Db21wbGV0ZTpudWxsLGFyaWFCdXN5OmN0LGFyaWFDaGVja2VkOmN0LGFyaWFDb2xDb3VudDphZSxhcmlhQ29sSW5kZXg6YWUsYXJpYUNvbFNwYW46YWUsYXJpYUNvbnRyb2xzOlllLGFyaWFDdXJyZW50Om51bGwsYXJpYURlc2NyaWJlZEJ5OlllLGFyaWFEZXRhaWxzOm51bGwsYXJpYURpc2FibGVkOmN0LGFyaWFEcm9wRWZmZWN0OlllLGFyaWFFcnJvck1lc3NhZ2U6bnVsbCxhcmlhRXhwYW5kZWQ6Y3QsYXJpYUZsb3dUbzpZZSxhcmlhR3JhYmJlZDpjdCxhcmlhSGFzUG9wdXA6bnVsbCxhcmlhSGlkZGVuOmN0LGFyaWFJbnZhbGlkOm51bGwsYXJpYUtleVNob3J0Y3V0czpudWxsLGFyaWFMYWJlbDpudWxsLGFyaWFMYWJlbGxlZEJ5OlllLGFyaWFMZXZlbDphZSxhcmlhTGl2ZTpudWxsLGFyaWFNb2RhbDpjdCxhcmlhTXVsdGlMaW5lOmN0LGFyaWFNdWx0aVNlbGVjdGFibGU6Y3QsYXJpYU9yaWVudGF0aW9uOm51bGwsYXJpYU93bnM6WWUsYXJpYVBsYWNlaG9sZGVyOm51bGwsYXJpYVBvc0luU2V0OmFlLGFyaWFQcmVzc2VkOmN0LGFyaWFSZWFkT25seTpjdCxhcmlhUmVsZXZhbnQ6bnVsbCxhcmlhUmVxdWlyZWQ6Y3QsYXJpYVJvbGVEZXNjcmlwdGlvbjpZZSxhcmlhUm93Q291bnQ6YWUsYXJpYVJvd0luZGV4OmFlLGFyaWFSb3dTcGFuOmFlLGFyaWFTZWxlY3RlZDpjdCxhcmlhU2V0U2l6ZTphZSxhcmlhU29ydDpudWxsLGFyaWFWYWx1ZU1heDphZSxhcmlhVmFsdWVNaW46YWUsYXJpYVZhbHVlTm93OmFlLGFyaWFWYWx1ZVRleHQ6bnVsbCxyb2xlOm51bGx9LHRyYW5zZm9ybShlLG4pe3JldHVybiBuPT09InJvbGUiP246ImFyaWEtIituLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCl9fSk7ZnVuY3Rpb24gVGsoZSxuKXtyZXR1cm4gbiBpbiBlP2Vbbl06bn1mdW5jdGlvbiB4ayhlLG4pe3JldHVybiBUayhlLG4udG9Mb3dlckNhc2UoKSl9Y29uc3QgV2o9bmkoe2F0dHJpYnV0ZXM6e2FjY2VwdGNoYXJzZXQ6ImFjY2VwdC1jaGFyc2V0IixjbGFzc25hbWU6ImNsYXNzIixodG1sZm9yOiJmb3IiLGh0dHBlcXVpdjoiaHR0cC1lcXVpdiJ9LG11c3RVc2VQcm9wZXJ0eTpbImNoZWNrZWQiLCJtdWx0aXBsZSIsIm11dGVkIiwic2VsZWN0ZWQiXSxwcm9wZXJ0aWVzOnthYmJyOm51bGwsYWNjZXB0OlphLGFjY2VwdENoYXJzZXQ6WWUsYWNjZXNzS2V5OlllLGFjdGlvbjpudWxsLGFsbG93Om51bGwsYWxsb3dGdWxsU2NyZWVuOnhlLGFsbG93UGF5bWVudFJlcXVlc3Q6eGUsYWxsb3dVc2VyTWVkaWE6eGUsYWx0Om51bGwsYXM6bnVsbCxhc3luYzp4ZSxhdXRvQ2FwaXRhbGl6ZTpudWxsLGF1dG9Db21wbGV0ZTpZZSxhdXRvRm9jdXM6eGUsYXV0b1BsYXk6eGUsYmxvY2tpbmc6WWUsY2FwdHVyZTpudWxsLGNoYXJTZXQ6bnVsbCxjaGVja2VkOnhlLGNpdGU6bnVsbCxjbGFzc05hbWU6WWUsY29sczphZSxjb2xTcGFuOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRFZGl0YWJsZTpjdCxjb250cm9sczp4ZSxjb250cm9sc0xpc3Q6WWUsY29vcmRzOmFlfFphLGNyb3NzT3JpZ2luOm51bGwsZGF0YTpudWxsLGRhdGVUaW1lOm51bGwsZGVjb2Rpbmc6bnVsbCxkZWZhdWx0OnhlLGRlZmVyOnhlLGRpcjpudWxsLGRpck5hbWU6bnVsbCxkaXNhYmxlZDp4ZSxkb3dubG9hZDpNaCxkcmFnZ2FibGU6Y3QsZW5jVHlwZTpudWxsLGVudGVyS2V5SGludDpudWxsLGZldGNoUHJpb3JpdHk6bnVsbCxmb3JtOm51bGwsZm9ybUFjdGlvbjpudWxsLGZvcm1FbmNUeXBlOm51bGwsZm9ybU1ldGhvZDpudWxsLGZvcm1Ob1ZhbGlkYXRlOnhlLGZvcm1UYXJnZXQ6bnVsbCxoZWFkZXJzOlllLGhlaWdodDphZSxoaWRkZW46TWgsaGlnaDphZSxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxodG1sRm9yOlllLGh0dHBFcXVpdjpZZSxpZDpudWxsLGltYWdlU2l6ZXM6bnVsbCxpbWFnZVNyY1NldDpudWxsLGluZXJ0OnhlLGlucHV0TW9kZTpudWxsLGludGVncml0eTpudWxsLGlzOm51bGwsaXNNYXA6eGUsaXRlbUlkOm51bGwsaXRlbVByb3A6WWUsaXRlbVJlZjpZZSxpdGVtU2NvcGU6eGUsaXRlbVR5cGU6WWUsa2luZDpudWxsLGxhYmVsOm51bGwsbGFuZzpudWxsLGxhbmd1YWdlOm51bGwsbGlzdDpudWxsLGxvYWRpbmc6bnVsbCxsb29wOnhlLGxvdzphZSxtYW5pZmVzdDpudWxsLG1heDpudWxsLG1heExlbmd0aDphZSxtZWRpYTpudWxsLG1ldGhvZDpudWxsLG1pbjpudWxsLG1pbkxlbmd0aDphZSxtdWx0aXBsZTp4ZSxtdXRlZDp4ZSxuYW1lOm51bGwsbm9uY2U6bnVsbCxub01vZHVsZTp4ZSxub1ZhbGlkYXRlOnhlLG9uQWJvcnQ6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkF1eENsaWNrOm51bGwsb25CZWZvcmVNYXRjaDpudWxsLG9uQmVmb3JlUHJpbnQ6bnVsbCxvbkJlZm9yZVRvZ2dsZTpudWxsLG9uQmVmb3JlVW5sb2FkOm51bGwsb25CbHVyOm51bGwsb25DYW5jZWw6bnVsbCxvbkNhblBsYXk6bnVsbCxvbkNhblBsYXlUaHJvdWdoOm51bGwsb25DaGFuZ2U6bnVsbCxvbkNsaWNrOm51bGwsb25DbG9zZTpudWxsLG9uQ29udGV4dExvc3Q6bnVsbCxvbkNvbnRleHRNZW51Om51bGwsb25Db250ZXh0UmVzdG9yZWQ6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9ybURhdGE6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxhbmd1YWdlQ2hhbmdlOm51bGwsb25Mb2FkOm51bGwsb25Mb2FkZWREYXRhOm51bGwsb25Mb2FkZWRNZXRhZGF0YTpudWxsLG9uTG9hZEVuZDpudWxsLG9uTG9hZFN0YXJ0Om51bGwsb25NZXNzYWdlOm51bGwsb25NZXNzYWdlRXJyb3I6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlamVjdGlvbkhhbmRsZWQ6bnVsbCxvblJlc2V0Om51bGwsb25SZXNpemU6bnVsbCxvblNjcm9sbDpudWxsLG9uU2Nyb2xsRW5kOm51bGwsb25TZWN1cml0eVBvbGljeVZpb2xhdGlvbjpudWxsLG9uU2Vla2VkOm51bGwsb25TZWVraW5nOm51bGwsb25TZWxlY3Q6bnVsbCxvblNsb3RDaGFuZ2U6bnVsbCxvblN0YWxsZWQ6bnVsbCxvblN0b3JhZ2U6bnVsbCxvblN1Ym1pdDpudWxsLG9uU3VzcGVuZDpudWxsLG9uVGltZVVwZGF0ZTpudWxsLG9uVG9nZ2xlOm51bGwsb25VbmhhbmRsZWRSZWplY3Rpb246bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25XaGVlbDpudWxsLG9wZW46eGUsb3B0aW11bTphZSxwYXR0ZXJuOm51bGwscGluZzpZZSxwbGFjZWhvbGRlcjpudWxsLHBsYXlzSW5saW5lOnhlLHBvcG92ZXI6bnVsbCxwb3BvdmVyVGFyZ2V0Om51bGwscG9wb3ZlclRhcmdldEFjdGlvbjpudWxsLHBvc3RlcjpudWxsLHByZWxvYWQ6bnVsbCxyZWFkT25seTp4ZSxyZWZlcnJlclBvbGljeTpudWxsLHJlbDpZZSxyZXF1aXJlZDp4ZSxyZXZlcnNlZDp4ZSxyb3dzOmFlLHJvd1NwYW46YWUsc2FuZGJveDpZZSxzY29wZTpudWxsLHNjb3BlZDp4ZSxzZWFtbGVzczp4ZSxzZWxlY3RlZDp4ZSxzaGFkb3dSb290Q2xvbmFibGU6eGUsc2hhZG93Um9vdERlbGVnYXRlc0ZvY3VzOnhlLHNoYWRvd1Jvb3RNb2RlOm51bGwsc2hhcGU6bnVsbCxzaXplOmFlLHNpemVzOm51bGwsc2xvdDpudWxsLHNwYW46YWUsc3BlbGxDaGVjazpjdCxzcmM6bnVsbCxzcmNEb2M6bnVsbCxzcmNMYW5nOm51bGwsc3JjU2V0Om51bGwsc3RhcnQ6YWUsc3RlcDpudWxsLHN0eWxlOm51bGwsdGFiSW5kZXg6YWUsdGFyZ2V0Om51bGwsdGl0bGU6bnVsbCx0cmFuc2xhdGU6bnVsbCx0eXBlOm51bGwsdHlwZU11c3RNYXRjaDp4ZSx1c2VNYXA6bnVsbCx2YWx1ZTpjdCx3aWR0aDphZSx3cmFwOm51bGwsd3JpdGluZ1N1Z2dlc3Rpb25zOm51bGwsYWxpZ246bnVsbCxhTGluazpudWxsLGFyY2hpdmU6WWUsYXhpczpudWxsLGJhY2tncm91bmQ6bnVsbCxiZ0NvbG9yOm51bGwsYm9yZGVyOmFlLGJvcmRlckNvbG9yOm51bGwsYm90dG9tTWFyZ2luOmFlLGNlbGxQYWRkaW5nOm51bGwsY2VsbFNwYWNpbmc6bnVsbCxjaGFyOm51bGwsY2hhck9mZjpudWxsLGNsYXNzSWQ6bnVsbCxjbGVhcjpudWxsLGNvZGU6bnVsbCxjb2RlQmFzZTpudWxsLGNvZGVUeXBlOm51bGwsY29sb3I6bnVsbCxjb21wYWN0OnhlLGRlY2xhcmU6eGUsZXZlbnQ6bnVsbCxmYWNlOm51bGwsZnJhbWU6bnVsbCxmcmFtZUJvcmRlcjpudWxsLGhTcGFjZTphZSxsZWZ0TWFyZ2luOmFlLGxpbms6bnVsbCxsb25nRGVzYzpudWxsLGxvd1NyYzpudWxsLG1hcmdpbkhlaWdodDphZSxtYXJnaW5XaWR0aDphZSxub1Jlc2l6ZTp4ZSxub0hyZWY6eGUsbm9TaGFkZTp4ZSxub1dyYXA6eGUsb2JqZWN0Om51bGwscHJvZmlsZTpudWxsLHByb21wdDpudWxsLHJldjpudWxsLHJpZ2h0TWFyZ2luOmFlLHJ1bGVzOm51bGwsc2NoZW1lOm51bGwsc2Nyb2xsaW5nOmN0LHN0YW5kYnk6bnVsbCxzdW1tYXJ5Om51bGwsdGV4dDpudWxsLHRvcE1hcmdpbjphZSx2YWx1ZVR5cGU6bnVsbCx2ZXJzaW9uOm51bGwsdkFsaWduOm51bGwsdkxpbms6bnVsbCx2U3BhY2U6YWUsYWxsb3dUcmFuc3BhcmVuY3k6bnVsbCxhdXRvQ29ycmVjdDpudWxsLGF1dG9TYXZlOm51bGwsZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6eGUsZGlzYWJsZVJlbW90ZVBsYXliYWNrOnhlLHByZWZpeDpudWxsLHByb3BlcnR5Om51bGwscmVzdWx0czphZSxzZWN1cml0eTpudWxsLHVuc2VsZWN0YWJsZTpudWxsfSxzcGFjZToiaHRtbCIsdHJhbnNmb3JtOnhrfSksWGo9bmkoe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDpKdCxhY2NlbnRIZWlnaHQ6YWUsYWNjdW11bGF0ZTpudWxsLGFkZGl0aXZlOm51bGwsYWxpZ25tZW50QmFzZWxpbmU6bnVsbCxhbHBoYWJldGljOmFlLGFtcGxpdHVkZTphZSxhcmFiaWNGb3JtOm51bGwsYXNjZW50OmFlLGF0dHJpYnV0ZU5hbWU6bnVsbCxhdHRyaWJ1dGVUeXBlOm51bGwsYXppbXV0aDphZSxiYW5kd2lkdGg6bnVsbCxiYXNlbGluZVNoaWZ0Om51bGwsYmFzZUZyZXF1ZW5jeTpudWxsLGJhc2VQcm9maWxlOm51bGwsYmJveDpudWxsLGJlZ2luOm51bGwsYmlhczphZSxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0OmFlLGNsYXNzTmFtZTpZZSxjbGlwOm51bGwsY2xpcFBhdGg6bnVsbCxjbGlwUGF0aFVuaXRzOm51bGwsY2xpcFJ1bGU6bnVsbCxjb2xvcjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6bnVsbCxjb2xvclByb2ZpbGU6bnVsbCxjb2xvclJlbmRlcmluZzpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50U2NyaXB0VHlwZTpudWxsLGNvbnRlbnRTdHlsZVR5cGU6bnVsbCxjcm9zc09yaWdpbjpudWxsLGN1cnNvcjpudWxsLGN4Om51bGwsY3k6bnVsbCxkOm51bGwsZGF0YVR5cGU6bnVsbCxkZWZhdWx0QWN0aW9uOm51bGwsZGVzY2VudDphZSxkaWZmdXNlQ29uc3RhbnQ6YWUsZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6YWUsZG9taW5hbnRCYXNlbGluZTpudWxsLGRvd25sb2FkOnhlLGR4Om51bGwsZHk6bnVsbCxlZGdlTW9kZTpudWxsLGVkaXRhYmxlOm51bGwsZWxldmF0aW9uOmFlLGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50OmFlLGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6bnVsbCxmaWxsOm51bGwsZmlsbE9wYWNpdHk6YWUsZmlsbFJ1bGU6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJSZXM6bnVsbCxmaWx0ZXJVbml0czpudWxsLGZsb29kQ29sb3I6bnVsbCxmbG9vZE9wYWNpdHk6bnVsbCxmb2N1c2FibGU6bnVsbCxmb2N1c0hpZ2hsaWdodDpudWxsLGZvbnRGYW1pbHk6bnVsbCxmb250U2l6ZTpudWxsLGZvbnRTaXplQWRqdXN0Om51bGwsZm9udFN0cmV0Y2g6bnVsbCxmb250U3R5bGU6bnVsbCxmb250VmFyaWFudDpudWxsLGZvbnRXZWlnaHQ6bnVsbCxmb3JtYXQ6bnVsbCxmcjpudWxsLGZyb206bnVsbCxmeDpudWxsLGZ5Om51bGwsZzE6WmEsZzI6WmEsZ2x5cGhOYW1lOlphLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOm51bGwsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOm51bGwsZ2x5cGhSZWY6bnVsbCxncmFkaWVudFRyYW5zZm9ybTpudWxsLGdyYWRpZW50VW5pdHM6bnVsbCxoYW5kbGVyOm51bGwsaGFuZ2luZzphZSxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6YWUsaG9yaXpPcmlnaW5YOmFlLGhvcml6T3JpZ2luWTphZSxpZDpudWxsLGlkZW9ncmFwaGljOmFlLGltYWdlUmVuZGVyaW5nOm51bGwsaW5pdGlhbFZpc2liaWxpdHk6bnVsbCxpbjpudWxsLGluMjpudWxsLGludGVyY2VwdDphZSxrOmFlLGsxOmFlLGsyOmFlLGszOmFlLGs0OmFlLGtlcm5lbE1hdHJpeDpKdCxrZXJuZWxVbml0TGVuZ3RoOm51bGwsa2V5UG9pbnRzOm51bGwsa2V5U3BsaW5lczpudWxsLGtleVRpbWVzOm51bGwsa2VybmluZzpudWxsLGxhbmc6bnVsbCxsZW5ndGhBZGp1c3Q6bnVsbCxsZXR0ZXJTcGFjaW5nOm51bGwsbGlnaHRpbmdDb2xvcjpudWxsLGxpbWl0aW5nQ29uZUFuZ2xlOmFlLGxvY2FsOm51bGwsbWFya2VyRW5kOm51bGwsbWFya2VyTWlkOm51bGwsbWFya2VyU3RhcnQ6bnVsbCxtYXJrZXJIZWlnaHQ6bnVsbCxtYXJrZXJVbml0czpudWxsLG1hcmtlcldpZHRoOm51bGwsbWFzazpudWxsLG1hc2tDb250ZW50VW5pdHM6bnVsbCxtYXNrVW5pdHM6bnVsbCxtYXRoZW1hdGljYWw6bnVsbCxtYXg6bnVsbCxtZWRpYTpudWxsLG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6bnVsbCxtZWRpYUNvbnRlbnRFbmNvZGluZ3M6bnVsbCxtZWRpYVNpemU6YWUsbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246YWUsb3ZlcmxpbmVUaGlja25lc3M6YWUscGFpbnRPcmRlcjpudWxsLHBhbm9zZTE6bnVsbCxwYXRoOm51bGwscGF0aExlbmd0aDphZSxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpZZSxwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOmFlLHBvaW50c0F0WTphZSxwb2ludHNBdFo6YWUscHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5Okp0LHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOkp0LHJldjpKdCxyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczpKdCxyZXF1aXJlZEZlYXR1cmVzOkp0LHJlcXVpcmVkRm9udHM6SnQscmVxdWlyZWRGb3JtYXRzOkp0LHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6YWUsc3BlY3VsYXJFeHBvbmVudDphZSxzcHJlYWRNZXRob2Q6bnVsbCxzcGFjaW5nOm51bGwsc3RhcnRPZmZzZXQ6bnVsbCxzdGREZXZpYXRpb246bnVsbCxzdGVtaDpudWxsLHN0ZW12Om51bGwsc3RpdGNoVGlsZXM6bnVsbCxzdG9wQ29sb3I6bnVsbCxzdG9wT3BhY2l0eTpudWxsLHN0cmlrZXRocm91Z2hQb3NpdGlvbjphZSxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOmFlLHN0cmluZzpudWxsLHN0cm9rZTpudWxsLHN0cm9rZURhc2hBcnJheTpKdCxzdHJva2VEYXNoT2Zmc2V0Om51bGwsc3Ryb2tlTGluZUNhcDpudWxsLHN0cm9rZUxpbmVKb2luOm51bGwsc3Ryb2tlTWl0ZXJMaW1pdDphZSxzdHJva2VPcGFjaXR5OmFlLHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6YWUsc3luY0JlaGF2aW9yOm51bGwsc3luY0JlaGF2aW9yRGVmYXVsdDpudWxsLHN5bmNNYXN0ZXI6bnVsbCxzeW5jVG9sZXJhbmNlOm51bGwsc3luY1RvbGVyYW5jZURlZmF1bHQ6bnVsbCxzeXN0ZW1MYW5ndWFnZTpKdCx0YWJJbmRleDphZSx0YWJsZVZhbHVlczpudWxsLHRhcmdldDpudWxsLHRhcmdldFg6YWUsdGFyZ2V0WTphZSx0ZXh0QW5jaG9yOm51bGwsdGV4dERlY29yYXRpb246bnVsbCx0ZXh0UmVuZGVyaW5nOm51bGwsdGV4dExlbmd0aDpudWxsLHRpbWVsaW5lQmVnaW46bnVsbCx0aXRsZTpudWxsLHRyYW5zZm9ybUJlaGF2aW9yOm51bGwsdHlwZTpudWxsLHR5cGVPZjpKdCx0bzpudWxsLHRyYW5zZm9ybTpudWxsLHRyYW5zZm9ybU9yaWdpbjpudWxsLHUxOm51bGwsdTI6bnVsbCx1bmRlcmxpbmVQb3NpdGlvbjphZSx1bmRlcmxpbmVUaGlja25lc3M6YWUsdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTphZSx2YWx1ZXM6bnVsbCx2QWxwaGFiZXRpYzphZSx2TWF0aGVtYXRpY2FsOmFlLHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOmFlLHZJZGVvZ3JhcGhpYzphZSx2ZXJzaW9uOm51bGwsdmVydEFkdlk6YWUsdmVydE9yaWdpblg6YWUsdmVydE9yaWdpblk6YWUsdmlld0JveDpudWxsLHZpZXdUYXJnZXQ6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCx3aWR0aHM6bnVsbCx3b3JkU3BhY2luZzpudWxsLHdyaXRpbmdNb2RlOm51bGwseDpudWxsLHgxOm51bGwseDI6bnVsbCx4Q2hhbm5lbFNlbGVjdG9yOm51bGwseEhlaWdodDphZSx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06VGt9KSxBaz1uaSh7cHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfSxzcGFjZToieGxpbmsiLHRyYW5zZm9ybShlLG4pe3JldHVybiJ4bGluazoiK24uc2xpY2UoNSkudG9Mb3dlckNhc2UoKX19KSxfaz1uaSh7YXR0cmlidXRlczp7eG1sbnN4bGluazoieG1sbnM6eGxpbmsifSxwcm9wZXJ0aWVzOnt4bWxuc1hMaW5rOm51bGwseG1sbnM6bnVsbH0sc3BhY2U6InhtbG5zIix0cmFuc2Zvcm06eGt9KSxSaz1uaSh7cHJvcGVydGllczp7eG1sQmFzZTpudWxsLHhtbExhbmc6bnVsbCx4bWxTcGFjZTpudWxsfSxzcGFjZToieG1sIix0cmFuc2Zvcm0oZSxuKXtyZXR1cm4ieG1sOiIrbi5zbGljZSgzKS50b0xvd2VyQ2FzZSgpfX0pLFpqPXtjbGFzc0lkOiJjbGFzc0lEIixkYXRhVHlwZToiZGF0YXR5cGUiLGl0ZW1JZDoiaXRlbUlEIixzdHJva2VEYXNoQXJyYXk6InN0cm9rZURhc2hhcnJheSIsc3Ryb2tlRGFzaE9mZnNldDoic3Ryb2tlRGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlTGluZWNhcCIsc3Ryb2tlTGluZUpvaW46InN0cm9rZUxpbmVqb2luIixzdHJva2VNaXRlckxpbWl0OiJzdHJva2VNaXRlcmxpbWl0Iix0eXBlT2Y6InR5cGVvZiIseExpbmtBY3R1YXRlOiJ4bGlua0FjdHVhdGUiLHhMaW5rQXJjUm9sZToieGxpbmtBcmNyb2xlIix4TGlua0hyZWY6InhsaW5rSHJlZiIseExpbmtSb2xlOiJ4bGlua1JvbGUiLHhMaW5rU2hvdzoieGxpbmtTaG93Iix4TGlua1RpdGxlOiJ4bGlua1RpdGxlIix4TGlua1R5cGU6InhsaW5rVHlwZSIseG1sbnNYTGluazoieG1sbnNYbGluayJ9LFFqPS9bQS1aXS9nLEdOPS8tW2Etel0vZyxKaj0vXmRhdGFbLVx3LjpdKyQvaTtmdW5jdGlvbiBleihlLG4pe2NvbnN0IGE9RGgobik7bGV0IGk9bixsPSR0O2lmKGEgaW4gZS5ub3JtYWwpcmV0dXJuIGUucHJvcGVydHlbZS5ub3JtYWxbYV1dO2lmKGEubGVuZ3RoPjQmJmEuc2xpY2UoMCw0KT09PSJkYXRhIiYmSmoudGVzdChuKSl7aWYobi5jaGFyQXQoNCk9PT0iLSIpe2NvbnN0IHU9bi5zbGljZSg1KS5yZXBsYWNlKEdOLG56KTtpPSJkYXRhIit1LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSl9ZWxzZXtjb25zdCB1PW4uc2xpY2UoNCk7aWYoIUdOLnRlc3QodSkpe2xldCBjPXUucmVwbGFjZShRaix0eik7Yy5jaGFyQXQoMCkhPT0iLSImJihjPSItIitjKSxuPSJkYXRhIitjfX1sPWRifXJldHVybiBuZXcgbChpLG4pfWZ1bmN0aW9uIHR6KGUpe3JldHVybiItIitlLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gbnooZSl7cmV0dXJuIGUuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9Y29uc3Qgcno9U2soW3ZrLFdqLEFrLF9rLFJrXSwiaHRtbCIpLHBiPVNrKFt2ayxYaixBayxfayxSa10sInN2ZyIpO2Z1bmN0aW9uIGF6KGUpe3JldHVybiBlLmpvaW4oIiAiKS50cmltKCl9dmFyIFlhPXt9LGloLEhOO2Z1bmN0aW9uIGl6KCl7aWYoSE4pcmV0dXJuIGloO0hOPTE7dmFyIGU9L1wvXCpbXipdKlwqKyhbXi8qXVteKl0qXCorKSpcLy9nLG49L1xuL2csYT0vXlxzKi8saT0vXihcKj9bLSMvKlxcXHddKyhcW1swLTlhLXpfLV0rXF0pPylccyovLGw9L146XHMqLyx1PS9eKCg/OicoPzpcXCd8LikqPyd8Iig/OlxcInwuKSo/InxcKFteKV0qP1wpfFtefTtdKSspLyxjPS9eWztcc10qLyxkPS9eXHMrfFxzKyQvZyxmPWAKYCxtPSIvIixiPSIqIixoPSIiLFM9ImNvbW1lbnQiLEU9ImRlY2xhcmF0aW9uIjtpaD1mdW5jdGlvbihULEMpe2lmKHR5cGVvZiBUIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nIik7aWYoIVQpcmV0dXJuW107Qz1DfHx7fTt2YXIgeD0xLE49MTtmdW5jdGlvbiBrKG9lKXt2YXIgaWU9b2UubWF0Y2gobik7aWUmJih4Kz1pZS5sZW5ndGgpO3ZhciBsZT1vZS5sYXN0SW5kZXhPZihmKTtOPX5sZT9vZS5sZW5ndGgtbGU6TitvZS5sZW5ndGh9ZnVuY3Rpb24gTCgpe3ZhciBvZT17bGluZTp4LGNvbHVtbjpOfTtyZXR1cm4gZnVuY3Rpb24oaWUpe3JldHVybiBpZS5wb3NpdGlvbj1uZXcgRihvZSksWSgpLGllfX1mdW5jdGlvbiBGKG9lKXt0aGlzLnN0YXJ0PW9lLHRoaXMuZW5kPXtsaW5lOngsY29sdW1uOk59LHRoaXMuc291cmNlPUMuc291cmNlfUYucHJvdG90eXBlLmNvbnRlbnQ9VDtmdW5jdGlvbiBSKG9lKXt2YXIgaWU9bmV3IEVycm9yKEMuc291cmNlKyI6Iit4KyI6IitOKyI6ICIrb2UpO2lmKGllLnJlYXNvbj1vZSxpZS5maWxlbmFtZT1DLnNvdXJjZSxpZS5saW5lPXgsaWUuY29sdW1uPU4saWUuc291cmNlPVQsIUMuc2lsZW50KXRocm93IGllfWZ1bmN0aW9uIE0ob2Upe3ZhciBpZT1vZS5leGVjKFQpO2lmKGllKXt2YXIgbGU9aWVbMF07cmV0dXJuIGsobGUpLFQ9VC5zbGljZShsZS5sZW5ndGgpLGllfX1mdW5jdGlvbiBZKCl7TShhKX1mdW5jdGlvbiB6KG9lKXt2YXIgaWU7Zm9yKG9lPW9lfHxbXTtpZT1VKCk7KWllIT09ITEmJm9lLnB1c2goaWUpO3JldHVybiBvZX1mdW5jdGlvbiBVKCl7dmFyIG9lPUwoKTtpZighKG0hPVQuY2hhckF0KDApfHxiIT1ULmNoYXJBdCgxKSkpe2Zvcih2YXIgaWU9MjtoIT1ULmNoYXJBdChpZSkmJihiIT1ULmNoYXJBdChpZSl8fG0hPVQuY2hhckF0KGllKzEpKTspKytpZTtpZihpZSs9MixoPT09VC5jaGFyQXQoaWUtMSkpcmV0dXJuIFIoIkVuZCBvZiBjb21tZW50IG1pc3NpbmciKTt2YXIgbGU9VC5zbGljZSgyLGllLTIpO3JldHVybiBOKz0yLGsobGUpLFQ9VC5zbGljZShpZSksTis9MixvZSh7dHlwZTpTLGNvbW1lbnQ6bGV9KX19ZnVuY3Rpb24gJCgpe3ZhciBvZT1MKCksaWU9TShpKTtpZihpZSl7aWYoVSgpLCFNKGwpKXJldHVybiBSKCJwcm9wZXJ0eSBtaXNzaW5nICc6JyIpO3ZhciBsZT1NKHUpLEc9b2Uoe3R5cGU6RSxwcm9wZXJ0eTpfKGllWzBdLnJlcGxhY2UoZSxoKSksdmFsdWU6bGU/XyhsZVswXS5yZXBsYWNlKGUsaCkpOmh9KTtyZXR1cm4gTShjKSxHfX1mdW5jdGlvbiBKKCl7dmFyIG9lPVtdO3oob2UpO2Zvcih2YXIgaWU7aWU9JCgpOylpZSE9PSExJiYob2UucHVzaChpZSkseihvZSkpO3JldHVybiBvZX1yZXR1cm4gWSgpLEooKX07ZnVuY3Rpb24gXyhUKXtyZXR1cm4gVD9ULnJlcGxhY2UoZCxoKTpofXJldHVybiBpaH12YXIgJE47ZnVuY3Rpb24gb3ooKXtpZigkTilyZXR1cm4gWWE7JE49MTt2YXIgZT1ZYSYmWWEuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihpKXtyZXR1cm4gaSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShZYSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksWWEuZGVmYXVsdD1hO3ZhciBuPWUoaXooKSk7ZnVuY3Rpb24gYShpLGwpe3ZhciB1PW51bGw7aWYoIWl8fHR5cGVvZiBpIT0ic3RyaW5nIilyZXR1cm4gdTt2YXIgYz0oMCxuLmRlZmF1bHQpKGkpLGQ9dHlwZW9mIGw9PSJmdW5jdGlvbiI7cmV0dXJuIGMuZm9yRWFjaChmdW5jdGlvbihmKXtpZihmLnR5cGU9PT0iZGVjbGFyYXRpb24iKXt2YXIgbT1mLnByb3BlcnR5LGI9Zi52YWx1ZTtkP2wobSxiLGYpOmImJih1PXV8fHt9LHVbbV09Yil9fSksdX1yZXR1cm4gWWF9dmFyIFppPXt9LFZOO2Z1bmN0aW9uIGx6KCl7aWYoVk4pcmV0dXJuIFppO1ZOPTEsT2JqZWN0LmRlZmluZVByb3BlcnR5KFppLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxaaS5jYW1lbENhc2U9dm9pZCAwO3ZhciBlPS9eLS1bYS16QS1aMC05Xy1dKyQvLG49Ly0oW2Etel0pL2csYT0vXlteLV0rJC8saT0vXi0od2Via2l0fG1venxtc3xvfGtodG1sKS0vLGw9L14tKG1zKS0vLHU9ZnVuY3Rpb24obSl7cmV0dXJuIW18fGEudGVzdChtKXx8ZS50ZXN0KG0pfSxjPWZ1bmN0aW9uKG0sYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX0sZD1mdW5jdGlvbihtLGIpe3JldHVybiIiLmNvbmNhdChiLCItIil9LGY9ZnVuY3Rpb24obSxiKXtyZXR1cm4gYj09PXZvaWQgMCYmKGI9e30pLHUobSk/bToobT1tLnRvTG93ZXJDYXNlKCksYi5yZWFjdENvbXBhdD9tPW0ucmVwbGFjZShsLGQpOm09bS5yZXBsYWNlKGksZCksbS5yZXBsYWNlKG4sYykpfTtyZXR1cm4gWmkuY2FtZWxDYXNlPWYsWml9dmFyIFFpLFlOO2Z1bmN0aW9uIHN6KCl7aWYoWU4pcmV0dXJuIFFpO1lOPTE7dmFyIGU9UWkmJlFpLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24obCl7cmV0dXJuIGwmJmwuX19lc01vZHVsZT9sOntkZWZhdWx0Omx9fSxuPWUob3ooKSksYT1seigpO2Z1bmN0aW9uIGkobCx1KXt2YXIgYz17fTtyZXR1cm4hbHx8dHlwZW9mIGwhPSJzdHJpbmcifHwoMCxuLmRlZmF1bHQpKGwsZnVuY3Rpb24oZCxmKXtkJiZmJiYoY1soMCxhLmNhbWVsQ2FzZSkoZCx1KV09Zil9KSxjfXJldHVybiBpLmRlZmF1bHQ9aSxRaT1pLFFpfXZhciB1ej1zeigpO2NvbnN0IGN6PUhsKHV6KSxOaz13aygiZW5kIiksZmI9d2soInN0YXJ0Iik7ZnVuY3Rpb24gd2soZSl7cmV0dXJuIG47ZnVuY3Rpb24gbihhKXtjb25zdCBpPWEmJmEucG9zaXRpb24mJmEucG9zaXRpb25bZV18fHt9O2lmKHR5cGVvZiBpLmxpbmU9PSJudW1iZXIiJiZpLmxpbmU+MCYmdHlwZW9mIGkuY29sdW1uPT0ibnVtYmVyIiYmaS5jb2x1bW4+MClyZXR1cm57bGluZTppLmxpbmUsY29sdW1uOmkuY29sdW1uLG9mZnNldDp0eXBlb2YgaS5vZmZzZXQ9PSJudW1iZXIiJiZpLm9mZnNldD4tMT9pLm9mZnNldDp2b2lkIDB9fX1mdW5jdGlvbiBkeihlKXtjb25zdCBuPWZiKGUpLGE9TmsoZSk7aWYobiYmYSlyZXR1cm57c3RhcnQ6bixlbmQ6YX19ZnVuY3Rpb24gdG8oZSl7cmV0dXJuIWV8fHR5cGVvZiBlIT0ib2JqZWN0Ij8iIjoicG9zaXRpb24iaW4gZXx8InR5cGUiaW4gZT9LTihlLnBvc2l0aW9uKToic3RhcnQiaW4gZXx8ImVuZCJpbiBlP0tOKGUpOiJsaW5lImluIGV8fCJjb2x1bW4iaW4gZT9GaChlKToiIn1mdW5jdGlvbiBGaChlKXtyZXR1cm4gV04oZSYmZS5saW5lKSsiOiIrV04oZSYmZS5jb2x1bW4pfWZ1bmN0aW9uIEtOKGUpe3JldHVybiBGaChlJiZlLnN0YXJ0KSsiLSIrRmgoZSYmZS5lbmQpfWZ1bmN0aW9uIFdOKGUpe3JldHVybiBlJiZ0eXBlb2YgZT09Im51bWJlciI/ZToxfWNsYXNzIE50IGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IobixhLGkpe3N1cGVyKCksdHlwZW9mIGE9PSJzdHJpbmciJiYoaT1hLGE9dm9pZCAwKTtsZXQgbD0iIix1PXt9LGM9ITE7aWYoYSYmKCJsaW5lImluIGEmJiJjb2x1bW4iaW4gYT91PXtwbGFjZTphfToic3RhcnQiaW4gYSYmImVuZCJpbiBhP3U9e3BsYWNlOmF9OiJ0eXBlImluIGE/dT17YW5jZXN0b3JzOlthXSxwbGFjZTphLnBvc2l0aW9ufTp1PXsuLi5hfSksdHlwZW9mIG49PSJzdHJpbmciP2w9bjohdS5jYXVzZSYmbiYmKGM9ITAsbD1uLm1lc3NhZ2UsdS5jYXVzZT1uKSwhdS5ydWxlSWQmJiF1LnNvdXJjZSYmdHlwZW9mIGk9PSJzdHJpbmciKXtjb25zdCBmPWkuaW5kZXhPZigiOiIpO2Y9PT0tMT91LnJ1bGVJZD1pOih1LnNvdXJjZT1pLnNsaWNlKDAsZiksdS5ydWxlSWQ9aS5zbGljZShmKzEpKX1pZighdS5wbGFjZSYmdS5hbmNlc3RvcnMmJnUuYW5jZXN0b3JzKXtjb25zdCBmPXUuYW5jZXN0b3JzW3UuYW5jZXN0b3JzLmxlbmd0aC0xXTtmJiYodS5wbGFjZT1mLnBvc2l0aW9uKX1jb25zdCBkPXUucGxhY2UmJiJzdGFydCJpbiB1LnBsYWNlP3UucGxhY2Uuc3RhcnQ6dS5wbGFjZTt0aGlzLmFuY2VzdG9ycz11LmFuY2VzdG9yc3x8dm9pZCAwLHRoaXMuY2F1c2U9dS5jYXVzZXx8dm9pZCAwLHRoaXMuY29sdW1uPWQ/ZC5jb2x1bW46dm9pZCAwLHRoaXMuZmF0YWw9dm9pZCAwLHRoaXMuZmlsZT0iIix0aGlzLm1lc3NhZ2U9bCx0aGlzLmxpbmU9ZD9kLmxpbmU6dm9pZCAwLHRoaXMubmFtZT10byh1LnBsYWNlKXx8IjE6MSIsdGhpcy5wbGFjZT11LnBsYWNlfHx2b2lkIDAsdGhpcy5yZWFzb249dGhpcy5tZXNzYWdlLHRoaXMucnVsZUlkPXUucnVsZUlkfHx2b2lkIDAsdGhpcy5zb3VyY2U9dS5zb3VyY2V8fHZvaWQgMCx0aGlzLnN0YWNrPWMmJnUuY2F1c2UmJnR5cGVvZiB1LmNhdXNlLnN0YWNrPT0ic3RyaW5nIj91LmNhdXNlLnN0YWNrOiIiLHRoaXMuYWN0dWFsPXZvaWQgMCx0aGlzLmV4cGVjdGVkPXZvaWQgMCx0aGlzLm5vdGU9dm9pZCAwLHRoaXMudXJsPXZvaWQgMH19TnQucHJvdG90eXBlLmZpbGU9IiI7TnQucHJvdG90eXBlLm5hbWU9IiI7TnQucHJvdG90eXBlLnJlYXNvbj0iIjtOdC5wcm90b3R5cGUubWVzc2FnZT0iIjtOdC5wcm90b3R5cGUuc3RhY2s9IiI7TnQucHJvdG90eXBlLmNvbHVtbj12b2lkIDA7TnQucHJvdG90eXBlLmxpbmU9dm9pZCAwO050LnByb3RvdHlwZS5hbmNlc3RvcnM9dm9pZCAwO050LnByb3RvdHlwZS5jYXVzZT12b2lkIDA7TnQucHJvdG90eXBlLmZhdGFsPXZvaWQgMDtOdC5wcm90b3R5cGUucGxhY2U9dm9pZCAwO050LnByb3RvdHlwZS5ydWxlSWQ9dm9pZCAwO050LnByb3RvdHlwZS5zb3VyY2U9dm9pZCAwO2NvbnN0IGdiPXt9Lmhhc093blByb3BlcnR5LHB6PW5ldyBNYXAsZno9L1tBLVpdL2csZ3o9bmV3IFNldChbInRhYmxlIiwidGJvZHkiLCJ0aGVhZCIsInRmb290IiwidHIiXSksbXo9bmV3IFNldChbInRkIiwidGgiXSksa2s9Imh0dHBzOi8vZ2l0aHViLmNvbS9zeW50YXgtdHJlZS9oYXN0LXV0aWwtdG8tanN4LXJ1bnRpbWUiO2Z1bmN0aW9uIGh6KGUsbil7aWYoIW58fG4uRnJhZ21lbnQ9PT12b2lkIDApdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYEZyYWdtZW50YCBpbiBvcHRpb25zIik7Y29uc3QgYT1uLmZpbGVQYXRofHx2b2lkIDA7bGV0IGk7aWYobi5kZXZlbG9wbWVudCl7aWYodHlwZW9mIG4uanN4REVWIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGBqc3hERVZgIGluIG9wdGlvbnMgd2hlbiBgZGV2ZWxvcG1lbnQ6IHRydWVgIik7aT1BeihhLG4uanN4REVWKX1lbHNle2lmKHR5cGVvZiBuLmpzeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBganN4YCBpbiBwcm9kdWN0aW9uIG9wdGlvbnMiKTtpZih0eXBlb2Ygbi5qc3hzIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGBqc3hzYCBpbiBwcm9kdWN0aW9uIG9wdGlvbnMiKTtpPXh6KGEsbi5qc3gsbi5qc3hzKX1jb25zdCBsPXtGcmFnbWVudDpuLkZyYWdtZW50LGFuY2VzdG9yczpbXSxjb21wb25lbnRzOm4uY29tcG9uZW50c3x8e30sY3JlYXRlOmksZWxlbWVudEF0dHJpYnV0ZU5hbWVDYXNlOm4uZWxlbWVudEF0dHJpYnV0ZU5hbWVDYXNlfHwicmVhY3QiLGV2YWx1YXRlcjpuLmNyZWF0ZUV2YWx1YXRlcj9uLmNyZWF0ZUV2YWx1YXRlcigpOnZvaWQgMCxmaWxlUGF0aDphLGlnbm9yZUludmFsaWRTdHlsZTpuLmlnbm9yZUludmFsaWRTdHlsZXx8ITEscGFzc0tleXM6bi5wYXNzS2V5cyE9PSExLHBhc3NOb2RlOm4ucGFzc05vZGV8fCExLHNjaGVtYTpuLnNwYWNlPT09InN2ZyI/cGI6cnosc3R5bGVQcm9wZXJ0eU5hbWVDYXNlOm4uc3R5bGVQcm9wZXJ0eU5hbWVDYXNlfHwiZG9tIix0YWJsZUNlbGxBbGlnblRvU3R5bGU6bi50YWJsZUNlbGxBbGlnblRvU3R5bGUhPT0hMX0sdT1DayhsLGUsdm9pZCAwKTtyZXR1cm4gdSYmdHlwZW9mIHUhPSJzdHJpbmciP3U6bC5jcmVhdGUoZSxsLkZyYWdtZW50LHtjaGlsZHJlbjp1fHx2b2lkIDB9LHZvaWQgMCl9ZnVuY3Rpb24gQ2soZSxuLGEpe2lmKG4udHlwZT09PSJlbGVtZW50IilyZXR1cm4gYnooZSxuLGEpO2lmKG4udHlwZT09PSJtZHhGbG93RXhwcmVzc2lvbiJ8fG4udHlwZT09PSJtZHhUZXh0RXhwcmVzc2lvbiIpcmV0dXJuIHl6KGUsbik7aWYobi50eXBlPT09Im1keEpzeEZsb3dFbGVtZW50Inx8bi50eXBlPT09Im1keEpzeFRleHRFbGVtZW50IilyZXR1cm4gU3ooZSxuLGEpO2lmKG4udHlwZT09PSJtZHhqc0VzbSIpcmV0dXJuIEV6KGUsbik7aWYobi50eXBlPT09InJvb3QiKXJldHVybiB2eihlLG4sYSk7aWYobi50eXBlPT09InRleHQiKXJldHVybiBUeihlLG4pfWZ1bmN0aW9uIGJ6KGUsbixhKXtjb25zdCBpPWUuc2NoZW1hO2xldCBsPWk7bi50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ic3ZnIiYmaS5zcGFjZT09PSJodG1sIiYmKGw9cGIsZS5zY2hlbWE9bCksZS5hbmNlc3RvcnMucHVzaChuKTtjb25zdCB1PU9rKGUsbi50YWdOYW1lLCExKSxjPV96KGUsbik7bGV0IGQ9aGIoZSxuKTtyZXR1cm4gZ3ouaGFzKG4udGFnTmFtZSkmJihkPWQuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiB0eXBlb2YgZj09InN0cmluZyI/IVlqKGYpOiEwfSkpLElrKGUsYyx1LG4pLG1iKGMsZCksZS5hbmNlc3RvcnMucG9wKCksZS5zY2hlbWE9aSxlLmNyZWF0ZShuLHUsYyxhKX1mdW5jdGlvbiB5eihlLG4pe2lmKG4uZGF0YSYmbi5kYXRhLmVzdHJlZSYmZS5ldmFsdWF0ZXIpe2NvbnN0IGk9bi5kYXRhLmVzdHJlZS5ib2R5WzBdO3JldHVybiBpLnR5cGUsZS5ldmFsdWF0ZXIuZXZhbHVhdGVFeHByZXNzaW9uKGkuZXhwcmVzc2lvbil9b28oZSxuLnBvc2l0aW9uKX1mdW5jdGlvbiBFeihlLG4pe2lmKG4uZGF0YSYmbi5kYXRhLmVzdHJlZSYmZS5ldmFsdWF0ZXIpcmV0dXJuIGUuZXZhbHVhdGVyLmV2YWx1YXRlUHJvZ3JhbShuLmRhdGEuZXN0cmVlKTtvbyhlLG4ucG9zaXRpb24pfWZ1bmN0aW9uIFN6KGUsbixhKXtjb25zdCBpPWUuc2NoZW1hO2xldCBsPWk7bi5uYW1lPT09InN2ZyImJmkuc3BhY2U9PT0iaHRtbCImJihsPXBiLGUuc2NoZW1hPWwpLGUuYW5jZXN0b3JzLnB1c2gobik7Y29uc3QgdT1uLm5hbWU9PT1udWxsP2UuRnJhZ21lbnQ6T2soZSxuLm5hbWUsITApLGM9UnooZSxuKSxkPWhiKGUsbik7cmV0dXJuIElrKGUsYyx1LG4pLG1iKGMsZCksZS5hbmNlc3RvcnMucG9wKCksZS5zY2hlbWE9aSxlLmNyZWF0ZShuLHUsYyxhKX1mdW5jdGlvbiB2eihlLG4sYSl7Y29uc3QgaT17fTtyZXR1cm4gbWIoaSxoYihlLG4pKSxlLmNyZWF0ZShuLGUuRnJhZ21lbnQsaSxhKX1mdW5jdGlvbiBUeihlLG4pe3JldHVybiBuLnZhbHVlfWZ1bmN0aW9uIElrKGUsbixhLGkpe3R5cGVvZiBhIT0ic3RyaW5nIiYmYSE9PWUuRnJhZ21lbnQmJmUucGFzc05vZGUmJihuLm5vZGU9aSl9ZnVuY3Rpb24gbWIoZSxuKXtpZihuLmxlbmd0aD4wKXtjb25zdCBhPW4ubGVuZ3RoPjE/bjpuWzBdO2EmJihlLmNoaWxkcmVuPWEpfX1mdW5jdGlvbiB4eihlLG4sYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShsLHUsYyxkKXtjb25zdCBtPUFycmF5LmlzQXJyYXkoYy5jaGlsZHJlbik/YTpuO3JldHVybiBkP20odSxjLGQpOm0odSxjKX19ZnVuY3Rpb24gQXooZSxuKXtyZXR1cm4gYTtmdW5jdGlvbiBhKGksbCx1LGMpe2NvbnN0IGQ9QXJyYXkuaXNBcnJheSh1LmNoaWxkcmVuKSxmPWZiKGkpO3JldHVybiBuKGwsdSxjLGQse2NvbHVtbk51bWJlcjpmP2YuY29sdW1uLTE6dm9pZCAwLGZpbGVOYW1lOmUsbGluZU51bWJlcjpmP2YubGluZTp2b2lkIDB9LHZvaWQgMCl9fWZ1bmN0aW9uIF96KGUsbil7Y29uc3QgYT17fTtsZXQgaSxsO2ZvcihsIGluIG4ucHJvcGVydGllcylpZihsIT09ImNoaWxkcmVuIiYmZ2IuY2FsbChuLnByb3BlcnRpZXMsbCkpe2NvbnN0IHU9TnooZSxsLG4ucHJvcGVydGllc1tsXSk7aWYodSl7Y29uc3RbYyxkXT11O2UudGFibGVDZWxsQWxpZ25Ub1N0eWxlJiZjPT09ImFsaWduIiYmdHlwZW9mIGQ9PSJzdHJpbmciJiZtei5oYXMobi50YWdOYW1lKT9pPWQ6YVtjXT1kfX1pZihpKXtjb25zdCB1PWEuc3R5bGV8fChhLnN0eWxlPXt9KTt1W2Uuc3R5bGVQcm9wZXJ0eU5hbWVDYXNlPT09ImNzcyI/InRleHQtYWxpZ24iOiJ0ZXh0QWxpZ24iXT1pfXJldHVybiBhfWZ1bmN0aW9uIFJ6KGUsbil7Y29uc3QgYT17fTtmb3IoY29uc3QgaSBvZiBuLmF0dHJpYnV0ZXMpaWYoaS50eXBlPT09Im1keEpzeEV4cHJlc3Npb25BdHRyaWJ1dGUiKWlmKGkuZGF0YSYmaS5kYXRhLmVzdHJlZSYmZS5ldmFsdWF0ZXIpe2NvbnN0IHU9aS5kYXRhLmVzdHJlZS5ib2R5WzBdO3UudHlwZTtjb25zdCBjPXUuZXhwcmVzc2lvbjtjLnR5cGU7Y29uc3QgZD1jLnByb3BlcnRpZXNbMF07ZC50eXBlLE9iamVjdC5hc3NpZ24oYSxlLmV2YWx1YXRlci5ldmFsdWF0ZUV4cHJlc3Npb24oZC5hcmd1bWVudCkpfWVsc2Ugb28oZSxuLnBvc2l0aW9uKTtlbHNle2NvbnN0IGw9aS5uYW1lO2xldCB1O2lmKGkudmFsdWUmJnR5cGVvZiBpLnZhbHVlPT0ib2JqZWN0IilpZihpLnZhbHVlLmRhdGEmJmkudmFsdWUuZGF0YS5lc3RyZWUmJmUuZXZhbHVhdGVyKXtjb25zdCBkPWkudmFsdWUuZGF0YS5lc3RyZWUuYm9keVswXTtkLnR5cGUsdT1lLmV2YWx1YXRlci5ldmFsdWF0ZUV4cHJlc3Npb24oZC5leHByZXNzaW9uKX1lbHNlIG9vKGUsbi5wb3NpdGlvbik7ZWxzZSB1PWkudmFsdWU9PT1udWxsPyEwOmkudmFsdWU7YVtsXT11fXJldHVybiBhfWZ1bmN0aW9uIGhiKGUsbil7Y29uc3QgYT1bXTtsZXQgaT0tMTtjb25zdCBsPWUucGFzc0tleXM/bmV3IE1hcDpwejtmb3IoOysraTxuLmNoaWxkcmVuLmxlbmd0aDspe2NvbnN0IHU9bi5jaGlsZHJlbltpXTtsZXQgYztpZihlLnBhc3NLZXlzKXtjb25zdCBmPXUudHlwZT09PSJlbGVtZW50Ij91LnRhZ05hbWU6dS50eXBlPT09Im1keEpzeEZsb3dFbGVtZW50Inx8dS50eXBlPT09Im1keEpzeFRleHRFbGVtZW50Ij91Lm5hbWU6dm9pZCAwO2lmKGYpe2NvbnN0IG09bC5nZXQoZil8fDA7Yz1mKyItIittLGwuc2V0KGYsbSsxKX19Y29uc3QgZD1DayhlLHUsYyk7ZCE9PXZvaWQgMCYmYS5wdXNoKGQpfXJldHVybiBhfWZ1bmN0aW9uIE56KGUsbixhKXtjb25zdCBpPWV6KGUuc2NoZW1hLG4pO2lmKCEoYT09bnVsbHx8dHlwZW9mIGE9PSJudW1iZXIiJiZOdW1iZXIuaXNOYU4oYSkpKXtpZihBcnJheS5pc0FycmF5KGEpJiYoYT1pLmNvbW1hU2VwYXJhdGVkP1BqKGEpOmF6KGEpKSxpLnByb3BlcnR5PT09InN0eWxlIil7bGV0IGw9dHlwZW9mIGE9PSJvYmplY3QiP2E6d3ooZSxTdHJpbmcoYSkpO3JldHVybiBlLnN0eWxlUHJvcGVydHlOYW1lQ2FzZT09PSJjc3MiJiYobD1reihsKSksWyJzdHlsZSIsbF19cmV0dXJuW2UuZWxlbWVudEF0dHJpYnV0ZU5hbWVDYXNlPT09InJlYWN0IiYmaS5zcGFjZT9aaltpLnByb3BlcnR5XXx8aS5wcm9wZXJ0eTppLmF0dHJpYnV0ZSxhXX19ZnVuY3Rpb24gd3ooZSxuKXt0cnl7cmV0dXJuIGN6KG4se3JlYWN0Q29tcGF0OiEwfSl9Y2F0Y2goYSl7aWYoZS5pZ25vcmVJbnZhbGlkU3R5bGUpcmV0dXJue307Y29uc3QgaT1hLGw9bmV3IE50KCJDYW5ub3QgcGFyc2UgYHN0eWxlYCBhdHRyaWJ1dGUiLHthbmNlc3RvcnM6ZS5hbmNlc3RvcnMsY2F1c2U6aSxydWxlSWQ6InN0eWxlIixzb3VyY2U6Imhhc3QtdXRpbC10by1qc3gtcnVudGltZSJ9KTt0aHJvdyBsLmZpbGU9ZS5maWxlUGF0aHx8dm9pZCAwLGwudXJsPWtrKyIjY2Fubm90LXBhcnNlLXN0eWxlLWF0dHJpYnV0ZSIsbH19ZnVuY3Rpb24gT2soZSxuLGEpe2xldCBpO2lmKCFhKWk9e3R5cGU6IkxpdGVyYWwiLHZhbHVlOm59O2Vsc2UgaWYobi5pbmNsdWRlcygiLiIpKXtjb25zdCBsPW4uc3BsaXQoIi4iKTtsZXQgdT0tMSxjO2Zvcig7Kyt1PGwubGVuZ3RoOyl7Y29uc3QgZD16TihsW3VdKT97dHlwZToiSWRlbnRpZmllciIsbmFtZTpsW3VdfTp7dHlwZToiTGl0ZXJhbCIsdmFsdWU6bFt1XX07Yz1jP3t0eXBlOiJNZW1iZXJFeHByZXNzaW9uIixvYmplY3Q6Yyxwcm9wZXJ0eTpkLGNvbXB1dGVkOiEhKHUmJmQudHlwZT09PSJMaXRlcmFsIiksb3B0aW9uYWw6ITF9OmR9aT1jfWVsc2UgaT16TihuKSYmIS9eW2Etel0vLnRlc3Qobik/e3R5cGU6IklkZW50aWZpZXIiLG5hbWU6bn06e3R5cGU6IkxpdGVyYWwiLHZhbHVlOm59O2lmKGkudHlwZT09PSJMaXRlcmFsIil7Y29uc3QgbD1pLnZhbHVlO3JldHVybiBnYi5jYWxsKGUuY29tcG9uZW50cyxsKT9lLmNvbXBvbmVudHNbbF06bH1pZihlLmV2YWx1YXRlcilyZXR1cm4gZS5ldmFsdWF0ZXIuZXZhbHVhdGVFeHByZXNzaW9uKGkpO29vKGUpfWZ1bmN0aW9uIG9vKGUsbil7Y29uc3QgYT1uZXcgTnQoIkNhbm5vdCBoYW5kbGUgTURYIGVzdHJlZXMgd2l0aG91dCBgY3JlYXRlRXZhbHVhdGVyYCIse2FuY2VzdG9yczplLmFuY2VzdG9ycyxwbGFjZTpuLHJ1bGVJZDoibWR4LWVzdHJlZSIsc291cmNlOiJoYXN0LXV0aWwtdG8tanN4LXJ1bnRpbWUifSk7dGhyb3cgYS5maWxlPWUuZmlsZVBhdGh8fHZvaWQgMCxhLnVybD1raysiI2Nhbm5vdC1oYW5kbGUtbWR4LWVzdHJlZXMtd2l0aG91dC1jcmVhdGVldmFsdWF0ZXIiLGF9ZnVuY3Rpb24ga3ooZSl7Y29uc3Qgbj17fTtsZXQgYTtmb3IoYSBpbiBlKWdiLmNhbGwoZSxhKSYmKG5bQ3ooYSldPWVbYV0pO3JldHVybiBufWZ1bmN0aW9uIEN6KGUpe2xldCBuPWUucmVwbGFjZShmeixJeik7cmV0dXJuIG4uc2xpY2UoMCwzKT09PSJtcy0iJiYobj0iLSIrbiksbn1mdW5jdGlvbiBJeihlKXtyZXR1cm4iLSIrZS50b0xvd2VyQ2FzZSgpfWNvbnN0IG9oPXthY3Rpb246WyJmb3JtIl0sY2l0ZTpbImJsb2NrcXVvdGUiLCJkZWwiLCJpbnMiLCJxIl0sZGF0YTpbIm9iamVjdCJdLGZvcm1BY3Rpb246WyJidXR0b24iLCJpbnB1dCJdLGhyZWY6WyJhIiwiYXJlYSIsImJhc2UiLCJsaW5rIl0saWNvbjpbIm1lbnVpdGVtIl0saXRlbUlkOm51bGwsbWFuaWZlc3Q6WyJodG1sIl0scGluZzpbImEiLCJhcmVhIl0scG9zdGVyOlsidmlkZW8iXSxzcmM6WyJhdWRpbyIsImVtYmVkIiwiaWZyYW1lIiwiaW1nIiwiaW5wdXQiLCJzY3JpcHQiLCJzb3VyY2UiLCJ0cmFjayIsInZpZGVvIl19LE96PXt9O2Z1bmN0aW9uIGJiKGUsbil7Y29uc3QgYT1PeixpPXR5cGVvZiBhLmluY2x1ZGVJbWFnZUFsdD09ImJvb2xlYW4iP2EuaW5jbHVkZUltYWdlQWx0OiEwLGw9dHlwZW9mIGEuaW5jbHVkZUh0bWw9PSJib29sZWFuIj9hLmluY2x1ZGVIdG1sOiEwO3JldHVybiBMayhlLGksbCl9ZnVuY3Rpb24gTGsoZSxuLGEpe2lmKEx6KGUpKXtpZigidmFsdWUiaW4gZSlyZXR1cm4gZS50eXBlPT09Imh0bWwiJiYhYT8iIjplLnZhbHVlO2lmKG4mJiJhbHQiaW4gZSYmZS5hbHQpcmV0dXJuIGUuYWx0O2lmKCJjaGlsZHJlbiJpbiBlKXJldHVybiBYTihlLmNoaWxkcmVuLG4sYSl9cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/WE4oZSxuLGEpOiIifWZ1bmN0aW9uIFhOKGUsbixhKXtjb25zdCBpPVtdO2xldCBsPS0xO2Zvcig7KytsPGUubGVuZ3RoOylpW2xdPUxrKGVbbF0sbixhKTtyZXR1cm4gaS5qb2luKCIiKX1mdW5jdGlvbiBMeihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCIpfWNvbnN0IFpOPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtmdW5jdGlvbiB5YihlKXtjb25zdCBuPSImIitlKyI7IjtaTi5pbm5lckhUTUw9bjtjb25zdCBhPVpOLnRleHRDb250ZW50O3JldHVybiBhLmNoYXJDb2RlQXQoYS5sZW5ndGgtMSk9PT01OSYmZSE9PSJzZW1pInx8YT09PW4/ITE6YX1mdW5jdGlvbiB0bihlLG4sYSxpKXtjb25zdCBsPWUubGVuZ3RoO2xldCB1PTAsYztpZihuPDA/bj0tbj5sPzA6bCtuOm49bj5sP2w6bixhPWE+MD9hOjAsaS5sZW5ndGg8MWU0KWM9QXJyYXkuZnJvbShpKSxjLnVuc2hpZnQobixhKSxlLnNwbGljZSguLi5jKTtlbHNlIGZvcihhJiZlLnNwbGljZShuLGEpO3U8aS5sZW5ndGg7KWM9aS5zbGljZSh1LHUrMWU0KSxjLnVuc2hpZnQobiwwKSxlLnNwbGljZSguLi5jKSx1Kz0xZTQsbis9MWU0fWZ1bmN0aW9uIHluKGUsbil7cmV0dXJuIGUubGVuZ3RoPjA/KHRuKGUsZS5sZW5ndGgsMCxuKSxlKTpufWNvbnN0IFFOPXt9Lmhhc093blByb3BlcnR5O2Z1bmN0aW9uIERrKGUpe2NvbnN0IG49e307bGV0IGE9LTE7Zm9yKDsrK2E8ZS5sZW5ndGg7KUR6KG4sZVthXSk7cmV0dXJuIG59ZnVuY3Rpb24gRHooZSxuKXtsZXQgYTtmb3IoYSBpbiBuKXtjb25zdCBsPShRTi5jYWxsKGUsYSk/ZVthXTp2b2lkIDApfHwoZVthXT17fSksdT1uW2FdO2xldCBjO2lmKHUpZm9yKGMgaW4gdSl7UU4uY2FsbChsLGMpfHwobFtjXT1bXSk7Y29uc3QgZD11W2NdO016KGxbY10sQXJyYXkuaXNBcnJheShkKT9kOmQ/W2RdOltdKX19fWZ1bmN0aW9uIE16KGUsbil7bGV0IGE9LTE7Y29uc3QgaT1bXTtmb3IoOysrYTxuLmxlbmd0aDspKG5bYV0uYWRkPT09ImFmdGVyIj9lOmkpLnB1c2goblthXSk7dG4oZSwwLDAsaSl9ZnVuY3Rpb24gTWsoZSxuKXtjb25zdCBhPU51bWJlci5wYXJzZUludChlLG4pO3JldHVybiBhPDl8fGE9PT0xMXx8YT4xMyYmYTwzMnx8YT4xMjYmJmE8MTYwfHxhPjU1Mjk1JiZhPDU3MzQ0fHxhPjY0OTc1JiZhPDY1MDA4fHwoYSY2NTUzNSk9PT02NTUzNXx8KGEmNjU1MzUpPT09NjU1MzR8fGE+MTExNDExMT8i77+9IjpTdHJpbmcuZnJvbUNvZGVQb2ludChhKX1mdW5jdGlvbiBBbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKS5yZXBsYWNlKC9eIHwgJC9nLCIiKS50b0xvd2VyQ2FzZSgpLnRvVXBwZXJDYXNlKCl9Y29uc3QgSXQ9RHIoL1tBLVphLXpdLyksUnQ9RHIoL1tcZEEtWmEtel0vKSxVej1EcigvWyMtJyorXC0tOT0/QS1aXi1+XS8pO2Z1bmN0aW9uIHpsKGUpe3JldHVybiBlIT09bnVsbCYmKGU8MzJ8fGU9PT0xMjcpfWNvbnN0IEJoPURyKC9cZC8pLEZ6PURyKC9bXGRBLUZhLWZdLyksQno9RHIoL1shLS86LUBbLWB7LX5dLyk7ZnVuY3Rpb24gYmUoZSl7cmV0dXJuIGUhPT1udWxsJiZlPC0yfWZ1bmN0aW9uIFZlKGUpe3JldHVybiBlIT09bnVsbCYmKGU8MHx8ZT09PTMyKX1mdW5jdGlvbiBSZShlKXtyZXR1cm4gZT09PS0yfHxlPT09LTF8fGU9PT0zMn1jb25zdCBXbD1EcihuZXcgUmVnRXhwKCJcXHB7UH18XFxwe1N9IiwidSIpKSxpYT1EcigvXHMvKTtmdW5jdGlvbiBEcihlKXtyZXR1cm4gbjtmdW5jdGlvbiBuKGEpe3JldHVybiBhIT09bnVsbCYmYT4tMSYmZS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpfX1mdW5jdGlvbiByaShlKXtjb25zdCBuPVtdO2xldCBhPS0xLGk9MCxsPTA7Zm9yKDsrK2E8ZS5sZW5ndGg7KXtjb25zdCB1PWUuY2hhckNvZGVBdChhKTtsZXQgYz0iIjtpZih1PT09MzcmJlJ0KGUuY2hhckNvZGVBdChhKzEpKSYmUnQoZS5jaGFyQ29kZUF0KGErMikpKWw9MjtlbHNlIGlmKHU8MTI4KS9bISMkJi07PT8tWl9hLXp+XS8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHUpKXx8KGM9U3RyaW5nLmZyb21DaGFyQ29kZSh1KSk7ZWxzZSBpZih1PjU1Mjk1JiZ1PDU3MzQ0KXtjb25zdCBkPWUuY2hhckNvZGVBdChhKzEpO3U8NTYzMjAmJmQ+NTYzMTkmJmQ8NTczNDQ/KGM9U3RyaW5nLmZyb21DaGFyQ29kZSh1LGQpLGw9MSk6Yz0i77+9In1lbHNlIGM9U3RyaW5nLmZyb21DaGFyQ29kZSh1KTtjJiYobi5wdXNoKGUuc2xpY2UoaSxhKSxlbmNvZGVVUklDb21wb25lbnQoYykpLGk9YStsKzEsYz0iIiksbCYmKGErPWwsbD0wKX1yZXR1cm4gbi5qb2luKCIiKStlLnNsaWNlKGkpfWZ1bmN0aW9uIERlKGUsbixhLGkpe2NvbnN0IGw9aT9pLTE6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2xldCB1PTA7cmV0dXJuIGM7ZnVuY3Rpb24gYyhmKXtyZXR1cm4gUmUoZik/KGUuZW50ZXIoYSksZChmKSk6bihmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBSZShmKSYmdSsrPGw/KGUuY29uc3VtZShmKSxkKTooZS5leGl0KGEpLG4oZikpfX1jb25zdCBqej17dG9rZW5pemU6enp9O2Z1bmN0aW9uIHp6KGUpe2NvbnN0IG49ZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuY29udGVudEluaXRpYWwsaSxsKTtsZXQgYTtyZXR1cm4gbjtmdW5jdGlvbiBpKGQpe2lmKGQ9PT1udWxsKXtlLmNvbnN1bWUoZCk7cmV0dXJufXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGQpLGUuZXhpdCgibGluZUVuZGluZyIpLERlKGUsbiwibGluZVByZWZpeCIpfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGUuZW50ZXIoInBhcmFncmFwaCIpLHUoZCl9ZnVuY3Rpb24gdShkKXtjb25zdCBmPWUuZW50ZXIoImNodW5rVGV4dCIse2NvbnRlbnRUeXBlOiJ0ZXh0IixwcmV2aW91czphfSk7cmV0dXJuIGEmJihhLm5leHQ9ZiksYT1mLGMoZCl9ZnVuY3Rpb24gYyhkKXtpZihkPT09bnVsbCl7ZS5leGl0KCJjaHVua1RleHQiKSxlLmV4aXQoInBhcmFncmFwaCIpLGUuY29uc3VtZShkKTtyZXR1cm59cmV0dXJuIGJlKGQpPyhlLmNvbnN1bWUoZCksZS5leGl0KCJjaHVua1RleHQiKSx1KTooZS5jb25zdW1lKGQpLGMpfX1jb25zdCBxej17dG9rZW5pemU6UHp9LEpOPXt0b2tlbml6ZTpHen07ZnVuY3Rpb24gUHooZSl7Y29uc3Qgbj10aGlzLGE9W107bGV0IGk9MCxsLHUsYztyZXR1cm4gZDtmdW5jdGlvbiBkKGspe2lmKGk8YS5sZW5ndGgpe2NvbnN0IEw9YVtpXTtyZXR1cm4gbi5jb250YWluZXJTdGF0ZT1MWzFdLGUuYXR0ZW1wdChMWzBdLmNvbnRpbnVhdGlvbixmLG0pKGspfXJldHVybiBtKGspfWZ1bmN0aW9uIGYoayl7aWYoaSsrLG4uY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyl7bi5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxsJiZOKCk7Y29uc3QgTD1uLmV2ZW50cy5sZW5ndGg7bGV0IEY9TCxSO2Zvcig7Ri0tOylpZihuLmV2ZW50c1tGXVswXT09PSJleGl0IiYmbi5ldmVudHNbRl1bMV0udHlwZT09PSJjaHVua0Zsb3ciKXtSPW4uZXZlbnRzW0ZdWzFdLmVuZDticmVha314KGkpO2xldCBNPUw7Zm9yKDtNPG4uZXZlbnRzLmxlbmd0aDspbi5ldmVudHNbTV1bMV0uZW5kPXsuLi5SfSxNKys7cmV0dXJuIHRuKG4uZXZlbnRzLEYrMSwwLG4uZXZlbnRzLnNsaWNlKEwpKSxuLmV2ZW50cy5sZW5ndGg9TSxtKGspfXJldHVybiBkKGspfWZ1bmN0aW9uIG0oayl7aWYoaT09PWEubGVuZ3RoKXtpZighbClyZXR1cm4gUyhrKTtpZihsLmN1cnJlbnRDb25zdHJ1Y3QmJmwuY3VycmVudENvbnN0cnVjdC5jb25jcmV0ZSlyZXR1cm4gXyhrKTtuLmludGVycnVwdD0hIShsLmN1cnJlbnRDb25zdHJ1Y3QmJiFsLl9nZm1UYWJsZUR5bmFtaWNJbnRlcnJ1cHRIYWNrKX1yZXR1cm4gbi5jb250YWluZXJTdGF0ZT17fSxlLmNoZWNrKEpOLGIsaCkoayl9ZnVuY3Rpb24gYihrKXtyZXR1cm4gbCYmTigpLHgoaSksUyhrKX1mdW5jdGlvbiBoKGspe3JldHVybiBuLnBhcnNlci5sYXp5W24ubm93KCkubGluZV09aSE9PWEubGVuZ3RoLGM9bi5ub3coKS5vZmZzZXQsXyhrKX1mdW5jdGlvbiBTKGspe3JldHVybiBuLmNvbnRhaW5lclN0YXRlPXt9LGUuYXR0ZW1wdChKTixFLF8pKGspfWZ1bmN0aW9uIEUoayl7cmV0dXJuIGkrKyxhLnB1c2goW24uY3VycmVudENvbnN0cnVjdCxuLmNvbnRhaW5lclN0YXRlXSksUyhrKX1mdW5jdGlvbiBfKGspe2lmKGs9PT1udWxsKXtsJiZOKCkseCgwKSxlLmNvbnN1bWUoayk7cmV0dXJufXJldHVybiBsPWx8fG4ucGFyc2VyLmZsb3cobi5ub3coKSksZS5lbnRlcigiY2h1bmtGbG93Iix7X3Rva2VuaXplcjpsLGNvbnRlbnRUeXBlOiJmbG93IixwcmV2aW91czp1fSksVChrKX1mdW5jdGlvbiBUKGspe2lmKGs9PT1udWxsKXtDKGUuZXhpdCgiY2h1bmtGbG93IiksITApLHgoMCksZS5jb25zdW1lKGspO3JldHVybn1yZXR1cm4gYmUoayk/KGUuY29uc3VtZShrKSxDKGUuZXhpdCgiY2h1bmtGbG93IikpLGk9MCxuLmludGVycnVwdD12b2lkIDAsZCk6KGUuY29uc3VtZShrKSxUKX1mdW5jdGlvbiBDKGssTCl7Y29uc3QgRj1uLnNsaWNlU3RyZWFtKGspO2lmKEwmJkYucHVzaChudWxsKSxrLnByZXZpb3VzPXUsdSYmKHUubmV4dD1rKSx1PWssbC5kZWZpbmVTa2lwKGsuc3RhcnQpLGwud3JpdGUoRiksbi5wYXJzZXIubGF6eVtrLnN0YXJ0LmxpbmVdKXtsZXQgUj1sLmV2ZW50cy5sZW5ndGg7Zm9yKDtSLS07KWlmKGwuZXZlbnRzW1JdWzFdLnN0YXJ0Lm9mZnNldDxjJiYoIWwuZXZlbnRzW1JdWzFdLmVuZHx8bC5ldmVudHNbUl1bMV0uZW5kLm9mZnNldD5jKSlyZXR1cm47Y29uc3QgTT1uLmV2ZW50cy5sZW5ndGg7bGV0IFk9TSx6LFU7Zm9yKDtZLS07KWlmKG4uZXZlbnRzW1ldWzBdPT09ImV4aXQiJiZuLmV2ZW50c1tZXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe2lmKHope1U9bi5ldmVudHNbWV1bMV0uZW5kO2JyZWFrfXo9ITB9Zm9yKHgoaSksUj1NO1I8bi5ldmVudHMubGVuZ3RoOyluLmV2ZW50c1tSXVsxXS5lbmQ9ey4uLlV9LFIrKzt0bihuLmV2ZW50cyxZKzEsMCxuLmV2ZW50cy5zbGljZShNKSksbi5ldmVudHMubGVuZ3RoPVJ9fWZ1bmN0aW9uIHgoayl7bGV0IEw9YS5sZW5ndGg7Zm9yKDtMLS0gPms7KXtjb25zdCBGPWFbTF07bi5jb250YWluZXJTdGF0ZT1GWzFdLEZbMF0uZXhpdC5jYWxsKG4sZSl9YS5sZW5ndGg9a31mdW5jdGlvbiBOKCl7bC53cml0ZShbbnVsbF0pLHU9dm9pZCAwLGw9dm9pZCAwLG4uY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDB9fWZ1bmN0aW9uIEd6KGUsbixhKXtyZXR1cm4gRGUoZSxlLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5kb2N1bWVudCxuLGEpLCJsaW5lUHJlZml4Iix0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpfWZ1bmN0aW9uIFFhKGUpe2lmKGU9PT1udWxsfHxWZShlKXx8aWEoZSkpcmV0dXJuIDE7aWYoV2woZSkpcmV0dXJuIDJ9ZnVuY3Rpb24gWGwoZSxuLGEpe2NvbnN0IGk9W107bGV0IGw9LTE7Zm9yKDsrK2w8ZS5sZW5ndGg7KXtjb25zdCB1PWVbbF0ucmVzb2x2ZUFsbDt1JiYhaS5pbmNsdWRlcyh1KSYmKG49dShuLGEpLGkucHVzaCh1KSl9cmV0dXJuIG59Y29uc3Qgamg9e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDpIeix0b2tlbml6ZToken07ZnVuY3Rpb24gSHooZSxuKXtsZXQgYT0tMSxpLGwsdSxjLGQsZixtLGI7Zm9yKDsrK2E8ZS5sZW5ndGg7KWlmKGVbYV1bMF09PT0iZW50ZXIiJiZlW2FdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZlW2FdWzFdLl9jbG9zZSl7Zm9yKGk9YTtpLS07KWlmKGVbaV1bMF09PT0iZXhpdCImJmVbaV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJmVbaV1bMV0uX29wZW4mJm4uc2xpY2VTZXJpYWxpemUoZVtpXVsxXSkuY2hhckNvZGVBdCgwKT09PW4uc2xpY2VTZXJpYWxpemUoZVthXVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKGVbaV1bMV0uX2Nsb3NlfHxlW2FdWzFdLl9vcGVuKSYmKGVbYV1bMV0uZW5kLm9mZnNldC1lW2FdWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgoZVtpXVsxXS5lbmQub2Zmc2V0LWVbaV1bMV0uc3RhcnQub2Zmc2V0K2VbYV1bMV0uZW5kLm9mZnNldC1lW2FdWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7Zj1lW2ldWzFdLmVuZC5vZmZzZXQtZVtpXVsxXS5zdGFydC5vZmZzZXQ+MSYmZVthXVsxXS5lbmQub2Zmc2V0LWVbYV1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2NvbnN0IGg9ey4uLmVbaV1bMV0uZW5kfSxTPXsuLi5lW2FdWzFdLnN0YXJ0fTtldyhoLC1mKSxldyhTLGYpLGM9e3R5cGU6Zj4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OmgsZW5kOnsuLi5lW2ldWzFdLmVuZH19LGQ9e3R5cGU6Zj4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi5lW2FdWzFdLnN0YXJ0fSxlbmQ6U30sdT17dHlwZTpmPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi5lW2ldWzFdLmVuZH0sZW5kOnsuLi5lW2FdWzFdLnN0YXJ0fX0sbD17dHlwZTpmPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4uYy5zdGFydH0sZW5kOnsuLi5kLmVuZH19LGVbaV1bMV0uZW5kPXsuLi5jLnN0YXJ0fSxlW2FdWzFdLnN0YXJ0PXsuLi5kLmVuZH0sbT1bXSxlW2ldWzFdLmVuZC5vZmZzZXQtZVtpXVsxXS5zdGFydC5vZmZzZXQmJihtPXluKG0sW1siZW50ZXIiLGVbaV1bMV0sbl0sWyJleGl0IixlW2ldWzFdLG5dXSkpLG09eW4obSxbWyJlbnRlciIsbCxuXSxbImVudGVyIixjLG5dLFsiZXhpdCIsYyxuXSxbImVudGVyIix1LG5dXSksbT15bihtLFhsKG4ucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLGUuc2xpY2UoaSsxLGEpLG4pKSxtPXluKG0sW1siZXhpdCIsdSxuXSxbImVudGVyIixkLG5dLFsiZXhpdCIsZCxuXSxbImV4aXQiLGwsbl1dKSxlW2FdWzFdLmVuZC5vZmZzZXQtZVthXVsxXS5zdGFydC5vZmZzZXQ/KGI9MixtPXluKG0sW1siZW50ZXIiLGVbYV1bMV0sbl0sWyJleGl0IixlW2FdWzFdLG5dXSkpOmI9MCx0bihlLGktMSxhLWkrMyxtKSxhPWkrbS5sZW5ndGgtYi0yO2JyZWFrfX1mb3IoYT0tMTsrK2E8ZS5sZW5ndGg7KWVbYV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJihlW2FdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gZX1mdW5jdGlvbiAkeihlLG4pe2NvbnN0IGE9dGhpcy5wYXJzZXIuY29uc3RydWN0cy5hdHRlbnRpb25NYXJrZXJzLm51bGwsaT10aGlzLnByZXZpb3VzLGw9UWEoaSk7bGV0IHU7cmV0dXJuIGM7ZnVuY3Rpb24gYyhmKXtyZXR1cm4gdT1mLGUuZW50ZXIoImF0dGVudGlvblNlcXVlbmNlIiksZChmKX1mdW5jdGlvbiBkKGYpe2lmKGY9PT11KXJldHVybiBlLmNvbnN1bWUoZiksZDtjb25zdCBtPWUuZXhpdCgiYXR0ZW50aW9uU2VxdWVuY2UiKSxiPVFhKGYpLGg9IWJ8fGI9PT0yJiZsfHxhLmluY2x1ZGVzKGYpLFM9IWx8fGw9PT0yJiZifHxhLmluY2x1ZGVzKGkpO3JldHVybiBtLl9vcGVuPSEhKHU9PT00Mj9oOmgmJihsfHwhUykpLG0uX2Nsb3NlPSEhKHU9PT00Mj9TOlMmJihifHwhaCkpLG4oZil9fWZ1bmN0aW9uIGV3KGUsbil7ZS5jb2x1bW4rPW4sZS5vZmZzZXQrPW4sZS5fYnVmZmVySW5kZXgrPW59Y29uc3QgVno9e25hbWU6ImF1dG9saW5rIix0b2tlbml6ZTpZen07ZnVuY3Rpb24gWXooZSxuLGEpe2xldCBpPTA7cmV0dXJuIGw7ZnVuY3Rpb24gbChFKXtyZXR1cm4gZS5lbnRlcigiYXV0b2xpbmsiKSxlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShFKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5lbnRlcigiYXV0b2xpbmtQcm90b2NvbCIpLHV9ZnVuY3Rpb24gdShFKXtyZXR1cm4gSXQoRSk/KGUuY29uc3VtZShFKSxjKTpFPT09NjQ/YShFKTptKEUpfWZ1bmN0aW9uIGMoRSl7cmV0dXJuIEU9PT00M3x8RT09PTQ1fHxFPT09NDZ8fFJ0KEUpPyhpPTEsZChFKSk6bShFKX1mdW5jdGlvbiBkKEUpe3JldHVybiBFPT09NTg/KGUuY29uc3VtZShFKSxpPTAsZik6KEU9PT00M3x8RT09PTQ1fHxFPT09NDZ8fFJ0KEUpKSYmaSsrPDMyPyhlLmNvbnN1bWUoRSksZCk6KGk9MCxtKEUpKX1mdW5jdGlvbiBmKEUpe3JldHVybiBFPT09NjI/KGUuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLGUuZW50ZXIoImF1dG9saW5rTWFya2VyIiksZS5jb25zdW1lKEUpLGUuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSxlLmV4aXQoImF1dG9saW5rIiksbik6RT09PW51bGx8fEU9PT0zMnx8RT09PTYwfHx6bChFKT9hKEUpOihlLmNvbnN1bWUoRSksZil9ZnVuY3Rpb24gbShFKXtyZXR1cm4gRT09PTY0PyhlLmNvbnN1bWUoRSksYik6VXooRSk/KGUuY29uc3VtZShFKSxtKTphKEUpfWZ1bmN0aW9uIGIoRSl7cmV0dXJuIFJ0KEUpP2goRSk6YShFKX1mdW5jdGlvbiBoKEUpe3JldHVybiBFPT09NDY/KGUuY29uc3VtZShFKSxpPTAsYik6RT09PTYyPyhlLmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKS50eXBlPSJhdXRvbGlua0VtYWlsIixlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShFKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5leGl0KCJhdXRvbGluayIpLG4pOlMoRSl9ZnVuY3Rpb24gUyhFKXtpZigoRT09PTQ1fHxSdChFKSkmJmkrKzw2Myl7Y29uc3QgXz1FPT09NDU/UzpoO3JldHVybiBlLmNvbnN1bWUoRSksX31yZXR1cm4gYShFKX19Y29uc3QgY289e3BhcnRpYWw6ITAsdG9rZW5pemU6S3p9O2Z1bmN0aW9uIEt6KGUsbixhKXtyZXR1cm4gaTtmdW5jdGlvbiBpKHUpe3JldHVybiBSZSh1KT9EZShlLGwsImxpbmVQcmVmaXgiKSh1KTpsKHUpfWZ1bmN0aW9uIGwodSl7cmV0dXJuIHU9PT1udWxsfHxiZSh1KT9uKHUpOmEodSl9fWNvbnN0IFVrPXtjb250aW51YXRpb246e3Rva2VuaXplOlh6fSxleGl0Olp6LG5hbWU6ImJsb2NrUXVvdGUiLHRva2VuaXplOld6fTtmdW5jdGlvbiBXeihlLG4sYSl7Y29uc3QgaT10aGlzO3JldHVybiBsO2Z1bmN0aW9uIGwoYyl7aWYoYz09PTYyKXtjb25zdCBkPWkuY29udGFpbmVyU3RhdGU7cmV0dXJuIGQub3Blbnx8KGUuZW50ZXIoImJsb2NrUXVvdGUiLHtfY29udGFpbmVyOiEwfSksZC5vcGVuPSEwKSxlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4IiksZS5lbnRlcigiYmxvY2tRdW90ZU1hcmtlciIpLGUuY29uc3VtZShjKSxlLmV4aXQoImJsb2NrUXVvdGVNYXJrZXIiKSx1fXJldHVybiBhKGMpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIFJlKGMpPyhlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLGUuY29uc3VtZShjKSxlLmV4aXQoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksZS5leGl0KCJibG9ja1F1b3RlUHJlZml4Iiksbik6KGUuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLG4oYykpfX1mdW5jdGlvbiBYeihlLG4sYSl7Y29uc3QgaT10aGlzO3JldHVybiBsO2Z1bmN0aW9uIGwoYyl7cmV0dXJuIFJlKGMpP0RlKGUsdSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShjKTp1KGMpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIGUuYXR0ZW1wdChVayxuLGEpKGMpfX1mdW5jdGlvbiBaeihlKXtlLmV4aXQoImJsb2NrUXVvdGUiKX1jb25zdCBGaz17bmFtZToiY2hhcmFjdGVyRXNjYXBlIix0b2tlbml6ZTpRen07ZnVuY3Rpb24gUXooZSxuLGEpe3JldHVybiBpO2Z1bmN0aW9uIGkodSl7cmV0dXJuIGUuZW50ZXIoImNoYXJhY3RlckVzY2FwZSIpLGUuZW50ZXIoImVzY2FwZU1hcmtlciIpLGUuY29uc3VtZSh1KSxlLmV4aXQoImVzY2FwZU1hcmtlciIpLGx9ZnVuY3Rpb24gbCh1KXtyZXR1cm4gQnoodSk/KGUuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIiksZS5jb25zdW1lKHUpLGUuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxlLmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLG4pOmEodSl9fWNvbnN0IEJrPXtuYW1lOiJjaGFyYWN0ZXJSZWZlcmVuY2UiLHRva2VuaXplOkp6fTtmdW5jdGlvbiBKeihlLG4sYSl7Y29uc3QgaT10aGlzO2xldCBsPTAsdSxjO3JldHVybiBkO2Z1bmN0aW9uIGQoaCl7cmV0dXJuIGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZSIpLGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZShoKSxlLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGZ9ZnVuY3Rpb24gZihoKXtyZXR1cm4gaD09PTM1PyhlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksZS5jb25zdW1lKGgpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIpLG0pOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLHU9MzEsYz1SdCxiKGgpKX1mdW5jdGlvbiBtKGgpe3JldHVybiBoPT09ODh8fGg9PT0xMjA/KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsIiksZS5jb25zdW1lKGgpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLHU9NixjPUZ6LGIpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLHU9NyxjPUJoLGIoaCkpfWZ1bmN0aW9uIGIoaCl7aWYoaD09PTU5JiZsKXtjb25zdCBTPWUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKTtyZXR1cm4gYz09PVJ0JiYheWIoaS5zbGljZVNlcmlhbGl6ZShTKSk/YShoKTooZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKGgpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2UiKSxuKX1yZXR1cm4gYyhoKSYmbCsrPHU/KGUuY29uc3VtZShoKSxiKTphKGgpfX1jb25zdCB0dz17cGFydGlhbDohMCx0b2tlbml6ZTp0cX0sbnc9e2NvbmNyZXRlOiEwLG5hbWU6ImNvZGVGZW5jZWQiLHRva2VuaXplOmVxfTtmdW5jdGlvbiBlcShlLG4sYSl7Y29uc3QgaT10aGlzLGw9e3BhcnRpYWw6ITAsdG9rZW5pemU6Rn07bGV0IHU9MCxjPTAsZDtyZXR1cm4gZjtmdW5jdGlvbiBmKFIpe3JldHVybiBtKFIpfWZ1bmN0aW9uIG0oUil7Y29uc3QgTT1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIHU9TSYmTVsxXS50eXBlPT09ImxpbmVQcmVmaXgiP01bMl0uc2xpY2VTZXJpYWxpemUoTVsxXSwhMCkubGVuZ3RoOjAsZD1SLGUuZW50ZXIoImNvZGVGZW5jZWQiKSxlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSxlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLGIoUil9ZnVuY3Rpb24gYihSKXtyZXR1cm4gUj09PWQ/KGMrKyxlLmNvbnN1bWUoUiksYik6YzwzP2EoUik6KGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxSZShSKT9EZShlLGgsIndoaXRlc3BhY2UiKShSKTpoKFIpKX1mdW5jdGlvbiBoKFIpe3JldHVybiBSPT09bnVsbHx8YmUoUik/KGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksaS5pbnRlcnJ1cHQ/bihSKTplLmNoZWNrKHR3LFQsTCkoUikpOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLFMoUikpfWZ1bmN0aW9uIFMoUil7cmV0dXJuIFI9PT1udWxsfHxiZShSKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGgoUikpOlJlKFIpPyhlLmV4aXQoImNodW5rU3RyaW5nIiksZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksRGUoZSxFLCJ3aGl0ZXNwYWNlIikoUikpOlI9PT05NiYmUj09PWQ/YShSKTooZS5jb25zdW1lKFIpLFMpfWZ1bmN0aW9uIEUoUil7cmV0dXJuIFI9PT1udWxsfHxiZShSKT9oKFIpOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VNZXRhIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLF8oUikpfWZ1bmN0aW9uIF8oUil7cmV0dXJuIFI9PT1udWxsfHxiZShSKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlTWV0YSIpLGgoUikpOlI9PT05NiYmUj09PWQ/YShSKTooZS5jb25zdW1lKFIpLF8pfWZ1bmN0aW9uIFQoUil7cmV0dXJuIGUuYXR0ZW1wdChsLEwsQykoUil9ZnVuY3Rpb24gQyhSKXtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShSKSxlLmV4aXQoImxpbmVFbmRpbmciKSx4fWZ1bmN0aW9uIHgoUil7cmV0dXJuIHU+MCYmUmUoUik/RGUoZSxOLCJsaW5lUHJlZml4Iix1KzEpKFIpOk4oUil9ZnVuY3Rpb24gTihSKXtyZXR1cm4gUj09PW51bGx8fGJlKFIpP2UuY2hlY2sodHcsVCxMKShSKTooZS5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLGsoUikpfWZ1bmN0aW9uIGsoUil7cmV0dXJuIFI9PT1udWxsfHxiZShSKT8oZS5leGl0KCJjb2RlRmxvd1ZhbHVlIiksTihSKSk6KGUuY29uc3VtZShSKSxrKX1mdW5jdGlvbiBMKFIpe3JldHVybiBlLmV4aXQoImNvZGVGZW5jZWQiKSxuKFIpfWZ1bmN0aW9uIEYoUixNLFkpe2xldCB6PTA7cmV0dXJuIFU7ZnVuY3Rpb24gVShsZSl7cmV0dXJuIFIuZW50ZXIoImxpbmVFbmRpbmciKSxSLmNvbnN1bWUobGUpLFIuZXhpdCgibGluZUVuZGluZyIpLCR9ZnVuY3Rpb24gJChsZSl7cmV0dXJuIFIuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLFJlKGxlKT9EZShSLEosImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkobGUpOkoobGUpfWZ1bmN0aW9uIEoobGUpe3JldHVybiBsZT09PWQ/KFIuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksb2UobGUpKTpZKGxlKX1mdW5jdGlvbiBvZShsZSl7cmV0dXJuIGxlPT09ZD8oeisrLFIuY29uc3VtZShsZSksb2UpOno+PWM/KFIuZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxSZShsZSk/RGUoUixpZSwid2hpdGVzcGFjZSIpKGxlKTppZShsZSkpOlkobGUpfWZ1bmN0aW9uIGllKGxlKXtyZXR1cm4gbGU9PT1udWxsfHxiZShsZSk/KFIuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksTShsZSkpOlkobGUpfX19ZnVuY3Rpb24gdHEoZSxuLGEpe2NvbnN0IGk9dGhpcztyZXR1cm4gbDtmdW5jdGlvbiBsKGMpe3JldHVybiBjPT09bnVsbD9hKGMpOihlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGMpLGUuZXhpdCgibGluZUVuZGluZyIpLHUpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIGkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9hKGMpOm4oYyl9fWNvbnN0IGxoPXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOnJxfSxucT17cGFydGlhbDohMCx0b2tlbml6ZTphcX07ZnVuY3Rpb24gcnEoZSxuLGEpe2NvbnN0IGk9dGhpcztyZXR1cm4gbDtmdW5jdGlvbiBsKG0pe3JldHVybiBlLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxEZShlLHUsImxpbmVQcmVmaXgiLDUpKG0pfWZ1bmN0aW9uIHUobSl7Y29uc3QgYj1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIGImJmJbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmYlsyXS5zbGljZVNlcmlhbGl6ZShiWzFdLCEwKS5sZW5ndGg+PTQ/YyhtKTphKG0pfWZ1bmN0aW9uIGMobSl7cmV0dXJuIG09PT1udWxsP2YobSk6YmUobSk/ZS5hdHRlbXB0KG5xLGMsZikobSk6KGUuZW50ZXIoImNvZGVGbG93VmFsdWUiKSxkKG0pKX1mdW5jdGlvbiBkKG0pe3JldHVybiBtPT09bnVsbHx8YmUobSk/KGUuZXhpdCgiY29kZUZsb3dWYWx1ZSIpLGMobSkpOihlLmNvbnN1bWUobSksZCl9ZnVuY3Rpb24gZihtKXtyZXR1cm4gZS5leGl0KCJjb2RlSW5kZW50ZWQiKSxuKG0pfX1mdW5jdGlvbiBhcShlLG4sYSl7Y29uc3QgaT10aGlzO3JldHVybiBsO2Z1bmN0aW9uIGwoYyl7cmV0dXJuIGkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9hKGMpOmJlKGMpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGMpLGUuZXhpdCgibGluZUVuZGluZyIpLGwpOkRlKGUsdSwibGluZVByZWZpeCIsNSkoYyl9ZnVuY3Rpb24gdShjKXtjb25zdCBkPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gZCYmZFsxXS50eXBlPT09ImxpbmVQcmVmaXgiJiZkWzJdLnNsaWNlU2VyaWFsaXplKGRbMV0sITApLmxlbmd0aD49ND9uKGMpOmJlKGMpP2woYyk6YShjKX19Y29uc3QgaXE9e25hbWU6ImNvZGVUZXh0IixwcmV2aW91czpscSxyZXNvbHZlOm9xLHRva2VuaXplOnNxfTtmdW5jdGlvbiBvcShlKXtsZXQgbj1lLmxlbmd0aC00LGE9MyxpLGw7aWYoKGVbYV1bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8ZVthXVsxXS50eXBlPT09InNwYWNlIikmJihlW25dWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fGVbbl1bMV0udHlwZT09PSJzcGFjZSIpKXtmb3IoaT1hOysraTxuOylpZihlW2ldWzFdLnR5cGU9PT0iY29kZVRleHREYXRhIil7ZVthXVsxXS50eXBlPSJjb2RlVGV4dFBhZGRpbmciLGVbbl1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixhKz0yLG4tPTI7YnJlYWt9fWZvcihpPWEtMSxuKys7KytpPD1uOylsPT09dm9pZCAwP2khPT1uJiZlW2ldWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJihsPWkpOihpPT09bnx8ZVtpXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmKGVbbF1bMV0udHlwZT0iY29kZVRleHREYXRhIixpIT09bCsyJiYoZVtsXVsxXS5lbmQ9ZVtpLTFdWzFdLmVuZCxlLnNwbGljZShsKzIsaS1sLTIpLG4tPWktbC0yLGk9bCsyKSxsPXZvaWQgMCk7cmV0dXJuIGV9ZnVuY3Rpb24gbHEoZSl7cmV0dXJuIGUhPT05Nnx8dGhpcy5ldmVudHNbdGhpcy5ldmVudHMubGVuZ3RoLTFdWzFdLnR5cGU9PT0iY2hhcmFjdGVyRXNjYXBlIn1mdW5jdGlvbiBzcShlLG4sYSl7bGV0IGk9MCxsLHU7cmV0dXJuIGM7ZnVuY3Rpb24gYyhoKXtyZXR1cm4gZS5lbnRlcigiY29kZVRleHQiKSxlLmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksZChoKX1mdW5jdGlvbiBkKGgpe3JldHVybiBoPT09OTY/KGUuY29uc3VtZShoKSxpKyssZCk6KGUuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGYoaCkpfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGg9PT1udWxsP2EoaCk6aD09PTMyPyhlLmVudGVyKCJzcGFjZSIpLGUuY29uc3VtZShoKSxlLmV4aXQoInNwYWNlIiksZik6aD09PTk2Pyh1PWUuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxsPTAsYihoKSk6YmUoaCk/KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoaCksZS5leGl0KCJsaW5lRW5kaW5nIiksZik6KGUuZW50ZXIoImNvZGVUZXh0RGF0YSIpLG0oaCkpfWZ1bmN0aW9uIG0oaCl7cmV0dXJuIGg9PT1udWxsfHxoPT09MzJ8fGg9PT05Nnx8YmUoaCk/KGUuZXhpdCgiY29kZVRleHREYXRhIiksZihoKSk6KGUuY29uc3VtZShoKSxtKX1mdW5jdGlvbiBiKGgpe3JldHVybiBoPT09OTY/KGUuY29uc3VtZShoKSxsKyssYik6bD09PWk/KGUuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGUuZXhpdCgiY29kZVRleHQiKSxuKGgpKToodS50eXBlPSJjb2RlVGV4dERhdGEiLG0oaCkpfX1jbGFzcyB1cXtjb25zdHJ1Y3RvcihuKXt0aGlzLmxlZnQ9bj9bLi4ubl06W10sdGhpcy5yaWdodD1bXX1nZXQobil7aWYobjwwfHxuPj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK24rImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIG48dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbbl06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC1uK3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UobixhKXtjb25zdCBpPWE/P051bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gaTx0aGlzLmxlZnQubGVuZ3RoP3RoaXMubGVmdC5zbGljZShuLGkpOm4+dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWkrdGhpcy5sZWZ0Lmxlbmd0aCx0aGlzLnJpZ2h0Lmxlbmd0aC1uK3RoaXMubGVmdC5sZW5ndGgpLnJldmVyc2UoKTp0aGlzLmxlZnQuc2xpY2UobikuY29uY2F0KHRoaXMucmlnaHQuc2xpY2UodGhpcy5yaWdodC5sZW5ndGgtaSt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCkpfXNwbGljZShuLGEsaSl7Y29uc3QgbD1hfHwwO3RoaXMuc2V0Q3Vyc29yKE1hdGgudHJ1bmMobikpO2NvbnN0IHU9dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtbCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiBpJiZKaSh0aGlzLmxlZnQsaSksdS5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2gobil7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaChuKX1wdXNoTWFueShuKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLEppKHRoaXMubGVmdCxuKX11bnNoaWZ0KG4pe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaChuKX11bnNoaWZ0TWFueShuKXt0aGlzLnNldEN1cnNvcigwKSxKaSh0aGlzLnJpZ2h0LG4ucmV2ZXJzZSgpKX1zZXRDdXJzb3Iobil7aWYoIShuPT09dGhpcy5sZWZ0Lmxlbmd0aHx8bj50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fG48MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKG48dGhpcy5sZWZ0Lmxlbmd0aCl7Y29uc3QgYT10aGlzLmxlZnQuc3BsaWNlKG4sTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtKaSh0aGlzLnJpZ2h0LGEucmV2ZXJzZSgpKX1lbHNle2NvbnN0IGE9dGhpcy5yaWdodC5zcGxpY2UodGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aC1uLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7SmkodGhpcy5sZWZ0LGEucmV2ZXJzZSgpKX19fWZ1bmN0aW9uIEppKGUsbil7bGV0IGE9MDtpZihuLmxlbmd0aDwxZTQpZS5wdXNoKC4uLm4pO2Vsc2UgZm9yKDthPG4ubGVuZ3RoOyllLnB1c2goLi4ubi5zbGljZShhLGErMWU0KSksYSs9MWU0fWZ1bmN0aW9uIGprKGUpe2NvbnN0IG49e307bGV0IGE9LTEsaSxsLHUsYyxkLGYsbTtjb25zdCBiPW5ldyB1cShlKTtmb3IoOysrYTxiLmxlbmd0aDspe2Zvcig7YSBpbiBuOylhPW5bYV07aWYoaT1iLmdldChhKSxhJiZpWzFdLnR5cGU9PT0iY2h1bmtGbG93IiYmYi5nZXQoYS0xKVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4IiYmKGY9aVsxXS5fdG9rZW5pemVyLmV2ZW50cyx1PTAsdTxmLmxlbmd0aCYmZlt1XVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayImJih1Kz0yKSx1PGYubGVuZ3RoJiZmW3VdWzFdLnR5cGU9PT0iY29udGVudCIpKWZvcig7Kyt1PGYubGVuZ3RoJiZmW3VdWzFdLnR5cGUhPT0iY29udGVudCI7KWZbdV1bMV0udHlwZT09PSJjaHVua1RleHQiJiYoZlt1XVsxXS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITAsdSsrKTtpZihpWzBdPT09ImVudGVyIilpWzFdLmNvbnRlbnRUeXBlJiYoT2JqZWN0LmFzc2lnbihuLGNxKGIsYSkpLGE9blthXSxtPSEwKTtlbHNlIGlmKGlbMV0uX2NvbnRhaW5lcil7Zm9yKHU9YSxsPXZvaWQgMDt1LS07KWlmKGM9Yi5nZXQodSksY1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxjWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIiljWzBdPT09ImVudGVyIiYmKGwmJihiLmdldChsKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxjWzFdLnR5cGU9ImxpbmVFbmRpbmciLGw9dSk7ZWxzZSBpZighKGNbMV0udHlwZT09PSJsaW5lUHJlZml4Inx8Y1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7bCYmKGlbMV0uZW5kPXsuLi5iLmdldChsKVsxXS5zdGFydH0sZD1iLnNsaWNlKGwsYSksZC51bnNoaWZ0KGkpLGIuc3BsaWNlKGwsYS1sKzEsZCkpfX1yZXR1cm4gdG4oZSwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxiLnNsaWNlKDApKSwhbX1mdW5jdGlvbiBjcShlLG4pe2NvbnN0IGE9ZS5nZXQobilbMV0saT1lLmdldChuKVsyXTtsZXQgbD1uLTE7Y29uc3QgdT1bXTtsZXQgYz1hLl90b2tlbml6ZXI7Y3x8KGM9aS5wYXJzZXJbYS5jb250ZW50VHlwZV0oYS5zdGFydCksYS5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihjLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2NvbnN0IGQ9Yy5ldmVudHMsZj1bXSxtPXt9O2xldCBiLGgsUz0tMSxFPWEsXz0wLFQ9MDtjb25zdCBDPVtUXTtmb3IoO0U7KXtmb3IoO2UuZ2V0KCsrbClbMV0hPT1FOyk7dS5wdXNoKGwpLEUuX3Rva2VuaXplcnx8KGI9aS5zbGljZVN0cmVhbShFKSxFLm5leHR8fGIucHVzaChudWxsKSxoJiZjLmRlZmluZVNraXAoRS5zdGFydCksRS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihjLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLGMud3JpdGUoYiksRS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihjLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSksaD1FLEU9RS5uZXh0fWZvcihFPWE7KytTPGQubGVuZ3RoOylkW1NdWzBdPT09ImV4aXQiJiZkW1MtMV1bMF09PT0iZW50ZXIiJiZkW1NdWzFdLnR5cGU9PT1kW1MtMV1bMV0udHlwZSYmZFtTXVsxXS5zdGFydC5saW5lIT09ZFtTXVsxXS5lbmQubGluZSYmKFQ9UysxLEMucHVzaChUKSxFLl90b2tlbml6ZXI9dm9pZCAwLEUucHJldmlvdXM9dm9pZCAwLEU9RS5uZXh0KTtmb3IoYy5ldmVudHM9W10sRT8oRS5fdG9rZW5pemVyPXZvaWQgMCxFLnByZXZpb3VzPXZvaWQgMCk6Qy5wb3AoKSxTPUMubGVuZ3RoO1MtLTspe2NvbnN0IHg9ZC5zbGljZShDW1NdLENbUysxXSksTj11LnBvcCgpO2YucHVzaChbTixOK3gubGVuZ3RoLTFdKSxlLnNwbGljZShOLDIseCl9Zm9yKGYucmV2ZXJzZSgpLFM9LTE7KytTPGYubGVuZ3RoOyltW18rZltTXVswXV09XytmW1NdWzFdLF8rPWZbU11bMV0tZltTXVswXS0xO3JldHVybiBtfWNvbnN0IGRxPXtyZXNvbHZlOmZxLHRva2VuaXplOmdxfSxwcT17cGFydGlhbDohMCx0b2tlbml6ZTptcX07ZnVuY3Rpb24gZnEoZSl7cmV0dXJuIGprKGUpLGV9ZnVuY3Rpb24gZ3EoZSxuKXtsZXQgYTtyZXR1cm4gaTtmdW5jdGlvbiBpKGQpe3JldHVybiBlLmVudGVyKCJjb250ZW50IiksYT1lLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCJ9KSxsKGQpfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQ9PT1udWxsP3UoZCk6YmUoZCk/ZS5jaGVjayhwcSxjLHUpKGQpOihlLmNvbnN1bWUoZCksbCl9ZnVuY3Rpb24gdShkKXtyZXR1cm4gZS5leGl0KCJjaHVua0NvbnRlbnQiKSxlLmV4aXQoImNvbnRlbnQiKSxuKGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGUuY29uc3VtZShkKSxlLmV4aXQoImNodW5rQ29udGVudCIpLGEubmV4dD1lLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6YX0pLGE9YS5uZXh0LGx9fWZ1bmN0aW9uIG1xKGUsbixhKXtjb25zdCBpPXRoaXM7cmV0dXJuIGw7ZnVuY3Rpb24gbChjKXtyZXR1cm4gZS5leGl0KCJjaHVua0NvbnRlbnQiKSxlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGMpLGUuZXhpdCgibGluZUVuZGluZyIpLERlKGUsdSwibGluZVByZWZpeCIpfWZ1bmN0aW9uIHUoYyl7aWYoYz09PW51bGx8fGJlKGMpKXJldHVybiBhKGMpO2NvbnN0IGQ9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJmQmJmRbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmZFsyXS5zbGljZVNlcmlhbGl6ZShkWzFdLCEwKS5sZW5ndGg+PTQ/bihjKTplLmludGVycnVwdChpLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csYSxuKShjKX19ZnVuY3Rpb24gemsoZSxuLGEsaSxsLHUsYyxkLGYpe2NvbnN0IG09Znx8TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2xldCBiPTA7cmV0dXJuIGg7ZnVuY3Rpb24gaCh4KXtyZXR1cm4geD09PTYwPyhlLmVudGVyKGkpLGUuZW50ZXIobCksZS5lbnRlcih1KSxlLmNvbnN1bWUoeCksZS5leGl0KHUpLFMpOng9PT1udWxsfHx4PT09MzJ8fHg9PT00MXx8emwoeCk/YSh4KTooZS5lbnRlcihpKSxlLmVudGVyKGMpLGUuZW50ZXIoZCksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLFQoeCkpfWZ1bmN0aW9uIFMoeCl7cmV0dXJuIHg9PT02Mj8oZS5lbnRlcih1KSxlLmNvbnN1bWUoeCksZS5leGl0KHUpLGUuZXhpdChsKSxlLmV4aXQoaSksbik6KGUuZW50ZXIoZCksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLEUoeCkpfWZ1bmN0aW9uIEUoeCl7cmV0dXJuIHg9PT02Mj8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChkKSxTKHgpKTp4PT09bnVsbHx8eD09PTYwfHxiZSh4KT9hKHgpOihlLmNvbnN1bWUoeCkseD09PTkyP186RSl9ZnVuY3Rpb24gXyh4KXtyZXR1cm4geD09PTYwfHx4PT09NjJ8fHg9PT05Mj8oZS5jb25zdW1lKHgpLEUpOkUoeCl9ZnVuY3Rpb24gVCh4KXtyZXR1cm4hYiYmKHg9PT1udWxsfHx4PT09NDF8fFZlKHgpKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChkKSxlLmV4aXQoYyksZS5leGl0KGkpLG4oeCkpOmI8bSYmeD09PTQwPyhlLmNvbnN1bWUoeCksYisrLFQpOng9PT00MT8oZS5jb25zdW1lKHgpLGItLSxUKTp4PT09bnVsbHx8eD09PTMyfHx4PT09NDB8fHpsKHgpP2EoeCk6KGUuY29uc3VtZSh4KSx4PT09OTI/QzpUKX1mdW5jdGlvbiBDKHgpe3JldHVybiB4PT09NDB8fHg9PT00MXx8eD09PTkyPyhlLmNvbnN1bWUoeCksVCk6VCh4KX19ZnVuY3Rpb24gcWsoZSxuLGEsaSxsLHUpe2NvbnN0IGM9dGhpcztsZXQgZD0wLGY7cmV0dXJuIG07ZnVuY3Rpb24gbShFKXtyZXR1cm4gZS5lbnRlcihpKSxlLmVudGVyKGwpLGUuY29uc3VtZShFKSxlLmV4aXQobCksZS5lbnRlcih1KSxifWZ1bmN0aW9uIGIoRSl7cmV0dXJuIGQ+OTk5fHxFPT09bnVsbHx8RT09PTkxfHxFPT09OTMmJiFmfHxFPT09OTQmJiFkJiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBjLnBhcnNlci5jb25zdHJ1Y3RzP2EoRSk6RT09PTkzPyhlLmV4aXQodSksZS5lbnRlcihsKSxlLmNvbnN1bWUoRSksZS5leGl0KGwpLGUuZXhpdChpKSxuKTpiZShFKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShFKSxlLmV4aXQoImxpbmVFbmRpbmciKSxiKTooZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGgoRSkpfWZ1bmN0aW9uIGgoRSl7cmV0dXJuIEU9PT1udWxsfHxFPT09OTF8fEU9PT05M3x8YmUoRSl8fGQrKz45OTk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxiKEUpKTooZS5jb25zdW1lKEUpLGZ8fChmPSFSZShFKSksRT09PTkyP1M6aCl9ZnVuY3Rpb24gUyhFKXtyZXR1cm4gRT09PTkxfHxFPT09OTJ8fEU9PT05Mz8oZS5jb25zdW1lKEUpLGQrKyxoKTpoKEUpfX1mdW5jdGlvbiBQayhlLG4sYSxpLGwsdSl7bGV0IGM7cmV0dXJuIGQ7ZnVuY3Rpb24gZChTKXtyZXR1cm4gUz09PTM0fHxTPT09Mzl8fFM9PT00MD8oZS5lbnRlcihpKSxlLmVudGVyKGwpLGUuY29uc3VtZShTKSxlLmV4aXQobCksYz1TPT09NDA/NDE6UyxmKTphKFMpfWZ1bmN0aW9uIGYoUyl7cmV0dXJuIFM9PT1jPyhlLmVudGVyKGwpLGUuY29uc3VtZShTKSxlLmV4aXQobCksZS5leGl0KGkpLG4pOihlLmVudGVyKHUpLG0oUykpfWZ1bmN0aW9uIG0oUyl7cmV0dXJuIFM9PT1jPyhlLmV4aXQodSksZihjKSk6Uz09PW51bGw/YShTKTpiZShTKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShTKSxlLmV4aXQoImxpbmVFbmRpbmciKSxEZShlLG0sImxpbmVQcmVmaXgiKSk6KGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxiKFMpKX1mdW5jdGlvbiBiKFMpe3JldHVybiBTPT09Y3x8Uz09PW51bGx8fGJlKFMpPyhlLmV4aXQoImNodW5rU3RyaW5nIiksbShTKSk6KGUuY29uc3VtZShTKSxTPT09OTI/aDpiKX1mdW5jdGlvbiBoKFMpe3JldHVybiBTPT09Y3x8Uz09PTkyPyhlLmNvbnN1bWUoUyksYik6YihTKX19ZnVuY3Rpb24gbm8oZSxuKXtsZXQgYTtyZXR1cm4gaTtmdW5jdGlvbiBpKGwpe3JldHVybiBiZShsKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShsKSxlLmV4aXQoImxpbmVFbmRpbmciKSxhPSEwLGkpOlJlKGwpP0RlKGUsaSxhPyJsaW5lUHJlZml4IjoibGluZVN1ZmZpeCIpKGwpOm4obCl9fWNvbnN0IGhxPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTp5cX0sYnE9e3BhcnRpYWw6ITAsdG9rZW5pemU6RXF9O2Z1bmN0aW9uIHlxKGUsbixhKXtjb25zdCBpPXRoaXM7bGV0IGw7cmV0dXJuIHU7ZnVuY3Rpb24gdShFKXtyZXR1cm4gZS5lbnRlcigiZGVmaW5pdGlvbiIpLGMoRSl9ZnVuY3Rpb24gYyhFKXtyZXR1cm4gcWsuY2FsbChpLGUsZCxhLCJkZWZpbml0aW9uTGFiZWwiLCJkZWZpbml0aW9uTGFiZWxNYXJrZXIiLCJkZWZpbml0aW9uTGFiZWxTdHJpbmciKShFKX1mdW5jdGlvbiBkKEUpe3JldHVybiBsPUFuKGkuc2xpY2VTZXJpYWxpemUoaS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSksRT09PTU4PyhlLmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksZS5jb25zdW1lKEUpLGUuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGYpOmEoRSl9ZnVuY3Rpb24gZihFKXtyZXR1cm4gVmUoRSk/bm8oZSxtKShFKTptKEUpfWZ1bmN0aW9uIG0oRSl7cmV0dXJuIHprKGUsYixhLCJkZWZpbml0aW9uRGVzdGluYXRpb24iLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsImRlZmluaXRpb25EZXN0aW5hdGlvblJhdyIsImRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZyIpKEUpfWZ1bmN0aW9uIGIoRSl7cmV0dXJuIGUuYXR0ZW1wdChicSxoLGgpKEUpfWZ1bmN0aW9uIGgoRSl7cmV0dXJuIFJlKEUpP0RlKGUsUywid2hpdGVzcGFjZSIpKEUpOlMoRSl9ZnVuY3Rpb24gUyhFKXtyZXR1cm4gRT09PW51bGx8fGJlKEUpPyhlLmV4aXQoImRlZmluaXRpb24iKSxpLnBhcnNlci5kZWZpbmVkLnB1c2gobCksbihFKSk6YShFKX19ZnVuY3Rpb24gRXEoZSxuLGEpe3JldHVybiBpO2Z1bmN0aW9uIGkoZCl7cmV0dXJuIFZlKGQpP25vKGUsbCkoZCk6YShkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBQayhlLHUsYSwiZGVmaW5pdGlvblRpdGxlIiwiZGVmaW5pdGlvblRpdGxlTWFya2VyIiwiZGVmaW5pdGlvblRpdGxlU3RyaW5nIikoZCl9ZnVuY3Rpb24gdShkKXtyZXR1cm4gUmUoZCk/RGUoZSxjLCJ3aGl0ZXNwYWNlIikoZCk6YyhkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBkPT09bnVsbHx8YmUoZCk/bihkKTphKGQpfX1jb25zdCBTcT17bmFtZToiaGFyZEJyZWFrRXNjYXBlIix0b2tlbml6ZTp2cX07ZnVuY3Rpb24gdnEoZSxuLGEpe3JldHVybiBpO2Z1bmN0aW9uIGkodSl7cmV0dXJuIGUuZW50ZXIoImhhcmRCcmVha0VzY2FwZSIpLGUuY29uc3VtZSh1KSxsfWZ1bmN0aW9uIGwodSl7cmV0dXJuIGJlKHUpPyhlLmV4aXQoImhhcmRCcmVha0VzY2FwZSIpLG4odSkpOmEodSl9fWNvbnN0IFRxPXtuYW1lOiJoZWFkaW5nQXR4IixyZXNvbHZlOnhxLHRva2VuaXplOkFxfTtmdW5jdGlvbiB4cShlLG4pe2xldCBhPWUubGVuZ3RoLTIsaT0zLGwsdTtyZXR1cm4gZVtpXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoaSs9MiksYS0yPmkmJmVbYV1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKGEtPTIpLGVbYV1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYoaT09PWEtMXx8YS00PmkmJmVbYS0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKGEtPWkrMT09PWE/Mjo0KSxhPmkmJihsPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVthXVsxXS5lbmR9LHU9e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVthXVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSx0bihlLGksYS1pKzEsW1siZW50ZXIiLGwsbl0sWyJlbnRlciIsdSxuXSxbImV4aXQiLHUsbl0sWyJleGl0IixsLG5dXSkpLGV9ZnVuY3Rpb24gQXEoZSxuLGEpe2xldCBpPTA7cmV0dXJuIGw7ZnVuY3Rpb24gbChiKXtyZXR1cm4gZS5lbnRlcigiYXR4SGVhZGluZyIpLHUoYil9ZnVuY3Rpb24gdShiKXtyZXR1cm4gZS5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksYyhiKX1mdW5jdGlvbiBjKGIpe3JldHVybiBiPT09MzUmJmkrKzw2PyhlLmNvbnN1bWUoYiksYyk6Yj09PW51bGx8fFZlKGIpPyhlLmV4aXQoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGQoYikpOmEoYil9ZnVuY3Rpb24gZChiKXtyZXR1cm4gYj09PTM1PyhlLmVudGVyKCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxmKGIpKTpiPT09bnVsbHx8YmUoYik/KGUuZXhpdCgiYXR4SGVhZGluZyIpLG4oYikpOlJlKGIpP0RlKGUsZCwid2hpdGVzcGFjZSIpKGIpOihlLmVudGVyKCJhdHhIZWFkaW5nVGV4dCIpLG0oYikpfWZ1bmN0aW9uIGYoYil7cmV0dXJuIGI9PT0zNT8oZS5jb25zdW1lKGIpLGYpOihlLmV4aXQoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGQoYikpfWZ1bmN0aW9uIG0oYil7cmV0dXJuIGI9PT1udWxsfHxiPT09MzV8fFZlKGIpPyhlLmV4aXQoImF0eEhlYWRpbmdUZXh0IiksZChiKSk6KGUuY29uc3VtZShiKSxtKX19Y29uc3QgX3E9WyJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYmFzZSIsImJhc2Vmb250IiwiYmxvY2txdW90ZSIsImJvZHkiLCJjYXB0aW9uIiwiY2VudGVyIiwiY29sIiwiY29sZ3JvdXAiLCJkZCIsImRldGFpbHMiLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImZyYW1lIiwiZnJhbWVzZXQiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1lbnUiLCJtZW51aXRlbSIsIm5hdiIsIm5vZnJhbWVzIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsInAiLCJwYXJhbSIsInNlYXJjaCIsInNlY3Rpb24iLCJzdW1tYXJ5IiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidWwiXSxydz1bInByZSIsInNjcmlwdCIsInN0eWxlIiwidGV4dGFyZWEiXSxScT17Y29uY3JldGU6ITAsbmFtZToiaHRtbEZsb3ciLHJlc29sdmVUbzprcSx0b2tlbml6ZTpDcX0sTnE9e3BhcnRpYWw6ITAsdG9rZW5pemU6T3F9LHdxPXtwYXJ0aWFsOiEwLHRva2VuaXplOklxfTtmdW5jdGlvbiBrcShlKXtsZXQgbj1lLmxlbmd0aDtmb3IoO24tLSYmIShlW25dWzBdPT09ImVudGVyIiYmZVtuXVsxXS50eXBlPT09Imh0bWxGbG93Iik7KTtyZXR1cm4gbj4xJiZlW24tMl1bMV0udHlwZT09PSJsaW5lUHJlZml4IiYmKGVbbl1bMV0uc3RhcnQ9ZVtuLTJdWzFdLnN0YXJ0LGVbbisxXVsxXS5zdGFydD1lW24tMl1bMV0uc3RhcnQsZS5zcGxpY2Uobi0yLDIpKSxlfWZ1bmN0aW9uIENxKGUsbixhKXtjb25zdCBpPXRoaXM7bGV0IGwsdSxjLGQsZjtyZXR1cm4gbTtmdW5jdGlvbiBtKHcpe3JldHVybiBiKHcpfWZ1bmN0aW9uIGIodyl7cmV0dXJuIGUuZW50ZXIoImh0bWxGbG93IiksZS5lbnRlcigiaHRtbEZsb3dEYXRhIiksZS5jb25zdW1lKHcpLGh9ZnVuY3Rpb24gaCh3KXtyZXR1cm4gdz09PTMzPyhlLmNvbnN1bWUodyksUyk6dz09PTQ3PyhlLmNvbnN1bWUodyksdT0hMCxUKTp3PT09NjM/KGUuY29uc3VtZSh3KSxsPTMsaS5pbnRlcnJ1cHQ/bjpJKTpJdCh3KT8oZS5jb25zdW1lKHcpLGM9U3RyaW5nLmZyb21DaGFyQ29kZSh3KSxDKTphKHcpfWZ1bmN0aW9uIFModyl7cmV0dXJuIHc9PT00NT8oZS5jb25zdW1lKHcpLGw9MixFKTp3PT09OTE/KGUuY29uc3VtZSh3KSxsPTUsZD0wLF8pOkl0KHcpPyhlLmNvbnN1bWUodyksbD00LGkuaW50ZXJydXB0P246SSk6YSh3KX1mdW5jdGlvbiBFKHcpe3JldHVybiB3PT09NDU/KGUuY29uc3VtZSh3KSxpLmludGVycnVwdD9uOkkpOmEodyl9ZnVuY3Rpb24gXyh3KXtjb25zdCB0ZT0iQ0RBVEFbIjtyZXR1cm4gdz09PXRlLmNoYXJDb2RlQXQoZCsrKT8oZS5jb25zdW1lKHcpLGQ9PT10ZS5sZW5ndGg/aS5pbnRlcnJ1cHQ/bjpKOl8pOmEodyl9ZnVuY3Rpb24gVCh3KXtyZXR1cm4gSXQodyk/KGUuY29uc3VtZSh3KSxjPVN0cmluZy5mcm9tQ2hhckNvZGUodyksQyk6YSh3KX1mdW5jdGlvbiBDKHcpe2lmKHc9PT1udWxsfHx3PT09NDd8fHc9PT02Mnx8VmUodykpe2NvbnN0IHRlPXc9PT00NyxzZT1jLnRvTG93ZXJDYXNlKCk7cmV0dXJuIXRlJiYhdSYmcncuaW5jbHVkZXMoc2UpPyhsPTEsaS5pbnRlcnJ1cHQ/bih3KTpKKHcpKTpfcS5pbmNsdWRlcyhjLnRvTG93ZXJDYXNlKCkpPyhsPTYsdGU/KGUuY29uc3VtZSh3KSx4KTppLmludGVycnVwdD9uKHcpOkoodykpOihsPTcsaS5pbnRlcnJ1cHQmJiFpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/YSh3KTp1P04odyk6ayh3KSl9cmV0dXJuIHc9PT00NXx8UnQodyk/KGUuY29uc3VtZSh3KSxjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHcpLEMpOmEodyl9ZnVuY3Rpb24geCh3KXtyZXR1cm4gdz09PTYyPyhlLmNvbnN1bWUodyksaS5pbnRlcnJ1cHQ/bjpKKTphKHcpfWZ1bmN0aW9uIE4odyl7cmV0dXJuIFJlKHcpPyhlLmNvbnN1bWUodyksTik6VSh3KX1mdW5jdGlvbiBrKHcpe3JldHVybiB3PT09NDc/KGUuY29uc3VtZSh3KSxVKTp3PT09NTh8fHc9PT05NXx8SXQodyk/KGUuY29uc3VtZSh3KSxMKTpSZSh3KT8oZS5jb25zdW1lKHcpLGspOlUodyl9ZnVuY3Rpb24gTCh3KXtyZXR1cm4gdz09PTQ1fHx3PT09NDZ8fHc9PT01OHx8dz09PTk1fHxSdCh3KT8oZS5jb25zdW1lKHcpLEwpOkYodyl9ZnVuY3Rpb24gRih3KXtyZXR1cm4gdz09PTYxPyhlLmNvbnN1bWUodyksUik6UmUodyk/KGUuY29uc3VtZSh3KSxGKTprKHcpfWZ1bmN0aW9uIFIodyl7cmV0dXJuIHc9PT1udWxsfHx3PT09NjB8fHc9PT02MXx8dz09PTYyfHx3PT09OTY/YSh3KTp3PT09MzR8fHc9PT0zOT8oZS5jb25zdW1lKHcpLGY9dyxNKTpSZSh3KT8oZS5jb25zdW1lKHcpLFIpOlkodyl9ZnVuY3Rpb24gTSh3KXtyZXR1cm4gdz09PWY/KGUuY29uc3VtZSh3KSxmPW51bGwseik6dz09PW51bGx8fGJlKHcpP2Eodyk6KGUuY29uc3VtZSh3KSxNKX1mdW5jdGlvbiBZKHcpe3JldHVybiB3PT09bnVsbHx8dz09PTM0fHx3PT09Mzl8fHc9PT00N3x8dz09PTYwfHx3PT09NjF8fHc9PT02Mnx8dz09PTk2fHxWZSh3KT9GKHcpOihlLmNvbnN1bWUodyksWSl9ZnVuY3Rpb24geih3KXtyZXR1cm4gdz09PTQ3fHx3PT09NjJ8fFJlKHcpP2sodyk6YSh3KX1mdW5jdGlvbiBVKHcpe3JldHVybiB3PT09NjI/KGUuY29uc3VtZSh3KSwkKTphKHcpfWZ1bmN0aW9uICQodyl7cmV0dXJuIHc9PT1udWxsfHxiZSh3KT9KKHcpOlJlKHcpPyhlLmNvbnN1bWUodyksJCk6YSh3KX1mdW5jdGlvbiBKKHcpe3JldHVybiB3PT09NDUmJmw9PT0yPyhlLmNvbnN1bWUodyksRyk6dz09PTYwJiZsPT09MT8oZS5jb25zdW1lKHcpLGVlKTp3PT09NjImJmw9PT00PyhlLmNvbnN1bWUodyksTyk6dz09PTYzJiZsPT09Mz8oZS5jb25zdW1lKHcpLEkpOnc9PT05MyYmbD09PTU/KGUuY29uc3VtZSh3KSxmZSk6YmUodykmJihsPT09Nnx8bD09PTcpPyhlLmV4aXQoImh0bWxGbG93RGF0YSIpLGUuY2hlY2soTnEsVixvZSkodykpOnc9PT1udWxsfHxiZSh3KT8oZS5leGl0KCJodG1sRmxvd0RhdGEiKSxvZSh3KSk6KGUuY29uc3VtZSh3KSxKKX1mdW5jdGlvbiBvZSh3KXtyZXR1cm4gZS5jaGVjayh3cSxpZSxWKSh3KX1mdW5jdGlvbiBpZSh3KXtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZSh3KSxlLmV4aXQoImxpbmVFbmRpbmciKSxsZX1mdW5jdGlvbiBsZSh3KXtyZXR1cm4gdz09PW51bGx8fGJlKHcpP29lKHcpOihlLmVudGVyKCJodG1sRmxvd0RhdGEiKSxKKHcpKX1mdW5jdGlvbiBHKHcpe3JldHVybiB3PT09NDU/KGUuY29uc3VtZSh3KSxJKTpKKHcpfWZ1bmN0aW9uIGVlKHcpe3JldHVybiB3PT09NDc/KGUuY29uc3VtZSh3KSxjPSIiLG5lKTpKKHcpfWZ1bmN0aW9uIG5lKHcpe2lmKHc9PT02Mil7Y29uc3QgdGU9Yy50b0xvd2VyQ2FzZSgpO3JldHVybiBydy5pbmNsdWRlcyh0ZSk/KGUuY29uc3VtZSh3KSxPKTpKKHcpfXJldHVybiBJdCh3KSYmYy5sZW5ndGg8OD8oZS5jb25zdW1lKHcpLGMrPVN0cmluZy5mcm9tQ2hhckNvZGUodyksbmUpOkoodyl9ZnVuY3Rpb24gZmUodyl7cmV0dXJuIHc9PT05Mz8oZS5jb25zdW1lKHcpLEkpOkoodyl9ZnVuY3Rpb24gSSh3KXtyZXR1cm4gdz09PTYyPyhlLmNvbnN1bWUodyksTyk6dz09PTQ1JiZsPT09Mj8oZS5jb25zdW1lKHcpLEkpOkoodyl9ZnVuY3Rpb24gTyh3KXtyZXR1cm4gdz09PW51bGx8fGJlKHcpPyhlLmV4aXQoImh0bWxGbG93RGF0YSIpLFYodykpOihlLmNvbnN1bWUodyksTyl9ZnVuY3Rpb24gVih3KXtyZXR1cm4gZS5leGl0KCJodG1sRmxvdyIpLG4odyl9fWZ1bmN0aW9uIElxKGUsbixhKXtjb25zdCBpPXRoaXM7cmV0dXJuIGw7ZnVuY3Rpb24gbChjKXtyZXR1cm4gYmUoYyk/KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoYyksZS5leGl0KCJsaW5lRW5kaW5nIiksdSk6YShjKX1mdW5jdGlvbiB1KGMpe3JldHVybiBpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/YShjKTpuKGMpfX1mdW5jdGlvbiBPcShlLG4sYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShsKXtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShsKSxlLmV4aXQoImxpbmVFbmRpbmciKSxlLmF0dGVtcHQoY28sbixhKX19Y29uc3QgTHE9e25hbWU6Imh0bWxUZXh0Iix0b2tlbml6ZTpEcX07ZnVuY3Rpb24gRHEoZSxuLGEpe2NvbnN0IGk9dGhpcztsZXQgbCx1LGM7cmV0dXJuIGQ7ZnVuY3Rpb24gZChJKXtyZXR1cm4gZS5lbnRlcigiaHRtbFRleHQiKSxlLmVudGVyKCJodG1sVGV4dERhdGEiKSxlLmNvbnN1bWUoSSksZn1mdW5jdGlvbiBmKEkpe3JldHVybiBJPT09MzM/KGUuY29uc3VtZShJKSxtKTpJPT09NDc/KGUuY29uc3VtZShJKSxGKTpJPT09NjM/KGUuY29uc3VtZShJKSxrKTpJdChJKT8oZS5jb25zdW1lKEkpLFkpOmEoSSl9ZnVuY3Rpb24gbShJKXtyZXR1cm4gST09PTQ1PyhlLmNvbnN1bWUoSSksYik6ST09PTkxPyhlLmNvbnN1bWUoSSksdT0wLF8pOkl0KEkpPyhlLmNvbnN1bWUoSSksTik6YShJKX1mdW5jdGlvbiBiKEkpe3JldHVybiBJPT09NDU/KGUuY29uc3VtZShJKSxFKTphKEkpfWZ1bmN0aW9uIGgoSSl7cmV0dXJuIEk9PT1udWxsP2EoSSk6ST09PTQ1PyhlLmNvbnN1bWUoSSksUyk6YmUoSSk/KGM9aCxlZShJKSk6KGUuY29uc3VtZShJKSxoKX1mdW5jdGlvbiBTKEkpe3JldHVybiBJPT09NDU/KGUuY29uc3VtZShJKSxFKTpoKEkpfWZ1bmN0aW9uIEUoSSl7cmV0dXJuIEk9PT02Mj9HKEkpOkk9PT00NT9TKEkpOmgoSSl9ZnVuY3Rpb24gXyhJKXtjb25zdCBPPSJDREFUQVsiO3JldHVybiBJPT09Ty5jaGFyQ29kZUF0KHUrKyk/KGUuY29uc3VtZShJKSx1PT09Ty5sZW5ndGg/VDpfKTphKEkpfWZ1bmN0aW9uIFQoSSl7cmV0dXJuIEk9PT1udWxsP2EoSSk6ST09PTkzPyhlLmNvbnN1bWUoSSksQyk6YmUoSSk/KGM9VCxlZShJKSk6KGUuY29uc3VtZShJKSxUKX1mdW5jdGlvbiBDKEkpe3JldHVybiBJPT09OTM/KGUuY29uc3VtZShJKSx4KTpUKEkpfWZ1bmN0aW9uIHgoSSl7cmV0dXJuIEk9PT02Mj9HKEkpOkk9PT05Mz8oZS5jb25zdW1lKEkpLHgpOlQoSSl9ZnVuY3Rpb24gTihJKXtyZXR1cm4gST09PW51bGx8fEk9PT02Mj9HKEkpOmJlKEkpPyhjPU4sZWUoSSkpOihlLmNvbnN1bWUoSSksTil9ZnVuY3Rpb24gayhJKXtyZXR1cm4gST09PW51bGw/YShJKTpJPT09NjM/KGUuY29uc3VtZShJKSxMKTpiZShJKT8oYz1rLGVlKEkpKTooZS5jb25zdW1lKEkpLGspfWZ1bmN0aW9uIEwoSSl7cmV0dXJuIEk9PT02Mj9HKEkpOmsoSSl9ZnVuY3Rpb24gRihJKXtyZXR1cm4gSXQoSSk/KGUuY29uc3VtZShJKSxSKTphKEkpfWZ1bmN0aW9uIFIoSSl7cmV0dXJuIEk9PT00NXx8UnQoSSk/KGUuY29uc3VtZShJKSxSKTpNKEkpfWZ1bmN0aW9uIE0oSSl7cmV0dXJuIGJlKEkpPyhjPU0sZWUoSSkpOlJlKEkpPyhlLmNvbnN1bWUoSSksTSk6RyhJKX1mdW5jdGlvbiBZKEkpe3JldHVybiBJPT09NDV8fFJ0KEkpPyhlLmNvbnN1bWUoSSksWSk6ST09PTQ3fHxJPT09NjJ8fFZlKEkpP3ooSSk6YShJKX1mdW5jdGlvbiB6KEkpe3JldHVybiBJPT09NDc/KGUuY29uc3VtZShJKSxHKTpJPT09NTh8fEk9PT05NXx8SXQoSSk/KGUuY29uc3VtZShJKSxVKTpiZShJKT8oYz16LGVlKEkpKTpSZShJKT8oZS5jb25zdW1lKEkpLHopOkcoSSl9ZnVuY3Rpb24gVShJKXtyZXR1cm4gST09PTQ1fHxJPT09NDZ8fEk9PT01OHx8ST09PTk1fHxSdChJKT8oZS5jb25zdW1lKEkpLFUpOiQoSSl9ZnVuY3Rpb24gJChJKXtyZXR1cm4gST09PTYxPyhlLmNvbnN1bWUoSSksSik6YmUoSSk/KGM9JCxlZShJKSk6UmUoSSk/KGUuY29uc3VtZShJKSwkKTp6KEkpfWZ1bmN0aW9uIEooSSl7cmV0dXJuIEk9PT1udWxsfHxJPT09NjB8fEk9PT02MXx8ST09PTYyfHxJPT09OTY/YShJKTpJPT09MzR8fEk9PT0zOT8oZS5jb25zdW1lKEkpLGw9SSxvZSk6YmUoSSk/KGM9SixlZShJKSk6UmUoSSk/KGUuY29uc3VtZShJKSxKKTooZS5jb25zdW1lKEkpLGllKX1mdW5jdGlvbiBvZShJKXtyZXR1cm4gST09PWw/KGUuY29uc3VtZShJKSxsPXZvaWQgMCxsZSk6ST09PW51bGw/YShJKTpiZShJKT8oYz1vZSxlZShJKSk6KGUuY29uc3VtZShJKSxvZSl9ZnVuY3Rpb24gaWUoSSl7cmV0dXJuIEk9PT1udWxsfHxJPT09MzR8fEk9PT0zOXx8ST09PTYwfHxJPT09NjF8fEk9PT05Nj9hKEkpOkk9PT00N3x8ST09PTYyfHxWZShJKT96KEkpOihlLmNvbnN1bWUoSSksaWUpfWZ1bmN0aW9uIGxlKEkpe3JldHVybiBJPT09NDd8fEk9PT02Mnx8VmUoSSk/eihJKTphKEkpfWZ1bmN0aW9uIEcoSSl7cmV0dXJuIEk9PT02Mj8oZS5jb25zdW1lKEkpLGUuZXhpdCgiaHRtbFRleHREYXRhIiksZS5leGl0KCJodG1sVGV4dCIpLG4pOmEoSSl9ZnVuY3Rpb24gZWUoSSl7cmV0dXJuIGUuZXhpdCgiaHRtbFRleHREYXRhIiksZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShJKSxlLmV4aXQoImxpbmVFbmRpbmciKSxuZX1mdW5jdGlvbiBuZShJKXtyZXR1cm4gUmUoSSk/RGUoZSxmZSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShJKTpmZShJKX1mdW5jdGlvbiBmZShJKXtyZXR1cm4gZS5lbnRlcigiaHRtbFRleHREYXRhIiksYyhJKX19Y29uc3QgRWI9e25hbWU6ImxhYmVsRW5kIixyZXNvbHZlQWxsOkJxLHJlc29sdmVUbzpqcSx0b2tlbml6ZTp6cX0sTXE9e3Rva2VuaXplOnFxfSxVcT17dG9rZW5pemU6UHF9LEZxPXt0b2tlbml6ZTpHcX07ZnVuY3Rpb24gQnEoZSl7bGV0IG49LTE7Y29uc3QgYT1bXTtmb3IoOysrbjxlLmxlbmd0aDspe2NvbnN0IGk9ZVtuXVsxXTtpZihhLnB1c2goZVtuXSksaS50eXBlPT09ImxhYmVsSW1hZ2UifHxpLnR5cGU9PT0ibGFiZWxMaW5rInx8aS50eXBlPT09ImxhYmVsRW5kIil7Y29uc3QgbD1pLnR5cGU9PT0ibGFiZWxJbWFnZSI/NDoyO2kudHlwZT0iZGF0YSIsbis9bH19cmV0dXJuIGUubGVuZ3RoIT09YS5sZW5ndGgmJnRuKGUsMCxlLmxlbmd0aCxhKSxlfWZ1bmN0aW9uIGpxKGUsbil7bGV0IGE9ZS5sZW5ndGgsaT0wLGwsdSxjLGQ7Zm9yKDthLS07KWlmKGw9ZVthXVsxXSx1KXtpZihsLnR5cGU9PT0ibGluayJ8fGwudHlwZT09PSJsYWJlbExpbmsiJiZsLl9pbmFjdGl2ZSlicmVhaztlW2FdWzBdPT09ImVudGVyIiYmbC50eXBlPT09ImxhYmVsTGluayImJihsLl9pbmFjdGl2ZT0hMCl9ZWxzZSBpZihjKXtpZihlW2FdWzBdPT09ImVudGVyIiYmKGwudHlwZT09PSJsYWJlbEltYWdlInx8bC50eXBlPT09ImxhYmVsTGluayIpJiYhbC5fYmFsYW5jZWQmJih1PWEsbC50eXBlIT09ImxhYmVsTGluayIpKXtpPTI7YnJlYWt9fWVsc2UgbC50eXBlPT09ImxhYmVsRW5kIiYmKGM9YSk7Y29uc3QgZj17dHlwZTplW3VdWzFdLnR5cGU9PT0ibGFiZWxMaW5rIj8ibGluayI6ImltYWdlIixzdGFydDp7Li4uZVt1XVsxXS5zdGFydH0sZW5kOnsuLi5lW2UubGVuZ3RoLTFdWzFdLmVuZH19LG09e3R5cGU6ImxhYmVsIixzdGFydDp7Li4uZVt1XVsxXS5zdGFydH0sZW5kOnsuLi5lW2NdWzFdLmVuZH19LGI9e3R5cGU6ImxhYmVsVGV4dCIsc3RhcnQ6ey4uLmVbdStpKzJdWzFdLmVuZH0sZW5kOnsuLi5lW2MtMl1bMV0uc3RhcnR9fTtyZXR1cm4gZD1bWyJlbnRlciIsZixuXSxbImVudGVyIixtLG5dXSxkPXluKGQsZS5zbGljZSh1KzEsdStpKzMpKSxkPXluKGQsW1siZW50ZXIiLGIsbl1dKSxkPXluKGQsWGwobi5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsZS5zbGljZSh1K2krNCxjLTMpLG4pKSxkPXluKGQsW1siZXhpdCIsYixuXSxlW2MtMl0sZVtjLTFdLFsiZXhpdCIsbSxuXV0pLGQ9eW4oZCxlLnNsaWNlKGMrMSkpLGQ9eW4oZCxbWyJleGl0IixmLG5dXSksdG4oZSx1LGUubGVuZ3RoLGQpLGV9ZnVuY3Rpb24genEoZSxuLGEpe2NvbnN0IGk9dGhpcztsZXQgbD1pLmV2ZW50cy5sZW5ndGgsdSxjO2Zvcig7bC0tOylpZigoaS5ldmVudHNbbF1bMV0udHlwZT09PSJsYWJlbEltYWdlInx8aS5ldmVudHNbbF1bMV0udHlwZT09PSJsYWJlbExpbmsiKSYmIWkuZXZlbnRzW2xdWzFdLl9iYWxhbmNlZCl7dT1pLmV2ZW50c1tsXVsxXTticmVha31yZXR1cm4gZDtmdW5jdGlvbiBkKFMpe3JldHVybiB1P3UuX2luYWN0aXZlP2goUyk6KGM9aS5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhBbihpLnNsaWNlU2VyaWFsaXplKHtzdGFydDp1LmVuZCxlbmQ6aS5ub3coKX0pKSksZS5lbnRlcigibGFiZWxFbmQiKSxlLmVudGVyKCJsYWJlbE1hcmtlciIpLGUuY29uc3VtZShTKSxlLmV4aXQoImxhYmVsTWFya2VyIiksZS5leGl0KCJsYWJlbEVuZCIpLGYpOmEoUyl9ZnVuY3Rpb24gZihTKXtyZXR1cm4gUz09PTQwP2UuYXR0ZW1wdChNcSxiLGM/YjpoKShTKTpTPT09OTE/ZS5hdHRlbXB0KFVxLGIsYz9tOmgpKFMpOmM/YihTKTpoKFMpfWZ1bmN0aW9uIG0oUyl7cmV0dXJuIGUuYXR0ZW1wdChGcSxiLGgpKFMpfWZ1bmN0aW9uIGIoUyl7cmV0dXJuIG4oUyl9ZnVuY3Rpb24gaChTKXtyZXR1cm4gdS5fYmFsYW5jZWQ9ITAsYShTKX19ZnVuY3Rpb24gcXEoZSxuLGEpe3JldHVybiBpO2Z1bmN0aW9uIGkoaCl7cmV0dXJuIGUuZW50ZXIoInJlc291cmNlIiksZS5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSxlLmNvbnN1bWUoaCksZS5leGl0KCJyZXNvdXJjZU1hcmtlciIpLGx9ZnVuY3Rpb24gbChoKXtyZXR1cm4gVmUoaCk/bm8oZSx1KShoKTp1KGgpfWZ1bmN0aW9uIHUoaCl7cmV0dXJuIGg9PT00MT9iKGgpOnprKGUsYyxkLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwzMikoaCl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gVmUoaCk/bm8oZSxmKShoKTpiKGgpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIGEoaCl9ZnVuY3Rpb24gZihoKXtyZXR1cm4gaD09PTM0fHxoPT09Mzl8fGg9PT00MD9QayhlLG0sYSwicmVzb3VyY2VUaXRsZSIsInJlc291cmNlVGl0bGVNYXJrZXIiLCJyZXNvdXJjZVRpdGxlU3RyaW5nIikoaCk6YihoKX1mdW5jdGlvbiBtKGgpe3JldHVybiBWZShoKT9ubyhlLGIpKGgpOmIoaCl9ZnVuY3Rpb24gYihoKXtyZXR1cm4gaD09PTQxPyhlLmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLGUuY29uc3VtZShoKSxlLmV4aXQoInJlc291cmNlTWFya2VyIiksZS5leGl0KCJyZXNvdXJjZSIpLG4pOmEoaCl9fWZ1bmN0aW9uIFBxKGUsbixhKXtjb25zdCBpPXRoaXM7cmV0dXJuIGw7ZnVuY3Rpb24gbChkKXtyZXR1cm4gcWsuY2FsbChpLGUsdSxjLCJyZWZlcmVuY2UiLCJyZWZlcmVuY2VNYXJrZXIiLCJyZWZlcmVuY2VTdHJpbmciKShkKX1mdW5jdGlvbiB1KGQpe3JldHVybiBpLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKEFuKGkuc2xpY2VTZXJpYWxpemUoaS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSkpP24oZCk6YShkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhKGQpfX1mdW5jdGlvbiBHcShlLG4sYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaSh1KXtyZXR1cm4gZS5lbnRlcigicmVmZXJlbmNlIiksZS5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKHUpLGUuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksbH1mdW5jdGlvbiBsKHUpe3JldHVybiB1PT09OTM/KGUuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZSh1KSxlLmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLGUuZXhpdCgicmVmZXJlbmNlIiksbik6YSh1KX19Y29uc3QgSHE9e25hbWU6ImxhYmVsU3RhcnRJbWFnZSIscmVzb2x2ZUFsbDpFYi5yZXNvbHZlQWxsLHRva2VuaXplOiRxfTtmdW5jdGlvbiAkcShlLG4sYSl7Y29uc3QgaT10aGlzO3JldHVybiBsO2Z1bmN0aW9uIGwoZCl7cmV0dXJuIGUuZW50ZXIoImxhYmVsSW1hZ2UiKSxlLmVudGVyKCJsYWJlbEltYWdlTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgibGFiZWxJbWFnZU1hcmtlciIpLHV9ZnVuY3Rpb24gdShkKXtyZXR1cm4gZD09PTkxPyhlLmVudGVyKCJsYWJlbE1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoImxhYmVsTWFya2VyIiksZS5leGl0KCJsYWJlbEltYWdlIiksYyk6YShkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBkPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGkucGFyc2VyLmNvbnN0cnVjdHM/YShkKTpuKGQpfX1jb25zdCBWcT17bmFtZToibGFiZWxTdGFydExpbmsiLHJlc29sdmVBbGw6RWIucmVzb2x2ZUFsbCx0b2tlbml6ZTpZcX07ZnVuY3Rpb24gWXEoZSxuLGEpe2NvbnN0IGk9dGhpcztyZXR1cm4gbDtmdW5jdGlvbiBsKGMpe3JldHVybiBlLmVudGVyKCJsYWJlbExpbmsiKSxlLmVudGVyKCJsYWJlbE1hcmtlciIpLGUuY29uc3VtZShjKSxlLmV4aXQoImxhYmVsTWFya2VyIiksZS5leGl0KCJsYWJlbExpbmsiKSx1fWZ1bmN0aW9uIHUoYyl7cmV0dXJuIGM9PT05NCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gaS5wYXJzZXIuY29uc3RydWN0cz9hKGMpOm4oYyl9fWNvbnN0IHNoPXtuYW1lOiJsaW5lRW5kaW5nIix0b2tlbml6ZTpLcX07ZnVuY3Rpb24gS3EoZSxuKXtyZXR1cm4gYTtmdW5jdGlvbiBhKGkpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGkpLGUuZXhpdCgibGluZUVuZGluZyIpLERlKGUsbiwibGluZVByZWZpeCIpfX1jb25zdCBMbD17bmFtZToidGhlbWF0aWNCcmVhayIsdG9rZW5pemU6V3F9O2Z1bmN0aW9uIFdxKGUsbixhKXtsZXQgaT0wLGw7cmV0dXJuIHU7ZnVuY3Rpb24gdShtKXtyZXR1cm4gZS5lbnRlcigidGhlbWF0aWNCcmVhayIpLGMobSl9ZnVuY3Rpb24gYyhtKXtyZXR1cm4gbD1tLGQobSl9ZnVuY3Rpb24gZChtKXtyZXR1cm4gbT09PWw/KGUuZW50ZXIoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLGYobSkpOmk+PTMmJihtPT09bnVsbHx8YmUobSkpPyhlLmV4aXQoInRoZW1hdGljQnJlYWsiKSxuKG0pKTphKG0pfWZ1bmN0aW9uIGYobSl7cmV0dXJuIG09PT1sPyhlLmNvbnN1bWUobSksaSsrLGYpOihlLmV4aXQoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLFJlKG0pP0RlKGUsZCwid2hpdGVzcGFjZSIpKG0pOmQobSkpfX1jb25zdCBxdD17Y29udGludWF0aW9uOnt0b2tlbml6ZTpKcX0sZXhpdDp0UCxuYW1lOiJsaXN0Iix0b2tlbml6ZTpRcX0sWHE9e3BhcnRpYWw6ITAsdG9rZW5pemU6blB9LFpxPXtwYXJ0aWFsOiEwLHRva2VuaXplOmVQfTtmdW5jdGlvbiBRcShlLG4sYSl7Y29uc3QgaT10aGlzLGw9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO2xldCB1PWwmJmxbMV0udHlwZT09PSJsaW5lUHJlZml4Ij9sWzJdLnNsaWNlU2VyaWFsaXplKGxbMV0sITApLmxlbmd0aDowLGM9MDtyZXR1cm4gZDtmdW5jdGlvbiBkKEUpe2NvbnN0IF89aS5jb250YWluZXJTdGF0ZS50eXBlfHwoRT09PTQyfHxFPT09NDN8fEU9PT00NT8ibGlzdFVub3JkZXJlZCI6Imxpc3RPcmRlcmVkIik7aWYoXz09PSJsaXN0VW5vcmRlcmVkIj8haS5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fEU9PT1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpCaChFKSl7aWYoaS5jb250YWluZXJTdGF0ZS50eXBlfHwoaS5jb250YWluZXJTdGF0ZS50eXBlPV8sZS5lbnRlcihfLHtfY29udGFpbmVyOiEwfSkpLF89PT0ibGlzdFVub3JkZXJlZCIpcmV0dXJuIGUuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksRT09PTQyfHxFPT09NDU/ZS5jaGVjayhMbCxhLG0pKEUpOm0oRSk7aWYoIWkuaW50ZXJydXB0fHxFPT09NDkpcmV0dXJuIGUuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksZS5lbnRlcigibGlzdEl0ZW1WYWx1ZSIpLGYoRSl9cmV0dXJuIGEoRSl9ZnVuY3Rpb24gZihFKXtyZXR1cm4gQmgoRSkmJisrYzwxMD8oZS5jb25zdW1lKEUpLGYpOighaS5pbnRlcnJ1cHR8fGM8MikmJihpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj9FPT09aS5jb250YWluZXJTdGF0ZS5tYXJrZXI6RT09PTQxfHxFPT09NDYpPyhlLmV4aXQoImxpc3RJdGVtVmFsdWUiKSxtKEUpKTphKEUpfWZ1bmN0aW9uIG0oRSl7cmV0dXJuIGUuZW50ZXIoImxpc3RJdGVtTWFya2VyIiksZS5jb25zdW1lKEUpLGUuZXhpdCgibGlzdEl0ZW1NYXJrZXIiKSxpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8RSxlLmNoZWNrKGNvLGkuaW50ZXJydXB0P2E6YixlLmF0dGVtcHQoWHEsUyxoKSl9ZnVuY3Rpb24gYihFKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPSEwLHUrKyxTKEUpfWZ1bmN0aW9uIGgoRSl7cmV0dXJuIFJlKEUpPyhlLmVudGVyKCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxlLmNvbnN1bWUoRSksZS5leGl0KCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxTKTphKEUpfWZ1bmN0aW9uIFMoRSl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuc2l6ZT11K2kuc2xpY2VTZXJpYWxpemUoZS5leGl0KCJsaXN0SXRlbVByZWZpeCIpLCEwKS5sZW5ndGgsbihFKX19ZnVuY3Rpb24gSnEoZSxuLGEpe2NvbnN0IGk9dGhpcztyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxlLmNoZWNrKGNvLGwsdSk7ZnVuY3Rpb24gbChkKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz1pLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHxpLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUsRGUoZSxuLCJsaXN0SXRlbUluZGVudCIsaS5jb250YWluZXJTdGF0ZS5zaXplKzEpKGQpfWZ1bmN0aW9uIHUoZCl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fCFSZShkKT8oaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxjKGQpKTooaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxlLmF0dGVtcHQoWnEsbixjKShkKSl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PSEwLGkuaW50ZXJydXB0PXZvaWQgMCxEZShlLGUuYXR0ZW1wdChxdCxuLGEpLCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKGQpfX1mdW5jdGlvbiBlUChlLG4sYSl7Y29uc3QgaT10aGlzO3JldHVybiBEZShlLGwsImxpc3RJdGVtSW5kZW50IixpLmNvbnRhaW5lclN0YXRlLnNpemUrMSk7ZnVuY3Rpb24gbCh1KXtjb25zdCBjPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gYyYmY1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IiYmY1syXS5zbGljZVNlcmlhbGl6ZShjWzFdLCEwKS5sZW5ndGg9PT1pLmNvbnRhaW5lclN0YXRlLnNpemU/bih1KTphKHUpfX1mdW5jdGlvbiB0UChlKXtlLmV4aXQodGhpcy5jb250YWluZXJTdGF0ZS50eXBlKX1mdW5jdGlvbiBuUChlLG4sYSl7Y29uc3QgaT10aGlzO3JldHVybiBEZShlLGwsImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo1KTtmdW5jdGlvbiBsKHUpe2NvbnN0IGM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFSZSh1KSYmYyYmY1sxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSI/bih1KTphKHUpfX1jb25zdCBhdz17bmFtZToic2V0ZXh0VW5kZXJsaW5lIixyZXNvbHZlVG86clAsdG9rZW5pemU6YVB9O2Z1bmN0aW9uIHJQKGUsbil7bGV0IGE9ZS5sZW5ndGgsaSxsLHU7Zm9yKDthLS07KWlmKGVbYV1bMF09PT0iZW50ZXIiKXtpZihlW2FdWzFdLnR5cGU9PT0iY29udGVudCIpe2k9YTticmVha31lW2FdWzFdLnR5cGU9PT0icGFyYWdyYXBoIiYmKGw9YSl9ZWxzZSBlW2FdWzFdLnR5cGU9PT0iY29udGVudCImJmUuc3BsaWNlKGEsMSksIXUmJmVbYV1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKHU9YSk7Y29uc3QgYz17dHlwZToic2V0ZXh0SGVhZGluZyIsc3RhcnQ6ey4uLmVbaV1bMV0uc3RhcnR9LGVuZDp7Li4uZVtlLmxlbmd0aC0xXVsxXS5lbmR9fTtyZXR1cm4gZVtsXVsxXS50eXBlPSJzZXRleHRIZWFkaW5nVGV4dCIsdT8oZS5zcGxpY2UobCwwLFsiZW50ZXIiLGMsbl0pLGUuc3BsaWNlKHUrMSwwLFsiZXhpdCIsZVtpXVsxXSxuXSksZVtpXVsxXS5lbmQ9ey4uLmVbdV1bMV0uZW5kfSk6ZVtpXVsxXT1jLGUucHVzaChbImV4aXQiLGMsbl0pLGV9ZnVuY3Rpb24gYVAoZSxuLGEpe2NvbnN0IGk9dGhpcztsZXQgbDtyZXR1cm4gdTtmdW5jdGlvbiB1KG0pe2xldCBiPWkuZXZlbnRzLmxlbmd0aCxoO2Zvcig7Yi0tOylpZihpLmV2ZW50c1tiXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiZpLmV2ZW50c1tiXVsxXS50eXBlIT09ImxpbmVQcmVmaXgiJiZpLmV2ZW50c1tiXVsxXS50eXBlIT09ImNvbnRlbnQiKXtoPWkuZXZlbnRzW2JdWzFdLnR5cGU9PT0icGFyYWdyYXBoIjticmVha31yZXR1cm4haS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdJiYoaS5pbnRlcnJ1cHR8fGgpPyhlLmVudGVyKCJzZXRleHRIZWFkaW5nTGluZSIpLGw9bSxjKG0pKTphKG0pfWZ1bmN0aW9uIGMobSl7cmV0dXJuIGUuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxkKG0pfWZ1bmN0aW9uIGQobSl7cmV0dXJuIG09PT1sPyhlLmNvbnN1bWUobSksZCk6KGUuZXhpdCgic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLFJlKG0pP0RlKGUsZiwibGluZVN1ZmZpeCIpKG0pOmYobSkpfWZ1bmN0aW9uIGYobSl7cmV0dXJuIG09PT1udWxsfHxiZShtKT8oZS5leGl0KCJzZXRleHRIZWFkaW5nTGluZSIpLG4obSkpOmEobSl9fWNvbnN0IGlQPXt0b2tlbml6ZTpvUH07ZnVuY3Rpb24gb1AoZSl7Y29uc3Qgbj10aGlzLGE9ZS5hdHRlbXB0KGNvLGksZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvd0luaXRpYWwsbCxEZShlLGUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csbCxlLmF0dGVtcHQoZHEsbCkpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gYTtmdW5jdGlvbiBpKHUpe2lmKHU9PT1udWxsKXtlLmNvbnN1bWUodSk7cmV0dXJufXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nQmxhbmsiKSxlLmNvbnN1bWUodSksZS5leGl0KCJsaW5lRW5kaW5nQmxhbmsiKSxuLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLGF9ZnVuY3Rpb24gbCh1KXtpZih1PT09bnVsbCl7ZS5jb25zdW1lKHUpO3JldHVybn1yZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZSh1KSxlLmV4aXQoImxpbmVFbmRpbmciKSxuLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLGF9fWNvbnN0IGxQPXtyZXNvbHZlQWxsOkhrKCl9LHNQPUdrKCJzdHJpbmciKSx1UD1HaygidGV4dCIpO2Z1bmN0aW9uIEdrKGUpe3JldHVybntyZXNvbHZlQWxsOkhrKGU9PT0idGV4dCI/Y1A6dm9pZCAwKSx0b2tlbml6ZTpufTtmdW5jdGlvbiBuKGEpe2NvbnN0IGk9dGhpcyxsPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbZV0sdT1hLmF0dGVtcHQobCxjLGQpO3JldHVybiBjO2Z1bmN0aW9uIGMoYil7cmV0dXJuIG0oYik/dShiKTpkKGIpfWZ1bmN0aW9uIGQoYil7aWYoYj09PW51bGwpe2EuY29uc3VtZShiKTtyZXR1cm59cmV0dXJuIGEuZW50ZXIoImRhdGEiKSxhLmNvbnN1bWUoYiksZn1mdW5jdGlvbiBmKGIpe3JldHVybiBtKGIpPyhhLmV4aXQoImRhdGEiKSx1KGIpKTooYS5jb25zdW1lKGIpLGYpfWZ1bmN0aW9uIG0oYil7aWYoYj09PW51bGwpcmV0dXJuITA7Y29uc3QgaD1sW2JdO2xldCBTPS0xO2lmKGgpZm9yKDsrK1M8aC5sZW5ndGg7KXtjb25zdCBFPWhbU107aWYoIUUucHJldmlvdXN8fEUucHJldmlvdXMuY2FsbChpLGkucHJldmlvdXMpKXJldHVybiEwfXJldHVybiExfX19ZnVuY3Rpb24gSGsoZSl7cmV0dXJuIG47ZnVuY3Rpb24gbihhLGkpe2xldCBsPS0xLHU7Zm9yKDsrK2w8PWEubGVuZ3RoOyl1PT09dm9pZCAwP2FbbF0mJmFbbF1bMV0udHlwZT09PSJkYXRhIiYmKHU9bCxsKyspOighYVtsXXx8YVtsXVsxXS50eXBlIT09ImRhdGEiKSYmKGwhPT11KzImJihhW3VdWzFdLmVuZD1hW2wtMV1bMV0uZW5kLGEuc3BsaWNlKHUrMixsLXUtMiksbD11KzIpLHU9dm9pZCAwKTtyZXR1cm4gZT9lKGEsaSk6YX19ZnVuY3Rpb24gY1AoZSxuKXtsZXQgYT0wO2Zvcig7KythPD1lLmxlbmd0aDspaWYoKGE9PT1lLmxlbmd0aHx8ZVthXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmZVthLTFdWzFdLnR5cGU9PT0iZGF0YSIpe2NvbnN0IGk9ZVthLTFdWzFdLGw9bi5zbGljZVN0cmVhbShpKTtsZXQgdT1sLmxlbmd0aCxjPS0xLGQ9MCxmO2Zvcig7dS0tOyl7Y29uc3QgbT1sW3VdO2lmKHR5cGVvZiBtPT0ic3RyaW5nIil7Zm9yKGM9bS5sZW5ndGg7bS5jaGFyQ29kZUF0KGMtMSk9PT0zMjspZCsrLGMtLTtpZihjKWJyZWFrO2M9LTF9ZWxzZSBpZihtPT09LTIpZj0hMCxkKys7ZWxzZSBpZihtIT09LTEpe3UrKzticmVha319aWYobi5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJmE9PT1lLmxlbmd0aCYmKGQ9MCksZCl7Y29uc3QgbT17dHlwZTphPT09ZS5sZW5ndGh8fGZ8fGQ8Mj8ibGluZVN1ZmZpeCI6ImhhcmRCcmVha1RyYWlsaW5nIixzdGFydDp7X2J1ZmZlckluZGV4OnU/YzppLnN0YXJ0Ll9idWZmZXJJbmRleCtjLF9pbmRleDppLnN0YXJ0Ll9pbmRleCt1LGxpbmU6aS5lbmQubGluZSxjb2x1bW46aS5lbmQuY29sdW1uLWQsb2Zmc2V0OmkuZW5kLm9mZnNldC1kfSxlbmQ6ey4uLmkuZW5kfX07aS5lbmQ9ey4uLm0uc3RhcnR9LGkuc3RhcnQub2Zmc2V0PT09aS5lbmQub2Zmc2V0P09iamVjdC5hc3NpZ24oaSxtKTooZS5zcGxpY2UoYSwwLFsiZW50ZXIiLG0sbl0sWyJleGl0IixtLG5dKSxhKz0yKX1hKyt9cmV0dXJuIGV9Y29uc3QgZFA9ezQyOnF0LDQzOnF0LDQ1OnF0LDQ4OnF0LDQ5OnF0LDUwOnF0LDUxOnF0LDUyOnF0LDUzOnF0LDU0OnF0LDU1OnF0LDU2OnF0LDU3OnF0LDYyOlVrfSxwUD17OTE6aHF9LGZQPXtbLTJdOmxoLFstMV06bGgsMzI6bGh9LGdQPXszNTpUcSw0MjpMbCw0NTpbYXcsTGxdLDYwOlJxLDYxOmF3LDk1OkxsLDk2Om53LDEyNjpud30sbVA9ezM4OkJrLDkyOkZrfSxoUD17Wy01XTpzaCxbLTRdOnNoLFstM106c2gsMzM6SHEsMzg6QmssNDI6amgsNjA6W1Z6LExxXSw5MTpWcSw5MjpbU3EsRmtdLDkzOkViLDk1OmpoLDk2OmlxfSxiUD17bnVsbDpbamgsbFBdfSx5UD17bnVsbDpbNDIsOTVdfSxFUD17bnVsbDpbXX0sU1A9T2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydHkoe19fcHJvdG9fXzpudWxsLGF0dGVudGlvbk1hcmtlcnM6eVAsY29udGVudEluaXRpYWw6cFAsZGlzYWJsZTpFUCxkb2N1bWVudDpkUCxmbG93OmdQLGZsb3dJbml0aWFsOmZQLGluc2lkZVNwYW46YlAsc3RyaW5nOm1QLHRleHQ6aFB9LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSk7ZnVuY3Rpb24gdlAoZSxuLGEpe2xldCBpPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTphJiZhLmxpbmV8fDEsY29sdW1uOmEmJmEuY29sdW1ufHwxLG9mZnNldDphJiZhLm9mZnNldHx8MH07Y29uc3QgbD17fSx1PVtdO2xldCBjPVtdLGQ9W107Y29uc3QgZj17YXR0ZW1wdDpNKEYpLGNoZWNrOk0oUiksY29uc3VtZTpOLGVudGVyOmssZXhpdDpMLGludGVycnVwdDpNKFIse2ludGVycnVwdDohMH0pfSxtPXtjb2RlOm51bGwsY29udGFpbmVyU3RhdGU6e30sZGVmaW5lU2tpcDpULGV2ZW50czpbXSxub3c6XyxwYXJzZXI6ZSxwcmV2aW91czpudWxsLHNsaWNlU2VyaWFsaXplOlMsc2xpY2VTdHJlYW06RSx3cml0ZTpofTtsZXQgYj1uLnRva2VuaXplLmNhbGwobSxmKTtyZXR1cm4gbi5yZXNvbHZlQWxsJiZ1LnB1c2gobiksbTtmdW5jdGlvbiBoKCQpe3JldHVybiBjPXluKGMsJCksQygpLGNbYy5sZW5ndGgtMV0hPT1udWxsP1tdOihZKG4sMCksbS5ldmVudHM9WGwodSxtLmV2ZW50cyxtKSxtLmV2ZW50cyl9ZnVuY3Rpb24gUygkLEope3JldHVybiB4UChFKCQpLEopfWZ1bmN0aW9uIEUoJCl7cmV0dXJuIFRQKGMsJCl9ZnVuY3Rpb24gXygpe2NvbnN0e19idWZmZXJJbmRleDokLF9pbmRleDpKLGxpbmU6b2UsY29sdW1uOmllLG9mZnNldDpsZX09aTtyZXR1cm57X2J1ZmZlckluZGV4OiQsX2luZGV4OkosbGluZTpvZSxjb2x1bW46aWUsb2Zmc2V0OmxlfX1mdW5jdGlvbiBUKCQpe2xbJC5saW5lXT0kLmNvbHVtbixVKCl9ZnVuY3Rpb24gQygpe2xldCAkO2Zvcig7aS5faW5kZXg8Yy5sZW5ndGg7KXtjb25zdCBKPWNbaS5faW5kZXhdO2lmKHR5cGVvZiBKPT0ic3RyaW5nIilmb3IoJD1pLl9pbmRleCxpLl9idWZmZXJJbmRleDwwJiYoaS5fYnVmZmVySW5kZXg9MCk7aS5faW5kZXg9PT0kJiZpLl9idWZmZXJJbmRleDxKLmxlbmd0aDspeChKLmNoYXJDb2RlQXQoaS5fYnVmZmVySW5kZXgpKTtlbHNlIHgoSil9fWZ1bmN0aW9uIHgoJCl7Yj1iKCQpfWZ1bmN0aW9uIE4oJCl7YmUoJCk/KGkubGluZSsrLGkuY29sdW1uPTEsaS5vZmZzZXQrPSQ9PT0tMz8yOjEsVSgpKTokIT09LTEmJihpLmNvbHVtbisrLGkub2Zmc2V0KyspLGkuX2J1ZmZlckluZGV4PDA/aS5faW5kZXgrKzooaS5fYnVmZmVySW5kZXgrKyxpLl9idWZmZXJJbmRleD09PWNbaS5faW5kZXhdLmxlbmd0aCYmKGkuX2J1ZmZlckluZGV4PS0xLGkuX2luZGV4KyspKSxtLnByZXZpb3VzPSR9ZnVuY3Rpb24gaygkLEope2NvbnN0IG9lPUp8fHt9O3JldHVybiBvZS50eXBlPSQsb2Uuc3RhcnQ9XygpLG0uZXZlbnRzLnB1c2goWyJlbnRlciIsb2UsbV0pLGQucHVzaChvZSksb2V9ZnVuY3Rpb24gTCgkKXtjb25zdCBKPWQucG9wKCk7cmV0dXJuIEouZW5kPV8oKSxtLmV2ZW50cy5wdXNoKFsiZXhpdCIsSixtXSksSn1mdW5jdGlvbiBGKCQsSil7WSgkLEouZnJvbSl9ZnVuY3Rpb24gUigkLEope0oucmVzdG9yZSgpfWZ1bmN0aW9uIE0oJCxKKXtyZXR1cm4gb2U7ZnVuY3Rpb24gb2UoaWUsbGUsRyl7bGV0IGVlLG5lLGZlLEk7cmV0dXJuIEFycmF5LmlzQXJyYXkoaWUpP1YoaWUpOiJ0b2tlbml6ZSJpbiBpZT9WKFtpZV0pOk8oaWUpO2Z1bmN0aW9uIE8oY2Upe3JldHVybiBoZTtmdW5jdGlvbiBoZShJZSl7Y29uc3Qgd2U9SWUhPT1udWxsJiZjZVtJZV0saXQ9SWUhPT1udWxsJiZjZS5udWxsLGZ0PVsuLi5BcnJheS5pc0FycmF5KHdlKT93ZTp3ZT9bd2VdOltdLC4uLkFycmF5LmlzQXJyYXkoaXQpP2l0Oml0P1tpdF06W11dO3JldHVybiBWKGZ0KShJZSl9fWZ1bmN0aW9uIFYoY2Upe3JldHVybiBlZT1jZSxuZT0wLGNlLmxlbmd0aD09PTA/Rzp3KGNlW25lXSl9ZnVuY3Rpb24gdyhjZSl7cmV0dXJuIGhlO2Z1bmN0aW9uIGhlKEllKXtyZXR1cm4gST16KCksZmU9Y2UsY2UucGFydGlhbHx8KG0uY3VycmVudENvbnN0cnVjdD1jZSksY2UubmFtZSYmbS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoY2UubmFtZSk/c2UoKTpjZS50b2tlbml6ZS5jYWxsKEo/T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG0pLEopOm0sZix0ZSxzZSkoSWUpfX1mdW5jdGlvbiB0ZShjZSl7cmV0dXJuICQoZmUsSSksbGV9ZnVuY3Rpb24gc2UoY2Upe3JldHVybiBJLnJlc3RvcmUoKSwrK25lPGVlLmxlbmd0aD93KGVlW25lXSk6R319fWZ1bmN0aW9uIFkoJCxKKXskLnJlc29sdmVBbGwmJiF1LmluY2x1ZGVzKCQpJiZ1LnB1c2goJCksJC5yZXNvbHZlJiZ0bihtLmV2ZW50cyxKLG0uZXZlbnRzLmxlbmd0aC1KLCQucmVzb2x2ZShtLmV2ZW50cy5zbGljZShKKSxtKSksJC5yZXNvbHZlVG8mJihtLmV2ZW50cz0kLnJlc29sdmVUbyhtLmV2ZW50cyxtKSl9ZnVuY3Rpb24geigpe2NvbnN0ICQ9XygpLEo9bS5wcmV2aW91cyxvZT1tLmN1cnJlbnRDb25zdHJ1Y3QsaWU9bS5ldmVudHMubGVuZ3RoLGxlPUFycmF5LmZyb20oZCk7cmV0dXJue2Zyb206aWUscmVzdG9yZTpHfTtmdW5jdGlvbiBHKCl7aT0kLG0ucHJldmlvdXM9SixtLmN1cnJlbnRDb25zdHJ1Y3Q9b2UsbS5ldmVudHMubGVuZ3RoPWllLGQ9bGUsVSgpfX1mdW5jdGlvbiBVKCl7aS5saW5lIGluIGwmJmkuY29sdW1uPDImJihpLmNvbHVtbj1sW2kubGluZV0saS5vZmZzZXQrPWxbaS5saW5lXS0xKX19ZnVuY3Rpb24gVFAoZSxuKXtjb25zdCBhPW4uc3RhcnQuX2luZGV4LGk9bi5zdGFydC5fYnVmZmVySW5kZXgsbD1uLmVuZC5faW5kZXgsdT1uLmVuZC5fYnVmZmVySW5kZXg7bGV0IGM7aWYoYT09PWwpYz1bZVthXS5zbGljZShpLHUpXTtlbHNle2lmKGM9ZS5zbGljZShhLGwpLGk+LTEpe2NvbnN0IGQ9Y1swXTt0eXBlb2YgZD09InN0cmluZyI/Y1swXT1kLnNsaWNlKGkpOmMuc2hpZnQoKX11PjAmJmMucHVzaChlW2xdLnNsaWNlKDAsdSkpfXJldHVybiBjfWZ1bmN0aW9uIHhQKGUsbil7bGV0IGE9LTE7Y29uc3QgaT1bXTtsZXQgbDtmb3IoOysrYTxlLmxlbmd0aDspe2NvbnN0IHU9ZVthXTtsZXQgYztpZih0eXBlb2YgdT09InN0cmluZyIpYz11O2Vsc2Ugc3dpdGNoKHUpe2Nhc2UtNTp7Yz0iXHIiO2JyZWFrfWNhc2UtNDp7Yz1gCmA7YnJlYWt9Y2FzZS0zOntjPWBccgpgO2JyZWFrfWNhc2UtMjp7Yz1uPyIgIjoiCSI7YnJlYWt9Y2FzZS0xOntpZighbiYmbCljb250aW51ZTtjPSIgIjticmVha31kZWZhdWx0OmM9U3RyaW5nLmZyb21DaGFyQ29kZSh1KX1sPXU9PT0tMixpLnB1c2goYyl9cmV0dXJuIGkuam9pbigiIil9ZnVuY3Rpb24gQVAoZSl7Y29uc3QgaT17Y29uc3RydWN0czpEayhbU1AsLi4uKGV8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6bChqeiksZGVmaW5lZDpbXSxkb2N1bWVudDpsKHF6KSxmbG93OmwoaVApLGxhenk6e30sc3RyaW5nOmwoc1ApLHRleHQ6bCh1UCl9O3JldHVybiBpO2Z1bmN0aW9uIGwodSl7cmV0dXJuIGM7ZnVuY3Rpb24gYyhkKXtyZXR1cm4gdlAoaSx1LGQpfX19ZnVuY3Rpb24gX1AoZSl7Zm9yKDshamsoZSk7KTtyZXR1cm4gZX1jb25zdCBpdz0vW1wwXHRcblxyXS9nO2Z1bmN0aW9uIFJQKCl7bGV0IGU9MSxuPSIiLGE9ITAsaTtyZXR1cm4gbDtmdW5jdGlvbiBsKHUsYyxkKXtjb25zdCBmPVtdO2xldCBtLGIsaCxTLEU7Zm9yKHU9bisodHlwZW9mIHU9PSJzdHJpbmciP3UudG9TdHJpbmcoKTpuZXcgVGV4dERlY29kZXIoY3x8dm9pZCAwKS5kZWNvZGUodSkpLGg9MCxuPSIiLGEmJih1LmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmaCsrLGE9dm9pZCAwKTtoPHUubGVuZ3RoOyl7aWYoaXcubGFzdEluZGV4PWgsbT1pdy5leGVjKHUpLFM9bSYmbS5pbmRleCE9PXZvaWQgMD9tLmluZGV4OnUubGVuZ3RoLEU9dS5jaGFyQ29kZUF0KFMpLCFtKXtuPXUuc2xpY2UoaCk7YnJlYWt9aWYoRT09PTEwJiZoPT09UyYmaSlmLnB1c2goLTMpLGk9dm9pZCAwO2Vsc2Ugc3dpdGNoKGkmJihmLnB1c2goLTUpLGk9dm9pZCAwKSxoPFMmJihmLnB1c2godS5zbGljZShoLFMpKSxlKz1TLWgpLEUpe2Nhc2UgMDp7Zi5wdXNoKDY1NTMzKSxlKys7YnJlYWt9Y2FzZSA5Ontmb3IoYj1NYXRoLmNlaWwoZS80KSo0LGYucHVzaCgtMik7ZSsrPGI7KWYucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7Zi5wdXNoKC00KSxlPTE7YnJlYWt9ZGVmYXVsdDppPSEwLGU9MX1oPVMrMX1yZXR1cm4gZCYmKGkmJmYucHVzaCgtNSksbiYmZi5wdXNoKG4pLGYucHVzaChudWxsKSksZn19Y29uc3QgTlA9L1xcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcZHsxLDd9fHhbXGRhLWZdezEsNn0pfFtcZGEtel17MSwzMX0pOy9naTtmdW5jdGlvbiB3UChlKXtyZXR1cm4gZS5yZXBsYWNlKE5QLGtQKX1mdW5jdGlvbiBrUChlLG4sYSl7aWYobilyZXR1cm4gbjtpZihhLmNoYXJDb2RlQXQoMCk9PT0zNSl7Y29uc3QgbD1hLmNoYXJDb2RlQXQoMSksdT1sPT09MTIwfHxsPT09ODg7cmV0dXJuIE1rKGEuc2xpY2UodT8yOjEpLHU/MTY6MTApfXJldHVybiB5YihhKXx8ZX1jb25zdCAkaz17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBDUChlLG4sYSl7cmV0dXJuIHR5cGVvZiBuIT0ic3RyaW5nIiYmKGE9bixuPXZvaWQgMCksSVAoYSkoX1AoQVAoYSkuZG9jdW1lbnQoKS53cml0ZShSUCgpKGUsbiwhMCkpKSl9ZnVuY3Rpb24gSVAoZSl7Y29uc3Qgbj17dHJhbnNmb3JtczpbXSxjYW5Db250YWluRW9sczpbImVtcGhhc2lzIiwiZnJhZ21lbnQiLCJoZWFkaW5nIiwicGFyYWdyYXBoIiwic3Ryb25nIl0sZW50ZXI6e2F1dG9saW5rOnUoVW4pLGF1dG9saW5rUHJvdG9jb2w6eixhdXRvbGlua0VtYWlsOnosYXR4SGVhZGluZzp1KF9uKSxibG9ja1F1b3RlOnUoaXQpLGNoYXJhY3RlckVzY2FwZTp6LGNoYXJhY3RlclJlZmVyZW5jZTp6LGNvZGVGZW5jZWQ6dShmdCksY29kZUZlbmNlZEZlbmNlSW5mbzpjLGNvZGVGZW5jZWRGZW5jZU1ldGE6Yyxjb2RlSW5kZW50ZWQ6dShmdCxjKSxjb2RlVGV4dDp1KE1uLGMpLGNvZGVUZXh0RGF0YTp6LGRhdGE6eixjb2RlRmxvd1ZhbHVlOnosZGVmaW5pdGlvbjp1KHJuKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6YyxkZWZpbml0aW9uTGFiZWxTdHJpbmc6YyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6YyxlbXBoYXNpczp1KFNuKSxoYXJkQnJlYWtFc2NhcGU6dSh3dCksaGFyZEJyZWFrVHJhaWxpbmc6dSh3dCksaHRtbEZsb3c6dShNcixjKSxodG1sRmxvd0RhdGE6eixodG1sVGV4dDp1KE1yLGMpLGh0bWxUZXh0RGF0YTp6LGltYWdlOnUoYW4pLGxhYmVsOmMsbGluazp1KFVuKSxsaXN0SXRlbTp1KEZuKSxsaXN0SXRlbVZhbHVlOlMsbGlzdE9yZGVyZWQ6dShPdCxoKSxsaXN0VW5vcmRlcmVkOnUoT3QpLHBhcmFncmFwaDp1KFJuKSxyZWZlcmVuY2U6dyxyZWZlcmVuY2VTdHJpbmc6YyxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOmMscmVzb3VyY2VUaXRsZVN0cmluZzpjLHNldGV4dEhlYWRpbmc6dShfbiksc3Ryb25nOnUoVXIpLHRoZW1hdGljQnJlYWs6dShodCl9LGV4aXQ6e2F0eEhlYWRpbmc6ZigpLGF0eEhlYWRpbmdTZXF1ZW5jZTpGLGF1dG9saW5rOmYoKSxhdXRvbGlua0VtYWlsOndlLGF1dG9saW5rUHJvdG9jb2w6SWUsYmxvY2tRdW90ZTpmKCksY2hhcmFjdGVyRXNjYXBlVmFsdWU6VSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpzZSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOnNlLGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOmNlLGNoYXJhY3RlclJlZmVyZW5jZTpoZSxjb2RlRmVuY2VkOmYoQyksY29kZUZlbmNlZEZlbmNlOlQsY29kZUZlbmNlZEZlbmNlSW5mbzpFLGNvZGVGZW5jZWRGZW5jZU1ldGE6Xyxjb2RlRmxvd1ZhbHVlOlUsY29kZUluZGVudGVkOmYoeCksY29kZVRleHQ6ZihsZSksY29kZVRleHREYXRhOlUsZGF0YTpVLGRlZmluaXRpb246ZigpLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpMLGRlZmluaXRpb25MYWJlbFN0cmluZzpOLGRlZmluaXRpb25UaXRsZVN0cmluZzprLGVtcGhhc2lzOmYoKSxoYXJkQnJlYWtFc2NhcGU6ZihKKSxoYXJkQnJlYWtUcmFpbGluZzpmKEopLGh0bWxGbG93OmYob2UpLGh0bWxGbG93RGF0YTpVLGh0bWxUZXh0OmYoaWUpLGh0bWxUZXh0RGF0YTpVLGltYWdlOmYoZWUpLGxhYmVsOmZlLGxhYmVsVGV4dDpuZSxsaW5lRW5kaW5nOiQsbGluazpmKEcpLGxpc3RJdGVtOmYoKSxsaXN0T3JkZXJlZDpmKCksbGlzdFVub3JkZXJlZDpmKCkscGFyYWdyYXBoOmYoKSxyZWZlcmVuY2VTdHJpbmc6dGUscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpJLHJlc291cmNlVGl0bGVTdHJpbmc6TyxyZXNvdXJjZTpWLHNldGV4dEhlYWRpbmc6ZihZKSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOk0sc2V0ZXh0SGVhZGluZ1RleHQ6UixzdHJvbmc6ZigpLHRoZW1hdGljQnJlYWs6ZigpfX07VmsobiwoZXx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2NvbnN0IGE9e307cmV0dXJuIGk7ZnVuY3Rpb24gaShXKXtsZXQgcmU9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfTtjb25zdCBkZT17c3RhY2s6W3JlXSx0b2tlblN0YWNrOltdLGNvbmZpZzpuLGVudGVyOmQsZXhpdDptLGJ1ZmZlcjpjLHJlc3VtZTpiLGRhdGE6YX0sRWU9W107bGV0IE9lPS0xO2Zvcig7KytPZTxXLmxlbmd0aDspaWYoV1tPZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fFdbT2VdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpaWYoV1tPZV1bMF09PT0iZW50ZXIiKUVlLnB1c2goT2UpO2Vsc2V7Y29uc3QgYnQ9RWUucG9wKCk7T2U9bChXLGJ0LE9lKX1mb3IoT2U9LTE7KytPZTxXLmxlbmd0aDspe2NvbnN0IGJ0PW5bV1tPZV1bMF1dOyRrLmNhbGwoYnQsV1tPZV1bMV0udHlwZSkmJmJ0W1dbT2VdWzFdLnR5cGVdLmNhbGwoT2JqZWN0LmFzc2lnbih7c2xpY2VTZXJpYWxpemU6V1tPZV1bMl0uc2xpY2VTZXJpYWxpemV9LGRlKSxXW09lXVsxXSl9aWYoZGUudG9rZW5TdGFjay5sZW5ndGg+MCl7Y29uc3QgYnQ9ZGUudG9rZW5TdGFja1tkZS50b2tlblN0YWNrLmxlbmd0aC0xXTsoYnRbMV18fG93KS5jYWxsKGRlLHZvaWQgMCxidFswXSl9Zm9yKHJlLnBvc2l0aW9uPXtzdGFydDprcihXLmxlbmd0aD4wP1dbMF1bMV0uc3RhcnQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pLGVuZDprcihXLmxlbmd0aD4wP1dbVy5sZW5ndGgtMl1bMV0uZW5kOntsaW5lOjEsY29sdW1uOjEsb2Zmc2V0OjB9KX0sT2U9LTE7KytPZTxuLnRyYW5zZm9ybXMubGVuZ3RoOylyZT1uLnRyYW5zZm9ybXNbT2VdKHJlKXx8cmU7cmV0dXJuIHJlfWZ1bmN0aW9uIGwoVyxyZSxkZSl7bGV0IEVlPXJlLTEsT2U9LTEsYnQ9ITEseXQsbnQsSGUsWGU7Zm9yKDsrK0VlPD1kZTspe2NvbnN0IEJlPVdbRWVdO3N3aXRjaChCZVsxXS50eXBlKXtjYXNlImxpc3RVbm9yZGVyZWQiOmNhc2UibGlzdE9yZGVyZWQiOmNhc2UiYmxvY2tRdW90ZSI6e0JlWzBdPT09ImVudGVyIj9PZSsrOk9lLS0sWGU9dm9pZCAwO2JyZWFrfWNhc2UibGluZUVuZGluZ0JsYW5rIjp7QmVbMF09PT0iZW50ZXIiJiYoeXQmJiFYZSYmIU9lJiYhSGUmJihIZT1FZSksWGU9dm9pZCAwKTticmVha31jYXNlImxpbmVQcmVmaXgiOmNhc2UibGlzdEl0ZW1WYWx1ZSI6Y2FzZSJsaXN0SXRlbU1hcmtlciI6Y2FzZSJsaXN0SXRlbVByZWZpeCI6Y2FzZSJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiOmJyZWFrO2RlZmF1bHQ6WGU9dm9pZCAwfWlmKCFPZSYmQmVbMF09PT0iZW50ZXIiJiZCZVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4Inx8T2U9PT0tMSYmQmVbMF09PT0iZXhpdCImJihCZVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQifHxCZVsxXS50eXBlPT09Imxpc3RPcmRlcmVkIikpe2lmKHl0KXtsZXQgTHQ9RWU7Zm9yKG50PXZvaWQgMDtMdC0tOyl7Y29uc3QgQXQ9V1tMdF07aWYoQXRbMV0udHlwZT09PSJsaW5lRW5kaW5nInx8QXRbMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKXtpZihBdFswXT09PSJleGl0Iiljb250aW51ZTtudCYmKFdbbnRdWzFdLnR5cGU9ImxpbmVFbmRpbmdCbGFuayIsYnQ9ITApLEF0WzFdLnR5cGU9ImxpbmVFbmRpbmciLG50PUx0fWVsc2UgaWYoIShBdFsxXS50eXBlPT09ImxpbmVQcmVmaXgifHxBdFsxXS50eXBlPT09ImJsb2NrUXVvdGVQcmVmaXgifHxBdFsxXS50eXBlPT09ImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlInx8QXRbMV0udHlwZT09PSJibG9ja1F1b3RlTWFya2VyInx8QXRbMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCIpKWJyZWFrfUhlJiYoIW50fHxIZTxudCkmJih5dC5fc3ByZWFkPSEwKSx5dC5lbmQ9T2JqZWN0LmFzc2lnbih7fSxudD9XW250XVsxXS5zdGFydDpCZVsxXS5lbmQpLFcuc3BsaWNlKG50fHxFZSwwLFsiZXhpdCIseXQsQmVbMl1dKSxFZSsrLGRlKyt9aWYoQmVbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCIpe2NvbnN0IEx0PXt0eXBlOiJsaXN0SXRlbSIsX3NwcmVhZDohMSxzdGFydDpPYmplY3QuYXNzaWduKHt9LEJlWzFdLnN0YXJ0KSxlbmQ6dm9pZCAwfTt5dD1MdCxXLnNwbGljZShFZSwwLFsiZW50ZXIiLEx0LEJlWzJdXSksRWUrKyxkZSsrLEhlPXZvaWQgMCxYZT0hMH19fXJldHVybiBXW3JlXVsxXS5fc3ByZWFkPWJ0LGRlfWZ1bmN0aW9uIHUoVyxyZSl7cmV0dXJuIGRlO2Z1bmN0aW9uIGRlKEVlKXtkLmNhbGwodGhpcyxXKEVlKSxFZSkscmUmJnJlLmNhbGwodGhpcyxFZSl9fWZ1bmN0aW9uIGMoKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIGQoVyxyZSxkZSl7dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXS5jaGlsZHJlbi5wdXNoKFcpLHRoaXMuc3RhY2sucHVzaChXKSx0aGlzLnRva2VuU3RhY2sucHVzaChbcmUsZGV8fHZvaWQgMF0pLFcucG9zaXRpb249e3N0YXJ0OmtyKHJlLnN0YXJ0KSxlbmQ6dm9pZCAwfX1mdW5jdGlvbiBmKFcpe3JldHVybiByZTtmdW5jdGlvbiByZShkZSl7VyYmVy5jYWxsKHRoaXMsZGUpLG0uY2FsbCh0aGlzLGRlKX19ZnVuY3Rpb24gbShXLHJlKXtjb25zdCBkZT10aGlzLnN0YWNrLnBvcCgpLEVlPXRoaXMudG9rZW5TdGFjay5wb3AoKTtpZihFZSlFZVswXS50eXBlIT09Vy50eXBlJiYocmU/cmUuY2FsbCh0aGlzLFcsRWVbMF0pOihFZVsxXXx8b3cpLmNhbGwodGhpcyxXLEVlWzBdKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitXLnR5cGUrImAgKCIrdG8oe3N0YXJ0Olcuc3RhcnQsZW5kOlcuZW5kfSkrIik6IGl04oCZcyBub3Qgb3BlbiIpO2RlLnBvc2l0aW9uLmVuZD1rcihXLmVuZCl9ZnVuY3Rpb24gYigpe3JldHVybiBiYih0aGlzLnN0YWNrLnBvcCgpKX1mdW5jdGlvbiBoKCl7dGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZT0hMH1mdW5jdGlvbiBTKFcpe2lmKHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWUpe2NvbnN0IHJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07cmUuc3RhcnQ9TnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUoVyksMTApLHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWU9dm9pZCAwfX1mdW5jdGlvbiBFKCl7Y29uc3QgVz10aGlzLnJlc3VtZSgpLHJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmUubGFuZz1XfWZ1bmN0aW9uIF8oKXtjb25zdCBXPXRoaXMucmVzdW1lKCkscmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyZS5tZXRhPVd9ZnVuY3Rpb24gVCgpe3RoaXMuZGF0YS5mbG93Q29kZUluc2lkZXx8KHRoaXMuYnVmZmVyKCksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPSEwKX1mdW5jdGlvbiBDKCl7Y29uc3QgVz10aGlzLnJlc3VtZSgpLHJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmUudmFsdWU9Vy5yZXBsYWNlKC9eKFxyP1xufFxyKXwoXHI/XG58XHIpJC9nLCIiKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9dm9pZCAwfWZ1bmN0aW9uIHgoKXtjb25zdCBXPXRoaXMucmVzdW1lKCkscmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyZS52YWx1ZT1XLnJlcGxhY2UoLyhccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIE4oVyl7Y29uc3QgcmU9dGhpcy5yZXN1bWUoKSxkZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2RlLmxhYmVsPXJlLGRlLmlkZW50aWZpZXI9QW4odGhpcy5zbGljZVNlcmlhbGl6ZShXKSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBrKCl7Y29uc3QgVz10aGlzLnJlc3VtZSgpLHJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmUudGl0bGU9V31mdW5jdGlvbiBMKCl7Y29uc3QgVz10aGlzLnJlc3VtZSgpLHJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmUudXJsPVd9ZnVuY3Rpb24gRihXKXtjb25zdCByZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKCFyZS5kZXB0aCl7Y29uc3QgZGU9dGhpcy5zbGljZVNlcmlhbGl6ZShXKS5sZW5ndGg7cmUuZGVwdGg9ZGV9fWZ1bmN0aW9uIFIoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBNKFcpe2NvbnN0IHJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmUuZGVwdGg9dGhpcy5zbGljZVNlcmlhbGl6ZShXKS5jb2RlUG9pbnRBdCgwKT09PTYxPzE6Mn1mdW5jdGlvbiBZKCl7dGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmc9dm9pZCAwfWZ1bmN0aW9uIHooVyl7Y29uc3QgZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXS5jaGlsZHJlbjtsZXQgRWU9ZGVbZGUubGVuZ3RoLTFdOyghRWV8fEVlLnR5cGUhPT0idGV4dCIpJiYoRWU9UWUoKSxFZS5wb3NpdGlvbj17c3RhcnQ6a3IoVy5zdGFydCksZW5kOnZvaWQgMH0sZGUucHVzaChFZSkpLHRoaXMuc3RhY2sucHVzaChFZSl9ZnVuY3Rpb24gVShXKXtjb25zdCByZT10aGlzLnN0YWNrLnBvcCgpO3JlLnZhbHVlKz10aGlzLnNsaWNlU2VyaWFsaXplKFcpLHJlLnBvc2l0aW9uLmVuZD1rcihXLmVuZCl9ZnVuY3Rpb24gJChXKXtjb25zdCByZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5hdEhhcmRCcmVhayl7Y29uc3QgZGU9cmUuY2hpbGRyZW5bcmUuY2hpbGRyZW4ubGVuZ3RoLTFdO2RlLnBvc2l0aW9uLmVuZD1rcihXLmVuZCksdGhpcy5kYXRhLmF0SGFyZEJyZWFrPXZvaWQgMDtyZXR1cm59IXRoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nJiZuLmNhbkNvbnRhaW5Fb2xzLmluY2x1ZGVzKHJlLnR5cGUpJiYoei5jYWxsKHRoaXMsVyksVS5jYWxsKHRoaXMsVykpfWZ1bmN0aW9uIEooKXt0aGlzLmRhdGEuYXRIYXJkQnJlYWs9ITB9ZnVuY3Rpb24gb2UoKXtjb25zdCBXPXRoaXMucmVzdW1lKCkscmU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyZS52YWx1ZT1XfWZ1bmN0aW9uIGllKCl7Y29uc3QgVz10aGlzLnJlc3VtZSgpLHJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmUudmFsdWU9V31mdW5jdGlvbiBsZSgpe2NvbnN0IFc9dGhpcy5yZXN1bWUoKSxyZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3JlLnZhbHVlPVd9ZnVuY3Rpb24gRygpe2NvbnN0IFc9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2NvbnN0IHJlPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO1cudHlwZSs9IlJlZmVyZW5jZSIsVy5yZWZlcmVuY2VUeXBlPXJlLGRlbGV0ZSBXLnVybCxkZWxldGUgVy50aXRsZX1lbHNlIGRlbGV0ZSBXLmlkZW50aWZpZXIsZGVsZXRlIFcubGFiZWw7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9dm9pZCAwfWZ1bmN0aW9uIGVlKCl7Y29uc3QgVz10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7Y29uc3QgcmU9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7Vy50eXBlKz0iUmVmZXJlbmNlIixXLnJlZmVyZW5jZVR5cGU9cmUsZGVsZXRlIFcudXJsLGRlbGV0ZSBXLnRpdGxlfWVsc2UgZGVsZXRlIFcuaWRlbnRpZmllcixkZWxldGUgVy5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gbmUoVyl7Y29uc3QgcmU9dGhpcy5zbGljZVNlcmlhbGl6ZShXKSxkZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2RlLmxhYmVsPXdQKHJlKSxkZS5pZGVudGlmaWVyPUFuKHJlKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGZlKCl7Y29uc3QgVz10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLHJlPXRoaXMucmVzdW1lKCksZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2U9ITAsZGUudHlwZT09PSJsaW5rIil7Y29uc3QgRWU9Vy5jaGlsZHJlbjtkZS5jaGlsZHJlbj1FZX1lbHNlIGRlLmFsdD1yZX1mdW5jdGlvbiBJKCl7Y29uc3QgVz10aGlzLnJlc3VtZSgpLHJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmUudXJsPVd9ZnVuY3Rpb24gTygpe2NvbnN0IFc9dGhpcy5yZXN1bWUoKSxyZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3JlLnRpdGxlPVd9ZnVuY3Rpb24gVigpe3RoaXMuZGF0YS5pblJlZmVyZW5jZT12b2lkIDB9ZnVuY3Rpb24gdygpe3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJjb2xsYXBzZWQifWZ1bmN0aW9uIHRlKFcpe2NvbnN0IHJlPXRoaXMucmVzdW1lKCksZGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtkZS5sYWJlbD1yZSxkZS5pZGVudGlmaWVyPUFuKHRoaXMuc2xpY2VTZXJpYWxpemUoVykpLnRvTG93ZXJDYXNlKCksdGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImZ1bGwifWZ1bmN0aW9uIHNlKFcpe3RoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlPVcudHlwZX1mdW5jdGlvbiBjZShXKXtjb25zdCByZT10aGlzLnNsaWNlU2VyaWFsaXplKFcpLGRlPXRoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlO2xldCBFZTtkZT8oRWU9TWsocmUsZGU9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpLHRoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlPXZvaWQgMCk6RWU9eWIocmUpO2NvbnN0IE9lPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07T2UudmFsdWUrPUVlfWZ1bmN0aW9uIGhlKFcpe2NvbnN0IHJlPXRoaXMuc3RhY2sucG9wKCk7cmUucG9zaXRpb24uZW5kPWtyKFcuZW5kKX1mdW5jdGlvbiBJZShXKXtVLmNhbGwodGhpcyxXKTtjb25zdCByZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3JlLnVybD10aGlzLnNsaWNlU2VyaWFsaXplKFcpfWZ1bmN0aW9uIHdlKFcpe1UuY2FsbCh0aGlzLFcpO2NvbnN0IHJlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmUudXJsPSJtYWlsdG86Iit0aGlzLnNsaWNlU2VyaWFsaXplKFcpfWZ1bmN0aW9uIGl0KCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBmdCgpe3JldHVybnt0eXBlOiJjb2RlIixsYW5nOm51bGwsbWV0YTpudWxsLHZhbHVlOiIifX1mdW5jdGlvbiBNbigpe3JldHVybnt0eXBlOiJpbmxpbmVDb2RlIix2YWx1ZToiIn19ZnVuY3Rpb24gcm4oKXtyZXR1cm57dHlwZToiZGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDpudWxsLHRpdGxlOm51bGwsdXJsOiIifX1mdW5jdGlvbiBTbigpe3JldHVybnt0eXBlOiJlbXBoYXNpcyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIF9uKCl7cmV0dXJue3R5cGU6ImhlYWRpbmciLGRlcHRoOjAsY2hpbGRyZW46W119fWZ1bmN0aW9uIHd0KCl7cmV0dXJue3R5cGU6ImJyZWFrIn19ZnVuY3Rpb24gTXIoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIGFuKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gVW4oKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIE90KFcpe3JldHVybnt0eXBlOiJsaXN0IixvcmRlcmVkOlcudHlwZT09PSJsaXN0T3JkZXJlZCIsc3RhcnQ6bnVsbCxzcHJlYWQ6Vy5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBGbihXKXtyZXR1cm57dHlwZToibGlzdEl0ZW0iLHNwcmVhZDpXLl9zcHJlYWQsY2hlY2tlZDpudWxsLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBSbigpe3JldHVybnt0eXBlOiJwYXJhZ3JhcGgiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBVcigpe3JldHVybnt0eXBlOiJzdHJvbmciLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBRZSgpe3JldHVybnt0eXBlOiJ0ZXh0Iix2YWx1ZToiIn19ZnVuY3Rpb24gaHQoKXtyZXR1cm57dHlwZToidGhlbWF0aWNCcmVhayJ9fX1mdW5jdGlvbiBrcihlKXtyZXR1cm57bGluZTplLmxpbmUsY29sdW1uOmUuY29sdW1uLG9mZnNldDplLm9mZnNldH19ZnVuY3Rpb24gVmsoZSxuKXtsZXQgYT0tMTtmb3IoOysrYTxuLmxlbmd0aDspe2NvbnN0IGk9blthXTtBcnJheS5pc0FycmF5KGkpP1ZrKGUsaSk6T1AoZSxpKX19ZnVuY3Rpb24gT1AoZSxuKXtsZXQgYTtmb3IoYSBpbiBuKWlmKCRrLmNhbGwobixhKSlzd2l0Y2goYSl7Y2FzZSJjYW5Db250YWluRW9scyI6e2NvbnN0IGk9blthXTtpJiZlW2FdLnB1c2goLi4uaSk7YnJlYWt9Y2FzZSJ0cmFuc2Zvcm1zIjp7Y29uc3QgaT1uW2FdO2kmJmVbYV0ucHVzaCguLi5pKTticmVha31jYXNlImVudGVyIjpjYXNlImV4aXQiOntjb25zdCBpPW5bYV07aSYmT2JqZWN0LmFzc2lnbihlW2FdLGkpO2JyZWFrfX19ZnVuY3Rpb24gb3coZSxuKXt0aHJvdyBlP25ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK2UudHlwZSsiYCAoIit0byh7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKTogYSBkaWZmZXJlbnQgdG9rZW4gKGAiK24udHlwZSsiYCwgIit0byh7c3RhcnQ6bi5zdGFydCxlbmQ6bi5lbmR9KSsiKSBpcyBvcGVuIik6bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAiK24udHlwZSsiYCwgIit0byh7c3RhcnQ6bi5zdGFydCxlbmQ6bi5lbmR9KSsiKSBpcyBzdGlsbCBvcGVuIil9ZnVuY3Rpb24gTFAoZSl7Y29uc3Qgbj10aGlzO24ucGFyc2VyPWE7ZnVuY3Rpb24gYShpKXtyZXR1cm4gQ1AoaSx7Li4ubi5kYXRhKCJzZXR0aW5ncyIpLC4uLmUsZXh0ZW5zaW9uczpuLmRhdGEoIm1pY3JvbWFya0V4dGVuc2lvbnMiKXx8W10sbWRhc3RFeHRlbnNpb25zOm4uZGF0YSgiZnJvbU1hcmtkb3duRXh0ZW5zaW9ucyIpfHxbXX0pfX1mdW5jdGlvbiBEUChlLG4pe2NvbnN0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImJsb2NrcXVvdGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKGUuYWxsKG4pLCEwKX07cmV0dXJuIGUucGF0Y2gobixhKSxlLmFwcGx5RGF0YShuLGEpfWZ1bmN0aW9uIE1QKGUsbil7Y29uc3QgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYnIiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119O3JldHVybiBlLnBhdGNoKG4sYSksW2UuYXBwbHlEYXRhKG4sYSkse3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfWZ1bmN0aW9uIFVQKGUsbil7Y29uc3QgYT1uLnZhbHVlP24udmFsdWUrYApgOiIiLGk9e307bi5sYW5nJiYoaS5jbGFzc05hbWU9WyJsYW5ndWFnZS0iK24ubGFuZ10pO2xldCBsPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJjb2RlIixwcm9wZXJ0aWVzOmksY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTphfV19O3JldHVybiBuLm1ldGEmJihsLmRhdGE9e21ldGE6bi5tZXRhfSksZS5wYXRjaChuLGwpLGw9ZS5hcHBseURhdGEobixsKSxsPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwcmUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W2xdfSxlLnBhdGNoKG4sbCksbH1mdW5jdGlvbiBGUChlLG4pe2NvbnN0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRlbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbChuKX07cmV0dXJuIGUucGF0Y2gobixhKSxlLmFwcGx5RGF0YShuLGEpfWZ1bmN0aW9uIEJQKGUsbil7Y29uc3QgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZW0iLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS5hbGwobil9O3JldHVybiBlLnBhdGNoKG4sYSksZS5hcHBseURhdGEobixhKX1mdW5jdGlvbiBqUChlLG4pe2NvbnN0IGE9dHlwZW9mIGUub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj9lLm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIsaT1TdHJpbmcobi5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGw9cmkoaS50b0xvd2VyQ2FzZSgpKSx1PWUuZm9vdG5vdGVPcmRlci5pbmRleE9mKGkpO2xldCBjLGQ9ZS5mb290bm90ZUNvdW50cy5nZXQoaSk7ZD09PXZvaWQgMD8oZD0wLGUuZm9vdG5vdGVPcmRlci5wdXNoKGkpLGM9ZS5mb290bm90ZU9yZGVyLmxlbmd0aCk6Yz11KzEsZCs9MSxlLmZvb3Rub3RlQ291bnRzLnNldChpLGQpO2NvbnN0IGY9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK2ErImZuLSIrbCxpZDphKyJmbnJlZi0iK2wrKGQ+MT8iLSIrZDoiIiksZGF0YUZvb3Rub3RlUmVmOiEwLGFyaWFEZXNjcmliZWRCeTpbImZvb3Rub3RlLWxhYmVsIl19LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKGMpfV19O2UucGF0Y2gobixmKTtjb25zdCBtPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdXAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W2ZdfTtyZXR1cm4gZS5wYXRjaChuLG0pLGUuYXBwbHlEYXRhKG4sbSl9ZnVuY3Rpb24gelAoZSxuKXtjb25zdCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJoIituLmRlcHRoLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS5hbGwobil9O3JldHVybiBlLnBhdGNoKG4sYSksZS5hcHBseURhdGEobixhKX1mdW5jdGlvbiBxUChlLG4pe2lmKGUub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2NvbnN0IGE9e3R5cGU6InJhdyIsdmFsdWU6bi52YWx1ZX07cmV0dXJuIGUucGF0Y2gobixhKSxlLmFwcGx5RGF0YShuLGEpfX1mdW5jdGlvbiBZayhlLG4pe2NvbnN0IGE9bi5yZWZlcmVuY2VUeXBlO2xldCBpPSJdIjtpZihhPT09ImNvbGxhcHNlZCI/aSs9IltdIjphPT09ImZ1bGwiJiYoaSs9IlsiKyhuLmxhYmVsfHxuLmlkZW50aWZpZXIpKyJdIiksbi50eXBlPT09ImltYWdlUmVmZXJlbmNlIilyZXR1cm5be3R5cGU6InRleHQiLHZhbHVlOiIhWyIrbi5hbHQraX1dO2NvbnN0IGw9ZS5hbGwobiksdT1sWzBdO3UmJnUudHlwZT09PSJ0ZXh0Ij91LnZhbHVlPSJbIit1LnZhbHVlOmwudW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IlsifSk7Y29uc3QgYz1sW2wubGVuZ3RoLTFdO3JldHVybiBjJiZjLnR5cGU9PT0idGV4dCI/Yy52YWx1ZSs9aTpsLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOml9KSxsfWZ1bmN0aW9uIFBQKGUsbil7Y29uc3QgYT1TdHJpbmcobi5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGk9ZS5kZWZpbml0aW9uQnlJZC5nZXQoYSk7aWYoIWkpcmV0dXJuIFlrKGUsbik7Y29uc3QgbD17c3JjOnJpKGkudXJsfHwiIiksYWx0Om4uYWx0fTtpLnRpdGxlIT09bnVsbCYmaS50aXRsZSE9PXZvaWQgMCYmKGwudGl0bGU9aS50aXRsZSk7Y29uc3QgdT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOmwsY2hpbGRyZW46W119O3JldHVybiBlLnBhdGNoKG4sdSksZS5hcHBseURhdGEobix1KX1mdW5jdGlvbiBHUChlLG4pe2NvbnN0IGE9e3NyYzpyaShuLnVybCl9O24uYWx0IT09bnVsbCYmbi5hbHQhPT12b2lkIDAmJihhLmFsdD1uLmFsdCksbi50aXRsZSE9PW51bGwmJm4udGl0bGUhPT12b2lkIDAmJihhLnRpdGxlPW4udGl0bGUpO2NvbnN0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczphLGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaChuLGkpLGUuYXBwbHlEYXRhKG4saSl9ZnVuY3Rpb24gSFAoZSxuKXtjb25zdCBhPXt0eXBlOiJ0ZXh0Iix2YWx1ZTpuLnZhbHVlLnJlcGxhY2UoL1xyP1xufFxyL2csIiAiKX07ZS5wYXRjaChuLGEpO2NvbnN0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W2FdfTtyZXR1cm4gZS5wYXRjaChuLGkpLGUuYXBwbHlEYXRhKG4saSl9ZnVuY3Rpb24gJFAoZSxuKXtjb25zdCBhPVN0cmluZyhuLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksaT1lLmRlZmluaXRpb25CeUlkLmdldChhKTtpZighaSlyZXR1cm4gWWsoZSxuKTtjb25zdCBsPXtocmVmOnJpKGkudXJsfHwiIil9O2kudGl0bGUhPT1udWxsJiZpLnRpdGxlIT09dm9pZCAwJiYobC50aXRsZT1pLnRpdGxlKTtjb25zdCB1PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOmwsY2hpbGRyZW46ZS5hbGwobil9O3JldHVybiBlLnBhdGNoKG4sdSksZS5hcHBseURhdGEobix1KX1mdW5jdGlvbiBWUChlLG4pe2NvbnN0IGE9e2hyZWY6cmkobi51cmwpfTtuLnRpdGxlIT09bnVsbCYmbi50aXRsZSE9PXZvaWQgMCYmKGEudGl0bGU9bi50aXRsZSk7Y29uc3QgaT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczphLGNoaWxkcmVuOmUuYWxsKG4pfTtyZXR1cm4gZS5wYXRjaChuLGkpLGUuYXBwbHlEYXRhKG4saSl9ZnVuY3Rpb24gWVAoZSxuLGEpe2NvbnN0IGk9ZS5hbGwobiksbD1hP0tQKGEpOktrKG4pLHU9e30sYz1bXTtpZih0eXBlb2Ygbi5jaGVja2VkPT0iYm9vbGVhbiIpe2NvbnN0IGI9aVswXTtsZXQgaDtiJiZiLnR5cGU9PT0iZWxlbWVudCImJmIudGFnTmFtZT09PSJwIj9oPWI6KGg9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119LGkudW5zaGlmdChoKSksaC5jaGlsZHJlbi5sZW5ndGg+MCYmaC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxoLmNoaWxkcmVuLnVuc2hpZnQoe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImlucHV0Iixwcm9wZXJ0aWVzOnt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDpuLmNoZWNrZWQsZGlzYWJsZWQ6ITB9LGNoaWxkcmVuOltdfSksdS5jbGFzc05hbWU9WyJ0YXNrLWxpc3QtaXRlbSJdfWxldCBkPS0xO2Zvcig7KytkPGkubGVuZ3RoOyl7Y29uc3QgYj1pW2RdOyhsfHxkIT09MHx8Yi50eXBlIT09ImVsZW1lbnQifHxiLnRhZ05hbWUhPT0icCIpJiZjLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLGIudHlwZT09PSJlbGVtZW50IiYmYi50YWdOYW1lPT09InAiJiYhbD9jLnB1c2goLi4uYi5jaGlsZHJlbik6Yy5wdXNoKGIpfWNvbnN0IGY9aVtpLmxlbmd0aC0xXTtmJiYobHx8Zi50eXBlIT09ImVsZW1lbnQifHxmLnRhZ05hbWUhPT0icCIpJiZjLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pO2NvbnN0IG09e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOnUsY2hpbGRyZW46Y307cmV0dXJuIGUucGF0Y2gobixtKSxlLmFwcGx5RGF0YShuLG0pfWZ1bmN0aW9uIEtQKGUpe2xldCBuPSExO2lmKGUudHlwZT09PSJsaXN0Iil7bj1lLnNwcmVhZHx8ITE7Y29uc3QgYT1lLmNoaWxkcmVuO2xldCBpPS0xO2Zvcig7IW4mJisraTxhLmxlbmd0aDspbj1LayhhW2ldKX1yZXR1cm4gbn1mdW5jdGlvbiBLayhlKXtjb25zdCBuPWUuc3ByZWFkO3JldHVybiBuPz9lLmNoaWxkcmVuLmxlbmd0aD4xfWZ1bmN0aW9uIFdQKGUsbil7Y29uc3QgYT17fSxpPWUuYWxsKG4pO2xldCBsPS0xO2Zvcih0eXBlb2Ygbi5zdGFydD09Im51bWJlciImJm4uc3RhcnQhPT0xJiYoYS5zdGFydD1uLnN0YXJ0KTsrK2w8aS5sZW5ndGg7KXtjb25zdCBjPWlbbF07aWYoYy50eXBlPT09ImVsZW1lbnQiJiZjLnRhZ05hbWU9PT0ibGkiJiZjLnByb3BlcnRpZXMmJkFycmF5LmlzQXJyYXkoYy5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkmJmMucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoInRhc2stbGlzdC1pdGVtIikpe2EuY2xhc3NOYW1lPVsiY29udGFpbnMtdGFzay1saXN0Il07YnJlYWt9fWNvbnN0IHU9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6bi5vcmRlcmVkPyJvbCI6InVsIixwcm9wZXJ0aWVzOmEsY2hpbGRyZW46ZS53cmFwKGksITApfTtyZXR1cm4gZS5wYXRjaChuLHUpLGUuYXBwbHlEYXRhKG4sdSl9ZnVuY3Rpb24gWFAoZSxuKXtjb25zdCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUuYWxsKG4pfTtyZXR1cm4gZS5wYXRjaChuLGEpLGUuYXBwbHlEYXRhKG4sYSl9ZnVuY3Rpb24gWlAoZSxuKXtjb25zdCBhPXt0eXBlOiJyb290IixjaGlsZHJlbjplLndyYXAoZS5hbGwobikpfTtyZXR1cm4gZS5wYXRjaChuLGEpLGUuYXBwbHlEYXRhKG4sYSl9ZnVuY3Rpb24gUVAoZSxuKXtjb25zdCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdHJvbmciLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS5hbGwobil9O3JldHVybiBlLnBhdGNoKG4sYSksZS5hcHBseURhdGEobixhKX1mdW5jdGlvbiBKUChlLG4pe2NvbnN0IGE9ZS5hbGwobiksaT1hLnNoaWZ0KCksbD1bXTtpZihpKXtjb25zdCBjPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0aGVhZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAoW2ldLCEwKX07ZS5wYXRjaChuLmNoaWxkcmVuWzBdLGMpLGwucHVzaChjKX1pZihhLmxlbmd0aD4wKXtjb25zdCBjPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0Ym9keSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAoYSwhMCl9LGQ9ZmIobi5jaGlsZHJlblsxXSksZj1OayhuLmNoaWxkcmVuW24uY2hpbGRyZW4ubGVuZ3RoLTFdKTtkJiZmJiYoYy5wb3NpdGlvbj17c3RhcnQ6ZCxlbmQ6Zn0pLGwucHVzaChjKX1jb25zdCB1PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0YWJsZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAobCwhMCl9O3JldHVybiBlLnBhdGNoKG4sdSksZS5hcHBseURhdGEobix1KX1mdW5jdGlvbiBlRyhlLG4sYSl7Y29uc3QgaT1hP2EuY2hpbGRyZW46dm9pZCAwLHU9KGk/aS5pbmRleE9mKG4pOjEpPT09MD8idGgiOiJ0ZCIsYz1hJiZhLnR5cGU9PT0idGFibGUiP2EuYWxpZ246dm9pZCAwLGQ9Yz9jLmxlbmd0aDpuLmNoaWxkcmVuLmxlbmd0aDtsZXQgZj0tMTtjb25zdCBtPVtdO2Zvcig7KytmPGQ7KXtjb25zdCBoPW4uY2hpbGRyZW5bZl0sUz17fSxFPWM/Y1tmXTp2b2lkIDA7RSYmKFMuYWxpZ249RSk7bGV0IF89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6dSxwcm9wZXJ0aWVzOlMsY2hpbGRyZW46W119O2gmJihfLmNoaWxkcmVuPWUuYWxsKGgpLGUucGF0Y2goaCxfKSxfPWUuYXBwbHlEYXRhKGgsXykpLG0ucHVzaChfKX1jb25zdCBiPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ciIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAobSwhMCl9O3JldHVybiBlLnBhdGNoKG4sYiksZS5hcHBseURhdGEobixiKX1mdW5jdGlvbiB0RyhlLG4pe2NvbnN0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUuYWxsKG4pfTtyZXR1cm4gZS5wYXRjaChuLGEpLGUuYXBwbHlEYXRhKG4sYSl9Y29uc3QgbHc9OSxzdz0zMjtmdW5jdGlvbiBuRyhlKXtjb25zdCBuPVN0cmluZyhlKSxhPS9ccj9cbnxcci9nO2xldCBpPWEuZXhlYyhuKSxsPTA7Y29uc3QgdT1bXTtmb3IoO2k7KXUucHVzaCh1dyhuLnNsaWNlKGwsaS5pbmRleCksbD4wLCEwKSxpWzBdKSxsPWkuaW5kZXgraVswXS5sZW5ndGgsaT1hLmV4ZWMobik7cmV0dXJuIHUucHVzaCh1dyhuLnNsaWNlKGwpLGw+MCwhMSkpLHUuam9pbigiIil9ZnVuY3Rpb24gdXcoZSxuLGEpe2xldCBpPTAsbD1lLmxlbmd0aDtpZihuKXtsZXQgdT1lLmNvZGVQb2ludEF0KGkpO2Zvcig7dT09PWx3fHx1PT09c3c7KWkrKyx1PWUuY29kZVBvaW50QXQoaSl9aWYoYSl7bGV0IHU9ZS5jb2RlUG9pbnRBdChsLTEpO2Zvcig7dT09PWx3fHx1PT09c3c7KWwtLSx1PWUuY29kZVBvaW50QXQobC0xKX1yZXR1cm4gbD5pP2Uuc2xpY2UoaSxsKToiIn1mdW5jdGlvbiByRyhlLG4pe2NvbnN0IGE9e3R5cGU6InRleHQiLHZhbHVlOm5HKFN0cmluZyhuLnZhbHVlKSl9O3JldHVybiBlLnBhdGNoKG4sYSksZS5hcHBseURhdGEobixhKX1mdW5jdGlvbiBhRyhlLG4pe2NvbnN0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImhyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaChuLGEpLGUuYXBwbHlEYXRhKG4sYSl9Y29uc3QgaUc9e2Jsb2NrcXVvdGU6RFAsYnJlYWs6TVAsY29kZTpVUCxkZWxldGU6RlAsZW1waGFzaXM6QlAsZm9vdG5vdGVSZWZlcmVuY2U6alAsaGVhZGluZzp6UCxodG1sOnFQLGltYWdlUmVmZXJlbmNlOlBQLGltYWdlOkdQLGlubGluZUNvZGU6SFAsbGlua1JlZmVyZW5jZTokUCxsaW5rOlZQLGxpc3RJdGVtOllQLGxpc3Q6V1AscGFyYWdyYXBoOlhQLHJvb3Q6WlAsc3Ryb25nOlFQLHRhYmxlOkpQLHRhYmxlQ2VsbDp0Ryx0YWJsZVJvdzplRyx0ZXh0OnJHLHRoZW1hdGljQnJlYWs6YUcsdG9tbDp3bCx5YW1sOndsLGRlZmluaXRpb246d2wsZm9vdG5vdGVEZWZpbml0aW9uOndsfTtmdW5jdGlvbiB3bCgpe31jb25zdCBXaz0tMSxabD0wLHJvPTEscWw9MixTYj0zLHZiPTQsVGI9NSx4Yj02LFhrPTcsWms9OCxjdz10eXBlb2Ygc2VsZj09Im9iamVjdCI/c2VsZjpnbG9iYWxUaGlzLG9HPShlLG4pPT57Y29uc3QgYT0obCx1KT0+KGUuc2V0KHUsbCksbCksaT1sPT57aWYoZS5oYXMobCkpcmV0dXJuIGUuZ2V0KGwpO2NvbnN0W3UsY109bltsXTtzd2l0Y2godSl7Y2FzZSBabDpjYXNlIFdrOnJldHVybiBhKGMsbCk7Y2FzZSBybzp7Y29uc3QgZD1hKFtdLGwpO2Zvcihjb25zdCBmIG9mIGMpZC5wdXNoKGkoZikpO3JldHVybiBkfWNhc2UgcWw6e2NvbnN0IGQ9YSh7fSxsKTtmb3IoY29uc3RbZixtXW9mIGMpZFtpKGYpXT1pKG0pO3JldHVybiBkfWNhc2UgU2I6cmV0dXJuIGEobmV3IERhdGUoYyksbCk7Y2FzZSB2Yjp7Y29uc3R7c291cmNlOmQsZmxhZ3M6Zn09YztyZXR1cm4gYShuZXcgUmVnRXhwKGQsZiksbCl9Y2FzZSBUYjp7Y29uc3QgZD1hKG5ldyBNYXAsbCk7Zm9yKGNvbnN0W2YsbV1vZiBjKWQuc2V0KGkoZiksaShtKSk7cmV0dXJuIGR9Y2FzZSB4Yjp7Y29uc3QgZD1hKG5ldyBTZXQsbCk7Zm9yKGNvbnN0IGYgb2YgYylkLmFkZChpKGYpKTtyZXR1cm4gZH1jYXNlIFhrOntjb25zdHtuYW1lOmQsbWVzc2FnZTpmfT1jO3JldHVybiBhKG5ldyBjd1tkXShmKSxsKX1jYXNlIFprOnJldHVybiBhKEJpZ0ludChjKSxsKTtjYXNlIkJpZ0ludCI6cmV0dXJuIGEoT2JqZWN0KEJpZ0ludChjKSksbCk7Y2FzZSJBcnJheUJ1ZmZlciI6cmV0dXJuIGEobmV3IFVpbnQ4QXJyYXkoYykuYnVmZmVyLGMpO2Nhc2UiRGF0YVZpZXciOntjb25zdHtidWZmZXI6ZH09bmV3IFVpbnQ4QXJyYXkoYyk7cmV0dXJuIGEobmV3IERhdGFWaWV3KGQpLGMpfX1yZXR1cm4gYShuZXcgY3dbdV0oYyksbCl9O3JldHVybiBpfSxkdz1lPT5vRyhuZXcgTWFwLGUpKDApLEthPSIiLHt0b1N0cmluZzpsR309e30se2tleXM6c0d9PU9iamVjdCxlbz1lPT57Y29uc3Qgbj10eXBlb2YgZTtpZihuIT09Im9iamVjdCJ8fCFlKXJldHVybltabCxuXTtjb25zdCBhPWxHLmNhbGwoZSkuc2xpY2UoOCwtMSk7c3dpdGNoKGEpe2Nhc2UiQXJyYXkiOnJldHVybltybyxLYV07Y2FzZSJPYmplY3QiOnJldHVybltxbCxLYV07Y2FzZSJEYXRlIjpyZXR1cm5bU2IsS2FdO2Nhc2UiUmVnRXhwIjpyZXR1cm5bdmIsS2FdO2Nhc2UiTWFwIjpyZXR1cm5bVGIsS2FdO2Nhc2UiU2V0IjpyZXR1cm5beGIsS2FdO2Nhc2UiRGF0YVZpZXciOnJldHVybltybyxhXX1yZXR1cm4gYS5pbmNsdWRlcygiQXJyYXkiKT9bcm8sYV06YS5pbmNsdWRlcygiRXJyb3IiKT9bWGssYV06W3FsLGFdfSxrbD0oW2Usbl0pPT5lPT09WmwmJihuPT09ImZ1bmN0aW9uInx8bj09PSJzeW1ib2wiKSx1Rz0oZSxuLGEsaSk9Pntjb25zdCBsPShjLGQpPT57Y29uc3QgZj1pLnB1c2goYyktMTtyZXR1cm4gYS5zZXQoZCxmKSxmfSx1PWM9PntpZihhLmhhcyhjKSlyZXR1cm4gYS5nZXQoYyk7bGV0W2QsZl09ZW8oYyk7c3dpdGNoKGQpe2Nhc2UgWmw6e2xldCBiPWM7c3dpdGNoKGYpe2Nhc2UiYmlnaW50IjpkPVprLGI9Yy50b1N0cmluZygpO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjppZihlKXRocm93IG5ldyBUeXBlRXJyb3IoInVuYWJsZSB0byBzZXJpYWxpemUgIitmKTtiPW51bGw7YnJlYWs7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBsKFtXa10sYyl9cmV0dXJuIGwoW2QsYl0sYyl9Y2FzZSBybzp7aWYoZil7bGV0IFM9YztyZXR1cm4gZj09PSJEYXRhVmlldyI/Uz1uZXcgVWludDhBcnJheShjLmJ1ZmZlcik6Zj09PSJBcnJheUJ1ZmZlciImJihTPW5ldyBVaW50OEFycmF5KGMpKSxsKFtmLFsuLi5TXV0sYyl9Y29uc3QgYj1bXSxoPWwoW2QsYl0sYyk7Zm9yKGNvbnN0IFMgb2YgYyliLnB1c2godShTKSk7cmV0dXJuIGh9Y2FzZSBxbDp7aWYoZilzd2l0Y2goZil7Y2FzZSJCaWdJbnQiOnJldHVybiBsKFtmLGMudG9TdHJpbmcoKV0sYyk7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOnJldHVybiBsKFtmLGMudmFsdWVPZigpXSxjKX1pZihuJiYidG9KU09OImluIGMpcmV0dXJuIHUoYy50b0pTT04oKSk7Y29uc3QgYj1bXSxoPWwoW2QsYl0sYyk7Zm9yKGNvbnN0IFMgb2Ygc0coYykpKGV8fCFrbChlbyhjW1NdKSkpJiZiLnB1c2goW3UoUyksdShjW1NdKV0pO3JldHVybiBofWNhc2UgU2I6cmV0dXJuIGwoW2QsYy50b0lTT1N0cmluZygpXSxjKTtjYXNlIHZiOntjb25zdHtzb3VyY2U6YixmbGFnczpofT1jO3JldHVybiBsKFtkLHtzb3VyY2U6YixmbGFnczpofV0sYyl9Y2FzZSBUYjp7Y29uc3QgYj1bXSxoPWwoW2QsYl0sYyk7Zm9yKGNvbnN0W1MsRV1vZiBjKShlfHwhKGtsKGVvKFMpKXx8a2woZW8oRSkpKSkmJmIucHVzaChbdShTKSx1KEUpXSk7cmV0dXJuIGh9Y2FzZSB4Yjp7Y29uc3QgYj1bXSxoPWwoW2QsYl0sYyk7Zm9yKGNvbnN0IFMgb2YgYykoZXx8IWtsKGVvKFMpKSkmJmIucHVzaCh1KFMpKTtyZXR1cm4gaH19Y29uc3R7bWVzc2FnZTptfT1jO3JldHVybiBsKFtkLHtuYW1lOmYsbWVzc2FnZTptfV0sYyl9O3JldHVybiB1fSxwdz0oZSx7anNvbjpuLGxvc3N5OmF9PXt9KT0+e2NvbnN0IGk9W107cmV0dXJuIHVHKCEobnx8YSksISFuLG5ldyBNYXAsaSkoZSksaX0sUGw9dHlwZW9mIHN0cnVjdHVyZWRDbG9uZT09ImZ1bmN0aW9uIj8oZSxuKT0+biYmKCJqc29uImluIG58fCJsb3NzeSJpbiBuKT9kdyhwdyhlLG4pKTpzdHJ1Y3R1cmVkQ2xvbmUoZSk6KGUsbik9PmR3KHB3KGUsbikpO2Z1bmN0aW9uIGNHKGUsbil7Y29uc3QgYT1be3R5cGU6InRleHQiLHZhbHVlOiLihqkifV07cmV0dXJuIG4+MSYmYS5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdXAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpTdHJpbmcobil9XX0pLGF9ZnVuY3Rpb24gZEcoZSxuKXtyZXR1cm4iQmFjayB0byByZWZlcmVuY2UgIisoZSsxKSsobj4xPyItIituOiIiKX1mdW5jdGlvbiBwRyhlKXtjb25zdCBuPXR5cGVvZiBlLm9wdGlvbnMuY2xvYmJlclByZWZpeD09InN0cmluZyI/ZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLGE9ZS5vcHRpb25zLmZvb3Rub3RlQmFja0NvbnRlbnR8fGNHLGk9ZS5vcHRpb25zLmZvb3Rub3RlQmFja0xhYmVsfHxkRyxsPWUub3B0aW9ucy5mb290bm90ZUxhYmVsfHwiRm9vdG5vdGVzIix1PWUub3B0aW9ucy5mb290bm90ZUxhYmVsVGFnTmFtZXx8ImgyIixjPWUub3B0aW9ucy5mb290bm90ZUxhYmVsUHJvcGVydGllc3x8e2NsYXNzTmFtZTpbInNyLW9ubHkiXX0sZD1bXTtsZXQgZj0tMTtmb3IoOysrZjxlLmZvb3Rub3RlT3JkZXIubGVuZ3RoOyl7Y29uc3QgbT1lLmZvb3Rub3RlQnlJZC5nZXQoZS5mb290bm90ZU9yZGVyW2ZdKTtpZighbSljb250aW51ZTtjb25zdCBiPWUuYWxsKG0pLGg9U3RyaW5nKG0uaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxTPXJpKGgudG9Mb3dlckNhc2UoKSk7bGV0IEU9MDtjb25zdCBfPVtdLFQ9ZS5mb290bm90ZUNvdW50cy5nZXQoaCk7Zm9yKDtUIT09dm9pZCAwJiYrK0U8PVQ7KXtfLmxlbmd0aD4wJiZfLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pO2xldCBOPXR5cGVvZiBhPT0ic3RyaW5nIj9hOmEoZixFKTt0eXBlb2YgTj09InN0cmluZyImJihOPXt0eXBlOiJ0ZXh0Iix2YWx1ZTpOfSksXy5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIituKyJmbnJlZi0iK1MrKEU+MT8iLSIrRToiIiksZGF0YUZvb3Rub3RlQmFja3JlZjoiIixhcmlhTGFiZWw6dHlwZW9mIGk9PSJzdHJpbmciP2k6aShmLEUpLGNsYXNzTmFtZTpbImRhdGEtZm9vdG5vdGUtYmFja3JlZiJdfSxjaGlsZHJlbjpBcnJheS5pc0FycmF5KE4pP046W05dfSl9Y29uc3QgQz1iW2IubGVuZ3RoLTFdO2lmKEMmJkMudHlwZT09PSJlbGVtZW50IiYmQy50YWdOYW1lPT09InAiKXtjb25zdCBOPUMuY2hpbGRyZW5bQy5jaGlsZHJlbi5sZW5ndGgtMV07TiYmTi50eXBlPT09InRleHQiP04udmFsdWUrPSIgIjpDLmNoaWxkcmVuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pLEMuY2hpbGRyZW4ucHVzaCguLi5fKX1lbHNlIGIucHVzaCguLi5fKTtjb25zdCB4PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczp7aWQ6bisiZm4tIitTfSxjaGlsZHJlbjplLndyYXAoYiwhMCl9O2UucGF0Y2gobSx4KSxkLnB1c2goeCl9aWYoZC5sZW5ndGghPT0wKXJldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzZWN0aW9uIixwcm9wZXJ0aWVzOntkYXRhRm9vdG5vdGVzOiEwLGNsYXNzTmFtZTpbImZvb3Rub3RlcyJdfSxjaGlsZHJlbjpbe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6dSxwcm9wZXJ0aWVzOnsuLi5QbChjKSxpZDoiZm9vdG5vdGUtbGFiZWwifSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmx9XX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH0se3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6Im9sIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChkLCEwKX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfX1jb25zdCBRbD0oZnVuY3Rpb24oZSl7aWYoZT09bnVsbClyZXR1cm4gaEc7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpcmV0dXJuIEpsKGUpO2lmKHR5cGVvZiBlPT0ib2JqZWN0IilyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9mRyhlKTpnRyhlKTtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIG1HKGUpO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgZnVuY3Rpb24sIHN0cmluZywgb3Igb2JqZWN0IGFzIHRlc3QiKX0pO2Z1bmN0aW9uIGZHKGUpe2NvbnN0IG49W107bGV0IGE9LTE7Zm9yKDsrK2E8ZS5sZW5ndGg7KW5bYV09UWwoZVthXSk7cmV0dXJuIEpsKGkpO2Z1bmN0aW9uIGkoLi4ubCl7bGV0IHU9LTE7Zm9yKDsrK3U8bi5sZW5ndGg7KWlmKG5bdV0uYXBwbHkodGhpcyxsKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gZ0coZSl7Y29uc3Qgbj1lO3JldHVybiBKbChhKTtmdW5jdGlvbiBhKGkpe2NvbnN0IGw9aTtsZXQgdTtmb3IodSBpbiBlKWlmKGxbdV0hPT1uW3VdKXJldHVybiExO3JldHVybiEwfX1mdW5jdGlvbiBtRyhlKXtyZXR1cm4gSmwobik7ZnVuY3Rpb24gbihhKXtyZXR1cm4gYSYmYS50eXBlPT09ZX19ZnVuY3Rpb24gSmwoZSl7cmV0dXJuIG47ZnVuY3Rpb24gbihhLGksbCl7cmV0dXJuISEoYkcoYSkmJmUuY2FsbCh0aGlzLGEsdHlwZW9mIGk9PSJudW1iZXIiP2k6dm9pZCAwLGx8fHZvaWQgMCkpfX1mdW5jdGlvbiBoRygpe3JldHVybiEwfWZ1bmN0aW9uIGJHKGUpe3JldHVybiBlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiJiYidHlwZSJpbiBlfWNvbnN0IFFrPVtdLHlHPSEwLHpoPSExLEVHPSJza2lwIjtmdW5jdGlvbiBKayhlLG4sYSxpKXtsZXQgbDt0eXBlb2Ygbj09ImZ1bmN0aW9uIiYmdHlwZW9mIGEhPSJmdW5jdGlvbiI/KGk9YSxhPW4pOmw9bjtjb25zdCB1PVFsKGwpLGM9aT8tMToxO2QoZSx2b2lkIDAsW10pKCk7ZnVuY3Rpb24gZChmLG0sYil7Y29uc3QgaD1mJiZ0eXBlb2YgZj09Im9iamVjdCI/Zjp7fTtpZih0eXBlb2YgaC50eXBlPT0ic3RyaW5nIil7Y29uc3QgRT10eXBlb2YgaC50YWdOYW1lPT0ic3RyaW5nIj9oLnRhZ05hbWU6dHlwZW9mIGgubmFtZT09InN0cmluZyI/aC5uYW1lOnZvaWQgMDtPYmplY3QuZGVmaW5lUHJvcGVydHkoUywibmFtZSIse3ZhbHVlOiJub2RlICgiKyhmLnR5cGUrKEU/IjwiK0UrIj4iOiIiKSkrIikifSl9cmV0dXJuIFM7ZnVuY3Rpb24gUygpe2xldCBFPVFrLF8sVCxDO2lmKCghbnx8dShmLG0sYltiLmxlbmd0aC0xXXx8dm9pZCAwKSkmJihFPVNHKGEoZixiKSksRVswXT09PXpoKSlyZXR1cm4gRTtpZigiY2hpbGRyZW4iaW4gZiYmZi5jaGlsZHJlbil7Y29uc3QgeD1mO2lmKHguY2hpbGRyZW4mJkVbMF0hPT1FRylmb3IoVD0oaT94LmNoaWxkcmVuLmxlbmd0aDotMSkrYyxDPWIuY29uY2F0KHgpO1Q+LTEmJlQ8eC5jaGlsZHJlbi5sZW5ndGg7KXtjb25zdCBOPXguY2hpbGRyZW5bVF07aWYoXz1kKE4sVCxDKSgpLF9bMF09PT16aClyZXR1cm4gXztUPXR5cGVvZiBfWzFdPT0ibnVtYmVyIj9fWzFdOlQrY319cmV0dXJuIEV9fX1mdW5jdGlvbiBTRyhlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOnR5cGVvZiBlPT0ibnVtYmVyIj9beUcsZV06ZT09bnVsbD9RazpbZV19ZnVuY3Rpb24gQWIoZSxuLGEsaSl7bGV0IGwsdSxjO3R5cGVvZiBuPT0iZnVuY3Rpb24iJiZ0eXBlb2YgYSE9ImZ1bmN0aW9uIj8odT12b2lkIDAsYz1uLGw9YSk6KHU9bixjPWEsbD1pKSxKayhlLHUsZCxsKTtmdW5jdGlvbiBkKGYsbSl7Y29uc3QgYj1tW20ubGVuZ3RoLTFdLGg9Yj9iLmNoaWxkcmVuLmluZGV4T2YoZik6dm9pZCAwO3JldHVybiBjKGYsaCxiKX19Y29uc3QgcWg9e30uaGFzT3duUHJvcGVydHksdkc9e307ZnVuY3Rpb24gVEcoZSxuKXtjb25zdCBhPW58fHZHLGk9bmV3IE1hcCxsPW5ldyBNYXAsdT1uZXcgTWFwLGM9ey4uLmlHLC4uLmEuaGFuZGxlcnN9LGQ9e2FsbDptLGFwcGx5RGF0YTpBRyxkZWZpbml0aW9uQnlJZDppLGZvb3Rub3RlQnlJZDpsLGZvb3Rub3RlQ291bnRzOnUsZm9vdG5vdGVPcmRlcjpbXSxoYW5kbGVyczpjLG9uZTpmLG9wdGlvbnM6YSxwYXRjaDp4Ryx3cmFwOlJHfTtyZXR1cm4gQWIoZSxmdW5jdGlvbihiKXtpZihiLnR5cGU9PT0iZGVmaW5pdGlvbiJ8fGIudHlwZT09PSJmb290bm90ZURlZmluaXRpb24iKXtjb25zdCBoPWIudHlwZT09PSJkZWZpbml0aW9uIj9pOmwsUz1TdHJpbmcoYi5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpO2guaGFzKFMpfHxoLnNldChTLGIpfX0pLGQ7ZnVuY3Rpb24gZihiLGgpe2NvbnN0IFM9Yi50eXBlLEU9ZC5oYW5kbGVyc1tTXTtpZihxaC5jYWxsKGQuaGFuZGxlcnMsUykmJkUpcmV0dXJuIEUoZCxiLGgpO2lmKGQub3B0aW9ucy5wYXNzVGhyb3VnaCYmZC5vcHRpb25zLnBhc3NUaHJvdWdoLmluY2x1ZGVzKFMpKXtpZigiY2hpbGRyZW4iaW4gYil7Y29uc3R7Y2hpbGRyZW46VCwuLi5DfT1iLHg9UGwoQyk7cmV0dXJuIHguY2hpbGRyZW49ZC5hbGwoYikseH1yZXR1cm4gUGwoYil9cmV0dXJuKGQub3B0aW9ucy51bmtub3duSGFuZGxlcnx8X0cpKGQsYixoKX1mdW5jdGlvbiBtKGIpe2NvbnN0IGg9W107aWYoImNoaWxkcmVuImluIGIpe2NvbnN0IFM9Yi5jaGlsZHJlbjtsZXQgRT0tMTtmb3IoOysrRTxTLmxlbmd0aDspe2NvbnN0IF89ZC5vbmUoU1tFXSxiKTtpZihfKXtpZihFJiZTW0UtMV0udHlwZT09PSJicmVhayImJighQXJyYXkuaXNBcnJheShfKSYmXy50eXBlPT09InRleHQiJiYoXy52YWx1ZT1mdyhfLnZhbHVlKSksIUFycmF5LmlzQXJyYXkoXykmJl8udHlwZT09PSJlbGVtZW50Iikpe2NvbnN0IFQ9Xy5jaGlsZHJlblswXTtUJiZULnR5cGU9PT0idGV4dCImJihULnZhbHVlPWZ3KFQudmFsdWUpKX1BcnJheS5pc0FycmF5KF8pP2gucHVzaCguLi5fKTpoLnB1c2goXyl9fX1yZXR1cm4gaH19ZnVuY3Rpb24geEcoZSxuKXtlLnBvc2l0aW9uJiYobi5wb3NpdGlvbj1keihlKSl9ZnVuY3Rpb24gQUcoZSxuKXtsZXQgYT1uO2lmKGUmJmUuZGF0YSl7Y29uc3QgaT1lLmRhdGEuaE5hbWUsbD1lLmRhdGEuaENoaWxkcmVuLHU9ZS5kYXRhLmhQcm9wZXJ0aWVzO2lmKHR5cGVvZiBpPT0ic3RyaW5nIilpZihhLnR5cGU9PT0iZWxlbWVudCIpYS50YWdOYW1lPWk7ZWxzZXtjb25zdCBjPSJjaGlsZHJlbiJpbiBhP2EuY2hpbGRyZW46W2FdO2E9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6aSxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmN9fWEudHlwZT09PSJlbGVtZW50IiYmdSYmT2JqZWN0LmFzc2lnbihhLnByb3BlcnRpZXMsUGwodSkpLCJjaGlsZHJlbiJpbiBhJiZhLmNoaWxkcmVuJiZsIT09bnVsbCYmbCE9PXZvaWQgMCYmKGEuY2hpbGRyZW49bCl9cmV0dXJuIGF9ZnVuY3Rpb24gX0coZSxuKXtjb25zdCBhPW4uZGF0YXx8e30saT0idmFsdWUiaW4gbiYmIShxaC5jYWxsKGEsImhQcm9wZXJ0aWVzIil8fHFoLmNhbGwoYSwiaENoaWxkcmVuIikpP3t0eXBlOiJ0ZXh0Iix2YWx1ZTpuLnZhbHVlfTp7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGl2Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUuYWxsKG4pfTtyZXR1cm4gZS5wYXRjaChuLGkpLGUuYXBwbHlEYXRhKG4saSl9ZnVuY3Rpb24gUkcoZSxuKXtjb25zdCBhPVtdO2xldCBpPS0xO2ZvcihuJiZhLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pOysraTxlLmxlbmd0aDspaSYmYS5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxhLnB1c2goZVtpXSk7cmV0dXJuIG4mJmUubGVuZ3RoPjAmJmEucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksYX1mdW5jdGlvbiBmdyhlKXtsZXQgbj0wLGE9ZS5jaGFyQ29kZUF0KG4pO2Zvcig7YT09PTl8fGE9PT0zMjspbisrLGE9ZS5jaGFyQ29kZUF0KG4pO3JldHVybiBlLnNsaWNlKG4pfWZ1bmN0aW9uIGd3KGUsbil7Y29uc3QgYT1URyhlLG4pLGk9YS5vbmUoZSx2b2lkIDApLGw9cEcoYSksdT1BcnJheS5pc0FycmF5KGkpP3t0eXBlOiJyb290IixjaGlsZHJlbjppfTppfHx7dHlwZToicm9vdCIsY2hpbGRyZW46W119O3JldHVybiBsJiZ1LmNoaWxkcmVuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0sbCksdX1mdW5jdGlvbiBORyhlLG4pe3JldHVybiBlJiYicnVuImluIGU/YXN5bmMgZnVuY3Rpb24oYSxpKXtjb25zdCBsPWd3KGEse2ZpbGU6aSwuLi5ufSk7YXdhaXQgZS5ydW4obCxpKX06ZnVuY3Rpb24oYSxpKXtyZXR1cm4gZ3coYSx7ZmlsZTppLC4uLmV8fG59KX19ZnVuY3Rpb24gbXcoZSl7aWYoZSl0aHJvdyBlfXZhciB1aCxodztmdW5jdGlvbiB3Rygpe2lmKGh3KXJldHVybiB1aDtodz0xO3ZhciBlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGE9T2JqZWN0LmRlZmluZVByb3BlcnR5LGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixsPWZ1bmN0aW9uKG0pe3JldHVybiB0eXBlb2YgQXJyYXkuaXNBcnJheT09ImZ1bmN0aW9uIj9BcnJheS5pc0FycmF5KG0pOm4uY2FsbChtKT09PSJbb2JqZWN0IEFycmF5XSJ9LHU9ZnVuY3Rpb24obSl7aWYoIW18fG4uY2FsbChtKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO3ZhciBiPWUuY2FsbChtLCJjb25zdHJ1Y3RvciIpLGg9bS5jb25zdHJ1Y3RvciYmbS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUmJmUuY2FsbChtLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpO2lmKG0uY29uc3RydWN0b3ImJiFiJiYhaClyZXR1cm4hMTt2YXIgUztmb3IoUyBpbiBtKTtyZXR1cm4gdHlwZW9mIFM+InUifHxlLmNhbGwobSxTKX0sYz1mdW5jdGlvbihtLGIpe2EmJmIubmFtZT09PSJfX3Byb3RvX18iP2EobSxiLm5hbWUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHZhbHVlOmIubmV3VmFsdWUsd3JpdGFibGU6ITB9KTptW2IubmFtZV09Yi5uZXdWYWx1ZX0sZD1mdW5jdGlvbihtLGIpe2lmKGI9PT0iX19wcm90b19fIilpZihlLmNhbGwobSxiKSl7aWYoaSlyZXR1cm4gaShtLGIpLnZhbHVlfWVsc2UgcmV0dXJuO3JldHVybiBtW2JdfTtyZXR1cm4gdWg9ZnVuY3Rpb24gZigpe3ZhciBtLGIsaCxTLEUsXyxUPWFyZ3VtZW50c1swXSxDPTEseD1hcmd1bWVudHMubGVuZ3RoLE49ITE7Zm9yKHR5cGVvZiBUPT0iYm9vbGVhbiImJihOPVQsVD1hcmd1bWVudHNbMV18fHt9LEM9MiksKFQ9PW51bGx8fHR5cGVvZiBUIT0ib2JqZWN0IiYmdHlwZW9mIFQhPSJmdW5jdGlvbiIpJiYoVD17fSk7Qzx4OysrQylpZihtPWFyZ3VtZW50c1tDXSxtIT1udWxsKWZvcihiIGluIG0paD1kKFQsYiksUz1kKG0sYiksVCE9PVMmJihOJiZTJiYodShTKXx8KEU9bChTKSkpPyhFPyhFPSExLF89aCYmbChoKT9oOltdKTpfPWgmJnUoaCk/aDp7fSxjKFQse25hbWU6YixuZXdWYWx1ZTpmKE4sXyxTKX0pKTp0eXBlb2YgUzwidSImJmMoVCx7bmFtZTpiLG5ld1ZhbHVlOlN9KSk7cmV0dXJuIFR9LHVofXZhciBrRz13RygpO2NvbnN0IGNoPUhsKGtHKTtmdW5jdGlvbiBQaChlKXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsKXJldHVybiExO2NvbnN0IG49T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybihuPT09bnVsbHx8bj09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBlKSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gZSl9ZnVuY3Rpb24gQ0coKXtjb25zdCBlPVtdLG49e3J1bjphLHVzZTppfTtyZXR1cm4gbjtmdW5jdGlvbiBhKC4uLmwpe2xldCB1PS0xO2NvbnN0IGM9bC5wb3AoKTtpZih0eXBlb2YgYyE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiBhcyBsYXN0IGFyZ3VtZW50LCBub3QgIitjKTtkKG51bGwsLi4ubCk7ZnVuY3Rpb24gZChmLC4uLm0pe2NvbnN0IGI9ZVsrK3VdO2xldCBoPS0xO2lmKGYpe2MoZik7cmV0dXJufWZvcig7KytoPGwubGVuZ3RoOykobVtoXT09PW51bGx8fG1baF09PT12b2lkIDApJiYobVtoXT1sW2hdKTtsPW0sYj9JRyhiLGQpKC4uLm0pOmMobnVsbCwuLi5tKX19ZnVuY3Rpb24gaShsKXtpZih0eXBlb2YgbCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrbCk7cmV0dXJuIGUucHVzaChsKSxufX1mdW5jdGlvbiBJRyhlLG4pe2xldCBhO3JldHVybiBpO2Z1bmN0aW9uIGkoLi4uYyl7Y29uc3QgZD1lLmxlbmd0aD5jLmxlbmd0aDtsZXQgZjtkJiZjLnB1c2gobCk7dHJ5e2Y9ZS5hcHBseSh0aGlzLGMpfWNhdGNoKG0pe2NvbnN0IGI9bTtpZihkJiZhKXRocm93IGI7cmV0dXJuIGwoYil9ZHx8KGYmJmYudGhlbiYmdHlwZW9mIGYudGhlbj09ImZ1bmN0aW9uIj9mLnRoZW4odSxsKTpmIGluc3RhbmNlb2YgRXJyb3I/bChmKTp1KGYpKX1mdW5jdGlvbiBsKGMsLi4uZCl7YXx8KGE9ITAsbihjLC4uLmQpKX1mdW5jdGlvbiB1KGMpe2wobnVsbCxjKX19Y29uc3QgTG49e2Jhc2VuYW1lOk9HLGRpcm5hbWU6TEcsZXh0bmFtZTpERyxqb2luOk1HLHNlcDoiLyJ9O2Z1bmN0aW9uIE9HKGUsbil7aWYobiE9PXZvaWQgMCYmdHlwZW9mIG4hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoJyJleHQiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTtwbyhlKTtsZXQgYT0wLGk9LTEsbD1lLmxlbmd0aCx1O2lmKG49PT12b2lkIDB8fG4ubGVuZ3RoPT09MHx8bi5sZW5ndGg+ZS5sZW5ndGgpe2Zvcig7bC0tOylpZihlLmNvZGVQb2ludEF0KGwpPT09NDcpe2lmKHUpe2E9bCsxO2JyZWFrfX1lbHNlIGk8MCYmKHU9ITAsaT1sKzEpO3JldHVybiBpPDA/IiI6ZS5zbGljZShhLGkpfWlmKG49PT1lKXJldHVybiIiO2xldCBjPS0xLGQ9bi5sZW5ndGgtMTtmb3IoO2wtLTspaWYoZS5jb2RlUG9pbnRBdChsKT09PTQ3KXtpZih1KXthPWwrMTticmVha319ZWxzZSBjPDAmJih1PSEwLGM9bCsxKSxkPi0xJiYoZS5jb2RlUG9pbnRBdChsKT09PW4uY29kZVBvaW50QXQoZC0tKT9kPDAmJihpPWwpOihkPS0xLGk9YykpO3JldHVybiBhPT09aT9pPWM6aTwwJiYoaT1lLmxlbmd0aCksZS5zbGljZShhLGkpfWZ1bmN0aW9uIExHKGUpe2lmKHBvKGUpLGUubGVuZ3RoPT09MClyZXR1cm4iLiI7bGV0IG49LTEsYT1lLmxlbmd0aCxpO2Zvcig7LS1hOylpZihlLmNvZGVQb2ludEF0KGEpPT09NDcpe2lmKGkpe249YTticmVha319ZWxzZSBpfHwoaT0hMCk7cmV0dXJuIG48MD9lLmNvZGVQb2ludEF0KDApPT09NDc/Ii8iOiIuIjpuPT09MSYmZS5jb2RlUG9pbnRBdCgwKT09PTQ3PyIvLyI6ZS5zbGljZSgwLG4pfWZ1bmN0aW9uIERHKGUpe3BvKGUpO2xldCBuPWUubGVuZ3RoLGE9LTEsaT0wLGw9LTEsdT0wLGM7Zm9yKDtuLS07KXtjb25zdCBkPWUuY29kZVBvaW50QXQobik7aWYoZD09PTQ3KXtpZihjKXtpPW4rMTticmVha31jb250aW51ZX1hPDAmJihjPSEwLGE9bisxKSxkPT09NDY/bDwwP2w9bjp1IT09MSYmKHU9MSk6bD4tMSYmKHU9LTEpfXJldHVybiBsPDB8fGE8MHx8dT09PTB8fHU9PT0xJiZsPT09YS0xJiZsPT09aSsxPyIiOmUuc2xpY2UobCxhKX1mdW5jdGlvbiBNRyguLi5lKXtsZXQgbj0tMSxhO2Zvcig7KytuPGUubGVuZ3RoOylwbyhlW25dKSxlW25dJiYoYT1hPT09dm9pZCAwP2Vbbl06YSsiLyIrZVtuXSk7cmV0dXJuIGE9PT12b2lkIDA/Ii4iOlVHKGEpfWZ1bmN0aW9uIFVHKGUpe3BvKGUpO2NvbnN0IG49ZS5jb2RlUG9pbnRBdCgwKT09PTQ3O2xldCBhPUZHKGUsIW4pO3JldHVybiBhLmxlbmd0aD09PTAmJiFuJiYoYT0iLiIpLGEubGVuZ3RoPjAmJmUuY29kZVBvaW50QXQoZS5sZW5ndGgtMSk9PT00NyYmKGErPSIvIiksbj8iLyIrYTphfWZ1bmN0aW9uIEZHKGUsbil7bGV0IGE9IiIsaT0wLGw9LTEsdT0wLGM9LTEsZCxmO2Zvcig7KytjPD1lLmxlbmd0aDspe2lmKGM8ZS5sZW5ndGgpZD1lLmNvZGVQb2ludEF0KGMpO2Vsc2V7aWYoZD09PTQ3KWJyZWFrO2Q9NDd9aWYoZD09PTQ3KXtpZighKGw9PT1jLTF8fHU9PT0xKSlpZihsIT09Yy0xJiZ1PT09Mil7aWYoYS5sZW5ndGg8Mnx8aSE9PTJ8fGEuY29kZVBvaW50QXQoYS5sZW5ndGgtMSkhPT00Nnx8YS5jb2RlUG9pbnRBdChhLmxlbmd0aC0yKSE9PTQ2KXtpZihhLmxlbmd0aD4yKXtpZihmPWEubGFzdEluZGV4T2YoIi8iKSxmIT09YS5sZW5ndGgtMSl7ZjwwPyhhPSIiLGk9MCk6KGE9YS5zbGljZSgwLGYpLGk9YS5sZW5ndGgtMS1hLmxhc3RJbmRleE9mKCIvIikpLGw9Yyx1PTA7Y29udGludWV9fWVsc2UgaWYoYS5sZW5ndGg+MCl7YT0iIixpPTAsbD1jLHU9MDtjb250aW51ZX19biYmKGE9YS5sZW5ndGg+MD9hKyIvLi4iOiIuLiIsaT0yKX1lbHNlIGEubGVuZ3RoPjA/YSs9Ii8iK2Uuc2xpY2UobCsxLGMpOmE9ZS5zbGljZShsKzEsYyksaT1jLWwtMTtsPWMsdT0wfWVsc2UgZD09PTQ2JiZ1Pi0xP3UrKzp1PS0xfXJldHVybiBhfWZ1bmN0aW9uIHBvKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkoZSkpfWNvbnN0IEJHPXtjd2Q6akd9O2Z1bmN0aW9uIGpHKCl7cmV0dXJuIi8ifWZ1bmN0aW9uIEdoKGUpe3JldHVybiEhKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCImJiJocmVmImluIGUmJmUuaHJlZiYmInByb3RvY29sImluIGUmJmUucHJvdG9jb2wmJmUuYXV0aD09PXZvaWQgMCl9ZnVuY3Rpb24gekcoZSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKWU9bmV3IFVSTChlKTtlbHNlIGlmKCFHaChlKSl7Y29uc3Qgbj1uZXcgVHlwZUVycm9yKCdUaGUgInBhdGgiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgVVJMLiBSZWNlaXZlZCBgJytlKyJgIik7dGhyb3cgbi5jb2RlPSJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsbn1pZihlLnByb3RvY29sIT09ImZpbGU6Iil7Y29uc3Qgbj1uZXcgVHlwZUVycm9yKCJUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUiKTt0aHJvdyBuLmNvZGU9IkVSUl9JTlZBTElEX1VSTF9TQ0hFTUUiLG59cmV0dXJuIHFHKGUpfWZ1bmN0aW9uIHFHKGUpe2lmKGUuaG9zdG5hbWUhPT0iIil7Y29uc3QgaT1uZXcgVHlwZUVycm9yKCdGaWxlIFVSTCBob3N0IG11c3QgYmUgImxvY2FsaG9zdCIgb3IgZW1wdHkgb24gZGFyd2luJyk7dGhyb3cgaS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUIixpfWNvbnN0IG49ZS5wYXRobmFtZTtsZXQgYT0tMTtmb3IoOysrYTxuLmxlbmd0aDspaWYobi5jb2RlUG9pbnRBdChhKT09PTM3JiZuLmNvZGVQb2ludEF0KGErMSk9PT01MCl7Y29uc3QgaT1uLmNvZGVQb2ludEF0KGErMik7aWYoaT09PTcwfHxpPT09MTAyKXtjb25zdCBsPW5ldyBUeXBlRXJyb3IoIkZpbGUgVVJMIHBhdGggbXVzdCBub3QgaW5jbHVkZSBlbmNvZGVkIC8gY2hhcmFjdGVycyIpO3Rocm93IGwuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCIsbH19cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChuKX1jb25zdCBkaD1bImhpc3RvcnkiLCJwYXRoIiwiYmFzZW5hbWUiLCJzdGVtIiwiZXh0bmFtZSIsImRpcm5hbWUiXTtjbGFzcyBlQ3tjb25zdHJ1Y3RvcihuKXtsZXQgYTtuP0doKG4pP2E9e3BhdGg6bn06dHlwZW9mIG49PSJzdHJpbmcifHxQRyhuKT9hPXt2YWx1ZTpufTphPW46YT17fSx0aGlzLmN3ZD0iY3dkImluIGE/IiI6QkcuY3dkKCksdGhpcy5kYXRhPXt9LHRoaXMuaGlzdG9yeT1bXSx0aGlzLm1lc3NhZ2VzPVtdLHRoaXMudmFsdWUsdGhpcy5tYXAsdGhpcy5yZXN1bHQsdGhpcy5zdG9yZWQ7bGV0IGk9LTE7Zm9yKDsrK2k8ZGgubGVuZ3RoOyl7Y29uc3QgdT1kaFtpXTt1IGluIGEmJmFbdV0hPT12b2lkIDAmJmFbdV0hPT1udWxsJiYodGhpc1t1XT11PT09Imhpc3RvcnkiP1suLi5hW3VdXTphW3VdKX1sZXQgbDtmb3IobCBpbiBhKWRoLmluY2x1ZGVzKGwpfHwodGhpc1tsXT1hW2xdKX1nZXQgYmFzZW5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/TG4uYmFzZW5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGJhc2VuYW1lKG4pe2ZoKG4sImJhc2VuYW1lIikscGgobiwiYmFzZW5hbWUiKSx0aGlzLnBhdGg9TG4uam9pbih0aGlzLmRpcm5hbWV8fCIiLG4pfWdldCBkaXJuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0xuLmRpcm5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGRpcm5hbWUobil7YncodGhpcy5iYXNlbmFtZSwiZGlybmFtZSIpLHRoaXMucGF0aD1Mbi5qb2luKG58fCIiLHRoaXMuYmFzZW5hbWUpfWdldCBleHRuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0xuLmV4dG5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGV4dG5hbWUobil7aWYocGgobiwiZXh0bmFtZSIpLGJ3KHRoaXMuZGlybmFtZSwiZXh0bmFtZSIpLG4pe2lmKG4uY29kZVBvaW50QXQoMCkhPT00Nil0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gIik7aWYobi5pbmNsdWRlcygiLiIsMSkpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cyIpfXRoaXMucGF0aD1Mbi5qb2luKHRoaXMuZGlybmFtZSx0aGlzLnN0ZW0rKG58fCIiKSl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGgtMV19c2V0IHBhdGgobil7R2gobikmJihuPXpHKG4pKSxmaChuLCJwYXRoIiksdGhpcy5wYXRoIT09biYmdGhpcy5oaXN0b3J5LnB1c2gobil9Z2V0IHN0ZW0oKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/TG4uYmFzZW5hbWUodGhpcy5wYXRoLHRoaXMuZXh0bmFtZSk6dm9pZCAwfXNldCBzdGVtKG4pe2ZoKG4sInN0ZW0iKSxwaChuLCJzdGVtIiksdGhpcy5wYXRoPUxuLmpvaW4odGhpcy5kaXJuYW1lfHwiIixuKyh0aGlzLmV4dG5hbWV8fCIiKSl9ZmFpbChuLGEsaSl7Y29uc3QgbD10aGlzLm1lc3NhZ2UobixhLGkpO3Rocm93IGwuZmF0YWw9ITAsbH1pbmZvKG4sYSxpKXtjb25zdCBsPXRoaXMubWVzc2FnZShuLGEsaSk7cmV0dXJuIGwuZmF0YWw9dm9pZCAwLGx9bWVzc2FnZShuLGEsaSl7Y29uc3QgbD1uZXcgTnQobixhLGkpO3JldHVybiB0aGlzLnBhdGgmJihsLm5hbWU9dGhpcy5wYXRoKyI6IitsLm5hbWUsbC5maWxlPXRoaXMucGF0aCksbC5mYXRhbD0hMSx0aGlzLm1lc3NhZ2VzLnB1c2gobCksbH10b1N0cmluZyhuKXtyZXR1cm4gdGhpcy52YWx1ZT09PXZvaWQgMD8iIjp0eXBlb2YgdGhpcy52YWx1ZT09InN0cmluZyI/dGhpcy52YWx1ZTpuZXcgVGV4dERlY29kZXIobnx8dm9pZCAwKS5kZWNvZGUodGhpcy52YWx1ZSl9fWZ1bmN0aW9uIHBoKGUsbil7aWYoZSYmZS5pbmNsdWRlcyhMbi5zZXApKXRocm93IG5ldyBFcnJvcigiYCIrbisiYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgIitMbi5zZXArImAiKX1mdW5jdGlvbiBmaChlLG4pe2lmKCFlKXRocm93IG5ldyBFcnJvcigiYCIrbisiYCBjYW5ub3QgYmUgZW1wdHkiKX1mdW5jdGlvbiBidyhlLG4pe2lmKCFlKXRocm93IG5ldyBFcnJvcigiU2V0dGluZyBgIituKyJgIHJlcXVpcmVzIGBwYXRoYCB0byBiZSBzZXQgdG9vIil9ZnVuY3Rpb24gUEcoZSl7cmV0dXJuISEoZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiBlJiYiYnl0ZU9mZnNldCJpbiBlKX1jb25zdCBHRz0oZnVuY3Rpb24oZSl7Y29uc3QgaT10aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxsPWlbZV0sdT1mdW5jdGlvbigpe3JldHVybiBsLmFwcGx5KHUsYXJndW1lbnRzKX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZih1LGkpLHV9KSxIRz17fS5oYXNPd25Qcm9wZXJ0eTtjbGFzcyBfYiBleHRlbmRzIEdHe2NvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPUNHKCl9Y29weSgpe2NvbnN0IG49bmV3IF9iO2xldCBhPS0xO2Zvcig7KythPHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2NvbnN0IGk9dGhpcy5hdHRhY2hlcnNbYV07bi51c2UoLi4uaSl9cmV0dXJuIG4uZGF0YShjaCghMCx7fSx0aGlzLm5hbWVzcGFjZSkpLG59ZGF0YShuLGEpe3JldHVybiB0eXBlb2Ygbj09InN0cmluZyI/YXJndW1lbnRzLmxlbmd0aD09PTI/KGhoKCJkYXRhIix0aGlzLmZyb3plbiksdGhpcy5uYW1lc3BhY2Vbbl09YSx0aGlzKTpIRy5jYWxsKHRoaXMubmFtZXNwYWNlLG4pJiZ0aGlzLm5hbWVzcGFjZVtuXXx8dm9pZCAwOm4/KGhoKCJkYXRhIix0aGlzLmZyb3plbiksdGhpcy5uYW1lc3BhY2U9bix0aGlzKTp0aGlzLm5hbWVzcGFjZX1mcmVlemUoKXtpZih0aGlzLmZyb3plbilyZXR1cm4gdGhpcztjb25zdCBuPXRoaXM7Zm9yKDsrK3RoaXMuZnJlZXplSW5kZXg8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7Y29uc3RbYSwuLi5pXT10aGlzLmF0dGFjaGVyc1t0aGlzLmZyZWV6ZUluZGV4XTtpZihpWzBdPT09ITEpY29udGludWU7aVswXT09PSEwJiYoaVswXT12b2lkIDApO2NvbnN0IGw9YS5jYWxsKG4sLi4uaSk7dHlwZW9mIGw9PSJmdW5jdGlvbiImJnRoaXMudHJhbnNmb3JtZXJzLnVzZShsKX1yZXR1cm4gdGhpcy5mcm96ZW49ITAsdGhpcy5mcmVlemVJbmRleD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdGhpc31wYXJzZShuKXt0aGlzLmZyZWV6ZSgpO2NvbnN0IGE9Q2wobiksaT10aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXI7cmV0dXJuIGdoKCJwYXJzZSIsaSksaShTdHJpbmcoYSksYSl9cHJvY2VzcyhuLGEpe2NvbnN0IGk9dGhpcztyZXR1cm4gdGhpcy5mcmVlemUoKSxnaCgicHJvY2VzcyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxtaCgicHJvY2VzcyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksYT9sKHZvaWQgMCxhKTpuZXcgUHJvbWlzZShsKTtmdW5jdGlvbiBsKHUsYyl7Y29uc3QgZD1DbChuKSxmPWkucGFyc2UoZCk7aS5ydW4oZixkLGZ1bmN0aW9uKGIsaCxTKXtpZihifHwhaHx8IVMpcmV0dXJuIG0oYik7Y29uc3QgRT1oLF89aS5zdHJpbmdpZnkoRSxTKTtZRyhfKT9TLnZhbHVlPV86Uy5yZXN1bHQ9XyxtKGIsUyl9KTtmdW5jdGlvbiBtKGIsaCl7Ynx8IWg/YyhiKTp1P3UoaCk6YSh2b2lkIDAsaCl9fX1wcm9jZXNzU3luYyhuKXtsZXQgYT0hMSxpO3JldHVybiB0aGlzLmZyZWV6ZSgpLGdoKCJwcm9jZXNzU3luYyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxtaCgicHJvY2Vzc1N5bmMiLHRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXIpLHRoaXMucHJvY2VzcyhuLGwpLEV3KCJwcm9jZXNzU3luYyIsInByb2Nlc3MiLGEpLGk7ZnVuY3Rpb24gbCh1LGMpe2E9ITAsbXcodSksaT1jfX1ydW4obixhLGkpe3l3KG4pLHRoaXMuZnJlZXplKCk7Y29uc3QgbD10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4haSYmdHlwZW9mIGE9PSJmdW5jdGlvbiImJihpPWEsYT12b2lkIDApLGk/dSh2b2lkIDAsaSk6bmV3IFByb21pc2UodSk7ZnVuY3Rpb24gdShjLGQpe2NvbnN0IGY9Q2woYSk7bC5ydW4obixmLG0pO2Z1bmN0aW9uIG0oYixoLFMpe2NvbnN0IEU9aHx8bjtiP2QoYik6Yz9jKEUpOmkodm9pZCAwLEUsUyl9fX1ydW5TeW5jKG4sYSl7bGV0IGk9ITEsbDtyZXR1cm4gdGhpcy5ydW4obixhLHUpLEV3KCJydW5TeW5jIiwicnVuIixpKSxsO2Z1bmN0aW9uIHUoYyxkKXttdyhjKSxsPWQsaT0hMH19c3RyaW5naWZ5KG4sYSl7dGhpcy5mcmVlemUoKTtjb25zdCBpPUNsKGEpLGw9dGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlcjtyZXR1cm4gbWgoInN0cmluZ2lmeSIsbCkseXcobiksbChuLGkpfXVzZShuLC4uLmEpe2NvbnN0IGk9dGhpcy5hdHRhY2hlcnMsbD10aGlzLm5hbWVzcGFjZTtpZihoaCgidXNlIix0aGlzLmZyb3plbiksbiE9bnVsbClpZih0eXBlb2Ygbj09ImZ1bmN0aW9uIilmKG4sYSk7ZWxzZSBpZih0eXBlb2Ygbj09Im9iamVjdCIpQXJyYXkuaXNBcnJheShuKT9kKG4pOmMobik7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIituKyJgIik7cmV0dXJuIHRoaXM7ZnVuY3Rpb24gdShtKXtpZih0eXBlb2YgbT09ImZ1bmN0aW9uIilmKG0sW10pO2Vsc2UgaWYodHlwZW9mIG09PSJvYmplY3QiKWlmKEFycmF5LmlzQXJyYXkobSkpe2NvbnN0W2IsLi4uaF09bTtmKGIsaCl9ZWxzZSBjKG0pO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrbSsiYCIpfWZ1bmN0aW9uIGMobSl7aWYoISgicGx1Z2lucyJpbiBtKSYmISgic2V0dGluZ3MiaW4gbSkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUgYnV0IHJlY2VpdmVkIGFuIGVtcHR5IHByZXNldCwgd2hpY2ggaXMgcHJvYmFibHkgYSBtaXN0YWtlOiBwcmVzZXRzIHR5cGljYWxseSBjb21lIHdpdGggYHBsdWdpbnNgIGFuZCBzb21ldGltZXMgd2l0aCBgc2V0dGluZ3NgLCBidXQgdGhpcyBoYXMgbmVpdGhlciIpO2QobS5wbHVnaW5zKSxtLnNldHRpbmdzJiYobC5zZXR0aW5ncz1jaCghMCxsLnNldHRpbmdzLG0uc2V0dGluZ3MpKX1mdW5jdGlvbiBkKG0pe2xldCBiPS0xO2lmKG0hPW51bGwpaWYoQXJyYXkuaXNBcnJheShtKSlmb3IoOysrYjxtLmxlbmd0aDspe2NvbnN0IGg9bVtiXTt1KGgpfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBsaXN0IG9mIHBsdWdpbnMsIG5vdCBgIittKyJgIil9ZnVuY3Rpb24gZihtLGIpe2xldCBoPS0xLFM9LTE7Zm9yKDsrK2g8aS5sZW5ndGg7KWlmKGlbaF1bMF09PT1tKXtTPWg7YnJlYWt9aWYoUz09PS0xKWkucHVzaChbbSwuLi5iXSk7ZWxzZSBpZihiLmxlbmd0aD4wKXtsZXRbRSwuLi5fXT1iO2NvbnN0IFQ9aVtTXVsxXTtQaChUKSYmUGgoRSkmJihFPWNoKCEwLFQsRSkpLGlbU109W20sRSwuLi5fXX19fX1jb25zdCAkRz1uZXcgX2IoKS5mcmVlemUoKTtmdW5jdGlvbiBnaChlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBgIitlKyJgIHdpdGhvdXQgYHBhcnNlcmAiKX1mdW5jdGlvbiBtaChlLG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBgIitlKyJgIHdpdGhvdXQgYGNvbXBpbGVyYCIpfWZ1bmN0aW9uIGhoKGUsbil7aWYobil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK2UrImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiB5dyhlKXtpZighUGgoZSl8fHR5cGVvZiBlLnR5cGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIG5vZGUsIGdvdCBgIitlKyJgIil9ZnVuY3Rpb24gRXcoZSxuLGEpe2lmKCFhKXRocm93IG5ldyBFcnJvcigiYCIrZSsiYCBmaW5pc2hlZCBhc3luYy4gVXNlIGAiK24rImAgaW5zdGVhZCIpfWZ1bmN0aW9uIENsKGUpe3JldHVybiBWRyhlKT9lOm5ldyBlQyhlKX1mdW5jdGlvbiBWRyhlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCImJiJtZXNzYWdlImluIGUmJiJtZXNzYWdlcyJpbiBlKX1mdW5jdGlvbiBZRyhlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifHxLRyhlKX1mdW5jdGlvbiBLRyhlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCImJiJieXRlTGVuZ3RoImluIGUmJiJieXRlT2Zmc2V0ImluIGUpfWNvbnN0IFdHPSJodHRwczovL2dpdGh1Yi5jb20vcmVtYXJranMvcmVhY3QtbWFya2Rvd24vYmxvYi9tYWluL2NoYW5nZWxvZy5tZCIsU3c9W10sdnc9e2FsbG93RGFuZ2Vyb3VzSHRtbDohMH0sWEc9L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSxaRz1be2Zyb206ImFzdFBsdWdpbnMiLGlkOiJyZW1vdmUtYnVnZ3ktaHRtbC1pbi1tYXJrZG93bi1wYXJzZXIifSx7ZnJvbToiYWxsb3dEYW5nZXJvdXNIdG1sIixpZDoicmVtb3ZlLWJ1Z2d5LWh0bWwtaW4tbWFya2Rvd24tcGFyc2VyIn0se2Zyb206ImFsbG93Tm9kZSIsaWQ6InJlcGxhY2UtYWxsb3dub2RlLWFsbG93ZWR0eXBlcy1hbmQtZGlzYWxsb3dlZHR5cGVzIix0bzoiYWxsb3dFbGVtZW50In0se2Zyb206ImFsbG93ZWRUeXBlcyIsaWQ6InJlcGxhY2UtYWxsb3dub2RlLWFsbG93ZWR0eXBlcy1hbmQtZGlzYWxsb3dlZHR5cGVzIix0bzoiYWxsb3dlZEVsZW1lbnRzIn0se2Zyb206ImNsYXNzTmFtZSIsaWQ6InJlbW92ZS1jbGFzc25hbWUifSx7ZnJvbToiZGlzYWxsb3dlZFR5cGVzIixpZDoicmVwbGFjZS1hbGxvd25vZGUtYWxsb3dlZHR5cGVzLWFuZC1kaXNhbGxvd2VkdHlwZXMiLHRvOiJkaXNhbGxvd2VkRWxlbWVudHMifSx7ZnJvbToiZXNjYXBlSHRtbCIsaWQ6InJlbW92ZS1idWdneS1odG1sLWluLW1hcmtkb3duLXBhcnNlciJ9LHtmcm9tOiJpbmNsdWRlRWxlbWVudEluZGV4IixpZDoiI3JlbW92ZS1pbmNsdWRlZWxlbWVudGluZGV4In0se2Zyb206ImluY2x1ZGVOb2RlSW5kZXgiLGlkOiJjaGFuZ2UtaW5jbHVkZW5vZGVpbmRleC10by1pbmNsdWRlZWxlbWVudGluZGV4In0se2Zyb206ImxpbmtUYXJnZXQiLGlkOiJyZW1vdmUtbGlua3RhcmdldCJ9LHtmcm9tOiJwbHVnaW5zIixpZDoiY2hhbmdlLXBsdWdpbnMtdG8tcmVtYXJrcGx1Z2lucyIsdG86InJlbWFya1BsdWdpbnMifSx7ZnJvbToicmF3U291cmNlUG9zIixpZDoiI3JlbW92ZS1yYXdzb3VyY2Vwb3MifSx7ZnJvbToicmVuZGVyZXJzIixpZDoiY2hhbmdlLXJlbmRlcmVycy10by1jb21wb25lbnRzIix0bzoiY29tcG9uZW50cyJ9LHtmcm9tOiJzb3VyY2UiLGlkOiJjaGFuZ2Utc291cmNlLXRvLWNoaWxkcmVuIix0bzoiY2hpbGRyZW4ifSx7ZnJvbToic291cmNlUG9zIixpZDoiI3JlbW92ZS1zb3VyY2Vwb3MifSx7ZnJvbToidHJhbnNmb3JtSW1hZ2VVcmkiLGlkOiIjYWRkLXVybHRyYW5zZm9ybSIsdG86InVybFRyYW5zZm9ybSJ9LHtmcm9tOiJ0cmFuc2Zvcm1MaW5rVXJpIixpZDoiI2FkZC11cmx0cmFuc2Zvcm0iLHRvOiJ1cmxUcmFuc2Zvcm0ifV07ZnVuY3Rpb24gdEMoZSl7Y29uc3Qgbj1RRyhlKSxhPUpHKGUpO3JldHVybiBlMyhuLnJ1blN5bmMobi5wYXJzZShhKSxhKSxlKX1mdW5jdGlvbiBRRyhlKXtjb25zdCBuPWUucmVoeXBlUGx1Z2luc3x8U3csYT1lLnJlbWFya1BsdWdpbnN8fFN3LGk9ZS5yZW1hcmtSZWh5cGVPcHRpb25zP3suLi5lLnJlbWFya1JlaHlwZU9wdGlvbnMsLi4udnd9OnZ3O3JldHVybiAkRygpLnVzZShMUCkudXNlKGEpLnVzZShORyxpKS51c2Uobil9ZnVuY3Rpb24gSkcoZSl7Y29uc3Qgbj1lLmNoaWxkcmVufHwiIixhPW5ldyBlQztyZXR1cm4gdHlwZW9mIG49PSJzdHJpbmciJiYoYS52YWx1ZT1uKSxhfWZ1bmN0aW9uIGUzKGUsbil7Y29uc3QgYT1uLmFsbG93ZWRFbGVtZW50cyxpPW4uYWxsb3dFbGVtZW50LGw9bi5jb21wb25lbnRzLHU9bi5kaXNhbGxvd2VkRWxlbWVudHMsYz1uLnNraXBIdG1sLGQ9bi51bndyYXBEaXNhbGxvd2VkLGY9bi51cmxUcmFuc2Zvcm18fHQzO2Zvcihjb25zdCBiIG9mIFpHKU9iamVjdC5oYXNPd24obixiLmZyb20pJiYoIiIrYi5mcm9tKyhiLnRvPyJ1c2UgYCIrYi50bysiYCBpbnN0ZWFkIjoicmVtb3ZlIGl0IikrV0crYi5pZCx2b2lkIDApO3JldHVybiBBYihlLG0pLGh6KGUse0ZyYWdtZW50OnkuRnJhZ21lbnQsY29tcG9uZW50czpsLGlnbm9yZUludmFsaWRTdHlsZTohMCxqc3g6eS5qc3gsanN4czp5LmpzeHMscGFzc0tleXM6ITAscGFzc05vZGU6ITB9KTtmdW5jdGlvbiBtKGIsaCxTKXtpZihiLnR5cGU9PT0icmF3IiYmUyYmdHlwZW9mIGg9PSJudW1iZXIiKXJldHVybiBjP1MuY2hpbGRyZW4uc3BsaWNlKGgsMSk6Uy5jaGlsZHJlbltoXT17dHlwZToidGV4dCIsdmFsdWU6Yi52YWx1ZX0saDtpZihiLnR5cGU9PT0iZWxlbWVudCIpe2xldCBFO2ZvcihFIGluIG9oKWlmKE9iamVjdC5oYXNPd24ob2gsRSkmJk9iamVjdC5oYXNPd24oYi5wcm9wZXJ0aWVzLEUpKXtjb25zdCBfPWIucHJvcGVydGllc1tFXSxUPW9oW0VdOyhUPT09bnVsbHx8VC5pbmNsdWRlcyhiLnRhZ05hbWUpKSYmKGIucHJvcGVydGllc1tFXT1mKFN0cmluZyhffHwiIiksRSxiKSl9fWlmKGIudHlwZT09PSJlbGVtZW50Iil7bGV0IEU9YT8hYS5pbmNsdWRlcyhiLnRhZ05hbWUpOnU/dS5pbmNsdWRlcyhiLnRhZ05hbWUpOiExO2lmKCFFJiZpJiZ0eXBlb2YgaD09Im51bWJlciImJihFPSFpKGIsaCxTKSksRSYmUyYmdHlwZW9mIGg9PSJudW1iZXIiKXJldHVybiBkJiZiLmNoaWxkcmVuP1MuY2hpbGRyZW4uc3BsaWNlKGgsMSwuLi5iLmNoaWxkcmVuKTpTLmNoaWxkcmVuLnNwbGljZShoLDEpLGh9fX1mdW5jdGlvbiB0MyhlKXtjb25zdCBuPWUuaW5kZXhPZigiOiIpLGE9ZS5pbmRleE9mKCI/IiksaT1lLmluZGV4T2YoIiMiKSxsPWUuaW5kZXhPZigiLyIpO3JldHVybiBuPT09LTF8fGwhPT0tMSYmbj5sfHxhIT09LTEmJm4+YXx8aSE9PS0xJiZuPml8fFhHLnRlc3QoZS5zbGljZSgwLG4pKT9lOiIifWZ1bmN0aW9uIFR3KGUsbil7Y29uc3QgYT1TdHJpbmcoZSk7aWYodHlwZW9mIG4hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGNoYXJhY3RlciIpO2xldCBpPTAsbD1hLmluZGV4T2Yobik7Zm9yKDtsIT09LTE7KWkrKyxsPWEuaW5kZXhPZihuLGwrbi5sZW5ndGgpO3JldHVybiBpfWZ1bmN0aW9uIG4zKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIHN0cmluZyIpO3JldHVybiBlLnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrKj8uXS9nLCJcXCQmIikucmVwbGFjZSgvLS9nLCJcXHgyZCIpfWZ1bmN0aW9uIHIzKGUsbixhKXtjb25zdCBsPVFsKChhfHx7fSkuaWdub3JlfHxbXSksdT1hMyhuKTtsZXQgYz0tMTtmb3IoOysrYzx1Lmxlbmd0aDspSmsoZSwidGV4dCIsZCk7ZnVuY3Rpb24gZChtLGIpe2xldCBoPS0xLFM7Zm9yKDsrK2g8Yi5sZW5ndGg7KXtjb25zdCBFPWJbaF0sXz1TP1MuY2hpbGRyZW46dm9pZCAwO2lmKGwoRSxfP18uaW5kZXhPZihFKTp2b2lkIDAsUykpcmV0dXJuO1M9RX1pZihTKXJldHVybiBmKG0sYil9ZnVuY3Rpb24gZihtLGIpe2NvbnN0IGg9YltiLmxlbmd0aC0xXSxTPXVbY11bMF0sRT11W2NdWzFdO2xldCBfPTA7Y29uc3QgQz1oLmNoaWxkcmVuLmluZGV4T2YobSk7bGV0IHg9ITEsTj1bXTtTLmxhc3RJbmRleD0wO2xldCBrPVMuZXhlYyhtLnZhbHVlKTtmb3IoO2s7KXtjb25zdCBMPWsuaW5kZXgsRj17aW5kZXg6ay5pbmRleCxpbnB1dDprLmlucHV0LHN0YWNrOlsuLi5iLG1dfTtsZXQgUj1FKC4uLmssRik7aWYodHlwZW9mIFI9PSJzdHJpbmciJiYoUj1SLmxlbmd0aD4wP3t0eXBlOiJ0ZXh0Iix2YWx1ZTpSfTp2b2lkIDApLFI9PT0hMT9TLmxhc3RJbmRleD1MKzE6KF8hPT1MJiZOLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOm0udmFsdWUuc2xpY2UoXyxMKX0pLEFycmF5LmlzQXJyYXkoUik/Ti5wdXNoKC4uLlIpOlImJk4ucHVzaChSKSxfPUwra1swXS5sZW5ndGgseD0hMCksIVMuZ2xvYmFsKWJyZWFrO2s9Uy5leGVjKG0udmFsdWUpfXJldHVybiB4PyhfPG0udmFsdWUubGVuZ3RoJiZOLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOm0udmFsdWUuc2xpY2UoXyl9KSxoLmNoaWxkcmVuLnNwbGljZShDLDEsLi4uTikpOk49W21dLEMrTi5sZW5ndGh9fWZ1bmN0aW9uIGEzKGUpe2NvbnN0IG49W107aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgZmluZCBhbmQgcmVwbGFjZSB0dXBsZSBvciBsaXN0IG9mIHR1cGxlcyIpO2NvbnN0IGE9IWVbMF18fEFycmF5LmlzQXJyYXkoZVswXSk/ZTpbZV07bGV0IGk9LTE7Zm9yKDsrK2k8YS5sZW5ndGg7KXtjb25zdCBsPWFbaV07bi5wdXNoKFtpMyhsWzBdKSxvMyhsWzFdKV0pfXJldHVybiBufWZ1bmN0aW9uIGkzKGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/bmV3IFJlZ0V4cChuMyhlKSwiZyIpOmV9ZnVuY3Rpb24gbzMoZSl7cmV0dXJuIHR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6ZnVuY3Rpb24oKXtyZXR1cm4gZX19Y29uc3QgYmg9InBocmFzaW5nIix5aD1bImF1dG9saW5rIiwibGluayIsImltYWdlIiwibGFiZWwiXTtmdW5jdGlvbiBsMygpe3JldHVybnt0cmFuc2Zvcm1zOltnM10sZW50ZXI6e2xpdGVyYWxBdXRvbGluazp1MyxsaXRlcmFsQXV0b2xpbmtFbWFpbDpFaCxsaXRlcmFsQXV0b2xpbmtIdHRwOkVoLGxpdGVyYWxBdXRvbGlua1d3dzpFaH0sZXhpdDp7bGl0ZXJhbEF1dG9saW5rOmYzLGxpdGVyYWxBdXRvbGlua0VtYWlsOnAzLGxpdGVyYWxBdXRvbGlua0h0dHA6YzMsbGl0ZXJhbEF1dG9saW5rV3d3OmQzfX19ZnVuY3Rpb24gczMoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJAIixiZWZvcmU6IlsrXFwtLlxcd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0OmJoLG5vdEluQ29uc3RydWN0OnlofSx7Y2hhcmFjdGVyOiIuIixiZWZvcmU6IltXd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0OmJoLG5vdEluQ29uc3RydWN0OnlofSx7Y2hhcmFjdGVyOiI6IixiZWZvcmU6Iltwc10iLGFmdGVyOiJcXC8iLGluQ29uc3RydWN0OmJoLG5vdEluQ29uc3RydWN0OnlofV19fWZ1bmN0aW9uIHUzKGUpe3RoaXMuZW50ZXIoe3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiIiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBFaChlKXt0aGlzLmNvbmZpZy5lbnRlci5hdXRvbGlua1Byb3RvY29sLmNhbGwodGhpcyxlKX1mdW5jdGlvbiBjMyhlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIGQzKGUpe3RoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMsZSk7Y29uc3Qgbj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO24udHlwZSxuLnVybD0iaHR0cDovLyIrdGhpcy5zbGljZVNlcmlhbGl6ZShlKX1mdW5jdGlvbiBwMyhlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIGYzKGUpe3RoaXMuZXhpdChlKX1mdW5jdGlvbiBnMyhlKXtyMyhlLFtbLyhodHRwcz86XC9cL3x3d3coPz1cLikpKFstLlx3XSspKFteIFx0XHJcbl0qKS9naSxtM10sW25ldyBSZWdFeHAoIig/PD1efFxcc3xcXHB7UH18XFxwe1N9KShbLS5cXHcrXSspQChbLVxcd10rKD86XFwuWy1cXHddKykrKSIsImd1IiksaDNdXSx7aWdub3JlOlsibGluayIsImxpbmtSZWZlcmVuY2UiXX0pfWZ1bmN0aW9uIG0zKGUsbixhLGksbCl7bGV0IHU9IiI7aWYoIW5DKGwpfHwoL153L2kudGVzdChuKSYmKGE9bithLG49IiIsdT0iaHR0cDovLyIpLCFiMyhhKSkpcmV0dXJuITE7Y29uc3QgYz15MyhhK2kpO2lmKCFjWzBdKXJldHVybiExO2NvbnN0IGQ9e3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOnUrbitjWzBdLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6bitjWzBdfV19O3JldHVybiBjWzFdP1tkLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjWzFdfV06ZH1mdW5jdGlvbiBoMyhlLG4sYSxpKXtyZXR1cm4hbkMoaSwhMCl8fC9bLVxkX10kLy50ZXN0KGEpPyExOnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoibWFpbHRvOiIrbisiQCIrYSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOm4rIkAiK2F9XX19ZnVuY3Rpb24gYjMoZSl7Y29uc3Qgbj1lLnNwbGl0KCIuIik7cmV0dXJuIShuLmxlbmd0aDwyfHxuW24ubGVuZ3RoLTFdJiYoL18vLnRlc3QobltuLmxlbmd0aC0xXSl8fCEvW2EtekEtWlxkXS8udGVzdChuW24ubGVuZ3RoLTFdKSl8fG5bbi5sZW5ndGgtMl0mJigvXy8udGVzdChuW24ubGVuZ3RoLTJdKXx8IS9bYS16QS1aXGRdLy50ZXN0KG5bbi5sZW5ndGgtMl0pKSl9ZnVuY3Rpb24geTMoZSl7Y29uc3Qgbj0vWyEiJicpLC46Ozw+P1xdfV0rJC8uZXhlYyhlKTtpZighbilyZXR1cm5bZSx2b2lkIDBdO2U9ZS5zbGljZSgwLG4uaW5kZXgpO2xldCBhPW5bMF0saT1hLmluZGV4T2YoIikiKTtjb25zdCBsPVR3KGUsIigiKTtsZXQgdT1UdyhlLCIpIik7Zm9yKDtpIT09LTEmJmw+dTspZSs9YS5zbGljZSgwLGkrMSksYT1hLnNsaWNlKGkrMSksaT1hLmluZGV4T2YoIikiKSx1Kys7cmV0dXJuW2UsYV19ZnVuY3Rpb24gbkMoZSxuKXtjb25zdCBhPWUuaW5wdXQuY2hhckNvZGVBdChlLmluZGV4LTEpO3JldHVybihlLmluZGV4PT09MHx8aWEoYSl8fFdsKGEpKSYmKCFufHxhIT09NDcpfXJDLnBlZWs9TjM7ZnVuY3Rpb24gRTMoKXt0aGlzLmJ1ZmZlcigpfWZ1bmN0aW9uIFMzKGUpe3RoaXMuZW50ZXIoe3R5cGU6ImZvb3Rub3RlUmVmZXJlbmNlIixpZGVudGlmaWVyOiIiLGxhYmVsOiIifSxlKX1mdW5jdGlvbiB2Mygpe3RoaXMuYnVmZmVyKCl9ZnVuY3Rpb24gVDMoZSl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVEZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOiIiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiB4MyhlKXtjb25zdCBuPXRoaXMucmVzdW1lKCksYT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2EudHlwZSxhLmlkZW50aWZpZXI9QW4odGhpcy5zbGljZVNlcmlhbGl6ZShlKSkudG9Mb3dlckNhc2UoKSxhLmxhYmVsPW59ZnVuY3Rpb24gQTMoZSl7dGhpcy5leGl0KGUpfWZ1bmN0aW9uIF8zKGUpe2NvbnN0IG49dGhpcy5yZXN1bWUoKSxhPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07YS50eXBlLGEuaWRlbnRpZmllcj1Bbih0aGlzLnNsaWNlU2VyaWFsaXplKGUpKS50b0xvd2VyQ2FzZSgpLGEubGFiZWw9bn1mdW5jdGlvbiBSMyhlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gTjMoKXtyZXR1cm4iWyJ9ZnVuY3Rpb24gckMoZSxuLGEsaSl7Y29uc3QgbD1hLmNyZWF0ZVRyYWNrZXIoaSk7bGV0IHU9bC5tb3ZlKCJbXiIpO2NvbnN0IGM9YS5lbnRlcigiZm9vdG5vdGVSZWZlcmVuY2UiKSxkPWEuZW50ZXIoInJlZmVyZW5jZSIpO3JldHVybiB1Kz1sLm1vdmUoYS5zYWZlKGEuYXNzb2NpYXRpb25JZChlKSx7YWZ0ZXI6Il0iLGJlZm9yZTp1fSkpLGQoKSxjKCksdSs9bC5tb3ZlKCJdIiksdX1mdW5jdGlvbiB3Mygpe3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOkUzLGdmbUZvb3Rub3RlQ2FsbDpTMyxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzp2MyxnZm1Gb290bm90ZURlZmluaXRpb246VDN9LGV4aXQ6e2dmbUZvb3Rub3RlQ2FsbFN0cmluZzp4MyxnZm1Gb290bm90ZUNhbGw6QTMsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6XzMsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOlIzfX19ZnVuY3Rpb24gazMoZSl7bGV0IG49ITE7cmV0dXJuIGUmJmUuZmlyc3RMaW5lQmxhbmsmJihuPSEwKSx7aGFuZGxlcnM6e2Zvb3Rub3RlRGVmaW5pdGlvbjphLGZvb3Rub3RlUmVmZXJlbmNlOnJDfSx1bnNhZmU6W3tjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OlsibGFiZWwiLCJwaHJhc2luZyIsInJlZmVyZW5jZSJdfV19O2Z1bmN0aW9uIGEoaSxsLHUsYyl7Y29uc3QgZD11LmNyZWF0ZVRyYWNrZXIoYyk7bGV0IGY9ZC5tb3ZlKCJbXiIpO2NvbnN0IG09dS5lbnRlcigiZm9vdG5vdGVEZWZpbml0aW9uIiksYj11LmVudGVyKCJsYWJlbCIpO3JldHVybiBmKz1kLm1vdmUodS5zYWZlKHUuYXNzb2NpYXRpb25JZChpKSx7YmVmb3JlOmYsYWZ0ZXI6Il0ifSkpLGIoKSxmKz1kLm1vdmUoIl06IiksaS5jaGlsZHJlbiYmaS5jaGlsZHJlbi5sZW5ndGg+MCYmKGQuc2hpZnQoNCksZis9ZC5tb3ZlKChuP2AKYDoiICIpK3UuaW5kZW50TGluZXModS5jb250YWluZXJGbG93KGksZC5jdXJyZW50KCkpLG4/YUM6QzMpKSksbSgpLGZ9fWZ1bmN0aW9uIEMzKGUsbixhKXtyZXR1cm4gbj09PTA/ZTphQyhlLG4sYSl9ZnVuY3Rpb24gYUMoZSxuLGEpe3JldHVybihhPyIiOiIgICAgIikrZX1jb25zdCBJMz1bImF1dG9saW5rIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiZGVzdGluYXRpb25SYXciLCJyZWZlcmVuY2UiLCJ0aXRsZVF1b3RlIiwidGl0bGVBcG9zdHJvcGhlIl07aUMucGVlaz1VMztmdW5jdGlvbiBPMygpe3JldHVybntjYW5Db250YWluRW9sczpbImRlbGV0ZSJdLGVudGVyOntzdHJpa2V0aHJvdWdoOkQzfSxleGl0OntzdHJpa2V0aHJvdWdoOk0zfX19ZnVuY3Rpb24gTDMoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJ+IixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OkkzfV0saGFuZGxlcnM6e2RlbGV0ZTppQ319fWZ1bmN0aW9uIEQzKGUpe3RoaXMuZW50ZXIoe3R5cGU6ImRlbGV0ZSIsY2hpbGRyZW46W119LGUpfWZ1bmN0aW9uIE0zKGUpe3RoaXMuZXhpdChlKX1mdW5jdGlvbiBpQyhlLG4sYSxpKXtjb25zdCBsPWEuY3JlYXRlVHJhY2tlcihpKSx1PWEuZW50ZXIoInN0cmlrZXRocm91Z2giKTtsZXQgYz1sLm1vdmUoIn5+Iik7cmV0dXJuIGMrPWEuY29udGFpbmVyUGhyYXNpbmcoZSx7Li4ubC5jdXJyZW50KCksYmVmb3JlOmMsYWZ0ZXI6In4ifSksYys9bC5tb3ZlKCJ+fiIpLHUoKSxjfWZ1bmN0aW9uIFUzKCl7cmV0dXJuIn4ifWZ1bmN0aW9uIEYzKGUpe3JldHVybiBlLmxlbmd0aH1mdW5jdGlvbiBCMyhlLG4pe2NvbnN0IGE9bnx8e30saT0oYS5hbGlnbnx8W10pLmNvbmNhdCgpLGw9YS5zdHJpbmdMZW5ndGh8fEYzLHU9W10sYz1bXSxkPVtdLGY9W107bGV0IG09MCxiPS0xO2Zvcig7KytiPGUubGVuZ3RoOyl7Y29uc3QgVD1bXSxDPVtdO2xldCB4PS0xO2ZvcihlW2JdLmxlbmd0aD5tJiYobT1lW2JdLmxlbmd0aCk7Kyt4PGVbYl0ubGVuZ3RoOyl7Y29uc3QgTj1qMyhlW2JdW3hdKTtpZihhLmFsaWduRGVsaW1pdGVycyE9PSExKXtjb25zdCBrPWwoTik7Q1t4XT1rLChmW3hdPT09dm9pZCAwfHxrPmZbeF0pJiYoZlt4XT1rKX1ULnB1c2goTil9Y1tiXT1ULGRbYl09Q31sZXQgaD0tMTtpZih0eXBlb2YgaT09Im9iamVjdCImJiJsZW5ndGgiaW4gaSlmb3IoOysraDxtOyl1W2hdPXh3KGlbaF0pO2Vsc2V7Y29uc3QgVD14dyhpKTtmb3IoOysraDxtOyl1W2hdPVR9aD0tMTtjb25zdCBTPVtdLEU9W107Zm9yKDsrK2g8bTspe2NvbnN0IFQ9dVtoXTtsZXQgQz0iIix4PSIiO1Q9PT05OT8oQz0iOiIseD0iOiIpOlQ9PT0xMDg/Qz0iOiI6VD09PTExNCYmKHg9IjoiKTtsZXQgTj1hLmFsaWduRGVsaW1pdGVycz09PSExPzE6TWF0aC5tYXgoMSxmW2hdLUMubGVuZ3RoLXgubGVuZ3RoKTtjb25zdCBrPUMrIi0iLnJlcGVhdChOKSt4O2EuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJihOPUMubGVuZ3RoK04reC5sZW5ndGgsTj5mW2hdJiYoZltoXT1OKSxFW2hdPU4pLFNbaF09a31jLnNwbGljZSgxLDAsUyksZC5zcGxpY2UoMSwwLEUpLGI9LTE7Y29uc3QgXz1bXTtmb3IoOysrYjxjLmxlbmd0aDspe2NvbnN0IFQ9Y1tiXSxDPWRbYl07aD0tMTtjb25zdCB4PVtdO2Zvcig7KytoPG07KXtjb25zdCBOPVRbaF18fCIiO2xldCBrPSIiLEw9IiI7aWYoYS5hbGlnbkRlbGltaXRlcnMhPT0hMSl7Y29uc3QgRj1mW2hdLShDW2hdfHwwKSxSPXVbaF07Uj09PTExND9rPSIgIi5yZXBlYXQoRik6Uj09PTk5P0YlMj8oaz0iICIucmVwZWF0KEYvMisuNSksTD0iICIucmVwZWF0KEYvMi0uNSkpOihrPSIgIi5yZXBlYXQoRi8yKSxMPWspOkw9IiAiLnJlcGVhdChGKX1hLmRlbGltaXRlclN0YXJ0IT09ITEmJiFoJiZ4LnB1c2goInwiKSxhLnBhZGRpbmchPT0hMSYmIShhLmFsaWduRGVsaW1pdGVycz09PSExJiZOPT09IiIpJiYoYS5kZWxpbWl0ZXJTdGFydCE9PSExfHxoKSYmeC5wdXNoKCIgIiksYS5hbGlnbkRlbGltaXRlcnMhPT0hMSYmeC5wdXNoKGspLHgucHVzaChOKSxhLmFsaWduRGVsaW1pdGVycyE9PSExJiZ4LnB1c2goTCksYS5wYWRkaW5nIT09ITEmJngucHVzaCgiICIpLChhLmRlbGltaXRlckVuZCE9PSExfHxoIT09bS0xKSYmeC5wdXNoKCJ8Iil9Xy5wdXNoKGEuZGVsaW1pdGVyRW5kPT09ITE/eC5qb2luKCIiKS5yZXBsYWNlKC8gKyQvLCIiKTp4LmpvaW4oIiIpKX1yZXR1cm4gXy5qb2luKGAKYCl9ZnVuY3Rpb24gajMoZSl7cmV0dXJuIGU9PW51bGw/IiI6U3RyaW5nKGUpfWZ1bmN0aW9uIHh3KGUpe2NvbnN0IG49dHlwZW9mIGU9PSJzdHJpbmciP2UuY29kZVBvaW50QXQoMCk6MDtyZXR1cm4gbj09PTY3fHxuPT09OTk/OTk6bj09PTc2fHxuPT09MTA4PzEwODpuPT09ODJ8fG49PT0xMTQ/MTE0OjB9ZnVuY3Rpb24gejMoZSxuLGEsaSl7Y29uc3QgbD1hLmVudGVyKCJibG9ja3F1b3RlIiksdT1hLmNyZWF0ZVRyYWNrZXIoaSk7dS5tb3ZlKCI+ICIpLHUuc2hpZnQoMik7Y29uc3QgYz1hLmluZGVudExpbmVzKGEuY29udGFpbmVyRmxvdyhlLHUuY3VycmVudCgpKSxxMyk7cmV0dXJuIGwoKSxjfWZ1bmN0aW9uIHEzKGUsbixhKXtyZXR1cm4iPiIrKGE/IiI6IiAiKStlfWZ1bmN0aW9uIFAzKGUsbil7cmV0dXJuIEF3KGUsbi5pbkNvbnN0cnVjdCwhMCkmJiFBdyhlLG4ubm90SW5Db25zdHJ1Y3QsITEpfWZ1bmN0aW9uIEF3KGUsbixhKXtpZih0eXBlb2Ygbj09InN0cmluZyImJihuPVtuXSksIW58fG4ubGVuZ3RoPT09MClyZXR1cm4gYTtsZXQgaT0tMTtmb3IoOysraTxuLmxlbmd0aDspaWYoZS5pbmNsdWRlcyhuW2ldKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBfdyhlLG4sYSxpKXtsZXQgbD0tMTtmb3IoOysrbDxhLnVuc2FmZS5sZW5ndGg7KWlmKGEudW5zYWZlW2xdLmNoYXJhY3Rlcj09PWAKYCYmUDMoYS5zdGFjayxhLnVuc2FmZVtsXSkpcmV0dXJuL1sgXHRdLy50ZXN0KGkuYmVmb3JlKT8iIjoiICI7cmV0dXJuYFxcCmB9ZnVuY3Rpb24gRzMoZSxuKXtjb25zdCBhPVN0cmluZyhlKTtsZXQgaT1hLmluZGV4T2YobiksbD1pLHU9MCxjPTA7aWYodHlwZW9mIG4hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHN1YnN0cmluZyIpO2Zvcig7aSE9PS0xOylpPT09bD8rK3U+YyYmKGM9dSk6dT0xLGw9aStuLmxlbmd0aCxpPWEuaW5kZXhPZihuLGwpO3JldHVybiBjfWZ1bmN0aW9uIEgzKGUsbil7cmV0dXJuISEobi5vcHRpb25zLmZlbmNlcz09PSExJiZlLnZhbHVlJiYhZS5sYW5nJiYvW14gXHJcbl0vLnRlc3QoZS52YWx1ZSkmJiEvXltcdCBdKig/OltcclxuXXwkKXwoPzpefFtcclxuXSlbXHQgXSokLy50ZXN0KGUudmFsdWUpKX1mdW5jdGlvbiAkMyhlKXtjb25zdCBuPWUub3B0aW9ucy5mZW5jZXx8ImAiO2lmKG4hPT0iYCImJm4hPT0ifiIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGNvZGUgd2l0aCBgIituKyJgIGZvciBgb3B0aW9ucy5mZW5jZWAsIGV4cGVjdGVkIGBgIGAgYGAgb3IgYH5gIik7cmV0dXJuIG59ZnVuY3Rpb24gVjMoZSxuLGEsaSl7Y29uc3QgbD0kMyhhKSx1PWUudmFsdWV8fCIiLGM9bD09PSJgIj8iR3JhdmVBY2NlbnQiOiJUaWxkZSI7aWYoSDMoZSxhKSl7Y29uc3QgaD1hLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxTPWEuaW5kZW50TGluZXModSxZMyk7cmV0dXJuIGgoKSxTfWNvbnN0IGQ9YS5jcmVhdGVUcmFja2VyKGkpLGY9bC5yZXBlYXQoTWF0aC5tYXgoRzModSxsKSsxLDMpKSxtPWEuZW50ZXIoImNvZGVGZW5jZWQiKTtsZXQgYj1kLm1vdmUoZik7aWYoZS5sYW5nKXtjb25zdCBoPWEuZW50ZXIoYGNvZGVGZW5jZWRMYW5nJHtjfWApO2IrPWQubW92ZShhLnNhZmUoZS5sYW5nLHtiZWZvcmU6YixhZnRlcjoiICIsZW5jb2RlOlsiYCJdLC4uLmQuY3VycmVudCgpfSkpLGgoKX1pZihlLmxhbmcmJmUubWV0YSl7Y29uc3QgaD1hLmVudGVyKGBjb2RlRmVuY2VkTWV0YSR7Y31gKTtiKz1kLm1vdmUoIiAiKSxiKz1kLm1vdmUoYS5zYWZlKGUubWV0YSx7YmVmb3JlOmIsYWZ0ZXI6YApgLGVuY29kZTpbImAiXSwuLi5kLmN1cnJlbnQoKX0pKSxoKCl9cmV0dXJuIGIrPWQubW92ZShgCmApLHUmJihiKz1kLm1vdmUodStgCmApKSxiKz1kLm1vdmUoZiksbSgpLGJ9ZnVuY3Rpb24gWTMoZSxuLGEpe3JldHVybihhPyIiOiIgICAgIikrZX1mdW5jdGlvbiBSYihlKXtjb25zdCBuPWUub3B0aW9ucy5xdW90ZXx8JyInO2lmKG4hPT0nIicmJm4hPT0iJyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHRpdGxlIHdpdGggYCIrbisiYCBmb3IgYG9wdGlvbnMucXVvdGVgLCBleHBlY3RlZCBgXCJgLCBvciBgJ2AiKTtyZXR1cm4gbn1mdW5jdGlvbiBLMyhlLG4sYSxpKXtjb25zdCBsPVJiKGEpLHU9bD09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixjPWEuZW50ZXIoImRlZmluaXRpb24iKTtsZXQgZD1hLmVudGVyKCJsYWJlbCIpO2NvbnN0IGY9YS5jcmVhdGVUcmFja2VyKGkpO2xldCBtPWYubW92ZSgiWyIpO3JldHVybiBtKz1mLm1vdmUoYS5zYWZlKGEuYXNzb2NpYXRpb25JZChlKSx7YmVmb3JlOm0sYWZ0ZXI6Il0iLC4uLmYuY3VycmVudCgpfSkpLG0rPWYubW92ZSgiXTogIiksZCgpLCFlLnVybHx8L1tcMC0gXHUwMDdGXS8udGVzdChlLnVybCk/KGQ9YS5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksbSs9Zi5tb3ZlKCI8IiksbSs9Zi5tb3ZlKGEuc2FmZShlLnVybCx7YmVmb3JlOm0sYWZ0ZXI6Ij4iLC4uLmYuY3VycmVudCgpfSkpLG0rPWYubW92ZSgiPiIpKTooZD1hLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLG0rPWYubW92ZShhLnNhZmUoZS51cmwse2JlZm9yZTptLGFmdGVyOmUudGl0bGU/IiAiOmAKYCwuLi5mLmN1cnJlbnQoKX0pKSksZCgpLGUudGl0bGUmJihkPWEuZW50ZXIoYHRpdGxlJHt1fWApLG0rPWYubW92ZSgiICIrbCksbSs9Zi5tb3ZlKGEuc2FmZShlLnRpdGxlLHtiZWZvcmU6bSxhZnRlcjpsLC4uLmYuY3VycmVudCgpfSkpLG0rPWYubW92ZShsKSxkKCkpLGMoKSxtfWZ1bmN0aW9uIFczKGUpe2NvbnN0IG49ZS5vcHRpb25zLmVtcGhhc2lzfHwiKiI7aWYobiE9PSIqIiYmbiE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgZW1waGFzaXMgd2l0aCBgIituKyJgIGZvciBgb3B0aW9ucy5lbXBoYXNpc2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIG59ZnVuY3Rpb24gbG8oZSl7cmV0dXJuIiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9ZnVuY3Rpb24gR2woZSxuLGEpe2NvbnN0IGk9UWEoZSksbD1RYShuKTtyZXR1cm4gaT09PXZvaWQgMD9sPT09dm9pZCAwP2E9PT0iXyI/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9Omw9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMH06e2luc2lkZTohMSxvdXRzaWRlOiEwfTppPT09MT9sPT09dm9pZCAwP3tpbnNpZGU6ITEsb3V0c2lkZTohMX06bD09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9Omw9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTpsPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITF9OntpbnNpZGU6ITEsb3V0c2lkZTohMX19b0MucGVlaz1YMztmdW5jdGlvbiBvQyhlLG4sYSxpKXtjb25zdCBsPVczKGEpLHU9YS5lbnRlcigiZW1waGFzaXMiKSxjPWEuY3JlYXRlVHJhY2tlcihpKSxkPWMubW92ZShsKTtsZXQgZj1jLm1vdmUoYS5jb250YWluZXJQaHJhc2luZyhlLHthZnRlcjpsLGJlZm9yZTpkLC4uLmMuY3VycmVudCgpfSkpO2NvbnN0IG09Zi5jaGFyQ29kZUF0KDApLGI9R2woaS5iZWZvcmUuY2hhckNvZGVBdChpLmJlZm9yZS5sZW5ndGgtMSksbSxsKTtiLmluc2lkZSYmKGY9bG8obSkrZi5zbGljZSgxKSk7Y29uc3QgaD1mLmNoYXJDb2RlQXQoZi5sZW5ndGgtMSksUz1HbChpLmFmdGVyLmNoYXJDb2RlQXQoMCksaCxsKTtTLmluc2lkZSYmKGY9Zi5zbGljZSgwLC0xKStsbyhoKSk7Y29uc3QgRT1jLm1vdmUobCk7cmV0dXJuIHUoKSxhLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6Uy5vdXRzaWRlLGJlZm9yZTpiLm91dHNpZGV9LGQrZitFfWZ1bmN0aW9uIFgzKGUsbixhKXtyZXR1cm4gYS5vcHRpb25zLmVtcGhhc2lzfHwiKiJ9ZnVuY3Rpb24gWjMoZSxuKXtsZXQgYT0hMTtyZXR1cm4gQWIoZSxmdW5jdGlvbihpKXtpZigidmFsdWUiaW4gaSYmL1xyP1xufFxyLy50ZXN0KGkudmFsdWUpfHxpLnR5cGU9PT0iYnJlYWsiKXJldHVybiBhPSEwLHpofSksISEoKCFlLmRlcHRofHxlLmRlcHRoPDMpJiZiYihlKSYmKG4ub3B0aW9ucy5zZXRleHR8fGEpKX1mdW5jdGlvbiBRMyhlLG4sYSxpKXtjb25zdCBsPU1hdGgubWF4KE1hdGgubWluKDYsZS5kZXB0aHx8MSksMSksdT1hLmNyZWF0ZVRyYWNrZXIoaSk7aWYoWjMoZSxhKSl7Y29uc3QgYj1hLmVudGVyKCJoZWFkaW5nU2V0ZXh0IiksaD1hLmVudGVyKCJwaHJhc2luZyIpLFM9YS5jb250YWluZXJQaHJhc2luZyhlLHsuLi51LmN1cnJlbnQoKSxiZWZvcmU6YApgLGFmdGVyOmAKYH0pO3JldHVybiBoKCksYigpLFMrYApgKyhsPT09MT8iPSI6Ii0iKS5yZXBlYXQoUy5sZW5ndGgtKE1hdGgubWF4KFMubGFzdEluZGV4T2YoIlxyIiksUy5sYXN0SW5kZXhPZihgCmApKSsxKSl9Y29uc3QgYz0iIyIucmVwZWF0KGwpLGQ9YS5lbnRlcigiaGVhZGluZ0F0eCIpLGY9YS5lbnRlcigicGhyYXNpbmciKTt1Lm1vdmUoYysiICIpO2xldCBtPWEuY29udGFpbmVyUGhyYXNpbmcoZSx7YmVmb3JlOiIjICIsYWZ0ZXI6YApgLC4uLnUuY3VycmVudCgpfSk7cmV0dXJuL15bXHQgXS8udGVzdChtKSYmKG09bG8obS5jaGFyQ29kZUF0KDApKSttLnNsaWNlKDEpKSxtPW0/YysiICIrbTpjLGEub3B0aW9ucy5jbG9zZUF0eCYmKG0rPSIgIitjKSxmKCksZCgpLG19bEMucGVlaz1KMztmdW5jdGlvbiBsQyhlKXtyZXR1cm4gZS52YWx1ZXx8IiJ9ZnVuY3Rpb24gSjMoKXtyZXR1cm4iPCJ9c0MucGVlaz1lSDtmdW5jdGlvbiBzQyhlLG4sYSxpKXtjb25zdCBsPVJiKGEpLHU9bD09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixjPWEuZW50ZXIoImltYWdlIik7bGV0IGQ9YS5lbnRlcigibGFiZWwiKTtjb25zdCBmPWEuY3JlYXRlVHJhY2tlcihpKTtsZXQgbT1mLm1vdmUoIiFbIik7cmV0dXJuIG0rPWYubW92ZShhLnNhZmUoZS5hbHQse2JlZm9yZTptLGFmdGVyOiJdIiwuLi5mLmN1cnJlbnQoKX0pKSxtKz1mLm1vdmUoIl0oIiksZCgpLCFlLnVybCYmZS50aXRsZXx8L1tcMC0gXHUwMDdGXS8udGVzdChlLnVybCk/KGQ9YS5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksbSs9Zi5tb3ZlKCI8IiksbSs9Zi5tb3ZlKGEuc2FmZShlLnVybCx7YmVmb3JlOm0sYWZ0ZXI6Ij4iLC4uLmYuY3VycmVudCgpfSkpLG0rPWYubW92ZSgiPiIpKTooZD1hLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLG0rPWYubW92ZShhLnNhZmUoZS51cmwse2JlZm9yZTptLGFmdGVyOmUudGl0bGU/IiAiOiIpIiwuLi5mLmN1cnJlbnQoKX0pKSksZCgpLGUudGl0bGUmJihkPWEuZW50ZXIoYHRpdGxlJHt1fWApLG0rPWYubW92ZSgiICIrbCksbSs9Zi5tb3ZlKGEuc2FmZShlLnRpdGxlLHtiZWZvcmU6bSxhZnRlcjpsLC4uLmYuY3VycmVudCgpfSkpLG0rPWYubW92ZShsKSxkKCkpLG0rPWYubW92ZSgiKSIpLGMoKSxtfWZ1bmN0aW9uIGVIKCl7cmV0dXJuIiEifXVDLnBlZWs9dEg7ZnVuY3Rpb24gdUMoZSxuLGEsaSl7Y29uc3QgbD1lLnJlZmVyZW5jZVR5cGUsdT1hLmVudGVyKCJpbWFnZVJlZmVyZW5jZSIpO2xldCBjPWEuZW50ZXIoImxhYmVsIik7Y29uc3QgZD1hLmNyZWF0ZVRyYWNrZXIoaSk7bGV0IGY9ZC5tb3ZlKCIhWyIpO2NvbnN0IG09YS5zYWZlKGUuYWx0LHtiZWZvcmU6ZixhZnRlcjoiXSIsLi4uZC5jdXJyZW50KCl9KTtmKz1kLm1vdmUobSsiXVsiKSxjKCk7Y29uc3QgYj1hLnN0YWNrO2Euc3RhY2s9W10sYz1hLmVudGVyKCJyZWZlcmVuY2UiKTtjb25zdCBoPWEuc2FmZShhLmFzc29jaWF0aW9uSWQoZSkse2JlZm9yZTpmLGFmdGVyOiJdIiwuLi5kLmN1cnJlbnQoKX0pO3JldHVybiBjKCksYS5zdGFjaz1iLHUoKSxsPT09ImZ1bGwifHwhbXx8bSE9PWg/Zis9ZC5tb3ZlKGgrIl0iKTpsPT09InNob3J0Y3V0Ij9mPWYuc2xpY2UoMCwtMSk6Zis9ZC5tb3ZlKCJdIiksZn1mdW5jdGlvbiB0SCgpe3JldHVybiIhIn1jQy5wZWVrPW5IO2Z1bmN0aW9uIGNDKGUsbixhKXtsZXQgaT1lLnZhbHVlfHwiIixsPSJgIix1PS0xO2Zvcig7bmV3IFJlZ0V4cCgiKF58W15gXSkiK2wrIihbXmBdfCQpIikudGVzdChpKTspbCs9ImAiO2ZvcigvW14gXHJcbl0vLnRlc3QoaSkmJigvXlsgXHJcbl0vLnRlc3QoaSkmJi9bIFxyXG5dJC8udGVzdChpKXx8L15gfGAkLy50ZXN0KGkpKSYmKGk9IiAiK2krIiAiKTsrK3U8YS51bnNhZmUubGVuZ3RoOyl7Y29uc3QgYz1hLnVuc2FmZVt1XSxkPWEuY29tcGlsZVBhdHRlcm4oYyk7bGV0IGY7aWYoYy5hdEJyZWFrKWZvcig7Zj1kLmV4ZWMoaSk7KXtsZXQgbT1mLmluZGV4O2kuY2hhckNvZGVBdChtKT09PTEwJiZpLmNoYXJDb2RlQXQobS0xKT09PTEzJiZtLS0saT1pLnNsaWNlKDAsbSkrIiAiK2kuc2xpY2UoZi5pbmRleCsxKX19cmV0dXJuIGwraStsfWZ1bmN0aW9uIG5IKCl7cmV0dXJuImAifWZ1bmN0aW9uIGRDKGUsbil7Y29uc3QgYT1iYihlKTtyZXR1cm4hISghbi5vcHRpb25zLnJlc291cmNlTGluayYmZS51cmwmJiFlLnRpdGxlJiZlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLmxlbmd0aD09PTEmJmUuY2hpbGRyZW5bMF0udHlwZT09PSJ0ZXh0IiYmKGE9PT1lLnVybHx8Im1haWx0bzoiK2E9PT1lLnVybCkmJi9eW2Etel1bYS16Ky4tXSs6L2kudGVzdChlLnVybCkmJiEvW1wwLSA8Plx1MDA3Rl0vLnRlc3QoZS51cmwpKX1wQy5wZWVrPXJIO2Z1bmN0aW9uIHBDKGUsbixhLGkpe2NvbnN0IGw9UmIoYSksdT1sPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLGM9YS5jcmVhdGVUcmFja2VyKGkpO2xldCBkLGY7aWYoZEMoZSxhKSl7Y29uc3QgYj1hLnN0YWNrO2Euc3RhY2s9W10sZD1hLmVudGVyKCJhdXRvbGluayIpO2xldCBoPWMubW92ZSgiPCIpO3JldHVybiBoKz1jLm1vdmUoYS5jb250YWluZXJQaHJhc2luZyhlLHtiZWZvcmU6aCxhZnRlcjoiPiIsLi4uYy5jdXJyZW50KCl9KSksaCs9Yy5tb3ZlKCI+IiksZCgpLGEuc3RhY2s9YixofWQ9YS5lbnRlcigibGluayIpLGY9YS5lbnRlcigibGFiZWwiKTtsZXQgbT1jLm1vdmUoIlsiKTtyZXR1cm4gbSs9Yy5tb3ZlKGEuY29udGFpbmVyUGhyYXNpbmcoZSx7YmVmb3JlOm0sYWZ0ZXI6Il0oIiwuLi5jLmN1cnJlbnQoKX0pKSxtKz1jLm1vdmUoIl0oIiksZigpLCFlLnVybCYmZS50aXRsZXx8L1tcMC0gXHUwMDdGXS8udGVzdChlLnVybCk/KGY9YS5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksbSs9Yy5tb3ZlKCI8IiksbSs9Yy5tb3ZlKGEuc2FmZShlLnVybCx7YmVmb3JlOm0sYWZ0ZXI6Ij4iLC4uLmMuY3VycmVudCgpfSkpLG0rPWMubW92ZSgiPiIpKTooZj1hLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLG0rPWMubW92ZShhLnNhZmUoZS51cmwse2JlZm9yZTptLGFmdGVyOmUudGl0bGU/IiAiOiIpIiwuLi5jLmN1cnJlbnQoKX0pKSksZigpLGUudGl0bGUmJihmPWEuZW50ZXIoYHRpdGxlJHt1fWApLG0rPWMubW92ZSgiICIrbCksbSs9Yy5tb3ZlKGEuc2FmZShlLnRpdGxlLHtiZWZvcmU6bSxhZnRlcjpsLC4uLmMuY3VycmVudCgpfSkpLG0rPWMubW92ZShsKSxmKCkpLG0rPWMubW92ZSgiKSIpLGQoKSxtfWZ1bmN0aW9uIHJIKGUsbixhKXtyZXR1cm4gZEMoZSxhKT8iPCI6IlsifWZDLnBlZWs9YUg7ZnVuY3Rpb24gZkMoZSxuLGEsaSl7Y29uc3QgbD1lLnJlZmVyZW5jZVR5cGUsdT1hLmVudGVyKCJsaW5rUmVmZXJlbmNlIik7bGV0IGM9YS5lbnRlcigibGFiZWwiKTtjb25zdCBkPWEuY3JlYXRlVHJhY2tlcihpKTtsZXQgZj1kLm1vdmUoIlsiKTtjb25zdCBtPWEuY29udGFpbmVyUGhyYXNpbmcoZSx7YmVmb3JlOmYsYWZ0ZXI6Il0iLC4uLmQuY3VycmVudCgpfSk7Zis9ZC5tb3ZlKG0rIl1bIiksYygpO2NvbnN0IGI9YS5zdGFjazthLnN0YWNrPVtdLGM9YS5lbnRlcigicmVmZXJlbmNlIik7Y29uc3QgaD1hLnNhZmUoYS5hc3NvY2lhdGlvbklkKGUpLHtiZWZvcmU6ZixhZnRlcjoiXSIsLi4uZC5jdXJyZW50KCl9KTtyZXR1cm4gYygpLGEuc3RhY2s9Yix1KCksbD09PSJmdWxsInx8IW18fG0hPT1oP2YrPWQubW92ZShoKyJdIik6bD09PSJzaG9ydGN1dCI/Zj1mLnNsaWNlKDAsLTEpOmYrPWQubW92ZSgiXSIpLGZ9ZnVuY3Rpb24gYUgoKXtyZXR1cm4iWyJ9ZnVuY3Rpb24gTmIoZSl7Y29uc3Qgbj1lLm9wdGlvbnMuYnVsbGV0fHwiKiI7aWYobiE9PSIqIiYmbiE9PSIrIiYmbiE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIituKyJgIGZvciBgb3B0aW9ucy5idWxsZXRgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7cmV0dXJuIG59ZnVuY3Rpb24gaUgoZSl7Y29uc3Qgbj1OYihlKSxhPWUub3B0aW9ucy5idWxsZXRPdGhlcjtpZighYSlyZXR1cm4gbj09PSIqIj8iLSI6IioiO2lmKGEhPT0iKiImJmEhPT0iKyImJmEhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrYSsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3RoZXJgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7aWYoYT09PW4pdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgYnVsbGV0YCAoYCIrbisiYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAiK2ErImApIHRvIGJlIGRpZmZlcmVudCIpO3JldHVybiBhfWZ1bmN0aW9uIG9IKGUpe2NvbnN0IG49ZS5vcHRpb25zLmJ1bGxldE9yZGVyZWR8fCIuIjtpZihuIT09Ii4iJiZuIT09IikiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK24rImAgZm9yIGBvcHRpb25zLmJ1bGxldE9yZGVyZWRgLCBleHBlY3RlZCBgLmAgb3IgYClgIik7cmV0dXJuIG59ZnVuY3Rpb24gZ0MoZSl7Y29uc3Qgbj1lLm9wdGlvbnMucnVsZXx8IioiO2lmKG4hPT0iKiImJm4hPT0iLSImJm4hPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHJ1bGVzIHdpdGggYCIrbisiYCBmb3IgYG9wdGlvbnMucnVsZWAsIGV4cGVjdGVkIGAqYCwgYC1gLCBvciBgX2AiKTtyZXR1cm4gbn1mdW5jdGlvbiBsSChlLG4sYSxpKXtjb25zdCBsPWEuZW50ZXIoImxpc3QiKSx1PWEuYnVsbGV0Q3VycmVudDtsZXQgYz1lLm9yZGVyZWQ/b0goYSk6TmIoYSk7Y29uc3QgZD1lLm9yZGVyZWQ/Yz09PSIuIj8iKSI6Ii4iOmlIKGEpO2xldCBmPW4mJmEuYnVsbGV0TGFzdFVzZWQ/Yz09PWEuYnVsbGV0TGFzdFVzZWQ6ITE7aWYoIWUub3JkZXJlZCl7Y29uc3QgYj1lLmNoaWxkcmVuP2UuY2hpbGRyZW5bMF06dm9pZCAwO2lmKChjPT09IioifHxjPT09Ii0iKSYmYiYmKCFiLmNoaWxkcmVufHwhYi5jaGlsZHJlblswXSkmJmEuc3RhY2tbYS5zdGFjay5sZW5ndGgtMV09PT0ibGlzdCImJmEuc3RhY2tbYS5zdGFjay5sZW5ndGgtMl09PT0ibGlzdEl0ZW0iJiZhLnN0YWNrW2Euc3RhY2subGVuZ3RoLTNdPT09Imxpc3QiJiZhLnN0YWNrW2Euc3RhY2subGVuZ3RoLTRdPT09Imxpc3RJdGVtIiYmYS5pbmRleFN0YWNrW2EuaW5kZXhTdGFjay5sZW5ndGgtMV09PT0wJiZhLmluZGV4U3RhY2tbYS5pbmRleFN0YWNrLmxlbmd0aC0yXT09PTAmJmEuaW5kZXhTdGFja1thLmluZGV4U3RhY2subGVuZ3RoLTNdPT09MCYmKGY9ITApLGdDKGEpPT09YyYmYil7bGV0IGg9LTE7Zm9yKDsrK2g8ZS5jaGlsZHJlbi5sZW5ndGg7KXtjb25zdCBTPWUuY2hpbGRyZW5baF07aWYoUyYmUy50eXBlPT09Imxpc3RJdGVtIiYmUy5jaGlsZHJlbiYmUy5jaGlsZHJlblswXSYmUy5jaGlsZHJlblswXS50eXBlPT09InRoZW1hdGljQnJlYWsiKXtmPSEwO2JyZWFrfX19fWYmJihjPWQpLGEuYnVsbGV0Q3VycmVudD1jO2NvbnN0IG09YS5jb250YWluZXJGbG93KGUsaSk7cmV0dXJuIGEuYnVsbGV0TGFzdFVzZWQ9YyxhLmJ1bGxldEN1cnJlbnQ9dSxsKCksbX1mdW5jdGlvbiBzSChlKXtjb25zdCBuPWUub3B0aW9ucy5saXN0SXRlbUluZGVudHx8Im9uZSI7aWYobiE9PSJ0YWIiJiZuIT09Im9uZSImJm4hPT0ibWl4ZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK24rImAgZm9yIGBvcHRpb25zLmxpc3RJdGVtSW5kZW50YCwgZXhwZWN0ZWQgYHRhYmAsIGBvbmVgLCBvciBgbWl4ZWRgIik7cmV0dXJuIG59ZnVuY3Rpb24gdUgoZSxuLGEsaSl7Y29uc3QgbD1zSChhKTtsZXQgdT1hLmJ1bGxldEN1cnJlbnR8fE5iKGEpO24mJm4udHlwZT09PSJsaXN0IiYmbi5vcmRlcmVkJiYodT0odHlwZW9mIG4uc3RhcnQ9PSJudW1iZXIiJiZuLnN0YXJ0Pi0xP24uc3RhcnQ6MSkrKGEub3B0aW9ucy5pbmNyZW1lbnRMaXN0TWFya2VyPT09ITE/MDpuLmNoaWxkcmVuLmluZGV4T2YoZSkpK3UpO2xldCBjPXUubGVuZ3RoKzE7KGw9PT0idGFiInx8bD09PSJtaXhlZCImJihuJiZuLnR5cGU9PT0ibGlzdCImJm4uc3ByZWFkfHxlLnNwcmVhZCkpJiYoYz1NYXRoLmNlaWwoYy80KSo0KTtjb25zdCBkPWEuY3JlYXRlVHJhY2tlcihpKTtkLm1vdmUodSsiICIucmVwZWF0KGMtdS5sZW5ndGgpKSxkLnNoaWZ0KGMpO2NvbnN0IGY9YS5lbnRlcigibGlzdEl0ZW0iKSxtPWEuaW5kZW50TGluZXMoYS5jb250YWluZXJGbG93KGUsZC5jdXJyZW50KCkpLGIpO3JldHVybiBmKCksbTtmdW5jdGlvbiBiKGgsUyxFKXtyZXR1cm4gUz8oRT8iIjoiICIucmVwZWF0KGMpKStoOihFP3U6dSsiICIucmVwZWF0KGMtdS5sZW5ndGgpKStofX1mdW5jdGlvbiBjSChlLG4sYSxpKXtjb25zdCBsPWEuZW50ZXIoInBhcmFncmFwaCIpLHU9YS5lbnRlcigicGhyYXNpbmciKSxjPWEuY29udGFpbmVyUGhyYXNpbmcoZSxpKTtyZXR1cm4gdSgpLGwoKSxjfWNvbnN0IGRIPVFsKFsiYnJlYWsiLCJkZWxldGUiLCJlbXBoYXNpcyIsImZvb3Rub3RlIiwiZm9vdG5vdGVSZWZlcmVuY2UiLCJpbWFnZSIsImltYWdlUmVmZXJlbmNlIiwiaW5saW5lQ29kZSIsImlubGluZU1hdGgiLCJsaW5rIiwibGlua1JlZmVyZW5jZSIsIm1keEpzeFRleHRFbGVtZW50IiwibWR4VGV4dEV4cHJlc3Npb24iLCJzdHJvbmciLCJ0ZXh0IiwidGV4dERpcmVjdGl2ZSJdKTtmdW5jdGlvbiBwSChlLG4sYSxpKXtyZXR1cm4oZS5jaGlsZHJlbi5zb21lKGZ1bmN0aW9uKGMpe3JldHVybiBkSChjKX0pP2EuY29udGFpbmVyUGhyYXNpbmc6YS5jb250YWluZXJGbG93KS5jYWxsKGEsZSxpKX1mdW5jdGlvbiBmSChlKXtjb25zdCBuPWUub3B0aW9ucy5zdHJvbmd8fCIqIjtpZihuIT09IioiJiZuIT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBzdHJvbmcgd2l0aCBgIituKyJgIGZvciBgb3B0aW9ucy5zdHJvbmdgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBufW1DLnBlZWs9Z0g7ZnVuY3Rpb24gbUMoZSxuLGEsaSl7Y29uc3QgbD1mSChhKSx1PWEuZW50ZXIoInN0cm9uZyIpLGM9YS5jcmVhdGVUcmFja2VyKGkpLGQ9Yy5tb3ZlKGwrbCk7bGV0IGY9Yy5tb3ZlKGEuY29udGFpbmVyUGhyYXNpbmcoZSx7YWZ0ZXI6bCxiZWZvcmU6ZCwuLi5jLmN1cnJlbnQoKX0pKTtjb25zdCBtPWYuY2hhckNvZGVBdCgwKSxiPUdsKGkuYmVmb3JlLmNoYXJDb2RlQXQoaS5iZWZvcmUubGVuZ3RoLTEpLG0sbCk7Yi5pbnNpZGUmJihmPWxvKG0pK2Yuc2xpY2UoMSkpO2NvbnN0IGg9Zi5jaGFyQ29kZUF0KGYubGVuZ3RoLTEpLFM9R2woaS5hZnRlci5jaGFyQ29kZUF0KDApLGgsbCk7Uy5pbnNpZGUmJihmPWYuc2xpY2UoMCwtMSkrbG8oaCkpO2NvbnN0IEU9Yy5tb3ZlKGwrbCk7cmV0dXJuIHUoKSxhLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6Uy5vdXRzaWRlLGJlZm9yZTpiLm91dHNpZGV9LGQrZitFfWZ1bmN0aW9uIGdIKGUsbixhKXtyZXR1cm4gYS5vcHRpb25zLnN0cm9uZ3x8IioifWZ1bmN0aW9uIG1IKGUsbixhLGkpe3JldHVybiBhLnNhZmUoZS52YWx1ZSxpKX1mdW5jdGlvbiBoSChlKXtjb25zdCBuPWUub3B0aW9ucy5ydWxlUmVwZXRpdGlvbnx8MztpZihuPDMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHJ1bGVzIHdpdGggcmVwZXRpdGlvbiBgIituKyJgIGZvciBgb3B0aW9ucy5ydWxlUmVwZXRpdGlvbmAsIGV4cGVjdGVkIGAzYCBvciBtb3JlIik7cmV0dXJuIG59ZnVuY3Rpb24gYkgoZSxuLGEpe2NvbnN0IGk9KGdDKGEpKyhhLm9wdGlvbnMucnVsZVNwYWNlcz8iICI6IiIpKS5yZXBlYXQoaEgoYSkpO3JldHVybiBhLm9wdGlvbnMucnVsZVNwYWNlcz9pLnNsaWNlKDAsLTEpOml9Y29uc3QgaEM9e2Jsb2NrcXVvdGU6ejMsYnJlYWs6X3csY29kZTpWMyxkZWZpbml0aW9uOkszLGVtcGhhc2lzOm9DLGhhcmRCcmVhazpfdyxoZWFkaW5nOlEzLGh0bWw6bEMsaW1hZ2U6c0MsaW1hZ2VSZWZlcmVuY2U6dUMsaW5saW5lQ29kZTpjQyxsaW5rOnBDLGxpbmtSZWZlcmVuY2U6ZkMsbGlzdDpsSCxsaXN0SXRlbTp1SCxwYXJhZ3JhcGg6Y0gscm9vdDpwSCxzdHJvbmc6bUMsdGV4dDptSCx0aGVtYXRpY0JyZWFrOmJIfTtmdW5jdGlvbiB5SCgpe3JldHVybntlbnRlcjp7dGFibGU6RUgsdGFibGVEYXRhOlJ3LHRhYmxlSGVhZGVyOlJ3LHRhYmxlUm93OnZIfSxleGl0Ontjb2RlVGV4dDpUSCx0YWJsZTpTSCx0YWJsZURhdGE6U2gsdGFibGVIZWFkZXI6U2gsdGFibGVSb3c6U2h9fX1mdW5jdGlvbiBFSChlKXtjb25zdCBuPWUuX2FsaWduO3RoaXMuZW50ZXIoe3R5cGU6InRhYmxlIixhbGlnbjpuLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYT09PSJub25lIj9udWxsOmF9KSxjaGlsZHJlbjpbXX0sZSksdGhpcy5kYXRhLmluVGFibGU9ITB9ZnVuY3Rpb24gU0goZSl7dGhpcy5leGl0KGUpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiB2SChlKXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZVJvdyIsY2hpbGRyZW46W119LGUpfWZ1bmN0aW9uIFNoKGUpe3RoaXMuZXhpdChlKX1mdW5jdGlvbiBSdyhlKXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBUSChlKXtsZXQgbj10aGlzLnJlc3VtZSgpO3RoaXMuZGF0YS5pblRhYmxlJiYobj1uLnJlcGxhY2UoL1xcKFtcXHxdKS9nLHhIKSk7Y29uc3QgYT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2EudHlwZSxhLnZhbHVlPW4sdGhpcy5leGl0KGUpfWZ1bmN0aW9uIHhIKGUsbil7cmV0dXJuIG49PT0ifCI/bjplfWZ1bmN0aW9uIEFIKGUpe2NvbnN0IG49ZXx8e30sYT1uLnRhYmxlQ2VsbFBhZGRpbmcsaT1uLnRhYmxlUGlwZUFsaWduLGw9bi5zdHJpbmdMZW5ndGgsdT1hPyIgIjoifCI7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ8IixhZnRlcjoiWwkgOi1dIn0se2NoYXJhY3RlcjoifCIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiOiIsYWZ0ZXI6Ii0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7aW5saW5lQ29kZTpTLHRhYmxlOmMsdGFibGVDZWxsOmYsdGFibGVSb3c6ZH19O2Z1bmN0aW9uIGMoRSxfLFQsQyl7cmV0dXJuIG0oYihFLFQsQyksRS5hbGlnbil9ZnVuY3Rpb24gZChFLF8sVCxDKXtjb25zdCB4PWgoRSxULEMpLE49bShbeF0pO3JldHVybiBOLnNsaWNlKDAsTi5pbmRleE9mKGAKYCkpfWZ1bmN0aW9uIGYoRSxfLFQsQyl7Y29uc3QgeD1ULmVudGVyKCJ0YWJsZUNlbGwiKSxOPVQuZW50ZXIoInBocmFzaW5nIiksaz1ULmNvbnRhaW5lclBocmFzaW5nKEUsey4uLkMsYmVmb3JlOnUsYWZ0ZXI6dX0pO3JldHVybiBOKCkseCgpLGt9ZnVuY3Rpb24gbShFLF8pe3JldHVybiBCMyhFLHthbGlnbjpfLGFsaWduRGVsaW1pdGVyczppLHBhZGRpbmc6YSxzdHJpbmdMZW5ndGg6bH0pfWZ1bmN0aW9uIGIoRSxfLFQpe2NvbnN0IEM9RS5jaGlsZHJlbjtsZXQgeD0tMTtjb25zdCBOPVtdLGs9Xy5lbnRlcigidGFibGUiKTtmb3IoOysreDxDLmxlbmd0aDspTlt4XT1oKENbeF0sXyxUKTtyZXR1cm4gaygpLE59ZnVuY3Rpb24gaChFLF8sVCl7Y29uc3QgQz1FLmNoaWxkcmVuO2xldCB4PS0xO2NvbnN0IE49W10saz1fLmVudGVyKCJ0YWJsZVJvdyIpO2Zvcig7Kyt4PEMubGVuZ3RoOylOW3hdPWYoQ1t4XSxFLF8sVCk7cmV0dXJuIGsoKSxOfWZ1bmN0aW9uIFMoRSxfLFQpe2xldCBDPWhDLmlubGluZUNvZGUoRSxfLFQpO3JldHVybiBULnN0YWNrLmluY2x1ZGVzKCJ0YWJsZUNlbGwiKSYmKEM9Qy5yZXBsYWNlKC9cfC9nLCJcXCQmIikpLEN9fWZ1bmN0aW9uIF9IKCl7cmV0dXJue2V4aXQ6e3Rhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQ6TncsdGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkOk53LHBhcmFncmFwaDpOSH19fWZ1bmN0aW9uIFJIKCl7cmV0dXJue3Vuc2FmZTpbe2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjoiWzp8LV0ifV0saGFuZGxlcnM6e2xpc3RJdGVtOndIfX19ZnVuY3Rpb24gTncoZSl7Y29uc3Qgbj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO24udHlwZSxuLmNoZWNrZWQ9ZS50eXBlPT09InRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQifWZ1bmN0aW9uIE5IKGUpe2NvbnN0IG49dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtpZihuJiZuLnR5cGU9PT0ibGlzdEl0ZW0iJiZ0eXBlb2Ygbi5jaGVja2VkPT0iYm9vbGVhbiIpe2NvbnN0IGE9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTthLnR5cGU7Y29uc3QgaT1hLmNoaWxkcmVuWzBdO2lmKGkmJmkudHlwZT09PSJ0ZXh0Iil7Y29uc3QgbD1uLmNoaWxkcmVuO2xldCB1PS0xLGM7Zm9yKDsrK3U8bC5sZW5ndGg7KXtjb25zdCBkPWxbdV07aWYoZC50eXBlPT09InBhcmFncmFwaCIpe2M9ZDticmVha319Yz09PWEmJihpLnZhbHVlPWkudmFsdWUuc2xpY2UoMSksaS52YWx1ZS5sZW5ndGg9PT0wP2EuY2hpbGRyZW4uc2hpZnQoKTphLnBvc2l0aW9uJiZpLnBvc2l0aW9uJiZ0eXBlb2YgaS5wb3NpdGlvbi5zdGFydC5vZmZzZXQ9PSJudW1iZXIiJiYoaS5wb3NpdGlvbi5zdGFydC5jb2x1bW4rKyxpLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCsrLGEucG9zaXRpb24uc3RhcnQ9T2JqZWN0LmFzc2lnbih7fSxpLnBvc2l0aW9uLnN0YXJ0KSkpfX10aGlzLmV4aXQoZSl9ZnVuY3Rpb24gd0goZSxuLGEsaSl7Y29uc3QgbD1lLmNoaWxkcmVuWzBdLHU9dHlwZW9mIGUuY2hlY2tlZD09ImJvb2xlYW4iJiZsJiZsLnR5cGU9PT0icGFyYWdyYXBoIixjPSJbIisoZS5jaGVja2VkPyJ4IjoiICIpKyJdICIsZD1hLmNyZWF0ZVRyYWNrZXIoaSk7dSYmZC5tb3ZlKGMpO2xldCBmPWhDLmxpc3RJdGVtKGUsbixhLHsuLi5pLC4uLmQuY3VycmVudCgpfSk7cmV0dXJuIHUmJihmPWYucmVwbGFjZSgvXig/OlsqKy1dfFxkK1wuKShbXHJcbl18IHsxLDN9KS8sbSkpLGY7ZnVuY3Rpb24gbShiKXtyZXR1cm4gYitjfX1mdW5jdGlvbiBrSCgpe3JldHVybltsMygpLHczKCksTzMoKSx5SCgpLF9IKCldfWZ1bmN0aW9uIENIKGUpe3JldHVybntleHRlbnNpb25zOltzMygpLGszKGUpLEwzKCksQUgoZSksUkgoKV19fWNvbnN0IElIPXt0b2tlbml6ZTpGSCxwYXJ0aWFsOiEwfSxiQz17dG9rZW5pemU6QkgscGFydGlhbDohMH0seUM9e3Rva2VuaXplOmpILHBhcnRpYWw6ITB9LEVDPXt0b2tlbml6ZTp6SCxwYXJ0aWFsOiEwfSxPSD17dG9rZW5pemU6cUgscGFydGlhbDohMH0sU0M9e25hbWU6Ind3d0F1dG9saW5rIix0b2tlbml6ZTpNSCxwcmV2aW91czpUQ30sdkM9e25hbWU6InByb3RvY29sQXV0b2xpbmsiLHRva2VuaXplOlVILHByZXZpb3VzOnhDfSxycj17bmFtZToiZW1haWxBdXRvbGluayIsdG9rZW5pemU6REgscHJldmlvdXM6QUN9LERuPXt9O2Z1bmN0aW9uIExIKCl7cmV0dXJue3RleHQ6RG59fWxldCB0YT00ODtmb3IoO3RhPDEyMzspRG5bdGFdPXJyLHRhKyssdGE9PT01OD90YT02NTp0YT09PTkxJiYodGE9OTcpO0RuWzQzXT1ycjtEbls0NV09cnI7RG5bNDZdPXJyO0RuWzk1XT1ycjtEbls3Ml09W3JyLHZDXTtEblsxMDRdPVtycix2Q107RG5bODddPVtycixTQ107RG5bMTE5XT1bcnIsU0NdO2Z1bmN0aW9uIERIKGUsbixhKXtjb25zdCBpPXRoaXM7bGV0IGwsdTtyZXR1cm4gYztmdW5jdGlvbiBjKGgpe3JldHVybiFIaChoKXx8IUFDLmNhbGwoaSxpLnByZXZpb3VzKXx8d2IoaS5ldmVudHMpP2EoaCk6KGUuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLGUuZW50ZXIoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksZChoKSl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gSGgoaCk/KGUuY29uc3VtZShoKSxkKTpoPT09NjQ/KGUuY29uc3VtZShoKSxmKTphKGgpfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGg9PT00Nj9lLmNoZWNrKE9ILGIsbSkoaCk6aD09PTQ1fHxoPT09OTV8fFJ0KGgpPyh1PSEwLGUuY29uc3VtZShoKSxmKTpiKGgpfWZ1bmN0aW9uIG0oaCl7cmV0dXJuIGUuY29uc3VtZShoKSxsPSEwLGZ9ZnVuY3Rpb24gYihoKXtyZXR1cm4gdSYmbCYmSXQoaS5wcmV2aW91cyk/KGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rRW1haWwiKSxlLmV4aXQoImxpdGVyYWxBdXRvbGluayIpLG4oaCkpOmEoaCl9fWZ1bmN0aW9uIE1IKGUsbixhKXtjb25zdCBpPXRoaXM7cmV0dXJuIGw7ZnVuY3Rpb24gbChjKXtyZXR1cm4gYyE9PTg3JiZjIT09MTE5fHwhVEMuY2FsbChpLGkucHJldmlvdXMpfHx3YihpLmV2ZW50cyk/YShjKTooZS5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksZS5lbnRlcigibGl0ZXJhbEF1dG9saW5rV3d3IiksZS5jaGVjayhJSCxlLmF0dGVtcHQoYkMsZS5hdHRlbXB0KHlDLHUpLGEpLGEpKGMpKX1mdW5jdGlvbiB1KGMpe3JldHVybiBlLmV4aXQoImxpdGVyYWxBdXRvbGlua1d3dyIpLGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksbihjKX19ZnVuY3Rpb24gVUgoZSxuLGEpe2NvbnN0IGk9dGhpcztsZXQgbD0iIix1PSExO3JldHVybiBjO2Z1bmN0aW9uIGMoaCl7cmV0dXJuKGg9PT03Mnx8aD09PTEwNCkmJnhDLmNhbGwoaSxpLnByZXZpb3VzKSYmIXdiKGkuZXZlbnRzKT8oZS5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksZS5lbnRlcigibGl0ZXJhbEF1dG9saW5rSHR0cCIpLGwrPVN0cmluZy5mcm9tQ29kZVBvaW50KGgpLGUuY29uc3VtZShoKSxkKTphKGgpfWZ1bmN0aW9uIGQoaCl7aWYoSXQoaCkmJmwubGVuZ3RoPDUpcmV0dXJuIGwrPVN0cmluZy5mcm9tQ29kZVBvaW50KGgpLGUuY29uc3VtZShoKSxkO2lmKGg9PT01OCl7Y29uc3QgUz1sLnRvTG93ZXJDYXNlKCk7aWYoUz09PSJodHRwInx8Uz09PSJodHRwcyIpcmV0dXJuIGUuY29uc3VtZShoKSxmfXJldHVybiBhKGgpfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGg9PT00Nz8oZS5jb25zdW1lKGgpLHU/bToodT0hMCxmKSk6YShoKX1mdW5jdGlvbiBtKGgpe3JldHVybiBoPT09bnVsbHx8emwoaCl8fFZlKGgpfHxpYShoKXx8V2woaCk/YShoKTplLmF0dGVtcHQoYkMsZS5hdHRlbXB0KHlDLGIpLGEpKGgpfWZ1bmN0aW9uIGIoaCl7cmV0dXJuIGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rSHR0cCIpLGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksbihoKX19ZnVuY3Rpb24gRkgoZSxuLGEpe2xldCBpPTA7cmV0dXJuIGw7ZnVuY3Rpb24gbChjKXtyZXR1cm4oYz09PTg3fHxjPT09MTE5KSYmaTwzPyhpKyssZS5jb25zdW1lKGMpLGwpOmM9PT00NiYmaT09PTM/KGUuY29uc3VtZShjKSx1KTphKGMpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIGM9PT1udWxsP2EoYyk6bihjKX19ZnVuY3Rpb24gQkgoZSxuLGEpe2xldCBpLGwsdTtyZXR1cm4gYztmdW5jdGlvbiBjKG0pe3JldHVybiBtPT09NDZ8fG09PT05NT9lLmNoZWNrKEVDLGYsZCkobSk6bT09PW51bGx8fFZlKG0pfHxpYShtKXx8bSE9PTQ1JiZXbChtKT9mKG0pOih1PSEwLGUuY29uc3VtZShtKSxjKX1mdW5jdGlvbiBkKG0pe3JldHVybiBtPT09OTU/aT0hMDoobD1pLGk9dm9pZCAwKSxlLmNvbnN1bWUobSksY31mdW5jdGlvbiBmKG0pe3JldHVybiBsfHxpfHwhdT9hKG0pOm4obSl9fWZ1bmN0aW9uIGpIKGUsbil7bGV0IGE9MCxpPTA7cmV0dXJuIGw7ZnVuY3Rpb24gbChjKXtyZXR1cm4gYz09PTQwPyhhKyssZS5jb25zdW1lKGMpLGwpOmM9PT00MSYmaTxhP3UoYyk6Yz09PTMzfHxjPT09MzR8fGM9PT0zOHx8Yz09PTM5fHxjPT09NDF8fGM9PT00Mnx8Yz09PTQ0fHxjPT09NDZ8fGM9PT01OHx8Yz09PTU5fHxjPT09NjB8fGM9PT02M3x8Yz09PTkzfHxjPT09OTV8fGM9PT0xMjY/ZS5jaGVjayhFQyxuLHUpKGMpOmM9PT1udWxsfHxWZShjKXx8aWEoYyk/bihjKTooZS5jb25zdW1lKGMpLGwpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIGM9PT00MSYmaSsrLGUuY29uc3VtZShjKSxsfX1mdW5jdGlvbiB6SChlLG4sYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShkKXtyZXR1cm4gZD09PTMzfHxkPT09MzR8fGQ9PT0zOXx8ZD09PTQxfHxkPT09NDJ8fGQ9PT00NHx8ZD09PTQ2fHxkPT09NTh8fGQ9PT01OXx8ZD09PTYzfHxkPT09OTV8fGQ9PT0xMjY/KGUuY29uc3VtZShkKSxpKTpkPT09Mzg/KGUuY29uc3VtZShkKSx1KTpkPT09OTM/KGUuY29uc3VtZShkKSxsKTpkPT09NjB8fGQ9PT1udWxsfHxWZShkKXx8aWEoZCk/bihkKTphKGQpfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQ9PT1udWxsfHxkPT09NDB8fGQ9PT05MXx8VmUoZCl8fGlhKGQpP24oZCk6aShkKX1mdW5jdGlvbiB1KGQpe3JldHVybiBJdChkKT9jKGQpOmEoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gZD09PTU5PyhlLmNvbnN1bWUoZCksaSk6SXQoZCk/KGUuY29uc3VtZShkKSxjKTphKGQpfX1mdW5jdGlvbiBxSChlLG4sYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaSh1KXtyZXR1cm4gZS5jb25zdW1lKHUpLGx9ZnVuY3Rpb24gbCh1KXtyZXR1cm4gUnQodSk/YSh1KTpuKHUpfX1mdW5jdGlvbiBUQyhlKXtyZXR1cm4gZT09PW51bGx8fGU9PT00MHx8ZT09PTQyfHxlPT09OTV8fGU9PT05MXx8ZT09PTkzfHxlPT09MTI2fHxWZShlKX1mdW5jdGlvbiB4QyhlKXtyZXR1cm4hSXQoZSl9ZnVuY3Rpb24gQUMoZSl7cmV0dXJuIShlPT09NDd8fEhoKGUpKX1mdW5jdGlvbiBIaChlKXtyZXR1cm4gZT09PTQzfHxlPT09NDV8fGU9PT00Nnx8ZT09PTk1fHxSdChlKX1mdW5jdGlvbiB3YihlKXtsZXQgbj1lLmxlbmd0aCxhPSExO2Zvcig7bi0tOyl7Y29uc3QgaT1lW25dWzFdO2lmKChpLnR5cGU9PT0ibGFiZWxMaW5rInx8aS50eXBlPT09ImxhYmVsSW1hZ2UiKSYmIWkuX2JhbGFuY2VkKXthPSEwO2JyZWFrfWlmKGkuX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG8pe2E9ITE7YnJlYWt9fXJldHVybiBlLmxlbmd0aD4wJiYhYSYmKGVbZS5sZW5ndGgtMV1bMV0uX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG89ITApLGF9Y29uc3QgUEg9e3Rva2VuaXplOlhILHBhcnRpYWw6ITB9O2Z1bmN0aW9uIEdIKCl7cmV0dXJue2RvY3VtZW50Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIix0b2tlbml6ZTpZSCxjb250aW51YXRpb246e3Rva2VuaXplOktIfSxleGl0OldIfX0sdGV4dDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlQ2FsbCIsdG9rZW5pemU6Vkh9LDkzOntuYW1lOiJnZm1Qb3RlbnRpYWxGb290bm90ZUNhbGwiLGFkZDoiYWZ0ZXIiLHRva2VuaXplOkhILHJlc29sdmVUbzokSH19fX1mdW5jdGlvbiBISChlLG4sYSl7Y29uc3QgaT10aGlzO2xldCBsPWkuZXZlbnRzLmxlbmd0aDtjb25zdCB1PWkucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGkucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSk7bGV0IGM7Zm9yKDtsLS07KXtjb25zdCBmPWkuZXZlbnRzW2xdWzFdO2lmKGYudHlwZT09PSJsYWJlbEltYWdlIil7Yz1mO2JyZWFrfWlmKGYudHlwZT09PSJnZm1Gb290bm90ZUNhbGwifHxmLnR5cGU9PT0ibGFiZWxMaW5rInx8Zi50eXBlPT09ImxhYmVsInx8Zi50eXBlPT09ImltYWdlInx8Zi50eXBlPT09ImxpbmsiKWJyZWFrfXJldHVybiBkO2Z1bmN0aW9uIGQoZil7aWYoIWN8fCFjLl9iYWxhbmNlZClyZXR1cm4gYShmKTtjb25zdCBtPUFuKGkuc2xpY2VTZXJpYWxpemUoe3N0YXJ0OmMuZW5kLGVuZDppLm5vdygpfSkpO3JldHVybiBtLmNvZGVQb2ludEF0KDApIT09OTR8fCF1LmluY2x1ZGVzKG0uc2xpY2UoMSkpP2EoZik6KGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxuKGYpKX19ZnVuY3Rpb24gJEgoZSxuKXtsZXQgYT1lLmxlbmd0aDtmb3IoO2EtLTspaWYoZVthXVsxXS50eXBlPT09ImxhYmVsSW1hZ2UiJiZlW2FdWzBdPT09ImVudGVyIil7ZVthXVsxXTticmVha31lW2ErMV1bMV0udHlwZT0iZGF0YSIsZVthKzNdWzFdLnR5cGU9ImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIjtjb25zdCBpPXt0eXBlOiJnZm1Gb290bm90ZUNhbGwiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sZVthKzNdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxlW2UubGVuZ3RoLTFdWzFdLmVuZCl9LGw9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxlW2ErM11bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxlW2ErM11bMV0uZW5kKX07bC5lbmQuY29sdW1uKyssbC5lbmQub2Zmc2V0KyssbC5lbmQuX2J1ZmZlckluZGV4Kys7Y29uc3QgdT17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LGwuZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxlW2UubGVuZ3RoLTFdWzFdLnN0YXJ0KX0sYz17dHlwZToiY2h1bmtTdHJpbmciLGNvbnRlbnRUeXBlOiJzdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sdS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sdS5lbmQpfSxkPVtlW2ErMV0sZVthKzJdLFsiZW50ZXIiLGksbl0sZVthKzNdLGVbYSs0XSxbImVudGVyIixsLG5dLFsiZXhpdCIsbCxuXSxbImVudGVyIix1LG5dLFsiZW50ZXIiLGMsbl0sWyJleGl0IixjLG5dLFsiZXhpdCIsdSxuXSxlW2UubGVuZ3RoLTJdLGVbZS5sZW5ndGgtMV0sWyJleGl0IixpLG5dXTtyZXR1cm4gZS5zcGxpY2UoYSxlLmxlbmd0aC1hKzEsLi4uZCksZX1mdW5jdGlvbiBWSChlLG4sYSl7Y29uc3QgaT10aGlzLGw9aS5wYXJzZXIuZ2ZtRm9vdG5vdGVzfHwoaS5wYXJzZXIuZ2ZtRm9vdG5vdGVzPVtdKTtsZXQgdT0wLGM7cmV0dXJuIGQ7ZnVuY3Rpb24gZChoKXtyZXR1cm4gZS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsIiksZS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoaCksZS5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGZ9ZnVuY3Rpb24gZihoKXtyZXR1cm4gaCE9PTk0P2EoaCk6KGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLGUuY29uc3VtZShoKSxlLmV4aXQoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbFN0cmluZyIpLGUuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsbSl9ZnVuY3Rpb24gbShoKXtpZih1Pjk5OXx8aD09PTkzJiYhY3x8aD09PW51bGx8fGg9PT05MXx8VmUoaCkpcmV0dXJuIGEoaCk7aWYoaD09PTkzKXtlLmV4aXQoImNodW5rU3RyaW5nIik7Y29uc3QgUz1lLmV4aXQoImdmbUZvb3Rub3RlQ2FsbFN0cmluZyIpO3JldHVybiBsLmluY2x1ZGVzKEFuKGkuc2xpY2VTZXJpYWxpemUoUykpKT8oZS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoaCksZS5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsIiksbik6YShoKX1yZXR1cm4gVmUoaCl8fChjPSEwKSx1KyssZS5jb25zdW1lKGgpLGg9PT05Mj9iOm19ZnVuY3Rpb24gYihoKXtyZXR1cm4gaD09PTkxfHxoPT09OTJ8fGg9PT05Mz8oZS5jb25zdW1lKGgpLHUrKyxtKTptKGgpfX1mdW5jdGlvbiBZSChlLG4sYSl7Y29uc3QgaT10aGlzLGw9aS5wYXJzZXIuZ2ZtRm9vdG5vdGVzfHwoaS5wYXJzZXIuZ2ZtRm9vdG5vdGVzPVtdKTtsZXQgdSxjPTAsZDtyZXR1cm4gZjtmdW5jdGlvbiBmKF8pe3JldHVybiBlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb24iKS5fY29udGFpbmVyPSEwLGUuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIiksZS5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoXyksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLG19ZnVuY3Rpb24gbShfKXtyZXR1cm4gXz09PTk0PyhlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxlLmNvbnN1bWUoXyksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpLGUuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsYik6YShfKX1mdW5jdGlvbiBiKF8pe2lmKGM+OTk5fHxfPT09OTMmJiFkfHxfPT09bnVsbHx8Xz09PTkxfHxWZShfKSlyZXR1cm4gYShfKTtpZihfPT09OTMpe2UuZXhpdCgiY2h1bmtTdHJpbmciKTtjb25zdCBUPWUuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtyZXR1cm4gdT1BbihpLnNsaWNlU2VyaWFsaXplKFQpKSxlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGUuY29uc3VtZShfKSxlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCIpLFN9cmV0dXJuIFZlKF8pfHwoZD0hMCksYysrLGUuY29uc3VtZShfKSxfPT09OTI/aDpifWZ1bmN0aW9uIGgoXyl7cmV0dXJuIF89PT05MXx8Xz09PTkyfHxfPT09OTM/KGUuY29uc3VtZShfKSxjKyssYik6YihfKX1mdW5jdGlvbiBTKF8pe3JldHVybiBfPT09NTg/KGUuZW50ZXIoImRlZmluaXRpb25NYXJrZXIiKSxlLmNvbnN1bWUoXyksZS5leGl0KCJkZWZpbml0aW9uTWFya2VyIiksbC5pbmNsdWRlcyh1KXx8bC5wdXNoKHUpLERlKGUsRSwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uV2hpdGVzcGFjZSIpKTphKF8pfWZ1bmN0aW9uIEUoXyl7cmV0dXJuIG4oXyl9fWZ1bmN0aW9uIEtIKGUsbixhKXtyZXR1cm4gZS5jaGVjayhjbyxuLGUuYXR0ZW1wdChQSCxuLGEpKX1mdW5jdGlvbiBXSChlKXtlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpfWZ1bmN0aW9uIFhIKGUsbixhKXtjb25zdCBpPXRoaXM7cmV0dXJuIERlKGUsbCwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50Iiw1KTtmdW5jdGlvbiBsKHUpe2NvbnN0IGM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBjJiZjWzFdLnR5cGU9PT0iZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50IiYmY1syXS5zbGljZVNlcmlhbGl6ZShjWzFdLCEwKS5sZW5ndGg9PT00P24odSk6YSh1KX19ZnVuY3Rpb24gWkgoZSl7bGV0IGE9KGV8fHt9KS5zaW5nbGVUaWxkZTtjb25zdCBpPXtuYW1lOiJzdHJpa2V0aHJvdWdoIix0b2tlbml6ZTp1LHJlc29sdmVBbGw6bH07cmV0dXJuIGE9PW51bGwmJihhPSEwKSx7dGV4dDp7MTI2Oml9LGluc2lkZVNwYW46e251bGw6W2ldfSxhdHRlbnRpb25NYXJrZXJzOntudWxsOlsxMjZdfX07ZnVuY3Rpb24gbChjLGQpe2xldCBmPS0xO2Zvcig7KytmPGMubGVuZ3RoOylpZihjW2ZdWzBdPT09ImVudGVyIiYmY1tmXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJmNbZl1bMV0uX2Nsb3NlKXtsZXQgbT1mO2Zvcig7bS0tOylpZihjW21dWzBdPT09ImV4aXQiJiZjW21dWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmY1ttXVsxXS5fb3BlbiYmY1tmXVsxXS5lbmQub2Zmc2V0LWNbZl1bMV0uc3RhcnQub2Zmc2V0PT09Y1ttXVsxXS5lbmQub2Zmc2V0LWNbbV1bMV0uc3RhcnQub2Zmc2V0KXtjW2ZdWzFdLnR5cGU9InN0cmlrZXRocm91Z2hTZXF1ZW5jZSIsY1ttXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiO2NvbnN0IGI9e3R5cGU6InN0cmlrZXRocm91Z2giLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sY1ttXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sY1tmXVsxXS5lbmQpfSxoPXt0eXBlOiJzdHJpa2V0aHJvdWdoVGV4dCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxjW21dWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sY1tmXVsxXS5zdGFydCl9LFM9W1siZW50ZXIiLGIsZF0sWyJlbnRlciIsY1ttXVsxXSxkXSxbImV4aXQiLGNbbV1bMV0sZF0sWyJlbnRlciIsaCxkXV0sRT1kLnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbDtFJiZ0bihTLFMubGVuZ3RoLDAsWGwoRSxjLnNsaWNlKG0rMSxmKSxkKSksdG4oUyxTLmxlbmd0aCwwLFtbImV4aXQiLGgsZF0sWyJlbnRlciIsY1tmXVsxXSxkXSxbImV4aXQiLGNbZl1bMV0sZF0sWyJleGl0IixiLGRdXSksdG4oYyxtLTEsZi1tKzMsUyksZj1tK1MubGVuZ3RoLTI7YnJlYWt9fWZvcihmPS0xOysrZjxjLmxlbmd0aDspY1tmXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJihjW2ZdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gY31mdW5jdGlvbiB1KGMsZCxmKXtjb25zdCBtPXRoaXMucHJldmlvdXMsYj10aGlzLmV2ZW50cztsZXQgaD0wO3JldHVybiBTO2Z1bmN0aW9uIFMoXyl7cmV0dXJuIG09PT0xMjYmJmJbYi5sZW5ndGgtMV1bMV0udHlwZSE9PSJjaGFyYWN0ZXJFc2NhcGUiP2YoXyk6KGMuZW50ZXIoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLEUoXykpfWZ1bmN0aW9uIEUoXyl7Y29uc3QgVD1RYShtKTtpZihfPT09MTI2KXJldHVybiBoPjE/ZihfKTooYy5jb25zdW1lKF8pLGgrKyxFKTtpZihoPDImJiFhKXJldHVybiBmKF8pO2NvbnN0IEM9Yy5leGl0KCJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiKSx4PVFhKF8pO3JldHVybiBDLl9vcGVuPSF4fHx4PT09MiYmISFULEMuX2Nsb3NlPSFUfHxUPT09MiYmISF4LGQoXyl9fX1jbGFzcyBRSHtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPVtdfWFkZChuLGEsaSl7SkgodGhpcyxuLGEsaSl9Y29uc3VtZShuKXtpZih0aGlzLm1hcC5zb3J0KGZ1bmN0aW9uKHUsYyl7cmV0dXJuIHVbMF0tY1swXX0pLHRoaXMubWFwLmxlbmd0aD09PTApcmV0dXJuO2xldCBhPXRoaXMubWFwLmxlbmd0aDtjb25zdCBpPVtdO2Zvcig7YT4wOylhLT0xLGkucHVzaChuLnNsaWNlKHRoaXMubWFwW2FdWzBdK3RoaXMubWFwW2FdWzFdKSx0aGlzLm1hcFthXVsyXSksbi5sZW5ndGg9dGhpcy5tYXBbYV1bMF07aS5wdXNoKG4uc2xpY2UoKSksbi5sZW5ndGg9MDtsZXQgbD1pLnBvcCgpO2Zvcig7bDspe2Zvcihjb25zdCB1IG9mIGwpbi5wdXNoKHUpO2w9aS5wb3AoKX10aGlzLm1hcC5sZW5ndGg9MH19ZnVuY3Rpb24gSkgoZSxuLGEsaSl7bGV0IGw9MDtpZighKGE9PT0wJiZpLmxlbmd0aD09PTApKXtmb3IoO2w8ZS5tYXAubGVuZ3RoOyl7aWYoZS5tYXBbbF1bMF09PT1uKXtlLm1hcFtsXVsxXSs9YSxlLm1hcFtsXVsyXS5wdXNoKC4uLmkpO3JldHVybn1sKz0xfWUubWFwLnB1c2goW24sYSxpXSl9fWZ1bmN0aW9uIGU0KGUsbil7bGV0IGE9ITE7Y29uc3QgaT1bXTtmb3IoO248ZS5sZW5ndGg7KXtjb25zdCBsPWVbbl07aWYoYSl7aWYobFswXT09PSJlbnRlciIpbFsxXS50eXBlPT09InRhYmxlQ29udGVudCImJmkucHVzaChlW24rMV1bMV0udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciI/ImxlZnQiOiJub25lIik7ZWxzZSBpZihsWzFdLnR5cGU9PT0idGFibGVDb250ZW50Iil7aWYoZVtuLTFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiKXtjb25zdCB1PWkubGVuZ3RoLTE7aVt1XT1pW3VdPT09ImxlZnQiPyJjZW50ZXIiOiJyaWdodCJ9fWVsc2UgaWYobFsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93IilicmVha31lbHNlIGxbMF09PT0iZW50ZXIiJiZsWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciJiYoYT0hMCk7bis9MX1yZXR1cm4gaX1mdW5jdGlvbiB0NCgpe3JldHVybntmbG93OntudWxsOntuYW1lOiJ0YWJsZSIsdG9rZW5pemU6bjQscmVzb2x2ZUFsbDpyNH19fX1mdW5jdGlvbiBuNChlLG4sYSl7Y29uc3QgaT10aGlzO2xldCBsPTAsdT0wLGM7cmV0dXJuIGQ7ZnVuY3Rpb24gZChVKXtsZXQgJD1pLmV2ZW50cy5sZW5ndGgtMTtmb3IoOyQ+LTE7KXtjb25zdCBpZT1pLmV2ZW50c1skXVsxXS50eXBlO2lmKGllPT09ImxpbmVFbmRpbmcifHxpZT09PSJsaW5lUHJlZml4IikkLS07ZWxzZSBicmVha31jb25zdCBKPSQ+LTE/aS5ldmVudHNbJF1bMV0udHlwZTpudWxsLG9lPUo9PT0idGFibGVIZWFkInx8Sj09PSJ0YWJsZVJvdyI/UjpmO3JldHVybiBvZT09PVImJmkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9hKFUpOm9lKFUpfWZ1bmN0aW9uIGYoVSl7cmV0dXJuIGUuZW50ZXIoInRhYmxlSGVhZCIpLGUuZW50ZXIoInRhYmxlUm93IiksbShVKX1mdW5jdGlvbiBtKFUpe3JldHVybiBVPT09MTI0fHwoYz0hMCx1Kz0xKSxiKFUpfWZ1bmN0aW9uIGIoVSl7cmV0dXJuIFU9PT1udWxsP2EoVSk6YmUoVSk/dT4xPyh1PTAsaS5pbnRlcnJ1cHQ9ITAsZS5leGl0KCJ0YWJsZVJvdyIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoVSksZS5leGl0KCJsaW5lRW5kaW5nIiksRSk6YShVKTpSZShVKT9EZShlLGIsIndoaXRlc3BhY2UiKShVKToodSs9MSxjJiYoYz0hMSxsKz0xKSxVPT09MTI0PyhlLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksZS5jb25zdW1lKFUpLGUuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLGM9ITAsYik6KGUuZW50ZXIoImRhdGEiKSxoKFUpKSl9ZnVuY3Rpb24gaChVKXtyZXR1cm4gVT09PW51bGx8fFU9PT0xMjR8fFZlKFUpPyhlLmV4aXQoImRhdGEiKSxiKFUpKTooZS5jb25zdW1lKFUpLFU9PT05Mj9TOmgpfWZ1bmN0aW9uIFMoVSl7cmV0dXJuIFU9PT05Mnx8VT09PTEyND8oZS5jb25zdW1lKFUpLGgpOmgoVSl9ZnVuY3Rpb24gRShVKXtyZXR1cm4gaS5pbnRlcnJ1cHQ9ITEsaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP2EoVSk6KGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyUm93IiksYz0hMSxSZShVKT9EZShlLF8sImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoVSk6XyhVKSl9ZnVuY3Rpb24gXyhVKXtyZXR1cm4gVT09PTQ1fHxVPT09NTg/QyhVKTpVPT09MTI0PyhjPSEwLGUuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSxlLmNvbnN1bWUoVSksZS5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksVCk6RihVKX1mdW5jdGlvbiBUKFUpe3JldHVybiBSZShVKT9EZShlLEMsIndoaXRlc3BhY2UiKShVKTpDKFUpfWZ1bmN0aW9uIEMoVSl7cmV0dXJuIFU9PT01OD8odSs9MSxjPSEwLGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksZS5jb25zdW1lKFUpLGUuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx4KTpVPT09NDU/KHUrPTEseChVKSk6VT09PW51bGx8fGJlKFUpP0woVSk6RihVKX1mdW5jdGlvbiB4KFUpe3JldHVybiBVPT09NDU/KGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksTihVKSk6RihVKX1mdW5jdGlvbiBOKFUpe3JldHVybiBVPT09NDU/KGUuY29uc3VtZShVKSxOKTpVPT09NTg/KGM9ITAsZS5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksZS5jb25zdW1lKFUpLGUuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSxrKTooZS5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLGsoVSkpfWZ1bmN0aW9uIGsoVSl7cmV0dXJuIFJlKFUpP0RlKGUsTCwid2hpdGVzcGFjZSIpKFUpOkwoVSl9ZnVuY3Rpb24gTChVKXtyZXR1cm4gVT09PTEyND9fKFUpOlU9PT1udWxsfHxiZShVKT8hY3x8bCE9PXU/RihVKTooZS5leGl0KCJ0YWJsZURlbGltaXRlclJvdyIpLGUuZXhpdCgidGFibGVIZWFkIiksbihVKSk6RihVKX1mdW5jdGlvbiBGKFUpe3JldHVybiBhKFUpfWZ1bmN0aW9uIFIoVSl7cmV0dXJuIGUuZW50ZXIoInRhYmxlUm93IiksTShVKX1mdW5jdGlvbiBNKFUpe3JldHVybiBVPT09MTI0PyhlLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksZS5jb25zdW1lKFUpLGUuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLE0pOlU9PT1udWxsfHxiZShVKT8oZS5leGl0KCJ0YWJsZVJvdyIpLG4oVSkpOlJlKFUpP0RlKGUsTSwid2hpdGVzcGFjZSIpKFUpOihlLmVudGVyKCJkYXRhIiksWShVKSl9ZnVuY3Rpb24gWShVKXtyZXR1cm4gVT09PW51bGx8fFU9PT0xMjR8fFZlKFUpPyhlLmV4aXQoImRhdGEiKSxNKFUpKTooZS5jb25zdW1lKFUpLFU9PT05Mj96OlkpfWZ1bmN0aW9uIHooVSl7cmV0dXJuIFU9PT05Mnx8VT09PTEyND8oZS5jb25zdW1lKFUpLFkpOlkoVSl9fWZ1bmN0aW9uIHI0KGUsbil7bGV0IGE9LTEsaT0hMCxsPTAsdT1bMCwwLDAsMF0sYz1bMCwwLDAsMF0sZD0hMSxmPTAsbSxiLGg7Y29uc3QgUz1uZXcgUUg7Zm9yKDsrK2E8ZS5sZW5ndGg7KXtjb25zdCBFPWVbYV0sXz1FWzFdO0VbMF09PT0iZW50ZXIiP18udHlwZT09PSJ0YWJsZUhlYWQiPyhkPSExLGYhPT0wJiYod3coUyxuLGYsbSxiKSxiPXZvaWQgMCxmPTApLG09e3R5cGU6InRhYmxlIixzdGFydDpPYmplY3QuYXNzaWduKHt9LF8uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LF8uZW5kKX0sUy5hZGQoYSwwLFtbImVudGVyIixtLG5dXSkpOl8udHlwZT09PSJ0YWJsZVJvdyJ8fF8udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGk9ITAsaD12b2lkIDAsdT1bMCwwLDAsMF0sYz1bMCxhKzEsMCwwXSxkJiYoZD0hMSxiPXt0eXBlOiJ0YWJsZUJvZHkiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sXy5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sXy5lbmQpfSxTLmFkZChhLDAsW1siZW50ZXIiLGIsbl1dKSksbD1fLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPzI6Yj8zOjEpOmwmJihfLnR5cGU9PT0iZGF0YSJ8fF8udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fF8udHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpPyhpPSExLGNbMl09PT0wJiYodVsxXSE9PTAmJihjWzBdPWNbMV0saD1JbChTLG4sdSxsLHZvaWQgMCxoKSx1PVswLDAsMCwwXSksY1syXT1hKSk6Xy50eXBlPT09InRhYmxlQ2VsbERpdmlkZXIiJiYoaT9pPSExOih1WzFdIT09MCYmKGNbMF09Y1sxXSxoPUlsKFMsbix1LGwsdm9pZCAwLGgpKSx1PWMsYz1bdVsxXSxhLDAsMF0pKTpfLnR5cGU9PT0idGFibGVIZWFkIj8oZD0hMCxmPWEpOl8udHlwZT09PSJ0YWJsZVJvdyJ8fF8udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGY9YSx1WzFdIT09MD8oY1swXT1jWzFdLGg9SWwoUyxuLHUsbCxhLGgpKTpjWzFdIT09MCYmKGg9SWwoUyxuLGMsbCxhLGgpKSxsPTApOmwmJihfLnR5cGU9PT0iZGF0YSJ8fF8udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fF8udHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpJiYoY1szXT1hKX1mb3IoZiE9PTAmJnd3KFMsbixmLG0sYiksUy5jb25zdW1lKG4uZXZlbnRzKSxhPS0xOysrYTxuLmV2ZW50cy5sZW5ndGg7KXtjb25zdCBFPW4uZXZlbnRzW2FdO0VbMF09PT0iZW50ZXIiJiZFWzFdLnR5cGU9PT0idGFibGUiJiYoRVsxXS5fYWxpZ249ZTQobi5ldmVudHMsYSkpfXJldHVybiBlfWZ1bmN0aW9uIElsKGUsbixhLGksbCx1KXtjb25zdCBjPWk9PT0xPyJ0YWJsZUhlYWRlciI6aT09PTI/InRhYmxlRGVsaW1pdGVyIjoidGFibGVEYXRhIixkPSJ0YWJsZUNvbnRlbnQiO2FbMF0hPT0wJiYodS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxXYShuLmV2ZW50cyxhWzBdKSksZS5hZGQoYVswXSwwLFtbImV4aXQiLHUsbl1dKSk7Y29uc3QgZj1XYShuLmV2ZW50cyxhWzFdKTtpZih1PXt0eXBlOmMsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxmKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxmKX0sZS5hZGQoYVsxXSwwLFtbImVudGVyIix1LG5dXSksYVsyXSE9PTApe2NvbnN0IG09V2Eobi5ldmVudHMsYVsyXSksYj1XYShuLmV2ZW50cyxhWzNdKSxoPXt0eXBlOmQsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxtKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxiKX07aWYoZS5hZGQoYVsyXSwwLFtbImVudGVyIixoLG5dXSksaSE9PTIpe2NvbnN0IFM9bi5ldmVudHNbYVsyXV0sRT1uLmV2ZW50c1thWzNdXTtpZihTWzFdLmVuZD1PYmplY3QuYXNzaWduKHt9LEVbMV0uZW5kKSxTWzFdLnR5cGU9ImNodW5rVGV4dCIsU1sxXS5jb250ZW50VHlwZT0idGV4dCIsYVszXT5hWzJdKzEpe2NvbnN0IF89YVsyXSsxLFQ9YVszXS1hWzJdLTE7ZS5hZGQoXyxULFtdKX19ZS5hZGQoYVszXSsxLDAsW1siZXhpdCIsaCxuXV0pfXJldHVybiBsIT09dm9pZCAwJiYodS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxXYShuLmV2ZW50cyxsKSksZS5hZGQobCwwLFtbImV4aXQiLHUsbl1dKSx1PXZvaWQgMCksdX1mdW5jdGlvbiB3dyhlLG4sYSxpLGwpe2NvbnN0IHU9W10sYz1XYShuLmV2ZW50cyxhKTtsJiYobC5lbmQ9T2JqZWN0LmFzc2lnbih7fSxjKSx1LnB1c2goWyJleGl0IixsLG5dKSksaS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxjKSx1LnB1c2goWyJleGl0IixpLG5dKSxlLmFkZChhKzEsMCx1KX1mdW5jdGlvbiBXYShlLG4pe2NvbnN0IGE9ZVtuXSxpPWFbMF09PT0iZW50ZXIiPyJzdGFydCI6ImVuZCI7cmV0dXJuIGFbMV1baV19Y29uc3QgYTQ9e25hbWU6InRhc2tsaXN0Q2hlY2siLHRva2VuaXplOm80fTtmdW5jdGlvbiBpNCgpe3JldHVybnt0ZXh0Ons5MTphNH19fWZ1bmN0aW9uIG80KGUsbixhKXtjb25zdCBpPXRoaXM7cmV0dXJuIGw7ZnVuY3Rpb24gbChmKXtyZXR1cm4gaS5wcmV2aW91cyE9PW51bGx8fCFpLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0/YShmKTooZS5lbnRlcigidGFza0xpc3RDaGVjayIpLGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksdSl9ZnVuY3Rpb24gdShmKXtyZXR1cm4gVmUoZik/KGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLGUuY29uc3VtZShmKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLGMpOmY9PT04OHx8Zj09PTEyMD8oZS5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLGUuY29uc3VtZShmKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxjKTphKGYpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGY9PT05Mz8oZS5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLGUuY29uc3VtZShmKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2siKSxkKTphKGYpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGJlKGYpP24oZik6UmUoZik/ZS5jaGVjayh7dG9rZW5pemU6bDR9LG4sYSkoZik6YShmKX19ZnVuY3Rpb24gbDQoZSxuLGEpe3JldHVybiBEZShlLGksIndoaXRlc3BhY2UiKTtmdW5jdGlvbiBpKGwpe3JldHVybiBsPT09bnVsbD9hKGwpOm4obCl9fWZ1bmN0aW9uIHM0KGUpe3JldHVybiBEayhbTEgoKSxHSCgpLFpIKGUpLHQ0KCksaTQoKV0pfWNvbnN0IHU0PXt9O2Z1bmN0aW9uIF9DKGUpe2NvbnN0IG49dGhpcyxhPWV8fHU0LGk9bi5kYXRhKCksbD1pLm1pY3JvbWFya0V4dGVuc2lvbnN8fChpLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLHU9aS5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoaS5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxjPWkudG9NYXJrZG93bkV4dGVuc2lvbnN8fChpLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTtsLnB1c2goczQoYSkpLHUucHVzaChrSCgpKSxjLnB1c2goQ0goYSkpfWZ1bmN0aW9uIGM0KGUpe2NvbnN0IG49ZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO3JldHVybntqczoiamF2YXNjcmlwdCIsanN4OiJqc3giLHRzOiJ0eXBlc2NyaXB0Iix0c3g6InRzeCIscHk6InB5dGhvbiIscmI6InJ1YnkiLGdvOiJnbyIscnM6InJ1c3QiLGphdmE6ImphdmEiLGM6ImMiLGNwcDoiY3BwIixoOiJjIixocHA6ImNwcCIsY3M6ImNzaGFycCIscGhwOiJwaHAiLHNoOiJiYXNoIixiYXNoOiJiYXNoIix6c2g6ImJhc2giLHNxbDoic3FsIixqc29uOiJqc29uIix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHhtbDoieG1sIixodG1sOiJodG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbWQ6Im1hcmtkb3duIix0eHQ6InRleHQifVtufHwiIl18fCJ0ZXh0In1mdW5jdGlvbiBkNCh7Y29udGVudEpzb246ZSx0b29sRHVyYXRpb25NczpuLGlzRXhwYW5kZWQ6YSxvblRvZ2dsZTppfSl7Y29uc3QgbD1lLnJlc3VsdHx8e30sdT1TdHJpbmcobC5wYXRofHwiIiksYz1TdHJpbmcobC5jb250ZW50fHwiIiksZD1jLnNwbGl0KGAKYCksZj1uP2Ake259bXNgOiIiLG09YzQodSk7cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIixjaGlsZHJlbjpbeS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6aSxjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtYmx1ZS03MDAgZGFyazp0ZXh0LWJsdWUtMzAwIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOnRleHQtYmx1ZS02MDAgZGFyazpob3Zlcjp0ZXh0LWJsdWUtMjAwIixjaGlsZHJlbjpbYT95LmpzeChQdCx7Y2xhc3NOYW1lOiJoLTMgdy0zIn0pOnkuanN4KEd0LHtjbGFzc05hbWU6ImgtMyB3LTMifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIixjaGlsZHJlbjoicmVhZCJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzcwIixjaGlsZHJlbjoiwrcifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQtZm9yZWdyb3VuZC83MCB0cnVuY2F0ZSBtYXgtdy14cyIsY2hpbGRyZW46dX0pLHkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIixjaGlsZHJlbjpbIsK3ICIsZC5sZW5ndGgsIiBsaW5lcyDCtyAiLGZdfSldfSksYSYmYyYmeS5qc3goImRpdiIse2NsYXNzTmFtZToibXQtMiBtbC01IGJnLWNhcmQvNjAgYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gbWF4LWgtOTYgb3ZlcmZsb3cteS1hdXRvIG1heC13LWZ1bGwiLGNoaWxkcmVuOnkuanN4KCJkaXYiLHtjbGFzc05hbWU6Im92ZXJmbG93LXgtYXV0byBtYXgtdy1mdWxsIixjaGlsZHJlbjp5LmpzeCh1Yix7bGFuZ3VhZ2U6bSxzdHlsZTpFayxjdXN0b21TdHlsZTp7bWFyZ2luOjAscGFkZGluZzoiMC43NXJlbSIsZm9udFNpemU6IjAuNzVyZW0iLGxpbmVIZWlnaHQ6IjEuNSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLG1heFdpZHRoOiIxMDAlIn0sc2hvd0xpbmVOdW1iZXJzOiEwLHdyYXBMaW5lczohMCx3cmFwTG9uZ0xpbmVzOiEwLGNoaWxkcmVuOmN9KX0pfSldfSl9ZnVuY3Rpb24gcDQoZSl7Y29uc3Qgbj1lLnNwbGl0KGAKYCksYT1bXTtsZXQgaT0wLGw9MCx1PSExO2Zvcihjb25zdCBjIG9mIG4pe2NvbnN0IGQ9Yy5tYXRjaCgvXkBAIC0oXGQrKSg/OixcZCspPyBcKyhcZCspKD86LFxkKyk/IEBALyk7aWYoZCl7aT1wYXJzZUludChkWzFdLDEwKSxsPXBhcnNlSW50KGRbMl0sMTApLHU9ITAsYS5wdXNoKHtjb250ZW50OmMsdHlwZToiaGVhZGVyIn0pO2NvbnRpbnVlfWlmKGMuc3RhcnRzV2l0aCgiKioqIil8fGMuc3RhcnRzV2l0aCgiZGlmZiAiKXx8Yy5zdGFydHNXaXRoKCJpbmRleCAiKXx8Yy5zdGFydHNXaXRoKCItLS0iKXx8Yy5zdGFydHNXaXRoKCIrKysiKSl7YS5wdXNoKHtjb250ZW50OmMsdHlwZToibWV0YSJ9KTtjb250aW51ZX11P2Muc3RhcnRzV2l0aCgiKyIpP2EucHVzaCh7Y29udGVudDpjLHR5cGU6ImFkZCIsbmV3TGluZU51bTpsKyt9KTpjLnN0YXJ0c1dpdGgoIi0iKT9hLnB1c2goe2NvbnRlbnQ6Yyx0eXBlOiJyZW1vdmUiLG9sZExpbmVOdW06aSsrfSk6Yy5zdGFydHNXaXRoKCIgIil8fGM9PT0iIj9hLnB1c2goe2NvbnRlbnQ6Yyx0eXBlOiJjb250ZXh0IixvbGRMaW5lTnVtOmkrKyxuZXdMaW5lTnVtOmwrK30pOmEucHVzaCh7Y29udGVudDpjLHR5cGU6ImNvbnRleHQifSk6YS5wdXNoKHtjb250ZW50OmMsdHlwZToibWV0YSJ9KX1yZXR1cm4gYX1mdW5jdGlvbiBrYih7cGF0Y2g6ZX0pe2NvbnN0IG49cDQoZSk7cmV0dXJuIHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImJnLWNhcmQvNjAgYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gbWF4LWgtOTYgbWF4LXctZnVsbCIsY2hpbGRyZW46eS5qc3goImRpdiIse2NsYXNzTmFtZToib3ZlcmZsb3cteC1hdXRvIG92ZXJmbG93LXktYXV0byBtYXgtaC05NiB0ZXh0LXhzIGZvbnQtbW9ubyIsY2hpbGRyZW46bi5tYXAoKGEsaSk9Pntjb25zdCBsPWBsaW5lLSR7aX0tJHthLmNvbnRlbnQuc2xpY2UoMCwyMCl9YDtpZihhLnR5cGU9PT0ibWV0YSJ8fGEudHlwZT09PSJoZWFkZXIiKXJldHVybiB5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOmBweC0zIHB5LTAuNSB3aGl0ZXNwYWNlLXByZS13cmFwIGJyZWFrLWFsbCAke2EudHlwZT09PSJoZWFkZXIiPyJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAgYmctbXV0ZWQvMjAiOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAifWAsY2hpbGRyZW46YS5jb250ZW50fSxsKTtsZXQgdT0iIixjPSIiO3N3aXRjaChhLnR5cGUpe2Nhc2UiYWRkIjp1PSJ0ZXh0LWVtZXJhbGQtNzAwIGRhcms6dGV4dC1lbWVyYWxkLTMwMCIsYz0iYmctZW1lcmFsZC01MDAvMTAiO2JyZWFrO2Nhc2UicmVtb3ZlIjp1PSJ0ZXh0LXJlZC02MDAgZGFyazp0ZXh0LXJlZC0zMDAiLGM9ImJnLXJlZC01MDAvMTAiO2JyZWFrO2RlZmF1bHQ6dT0idGV4dC1tdXRlZC1mb3JlZ3JvdW5kIn1yZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6YGZsZXggJHtjfWAsY2hpbGRyZW46W3kuanN4KCJkaXYiLHtjbGFzc05hbWU6InB4LTIgcHktMC41IHRleHQtcmlnaHQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzQwIHNlbGVjdC1ub25lIHctMTIgZmxleC1zaHJpbmstMCIsY2hpbGRyZW46YS5vbGRMaW5lTnVtfHwiIn0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InB4LTIgcHktMC41IHRleHQtcmlnaHQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzQwIHNlbGVjdC1ub25lIHctMTIgZmxleC1zaHJpbmstMCBib3JkZXItciBib3JkZXItYm9yZGVyLzUwIixjaGlsZHJlbjphLm5ld0xpbmVOdW18fCIifSkseS5qc3goImRpdiIse2NsYXNzTmFtZTpgcHgtMyBweS0wLjUgZmxleC0xIG1pbi13LTAgd2hpdGVzcGFjZS1wcmUtd3JhcCBicmVhay1hbGwgJHt1fWAsY2hpbGRyZW46YS5jb250ZW50fSldfSxsKX0pfSl9KX1mdW5jdGlvbiBmNCh7Y29udGVudEpzb246ZSx0b29sRHVyYXRpb25NczpuLGlzRXhwYW5kZWQ6YSxvblRvZ2dsZTppfSl7Y29uc3QgbD1lLnJlc3VsdHx8e30sdT1lLmFydGlmYWN0LGM9U3RyaW5nKGwucGF0aHx8IiIpLGQ9TnVtYmVyKGwuYnl0ZXN8fDApLGY9dT8ucGF0Y2g/U3RyaW5nKHUucGF0Y2gpOiIiLG09bj9gJHtufW1zYDoiIjtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOlt5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+ZiYmaSgpLGNsYXNzTmFtZTpgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1lbWVyYWxkLTcwMCBkYXJrOnRleHQtZW1lcmFsZC0zMDAgdHJhbnNpdGlvbi1jb2xvcnMgJHtmPyJob3Zlcjp0ZXh0LWVtZXJhbGQtNjAwIGRhcms6aG92ZXI6dGV4dC1lbWVyYWxkLTIwMCI6IiJ9YCxjaGlsZHJlbjpbZiYmKGE/eS5qc3goUHQse2NsYXNzTmFtZToiaC0zIHctMyJ9KTp5LmpzeChHdCx7Y2xhc3NOYW1lOiJoLTMgdy0zIn0pKSwhZiYmeS5qc3goImRpdiIse2NsYXNzTmFtZToidy0zIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJmb250LW1lZGl1bSIsY2hpbGRyZW46IndyaXRlIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvNzAiLGNoaWxkcmVuOiLCtyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1mb3JlZ3JvdW5kLzcwIixjaGlsZHJlbjpjfSkseS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAiLGNoaWxkcmVuOlsiwrcgIixkLCIgYnl0ZXMgwrcgIixtXX0pXX0pLGEmJmYmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6Im10LTIgbWwtNSIsY2hpbGRyZW46eS5qc3goa2Ise3BhdGNoOmZ9KX0pXX0pfWZ1bmN0aW9uIGc0KHtjb250ZW50SnNvbjplLHRvb2xEdXJhdGlvbk1zOm59KXtjb25zdCBhPWUucmVzdWx0fHx7fSxpPVN0cmluZyhhLnBhdGh8fCIiKSxsPU51bWJlcihhLm9wc0FwcGxpZWR8fDApLHU9bj9gJHtufW1zYDoiIjtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1wdXJwbGUtNzAwIGRhcms6dGV4dC1wdXJwbGUtMzAwIixjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIixjaGlsZHJlbjoiZWRpdCJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzcwIixjaGlsZHJlbjoiwrcifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQtZm9yZWdyb3VuZC83MCB0cnVuY2F0ZSBtYXgtdy14cyIsY2hpbGRyZW46aX0pLHkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIixjaGlsZHJlbjpbIsK3ICIsbCwiIG9wcyDCtyAiLHVdfSldfSl9ZnVuY3Rpb24gbTQoe2NvbnRlbnRKc29uOmUsdG9vbER1cmF0aW9uTXM6bixpc0V4cGFuZGVkOmEsb25Ub2dnbGU6aX0pe2NvbnN0IGw9ZS5yZXN1bHR8fHt9LHU9ZS5hcmdzLGM9U3RyaW5nKGwuc3Rkb3V0fHwiIiksZD1TdHJpbmcobC5zdGRlcnJ8fCIiKSxmPWwuZXhpdENvZGUsbT1mPT1udWxsP251bGw6TnVtYmVyKGZ8fDApLGI9ISEoY3x8ZCksaD1uP2Ake259bXNgOiIiLFM9KCgpPT57aWYoIXV8fHR5cGVvZiB1IT0ib2JqZWN0IilyZXR1cm4gbnVsbDtjb25zdCBDPXU7Zm9yKGNvbnN0IHggb2ZbImNtZCIsImNvbW1hbmQiLCJzY3JpcHQiLCJpbnB1dCJdKXtjb25zdCBOPUNbeF07aWYodHlwZW9mIE49PSJzdHJpbmciJiZOLnRyaW0oKS5sZW5ndGg+MClyZXR1cm4gTi50cmltKCl9cmV0dXJuIG51bGx9KSgpPz8oKCk9PntpZighbHx8dHlwZW9mIGwhPSJvYmplY3QiKXJldHVybiBudWxsO2NvbnN0IEM9bDtmb3IoY29uc3QgeCBvZlsiY21kIiwiY29tbWFuZCIsInNjcmlwdCIsImlucHV0Il0pe2NvbnN0IE49Q1t4XTtpZih0eXBlb2YgTj09InN0cmluZyImJk4udHJpbSgpLmxlbmd0aD4wKXJldHVybiBOLnRyaW0oKX1yZXR1cm4gbnVsbH0pKCk/PyIiLEU9bT09PW51bGw/ImV4aXQgPyI6YGV4aXQgJHttfWAsXz1tPT09bnVsbHx8bT09PTA/InRleHQtZW1lcmFsZC03MDAgZGFyazp0ZXh0LWVtZXJhbGQtMzAwIjoidGV4dC1yZWQtNjAwIGRhcms6dGV4dC1yZWQtMzAwIjtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOlt5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+YiYmaSgpLGNsYXNzTmFtZTpgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1mb3JlZ3JvdW5kLzgwIHRyYW5zaXRpb24tY29sb3JzICR7Yj8iaG92ZXI6dGV4dC1mb3JlZ3JvdW5kIjoiIn1gLGNoaWxkcmVuOltiJiYoYT95LmpzeChQdCx7Y2xhc3NOYW1lOiJoLTMgdy0zIn0pOnkuanN4KEd0LHtjbGFzc05hbWU6ImgtMyB3LTMifSkpLCFiJiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ3LTMifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCIsY2hpbGRyZW46ImJhc2gifSksUyYmeS5qc3hzKHkuRnJhZ21lbnQse2NoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzcwIixjaGlsZHJlbjoiwrcifSkseS5qc3goImNvZGUiLHtjbGFzc05hbWU6ImZvbnQtbW9ubyB0ZXh0LWZvcmVncm91bmQvOTAgdHJ1bmNhdGUgbWF4LXctbWQiLGNoaWxkcmVuOlN9KV19KSxFJiZ5LmpzeHMoeS5GcmFnbWVudCx7Y2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvNzAiLGNoaWxkcmVuOiLCtyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZTpfLGNoaWxkcmVuOkV9KV19KSxoJiZ5LmpzeHMoeS5GcmFnbWVudCx7Y2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvNzAiLGNoaWxkcmVuOiLCtyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIixjaGlsZHJlbjpofSldfSldfSksYSYmeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6Im10LTIgbWwtNSBzcGFjZS15LTIgbWF4LXctZnVsbCIsY2hpbGRyZW46W2MmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImJnLWNhcmQvNjAgYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gbWF4LXctZnVsbCIsY2hpbGRyZW46eS5qc3hzKCJwcmUiLHtjbGFzc05hbWU6InRleHQtZm9yZWdyb3VuZC84MCBwLTMgb3ZlcmZsb3cteC1hdXRvIG1heC1oLTk2IHRleHQteHMgd2hpdGVzcGFjZS1wcmUtd3JhcCBicmVhay13b3JkcyIsY2hpbGRyZW46W2Muc2xpY2UoMCw1ZTMpLGMubGVuZ3RoPjVlMyYmeS5qc3goImRpdiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIG10LTEiLGNoaWxkcmVuOiIuLi4ifSldfSl9KSxkJiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJiZy1yZWQtMTAwLzQwIGRhcms6YmctcmVkLTk1MC8yMCBib3JkZXIgYm9yZGVyLXJlZC0yMDAvNjAgZGFyazpib3JkZXItcmVkLTkwMC8zMCByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlbiBtYXgtdy1mdWxsIixjaGlsZHJlbjp5LmpzeCgicHJlIix7Y2xhc3NOYW1lOiJ0ZXh0LXJlZC02MDAvODAgZGFyazp0ZXh0LXJlZC0zMDAvODAgcC0zIG92ZXJmbG93LXgtYXV0byBtYXgtaC02NCB0ZXh0LXhzIHdoaXRlc3BhY2UtcHJlLXdyYXAgYnJlYWstd29yZHMiLGNoaWxkcmVuOmQuc2xpY2UoMCwyZTMpfSl9KV19KV19KX1mdW5jdGlvbiBoNCh7Y29udGVudEpzb246ZSx0b29sRHVyYXRpb25NczpuLGlzRXhwYW5kZWQ6YSxvblRvZ2dsZTppfSl7Y29uc3QgbD1lLnJlc3VsdHx8e30sdT1OdW1iZXIobC5zdGFnZWR8fDApLGM9TnVtYmVyKGwudW5zdGFnZWR8fDApLGQ9bC5yYXd8fFtdLGY9bj9gJHtufW1zYDoiIjtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOlt5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+ZC5sZW5ndGg+MCYmaSgpLGNsYXNzTmFtZTpgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1ibHVlLTcwMCBkYXJrOnRleHQtYmx1ZS0zMDAgdHJhbnNpdGlvbi1jb2xvcnMgJHtkLmxlbmd0aD4wPyJob3Zlcjp0ZXh0LWJsdWUtNjAwIGRhcms6aG92ZXI6dGV4dC1ibHVlLTIwMCI6IiJ9YCxjaGlsZHJlbjpbZC5sZW5ndGg+MCYmKGE/eS5qc3goUHQse2NsYXNzTmFtZToiaC0zIHctMyJ9KTp5LmpzeChHdCx7Y2xhc3NOYW1lOiJoLTMgdy0zIn0pKSxkLmxlbmd0aD09PTAmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6InctMyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToiZm9udC1tZWRpdW0iLGNoaWxkcmVuOiJnaXRfc3RhdHVzIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvNzAiLGNoaWxkcmVuOiLCtyJ9KSx5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZCIsY2hpbGRyZW46W3UsIiBzdGFnZWQsICIsYywiIHVuc3RhZ2VkIl19KSx5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZC84MCIsY2hpbGRyZW46WyLCtyAiLGZdfSldfSksYSYmZC5sZW5ndGg+MCYmeS5qc3goImRpdiIse2NsYXNzTmFtZToibXQtMiBtbC01IGJnLWNhcmQvNjAgYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZC1sZyBwLTMgb3ZlcmZsb3cteC1hdXRvIHRleHQteHMgZm9udC1tb25vIHNwYWNlLXktMC41IixjaGlsZHJlbjpkLm1hcChtPT55LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOm19LG0pKX0pXX0pfWZ1bmN0aW9uIGI0KHtjb250ZW50SnNvbjplLHRvb2xEdXJhdGlvbk1zOm4saXNFeHBhbmRlZDphLG9uVG9nZ2xlOml9KXtjb25zdCBsPWUucmVzdWx0fHx7fSx1PVN0cmluZyhsLnBhdGNofHwiIiksYz1sLmFsbD09PSEwLGQ9bj9gJHtufW1zYDoiIjtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOlt5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+dSYmaSgpLGNsYXNzTmFtZTpgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1wdXJwbGUtNzAwIGRhcms6dGV4dC1wdXJwbGUtMzAwIHRyYW5zaXRpb24tY29sb3JzICR7dT8iaG92ZXI6dGV4dC1wdXJwbGUtNjAwIGRhcms6aG92ZXI6dGV4dC1wdXJwbGUtMjAwIjoiIn1gLGNoaWxkcmVuOlt1JiYoYT95LmpzeChQdCx7Y2xhc3NOYW1lOiJoLTMgdy0zIn0pOnkuanN4KEd0LHtjbGFzc05hbWU6ImgtMyB3LTMifSkpLCF1JiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ3LTMifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIixjaGlsZHJlbjoiZ2l0X2RpZmYifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZC83MCIsY2hpbGRyZW46IsK3In0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOmM/ImFsbCI6InN0YWdlZCJ9KSx5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZC84MCIsY2hpbGRyZW46WyLCtyAiLGRdfSldfSksYSYmdSYmeS5qc3goImRpdiIse2NsYXNzTmFtZToibXQtMiBtbC01IixjaGlsZHJlbjp5LmpzeChrYix7cGF0Y2g6dX0pfSldfSl9ZnVuY3Rpb24geTQoe2NvbnRlbnRKc29uOmUsdG9vbER1cmF0aW9uTXM6bixpc0V4cGFuZGVkOmEsb25Ub2dnbGU6aX0pe2NvbnN0IGw9ZS5yZXN1bHR8fHt9LHU9U3RyaW5nKGwucmVzdWx0fHxsLm91dHB1dHx8IiIpLGM9dS5zcGxpdChgCmApWzBdfHwiY29tbWl0dGVkIixkPW4/YCR7bn1tc2A6IiI7cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIixjaGlsZHJlbjpbeS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6KCk9PnUmJmkoKSxjbGFzc05hbWU6YGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtZW1lcmFsZC03MDAgZGFyazp0ZXh0LWVtZXJhbGQtMzAwIHRyYW5zaXRpb24tY29sb3JzICR7dT8iaG92ZXI6dGV4dC1lbWVyYWxkLTYwMCBkYXJrOmhvdmVyOnRleHQtZW1lcmFsZC0yMDAiOiIifWAsY2hpbGRyZW46W3UmJihhP3kuanN4KFB0LHtjbGFzc05hbWU6ImgtMyB3LTMifSk6eS5qc3goR3Qse2NsYXNzTmFtZToiaC0zIHctMyJ9KSksIXUmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6InctMyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToiZm9udC1tZWRpdW0iLGNoaWxkcmVuOiJnaXRfY29tbWl0In0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvNzAiLGNoaWxkcmVuOiLCtyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1mb3JlZ3JvdW5kLzcwIHRydW5jYXRlIG1heC13LTJ4bCIsY2hpbGRyZW46Y30pLHkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIGZsZXgtc2hyaW5rLTAiLGNoaWxkcmVuOlsiwrcgIixkXX0pXX0pLGEmJnUmJnkuanN4KCJwcmUiLHtjbGFzc05hbWU6Im10LTIgbWwtNSB0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBiZy1jYXJkLzYwIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQtbGcgcC0zIG92ZXJmbG93LXgtYXV0byIsY2hpbGRyZW46dX0pXX0pfWZ1bmN0aW9uIEU0KHtjb250ZW50SnNvbjplLHRvb2xEdXJhdGlvbk1zOm4saXNFeHBhbmRlZDphLG9uVG9nZ2xlOml9KXtjb25zdCBsPWUuYXJ0aWZhY3QsdT1sPy5wYXRjaD9TdHJpbmcobC5wYXRjaCk6IiIsYz1sPy5zdW1tYXJ5LGQ9bj9gJHtufW1zYDoiIjtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOlt5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+dSYmaSgpLGNsYXNzTmFtZTpgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1wdXJwbGUtNzAwIGRhcms6dGV4dC1wdXJwbGUtMzAwIHRyYW5zaXRpb24tY29sb3JzICR7dT8iaG92ZXI6dGV4dC1wdXJwbGUtNjAwIGRhcms6aG92ZXI6dGV4dC1wdXJwbGUtMjAwIjoiIn1gLGNoaWxkcmVuOlt1JiYoYT95LmpzeChQdCx7Y2xhc3NOYW1lOiJoLTMgdy0zIn0pOnkuanN4KEd0LHtjbGFzc05hbWU6ImgtMyB3LTMifSkpLCF1JiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ3LTMifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIixjaGlsZHJlbjoiYXBwbHlfcGF0Y2gifSksYyYmeS5qc3hzKHkuRnJhZ21lbnQse2NoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzcwIixjaGlsZHJlbjoiwrcifSkseS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOltjLmZpbGVzfHwwLCIgZmlsZXMiXX0pLChjLmFkZGl0aW9uc3x8MCk+MCYmeS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LWVtZXJhbGQtNzAwIGRhcms6dGV4dC1lbWVyYWxkLTMwMCIsY2hpbGRyZW46WyIrIixjLmFkZGl0aW9uc119KSwoYy5kZWxldGlvbnN8fDApPjAmJnkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1yZWQtNjAwIGRhcms6dGV4dC1yZWQtMzAwIixjaGlsZHJlbjpbIi0iLGMuZGVsZXRpb25zXX0pXX0pLHkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIixjaGlsZHJlbjpbIsK3ICIsZF19KV19KSxhJiZ1JiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJtdC0yIG1sLTUiLGNoaWxkcmVuOnkuanN4KGtiLHtwYXRjaDp1fSl9KV19KX1mdW5jdGlvbiBTNCh7Y29udGVudEpzb246ZSx0b29sRHVyYXRpb25NczpuLGlzRXhwYW5kZWQ6YSxvblRvZ2dsZTppfSl7Y29uc3QgbD1lLnJlc3VsdHx8e30sdT1sLmVudHJpZXN8fFtdLGM9U3RyaW5nKGwucGF0aHx8Ii4iKSxkPW4/YCR7bn1tc2A6IiI7cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIixjaGlsZHJlbjpbeS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6KCk9PnUubGVuZ3RoPjAmJmkoKSxjbGFzc05hbWU6YGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtY3lhbi03MDAgZGFyazp0ZXh0LWN5YW4tMzAwIHRyYW5zaXRpb24tY29sb3JzICR7dS5sZW5ndGg+MD8iaG92ZXI6dGV4dC1jeWFuLTYwMCBkYXJrOmhvdmVyOnRleHQtY3lhbi0yMDAiOiIifWAsY2hpbGRyZW46W3UubGVuZ3RoPjAmJihhP3kuanN4KFB0LHtjbGFzc05hbWU6ImgtMyB3LTMifSk6eS5qc3goR3Qse2NsYXNzTmFtZToiaC0zIHctMyJ9KSksdS5sZW5ndGg9PT0wJiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ3LTMifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIixjaGlsZHJlbjoibHMifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZC83MCIsY2hpbGRyZW46IsK3In0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LWZvcmVncm91bmQvNzAgdHJ1bmNhdGUgbWF4LXcteHMiLGNoaWxkcmVuOmN9KSx5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZC84MCIsY2hpbGRyZW46WyLCtyAiLHUubGVuZ3RoLCIgaXRlbXMgwrcgIixkXX0pXX0pLGEmJnUubGVuZ3RoPjAmJnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJtdC0yIG1sLTUgc3BhY2UteS0wLjUgbWF4LXctZnVsbCBvdmVyZmxvdy1oaWRkZW4iLGNoaWxkcmVuOlt1LnNsaWNlKDAsNTApLm1hcChmPT55LmpzeHMoImRpdiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRydW5jYXRlIixjaGlsZHJlbjpbZi50eXBlPT09ImRpciI/IvCfk4EiOiLwn5OEIiwiICIsZi5uYW1lXX0sYCR7Zi5uYW1lfS0ke2YudHlwZX1gKSksdS5sZW5ndGg+NTAmJnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAiLGNoaWxkcmVuOlsiLi4uIGFuZCAiLHUubGVuZ3RoLTUwLCIgbW9yZSJdfSldfSldfSl9ZnVuY3Rpb24gdjQoe2NvbnRlbnRKc29uOmUsdG9vbER1cmF0aW9uTXM6bixpc0V4cGFuZGVkOmEsb25Ub2dnbGU6aX0pe2NvbnN0IGw9ZS5yZXN1bHR8fHt9LHU9U3RyaW5nKGwudHJlZXx8IiIpLGM9U3RyaW5nKGwucGF0aHx8Ii4iKSxkPW4/YCR7bn1tc2A6IiI7cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIixjaGlsZHJlbjpbeS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6KCk9PnUmJmkoKSxjbGFzc05hbWU6YGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtY3lhbi03MDAgZGFyazp0ZXh0LWN5YW4tMzAwIHRyYW5zaXRpb24tY29sb3JzICR7dT8iaG92ZXI6dGV4dC1jeWFuLTYwMCBkYXJrOmhvdmVyOnRleHQtY3lhbi0yMDAiOiIifWAsY2hpbGRyZW46W3UmJihhP3kuanN4KFB0LHtjbGFzc05hbWU6ImgtMyB3LTMifSk6eS5qc3goR3Qse2NsYXNzTmFtZToiaC0zIHctMyJ9KSksIXUmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6InctMyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToiZm9udC1tZWRpdW0iLGNoaWxkcmVuOiJ0cmVlIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvNzAiLGNoaWxkcmVuOiLCtyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1mb3JlZ3JvdW5kLzcwIHRydW5jYXRlIG1heC13LXhzIixjaGlsZHJlbjpjfSkseS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAiLGNoaWxkcmVuOlsiwrcgIixkXX0pXX0pLGEmJnUmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6Im10LTIgbWwtNSBiZy1jYXJkLzYwIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuIG1heC13LWZ1bGwiLGNoaWxkcmVuOnkuanN4KCJwcmUiLHtjbGFzc05hbWU6InRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHAtMyBvdmVyZmxvdy14LWF1dG8gbWF4LWgtOTYgd2hpdGVzcGFjZS1wcmUtd3JhcCBicmVhay13b3JkcyIsY2hpbGRyZW46dX0pfSldfSl9ZnVuY3Rpb24gVDQoe2NvbnRlbnRKc29uOmUsdG9vbER1cmF0aW9uTXM6bixpc0V4cGFuZGVkOmEsb25Ub2dnbGU6aX0pe2NvbnN0IGw9ZS5yZXN1bHR8fHt9LHU9bC5tYXRjaGVzfHxbXSxjPWwuZmlsZXN8fFtdLGQ9dS5sZW5ndGg+MD91OmMsZj1lLm5hbWV8fCJzZWFyY2giLG09bj9gJHtufW1zYDoiIjtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOlt5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+ZC5sZW5ndGg+MCYmaSgpLGNsYXNzTmFtZTpgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1hbWJlci02MDAgZGFyazp0ZXh0LWFtYmVyLTMwMCB0cmFuc2l0aW9uLWNvbG9ycyAke2QubGVuZ3RoPjA/ImhvdmVyOnRleHQtYW1iZXItNTAwIGRhcms6aG92ZXI6dGV4dC1hbWJlci0yMDAiOiIifWAsY2hpbGRyZW46W2QubGVuZ3RoPjAmJihhP3kuanN4KFB0LHtjbGFzc05hbWU6ImgtMyB3LTMifSk6eS5qc3goR3Qse2NsYXNzTmFtZToiaC0zIHctMyJ9KSksZC5sZW5ndGg9PT0wJiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ3LTMifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIixjaGlsZHJlbjpmfSkseS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAiLGNoaWxkcmVuOlsiwrcgIixkLmxlbmd0aCwiIG1hdGNoZXMgwrcgIixtXX0pXX0pLGEmJmQubGVuZ3RoPjAmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6Im10LTIgbWwtNSBiZy1jYXJkLzYwIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuIG1heC13LWZ1bGwiLGNoaWxkcmVuOnkuanN4KCJkaXYiLHtjbGFzc05hbWU6InAtMyBvdmVyZmxvdy14LWF1dG8gb3ZlcmZsb3cteS1hdXRvIG1heC1oLTk2IG1heC13LWZ1bGwiLGNoaWxkcmVuOnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzcGFjZS15LTEiLGNoaWxkcmVuOltkLnNsaWNlKDAsNTApLm1hcCgoYixoKT0+e2lmKHR5cGVvZiBiPT0ib2JqZWN0IiYmYiE9PW51bGwpe2NvbnN0IEU9YjtpZihFLmZpbGUpcmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmb250LW1vbm8gdGV4dC14cyBicmVhay1hbGwiLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixjaGlsZHJlbjpFLmZpbGV9KSxFLmxpbmUhPT12b2lkIDAmJnkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIixjaGlsZHJlbjpbIjoiLEUubGluZV19KSxFLnRleHQmJnkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQgbWwtMiBicmVhay13b3JkcyIsY2hpbGRyZW46RS50ZXh0fSldfSxgJHtFLmZpbGV9LSR7RS5saW5lfHxofWApfWNvbnN0IFM9dHlwZW9mIGI9PSJzdHJpbmciP2I6YGl0ZW0tJHtofWA7cmV0dXJuIHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZCBmb250LW1vbm8gdGV4dC14cyBicmVhay1hbGwiLGNoaWxkcmVuOnR5cGVvZiBiPT0ic3RyaW5nIj9iOkpTT04uc3RyaW5naWZ5KGIpfSxTKX0pLGQubGVuZ3RoPjUwJiZ5LmpzeHMoImRpdiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIHRleHQteHMgbXQtMiIsY2hpbGRyZW46WyIuLi4gYW5kICIsZC5sZW5ndGgtNTAsIiBtb3JlIl19KV19KX0pfSldfSl9ZnVuY3Rpb24geDQoe3Rvb2xEdXJhdGlvbk1zOmV9KXtjb25zdCBuPWU/YCR7ZX1tc2A6IiI7cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtZW1lcmFsZC03MDAgZGFyazp0ZXh0LWVtZXJhbGQtMzAwIixjaGlsZHJlbjpbIkRvbmUiLCIgIixuJiZ5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZC84MCIsY2hpbGRyZW46WyLCtyAiLG5dfSldfSl9ZnVuY3Rpb24gQTQoe2NvbnRlbnRKc29uOmUsdG9vbER1cmF0aW9uTXM6bixpc0V4cGFuZGVkOmEsb25Ub2dnbGU6aX0pe2NvbnN0IGw9ZS5yZXN1bHR8fHt9LHU9bj9gJHtufW1zYDoiIixjPXR5cGVvZiBsPT0ib2JqZWN0Ij9KU09OLnN0cmluZ2lmeShsLG51bGwsMik6U3RyaW5nKGwpO3JldHVybiB5LmpzeHMoImRpdiIse2NsYXNzTmFtZToidGV4dC14cyIsY2hpbGRyZW46W3kuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOigpPT5jJiZpKCksY2xhc3NOYW1lOmBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LW11dGVkLWZvcmVncm91bmQgJHtjPyJob3Zlcjp0ZXh0LWZvcmVncm91bmQgdHJhbnNpdGlvbi1jb2xvcnMiOiIifWAsY2hpbGRyZW46W2MmJihhP3kuanN4KFB0LHtjbGFzc05hbWU6ImgtMyB3LTMifSk6eS5qc3goR3Qse2NsYXNzTmFtZToiaC0zIHctMyJ9KSksIWMmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6InctMyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToiZm9udC1tZWRpdW0iLGNoaWxkcmVuOmUubmFtZXx8InVua25vd24ifSkseS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAiLGNoaWxkcmVuOlsiwrcgIix1XX0pXX0pLGEmJmMmJnkuanN4KCJwcmUiLHtjbGFzc05hbWU6Im10LTIgbWwtNSBtYXgtaC02NCBvdmVyZmxvdy14LWF1dG8gdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgYmctY2FyZC82MCBib3JkZXIgYm9yZGVyLWJvcmRlciByb3VuZGVkLWxnIHAtMyIsY2hpbGRyZW46eS5qc3goImNvZGUiLHtjaGlsZHJlbjpjfSl9KV19KX1mdW5jdGlvbiBfNCh7Y29udGVudEpzb246ZSx0b29sRHVyYXRpb25NczpufSl7cmV0dXJuIHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOlt5LmpzeHMoImRpdiIse2NoaWxkcmVuOlsiVG9vbDogIixlLm5hbWVdfSkseS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbIkR1cmF0aW9uOiAiLG4sIm1zIl19KSx5LmpzeCgicHJlIix7Y2xhc3NOYW1lOiJtdC0yIHRleHQtWzEwcHhdIGJnLWNhcmQgYm9yZGVyIGJvcmRlci1ib3JkZXIgcC0yIHJvdW5kZWQgb3ZlcmZsb3cteC1hdXRvIixjaGlsZHJlbjpKU09OLnN0cmluZ2lmeShlLG51bGwsMil9KV19KX0pfWZ1bmN0aW9uIFI0KHtjb250ZW50SnNvbjplfSl7Y29uc3Qgbj1lLnJlc3VsdHx8e30sYT1uLml0ZW1zfHxbXSxpPW4ubm90ZTtyZXR1cm4geS5qc3goImRpdiIse2NsYXNzTmFtZToidGV4dC14cyIsY2hpbGRyZW46eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImJnLWJsdWUtNTAwLzEwIGJvcmRlciBib3JkZXItYmx1ZS01MDAvMzAgZGFyazpiZy1ibHVlLTUwMC81IGRhcms6Ym9yZGVyLWJsdWUtNTAwLzIwIHJvdW5kZWQtbGcgcC0zIHNwYWNlLXktMiIsY2hpbGRyZW46W2kmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6InRleHQtYmx1ZS03MDAgZGFyazp0ZXh0LWJsdWUtMzAwIHRleHQtc20gZm9udC1tZWRpdW0gbWItMyIsY2hpbGRyZW46aX0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InNwYWNlLXktMS41IixjaGlsZHJlbjphLm1hcCgobCx1KT0+eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTIiLGNoaWxkcmVuOltsLnN0YXR1cz09PSJjb21wbGV0ZWQiJiZ5LmpzeChXMSx7Y2xhc3NOYW1lOiJoLTQgdy00IHRleHQtZW1lcmFsZC02MDAgZGFyazp0ZXh0LWVtZXJhbGQtMzAwIGZsZXgtc2hyaW5rLTAgbXQtMC41In0pLGwuc3RhdHVzPT09ImluX3Byb2dyZXNzIiYmeS5qc3goejEse2NsYXNzTmFtZToiaC00IHctNCB0ZXh0LWJsdWUtNzAwIGRhcms6dGV4dC1ibHVlLTMwMCBmbGV4LXNocmluay0wIG10LTAuNSBhbmltYXRlLXB1bHNlIn0pLGwuc3RhdHVzPT09InBlbmRpbmciJiZ5LmpzeChaMSx7Y2xhc3NOYW1lOiJoLTQgdy00IHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBmbGV4LXNocmluay0wIG10LTAuNSJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZTpgdGV4dC1zbSAke2wuc3RhdHVzPT09ImNvbXBsZXRlZCI/InRleHQtbXV0ZWQtZm9yZWdyb3VuZCBsaW5lLXRocm91Z2giOmwuc3RhdHVzPT09ImluX3Byb2dyZXNzIj8idGV4dC1mb3JlZ3JvdW5kIjoidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIn1gLGNoaWxkcmVuOmwuc3RlcH0pXX0sYCR7bC5zdGVwfS0ke3V9YCkpfSldfSl9KX1mdW5jdGlvbiBONCh7Y29udGVudEpzb246ZX0pe2NvbnN0IG49ZS5yZXN1bHR8fHt9LGE9U3RyaW5nKG4ubWVzc2FnZXx8IlByb2Nlc3NpbmcuLi4iKSxpPW4uc3RhZ2U/U3RyaW5nKG4uc3RhZ2UpOnZvaWQgMCxsPW4ucGN0P051bWJlcihuLnBjdCk6dm9pZCAwO3JldHVybiB5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1zbSB0ZXh0LXZpb2xldC03MDAgZGFyazp0ZXh0LXZpb2xldC0zMDAiLGNoaWxkcmVuOlt5LmpzeChaaCx7Y2xhc3NOYW1lOiJoLTQgdy00IGFuaW1hdGUtc3BpbiJ9KSxpJiZ5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZC84MCIsY2hpbGRyZW46WyJbIixpLCJdIl19KSx5LmpzeCgic3BhbiIse2NoaWxkcmVuOmF9KSxsIT09dm9pZCAwJiZ5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZC84MCIsY2hpbGRyZW46WyIoIixsLCIlKSJdfSldfSl9ZnVuY3Rpb24gdzQoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwmJiJyZXN1bHRzImluIGUmJiJxdWVyeSJpbiBlfWZ1bmN0aW9uIGs0KGUpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsJiYiY29udGVudCJpbiBlJiYidXJsImluIGV9ZnVuY3Rpb24gQzQoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwmJiJlcnJvciJpbiBlfWZ1bmN0aW9uIEk0KHtyZXN1bHQ6ZX0pe2NvbnN0W24sYV09dWUudXNlU3RhdGUoITEpO3JldHVybiB5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gaG92ZXI6Ym9yZGVyLWJvcmRlci84MCB0cmFuc2l0aW9uLWNvbG9ycyIsY2hpbGRyZW46W3kuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6KCk9PmEoIW4pLGNsYXNzTmFtZToidy1mdWxsIHRleHQtbGVmdCBwLTMgaG92ZXI6YmctY2FyZC82MCB0cmFuc2l0aW9uLWNvbG9ycyIsY2hpbGRyZW46eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTIiLGNoaWxkcmVuOlt5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LXNocmluay0wIG10LTEiLGNoaWxkcmVuOm4/eS5qc3goUHQse2NsYXNzTmFtZToidy00IGgtNCB0ZXh0LW11dGVkLWZvcmVncm91bmQifSk6eS5qc3goR3Qse2NsYXNzTmFtZToidy00IGgtNCB0ZXh0LW11dGVkLWZvcmVncm91bmQifSl9KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleC0xIG1pbi13LTAiLGNoaWxkcmVuOlt5LmpzeCgiaDQiLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIHRleHQteHMgdGV4dC1mb3JlZ3JvdW5kIGxpbmUtY2xhbXAtMiIsY2hpbGRyZW46ZS50aXRsZX0pLCFuJiZlLnNuaXBwZXQmJnkuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBtdC0xIGxpbmUtY2xhbXAtMiIsY2hpbGRyZW46ZS5zbmlwcGV0fSldfSkseS5qc3goImEiLHtocmVmOmUudXJsLHRhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLG9uQ2xpY2s6aT0+aS5zdG9wUHJvcGFnYXRpb24oKSxjbGFzc05hbWU6ImZsZXgtc2hyaW5rLTAgcC0xIHJvdW5kZWQgaG92ZXI6YmctY2FyZC84MCB0cmFuc2l0aW9uLWNvbG9ycyIsdGl0bGU6Ik9wZW4gaW4gbmV3IHRhYiIsY2hpbGRyZW46eS5qc3goS3cse2NsYXNzTmFtZToidy0zLjUgaC0zLjUgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIn0pfSldfSl9KSxuJiZ5LmpzeHMoImRpdiIse2NsYXNzTmFtZToicHgtMyBwYi0zIHNwYWNlLXktMiBib3JkZXItdCBib3JkZXItYm9yZGVyIGJnLWNhcmQvNDAiLGNoaWxkcmVuOltlLnNuaXBwZXQmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6InB0LTIiLGNoaWxkcmVuOnkuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCB3aGl0ZXNwYWNlLXByZS13cmFwIixjaGlsZHJlbjplLnNuaXBwZXR9KX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41IHRleHQteHMiLGNoaWxkcmVuOlt5LmpzeChOaCx7Y2xhc3NOYW1lOiJ3LTMgaC0zIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCJ9KSx5LmpzeCgiYSIse2hyZWY6ZS51cmwsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsY2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dW5kZXJsaW5lIHRydW5jYXRlIix0aXRsZTplLnVybCxjaGlsZHJlbjplLnVybH0pXX0pXX0pXX0pfWZ1bmN0aW9uIE80KHtjb250ZW50SnNvbjplLHRvb2xEdXJhdGlvbk1zOm4saXNFeHBhbmRlZDphLG9uVG9nZ2xlOml9KXtjb25zdCBsPWUucmVzdWx0LHU9bj9gJHtufW1zYDoiIjtpZih3NChsKSl7Y29uc3QgYz1sLnJlc3VsdHN8fFtdLGQ9bC5jb3VudHx8Yy5sZW5ndGg7cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIixjaGlsZHJlbjpbeS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6KCk9PmMubGVuZ3RoPjAmJmkoKSxjbGFzc05hbWU6YGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtYW1iZXItNjAwIGRhcms6dGV4dC1hbWJlci0zMDAgdHJhbnNpdGlvbi1jb2xvcnMgJHtjLmxlbmd0aD4wPyJob3Zlcjp0ZXh0LWFtYmVyLTUwMCBkYXJrOmhvdmVyOnRleHQtYW1iZXItMjAwIjoiIn1gLGNoaWxkcmVuOltjLmxlbmd0aD4wJiYoYT95LmpzeChQdCx7Y2xhc3NOYW1lOiJoLTMgdy0zIn0pOnkuanN4KEd0LHtjbGFzc05hbWU6ImgtMyB3LTMifSkpLGMubGVuZ3RoPT09MCYmeS5qc3goImRpdiIse2NsYXNzTmFtZToidy0zIn0pLHkuanN4KFh3LHtjbGFzc05hbWU6ImgtMyB3LTMifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIixjaGlsZHJlbjoid2Vic2VhcmNoIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvNzAiLGNoaWxkcmVuOiLCtyJ9KSx5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtZm9yZWdyb3VuZC83MCBpdGFsaWMiLGNoaWxkcmVuOlsnIicsbC5xdWVyeSwnIiddfSkseS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAiLGNoaWxkcmVuOlsiwrcgIixkLCIgIixkPT09MT8icmVzdWx0IjoicmVzdWx0cyIsIiDCtyAiLHVdfSldfSksYSYmYy5sZW5ndGg+MCYmeS5qc3goImRpdiIse2NsYXNzTmFtZToibXQtMiBtbC01IHNwYWNlLXktMiIsY2hpbGRyZW46Yy5tYXAoZj0+eS5qc3goSTQse3Jlc3VsdDpmfSxmLnVybCkpfSksYy5sZW5ndGg9PT0wJiZ5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJtdC0yIG1sLTUgdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgaXRhbGljIHAtMyBiZy1jYXJkLzYwIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQiLGNoaWxkcmVuOiJObyByZXN1bHRzIGZvdW5kIn0pXX0pfWlmKGs0KGwpKXtjb25zdCBjPWwuY29udGVudD8uc3BsaXQoYApgKS5sZW5ndGh8fDAsZD1sLmNvbnRlbnRMZW5ndGh8fGwuY29udGVudD8ubGVuZ3RofHwwLGY9bC50cnVuY2F0ZWR8fCExLG09KCgpPT57dHJ5e3JldHVybiBuZXcgVVJMKGwudXJsKS5ob3N0bmFtZX1jYXRjaHtyZXR1cm4gbC51cmx9fSkoKTtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOlt5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazppLGNsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1ibHVlLTcwMCBkYXJrOnRleHQtYmx1ZS0zMDAgdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6dGV4dC1ibHVlLTYwMCBkYXJrOmhvdmVyOnRleHQtYmx1ZS0yMDAiLGNoaWxkcmVuOlthP3kuanN4KFB0LHtjbGFzc05hbWU6ImgtMyB3LTMifSk6eS5qc3goR3Qse2NsYXNzTmFtZToiaC0zIHctMyJ9KSx5LmpzeChOaCx7Y2xhc3NOYW1lOiJoLTMgdy0zIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJmb250LW1lZGl1bSIsY2hpbGRyZW46IndlYnNlYXJjaCJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzcwIixjaGlsZHJlbjoiwrcifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQtZm9yZWdyb3VuZC83MCB0cnVuY2F0ZSBtYXgtdy1tZCIsY2hpbGRyZW46bX0pLHkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIixjaGlsZHJlbjpbIsK3ICIsZC50b0xvY2FsZVN0cmluZygpLCIgY2hhcnMgwrcgIixjLCIgbGluZXMiLGYmJiIgKHRydW5jYXRlZCkiLHUmJmAgwrcgJHt1fWBdfSldfSksYSYmbC5jb250ZW50JiZ5LmpzeHMoImRpdiIse2NsYXNzTmFtZToibXQtMiBtbC01IGJnLWNhcmQvNjAgYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZC1sZyBwLTMgc3BhY2UteS0yIixjaGlsZHJlbjpbeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAteC00IGdhcC15LTEgdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgcHgtMyBweS0yIGJnLWNhcmQvNjAgcm91bmRlZCBib3JkZXIgYm9yZGVyLWJvcmRlciIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSIsY2hpbGRyZW46W3kuanN4KFd3LHtjbGFzc05hbWU6InctMyBoLTMifSkseS5qc3goInNwYW4iLHtjaGlsZHJlbjpsLmNvbnRlbnRUeXBlfSldfSkseS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0xIixjaGlsZHJlbjpbeS5qc3goWGgse2NsYXNzTmFtZToidy0zIGgtMyJ9KSx5LmpzeHMoInNwYW4iLHtjaGlsZHJlbjpbYy50b0xvY2FsZVN0cmluZygpLCIgbGluZXMiXX0pXX0pLHkuanN4cygiYSIse2hyZWY6bC51cmwsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsY2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBob3Zlcjp1bmRlcmxpbmUiLGNoaWxkcmVuOlt5LmpzeChOaCx7Y2xhc3NOYW1lOiJ3LTMgaC0zIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0cnVuY2F0ZSBtYXgtdy1tZCIsdGl0bGU6bC51cmwsY2hpbGRyZW46bC51cmx9KSx5LmpzeChLdyx7Y2xhc3NOYW1lOiJ3LTMgaC0zIn0pXX0pXX0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6Im1heC1oLTk2IG92ZXJmbG93LWF1dG8gYmctY2FyZCBib3JkZXIgYm9yZGVyLWJvcmRlciByb3VuZGVkIixjaGlsZHJlbjp5LmpzeCgicHJlIix7Y2xhc3NOYW1lOiJwLTMgdGV4dC14cyBmb250LW1vbm8gdGV4dC1mb3JlZ3JvdW5kLzgwIHdoaXRlc3BhY2UtcHJlLXdyYXAgYnJlYWstd29yZHMiLGNoaWxkcmVuOmwuY29udGVudH0pfSksZiYmeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGl0YWxpYyBweC0zIixjaGlsZHJlbjpbIuKaoO+4jyBDb250ZW50IHdhcyB0cnVuY2F0ZWQgdG8gIixkLnRvTG9jYWxlU3RyaW5nKCksIiAiLCJjaGFyYWN0ZXJzIl19KV19KV19KX1yZXR1cm4gQzQobCk/eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOlt5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1yZWQtNjAwIGRhcms6dGV4dC1yZWQtNDAwIixjaGlsZHJlbjpbeS5qc3goImRpdiIse2NsYXNzTmFtZToidy0zIn0pLHkuanN4KFZ3LHtjbGFzc05hbWU6ImgtMyB3LTMifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZvbnQtbWVkaXVtIixjaGlsZHJlbjoid2Vic2VhcmNoIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAiLGNoaWxkcmVuOnUmJmDCtyAke3V9YH0pXX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJtdC0yIG1sLTUgdGV4dC1yZWQtNjAwIGRhcms6dGV4dC1yZWQtNDAwIHRleHQteHMgcC0zIGJnLXJlZC01MCBkYXJrOmJnLXJlZC05NTAvMjAgcm91bmRlZCBib3JkZXIgYm9yZGVyLXJlZC0yMDAgZGFyazpib3JkZXItcmVkLTgwMCIsY2hpbGRyZW46W3kuanN4KCJwIix7Y2xhc3NOYW1lOiJmb250LW1lZGl1bSIsY2hpbGRyZW46bC5lcnJvcn0pLGwucXVlcnkmJnkuanN4cygicCIse2NsYXNzTmFtZToibXQtMSB0ZXh0LXhzIHRleHQtcmVkLTcwMCBkYXJrOnRleHQtcmVkLTMwMCIsY2hpbGRyZW46WydRdWVyeTogIicsbC5xdWVyeSwnIiddfSksbC5zdWdnZXN0aW9uJiZ5LmpzeHMoInAiLHtjbGFzc05hbWU6Im10LTEgdGV4dC14cyB0ZXh0LXJlZC02MDAgZGFyazp0ZXh0LXJlZC00MDAgaXRhbGljIixjaGlsZHJlbjpbIvCfkqEgIixsLnN1Z2dlc3Rpb25dfSldfSldfSk6eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOlt5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixjaGlsZHJlbjpbeS5qc3goImRpdiIse2NsYXNzTmFtZToidy0zIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJmb250LW1lZGl1bSIsY2hpbGRyZW46IndlYnNlYXJjaCJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzgwIixjaGlsZHJlbjp1JiZgwrcgJHt1fWB9KV19KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJtdC0yIG1sLTUgdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgcC0yIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQgYmctY2FyZC82MCIsY2hpbGRyZW46eS5qc3goImNvZGUiLHtjbGFzc05hbWU6InRleHQteHMiLGNoaWxkcmVuOkpTT04uc3RyaW5naWZ5KGwsbnVsbCwyKX0pfSldfSl9ZnVuY3Rpb24gTDQoe3Rvb2xOYW1lOmUsY29udGVudEpzb246bix0b29sRHVyYXRpb25NczphLGRlYnVnOml9KXtjb25zdFtsLHVdPXVlLnVzZVN0YXRlKCExKSxjPXtjb250ZW50SnNvbjpuLHRvb2xEdXJhdGlvbk1zOmE/P3ZvaWQgMCxpc0V4cGFuZGVkOmwsb25Ub2dnbGU6KCk9PnUoIWwpfTtpZihpKXJldHVybiB5LmpzeChfNCx7Li4uYyx0b29sTmFtZTplfSk7c3dpdGNoKGUpe2Nhc2UicmVhZCI6cmV0dXJuIHkuanN4KGQ0LHsuLi5jfSk7Y2FzZSJ3cml0ZSI6cmV0dXJuIHkuanN4KGY0LHsuLi5jfSk7Y2FzZSJlZGl0IjpyZXR1cm4geS5qc3goZzQsey4uLmN9KTtjYXNlImJhc2giOnJldHVybiB5LmpzeChtNCx7Li4uY30pO2Nhc2UiZ2l0X3N0YXR1cyI6cmV0dXJuIHkuanN4KGg0LHsuLi5jfSk7Y2FzZSJnaXRfZGlmZiI6cmV0dXJuIHkuanN4KGI0LHsuLi5jfSk7Y2FzZSJnaXRfY29tbWl0IjpyZXR1cm4geS5qc3goeTQsey4uLmN9KTtjYXNlImFwcGx5X3BhdGNoIjpyZXR1cm4geS5qc3goRTQsey4uLmN9KTtjYXNlImxzIjpyZXR1cm4geS5qc3goUzQsey4uLmN9KTtjYXNlInRyZWUiOnJldHVybiB5LmpzeCh2NCx7Li4uY30pO2Nhc2UicmlwZ3JlcCI6Y2FzZSJncmVwIjpjYXNlImdsb2IiOnJldHVybiB5LmpzeChUNCx7Li4uY30pO2Nhc2Uid2Vic2VhcmNoIjpyZXR1cm4geS5qc3goTzQsey4uLmN9KTtjYXNlImZpbmlzaCI6cmV0dXJuIHkuanN4KHg0LHsuLi5jfSk7Y2FzZSJ1cGRhdGVfcGxhbiI6cmV0dXJuIHkuanN4KFI0LHsuLi5jfSk7Y2FzZSJwcm9ncmVzc191cGRhdGUiOnJldHVybiB5LmpzeChONCx7Li4uY30pO2RlZmF1bHQ6cmV0dXJuIHkuanN4KEE0LHsuLi5jLHRvb2xOYW1lOmV9KX19ZnVuY3Rpb24gUkMoZSl7Y29uc3Qgbj1lLmNvbnRlbnRKc29uO2lmKG4mJnR5cGVvZiBuPT0ib2JqZWN0IilyZXR1cm4gbjt0cnl7aWYoZS5jb250ZW50KXtjb25zdCBhPUpTT04ucGFyc2UoZS5jb250ZW50KTtpZihhJiZ0eXBlb2YgYT09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KGEpKXJldHVybiBhfX1jYXRjaHt9cmV0dXJuIG51bGx9ZnVuY3Rpb24gRDQoZSl7Y29uc3Qgbj1SQyhlKTtpZighbilyZXR1cm47Y29uc3QgYT1uLmFyZ3M7aWYoYSYmdHlwZW9mIGE9PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gYX1mdW5jdGlvbiBNNChlKXtpZighZSlyZXR1cm4gbnVsbDtjb25zdCBuPVsiY21kIiwiY29tbWFuZCIsInNjcmlwdCIsImlucHV0Il07Zm9yKGNvbnN0IGEgb2Ygbil7Y29uc3QgaT1lW2FdO2lmKHR5cGVvZiBpPT0ic3RyaW5nIiYmaS50cmltKCkubGVuZ3RoPjApcmV0dXJuIGkudHJpbSgpfXJldHVybiBudWxsfWZ1bmN0aW9uIFU0KGUsbil7aWYoIW4pcmV0dXJuIG51bGw7Y29uc3QgYT1be2tleToicGF0aCIsbWF0Y2g6ITB9LHtrZXk6ImZpbGUiLG1hdGNoOiEwfSx7a2V5OiJ0YXJnZXQiLG1hdGNoOiEwfSx7a2V5OiJjd2QiLG1hdGNoOiEwfSx7a2V5OiJxdWVyeSIsbWF0Y2g6ITB9LHtrZXk6InBhdHRlcm4iLG1hdGNoOiEwfSx7a2V5OiJnbG9iIixtYXRjaDohMH0se2tleToiZGlyIixtYXRjaDohMH1dO2Zvcihjb25zdHtrZXk6aX1vZiBhKXtjb25zdCBsPW5baV07aWYodHlwZW9mIGw9PSJzdHJpbmciJiZsLnRyaW0oKS5sZW5ndGg+MClyZXR1cm57a2V5OmksdmFsdWU6bC50cmltKCl9fWlmKGU9PT0iYmFzaCIpe2NvbnN0IGk9bi5jb21tYW5kO2lmKHR5cGVvZiBpPT0ic3RyaW5nIiYmaS50cmltKCkubGVuZ3RoPjApcmV0dXJue2tleToiY29tbWFuZCIsdmFsdWU6aS50cmltKCl9fXJldHVybiBudWxsfWZ1bmN0aW9uIEY0KGUsbil7aWYoIWUpcmV0dXJuIG51bGw7Y29uc3QgYT1bXTtmb3IoY29uc3RbbCx1XW9mIE9iamVjdC5lbnRyaWVzKGUpKWlmKCEobiYmbD09PW4pKXtpZih0eXBlb2YgdT09InN0cmluZyJ8fHR5cGVvZiB1PT0ibnVtYmVyIil7Y29uc3QgYz1gJHtsfT0ke1N0cmluZyh1KX1gO2EucHVzaChjKX1pZihhLmxlbmd0aD49MylicmVha31pZighYS5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgaT1hLmpvaW4oIiAgIik7cmV0dXJuIGkubGVuZ3RoPjEyMD9gJHtpLnNsaWNlKDAsMTE3KX3igKZgOml9Y29uc3Qga3c9dWUubWVtbyhmdW5jdGlvbih7cGFydDpuLHNob3dMaW5lOmEsaXNMYXN0VG9vbENhbGw6aSxpc0xhc3RQcm9ncmVzc1VwZGF0ZTpsfSl7aWYobi50eXBlPT09InRvb2xfY2FsbCImJiFpfHxuLnR5cGU9PT0idG9vbF9yZXN1bHQiJiZuLnRvb2xOYW1lPT09InByb2dyZXNzX3VwZGF0ZSImJiFsKXJldHVybiBudWxsO2lmKG4udHlwZT09PSJ0ZXh0Iil7Y29uc3QgaD1uLmNvbnRlbnRKc29ufHxuLmNvbnRlbnQ7bGV0IFM9IiI7aWYoaCYmdHlwZW9mIGg9PSJvYmplY3QiJiYidGV4dCJpbiBoP1M9U3RyaW5nKGgudGV4dCk6dHlwZW9mIGg9PSJzdHJpbmciJiYoUz1oKSwhU3x8IVMudHJpbSgpKXJldHVybiBudWxsfWNvbnN0IHU9bi50eXBlPT09InRvb2xfY2FsbCJ8fG4udHlwZT09PSJ0b29sX3Jlc3VsdCIsYz1bImZsZXgtMSIsIm1pbi13LTAiLCJtYXgtdy1mdWxsIl07dT9jLnB1c2goInB0LTAuNSIsIm10LVsxcHhdIik6Yy5wdXNoKCJwdC0wIiksbi50eXBlPT09InRleHQiJiZjLnB1c2goIi1tdC0wLjUiKTtjb25zdCBkPWMuam9pbigiICIpLGY9KCk9PntpZihuLnR5cGU9PT0idG9vbF9jYWxsIilyZXR1cm4geS5qc3goWmgse2NsYXNzTmFtZToiaC00IHctNCB0ZXh0LWFtYmVyLTYwMCBkYXJrOnRleHQtYW1iZXItMzAwIGFuaW1hdGUtc3BpbiJ9KTtpZihuLnR5cGU9PT0idG9vbF9yZXN1bHQiKXtjb25zdCBoPW4udG9vbE5hbWV8fCIiO3JldHVybiBoPT09InJlYWQiP3kuanN4KFd3LHtjbGFzc05hbWU6ImgtNCB3LTQgdGV4dC1ibHVlLTYwMCBkYXJrOnRleHQtYmx1ZS0zMDAifSk6aD09PSJ3cml0ZSI/eS5qc3goS3Yse2NsYXNzTmFtZToiaC00IHctNCB0ZXh0LWVtZXJhbGQtNjAwIGRhcms6dGV4dC1lbWVyYWxkLTMwMCJ9KTpoPT09ImVkaXQiP3kuanN4KEt2LHtjbGFzc05hbWU6ImgtNCB3LTQgdGV4dC1wdXJwbGUtNjAwIGRhcms6dGV4dC1wdXJwbGUtMzAwIn0pOmg9PT0ibHMiP3kuanN4KEUwLHtjbGFzc05hbWU6ImgtNCB3LTQgdGV4dC1jeWFuLTYwMCBkYXJrOnRleHQtY3lhbi0zMDAifSk6aD09PSJ0cmVlIj95LmpzeChmMCx7Y2xhc3NOYW1lOiJoLTQgdy00IHRleHQtY3lhbi02MDAgZGFyazp0ZXh0LWN5YW4tMzAwIn0pOmg9PT0iYmFzaCI/eS5qc3goV3Yse2NsYXNzTmFtZToiaC00IHctNCB0ZXh0LW11dGVkLWZvcmVncm91bmQifSk6aD09PSJyaXBncmVwInx8aD09PSJncmVwInx8aD09PSJnbG9iIj95LmpzeChYdyx7Y2xhc3NOYW1lOiJoLTQgdy00IHRleHQtYW1iZXItNjAwIGRhcms6dGV4dC1hbWJlci0zMDAifSk6aD09PSJhcHBseV9wYXRjaCI/eS5qc3goWXYse2NsYXNzTmFtZToiaC00IHctNCB0ZXh0LXB1cnBsZS02MDAgZGFyazp0ZXh0LXB1cnBsZS0zMDAifSk6aD09PSJnaXRfc3RhdHVzIj95LmpzeChGbCx7Y2xhc3NOYW1lOiJoLTQgdy00IHRleHQtYmx1ZS02MDAgZGFyazp0ZXh0LWJsdWUtMzAwIn0pOmg9PT0iZ2l0X2RpZmYiP3kuanN4KFl2LHtjbGFzc05hbWU6ImgtNCB3LTQgdGV4dC1wdXJwbGUtNjAwIGRhcms6dGV4dC1wdXJwbGUtMzAwIn0pOmg9PT0iZ2l0X2NvbW1pdCI/eS5qc3goQmwse2NsYXNzTmFtZToiaC00IHctNCB0ZXh0LWVtZXJhbGQtNjAwIGRhcms6dGV4dC1lbWVyYWxkLTMwMCJ9KTpoPT09ImZpbmlzaCI/eS5qc3goSHcse2NsYXNzTmFtZToiaC00IHctNCB0ZXh0LWVtZXJhbGQtNjAwIGRhcms6dGV4dC1lbWVyYWxkLTMwMCJ9KTp5LmpzeChXdix7Y2xhc3NOYW1lOiJoLTQgdy00IHRleHQtbXV0ZWQtZm9yZWdyb3VuZCJ9KX1yZXR1cm4geS5qc3goamwse2NsYXNzTmFtZToiaC00IHctNCB0ZXh0LXZpb2xldC02MDAgZGFyazp0ZXh0LXZpb2xldC0zMDAifSl9LG09KCk9Pntjb25zdCBoPW4udG9vbE5hbWV8fCIiO2xldCBTO3RyeXtuLmNvbnRlbnRKc29uJiZ0eXBlb2Ygbi5jb250ZW50SnNvbj09Im9iamVjdCI/Uz1uLmNvbnRlbnRKc29uOnR5cGVvZiBuLmNvbnRlbnQ9PSJzdHJpbmciP1M9SlNPTi5wYXJzZShuLmNvbnRlbnQpOlM9e319Y2F0Y2h7Uz17cmVzdWx0Om4uY29udGVudH19cmV0dXJuIHkuanN4KEw0LHt0b29sTmFtZTpoLGNvbnRlbnRKc29uOlMsdG9vbER1cmF0aW9uTXM6bi50b29sRHVyYXRpb25NcyxkZWJ1ZzohMX0pfSxiPSgpPT57aWYobi50eXBlPT09InRleHQiKXtsZXQgaD0iIjtjb25zdCBTPW4uY29udGVudEpzb258fG4uY29udGVudDtyZXR1cm4gUyYmdHlwZW9mIFM9PSJvYmplY3QiJiYidGV4dCJpbiBTP2g9U3RyaW5nKFMudGV4dCk6dHlwZW9mIFM9PSJzdHJpbmciP2g9UzpTJiYoaD1KU09OLnN0cmluZ2lmeShTLG51bGwsMikpLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InRleHQtYmFzZSB0ZXh0LWZvcmVncm91bmQgbGVhZGluZy1yZWxheGVkIG1hcmtkb3duLWNvbnRlbnQgbWF4LXctZnVsbCBvdmVyZmxvdy1oaWRkZW4iLGNoaWxkcmVuOnkuanN4KHRDLHtyZW1hcmtQbHVnaW5zOltfQ10sY2hpbGRyZW46aH0pfSl9aWYobi50eXBlPT09InRvb2xfY2FsbCIpe2NvbnN0IGg9UkMobiksUz1uLnRvb2xOYW1lfHwodHlwZW9mIGg/Lm5hbWU9PSJzdHJpbmciP2gubmFtZToidG9vbCIpLEU9Uy5yZXBsYWNlKC9fL2csIiAiKSxfPUQ0KG4pLFQ9VTQoUyxfKSxDPUY0KF8sVD8ua2V5KSx4PVM9PT0iYmFzaCI/TTQoXyk6bnVsbCxOPVtdO3g/Ti5wdXNoKHtrZXk6ImNtZCIsbm9kZTp5LmpzeCgiY29kZSIse2NsYXNzTmFtZToiZm9udC1tb25vIHRleHQtZm9yZWdyb3VuZC85MCB0cnVuY2F0ZSBtYXgtdy14cyIsY2hpbGRyZW46eH0pfSk6VCYmTi5wdXNoKHtrZXk6InByaW1hcnkiLG5vZGU6eS5qc3goImNvZGUiLHtjbGFzc05hbWU6ImZvbnQtbW9ubyB0ZXh0LWZvcmVncm91bmQvODUgdHJ1bmNhdGUgbWF4LXcteHMiLGNoaWxkcmVuOlQudmFsdWV9KX0pLEMmJk4ucHVzaCh7a2V5OiJhcmdzIixub2RlOnkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvODAgdHJ1bmNhdGUgbWF4LXcteHMiLGNoaWxkcmVuOkN9KX0pLE4ucHVzaCh7a2V5OiJydW5uaW5nIixub2RlOnkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LW11dGVkLWZvcmVncm91bmQvNzUiLGNoaWxkcmVuOiJydW5uaW5n4oCmIn0pfSk7Y29uc3Qgaz1bImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAteC0yIGdhcC15LTEgdGV4dC14cyB0ZXh0LWZvcmVncm91bmQvODAgbWF4LXctZnVsbCJdO3JldHVybiBuLmVwaGVtZXJhbCYmay5wdXNoKCJhbmltYXRlLXB1bHNlIikseS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ay5qb2luKCIgIiksY2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQiLGNoaWxkcmVuOkV9KSxOLm1hcChMPT55LmpzeHModWUuRnJhZ21lbnQse2NoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzY1IixjaGlsZHJlbjoiwrcifSksTC5ub2RlXX0sTC5rZXkpKV19KX1yZXR1cm4gbi50eXBlPT09InRvb2xfcmVzdWx0Ij9tKCk6bnVsbH07cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGdhcC0zIHBiLTIgcmVsYXRpdmUgbWF4LXctZnVsbCBvdmVyZmxvdy1oaWRkZW4iLGNoaWxkcmVuOlt5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleC1zaHJpbmstMCB3LTYgZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWNlbnRlciByZWxhdGl2ZSBwdC0wLjUiLGNoaWxkcmVuOlt5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGgtNSB3LTUgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCByZWxhdGl2ZSB6LTEwIGJnLWJhY2tncm91bmQiLGNoaWxkcmVuOmYoKX0pLGEmJnkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImFic29sdXRlIGxlZnQtMS8yIC10cmFuc2xhdGUteC0xLzIgdy1bMnB4XSBiZy1ib3JkZXIgei0wIixzdHlsZTp7dG9wOiIxLjI1cmVtIixib3R0b206Ii0wLjVyZW0ifX0pXX0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ZCxjaGlsZHJlbjpiKCl9KV19KX0sKGUsbik9PmUucGFydC5pZD09PW4ucGFydC5pZCYmZS5wYXJ0LmNvbnRlbnQ9PT1uLnBhcnQuY29udGVudCYmZS5wYXJ0LmNvbnRlbnRKc29uPT09bi5wYXJ0LmNvbnRlbnRKc29uJiZlLnBhcnQuZXBoZW1lcmFsPT09bi5wYXJ0LmVwaGVtZXJhbCYmZS5wYXJ0LmNvbXBsZXRlZEF0PT09bi5wYXJ0LmNvbXBsZXRlZEF0JiZlLnNob3dMaW5lPT09bi5zaG93TGluZSYmZS5pc0xhc3RUb29sQ2FsbD09PW4uaXNMYXN0VG9vbENhbGwmJmUuaXNMYXN0UHJvZ3Jlc3NVcGRhdGU9PT1uLmlzTGFzdFByb2dyZXNzVXBkYXRlKSxDdz1bIkdlbmVyYXRpbmcuLi4iLCJDb29raW5nIHVwIHNvbWV0aGluZy4uLiIsIlRoaW5raW5nLi4uIiwiUHJvY2Vzc2luZy4uLiIsIldvcmtpbmcgb24gaXQuLi4iLCJDcmFmdGluZyByZXNwb25zZS4uLiIsIkJyZXdpbmcgbWFnaWMuLi4iLCJDb21wdXRpbmcuLi4iXTtmdW5jdGlvbiBCNChlKXtjb25zdCBuPWUuc3BsaXQoIiIpLnJlZHVjZSgoYSxpKT0+YStpLmNoYXJDb2RlQXQoMCksMCk7cmV0dXJuIEN3W24lQ3cubGVuZ3RoXX1jb25zdCBqND11ZS5tZW1vKGZ1bmN0aW9uKHttZXNzYWdlOm4sc2hvd0hlYWRlcjphLGhhc05leHRBc3Npc3RhbnRNZXNzYWdlOml9KXtjb25zdCBsPW4ucGFydHN8fFtdLHU9bC5zb21lKEU9PkUudG9vbE5hbWU9PT0iZmluaXNoIiksYz1sLnJlZHVjZSgoRSxfLFQpPT5fLnR5cGU9PT0idG9vbF9yZXN1bHQiJiZfLnRvb2xOYW1lPT09InByb2dyZXNzX3VwZGF0ZSI/VDpFLC0xKSxkPWM+PTA/bFtjXTpudWxsLGY9bC5zb21lKEU9PiEoRS50eXBlPT09InRvb2xfcmVzdWx0IiYmRS50b29sTmFtZT09PSJwcm9ncmVzc191cGRhdGUiKSksbT1sLmZpbmRJbmRleChFPT4hKEUudHlwZT09PSJ0b29sX3Jlc3VsdCImJkUudG9vbE5hbWU9PT0icHJvZ3Jlc3NfdXBkYXRlIikpLGI9bi5zdGF0dXM9PT0icGVuZGluZyImJiF1JiYhIWQsaD1uLnN0YXR1cz09PSJwZW5kaW5nIiYmIXUmJiFkLFM9RT0+RT9uZXcgRGF0ZShFKS50b0xvY2FsZVRpbWVTdHJpbmcoW10se2hvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCJ9KToiIjtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InJlbGF0aXZlIixjaGlsZHJlbjpbYSYmeS5qc3goImRpdiIse2NsYXNzTmFtZToicGItMiIsY2hpbGRyZW46eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBiZy12aW9sZXQtNTAwLzEwIGJvcmRlciBib3JkZXItdmlvbGV0LTUwMC8zMCBkYXJrOmJnLXZpb2xldC01MDAvNSBkYXJrOmJvcmRlci12aW9sZXQtNTAwLzIwIHJvdW5kZWQtZnVsbCBwci00IixjaGlsZHJlbjpbeS5qc3goImRpdiIse2NsYXNzTmFtZToiZmxleCBoLTggdy04IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci12aW9sZXQtNTAwLzUwIGJnLXZpb2xldC01MDAvMjAgZGFyazpiZy12aW9sZXQtNTAwLzEwIixjaGlsZHJlbjp5LmpzeChqbCx7Y2xhc3NOYW1lOiJoLTMuNSB3LTMuNSB0ZXh0LXZpb2xldC03MDAgZGFyazp0ZXh0LXZpb2xldC0zMDAifSl9KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmQgcGwtMyIsY2hpbGRyZW46W24uYWdlbnQmJnkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJmb250LW1lZGl1bSB0ZXh0LXZpb2xldC03MDAgZGFyazp0ZXh0LXZpb2xldC0zMDAiLGNoaWxkcmVuOm4uYWdlbnR9KSxuLmFnZW50JiZuLnByb3ZpZGVyJiZ5LmpzeCgic3BhbiIse2NoaWxkcmVuOiLCtyJ9KSxuLnByb3ZpZGVyJiZ5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixjaGlsZHJlbjpuLnByb3ZpZGVyfSksbi5tb2RlbCYmeS5qc3goInNwYW4iLHtjaGlsZHJlbjoiwrcifSksbi5tb2RlbCYmeS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZCIsY2hpbGRyZW46bi5tb2RlbH0pLG4uY3JlYXRlZEF0JiZ5LmpzeCgic3BhbiIse2NoaWxkcmVuOiLCtyJ9KSxuLmNyZWF0ZWRBdCYmeS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZCIsY2hpbGRyZW46UyhuLmNyZWF0ZWRBdCl9KV19KV19KX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJyZWxhdGl2ZSBtbC0xIixjaGlsZHJlbjpbbC5tYXAoKEUsXyk9Pntjb25zdCBUPV89PT1sLmxlbmd0aC0xLEM9IVR8fGkseD1FLnR5cGU9PT0idG9vbF9jYWxsIiYmVDtyZXR1cm4gRS50eXBlPT09InRvb2xfcmVzdWx0IiYmRS50b29sTmFtZT09PSJwcm9ncmVzc191cGRhdGUiP251bGw6eS5qc3goa3cse3BhcnQ6RSxzaG93TGluZTpDLGlzRmlyc3RQYXJ0Ol89PT1tJiYhYSxpc0xhc3RUb29sQ2FsbDp4fSxFLmlkKX0pLGImJmQmJnkuanN4KGt3LHtwYXJ0OmQsc2hvd0xpbmU6aSxpc0ZpcnN0UGFydDohZiYmIWEsaXNMYXN0UHJvZ3Jlc3NVcGRhdGU6ITB9LGQuaWQpLGgmJnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGdhcC0zIHBiLTIgcmVsYXRpdmUiLGNoaWxkcmVuOlt5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LXNocmluay0wIHctNiBmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyIHJlbGF0aXZlIHB0LTAuNSIsY2hpbGRyZW46eS5qc3goImRpdiIse2NsYXNzTmFtZToiZmxleCBoLTUgdy01IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgcmVsYXRpdmUgei0xMCBiZy1jYXJkIHRleHQtdmlvbGV0LTcwMCBkYXJrOmJnLWJhY2tncm91bmQgZGFyazp0ZXh0LXZpb2xldC0zMDAiLGNoaWxkcmVuOnkuanN4KGpsLHtjbGFzc05hbWU6ImgtNCB3LTQifSl9KX0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBwdC0wLjUiLGNoaWxkcmVuOnkuanN4KCJkaXYiLHtjbGFzc05hbWU6InRleHQtYmFzZSB0ZXh0LWZvcmVncm91bmQgYW5pbWF0ZS1wdWxzZSIsY2hpbGRyZW46QjQobi5pZCl9KX0pXX0pXX0pXX0pfSwoZSxuKT0+e2NvbnN0IGE9ZS5tZXNzYWdlLnBhcnRzfHxbXSxpPW4ubWVzc2FnZS5wYXJ0c3x8W107aWYoYS5sZW5ndGghPT1pLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGw9MDtsPGEubGVuZ3RoO2wrKyl7Y29uc3QgdT1hW2xdLGM9aVtsXTtpZih1LmlkIT09Yy5pZHx8dS5jb250ZW50IT09Yy5jb250ZW50fHx1LmNvbnRlbnRKc29uIT09Yy5jb250ZW50SnNvbnx8dS5lcGhlbWVyYWwhPT1jLmVwaGVtZXJhbHx8dS5jb21wbGV0ZWRBdCE9PWMuY29tcGxldGVkQXQpcmV0dXJuITF9cmV0dXJuIGUubWVzc2FnZS5pZD09PW4ubWVzc2FnZS5pZCYmZS5tZXNzYWdlLnN0YXR1cz09PW4ubWVzc2FnZS5zdGF0dXMmJmUubWVzc2FnZS5jb21wbGV0ZWRBdD09PW4ubWVzc2FnZS5jb21wbGV0ZWRBdCYmZS5zaG93SGVhZGVyPT09bi5zaG93SGVhZGVyJiZlLmhhc05leHRBc3Npc3RhbnRNZXNzYWdlPT09bi5oYXNOZXh0QXNzaXN0YW50TWVzc2FnZSYmZS5pc0xhc3RNZXNzYWdlPT09bi5pc0xhc3RNZXNzYWdlfSksejQ9dWUubWVtbyhmdW5jdGlvbih7bWVzc2FnZTpufSl7Y29uc3QgaT0obi5wYXJ0c3x8W10pWzBdO2lmKCFpKXJldHVybiBudWxsO2xldCBsPSIiO2NvbnN0IHU9aS5jb250ZW50SnNvbnx8aS5jb250ZW50O3UmJnR5cGVvZiB1PT0ib2JqZWN0IiYmInRleHQiaW4gdT9sPVN0cmluZyh1LnRleHQpOnR5cGVvZiB1PT0ic3RyaW5nIj9sPXU6dSYmKGw9SlNPTi5zdHJpbmdpZnkodSxudWxsLDIpKTtjb25zdCBjPWQ9PmQ/bmV3IERhdGUoZCkudG9Mb2NhbGVUaW1lU3RyaW5nKFtdLHtob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQifSk6IiI7cmV0dXJuIHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InJlbGF0aXZlIHBiLTggcHQtNiIsY2hpbGRyZW46eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggZ2FwLTQganVzdGlmeS1lbmQiLGNoaWxkcmVuOlt5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiaW5saW5lLWJsb2NrIixjaGlsZHJlbjpbeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHBiLTIganVzdGlmeS1lbmQiLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NsYXNzTmFtZToiZm9udC1tZWRpdW0gdGV4dC1lbWVyYWxkLTcwMCBkYXJrOnRleHQtZW1lcmFsZC0zMDAiLGNoaWxkcmVuOiJZb3UifSksbi5jcmVhdGVkQXQmJnkuanN4KCJzcGFuIix7Y2hpbGRyZW46IsK3In0pLG4uY3JlYXRlZEF0JiZ5LmpzeCgic3BhbiIse2NoaWxkcmVuOmMobi5jcmVhdGVkQXQpfSldfSkseS5qc3goImRpdiIse2NsYXNzTmFtZToidGV4dC1zbSB0ZXh0LWZvcmVncm91bmQgbGVhZGluZy1yZWxheGVkIHByb3NlIHByb3NlLWludmVydCBwcm9zZS1zbSBbJj4qOmZpcnN0LWNoaWxkXTptdC0wIFsmPio6bGFzdC1jaGlsZF06bWItMCBiZy1lbWVyYWxkLTUwMC81IGJvcmRlciBib3JkZXItZW1lcmFsZC01MDAvMjAgcm91bmRlZC14bCBweC00IHB5LTMgaW5saW5lLWJsb2NrIG1heC13LTJ4bCIsY2hpbGRyZW46eS5qc3godEMse3JlbWFya1BsdWdpbnM6W19DXSxjaGlsZHJlbjpsfSl9KV19KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LXNocmluay0wIHctOCBmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyIixjaGlsZHJlbjp5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGgtOCB3LTggc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBib3JkZXItMiBib3JkZXItZW1lcmFsZC01MDAvNTAgYmctZW1lcmFsZC01MDAvMjAgZGFyazpiZy1lbWVyYWxkLTUwMC8xMCByZWxhdGl2ZSB6LTEwIGJnLWJhY2tncm91bmQiLGNoaWxkcmVuOnkuanN4KEQwLHtjbGFzc05hbWU6ImgtNCB3LTQgdGV4dC1lbWVyYWxkLTcwMCBkYXJrOnRleHQtZW1lcmFsZC0zMDAifSl9KX0pXX0pfSl9LChlLG4pPT57Y29uc3QgYT1lLm1lc3NhZ2UucGFydHM/LlswXSxpPW4ubWVzc2FnZS5wYXJ0cz8uWzBdO3JldHVybiBlLm1lc3NhZ2UuaWQ9PT1uLm1lc3NhZ2UuaWQmJmE/LmNvbnRlbnQ9PT1pPy5jb250ZW50JiZhPy5jb250ZW50SnNvbj09PWk/LmNvbnRlbnRKc29uJiZlLm1lc3NhZ2UuY3JlYXRlZEF0PT09bi5tZXNzYWdlLmNyZWF0ZWRBdH0pO2Z1bmN0aW9uIHE0KHtzZXNzaW9uOmV9KXtjb25zdCBuPXVlLnVzZU1lbW8oKCk9Pntjb25zdCB1PWUudG90YWxJbnB1dFRva2Vuc3x8MCxjPWUudG90YWxPdXRwdXRUb2tlbnN8fDA7cmV0dXJuIHUrY30sW2UudG90YWxJbnB1dFRva2VucyxlLnRvdGFsT3V0cHV0VG9rZW5zXSksYT11ZS51c2VNZW1vKCgpPT57Y29uc3QgdT1lLnRvdGFsSW5wdXRUb2tlbnN8fDAsYz1lLnRvdGFsT3V0cHV0VG9rZW5zfHwwLGQ9MzAsZj02MCxtPXUvMWU2KmQsYj1jLzFlNipmO3JldHVybiBtK2J9LFtlLnRvdGFsSW5wdXRUb2tlbnMsZS50b3RhbE91dHB1dFRva2Vuc10pLGk9dT0+e2lmKCF1KXJldHVybiIwcyI7Y29uc3QgYz1NYXRoLmZsb29yKHUvMWUzKSxkPU1hdGguZmxvb3IoYy82MCksZj1NYXRoLmZsb29yKGQvNjApO2lmKGY+MCl7Y29uc3QgbT1kJTYwO3JldHVybmAke2Z9aCAke219bWB9aWYoZD4wKXtjb25zdCBtPWMlNjA7cmV0dXJuYCR7ZH1tICR7bX1zYH1yZXR1cm5gJHtjfXNgfSxsPXU9PnUudG9Mb2NhbGVTdHJpbmcoImVuLVVTIik7cmV0dXJuIHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImJvcmRlci1iIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZC85NSBiYWNrZHJvcC1ibHVyLXNtIixjaGlsZHJlbjp5LmpzeHMoImRpdiIse2NsYXNzTmFtZToibWF4LXctM3hsIG14LWF1dG8gcHgtNiBweS02IixjaGlsZHJlbjpbeS5qc3goImgxIix7Y2xhc3NOYW1lOiJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtZm9yZWdyb3VuZCBtYi00IixjaGlsZHJlbjplLnRpdGxlfHwiVW50aXRsZWQgU2Vzc2lvbiJ9KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBmbGV4LXdyYXAgZ2FwLTYgdGV4dC1zbSIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOlt5LmpzeChYaCx7Y2xhc3NOYW1lOiJ3LTQgaC00In0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGZsZXgtY29sIixjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGUgb3BhY2l0eS03MCIsY2hpbGRyZW46IlRvdGFsIFRva2VucyJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1mb3JlZ3JvdW5kIGZvbnQtbWVkaXVtIixjaGlsZHJlbjpsKG4pfSksKGUudG90YWxJbnB1dFRva2Vuc3x8ZS50b3RhbE91dHB1dFRva2VucykmJnkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC14cyBvcGFjaXR5LTYwIixjaGlsZHJlbjpbbChlLnRvdGFsSW5wdXRUb2tlbnN8fDApLCIgaW4gLyIsIiAiLGwoZS50b3RhbE91dHB1dFRva2Vuc3x8MCksIiBvdXQiXX0pXX0pXX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOlt5LmpzeChKMSx7Y2xhc3NOYW1lOiJ3LTQgaC00In0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGZsZXgtY29sIixjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGUgb3BhY2l0eS03MCIsY2hpbGRyZW46IlRvb2wgVGltZSJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1mb3JlZ3JvdW5kIGZvbnQtbWVkaXVtIixjaGlsZHJlbjppKGUudG90YWxUb29sVGltZU1zKX0pXX0pXX0pLGE+MCYmeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCIsY2hpbGRyZW46W3kuanN4KFl3LHtjbGFzc05hbWU6InctNCBoLTQifSkseS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggZmxleC1jb2wiLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC14cyB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBvcGFjaXR5LTcwIixjaGlsZHJlbjoiRXN0LiBDb3N0In0pLHkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1mb3JlZ3JvdW5kIGZvbnQtbWVkaXVtIixjaGlsZHJlbjpbIiQiLGEudG9GaXhlZCg0KV19KV19KV19KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LW11dGVkLWZvcmVncm91bmQgbWwtYXV0byIsY2hpbGRyZW46eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggZmxleC1jb2wgaXRlbXMtZW5kIixjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGUgb3BhY2l0eS03MCIsY2hpbGRyZW46Ik1vZGVsIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LWZvcmVncm91bmQgZm9udC1tZWRpdW0iLGNoaWxkcmVuOmUubW9kZWx9KSx5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQteHMgb3BhY2l0eS02MCIsY2hpbGRyZW46W2UucHJvdmlkZXIsIiDCtyAiLGUuYWdlbnRdfSldfSl9KV19KV19KX0pfWZ1bmN0aW9uIFA0KHtzZXNzaW9uOmUsaXNWaXNpYmxlOm59KXtjb25zdCBhPXVlLnVzZU1lbW8oKCk9Pntjb25zdCB1PWUudG90YWxJbnB1dFRva2Vuc3x8MCxjPWUudG90YWxPdXRwdXRUb2tlbnN8fDA7cmV0dXJuIHUrY30sW2UudG90YWxJbnB1dFRva2VucyxlLnRvdGFsT3V0cHV0VG9rZW5zXSksaT11ZS51c2VNZW1vKCgpPT57Y29uc3QgdT1lLnRvdGFsSW5wdXRUb2tlbnN8fDAsYz1lLnRvdGFsT3V0cHV0VG9rZW5zfHwwLGQ9MzAsZj02MCxtPXUvMWU2KmQsYj1jLzFlNipmO3JldHVybiBtK2J9LFtlLnRvdGFsSW5wdXRUb2tlbnMsZS50b3RhbE91dHB1dFRva2Vuc10pLGw9dT0+dS50b0xvY2FsZVN0cmluZygiZW4tVVMiKTtyZXR1cm4geS5qc3goImRpdiIse2NsYXNzTmFtZTpgYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgaC0xNCBib3JkZXItYiBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQvOTUgYmFja2Ryb3AtYmx1ci1zbSB6LTMwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTIwMCAke24/InRyYW5zbGF0ZS15LTAiOiItdHJhbnNsYXRlLXktZnVsbCJ9YCxjaGlsZHJlbjp5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiaC1mdWxsIHB4LTYgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmQgZ2FwLTYgdGV4dC1zbSIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOlt5LmpzeChYaCx7Y2xhc3NOYW1lOiJ3LTQgaC00In0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LWZvcmVncm91bmQgZm9udC1tZWRpdW0iLGNoaWxkcmVuOmwoYSl9KV19KSxpPjAmJnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOlt5LmpzeChZdyx7Y2xhc3NOYW1lOiJ3LTQgaC00In0pLHkuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC1mb3JlZ3JvdW5kIGZvbnQtbWVkaXVtIixjaGlsZHJlbjpbIiQiLGkudG9GaXhlZCg0KV19KV19KV19KX0pfWZ1bmN0aW9uIEc0KHttZXNzYWdlczplLHNlc3Npb246bn0pe2NvbnN0IGE9dWUudXNlUmVmKG51bGwpLGk9dWUudXNlUmVmKG51bGwpLGw9dWUudXNlUmVmKG51bGwpLFt1LGNdPXVlLnVzZVN0YXRlKCEwKSxbZCxmXT11ZS51c2VTdGF0ZSghMSksbT11ZS51c2VSZWYoMCksYj0oKT0+e2NvbnN0IEU9aS5jdXJyZW50O2lmKCFFKXJldHVybjtjb25zdHtzY3JvbGxUb3A6XyxzY3JvbGxIZWlnaHQ6VCxjbGllbnRIZWlnaHQ6Q309RSx4PVQtXy1DO2MoeDwxMDApO2NvbnN0IE49bC5jdXJyZW50O2lmKE4pe2NvbnN0IGs9Ti5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxMPUUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZihrLmJvdHRvbTxMLnRvcCl9fTt1ZS51c2VFZmZlY3QoKCk9Pntjb25zdCBFPWkuY3VycmVudDtpZighRXx8IXUpcmV0dXJuO2NvbnN0IF89bS5jdXJyZW50PT09RS5zY3JvbGxIZWlnaHQ/Imluc3RhbnQiOiJzbW9vdGgiO2EuY3VycmVudD8uc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOl99KSxtLmN1cnJlbnQ9RS5zY3JvbGxIZWlnaHR9LFt1XSksdWUudXNlRWZmZWN0KCgpPT57YyghMCl9LFtdKTtjb25zdCBoPSgpPT57YyghMCksYS5jdXJyZW50Py5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCJ9KX0sUz11ZS51c2VNZW1vKCgpPT5lLmZpbHRlcihFPT5FLnJvbGUhPT0ic3lzdGVtIiksW2VdKTtyZXR1cm4gZS5sZW5ndGg9PT0wP3kuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQgdGV4dC1zbSIsY2hpbGRyZW46Ik5vIG1lc3NhZ2VzIHlldC4gU3RhcnQgYSBjb252ZXJzYXRpb24gYmVsb3cuIn0pOnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhYnNvbHV0ZSBpbnNldC0wIGZsZXggZmxleC1jb2wiLGNoaWxkcmVuOltuJiZ5LmpzeChQNCx7c2Vzc2lvbjpuLGlzVmlzaWJsZTpkfSkseS5qc3hzKCJkaXYiLHtyZWY6aSxjbGFzc05hbWU6ImZsZXgtMSBvdmVyZmxvdy15LWF1dG8iLG9uU2Nyb2xsOmIsY2hpbGRyZW46W3kuanN4KCJkaXYiLHtyZWY6bCxjaGlsZHJlbjpuJiZ5LmpzeChxNCx7c2Vzc2lvbjpufSl9KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJwLTYgcGItMzIiLGNoaWxkcmVuOnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJtYXgtdy0zeGwgbXgtYXV0byBzcGFjZS15LTYiLGNoaWxkcmVuOltTLm1hcCgoRSxfKT0+e2NvbnN0IFQ9U1tfLTFdLEM9U1tfKzFdLHg9Xz09PVMubGVuZ3RoLTE7aWYoRS5yb2xlPT09InVzZXIiKXJldHVybiB5LmpzeCh6NCx7bWVzc2FnZTpFLGlzRmlyc3Q6Xz09PTB9LEUuaWQpO2lmKEUucm9sZT09PSJhc3Npc3RhbnQiKXtjb25zdCBOPSFUfHxULnJvbGUhPT0iYXNzaXN0YW50IixrPUMmJkMucm9sZT09PSJhc3Npc3RhbnQiO3JldHVybiB5LmpzeChqNCx7bWVzc2FnZTpFLHNob3dIZWFkZXI6TixoYXNOZXh0QXNzaXN0YW50TWVzc2FnZTprLGlzTGFzdE1lc3NhZ2U6eH0sRS5pZCl9cmV0dXJuIG51bGx9KSx5LmpzeCgiZGl2Iix7cmVmOmF9KV19KX0pXX0pLCF1JiZ5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazpoLGNsYXNzTmFtZToiYWJzb2x1dGUgYm90dG9tLTM2IGxlZnQtMS8yIC10cmFuc2xhdGUteC0xLzIgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgcHgtNCBweS0yIGJnLWJhY2tncm91bmQgYm9yZGVyIGJvcmRlci1ib3JkZXIgcm91bmRlZC1mdWxsIHNoYWRvdy1sZyBob3ZlcjpiZy1tdXRlZC81MCB0cmFuc2l0aW9uLWFsbCB0ZXh0LXNtIHRleHQtZm9yZWdyb3VuZCB6LTEwIixjaGlsZHJlbjpbeS5qc3goQjEse2NsYXNzTmFtZToidy00IGgtNCJ9KSx5LmpzeCgic3BhbiIse2NoaWxkcmVuOiJTY3JvbGwgdG8gYm90dG9tIn0pXX0pXX0pfWZ1bmN0aW9uIEg0KHtvblNlbmQ6ZSxkaXNhYmxlZDpuLG9uQ29uZmlnQ2xpY2s6YX0pe2NvbnN0W2ksbF09dWUudXNlU3RhdGUoIiIpLHU9dWUudXNlUmVmKG51bGwpO3VlLnVzZUVmZmVjdCgoKT0+e3UuY3VycmVudD8uZm9jdXMoKX0sW10pO2NvbnN0IGM9dWUudXNlQ2FsbGJhY2soKCk9Pntjb25zdCBiPXUuY3VycmVudDtiJiYoYi5zdHlsZS5oZWlnaHQ9ImF1dG8iLGIuc3R5bGUuaGVpZ2h0PWAke2Iuc2Nyb2xsSGVpZ2h0fXB4YCl9LFtdKTt1ZS51c2VFZmZlY3QoKCk9PntjKCl9LFtjLGldKTtjb25zdCBkPSgpPT57aS50cmltKCkmJiFuJiYoZShpKSxsKCIiKSx1LmN1cnJlbnQmJih1LmN1cnJlbnQuc3R5bGUuaGVpZ2h0PSJhdXRvIiksdS5jdXJyZW50Py5mb2N1cygpKX0sZj1iPT57bChiLnRhcmdldC52YWx1ZSl9LG09Yj0+e2Iua2V5PT09IkVudGVyIiYmIWIuc2hpZnRLZXkmJihiLnByZXZlbnREZWZhdWx0KCksZCgpKX07cmV0dXJuIHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCByaWdodC0wIHB0LTE2IHBiLTggcHgtNCBiZy1ncmFkaWVudC10by10IGZyb20tYmFja2dyb3VuZCB2aWEtYmFja2dyb3VuZCB0by10cmFuc3BhcmVudCBwb2ludGVyLWV2ZW50cy1ub25lIHotMjAiLGNoaWxkcmVuOnkuanN4KCJkaXYiLHtjbGFzc05hbWU6Im1heC13LTN4bCBteC1hdXRvIHBvaW50ZXItZXZlbnRzLWF1dG8iLGNoaWxkcmVuOnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWVuZCBnYXAtMSBiZy1jYXJkIHJvdW5kZWQtM3hsIGJvcmRlciBib3JkZXItYm9yZGVyIHAtMSBmb2N1cy13aXRoaW46Ym9yZGVyLXByaW1hcnkvNjAgZm9jdXMtd2l0aGluOnJpbmctMSBmb2N1cy13aXRoaW46cmluZy1wcmltYXJ5LzQwIHRyYW5zaXRpb24tY29sb3JzIixjaGlsZHJlbjpbYSYmeS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazphLGNsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdy0xMCBoLTEwIHJvdW5kZWQtZnVsbCBob3ZlcjpiZy1iYWNrZ3JvdW5kLzUwIHRyYW5zaXRpb24tY29sb3JzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQgZmxleC1zaHJpbmstMCIsY2hpbGRyZW46eS5qc3gocjAse2NsYXNzTmFtZToidy00IGgtNCJ9KX0pLHkuanN4KGNiLHtyZWY6dSx2YWx1ZTppLG9uQ2hhbmdlOmYsb25LZXlEb3duOm0scGxhY2Vob2xkZXI6IlR5cGUgYSBtZXNzYWdlLi4uIixkaXNhYmxlZDpuLHJvd3M6MSxjbGFzc05hbWU6ImJvcmRlci0wIGJnLXRyYW5zcGFyZW50IHBsLTEgcHItMiBweS0yIG1heC1oLVsyMDBweF0gb3ZlcmZsb3cteS1hdXRvIGxlYWRpbmctbm9ybWFsIHJlc2l6ZS1ub25lIHNjcm9sbGJhci1oaWRlIixzdHlsZTp7aGVpZ2h0OiIyLjVyZW0ifX0pLHkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6ZCxkaXNhYmxlZDpufHwhaS50cmltKCksY2xhc3NOYW1lOmBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3LTEwIGgtMTAgcm91bmRlZC1mdWxsIHRyYW5zaXRpb24tY29sb3JzIGZsZXgtc2hyaW5rLTAgJHtpLnRyaW0oKT8iYmctcHJpbWFyeSBob3ZlcjpiZy1wcmltYXJ5LzkwIHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIjoiYmctdHJhbnNwYXJlbnQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIn1gLGNoaWxkcmVuOnkuanN4KFAxLHtjbGFzc05hbWU6InctNCBoLTQifSl9KV19KX0pfSl9ZnVuY3Rpb24gJDQoKXtyZXR1cm4gZWkoe3F1ZXJ5S2V5OlsiY29uZmlnIl0scXVlcnlGbjooKT0+bm4uZ2V0Q29uZmlnKCl9KX1mdW5jdGlvbiBWNChlKXtyZXR1cm4gZWkoe3F1ZXJ5S2V5OlsibW9kZWxzIixlXSxxdWVyeUZuOigpPT5lP25uLmdldE1vZGVscyhlKTpudWxsLGVuYWJsZWQ6ISFlfSl9ZnVuY3Rpb24gWTQoe2lzT3BlbjplLG9uQ2xvc2U6bixhZ2VudDphLHByb3ZpZGVyOmksbW9kZWw6bCxvbkFnZW50Q2hhbmdlOnUsb25Qcm92aWRlckNoYW5nZTpjLG9uTW9kZWxDaGFuZ2U6ZH0pe2NvbnN0e2RhdGE6Zixpc0xvYWRpbmc6bX09JDQoKSx7ZGF0YTpiLGlzTG9hZGluZzpofT1WNChpKSxTPXVlLnVzZUlkKCksRT11ZS51c2VJZCgpLF89dWUudXNlSWQoKTtpZih1ZS51c2VFZmZlY3QoKCk9PntmJiYhYSYmIWkmJiFsJiYodShmLmRlZmF1bHRzLmFnZW50KSxjKGYuZGVmYXVsdHMucHJvdmlkZXIpLGQoZi5kZWZhdWx0cy5tb2RlbCkpfSxbZixhLGksbCx1LGMsZF0pLHVlLnVzZUVmZmVjdCgoKT0+e2ImJmIubW9kZWxzLmxlbmd0aD4wJiYoYi5tb2RlbHMuc29tZShOPT5OLmlkPT09bCl8fGQoYi5kZWZhdWx0fHxiLm1vZGVsc1swXS5pZCkpfSxbYixsLGRdKSwhZSlyZXR1cm4gbnVsbDtjb25zdCBUPXg9Pnt4LnRhcmdldD09PXguY3VycmVudFRhcmdldCYmbigpfSxDPXg9Pnt4LmtleT09PSJFc2NhcGUiJiZuKCl9O3JldHVybiB5LmpzeHMoeS5GcmFnbWVudCx7Y2hpbGRyZW46W3kuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiZml4ZWQgaW5zZXQtMCBiZy1ibGFjay81MCBiYWNrZHJvcC1ibHVyLXNtIHotNTAgY3Vyc29yLWRlZmF1bHQiLG9uQ2xpY2s6VCxvbktleURvd246QywiYXJpYS1sYWJlbCI6IkNsb3NlIG1vZGFsIn0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZpeGVkIHRvcC0xLzIgbGVmdC0xLzIgLXRyYW5zbGF0ZS14LTEvMiAtdHJhbnNsYXRlLXktMS8yIHotNTAgdy1mdWxsIG1heC13LW1kIixjaGlsZHJlbjp5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiYmctYmFja2dyb3VuZCBib3JkZXIgYm9yZGVyLWJvcmRlciByb3VuZGVkLWxnIHNoYWRvdy1sZyIsY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC00IGJvcmRlci1iIGJvcmRlci1ib3JkZXIiLGNoaWxkcmVuOlt5LmpzeCgiaDIiLHtjbGFzc05hbWU6InRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LWZvcmVncm91bmQiLGNoaWxkcmVuOiJDb25maWd1cmF0aW9uIn0pLHkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6bixjbGFzc05hbWU6InRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQgdHJhbnNpdGlvbi1jb2xvcnMiLGNoaWxkcmVuOnkuanN4KFFoLHtjbGFzc05hbWU6ImgtNSB3LTUifSl9KV19KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJwLTQgc3BhY2UteS00IixjaGlsZHJlbjptP3kuanN4KCJkaXYiLHtjbGFzc05hbWU6InRleHQtY2VudGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBweS04IixjaGlsZHJlbjoiTG9hZGluZyBjb25maWd1cmF0aW9uLi4uIn0pOmY/eS5qc3hzKHkuRnJhZ21lbnQse2NoaWxkcmVuOlt5LmpzeHMoImRpdiIse2NoaWxkcmVuOlt5LmpzeCgibGFiZWwiLHtodG1sRm9yOlMsY2xhc3NOYW1lOiJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCBtYi0yIixjaGlsZHJlbjoiQWdlbnQifSkseS5qc3goInNlbGVjdCIse2lkOlMsdmFsdWU6YSxvbkNoYW5nZTp4PT51KHgudGFyZ2V0LnZhbHVlKSxjbGFzc05hbWU6InctZnVsbCBiZy1iYWNrZ3JvdW5kIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQgcHgtMyBweS0yIHRleHQtZm9yZWdyb3VuZCBvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLXZpb2xldC01MDAgdHJhbnNpdGlvbi1jb2xvcnMiLGNoaWxkcmVuOmYuYWdlbnRzLm1hcCh4PT55LmpzeCgib3B0aW9uIix7dmFsdWU6eCxjaGlsZHJlbjp4fSx4KSl9KV19KSx5LmpzeHMoImRpdiIse2NoaWxkcmVuOlt5LmpzeCgibGFiZWwiLHtodG1sRm9yOkUsY2xhc3NOYW1lOiJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCBtYi0yIixjaGlsZHJlbjoiUHJvdmlkZXIifSkseS5qc3goInNlbGVjdCIse2lkOkUsdmFsdWU6aSxvbkNoYW5nZTp4PT5jKHgudGFyZ2V0LnZhbHVlKSxjbGFzc05hbWU6InctZnVsbCBiZy1iYWNrZ3JvdW5kIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQgcHgtMyBweS0yIHRleHQtZm9yZWdyb3VuZCBvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLXZpb2xldC01MDAgdHJhbnNpdGlvbi1jb2xvcnMiLGNoaWxkcmVuOmYucHJvdmlkZXJzLm1hcCh4PT55LmpzeCgib3B0aW9uIix7dmFsdWU6eCxjaGlsZHJlbjp4fSx4KSl9KV19KSx5LmpzeHMoImRpdiIse2NoaWxkcmVuOlt5LmpzeCgibGFiZWwiLHtodG1sRm9yOl8sY2xhc3NOYW1lOiJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCBtYi0yIixjaGlsZHJlbjoiTW9kZWwifSkseS5qc3goInNlbGVjdCIse2lkOl8sdmFsdWU6bCxvbkNoYW5nZTp4PT5kKHgudGFyZ2V0LnZhbHVlKSxkaXNhYmxlZDpofHwhYixjbGFzc05hbWU6InctZnVsbCBiZy1iYWNrZ3JvdW5kIGJvcmRlciBib3JkZXItYm9yZGVyIHJvdW5kZWQgcHgtMyBweS0yIHRleHQtZm9yZWdyb3VuZCBvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLXZpb2xldC01MDAgdHJhbnNpdGlvbi1jb2xvcnMgZGlzYWJsZWQ6b3BhY2l0eS01MCIsY2hpbGRyZW46Yj8ubW9kZWxzLm1hcCh4PT55LmpzeCgib3B0aW9uIix7dmFsdWU6eC5pZCxjaGlsZHJlbjp4LmxhYmVsfSx4LmlkKSl9KV19KV19KTpudWxsfSldfSl9KV19KX1mdW5jdGlvbiBLNCgpe3JldHVybiBlaSh7cXVlcnlLZXk6WyJzZXNzaW9ucyJdLHF1ZXJ5Rm46KCk9Pm5uLmdldFNlc3Npb25zKCkscmVmZXRjaEludGVydmFsOjVlM30pfWZ1bmN0aW9uIFc0KCl7Y29uc3QgZT1PcigpO3JldHVybiB0aSh7bXV0YXRpb25GbjpuPT5ubi5jcmVhdGVTZXNzaW9uKG4pLG9uU3VjY2VzczooKT0+e2UuaW52YWxpZGF0ZVF1ZXJpZXMoe3F1ZXJ5S2V5Olsic2Vzc2lvbnMiXX0pfX0pfWZ1bmN0aW9uIFg0KGUpe3JldHVybiBlaSh7cXVlcnlLZXk6WyJtZXNzYWdlcyIsZV0scXVlcnlGbjooKT0+e2lmKCFlKXRocm93IG5ldyBFcnJvcigiU2Vzc2lvbiBJRCBpcyByZXF1aXJlZCIpO3JldHVybiBubi5nZXRNZXNzYWdlcyhlKX0sZW5hYmxlZDohIWV9KX1mdW5jdGlvbiBaNChlKXtjb25zdCBuPU9yKCk7cmV0dXJuIHRpKHttdXRhdGlvbkZuOmE9Pm5uLnNlbmRNZXNzYWdlKGUsYSksb25TdWNjZXNzOigpPT57bi5pbnZhbGlkYXRlUXVlcmllcyh7cXVlcnlLZXk6WyJtZXNzYWdlcyIsZV19KSxuLmludmFsaWRhdGVRdWVyaWVzKHtxdWVyeUtleTpbInNlc3Npb25zIl19KX19KX1jbGFzcyBRNHthYm9ydENvbnRyb2xsZXI9bnVsbDtoYW5kbGVycz1uZXcgTWFwO3J1bm5pbmc9ITE7YXN5bmMgY29ubmVjdChuKXt0aGlzLmFib3J0Q29udHJvbGxlciYmdGhpcy5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKSx0aGlzLmFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyLHRoaXMucnVubmluZz0hMDt0cnl7Y29uc3QgYT1hd2FpdCBmZXRjaChuLHtoZWFkZXJzOntBY2NlcHQ6InRleHQvZXZlbnQtc3RyZWFtIn0sc2lnbmFsOnRoaXMuYWJvcnRDb250cm9sbGVyLnNpZ25hbH0pO2lmKCFhLm9rKXtjb25zb2xlLmVycm9yKCJbU1NFXSBDb25uZWN0aW9uIGZhaWxlZDoiLGEuc3RhdHVzKTtyZXR1cm59Y29uc3QgaT1hLmJvZHk/LmdldFJlYWRlcigpO2lmKCFpKXtjb25zb2xlLmVycm9yKCJbU1NFXSBObyByZXNwb25zZSBib2R5Iik7cmV0dXJufWNvbnN0IGw9bmV3IFRleHREZWNvZGVyO2xldCB1PSIiO2Zvcig7dGhpcy5ydW5uaW5nOyl7Y29uc3R7ZG9uZTpjLHZhbHVlOmR9PWF3YWl0IGkucmVhZCgpO2lmKGMpYnJlYWs7dSs9bC5kZWNvZGUoZCx7c3RyZWFtOiEwfSk7bGV0IGY9dS5pbmRleE9mKGAKCmApO2Zvcig7ZiE9PS0xOyl7Y29uc3QgbT11LnNsaWNlKDAsZik7dT11LnNsaWNlKGYrMik7Y29uc3QgYj1tLnNwbGl0KGAKYCk7bGV0IGg9Im1lc3NhZ2UiLFM9IiI7Zm9yKGNvbnN0IEUgb2YgYilFLnN0YXJ0c1dpdGgoImV2ZW50OiAiKT9oPUUuc2xpY2UoNykudHJpbSgpOkUuc3RhcnRzV2l0aCgiZGF0YTogIik/Uys9KFM/YApgOiIiKStFLnNsaWNlKDYpOkUuc3RhcnRzV2l0aCgiOiIpO2lmKFMpdHJ5e2NvbnN0IEU9SlNPTi5wYXJzZShTKTt0aGlzLmVtaXQoe3R5cGU6aCxwYXlsb2FkOkV9KX1jYXRjaChFKXtjb25zb2xlLmVycm9yKGBbU1NFXSBGYWlsZWQgdG8gcGFyc2UgJHtofTpgLEUpfWY9dS5pbmRleE9mKGAKCmApfX19Y2F0Y2goYSl7YSBpbnN0YW5jZW9mIEVycm9yJiZhLm5hbWU9PT0iQWJvcnRFcnJvciJ8fGNvbnNvbGUuZXJyb3IoIltTU0VdIENvbm5lY3Rpb24gZXJyb3I6IixhKX19ZGlzY29ubmVjdCgpe3RoaXMucnVubmluZz0hMSx0aGlzLmFib3J0Q29udHJvbGxlciYmKHRoaXMuYWJvcnRDb250cm9sbGVyLmFib3J0KCksdGhpcy5hYm9ydENvbnRyb2xsZXI9bnVsbCl9b24obixhKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5oYXMobil8fHRoaXMuaGFuZGxlcnMuc2V0KG4sbmV3IFNldCksdGhpcy5oYW5kbGVycy5nZXQobik/LmFkZChhKSwoKT0+e3RoaXMub2ZmKG4sYSl9fW9mZihuLGEpe2NvbnN0IGk9dGhpcy5oYW5kbGVycy5nZXQobik7aSYmKGkuZGVsZXRlKGEpLGkuc2l6ZT09PTAmJnRoaXMuaGFuZGxlcnMuZGVsZXRlKG4pKX1lbWl0KG4pe2NvbnN0IGE9dGhpcy5oYW5kbGVycy5nZXQobi50eXBlKTtpZihhKWZvcihjb25zdCBsIG9mIGEpbChuKTtjb25zdCBpPXRoaXMuaGFuZGxlcnMuZ2V0KCIqIik7aWYoaSlmb3IoY29uc3QgbCBvZiBpKWwobil9fWZ1bmN0aW9uIEo0KGUpe2NvbnN0IG49T3IoKSxhPXVlLnVzZVJlZihudWxsKSxpPXVlLnVzZVJlZihudWxsKTt1ZS51c2VFZmZlY3QoKCk9PntpZihjb25zb2xlLmxvZygiW3VzZVNlc3Npb25TdHJlYW1dIEhvb2sgY2FsbGVkIHdpdGggc2Vzc2lvbklkOiIsZSksIWUpe2NvbnNvbGUubG9nKCJbdXNlU2Vzc2lvblN0cmVhbV0gTm8gc2Vzc2lvbklkLCBza2lwcGluZyIpO3JldHVybn1pLmN1cnJlbnQ9bnVsbDtjb25zdCBsPW5ldyBRNDthLmN1cnJlbnQ9bDtjb25zdCB1PW5uLmdldFN0cmVhbVVybChlKTtjb25zb2xlLmxvZygiW3VzZVNlc3Npb25TdHJlYW1dIENvbm5lY3RpbmcgdG8gc3RyZWFtOiIsdSksbC5jb25uZWN0KHUpO2NvbnN0IGM9VD0+e2lmKGkuY3VycmVudCl7Y29uc3QgQz1ULmZpbmRJbmRleCh4PT54LmlkPT09aS5jdXJyZW50KTtpZihDIT09LTEpcmV0dXJuIEN9Zm9yKGxldCBDPVQubGVuZ3RoLTE7Qz49MDtDLT0xKXtjb25zdCB4PVRbQ107aWYoeC5yb2xlPT09ImFzc2lzdGFudCImJnguc3RhdHVzIT09ImNvbXBsZXRlIilyZXR1cm4gQ31yZXR1cm4tMX0sZD1UPT57aWYoVC5jb250ZW50SnNvbiYmdHlwZW9mIFQuY29udGVudEpzb249PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShULmNvbnRlbnRKc29uKSYmInRleHQiaW4gVC5jb250ZW50SnNvbilyZXR1cm4gU3RyaW5nKFQuY29udGVudEpzb24udGV4dD8/IiIpO2lmKHR5cGVvZiBULmNvbnRlbnQ9PSJzdHJpbmciKXt0cnl7Y29uc3QgQz1KU09OLnBhcnNlKFQuY29udGVudCk7aWYoQyYmdHlwZW9mIEMudGV4dD09InN0cmluZyIpcmV0dXJuIEMudGV4dH1jYXRjaHt9cmV0dXJuIFQuY29udGVudH1yZXR1cm4iIn0sZj1UPT57Y29uc3QgQz10eXBlb2YgVD8ubWVzc2FnZUlkPT0ic3RyaW5nIj9ULm1lc3NhZ2VJZDpudWxsLHg9dHlwZW9mIFQ/LnBhcnRJZD09InN0cmluZyI/VC5wYXJ0SWQ6bnVsbCxOPXR5cGVvZiBUPy5kZWx0YT09InN0cmluZyI/VC5kZWx0YTpudWxsOyFDfHwheHx8Tj09PW51bGx8fG4uc2V0UXVlcnlEYXRhKFsibWVzc2FnZXMiLGVdLGs9PntpZighaylyZXR1cm4gaztjb25zdCBMPVsuLi5rXSxGPUwuZmluZEluZGV4KFU9PlUuaWQ9PT1DKTtpZihGPT09LTEpcmV0dXJuIGs7Y29uc3QgUj1MW0ZdLE09Ui5wYXJ0cz9bLi4uUi5wYXJ0c106W107bGV0IFk9TS5maW5kSW5kZXgoVT0+VS5pZD09PXgpO2NvbnN0IHo9dHlwZW9mIFQ/LnN0ZXBJbmRleD09Im51bWJlciI/VC5zdGVwSW5kZXg6bnVsbDtpZihZPT09LTEpe2NvbnN0IFU9e2lkOngsbWVzc2FnZUlkOkMsaW5kZXg6TS5sZW5ndGgsc3RlcEluZGV4OnosdHlwZToidGV4dCIsY29udGVudDpKU09OLnN0cmluZ2lmeSh7dGV4dDpOfSksY29udGVudEpzb246e3RleHQ6Tn0sYWdlbnQ6Ui5hZ2VudCxwcm92aWRlcjpSLnByb3ZpZGVyLG1vZGVsOlIubW9kZWwsc3RhcnRlZEF0OkRhdGUubm93KCksY29tcGxldGVkQXQ6bnVsbCx0b29sTmFtZTpudWxsLHRvb2xDYWxsSWQ6bnVsbCx0b29sRHVyYXRpb25NczpudWxsfTtNLnB1c2goVSksWT1NLmxlbmd0aC0xfWVsc2V7Y29uc3QgVT1NW1ldLEo9YCR7ZChVKX0ke059YDtNW1ldPXsuLi5VLGNvbnRlbnQ6SlNPTi5zdHJpbmdpZnkoe3RleHQ6Sn0pLGNvbnRlbnRKc29uOnt0ZXh0Okp9LHN0ZXBJbmRleDp6Pz9VLnN0ZXBJbmRleD8/bnVsbCxjb21wbGV0ZWRBdDpudWxsfX1yZXR1cm4gTFtGXT17Li4uUixwYXJ0czpNfSxMfSl9LG09VD0+e2lmKCFUKXJldHVybjtjb25zdCBDPXR5cGVvZiBULmNhbGxJZD09InN0cmluZyI/VC5jYWxsSWQ6bnVsbCx4PXR5cGVvZiBULm5hbWU9PSJzdHJpbmciP1QubmFtZTpudWxsO3gmJm4uc2V0UXVlcnlEYXRhKFsibWVzc2FnZXMiLGVdLE49PntpZighTilyZXR1cm4gTjtjb25zdCBrPVsuLi5OXTtsZXQgTD1jKGspO2lmKHR5cGVvZiBULm1lc3NhZ2VJZD09InN0cmluZyIpe2NvbnN0ICQ9ay5maW5kSW5kZXgoSj0+Si5pZD09PVQubWVzc2FnZUlkKTskIT09LTEmJihMPSQpfWlmKEw9PT0tMSlyZXR1cm4gTjtjb25zdCBGPWtbTF0sUj1GLnBhcnRzP1suLi5GLnBhcnRzXTpbXTtsZXQgTT0tMTtDJiYoTT1SLmZpbmRJbmRleCgkPT4kLnRvb2xDYWxsSWQ9PT1DJiYkLmVwaGVtZXJhbCkpLE09PT0tMSYmKE09Ui5maW5kSW5kZXgoJD0+JC5lcGhlbWVyYWwmJiQudG9vbE5hbWU9PT14KSk7Y29uc3QgWT1ULmFyZ3Msej10eXBlb2YgVC5zdGVwSW5kZXg9PSJudW1iZXIiP1Quc3RlcEluZGV4Om51bGwsVT17bmFtZTp4fTtpZihDJiYoVS5jYWxsSWQ9QyksWSE9PXZvaWQgMCYmKFUuYXJncz1ZKSxNPT09LTEpe2NvbnN0ICQ9e2lkOkM/YGVwaGVtZXJhbC10b29sLWNhbGwtJHtDfWA6YGVwaGVtZXJhbC10b29sLWNhbGwtJHt4fS0ke0RhdGUubm93KCl9YCxtZXNzYWdlSWQ6Ri5pZCxpbmRleDpSLmxlbmd0aCxzdGVwSW5kZXg6eix0eXBlOiJ0b29sX2NhbGwiLGNvbnRlbnQ6SlNPTi5zdHJpbmdpZnkoVSksY29udGVudEpzb246VSxhZ2VudDpGLmFnZW50LHByb3ZpZGVyOkYucHJvdmlkZXIsbW9kZWw6Ri5tb2RlbCxzdGFydGVkQXQ6RGF0ZS5ub3coKSxjb21wbGV0ZWRBdDpudWxsLHRvb2xOYW1lOngsdG9vbENhbGxJZDpDLHRvb2xEdXJhdGlvbk1zOm51bGwsZXBoZW1lcmFsOiEwfTtSLnB1c2goJCl9ZWxzZXtjb25zdCAkPVJbTV0sSj17Li4udHlwZW9mICQuY29udGVudEpzb249PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheSgkLmNvbnRlbnRKc29uKT8kLmNvbnRlbnRKc29uOnt9LG5hbWU6eH07QyYmKEouY2FsbElkPUMpLFkhPT12b2lkIDAmJihKLmFyZ3M9WSksUltNXT17Li4uJCxjb250ZW50OkpTT04uc3RyaW5naWZ5KEopLGNvbnRlbnRKc29uOkosc3RlcEluZGV4Ono/PyQuc3RlcEluZGV4Pz9udWxsLHRvb2xDYWxsSWQ6Qz8/JC50b29sQ2FsbElkLHRvb2xOYW1lOnh9fXJldHVybiBrW0xdPXsuLi5GLHBhcnRzOlJ9LGt9KX0sYj1UPT57Y29uc3QgQz10eXBlb2YgVD8uY2FsbElkPT0ic3RyaW5nIj9ULmNhbGxJZDpudWxsO0MmJm4uc2V0UXVlcnlEYXRhKFsibWVzc2FnZXMiLGVdLHg9PntpZigheClyZXR1cm4geDtsZXQgTj0hMTtjb25zdCBrPXgubWFwKEw9PntpZighTC5wYXJ0cz8ubGVuZ3RoKXJldHVybiBMO2NvbnN0IEY9TC5wYXJ0cy5maWx0ZXIoUj0+IShSLmVwaGVtZXJhbCYmUi50b29sQ2FsbElkPT09QykpO3JldHVybiBGLmxlbmd0aD09PUwucGFydHMubGVuZ3RoP0w6KE49ITAsey4uLkwscGFydHM6Rn0pfSk7cmV0dXJuIE4/azp4fSl9LGg9VD0+e1QmJm4uc2V0UXVlcnlEYXRhKFsibWVzc2FnZXMiLGVdLEM9PntpZighQylyZXR1cm4gQztjb25zdCB4PUMuZmluZEluZGV4KEw9PkwuaWQ9PT1UKTtpZih4PT09LTEpcmV0dXJuIEM7Y29uc3QgTj1DW3hdO2lmKCFOLnBhcnRzPy5zb21lKEw9PkwuZXBoZW1lcmFsKSlyZXR1cm4gQztjb25zdCBrPVsuLi5DXTtyZXR1cm4ga1t4XT17Li4uTixwYXJ0czpOLnBhcnRzPy5maWx0ZXIoTD0+IUwuZXBoZW1lcmFsKT8/W119LGt9KX0sUz1UPT57Y29uc3QgQz10eXBlb2YgVD8uaWQ9PSJzdHJpbmciP1QuaWQ6bnVsbDtDJiZuLnNldFF1ZXJ5RGF0YShbIm1lc3NhZ2VzIixlXSx4PT57aWYoIXgpcmV0dXJuIHg7Y29uc3QgTj1bLi4ueF0saz1OLmZpbmRJbmRleChGPT5GLmlkPT09Qyk7aWYoaz09PS0xKXJldHVybiB4O2NvbnN0IEw9TltrXTtyZXR1cm4gTltrXT17Li4uTCxzdGF0dXM6ImNvbXBsZXRlIixjb21wbGV0ZWRBdDpEYXRlLm5vdygpfSxOfSl9LEU9bmV3IFNldChbIm1lc3NhZ2UuY29tcGxldGVkIiwidG9vbC5yZXN1bHQiLCJmaW5pc2gtc3RlcCJdKSxfPWwub24oIioiLFQ9Pntjb25zb2xlLmxvZygiW3VzZVNlc3Npb25TdHJlYW1dIEV2ZW50IHJlY2VpdmVkOiIsVCk7Y29uc3QgQz1ULnBheWxvYWQ7c3dpdGNoKFQudHlwZSl7Y2FzZSJtZXNzYWdlLmNyZWF0ZWQiOntjb25zdCB4PXR5cGVvZiBDPy5yb2xlPT0ic3RyaW5nIj9DLnJvbGU6bnVsbCxOPXR5cGVvZiBDPy5pZD09InN0cmluZyI/Qy5pZDpudWxsO3g9PT0iYXNzaXN0YW50IiYmTiYmKGkuY3VycmVudD1OKTticmVha31jYXNlIm1lc3NhZ2UucGFydC5kZWx0YSI6e2YoQyk7YnJlYWt9Y2FzZSJtZXNzYWdlLmNvbXBsZXRlZCI6e2NvbnN0IHg9dHlwZW9mIEM/LmlkPT0ic3RyaW5nIj9DLmlkOm51bGw7eCYmaS5jdXJyZW50PT09eCYmKGkuY3VycmVudD1udWxsKSxTKEMpLGgoeCk7YnJlYWt9Y2FzZSJ0b29sLmRlbHRhIjp7KHR5cGVvZiBDPy5jaGFubmVsPT0ic3RyaW5nIj9DLmNoYW5uZWw6bnVsbCk9PT0iaW5wdXQiJiZtKEMpO2JyZWFrfWNhc2UidG9vbC5jYWxsIjp7bShDKTticmVha31jYXNlInRvb2wucmVzdWx0Ijp7YihDKTticmVha31jYXNlImVycm9yIjp7YihDKTtjb25zdCB4PXR5cGVvZiBDPy5tZXNzYWdlSWQ9PSJzdHJpbmciP0MubWVzc2FnZUlkOm51bGw7eCYmaCh4KTticmVha319RS5oYXMoVC50eXBlKSYmKGNvbnNvbGUubG9nKCJbdXNlU2Vzc2lvblN0cmVhbV0gSW52YWxpZGF0aW5nIG1lc3NhZ2VzIHF1ZXJ5Iiksbi5pbnZhbGlkYXRlUXVlcmllcyh7cXVlcnlLZXk6WyJtZXNzYWdlcyIsZV19KSl9KTtyZXR1cm4oKT0+e18oKSxsLmRpc2Nvbm5lY3QoKX19LFtlLG5dKX1jb25zdCBOQz0iYWdpLXRoZW1lIixJdz0iZGFyayI7ZnVuY3Rpb24gZSQoKXtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4gSXc7Y29uc3QgZT13aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oTkMpO3JldHVybiBlPT09ImxpZ2h0Inx8ZT09PSJkYXJrIj9lOkl3fWZ1bmN0aW9uIHQkKCl7Y29uc3RbZSxuXT11ZS51c2VTdGF0ZSgoKT0+ZSQoKSk7cmV0dXJuIHVlLnVzZUVmZmVjdCgoKT0+e2lmKHR5cGVvZiBkb2N1bWVudD4idSIpcmV0dXJuO2NvbnN0IGk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2U9PT0iZGFyayI/aS5jbGFzc0xpc3QuYWRkKCJkYXJrIik6aS5jbGFzc0xpc3QucmVtb3ZlKCJkYXJrIik7dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShOQyxlKX1jYXRjaChsKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBwZXJzaXN0IHRoZW1lIHByZWZlcmVuY2UiLGwpfX0sW2VdKSx7dGhlbWU6ZSxzZXRUaGVtZTpuLHRvZ2dsZVRoZW1lOigpPT57bihpPT5pPT09ImRhcmsiPyJsaWdodCI6ImRhcmsiKX19fWZ1bmN0aW9uIG4kKCl7Y29uc3RbZSxuXT11ZS51c2VTdGF0ZShudWxsKTtyZXR1cm4gdWUudXNlRWZmZWN0KCgpPT57KGFzeW5jKCk9Pnt0cnl7Y29uc3QgdT1gJHt3aW5kb3cuQUdJX1NFUlZFUl9VUkx8fFF3fS92MS9jb25maWcvY3dkYDtjb25zb2xlLmxvZygiW3VzZVdvcmtpbmdEaXJlY3RvcnldIEZldGNoaW5nIGZyb206Iix1KTtjb25zdCBjPWF3YWl0IGZldGNoKHUpO2lmKCFjLm9rKXRocm93IGNvbnNvbGUuZXJyb3IoIlt1c2VXb3JraW5nRGlyZWN0b3J5XSBGYWlsZWQ6IixjLnN0YXR1cyxjLnN0YXR1c1RleHQpLG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHdvcmtpbmcgZGlyZWN0b3J5OiAke2Muc3RhdHVzfWApO2NvbnN0IGQ9YXdhaXQgYy5qc29uKCk7Y29uc29sZS5sb2coIlt1c2VXb3JraW5nRGlyZWN0b3J5XSBTdWNjZXNzOiIsZCksZC5kaXJOYW1lJiYoY29uc29sZS5sb2coIlt1c2VXb3JraW5nRGlyZWN0b3J5XSBTZXR0aW5nIHRpdGxlIHRvOiIsZC5kaXJOYW1lKSxuKGQuZGlyTmFtZSksZG9jdW1lbnQudGl0bGU9ZC5kaXJOYW1lKX1jYXRjaChpKXtjb25zb2xlLmVycm9yKCJbdXNlV29ya2luZ0RpcmVjdG9yeV0gRXJyb3I6IixpKSxkb2N1bWVudC50aXRsZT0iQUdJIn19KSgpfSxbXSksZX1jb25zdCByJD1uZXcgRTEoe2RlZmF1bHRPcHRpb25zOntxdWVyaWVzOntyZWZldGNoT25XaW5kb3dGb2N1czohMSxyZXRyeToxLHN0cnVjdHVyYWxTaGFyaW5nOiEwfX19KTtmdW5jdGlvbiBhJCgpe2NvbnN0W2Usbl09dWUudXNlU3RhdGUoKSxbYSxpXT11ZS51c2VTdGF0ZSgiIiksW2wsdV09dWUudXNlU3RhdGUoIiIpLFtjLGRdPXVlLnVzZVN0YXRlKCIiKSxbZixtXT11ZS51c2VTdGF0ZSghMSksW2IsaF09dWUudXNlU3RhdGUoMCkse2RhdGE6Uz1bXSxpc0xvYWRpbmc6RX09SzQoKSx7ZGF0YTpfPVtdLGlzTG9hZGluZzpUfT1YNChlKSxDPVc0KCkseD1aNChlfHwiIikse3RoZW1lOk4sdG9nZ2xlVGhlbWU6a309dCQoKTtuJCgpLEo0KGUpLHVlLnVzZUVmZmVjdCgoKT0+e2goTT0+TSsxKX0sW2VdKTtjb25zdCBMPWFzeW5jKCk9Pnt0cnl7Y29uc3QgTT1hd2FpdCBDLm11dGF0ZUFzeW5jKHthZ2VudDoiZ2VuZXJhbCJ9KTtuKE0uaWQpfWNhdGNoKE0pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2Vzc2lvbjoiLE0pfX0sRj1hc3luYyBNPT57aWYoZSl0cnl7YXdhaXQgeC5tdXRhdGVBc3luYyh7Y29udGVudDpNLGFnZW50OmF8fHZvaWQgMCxwcm92aWRlcjpsfHx2b2lkIDAsbW9kZWw6Y3x8dm9pZCAwfSl9Y2F0Y2goWSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNlbmQgbWVzc2FnZToiLFkpfX0sUj1TLmZpbmQoTT0+TS5pZD09PWUpO3JldHVybiBFP3kuanN4KCJkaXYiLHtjbGFzc05hbWU6Imgtc2NyZWVuIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLWJhY2tncm91bmQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIixjaGlsZHJlbjoiTG9hZGluZyBzZXNzaW9ucy4uLiJ9KTp5LmpzeChqaix7b25OZXdTZXNzaW9uOkwsdGhlbWU6TixvblRvZ2dsZVRoZW1lOmssc2lkZWJhcjp5LmpzeChxaix7c2Vzc2lvbnM6UyxhY3RpdmVTZXNzaW9uSWQ6ZSxvblNlbGVjdFNlc3Npb246bn0pLGNoaWxkcmVuOmU/eS5qc3hzKHkuRnJhZ21lbnQse2NoaWxkcmVuOltUP3kuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQiLGNoaWxkcmVuOiJMb2FkaW5nIG1lc3NhZ2VzLi4uIn0pOnkuanN4KEc0LHttZXNzYWdlczpfLHNlc3Npb246Un0pLHkuanN4KFk0LHtpc09wZW46ZixvbkNsb3NlOigpPT5tKCExKSxhZ2VudDphLHByb3ZpZGVyOmwsbW9kZWw6YyxvbkFnZW50Q2hhbmdlOmksb25Qcm92aWRlckNoYW5nZTp1LG9uTW9kZWxDaGFuZ2U6ZH0pLHkuanN4KEg0LHtvblNlbmQ6RixkaXNhYmxlZDp4LmlzUGVuZGluZyxvbkNvbmZpZ0NsaWNrOigpPT5tKCEwKX0sYildfSk6eS5qc3goImRpdiIse2NsYXNzTmFtZToiZmxleC0xIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCIsY2hpbGRyZW46IlNlbGVjdCBhIHNlc3Npb24gb3IgY3JlYXRlIGEgbmV3IG9uZSB0byBzdGFydCJ9KX0pfWZ1bmN0aW9uIGkkKCl7cmV0dXJuIHkuanN4KFMxLHtjbGllbnQ6ciQsY2hpbGRyZW46eS5qc3goYSQse30pfSl9Y29uc3Qgd0M9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKTtpZighd0MpdGhyb3cgbmV3IEVycm9yKCJSb290IGVsZW1lbnQgbm90IGZvdW5kIik7WE8uY3JlYXRlUm9vdCh3QykucmVuZGVyKHkuanN4KHVlLlN0cmljdE1vZGUse2NoaWxkcmVuOnkuanN4KGkkLHt9KX0pKTsK", contentType: "application/javascript" });
13
+ EMBEDDED_ASSETS.set("/assets/index-Di_mcKFq.css", { content: "QGltcG9ydCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUlCTStQbGV4K01vbm86d2dodEA0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwIjsqLDpiZWZvcmUsOmFmdGVyey0tdHctYm9yZGVyLXNwYWNpbmcteDogMDstLXR3LWJvcmRlci1zcGFjaW5nLXk6IDA7LS10dy10cmFuc2xhdGUteDogMDstLXR3LXRyYW5zbGF0ZS15OiAwOy0tdHctcm90YXRlOiAwOy0tdHctc2tldy14OiAwOy0tdHctc2tldy15OiAwOy0tdHctc2NhbGUteDogMTstLXR3LXNjYWxlLXk6IDE7LS10dy1wYW4teDogOy0tdHctcGFuLXk6IDstLXR3LXBpbmNoLXpvb206IDstLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6IHByb3hpbWl0eTstLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246IDstLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjogOy0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246IDstLXR3LW9yZGluYWw6IDstLXR3LXNsYXNoZWQtemVybzogOy0tdHctbnVtZXJpYy1maWd1cmU6IDstLXR3LW51bWVyaWMtc3BhY2luZzogOy0tdHctbnVtZXJpYy1mcmFjdGlvbjogOy0tdHctcmluZy1pbnNldDogOy0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDstLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiAjZmZmOy0tdHctcmluZy1jb2xvcjogcmdiKDU5IDEzMCAyNDYgLyAuNSk7LS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IDAgMCAjMDAwMDstLXR3LXJpbmctc2hhZG93OiAwIDAgIzAwMDA7LS10dy1zaGFkb3c6IDAgMCAjMDAwMDstLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDAgIzAwMDA7LS10dy1ibHVyOiA7LS10dy1icmlnaHRuZXNzOiA7LS10dy1jb250cmFzdDogOy0tdHctZ3JheXNjYWxlOiA7LS10dy1odWUtcm90YXRlOiA7LS10dy1pbnZlcnQ6IDstLXR3LXNhdHVyYXRlOiA7LS10dy1zZXBpYTogOy0tdHctZHJvcC1zaGFkb3c6IDstLXR3LWJhY2tkcm9wLWJsdXI6IDstLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6IDstLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiA7LS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6IDstLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDstLXR3LWJhY2tkcm9wLWludmVydDogOy0tdHctYmFja2Ryb3Atb3BhY2l0eTogOy0tdHctYmFja2Ryb3Atc2F0dXJhdGU6IDstLXR3LWJhY2tkcm9wLXNlcGlhOiA7LS10dy1jb250YWluLXNpemU6IDstLXR3LWNvbnRhaW4tbGF5b3V0OiA7LS10dy1jb250YWluLXBhaW50OiA7LS10dy1jb250YWluLXN0eWxlOiB9OjpiYWNrZHJvcHstLXR3LWJvcmRlci1zcGFjaW5nLXg6IDA7LS10dy1ib3JkZXItc3BhY2luZy15OiAwOy0tdHctdHJhbnNsYXRlLXg6IDA7LS10dy10cmFuc2xhdGUteTogMDstLXR3LXJvdGF0ZTogMDstLXR3LXNrZXcteDogMDstLXR3LXNrZXcteTogMDstLXR3LXNjYWxlLXg6IDE7LS10dy1zY2FsZS15OiAxOy0tdHctcGFuLXg6IDstLXR3LXBhbi15OiA7LS10dy1waW5jaC16b29tOiA7LS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOiBwcm94aW1pdHk7LS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiA7LS10dy1ncmFkaWVudC12aWEtcG9zaXRpb246IDstLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOiA7LS10dy1vcmRpbmFsOiA7LS10dy1zbGFzaGVkLXplcm86IDstLXR3LW51bWVyaWMtZmlndXJlOiA7LS10dy1udW1lcmljLXNwYWNpbmc6IDstLXR3LW51bWVyaWMtZnJhY3Rpb246IDstLXR3LXJpbmctaW5zZXQ6IDstLXR3LXJpbmctb2Zmc2V0LXdpZHRoOiAwcHg7LS10dy1yaW5nLW9mZnNldC1jb2xvcjogI2ZmZjstLXR3LXJpbmctY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gLjUpOy0tdHctcmluZy1vZmZzZXQtc2hhZG93OiAwIDAgIzAwMDA7LS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwOy0tdHctc2hhZG93OiAwIDAgIzAwMDA7LS10dy1zaGFkb3ctY29sb3JlZDogMCAwICMwMDAwOy0tdHctYmx1cjogOy0tdHctYnJpZ2h0bmVzczogOy0tdHctY29udHJhc3Q6IDstLXR3LWdyYXlzY2FsZTogOy0tdHctaHVlLXJvdGF0ZTogOy0tdHctaW52ZXJ0OiA7LS10dy1zYXR1cmF0ZTogOy0tdHctc2VwaWE6IDstLXR3LWRyb3Atc2hhZG93OiA7LS10dy1iYWNrZHJvcC1ibHVyOiA7LS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiA7LS10dy1iYWNrZHJvcC1jb250cmFzdDogOy0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiA7LS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiA7LS10dy1iYWNrZHJvcC1pbnZlcnQ6IDstLXR3LWJhY2tkcm9wLW9wYWNpdHk6IDstLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiA7LS10dy1iYWNrZHJvcC1zZXBpYTogOy0tdHctY29udGFpbi1zaXplOiA7LS10dy1jb250YWluLWxheW91dDogOy0tdHctY29udGFpbi1wYWludDogOy0tdHctY29udGFpbi1zdHlsZTogfSosOmJlZm9yZSw6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci13aWR0aDowO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2U1ZTdlYn06YmVmb3JlLDphZnRlcnstLXR3LWNvbnRlbnQ6ICIifWh0bWwsOmhvc3R7bGluZS1oZWlnaHQ6MS41Oy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tb3otdGFiLXNpemU6NDstby10YWItc2l6ZTo0O3RhYi1zaXplOjQ7Zm9udC1mYW1pbHk6SUJNIFBsZXggTW9ubyxtb25vc3BhY2U7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fWJvZHl7bWFyZ2luOjA7bGluZS1oZWlnaHQ6aW5oZXJpdH1ocntoZWlnaHQ6MDtjb2xvcjppbmhlcml0O2JvcmRlci10b3Atd2lkdGg6MXB4fWFiYnI6d2hlcmUoW3RpdGxlXSl7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZH1oMSxoMixoMyxoNCxoNSxoNntmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0fWF7Y29sb3I6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9Y29kZSxrYmQsc2FtcCxwcmV7Zm9udC1mYW1pbHk6SUJNIFBsZXggTW9ubyxtb25vc3BhY2U7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7Zm9udC1zaXplOjFlbX1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1Yntib3R0b206LS4yNWVtfXN1cHt0b3A6LS41ZW19dGFibGV7dGV4dC1pbmRlbnQ6MDtib3JkZXItY29sb3I6aW5oZXJpdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9YnV0dG9uLGlucHV0LG9wdGdyb3VwLHNlbGVjdCx0ZXh0YXJlYXtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczppbmhlcml0O2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOmluaGVyaXQ7Zm9udC1zaXplOjEwMCU7Zm9udC13ZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O2xldHRlci1zcGFjaW5nOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDttYXJnaW46MDtwYWRkaW5nOjB9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixpbnB1dDp3aGVyZShbdHlwZT1idXR0b25dKSxpbnB1dDp3aGVyZShbdHlwZT1yZXNldF0pLGlucHV0OndoZXJlKFt0eXBlPXN1Ym1pdF0pey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9Oi1tb3otZm9jdXNyaW5ne291dGxpbmU6YXV0b306LW1vei11aS1pbnZhbGlke2JveC1zaGFkb3c6bm9uZX1wcm9ncmVzc3t2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDtvdXRsaW5lLW9mZnNldDotMnB4fTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX06Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247Zm9udDppbmhlcml0fXN1bW1hcnl7ZGlzcGxheTpsaXN0LWl0ZW19YmxvY2txdW90ZSxkbCxkZCxoMSxoMixoMyxoNCxoNSxoNixocixmaWd1cmUscCxwcmV7bWFyZ2luOjB9ZmllbGRzZXR7bWFyZ2luOjA7cGFkZGluZzowfWxlZ2VuZHtwYWRkaW5nOjB9b2wsdWwsbWVudXtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfWRpYWxvZ3twYWRkaW5nOjB9dGV4dGFyZWF7cmVzaXplOnZlcnRpY2FsfWlucHV0OjotbW96LXBsYWNlaG9sZGVyLHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVye29wYWNpdHk6MTtjb2xvcjojOWNhM2FmfWlucHV0OjpwbGFjZWhvbGRlcix0ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7b3BhY2l0eToxO2NvbG9yOiM5Y2EzYWZ9YnV0dG9uLFtyb2xlPWJ1dHRvbl17Y3Vyc29yOnBvaW50ZXJ9OmRpc2FibGVke2N1cnNvcjpkZWZhdWx0fWltZyxzdmcsdmlkZW8sY2FudmFzLGF1ZGlvLGlmcmFtZSxlbWJlZCxvYmplY3R7ZGlzcGxheTpibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9aW1nLHZpZGVve21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfVtoaWRkZW5dOndoZXJlKDpub3QoW2hpZGRlbj11bnRpbC1mb3VuZF0pKXtkaXNwbGF5Om5vbmV9OnJvb3R7LS1iYWNrZ3JvdW5kOiAyMjAgMjUlIDk1JTstLWZvcmVncm91bmQ6IDIyMCAxMCUgMTUlOy0tY2FyZDogMjIwIDI1JSA5OCU7LS1jYXJkLWZvcmVncm91bmQ6IDIyMCAxMCUgMTUlOy0tcG9wb3ZlcjogMjIwIDI1JSA5OCU7LS1wb3BvdmVyLWZvcmVncm91bmQ6IDIyMCAxMCUgMTUlOy0tcHJpbWFyeTogMjIyLjIgNDcuNCUgMTEuMiU7LS1wcmltYXJ5LWZvcmVncm91bmQ6IDIxMCA0MCUgOTglOy0tc2Vjb25kYXJ5OiAyMjAgMTglIDg4JTstLXNlY29uZGFyeS1mb3JlZ3JvdW5kOiAyMjIuMiAzNSUgMjUlOy0tbXV0ZWQ6IDIyMCAxOCUgODglOy0tbXV0ZWQtZm9yZWdyb3VuZDogMjIwIDE1JSA0MCU7LS1hY2NlbnQ6IDIyMCAyMCUgODYlOy0tYWNjZW50LWZvcmVncm91bmQ6IDIyMi4yIDM1JSAyNSU7LS1kZXN0cnVjdGl2ZTogMCA5MCUgNjUlOy0tZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZDogMjEwIDQwJSA5OCU7LS1ib3JkZXI6IDIyMCAxNSUgODklOy0taW5wdXQ6IDIyMCAxNSUgODklOy0tcmluZzogMjIyLjIgODQlIDQuOSU7LS1jaGFydC0xOiAyMjIuMiA0Ny40JSA0MS4yJTstLWNoYXJ0LTI6IDE3MyA1OCUgMzklOy0tY2hhcnQtMzogMTk3IDM3JSAyNCU7LS1jaGFydC00OiA0MyA3NCUgNjYlOy0tY2hhcnQtNTogMjcgODclIDY3JTstLXJhZGl1czogLjVyZW07LS1zaWRlYmFyLWJhY2tncm91bmQ6IDIyMCAyNSUgOTElOy0tc2lkZWJhci1mb3JlZ3JvdW5kOiAyMjAgMTAlIDE1JTstLXNpZGViYXItcHJpbWFyeTogMjIyLjIgNDcuNCUgMTEuMiU7LS1zaWRlYmFyLXByaW1hcnktZm9yZWdyb3VuZDogMjEwIDQwJSA5OCU7LS1zaWRlYmFyLWFjY2VudDogMjIwIDIwJSA4NiU7LS1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kOiAyMjIuMiAzNSUgMjUlOy0tc2lkZWJhci1ib3JkZXI6IDIyMCAxNSUgODklOy0tc2lkZWJhci1yaW5nOiAyMjIuMiA4NCUgNC45JTstLWNvZGUtYmFja2dyb3VuZDogaHNsKDIyMCAyNSUgOTMlKTstLWNvZGUtZm9yZWdyb3VuZDogaHNsKDIyMCAxMCUgMTAlKTstLWNvZGUta2V5d29yZDogaHNsKDMwMCA4NSUgNDIlKTstLWNvZGUtY2xhc3M6IGhzbCgxMjAgNjAlIDM1JSk7LS1jb2RlLWZ1bmN0aW9uOiBoc2woMjIwIDk1JSA0NSUpOy0tY29kZS1zdHJpbmc6IGhzbCgxMjAgNjAlIDM1JSk7LS1jb2RlLWNvbW1lbnQ6IGhzbCgyMjAgMTUlIDM1JSk7LS1jb2RlLW9wZXJhdG9yOiBoc2woMTgwIDg1JSAzMCUpOy0tY29kZS1wdW5jdHVhdGlvbjogaHNsKDIyMCAxNSUgMjAlKTtjb2xvci1zY2hlbWU6bGlnaHR9LmRhcmt7LS1iYWNrZ3JvdW5kOiAyNDAgMTAlIDglOy0tZm9yZWdyb3VuZDogMCAwJSA5OCU7LS1jYXJkOiAyNDAgMTAlIDEwJTstLWNhcmQtZm9yZWdyb3VuZDogMCAwJSA5OCU7LS1wb3BvdmVyOiAyNDAgMTAlIDEwJTstLXBvcG92ZXItZm9yZWdyb3VuZDogMCAwJSA5OCU7LS1wcmltYXJ5OiAwIDAlIDk4JTstLXByaW1hcnktZm9yZWdyb3VuZDogMjQwIDUuOSUgMTAlOy0tc2Vjb25kYXJ5OiAyNDAgMy43JSAxNS45JTstLXNlY29uZGFyeS1mb3JlZ3JvdW5kOiAwIDAlIDk4JTstLW11dGVkOiAyNDAgMy43JSAxNS45JTstLW11dGVkLWZvcmVncm91bmQ6IDI0MCA1JSA2NC45JTstLWFjY2VudDogMjQwIDMuNyUgMTUuOSU7LS1hY2NlbnQtZm9yZWdyb3VuZDogMCAwJSA5OCU7LS1kZXN0cnVjdGl2ZTogMCA3NSUgNDUlOy0tZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZDogMCAwJSA5OCU7LS1ib3JkZXI6IDI0MCAzLjclIDE1LjklOy0taW5wdXQ6IDI0MCAzLjclIDE1LjklOy0tcmluZzogMjQwIDQuOSUgODMuOSU7LS1jaGFydC0xOiAyMjAgNzAlIDUwJTstLWNoYXJ0LTI6IDE2MCA2MCUgNDUlOy0tY2hhcnQtMzogMzAgODAlIDU1JTstLWNoYXJ0LTQ6IDI4MCA2NSUgNjAlOy0tY2hhcnQtNTogMzQwIDc1JSA1NSU7LS1yYWRpdXM6IC41cmVtOy0tc2lkZWJhci1iYWNrZ3JvdW5kOiAyNDAgMTAlIDEwJTstLXNpZGViYXItZm9yZWdyb3VuZDogMCAwJSA5OCU7LS1zaWRlYmFyLXByaW1hcnk6IDIxNy4yIDkxLjIlIDU5LjglOy0tc2lkZWJhci1wcmltYXJ5LWZvcmVncm91bmQ6IDI0MCA1LjklIDEwJTstLXNpZGViYXItYWNjZW50OiAyNDAgMy43JSAxNS45JTstLXNpZGViYXItYWNjZW50LWZvcmVncm91bmQ6IDAgMCUgOTglOy0tc2lkZWJhci1ib3JkZXI6IDI0MCAzLjclIDE1LjklOy0tc2lkZWJhci1yaW5nOiAyMTcuMiA5MS4yJSA1OS44JTstLWNvZGUtYmFja2dyb3VuZDogaHNsKDI0MCAxMCUgMTAlKTstLWNvZGUtZm9yZWdyb3VuZDogaHNsKDAgMCUgOTglKTstLWNvZGUta2V5d29yZDogI2M2NzhkZDstLWNvZGUtY2xhc3M6ICM5OGMzNzk7LS1jb2RlLWZ1bmN0aW9uOiAjNjFhZmVmOy0tY29kZS1zdHJpbmc6ICM5OGMzNzk7LS1jb2RlLWNvbW1lbnQ6IGhzbCgyNDAgNSUgNjQuOSUpOy0tY29kZS1vcGVyYXRvcjogIzU2YjZjMjstLWNvZGUtcHVuY3R1YXRpb246IGhzbCgyNDAgNSUgNjQuOSUpO2NvbG9yLXNjaGVtZTpkYXJrfS5cIWNvbnRhaW5lcnt3aWR0aDoxMDAlIWltcG9ydGFudH0uY29udGFpbmVye3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KXsuXCFjb250YWluZXJ7bWF4LXdpZHRoOjY0MHB4IWltcG9ydGFudH0uY29udGFpbmVye21heC13aWR0aDo2NDBweH19QG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KXsuXCFjb250YWluZXJ7bWF4LXdpZHRoOjc2OHB4IWltcG9ydGFudH0uY29udGFpbmVye21heC13aWR0aDo3NjhweH19QG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCl7LlwhY29udGFpbmVye21heC13aWR0aDoxMDI0cHghaW1wb3J0YW50fS5jb250YWluZXJ7bWF4LXdpZHRoOjEwMjRweH19QG1lZGlhIChtaW4td2lkdGg6IDEyODBweCl7LlwhY29udGFpbmVye21heC13aWR0aDoxMjgwcHghaW1wb3J0YW50fS5jb250YWluZXJ7bWF4LXdpZHRoOjEyODBweH19QG1lZGlhIChtaW4td2lkdGg6IDE1MzZweCl7LlwhY29udGFpbmVye21heC13aWR0aDoxNTM2cHghaW1wb3J0YW50fS5jb250YWluZXJ7bWF4LXdpZHRoOjE1MzZweH19LnBvaW50ZXItZXZlbnRzLW5vbmV7cG9pbnRlci1ldmVudHM6bm9uZX0ucG9pbnRlci1ldmVudHMtYXV0b3twb2ludGVyLWV2ZW50czphdXRvfS5jb2xsYXBzZXt2aXNpYmlsaXR5OmNvbGxhcHNlfS5maXhlZHtwb3NpdGlvbjpmaXhlZH0uYWJzb2x1dGV7cG9zaXRpb246YWJzb2x1dGV9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5pbnNldC0we2luc2V0OjB9Li1yaWdodC0xe3JpZ2h0Oi0uMjVyZW19Li10b3AtMXt0b3A6LS4yNXJlbX0uYm90dG9tLTB7Ym90dG9tOjB9LmJvdHRvbS0yNHtib3R0b206NnJlbX0uYm90dG9tLTM2e2JvdHRvbTo5cmVtfS5sZWZ0LTB7bGVmdDowfS5sZWZ0LTFcLzJ7bGVmdDo1MCV9LnJpZ2h0LTB7cmlnaHQ6MH0udG9wLTB7dG9wOjB9LnRvcC0xXC8ye3RvcDo1MCV9LnotMHt6LWluZGV4OjB9LnotMTB7ei1pbmRleDoxMH0uei0yMHt6LWluZGV4OjIwfS56LTMwe3otaW5kZXg6MzB9LnotNDB7ei1pbmRleDo0MH0uei01MHt6LWluZGV4OjUwfS5teC1hdXRve21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99Li1tdC0wXC41e21hcmdpbi10b3A6LS4xMjVyZW19Lm1iLTJ7bWFyZ2luLWJvdHRvbTouNXJlbX0ubWItM3ttYXJnaW4tYm90dG9tOi43NXJlbX0ubWItNHttYXJnaW4tYm90dG9tOjFyZW19Lm1sLTF7bWFyZ2luLWxlZnQ6LjI1cmVtfS5tbC0ye21hcmdpbi1sZWZ0Oi41cmVtfS5tbC01e21hcmdpbi1sZWZ0OjEuMjVyZW19Lm1sLWF1dG97bWFyZ2luLWxlZnQ6YXV0b30ubXItMXttYXJnaW4tcmlnaHQ6LjI1cmVtfS5tci0ye21hcmdpbi1yaWdodDouNXJlbX0ubXQtMFwuNXttYXJnaW4tdG9wOi4xMjVyZW19Lm10LTF7bWFyZ2luLXRvcDouMjVyZW19Lm10LTJ7bWFyZ2luLXRvcDouNXJlbX0ubXQtXFsxcHhcXXttYXJnaW4tdG9wOjFweH0ubGluZS1jbGFtcC0ye292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6Mn0uYmxvY2t7ZGlzcGxheTpibG9ja30uaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5pbmxpbmV7ZGlzcGxheTppbmxpbmV9LmZsZXh7ZGlzcGxheTpmbGV4fS5pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4fS5oLTEwe2hlaWdodDoyLjVyZW19LmgtMTR7aGVpZ2h0OjMuNXJlbX0uaC0ze2hlaWdodDouNzVyZW19LmgtM1wuNXtoZWlnaHQ6Ljg3NXJlbX0uaC00e2hlaWdodDoxcmVtfS5oLTV7aGVpZ2h0OjEuMjVyZW19LmgtNntoZWlnaHQ6MS41cmVtfS5oLTh7aGVpZ2h0OjJyZW19LmgtZnVsbHtoZWlnaHQ6MTAwJX0uaC1zY3JlZW57aGVpZ2h0OjEwMHZofS5tYXgtaC02NHttYXgtaGVpZ2h0OjE2cmVtfS5tYXgtaC05NnttYXgtaGVpZ2h0OjI0cmVtfS5tYXgtaC1cWzIwMHB4XF17bWF4LWhlaWdodDoyMDBweH0ubWluLWgtMTB7bWluLWhlaWdodDoyLjVyZW19LnctMTB7d2lkdGg6Mi41cmVtfS53LTEye3dpZHRoOjNyZW19LnctMjB7d2lkdGg6NXJlbX0udy0ze3dpZHRoOi43NXJlbX0udy0zXC41e3dpZHRoOi44NzVyZW19LnctNHt3aWR0aDoxcmVtfS53LTV7d2lkdGg6MS4yNXJlbX0udy02e3dpZHRoOjEuNXJlbX0udy02NHt3aWR0aDoxNnJlbX0udy04e3dpZHRoOjJyZW19LnctODB7d2lkdGg6MjByZW19LnctXFsycHhcXXt3aWR0aDoycHh9LnctZnVsbHt3aWR0aDoxMDAlfS5taW4tdy0we21pbi13aWR0aDowcHh9Lm1pbi13LW1heHttaW4td2lkdGg6LW1vei1tYXgtY29udGVudDttaW4td2lkdGg6bWF4LWNvbnRlbnR9Lm1heC13LTJ4bHttYXgtd2lkdGg6NDJyZW19Lm1heC13LTN4bHttYXgtd2lkdGg6NDhyZW19Lm1heC13LWZ1bGx7bWF4LXdpZHRoOjEwMCV9Lm1heC13LW1ke21heC13aWR0aDoyOHJlbX0ubWF4LXcteHN7bWF4LXdpZHRoOjIwcmVtfS5mbGV4LTF7ZmxleDoxIDEgMCV9LmZsZXgtc2hyaW5rLTAsLnNocmluay0we2ZsZXgtc2hyaW5rOjB9Li10cmFuc2xhdGUteC0xXC8yey0tdHctdHJhbnNsYXRlLXg6IC01MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tldyh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9Li10cmFuc2xhdGUteS0xXC8yey0tdHctdHJhbnNsYXRlLXk6IC01MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tldyh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9Li10cmFuc2xhdGUteS1mdWxsey0tdHctdHJhbnNsYXRlLXk6IC0xMDAlO3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXcodmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpfS50cmFuc2xhdGUteS0wey0tdHctdHJhbnNsYXRlLXk6IDBweDt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3KHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKX1Aa2V5ZnJhbWVzIHB1bHNlezUwJXtvcGFjaXR5Oi41fX0uYW5pbWF0ZS1wdWxzZXthbmltYXRpb246cHVsc2UgMnMgY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkgaW5maW5pdGV9QGtleWZyYW1lcyBzcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmFuaW1hdGUtc3BpbnthbmltYXRpb246c3BpbiAxcyBsaW5lYXIgaW5maW5pdGV9LmN1cnNvci1kZWZhdWx0e2N1cnNvcjpkZWZhdWx0fS5jdXJzb3ItcG9pbnRlcntjdXJzb3I6cG9pbnRlcn0uc2VsZWN0LW5vbmV7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5yZXNpemUtbm9uZXtyZXNpemU6bm9uZX0uZmxleC1jb2x7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5mbGV4LXdyYXB7ZmxleC13cmFwOndyYXB9Lml0ZW1zLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lml0ZW1zLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZH0uaXRlbXMtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcn0uanVzdGlmeS1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmdhcC0xe2dhcDouMjVyZW19LmdhcC0xXC41e2dhcDouMzc1cmVtfS5nYXAtMntnYXA6LjVyZW19LmdhcC0ze2dhcDouNzVyZW19LmdhcC00e2dhcDoxcmVtfS5nYXAtNntnYXA6MS41cmVtfS5nYXAteC0yey1tb3otY29sdW1uLWdhcDouNXJlbTtjb2x1bW4tZ2FwOi41cmVtfS5nYXAteC00ey1tb3otY29sdW1uLWdhcDoxcmVtO2NvbHVtbi1nYXA6MXJlbX0uZ2FwLXktMXtyb3ctZ2FwOi4yNXJlbX0uc3BhY2UteS0wXC41Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOiAwO21hcmdpbi10b3A6Y2FsYyguMTI1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYyguMTI1cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktMT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTogMDttYXJnaW4tdG9wOmNhbGMoLjI1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYyguMjVyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS0xXC41Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOiAwO21hcmdpbi10b3A6Y2FsYyguMzc1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYyguMzc1cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktMj46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTogMDttYXJnaW4tdG9wOmNhbGMoLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC41cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktND46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTogMDttYXJnaW4tdG9wOmNhbGMoMXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTttYXJnaW4tYm90dG9tOmNhbGMoMXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpfS5zcGFjZS15LTY+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS10dy1zcGFjZS15LXJldmVyc2U6IDA7bWFyZ2luLXRvcDpjYWxjKDEuNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTttYXJnaW4tYm90dG9tOmNhbGMoMS41cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9LmRpdmlkZS15Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctZGl2aWRlLXktcmV2ZXJzZTogMDtib3JkZXItdG9wLXdpZHRoOmNhbGMoMXB4ICogY2FsYygxIC0gdmFyKC0tdHctZGl2aWRlLXktcmV2ZXJzZSkpKTtib3JkZXItYm90dG9tLXdpZHRoOmNhbGMoMXB4ICogdmFyKC0tdHctZGl2aWRlLXktcmV2ZXJzZSkpfS5kaXZpZGUtYm9yZGVyPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pe2JvcmRlci1jb2xvcjpoc2wodmFyKC0tYm9yZGVyKSl9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30ub3ZlcmZsb3ctaGlkZGVue292ZXJmbG93OmhpZGRlbn0ub3ZlcmZsb3cteC1hdXRve292ZXJmbG93LXg6YXV0b30ub3ZlcmZsb3cteS1hdXRve292ZXJmbG93LXk6YXV0b30udHJ1bmNhdGV7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS53aGl0ZXNwYWNlLXByZS13cmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS5icmVhay13b3Jkc3tvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LmJyZWFrLWFsbHt3b3JkLWJyZWFrOmJyZWFrLWFsbH0ucm91bmRlZHtib3JkZXItcmFkaXVzOi4yNXJlbX0ucm91bmRlZC0zeGx7Ym9yZGVyLXJhZGl1czoxLjVyZW19LnJvdW5kZWQtZnVsbHtib3JkZXItcmFkaXVzOjk5OTlweH0ucm91bmRlZC1sZ3tib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cyl9LnJvdW5kZWQteGx7Ym9yZGVyLXJhZGl1czouNzVyZW19LmJvcmRlcntib3JkZXItd2lkdGg6MXB4fS5ib3JkZXItMHtib3JkZXItd2lkdGg6MHB4fS5ib3JkZXItMntib3JkZXItd2lkdGg6MnB4fS5ib3JkZXItYntib3JkZXItYm90dG9tLXdpZHRoOjFweH0uYm9yZGVyLWx7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4fS5ib3JkZXItcntib3JkZXItcmlnaHQtd2lkdGg6MXB4fS5ib3JkZXItdHtib3JkZXItdG9wLXdpZHRoOjFweH0uYm9yZGVyLWJsdWUtNTAwXC8zMHtib3JkZXItY29sb3I6IzNiODJmNjRkfS5ib3JkZXItYm9yZGVye2JvcmRlci1jb2xvcjpoc2wodmFyKC0tYm9yZGVyKSl9LmJvcmRlci1ib3JkZXJcLzUwe2JvcmRlci1jb2xvcjpoc2wodmFyKC0tYm9yZGVyKSAvIC41KX0uYm9yZGVyLWVtZXJhbGQtNTAwXC8yMHtib3JkZXItY29sb3I6IzEwYjk4MTMzfS5ib3JkZXItZW1lcmFsZC01MDBcLzUwe2JvcmRlci1jb2xvcjojMTBiOTgxODB9LmJvcmRlci1yZWQtMjAwey0tdHctYm9yZGVyLW9wYWNpdHk6IDE7Ym9yZGVyLWNvbG9yOnJnYigyNTQgMjAyIDIwMiAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSl9LmJvcmRlci1yZWQtMjAwXC82MHtib3JkZXItY29sb3I6I2ZlY2FjYTk5fS5ib3JkZXItcmVkLTUwMFwvMjB7Ym9yZGVyLWNvbG9yOiNlZjQ0NDQzM30uYm9yZGVyLXZpb2xldC01MDBcLzMwe2JvcmRlci1jb2xvcjojOGI1Y2Y2NGR9LmJvcmRlci12aW9sZXQtNTAwXC81MHtib3JkZXItY29sb3I6IzhiNWNmNjgwfS5iZy1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6aHNsKHZhcigtLWJhY2tncm91bmQpKX0uYmctYmFja2dyb3VuZFwvNTB7YmFja2dyb3VuZC1jb2xvcjpoc2wodmFyKC0tYmFja2dyb3VuZCkgLyAuNSl9LmJnLWJhY2tncm91bmRcLzgwe2JhY2tncm91bmQtY29sb3I6aHNsKHZhcigtLWJhY2tncm91bmQpIC8gLjgpfS5iZy1iYWNrZ3JvdW5kXC85NXtiYWNrZ3JvdW5kLWNvbG9yOmhzbCh2YXIoLS1iYWNrZ3JvdW5kKSAvIC45NSl9LmJnLWJsYWNrXC81MHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA4MH0uYmctYmx1ZS01MDBcLzEwe2JhY2tncm91bmQtY29sb3I6IzNiODJmNjFhfS5iZy1ib3JkZXJ7YmFja2dyb3VuZC1jb2xvcjpoc2wodmFyKC0tYm9yZGVyKSl9LmJnLWNhcmR7YmFja2dyb3VuZC1jb2xvcjpoc2wodmFyKC0tY2FyZCkpfS5iZy1jYXJkXC80MHtiYWNrZ3JvdW5kLWNvbG9yOmhzbCh2YXIoLS1jYXJkKSAvIC40KX0uYmctY2FyZFwvNjB7YmFja2dyb3VuZC1jb2xvcjpoc2wodmFyKC0tY2FyZCkgLyAuNil9LmJnLWVtZXJhbGQtNTAwXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOiMxMGI5ODExYX0uYmctZW1lcmFsZC01MDBcLzIwe2JhY2tncm91bmQtY29sb3I6IzEwYjk4MTMzfS5iZy1lbWVyYWxkLTUwMFwvNXtiYWNrZ3JvdW5kLWNvbG9yOiMxMGI5ODEwZH0uYmctZ3JlZW4tNTAwXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOiMyMmM1NWUxYX0uYmctbXV0ZWR7YmFja2dyb3VuZC1jb2xvcjpoc2wodmFyKC0tbXV0ZWQpKX0uYmctbXV0ZWRcLzIwe2JhY2tncm91bmQtY29sb3I6aHNsKHZhcigtLW11dGVkKSAvIC4yKX0uYmctbXV0ZWRcLzUwe2JhY2tncm91bmQtY29sb3I6aHNsKHZhcigtLW11dGVkKSAvIC41KX0uYmctcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOmhzbCh2YXIoLS1wcmltYXJ5KSl9LmJnLXByaW1hcnlcLzEwe2JhY2tncm91bmQtY29sb3I6aHNsKHZhcigtLXByaW1hcnkpIC8gLjEpfS5iZy1yZWQtMTAwXC80MHtiYWNrZ3JvdW5kLWNvbG9yOiNmZWUyZTI2Nn0uYmctcmVkLTUwey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTQgMjQyIDI0MiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctcmVkLTUwMFwvMTB7YmFja2dyb3VuZC1jb2xvcjojZWY0NDQ0MWF9LmJnLXRyYW5zcGFyZW50e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJnLXZpb2xldC01MDBcLzEwe2JhY2tncm91bmQtY29sb3I6IzhiNWNmNjFhfS5iZy12aW9sZXQtNTAwXC8yMHtiYWNrZ3JvdW5kLWNvbG9yOiM4YjVjZjYzM30uYmctZ3JhZGllbnQtdG8tdHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byB0b3AsdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKX0uZnJvbS1iYWNrZ3JvdW5key0tdHctZ3JhZGllbnQtZnJvbTogaHNsKHZhcigtLWJhY2tncm91bmQpKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKTstLXR3LWdyYWRpZW50LXRvOiBoc2wodmFyKC0tYmFja2dyb3VuZCkgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7LS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKX0udmlhLWJhY2tncm91bmR7LS10dy1ncmFkaWVudC10bzogaHNsKHZhcigtLWJhY2tncm91bmQpIC8gMCkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pOy0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCBoc2wodmFyKC0tYmFja2dyb3VuZCkpIHZhcigtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKX0udG8tdHJhbnNwYXJlbnR7LS10dy1ncmFkaWVudC10bzogdHJhbnNwYXJlbnQgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pfS5wLTB7cGFkZGluZzowfS5wLTF7cGFkZGluZzouMjVyZW19LnAtMntwYWRkaW5nOi41cmVtfS5wLTN7cGFkZGluZzouNzVyZW19LnAtNHtwYWRkaW5nOjFyZW19LnAtNntwYWRkaW5nOjEuNXJlbX0ucHgtMntwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbX0ucHgtM3twYWRkaW5nLWxlZnQ6Ljc1cmVtO3BhZGRpbmctcmlnaHQ6Ljc1cmVtfS5weC00e3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbX0ucHgtNntwYWRkaW5nLWxlZnQ6MS41cmVtO3BhZGRpbmctcmlnaHQ6MS41cmVtfS5weS0wXC41e3BhZGRpbmctdG9wOi4xMjVyZW07cGFkZGluZy1ib3R0b206LjEyNXJlbX0ucHktMXtwYWRkaW5nLXRvcDouMjVyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS5weS0xXC41e3BhZGRpbmctdG9wOi4zNzVyZW07cGFkZGluZy1ib3R0b206LjM3NXJlbX0ucHktMntwYWRkaW5nLXRvcDouNXJlbTtwYWRkaW5nLWJvdHRvbTouNXJlbX0ucHktM3twYWRkaW5nLXRvcDouNzVyZW07cGFkZGluZy1ib3R0b206Ljc1cmVtfS5weS00e3BhZGRpbmctdG9wOjFyZW07cGFkZGluZy1ib3R0b206MXJlbX0ucHktNntwYWRkaW5nLXRvcDoxLjVyZW07cGFkZGluZy1ib3R0b206MS41cmVtfS5weS04e3BhZGRpbmctdG9wOjJyZW07cGFkZGluZy1ib3R0b206MnJlbX0ucGItMntwYWRkaW5nLWJvdHRvbTouNXJlbX0ucGItM3twYWRkaW5nLWJvdHRvbTouNzVyZW19LnBiLTMye3BhZGRpbmctYm90dG9tOjhyZW19LnBiLTR7cGFkZGluZy1ib3R0b206MXJlbX0ucGItOHtwYWRkaW5nLWJvdHRvbToycmVtfS5wbC0xe3BhZGRpbmctbGVmdDouMjVyZW19LnBsLTN7cGFkZGluZy1sZWZ0Oi43NXJlbX0ucHItMntwYWRkaW5nLXJpZ2h0Oi41cmVtfS5wci00e3BhZGRpbmctcmlnaHQ6MXJlbX0ucHQtMHtwYWRkaW5nLXRvcDowfS5wdC0wXC41e3BhZGRpbmctdG9wOi4xMjVyZW19LnB0LTE2e3BhZGRpbmctdG9wOjRyZW19LnB0LTJ7cGFkZGluZy10b3A6LjVyZW19LnB0LTZ7cGFkZGluZy10b3A6MS41cmVtfS50ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0fS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0udGV4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS5mb250LW1vbm97Zm9udC1mYW1pbHk6SUJNIFBsZXggTW9ubyxtb25vc3BhY2V9LnRleHQtMnhse2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MnJlbX0udGV4dC1cWzEwcHhcXXtmb250LXNpemU6MTBweH0udGV4dC1iYXNle2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuNXJlbX0udGV4dC1sZ3tmb250LXNpemU6MS4xMjVyZW07bGluZS1oZWlnaHQ6MS43NXJlbX0udGV4dC1zbXtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjI1cmVtfS50ZXh0LXhze2ZvbnQtc2l6ZTouNzVyZW07bGluZS1oZWlnaHQ6MXJlbX0uZm9udC1tZWRpdW17Zm9udC13ZWlnaHQ6NTAwfS5mb250LXNlbWlib2xke2ZvbnQtd2VpZ2h0OjYwMH0udXBwZXJjYXNle3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uaXRhbGlje2ZvbnQtc3R5bGU6aXRhbGljfS5sZWFkaW5nLW5vcm1hbHtsaW5lLWhlaWdodDoxLjV9LmxlYWRpbmctcmVsYXhlZHtsaW5lLWhlaWdodDoxLjYyNX0udHJhY2tpbmctd2lkZXtsZXR0ZXItc3BhY2luZzouMDI1ZW19LnRleHQtYW1iZXItNjAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigyMTcgMTE5IDYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1ibHVlLTUwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoNTkgMTMwIDI0NiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS50ZXh0LWJsdWUtNjAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigzNyA5OSAyMzUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1ibHVlLTcwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtY2FyZC1mb3JlZ3JvdW5ke2NvbG9yOmhzbCh2YXIoLS1jYXJkLWZvcmVncm91bmQpKX0udGV4dC1jeWFuLTYwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoOCAxNDUgMTc4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtY3lhbi03MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDE0IDExNiAxNDQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1lbWVyYWxkLTYwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoNSAxNTAgMTA1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtZW1lcmFsZC03MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDQgMTIwIDg3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtZm9yZWdyb3VuZHtjb2xvcjpoc2wodmFyKC0tZm9yZWdyb3VuZCkpfS50ZXh0LWZvcmVncm91bmRcLzcwe2NvbG9yOmhzbCh2YXIoLS1mb3JlZ3JvdW5kKSAvIC43KX0udGV4dC1mb3JlZ3JvdW5kXC84MHtjb2xvcjpoc2wodmFyKC0tZm9yZWdyb3VuZCkgLyAuOCl9LnRleHQtZm9yZWdyb3VuZFwvODV7Y29sb3I6aHNsKHZhcigtLWZvcmVncm91bmQpIC8gLjg1KX0udGV4dC1mb3JlZ3JvdW5kXC85MHtjb2xvcjpoc2wodmFyKC0tZm9yZWdyb3VuZCkgLyAuOSl9LnRleHQtZ3JlZW4tNTAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigzNCAxOTcgOTQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1ncmVlbi02MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDIyIDE2MyA3NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS50ZXh0LWdyZWVuLTcwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjEgMTI4IDYxIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtbXV0ZWQtZm9yZWdyb3VuZHtjb2xvcjpoc2wodmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCkpfS50ZXh0LW11dGVkLWZvcmVncm91bmRcLzQwe2NvbG9yOmhzbCh2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKSAvIC40KX0udGV4dC1tdXRlZC1mb3JlZ3JvdW5kXC82NXtjb2xvcjpoc2wodmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCkgLyAuNjUpfS50ZXh0LW11dGVkLWZvcmVncm91bmRcLzcwe2NvbG9yOmhzbCh2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKSAvIC43KX0udGV4dC1tdXRlZC1mb3JlZ3JvdW5kXC83NXtjb2xvcjpoc2wodmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCkgLyAuNzUpfS50ZXh0LW11dGVkLWZvcmVncm91bmRcLzgwe2NvbG9yOmhzbCh2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKSAvIC44KX0udGV4dC1vcmFuZ2UtNTAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigyNDkgMTE1IDIyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtcHJpbWFyeXtjb2xvcjpoc2wodmFyKC0tcHJpbWFyeSkpfS50ZXh0LXByaW1hcnktZm9yZWdyb3VuZHtjb2xvcjpoc2wodmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKSl9LnRleHQtcHVycGxlLTUwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTY4IDg1IDI0NyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS50ZXh0LXB1cnBsZS02MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDE0NyA1MSAyMzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1wdXJwbGUtNzAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigxMjYgMzQgMjA2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtcmVkLTUwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtcmVkLTYwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjIwIDM4IDM4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtcmVkLTYwMFwvODB7Y29sb3I6I2RjMjYyNmNjfS50ZXh0LXJlZC03MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDE4NSAyOCAyOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS50ZXh0LXZpb2xldC02MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDEyNCA1OCAyMzcgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC12aW9sZXQtNzAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigxMDkgNDAgMjE3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmxpbmUtdGhyb3VnaHt0ZXh0LWRlY29yYXRpb24tbGluZTpsaW5lLXRocm91Z2h9LnBsYWNlaG9sZGVyLW11dGVkLWZvcmVncm91bmQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6aHNsKHZhcigtLW11dGVkLWZvcmVncm91bmQpKX0ucGxhY2Vob2xkZXItbXV0ZWQtZm9yZWdyb3VuZDo6cGxhY2Vob2xkZXJ7Y29sb3I6aHNsKHZhcigtLW11dGVkLWZvcmVncm91bmQpKX0ub3BhY2l0eS0we29wYWNpdHk6MH0ub3BhY2l0eS02MHtvcGFjaXR5Oi42fS5vcGFjaXR5LTcwe29wYWNpdHk6Ljd9LnNoYWRvdy1sZ3stLXR3LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCByZ2IoMCAwIDAgLyAuMSksIDAgNHB4IDZweCAtNHB4IHJnYigwIDAgMCAvIC4xKTstLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDEwcHggMTVweCAtM3B4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksIDAgNHB4IDZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksdmFyKC0tdHctc2hhZG93KX0ub3V0bGluZS1ub25le291dGxpbmU6MnB4IHNvbGlkIHRyYW5zcGFyZW50O291dGxpbmUtb2Zmc2V0OjJweH0uZmlsdGVye2ZpbHRlcjp2YXIoLS10dy1ibHVyKSB2YXIoLS10dy1icmlnaHRuZXNzKSB2YXIoLS10dy1jb250cmFzdCkgdmFyKC0tdHctZ3JheXNjYWxlKSB2YXIoLS10dy1odWUtcm90YXRlKSB2YXIoLS10dy1pbnZlcnQpIHZhcigtLXR3LXNhdHVyYXRlKSB2YXIoLS10dy1zZXBpYSkgdmFyKC0tdHctZHJvcC1zaGFkb3cpfS5iYWNrZHJvcC1ibHVyLXNtey0tdHctYmFja2Ryb3AtYmx1cjogYmx1cig0cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXR3LWJhY2tkcm9wLWJsdXIpIHZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MpIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpIHZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUpIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSkgdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUpIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0tdHctYmFja2Ryb3AtYmx1cikgdmFyKC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcykgdmFyKC0tdHctYmFja2Ryb3AtY29udHJhc3QpIHZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSkgdmFyKC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSkgdmFyKC0tdHctYmFja2Ryb3AtaW52ZXJ0KSB2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5KSB2YXIoLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSkgdmFyKC0tdHctYmFja2Ryb3Atc2VwaWEpfS50cmFuc2l0aW9uLWFsbHt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXN9LnRyYW5zaXRpb24tY29sb3Jze3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb24tZHVyYXRpb246LjE1c30udHJhbnNpdGlvbi1vcGFjaXR5e3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXN9LnRyYW5zaXRpb24tdHJhbnNmb3Jte3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb24tZHVyYXRpb246LjE1c30uZHVyYXRpb24tMTUwe3RyYW5zaXRpb24tZHVyYXRpb246LjE1c30uZHVyYXRpb24tMjAwe3RyYW5zaXRpb24tZHVyYXRpb246LjJzfS5kdXJhdGlvbi0zMDB7dHJhbnNpdGlvbi1kdXJhdGlvbjouM3N9QGtleWZyYW1lcyBzaGltbWVyezAle2JhY2tncm91bmQtcG9zaXRpb246LTIwMCUgMH10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjIwMCUgMH19LmFuaW1hdGUtc2hpbW1lcnthbmltYXRpb246c2hpbW1lciAycyBlYXNlLWluLW91dCBpbmZpbml0ZX1ib2R5e21hcmdpbjowO2ZvbnQtZmFtaWx5OklCTSBQbGV4IE1vbm8sbW9ub3NwYWNlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlO2JhY2tncm91bmQtY29sb3I6aHNsKHZhcigtLWJhY2tncm91bmQpKTtjb2xvcjpoc2wodmFyKC0tZm9yZWdyb3VuZCkpfWNvZGV7Zm9udC1mYW1pbHk6SUJNIFBsZXggTW9ubyxtb25vc3BhY2U7Y29sb3I6dmFyKC0tY29kZS1mb3JlZ3JvdW5kKX0uc2Nyb2xsYmFyLWhpZGV7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9LnNjcm9sbGJhci1oaWRlOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9Lm1hcmtkb3duLWNvbnRlbnR7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWFya2Rvd24tY29udGVudCBoMXtmb250LXNpemU6MS44NzVyZW07Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi10b3A6MS41cmVtO21hcmdpbi1ib3R0b206MXJlbTtsaW5lLWhlaWdodDoxLjJ9Lm1hcmtkb3duLWNvbnRlbnQgaDJ7Zm9udC1zaXplOjEuNXJlbTtmb250LXdlaWdodDo2MDA7bWFyZ2luLXRvcDoxLjVyZW07bWFyZ2luLWJvdHRvbTouNzVyZW07bGluZS1oZWlnaHQ6MS4zfS5tYXJrZG93bi1jb250ZW50IGgze2ZvbnQtc2l6ZToxLjI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tdG9wOjEuMjVyZW07bWFyZ2luLWJvdHRvbTouNXJlbTtsaW5lLWhlaWdodDoxLjR9Lm1hcmtkb3duLWNvbnRlbnQgaDR7Zm9udC1zaXplOjEuMTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tdG9wOjFyZW07bWFyZ2luLWJvdHRvbTouNXJlbTtsaW5lLWhlaWdodDoxLjR9Lm1hcmtkb3duLWNvbnRlbnQgcHttYXJnaW4tdG9wOi43NXJlbTttYXJnaW4tYm90dG9tOi43NXJlbX0ubWFya2Rvd24tY29udGVudCB1bCwubWFya2Rvd24tY29udGVudCBvbHttYXJnaW4tdG9wOi43NXJlbTttYXJnaW4tYm90dG9tOi43NXJlbTtwYWRkaW5nLWxlZnQ6MS41cmVtfS5tYXJrZG93bi1jb250ZW50IGxpe21hcmdpbi10b3A6LjI1cmVtO21hcmdpbi1ib3R0b206LjI1cmVtfS5tYXJrZG93bi1jb250ZW50IHByZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvZGUtYmFja2dyb3VuZCk7Ym9yZGVyOjFweCBzb2xpZCBoc2wodmFyKC0tYm9yZGVyKSk7Ym9yZGVyLXJhZGl1czouNXJlbTtwYWRkaW5nOjFyZW07bWFyZ2luLXRvcDouNzVyZW07bWFyZ2luLWJvdHRvbTouNzVyZW07b3ZlcmZsb3cteDphdXRvO2NvbG9yOnZhcigtLWNvZGUtZm9yZWdyb3VuZCk7bWF4LXdpZHRoOjEwMCV9Lm1hcmtkb3duLWNvbnRlbnQgY29kZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvZGUtYmFja2dyb3VuZCk7Ym9yZGVyOjFweCBzb2xpZCBoc2wodmFyKC0tYm9yZGVyKSk7Ym9yZGVyLXJhZGl1czouMjVyZW07cGFkZGluZzouMTI1cmVtIC4zNzVyZW07Zm9udC1zaXplOi44NzVyZW07Y29sb3I6dmFyKC0tY29kZS1mb3JlZ3JvdW5kKTt3b3JkLWJyZWFrOmJyZWFrLWFsbH0ubWFya2Rvd24tY29udGVudCBwcmUgY29kZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO3BhZGRpbmc6MDtmb250LXNpemU6Ljg3NXJlbTtjb2xvcjppbmhlcml0O3dvcmQtYnJlYWs6bm9ybWFsO292ZXJmbG93LXdyYXA6bm9ybWFsfS5tYXJrZG93bi1jb250ZW50IGJsb2NrcXVvdGV7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIGhzbCh2YXIoLS1ib3JkZXIpKTtwYWRkaW5nLWxlZnQ6MXJlbTttYXJnaW4tdG9wOi43NXJlbTttYXJnaW4tYm90dG9tOi43NXJlbTtjb2xvcjpoc2wodmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCkpO2ZvbnQtc3R5bGU6aXRhbGljfS5tYXJrZG93bi1jb250ZW50IGF7Y29sb3I6aHNsKHZhcigtLXByaW1hcnkpKTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWFya2Rvd24tY29udGVudCBhOmhvdmVye2NvbG9yOmhzbCh2YXIoLS1wcmltYXJ5KSAvIC44NSl9Lm1hcmtkb3duLWNvbnRlbnQgc3Ryb25nLC5tYXJrZG93bi1jb250ZW50IGJ7Zm9udC13ZWlnaHQ6NjAwfS5tYXJrZG93bi1jb250ZW50IGVtLC5tYXJrZG93bi1jb250ZW50IGl7Zm9udC1zdHlsZTppdGFsaWN9Lm1hcmtkb3duLWNvbnRlbnQgaHJ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXRvcDoxcHggc29saWQgaHNsKHZhcigtLWJvcmRlcikpO21hcmdpbi10b3A6MS41cmVtO21hcmdpbi1ib3R0b206MS41cmVtfS5tYXJrZG93bi1jb250ZW50IHRhYmxle3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO21hcmdpbi10b3A6Ljc1cmVtO21hcmdpbi1ib3R0b206Ljc1cmVtO292ZXJmbG93LXg6YXV0bztkaXNwbGF5OmJsb2NrfS5tYXJrZG93bi1jb250ZW50IHRoLC5tYXJrZG93bi1jb250ZW50IHRke2JvcmRlcjoxcHggc29saWQgaHNsKHZhcigtLWJvcmRlcikpO3BhZGRpbmc6LjVyZW07dGV4dC1hbGlnbjpsZWZ0O3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWFya2Rvd24tY29udGVudCB0aHtiYWNrZ3JvdW5kLWNvbG9yOmhzbCh2YXIoLS1tdXRlZCkpO2ZvbnQtd2VpZ2h0OjYwMH0ubWFya2Rvd24tY29udGVudD4qOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0ubWFya2Rvd24tY29udGVudD4qOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5tYXJrZG93bi1jb250ZW50PnA6Zmlyc3QtY2hpbGQsLm1hcmtkb3duLWNvbnRlbnQ+dWw6Zmlyc3QtY2hpbGQsLm1hcmtkb3duLWNvbnRlbnQ+b2w6Zmlyc3QtY2hpbGQsLm1hcmtkb3duLWNvbnRlbnQ+cHJlOmZpcnN0LWNoaWxkLC5tYXJrZG93bi1jb250ZW50PmJsb2NrcXVvdGU6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5tYXJrZG93bi1jb250ZW50PnA6bGFzdC1jaGlsZCwubWFya2Rvd24tY29udGVudD51bDpsYXN0LWNoaWxkLC5tYXJrZG93bi1jb250ZW50Pm9sOmxhc3QtY2hpbGQsLm1hcmtkb3duLWNvbnRlbnQ+cHJlOmxhc3QtY2hpbGQsLm1hcmtkb3duLWNvbnRlbnQ+YmxvY2txdW90ZTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uZm9jdXMtd2l0aGluXDpib3JkZXItcHJpbWFyeVwvNjA6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjpoc2wodmFyKC0tcHJpbWFyeSkgLyAuNil9LmZvY3VzLXdpdGhpblw6cmluZy0xOmZvY3VzLXdpdGhpbnstLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpIHZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTstLXR3LXJpbmctc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKDFweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCl9LmZvY3VzLXdpdGhpblw6cmluZy1wcmltYXJ5XC80MDpmb2N1cy13aXRoaW57LS10dy1yaW5nLWNvbG9yOiBoc2wodmFyKC0tcHJpbWFyeSkgLyAuNCl9LmhvdmVyXDpib3JkZXItYm9yZGVyXC84MDpob3Zlcntib3JkZXItY29sb3I6aHNsKHZhcigtLWJvcmRlcikgLyAuOCl9LmhvdmVyXDpiZy1iYWNrZ3JvdW5kXC81MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmhzbCh2YXIoLS1iYWNrZ3JvdW5kKSAvIC41KX0uaG92ZXJcOmJnLWNhcmRcLzYwOmhvdmVye2JhY2tncm91bmQtY29sb3I6aHNsKHZhcigtLWNhcmQpIC8gLjYpfS5ob3Zlclw6YmctY2FyZFwvODA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpoc2wodmFyKC0tY2FyZCkgLyAuOCl9LmhvdmVyXDpiZy1tdXRlZDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmhzbCh2YXIoLS1tdXRlZCkpfS5ob3Zlclw6YmctbXV0ZWRcLzIwOmhvdmVye2JhY2tncm91bmQtY29sb3I6aHNsKHZhcigtLW11dGVkKSAvIC4yKX0uaG92ZXJcOmJnLW11dGVkXC81MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmhzbCh2YXIoLS1tdXRlZCkgLyAuNSl9LmhvdmVyXDpiZy1tdXRlZFwvODA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpoc2wodmFyKC0tbXV0ZWQpIC8gLjgpfS5ob3Zlclw6YmctcHJpbWFyeVwvOTA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpoc2wodmFyKC0tcHJpbWFyeSkgLyAuOSl9LmhvdmVyXDp0ZXh0LWFtYmVyLTUwMDpob3ZlcnstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjQ1IDE1OCAxMSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS5ob3Zlclw6dGV4dC1ibHVlLTYwMDpob3ZlcnstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMzcgOTkgMjM1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmhvdmVyXDp0ZXh0LWN5YW4tNjAwOmhvdmVyey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYig4IDE0NSAxNzggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uaG92ZXJcOnRleHQtZW1lcmFsZC02MDA6aG92ZXJ7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDUgMTUwIDEwNSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS5ob3Zlclw6dGV4dC1mb3JlZ3JvdW5kOmhvdmVye2NvbG9yOmhzbCh2YXIoLS1mb3JlZ3JvdW5kKSl9LmhvdmVyXDp0ZXh0LXB1cnBsZS02MDA6aG92ZXJ7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDE0NyA1MSAyMzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uaG92ZXJcOnVuZGVybGluZTpob3Zlcnt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9LmZvY3VzXDpib3JkZXItdmlvbGV0LTUwMDpmb2N1c3stLXR3LWJvcmRlci1vcGFjaXR5OiAxO2JvcmRlci1jb2xvcjpyZ2IoMTM5IDkyIDI0NiAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSl9LmZvY3VzXDpvdXRsaW5lLW5vbmU6Zm9jdXN7b3V0bGluZToycHggc29saWQgdHJhbnNwYXJlbnQ7b3V0bGluZS1vZmZzZXQ6MnB4fS5mb2N1c1w6cmluZy0yOmZvY3Vzey0tdHctcmluZy1vZmZzZXQtc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpOy0tdHctcmluZy1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS10dy1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdywgMCAwICMwMDAwKX0uZm9jdXNcOnJpbmctcHJpbWFyeTpmb2N1c3stLXR3LXJpbmctY29sb3I6IGhzbCh2YXIoLS1wcmltYXJ5KSl9LmZvY3VzXDpyaW5nLW9mZnNldC0yOmZvY3Vzey0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDJweH0uZm9jdXNcOnJpbmctb2Zmc2V0LWJhY2tncm91bmQ6Zm9jdXN7LS10dy1yaW5nLW9mZnNldC1jb2xvcjogaHNsKHZhcigtLWJhY2tncm91bmQpKX0uZGlzYWJsZWRcOmN1cnNvci1ub3QtYWxsb3dlZDpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LmRpc2FibGVkXDpvcGFjaXR5LTUwOmRpc2FibGVke29wYWNpdHk6LjV9Lmdyb3VwOmhvdmVyIC5ncm91cC1ob3Zlclw6b3BhY2l0eS0xMDB7b3BhY2l0eToxfS5kYXJrXDpib3JkZXItYmx1ZS01MDBcLzIwOmlzKC5kYXJrICope2JvcmRlci1jb2xvcjojM2I4MmY2MzN9LmRhcmtcOmJvcmRlci1yZWQtODAwOmlzKC5kYXJrICopey0tdHctYm9yZGVyLW9wYWNpdHk6IDE7Ym9yZGVyLWNvbG9yOnJnYigxNTMgMjcgMjcgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpfS5kYXJrXDpib3JkZXItcmVkLTkwMFwvMzA6aXMoLmRhcmsgKil7Ym9yZGVyLWNvbG9yOiM3ZjFkMWQ0ZH0uZGFya1w6Ym9yZGVyLXZpb2xldC01MDBcLzIwOmlzKC5kYXJrICope2JvcmRlci1jb2xvcjojOGI1Y2Y2MzN9LmRhcmtcOmJnLWJhY2tncm91bmQ6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjpoc2wodmFyKC0tYmFja2dyb3VuZCkpfS5kYXJrXDpiZy1ibHVlLTUwMFwvNTppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOiMzYjgyZjYwZH0uZGFya1w6YmctZW1lcmFsZC01MDBcLzEwOmlzKC5kYXJrICope2JhY2tncm91bmQtY29sb3I6IzEwYjk4MTFhfS5kYXJrXDpiZy1yZWQtOTUwXC8yMDppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTBhMGEzM30uZGFya1w6YmctdmlvbGV0LTUwMFwvMTA6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjojOGI1Y2Y2MWF9LmRhcmtcOmJnLXZpb2xldC01MDBcLzU6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjojOGI1Y2Y2MGR9LmRhcmtcOnRleHQtYW1iZXItMzAwOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigyNTIgMjExIDc3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmRhcmtcOnRleHQtYmx1ZS0zMDA6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDE0NyAxOTcgMjUzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmRhcmtcOnRleHQtYmx1ZS00MDA6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDk2IDE2NSAyNTAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uZGFya1w6dGV4dC1jeWFuLTMwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTAzIDIzMiAyNDkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uZGFya1w6dGV4dC1lbWVyYWxkLTMwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTEwIDIzMSAxODMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uZGFya1w6dGV4dC1ncmVlbi00MDA6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDc0IDIyMiAxMjggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uZGFya1w6dGV4dC1ncmVlbi01MDA6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDM0IDE5NyA5NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS5kYXJrXDp0ZXh0LXB1cnBsZS0zMDA6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDIxNiAxODAgMjU0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmRhcmtcOnRleHQtcmVkLTMwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjUyIDE2NSAxNjUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uZGFya1w6dGV4dC1yZWQtMzAwXC84MDppcyguZGFyayAqKXtjb2xvcjojZmNhNWE1Y2N9LmRhcmtcOnRleHQtcmVkLTQwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjQ4IDExMyAxMTMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uZGFya1w6dGV4dC1yZWQtNTAwOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigyMzkgNjggNjggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uZGFya1w6dGV4dC12aW9sZXQtMzAwOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigxOTYgMTgxIDI1MyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS5kYXJrXDpob3Zlclw6dGV4dC1hbWJlci0yMDA6aG92ZXI6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDI1MyAyMzAgMTM4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmRhcmtcOmhvdmVyXDp0ZXh0LWJsdWUtMjAwOmhvdmVyOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigxOTEgMjE5IDI1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS5kYXJrXDpob3Zlclw6dGV4dC1jeWFuLTIwMDpob3ZlcjppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTY1IDI0MyAyNTIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uZGFya1w6aG92ZXJcOnRleHQtZW1lcmFsZC0yMDA6aG92ZXI6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDE2NyAyNDMgMjA4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmRhcmtcOmhvdmVyXDp0ZXh0LXB1cnBsZS0yMDA6aG92ZXI6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDIzMyAyMTMgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LlxbXCZcPlwqXDpmaXJzdC1jaGlsZFxdXDptdC0wPio6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5cW1wmXD5cKlw6bGFzdC1jaGlsZFxdXDptYi0wPio6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9Cg==", contentType: "text/css" });
14
+ EMBEDDED_ASSETS.set("/vite.svg", { content: "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1sb2dvcyIgd2lkdGg9IjMxLjg4IiBoZWlnaHQ9IjMyIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMjU2IDI1NyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJJY29uaWZ5SWQxODEzMDg4ZmUxZmJjMDFmYjQ2NiIgeDE9Ii0uODI4JSIgeDI9IjU3LjYzNiUiIHkxPSI3LjY1MiUiIHkyPSI3OC40MTElIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjNDFEMUZGIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjQkQzNEZFIj48L3N0b3A+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9Ikljb25pZnlJZDE4MTMwODhmZTFmYmMwMWZiNDY3IiB4MT0iNDMuMzc2JSIgeDI9IjUwLjMxNiUiIHkxPSIyLjI0MiUiIHkyPSI4OS4wMyUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNGRkVBODMiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjguMzMzJSIgc3RvcC1jb2xvcj0iI0ZGREQzNSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI0ZGQTgwMCI+PC9zdG9wPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGZpbGw9InVybCgjSWNvbmlmeUlkMTgxMzA4OGZlMWZiYzAxZmI0NjYpIiBkPSJNMjU1LjE1MyAzNy45MzhMMTM0Ljg5NyAyNTIuOTc2Yy0yLjQ4MyA0LjQ0LTguODYyIDQuNDY2LTExLjM4Mi4wNDhMLjg3NSAzNy45NThjLTIuNzQ2LTQuODE0IDEuMzcxLTEwLjY0NiA2LjgyNy05LjY3bDEyMC4zODUgMjEuNTE3YTYuNTM3IDYuNTM3IDAgMCAwIDIuMzIyLS4wMDRsMTE3Ljg2Ny0yMS40ODNjNS40MzgtLjk5MSA5LjU3NCA0Ljc5NiA2Ljg3NyA5LjYyWiI+PC9wYXRoPjxwYXRoIGZpbGw9InVybCgjSWNvbmlmeUlkMTgxMzA4OGZlMWZiYzAxZmI0NjcpIiBkPSJNMTg1LjQzMi4wNjNMOTYuNDQgMTcuNTAxYTMuMjY4IDMuMjY4IDAgMCAwLTIuNjM0IDMuMDE0bC01LjQ3NCA5Mi40NTZhMy4yNjggMy4yNjggMCAwIDAgMy45OTcgMy4zNzhsMjQuNzc3LTUuNzE4YzIuMzE4LS41MzUgNC40MTMgMS41MDcgMy45MzYgMy44MzhsLTcuMzYxIDM2LjA0N2MtLjQ5NSAyLjQyNiAxLjc4MiA0LjUgNC4xNTEgMy43OGwxNS4zMDQtNC42NDljMi4zNzItLjcyIDQuNjUyIDEuMzYgNC4xNSAzLjc4OGwtMTEuNjk4IDU2LjYyMWMtLjczMiAzLjU0MiAzLjk3OSA1LjQ3MyA1Ljk0MyAyLjQzN2wxLjMxMy0yLjAyOGw3Mi41MTYtMTQ0LjcyYzEuMjE1LTIuNDIzLS44OC01LjE4Ni0zLjU0LTQuNjcybC0yNS41MDUgNC45MjJjLTIuMzk2LjQ2Mi00LjQzNS0xLjc3LTMuNzU5LTQuMTE0bDE2LjY0Ni01Ny43MDVjLjY3Ny0yLjM1LTEuMzctNC41ODMtMy43NjktNC4xMTNaIj48L3BhdGg+PC9zdmc+", contentType: "image/svg+xml" });
15
+
16
+ /**
17
+ * Get the absolute path to the web UI assets directory
18
+ */
19
+ export function getWebUIPath() {
20
+ return join(__dirname, 'web-assets');
21
+ }
22
+
23
+ /**
24
+ * Get the absolute path to the index.html file
25
+ */
26
+ export function getIndexPath() {
27
+ return join(getWebUIPath(), 'index.html');
28
+ }
29
+
30
+ /**
31
+ * Check if web UI assets are available
32
+ */
33
+ export function isWebUIAvailable() {
34
+ // Check embedded assets first
35
+ if (EMBEDDED_ASSETS.size > 0) {
36
+ return true;
37
+ }
38
+
39
+ // Check filesystem
40
+ try {
41
+ const fs = require('fs');
42
+ return fs.existsSync(getIndexPath());
43
+ } catch {
44
+ return false;
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Create a request handler for serving the web UI
50
+ */
51
+ export function serveWebUI(options = {}) {
52
+ const {
53
+ prefix = '/ui',
54
+ redirectRoot = false,
55
+ onNotFound = null,
56
+ } = options;
57
+
58
+ const webUIPath = getWebUIPath();
59
+ const useEmbedded = EMBEDDED_ASSETS.size > 0;
60
+
61
+ return async function handleRequest(req) {
62
+ const url = new URL(req.url);
63
+
64
+ // Helper to serve a file
65
+ const serveAsset = async (pathname) => {
66
+ const normalizedPath = pathname === '' || pathname === '/' ? '/index.html' : pathname;
67
+
68
+ // Try embedded assets first
69
+ if (useEmbedded) {
70
+ const asset = EMBEDDED_ASSETS.get(normalizedPath);
71
+ if (asset) {
72
+ const content = Buffer.from(asset.content, 'base64');
73
+ return new Response(content, {
74
+ headers: { 'Content-Type': asset.contentType },
75
+ });
76
+ }
77
+ }
78
+
79
+ // Fallback to filesystem
80
+ const fullPath = join(webUIPath, normalizedPath);
81
+
82
+ // Security: Prevent directory traversal
83
+ if (!fullPath.startsWith(webUIPath)) {
84
+ return null;
85
+ }
86
+
87
+ try {
88
+ if (typeof Bun !== 'undefined') {
89
+ const file = Bun.file(fullPath);
90
+ if (await file.exists()) {
91
+ return new Response(file);
92
+ }
93
+ } else {
94
+ // Fallback for Node.js environments
95
+ const fs = require('fs');
96
+ const fsPromises = require('fs/promises');
97
+ if (fs.existsSync(fullPath)) {
98
+ const content = await fsPromises.readFile(fullPath);
99
+ const ext = fullPath.split('.').pop() || '';
100
+ const contentType = getContentType(ext);
101
+ return new Response(content, {
102
+ headers: { 'Content-Type': contentType },
103
+ });
104
+ }
105
+ }
106
+ } catch (err) {
107
+ console.error('Error serving asset:', err);
108
+ return null;
109
+ }
110
+
111
+ return null;
112
+ };
113
+
114
+ // Root redirect (optional)
115
+ if (redirectRoot && url.pathname === '/') {
116
+ return new Response('', {
117
+ status: 302,
118
+ headers: { Location: prefix },
119
+ });
120
+ }
121
+
122
+ // Handle prefixed paths (e.g., /ui/*)
123
+ if (url.pathname.startsWith(prefix)) {
124
+ // Strip prefix to get the actual file path
125
+ const filePath = url.pathname.slice(prefix.length);
126
+
127
+ // Try to serve the requested file
128
+ const assetResponse = await serveAsset(filePath);
129
+ if (assetResponse) {
130
+ return assetResponse;
131
+ }
132
+
133
+ // SPA fallback - serve index.html for unmatched routes
134
+ const indexResponse = await serveAsset('/index.html');
135
+ if (indexResponse) {
136
+ return indexResponse;
137
+ }
138
+
139
+ // Web UI not found
140
+ if (onNotFound) {
141
+ return onNotFound(req);
142
+ }
143
+
144
+ return new Response('Web UI not found', { status: 404 });
145
+ }
146
+
147
+ // Handle direct asset requests (for cases where HTML references /assets/*)
148
+ if (url.pathname.startsWith('/assets/') ||
149
+ url.pathname === '/vite.svg' ||
150
+ url.pathname === '/favicon.ico') {
151
+ const directAsset = await serveAsset(url.pathname);
152
+ if (directAsset) {
153
+ return directAsset;
154
+ }
155
+ }
156
+
157
+ // Not a web UI request - return null so other handlers can process it
158
+ return null;
159
+ };
160
+ }
161
+
162
+ /**
163
+ * Get MIME type for file extension
164
+ */
165
+ function getContentType(ext) {
166
+ const types = {
167
+ 'html': 'text/html',
168
+ 'css': 'text/css',
169
+ 'js': 'application/javascript',
170
+ 'json': 'application/json',
171
+ 'png': 'image/png',
172
+ 'jpg': 'image/jpeg',
173
+ 'jpeg': 'image/jpeg',
174
+ 'gif': 'image/gif',
175
+ 'svg': 'image/svg+xml',
176
+ 'ico': 'image/x-icon',
177
+ 'woff': 'font/woff',
178
+ 'woff2': 'font/woff2',
179
+ 'ttf': 'font/ttf',
180
+ 'eot': 'application/vnd.ms-fontobject',
181
+ };
182
+ return types[ext.toLowerCase()] || 'application/octet-stream';
183
+ }
184
+
185
+ export default {
186
+ getWebUIPath,
187
+ getIndexPath,
188
+ isWebUIAvailable,
189
+ serveWebUI,
190
+ };